April 2017
-
General
Change screenshot base name to scrn0000 instead of duke0000 for standalone builds. DONT_BUILD.
-
General
Flip the switch to C++11.
Show details
It's happening.
-
General
compat.h: Add logbase<size_t>().
-
General
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.
-
General
compat.h: Add some infrastructure for C++ template metaprogramming.
-
General
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.
-
General
compat.h: Add macros so that we can use constexpr without breaking C++ < 11 and C.
-
General
compat.h: Add some definitions for easy testing of language standard versions.
-
General
Add registry detection of the Steam path for World Tour installs.
-
General
Add the patched World Tour GRP to our checksum entries.
-
General
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.
Show details
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.
-
Add phony target "clang-tools" for use with clang-tools.
Show details
ex: clang-query `make clang-tools` DONT_BUILD.
-
Add *_ORDERONLYDEPS, which saves us an error message when building Lunatic on Mac.
-
Add *_SRCS variables, which reassemble the full paths of all source files.
-
Separate combinations of component objects for the six build targets into a variable specifically representing the combination.
Show details
The original variable name now contains the sub-group only.
-
Clean up more Lunatic setup.
-
LUNATIC_SRC
-
Slightly modify the way ENet objects are ignored for NETCODE=0 builds.
-
Split any source file from an rsrc folder into a separate list of objects, recombined at expansion time.
-
Factor out the expansion of source file names to object paths.
-
Add source code file extensions to all objects, and strip them back off with $(basename ).
-
Clean up Lunatic objects.
-
Change the phonies list so that it is newline-separated.
-
Move -funsigned-char from COMMONFLAGS to COMPILERFLAGS. DONT_BUILD.
-
Refactor, part 3: objects.
-
Refactor, part 2: phonies.
Show details
This commit uses GNU Make's Secondary Expansion feature. These rules could be slightly simplified if all the variables defining each component were renamed to use lowercase.
-
Refactor using advanced GNU Make tricks and $(eval), part 1: targets
-
Remove "dxtools" and "sdltools" as separate categories, and instead build them along with the normal tools when conditions of their target environment are met.
-
General
compat.h: Re-taxonomize one item.
-
General
Revert r6089. We can't live without strdup, strtoll, snprintf, strcasecmp, etc.
Show details
This is only an issue on some platforms.
March 2017
-
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.
-
Unfactor CWARNS from COMPILER_*.
-
Factor out common uses of COMMONFLAGS, COMPILERFLAGS, and LINKERFLAGS into COMPILER_* and LINKER.
Show details
Collateral changes: Engine objects now use COMPILER_CXX instead of CXX, BUILD_SETTINGS_LINKER now includes GUI_LIBS, and the Build tools now use LINK_STATUS and result instead of ONESTEP.
-
General
Fix r5498 so that projectiles actually do not hit their owner during their first tic of movement.
Show details
Clear the hitscan bit instead of blocking bit because Proj_MoveCustom uses CLIPMASK1.
-
General
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.
Show details
Patch from NY00123. DONT_BUILD.
February 2017
-
General
Remove XYZ.voc --> XYZ.flac format upgrades completely for sound effects, and leave them only for music.
Show details
XYZ.voc --> XYZ_voc.flac is still available.
-
General
compat.h: Upgrade ARRAY_SIZE.
-
General
compat.h: Upgrade EDUKE32_FUNCTION and add EDUKE32_PRETTY_FUNCTION.
-
General
Remove the implicit "static" from our FORCE_INLINE macro.
Show details
This will be important for C++ member functions.
-
General
Eliminate more cases of duplication of compat.h's functionality.
-
General
Route all inclusion of libc headers and most of POSIX headers through compat.h.
-
General
Remove HAVE_INTTYPES define.
Show details
No #else was ever provided for any build system that lacks inttypes besides MSVC.
-
General
Completely reorganize compat.h.