Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update .w3i Info file parser #41

Open
Luashine opened this issue Apr 21, 2023 · 5 comments
Open

Update .w3i Info file parser #41

Luashine opened this issue Apr 21, 2023 · 5 comments
Labels
Area-Build Related to project War3Net.Build or War3Net.Build.Core

Comments

@Luashine
Copy link

Luashine commented Apr 21, 2023

The Map info file has been fully documented now, format versions 0-31. The missing legacy pieces are ROC Beta 100 (the first one).

After implementing this, you'll be able to correctly read the info of ROC/TFT Beta maps.

@Drake53
Copy link
Owner

Drake53 commented Apr 22, 2023

Interesting, how did you discover all this?

Do you also have example files for all the different .w3i file format versions?
I'd like to have at least one of each version to use for my unit tests.

I noticed that you haven't documented the map flags added in 1.32: https://github.com/Drake53/War3Net/blob/master/src/War3Net.Build.Core/Info/MapFlags.cs

@Drake53 Drake53 added the Area-Build Related to project War3Net.Build or War3Net.Build.Core label Apr 22, 2023
@Luashine
Copy link
Author

Luashine commented Apr 22, 2023

Interesting, how did you discover all this?

It's all hard work as a side-effect of the W3CE being worked on :)

Do you also have example files for all the different .w3i file format versions?

Therefore I do not ;) All I can provide you with is a mirror for Firstrun70's old map version collection. It's the same archive as in the attachments.

Old Warcraft 3 Map Versions, including pre-Reforged and ROC Beta, TFT Beta wc3 file-format 8 10 11 15 23 24 26 27 by Firstrun70.zip

Historically, WorldEdit was found about in ROC Beta and patched to work. iirc 2 or 3 different versions were patched and made available for use. There must be some old maps available somewhere in the depths of the web. But there shouldn't exist different map versions that aren't already available in the archive. Blizzard almost always resaved default maps for then current beta patch.

You bring up an important point though, probably someone (I) should create test maps based on the description and let the game decide if they're correct or not. I haven't thought of it, probably I shouldn't be so quick to notify and test the description myself first, at least by creating a Kaitai Struct definition for parsing. Well w3i is too important to wait imho.

Thanks for the flags I'll check them out and push an update!

@Luashine
Copy link
Author

For the other WIP files: https://github.com/Luashine/wc3-file-formats to see what's in the pipeline

@Luashine
Copy link
Author

@Drake53 Have Map Info Flag30, Flag31 been observed in the wild or are they just placeholders?

https://github.com/Drake53/War3Net/blob/master/src/War3Net.Build.Core/Info/MapFlags.cs#L39

@Drake53
Copy link
Owner

Drake53 commented Apr 22, 2023

I added those because my parser validates that the flags must exist, and I encountered at least one map that set these two flags, presumably as a form of map protection.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Build Related to project War3Net.Build or War3Net.Build.Core
Projects
None yet
Development

No branches or pull requests

2 participants