mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-02-19 06:33:49 +00:00
644 lines
18 KiB
Text
644 lines
18 KiB
Text
//--- OBJECT WRITE BEGIN ---
|
|
%guiContent = new GuiControl(JoinServerDlg) {
|
|
canSaveDynamicFields = "0";
|
|
Enabled = "1";
|
|
isContainer = "1";
|
|
Profile = "GuiOverlayProfile";
|
|
HorizSizing = "width";
|
|
VertSizing = "height";
|
|
position = "0 0";
|
|
Extent = "1024 768";
|
|
MinExtent = "8 8";
|
|
canSave = "1";
|
|
Visible = "1";
|
|
tooltipprofile = "GuiToolTipProfile";
|
|
hovertime = "1000";
|
|
|
|
new GuiWindowCtrl() {
|
|
canSaveDynamicFields = "0";
|
|
Enabled = "1";
|
|
isContainer = "1";
|
|
Profile = "GuiWindowProfile";
|
|
HorizSizing = "center";
|
|
VertSizing = "center";
|
|
Position = "252 224";
|
|
Extent = "520 320";
|
|
MinExtent = "8 8";
|
|
canSave = "1";
|
|
isDecoy = "0";
|
|
Visible = "1";
|
|
tooltipprofile = "GuiToolTipProfile";
|
|
hovertime = "1000";
|
|
Margin = "0 0 0 0";
|
|
Padding = "0 0 0 0";
|
|
AnchorTop = "1";
|
|
AnchorBottom = "0";
|
|
AnchorLeft = "1";
|
|
AnchorRight = "0";
|
|
resizeWidth = "0";
|
|
resizeHeight = "0";
|
|
canMove = "1";
|
|
canClose = "1";
|
|
canMinimize = "0";
|
|
canMaximize = "0";
|
|
minSize = "50 50";
|
|
EdgeSnap = "1";
|
|
text = "Join Server";
|
|
closeCommand = "Canvas.popDialog(JoinServerDlg);";
|
|
|
|
new GuiButtonCtrl(JS_queryMaster) {
|
|
canSaveDynamicFields = "0";
|
|
Enabled = "1";
|
|
isContainer = "0";
|
|
Profile = "GuiButtonProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "top";
|
|
Position = "216 289";
|
|
Extent = "90 23";
|
|
MinExtent = "8 8";
|
|
canSave = "1";
|
|
isDecoy = "0";
|
|
Visible = "1";
|
|
Command = "JoinServerDlg.query();";
|
|
tooltipprofile = "GuiToolTipProfile";
|
|
hovertime = "1000";
|
|
text = "Query Master";
|
|
groupNum = "-1";
|
|
buttonType = "PushButton";
|
|
useMouseEvents = "0";
|
|
};
|
|
new GuiButtonCtrl(JS_queryLan) {
|
|
canSaveDynamicFields = "0";
|
|
Enabled = "1";
|
|
isContainer = "0";
|
|
Profile = "GuiButtonProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "top";
|
|
Position = "114 289";
|
|
Extent = "90 23";
|
|
MinExtent = "8 8";
|
|
canSave = "1";
|
|
isDecoy = "0";
|
|
Visible = "1";
|
|
Command = "JoinServerDlg.queryLan();";
|
|
tooltipprofile = "GuiToolTipProfile";
|
|
hovertime = "1000";
|
|
text = "Query LAN";
|
|
groupNum = "-1";
|
|
buttonType = "PushButton";
|
|
useMouseEvents = "0";
|
|
};
|
|
new GuiButtonCtrl(JS_refreshServer) {
|
|
canSaveDynamicFields = "0";
|
|
Enabled = "1";
|
|
isContainer = "0";
|
|
Profile = "GuiButtonProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "top";
|
|
Position = "318 289";
|
|
Extent = "90 23";
|
|
MinExtent = "8 8";
|
|
canSave = "1";
|
|
isDecoy = "0";
|
|
Visible = "1";
|
|
Command = "JoinServerDlg.refresh();";
|
|
tooltipprofile = "GuiToolTipProfile";
|
|
hovertime = "1000";
|
|
text = "Refresh Server";
|
|
groupNum = "-1";
|
|
buttonType = "PushButton";
|
|
useMouseEvents = "0";
|
|
};
|
|
new GuiButtonCtrl(JS_joinServer) {
|
|
canSaveDynamicFields = "0";
|
|
Enabled = "1";
|
|
isContainer = "0";
|
|
Profile = "GuiButtonProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "top";
|
|
Position = "420 289";
|
|
Extent = "90 23";
|
|
MinExtent = "8 8";
|
|
canSave = "1";
|
|
isDecoy = "0";
|
|
Visible = "1";
|
|
Command = "JoinServerDlg.join();";
|
|
tooltipprofile = "GuiToolTipProfile";
|
|
hovertime = "1000";
|
|
text = "Join Server!";
|
|
groupNum = "-1";
|
|
buttonType = "PushButton";
|
|
useMouseEvents = "0";
|
|
};
|
|
new GuiScrollCtrl() {
|
|
canSaveDynamicFields = "0";
|
|
Enabled = "1";
|
|
isContainer = "1";
|
|
Profile = "GuiScrollProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
Position = "10 80";
|
|
Extent = "500 197";
|
|
MinExtent = "8 8";
|
|
canSave = "1";
|
|
isDecoy = "0";
|
|
Visible = "1";
|
|
tooltipprofile = "GuiToolTipProfile";
|
|
hovertime = "1000";
|
|
Margin = "0 0 0 0";
|
|
Padding = "0 0 0 0";
|
|
AnchorTop = "1";
|
|
AnchorBottom = "0";
|
|
AnchorLeft = "1";
|
|
AnchorRight = "0";
|
|
willFirstRespond = "1";
|
|
hScrollBar = "dynamic";
|
|
vScrollBar = "alwaysOn";
|
|
lockHorizScroll = "false";
|
|
lockVertScroll = "false";
|
|
constantThumbHeight = "0";
|
|
childMargin = "0 0";
|
|
mouseWheelScrollSpeed = "-1";
|
|
|
|
new GuiTextListCtrl(JS_serverList) {
|
|
canSaveDynamicFields = "0";
|
|
Enabled = "1";
|
|
isContainer = "1";
|
|
Profile = "GuiTextArrayProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
Position = "1 1";
|
|
Extent = "485 8";
|
|
MinExtent = "8 8";
|
|
canSave = "1";
|
|
isDecoy = "0";
|
|
Visible = "1";
|
|
tooltipprofile = "GuiToolTipProfile";
|
|
hovertime = "1000";
|
|
enumerate = "0";
|
|
resizeCell = "1";
|
|
columns = "0 200 270 335 400";
|
|
fitParentWidth = "1";
|
|
clipColumnText = "0";
|
|
altCommand = "JoinServerDlg.join();";
|
|
};
|
|
};
|
|
new GuiTextEditCtrl() {
|
|
canSaveDynamicFields = "0";
|
|
Enabled = "1";
|
|
isContainer = "0";
|
|
Profile = "GuiTextEditProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
Position = "84 31";
|
|
Extent = "144 18";
|
|
MinExtent = "8 8";
|
|
canSave = "1";
|
|
isDecoy = "0";
|
|
Visible = "1";
|
|
Variable = "pref::Player::Name";
|
|
tooltipprofile = "GuiToolTipProfile";
|
|
hovertime = "1000";
|
|
Margin = "0 0 0 0";
|
|
Padding = "0 0 0 0";
|
|
AnchorTop = "1";
|
|
AnchorBottom = "0";
|
|
AnchorLeft = "1";
|
|
AnchorRight = "0";
|
|
maxLength = "255";
|
|
historySize = "0";
|
|
password = "0";
|
|
tabComplete = "0";
|
|
sinkAllKeyEvents = "0";
|
|
passwordMask = "*";
|
|
};
|
|
new GuiTextCtrl() {
|
|
canSaveDynamicFields = "0";
|
|
Enabled = "1";
|
|
isContainer = "0";
|
|
Profile = "GuiAutoSizeTextProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
Position = "12 31";
|
|
Extent = "63 18";
|
|
MinExtent = "8 8";
|
|
canSave = "1";
|
|
isDecoy = "0";
|
|
Visible = "1";
|
|
tooltipprofile = "GuiToolTipProfile";
|
|
hovertime = "1000";
|
|
Margin = "0 0 0 0";
|
|
Padding = "0 0 0 0";
|
|
AnchorTop = "1";
|
|
AnchorBottom = "0";
|
|
AnchorLeft = "1";
|
|
AnchorRight = "0";
|
|
text = "Player Name:";
|
|
maxLength = "255";
|
|
};
|
|
new GuiTextCtrl() {
|
|
canSaveDynamicFields = "0";
|
|
Enabled = "1";
|
|
isContainer = "0";
|
|
Profile = "GuiAutoSizeTextProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
Position = "269 59";
|
|
Extent = "36 18";
|
|
MinExtent = "8 8";
|
|
canSave = "1";
|
|
isDecoy = "0";
|
|
Visible = "1";
|
|
tooltipprofile = "GuiToolTipProfile";
|
|
hovertime = "1000";
|
|
Margin = "0 0 0 0";
|
|
Padding = "0 0 0 0";
|
|
AnchorTop = "1";
|
|
AnchorBottom = "0";
|
|
AnchorLeft = "1";
|
|
AnchorRight = "0";
|
|
text = "Players";
|
|
maxLength = "255";
|
|
};
|
|
new GuiTextCtrl() {
|
|
canSaveDynamicFields = "0";
|
|
Enabled = "1";
|
|
isContainer = "0";
|
|
Profile = "GuiAutoSizeTextProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
Position = "335 59";
|
|
Extent = "38 18";
|
|
MinExtent = "8 8";
|
|
canSave = "1";
|
|
isDecoy = "0";
|
|
Visible = "1";
|
|
tooltipprofile = "GuiToolTipProfile";
|
|
hovertime = "1000";
|
|
Margin = "0 0 0 0";
|
|
Padding = "0 0 0 0";
|
|
AnchorTop = "1";
|
|
AnchorBottom = "0";
|
|
AnchorLeft = "1";
|
|
AnchorRight = "0";
|
|
text = "Version";
|
|
maxLength = "255";
|
|
};
|
|
new GuiTextCtrl() {
|
|
canSaveDynamicFields = "0";
|
|
Enabled = "1";
|
|
isContainer = "0";
|
|
Profile = "GuiAutoSizeTextProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
Position = "412 59";
|
|
Extent = "28 18";
|
|
MinExtent = "8 8";
|
|
canSave = "1";
|
|
isDecoy = "0";
|
|
Visible = "1";
|
|
tooltipprofile = "GuiToolTipProfile";
|
|
hovertime = "1000";
|
|
Margin = "0 0 0 0";
|
|
Padding = "0 0 0 0";
|
|
AnchorTop = "1";
|
|
AnchorBottom = "0";
|
|
AnchorLeft = "1";
|
|
AnchorRight = "0";
|
|
text = "Game";
|
|
maxLength = "255";
|
|
};
|
|
new GuiTextCtrl() {
|
|
canSaveDynamicFields = "0";
|
|
Enabled = "1";
|
|
isContainer = "0";
|
|
Profile = "GuiAutoSizeTextProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
Position = "212 59";
|
|
Extent = "20 18";
|
|
MinExtent = "8 8";
|
|
canSave = "1";
|
|
isDecoy = "0";
|
|
Visible = "1";
|
|
tooltipprofile = "GuiToolTipProfile";
|
|
hovertime = "1000";
|
|
Margin = "0 0 0 0";
|
|
Padding = "0 0 0 0";
|
|
AnchorTop = "1";
|
|
AnchorBottom = "0";
|
|
AnchorLeft = "1";
|
|
AnchorRight = "0";
|
|
text = "Ping";
|
|
maxLength = "255";
|
|
};
|
|
new GuiTextCtrl() {
|
|
canSaveDynamicFields = "0";
|
|
Enabled = "1";
|
|
isContainer = "0";
|
|
Profile = "GuiAutoSizeTextProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
Position = "12 59";
|
|
Extent = "63 18";
|
|
MinExtent = "8 8";
|
|
canSave = "1";
|
|
isDecoy = "0";
|
|
Visible = "1";
|
|
tooltipprofile = "GuiToolTipProfile";
|
|
hovertime = "1000";
|
|
Margin = "0 0 0 0";
|
|
Padding = "0 0 0 0";
|
|
AnchorTop = "1";
|
|
AnchorBottom = "0";
|
|
AnchorLeft = "1";
|
|
AnchorRight = "0";
|
|
text = "Server Name";
|
|
maxLength = "255";
|
|
};
|
|
new GuiButtonCtrl() {
|
|
canSaveDynamicFields = "0";
|
|
Enabled = "1";
|
|
isContainer = "0";
|
|
Profile = "GuiButtonProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "top";
|
|
Position = "12 289";
|
|
Extent = "90 23";
|
|
MinExtent = "8 8";
|
|
canSave = "1";
|
|
isDecoy = "0";
|
|
Visible = "1";
|
|
Command = "JoinServerDlg.exit();";
|
|
tooltipprofile = "GuiToolTipProfile";
|
|
hovertime = "1000";
|
|
text = "< Back";
|
|
groupNum = "-1";
|
|
buttonType = "PushButton";
|
|
useMouseEvents = "0";
|
|
};
|
|
new GuiWindowCtrl(JS_queryStatus) {
|
|
canSaveDynamicFields = "0";
|
|
Enabled = "1";
|
|
isContainer = "1";
|
|
Profile = "GuiWindowProfile";
|
|
HorizSizing = "center";
|
|
VertSizing = "center";
|
|
Position = "105 135";
|
|
Extent = "310 50";
|
|
MinExtent = "8 8";
|
|
canSave = "1";
|
|
isDecoy = "0";
|
|
Visible = "0";
|
|
tooltipprofile = "GuiToolTipProfile";
|
|
hovertime = "1000";
|
|
resizeWidth = "0";
|
|
resizeHeight = "0";
|
|
canMove = "0";
|
|
canClose = "0";
|
|
canMinimize = "0";
|
|
canMaximize = "0";
|
|
canCollapse = "0";
|
|
text="Status";
|
|
|
|
new GuiButtonCtrl(JS_cancelQuery) {
|
|
canSaveDynamicFields = "0";
|
|
Enabled = "1";
|
|
isContainer = "0";
|
|
Profile = "GuiButtonProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
Position = "9 25";
|
|
Extent = "64 20";
|
|
MinExtent = "8 8";
|
|
canSave = "1";
|
|
isDecoy = "0";
|
|
Visible = "1";
|
|
Command = "JoinServerDlg.cancel();";
|
|
tooltipprofile = "GuiToolTipProfile";
|
|
hovertime = "1000";
|
|
text = "Cancel!";
|
|
groupNum = "-1";
|
|
buttonType = "PushButton";
|
|
useMouseEvents = "0";
|
|
};
|
|
new GuiProgressCtrl(JS_statusBar) {
|
|
canSaveDynamicFields = "0";
|
|
Enabled = "1";
|
|
isContainer = "0";
|
|
Profile = "GuiProgressProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
Position = "84 25";
|
|
Extent = "207 20";
|
|
MinExtent = "8 8";
|
|
canSave = "1";
|
|
isDecoy = "0";
|
|
Visible = "1";
|
|
tooltipprofile = "GuiToolTipProfile";
|
|
hovertime = "1000";
|
|
Margin = "0 0 0 0";
|
|
Padding = "0 0 0 0";
|
|
AnchorTop = "1";
|
|
AnchorBottom = "0";
|
|
AnchorLeft = "1";
|
|
AnchorRight = "0";
|
|
maxLength = "1024";
|
|
};
|
|
new GuiTextCtrl(JS_statusText) {
|
|
canSaveDynamicFields = "0";
|
|
Enabled = "1";
|
|
isContainer = "0";
|
|
Profile = "GuiProgressTextProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
Position = "85 25";
|
|
Extent = "205 20";
|
|
MinExtent = "8 8";
|
|
canSave = "1";
|
|
isDecoy = "0";
|
|
Visible = "1";
|
|
tooltipprofile = "GuiToolTipProfile";
|
|
hovertime = "1000";
|
|
Margin = "0 0 0 0";
|
|
Padding = "0 0 0 0";
|
|
AnchorTop = "1";
|
|
AnchorBottom = "0";
|
|
AnchorLeft = "1";
|
|
AnchorRight = "0";
|
|
text = "Querying master server";
|
|
maxLength = "255";
|
|
};
|
|
};
|
|
new GuiTextCtrl(JS_status) {
|
|
canSaveDynamicFields = "0";
|
|
Profile = "GuiAutoSizeTextProfile";
|
|
HorizSizing = "right";
|
|
VertSizing = "bottom";
|
|
Position = "245 31";
|
|
Extent = "177 19";
|
|
MinExtent = "8 8";
|
|
text = "";
|
|
visible = "1";
|
|
maxLength = "255";
|
|
};
|
|
};
|
|
};
|
|
//--- OBJECT WRITE END ---
|
|
|
|
function JoinServerDlg::onWake()
|
|
{
|
|
// Double check the status. Tried setting this the control
|
|
// inactive to start with, but that didn't seem to work.
|
|
JS_joinServer.setActive(JS_serverList.rowCount() > 0);
|
|
}
|
|
|
|
//----------------------------------------
|
|
function JoinServerDlg::query(%this)
|
|
{
|
|
queryMasterServer(
|
|
0, // Query flags
|
|
$Client::GameTypeQuery, // gameTypes
|
|
$Client::MissionTypeQuery, // missionType
|
|
0, // minPlayers
|
|
100, // maxPlayers
|
|
0, // maxBots
|
|
2, // regionMask
|
|
0, // maxPing
|
|
100, // minCPU
|
|
0 // filterFlags
|
|
);
|
|
}
|
|
|
|
//----------------------------------------
|
|
function JoinServerDlg::queryLan(%this)
|
|
{
|
|
queryLANServers(
|
|
$pref::Net::Port, // lanPort for local queries
|
|
0, // Query flags
|
|
$Client::GameTypeQuery, // gameTypes
|
|
$Client::MissionTypeQuery, // missionType
|
|
0, // minPlayers
|
|
100, // maxPlayers
|
|
0, // maxBots
|
|
2, // regionMask
|
|
0, // maxPing
|
|
100, // minCPU
|
|
0 // filterFlags
|
|
);
|
|
}
|
|
|
|
//----------------------------------------
|
|
function JoinServerDlg::cancel(%this)
|
|
{
|
|
cancelServerQuery();
|
|
JS_queryStatus.setVisible(false);
|
|
}
|
|
|
|
|
|
//----------------------------------------
|
|
function JoinServerDlg::join(%this)
|
|
{
|
|
cancelServerQuery();
|
|
%index = JS_serverList.getSelectedId();
|
|
|
|
// The server info index is stored in the row along with the
|
|
// rest of displayed info.
|
|
|
|
if( setServerInfo( %index ) )
|
|
{
|
|
Canvas.setContent("LoadingGui");
|
|
LoadingProgress.setValue(1);
|
|
LoadingProgressTxt.setValue("WAITING FOR SERVER");
|
|
Canvas.repaint();
|
|
|
|
%conn = new GameConnection(ServerConnection);
|
|
%conn.setConnectArgs($pref::Player::Name);
|
|
%conn.setJoinPassword($Client::Password);
|
|
%conn.connect($ServerInfo::Address);
|
|
}
|
|
}
|
|
|
|
//----------------------------------------
|
|
function JoinServerDlg::refresh(%this)
|
|
{
|
|
cancelServerQuery();
|
|
%index= JS_serverList.getSelectedId();
|
|
|
|
// The server info index is stored in the row along with the
|
|
// rest of displayed info.
|
|
if( setServerInfo( %index ) )
|
|
querySingleServer( $ServerInfo::Address, 0 );
|
|
}
|
|
|
|
//----------------------------------------
|
|
function JoinServerDlg::refreshSelectedServer( %this )
|
|
{
|
|
querySingleServer( $JoinGameAddress, 0 );
|
|
}
|
|
|
|
//----------------------------------------
|
|
function JoinServerDlg::exit(%this)
|
|
{
|
|
cancelServerQuery();
|
|
|
|
Canvas.popDialog(JoinServerDlg);
|
|
}
|
|
|
|
//----------------------------------------
|
|
function JoinServerDlg::update(%this)
|
|
{
|
|
// Copy the servers into the server list.
|
|
JS_queryStatus.setVisible(false);
|
|
JS_serverList.clear();
|
|
%sc = getServerCount();
|
|
for( %i = 0; %i < %sc; %i ++ ) {
|
|
setServerInfo(%i);
|
|
JS_serverList.addRow( %i,
|
|
$ServerInfo::Name TAB
|
|
$ServerInfo::Ping TAB
|
|
$ServerInfo::PlayerCount @ "/" @ $ServerInfo::MaxPlayers TAB
|
|
$ServerInfo::Version TAB
|
|
$ServerInfo::MissionName
|
|
);
|
|
}
|
|
JS_serverList.sort(0);
|
|
JS_serverList.setSelectedRow(0);
|
|
JS_serverList.scrollVisible(0);
|
|
|
|
JS_joinServer.setActive(JS_serverList.rowCount() > 0);
|
|
}
|
|
|
|
//----------------------------------------
|
|
function onServerQueryStatus(%status, %msg, %value)
|
|
{
|
|
echo("ServerQuery: " SPC %status SPC %msg SPC %value);
|
|
// Update query status
|
|
// States: start, update, ping, query, done
|
|
// value = % (0-1) done for ping and query states
|
|
if (!JS_queryStatus.isVisible())
|
|
JS_queryStatus.setVisible(true);
|
|
|
|
switch$ (%status) {
|
|
case "start":
|
|
JS_joinServer.setActive(false);
|
|
JS_queryMaster.setActive(false);
|
|
JS_statusText.setText(%msg);
|
|
JS_statusBar.setValue(0);
|
|
JS_serverList.clear();
|
|
|
|
case "ping":
|
|
JS_statusText.setText("Ping Servers");
|
|
JS_statusBar.setValue(%value);
|
|
|
|
case "query":
|
|
JS_statusText.setText("Query Servers");
|
|
JS_statusBar.setValue(%value);
|
|
|
|
case "done":
|
|
JS_queryMaster.setActive(true);
|
|
JS_queryStatus.setVisible(false);
|
|
JS_status.setText(%msg);
|
|
JoinServerDlg.update();
|
|
}
|
|
}
|