- 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 May 21, 2006
- Fixed GCC 4 warnings in FNodeBuilder::CreateSubsectorsForReal(). - Fixed GCC 4 warnings in FNodeBuilder::CreateSubsectorsForReal().
- Changed f_finale.cpp/atkstates[] into a static variable, since its - 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->waterlevel = pawndup->waterlevel;
pawn->target = NULL; pawn->target = NULL;
pawn->lastenemy = NULL; pawn->lastenemy = NULL;
pawn->AddToHash ();
pawn->player->mo = pawn; pawn->player->mo = pawn;
DObject::PointerSubstitution (oldpawn, pawn); DObject::PointerSubstitution (oldpawn, pawn);
oldpawn->Destroy(); oldpawn->Destroy();

View File

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

View File

@ -4151,7 +4151,8 @@ void PIT_CeilingRaise (AActor *thing)
// (or something else?) Things marked as hanging from the ceiling will // (or something else?) Things marked as hanging from the ceiling will
// stay where they are. // stay where they are.
if (thing->z < thing->floorz && 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; fixed_t oldz = thing->z;
thing->z = thing->floorz; thing->z = thing->floorz;

View File

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