Commit graph

494 commits

Author SHA1 Message Date
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
Christoph Oelckers
6227f9f7fd - optimizations for better savegame performance. 2020-07-21 21:32:38 +02:00
Christoph Oelckers
55feadd11c - render the weapons with the DrawTexture interface and properly handle rotatesprite's alignment modes 2020-07-16 13:23:26 +02:00
Christoph Oelckers
a0cd407632 - cleanup on pausing code. 2020-07-15 18:10:31 +02:00
Christoph Oelckers
99161e2e4a - made ps an array of player_struct like it originally was. 2020-07-15 00:26:58 +02:00
Christoph Oelckers
2fd2ad2212 - sky code cleanup and transitioning of Duke's. 2020-07-15 00:06:19 +02:00
Christoph Oelckers
5655015691 - YAX is also gone now. 2020-07-14 16:06:14 +02:00
Christoph Oelckers
1a0b388570 - removed a few tabledivide uses in the game modules 2020-07-14 14:08:59 +02:00
Christoph Oelckers
aa01adb2f1 - removed osd.h as it was merely a minimal wrapper around c_dispatch, giving some alias names.
Nothing that's needed when cutting ties to upstream.
2020-07-14 14:00:27 +02:00
Christoph Oelckers
2e05ff532b - got rid of the struct trackers.
They were only used for handling an undefined case in the renderer but the overhead and side effects were too severe.
2020-07-14 13:51:03 +02:00
Christoph Oelckers
34874d1a21 - migrated displayrest and took the opportunity to un-fuck the palette management. 2020-07-07 04:54:12 +02:00
Christoph Oelckers
8a1206edbc Merge remote-tracking branch 'remotes/origin/master' into back_to_basics2 2020-07-05 11:55:41 +02:00
Mitchell Richters
c70cc474a0 - change mouse input from int to float and adjust games accordingly.
* Calculate game-side mousex/mousey divisions into the calculations performed in `InputState::GetMouseDelta()`.
* Fix mouse speed when `in_mousesmoothing` is true (wasn't factoring in / 3.f division used in non-true vector.
* Standard mouse forward/side movement speeds in Exhumed & SW with that of other games.
* Remove `strafeyaw` code from Duke/Exhumed/RR as it's not necessary and was leading to situations where the player would continually keep moving sideways even without input.
* Change mouse forward/side velocities to -= current value as is done with controller input and the player's angle/aim velocities.
2020-07-04 18:28:00 +02:00
Christoph Oelckers
43f899f2ce - Do not start multiple instances of the same sound on the same source in Exhumed.
From the looks of it the engine calls the sound function repeatedly while the sound plays to perform distance checks.
With the OpenAL backend these checks are totally unnecessary and shouldn't do anything.
2020-06-24 22:02:23 +02:00
Mitchell Richters
8c723f52d1 - make controller input identical across all games.
* Convert axes in ControlInfo struct from int32_t to float as what's received from the backend.
* Remove all the scale up/down math since we don't need that with floats and replace with float constants that match old behaviour.
* Store q16mlook scaling as a constant for use with mouse and upcoming controller code.
* Add required controller code to Blood as the only game not to have working controllers.
* Fix typos in (gInput.forward > input.forward) for `ctrlGetInput()` in Blood.
* Remove use of `scaleAdjustmentToInterval()` on Exhumed and Shadow Warrior as they only process forward/side velocities within the game's ticrate.
* Repair angvel/aimvel scaling mistakes from d79a5d256d.
* Scale dyaw and dpitch by 25% for Shadow Warrior as the game runs 25% faster than the other games, leading to faster input.
2020-06-24 20:08:56 +02:00
Christoph Oelckers
e146e73345 - consolidated the 'music' parsing in Defs (pending a refactor of the MAPINFO system.)
- removed the remaining parts of the game Defs parser because we do not want anything EDuke in here.
2020-06-24 00:40:22 +02:00
Christoph Oelckers
990cb2acb8 -'shoot' replaced.
# Conflicts:
#	source/build/src/palette.cpp
2020-06-21 23:24:49 +02:00
Mitchell Richters
3325ef272e - make r_ambientlight work globally for all games by performing adjustment engine-side. 2020-06-21 10:12:54 +02:00
Christoph Oelckers
550576d94d - allow skipping the Exhumed logos. 2020-06-17 17:10:31 +02:00
Christoph Oelckers
b9a567463c - fixed compile error. 2020-06-17 12:26:06 +02:00
Richard C. Gobeille
9a2c2d5a98 exhumed: fix overflow in feebtag() 2020-06-17 12:26:06 +02:00
sirlemonhead
d2806393bb PCExhumed: Add code to draw serpent cam status text on screen
# Conflicts:
#	source/exhumed/src/sound.cpp
#	source/exhumed/src/status.h
2020-06-17 12:26:06 +02:00
sirlemonhead
9df13d0dfe PCExhumed: Don't restore mid level save point if re-entering a just completed level 2020-06-17 12:26:05 +02:00
sirlemonhead
2e514e539e PCExhumed: Fix cheat messages 2020-06-17 12:26:05 +02:00
Christoph Oelckers
2c2b871083 - fixed texture validation checks. 2020-06-17 12:26:02 +02:00
Christoph Oelckers
946da7d622 - moved the textures used for the animations into the texture manager.
This is to allow giving them a texture ID so that they can be used from ZScript which has no access to naked textures.
This also consolidates AnimTexture and VpxTexture.
2020-06-14 20:27:13 +02:00
Christoph Oelckers
d4cdb31464 - backend update to make the ZScript compiler work. 2020-06-14 18:58:30 +02:00
Christoph Oelckers
35471ce7e2 - clear the screen for Exhumed's logos. 2020-06-13 00:08:47 +02:00
Christoph Oelckers
ee98db589f - fixed the Exhumed startup to do proper fading of the publisher logos, which PCExhumed only implemented for the software renderer.
Made it faster than PCExhumed, though
2020-06-12 23:06:11 +02:00
Christoph Oelckers
1311db9ac9 - changed all places clearing the screen in 2D display code to use the 2D drawer's ClearScreen method. 2020-06-12 20:52:01 +02:00
Christoph Oelckers
4f0e3adfbb - removed pointless constexpr declaration on numeric constants. 2020-06-12 16:49:35 +02:00
Mitchell Richters
d79a5d256d - fix joystick scaling for all games.
* Repairs https://forum.zdoom.org/viewtopic.php?f=340&t=67239 and https://forum.zdoom.org/viewtopic.php?f=340&t=67933
* Values that come from GZDoom backend are too low to be suitable for the Build games which were dividing by 'analogExtent'.
* Remove definition of analogExtent from all games and define in inputstate.h, then define joyaxesScale as 75% of analogExtent to provide a bit of headroom and not have a scale of 1.0 be full speed.
* Invert the returned results of GetAxes() as the returned floats are reversed for build games.
* Leverage scaleAdjustmentToInverval() on game-side code to consistently scale the input irrespective of frame rate, vsync etc.
2020-06-12 16:44:08 +02:00
Christoph Oelckers
f159496f6e - moved the ShadeDiv array into the lookup table and took the numshades-2 divisor out of the stored value.
The value was changed to allow easier reuse in scenarios where the size of the shade table does not matter anymore.
2020-06-05 23:18:21 +02:00
Christoph Oelckers
cf6855904d - took projection and view matrix out of the render state.
This is a preparation to migrate to GZDoom's HWViewpointUniforms buffer.
2020-06-04 18:46:44 +02:00
Christoph Oelckers
68c97e3c25 Merge branch 'master' of https://github.com/coelckers/Raze
# Conflicts:
#	source/core/gamecontrol.h
#	source/duke3d/src/game.cpp
#	source/exhumed/src/exhumed.cpp
#	source/rr/src/game.cpp
2020-05-31 23:30:10 +02:00
Mitchell Richters
ce48f081fc Exhumed: Amend how game pauses. 2020-05-31 23:19:54 +02:00
Christoph Oelckers
efa1cd3048 - moved video files to 'common'.
# Conflicts:
#	source/blood/src/screen.cpp
2020-05-31 09:19:16 +02:00
Christoph Oelckers
1e2a3da5fd - video base code unified.
# Conflicts:
#	source/core/rendering/v_video.cpp
2020-05-31 09:18:43 +02:00
Christoph Oelckers
edb2cb31ee - backend update with GZDoom model code. 2020-05-31 08:55:00 +02:00
sirlemonhead
86f2a7a578 PCExhumed: MoveSector() updates player position variables. Fixes #366 2020-05-30 23:34:26 +02:00
Christoph Oelckers
a3e6829817 - fixed Exhumed menu by adding a proper layout mode to the drawer instead of hacking the broken tile offsets. 2020-05-27 23:30:36 +02:00
Christoph Oelckers
193b940eef - palette code cleanup. 2020-05-27 22:19:02 +02:00
Christoph Oelckers
29db3febb8 - updated the platform code to be mostly identical with GZDoom 2020-05-26 00:08:26 +02:00
Christoph Oelckers
55a3c62b59 - use GZDoom's 2D drawer.
Console and menu font colors are not ok yet, aside from that it works.
2020-05-25 17:11:32 +02:00