KevinBlast/marble/client/ui/playerList.gui

126 lines
3.3 KiB
Plaintext

//-----------------------------------------------------------------------------
// Torque Game Engine
//
// Copyright (c) 2001 GarageGames.Com
//-----------------------------------------------------------------------------
//--- OBJECT WRITE BEGIN ---
new GuiControl(PlayerListGui) {
profile = "GuiModelessDialogProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "0 0";
extent = "640 480";
minExtent = "8 8";
visible = "1";
helpTag = "0";
noCursor = true;
new GuiBitmapCtrl() {
profile = "HudScrollProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "65 175";
extent = "147 231";
minExtent = "8 8";
visible = "1";
helpTag = "0";
bitmap = "./hudfill.png";
wrap = "0";
new GuiTextCtrl() {
profile = "HudTextProfile";
horizSizing = "right";
vertSizing = "bottom";
position = "37 2";
extent = "76 20";
minExtent = "8 8";
visible = "1";
helpTag = "0";
text = "Score Board";
maxLength = "255";
};
new GuiScrollCtrl() {
profile = "HudScrollProfile";
horizSizing = "width";
vertSizing = "height";
position = "0 24";
extent = "147 207";
minExtent = "8 8";
visible = "1";
helpTag = "0";
willFirstRespond = "1";
hScrollBar = "alwaysOff";
vScrollBar = "dynamic";
constantThumbHeight = "0";
defaultLineHeight = "15";
childMargin = "0 0";
new GuiTextListCtrl(PlayerListGuiList) {
profile = "HudTextProfile";
horizSizing = "width";
vertSizing = "height";
position = "0 0";
extent = "145 36";
minExtent = "8 8";
visible = "1";
helpTag = "0";
enumerate = "0";
resizeCell = "1";
columns = "0 120";
fitParentWidth = "1";
clipColumnText = "0";
};
};
};
};
//--- OBJECT WRITE END ---
function PlayerListGui::update(%this,%clientId,%name,%isSuperAdmin,%isAdmin,%isAI,%score)
{
// Build the row to display. The name can have ML control tags,
// including color and font. Since we're not using and
// ML control here, we need to strip them off.
%tag = %isSuperAdmin? "[Super]":
(%isAdmin? "[Admin]":
(%isAI? "[Bot]":
""));
%text = StripMLControlChars(%name) SPC %tag TAB %score;
// Update or add the player to the control
if (PlayerListGuiList.getRowNumById(%clientId) == -1)
PlayerListGuiList.addRow(%clientId, %text);
else
PlayerListGuiList.setRowById(%clientId, %text);
// Sorts by score
PlayerListGuiList.sortNumerical(1);
}
function PlayerListGui::updateScore(%this,%clientId,%score)
{
%text = PlayerListGuiList.getRowTextById(%clientId);
%text = setField(%text,1,%score);
PlayerListGuiList.setRowById(%clientId, %text);
PlayerListGuiList.sortNumerical(1);
}
function PlayerListGui::remove(%this,%clientId)
{
PlayerListGuiList.removeRowById(%clientId);
}
function PlayerListGui::toggle(%this)
{
if (%this.isAwake())
Canvas.popDialog(%this);
else
Canvas.pushDialog(%this);
}
function PlayerListGui::clear(%this)
{
// Override to clear the list.
PlayerListGuiList.clear();
}