Christoph Oelckers
096a2bd4e9
- fixed some of the sound issues in Exhumed
...
* ambient sounds were constantly restarted resulting in garbled sound.
* sound priorities were not checked. This was used to limit some sounds to one instance per actor or to allow terminating other sounds playing on the same actor.
2020-08-26 20:22:11 +02:00
Christoph Oelckers
e5a4276a5a
- fixed infinite loop.
2020-08-26 20:20:36 +02:00
Christoph Oelckers
4e846f8d66
- do not print game init messages to the notify display.
2020-08-26 20:19:54 +02:00
Mitchell Richters
e3fe1b2b60
- Exhumed: Correctly transform player velocities when running on single 30Hz timer.
...
Thanks, Graf :)
# Conflicts:
# source/exhumed/src/exhumed.cpp
2020-08-26 17:27:15 +02:00
Mitchell Richters
0c300c181f
- Exhumed: Unify game with single timer instead of getting forward/side velocity at 120Hz.
...
* Player movement is close, but not exactly as it was. Requires more work if it is to be considered.
# Conflicts:
# source/exhumed/src/exhumed.cpp
# source/exhumed/src/ps_input.h
2020-08-26 17:26:42 +02:00
Christoph Oelckers
abf715eace
- unified the packet structures of all games.
...
Currently the bit fields are still separate and they have to be merged, but for now the added memory does not matter.
Having this structure in the common parts will allow work on consolidating the input code, though.
2020-08-26 17:12:48 +02:00
Christoph Oelckers
2ae5f960c5
- renamed fields in Exhumed's packed struct.
...
One step closer to getting these merged.
2020-08-26 17:09:47 +02:00
Christoph Oelckers
5a77aace2f
- strip the structure for local input off the fields not needed here.
...
Now it's basically the same as Dukes.
2020-08-26 16:59:42 +02:00
Christoph Oelckers
c1b1182f90
- fix weapon selection in Exhumed.
...
Like Blood it looks like the request isn't processed immediately so it needs to stick around.
2020-08-26 16:59:42 +02:00
Christoph Oelckers
b76168f673
- moved the main event processing functions into the global main loop.
...
Now, with all the Build timer stuff removed these calls were all identical between games.
2020-08-26 16:59:41 +02:00
Mitchell Richters
60f334f57c
- Exhumed: Partially restore sound issues following cc5e6d19c3
.
...
* Restored call of `UpdateSounds()` to `GameLoop()` and not `DrawView()` like previously.
Partially addresses #253 .
2020-08-26 23:22:44 +10:00
Christoph Oelckers
cc5e6d19c3
- fixed sound updating by moving the engine's UpdateSound call into the main loop.
...
This needs to be called unconditionally for every frame being rendered, not all of the game modules did that.
Placing this call here ensures that it is independent of anything the games do.
2020-08-26 04:10:16 +02:00
Christoph Oelckers
de871c9ab9
- use the game timer, not the Build timer for the sound eviction delay.
...
This is supposed to wait for two game frames to be on the safe side.
2020-08-26 03:50:07 +02:00
Mitchell Richters
e0aaaf1f60
- All Games: Move gameclock
and lastTic
to gamecontrol.
2020-08-26 09:49:44 +10:00
Mitchell Richters
2bf11ad378
- All Games: Remove use of timerGetTicks()
.
2020-08-26 09:49:38 +10:00
Mitchell Richters
aba5c4c134
- All Games: Remove use of timerGetHiTicks()
.
2020-08-26 09:49:36 +10:00
Mitchell Richters
b883204f6a
- All Games: Remove remaining use of totalclock
and associated timing code.
2020-08-26 09:49:34 +10:00
Mitchell Richters
39541408f2
- Exhumed: Fix what I believe is a typo.
2020-08-26 09:49:02 +10:00
Mitchell Richters
2748d6dc64
- Exhumed: Rename remaining use of totalclock
locally in screenjobs to currentclock
like Duke.
2020-08-26 09:48:59 +10:00
Mitchell Richters
a6cc3c4128
- Exhumed: Migrate to GZDoom time code like Duke and SW.
2020-08-26 09:48:57 +10:00
Mitchell Richters
76b05dbcd6
- Build (and games): Remove totalclocklock
.
2020-08-26 09:48:56 +10:00
Christoph Oelckers
d38a3a1fb1
- added autoaim switch for Exhumed.
...
Pointers for the needed change taken from GDX.
This applies only to hitscan weapons the rest do not appear to autoaim.
Fixes #260
2020-08-26 00:22:11 +02:00
Christoph Oelckers
5af71c0af2
- Exhumed: Implement "Quit to title".
...
Fixes #252
2020-08-25 21:34:12 +02:00
Christoph Oelckers
efc83e1a5f
- Exhumed: properly terminate the "Ramses" save block.
...
Fixes #258
2020-08-25 21:30:00 +02:00
Christoph Oelckers
5df0a7241f
- disabled a few menu options for unsupported features in Exhumed.
...
Fixes #255
2020-08-25 20:40:30 +02:00
Christoph Oelckers
435e13dfa4
cleanup of the timer interface.
...
* rewrote all uses of timerSetCallback. Most were unnecessary or long obsolete, the sound updates need to run per frame, not per tic and the UI tickers need to be handled in the main loop anyway.
* Use a more precise timer to animate the menu transition.
* uncouple other menu animations from the game timer.
2020-08-25 19:42:11 +02:00
Christoph Oelckers
1a633ce6a6
- give Exhumed some automap labels as well.
...
This game didn't have them originally so here the 'native' mode does not exist.
2020-08-25 00:27:14 +02:00
Christoph Oelckers
76811a1881
- InputState cleanup
...
This removes most of the InputState class because it is no longer used.
The only remaining places still checking scan codes are the modifiers for sizeup and sizedown.
All the rest was remapped to safer methods. The multiplayer taunts are currently inoperable, they will need support of shift-bindings to get proper support.
2020-08-24 20:34:18 +02:00
Christoph Oelckers
c09a5150a9
- added some predefined fullscreen modes
...
This is to cut down on boilerplate code because these encode the virtual screen size in the mode parameter, making it unnecessary to specify a virtual size separately.
2020-08-24 20:25:53 +02:00
Christoph Oelckers
f1a988b221
- make use of map bindings
...
All automap controls have been moved there, and sizeup/sizedown have been made CCMDs, taking screen size management entirely out of the game modules
2020-08-24 20:20:15 +02:00
Christoph Oelckers
e158775e67
- … and for Exhumed
...
This game does not implement follow mode.
Note: Follow mode needs to be simplified across games!
2020-08-24 19:54:26 +02:00
Christoph Oelckers
7859a29e95
- use global variables to track automap state
...
So far implemented in Duke/RR.
2020-08-24 19:31:43 +02:00
Mitchell Richters
89a15335df
- Exhumed: Clear the screen in the 2D drawer prior to drawing in menu_DoPlasma()
.
...
Fixes #237 .
2020-08-24 17:44:39 +10:00
Mitchell Richters
e8057cd871
- Exhumed: Fix menu scaling upon opening following changes in 979cc63835
.
...
Fixes #238 .
2020-08-24 17:11:51 +10:00
Mitchell Richters
6cbd607f31
- Exhumed: Stop playing kSoundJonLaugh2
in DLobotomyScreen
screenjob if skiprequest
is true.
2020-08-24 16:51:38 +10:00
Mitchell Richters
b5823385e1
- Exhumed: Fix if statement in DrawWeapons()
following changes in e225e85ae1
.
2020-08-24 16:02:12 +10:00
Mitchell Richters
e225e85ae1
- Exhumed: Perform weapon bobbing with maximum precision and implement cl_weaponsway
.
2020-08-24 13:22:52 +10:00
Christoph Oelckers
fed70e6df7
- make Exhumed's intro block the UI.
...
Fixes #235 .
2020-08-24 00:36:47 +02:00
Christoph Oelckers
8b8f048393
- moved parts of videoNextPage to app_loop.
2020-08-23 18:08:08 +02:00
Christoph Oelckers
adb98a47ba
- restructured the main loop code so that the actual loop is in the common code.
2020-08-23 17:47:05 +02:00
Christoph Oelckers
85875da77a
- removed the old start-of-level-only savegame code.
...
This serves no purpose anymore, even with a checkpoint-based gameplay the full saves will do just as well.
2020-08-23 16:30:20 +02:00
Christoph Oelckers
f7fcd341ec
- removed redundant levelnum variable.
...
Better use the global map record.
2020-08-23 16:24:54 +02:00
Christoph Oelckers
1a0e413d5c
- use CCMDs for Exhumed's input where applicable.
...
- made crosshair toggle consistent across games.
2020-08-23 16:11:18 +02:00
Christoph Oelckers
a4a26ef6bc
- removed the last uses of the original rotatesprite function.
2020-08-23 14:55:19 +02:00
Christoph Oelckers
2a3f7a48c9
- implemented a proper kill counter.
...
Unfortunately the display is a bit limited by the available font characters.
2020-08-23 14:39:14 +02:00
Christoph Oelckers
e75cfd82f9
- the training map could not be started.
2020-08-23 14:00:53 +02:00
Christoph Oelckers
979cc63835
- use DrawTexture for rendering the menu items.
2020-08-23 13:57:56 +02:00
Christoph Oelckers
4d477bc15b
- fixed uninitialized GameAction variable.
2020-08-23 13:57:31 +02:00
Christoph Oelckers
212b3ae0f9
- Exhumed: fixed map startuo
2020-08-23 12:59:01 +02:00
Christoph Oelckers
5c7b613aa7
- reworked the main loop.
2020-08-23 12:26:52 +02:00
Christoph Oelckers
7889605ff4
- condensed main loop further, started laying out the new one.
2020-08-23 09:11:32 +02:00
Christoph Oelckers
9e5ca8c408
- moved game and level init code out of app_main.
2020-08-23 08:22:59 +02:00
Christoph Oelckers
5ba384db35
- moved the main game ticker out of app_main.
2020-08-23 07:49:58 +02:00
Christoph Oelckers
3a3ba43985
- Exhumed: moved the input code out of the main loop
2020-08-23 07:41:29 +02:00
Christoph Oelckers
fccd054381
- split off the entire game loop related code into its own file.
...
This should make it easier to work on this.
2020-08-22 22:40:22 +02:00
Christoph Oelckers
7401c0e133
- moved Ramses head code into its own file.
2020-08-22 21:39:14 +02:00
Christoph Oelckers
8589d43835
- migrated Exhumed's cheats to the global system.
...
This also eliminates the last pieces using that global string list. All relevant text is now in the external string table.
2020-08-22 21:13:11 +02:00
Christoph Oelckers
6d852c33dd
- added CCMDs for all 'holly' cheats that didn't have an equivalent yet.
2020-08-22 20:34:58 +02:00
Christoph Oelckers
6b1d6a44d7
- exported the item pickup messages to the string table and use the global 'nomonsters' flag.
2020-08-22 20:14:00 +02:00
Christoph Oelckers
bddd196539
- ported the credits screen.
2020-08-22 19:50:04 +02:00
Christoph Oelckers
d94077f833
- exported cinema texts to the string table as well.
2020-08-22 18:30:48 +02:00
Christoph Oelckers
0843f5f04a
- ported the final level's text screen and exported its text to the string table.
2020-08-22 18:12:19 +02:00
Christoph Oelckers
6f039164a3
- set up the computer font as SmallFont2.
...
Unlike the sheet font, this one is needed.
2020-08-22 16:24:42 +02:00
Christoph Oelckers
7e7f9670c1
- transitioned the text intermission screen to use DScreenJob and interpolate the scrolling text display.
2020-08-22 11:56:54 +02:00
Christoph Oelckers
8e34288a1c
- moved the end level handler further out in the main loop.
2020-08-22 10:39:37 +02:00
Christoph Oelckers
8b3e3b6d4a
- cleaned out some waiting code.
...
There's still too many loops but this at least gets rid of the empty ones.
2020-08-22 10:17:24 +02:00
Christoph Oelckers
c74a1f03e3
- defer FinishLevel handling to the main loop instead of doing it deep inside the game logic code.
2020-08-22 10:03:21 +02:00
Christoph Oelckers
9f682083c8
- same procedure as last time.
2020-08-22 09:41:18 +02:00
sirlemonhead
80dd794550
PCExhumed: Handle integer overflow in PlotCourseToSprite()
2020-08-22 09:40:35 +02:00
Christoph Oelckers
2a1ef00542
- redirect messages from last commit to debug mode.
2020-08-22 09:39:49 +02:00
sirlemonhead
b1c9ec1f47
PCExhumed: Handle the rest of the possible overflows for ksqrt()
2020-08-22 09:38:11 +02:00
sirlemonhead
fc530a362d
PCExhumed: Fix Selkis boss AI stupid typo
2020-08-22 09:34:09 +02:00
Christoph Oelckers
b96f12aa34
- removed Exhumed's demo loop.
...
It was broken already anyway and also looks like a first grade refactoring blocker.
2020-08-22 09:31:17 +02:00
Christoph Oelckers
e1fd0d8d80
- replaced most of the old text and graphics display functionality in Exhumed.
2020-08-21 22:40:09 +02:00
Christoph Oelckers
ca943317e7
- ported Exhumed's map to the ScreenJob interface.
2020-08-21 22:30:51 +02:00
Christoph Oelckers
a4d0e47389
- Exhumed: Play sound on Lobotomy logo
...
Fixes #224 .
2020-08-21 19:40:18 +02:00
Mitchell Richters
3067bad9b9
- Blood/Duke/Exhumed/SW: Fix map
CCMD so the game doesn't return to the menu if incorrect map specified (or crash in the case of Exhumed).
2020-08-21 15:11:02 +10:00
Christoph Oelckers
2713c2d3c3
- deleted unused printext function.
2020-08-21 00:54:57 +02:00
Christoph Oelckers
33dcb413d8
- final cleanup on Exhumed's intro sequence.
2020-08-21 00:49:07 +02:00
Christoph Oelckers
80055b97e8
- fixed the title screen
2020-08-21 00:30:46 +02:00
Christoph Oelckers
98c064dcbc
- fixed the missing plasma effect in Exhumed's title screen.
2020-08-21 00:13:05 +02:00
Christoph Oelckers
6947b9cf98
- title screen WIP
2020-08-20 23:45:52 +02:00
Christoph Oelckers
31e792223a
- converted Exhumed intro to use the ScreenJob framework.
2020-08-20 21:05:14 +02:00
Christoph Oelckers
4267b7d5fc
- put the movie player in a class so that it can be allocated on the stack.
2020-08-20 18:35:52 +02:00
Christoph Oelckers
966cf5e262
- fixed the sound in Exhumed's intro movie.
...
Taking a cue from GDX to properly synchronize it because PCExhumed's approach looked broken by design.
It had no frame rate sync and solely depended on the low level audio stream for it.
2020-08-20 17:52:56 +02:00
Christoph Oelckers
3a5c0b30bb
- statusbar fixup.
2020-08-20 17:04:21 +02:00
Christoph Oelckers
78bfbdb253
- Exhumed status bar work.
...
Unfortunately this is a bit limited due to how the data was designed.
2020-08-20 17:04:21 +02:00
Christoph Oelckers
f888df9f5b
- fixed screen resize actions to work outside the automap.
2020-08-19 20:38:36 +02:00
Christoph Oelckers
d645674c1c
- consolidated the DEF parser parts in the backend.
...
Only Blood had some special handling - better implement callbacks here instead of requiring a second parsing pass.
2020-08-19 20:29:37 +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
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
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
Mitchell Richters
157933e902
- fixed regression from b9eef9c6a3
where the angle wouldn't apply if horizon was specified.
2020-08-04 23:13:22 +10:00
Mitchell Richters
b9eef9c6a3
- make ang and horiz optional on each game's warptocoords
CCMD as suggested in commentary for 1dc6edfa56
.
2020-08-04 22:33:17 +10:00
Mitchell Richters
3e44d850b3
- fix issues with Exhumed and SW warptocoords
CCMDs when cherry-picking from public branch.
2020-08-04 18:04:44 +10:00
Mitchell Richters
af830518a6
- create Exhumed dynamic CCMD warptocoords
.
2020-08-04 17:53:37 +10:00
Christoph Oelckers
218a9c84fd
- removed the last remaining Blood helpers from the file system, also deleted a few short files whose contents could be moved.
2020-07-27 19:38:41 +02:00
Christoph Oelckers
f9d48e1f68
- removed all the intermediate variables for the status bar size.
...
hud_size now gets used directly by the status bar code.
2020-07-25 13:26:56 +02:00
Christoph Oelckers
be9094cb97
Silenced lots of warnings pointed out by XCode.
2020-07-23 17:02:59 +02:00