From 546af19c8204fba2801c32208768433d62b20103 Mon Sep 17 00:00:00 2001 From: MascaraSnake Date: Sat, 8 Jun 2019 15:50:01 +0200 Subject: [PATCH] Hardcoded oil lamp --- src/dehacked.c | 7 +++++- src/hardware/hw_light.c | 2 ++ src/info.c | 49 ++++++++++++++++++++++++++++++++++------- src/info.h | 9 +++++++- src/p_mobj.c | 7 ++++++ 5 files changed, 64 insertions(+), 10 deletions(-) diff --git a/src/dehacked.c b/src/dehacked.c index bc30a579d..986ef2eef 100644 --- a/src/dehacked.c +++ b/src/dehacked.c @@ -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", diff --git a/src/hardware/hw_light.c b/src/hardware/hw_light.c index 017911d4c..793709a2b 100644 --- a/src/hardware/hw_light.c +++ b/src/hardware/hw_light.c @@ -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 diff --git a/src/info.c b/src/info.c index 25eda22e0..2b7929ff0 100644 --- a/src/info.c +++ b/src/info.c @@ -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 diff --git a/src/info.h b/src/info.h index 7a5bc960d..e1ccecf8a 100644 --- a/src/info.h +++ b/src/info.h @@ -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, diff --git a/src/p_mobj.c b/src/p_mobj.c index bc43fbe1e..649f4b330 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -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; }