Commit graph

105 commits

Author SHA1 Message Date
Boondorl
311e1d09be Allow limiting NPC conversations to settings controllers
Also cleans up the network menu a little bit.
2025-07-02 07:29:28 -04:00
Cacodemon345
028256f06f WorldRailgunFired flags are now passed properly
There's also a new DamageMobj flag to indicate railgun attacks without
having to rely on damagetypes.
2025-06-24 21:21:48 -03:00
Boondorl
43031375f4 Added missing return values in VM calls
These are not supported by the JIT and must always be passed.
2025-03-19 15:17:29 -03:00
Boondorl
567a180d2b Added is3DFloor parameter to SpecialBounceHit
Allows for better plane bounce handling e.g. flipping the normal.
2025-02-11 20:49:39 -03:00
Boondorl
e0394ef16a Added flags for angle handling on bounce
Allows for keeping the current angle on bounce or modifying the pitch.
2025-01-27 21:27:03 -03:00
nashmuhandes
27b6cb2f72 Allow passing sound volume to PlayBounceSound in ZScript 2025-01-23 13:54:26 -03:00
nashmuhandes
9e3db4f147 Added HasConversation 2025-01-22 13:18:45 -03:00
nashmuhandes
92dbdd3f39 Exported conversation behaviors 2025-01-22 13:18:45 -03:00
Boondorl
dad8e4719c Don't create thing iterator if THRUACTORS is set when moving 2025-01-14 15:10:15 -05:00
nashmuhandes
f5bf1d0497 Exported thing activation function 2025-01-14 02:21:50 -05:00
Boondorl
72ed0c4377 Various bouncing fixes
Fixed bounce flag checks being inversed on 3D floors. Decoupled wall bouncing flag from floor/ceiling flags since they relied on it in the case of hitting steep ramps. Fixed wall bounces that actually bounce off planes not returning the correct value.
2024-11-27 22:37:01 -05:00
Boondorl
882017f4be Added ripper damage logic to DoMissileDamage 2024-11-27 22:36:48 -05:00
Cacodemon345
26cff374de Add WorldRailgunFired 2024-11-26 18:48:17 -05:00
Cacodemon345
db6294c48a Add WorldRailgunPreFired for railgun attacks
Add AttackLineFlags for WorldHitscanPreFired

Indentation fixes in event.zs
2024-11-26 18:48:17 -05:00
Boondorl
1d35ff8bc7
Fixed incorrect autooff behavior on ceiling bounce (#2837)
* Fixed incorrect autooff behavior on ceiling bounce

* Fixed incorrect Actor bouncing behavior
2024-11-26 05:59:20 -05:00
Boondorl
5240c52b07
Fixed bouncing on 3D floors (#2835) 2024-11-26 03:43:09 -05:00
Boondorl
878c5f0857
Fixed missing checks in P_TestMobjZ (#2827)
Adds in missing missile checks and fixes ordering to match P_CheckPosition to give more consistency.
2024-11-22 06:23:53 -05:00
jekyllgrim
99c058d168
Added WorldHitscanFired and WorldHitscanPreFired (#2432)
* Added WorldHitscan events

* DVector3 → const DVector3&
2024-11-20 10:26:00 -05:00
Boondorl
268dad18f7 Discs no longer blast players with collision disabled 2024-11-15 23:58:28 -03:00
Boondorl
3ea5be1ea7 Reworked FRandom constructors
Removes ambiguity while keeping old constructor syntax in check for better overall portability.
2024-11-15 23:56:23 -03:00
Boondorl
597b06ae52 Added CRandom functions
Unique RNG namespace for client-side effects and HUDs. Identifiers for these cannot clash with identifiers that affect the playsim making them completely safe to use in HUD elements. They also won't be saved.
2024-11-15 23:56:23 -03:00
RaveYard
a4c98d8dd9 Add RADF_CIRCULARTHRUST and matching XF_/RTF_ flags 2024-09-29 17:56:41 -04:00
dileepvr
95b264bdb6
Isometric Mode and Robin (#2618)
* Feature-complete isometric mode fork.

* Dithered transparency condition tweaks.

* Dithered transparency for non-corpse monsters only (and missiles).

* SpectatorCamera vertical shift.

* Including math.h in hw_sprites.cpp to keep visual studio happy (it couldn't find M_SQRT2 definition).

* Defining MY_SQRT2 in hw_sprites.cpp to keep visual studio happy (it couldn't find M_SQRT2 definition).

* Defining MY_SQRT2 in r_utility.cpp also to keep visual studio happy.

* retrigger checks

* Have correct sprite angle-frame face the camera with orthographic projection enabled.

* Dithered Transparency now works properly on 3D floors. Moved that dither-trans flag setting code within hw_bsp.cpp to handle double-processing of linedefs. Added helper functions to FRenderViewpoint class 'bool IsOrtho()' and 'bool IsAllowedOoB()' to clean up checks everywhere in the code.

* Fixed indents. Added bbox property to subsector struct and use it instead of BSP nodes and Clippers (creating a bbox around viewpoint and checking for overlap) in orthographic mode when no fog of war is active. Turns out to be much faster. Though you need really big maps (Winter's Fury MAP01) to see a difference in fps.

* Non-linux checks don't like uint. Changed to unsigned int.

* Small change of a float to camera.zs. Ignore for testing. Should make no difference.

* Update actor.h to remain mergeable

RF2_NOMIPMAP was introduced, so I had to displace RF_ISOMETRICSPRITES to next bit.
2024-08-11 10:04:40 -04:00
Rachael Alexanderson
847f34f2c9
- fix: check if bombsource exists when exploding a projectile with a XF_NOALLIES flag 2024-08-07 11:12:13 -04:00
Boondorl
96594e0f34 Updated explosion distances from int -> double 2024-03-28 15:48:35 -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
Major Cooke
05167fd4ef Missed this one. 2024-03-05 13:44:38 -05:00
Major Cooke
d71af3683a Clear the path instead of advancing the node when crossing portals.
- If an actor crosses back over a portal because they're blocked, it will result in false positives.
- Fixed nodes not being targeted for aim direction.
2024-03-05 13:44:38 -05:00
Major Cooke
81ebd8c8c4 More progress.
- AMBUSH flag on nodes makes them blind and untargetable when getting `startnode` and `goalnode` for `FindPath()`. This is useful for indicating a node should be skipped when tele/portaling, so the current path can be preserved.
- Setup is simple: place nodes behind lines that tele/portal entities and mark them as AMBUSH.

Other changes:

- Restored global array since blockmap is not a viable option here.
- Added MAPINFO `pathing` flag which enables pathing by default.
- Added NOPATHING flag to disable pathing entirely, useful for maps that have pathing enabled.
- Added `ReachedNode(Actor mo)` virtual, responsible for handling node traversal.
- Nodes now make use of MeleeRange to limit their sight checking functions.
2024-03-05 13:44:38 -05:00
Boondorl
b469770ecc Reworked view offsetting
View offsets are now added after the base position and angles (accounting for interpolation) are calculated. Behavior was centralized into a singular tracer that all view offsets now use to prevent clipping out of the map. Cleaned up camera rendering behavior. Angles are now properly normalized after all offsetting is accounted for. The chase cam can now update in real-time instead of forcing interpolation.
2024-03-01 07:10:26 -05:00
Boondorl
4d1590ad82 Fixed view position forcing camera interpolation
Fixed absolute view position not working. Camera Actor is no longer visible when using view offsets.
2024-02-26 06:47:05 +01:00
Major Cooke
f647545c1d Disabled player sprites when crossing through portals. 2024-01-04 07:23:24 -05:00
Boondorl
cf7654bb5a Added Z collision detection 2024-01-04 07:17:13 -05:00
Boondorl
fc6191deb9 Added CollidedWith
Guarantees a collision happened unlike CanCollideWith. Called in TryMove so it only calls when an actual movement was attempted and not just a potential positional check.
2024-01-04 07:17:13 -05:00
Christoph Oelckers
8c5eb2c807 use FTranslationID in all places where strict type checking is needed.
This means all properties in serializable classes now use this wrapper type. The backend hasn't been changed yet
2023-11-09 23:04:10 +01:00
Christoph Oelckers
61c2f5f8c0 Revert "When compat_floormove is enabled prevent sector floor from lowering if a thing is stuck in the ceiling (vanilla behavior)"
This reverts commit 4ad76f549e.

This broke several maps so the implementation is obviously not correct.
2023-10-31 08:05:36 +01:00
Christoph Oelckers
89535b803a Backend update from Raze. 2023-10-07 18:42:24 +02:00
Nikolay Ambartsumov
4ad76f549e When compat_floormove is enabled prevent sector floor from lowering if a thing is stuck in the ceiling (vanilla behavior) 2023-09-14 20:06:51 +02:00
Boondorl
5a74e79b92 Added bounce virtual 2023-08-02 00:42:06 -04:00
Boondorl
239a288a9a Exported reflection functionality
Localized reflection code to a single function. Fixed an error where NOSHIELDREFLECT was being checked on the wrong Actor. Fixed an oversight where MIRRORREFLECT was checking for valid target despite not needing one.
2023-08-02 00:40:01 -04:00
inkoalawetrust
814c6f2188 Added MF9_SHADOWAIMVERT.
This flag causes the vertical aiming of monsters to also be affected when they aim at shadow actors.
2023-08-02 00:39:35 -04:00
inkoalawetrust
194f73a94b Added (XF/RADF)_CIRCULAR.
This flag makes explosions use a spherical radius, instead of a cubic one. Only took almost 30 years.
2023-08-02 00:37:58 -04:00
inkoalawetrust
ca1f3ac580 Added (XF/RADF)_NOALLIES.
This flag allows explosions to not harm any actors that are friendly to its' source.
2023-08-02 00:37:58 -04:00
inkoalawetrust
6489b05db9 Added (XF/RADF)_THRUSTLESS.
This flag allows for explosions that do not thrust any of the actors caught in the blast.
2023-08-02 00:37:58 -04:00
Christoph Oelckers
cffe67dcee - fixed a few warnings pointed out by GCC. 2023-03-26 10:35:33 +02:00
Rachael Alexanderson
cb3662dc24 - fix nullptr crash 2023-01-11 13:33:02 -05:00
Boondorl
769796800d Minor tweaks to no player clipping 2023-01-09 12:31:08 -05:00
Rachael Alexanderson
af0f84183a - fix a few errors in last commit 2023-01-09 12:02:41 -05:00
Rachael Alexanderson
5aba0c144c - optimize P_ShouldPassThroughPlayer checks - move down in the check list, move thing->player check out of the function 2023-01-09 11:53:24 -05:00
Rachael Alexanderson
9777cfd500 - change P_ShouldPassThroughPlayer to static inline to improve performance on repeated calls 2023-01-08 22:12:37 -05:00