rott/kf_sources/KFGui/Classes/KFHudSettings.uc
2026-07-14 20:27:09 +07:00

407 lines
8.9 KiB
Ucode

class KFHudSettings extends UT2K4Tab_HudSettings;
var automated moCheckBox ch_LightHud;
var() bool bLight;
var automated moCheckBox ch_SpecKillCounter;
var bool bTallySpecimenKills;
function InitComponent(GUIController MyController, GUIComponent MyOwner)
{
Super(Settings_Tabs).InitComponent(MyController, MyOwner);
i_BG1.ManageComponent(ch_Visible);
i_BG1.ManageComponent(ch_Weapons);
i_BG1.ManageComponent(ch_LightHud);
i_BG1.ManageComponent(ch_SpecKillCounter);
i_BG1.ManageComponent(ch_Personal);
i_BG1.ManageComponent(ch_Score);
// KFTODO: reintegrate these
//i_BG1.ManageComponent(ch_Portraits);
//i_BG1.ManageComponent(ch_VCPortraits);
i_BG1.ManageComponent(ch_DeathMsgs);
i_BG1.ManageComponent(nu_MsgCount);
i_BG1.ManageComponent(nu_MsgScale);
i_BG1.ManageComponent(nu_MsgOffset);
sl_Opacity.MySlider.bDrawPercentSign = True;
//sl_Scale.MySlider.bDrawPercentSign = True;
}
function InternalOnLoadINI(GUIComponent Sender, string s)
{
local HUD H;
H = PlayerOwner().myHUD;
switch (Sender)
{
case ch_DeathMsgs:
bNoMsgs = class'XGame.xDeathMessage'.default.bNoConsoleDeathMessages;
ch_DeathMsgs.SetComponentValue(bNoMsgs,true);
break;
case ch_Visible:
bVis = H.bHideHUD;
ch_Visible.SetComponentValue(bVis,true);
InitializeHUDColor();
break;
case ch_LightHud:
if ( HUDKillingFloor(H) != none )
{
bLight = HUDKillingFloor(H).bLightHud;
ch_LightHud.SetComponentValue(bLight,true);
break;
}
else
{
bLight = class'KFMod.HUDKillingFloor'.default.bLightHud;
ch_LightHud.SetComponentValue(bLight,true);
break;
}
case ch_SpecKillCounter:
if ( HUDKillingFloor(H) != none )
{
bTallySpecimenKills = HUDKillingFloor(H).bTallySpecimenKills;
ch_SpecKillCounter.SetComponentValue(bTallySpecimenKills,true);
break;
}
else
{
bTallySpecimenKills = class'KFMod.HUDKillingFloor'.default.bTallySpecimenKills;
ch_SpecKillCounter.SetComponentValue(bTallySpecimenKills,true);
break;
}
case ch_Weapons:
bWeapons = H.bShowWeaponInfo;
ch_Weapons.SetComponentValue(bWeapons,true);
break;
case ch_Personal:
bPersonal = H.bShowPersonalInfo;
ch_Personal.SetComponentValue(bPersonal,true);
break;
case ch_Score:
bScore = H.bShowPoints;
ch_Score.SetComponentValue(bScore,true);
break;
case ch_WeaponBar:
bWeaponBar = H.bShowWeaponBar;
ch_WeaponBar.SetComponentValue(bWeaponBar,true);
break;
// KFTODO: Figure out how to reintegrate this!
// case ch_Portraits:
// bPortraits = H.bShowPortrait;
// ch_Portraits.SetComponentValue(bPortraits,true);
// break;
case nu_MsgCount:
iCount = H.ConsoleMessageCount;
nu_MsgCount.SetComponentValue(iCount,true);
break;
case nu_MsgScale:
iScale = 8 - H.ConsoleFontSize;
nu_MsgScale.SetComponentValue(iScale,true);
break;
case nu_MsgOffset:
iOffset = H.MessageFontOffset+4;
nu_MsgOffset.SetComponentValue(iOffset,true);
break;
default:
GUIMenuOption(Sender).SetComponentValue(s,true);
}
}
function SaveSettings()
{
local PlayerController PC;
local HUD H;
local bool bSave;
PC = PlayerOwner();
H = PlayerOwner().myHUD;
if ( H.bHideHud != bVis )
{
H.bHideHUD = bVis;
bSave = True;
}
if ( HUDKillingFloor(H) != none )
{
if ( HUDKillingFloor(H).bLightHud != bLight )
{
HUDKillingFloor(H).bLightHUD = bLight;
bSave = True;
}
if ( HUDKillingFloor(H).bTallySpecimenKills != bTallySpecimenKills )
{
HUDKillingFloor(H).bTallySpecimenKills = bTallySpecimenKills;
bSave = True;
}
}
else
{
if ( class'KFMod.HUDKillingFloor'.default.bLightHud != bLight )
{
class'KFMod.HUDKillingFloor'.default.bLightHud = bLight;
class'KFMod.HUDKillingFloor'.static.StaticSaveConfig();
}
if ( class'KFMod.HUDKillingFloor'.default.bTallySpecimenKills != bTallySpecimenKills )
{
class'KFMod.HUDKillingFloor'.default.bTallySpecimenKills = bTallySpecimenKills;
class'KFMod.HUDKillingFloor'.static.StaticSaveConfig();
}
}
if ( H.bShowWeaponInfo != bWeapons )
{
H.bShowWeaponInfo = bWeapons;
bSave = True;
}
if ( H.bShowPersonalInfo != bPersonal )
{
H.bShowPersonalInfo = bPersonal;
bSave = True;
}
if ( H.bShowPoints != bScore )
{
H.bShowPoints = bScore;
bSave = True;
}
if ( H.bShowWeaponBar != bWeaponBar)
{
H.bShowWeaponBar = bWeaponBar;
bSave = True;
}
// if _RO_
/*
// end if _RO_
if ( H.bShowPortrait != bPortraits )
{
H.bShowPortrait = bPortraits;
bSave = True;
}
if ( H.bShowPortraitVC != bVCPortraits )
{
H.bShowPortraitVC = bVCPortraits;
bSave = True;
}
// if _RO_
*/
// end if _RO_
if ( H.bNoEnemyNames == bNames )
{
H.bNoEnemyNames = !bNames;
bSave = True;
}
if ( H.ConsoleMessageCount != iCount )
{
H.ConsoleMessageCount = iCount;
bSave = True;
}
if ( H.ConsoleFontSize != Abs(iScale - 8) )
{
H.ConsoleFontSize = Abs(iScale - 8);
bSave = True;
}
if ( H.MessageFontOffset != iOffset - 4 )
{
H.MessageFontOffset = iOffset - 4;
bSave = True;
}
if ( H.HudScale != fScale / 100.0 )
{
H.HudScale = fScale / 100.0;
bSave = True;
}
if ( H.HudOpacity != (fOpacity / 100.0) * 255.0 )
{
H.HudOpacity = (fOpacity / 100.0) * 255.0;
bSave = True;
}
if ( HudBase(H) != None )
{
if ( SaveCustomHUDColor() || bSave )
H.SaveConfig();
}
else
{
if ( bSave )
H.SaveConfig();
SaveCustomHUDColor();
}
if ( class'XGame.xDeathMessage'.default.bNoConsoleDeathMessages != bNoMsgs )
{
class'XGame.xDeathMessage'.default.bNoConsoleDeathMessages = bNoMsgs;
class'XGame.xDeathMessage'.static.StaticSaveConfig();
}
}
function InternalOnChange(GUIComponent Sender)
{
Super.InternalOnChange(Sender);
switch (Sender)
{
case ch_LightHud:
bLight = ch_LightHud.IsChecked();
break;
case ch_SpecKillCounter:
bTallySpecimenKills = ch_SpecKillCounter.IsChecked();
break;
}
}
function InitializeHUDColor()
{
fScale = PlayerOwner().myHUD.HudScale * 100;
fOpacity = (PlayerOwner().myHUD.HudOpacity / 255) * 100;
//sl_Scale.SetValue(fScale);
sl_Opacity.SetValue(fOpacity);
UpdatePreviewColor();
}
function UpdatePreviewColor()
{
local float o, s;
i_PreviewBG.ImageColor = cCustom;
o = 255.0 * (fOpacity / 100.0);
i_PreviewBG.ImageColor.A = o;
i_Preview.ImageColor.A = o;
s = 1.0;
i_PreviewBG.WinWidth = DefaultBGPos.X2 * s;
i_PreviewBG.WinHeight = DefaultBGPos.Y2 * s;
i_Preview.WinWidth = DefaultHealthPos.X2 * s;
i_Preview.WinHeight = DefaultHealthPos.Y2 * s;
i_Scale.WinWidth = i_PreviewBG.WinWidth;
i_Scale.WinHeight = i_PreviewBG.WinHeight;
}
defaultproperties
{
Begin Object Class=GUIImage Name=PreviewBackground
Image=none//Texture'InterfaceArt_tex.Menu.traderlist_normal'
ImageStyle=ISTY_Stretched
ImageAlign=IMGA_Center
WinTop=0.211713
WinLeft=0.749335
WinWidth=0.190000
WinHeight=0.160000
RenderWeight=1.002000
End Object
i_PreviewBG=GUIImage'KFGui.KFHudSettings.PreviewBackground'
Begin Object Class=GUIImage Name=Preview
Image=Texture'KillingFloorHud.Perk_Firebug'
ImageStyle=ISTY_Scaled
ImageAlign=IMGA_Center
X1=-1
Y1=-1
X2=-1
Y2=-1
WinTop=0.211559
WinLeft=0.749828
WinWidth=0.150000
WinHeight=0.150000
RenderWeight=1.003000
End Object
i_Preview=GUIImage'KFGui.KFHudSettings.Preview'
Begin Object Class=GUIImage Name=PreviewBK
Image=Texture'InterfaceArt_tex.Menu.traderlist_normal'
//Texture'InterfaceArt_tex.Menu.changeme_texture'
WinWidth=0.400000
WinHeight=0.250000
WinLeft=0.749335
WinTop=0.211713
ImageStyle=ISTY_Scaled
ImageRenderStyle=MSTY_Alpha
ImageColor=(R=255,G=255,B=255,A=255)
ImageAlign=IMGA_Center
RenderWeight=1.001
End Object
i_Scale=PreviewBK;
Begin Object class=moCheckBox Name=LightHud
WinWidth=0.196875
WinLeft=0.379297
WinTop=0.043906
Caption="Light HUD"
INIOption="@Internal"
OnLoadINI=InternalOnLoadINI
OnChange=InternalOnChange
Hint="Show a light version of the HUD"
CaptionWidth=0.9
bSquare=true
ComponentJustification=TXTA_Left
bAutoSizeCaption=True
TabOrder=1
End Object
ch_LightHud=LightHud
Begin Object class=moCheckBox Name=SpecimenKillCounter
WinWidth=0.196875
WinLeft=0.379297
WinTop=0.043906
Caption="Show Kill Counter"
INIOption="@Internal"
OnLoadINI=InternalOnLoadINI
OnChange=InternalOnChange
Hint="Tally specimen kills on the HUD"
CaptionWidth=0.9
bSquare=true
ComponentJustification=TXTA_Left
bAutoSizeCaption=True
TabOrder=1
End Object
ch_SpecKillCounter=SpecimenKillCounter
sl_Scale=none
sl_Red=None
sl_Green=None
sl_Blue=None
ch_WeaponBar=None
ch_EnemyNames=None
ch_CustomColor=None
co_CustomHUD=None
b_CustomHUD=None
}