mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-05 09:46:40 +00:00
Start on new flame shield dash visuals
This commit is contained in:
parent
88709aafaa
commit
81fa5d7f51
5 changed files with 86 additions and 10 deletions
|
|
@ -1887,6 +1887,7 @@ static actionpointer_t actionpointers[] =
|
|||
{{A_ReaperThinker}, "A_REAPERTHINKER"}, //SRB2kart
|
||||
{{A_MementosTPParticles}, "A_MEMENTOSTPPARTICLES"}, //SRB2kart
|
||||
{{A_FlameParticle}, "A_FLAMEPARTICLE"}, // SRB2kart
|
||||
{{A_FlameShieldPaper}, "A_FLAMESHIELDPAPER"}, // SRB2kart
|
||||
{{A_OrbitNights}, "A_ORBITNIGHTS"},
|
||||
{{A_GhostMe}, "A_GHOSTME"},
|
||||
{{A_SetObjectState}, "A_SETOBJECTSTATE"},
|
||||
|
|
@ -6700,7 +6701,17 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
|||
"S_FLAMESHIELD16",
|
||||
"S_FLAMESHIELD17",
|
||||
"S_FLAMESHIELD18",
|
||||
"S_FLAMESHIELDDASH",
|
||||
|
||||
"S_FLAMESHIELDDASH1",
|
||||
"S_FLAMESHIELDDASH2",
|
||||
"S_FLAMESHIELDDASH3",
|
||||
"S_FLAMESHIELDDASH4",
|
||||
"S_FLAMESHIELDDASH5",
|
||||
"S_FLAMESHIELDDASH6",
|
||||
"S_FLAMESHIELDDASH7",
|
||||
"S_FLAMESHIELDDASH8",
|
||||
|
||||
"S_FLAMESHIELDPAPER",
|
||||
|
||||
// The legend
|
||||
"S_SINK",
|
||||
|
|
|
|||
14
src/info.c
14
src/info.c
|
|
@ -58,7 +58,7 @@ char sprnames[NUMSPRITES + 1][5] =
|
|||
//SRB2kart Sprites
|
||||
"RNDM","RPOP","SGNS","FAST","DSHR","BOST","BOSM","KFRE","KINV","KINF",
|
||||
"WIPD","DRIF","BDRF","DUST","DRWS","RSHE","FITM","BANA","ORBN","JAWZ","SSMN",
|
||||
"KRBM","BHOG","BHBM","SPBM","THNS","BUBS","BWVE","FLMS","SINK","SITR",
|
||||
"KRBM","BHOG","BHBM","SPBM","THNS","BUBS","BWVE","FLMS","FLMD","FLMP","SINK","SITR",
|
||||
"KBLN","DEZL","POKE","AUDI","DECO","DOOD","SNES","GBAS","SPRS","BUZB",
|
||||
"CHOM","SACO","CRAB","BRNG","BUMP","FLEN","CLAS","PSHW","ISTA",
|
||||
"ISTB","ARRO","ITEM","ITMO","ITMI","ITMN","WANT","PBOM","HIT1","HIT2",
|
||||
|
|
@ -2918,7 +2918,17 @@ state_t states[NUMSTATES] =
|
|||
{SPR_FLMS, FF_FULLBRIGHT|16, 2, {NULL}, 0, 0, S_FLAMESHIELD17}, // S_FLAMESHIELD16
|
||||
{SPR_FLMS, FF_FULLBRIGHT|8, 2, {NULL}, 0, 0, S_FLAMESHIELD18}, // S_FLAMESHIELD17
|
||||
{SPR_FLMS, FF_FULLBRIGHT|17, 2, {NULL}, 0, 0, S_FLAMESHIELD1}, // S_FLAMESHIELD18
|
||||
{SPR_FLMS, FF_FULLBRIGHT|18, -1, {NULL}, 0, 0, S_FLAMESHIELDDASH}, // S_FLAMESHIELDDASH
|
||||
|
||||
{SPR_FLMD, FF_FULLBRIGHT|1, 1, {NULL}, 0, 0, S_FLAMESHIELDDASH2}, // S_FLAMESHIELDDASH1
|
||||
{SPR_FLMD, FF_FULLBRIGHT, 1, {A_FlameShieldPaper}, 0, 2, S_FLAMESHIELDDASH3}, // S_FLAMESHIELDDASH2
|
||||
{SPR_FLMD, FF_FULLBRIGHT|2, 1, {NULL}, 0, 0, S_FLAMESHIELDDASH4}, // S_FLAMESHIELDDASH3
|
||||
{SPR_FLMD, FF_FULLBRIGHT, 1, {A_FlameShieldPaper}, 1, 3, S_FLAMESHIELDDASH5}, // S_FLAMESHIELDDASH4
|
||||
{SPR_FLMD, FF_FULLBRIGHT|3, 1, {NULL}, 0, 0, S_FLAMESHIELDDASH6}, // S_FLAMESHIELDDASH5
|
||||
{SPR_FLMD, FF_FULLBRIGHT, 1, {A_FlameShieldPaper}, 2, 0, S_FLAMESHIELDDASH7}, // S_FLAMESHIELDDASH6
|
||||
{SPR_FLMD, FF_FULLBRIGHT|4, 1, {NULL}, 0, 0, S_FLAMESHIELDDASH8}, // S_FLAMESHIELDDASH7
|
||||
{SPR_FLMD, FF_FULLBRIGHT, 1, {A_FlameShieldPaper}, 3, 1, S_FLAMESHIELDDASH1}, // S_FLAMESHIELDDASH8
|
||||
|
||||
{SPR_FLMP, FF_FULLBRIGHT|FF_PAPERSPRITE, 2, {NULL}, 0, 0, S_NULL}, // S_FLAMESHIELDPAPER
|
||||
|
||||
{SPR_SINK, 0, 1, {A_SmokeTrailer}, MT_SINKTRAIL, 0, S_SINK}, // S_SINK
|
||||
{SPR_SINK, 0|FF_TRANS80|FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_SINK_SHIELD}, // S_SINK_SHIELD
|
||||
|
|
|
|||
15
src/info.h
15
src/info.h
|
|
@ -177,6 +177,7 @@ void A_MayonakaArrow(); //SRB2kart: midnight channel arrow sign
|
|||
void A_ReaperThinker(); //SRB2kart: mementos reaper
|
||||
void A_MementosTPParticles(); //SRB2kart: mementos teleporter particles. Man that's a lot of actions for my shite.
|
||||
void A_FlameParticle(); // SRB2kart
|
||||
void A_FlameShieldPaper();
|
||||
void A_OrbitNights();
|
||||
void A_GhostMe();
|
||||
void A_SetObjectState();
|
||||
|
|
@ -625,6 +626,8 @@ typedef enum sprite
|
|||
SPR_BUBS, // Bubble Shield (not Bubs)
|
||||
SPR_BWVE, // Bubble Shield waves
|
||||
SPR_FLMS, // Flame Shield
|
||||
SPR_FLMD, // Flame Shield dash
|
||||
SPR_FLMP, // Flame Shield paper sprites
|
||||
SPR_SINK, // Kitchen Sink
|
||||
SPR_SITR, // Kitchen Sink Trail
|
||||
SPR_KBLN, // Battle Mode Bumper
|
||||
|
|
@ -3595,7 +3598,17 @@ typedef enum state
|
|||
S_FLAMESHIELD16,
|
||||
S_FLAMESHIELD17,
|
||||
S_FLAMESHIELD18,
|
||||
S_FLAMESHIELDDASH,
|
||||
|
||||
S_FLAMESHIELDDASH1,
|
||||
S_FLAMESHIELDDASH2,
|
||||
S_FLAMESHIELDDASH3,
|
||||
S_FLAMESHIELDDASH4,
|
||||
S_FLAMESHIELDDASH5,
|
||||
S_FLAMESHIELDDASH6,
|
||||
S_FLAMESHIELDDASH7,
|
||||
S_FLAMESHIELDDASH8,
|
||||
|
||||
S_FLAMESHIELDPAPER,
|
||||
|
||||
// The legend
|
||||
S_SINK,
|
||||
|
|
|
|||
|
|
@ -203,6 +203,7 @@ void A_MayonakaArrow(mobj_t *actor); //SRB2kart
|
|||
void A_ReaperThinker(mobj_t *actor); //SRB2kart
|
||||
void A_MementosTPParticles(mobj_t *actor); //SRB2kart
|
||||
void A_FlameParticle(mobj_t *actor); // SRB2kart
|
||||
void A_FlameShieldPaper(mobj_t *actor); // SRB2kart
|
||||
void A_OrbitNights(mobj_t *actor);
|
||||
void A_GhostMe(mobj_t *actor);
|
||||
void A_SetObjectState(mobj_t *actor);
|
||||
|
|
@ -9328,6 +9329,49 @@ void A_FlameParticle(mobj_t *actor)
|
|||
par->momz = actor->scale<<1;
|
||||
}
|
||||
|
||||
void A_FlameShieldPaper(mobj_t *actor)
|
||||
{
|
||||
INT32 framea = 0;
|
||||
INT32 frameb = 0;
|
||||
INT32 locvar1 = var1;
|
||||
INT32 locvar2 = var2;
|
||||
UINT8 i;
|
||||
|
||||
#ifdef HAVE_BLUA
|
||||
if (LUA_CallAction("A_FlameShieldPaper", actor))
|
||||
return;
|
||||
#endif
|
||||
|
||||
framea = (locvar1 & FF_FRAMEMASK);
|
||||
frameb = (locvar2 & FF_FRAMEMASK);
|
||||
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
INT32 perpendicular = ((i & 1) ? -ANGLE_90 : ANGLE_90);
|
||||
fixed_t newx = actor->x + P_ReturnThrustX(NULL, actor->angle + perpendicular, 8*actor->scale);
|
||||
fixed_t newy = actor->y + P_ReturnThrustY(NULL, actor->angle + perpendicular, 8*actor->scale);
|
||||
mobj_t *paper = P_SpawnMobj(newx + actor->momx, newy + actor->momy, actor->z + actor->momz, MT_THOK);
|
||||
|
||||
P_SetScale(paper, actor->scale);
|
||||
paper->destscale = actor->destscale;
|
||||
|
||||
P_SetMobjState(paper, S_FLAMESHIELDPAPER);
|
||||
paper->frame &= ~FF_FRAMEMASK;
|
||||
|
||||
paper->angle = actor->angle + ANGLE_45;
|
||||
|
||||
if (i & 1)
|
||||
{
|
||||
paper->angle -= ANGLE_90;
|
||||
paper->frame |= frameb;
|
||||
}
|
||||
else
|
||||
{
|
||||
paper->frame |= framea;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//}
|
||||
|
||||
// Function: A_OrbitNights
|
||||
|
|
|
|||
10
src/p_mobj.c
10
src/p_mobj.c
|
|
@ -8603,15 +8603,13 @@ void P_MobjThinker(mobj_t *mobj)
|
|||
|
||||
if (mobj->target->player->kartstuff[k_flamedash])
|
||||
{
|
||||
if (curstate != S_FLAMESHIELDDASH)
|
||||
P_SetMobjState(mobj, S_FLAMESHIELDDASH);
|
||||
mobj->flags2 ^= MF2_DONTDRAW;
|
||||
if (!(curstate >= S_FLAMESHIELDDASH1 && curstate <= S_FLAMESHIELDDASH8))
|
||||
P_SetMobjState(mobj, S_FLAMESHIELDDASH1);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (curstate == S_FLAMESHIELDDASH)
|
||||
if (curstate >= S_FLAMESHIELDDASH1 && curstate <= S_FLAMESHIELDDASH8)
|
||||
P_SetMobjState(mobj, S_FLAMESHIELD1);
|
||||
mobj->flags2 &= ~MF2_DONTDRAW;
|
||||
}
|
||||
|
||||
if (!splitscreen /*&& rendermode != render_soft*/)
|
||||
|
|
@ -8625,7 +8623,7 @@ void P_MobjThinker(mobj_t *mobj)
|
|||
else
|
||||
viewingangle = R_PointToAngle2(mobj->target->x, mobj->target->y, camera[0].x, camera[0].y);
|
||||
|
||||
if (curstate >= S_FLAMESHIELD1 && curstate < S_FLAMESHIELDDASH && ((curstate-S_FLAMESHIELD1) & 1))
|
||||
if (curstate >= S_FLAMESHIELD1 && curstate < S_FLAMESHIELDDASH1 && ((curstate-S_FLAMESHIELD1) & 1))
|
||||
viewingangle += ANGLE_180;
|
||||
|
||||
destx = mobj->target->x + P_ReturnThrustX(mobj->target, viewingangle, mobj->scale>>4);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue