mirror of
https://github.com/ZDoom/qzdoom.git
synced 2025-02-07 08:21:04 +00:00
- Added resolution setting to SBarInfo.
- Fixed: Mug shot was not reset at the start of a new game. SVN r2332 (trunk)
This commit is contained in:
parent
c4efbeb515
commit
9611e7310a
6 changed files with 103 additions and 30 deletions
|
@ -215,6 +215,7 @@ class FMugShot
|
||||||
|
|
||||||
FMugShot();
|
FMugShot();
|
||||||
void Grin(bool grin=true) { bEvilGrin = grin; }
|
void Grin(bool grin=true) { bEvilGrin = grin; }
|
||||||
|
void Reset();
|
||||||
void Tick(player_t *player);
|
void Tick(player_t *player);
|
||||||
bool SetState(const char *state_name, bool wait_till_done=false, bool reset=false);
|
bool SetState(const char *state_name, bool wait_till_done=false, bool reset=false);
|
||||||
int UpdateState(player_t *player, StateFlags stateflags=STANDARD);
|
int UpdateState(player_t *player, StateFlags stateflags=STANDARD);
|
||||||
|
@ -275,7 +276,7 @@ public:
|
||||||
ST_DEADFACE = ST_GODFACE + 1
|
ST_DEADFACE = ST_GODFACE + 1
|
||||||
};
|
};
|
||||||
|
|
||||||
DBaseStatusBar (int reltop);
|
DBaseStatusBar (int reltop, int hres=320, int vres=200);
|
||||||
void Destroy ();
|
void Destroy ();
|
||||||
|
|
||||||
void SetScaled (bool scale, bool force=false);
|
void SetScaled (bool scale, bool force=false);
|
||||||
|
@ -338,6 +339,7 @@ public:
|
||||||
|
|
||||||
int ST_X, ST_Y;
|
int ST_X, ST_Y;
|
||||||
int RelTop;
|
int RelTop;
|
||||||
|
int HorizontalResolution, VirticalResolution;
|
||||||
bool Scaled;
|
bool Scaled;
|
||||||
bool Centering;
|
bool Centering;
|
||||||
bool FixedOrigin;
|
bool FixedOrigin;
|
||||||
|
|
|
@ -221,6 +221,17 @@ int FindMugShotStateIndex(FName state)
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
|
||||||
FMugShot::FMugShot()
|
FMugShot::FMugShot()
|
||||||
|
{
|
||||||
|
Reset();
|
||||||
|
}
|
||||||
|
|
||||||
|
//===========================================================================
|
||||||
|
//
|
||||||
|
// FMugShot :: Reset
|
||||||
|
//
|
||||||
|
//===========================================================================
|
||||||
|
|
||||||
|
void FMugShot::Reset()
|
||||||
{
|
{
|
||||||
FaceHealth = -1;
|
FaceHealth = -1;
|
||||||
bEvilGrin = false;
|
bEvilGrin = false;
|
||||||
|
|
|
@ -190,8 +190,8 @@ class SBarInfoCommand
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!fullScreenOffsets)
|
//if(!fullScreenOffsets)
|
||||||
y.SetCoord((negative ? -sc.Number : sc.Number) - (200 - script->height));
|
// y.SetCoord((negative ? -sc.Number : sc.Number) - (200 - script->height));
|
||||||
}
|
}
|
||||||
EColorRange GetTranslation(FScanner &sc)
|
EColorRange GetTranslation(FScanner &sc)
|
||||||
{
|
{
|
||||||
|
@ -367,6 +367,7 @@ enum //Key words
|
||||||
SBARINFO_COMPLETEBORDER,
|
SBARINFO_COMPLETEBORDER,
|
||||||
SBARINFO_MONOSPACEFONTS,
|
SBARINFO_MONOSPACEFONTS,
|
||||||
SBARINFO_LOWERHEALTHCAP,
|
SBARINFO_LOWERHEALTHCAP,
|
||||||
|
SBARINFO_RESOLUTION,
|
||||||
SBARINFO_STATUSBAR,
|
SBARINFO_STATUSBAR,
|
||||||
SBARINFO_MUGSHOT,
|
SBARINFO_MUGSHOT,
|
||||||
SBARINFO_CREATEPOPUP,
|
SBARINFO_CREATEPOPUP,
|
||||||
|
@ -394,6 +395,7 @@ static const char *SBarInfoTopLevel[] =
|
||||||
"completeborder",
|
"completeborder",
|
||||||
"monospacefonts",
|
"monospacefonts",
|
||||||
"lowerhealthcap",
|
"lowerhealthcap",
|
||||||
|
"resolution",
|
||||||
"statusbar",
|
"statusbar",
|
||||||
"mugshot",
|
"mugshot",
|
||||||
"createpopup",
|
"createpopup",
|
||||||
|
@ -579,6 +581,14 @@ void SBarInfo::ParseSBarInfo(int lump)
|
||||||
}
|
}
|
||||||
sc.MustGetToken(';');
|
sc.MustGetToken(';');
|
||||||
break;
|
break;
|
||||||
|
case SBARINFO_RESOLUTION:
|
||||||
|
sc.MustGetToken(TK_IntConst);
|
||||||
|
resW = sc.Number;
|
||||||
|
sc.MustGetToken(',');
|
||||||
|
sc.MustGetToken(TK_IntConst);
|
||||||
|
resH = sc.Number;
|
||||||
|
sc.MustGetToken(';');
|
||||||
|
break;
|
||||||
case SBARINFO_STATUSBAR:
|
case SBARINFO_STATUSBAR:
|
||||||
{
|
{
|
||||||
if(!baseSet) //If the user didn't explicitly define a base, do so now.
|
if(!baseSet) //If the user didn't explicitly define a base, do so now.
|
||||||
|
@ -761,6 +771,8 @@ void SBarInfo::Init()
|
||||||
armorInterpolationSpeed = 8;
|
armorInterpolationSpeed = 8;
|
||||||
height = 0;
|
height = 0;
|
||||||
spacingCharacter = '\0';
|
spacingCharacter = '\0';
|
||||||
|
resW = 320;
|
||||||
|
resH = 200;
|
||||||
|
|
||||||
for(unsigned int i = 0;i < NUMHUDS;i++)
|
for(unsigned int i = 0;i < NUMHUDS;i++)
|
||||||
huds[i] = new SBarInfoMainBlock(this);
|
huds[i] = new SBarInfoMainBlock(this);
|
||||||
|
@ -902,7 +914,7 @@ class DSBarInfo : public DBaseStatusBar
|
||||||
{
|
{
|
||||||
DECLARE_CLASS(DSBarInfo, DBaseStatusBar)
|
DECLARE_CLASS(DSBarInfo, DBaseStatusBar)
|
||||||
public:
|
public:
|
||||||
DSBarInfo (SBarInfo *script=NULL) : DBaseStatusBar(script->height),
|
DSBarInfo (SBarInfo *script=NULL) : DBaseStatusBar(script->height, script->resW, script->resH),
|
||||||
ammo1(NULL), ammo2(NULL), ammocount1(0), ammocount2(0), armor(NULL),
|
ammo1(NULL), ammo2(NULL), ammocount1(0), ammocount2(0), armor(NULL),
|
||||||
pendingPopup(POP_None), currentPopup(POP_None), lastHud(-1),
|
pendingPopup(POP_None), currentPopup(POP_None), lastHud(-1),
|
||||||
lastInventoryBar(NULL), lastPopup(NULL)
|
lastInventoryBar(NULL), lastPopup(NULL)
|
||||||
|
@ -1110,7 +1122,7 @@ public:
|
||||||
fixed_t tmp = 0;
|
fixed_t tmp = 0;
|
||||||
// I'll handle the conversion from fixed to int myself for more control
|
// I'll handle the conversion from fixed to int myself for more control
|
||||||
fixed_t fx = (x + ST_X).Coordinate() << FRACBITS;
|
fixed_t fx = (x + ST_X).Coordinate() << FRACBITS;
|
||||||
fixed_t fy = (y + ST_Y).Coordinate() << FRACBITS;
|
fixed_t fy = (y + ST_Y - (Scaled ? script->resH : 200) + script->height).Coordinate() << FRACBITS;
|
||||||
fixed_t fw = (forceWidth <= -1 ? texture->GetScaledWidth() : forceWidth) << FRACBITS;
|
fixed_t fw = (forceWidth <= -1 ? texture->GetScaledWidth() : forceWidth) << FRACBITS;
|
||||||
fixed_t fh = (forceHeight <= -1 ? texture->GetScaledHeight() : forceHeight) << FRACBITS;
|
fixed_t fh = (forceHeight <= -1 ? texture->GetScaledHeight() : forceHeight) << FRACBITS;
|
||||||
fixed_t fcx = cx == 0 ? 0 : fx + cx - (texture->GetScaledLeftOffset() << FRACBITS);
|
fixed_t fcx = cx == 0 ? 0 : fx + cx - (texture->GetScaledLeftOffset() << FRACBITS);
|
||||||
|
@ -1120,10 +1132,16 @@ public:
|
||||||
if(Scaled)
|
if(Scaled)
|
||||||
{
|
{
|
||||||
if(cx != 0 || cy != 0)
|
if(cx != 0 || cy != 0)
|
||||||
screen->VirtualToRealCoordsFixed(fcx, fcy, tmp, tmp, 320, 200, true);
|
screen->VirtualToRealCoordsFixed(fcx, fcy, tmp, tmp, script->resW, script->resH, true);
|
||||||
if(cr != 0 || cb != 0 || clearDontDraw)
|
if(cr != 0 || cb != 0 || clearDontDraw)
|
||||||
screen->VirtualToRealCoordsFixed(fcr, fcb, tmp, tmp, 320, 200, true);
|
screen->VirtualToRealCoordsFixed(fcr, fcb, tmp, tmp, script->resW, script->resH, true);
|
||||||
screen->VirtualToRealCoordsFixed(fx, fy, fw, fh, 320, 200, true);
|
screen->VirtualToRealCoordsFixed(fx, fy, fw, fh, script->resW, script->resH, true);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fy += (200 - script->resH)<<FRACBITS;
|
||||||
|
fcy += (200 - script->resH)<<FRACBITS;
|
||||||
|
fcb += (200 - script->resH)<<FRACBITS;
|
||||||
}
|
}
|
||||||
// Round to nearest
|
// Round to nearest
|
||||||
w = (fw + (FRACUNIT>>1)) >> FRACBITS;
|
w = (fw + (FRACUNIT>>1)) >> FRACBITS;
|
||||||
|
@ -1173,10 +1191,26 @@ public:
|
||||||
int rx, ry, rcx=0, rcy=0, rcr=INT_MAX, rcb=INT_MAX;
|
int rx, ry, rcx=0, rcy=0, rcr=INT_MAX, rcb=INT_MAX;
|
||||||
ADJUST_RELCENTER(x,y,rx,ry)
|
ADJUST_RELCENTER(x,y,rx,ry)
|
||||||
|
|
||||||
|
// We can't use DTA_HUDRules since it forces a width and height.
|
||||||
|
// Translation: No high res.
|
||||||
|
bool xright = rx < 0;
|
||||||
|
bool ybot = ry < 0;
|
||||||
|
|
||||||
w = (forceWidth <= -1 ? texture->GetScaledWidth() : forceWidth);
|
w = (forceWidth <= -1 ? texture->GetScaledWidth() : forceWidth);
|
||||||
h = (forceHeight <= -1 ? texture->GetScaledHeight() : forceHeight);
|
h = (forceHeight <= -1 ? texture->GetScaledHeight() : forceHeight);
|
||||||
if(vid_fps && rx < 0 && ry >= 0)
|
if(vid_fps && rx < 0 && ry >= 0)
|
||||||
ry += 10;
|
ry += 10;
|
||||||
|
if(hud_scale)
|
||||||
|
{
|
||||||
|
rx *= CleanXfac * 320.0/script->resW;
|
||||||
|
ry *= CleanYfac * 200.0/script->resH;
|
||||||
|
w *= CleanXfac * 320.0/script->resW;
|
||||||
|
h *= CleanYfac * 200.0/script->resH;
|
||||||
|
}
|
||||||
|
if(xright)
|
||||||
|
rx = SCREENWIDTH + rx;
|
||||||
|
if(ybot)
|
||||||
|
ry = SCREENHEIGHT + ry;
|
||||||
|
|
||||||
// Check for clipping
|
// Check for clipping
|
||||||
if(cx != 0 || cy != 0 || cr != 0 || cb != 0)
|
if(cx != 0 || cy != 0 || cr != 0 || cb != 0)
|
||||||
|
@ -1189,34 +1223,34 @@ public:
|
||||||
if(ry < 0)
|
if(ry < 0)
|
||||||
{
|
{
|
||||||
if(rcy != 0)
|
if(rcy != 0)
|
||||||
rcy = hud_scale ? SCREENHEIGHT + (rcy*CleanYfac) : SCREENHEIGHT + rcy;
|
rcy = hud_scale ? SCREENHEIGHT + (rcy*CleanYfac*200.0/script->resH) : SCREENHEIGHT + rcy;
|
||||||
if(rcb != INT_MAX)
|
if(rcb != INT_MAX)
|
||||||
rcb = hud_scale ? SCREENHEIGHT + (rcb*CleanYfac) : SCREENHEIGHT + rcb;
|
rcb = hud_scale ? SCREENHEIGHT + (rcb*CleanYfac*200.0/script->resH) : SCREENHEIGHT + rcb;
|
||||||
}
|
}
|
||||||
else if(hud_scale)
|
else if(hud_scale)
|
||||||
{
|
{
|
||||||
rcy *= CleanYfac;
|
rcy *= CleanYfac*200.0/script->resH;
|
||||||
if(rcb != INT_MAX)
|
if(rcb != INT_MAX)
|
||||||
rcb *= CleanYfac;
|
rcb *= CleanYfac*200.0/script->resH;
|
||||||
}
|
}
|
||||||
if(rx < 0)
|
if(rx < 0)
|
||||||
{
|
{
|
||||||
if(rcx != 0)
|
if(rcx != 0)
|
||||||
rcx = hud_scale ? SCREENWIDTH + (rcx*CleanXfac) : SCREENWIDTH + rcx;
|
rcx = hud_scale ? SCREENWIDTH + (rcx*CleanXfac*320.0/script->resW) : SCREENWIDTH + rcx;
|
||||||
if(rcr != INT_MAX)
|
if(rcr != INT_MAX)
|
||||||
rcr = hud_scale ? SCREENWIDTH + (rcr*CleanXfac) : SCREENWIDTH + rcr;
|
rcr = hud_scale ? SCREENWIDTH + (rcr*CleanXfac*320.0/script->resW) : SCREENWIDTH + rcr;
|
||||||
}
|
}
|
||||||
else if(hud_scale)
|
else if(hud_scale)
|
||||||
{
|
{
|
||||||
rcx *= CleanXfac;
|
rcx *= CleanXfac*320.0/script->resW;
|
||||||
if(rcr != INT_MAX)
|
if(rcr != INT_MAX)
|
||||||
rcr *= CleanXfac;
|
rcr *= CleanXfac*320.0/script->resW;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(clearDontDraw)
|
if(clearDontDraw)
|
||||||
{
|
{
|
||||||
screen->Clear(rcx, rcy, MIN<int>(rcr, w*(hud_scale ? CleanXfac : 1)), MIN<int>(rcb, h*(hud_scale ? CleanYfac : 1)), GPalette.BlackIndex, 0);
|
screen->Clear(rcx, rcy, MIN<int>(rcr, w), MIN<int>(rcb, h), GPalette.BlackIndex, 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1232,7 +1266,6 @@ public:
|
||||||
DTA_Translation, translate ? GetTranslation() : 0,
|
DTA_Translation, translate ? GetTranslation() : 0,
|
||||||
DTA_ColorOverlay, dim ? DIM_OVERLAY : 0,
|
DTA_ColorOverlay, dim ? DIM_OVERLAY : 0,
|
||||||
DTA_CenterBottomOffset, (offsetflags & SBarInfoCommand::CENTER_BOTTOM) == SBarInfoCommand::CENTER_BOTTOM,
|
DTA_CenterBottomOffset, (offsetflags & SBarInfoCommand::CENTER_BOTTOM) == SBarInfoCommand::CENTER_BOTTOM,
|
||||||
DTA_HUDRules, HUD_Normal,
|
|
||||||
DTA_Alpha, alpha,
|
DTA_Alpha, alpha,
|
||||||
DTA_AlphaChannel, alphaMap,
|
DTA_AlphaChannel, alphaMap,
|
||||||
DTA_FillColor, 0,
|
DTA_FillColor, 0,
|
||||||
|
@ -1250,7 +1283,6 @@ public:
|
||||||
DTA_Translation, translate ? GetTranslation() : 0,
|
DTA_Translation, translate ? GetTranslation() : 0,
|
||||||
DTA_ColorOverlay, dim ? DIM_OVERLAY : 0,
|
DTA_ColorOverlay, dim ? DIM_OVERLAY : 0,
|
||||||
DTA_CenterBottomOffset, (offsetflags & SBarInfoCommand::CENTER_BOTTOM) == SBarInfoCommand::CENTER_BOTTOM,
|
DTA_CenterBottomOffset, (offsetflags & SBarInfoCommand::CENTER_BOTTOM) == SBarInfoCommand::CENTER_BOTTOM,
|
||||||
DTA_HUDRules, HUD_Normal,
|
|
||||||
DTA_Alpha, alpha,
|
DTA_Alpha, alpha,
|
||||||
TAG_DONE);
|
TAG_DONE);
|
||||||
}
|
}
|
||||||
|
@ -1297,9 +1329,13 @@ public:
|
||||||
if(!fullScreenOffsets)
|
if(!fullScreenOffsets)
|
||||||
{
|
{
|
||||||
rx += ST_X;
|
rx += ST_X;
|
||||||
ry += ST_Y;
|
ry += ST_Y - (Scaled ? script->resH : 200) + script->height;
|
||||||
if(Scaled)
|
if(Scaled)
|
||||||
screen->VirtualToRealCoordsInt(rx, ry, rw, rh, 320, 200, true);
|
screen->VirtualToRealCoordsInt(rx, ry, rw, rh, script->resW, script->resH, true);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ry += (200 - script->resH);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1340,12 +1376,26 @@ public:
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
bool xright = rx < 0;
|
||||||
|
bool ybot = ry < 0;
|
||||||
|
|
||||||
|
if(hud_scale)
|
||||||
|
{
|
||||||
|
rx *= CleanXfac * 320.0/script->resW;
|
||||||
|
ry *= CleanYfac * 200.0/script->resH;
|
||||||
|
rw *= CleanXfac * 320.0/script->resW;
|
||||||
|
rh *= CleanYfac * 200.0/script->resH;
|
||||||
|
}
|
||||||
|
if(xright)
|
||||||
|
rx = SCREENWIDTH + rx;
|
||||||
|
if(ybot)
|
||||||
|
ry = SCREENHEIGHT + ry;
|
||||||
|
|
||||||
screen->DrawTexture(character, rx, ry,
|
screen->DrawTexture(character, rx, ry,
|
||||||
DTA_DestWidth, rw,
|
DTA_DestWidth, rw,
|
||||||
DTA_DestHeight, rh,
|
DTA_DestHeight, rh,
|
||||||
DTA_Translation, font->GetColorTranslation(translation),
|
DTA_Translation, font->GetColorTranslation(translation),
|
||||||
DTA_Alpha, alpha,
|
DTA_Alpha, alpha,
|
||||||
DTA_HUDRules, HUD_Normal,
|
|
||||||
TAG_DONE);
|
TAG_DONE);
|
||||||
}
|
}
|
||||||
if(script->spacingCharacter == '\0')
|
if(script->spacingCharacter == '\0')
|
||||||
|
|
|
@ -98,6 +98,8 @@ struct SBarInfo
|
||||||
int height;
|
int height;
|
||||||
int gameType;
|
int gameType;
|
||||||
FMugShot MugShot;
|
FMugShot MugShot;
|
||||||
|
int resW;
|
||||||
|
int resH;
|
||||||
|
|
||||||
int GetGameType() { return gameType; }
|
int GetGameType() { return gameType; }
|
||||||
void ParseSBarInfo(int lump);
|
void ParseSBarInfo(int lump);
|
||||||
|
|
|
@ -1175,6 +1175,10 @@ class CommandDrawMugShot : public SBarInfoCommand
|
||||||
GetCoordinates(sc, fullScreenOffsets, x, y);
|
GetCoordinates(sc, fullScreenOffsets, x, y);
|
||||||
sc.MustGetToken(';');
|
sc.MustGetToken(';');
|
||||||
}
|
}
|
||||||
|
void Reset()
|
||||||
|
{
|
||||||
|
script->MugShot.Reset();
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
FString defaultFace; //Deprecated
|
FString defaultFace; //Deprecated
|
||||||
|
|
|
@ -175,7 +175,7 @@ void ST_LoadCrosshair(bool alwaysload)
|
||||||
//
|
//
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
DBaseStatusBar::DBaseStatusBar (int reltop)
|
DBaseStatusBar::DBaseStatusBar (int reltop, int hres, int vres)
|
||||||
{
|
{
|
||||||
Centering = false;
|
Centering = false;
|
||||||
FixedOrigin = false;
|
FixedOrigin = false;
|
||||||
|
@ -185,6 +185,8 @@ DBaseStatusBar::DBaseStatusBar (int reltop)
|
||||||
Displacement = 0;
|
Displacement = 0;
|
||||||
CPlayer = NULL;
|
CPlayer = NULL;
|
||||||
ShowLog = false;
|
ShowLog = false;
|
||||||
|
HorizontalResolution = hres;
|
||||||
|
VirticalResolution = vres;
|
||||||
|
|
||||||
SetScaled (st_scale);
|
SetScaled (st_scale);
|
||||||
}
|
}
|
||||||
|
@ -216,18 +218,20 @@ void DBaseStatusBar::Destroy ()
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
//[BL] Added force argument to have forcescaled mean forcescaled.
|
//[BL] Added force argument to have forcescaled mean forcescaled.
|
||||||
|
// - Also, if the VirticalResolution is something other than the default (200)
|
||||||
|
// We should always obey the value of scale.
|
||||||
void DBaseStatusBar::SetScaled (bool scale, bool force)
|
void DBaseStatusBar::SetScaled (bool scale, bool force)
|
||||||
{
|
{
|
||||||
Scaled = (RelTop != 0 || force) && (SCREENWIDTH != 320 && scale);
|
Scaled = (RelTop != 0 || force) && ((SCREENWIDTH != 320 || HorizontalResolution != 320) && scale);
|
||||||
|
|
||||||
if (!Scaled)
|
if (!Scaled)
|
||||||
{
|
{
|
||||||
ST_X = (SCREENWIDTH - 320) / 2;
|
ST_X = (SCREENWIDTH - HorizontalResolution) / 2;
|
||||||
ST_Y = SCREENHEIGHT - RelTop;
|
ST_Y = SCREENHEIGHT - RelTop;
|
||||||
::ST_Y = ST_Y;
|
::ST_Y = ST_Y;
|
||||||
if (RelTop > 0)
|
if (RelTop > 0)
|
||||||
{
|
{
|
||||||
Displacement = ((ST_Y * 200 / SCREENHEIGHT) - (200 - RelTop))*FRACUNIT/RelTop;
|
Displacement = ((ST_Y * VirticalResolution / SCREENHEIGHT) - (VirticalResolution - RelTop))*FRACUNIT/RelTop;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -237,14 +241,14 @@ void DBaseStatusBar::SetScaled (bool scale, bool force)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
ST_X = 0;
|
ST_X = 0;
|
||||||
ST_Y = 200 - RelTop;
|
ST_Y = VirticalResolution - RelTop;
|
||||||
if (CheckRatio(SCREENWIDTH, SCREENHEIGHT) != 4)
|
if (CheckRatio(SCREENWIDTH, SCREENHEIGHT) != 4)
|
||||||
{ // Normal resolution
|
{ // Normal resolution
|
||||||
::ST_Y = Scale (ST_Y, SCREENHEIGHT, 200);
|
::ST_Y = Scale (ST_Y, SCREENHEIGHT, VirticalResolution);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ // 5:4 resolution
|
{ // 5:4 resolution
|
||||||
::ST_Y = Scale(ST_Y - 100, SCREENHEIGHT*3, BaseRatioSizes[4][1]) + SCREENHEIGHT/2
|
::ST_Y = Scale(ST_Y - VirticalResolution/2, SCREENHEIGHT*3, Scale(VirticalResolution, BaseRatioSizes[4][1], 200)) + SCREENHEIGHT/2
|
||||||
+ (SCREENHEIGHT - SCREENHEIGHT * BaseRatioSizes[4][3] / 48) / 2;
|
+ (SCREENHEIGHT - SCREENHEIGHT * BaseRatioSizes[4][3] / 48) / 2;
|
||||||
}
|
}
|
||||||
Displacement = 0;
|
Displacement = 0;
|
||||||
|
@ -1000,7 +1004,7 @@ void DBaseStatusBar::RefreshBackground () const
|
||||||
if (x > 0)
|
if (x > 0)
|
||||||
{
|
{
|
||||||
y = x == ST_X ? ST_Y : ::ST_Y;
|
y = x == ST_X ? ST_Y : ::ST_Y;
|
||||||
x2 = !(ratio & 3) || !Scaled ? ST_X+320 :
|
x2 = !(ratio & 3) || !Scaled ? ST_X+HorizontalResolution :
|
||||||
SCREENWIDTH - (SCREENWIDTH*(48-BaseRatioSizes[ratio][3])+48*2-1)/(48*2);
|
SCREENWIDTH - (SCREENWIDTH*(48-BaseRatioSizes[ratio][3])+48*2-1)/(48*2);
|
||||||
R_DrawBorder (0, y, x, SCREENHEIGHT);
|
R_DrawBorder (0, y, x, SCREENHEIGHT);
|
||||||
R_DrawBorder (x2, y, SCREENWIDTH, SCREENHEIGHT);
|
R_DrawBorder (x2, y, SCREENWIDTH, SCREENHEIGHT);
|
||||||
|
|
Loading…
Reference in a new issue