mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-11-10 23:02:03 +00:00
- fixed the HUD size slider for Blood.
This commit is contained in:
parent
6a06f6aef4
commit
09106b3159
6 changed files with 20 additions and 23 deletions
|
@ -87,7 +87,6 @@ struct GameInterface : ::GameInterface
|
||||||
void UpdateScreenSize() override;
|
void UpdateScreenSize() override;
|
||||||
bool GenerateSavePic() override;
|
bool GenerateSavePic() override;
|
||||||
void FreeGameData() override;
|
void FreeGameData() override;
|
||||||
bool validate_hud(int) override;
|
|
||||||
void set_hud_layout(int size) override;
|
void set_hud_layout(int size) override;
|
||||||
void set_hud_scale(int size) override;
|
void set_hud_scale(int size) override;
|
||||||
FString statFPS() override;
|
FString statFPS() override;
|
||||||
|
|
|
@ -55,22 +55,10 @@ int32_t mouseyaxismode = -1;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// This is mainly here to account for the different implementation between Blood and the other games
|
|
||||||
// and to allow unified handling and the same value range in the CVAR code.
|
|
||||||
// Unlike EDuke's version, NBlood's was actually fine, it just had a too small value range to be chosen as the unified version.
|
|
||||||
bool GameInterface::validate_hud(int layout)
|
|
||||||
{
|
|
||||||
return layout > 3 && layout != 8; // 8 is the status bar overlay which NBlood did not implement.
|
|
||||||
}
|
|
||||||
|
|
||||||
void GameInterface::set_hud_layout(int layout)
|
void GameInterface::set_hud_layout(int layout)
|
||||||
{
|
{
|
||||||
static const uint8_t screen_size_vals[] = { 7, 7, 7, 7, 6, 5, 4, 3, 3, 2, 1, 0 };
|
layout = clamp(7 - layout, 0, 7); // need to reverse the order because menu sliders always have low values to the left.
|
||||||
|
viewResizeView(layout);
|
||||||
if (validate_hud(layout))
|
|
||||||
{
|
|
||||||
viewResizeView(screen_size_vals[layout]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void GameInterface::set_hud_scale(int scale)
|
void GameInterface::set_hud_scale(int scale)
|
||||||
|
|
|
@ -104,9 +104,9 @@ struct GameInterface
|
||||||
virtual int app_main() = 0;
|
virtual int app_main() = 0;
|
||||||
virtual void UpdateScreenSize() {}
|
virtual void UpdateScreenSize() {}
|
||||||
virtual void FreeGameData() {}
|
virtual void FreeGameData() {}
|
||||||
virtual bool validate_hud(int) = 0;
|
virtual bool validate_hud(int) { return true; }
|
||||||
virtual void set_hud_layout(int size) = 0;
|
virtual void set_hud_layout(int size) = 0;
|
||||||
virtual void set_hud_scale(int size) = 0;
|
virtual void set_hud_scale(int size) {}
|
||||||
virtual FString statFPS() { return "FPS display not available"; }
|
virtual FString statFPS() { return "FPS display not available"; }
|
||||||
virtual GameStats getStats() { return {}; }
|
virtual GameStats getStats() { return {}; }
|
||||||
virtual void DrawNativeMenuText(int fontnum, int state, double xpos, double ypos, float fontscale, const char* text, int flags) {}
|
virtual void DrawNativeMenuText(int fontnum, int state, double xpos, double ypos, float fontscale, const char* text, int flags) {}
|
||||||
|
|
|
@ -92,6 +92,8 @@ CVAR(Bool, disableautoload, false, CVAR_ARCHIVE | CVAR_NOINITCALL | CVAR_GLOBALC
|
||||||
//CVAR(Bool, autoloadbrightmaps, false, CVAR_ARCHIVE | CVAR_NOINITCALL | CVAR_GLOBALCONFIG) // hopefully this is an option for later
|
//CVAR(Bool, autoloadbrightmaps, false, CVAR_ARCHIVE | CVAR_NOINITCALL | CVAR_GLOBALCONFIG) // hopefully this is an option for later
|
||||||
//CVAR(Bool, autoloadlights, false, CVAR_ARCHIVE | CVAR_NOINITCALL | CVAR_GLOBALCONFIG)
|
//CVAR(Bool, autoloadlights, false, CVAR_ARCHIVE | CVAR_NOINITCALL | CVAR_GLOBALCONFIG)
|
||||||
|
|
||||||
|
extern int hud_size_max;
|
||||||
|
|
||||||
|
|
||||||
//==========================================================================
|
//==========================================================================
|
||||||
//
|
//
|
||||||
|
@ -611,9 +613,9 @@ int RunGame()
|
||||||
|
|
||||||
if (g_gameType & GAMEFLAG_BLOOD)
|
if (g_gameType & GAMEFLAG_BLOOD)
|
||||||
{
|
{
|
||||||
UCVarValue v;
|
mus_redbook.SetGenericRepDefault(false, CVAR_Bool); // Blood should default to CD Audio off - all other games must default to on.
|
||||||
v.Bool = false;
|
hud_size.SetGenericRepDefault(6, CVAR_Int); // HUD is different for everything.
|
||||||
mus_redbook.SetGenericRepDefault(v, CVAR_Bool); // Blood should default to CD Audio off - all other games must default to on.
|
hud_size_max = 7;
|
||||||
}
|
}
|
||||||
|
|
||||||
G_ReadConfig(currentGame);
|
G_ReadConfig(currentGame);
|
||||||
|
|
|
@ -160,10 +160,13 @@ CUSTOM_CVARD(Int, snd_speech, 5, CVAR_ARCHIVE|CVAR_GLOBALCONFIG, "enables/disabl
|
||||||
// This was particularly messy. EDuke and Rednukem had no consistent setting for this but a complex combination of 4 CVARs and lots of mod flags controlling the HUD layout
|
// This was particularly messy. EDuke and Rednukem had no consistent setting for this but a complex combination of 4 CVARs and lots of mod flags controlling the HUD layout
|
||||||
// NBlood had this differently with an inverted scale of 0-7 with 0 having no HUD.
|
// NBlood had this differently with an inverted scale of 0-7 with 0 having no HUD.
|
||||||
// For consistency all frontends now use the same scale, with 0 being the smallest and 11 being the largest, which get converted to the internal settings by the set_hud_layout callback.
|
// For consistency all frontends now use the same scale, with 0 being the smallest and 11 being the largest, which get converted to the internal settings by the set_hud_layout callback.
|
||||||
|
|
||||||
|
int hud_size_max = 11; // 11 is for Duke Nukem and its offspring games.
|
||||||
|
|
||||||
CUSTOM_CVARD(Int, hud_size, 9, CVAR_ARCHIVE | CVAR_NOINITCALL, "Defines the HUD size and style")
|
CUSTOM_CVARD(Int, hud_size, 9, CVAR_ARCHIVE | CVAR_NOINITCALL, "Defines the HUD size and style")
|
||||||
{
|
{
|
||||||
if (self < 0) self = 0;
|
if (self < 0) self = 0;
|
||||||
else if (self > 11) self = 11;
|
else if (self > hud_size_max) self = hud_size_max;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (gi->validate_hud(self))
|
if (gi->validate_hud(self))
|
||||||
|
|
|
@ -1197,11 +1197,16 @@ OptionMenu "HUDOptions" //protected
|
||||||
{
|
{
|
||||||
Title "$OPTMNU_HUD"
|
Title "$OPTMNU_HUD"
|
||||||
|
|
||||||
Slider "$DSPLYMNU_SCREENSIZE", "hud_size", 0.0, 11.0, 1.0, -1
|
ifgame(duke, nam, ww2gi, redneck, redneckrides, fury)
|
||||||
ifgame(duke, nam, ww2gi, redneck, redneckrides, fury) // Fixme: The scaling really needs to be taken out of the game code.
|
|
||||||
{
|
{
|
||||||
|
Slider "$DSPLYMNU_SCREENSIZE", "hud_size", 0.0, 11.0, 1.0, -1
|
||||||
Slider "$DSPLYMNU_SBSCALE", "hud_scale", 0.3, 1.0, 0.1, 2
|
Slider "$DSPLYMNU_SBSCALE", "hud_scale", 0.3, 1.0, 0.1, 2
|
||||||
}
|
}
|
||||||
|
ifgame(blood)
|
||||||
|
{
|
||||||
|
Slider "$DSPLYMNU_SCREENSIZE", "hud_size", 0.0, 7.0, 1.0, -1
|
||||||
|
}
|
||||||
|
|
||||||
Option "$DSPLYMNU_LEVELSTATS", "hud_stats", "OnOff"
|
Option "$DSPLYMNU_LEVELSTATS", "hud_stats", "OnOff"
|
||||||
ifgame(duke, nam, ww2gi, redneck, redneckrides, fury)
|
ifgame(duke, nam, ww2gi, redneck, redneckrides, fury)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue