Commit Graph

518 Commits

Author SHA1 Message Date
Christoph Oelckers bd4e4834e3 - moved the main shader and its entire uniform maintenance into the backend. 2019-10-05 12:28:08 +02:00
Christoph Oelckers ae1e090716 - all non-shader related GL calls are gone from the main code base. 2019-10-04 21:13:04 +02:00
Christoph Oelckers 96c0c3197c - abstracted away more OpenGL calls, in particular all matrix access. 2019-10-04 18:12:03 +02:00
nukeykt 528e7f8320 More meaningful names for build object struct members 2019-09-30 20:31:11 +02:00
nukeykt 61b4fae6e0 Simplify voxel rotation handling
# Conflicts:
#	source/build/include/mdsprite.h
2019-09-30 20:31:09 +02:00
Christoph Oelckers 7fd395b5d7 - removed some legacy demo stuff from RedNukem backend. 2019-09-26 00:19:49 +02:00
Christoph Oelckers d12563f644 - got rid of klzw and the legacy demo code along with it. 2019-09-25 23:12:29 +02:00
Christoph Oelckers 0261fef4a8 - removed some unused files. 2019-09-25 23:00:10 +02:00
Christoph Oelckers 18b1ca287e - moved the platform specific files out of the Build folder, mainly to get them out of the way. 2019-09-25 22:43:06 +02:00
Christoph Oelckers cd920299d0 - moved winbits.cpp to the platform folder and cleaned out unused parts. 2019-09-25 22:38:47 +02:00
Christoph Oelckers 330c80246e - added ZDoom's FArgs class for easier command line checking. 2019-09-23 19:29:25 +02:00
nukeykt 895fb719d9 blooddemohack -> enginecompatibility_mode 2019-09-23 01:30:07 +02:00
Christoph Oelckers 2cbe211e7c - transitioned project to CMake and deleted most of the old build system.
The EDuke32 and RedNukem frontends are working, Blood isn't yet.

Notes:

many of the CMake variables and its output still refer to zdoom. Before changing that I wanted to make sure to be able to commit something that works.
support code for Windows XP has been entirely removed. On Windows this will only target Vista and up.
the crc32.h header had to be renamed to deconflict from zlib.
several Windows API calls were changed to call the A-versions directly. Weirdly enough there were places that defined their parameters as T types but in a non-working way.
removed some remaining editor files and support for the native software rendering only Windows backend.
in a few simple cases, replaced 'char' with 'uint8_t'. The code as-is depends on chars being unsigned which is non-portable. This needs to be carefully reviewed.
2019-09-22 23:15:46 +02:00
Christoph Oelckers 0d98e7f256 - put all Blood game code into a namespace. 2019-09-22 08:39:22 +02:00
Christoph Oelckers 55a879fcc0 - put EDuke frontend source into a namespace.
This commit does not work yet!
2019-09-21 22:53:00 +02:00
Christoph Oelckers 30c47a8511 - include namespace file in all sources as the very first include. 2019-09-21 20:59:54 +02:00
Christoph Oelckers 5050716bc0 - removed most extern "C" from the rest of the code base. 2019-09-21 20:14:34 +02:00
Christoph Oelckers a2b429ffe0 - removed unused declaration. 2019-09-21 13:16:02 +02:00
Christoph Oelckers 998ac01157 - manual merge of all NBlood changes that couldn't get cherry picked. 2019-09-21 13:02:17 +02:00
nukeykt 81f78c24b7 Implement rotate parameter for voxel definitions
# Conflicts:
#	source/build/include/build.h
#	source/build/include/mdsprite.h
#	source/build/src/defs.cpp
2019-09-21 11:43:50 +02:00
nukeykt 68c7b8c402 Compile fix
# Conflicts:
#	source/build/include/build.h
2019-09-21 10:38:26 +02:00
nukeykt 935084ae52 More hacks to emulate old clipping
# Conflicts:
#	source/build/src/clip.cpp
2019-09-21 10:28:10 +02:00
nukeykt 107a630883 Add TROR rendering
# Conflicts:
#	source/blood/src/mapedit.cpp
#	source/build/include/editor.h
#	source/build/include/polymer.h
#	source/build/src/build.cpp
#	source/build/src/polymer.cpp
2019-09-21 10:11:02 +02:00
nukeykt 1fe344d273 Free cstat bit 14
# Conflicts:
#	source/blood/src/mapedit.cpp
#	source/build/src/build.cpp
#	source/build/src/engine.cpp
#	source/duke3d/src/astub.cpp
2019-09-21 10:10:15 +02:00
nukeykt 858da4351c Semi-working map save 2019-09-21 10:08:04 +02:00
nukeykt 2867131c86 Add ability to load blood maps
# Conflicts:
#	platform/Windows/nmapedit.vcxproj
#	platform/Windows/nmapedit.vcxproj.filters
#	source/blood/src/mapedit.cpp
#	source/build/src/build.cpp
#	source/build/src/engine.cpp
2019-09-21 10:06:57 +02:00
nukeykt 8fd6e0e183 TROR related tweaks
# Conflicts:
#	source/blood/src/mirrors.cpp
2019-09-21 09:59:58 +02:00
terminx 3e4f2de79a Add yax_getzsofslope(), based on getzsofslope_player()
git-svn-id: https://svn.eduke32.com/eduke32@8109 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 23:23:17 +02:00
hendricks266 47fc547532 Avoid a truncation warning in compat.h
git-svn-id: https://svn.eduke32.com/eduke32@8095 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 23:20:23 +02:00
terminx aa8ce8d42a Fix USE_OPENGL=0 builds
git-svn-id: https://svn.eduke32.com/eduke32@8082 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 23:17:57 +02:00
Christoph Oelckers d0a49c3278 - moved 4 more. 2019-09-20 23:12:07 +02:00
Christoph Oelckers be29d3a2df - removed the remains of the polymer renderer.
This cannot be reused in its current form, maybe it can help later.
2019-09-20 22:37:24 +02:00
Christoph Oelckers 1b20e5d4da - 3 more files moved out of 'build' folder.
# Conflicts:
#	platform/Windows/build.vcxproj
2019-09-20 22:34:34 +02:00
Christoph Oelckers 977614dea8 - two more headers to move to Thirdparty. 2019-09-20 22:33:47 +02:00
Christoph Oelckers c9111a6c7a - one more.
# Conflicts:
#	platform/Windows/build.vcxproj.filters
2019-09-20 22:33:35 +02:00
Christoph Oelckers 0c6af775ad - got rid of editor.h.
# Conflicts:
#	source/build/include/editor.h
#	source/build/src/2d.cpp
#	source/build/src/softwarerenderer/engine_swr.cpp
2019-09-20 22:24:53 +02:00
Christoph Oelckers 46b4b6ffd4 - removed all editor related code from 2D.cpp.
# Conflicts:
#	source/build/include/build.h
#	source/build/src/2d.cpp
#	source/build/src/softwarerenderer/engine_swr.cpp
2019-09-20 22:24:03 +02:00
Christoph Oelckers ce260526cb - moved fix16 to thirdparty as well and removed the now unused assembly files.
# Conflicts:
#	platform/Windows/build.vcxproj
2019-09-20 22:21:31 +02:00
Christoph Oelckers f3d01e8244 - moved compression utilities to a 'thirdparty' folder to get them out of the way.
# Conflicts:
#	platform/Windows/build.vcxproj
#	platform/Windows/props/build_common.props
2019-09-20 22:20:53 +02:00
Christoph Oelckers ba73268470 - removed GLES support and most related files.
My future plans do not include mobile support due tp poor support of modern APIs so this is essentially just baggage.

# Conflicts:
#	source/build/src/2d.cpp
#	source/build/src/dxtfilter.cpp
#	source/build/src/mdsprite.cpp
#	source/build/src/polymost.cpp
#	source/build/src/sdlayer.cpp
#	source/build/src/texcache.cpp
2019-09-20 22:16:21 +02:00
Christoph Oelckers 6299d2fe86 - removed all inline assembly crap.
Since no division function was handled here this is totally pointless on modern systems and will even on 32 bit cause performance degradation due to lack of optimizability.
The rest of that code in pragmas.h and pragmas.cpp should probably also be put under review. Much of it made sense 20 years ago but not anymore.
2019-09-20 22:10:35 +02:00
Christoph Oelckers b389c99bf5 - removed some SDL 1 parts. 2019-09-20 22:09:56 +02:00
Christoph Oelckers afe5128c70 - Blood fixes for changes in timer and mouse input interface- 2019-09-20 22:08:06 +02:00
terminx c835219de0 Align cache1d memory blocks to system page size
git-svn-id: https://svn.eduke32.com/eduke32@8072 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 21:10:43 +02:00
pogokeen b13c0f1b43 clockticks.hpp: Fix issue where higher precision comparisons would cause unexpected behaviour with game loop code due to ototalclock being incremented rather than set to totalclock (causing a lack of subtick precision and potential doubled up/dropped game updates).
Provide compareHighPrecision() for any code that needs higher precision comparisons.

git-svn-id: https://svn.eduke32.com/eduke32@8064 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 21:10:23 +02:00
terminx d0223fd744 Support fullscreening to the correct display in multiple monitor configurations
git-svn-id: https://svn.eduke32.com/eduke32@8063 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/include/baselayer.h
#	source/build/src/polymost.cpp
2019-09-20 21:10:22 +02:00
terminx f0ea646560 Fix SDL borderless windowed mode for real this time
Introduces r_borderless cvar. 0: never borderless, 1: always borderless, 2: borderless if resolution matches desktop resolution (default).

git-svn-id: https://svn.eduke32.com/eduke32@8060 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/include/baselayer.h
#	source/build/src/baselayer.cpp
#	source/build/src/polymost.cpp
2019-09-20 21:09:56 +02:00
terminx cef3c33e5f clockticks header fix
git-svn-id: https://svn.eduke32.com/eduke32@8056 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 21:09:17 +02:00
pogokeen 222e593437 Change some clocks to support sub-tick precision using a new class, ClockTicks.
Using that higher precision, interpolate at a higher granularity.
Further, truncate the target interpolation time to vertical blank boundaries to avoid producing temporal artifacts.
Fix issues caused by interpolation calculations being handled differently in multiple places (and fix cases where smoothratios were being thrown away only to be redone without checking all proper conditions).
Ensure ClockTicks changes do not break other targets (EKenBuild, VoidSW), but note any interpolation there is not similarly updated.

git-svn-id: https://svn.eduke32.com/eduke32@8050 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/build.cpp
#	source/build/src/sdlayer.cpp
2019-09-20 21:09:14 +02:00
terminx ec7fce9ff2 Ultra minor clipping stuff
git-svn-id: https://svn.eduke32.com/eduke32@8048 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 20:19:11 +02:00
Christoph Oelckers 20f5972b9b - fixed everything to compile again. 2019-09-20 19:37:29 +02:00
terminx 7ea2e4de54 Revert "This should be enough for SDL controller hotplug support but I haven't tested it"
git-svn-id: https://svn.eduke32.com/eduke32@8005 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:12:23 +02:00
terminx 7ec6a6beca This should be enough for SDL controller hotplug support but I haven't tested it
git-svn-id: https://svn.eduke32.com/eduke32@8003 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:12:19 +02:00
terminx c72a69ff6f This timing stuff actually works
It doesn't help when it turns out the compiler is broken and implementing std::chrono::high_resolution_clock as something that only counts in ms instead of properly aliasing it to std::chrono::steady_clock!

git-svn-id: https://svn.eduke32.com/eduke32@8002 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/sdlayer.cpp
2019-09-20 16:12:16 +02:00
hendricks266 1bbd251bff Rescan for controllers when toggling gamepads back on
git-svn-id: https://svn.eduke32.com/eduke32@7985 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:10:37 +02:00
terminx 04811f21f4 Replace separate timer implementations in SDL and Winlayer with a shared implementation based on std::chrono
git-svn-id: https://svn.eduke32.com/eduke32@7976 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	platform/Windows/build.vcxproj
#	platform/Windows/build.vcxproj.filters
#	source/build/src/mdsprite.cpp
2019-09-20 16:09:24 +02:00
hendricks266 3bfed33608 Add voxels option to menu, if at least one has been defined
git-svn-id: https://svn.eduke32.com/eduke32@7961 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/engine.cpp
2019-09-20 16:04:57 +02:00
hendricks266 01fa02e1c0 Make use of SDL2's Game Controller API.
Thanks to JonoF for his take on this.

git-svn-id: https://svn.eduke32.com/eduke32@7958 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:03:49 +02:00
terminx 41ff733fcd Happier try_facespr_intersect()
I'm prejudiced against 30-line functions with statements nested 5 levels deep.

git-svn-id: https://svn.eduke32.com/eduke32@7933 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 16:02:56 +02:00
terminx b8f668aa9b Polymost projection changes to correct the perspective in widescreen and ultrawide resolutions.
Patch from Nuke.YKT and Fox.

git-svn-id: https://svn.eduke32.com/eduke32@7916 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/include/polymost.h
#	source/build/src/polymost.cpp
2019-09-20 15:48:55 +02:00
terminx 40e54fdbbb Tweak how the semaphore used to detect multiple running copies of the game is utilized
git-svn-id: https://svn.eduke32.com/eduke32@7912 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:46:43 +02:00
terminx 064516c050 Re-implement our mutex_lock() family of functions using SDL's atomic spinlocks
git-svn-id: https://svn.eduke32.com/eduke32@7907 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:46:32 +02:00
terminx 9021b885d6 Eliminate pos_as_vec2 from anything that had it
git-svn-id: https://svn.eduke32.com/eduke32@7905 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/build.cpp
#	source/build/src/polymost.cpp
2019-09-20 15:46:28 +02:00
terminx 95598e08f9 getwalldist() tweak
git-svn-id: https://svn.eduke32.com/eduke32@7878 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:34:14 +02:00
terminx 9f9a158946 Replace runtime pow2 calculations with pow2char LUT usage
I don't know that this is any faster, but there's something to be said for standardization and consistency. I will be making most of this stuff use bitmap_set/test/clear() soon.

git-svn-id: https://svn.eduke32.com/eduke32@7876 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/build.cpp
#	source/build/src/polymost.cpp
2019-09-20 15:34:08 +02:00
terminx 1a0c56f0f1 This adds back in the engine's old automapping feature
This was removed a long time ago because Duke3D and Shadow Warrior don't use it.

git-svn-id: https://svn.eduke32.com/eduke32@7873 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymer.cpp
#	source/build/src/polymost.cpp
2019-09-20 15:32:13 +02:00
terminx c7e403619b Don't blow away wall cstat bit 14 for use as a temp flag in the editor
Patch from Nuke.YKT.

git-svn-id: https://svn.eduke32.com/eduke32@7870 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/build.cpp
2019-09-20 15:29:35 +02:00
terminx 0652b5b6d6 Make ksgn() return int instead of int32_t
git-svn-id: https://svn.eduke32.com/eduke32@7864 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:29:09 +02:00
terminx 26272f6755 if 0 out our klabs() function and just define it as abs()
The compiler generates much better code for this now.

git-svn-id: https://svn.eduke32.com/eduke32@7863 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:29:06 +02:00
terminx 752cf77887 Untabify a couple of headers
git-svn-id: https://svn.eduke32.com/eduke32@7862 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:29:05 +02:00
terminx 6e4951bdb6 Another clipping fix
git-svn-id: https://svn.eduke32.com/eduke32@7857 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:28:53 +02:00
terminx 490b7249a2 Allow reading vec3_whatever_t as vec2 directly
It's a union in a struct in a union in a struct. Oh god, what have I done.

git-svn-id: https://svn.eduke32.com/eduke32@7830 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:28 +02:00
terminx df28860bad Add divscale64()
git-svn-id: https://svn.eduke32.com/eduke32@7826 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:18 +02:00
terminx dc0130625a Minor pushmove() cleanup
git-svn-id: https://svn.eduke32.com/eduke32@7825 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:15 +02:00
terminx 2482cddbb5 Add getcorrectzsofslope()
git-svn-id: https://svn.eduke32.com/eduke32@7822 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:23:08 +02:00
terminx e6b700cf9b Promote divisor argument to tabledivide64 to int64_t and replace a couple of 64-bit divides in rintersect() and inflineintersect()
git-svn-id: https://svn.eduke32.com/eduke32@7820 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/build.cpp
2019-09-20 15:23:03 +02:00
hendricks266 e49e8f4cd6 Fix warnings in sjson
git-svn-id: https://svn.eduke32.com/eduke32@7813 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:17:45 +02:00
hendricks266 0cd74a6782 Add sjson to project
git-svn-id: https://svn.eduke32.com/eduke32@7812 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:17:43 +02:00
terminx 165b320f64 Amend r7805
'Murica.

git-svn-id: https://svn.eduke32.com/eduke32@7811 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:17:40 +02:00
pogokeen 3d63d1b720 Add updatesectorneighbour() and updatesectorneighbourz() and make them accessible to CON to allow searching for nearby neighbouring sectors from a known sector.
These updatesector counterparts are more performant for tasks that require determining whether nearby sectors exist at a point as they will not exhaustively search the map.
This also leads to more correct behaviour when sectors are disjoint, as queries will breadth-first search neighbouring sectors rather than risk accidentally stumbling first across accomodating disjoint sectors.

git-svn-id: https://svn.eduke32.com/eduke32@7805 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/include/build.h
2019-09-20 15:16:47 +02:00
hendricks266 d1b43acc06 Use std::numeric_limits instead of float.h
git-svn-id: https://svn.eduke32.com/eduke32@7799 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:14:23 +02:00
hendricks266 48b2cfef59 Fix compilation of linklist.h in C++11 mode with clang
git-svn-id: https://svn.eduke32.com/eduke32@7796 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 15:11:03 +02:00
pogokeen 1664310159 Support clamping in polymost1Frag.glsl and use it for sprites
git-svn-id: https://svn.eduke32.com/eduke32@7783 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/include/polymost.h
#	source/build/src/polymost1Frag.glsl
#	source/build/src/voxmodel.cpp
2019-09-20 15:10:02 +02:00
terminx 7e7f19b5fd Add tilehasmodelorvoxel() function and fix instances where voxels for multi-sided sprites would get flipped based on the viewing angle
git-svn-id: https://svn.eduke32.com/eduke32@7767 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:36:40 +02:00
terminx 7a6293ff42 Floating point grouscan() patch from Nuke.YKT, worth a couple of fps in classic mode in slope-heavy scenes
git-svn-id: https://svn.eduke32.com/eduke32@7755 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:36:08 +02:00
Christoph Oelckers 8de0fd35a1 - fixed compilation 2019-09-20 14:32:28 +02:00
pogokeen 2e75437262 If GL_ARB_clip_control & GL_ARB_depth_clamp are available, reflect that in glinfo
git-svn-id: https://svn.eduke32.com/eduke32@7753 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:18:33 +02:00
terminx f51b2a2cb3 Gump redux
git-svn-id: https://svn.eduke32.com/eduke32@7747 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 14:16:06 +02:00
terminx 3269875e7b Fix builds on platforms other than win32--oops
git-svn-id: https://svn.eduke32.com/eduke32@7746 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/include/compat.h
2019-09-20 14:16:03 +02:00
pogokeen 8cbdf3a0c4 Use stencil buffer in Polymost to restrict mirrors to only render within the region of the screen occupied by the mirror wall.
Additionally, raise minimum number of stencil buffer bits to accomodate future use of the stencil buffer.

git-svn-id: https://svn.eduke32.com/eduke32@7736 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/include/build.h
#	source/build/src/polymer.cpp
#	source/build/src/polymost.cpp
#	source/kenbuild/src/game.cpp
2019-09-20 14:04:29 +02:00
pogokeen 281ee3358b Add benchmarkmode cvar which allows putting demo cameras in the map which can be used for automatic benchmarking of performance & correctness testing
git-svn-id: https://svn.eduke32.com/eduke32@7729 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 13:32:24 +02:00
terminx b7f7c5fdc1 libdivide fixup
git-svn-id: https://svn.eduke32.com/eduke32@7725 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 13:17:34 +02:00
terminx 2ce96f67be Patch from Nuke.YKT to add support for the cstat flip bits to voxels in both software and Polymost
git-svn-id: https://svn.eduke32.com/eduke32@7723 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 13:17:29 +02:00
Christoph Oelckers 1c3487444c - some safety net. 2019-09-20 13:17:19 +02:00
terminx 1e0dd0e534 Templatized linked list functions
git-svn-id: https://svn.eduke32.com/eduke32@7720 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 13:08:34 +02:00
terminx 00222e05f6 Use remove_pointer_t instead of regular std::remove_pointer and add a definition for it for CXX11 builds
git-svn-id: https://svn.eduke32.com/eduke32@7719 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:07:46 +02:00
terminx 3130b51a96 Add SLOPTABLESIZ preprocessor definition
git-svn-id: https://svn.eduke32.com/eduke32@7718 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:07:42 +02:00
terminx d3f93fc00f EDuke32-specific libdivide customizations
git-svn-id: https://svn.eduke32.com/eduke32@7716 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:07:38 +02:00
terminx db7a2bd0db Update libdivide from git
git-svn-id: https://svn.eduke32.com/eduke32@7715 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:07:36 +02:00
terminx ff4449638e Use #if DEBUGGINGAIDS>=2 for the assertions in the structure trackers
git-svn-id: https://svn.eduke32.com/eduke32@7711 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:07:27 +02:00
terminx d2b3691e22 Remove FIXMATH_NO_64BIT
This codebase doesn't work on any platforms where int64_t isn't even a type.

git-svn-id: https://svn.eduke32.com/eduke32@7707 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:07:17 +02:00
terminx 7f32add116 It looks like this works in MSVC
git-svn-id: https://svn.eduke32.com/eduke32@7706 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:07:14 +02:00
terminx ccdba037b5 Added Xfree() function to accompany the Xmalloc() family of functions and change all uses of Bfree() to Xfree()
This was necessary because everything is already allocated with the Xmalloc() functions, but a future commit will make blocks allocated with those functions no longer compatible with the system implementation of free(), which Bfree() wraps.

git-svn-id: https://svn.eduke32.com/eduke32@7705 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/build.cpp
#	source/build/src/mdsprite.cpp
#	source/build/src/polymer.cpp
#	source/build/src/polymost.cpp
#	source/build/src/texcache.cpp
#	source/build/src/voxmodel.cpp
2019-09-20 12:07:10 +02:00
terminx dc62b986e8 Update miniz from 2.0.8 to 2.1.0--not much of a change
git-svn-id: https://svn.eduke32.com/eduke32@7703 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:02:41 +02:00
terminx 4ff7ec4a45 Minor pragmas.h cleanups
git-svn-id: https://svn.eduke32.com/eduke32@7700 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 12:02:33 +02:00
terminx 02ef02872a Replace manual casts of sprite and wall pointers to vec2/3_t with use of the anonymous union
git-svn-id: https://svn.eduke32.com/eduke32@7697 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/build.cpp
#	source/build/src/polymost.cpp
2019-09-20 12:02:26 +02:00
terminx 26a266dfe5 Rename STRUCT_TRACKERS_ENABLED preprocessor definition to USE_STRUCT_TRACKERS
This may also fix a minor performance regression introduced in Polymer sometime after we switched to building as C++, caused by confusion between STRUCT_TRACKERS_ENABLED and UNTRACKED_STRUCTS. UNTRACKED_STRUCTS is now named UNTRACT_STRUCTS__ to dissuade use outside of buildtypes.h.

git-svn-id: https://svn.eduke32.com/eduke32@7695 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymer.cpp
2019-09-20 12:01:36 +02:00
terminx 9d7e5d9970 Rename vec2s_t to vec2_16_t
git-svn-id: https://svn.eduke32.com/eduke32@7694 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymost.cpp
2019-09-20 11:28:57 +02:00
Christoph Oelckers f8b17e98f3 - sadly this crap is really needed... :( 2019-09-20 11:26:37 +02:00
terminx bd80cec462 Add anonymous union between separate coordinate variables and vec2/3_t in basic map structs
git-svn-id: https://svn.eduke32.com/eduke32@7693 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/include/buildtypes.h
2019-09-20 10:42:09 +02:00
terminx 1a4afe09a8 Add missing ifdef
git-svn-id: https://svn.eduke32.com/eduke32@7692 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:15:21 +02:00
terminx 5be379c6b0 This benchmarks as just the tiniest bit faster on my machine
git-svn-id: https://svn.eduke32.com/eduke32@7691 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:15:19 +02:00
terminx 0556fe1738 Simplify map structure tracker overloads
Due to less branching, this is actually faster than trying to be clever.

git-svn-id: https://svn.eduke32.com/eduke32@7690 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:15:17 +02:00
pogokeen 9b621c0ef2 Add GL debugging event annotations for Polymost functions
git-svn-id: https://svn.eduke32.com/eduke32@7681 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/include/polymost.h
#	source/build/src/mdsprite.cpp
#	source/build/src/polymost.cpp
2019-09-20 10:14:12 +02:00
terminx b0a4b6a1ee Convert loops using unsigned integers as iterators to use regular signed ints instead
https://kristerw.blogspot.com/2016/02/how-undefined-signed-overflow-enables.html

Doing this as cleanly as possible involved demoting several function parameters concerning object sizes and counts from size_t to int--I'm fine with this change as the functions in question are not actually capable of handling input with sizes larger than what can be stored in a signed 32-bit integer, making the use of size_t here misleading at best.

git-svn-id: https://svn.eduke32.com/eduke32@7673 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymost.cpp
#	source/build/src/texcache.cpp
#	source/build/src/tilepacker.cpp
2019-09-20 10:04:24 +02:00
terminx 9aa1030a09 Promote `display_mirror` from char to int32_t and remove GAMEVAR_UINT8PTR handling since nothing else was using it
git-svn-id: https://svn.eduke32.com/eduke32@7662 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:01:31 +02:00
terminx 0becd69e91 Tweak EDUKE32_PRE_XALLOC thing used when DEBUGGINGAIDS is defined
git-svn-id: https://svn.eduke32.com/eduke32@7661 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:01:29 +02:00
terminx badf4eab6d Add EDUKE32_PREDICT_TRUE to our *alloc macros and flip the condition around so the true branch is first
git-svn-id: https://svn.eduke32.com/eduke32@7660 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:01:27 +02:00
terminx 6395909290 Add preprocessor check for __OPTIMIZE__ to EDUKE32_PREDICT_TRUE and EDUKE32_PREDICT_FALSE
git-svn-id: https://svn.eduke32.com/eduke32@7659 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 10:01:24 +02:00
terminx 0ff1188b59 Rename Gv_GetVarX() to Gv_GetVar() (overloaded)
git-svn-id: https://svn.eduke32.com/eduke32@7652 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-20 09:38:38 +02:00
terminx 3db7512c69 Templatize bfirst_search_init() and bfirst_search_try() so they can be used with types other than int16_t
git-svn-id: https://svn.eduke32.com/eduke32@7629 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/build.cpp
2019-09-20 09:20:14 +02:00
Christoph Oelckers 0254bf82d3 - added NBlood source. 2019-09-20 00:42:45 +02:00
Christoph Oelckers 8074d8251e - can be compiled again but crashes. 2019-09-19 23:02:57 +02:00
Christoph Oelckers 53335f20ec - Blood merge
# Conflicts:
#	source/build/include/polymost.h
#	source/build/src/build.cpp
#	source/build/src/engine.cpp
#	source/build/src/polymost.cpp
#	source/build/src/voxmodel.cpp
2019-09-19 22:06:49 +02:00
terminx be86eb779b This is a few less instructions
git-svn-id: https://svn.eduke32.com/eduke32@7618 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 15:00:57 +02:00
pogokeen 2765ebec87 Fix depth buffer issue causing translucent sprites to not render properly in Polymost.
Use polymost_spriteHasTranslucency() and polymost_maskWallHasTranslucency() to determine if a sprite has translucency.
Optimize sprite rendering when in Polymost by only sorting sprites with translucency.

git-svn-id: https://svn.eduke32.com/eduke32@7612 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymost.cpp
2019-09-19 14:56:47 +02:00
terminx 60ea578a8c Add support for returning the closest point in the sector to getsectordist()
git-svn-id: https://svn.eduke32.com/eduke32@7609 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:52:37 +02:00
terminx 8d85e8d934 Add new findwallbetweensectors() function and change sectoradjacent() to use it
git-svn-id: https://svn.eduke32.com/eduke32@7608 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:52:35 +02:00
terminx 301ac48ccd Utilize the types added in the previous commit
This patch is a bit large.

git-svn-id: https://svn.eduke32.com/eduke32@7603 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/include/mdsprite.h
#	source/build/src/build.cpp
#	source/build/src/polymer.cpp
#	source/build/src/polymost.cpp
#	source/build/src/voxmodel.cpp
2019-09-19 14:46:31 +02:00
terminx 5948513d76 Introduce a few "new" types for convenience when dealing with pointers to sprites, walls, and sectors that bypass the StructTracker stuff
git-svn-id: https://svn.eduke32.com/eduke32@7602 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:37:07 +02:00
terminx a89c260592 Add optional output parameter to getwalldist(), to return the coordinates of the closest point on the wall
git-svn-id: https://svn.eduke32.com/eduke32@7600 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:37:04 +02:00
terminx 5052addc67 Remove useless unused "sqr" function
git-svn-id: https://svn.eduke32.com/eduke32@7597 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:36:59 +02:00
terminx 2d01182ef0 Update libdivide.h with a couple of fixes for obscure problems from their git repo
git-svn-id: https://svn.eduke32.com/eduke32@7595 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:36:56 +02:00
terminx 1fae340426 Fix a bunch of improperly defined bitmap arrays
git-svn-id: https://svn.eduke32.com/eduke32@7594 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/build.cpp
2019-09-19 14:36:54 +02:00
terminx 413d68f1f8 Replace yax_getclosestpointonwall() with getclosestpointonwall_internal() and use it in both yax_walldist() and getwalldist()
This commit also adds a getsectordist() but we aren't using it anywhere yet.

git-svn-id: https://svn.eduke32.com/eduke32@7591 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:36:40 +02:00
terminx ea826fb117 Move NEXTWALL and POINT2 macros into build.h
git-svn-id: https://svn.eduke32.com/eduke32@7590 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:30:26 +02:00
terminx 51e5e41830 Remove obsolete "msinttypes" headers
git-svn-id: https://svn.eduke32.com/eduke32@7589 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:30:24 +02:00
terminx e59f8e3b71 Use FORCE_INLINE and CONSTEXPR where appropriate in the Q16 fixed point math library
git-svn-id: https://svn.eduke32.com/eduke32@7588 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	platform/Windows/build.vcxproj.filters
2019-09-19 14:30:22 +02:00
terminx e5bd221746 auto/const/constexpr bullshit
git-svn-id: https://svn.eduke32.com/eduke32@7587 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:49 +02:00
terminx f9e866d32d Rename clipwalldist() to getwalldist() and move both it and sectoradjacent() to engine.cpp
git-svn-id: https://svn.eduke32.com/eduke32@7586 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:48 +02:00
terminx 76d7fec2ff Expose yax_getclosestpointonwall() for use outside of engine.cpp
git-svn-id: https://svn.eduke32.com/eduke32@7581 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:38 +02:00
terminx 8a68bffdb0 Clean up clip.h and declare a bunch of stuff in clip.cpp static
git-svn-id: https://svn.eduke32.com/eduke32@7571 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:19 +02:00
terminx 7d0faa5752 Reduce MAXCLIPSECTORS to 512
git-svn-id: https://svn.eduke32.com/eduke32@7570 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:17 +02:00
terminx b7d06c0bd8 clipmove/pushmove parameter const correctness
git-svn-id: https://svn.eduke32.com/eduke32@7567 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:26:12 +02:00
hendricks266 0c7a7e1bd6 compat.h: Factor some repeated conditional_t statements into a new take_sign_t
git-svn-id: https://svn.eduke32.com/eduke32@7559 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:23:32 +02:00
hendricks266 fb0443db69 Replace `#if CXXSTD >= 2011 || EDUKE32_MSVC_PREREQ(1800)` with `#ifdef HAVE_CXX11_HEADERS`
git-svn-id: https://svn.eduke32.com/eduke32@7557 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:23:29 +02:00
terminx 84c43dc99c Fix warnings with TrackedType
git-svn-id: https://svn.eduke32.com/eduke32@7551 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:23:22 +02:00
terminx 7abfcd28be Add clipupdatesector(), a special version of updatesector() that only searches and returns results that are already in clipsectorlist[]
git-svn-id: https://svn.eduke32.com/eduke32@7546 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:20:47 +02:00
hendricks266 664c1ed38e Fix extern "C" error in kplib.h affecting the Build tools
git-svn-id: https://svn.eduke32.com/eduke32@7543 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:20:40 +02:00
hendricks266 c2921abe4a SW: Address -Woverflow warnings resulting from the struct tracker templates being too restrictive
git-svn-id: https://svn.eduke32.com/eduke32@7526 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:05:59 +02:00
hendricks266 8b3f6b55e3 Dummy functions for mmulti.h for now until OldMP's mmulti is ported
Patch from Striker.

git-svn-id: https://svn.eduke32.com/eduke32@7517 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 14:05:47 +02:00
terminx 0edbd45145 Retire the original naive updatesector() and updatesectorz() in favor of the breadth-first versions
git-svn-id: https://svn.eduke32.com/eduke32@7484 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/build.cpp
#	source/build/src/polymer.cpp
2019-09-19 13:52:32 +02:00
terminx 631863ab67 const correctness for parameters passed to the updatesector family of functions
git-svn-id: https://svn.eduke32.com/eduke32@7478 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:51:46 +02:00
terminx 83999ee6e4 Minor cleanup of breadth-first search functions
git-svn-id: https://svn.eduke32.com/eduke32@7476 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:51:41 +02:00
terminx 146fa7e79e Add simple bitmap manipulation functions
git-svn-id: https://svn.eduke32.com/eduke32@7475 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:51:39 +02:00
pogokeen 0bfde1c4d3 Fix issue where swingdoors would refuse to open or close if an enemy was in front of the door in an overlapping but unrelated/disjoint sector
git-svn-id: https://svn.eduke32.com/eduke32@7473 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:51:35 +02:00
pogokeen a82eb1d6fe Re-introduce earlier lintersect() work that was reverted.
engine.cpp/.h: clean up & fix lintersect().  Additionally, add support for finding intersections of collinear line segments.

This reverts r7290.

git-svn-id: https://svn.eduke32.com/eduke32@7471 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:51:32 +02:00
terminx ceaaaf9c0d Reduce MAXCLIPNUM to 2048 again and introduce MAXCLIPSECTORS, with a value of 1024
git-svn-id: https://svn.eduke32.com/eduke32@7459 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 13:23:36 +02:00
terminx 0b1c21d477 Bump MAXCLIPNUM to 3072 because IM was still hitting it with 2048
git-svn-id: https://svn.eduke32.com/eduke32@7437 1a8010ca-5511-0410-912e-c29ae57300e0
2019-09-19 12:14:27 +02:00
terminx a5965e2562 Remove r_usetileshades--GLOBAL_NO_GL_TILESHADES flag for DN64 not affected
This also locks the texture filtering options in the menu behind ifdef guards until they're fixed.

git-svn-id: https://svn.eduke32.com/eduke32@7420 1a8010ca-5511-0410-912e-c29ae57300e0

# Conflicts:
#	source/build/src/polymost.cpp
#	source/duke3d/src/menus.cpp
2019-09-19 10:50:18 +02:00
Christoph Oelckers 51dc82b6a6 - merged in the changes RedNukem made to the Build code. 2019-09-19 00:19:02 +02:00
Christoph Oelckers 30dac6be74 - deleted the tilepacker. 2019-09-18 22:16:56 +02:00
Christoph Oelckers e0f823a492 - refactored texture setup to use an intermediate layer. 2019-09-18 22:16:15 +02:00
Christoph Oelckers 155f093bd5 - stuff 2019-09-17 20:57:45 +02:00
Christoph Oelckers d63cf04e06 - removed the compressed texture cache.
This is a pointless relic from the past and makes zero sense with modern graphics hardware.
2019-09-17 20:18:18 +02:00
Christoph Oelckers 2b439ae181 - work on backend 2019-09-16 23:28:26 +02:00
Christoph Oelckers 6536d910b3 - all drawing is being routed through the interface layer, all vertex buffers are gone.
No big loss here, none of them made much sense performance wise.
2019-09-16 21:08:42 +02:00
Christoph Oelckers 318009fd69 - added a centralized drawer and converted the main geometry drawer to use it. 2019-09-16 19:35:04 +02:00
Christoph Oelckers 524f6cf5e5 - crap 2019-09-13 22:18:37 +02:00
terminx 7ccbd22013 Move some clipping related stuff out of engine.cpp and into clip.cpp
git-svn-id: https://svn.eduke32.com/eduke32@7417 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-19 17:08:59 +00:00
terminx 770b255bff Calculate texture coordinates as double since we're storing them that way anyway
This isn't really intended to fix any specific issue, but to shut up Visual Studio whining about arithmetic overflows.

git-svn-id: https://svn.eduke32.com/eduke32@7403 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-19 17:08:05 +00:00
terminx 00cac93851 Bump MAXCLIPNUM to 2048
git-svn-id: https://svn.eduke32.com/eduke32@7397 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-19 17:07:41 +00:00
hendricks266 6ba0b64de6 Add buildvfs_fopen_write_text
Long-term we will need to replace all uses of "\n" in string literals printed to disk.

git-svn-id: https://svn.eduke32.com/eduke32@7394 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-11 06:06:47 +00:00
terminx b72dec2940 Fix compilation with winlayer
There are still a bunch of warnings, but fixing warnings in deprecated code that only one guy uses anymore isn't an efficient use of time.

git-svn-id: https://svn.eduke32.com/eduke32@7387 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-04 23:48:50 +00:00
terminx 2b3be31fa2 As if you couldn't already tell from Ion Maiden, I like shitty one liners
git-svn-id: https://svn.eduke32.com/eduke32@7383 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-03 11:15:08 +00:00
terminx 0e107acd39 Work around floating point precision issues in Polymost causing problems when rendering certain geometry from particular angles
git-svn-id: https://svn.eduke32.com/eduke32@7374 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-02 23:21:52 +00:00
terminx 61b89491c6 Lower MAXWALLSB
git-svn-id: https://svn.eduke32.com/eduke32@7373 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-02 23:21:48 +00:00
terminx e84d62416d Patch from Striker to allow selective tile redefinition in .def files based on the crc of the original tile
This only works for "tilefromtexture" for now.

git-svn-id: https://svn.eduke32.com/eduke32@7370 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-02 23:21:37 +00:00
terminx f7d4209084 Use lowercase when computing hashes in hash_getcode()
It turns out hash_findcase() has never worked properly because the correct bucket would never have been searched.

git-svn-id: https://svn.eduke32.com/eduke32@7364 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-02 23:21:13 +00:00
hendricks266 7414f29348 Add buildvfs, abstraction layer for file I/O.
Currently it passes calls through to the system libraries as before.

Also adds an incomplete implementation on PhysFS.

git-svn-id: https://svn.eduke32.com/eduke32@7359 1a8010ca-5511-0410-912e-c29ae57300e0
2019-03-01 08:51:50 +00:00
terminx 8e50f47aa4 rotatesprite hack from Fox
git-svn-id: https://svn.eduke32.com/eduke32@7321 1a8010ca-5511-0410-912e-c29ae57300e0
2019-01-30 00:19:56 +00:00
terminx ed0c45018e Re-add something I didn't intend to remove with r7297
git-svn-id: https://svn.eduke32.com/eduke32@7299 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-23 23:23:50 +00:00
terminx caf2a8c9c9 Re-enable -fno-strict-aliasing because apparently many versions of GCC across many platforms are still producing warning spew without it
git-svn-id: https://svn.eduke32.com/eduke32@7297 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-21 01:12:53 +00:00
terminx ea86e5520b Revert "engine.cpp/.h: clean up & fix lintersect(). Additionally, add support for finding intersections of collinear line segments."
This reverts r6886.

git-svn-id: https://svn.eduke32.com/eduke32@7290 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:40:31 +00:00
terminx 91096d2415 Hendricks and I discussed "auto *" and we've come to the conclusion that it's bad form, so this corrects that.
git-svn-id: https://svn.eduke32.com/eduke32@7283 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:39:51 +00:00
terminx ae39954376 Initialize rottile values to -1 with a loop like this instead, because doing it the C++ way increases the binary size by like 120KB
git-svn-id: https://svn.eduke32.com/eduke32@7255 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-15 01:37:19 +00:00
seventyfive 87cf4495bf - Packet code implementation (merge from private c/s repo), world updates are now synced through snapshots. See tag SVN_SyncPoint_Dec2018 on master of the other repo.
- "Scratch pad" sprites implementation, to avoid desyncs in sprite indexes, clients will insert temporary sprites which are cleared out when they receive the next snapshot from the server.
- Patches from Striker which fix player stomping frag counts, the accept button when hosting a game through the menu, and a "noffire" command line parameter.
- Patches from NY00123: t_data sync optimizations to improve some jittery behavior on the client side.

git-svn-id: https://svn.eduke32.com/eduke32@7242 1a8010ca-5511-0410-912e-c29ae57300e0
2018-12-08 00:40:39 +00:00
terminx 252fb58321 Fix oversight with wall texture rotation on tile 0
git-svn-id: https://svn.eduke32.com/eduke32@7240 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 21:17:59 +00:00
terminx 4861d1fc3d WIP wall texture rotation bit
git-svn-id: https://svn.eduke32.com/eduke32@7226 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:13:48 +00:00
terminx c1caf149d7 Compile without -fno-strict-aliasing.
git-svn-id: https://svn.eduke32.com/eduke32@7224 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:13:33 +00:00
terminx 1cbdb901bd This one is for Hendricks
git-svn-id: https://svn.eduke32.com/eduke32@7223 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:13:25 +00:00
terminx 21958bc110 Minor start window cleanup. This ended up touching a bunch of other files due to variable renaming, but there are zero functional changes to anything but the startup window in this commit.
git-svn-id: https://svn.eduke32.com/eduke32@7219 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:13:02 +00:00
terminx 022eb02c5e Move hash_getcode() and inthash_getcode() to hash.h so they can be used in places other than hash.cpp
git-svn-id: https://svn.eduke32.com/eduke32@7213 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:12:28 +00:00
terminx e513e1ceae Cleanup includes
git-svn-id: https://svn.eduke32.com/eduke32@7186 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:09:48 +00:00
terminx 5164ab4a25 More control/input cleanup
git-svn-id: https://svn.eduke32.com/eduke32@7181 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:08:53 +00:00
terminx 06f0e5e946 Move g_defaultVideoModes[] and g_keyAsciiTable[] from baselayer.cpp to baselayer.h and make them constexpr
git-svn-id: https://svn.eduke32.com/eduke32@7159 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:06:43 +00:00
terminx 1cae4ce7e3 Same shit, different diff
git-svn-id: https://svn.eduke32.com/eduke32@7156 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:06:27 +00:00
terminx 59fde95785 Another bunch of non-functional cleanup changes to the OSD
git-svn-id: https://svn.eduke32.com/eduke32@7155 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:06:21 +00:00
terminx f7fac7d9e0 "using osdcmdptr_t = osdfuncparm_t const * const" because I'm tired of seeing it everywhere
git-svn-id: https://svn.eduke32.com/eduke32@7154 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:06:15 +00:00
terminx 14f1ea1c05 Use "int" for OSD command return values and a few trivial globals. Our current usage of the return values would have even worked with bool, but we might want to add error conditions or something later.
git-svn-id: https://svn.eduke32.com/eduke32@7149 1a8010ca-5511-0410-912e-c29ae57300e0
2018-11-18 18:05:45 +00:00