2014-01-03
Finally, advanced image patching, patch dependencies, another bunch of small things... and a New Year's Resolution of never taking as long with releasing a new build ever again during active development.
thcrap
- Do string table lookups for string parameters in variable argument lists.
- Persistent string concatenation
- Support relative paths in the run configuration by turning them into absolute ones internally.
- Fix some memory leaks.
inject_CreateRemoteThread()
: Catch and detourLoadLibraryW()
.thcrap_init()
: Don't log exported functions.Use LoadLibraryEx()
in the injection payload to guarantee the correct DLL path.
thcrap_configure
- Write relative paths.
- Hardcode
srv.thpatch.net
as the default patch server. - Mention that the shortcuts work from anywhere.
- Rename the patch list "server" concept to "repository".
- Add recursive patch repository discovery.
- Display all locally available repositories in the patch selection.
- Move the list of selected patches to the bottom.
- Truncate long patch IDs.
- Patch dependency resolution
- Use a new method for naming run configurations.
- Ask for a custom run configuration file name.
- Ask if existing run configuration files should be overwritten.
- Require the selection of at least one patch.
- Print errors if writing failed, and ask the user to continue.
- Reword the patch selection.
- Set a sufficiently large console screen buffer to hold the patch list on Wine.
thcrap_tsa
- Correctly parse nested layout markup.
- Set window title to translated game title and identified build.
- Advanced image patching:
- Alpha-based patching on sprite level.
- Perform alpha blending for opaque originals.
- Walk the patch stack.
- Fix a logic flaw in ANM sprite boundary resizing.
thcrap_update
- Use the new
files.js
file instead ofpatch.js
for updating.
win32_utf8
- Add
SetDlgItemText()
.