- added ability to force internal alternative HUD
Set hud_althud_forceinternal CVAR to disable unwanted HUD customizations
This commit is contained in:
parent
e21c9e0ef8
commit
fdd17403e5
3 changed files with 62 additions and 37 deletions
|
|
@ -93,6 +93,65 @@ CVAR (Int, hudcolor_stats, CR_GREEN, CVAR_ARCHIVE) // For the stats values the
|
|||
CVAR(Bool, map_point_coordinates, true, CVAR_ARCHIVE|CVAR_GLOBALCONFIG) // show player or map coordinates?
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// Create Alternative HUD
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
CUSTOM_CVAR(Bool, hud_althud_forceinternal, false, CVAR_ARCHIVE | CVAR_NOINITCALL)
|
||||
{
|
||||
if (StatusBar)
|
||||
StatusBar->CreateAltHUD();
|
||||
}
|
||||
|
||||
static DObject* DoCreateAltHUD(const FName classname)
|
||||
{
|
||||
if (classname == NAME_None)
|
||||
return nullptr;
|
||||
|
||||
const auto cls = PClass::FindClass(classname);
|
||||
if (!cls)
|
||||
{
|
||||
Printf(TEXTCOLOR_RED "Unknown alternative HUD class \"%s\"\n", classname.GetChars());
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
if (!cls->IsDescendantOf(NAME_AltHud))
|
||||
{
|
||||
Printf(TEXTCOLOR_RED "Alternative HUD class \"%s\" is not derived from AltHud\n", classname.GetChars());
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
const auto althud = cls->CreateNew();
|
||||
|
||||
IFVIRTUALPTRNAME(althud, NAME_AltHud, Init)
|
||||
{
|
||||
VMValue params[] = { althud };
|
||||
VMCall(func, params, countof(params), nullptr, 0);
|
||||
}
|
||||
|
||||
return althud;
|
||||
}
|
||||
|
||||
void DBaseStatusBar::CreateAltHUD()
|
||||
{
|
||||
if (AltHud)
|
||||
{
|
||||
AltHud->Destroy();
|
||||
AltHud = nullptr;
|
||||
}
|
||||
|
||||
if (!hud_althud_forceinternal)
|
||||
AltHud = DoCreateAltHUD(gameinfo.althudclass);
|
||||
|
||||
if (!AltHud)
|
||||
AltHud = DoCreateAltHUD(NAME_AltHud);
|
||||
|
||||
assert(AltHud);
|
||||
}
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// draw the HUD
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue