962 lines
22 KiB
Ucode
962 lines
22 KiB
Ucode
//==============================================================================
|
|
// Description
|
|
//
|
|
// Created by Ron Prestenback
|
|
// © 2003, Epic Games, Inc. All Rights Reserved
|
|
//==============================================================================
|
|
class UT2K4Tab_PlayerSettings extends Settings_Tabs;
|
|
|
|
var localized string HandNames[4];
|
|
var localized string TeamNames[3];
|
|
var localized string ClickInst;
|
|
var localized string All;
|
|
var localized string Previews[3];
|
|
|
|
var bool bChanged;
|
|
|
|
// Used for character (not just weapons!)
|
|
var() editinline editconst noexport SpinnyWeap SpinnyDude; // MUST be set to null when you leave the window
|
|
var() vector SpinnyDudeOffset;
|
|
var() bool bRenderDude;
|
|
var localized string ShowBioCaption;
|
|
var localized string Show3DViewCaption;
|
|
var localized string DefaultText;
|
|
|
|
var string OriginalTeam;
|
|
var automated GUISectionBackground i_BG1, i_BG2, i_BG3;
|
|
var automated GUIImage i_Portrait;
|
|
var automated GUIButton b_Left, b_Right, b_Pick, b_3DView, b_DropTarget;
|
|
var automated GUIScrollTextBox lb_Scroll;
|
|
var automated moEditBox ed_Name;
|
|
var automated moCheckBox ch_SmallWeaps;
|
|
var automated moComboBox co_Team, co_Hand, co_Voice;
|
|
var automated moNumericEdit nu_FOV;
|
|
var automated GUILabel lbl_ModelName;
|
|
var automated GUIComboBox co_SkinPreview;
|
|
|
|
var array<class<xVoicePack> > VoiceClasses;
|
|
|
|
|
|
var() string sChar, sName, sNameD, sCharD, sVoice, sVoiceD;
|
|
var() int iTeam, iHand, iFOV, iTeamD, iHandD, iFOVD;
|
|
var() bool bWeaps, bWeapsD;
|
|
var() int nfov;
|
|
var() xUtil.PlayerRecord PlayerRec;
|
|
var() int YawValue;
|
|
|
|
delegate VoiceTypeChanged(string NewVoiceType);
|
|
|
|
function InitComponent(GUIController MyController, GUIComponent MyOwner)
|
|
{
|
|
Super.Initcomponent(MyController, MyOwner);
|
|
|
|
co_Hand.AddItem(HandNames[0]);
|
|
co_Hand.AddItem(HandNames[1]);
|
|
co_Hand.AddItem(HandNames[2]);
|
|
co_Hand.AddItem(HandNames[3]);
|
|
co_Hand.ReadOnly(true);
|
|
|
|
co_Team.AddItem(TeamNames[0]);
|
|
co_Team.AddItem(TeamNames[1]);
|
|
co_Team.AddItem(TeamNames[2]);
|
|
co_Team.ReadOnly(true);
|
|
|
|
// Spawn spinning character actor
|
|
if ( SpinnyDude == None )
|
|
SpinnyDude = PlayerOwner().spawn(class'XInterface.SpinnyWeap');
|
|
|
|
SpinnyDude.bPlayCrouches = false;
|
|
SpinnyDude.bPlayRandomAnims = false;
|
|
|
|
SpinnyDude.SetDrawType(DT_Mesh);
|
|
SpinnyDude.SetDrawScale(0.9);
|
|
SpinnyDude.SpinRate = 0;
|
|
|
|
b_3DView.Caption = Show3DViewCaption;
|
|
|
|
ed_Name.MyEditBox.bConvertSpaces = true;
|
|
ed_Name.MyEditBox.MaxWidth=16; // as per polge, check UT2K4Tab_PlayerSettings if you change this
|
|
|
|
nu_FOV.MyNumericEdit.Step = 5;
|
|
|
|
co_SkinPreview.AddItem(Previews[0]);
|
|
co_SkinPreview.AddItem(Previews[1]);
|
|
co_SkinPreview.AddItem(Previews[2]);
|
|
|
|
i_BG2.Managecomponent(ed_Name);
|
|
i_BG2.Managecomponent(ch_SmallWeaps);
|
|
i_BG2.Managecomponent(co_Team);
|
|
i_BG2.Managecomponent(co_Hand);
|
|
i_BG2.Managecomponent(co_Voice);
|
|
i_BG2.Managecomponent(nu_FOV);
|
|
|
|
i_BG3.Managecomponent(lb_Scroll);
|
|
}
|
|
|
|
function SetPlayerRec()
|
|
{
|
|
local int i;
|
|
local array<xUtil.PlayerRecord> PList;
|
|
|
|
class'xUtil'.static.GetPlayerList(PList);
|
|
|
|
// Filter out to only characters without the 's' menu setting
|
|
for(i=0; i<PList.Length; i++)
|
|
{
|
|
if ( sChar ~= Plist[i].DefaultName )
|
|
{
|
|
PlayerRec = PList[i];
|
|
break;
|
|
}
|
|
}
|
|
|
|
UpdateVoiceOptions();
|
|
UpdateScroll();
|
|
ShowSpinnyDude();
|
|
}
|
|
|
|
function ShowPanel(bool bShow)
|
|
{
|
|
local int i;
|
|
local array<string> VoiceClassNames;
|
|
local class<xVoicePack> VP;
|
|
|
|
Super.ShowPanel(bShow);
|
|
if ( bShow )
|
|
{
|
|
if ( bInit )
|
|
{
|
|
bInit = False;
|
|
|
|
PlayerOwner().GetAllInt("XGame.xVoicePack", VoiceClassNames);
|
|
VoiceClasses.Remove(0, VoiceClasses.Length);
|
|
|
|
for ( i = 0; i < VoiceClassNames.Length; i++ )
|
|
{
|
|
VP = class<xVoicePack>(DynamicLoadObject(VoiceClassNames[i],class'Class'));
|
|
if ( VP != None )
|
|
VoiceClasses[VoiceClasses.Length] = VP;
|
|
}
|
|
|
|
bRenderDude = True;
|
|
SetPlayerRec();
|
|
for (i = 0; i < Components.Length; i++)
|
|
Components[i].OnChange = InternalOnChange;
|
|
}
|
|
}
|
|
}
|
|
|
|
function SaveSettings()
|
|
{
|
|
local bool bSave;
|
|
local PlayerController PC;
|
|
|
|
Super.SaveSettings();
|
|
PC = PlayerOwner();
|
|
|
|
if (sNameD != sName)
|
|
{
|
|
PC.ReplaceText(sName, "\"", "");
|
|
sNameD = sName;
|
|
PC.ConsoleCommand("SetName"@sName);
|
|
}
|
|
|
|
if (iTeam == 2)
|
|
iTeam = 255;
|
|
|
|
if (iTeamD != iTeam)
|
|
{
|
|
iTeamD = iTeam;
|
|
PC.UpdateUrl("Team", string(iTeam), True);
|
|
PC.ChangeTeam(iTeam);
|
|
}
|
|
|
|
if (iTeam == 255)
|
|
iTeam = 2;
|
|
|
|
if (bWeapsD != bWeaps)
|
|
{
|
|
bWeapsD = bWeaps;
|
|
PC.bSmallWeapons = bWeaps;
|
|
bSave = True;
|
|
}
|
|
|
|
if (iHandD != iHand)
|
|
{
|
|
iHandD = iHand;
|
|
PC.Handedness = iHand - 1;
|
|
PC.SetHand(iHand - 1);
|
|
bSave = False;
|
|
}
|
|
|
|
if (iFOVD != iFOV)
|
|
{
|
|
iFOVD = iFOV;
|
|
PC.FOV( float(iFOV) );
|
|
bSave = False;
|
|
}
|
|
|
|
if (sChar != sCharD)
|
|
{
|
|
sCharD = sChar;
|
|
PC.ConsoleCommand("ChangeCharacter"@sChar);
|
|
if ( PC.IsA('xPlayer') )
|
|
bSave = False;
|
|
else PC.UpdateURL("Character", sChar, True);
|
|
|
|
if ( PlayerRec.Sex ~= "Female" )
|
|
PC.UpdateURL("Sex", "F", True);
|
|
else
|
|
PC.UpdateURL("Sex", "M", True);
|
|
}
|
|
|
|
if (sVoice != sVoiceD)
|
|
{
|
|
sVoiceD = sVoice;
|
|
PC.SetVoice(sVoice);
|
|
}
|
|
|
|
if (bSave)
|
|
PC.SaveConfig();
|
|
}
|
|
|
|
function ResetClicked()
|
|
{
|
|
local int i;
|
|
local bool bTemp;
|
|
local PlayerController PC;
|
|
|
|
Super.ResetClicked();
|
|
|
|
PC = PlayerOwner();
|
|
PC.ConsoleCommand("ChangeCharacter Jakob");
|
|
PC.ConsoleCommand("setname Player");
|
|
PC.ChangeTeam(255);
|
|
|
|
PC.UpdateURL("Name", "Player", True);
|
|
PC.UpdateURL("Character", "Jakob", True);
|
|
PC.UpdateURL("Sex", "M", True);
|
|
PC.UpdateURL("Team", "255", True);
|
|
|
|
|
|
class'Controller'.static.ResetConfig("Handedness");
|
|
class'PlayerController'.static.ResetConfig("bSmallWeapons");
|
|
class'PlayerController'.static.ResetConfig("DefaultFOV");
|
|
|
|
bTemp = Controller.bCurMenuInitialized;
|
|
Controller.bCurMenuInitialized = False;
|
|
|
|
for (i = 0; i < Controls.Length; i++)
|
|
Controls[i].LoadINI();
|
|
|
|
bRenderDude = True;
|
|
SetPlayerRec();
|
|
|
|
Controller.bCurMenuInitialized = bTemp;
|
|
}
|
|
|
|
function InternalOnLoadINI(GUIComponent Sender, string s)
|
|
{
|
|
local PlayerController PC;
|
|
|
|
PC = PlayerOwner();
|
|
if (GUIMenuOption(Sender) != None)
|
|
{
|
|
switch (GUIMenuOption(Sender))
|
|
{
|
|
case ed_Name:
|
|
sName = PC.GetUrlOption("Name");
|
|
sNameD = sName;
|
|
ed_Name.SetText(sName);
|
|
break;
|
|
|
|
case co_Team:
|
|
if (PC.PlayerReplicationInfo == None || PC.PlayerReplicationInfo.Team == None)
|
|
iTeam = int(PC.GetUrlOption("Team"));
|
|
else iTeam = PC.PlayerReplicationInfo.Team.TeamIndex;
|
|
|
|
iTeamD = iTeam;
|
|
if (iTeam > 1)
|
|
iTeam = 2;
|
|
|
|
co_Team.SetIndex(iTeam);
|
|
break;
|
|
|
|
case co_Voice:
|
|
if ( PC.PlayerReplicationInfo == None || PC.PlayerReplicationInfo.VoiceTypeName == "" )
|
|
sVoice = PC.GetUrlOption("Voice");
|
|
else sVoice = PC.PlayerReplicationInfo.VoiceTypeName;
|
|
sVoiceD = sVoice;
|
|
break;
|
|
|
|
case ch_SmallWeaps:
|
|
bWeaps = PC.bSmallWeapons;
|
|
bWeapsD = bWeaps;
|
|
ch_SmallWeaps.Checked(bWeaps);
|
|
break;
|
|
|
|
case co_Hand:
|
|
iHand = PC.Handedness + 1;
|
|
iHandD = iHand;
|
|
co_Hand.SetIndex(iHand);
|
|
break;
|
|
|
|
case nu_FOV:
|
|
iFOV = PC.DefaultFOV;
|
|
iFOVD = iFOV;
|
|
nu_FOV.SetValue(iFOV);
|
|
break;
|
|
|
|
default:
|
|
log(Name@"Unknown component calling LoadINI:"$ GUIMenuOption(Sender).Caption);
|
|
GUIMenuOption(Sender).SetComponentValue(s,true);
|
|
}
|
|
}
|
|
|
|
else if ( Sender == i_Portrait )
|
|
{
|
|
sChar = PC.GetUrlOption("Character");
|
|
sCharD = sChar;
|
|
}
|
|
}
|
|
|
|
function InternalOnChange(GUIComponent Sender)
|
|
{
|
|
local PlayerController PC;
|
|
|
|
PC = PlayerOwner();
|
|
Super.InternalOnChange(Sender);
|
|
if (GUIMenuOption(Sender) != None)
|
|
{
|
|
switch (GUIMenuOption(Sender))
|
|
{
|
|
case ed_Name:
|
|
sName = ed_Name.GetText();
|
|
break;
|
|
|
|
case co_Team:
|
|
iTeam = co_Team.GetIndex();
|
|
break;
|
|
|
|
case ch_SmallWeaps:
|
|
bWeaps = ch_SmallWeaps.IsChecked();
|
|
break;
|
|
|
|
case co_Hand:
|
|
iHand = co_Hand.GetIndex();
|
|
break;
|
|
|
|
case nu_FOV:
|
|
iFOV = nu_FOV.GetValue();
|
|
break;
|
|
|
|
case co_Voice:
|
|
sVoice = co_Voice.GetExtra();
|
|
PreviewVoice( class<xVoicePack>(co_Voice.GetObject()) );
|
|
VoiceTypeChanged(sVoice);
|
|
break;
|
|
}
|
|
}
|
|
|
|
else if ( Sender == co_SkinPreview )
|
|
UpdateSpinnyDude();
|
|
}
|
|
|
|
function PreviewVoice(class<xVoicePack> NewVoiceClass)
|
|
{
|
|
local int Index;
|
|
|
|
if ( NewVoiceClass == None )
|
|
return;
|
|
|
|
Index = NewVoiceClass.static.PickCustomTauntFor( PlayerOwner(), True, False, 21 );
|
|
PlayerOwner().ClientPlaySound(NewVoiceClass.default.TauntSound[Index],,,SLOT_Interface);
|
|
}
|
|
function UpdateVoiceOptions()
|
|
{
|
|
local int i;
|
|
local bool bTemp;
|
|
|
|
bTemp = Controller.bCurMenuInitialized;
|
|
Controller.bCurMenuInitialized = False;
|
|
|
|
co_Voice.MyComboBox.List.Clear();
|
|
co_Voice.AddItem(DefaultText);
|
|
for ( i = 0; i < VoiceClasses.Length; i++ )
|
|
{
|
|
if ( class'TeamVoicePack'.static.VoiceMatchesGender(VoiceClasses[i].default.VoiceGender, PlayerRec.Sex) )
|
|
co_Voice.AddItem(VoiceClasses[i].default.VoicePackName,VoiceClasses[i],string(VoiceClasses[i]));
|
|
}
|
|
|
|
i = co_Voice.FindIndex(sVoice,,True);
|
|
if ( i != -1 )
|
|
co_Voice.SetIndex(i);
|
|
else co_Voice.SetIndex(0);
|
|
|
|
Controller.bCurMenuInitialized = bTemp;
|
|
}
|
|
|
|
function UpdateScroll()
|
|
{
|
|
lb_Scroll.SetContent(Controller.LoadDecoText("",PlayerRec.TextName));
|
|
}
|
|
|
|
function UpdateSpinnyDude()
|
|
{
|
|
local Mesh PlayerMesh;
|
|
local Material BodySkin, HeadSkin;
|
|
local string BodySkinName, HeadSkinName, TeamSuffix;
|
|
local bool bBrightSkin;
|
|
|
|
i_Portrait.Image = PlayerRec.Portrait;
|
|
PlayerMesh = Mesh(DynamicLoadObject(PlayerRec.MeshName, class'Mesh'));
|
|
if(PlayerMesh == None)
|
|
{
|
|
Log("Could not load mesh: "$PlayerRec.MeshName$" For player: "$PlayerRec.DefaultName);
|
|
return;
|
|
}
|
|
|
|
|
|
// Setup options
|
|
TeamSuffix = Eval( co_SkinPreview.GetIndex() > 0, Eval(co_SkinPreview.GetIndex() == 1, "_0", "_1"), "" );
|
|
|
|
// Get the body skin
|
|
BodySkinName = PlayerRec.BodySkinName $ TeamSuffix;
|
|
bBrightSkin = class'DMMutator'.default.bBrightSkins && Left(BodySkinName,12) ~= "PlayerSkins.";
|
|
|
|
if ( bBrightSkin && TeamSuffix != "" )
|
|
BodySkinName = "Bright" $ BodySkinName $ "B";
|
|
|
|
// Get the head skin
|
|
HeadSkinName = PlayerRec.FaceSkinName;
|
|
if ( PlayerRec.TeamFace )
|
|
HeadSkinName $= TeamSuffix;
|
|
|
|
BodySkin = Material(DynamicLoadObject(BodySkinName, class'Material'));
|
|
if(BodySkin == None)
|
|
{
|
|
Log("Could not load body material: "$PlayerRec.BodySkinName$" For player: "$PlayerRec.DefaultName);
|
|
return;
|
|
}
|
|
|
|
if ( bBrightSkin )
|
|
SpinnyDude.AmbientGlow = SpinnyDude.default.AmbientGlow * 0.8;
|
|
else SpinnyDude.AmbientGlow = SpinnyDude.default.AmbientGlow;
|
|
|
|
|
|
HeadSkin = Material(DynamicLoadObject(HeadSkinName, class'Material'));
|
|
if(HeadSkin == None)
|
|
{
|
|
Log("Could not load head material: "$HeadSkinName$" For player: "$PlayerRec.DefaultName);
|
|
return;
|
|
}
|
|
|
|
SpinnyDude.LinkMesh(PlayerMesh);
|
|
SpinnyDude.Skins[0] = BodySkin;
|
|
SpinnyDude.Skins[1] = HeadSkin;
|
|
SpinnyDude.LoopAnim( 'Idle_Rest', 1.0/SpinnyDude.Level.TimeDilation );
|
|
}
|
|
|
|
function bool InternalDraw(Canvas canvas)
|
|
{
|
|
local vector CamPos, X, Y, Z;
|
|
local rotator CamRot;
|
|
local float oOrgX, oOrgY;
|
|
local float oClipX, oClipY;
|
|
|
|
if(bRenderDude)
|
|
{
|
|
oOrgX = Canvas.OrgX;
|
|
oOrgY = Canvas.OrgY;
|
|
oClipX = Canvas.ClipX;
|
|
oClipY = Canvas.ClipY;
|
|
|
|
Canvas.OrgX = b_DropTarget.ActualLeft();
|
|
Canvas.OrgY = b_DropTarget.ActualTop();
|
|
Canvas.ClipX = b_DropTarget.ActualWidth();
|
|
Canvas.ClipY = b_DropTarget.ActualHeight();
|
|
|
|
canvas.GetCameraLocation(CamPos, CamRot);
|
|
GetAxes(CamRot, X, Y, Z);
|
|
|
|
SpinnyDude.SetLocation(CamPos + (SpinnyDudeOffset.X * X) + (SpinnyDudeOffset.Y * Y) + (SpinnyDudeOffset.Z * Z));
|
|
canvas.DrawActorClipped(SpinnyDude, false, b_DropTarget.ActualLeft(), b_DropTarget.ActualTop(), b_DropTarget.ActualWidth(), b_DropTarget.ActualHeight(), true, nFov);
|
|
|
|
Canvas.OrgX = oOrgX;
|
|
Canvas.OrgY = oOrgY;
|
|
Canvas.ClipX = oClipX;
|
|
Canvas.ClipY = oClipY;
|
|
}
|
|
|
|
return bRenderDude;
|
|
}
|
|
|
|
function bool PickModel(GUIComponent Sender)
|
|
{
|
|
if ( Controller.OpenMenu("GUI2K4.UT2K4ModelSelect",
|
|
PlayerRec.DefaultName,
|
|
Eval(Controller.CtrlPressed, PlayerRec.Race, "")) )
|
|
Controller.ActivePage.OnClose = ModelSelectClosed;
|
|
|
|
return true;
|
|
}
|
|
|
|
function ModelSelectClosed( optional bool bCancelled )
|
|
{
|
|
local string str;
|
|
|
|
if ( bCancelled )
|
|
return;
|
|
|
|
str = Controller.ActivePage.GetDataString();
|
|
if ( str != "" )
|
|
{
|
|
sChar = str;
|
|
SetPlayerRec();
|
|
}
|
|
}
|
|
|
|
function ShowSpinnyDude()
|
|
{
|
|
if ( bRenderDude )
|
|
{
|
|
UpdateSpinnyDude(); // Load current character
|
|
co_SkinPreview.SetVisibility(true);
|
|
b_3DView.Caption = ShowBioCaption; // Change button caption
|
|
b_DropTarget.MouseCursorIndex = 5;
|
|
}
|
|
else
|
|
{
|
|
// Put text back into box
|
|
i_Portrait.Image = PlayerRec.Portrait;
|
|
b_3DView.Caption = Show3DViewCaption;
|
|
co_SkinPreview.SetVisibility(false);
|
|
SpinnyDude.LinkMesh(None);
|
|
b_DropTarget.MouseCursorIndex = 0;
|
|
}
|
|
|
|
}
|
|
|
|
function bool Toggle3DView(GUIComponent Sender)
|
|
{
|
|
bRenderDude = !bRenderDude;
|
|
ShowSpinnyDude();
|
|
|
|
return true;
|
|
}
|
|
|
|
function bool NextAnim(GUIComponent Sender)
|
|
{
|
|
if(bRenderDude)
|
|
{
|
|
SpinnyDude.PlayNextAnim();
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
function bool RaceCapturedMouseMove(float deltaX, float deltaY)
|
|
{
|
|
local rotator r;
|
|
r = SpinnyDude.Rotation;
|
|
r.Yaw -= (256 * DeltaX);
|
|
SpinnyDude.SetRotation(r);
|
|
return true;
|
|
}
|
|
|
|
event Opened(GUIComponent Sender)
|
|
{
|
|
local rotator R;
|
|
|
|
Super.Opened(Sender);
|
|
|
|
if ( SpinnyDude != None )
|
|
{
|
|
R.Yaw = 32768;
|
|
R.Pitch = -1024;
|
|
SpinnyDude.SetRotation(R+PlayerOwner().Rotation);
|
|
SpinnyDude.bHidden = false;
|
|
}
|
|
}
|
|
|
|
event Closed(GUIComponent Sender, bool bCancelled)
|
|
{
|
|
Super.Closed(Sender, bCancelled);
|
|
if ( SpinnyDude != None )
|
|
SpinnyDude.bHidden = true;
|
|
}
|
|
|
|
function Free()
|
|
{
|
|
Super.Free();
|
|
|
|
VoiceClasses.Remove(0, VoiceClasses.Length);
|
|
if ( co_Voice != None )
|
|
co_Voice.MyComboBox.List.Clear();
|
|
|
|
if ( SpinnyDude != None )
|
|
SpinnyDude.Destroy();
|
|
|
|
SpinnyDude = None;
|
|
}
|
|
/*
|
|
function bool CoolOnKeyEvent(out byte Key, out byte State, float delta)
|
|
{
|
|
local rotator r;
|
|
local Interactions.EInputKey iKey;
|
|
|
|
iKey = EInputKey(Key);
|
|
|
|
if ( State != 1 )
|
|
return false;
|
|
|
|
if ( iKey == IK_A || iKey == IK_Left )
|
|
if (key==69 && state==1)
|
|
{
|
|
SpinnyDudeOffset.X = SpinnyDudeOffset.X - 1;
|
|
logspinnydude();
|
|
return true;
|
|
}
|
|
|
|
if (key==67 && state==1)
|
|
{
|
|
SpinnyDudeOffset.X = SpinnyDudeOffset.X + 1;
|
|
logspinnydude();
|
|
return true;
|
|
}
|
|
|
|
if (key==65 && state==1)
|
|
{
|
|
SpinnyDudeOffset.Y = SpinnyDudeOffset.Y - 1;
|
|
logspinnydude();
|
|
return true;
|
|
}
|
|
|
|
if (key==68 && state==1)
|
|
{
|
|
SpinnyDudeOffset.Y = SpinnyDudeOffset.Y + 1;
|
|
logspinnydude();
|
|
return true;
|
|
}
|
|
|
|
if (key==87 && state==1)
|
|
{
|
|
SpinnyDudeOffset.Z = SpinnyDudeOffset.Z - 1;
|
|
logspinnydude();
|
|
return true;
|
|
}
|
|
|
|
if (key==88 && state==1)
|
|
{
|
|
SpinnyDudeOffset.Z = SpinnyDudeOffset.Z + 1;
|
|
logspinnydude();
|
|
return true;
|
|
}
|
|
|
|
if (key==81 && state==1)
|
|
{
|
|
r = SpinnyDude.Rotation;
|
|
r.Yaw += 1024;
|
|
SpinnyDude.SetRotation(r);
|
|
logspinnydude();
|
|
return true;
|
|
}
|
|
|
|
if (key==90 && state==1)
|
|
{
|
|
r = SpinnyDude.Rotation;
|
|
r.Yaw -= 1024;
|
|
SpinnyDude.SetRotation(r);
|
|
logspinnydude();
|
|
return true;
|
|
}
|
|
|
|
if (key==82 && state==1)
|
|
{
|
|
r = SpinnyDude.Rotation;
|
|
r.Pitch += 1024;
|
|
SpinnyDude.SetRotation(r);
|
|
logspinnydude();
|
|
return true;
|
|
}
|
|
|
|
if (key==86 && state==1)
|
|
{
|
|
r = SpinnyDude.Rotation;
|
|
r.Pitch -= 1024;
|
|
SpinnyDude.SetRotation(r);
|
|
logspinnydude();
|
|
return true;
|
|
}
|
|
|
|
if (key==49 && state==1)
|
|
{
|
|
nFOV+=5;
|
|
logspinnydude();
|
|
return true;
|
|
}
|
|
|
|
if (key==50 && state==1)
|
|
{
|
|
nFOV-=5;
|
|
logspinnydude();
|
|
return true;
|
|
}
|
|
|
|
|
|
return false;
|
|
}
|
|
*/
|
|
function logspinnydude()
|
|
{
|
|
log("SpinnyDudeOffset X:"$SpinnyDudeOffset.X@"Y:"$SpinnyDudeOffset.Y@"Z:"$SpinnyDudeOffset.Z@"Roll:"$SpinnyDude.Rotation.Roll@"Pitch:"$SpinnyDude.Rotation.Pitch@"Yaw:"$SpinnyDude.Rotation.Yaw@"FOV:"$nfov);
|
|
}
|
|
defaultproperties
|
|
{
|
|
// OnKeyEvent=CoolOnKeyEvent
|
|
Begin Object class=GUISectionBackground Name=PlayerBK1
|
|
WinWidth=0.446758
|
|
WinHeight=0.963631
|
|
WinLeft=0.004063
|
|
WinTop=0.017969
|
|
Caption="3D View"
|
|
End Object
|
|
i_BG1=PlayerBK1
|
|
|
|
Begin Object class=GUISectionBackground Name=PlayerBK2
|
|
WinWidth=0.531719
|
|
WinHeight=0.573006
|
|
WinLeft=0.463047
|
|
WinTop=0.017969
|
|
Caption="Misc."
|
|
End Object
|
|
i_BG2=PlayerBK2
|
|
|
|
Begin Object class=GUISectionBackground Name=PlayerBK3
|
|
WinWidth=0.531719
|
|
WinHeight=0.372811
|
|
WinLeft=0.463047
|
|
WinTop=0.610417
|
|
Caption="Biography"
|
|
LeftPadding=0.02
|
|
RightPadding=0.02
|
|
TopPadding=0.02
|
|
BottomPadding=0.02
|
|
bFillClient=true
|
|
End Object
|
|
i_BG3=PlayerBK3
|
|
|
|
Begin Object Class=GUIComboBox Name=SkinPreview
|
|
WinWidth=0.346258
|
|
WinLeft=0.053531
|
|
WinHeight=0.03
|
|
WinTop=0.111470
|
|
Hint="Show how the model looks using the selected skin."
|
|
TabOrder=0
|
|
bReadOnly=true
|
|
bVisible=true
|
|
OnChange=InternalOnChange
|
|
End Object
|
|
co_SkinPreview=SkinPreview
|
|
|
|
Begin Object class=GUIButton Name=Player3DView
|
|
WinWidth=0.130720
|
|
WinHeight=0.050000
|
|
WinLeft=0.043685
|
|
WinTop=0.901559
|
|
Caption="3D View"
|
|
Hint="Toggle between 3D view and portrait of character."
|
|
OnClick=Toggle3DView
|
|
TabOrder=1
|
|
End Object
|
|
b_3DView=Player3DView
|
|
|
|
Begin Object class=GUIButton Name=bPickModel
|
|
WinWidth=0.233399
|
|
WinHeight=0.050000
|
|
WinLeft=0.177174
|
|
WinTop=0.901559
|
|
Caption="Change Character"
|
|
Hint="Select a new Character."
|
|
OnClick=PickModel
|
|
TabOrder=2
|
|
End Object
|
|
b_Pick=bPickModel
|
|
|
|
Begin Object class=moEditBox Name=PlayerName
|
|
WinWidth=0.373242
|
|
WinLeft=0.301757
|
|
WinTop=0.076042
|
|
Caption="Name"
|
|
INIOption="@INTERNAL"
|
|
INIDefault="Player"
|
|
OnLoadINI=InternalOnLoadINI
|
|
Hint="Changes the alias you play as."
|
|
CaptionWidth=0.5
|
|
bAutoSizeCaption=True
|
|
TabOrder=3
|
|
End Object
|
|
ed_Name=PlayerName
|
|
|
|
Begin Object Class=moComboBox Name=VoiceType
|
|
WinWidth=0.372266
|
|
WinLeft=0.301757
|
|
WinTop=0.212761
|
|
Caption="Voice Type"
|
|
INIOption="@Internal"
|
|
OnLoadINI=InternalOnLoadINI
|
|
Hint="Choose how your character's voice will sound in the game."
|
|
CaptionWidth=0.5
|
|
bAutoSizeCaption=True
|
|
ComponentJustification=TXTA_Left
|
|
TabOrder=4
|
|
bReadOnly=True
|
|
End Object
|
|
co_Voice=VoiceType
|
|
|
|
Begin Object class=moNumericEdit Name=PlayerFOV
|
|
WinWidth=0.266797
|
|
WinLeft=0.705430
|
|
WinTop=0.076042
|
|
Caption="Default FOV"
|
|
CaptionWidth=0.7
|
|
MinValue=80
|
|
MaxValue=100
|
|
INIOption="@INTERNAL"
|
|
INIDefault="85"
|
|
OnLoadINI=InternalOnLoadINI
|
|
ComponentJustification=TXTA_Left
|
|
Hint="This value will change your field of view while playing."
|
|
bHeightFromComponent=false
|
|
TabOrder=5
|
|
End Object
|
|
nu_FOV=PlayerFOV
|
|
|
|
Begin Object class=moComboBox Name=PlayerTeam
|
|
WinWidth=0.374219
|
|
WinLeft=0.301757
|
|
WinTop=0.150261
|
|
Caption="Preferred Team"
|
|
INIOption="@Internal"
|
|
INIDefault="Red"
|
|
OnLoadINI=InternalOnLoadINI
|
|
Hint="Changes the team you will play on by default."
|
|
CaptionWidth=0.7
|
|
ComponentJustification=TXTA_Left
|
|
bAutoSizeCaption=True
|
|
TabOrder=6
|
|
bReadOnly=True
|
|
End Object
|
|
co_Team=PlayerTeam
|
|
|
|
Begin Object class=moComboBox Name=PlayerHand
|
|
WinWidth=0.264766
|
|
WinLeft=0.705430
|
|
WinTop=0.212761
|
|
Caption="Weapon Hand"
|
|
INIOption="@INTERNAL"
|
|
INIDefault="Right"
|
|
OnLoadINI=InternalOnLoadINI
|
|
Hint="Changes whether your weapon is visible."
|
|
CaptionWidth=0.7
|
|
ComponentJustification=TXTA_Left
|
|
bAutoSizeCaption=True
|
|
TabOrder=7
|
|
bReadOnly=True
|
|
End Object
|
|
co_Hand=PlayerHand
|
|
|
|
Begin Object class=moCheckBox Name=PlayerSmallWeap
|
|
WinWidth=0.266797
|
|
WinLeft=0.705430
|
|
WinTop=0.150261
|
|
Caption="Small Weapons"
|
|
OnLoadINI=InternalOnLoadINI
|
|
INIOption="@Internal"
|
|
INIDefault="False"
|
|
Hint="Makes your first person weapon smaller."
|
|
CaptionWidth=0.94
|
|
bSquare=true
|
|
bHeightFromComponent=false
|
|
ComponentJustification=TXTA_Right
|
|
TabOrder=8
|
|
End Object
|
|
ch_SmallWeaps=PlayerSmallWeap
|
|
|
|
|
|
Begin Object Class=GUIScrollTextBox Name=PlayerScroll
|
|
WinWidth=0.686915
|
|
WinHeight=0.260351
|
|
WinLeft=0.291288
|
|
WinTop=0.321365
|
|
CharDelay=0.0025
|
|
EOLDelay=0.5
|
|
TabOrder=9
|
|
StyleName="NoBackground"
|
|
End Object
|
|
lb_Scroll=PlayerScroll
|
|
|
|
Begin Object class=GUIImage Name=PlayerPortrait
|
|
WinWidth=0.334368
|
|
WinHeight=0.798132
|
|
WinLeft=0.057016
|
|
WinTop=0.094895
|
|
Image=Texture'InterfaceArt_tex.Menu.changeme_texture' //Material'2K4Menus.Controls.thinpipe_b'
|
|
ImageColor=(R=255,G=255,B=255,A=255)
|
|
ImageRenderStyle=MSTY_Normal
|
|
ImageStyle=ISTY_Scaled
|
|
RenderWeight=0.3
|
|
OnLoadINI=InternalOnLoadINI
|
|
IniOption="@Internal"
|
|
OnDraw=InternalDraw
|
|
End Object
|
|
i_Portrait=PlayerPortrait
|
|
|
|
Begin Object class=GUIButton Name=DropTarget
|
|
WinWidth=0.427141
|
|
WinHeight=0.798132
|
|
WinLeft=0.013071
|
|
WinTop=0.114426
|
|
Caption=""
|
|
Hint=""
|
|
bNeverFocus=true
|
|
StyleName="NoBackground"
|
|
bDropTarget=true
|
|
bCaptureMouse=true
|
|
OnCapturedMouseMove=RaceCapturedMouseMove
|
|
MouseCursorIndex=5
|
|
bTabStop=false
|
|
End Object
|
|
b_DropTarget=DropTarget
|
|
|
|
WinTop=0.15
|
|
WinLeft=0
|
|
WinWidth=1
|
|
WinHeight=0.72
|
|
bAcceptsInput=false
|
|
|
|
HandNames(0)="Left"
|
|
HandNames(1)="Center"
|
|
HandNames(2)="Right"
|
|
HandNames(3)="Hidden"
|
|
|
|
TeamNames(0)="Red"
|
|
TeamNames(1)="Blue"
|
|
TeamNames(2)="None"
|
|
|
|
PanelCaption="Player"
|
|
|
|
SpinnyDudeOffset=(X=70,Y=0,Z=0)
|
|
ShowBioCaption="Portrait"
|
|
Show3DViewCaption="3D View"
|
|
DefaultText="Default"
|
|
ClickInst="Double-Click or drag to select"
|
|
All="All"
|
|
nFov=65
|
|
|
|
Previews(0)="View Normal Skin"
|
|
Previews(1)="View Red Skin"
|
|
Previews(2)="View Blue Skin"
|
|
|
|
}
|