This commit is contained in:
GenZmeY 2022-09-03 20:26:40 +03:00
parent 302741d427
commit 86be867a00
64 changed files with 581 additions and 1909 deletions

View File

@ -1,2 +0,0 @@
`define bEnableCallstack false
`define bEnableDebug false

View File

@ -1,7 +1,4 @@
Class ClassicStyle extends KF2Style; class ClassicStyle extends KF2Style;
`include(Build.uci)
`include(Logger.uci)
function RenderFramedWindow(KFGUI_FloatingWindow P) function RenderFramedWindow(KFGUI_FloatingWindow P)
{ {

View File

@ -1,47 +0,0 @@
class CustomRanks extends Object
dependson(Types)
config(YAS);
`include(Build.uci)
`include(Logger.uci)
var config array<RankInfo> Rank;
public static function InitConfig(int ConfigVersion)
{
local RankInfo ExampleRank;
`callstack_static("InitConfig");
switch (ConfigVersion)
{
case 0:
// Example rank for player(s)
ExampleRank.ID = 0;
ExampleRank.Rank = "YAS Creator";
ExampleRank.TextColor.R = 130;
ExampleRank.TextColor.G = 250;
ExampleRank.TextColor.B = 235;
ExampleRank.OverrideAdminRank = false;
default.Rank.AddItem(ExampleRank);
// Example rank for steam group members
ExampleRank.ID = 1;
ExampleRank.Rank = "MSK-GS";
ExampleRank.TextColor.R = 130;
ExampleRank.TextColor.G = 250;
ExampleRank.TextColor.B = 130;
ExampleRank.OverrideAdminRank = false;
default.Rank.AddItem(ExampleRank);
case 1:
case 2147483647:
StaticSaveConfig();
}
}
defaultproperties
{
}

View File

@ -1,9 +1,6 @@
Class GUIStyleBase extends Object class GUIStyleBase extends Object
abstract; abstract;
`include(Build.uci)
`include(Logger.uci)
var Texture2D ItemTex; var Texture2D ItemTex;
var array<Texture2D> BorderTextures, ArrowTextures, ButtonTextures, TabTextures, ItemBoxTextures, PerkBox, CheckBoxTextures, ProgressBarTextures, SliderTextures; var array<Texture2D> BorderTextures, ArrowTextures, ButtonTextures, TabTextures, ItemBoxTextures, PerkBox, CheckBoxTextures, ProgressBarTextures, SliderTextures;
var Texture2D ScrollTexture, FavoriteIcon, BankNoteIcon; var Texture2D ScrollTexture, FavoriteIcon, BankNoteIcon;
@ -14,7 +11,7 @@ var() byte MaxFontScale;
var float DefaultHeight; // Default font text size. var float DefaultHeight; // Default font text size.
var transient Canvas Canvas; var transient Canvas Canvas;
var transient KF2GUIController Owner; var transient KF2GUIController Owner;
var transient YASHUD HUDOwner; var transient YAS_HUD HUDOwner;
var Font MainFont, NumberFont, InfiniteFont; var Font MainFont, NumberFont, InfiniteFont;
var Color BlurColor, BlurColor2; var Color BlurColor, BlurColor2;

View File

@ -1,13 +1,10 @@
Class KF2GUIController extends Info class KF2GUIController extends Info
transient; transient;
`include(Build.uci)
`include(Logger.uci)
var() class<GUIStyleBase> DefaultStyle; var() class<GUIStyleBase> DefaultStyle;
var PlayerController PlayerOwner; var PlayerController PlayerOwner;
var YASHUD HUDOwner; var YAS_HUD HUDOwner;
var transient KF2GUIInput CustomInput; var transient KF2GUIInput CustomInput;
var transient PlayerInput BackupInput; var transient PlayerInput BackupInput;
var transient GameViewportClient ClientViewport; var transient GameViewportClient ClientViewport;
@ -67,7 +64,7 @@ simulated function PostBeginPlay()
{ {
PlayerOwner = PlayerController(Owner); PlayerOwner = PlayerController(Owner);
ClientViewport = LocalPlayer(PlayerOwner.Player).ViewportClient; ClientViewport = LocalPlayer(PlayerOwner.Player).ViewportClient;
HUDOwner = YASHUD(PlayerOwner.myHUD); HUDOwner = YAS_HUD(PlayerOwner.myHUD);
CurrentStyle = new (None) DefaultStyle; CurrentStyle = new (None) DefaultStyle;
CurrentStyle.InitStyle(); CurrentStyle.InitStyle();
@ -448,7 +445,7 @@ simulated function KFGUI_Base InitializeHUDWidget(class<KFGUI_Base> GUIClass)
{ {
local KFGUI_Base Widget; local KFGUI_Base Widget;
if (GUIClass == None) if (GUIclass == None)
return None; return None;
Widget = New(None) GUIClass; Widget = New(None) GUIClass;
@ -471,7 +468,7 @@ simulated function KFGUI_Page OpenMenu(class<KFGUI_Page> MenuClass)
local int i; local int i;
local KFGUI_Page M; local KFGUI_Page M;
if (MenuClass == None) if (Menuclass == None)
return None; return None;
if (KeyboardFocus != None) if (KeyboardFocus != None)
@ -489,7 +486,7 @@ simulated function KFGUI_Page OpenMenu(class<KFGUI_Page> MenuClass)
if (MenuClass.Default.bUnique) if (MenuClass.Default.bUnique)
{ {
for (i=0; i < ActiveMenus.Length; ++i) for (i=0; i < ActiveMenus.Length; ++i)
if (ActiveMenus[i].Class == MenuClass) if (ActiveMenus[i].class == MenuClass)
{ {
if (i > 0 && ActiveMenus[i].BringPageToFront() ) // Sort it upfront. if (i > 0 && ActiveMenus[i].BringPageToFront() ) // Sort it upfront.
{ {
@ -504,7 +501,7 @@ simulated function KFGUI_Page OpenMenu(class<KFGUI_Page> MenuClass)
if (MenuClass.Default.bPersistant) if (MenuClass.Default.bPersistant)
{ {
for (i=0; i < PersistentMenus.Length; ++i) for (i=0; i < PersistentMenus.Length; ++i)
if (PersistentMenus[i].Class == MenuClass) if (PersistentMenus[i].class == MenuClass)
{ {
M = PersistentMenus[i]; M = PersistentMenus[i];
PersistentMenus.Remove(i, 1); PersistentMenus.Remove(i, 1);
@ -532,7 +529,7 @@ simulated function CloseMenu(class<KFGUI_Page> MenuClass, optional bool bCloseAl
local int i, j; local int i, j;
local KFGUI_Page M; local KFGUI_Page M;
if (!bCloseAll && MenuClass == None) if (!bCloseAll && Menuclass == None)
return; return;
if (KeyboardFocus != None) if (KeyboardFocus != None)
@ -544,7 +541,7 @@ simulated function CloseMenu(class<KFGUI_Page> MenuClass, optional bool bCloseAl
} }
for (i=(ActiveMenus.Length-1); i >= 0; --i) for (i=(ActiveMenus.Length-1); i >= 0; --i)
{ {
if (bCloseAll || ActiveMenus[i].Class == MenuClass) if (bCloseAll || ActiveMenus[i].class == MenuClass)
{ {
M = ActiveMenus[i]; M = ActiveMenus[i];
ActiveMenus.Remove(i, 1); ActiveMenus.Remove(i, 1);
@ -628,7 +625,7 @@ simulated final function bool MenuIsOpen(optional class<KFGUI_Page> MenuClass)
local int i; local int i;
for (i=(ActiveMenus.Length-1); i >= 0; --i) for (i=(ActiveMenus.Length-1); i >= 0; --i)
if (MenuClass == None || ActiveMenus[i].Class == MenuClass) if (Menuclass == None || ActiveMenus[i].class == MenuClass)
return true; return true;
return false; return false;
} }

View File

@ -1,10 +1,6 @@
// Input while in a menu. // Input while in a menu.
class KF2GUIInput extends KFPlayerInput; class KF2GUIInput extends KFPlayerInput;
`include(Build.uci)
`include(Logger.uci)
var KF2GUIController ControllerOwner; var KF2GUIController ControllerOwner;
var PlayerInput BaseInput; var PlayerInput BaseInput;

View File

@ -1,7 +1,4 @@
Class KF2Style extends GUIStyleBase; class KF2Style extends GUIStyleBase;
`include(Build.uci)
`include(Logger.uci)
var Texture2D LoadedTex[2]; var Texture2D LoadedTex[2];
const TOOLTIP_BORDER=4; const TOOLTIP_BORDER=4;

View File

@ -2,10 +2,6 @@
class KFColorHelper extends Object class KFColorHelper extends Object
transient; transient;
`include(Build.uci)
`include(Logger.uci)
struct HSVColour struct HSVColour
{ {
var() float H, S, V, A; var() float H, S, V, A;

View File

@ -1,8 +1,5 @@
// Ugly hack to draw ontop of flash UI! // Ugly hack to draw ontop of flash UI!
Class KFGUIConsoleHack extends Console; class KFGUIConsoleHack extends Console;
`include(Build.uci)
`include(Logger.uci)
var KF2GUIController OutputObject; var KF2GUIController OutputObject;

View File

@ -1,13 +1,9 @@
// Menu system written by Marco. // Menu system written by Marco.
Class KFGUI_Base extends Object class KFGUI_Base extends Object
abstract; abstract;
`include(Build.uci)
`include(Logger.uci)
var KF2GUIController Owner; var KF2GUIController Owner;
var YASHUD HUDOwner; var YAS_HUD HUDOwner;
var KFGUI_Base ParentComponent; // Parent component if any. var KFGUI_Base ParentComponent; // Parent component if any.
var transient Canvas Canvas; var transient Canvas Canvas;

View File

@ -1,8 +1,4 @@
Class KFGUI_Button extends KFGUI_Clickable; class KFGUI_Button extends KFGUI_Clickable;
`include(Build.uci)
`include(Logger.uci)
var() Canvas.CanvasIcon OverlayTexture; var() Canvas.CanvasIcon OverlayTexture;
var() string ButtonText, GamepadButtonName; var() string ButtonText, GamepadButtonName;

View File

@ -1,9 +1,5 @@
class KFGUI_CategoryButton extends KFGUI_Button; class KFGUI_CategoryButton extends KFGUI_Button;
`include(Build.uci)
`include(Logger.uci)
var transient bool bOpened; var transient bool bOpened;
var Texture2D Icon; var Texture2D Icon;
var Color IconColor; var Color IconColor;

View File

@ -1,9 +1,5 @@
class KFGUI_CategoryList extends KFGUI_ComponentList; class KFGUI_CategoryList extends KFGUI_ComponentList;
`include(Build.uci)
`include(Logger.uci)
// Broken, does not work correctly when closing a menu and re-opening it if a category is open // Broken, does not work correctly when closing a menu and re-opening it if a category is open
struct FCategoryItems struct FCategoryItems
{ {

View File

@ -1,8 +1,4 @@
Class KFGUI_CheckBox extends KFGUI_EditControl; class KFGUI_CheckBox extends KFGUI_EditControl;
`include(Build.uci)
`include(Logger.uci)
var() Texture CheckMark, CheckDisabled, CheckIdle, CheckFocus, CheckClicked; var() Texture CheckMark, CheckDisabled, CheckIdle, CheckFocus, CheckClicked;
var() bool bForceUniform, bChecked; var() bool bForceUniform, bChecked;

View File

@ -1,10 +1,6 @@
Class KFGUI_Clickable extends KFGUI_Base class KFGUI_Clickable extends KFGUI_Base
abstract; abstract;
`include(Build.uci)
`include(Logger.uci)
var() int IntIndex; // More user variables. var() int IntIndex; // More user variables.
var() string ToolTip; var() string ToolTip;

View File

@ -1,8 +1,5 @@
class KFGUI_ColorSlider extends KFGUI_MultiComponent; class KFGUI_ColorSlider extends KFGUI_MultiComponent;
`include(Build.uci)
`include(Logger.uci)
var KFGUI_Slider RSlider, GSlider, BSlider, ASlider; var KFGUI_Slider RSlider, GSlider, BSlider, ASlider;
var KFGUI_TextLable TextLable, RedLabel, GreenLabel, BlueLabel, AlphaLabel, RedValue, GreenValue, BlueValue, AlphaValue; var KFGUI_TextLable TextLable, RedLabel, GreenLabel, BlueLabel, AlphaLabel, RedValue, GreenValue, BlueValue, AlphaValue;
var KFGUI_ComponentList SettingsBox; var KFGUI_ComponentList SettingsBox;

View File

@ -1,8 +1,5 @@
// Columned list box (only for text lines). // Columned list box (only for text lines).
Class KFGUI_ColumnList extends KFGUI_List; class KFGUI_ColumnList extends KFGUI_List;
`include(Build.uci)
`include(Logger.uci)
struct FColumnItem struct FColumnItem
{ {

View File

@ -1,8 +1,5 @@
// Do not use this on your own, it is used by ColumnList // Do not use this on your own, it is used by ColumnList
Class KFGUI_ColumnTop extends KFGUI_Base; class KFGUI_ColumnTop extends KFGUI_Base;
`include(Build.uci)
`include(Logger.uci)
var() float ColumnMinSize; // Minimum pixels width allowed. var() float ColumnMinSize; // Minimum pixels width allowed.
var KFGUI_ColumnList ListOwner; var KFGUI_ColumnList ListOwner;

View File

@ -1,7 +1,4 @@
Class KFGUI_ComboBox extends KFGUI_EditControl; class KFGUI_ComboBox extends KFGUI_EditControl;
`include(Build.uci)
`include(Logger.uci)
var KFGUI_ComboSelector Selection; var KFGUI_ComboSelector Selection;

View File

@ -1,7 +1,4 @@
Class KFGUI_ComboSelector extends KFGUI_Clickable; class KFGUI_ComboSelector extends KFGUI_Clickable;
`include(Build.uci)
`include(Logger.uci)
var KFGUI_ComboBox Combo; var KFGUI_ComboBox Combo;
var int CurrentRow, OldRow; var int CurrentRow, OldRow;

View File

@ -1,8 +1,5 @@
// List box with components as items. // List box with components as items.
Class KFGUI_ComponentList extends KFGUI_List; class KFGUI_ComponentList extends KFGUI_List;
`include(Build.uci)
`include(Logger.uci)
var int VisRange[2]; var int VisRange[2];
var() int NumColumns; var() int NumColumns;

View File

@ -1,7 +1,4 @@
Class KFGUI_EditBox extends KFGUI_Clickable; class KFGUI_EditBox extends KFGUI_Clickable;
`include(Build.uci)
`include(Logger.uci)
var enum eTextCase var enum eTextCase
{ {

View File

@ -1,7 +1,4 @@
Class KFGUI_EditControl extends KFGUI_Clickable; class KFGUI_EditControl extends KFGUI_Clickable;
`include(Build.uci)
`include(Logger.uci)
var export editinline KFGUI_TextLable TextLable; var export editinline KFGUI_TextLable TextLable;
var transient float TextHeight, TextScale; var transient float TextHeight, TextScale;

View File

@ -1,9 +1,6 @@
Class KFGUI_FloatingWindow extends KFGUI_Page class KFGUI_FloatingWindow extends KFGUI_Page
abstract; abstract;
`include(Build.uci)
`include(Logger.uci)
var() string WindowTitle; // Title of this window. var() string WindowTitle; // Title of this window.
var float DragOffset[2], OpenAnimSpeed; var float DragOffset[2], OpenAnimSpeed;
var KFGUI_FloatingWindowHeader HeaderComp; var KFGUI_FloatingWindowHeader HeaderComp;

View File

@ -1,7 +1,4 @@
Class KFGUI_FloatingWindowHeader extends KFGUI_Base; class KFGUI_FloatingWindowHeader extends KFGUI_Base;
`include(Build.uci)
`include(Logger.uci)
var bool bDragWindow; var bool bDragWindow;

View File

@ -1,7 +1,4 @@
Class KFGUI_Frame extends KFGUI_FloatingWindow; class KFGUI_Frame extends KFGUI_FloatingWindow;
`include(Build.uci)
`include(Logger.uci)
var() float EdgeSize[4]; // Pixels wide for edges (left, top, right, bottom). var() float EdgeSize[4]; // Pixels wide for edges (left, top, right, bottom).
var() float HeaderSize[2]; // Pixels wide for edges (left, top). var() float HeaderSize[2]; // Pixels wide for edges (left, top).

View File

@ -1,7 +1,4 @@
Class KFGUI_Image extends KFGUI_Base; class KFGUI_Image extends KFGUI_Base;
`include(Build.uci)
`include(Logger.uci)
var enum eImageStyle var enum eImageStyle
{ {

View File

@ -1,8 +1,5 @@
// List box with custom render code for the items. // List box with custom render code for the items.
Class KFGUI_List extends KFGUI_MultiComponent; class KFGUI_List extends KFGUI_MultiComponent;
`include(Build.uci)
`include(Logger.uci)
var() bool bDrawBackground, bHideScrollbar, bUseFocusSound; var() bool bDrawBackground, bHideScrollbar, bUseFocusSound;
var() protectedwrite int ListCount; var() protectedwrite int ListCount;

View File

@ -1,7 +1,4 @@
Class KFGUI_ListHorz extends KFGUI_MultiComponent; class KFGUI_ListHorz extends KFGUI_MultiComponent;
`include(Build.uci)
`include(Logger.uci)
var() bool bDrawBackground, bHideScrollbar, bUseFocusSound; var() bool bDrawBackground, bHideScrollbar, bUseFocusSound;
var() protected int ListCount; var() protected int ListCount;

View File

@ -1,9 +1,6 @@
Class KFGUI_ListItem extends Object class KFGUI_ListItem extends Object
transient; transient;
`include(Build.uci)
`include(Logger.uci)
var KFGUI_ListItem Next; var KFGUI_ListItem Next;
var array<string> Columns, SortColumns; var array<string> Columns, SortColumns;
var int Index, Value; var int Index, Value;

View File

@ -1,7 +1,4 @@
Class KFGUI_MultiComponent extends KFGUI_Base; class KFGUI_MultiComponent extends KFGUI_Base;
`include(Build.uci)
`include(Logger.uci)
var() export editinline array<KFGUI_Base> Components; var() export editinline array<KFGUI_Base> Components;

View File

@ -1,9 +1,6 @@
Class KFGUI_Page extends KFGUI_MultiComponent class KFGUI_Page extends KFGUI_MultiComponent
abstract; abstract;
`include(Build.uci)
`include(Logger.uci)
var() byte FrameOpacity; // Transperancy of the frame. var() byte FrameOpacity; // Transperancy of the frame.
var() bool bPersistant, // Reuse the same menu object throughout the level. var() bool bPersistant, // Reuse the same menu object throughout the level.
bUnique, // If calling OpenMenu multiple times with same menu class, only open one instance of it. bUnique, // If calling OpenMenu multiple times with same menu class, only open one instance of it.

View File

@ -1,8 +1,5 @@
class KFGUI_ProgressBar extends KFGUI_Base; class KFGUI_ProgressBar extends KFGUI_Base;
`include(Build.uci)
`include(Logger.uci)
var Texture BarBack; var Texture BarBack;
var Texture BarTop; var Texture BarTop;
var Color BarColor; var Color BarColor;

View File

@ -1,7 +1,4 @@
Class KFGUI_RightClickMenu extends KFGUI_Clickable; class KFGUI_RightClickMenu extends KFGUI_Clickable;
`include(Build.uci)
`include(Logger.uci)
struct FRowItem struct FRowItem
{ {

View File

@ -1,9 +1,6 @@
Class KFGUI_ScrollBarBase extends KFGUI_Clickable class KFGUI_ScrollBarBase extends KFGUI_Clickable
abstract; abstract;
`include(Build.uci)
`include(Logger.uci)
var() int MinRange, MaxRange, ScrollStride, PageStep; var() int MinRange, MaxRange, ScrollStride, PageStep;
var() float ButtonScale; // Button width (scaled by default font height). var() float ButtonScale; // Button width (scaled by default font height).
var int CurrentScroll; var int CurrentScroll;

View File

@ -1,7 +1,4 @@
Class KFGUI_ScrollBarH extends KFGUI_ScrollBarBase; class KFGUI_ScrollBarH extends KFGUI_ScrollBarBase;
`include(Build.uci)
`include(Logger.uci)
defaultproperties defaultproperties
{ {

View File

@ -1,7 +1,4 @@
Class KFGUI_ScrollBarV extends KFGUI_ScrollBarBase; class KFGUI_ScrollBarV extends KFGUI_ScrollBarBase;
`include(Build.uci)
`include(Logger.uci)
defaultproperties defaultproperties
{ {

View File

@ -1,8 +1,5 @@
class KFGUI_Slider extends KFGUI_MultiComponent; class KFGUI_Slider extends KFGUI_MultiComponent;
`include(Build.uci)
`include(Logger.uci)
var KFGUI_ScrollBarH ScrollBar; var KFGUI_ScrollBarH ScrollBar;
var int MinValue, MaxValue; var int MinValue, MaxValue;

View File

@ -1,8 +1,5 @@
// Same as SwitchComponent, but with buttons. // Same as SwitchComponent, but with buttons.
Class KFGUI_SwitchMenuBar extends KFGUI_MultiComponent; class KFGUI_SwitchMenuBar extends KFGUI_MultiComponent;
`include(Build.uci)
`include(Logger.uci)
var array<KFGUI_Base> SubPages; var array<KFGUI_Base> SubPages;
var() byte ButtonPosition; // 0 = top, 1 = bottom, 2 = left, 3 = right var() byte ButtonPosition; // 0 = top, 1 = bottom, 2 = left, 3 = right

View File

@ -1,7 +1,4 @@
Class KFGUI_TextField extends KFGUI_MultiComponent; class KFGUI_TextField extends KFGUI_MultiComponent;
`include(Build.uci)
`include(Logger.uci)
enum ETextFieldStyles enum ETextFieldStyles
{ {

View File

@ -1,7 +1,4 @@
Class KFGUI_TextLable extends KFGUI_Base; class KFGUI_TextLable extends KFGUI_Base;
`include(Build.uci)
`include(Logger.uci)
var() protected string Text; var() protected string Text;
var() color TextColor; var() color TextColor;

View File

@ -1,7 +1,4 @@
Class KFGUI_TextScroll extends KFGUI_TextField; class KFGUI_TextScroll extends KFGUI_TextField;
`include(Build.uci)
`include(Logger.uci)
var float ScrollSpeed; var float ScrollSpeed;

View File

@ -1,7 +1,4 @@
Class KFGUI_Tooltip extends KFGUI_Base; class KFGUI_Tooltip extends KFGUI_Base;
`include(Build.uci)
`include(Logger.uci)
var() array<string> Lines; var() array<string> Lines;
var() Canvas.FontRenderInfo TextFontInfo; var() Canvas.FontRenderInfo TextFontInfo;

View File

@ -1,32 +0,0 @@
class PlayerRankRelations extends Object
dependson(Types)
config(YAS);
`include(Build.uci)
`include(Logger.uci)
var config array<RankRelation> Relation;
public static function InitConfig(int ConfigVersion)
{
local RankRelation ExamplePlayer;
`callstack_static("InitConfig");
switch (ConfigVersion)
{
case 0:
// Example player
ExamplePlayer.ObjectID = "76561198001617867"; // GenZmeY SteamID64
ExamplePlayer.RankID = 0;
default.Relation.AddItem(ExamplePlayer);
case 2147483647:
StaticSaveConfig();
}
}
defaultproperties
{
}

View File

@ -1,472 +0,0 @@
class ScoreboardStyle extends Object
dependson(Types)
config(YAS);
`include(Build.uci)
`include(Logger.uci)
// Box shapes
var config int EdgeSize;
var config int ShapeServerNameBox;
var config int ShapeGameInfoBox;
var config int ShapeWaveInfoBox;
var config int ShapePlayersCountBox;
var config int ShapeHeaderBox;
var config int ShapeStateHealthBoxTopPlayer;
var config int ShapeStateHealthBoxMidPlayer;
var config int ShapeStateHealthBoxBottomPlayer;
var config int ShapePlayerBoxTopPlayer;
var config int ShapePlayerBoxMidPlayer;
var config int ShapePlayerBoxBottomPlayer;
var config int ShapeStatsBoxTopPlayer;
var config int ShapeStatsBoxMidPlayer;
var config int ShapeStatsBoxBottomPlayer;
// Server box
var config ColorRGBA ServerNameBoxColor;
var config ColorRGBA ServerNameTextColor;
// Game info box
var config ColorRGBA GameInfoBoxColor;
var config ColorRGBA GameInfoTextColor;
// Wave info box
var config ColorRGBA WaveBoxColor;
var config ColorRGBA WaveTextColor;
// Player count box
var config ColorRGBA PlayerCountBoxColor;
var config ColorRGBA PlayerCountTextColor;
// Header box
var config ColorRGBA ListHeaderBoxColor;
var config ColorRGBA ListHeaderTextColor;
// State box
var config ColorRGBA StateBoxColorLobby;
var config ColorRGBA StateBoxColorReady;
var config ColorRGBA StateBoxColorNotReady;
var config ColorRGBA StateBoxColorSpectator;
var config ColorRGBA StateBoxColorDead;
var config ColorRGBA StateBoxColorNone;
var config ColorRGBA StateBoxColorHealthLow;
var config ColorRGBA StateBoxColorHealthMid;
var config ColorRGBA StateBoxColorHealthHigh;
// Player box
var config ColorRGBA PlayerOwnerBoxColor;
var config ColorRGBA PlayerBoxColor;
// Stats box
var config ColorRGBA StatsOwnerBoxColor;
var config ColorRGBA StatsBoxColor;
// State text
var config ColorRGBA StateTextColorLobby;
var config ColorRGBA StateTextColorReady;
var config ColorRGBA StateTextColorNotReady;
var config ColorRGBA StateTextColorSpectator;
var config ColorRGBA StateTextColorDead;
var config ColorRGBA StateTextColorNone;
var config ColorRGBA StateTextColorHealthLow;
var config ColorRGBA StateTextColorHealthMid;
var config ColorRGBA StateTextColorHealthHigh;
// Rank text
var config ColorRGBA RankTextColor;
// Player text
var config ColorRGBA PlayerNameTextColor;
// Level text
var config ColorRGBA LevelTextColorLow;
var config ColorRGBA LevelTextColorMid;
var config ColorRGBA LevelTextColorHigh;
// Perk text
var config ColorRGBA ZedTextColor;
var config ColorRGBA PerkNoneTextColor;
var config ColorRGBA PerkBerserkerTextColor;
var config ColorRGBA PerkCommandoTextColor;
var config ColorRGBA PerkSupportTextColor;
var config ColorRGBA PerkFieldMedicTextColor;
var config ColorRGBA PerkDemolitionistTextColor;
var config ColorRGBA PerkFirebugTextColor;
var config ColorRGBA PerkGunslingerTextColor;
var config ColorRGBA PerkSharpshooterTextColor;
var config ColorRGBA PerkSwatTextColor;
var config ColorRGBA PerkSurvivalistTextColor;
// Dosh text
var config ColorRGBA DoshTextColorLow;
var config ColorRGBA DoshTextColorMid;
var config ColorRGBA DoshTextColorHigh;
// Kills text
var config ColorRGBA KillsTextColorLow;
var config ColorRGBA KillsTextColorMid;
var config ColorRGBA KillsTextColorHigh;
// Assists text
var config ColorRGBA AssistsTextColorLow;
var config ColorRGBA AssistsTextColorMid;
var config ColorRGBA AssistsTextColorHigh;
// Ping text
var config ColorRGBA PingTextColorNone;
var config ColorRGBA PingTextColorLow;
var config ColorRGBA PingTextColorMid;
var config ColorRGBA PingTextColorHigh;
// Other settings
var config bool bShowPingBars;
var config bool bHealthBoxSmoothColorChange;
var config bool bHealthTextSmoothColorChange;
var config bool bLevelTextSmoothColorChange;
var config bool bDoshTextSmoothColorChange;
var config bool bKillsTextSmoothColorChange;
var config bool bAssistsTextSmoothColorChange;
var config bool bPingTextSmoothColorChange;
public static function InitConfig(int ConfigVersion)
{
local YASStyle DefaultStyle;
`callstack_static("InitConfig");
switch (ConfigVersion)
{
case 0:
WriteSettings(DefaultSettings());
case 1:
default.AssistsTextColorHigh = DefaultStyle.AssistsTextColorHigh;
default.AssistsTextColorLow = DefaultStyle.AssistsTextColorLow;
default.AssistsTextColorMid = DefaultStyle.AssistsTextColorMid;
default.bAssistsTextSmoothColorChange = DefaultStyle.AssistsTextSmoothColorChange;
default.bDoshTextSmoothColorChange = DefaultStyle.DoshTextSmoothColorChange;
default.bHealthBoxSmoothColorChange = DefaultStyle.HealthBoxSmoothColorChange;
default.bHealthTextSmoothColorChange = DefaultStyle.HealthTextSmoothColorChange;
default.bKillsTextSmoothColorChange = DefaultStyle.KillsTextSmoothColorChange;
default.bLevelTextSmoothColorChange = DefaultStyle.LevelTextSmoothColorChange;
default.bPingTextSmoothColorChange = DefaultStyle.PingTextSmoothColorChange;
default.bShowPingBars = DefaultStyle.ShowPingBars;
default.DoshTextColorHigh = DefaultStyle.DoshTextColorHigh;
default.DoshTextColorLow = DefaultStyle.DoshTextColorLow;
default.DoshTextColorMid = DefaultStyle.DoshTextColorMid;
default.KillsTextColorHigh = DefaultStyle.KillsTextColorHigh;
default.KillsTextColorLow = DefaultStyle.KillsTextColorLow;
default.KillsTextColorMid = DefaultStyle.KillsTextColorMid;
default.LevelTextColorHigh = DefaultStyle.LevelTextColorHigh;
default.LevelTextColorLow = DefaultStyle.LevelTextColorLow;
default.LevelTextColorMid = DefaultStyle.LevelTextColorMid;
default.PerkBerserkerTextColor = DefaultStyle.PerkBerserkerTextColor;
default.PerkCommandoTextColor = DefaultStyle.PerkCommandoTextColor;
default.PerkDemolitionistTextColor = DefaultStyle.PerkDemolitionistTextColor;
default.PerkFieldMedicTextColor = DefaultStyle.PerkFieldMedicTextColor;
default.PerkFirebugTextColor = DefaultStyle.PerkFirebugTextColor;
default.PerkGunslingerTextColor = DefaultStyle.PerkGunslingerTextColor;
default.PerkNoneTextColor = DefaultStyle.PerkNoneTextColor;
default.PerkSharpshooterTextColor = DefaultStyle.PerkSharpshooterTextColor;
default.PerkSupportTextColor = DefaultStyle.PerkSupportTextColor;
default.PerkSurvivalistTextColor = DefaultStyle.PerkSurvivalistTextColor;
default.PerkSwatTextColor = DefaultStyle.PerkSwatTextColor;
default.StateBoxColorDead = DefaultStyle.StateBoxColorDead;
default.StateBoxColorNone = DefaultStyle.StateBoxColorNone;
default.StateBoxColorHealthHigh = DefaultStyle.StateBoxColorHealthHigh;
default.StateBoxColorHealthLow = DefaultStyle.StateBoxColorHealthLow;
default.StateBoxColorHealthMid = DefaultStyle.StateBoxColorHealthMid;
default.StateBoxColorLobby = DefaultStyle.StateBoxColorLobby;
default.StateBoxColorNotReady = DefaultStyle.StateBoxColorNotReady;
default.StateBoxColorReady = DefaultStyle.StateBoxColorReady;
default.StateBoxColorSpectator = DefaultStyle.StateBoxColorSpectator;
default.StateTextColorNone = DefaultStyle.StateTextColorNone;
default.StateTextColorHealthHigh = DefaultStyle.StateTextColorHealthHigh;
default.StateTextColorHealthLow = DefaultStyle.StateTextColorHealthLow;
default.StateTextColorHealthMid = DefaultStyle.StateTextColorHealthMid;
default.StatsOwnerBoxColor = DefaultStyle.StatsOwnerBoxColor;
default.ShapeStateHealthBoxTopPlayer = DefaultStyle.ShapeStateHealthBoxTopPlayer;
default.ShapeStateHealthBoxMidPlayer = DefaultStyle.ShapeStateHealthBoxMidPlayer;
default.ShapeStateHealthBoxBottomPlayer = DefaultStyle.ShapeStateHealthBoxBottomPlayer;
default.PingTextColorNone = DefaultStyle.PingTextColorNone;
WriteSettings(Settings());
case 2147483647:
StaticSaveConfig();
}
}
public static function YASStyle DefaultSettings()
{
local YASStyle Settings;
`callstack_static("DefaultSettings");
return Settings;
}
public static function YASStyle Settings()
{
local YASStyle Settings;
`callstack_static("Settings");
// Box shapes
Settings.EdgeSize = default.EdgeSize;
Settings.ShapeServerNameBox = default.ShapeServerNameBox;
Settings.ShapeGameInfoBox = default.ShapeGameInfoBox;
Settings.ShapeWaveInfoBox = default.ShapeWaveInfoBox;
Settings.ShapePlayersCountBox = default.ShapePlayersCountBox;
Settings.ShapeHeaderBox = default.ShapeHeaderBox;
Settings.ShapeStateHealthBoxTopPlayer = default.ShapeStateHealthBoxTopPlayer;
Settings.ShapeStateHealthBoxMidPlayer = default.ShapeStateHealthBoxMidPlayer;
Settings.ShapeStateHealthBoxBottomPlayer = default.ShapeStateHealthBoxBottomPlayer;
Settings.ShapePlayerBoxTopPlayer = default.ShapePlayerBoxTopPlayer;
Settings.ShapePlayerBoxMidPlayer = default.ShapePlayerBoxMidPlayer;
Settings.ShapePlayerBoxBottomPlayer = default.ShapePlayerBoxBottomPlayer;
Settings.ShapeStatsBoxTopPlayer = default.ShapeStatsBoxTopPlayer;
Settings.ShapeStatsBoxMidPlayer = default.ShapeStatsBoxMidPlayer;
Settings.ShapeStatsBoxBottomPlayer = default.ShapeStatsBoxBottomPlayer;
// Server box
Settings.ServerNameBoxColor = default.ServerNameBoxColor;
Settings.ServerNameTextColor = default.ServerNameTextColor;
// Game info box
Settings.GameInfoBoxColor = default.GameInfoBoxColor;
Settings.GameInfoTextColor = default.GameInfoTextColor;
// Wave info box
Settings.WaveBoxColor = default.WaveBoxColor;
Settings.WaveTextColor = default.WaveTextColor;
// Player count box
Settings.PlayerCountBoxColor = default.PlayerCountBoxColor;
Settings.PlayerCountTextColor = default.PlayerCountTextColor;
// Header box
Settings.ListHeaderBoxColor = default.ListHeaderBoxColor;
Settings.ListHeaderTextColor = default.ListHeaderTextColor;
// State box
Settings.StateBoxColorLobby = default.StateBoxColorLobby;
Settings.StateBoxColorReady = default.StateBoxColorReady;
Settings.StateBoxColorNotReady = default.StateBoxColorNotReady;
Settings.StateBoxColorSpectator = default.StateBoxColorSpectator;
Settings.StateBoxColorDead = default.StateBoxColorDead;
Settings.StateBoxColorNone = default.StateBoxColorNone;
Settings.StateBoxColorHealthLow = default.StateBoxColorHealthLow;
Settings.StateBoxColorHealthMid = default.StateBoxColorHealthMid;
Settings.StateBoxColorHealthHigh = default.StateBoxColorHealthHigh;
// Player box
Settings.PlayerOwnerBoxColor = default.PlayerOwnerBoxColor;
Settings.PlayerBoxColor = default.PlayerBoxColor;
// Stats box
Settings.StatsOwnerBoxColor = default.StatsOwnerBoxColor;
Settings.StatsBoxColor = default.StatsBoxColor;
// State text
Settings.StateTextColorLobby = default.StateTextColorLobby;
Settings.StateTextColorReady = default.StateTextColorReady;
Settings.StateTextColorNotReady = default.StateTextColorNotReady;
Settings.StateTextColorSpectator = default.StateTextColorSpectator;
Settings.StateTextColorDead = default.StateTextColorDead;
Settings.StateTextColorNone = default.StateTextColorNone;
Settings.StateTextColorHealthLow = default.StateTextColorHealthLow;
Settings.StateTextColorHealthMid = default.StateTextColorHealthMid;
Settings.StateTextColorHealthHigh = default.StateTextColorHealthHigh;
// Rank text
Settings.RankTextColor = default.RankTextColor;
// Player text
Settings.PlayerNameTextColor = default.PlayerNameTextColor;
// Level text
Settings.LevelTextColorLow = default.LevelTextColorLow;
Settings.LevelTextColorMid = default.LevelTextColorMid;
Settings.LevelTextColorHigh = default.LevelTextColorHigh;
// Perk text
Settings.ZedTextColor = default.ZedTextColor;
Settings.PerkNoneTextColor = default.PerkNoneTextColor;
Settings.PerkBerserkerTextColor = default.PerkBerserkerTextColor;
Settings.PerkCommandoTextColor = default.PerkCommandoTextColor;
Settings.PerkSupportTextColor = default.PerkSupportTextColor;
Settings.PerkFieldMedicTextColor = default.PerkFieldMedicTextColor;
Settings.PerkDemolitionistTextColor = default.PerkDemolitionistTextColor;
Settings.PerkFirebugTextColor = default.PerkFirebugTextColor;
Settings.PerkGunslingerTextColor = default.PerkGunslingerTextColor;
Settings.PerkSharpshooterTextColor = default.PerkSharpshooterTextColor;
Settings.PerkSwatTextColor = default.PerkSwatTextColor;
Settings.PerkSurvivalistTextColor = default.PerkSurvivalistTextColor;
// Dosh text
Settings.DoshTextColorLow = default.DoshTextColorLow;
Settings.DoshTextColorMid = default.DoshTextColorMid;
Settings.DoshTextColorHigh = default.DoshTextColorHigh;
// Kills text
Settings.KillsTextColorLow = default.KillsTextColorLow;
Settings.KillsTextColorMid = default.KillsTextColorMid;
Settings.KillsTextColorHigh = default.KillsTextColorHigh;
// Assists text
Settings.AssistsTextColorLow = default.AssistsTextColorLow;
Settings.AssistsTextColorMid = default.AssistsTextColorMid;
Settings.AssistsTextColorHigh = default.AssistsTextColorHigh;
// Ping text
Settings.PingTextColorNone = default.PingTextColorNone;
Settings.PingTextColorLow = default.PingTextColorLow;
Settings.PingTextColorMid = default.PingTextColorMid;
Settings.PingTextColorHigh = default.PingTextColorHigh;
// Other settings
Settings.ShowPingBars = default.bShowPingBars;
Settings.HealthBoxSmoothColorChange = default.bHealthBoxSmoothColorChange;
Settings.HealthTextSmoothColorChange = default.bHealthTextSmoothColorChange;
Settings.LevelTextSmoothColorChange = default.bLevelTextSmoothColorChange;
Settings.DoshTextSmoothColorChange = default.bDoshTextSmoothColorChange;
Settings.KillsTextSmoothColorChange = default.bKillsTextSmoothColorChange;
Settings.AssistsTextSmoothColorChange = default.bAssistsTextSmoothColorChange;
Settings.PingTextSmoothColorChange = default.bPingTextSmoothColorChange;
return Settings;
}
public static function WriteSettings(YASStyle Settings)
{
`callstack_static("WriteSettings");
// Box shapes
default.EdgeSize = Settings.EdgeSize;
default.ShapeServerNameBox = Settings.ShapeServerNameBox;
default.ShapeGameInfoBox = Settings.ShapeGameInfoBox;
default.ShapeWaveInfoBox = Settings.ShapeWaveInfoBox;
default.ShapePlayersCountBox = Settings.ShapePlayersCountBox;
default.ShapeHeaderBox = Settings.ShapeHeaderBox;
default.ShapeStateHealthBoxTopPlayer = Settings.ShapeStateHealthBoxTopPlayer;
default.ShapeStateHealthBoxMidPlayer = Settings.ShapeStateHealthBoxMidPlayer;
default.ShapeStateHealthBoxBottomPlayer = Settings.ShapeStateHealthBoxBottomPlayer;
default.ShapePlayerBoxTopPlayer = Settings.ShapePlayerBoxTopPlayer;
default.ShapePlayerBoxMidPlayer = Settings.ShapePlayerBoxMidPlayer;
default.ShapePlayerBoxBottomPlayer = Settings.ShapePlayerBoxBottomPlayer;
default.ShapeStatsBoxTopPlayer = Settings.ShapeStatsBoxTopPlayer;
default.ShapeStatsBoxMidPlayer = Settings.ShapeStatsBoxMidPlayer;
default.ShapeStatsBoxBottomPlayer = Settings.ShapeStatsBoxBottomPlayer;
// Server box
default.ServerNameBoxColor = Settings.ServerNameBoxColor;
default.ServerNameTextColor = Settings.ServerNameTextColor;
// Game info box
default.GameInfoBoxColor = Settings.GameInfoBoxColor;
default.GameInfoTextColor = Settings.GameInfoTextColor;
// Wave info box
default.WaveBoxColor = Settings.WaveBoxColor;
default.WaveTextColor = Settings.WaveTextColor;
// Player count box
default.PlayerCountBoxColor = Settings.PlayerCountBoxColor;
default.PlayerCountTextColor = Settings.PlayerCountTextColor;
// Header box
default.ListHeaderBoxColor = Settings.ListHeaderBoxColor;
default.ListHeaderTextColor = Settings.ListHeaderTextColor;
// State box
default.StateBoxColorLobby = Settings.StateBoxColorLobby;
default.StateBoxColorReady = Settings.StateBoxColorReady;
default.StateBoxColorNotReady = Settings.StateBoxColorNotReady;
default.StateBoxColorSpectator = Settings.StateBoxColorSpectator;
default.StateBoxColorDead = Settings.StateBoxColorDead;
default.StateBoxColorNone = Settings.StateBoxColorNone;
default.StateBoxColorHealthLow = Settings.StateBoxColorHealthLow;
default.StateBoxColorHealthMid = Settings.StateBoxColorHealthMid;
default.StateBoxColorHealthHigh = Settings.StateBoxColorHealthHigh;
// Player box
default.PlayerOwnerBoxColor = Settings.PlayerOwnerBoxColor;
default.PlayerBoxColor = Settings.PlayerBoxColor;
// Stats box
default.StatsOwnerBoxColor = Settings.StatsOwnerBoxColor;
default.StatsBoxColor = Settings.StatsBoxColor;
// State text
default.StateTextColorLobby = Settings.StateTextColorLobby;
default.StateTextColorReady = Settings.StateTextColorReady;
default.StateTextColorNotReady = Settings.StateTextColorNotReady;
default.StateTextColorSpectator = Settings.StateTextColorSpectator;
default.StateTextColorDead = Settings.StateTextColorDead;
default.StateTextColorNone = Settings.StateTextColorNone;
default.StateTextColorHealthLow = Settings.StateTextColorHealthLow;
default.StateTextColorHealthMid = Settings.StateTextColorHealthMid;
default.StateTextColorHealthHigh = Settings.StateTextColorHealthHigh;
// Rank text
default.RankTextColor = Settings.RankTextColor;
// Player text
default.PlayerNameTextColor = Settings.PlayerNameTextColor;
// Level text
default.LevelTextColorLow = Settings.LevelTextColorLow;
default.LevelTextColorMid = Settings.LevelTextColorMid;
default.LevelTextColorHigh = Settings.LevelTextColorHigh;
// Perk text
default.ZedTextColor = Settings.ZedTextColor;
default.PerkNoneTextColor = Settings.PerkNoneTextColor;
default.PerkBerserkerTextColor = Settings.PerkBerserkerTextColor;
default.PerkCommandoTextColor = Settings.PerkCommandoTextColor;
default.PerkSupportTextColor = Settings.PerkSupportTextColor;
default.PerkFieldMedicTextColor = Settings.PerkFieldMedicTextColor;
default.PerkDemolitionistTextColor = Settings.PerkDemolitionistTextColor;
default.PerkFirebugTextColor = Settings.PerkFirebugTextColor;
default.PerkGunslingerTextColor = Settings.PerkGunslingerTextColor;
default.PerkSharpshooterTextColor = Settings.PerkSharpshooterTextColor;
default.PerkSwatTextColor = Settings.PerkSwatTextColor;
default.PerkSurvivalistTextColor = Settings.PerkSurvivalistTextColor;
// Dosh text
default.DoshTextColorLow = Settings.DoshTextColorLow;
default.DoshTextColorMid = Settings.DoshTextColorMid;
default.DoshTextColorHigh = Settings.DoshTextColorHigh;
// Kills text
default.KillsTextColorLow = Settings.KillsTextColorLow;
default.KillsTextColorMid = Settings.KillsTextColorMid;
default.KillsTextColorHigh = Settings.KillsTextColorHigh;
// Assists text
default.AssistsTextColorLow = Settings.AssistsTextColorLow;
default.AssistsTextColorMid = Settings.AssistsTextColorMid;
default.AssistsTextColorHigh = Settings.AssistsTextColorHigh;
// Ping text
default.PingTextColorNone = Settings.PingTextColorNone;
default.PingTextColorLow = Settings.PingTextColorLow;
default.PingTextColorMid = Settings.PingTextColorMid;
default.PingTextColorHigh = Settings.PingTextColorHigh;
// Other settings
default.bShowPingBars = Settings.ShowPingBars;
default.bHealthBoxSmoothColorChange = Settings.HealthBoxSmoothColorChange;
default.bHealthTextSmoothColorChange = Settings.HealthTextSmoothColorChange;
default.bLevelTextSmoothColorChange = Settings.LevelTextSmoothColorChange;
default.bDoshTextSmoothColorChange = Settings.DoshTextSmoothColorChange;
default.bKillsTextSmoothColorChange = Settings.KillsTextSmoothColorChange;
default.bAssistsTextSmoothColorChange = Settings.AssistsTextSmoothColorChange;
default.bPingTextSmoothColorChange = Settings.PingTextSmoothColorChange;
}
defaultProperties
{
}

View File

@ -1,12 +0,0 @@
class ScoreboardStyleClient extends ScoreboardStyle
config(YAS);
`include(Build.uci)
`include(Logger.uci)
var config bool bEnabled;
defaultProperties
{
}

View File

@ -1,58 +0,0 @@
class SettingsHealth extends Object
dependson(Types)
config(YAS);
`include(Build.uci)
`include(Logger.uci)
var config int Low;
var config int High;
public static function InitConfig(int ConfigVersion)
{
`callstack_static("InitConfig");
switch (ConfigVersion)
{
case 0:
case 1:
WriteSettings(DefaultSettings());
case 2147483647:
StaticSaveConfig();
}
}
public static function YASSettingsHealth DefaultSettings()
{
local YASSettingsHealth Settings;
`callstack_static("DefaultSettings");
return Settings;
}
public static function YASSettingsHealth Settings()
{
local YASSettingsHealth Settings;
`callstack_static("Settings");
Settings.Low = default.Low;
Settings.High = default.High;
return Settings;
}
public static function WriteSettings(YASSettingsHealth Settings)
{
`callstack_static("WriteSettings");
default.Low = Settings.Low;
default.High = Settings.High;
}
defaultproperties
{
}

View File

@ -1,76 +0,0 @@
class SettingsLevel extends Object
dependson(Types)
config(YAS);
`include(Build.uci)
`include(Logger.uci)
var config int Normal_Low;
var config int Normal_High;
var config int Hard_Low;
var config int Hard_High;
var config int Suicide_Low;
var config int Suicide_High;
var config int HellOnEarth_Low;
var config int HellOnEarth_High;
public static function InitConfig(int ConfigVersion)
{
`callstack_static("InitConfig");
switch (ConfigVersion)
{
case 0:
case 1:
WriteSettings(DefaultSettings());
case 2147483647:
StaticSaveConfig();
}
}
public static function YASSettingsLevel DefaultSettings()
{
local YASSettingsLevel Settings;
`callstack_static("DefaultSettings");
return Settings;
}
public static function YASSettingsLevel Settings()
{
local YASSettingsLevel Settings;
`callstack_static("Settings");
Settings.Low [0] = default.Normal_Low;
Settings.High[0] = default.Normal_High;
Settings.Low [1] = default.Hard_Low;
Settings.High[1] = default.Hard_High;
Settings.Low [2] = default.Suicide_Low;
Settings.High[2] = default.Suicide_High;
Settings.Low [3] = default.HellOnEarth_Low;
Settings.High[3] = default.HellOnEarth_High;
return Settings;
}
public static function WriteSettings(YASSettingsLevel Settings)
{
`callstack_static("WriteSettings");
default.Normal_Low = Settings.Low [0];
default.Normal_High = Settings.High[0];
default.Hard_Low = Settings.Low [1];
default.Hard_High = Settings.High[1];
default.Suicide_Low = Settings.Low [2];
default.Suicide_High = Settings.High[2];
default.HellOnEarth_Low = Settings.Low [3];
default.HellOnEarth_High = Settings.High[3];
}
defaultproperties
{
}

View File

@ -1,58 +0,0 @@
class SettingsPing extends Object
dependson(Types)
config(YAS);
`include(Build.uci)
`include(Logger.uci)
var config int Low;
var config int High;
public static function InitConfig(int ConfigVersion)
{
`callstack_static("InitConfig");
switch (ConfigVersion)
{
case 0:
case 1:
WriteSettings(DefaultSettings());
case 2147483647:
StaticSaveConfig();
}
}
public static function YASSettingsPing DefaultSettings()
{
local YASSettingsPing Settings;
`callstack_static("DefaultSettings");
return Settings;
}
public static function YASSettingsPing Settings()
{
local YASSettingsPing Settings;
`callstack_static("Settings");
Settings.Low = default.Low;
Settings.High = default.High;
return Settings;
}
public static function WriteSettings(YASSettingsPing Settings)
{
`callstack_static("WriteSettings");
default.Low = Settings.Low;
default.High = Settings.High;
}
defaultproperties
{
}

View File

@ -1,32 +0,0 @@
class SteamGroupRankRelations extends Object
dependson(Types)
config(YAS);
`include(Build.uci)
`include(Logger.uci)
var config array<RankRelation> Relation;
public static function InitConfig(int ConfigVersion)
{
local RankRelation ExampleSteamGroup;
`callstack_static("InitConfig");
switch (ConfigVersion)
{
case 0:
// Example steam group
ExampleSteamGroup.ObjectID = "103582791465384046"; // MSK-GS SteamID64
ExampleSteamGroup.RankID = 1;
default.Relation.AddItem(ExampleSteamGroup);
case 2147483647:
StaticSaveConfig();
}
}
defaultproperties
{
}

View File

@ -1,62 +0,0 @@
class SystemAdminRank extends Object
dependson(Types)
config(YAS);
`include(Build.uci)
`include(Logger.uci)
var config string Rank;
var config ColorRGBA TextColor;
var config Fields ApplyColorToFields;
public static function InitConfig(int ConfigVersion)
{
`callstack_static("InitConfig");
switch (ConfigVersion)
{
case 0:
WriteSettings(DefaultSettings());
case 1:
case 2147483647:
StaticSaveConfig();
}
}
public static function YASSettingsAdmin DefaultSettings()
{
local YASSettingsAdmin Settings;
`callstack_static("DefaultSettings");
return Settings;
}
public static function YASSettingsAdmin Settings()
{
local YASSettingsAdmin Settings;
`callstack_static("Settings");
Settings.Rank = default.Rank;
Settings.TextColor = default.TextColor;
Settings.ApplyColorToFields = default.ApplyColorToFields;
return Settings;
}
public static function WriteSettings(YASSettingsAdmin Settings)
{
`callstack_static("WriteSettings");
default.Rank = Settings.Rank;
default.TextColor = Settings.TextColor;
default.ApplyColorToFields = Settings.ApplyColorToFields;
}
defaultproperties
{
}

View File

@ -1,62 +0,0 @@
class SystemPlayerRank extends Object
dependson(Types)
config(YAS);
`include(Build.uci)
`include(Logger.uci)
var config string Rank;
var config ColorRGBA TextColor;
var config Fields ApplyColorToFields;
public static function InitConfig(int ConfigVersion)
{
`callstack_static("InitConfig");
switch (ConfigVersion)
{
case 0:
WriteSettings(DefaultSettings());
case 1:
case 2147483647:
StaticSaveConfig();
}
}
public static function YASSettingsPlayer DefaultSettings()
{
local YASSettingsPlayer Settings;
`callstack_static("DefaultSettings");
return Settings;
}
public static function YASSettingsPlayer Settings()
{
local YASSettingsPlayer Settings;
`callstack_static("Settings");
Settings.Rank = default.Rank;
Settings.TextColor = default.TextColor;
Settings.ApplyColorToFields = default.ApplyColorToFields;
return Settings;
}
public static function WriteSettings(YASSettingsPlayer Settings)
{
`callstack_static("WriteSettings");
default.Rank = Settings.Rank;
default.TextColor = Settings.TextColor;
default.ApplyColorToFields = Settings.ApplyColorToFields;
}
defaultproperties
{
}

202
YAS/Classes/YAS.uc Normal file
View File

@ -0,0 +1,202 @@
class YAS extends Info
config(YAS);
const LatestVersion = 1;
//const CfgExampleConfig = class'ExampleConfig';
var private config int Version;
var private config E_LogLevel LogLevel;
var private KFGameInfo KFGI;
var private KFGameInfo_Survival KFGIS;
var private KFGameInfo_Endless KFGIE;
var private KFGameReplicationInfo KFGRI;
var private Array<YAS_RepInfo> RepInfos;
public simulated function bool SafeDestroy()
{
`Log_Trace();
return (bPendingDelete || bDeleteMe || Destroy());
}
public event PreBeginPlay()
{
`Log_Trace();
if (WorldInfo.NetMode == NM_Client)
{
`Log_Fatal("NetMode == NM_Client");
SafeDestroy();
return;
}
Super.PreBeginPlay();
PreInit();
}
public event PostBeginPlay()
{
`Log_Trace();
if (bPendingDelete || bDeleteMe) return;
Super.PostBeginPlay();
PostInit();
}
private function PreInit()
{
`Log_Trace();
if (Version == `NO_CONFIG)
{
LogLevel = LL_Info;
SaveConfig();
}
//CfgExampleConfig.static.InitConfig(Version, LatestVersion);
switch (Version)
{
case `NO_CONFIG:
`Log_Info("Config created");
case MaxInt:
`Log_Info("Config updated to version" @ LatestVersion);
break;
case LatestVersion:
`Log_Info("Config is up-to-date");
break;
default:
`Log_Warn("The config version is higher than the current version (are you using an old mutator?)");
`Log_Warn("Config version is" @ Version @ "but current version is" @ LatestVersion);
`Log_Warn("The config version will be changed to" @ LatestVersion);
break;
}
if (LatestVersion != Version)
{
Version = LatestVersion;
SaveConfig();
}
if (LogLevel == LL_WrongLevel)
{
LogLevel = LL_Info;
`Log_Warn("Wrong 'LogLevel', return to default value");
SaveConfig();
}
`Log_Base("LogLevel:" @ LogLevel);
//ExampleConfig = CfgExampleConfig.static.Load(LogLevel);
}
private function PostInit()
{
`Log_Trace();
if (WorldInfo == None || WorldInfo.Game == None)
{
SetTimer(1.0f, false, nameof(PostInit));
return;
}
KFGI = KFGameInfo(WorldInfo.Game);
if (KFGI == None)
{
`Log_Fatal("Incompatible gamemode:" @ WorldInfo.Game);
SafeDestroy();
return;
}
KFGI.HUDType = class'YAS_HUD';
if (KFGI.GameReplicationInfo == None)
{
SetTimer(1.0f, false, nameof(PostInit));
return;
}
KFGRI = KFGameReplicationInfo(KFGI.GameReplicationInfo);
if (KFGRI == None)
{
`Log_Fatal("Incompatible Replication info:" @ KFGI.GameReplicationInfo);
SafeDestroy();
return;
}
KFGIS = KFGameInfo_Survival(KFGI);
KFGIE = KFGameInfo_Endless(KFGI);
}
public function NotifyLogin(Controller C)
{
`Log_Trace();
if (!CreateRepInfo(C))
{
`Log_Error("Can't create RepInfo for:" @ C);
}
}
public function NotifyLogout(Controller C)
{
`Log_Trace();
if (!DestroyRepInfo(C))
{
`Log_Error("Can't destroy RepInfo of:" @ C);
}
}
public function bool CreateRepInfo(Controller C)
{
local YAS_RepInfo RepInfo;
`Log_Trace();
if (C == None) return false;
RepInfo = Spawn(class'YAS_RepInfo', C);
if (RepInfo == None) return false;
// Do something
RepInfos.AddItem(RepInfo);
return true;
}
public function bool DestroyRepInfo(Controller C)
{
local YAS_RepInfo RepInfo;
`Log_Trace();
if (C == None) return false;
foreach RepInfos(RepInfo)
{
if (RepInfo.Owner == C)
{
RepInfos.RemoveItem(RepInfo);
RepInfo.SafeDestroy();
return true;
}
}
return false;
}
DefaultProperties
{
}

4
YAS/Classes/YAS.upkg Normal file
View File

@ -0,0 +1,4 @@
[Flags]
AllowDownload=True
ClientOptional=False
ServerSideOnly=False

View File

@ -1,212 +1,60 @@
class YASMut extends KFMutator class YASMut extends KFMutator;
dependson(Types)
config(YAS); var private YAS YAS;
`include(Build.uci) public simulated function bool SafeDestroy()
`include(Logger.uci)
const CurrentVersion = 2;
var config int ConfigVersion;
var private OnlineSubsystem Steamworks;
var private array<YASRepInfo> RepInfos;
var private array<UIDRankRelation> UIDRankRelationsPlayers;
var private array<UIDRankRelation> UIDRankRelationsSteamGroups;
var private array<UIDRankRelation> UIDRankRelationsActive;
var private YASSettings Settings;
function PostBeginPlay()
{ {
`callstack(); return (bPendingDelete || bDeleteMe || Destroy());
Super.PostBeginPlay();
WorldInfo.Game.HUDType = class'YASHUD';
Steamworks = class'GameEngine'.static.GetOnlineSubsystem();
InitConfig();
LoadRelations();
Settings.Style = class'ScoreboardStyle'.static.Settings();
Settings.Admin = class'SystemAdminRank'.static.Settings();
Settings.Player = class'SystemPlayerRank'.static.Settings();
Settings.Health = class'SettingsHealth'.static.Settings();
Settings.Ping = class'SettingsPing'.static.Settings();
Settings.Level = class'SettingsLevel'.static.Settings();
} }
function NotifyLogin(Controller C) public event PreBeginPlay()
{ {
`callstack(); Super.PreBeginPlay();
CreateRepInfo(C); if (WorldInfo.NetMode == NM_Client) return;
foreach WorldInfo.DynamicActors(class'YAS', YAS)
{
break;
}
if (YAS == None)
{
YAS = WorldInfo.Spawn(class'YAS');
}
if (YAS == None)
{
`Log_Base("FATAL: Can't Spawn 'YAS'");
SafeDestroy();
}
}
public function AddMutator(Mutator Mut)
{
if (Mut == Self) return;
if (Mut.Class == Class)
Mut.Destroy();
else
Super.AddMutator(Mut);
}
public function NotifyLogin(Controller C)
{
YAS.NotifyLogin(C);
Super.NotifyLogin(C); Super.NotifyLogin(C);
} }
function NotifyLogout(Controller C) public function NotifyLogout(Controller C)
{ {
`callstack(); YAS.NotifyLogout(C);
DestroyRepInfo(C);
Super.NotifyLogout(C); Super.NotifyLogout(C);
} }
private function bool IsUID(String ID) DefaultProperties
{
`callstack();
return (Left(ID, 2) ~= "0x");
}
private function InitConfig()
{
`callstack();
if (ConfigVersion == 0) SaveConfig(); // because I want the main settings to be at the beginning of the config :)
class'ScoreboardStyle'.static.InitConfig(ConfigVersion);
class'SystemAdminRank'.static.InitConfig(ConfigVersion);
class'SystemPlayerRank'.static.InitConfig(ConfigVersion);
class'SettingsHealth'.static.InitConfig(ConfigVersion);
class'SettingsPing'.static.InitConfig(ConfigVersion);
class'SettingsLevel'.static.InitConfig(ConfigVersion);
class'CustomRanks'.static.InitConfig(ConfigVersion);
class'PlayerRankRelations'.static.InitConfig(ConfigVersion);
class'SteamGroupRankRelations'.static.InitConfig(ConfigVersion);
switch (ConfigVersion)
{
case 0:
case 1:
case 2147483647:
`info("Config updated to version"@CurrentVersion);
break;
case CurrentVersion:
`info("Config is up-to-date");
break;
default:
`warning("The config version is higher than the current version (are you using an old mutator?)");
`warning("Config version is"@ConfigVersion@"but current version is"@CurrentVersion);
`warning("The config version will be changed to "@CurrentVersion);
break;
}
if (ConfigVersion != CurrentVersion)
{
ConfigVersion = CurrentVersion;
SaveConfig();
}
}
private function LoadRelations()
{
local RankRelation Player, SteamGroup;
local UIDRankRelation UIDInfo;
`callstack();
foreach class'PlayerRankRelations'.default.Relation(Player)
{
UIDInfo.RankID = Player.RankID;
if (IsUID(Player.ObjectID) && Steamworks.StringToUniqueNetId(Player.ObjectID, UIDInfo.UID))
{
if (UIDRankRelationsPlayers.Find('Uid', UIDInfo.UID) == INDEX_NONE)
UIDRankRelationsPlayers.AddItem(UIDInfo);
}
else if (Steamworks.Int64ToUniqueNetId(Player.ObjectID, UIDInfo.UID))
{
if (UIDRankRelationsPlayers.Find('Uid', UIDInfo.UID) == INDEX_NONE)
UIDRankRelationsPlayers.AddItem(UIDInfo);
}
else `warning("Can't add player:"@Player.ObjectID);
}
foreach class'SteamGroupRankRelations'.default.Relation(SteamGroup)
{
UIDInfo.RankID = SteamGroup.RankID;
if (IsUID(SteamGroup.ObjectID) && Steamworks.StringToUniqueNetId(SteamGroup.ObjectID, UIDInfo.UID))
{
if (UIDRankRelationsPlayers.Find('Uid', UIDInfo.UID) == INDEX_NONE)
UIDRankRelationsPlayers.AddItem(UIDInfo);
}
else if (Steamworks.Int64ToUniqueNetId(SteamGroup.ObjectID, UIDInfo.UID))
{
if (UIDRankRelationsSteamGroups.Find('Uid', UIDInfo.UID) == INDEX_NONE)
UIDRankRelationsSteamGroups.AddItem(UIDInfo);
}
else `warning("Can't add steamgroup:"@SteamGroup.ObjectID);
}
}
private function CreateRepInfo(Controller C)
{
local YASRepInfo RepInfo;
`callstack();
if (C == None) return;
RepInfo = Spawn(class'YASRepInfo', C);
RepInfo.Mut = Self;
RepInfo.Settings = Settings;
RepInfos.AddItem(RepInfo);
}
private function DestroyRepInfo(Controller C)
{
local YASRepInfo RepInfo;
`callstack();
if (C == None) return;
foreach RepInfos(RepInfo)
{
if (RepInfo.Owner == C)
{
RepInfos.RemoveItem(RepInfo);
RepInfo.Destroy();
}
}
}
public function UpdatePlayerRank(UIDRankRelation Rel)
{
local YASRepInfo RepInfo;
local int Index;
`callstack();
Index = UIDRankRelationsActive.Find('UID', Rel.UID);
if (Index != INDEX_NONE)
UIDRankRelationsActive[Index] = Rel;
else
UIDRankRelationsActive.AddItem(Rel);
foreach RepInfos(RepInfo)
RepInfo.UpdateRankRelation(Rel);
}
public function AddPlayerRank(UIDRankRelation Rel)
{
local YASRepInfo RepInfo;
`callstack();
foreach RepInfos(RepInfo)
RepInfo.AddRankRelation(Rel);
}
defaultproperties
{ {
} }

View File

@ -1,258 +0,0 @@
class YASRepInfo extends ReplicationInfo;
`include(Build.uci)
`include(Logger.uci)
// Server vars
var public YASMut Mut;
// Client vars
var private KFScoreBoard SC;
var private OnlineSubsystemSteamworks SW;
// Fitst time replication
var public array<UIDRankRelation> SteamGroupRelations;
var private array<UIDRankRelation> RankRelations;
var public array<RankInfo> CustomRanks;
var public YASSettings Settings;
var public UIDRankRelation RankRelation; // Current player rank relation
var private int CustomRanksRepProgress, SteamGroupsRepProgress;
simulated event PostBeginPlay()
{
`callstack();
super.PostBeginPlay();
if (bDeleteMe) return;
if (Role < ROLE_Authority || WorldInfo.NetMode == NM_StandAlone)
{
GetScoreboard();
GetOnlineSubsystem();
}
}
private reliable client function GetScoreboard()
{
`callstack();
if (SC == None)
SC = YASHUD(GetALocalPlayerController().myHUD).Scoreboard;
if (SC == None)
SetTimer(0.1f, false, nameof(GetScoreboard));
else
ClearTimer(nameof(GetScoreboard));
}
private reliable client function GetOnlineSubsystem()
{
`callstack();
if (SW == None)
SW = OnlineSubsystemSteamworks(class'GameEngine'.static.GetOnlineSubsystem());
if (SW == None)
SetTimer(0.1f, false, nameof(GetOnlineSubsystem));
else
ClearTimer(nameof(GetOnlineSubsystem));
}
public function StartFirstTimeReplication()
{
`callstack();
ClientAddSettings(Settings);
SetTimer(0.01f, true, nameof(ReplicateCustomRanks));
SetTimer(0.01f, true, nameof(ReplicateSteamGroupRelations));
}
private reliable client function ClientAddSettings(YASSettings Set)
{
`callstack();
Settings = Set;
ClientApplySettings();
}
private reliable client function ClientApplySettings()
{
`callstack();
if (SC == None)
{
SetTimer(0.1f, false, nameof(ClientApplySettings));
return;
}
ClearTimer(nameof(ClientApplySettings));
if (class'ScoreboardStyleClient'.default.bEnabled)
Settings.Style = class'ScoreboardStyleClient'.static.Settings();
SC.Settings = Settings;
}
private reliable client function ClientApplyCustomRanks()
{
`callstack();
if (SC == None)
{
SetTimer(0.1f, false, nameof(ClientApplyCustomRanks));
return;
}
ClearTimer(nameof(ClientApplyCustomRanks));
SC.CustomRanks = CustomRanks;
}
private reliable client function ClientApplyRankRelations()
{
`callstack();
if (SC == None)
{
SetTimer(0.1f, false, nameof(ClientApplyRankRelations));
return;
}
ClearTimer(nameof(ClientApplyRankRelations));
SC.RankRelations = RankRelations;
}
private function ReplicateCustomRanks()
{
`callstack();
if (WorldInfo.NetMode != NM_StandAlone && CustomRanksRepProgress < CustomRanks.Length)
{
ClientAddCustomRank(CustomRanks[CustomRanksRepProgress]);
++CustomRanksRepProgress;
}
else
{
ClearTimer(nameof(ReplicateCustomRanks));
ClientApplyCustomRanks();
}
}
private reliable client function ClientAddCustomRank(RankInfo Rank)
{
`callstack();
CustomRanks.AddItem(Rank);
}
private function ReplicateSteamGroupRelations()
{
`callstack();
if (WorldInfo.NetMode != NM_StandAlone && SteamGroupsRepProgress < SteamGroupRelations.Length)
{
ClientAddSteamGroupRelation(SteamGroupRelations[SteamGroupsRepProgress]);
++SteamGroupsRepProgress;
}
else
{
ClearTimer(nameof(ReplicateSteamGroupRelations));
if (RankRelation.RankID == INDEX_NONE)
FindMyRankInSteamGroups();
}
}
private reliable client function ClientAddSteamGroupRelation(UIDRankRelation Rel)
{
`callstack();
SteamGroupRelations.AddItem(Rel);
}
private reliable client function FindMyRankInSteamGroups()
{
local UIDRankRelation SteamGroupRel;
`callstack();
foreach SteamGroupRelations(SteamGroupRel)
if (SW.CheckPlayerGroup(SteamGroupRel.UID) && (RankRelation.RankID < 0 || SteamGroupRel.RankID < RankRelation.RankID))
RankRelation.RankID = SteamGroupRel.RankID;
if (RankRelation.RankID != INDEX_NONE)
ServerApplyRank(RankRelation.RankID);
}
private reliable server function ServerApplyRank(int RankID)
{
`callstack();
RankRelation.RankID = RankID;
Mut.UpdatePlayerRank(RankRelation);
}
public function AddRankRelation(UIDRankRelation Rel)
{
`callstack();
ClientAddRankRelation(Rel);
}
private reliable client function ClientAddRankRelation(UIDRankRelation Rel)
{
`callstack();
RankRelations.AddItem(Rel);
ClientApplyRankRelations();
}
public function RemoveRankRelation(UIDRankRelation Rel)
{
`callstack();
ClientRemoveRankRelation(Rel);
}
private reliable client function ClientRemoveRankRelation(UIDRankRelation Rel)
{
`callstack();
RankRelations.RemoveItem(Rel);
ClientApplyRankRelations();
}
public function UpdateRankRelation(UIDRankRelation Rel)
{
`callstack();
ClientUpdateRankRelation(Rel);
}
private reliable client function ClientUpdateRankRelation(UIDRankRelation Rel)
{
local int Index;
`callstack();
Index = RankRelations.Find('UID', Rel.UID);
if (Index != INDEX_NONE)
RankRelations[Index] = Rel;
else
RankRelations.AddItem(Rel);
ClientApplyRankRelations();
}
defaultproperties
{
bAlwaysRelevant = false;
bOnlyRelevantToOwner = true;
Role = ROLE_Authority;
RemoteRole = ROLE_SimulatedProxy;
bSkipActorPropertyReplication = false; // This is needed, otherwise the client-to-server RPC fails
CustomRanksRepProgress = 0;
SteamGroupsRepProgress = 0;
}

View File

@ -1,16 +1,12 @@
class YASHUD extends KFGFxHudWrapper class YAS_HUD extends KFGFxHudWrapper;
config(YASMut);
`include(Build.uci)
`include(Logger.uci)
const HUDBorderSize = 3; const HUDBorderSize = 3;
var float ScaledBorderSize; var float ScaledBorderSize;
var array<KFGUI_Base> HUDWidgets; var array<KFGUI_Base> HUDWidgets;
var class<KFScoreBoard> ScoreboardClass; var class<YAS_ScoreBoard> ScoreboardClass;
var KFScoreBoard Scoreboard; var YAS_ScoreBoard Scoreboard;
var transient KF2GUIController GUIController; var transient KF2GUIController GUIController;
var transient GUIStyleBase GUIStyle; var transient GUIStyleBase GUIStyle;
@ -58,7 +54,7 @@ function PostRender()
function LaunchHUDMenus() function LaunchHUDMenus()
{ {
Scoreboard = KFScoreBoard(GUIController.InitializeHUDWidget(ScoreboardClass)); Scoreboard = YAS_ScoreBoard(GUIController.InitializeHUDWidget(ScoreboardClass));
Scoreboard.SetVisibility(false); Scoreboard.SetVisibility(false);
} }
@ -110,5 +106,5 @@ exec function SetShowScores(bool bNewValue)
defaultproperties defaultproperties
{ {
ScoreboardClass=class'KFScoreBoard' ScoreboardClass=class'YAS_ScoreBoard'
} }

View File

@ -0,0 +1,68 @@
class YAS_RepInfo extends ReplicationInfo;
// Server
var public YASMut Mut;
var public E_LogLevel LogLevel;
// Client
var private YAS_ScoreBoard SC;
var private OnlineSubsystemSteamworks SW;
public simulated function bool SafeDestroy()
{
`Log_Trace();
return (bPendingDelete || bDeleteMe || Destroy());
}
public simulated event PreBeginPlay()
{
if (bPendingDelete || bDeleteMe) return;
Super.PreBeginPlay();
if (Role < ROLE_Authority || WorldInfo.NetMode == NM_StandAlone)
{
GetScoreboard();
GetOnlineSubsystem();
}
}
public simulated event PostBeginPlay()
{
if (bPendingDelete || bDeleteMe) return;
Super.PostBeginPlay();
}
private reliable client function GetScoreboard() // TODO: !
{
if (SC == None)
{
SC = YAS_HUD(GetALocalPlayerController().myHUD).Scoreboard; // GetKFPC?
}
if (SC == None)
{
SetTimer(0.1f, false, nameof(GetScoreboard));
}
else
{
ClearTimer(nameof(GetScoreboard));
}
}
private reliable client function GetOnlineSubsystem()
{
// TODO: !
}
defaultproperties
{
Role = ROLE_Authority
RemoteRole = ROLE_SimulatedProxy
bAlwaysRelevant = false
bOnlyRelevantToOwner = true
bSkipActorPropertyReplication = false
}

View File

@ -1,10 +1,7 @@
class KFScoreBoard extends KFGUI_Page class YAS_ScoreBoard extends KFGUI_Page
dependson(Types); dependson(YAS_Types);
`include(Build.uci) const HeaderWidthRatio = 0.35f;
`include(Logger.uci)
const HeaderWidthRatio = 0.35f;
const PlayerListWidthRatio = 0.6f; const PlayerListWidthRatio = 0.6f;
var transient float HealthXPos, RankXPos, PlayerXPos, LevelXPos, PerkXPos, DoshXPos, KillsXPos, AssistXPos, PingXPos, ScrollXPos; var transient float HealthXPos, RankXPos, PlayerXPos, LevelXPos, PerkXPos, DoshXPos, KillsXPos, AssistXPos, PingXPos, ScrollXPos;
@ -27,27 +24,10 @@ var float PingBars;
// Cache // Cache
var array<String> PerkNames; var array<String> PerkNames;
// Ranks var YAS_Settings Settings;
var array<RankInfo> CustomRanks;
var array<UIDRankRelation> RankRelations;
var YASSettings Settings;
// Localization
var localized string Players;
var localized string Spectators;
var localized string Rank;
var localized string State;
var localized string NoPerk;
var localized string Ready;
var localized string NotReady;
var localized string Unknown;
var localized string Dead;
function InitMenu() function InitMenu()
{ {
`callstack();
Super.InitMenu(); Super.InitMenu();
PlayersList = KFGUI_List(FindComponentID('PlayerList')); PlayersList = KFGUI_List(FindComponentID('PlayerList'));
OwnerPC = KFPlayerController(GetPlayer()); OwnerPC = KFPlayerController(GetPlayer());
@ -153,8 +133,8 @@ function DrawMenu()
local float XPos, YPos, YL, XL, FontScalar, XPosCenter, BoxW, BoxX, BoxH, MinBoxW, DoshSize, ScrollBarWidth; local float XPos, YPos, YL, XL, FontScalar, XPosCenter, BoxW, BoxX, BoxH, MinBoxW, DoshSize, ScrollBarWidth;
local int i, j, NumSpec, NumAlivePlayer, Width; local int i, j, NumSpec, NumAlivePlayer, Width;
local float BorderSize; local float BorderSize;
local ColorRGBA ColorTmp; local Color ColorTMP;
PC = GetPlayer(); PC = GetPlayer();
if (KFGRI == None) if (KFGRI == None)
{ {
@ -228,10 +208,10 @@ function DrawMenu()
BoxH = YL + BorderSize; BoxH = YL + BorderSize;
// Top Rect (Server name) // Top Rect (Server name)
SetDrawColor(Canvas, Settings.Style.ServerNameBoxColor); Canvas.SetDrawColorStruct(Settings.Style.ServerNameBoxColor);
Owner.CurrentStyle.DrawRectBox(BoxX, YPos, BoxW, BoxH, Settings.Style.EdgeSize, Settings.Style.ShapeServerNameBox); Owner.CurrentStyle.DrawRectBox(BoxX, YPos, BoxW, BoxH, Settings.Style.EdgeSize, Settings.Style.ShapeServerNameBox);
SetDrawColor(Canvas, Settings.Style.ServerNameTextColor); Canvas.SetDrawColorStruct(Settings.Style.ServerNameTextColor);
S = ServerName(); S = ServerName();
DrawTextShadowHVCenter(S, BoxX, YPos, BoxW, FontScalar); DrawTextShadowHVCenter(S, BoxX, YPos, BoxW, FontScalar);
@ -240,10 +220,10 @@ function DrawMenu()
// Mid Left Rect (Info) // Mid Left Rect (Info)
BoxW = Width * 0.7; // TODO ? BoxW = Width * 0.7; // TODO ?
BoxH = YL * 2 + BorderSize * 2; BoxH = YL * 2 + BorderSize * 2;
SetDrawColor(Canvas, Settings.Style.GameInfoBoxColor); Canvas.SetDrawColorStruct(Settings.Style.GameInfoBoxColor);
Owner.CurrentStyle.DrawRectBox(BoxX, YPos, BoxW, BoxH, Settings.Style.EdgeSize, Settings.Style.ShapeGameInfoBox); Owner.CurrentStyle.DrawRectBox(BoxX, YPos, BoxW, BoxH, Settings.Style.EdgeSize, Settings.Style.ShapeGameInfoBox);
SetDrawColor(Canvas, Settings.Style.GameInfoTextColor); Canvas.SetDrawColorStruct(Settings.Style.GameInfoTextColor);
S = class'KFCommon_LocalizedStrings'.static.GetFriendlyMapName(PC.WorldInfo.GetMapName(true)); S = class'KFCommon_LocalizedStrings'.static.GetFriendlyMapName(PC.WorldInfo.GetMapName(true));
DrawTextShadowHLeftVCenter(S, BoxX + Settings.Style.EdgeSize, YPos, FontScalar); DrawTextShadowHLeftVCenter(S, BoxX + Settings.Style.EdgeSize, YPos, FontScalar);
@ -253,10 +233,10 @@ function DrawMenu()
// Mid Right Rect (Wave) // Mid Right Rect (Wave)
BoxX = BoxX + BoxW; BoxX = BoxX + BoxW;
BoxW = Width - BoxW; BoxW = Width - BoxW;
SetDrawColor(Canvas, Settings.Style.WaveBoxColor); Canvas.SetDrawColorStruct(Settings.Style.WaveBoxColor);
Owner.CurrentStyle.DrawRectBox(BoxX, YPos, BoxW, BoxH, Settings.Style.EdgeSize, Settings.Style.ShapeWaveInfoBox); Owner.CurrentStyle.DrawRectBox(BoxX, YPos, BoxW, BoxH, Settings.Style.EdgeSize, Settings.Style.ShapeWaveInfoBox);
SetDrawColor(Canvas, Settings.Style.WaveTextColor); Canvas.SetDrawColorStruct(Settings.Style.WaveTextColor);
S = class'KFGFxHUD_ScoreboardMapInfoContainer'.default.WaveString; S = class'KFGFxHUD_ScoreboardMapInfoContainer'.default.WaveString;
DrawTextShadowHVCenter(S, BoxX, YPos, BoxW, FontScalar); DrawTextShadowHVCenter(S, BoxX, YPos, BoxW, FontScalar);
DrawTextShadowHVCenter(WaveText(), BoxX, YPos + YL, BoxW, FontScalar); DrawTextShadowHVCenter(WaveText(), BoxX, YPos + YL, BoxW, FontScalar);
@ -267,11 +247,11 @@ function DrawMenu()
BoxX = XPos; BoxX = XPos;
BoxW = Width; BoxW = Width;
BoxH = YL + BorderSize; BoxH = YL + BorderSize;
SetDrawColor(Canvas, Settings.Style.PlayerCountBoxColor); Canvas.SetDrawColorStruct(Settings.Style.PlayerCountBoxColor);
Owner.CurrentStyle.DrawRectBox(BoxX, YPos, BoxW, BoxH, Settings.Style.EdgeSize, Settings.Style.ShapePlayersCountBox); Owner.CurrentStyle.DrawRectBox(BoxX, YPos, BoxW, BoxH, Settings.Style.EdgeSize, Settings.Style.ShapePlayersCountBox);
SetDrawColor(Canvas, Settings.Style.PlayerCountTextColor); Canvas.SetDrawColorStruct(Settings.Style.PlayerCountTextColor);
S = Players$": " $ NumPlayer $ " / " $ KFGRI.MaxHumanCount $ " " $ Spectators $ ": " $ NumSpec; S = NumPlayer $ " / " $ KFGRI.MaxHumanCount; // $ " " $ Spectators $ ": " $ NumSpec;
Canvas.TextSize(S, XL, YL, FontScalar, FontScalar); Canvas.TextSize(S, XL, YL, FontScalar, FontScalar);
DrawTextShadowHLeftVCenter(S, BoxX + Settings.Style.EdgeSize, YPos, FontScalar); DrawTextShadowHLeftVCenter(S, BoxX + Settings.Style.EdgeSize, YPos, FontScalar);
@ -285,7 +265,7 @@ function DrawMenu()
XPos = (Canvas.ClipX - Width) * 0.5; XPos = (Canvas.ClipX - Width) * 0.5;
YPos += YL; YPos += YL;
BoxH = YL + BorderSize; BoxH = YL + BorderSize;
SetDrawColor(Canvas, Settings.Style.ListHeaderBoxColor); Canvas.SetDrawColorStruct(Settings.Style.ListHeaderBoxColor);
Owner.CurrentStyle.DrawRectBox( XPos - BorderSize * 2, Owner.CurrentStyle.DrawRectBox( XPos - BorderSize * 2,
YPos, YPos,
Width + BorderSize * 4, Width + BorderSize * 4,
@ -339,7 +319,7 @@ function DrawMenu()
LevelXPos = PerkXPos - LevelWBox; LevelXPos = PerkXPos - LevelWBox;
// Header texts // Header texts
SetDrawColor(Canvas, Settings.Style.ListHeaderTextColor); Canvas.SetDrawColorStruct(Settings.Style.ListHeaderTextColor);
DrawTextShadowHLeftVCenter(class'KFGFxHUD_ScoreboardWidget'.default.PlayerString, XPos + PlayerXPos, YPos, FontScalar); DrawTextShadowHLeftVCenter(class'KFGFxHUD_ScoreboardWidget'.default.PlayerString, XPos + PlayerXPos, YPos, FontScalar);
DrawTextShadowHLeftVCenter(class'KFGFxMenu_Inventory'.default.PerkFilterString, XPos + PerkXPos, YPos, FontScalar); DrawTextShadowHLeftVCenter(class'KFGFxMenu_Inventory'.default.PerkFilterString, XPos + PerkXPos, YPos, FontScalar);
DrawTextShadowHVCenter(class'KFGFxHUD_ScoreboardWidget'.default.KillsString, XPos + KillsXPos, YPos, KillsWBox, FontScalar); DrawTextShadowHVCenter(class'KFGFxHUD_ScoreboardWidget'.default.KillsString, XPos + KillsXPos, YPos, KillsWBox, FontScalar);
@ -347,9 +327,9 @@ function DrawMenu()
DrawTextShadowHVCenter(class'KFGFxHUD_ScoreboardWidget'.default.DoshString, XPos + DoshXPos, YPos, DoshWBox, FontScalar); DrawTextShadowHVCenter(class'KFGFxHUD_ScoreboardWidget'.default.DoshString, XPos + DoshXPos, YPos, DoshWBox, FontScalar);
DrawTextShadowHVCenter(class'KFGFxHUD_ScoreboardWidget'.default.PingString, XPos + PingXPos, YPos, PingWBox, FontScalar); DrawTextShadowHVCenter(class'KFGFxHUD_ScoreboardWidget'.default.PingString, XPos + PingXPos, YPos, PingWBox, FontScalar);
ColorTmp = Settings.Style.ListHeaderTextColor; ColorTMP = Settings.Style.ListHeaderTextColor;
ColorTmp.A = 150; ColorTMP.A = 150;
SetDrawColor(Canvas, ColorTmp); Canvas.SetDrawColorStruct(ColorTmp);
DrawHealthIcon(XPos + HealthXPos, YPos, HealthWBox, BoxH); DrawHealthIcon(XPos + HealthXPos, YPos, HealthWBox, BoxH);
@ -405,11 +385,6 @@ function DrawTextShadowHRightVCenter(string Str, float XPos, float YPos, float B
Owner.CurrentStyle.DrawTextShadow(Str, XPos + BoxWidth - TextWidth, YPos, 1, FontScalar); Owner.CurrentStyle.DrawTextShadow(Str, XPos + BoxWidth - TextWidth, YPos, 1, FontScalar);
} }
function SetDrawColor(Canvas C, ColorRGBA RGBA)
{
C.SetDrawColor(RGBA.R, RGBA.G, RGBA.B, RGBA.A);
}
function DrawPlayerEntry(Canvas C, int Index, float YOffset, float Height, float Width, bool bFocus) function DrawPlayerEntry(Canvas C, int Index, float YOffset, float Height, float Width, bool bFocus)
{ {
local string S, StrValue; local string S, StrValue;
@ -420,56 +395,21 @@ function DrawPlayerEntry(Canvas C, int Index, float YOffset, float Height, float
local bool bIsZED; local bool bIsZED;
local int Ping; local int Ping;
local RankInfo CurrentRank;
local bool HasRank;
local int PlayerInfoIndex, PlayerRankIndex;
local float BorderSize; local float BorderSize;
local int Shape, ShapeHealth; local int Shape, ShapeHealth;
local ColorRGBA HealthBoxColor, HealthTextColor; local Color HealthBoxColor, HealthTextColor;
BorderSize = Owner.HUDOwner.ScaledBorderSize; BorderSize = Owner.HUDOwner.ScaledBorderSize;
YOffset *= 1.05; YOffset *= 1.05;
KFPRI = KFPRIArray[Index]; KFPRI = KFPRIArray[Index];
HasRank = false;
PlayerInfoIndex = RankRelations.Find('UID', KFPRI.UniqueId);
if (PlayerInfoIndex != INDEX_NONE && RankRelations[PlayerInfoIndex].RankID != INDEX_NONE)
{
PlayerRankIndex = CustomRanks.Find('ID', RankRelations[PlayerInfoIndex].RankID);
if (PlayerRankIndex != INDEX_NONE)
{
HasRank = true;
CurrentRank = CustomRanks[PlayerRankIndex];
}
}
if (KFPRI.bAdmin)
{
if (!HasRank || (HasRank && !CurrentRank.OverrideAdminRank))
{
CurrentRank.Rank = Settings.Admin.Rank;
CurrentRank.TextColor = Settings.Admin.TextColor;
CurrentRank.ApplyColorToFields = Settings.Admin.ApplyColorToFields;
HasRank = true;
}
}
else // Player
{
if (!HasRank)
{
CurrentRank.Rank = Settings.Player.Rank;
CurrentRank.TextColor = Settings.Player.TextColor;
CurrentRank.ApplyColorToFields = Settings.Player.ApplyColorToFields;
HasRank = true;
}
}
if (KFGRI.bVersusGame) if (KFGRI.bVersusGame)
{
bIsZED = KFTeamInfo_Zeds(KFPRI.Team) != None; bIsZED = KFTeamInfo_Zeds(KFPRI.Team) != None;
}
XPos = 0.f; XPos = 0.f;
@ -547,7 +487,7 @@ function DrawPlayerEntry(Canvas C, int Index, float YOffset, float Height, float
} }
// Health box // Health box
SetDrawColor(C, HealthBoxColor); C.SetDrawColorStruct(HealthBoxColor);
Owner.CurrentStyle.DrawRectBox(XPos, Owner.CurrentStyle.DrawRectBox(XPos,
YOffset, YOffset,
HealthWBox, HealthWBox,
@ -555,19 +495,20 @@ function DrawPlayerEntry(Canvas C, int Index, float YOffset, float Height, float
Settings.Style.EdgeSize, Settings.Style.EdgeSize,
ShapeHealth); ShapeHealth);
if (CurrentRank.ApplyColorToFields.Health) C.SetDrawColorStruct(HealthTextColor);
SetDrawColor(C, CurrentRank.TextColor);
else
SetDrawColor(C, HealthTextColor);
if (KFPRI.PlayerHealth > 0) if (KFPRI.PlayerHealth > 0)
{
DrawTextShadowHVCenter(String(KFPRI.PlayerHealth), HealthXPos, TextYOffset, HealthWBox, FontScalar); DrawTextShadowHVCenter(String(KFPRI.PlayerHealth), HealthXPos, TextYOffset, HealthWBox, FontScalar);
}
XPos += HealthWBox; XPos += HealthWBox;
// PlayerBox // PlayerBox
if (PlayerIndex == Index) if (PlayerIndex == Index)
SetDrawColor(C, Settings.Style.PlayerOwnerBoxColor); C.SetDrawColorStruct(Settings.Style.PlayerOwnerBoxColor);
else else
SetDrawColor(C, Settings.Style.PlayerBoxColor); C.SetDrawColorStruct(Settings.Style.PlayerBoxColor);
if (KFPRIArray.Length > 1 && Index == 0) if (KFPRIArray.Length > 1 && Index == 0)
Shape = Settings.Style.ShapePlayerBoxTopPlayer; Shape = Settings.Style.ShapePlayerBoxTopPlayer;
@ -590,7 +531,7 @@ function DrawPlayerEntry(Canvas C, int Index, float YOffset, float Height, float
Shape = Settings.Style.ShapeStatsBoxMidPlayer; Shape = Settings.Style.ShapeStatsBoxMidPlayer;
BoxWidth = Width - XPos; BoxWidth = Width - XPos;
SetDrawColor(C, Settings.Style.StatsBoxColor); C.SetDrawColorStruct(Settings.Style.StatsBoxColor);
Owner.CurrentStyle.DrawRectBox( XPos, Owner.CurrentStyle.DrawRectBox( XPos,
YOffset, YOffset,
BoxWidth, BoxWidth,
@ -602,10 +543,7 @@ function DrawPlayerEntry(Canvas C, int Index, float YOffset, float Height, float
RealPlayerWBox = PlayerWBox; RealPlayerWBox = PlayerWBox;
if (bIsZED) if (bIsZED)
{ {
if (CurrentRank.ApplyColorToFields.Perk) C.SetDrawColorStruct(Settings.Style.ZedTextColor);
SetDrawColor(C, CurrentRank.TextColor);
else
SetDrawColor(C, Settings.Style.ZedTextColor);
C.SetPos (PerkXPos, YOffset - ((Height-5) * 0.5f)); C.SetPos (PerkXPos, YOffset - ((Height-5) * 0.5f));
C.DrawRect (Height-5, Height-5, Texture2D'UI_Widgets.MenuBarWidget_SWF_IF'); C.DrawRect (Height-5, Height-5, Texture2D'UI_Widgets.MenuBarWidget_SWF_IF');
@ -615,7 +553,7 @@ function DrawPlayerEntry(Canvas C, int Index, float YOffset, float Height, float
} }
else else
{ {
if (KFPRI.CurrentPerkClass != None) if (KFPRI.CurrentPerkclass != None)
{ {
PrestigeLevel = KFPRI.GetActivePerkPrestigeLevel(); PrestigeLevel = KFPRI.GetActivePerkPrestigeLevel();
Level = KFPRI.GetActivePerkLevel(); Level = KFPRI.GetActivePerkLevel();
@ -642,49 +580,32 @@ function DrawPlayerEntry(Canvas C, int Index, float YOffset, float Height, float
C.DrawTile(KFPRI.CurrentPerkClass.default.PerkIcon, PerkIconSize, PerkIconSize, 0, 0, 256, 256); C.DrawTile(KFPRI.CurrentPerkClass.default.PerkIcon, PerkIconSize, PerkIconSize, 0, 0, 256, 256);
} }
if (CurrentRank.ApplyColorToFields.Level)
SetDrawColor(C, CurrentRank.TextColor); if (Level < Settings.Level.Low[KFGRI.GameDifficulty])
C.SetDrawColorStruct(Settings.Style.LevelTextColorLow);
else if (Level < Settings.Level.High[KFGRI.GameDifficulty])
C.SetDrawColorStruct(Settings.Style.LevelTextColorMid);
else else
{ C.SetDrawColorStruct(Settings.Style.LevelTextColorHigh);
if (Level < Settings.Level.Low[KFGRI.GameDifficulty])
SetDrawColor(C, Settings.Style.LevelTextColorLow);
else if (Level < Settings.Level.High[KFGRI.GameDifficulty])
SetDrawColor(C, Settings.Style.LevelTextColorMid);
else
SetDrawColor(C, Settings.Style.LevelTextColorHigh);
}
S = String(Level); S = String(Level);
DrawTextShadowHLeftVCenter(S, LevelXPos, TextYOffset, FontScalar); DrawTextShadowHLeftVCenter(S, LevelXPos, TextYOffset, FontScalar);
if (CurrentRank.ApplyColorToFields.Level) C.SetDrawColorStruct(Settings.Style.PerkNoneTextColor);
SetDrawColor(C, CurrentRank.TextColor);
if (CurrentRank.ApplyColorToFields.Perk)
SetDrawColor(C, CurrentRank.TextColor);
else
SetDrawColor(C, Settings.Style.PerkNoneTextColor);
S = KFPRI.CurrentPerkClass.default.PerkName; S = KFPRI.CurrentPerkClass.default.PerkName;
DrawTextShadowHLeftVCenter(S, PerkXPos, TextYOffset, FontScalar); DrawTextShadowHLeftVCenter(S, PerkXPos, TextYOffset, FontScalar);
} }
else else
{ {
if (CurrentRank.ApplyColorToFields.Perk) C.SetDrawColorStruct(Settings.Style.PerkNoneTextColor);
SetDrawColor(C, CurrentRank.TextColor); S = "";
else
SetDrawColor(C, Settings.Style.PerkNoneTextColor);
S = NoPerk;
DrawTextShadowHLeftVCenter(S, PerkXPos, TextYOffset, FontScalar); DrawTextShadowHLeftVCenter(S, PerkXPos, TextYOffset, FontScalar);
RealPlayerWBox = PerkXPos - PlayerXPos; RealPlayerWBox = PerkXPos - PlayerXPos;
} }
} }
// Rank // Rank
if (CurrentRank.ApplyColorToFields.Rank) DrawTextShadowHRightVCenter("<Player>", PlayerXPos, TextYOffset, PerkIconPosX - PlayerXPos - (BorderSize * 2), FontScalar);
SetDrawColor(C, CurrentRank.TextColor);
else
SetDrawColor(C, Settings.Style.PerkNoneTextColor);
S = CurrentRank.Rank;
DrawTextShadowHRightVCenter(S, PlayerXPos, TextYOffset, PerkIconPosX - PlayerXPos - (BorderSize * 2), FontScalar);
// Avatar // Avatar
if (KFPRI.Avatar != None) if (KFPRI.Avatar != None)
@ -701,10 +622,7 @@ function DrawPlayerEntry(Canvas C, int Index, float YOffset, float Height, float
CheckAvatar(KFPRI, OwnerPC); CheckAvatar(KFPRI, OwnerPC);
// Player // Player
if (CurrentRank.ApplyColorToFields.Player) C.SetDrawColorStruct(Settings.Style.PlayerNameTextColor);
SetDrawColor(C, CurrentRank.TextColor);
else
SetDrawColor(C, Settings.Style.PlayerNameTextColor);
S = KFPRI.PlayerName; S = KFPRI.PlayerName;
Canvas.TextSize(S, XL, YL, FontScalar, FontScalar); Canvas.TextSize(S, XL, YL, FontScalar, FontScalar);
while (XL > RealPlayerWBox) while (XL > RealPlayerWBox)
@ -715,31 +633,22 @@ function DrawPlayerEntry(Canvas C, int Index, float YOffset, float Height, float
DrawTextShadowHLeftVCenter(S, PlayerXPos, TextYOffset, FontScalar); DrawTextShadowHLeftVCenter(S, PlayerXPos, TextYOffset, FontScalar);
// Kill // Kill
if (CurrentRank.ApplyColorToFields.Kills) C.SetDrawColorStruct(Settings.Style.KillsTextColorMid); // TODO
SetDrawColor(C, CurrentRank.TextColor);
else
SetDrawColor(C, Settings.Style.KillsTextColorMid); // TODO
DrawTextShadowHVCenter(string (KFPRI.Kills), KillsXPos, TextYOffset, KillsWBox, FontScalar); DrawTextShadowHVCenter(string (KFPRI.Kills), KillsXPos, TextYOffset, KillsWBox, FontScalar);
// Assist // Assist
if (CurrentRank.ApplyColorToFields.Assists) C.SetDrawColorStruct(Settings.Style.AssistsTextColorMid); // TODO
SetDrawColor(C, CurrentRank.TextColor);
else
SetDrawColor(C, Settings.Style.AssistsTextColorMid); // TODO
DrawTextShadowHVCenter(string (KFPRI.Assists), AssistXPos, TextYOffset, AssistWBox, FontScalar); DrawTextShadowHVCenter(string (KFPRI.Assists), AssistXPos, TextYOffset, AssistWBox, FontScalar);
// Dosh // Dosh
if (bIsZED) if (bIsZED)
{ {
SetDrawColor(C, Settings.Style.ZedTextColor); C.SetDrawColorStruct(Settings.Style.ZedTextColor);
StrValue = "-"; StrValue = "-";
} }
else else
{ {
if (CurrentRank.ApplyColorToFields.Dosh) C.SetDrawColorStruct(Settings.Style.DoshTextColorMid); // TODO
SetDrawColor(C, CurrentRank.TextColor);
else
SetDrawColor(C, Settings.Style.DoshTextColorMid); // TODO
StrValue = GetNiceSize(int(KFPRI.Score)); StrValue = GetNiceSize(int(KFPRI.Score));
} }
DrawTextShadowHVCenter(StrValue, DoshXPos, TextYOffset, DoshWBox, FontScalar); DrawTextShadowHVCenter(StrValue, DoshXPos, TextYOffset, DoshWBox, FontScalar);
@ -747,21 +656,19 @@ function DrawPlayerEntry(Canvas C, int Index, float YOffset, float Height, float
// Ping // Ping
if (KFPRI.bBot) if (KFPRI.bBot)
{ {
SetDrawColor(C, Settings.Style.PingTextColorNone); C.SetDrawColorStruct(Settings.Style.PingTextColorNone);
S = "-"; S = "-";
} }
else else
{ {
Ping = int(KFPRI.Ping * `PING_SCALE); Ping = int(KFPRI.Ping * `PING_SCALE);
if (CurrentRank.ApplyColorToFields.Ping) if (Ping <= Settings.Ping.Low)
SetDrawColor(C, CurrentRank.TextColor); C.SetDrawColorStruct(Settings.Style.PingTextColorLow);
else if (Ping <= Settings.Ping.Low)
SetDrawColor(C, Settings.Style.PingTextColorLow);
else if (Ping <= Settings.Ping.High) else if (Ping <= Settings.Ping.High)
SetDrawColor(C, Settings.Style.PingTextColorMid); C.SetDrawColorStruct(Settings.Style.PingTextColorMid);
else else
SetDrawColor(C, Settings.Style.PingTextColorHigh); C.SetDrawColorStruct(Settings.Style.PingTextColorHigh);
S = string(Ping); S = string(Ping);
} }

View File

@ -1,20 +1,4 @@
class Types extends Object; class YAS_Types extends Object;
`include(Build.uci)
`include(Logger.uci)
struct ColorRGBA
{
var byte R, G, B, A;
Structdefaultproperties
{
R = 250
G = 250
B = 250
A = 255
}
};
struct Fields struct Fields
{ {
@ -42,66 +26,7 @@ struct Fields
} }
}; };
struct RankInfo struct YAS_SettingsHealth
{
var int ID;
var string Rank;
var ColorRGBA TextColor;
var bool OverrideAdminRank;
var Fields ApplyColorToFields;
};
struct RankRelation
{
var string ObjectID;
var int RankID;
Structdefaultproperties
{
RankID = -999
}
};
struct UIDRankRelation
{
var UniqueNetId UID;
var int RankID;
Structdefaultproperties
{
RankID = -999
}
};
struct YASSettingsAdmin
{
var string Rank;
var ColorRGBA TextColor;
var Fields ApplyColorToFields;
Structdefaultproperties
{
Rank = "Admin"
TextColor = (R=250, G=0, B=0, A=255)
ApplyColorToFields = (Rank=True, Player=True, Level=False, Perk=False, Dosh=False, Kills=False, Assists=False, Health=False, Ping=False)
}
};
struct YASSettingsPlayer
{
var string Rank;
var ColorRGBA TextColor;
var Fields ApplyColorToFields;
Structdefaultproperties
{
Rank = "Player"
TextColor = (R=250, G=250, B=250, A=255)
ApplyColorToFields = (Rank=True, Player=True, Level=False, Perk=False, Dosh=False, Kills=False, Assists=False, Health=False, Ping=False)
}
};
struct YASSettingsHealth
{ {
var int Low; var int Low;
var int High; var int High;
@ -113,7 +38,7 @@ struct YASSettingsHealth
} }
}; };
struct YASSettingsPing struct YAS_SettingsPing
{ {
var int Low; var int Low;
var int High; var int High;
@ -125,7 +50,7 @@ struct YASSettingsPing
} }
}; };
struct YASSettingsLevel struct YAS_SettingsLevel
{ {
var int Low [4]; var int Low [4];
var int High[4]; var int High[4];
@ -143,7 +68,7 @@ struct YASSettingsLevel
} }
}; };
struct YASStyle struct YAS_Style
{ {
// Box shapes // Box shapes
var int EdgeSize; var int EdgeSize;
@ -163,100 +88,100 @@ struct YASStyle
var int ShapeStatsBoxBottomPlayer; var int ShapeStatsBoxBottomPlayer;
// Server box // Server box
var ColorRGBA ServerNameBoxColor; var Color ServerNameBoxColor;
var ColorRGBA ServerNameTextColor; var Color ServerNameTextColor;
// Game info box // Game info box
var ColorRGBA GameInfoBoxColor; var Color GameInfoBoxColor;
var ColorRGBA GameInfoTextColor; var Color GameInfoTextColor;
// Wave info box // Wave info box
var ColorRGBA WaveBoxColor; var Color WaveBoxColor;
var ColorRGBA WaveTextColor; var Color WaveTextColor;
// Player count box // Player count box
var ColorRGBA PlayerCountBoxColor; var Color PlayerCountBoxColor;
var ColorRGBA PlayerCountTextColor; var Color PlayerCountTextColor;
// Header box // Header box
var ColorRGBA ListHeaderBoxColor; var Color ListHeaderBoxColor;
var ColorRGBA ListHeaderTextColor; var Color ListHeaderTextColor;
// State box // State box
var ColorRGBA StateBoxColorLobby; var Color StateBoxColorLobby;
var ColorRGBA StateBoxColorReady; var Color StateBoxColorReady;
var ColorRGBA StateBoxColorNotReady; var Color StateBoxColorNotReady;
var ColorRGBA StateBoxColorSpectator; var Color StateBoxColorSpectator;
var ColorRGBA StateBoxColorDead; var Color StateBoxColorDead;
var ColorRGBA StateBoxColorNone; var Color StateBoxColorNone;
var ColorRGBA StateBoxColorHealthLow; var Color StateBoxColorHealthLow;
var ColorRGBA StateBoxColorHealthMid; var Color StateBoxColorHealthMid;
var ColorRGBA StateBoxColorHealthHigh; var Color StateBoxColorHealthHigh;
// Player box // Player box
var ColorRGBA PlayerOwnerBoxColor; var Color PlayerOwnerBoxColor;
var ColorRGBA PlayerBoxColor; var Color PlayerBoxColor;
// Stats box // Stats box
var ColorRGBA StatsOwnerBoxColor; var Color StatsOwnerBoxColor;
var ColorRGBA StatsBoxColor; var Color StatsBoxColor;
// State text // State text
var ColorRGBA StateTextColorLobby; var Color StateTextColorLobby;
var ColorRGBA StateTextColorReady; var Color StateTextColorReady;
var ColorRGBA StateTextColorNotReady; var Color StateTextColorNotReady;
var ColorRGBA StateTextColorSpectator; var Color StateTextColorSpectator;
var ColorRGBA StateTextColorDead; var Color StateTextColorDead;
var ColorRGBA StateTextColorNone; var Color StateTextColorNone;
var ColorRGBA StateTextColorHealthLow; var Color StateTextColorHealthLow;
var ColorRGBA StateTextColorHealthMid; var Color StateTextColorHealthMid;
var ColorRGBA StateTextColorHealthHigh; var Color StateTextColorHealthHigh;
// Rank text // Rank text
var ColorRGBA RankTextColor; var Color RankTextColor;
// Player text // Player text
var ColorRGBA PlayerNameTextColor; var Color PlayerNameTextColor;
// Level text // Level text
var ColorRGBA LevelTextColorLow; var Color LevelTextColorLow;
var ColorRGBA LevelTextColorMid; var Color LevelTextColorMid;
var ColorRGBA LevelTextColorHigh; var Color LevelTextColorHigh;
// Perk text // Perk text
var ColorRGBA ZedTextColor; var Color ZedTextColor;
var ColorRGBA PerkNoneTextColor; var Color PerkNoneTextColor;
var ColorRGBA PerkBerserkerTextColor; var Color PerkBerserkerTextColor;
var ColorRGBA PerkCommandoTextColor; var Color PerkCommandoTextColor;
var ColorRGBA PerkSupportTextColor; var Color PerkSupportTextColor;
var ColorRGBA PerkFieldMedicTextColor; var Color PerkFieldMedicTextColor;
var ColorRGBA PerkDemolitionistTextColor; var Color PerkDemolitionistTextColor;
var ColorRGBA PerkFirebugTextColor; var Color PerkFirebugTextColor;
var ColorRGBA PerkGunslingerTextColor; var Color PerkGunslingerTextColor;
var ColorRGBA PerkSharpshooterTextColor; var Color PerkSharpshooterTextColor;
var ColorRGBA PerkSwatTextColor; var Color PerkSwatTextColor;
var ColorRGBA PerkSurvivalistTextColor; var Color PerkSurvivalistTextColor;
// Dosh text // Dosh text
var ColorRGBA DoshTextColorLow; var Color DoshTextColorLow;
var ColorRGBA DoshTextColorMid; var Color DoshTextColorMid;
var ColorRGBA DoshTextColorHigh; var Color DoshTextColorHigh;
// Kills text // Kills text
var ColorRGBA KillsTextColorLow; var Color KillsTextColorLow;
var ColorRGBA KillsTextColorMid; var Color KillsTextColorMid;
var ColorRGBA KillsTextColorHigh; var Color KillsTextColorHigh;
// Assists text // Assists text
var ColorRGBA AssistsTextColorLow; var Color AssistsTextColorLow;
var ColorRGBA AssistsTextColorMid; var Color AssistsTextColorMid;
var ColorRGBA AssistsTextColorHigh; var Color AssistsTextColorHigh;
// Ping text // Ping text
var ColorRGBA PingTextColorNone; var Color PingTextColorNone;
var ColorRGBA PingTextColorLow; var Color PingTextColorLow;
var ColorRGBA PingTextColorMid; var Color PingTextColorMid;
var ColorRGBA PingTextColorHigh; var Color PingTextColorHigh;
// Other settings // Other settings
var bool ShowPingBars; var bool ShowPingBars;
@ -386,23 +311,14 @@ struct YASStyle
// Other settings // Other settings
ShowPingBars = true ShowPingBars = true
HealthBoxSmoothColorChange = true
HealthTextSmoothColorChange = false
LevelTextSmoothColorChange = false
DoshTextSmoothColorChange = false
KillsTextSmoothColorChange = false
AssistsTextSmoothColorChange = false
PingTextSmoothColorChange = false
} }
}; };
struct YASSettings struct YAS_Settings
{ {
var YASStyle Style; var YAS_Style Style;
var YASSettingsAdmin Admin; var YAS_SettingsPing Ping;
var YASSettingsPlayer Player; var YAS_SettingsLevel Level;
var YASSettingsPing Ping; var YAS_SettingsHealth Health;
var YASSettingsLevel Level;
var YASSettingsHealth Health;
}; };

20
YAS/Classes/_Logger.uc Normal file
View File

@ -0,0 +1,20 @@
class _Logger extends Object
abstract;
enum E_LogLevel
{
LL_WrongLevel,
LL_None,
LL_Fatal,
LL_Error,
LL_Warning,
LL_Info,
LL_Debug,
LL_Trace,
LL_All
};
defaultproperties
{
}

50
YAS/Constants.uci Normal file
View File

@ -0,0 +1,50 @@
// Constants
`define NO_CONFIG 0
// Scoreboard
`define BOX_INNERBORDER 0
`define BOX_INNERBORDER_TRANSPARENT 1
`define BOX_MEDIUM 2
`define BOX_MEDIUM_SLIGHTTRANSPARENT 3
`define BOX_MEDIUM_TRANSPARENT 4
`define BOX_LARGE 5
`define BOX_LARGE_SLIGHTTRANSPARENT 6
`define BOX_LARGE_TRANSPARENT 7
`define BOX_SMALL 8
`define BOX_SMALL_SLIGHTTRANSPARENT 9
`define BOX_SMALL_TRANSPARENT 10
`define BOX_CORNER_8 11
`define BOX_CORNER_16 12
`define BOX_CORNER_32 13
`define BOX_CORNER_64 14
`define BOX_CORNER_512 15
`define ITEMBOX_NORMAL 0
`define ITEMBOX_DISABLED 1
`define ITEMBOX_HIGHLIGHTED 2
`define CHECKMARK_NORMAL 0
`define CHECKMARK_DISABLED 1
`define CHECKMARK_HIGHLIGHTED 2
`define ARROW_DOWN 0
`define ARROW_LEFT 1
`define ARROW_RIGHT 2
`define ARROW_UP 3
`define BUTTON_NORMAL 0
`define BUTTON_DISABLED 1
`define BUTTON_HIGHLIGHTED 2
`define BUTTON_PRESSED 3
`define TAB_TOP 0
`define TAB_BOTTOM 1
`define PEN_WHITE 0
`define PEN_BLACK 1
`define PEN_GRAY 2
`define CURSOR_DEFAULT 0
`define CURSOR_SELECTION 1
`define CURSOR_RESIZEVERT 2
`define CURSOR_RESIZEHORZ 3

View File

@ -1,46 +1,3 @@
`define BOX_INNERBORDER 0 // Imports
`define BOX_INNERBORDER_TRANSPARENT 1 `include(Logger.uci)
`define BOX_MEDIUM 2 `include(Constants.uci)
`define BOX_MEDIUM_SLIGHTTRANSPARENT 3
`define BOX_MEDIUM_TRANSPARENT 4
`define BOX_LARGE 5
`define BOX_LARGE_SLIGHTTRANSPARENT 6
`define BOX_LARGE_TRANSPARENT 7
`define BOX_SMALL 8
`define BOX_SMALL_SLIGHTTRANSPARENT 9
`define BOX_SMALL_TRANSPARENT 10
`define BOX_CORNER_8 11
`define BOX_CORNER_16 12
`define BOX_CORNER_32 13
`define BOX_CORNER_64 14
`define BOX_CORNER_512 15
`define ITEMBOX_NORMAL 0
`define ITEMBOX_DISABLED 1
`define ITEMBOX_HIGHLIGHTED 2
`define CHECKMARK_NORMAL 0
`define CHECKMARK_DISABLED 1
`define CHECKMARK_HIGHLIGHTED 2
`define ARROW_DOWN 0
`define ARROW_LEFT 1
`define ARROW_RIGHT 2
`define ARROW_UP 3
`define BUTTON_NORMAL 0
`define BUTTON_DISABLED 1
`define BUTTON_HIGHLIGHTED 2
`define BUTTON_PRESSED 3
`define TAB_TOP 0
`define TAB_BOTTOM 1
`define PEN_WHITE 0
`define PEN_BLACK 1
`define PEN_GRAY 2
`define CURSOR_DEFAULT 0
`define CURSOR_SELECTION 1
`define CURSOR_RESIZEVERT 2
`define CURSOR_RESIZEHORZ 3

View File

@ -1,9 +1,15 @@
`define scelog(text, cond) `log(`text, `cond, 'YetAnotherScoreboard') // Logger
`define Log_Tag 'YAS'
`define info(text) `scelog("[INFO]"@`text, true)
`define warning(text) `scelog("[WARNING]"@`text, true) `define LocationStatic "`{ClassName}::" $ GetFuncName()
`define error(text) `scelog("[ERROR]"@`text, true)
`define Log_Base(msg, cond) `log(`msg `if(`cond), `cond`{endif}, `Log_Tag)
`define debug(text) if (`bEnableDebug) { `scelog("[DEBUG]"@`text, `bEnableDebug); }
`define callstack() if (`bEnableCallstack) { `scelog("[CALLSTACK]"@`Location, `bEnableCallstack); } `define Log_Fatal(msg) `log("FATAL:" @ `msg, (LogLevel >= LL_Fatal), `Log_Tag)
`define callstack_static(text) if (`bEnableCallstack) { `scelog("[CALLSTACK]"@`text, `bEnableCallstack); } `define Log_Error(msg) `log("ERROR:" @ `msg, (LogLevel >= LL_Error), `Log_Tag)
`define Log_Warn(msg) `log("WARN:" @ `msg, (LogLevel >= LL_Warning), `Log_Tag)
`define Log_Info(msg) `log("INFO:" @ `msg, (LogLevel >= LL_Info), `Log_Tag)
`define Log_Debug(msg) `log("DEBUG:" @ `msg, (LogLevel >= LL_Debug), `Log_Tag)
`define Log_Trace(msg) `log("TRACE:" @ `Location `if(`msg) @ `msg`{endif}, (LogLevel >= LL_Trace), `Log_Tag)
`define Log_TraceStatic(msg) `log("TRACE:" @ `LocationStatic `if(`msg) @ `msg`{endif}, (LogLevel >= LL_Trace), `Log_Tag)