From 74e3ea89d6ddcb55433141fd91c86d4366d550a1 Mon Sep 17 00:00:00 2001 From: James R Date: Sun, 11 Jun 2023 22:06:54 -0700 Subject: [PATCH] Add Gachabom Explosion states - Includes animation --- src/deh_tables.c | 10 ++++++++++ src/info.c | 37 +++++++++++++++++++++++++++++++++++++ src/info.h | 11 +++++++++++ 3 files changed, 58 insertions(+) diff --git a/src/deh_tables.c b/src/deh_tables.c index c58a4bb0c..c9b05a348 100644 --- a/src/deh_tables.c +++ b/src/deh_tables.c @@ -4556,6 +4556,15 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi "S_SPECIAL_UFO_STEM", "S_GACHABOM", + "S_GACHABOM_DEAD", + + "S_GACHABOM_EXPLOSION_1", + "S_GACHABOM_EXPLOSION_2", + "S_GACHABOM_EXPLOSION_3A", + "S_GACHABOM_EXPLOSION_3B", + "S_GACHABOM_EXPLOSION_4", + "S_GACHABOM_WAITING", + "S_GACHABOM_RETURNING", }; // RegEx to generate this from info.h: ^\tMT_([^,]+), --> \t"MT_\1", @@ -5415,6 +5424,7 @@ const char *const MOBJTYPE_LIST[] = { // array length left dynamic for sanity t "MT_SINKTRAIL", "MT_GACHABOM", + "MT_GACHABOM_REBOUND", "MT_DUELBOMB", // Duel mode bombs diff --git a/src/info.c b/src/info.c index b7bddd784..5f34fac82 100644 --- a/src/info.c +++ b/src/info.c @@ -810,6 +810,7 @@ char sprnames[NUMSPRITES + 1][5] = "UQMK", "GBOM", + "GCHX", // First person view sprites; this is a sprite so that it can be replaced by a specialized MD2 draw later "VIEW", @@ -5216,6 +5217,15 @@ state_t states[NUMSTATES] = {SPR_UFOS, 0, -1, {NULL}, 0, 0, S_NULL}, // S_SPECIAL_UFO_STEM {SPR_GBOM, FF_ANIMATE, -1, {NULL}, 3, 1, S_NULL}, // S_GACHABOM + {SPR_GBOM, FF_INVERT, 2, {NULL}, 0, 0, S_NULL}, // S_GACHABOM_DEAD + + {SPR_NULL, 0, 1, {NULL}, 0, 0, S_GACHABOM_EXPLOSION_2}, + {SPR_GCHX, 0|FF_PAPERSPRITE|FF_ANIMATE, 14, {NULL}, 6, 2, S_GACHABOM_EXPLOSION_3A}, // S_GACHABOM_EXPLOSION_2 + {SPR_GCHX, 6|FF_PAPERSPRITE|FF_ANIMATE, 4, {NULL}, 1, 2, S_GACHABOM_EXPLOSION_3B}, // S_GACHABOM_EXPLOSION_3A + {SPR_NULL, 0|FF_PAPERSPRITE, 0, {A_Repeat}, 8, S_GACHABOM_EXPLOSION_3A, S_GACHABOM_EXPLOSION_4}, // S_GACHABOM_EXPLOSION_3B + {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 }; mobjinfo_t mobjinfo[NUMMOBJTYPES] = @@ -24587,6 +24597,33 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, + { // MT_GACHABOM_REBOUND + -1, // doomednum + S_GACHABOM_EXPLOSION_1, // spawnstate + 1, // 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_GACHABOM_DEAD, // 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_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_NOCLIPTHING|MF_DONTENCOREMAP|MF_NOSQUISH, // flags + S_NULL // raisestate + }, + { // MT_DUELBOMB 2050, // doomednum S_SPB1, // spawnstate diff --git a/src/info.h b/src/info.h index 7c770562a..ea28b56c8 100644 --- a/src/info.h +++ b/src/info.h @@ -1363,6 +1363,7 @@ typedef enum sprite SPR_UQMK, SPR_GBOM, + SPR_GCHX, // First person view sprites; this is a sprite so that it can be replaced by a specialized MD2 draw later SPR_VIEW, @@ -5647,6 +5648,15 @@ typedef enum state S_SPECIAL_UFO_STEM, S_GACHABOM, + S_GACHABOM_DEAD, + + S_GACHABOM_EXPLOSION_1, + S_GACHABOM_EXPLOSION_2, + S_GACHABOM_EXPLOSION_3A, + S_GACHABOM_EXPLOSION_3B, + S_GACHABOM_EXPLOSION_4, + S_GACHABOM_WAITING, + S_GACHABOM_RETURNING, S_FIRSTFREESLOT, S_LASTFREESLOT = S_FIRSTFREESLOT + NUMSTATEFREESLOTS - 1, @@ -6525,6 +6535,7 @@ typedef enum mobj_type MT_SINKTRAIL, MT_GACHABOM, + MT_GACHABOM_REBOUND, MT_DUELBOMB, // Duel mode bombs