Mitchell Richters
cc977d510a
- Duke/RR: Consolidate identical vehicle drinking code.
2023-03-20 21:46:16 +11:00
Mitchell Richters
07b1ec518b
- Duke/RR: Consolidate identical vehicle bumping code.
2023-03-20 21:07:52 +11:00
Mitchell Richters
d5bc7718d1
- Duke/RR: Tidy up angle changes/accesses in vehicle ticker code.
...
* Already have an actor pointer on the stack we can use.
* Other tidy-ups.
2023-03-20 21:07:52 +11:00
Mitchell Richters
134b635966
- Duke/RR: Ensure braking sync bit is always cleared in onBoat()
.
2023-03-20 21:07:50 +11:00
Mitchell Richters
ebd8ab985e
- Duke/RR: Don't archive off MotoSpeed for reuse at end of vehicle functions.
...
* Kept the workflow identical to the old setup in the other commits, but does not seem necessary and all it does is make the speed one tic behind where it would be otherwise.
2023-03-19 21:58:30 +11:00
Mitchell Richters
ba8f1069ab
- Duke/RR: Fix an issue with reversing.
...
* Got the position of the bools wrong here when removing something unsafe from the input handler.
2023-03-19 21:35:39 +11:00
Mitchell Richters
81650036e6
- Duke/RR: Remove vehForward/Reverse variables from player struct.
...
* Back in 2020, I was trying to tidy stuff up and had no idea about network awareness, etc.
* The original game misused network bits here, however I don't see why the player's angle can't just be tested for signedness. Again, something I didn't see way back when...
2023-03-19 20:55:39 +11:00
Mitchell Richters
37e9cfed45
- Duke/RR: Remove vehBraking variable from player struct.
...
* Back in 2020, I was trying to tidy stuff up and had no idea about network awareness, etc.
* We must continue the misuse of network bits like the original game did to make sure the RRRA vehicles are network aware.
2023-03-19 20:54:43 +11:00
Mitchell Richters
31f8de3854
- Duke/RR: Remove vehTurn variables from player struct.
...
* Back in 2020, I was trying to tidy stuff up and had no idea about network awareness, etc.
* The original game misused network bits here, however I don't see why the player's angle can't just be tested for signedness. Something I didn't see way back when...
2023-03-19 20:54:19 +11:00
Mitchell Richters
a7d829d539
- Duke: Change where centering view locks the input.
2023-03-19 09:08:24 +11:00
Mitchell Richters
4355a44721
- Duke: Rework input blocking setup.
...
* Takes the duplicated conditions out of the input handler and makes the ticker responsible by forcing synchronised input.
2023-03-18 19:29:29 +11:00
Mitchell Richters
a45890e064
- Move some Duke-specific stuff out of ApplyGlobalInput()
.
2023-03-18 09:15:15 +11:00
Mitchell Richters
c4041affb1
- Duke: Reduce boilerplate from previous commit.
2023-03-16 22:24:34 +11:00
Mitchell Richters
9a17d33579
- Duke: Ensure spawned player actor has view height baked in up until the first getzrange()
call.
...
* The original game spawning the player's sprite/actor would set the sprite's pos with the Z matching the player's, which had a height offset already applied.
* This baked in height offset was carried through up until the `SetActor()` call in `processinput()`, where the original game would then strip off `gs.playerheight`.
* This baked in height offset within the actor is critical on the first tic for pre-activated elevators on level spawn to function right, such as E1L2 and E2L3.
* Properly setting the player actor's Z immediately after the initial `getzrange()` call, but before other functions like `movement()`, etc further down in `processinput()` is the best spot.
* Fixes #870 .
2023-03-16 22:15:11 +11:00
Mitchell Richters
a90665732c
- Clean up other PlayerAngles interfaces for consistency.
2023-03-14 21:45:38 +11:00
Mitchell Richters
62561d863e
- Tidy up PlayerAngles::doPitchKeys()
interface by passing the whole sync packet through.
2023-03-14 21:45:37 +11:00
Christoph Oelckers
0db441accb
- scriptified the native parts of the powder keg.
...
This was the last remaining actor with its own native ticking part.
2023-01-28 16:31:46 +01:00
Christoph Oelckers
220c1f0e76
- make sure the RPG's start spund plays.
...
This fix is just a temporary workaround due to the incomplete scriptfication
2023-01-04 20:20:10 +01:00
Christoph Oelckers
d064706f93
- got rid of wallpicnum and overpicnum.
...
All map geometry npw uses texture IDs and no longer depends on Build's tile system.
(What's missing is a new map format, though, but this was a necessary prerequisite to make that worthwile...)
2022-12-29 14:14:53 +01:00
Christoph Oelckers
f5e9e7d981
- got rid of most remaining references to wallpicnum and overpicnum.
...
What remains now needs changing the variables to texture IDs first.
2022-12-29 14:14:53 +01:00
Christoph Oelckers
95a2b85fae
- migrated the rest of the switch code to use the external data.
2022-12-29 13:35:21 +01:00
Christoph Oelckers
808fb3c433
- simplified several switch check blocks using the data from the definition files.
2022-12-29 13:32:30 +01:00
Christoph Oelckers
2386ea9930
- implemented the 3 special switches
...
That's the developer commentary icon in World Tour, the deactivation switch for the chicken processing plant in RR and one shootable alarm bell in RRRA.
2022-12-29 13:32:30 +01:00
Christoph Oelckers
0d9fe83cba
- implemented the switch parser and set up the external definitions.
2022-12-29 13:32:29 +01:00
Christoph Oelckers
8dfbbc8220
- migrated floorpicnum and ceilingpicnum to FTextures.
...
The sky code still needs some work.
2022-12-18 14:32:52 +01:00
Christoph Oelckers
622710ede4
- migrated all uses of floorpicnum.
...
This necessitated a few more surface type definitions.
2022-12-18 14:02:56 +01:00
Christoph Oelckers
4a306a21dc
- split several texture flags off into a surface type value.
...
Using the same field in the TexExtInfo struct as Blood's surfType.
This frees up a lot of flags for later use.
2022-12-18 13:56:54 +01:00
Christoph Oelckers
1a98f9b478
- Duke: change all checks for mirrors to texture IDs
2022-12-18 13:52:10 +01:00
Christoph Oelckers
0ffeb2378a
- generalize Duke's purple lava check.
2022-12-18 13:43:26 +01:00
Christoph Oelckers
6848af9b6c
- use texture IDs in Duke's texture flag checkers.
2022-12-18 13:42:28 +01:00
Christoph Oelckers
e9acd74157
- added a fallback in shoot_* for incompletely ported items.
2022-12-18 00:34:17 +01:00
Mitchell Richters
7d6eb2bae6
- Remove some pitch/yaw deltaangle additions in lieu of setting the angle directly.
...
* This deltaangle addition was needed with the old input setup.
2022-12-11 19:46:27 +01:00
Mitchell Richters
c3f276a08a
- Tidy up remaining Build angle constants in gamefuncs.h
.
2022-12-11 19:46:27 +01:00
Christoph Oelckers
e26d9106aa
- handle all occurences of tileWidth and tileHeight using spritetypebase::picnum.
2022-12-11 19:44:01 +01:00
Christoph Oelckers
ede5b017ab
- renamed walltype::picnum to wallpicnum for easier searching.
2022-12-11 19:43:58 +01:00
Christoph Oelckers
a08db47528
- exported all breakable ceilings.
...
Very simple stuff with instant profit. :)
2022-12-11 19:43:58 +01:00
Christoph Oelckers
a63ee8079a
- implemented customizable breakable walls and ported all hard coded variants to use this.
2022-12-11 19:43:57 +01:00
Christoph Oelckers
0df5be7ad0
- also renamed all RR tile names.
2022-12-11 19:43:57 +01:00
Christoph Oelckers
c1a09196f0
- implemented breakable walls with external definitions.
...
The scripted case does not work yet due to bad loading order of files.
2022-12-11 19:43:57 +01:00
Mitchell Richters
2c592405fa
- Separate pitch/yaw key input into separate functions and apply from the ticker.
2022-12-11 19:43:56 +01:00
Mitchell Richters
f58e3c58aa
- Remove PlayerAngles::setPitch()
method usage.
2022-12-11 19:43:56 +01:00
Mitchell Richters
491a42d2bb
- Remove PlayerAngles::addYaw()
method usage.
2022-12-11 19:43:56 +01:00
Mitchell Richters
7a7758efaa
- Remove PlayerAngles::addPitch()
method usage.
2022-12-11 19:43:56 +01:00
Mitchell Richters
968d0ae0d2
- Implement new scaled angle change setup and remove enforcement of synchronised input.
2022-12-11 19:43:55 +01:00
Christoph Oelckers
6fb263d61b
- converted the two last non-CON-based active items - RRRA's empty bike and boat.
2022-12-11 19:43:54 +01:00
Christoph Oelckers
c9628db264
- scriptified the toilet.
2022-12-11 19:43:53 +01:00
Christoph Oelckers
cbb3b0ebfb
- preparations for the next script exports.
2022-12-11 19:43:53 +01:00
Christoph Oelckers
d83e203b8d
- renamed a few RR sprites plus one associated global variable.
2022-12-11 19:43:53 +01:00
Christoph Oelckers
5a155730b4
- scriptified RR's bowling stuff.
2022-12-11 19:43:52 +01:00
Christoph Oelckers
9ad8f67ce9
- added isEffector inline and exported NATURALLIGHTNING which got a bit in the way.
2022-12-11 19:43:52 +01:00
Christoph Oelckers
be6ead173a
- scriptified several smaller actors
2022-12-11 19:43:51 +01:00
Christoph Oelckers
0bc9023e17
- scriptified the pipe bomb and RR's dynamite, which is mostly the same thing.
...
The mortars were split off because they made the code too convoluted.
2022-12-11 19:43:51 +01:00
Christoph Oelckers
b9caa23357
- gave proper names to ST_160 and ST_161.
2022-12-11 19:43:51 +01:00
Christoph Oelckers
5358b3d98c
- added a new sprite flag for those types which can trigger respawn actions.
2022-12-11 19:43:50 +01:00
Christoph Oelckers
403141807f
- scriptified all simple and explosive RR projectiles.
2022-12-11 19:43:49 +01:00
Christoph Oelckers
44fa420387
- added a few new flags and renamed some sprites.
...
All this is preparations for scriptifying the projectiles.
2022-12-11 19:43:48 +01:00
Christoph Oelckers
15fb7dab35
- virtualized the 'shoot' interface and scriptified the bloodsplats to test it.
...
This calls virtual functions on the actor defaults now to allow writing specific shoot functions for subclasses.
2022-12-11 19:43:48 +01:00
Christoph Oelckers
2ab5e63386
- added a few new actor flags.
2022-12-11 19:43:47 +01:00
Christoph Oelckers
b485d7a450
- use isPlayer function where possible.
2022-12-11 19:43:46 +01:00
Christoph Oelckers
dbb7965550
- added two new flags for later use.
2022-12-11 19:43:46 +01:00
Christoph Oelckers
c7cdf96a62
- exported two more settings to tile flags.
2022-12-11 18:42:02 +01:00
Christoph Oelckers
5a2819239c
- moved Duke's tile flags into the tile manager.
...
This is so that .def can access them. Later the other games also might make use of this.
2022-12-11 18:42:01 +01:00
Mitchell Richters
6c0493868e
- Implement new method for applying scaled angle changes.
...
* This method works more accurately to how an angle change would occur under interpolated circumstances.
2022-12-11 18:42:01 +01:00
Mitchell Richters
dfb55c39ca
- Duke: Remove all remaining angle wrapper usage.
2022-12-11 18:42:00 +01:00
Mitchell Richters
a7a5d4b946
- Preserve one legacy getter that's needed extensively in Duke.
2022-12-11 18:42:00 +01:00
Mitchell Richters
abdeeac205
- Rework PlayerAngles::doViewPitch()
to apply at ticrate like PlayerAngles::doViewYaw()
.
2022-12-11 18:41:59 +01:00
Mitchell Richters
f9aeee5b4a
- Split out view angle stuff out of PlayerAngles::applyYaw()
into PlayerAngles::doViewYaw()
.
...
* Do all the view angle stuff as interpolated changes in the playsim as well, there's no need for these to be done at ticrate.
2022-12-11 18:41:59 +01:00
Mitchell Richters
d7d76d5fc4
- Move all PlayerAngles view angle properties into new DRotator objects.
2022-12-11 18:41:58 +01:00
Mitchell Richters
bef4536c1f
- Remove old PlayerAngles
backup/restore methods.
2022-12-11 18:41:58 +01:00
Mitchell Richters
630c10856e
- Re-write PlayerAngles
scaled adjustment methods.
2022-12-11 18:41:58 +01:00
Mitchell Richters
aa868232c8
- Clean up all previously annotated angle/yaw checks.
2022-12-11 18:41:58 +01:00
Mitchell Richters
be466fec8d
- Wrap access to current yaw.
2022-12-11 18:41:57 +01:00
Mitchell Richters
15f1d89855
- Wrap access to current pitch.
2022-12-11 18:41:56 +01:00
Mitchell Richters
b9f5bb71cc
- Merge PlayerHorizon
and PlayerAngle
structs into PlayerAngles
struct.
2022-12-11 18:41:56 +01:00
Mitchell Richters
d75ac9e445
- Rename PlayerAngle
prototypes in preparation for replacement work.
2022-12-11 18:41:56 +01:00
Mitchell Richters
353c2a20fd
- Rename remaining PlayerAngle
methods.
2022-12-11 18:41:55 +01:00
Mitchell Richters
bd063de5f5
- Rename PlayerAngle::ang
in preparation for replacement work.
2022-12-11 18:41:54 +01:00
Mitchell Richters
d810afa2e9
- Rename PlayerHorizon
prototypes in preparation for replacement work.
2022-12-11 18:41:54 +01:00
Mitchell Richters
9ab8db04db
- Rename remaining PlayerHorizon
methods.
2022-12-11 18:41:54 +01:00
Mitchell Richters
3758d93ad8
- Rename PlayerHorizon
getters in preparation for replacement work.
2022-12-11 18:41:54 +01:00
Mitchell Richters
401a829d54
- Rename PlayerHorizon::horiz
in preparation for replacement work.
2022-12-11 18:41:53 +01:00
Mitchell Richters
f027d07ae5
- Annotate all player angles that are being set as the sprite angles to review later.
...
* Once the angles between player and sprite have been unified, these will be much harder to identify.
2022-12-11 18:41:53 +01:00
Mitchell Richters
110cc5149d
- Annotate all sprite angles that are being set as the player angle to review later.
...
* Once the angles between player and sprite have been unified, these will be much harder to identify.
2022-12-11 18:41:53 +01:00
Mitchell Richters
2e0b9490e1
- Change spritetypebase::angle
to a DRotator named Angles
.
...
* Major pre-requisite for the next steps I'm undertaking, let's get it into the branch now.
2022-12-11 18:41:52 +01:00
Christoph Oelckers
347d725ba0
- Duke: gave all switch animation phases proper texture names.
2022-12-11 18:41:52 +01:00
Mitchell Richters
4a6e2683f2
- Duke/RR: Properly fix movement()
so the player's Z always makes it back to floorz.
...
* The `abs(k)` here was really messing it up.
* RR's height of 40 is actually a fix of Duke's 38, which left the player slightly off the ground.
* Duke when returning from crouching, jumping, or otherwise changing the Z always correctly ends up at the floor's Z now.
2022-12-11 18:41:51 +01:00
Christoph Oelckers
1ac4aee0c1
- RR cactus stuff
2022-12-11 18:41:50 +01:00
Christoph Oelckers
c48dfc082f
- scriptified RR's lumber blade.
2022-12-11 18:41:50 +01:00
Mitchell Richters
f10f1b9154
- Duke: Remove player_struct::posoldZset()
and player_struct::posoldZget()
.
2022-12-11 18:41:44 +01:00
Mitchell Richters
66a08a26e8
- Duke: Remove player_struct::posoldX()
, player_struct::posoldY()
, and player_struct::posoldXY()
.
2022-12-11 18:41:44 +01:00
Mitchell Richters
4551274e7d
- Duke: Remove player_struct::posSet()
.
2022-12-11 18:41:44 +01:00
Mitchell Richters
27be72c7ec
- Duke: Remove player_struct::posGet()
.
2022-12-11 18:41:43 +01:00
Mitchell Richters
b42672dcf9
- Duke: Remove player_struct::posZget()
.
2022-12-11 18:41:43 +01:00
Mitchell Richters
bd8a6dd956
- Duke: Remove player_struct::posZadd()
.
2022-12-11 18:41:43 +01:00
Mitchell Richters
78b04649f1
- Duke: Remove player_struct::posZset()
.
2022-12-11 18:41:43 +01:00
Mitchell Richters
92dd6c9795
- Duke: Remove player_struct::posXY()
.
2022-12-11 18:41:43 +01:00
Mitchell Richters
6f102e1171
- Duke: Remove player_struct::posX()
and player_struct::posY()
.
2022-12-11 18:41:43 +01:00
Mitchell Richters
b1bd59db41
- Duke: Clean up all player position calls referencing gs.playerheight
that don't need it when using the sprite height.
2022-12-11 18:41:42 +01:00
Mitchell Richters
a78d976352
- Duke: Remove player_struct::backupxyz()
in lieu of actor variant.
2022-12-11 18:41:42 +01:00
Mitchell Richters
b0c95f69c5
- Duke: Wrap calls that get player_struct::PlayerOldPosition
.
2022-12-11 18:41:41 +01:00