Build 6239
SVN-
Handle the save and savenn commands after the full tic is processed, instead of in the middle of it during execution. DONT_BUILD.
SVN handles and Git names are merged into one person.
Handle the save and savenn commands after the full tic is processed, instead of in the middle of it during execution. DONT_BUILD.
Only try texcache_fetchmulti on detail texture slots.
Check that texture entries have a non-skybox filename before using it in texcache_fetchmulti.
Fixes crash reported by Sgt Jack V.
Don't cut off a row and/or column of texels when drawing floor-aligned sprites with odd dimensions.
Add new tint flag 256, which always skips hightile when picking an image source.
Explicitly opt out of hicfindsubst falling back to pal 0 instead of checking against the reserved palnum range.
Factor out hictinting array accesses.
Create a new struct for hictinting that uses a uint16_t for flags.r
Add new userdef members gametext_tracking, mgametext_tracking, and menutext_tracking.
Make internal gametext calls use MF_Bluefont fields in the menus and a newly introduced MF_BluefontGame elsewhere.
Only use TEXT_GAMETEXTNUMHACK on internal gametext calls that benefit from it.
Optimize all gametext calls.
Make menutext use MF_Redfont fields.
Optimize all menutext calls.
Eliminate the RedfontGreen type and replace it with indentations (like "Apply Changes").
Eliminate the RedfontBlue type and replace it with the Disabled or LookDisabled flags.
Add a new MenuEntryFlag to make an option appear disabled but still work.
Fix a bug in r6184.
Clean up warnings in standalone mode.
Clean up gamefuncs in standalone mode.
Don't print any warnings to the log if an unrecognized gamefunc is dispatched; this is expected and normal when they are renamed.
Add undefinegamefunc.
Remove an old hack from my menu system that upon closer inspection is no longer needed.
Move rules around to unbreak Linux builds. This may be a GNU Make bug. DONT_BUILD.
Distinguish between .c files in rsrc and ones generated at build time in obj.
Amend r6150.
Changes to build as C++: Apparently an extern declaration must be present for the compiler to expose the symbols of struct objects.
Changes to build as C++: pointer casting
Changes to build as C++: Structs within other structs cannot be referred to by just the innermost name, and the using keyword does not work either. Split them out into the top level.
Changes to build (in C mode).
Remove the register keyword, since it is deprecated in C++11 and removed in C++17.
Improve what build information we print to the log at startup. New feature: compilers, their versions, and big-endianness. Removed: C++, as it is now mandatory.
Visual Studio apparently still defines __cplusplus as 199711.
Address some longstanding warnings with printf when building with MinGW's GCC 6 and newer.
Building with said newer versions may fix the -Wodr warning when building for release.
Introducing buildprint, a type-safe and more performant replacement for printf using C++11 variadic templates. At least, an incomplete version that is enough to implement the next commit.
Amend r6126, which doesn't leave "eduke32" defined anywhere for binary names when APPBASENAME is not specified.
Flip the switch to C++11.
It's happening.
compat.h: Add logbase<size_t>().
compat.h: Add new types, native_t and unative_t, functionally equivalent to our current bssize_t and bsize_t, respectively, but generated dependably using template metaprogramming when building with C++ >= 11.
compat.h: Add some infrastructure for C++ template metaprogramming.
compat.h: Upgrade our byteswapping functions with new versions that I have experimentally confirmed to compile down to the appropriate single assembly instructions on x86 and x86_64. As part of this, make them constexpr, and remove the OS-specific and inline assembly variants as sub-par due to these two improvements.
Add registry detection of the Steam path for World Tour installs.
Add the patched World Tour GRP to our checksum entries.
Modify Windows registry reading to check both 32-bit and 64-bit key locations.
Replace "gnu" with "c" in language standard declarations if we are using clang.
This should give us compatibility without compromising platforms that either don't recognize the "gnu" variants but include strdup, snprintf, etc anyway (clang on desktop), or that support "gnu" and don't include these functions in the "c" variants (gcc in devkitPPC). DONT_BUILD.
Address deprecation warnings with the latest Xcode and macOS.
Use -std=c99 and -std=c++03 instead of -std=gnu99 and -std=gnu++03.
Use "clang++" for building C++ with clang.
Add CROSS_SUFFIX option, as requested by rhoenie.
Move CUSTOMOPT to follow COMPILERFLAGS and LINKERFLAGS, so that it can overwrite more.
Move "-Wimplicit -Werror-implicit-function-declaration" from CONLYFLAGS to a new CONLYWARNS.
Factor out code for launching EVENT_GAME and EVENT_PREGAME.
Re-add a fixed version of old code for the SDL driver to initialize SDL as a whole or its audio subsystem if it has not yet been initialized.
Patch from NY00123. DONT_BUILD.
Remove XYZ.voc --> XYZ.flac format upgrades completely for sound effects, and leave them only for music.
XYZ.voc --> XYZ_voc.flac is still available.
compat.h: Upgrade ARRAY_SIZE.
compat.h: Upgrade EDUKE32_FUNCTION and add EDUKE32_PRETTY_FUNCTION.
Remove the implicit "static" from our FORCE_INLINE macro.
This will be important for C++ member functions.
Eliminate more cases of duplication of compat.h's functionality.
Explicitly specify the version of the C++ standard as which we are compiling.
Eliminate many cases of duplication of compat.h's functionality.
Define NOMINMAX in windows_inc.h.
Route inclusion of all Windows headers through a new header, windows_inc.h.
This allows us to make certain guarantees about limits on the extent of namespace pollution these headers introduce.
More of the previous commit, because VS can be frustrating.
Try fixing synthesis.sh.
Some tweaks to the cleanup.
I hoped ./ prefixes would work in a ignore on Windows.
Bring the previous commit into effect.
The great repository rearrangement of 2017.
Files moved but not modified. Changes to follow in a subsequent commit. You down with CPP?
Delete the default suffixes, to possible help avoid internal Make race conditions.
Only pass APPNAME and APPBASENAME to the preprocessor if a value for them was passed in.
Keeping compiler invocation clutter to a minimum is good.
Fix audiolib bindings, again.
Fix some vec2_t stuff I missed.
"new" --> "New"