Mitchell Richters
d0e390c554
- Blood: Don't treat akimbo shotguns as a reloading weapon. It doesn't go through the reload sequence like when the player doesn't have the power-up.
2020-08-30 20:24:39 +02:00
Mitchell Richters
c555540e24
- Blood: Implement cl_showmagamt
for the game's shotgun.
...
* Tile set for `kSBarNumberAmmo` does not include a slash. Hack put in place to get me a slash from a specific tile of a different font. It "works" and I don't think it looks too bad.
2020-08-30 20:24:38 +02:00
Mitchell Richters
e32cd81cc7
- Unify stat fps
for all games.
2020-08-30 20:24:36 +02:00
Christoph Oelckers
84e54e4fdb
- deleted several unused local variables
...
None of the initializers here is modifying gamestate, this looks like overcautious preservation for demo compatibility.
2020-08-30 20:24:23 +02:00
Christoph Oelckers
ffe5b114f3
- the engine starts on the new main loop and is capable of running the intros and the menu, but not the game yet.
2020-08-30 12:49:21 +02:00
Christoph Oelckers
d49aedacea
- continued work on main loop - added a few new entry points to the game interface.
2020-08-30 00:55:49 +02:00
Christoph Oelckers
56d0647412
- migrated the last 3 remaining UI controls to CCMDs.
2020-08-29 17:49:15 +02:00
Christoph Oelckers
eb34b41716
- fixed keyboard look in Blood.
2020-08-29 17:07:25 +02:00
Mitchell Richters
be33872b42
- Blood: Implement WeaponSel_Alt
for game.
2020-08-29 22:51:20 +10:00
Christoph Oelckers
694444b62a
- converted the remaining input bits.
...
Looks like it is working in all games except Blood (not that it surprises me that it's Blood again which has issues...)
2020-08-29 13:32:55 +02:00
Christoph Oelckers
dc1f56e8f9
Merge remote-tracking branch 'remotes/Github_private/back_to_basics2' into Packet
...
# Conflicts:
# source/core/inputstate.cpp
# source/exhumed/src/exhumed.h
2020-08-29 01:19:48 +02:00
Christoph Oelckers
fe7f3a2f9e
- handle the run key.
2020-08-29 00:57:07 +02:00
Christoph Oelckers
b9e0f493b2
- transitioned the 5 primary action keys: Open, Jump, Crouch and Fire/AltFire.
2020-08-28 23:25:08 +02:00
Christoph Oelckers
847fa48724
- cleaned out the remaining parts of baselayer.h
...
In particular this means to remove the option to disable widescreen aspect ratios. The way this was handled makes no sense with the current render backend.
The aspect ratio code will have to be redone entirely to properly obey the backend's settings.
2020-08-28 09:06:49 +02:00
Christoph Oelckers
536e7455f2
- moved I_StartFrame to the top of the loop and cleaned up baselayer.hj
2020-08-28 08:44:44 +02:00
Christoph Oelckers
d62d2eaec7
- processed all remaining local input CCMDs and removed some bits only needed for multiplayer.
...
These MP bits should be reimplemented as network commands later, they only take up valuable space in the bit field.
2020-08-28 00:03:35 +02:00
Christoph Oelckers
ee7d558282
- removed the remains of sending pause with the input packets.
...
None of this was really working anymore, but will have to be rethought once a network stream exists again.
But even then, this is better sent as a separate command, and in MP only.
2020-08-27 22:38:52 +02:00
Christoph Oelckers
e0ca98602d
- made Blood's inventory cycle-able.
...
IMO it's a totally annoying limitations to block wraparound of the cursor.
2020-08-27 22:29:45 +02:00
Christoph Oelckers
447573aa36
- consolidation of invprev, invnext and invuse.
2020-08-27 22:19:24 +02:00
Christoph Oelckers
43de0d8312
- consolidation of inventory item activation through hotkeys.
...
This also adds hotkeys for Exhumed which never implemented them.
2020-08-27 21:25:09 +02:00
Christoph Oelckers
10df3e094a
- rework of weapon input to use common features in shared code.
...
This also adds stubs for all unimplemented features in the games for easier addition.
2020-08-27 00:53:35 +02:00
Christoph Oelckers
89f5b26988
- fixed badly placed include.
2020-08-27 00:27:10 +02:00
Christoph Oelckers
f597f7c265
- made the GameFunc constants global again.
...
With most of the more specific features being migrated to CCMDs the list is relatively clean now, with merely 2 buttons that are game specific.
2020-08-27 00:25:59 +02:00
Christoph Oelckers
99486cba7e
- gave Blood the same treatment.
2020-08-27 00:21:11 +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
d0655a1068
- renamed the fields in Blood's packet structure to match Duke's.
2020-08-26 16:59:41 +02:00
Christoph Oelckers
3fc79940f2
- merged the bit fields in Blood's packet structure.
...
Whatever this was for it made that thing extremely unwieldy.
With these merged the resulting structure doesn't look much different from Duke's anymore.
2020-08-26 16:59:41 +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
5bfd4069ef
- Blood: Cleanup some timing variables following timing uplift.
...
* Remove cast of int on `gFrameClock` since gFrameClock is now just an int.
* Remove unused `gFrameTicks`.
* Remove unused `gFrameRate`.
* Rename `gFrame` to `gFrameCount` so it's easier to search and distinguish from `gFrameClock` without relying on regex.
2020-08-26 20:55:46 +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
Mitchell Richters
e0aaaf1f60
- All Games: Move gameclock
and lastTic
to gamecontrol.
2020-08-26 09:49:44 +10:00
Mitchell Richters
76776d24d7
- All Games: Remove use of ClockTicks
and replace with int
.
2020-08-26 09:49:42 +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
d358c71f82
- Blood: Migrate to GZDoom time code like Duke, SW and Exhumed.
2020-08-26 09:49:23 +10:00
Christoph Oelckers
9440ddb68f
- thinned out Blood's network code.
2020-08-25 23:04:08 +02:00
Christoph Oelckers
e97fb2ab7f
- reduce message spam in the notification display.
2020-08-25 20:21:18 +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
ce853c5376
- Blood does not restart the intro sequence.
...
Fixes #247
2020-08-25 18:06:16 +02:00
Christoph Oelckers
777bbd4bd8
- use the generalized code to display automap labels in Blood.
2020-08-24 23:59:09 +02:00
Christoph Oelckers
25ade79b90
- stat display fine tuning.
2020-08-24 22:18:45 +02:00
Christoph Oelckers
88bcaf37ab
- changed the scale range of hud_statscale so that 1 is for fullscreen 320x200.
2020-08-24 22:02:49 +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
0ee042fb60
- same procedure for Blood
2020-08-24 19:47:09 +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
Christoph Oelckers
41a1120033
- added a native style display mode to the notification message display.
...
Fixes #9
2020-08-23 22:39:53 +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
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
0843f5f04a
- ported the final level's text screen and exported its text to the string table.
2020-08-22 18:12:19 +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
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
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
Mitchell Richters
37d687e4e9
- Blood: Repair regression in VectorScan()
from 266364fc2e
causing demo regressions and other game issues.
...
Fixes #216 .
2020-08-20 22:17:28 +10: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
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
57cdcda253
- initiate a proper game state reset when ending an episode.
...
Fixes #207 .
2020-08-18 20:56:18 +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
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
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
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
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
8595b9fa47
-play SW's intro through the screen job framework.
2020-08-15 13:04:15 +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
09a3567f14
- fix some more sloppiness with Blood's global game state.
...
Fixes #171 .
2020-08-12 19:11:16 +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
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
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
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
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
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
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
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
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
Mitchell Richters
a3dfa58662
- correct typo in Blood text string because I'm OCD like that.
2020-08-05 23:17:57 +10: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
b08d571be9
- create Blood dynamic CCMD warptocoords
.
...
* The setting of the player's horizon/viewangle probably still requires work, but warping to pos x/y/z works fine.
2020-08-04 19:10:43 +10:00
Christoph Oelckers
41cc5cac34
- fixed responsiveness issues with Blood's weapon selection.
...
This shouldn't really do anything and might point to some deeper implementation flaw.
2020-08-04 00:06:36 +02:00
Christoph Oelckers
b0c1140649
- fixed bad default for viewDrawText's alpha.
...
Like so many other things in Build the concept of alpha is hopelessly stupid and really makes no sense, and this was carried over here.
2020-08-03 21:26:19 +02:00