//--- 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); }