SOC_COAT and SOC_SMOK.

To make the MT_PETSMOKER make vaping clouds for Volcanic Valley instead, apply MTF_OBJECTSPECIAL on the spawnpoint.

Since I had to compile, I ALSO discovered SOC_PALM's palmtree was already hardcoded as well!!!! Gosh dang inconsistencies...
This commit is contained in:
toaster 2018-10-23 20:44:54 +01:00
parent 86c4542a98
commit 75669a4b9b
5 changed files with 153 additions and 36 deletions

View File

@ -6776,7 +6776,6 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
"S_KLIT12",
// Various plants
"S_PALMTREE",
"S_SHRUB",
"S_TALLBUSH",
"S_AZURECITYTREE",
@ -6801,6 +6800,21 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
"S_BALLOONPOP2",
"S_BALLOONPOP3",
// Smokin' & Vapin' (Don't try this at home, kids!)
"S_PETSMOKE0",
"S_PETSMOKE1",
"S_PETSMOKE2",
"S_PETSMOKE3",
"S_PETSMOKE4",
"S_PETSMOKE5",
"S_VVVAPING0",
"S_VVVAPING1",
"S_VVVAPING2",
"S_VVVAPING3",
"S_VVVAPING4",
"S_VVVAPING5",
"S_VVVAPE",
#ifdef SEENAMES
"S_NAMECHECK",
#endif
@ -7459,7 +7473,6 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
"MT_KARMAWHEEL",
// Various plants
"MT_PALMTREE",
"MT_SHRUB",
"MT_TALLBUSH",
"MT_AZURECITYTREE",
@ -7480,6 +7493,11 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
// D2 Balloon Panic
"MT_BALLOON",
// Smokin' & Vapin' (Don't try this at home, kids!)
"MT_PETSMOKER",
"MT_PETSMOKE",
"MT_VVVAPE",
#ifdef SEENAMES
"MT_NAMECHECK",
#endif

View File

@ -62,6 +62,7 @@ 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","MARB","FUFO","RUST","BLON",
"VAPE",
"XMS4","XMS5",
"VIEW"
};
@ -3073,7 +3074,6 @@ state_t states[NUMSTATES] =
{SPR_NULL, FF_FULLBRIGHT|FF_PAPERSPRITE, 2, {A_LightningFollowPlayer}, 0, 0, S_KLIT1}, // S_KLIT12
// Various plants
{SPR_PALM, 0, -1, {NULL}, 0, 0, S_NULL}, // S_PALMTREE
{SPR_SHRB, 0, -1, {NULL}, 0, 0, S_NULL}, // S_SHRUB
{SPR_BUS2, 1, -1, {NULL}, 0, 0, S_NULL}, // S_TALLBUSH
{SPR_TWEE, 0, -1, {NULL}, 0, 0, S_NULL}, // S_AZURECITYTREE
@ -3098,6 +3098,21 @@ state_t states[NUMSTATES] =
{SPR_NULL, 0, 15*TICRATE, {NULL}, 0, 0, S_BALLOONPOP3}, // S_BALLOONPOP2
{SPR_NULL, 0, 0, {A_SpawnFreshCopy}, 0, 0, S_NULL}, // S_BALLOONPOP3
// Smokin' & Vapin' (Don't try this at home, kids!)
{SPR_SMOK, 0, 1, {A_SetScale}, FRACUNIT/2, 0, S_PETSMOKE1}, // S_PETSMOKE0
{SPR_SMOK, 0, 5, {A_SetScale}, FRACUNIT*2, 1, S_PETSMOKE2}, // S_PETSMOKE1
{SPR_SMOK, 1, 5, {A_BubbleRise}, 0, 50096, S_PETSMOKE3}, // S_PETSMOKE2
{SPR_SMOK, 2, 15, {A_BubbleRise}, 0, 50096, S_PETSMOKE4}, // S_PETSMOKE3
{SPR_SMOK, 3, 25, {A_BubbleRise}, 0, 50096, S_PETSMOKE5}, // S_PETSMOKE4
{SPR_SMOK, 4, 35, {A_BubbleRise}, 0, 50096, S_NULL}, // S_PETSMOKE5
{SPR_VAPE, 0, 1, {NULL}, 0, 0, S_VVVAPING1}, // S_VVVAPING0
{SPR_SMOK, 0, 5, {A_SetScale}, FRACUNIT*2, 1, S_VVVAPING2}, // S_VVVAPING1
{SPR_VAPE, 1, 5, {A_BubbleRise}, 0, 50096, S_VVVAPING3}, // S_VVVAPING2
{SPR_VAPE, 2, 15, {A_BubbleRise}, 0, 50096, S_VVVAPING4}, // S_VVVAPING3
{SPR_VAPE, 3, 25, {A_BubbleRise}, 0, 50096, S_VVVAPING5}, // S_VVVAPING4
{SPR_VAPE, 4, 35, {A_BubbleRise}, 0, 50096, S_NULL}, // S_VVVAPING5
{SPR_VAPE, FF_ANIMATE|FF_TRANS30, -1, {NULL}, 6, 6, S_NULL}, // S_VVVAPE
#ifdef SEENAMES
{SPR_NULL, 0, 1, {NULL}, 0, 0, S_NULL}, // S_NAMECHECK
#endif
@ -16152,14 +16167,14 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL, // deathstate
S_NULL, // xdeathstate
sfx_None, // deathsound
8, // speed
0, // speed
16*FRACUNIT, // radius
40*FRACUNIT, // height
189*FRACUNIT, // height
0, // display offset
100, // mass
0, // mass
0, // damage
sfx_None, // activesound
MF_NOCLIP|MF_SCENERY, // flags
MF_NOTHINK|MF_NOBLOCKMAP|MF_NOCLIP|MF_SCENERY, // flags
S_NULL // raisestate
},
@ -17351,33 +17366,6 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate
},
{ // MT_PALMTREE,
1482, // doomednum
S_PALMTREE, // 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
16*FRACUNIT, // radius
189*FRACUNIT, // height
0, // display offset
0, // mass
0, // damage
sfx_None, // activesound
MF_NOTHINK|MF_NOBLOCKMAP|MF_NOCLIP|MF_SCENERY, // flags
S_NULL // raisestate
},
{ // MT_SHRUB,
4022, // doomednum
S_SHRUB, // spawnstate
@ -17675,6 +17663,87 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate
},
{ // MT_PETSMOKER
2018, // 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
0, // speed
24*FRACUNIT, // radius
64*FRACUNIT, // height
0, // display offset
0, // mass
0, // damage
sfx_None, // activesound
MF_SCENERY|MF_NOBLOCKMAP|MF_NOGRAVITY, // flags
S_NULL // raisestate
},
{ // MT_PETSMOKE
-1, // doomednum
S_PETSMOKE0, // spawnstate
1000, // spawnhealth
S_NULL, // seestate
sfx_None, // seesound
8, // reactiontime
sfx_None, // attacksound
S_VVVAPING0, // 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
12*FRACUNIT, // height
0, // display offset
0, // mass
0, // damage
sfx_None, // activesound
MF_NOBLOCKMAP|MF_NOCLIP|MF_NOGRAVITY|MF_SCENERY|MF_RUNSPAWNFUNC, // flags
S_NULL // raisestate
},
{ // MT_VVVAPE
1600, // doomednum
S_VVVAPE, // 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
16*FRACUNIT, // radius
64*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_None, // activesound
MF_SCENERY|MF_NOGRAVITY|MF_NOBLOCKMAP, // flags
S_NULL // raisestate
},
// ============================================================================================================================//
#ifdef SEENAMES

View File

@ -666,6 +666,8 @@ typedef enum sprite
SPR_BLON, // D2 Balloon Panic
SPR_VAPE, // Volcanic Valley
// Xmas-specific sprites that don't fit aboxe
SPR_XMS4,
SPR_XMS5,
@ -3635,7 +3637,6 @@ typedef enum state
S_KLIT12,
// Various plants
S_PALMTREE,
S_SHRUB,
S_TALLBUSH,
S_AZURECITYTREE,
@ -3660,6 +3661,21 @@ typedef enum state
S_BALLOONPOP2,
S_BALLOONPOP3,
// Smokin' & Vapin' (Don't try this at home, kids!)
S_PETSMOKE0,
S_PETSMOKE1,
S_PETSMOKE2,
S_PETSMOKE3,
S_PETSMOKE4,
S_PETSMOKE5,
S_VVVAPING0,
S_VVVAPING1,
S_VVVAPING2,
S_VVVAPING3,
S_VVVAPING4,
S_VVVAPING5,
S_VVVAPE,
#ifdef SEENAMES
S_NAMECHECK,
#endif
@ -4335,7 +4351,6 @@ typedef enum mobj_type
MT_KARMAWHEEL,
// Various plants
MT_PALMTREE,
MT_SHRUB,
MT_TALLBUSH,
MT_AZURECITYTREE,
@ -4356,6 +4371,11 @@ typedef enum mobj_type
// D2 Balloon Panic
MT_BALLOON,
// Smokin' & Vapin' (Don't try this at home, kids!)
MT_PETSMOKER,
MT_PETSMOKE,
MT_VVVAPE,
#ifdef SEENAMES
MT_NAMECHECK,
#endif

View File

@ -9755,6 +9755,8 @@ void A_SetScale(mobj_t *actor)
return;
}
locvar1 = FixedMul(locvar1, mapheaderinfo[gamemap-1]->mobj_scale); // SRB2Kart
target->destscale = locvar1; // destination scale
if (!(locvar2 & 65535))
P_SetScale(target, locvar1); // this instantly changes current scale to var1 if used, if not destscale will alter scale to var1 anyway

View File

@ -7031,6 +7031,14 @@ void P_MobjThinker(mobj_t *mobj)
return;
}
break;
case MT_PETSMOKER:
if (!(leveltime % 10))
{
mobj_t *smok = P_SpawnMobj(mobj->x, mobj->y, mobj->z, MT_PETSMOKE);
if (mobj->spawnpoint && mobj->spawnpoint->options & MTF_OBJECTSPECIAL)
P_SetMobjStateNF(smok, smok->info->painstate); // same function, diff sprite
}
break;
//}
case MT_WATERDROP:
P_SceneryCheckWater(mobj);