mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-27 04:21:47 +00:00
Merge branch 'antigrav-respawn' into 'master'
Antigravity fixes, round 2 See merge request KartKrew/Kart!305
This commit is contained in:
commit
21dfe49bf8
7 changed files with 24 additions and 84 deletions
|
|
@ -2106,8 +2106,6 @@ void SendWeaponPref(void)
|
||||||
XBOXSTATIC UINT8 buf[1];
|
XBOXSTATIC UINT8 buf[1];
|
||||||
|
|
||||||
buf[0] = 0;
|
buf[0] = 0;
|
||||||
if (cv_flipcam.value)
|
|
||||||
buf[0] |= 1;
|
|
||||||
SendNetXCmd(XD_WEAPONPREF, buf, 1);
|
SendNetXCmd(XD_WEAPONPREF, buf, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2116,8 +2114,6 @@ void SendWeaponPref2(void)
|
||||||
XBOXSTATIC UINT8 buf[1];
|
XBOXSTATIC UINT8 buf[1];
|
||||||
|
|
||||||
buf[0] = 0;
|
buf[0] = 0;
|
||||||
if (cv_flipcam2.value)
|
|
||||||
buf[0] |= 1;
|
|
||||||
SendNetXCmd2(XD_WEAPONPREF, buf, 1);
|
SendNetXCmd2(XD_WEAPONPREF, buf, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2126,8 +2122,6 @@ void SendWeaponPref3(void)
|
||||||
XBOXSTATIC UINT8 buf[1];
|
XBOXSTATIC UINT8 buf[1];
|
||||||
|
|
||||||
buf[0] = 0;
|
buf[0] = 0;
|
||||||
if (cv_flipcam3.value)
|
|
||||||
buf[0] |= 1;
|
|
||||||
SendNetXCmd3(XD_WEAPONPREF, buf, 1);
|
SendNetXCmd3(XD_WEAPONPREF, buf, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2136,18 +2130,12 @@ void SendWeaponPref4(void)
|
||||||
XBOXSTATIC UINT8 buf[1];
|
XBOXSTATIC UINT8 buf[1];
|
||||||
|
|
||||||
buf[0] = 0;
|
buf[0] = 0;
|
||||||
if (cv_flipcam4.value)
|
|
||||||
buf[0] |= 1;
|
|
||||||
SendNetXCmd4(XD_WEAPONPREF, buf, 1);
|
SendNetXCmd4(XD_WEAPONPREF, buf, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void Got_WeaponPref(UINT8 **cp,INT32 playernum)
|
static void Got_WeaponPref(UINT8 **cp,INT32 playernum)
|
||||||
{
|
{
|
||||||
UINT8 prefs = READUINT8(*cp);
|
/*UINT8 prefs = */READUINT8(*cp); // Read it still to avoid instant desyncs in netgames.
|
||||||
|
|
||||||
players[playernum].pflags &= ~(PF_FLIPCAM);
|
|
||||||
if (prefs & 1)
|
|
||||||
players[playernum].pflags |= PF_FLIPCAM;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void Got_PowerLevel(UINT8 **cp,INT32 playernum)
|
static void Got_PowerLevel(UINT8 **cp,INT32 playernum)
|
||||||
|
|
|
||||||
|
|
@ -1510,7 +1510,7 @@ void G_BuildTiccmd(ticcmd_t *cmd, INT32 realtics, UINT8 ssplayer)
|
||||||
INT32 player_invert = invertmouse ? -1 : 1;
|
INT32 player_invert = invertmouse ? -1 : 1;
|
||||||
INT32 screen_invert =
|
INT32 screen_invert =
|
||||||
(player->mo && (player->mo->eflags & MFE_VERTICALFLIP)
|
(player->mo && (player->mo->eflags & MFE_VERTICALFLIP)
|
||||||
&& (!thiscam->chase || player->pflags & PF_FLIPCAM)) //because chasecam's not inverted
|
&& (!thiscam->chase)) //because chasecam's not inverted
|
||||||
? -1 : 1; // set to -1 or 1 to multiply
|
? -1 : 1; // set to -1 or 1 to multiply
|
||||||
|
|
||||||
// mouse look stuff (mouse look is not the same as mouse aim)
|
// mouse look stuff (mouse look is not the same as mouse aim)
|
||||||
|
|
@ -2599,7 +2599,7 @@ void G_PlayerReborn(INT32 player)
|
||||||
jointime = players[player].jointime;
|
jointime = players[player].jointime;
|
||||||
splitscreenindex = players[player].splitscreenindex;
|
splitscreenindex = players[player].splitscreenindex;
|
||||||
spectator = players[player].spectator;
|
spectator = players[player].spectator;
|
||||||
pflags = (players[player].pflags & (PF_TIMEOVER|PF_FLIPCAM|PF_TAGIT|PF_TAGGED|PF_WANTSTOJOIN));
|
pflags = (players[player].pflags & (PF_TIMEOVER|PF_TAGIT|PF_TAGGED|PF_WANTSTOJOIN));
|
||||||
|
|
||||||
// As long as we're not in multiplayer, carry over cheatcodes from map to map
|
// As long as we're not in multiplayer, carry over cheatcodes from map to map
|
||||||
if (!(netgame || multiplayer))
|
if (!(netgame || multiplayer))
|
||||||
|
|
|
||||||
18
src/k_kart.c
18
src/k_kart.c
|
|
@ -3066,13 +3066,10 @@ static mobj_t *K_SpawnKartMissile(mobj_t *source, mobjtype_t type, angle_t an, I
|
||||||
y = source->y + source->momy + FixedMul(finalspeed, FINESINE(an>>ANGLETOFINESHIFT));
|
y = source->y + source->momy + FixedMul(finalspeed, FINESINE(an>>ANGLETOFINESHIFT));
|
||||||
z = source->z; // spawn on the ground please
|
z = source->z; // spawn on the ground please
|
||||||
|
|
||||||
if (P_MobjFlip(source) < 0)
|
|
||||||
{
|
|
||||||
z = source->z+source->height - mobjinfo[type].height;
|
|
||||||
}
|
|
||||||
|
|
||||||
th = P_SpawnMobj(x, y, z, type);
|
th = P_SpawnMobj(x, y, z, type);
|
||||||
|
|
||||||
|
K_FlipFromObject(th, source);
|
||||||
|
|
||||||
th->flags2 |= flags2;
|
th->flags2 |= flags2;
|
||||||
th->threshold = 10;
|
th->threshold = 10;
|
||||||
|
|
||||||
|
|
@ -3815,8 +3812,8 @@ static mobj_t *K_ThrowKartItem(player_t *player, boolean missile, mobjtype_t map
|
||||||
if (player->mo->eflags & MFE_VERTICALFLIP)
|
if (player->mo->eflags & MFE_VERTICALFLIP)
|
||||||
{
|
{
|
||||||
mo->z -= player->mo->height;
|
mo->z -= player->mo->height;
|
||||||
mo->flags2 |= MF2_OBJECTFLIP;
|
|
||||||
mo->eflags |= MFE_VERTICALFLIP;
|
mo->eflags |= MFE_VERTICALFLIP;
|
||||||
|
mo->flags2 |= (player->mo->flags2 & MF2_OBJECTFLIP);
|
||||||
}
|
}
|
||||||
|
|
||||||
mo->threshold = 10;
|
mo->threshold = 10;
|
||||||
|
|
@ -3846,8 +3843,8 @@ static mobj_t *K_ThrowKartItem(player_t *player, boolean missile, mobjtype_t map
|
||||||
if (player->mo->eflags & MFE_VERTICALFLIP)
|
if (player->mo->eflags & MFE_VERTICALFLIP)
|
||||||
{
|
{
|
||||||
throwmo->z -= player->mo->height;
|
throwmo->z -= player->mo->height;
|
||||||
throwmo->flags2 |= MF2_OBJECTFLIP;
|
|
||||||
throwmo->eflags |= MFE_VERTICALFLIP;
|
throwmo->eflags |= MFE_VERTICALFLIP;
|
||||||
|
mo->flags2 |= (player->mo->flags2 & MF2_OBJECTFLIP);
|
||||||
}
|
}
|
||||||
|
|
||||||
throwmo->movecount = 0; // above player
|
throwmo->movecount = 0; // above player
|
||||||
|
|
@ -4457,6 +4454,7 @@ void K_DropHnextList(player_t *player, boolean keepshields)
|
||||||
|
|
||||||
dropwork->flags |= MF_NOCLIPTHING;
|
dropwork->flags |= MF_NOCLIPTHING;
|
||||||
dropwork->flags2 = work->flags2;
|
dropwork->flags2 = work->flags2;
|
||||||
|
dropwork->eflags = work->eflags;
|
||||||
|
|
||||||
dropwork->floorz = work->floorz;
|
dropwork->floorz = work->floorz;
|
||||||
dropwork->ceilingz = work->ceilingz;
|
dropwork->ceilingz = work->ceilingz;
|
||||||
|
|
@ -4563,6 +4561,8 @@ void K_DropItems(player_t *player)
|
||||||
drop->threshold = player->kartstuff[k_itemtype];
|
drop->threshold = player->kartstuff[k_itemtype];
|
||||||
drop->movecount = player->kartstuff[k_itemamount];
|
drop->movecount = player->kartstuff[k_itemamount];
|
||||||
|
|
||||||
|
K_FlipFromObject(drop, player->mo);
|
||||||
|
|
||||||
drop->flags |= MF_NOCLIPTHING;
|
drop->flags |= MF_NOCLIPTHING;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -4908,6 +4908,9 @@ static void K_MoveHeldObjects(player_t *player)
|
||||||
|
|
||||||
cur->flags &= ~MF_NOCLIPTHING;
|
cur->flags &= ~MF_NOCLIPTHING;
|
||||||
|
|
||||||
|
if ((player->mo->eflags & MFE_VERTICALFLIP) != (cur->eflags & MFE_VERTICALFLIP))
|
||||||
|
K_FlipFromObject(cur, player->mo);
|
||||||
|
|
||||||
if (!cur->health)
|
if (!cur->health)
|
||||||
{
|
{
|
||||||
cur = cur->hnext;
|
cur = cur->hnext;
|
||||||
|
|
@ -7260,6 +7263,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
||||||
mo = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z, MT_EGGMANITEM_SHIELD);
|
mo = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z, MT_EGGMANITEM_SHIELD);
|
||||||
if (mo)
|
if (mo)
|
||||||
{
|
{
|
||||||
|
K_FlipFromObject(mo, player->mo);
|
||||||
mo->flags |= MF_NOCLIPTHING;
|
mo->flags |= MF_NOCLIPTHING;
|
||||||
mo->threshold = 10;
|
mo->threshold = 10;
|
||||||
mo->movecount = 1;
|
mo->movecount = 1;
|
||||||
|
|
|
||||||
|
|
@ -34,9 +34,15 @@ fixed_t K_RespawnOffset(player_t *player, boolean flip)
|
||||||
|
|
||||||
if (flip == true)
|
if (flip == true)
|
||||||
{
|
{
|
||||||
player->mo->flags2 |= MF2_OBJECTFLIP;
|
// Lat 24/7/20: Okay so before we even think about applying this flag, check if the sector we're in doesn't already have reverse gravity for that.
|
||||||
|
// Otherwise, we would reverse the reverse gravity and cancel it out. Yes, this is absolutely fucking dumb.
|
||||||
|
// I'm honestly not sure if this flag is even necessary anymore but we'll keep it just in case.
|
||||||
|
|
||||||
|
if (P_GetMobjGravity(player->mo) < 0)
|
||||||
|
player->mo->flags2 |= MF2_OBJECTFLIP;
|
||||||
|
|
||||||
player->mo->eflags |= MFE_VERTICALFLIP;
|
player->mo->eflags |= MFE_VERTICALFLIP;
|
||||||
z -= (128 * mapobjectscale) - (player->mo->height);
|
z -= ((128 * mapobjectscale) + (player->mo->height));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -75,7 +81,7 @@ static void K_RespawnAtWaypoint(player_t *player, waypoint_t *waypoint)
|
||||||
player->respawn.pointx = waypoint->mobj->x;
|
player->respawn.pointx = waypoint->mobj->x;
|
||||||
player->respawn.pointy = waypoint->mobj->y;
|
player->respawn.pointy = waypoint->mobj->y;
|
||||||
player->respawn.pointz = waypoint->mobj->z;
|
player->respawn.pointz = waypoint->mobj->z;
|
||||||
player->respawn.flip = (waypoint->mobj->flags2 & MF2_OBJECTFLIP);
|
player->respawn.flip = (waypoint->mobj->flags2 & MF2_OBJECTFLIP) ? true : false; // K_RespawnOffset wants a boolean!
|
||||||
player->respawn.pointz += K_RespawnOffset(player, player->respawn.flip);
|
player->respawn.pointz += K_RespawnOffset(player, player->respawn.flip);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -309,7 +315,7 @@ static void K_MovePlayerToRespawnPoint(player_t *player)
|
||||||
// Reduce by the amount we needed to get to this waypoint
|
// Reduce by the amount we needed to get to this waypoint
|
||||||
stepamt -= dist;
|
stepamt -= dist;
|
||||||
|
|
||||||
// We've reached the destination point,
|
// We've reached the destination point,
|
||||||
P_UnsetThingPosition(player->mo);
|
P_UnsetThingPosition(player->mo);
|
||||||
player->mo->x = dest.x;
|
player->mo->x = dest.x;
|
||||||
player->mo->y = dest.y;
|
player->mo->y = dest.y;
|
||||||
|
|
|
||||||
24
src/p_mobj.c
24
src/p_mobj.c
|
|
@ -1168,26 +1168,6 @@ static void P_PlayerFlip(mobj_t *mo)
|
||||||
if (mo->tracer)
|
if (mo->tracer)
|
||||||
mo->tracer->eflags ^= MFE_VERTICALFLIP;
|
mo->tracer->eflags ^= MFE_VERTICALFLIP;
|
||||||
}
|
}
|
||||||
else if (mo->player->pflags & PF_FLIPCAM)
|
|
||||||
{
|
|
||||||
UINT8 i;
|
|
||||||
|
|
||||||
mo->player->aiming = InvAngle(mo->player->aiming);
|
|
||||||
|
|
||||||
for (i = 0; i <= r_splitscreen; i++)
|
|
||||||
{
|
|
||||||
if (mo->player-players == displayplayers[i])
|
|
||||||
{
|
|
||||||
localaiming[i] = mo->player->aiming;
|
|
||||||
if (camera[i].chase) {
|
|
||||||
camera[i].aiming = InvAngle(camera[i].aiming);
|
|
||||||
camera[i].z = mo->z - camera[i].z + mo->z;
|
|
||||||
if (mo->eflags & MFE_VERTICALFLIP)
|
|
||||||
camera[i].z += FixedMul(20*FRACUNIT, mo->scale);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
@ -3584,8 +3564,6 @@ boolean P_CameraThinker(player_t *player, camera_t *thiscam, boolean resetcalled
|
||||||
|
|
||||||
if (encoremode)
|
if (encoremode)
|
||||||
postimg = postimg_mirror;
|
postimg = postimg_mirror;
|
||||||
else if (player->pflags & PF_FLIPCAM && !(player->pflags & PF_NIGHTSMODE) && player->mo->eflags & MFE_VERTICALFLIP)
|
|
||||||
postimg = postimg_flip;
|
|
||||||
else if (player->awayviewtics && player->awayviewmobj && !P_MobjWasRemoved(player->awayviewmobj)) // Camera must obviously exist
|
else if (player->awayviewtics && player->awayviewmobj && !P_MobjWasRemoved(player->awayviewmobj)) // Camera must obviously exist
|
||||||
{
|
{
|
||||||
camera_t dummycam;
|
camera_t dummycam;
|
||||||
|
|
@ -7021,8 +6999,6 @@ void P_MobjThinker(mobj_t *mobj)
|
||||||
if (mobj->target->eflags & MFE_VERTICALFLIP)
|
if (mobj->target->eflags & MFE_VERTICALFLIP)
|
||||||
{
|
{
|
||||||
mobj->z = mobj->target->z - FixedMul(16*FRACUNIT, mobj->target->scale) - mobj->height;
|
mobj->z = mobj->target->z - FixedMul(16*FRACUNIT, mobj->target->scale) - mobj->height;
|
||||||
if (mobj->target->player->pflags & PF_FLIPCAM)
|
|
||||||
mobj->eflags |= MFE_VERTICALFLIP;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
mobj->z = mobj->target->z + (mobj->target->height) + FixedMul(8*FRACUNIT, mobj->target->scale); // Adjust height for height changes
|
mobj->z = mobj->target->z + (mobj->target->height) + FixedMul(8*FRACUNIT, mobj->target->scale); // Adjust height for height changes
|
||||||
|
|
|
||||||
33
src/r_main.c
33
src/r_main.c
|
|
@ -151,10 +151,6 @@ static void ChaseCam_OnChange(void);
|
||||||
static void ChaseCam2_OnChange(void);
|
static void ChaseCam2_OnChange(void);
|
||||||
static void ChaseCam3_OnChange(void);
|
static void ChaseCam3_OnChange(void);
|
||||||
static void ChaseCam4_OnChange(void);
|
static void ChaseCam4_OnChange(void);
|
||||||
static void FlipCam_OnChange(void);
|
|
||||||
static void FlipCam2_OnChange(void);
|
|
||||||
static void FlipCam3_OnChange(void);
|
|
||||||
static void FlipCam4_OnChange(void);
|
|
||||||
void SendWeaponPref(void);
|
void SendWeaponPref(void);
|
||||||
void SendWeaponPref2(void);
|
void SendWeaponPref2(void);
|
||||||
void SendWeaponPref3(void);
|
void SendWeaponPref3(void);
|
||||||
|
|
@ -165,10 +161,6 @@ consvar_t cv_chasecam = {"chasecam", "On", CV_CALL, CV_OnOff, ChaseCam_OnChange,
|
||||||
consvar_t cv_chasecam2 = {"chasecam2", "On", CV_CALL, CV_OnOff, ChaseCam2_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_chasecam2 = {"chasecam2", "On", CV_CALL, CV_OnOff, ChaseCam2_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_chasecam3 = {"chasecam3", "On", CV_CALL, CV_OnOff, ChaseCam3_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_chasecam3 = {"chasecam3", "On", CV_CALL, CV_OnOff, ChaseCam3_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_chasecam4 = {"chasecam4", "On", CV_CALL, CV_OnOff, ChaseCam4_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_chasecam4 = {"chasecam4", "On", CV_CALL, CV_OnOff, ChaseCam4_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_flipcam = {"flipcam", "No", CV_SAVE|CV_CALL|CV_NOINIT, CV_YesNo, FlipCam_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
|
||||||
consvar_t cv_flipcam2 = {"flipcam2", "No", CV_SAVE|CV_CALL|CV_NOINIT, CV_YesNo, FlipCam2_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
|
||||||
consvar_t cv_flipcam3 = {"flipcam3", "No", CV_SAVE|CV_CALL|CV_NOINIT, CV_YesNo, FlipCam3_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
|
||||||
consvar_t cv_flipcam4 = {"flipcam4", "No", CV_SAVE|CV_CALL|CV_NOINIT, CV_YesNo, FlipCam4_OnChange, 0, NULL, NULL, 0, 0, NULL};
|
|
||||||
|
|
||||||
consvar_t cv_shadow = {"shadow", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_shadow = {"shadow", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_skybox = {"skybox", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_skybox = {"skybox", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
|
@ -283,26 +275,6 @@ static void ChaseCam4_OnChange(void)
|
||||||
CV_SetValue(&cv_analog4, 1);*/
|
CV_SetValue(&cv_analog4, 1);*/
|
||||||
}
|
}
|
||||||
|
|
||||||
static void FlipCam_OnChange(void)
|
|
||||||
{
|
|
||||||
SendWeaponPref();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void FlipCam2_OnChange(void)
|
|
||||||
{
|
|
||||||
SendWeaponPref2();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void FlipCam3_OnChange(void)
|
|
||||||
{
|
|
||||||
SendWeaponPref3();
|
|
||||||
}
|
|
||||||
|
|
||||||
static void FlipCam4_OnChange(void)
|
|
||||||
{
|
|
||||||
SendWeaponPref4();
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// R_PointOnSide
|
// R_PointOnSide
|
||||||
// Traverse BSP (sub) tree,
|
// Traverse BSP (sub) tree,
|
||||||
|
|
@ -1488,11 +1460,6 @@ void R_RegisterEngineStuff(void)
|
||||||
CV_RegisterVar(&cv_soniccd);
|
CV_RegisterVar(&cv_soniccd);
|
||||||
CV_RegisterVar(&cv_allowmlook);
|
CV_RegisterVar(&cv_allowmlook);
|
||||||
CV_RegisterVar(&cv_homremoval);
|
CV_RegisterVar(&cv_homremoval);
|
||||||
CV_RegisterVar(&cv_flipcam);
|
|
||||||
CV_RegisterVar(&cv_flipcam2);
|
|
||||||
CV_RegisterVar(&cv_flipcam3);
|
|
||||||
CV_RegisterVar(&cv_flipcam4);
|
|
||||||
|
|
||||||
// Enough for dedicated server
|
// Enough for dedicated server
|
||||||
if (dedicated)
|
if (dedicated)
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,6 @@ boolean R_DoCulling(line_t *cullheight, line_t *viewcullheight, fixed_t vz, fixe
|
||||||
extern consvar_t cv_showhud, cv_translucenthud;
|
extern consvar_t cv_showhud, cv_translucenthud;
|
||||||
extern consvar_t cv_homremoval;
|
extern consvar_t cv_homremoval;
|
||||||
extern consvar_t cv_chasecam, cv_chasecam2, cv_chasecam3, cv_chasecam4;
|
extern consvar_t cv_chasecam, cv_chasecam2, cv_chasecam3, cv_chasecam4;
|
||||||
extern consvar_t cv_flipcam, cv_flipcam2, cv_flipcam3, cv_flipcam4;
|
|
||||||
extern consvar_t cv_shadow;
|
extern consvar_t cv_shadow;
|
||||||
extern consvar_t /*cv_precipdensity,*/ cv_drawdist, /*cv_drawdist_nights,*/ cv_drawdist_precip;
|
extern consvar_t /*cv_precipdensity,*/ cv_drawdist, /*cv_drawdist_nights,*/ cv_drawdist_precip;
|
||||||
extern consvar_t cv_fov;
|
extern consvar_t cv_fov;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue