- Backported 2 fixes from Skulltag:

* A_SentinelAttack must check for a NULL target
  * Monsters with CANTLEAVEFLOORPIC could not move because their floor
    texture was not initialized.


SVN r1715 (trunk)
This commit is contained in:
Christoph Oelckers 2009-07-12 12:19:11 +00:00
parent e7e79e27ff
commit 19f8b03738
3 changed files with 16 additions and 0 deletions

View file

@ -1,4 +1,8 @@
July 12, 2009 (Changes by Graf Zahl) July 12, 2009 (Changes by Graf Zahl)
- Backported 2 fixes from Skulltag:
* A_SentinelAttack must check for a NULL target
* Monsters with CANTLEAVEFLOORPIC could not move because their floor
texture was not initialized.
- Fixed: The 'idclev' cheat set the player's health to 0 which caused the - Fixed: The 'idclev' cheat set the player's health to 0 which caused the
level to end when in a sector of type 'end level when health below 10'. level to end when in a sector of type 'end level when health below 10'.

View file

@ -42,6 +42,12 @@ DEFINE_ACTION_FUNCTION(AActor, A_SentinelAttack)
{ {
AActor *missile, *trail; AActor *missile, *trail;
// [BB] Without a target the P_SpawnMissileZAimed call will crash.
if (!self->target)
{
return;
}
missile = P_SpawnMissileZAimed (self, self->z + 32*FRACUNIT, self->target, PClass::FindClass("SentinelFX2")); missile = P_SpawnMissileZAimed (self, self->z + 32*FRACUNIT, self->target, PClass::FindClass("SentinelFX2"));
if (missile != NULL && (missile->velx | missile->vely) != 0) if (missile != NULL && (missile->velx | missile->vely) != 0)

View file

@ -269,6 +269,12 @@ void P_FindFloorCeiling (AActor *actor, bool onlyspawnpos)
else else
{ {
actor->floorsector = actor->ceilingsector = actor->Sector; actor->floorsector = actor->ceilingsector = actor->Sector;
// [BB] Don't forget to update floorpic and ceilingpic.
if (actor->Sector != NULL)
{
actor->floorpic = actor->Sector->GetTexture(sector_t::floor);
actor->ceilingpic = actor->Sector->GetTexture(sector_t::ceiling);
}
} }
} }