persistidents 0

// standard menu definitions

newmenu main

menuitem (_ Multiplayer)  [ showmenu multiplayer ]
menuitem (_ Singleplayer) [ showmenu singleplayer ]
menuitem (_ Settings)     [ showmenu settings ]
menuitem (_ Demo)         [ showmenu [Play demo] ]
menuitem (_ Editing)      [ showmenu editing ]
menuitem (_ Help)         [ showmenu help ]
menuitem (_ About)        [ showmenu about ]
menuitem (_ Quit)         savequit

// Start maps.
genmapitems = [
  n = (listlen $arg1)
  loop i $n [
    listmapname = (at $arg1 $i)
    menuitemmapload $listmapname
    next = (+ $i 1)
    if (= $next $n) [ next = 0 ] []
    nextmap = (at $arg1 $next)
    (concatword nextmap_ $listmapname) = $nextmap
  ]
]

newmenu maps

// Add maps to the below list to include them in the normal map menu (also for botmaps).
const defaultmaps [ac_aqueous ac_arabian ac_arctic ac_arid ac_avenue ac_cavern ac_complex ac_depot ac_desert ac_desert2 ac_desert3 ac_douze ac_edifice ac_elevation ac_gothic ac_iceroad ac_industrial ac_ingress ac_keller ac_lainio ac_mines ac_outpost ac_power ac_rattrap ac_scaffold ac_shine ac_snow ac_stellar ac_sunset ac_swamp ac_terros ac_toxic ac_urban ac_venison ac_wasteland ac_werk]
genmapitems	$defaultmaps
menuitem	[] -1
menuitem	(_ [Show all maps...]) [ showmenu [all maps] ]

newmenu [all maps]
menudirlist "packages/maps" cgz [map $arg1]

newmenu maps_flags
// Add maps to the below list to include them in the CTF, KTF & TKTF map menu. Maps should contain flags here.
const ctfmaps [ac_aqueous ac_arabian ac_arid ac_avenue ac_cavern ac_depot ac_desert3 ac_douze ac_edifice ac_elevation ac_gothic ac_iceroad ac_industrial ac_ingress ac_keller ac_lainio ac_mines ac_outpost ac_power ac_shine ac_stellar ac_sunset ac_swamp ac_terros ac_urban ac_venison ac_werk]
genmapitems $ctfmaps
menuitem [] -1
menuitem (_ [Show all maps..]) [showmenu [all maps]]

newmenu Demo // If in-game (playing demos isn't needed)

menuitem (_ [Start recording a demo]) recorddemo
menuitem (_ [Stop recording a demo]) stopdemo
menuitem (_ [Download demos from the server])	[ listdemos; showmenu [Download demo] ] // Lists the demos, then asks which would like to be downloaded.

newmenu [Download demo]
menuinit [ dldemo = []; echo (gray) (_ [Choose the demo number you wish to download, as shown below in the console.]) ]
menuitem (concatword (c 9) [        ] (_ [Download the latest demo...])) [ getdemo [] ]
menuitem [] -1
menuitemtextinput (_ [Demo number: ]) [] [ dldemo = $arg1 ]
menuitem (concatword (c 2) [	      ] "[" (_ Download) "]" [		]) [ getdemo $dldemo ]

newmenu [Play demo]	// If not in-game (recording/downloading demos isn't needed)
menuinit [ echo (_ [To stop demo playback, type:]) (red)/stopdemo ]
menudirlist demos dmo "demo $arg1"

// in-game menu that opens when pressing escape while watching a demo.
newmenu [Watching demo]
menuitem (_ [Stop watching demo]) stopdemo
menuitem (_ [Restart demo]) [ demo $curdemofile ]
menuitem (_ [Watch other demo]) [ stopdemo; closemenu [Watching demo]; showmenu [Play demo] ]
menuitem [] -1
menuitem (concatword (c 4) (_ [Main menu...])) [ closemenu [Watching demo]; showmenu main ]
menuitem (concatword (c 3) (_ [Quit AssaultCube])) savequit

newmenu about

menuitem "AssaultCube Version 1.2" -1
menuitem [] -1
menuitem (_ "AssaultCube is developed by various people around the") -1
menuitem (_ "world. People that enjoy making this game together.") -1
menuitem [] -1
menuitem (_ "Thank you to everyone participating to help us make") -1
menuitem (_ "AssaultCube what it is today. To learn about the team") -1
menuitem (_ "(Rabid Viper Productions) behind the game, read here:") -1
menuitem (concatword (c 1) "  http://assault.cubers.net/docs/team.html") -1
menuitem [] -1
menuitem (_ "AssaultCube is a total-conversion of the CUBE engine") -1
menuitem (_ "by Wouter 'Aardappel' van Oortmerssen, and others:") -1
menuitem "	1http://www.cubeengine.com/" -1

newmenu help

menuitem (_ [AssaultCube reference]) [ showmenu reference ]
menuitem (_ [Search the reference])  [ showmenu [Reference search] ]
// menuitem (_ [Keyboard controls])     [ showmenu controls ] // This was never implemented or something? - Bukz
menuitem (_ [View the FAQ])          [ showmenu faq ]
menuitem [] -1
menuitem (_ [...for further information/help see the README]) [ echo (yellow) (_ [The readme can be found in the base AssaultCube directory.]) ]

newmenu [Reference search]
menuinit [ docsearchstring = [] ]
menuitemtextinput (_ [Search reference for: ]) [] [ docsearchstring = $arg1 ]
menuitem (concatword (c 2) [		  ] "[ Search ]" [			]) [ docfind $docsearchstring ]

// Show quit dialog if enabled
newmenu quit
menuitem (_ [Yes, quit now]) quit
menuitem (_ [No]) [ showmenu [] ]
menuitem [] -1
menuitemcheckbox (_ [Don't ask next time: ]) [(= $askquit 0)] [askquit = (= $arg1 0)]

const savequit [ if $askquit [ showmenu quit ] quit ]

// Create additional menus...
exec config/menus_bot.cfg
exec config/menus_edit.cfg
exec config/menus_settings.cfg
exec config/menus_multiplayer.cfg
exec config/menus_voicecom.cfg
exec config/favourites.cfg

persistidents 1
