- Fixed: Thing_ChangeTid must check whether the actor whose tid is about to

be changed is scheduled for destruction.
- Fixed: G_FinishTravel added the player to the hash chain twice.
- Fixed: The animations for Doom's E3 intermission used incorrect patch names.
- Added a check for MF_NOLIFTDROP to PIT_CeilingRaise because the overlapping 
  bridges in 007LTSD got moved by this function.

SVN r136 (trunk)
This commit is contained in:
Christoph Oelckers 2006-05-22 09:53:09 +00:00
parent df799ade24
commit 7f2ac35dce
5 changed files with 28 additions and 17 deletions

View file

@ -1,3 +1,11 @@
May 22, 2006 (Changes by Graf Zahl)
- Fixed: Thing_ChangeTid must check whether the actor whose tid is about to
be changed is scheduled for destruction.
- Fixed: G_FinishTravel added the player to the hash chain twice.
- Fixed: The animations for Doom's E3 intermission used incorrect patch names.
- Added a check for MF_NOLIFTDROP to PIT_CeilingRaise because the overlapping
bridges in 007LTSD got moved by this function.
May 21, 2006
- Fixed GCC 4 warnings in FNodeBuilder::CreateSubsectorsForReal().
- Changed f_finale.cpp/atkstates[] into a static variable, since its

View file

@ -2029,7 +2029,6 @@ void G_FinishTravel ()
pawn->waterlevel = pawndup->waterlevel;
pawn->target = NULL;
pawn->lastenemy = NULL;
pawn->AddToHash ();
pawn->player->mo = pawn;
DObject::PointerSubstitution (oldpawn, pawn);
oldpawn->Destroy();

View file

@ -885,7 +885,7 @@ FUNC(LS_Thing_ChangeTID)
{
if (arg0 == 0)
{
if (it != NULL)
if (it != NULL && !(it->ObjectFlags & OF_MassDestruction))
{
it->RemoveFromHash ();
it->tid = arg1;
@ -900,12 +900,15 @@ FUNC(LS_Thing_ChangeTID)
next = iterator.Next ();
while (next != NULL)
{
actor = next;
next = iterator.Next ();
if (!(next->ObjectFlags & OF_MassDestruction))
{
actor = next;
next = iterator.Next ();
actor->RemoveFromHash ();
actor->tid = arg1;
actor->AddToHash ();
actor->RemoveFromHash ();
actor->tid = arg1;
actor->AddToHash ();
}
}
}
return true;

View file

@ -4151,7 +4151,8 @@ void PIT_CeilingRaise (AActor *thing)
// (or something else?) Things marked as hanging from the ceiling will
// stay where they are.
if (thing->z < thing->floorz &&
thing->z + thing->height >= thing->ceilingz - moveamt)
thing->z + thing->height >= thing->ceilingz - moveamt &&
!(thing->flags & MF_NOLIFTDROP))
{
fixed_t oldz = thing->z;
thing->z = thing->floorz;

View file

@ -26,23 +26,23 @@ Animation 160 96 11
Animation 104 80 11
{
WIA30300
WIA30301
WIA30302
WIA20300
WIA20301
WIA20302
}
Animation 120 32 11
{
WIA40400
WIA40401
WIA40402
WIA20400
WIA20401
WIA20402
}
Animation 40 0 8
{
WIA50500
WIA50501
WIA50502
WIA20500
WIA20501
WIA20502
}