Terrain Def Mapheader toggle
This commit is contained in:
parent
b8c0b29606
commit
012df40fcd
9 changed files with 56 additions and 13 deletions
|
|
@ -14,5 +14,6 @@
|
|||
#include "../deh_soc.h"
|
||||
|
||||
boolean B_UseWallTransfer(void);
|
||||
boolean B_UseTerrainDef(void);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -14,6 +14,12 @@ boolean B_UseWallTransfer(void)
|
|||
{
|
||||
const mapheader_t *mapheader = mapheaderinfo[gamemap - 1];
|
||||
boolean value = false;
|
||||
|
||||
if (mapnamespace == MNS_RINGRACERS)
|
||||
return true;
|
||||
|
||||
if (cv_kartwalltransfer.value)
|
||||
return true;
|
||||
|
||||
if (mapheader->use_walltransfer == true)
|
||||
value = true;
|
||||
|
|
@ -21,11 +27,23 @@ boolean B_UseWallTransfer(void)
|
|||
if (mapheader->use_walltransfer == false)
|
||||
value = false;
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
// Map header toggle for TerrainDefs.
|
||||
boolean B_UseTerrainDef(void)
|
||||
{
|
||||
const mapheader_t *mapheader = mapheaderinfo[gamemap - 1];
|
||||
boolean value = false;
|
||||
|
||||
if (mapnamespace == MNS_RINGRACERS)
|
||||
return true;
|
||||
|
||||
if (mapheader->use_terrain == true)
|
||||
value = true;
|
||||
|
||||
if (cv_kartwalltransfer.value)
|
||||
value = true;
|
||||
if (mapheader->use_terrain == false)
|
||||
value = false;
|
||||
|
||||
return value;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1542,6 +1542,13 @@ void readlevelheader(MYFILE *f, char * name)
|
|||
mapheaderinfo[num]->use_walltransfer = true;
|
||||
else
|
||||
mapheaderinfo[num]->use_walltransfer = false;
|
||||
}
|
||||
else if (fastcmp(word, "TERRAIN") || fastcmp(word, "TERRAINDEF"))
|
||||
{
|
||||
if (i || word2[0] == 'T' || word2[0] == 'Y')
|
||||
mapheaderinfo[num]->use_terrain = true;
|
||||
else
|
||||
mapheaderinfo[num]->use_terrain = false;
|
||||
}
|
||||
// ignored for compatibility
|
||||
else if (fastcmp(word, "NEXTLEVEL") || fastcmp(word, "TIMEATTACK") || fastcmp(word, "RECORDATTACK"))
|
||||
|
|
|
|||
|
|
@ -441,7 +441,8 @@ struct mapheader_t
|
|||
customoption_t *customopts; ///< Custom options. Allocated dynamically for space reasons. Be careful.
|
||||
|
||||
// BlanKart
|
||||
boolean use_walltransfer; ///< Whether to use DRRR style wall transfering or not
|
||||
boolean use_walltransfer; ///< Whether to use RR style wall transfering or not
|
||||
boolean use_terrain; ///< Whether to use gameplay affecting Terrain effects or not (leaves visuals alone)
|
||||
};
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -34,6 +34,8 @@
|
|||
#include "m_perfstats.h"
|
||||
#include "k_objects.h"
|
||||
|
||||
#include "blan/b_soc.h"
|
||||
|
||||
/*--------------------------------------------------
|
||||
static BlockItReturn_t K_FindEggboxes(mobj_t *thing)
|
||||
|
||||
|
|
@ -139,7 +141,7 @@ static boolean K_BotHatesThisSectorsSpecial(player_t *player, sector_t *sec, con
|
|||
{
|
||||
terrain_t *terrain = K_GetTerrainForFlatNum(flip ? sec->ceilingpic : sec->floorpic);
|
||||
|
||||
if (terrain != NULL)
|
||||
if (terrain != NULL && B_UseTerrainDef())
|
||||
{
|
||||
if (terrain->damageType != SD_NONE)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -63,6 +63,8 @@
|
|||
#include "k_follower.h"
|
||||
#include "k_grandprix.h"
|
||||
|
||||
#include "blan/b_soc.h"
|
||||
|
||||
consvar_t cv_kartstacking_colorflame = CVAR_INIT ("kartstacking_colorflame", "On", CV_SAVE, CV_OnOff, NULL);
|
||||
consvar_t cv_kartstacking_sneakerstacksound = CVAR_INIT ("kartstacking_sneakerstacksound", "On", CV_SAVE, CV_OnOff, NULL);
|
||||
consvar_t cv_kartchainingsound = CVAR_INIT ("kartchaining_chainsound", "On", CV_SAVE, CV_OnOff, NULL);
|
||||
|
|
@ -2107,7 +2109,7 @@ static void K_UpdateOffroad(player_t *player)
|
|||
fixed_t offroadstrength = 0;
|
||||
|
||||
// TODO: Make this use actual special touch code.
|
||||
if (terrain != NULL && terrain->offroad > 0)
|
||||
if (terrain != NULL && terrain->offroad > 0 && B_UseTerrainDef())
|
||||
{
|
||||
offroadstrength = (terrain->offroad << FRACBITS);
|
||||
}
|
||||
|
|
@ -3811,7 +3813,7 @@ fixed_t K_GetNewSpeed(player_t *player)
|
|||
fixed_t minspeed = 24*hscale;
|
||||
fixed_t maxspeed = 28*hscale;
|
||||
|
||||
if (player->mo->terrain)
|
||||
if (player->mo->terrain && B_UseTerrainDef())
|
||||
{
|
||||
minspeed = player->mo->terrain->pogoSpringMin*hscale;
|
||||
maxspeed = player->mo->terrain->pogoSpringMax*hscale;
|
||||
|
|
|
|||
|
|
@ -31,6 +31,8 @@
|
|||
|
||||
#include "k_kart.h" // on the chopping block...
|
||||
|
||||
#include "blan/b_soc.h"
|
||||
|
||||
static t_splash_t *splashDefs = NULL;
|
||||
static size_t numSplashDefs = 0;
|
||||
|
||||
|
|
@ -567,6 +569,12 @@ void K_ProcessTerrainEffect(mobj_t *mo)
|
|||
return;
|
||||
}
|
||||
|
||||
if (!B_UseTerrainDef())
|
||||
{
|
||||
// Terrain has been disabled for this map.
|
||||
return;
|
||||
}
|
||||
|
||||
terrain = mo->terrain;
|
||||
player = mo->player;
|
||||
|
||||
|
|
@ -1637,17 +1645,18 @@ static void K_TerrainDefaults(terrain_t *terrain)
|
|||
|
||||
boolean K_TerrainHasAffect(terrain_t *terrain, boolean badonly)
|
||||
{
|
||||
if (!B_UseTerrainDef())
|
||||
return false;
|
||||
|
||||
if (terrain->friction > 0
|
||||
|| terrain->offroad != 0
|
||||
|| terrain->damageType != -1)
|
||||
//|| (terrain->flags & TRF_STAIRJANK))
|
||||
return true;
|
||||
|
||||
if (badonly)
|
||||
return false;
|
||||
|
||||
return (terrain->friction != 0
|
||||
//|| terrain->trickPanel != 0
|
||||
|| terrain->speedPad != 0
|
||||
|| terrain->springStrength != 0
|
||||
|| terrain->flags != 0);
|
||||
|
|
|
|||
|
|
@ -3173,7 +3173,7 @@ void P_MobjCheckWater(mobj_t *mobj)
|
|||
}
|
||||
}
|
||||
|
||||
if (mobj->terrain != NULL)
|
||||
if (mobj->terrain != NULL && B_UseTerrainDef())
|
||||
{
|
||||
if (mobj->terrain->flags & TRF_LIQUID)
|
||||
{
|
||||
|
|
@ -8351,7 +8351,7 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
|||
}
|
||||
|
||||
sec2 = P_ThingOnSpecial3DFloor(mobj);
|
||||
if ((mobj->terrain && mobj->terrain->pogoSpring > 0) || (sec2 && (sec2->specialflags & (SSF_YELLOWPOGOSPRING|SSF_REDPOGOSPRING)))
|
||||
if ((B_UseTerrainDef() && mobj->terrain && mobj->terrain->pogoSpring > 0) || (sec2 && (sec2->specialflags & (SSF_YELLOWPOGOSPRING|SSF_REDPOGOSPRING)))
|
||||
|| (P_IsObjectOnRealGround(mobj, mobj->subsector->sector)
|
||||
&& (mobj->subsector->sector->specialflags & (SSF_YELLOWPOGOSPRING|SSF_REDPOGOSPRING))))
|
||||
K_DoPogoSpring(mobj, 0, 1);
|
||||
|
|
@ -8423,7 +8423,7 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
|||
}
|
||||
|
||||
sec2 = P_ThingOnSpecial3DFloor(mobj);
|
||||
if ((mobj->terrain && mobj->terrain->pogoSpring > 0) || (sec2 && (sec2->specialflags & (SSF_YELLOWPOGOSPRING|SSF_REDPOGOSPRING)))
|
||||
if ((B_UseTerrainDef() && mobj->terrain && mobj->terrain->pogoSpring > 0) || (sec2 && (sec2->specialflags & (SSF_YELLOWPOGOSPRING|SSF_REDPOGOSPRING)))
|
||||
|| (P_IsObjectOnRealGround(mobj, mobj->subsector->sector)
|
||||
&& (mobj->subsector->sector->specialflags & (SSF_YELLOWPOGOSPRING|SSF_REDPOGOSPRING))))
|
||||
K_DoPogoSpring(mobj, 0, 1);
|
||||
|
|
@ -8453,7 +8453,7 @@ static boolean P_MobjRegularThink(mobj_t *mobj)
|
|||
if (grounded)
|
||||
{
|
||||
sector_t *sec2 = P_ThingOnSpecial3DFloor(mobj);
|
||||
if ((mobj->terrain && mobj->terrain->pogoSpring > 0) || (sec2 && (sec2->specialflags & (SSF_YELLOWPOGOSPRING|SSF_REDPOGOSPRING)))
|
||||
if ((B_UseTerrainDef() && mobj->terrain && mobj->terrain->pogoSpring > 0) || (sec2 && (sec2->specialflags & (SSF_YELLOWPOGOSPRING|SSF_REDPOGOSPRING)))
|
||||
|| (P_IsObjectOnRealGround(mobj, mobj->subsector->sector)
|
||||
&& (mobj->subsector->sector->specialflags & (SSF_YELLOWPOGOSPRING|SSF_REDPOGOSPRING))))
|
||||
K_DoPogoSpring(mobj, 0, 1);
|
||||
|
|
|
|||
|
|
@ -106,6 +106,8 @@
|
|||
#include "doomstat.h" // MAXMUSNAMES
|
||||
#include "k_mapuser.h"
|
||||
|
||||
#include "blan/b_soc.h"
|
||||
|
||||
#include <tracy/tracy/TracyC.h>
|
||||
|
||||
// Replay names have time
|
||||
|
|
@ -412,6 +414,7 @@ static void P_ClearSingleMapHeaderInfo(INT16 num)
|
|||
mapheaderinfo[num]->typeoflevel = 0;
|
||||
mapheaderinfo[num]->gravity = DEFAULT_GRAVITY;
|
||||
mapheaderinfo[num]->use_walltransfer = false;
|
||||
mapheaderinfo[num]->use_terrain = false;
|
||||
mapheaderinfo[num]->keywords[0] = '\0';
|
||||
for (int i = 0; i < MAXMUSNAMES; i++)
|
||||
mapheaderinfo[num]->musname[i][0] = 0;
|
||||
|
|
@ -3450,7 +3453,7 @@ static boolean P_CheckLineSideTripWire(line_t *ld, int p)
|
|||
sda = &sides[n];
|
||||
|
||||
terrain = K_GetTerrainForTextureNum(sda->midtexture);
|
||||
terraintripwire = (terrain && (terrain->flags & TRF_TRIPWIRE));
|
||||
terraintripwire = (B_UseTerrainDef() && terrain && (terrain->flags & TRF_TRIPWIRE));
|
||||
tripwire = terraintripwire ? terraintripwire : ld->tripwire;
|
||||
|
||||
if (terraintripwire)
|
||||
|
|
|
|||
Loading…
Reference in a new issue