mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-01-04 06:02:54 +00:00
Merge branch 'flame-visual' into 'master'
Firework frames for fire shield See merge request KartKrew/Kart!226
This commit is contained in:
commit
26646e57e3
4 changed files with 85 additions and 12 deletions
|
|
@ -6710,6 +6710,15 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
|||
"S_FLAMESHIELDDASH6",
|
||||
"S_FLAMESHIELDDASH7",
|
||||
"S_FLAMESHIELDDASH8",
|
||||
"S_FLAMESHIELDDASH9",
|
||||
"S_FLAMESHIELDDASH10",
|
||||
"S_FLAMESHIELDDASH11",
|
||||
"S_FLAMESHIELDDASH12",
|
||||
|
||||
"S_FLAMESHIELDDASH2_UNDERLAY",
|
||||
"S_FLAMESHIELDDASH5_UNDERLAY",
|
||||
"S_FLAMESHIELDDASH8_UNDERLAY",
|
||||
"S_FLAMESHIELDDASH11_UNDERLAY",
|
||||
|
||||
"S_FLAMESHIELDPAPER",
|
||||
"S_FLAMESHIELDLINE1",
|
||||
|
|
@ -7876,6 +7885,7 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
|
|||
"MT_THUNDERSHIELD", // Shields
|
||||
"MT_BUBBLESHIELD",
|
||||
"MT_FLAMESHIELD",
|
||||
"MT_FLAMESHIELDUNDERLAY",
|
||||
"MT_FLAMESHIELDPAPER",
|
||||
"MT_BUBBLESHIELDTRAP",
|
||||
|
||||
|
|
|
|||
56
src/info.c
56
src/info.c
|
|
@ -2921,16 +2921,25 @@ state_t states[NUMSTATES] =
|
|||
{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_FLMD, FF_FULLBRIGHT|1, 2, {NULL}, 0, 0, S_FLAMESHIELDDASH2}, // S_FLAMESHIELDDASH1
|
||||
{SPR_FLMD, FF_FULLBRIGHT, 2, {A_FlameShieldPaper}, 0, 2, S_FLAMESHIELDDASH3}, // S_FLAMESHIELDDASH2
|
||||
{SPR_FLMD, FF_FULLBRIGHT|2, 2, {NULL}, 0, 0, S_FLAMESHIELDDASH4}, // S_FLAMESHIELDDASH3
|
||||
{SPR_FLMD, FF_FULLBRIGHT, 2, {A_FlameShieldPaper}, 1, 3, S_FLAMESHIELDDASH5}, // S_FLAMESHIELDDASH4
|
||||
{SPR_FLMD, FF_FULLBRIGHT|3, 2, {NULL}, 0, 0, S_FLAMESHIELDDASH6}, // S_FLAMESHIELDDASH5
|
||||
{SPR_FLMD, FF_FULLBRIGHT, 2, {A_FlameShieldPaper}, 2, 0, S_FLAMESHIELDDASH7}, // S_FLAMESHIELDDASH6
|
||||
{SPR_FLMD, FF_FULLBRIGHT|4, 2, {NULL}, 0, 0, S_FLAMESHIELDDASH8}, // S_FLAMESHIELDDASH7
|
||||
{SPR_FLMD, FF_FULLBRIGHT, 2, {A_FlameShieldPaper}, 3, 1, S_FLAMESHIELDDASH1}, // S_FLAMESHIELDDASH8
|
||||
{SPR_FLMD, FF_FULLBRIGHT|1, 1, {NULL}, 0, 0, S_FLAMESHIELDDASH2}, // S_FLAMESHIELDDASH1
|
||||
{SPR_FLMD, FF_FULLBRIGHT|5, 1, {NULL}, 0, 0, S_FLAMESHIELDDASH3}, // S_FLAMESHIELDDASH2
|
||||
{SPR_FLMD, FF_FULLBRIGHT, 1, {A_FlameShieldPaper}, 0, 2, S_FLAMESHIELDDASH4}, // S_FLAMESHIELDDASH3
|
||||
{SPR_FLMD, FF_FULLBRIGHT|2, 1, {NULL}, 0, 0, S_FLAMESHIELDDASH5}, // S_FLAMESHIELDDASH4
|
||||
{SPR_FLMD, FF_FULLBRIGHT|6, 1, {NULL}, 0, 0, S_FLAMESHIELDDASH6}, // S_FLAMESHIELDDASH5
|
||||
{SPR_FLMD, FF_FULLBRIGHT, 1, {A_FlameShieldPaper}, 1, 3, S_FLAMESHIELDDASH7}, // S_FLAMESHIELDDASH6
|
||||
{SPR_FLMD, FF_FULLBRIGHT|3, 1, {NULL}, 0, 0, S_FLAMESHIELDDASH8}, // S_FLAMESHIELDDASH7
|
||||
{SPR_FLMD, FF_FULLBRIGHT|7, 1, {NULL}, 0, 0, S_FLAMESHIELDDASH9}, // S_FLAMESHIELDDASH8
|
||||
{SPR_FLMD, FF_FULLBRIGHT, 1, {A_FlameShieldPaper}, 2, 0, S_FLAMESHIELDDASH10}, // S_FLAMESHIELDDASH9
|
||||
{SPR_FLMD, FF_FULLBRIGHT|4, 1, {NULL}, 0, 0, S_FLAMESHIELDDASH11}, // S_FLAMESHIELDDASH10
|
||||
{SPR_FLMD, FF_FULLBRIGHT|8, 1, {NULL}, 0, 0, S_FLAMESHIELDDASH12}, // S_FLAMESHIELDDASH11
|
||||
{SPR_FLMD, FF_FULLBRIGHT, 1, {A_FlameShieldPaper}, 3, 1, S_FLAMESHIELDDASH1}, // S_FLAMESHIELDDASH12
|
||||
|
||||
{SPR_FLMP, FF_FULLBRIGHT|FF_PAPERSPRITE, 3, {NULL}, 0, 0, S_NULL}, // S_FLAMESHIELDPAPER
|
||||
{SPR_FLMD, FF_FULLBRIGHT|9, 2, {NULL}, 0, 0, S_NULL}, // S_FLAMESHIELDDASH2_UNDERLAY
|
||||
{SPR_FLMD, FF_FULLBRIGHT|10, 2, {NULL}, 0, 0, S_NULL}, // S_FLAMESHIELDDASH5_UNDERLAY
|
||||
{SPR_FLMD, FF_FULLBRIGHT|11, 2, {NULL}, 0, 0, S_NULL}, // S_FLAMESHIELDDASH8_UNDERLAY
|
||||
{SPR_FLMD, FF_FULLBRIGHT|12, 2, {NULL}, 0, 0, S_NULL}, // S_FLAMESHIELDDASH11_UNDERLAY
|
||||
|
||||
{SPR_FLMP, FF_FULLBRIGHT|FF_PAPERSPRITE, 2, {NULL}, 0, 0, S_NULL}, // S_FLAMESHIELDPAPER
|
||||
{SPR_FLML, FF_FULLBRIGHT|FF_PAPERSPRITE|FF_ANIMATE, 7, {NULL}, 6, 1, S_NULL}, // S_FLAMESHIELDLINE1
|
||||
{SPR_FLML, FF_FULLBRIGHT|FF_PAPERSPRITE|FF_ANIMATE|7, 7, {NULL}, 6, 1, S_NULL}, // S_FLAMESHIELDLINE2
|
||||
{SPR_FLML, FF_FULLBRIGHT|FF_PAPERSPRITE|FF_ANIMATE|14, 7, {NULL}, 6, 1, S_NULL}, // S_FLAMESHIELDLINE3
|
||||
|
|
@ -16277,6 +16286,33 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLAMESHIELDUNDERLAY
|
||||
-1, // doomednum
|
||||
S_FLAMESHIELDDASH2_UNDERLAY, // spawnstate
|
||||
1000, // spawnhealth
|
||||
S_NULL, // seestate
|
||||
sfx_None, // seesound
|
||||
8, // reactiontime
|
||||
sfx_None, // attacksound
|
||||
S_NULL, // painstate
|
||||
0, // painchance
|
||||
sfx_None, // painsound
|
||||
S_NULL, // meleestate
|
||||
S_NULL, // missilestate
|
||||
S_NULL, // deathstate
|
||||
S_NULL, // xdeathstate
|
||||
sfx_None, // deathsound
|
||||
0, // speed
|
||||
8<<FRACBITS, // radius
|
||||
16<<FRACBITS, // height
|
||||
-1, // display offset
|
||||
100, // mass
|
||||
0, // damage
|
||||
sfx_None, // activesound
|
||||
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOGRAVITY|MF_DONTENCOREMAP, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_FLAMESHIELDPAPER
|
||||
-1, // doomednum
|
||||
S_FLAMESHIELDPAPER, // spawnstate
|
||||
|
|
@ -16300,7 +16336,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
100, // mass
|
||||
0, // damage
|
||||
sfx_None, // activesound
|
||||
MF_NOBLOCKMAP|MF_NOGRAVITY|MF_DONTENCOREMAP, // flags
|
||||
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOGRAVITY|MF_DONTENCOREMAP, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
|
|
|
|||
10
src/info.h
10
src/info.h
|
|
@ -3609,6 +3609,15 @@ typedef enum state
|
|||
S_FLAMESHIELDDASH6,
|
||||
S_FLAMESHIELDDASH7,
|
||||
S_FLAMESHIELDDASH8,
|
||||
S_FLAMESHIELDDASH9,
|
||||
S_FLAMESHIELDDASH10,
|
||||
S_FLAMESHIELDDASH11,
|
||||
S_FLAMESHIELDDASH12,
|
||||
|
||||
S_FLAMESHIELDDASH2_UNDERLAY,
|
||||
S_FLAMESHIELDDASH5_UNDERLAY,
|
||||
S_FLAMESHIELDDASH8_UNDERLAY,
|
||||
S_FLAMESHIELDDASH11_UNDERLAY,
|
||||
|
||||
S_FLAMESHIELDPAPER,
|
||||
S_FLAMESHIELDLINE1,
|
||||
|
|
@ -4807,6 +4816,7 @@ typedef enum mobj_type
|
|||
MT_THUNDERSHIELD, // Shields
|
||||
MT_BUBBLESHIELD,
|
||||
MT_FLAMESHIELD,
|
||||
MT_FLAMESHIELDUNDERLAY,
|
||||
MT_FLAMESHIELDPAPER,
|
||||
MT_BUBBLESHIELDTRAP,
|
||||
|
||||
|
|
|
|||
21
src/p_mobj.c
21
src/p_mobj.c
|
|
@ -8652,6 +8652,7 @@ void P_MobjThinker(mobj_t *mobj)
|
|||
{
|
||||
fixed_t destx, desty;
|
||||
statenum_t curstate;
|
||||
statenum_t underlayst = S_NULL;
|
||||
INT32 flamemax = mobj->target->player->kartstuff[k_flamelength] * flameseg;
|
||||
|
||||
if (!mobj->target || !mobj->target->health || !mobj->target->player
|
||||
|
|
@ -8666,9 +8667,18 @@ void P_MobjThinker(mobj_t *mobj)
|
|||
|
||||
if (mobj->target->player->kartstuff[k_flamedash])
|
||||
{
|
||||
if (!(curstate >= S_FLAMESHIELDDASH1 && curstate <= S_FLAMESHIELDDASH8))
|
||||
if (!(curstate >= S_FLAMESHIELDDASH1 && curstate <= S_FLAMESHIELDDASH12))
|
||||
P_SetMobjState(mobj, S_FLAMESHIELDDASH1);
|
||||
|
||||
if (curstate == S_FLAMESHIELDDASH2)
|
||||
underlayst = S_FLAMESHIELDDASH2_UNDERLAY;
|
||||
else if (curstate == S_FLAMESHIELDDASH5)
|
||||
underlayst = S_FLAMESHIELDDASH5_UNDERLAY;
|
||||
else if (curstate == S_FLAMESHIELDDASH8)
|
||||
underlayst = S_FLAMESHIELDDASH8_UNDERLAY;
|
||||
else if (curstate == S_FLAMESHIELDDASH11)
|
||||
underlayst = S_FLAMESHIELDDASH11_UNDERLAY;
|
||||
|
||||
if (leveltime & 1)
|
||||
{
|
||||
UINT8 i;
|
||||
|
|
@ -8696,7 +8706,7 @@ void P_MobjThinker(mobj_t *mobj)
|
|||
}
|
||||
else
|
||||
{
|
||||
if (curstate >= S_FLAMESHIELDDASH1 && curstate <= S_FLAMESHIELDDASH8)
|
||||
if (curstate >= S_FLAMESHIELDDASH1 && curstate <= S_FLAMESHIELDDASH12)
|
||||
P_SetMobjState(mobj, S_FLAMESHIELD1);
|
||||
}
|
||||
|
||||
|
|
@ -8745,6 +8755,13 @@ void P_MobjThinker(mobj_t *mobj)
|
|||
mobj->angle = R_PointToAngle2(0, 0, mobj->target->momx, mobj->target->momy);
|
||||
else
|
||||
mobj->angle = mobj->target->angle;
|
||||
|
||||
if (underlayst != S_NULL)
|
||||
{
|
||||
mobj_t *underlay = P_SpawnMobj(mobj->target->x, mobj->target->y, mobj->target->z, MT_FLAMESHIELDUNDERLAY);
|
||||
underlay->angle = mobj->angle;
|
||||
P_SetMobjState(underlay, underlayst);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case MT_ROCKETSNEAKER:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue