Legacy mode for ghost objects
This commit is contained in:
parent
324bd3b117
commit
dc9ee0bc95
4 changed files with 13 additions and 6 deletions
|
|
@ -1372,7 +1372,7 @@ static int lib_pSpawnGhostMobj(lua_State *L)
|
||||||
INLEVEL
|
INLEVEL
|
||||||
if (!mobj)
|
if (!mobj)
|
||||||
return LUA_ErrInvalid(L, "mobj_t");
|
return LUA_ErrInvalid(L, "mobj_t");
|
||||||
LUA_PushUserdata(L, P_SpawnGhostMobj(mobj), META_MOBJ);
|
LUA_PushUserdata(L, P_SpawnGhostMobjEX(mobj, lua_compatmode), META_MOBJ);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -200,7 +200,8 @@ boolean P_PlayerHitFloor(player_t *player, boolean fromAir);
|
||||||
void P_SetObjectMomZ(mobj_t *mo, fixed_t value, boolean relative);
|
void P_SetObjectMomZ(mobj_t *mo, fixed_t value, boolean relative);
|
||||||
void P_RestoreMusic(player_t *player);
|
void P_RestoreMusic(player_t *player);
|
||||||
boolean P_EndingMusic(player_t *player);
|
boolean P_EndingMusic(player_t *player);
|
||||||
mobj_t *P_SpawnGhostMobj(mobj_t *mobj);
|
mobj_t *P_SpawnGhostMobjEX(mobj_t *mobj, boolean legacy);
|
||||||
|
#define P_SpawnGhostMobj(mobj) P_SpawnGhostMobjEX(mobj, false)
|
||||||
INT32 P_GivePlayerRings(player_t *player, INT32 num_rings);
|
INT32 P_GivePlayerRings(player_t *player, INT32 num_rings);
|
||||||
void P_GivePlayerLives(player_t *player, INT32 numlives);
|
void P_GivePlayerLives(player_t *player, INT32 numlives);
|
||||||
UINT8 P_GetNextEmerald(void);
|
UINT8 P_GetNextEmerald(void);
|
||||||
|
|
|
||||||
|
|
@ -10557,7 +10557,7 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else if (mobj->extravalue3 <= 0) // Legacy mode bypasses this visibility system.
|
||||||
{
|
{
|
||||||
UINT32 dur = (mobj->flags2 & MF2_BOSSNOTRAP)
|
UINT32 dur = (mobj->flags2 & MF2_BOSSNOTRAP)
|
||||||
? (2*mobj->fuse)/3
|
? (2*mobj->fuse)/3
|
||||||
|
|
|
||||||
12
src/p_user.c
12
src/p_user.c
|
|
@ -1182,11 +1182,11 @@ boolean P_IsDisplayPlayer(player_t *player)
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// P_SpawnGhostMobj
|
// P_SpawnGhostMobjEX
|
||||||
//
|
//
|
||||||
// Spawns a ghost object on the player
|
// Spawns a ghost object on the player. Has an option for "legacy mode".
|
||||||
//
|
//
|
||||||
mobj_t *P_SpawnGhostMobj(mobj_t *mobj)
|
mobj_t *P_SpawnGhostMobjEX(mobj_t *mobj, boolean legacy)
|
||||||
{
|
{
|
||||||
mobj_t *ghost = P_SpawnMobj(mobj->x, mobj->y, mobj->z, MT_GHOST);
|
mobj_t *ghost = P_SpawnMobj(mobj->x, mobj->y, mobj->z, MT_GHOST);
|
||||||
|
|
||||||
|
|
@ -1264,6 +1264,12 @@ mobj_t *P_SpawnGhostMobj(mobj_t *mobj)
|
||||||
ghost->old_spritexoffset = mobj->old_spritexoffset2;
|
ghost->old_spritexoffset = mobj->old_spritexoffset2;
|
||||||
ghost->old_spriteyoffset = mobj->old_spriteyoffset2;
|
ghost->old_spriteyoffset = mobj->old_spriteyoffset2;
|
||||||
|
|
||||||
|
// Legacy mode
|
||||||
|
if (legacy)
|
||||||
|
{
|
||||||
|
ghost->extravalue3 = 1;
|
||||||
|
}
|
||||||
|
|
||||||
return ghost;
|
return ghost;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue