Commit graph

62 commits

Author SHA1 Message Date
Boondorl
d7d71177d7 Reworked Travelling logic
Added safety barriers for STAT_STATIC and STAT_TRAVELLING to avoid potential exploits. Properly clear all internal fields pointing towards non-read barriered data and always relink properly when finishing travelling. Moved ZScript callback to after travelling has finished for all Thinkers, that way everything is initialized correctly.  Allow arbitrary thinkers (excluding native ones) to be added to the travelling list (for Actors, their positioning will need to be handled by modders). Ensure lights get re-enabled after travelling.
2025-08-02 17:35:16 -03:00
Boondorl
73445f6f6a Fixed arithmetic state jumps going out-of-bounds 2025-07-17 03:19:52 -03:00
Boondorl
269689703d Clear references to map data on level change
These shouldn't be left as they'll now point towards potentially invalid memory and also cause errors with serializing. Arrays and maps holding them are cleared. Also unlinks and relinks inventory items correctly from the hashmap on traveling.
2025-07-10 14:12:31 -03:00
Marcus Minhorst
5bd8c7f3be Unified name capitalization: *menu -> *Menu 2025-07-08 16:30:17 -03:00
Cacodemon345
a2450e1195 Add mechanism for Prosperity Rune-like powerups
Also add a flag to use Zandronum/Skulltag semantics for BasicArmorPickup
2025-07-04 09:25:28 -03:00
nashmuhandes
033ea084a6 Lightmap parsing update 2025-06-12 19:28:23 -03:00
Xaser Acheron
80c36d4069 add a few commonly-used gzdoom-specific properties to the dehacked parser 2025-04-29 08:05:38 -03:00
Boondorl
1e05bb2a55 Clean up behaviors properly when moving levels
Also adds support for foreach loops with the behavior iterator.
2025-02-20 04:12:46 -03:00
Boondorl
bd60fd7546 Added initial Behavior API
Allows for arbitrary behaviors to be attached to Actors in a way that doesn't require the use of Inventory tokens. This list can't be freely modified nor can it have duplicates meaning it has far better deterministic behavior than using Inventory items for this purpose.
2025-02-20 04:12:46 -03:00
inkoalawetrust
34dc204517
Re-added sector damage for non-players. (#2773)
* Re-add non-player sector damage.

Reimplements SECMF_HURTMONSTERS and SECMF_HARMINAIR.

* Fixed 3D floor handling for sector damage.

Fixes sector damage to either monsters or players not working on (non-)solid 3D floors.
2024-10-20 07:51:36 -04:00
Rachael Alexanderson
4ba53e34e4
Revert "Added SECMF_HURTMONSTERS, SECMF_HARMINAIR and NOSECTORDAMAGE."
This reverts commit 391f496512.
2024-10-19 10:25:03 -04:00
nashmuhandes
f5c06551e4 Use a light_ prefix for custom ZDRay stuff, and actually parse light_softshadowradius for map things 2024-10-06 11:24:04 -03:00
inkoalawetrust
391f496512 Added SECMF_HURTMONSTERS, SECMF_HARMINAIR and NOSECTORDAMAGE.
- Added SECMF_HURTMONSTERS, which allows monsters in the flagged sector to be hurt with the same behavior as players (i.e damage leaking).
- Added SECMF_HARMINAIR, which allows players (And monsters with SECMF_HURTMONSTERS) to be hurt when they're inside the sector in general, instead of only when they're walking on it. Replicates the behavior of the DAMAGE_IN_AIR flag that SectorDamage() uses.
- Added NOSECTORDAMAGE, which makes actors with the flag immune to any harmful floors.
2024-09-29 18:12:30 -04:00
jekyllgrim
994078feae Added FloatBobFactor
This adds a new actor property: `FloatBobFactor` (default 1.0). This will be a multiplier for level.time in `AActor::GetBobOffset`, which finally allows to control not only the range of float bobbing (which is FloatBobStrength) but also the frequency of bobbing.
2024-09-29 16:08:02 -04:00
Rachael Alexanderson
89ce70fd0b - implement SPAC_Walking, mostly useful for teleports or for line crossings that should not happen when the player is falling or flying
- update UDMF spec entry
2024-09-29 16:06:36 -04:00
nashmuhandes
f671018700 Clean up lightmap stuff in the namedef 2024-07-20 12:56:56 -04:00
nashmuhandes
13b9ffd6c8 Rename SourceRadius to SoftShadowRadius (to match VKDoom) 2024-06-15 10:00:39 -04:00
nashmuhandes
29e103363e ZDRay specs fix 2024-04-22 10:17:07 -04:00
Boondorl
06eee55671
Fix for Morph virtual
Allows class<MorphedMonster> to be used as an argument type in place of class<Actor> within the third argument for backwards compatibility.
2024-04-20 01:15:47 -04:00
Rachael Alexanderson
558bd4674d
- handle dsda namespace like zdoom in udmf 2024-04-18 03:18:56 -04:00
Nash Muhandes
6226f03bb4
Update and correct ZDRay-related stuff in the specs and also in the n… (#2503)
* Update and correct ZDRay-related stuff in the specs and also in the namedef table

* Fix compile error
2024-04-17 18:53:46 -04:00
Rachael Alexanderson
ef10467ff8
- revert changes in backend code which will not sync properly with raze
This is a combination of 2 commits.

Revert "New API for assigning unique network ids to objects"

This reverts commit e37c19b5b4.

 This is the commit message #2:

Revert "Fix for Morph virtual"

This reverts commit 0ef042562e.
2024-04-17 14:48:02 -04:00
Christoph Oelckers
520b960ca5 Reverted the path node system
Code reviews were unfavorable so better nix it before it finds wider use.
2024-03-15 20:24:39 +01:00
Boondorl
0ef042562e Fix for Morph virtual
Allows class<MorphedMonster> to be used as an argument type in place of class<Actor> within the third argument for backwards compatibility.
2024-03-08 20:10:40 +01:00
Major Cooke
b2cb4b0a6d Begin adding PathNodes. 2024-03-05 13:44:38 -05:00
Boondorl
3033fafaa7 Improvements to death and cheat handling
Extra safety to ensure dummy Actor deaths properly emulate a real death and aren't duplicate called. Fixed a crash when using the kill command while set to unmorph on death. Super morphing is now possible while using the morphme cheat if passing the morph class directly. Added a flag to ignore player invulnerability completely when morphing.
2024-03-01 08:35:31 -05:00
Boondorl
12dc5c1506 Further morphing clean up
Players will now use their Alternative field to check if they're morphed instead of their MorphTics. This makes the current state of morphing more reliable, otherwise setting this to 0 manually without unmorphing could have very odd results. Both monsters and players consider 0 morph time to mean infinite now (previously this only applied to monsters). Player unmorphs no longer die in the case of a failed unmorph on death. Removed inventory swapping on player pointer substitution as it's too messy to do here.
2024-03-01 08:35:31 -05:00
Boondorl
2c09a443b4 Reworked Morphing
Removed StaticPointerSubstitution in favor of a much safer function that only changes select pointers. As a result the ability to properly modify morphing has been opened back up to ZScript. Many missing virtual callbacks were amended and MorphedDeath has been reworked to only be called back on an actual morphed death. MorphedMonster is no longer required to morph an Actor. CheckUnmorph virtual added that gets called back on morphed Actors. Fixed numerous bugs related to morph behavior.
2024-03-01 08:35:31 -05:00
Christoph Oelckers
f1db369883 moved a few things out of the common code that should be defined privately. 2024-02-04 13:54:25 +01:00
Christoph Oelckers
bdee1f3d34 added per-sector sky UDMF properties.
(Hardware rendering only, the SW renderer is not in a state where this is easily done.)
2023-10-29 17:49:59 +01:00
Christoph Oelckers
2fb41a7956 added all required names for the new DSDA UDMF properties to the list of names. 2023-10-29 08:48:32 +01:00
Christoph Oelckers
b48caddb96 reworked the skewing properties.
The Eternity-based definitions are currently disabled due to unclear semantics and overall unsatisfying design. They can be re-enabled once their precise working has been established.
New properties were added to replace them with something that will be clearly specified and is fully ortohonal i.e. they will allow to align an upper tier skew with the floor as well and a lower tier's skew with a ceiling.
2023-10-20 18:14:20 +02:00
Professor Hastig
f92f6b8de4 added wall texture skewing.
This uses the same UDMF properties as Eternity recently introduced for the same feature.
2023-10-20 08:23:56 +02:00
nashmuhandes
99983b37ca Update ZDRay UDMF specs and remove deleted features. 2023-09-11 20:09:16 +02:00
Boondorl
0d23816179 Added FlyBob Multiplier for Player 2023-01-02 08:14:24 +01:00
Boondorl
73159dac3e Added WaterClimbSpeed Property to Players 2023-01-02 08:13:13 +01:00
Christoph Oelckers
941c0850ba - Backend update from Raze.
Mainly optimizations for the sound system and texture manager.
2022-12-18 16:19:18 +01:00
CandiceJoy
0fdb740ac7
Added toggle control for weapon bob while flying 2022-12-16 17:12:03 -06:00
Christoph Oelckers
f3b33f7cf8 - added LengthSquared and Angle intrinsics for all vector types, also allow calling VectorAngle with a full vector as a single parameter. 2022-11-13 08:07:12 +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
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
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
nashmuhandes
50d16c75d9 Add corona actor 2022-08-11 20:38:24 +08:00
Christoph Oelckers
35f8aab6bf - fixed names for A_PlaySoundEx
These need to be contiguous because the implementation depends on it.
2022-06-30 21:45:59 +02:00
nashmuhandes
8da4f2a212 ZDRay UDMF key update (per-surface sampling distance https://github.com/dpjudas/ZDRay/pull/36) 2022-06-29 09:12:18 +02:00
Christoph Oelckers
431c47c957 - fixed setup of ready state with Dehacked.
This needs to emulate the hard coded chainsaw sound when weapon states get reassigned.
2022-06-15 22:04:01 +02:00
nashmuhandes
972e9cba09 Standardize and finalize the naming conventions for the new UDMF keys to everything lightmap-related to use an "lm_" prefix. 2022-06-15 20:20:16 +02:00
nashmuhandes
ac5e969759 Update ZDRay keywords 2022-06-15 11:30:21 +02:00