219 lines
5.7 KiB
Plaintext
219 lines
5.7 KiB
Plaintext
|
//--- OBJECT WRITE BEGIN ---
|
||
|
new GuiChunkedBitmapCtrl(startMissionGui) {
|
||
|
profile = "GuiContentProfile";
|
||
|
horizSizing = "width";
|
||
|
vertSizing = "height";
|
||
|
position = "0 0";
|
||
|
extent = "640 480";
|
||
|
minExtent = "8 8";
|
||
|
visible = "1";
|
||
|
helpTag = "0";
|
||
|
bitmap = "./background.jpg";
|
||
|
useVariable = "0";
|
||
|
tile = "0";
|
||
|
|
||
|
new GuiControl() {
|
||
|
profile = "GuiWindowProfile";
|
||
|
horizSizing = "center";
|
||
|
vertSizing = "center";
|
||
|
position = "60 74";
|
||
|
extent = "455 308";
|
||
|
minExtent = "8 8";
|
||
|
visible = "1";
|
||
|
helpTag = "0";
|
||
|
|
||
|
new GuiTextCtrl() {
|
||
|
profile = "GuiTextProfile";
|
||
|
horizSizing = "right";
|
||
|
vertSizing = "bottom";
|
||
|
position = "12 36";
|
||
|
extent = "90 20";
|
||
|
minExtent = "8 8";
|
||
|
visible = "1";
|
||
|
helpTag = "0";
|
||
|
text = "Select Mission:";
|
||
|
maxLength = "255";
|
||
|
};
|
||
|
new GuiCheckBoxCtrl(ML_isMultiplayer) {
|
||
|
profile = "GuiCheckBoxProfile";
|
||
|
horizSizing = "right";
|
||
|
vertSizing = "bottom";
|
||
|
position = "155 272";
|
||
|
extent = "147 23";
|
||
|
minExtent = "8 8";
|
||
|
visible = "1";
|
||
|
variable = "pref::HostMultiPlayer";
|
||
|
helpTag = "0";
|
||
|
text = "Multiplayer Mission";
|
||
|
maxLength = "255";
|
||
|
};
|
||
|
new GuiButtonCtrl() {
|
||
|
profile = "GuiButtonProfile";
|
||
|
horizSizing = "right";
|
||
|
vertSizing = "bottom";
|
||
|
position = "320 271";
|
||
|
extent = "127 23";
|
||
|
minExtent = "8 8";
|
||
|
visible = "1";
|
||
|
command = "SM_StartMission();";
|
||
|
helpTag = "0";
|
||
|
text = "Launch Mission";
|
||
|
};
|
||
|
new GuiScrollCtrl() {
|
||
|
profile = "GuiScrollProfile";
|
||
|
horizSizing = "right";
|
||
|
vertSizing = "bottom";
|
||
|
position = "10 62";
|
||
|
extent = "436 200";
|
||
|
minExtent = "8 8";
|
||
|
visible = "1";
|
||
|
helpTag = "0";
|
||
|
willFirstRespond = "1";
|
||
|
hScrollBar = "dynamic";
|
||
|
vScrollBar = "alwaysOn";
|
||
|
constantThumbHeight = "0";
|
||
|
defaultLineHeight = "15";
|
||
|
childMargin = "0 0";
|
||
|
|
||
|
new GuiTextListCtrl(SM_missionList) {
|
||
|
profile = "GuiTextArrayProfile";
|
||
|
horizSizing = "right";
|
||
|
vertSizing = "bottom";
|
||
|
position = "0 0";
|
||
|
extent = "394 54";
|
||
|
minExtent = "8 8";
|
||
|
visible = "1";
|
||
|
helpTag = "0";
|
||
|
enumerate = "0";
|
||
|
resizeCell = "1";
|
||
|
columns = "0";
|
||
|
fitParentWidth = "1";
|
||
|
clipColumnText = "0";
|
||
|
noDuplicates = "false";
|
||
|
};
|
||
|
};
|
||
|
new GuiTextEditCtrl() {
|
||
|
profile = "GuiTextEditProfile";
|
||
|
horizSizing = "right";
|
||
|
vertSizing = "bottom";
|
||
|
position = "98 15";
|
||
|
extent = "134 16";
|
||
|
minExtent = "8 8";
|
||
|
visible = "1";
|
||
|
variable = "pref::Player::Name";
|
||
|
helpTag = "0";
|
||
|
maxLength = "255";
|
||
|
historySize = "0";
|
||
|
password = "0";
|
||
|
tabComplete = "0";
|
||
|
};
|
||
|
new GuiTextCtrl() {
|
||
|
profile = "GuiTextProfile";
|
||
|
horizSizing = "right";
|
||
|
vertSizing = "bottom";
|
||
|
position = "12 11";
|
||
|
extent = "79 20";
|
||
|
minExtent = "8 8";
|
||
|
visible = "1";
|
||
|
helpTag = "0";
|
||
|
text = "Player Name:";
|
||
|
maxLength = "255";
|
||
|
};
|
||
|
new GuiButtonCtrl() {
|
||
|
profile = "GuiButtonProfile";
|
||
|
horizSizing = "right";
|
||
|
vertSizing = "bottom";
|
||
|
position = "10 272";
|
||
|
extent = "127 23";
|
||
|
minExtent = "8 8";
|
||
|
visible = "1";
|
||
|
command = "Canvas.setContent(mainMenuGui);";
|
||
|
helpTag = "0";
|
||
|
text = "<< Back";
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
//--- OBJECT WRITE END ---
|
||
|
|
||
|
|
||
|
//----------------------------------------
|
||
|
function SM_StartMission()
|
||
|
{
|
||
|
%id = SM_missionList.getSelectedId();
|
||
|
%mission = getField(SM_missionList.getRowTextById(%id), 1);
|
||
|
|
||
|
//
|
||
|
if ($pref::HostMultiPlayer)
|
||
|
%serverType = "MultiPlayer";
|
||
|
else
|
||
|
%serverType = "SinglePlayer";
|
||
|
|
||
|
// Marble options
|
||
|
$RaceType = 1;
|
||
|
// $RaceIndex = $RaceIndex + $RaceType;
|
||
|
|
||
|
//
|
||
|
createServer(%serverType, %mission);
|
||
|
%conn = new GameConnection(ServerConnection);
|
||
|
RootGroup.add(ServerConnection);
|
||
|
%conn.setConnectArgs($pref::Player::Name);
|
||
|
%conn.setJoinPassword($Client::Password);
|
||
|
%conn.connectLocal();
|
||
|
}
|
||
|
|
||
|
|
||
|
//----------------------------------------
|
||
|
function startMissionGui::onWake()
|
||
|
{
|
||
|
SM_missionList.clear();
|
||
|
%i = 0;
|
||
|
for(%file = findFirstFile($Server::MissionFileSpec);
|
||
|
%file !$= ""; %file = findNextFile($Server::MissionFileSpec))
|
||
|
if (strStr(%file, "CVS/") == -1 && strStr(%file, "common/") == -1)
|
||
|
SM_missionList.addRow(%i++, getMissionDisplayName(%file) @ "\t" @ %file );
|
||
|
SM_missionList.sort(0);
|
||
|
SM_missionList.setSelectedRow(0);
|
||
|
SM_missionList.scrollVisible(0);
|
||
|
}
|
||
|
|
||
|
|
||
|
//----------------------------------------
|
||
|
function getMissionDisplayName( %missionFile )
|
||
|
{
|
||
|
%file = new FileObject();
|
||
|
|
||
|
%MissionInfoObject = "";
|
||
|
|
||
|
if ( %file.openForRead( %missionFile ) ) {
|
||
|
%inInfoBlock = false;
|
||
|
|
||
|
while ( !%file.isEOF() ) {
|
||
|
%line = %file.readLine();
|
||
|
%line = trim( %line );
|
||
|
|
||
|
if( %line $= "new ScriptObject(MissionInfo) {" )
|
||
|
%inInfoBlock = true;
|
||
|
else if( %inInfoBlock && %line $= "};" ) {
|
||
|
%inInfoBlock = false;
|
||
|
%MissionInfoObject = %MissionInfoObject @ %line;
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
if( %inInfoBlock )
|
||
|
%MissionInfoObject = %MissionInfoObject @ %line @ " ";
|
||
|
}
|
||
|
|
||
|
%file.close();
|
||
|
}
|
||
|
%MissionInfoObject = "%MissionInfoObject = " @ %MissionInfoObject;
|
||
|
eval( %MissionInfoObject );
|
||
|
|
||
|
%file.delete();
|
||
|
|
||
|
if( %MissionInfoObject.name !$= "" )
|
||
|
return %MissionInfoObject.name;
|
||
|
else
|
||
|
return fileBase(%missionFile);
|
||
|
}
|
||
|
|