Commit graph

252 commits

Author SHA1 Message Date
rheit
bfb94f13d2 Merge pull request #198 from MajorCooke/filters
- Added name filtering to all A_Damage/Kill/Remove functions.
2014-12-23 21:42:31 -06:00
Randy Heit
d7d022144e Call A_Face() directly from A_CustomBullletAttack 2014-12-23 21:30:24 -06:00
MajorCooke
91bfe4cceb - Added pointers for A_CustomMissile and A_CustomBulletAttack. 2014-12-21 12:29:19 -06:00
MajorCooke
2c7a3f2eba - Optimized DoDamage and DoKill.
- Do a filter and species check first to save time.
- Added DMSS/KILS/RMVF_EITHER, which means if the actor is of type or species, it counts.
- A_DamageTarget(20,"Normal",DMSS_EITHER,"DoomImp","CyberdemonSpecies")
- This affects actor DoomImp, and anything that's of species CyberdemonSpecies.
- Added a little more documentation via comments.
2014-12-21 10:38:51 -06:00
MajorCooke
5a472e815b - Added species checking.
- Added two more flags for each of the functions, EXFILTER and EXSPECIES.
- Stands for "exclude filter/species" and makes the function not take them into account.
- Cleaned up the code and placed all the checking in their own subfunctions.
2014-12-21 09:31:24 -06:00
MajorCooke
c168761eda - Couple additional fixes:
- The wiki said the minimum distance to teleport defaults to 0, actor.txt on the other hand said otherwise. I was wondering why it was still broken somewhat...
- Prevent stickiness from happening, a.k.a. getting stuck in ceiling or floor and letting the engine unstick the actor. This caused velocity loss.
2014-12-20 22:51:43 -06:00
MajorCooke
e5a41a1358 - Added name filtering to all A_Damage/Kill/Remove functions.
- A_DamageChildren(20,"Normal",0,"DoomImp") for example will only target actors of DoomImp specifically.
2014-12-20 16:57:00 -06:00
Christoph Oelckers
2a53ebb6b9 - fixed state checking in A_Teleport. 2014-12-20 14:48:22 +01:00
Christoph Oelckers
a19f0219c5 Merge branch 'master' of https://github.com/Blue-Shadow/zdoom 2014-12-20 11:36:10 +01:00
MajorCooke
86b0065c0b - Added a multitude of flags for A_Teleport.
- TF_KEEPVELOCITY: Keep the velocity after teleporting.
- TF_KEEPANGLE: Don't use the special spot's angle.
- TF_USESPOTZ: Normally, this function
- TF_NOSRCFOG: Don't leave fog at the previous location.
- TF_NODESTFOG: Don't leave fog at the arriving location.
- TF_USEACTORFOG: Use the actor's TeleFogSourceType and TeleFogDestType properties.
- TF_NOJUMP: Don't require or cause a jump. In this case, put 0 (or "") in for the jump destination when using CustomInventory items to teleport actors around.
2014-12-19 12:37:02 -06:00
Blue-Shadow
a150e0686c Added 'lifestealmax' parameter and STEALARMOR flag to A_Saw and A_CustomPunch. 2014-12-18 23:05:59 +03:00
MajorCooke
dcab57b236 - Allow NULL.
- Instead of reverting the teleport fog back to defaults, if there wasn't a class or if the class failed to be found, set it to NULL.
- P_SpawnTeleportFog will not spawn anything if it's NULL.
- Added "" so it can be used to mean 'don't change anything' for A_SetTeleFog.
2014-12-18 09:19:39 -06:00
MajorCooke
93ca8502dd - Rewrote a bunch of things for stability. 2014-12-17 21:47:00 -06:00
MajorCooke
30acb72006 - Added per-actor teleport fog modifications.
- New properties include TeleFogSourceType and TeleFogDestType.
- TeleFogSourceType is the fog left behind where the actor teleported away from.
- TeleFogDestType is the fog the actor sees when it arrives at its destination.
- Added A_SetTeleFog(<oldpos>,<newpos>) -- oldpos sets TeleFogSourceType, newpos sets TeleFogDestType.
2014-12-17 16:11:07 -06:00
MajorCooke
465d9ab89a - Added flags for A_CheckLOF:
- CLOFF_SETTARGET | CLOFF_SETMASTER | CLOFF_SETTRACER
- An actor that causes A_CheckLOF (and only an actor) to succeed will set the intercepting actor as its target, master, and/or tracer, respectively.
2014-12-15 14:50:35 -06:00
MajorCooke
94f08aa593 - Added: Boolean to specify if A_Raise functions should perform CopyFriendliness based upon who raised it. By default, this is false. 2014-11-27 15:12:33 -06:00
MajorCooke
08570ec48e - Added flags for A_Fade functions:
- FTF_REMOVE: Removes the actor when the alpha hits a certain level.
- - A_FadeIn - 1.0
- - A_FadeOut - 0.0
- - A_FadeTo - Alpha target level reached
- FTF_CLAMP: Automatically fixes the alpha so it won't leave the range [0.0, 1.0].
2014-11-25 13:24:35 -06:00
Edoardo Prezioso
fd354dbe9a - Added CPF_NOTURN flag for A_CustomPunch. 2014-11-14 12:18:46 +01:00
Christoph Oelckers
22b5d0af8a Merge branch 'hotfix' of https://github.com/MajorCooke/zdoom 2014-11-09 12:13:13 +01:00
MajorCooke
87207bdb6d - Fixed: The mask didn't incorporate RGF_MISSILES, causing it to fail. 2014-11-09 00:16:10 -06:00
Edoardo Prezioso
8b85e6d00b - Port an empty version of 'A_FaceConsolePlayer'.
Hissies will be happy now.
2014-11-08 18:49:16 +01:00
Christoph Oelckers
c28c0b8f0b Revert "Backport 'A_FaceConsolePlayer' from zandronum."
This reverts commit eab971500b.

As Edward850 pointed out, this feature is broken by design and therefore completely useless.
2014-11-08 08:53:32 +01:00
Edoardo Prezioso
eab971500b Backport 'A_FaceConsolePlayer' from zandronum.
By Dusk, who authorized me to do this.
2014-11-08 00:31:16 +01:00
MajorCooke
938b54ccb5 - Added TF_FORCED for A_Teleport. Forces the actor to move to the spot. 2014-10-31 15:51:15 -05:00
Christoph Oelckers
31611c17d5 - fixed RGF_NOSIGHT checking for A_RadiusGive. 2014-10-29 22:00:15 +01:00
MajorCooke
165d2887fd - Added: A_GiveToChildren
- Added: A_TakeFromChildren
- Added: A_GiveToSiblings
- Added: A_TakeFromSiblings
- Added the following flags for A_RadiusGive:
- RGF_NOSIGHT: Exclude sight check from distance.
- RGF_MISSILES: Missiles can take inventory items.
2014-10-29 14:01:31 -05:00
MajorCooke
c01d1a8003 - Added DMSS_NOPROTECT.
Bypasses PowerProtection inventory items.
2014-10-27 22:29:10 -05:00
MajorCooke
a19620968d - Follow-up of the previous commit.
- Cleaned up the DoDamage and DoKill functionality.
- Added DMSS_FOILBUDDHA and KILS_FOILBUDDHA.
2014-10-25 09:39:10 +02:00
Christoph Oelckers
1c500cead6 - fixed: A_Respawn did not restore the flags6 and flags7 fields. 2014-10-25 01:27:34 +02:00
Christoph Oelckers
b6f4862024 - fixed: A_Warp didn't initialize oldx/y/z in all situations. 2014-10-25 00:05:52 +02:00
Christoph Oelckers
0f19356e24 Merge branch 'master' of https://github.com/MajorCooke/zdoom
Conflicts:
	wadsrc/static/actors/constants.txt
2014-10-12 08:43:46 +02:00
MajorCooke
f766a1ab38 - Added SXF_ORIGINATOR.
- Only useful for missiles.

By default, missiles cannot set themselves as the master when spawning
actors.
2014-10-11 16:15:42 -05:00
MajorCooke
47029a3efc DoKill bug
-Fixed: DoKill did not target 'killtarget' for missiles, causing crashes and making the function not work properly.
2014-10-07 11:33:08 -05:00
MajorCooke
f54a59fdf8 - Added JLOSF_CHECKTRACER for A_JumpIfTargetInLOS.
- CHECKTRACER doesn't need to be a missile or have the SEEKERMISSILE
flag.
2014-10-02 17:00:17 -05:00
MajorCooke
5030832df0 - Added DMSS_NOFACTOR for all A_Damage functions. 2014-10-02 11:48:07 -05:00
MajorCooke
96c6e7d9bf Minor fix; didn't mean to include that flag check. 2014-09-28 08:20:27 -05:00
MajorCooke
43b86288c7 - Added A_Remove(int pointer, int flags).
- RMVF_MISSILES removes missiles.
- RMVF_NOMONSTERS ignores monsters.
- RMVF_MISC includes non-monsters and missiles.
- RMVF_EVERYTHING disregards all checks and remove it.

These flags now apply to the following in addition to the new function:

-A_RemoveTarget
-A_RemoveMaster
-A_RemoveTracer
-A_RemoveChildren
-A_RemoveSiblings
2014-09-28 08:15:00 -05:00
MajorCooke
97d5d614c4 - Fixed: SXF_NOPOINTERS didn't clear LastHeard, causing monsters to spawn with targets. 2014-09-27 16:50:24 -05:00
MajorCooke
68a5db3c8c - Added SXF_NOPOINTERS for A_SpawnItemEx.
- Added WARPF_ABSOLUTEPOSITION for A_Warp.
2014-09-27 13:22:14 -05:00
Christoph Oelckers
e025f40902 - more redundancy removal: Consolidated the common part of the A_Kill* functions into a subfunction. 2014-09-27 08:54:18 +02:00
Christoph Oelckers
afaa88a460 - consolidated the common portion of the 6 different A_Damage* functions into a subfunction. 2014-09-27 08:48:36 +02:00
MajorCooke
0735cb9550 - Updated many functions.
- Added A_KillTarget(damagetype, int flags).
- Added A_KillTracer(damagetype, int flags).
- Added A_RemoveTarget.
- Added A_RemoveTracer.

A_Kill (Master/Target/Tracer/Children/Siblings):
- KILS_FOILINVUL: foils invulnerability.
- KILS_KILLMISSILES: destroys projectiles. Does not work on invulnerable
projectiles without KILS_FOILINVUL, and doesn't work at all on missiles
with NODAMAGE flag.
- KILS_NOMONSTERS: actors that are monsters will not be killed.

A_Damage (Self/Target/Master/Tracer/Children/Siblings):
- DMSS_FOILINVUL: foils invulnerability.
- DMSS_AFFECTARMOR: damages the actor's armor instead of bypassing it
entirely.
- DMSS_KILL: damages the actor by its remaining health (useful for
modular DECORATE programming).

- Added A_SpawnItemEx flags:
- SXF_SETTARGET: sets the calling actor as the target.
- SXF_SETTRACER: sets the calling actor as the tracer.
Both of these functions take priority similar to SXF_SETMASTER over
SXF_TRANSFERPOINTERS.
2014-09-27 00:10:31 -05:00
MajorCooke
5b71ce6dcb - Added FDARI's A_JumpIfHealthLower patch.
Now with pointer accessibility.
2014-09-26 11:48:20 -05:00
MajorCooke
422e83a1b9 - Added more A_Damage functions:
- A_DamageTarget
- A_DamageTracer
-Both take a number for how much damage to deal and the damagetype to
inflict. Negative numbers means healing.
2014-09-25 23:12:25 -05:00
MajorCooke
b1f87295b8 - Added A_DamageSelf.
- A_DamageSelf(int amount, name damagetype)
2014-09-25 16:47:41 -05:00
MajorCooke
44683657f2 - Added jpalomo's A_SetSpeed patch. 2014-09-20 17:34:57 -05:00
MajorCooke
5c4ad9be68 Added Blue Shadow's A_SpawnItemEx changes: (1/2)
SXF_TRANSFERALPHA and SXF_TRANSFERRENDERSTYLE
2014-09-19 14:15:31 -05:00
MajorCooke
7a62459c00 Allow SXF_SETMASTER to work on non-monsters. 2014-09-18 17:58:06 -05:00
Christoph Oelckers
2be3b776d8 - fixed: A_CustomMissile should not jump to the See state for dead monsters when using CMF_CHECKTARGETDEAD. 2014-09-13 10:15:09 +02:00
Christoph Oelckers
7d7f146ce1 - fixed: transferring a translation to a missile needs to check if the missile was spawned successfully. 2014-06-28 15:21:19 +02:00