Recent content by hankinsohl

  1. hankinsohl

    Civ4 - Savegame Library and Editor (c4lib)

    Thanks for the kind words. I'm glad you're finding it useful.
  2. hankinsohl

    Quick Modding Questions Thread

    Cheers. I'll look into this. I'm thinking of adding WB save support to c4lib.
  3. hankinsohl

    Quick Modding Questions Thread

    Quick question: does anyone know if the World Builder (.CivBeyondSwordWBSave) save format is documented anywhere?
  4. hankinsohl

    Civ4 - Savegame Library and Editor (c4lib)

    You're welcome. Hope you like it :)
  5. hankinsohl

    c4recover

    c4recover is a command line program used to remove "Locked Modified Assets" from a Civilization 4, Beyond the Sword save. c4recover is available for download on GitHub. Click here to download c4recover (note: on the GitHub page the download link is the button to the right of the page called...
  6. hankinsohl

    Civ4 - Savegame Library and Editor (c4lib)

    Cheers. c4lib and c4edit are now available for download on GItHub. Click here (note: on the GitHub page the download link is the button to the right of the page called "Latest") to see the GitHub repository.
  7. hankinsohl

    Quick Modding Questions Thread

    Cheers. The link was provided in a post in another thread. But I've updated this thread to include the link since it was not clear how to download c4lib. c4lib and c4edit can be downloaded here (note: on the GitHub page the download link is the button to the right of the page called...
  8. hankinsohl

    Civ4 - Savegame Library and Editor (c4lib)

    I'm pleased to announce that c4lib (note: on the GitHub page the download link is the button to the right of the page called "Latest") has been released on Github. c4lib has met all of the design goals expressed above and offers an improved "translation" format which looks like this...
  9. hankinsohl

    Quick Modding Questions Thread

    I'm pleased to announce that c4lib, c4edit and c4recover are now available for download on github. c4edit is a command line used to edit BTS saves, including compressed BTS data. c4lib is a C++ library, allowing programmers to modify BTS saves. c4recover is a command line program built using...
  10. hankinsohl

    Quick Modding Questions Thread

    As part of the work I'm doing for the save game editor, I've looked into how Civilization 4 loads XML files. For those who are interested, details follow: Civilization 4 XML files are read using the algorithm described below. Some details, such as the use of schema for XML validation are...
  11. hankinsohl

    Quick Modding Questions Thread

    Does anyone know how XML loading works for Civilization 4? My understanding is that XML precedence works as follows: .\ASSETS\XML\*.xml ..\WARLORDS\.\ASSETS\XML\ *.xml ..\ .\ASSETS\XML\*.xml That is: BTS > Warlords > Vanilla I also thought that CustomAssets > BTS However, when watched under...
  12. hankinsohl

    Civ4 - Savegame Library and Editor (c4lib)

    Hi damerell: Thanks for the reply. The ability to convert between binary savegame and human-readable text format will be part of the editor utility. The stuff about schemas is to support mods that make changes to the format of savegames. The editor (and other tools developed using the...
  13. hankinsohl

    Civ4 - Savegame Library and Editor (c4lib)

    Interesting... I checked one of the saves in a hex editor and sure enough yields are not always 0 or 1 (I thought that they were for some reason). At any rate, the schema has this field as type int16 so it'll parse correctly in the library. I should probably update the prototype editor to fix...
  14. hankinsohl

    Civ4 - Savegame Library and Editor (c4lib)

    Attached is an extremely preliminary, first draft of an extended BNF grammar for the schema. I haven't checked the grammar and at present the lexical analyzer for it hasn't been written. I wanted to post the grammar in case it helps clarify the draft schema. The development plan going forward...
  15. hankinsohl

    Civ4 - Savegame Library and Editor (c4lib)

    @f1rpo Thanks for the comments. RE Range Checks The parser does check enumerators when parsing enums to ensure that they're in range. There are also a few checks such as maximum array membership size just in case something like -1 aligns with an array size. That said, the proof of concept...
Back
Top Bottom