mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-29 15:22:08 +00:00
- added a NULL pointer check to fog spawning in unmorphing code.
- fixed: frozen corpses need to be treated as solid by z-movement code. - fixed previous commit. SVN r1903 (trunk)
This commit is contained in:
parent
18c1b2685f
commit
19ef8399a8
4 changed files with 26 additions and 6 deletions
|
@ -1,4 +1,6 @@
|
|||
October 9, 2009 (Changes by Graf Zahl)
|
||||
- added a NULL pointer check to fog spawning in unmorphing code.
|
||||
- fixed: frozen corpses need to be treated as solid by z-movement code.
|
||||
- fixed: AAmbientSound::Serialize was adjusting its timer value for savegames
|
||||
even when it was set to a 'don't check' value.
|
||||
|
||||
|
|
|
@ -314,7 +314,10 @@ bool P_UndoPlayerMorph (player_t *activator, player_t *player, int unmorphflag,
|
|||
}
|
||||
|
||||
angle = mo->angle >> ANGLETOFINESHIFT;
|
||||
Spawn(exit_flash, pmo->x + 20*finecosine[angle], pmo->y + 20*finesine[angle], pmo->z + TELEFOGHEIGHT, ALLOW_REPLACE);
|
||||
if (exit_flash != NULL)
|
||||
{
|
||||
Spawn(exit_flash, pmo->x + 20*finecosine[angle], pmo->y + 20*finesine[angle], pmo->z + TELEFOGHEIGHT, ALLOW_REPLACE);
|
||||
}
|
||||
mo->SetupWeaponSlots(); // Use original class's weapon slots.
|
||||
beastweap = player->ReadyWeapon;
|
||||
if (player->PremorphWeapon != NULL)
|
||||
|
|
|
@ -1441,10 +1441,15 @@ bool P_TestMobjZ (AActor *actor, bool quick, AActor **pOnmobj)
|
|||
{ // Can't hit thing
|
||||
continue;
|
||||
}
|
||||
if (thing->flags & (MF_SPECIAL|MF_NOCLIP|MF_CORPSE))
|
||||
{ // [RH] Corpses and specials and noclippers don't block moves
|
||||
if (thing->flags & (MF_SPECIAL|MF_NOCLIP))
|
||||
{ // [RH] Specials and noclippers don't block moves
|
||||
continue;
|
||||
}
|
||||
if (thing->flags & (MF_CORPSE))
|
||||
{ // Corpses need a few more checks
|
||||
if (!(actor->flags & MF_ICECORPSE))
|
||||
continue;
|
||||
}
|
||||
if (!(thing->flags4 & MF4_ACTLIKEBRIDGE) && (actor->flags & MF_SPECIAL))
|
||||
{ // [RH] Only bridges block pickup items
|
||||
continue;
|
||||
|
@ -4315,10 +4320,15 @@ void P_FindAboveIntersectors (AActor *actor)
|
|||
{ // Can't hit thing
|
||||
continue;
|
||||
}
|
||||
if (thing->flags & (MF_CORPSE|MF_SPECIAL))
|
||||
if (thing->flags & (MF_SPECIAL))
|
||||
{ // [RH] Corpses and specials don't block moves
|
||||
continue;
|
||||
}
|
||||
if (thing->flags & (MF_CORPSE))
|
||||
{ // Corpses need a few more checks
|
||||
if (!(actor->flags & MF_ICECORPSE))
|
||||
continue;
|
||||
}
|
||||
if (thing == actor)
|
||||
{ // Don't clip against self
|
||||
continue;
|
||||
|
@ -4364,10 +4374,15 @@ void P_FindBelowIntersectors (AActor *actor)
|
|||
{ // Can't hit thing
|
||||
continue;
|
||||
}
|
||||
if (thing->flags & (MF_CORPSE|MF_SPECIAL))
|
||||
if (thing->flags & (MF_SPECIAL))
|
||||
{ // [RH] Corpses and specials don't block moves
|
||||
continue;
|
||||
}
|
||||
if (thing->flags & (MF_CORPSE))
|
||||
{ // Corpses need a few more checks
|
||||
if (!(actor->flags & MF_ICECORPSE))
|
||||
continue;
|
||||
}
|
||||
if (thing == actor)
|
||||
{ // Don't clip against self
|
||||
continue;
|
||||
|
|
|
@ -1940,7 +1940,7 @@ void AAmbientSound::Serialize (FArchive &arc)
|
|||
else
|
||||
{
|
||||
arc << NextCheck;
|
||||
if (checktime != INT_MAX)
|
||||
if (NextCheck != INT_MAX)
|
||||
{
|
||||
NextCheck += gametic;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue