- fixed: The BFGBall's explosion sequence was missing a state.

- fixed: The brown Chaos Serpent in Hexen had an incorrect sprite for its
  ice death sequence set.
- fixed: Ammo upon game start does not get multiplied when on easy skill.
  Implementing this as an inventory flag IF_IGNORESKILL also allows to create
  ammo/weapon/backpack types that don't multiply the ammo given when on this
  skill.
- moved Doom exit sounds into SNDINFO as $random definitions.
- Fixed: Dying Lost Souls could be reset to their see state if they slammed into
  something.

SVN r540 (trunk)
This commit is contained in:
Christoph Oelckers 2007-07-28 12:38:10 +00:00
commit 5e2e389bd1
15 changed files with 101 additions and 82 deletions

View file

@ -544,6 +544,7 @@ bool AActor::SetState (FState *newstate)
sprite = newsprite;
}
}
if (newstate->GetAction())
{
// The parameterized action functions need access to the current state and
@ -553,7 +554,6 @@ bool AActor::SetState (FState *newstate)
// that does not involve changing stuff throughout the code.
// Of course this should be rewritten ASAP.
CallingState = newstate;
newstate->GetAction() (this);
// Check whether the called action function resulted in destroying the actor
@ -2365,17 +2365,20 @@ bool AActor::Slam (AActor *thing)
{
flags &= ~MF_SKULLFLY;
momx = momy = momz = 0;
if (!(flags2 & MF2_DORMANT))
if (health > 0)
{
int dam = GetMissileDamage (7, 1);
P_DamageMobj (thing, this, this, dam, NAME_Melee);
P_TraceBleed (dam, thing, this);
SetState (SeeState != NULL ? SeeState : SpawnState);
}
else
{
SetState (SpawnState);
tics = -1;
if (!(flags2 & MF2_DORMANT))
{
int dam = GetMissileDamage (7, 1);
P_DamageMobj (thing, this, this, dam, NAME_Melee);
P_TraceBleed (dam, thing, this);
SetState (SeeState != NULL ? SeeState : SpawnState);
}
else
{
SetState (SpawnState);
tics = -1;
}
}
return false; // stop moving
}