Merge r_main.c/h

This commit is contained in:
Sally Coolatta 2020-08-08 16:58:48 -04:00
parent f897061629
commit 6bf6b16ff7
2 changed files with 65 additions and 430 deletions

View file

@ -32,11 +32,8 @@
#include "p_setup.h" #include "p_setup.h"
#include "z_zone.h" #include "z_zone.h"
#include "m_random.h" // quake camera shake #include "m_random.h" // quake camera shake
<<<<<<< HEAD
#include "doomstat.h" // MAXSPLITSCREENPLAYERS
=======
#include "r_portal.h" #include "r_portal.h"
>>>>>>> srb2/next #include "doomstat.h" // MAXSPLITSCREENPLAYERS
#ifdef HWRENDER #ifdef HWRENDER
#include "hardware/hw_main.h" #include "hardware/hw_main.h"
@ -74,11 +71,9 @@ fixed_t viewx, viewy, viewz;
angle_t viewangle, aimingangle; angle_t viewangle, aimingangle;
UINT8 viewssnum; UINT8 viewssnum;
fixed_t viewcos, viewsin; fixed_t viewcos, viewsin;
<<<<<<< HEAD
boolean viewsky, skyVisible;
boolean skyVisiblePerPlayer[MAXSPLITSCREENPLAYERS]; // saved values of skyVisible for each splitscreen player
sector_t *viewsector; sector_t *viewsector;
player_t *viewplayer; player_t *viewplayer;
mobj_t *r_viewmobj;
int r_splitscreen; int r_splitscreen;
@ -107,11 +102,6 @@ typedef struct portal_pair
portal_pair *portal_base, *portal_cap; portal_pair *portal_base, *portal_cap;
line_t *portalclipline; line_t *portalclipline;
INT32 portalclipstart, portalclipend; INT32 portalclipstart, portalclipend;
=======
sector_t *viewsector;
player_t *viewplayer;
mobj_t *r_viewmobj;
>>>>>>> srb2/next
// //
// precalculated math tables // precalculated math tables
@ -143,20 +133,12 @@ static CV_PossibleValue_t drawdist_cons_t[] = {
{3072, "3072"}, {4096, "4096"}, {6144, "6144"}, {3072, "3072"}, {4096, "4096"}, {6144, "6144"},
{8192, "8192"}, {0, "Infinite"}, {0, NULL}}; {8192, "8192"}, {0, "Infinite"}, {0, NULL}};
//static CV_PossibleValue_t precipdensity_cons_t[] = {{0, "None"}, {1, "Light"}, {2, "Moderate"}, {4, "Heavy"}, {6, "Thick"}, {8, "V.Thick"}, {0, NULL}};
static CV_PossibleValue_t drawdist_precip_cons_t[] = { static CV_PossibleValue_t drawdist_precip_cons_t[] = {
{256, "256"}, {512, "512"}, {768, "768"}, {256, "256"}, {512, "512"}, {768, "768"},
{1024, "1024"}, {1536, "1536"}, {2048, "2048"}, {1024, "1024"}, {1536, "1536"}, {2048, "2048"},
{0, "None"}, {0, NULL}}; {0, "None"}, {0, NULL}};
<<<<<<< HEAD
static CV_PossibleValue_t fov_cons_t[] = {{5*FRACUNIT, "MIN"}, {178*FRACUNIT, "MAX"}, {0, NULL}};
//static CV_PossibleValue_t precipdensity_cons_t[] = {{0, "None"}, {1, "Light"}, {2, "Moderate"}, {4, "Heavy"}, {6, "Thick"}, {8, "V.Thick"}, {0, NULL}};
=======
static CV_PossibleValue_t fov_cons_t[] = {{60*FRACUNIT, "MIN"}, {179*FRACUNIT, "MAX"}, {0, NULL}}; static CV_PossibleValue_t fov_cons_t[] = {{60*FRACUNIT, "MIN"}, {179*FRACUNIT, "MAX"}, {0, NULL}};
>>>>>>> srb2/next
static CV_PossibleValue_t translucenthud_cons_t[] = {{0, "MIN"}, {10, "MAX"}, {0, NULL}}; static CV_PossibleValue_t translucenthud_cons_t[] = {{0, "MIN"}, {10, "MAX"}, {0, NULL}};
static CV_PossibleValue_t maxportals_cons_t[] = {{0, "MIN"}, {12, "MAX"}, {0, NULL}}; // lmao rendering 32 portals, you're a card static CV_PossibleValue_t maxportals_cons_t[] = {{0, "MIN"}, {12, "MAX"}, {0, NULL}}; // lmao rendering 32 portals, you're a card
static CV_PossibleValue_t homremoval_cons_t[] = {{0, "No"}, {1, "Yes"}, {2, "Flash"}, {0, NULL}}; static CV_PossibleValue_t homremoval_cons_t[] = {{0, "No"}, {1, "Yes"}, {2, "Flash"}, {0, NULL}};
@ -187,30 +169,15 @@ consvar_t cv_flipcam4 = {"flipcam4", "No", CV_SAVE|CV_CALL|CV_NOINIT, CV_YesNo,
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};
<<<<<<< HEAD
consvar_t cv_soniccd = {"soniccd", "Off", CV_NETVAR|CV_NOSHOWHELP, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
=======
>>>>>>> srb2/next
consvar_t cv_allowmlook = {"allowmlook", "Yes", CV_NETVAR, CV_YesNo, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_allowmlook = {"allowmlook", "Yes", CV_NETVAR, CV_YesNo, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_showhud = {"showhud", "Yes", CV_CALL, CV_YesNo, R_SetViewSize, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_showhud = {"showhud", "Yes", CV_CALL, CV_YesNo, R_SetViewSize, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_translucenthud = {"translucenthud", "10", CV_SAVE, translucenthud_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_translucenthud = {"translucenthud", "10", CV_SAVE, translucenthud_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_translucency = {"translucency", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_translucency = {"translucency", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
<<<<<<< HEAD
consvar_t cv_drawdist = {"drawdist", "8192", CV_SAVE, drawdist_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
//consvar_t cv_drawdist_nights = {"drawdist_nights", "2048", CV_SAVE, drawdist_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_drawdist_precip = {"drawdist_precip", "1024", CV_SAVE, drawdist_precip_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
//consvar_t cv_precipdensity = {"precipdensity", "Moderate", CV_SAVE, precipdensity_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
// cap fov, fov too high tears software apart. consvar_t cv_drawdist = {"drawdist", "8192", CV_SAVE, drawdist_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_fov = {"fov", "90", CV_FLOAT|CV_CALL|CV_SAVE, fov_cons_t, Fov_OnChange, 0, NULL, NULL, 0, 0, NULL};
=======
consvar_t cv_drawdist = {"drawdist", "Infinite", CV_SAVE, drawdist_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_drawdist_nights = {"drawdist_nights", "2048", CV_SAVE, drawdist_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_drawdist_precip = {"drawdist_precip", "1024", CV_SAVE, drawdist_precip_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_drawdist_precip = {"drawdist_precip", "1024", CV_SAVE, drawdist_precip_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
//consvar_t cv_precipdensity = {"precipdensity", "Moderate", CV_SAVE, precipdensity_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
consvar_t cv_fov = {"fov", "90", CV_FLOAT|CV_CALL, fov_cons_t, Fov_OnChange, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_fov = {"fov", "90", CV_FLOAT|CV_CALL, fov_cons_t, Fov_OnChange, 0, NULL, NULL, 0, 0, NULL};
>>>>>>> srb2/next
// Okay, whoever said homremoval causes a performance hit should be shot. // Okay, whoever said homremoval causes a performance hit should be shot.
consvar_t cv_homremoval = {"homremoval", "Yes", CV_SAVE, homremoval_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; consvar_t cv_homremoval = {"homremoval", "Yes", CV_SAVE, homremoval_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
@ -279,50 +246,22 @@ static void Fov_OnChange(void)
static void ChaseCam_OnChange(void) static void ChaseCam_OnChange(void)
{ {
<<<<<<< HEAD ;
/*if (!cv_chasecam.value || !cv_useranalog.value)
CV_SetValue(&cv_analog, 0);
else
CV_SetValue(&cv_analog, 1);*/
=======
if (!cv_chasecam.value || !cv_useranalog[0].value)
CV_SetValue(&cv_analog[0], 0);
else
CV_SetValue(&cv_analog[0], 1);
>>>>>>> srb2/next
} }
static void ChaseCam2_OnChange(void) static void ChaseCam2_OnChange(void)
{ {
<<<<<<< HEAD ;
/*if (!cv_chasecam2.value || !cv_useranalog2.value)
CV_SetValue(&cv_analog2, 0);
else
CV_SetValue(&cv_analog2, 1);*/
} }
static void ChaseCam3_OnChange(void) static void ChaseCam3_OnChange(void)
{ {
/*if (!cv_chasecam3.value || !cv_useranalog3.value) ;
CV_SetValue(&cv_analog3, 0);
else
CV_SetValue(&cv_analog3, 1);*/
} }
static void ChaseCam4_OnChange(void) static void ChaseCam4_OnChange(void)
{ {
/*if (!cv_chasecam4.value || !cv_useranalog4.value) ;
CV_SetValue(&cv_analog4, 0);
else
CV_SetValue(&cv_analog4, 1);*/
=======
if (botingame)
return;
if (!cv_chasecam2.value || !cv_useranalog[1].value)
CV_SetValue(&cv_analog[1], 0);
else
CV_SetValue(&cv_analog[1], 1);
>>>>>>> srb2/next
} }
static void FlipCam_OnChange(void) static void FlipCam_OnChange(void)
@ -581,11 +520,7 @@ static void R_InitTextureMapping(void)
// Calc focallength // Calc focallength
// so FIELDOFVIEW angles covers SCREENWIDTH. // so FIELDOFVIEW angles covers SCREENWIDTH.
focallength = FixedDiv(projection, focallength = FixedDiv(projection,
<<<<<<< HEAD
FINETANGENT(FINEANGLES/4+/*cv_fov.value*/ FIELDOFVIEW/2));
=======
FINETANGENT(FINEANGLES/4+FIELDOFVIEW/2)); FINETANGENT(FINEANGLES/4+FIELDOFVIEW/2));
>>>>>>> srb2/next
focallengthf = FIXED_TO_FLOAT(focallength); focallengthf = FIXED_TO_FLOAT(focallength);
@ -1024,13 +959,8 @@ void R_ExecuteSetViewSize(void)
centeryfrac = centery<<FRACBITS; centeryfrac = centery<<FRACBITS;
fov = FixedAngle(cv_fov.value/2) + ANGLE_90; fov = FixedAngle(cv_fov.value/2) + ANGLE_90;
<<<<<<< HEAD
fovtan = FINETANGENT(fov >> ANGLETOFINESHIFT);
if (r_splitscreen == 1) // Splitscreen FOV should be adjusted to maintain expected vertical view
=======
fovtan = FixedMul(FINETANGENT(fov >> ANGLETOFINESHIFT), viewmorph.zoomneeded); fovtan = FixedMul(FINETANGENT(fov >> ANGLETOFINESHIFT), viewmorph.zoomneeded);
if (splitscreen == 1) // Splitscreen FOV should be adjusted to maintain expected vertical view if (splitscreen == 1) // Splitscreen FOV should be adjusted to maintain expected vertical view
>>>>>>> srb2/next
fovtan = 17*fovtan/10; fovtan = 17*fovtan/10;
projection = projectiony = FixedDiv(centerxfrac, fovtan); projection = projectiony = FixedDiv(centerxfrac, fovtan);
@ -1172,13 +1102,6 @@ subsector_t *R_PointInSubsectorOrNull(fixed_t x, fixed_t y)
// R_SetupFrame // R_SetupFrame
// //
<<<<<<< HEAD
static mobj_t *viewmobj;
=======
// WARNING: a should be unsigned but to add with 2048, it isn't!
#define AIMINGTODY(a) ((FINETANGENT((2048+(((INT32)a)>>ANGLETOFINESHIFT)) & FINEMASK)*160)/fovtan)
>>>>>>> srb2/next
// recalc necessary stuff for mouseaiming // recalc necessary stuff for mouseaiming
// slopes are already calculated for the full possible view (which is 4*viewheight). // slopes are already calculated for the full possible view (which is 4*viewheight).
// 18/08/18: (No it's actually 16*viewheight, thanks Jimita for finding this out) // 18/08/18: (No it's actually 16*viewheight, thanks Jimita for finding this out)
@ -1204,23 +1127,33 @@ static void R_SetupFreelook(void)
centeryfrac = centery<<FRACBITS; centeryfrac = centery<<FRACBITS;
} }
<<<<<<< HEAD
void R_SkyboxFrame(player_t *player)
=======
#undef AIMINGTODY #undef AIMINGTODY
void R_SetupFrame(player_t *player) void R_SetupFrame(player_t *player)
>>>>>>> srb2/next
{ {
camera_t *thiscam = &camera[0]; camera_t *thiscam = &camera[0];
UINT8 i; boolean chasecam = false;
UINT8 i = 0;
<<<<<<< HEAD
if (r_splitscreen) if (r_splitscreen)
{ {
for (i = 1; i <= r_splitscreen; i++) for (i = 1; i <= r_splitscreen; i++)
======= {
if (player->climbing || (player->powers[pw_carry] == CR_NIGHTSMODE) || player->playerstate == PST_DEAD || gamestate == GS_TITLESCREEN || tutorialmode) if (player == &players[displayplayers[i]])
{
thiscam = &camera[i];
chasecam = (cv_chasecam[i].value != 0);
break;
}
}
if (i > r_splitscreen)
{
i = 0;
}
}
if (player->playerstate == PST_DEAD || gamestate == GS_TITLESCREEN || tutorialmode)
chasecam = true; // force chasecam on chasecam = true; // force chasecam on
else if (player->spectator) // no spectator chasecam else if (player->spectator) // no spectator chasecam
chasecam = false; // force chasecam off chasecam = false; // force chasecam off
@ -1261,18 +1194,12 @@ void R_SetupFrame(player_t *player)
aimingangle = player->aiming; aimingangle = player->aiming;
viewangle = r_viewmobj->angle; viewangle = r_viewmobj->angle;
if (!demoplayback && player->playerstate != PST_DEAD) if (!demo.playback && player->playerstate != PST_DEAD)
>>>>>>> srb2/next
{ {
if (player == &players[displayplayers[i]]) viewangle = localangle[i]; // WARNING: camera uses this
{ aimingangle = localaiming[i];
thiscam = &camera[i];
break;
}
} }
} }
<<<<<<< HEAD
=======
viewz += quake.z; viewz += quake.z;
viewplayer = player; viewplayer = player;
@ -1310,14 +1237,25 @@ void R_SetupFrame(player_t *player)
void R_SkyboxFrame(player_t *player) void R_SkyboxFrame(player_t *player)
{ {
camera_t *thiscam; camera_t *thiscam = &camera[0];
UINT8 i = 0;
if (splitscreen && player == &players[secondarydisplayplayer] if (r_splitscreen)
&& player != &players[consoleplayer]) {
thiscam = &camera2; for (i = 1; i <= r_splitscreen; i++)
else {
thiscam = &camera; if (player == &players[displayplayers[i]])
>>>>>>> srb2/next {
thiscam = &camera[i];
break;
}
}
if (i > r_splitscreen)
{
i = 0;
}
}
// cut-away view stuff // cut-away view stuff
r_viewmobj = skyboxmo[0]; r_viewmobj = skyboxmo[0];
@ -1344,23 +1282,8 @@ void R_SkyboxFrame(player_t *player)
viewangle = player->mo->angle; viewangle = player->mo->angle;
if (/*!demo.playback && */player->playerstate != PST_DEAD) if (/*!demo.playback && */player->playerstate != PST_DEAD)
{ {
if (player == &players[consoleplayer]) viewangle = localangle[i];
{ aimingangle = localaiming[i];
viewangle = localangle[0]; // WARNING: camera uses this
aimingangle = localaiming[0];
}
else if (splitscreen)
{
for (i = 1; i <= splitscreen; i++)
{
if (player == &players[g_localplayers[i]])
{
viewangle = localangle[i];
aimingangle = localaiming[i];
break;
}
}
}
} }
} }
viewangle += r_viewmobj->angle; viewangle += r_viewmobj->angle;
@ -1453,138 +1376,7 @@ void R_SkyboxFrame(player_t *player)
R_SetupFreelook(); R_SetupFreelook();
} }
<<<<<<< HEAD
void R_SetupFrame(player_t *player, boolean skybox)
{
camera_t *thiscam;
boolean chasecam = false;
if (r_splitscreen > 2 && player == &players[displayplayers[3]])
{
thiscam = &camera[3];
chasecam = (cv_chasecam4.value != 0);
}
else if (r_splitscreen > 1 && player == &players[displayplayers[2]])
{
thiscam = &camera[2];
chasecam = (cv_chasecam3.value != 0);
}
else if (r_splitscreen && player == &players[displayplayers[1]])
{
thiscam = &camera[1];
chasecam = (cv_chasecam2.value != 0);
}
else
{
thiscam = &camera[0];
chasecam = (cv_chasecam.value != 0);
}
if (player->spectator) // no spectator chasecam
chasecam = false; // force chasecam off
else if (player->playerstate == PST_DEAD || player->exiting)
chasecam = true; // force chasecam on
if (chasecam && !thiscam->chase)
{
P_ResetCamera(player, thiscam);
thiscam->chase = true;
}
else if (!chasecam)
thiscam->chase = false;
viewsky = !skybox;
if (player->awayviewtics)
{
// cut-away view stuff
viewmobj = player->awayviewmobj; // should be a MT_ALTVIEWMAN
I_Assert(viewmobj != NULL);
viewz = viewmobj->z + 20*FRACUNIT;
aimingangle = player->awayviewaiming;
viewangle = viewmobj->angle;
}
else if (!player->spectator && chasecam)
// use outside cam view
{
viewmobj = NULL;
viewz = thiscam->z + (thiscam->height>>1);
aimingangle = thiscam->aiming;
viewangle = thiscam->angle;
}
else
// use the player's eyes view
{
viewz = player->viewz;
viewmobj = player->mo;
I_Assert(viewmobj != NULL);
aimingangle = player->aiming;
viewangle = viewmobj->angle;
if (!demo.playback && player->playerstate != PST_DEAD)
{
if (player == &players[consoleplayer])
{
viewangle = localangle[0]; // WARNING: camera uses this
aimingangle = localaiming[0];
}
else if (splitscreen)
{
UINT8 i;
for (i = 1; i <= splitscreen; i++)
{
if (player == &players[g_localplayers[i]])
{
viewangle = localangle[i];
aimingangle = localaiming[i];
break;
}
}
}
}
}
viewz += quake.z;
viewplayer = player;
if (chasecam && !player->awayviewtics && !player->spectator)
{
viewx = thiscam->x;
viewy = thiscam->y;
viewx += quake.x;
viewy += quake.y;
if (thiscam->subsector && thiscam->subsector->sector)
viewsector = thiscam->subsector->sector;
else
viewsector = R_PointInSubsector(viewx, viewy)->sector;
}
else
{
viewx = viewmobj->x;
viewy = viewmobj->y;
viewx += quake.x;
viewy += quake.y;
if (viewmobj->subsector && thiscam->subsector->sector)
viewsector = viewmobj->subsector->sector;
else
viewsector = R_PointInSubsector(viewx, viewy)->sector;
}
viewsin = FINESINE(viewangle>>ANGLETOFINESHIFT);
viewcos = FINECOSINE(viewangle>>ANGLETOFINESHIFT);
R_SetupFreelook();
}
#define ANGLED_PORTALS
static void R_PortalFrame(line_t *start, line_t *dest, portal_pair *portal)
=======
static void R_PortalFrame(portal_t *portal) static void R_PortalFrame(portal_t *portal)
>>>>>>> srb2/next
{ {
viewx = portal->viewx; viewx = portal->viewx;
viewy = portal->viewy; viewy = portal->viewy;
@ -1639,14 +1431,8 @@ static void Mask_Post (maskcount_t* m)
void R_RenderPlayerView(player_t *player) void R_RenderPlayerView(player_t *player)
{ {
<<<<<<< HEAD
portal_pair *portal;
const boolean skybox = (skyboxmo[0] && cv_skybox.value);
UINT8 i;
=======
UINT8 nummasks = 1; UINT8 nummasks = 1;
maskcount_t* masks = malloc(sizeof(maskcount_t)); maskcount_t* masks = malloc(sizeof(maskcount_t));
>>>>>>> srb2/next
// if this is display player 1 // if this is display player 1
if (cv_homremoval.value && player == &players[displayplayers[0]]) if (cv_homremoval.value && player == &players[displayplayers[0]])
@ -1655,69 +1441,14 @@ void R_RenderPlayerView(player_t *player)
V_DrawFill(0, 0, BASEVIDWIDTH, BASEVIDHEIGHT, 31); // No HOM effect! V_DrawFill(0, 0, BASEVIDWIDTH, BASEVIDHEIGHT, 31); // No HOM effect!
else //'development' HOM removal -- makes it blindingly obvious if HOM is spotted. else //'development' HOM removal -- makes it blindingly obvious if HOM is spotted.
V_DrawFill(0, 0, BASEVIDWIDTH, BASEVIDHEIGHT, 32+(timeinmap&15)); V_DrawFill(0, 0, BASEVIDWIDTH, BASEVIDHEIGHT, 32+(timeinmap&15));
<<<<<<< HEAD
} }
// Draw over the fourth screen so you don't have to stare at a HOM :V
else if (r_splitscreen == 2 && player == &players[displayplayers[2]]) else if (r_splitscreen == 2 && player == &players[displayplayers[2]])
#if 1
{ {
// V_DrawPatchFill, but for the fourth screen only // Draw over the fourth screen so you don't have to stare at a HOM :V
patch_t *pat = W_CachePatchName("SRB2BACK", PU_CACHE); V_DrawFill(viewwidth, viewheight, viewwidth, viewheight, 31|V_NOSCALESTART);
INT32 dupz = (vid.dupx < vid.dupy ? vid.dupx : vid.dupy);
INT32 x, y, pw = SHORT(pat->width) * dupz, ph = SHORT(pat->height) * dupz;
for (x = vid.width>>1; x < vid.width; x += pw)
{
for (y = vid.height>>1; y < vid.height; y += ph)
V_DrawScaledPatch(x, y, V_NOSCALESTART, pat);
}
=======
>>>>>>> srb2/next
}
#else
V_DrawFill(viewwidth, viewheight, viewwidth, viewheight, 31|V_NOSCALESTART);
#endif
<<<<<<< HEAD
// load previous saved value of skyVisible for the player
for (i = 0; i <= r_splitscreen; i++)
{
if (player == &players[displayplayers[i]])
{
skyVisible = skyVisiblePerPlayer[i];
break;
}
} }
portalrender = 0;
portal_base = portal_cap = NULL;
if (skybox && skyVisible)
{
R_SkyboxFrame(player);
R_ClearClipSegs();
R_ClearDrawSegs();
R_ClearPlanes();
R_ClearSprites();
#ifdef FLOORSPLATS
R_ClearVisibleFloorSplats();
#endif
R_RenderBSPNode((INT32)numnodes - 1);
R_ClipSprites();
R_DrawPlanes();
#ifdef FLOORSPLATS
R_DrawVisibleFloorSplats();
#endif
R_DrawMasked();
}
R_SetupFrame(player, skybox);
skyVisible = false;
=======
R_SetupFrame(player); R_SetupFrame(player);
>>>>>>> srb2/next
framecount++; framecount++;
validcount++; validcount++;
@ -1826,18 +1557,6 @@ void R_RenderPlayerView(player_t *player)
free(masks); free(masks);
} }
<<<<<<< HEAD
// save value to skyVisiblePerPlayer
// this is so that P1 can't affect whether P2 can see a skybox or not, or vice versa
for (i = 0; i <= r_splitscreen; i++)
{
if (player == &players[displayplayers[i]])
{
skyVisiblePerPlayer[i] = skyVisible;
break;
}
}
=======
// Lactozilla: Renderer switching // Lactozilla: Renderer switching
#ifdef HWRENDER #ifdef HWRENDER
void R_InitHardwareMode(void) void R_InitHardwareMode(void)
@ -1856,7 +1575,6 @@ void R_ReloadHUDGraphics(void)
ST_LoadGraphics(); ST_LoadGraphics();
HU_LoadGraphics(); HU_LoadGraphics();
ST_ReloadSkinFaceGraphics(); ST_ReloadSkinFaceGraphics();
>>>>>>> srb2/next
} }
// ========================================================================= // =========================================================================
@ -1865,6 +1583,8 @@ void R_ReloadHUDGraphics(void)
void R_RegisterEngineStuff(void) void R_RegisterEngineStuff(void)
{ {
UINT8 i;
CV_RegisterVar(&cv_gravity); CV_RegisterVar(&cv_gravity);
CV_RegisterVar(&cv_tailspickup); CV_RegisterVar(&cv_tailspickup);
CV_RegisterVar(&cv_allowmlook); CV_RegisterVar(&cv_allowmlook);
@ -1878,106 +1598,29 @@ void R_RegisterEngineStuff(void)
if (dedicated) if (dedicated)
return; return;
<<<<<<< HEAD
//CV_RegisterVar(&cv_precipdensity);
=======
>>>>>>> srb2/next
CV_RegisterVar(&cv_translucency); CV_RegisterVar(&cv_translucency);
CV_RegisterVar(&cv_drawdist); CV_RegisterVar(&cv_drawdist);
//CV_RegisterVar(&cv_drawdist_nights);
CV_RegisterVar(&cv_drawdist_precip); CV_RegisterVar(&cv_drawdist_precip);
CV_RegisterVar(&cv_fov); CV_RegisterVar(&cv_fov);
CV_RegisterVar(&cv_chasecam);
CV_RegisterVar(&cv_chasecam2);
<<<<<<< HEAD
CV_RegisterVar(&cv_chasecam3);
CV_RegisterVar(&cv_chasecam4);
=======
>>>>>>> srb2/next
CV_RegisterVar(&cv_shadow); CV_RegisterVar(&cv_shadow);
CV_RegisterVar(&cv_skybox); CV_RegisterVar(&cv_skybox);
CV_RegisterVar(&cv_cam_dist); for (i = 0; i < MAXSPLITSCREENPLAYERS; i++)
CV_RegisterVar(&cv_cam_still); {
CV_RegisterVar(&cv_cam_height); CV_RegisterVar(&cv_chasecam[i]);
CV_RegisterVar(&cv_cam_speed); CV_RegisterVar(&cv_cam_dist[i]);
CV_RegisterVar(&cv_cam_rotate); CV_RegisterVar(&cv_cam_still[i]);
CV_RegisterVar(&cv_cam_rotspeed); CV_RegisterVar(&cv_cam_height[i]);
CV_RegisterVar(&cv_cam_turnmultiplier); CV_RegisterVar(&cv_cam_speed[i]);
CV_RegisterVar(&cv_cam_orbit); CV_RegisterVar(&cv_cam_rotate[i]);
CV_RegisterVar(&cv_cam_adjust); CV_RegisterVar(&cv_cam_rotspeed[i]);
}
CV_RegisterVar(&cv_cam2_dist);
CV_RegisterVar(&cv_cam2_still);
CV_RegisterVar(&cv_cam2_height);
CV_RegisterVar(&cv_cam2_speed);
CV_RegisterVar(&cv_cam2_rotate);
CV_RegisterVar(&cv_cam2_rotspeed);
CV_RegisterVar(&cv_cam2_turnmultiplier);
CV_RegisterVar(&cv_cam2_orbit);
CV_RegisterVar(&cv_cam2_adjust);
CV_RegisterVar(&cv_cam_savedist[0][0]);
CV_RegisterVar(&cv_cam_savedist[0][1]);
CV_RegisterVar(&cv_cam_savedist[1][0]);
CV_RegisterVar(&cv_cam_savedist[1][1]);
CV_RegisterVar(&cv_cam_saveheight[0][0]);
CV_RegisterVar(&cv_cam_saveheight[0][1]);
CV_RegisterVar(&cv_cam_saveheight[1][0]);
CV_RegisterVar(&cv_cam_saveheight[1][1]);
CV_RegisterVar(&cv_cam3_dist);
CV_RegisterVar(&cv_cam3_still);
CV_RegisterVar(&cv_cam3_height);
CV_RegisterVar(&cv_cam3_speed);
CV_RegisterVar(&cv_cam3_rotate);
CV_RegisterVar(&cv_cam3_rotspeed);
CV_RegisterVar(&cv_cam4_dist);
CV_RegisterVar(&cv_cam4_still);
CV_RegisterVar(&cv_cam4_height);
CV_RegisterVar(&cv_cam4_speed);
CV_RegisterVar(&cv_cam4_rotate);
CV_RegisterVar(&cv_cam4_rotspeed);
CV_RegisterVar(&cv_showhud); CV_RegisterVar(&cv_showhud);
CV_RegisterVar(&cv_translucenthud); CV_RegisterVar(&cv_translucenthud);
CV_RegisterVar(&cv_maxportals); CV_RegisterVar(&cv_maxportals);
<<<<<<< HEAD
// Default viewheight is changeable,
// initialized to standard viewheight
//CV_RegisterVar(&cv_viewheight);
#ifdef HWRENDER
// GL-specific Commands
CV_RegisterVar(&cv_grgammablue);
CV_RegisterVar(&cv_grgammagreen);
CV_RegisterVar(&cv_grgammared);
CV_RegisterVar(&cv_grfovchange);
#ifdef ALAM_LIGHTING
CV_RegisterVar(&cv_grstaticlighting);
CV_RegisterVar(&cv_grdynamiclighting);
CV_RegisterVar(&cv_grcoronas);
CV_RegisterVar(&cv_grcoronasize);
#endif
CV_RegisterVar(&cv_grmdls);
CV_RegisterVar(&cv_grfallbackplayermodel);
CV_RegisterVar(&cv_grspritebillboarding);
CV_RegisterVar(&cv_grfakecontrast);
CV_RegisterVar(&cv_grshearing);
CV_RegisterVar(&cv_grshaders);
#endif
#ifdef HWRENDER
if (rendermode != render_soft && rendermode != render_none)
HWR_AddCommands();
#endif
=======
CV_RegisterVar(&cv_movebob); CV_RegisterVar(&cv_movebob);
>>>>>>> srb2/next
} }

View file

@ -77,20 +77,12 @@ 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;
<<<<<<< HEAD extern consvar_t cv_chasecam[MAXSPLITSCREENPLAYERS];
extern consvar_t cv_chasecam, cv_chasecam2, cv_chasecam3, cv_chasecam4; extern consvar_t cv_flipcam[MAXSPLITSCREENPLAYERS];
extern consvar_t cv_flipcam, cv_flipcam2, cv_flipcam3, cv_flipcam4;
extern consvar_t cv_shadow;
extern consvar_t cv_translucency;
extern consvar_t /*cv_precipdensity,*/ cv_drawdist, /*cv_drawdist_nights,*/ cv_drawdist_precip;
=======
extern consvar_t cv_chasecam, cv_chasecam2;
extern consvar_t cv_flipcam, cv_flipcam2;
extern consvar_t cv_shadow; extern consvar_t cv_shadow;
extern consvar_t cv_translucency; extern consvar_t cv_translucency;
extern consvar_t cv_drawdist, cv_drawdist_nights, cv_drawdist_precip; extern consvar_t cv_drawdist, v_drawdist_precip;
>>>>>>> srb2/next
extern consvar_t cv_fov; extern consvar_t cv_fov;
extern consvar_t cv_skybox; extern consvar_t cv_skybox;
extern consvar_t cv_tailspickup; extern consvar_t cv_tailspickup;