mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-01-15 19:22:21 +00:00
New MFE_DONTSLOPELAUNCH flag
Makes mobj immune to slope launching Also 32 bit eflags woo
This commit is contained in:
parent
f6488697f4
commit
cc79808aba
5 changed files with 17 additions and 4 deletions
|
|
@ -709,7 +709,7 @@ static int mobj_set(lua_State *L)
|
|||
mo->flags2 = (UINT32)luaL_checkinteger(L, 3);
|
||||
break;
|
||||
case mobj_eflags:
|
||||
mo->eflags = (UINT16)luaL_checkinteger(L, 3);
|
||||
mo->eflags = (UINT32)luaL_checkinteger(L, 3);
|
||||
break;
|
||||
case mobj_renderflags:
|
||||
mo->renderflags = (UINT32)luaL_checkinteger(L, 3);
|
||||
|
|
|
|||
|
|
@ -4138,6 +4138,8 @@ static void P_PlayerMobjThinker(mobj_t *mobj)
|
|||
mobj->eflags &= ~MFE_JUSTHITFLOOR;
|
||||
}
|
||||
|
||||
mobj->eflags &= ~MFE_DONTSLOPELAUNCH;
|
||||
|
||||
P_SquishThink(mobj);
|
||||
K_UpdateTerrainOverlay(mobj);
|
||||
|
||||
|
|
@ -10909,6 +10911,7 @@ void P_MobjThinker(mobj_t *mobj)
|
|||
P_ButteredSlope(mobj);
|
||||
}
|
||||
|
||||
mobj->eflags &= ~MFE_DONTSLOPELAUNCH;
|
||||
P_SquishThink(mobj);
|
||||
K_UpdateTerrainOverlay(mobj);
|
||||
|
||||
|
|
|
|||
|
|
@ -262,6 +262,8 @@ typedef enum
|
|||
MFE_SLOPELAUNCHED = 1<<14,
|
||||
// Thinker is paused due to hitlag
|
||||
MFE_PAUSED = 1<<15,
|
||||
// Don't launch off of slopes
|
||||
MFE_DONTSLOPELAUNCH = 1<<16,
|
||||
} mobjeflag_t;
|
||||
|
||||
//
|
||||
|
|
@ -339,7 +341,7 @@ struct mobj_t
|
|||
state_t *state;
|
||||
UINT32 flags; // flags from mobjinfo tables
|
||||
UINT32 flags2; // MF2_ flags
|
||||
UINT16 eflags; // extra flags
|
||||
UINT32 eflags; // extra flags
|
||||
|
||||
mtag_t tid;
|
||||
mobj_t *tid_next;
|
||||
|
|
|
|||
|
|
@ -3469,7 +3469,7 @@ static void SaveMobjThinker(savebuffer_t *save, const thinker_t *th, const UINT8
|
|||
WRITEUINT16(save->p, mobj->anim_duration);
|
||||
}
|
||||
if (diff & MD_EFLAGS)
|
||||
WRITEUINT16(save->p, mobj->eflags);
|
||||
WRITEUINT32(save->p, mobj->eflags);
|
||||
if (diff & MD_PLAYER)
|
||||
WRITEUINT8(save->p, mobj->player-players);
|
||||
if (diff & MD_MOVEDIR)
|
||||
|
|
@ -4744,7 +4744,7 @@ static thinker_t* LoadMobjThinker(savebuffer_t *save, actionf_p1 thinker)
|
|||
mobj->anim_duration = (UINT16)mobj->state->var2;
|
||||
}
|
||||
if (diff & MD_EFLAGS)
|
||||
mobj->eflags = READUINT16(save->p);
|
||||
mobj->eflags = READUINT32(save->p);
|
||||
if (diff & MD_PLAYER)
|
||||
{
|
||||
i = READUINT8(save->p);
|
||||
|
|
|
|||
|
|
@ -989,6 +989,14 @@ boolean P_CanApplySlopeLaunch(mobj_t *mo, pslope_t *slope)
|
|||
return false;
|
||||
}
|
||||
|
||||
if (mo->eflags & MFE_DONTSLOPELAUNCH)
|
||||
{
|
||||
CONS_Printf("MFE_DONTSLOPELAUNCH\n");
|
||||
mo->eflags &= ~MFE_DONTSLOPELAUNCH; // You get one cancelled launch
|
||||
// Don't launch off of slopes.
|
||||
return false;
|
||||
}
|
||||
|
||||
// We can do slope launching.
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue