mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2024-11-16 09:42:33 +00:00
Finishing touches on Ballhog
- Ballhog has explosion + sound on death - Ballhog shrinks to nothing if it didn't hit anything - Replaced a Mario sound on Orbinaut - Fixed Jawz's sound effect - Fixed Mines not being removed on death pits
This commit is contained in:
parent
5a9e10c663
commit
b42d083b99
10 changed files with 138 additions and 28 deletions
|
@ -5259,4 +5259,4 @@ static void KartComeback_OnChange(void)
|
|||
comeback = (boolean)cv_kartcomeback.value;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1827,6 +1827,7 @@ static actionpointer_t actionpointers[] =
|
|||
{{A_JawzChase}, "A_JAWZCHASE"}, // SRB2kart
|
||||
{{A_JawzExplode}, "A_JAWZEXPLODE"}, // SRB2kart
|
||||
{{A_MineExplode}, "A_MINEEXPLODE"}, // SRB2kart
|
||||
{{A_BallhogExplode}, "A_BALLHOGEXPLODE"}, // SRB2kart
|
||||
{{A_OrbitNights}, "A_ORBITNIGHTS"},
|
||||
{{A_GhostMe}, "A_GHOSTME"},
|
||||
{{A_SetObjectState}, "A_SETOBJECTSTATE"},
|
||||
|
@ -6415,6 +6416,22 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
|
|||
"S_BALLHOG7",
|
||||
"S_BALLHOG8",
|
||||
"S_BALLHOG_DEAD",
|
||||
"S_BALLHOGBOOM1",
|
||||
"S_BALLHOGBOOM2",
|
||||
"S_BALLHOGBOOM3",
|
||||
"S_BALLHOGBOOM4",
|
||||
"S_BALLHOGBOOM5",
|
||||
"S_BALLHOGBOOM6",
|
||||
"S_BALLHOGBOOM7",
|
||||
"S_BALLHOGBOOM8",
|
||||
"S_BALLHOGBOOM9",
|
||||
"S_BALLHOGBOOM10",
|
||||
"S_BALLHOGBOOM11",
|
||||
"S_BALLHOGBOOM12",
|
||||
"S_BALLHOGBOOM13",
|
||||
"S_BALLHOGBOOM14",
|
||||
"S_BALLHOGBOOM15",
|
||||
"S_BALLHOGBOOM16",
|
||||
|
||||
// Self-Propelled Bomb - just an explosion for now...
|
||||
"S_BLUELIGHTNING1",
|
||||
|
@ -7173,6 +7190,7 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
|
|||
"MT_BOOMPARTICLE",
|
||||
|
||||
"MT_BALLHOG", // Ballhog
|
||||
"MT_BALLHOGBOOM",
|
||||
|
||||
"MT_BLUELIGHTNING", // Grow/shrink stuff
|
||||
"MT_BLUEEXPLOSION",
|
||||
|
|
67
src/info.c
67
src/info.c
|
@ -2725,15 +2725,31 @@ 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, {A_PlaySound}, sfx_s1bd, 1, S_BALLHOG2}, // S_BALLHOG1
|
||||
{SPR_BHOG, FF_FULLBRIGHT|1, 1, {NULL}, 0, 0, S_BALLHOG3}, // S_BALLHOG2
|
||||
{SPR_BHOG, FF_FULLBRIGHT|2, 2, {NULL}, 0, 0, S_BALLHOG4}, // S_BALLHOG3
|
||||
{SPR_BHOG, FF_FULLBRIGHT|3, 3, {NULL}, 0, 0, S_BALLHOG5}, // S_BALLHOG4
|
||||
{SPR_BHOG, FF_FULLBRIGHT|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_NULL, 0, 1, {NULL}, 0, 0, S_NULL}, // S_BALLHOG_DEAD
|
||||
{SPR_BHOG, 0, 3, {A_PlaySound}, sfx_s1bd, 1, S_BALLHOG2}, // S_BALLHOG1
|
||||
{SPR_BHOG, FF_FULLBRIGHT|1, 1, {NULL}, 0, 0, S_BALLHOG3}, // S_BALLHOG2
|
||||
{SPR_BHOG, FF_FULLBRIGHT|2, 2, {NULL}, 0, 0, S_BALLHOG4}, // S_BALLHOG3
|
||||
{SPR_BHOG, FF_FULLBRIGHT|3, 3, {NULL}, 0, 0, S_BALLHOG5}, // S_BALLHOG4
|
||||
{SPR_BHOG, FF_FULLBRIGHT|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_NULL, 0, 1, {A_BallhogExplode}, 0, 0, S_NULL}, // S_BALLHOG_DEAD
|
||||
{SPR_BHOG, FF_FULLBRIGHT|8, 1, {NULL}, 0, 0, S_BALLHOGBOOM2}, // S_BALLHOGBOOM1
|
||||
{SPR_BHOG, FF_FULLBRIGHT|9, 1, {NULL}, 0, 0, S_BALLHOGBOOM3}, // S_BALLHOGBOOM2
|
||||
{SPR_BHOG, FF_FULLBRIGHT|10, 1, {NULL}, 0, 0, S_BALLHOGBOOM4}, // S_BALLHOGBOOM3
|
||||
{SPR_BHOG, FF_FULLBRIGHT|11, 1, {NULL}, 0, 0, S_BALLHOGBOOM5}, // S_BALLHOGBOOM4
|
||||
{SPR_BHOG, FF_FULLBRIGHT|12, 1, {NULL}, 0, 0, S_BALLHOGBOOM6}, // S_BALLHOGBOOM5
|
||||
{SPR_BHOG, FF_FULLBRIGHT|13, 1, {NULL}, 0, 0, S_BALLHOGBOOM7}, // S_BALLHOGBOOM6
|
||||
{SPR_BHOG, FF_FULLBRIGHT|14, 1, {NULL}, 0, 0, S_BALLHOGBOOM8}, // S_BALLHOGBOOM7
|
||||
{SPR_BHOG, FF_FULLBRIGHT|15, 1, {NULL}, 0, 0, S_BALLHOGBOOM9}, // S_BALLHOGBOOM8
|
||||
{SPR_BHOG, FF_FULLBRIGHT|16, 1, {NULL}, 0, 0, S_BALLHOGBOOM10}, // S_BALLHOGBOOM9
|
||||
{SPR_BHOG, FF_FULLBRIGHT|17, 1, {NULL}, 0, 0, S_BALLHOGBOOM11}, // S_BALLHOGBOOM10
|
||||
{SPR_BHOG, FF_FULLBRIGHT|18, 1, {NULL}, 0, 0, S_BALLHOGBOOM12}, // S_BALLHOGBOOM11
|
||||
{SPR_BHOG, FF_FULLBRIGHT|19, 1, {NULL}, 0, 0, S_BALLHOGBOOM13}, // S_BALLHOGBOOM12
|
||||
{SPR_BHOG, FF_FULLBRIGHT|20, 1, {NULL}, 0, 0, S_BALLHOGBOOM14}, // S_BALLHOGBOOM13
|
||||
{SPR_BHOG, FF_FULLBRIGHT|21, 1, {NULL}, 0, 0, S_BALLHOGBOOM15}, // S_BALLHOGBOOM14
|
||||
{SPR_BHOG, FF_FULLBRIGHT|22, 1, {NULL}, 0, 0, S_BALLHOGBOOM16}, // S_BALLHOGBOOM15
|
||||
{SPR_BHOG, FF_FULLBRIGHT|23, 1, {NULL}, 0, 0, S_NULL}, // S_BALLHOGBOOM16
|
||||
|
||||
{SPR_BLIG, 0, 2, {NULL}, 0, 0, S_BLUELIGHTNING2}, // S_BLUELIGHTNING1
|
||||
{SPR_BLIG, 1, 2, {NULL}, 0, 0, S_BLUELIGHTNING3}, // S_BLUELIGHTNING2
|
||||
|
@ -14603,13 +14619,13 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_NULL, // seestate
|
||||
sfx_tossed, // seesound
|
||||
8, // reactiontime
|
||||
sfx_mario1, // attacksound
|
||||
sfx_s3k49, // attacksound
|
||||
S_NULL, // painstate
|
||||
0, // painchance
|
||||
sfx_None, // painsound
|
||||
S_NULL, // meleestate
|
||||
S_NULL, // missilestate
|
||||
S_ORBINAUT_DEAD, // deathstate
|
||||
S_ORBINAUT_DEAD,// deathstate
|
||||
S_NULL, // xdeathstate
|
||||
sfx_shbrk, // deathsound
|
||||
64*FRACUNIT, // speed
|
||||
|
@ -14935,7 +14951,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_NULL, // missilestate
|
||||
S_BALLHOG_DEAD, // deathstate
|
||||
S_NULL, // xdeathstate
|
||||
sfx_mario1, // deathsound
|
||||
sfx_hogbom, // deathsound
|
||||
0, // speed
|
||||
16*FRACUNIT, // radius
|
||||
32*FRACUNIT, // height
|
||||
|
@ -14947,6 +14963,33 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
|||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_BALLHOGBOOM
|
||||
-1, // doomednum
|
||||
S_BALLHOGBOOM1, // 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
|
||||
16*FRACUNIT, // radius
|
||||
32*FRACUNIT, // height
|
||||
0, // display offset
|
||||
100, // mass
|
||||
1, // damage
|
||||
sfx_None, // activesound
|
||||
MF_NOGRAVITY|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOCLIPTHING, // flags
|
||||
S_NULL // raisestate
|
||||
},
|
||||
|
||||
{ // MT_BLUELIGHTNING
|
||||
-1, // doomednum
|
||||
S_BLUELIGHTNING1, // spawnstate
|
||||
|
|
18
src/info.h
18
src/info.h
|
@ -167,6 +167,7 @@ void A_ItemPop(); // SRB2kart
|
|||
void A_JawzChase(); // SRB2kart
|
||||
void A_JawzExplode(); // SRB2kart
|
||||
void A_MineExplode(); // SRB2kart
|
||||
void A_BallhogExplode(); // SRB2kart
|
||||
void A_OrbitNights();
|
||||
void A_GhostMe();
|
||||
void A_SetObjectState();
|
||||
|
@ -3254,6 +3255,22 @@ typedef enum state
|
|||
S_BALLHOG7,
|
||||
S_BALLHOG8,
|
||||
S_BALLHOG_DEAD,
|
||||
S_BALLHOGBOOM1,
|
||||
S_BALLHOGBOOM2,
|
||||
S_BALLHOGBOOM3,
|
||||
S_BALLHOGBOOM4,
|
||||
S_BALLHOGBOOM5,
|
||||
S_BALLHOGBOOM6,
|
||||
S_BALLHOGBOOM7,
|
||||
S_BALLHOGBOOM8,
|
||||
S_BALLHOGBOOM9,
|
||||
S_BALLHOGBOOM10,
|
||||
S_BALLHOGBOOM11,
|
||||
S_BALLHOGBOOM12,
|
||||
S_BALLHOGBOOM13,
|
||||
S_BALLHOGBOOM14,
|
||||
S_BALLHOGBOOM15,
|
||||
S_BALLHOGBOOM16,
|
||||
|
||||
// Self-Propelled Bomb - just an explosion for now...
|
||||
S_BLUELIGHTNING1,
|
||||
|
@ -4029,6 +4046,7 @@ typedef enum mobj_type
|
|||
MT_BOOMPARTICLE,
|
||||
|
||||
MT_BALLHOG, // Ballhog
|
||||
MT_BALLHOGBOOM,
|
||||
|
||||
MT_BLUELIGHTNING, // Grow/shrink stuff
|
||||
MT_BLUEEXPLOSION,
|
||||
|
|
|
@ -2046,6 +2046,10 @@ static mobj_t *K_SpawnKartMissile(mobj_t *source, mobjtype_t type, angle_t angle
|
|||
else
|
||||
th->color = SKINCOLOR_CLOUDY;
|
||||
}
|
||||
else if (type == MT_JAWZ || type == MT_JAWZ_DUD)
|
||||
{
|
||||
S_StartSound(th, th->info->activesound);
|
||||
}
|
||||
|
||||
x = x + P_ReturnThrustX(source, an, source->radius + th->radius);
|
||||
y = y + P_ReturnThrustY(source, an, source->radius + th->radius);
|
||||
|
|
|
@ -191,6 +191,7 @@ void A_ItemPop(mobj_t *actor); // SRB2kart
|
|||
void A_JawzChase(mobj_t *actor); // SRB2kart
|
||||
void A_JawzExplode(mobj_t *actor); // SRB2kart
|
||||
void A_MineExplode(mobj_t *actor); // SRB2kart
|
||||
void A_BallhogExplode(mobj_t *actor); // SRB2kart
|
||||
void A_OrbitNights(mobj_t *actor);
|
||||
void A_GhostMe(mobj_t *actor);
|
||||
void A_SetObjectState(mobj_t *actor);
|
||||
|
@ -8092,7 +8093,7 @@ void A_ToggleFlameJet(mobj_t* actor)
|
|||
}
|
||||
}
|
||||
|
||||
//{ SRB2kart - A_ItemPop, A_JawzChase, A_JawzExplode, and A_MineExplode
|
||||
//{ SRB2kart - A_ItemPop, A_JawzChase, A_JawzExplode, A_MineExplode, and A_BallhogExplode
|
||||
void A_ItemPop(mobj_t *actor)
|
||||
{
|
||||
mobj_t *remains;
|
||||
|
@ -8361,6 +8362,21 @@ void A_MineExplode(mobj_t *actor)
|
|||
|
||||
return;
|
||||
}
|
||||
|
||||
void A_BallhogExplode(mobj_t *actor)
|
||||
{
|
||||
mobj_t *mo2;
|
||||
#ifdef HAVE_BLUA
|
||||
if (LUA_CallAction("A_BallhogExplode", actor))
|
||||
return;
|
||||
#endif
|
||||
|
||||
mo2 = P_SpawnMobj(actor->x, actor->y, actor->z, MT_BALLHOGBOOM);
|
||||
P_SetScale(mo2, actor->scale*2);
|
||||
mo2->destscale = mo2->scale;
|
||||
S_StartSound(mo2, actor->info->deathsound);
|
||||
return;
|
||||
}
|
||||
//}
|
||||
|
||||
// Function: A_OrbitNights
|
||||
|
|
|
@ -881,7 +881,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
|||
return true;
|
||||
|
||||
if (tmthing->type == MT_BALLHOG && thing->type == MT_BALLHOG)
|
||||
return true; // Fireballs don't collide with eachother
|
||||
return true; // Ballhogs don't collide with eachother
|
||||
|
||||
if (thing->player && thing->player->powers[pw_flashing])
|
||||
return true;
|
||||
|
|
23
src/p_mobj.c
23
src/p_mobj.c
|
@ -1723,14 +1723,22 @@ void P_XYMovement(mobj_t *mo)
|
|||
if (CheckForBustableBlocks && mo->flags & MF_PUSHABLE)
|
||||
P_PushableCheckBustables(mo);
|
||||
|
||||
//{ SRB2kart - Fireball
|
||||
//{ SRB2kart - Ballhogs
|
||||
if (mo->type == MT_BALLHOG)
|
||||
{
|
||||
mo->health--;
|
||||
if (mo->health == 0)
|
||||
if (mo->health)
|
||||
{
|
||||
S_StartSound(mo, mo->info->deathsound);
|
||||
P_SetMobjState(mo, mo->info->deathstate);
|
||||
mo->health--;
|
||||
if (mo->health == 0)
|
||||
mo->destscale = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (mo->scale < mapheaderinfo[gamemap-1]->mobj_scale/16)
|
||||
{
|
||||
P_RemoveMobj(mo);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
//}
|
||||
|
@ -2336,6 +2344,7 @@ static boolean P_ZMovement(mobj_t *mo)
|
|||
case MT_JAWZ:
|
||||
case MT_JAWZ_DUD:
|
||||
case MT_BALLHOG:
|
||||
case MT_SSMINE:
|
||||
// Remove stuff from death pits.
|
||||
if (P_CheckDeathPitCollide(mo))
|
||||
{
|
||||
|
@ -8005,7 +8014,7 @@ void P_MobjThinker(mobj_t *mobj)
|
|||
|
||||
if (mobj->threshold > 0)
|
||||
mobj->threshold--;
|
||||
if (leveltime % 7 == 0)
|
||||
if (leveltime % TICRATE == 0)
|
||||
S_StartSound(mobj, mobj->info->activesound);
|
||||
|
||||
if (gamespeed == 0)
|
||||
|
@ -8079,7 +8088,7 @@ void P_MobjThinker(mobj_t *mobj)
|
|||
if (mobj->threshold > 0)
|
||||
mobj->threshold--;
|
||||
|
||||
if (leveltime % 7 == 0)
|
||||
if (leveltime % TICRATE == 0)
|
||||
S_StartSound(mobj, mobj->info->activesound);
|
||||
|
||||
break;
|
||||
|
|
|
@ -147,9 +147,6 @@ sfxinfo_t S_sfx[NUMSFX] =
|
|||
{"drown", false, 192, 0, -1, NULL, 0, -1, -1, LUMPERROR},
|
||||
{"fizzle", false, 127, 8, -1, NULL, 0, -1, -1, LUMPERROR},
|
||||
{"gbeep", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR}, // Grenade beep
|
||||
{"yeeeah", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
|
||||
{"noooo1", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
|
||||
{"noooo2", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
|
||||
{"ghit" , false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
|
||||
{"gloop", false, 60, 0, -1, NULL, 0, -1, -1, LUMPERROR},
|
||||
{"gspray", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
|
||||
|
@ -809,6 +806,10 @@ sfxinfo_t S_sfx[NUMSFX] =
|
|||
{"boing", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
|
||||
{"smkinv", false, 140, 8, -1, NULL, 0, -1, -1, LUMPERROR},
|
||||
{"screec", false, 52, 0, -1, NULL, 0, -1, -1, LUMPERROR},
|
||||
{"yeeeah", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
|
||||
{"noooo1", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
|
||||
{"noooo2", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
|
||||
{"hogbom", false, 110, 8, -1, NULL, 0, -1, -1, LUMPERROR},
|
||||
|
||||
// SRB2kart - Skin sounds
|
||||
{"kwin", false, 64, 0, -1, NULL, 0, SKSWIN, -1, LUMPERROR},
|
||||
|
|
|
@ -219,9 +219,6 @@ typedef enum
|
|||
sfx_drown,
|
||||
sfx_fizzle,
|
||||
sfx_gbeep,
|
||||
sfx_yeeeah,
|
||||
sfx_noooo1,
|
||||
sfx_noooo2,
|
||||
sfx_ghit,
|
||||
sfx_gloop,
|
||||
sfx_gspray,
|
||||
|
@ -881,6 +878,10 @@ typedef enum
|
|||
sfx_boing,
|
||||
sfx_smkinv,
|
||||
sfx_screec,
|
||||
sfx_yeeeah,
|
||||
sfx_noooo1,
|
||||
sfx_noooo2,
|
||||
sfx_hogbom,
|
||||
|
||||
sfx_kwin,
|
||||
sfx_klose,
|
||||
|
|
Loading…
Reference in a new issue