Mario power up hardcoding

This commit is contained in:
Radicalicious 2024-12-22 02:29:48 -06:00
parent 41a8bb2d24
commit fd60588262
3 changed files with 490 additions and 1 deletions

View file

@ -3329,6 +3329,53 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi
"S_WHITEDANDELION",
"S_MAR64TREE",
// Power up mushrooms
"S_LIFESHROOM",
"S_LIFESHROOM2",
"S_LIFESHROOMD",
"S_LIFESHROOM_INVISIBLE",
"S_LIFESHROOM_INVISIBLE_TOUCH",
"S_POISONSHROOM",
"S_POISONSHROOM2",
"S_POISONSHROOMD",
"S_NUKESHROOM",
"S_NUKESHROOM2",
"S_NUKESHROOMD",
"S_FORCESHROOM",
"S_FORCESHROOM2",
"S_FORCESHROOMD",
"S_ATTRACTSHROOM",
"S_ATTRACTSHROOM2",
"S_ATTRACTSHROOMD",
"S_ELEMENTALSHROOM",
"S_ELEMENTALSHROOM2",
"S_ELEMENTALSHROOMD",
"S_CLOUDSHROOM",
"S_CLOUDSHROOM2",
"S_CLOUDSHROOMD",
"S_STARMAN",
"S_STARMAN1",
"S_STARMAN2",
"S_STARMAN3",
"S_STARMAND",
"S_SPEEDWINGS",
"S_SPEEDWINGSD",
"S_PARTICLEPICKUP1",
"S_PARTICLEPICKUP2",
"S_1000SCOREAWARD",
"S_POWERUPAWARD",
"S_POWERUPAWARD1",
"S_POWERUPAWARD2",
// Nights-specific stuff
"S_NIGHTSDRONE_MAN1",
"S_NIGHTSDRONE_MAN2",
@ -4341,6 +4388,19 @@ const char *const MOBJTYPE_LIST[] = { // array length left dynamic for sanity t
"MT_WHITEDANDELION",
"MT_MAR64TREE",
// Power up mushrooms
"MT_LIFESHROOM",
"MT_LIFESHROOM_INVISIBLE",
"MT_POISONSHROOM",
"MT_NUKESHROOM",
"MT_FORCESHROOM",
"MT_ATTRACTSHROOM",
"MT_ELEMENTALSHROOM",
"MT_CLOUDSHROOM",
"MT_STARMAN",
"MT_SPEEDWINGS",
"MT_POWERUPAWARD",
// NiGHTS Stuff
"MT_AXIS",
"MT_AXISTRANSFER",

View file

@ -483,6 +483,18 @@ char sprnames[NUMSPRITES + 1][MAXSPRITENAME + 1] =
"MFWD",
"MUS3",
// Mario powerups
"MSIV", // invincibility
"MS1P", // 1-up
"MSAT", // attract
"MSFO", // force
"MSAR", // nuke
"MSWW", // whirlwind
"MSEL", // elemental
"MSSP", // speed shoes
"MEGH", // poison
"UPPB", // particle pickup
// NiGHTS Stuff
"NDRN", // NiGHTS drone
"NSPK", // NiGHTS sparkle
@ -3796,6 +3808,54 @@ state_t states[NUMSTATES] =
{SPR_MFWD, FF_ANIMATE, -1, {NULL}, 3, 6, S_NULL, 0}, // S_WHITEDANDELION
{SPR_MUS3, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_MAR64TREE
// Mario powerups
{SPR_MS1P, 0, 1, {A_FlickyHop}, FRACUNIT/6, 5*FRACUNIT, S_LIFESHROOM2, 0}, // S_LIFESHROOM
{SPR_MS1P, 0, 1, {A_FlickyAim}, ANGLE_90, 64*FRACUNIT, S_LIFESHROOM, 0}, // S_LIFESHROOM2
{SPR_MS1P, 0, 1, {A_ExtraLife}, 0, 0, S_PARTICLEPICKUP1, 0}, // S_LIFESHROOMD
{SPR_NULL, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_LIFESHROOM_INVISIBLE
{SPR_NULL, 0, 1, {A_ExtraLife}, 0, 0, S_NULL, 0}, // S_LIFESHROOM_INVISIBLE_TOUCH
{SPR_MEGH, 0, 1, {A_FlickyHop}, FRACUNIT/6, 5*FRACUNIT, S_POISONSHROOM2, 0}, // S_POISONSHROOM
{SPR_MEGH, 0, 1, {A_FlickyAim}, ANGLE_90, 64*FRACUNIT, S_POISONSHROOM, 0}, // S_POISONSHROOM2
{SPR_MEGH, 0, 1, {A_EggmanBox}, 0, 0, S_PARTICLEPICKUP1, 0}, // S_POISONSHROOMD
{SPR_MSAR, 0, 1, {A_FlickyHop}, FRACUNIT/6, 5*FRACUNIT, S_NUKESHROOM2, 0}, // S_NUKESHROOM
{SPR_MSAR, 0, 1, {A_FlickyAim}, ANGLE_90, 64*FRACUNIT, S_NUKESHROOM, 0}, // S_NUKESHROOM2
{SPR_MSAR, 0, 1, {A_GiveShield}, SH_ARMAGEDDON, 0, S_1000SCOREAWARD, 0}, // S_NUKESHROOMD
{SPR_MSFO, 0, 1, {A_FlickyHop}, FRACUNIT/6, 5*FRACUNIT, S_FORCESHROOM2, 0}, // S_FORCESHROOM
{SPR_MSFO, 0, 1, {A_FlickyAim}, ANGLE_90, 64*FRACUNIT, S_FORCESHROOM, 0}, // S_FORCESHROOM2
{SPR_MSFO, 0, 1, {A_GiveShield}, SH_FORCE|1, 0, S_1000SCOREAWARD, 0}, // S_FORCESHROOMD
{SPR_MSAT, 0, 1, {A_FlickyHop}, FRACUNIT/6, 5*FRACUNIT, S_ATTRACTSHROOM2, 0}, // S_ATTRACTSHROOM
{SPR_MSAT, 0, 1, {A_FlickyAim}, ANGLE_90, 64*FRACUNIT, S_ATTRACTSHROOM, 0}, // S_ATTRACTSHROOM2
{SPR_MSAT, 0, 1, {A_GiveShield}, SH_ATTRACT, 0, S_1000SCOREAWARD, 0}, // S_ATTRACTSHROOMD
{SPR_MSEL, 0, 1, {A_FlickyHop}, FRACUNIT/6, 5*FRACUNIT, S_ELEMENTALSHROOM2, 0}, // S_ELEMENTALSHROOM
{SPR_MSEL, 0, 1, {A_FlickyAim}, ANGLE_90, 64*FRACUNIT, S_ELEMENTALSHROOM, 0}, // S_ELEMENTALSHROOM2
{SPR_MSEL, 0, 1, {A_GiveShield}, SH_ELEMENTAL, 0, S_1000SCOREAWARD, 0}, // S_ELEMENTALSHROOMD
{SPR_MSWW, 0, 1, {A_FlickyHop}, FRACUNIT/6, 5*FRACUNIT, S_CLOUDSHROOM2, 0}, // S_CLOUDSHROOM
{SPR_MSWW, 0, 1, {A_FlickyAim}, ANGLE_90, 64*FRACUNIT, S_CLOUDSHROOM, 0}, // S_CLOUDSHROOM2
{SPR_MSWW, 0, 1, {A_GiveShield}, SH_WHIRLWIND, 0, S_1000SCOREAWARD, 0}, // S_CLOUDSHROOMD
{SPR_MSIV, 0, 1, {A_Look}, 3, 1, S_STARMAN, 0}, // S_STARMAN
{SPR_MSIV, 0, 2, {A_BunnyHop}, 7, 6, S_STARMAN2, 0}, // S_STARMAN1
{SPR_MSIV, 0, 1, {A_SmokeTrailer}, MT_BOXSPARKLE, 0, S_STARMAN3, 0}, // S_STARMAN2
{SPR_MSIV, 0, 1, {A_GhostMe}, 0, 0, S_STARMAN1, 0}, // S_STARMAN3
{SPR_MSIV, 0, 1, {A_Invincibility}, 0, 0, S_PARTICLEPICKUP1, 0}, // S_STARMAND
{SPR_MSSP, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_SPEEDWINGS
{SPR_MSSP, 0, 1, {A_SuperSneakers}, 0, 0, S_NULL, 0}, // S_SPEEDWINGSD
{SPR_UPPB, FF_ADD, 1, {A_ForceStop}, 0, 0, S_PARTICLEPICKUP2, 0}, // S_PARTICLEPICKUP1
{SPR_UPPB, 1|FF_ANIMATE|FF_ADD, 19, {NULL}, 18, 1, S_NULL, 0}, // S_PARTICLEPICKUP2
{SPR_NULL, 0, 1, {A_SpawnObjectRelative}, 0, MT_POWERUPAWARD, S_PARTICLEPICKUP1, 0}, // S_1000SCOREAWARD
{SPR_NULL, 0, 1, {NULL}, 0, 0, S_POWERUPAWARD1, 0}, // S_POWERUPAWARD
{SPR_NULL, 0, 1, {A_FindTarget}, MT_PLAYER, 0, S_POWERUPAWARD2, 0}, // S_POWERUPAWARD1
{SPR_NULL, 0, 1, {A_AwardScore}, 0, 0, S_NULL, 0}, // S_POWERUPAWARD2
// Nights Drone
{SPR_NDRN, 0, -1, {NULL}, 0, 0, S_NIGHTSDRONE_MAN2, 0}, // S_NIGHTSDRONE_MAN1
{SPR_NDRN, 0, -1, {NULL}, 0, 0, S_NIGHTSDRONE_MAN1, 0}, // S_NIGHTSDRONE_MAN2
@ -19565,7 +19625,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
100, // mass
1, // damage
sfx_mario1, // activesound
MF_SPECIAL|MF_SHOOTABLE|MF_BOUNCE, // flags
MF_SPECIAL|MF_SHOOTABLE|MF_ENEMY, // flags
S_NULL // raisestate
},
@ -20135,6 +20195,303 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate
},
{ // MT_LIFESHROOM
1826, // doomednum
S_LIFESHROOM, // 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_LIFESHROOMD, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
0, // speed
16*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL, // flags
S_NULL // raisestate
},
{ // MT_LIFESHROOM_INVISIBLE
1841, // doomednum
S_LIFESHROOM_INVISIBLE, // 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_LIFESHROOM_INVISIBLE_TOUCH, // deathstate
S_NULL, // xdeathstate
sfx_mario3, // deathsound
-3072, // speed
16*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL|MF_NOGRAVITY, // flags
S_NULL // raisestate
},
{ // MT_POISONSHROOM
2303, // doomednum
S_POISONSHROOM, // 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_POISONSHROOMD,// deathstate
S_NULL, // xdeathstate
sfx_mario3, // deathsound
0, // speed
16*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL, // flags
S_NULL // raisestate
},
{ // MT_NUKESHROOM
1829, // doomednum
S_NUKESHROOM, // 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_NUKESHROOMD, // deathstate
S_NULL, // xdeathstate
sfx_mario3, // deathsound
0, // speed
16*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL, // flags
S_NULL // raisestate
},
{ // MT_FORCESHROOM
1828, // doomednum
S_FORCESHROOM, // 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_FORCESHROOMD, // deathstate
S_NULL, // xdeathstate
sfx_mario3, // deathsound
0, // speed
16*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL, // flags
S_NULL // raisestate
},
{ // MT_ATTRACTSHROOM
1827, // doomednum
S_ATTRACTSHROOM,// 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_ATTRACTSHROOMD, // deathstate
S_NULL, // xdeathstate
sfx_mario3, // deathsound
0, // speed
16*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL, // flags
S_NULL // raisestate
},
{ // MT_ELEMENTALSHROOM
1831, // doomednum
S_ELEMENTALSHROOM, // 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_ELEMENTALSHROOMD, // deathstate
S_NULL, // xdeathstate
sfx_mario3, // deathsound
0, // speed
16*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL, // flags
S_NULL // raisestate
},
{ // MT_CLOUDSHROOM
1830, // doomednum
S_CLOUDSHROOM, // 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_CLOUDSHROOMD, // deathstate
S_NULL, // xdeathstate
sfx_mario3, // deathsound
0, // speed
16*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL, // flags
S_NULL // raisestate
},
{ // MT_STARMAN
1825, // doomednum
S_STARMAN, // spawnstate
1000, // spawnhealth
S_STARMAN1, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_None, // attacksound
S_NULL, // painstate
0, // painchance
sfx_None, // painsound
S_NULL, // meleestate
S_NULL, // missilestate
S_STARMAND, // deathstate
S_NULL, // xdeathstate
sfx_mario3, // deathsound
0, // speed
16*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL, // flags
S_NULL // raisestate
},
{ // MT_SPEEDWINGS
2304, // doomednum
S_SPEEDWINGS, // 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_SPEEDWINGSD, // deathstate
S_NULL, // xdeathstate
sfx_mario3, // deathsound
0, // speed
16*FRACUNIT, // radius
32*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SPECIAL, // flags
S_NULL // raisestate
},
{ // MT_POWERUPAWARD
-1, // doomednum
S_POWERUPAWARD, // 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_mario4, // deathsound
0, // speed
16*FRACUNIT, // radius
24*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SLIDEME|MF_NOGRAVITY, // flags
S_NULL // raisestate
},
{ // MT_AXIS
1700, // doomednum
S_INVISIBLE, // spawnstate

View file

@ -1034,6 +1034,18 @@ typedef enum sprite
SPR_MFWD,
SPR_MUS3,
// Mario powerups
SPR_MSIV, // invincibility
SPR_MS1P, // 1-up
SPR_MSAT, // attract
SPR_MSFO, // force
SPR_MSAR, // nuke
SPR_MSWW, // whirlwind
SPR_MSEL, // elemental
SPR_MSSP, // speed shoes
SPR_MEGH, // poison
SPR_UPPB, // particle pickup
// NiGHTS Stuff
SPR_NDRN, // NiGHTS drone
SPR_NSPK, // NiGHTS sparkle
@ -4175,6 +4187,53 @@ typedef enum state
S_WHITEDANDELION,
S_MAR64TREE,
// Power up mushrooms
S_LIFESHROOM,
S_LIFESHROOM2,
S_LIFESHROOMD,
S_LIFESHROOM_INVISIBLE,
S_LIFESHROOM_INVISIBLE_TOUCH,
S_POISONSHROOM,
S_POISONSHROOM2,
S_POISONSHROOMD,
S_NUKESHROOM,
S_NUKESHROOM2,
S_NUKESHROOMD,
S_FORCESHROOM,
S_FORCESHROOM2,
S_FORCESHROOMD,
S_ATTRACTSHROOM,
S_ATTRACTSHROOM2,
S_ATTRACTSHROOMD,
S_ELEMENTALSHROOM,
S_ELEMENTALSHROOM2,
S_ELEMENTALSHROOMD,
S_CLOUDSHROOM,
S_CLOUDSHROOM2,
S_CLOUDSHROOMD,
S_STARMAN,
S_STARMAN1,
S_STARMAN2,
S_STARMAN3,
S_STARMAND,
S_SPEEDWINGS,
S_SPEEDWINGSD,
S_PARTICLEPICKUP1,
S_PARTICLEPICKUP2,
S_1000SCOREAWARD,
S_POWERUPAWARD,
S_POWERUPAWARD1,
S_POWERUPAWARD2,
// Nights-specific stuff
S_NIGHTSDRONE_MAN1,
S_NIGHTSDRONE_MAN2,
@ -5214,6 +5273,19 @@ typedef enum mobj_type
MT_WHITEDANDELION,
MT_MAR64TREE,
// Power up mushrooms
MT_LIFESHROOM,
MT_LIFESHROOM_INVISIBLE,
MT_POISONSHROOM,
MT_NUKESHROOM,
MT_FORCESHROOM,
MT_ATTRACTSHROOM,
MT_ELEMENTALSHROOM,
MT_CLOUDSHROOM,
MT_STARMAN,
MT_SPEEDWINGS,
MT_POWERUPAWARD,
// NiGHTS Stuff
MT_AXIS,
MT_AXISTRANSFER,