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
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
7659107b75
- removed SW's SK_AUTO_AIM for good.
...
When networking becomes a thing again this can be done as a server CVAR without such a messy approach.
2020-08-29 02:19:41 +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
d73bf62465
Revert "- Set frame-time as close to the buffer swap as possible, and calculate smoothratio for Duke/SW as late as possible."
...
This reverts commit 97feb483ab
.
2020-08-28 08:25:51 +02:00
Mitchell Richters
97feb483ab
- Set frame-time as close to the buffer swap as possible, and calculate smoothratio for Duke/SW as late as possible.
...
* Micro-optimisation, but was getting a very occasional jitter in Duke 3D that seems to have gone with this.
2020-08-28 15:27:16 +10: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
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
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
c7e667a17a
- transition weapon selection in SW.
...
Thanks to the macro insanity for trivial operations in this code base this turned out to be a lot more troublesome than Duke...
2020-08-27 00:06:59 +02:00
Mitchell Richters
55f688b13f
- SW: Rename q16horz
to q16horiz
and q16aimvel
to q16horz
for consistency and to avoid confusion down the track.
2020-08-27 08:00:50 +10:00
Christoph Oelckers
4e846f8d66
- do not print game init messages to the notify display.
2020-08-26 20:19:54 +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
Mitchell Richters
4fcec5f6d3
- SW: Alt implementation for preparing a nuke.
...
* Given the original code in `pNukeAction()` (poorly named), the intent appeared to be that the weapon should go off-screen for preparation, returning once weapon initialised.
* Commit restores that behaviour behind a CVAR.
# Conflicts:
# source/core/gamecvars.cpp
# source/core/gamecvars.h
2020-08-26 17:00:19 +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
a9f556c1bd
- SW: Restore random element to player's weapon left/right bobbing behind a CVAR.
...
# Conflicts:
# source/core/gamecvars.cpp
# source/core/gamecvars.h
2020-08-26 16:45:42 +02:00
Mitchell Richters
50793184ee
- SW: Remove random element from player's weapon left/right bobbing causing bob value to be between 24-48 and lock to 36.
2020-08-26 16:45:42 +02:00
Christoph Oelckers
ddd6a300ab
- added UpdateSounds calls to the blocking loops in Duke's and SW's StartGame functions.
2020-08-26 04:15:33 +02: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
4eec9dca63
- Duke/SW: Use I_GetBuildTime()
instead of gameclock
in game-side sound code.
...
* Code is called where `gameclock` might not be set.
2020-08-26 10:09:02 +10: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
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
76b05dbcd6
- Build (and games): Remove totalclocklock
.
2020-08-26 09:48:56 +10:00
Mitchell Richters
40739d9176
- SW: Add ogameclock
and use in places where ototalclock
was used.
...
* Duke used `ototalclock` only to keep track of when the game ticked. SW uses it in the rendering code for differentials between tics so we should preserve that to prevent issues down the track.
2020-08-26 09:48:51 +10:00
Christoph Oelckers
84b6af24d3
- renamed the fields in SW's packet structure to match Duke's.
...
Preparation for moving the packet management into public code.
2020-08-25 22:06:01 +02:00
Christoph Oelckers
8256b54005
- applied a few fixes:
...
* removed the timer callback stuff that came back through the backdoor.
* do not use gameclock in the UI code - use the underlying timer directly.
* UpdateSounds must still use totalclock, until this can be refactored in its entirety.
2020-08-25 20:20:35 +02:00
Mitchell Richters
c888bc802d
- SW: Make a bit more use of the calculated smooth ratio.
2020-08-25 19:51:32 +02:00
Mitchell Richters
386661f1ba
- SW: Migrate to GZDoom time code like Duke.
2020-08-25 19:51:32 +02:00
Christoph Oelckers
cf36e7d770
- SW: stop cutscene sound before going to the summary screen.
2020-08-25 18:28:50 +02:00
Christoph Oelckers
7d30218d8e
- fixed: In SW the automap follow mode blocked all game input, even when the automap was off.
2020-08-25 18:09:57 +02:00
Christoph Oelckers
7c1e64757a
- use generalized automap label code for Shadow Warrior, too.
2020-08-25 00:16:02 +02:00
Christoph Oelckers
e7c58a5b29
- make hud_scale a floating point CVAR.
2020-08-24 21:48:47 +02:00
Christoph Oelckers
6d1e3e77fc
- fixed item percentage display on SW's status bar.
...
Fixes #242
2020-08-24 20:46: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
debb4b17b6
- transitioned SW's automap to the global variables
...
Also copied the automap label output to the status bar for proper ordering.
2020-08-24 19:36:17 +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
91b31cec39
- fixed: hud_messages completely blocked the messages, even from going to the console.
...
It should only block the on-screen notification display, which the backend already implements. The game code should not check this CVAR again.
2020-08-23 22:46:53 +02:00
Christoph Oelckers
4469cf7edb
- only go from menu to console when closing with Escape.
2020-08-23 21:24:31 +02:00
Christoph Oelckers
c0da85d0ff
- SW: fixed: When entering the summary screen, clear the FinishedLevel variable immediately.
...
So that its value won't stick around and trigger the screen again. Same when an exception occurs.
Fixes #232 .
2020-08-23 20:55:21 +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
4467547c8c
- fixed fortune cookie message display.
...
Fixes #219 .
2020-08-21 21:15:32 +02:00
Christoph Oelckers
a3915c6861
- added missing menu sounds for SW.
...
Fixes #220 .
2020-08-21 21:04:16 +02:00
Christoph Oelckers
0f3555fc7c
- fixed speed of SW's credits.
...
Fixes #229 .
2020-08-21 19:38:38 +02:00
Mitchell Richters
b9038db433
- remove all the discrete definitions of variables from alt HUDs in Duke/RR/SW.
2020-08-21 22:20:54 +10:00
Mitchell Richters
8e10bb8856
- SW: Don't flash the weapon's ammo icon when flashing text for low ammo in DrawHUD2.
2020-08-21 10:18:31 +02:00
Mitchell Richters
4e0bef35c0
- simplify some of my math in the the fullscreen HUD drawers.
...
May no one ever see the original code again... :S
2020-08-21 16:23:44 +10: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
Mitchell Richters
cc15de3ed9
- SW: Comment out code block causing interpolation issues when initialising a nuke.
...
* If there was a `pNukePresent()` function, that's where the commented out code belongs.
* I believe the rocket switching type was simplified during development and this is just an omission that's now obvious with interpolation. Only just, but you can notice this in an uninterpolated state while bobbing.
* Fixes #212 .
2020-08-20 08:52:22 +10:00
Mitchell Richters
7698723e43
- SW: Fix cheats via the console following changes in e22d9b21e4
.
2020-08-20 07:43:57 +10:00
Christoph Oelckers
dd20d74c51
- revert unintended change of text labels.
2020-08-19 19:18:47 +02:00
Christoph Oelckers
cbe4618a91
- do not play the random sword selection sounds on a map's very first tic.
...
This tends to interfere with map specific voice lines.
Fixes #214
2020-08-19 19:07:06 +02:00
Christoph Oelckers
c2fd4d3d18
- SW: reset screen blend when resetting a level.
...
Fixes #211
2020-08-19 17:31:05 +02:00
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
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
Mitchell Richters
042caf1b21
- SW: Implement cl_weaponsway
for game.
2020-08-19 15:35:04 +10: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
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
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
01d9bde7f4
- more cleanup of game.cpp.
...
The game init code is done.
2020-08-16 19:11:04 +02:00