- Fixed: When starting a level while the music has been paused S_Start has
to stop the old music so the new one always starts at the beginning. - Fixed:: AActor::master was not serialized. - Fixed: Sound targets pointing to dead players should be cleared before respawning the player. - Fixed: When the DONTMOVE flag is set A_Chase must not call P_NewChaseDir. - Changed PowerupGiver initialization so that the actual powerup class is looked up during postprocessing. - Gave Strife's instant death sector type its own damage type. SVN r778 (trunk)
This commit is contained in:
parent
3b991c3070
commit
03617dc6f0
8 changed files with 77 additions and 19 deletions
|
|
@ -320,6 +320,9 @@ void AActor::Serialize (FArchive &arc)
|
|||
<< gravity
|
||||
<< FastChaseStrafeCount;
|
||||
|
||||
if (SaveVersion >=778)
|
||||
arc << master;
|
||||
|
||||
if (arc.IsStoring ())
|
||||
{
|
||||
int convnum = 0;
|
||||
|
|
@ -3645,6 +3648,23 @@ void P_SpawnPlayer (mapthing2_t *mthing, bool tempplayer)
|
|||
else if (state == PST_REBORN)
|
||||
{
|
||||
assert (oldactor != NULL);
|
||||
|
||||
// before relocating all pointers to the player all sound targets
|
||||
// pointing to the old actor have to be NULLed. Otherwise all
|
||||
// monsters who last targeted this player will wake up immediately
|
||||
// after the player has respawned.
|
||||
AActor *th;
|
||||
TThinkerIterator<AActor> it;
|
||||
while ((th = it.Next()))
|
||||
{
|
||||
if (th->LastHeard == oldactor) th->LastHeard = NULL;
|
||||
}
|
||||
for(int i = 0; i < numsectors; i++)
|
||||
{
|
||||
if (sectors[i].SoundTarget == oldactor) sectors[i].SoundTarget = NULL;
|
||||
}
|
||||
|
||||
|
||||
DObject::PointerSubstitution (oldactor, p->mo);
|
||||
// PointerSubstitution() will also affect the bodyque, so undo that now.
|
||||
for (int ii=0; ii < BODYQUESIZE; ++ii)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue