// standard menu definitions // don't modify, add personal menus to autoexec.cfg instead // Only for testing. This will break stuff, delete config.cfg after use. reui = [exec data/menus.cfg; echo "Menus Reinitialized"] togglemainmenu = [ || (cleartexgui) [cleargui 1] [showgui main] ] bind ESCAPE [togglemainmenu] newgui hudhealthmenu [ guilist [ guitext "X" guistrut 6 newhudhealthx = $hudhealthx guifield newhudhealthx 8 [hudhealthx $newhudhealthx] ] guilist [ guitext "Y" guistrut 6 newhudhealthy = $hudhealthy guifield newhudhealthy 8 [hudhealthy $newhudhealthy] ] guilist [ guitext "Scale" guistrut 6 newhudhealthscale = $hudhealthscale guifield newhudhealthscale 8 [hudhealthscale $newhudhealthscale] ] ] "HUD Health" checkrolloveraction = [ if (>= (strstr $guirolloveraction $arg1) 0) [ if (>= $numargs 2) [arg2] [result $guirolloveraction] ] ] newgui main [ guilist [ guistrut 0.25 guilist [ newname = (getname) guifield newname 15 [name $newname] guispring guilist [ guibutton (playermodelname) [chooseplayermodel] 0 guistrut 1 guiimage (getcrosshair) [showgui crosshair] 0.5 ] ] ] guibar guibutton "server browser.." "showgui servers" if (isconnected) [ guibar if (|| $editing (m_edit (getmode))) [ guibutton "editing.." "showgui editing" ] guibutton "vote game mode / map.." "showgui gamemode" guibutton "switch team" [if (strcmp (getteam) "good") [team evil] [team good]] guibutton "toggle spectator" [spectator (! (isspectator (getclientnum)))] "spectator" guibutton "master.." [showgui master] guibar guibutton "options.." "showgui options" guibutton "disconnect" "disconnect" "exit" ] [ guibutton "bot match.." "showgui botmatch" guibar guibutton "options.." "showgui options" guibutton "about.." "showgui about" guibutton "quit" "quit" "exit" ] ] 0 newgui about [ guitext "Cube 2: Sauerbraten" 0 guitext [by Wouter "Aardappel" van Oortmerssen, Lee "eihrul" Salzman,] 0 guitext [Mike "Gilt" Dysart, Robert "baby-rabbit" Pointon,] 0 guitext [John "geartrooper" Siar, Quinton "Quin" Reeves, and others] 0 guitext "(for a full list of contributors see the readme)" 0 guitext "http://sauerbraten.org/" 0 ] guirollovername = "" guirolloveraction = "" guirolloverimgpath = "" guirolloverimgaction = "" guirolloverpreviewname = "" guirolloverpreviewaction = "" showmapshot = [ guibar mname = (checkrolloveraction "map " [if (> $numargs 0) [result $arg1] [at $guirollovername 0]]) guilist [ guiimage (concatword "packages/maps/" $mname ".png") (checkrolloveraction "map ") 4 1 "data/cube.png" $mname ] ] crosshairs = [ "data/crosshair.png data/crosshair_hit.png" "packages/crosshairs/crosshair_0.png packages/crosshairs/crosshair_hit_0.png" "packages/crosshairs/crosshair_1.png packages/crosshairs/crosshair_hit_1.png" "packages/crosshairs/crosshair_2.png packages/crosshairs/crosshair_hit_2.png" "packages/crosshairs/crosshair_3.png packages/crosshairs/crosshair_hit_3.png" "packages/crosshairs/crosshair_4.png packages/crosshairs/crosshair_hit_4.png" "packages/crosshairs/crosshair_5.png packages/crosshairs/crosshair_hit_5.png" "packages/crosshairs/crosshair_6.png packages/crosshairs/crosshair_hit_6.png" "packages/crosshairs/crosshair_7.png packages/crosshairs/crosshair_hit_7.png" "packages/crosshairs/crosshair_8.png packages/crosshairs/crosshair_hit_8.png" "packages/crosshairs/crosshair_9.png packages/crosshairs/crosshair_hit_9.png" "packages/crosshairs/crosshair_10.png packages/crosshairs/crosshair_hit_10.png" "packages/crosshairs/crosshair_11.png packages/crosshairs/crosshair_hit_11.png" "packages/crosshairs/crosshair_12.png packages/crosshairs/crosshair_hit_12.png" "packages/crosshairs/crosshair_13.png packages/crosshairs/crosshair_hit_13.png" "packages/crosshairs/crosshair_14.png packages/crosshairs/crosshair_hit_14.png" "packages/crosshairs/crosshair_15.png packages/crosshairs/crosshair_hit_15.png" "packages/crosshairs/crosshair_16.png packages/crosshairs/crosshair_hit_16.png" "packages/crosshairs/crosshair_17.png packages/crosshairs/crosshair_hit_17.png" "packages/crosshairs/crosshair_18.png packages/crosshairs/crosshair_hit_18.png" "packages/crosshairs/crosshair_19.png packages/crosshairs/crosshair_hit_19.png" "packages/crosshairs/crosshair_20.png packages/crosshairs/crosshair_hit_20.png" "packages/crosshairs/crosshair_21.png packages/crosshairs/crosshair_hit_21.png" "packages/crosshairs/crosshair_22.png packages/crosshairs/crosshair_hit_22.png" "packages/crosshairs/crosshair_23.png packages/crosshairs/crosshair_hit_23.png" "packages/crosshairs/crosshair_24.png packages/crosshairs/crosshair_hit_24.png" "packages/crosshairs/crosshair_25.png packages/crosshairs/crosshair_hit_25.png" "packages/crosshairs/crosshair_26.png packages/crosshairs/crosshair_hit_26.png" ] newgui crosshair [ guitext "crosshair size" guislider crosshairsize loop row (div (+ (listlen $crosshairs) 6) 7) [ guilist [ loop col 7 [ ch = (at $crosshairs (+ (* $row 7) $col)) if (!=s $ch "") [ guiimage (at $ch 0) [ cleargui 1 loadcrosshair @(at $ch 0) 0 loadcrosshair @(at $ch (if (> (listlen $ch) 1) 1 0)) 2 ] 0.5 ] ] ] ] ] newgui master [ guistayopen [ if (ismaster (getclientnum)) [ guibutton "relinquish master" "setmaster 0" ] [ guibutton "claim master" "setmaster 1" ] guilist [ guitext "mastermode: " mm = (getmastermode) guiradio "open (0) " mm 0 "mastermode 0" guiradio "veto (1) " mm 1 "mastermode 1" guiradio "locked (2) " mm 2 "mastermode 2" guiradio "private (3) " mm 3 "mastermode 3" ] guibar looplist cn (listclients 0 0) [ guilist [ guitext (concatword (getclientname $cn) ": ") (getclienticon $cn) guibutton "kick " [kick @cn] guibutton "toggle spectator " [spectator @(= (isspectator $cn) 0) @cn] if (m_teammode (getmode)) [ guibutton "switch team " [setteam @cn @(? (=s (getclientteam $cn) "good") "evil" "good")] ] if (ismaster $cn) [ guibutton "take master" [setmaster 0 @cn] ] [ guibutton "give master" [setmaster 1 @cn] ] ] ] ] ] botmatchcount = 5 botmatchminskill = 50 botmatchmaxskill = 100 startbotmatch = [ if (isconnected 0 0) [ echo "You must disconnect from the current multiplayer game before starting a bot match." ] [ loop i $botmatchcount [addbot (rnd (+ $botmatchmaxskill 1) $botmatchminskill)] ] ] newgui botmatch [ guitext "bot amount" guislider botmatchcount 0 32 guitext "bot minimum skill" guislider botmatchminskill 50 101 [if (< $botmatchmaxskill $botmatchminskill) [botmatchmaxskill = $botmatchminskill]] guitext "bot maximum skill" guislider botmatchmaxskill 50 101 [if (> $botmatchminskill $botmatchmaxskill) [botmatchminskill = $botmatchmaxskill]] guibutton "start match.." [guionclear [startbotmatch]; showgui gamemode] ] "bot match" newgui servers [ guistayopen [ guiservers [ guilist [ guibutton "update from master server" "updatefrommaster" guibar guicheckbox "search LAN" searchlan guibar guicheckbox "auto-update" autoupdateservers guibar guicheckbox "auto-sort" autosortservers if (= $autosortservers 0) [ guibar guibutton "sort" "sortservers" ] ] guibar ] 17 ] ] "" [initservers] newgui gamemode [ guilist [ guilist [ guibutton "ffa" "mode 0; showgui maps" guibutton "coop-edit" "mode 1; showgui maps" guibutton "teamplay" "mode 2; showgui maps" guibutton "instagib" "mode 3; showgui maps" guibutton "instagib team" "mode 4; showgui maps" guibutton "efficiency" "mode 5; showgui maps" guibutton "efficiency team" "mode 6; showgui maps" ] guibar ] ] showfileeditor = [ guinoautotab [ guieditor $arg1 $arg2 $arg3 textinit $arg1 $arg1 guistayopen [ guilist [ guibutton "load" [textfocus @arg1; textload @arg1] guibar guibutton "save" [textfocus @arg1; textsave @arg1] guibar guibutton "exec" [textfocus @arg1; textexec] guibar guibutton "copy" [textfocus @arg1; textcopy] guibar guibutton "paste" [textfocus @arg1; textpaste] guibar guibutton "select" [textfocus @arg1; textselectall] guibar guibutton "clear" [textfocus @arg1; textclear] ] ] ] ] notepadfile = "untitled.txt" newgui notepad [ guifield notepadfile -30 showfileeditor $notepadfile -80 20 ] notepad = [ if (> $numargs 0) [notepadfile = $arg1] showgui notepad ] newgui pastebuffer [ guinoautotab [ guieditor "#pastebuffer" -80 20 guistayopen [ guilist [ guibutton "exec" [textfocus "#pastebuffer"; textexec] guibar guibutton "clear" [textfocus "#pastebuffer"; textclear] ] ] ] ] pastebuffer = [showgui pastebuffer] newmapsize = 12 savemap_name = temp getmapmodels = [ loopconcat i $nummapmodels [ if $arg2 [ if (mapmodelloaded $i) [ $arg1 $i ] ] [ $arg1 $i ] ] ] mmguiwidth = 7 mmguiheight = 4 newgui mapmodels [ guikeeptab 1 local mmarea mmid mmguiarea = (* $mmguiwidth $mmguiheight) guinoautotab [ loop n (div (+ $nummapmodels (- $mmguiarea 1)) $mmguiarea) [ if $n [guitab (+ $n 1)] if (= $guitabnum (+ $n 1)) [ loop y $mmguiheight [ guilist [ loop x $mmguiwidth [ mmid = (+ (* $n $mmguiarea) (+ (* $y $mmguiwidth) $x)) guimodelpreview (mapmodelname $mmid) "mapmodel" [newent mapmodel @mmid] 3 1 $mmid 1 ] ] ] guistrut 0.2 guititle (concatword "^f7" (strreplace (strreplace $guirolloverpreviewname "\" "/") "/" "^fc/^f7")) ] ] ] ] macro resbutton [ guibutton "%1x%2" "screenres %1 %2" (if (&& (= $scr_w %1) (= $scr_h %2)) [result "radio_on"] [result "radio_off"]) ] newgui options [ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// guilist [ guicheckbox "2D menus" gui2d guibar guicheckbox "click tab" guiclicktab guibar guicheckbox "menu fade in" guifadein ] guicheckbox "show scoreboard at death" deathscore guicheckbox "blood" blood guilist [ guicheckbox "fullbright player models" fullbrightmodels 60 0 if $fullbrightmodels [ guibar guiradio "subtle" fullbrightmodels 60 guibar guiradio "bright" fullbrightmodels 100 guibar guiradio "overbright" fullbrightmodels 150 guibar guiradio "max" fullbrightmodels 200 ] ] guilist [ guicheckbox "always use team skins" teamskins ] guicheckbox "hit sound" hitsound guibar guibutton "restore defaults (clears ALL settings)" "exec restore.cfg" guitab "hud" //////////////////////////////////////////////////////////////////////////////////////////////////////////// guicheckbox "show FPS" showfps guilist [ guicheckbox "damage compass" damagecompass ] guilist [ guicheckbox "hudguns" hudgun if $hudgun [ guibar guicheckbox "sway" hudgunsway guibar guicheckbox "muzzle flash" muzzleflash guibar guicheckbox "muzzle light" muzzlelight ] ] guilist [ guicheckbox "crosshair effects" crosshairfx if $crosshairfx [ guibar guicheckbox "health colors" crosshaircolors guibar guicheckbox "teammates" teamcrosshair guibar guicheckbox "hits" hitcrosshair 425 ] ] guibar guilist [ guicheckbox "ammobar^t^t" ammobar guibutton "adjust ammobar" [showgui ammobar] ] guilist [ guicheckbox "gameclock^t" gameclock guibutton "adjust gameclock" [showgui gameclock] ] guilist [ guicheckbox "hudscore^t^t" hudscore guibutton "adjust hudscore" [showgui hudscore] ] guitab "gfx" //////////////////////////////////////////////////////////////////////////////////////////////////////////// guitext "performance key: ^f0fast^f~, ^f2moderate^f~, ^f3slow and pretty^f~" guibar guilist [ guitext "shaders^t^t" guibar guiradio "^f0low detail" shaderdetail 1 guibar guiradio "^f2high detail" shaderdetail 3 ] guilist [ guicheckbox "^f0decals^t^t" decals if $decals [ guibar guiradio "^f0quick fade" decalfade 10000 [maxdecaltris 1024] guibar guiradio "^f2slow fade" decalfade 60000 [maxdecaltris 4096] ] ] guilist [ guitext "textures^t^t" guibar guiradio "^f0low quality" maxtexsize 256 guibar guiradio "^f0medium quality" maxtexsize 512 guibar guiradio "^f2high quality" maxtexsize 0 ] guilist [ guitext "models^t^t" guibar guicheckbox "^f2bumpmap" bumpmodels ] guitab "display" //////////////////////////////////////////////////////////////////////////////////////////////////////////// guitext "field of view" guislider fov guicheckbox "v-sync" vsync 1 0 guicheckbox "fullscreen" fullscreen guitext "gamma (default: 100)" guislider gamma guitext "full-scene anti-aliasing (default: -1)" guilistslider fsaa "-1 0 2 4 8 16" guitext "z-buffer depth (default: 0)" guilistslider depthbits "0 16 24 32" guitext "anisotropic filtering (default: 0)" guilistslider aniso "0 2 4 8 16" guilist [ guicheckbox "bilinear filtering" bilinear guibar guicheckbox "trilinear filtering (mipmaps)" trilinear ] guitab "res" //////////////////////////////////////////////////////////////////////////////////////////////////////////// guistayopen [ guilist [ guilist [ guitext "4:3" @@@@(resbutton 320 240) @@@@(resbutton 640 480) @@@@(resbutton 800 600) @@@@(resbutton 1024 768) @@@@(resbutton 1152 864) @@@@(resbutton 1280 960) @@@@(resbutton 1400 1050) @@@@(resbutton 1600 1200) @@@@(resbutton 1792 1344) @@@@(resbutton 1856 1392) @@@@(resbutton 1920 1440) @@@@(resbutton 2048 1536) @@@@(resbutton 2800 2100) @@@@(resbutton 3200 2400) ] guibar guilist [ guitext "16:10" @@@@(resbutton 320 200) @@@@(resbutton 640 400) @@@@(resbutton 1024 640) @@@@(resbutton 1280 800) @@@@(resbutton 1440 900) @@@@(resbutton 1600 1000) @@@@(resbutton 1680 1050) @@@@(resbutton 1920 1200) @@@@(resbutton 2048 1280) @@@@(resbutton 2560 1600) @@@@(resbutton 2880 1800) @@@@(resbutton 3200 2000) @@@@(resbutton 3840 2400) ] guibar guilist [ guitext "16:9" @@@@(resbutton 1024 600) @@@@(resbutton 1280 720) @@@@(resbutton 1366 768) @@@@(resbutton 1600 900) @@@@(resbutton 1920 1080) @@@@(resbutton 2048 1152) @@@@(resbutton 2560 1440) @@@@(resbutton 2880 1620) @@@@(resbutton 3200 1800) @@@@(resbutton 3840 2160) ] guibar guilist [ guitext "5:4" @@@@(resbutton 600 480) @@@@(resbutton 1280 1024) @@@@(resbutton 1600 1280) @@@@(resbutton 2560 2048) ] guibar guilist [ guitext "5:3" @@@@(resbutton 800 480) @@@@(resbutton 1280 768) guibar guitext "Custom" guilist [ customw = $scr_w customh = $scr_h guifield customw 4 [scr_w $customw] guifield customh 4 [scr_h $customh] ] ] ] ] guitab "sound" //////////////////////////////////////////////////////////////////////////////////////////////////////////// guitext "sound volume" guislider soundvol guitext "music volume" guislider musicvol guitext "sound channels" guislider soundchans guitext "sound frequency" guilistslider soundfreq "11025 22050 44100" guitext "sound buffer length" guislider soundbufferlen guitab "mouse" //////////////////////////////////////////////////////////////////////////////////////////////////////////// guicheckbox "invert mouse" invmouse guilist [ guitext "mouse sensitivity: " newsens = $sensitivity guifield newsens 8 [sensitivity $newsens] ] guilist [ guitext "mouse UI sensitivity: " newguisens = $guisens guifield newguisens 8 [guisens $newguisens] ] guilist [ guibutton "crosshair: " [showgui crosshair] guiimage (getcrosshair) [showgui crosshair] 0.5 ] guitext "crosshair size" guislider crosshairsize guitab "keys" //////////////////////////////////////////////////////////////////////////////////////////////////////////// guitext "(basic keybinds, for anything more use the 'bind' command)" guitext "select action to bind and press desired keys (ESC when done):" bindidx = 0 guilistsplit n 2 $bindactions [ guilist [ guitext (tabify (concatword $n ": ") 4) [newbinds@bindidx] = (searchbinds $n) guikeyfield [newbinds@bindidx] -12 [ oldbinds = (searchbinds [@@n]) looplist j $oldbinds [bind $j ""] looplist j $[newbinds@@bindidx] [bind $j [@@@n]] ] bindidx = (+ $bindidx 1) ] ] [guibar] guitab "console" //////////////////////////////////////////////////////////////////////////////////////////////////////////// guicheckbox "chat console" miniconfilter 0x300 0 guitext "console size (lines)" guislider consize guitext "console filter:" guilist [ guilist [ guibitfield "important information" confilter 0x11 guibitfield "warnings" confilter 0x02 guibitfield "errors" confilter 0x04 guibitfield "script messages" confilter 0x20 ] guibar guilist [ guibitfield "chat" confilter 0x100 guibitfield "team chat" confilter 0x200 guibitfield "game events" confilter 0x400 ] guibar guilist [ guibitfield "self frags" confilter 0x800 guibitfield "other player frags" confilter 0x1000 guibitfield "team kills" confilter 0x2000 ] ] guitext "full console size (percent of screen)" guislider fullconsize guitext "full console filter:" guilist [ guilist [ guibitfield "important information" fullconfilter 0x11 guibitfield "warnings" fullconfilter 0x02 guibitfield "errors" fullconfilter 0x04 guibitfield "script messages" fullconfilter 0x20 ] guibar guilist [ guibitfield "chat" fullconfilter 0x100 guibitfield "team chat" fullconfilter 0x200 guibitfield "game events" fullconfilter 0x400 ] guibar guilist [ guibitfield "self frags" fullconfilter 0x800 guibitfield "other player frags" fullconfilter 0x1000 guibitfield "team kills" fullconfilter 0x2000 ] ] guitab "cfg" //////////////////////////////////////////////////////////////////////////////////////////////////////////// guitext "autoexec.cfg" showfileeditor "autoexec.cfg" -64 13 ] "game" +fround = [round (+f $arg1 $arg2) (absf $arg2)] newgui ammobar [ guicheckbox "AmmoBar" ammobar guibar guilist [ guitext "AmmoBarAlign:^t^t^t" guiradio "-1 " ammobaralign -1 guiradio "0 " ammobaralign 0 guiradio "1" ammobaralign 1 ] guicheckbox "AmmoBarHorizontal" ammobarhorizontal guicheckbox "AmmoBarFlip" ammobarflip guicheckbox "AmmoBarHideEmpty" ammobarhideempty guitext "AmmoBarSep:" guislider ammobarsep guitext "AmmoBarCountSep:" guislider ammobarcountsep guilist [ guitext "AmmoBarCountScale:^t" guifield ammobarcountscale 5 guistayopen [ guibutton "- " [ammobarcountscale (+fround $ammobarcountscale -0.1)] ] guistayopen [ guibutton "+" [ammobarcountscale (+fround $ammobarcountscale 0.1)] ] ] guilist [ guitext "AmmoBarScale:^t^t^t" guifield ammobarscale 5 guistayopen [ guibutton "- " [ammobarscale (+fround $ammobarscale -0.01)] ] guistayopen [ guibutton "+" [ammobarscale (+fround $ammobarscale 0.01)] ] ] guilist [ guitext "AmmoBarX:^t^t^t" guifield ammobarx 5 guistayopen [ guibutton "- " [ammobarx (+fround $ammobarx -0.01)] ] guistayopen [ guibutton "+" [ammobarx (+fround $ammobarx 0.01)] ] ] guilist [ guitext "AmmoBarY:^t^t^t" guifield ammobary 5 guistayopen [ guibutton "- " [ammobary (+fround $ammobary -0.01)] ] guistayopen [ guibutton "+" [ammobary (+fround $ammobary 0.01)] ] ] ] "AmmoBar" newgui gameclock [ guicheckbox "GameClock" gameclock guibar guilist [ guitext "GameClockAlign:^t" guiradio "-1 " gameclockalign -1 guiradio "0 " gameclockalign 0 guiradio "1" gameclockalign 1 ] guitext "GameClockAlpha:" guislider gameclockalpha // gameclockcolour 0 - 0xFFFFFF // gameclocklowcolour 0 - 0xFFFFFF guilist [ guitext "GameClockScale:^t" guifield gameclockscale 5 guistayopen [ guibutton "- " [gameclockscale (+fround $gameclockscale -0.01)] ] guistayopen [ guibutton "+" [gameclockscale (+fround $gameclockscale 0.01)] ] ] guilist [ guitext "GameClockX:^t^t" guifield gameclockx 5 guistayopen [ guibutton "- " [gameclockx (+fround $gameclockx -0.01)] ] guistayopen [ guibutton "+" [gameclockx (+fround $gameclockx 0.01)] ] ] guilist [ guitext "GameClockY:^t^t" guifield gameclocky 5 guistayopen [ guibutton "- " [gameclocky (+fround $gameclocky -0.01)] ] guistayopen [ guibutton "+" [gameclocky (+fround $gameclocky 0.01)] ] ] ] "GameClock" newgui hudscore [ guicheckbox "HUDScore" hudscore guibar guilist [ guitext "HUDScoreAlign:^t^t" guiradio "-1 " hudscorealign -1 guiradio "0 " hudscorealign 0 guiradio "1" hudscorealign 1 ] guitext "HUDScoreAlpha:" guislider hudscorealpha // hudscoreenemycolour 0 - 0xFFFFFF // hudscoreplayercolour 0 - 0xFFFFFF guitext "HUDScoreSep:" guislider hudscoresep guilist [ guitext "HUDScoreScale:^t^t" guifield hudscorescale 5 guistayopen [ guibutton "- " [hudscorescale (+fround $hudscorescale -0.01)] ] guistayopen [ guibutton "+" [hudscorescale (+fround $hudscorescale 0.01)] ] ] guilist [ guitext "HUDScoreX:^t^t" guifield hudscorex 5 guistayopen [ guibutton "- " [hudscorex (+fround $hudscorex -0.01)] ] guistayopen [ guibutton "+" [hudscorex (+fround $hudscorex 0.01)] ] ] guilist [ guitext "HUDScoreY:^t^t" guifield hudscorey 5 guistayopen [ guibutton "- " [hudscorey (+fround $hudscorey -0.01)] ] guistayopen [ guibutton "+" [hudscorey (+fround $hudscorey 0.01)] ] ] ] "HUDScore" bindactions = [forward backward left right jump attack togglezoom saycommand sayteamcommand showscores toggleconsole screenshot edittoggle "setweapon FI" "setweapon SG" "setweapon CG" "setweapon RL" "setweapon RI" "setweapon GL" "setweapon PI" "weapon" "universaldelta 1" "universaldelta -1" dropflag addbot delbot] guilistsplit = [ guilist [ z = (div (+ (listlen $arg3) (- $arg2 1)) $arg2) loop a $arg2 [ guilist [ if (>= $numargs 6) [arg6] loopsublist $arg1 $arg3 (* $a $z) $z [ arg4 ] ] if (&& (>= $numargs 5) (< (+ $a 1) $arg2)) [arg5] ] ] ]