mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
MT_FORWARDTRICK: Adjustments based on feedback
- Animate 4x as fast without flickering - Fix interp issues - Spawn additive trail of the final frame
This commit is contained in:
parent
2082a372df
commit
9bb1f56fa6
2 changed files with 21 additions and 22 deletions
|
|
@ -4684,7 +4684,7 @@ state_t states[NUMSTATES] =
|
||||||
|
|
||||||
{SPR_TRK5, FF_FULLBRIGHT|FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL}, // S_SIDETRICK,
|
{SPR_TRK5, FF_FULLBRIGHT|FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL}, // S_SIDETRICK,
|
||||||
{SPR_TRK6, FF_FULLBRIGHT|FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL}, // S_BACKTRICK,
|
{SPR_TRK6, FF_FULLBRIGHT|FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL}, // S_BACKTRICK,
|
||||||
{SPR_TRK7, FF_FULLBRIGHT|FF_PAPERSPRITE|FF_ANIMATE, -1, {NULL}, 6, 4, S_NULL}, // S_FORWARDTRICK,
|
{SPR_TRK7, FF_FULLBRIGHT|FF_PAPERSPRITE|FF_ANIMATE, -1, {NULL}, 6, 1, S_NULL}, // S_FORWARDTRICK,
|
||||||
|
|
||||||
{SPR_TIRG, FF_ANIMATE, -1, {NULL}, 1, 1, S_NULL}, // S_TIREGRABBER
|
{SPR_TIRG, FF_ANIMATE, -1, {NULL}, 1, 1, S_NULL}, // S_TIREGRABBER
|
||||||
{SPR_RSHT, FF_PAPERSPRITE|0, -1, {NULL}, 0, 0, S_NULL}, // S_RINGSHOOTER_SIDE
|
{SPR_RSHT, FF_PAPERSPRITE|0, -1, {NULL}, 0, 0, S_NULL}, // S_RINGSHOOTER_SIDE
|
||||||
|
|
|
||||||
41
src/p_mobj.c
41
src/p_mobj.c
|
|
@ -8551,32 +8551,17 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Flicker every other frame from first visibility
|
mobj->renderflags &= ~RF_DONTDRAW;
|
||||||
if (mobj->flags2 & MF2_BOSSDEAD)
|
mobj->renderflags |= (mobj->target->renderflags & RF_DONTDRAW);
|
||||||
{
|
|
||||||
mobj->renderflags |= RF_DONTDRAW;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
mobj->renderflags &= ~RF_DONTDRAW;
|
|
||||||
mobj->renderflags |= (mobj->target->renderflags & RF_DONTDRAW);
|
|
||||||
}
|
|
||||||
|
|
||||||
mobj->eflags = (mobj->eflags & ~MFE_VERTICALFLIP)|(mobj->target->eflags & MFE_VERTICALFLIP);
|
mobj->eflags = (mobj->eflags & ~MFE_VERTICALFLIP)|(mobj->target->eflags & MFE_VERTICALFLIP);
|
||||||
mobj->flags2 = ((mobj->flags2 & ~MF2_OBJECTFLIP)|(mobj->target->flags2 & MF2_OBJECTFLIP)) ^ MF2_BOSSDEAD;
|
mobj->flags2 = ((mobj->flags2 & ~MF2_OBJECTFLIP)|(mobj->target->flags2 & MF2_OBJECTFLIP)) ^ MF2_BOSSDEAD;
|
||||||
|
|
||||||
// sweeping effect
|
// sweeping effect
|
||||||
|
P_InstaScale(mobj, (6*mobj->target->scale)/5);
|
||||||
|
|
||||||
const fixed_t sweep = FixedMul(FRACUNIT - (mobj->threshold * 2), mobj->radius);
|
const fixed_t sweep = FixedMul(FRACUNIT - (mobj->threshold * 2), mobj->radius);
|
||||||
|
|
||||||
mobj->threshold += FRACUNIT/(7*4);
|
|
||||||
if (mobj->threshold > FRACUNIT)
|
|
||||||
{
|
|
||||||
mobj->threshold -= FRACUNIT;
|
|
||||||
mobj->flags2 |= MF2_AMBUSH;
|
|
||||||
}
|
|
||||||
|
|
||||||
P_InstaScale(mobj, mobj->target->scale);
|
|
||||||
|
|
||||||
destx = mobj->target->x;
|
destx = mobj->target->x;
|
||||||
desty = mobj->target->y;
|
desty = mobj->target->y;
|
||||||
|
|
||||||
|
|
@ -8588,9 +8573,9 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
||||||
desty += P_ReturnThrustY(mobj, mobj->movedir + ANGLE_90, sideways);
|
desty += P_ReturnThrustY(mobj, mobj->movedir + ANGLE_90, sideways);
|
||||||
|
|
||||||
if (mobj->eflags & MFE_VERTICALFLIP)
|
if (mobj->eflags & MFE_VERTICALFLIP)
|
||||||
zoff += mobj->target->height - (mobj->height + 18*mobj->scale);
|
zoff += mobj->target->height - (mobj->height + 18*mobj->target->scale);
|
||||||
else
|
else
|
||||||
zoff += 18*mobj->scale;
|
zoff += 18*mobj->target->scale;
|
||||||
|
|
||||||
// Necessary to "ride" on Garden Top
|
// Necessary to "ride" on Garden Top
|
||||||
zoff += mobj->target->sprzoff;
|
zoff += mobj->target->sprzoff;
|
||||||
|
|
@ -8604,6 +8589,20 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
||||||
{
|
{
|
||||||
P_MoveOrigin(mobj, destx, desty, mobj->target->z + zoff);
|
P_MoveOrigin(mobj, destx, desty, mobj->target->z + zoff);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mobj->threshold += FRACUNIT/6;
|
||||||
|
if (mobj->threshold > FRACUNIT)
|
||||||
|
{
|
||||||
|
mobj_t *puff = P_SpawnGhostMobj(mobj);
|
||||||
|
if (puff)
|
||||||
|
{
|
||||||
|
puff->renderflags = (puff->renderflags & ~RF_TRANSMASK)|RF_ADD;
|
||||||
|
}
|
||||||
|
|
||||||
|
mobj->threshold -= FRACUNIT;
|
||||||
|
mobj->flags2 |= MF2_AMBUSH;
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case MT_LIGHTNINGSHIELD:
|
case MT_LIGHTNINGSHIELD:
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue