json_object_merge: Don't create deep copies.

Why should we when there's a reference counter? Sure, you might want to re-use and change the original object... but in every single instance this function is currently used, the new array is trashed immediately after merging, anyway.

Also, change the function parameters to make a bit more sense, and remove that part about array merging - this has become such an integral part of the whole spec by now.
stack_json_resolve: Refactor the inner loop into its own function.

Because in the next step...
Introduce "fn_for_" as a prefix for functions operating on file names.
Include build-specific files in the patch stack resolving functions.
Layout command 't': Choose the longest string out of all given parameters.

... wow, 9 levels of indentation. I should work on this...
Add basic translation of hardcoded strings via dictionary lookup.
IsLatestBuild: Fix a crash if "latest" is neither array nor string.

... or simply not given at all. This is probably my most hated function in this whole project anyway.
Spell translation: Support base ID calculation based on the difficulty level offset.

This is necessary for the result screen, because we don't have spell_id there.
Yes, this *will* in some cases display the wrong translation if the actual target is not present in spells.js - but it's better than counting down all the way to zero.
strings_lookup: Optionally return the length of the final string.
Add a safe and persistent vsprintf handler.

This function should be inserted via binary hacks everywhere a game calls sprintf, as it guarantees a sufficiently large buffer for the result.

Closes #15.
win32_utf8: Order functions alphabetically.
win32_utf8: Add GetEnvironmentVariable.

This is necessary to run th125 and later with user names that contain non-ASCII characters.
CreateFontA: Check hardcoded strings for a replacement font.

This has priority over the run configuration setting. It'll be mostly used to provide replacements for games that use two or more fonts.
Bump version number to 2013-08-08
Well, it's the th14 full version release and still no GUI...
thcrap_configure: Disable console by default in new run configurations.

It was nice for debugging and all, but I suppose most players will be put off by it. It also impacts performance quite significantly in windowed mode.
Actually verify the CRC32 of downloaded files.

This introduces a dependency of thcrap_update on zlib, which just so happens to include such a function.

Also, I really don't know how I've ended up with a build configuration that requires ZLIB_WINAPI for the debug build only. Oh well, I'm in a hurry now, so I'll maybe look at that again some other time...
Bump version number to 2013-08-12
Don't download 0-byte files.
Ignore Internet Explorer's "work offline" setting.

... which will essentially block all wininet HTTP accesses on handles that do not explicitly ignore it.