Luashine / wc3-file-formats

Project to document the proprietary file formats used by Warcraft 3
4 stars 0 forks source link

Some .ksy stubs for you #1

Open WaterKnight opened 1 year ago

WaterKnight commented 1 year ago

Since I have only seen some for .w3i, here are some more .ksy starter schemas for other formats:

https://github.com/WaterKnight/Warcraft3-Formats-KaitaiStruct

Later on, I plan to download and target a bulk of maps with the parsers to refine them.

Luashine commented 1 year ago

Did you write them in accordance with my current .ods files? They are not final, because I'm waiting for more info and to finish that PR (to confirm my current styling choices). And don't forget about Ralle's MIT licensed wtg: https://github.com/HiveWorkshop/Formats

I'll add a link to your repository for now, because if you want them merged, send a PR or I will open up repository access for you? I'd prefer to wait so we don't spend time pushing early changes back and forth.

Thanks for taking up the work! As far as the parsing/verification goes, all I need is a decent CLI for stormlib to automate it, I have all the pre-Reforged maps. I know who to bother about Reforged (TriggerHappy)... I mean where to get those. Getting player-made ROC Beta maps is going to be an easter egg hunt though. Unless someone is going to sit down and write an unlocker for each ROC Beta patch to launch WE.

WaterKnight commented 1 year ago

I have partially used your .ods and .xslx files. For example, I did not know that there are neutral icons in .mmp.

But I also used https://github.com/ChiefOfGxBxL/WC3MapSpecification https://github.com/inwc3/wc3libs

It is fun to figure out the schema until your test files successfully and meaningfully parse.

The problem is the lack of inhomogeneous test data. Question is if it will ever be final. But when we know of each other, we can improve each other.

I have left out .wtg for now because it depends on the TriggerData.txt and I have not figured out yet if this can be handled in KaitaiStruct or if the .ksy file needs to be generated from it. Will take a look how Ralle did it there.

But yeah, it's not everything and we should have specs for text files, too. In wc3libs I had also started to list up the different slk fields, for example, because finally you would want to be able to create/modify them specifically with auto completion or be able to analyze them precisely.

Speaking about StormLib, the package formats are also interesting as few bothered to look into them.

Maybe it would be good if we also streamlined the test data, so we can iron out the inconsistencies and make things better reproducible.