Christoph Oelckers
5cfd427e42
- renamed local totalclock variables to reduce noise for the forthcoming timer cleanup.
2020-08-19 17:23:18 +02:00
Christoph Oelckers
91cc6a657b
- tick the fortune cookie display within the playsim code to ensure its duration is handled properly.
...
Fixes #204
2020-08-19 17:10:54 +02:00
Christoph Oelckers
f327e3832a
- fixed Blood's weapon drawer.
...
It didn't clear its custom flags and applied the wrong shade.
2020-08-19 16:56:36 +02:00
Christoph Oelckers
e22d9b21e4
- changed SW's cheat prefix from 'sw' to 'lw' (i.e. Lo Wang) so that the cheats do not start with two movement keys.
2020-08-19 16:51:15 +02:00
Christoph Oelckers
94beac937d
- scale down the notify display by 2 in RR.
...
Its fonts are double the size as the other games and this must be factored in here for HUD scaling to work as expected.
2020-08-19 16:40:54 +02:00
Mitchell Richters
042caf1b21
- SW: Implement cl_weaponsway
for game.
2020-08-19 15:35:04 +10:00
Christoph Oelckers
0a8f7e60b6
- fixed incompatibility of FindDistance3D with Shadow Warrior.
...
Fixes #200 and most likely many other issues as well.
2020-08-18 23:49:44 +02:00
Christoph Oelckers
57cdcda253
- initiate a proper game state reset when ending an episode.
...
Fixes #207 .
2020-08-18 20:56:18 +02:00
Christoph Oelckers
6eba7dc410
- play music on the summary screen and check for advancing every frame.
...
Fixes #203
2020-08-18 20:26:16 +02:00
Christoph Oelckers
5acd7cf5e1
- SW: Stop music when ending game.
...
Fixes #205
2020-08-18 20:15:06 +02:00
Christoph Oelckers
b417ad2f6d
- 0 is a valid level number.
...
Fixes #206 .
2020-08-18 20:12:04 +02:00
Christoph Oelckers
aa5f42e5f4
- more header consolidation and cleanup.
...
In particular, this removes the pointless kTrue and kFalse constants.
2020-08-18 18:56:56 +02:00
Christoph Oelckers
4ea93ebccc
Exhumed code cleanup
...
merging all AI headers and removing several unused files
2020-08-18 18:56:39 +02:00
Mitchell Richters
8d101a4a57
- SW: Properly fix the Uzi when reloading.
2020-08-18 22:48:58 +10:00
Mitchell Richters
471355dc2b
- SW: Fix some typos in pUziReload()
, fix some interpolation issues in pUziClip()
and fix sequence of events in InitWeaponUzi2()
.
2020-08-18 21:40:48 +10:00
Mitchell Richters
a29d7bd3cd
- SW: Change pSpawnSprite()
x/y coordinates from int to double to preserve precision for some calls.
2020-08-18 21:39:20 +10:00
Mitchell Richters
7af5d26feb
- SW: Fix the Uzi's reload interpolation issues.
2020-08-18 20:58:58 +10:00
Mitchell Richters
78e0e94f58
- SW: Fix interpolation issues with sword, fists and heart.
2020-08-18 20:49:12 +10:00
Mitchell Richters
5cc30ad7c6
- SW: Increase precision of x/y coordinates where possible.
2020-08-18 18:26:04 +10:00
Mitchell Richters
d79c61d559
- SW: Interpolate between ox
/x
and oy
/y
coordinates in pDisplaySprites()
.
2020-08-18 18:26:02 +10:00
Mitchell Richters
df6f27530e
- SW: Define ox
and oy
in PANEL_SPRITEstruct
and back up panel sprite x/y coordinates where appropriate.
2020-08-18 18:26:00 +10:00
Mitchell Richters
da2b1347ef
- SW: Change smoothratio
from int to double for storing returned result from CalcSmoothRatio()
with full precision.
2020-08-18 18:25:58 +10:00
Mitchell Richters
e8faca52a2
- SW: Prepare draw and panel code for interpolation of weapon's x/y coordinates.
2020-08-18 18:25:56 +10:00
Christoph Oelckers
a535f62d4a
- fixed: SW's intro cutscene must not terminate its sound.
...
Fixes #201 .
2020-08-18 00:04:48 +02:00
Christoph Oelckers
65cb267d56
- save the cookie texts in a savegame and clear them on level exit. Also handle them on a per-player basis.
...
Fixes #196
2020-08-17 22:05:14 +02:00
Christoph Oelckers
9159855957
- SW: set the main view's projection after rendering the camera texture, not before.
...
Otherwise the main view will take over the projection settings from the camera texture.
Fixes #194 .
2020-08-17 21:33:42 +02:00
Christoph Oelckers
ba2ff12f5b
- fixed summary screen properly this time.
...
Fixes #195
2020-08-17 21:19:18 +02:00
Christoph Oelckers
55de06ab2f
- fixed a few incorrect text labels.
...
Fixes #193
2020-08-17 20:55:57 +02:00
Christoph Oelckers
ca66e70d65
- print stats on secondary HUD.
2020-08-17 20:47:42 +02:00
Christoph Oelckers
ebc16ffe14
- do not display ammo for fists and sword
...
Fixes #192
2020-08-17 20:43:31 +02:00
Christoph Oelckers
522d8af6ca
- SW: implement the "end game" function.
...
Fixes #189
2020-08-17 20:38:46 +02:00
Christoph Oelckers
17f9bc8a8a
- initiate a full game reset when respawning after death.
...
This was done with the old code but we now have to set the respective flag explicitly because the init code is inside the main loop, not outside.
Fixes #188
2020-08-17 20:30:44 +02:00
Christoph Oelckers
8011526e71
- SW: fixed crosshair size.
...
Fixes #186
2020-08-17 20:28:12 +02:00
Mitchell Richters
b03450f200
- Repair minor Duke3D regression where timerUpdateClock()
was no longer called in newgame()
once 7bb6b6a1ee
removed `handleevents()'.
...
Repairs issue when starting new games and the clock isn't right (particularly noticable on E1L1 start).
2020-08-17 21:53:47 +10:00
Mitchell Richters
77825b4927
- SW: Remove duplicate if statement line.
2020-08-17 21:11:53 +10:00
Mitchell Richters
d0ed88221d
- SW: Alt HUD positioning tweaks.
2020-08-17 21:10:40 +10:00
Christoph Oelckers
d6701d91a3
- aded Alt. HUD icon tiles
...
Not tested yet, this merely uses the numbers from the item pickup function.
2020-08-17 01:06:29 +02:00
Christoph Oelckers
f7291960c3
- draft version of the secondary fullscreen HUD.
...
All elements are present, but the icons are still missing because I do not know the proper numbers yet.
2020-08-16 23:52:44 +02:00
Christoph Oelckers
25e8636a60
- eliminated a few smaller headers.
2020-08-16 23:21:24 +02:00
Christoph Oelckers
736f1461ca
- fixed the summary screen.
2020-08-16 23:00:05 +02:00
Christoph Oelckers
85538b467b
- fixed some initialization issues with the new main loop.
...
Looks like all map starting cases are working now.
2020-08-16 22:45:19 +02:00
Christoph Oelckers
695d81f88c
- main loop WIP.
2020-08-16 21:55:26 +02:00
Christoph Oelckers
60275c9b6b
- started with SW's new main loop.
...
Intro and menu are done, the game loop is quite a mess, unfortunately.
2020-08-16 20:10:26 +02:00
Christoph Oelckers
57efb26567
- wrap Blood's main loop into an exception handler for recoverable errors.
2020-08-16 20:04:27 +02:00
Christoph Oelckers
01d9bde7f4
- more cleanup of game.cpp.
...
The game init code is done.
2020-08-16 19:11:04 +02:00
Christoph Oelckers
baf1166319
- trying to bring order to game.cpp
...
Some reshuffling, plus moving the automap drawer to its own file.
2020-08-16 18:18:56 +02:00
Christoph Oelckers
78d3afb0bf
- cleaning out more garbage.
2020-08-16 17:09:59 +02:00
Christoph Oelckers
ab7774c6d7
- thinning out some garbage.
2020-08-16 16:57:42 +02:00
Christoph Oelckers
a8b0839592
- switch SW to CCMD based input.
2020-08-16 16:00:40 +02:00
Christoph Oelckers
8c98d44620
- handle console-based map changes directly instead of the cheat handler.
...
This allows handling user maps again.
2020-08-16 14:54:33 +02:00
Christoph Oelckers
532b11467f
- handle all level access and indexing through the mapinfo data.
...
No more level numbers will be stored in the game code.
2020-08-16 14:39:18 +02:00
Christoph Oelckers
9700b8435b
- handle Blood's level progression by the actual level data, not some episode/level pair.
...
This should allow loading user maps again.
2020-08-16 13:49:28 +02:00
Christoph Oelckers
598ea99441
- simplify the music starting code in Blood.
2020-08-16 12:35:46 +02:00
Christoph Oelckers
0ac8568be0
- removed redundant fields from Blood's startup info struct.
2020-08-16 11:58:42 +02:00
Christoph Oelckers
90a4d0dcb8
- removed the non-functional user map handling.
...
This will have to be redone in a more flexible manner
2020-08-16 11:42:13 +02:00
Christoph Oelckers
f9b953eeae
- removed SW's network code.
2020-08-16 10:40:20 +02:00
Christoph Oelckers
7bb6b6a1ee
- do not call handleEvents outside the main loop.
...
In other places I_GetEvent should be used to call the system's message pump and keep the app responsive, but all game side processing should be skipped.
2020-08-16 10:00:13 +02:00
Christoph Oelckers
fbdc6c7a6c
- removed dead Polymer handling in model code.
2020-08-16 09:36:32 +02:00
Christoph Oelckers
4b44e6e392
- removed redundant calls to timerUpdateClock.
2020-08-16 09:16:38 +02:00
Christoph Oelckers
da38ad4554
- more dead code removal.
...
SW really has a lot of leftover commented out code...
2020-08-16 09:14:07 +02:00
Christoph Oelckers
af2c836e54
- unused code cleanup.
2020-08-16 09:04:24 +02:00
Christoph Oelckers
af4464ba16
- remove all sound precaching code in SW
...
We're loading all sounds at game startup anyway so there's no point to do this.
2020-08-16 08:46:51 +02:00
Christoph Oelckers
ef78e8602a
- major cleanup and consolidation of the screen/hud resizing code.
...
This is now being handled by the backend, except for the processing of the key bindings which cannot be done yet.
2020-08-16 02:55:50 +02:00
Christoph Oelckers
5cf54033ed
- removed the demo code.
2020-08-15 22:31:44 +02:00
Christoph Oelckers
deb9b74ce2
- got rid of all remaining rotatesprite calls in SW.
...
Also removed some dead code from player.cpp.
2020-08-15 22:04:37 +02:00
Christoph Oelckers
67b3a38fa3
- draw all menu elements with DrawTexture instead of rotatesprite
2020-08-15 21:09:21 +02:00
Christoph Oelckers
5e81f88907
- replaced SW's stats display with the shared version.
2020-08-15 21:03:42 +02:00
Christoph Oelckers
910ca69484
- migrated all of SW's text display to the backend and removed the various redundant printing functions.
2020-08-15 20:29:13 +02:00
Christoph Oelckers
f0150569a4
- ported the load level screen and deleted some dead code in game.cpp
2020-08-15 16:41:08 +02:00
Christoph Oelckers
aa8113cf06
- ported the level summary screens. Not hooked up yet.
2020-08-15 15:29:47 +02:00
Christoph Oelckers
8595b9fa47
-play SW's intro through the screen job framework.
2020-08-15 13:04:15 +02:00
Christoph Oelckers
3f9cc1412c
- transitioning helper for screen jobs.
2020-08-15 10:55:21 +02:00
Christoph Oelckers
53cf248269
- added a few missing World Tour bits.
...
Looks like GDX missed the redefined new types of the old bosses.
Also guard the commentary sprites by a CVAR.
2020-08-15 10:25:30 +02:00
Christoph Oelckers
a690f44fc8
- use constexpr for translation utilities
2020-08-15 10:22:07 +02:00
Christoph Oelckers
c3ddde02b2
- use consistent types in FileReader's ReadInt* functions.
2020-08-15 07:33:21 +02:00
Christoph Oelckers
3d4177fbb2
- fixed return type of FileReader::ReadUInt64.
...
fixes #181 .
2020-08-14 23:56:31 +02:00
Christoph Oelckers
ff38cfe179
- open the in-game menu only when really inside a game and actually playing.
...
Fixes #182
This isn't foolproof but it's probably the best that can be done.
2020-08-14 22:41:32 +02:00
Christoph Oelckers
2403e8cb2c
- fixed RRRA summary screens.
2020-08-14 22:31:54 +02:00
Christoph Oelckers
37ea207d5a
- fixed another one of those stupidly badly designed iterator loops.
...
Fixes #176 .
2020-08-14 21:49:12 +02:00
Christoph Oelckers
52ddac21b0
- fixed RR's transition to its final map.
2020-08-14 21:30:09 +02:00
Christoph Oelckers
3455610031
- base palette cleanup.
...
Avoid passing this anywhere in the client code. It should only be set right before rendering the 3D view and the only code using the base palette should be the 3D renderer and hud_drawsprite.
Also make the palette override CVARs 3D view only in debug mode.
2020-08-14 21:18:14 +02:00
Christoph Oelckers
249c5b5734
- removed some dead code.
2020-08-14 21:12:32 +02:00
Christoph Oelckers
19635c7bdf
- render Blood's choking hands in the 3D view.
...
This may not be faithful but it looks a lot less buggy than placing these on top of the entire HUD.
2020-08-14 21:08:28 +02:00
Christoph Oelckers
66cb7f61a4
- fixed rendering on narrow screens with an aspect ratio less than 4:3 and removed some parts that are no longer needed.
2020-08-14 21:01:27 +02:00
Christoph Oelckers
a5d9886aa9
- cleaned up the remnants of the old statusbar code.
2020-08-14 00:56:34 +02:00
Christoph Oelckers
67c340b573
- ported the inventory bar.
...
Now the panel system is only used for displaying the weapons.
2020-08-14 00:38:27 +02:00
Christoph Oelckers
70b2215f4e
- ported the minibar HUD.
2020-08-13 22:37:58 +02:00
Christoph Oelckers
8c7b93ceef
- ported the compass.
2020-08-13 22:13:56 +02:00
Christoph Oelckers
9ccf717311
- ported the inventory display on the status bar.
2020-08-13 21:57:53 +02:00
Christoph Oelckers
eafaa56834
- armor and key display.
2020-08-13 21:14:01 +02:00
Christoph Oelckers
188b2d2daa
- ammo and weapon display ported.
2020-08-13 20:14:53 +02:00
Christoph Oelckers
b50bdb1ca1
- SW: started transition of the status bar.
2020-08-13 18:45:55 +02:00
Christoph Oelckers
dc653bbdc0
- thinning out some crap.
2020-08-13 18:19:44 +02:00
Christoph Oelckers
d7f8d1a5bf
- replaced the border drawing code in SW with Blood's.
2020-08-13 17:54:17 +02:00
Christoph Oelckers
0b6f299d0e
- removed the bot code.
...
This would become a refactoring hassle, maybe re-add it later?
2020-08-13 00:45:50 +02:00
Christoph Oelckers
4538068bcc
- more SW cleanup, removed two more files.
2020-08-13 00:04:55 +02:00
Christoph Oelckers
bb6972abb4
- SW: get rid of redundant common_game.h
2020-08-12 23:43:21 +02:00
Christoph Oelckers
9c40c2f6af
- don't draw screenblends when not in a 3D view.
...
Fixed #174 .
2020-08-12 22:52:41 +02:00
Christoph Oelckers
aef59ef523
- migrated SW cheats to the generic system, removed the more pointless of SWP's cheats and filled in a few blanks.
2020-08-12 22:24:51 +02:00
Christoph Oelckers
80d1b71899
- fixed sounds disappearing when the owning actor was deleted.
...
These sounds now get unlinked so that they can play out normally.
Fixes #119 .
2020-08-12 20:15:02 +02:00
Evan Ramos
81f85ee480
SW: Fix regression causing the last heat seeker to be a normal missile
...
It was caused by the fix for crashing when firing outside the map.
Also port said fix to the bunny rockets.
2020-08-12 19:16:25 +02:00
Christoph Oelckers
09a3567f14
- fix some more sloppiness with Blood's global game state.
...
Fixes #171 .
2020-08-12 19:11:16 +02:00
Christoph Oelckers
2dad86a304
- made some adjustments to DMessageBoxMenu to handle screens that must close the menu before performing their option.
...
Fixes #173 . The "End Game" menu option needs this.
2020-08-12 19:04:19 +02:00
Christoph Oelckers
2d545767ef
- completely clear all texture data when setting a frame size.
...
SMK tries to draw a texture from it before the first frame has been rendered. This ensures that it gets a fully black frame.
Fixes #167 .
2020-08-12 01:32:05 +02:00
Christoph Oelckers
05fbfa3f25
- Blood: When starting a new game, reset the global flag immediately.
...
Otherwise the game can get stuck in an endless loop when trying to set up a level.
Fixes 168.
2020-08-12 01:16:29 +02:00
Christoph Oelckers
57edd370a7
- fixed: When quitting the game, first clear the menu.
...
This is to ensure that the menu stack is empty.
Fixes 170
2020-08-12 01:15:03 +02:00
Christoph Oelckers
cbfa8abd34
- fixed some messed up conditionals in RR's switch code.
...
Fixes #166
2020-08-12 00:31:04 +02:00
Christoph Oelckers
83796e9eed
- changed map startup order to first play a cutscene before loading the level.
...
Something with the timers is screwing up here if a cutscene gets played - Blood's timer code is even worse than Duke's.
Fixes #151 .
2020-08-11 23:21:08 +02:00
Christoph Oelckers
4c01f1e073
- don't count chickens as kill.
...
Fixes #160 .
2020-08-11 21:42:41 +02:00
Christoph Oelckers
0686928ee8
- fixed transition to credits in blood.
...
Fixes #150 .
2020-08-11 20:26:50 +02:00
Christoph Oelckers
fcc271ed7b
- treat 100 as maximum volume for 2D sounds when coming from the SFX data.
...
Without this, many sounds are way too quiet, e.g. at tne beginning of E2M1 or the end of E3M7.
Fixes #146 .
2020-08-11 20:17:56 +02:00
Christoph Oelckers
85364c2bb6
- let all video players respect the SoundEnabled setting.
...
Fixes #164 .
2020-08-11 19:52:54 +02:00
Mitchell Richters
e083f78f8e
- stop Duke screaming while falling if player puts the jet pack on.
...
No need to keep screaming if the player has saved themselves.
2020-08-11 15:40:02 +02:00
Christoph Oelckers
6a10a7f266
- changed the rules for dimming the menu to be more clear
...
It will no longer depend on the game state when the menu was opened but the current game state - only on the dedicated menu screen there's no dimming - everywhere else a dim gets applied.
Also renamed GS_DEMOSCREEN to GS_MENUSCREEN for clarity
2020-08-11 00:46:27 +02:00
Christoph Oelckers
000c00dc91
- block game input during intro cutscenes
...
Fixes #158
2020-08-11 00:42:08 +02:00
Mitchell Richters
7243c08379
- stop weapon from moving up and down while cl_weaponsway 0
is set.
...
* Default zDelta is -2048, so only add (zDelta / 128.) if `cl_weaponsway 1` and add (-2048. / 128.) otherwise.
* Fixes #134 a bit better.
2020-08-11 08:40:42 +10:00
Christoph Oelckers
1d03d3d6a2
- fixed HUD meter and crosshair default size.
...
Fixes #137
2020-08-10 23:06:24 +02:00
Christoph Oelckers
7a2b1ee0aa
- moved Blood's updatePauseStatus call to the main loop.
...
Fixes #149
2020-08-10 22:44:24 +02:00
Christoph Oelckers
030ca6f75d
- reset the timer after the initial cutscene in Blood
2020-08-10 22:22:27 +02:00
Christoph Oelckers
070f04093a
- clear the buffer for the cutscene textures when starting a new cutscene.
...
Otherwise the first frame may display garbage.
2020-08-10 22:16:02 +02:00
Christoph Oelckers
97b202955c
- strip the drive letter off WAV names for cutscenes.
2020-08-10 22:11:00 +02:00
Christoph Oelckers
5165834441
- handle GS_FULLCONSOLE in Blood
2020-08-10 22:02:58 +02:00
Christoph Oelckers
cf5be7fbfa
- default gl_control_tear to false.
...
This doesn't work that well with animated cutscenes.
2020-08-10 22:02:37 +02:00
Christoph Oelckers
e93ec79608
- Blood: restart music after level warp.
2020-08-10 21:41:16 +02:00
Christoph Oelckers
3ba5ca46c9
- fixed font alignment in Blood
2020-08-10 21:14:42 +02:00
Christoph Oelckers
ca740ad709
- increase volume for summary screen's speeches in Duke.
...
Fixes #125
2020-08-10 20:59:04 +02:00
Christoph Oelckers
b1c8046470
- fixed dimming checks for menu.
...
Now with proper game state management this can be done better.
2020-08-10 20:43:51 +02:00
Christoph Oelckers
28b9aafe69
- disable translucency for menu text shadows.
...
It didn't look that great.
2020-08-10 20:27:00 +02:00
Christoph Oelckers
7317caf567
- do not loop the scream sound on the summary screen.
...
Fixes 143.
2020-08-10 20:24:49 +02:00
Christoph Oelckers
8a2d34cceb
- fixed typo in BUNZ cheat.
2020-08-10 20:22:12 +02:00
Christoph Oelckers
ddf238ff19
- fixed cheat args parser.
...
Fixes 139
2020-08-10 20:18:21 +02:00
Mitchell Richters
09f347353a
- fix cl_weaponsway()
for Blood.
...
Fixes #134 .
2020-08-10 22:08:44 +10:00
Mitchell Richters
db6d2e4d89
- fix cl_viewbob()
for Blood.
...
Fixes #134 .
2020-08-10 22:08:44 +10:00
Mitchell Richters
4c74c172e3
- fix screenjob.cpp PlayVideo()
returning after stripping drive letter without checking whether it was able to re-open the file thereafter successfully.
...
Fixes #128 .
2020-08-10 21:15:17 +10:00
Christoph Oelckers
d3df4e580c
- do not restart one-page image scrollers with Enter
...
Instead go back one menu level.
Fixed #129
2020-08-10 01:12:53 +02:00
Christoph Oelckers
c7e664d3a6
- animate status bar elements
...
Fixes #127
2020-08-10 00:36:50 +02:00
Christoph Oelckers
0492c5f4d3
- optimized reverb settings.
...
Fixes #124
2020-08-09 13:26:48 +02:00
Mitchell Richters
a3a7a8f6be
- repeat of cf548e055e
for RR.
2020-08-09 16:41:42 +10:00
Mitchell Richters
fb6a58904a
- Set glcycle_t
class as active when stat fps
is active.
...
Fixes #122 .
2020-08-09 16:39:15 +10:00
Mitchell Richters
cf548e055e
- clamp player sprite's xvel between 0 and 512 to stop it going into the negative with rapid posx/posy changes due to teleporting.
...
* With steroids and a controller (controllers have a slightly higher max fvel/svel than a keyboard), I could not get xvel to exceed 503.
* Fixes #123 .
2020-08-09 16:24:48 +10:00
Christoph Oelckers
d731bf4e57
- fixed typo in floor damage check.
...
This rendered the boots ineffective on lava.
Fixes #114
2020-08-07 23:30:08 +02:00
Christoph Oelckers
dfa3519ebc
- stop screaming sound when landing.
...
Fixes #116
2020-08-07 22:20:29 +02:00
Christoph Oelckers
596367f10f
- Screenblend fixes.
2020-08-07 22:00:43 +02:00
Christoph Oelckers
f8c65839f0
- fixed broken jumping.
...
This was a nasty, but typical case for Duke where a variable did not contain what the name said and was carried along way too much code.
Fixes #112
2020-08-07 21:59:11 +02:00
Christoph Oelckers
4b69a181c3
- use symbolic constants for some statnums
2020-08-06 20:54:51 +02:00
Christoph Oelckers
4cfeb9b2cc
- fixed bouncing flame in VACA2.
...
Taking a hint from EDuke32 here.
2020-08-06 20:54:02 +02:00
Mitchell Richters
47dbc46213
- fixed the interpolation issues while on a crane.
...
* Partially addresses issues discussed in #105 and #106 .
2020-08-06 15:39:45 +10:00
Christoph Oelckers
9060abbafd
- 8 more SW headers gone.
2020-08-06 00:18:45 +02:00
Mitchell Richters
bbe05b0c81
- harden FinalizeInput()
with else blocks on each if statement after checking whether all movement is blocked.
...
Fixes #105 .
2020-08-06 07:25:04 +10:00
Christoph Oelckers
3e8ff96e6b
- added workaround for DukeDC's ending cutscene which was abusing undefined behavior in the original code.
2020-08-05 22:57:45 +02:00