Add Ivo Ball states

This commit is contained in:
James R 2023-11-25 04:53:13 -08:00
parent 1cadcf8804
commit b36695db8d
6 changed files with 106 additions and 0 deletions

View file

@ -4828,6 +4828,9 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi
// MT_THRUSTERPART
"S_THRUSTERPART",
// MT_IVOBALL
"S_IVOBALL",
};
// RegEx to generate this from info.h: ^\tMT_([^,]+), --> \t"MT_\1",
@ -6050,6 +6053,10 @@ const char *const MOBJTYPE_LIST[] = { // array length left dynamic for sanity t
"MT_GGZICESHATTER",
"MT_SIDEWAYSFREEZETHRUSTER",
"MT_THRUSTERPART",
"MT_IVOBALL",
"MT_PATROLIVOBALL",
"MT_AIRIVOBALL",
};
const char *const MOBJFLAG_LIST[] = {

View file

@ -5674,6 +5674,9 @@ state_t states[NUMSTATES] =
// MT_THRUSTERPART
{SPR_SFTR, 0|FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_THRUSTERPART}, // S_THRUSTERPART
// MT_IVOBALL
{SPR_BSPH, 2|FF_SEMIBRIGHT, -1, {NULL}, 0, 0, S_NULL}, // S_IVOBALL
};
mobjinfo_t mobjinfo[NUMMOBJTYPES] =
@ -32118,6 +32121,85 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_SCENERY|MF_NOCLIPTHING, // flags
S_NULL // raisestate
},
{ // MT_IVOBALL
3792, // doomednum
S_IVOBALL, // spawnstate
1000, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
0, // 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
40*FRACUNIT, // radius
128*FRACUNIT, // height
0, // dispoffset
0, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIP|MF_SCENERY|MF_SPECIAL|MF_NOGRAVITY, // flags
S_NULL // raisestate
},
{ // MT_PATROLIVOBALL
3808, // doomednum
S_IVOBALL, // spawnstate
1000, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
0, // 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
28*FRACUNIT, // speed
40*FRACUNIT, // radius
128*FRACUNIT, // height
0, // dispoffset
0, // mass
0, // damage
sfx_None, // activesound
MF_SCENERY|MF_ENEMY|MF_NOBLOCKMAP, // flags
S_NULL // raisestate
},
{ // MT_AIRIVOBALL
3811, // doomednum
S_IVOBALL, // spawnstate
1000, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
0, // 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
28*FRACUNIT, // speed
50*FRACUNIT, // radius
100*FRACUNIT, // height
0, // dispoffset
0, // mass
0, // damage
sfx_None, // activesound
MF_SCENERY|MF_SPECIAL|MF_NOGRAVITY, // flags
S_NULL // raisestate
},
};

View file

@ -6099,6 +6099,9 @@ typedef enum state
// MT_THRUSTERPART
S_THRUSTERPART,
// MT_IVOBALL
S_IVOBALL,
S_FIRSTFREESLOT,
S_LASTFREESLOT = S_FIRSTFREESLOT + NUMSTATEFREESLOTS - 1,
NUMSTATES
@ -7341,6 +7344,10 @@ typedef enum mobj_type
MT_SIDEWAYSFREEZETHRUSTER,
MT_THRUSTERPART,
MT_IVOBALL,
MT_PATROLIVOBALL,
MT_AIRIVOBALL,
MT_FIRSTFREESLOT,
MT_LASTFREESLOT = MT_FIRSTFREESLOT + NUMMOBJFREESLOTS - 1,
NUMMOBJTYPES

View file

@ -11088,6 +11088,11 @@ static void P_DefaultMobjShadowScale(mobj_t *thing)
case MT_KURAGEN:
thing->shadowscale = FRACUNIT/4;
break;
case MT_IVOBALL:
case MT_PATROLIVOBALL:
case MT_AIRIVOBALL:
thing->shadowscale = FRACUNIT/2;
break;
default:
if (thing->flags & (MF_ENEMY|MF_BOSS))
thing->shadowscale = FRACUNIT;

View file

@ -1249,6 +1249,8 @@ sfxinfo_t S_sfx[NUMSFX] =
{"glgz1", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, "Ice Cube shatters"},
{"ivobal", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR, ""}, // Ivo Ball
// Damage sounds
{"dmga1", false, 255, 8, -1, NULL, 0, -1, -1, LUMPERROR, "Damaged"},
{"dmga2", false, 255, 8, -1, NULL, 0, -1, -1, LUMPERROR, "Damaged"},

View file

@ -1320,6 +1320,9 @@ typedef enum
// Ice Cube
sfx_glgz1,
// Ivo Ball
sfx_ivobal,
// Damage sounds
sfx_dmga1,
sfx_dmga2,