Commit graph

360 commits

Author SHA1 Message Date
hendricks266
4dbeb30907 Add internal drawlinergb function.
git-svn-id: https://svn.eduke32.com/eduke32@6260 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-24 09:20:58 +00:00
hendricks266
0d6842800b Replace specialized swap C functions with a templatized version.
git-svn-id: https://svn.eduke32.com/eduke32@6257 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-24 09:20:46 +00:00
terminx
bf944cf27a Potential CON performance improvements
git-svn-id: https://svn.eduke32.com/eduke32@6250 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-24 06:31:21 +00:00
hendricks266
ccb6d27349 Polymost: Fix yoffset bouncing of face sprites with cstat 128.
git-svn-id: https://svn.eduke32.com/eduke32@6248 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-23 09:17:12 +00:00
terminx
dac7679633 Replace 2 memcpys with assignments
git-svn-id: https://svn.eduke32.com/eduke32@6231 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-23 03:58:48 +00:00
terminx
4ae5f2e298 Remove "BUILD_NOP6", old cruft for running on ancient x86 processors without MMX.
git-svn-id: https://svn.eduke32.com/eduke32@6229 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-23 03:58:36 +00:00
terminx
d1c0366916 Minor classic mode optimization
git-svn-id: https://svn.eduke32.com/eduke32@6228 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-23 03:58:31 +00:00
terminx
e3f3a8ce33 Move Mapster32 autoexec to before the map specified on the command line is loaded, to allow EVENT_PRELOADMAP and EVENT_LOADMAP to work when loading a map from the command line. This makes the console output of autoexec a little worse but the OSD will be fixed at a later time.
git-svn-id: https://svn.eduke32.com/eduke32@6223 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-23 03:58:01 +00:00
hendricks266
262e863b33 Polymodes: Only try texcache_fetchmulti on detail texture slots.
git-svn-id: https://svn.eduke32.com/eduke32@6221 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-22 01:32:10 +00:00
hendricks266
b25ec936b3 Polymodes: Check that texture entries have a non-skybox filename before using it in texcache_fetchmulti.
Fixes crash reported by Sgt Jack V.

git-svn-id: https://svn.eduke32.com/eduke32@6220 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-22 01:32:05 +00:00
hendricks266
f03d704ddb Polymost: Don't cut off a row and/or column of texels when drawing floor-aligned sprites with odd dimensions.
git-svn-id: https://svn.eduke32.com/eduke32@6219 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-21 13:47:04 +00:00
hendricks266
ad46ac785f Add new tint flag 256, which always skips hightile when picking an image source.
git-svn-id: https://svn.eduke32.com/eduke32@6218 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-21 13:46:59 +00:00
hendricks266
986a545ff5 Polymodes: Explicitly opt out of hicfindsubst falling back to pal 0 instead of checking against the reserved palnum range.
git-svn-id: https://svn.eduke32.com/eduke32@6217 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-21 13:46:54 +00:00
hendricks266
a032b829bf Factor out hictinting array accesses.
git-svn-id: https://svn.eduke32.com/eduke32@6216 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-21 13:46:50 +00:00
hendricks266
70245fc4f1 Create a new struct for hictinting that uses a uint16_t for flags.r
git-svn-id: https://svn.eduke32.com/eduke32@6215 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-21 13:46:44 +00:00
hendricks266
84c913d04c Only allocate space for tint flags combinations that require a pre-computed texture to be stored in memory, instead of space for every combination.
git-svn-id: https://svn.eduke32.com/eduke32@6214 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-21 13:46:36 +00:00
hendricks266
66c85ec71f Don't print any warnings to the log if an unrecognized gamefunc is dispatched; this is expected and normal when they are renamed.
git-svn-id: https://svn.eduke32.com/eduke32@6188 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-17 11:42:12 +00:00
hendricks266
7d6a0d965b Update LZ4 to 1.7.5.
git-svn-id: https://svn.eduke32.com/eduke32@6181 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-14 07:00:08 +00:00
hendricks266
95826e79b3 Update xxHash to 0.6.2.
git-svn-id: https://svn.eduke32.com/eduke32@6180 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-14 07:00:02 +00:00
hendricks266
f8bdc5814e Re-port our changes to libdivide.h and add new changes so that it works as we need.
git-svn-id: https://svn.eduke32.com/eduke32@6177 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-14 06:59:50 +00:00
hendricks266
284fdf1b63 Replace libdivide.h with an unpatched copy of the latest version.
git-svn-id: https://svn.eduke32.com/eduke32@6176 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-14 06:59:43 +00:00
terminx
feb8b43892 Better support for working with blend in the editor
git-svn-id: https://svn.eduke32.com/eduke32@6175 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-10 08:19:47 +00:00
terminx
faf5c90eef Another attempt at fixing Polymost z-fighting. Probably still sucks! :)
git-svn-id: https://svn.eduke32.com/eduke32@6170 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-09 06:41:45 +00:00
terminx
b13deef232 The most minor of minor optimizations. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@6166 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-09 06:41:23 +00:00
terminx
d76c3c2764 Polymost: fix texture panning floatiness on slight slopes
git-svn-id: https://svn.eduke32.com/eduke32@6164 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-09 06:40:17 +00:00
hendricks266
75d25d0d15 LPeg: Necessary changes for building in our environment and with our project. See lpeg-lunatic.patch.
git-svn-id: https://svn.eduke32.com/eduke32@6156 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-09 06:39:18 +00:00
hendricks266
b3d597200b Common.mak: Massive reorganization/cleanup.
Any functional changes are incidental and minor, other than the outright removals.

git-svn-id: https://svn.eduke32.com/eduke32@6147 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-09 06:38:42 +00:00
hendricks266
0633795683 Fix an extern "C" that was collateral damage in the last push. Fixes Lunatic build. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@6144 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-07 05:13:54 +00:00
hendricks266
8d8fd61ed0 Remove the register keyword, since it is deprecated in C++11 and removed in C++17.
git-svn-id: https://svn.eduke32.com/eduke32@6143 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-05 10:05:29 +00:00
hendricks266
576ff98f4d 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.
git-svn-id: https://svn.eduke32.com/eduke32@6142 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-05 10:05:22 +00:00
hendricks266
25b942de74 Visual Studio apparently still defines __cplusplus as 199711.
git-svn-id: https://svn.eduke32.com/eduke32@6141 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-05 10:05:17 +00:00
hendricks266
f781f21ccd 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.

git-svn-id: https://svn.eduke32.com/eduke32@6140 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-05 10:05:12 +00:00
hendricks266
914762513d 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.
git-svn-id: https://svn.eduke32.com/eduke32@6139 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-05 10:05:07 +00:00
hendricks266
5a0ed69310 compat.h: Add some more math stuff to support the next commit.
git-svn-id: https://svn.eduke32.com/eduke32@6138 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-05 10:05:03 +00:00
hendricks266
83c06a63b9 Fix some extern "C".
git-svn-id: https://svn.eduke32.com/eduke32@6137 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-05 10:04:56 +00:00
hendricks266
66f43bca24 compat.h: Prevent "warning: private field 'dummy' is not used". DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@6136 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-01 03:08:39 +00:00
hendricks266
d3c56b8a89 compat.h: Add logbase<size_t>().
git-svn-id: https://svn.eduke32.com/eduke32@6119 1a8010ca-5511-0410-912e-c29ae57300e0
2017-04-12 08:30:35 +00:00
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
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
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
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