Commit graph

12983 commits

Author SHA1 Message Date
hendricks266
73654c2079 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.
git-svn-id: https://svn.eduke32.com/eduke32@6118 1a8010ca-5511-0410-912e-c29ae57300e0
2017-04-12 08:30:32 +00:00
hendricks266
7a40df33b6 compat.h: Add some infrastructure for C++ template metaprogramming.
git-svn-id: https://svn.eduke32.com/eduke32@6117 1a8010ca-5511-0410-912e-c29ae57300e0
2017-04-12 08:30:29 +00:00
hendricks266
a1f317ecfc 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.
git-svn-id: https://svn.eduke32.com/eduke32@6116 1a8010ca-5511-0410-912e-c29ae57300e0
2017-04-12 08:30:26 +00:00
hendricks266
b98b00281c compat.h: Add macros so that we can use constexpr without breaking C++ < 11 and C.
git-svn-id: https://svn.eduke32.com/eduke32@6115 1a8010ca-5511-0410-912e-c29ae57300e0
2017-04-12 08:30:23 +00:00
hendricks266
1ebbd553bd compat.h: Add some definitions for easy testing of language standard versions.
git-svn-id: https://svn.eduke32.com/eduke32@6114 1a8010ca-5511-0410-912e-c29ae57300e0
2017-04-12 08:30:18 +00:00
hendricks266
0c31245cd2 Add registry detection of the Steam path for World Tour installs.
git-svn-id: https://svn.eduke32.com/eduke32@6113 1a8010ca-5511-0410-912e-c29ae57300e0
2017-04-09 13:09:01 +00:00
hendricks266
5441fcdb1e Add the patched World Tour GRP to our checksum entries.
git-svn-id: https://svn.eduke32.com/eduke32@6112 1a8010ca-5511-0410-912e-c29ae57300e0
2017-04-09 13:08:58 +00:00
hendricks266
8cf65eb180 Modify Windows registry reading to check both 32-bit and 64-bit key locations.
git-svn-id: https://svn.eduke32.com/eduke32@6111 1a8010ca-5511-0410-912e-c29ae57300e0
2017-04-09 13:08:53 +00:00
hendricks266
cb2d1f4bce Mac: Address deprecation warnings with the latest Xcode and macOS.
git-svn-id: https://svn.eduke32.com/eduke32@6109 1a8010ca-5511-0410-912e-c29ae57300e0
2017-03-27 17:13:07 +00:00
hendricks266
30ef04893b compat.h: Re-taxonomize one item.
git-svn-id: https://svn.eduke32.com/eduke32@6091 1a8010ca-5511-0410-912e-c29ae57300e0
2017-03-23 03:03:26 +00:00
hendricks266
3e64f08cd1 Fix r5498 so that projectiles actually do not hit their owner during their first tic of movement.
Clear the hitscan bit instead of blocking bit because Proj_MoveCustom uses CLIPMASK1.

git-svn-id: https://svn.eduke32.com/eduke32@6082 1a8010ca-5511-0410-912e-c29ae57300e0
2017-03-20 20:30:04 +00:00
hendricks266
af66b8a99f Factor out code for launching EVENT_GAME and EVENT_PREGAME.
git-svn-id: https://svn.eduke32.com/eduke32@6081 1a8010ca-5511-0410-912e-c29ae57300e0
2017-03-20 20:29:57 +00:00
hendricks266
06a38e3873 Audiolib: 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.

git-svn-id: https://svn.eduke32.com/eduke32@6080 1a8010ca-5511-0410-912e-c29ae57300e0
2017-03-01 09:35:58 +00:00
hendricks266
d5bd7681a0 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.

git-svn-id: https://svn.eduke32.com/eduke32@6079 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-25 08:16:04 +00:00
hendricks266
e9c8f44a47 compat.h: Upgrade ARRAY_SIZE.
git-svn-id: https://svn.eduke32.com/eduke32@6078 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-25 08:16:01 +00:00
hendricks266
d6e820645b compat.h: Upgrade EDUKE32_FUNCTION and add EDUKE32_PRETTY_FUNCTION.
git-svn-id: https://svn.eduke32.com/eduke32@6077 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-25 08:15:58 +00:00
hendricks266
62a921c409 Remove the implicit "static" from our FORCE_INLINE macro.
This will be important for C++ member functions.

git-svn-id: https://svn.eduke32.com/eduke32@6076 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-25 08:15:53 +00:00
hendricks266
77875948ba Eliminate more cases of duplication of compat.h's functionality.
git-svn-id: https://svn.eduke32.com/eduke32@6075 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-25 08:15:45 +00:00
hendricks266
aa04307ad1 Route all inclusion of libc headers and most of POSIX headers through compat.h.
git-svn-id: https://svn.eduke32.com/eduke32@6074 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-25 08:15:36 +00:00
hendricks266
22fbca52ca Remove HAVE_INTTYPES define.
No #else was ever provided for any build system that lacks inttypes besides MSVC.

git-svn-id: https://svn.eduke32.com/eduke32@6073 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-25 08:15:20 +00:00
hendricks266
2b8fb9bfc1 Completely reorganize compat.h.
git-svn-id: https://svn.eduke32.com/eduke32@6072 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-25 08:15:16 +00:00
hendricks266
3f5dbe17f2 Eliminate the windows_inc.h include from compat.h by special-casing UNREFERENCED_PARAMETER in a different way.
git-svn-id: https://svn.eduke32.com/eduke32@6071 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-25 08:15:13 +00:00
hendricks266
ee4d69093c Remove #define compat_h_macrodef__ and its absent case, which was only ever used for an old JFDuke3D port to PalmOS.
If for some reason you need to target a platform that lacks a libc, you're better off finding a libc, or putting together your own shim layer. It's a weekend project at most.

git-svn-id: https://svn.eduke32.com/eduke32@6070 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-25 08:15:10 +00:00
hendricks266
6d7191b848 windows_inc.h in two more places
git-svn-id: https://svn.eduke32.com/eduke32@6069 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-25 08:15:01 +00:00
hendricks266
26e740c0b7 Eliminate many cases of duplication of compat.h's functionality.
git-svn-id: https://svn.eduke32.com/eduke32@6067 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-19 22:15:56 +00:00
hendricks266
225be10f61 Define NOMINMAX in windows_inc.h.
git-svn-id: https://svn.eduke32.com/eduke32@6066 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-19 22:15:50 +00:00
hendricks266
d4ee6d00c8 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.

git-svn-id: https://svn.eduke32.com/eduke32@6065 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-19 22:15:44 +00:00
hendricks266
79279780a5 More of the previous commit, because VS can be frustrating.
git-svn-id: https://svn.eduke32.com/eduke32@6064 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-19 22:15:32 +00:00
hendricks266
1aaf246527 Limit what startwin.game.cpp needs to include.
git-svn-id: https://svn.eduke32.com/eduke32@6063 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-19 22:15:29 +00:00
hendricks266
3faa84f6d4 Remove dead code for selecting sound settings from the Windows startup window.
git-svn-id: https://svn.eduke32.com/eduke32@6062 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-19 22:15:23 +00:00
hendricks266
d43fb548cf Abolish all " ={ " when assigning a struct. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@6061 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-05 20:58:33 +00:00
hendricks266
417b047cf3 Bring the previous commit into effect.
git-svn-id: https://svn.eduke32.com/eduke32@6056 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-01 10:20:54 +00:00
hendricks266
1cc9d13ccf The great repository rearrangement of 2017.
Files moved but not modified. Changes to follow in a subsequent commit.

You down with CPP?

git-svn-id: https://svn.eduke32.com/eduke32@6055 1a8010ca-5511-0410-912e-c29ae57300e0
2017-02-01 10:01:11 +00:00