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)
|
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
|
- fixed: AAmbientSound::Serialize was adjusting its timer value for savegames
|
||||||
even when it was set to a 'don't check' value.
|
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;
|
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.
|
mo->SetupWeaponSlots(); // Use original class's weapon slots.
|
||||||
beastweap = player->ReadyWeapon;
|
beastweap = player->ReadyWeapon;
|
||||||
if (player->PremorphWeapon != NULL)
|
if (player->PremorphWeapon != NULL)
|
||||||
|
|
|
@ -1441,10 +1441,15 @@ bool P_TestMobjZ (AActor *actor, bool quick, AActor **pOnmobj)
|
||||||
{ // Can't hit thing
|
{ // Can't hit thing
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (thing->flags & (MF_SPECIAL|MF_NOCLIP|MF_CORPSE))
|
if (thing->flags & (MF_SPECIAL|MF_NOCLIP))
|
||||||
{ // [RH] Corpses and specials and noclippers don't block moves
|
{ // [RH] Specials and noclippers don't block moves
|
||||||
continue;
|
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))
|
if (!(thing->flags4 & MF4_ACTLIKEBRIDGE) && (actor->flags & MF_SPECIAL))
|
||||||
{ // [RH] Only bridges block pickup items
|
{ // [RH] Only bridges block pickup items
|
||||||
continue;
|
continue;
|
||||||
|
@ -4315,10 +4320,15 @@ void P_FindAboveIntersectors (AActor *actor)
|
||||||
{ // Can't hit thing
|
{ // Can't hit thing
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (thing->flags & (MF_CORPSE|MF_SPECIAL))
|
if (thing->flags & (MF_SPECIAL))
|
||||||
{ // [RH] Corpses and specials don't block moves
|
{ // [RH] Corpses and specials don't block moves
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (thing->flags & (MF_CORPSE))
|
||||||
|
{ // Corpses need a few more checks
|
||||||
|
if (!(actor->flags & MF_ICECORPSE))
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (thing == actor)
|
if (thing == actor)
|
||||||
{ // Don't clip against self
|
{ // Don't clip against self
|
||||||
continue;
|
continue;
|
||||||
|
@ -4364,10 +4374,15 @@ void P_FindBelowIntersectors (AActor *actor)
|
||||||
{ // Can't hit thing
|
{ // Can't hit thing
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (thing->flags & (MF_CORPSE|MF_SPECIAL))
|
if (thing->flags & (MF_SPECIAL))
|
||||||
{ // [RH] Corpses and specials don't block moves
|
{ // [RH] Corpses and specials don't block moves
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (thing->flags & (MF_CORPSE))
|
||||||
|
{ // Corpses need a few more checks
|
||||||
|
if (!(actor->flags & MF_ICECORPSE))
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (thing == actor)
|
if (thing == actor)
|
||||||
{ // Don't clip against self
|
{ // Don't clip against self
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -1940,7 +1940,7 @@ void AAmbientSound::Serialize (FArchive &arc)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
arc << NextCheck;
|
arc << NextCheck;
|
||||||
if (checktime != INT_MAX)
|
if (NextCheck != INT_MAX)
|
||||||
{
|
{
|
||||||
NextCheck += gametic;
|
NextCheck += gametic;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue