This commit is contained in:
Christoph Oelckers 2013-08-10 10:21:00 +02:00
commit c88bf3108c
6 changed files with 126 additions and 101 deletions

View file

@ -331,6 +331,8 @@ enum
MF6_DOHARMSPECIES = 0x08000000, // Do hurt one's own species with projectiles.
MF6_INTRYMOVE = 0x10000000, // Executing P_TryMove
MF6_NOTAUTOAIMED = 0x20000000, // Do not subject actor to player autoaim.
MF6_NOTONAUTOMAP = 0x40000000, // will not be shown on automap with the 'scanner' powerup.
MF6_RELATIVETOFLOOR = 0x80000000, // [RC] Make flying actors be affected by lifts.
// --- mobj.renderflags ---

View file

@ -2615,6 +2615,8 @@ void AM_drawThings ()
{
t = sectors[i].thinglist;
while (t)
{
if (am_cheat > 0 || !(t->flags6 & MF6_NOTONAUTOMAP))
{
p.x = t->x >> FRACTOMAPBITS;
p.y = t->y >> FRACTOMAPBITS;
@ -2723,7 +2725,7 @@ void AM_drawThings ()
AM_drawLineCharacter (box, 4, t->radius >> FRACTOMAPBITS, angle - t->angle, color, p.x, p.y);
}
}
}
t = t->snext;
}
}

View file

@ -1697,7 +1697,7 @@ void APowerRegeneration::DoEffect()
{
if (Owner != NULL && Owner->health > 0 && (level.time & 31) == 0)
{
if (P_GiveBody(Owner, 5))
if (P_GiveBody(Owner, Strength))
{
S_Sound(Owner, CHAN_ITEM, "*regenerate", 1, ATTN_NORM );
}

View file

@ -5047,6 +5047,15 @@ void PIT_FloorDrop (AActor *thing, FChangePosition *cpos)
P_CheckFakeFloorTriggers (thing, oldz);
}
}
else if ((thing->z != oldfloorz && !(thing->flags & MF_NOLIFTDROP)))
{
fixed_t oldz = thing->z;
if ((thing->flags & MF_NOGRAVITY) && (thing->flags6 & MF6_RELATIVETOFLOOR))
{
thing->z = thing->z - oldfloorz + thing->floorz;
P_CheckFakeFloorTriggers (thing, oldz);
}
}
}
//=============================================================================
@ -5058,6 +5067,7 @@ void PIT_FloorDrop (AActor *thing, FChangePosition *cpos)
void PIT_FloorRaise (AActor *thing, FChangePosition *cpos)
{
fixed_t oldfloorz = thing->floorz;
fixed_t oldz = thing->z;
P_AdjustFloorCeil (thing, cpos);
@ -5072,8 +5082,17 @@ void PIT_FloorRaise (AActor *thing, FChangePosition *cpos)
return; // do not move bridge things
}
intersectors.Clear ();
fixed_t oldz = thing->z;
thing->z = thing->floorz;
}
else
{
if((thing->flags & MF_NOGRAVITY) && (thing->flags6 & MF6_RELATIVETOFLOOR))
{
intersectors.Clear ();
thing->z = thing->z - oldfloorz + thing->floorz;
}
else return;
}
switch (P_PushUp (thing, cpos))
{
default:
@ -5089,7 +5108,6 @@ void PIT_FloorRaise (AActor *thing, FChangePosition *cpos)
break;
}
}
}
//=============================================================================
//

View file

@ -234,6 +234,8 @@ static FFlagDef ActorFlags[]=
DEFINE_FLAG(MF6, DOHARMSPECIES, AActor, flags6),
DEFINE_FLAG(MF6, POISONALWAYS, AActor, flags6),
DEFINE_FLAG(MF6, NOTAUTOAIMED, AActor, flags6),
DEFINE_FLAG(MF6, NOTONAUTOMAP, AActor, flags6),
DEFINE_FLAG(MF6, RELATIVETOFLOOR, AActor, flags6),
// Effect flags
DEFINE_FLAG(FX, VISIBILITYPULSE, AActor, effects),

View file

@ -300,6 +300,7 @@ ACTOR PowerDrain : Powerup native
ACTOR PowerRegeneration : Powerup native
{
Powerup.Duration -120
Powerup.Strength 5
}
ACTOR PowerHighJump : Powerup native {}