- Added a SECF_NORESPAWN flag for sectors that prevents players from being respawned

in such a sector. As a workaround for current map formats a new actor
  (DoomEdNum 9041) was added that can set the extended sector flags without the
  use of ACS and sector tags. The new flag can also be set with Sector_ChangeFlags.
- Fixed: Players ignored MF2_TELESTOMP and always telefragged what was in the way.
- Fixed: Actors with MF5_NOINTERACTION were not affected by the time freezer.


SVN r1315 (trunk)
This commit is contained in:
Christoph Oelckers 2008-12-14 19:12:41 +00:00
commit bd9e318863
9 changed files with 65 additions and 5 deletions

View file

@ -2484,7 +2484,20 @@ void AActor::Tick ()
if (flags5 & MF5_NOINTERACTION)
{
// only do the minimally necessary things here to save time.
// only do the minimally necessary things here to save time:
// Check the time freezer
// apply momentum
// ensure that the actor is not linked into the blockmap
if (!(flags5 & MF5_NOTIMEFREEZE))
{
//Added by MC: Freeze mode.
if (bglobal.freeze || level.flags & LEVEL_FROZEN)
{
return;
}
}
UnlinkFromWorld ();
flags |= MF_NOBLOCKMAP;
x += momx;
@ -2524,6 +2537,7 @@ void AActor::Tick ()
}
}
if (cl_rockettrails & 2)
{
if (effects & FX_ROCKET)
@ -3464,6 +3478,7 @@ APlayerPawn *P_SpawnPlayer (FMapThing *mthing, bool tempplayer)
( deathmatch == false ) &&
( gameaction != ga_worlddone ) &&
( p->mo != NULL ) &&
( !(p->mo->Sector->Flags & SECF_NORESPAWN) ) &&
( (p->mo->Sector->special & 255) != Damage_InstantDeath ))
{
spawn_x = p->mo->x;