Commit graph

389 commits

Author SHA1 Message Date
Mitchell Richters
6629944d39 - Make the new scaled angle changes at frame rate opt-in behind new flag SPF_SCALEDNOLERP.
* This will still test whether the game needs to lerp and will force `SPF_INTERPOLATE` if needed.
2022-12-04 15:11:17 +01:00
Mitchell Richters
cf1ac82da3 - Set up interpolated camera angle changes to occur at framerate when all conditions in P_NoInterpolation() are met. 2022-12-04 15:11:17 +01:00
Mitchell Richters
20bf9e89f5 - Split insane interpolation test if statement into a function, we'll need this elsewhere later on. 2022-12-04 15:11:17 +01:00
Mitchell Richters
9f9c1eb18a - Make view angles interpolate on a separate flag to the one that forces interpolation for the entire frame.
* As view angles are an offset, there's no reason why these cannot lerp separately.
2022-12-04 15:11:17 +01:00
Ricardo Luís Vaz Silva
cd46f97dcc Structified A_SpawnParticle/Ex 2022-12-03 23:54:52 +01:00
Ricardo Luís Vaz Silva
f666edc60c Allow Disabling of XY Billboard for Particles 2022-12-03 23:27:46 +01:00
Shiny Metagross
169139c22c Fixed A_Changemodel crash from invalid modeldef names
- Invalid modeldef names no longer result in a crash

https://forum.zdoom.org/viewtopic.php?t=76810
2022-11-30 18:26:26 +01:00
Christoph Oelckers
65a26d6779 - removed the string constructors from FSoundID.
Due to C++ conversion rules this was a bit too volatile. There's really not enough places where being able to pass a string directly into the sound API was beneficial - the two most frequent functions now got overloaded variants.
2022-11-24 23:52:52 +01:00
Christoph Oelckers
b89c4affae - removed the string assignment operators.
These all caught literal 0's as well
2022-11-24 23:52:52 +01:00
Christoph Oelckers
d173c0453c - handle all remaining places of sound ID conversions after removing the conversion operators. 2022-11-24 23:52:52 +01:00
Christoph Oelckers
160633a4a2 - migrate a large part of the sound code to FSoundIDs.
This has always been a wild mixture of IDs and ints.
2022-11-24 23:52:52 +01:00
Christoph Oelckers
7e8de9d1ba - made more use of FSoundID. 2022-11-24 23:52:52 +01:00
Major Cooke
a483ad20be Replaced memset for particles as recommended by dpJudas 2022-11-13 21:02:59 +01:00
Major Cooke
f044695d28 Future-proof particles by resetting them completely when replaced. 2022-11-13 21:02:59 +01:00
UnizoneDev
a21d0c70e4 Mark the PushSound property as meta 2022-11-13 07:38:07 +01:00
UnizoneDev
b66433478c Simplify sliding objects for now 2022-11-13 07:38:07 +01:00
UnizoneDev
9af664d117 Add PushSound property and Slide state
First Commit, hip hip hooray!
2022-11-13 07:38:07 +01:00
Major Cooke
2a9e28d949 Added PS_REPLACE flag for A_SpawnParticle(Ex).
- When used, new particles that spawn when the limit is reached will replace the oldest particle.
2022-11-12 09:13:37 +01:00
Boondorl
aea346f1f3 Improved Slam functionality:
*Added ONLYSLAMSOLID flag to ignore non-solid Actors that aren't shootable while SKULLFLY is on.
*Added Slam state that gets entered when slamming an Actor.
2022-11-10 22:55:43 +01:00
Yukita Mayako
15e00f22e8 Normalize angle in AngleToACS
Fixes GetActorAngle returning negative or large values with no range limit.
2022-11-10 07:20:28 +01:00
Christoph Oelckers
4ebcff8573 - remaining changes for moving bone data to the backend 2022-11-06 10:59:33 +01:00
Christoph Oelckers
0828184055 - did some cleanup on the statistics code. 2022-11-05 12:11:36 +01:00
Christoph Oelckers
72aa6fe3b8 - did some cleanup on p_mobj.cpp
* deleting some unused code
* turned several class methods into static local functions in cases where they never were used outside this file.
* inlined the dangerous assignment operator in the only place where it was used.
2022-11-05 12:00:43 +01:00
Christoph Oelckers
b8821eb6da - declare C++ class AActor as final.
This is not supposed to be inherited from anymore so let's take this optimization opportunity.
2022-11-05 10:46:25 +01:00
Christoph Oelckers
435e7dddcd - fixed: P_SpawnMapThing may not call playsim code.
There was one special case allowing to let an actor die on spawn, but this could call script code on an incompletely set up map which resulted in crashes.
2022-11-05 09:43:06 +01:00
Ricardo Luís Vaz Silva
7d81417829 Particle Rolling 2022-11-01 22:30:16 +01:00
Ricardo Luís Vaz Silva
b6202ffc4c Add Textured Particles 2022-11-01 21:25:31 +01:00
Shiny Metagross
bea6d2434e Update p_actionfunctions.cpp 2022-10-31 11:34:55 +01:00
Shiny Metagross
f7c3615d3b IQM Refactor Milestone
- Removed bone manipulation code
- Implemented an index in calculateBones to optimize multi-armature actors
- Moved the bone storage object's creation to RenderModels so that the armature array can be sized there
2022-10-31 11:34:55 +01:00
Shiny Metagross
7092971331 Bone manipulation updates
- Factored in parent bone rotations to check if a bone needs updating
- Implemented multiply Quaternion functions to TVector4
- Converted Euler rotations in A_ManipulateBone to degrees
2022-10-31 11:34:55 +01:00
Shiny Metagross
28444d4cfd Bone manipulation start
- Bone manipulation is largely finished, but I need to figure out how to multiply quaternions
2022-10-31 11:34:55 +01:00
Shiny Metagross
3f3cc5bbc3 IQM Refactor start
- Refactored IQM and calculateBones to process TRS at runtime which resolves some of the faulty animations with large rotations. Will also make bone manipulations much easier to do
2022-10-31 11:34:55 +01:00
c36da35e37 Fix inconsistent distance and hit position on traces that skip everything.
As it currently stood, only traces that never found anything in traversal had their distance and final position corrected.
Meanwhile, traces that skipped everything would return the distance and position of the last thing they crossed instead.
This change makes both cases consistent by "filling out" the remainder of the trace line for the latter.
2022-10-30 15:20:01 +01:00
Christoph Oelckers
4ce0ef41b5 - made DMover and subclasses non-abstract so they can be inherited from.
This is needed for interpolated custom floor/ceiling movers.
2022-10-26 17:45:02 +02:00
Christoph Oelckers
671b8696bb - made CVar declarations type safe again. 2022-10-22 09:29:38 +02:00
Christoph Oelckers
ef887403cf - marked a few Printf calls in critical error paths as PRINT_NONOTIFY. 2022-10-20 23:55:29 +02:00
Christoph Oelckers
4686d10f41 - zero the velocity of crunched sprites.
Since their size is zeroed, they are no longer subject to collision detection and may slide out of the level otherwise.
2022-10-20 17:12:43 +02:00
Christoph Oelckers
b6c5232fea - try to keep the engine stable for as long as possible if a VM exception occurs in OnDestroy while running a cleanup.
This will still crash, but run long enough for the exception message to be visible.
2022-10-20 17:12:43 +02:00
Christoph Oelckers
54e0201204 - added vanilla donut handling to compat_floormove. 2022-10-20 17:12:43 +02:00
Christoph Oelckers
457b9b71d9 - disable the native part of coronas as well. 2022-10-20 07:50:53 +02:00
inkoalawetrust
29421e6975 Added QF_SHAKEONLY
The QF_SHAKEONLY flag changes the behavior of earthquakes with a damage radius, so that they only shake actors around, without also harming them.
2022-10-19 22:50:50 +02:00
inkoalawetrust
457ad97553 Added QF_AFFECTACTORS.
The QF_AFFECTACTORS flag makes the thrusting and harming of damaging earthquakes also affect monsters. Monsters with DONTTHRUST will not be flung around by earthquakes.
2022-10-19 22:50:50 +02:00
inkoalawetrust
05a5a4be51 Added the QF_GROUNDONLY flag.
The QF_GROUNDONLY flag makes earthquakes only shake the player while they are standing on the ground.
2022-10-19 22:50:50 +02:00
Shiny Metagross
5670e6f54c Some of the to-dos
- Implemented Animation parameters for A_ChangeModel
- Made a modeldef flag to treat additional model indices as just attachments, meaning they will use armature data from index 0
- Fixed an issue with A_ChangeModel where generated indices lower than smf frame amounts could not actually generate anything
2022-10-19 22:48:57 +02:00
Christoph Oelckers
8aaab153fa - add a system interface for CheckCheatmode and moved some sound code to the backend. 2022-10-02 16:48:56 +02:00
inkoalawetrust
69b9f107f0 Added support for BLOCKLANDMONSTERS in Line_SetBlocking.
This PR was written by MrRaveYard
2022-09-28 07:56:12 +02:00
inkoalawetrust
502c9fef5c Added APROP_FriendlySeeBlocks to Set/GetActorProperty 2022-09-24 16:44:11 -04:00
Christoph Oelckers
175c91308a - move BobSin to game side. 2022-09-04 09:01:57 +02:00
inkoalawetrust
664ccf8a7c - fix bug with 06ee21c51d - if (!pl) should always return false 2022-09-03 19:06:46 -04:00
Rachael Alexanderson
ca6a2152b9 - add freezetics actor property 2022-09-03 17:58:16 -04:00