Commit graph

389 commits

Author SHA1 Message Date
terminx
fd19569099 Drop libpng and zlib in favor of a custom < 100 line .png writer and a drop-in zlib replacement called miniz.
git-svn-id: https://svn.eduke32.com/eduke32@6365 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-18 20:53:00 +00:00
hendricks266
494c778feb Fix some int/int32_t mismatches. DONT_BUILD.
git-svn-id: https://svn.eduke32.com/eduke32@6362 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-15 21:56:21 +00:00
hendricks266
f01c9205e9 Fix USE_OPENGL=0 build.
git-svn-id: https://svn.eduke32.com/eduke32@6361 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-15 21:56:17 +00:00
hendricks266
1c4c1e9b55 Polymer: Address an oversight in r4600.
git-svn-id: https://svn.eduke32.com/eduke32@6355 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-10 13:44:10 +00:00
hendricks266
37b2a751b9 compat.h: Add preliminary FALLTHROUGH macro to support
git-svn-id: https://svn.eduke32.com/eduke32@6353 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-10 13:44:04 +00:00
hendricks266
4252a60af9 Add an error directive to C++ standards versions < 2011.
git-svn-id: https://svn.eduke32.com/eduke32@6352 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-10 13:44:01 +00:00
terminx
3706ac1b43 Allow scripts to change MAXSPRITESONSCREEN before calls to drawrooms() and friends
git-svn-id: https://svn.eduke32.com/eduke32@6347 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-08 19:42:11 +00:00
terminx
8d7f23a842 Reduce MAXSPRITESONSCREEN from 4096 to 2048. Email me if you have a map so poorly designed that this actually breaks something!
git-svn-id: https://svn.eduke32.com/eduke32@6344 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-08 19:41:49 +00:00
terminx
1e647ca499 Change wordy error message I didn't like
git-svn-id: https://svn.eduke32.com/eduke32@6341 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-08 19:41:29 +00:00
terminx
8d2fe8ec1d Fix old Build engine bug: setgotpic() not called from parascan()
git-svn-id: https://svn.eduke32.com/eduke32@6340 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-08 19:41:21 +00:00
terminx
b3b40c9581 Allow writing to 8 and 16-bit CON arrays
git-svn-id: https://svn.eduke32.com/eduke32@6338 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-08 05:18:43 +00:00
terminx
cabb918c64 Fix out of bounds write caused by memset call missed when tilesiz was changed from vec2_t to vec2s_t
git-svn-id: https://svn.eduke32.com/eduke32@6337 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-08 01:48:01 +00:00
hendricks266
96c30ffade Turn DWM composition toggling (Windows Vista and 7 only) off by default.
We should only turn this on in specific cases, and turning it off by default will allow us to add these special cases as we get reports.

git-svn-id: https://svn.eduke32.com/eduke32@6331 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-06 14:43:14 +00:00
terminx
5ce9e2b208 Combine CONTROL_KeyBinds and CONTROL_MouseBinds
git-svn-id: https://svn.eduke32.com/eduke32@6328 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-05 05:42:54 +00:00
terminx
a9e513ecaf Add OSD_PROTECTED flag, set when gamefunc_Show_Console has been undefined from CON. Currently just requires you hold down shift when pressing the console key to open the console.
git-svn-id: https://svn.eduke32.com/eduke32@6325 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-05 05:42:37 +00:00
hendricks266
9fdfd10723 Double the default pointhighlightdist from 128 to 256, a compromise between reverting r5721 and resetting it to 512.
git-svn-id: https://svn.eduke32.com/eduke32@6318 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-05 05:37:55 +00:00
hendricks266
5cdc130692 Remove register keyword from LZ4 and libxmp-lite.
git-svn-id: https://svn.eduke32.com/eduke32@6312 1a8010ca-5511-0410-912e-c29ae57300e0
2017-07-05 05:37:35 +00:00
hendricks266
01b6047377 Trailing whitespace.
git-svn-id: https://svn.eduke32.com/eduke32@6303 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-27 11:01:22 +00:00
hendricks266
bf76269906 What the last commit said.
git-svn-id: https://svn.eduke32.com/eduke32@6302 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-27 11:01:12 +00:00
terminx
bb75d0fbde Texcache cleanups. No longer allocates a 256 byte buffer for every cache entry's name.
git-svn-id: https://svn.eduke32.com/eduke32@6300 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-27 02:24:34 +00:00
terminx
ee367baaea scriptfile.[cpp|h] cleanups
git-svn-id: https://svn.eduke32.com/eduke32@6299 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-27 02:24:28 +00:00
terminx
c25aa4a790 OSD (console) cleanup
git-svn-id: https://svn.eduke32.com/eduke32@6297 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-27 02:24:14 +00:00
terminx
2dfc3acb38 Templatize the clamp functions
git-svn-id: https://svn.eduke32.com/eduke32@6293 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-27 02:23:46 +00:00
terminx
8932251ad2 Reduce MAXVOXELS to 1024.
git-svn-id: https://svn.eduke32.com/eduke32@6292 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-27 02:23:40 +00:00
hendricks266
cb12f25cda Add a wallext structure for non-Lunatic builds so they can have a blend member too.
git-svn-id: https://svn.eduke32.com/eduke32@6276 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-25 11:23:53 +00:00
hendricks266
610d2e3b46 Connect wall.blend to Polymost in Lunatic builds with it enabled.
git-svn-id: https://svn.eduke32.com/eduke32@6275 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-25 11:23:47 +00:00
terminx
07419b18ab Workaround for MSVC bug
git-svn-id: https://svn.eduke32.com/eduke32@6272 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-24 21:18:12 +00:00
terminx
854b303d18 Fix command line help window in builds with the startup window disabled
git-svn-id: https://svn.eduke32.com/eduke32@6270 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-24 21:17:59 +00:00
hendricks266
5ef942f4ec Shrink the tilesiz vector to use int16_t members as the original arrays were.
git-svn-id: https://svn.eduke32.com/eduke32@6263 1a8010ca-5511-0410-912e-c29ae57300e0
2017-06-24 09:21:13 +00:00
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