Revert MT_FIREBALL to vanilla, remove MT_FIRETRAIL, MT_BALLHOG added, bigger Jawz explosions

This commit is contained in:
SeventhSentinel 2018-06-25 17:12:01 -04:00
parent 11aaad1837
commit 501bfae9ac
9 changed files with 65 additions and 82 deletions

View file

@ -5807,15 +5807,9 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
"S_FIREBALL2",
"S_FIREBALL3",
"S_FIREBALL4",
"S_FIREBALL5",
"S_FIREBALL6",
"S_FIREBALL7",
"S_FIREBALLEXP1",
"S_FIREBALLEXP2",
"S_FIREBALLEXP3",
"S_FIREBALLEXP4",
"S_FIREBALLEXP5",
"S_FIREBALLEXP6",
"S_SHELL",
"S_SHELL1",
"S_SHELL2",
@ -7155,6 +7149,8 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
"MT_BOOMEXPLODE",
"MT_BOOMPARTICLE",
"MT_BALLHOG", // Ballhog
"MT_BLUELIGHTNING", // Grow/shrink stuff
"MT_BLUEEXPLOSION",
"MT_LIGHTNING",

View file

@ -2125,19 +2125,13 @@ state_t states[NUMSTATES] =
{SPR_FFWR, 3, 3, {NULL}, 0, 0, S_FIREFLOWER1}, // S_FIREFLOWER4
// Thrown Mario Fireball
{SPR_FBLL, FF_FULLBRIGHT, 3, {NULL}, MT_FIRETRAIL, 0, S_FIREBALL2}, // S_FIREBALL1
{SPR_FBLL, FF_FULLBRIGHT|1, 3, {NULL}, MT_FIRETRAIL, 0, S_FIREBALL3}, // S_FIREBALL2
{SPR_FBLL, FF_FULLBRIGHT|2, 3, {NULL}, MT_FIRETRAIL, 0, S_FIREBALL4}, // S_FIREBALL3
{SPR_FBLL, FF_FULLBRIGHT|3, 3, {NULL}, MT_FIRETRAIL, 0, S_FIREBALL5}, // S_FIREBALL4
{SPR_FBLL, FF_FULLBRIGHT|4, 3, {NULL}, MT_FIRETRAIL, 0, S_FIREBALL6}, // S_FIREBALL5
{SPR_FBLL, FF_FULLBRIGHT|5, 3, {NULL}, MT_FIRETRAIL, 0, S_FIREBALL7}, // S_FIREBALL6
{SPR_FBLL, FF_FULLBRIGHT|6, 3, {NULL}, MT_FIRETRAIL, 0, S_FIREBALL1}, // S_FIREBALL7
{SPR_FBLL, FF_FULLBRIGHT|7, 3, {NULL}, 0, 0, S_FIREBALLEXP2}, // S_FIREBALLEXP1
{SPR_FBLL, FF_FULLBRIGHT|8, 3, {NULL}, 0, 0, S_FIREBALLEXP3}, // S_FIREBALLEXP2
{SPR_FBLL, FF_FULLBRIGHT|9, 3, {NULL}, 0, 0, S_FIREBALLEXP4}, // S_FIREBALLEXP3
{SPR_FBLL, FF_FULLBRIGHT|10, 3, {NULL}, 0, 0, S_FIREBALLEXP5}, // S_FIREBALLEXP4
{SPR_FBLL, FF_FULLBRIGHT|11, 3, {NULL}, 0, 0, S_FIREBALLEXP6}, // S_FIREBALLEXP5
{SPR_FBLL, FF_FULLBRIGHT|12, 3, {NULL}, 0, 0, S_NULL}, // S_FIREBALLEXP6
{SPR_FBLL, FF_FULLBRIGHT, 3, {NULL}, 0, 0, S_FIREBALL2}, // S_FIREBALL1
{SPR_FBLL, FF_FULLBRIGHT|1, 3, {NULL}, 0, 0, S_FIREBALL3}, // S_FIREBALL2
{SPR_FBLL, FF_FULLBRIGHT|2, 3, {NULL}, 0, 0, S_FIREBALL4}, // S_FIREBALL3
{SPR_FBLL, FF_FULLBRIGHT|3, 3, {NULL}, 0, 0, S_FIREBALL1}, // S_FIREBALL4
{SPR_FBLL, FF_FULLBRIGHT|4, 3, {NULL}, 0, 0, S_FIREBALLEXP2}, // S_FIREBALLEXP1
{SPR_FBLL, FF_FULLBRIGHT|5, 3, {NULL}, 0, 0, S_FIREBALLEXP3}, // S_FIREBALLEXP2
{SPR_FBLL, FF_FULLBRIGHT|6, 3, {NULL}, 0, 0, S_NULL}, // S_FIREBALLEXP3
// Turtle Shell
{SPR_SHLL, 0, -1, {NULL}, 0, 0, S_NULL}, // S_SHELL
@ -12022,7 +12016,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
{ // MT_FIREBALL
-1, // doomednum
S_FIREBALL1, // spawnstate
140, // spawnhealth
1000, // spawnhealth
S_FIREBALLEXP1, // seestate
sfx_None, // seesound
8, // reactiontime
@ -12034,15 +12028,15 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_FIREBALLEXP1, // missilestate
S_FIREBALLEXP1, // deathstate
S_FIREBALLEXP1, // xdeathstate
sfx_None, // deathsound
0, // speed
16*FRACUNIT, // radius
32*FRACUNIT, // height
sfx_mario1, // deathsound
10*FRACUNIT, // speed
4*FRACUNIT, // radius
8*FRACUNIT, // height
0, // display offset
100, // mass
1, // damage
sfx_None, // activesound
MF_SHOOTABLE|MF_BOUNCE, // flags
MF_NOBLOCKMAP|MF_FIRE|MF_MISSILE, // flags
S_NULL // raisestate
},
@ -14615,33 +14609,6 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate
},
{ // MT_FIRETRAIL
-1, // doomednum
S_FIRETRAIL1, // 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
8, // speed
20*FRACUNIT, // radius
16*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_SCENERY, // flags
S_NULL // raisestate
},
{ // MT_JAWZ
-1, // doomednum
S_JAWZ1, // spawnstate
@ -14912,6 +14879,33 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate
},
{ // MT_BALLHOG
-1, // doomednum
S_FIREBALL1, // spawnstate
140, // 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_FIREBALLEXP1, // deathstate
S_NULL, // xdeathstate
sfx_mario1, // deathsound
0, // speed
16*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
100, // mass
1, // damage
sfx_None, // activesound
MF_SHOOTABLE|MF_BOUNCE, // flags
S_NULL // raisestate
},
{ // MT_BLUELIGHTNING
-1, // doomednum
S_BLUELIGHTNING1, // spawnstate

View file

@ -2649,15 +2649,9 @@ typedef enum state
S_FIREBALL2,
S_FIREBALL3,
S_FIREBALL4,
S_FIREBALL5,
S_FIREBALL6,
S_FIREBALL7,
S_FIREBALLEXP1,
S_FIREBALLEXP2,
S_FIREBALLEXP3,
S_FIREBALLEXP4,
S_FIREBALLEXP5,
S_FIREBALLEXP6,
S_SHELL,
S_SHELL1,
S_SHELL2,
@ -3999,7 +3993,6 @@ typedef enum mobj_type
MT_GREENSHIELD, // Orbinaut stuff
MT_GREENITEM,
MT_FIRETRAIL,
MT_JAWZ, // Jawz stuff
MT_JAWZ_DUD,
@ -4014,6 +4007,8 @@ typedef enum mobj_type
MT_BOOMEXPLODE,
MT_BOOMPARTICLE,
MT_BALLHOG, // Ballhog
MT_BLUELIGHTNING, // Grow/shrink stuff
MT_BLUEEXPLOSION,
MT_LIGHTNING,

View file

@ -2128,7 +2128,7 @@ static mobj_t *K_ThrowKartItem(player_t *player, boolean missile, mobjtype_t map
if (missile) // Shootables
{
if (mapthing == MT_FIREBALL) // Messy
if (mapthing == MT_BALLHOG) // Messy
{
if (dir == -1)
{
@ -3288,7 +3288,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
if (ATTACK_IS_DOWN && !HOLDING_ITEM && NO_HYUDORO)
{
player->kartstuff[k_itemamount]--;
K_ThrowKartItem(player, true, MT_FIREBALL, 1, false);
K_ThrowKartItem(player, true, MT_BALLHOG, 1, false);
S_StartSound(player->mo, sfx_mario7);
K_PlayTauntSound(player->mo);
}

View file

@ -8270,7 +8270,7 @@ void A_JawzExplode(mobj_t *actor)
#endif
truc = P_SpawnMobj(actor->x, actor->y, actor->z, MT_BOOMEXPLODE);
truc->scale = actor->scale;
truc->scale = actor->scale*2;
truc->color = SKINCOLOR_RED;
while (shrapnel)
@ -8279,7 +8279,7 @@ void A_JawzExplode(mobj_t *actor)
truc = P_SpawnMobj(actor->x + P_RandomRange(-8, 8)*FRACUNIT, actor->y + P_RandomRange(-8, 8)*FRACUNIT,
actor->z + P_RandomRange(0, 8)*FRACUNIT, MT_BOOMPARTICLE);
truc->scale = actor->scale;
truc->scale = actor->scale*2;
speed = FixedMul(7*FRACUNIT, actor->scale)>>FRACBITS;
truc->momx = P_RandomRange(-speed, speed)*FRACUNIT;

View file

@ -2080,7 +2080,7 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source)
|| target->type == MT_JAWZ || target->type == MT_JAWZ_DUD || target->type == MT_JAWZ_SHIELD
|| target->type == MT_BANANA || target->type == MT_BANANA_SHIELD
|| target->type == MT_FAKEITEM || target->type == MT_FAKESHIELD
|| target->type == MT_FIREBALL)) // kart dead items
|| target->type == MT_BALLHOG)) // kart dead items
target->flags |= MF_NOGRAVITY; // Don't drop Tails 03-08-2000
else
target->flags &= ~MF_NOGRAVITY; // lose it if you for whatever reason have it, I'm looking at you shields

View file

@ -702,7 +702,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
else if (thing->type == MT_GREENITEM || thing->type == MT_JAWZ || thing->type == MT_JAWZ_DUD
|| thing->type == MT_GREENSHIELD || thing->type == MT_JAWZ_SHIELD
|| thing->type == MT_BANANA || thing->type == MT_BANANA_SHIELD
|| thing->type == MT_FIREBALL)
|| thing->type == MT_BALLHOG)
{
// Other Item Damage
if (thing->eflags & MFE_VERTICALFLIP)
@ -850,7 +850,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
return true; // This doesn't collide with anything, but we want it to effect the player anyway.
}
else if (tmthing->type == MT_BANANA_SHIELD || tmthing->type == MT_BANANA
|| tmthing->type == MT_FIREBALL)
|| tmthing->type == MT_BALLHOG)
{
// see if it went over / under
if (tmthing->z > thing->z + thing->height)
@ -868,7 +868,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
&& (tmthing->target == thing->target)) // Don't hit each other if you have the same target
return true;
if (tmthing->type == MT_FIREBALL && thing->type == MT_FIREBALL)
if (tmthing->type == MT_BALLHOG && thing->type == MT_BALLHOG)
return true; // Fireballs don't collide with eachother
if (thing->player && thing->player->powers[pw_flashing])
@ -894,7 +894,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
else if (thing->type == MT_BANANA || thing->type == MT_BANANA_SHIELD
|| thing->type == MT_GREENITEM || thing->type == MT_GREENSHIELD
|| thing->type == MT_JAWZ || thing->type == MT_JAWZ_DUD || thing->type == MT_JAWZ_SHIELD
|| thing->type == MT_FIREBALL)
|| thing->type == MT_BALLHOG)
{
// Other Item Damage
if (thing->eflags & MFE_VERTICALFLIP)
@ -975,7 +975,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
if (thing->type == MT_GREENITEM // When these items collide with the fake item, just the fake item is destroyed
|| thing->type == MT_JAWZ || thing->type == MT_JAWZ_DUD
|| thing->type == MT_SSMINE
|| thing->type == MT_BANANA || thing->type == MT_FIREBALL)
|| thing->type == MT_BANANA || thing->type == MT_BALLHOG)
{
// This Item Damage
if (tmthing->eflags & MFE_VERTICALFLIP)
@ -1089,7 +1089,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
|| thing->type == MT_BANANA_SHIELD || thing->type == MT_BANANA
|| thing->type == MT_SSMINE_SHIELD || thing->type == MT_SSMINE
|| thing->type == MT_MINEEXPLOSION
|| thing->type == MT_SINK || thing->type == MT_FIREBALL
|| thing->type == MT_SINK || thing->type == MT_BALLHOG
))
{
// see if it went over / under
@ -1131,7 +1131,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
P_InstaThrust(thing, R_PointToAngle2(tmthing->x, tmthing->y, thing->x, thing->y)+ANGLE_90, 16*FRACUNIT);
}
else if (thing->type == MT_BANANA_SHIELD || thing->type == MT_BANANA
|| thing->type == MT_FIREBALL)
|| thing->type == MT_BALLHOG)
{
if ((thing->target == tmthing) && (thing->threshold > 0))
return true;

View file

@ -1724,7 +1724,7 @@ void P_XYMovement(mobj_t *mo)
P_PushableCheckBustables(mo);
//{ SRB2kart - Fireball
if (mo->type == MT_FIREBALL)
if (mo->type == MT_BALLHOG)
{
mo->health--;
if (mo->health == 0)
@ -1862,7 +1862,7 @@ void P_XYMovement(mobj_t *mo)
// draw damage on wall
//SPLAT TEST ----------------------------------------------------------
#ifdef WALLSPLATS
if (blockingline && mo->type != MT_REDRING //&& mo->type != MT_FIREBALL
if (blockingline && mo->type != MT_REDRING && mo->type != MT_FIREBALL
&& !(mo->flags2 & (MF2_AUTOMATIC|MF2_RAILRING|MF2_BOUNCERING|MF2_EXPLOSION|MF2_SCATTER)))
// set by last P_TryMove() that failed
{
@ -1998,7 +1998,7 @@ void P_XYMovement(mobj_t *mo)
#endif
//{ SRB2kart stuff
if (mo->type == MT_GREENITEM || mo->type == MT_JAWZ_DUD || mo->type == MT_JAWZ || mo->type == MT_FIREBALL) //(mo->type == MT_JAWZ && !mo->tracer))
if (mo->type == MT_GREENITEM || mo->type == MT_JAWZ_DUD || mo->type == MT_JAWZ || mo->type == MT_BALLHOG) //(mo->type == MT_JAWZ && !mo->tracer))
return;
if (mo->player && mo->player->kartstuff[k_spinouttimer] && mo->player->speed <= mo->player->normalspeed/2)
@ -2333,7 +2333,7 @@ static boolean P_ZMovement(mobj_t *mo)
case MT_GREENITEM:
case MT_JAWZ:
case MT_JAWZ_DUD:
case MT_FIREBALL:
case MT_BALLHOG:
// Remove stuff from death pits.
if (P_CheckDeathPitCollide(mo))
{
@ -7324,7 +7324,7 @@ void P_MobjThinker(mobj_t *mobj)
P_PushableThinker(mobj);
// Extinguish fire objects in water. (Yes, it's extraordinarily rare to have a pushable flame object, but Brak uses such a case.)
if (mobj->flags & MF_FIRE && mobj->type != MT_PUMA //&& mobj->type != MT_FIREBALL
if (mobj->flags & MF_FIRE && mobj->type != MT_PUMA && mobj->type != MT_FIREBALL
&& (mobj->eflags & (MFE_UNDERWATER|MFE_TOUCHWATER)))
{
P_KillMobj(mobj, NULL, NULL);
@ -8119,9 +8119,7 @@ void P_MobjThinker(mobj_t *mobj)
if (mobj->threshold > 0)
mobj->threshold--;
break;
case MT_FIREBALL:
var1 = MT_FIRETRAIL;
A_SmokeTrailer(mobj);
case MT_BALLHOG:
if (mobj->threshold > 0)
mobj->threshold--;
break;
@ -8348,7 +8346,7 @@ void P_MobjThinker(mobj_t *mobj)
P_MobjCheckWater(mobj);
// Extinguish fire objects in water
if (mobj->flags & MF_FIRE && mobj->type != MT_PUMA //&& mobj->type != MT_FIREBALL
if (mobj->flags & MF_FIRE && mobj->type != MT_PUMA && mobj->type != MT_FIREBALL
&& (mobj->eflags & (MFE_UNDERWATER|MFE_TOUCHWATER)))
{
P_KillMobj(mobj, NULL, NULL);
@ -9082,7 +9080,7 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type)
case MT_GREENITEM: case MT_GREENSHIELD:
case MT_JAWZ: case MT_JAWZ_DUD: case MT_JAWZ_SHIELD:
case MT_SSMINE: case MT_SSMINE_SHIELD:
case MT_FIREBALL: case MT_SINK:
case MT_BALLHOG: case MT_SINK:
P_SpawnShadowMobj(mobj);
default:
break;

View file

@ -7657,7 +7657,7 @@ void P_NukeEnemies(mobj_t *inflictor, mobj_t *source, fixed_t radius)
|| mo->type == MT_GREENSHIELD || mo->type == MT_JAWZ_SHIELD
|| mo->type == MT_BANANA || mo->type == MT_BANANA_SHIELD
|| mo->type == MT_FAKEITEM || mo->type == MT_FAKESHIELD
|| mo->type == MT_FIREBALL)
|| mo->type == MT_BALLHOG)
{
if (mo->eflags & MFE_VERTICALFLIP)
mo->z -= mo->height;