Hardcoded oil lamp

This commit is contained in:
MascaraSnake 2019-06-08 15:50:01 +02:00
parent 3d65ec7426
commit 546af19c82
5 changed files with 64 additions and 10 deletions

View File

@ -5682,7 +5682,11 @@ static const char *const STATE_LIST[] = { // array length left dynamic for sanit
"S_ARIDSIGN_CACTI",
"S_ARIDSIGN_SHARPTURN",
//Dust devil
// Oil lamp
"S_OILLAMP",
"S_OILLAMPFLARE",
// Dust devil
"S_DUSTDEVIL",
"S_DUSTLAYER1",
"S_DUSTLAYER2",
@ -7381,6 +7385,7 @@ static const char *const MOBJTYPE_LIST[] = { // array length left dynamic for s
"MT_ARIDSIGN_CAUTION",
"MT_ARIDSIGN_CACTI",
"MT_ARIDSIGN_SHARPTURN",
"MT_OILLAMP",
"MT_DUSTDEVIL",
"MT_DUSTLAYER",
"MT_ARIDDUST",

View File

@ -350,6 +350,8 @@ light_t *t_lspr[NUMSPRITES] =
&lspr[NOLIGHT], // SPR_WWSG
&lspr[NOLIGHT], // SPR_WWS2
&lspr[NOLIGHT], // SPR_WWS3
&lspr[NOLIGHT], // SPR_OILL
&lspr[NOLIGHT], // SPR_OILF
&lspr[NOLIGHT], // SPR_TAZD
&lspr[NOLIGHT], // SPR_ADST

View File

@ -245,6 +245,8 @@ char sprnames[NUMSPRITES + 1][5] =
"WWSG", // Caution Sign
"WWS2", // Cacti Sign
"WWS3", // Sharp Turn Sign
"OILL", // Oil lamp
"OILF", // Oil lamp flare
"TAZD", // Dust devil
"ADST", // Arid dust
@ -2317,16 +2319,20 @@ state_t states[NUMSTATES] =
{SPR_WWS2, FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL}, // S_ARIDSIGN_CACTI
{SPR_WWS3, FF_PAPERSPRITE, -1, {NULL}, 0, 0, S_NULL}, // S_ARIDSIGN_SHARPTURN
// Oil lamp
{SPR_OILL, FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_NULL}, // S_OILLAMP
{SPR_OILF, FF_TRANS90|FF_FULLBRIGHT, -1, {NULL}, 0, 0, S_NULL}, // S_OILLAMPFLARE
// Dust devil
{SPR_NULL, 0, 1, {A_DustDevilThink}, 0, 0, S_DUSTDEVIL}, //S_DUSTDEVIL
{SPR_TAZD, 1|FF_PAPERSPRITE|FF_TRANS70, 2 * TICRATE, {NULL}, 0, 0, S_DUSTLAYER2}, //S_DUSTLAYER1
{SPR_TAZD, 1|FF_PAPERSPRITE|FF_TRANS70, 5, {NULL}, 0, 0, S_DUSTLAYER3}, //S_DUSTLAYER2
{SPR_TAZD, 1|FF_PAPERSPRITE|FF_TRANS80, 5, {NULL}, 0, 0, S_DUSTLAYER4}, //S_DUSTLAYER3
{SPR_TAZD, 1|FF_PAPERSPRITE|FF_TRANS80, 5, {NULL}, 0, 0, S_DUSTLAYER5}, //S_DUSTLAYER4
{SPR_TAZD, 1|FF_PAPERSPRITE|FF_TRANS90, 5, {NULL}, 0, 0, S_NULL}, //S_DUSTLAYER5
{SPR_ADST, 0|FF_ANIMATE, 24, {NULL}, 3, 8, S_NULL}, //S_ARIDDUST1
{SPR_ADST, 3|FF_ANIMATE, 24, {NULL}, 3, 8, S_NULL}, //S_ARIDDUST2
{SPR_ADST, 6|FF_ANIMATE, 24, {NULL}, 3, 8, S_NULL}, //S_ARIDDUST3
{SPR_TAZD, 1|FF_PAPERSPRITE|FF_TRANS70, 2 * TICRATE, {NULL}, 0, 0, S_DUSTLAYER2}, // S_DUSTLAYER1
{SPR_TAZD, 1|FF_PAPERSPRITE|FF_TRANS70, 5, {NULL}, 0, 0, S_DUSTLAYER3}, // S_DUSTLAYER2
{SPR_TAZD, 1|FF_PAPERSPRITE|FF_TRANS80, 5, {NULL}, 0, 0, S_DUSTLAYER4}, // S_DUSTLAYER3
{SPR_TAZD, 1|FF_PAPERSPRITE|FF_TRANS80, 5, {NULL}, 0, 0, S_DUSTLAYER5}, // S_DUSTLAYER4
{SPR_TAZD, 1|FF_PAPERSPRITE|FF_TRANS90, 5, {NULL}, 0, 0, S_NULL}, // S_DUSTLAYER5
{SPR_ADST, 0|FF_ANIMATE, 24, {NULL}, 3, 8, S_NULL}, // S_ARIDDUST1
{SPR_ADST, 3|FF_ANIMATE, 24, {NULL}, 3, 8, S_NULL}, // S_ARIDDUST2
{SPR_ADST, 6|FF_ANIMATE, 24, {NULL}, 3, 8, S_NULL}, // S_ARIDDUST3
// Flame jet
{SPR_NULL, 0, 2*TICRATE, {NULL}, 0, 0, S_FLAMEJETSTART}, // S_FLAMEJETSTND
@ -11429,6 +11435,33 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] =
S_NULL // raisestate
},
{ // MT_OILLAMP
1215, // doomednum
S_OILLAMP, // spawnstate
1, // 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
22*FRACUNIT, // radius
64*FRACUNIT, // height
0, // display offset
100, // mass
0, // damage
sfx_s3k4b, // activesound
MF_SCENERY|MF_NOBLOCKMAP|MF_NOGRAVITY|MF_SPAWNCEILING, // flags
S_NULL // raisestate
},
{ // MT_DUSTDEVIL
1218, // doomednum
S_DUSTDEVIL, // spawnstate

View File

@ -477,6 +477,8 @@ typedef enum sprite
SPR_WWSG, // Caution Sign
SPR_WWS2, // Cacti Sign
SPR_WWS3, // Sharp Turn Sign
SPR_OILL, // Oil lamp
SPR_OILF, // Oil lamp flare
SPR_TAZD, // Dust devil
SPR_ADST, // Arid dust
@ -2429,7 +2431,11 @@ typedef enum state
S_ARIDSIGN_CACTI,
S_ARIDSIGN_SHARPTURN,
//Dust devil
// Oil lamp
S_OILLAMP,
S_OILLAMPFLARE,
// Dust devil
S_DUSTDEVIL,
S_DUSTLAYER1,
S_DUSTLAYER2,
@ -4148,6 +4154,7 @@ typedef enum mobj_type
MT_ARIDSIGN_CAUTION, // Caution Sign
MT_ARIDSIGN_CACTI, // Cacti Sign
MT_ARIDSIGN_SHARPTURN, // Sharp Turn Sign
MT_OILLAMP,
MT_DUSTDEVIL,
MT_DUSTLAYER,
MT_ARIDDUST,

View File

@ -9152,6 +9152,13 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type)
case MT_FBOMB:
mobj->flags2 |= MF2_EXPLOSION;
break;
case MT_OILLAMP:
{
mobj_t* overlay = P_SpawnMobj(mobj->x, mobj->y, mobj->z, MT_OVERLAY);
P_SetTarget(&overlay->target, mobj);
P_SetMobjState(overlay, S_OILLAMPFLARE);
break;
}
default:
break;
}