mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-26 14:01:45 +00:00
- Fixed: When P_SpawnPlayer() calls DObject::PointerSubstitution() to
redirect player pointers, it affects the bodyque too. That meant that in multiplayer games, once the bodyque filled up, anybody was in danger of being rudely destroyed the next time somebody respawned. SVN r386 (trunk)
This commit is contained in:
parent
86ed101522
commit
4b7b95663e
2 changed files with 11 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
November 24, 2006
|
||||
- Fixed: When P_SpawnPlayer() calls DObject::PointerSubstitution() to
|
||||
redirect player pointers, it affects the bodyque too. That meant that in
|
||||
multiplayer games, once the bodyque filled up, anybody was in danger of
|
||||
being rudely destroyed the next time somebody respawned.
|
||||
|
||||
November 22, 2006
|
||||
- Added a manifest with a trustinfo section to updaterevision.exe so that
|
||||
the build process can run uninterrupted under Vista.
|
||||
|
|
|
@ -53,6 +53,7 @@
|
|||
#include "a_keys.h"
|
||||
#include "p_conversation.h"
|
||||
#include "thingdef.h"
|
||||
#include "g_game.h"
|
||||
|
||||
// MACROS ------------------------------------------------------------------
|
||||
|
||||
|
@ -3556,6 +3557,10 @@ void P_SpawnPlayer (mapthing2_t *mthing, bool tempplayer)
|
|||
{
|
||||
assert (oldactor != NULL);
|
||||
DObject::PointerSubstitution (oldactor, p->mo);
|
||||
// PointerSubstitution() will also affect the bodyque, so undo that now.
|
||||
for (int ii=0; ii < BODYQUESIZE; ++ii)
|
||||
if (bodyque[ii] == p->mo)
|
||||
bodyque[ii] = oldactor;
|
||||
FBehavior::StaticStartTypedScripts (SCRIPT_Respawn, p->mo, true);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue