diff --git a/src/deh_tables.c b/src/deh_tables.c index ddbae5cbf..9c46ebc93 100644 --- a/src/deh_tables.c +++ b/src/deh_tables.c @@ -4571,6 +4571,8 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi "S_GACHABOM_EXPLOSION_4", "S_GACHABOM_WAITING", "S_GACHABOM_RETURNING", + + "S_SUPER_FLICKY", }; // RegEx to generate this from info.h: ^\tMT_([^,]+), --> \t"MT_\1", @@ -5697,6 +5699,9 @@ const char *const MOBJTYPE_LIST[] = { // array length left dynamic for sanity t "MT_LOOPENDPOINT", "MT_LOOPCENTERPOINT", + + "MT_SUPER_FLICKY", + "MT_SUPER_FLICKY_CONTROLLER", }; const char *const MOBJFLAG_LIST[] = { diff --git a/src/info.c b/src/info.c index 7d1c0023c..61da58f39 100644 --- a/src/info.c +++ b/src/info.c @@ -815,6 +815,8 @@ char sprnames[NUMSPRITES + 1][5] = "GBOM", "GCHX", + "3DFR", + // First person view sprites; this is a sprite so that it can be replaced by a specialized MD2 draw later "VIEW", }; @@ -5235,6 +5237,8 @@ state_t states[NUMSTATES] = {SPR_GCHX, 6|FF_PAPERSPRITE|FF_ANIMATE|FF_REVERSEANIM, 14, {NULL}, 6, 2, S_GACHABOM_WAITING}, // S_GACHABOM_EXPLOSION_4 {SPR_GBOM, FF_INVERT, 8, {A_SetScale}, FRACUNIT, 0, S_GACHABOM_RETURNING}, // S_GACHABOM_WAITING {SPR_GBOM, FF_INVERT, -1, {A_SetScale}, FRACUNIT/2, 1, S_NULL}, // S_GACHABOM_RETURNING + + {SPR_3DFR, 1|FF_ANIMATE, -1, {NULL}, 2, 5, S_NULL}, // S_SUPER_FLICKY }; mobjinfo_t mobjinfo[NUMMOBJTYPES] = @@ -29794,6 +29798,60 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = MF_NOSECTOR|MF_NOBLOCKMAP|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_DONTENCOREMAP, // flags S_NULL // raisestate }, + + { // MT_SUPER_FLICKY + -1, // doomednum + S_SUPER_FLICKY, // 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 + 16*FRACUNIT, // radius + 32*FRACUNIT, // height + 0, // display offset + 0, // mass + 0, // damage + sfx_None, // activesound + MF_SPECIAL|MF_NOGRAVITY|MF_NOCLIP|MF_NOCLIPHEIGHT, // flags + S_NULL // raisestate + }, + + { // MT_SUPER_FLICKY_CONTROLLER + -1, // doomednum + S_INVISIBLE, // 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 + 16*FRACUNIT, // radius + 32*FRACUNIT, // height + 0, // display offset + 0, // mass + 0, // damage + sfx_None, // activesound + MF_NOSECTOR|MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_SCENERY, // flags + S_NULL // raisestate + }, }; skincolor_t skincolors[MAXSKINCOLORS] = { diff --git a/src/info.h b/src/info.h index a203dbc3d..ea4df4be3 100644 --- a/src/info.h +++ b/src/info.h @@ -1368,6 +1368,8 @@ typedef enum sprite SPR_GBOM, SPR_GCHX, + SPR_3DFR, + // First person view sprites; this is a sprite so that it can be replaced by a specialized MD2 draw later SPR_VIEW, @@ -5667,6 +5669,8 @@ typedef enum state S_GACHABOM_WAITING, S_GACHABOM_RETURNING, + S_SUPER_FLICKY, + S_FIRSTFREESLOT, S_LASTFREESLOT = S_FIRSTFREESLOT + NUMSTATEFREESLOTS - 1, NUMSTATES @@ -6812,6 +6816,9 @@ typedef enum mobj_type MT_LOOPENDPOINT, MT_LOOPCENTERPOINT, + MT_SUPER_FLICKY, + MT_SUPER_FLICKY_CONTROLLER, + MT_FIRSTFREESLOT, MT_LASTFREESLOT = MT_FIRSTFREESLOT + NUMMOBJFREESLOTS - 1, NUMMOBJTYPES