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

255 lines
6.8 KiB
Ucode

// ====================================================================
// Class: XInterface.UT2SettingsPage
// Parent: XInterface.GUIPage
//
// <Enter a description here>
// ====================================================================
class UT2SettingsPage extends UT2K3GUIPage;
#exec OBJ LOAD FILE=
// if _RO_
// else
//#exec OBJ LOAD FILE=InterfaceContent.utx
// end if _RO_InterfaceContent.utx
var localized string VideoTabLabel,
VideoTabHint,
DetailsTabLabel,
DetailsTabHint,
AudioTabLabel,
AudioTabHint,
PlayerTabLabel,
PlayerTabHint,
NetworkTabLabel,
NetworkTabHint,
ControlsTabLabel,
ControlsTabHint,
IForceTabLabel,
IForceTabHint,
WeaponsTabLabel,
WeaponsTabHint,
GameTabLabel,
GameTabHint,
HudTabLabel,
HudTabHint,
SpeechBinderTabLabel,
SpeechBinderTabHint;
var Tab_WeaponPref pWeaponPref;
var Tab_PlayerSettings pPlayer;
var Tab_NetworkSettings pNetwork;
var float SavedPitch;
function InitComponent(GUIController MyController, GUIComponent MyOwner)
{
local GUITabControl TabC;
local rotator PlayerRot;
Super.Initcomponent(MyController, MyOwner);
// Set camera's pitch to zero when menu initialised (otherwise spinny weap goes kooky)
PlayerRot = PlayerOwner().Rotation;
SavedPitch = PlayerRot.Pitch;
PlayerRot.Pitch = 0;
PlayerOwner().SetRotation(PlayerRot);
TabC = GUITabControl(Controls[1]);
GUITitleBar(Controls[0]).DockedTabs = TabC;
TabC.AddTab(VideoTabLabel,"xinterface.Tab_VideoSettings",,VideoTabHint,true);
TabC.AddTab(DetailsTabLabel,"xinterface.Tab_DetailSettings",,DetailsTabHint);
TabC.AddTab(AudioTabLabel,"xinterface.Tab_AudioSettings",,AudioTabHint);
pPlayer = Tab_PlayerSettings(TabC.AddTab(PlayerTabLabel,"xinterface.Tab_PlayerSettings",,PlayerTabHint));
pNetwork = Tab_NetworkSettings(TabC.AddTab(NetworkTabLabel,"xinterface.Tab_NetworkSettings",,NetworkTabHint));
TabC.AddTab(ControlsTabLabel,"xinterface.Tab_ControlSettings",,ControlsTabHint);
// if ( MyPlayer.ForceFeedbackSupported() ) -- Restore later
TabC.AddTab(IForceTabLabel,"xinterface.Tab_IForceSettings",,IForceTabHint);
pWeaponPref = Tab_WeaponPref(TabC.AddTab(WeaponsTabLabel,"xinterface.Tab_WeaponPref",,WeaponsTabHint));
TabC.AddTab(HudTabLabel,"xinterface.Tab_HudSettings",,HudTabHint);
TabC.AddTab(GameTabLabel,"xinterface.Tab_GameSettings",,GameTabHint);
TabC.AddTab(SpeechBinderTabLabel,"xinterface.Tab_SpeechBinder",,SpeechBinderTabHint);
}
function TabChange(GUIComponent Sender)
{
if (GUITabButton(Sender)==none)
return;
GUITitleBar(Controls[0]).SetCaption(GUITitleBar(default.Controls[0]).GetCaption()@"|"@GUITabButton(Sender).Caption);
}
event ChangeHint(string NewHint)
{
GUITitleBar(Controls[2]).SetCaption(NewHint);
}
function InternalOnReOpen()
{
local GUITabControl TabC;
TabC = GUITabControl(Controls[1]);
if ( (TabC.ActiveTab!=None) && (TabC.ActiveTab.MyPanel!=None) )
TabC.ActiveTab.MyPanel.Refresh();
}
function bool ButtonClicked(GUIComponent Sender)
{
if(InternalOnCanClose(false))
{
GUITabControl(Controls[1]).ActiveTab.OnDeActivate();
Controller.CloseMenu(true);
}
return true;
}
function bool InternalOnCanClose(optional bool bCanceled)
{
if(!pNetwork.ValidStatConfig())
{
GUITabControl(Controls[1]).ActivateTabByName(NetworkTabLabel,true);
return false;
}
else
return true;
}
function bool NotifyLevelChange()
{
Controller.CloseMenu(true);
return Super.NotifyLevelChange();
}
function InternalOnClose(optional Bool bCanceled)
{
local rotator NewRot;
// Destroy spinning weapon actor
if(pWeaponPref.SpinnyWeap != None)
{
pWeaponPref.SpinnyWeap.Destroy();
pWeaponPref = None;
}
// Destroy spinning player model actor
if(pPlayer.SpinnyDude != None)
{
pPlayer.SpinnyDude.Destroy();
pPlayer.SpinnyDude = None;
}
// Reset player
NewRot = PlayerOwner().Rotation;
NewRot.Pitch = SavedPitch;
PlayerOwner().SetRotation(NewRot);
// Save config.
pNetwork.ApplyStatConfig();
pPlayer.InternalApply(none);
pWeaponPref.WeapApply(none);
Super.OnClose(bCanceled);
}
defaultproperties
{
Begin Object class=GUITitleBar name=SettingHeader
Caption="Settings"
StyleName="Header"
WinWidth=1
WinHeight=46.000000
WinLeft=0
WinTop=0.036406
Effect=Texture'InterfaceArt_tex.Menu.changeme_texture' //material'CO_Final'
End Object
Controls(0)=GUITitleBar'SettingHeader'
Begin Object Class=GUITabControl Name=SettingTabs
WinWidth=1.0
WinLeft=0
WinTop=0.25
WinHeight=48
TabHeight=0.04
// bFillSpace=True
OnChange=TabChange;
bAcceptsInput=true
bDockPanels=true
End Object
Controls(1)=GUITabControl'SettingTabs'
Begin Object class=GUITitleBar name=SettingFooter
WinWidth=0.88
WinHeight=0.055
WinLeft=0.12
WinTop=0.93
bUseTextHeight=false
StyleName="Footer"
Justification=TXTA_Center
End Object
Controls(2)=GUITitleBar'SettingFooter'
Begin Object Class=GUIButton Name=BackButton
Caption="BACK"
StyleName="SquareMenuButton"
Hint="Return to Previous Menu"
WinWidth=0.12
WinHeight=0.055
WinLeft=0
WinTop=0.93
OnClick=ButtonClicked
End Object
Controls(3)=GUIButton'BackButton'
Begin Object class=GUIImage Name=LogoSymbol
WinWidth=0.26
WinHeight=0.13
WinLeft=0.830079
WinTop=0.800782
Image=Texture'InterfaceArt_tex.Menu.changeme_texture' //material'fbSymbolShader'
ImageColor=(R=255,G=255,B=255,A=255);
ImageStyle=ISTY_Scaled
ImageRenderStyle=MSTY_Alpha
bVisible=false
End Object
Controls(4)=GUIImage'LogoSymbol'
OnReOpen=InternalOnReOpen
OnClose=InternalOnClose
OnCanClose=InternalOnCanClose
Background=Texture'InterfaceArt_tex.Menu.changeme_texture' //Material'InterfaceContent.Backgrounds.bg11'
WinWidth=1.0
WinHeight=1.0
WinTop=0.0
WinLeft=0.0
VideoTabLabel="Video"
DetailsTabLabel="Details"
AudioTabLabel="Audio"
PlayerTabLabel="Player"
NetworkTabLabel="Network"
ControlsTabLabel="Controls"
IForceTabLabel="Input"
WeaponsTabLabel="Weapons"
GameTabLabel="Game"
HudTabLabel="Hud"
SpeechBinderTabLabel="Speech"
VideoTabHint="Select your resolution and change your brightness..."
DetailsTabHint="Adjust the detail settings for better graphics or faster framerate..."
AudioTabHint="Adjust your audio experience..."
PlayerTabHint="Configure your UT2003 Avatar..."
NetworkTabHint="Configure UT2003 for Online and Lan play..."
ControlsTabHint="Configure your controls..."
IForceTabHint="Configure misc. input options..."
WeaponsTabHint="Adjust your weapon priorities and settings..."
GameTabHint="Adjust various game related settings..."
HudTabHint="Customize your hud..."
SpeechBinderTabHint="Bind messages to keys..."
}