Commit graph

690 commits

Author SHA1 Message Date
MajorCooke
83f82afbc8 Optimized P_CheckPosition. (#1161)
- If the actor passed into the function has THRUACTORS, PIT_CheckThing won't be called anymore.
- Moved THRUACTORS check to just under the self clipping check in PIT_CheckThing.
2020-08-28 13:46:55 +02:00
MajorCooke
3d22c635f4 P_BounceActor now calls SpecialMissileHit before any other bouncing effects are processed. Return values are as such: (#1156)
- 1: The missile will continue moving through the actor, and it's down to the modder to handle bouncing.
- 0: The missile will explode.
- Any other value will process a bouncing actor as normally done in the engine.
2020-08-14 12:46:31 +02:00
Marisa Kirisame
4ca8d538b3 Hotfix: LineTrace now reports the correct number of portal crossings. 2020-06-07 15:52:15 +02:00
Cacodemon345
19b125ca3a Fix bouncing missiles not dealing damage when hitting top/bottom (#1068)
* Fix bouncing missiles not dealing damage when hitting top/bottom
2020-04-30 11:45:45 +02:00
nashmuhandes
152ae71a4f Colorize opaque decals using the bleeding actor's blood color, if the 'Shaded' keyword is omitted from the DECALDEF.
# Conflicts:
#	src/g_shared/a_decals.cpp
#	src/g_shared/a_sharedglobal.h
#	src/p_map.cpp
2020-03-24 01:36:53 +01:00
Major Cooke
96153e7e7e - Fixed: Invulnerability checking for rails was done before the various THRU actor flags instead of after, meaning actors could block shots regardless of those flags. This was never intended. 2020-01-06 19:20:44 +01:00
Major Cooke
234e690f77 Added STOPRAILS actor flag.
- An actor with this flag will prevent railgun shots from penetrating further.
2020-01-06 19:20:41 +01:00
Christoph Oelckers
c3759f389c - separated the channel number from the flags in the sound interface so that the 8 channel limit can be eliminated.
- added Marisa Kirisame's CHAN_OVERLAP flag.
- exported S_IsActorPlayingSomething to ZScript.

The sound API change required deprecating A_PlaySound and S_Sound. There are now new variants S_StartSound and A_StartSound which have two distinct parameters for channel and flags.

# Conflicts:
#	src/bbannouncer.cpp
#	src/fragglescript/t_func.cpp
#	src/g_shared/a_lightning.cpp
#	src/p_effect.cpp
#	src/p_mobj.cpp
#	src/p_switch.cpp
#	src/playsim/p_spec.cpp
#	src/sound/s_doomsound.cpp
#	src/sound/s_doomsound.h
#	wadsrc/static/zscript/base.zs

# Conflicts:
#	src/intermission/intermission.cpp
#	src/sound/s_doomsound.cpp
2020-01-06 15:00:05 +01:00
alexey.lysiuk
85fe6c5aaa - adjusted collision detection for item pickups
Use vanilla condition for a thing with MF_SPECIAL flag to fix inability to grab it when item's top is at the same height as sector's floor from it can be picked up

https://forum.zdoom.org/viewtopic.php?t=60181&start=88#p1122935
2019-10-31 17:40:03 +01:00
alexey.lysiuk
015eb3404a - fixed radius attack that may inflict damage twice
https://forum.zdoom.org/viewtopic.php?t=66191
2019-10-28 12:14:32 +01:00
Marisa Kirisame
ca35bdc33c Fix for LineTrace not setting its starting sector based on its offset. 2019-09-16 01:28:11 +02:00
Christoph Oelckers
358718de05 - removed the playernum parameter from CheckLocalView
This was always used with 'consoleplayer' which really is the only thing making sense here. But this is a part of the global state which should be avoided in play code.

In particular, this makes no real sense in case of secondary maps where it should always return false.

# Conflicts:
#	src/fragglescript/t_func.cpp
#	src/g_inventory/a_keys.cpp
#	src/p_acs.cpp
#	src/p_mobj.cpp
#	src/p_user.cpp
#	src/r_data/r_interpolate.cpp
#	src/r_data/r_interpolate.h
2019-09-02 21:17:19 +02:00
Christoph Oelckers
82fac693d8 - made the gross railing hack for Strife a compatibility option and restricted it to MAP04
The side effects here broke other maps and this is really too glitchy to be turned on unless really necesasary.

# Conflicts:
#	src/gamedata/g_mapinfo.h
#	src/gamedata/stringtable.cpp
#	src/maploader/maploader.cpp
#	src/p_map.cpp
#	src/p_udmf.cpp
2019-04-29 19:51:43 +02:00
Christoph Oelckers
a488791add - added A_Explode compatibility options.
There are two options here - one only disables the vertical thrust and the other goes back fully to the original non-z-aware code.
Both options are settable through MAPINFO.
For the compatibility presets, the normal ones only disable the vertical thrust, the strict ones force use of the old code entirely.

# Conflicts:
#	wadsrc/static/language.csv
2019-04-29 19:30:06 +02:00
Christoph Oelckers
7d49fec477 - fixed: SpawnShootDecal tried to get the current level from a value that could point to actor defaults which do not have a level. 2019-04-29 18:52:11 +02:00
Christoph Oelckers
a531ca557d - fixed: PlayerStartStomp must check for NOTELEFRAG. 2019-04-28 22:47:04 +02:00
Christoph Oelckers
458a97b0f7 - fixed dropoff checks for portals and 3D floors in the same sector. 2019-04-28 11:46:54 +02:00
Christoph Oelckers
0ed3ac740a - fixed: The rail attack only considered the puff's decal if it had ALWAYSPUFF set. 2019-04-27 12:16:34 +02:00
alexey.lysiuk
d8d290cd51 - fixed many compilation errors with GCC and Clang
# Conflicts:
#	src/dobjgc.h
2019-04-26 17:14:12 +02:00
Christoph Oelckers
99dd234d10 - exported all native components of APlayerPawn.
Only the class definition itself remains and needs to be taken care of.

# Conflicts:
#	src/g_statusbar/sbarinfo_commands.cpp
#	src/hu_scores.cpp
#	src/scripting/thingdef_data.cpp

# Conflicts:
#	src/actorinlines.h
#	src/hu_scores.cpp
2019-04-25 17:42:11 +02:00
Ijon
49dd94f65a Add NOFRICTION and NOFRICTIONBOUNCE flags
NOFRICTION disables all friction effects on the thing it's set on
(including the speed cap from water/crouching), and NOFRICTIONBOUNCE
disables the "bounce off walls on an icy floor" effect on the thing
it's set on.
2019-04-18 19:56:33 +02:00
Christoph Oelckers
cf4f573a25 - more direct native entry points.
- disallow bool as a return value for direct native calls because it only sets the lowest 8 bits of the return register.
- changed return type for several functions from bool to int where the return type was the only thing blocking use as direct native call.
2019-04-17 17:27:39 +02:00
Christoph Oelckers
792aaa5b88 Added direct native entry points to a larger number of functions.
# Conflicts:
#	src/scripting/vmthunks_actors.cpp
2019-04-17 15:11:22 +02:00
Christoph Oelckers
dc29eee077 - fixed compile warning 2019-04-16 21:34:53 +02:00
Christoph Oelckers
5043106e97 - started replacing direct references to class AInventory.
The easiest part was the type checks which could be changed to the name variant with a global search and replace.

# Conflicts:
#	src/hwrenderer/scene/hw_sprites.cpp

# Conflicts:
#	src/hwrenderer/scene/hw_sprites.cpp
2019-04-16 21:34:23 +02:00
Player701
e5fa48ae79 - Added a flag to make bouncing objects disappear when hitting sky surfaces 2019-04-16 17:28:33 +02:00
Christoph Oelckers
4ac866aedc - added a few more direct native entry points. 2019-04-16 15:12:41 +02:00
Christoph Oelckers
03b7d84058 - added a direct native function for NextHighestCeilingAt to test multiple return values. 2019-04-16 15:12:37 +02:00
Christoph Oelckers
96e9dbd967 - removed all remaining native components of the weapon class. 2019-04-15 22:29:52 +02:00
Christoph Oelckers
309cc57504 - removed all direct access to AWeapon's members to prepare moving this class fully to the script side.
Disregarding UI-side and setup-related calls there's unfortunately still 6 places in the native game code which require direct access.
2019-04-15 22:29:43 +02:00
Christoph Oelckers
681009e1ea - exported the blood spawning part of P_LineAttack as a virtual ZScript function. 2019-04-15 21:59:08 +02:00
Christoph Oelckers
f1c7815b16 - scriptified A_Explode and relatives. 2019-04-15 21:58:52 +02:00
Christoph Oelckers
05e8a6c62d - scriptified A_RailAttack. 2019-04-15 21:58:35 +02:00
Christoph Oelckers
5f5410e35f - fixed: Since out types cannot be marked as such in a function prototype (as it'd cause parameter mismatches in the resolving pass) it is necessary to check the argflags as well when determining the register type. 2019-04-15 21:56:26 +02:00
Christoph Oelckers
9d126954d1 - removed the default parameter handling from all native script functions because it is no longer needed.
# Conflicts:
#	src/p_actionfunctions.cpp

# Conflicts:
#	src/hwrenderer/postprocessing/hw_postprocessshader.cpp
#	src/v_2ddrawer.cpp
2019-04-15 14:59:00 +02:00
Player701
d72d820bba - Exported AActor::Grind to ZScript. 2018-11-30 10:18:43 +01:00
Cacodemon345
0f2a4abe8f BOUNCEONUNRIPPABLES flag; makes actors bounce on actors with DONTRIP flag 2018-11-16 21:33:12 +01:00
Player701
e00db66432 - Fixed: Decal generator should be taken from the current weapon instance instead of the default instance. 2018-11-16 20:40:05 +01:00
Christoph Oelckers
709a573355 - clear spechit before leaving P_CheckPosition.
Otherwise this may contain residual data from the last call.
One can only hope that this doesn't cause other side effects - this entire code is one horrendous mess of bad ideas.
2018-11-10 11:19:25 +01:00
ZZYZX
89bdd1adf0 Explode bouncing projectiles if hit damageable geometry 2018-11-07 11:00:06 +01:00
ZZYZX
b581648d6f Destructible geometry - minor fixes and 3D floor support 2018-11-07 11:00:05 +01:00
Cacodemon345
57e51debec Extend SKYEXPLODE flag for LineAttack 2018-11-03 21:52:25 +01:00
Cacodemon345
341105a15f Fix bounce state not entering when hit from top. 2018-11-02 13:06:48 +01:00
ZZYZX
82a2bf3ac5 Single commit - destructible geometry feature
# Conflicts:
#	src/p_setup.cpp
2018-11-01 21:02:25 +01:00
Major Cooke
78d4a87cd1 Added DMG_EXPLOSION flag.
- This allows modders to determine if damage is caused by an actual explosion, assigned by P_RadiusAttack and BlastActor for +TOUCHY actors.
2018-09-15 20:41:17 +02:00
Major Cooke
3d52b093a5 Allow LineAttack's LAF_NOINTERACT to fill FTranslatedLineTarget's information.
- Originally when the flag was made, LineAttack was not yet exported. This can now be benefitted directly from ZScript.
2018-09-15 20:41:16 +02:00
Christoph Oelckers
0fd1909f2c - got rid of FNameNoInit and made the default constructor of FName non-initializing.
This setup has been a constant source of problems so now I reviewed all uses of FName to make sure that everything that needs to be initialized is done manually.
This also merges the player_t constructor into the class definition as default values.
2018-08-19 10:36:10 +02:00
Marisa Kirisame
8eaa0b17c6 Added missing check for HITOWNER on bouncers with 0 damage. 2018-08-18 00:52:37 +02:00
Marisa Kirisame
d8df6a7e6d Add HITOWNER flag, when set, allows a projectile to collide with its shooter. 2018-08-18 00:52:36 +02:00
Marisa Kirisame
1689203e35 Additional blocking-related flags for Actor.LineTrace() 2018-08-05 19:48:58 +02:00