mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-27 20:20:40 +00:00
- implemented the menu caption for Duke et.al.
This commit is contained in:
parent
d22bdf9dc7
commit
bec1f67178
6 changed files with 92 additions and 17 deletions
|
@ -72,6 +72,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
#include "d_net.h"
|
#include "d_net.h"
|
||||||
#include "automap.h"
|
#include "automap.h"
|
||||||
#include "v_draw.h"
|
#include "v_draw.h"
|
||||||
|
#include "gi.h"
|
||||||
|
|
||||||
CVAR(Bool, autoloadlights, true, CVAR_ARCHIVE|CVAR_GLOBALCONFIG)
|
CVAR(Bool, autoloadlights, true, CVAR_ARCHIVE|CVAR_GLOBALCONFIG)
|
||||||
CVAR(Bool, autoloadbrightmaps, true, CVAR_ARCHIVE | CVAR_GLOBALCONFIG)
|
CVAR(Bool, autoloadbrightmaps, true, CVAR_ARCHIVE | CVAR_GLOBALCONFIG)
|
||||||
|
@ -744,6 +745,7 @@ static TArray<GrpEntry> SetupGame()
|
||||||
currentGame = LumpFilter;
|
currentGame = LumpFilter;
|
||||||
currentGame.Truncate(currentGame.IndexOf("."));
|
currentGame.Truncate(currentGame.IndexOf("."));
|
||||||
CheckFrontend(g_gameType);
|
CheckFrontend(g_gameType);
|
||||||
|
gameinfo.gametype = g_gameType;
|
||||||
return usedgroups;
|
return usedgroups;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1111,6 +1111,7 @@ bool CheckSkipGameOptionBlock(FScanner &sc)
|
||||||
#endif
|
#endif
|
||||||
void SetDefaultMenuColors()
|
void SetDefaultMenuColors()
|
||||||
{
|
{
|
||||||
|
PClass* cls = nullptr;
|
||||||
//OptionSettings.mTitleColor = CR_RED;// V_FindFontColor(gameinfo.mTitleColor);
|
//OptionSettings.mTitleColor = CR_RED;// V_FindFontColor(gameinfo.mTitleColor);
|
||||||
OptionSettings.mFontColor = CR_RED;
|
OptionSettings.mFontColor = CR_RED;
|
||||||
OptionSettings.mFontColorValue = CR_GRAY;
|
OptionSettings.mFontColorValue = CR_GRAY;
|
||||||
|
@ -1119,31 +1120,43 @@ void SetDefaultMenuColors()
|
||||||
OptionSettings.mFontColorHighlight = CR_YELLOW;
|
OptionSettings.mFontColorHighlight = CR_YELLOW;
|
||||||
OptionSettings.mFontColorSelection = CR_BRICK;
|
OptionSettings.mFontColorSelection = CR_BRICK;
|
||||||
|
|
||||||
if (g_gameType & (GAMEFLAG_NAM | GAMEFLAG_NAPALM | GAMEFLAG_WW2GI))
|
if (g_gameType & GAMEFLAG_BLOOD)
|
||||||
{
|
|
||||||
OptionSettings.mFontColor = CR_DARKGREEN;
|
|
||||||
OptionSettings.mFontColorHeader = CR_DARKGRAY;
|
|
||||||
OptionSettings.mFontColorHighlight = CR_WHITE;
|
|
||||||
OptionSettings.mFontColorSelection = CR_DARKGREEN;
|
|
||||||
}
|
|
||||||
else if (g_gameType & GAMEFLAG_BLOOD)
|
|
||||||
{
|
{
|
||||||
OptionSettings.mFontColorHeader = CR_DARKGRAY;
|
OptionSettings.mFontColorHeader = CR_DARKGRAY;
|
||||||
OptionSettings.mFontColorHighlight = CR_WHITE;
|
OptionSettings.mFontColorHighlight = CR_WHITE;
|
||||||
OptionSettings.mFontColorSelection = CR_DARKRED;
|
OptionSettings.mFontColorSelection = CR_DARKRED;
|
||||||
auto cls = PClass::FindClass("MenuCustomizerBlood");
|
cls = PClass::FindClass("MenuCustomizerBlood");
|
||||||
if (cls) menuCustomizer = cls->CreateNew();
|
|
||||||
}
|
|
||||||
else if (g_gameType & GAMEFLAG_RRALL)
|
|
||||||
{
|
|
||||||
OptionSettings.mFontColor = CR_BROWN;
|
|
||||||
OptionSettings.mFontColorHeader = CR_DARKBROWN;
|
|
||||||
OptionSettings.mFontColorHighlight = CR_ORANGE;
|
|
||||||
OptionSettings.mFontColorSelection = CR_TAN;
|
|
||||||
}
|
}
|
||||||
else if (g_gameType & GAMEFLAG_SW)
|
else if (g_gameType & GAMEFLAG_SW)
|
||||||
{
|
{
|
||||||
OptionSettings.mFontColorHeader = CR_DARKRED;
|
OptionSettings.mFontColorHeader = CR_DARKRED;
|
||||||
OptionSettings.mFontColorHighlight = CR_WHITE;
|
OptionSettings.mFontColorHighlight = CR_WHITE;
|
||||||
}
|
}
|
||||||
|
else if (g_gameType & GAMEFLAG_PSEXHUMED)
|
||||||
|
{
|
||||||
|
OptionSettings.mFontColorHeader = CR_LIGHTBLUE;
|
||||||
|
OptionSettings.mFontColorHighlight = CR_SAPPHIRE;
|
||||||
|
OptionSettings.mFontColor = CR_GOLD;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (g_gameType & (GAMEFLAG_NAM | GAMEFLAG_NAPALM | GAMEFLAG_WW2GI))
|
||||||
|
{
|
||||||
|
OptionSettings.mFontColor = CR_DARKGREEN;
|
||||||
|
OptionSettings.mFontColorHeader = CR_DARKGRAY;
|
||||||
|
OptionSettings.mFontColorHighlight = CR_WHITE;
|
||||||
|
OptionSettings.mFontColorSelection = CR_DARKGREEN;
|
||||||
|
}
|
||||||
|
else if (g_gameType & GAMEFLAG_RRALL)
|
||||||
|
{
|
||||||
|
OptionSettings.mFontColor = CR_BROWN;
|
||||||
|
OptionSettings.mFontColorHeader = CR_DARKBROWN;
|
||||||
|
OptionSettings.mFontColorHighlight = CR_ORANGE;
|
||||||
|
OptionSettings.mFontColorSelection = CR_TAN;
|
||||||
|
}
|
||||||
|
cls = PClass::FindClass("MenuCustomizerDuke");
|
||||||
|
}
|
||||||
|
if (!cls) cls = PClass::FindClass("MenuCustomize");
|
||||||
|
if (cls) menuCustomizer = cls->CreateNew();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,6 +46,7 @@ Modifications for JonoF's port by Jonathon Fowler (jf@jonof.id.au)
|
||||||
#include "sounds.h"
|
#include "sounds.h"
|
||||||
#include "conlabel.h"
|
#include "conlabel.h"
|
||||||
#include "conlabeldef.h"
|
#include "conlabeldef.h"
|
||||||
|
#include "gi.h"
|
||||||
|
|
||||||
BEGIN_DUKE_NS
|
BEGIN_DUKE_NS
|
||||||
|
|
||||||
|
@ -1880,6 +1881,7 @@ int ConCompiler::parsecommand()
|
||||||
else if (pcount == 31) g_gameType |= GAMEFLAG_PLUTOPAK | GAMEFLAG_WORLDTOUR;
|
else if (pcount == 31) g_gameType |= GAMEFLAG_PLUTOPAK | GAMEFLAG_WORLDTOUR;
|
||||||
else if (pcount != 26) I_FatalError("Invalid CONs. Cannot detect version. gamestartup has %d entries", pcount);
|
else if (pcount != 26) I_FatalError("Invalid CONs. Cannot detect version. gamestartup has %d entries", pcount);
|
||||||
}
|
}
|
||||||
|
gameinfo.gametype = g_gameType;
|
||||||
|
|
||||||
popscriptvalue();
|
popscriptvalue();
|
||||||
auto parseone = [&]() { return params[pget++]; };
|
auto parseone = [&]() { return params[pget++]; };
|
||||||
|
|
|
@ -21,5 +21,6 @@ version "4.3"
|
||||||
#include "zscript/ui/menu/textentermenu.zs"
|
#include "zscript/ui/menu/textentermenu.zs"
|
||||||
#include "zscript/ui/menu/menucustomize.zs"
|
#include "zscript/ui/menu/menucustomize.zs"
|
||||||
|
|
||||||
|
#include "zscript/games/duke/ui/menu.zs"
|
||||||
#include "zscript/games/blood/ui/menu.zs"
|
#include "zscript/games/blood/ui/menu.zs"
|
||||||
|
|
||||||
|
|
27
wadsrc/static/zscript/games/duke/ui/menu.zs
Normal file
27
wadsrc/static/zscript/games/duke/ui/menu.zs
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
|
||||||
|
class MenuCustomizerDuke : MenuCustomize
|
||||||
|
{
|
||||||
|
override int DrawCaption(String title, Font fnt, int y, bool drawit)
|
||||||
|
{
|
||||||
|
let font = generic_ui? NewConsoleFont : BigFont; // this ignores the passed font intentionally.
|
||||||
|
let texid = TexMan.CheckForTexture("MENUBAR");
|
||||||
|
let texsize = TexMan.GetScaledSize(texid);
|
||||||
|
let fonth = font.GetGlyphHeight("A");
|
||||||
|
if (drawit)
|
||||||
|
{
|
||||||
|
int width = font.StringWidth(title);
|
||||||
|
double scalex = (gameinfo.gameType & GAMEFLAG_RRALL)? 0.4 : 1.;
|
||||||
|
double scaley = scalex;
|
||||||
|
if (texid.isValid())
|
||||||
|
{
|
||||||
|
screen.DrawTexture(texid, false, 160, 19, DTA_FullscreenScale, FSMode_Fit320x200Top, DTA_CenterOffsetRel, true, DTA_Color, 0xff808080);
|
||||||
|
if (texsize.X - 30 < width) scalex = (texsize.X - 30) / width; // Squash the text if it doesn't fit.
|
||||||
|
}
|
||||||
|
screen.DrawText(font, Font.CR_UNTRANSLATED, 160 - width / 2 * scalex, 18 - fonth / 2 * scaley, title, DTA_ScaleX, scalex, DTA_ScaleY, scaley, DTA_FullscreenScale, FSMode_Fit320x200Top);
|
||||||
|
}
|
||||||
|
double fx, fy, fw, fh;
|
||||||
|
[fx, fy, fw, fh] = Screen.GetFullscreenRect(320, 200, FSMode_ScaleToFit43Top);
|
||||||
|
int h = texid.isValid()? texsize.Y : fonth;
|
||||||
|
return int((y+h) * fh / 200); // This must be the covered height of the header in true pixels.
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,3 +1,33 @@
|
||||||
|
|
||||||
|
enum EGameType
|
||||||
|
{
|
||||||
|
GAMEFLAG_DUKE = 0x00000001,
|
||||||
|
GAMEFLAG_NAM = 0x00000002,
|
||||||
|
GAMEFLAG_NAPALM = 0x00000004,
|
||||||
|
GAMEFLAG_WW2GI = 0x00000008,
|
||||||
|
GAMEFLAG_ADDON = 0x00000010,
|
||||||
|
GAMEFLAG_SHAREWARE = 0x00000020,
|
||||||
|
GAMEFLAG_DUKEBETA = 0x00000060, // includes 0x20 since it's a shareware beta
|
||||||
|
GAMEFLAG_PLUTOPAK = 0x00000080,
|
||||||
|
GAMEFLAG_RR = 0x00000100,
|
||||||
|
GAMEFLAG_RRRA = 0x00000200,
|
||||||
|
GAMEFLAG_RRALL = GAMEFLAG_RR | GAMEFLAG_RRRA,
|
||||||
|
GAMEFLAG_BLOOD = 0x00000800,
|
||||||
|
GAMEFLAG_SW = 0x00001000,
|
||||||
|
GAMEFLAG_POWERSLAVE = 0x00002000,
|
||||||
|
GAMEFLAG_EXHUMED = 0x00004000,
|
||||||
|
GAMEFLAG_PSEXHUMED = GAMEFLAG_POWERSLAVE | GAMEFLAG_EXHUMED, // the two games really are the same, except for the name and the publisher.
|
||||||
|
GAMEFLAG_WORLDTOUR = 0x00008000,
|
||||||
|
GAMEFLAG_DUKEDC = 0x00010000,
|
||||||
|
GAMEFLAGMASK = 0x0000FFFF, // flags allowed from grpinfo
|
||||||
|
|
||||||
|
// We still need these for the parsers.
|
||||||
|
GAMEFLAG_FURY = 0,
|
||||||
|
GAMEFLAG_DEER = 0,
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
struct TileFiles
|
struct TileFiles
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue