mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Introduce MT_OVERLAY exception flags
- Applied via threshold of Overlay mobj
- OV_DONTSCREENOFFSET
- spritexoffset, spriteyoffset
- Given to Item Capsule quantity numbers
- OV_DONT3DOFFSET
- sprxoffset, spryoffset, sprzoffset
- OV_DONTXYSCALE
- spritexscale, spriteyscale
- OV_DONTROLL
- rollangle, pitch, roll
Makes overlay on UFO emerald follow the emerald's spriteyoffset now
This commit is contained in:
parent
cf609113f3
commit
c7525fb5a6
3 changed files with 37 additions and 12 deletions
|
|
@ -6443,6 +6443,12 @@ struct int_const_s const INT_CONST[] = {
|
|||
// {"JT_RACENT",JT_RACENT},
|
||||
// {"JT_CONTSC",JT_CONTSC},
|
||||
|
||||
// Overlay exception settings
|
||||
{"OV_DONTSCREENOFFSET", OV_DONTSCREENOFFSET},
|
||||
{"OV_DONT3DOFFSET", OV_DONT3DOFFSET},
|
||||
{"OV_DONTXYSCALE", OV_DONTXYSCALE},
|
||||
{"OV_DONTROLL", OV_DONTROLL},
|
||||
|
||||
// Player state (playerstate_t)
|
||||
{"PST_LIVE",PST_LIVE}, // Playing or camping.
|
||||
{"PST_DEAD",PST_DEAD}, // Dead on the ground, view follows killer.
|
||||
|
|
|
|||
|
|
@ -295,7 +295,13 @@ boolean P_MobjWasRemoved(mobj_t *th);
|
|||
void P_RemoveSavegameMobj(mobj_t *th);
|
||||
boolean P_SetPlayerMobjState(mobj_t *mobj, statenum_t state);
|
||||
boolean P_SetMobjState(mobj_t *mobj, statenum_t state);
|
||||
|
||||
void P_RunOverlays(void);
|
||||
#define OV_DONTSCREENOFFSET 1
|
||||
#define OV_DONT3DOFFSET 1<<1
|
||||
#define OV_DONTXYSCALE 1<<2
|
||||
#define OV_DONTROLL 1<<3
|
||||
|
||||
void P_HandleMinecartSegments(mobj_t *mobj);
|
||||
void P_MobjThinker(mobj_t *mobj);
|
||||
boolean P_RailThinker(mobj_t *mobj);
|
||||
|
|
|
|||
37
src/p_mobj.c
37
src/p_mobj.c
|
|
@ -4406,6 +4406,7 @@ static void P_RefreshItemCapsuleParts(mobj_t *mobj)
|
|||
P_SetMobjState(part->tracer, S_INVISIBLE);
|
||||
part->tracer->spriteyoffset = 10*FRACUNIT;
|
||||
part->tracer->spritexoffset = 13*numNumbers*FRACUNIT;
|
||||
part->threshold = OV_DONTSCREENOFFSET;
|
||||
}
|
||||
part = part->tracer;
|
||||
part->sprite = SPR_ITMN;
|
||||
|
|
@ -5310,20 +5311,32 @@ void P_RunOverlays(void)
|
|||
mo->eflags = (mo->eflags & ~MFE_VERTICALFLIP) | (mo->target->eflags & MFE_VERTICALFLIP);
|
||||
mo->scale = mo->destscale = FixedMul(mo->target->scale, mo->movefactor);
|
||||
mo->angle = (mo->target->player ? mo->target->player->drawangle : mo->target->angle) + mo->movedir;
|
||||
mo->rollangle = mo->target->rollangle;
|
||||
mo->pitch = mo->target->pitch;
|
||||
mo->roll = mo->target->roll;
|
||||
|
||||
#if 0
|
||||
mo->spritexoffset = mo->target->spritexoffset;
|
||||
mo->spriteyoffset = mo->target->spriteyoffset;
|
||||
mo->spritexscale = mo->target->spritexscale;
|
||||
mo->spriteyscale = mo->target->spriteyscale;
|
||||
if (!(mo->threshold & OV_DONTSCREENOFFSET))
|
||||
{
|
||||
mo->spritexoffset = mo->target->spritexoffset;
|
||||
mo->spriteyoffset = mo->target->spriteyoffset;
|
||||
}
|
||||
|
||||
mo->sprxoff = mo->target->sprxoff;
|
||||
mo->spryoff = mo->target->spryoff;
|
||||
mo->sprzoff = mo->target->sprzoff;
|
||||
#endif
|
||||
if (!(mo->threshold & OV_DONT3DOFFSET))
|
||||
{
|
||||
mo->sprxoff = mo->target->sprxoff;
|
||||
mo->spryoff = mo->target->spryoff;
|
||||
mo->sprzoff = mo->target->sprzoff;
|
||||
}
|
||||
|
||||
if (!(mo->threshold & OV_DONTXYSCALE))
|
||||
{
|
||||
mo->spritexscale = mo->target->spritexscale;
|
||||
mo->spriteyscale = mo->target->spriteyscale;
|
||||
}
|
||||
|
||||
if (!(mo->threshold & OV_DONTROLL))
|
||||
{
|
||||
mo->rollangle = mo->target->rollangle;
|
||||
mo->pitch = mo->target->pitch;
|
||||
mo->roll = mo->target->roll;
|
||||
}
|
||||
|
||||
mo->hitlag = mo->target->hitlag;
|
||||
mo->eflags = (mo->eflags & ~MFE_DAMAGEHITLAG) | (mo->target->eflags & MFE_DAMAGEHITLAG);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue