mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-11-10 23:02:03 +00:00
- vscrn, aka updateviewport.
Just a temporary patch - this function won't work with the new status bar.
This commit is contained in:
parent
7f96d182b7
commit
1e24c4a22c
3 changed files with 51 additions and 64 deletions
|
@ -560,5 +560,55 @@ void drawoverheadmap(int cposx, int cposy, int czoom, int cang)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// calculate size of 3D viewport.
|
||||||
|
// Fixme: this needs to be adjusted to the new status bar code,
|
||||||
|
// once the status bar is a persistent queriable object
|
||||||
|
//
|
||||||
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void updateviewport(void)
|
||||||
|
{
|
||||||
|
ud.screen_size = clamp(ud.screen_size, 0, 64);
|
||||||
|
const int32_t ss = std::max(ud.screen_size - 8, 0);
|
||||||
|
|
||||||
|
int x1 = scale(ss, xdim, 160);
|
||||||
|
int x2 = xdim - x1;
|
||||||
|
|
||||||
|
int y1 = scale(ss, (200 * 100) - ((tilesiz[TILE_BOTTOMSTATUSBAR].y >> (RR ? 1 : 0)) * ud.statusbarscale), 200 - tilesiz[TILE_BOTTOMSTATUSBAR].y);
|
||||||
|
int y2 = 200 * 100 - y1;
|
||||||
|
|
||||||
|
if (isRR() && ud.screen_size <= 12)
|
||||||
|
{
|
||||||
|
x1 = 0;
|
||||||
|
x2 = xdim;
|
||||||
|
y1 = 0;
|
||||||
|
if (ud.statusbarmode)
|
||||||
|
y2 = 200 * 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
int fbh = 0;
|
||||||
|
if (ud.screen_size > 0 && ud.coop != 1 && ud.multimode > 1)
|
||||||
|
{
|
||||||
|
int j = 0;
|
||||||
|
for (int i = connecthead; i >= 0; i = connectpoint2[i])
|
||||||
|
if (i > j) j = i;
|
||||||
|
|
||||||
|
if (j >= 1) fbh += 8;
|
||||||
|
if (j >= 4) fbh += 8;
|
||||||
|
if (j >= 8) fbh += 8;
|
||||||
|
if (j >= 12) fbh += 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
y1 += fbh * 100;
|
||||||
|
if (ud.screen_size >= 8 && ud.statusbarmode == 0)
|
||||||
|
y2 -= (tilesiz[TILE_BOTTOMSTATUSBAR].y >> (isRR() ? 1 : 0)) * ud.statusbarscale;
|
||||||
|
y1 = scale(y1, ydim, 200 * 100);
|
||||||
|
y2 = scale(y2, ydim, 200 * 100);
|
||||||
|
|
||||||
|
videoSetViewableArea(x1, y1, x2 - 1, y2 - 1);
|
||||||
|
}
|
||||||
|
|
||||||
END_DUKE_NS
|
END_DUKE_NS
|
||||||
|
|
||||||
|
|
|
@ -48,69 +48,6 @@ static int32_t g_precacheCount;
|
||||||
int32_t g_skillSoundVoice = -1;
|
int32_t g_skillSoundVoice = -1;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
extern int32_t fragbarheight(void)
|
|
||||||
{
|
|
||||||
if (ud.screen_size > 0 && !(ud.statusbarflags & STATUSBAR_NOFRAGBAR)
|
|
||||||
#ifdef SPLITSCREEN_MOD_HACKS
|
|
||||||
&& !g_fakeMultiMode
|
|
||||||
#endif
|
|
||||||
&& (g_netServer || ud.multimode > 1) && GTFLAGS(GAMETYPE_FRAGBAR))
|
|
||||||
{
|
|
||||||
int32_t i, j = 0;
|
|
||||||
|
|
||||||
for (TRAVERSE_CONNECT(i))
|
|
||||||
if (i > j)
|
|
||||||
j = i;
|
|
||||||
|
|
||||||
return ((j + 3) >> 2) << 3;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void G_UpdateScreenArea(void)
|
|
||||||
{
|
|
||||||
if (!in3dmode())
|
|
||||||
return;
|
|
||||||
|
|
||||||
ud.screen_size = clamp(ud.screen_size, 0, 64);
|
|
||||||
if (ud.screen_size == 0)
|
|
||||||
renderFlushPerms();
|
|
||||||
|
|
||||||
{
|
|
||||||
const int32_t ss = std::max(ud.screen_size-8,0);
|
|
||||||
|
|
||||||
int32_t x1 = scale(ss,xdim,160);
|
|
||||||
int32_t x2 = xdim-x1;
|
|
||||||
|
|
||||||
int32_t y1 = scale(ss,(200 * 100) - ((tilesiz[TILE_BOTTOMSTATUSBAR].y >> (RR ? 1 : 0)) * ud.statusbarscale),200 - tilesiz[TILE_BOTTOMSTATUSBAR].y);
|
|
||||||
int32_t y2 = 200*100-y1;
|
|
||||||
|
|
||||||
if (RR && ud.screen_size <= 12)
|
|
||||||
{
|
|
||||||
x1 = 0;
|
|
||||||
x2 = xdim;
|
|
||||||
y1 = 0;
|
|
||||||
if (ud.statusbarmode)
|
|
||||||
y2 = 200*100;
|
|
||||||
}
|
|
||||||
|
|
||||||
y1 += fragbarheight()*100;
|
|
||||||
if (ud.screen_size >= 8 && ud.statusbarmode==0)
|
|
||||||
y2 -= (tilesiz[TILE_BOTTOMSTATUSBAR].y >> (RR ? 1 : 0))*ud.statusbarscale;
|
|
||||||
y1 = scale(y1,ydim,200*100);
|
|
||||||
y2 = scale(y2,ydim,200*100);
|
|
||||||
|
|
||||||
videoSetViewableArea(x1,y1,x2-1,y2-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
pub = NUMPAGES;
|
|
||||||
pus = NUMPAGES;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline int G_CheckExitSprite(int spriteNum) { return ((uint16_t)sprite[spriteNum].lotag == UINT16_MAX && (sprite[spriteNum].cstat & 16)); }
|
static inline int G_CheckExitSprite(int spriteNum) { return ((uint16_t)sprite[spriteNum].lotag == UINT16_MAX && (sprite[spriteNum].cstat & 16)); }
|
||||||
|
|
||||||
void G_InitRRRASkies(void)
|
void G_InitRRRASkies(void)
|
||||||
|
|
|
@ -1430,7 +1430,7 @@ static void postloadplayer(int32_t savegamep)
|
||||||
T1(i) = 0;
|
T1(i) = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
G_UpdateScreenArea();
|
updateviewport();
|
||||||
FX_SetReverb(0);
|
FX_SetReverb(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue