- 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.
- 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
- 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.
- Added CF_INTERPVIEW flag for players. A_SetPitch/A_SetAngle and the
similar ACS APROPs set this when changing an angle. This forces the
renderer to interpolate the view angles instead of updating with the
latest mouse positions. The effect lasts one tick.
- If a player is spying through another player, CheckPlayerCamera will
return the TID of the player you are "spying", but as coopspy isn't a
net command, this wont be reflected by all nodes. So to fix this,
CheckPlayerCamera now returns -1 if a player's camera is that of any
player at all. (thanks edward850)
whatever spawned the random spawner already took care of this.
- Added a maxdist parameter to P_CheckMissileSpawn() to help ensure that it doesn't completely
move the spawned missile outside of its shooter (and potentially beyond a wall the shooter
might happen to be standing next to).
SVN r4194 (trunk)
can perform based on the amount of damage actually taken after all modifications are done to
it. However, if the damage is canceled away, blood will still spawn for the original damage
amount rather than the modified amount.
SVN r4012 (trunk)
something that never autoaims, such as a railgun.
- Fixed: A_JumpIfTargetInLOS should use P_AimLineAttack() instead of P_BulletSlope(), because the
latter intentionally checks to the sides of the aimed line.
SVN r4007 (trunk)
I could be clever and have the beggar chase after you some after you attack him, with a
random chance to cease pursuit. However, that didn't look much different from his normal
wandering animation, and he usually gave up before getting anywhere near you, so it was
kind of pointless. I kept the action functions around anyway, since they're simple things that
somebody else might find useful.
- Added a melee range check to A_SentinelRefire for actors without missile states. This fixes
Strife's Beggar trying to attack you when you're nowhere near him.
SVN r3863 (trunk)
and RTF_NOTMISSILE so that you can use A_Explode and A_RadiusThrust with non-missiles without
them telling P_RadiusAttack() that the target is the source.
SVN r3860 (trunk)
overridden in custom player classes by changing their Obituary property to something else.
- ClientObituary() now only looks up the obituary message from the killing player's weapon if the
damage type was 'Melee' or 'Hitscan'.
- Gave P_GunShot() and A_FireBullets the new damage type 'Hitscan'.
- Switched A_Saw and A_CustomPunch to the 'Melee' damage type.
SVN r3646 (trunk)
- Removed A_KSpiritWeave since it was basically identical to the function CHolyWeave (besides the random number generator object) and was never exported as a native action anywhere.
SVN r3631 (trunk)
its tracer so that it will look for a new target the next time it is called.
- Extended P_RoughMonsterSearch() with a flag to indicate that it should only search for seekable
targets.
SVN r3572 (trunk)
without resetting the actor's sector. The 3D floor checks in P_NightmareRespawn() and
A_RestoreSpecialPosition now use this.
- Fixed: P_NightmareRespawn() did its Z clamping before checking for 3D floors.
- Fixed: Respawning actors were not clamped to the ceiling.
SVN r3542 (trunk)
The initial spawn did not, so this can prevent respawns of things that were initially
spawned if they happen to intersect a wall.
- Fixed: Don't respawn actors inside the floor.
- Fixed: The final calls to P_FindFloorCeiling() in P_NightmareRespawn() and A_RestoreSpecialPosition
also need to pass true as the second parameter. (Because this parameter is onlyspawnpos, not
onlymidtex.)
SVN r3518 (trunk)
same situation A_RestoreSpecialPosition, it now just calls that to do the moving. This also
means it is no longer limited to respawning things on the floor.
SVN r3514 (trunk)
for multiplayer: They now always check through the eyes of every player. For players whose
cameras are not players, they also check through the eyes of those cameras.
- Using spynext/spyprev to switch from a non-player to a player now writes a command to the
network stream and lets Net_DoCommand() take care of it later. The logic here is that if
a player is viewing from something that isn't another player, then every player needs to know
about it for sync purposes. Consequently, when they stop viewing from a non-player and switch
to a player, everybody needs to know about that too. But if they are viewing from a
player, it doesn't matter which player it is, so they can spynext/spyprev all they want
without letting the other players know about it (and without potentially breaking demos--due
to the above-mentioned two codepointers--while doing it during demo playback).
- Replaced the instances of checking players[consoleplayer].camera for a valid pointer to
ones that do it for every player.
- Fixed: Upon changing levels, all players but the consoleplayer would have their cameras NULLed.
- Fixed: player_t::FixPointers() needs to bypass the read barriers, or it won't be able to
do substitutions of old objects that are pending deletion.
SVN r3448 (trunk)
named the same as their ACS function equivalents. e.g. From DECORATE, you can now use
ACS_NamedExecuteAlways to run a script with a name.
SVN r3364 (trunk)
be made to clamp other actors' pitches to within the range (-90,+90)
degrees with the SPF_FORCECLAMP flag.
- Transmit the local viewpitch limits to the other players.
SVN r3323 (trunk)
- merged all places where secrets are credited into one common function.
- added the Doom64 COUNTSECRET actor flag.
- fixed: AInventory::CreateCopy did not clear the COUNTITEM flag.
- fixed: Dropping an item did not increase the item count but the dropped item could still have the COUNTITEM flag. Now this flag gets cleared when the item gets picked up so that dropped items don't count a second time.
SVN r2826 (trunk)
A_FadeTo(float target, float amount = 0.10, bool remove = false)
Alters transparency towards target by amount. If remove is true, the actor is destroyed if it reaches target.
SVN r2305 (trunk)
is not necessarily "self". The only visible change from this should be that inventory items
now set their own variables and not their owners'.
SVN r2235 (trunk)
player does not immediately activate switches. oldbuttons was not usable
for this. This also required that CopyPlayer preserves this info.
- Fixed: When restarting the music there was a NULL pointer check missing
so it crashed when the game was started wi
- Fixed: If the Use key is used to respawn the player it must be cleared
so that it doesn't trigger any subsequent actions after respawning.
- Fixed: Resurrecting a monster did not restore flags5 and flags6.
- Fixed: Projectiles which killed a non-monster were unable to determine
what precisely they hit because MF_CORPSE is only valid for monsters.
A new flag, MF6_KILLED that gets set for all objects that die, was added
for this case.
- Added a generic A_Weave function that exposes all possible options of
A_BishopMissileWeave and A_CStaffMissileSlither. These 2 functions are
no longer needed from DECORATE and therefore deprecated.
SVN r2045 (trunk)
But that's insufficient because it doesn't factor in any subsequent velocity
change that happens between the damaging and the next call to A_FreezeDeathChunks.
- fixed: The TimeFreezer did not freeze other players' controls in a
multiplayer game.
- fixed: DECORATE's 'gravity' property incorrectly messed around with the
NOGRAVITY flag.
- fixed: Hitscan attacks didn't check the puff's replacement for damage types.
SVN r2026 (trunk)