Replacing the Player.Console
============================
// Only relevant parts of this class included!
var TrackerConsole TC;
simulated function PostBeginPlay()
{
TC = New(None) class'TrackerConsole';
}
simulated function Tick ( float DeltaTime )
{
if ( !Player.Console.IsA('TrackerConsole') )
AttachConsole();
}
simulated function AttachConsole()
{
TC.zzOldConsole = UTConsole(Player.Console);
Player.Console = TC;
TrackerConsole(Player.Console).xxGetValues();
}
============================
class TrackerConsole extends UTConsole;
var UTConsole zzOldConsole;
var int zzMyState; // 0=Global State, 1=UWINDOW, 2=Typing
final function xxGetValues()
{
local int i;
ConsoleWindow = zzOldConsole.ConsoleWindow;
ViewPort = zzOldConsole.ViewPort;
if (zzOldConsole.Root != None)
{
Root = zzOldConsole.Root;
Root.Console = Self;
}
else
Root = None;
// Console Variables
HistoryTop = zzOldConsole.HistoryTop;
HistoryCur = zzOldConsole.HistoryCur;
HistoryBot = zzOldConsole.HistoryBot;
TypedStr = zzOldConsole.TypedStr;
Scrollback = zzOldConsole.Scrollback;
NumLines = zzOldConsole.NumLines;
TopLine = zzOldConsole.TopLine;
TextLines = zzOldConsole.TextLines;
MsgTime = zzOldConsole.MsgTime;
MsgTickTime = zzOldConsole.MsgTickTime;
BorderSize = zzOldConsole.BorderSize;
ConsoleLines = zzOldConsole.ConsoleLines;
BorderLines = zzOldConsole.BorderLines;
BorderPixels = zzOldConsole.BorderPixels;
ConsolePos = zzOldConsole.ConsolePos;
ConsoleDest = zzOldConsole.ConsoleDest;
FrameX = zzOldConsole.FrameX;
FrameY = zzOldConsole.FrameY;
ConBackground = zzOldConsole.ConBackground;
Border = zzOldConsole.Border;
bNoStuff = zzOldConsole.bNoStuff;
bTyping = zzOldConsole.bTyping;
bNoDrawWorld = zzOldConsole.bNoDrawWorld;
bTimeDemo = zzOldConsole.bTimeDemo;
bStartTimeDemo = zzOldConsole.bStartTimeDemo;
bRestartTimeDemo = zzOldConsole.bRestartTimeDemo;
bSaveTimeDemoToFile = zzOldConsole.bSaveTimeDemoToFile;
StartTime = zzOldConsole.StartTime;
ExtraTime = zzOldConsole.ExtraTime;
LastFrameTime = zzOldConsole.LastFrameTime;
LastSecondStartTime = zzOldConsole.LastSecondStartTime;
FrameCount = zzOldConsole.FrameCount;
LastSecondFrameCount = zzOldConsole.LastSecondFrameCount;
MinFPS = zzOldConsole.MinFPS;
MaxFPS = zzOldConsole.MaxFPS;
LastSecFPS = zzOldConsole.LastSecFPS;
TimeDemoFont = zzOldConsole.TimeDemoFont;
LoadingMessage = zzOldConsole.LoadingMessage;
SavingMessage = zzOldConsole.SavingMessage;
ConnectingMessage = zzOldConsole.ConnectingMessage;
PausedMessage = zzOldConsole.PausedMessage;
PrecachingMessage = zzOldConsole.PrecachingMessage;
FrameRateText = zzOldConsole.FrameRateText;
AvgText = zzOldConsole.AvgText;
LastSecText = zzOldConsole.LastSecText;
MinText = zzOldConsole.MinText;
MaxText = zzOldConsole.MaxText;
fpsText = zzOldConsole.fpsText;
SecondsText = zzOldConsole.SecondsText;
FramesText = zzOldConsole.FramesText;
// WindowConsole Variables
RootWindow = zzOldConsole.RootWindow;
OldClipX = zzOldConsole.OldClipX;
OldClipY = zzOldConsole.OldClipY;
bCreatedRoot = zzoldconsole.bCreatedRoot;
MouseX = zzoldconsole.MouseX;
MouseY = zzoldconsole.MouseY;
ConsoleClass = zzOldConsole.ConsoleClass;
MouseScale = zzOldConsole.MouseScale;
ShowDesktop = zzOldConsole.ShowDesktop;
bShowConsole = zzOldConsole.bshowconsole;
bBlackout = zzOldConsole.bBlackout;
bUWindowType = zzoldconsole.bUWindowType;
bUWindowActive = zzoldconsole.bUWindowActive;
bQuickKeyEnable = zzoldconsole.bQuickKeyEnable;
bLocked = zzoldconsole.bLocked;
bLevelChange = zzOldConsole.bLevelChange;
OldLevel = zzOldConsole.OldLevel;
ConsoleKey = zzOldConsole.ConsoleKey;
UWindowKey = zzOldConsole.UWindowKey;
// TournamentConsole Variables
bShowSpeech = zzOldConsole.bShowSpeech;
// UTConsole Variables
SpeechWindow = zzOldConsole.SpeechWindow;
SpeechKey = zzOldConsole.SpeechKey;
bTimeDemoIsEntry = zzOldConsole.bTimeDemoIsEntry;
bShowMessage = zzOldConsole.bShowMessage;
bWasShowingMessage = zzOldConsole.bWasShowingMessage;
MessageWindow = zzOldConsole.MessageWindow;
ManagerWindowClass = zzOldConsole.ManagerWindowClass;
UTLadderDMClass = zzOldConsole.UTLadderDMClass;
UTLadderCTFClass = zzOldConsole.UTLadderCTFClass;
UTLadderDOMClass = zzOldConsole.UTLadderDOMClass;
UTLadderASClass = zzOldConsole.UTLadderASClass;
UTLadderChalClass = zzOldConsole.UTLadderChalClass;
UTLadderDMTestClass = zzOldConsole.UTLadderDMTestClass;
UTLadderDOMTestClass = zzOldConsole.UTLadderDOMTestClass;
InterimObjectType = zzOldConsole.InterimObjectType;
SlotWindowType = zzOldConsole.SlotWindowType;
for ( i = 0; i < 64; i++ )
{
MsgText[i] = zzOldConsole.MsgText[i];
//MsgType[i] = zzOldConsole.MsgType[i]; // "Compiler Error: Variable is too large"
//MsgPlayer[i] = zzOldConsole.MsgPlayer[i]; // "Compiler Error: Variable is too large"
//MsgTick[i] = zzOldConsole.MsgTick[i]; // "Compiler Error: Variable is too large"
}
for ( i = 0; i < MaxHistory; i++ )
History[i] = zzOldConsole.History[i];
for ( i = 0; i < 10; i++ )
SavedPasswords[i] = zzOldConsole.SavedPasswords[i];
//states:
switch ( zzOldConsole.getStateName() )
{
case 'UWindow':
zzMyState = 1;
break;
case 'Typing':
zzMyState = 2;
break;
default:
zzMyState = 0;
}
}
event bool KeyEvent( EInputKey Key, EInputAction Action, float Delta )
{
Viewport.Actor.ClientMessage("Key PRESSED:" @ Key);
Super.KeyEvent(Key, Action, Delta);
}
defaultproperties
{
}