1
0
forked from 0ad/0ad
0ad/binaries/data/mods/official/gui/test/2_mainmenu.xml

513 lines
35 KiB
XML

<?xml version="1.0" encoding="iso-8859-1" standalone="no" ?>
<!DOCTYPE objects SYSTEM "../gui.dtd">
<objects>
<!--
==========================================
- MAIN MENU -
==========================================
-->
<object type="empty" name="PREGAME_GUI" size="0 0 100% 100%" z="1" hidden="false">
<action on="Load"><![CDATA[
// Play main 0 A.D. theme when the main menu starts.
curr_music = newRandomSound("music", "menu");
curr_music.loop();
]]></action>
<object type="image" name="pregame_mainmenu_background_image" sprite="pregame_mainmenu_background" size="0 0 100% 100%" z="100" hidden="false" ghost="true"/>
<object type="button" name="pregame_mainmenu_sp_button" sprite_over="pregame_mainmenu_spbt" size="52.9296875% 23.95833333% 67.578125% 42.317708333%" z="101" hidden="false"
tooltip_style="pregame_mainmenu_tooltip" tooltip="Want to move some Dudes around or test something? Click here to start a new game on the default map.">
<action on="Press"><![CDATA[
GUIObjectUnhide("pregame_subwindow_bkg");
GUIObjectUnhide("pregame_sp_mapsel");
]]></action>
</object>
<object type="button" name="pregame_mainmenu_mp_button" sprite_over="pregame_mainmenu_mpbt" size="61.03515625% 48.6979166% 74.12109375% 66.40625%" z="101" hidden="false"
tooltip_style="pregame_mainmenu_tooltip" tooltip="Tired of playing with yourself? Fight against one or more human players in a multiplayer game.">
<action on="Press"><![CDATA[
getGUIObjectByName("pregame_subwindow_bkg").hidden = false;
getGUIObjectByName("pregame_mp_modesel").hidden = false;
]]></action>
</object>
<object type="button" name="pregame_mainmenu_ed_button" sprite_over="pregame_mainmenu_edbt" size="43.75% 61.84895833% 63.4765625% 82.682291667%" z="101" hidden="false"
tooltip_style="pregame_mainmenu_tooltip" tooltip="Come forth and witness a totally non-functioning Editor, a mere shadow of its potential self!">
<action on="Press"><![CDATA[
GUIObjectHide("PREGAME_GUI");
GUIObjectUnhide("ATLAS_GUI");
]]></action>
</object>
<object type="image" name="pregame_mainmenu_0ad_logo" sprite="pregame_mainmenu_0ad_logo_480x218" size="21.1914062% 3.125% 68.0664062% 31.5104166%" z="102" hidden="false" ghost="true"/>
<object type="text" name="pregame_mainmenu_versionnumber" size="43% 24% 43%+282 24%+25" z="103" textcolor="237 227 167" font="prospero16" hidden="false" ghost="true">
{buildTime}
<action on="Load"><![CDATA[
this.caption = "Build: " + buildTime(0) + " " + getLanguageID();
]]></action>
</object>
<object type="button" name="pregame_mainmenu_wfg_logo" sprite="pregame_mainmenu_wfg_logo_256x64" size="10 91.666666%-30 25.9765% 100%-30" z="102" hidden="false"
tooltip_style="pregame_mainmenu_tooltip" tooltip="These are the guys who made this game. Visit them at http://www.wildfiregames.com/0ad/">
<action on="Press"><![CDATA[
btCode = new Array("GUIObjectHide('mb_main');");
messageBox(420, 420, "[icon=0ad_icon] A.D. - History Is Yours For The Taking\nby Wildfire Games, 2002-2005\n\nVersion 0.1.2 (PASAP II)\n\n" +
"This is a confidental pre-release version of the game!\n\nVisit http://www.wildfiregames.com/0ad/ " +
"to learn more about [icon=0ad_icon] A.D., participate in the community and meet the developers.\n\n", "About [icon=0ad_icon] A.D.", 2, new Array(), btCode);
]]></action>
</object>
<object type="text" name="pregame_mainmenu_tooltip" sprite="pregame_mainmenu_tooltip_background" size="69% 6.3802% 97.0703125% 28.125%" font="prospero16" textcolor="255 255 255" z="104" hidden="true" ghost="true">tooltipText</object>
<object type="button" name="exit_button" sprite="exit_sprite" sprite_over="exit_sprite_over" size="100%-18 2 100%-2 18" z="104" hidden="false"
tooltip_style="pregame_mainmenu_tooltip" tooltip="Tired of 0 A.D. ? Click here to leave and reenter the real world.">
<action on="Press"><![CDATA[
btCaptions = new Array("Yes, let me out!", "Nooooo!");
btCode = new Array("exit();", "");
messageBox(400, 200, "Do you really want to quit [icon=0ad_icon] A.D.? This will cause a sudden return to reality.", "Confirmation", 0, btCaptions, btCode);
]]></action>
</object>
</object>
<object type="empty" name="pregame_subwindows" size="0 0 100% 100%" z="1" hidden="false">
<object type="image" name="pregame_subwindow_bkg" sprite="translucent_background" size="0 0 100% 100%" z="105" hidden="true"/>
<!--
===============================================
- MULTIPLAYER MODE SELECTION SCREEN -
===============================================
-->
<object type="image" size="50%-200 50%-90 50%+200 50%+90" name="pregame_mp_modesel" sprite="0ad_window" z="106" hidden="true">
<!--<action on="Load"><![CDATA[
setSizeCoord("pregame_mp_modesel", -200, -200, 200, 200, mid_screen, mid_screen, mid_screen, mid_screen);
]]></action>-->
<object type="button" name="pregame_mp_modesel_titlebar" size="50%-150 0%-25 50%+150 0%-9" absolute="false" sprite="0ad_window_title" font="prospero18" z="165" text_align="center" text_valign="center">
<action on="Load"><![CDATA[
getGUIObjectByName("pregame_mp_modesel_titlebar").caption = "Multiplayer";
/*setSizeCoord("pregame_mp_modesel_titlebar", crd_pregame_iphost_titlebar_x, crd_pregame_iphost_titlebar_y,
crd_pregame_iphost_titlebar_x+crd_pregame_iphost_titlebar_width, crd_pregame_iphost_titlebar_y+crd_pregame_iphost_titlebar_height,
mid_screen, mid_screen, mid_screen, mid_screen);*/
]]></action>
</object>
<object type="button" name="pregame_mp_modesel_exit_button" size="100%+9 0%-25 100%+25 0%-9" sprite="exit_sprite" sprite_over="exit_sprite_over" absolute="false">
<action on="Press"><![CDATA[
getGUIObjectByName("pregame_subwindow_bkg").hidden = true;
getGUIObjectByName("pregame_mp_modesel").hidden = true;
]]></action>
</object>
<!-- PLAYER NAME controls -->
<object type="text" name="pregame_mp_modesel_txt1" size="0 0 400 30" absolute="false">
Please enter the Player name you would like to use during the game.
</object>
<object type="text" name="pregame_mp_modesel_playername_txt" font="tahoma16" absolute="false" size="0 40 200 60" textcolor="0 0 0">
Player Name (temporary):
</object>
<object type="input" name="pregame_mp_modesel_playername" sprite="only_black_border" absolute="false" size="220 40 350 60" textcolor="0 0 0">
Player
</object>
<!-- END PLAYER NAME controls -->
<object type="image" name="pregame_mp_modesel_divider1" size="10 80 100%-10 80" absolute="false" sprite="only_black_border" />
<!-- HOST / JOIN CONTROLS -->
<object type="text" name="pregame_mp_modesel_txt" size="0 100 400 120" absolute="false">
Please select whether you want to join a game or host your own game.
</object>
<object type="text" name="pregame_mp_modesel_hostjoin_txt" size="0 140 200 170" text_valign="center" font="tahoma16" absolute="false" textcolor="0 0 0">
Game Mode
</object>
<object type="button" name="pregame_mp_modesel_join_button" size="130 140 230 170" sprite="message_box_button_normal" sprite_over="message_box_button_over" absolute="false" text_align="center" text_valign="center">
Join Game
<action on="Press"><![CDATA[
// rudimentary client connection code; finally working now :)
GUIObjectHide("pregame_mp_modesel");
//GUIObjectHide("pregame_subwindow_bkg");
GUIObjectUnhide("pregame_mp_join");
]]></action>
</object>
<!-- need code for the game start procedure here -->
<object type="button" name="pregame_mp_modesel_host_button" size="250 140 350 170" sprite="message_box_button_normal" sprite_over="message_box_button_over" absolute="false" text_align="center" text_valign="center">
Host Game
<action on="Press"><![CDATA[
GUIObjectHide("pregame_mp_modesel");
GUIObjectUnhide("pregame_mp_host");
]]></action>
</object>
<!-- END HOST / JOIN CONTROLS -->
</object>
<!--
===============================================
- MULTIPLAYER HOST GAME SCREEN -
===============================================
-->
<object type="image" size="50%-190 50%-120 50%+190 50%+120" name="pregame_mp_host" sprite="0ad_window" z="106" hidden="true">
<!--<action on="Load"><![CDATA[
setSizeCoord("pregame_mp_modesel", -200, -200, 200, 200, mid_screen, mid_screen, mid_screen, mid_screen);
]]></action>-->
<object type="button" name="pregame_mp_host_titlebar" size="50%-150 0%-25 50%+150 0%-9" absolute="false" sprite="0ad_window_title" font="prospero18" z="165" text_align="center" text_valign="center">
<action on="Load"><![CDATA[
getGUIObjectByName("pregame_mp_host_titlebar").caption = "Host a game";
/*setSizeCoord("pregame_mp_modesel_titlebar", crd_pregame_iphost_titlebar_x, crd_pregame_iphost_titlebar_y,
crd_pregame_iphost_titlebar_x+crd_pregame_iphost_titlebar_width, crd_pregame_iphost_titlebar_y+crd_pregame_iphost_titlebar_height,
mid_screen, mid_screen, mid_screen, mid_screen);*/
]]></action>
</object>
<object type="button" name="pregame_mp_host_exit_button" size="100%+9 0%-25 100%+25 0%-9" sprite="exit_sprite" sprite_over="exit_sprite_over" absolute="false">
<action on="Press"><![CDATA[
getGUIObjectByName("pregame_subwindow_bkg").hidden = true;
getGUIObjectByName("pregame_mp_host").hidden = true;
]]></action>
</object>
<!-- SERVER/GAME NAME controls -->
<object type="text" name="pregame_mp_host_txt1" size="0 0 400 30" absolute="false">
Setting up your server.
</object>
<object type="text" name="pregame_mp_host_gamename_txt" font="tahoma16" absolute="false" size="0 40 200 60" textcolor="0 0 0">
Game (Server) Name:
</object>
<object type="input" name="pregame_mp_host_gamename" sprite="only_black_border" absolute="false" size="220 40 370 60" textcolor="0 0 0">
My Game
</object>
<!-- END SERVER/GAME NAME controls -->
<!-- WELCOME MESSAGE controls -->
<object type="text" name="pregame_mp_host_welcomemsg_txt" font="tahoma16" absolute="false" size="0 70 200 90" textcolor="0 0 0">
Welcome Message:
</object>
<object type="text" name="pregame_mp_host_txt2" size="0 100 200 180" absolute="false">
You can enter some message which is displayed to new players upon joining here.
</object>
<object type="input" name="pregame_mp_host_welcomemsg" font="verdana9" sprite="only_black_border" absolute="false" size="220 70 370 180" textcolor="0 0 0">
Uhm, welcome to my game. Have fun!
</object>
<!-- END WELCOME MESSAGE controls -->
<object type="button" name="pregame_mp_host_setup_button" size="50%-125 200 50%-25 230" sprite="message_box_button_normal" sprite_over="message_box_button_over" absolute="false" text_align="center" text_valign="center">
Continue
<action on="Press"><![CDATA[
var gameName = getGUIObjectByName("pregame_mp_host_gamename").caption;
GUIObjectHide("pregame_mp_host");
GUIObjectUnhide("pregame_mp_setup_host");
// Set up the server
var server = createServer();
// Welcome message
server.welcomeMessage = getGUIObjectByName("pregame_mp_host_welcomemsg").caption;
// Server Name
server.serverName = getGUIObjectByName("pregame_mp_host_gamename").caption;
// start listening
var res = server.open();
if (!res) {
messageBox(400, 200, "Error creating server.", "Error", 0, new array(), new array());
}
server.onClientConnect = function (event) {
console.write("A new client has successfully connected! ID: " + event.id + ", Name: " + event.name + ", Session: " + event.session);
var playerSlot = g_GameAttributes.getOpenSlot();
// assign a slot
playerSlot.assignToSession(event.session);
console.write("slot: " + playerSlot.player);
// need to refresh the dialog control data here
}
]]></action>
</object>
<object type="button" name="pregame_mp_host_back_button" size="50%+25 200 50%+125 230" sprite="message_box_button_normal" sprite_over="message_box_button_over" absolute="false" text_align="center" text_valign="center">
Back
<action on="Press"><![CDATA[
GUIObjectHide("pregame_mp_host");
GUIObjectUnhide("pregame_mp_modesel");
]]></action>
</object>
<!-- END HOST GAME SCREEN -->
</object>
<!--
===============================================
- MULTIPLAYER JOIN GAME SCREEN -
===============================================
-->
<object type="image" size="50%-190 50%-120 50%+190 50%+120" name="pregame_mp_join" sprite="0ad_window" z="106" hidden="true">
<!--<action on="Load"><![CDATA[
setSizeCoord("pregame_mp_modesel", -200, -200, 200, 200, mid_screen, mid_screen, mid_screen, mid_screen);
]]></action>-->
<object type="button" name="pregame_mp_join_titlebar" size="50%-150 0%-25 50%+150 0%-9" absolute="false" sprite="0ad_window_title" font="prospero18" z="165" text_align="center" text_valign="center">
<action on="Load"><![CDATA[
getGUIObjectByName("pregame_mp_join_titlebar").caption = "Join a game";
/*setSizeCoord("pregame_mp_modesel_titlebar", crd_pregame_iphost_titlebar_x, crd_pregame_iphost_titlebar_y,
crd_pregame_iphost_titlebar_x+crd_pregame_iphost_titlebar_width, crd_pregame_iphost_titlebar_y+crd_pregame_iphost_titlebar_height,
mid_screen, mid_screen, mid_screen, mid_screen);*/
]]></action>
</object>
<object type="button" name="pregame_mp_join_exit_button" size="100%+9 0%-25 100%+25 0%-9" sprite="exit_sprite" sprite_over="exit_sprite_over" absolute="false">
<action on="Press"><![CDATA[
getGUIObjectByName("pregame_subwindow_bkg").hidden = true;
getGUIObjectByName("pregame_mp_join").hidden = true;
]]></action>
</object>
<!-- SERVER NAME/IP controls -->
<object type="text" name="pregame_mp_join_txt1" size="0 0 400 30" absolute="false">
Joining an existing game.
</object>
<object type="text" name="pregame_mp_join_serverip_txt" font="tahoma16" absolute="false" size="0 40 200 60" textcolor="0 0 0">
Server Hostname or IP:
</object>
<object type="input" name="pregame_mp_join_serverip" sprite="only_black_border" absolute="false" size="220 40 370 60" textcolor="0 0 0">
127.0.0.1
</object>
<!-- END SERVER NAME/IP controls -->
<object type="button" name="pregame_mp_join_setup_button" size="50%-125 200 50%-25 230" sprite="message_box_button_normal" sprite_over="message_box_button_over" absolute="false" text_align="center" text_valign="center">
Continue
<action on="Press"><![CDATA[
// insert code for joining game using the given parameters here
// creating the client instance
var client = createClient();
client.playerName=getGUIObjectByName("pregame_mp_modesel_playername").caption;
// we've got a fixed IP (bound to localhost) here for testing purposes
//var success = client.beginConnect("127.0.0.1");
var success = client.beginConnect(ipAdress);
if(!success) {
// need proper message box code here later
console.write("Failed to connect to server. Please check the network connection.");
} else {
// see above
console.write("Client successfully connected.");
}
]]></action>
</object>
<object type="button" name="pregame_mp_join_back_button" size="50%+25 200 50%+125 230" sprite="message_box_button_normal" sprite_over="message_box_button_over" absolute="false" text_align="center" text_valign="center">
Back
<action on="Press"><![CDATA[
GUIObjectHide("pregame_mp_join");
GUIObjectUnhide("pregame_mp_modesel");
]]></action>
</object>
<!-- END HOST GAME SCREEN -->
</object>
<!--
===============================================
- MULTIPLAYER SESSION SETUP SCREEN -
===============================================
-->
<object type="image" size="50%-400 50%-300 50%+400 50%+300" name="pregame_mp_setup_host" sprite="0ad_window" z="106" hidden="true">
<action on="Load"><![CDATA[
]]></action>
<object type="button" name="pregame_mp_setup_host_titlebar" size="50%-250 0%-25 50%+250 0%-9" absolute="false" sprite="0ad_window_title" font="prospero18" z="165" text_align="center" text_valign="center">
<action on="Load"><![CDATA[
getGUIObjectByName("pregame_mp_setup_host_titlebar").caption = "Hosting: " + getGUIObjectByName("pregame_mp_host_gamename").caption;
]]></action>
</object>
<object type="button" name="pregame_mp_setup_host_exit_button" size="100%+9 0%-25 100%+25 0%-9" sprite="exit_sprite" sprite_over="exit_sprite_over" absolute="false">
<action on="Press"><![CDATA[
getGUIObjectByName("pregame_subwindow_bkg").hidden = true;
getGUIObjectByName("pregame_mp_setup_host").hidden = true;
]]></action>
</object>
<!-- PLAYER SLOTS -->
<object type="text" name="pregame_mp_setup_host_playerhead" size="30 10 320 40" absolute="false" font="giovanni22bold" text_align="center" textcolor="0 0 0">
Player Slots
</object>
<object type="text" name="pregame_mp_setup_host_p1_txt" size="30 50 320 80" absolute="false" font="tahoma16" text_align="left" textcolor="0 0 0">
Player1
<action on="Load"><![CDATA[
getGUIObjectByName("pregame_mp_setup_host_p1_txt").caption = "P1: " + getGUIObjectByName("pregame_mp_modesel_playername").caption + " (Host)";
]]></action>
</object>
<object type="text" name="pregame_mp_setup_host_p2_txt" size="30 90 320 120" absolute="false" font="tahoma16" text_align="left" textcolor="0 0 0">
Player2
<action on="Load"><![CDATA[
getGUIObjectByName("pregame_mp_setup_host_p2_txt").caption = "P2: Open";
]]></action>
</object>
<object type="text" name="pregame_mp_setup_host_p3_txt" size="30 130 320 160" absolute="false" font="tahoma16" text_align="left" textcolor="0 0 0">
Player3
<action on="Load"><![CDATA[
getGUIObjectByName("pregame_mp_setup_host_p3_txt").caption = "P3: Open";
]]></action>
</object>
<object type="text" name="pregame_mp_setup_host_p4_txt" size="30 170 320 200" absolute="false" font="tahoma16" text_align="left" textcolor="0 0 0">
Player4
<action on="Load"><![CDATA[
getGUIObjectByName("pregame_mp_setup_host_p4_txt").caption = "P4: Open";
]]></action>
</object>
<object type="text" name="pregame_mp_setup_host_p5_txt" size="30 210 320 240" absolute="false" font="tahoma16" text_align="left" textcolor="0 0 0">
Player5
<action on="Load"><![CDATA[
getGUIObjectByName("pregame_mp_setup_host_p5_txt").caption = "P5: Open";
]]></action>
</object>
<object type="text" name="pregame_mp_setup_host_p6_txt" size="30 250 320 280" absolute="false" font="tahoma16" text_align="left" textcolor="0 0 0">
Player6
<action on="Load"><![CDATA[
getGUIObjectByName("pregame_mp_setup_host_p6_txt").caption = "P6: Open";
]]></action>
</object>
<!-- END PLAYER SLOTS -->
<!-- MAP NAME CONTROLS - TEMPORARY -->
<object type="text" name="pregame_mp_setup_host_mapname_txt" size="400 32 590 52" absolute="false" font="tahoma16" text_align="right" textcolor="0 0 0">
Map name:
</object>
<object type="input" name="pregame_mp_setup_host_mapname" size="600 32 750 52" sprite="only_black_border" absolute="false">
gathertest
</object>
<!-- END MAP NAME CONTROLS -->
<!-- BUTTONS -->
<object type="button" name="pregame_mp_setup_start_button" size="50%-125 540 50%-25 570" sprite="message_box_button_normal" sprite_over="message_box_button_over" absolute="false" text_align="center" text_valign="center">
Start!
<action on="Press"><![CDATA[
// Check wheter we have a correct file extension, to avoid crashes
var mapName = getGUIObjectByName("pregame_mp_setup_host_mapname").caption;
var extension = mapName.substring(mapName.length, mapName.length-4);
if(extension != ".pmp") {
// Add .pmp to the file name - shouldn't help if the name is mistyped, but may be useful in some cases
mapName = mapName + ".pmp";
}
// Set up game
GUIObjectHide("pregame_subwindow_bkg");
GUIObjectHide("pregame_mp_setup_host");
g_GameAttributes.mapFile = mapName;
startLoadingScreen();
]]></action>
</object>
<object type="button" name="pregame_mp_setup_host_cancel_button" size="50%+25 540 50%+125 570" sprite="message_box_button_normal" sprite_over="message_box_button_over" absolute="false" text_align="center" text_valign="center">
Cancel
<action on="Press"><![CDATA[
GUIObjectHide("pregame_mp_setup_host");
GUIObjectUnhide("pregame_mp_modesel");
]]></action>
</object>
</object>
<!-- Insert rewritten SESSION SETUP SCREEN here (in two variants: HOST and JOIN -->
<!--
===============================================
- SINGLEPLAYER TEMPORARY MAP SELECTION DIALOG -
===============================================
-->
<object type="button" name="pregame_sp_mapsel" sprite="0ad_window" z="106" hidden="true" size="50%-150 50%-90 50%+150 50%+90">
<!-- The placement of this titlebar object is VERY hackish (see y-placement), but it doesn't work any other way so far, and this dialog will be temporary anyway -->
<object type="button" name="pregame_sp_mapsel_titlebar" sprite="0ad_window_title" font="prospero18" z="165" text_align="center" text_valign="center" absolute="false" size="50%-130 0%-22 50%+130 0%-14">
Map selection
</object>
<object type="text" name="pregame_sp_infotext" absolute="false" size="10 10 290 60">
Type the name of the map you want to start into the box. The name is relative to /data/mods/official/maps/scenarios/.
</object>
<object type="text" name="pregame_sp_mapname_txt" absolute="false" textcolor="0 0 0" size="10 90 120 110">
Map Name:
</object>
<object type="input" name="pregame_sp_mapname" sprite="only_black_border" sprite_selectarea="GeeTemp_selected" absolute="false" size="130 90 290 110" textcolor="0 0 0" textcolor_selected="255 255 255">
gathertest2
</object>
<object type="button" name="pregame_sp_start_bt" sprite="message_box_button_normal" sprite_over="message_box_button_over" text_align="center" text_valign="center" absolute="false" size="50%-100 100%-50 50%-10 100%-20">
Start Game
<action on="Press"><![CDATA[
// Check wheter we have a correct file extension, to avoid crashes
var mapName = getGUIObjectByName("pregame_sp_mapname").caption;
var extension = mapName.substring(mapName.length, mapName.length-4);
if(extension != ".pmp") {
// Add .pmp to the file name - shouldn't help if the name is mistyped, but may be useful in some cases
mapName = mapName + ".pmp";
// console.write("Trying to fix the map name (probably missing extension).");
}
// Set up game
GUIObjectHide("pregame_subwindow_bkg");
GUIObjectHide("pregame_sp_mapsel");
g_GameAttributes.mapFile = mapName;
// Set up a bunch of players so we can see them pretty colors :P
setupSPPlayers();
startLoadingScreen();
]]></action>
</object>
<object type="button" name="pregame_sp_mapsel_abort_button" sprite="message_box_button_normal" sprite_over="message_box_button_over" text_align="center" text_valign="center" absolute="false" size="50%+10 100%-50 50%+90 100%-20">
Abort
<action on="Press"><![CDATA[
GUIObjectHide("pregame_subwindow_bkg");
GUIObjectHide("pregame_sp_mapsel");
]]></action>
</object>
</object>
</object>
</objects>