Commit graph

1233 commits

Author SHA1 Message Date
Christoph Oelckers
18352a760c - more renames. 2020-11-22 12:48:42 +01:00
Christoph Oelckers
dced173cda - JSON serializer for actor.
Also cleaned up use of gAffectedSectors and gAffectedXWalls. These are merely needed as local worker variables, not as global persistent status.
2020-11-22 12:48:42 +01:00
Christoph Oelckers
b97f12a2eb - did some global search & replace to reduce the number of accesses to the tilesiz wrapper. 2020-11-20 08:18:26 +01:00
Christoph Oelckers
9a43886be6 - Duke: fixed parsing of overlong CON identifiers. 2020-11-15 07:35:39 +01:00
Mitchell Richters
7673766d19 - Duke: Apply same zvel fix from 13839fc3e9 to shootgrowspark() that was accidentally changed in f276a5f443. I don't believe this to be an issue in any other spot for Duke. 2020-11-13 10:02:12 +11:00
Christoph Oelckers
f9a776e71c - iterate linearly over sector effectors.
Apparently they aren't all properly linked into the required statnums.
Fixes #179
2020-11-12 19:12:58 +01:00
Mitchell Richters
70b75f72b5 - Duke: Fix issues with crane angle adjustment in movecrane() following changes in fca846272e.
* Fixes #170.
2020-11-12 23:21:03 +11:00
Mitchell Richters
13839fc3e9 - Duke: Fix shootstuff() zvel calculation error following changes in badf536fef.
* Fixes #177.
2020-11-12 22:07:16 +11:00
Mitchell Richters
4dc1797345 - Duke: Reset p->dead_flag when enabling the god cheat as per original behaviour.
* Fixes #172.
2020-11-12 18:21:42 +11:00
Christoph Oelckers
a92b4943f9 - Duke: use original colors for inventory status display.
I took one liberty and still use green/yellow/red for the percentage, but this now uses palette translations so that it works better with hires replacements.
2020-11-11 11:49:05 +01:00
Christoph Oelckers
96fbfdcf86 - made hires replacements work for untranslated fonts. 2020-11-10 21:34:49 +01:00
Christoph Oelckers
ed599d0f05 - moved the hires texture replacement logic into a backend callback.
This way it can be handled transparently to the calling code.
Fonts do not work yet, though.
2020-11-10 16:22:02 +01:00
Christoph Oelckers
59c72c923e - added null pointer checks to locked door sound checks in RR.
This originally accessed undefined memory when no sprite was involved.
Fixes #157
2020-11-07 10:25:41 +01:00
Christoph Oelckers
976675c816 - added some helper code to deal with the fact that the sound system still needs to operate on sprites. 2020-11-07 10:25:40 +01:00
Mitchell Richters
ade1a80515 - gameinput.cpp: Remove crouch bool from applylook() since we can now just rely in the actions bitfield that's already incoming as required and default scaleAdjust in the prototype to 1. 2020-11-07 18:25:06 +11:00
Mitchell Richters
6e3d414b3c - inputstate.cpp: Move checkCrouchToggle() from gameinput.ccp into ApplyGlobalInput() and use static bool for crouch toggling vs. game-side bool. 2020-11-07 18:16:16 +11:00
Mitchell Richters
4ef0d20e0e - gameinput.cpp: Consolidate checkCrouchToggle() from Duke with discrete implementations from Blood in 7c8efde38c and Exhumed in 032db82f82 to unify the functionality. 2020-11-07 13:44:25 +11:00
Mitchell Richters
a52ee89969 - Duke/RR: Add scaling to mouse input within motoApplyTurn() and boatApplyTurn(). 2020-11-07 09:56:57 +11:00
Mitchell Richters
f0b9029726 - Duke/RR: Fix incorrect boolean used in boatApplyTurn() when implementing fcc2521347bb528d7a5bcd3996c509db85e993f0. 2020-11-07 09:56:57 +11:00
Mitchell Richters
74dfbfe6f8 - Duke/RR: Ensure p->vehForwardScale/p->vehReverseScale can only be a maximum of 1. Controller input with high sensitivity could effectively turbo-charge the bike ;) 2020-11-07 09:56:57 +11:00
Mitchell Richters
466bc84697 - Duke/RR: Completely revamped vehicle mouse/controller input.
* Original algorithm now used purely for keyboard input only.
* Mouse and controller input is no longer a scaled double version of the keyboard input.
* Mouse input is the square root of the base angle adjustment (20) multiplied by (mouse input divided by the input scale factor). As such, mouse input is completely consistent between synchronised and unsynchronised input.
* Controller input is base angle adjustment (20) multiplied by itself.
* Renamed `turnl`/`turnr` variables to `kbdLeft`/`kbdRight` respectively.
* Fixed issue where `p->TiltStatus` wasn't being backed up in `boatApplyTurn()`.
2020-11-07 09:56:57 +11:00
Mitchell Richters
6f5f66ad35 - Duke/RR: Partially revert c9d875327850e839e3ad1f367ede15497d44fda3 by truncating p->MotoSpeed to integer when calculating xvel/yvel to preserve original vehicle feel. 2020-11-07 09:56:57 +11:00
Mitchell Richters
567738f3ad - Duke/RR: Tidy formatting of onMotorcycle(), onBoat(), onMotorcycleMove() and onBoatMove(). 2020-11-07 09:56:57 +11:00
Mitchell Richters
1545610501 - Duke/RR: Convert remaining vehicle function local ints to bools where appropriate. 2020-11-07 09:56:57 +11:00
Mitchell Richters
c223a50b29 - Duke/RR: Clean up vehicle turn left/right bools used in ticker functions. 2020-11-07 09:56:57 +11:00
Mitchell Richters
ad10ea4cb5 - Duke/RR: Initial implementation of scaled p->MotoSpeed controller input. 2020-11-07 09:56:57 +11:00
Mitchell Richters
578ded1db3 - Duke/RR: Promote p->MotoSpeed from short to double in prep for applying scaled controller input. 2020-11-07 09:56:57 +11:00
Mitchell Richters
c46ad10bb1 - Duke/RR: Clean up some disassembly variable names in vehicle so it's easier to understand what's going on. 2020-11-07 09:56:57 +11:00
Christoph Oelckers
94341e8582 - fixed missing null check in SetOwner and SetHitOwner. 2020-11-06 20:13:06 +01:00
Mitchell Richters
71be467065 - Duke: Fix missing ammo counter on modern HUD for WT's flamethrower.
* Fixes #156.
2020-11-06 22:07:11 +11:00
Mitchell Richters
c823e33bb3 - Duke/RR: Fix remaining issues with drug mode.
* Primary issue was call to `renderSetAspect()` within `setdrugmode()` wasn't mulscaling with `viewingrange`.
* Changed `setdrugmode()` to `getdrugmode()` to return `p->drug_aspect`. This is so `renderSetAspect()` needs to only be called from one place only.
2020-11-06 20:52:43 +11:00
Christoph Oelckers
d5ff87fa4f - RRRA: fixed vehicle collision with psychedelic cactuses.
This did not fully match the original source which had a critical difference here between RR and RRRA.
2020-11-05 14:31:55 +01:00
Christoph Oelckers
977223287e - cap the frame rate of RRRA's cactus drug mode.
This was running at full render speed.
2020-11-05 07:31:48 +01:00
Christoph Oelckers
d8e331ef0f - changed Duke/RR palette handling to only retrieve the currently active palette right before rendering.
Storing this in the player_struct is pointless and a relic from having to use real hardware palette switches.
With this now just being a translation index being passed to the backend it can be cheaply retrieved right when used and nowhere else.
Also making some changes to how RRRA's psychedelic cactus handles the projection. This fixes issues with occasionally passing a bad matrix.
2020-11-05 07:31:48 +01:00
Mitchell Richters
e8ccd9bc8c - Fix compilation. 2020-11-05 11:14:04 +11:00
Christoph Oelckers
60263ccad9 - fixed destroyit.
This caused parts of the exploding house in RRRA E1L5 not to disappear.
2020-11-04 21:53:56 +01:00
Christoph Oelckers
6729859e39 - fixed the crane.
Cannot take the special value out of the owner field. :(
2020-11-04 21:25:59 +01:00
Christoph Oelckers
721efae0d3 - fixed camera loop. 2020-11-04 20:44:12 +01:00
Christoph Oelckers
083454986b - made camsprite an actor variable. 2020-11-04 20:40:26 +01:00
Christoph Oelckers
25c93e65fc - more script ID wrappers for sectors. 2020-11-04 20:40:26 +01:00
Christoph Oelckers
aac5ab55a3 - movesprite cleanup. 2020-11-04 20:40:25 +01:00
Christoph Oelckers
7a95c1661e - wrap actor index storage in sector in the script index API. 2020-11-04 20:40:25 +01:00
Christoph Oelckers
471a25f819 - operaterespawns.
# Conflicts:
#	source/games/duke/src/sectors_d.cpp
#	source/games/duke/src/sectors_r.cpp
2020-11-04 20:40:25 +01:00
Christoph Oelckers
5cf288a05c - changed the trip bomb indexing to use a separate counter for robustness. 2020-11-04 20:40:25 +01:00
Christoph Oelckers
0eb10f0313 - newowner and related code. 2020-11-04 20:40:25 +01:00
Christoph Oelckers
c90e7d9b5f - almost the last owners 2020-11-04 20:40:08 +01:00
Christoph Oelckers
d0db810ab0 - ud.camerasprite -> actor. 2020-11-04 20:40:08 +01:00
Christoph Oelckers
212b99d0f3 - use owner wrappers in spawn code. 2020-11-04 20:40:08 +01:00
Christoph Oelckers
24cfd841f2 - lotsofglass - final function in spawn.cpp 2020-11-04 20:40:07 +01:00
Christoph Oelckers
4add2b5839 - two more 2020-11-04 20:40:07 +01:00
Christoph Oelckers
ac5ea2f1c9 - 3 more wrappers gone. 2020-11-04 20:40:07 +01:00
Christoph Oelckers
8f754d163d - removed inline wrappers that are not needed anymore.
# Conflicts:
#	source/games/duke/src/spawn_r.cpp
2020-11-04 20:40:07 +01:00
Christoph Oelckers
f3f0fd0a3a - ported the sound code to actors and removed the inline helpers. 2020-11-04 20:40:07 +01:00
Christoph Oelckers
4c3435bacf - moved some non-owner info out of the owner field.
This only handles items where both reading and writing can be located.
2020-11-04 20:40:07 +01:00
Christoph Oelckers
15fc884909 - owners in spawn.cpp 2020-11-04 20:40:06 +01:00
Christoph Oelckers
90511a97e7 - initcrane and spawneffector. 2020-11-04 20:40:06 +01:00
Christoph Oelckers
e2e24fc508 - spawn.cpp part 2.
(Beware of the crane! That one's hacky!)
2020-11-04 20:40:06 +01:00
Christoph Oelckers
edb991e47d - first part of spawn.cpp. 2020-11-04 20:40:06 +01:00
Christoph Oelckers
60977ef4dc - the spawn dispatcher is no longer used. 2020-11-04 20:40:06 +01:00
Christoph Oelckers
c54f17a6d5 - hittype in spawn code. 2020-11-04 20:40:05 +01:00
Christoph Oelckers
e427668373 - the remaining iterators in sectors_r.cpp 2020-11-04 20:39:43 +01:00
Christoph Oelckers
6a8dc8217f - 6 simple loops in sectors_r.cpp. 2020-11-04 20:39:43 +01:00
Christoph Oelckers
bb23d9131e - player.i, part 4. 2020-11-04 20:39:43 +01:00
Christoph Oelckers
d773601d81 - player.i, part 3 2020-11-04 20:39:43 +01:00
Christoph Oelckers
cc0a668da3 - player.i, part 2
# Conflicts:
#	source/games/duke/src/sectors_r.cpp
2020-11-04 20:39:43 +01:00
Christoph Oelckers
770897b8b9 - player.i, part 1 2020-11-04 20:39:42 +01:00
Christoph Oelckers
d5a74e4290 - handled several GetIndex calls. 2020-11-04 20:39:39 +01:00
Christoph Oelckers
64c83d166e - fixed a few parameters 2020-11-04 20:39:39 +01:00
Christoph Oelckers
eb5cd98d9a - fixed a few bad parameters. 2020-11-04 20:39:39 +01:00
Christoph Oelckers
a8212f0756 - crash fix in spawn and camera fix. 2020-11-04 20:25:02 +01:00
Christoph Oelckers
afd059d6a1 - the remaining loops in sectors_d.cpp 2020-11-04 19:55:18 +01:00
Christoph Oelckers
7c6ea9cff7 - activatebysector. 2020-11-04 19:55:17 +01:00
Christoph Oelckers
7aca51a6c4 - 6 more loops. 2020-11-04 19:55:17 +01:00
Christoph Oelckers
d8a7821b4f - cleaned up a few more loops. 2020-11-04 19:55:17 +01:00
Christoph Oelckers
618c739318 - spawninitdefault. 2020-11-04 19:55:17 +01:00
Christoph Oelckers
4d4cb2da9b - handle the cheap-ass ROR code. 2020-11-04 19:55:17 +01:00
Christoph Oelckers
10d4f92232 - use a dedicated variable to store the vehicle ammo for RRRA's bike and boat.
owner should be reserved for pointers.
2020-11-04 19:55:17 +01:00
Christoph Oelckers
803cf4aece - the last two loops in premap_r.cpp 2020-11-04 19:55:16 +01:00
Christoph Oelckers
a63c62bf7c - the geometry effect loop 2020-11-04 19:55:16 +01:00
Christoph Oelckers
9f3b74f4a2 - 3 loops in premap_r.cpp 2020-11-04 19:55:16 +01:00
Christoph Oelckers
8360ba99ff - fixed cacheit_r sector loop. 2020-11-04 19:55:16 +01:00
Christoph Oelckers
68f9037883 - pointer replacements. 2020-11-04 19:55:16 +01:00
Christoph Oelckers
86909c9068 - fixed cacheit_d sector loop. 2020-11-04 19:55:16 +01:00
Christoph Oelckers
2b0f56a94c - changed setsectinterpolate to receive a sector number, not a sprite number. 2020-11-04 19:55:16 +01:00
Christoph Oelckers
32fc9329de - another iterator.
This one's for init code that needs to iterate sprites in spawn order.
2020-11-04 19:55:15 +01:00
Christoph Oelckers
12ef8c4543 This completes player_r.cpp 2020-11-04 19:55:15 +01:00
Christoph Oelckers
34d0219d06 - nullptr fixes 2020-11-04 19:55:15 +01:00
Christoph Oelckers
36370b71e2 - wrapped neartag to return an actor. 2020-11-04 19:55:15 +01:00
Christoph Oelckers
bc6ae872ae - cleaned up the checkhitswitch interface to receive sprites as pointers. 2020-11-04 19:55:15 +01:00
Christoph Oelckers
3e7c8adc1e - checkhitswitch_r part 4 2020-11-04 19:55:15 +01:00
Christoph Oelckers
4ce19b74b0 - checkhitswitch_r part 3 2020-11-04 19:55:14 +01:00
Christoph Oelckers
e81b37b31a - checkhitswitch_r part 2 2020-11-04 19:55:14 +01:00
Christoph Oelckers
2a23dfa0a8 - checkhitswitch_r part 1 2020-11-04 19:55:14 +01:00
Christoph Oelckers
f13a8943ab - checkhitswitch_d part 2 2020-11-04 19:55:14 +01:00
Christoph Oelckers
f1ab8f03ef - checkhitswitch_d part 1 2020-11-04 19:55:14 +01:00
Christoph Oelckers
87e8801531 - handle the clipmove result in processinput. 2020-11-04 19:55:14 +01:00
Christoph Oelckers
419cf9af5e - processinput part 1. 2020-11-04 19:55:13 +01:00
Christoph Oelckers
ef2c773e02 - RR processweapon pass 1 2020-11-04 19:55:13 +01:00
Christoph Oelckers
d4dabee52d - OnMotorcycle/BoatHit. 2020-11-04 19:55:13 +01:00
Christoph Oelckers
454b2315d4 - use actors instead of indices for sound calls. 2020-11-04 19:55:13 +01:00