Ballhog stuff

This commit is contained in:
SeventhSentinel 2018-06-25 18:17:03 -04:00
parent 501bfae9ac
commit cfaff6d2a8
4 changed files with 52 additions and 49 deletions

View File

@ -6348,16 +6348,6 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
"S_JAWZ_DEAD2",
//}
"S_FIRETRAIL1",
"S_FIRETRAIL2",
"S_FIRETRAIL3",
"S_FIRETRAIL4",
"S_FIRETRAIL5",
"S_FIRETRAIL6",
"S_FIRETRAIL7",
"S_FIRETRAIL8",
"S_FIRETRAIL9",
// Special Stage Mine
"S_SSMINE1",
"S_SSMINE2",

View File

@ -56,10 +56,10 @@ char sprnames[NUMSPRITES + 1][5] =
"SRBJ","SRBK","SRBL","SRBM","SRBN","SRBO",
//SRB2kart Sprites
"SPRG","BSPR","RNDM","RPOP","KFRE","KINV","KINF","DRIF","DUST","FITM",
"BANA","GSHE","JAWZ","SSMN","KRBM","BLIG","LIGH","SINK","SITR","KBLN",
"DEZL","POKE","AUDI","DECO","DOOD","SNES","GBAS","SPRS","BUZB","CHOM",
"SACO","CRAB","SHAD","BUMP","FLEN","CLAS","PSHW","ARRO","ITEM","ITMI",
"ITMN","PBOM"
"BANA","GSHE","JAWZ","SSMN","KRBM","BHOG","BLIG","LIGH","SINK","SITR",
"KBLN","DEZL","POKE","AUDI","DECO","DOOD","SNES","GBAS","SPRS","BUZB",
"CHOM","SACO","CRAB","SHAD","BUMP","FLEN","CLAS","PSHW","ARRO","ITEM",
"ITMI","ITMN","PBOM"
};
// Doesn't work with g++, needs actionf_p1 (don't modify this comment)
@ -2680,16 +2680,6 @@ state_t states[NUMSTATES] =
{SPR_JAWZ, 5, 175, {NULL}, 0, 0, S_JAWZ_DEAD2}, // S_JAWZ_DEAD1
{SPR_NULL, 0, 1, {A_JawzExplode}, 0, 0, S_NULL}, // S_JAWZ_DEAD2
{SPR_FBLL, 13, 3, {NULL}, 0, 0, S_FIRETRAIL2}, // S_FIRETRAIL1
{SPR_FBLL, 14, 3, {NULL}, 0, 0, S_FIRETRAIL3}, // S_FIRETRAIL2
{SPR_FBLL, 15, 3, {NULL}, 0, 0, S_FIRETRAIL4}, // S_FIRETRAIL3
{SPR_FBLL, 16, 3, {NULL}, 0, 0, S_FIRETRAIL5}, // S_FIRETRAIL4
{SPR_FBLL, 17, 3, {NULL}, 0, 0, S_FIRETRAIL6}, // S_FIRETRAIL5
{SPR_FBLL, 18, 3, {NULL}, 0, 0, S_FIRETRAIL7}, // S_FIRETRAIL6
{SPR_FBLL, 19, 3, {NULL}, 0, 0, S_FIRETRAIL8}, // S_FIRETRAIL7
{SPR_FBLL, 20, 3, {NULL}, 0, 0, S_FIRETRAIL9}, // S_FIRETRAIL8
{SPR_FBLL, 21, 3, {NULL}, 0, 0, S_NULL}, // S_FIRETRAIL9
{SPR_SSMN, 0, 30, {NULL}, 0, 0, S_SSMINE2}, // S_SSMINE1
{SPR_SSMN, 3, 3, {NULL}, 0, 0, S_SSMINE3}, // S_SSMINE2
{SPR_SSMN, 2, 3, {NULL}, 0, 0, S_SSMINE4}, // S_SSMINE3
@ -2737,6 +2727,15 @@ state_t states[NUMSTATES] =
{SPR_KRBM, FF_FULLBRIGHT|8, 5, {NULL}, 0, 0, S_SLOWBOOM10}, // S_SLOWBOOM9
{SPR_KRBM, FF_FULLBRIGHT|9, 5, {NULL}, 0, 0, S_NULL}, // S_SLOWBOOM10
{SPR_BHOG, 0, 3, {NULL}, 0, 0, S_BALLHOG2}, // S_BALLHOG1
{SPR_BHOG, 1, 1, {NULL}, 0, 0, S_BALLHOG3}, // S_BALLHOG2
{SPR_BHOG, 2, 2, {NULL}, 0, 0, S_BALLHOG4}, // S_BALLHOG3
{SPR_BHOG, 3, 3, {NULL}, 0, 0, S_BALLHOG5}, // S_BALLHOG4
{SPR_BHOG, 4, 3, {NULL}, 0, 0, S_BALLHOG6}, // S_BALLHOG5
{SPR_BHOG, 5, 2, {NULL}, 0, 0, S_BALLHOG7}, // S_BALLHOG6
{SPR_BHOG, 6, 1, {NULL}, 0, 0, S_BALLHOG8}, // S_BALLHOG7
{SPR_BHOG, 7, 1, {NULL}, 0, 0, S_BALLHOG1}, // S_BALLHOG8
{SPR_BLIG, 0, 2, {NULL}, 0, 0, S_BLUELIGHTNING2}, // S_BLUELIGHTNING1
{SPR_BLIG, 1, 2, {NULL}, 0, 0, S_BLUELIGHTNING3}, // S_BLUELIGHTNING2
{SPR_BLIG, 2, 2, {NULL}, 0, 0, S_BLUELIGHTNING4}, // S_BLUELIGHTNING3
@ -2757,7 +2756,7 @@ state_t states[NUMSTATES] =
{SPR_KBLN, FF_FULLBRIGHT|1, -1, {NULL}, 0, 0, S_BATTLEBALLOON2}, // S_BATTLEBALLOON2
{SPR_KBLN, FF_FULLBRIGHT|2, -1, {NULL}, 0, 0, S_BATTLEBALLOON3}, // S_BATTLEBALLOON3
{SPR_DEZL, 0|FF_FULLBRIGHT, 8, {NULL}, 0, 0, S_NULL}, // S_DEZLASER
{SPR_DEZL, FF_FULLBRIGHT|FF_PAPERSPRITE, 8, {NULL}, 0, 0, S_NULL}, // S_DEZLASER
{SPR_POKE, 0, 2, {A_MoveAbsolute}, 0, 2, S_POKEY2}, // S_POKEY1
{SPR_POKE, 1, 2, {A_MoveAbsolute}, 0, 2, S_POKEY3}, // S_POKEY2
@ -14881,7 +14880,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
{ // MT_BALLHOG
-1, // doomednum
S_FIREBALL1, // spawnstate
S_BALLHOG1, // spawnstate
140, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
@ -14892,7 +14891,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_FIREBALLEXP1, // deathstate
S_NULL, // deathstate
S_NULL, // xdeathstate
sfx_mario1, // deathsound
0, // speed

View File

@ -594,6 +594,7 @@ typedef enum sprite
SPR_JAWZ, // Jawz
SPR_SSMN, // SS Mine
SPR_KRBM, // SS Mine BOOM
SPR_BHOG, // Ballhog
SPR_BLIG, // Self-Propelled Bomb
SPR_LIGH, // Grow/shrink beams (Metallic Maddness)
SPR_SINK, // Kitchen Sink
@ -3190,16 +3191,6 @@ typedef enum state
S_JAWZ_DEAD2,
//}
S_FIRETRAIL1,
S_FIRETRAIL2,
S_FIRETRAIL3,
S_FIRETRAIL4,
S_FIRETRAIL5,
S_FIRETRAIL6,
S_FIRETRAIL7,
S_FIRETRAIL8,
S_FIRETRAIL9,
// Special Stage Mine
S_SSMINE1,
S_SSMINE2,
@ -3249,6 +3240,16 @@ typedef enum state
S_SLOWBOOM9,
S_SLOWBOOM10,
// Ballhog
S_BALLHOG1,
S_BALLHOG2,
S_BALLHOG3,
S_BALLHOG4,
S_BALLHOG5,
S_BALLHOG6,
S_BALLHOG7,
S_BALLHOG8,
// Self-Propelled Bomb - just an explosion for now...
S_BLUELIGHTNING1,
S_BLUELIGHTNING2,

View File

@ -1116,22 +1116,32 @@ void K_RespawnChecker(player_t *player)
player->powers[pw_nocontrol] = 2;
if (leveltime % 8 == 0)
{
mobj_t *mo;
fixed_t newz;
INT32 i;
S_StartSound(player->mo, sfx_s3kcas);
if (player->mo->eflags & MFE_VERTICALFLIP)
newz = player->mo->z + player->mo->height;
else
newz = player->mo->z;
mo = P_SpawnMobj(player->mo->x, player->mo->y, newz, MT_DEZLASER);
if (mo)
for (i = 0; i < 8; i++)
{
mobj_t *mo;
angle_t newangle;
fixed_t newx, newy, newz;
newangle = FixedAngle(((360/8)*i)*FRACUNIT);
newx = player->mo->x + P_ReturnThrustX(player->mo, newangle, 31*FRACUNIT);
newy = player->mo->y + P_ReturnThrustY(player->mo, newangle, 31*FRACUNIT);
if (player->mo->eflags & MFE_VERTICALFLIP)
mo->eflags |= MFE_VERTICALFLIP;
P_SetTarget(&mo->target, player->mo);
mo->momz = (8*FRACUNIT)*P_MobjFlip(player->mo);
newz = player->mo->z + player->mo->height;
else
newz = player->mo->z;
mo = P_SpawnMobj(newx, newy, newz, MT_DEZLASER);
if (mo)
{
if (player->mo->eflags & MFE_VERTICALFLIP)
mo->eflags |= MFE_VERTICALFLIP;
P_SetTarget(&mo->target, player->mo);
mo->angle = newangle+ANGLE_90;
mo->momz = (8*FRACUNIT)*P_MobjFlip(player->mo);
}
}
}
}
@ -1231,6 +1241,9 @@ static void K_PlayOvertakeSound(mobj_t *source)
if (source->player && source->player->kartstuff[k_voices]) // Prevents taunt sounds from playing every time the button is pressed
return;
if (!G_RaceGametype()) // Only in race
return;
// 4 seconds from before race begins, 10 seconds afterwards
if (leveltime < starttime+(10*TICRATE))
return;