Commit graph

2879 commits

Author SHA1 Message Date
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
4397e65443 - cleaned up the generic destructible code and used it for several more things. 2022-12-11 19:43:50 +01:00
Christoph Oelckers
f89ccec829 - scriptified Duke's reactor. 2022-12-11 19:43:50 +01:00
Christoph Oelckers
f6fe639233 - avoid propagating owner flags where easily doable.
This particular case is done a lot better by setting a special flag.
2022-12-11 19:43:50 +01:00
Christoph Oelckers
59659bc284 - scriptified the last two RR projectiles.
These are particularly messy - they have different looks depending on the shooter...
2022-12-11 19:43:49 +01:00
Christoph Oelckers
403141807f - scriptified all simple and explosive RR projectiles. 2022-12-11 19:43:49 +01:00
Christoph Oelckers
82515e1d76 - scriptified the World Tour's flamethrower#s fireball.
Also using a better method to mark the trailing balls than checking the owner.
2022-12-11 19:43:49 +01:00
Christoph Oelckers
26d9511087 - scriptified the octabrain projectile. 2022-12-11 19:43:49 +01:00
Christoph Oelckers
6a83a72f71 - removed some leftover debug code. 2022-12-11 19:43:49 +01:00
Christoph Oelckers
f2df8a162f - scriptified Duke's spit projectile. 2022-12-11 19:43:49 +01:00
Christoph Oelckers
fcd05e38c9 - scriptified the freezer projectile. 2022-12-11 19:43:49 +01:00
Christoph Oelckers
83080beed4 - added SMALLSMOKE to the spawn list for ZScript. 2022-12-11 19:43:49 +01:00
Christoph Oelckers
f4bc5d6df8 - scriptified Duke's RPG. 2022-12-11 19:43:48 +01:00
Christoph Oelckers
c1545a1eaa - scriptified the shrink spark. 2022-12-11 19:43:48 +01:00
Christoph Oelckers
a756b71647 - scriptified the firelaser projectile.
This also fixes the animation of the RR variant, which used a bad value with '&'.
2022-12-11 19:43:48 +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
8a921c98bd - scriptified ooz. 2022-12-11 19:43:47 +01:00
Christoph Oelckers
9d1384449c - scriptified the Recon. 2022-12-11 19:43:47 +01:00
Christoph Oelckers
2ab5e63386 - added a few new actor flags. 2022-12-11 19:43:47 +01:00
Christoph Oelckers
7db953e0ea - scriptified the force sphere.
Doesn't seem to be used anywhere, though...
2022-12-11 19:43:47 +01:00
Christoph Oelckers
bbfb811e1e - simplified PicForName 2022-12-11 19:43:47 +01:00
Christoph Oelckers
6d9a8bfaa5 - scriptified the pool balls. 2022-12-11 19:43:47 +01:00
Christoph Oelckers
1ef61c8588 - exported a bunch of stuff we're going to need soon. 2022-12-11 19:43:47 +01:00
Christoph Oelckers
f138798e26 - scriptified the rat. 2022-12-11 19:43:46 +01:00
Christoph Oelckers
99413651b3 - scriptified the respawn marker. 2022-12-11 19:43:46 +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
f43dc9d925 - Duke: fixed Jibs animation and scale. 2022-12-11 19:43:46 +01:00
Christoph Oelckers
a6a4e628df - scriptified RRRA's gambling machines.
These were fallout from the generic destructibles because the code to destroy them was removed along with that.
2022-12-11 19:43:46 +01:00
Christoph Oelckers
1d52963d4b - converted all simple destructible sprites.
Ironically the first item I used for testing needed a dedicated class, so here's that, too...
2022-12-11 19:43:46 +01:00
Christoph Oelckers
9e29c3970d - generic destructibles 2022-12-11 19:43:45 +01:00
Christoph Oelckers
786c335489 - added SFLAG2_NORADIUSPUSH flag. 2022-12-11 18:46:40 +01:00
Christoph Oelckers
93ef4b34d7 - scriptified the guts spawning function. 2022-12-11 18:46:40 +01:00
Christoph Oelckers
3ac8bd02f5 - scriptified the jibs 2022-12-11 18:46:40 +01:00
Christoph Oelckers
1b3f551216 - use a flag for outer space textures. 2022-12-11 18:42:02 +01:00
Christoph Oelckers
c7cdf96a62 - exported two more settings to tile flags. 2022-12-11 18:42:02 +01:00
Christoph Oelckers
67e807de26 - exported the tile flag setters to .def. 2022-12-11 18:42:01 +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
5a8612110d - Process scaled angle adjustments in each game's render function, not from the input function.
* Previous config had the potential to call `I_GetInputFrac()` nearly twice in a row, which would have resulted in some hitching.
* Calling from each game's render function avoids the above and means we can start applying scaled angle changes one frame faster.
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
1aad5eacfa - Remove all remaining legacy wrappers. 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
cca36b8061 - Make legacy weapon drawers in PlayerAngles local to Redneck code, they will eventually go. 2022-12-11 18:42:00 +01:00
Mitchell Richters
e972818db5 - Tidy up modern crosshair/weapon offset drawers. 2022-12-11 18:41:59 +01:00
Mitchell Richters
25de63ffb5 - Cleanup of render draw code to use new angle getter. 2022-12-11 18:41:59 +01:00
Mitchell Richters
599a375d67 - Rename DCoreActor::interpolatedangle() to DCoreActor::interpolatedyaw() 2022-12-11 18:41:59 +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
175b182805 - Invert rotscrnang so it rolls forward, consistent with all other angles. 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
a84e09048e - Change wrapper internals for current yaw to the actor's sprite DRotator and make sure all the games load a level. 2022-12-11 18:41:57 +01:00
Mitchell Richters
7f5b97a0b7 - Change wrapper internals for current pitch to the actor's sprite DRotator and make sure all the games load a level. 2022-12-11 18:41:57 +01:00
Mitchell Richters
850c988dfa - Wrap access to previous yaw. 2022-12-11 18:41:57 +01:00
Mitchell Richters
be466fec8d - Wrap access to current yaw. 2022-12-11 18:41:57 +01:00
Mitchell Richters
fd05d320ff - Wrap access to previous pitch. 2022-12-11 18:41:56 +01:00
Mitchell Richters
15f1d89855 - Wrap access to current pitch. 2022-12-11 18:41:56 +01:00
Mitchell Richters
60a97f781e - Add DCoreActor pointer as PlayerAngles::pActor, setting and nulling where the player's actor is set. 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
f305fbb370 - Rename PlayerAngle getters in preparation for replacement work. 2022-12-11 18:41:55 +01:00
Mitchell Richters
a061f2baef - Rename PlayerAngle::spin to its destined final name. 2022-12-11 18:41:55 +01:00
Mitchell Richters
a42750f37f - Rename PlayerAngle::orotscrnang in preparation for replacement work. 2022-12-11 18:41:55 +01:00
Mitchell Richters
7d34288290 - Rename PlayerAngle::rotscrnang in preparation for replacement work. 2022-12-11 18:41:55 +01:00
Mitchell Richters
3a0ec29c18 - Rename PlayerAngle::olook_ang in preparation for replacement work. 2022-12-11 18:41:55 +01:00
Mitchell Richters
644cf82238 - Rename PlayerAngle::look_ang in preparation for replacement work. 2022-12-11 18:41:55 +01:00
Mitchell Richters
50cf22ec53 - Rename PlayerAngle::oang in preparation for replacement work. 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
723631cc81 - Rename PlayerHorizon::ohorizoff in preparation for replacement work. 2022-12-11 18:41:54 +01:00
Mitchell Richters
216fad7e18 - Rename PlayerHorizon::horizoff in preparation for replacement work. 2022-12-11 18:41:53 +01:00
Mitchell Richters
0c53990c87 - Rename PlayerHorizon::ohoriz in preparation for replacement work. 2022-12-11 18:41:53 +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
Christoph Oelckers
c60fea678d - replace the homegrown hash chain in the sound engine with a TMap. 2022-12-11 18:41:52 +01:00
Christoph Oelckers
a825dfb8ca - Duke sound is working again. 2022-12-11 18:41:52 +01:00
Christoph Oelckers
f103e33300 - fixed code up to the point where everything compiles again. Duke sounds are currently non-functional.
All Duke script code has been changed to use strings as sound names now, just like GZDoom these will be looked up at compile time.
Original Duke sound indices still exist but are now being managed as resource IDs, not sound engine indices anymore.
2022-12-11 18:41:51 +01:00
Christoph Oelckers
4983f8e671 wipstuff 2022-12-11 18:41:51 +01:00
Mitchell Richters
a5e35637ac - Duke: Remove 2x player sprite Z setters that shouldn't be necessary. 2022-12-11 18:41:51 +01:00
Mitchell Richters
4848a844af - Duke: Use getPosWithOffsetZ() in a few places. 2022-12-11 18:41:51 +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
Christoph Oelckers
7188956702 - minor cleanup. 2022-12-11 18:41:50 +01:00
Christoph Oelckers
76fabcd1c7 - chickenplant scriptified. 2022-12-11 18:41:50 +01:00
Mitchell Richters
39d1a758ed - Remove DCoreActor::ZeroVelocityXY(). 2022-12-11 18:41:44 +01:00
Mitchell Richters
4de1b8ad86 - Create DCoreActor::getRenderPos() and use within Duke. 2022-12-11 18:41:44 +01:00
Mitchell Richters
d1c5f9516f - Duke: Remove player_struct::posoldAdd() and player_struct::posoldGet(). 2022-12-11 18:41:44 +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