diff --git a/src/dehacked.c b/src/dehacked.c index 584014dd..50d2b7ec 100644 --- a/src/dehacked.c +++ b/src/dehacked.c @@ -5268,6 +5268,10 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit "S_XMASPOLE", "S_CANDYCANE", "S_SNOWMAN", + "S_SNOWMANHAT", + "S_LAMPPOST1", + "S_LAMPPOST2", + "S_HANGSTAR", // Botanic Serenity's loads of scenery states "S_BSZTALLFLOWER_RED", @@ -7085,6 +7089,10 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s "MT_XMASPOLE", "MT_CANDYCANE", "MT_SNOWMAN", + "MT_SNOWMANHAT", + "MT_LAMPPOST1", + "MT_LAMPPOST2", + "MT_HANGSTAR", // Botanic Serenity "MT_BSZTALLFLOWER_RED", diff --git a/src/info.c b/src/info.c index c1659687..22c4056e 100644 --- a/src/info.c +++ b/src/info.c @@ -62,7 +62,9 @@ char sprnames[NUMSPRITES + 1][5] = "SACO","CRAB","SHAD","BRNG","BUMP","FLEN","CLAS","PSHW","ISTA","ISTB", "ARRO","ITEM","ITMO","ITMI","ITMN","WANT","PBOM","RETI","AIDU","KSPK", "LZI1","LZI2","KLIT","PALM","SHRB","TWEE","BALN","MARB","FUFO","RUST", - "BLON","VIEW" + "BLON", + "XMS4","XMS5", + "VIEW" }; // Doesn't work with g++, needs actionf_p1 (don't modify this comment) @@ -1535,6 +1537,10 @@ state_t states[NUMSTATES] = {SPR_XMS1, 0, -1, {NULL}, 0, 0, S_NULL}, // S_XMASPOLE {SPR_XMS2, 0, -1, {NULL}, 0, 0, S_NULL}, // S_CANDYCANE {SPR_XMS3, 0, -1, {NULL}, 0, 0, S_NULL}, // S_SNOWMAN + {SPR_XMS3, 1, -1, {NULL}, 0, 0, S_NULL}, // S_SNOWMANHAT + {SPR_XMS4, 0, -1, {NULL}, 0, 0, S_NULL}, // S_LAMPPOST1 + {SPR_XMS4, 1, -1, {NULL}, 0, 0, S_NULL}, // S_LAMPPOST2 + {SPR_XMS5, 0, -1, {NULL}, 0, 0, S_NULL}, // S_HANGSTAR // Loads of Botanic Serenity bullshit {SPR_BSZ1, 0, -1, {NULL}, 0, 0, S_NULL}, // S_BSZTALLFLOWER_RED @@ -9086,7 +9092,7 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = sfx_None, // deathsound 25*FRACUNIT, // speed 16*FRACUNIT, // radius - 40*FRACUNIT, // height + 64*FRACUNIT, // height 0, // display offset 100, // mass 1, // damage @@ -9095,6 +9101,114 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL // raisestate }, + { // MT_SNOWMANHAT + 1853, // doomednum + S_SNOWMANHAT, // 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 + 25*FRACUNIT, // speed + 16*FRACUNIT, // radius + 80*FRACUNIT, // height + 0, // display offset + 100, // mass + 1, // damage + sfx_None, // activesound + MF_SLIDEME|MF_SOLID|MF_PUSHABLE, // flags + S_NULL // raisestate + }, + + { // MT_LAMPPOST1 + 1854, // doomednum + S_LAMPPOST1, // 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 + 0, // speed + 8*FRACUNIT, // radius + 120*FRACUNIT, // height + 0, // display offset + 100, // mass + 1, // damage + sfx_None, // activesound + MF_SOLID|MF_SCENERY, // flags + S_NULL // raisestate + }, + + { // MT_LAMPPOST2 + 1855, // doomednum + S_LAMPPOST2, // 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 + 0, // speed + 8*FRACUNIT, // radius + 120*FRACUNIT, // height + 0, // display offset + 100, // mass + 1, // damage + sfx_None, // activesound + MF_SOLID|MF_SCENERY, // flags + S_NULL // raisestate + }, + + { // MT_HANGSTAR + 1856, // doomednum + S_HANGSTAR, // 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 + 0, // speed + FRACUNIT, // radius + 80*FRACUNIT, // height + 0, // display offset + 100, // mass + 1, // damage + sfx_None, // activesound + MF_NOBLOCKMAP|MF_NOCLIP|MF_SPAWNCEILING|MF_NOGRAVITY|MF_SCENERY, // flags + S_NULL // raisestate + }, + // No, I did not do all of this by hand. // I made a script to make all of these for me. // Ha HA. ~Inuyasha diff --git a/src/info.h b/src/info.h index a8ef3bc8..2a578bf6 100644 --- a/src/info.h +++ b/src/info.h @@ -668,6 +668,10 @@ typedef enum sprite SPR_BLON, // D2 Balloon Panic + // Xmas-specific sprites that don't fit aboxe + SPR_XMS4, + SPR_XMS5, + SPR_VIEW, // First person view sprites; this is a sprite so that it can be replaced by a specialized MD2 draw! SPR_FIRSTFREESLOT, @@ -2125,6 +2129,10 @@ typedef enum state S_XMASPOLE, S_CANDYCANE, S_SNOWMAN, + S_SNOWMANHAT, + S_LAMPPOST1, + S_LAMPPOST2, + S_HANGSTAR, // Botanic Serenity's loads of scenery states S_BSZTALLFLOWER_RED, @@ -3959,6 +3967,10 @@ typedef enum mobj_type MT_XMASPOLE, MT_CANDYCANE, MT_SNOWMAN, + MT_SNOWMANHAT, + MT_LAMPPOST1, + MT_LAMPPOST2, + MT_HANGSTAR, // Botanic Serenity scenery MT_BSZTALLFLOWER_RED,