- fixed: A_CountdownArg used 0 based indices although all uses of it assumed

it is 1-based.
- added MF5_DONTRIP flag.
- added CheckActorFloorTexture, CheckActorCeilingTexture and
  GetActorLightLevel ACS functions.
- added IF_ADDITIVETIME flag to create powerups that add their duration
  to the one of the currently active item of the same type.
- fixed: bouncecount wasn't decreased when bouncing on walls.
- Added MF5_ALWAYSRESPAWN and MF5_NEVERRESPAWN flags that selectively
  enable or disable monster respawning regardless of skill setting.
- Prettified deprecated flag handling.


SVN r780 (trunk)
This commit is contained in:
Christoph Oelckers 2008-03-01 16:59:17 +00:00
commit 5589f6b7a1
10 changed files with 107 additions and 25 deletions

View file

@ -2963,8 +2963,15 @@ void AActor::Tick ()
{
int respawn_monsters = G_SkillProperty(SKILLP_Respawn);
// check for nightmare respawn
if (!respawn_monsters || !(flags3 & MF3_ISMONSTER) || (flags2 & MF2_DORMANT))
return;
if (!(flags5 & MF5_ALWAYSRESPAWN))
{
if (!respawn_monsters || !(flags3 & MF3_ISMONSTER) || (flags2 & MF2_DORMANT) || (flags5 & MF5_NEVERRESPAWN))
return;
int limit = G_SkillProperty (SKILLP_RespawnLimit);
if (limit > 0 && skillrespawncount >= limit)
return;
}
movecount++;
@ -2977,9 +2984,6 @@ void AActor::Tick ()
if (pr_nightmarerespawn() > 4)
return;
if (G_SkillProperty (SKILLP_RespawnLimit) && (this)->skillrespawncount >= G_SkillProperty (SKILLP_RespawnLimit))
return;
P_NightmareRespawn (this);
}
}
@ -4405,7 +4409,7 @@ bool P_CheckMissileSpawn (AActor* th)
if (!P_TryMove (th, th->x, th->y, false))
{
// [RH] Don't explode ripping missiles that spawn inside something
if (BlockingMobj == NULL || !(th->flags2 & MF2_RIP))
if (BlockingMobj == NULL || !(th->flags2 & MF2_RIP) || (BlockingMobj->flags5 & MF5_DONTRIP))
{
// If this is a monster spawned by A_CustomMissile subtract it from the counter.
if (th->CountsAsKill())