- Added the MF6_STEPMISSILE flag so that the Whirlwind can "walk" up steps.

- Changed the dword definition of PalEntry to uint32 so that it has one
  consistent definition across all source files.


SVN r1752 (trunk)
This commit is contained in:
Randy Heit 2009-08-05 01:13:41 +00:00
parent 9764532d8b
commit 3e388acc15
6 changed files with 13 additions and 7 deletions

View file

@ -1,4 +1,7 @@
August 4, 2009
- Added the MF6_STEPMISSILE flag so that the Whirlwind can "walk" up steps.
- Changed the dword definition of PalEntry to uint32 so that it has one
consistent definition across all source files.
- Swapped the order of floor and ceiling moves in DElevator::Tick() so that
if an elevator contains an actor exactly the same height as it, it will not
be blocked.

View file

@ -311,6 +311,7 @@ enum
MF6_NOFEAR = 0x00000010, // Not scared of frightening players
MF6_BUMPSPECIAL = 0x00000020, // Actor executes its special when being collided (as the ST flag)
MF6_DONTHARMSPECIES = 0x00000040, // Don't hurt one's own species with explosions (hitscans, too?)
MF6_STEPMISSILE = 0x00000080, // Missile can "walk" up steps
// --- mobj.renderflags ---

View file

@ -155,9 +155,9 @@ enum
struct PalEntry
{
PalEntry () {}
PalEntry (DWORD argb) { d = argb; }
operator DWORD () const { return d; }
PalEntry &operator= (DWORD other) { d = other; return *this; }
PalEntry (uint32 argb) { d = argb; }
operator uint32 () const { return d; }
PalEntry &operator= (uint32 other) { d = other; return *this; }
PalEntry InverseColor() const { PalEntry nc; nc.a = a; nc.r = 255 - r; nc.g = 255 - g; nc.b = 255 - b; return nc; }
#ifdef WORDS_BIGENDIAN
PalEntry (BYTE ir, BYTE ig, BYTE ib) : a(0), r(ir), g(ig), b(ib) {}
@ -168,7 +168,7 @@ struct PalEntry
{
BYTE a,r,g,b;
};
DWORD d;
uint32 d;
};
#else
PalEntry (BYTE ir, BYTE ig, BYTE ib) : b(ib), g(ig), r(ir), a(0) {}
@ -179,7 +179,7 @@ struct PalEntry
{
BYTE b,g,r,a;
};
DWORD d;
uint32 d;
};
#endif
};

View file

@ -1606,7 +1606,7 @@ bool P_TryMove (AActor *thing, fixed_t x, fixed_t y,
{ // too big a step up
goto pushline;
}
else if ((thing->flags & MF_MISSILE) && tm.floorz > thing->z)
else if ((thing->flags & MF_MISSILE)&& !(thing->flags6 && MF6_STEPMISSILE) && tm.floorz > thing->z)
{ // [RH] Don't let normal missiles climb steps
goto pushline;
}
@ -1910,7 +1910,7 @@ bool P_CheckMove(AActor *thing, fixed_t x, fixed_t y)
{ // too big a step up
return false;
}
else if ((thing->flags & MF_MISSILE) && tm.floorz > newz)
else if ((thing->flags & MF_MISSILE) && !(thing->flags6 && MF6_STEPMISSILE) && tm.floorz > newz)
{ // [RH] Don't let normal missiles climb steps
return false;
}

View file

@ -217,6 +217,7 @@ static FFlagDef ActorFlags[]=
DEFINE_FLAG(MF6, NOFEAR, AActor, flags6),
DEFINE_FLAG(MF6, BUMPSPECIAL, AActor, flags6),
DEFINE_FLAG(MF6, DONTHARMSPECIES, AActor, flags6),
DEFINE_FLAG(MF6, STEPMISSILE, AActor, flags6),
// Effect flags
DEFINE_FLAG(FX, VISIBILITYPULSE, AActor, effects),

View file

@ -154,6 +154,7 @@ ACTOR Whirlwind native
-ACTIVATEMCROSS
+SEEKERMISSILE
+EXPLOCOUNT
+StepMissile
RenderStyle Translucent
Alpha 0.4