mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2024-11-16 17:51:27 +00:00
Ballhog stuff
This commit is contained in:
parent
501bfae9ac
commit
cfaff6d2a8
4 changed files with 52 additions and 49 deletions
|
@ -6348,16 +6348,6 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
||||||
"S_JAWZ_DEAD2",
|
"S_JAWZ_DEAD2",
|
||||||
//}
|
//}
|
||||||
|
|
||||||
"S_FIRETRAIL1",
|
|
||||||
"S_FIRETRAIL2",
|
|
||||||
"S_FIRETRAIL3",
|
|
||||||
"S_FIRETRAIL4",
|
|
||||||
"S_FIRETRAIL5",
|
|
||||||
"S_FIRETRAIL6",
|
|
||||||
"S_FIRETRAIL7",
|
|
||||||
"S_FIRETRAIL8",
|
|
||||||
"S_FIRETRAIL9",
|
|
||||||
|
|
||||||
// Special Stage Mine
|
// Special Stage Mine
|
||||||
"S_SSMINE1",
|
"S_SSMINE1",
|
||||||
"S_SSMINE2",
|
"S_SSMINE2",
|
||||||
|
|
33
src/info.c
33
src/info.c
|
@ -56,10 +56,10 @@ char sprnames[NUMSPRITES + 1][5] =
|
||||||
"SRBJ","SRBK","SRBL","SRBM","SRBN","SRBO",
|
"SRBJ","SRBK","SRBL","SRBM","SRBN","SRBO",
|
||||||
//SRB2kart Sprites
|
//SRB2kart Sprites
|
||||||
"SPRG","BSPR","RNDM","RPOP","KFRE","KINV","KINF","DRIF","DUST","FITM",
|
"SPRG","BSPR","RNDM","RPOP","KFRE","KINV","KINF","DRIF","DUST","FITM",
|
||||||
"BANA","GSHE","JAWZ","SSMN","KRBM","BLIG","LIGH","SINK","SITR","KBLN",
|
"BANA","GSHE","JAWZ","SSMN","KRBM","BHOG","BLIG","LIGH","SINK","SITR",
|
||||||
"DEZL","POKE","AUDI","DECO","DOOD","SNES","GBAS","SPRS","BUZB","CHOM",
|
"KBLN","DEZL","POKE","AUDI","DECO","DOOD","SNES","GBAS","SPRS","BUZB",
|
||||||
"SACO","CRAB","SHAD","BUMP","FLEN","CLAS","PSHW","ARRO","ITEM","ITMI",
|
"CHOM","SACO","CRAB","SHAD","BUMP","FLEN","CLAS","PSHW","ARRO","ITEM",
|
||||||
"ITMN","PBOM"
|
"ITMI","ITMN","PBOM"
|
||||||
};
|
};
|
||||||
|
|
||||||
// Doesn't work with g++, needs actionf_p1 (don't modify this comment)
|
// 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_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_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, 0, 30, {NULL}, 0, 0, S_SSMINE2}, // S_SSMINE1
|
||||||
{SPR_SSMN, 3, 3, {NULL}, 0, 0, S_SSMINE3}, // S_SSMINE2
|
{SPR_SSMN, 3, 3, {NULL}, 0, 0, S_SSMINE3}, // S_SSMINE2
|
||||||
{SPR_SSMN, 2, 3, {NULL}, 0, 0, S_SSMINE4}, // S_SSMINE3
|
{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|8, 5, {NULL}, 0, 0, S_SLOWBOOM10}, // S_SLOWBOOM9
|
||||||
{SPR_KRBM, FF_FULLBRIGHT|9, 5, {NULL}, 0, 0, S_NULL}, // S_SLOWBOOM10
|
{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, 0, 2, {NULL}, 0, 0, S_BLUELIGHTNING2}, // S_BLUELIGHTNING1
|
||||||
{SPR_BLIG, 1, 2, {NULL}, 0, 0, S_BLUELIGHTNING3}, // S_BLUELIGHTNING2
|
{SPR_BLIG, 1, 2, {NULL}, 0, 0, S_BLUELIGHTNING3}, // S_BLUELIGHTNING2
|
||||||
{SPR_BLIG, 2, 2, {NULL}, 0, 0, S_BLUELIGHTNING4}, // S_BLUELIGHTNING3
|
{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|1, -1, {NULL}, 0, 0, S_BATTLEBALLOON2}, // S_BATTLEBALLOON2
|
||||||
{SPR_KBLN, FF_FULLBRIGHT|2, -1, {NULL}, 0, 0, S_BATTLEBALLOON3}, // S_BATTLEBALLOON3
|
{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, 0, 2, {A_MoveAbsolute}, 0, 2, S_POKEY2}, // S_POKEY1
|
||||||
{SPR_POKE, 1, 2, {A_MoveAbsolute}, 0, 2, S_POKEY3}, // S_POKEY2
|
{SPR_POKE, 1, 2, {A_MoveAbsolute}, 0, 2, S_POKEY3}, // S_POKEY2
|
||||||
|
@ -14881,7 +14880,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
|
|
||||||
{ // MT_BALLHOG
|
{ // MT_BALLHOG
|
||||||
-1, // doomednum
|
-1, // doomednum
|
||||||
S_FIREBALL1, // spawnstate
|
S_BALLHOG1, // spawnstate
|
||||||
140, // spawnhealth
|
140, // spawnhealth
|
||||||
S_NULL, // seestate
|
S_NULL, // seestate
|
||||||
sfx_None, // seesound
|
sfx_None, // seesound
|
||||||
|
@ -14892,7 +14891,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
sfx_None, // painsound
|
sfx_None, // painsound
|
||||||
S_NULL, // meleestate
|
S_NULL, // meleestate
|
||||||
S_NULL, // missilestate
|
S_NULL, // missilestate
|
||||||
S_FIREBALLEXP1, // deathstate
|
S_NULL, // deathstate
|
||||||
S_NULL, // xdeathstate
|
S_NULL, // xdeathstate
|
||||||
sfx_mario1, // deathsound
|
sfx_mario1, // deathsound
|
||||||
0, // speed
|
0, // speed
|
||||||
|
|
21
src/info.h
21
src/info.h
|
@ -594,6 +594,7 @@ typedef enum sprite
|
||||||
SPR_JAWZ, // Jawz
|
SPR_JAWZ, // Jawz
|
||||||
SPR_SSMN, // SS Mine
|
SPR_SSMN, // SS Mine
|
||||||
SPR_KRBM, // SS Mine BOOM
|
SPR_KRBM, // SS Mine BOOM
|
||||||
|
SPR_BHOG, // Ballhog
|
||||||
SPR_BLIG, // Self-Propelled Bomb
|
SPR_BLIG, // Self-Propelled Bomb
|
||||||
SPR_LIGH, // Grow/shrink beams (Metallic Maddness)
|
SPR_LIGH, // Grow/shrink beams (Metallic Maddness)
|
||||||
SPR_SINK, // Kitchen Sink
|
SPR_SINK, // Kitchen Sink
|
||||||
|
@ -3190,16 +3191,6 @@ typedef enum state
|
||||||
S_JAWZ_DEAD2,
|
S_JAWZ_DEAD2,
|
||||||
//}
|
//}
|
||||||
|
|
||||||
S_FIRETRAIL1,
|
|
||||||
S_FIRETRAIL2,
|
|
||||||
S_FIRETRAIL3,
|
|
||||||
S_FIRETRAIL4,
|
|
||||||
S_FIRETRAIL5,
|
|
||||||
S_FIRETRAIL6,
|
|
||||||
S_FIRETRAIL7,
|
|
||||||
S_FIRETRAIL8,
|
|
||||||
S_FIRETRAIL9,
|
|
||||||
|
|
||||||
// Special Stage Mine
|
// Special Stage Mine
|
||||||
S_SSMINE1,
|
S_SSMINE1,
|
||||||
S_SSMINE2,
|
S_SSMINE2,
|
||||||
|
@ -3249,6 +3240,16 @@ typedef enum state
|
||||||
S_SLOWBOOM9,
|
S_SLOWBOOM9,
|
||||||
S_SLOWBOOM10,
|
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...
|
// Self-Propelled Bomb - just an explosion for now...
|
||||||
S_BLUELIGHTNING1,
|
S_BLUELIGHTNING1,
|
||||||
S_BLUELIGHTNING2,
|
S_BLUELIGHTNING2,
|
||||||
|
|
21
src/k_kart.c
21
src/k_kart.c
|
@ -1116,25 +1116,35 @@ void K_RespawnChecker(player_t *player)
|
||||||
player->powers[pw_nocontrol] = 2;
|
player->powers[pw_nocontrol] = 2;
|
||||||
if (leveltime % 8 == 0)
|
if (leveltime % 8 == 0)
|
||||||
{
|
{
|
||||||
mobj_t *mo;
|
INT32 i;
|
||||||
fixed_t newz;
|
|
||||||
|
|
||||||
S_StartSound(player->mo, sfx_s3kcas);
|
S_StartSound(player->mo, sfx_s3kcas);
|
||||||
|
|
||||||
|
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)
|
if (player->mo->eflags & MFE_VERTICALFLIP)
|
||||||
newz = player->mo->z + player->mo->height;
|
newz = player->mo->z + player->mo->height;
|
||||||
else
|
else
|
||||||
newz = player->mo->z;
|
newz = player->mo->z;
|
||||||
mo = P_SpawnMobj(player->mo->x, player->mo->y, newz, MT_DEZLASER);
|
|
||||||
|
mo = P_SpawnMobj(newx, newy, newz, MT_DEZLASER);
|
||||||
if (mo)
|
if (mo)
|
||||||
{
|
{
|
||||||
if (player->mo->eflags & MFE_VERTICALFLIP)
|
if (player->mo->eflags & MFE_VERTICALFLIP)
|
||||||
mo->eflags |= MFE_VERTICALFLIP;
|
mo->eflags |= MFE_VERTICALFLIP;
|
||||||
P_SetTarget(&mo->target, player->mo);
|
P_SetTarget(&mo->target, player->mo);
|
||||||
|
mo->angle = newangle+ANGLE_90;
|
||||||
mo->momz = (8*FRACUNIT)*P_MobjFlip(player->mo);
|
mo->momz = (8*FRACUNIT)*P_MobjFlip(player->mo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (player->kartstuff[k_respawn] > 0 && player->kartstuff[k_respawn] <= 3)
|
if (player->kartstuff[k_respawn] > 0 && player->kartstuff[k_respawn] <= 3)
|
||||||
{
|
{
|
||||||
|
@ -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
|
if (source->player && source->player->kartstuff[k_voices]) // Prevents taunt sounds from playing every time the button is pressed
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (!G_RaceGametype()) // Only in race
|
||||||
|
return;
|
||||||
|
|
||||||
// 4 seconds from before race begins, 10 seconds afterwards
|
// 4 seconds from before race begins, 10 seconds afterwards
|
||||||
if (leveltime < starttime+(10*TICRATE))
|
if (leveltime < starttime+(10*TICRATE))
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in a new issue