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_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
|
||||
"S_DEZLASER",
|
||||
"S_DEZLASER_TRAIL1",
|
||||
|
|
@ -10228,6 +10242,8 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
|
|||
"MT_SINKTRAIL",
|
||||
|
||||
"MT_BATTLEBUMPER", // Battle Mode bumper
|
||||
"MT_BATTLEBUMPER_DEBRIS",
|
||||
"MT_BATTLEBUMPER_BLAST",
|
||||
|
||||
"MT_DEZLASER",
|
||||
|
||||
|
|
|
|||
70
src/info.c
70
src/info.c
|
|
@ -560,6 +560,8 @@ char sprnames[NUMSPRITES + 1][5] =
|
|||
"KBLN", // Battle Mode Bumper
|
||||
"BEXC", // Battle Bumper Explosion: Crystal
|
||||
"BEXS", // Battle Bumper Explosion: Shell
|
||||
"BDEB", // Battle Bumper Explosion: Debris
|
||||
"BEXB", // Battle Bumper Explosion: Blast
|
||||
|
||||
"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|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|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
|
||||
|
|
@ -24127,6 +24143,60 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
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
|
||||
-1, // doomednum
|
||||
S_DEZLASER, // spawnstate
|
||||
|
|
|
|||
18
src/info.h
18
src/info.h
|
|
@ -831,6 +831,8 @@ typedef enum sprite
|
|||
SPR_KBLN, // Battle Mode Bumper
|
||||
SPR_BEXC, // Battle Bumper Explosion: Crystal
|
||||
SPR_BEXS, // Battle Bumper Explosion: Shell
|
||||
SPR_BDEB, // Battle Bumper Explosion: Debris
|
||||
SPR_BEXB, // Battle Bumper Explosion: Blast
|
||||
|
||||
SPR_DEZL, // DEZ Laser respawn
|
||||
|
||||
|
|
@ -4596,6 +4598,20 @@ typedef enum state
|
|||
S_BATTLEBUMPER_EXSHELLC1,
|
||||
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
|
||||
S_DEZLASER,
|
||||
S_DEZLASER_TRAIL1,
|
||||
|
|
@ -6116,6 +6132,8 @@ typedef enum mobj_type
|
|||
MT_SINKTRAIL,
|
||||
|
||||
MT_BATTLEBUMPER, // Battle Mode bumpers
|
||||
MT_BATTLEBUMPER_DEBRIS,
|
||||
MT_BATTLEBUMPER_BLAST,
|
||||
|
||||
MT_DEZLASER,
|
||||
|
||||
|
|
|
|||
57
src/p_mobj.c
57
src/p_mobj.c
|
|
@ -5330,7 +5330,54 @@ static void P_MobjSceneryThink(mobj_t *mobj)
|
|||
}
|
||||
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);
|
||||
return;
|
||||
}
|
||||
|
|
@ -5425,6 +5472,14 @@ static void P_MobjSceneryThink(mobj_t *mobj)
|
|||
}
|
||||
|
||||
break;
|
||||
|
||||
case MT_BATTLEBUMPER_DEBRIS:
|
||||
if (mobj->state == states + S_BATTLEBUMPER_EXDEBRIS2)
|
||||
{
|
||||
mobj->drawflags ^= MFD_DONTDRAW;
|
||||
}
|
||||
break;
|
||||
|
||||
case MT_PLAYERARROW:
|
||||
if (mobj->target && mobj->target->health
|
||||
&& mobj->target->player && !mobj->target->player->spectator
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue