NBlood / Rednukem / PCExhumed - r12971
---
8df2fb4d3 | [nukeykt] RR: strdup -> Xstrdup
e8637884f | [nukeykt] RR: adapt dn64 renderer to newer glbuild
8789e7a20 | [NY00123] reality_render.cpp: Fix repeated invalid enum error. Rendering is still broken.
e9eeca6b9 | [NY00123] RR/Blood/Exhumed: Implement startwin_isopen
e37b79fce | [NY00123] reality_render.cpp: Fix build
87969a4ca | [NY00123] glbuild.h: Add missing declaration of buildgl_uLookAt
dccf905b4 | [NY00123] RR: Remove sets of g_logFlushWindow
4ecb0472b | [NY00123] RR/Blood/Exhumed: Fix calls to OSD_SetParameters
a8b877091 | [NY00123] rr/src/sounds.cpp: Remove call to FX_SetPrintf
e40666c29 | [NY00123] Merge remote-tracking branch 'eduke32/master'
cba220b0d | [Richard Gobeille] engine: fix "-v" command line parameter
ac644121c | [Richard Gobeille] Duke3d: don't check FX_SoundValidAndActive() in S_ChangeSoundPitch() because FX_SetPitch() ends up forcing synchronization anyway
Fixes terminx/eduke32#234
9cc734f74 | [Richard Gobeille] engine: fix certain log messages not echoing to console
917e42e14 | [Richard Gobeille] engine: change polymer prprogram bit handling around a little bit
1bcc0b117 | [Richard Gobeille] Voidwrap: support setting and clearing "rich presence"
f0d7ebe24 | [Richard Gobeille] loguru: disable stacktraces on non-Windows if not using glibc
883f6a3e9 | [Richard Gobeille] Fix terminx/eduke32#219
bb917f82b | [Richard Gobeille] Duke3d: uncomment G_AddSearchPaths() call accidentally commented out for debugging in b689f9974f32acfa6200ba354ee2e21aea10702d
Fixes terminx/eduke32#237
d8ed2f92a | [Richard Gobeille] loguru: #include so this builds with MinGW again
14e452126 | [Richard Gobeille] loguru: use _fsopen() instead of fopen_s() so we can permit viewing eduke32.log read-only in other applications while the game is running on Windows
17e43649b | [Richard Gobeille] fix animvpx again
31cdb78fa | [Richard Gobeille] Duke3d: add STANDALONE_UNUSED
Used to silence warnings for function parameters that are unused in EDUKE32_STANDALONE builds.
a1d3bf3b3 | [Richard Gobeille] Duke3d: fix crash at startup when running with no video output
d50176dad | [Richard Gobeille] Duke3d: Linux warning fixes
a27a0b39e | [Richard Gobeille] loguru: no exceptions
494980971 | [Richard Gobeille] engine: don't use strcat_s
8955e53e2 | [Richard Gobeille] Windows: add missing SDL headers
0160291b9 | [Richard Gobeille] Duke3d: add line accidentally left out of b689f9974f32acfa6200ba354ee2e21aea10702d
72fc12997 | [Richard Gobeille] Duke3d: cool CON optimization
ca215177b | [Richard Gobeille] Duke3d: fix frame time counter logic typo
ade033601 | [Richard Gobeille] Duke3d: move default settings for ud.cashman, .fta_on, and .god to CONFIG_SetDefaults()
6b269d6d4 | [Richard Gobeille] Windows: update SDL to 2.0.20
28afe3448 | [Richard Gobeille] engine: fix kzopen() defect introduced in e28b00cec3fb6165783c0b8402f4681e8a19f607
054cf7050 | [Richard Gobeille] Duke3d: fix undefined behavior
0745c4cbf | [Richard Gobeille] engine: revert part of 5ffe0d7ea85d722ee527c9f559b1e14dd78f9235
2aa6ce56b | [Richard Gobeille] audiolib: fix winmm spare buffer list corruption when switching MIDI drivers
a747aebb0 | [Richard Gobeille] audiolib: use _beginthreadex() instead of CreateThread()
c1ba3989d | [Richard Gobeille] Duke3d: comment out S_MusicVolume() call in S_SoundStartup()
01f3f52f8 | [Richard Gobeille] hoist alloca calls outside of loops
730f9ad2c | [Richard Gobeille] audiolib: fix channel bounds check in adlib driver
d2fc35fb5 | [Richard Gobeille] Duke3d: prevent potential overflows of szScratch[] in minidumper
3233482a0 | [Richard Gobeille] engine: add EDUKE32_NORETURN
ccabd37b8 | [Richard Gobeille] Duke3d: fix stupid projectile flag interaction bug between PROJECTILE_EXPLODEONTIMER and the ones that make them bounce
This allowed projectiles with both PROJECTILE_EXPLODEONTIMER and PROJECTILE_BOUNCESOFFWHATEVER flags set to run .yvel until it was negative and then bounce forever.
b106eec0f | [Richard Gobeille] engine: fix USE_OPENGL=0 builds
104803cdc | [Richard Gobeille] editor: keep clipboard texture rot90 bit when pasting onto bottom walls
01b620912 | [Richard Gobeille] engine: only load SDL game controller DB after actually detecting a controller
b689f9974 | [Richard Gobeille] engine: integrate loguru to replace the existing logging implementation from osd.cpp and rework many log messages across the codebase.
8845593aa | [Richard Gobeille] loguru: EDuke32-specific modifications
aea1fd733 | [Richard Gobeille] engine: add loguru (https://github.com/emilk/loguru)
This is actually the fork from https://github.com/dosbox-staging/loguru, but the guy at the first URL did most of the work.
af3886737 | [Richard Gobeille] Duke3d: improve Polymost and Polymer setup menus
7ff7ccc3e | [Richard Gobeille] engine: add max texture size to glinfo struct
d57210033 | [Richard Gobeille] engine: change Polymost cvars around to be a little friendlier to users who want something other than the default lack of texture filtering, etc
New cvar hierarchy:
r_useindexedcolortextures overrides/disables r_anisotropy and r_usetileshades
r_texfilter overrides/disables r_useindexedcolortextures (and thus re-enables r_anisotropy and r_usetileshades)
This commit also fixes terminx/eduke32#235
417eaea99 | [Richard Gobeille] Duke3d: fix .ogg sounds defined for Duke talk sometimes not playing when used in the skill selection menu
We were hitting the FX_SoundActive() check for ud.skill_voice in G_NewGame() before the worker threads completed the decoder initialization work scheduled by the S_PlaySound() call in the MENU_SKILL case in Menu_EntryLinkActivate()--the code in G_NewGame() was proceeding to the next stage because FX_SoundActive() returned false, but our check occurred before it had a chance to return true.
This also swaps the call to FX_StopAllSounds() in G_EnterLevel() out for a call to S_StopAllSounds() instead, and alters S_StopAllSounds() to set g_dukeTalk to false.
Fixes terminx/eduke32#215
8e68bd6f9 | [Richard Gobeille] Duke3d: fix polymer savedfires thing
bbb893473 | [Richard Gobeille] engine: fix CPUID branding string on platforms other than Windows
d601f3fb0 | [Richard Gobeille] engine: use SDL_VERSION_ATLEAST macro instead of manual SDL_MINOR_VERSION etc checks
3113e79b2 | [Richard Gobeille] Duke3d: clean up a couple sprite loops
3123c0189 | [Richard Gobeille] Makefile: bump CSTD and CXXSTD to gnu11 and gnu++14 respectively
8e45fb2f6 | [Richard Gobeille] Duke3d: tweak EDUKE32_STANDALONE logic in a couple places, not intended to functionally change anything.
629b3f330 | [Richard Gobeille] mimalloc: update to 6ead2840ec620f1fc06297c310c902e56835c0a7
3b9f04270 | [Richard Gobeille] smmalloc: update to e76a373929c756206edb4b2cb69e0e528daadb48
This looks like it's supposed to fix an issue with the implementation of realloc() in cases where resizing a block allocated from smmalloc requires the new block come from the generic allocator (mimalloc in our case).
4d56e26ba | [Richard Gobeille] miniz: update to 13b21dddc733862f3a653809b671761849e18285
I think the only worthwhile change is a fix for use of uninitialized memory in tinfl_decompress_mem_to_callback()
0addeb6d1 | [Richard Gobeille] Duke3d: add static assert for NUMGAMEFUNCTIONS <= 64
8fbd0d1de | [Richard Gobeille] Duke3d: rename EDUKE32_STANDALONE variants of the inventory key names used in internal_gamefunction_names[] from ba7d12a3c2de83d3d979f1b7d6d9ac8d8da4d38c
cb6c4e772 | [Richard Gobeille] engine: fix issue with GL_TEXTURE_MAX_ANISOTROPY_EXT
711983d89 | [Richard Gobeille] tools: update generateicon to produce data compatible with the current engine source
a7a6cd043 | [Richard Gobeille] tools: fix compilation of Build utilities
b0754d782 | [Richard Gobeille] engine: fix silly defect in our printf functions
92126d3f6 | [Richard Gobeille] Duke3d: rename gamefunc_Show_DukeMatch_Scores to gamefunc_Show_Scoreboard, ditch related EDUKE32_STANDALONE use
Indirectly addresses array overrun issue in ba7d12a3c2de83d3d979f1b7d6d9ac8d8da4d38c
b3db44f59 | [Richard Gobeille] Duke3d: minor changes to new control ordering introduced in 5fbeae0c5cacda5273a07f1f13e37867750e25c5
a4d88a13e | [nukeykt] mapster32: take aspect and fov into account for hitscan vector calculation
5ffe0d7ea | [Dino Bollinger] Duke3D: Support for multiple simultaneously active Viewscreens
278ba013d | [nukeykt] engine: fix TROR regression caused by 421b54a8abb51e91cc539ec3a323e8581e2e05f7
5fbeae0c5 | [Dino Bollinger] Duke3D: Introduce modern default keybind ordering
Can be changed with the cvar cl_keybindorder. Settings the value
to 0 restores the original classic keybind order, 1 uses the
modern ordering. Either mode is overridden by custom keybind orders.
8982a256c | [Dino Bollinger] Duke3D: apply reordering to mouse and controller config as well
ba7d12a3c | [Dino Bollinger] Duke3D: Implement reordering of keyboard menu entries via DEF command
List the gamefunc names (or corresponding indices) separated by whitespace.
This will define the order of gamefuncs on the keyboard configuration menu.
Any omitted gamefuncs will not be listed in the menu.
Usage:
```
keyconfig
{
gamefunc_Move_Forward
gamefunc_Move_Backward
gamefunc_Strafe_Left
gamefunc_Strafe_Right
...
}
```
9107b8963 | [Dino Bollinger] Duke3D: Decouple keybind menu ordering from assigned gamefunc index
8ba7a4188 | [Dino Bollinger] Duke3D: replace NUMGAMEFUNCTIONS macro with an enum value
7c0a304ec | [Dino Bollinger] Duke3D: Fix an error with the bonus tile, and extend EVENT_GETBONUSTILE
Within EVENT_GETBONUSTILE, you can now set ud.return[0] to ud.return[4]
to change each frame of the bonus screen animation separately.
c1d069e7c | [Dino Bollinger] Duke3D: Add event EVENT_GETBONUSTILE to change bonus screen pic
The RETURN value will be set to the current base bonusscreen tile,
and changing it will change the tiles displayed in the bonusscreen.
9bf153e0b | [Richard Gobeille] engine: fix building against SDL older than 2.0.9
8167009e0 | [Richard Gobeille] SW: use CONTROL_SetAnalogAxisSensitivity() instead of CONTROL_SetAnalogAxisScale() for mouse
I don't think this is perfect but it should be an improvement.
740e1bcbc | [Richard Gobeille] Duke3d: fix an error in the autoaim logic where the z coord wouldn't be adjusted for CSTAT_SPRITE_YCENTER when playing Fury in EDuke32 (retail Fury builds were not affected)
6353ffe21 | [Richard Gobeille] Duke3d: add STANDALONE_EVAL macro
3cbf4001a | [Richard Gobeille] Duke3d: add menu option to control OPL3 volume post-amplification
77aa09023 | [Richard Gobeille] Duke3d: add mjr4077au to contributors
b85ed73ee | [Richard Gobeille] Duke3d: fix misleading usage of A_CheckSpriteFlags() (comparison with 0 implied the function returns the flag bits instead of `true` or `false`; it does not)
487ba030b | [Richard Gobeille] engine: extra const in libtess2
544044d66 | [Richard Gobeille] Duke3d: fix redundant assignment
cd88671f0 | [Richard Gobeille] audiolib: remove unused duplicate function that crept in during dev work on the WinMM MIDI driver
defbbfb6d | [Richard Gobeille] engine: fix use of value before validation in polymer_updatewall()
f78340554 | [Richard Gobeille] engine: prevent potential deferencing of null ptr
3a12ada9d | [Richard Gobeille] engine: this sort of type punning isn't necessary anymore
0beeebf70 | [Richard Gobeille] audiolib: update TinySoundFont to e86d986ed6ccb93b4ee41d2de656c49c721b18db
4c1939858 | [Richard Gobeille] engine: fix copy/paste error in screentextRender()
For some reason, this error didn't propagate into screentextGetSize().
63ae2ebaa | [Richard Gobeille] audiolib: optimize modulo operations out of a few common OPL3 emulator functions
56db37016 | [Richard Gobeille] audiolib: sort opl3_slot struct by member size
5aa3b1aa5 | [Richard Gobeille] Duke3d: only fix16_to_int the player's angle once when throwing pipebombs or placing tripbombs
397d5f405 | [Richard Gobeille] Duke3d: merge identical cases in switch
556e2eb64 | [Richard Gobeille] Duke3d: any compiler worth half a shit will optimize this away but I want the static analyzer to shut up about calling strlen within a loop
1c7f64f0d | [Richard Gobeille] engine: promote globalypanning to type of globalzd before shift
324edd1aa | [Richard Gobeille] Duke3d: fix copy/paste error
de4492fef | [Richard Gobeille] engine: consolidate identical cases in softsurface_blitBuffer() switch statement
2c2ed17c2 | [Richard Gobeille] This check wasn't doing anything
293a72841 | [Richard Gobeille] engine: prevent leak of address of object on stack in polymost_dorotatespritemodel()
2ba642e32 | [Richard Gobeille] engine: C++11 syntax for default constructors in vectormath lib
48af502a5 | [Richard Gobeille] GetWindowLong -> GetWindowLongPtr
dedc88947 | [Richard Gobeille] Makefile: add SDL_STATIC so Fury can static link SDL on Linux, but not any of its dependencies or other required libraries
573b07ced | [Richard Gobeille] engine: fix potential crash in polymost_fillpolygon()
ec4807edc | [Richard Gobeille] engine: no need to set initDone twice
47dfd1d1a | [Richard Gobeille] engine: fix faulty logic in OSD_SetLogFile()
86e2d456f | [Richard Gobeille] Duke3d: these conditions are already checked above
489ae41e3 | [Richard Gobeille] audiolib: fix undefined behavior
4af066e6d | [Richard Gobeille] Duke3d: fix accidental use of initprintf() instead of buildprint()
095ae9125 | [Richard Gobeille] engine: fix console debug output when loading hightile textures and model skins takes too long
9669860d8 | [Richard Gobeille] audiolib: remove dead code branch
75290ed30 | [Richard Gobeille] engine: wow I'm dumb sometimes
9f124036c | [Richard Gobeille] editor: fix possible file handle leak in osdcmd_artdump()
a6dfd93a2 | [Dino Bollinger] Duke3D: Only attempt to switch subweapon if we actually have the weapon
This fixes a bug in World Tour where trying to switch to the flamethrower
while the current weapon is the freezer, and you have flamethrower ammo
but not the actual weapon itself, then this instead locks the weapon key,
preventing you from switching back to the freezer from other weapons.
This bug also affected the Shrinker, but only if CON code changes the
'gotweapon 11' value to 0 after the player obtains the weapon.
dfee579e8 | [Dino Bollinger] Duke3D: Remove the 'previousboardfilename' mapart hack
This was a bandaid that prevented repeatedly loading the same
mapart when loading savegames. This meant having to constantly
update the buffer whenever clearing mapart, which is undesirable.
Fixes mapart not reloading after quitting to title, or ending an
episode and then loading a savegame.
888a987f5 | [Richard Gobeille] Duke3d: use FX_GetPosition() in S_GetSlot() to take the age of a voice into account when selecting a voice to cancel when attempting to play more than MAXSOUNDINSTANCES of a single sound simultaneously
71821e2c6 | [Richard Gobeille] audiolib: basic MV_GetPosition() support for FMT_VOC/FMT_WAV
c21ee6ed7 | [Richard Gobeille] Duke3d: move a debug assertion
8b9e3101d | [Richard Gobeille] GLAD: bump GL version to 3.0, drop GLES APIs since we don't use them
10ca19f0d | [Richard Gobeille] Duke3d: fix crash trying to play negative sound indexes from mistagged switches
95924490a | [Richard Gobeille] engine: tiny polymost optimization; swap 4 floating point divisions for multiplications in polymost_bindPth()
452f818fe | [Dino Bollinger] Duke3D: Reset all actor vars in prelevel() regardless of the sprite's statnum
Previously, only sprites with statnum 0 would have their per-actor variables
reset to the default on map load. This meant that sprites with statnums that
were pre-defined in the map would inherit the actor var values of the sprites
with corresponding spriteNums from the previous map.
Additionally, the per-actor var reset is now performed before EVENT_PRELEVEL,
meaning that any changes to actorvar that occur in this event will now persist.
Previously, altering actor vars for sprites with statnum 0 in this event would
not have any effect, as they would be reset to their defaults afterwards.
386ef4174 | [Dino Bollinger] Duke3D: Disable Rumble menu item if no controller found
a7ab79e69 | [Richard Gobeille] engine: fix more stupid errors in b6740a7b32d352e6d71a5be0bc118f381599933e
4822ad200 | [Dino Bollinger] Duke3D: Prevent segfaults when no sounds are defined.
f33c7ceaa | [Dino Bollinger] Duke3D: Add sanity checking to CON decimals, hex constants and labels
* Scripts no longer compile if a hex constant is malformed (e.g. 0x, 0xz)
* Compiler will now warn if a decimal or hex constant isn't terminated
in a sane manner. (example: digit is followed by letters: "100ab")
* Compiler will now warn if a label starts with digits. This is done to
prevent ambiguity between integer constants and actual labels.
b047d3701 | [Richard Gobeille] engine: fix dumbass GL state oversights
af2adccd7 | [Richard Gobeille] engine: fix stupid copy/paste error in b6740a7b32d352e6d71a5be0bc118f381599933e
38eba41b7 | [Richard Gobeille] Duke3d: WIP controller force feedback (rumble) support
Currently hard-coded with no real customization; algorithm and range of values will certainly change but the current implementation attempts to automatically discern appropriate force feedback values based on the potential damage inflicted by projectiles the player fires, events occurring in the map such as explosions and earthquakes, and on the damage the player receives.
A future commit will likely contain a way to send the force feedback impulses from CON.
a81be4c72 | [Richard Gobeille] engine: work on controller features
0178c7c95 | [Richard Gobeille] Duke3d: fix oversight in current A_RadiusDamage() implementation that allowed a sprite to inflict radius damage on itself
a3426ec1f | [Richard Gobeille] engine: fix animvpx
5bd6c57a6 | [Richard Gobeille] engine: unify some code duplication between gloadtile_hi() and mdloadskin()
32865f53b | [Richard Gobeille] asyncplusplus: update to 7d44011c7d450488e6ab695d09eb959f7d38414b
No functional changes here.
a66705e1b | [Richard Gobeille] Duke3d: fix Fury build
62e5ec77c | [Jordon Moss] engine: Add parameter to mdgetskinmap enabling fallback to other skins if one for the current pal isn't found.
564c0ba2f | [Dino Bollinger] Duke3D: Add ud member "folsvel" and allow strafing in map follow mode
`userdef[].folsvel` represents the strafe velocity.
06f542caa | [Jordon Moss] engine: Fix regression causing KV6 voxels to render black.
777027564 | [Dino Bollinger] Duke3D: Fix crash with jumping to menu options with letter keys
90da0fc1b | [Richard Gobeille] engine: allow r_pr_shadowdetail 6 (8192x8192)
3ca0f0f79 | [NY00123] Duke3d: add mus_tryformats cvar and menu option to control loading OGG/FLAC replacements for MIDI
Based on MR !175.
cc924eebb | [Richard Gobeille] Duke3d: fix sound regression causing sound #0 (KICK_HIT) to play when doors were opened
f456eb370 | [Richard Gobeille] Update gamecontrollerdb.txt
b98b1c198 | [Richard Gobeille] engine: add missing buildgl_bindSamplerObject() calls
255ae1eb1 | [Jordon Moss] engine: Get forcefilter working with models when sampler objects are enabled. Factored out some related code duplication.
7b325f1cb | [Richard Gobeille] engine: add SAMPLER_NEAREST_NEAREST_CLAMP and SAMPLER_NEAREST_NEAREST_WRAP, samplers which use GL_NEAREST_MIPMAP_NEAREST for the minification filter
It looks like mipmapping actually works with the indexed color texture shader in Polymost as-is, but it doesn't work with Polymer art mapping so we're disabling it there.
b3a831c62 | [Dino Bollinger] Duke3D: Add actor struct members `htfloorzoffset` and `htwaterzoffset`
Values range from -128 to 127. The former defines the distance of the
actor from all floors, the latter applies additively to the hardcoded
offset applied when on lotag 1 sectors. Positive values lift the actor
off the ground, negative values move the actor into the floor.
The default values for both struct members is 0. To achieve a net zero
displacement, htfloorzoffset needs to be set to -1, and htwaterzoffset
must be set to 24. Also note that internally, the offset is multiplied
by 256 to receive the actual z coordinates (like `iffloordistl`).
1cc6b192f | [nukeykt] engine: eliminate krecipasm in wall sprite rendering code
2cbb77c68 | [nukeykt] engine: fix integer overflow in wall sprite x coordinate calculations
76b84216b | [Jordon Moss] engine: bind a sampler object when drawing voxels.
4d7b0b9c7 | [Richard C. Gobeille] Revert "Duke3d: ACTIVATOR/MASTERSWITCH parity for SE2, SE3, SE18, SE21, SE31, SE32, and SE36"
This reverts commit fbf4ab5941b117b856c414022bd6c4a337cc6b43.
b1de3ede2 | [Richard Gobeille] mimalloc 2.0.3
2e909fc45 | [Richard Gobeille] audiolib: throw errors when vorbis and XMP decoder initialization in a worker thread fails, validate result of worker thread decoder initialization before allowing MV_Mix() to proceed with working with the voice
Untested beyond the obvious stuff like verifying the non-failure cases still produce non-failure results. These errors were still being handled before this commit, but it was in more of a rudimentary "do nothing and silently fail" sort of way.
25b63ddc4 | [Richard Gobeille] Duke3d: properly handle the rejection of sound data that can't be identified by file header again
1b880e5a8 | [Richard Gobeille] engine: oops, this still needs to be called here for Polymer to work in the editor
f5a0f0824 | [Richard Gobeille] engine: fix warning
19c6fd7dd | [Richard Gobeille] Fix some whitespace that ended up with tabs in it
7009ff785 | [Jordon Moss] engine: Add linear sampler object, fixes forcefilter DEF token in polymost.
dc16f81b2 | [Andrea Capparuccini] VoidSW: Stuttering fix
b733b4396 | [nukeykt] engine: fix integer overflow of globalzd in floor sprite rendering code
This commit also simplifies previous x/y panning fix
c4310a2ed | [nukeykt] engine: fix integer overflow of x/y panning in floor sprite rendering code
d90812371 | [Dino Bollinger] Duke3D: Prevent savemapstate during gamemodes EOL, RESTART and DEMO
This prevents accidentally overwriting the wrong map slot.
8e253a928 | [Richard Gobeille] Revert "Windows: update SDL to bfd2f8993f173535efe436f8e60827cc44351bea"
This reverts commit c1a128d71a92f6cc399b2a751fe8a81aeed5c553.
61f71049b | [Dino Bollinger] Mapster32: Increase MAXSOUNDS to 16384 to match the game-side limit
b3003aca2 | [Richard Gobeille] Duke3d: remove reset to previous projectile position from projectile bounce handling
Please report any weirdness relating to bouncing projectiles impacting surfaces.
9467311b9 | [Richard Gobeille] Duke3d: make actors set to move vertically in CON act as if SFLAG_SMOOTHMOVE was explicitly enabled
This smooths out stuff like octabrains and flying liztroops without making them look stupid when they move on the ground.
a56a75214 | [Richard Gobeille] engine: add amalgamated version of the vector math library found at https://github.com/glampert/vectormath
47e24d2b0 | [Richard Gobeille] engine: clean up r_persistentstreambuffer so you can turn it on and off without having to restart anything
839c19246 | [Richard Gobeille] engine: move all the cvars in polymost.cpp so that they're at least in the same spot
c1a128d71 | [Richard Gobeille] Windows: update SDL to bfd2f8993f173535efe436f8e60827cc44351bea
e67e5391e | [Richard Gobeille] Duke3d: fix a few polymer lighting bugs, add interpolation to light positions, etc
b6740a7b3 | [Richard Gobeille] engine: improve GL state management, add support for GL sampler objects, add libtess2 and implement in polymer in place of the GLU tesselator, drop dependency on libGLU, improve GL debug output (in debug builds), fix various GL resource leaks
This should prevent a few more state changes, and address issues arising from rendermode changes wiping our state but not any of our accounting data for said state.
Because libtess2 seems to be abandoned and because there were a few issues I needed to fix anyway, I went ahead and made a custom single-file header-only version for improved performance.
661883a52 | [Richard Gobeille] Duke3d: fix extra counters shown with r_showfps values greater than 1 to account for frames being rendered in places where they previously weren't
7304811fc | [Richard Gobeille] engine: detect GL_ARB_sampler_objects, drop detection of GL_ARB_vertex_buffer_object, GL_EXT_texture_edge_clamp, and GL_SGIS_texture_edge_clamp
0e45faace | [Richard Gobeille] glad: update to 0.1.34
3ddb9dd23 | [Richard Gobeille] engine: remove unfinished x86_64 port of the original x86 classic renderer
It never worked.
a9ba29fc7 | [Richard Gobeille] mimalloc: re-add EDuke32-specific patch I accidentally lost when I updated it
e08d1a9a1 | [Richard Gobeille] Fury: fix screen return-to-center when triggering save checkpoints, hopefully for good this time. :p
01f10a60f | [Richard Gobeille] Duke3d: fix map console command to work correctly with coroutine setup
Adds MODE_NEWGAME to player .gm
cd55f332e | [Richard Gobeille] Duke3d: turn G_DrawFrame() into a coroutine that can just be resumed from wherever we need to
Uses minicoro, https://github.com/edubart/minicoro
3c256ba15 | [Richard Gobeille] Update SDL gamecontrollerdb.txt
5b22f2c24 | [Richard Gobeille] mimalloc: update to e96614961f1a6b2a3ab01e4b21fc600c23d0ba1b
6812b7447 | [Richard Gobeille] Duke3d: sound fixes
fb4369f81 | [Richard Gobeille] audiolib: minor AdLib driver fixes
This fixes a crash when restarting the sound system twice in a row with the OPL3 driver selected but an .ogg (or .flac or any other format) is playing instead, and makes a couple of things FORCE_INLINE in the process.
68c56c7bf | [Richard Gobeille] audiolib: move libasync task to VoiceNode struct, explicitly wait on task completion before attempting to service a voice with MV_BeginService()
This fixes crashes when attempting to service an .ogg voice immediately after starting playback, before the decoder has actually finished initializing.
37987dd0b | [Richard Gobeille] Duke3d: fix warning
468523462 | [Jordon Moss] engine: Add parameter to hictinting_applypixcolor to allow disabling r/b channel swapping. Improved readability of hictinting_applypixcolor as well.
3ec0597d4 | [Richard Gobeille] Duke3d: jump to menu options when pressing letter keys
d5a6729d2 | [Richard Gobeille] engine: move yax_updown[] reset to yax_update()
466b45d98 | [Richard Gobeille] Duke3d: add scroll wheel support back into file selection menus, add PgUp/PgDn and scroll wheel support to the little submenus used for selecting screen resolution and configuring the framerate limit etc
ef06dff4d | [Richard Gobeille] engine: don't use SDL_WINDOW_FULLSCREEN_DESKTOP and don't call SDL_SetWindowBordered in fullscreen
bd1cd8cf4 | [Richard Gobeille] engine: ignore SDL_WINDOWEVENT_MOVED and SDL_WINDOWEVENT_RESIZED in fullscreen
I'm not sure if this is going to end up being the correct thing to do here, but it's what we shipped in the Fury 2.0 binary.
a4a34f19b | [Richard Gobeille] Duke3d: reformat information displayed within the save and load menus, add episode name and player health
ee91e8cdd | [Richard Gobeille] Duke3d: add display selection to menu, tweak menu framerate limit option
I'm not very happy with the list of values for the framerate limiter. All methods of presenting these values to the end user seem to be terrible: linear slider bars are cumbersome and contain many unnecessary values, and simply presenting a field for a value to be entered into requires the end user know what they're doing. Ugh.
e85273089 | [Richard Gobeille] engine: better multi-monitor support
af57b22d2 | [Richard Gobeille] engine: fix console logging issue on Linux introduced by logging rework
TIL vsnprintf and _vsnprintf are not, in fact, the same thing.
dac415581 | [Richard Gobeille] engine: remove r_vbos cvar (useless for a while now), modify voxmodel to store data converted to tris instead of quads that are converted during the VBO building pass
This is going to need a little work to get going again on the couple of configurations that don't define USE_GLEXT (GEKKO and EDUKE32_GLES). Should USE_GLEXT even be a thing anymore?
5aeb2b330 | [Richard Gobeille] engine: adjust polymost z-fighting mitigation, add two new cvars: r_spritedepth and r_spritedepthmul
r_spritedepth is the base multiplier for a sprite's position in the depth buffer and r_spritedepthmul controls the multiplier for a unique offset value assigned to each sprite drawn.
9a2a8c3e3 | [Richard Gobeille] engine: mask angle precision related geometry intersection by calculating higher precision angle for intersecting sprite planes from intersecting wall's normal
468b8e47a | [Dino Bollinger] Engine: Fix updatesectorz() not checking z height in fallback, and add fallback optimization to updatesectorexclude()
c423c6d50 | [Jordon Moss] Engine: Make floor-aligned model z offset behaviour in Polymost consistent with Polymer.
1e2ea45e2 | [Jordon Moss] engine: Fix a fuckup where I accidentally removed the color swap from gloadtile_art.
0dff28792 | [Jordon Moss] Fixed a bungle in gloadtile_hi. Only apply hictinting_applypixcolor if effect != 0.
8970754aa | [Richard Gobeille] engine: add "notrans" .def token for voxels to disable drawing with translucency in GL modes
e3df82073 | [Dino Bollinger] Duke3D: Add the CON commands `getngcflags` and `setngcflags`
Usage:
```
getngcflags [...]
setngcflags [...]
```
Gets/sets the flags for the newgamechoices entries at the specified
indices. The index list is variable-sized, up to a maximum of 3.
This can be used to enable/disable the MEF_Hidden and MEF_Locked state.
Supersedes the userdef struct members:
`m_newgamecustomopen` and `m_newgamecustomsubopen`.
0516522f5 | [Dino Bollinger] Duke3D: Extend newgamechoices menu with a third layer of entries.
Also permit usercontent flag on subentries.
65ae8627f | [Richard Gobeille] engine: address defect in c653ba7fc09257ed3590cd2ce29d155ef6752032
bfeaf6192 | [Richard Gobeille] Duke3d: fix S_ChangeSoundPitch()/CON_SETACTORSOUNDPITCH
d8a22b734 | [Richard Gobeille] Duke3d: improve S_StopAllSounds() (I think)
88047c890 | [Richard Gobeille] Duke3d: use .playing member of sound_t as bitfield, improve freeSlotQueue std::atomic usage
0730abdf1 | [Richard Gobeille] audiolib: offload xmp_create_context()/xmp_load_module_from_memory() into worker thread
76b0d9cf0 | [Richard Gobeille] audiolib: offload initial ov_open_callbacks() etc calls for vorbis into worker threads to avoid VM stalls when playing tons of .oggs from script
991cbd067 | [Richard Gobeille] engine: add libasync (async++), https://github.com/Amanieu/asyncplusplus/
0fb5f94d8 | [Richard Gobeille] engine: update libdivide to b322221677351ebb11f0a42fe9a9a2794da5bfe5, add libdivide_config.h
engine: update libdivide to b322221677351ebb11f0a42fe9a9a2794da5bfe5, add libdivide_config.h
5beeb55f1 | [Richard Gobeille] Duke3d: fix annoying GCC 11 warning
The warning says you can silence it by surrounding sizeof(int32_t) with extra parentheses, but it doesn't work.
c653ba7fc | [Richard Gobeille] editor: remove call to calc_sector_reachability() from yax_updategrays() in favor of calling it explicitly when needed instead
752740cd9 | [Richard Gobeille] engine: print commit hash from SDL_GetRevision() to log at startup when using SDL dev builds (odd-numbered patch level)
This is admittedly terrible, but it shouldn't break unless the SDL_GetRevision() output format changes, in which case it just won't print the string anymore.
b2e37a674 | [Richard Gobeille] engine: prune SDL_mixer stuff from sdl_inc.h
We will never NEED_SDL_MIXER.
afc5d85d6 | [Richard Gobeille] audiolib: silence warnings
24a7594ce | [Richard Gobeille] Duke3d: add predefined TILE_ANIM and TILE_VIEWSCR tokens for CON
1b4676b1c | [Richard Gobeille] Duke3d: remove extra S_SoundIsValid() check from A_PlaySound()
This is checked in both S_PlaySound() and S_PlaySound3D() anyway, and we need to get to that stage of execution in order for EVENT_SOUND to fire.
d8de0524b | [Richard Gobeille] engine: fix tabs in random.h
097eb09db | [Richard Gobeille] Fury: fix skipping intro screens with left mouse button
b51b55346 | [Richard Gobeille] Duke3d/MACT: change mouse sensitivity scale, move sensitivity cvars to MACT
ac9d5fbdb | [Richard Gobeille] engine: fix compilation warning with RELEASE=0 builds
b47b6ecfc | [Richard Gobeille] Duke3d: warn if attempting to load a savegame where all version fields match but userbytever, but let the player do it anyway.
9284eb27d | [Richard Gobeille] Duke3d: assign gamefunc_Inventory to CONTROLLER_BUTTON_B by default, change CONTROLLER_BUTTON_RIGHTSTICK to gamefunc_Toggle_Crouch
48c5d453d | [Richard Gobeille] Duke3d: better positioning for effect sprites spawned from projectiles
df3dbe508 | [Richard Gobeille] engine: return -1 from kdfread_LZ4() if the size of the compressed data is allegedly less than zero
0a03cf7af | [Richard Gobeille] engine: #ifndef NDEBUG screenshot_dir directory creation success console output
e2cfad1f1 | [Jordon Moss] engine: add screenshot_dir CVar. Defaults to "screenshots".
a835847d6 | [Jordon Moss] Engine: Apply tints on KV6 voxels; factor out shared code