mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Finished bumper destruction
This commit is contained in:
parent
0dc567973c
commit
ef0da6ce9c
4 changed files with 160 additions and 1 deletions
|
|
@ -8748,6 +8748,20 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
||||||
"S_BATTLEBUMPER_EXSHELLC1",
|
"S_BATTLEBUMPER_EXSHELLC1",
|
||||||
"S_BATTLEBUMPER_EXSHELLC2",
|
"S_BATTLEBUMPER_EXSHELLC2",
|
||||||
|
|
||||||
|
"S_BATTLEBUMPER_EXDEBRIS1",
|
||||||
|
"S_BATTLEBUMPER_EXDEBRIS2",
|
||||||
|
|
||||||
|
"S_BATTLEBUMPER_EXBLAST1",
|
||||||
|
"S_BATTLEBUMPER_EXBLAST2",
|
||||||
|
"S_BATTLEBUMPER_EXBLAST3",
|
||||||
|
"S_BATTLEBUMPER_EXBLAST4",
|
||||||
|
"S_BATTLEBUMPER_EXBLAST5",
|
||||||
|
"S_BATTLEBUMPER_EXBLAST6",
|
||||||
|
"S_BATTLEBUMPER_EXBLAST7",
|
||||||
|
"S_BATTLEBUMPER_EXBLAST8",
|
||||||
|
"S_BATTLEBUMPER_EXBLAST9",
|
||||||
|
"S_BATTLEBUMPER_EXBLAST10",
|
||||||
|
|
||||||
// DEZ respawn laser
|
// DEZ respawn laser
|
||||||
"S_DEZLASER",
|
"S_DEZLASER",
|
||||||
"S_DEZLASER_TRAIL1",
|
"S_DEZLASER_TRAIL1",
|
||||||
|
|
@ -10228,6 +10242,8 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
|
||||||
"MT_SINKTRAIL",
|
"MT_SINKTRAIL",
|
||||||
|
|
||||||
"MT_BATTLEBUMPER", // Battle Mode bumper
|
"MT_BATTLEBUMPER", // Battle Mode bumper
|
||||||
|
"MT_BATTLEBUMPER_DEBRIS",
|
||||||
|
"MT_BATTLEBUMPER_BLAST",
|
||||||
|
|
||||||
"MT_DEZLASER",
|
"MT_DEZLASER",
|
||||||
|
|
||||||
|
|
|
||||||
70
src/info.c
70
src/info.c
|
|
@ -560,6 +560,8 @@ char sprnames[NUMSPRITES + 1][5] =
|
||||||
"KBLN", // Battle Mode Bumper
|
"KBLN", // Battle Mode Bumper
|
||||||
"BEXC", // Battle Bumper Explosion: Crystal
|
"BEXC", // Battle Bumper Explosion: Crystal
|
||||||
"BEXS", // Battle Bumper Explosion: Shell
|
"BEXS", // Battle Bumper Explosion: Shell
|
||||||
|
"BDEB", // Battle Bumper Explosion: Debris
|
||||||
|
"BEXB", // Battle Bumper Explosion: Blast
|
||||||
|
|
||||||
"DEZL", // DEZ Laser respawn
|
"DEZL", // DEZ Laser respawn
|
||||||
|
|
||||||
|
|
@ -4431,6 +4433,20 @@ state_t states[NUMSTATES] =
|
||||||
{SPR_BEXS, FF_FULLBRIGHT|4, 1, {NULL}, 0, 0, S_BATTLEBUMPER_EXSHELLC2}, // S_BATTLEBUMPER_EXSHELLC1
|
{SPR_BEXS, FF_FULLBRIGHT|4, 1, {NULL}, 0, 0, S_BATTLEBUMPER_EXSHELLC2}, // S_BATTLEBUMPER_EXSHELLC1
|
||||||
{SPR_BEXS, FF_FULLBRIGHT|5, 1, {NULL}, 0, 0, S_BATTLEBUMPER_EXSHELLC1}, // S_BATTLEBUMPER_EXSHELLC2
|
{SPR_BEXS, FF_FULLBRIGHT|5, 1, {NULL}, 0, 0, S_BATTLEBUMPER_EXSHELLC1}, // S_BATTLEBUMPER_EXSHELLC2
|
||||||
|
|
||||||
|
{SPR_BDEB, FF_FULLBRIGHT|FF_ANIMATE, 84, {NULL}, 13, 6, S_BATTLEBUMPER_EXDEBRIS2}, // S_BATTLEBUMPER_EXDEBRIS1
|
||||||
|
{SPR_BDEB, FF_FULLBRIGHT|13, 20, {NULL}, 0, 0, S_NULL}, // S_BATTLEBUMPER_EXDEBRIS2
|
||||||
|
|
||||||
|
{SPR_BEXB, FF_FULLBRIGHT|FF_PAPERSPRITE, 2, {NULL}, 0, 0, S_BATTLEBUMPER_EXBLAST2}, // S_BATTLEBUMPER_EXBLAST1
|
||||||
|
{SPR_BEXB, FF_FULLBRIGHT|FF_PAPERSPRITE|FF_TRANS10, 2, {NULL}, 0, 0, S_BATTLEBUMPER_EXBLAST3}, // S_BATTLEBUMPER_EXBLAST2
|
||||||
|
{SPR_BEXB, FF_FULLBRIGHT|FF_PAPERSPRITE|FF_TRANS20, 2, {NULL}, 0, 0, S_BATTLEBUMPER_EXBLAST4}, // S_BATTLEBUMPER_EXBLAST3
|
||||||
|
{SPR_BEXB, FF_FULLBRIGHT|FF_PAPERSPRITE|FF_TRANS30, 2, {NULL}, 0, 0, S_BATTLEBUMPER_EXBLAST5}, // S_BATTLEBUMPER_EXBLAST4
|
||||||
|
{SPR_BEXB, FF_FULLBRIGHT|FF_PAPERSPRITE|FF_TRANS40, 2, {NULL}, 0, 0, S_BATTLEBUMPER_EXBLAST6}, // S_BATTLEBUMPER_EXBLAST5
|
||||||
|
{SPR_BEXB, FF_FULLBRIGHT|FF_PAPERSPRITE|FF_TRANS50, 2, {NULL}, 0, 0, S_BATTLEBUMPER_EXBLAST7}, // S_BATTLEBUMPER_EXBLAST6
|
||||||
|
{SPR_BEXB, FF_FULLBRIGHT|FF_PAPERSPRITE|FF_TRANS60, 2, {NULL}, 0, 0, S_BATTLEBUMPER_EXBLAST8}, // S_BATTLEBUMPER_EXBLAST7
|
||||||
|
{SPR_BEXB, FF_FULLBRIGHT|FF_PAPERSPRITE|FF_TRANS70, 2, {NULL}, 0, 0, S_BATTLEBUMPER_EXBLAST9}, // S_BATTLEBUMPER_EXBLAST8
|
||||||
|
{SPR_BEXB, FF_FULLBRIGHT|FF_PAPERSPRITE|FF_TRANS80, 2, {NULL}, 0, 0, S_BATTLEBUMPER_EXBLAST10}, // S_BATTLEBUMPER_EXBLAST9
|
||||||
|
{SPR_BEXB, FF_FULLBRIGHT|FF_PAPERSPRITE|FF_TRANS90, 2, {NULL}, 0, 0, S_NULL}, // S_BATTLEBUMPER_EXBLAST10
|
||||||
|
|
||||||
{SPR_DEZL, FF_FULLBRIGHT|FF_PAPERSPRITE, 8, {NULL}, 0, 0, S_NULL}, // S_DEZLASER
|
{SPR_DEZL, FF_FULLBRIGHT|FF_PAPERSPRITE, 8, {NULL}, 0, 0, S_NULL}, // S_DEZLASER
|
||||||
{SPR_DEZL, FF_FULLBRIGHT|1, 2, {NULL}, 0, 0, S_DEZLASER_TRAIL2}, // S_DEZLASER_TRAIL1
|
{SPR_DEZL, FF_FULLBRIGHT|1, 2, {NULL}, 0, 0, S_DEZLASER_TRAIL2}, // S_DEZLASER_TRAIL1
|
||||||
{SPR_DEZL, FF_FULLBRIGHT|2, 2, {NULL}, 0, 0, S_DEZLASER_TRAIL3}, // S_DEZLASER_TRAIL2
|
{SPR_DEZL, FF_FULLBRIGHT|2, 2, {NULL}, 0, 0, S_DEZLASER_TRAIL3}, // S_DEZLASER_TRAIL2
|
||||||
|
|
@ -24127,6 +24143,60 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
S_NULL // raisestate
|
S_NULL // raisestate
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{ // MT_BATTLEBUMPER_DEBRIS
|
||||||
|
-1, // doomednum
|
||||||
|
S_BATTLEBUMPER_EXDEBRIS1,// 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*FRACUNIT, // radius
|
||||||
|
16*FRACUNIT, // height
|
||||||
|
0, // display offset
|
||||||
|
100, // mass
|
||||||
|
0, // damage
|
||||||
|
sfx_None, // activesound
|
||||||
|
MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_NOCLIPTHING|MF_SCENERY|MF_DONTENCOREMAP, // flags
|
||||||
|
S_NULL // raisestate
|
||||||
|
},
|
||||||
|
|
||||||
|
{ // MT_BATTLEBUMPER_BLAST
|
||||||
|
-1, // doomednum
|
||||||
|
S_BATTLEBUMPER_EXBLAST1, // 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*FRACUNIT, // radius
|
||||||
|
16*FRACUNIT, // height
|
||||||
|
0, // display offset
|
||||||
|
100, // mass
|
||||||
|
0, // damage
|
||||||
|
sfx_None, // activesound
|
||||||
|
MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_NOCLIPTHING|MF_SCENERY|MF_DONTENCOREMAP, // flags
|
||||||
|
S_NULL // raisestate
|
||||||
|
},
|
||||||
|
|
||||||
{ // MT_DEZLASER
|
{ // MT_DEZLASER
|
||||||
-1, // doomednum
|
-1, // doomednum
|
||||||
S_DEZLASER, // spawnstate
|
S_DEZLASER, // spawnstate
|
||||||
|
|
|
||||||
18
src/info.h
18
src/info.h
|
|
@ -831,6 +831,8 @@ typedef enum sprite
|
||||||
SPR_KBLN, // Battle Mode Bumper
|
SPR_KBLN, // Battle Mode Bumper
|
||||||
SPR_BEXC, // Battle Bumper Explosion: Crystal
|
SPR_BEXC, // Battle Bumper Explosion: Crystal
|
||||||
SPR_BEXS, // Battle Bumper Explosion: Shell
|
SPR_BEXS, // Battle Bumper Explosion: Shell
|
||||||
|
SPR_BDEB, // Battle Bumper Explosion: Debris
|
||||||
|
SPR_BEXB, // Battle Bumper Explosion: Blast
|
||||||
|
|
||||||
SPR_DEZL, // DEZ Laser respawn
|
SPR_DEZL, // DEZ Laser respawn
|
||||||
|
|
||||||
|
|
@ -4596,6 +4598,20 @@ typedef enum state
|
||||||
S_BATTLEBUMPER_EXSHELLC1,
|
S_BATTLEBUMPER_EXSHELLC1,
|
||||||
S_BATTLEBUMPER_EXSHELLC2,
|
S_BATTLEBUMPER_EXSHELLC2,
|
||||||
|
|
||||||
|
S_BATTLEBUMPER_EXDEBRIS1,
|
||||||
|
S_BATTLEBUMPER_EXDEBRIS2,
|
||||||
|
|
||||||
|
S_BATTLEBUMPER_EXBLAST1,
|
||||||
|
S_BATTLEBUMPER_EXBLAST2,
|
||||||
|
S_BATTLEBUMPER_EXBLAST3,
|
||||||
|
S_BATTLEBUMPER_EXBLAST4,
|
||||||
|
S_BATTLEBUMPER_EXBLAST5,
|
||||||
|
S_BATTLEBUMPER_EXBLAST6,
|
||||||
|
S_BATTLEBUMPER_EXBLAST7,
|
||||||
|
S_BATTLEBUMPER_EXBLAST8,
|
||||||
|
S_BATTLEBUMPER_EXBLAST9,
|
||||||
|
S_BATTLEBUMPER_EXBLAST10,
|
||||||
|
|
||||||
// DEZ Laser respawn
|
// DEZ Laser respawn
|
||||||
S_DEZLASER,
|
S_DEZLASER,
|
||||||
S_DEZLASER_TRAIL1,
|
S_DEZLASER_TRAIL1,
|
||||||
|
|
@ -6116,6 +6132,8 @@ typedef enum mobj_type
|
||||||
MT_SINKTRAIL,
|
MT_SINKTRAIL,
|
||||||
|
|
||||||
MT_BATTLEBUMPER, // Battle Mode bumpers
|
MT_BATTLEBUMPER, // Battle Mode bumpers
|
||||||
|
MT_BATTLEBUMPER_DEBRIS,
|
||||||
|
MT_BATTLEBUMPER_BLAST,
|
||||||
|
|
||||||
MT_DEZLASER,
|
MT_DEZLASER,
|
||||||
|
|
||||||
|
|
|
||||||
57
src/p_mobj.c
57
src/p_mobj.c
|
|
@ -5330,7 +5330,54 @@ static void P_MobjSceneryThink(mobj_t *mobj)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// TODO: confetti goes here
|
const INT16 spacing = 64;
|
||||||
|
UINT8 i;
|
||||||
|
|
||||||
|
for (i = 0; i < 10; i++)
|
||||||
|
{
|
||||||
|
mobj_t *debris = P_SpawnMobjFromMobj(
|
||||||
|
mobj,
|
||||||
|
P_RandomRange(-spacing, spacing) * FRACUNIT,
|
||||||
|
P_RandomRange(-spacing, spacing) * FRACUNIT,
|
||||||
|
P_RandomRange(-spacing, spacing) * FRACUNIT,
|
||||||
|
MT_BATTLEBUMPER_DEBRIS
|
||||||
|
);
|
||||||
|
|
||||||
|
P_SetScale(debris, (debris->destscale *= 2));
|
||||||
|
debris->color = mobj->color;
|
||||||
|
|
||||||
|
debris->momz = -debris->scale * P_MobjFlip(debris);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < 2; i++)
|
||||||
|
{
|
||||||
|
mobj_t *blast = P_SpawnMobjFromMobj(mobj, 0, 0, 0, MT_BATTLEBUMPER_BLAST);
|
||||||
|
|
||||||
|
blast->angle = R_PointToAngle2(0, 0, mobj->momx, mobj->momy) + ANGLE_45;
|
||||||
|
blast->destscale *= 4;
|
||||||
|
|
||||||
|
if (i & 1)
|
||||||
|
{
|
||||||
|
blast->angle += ANGLE_90;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < 10; i++)
|
||||||
|
{
|
||||||
|
mobj_t *puff = P_SpawnMobjFromMobj(
|
||||||
|
mobj,
|
||||||
|
P_RandomRange(-spacing, spacing) * FRACUNIT,
|
||||||
|
P_RandomRange(-spacing, spacing) * FRACUNIT,
|
||||||
|
P_RandomRange(-spacing, spacing) * FRACUNIT,
|
||||||
|
MT_SPINDASHDUST
|
||||||
|
);
|
||||||
|
|
||||||
|
P_SetScale(puff, (puff->destscale *= 5));
|
||||||
|
puff->momz = puff->scale * P_MobjFlip(puff);
|
||||||
|
|
||||||
|
P_Thrust(puff, R_PointToAngle2(mobj->x, mobj->y, puff->x, puff->y), puff->scale);
|
||||||
|
}
|
||||||
|
|
||||||
P_RemoveMobj(mobj);
|
P_RemoveMobj(mobj);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -5425,6 +5472,14 @@ static void P_MobjSceneryThink(mobj_t *mobj)
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case MT_BATTLEBUMPER_DEBRIS:
|
||||||
|
if (mobj->state == states + S_BATTLEBUMPER_EXDEBRIS2)
|
||||||
|
{
|
||||||
|
mobj->drawflags ^= MFD_DONTDRAW;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case MT_PLAYERARROW:
|
case MT_PLAYERARROW:
|
||||||
if (mobj->target && mobj->target->health
|
if (mobj->target && mobj->target->health
|
||||||
&& mobj->target->player && !mobj->target->player->spectator
|
&& mobj->target->player && !mobj->target->player->spectator
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue