mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2024-11-10 23:01:59 +00:00
- Added two new MAPINFO flags to control what actor activates impact lines:
* MissileShootersActivateImpactLines - the current behavior. * MissilesActivateImpactLines - the original Hexen behavior. SVN r477 (trunk)
This commit is contained in:
parent
26b886b960
commit
7c2fc08f35
4 changed files with 26 additions and 7 deletions
|
@ -1,4 +1,7 @@
|
|||
February 3, 2007
|
||||
- Added two new MAPINFO flags to control what actor activates impact lines:
|
||||
* MissileShootersActivateImpactLines - the current behavior.
|
||||
* MissilesActivateImpactLines - the original Hexen behavior.
|
||||
- Fixed: The changecamera special should remove "past viewer" information
|
||||
from the renderer in case the camera changed position or direction since
|
||||
the last time it was looked through. Otherwise, the renderer will
|
||||
|
|
|
@ -242,6 +242,8 @@ static const char *MapInfoMapLevel[] =
|
|||
"filterstarts",
|
||||
"activateowndeathspecials",
|
||||
"killeractivatesdeathspecials",
|
||||
"missilesactivateimpactlines",
|
||||
"missileshootersactivetimpactlines",
|
||||
"noinventorybar",
|
||||
"deathslideshow",
|
||||
"redirect",
|
||||
|
@ -373,6 +375,8 @@ MapHandlers[] =
|
|||
{ MITYPE_SETFLAG, LEVEL_FILTERSTARTS, 0 },
|
||||
{ MITYPE_SETFLAG, LEVEL_ACTOWNSPECIAL, 0 },
|
||||
{ MITYPE_CLRFLAG, LEVEL_ACTOWNSPECIAL, 0 },
|
||||
{ MITYPE_SETFLAG, LEVEL_MISSILESACTIVATEIMPACT, 0 },
|
||||
{ MITYPE_CLRFLAG, LEVEL_MISSILESACTIVATEIMPACT, 0 },
|
||||
{ MITYPE_SETFLAG, LEVEL_NOINVENTORYBAR, 0 },
|
||||
{ MITYPE_SETFLAG, LEVEL_DEATHSLIDESHOW, 0 },
|
||||
{ MITYPE_REDIRECT, lioffset(RedirectMap), 0 },
|
||||
|
@ -562,7 +566,7 @@ static void G_DoParseMapInfo (int lump)
|
|||
|
||||
SetLevelDefaults (&defaultinfo);
|
||||
SC_OpenLumpNum (lump, "MAPINFO");
|
||||
HexenHack=false;
|
||||
HexenHack = false;
|
||||
|
||||
while (SC_GetString ())
|
||||
{
|
||||
|
@ -584,12 +588,14 @@ static void G_DoParseMapInfo (int lump)
|
|||
sprintf (sc_String, "MAP%02d", map);
|
||||
HexenHack = true;
|
||||
// Hexen levels are automatically nointermission,
|
||||
// no auto sound sequences, falling damage, and
|
||||
// monsters activate their own specials.
|
||||
// no auto sound sequences, falling damage,
|
||||
// monsters activate their own specials, and missiles
|
||||
// are always the activators of impact lines.
|
||||
levelflags |= LEVEL_NOINTERMISSION
|
||||
| LEVEL_SNDSEQTOTALCTRL
|
||||
| LEVEL_FALLDMG_HX
|
||||
| LEVEL_ACTOWNSPECIAL;
|
||||
| LEVEL_ACTOWNSPECIAL
|
||||
| LEVEL_MISSILESACTIVATEIMPACT;
|
||||
}
|
||||
levelindex = FindWadLevelInfo (sc_String);
|
||||
if (levelindex == -1)
|
||||
|
|
|
@ -92,7 +92,9 @@
|
|||
|
||||
#define LEVEL_LAXMONSTERACTIVATION UCONST64(0x400000000) // Monsters can open doors depending on the door speed
|
||||
#define LEVEL_LAXACTIVATIONMAPINFO UCONST64(0x800000000) // LEVEL_LAXMONSTERACTIVATION is not a default.
|
||||
// some unused bits here!
|
||||
|
||||
#define LEVEL_MISSILESACTIVATEIMPACT UCONST64(0x1000000000) // Missiles are the activators of SPAC_IMPACT events, not their shooters
|
||||
// an unused bit here!
|
||||
|
||||
#define LEVEL_KEEPFULLINVENTORY UCONST64(0x4000000000) // doesn't reduce the amount of inventory items to 1
|
||||
|
||||
|
|
|
@ -1539,8 +1539,16 @@ static void CheckForPushSpecial (line_t *line, int side, AActor *mobj)
|
|||
}
|
||||
else if (mobj->flags2 & MF2_IMPACT)
|
||||
{
|
||||
P_ActivateLine (line, ((mobj->flags & MF_MISSILE) && (mobj->target != NULL))
|
||||
? mobj->target : mobj, side, SPAC_IMPACT);
|
||||
if ((level.flags & LEVEL_MISSILESACTIVATEIMPACT) ||
|
||||
!(mobj->flags & MF_MISSILE) ||
|
||||
(mobj->target == NULL))
|
||||
{
|
||||
P_ActivateLine (line, mobj, side, SPAC_IMPACT);
|
||||
}
|
||||
else
|
||||
{
|
||||
P_ActivateLine (line, mobj->target, side, SPAC_IMPACT);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue