From 501bfae9ac9954cf6bd95e78aed3f22bc22b4eee Mon Sep 17 00:00:00 2001 From: SeventhSentinel Date: Mon, 25 Jun 2018 17:12:01 -0400 Subject: [PATCH] Revert MT_FIREBALL to vanilla, remove MT_FIRETRAIL, MT_BALLHOG added, bigger Jawz explosions --- src/dehacked.c | 8 ++--- src/info.c | 86 +++++++++++++++++++++++--------------------------- src/info.h | 9 ++---- src/k_kart.c | 4 +-- src/p_enemy.c | 4 +-- src/p_inter.c | 2 +- src/p_map.c | 14 ++++---- src/p_mobj.c | 18 +++++------ src/p_user.c | 2 +- 9 files changed, 65 insertions(+), 82 deletions(-) diff --git a/src/dehacked.c b/src/dehacked.c index 7b53d593..50ac71e3 100644 --- a/src/dehacked.c +++ b/src/dehacked.c @@ -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", diff --git a/src/info.c b/src/info.c index 3befd920..f6f3a013 100644 --- a/src/info.c +++ b/src/info.c @@ -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 diff --git a/src/info.h b/src/info.h index 519b55e1..1db9cc94 100644 --- a/src/info.h +++ b/src/info.h @@ -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, diff --git a/src/k_kart.c b/src/k_kart.c index 178997f1..96477779 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -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); } diff --git a/src/p_enemy.c b/src/p_enemy.c index a0056fec..f6634e5d 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -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; diff --git a/src/p_inter.c b/src/p_inter.c index 9e313384..117c2459 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -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 diff --git a/src/p_map.c b/src/p_map.c index 6b3af53c..7cc315ef 100644 --- a/src/p_map.c +++ b/src/p_map.c @@ -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; diff --git a/src/p_mobj.c b/src/p_mobj.c index 9c2531b9..c328ee2e 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -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; diff --git a/src/p_user.c b/src/p_user.c index 103b85a9..f4d489ca 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -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;