mirror of
https://git.do.srb2.org/STJr/SRB2.git
synced 2025-02-24 12:42:55 +00:00
Silver Shiver trees
This commit is contained in:
parent
ae0886e279
commit
41a8bb2d24
6 changed files with 163 additions and 0 deletions
|
@ -2245,6 +2245,10 @@ const char *const STATE_LIST[] = { // array length left dynamic for sanity testi
|
||||||
"S_LAMPPOST2", // with snow
|
"S_LAMPPOST2", // with snow
|
||||||
"S_HANGSTAR",
|
"S_HANGSTAR",
|
||||||
"S_MISTLETOE",
|
"S_MISTLETOE",
|
||||||
|
"S_SSZTREE",
|
||||||
|
"S_SSZTREE_BRANCH",
|
||||||
|
"S_SSZTREE2",
|
||||||
|
"S_SSZTREE2_BRANCH",
|
||||||
// Xmas GFZ bushes
|
// Xmas GFZ bushes
|
||||||
"S_XMASBLUEBERRYBUSH",
|
"S_XMASBLUEBERRYBUSH",
|
||||||
"S_XMASBERRYBUSH",
|
"S_XMASBERRYBUSH",
|
||||||
|
@ -4114,6 +4118,10 @@ const char *const MOBJTYPE_LIST[] = { // array length left dynamic for sanity t
|
||||||
"MT_LAMPPOST2", // with snow
|
"MT_LAMPPOST2", // with snow
|
||||||
"MT_HANGSTAR",
|
"MT_HANGSTAR",
|
||||||
"MT_MISTLETOE",
|
"MT_MISTLETOE",
|
||||||
|
"MT_SSZTREE",
|
||||||
|
"MT_SSZTREE_BRANCH",
|
||||||
|
"MT_SSZTREE2",
|
||||||
|
"MT_SSZTREE2_BRANCH",
|
||||||
// Xmas GFZ bushes
|
// Xmas GFZ bushes
|
||||||
"MT_XMASBLUEBERRYBUSH",
|
"MT_XMASBLUEBERRYBUSH",
|
||||||
"MT_XMASBERRYBUSH",
|
"MT_XMASBERRYBUSH",
|
||||||
|
|
|
@ -1128,6 +1128,7 @@ static const char *credits[] = {
|
||||||
"David \"Instant Sonic\" Spencer Jr.",
|
"David \"Instant Sonic\" Spencer Jr.",
|
||||||
"\"SSNTails\"",
|
"\"SSNTails\"",
|
||||||
"Daniel \"Inazuma\" Trinh",
|
"Daniel \"Inazuma\" Trinh",
|
||||||
|
"Samuel \"Spectorious\" Tuttle",
|
||||||
"\"VelocitOni\"",
|
"\"VelocitOni\"",
|
||||||
"Jarrett \"JEV3\" Voight",
|
"Jarrett \"JEV3\" Voight",
|
||||||
"",
|
"",
|
||||||
|
|
|
@ -395,6 +395,8 @@ light_t *t_lspr[NUMSPRITES] =
|
||||||
&lspr[NOLIGHT], // SPR_XMS4
|
&lspr[NOLIGHT], // SPR_XMS4
|
||||||
&lspr[NOLIGHT], // SPR_XMS5
|
&lspr[NOLIGHT], // SPR_XMS5
|
||||||
&lspr[NOLIGHT], // SPR_XMS6
|
&lspr[NOLIGHT], // SPR_XMS6
|
||||||
|
&lspr[NOLIGHT], // SPR_SNTT
|
||||||
|
&lspr[NOLIGHT], // SPR_SSTT
|
||||||
&lspr[NOLIGHT], // SPR_FHZI
|
&lspr[NOLIGHT], // SPR_FHZI
|
||||||
&lspr[NOLIGHT], // SPR_ROSY
|
&lspr[NOLIGHT], // SPR_ROSY
|
||||||
|
|
||||||
|
|
114
src/info.c
114
src/info.c
|
@ -306,6 +306,8 @@ char sprnames[NUMSPRITES + 1][MAXSPRITENAME + 1] =
|
||||||
"XMS4", // Lamppost
|
"XMS4", // Lamppost
|
||||||
"XMS5", // Hanging Star
|
"XMS5", // Hanging Star
|
||||||
"XMS6", // Mistletoe
|
"XMS6", // Mistletoe
|
||||||
|
"SNTT", // Silver Shiver tree
|
||||||
|
"SSTT", // Silver Shiver tree with snow
|
||||||
"FHZI", // FHZ ice
|
"FHZI", // FHZ ice
|
||||||
"ROSY",
|
"ROSY",
|
||||||
|
|
||||||
|
@ -2658,6 +2660,10 @@ state_t states[NUMSTATES] =
|
||||||
{SPR_XMS4, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_LAMPPOST2
|
{SPR_XMS4, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_LAMPPOST2
|
||||||
{SPR_XMS5, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_HANGSTAR
|
{SPR_XMS5, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_HANGSTAR
|
||||||
{SPR_XMS6, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_MISTLETOE
|
{SPR_XMS6, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_MISTLETOE
|
||||||
|
{SPR_SNTT, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_SSZTREE
|
||||||
|
{SPR_SNTT, 1|FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL, 0}, // S_SSZTREE_BRANCH
|
||||||
|
{SPR_SSTT, 0, -1, {NULL}, 0, 0, S_NULL, 0}, // S_SSZTREE2
|
||||||
|
{SPR_SSTT, 1|FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL, 0}, // S_SSZTREE2_BRANCH
|
||||||
// Xmas GFZ bushes
|
// Xmas GFZ bushes
|
||||||
{SPR_BUS3, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_XMASBLUEBERRYBUSH
|
{SPR_BUS3, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_XMASBLUEBERRYBUSH
|
||||||
{SPR_BUS1, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_XMASBERRYBUSH
|
{SPR_BUS1, 1, -1, {NULL}, 0, 0, S_NULL, 0}, // S_XMASBERRYBUSH
|
||||||
|
@ -14885,6 +14891,114 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
|
||||||
S_NULL // raisestate
|
S_NULL // raisestate
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{ // MT_SSZTREE
|
||||||
|
1860, // doomednum
|
||||||
|
S_SSZTREE, // 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
|
||||||
|
20*FRACUNIT, // radius
|
||||||
|
256*FRACUNIT, // height
|
||||||
|
0, // display offset
|
||||||
|
100, // mass
|
||||||
|
1, // damage
|
||||||
|
sfx_None, // activesound
|
||||||
|
MF_SOLID|MF_SCENERY, // flags
|
||||||
|
S_NULL // raisestate
|
||||||
|
},
|
||||||
|
|
||||||
|
{ // MT_SSZTREE_BRANCH
|
||||||
|
-1, // doomednum
|
||||||
|
S_SSZTREE_BRANCH, // 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
|
||||||
|
20*FRACUNIT, // radius
|
||||||
|
256*FRACUNIT, // height
|
||||||
|
0, // display offset
|
||||||
|
100, // mass
|
||||||
|
1, // damage
|
||||||
|
sfx_None, // activesound
|
||||||
|
MF_NOBLOCKMAP|MF_NOCLIP|MF_SCENERY, // flags
|
||||||
|
S_NULL // raisestate
|
||||||
|
},
|
||||||
|
|
||||||
|
{ // MT_SSZTREE2
|
||||||
|
1861, // doomednum
|
||||||
|
S_SSZTREE2, // 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
|
||||||
|
20*FRACUNIT, // radius
|
||||||
|
256*FRACUNIT, // height
|
||||||
|
0, // display offset
|
||||||
|
100, // mass
|
||||||
|
1, // damage
|
||||||
|
sfx_None, // activesound
|
||||||
|
MF_SOLID|MF_SCENERY, // flags
|
||||||
|
S_NULL // raisestate
|
||||||
|
},
|
||||||
|
|
||||||
|
{ // MT_SSZTREE2_BRANCH
|
||||||
|
-1, // doomednum
|
||||||
|
S_SSZTREE2_BRANCH, // 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
|
||||||
|
20*FRACUNIT, // radius
|
||||||
|
256*FRACUNIT, // height
|
||||||
|
0, // display offset
|
||||||
|
100, // mass
|
||||||
|
1, // damage
|
||||||
|
sfx_None, // activesound
|
||||||
|
MF_NOBLOCKMAP|MF_NOCLIP|MF_SCENERY, // flags
|
||||||
|
S_NULL // raisestate
|
||||||
|
},
|
||||||
|
|
||||||
{ // MT_XMASBLUEBERRYBUSH
|
{ // MT_XMASBLUEBERRYBUSH
|
||||||
1859, // doomednum
|
1859, // doomednum
|
||||||
S_XMASBLUEBERRYBUSH, // spawnstate
|
S_XMASBLUEBERRYBUSH, // spawnstate
|
||||||
|
|
10
src/info.h
10
src/info.h
|
@ -857,6 +857,8 @@ typedef enum sprite
|
||||||
SPR_XMS4, // Lamppost
|
SPR_XMS4, // Lamppost
|
||||||
SPR_XMS5, // Hanging Star
|
SPR_XMS5, // Hanging Star
|
||||||
SPR_XMS6, // Mistletoe
|
SPR_XMS6, // Mistletoe
|
||||||
|
SPR_SNTT, // Silver Shiver tree
|
||||||
|
SPR_SSTT, // Silver Shiver tree with snow
|
||||||
SPR_FHZI, // FHZ Ice
|
SPR_FHZI, // FHZ Ice
|
||||||
SPR_ROSY,
|
SPR_ROSY,
|
||||||
|
|
||||||
|
@ -3089,6 +3091,10 @@ typedef enum state
|
||||||
S_LAMPPOST2, // with snow
|
S_LAMPPOST2, // with snow
|
||||||
S_HANGSTAR,
|
S_HANGSTAR,
|
||||||
S_MISTLETOE,
|
S_MISTLETOE,
|
||||||
|
S_SSZTREE,
|
||||||
|
S_SSZTREE_BRANCH,
|
||||||
|
S_SSZTREE2,
|
||||||
|
S_SSZTREE2_BRANCH,
|
||||||
// Xmas GFZ bushes
|
// Xmas GFZ bushes
|
||||||
S_XMASBLUEBERRYBUSH,
|
S_XMASBLUEBERRYBUSH,
|
||||||
S_XMASBERRYBUSH,
|
S_XMASBERRYBUSH,
|
||||||
|
@ -4985,6 +4991,10 @@ typedef enum mobj_type
|
||||||
MT_LAMPPOST2, // with snow
|
MT_LAMPPOST2, // with snow
|
||||||
MT_HANGSTAR,
|
MT_HANGSTAR,
|
||||||
MT_MISTLETOE,
|
MT_MISTLETOE,
|
||||||
|
MT_SSZTREE,
|
||||||
|
MT_SSZTREE_BRANCH,
|
||||||
|
MT_SSZTREE2,
|
||||||
|
MT_SSZTREE2_BRANCH,
|
||||||
// Xmas GFZ bushes
|
// Xmas GFZ bushes
|
||||||
MT_XMASBLUEBERRYBUSH,
|
MT_XMASBLUEBERRYBUSH,
|
||||||
MT_XMASBERRYBUSH,
|
MT_XMASBERRYBUSH,
|
||||||
|
|
28
src/p_mobj.c
28
src/p_mobj.c
|
@ -13153,6 +13153,34 @@ static boolean P_SetupSpawnedMapThing(mapthing_t *mthing, mobj_t *mobj, boolean
|
||||||
banner->angle = mobjangle + ANGLE_90;
|
banner->angle = mobjangle + ANGLE_90;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case MT_SSZTREE:
|
||||||
|
{ // Spawn the branches
|
||||||
|
angle_t mobjangle = FixedAngle((mthing->angle % 113) << FRACBITS);
|
||||||
|
mobj_t *branch = P_SpawnMobjFromMobj(mobj, FRACUNIT, 0, 0, MT_SSZTREE_BRANCH);
|
||||||
|
if (!P_MobjWasRemoved(branch))
|
||||||
|
branch->angle = mobjangle + ANGLE_22h;
|
||||||
|
branch = P_SpawnMobjFromMobj(mobj, 0, FRACUNIT, 0, MT_SSZTREE_BRANCH);
|
||||||
|
if (!P_MobjWasRemoved(branch))
|
||||||
|
branch->angle = mobjangle + ANGLE_157h;
|
||||||
|
branch = P_SpawnMobjFromMobj(mobj, -FRACUNIT, 0, 0, MT_SSZTREE_BRANCH);
|
||||||
|
if (!P_MobjWasRemoved(branch))
|
||||||
|
branch->angle = mobjangle + ANGLE_270;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case MT_SSZTREE2:
|
||||||
|
{ // Spawn the branches
|
||||||
|
angle_t mobjangle = FixedAngle((mthing->angle % 113) << FRACBITS);
|
||||||
|
mobj_t *branch = P_SpawnMobjFromMobj(mobj, FRACUNIT, 0, 0, MT_SSZTREE2_BRANCH);
|
||||||
|
if (!P_MobjWasRemoved(branch))
|
||||||
|
branch->angle = mobjangle + ANGLE_22h;
|
||||||
|
branch = P_SpawnMobjFromMobj(mobj, 0, FRACUNIT, 0, MT_SSZTREE2_BRANCH);
|
||||||
|
if (!P_MobjWasRemoved(branch))
|
||||||
|
branch->angle = mobjangle + ANGLE_157h;
|
||||||
|
branch = P_SpawnMobjFromMobj(mobj, -FRACUNIT, 0, 0, MT_SSZTREE2_BRANCH);
|
||||||
|
if (!P_MobjWasRemoved(branch))
|
||||||
|
branch->angle = mobjangle + ANGLE_270;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case MT_HHZTREE_TOP:
|
case MT_HHZTREE_TOP:
|
||||||
{ // Spawn the branches
|
{ // Spawn the branches
|
||||||
angle_t mobjangle = FixedAngle(mthing->angle << FRACBITS) & (ANGLE_90 - 1);
|
angle_t mobjangle = FixedAngle(mthing->angle << FRACBITS) & (ANGLE_90 - 1);
|
||||||
|
|
Loading…
Reference in a new issue