// standard menu definitions

////  Main  ////

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


// 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]

// 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_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]

// Start maps.
const __genmapitems [
    looplisti $arg1 m [
        menuitemmapload $m [map @m]
        [nextmap_@m] = (at $arg1 (mod (+ $i 1) @(listlen $arg1)))
    ]
]

newmenu [all custom maps]
menurenderoffset -20 0
menudirlist "packages/maps" cgz [map $arg1]

newmenu maps
__genmapitems $__defaultmaps
menuitem [] -1
menuitem "Show all custom maps\i\3" [ showmenu [all custom maps] ]

newmenu maps_flags
__genmapitems $__ctfmaps
menuitem [] -1
menuitem "Show all custom maps\i\3" [showmenu [all custom maps]]


////  Main > Play demo  ////

newmenu [Play demo]
menudirlist demos dmo "demo $arg1"


////  Watching demo  //// (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 "Rewind demo\i\3" [ showmenu rewind ]
menuitemtextinput "Custom description: " [ getalias (concatword "demodesc_" $curdemofile) ] [ alias (concatword "demodesc_" $curdemofile) $arg1 ] [] 100
menuitem "" -1
menuitem "Watch other demo" [ stopdemo; closecurmenu; showmenu [Play demo] ]
menuitem "Search demo\i\3" [ showmenu [search demo] ]
menuitem "" -1
menuitem "\f4Main menu\i\3" [ closecurmenu; showmenu main ]
menuitem "\f3Quit AssaultCube" savequit

////  Watching demo > rewind  ////

newmenu rewind
tempalias __setmr "" ; tempalias __rewind ""
menuitemtextinput "Go to [min]: " [ result $__setmr ] [ __setmr = $arg1 ]
menuitem "\f2Confirm" [ setmr $__setmr ]
menuitem "" -1
menuitemtextinput "Rewind (negative value to forward) [s]: " [ result $__rewind ] [ __rewind = $arg1 ]
menuitem "\f2Confirm" [ rewind $__rewind ]
menuitem "" -1
menuitem "Cancel" 0

////  Watching demo > search demo  ////

newmenu [search demo]
alias __searchdemo ""
menuitemtextinput "Part of demo name or description: " "result $__searchdemo" [ __searchdemo = $arg1 ]
menuitem "\f2\t\t    [ Search demo ]" [ showmenu [search specific demo] ]

////  Watching demo > search demo > search specific demo  ////

newmenu [search specific demo]
menudirlist demos dmo "demo $arg1" 0 __searchdemo


////  Main > Help  ////

newmenu help
menuitem "AssaultCube reference" [ showmenu reference ]
menuitem "Search the reference"  [ showmenu [Reference search] ]
menuitem "Keyboard controls"     [ showmenu Keyboard ]
menuitem "View the FAQ\t\t\t\t\t\t" [ load_faq ; showmenu faq ]
menuheader "" "...for further information/help see the README.\n\f4The readme can be found in the base AssaultCube directory."

////  Main > Help > Reference search  ////

newmenu [Reference search]
tempalias __docsearchstring ""
menuitemtextinput "Search reference for: " "result $__docsearchstring" [ __docsearchstring = $arg1 ; showmenu [Reference search results] ]

////  Main > Help > Reference search > Reference search results  ////

newmenu [Reference search results]
menuinit [
    resetcurmenu
    menusynctabstops 1
    if (strlen $__docsearchstring) [
        menuheader "" (concatword "search results for keyword \f2" $__docsearchstring)
        looplist (docfind $__docsearchstring 1) [n l] [
            menuitem (concatword "\fs\f1" $n "\fr \t" (getdoc $n 1)) (concatword "saycommand /" $n)
        ]
    ] closecurmenu
]

////  Main > Help > FAQ  ////
// see opt/faq.cfg


////  Main > About  ////

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 "\f1  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 "\t\f1http://www.cubeengine.com/" -1

////  Main > Quit  ////

newmenu quit
menuitem "Yes, quit now" quit
menuitem "No" [ showmenu [] ]
menuitem "" -1
menuitemcheckbox "Don't ask next time: " [(= $askquit 0)] [askquit = (= $arg1 0)]

// Show quit dialog if enabled
const savequit [ if $askquit [ showmenu quit ] quit ]


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

