KevinBlast/marble/client/ui/startMissionGui.gui

219 lines
5.7 KiB
Plaintext
Raw Permalink Normal View History

2024-03-10 20:27:00 -04:00
//--- 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);
}