126 lines
3.3 KiB
Plaintext
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();
|
|
}
|