From 720df51b6edd031050411d1c268b311703bcb4b8 Mon Sep 17 00:00:00 2001 From: MascaraSnake Date: Mon, 27 Dec 2021 17:58:18 +0100 Subject: [PATCH] Adapt most flame jet settings to UDMF --- extras/conf/udb/Includes/SRB222_things.cfg | 24 ++++++++++++++++++++++ src/p_mobj.c | 16 +++++---------- src/p_setup.c | 6 ++++++ 3 files changed, 35 insertions(+), 11 deletions(-) diff --git a/extras/conf/udb/Includes/SRB222_things.cfg b/extras/conf/udb/Includes/SRB222_things.cfg index 7032dcca5..b07a7f8a7 100644 --- a/extras/conf/udb/Includes/SRB222_things.cfg +++ b/extras/conf/udb/Includes/SRB222_things.cfg @@ -6110,6 +6110,18 @@ udmf sprite = "internal:flameh"; width = 16; height = 40; + arg0 + { + title = "On time"; + } + arg1 + { + title = "Off time"; + } + arg2 + { + title = "Strength"; + } } 1301 { @@ -6117,6 +6129,18 @@ udmf sprite = "internal:flamev"; width = 16; height = 40; + arg0 + { + title = "On time"; + } + arg1 + { + title = "Off time"; + } + arg2 + { + title = "Strength"; + } } 1302 { diff --git a/src/p_mobj.c b/src/p_mobj.c index b1b9db68a..7a9b50c3d 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -7226,8 +7226,7 @@ static void P_FlameJetSceneryThink(mobj_t *mobj) else flame->angle += FixedAngle(mobj->fuse<movedir; + strength = (mobj->movedir ? mobj->movedir : 80)<<(FRACBITS-2); P_InstaThrust(flame, flame->angle, strength); S_StartSound(flame, sfx_fire); @@ -7257,8 +7256,7 @@ static void P_VerticalFlameJetSceneryThink(mobj_t *mobj) flame = P_SpawnMobj(mobj->x, mobj->y, mobj->z, MT_FLAMEJETFLAME); - strength = 20*FRACUNIT; - strength -= ((20*FRACUNIT)/16)*mobj->movedir; + strength = (mobj->movedir ? mobj->movedir : 80)<<(FRACBITS-2); // If deaf'd, the object spawns on the ceiling. if (mobj->flags2 & MF2_AMBUSH) @@ -12797,13 +12795,9 @@ static boolean P_SetupSpawnedMapThing(mapthing_t *mthing, mobj_t *mobj, boolean break; case MT_FLAMEJET: case MT_VERTICALFLAMEJET: - mobj->threshold = (mthing->angle >> 10) & 7; - mobj->movecount = (mthing->angle >> 13); - - mobj->threshold *= (TICRATE/2); - mobj->movecount *= (TICRATE/2); - - mobj->movedir = mthing->extrainfo; + mobj->movecount = mthing->args[0]; + mobj->threshold = mthing->args[1]; + mobj->movedir = mthing->args[2]; break; case MT_MACEPOINT: case MT_CHAINMACEPOINT: diff --git a/src/p_setup.c b/src/p_setup.c index 5e9daa327..dee0c86de 100644 --- a/src/p_setup.c +++ b/src/p_setup.c @@ -5141,6 +5141,12 @@ static void P_ConvertBinaryMap(void) P_WriteConstant(MT_ROCKCRUMBLE1 + (sides[lines[j].sidenum[0]].rowoffset >> FRACBITS), &mapthings[i].stringargs[0]); break; } + case 1300: //Flame jet (horizontal) + case 1301: //Flame jet (vertical) + mapthings[i].args[0] = (mapthings[i].angle >> 13)*TICRATE/2; + mapthings[i].args[1] = ((mapthings[i].angle >> 10) & 7)*TICRATE/2; + mapthings[i].args[2] = 80 - 5*mapthings[i].extrainfo; + break; case 1700: //Axis mapthings[i].args[2] = mapthings[i].angle & 16383; mapthings[i].args[3] = !!(mapthings[i].angle & 16384);