diff --git a/src/deh_tables.c b/src/deh_tables.c index e44c6cb52..ddbae5cbf 100644 --- a/src/deh_tables.c +++ b/src/deh_tables.c @@ -3288,6 +3288,10 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi "S_SLIPTIDEZIP", "S_INSTAWHIP", + "S_INSTAWHIP_RECHARGE1", + "S_INSTAWHIP_RECHARGE2", + "S_INSTAWHIP_RECHARGE3", + "S_INSTAWHIP_RECHARGE4", "S_BLOCKRING", "S_BLOCKBODY", @@ -5336,6 +5340,7 @@ const char *const MOBJTYPE_LIST[] = { // array length left dynamic for sanity t "MT_SLIPTIDEZIP", "MT_INSTAWHIP", + "MT_INSTAWHIP_RECHARGE", "MT_BLOCKRING", "MT_BLOCKBODY", diff --git a/src/info.c b/src/info.c index cbe5556a3..7d1c0023c 100644 --- a/src/info.c +++ b/src/info.c @@ -556,6 +556,7 @@ char sprnames[NUMSPRITES + 1][5] = "SLPT", // Sliptide zip indicator "IWHP", // Instawhip + "WPRE", // Instawhip Recharge "GRNG", // Guard ring "GBDY", // Guard body @@ -3955,6 +3956,10 @@ state_t states[NUMSTATES] = {SPR_SLPT, FF_PAPERSPRITE|0, -1, {NULL}, 0, 0, S_NULL}, // S_SLIPTIDEZIP {SPR_IWHP, FF_FLOORSPRITE|FF_ANIMATE|0, -1, {NULL}, 6, 2, S_NULL}, // S_INSTAWHIP + {SPR_NULL, 0, 1, {NULL}, 0, 0, S_INSTAWHIP_RECHARGE2}, // S_INSTAWHIP_RECHARGE1 + {SPR_NULL, 0, 0, {A_PlaySound}, sfx_s3ka0, 2, S_INSTAWHIP_RECHARGE3}, // S_INSTAWHIP_RECHARGE2 + {SPR_WPRE, FF_FULLBRIGHT|FF_FLOORSPRITE|FF_ANIMATE|0, 36, {NULL}, 17, 2, S_INSTAWHIP_RECHARGE4}, // S_INSTAWHIP_RECHARGE3 + {SPR_NULL, 0, 0, {A_PlaySound}, sfx_s3k7c, 2, S_NULL}, // S_INSTAWHIP_RECHARGE4 {SPR_GRNG, FF_FULLBRIGHT|FF_PAPERSPRITE|0, -1, {NULL}, 0, 0, S_NULL}, // S_BLOCKRING {SPR_GBDY, FF_FULLBRIGHT|FF_ANIMATE|0, -1, {NULL}, 4, 2, S_NULL}, // S_BLOCKBODY @@ -22711,6 +22716,33 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, + { // MT_INSTAWHIP_RECHARGE + -1, // doomednum + S_INSTAWHIP_RECHARGE1, // 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 + 90*FRACUNIT, // radius + 90*FRACUNIT, // height + 0, // display offset + 100, // mass + 0, // damage + sfx_None, // activesound + MF_NOBLOCKMAP|MF_NOGRAVITY|MF_NOCLIP|MF_NOCLIPHEIGHT|MF_SCENERY|MF_NOCLIPTHING|MF_DONTENCOREMAP|MF_NOSQUISH, // flags + S_INSTAWHIP_RECHARGE3 // raisestate + }, + { // MT_BLOCKRING -1, // doomednum S_BLOCKRING, // spawnstate diff --git a/src/info.h b/src/info.h index 566e23eab..a203dbc3d 100644 --- a/src/info.h +++ b/src/info.h @@ -1109,6 +1109,7 @@ typedef enum sprite SPR_SLPT, // Sliptide zip indicator SPR_IWHP, // Instawhip + SPR_WPRE, // Instawhip Recharge SPR_GRNG, // Guard ring SPR_GBDY, // Guard body @@ -4366,6 +4367,10 @@ typedef enum state S_SLIPTIDEZIP, S_INSTAWHIP, + S_INSTAWHIP_RECHARGE1, + S_INSTAWHIP_RECHARGE2, + S_INSTAWHIP_RECHARGE3, + S_INSTAWHIP_RECHARGE4, S_BLOCKRING, S_BLOCKBODY, @@ -6449,6 +6454,7 @@ typedef enum mobj_type MT_SLIPTIDEZIP, MT_INSTAWHIP, + MT_INSTAWHIP_RECHARGE, MT_BLOCKRING, MT_BLOCKBODY,