Over three months of development, resulting in digitally signed automatic updates of thcrap itself... as well as lots of features nobody has asked for, and which will only matter a few years from now.
thcrap
- Use a custom resolving chain for global.js and the game's main JSON files.
- Move thcrap updating information from patch.js to the run configuration.
- Check for a valid file name pointer when dumping a data file.
- Optionally check a binary hack against an expected sequence of bytes.
- Detour ExitProcess() to properly shut down any thcrap worker threads.
- textdisp_CreateFontA(): Only override iCharSet if a face name is given.
- Implement detour chaining.
- Add a module to watch for and apply changes to the patch files.
- json_object_get_create(): Fail if the containing object is NULL.
- Zip file reading support.
thcrap_configure
- Use the flexible array loop for dependencies.
- Default to the Nmlgc repository.
- Mention the artwork offer.
thcrap_update
- Link to the default zlib1.dll instead of zlibwapi.dll.
- Allow deletion of unmodified patch files by using JSON nulls in files.js.
- Move update notifications for thcrap and the game itself to thcrap_update.
- Add digitally signed automatic updates of thcrap itself.
thcrap_tsa
- MSG patching: Increment the line counter correctly to repair hard line patching.
- Remove the <f$> ruby layout parser introduced in 2013-08-20.
- BP_ruby_offset(): Fix a crash if "font_dialog" or "font_ruby" are not given.
- Layout: Don't overwrite the current width when defining a tabstop.
- Layout: Parse font-related commands before anything else.
- sprite_patch_set(): Verify the destination sprite coordinates.
- Layout: Only use the rightmost tab cell for the last token on a line.
scripts
- repo_update.py: Dump JSON with Git-compatible whitespace.
- repo_update.py: Explicitly set UTF-8 encoding for text I/O.
- Add a script to digitally sign a release archive.
- Don't try to create directories with empty names when writing JSON files.
- Enforce Unix line endings for JSON files.
win32_utf8
- Add MoveFile(), MoveFileEx() and MoveFileWithProgress().
- Add GetTempPath().
- Add GetFileAttributes() and GetFileAttributesEx().
- Add LoadString().
- Add WideCharToMultiByte() and MultiByteToWideChar().
- Add InsertMenuItem().
- Add fopen().
- Add RemoveDirectory().
- Add DeleteFile().