diff --git a/src/deh_tables.c b/src/deh_tables.c index 44195a340..6ba9f2841 100644 --- a/src/deh_tables.c +++ b/src/deh_tables.c @@ -2028,6 +2028,15 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi "S_BUBBLESHIELDWAVE5", "S_BUBBLESHIELDWAVE6", + // Bubble Shield Visuals + "S_BUBA1", + "S_BUBB1", + "S_BUBB2", + "S_BUBC1", + "S_BUBC2", + "S_BUBD1", + "S_BUBE1", + // Flame Shield "S_FLAMESHIELD1", "S_FLAMESHIELD2", @@ -3613,6 +3622,7 @@ const char *const MOBJTYPE_LIST[] = { // array length left dynamic for sanity t "MT_LIGHTNINGSHIELD", // Shields "MT_BUBBLESHIELD", + "MT_BUBBLESHIELD_VISUAL", "MT_FLAMESHIELD", "MT_FLAMESHIELDUNDERLAY", "MT_FLAMESHIELDPAPER", diff --git a/src/info.c b/src/info.c index 902575c82..252e17051 100644 --- a/src/info.c +++ b/src/info.c @@ -376,6 +376,11 @@ char sprnames[NUMSPRITES + 1][5] = "TRNQ", // SPB Manta Ring loop "THNS", // Lightning Shield "BUBS", // Bubble Shield (not Bubs) + "BUBA", // Bubble Shield Outline + "BUBB", // Bubble Shield Top Wave + "BUBC", // Bubble Shield Bottom Wave + "BUBD", // Bubble Shield Reflection + "BUBE", // Bubble Shield Underline "BWVE", // Bubble Shield waves "FLMS", // Flame Shield "FLMD", // Flame Shield dash @@ -2561,6 +2566,15 @@ state_t states[NUMSTATES] = {SPR_BWVE, FF_FULLBRIGHT|4, 1, {NULL}, 0, 0, S_BUBBLESHIELDWAVE6}, // S_BUBBLESHIELDWAVE5 {SPR_BWVE, FF_FULLBRIGHT|5, 1, {NULL}, 0, 0, S_NULL}, // S_BUBBLESHIELDWAVE6 + // Bubble Shield Visuals + {SPR_BUBA, FF_FULLBRIGHT, 1, {NULL}, 0, 0, S_BUBA1}, // S_BUBA1 + {SPR_BUBB, FF_FULLBRIGHT|FF_ANIMATE, 36, {NULL}, 8, 4, S_BUBB1}, // S_BUBB1 + {SPR_NULL, 0, 5, {NULL}, 0, 0, S_BUBB1}, // S_BUBB2 + {SPR_BUBC, FF_FULLBRIGHT|FF_ANIMATE, 36, {NULL}, 8, 4, S_BUBC1}, // S_BUBC1 + {SPR_NULL, 0, 5, {NULL}, 0, 0, S_BUBC1}, // S_BUBC2 + {SPR_BUBD, FF_FULLBRIGHT, 1, {NULL}, 0, 0, S_BUBD1}, // S_BUBD1 + {SPR_BUBE, FF_FULLBRIGHT, 1, {NULL}, 0, 0, S_BUBE1}, // S_BUBE1 + {SPR_FLMS, FF_FULLBRIGHT, 2, {NULL}, 0, 0, S_FLAMESHIELD2}, // S_FLAMESHIELD1 {SPR_FLMS, FF_FULLBRIGHT|9, 2, {NULL}, 0, 0, S_FLAMESHIELD3}, // S_FLAMESHIELD2 {SPR_FLMS, FF_FULLBRIGHT|1, 2, {NULL}, 0, 0, S_FLAMESHIELD4}, // S_FLAMESHIELD3 @@ -15389,6 +15403,33 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, + { // MT_BUBBLESHIELD_VISUAL + -1, // doomednum + S_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_NULL, // deathstate + S_NULL, // xdeathstate + sfx_None, // deathsound + 8, // speed + 28*FRACUNIT, // radius + 56*FRACUNIT, // height + 1, // display offset + 16, // mass + 0, // damage + sfx_None, // activesound + MF_NOBLOCKMAP|MF_NOCLIP|MF_NOCLIPTHING|MF_NOCLIPHEIGHT|MF_NOGRAVITY|MF_SCENERY|MF_DONTENCOREMAP, // flags + S_NULL // raisestate + }, + { // MT_FLAMESHIELD -1, // doomednum S_FLAMESHIELD1, // spawnstate diff --git a/src/info.h b/src/info.h index 0345073b7..196cd0b53 100644 --- a/src/info.h +++ b/src/info.h @@ -915,6 +915,11 @@ typedef enum sprite SPR_TRNQ, // SPB Manta Ring loop SPR_THNS, // Thunder Shield SPR_BUBS, // Bubble Shield (not Bubs) + SPR_BUBA, // Bubble Shield Outline + SPR_BUBB, // Bubble Shield Top Wave + SPR_BUBC, // Bubble Shield Bottom Wave + SPR_BUBD, // Bubble Shield Reflection + SPR_BUBE, // Bubble Shield Underline SPR_BWVE, // Bubble Shield waves SPR_FLMS, // Flame Shield SPR_FLMD, // Flame Shield dash @@ -3056,6 +3061,15 @@ typedef enum state S_BUBBLESHIELDWAVE5, S_BUBBLESHIELDWAVE6, + // Bubble Shield Visuals + S_BUBA1, + S_BUBB1, + S_BUBB2, + S_BUBC1, + S_BUBC2, + S_BUBD1, + S_BUBE1, + // Flame Shield S_FLAMESHIELD1, S_FLAMESHIELD2, @@ -4668,6 +4682,7 @@ typedef enum mobj_type MT_LIGHTNINGSHIELD, // Shields MT_BUBBLESHIELD, + MT_BUBBLESHIELD_VISUAL, MT_FLAMESHIELD, MT_FLAMESHIELDUNDERLAY, MT_FLAMESHIELDPAPER,