Commit graph

13361 commits

Author SHA1 Message Date
Mitchell Richters
318ff64f36 - Allow passing angle through when drawing the generic crosshair. 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
fdcf8bbe2f - Reorder variables in getscaledangle(). 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
2b9e3f804d - Remove wrapper usage within gameinput.cpp. 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
01d9877c8c - Blood: Repair synchronised input interpolation issues following changes. 2022-12-11 18:41:58 +01:00
Mitchell Richters
24ec58f4e6 - Change wrapper internals for previous 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
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
16a48cba17 - Change wrapper internals for previous 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
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
9b6f01dff0 - Rename PlayerAngle private members 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
b38f9a8779 - Rename PlayerHorizon private members 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
901000bee5 - Change DCoreActor::oang to a DRotator named PrevAngles. 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
10c552fb66 - did a bit of optimization on FGameTexture.
Since all material layers except the brightmaps are relatively rare encounters these were taken out of the main texture object and offloaded to a substructure that is only allocated on demand.
2022-12-11 18:41:52 +01:00
Christoph Oelckers
52e5e2f59a - use a sepate file system filter for 'duke-like' games, i.e. Duke, NAM and WW2GI combined.
These 3 all require the same SNDINFO being loaded.
2022-12-11 18:41:52 +01:00
Christoph Oelckers
797c122363 fixed the sound controller's sound selection.
In this case the game-side resource ID was silently cast to a sound ID but it needs explicit conversion.
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
Mitchell Richters
7e6bc02d45 - Make stat coord show full floating point values. 2022-12-11 18:41:51 +01:00
Mitchell Richters
597b291252 - Blood: Fix gi->WarpToCoords() that messed up the Z. 2022-12-11 18:41:51 +01:00
Mitchell Richters
e991116abf - SW: Take full advantage of our floating point work for the wall blood drips. 2022-12-11 18:41:50 +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
397acfa242 - Blood: Migrate to new actor viewzoffset property (sort of).
* The way this game does it player Z in a distinct variable needs to be maintained as it's impossible to maintain proper Z velocities when trying to do without it.
2022-12-11 18:41:50 +01:00
Mitchell Richters
13be5f7923 - Exhumed: Migrate to new actor viewzoffset property. 2022-12-11 18:41:50 +01:00
Mitchell Richters
e3f6b5ff85 - SW: Clean up a useless test function. 2022-12-11 18:41:50 +01:00
Mitchell Richters
c43bde9b4d - SW: Remove all the player oldpos stuff.
* This only had one valid use, for a bad setup in `DoPlayerRun()` where `DoPlayerBob()` was called before `DoPlayerMove()`.
2022-12-11 18:41:49 +01:00
Mitchell Richters
703db0e3c3 - SW: Remove PLAYER::posGet(). 2022-12-11 18:41:49 +01:00
Mitchell Richters
be06582062 - SW: Remove PLAYER::posAdd(). 2022-12-11 18:41:49 +01:00
Mitchell Richters
7eba7aacbd - SW: Remove last PLAYER::posSet() calls. 2022-12-11 18:41:49 +01:00
Mitchell Richters
bf0f0345b3 - SW: Remove most PLAYER::posSet() calls. 2022-12-11 18:41:49 +01:00
Mitchell Richters
0917434888 - SW: Remove PLAYER::posXY(). 2022-12-11 18:41:49 +01:00
Mitchell Richters
ff75fa513a - SW: Remove PLAYER::posZadd(). 2022-12-11 18:41:48 +01:00
Mitchell Richters
3b961ccae9 - SW: Remove PLAYER::posZget().
- SW: Remove `PLAYER::posZget()`.
2022-12-11 18:41:48 +01:00
Mitchell Richters
fe795e6cfb - SW: Remove PLAYER::posZset() in favour of new utilities. 2022-12-11 18:41:48 +01:00
Mitchell Richters
f18512e270 - SW: Ladder fixes where centering of player was effectively occurring twice. 2022-12-11 18:41:48 +01:00
Mitchell Richters
7624f8b77d - SW: Death sequence fixes. 2022-12-11 18:41:48 +01:00
Mitchell Richters
88bace9dd7 - SW: Slightly increase the range check in DoPlayerDeathHoriz(). 2022-12-11 18:41:48 +01:00
Mitchell Richters
61086d7a8b - SW: Don't bob the actual sprite's Z since we apply it as an offset in the draw code. 2022-12-11 18:41:48 +01:00
Mitchell Richters
e6044bc0fd - SW: Repair player height issues. 2022-12-11 18:41:48 +01:00
Mitchell Richters
6d736aea19 - SW: Swap out the internals of the player's pos methods and get the game going again.
* Leave `PLAYER::PlayerOldPosition` for now.
2022-12-11 18:41:47 +01:00
Mitchell Richters
c14d1587f0 - SW: Move PLAYER struct underneath include for swactor.h.
* Needed by the next commit since the forward declaration isn't working.
2022-12-11 18:41:47 +01:00
Mitchell Richters
97a07cd83c - SW: Wrap remaining calls to PLAYER::PlayerOldPosition. 2022-12-11 18:41:47 +01:00
Mitchell Richters
9ab5fd0801 - SW: Wrap calls to PLAYER::PlayerOldPosition.XY(). 2022-12-11 18:41:47 +01:00
Mitchell Richters
f711355f2f - SW: Wrap calls that get PLAYER::PlayerPrevPosition. 2022-12-11 18:41:47 +01:00
Mitchell Richters
ad7a626b92 - SW: Wrap calls that set PLAYER::PlayerPrevPosition. 2022-12-11 18:41:47 +01:00
Mitchell Richters
2d351b2c28 - SW: Wrap calls that set PLAYER::PlayerPrevPosition.Z. 2022-12-11 18:41:47 +01:00
Mitchell Richters
bf833fcfa3 - SW: Wrap calls to PLAYER::PlayerPrevPosition.XY(). 2022-12-11 18:41:47 +01:00
Mitchell Richters
82e0e25b7e - SW: Manual fixes to last commit I wanted to keep separate. 2022-12-11 18:41:46 +01:00
Mitchell Richters
a54d0f7639 - SW: Wrap calls that get PLAYER::PlayerNowPosition. 2022-12-11 18:41:46 +01:00
Mitchell Richters
964557ab6b - SW: Wrap calls that add to PLAYER::PlayerNowPosition. 2022-12-11 18:41:46 +01:00
Mitchell Richters
11f9d82239 - SW: Wrap calls that set PLAYER::PlayerNowPosition. 2022-12-11 18:41:46 +01:00
Mitchell Richters
4bf202bee4 - SW: Wrap calls that get PLAYER::PlayerNowPosition.Z. 2022-12-11 18:41:46 +01:00
Mitchell Richters
4e0aa1add1 - SW: Wrap calls that add/subtract PLAYER::PlayerNowPosition.Z. 2022-12-11 18:41:46 +01:00
Mitchell Richters
6226d302f5 - SW: Wrap calls that set PLAYER::PlayerNowPosition.Z. 2022-12-11 18:41:46 +01:00
Mitchell Richters
7757288d33 - SW: Tidy up one vector equality test. 2022-12-11 18:41:45 +01:00
Mitchell Richters
7d0b2fba69 - SW: Wrap calls to PLAYER::PlayerNowPosition.XY(). 2022-12-11 18:41:45 +01:00
Mitchell Richters
f0074a913e - SW: Rename Player::oldpos to Player::PlayerOldPosition to make it easier to search upon. 2022-12-11 18:41:45 +01:00
Mitchell Richters
bf10d9816f - SW: Rename Player::opos to Player::PlayerPrevPosition to make it easier to search upon. 2022-12-11 18:41:45 +01:00
Mitchell Richters
cf25884675 - SW: Rename Player::pos to Player::PlayerNowPosition to make it easier to search upon. 2022-12-11 18:41:45 +01:00
Mitchell Richters
e55412f240 - Remove DCoreActor::ZeroVelocity(). 2022-12-11 18:41:45 +01:00
Mitchell Richters
39d1a758ed - Remove DCoreActor::ZeroVelocityXY(). 2022-12-11 18:41:44 +01:00
Mitchell Richters
7dd5cdb86c - Get rid of 2x unnecessary scope change calls on interpolatedvalue() calls. 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
Mitchell Richters
4551274e7d - Duke: Remove player_struct::posSet(). 2022-12-11 18:41:44 +01:00
Mitchell Richters
a1e68f88a5 - Duke: Remove player_struct::posAdd(). 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
29f2212d8f - Duke: Remove player_struct::backupz() in lieu of actor variant. 2022-12-11 18:41:42 +01:00
Mitchell Richters
a8c923f05c - Duke: Remove player_struct::backupxy() in lieu of actor variant. 2022-12-11 18:41:42 +01:00
Mitchell Richters
6eeedbd38a - Duke: Move player_struct::restorexyz() to DCoreActor::restorepos(). 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
4e4e457cfe - Duke: Fix doanimations() following position change to sprite. 2022-12-11 18:41:42 +01:00
Mitchell Richters
6d1370dcab - Duke: Fix a few more sector effector after position change to sprite. 2022-12-11 18:41:42 +01:00
Mitchell Richters
4a9775fde7 - Duke: Fix SE17 elevators after change to player position internals. 2022-12-11 18:41:41 +01:00
Christoph Oelckers
bfa7fddcea - always set the sound listener position to something valid.
Otherwise OpenAL throws lots of warning messages.
2022-12-11 18:41:41 +01:00
Mitchell Richters
dd5834444e - Duke: Swap out the internals of the player's pos methods and get the game going again. 2022-12-11 18:41:41 +01:00
Mitchell Richters
202137ed69 - Duke: Fix interpolation issues with player's XY coordinates while drawing using the sprite. 2022-12-11 18:41:41 +01:00
Mitchell Richters
9972c65842 - Duke: Back up all sprites as soon as possible.
* The player's input is processed before the sprites were backed up, causing interpolation issues with the player's Z.
2022-12-11 18:41:41 +01:00
Mitchell Richters
abd6275f17 - Add new double DCoreActor::viewzoffset set in spawning code during level loads.
* Interpolated backup copy isn't needed for Duke, but will be for SW.
2022-12-11 18:41:41 +01:00
Mitchell Richters
b0c95f69c5 - Duke: Wrap calls that get player_struct::PlayerOldPosition. 2022-12-11 18:41:41 +01:00
Mitchell Richters
1962d85f99 - Duke: Wrap calls that subtract from player_struct::PlayerOldPosition. 2022-12-11 18:41:40 +01:00
Mitchell Richters
fffc1915a9 - Duke: Wrap calls that add to player_struct::PlayerOldPosition. 2022-12-11 18:41:40 +01:00
Mitchell Richters
e4dd69f5b0 - Duke: Wrap calls that get player_struct::PlayerOldPosition.Z. 2022-12-11 18:41:40 +01:00
Mitchell Richters
830480b8b9 - Duke: Wrap calls that set player_struct::PlayerOldPosition.Z. 2022-12-11 18:41:40 +01:00
Mitchell Richters
4027f7256d - Duke: Wrap calls to player_struct::PlayerOldPosition.Y. 2022-12-11 18:41:40 +01:00
Mitchell Richters
823c5a7a47 - Duke: Wrap calls to player_struct::PlayerOldPosition.X. 2022-12-11 18:41:40 +01:00
Mitchell Richters
fa16d5d344 - Duke: Wrap calls to player_struct::PlayerOldPosition.XY(). 2022-12-11 18:41:40 +01:00
Mitchell Richters
a3b1ab10fe - Duke: Wrap calls that get player_struct::PlayerNowPosition. 2022-12-11 18:41:39 +01:00
Mitchell Richters
e9dcffc5ec - Duke: Route all clipmove()/pushmove() calls through a new interface that accepts a separated Z coordinate. 2022-12-11 18:41:39 +01:00
Mitchell Richters
a6a4cefa6c - Duke: Wrap calls that add to player_struct::PlayerNowPosition.
* The only adds were from DVector2 objects.
2022-12-11 18:41:39 +01:00
Mitchell Richters
58381c6eca - Duke: Wrap calls that set player_struct::PlayerNowPosition. 2022-12-11 18:41:39 +01:00
Mitchell Richters
25e6c4ecf8 - Duke: Wrap calls that get player_struct::PlayerNowPosition.Z. 2022-12-11 18:41:39 +01:00
Mitchell Richters
adc78c81c6 - Duke: Wrap calls that subtract from player_struct::PlayerNowPosition.Z. 2022-12-11 18:41:39 +01:00
Mitchell Richters
44166ae9e6 - Duke: Wrap calls that add to player_struct::PlayerNowPosition.Z. 2022-12-11 18:41:39 +01:00
Mitchell Richters
93189037c3 - Duke: Wrap calls that set player_struct::PlayerNowPosition.Z. 2022-12-11 18:41:38 +01:00
Mitchell Richters
008c05710b - Duke: Wrap calls to player_struct::PlayerNowPosition.Y. 2022-12-11 18:41:38 +01:00
Mitchell Richters
3a07c05af7 - Duke: Wrap calls to player_struct::PlayerNowPosition.X. 2022-12-11 18:41:38 +01:00
Mitchell Richters
5d3878eb55 - Duke: Wrap calls to player_struct::PlayerNowPosition.XY(). 2022-12-11 18:41:38 +01:00
Mitchell Richters
4b7d2fcfcc - Duke: Rename player's opos to something identifiable. 2022-12-11 18:41:38 +01:00
Mitchell Richters
4aa63b5446 - Duke: Rename player's pos to something identifiable. 2022-12-11 18:41:38 +01:00
Mitchell Richters
59e8821332 - Use the interpolated sine table for tangent instead of Cephis math in TAngle<T>.
* Performed testing and it's ~6.5x faster this way.
2022-12-11 18:41:38 +01:00
Mitchell Richters
17914db418 - SW: Utilise new weapon drawing offsets from the backend. 2022-12-11 18:41:38 +01:00
Mitchell Richters
f524abdf47 - Blood: Utilise new weapon drawing offsets from the backend. 2022-12-11 18:41:37 +01:00
Christoph Oelckers
0741570ba9 - we're past 1.6 now. 2022-12-11 18:31:07 +01:00
Christoph Oelckers
9cd1e9adb1 - updated Vulkan backend to use ZVulkan. 2022-12-11 18:30:01 +01:00
Christoph Oelckers
fbf5cdc18f - pulled in the ZScript map fixes from GZDoom. 2022-12-11 16:38:20 +01:00
Christoph Oelckers
e412a34f4e - bump savegame version. 2022-12-11 16:31:00 +01:00
Kevin Caccamo
b1c0614d93 Attempt to fix #647
I'm guessing the `nWalls < -1` is a typo, and it should have been `nWalls <= -1` all along. I decided to write `nWalls < 0` instead.

I don't know if I broke anything with this commit, but hopefully everything else still works as intended.
2022-12-11 16:26:25 +01:00
Mitchell Richters
64e53ffc7e Revert "- Duke: Invert the horizon offset in displayweapon_d() as it makes more sense."
This reverts commit 2d2f628b95.

This made sense for things such as cracking knuckles on idle as if you're looking up, the Y should drop down, however the setup of other areas such as `animateknee()` depend on the pitch being inverted like this.
2022-12-11 20:01:41 +11:00
Mitchell Richters
4bf8ea140c - Fix IWADBoxCallback() and MENUDEF setup for GLES backend. 2022-12-11 19:45:07 +11:00
Mitchell Richters
c762505b02 - Use the game's display name for defaultiwad, not the filename.
* Add-ons don't have a FileName entry, but everything has a display name therefore all bases are covered.
* Fixes #616.
2022-12-11 17:02:36 +11:00
Mitchell Richters
33975a083f - Draw crosshair at 1:1 scale when crosshairscale is 0, just like GZDoom.
* Fixes #767.
2022-12-11 16:16:16 +11:00
Christoph Oelckers
7d82ae28f4 - Duke/RR: fixed: animates array must be cleared on map change.
There was also some undefined behavior when an entry was deleted, this seems to originate from the original code.
2022-12-10 10:20:01 +01:00
Mitchell Richters
dc41057984 - In SetupGame(), test userConfig.DefaultCon before userConfig.gamegrp so addons work properly. 2022-12-10 10:48:34 +11:00
Mitchell Richters
25460e8e98 - Fix change to constant in last commit.
* How did that little `3` not make it in...
2022-12-09 20:00:37 +11:00
Mitchell Richters
2a82ef85b8 - Minor optimisation to the return to centre code. 2022-12-09 18:00:56 +11:00
Mitchell Richters
92bf00d3e9 - Fix incorrect sector usage in calcviewpitch(). 2022-12-09 17:48:26 +11:00
Mitchell Richters
1772238653 - Fix incorrect value for PITCH_HORIZOFFSPEED input constant. 2022-12-07 15:21:52 +11:00
Mitchell Richters
df63e5411b - Fix incorrect sign for PITCH_HORIZOFFCLIMB input constant. 2022-12-07 13:11:59 +11:00
Christoph Oelckers
ff8863833a - fixed GC::FullGC not collecting everything anymore.
With the delayed handling of internal references of destroyed objects the function now returned without making sure that it really got everything.
Repeating until it cannot delete anything new anymore makes it work again as intended.
2022-12-05 12:29:18 +01:00
Christoph Oelckers
1061e3e2ca - backend update from GZDoom. 2022-12-04 16:51:44 +01:00
Christoph Oelckers
4666c4a4b5 - RR: initialize the bowling lane displays after loading a savegame. 2022-12-02 15:45:19 +01:00
Christoph Oelckers
a0c7be9138 - try to address some occasional crash with chickens on the bowling lane.
Since this frequently swaps out some actors, it may be advisable to delay destruction by one frame to avoid actor chain consistency issues by writing into the just destroyed object.
2022-12-02 12:46:11 +01:00
Mitchell Richters
a580e9d884 - Duke: Increase the precision of the angle in handle_se00(). 2022-12-01 08:56:12 +01:00
Christoph Oelckers
f30abffa82 - uncommented line in savegame code that was disabled for testing and missed afterward. 2022-12-01 08:48:28 +01:00
Mitchell Richters
2d2f628b95 - Duke: Invert the horizon offset in displayweapon_d() as it makes more sense. 2022-11-30 10:03:58 +01:00
Mitchell Richters
a5e6e80c24 - Duke: Fix RPG from excess recoiling. 2022-11-30 10:03:58 +01:00
Mitchell Richters
3233a25e3a - Duke: Move WW2GI pistol aplWeapon*() calls to the stored ones. 2022-11-30 10:03:58 +01:00
Mitchell Richters
73705801e4 - Duke: Move 3x WW2GI aplWeaponTotalTime() calls to the stored one. 2022-11-30 10:03:57 +01:00
Mitchell Richters
7a3e4de913 - Duke: Move WW2GI handbomb aplWeapon*() calls to the stored ones. 2022-11-30 10:03:57 +01:00
Mitchell Richters
c48e95a710 - Duke: Store some repeated aplWeapon*() calls. 2022-11-30 10:03:57 +01:00
Mitchell Richters
59bafd6a37 - Duke: Clean up the addition/subtractions to the offsets vector in displayweapon_d(). 2022-11-30 10:03:57 +01:00
Mitchell Richters
33af8130b1 - Duke: General tidy-up of displayweapon_d(). 2022-11-30 10:03:57 +01:00
Mitchell Richters
4298f5011f - Duke: Clean up interface to animateknee(). 2022-11-30 10:03:57 +01:00
Mitchell Richters
436ed0288b - Duke: Clean up interface to animateaccess(). 2022-11-30 10:03:56 +01:00
Mitchell Richters
21df86d570 - Duke: Clean up interface to animatetip(). 2022-11-30 10:03:56 +01:00
Mitchell Richters
92a063b078 - Duke: Clean up interface to animateknuckles(). 2022-11-30 10:03:56 +01:00
Mitchell Richters
715ed3f279 - Duke: Clean up interface to animatefist(). 2022-11-30 10:03:56 +01:00
Mitchell Richters
81c3afcda0 - Duke: Move displayflamethrower() lambda to new weapon offsets. 2022-11-30 10:03:56 +01:00
Mitchell Richters
14ecd639dc - Duke: Move displayshrinker() lambda to new weapon offsets. 2022-11-30 10:03:56 +01:00
Mitchell Richters
ec3ccc18a5 - Duke: Move displaygrower_ww() lambda to new weapon offsets. 2022-11-30 10:03:56 +01:00
Mitchell Richters
68291bb595 - Duke: Move displayshrinker_ww() lambda to new weapon offsets. 2022-11-30 10:03:55 +01:00
Mitchell Richters
4d3f5fe3a0 - Duke: Move displayfreezer() lambda to new weapon offsets. 2022-11-30 10:03:55 +01:00
Mitchell Richters
99d7b763e4 - Duke: Move displaydevastator() lambda to new weapon offsets. 2022-11-30 10:03:55 +01:00
Mitchell Richters
6f6b52ee5d - Duke: Move displaydevastator_ww() lambda to new weapon offsets. 2022-11-30 10:03:55 +01:00
Mitchell Richters
624e28bf55 - Duke: Move displayhandremote() lambda to new weapon offsets. 2022-11-30 10:03:54 +01:00
Mitchell Richters
c126619d6d - Duke: Move displayhandbomb() lambda to new weapon offsets. 2022-11-30 10:03:54 +01:00
Mitchell Richters
e33ce4b7ac - Duke: Move displaychaingun() lambda to new weapon offsets. 2022-11-30 10:03:54 +01:00
Mitchell Richters
c7274ff5fb - Duke: Move displaychaingun_ww() lambda to new weapon offsets. 2022-11-30 10:03:54 +01:00
Mitchell Richters
35a26a1cb5 - Duke: Move displayshotgun() lambda to new weapon offsets. 2022-11-30 10:03:54 +01:00
Mitchell Richters
2c770706b8 - Duke: Move displayshotgun_ww() lambda to new weapon offsets. 2022-11-30 10:03:53 +01:00
Mitchell Richters
5935f860e4 - Duke: Bring displayrpg() lambda inline with standard look offsets since we're using widescreen assets now. 2022-11-30 10:03:53 +01:00
Mitchell Richters
7b3f8b0caf - Duke: Move displayrpg() lambda to new weapon offsets. 2022-11-30 10:03:53 +01:00
Mitchell Richters
71f5b7d9df - Duke: Move displaytripbomb() lambda to new weapon offsets. 2022-11-30 10:03:53 +01:00
Mitchell Richters
bd6e1d4f89 - Duke: Move displayknee() lambda to new weapon offsets. 2022-11-30 10:03:53 +01:00
Mitchell Richters
a6cfdea480 - Improved weapon drawing, based on the new crosshair drawing offset code, starting with Duke's pistol. 2022-11-30 10:03:52 +01:00
Mitchell Richters
ef52694365 - Improved crosshair drawing that factor's in look_ang better I've had stashed away for a little bit. 2022-11-30 10:03:52 +01:00
Mitchell Richters
a012fd8f94 - SW: Pitch-adjusted velocity for SpawnShell(). 2022-11-30 10:03:52 +01:00
Mitchell Richters
84dbd935d7 - SW: Pitch-adjusted velocity for PlayerInitCaltrops(). 2022-11-30 10:03:52 +01:00
Mitchell Richters
b6665a9855 - SW: Pitch-adjusted velocity for PlayerInitChemBomb(). 2022-11-30 10:03:52 +01:00
Mitchell Richters
8193416e7e - SW: Pitch-adjusted velocity for InitFireball(). 2022-11-30 10:03:52 +01:00
Mitchell Richters
c8f4e8dab2 - SW: Pitch-adjusted velocity for InitMine(). 2022-11-30 10:03:51 +01:00
Mitchell Richters
db2f9b9b13 - SW: Pitch-adjusted velocity for InitGrenade(). 2022-11-30 10:03:51 +01:00
Mitchell Richters
9d0b146470 - SW: Pitch-adjusted velocity for InitSobjMachineGun(). 2022-11-30 10:03:51 +01:00
Mitchell Richters
95a5e51283 - SW: Pitch-adjusted velocity for InitTurretLaser(). 2022-11-30 10:03:51 +01:00
Mitchell Richters
a1791acf97 - SW: Pitch-adjusted velocity for InitTurretRail(). 2022-11-30 10:03:50 +01:00
Mitchell Richters
01e326df9d - SW: Pitch-adjusted velocity for InitTurretFireball(). 2022-11-30 10:03:50 +01:00
Mitchell Richters
462576bc51 - SW: Pitch-adjusted velocity for InitTurretRocket(). 2022-11-30 10:03:50 +01:00
Mitchell Richters
9299e5f813 - SW: Pitch-adjusted velocity for InitTurretMicro(). 2022-11-30 10:03:50 +01:00
Mitchell Richters
86a7f7ca2c - SW: Pitch-adjusted velocity for InitTankShell(). 2022-11-30 10:03:49 +01:00
Mitchell Richters
b99dac1e56 - SW: Pitch-adjusted velocity for InitUzi(). 2022-11-30 10:03:49 +01:00
Mitchell Richters
319c1533b3 - SW: Pitch-adjusted velocity for InitTracerTurret(). 2022-11-30 10:03:49 +01:00
Mitchell Richters
25e0b9a073 - SW: Pitch-adjusted velocity for InitTracerUzi(). 2022-11-30 10:03:49 +01:00
Mitchell Richters
7ae21a27cc - SW: Pitch-adjusted velocity for InitMicro(). 2022-11-30 10:03:48 +01:00
Mitchell Richters
7658d8772d - SW: Pitch-adjusted velocity for InitNuke(). 2022-11-30 10:03:48 +01:00
Mitchell Richters
393553780b - SW: Pitch-adjusted velocity for InitBunnyRocket(). 2022-11-30 10:03:48 +01:00
Mitchell Richters
26460bc6aa - SW: Pitch-adjusted velocity for InitRocket(). 2022-11-30 10:03:48 +01:00
Mitchell Richters
8da5b096c0 - SW: Pitch-adjusted velocity for InitRail(). 2022-11-30 10:03:47 +01:00
Mitchell Richters
283f8d208a - SW: Pitch-adjusted velocity for InitLaser(). 2022-11-30 10:03:47 +01:00
Mitchell Richters
51c0fbcca1 - SW: Pitch-adjusted velocity for InitShotgun(). 2022-11-30 10:03:47 +01:00
Mitchell Richters
3fd397e384 - SW: Pitch-adjusted velocity for InitHeartAttack(). 2022-11-30 10:03:47 +01:00
Mitchell Richters
a27e5a0ed2 - SW: Pitch-adjusted velocity for InitStar(). 2022-11-30 10:03:47 +01:00
Mitchell Richters
bcf09c3037 - SW: Pitch-adjusted velocity for InitFistAttack(). 2022-11-30 10:03:46 +01:00
Mitchell Richters
2577ea21f2 - SW: Pitch-adjusted velocity for InitSwordAttack(). 2022-11-30 10:03:46 +01:00
Mitchell Richters
2b4149b70e - SW: Pitch-adjusted velocity for InitSpellMirv(). 2022-11-30 10:03:46 +01:00
Mitchell Richters
b7a1e699f6 - SW: Pitch-adjusted velocity for InitSpellNapalm(). 2022-11-30 10:03:46 +01:00
Christoph Oelckers
1d39e1edc1 - fixed bouncing of freezer's projectile. 2022-11-30 09:57:27 +01:00
Mitchell Richters
098542de69 - Duke: Call movetransports() before processing any player movement.
* This simply works much better. In addition to being able to revert commits like `- Duke: Maintain x/y/z velocity when falling through a portal, such as E1L1's air duct.`, transitioning from above water to underwater and vice-versa is interpolated, smooth and seamless, something that I was unable to hack in without this change.
2022-11-30 09:53:51 +01:00
Mitchell Richters
641b22addf Revert "- Duke: Maintain x/y/z velocity when falling through a portal, such as E1L1's air duct."
This reverts commit 1cb57a813948a494197e7df67dd6f58ae987b7db.
2022-11-30 09:53:51 +01:00
Mitchell Richters
ec16fd9310 - Duke: Soften the blood splats in Duke when the timer is at the end. 2022-11-29 21:08:49 +11:00
Mitchell Richters
5a698fbc2b - Use DAngle::fromRad() method in maphoriz(). 2022-11-29 21:01:42 +11:00
Mitchell Richters
537e9df6ec - Duke: Repair Z height when dead. 2022-11-29 20:59:35 +11:00
Christoph Oelckers
c9a94a4899 - fixed bad angle use in move_d. 2022-11-27 11:56:27 +01:00
Christoph Oelckers
ec48b91730 - fixed the last remaining z/inttoworld mismatches.
The one in clipmove was critical, the other ones not so much.
2022-11-27 10:21:47 +01:00
Christoph Oelckers
dc60c643c9 - Duke: added an ammo check to the chaingun firing loop
With weapon switching disabled it would not stop firing.
2022-11-26 17:59:22 +01:00
Christoph Oelckers
229ee3dbe4 Revert "- did a few checks with the compatibility optioned slope adjustment and decided to enable it unconditionally."
This reverts commit 6636064d1f.

As it turned out this is not a benign change. It breaks accessibility to a key in RR-Route 66's slaughtr.map - and it's reasonable to assume if it breaks one map it may break others as well.
2022-11-26 16:47:02 +01:00
Christoph Oelckers
0e1121ed51 - reinstated original distance math for SE20.
This one's a catastrophic combination of a bad algorithm depending on equally bad math to calculate distance.
It simply does not do what one would expect - it should have calculated the distance to a wall's center to be robust.
2022-11-26 15:58:55 +01:00
Christoph Oelckers
b5ad3b9f3b - imported two fixes from GZDoom 2022-11-25 12:33:52 +01:00
Christoph Oelckers
4aad87cf83 - fixed Exhumed sound indices. 2022-11-25 11:26:24 +01:00
Christoph Oelckers
003f4a035e - backend update from GZDoom
menu enhancements, IQM indices and an important fix in the sound system.
2022-11-25 11:14:38 +01:00
Christoph Oelckers
d710407b08 - another backend uodate from GZDoom to fix a memory leak in ZScript backend. 2022-11-25 00:04:05 +01:00
Rachael Alexanderson
b4e19ec6a0 - move posix I_GetGogPaths() stub to program specific code 2022-11-24 17:46:33 -05:00
Christoph Oelckers
d43ebd22ae - fixed merge errors from backend update. 2022-11-24 18:05:47 +01:00
Christoph Oelckers
9219d24535 - removed unneeded WantEscape function from backend interface. 2022-11-24 17:57:40 +01:00
Christoph Oelckers
ed4f49ac86 - fixed sound code for backend update. 2022-11-24 17:46:39 +01:00
Christoph Oelckers
2ffdf3d0e1 - backend update from GZDoom.
Mainly quaternion math and sound system cleanup.
2022-11-24 16:56:46 +01:00
Mitchell Richters
f1bfaac301 - Duke: Minor fixes to some angle checks. 2022-11-24 23:08:28 +11:00
Mitchell Richters
4f59e8a3d1 - Duke: Fix delta angle setup in alterang(). 2022-11-24 22:03:47 +11:00
Mitchell Richters
fb74ece44b - Duke/RR: Fix up 2x missed Z changes. 2022-11-24 19:41:58 +11:00
Christoph Oelckers
4d6920e80b - fixed failiure to initialize the ambient tags array.
Also adding range checks to all places where it gets used. This is from CON code so proper values are never guaranteed.
2022-11-24 09:01:44 +01:00
Christoph Oelckers
13e19bad36 - fixed handling of bad class assignment to map picnums. 2022-11-24 08:12:18 +01:00
Christoph Oelckers
6cb3e2f457 - Duke: fixed operator precedence in scrap spawning code. 2022-11-21 10:48:47 +01:00
Christoph Oelckers
ae37461feb - one more stat constant. 2022-11-21 10:24:42 +01:00
Christoph Oelckers
29c4c77e55 - fixed bad StopSound implementation. 2022-11-21 09:25:46 +01:00
Mitchell Richters
fd8ac602f0 - Duke: Fix a few missed names from the last commit. 2022-11-21 13:22:25 +11:00
Christoph Oelckers
49055f1bfd - named a few more of RR's items. 2022-11-20 21:39:56 +01:00
Christoph Oelckers
1e421af8bc - renamed one more sprite.
Unused, non-functional, but it got some text on the actual sprite, which was used for naming it.
2022-11-20 21:29:39 +01:00
Christoph Oelckers
476dd138c9 - renamed several of RR's sprites, mostly related to the chicken processing plant. 2022-11-20 21:22:04 +01:00
Christoph Oelckers
a76d166966 - scriptified tongue actor.
This seems to be develpment garbage. No proper sprites exist for this.
2022-11-20 20:40:46 +01:00
Christoph Oelckers
5528725985 - got rid of deletesprite, plus one new flag. 2022-11-20 19:25:23 +01:00
Christoph Oelckers
65a5e5e29a - unlimized two map resources - cyclers and ambient tags. 2022-11-20 14:13:11 +01:00
Christoph Oelckers
b069904be1 - scriptified the remaining controller sprites. 2022-11-20 13:57:51 +01:00
Christoph Oelckers
cb005062cd - scriptified activators and locators. 2022-11-20 12:43:24 +01:00
Christoph Oelckers
9fa2fb75cf - scriptified the respawn controller.
This also handles one special RRRA controller which was just easier to scriptify right away than temporarily work around it.
2022-11-20 11:58:19 +01:00
Christoph Oelckers
f467e72ac2 - only print texture resolve errors in debug builds.
Otherwise this will print warnings when resolving content for different games.
Needs to be done differently later, but right now the messages are needed for debugging.
2022-11-20 09:35:59 +01:00
Christoph Oelckers
31b1898c30 - deleted movecanwithsomething native function.
This was already scriptified.
2022-11-20 08:52:58 +01:00
Christoph Oelckers
d44b637f1b - fixed touchplate initialization
This was still using older code - the current native version was also not removed from the spawn function.
2022-11-20 08:51:09 +01:00
Christoph Oelckers
f515939fde - scriptified the sound controller. 2022-11-20 08:46:49 +01:00
Christoph Oelckers
714a2ef70e - scriptified canwithsomething, the last internal STAT_STANDABLE item. 2022-11-19 19:01:17 +01:00
Christoph Oelckers
c6b3cf3e0a - Duke: fixed long standing problem that pressing Escape or walking backwards does not switch off the camera view. 2022-11-19 18:26:17 +01:00
Christoph Oelckers
dee33ba4dd - scriptified viewscreen and camera. 2022-11-19 17:35:04 +01:00
Christoph Oelckers
046ba1ae0c - scriptified touchplate 2022-11-19 15:40:35 +01:00
Christoph Oelckers
63a8c3148c - scriptified doorshock 2022-11-19 15:40:21 +01:00
Christoph Oelckers
15cd80cad3 - scriptified the waterdrip 2022-11-19 15:40:09 +01:00
Christoph Oelckers
11acb92553 - scriptified the bolts. 2022-11-19 12:54:50 +01:00
Christoph Oelckers
676ca73983 - scriptified the trash actor. 2022-11-19 12:54:15 +01:00
Christoph Oelckers
9cf6f5dabc - fixed handling of actor defaults.
Order of application with map sprites was not correct.
This also simplifies how the defaults are stored - the separate data is gone, they now use the regular defaults.
2022-11-19 11:24:47 +01:00
Christoph Oelckers
5ae7011e41 - converted the masterswitch. 2022-11-19 11:24:39 +01:00
Christoph Oelckers
b106fb693a - scriptified OozFilter + Seenine
Also fixing the default handling for onHit.
2022-11-17 21:46:24 +01:00
Christoph Oelckers
26ba1f601e - scriptified the fire extinguisher. 2022-11-17 20:19:22 +01:00
Christoph Oelckers
f9826241ef - scriptied the cracks. 2022-11-17 20:18:46 +01:00
Christoph Oelckers
8ce358fc24 - scriptified the trip bombs. 2022-11-17 18:38:25 +01:00
Christoph Oelckers
133cb3a02e - moved all CoreActor exports to vmexports.cpp. 2022-11-17 08:46:08 +01:00
Christoph Oelckers
c69e86d119 - Blood: unlimited the tracking conditions. 2022-11-16 11:55:41 +01:00
Christoph Oelckers
ef54579104 - Blood: updated nnexts with the parts not related to the condition rewrite. 2022-11-16 11:14:31 +01:00
Christoph Oelckers
e776e76ebf - Blood: applied all changes outside of nnexts.cpp from the latest modern update. 2022-11-16 07:53:21 +01:00
Mitchell Richters
d3217a3e54 - Fix issues with scripted actors, namely the crane which was non-operable. 2022-11-16 16:14:48 +11:00
Christoph Oelckers
043e005363 - fixed bad index in pushmove. 2022-11-16 00:08:37 +01:00
Christoph Oelckers
6b3e57fd2c - added 'foreach' loop to ZScript.
Syntax:

foreach(variable : array)
{
}

the variable's type is automatically deducted.
2022-11-15 21:29:04 +01:00