From 1d06ed1b64e765a3bafe050aced44fd8e8a9c6ae Mon Sep 17 00:00:00 2001 From: ac-stef Date: Tue, 28 Apr 2015 18:06:37 +0200 Subject: [PATCH] new "Map config operations" menu Edit and delete mapmodel slots. --- config/menus_edit.cfg | 81 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 77 insertions(+), 4 deletions(-) diff --git a/config/menus_edit.cfg b/config/menus_edit.cfg index abdf0353..fc87c56a 100644 --- a/config/menus_edit.cfg +++ b/config/menus_edit.cfg @@ -10,6 +10,7 @@ menuitem (_ [Test a skymap...]) [ showmenu skymaps ] menuitem (_ [Ambient sounds...]) [ showmenu [Ambient sounds] ] menuitem (_ [Arches and slopes...]) [ showmenu Arches ] menuitem (_ [Map operations...]) [ showmenu [Map operations] ] +menuitem [Map config operations...] [ showmenu [Map config operations] ] menuitem (_ [Bots...]) [ showmenu [Creating bot waypoints] ] menuitem (_ [Settings...]) [ showmenu [Editing settings] ] menuitem (_ Help?) [ echo (yellow) (_ [Please read the AssaultCube README which has a detailed guide on mapediting...]) ] @@ -144,6 +145,60 @@ menuitem (_ [Paste a previously copied entity]) pasteent menuitemcheckbox (_ [Show mapmodel clippings: ]) "$showmodelclipping" [ showmodelclipping $arg1 ] menuitemslider (_ [Select only these entities: ]) 0 15 "$_closestenttypestatus" 1 [All Light Playerstart Pistol Ammobox Grenades Health Armour Akimbo Mapmodel Ladder CTF-flag Sound Clip Helmet PlayerClip] [ _closestentslider $arg1 ] +// Map config operations +newmenu [Map config operations] + +menuitem [Edit mapmodel slot...] [ showmenu [Edit mapmodel slots] ] +menuitem [Delete unused mapmodel slot...] [ showmenu [Delete unused mapmodel slot] ] + +menuitem "" -1 +menuitem [Delete ALL unused mapmodel slots] [loop ii 256 [ push i (- 255 $ii) ; if (&& (strlen (mapmodelslotname $i)) (strcmp "" (mapmodelslotusage $i))) [deletemapmodelslot $i] ; pop i]] +menuitem [Delete ALL unused texture slots] [loop ii 251 [ push i (- 255 $ii) ; if (&& (strlen (edittextureslot $i)) (strcmp "" (textureslotusage $i))) [deletetextureslot $i] ; pop i]] +menuitem [Delete ALL unused mapsound slots] [loop ii 256 [ push i (- 255 $ii) ; if (&& (strlen (editmapsoundslot $i)) (strcmp "" (mapsoundslotusage $i))) [deletemapsoundslot $i] ; pop i]] +menuitem "" -1 +menuitem "Update mapmodel menus" "mapmodelchanged 1" + +tempalias __lastwatchedmapmodel "" +tempalias __mmslot + +// Edit mapmodel slots +newmenu [Edit mapmodel slots] +menuinit __rebuildmapmodelmenus + +// Edit mapmodel slot +newmenu [Edit mapmodel slot] +menuinit [ + delmenu [Edit mapmodel slot] + newmenu [Edit mapmodel slot] + if (strlen $__mmslot) [ + menuheader "" (concatword "edit mapmodel slot #" $__mmslot ":\n" (mapmodelslotname $__mmslot)) + menuitemtextinput "Clipping radius" (at (editmapmodelslot $__mmslot) 0) [editmapmodelslot $__mmslot $arg1] + menuitemtextinput "Clipping height " (at (editmapmodelslot $__mmslot) 1) [editmapmodelslot $__mmslot "" $arg1] + menuitemtextinput "z-Offset " (at (editmapmodelslot $__mmslot) 2) [editmapmodelslot $__mmslot "" "" $arg1] + menuitem "" -1 + menuitemtextinput "Mapmodel path " (concat result (at (editmapmodelslot $__mmslot) 4)) [editmapmodelslot $__mmslot "" "" "" "" $arg1] "" 250 + if (&& (strlen $__lastwatchedmapmodel) (! (strcmp $__lastwatchedmapmodel (editmapmodelslot $__mmslot) 4))) [ + menuitem (concat " change to" (escape $__lastwatchedmapmodel)) [editmapmodelslot $__mmslot "" "" "" "" $__lastwatchedmapmodel] + ] + if (strlen (mapmodelslotusage $__mmslot)) [ + menuitem "" -1 (concat gotoposition (gotoposition)) + looplist (mapmodelslotusage $__mmslot) ii [ + menuitem (concatword "slot used by map entity #" $ii) (concat gotoentity $ii) (concat gotoentity $ii) + ] + menuitem "" -1 (concat gotoposition (gotoposition)) + ][ + menuitem "" -1 + menuitem "\f3Delete unused slot" (concat deletemapmodelslot $__mmslot) + ] + ][ + menuitem "no slot selected" -1 + ] +] + +// Delete unused mapmodel slot +newmenu [Delete unused mapmodel slot] +menuinit __rebuildmapmodelmenus + // "closestenttype" slider... _closestentslider = [ closestenttype (at ["" light playerstart pistol ammobox grenades health armour akimbo mapmodel ladder ctf-flag sound clip helmet plclip] $arg1); _closestenttypestatus = $arg1 ] @@ -261,7 +316,7 @@ tempalias __mapmodelcategories [ looplist $__mapmodelcategories [key menu] [tempalias (concatword __mm_key_ $key) $menu] tempalias __mm_unassigned [echo (yellow) sry: mapmodel (addpunct $arg1) has no slot assigned. Please edit your map config file.] -tempalias __mm_showmodel [concat chmenumdl $arg1 $arg2 all 40 3] +tempalias __mm_showmodel [concat alias __lastwatchedmapmodel $arg2 ";" chmenumdl (escape $arg1) (concatword mapmodels/ $arg2) all 40 3] tempalias __rebuildmapmodelmenus [ if $mapmodelchanged [ @@ -288,12 +343,12 @@ tempalias __rebuildmapmodelmenus [ if (listlen $idxs) [ __mm_done = (concat $__mm_done $idxs) if (> (listlen $idxs) 1) [ - looplist $idxs i [menuitem (concat $desc (concatword "#" $i)) (concat newent mapmodel $i) (__mm_showmodel $$keyword $mpath) $usage] // several slots for the same mapmodel + looplist $idxs i [menuitem (concat $desc (concatword "#" $i)) (concat newent mapmodel $i) (__mm_showmodel $$keyword $path) $usage] // several slots for the same mapmodel ][ - menuitem $desc (concat newent mapmodel $idxs) (__mm_showmodel $$keyword $mpath) $usage // usual case: one slot per model + menuitem $desc (concat newent mapmodel $idxs) (__mm_showmodel $$keyword $path) $usage // usual case: one slot per model ] ][ - menuitem (concatword "\f4" $desc) (concat newent mapmodel "(mapmodel" $dflts $path ")") (__mm_showmodel $$keyword $mpath) $usage // mapmodel has no slot assigned: assign one + menuitem (concatword "\f4" $desc) (concat newent mapmodel "(mapmodel" $dflts $path ")") (__mm_showmodel $$keyword $path) $usage // mapmodel has no slot assigned: assign one ] ] delmenu Mapmodels @@ -301,6 +356,24 @@ tempalias __rebuildmapmodelmenus [ push __mm_sorted "" looplist $__mapmodelcategories [key menu] [if (>= (findlist $__mm_menus $menu) 0) [concatuniq __mm_sorted $menu]] // create list of non-empty menus in order of list above looplist $__mm_sorted m [menuitem $m (concat showmenu $m)] // only create non-empty menus + delmenu [Delete unused mapmodel slot] + newmenu [Delete unused mapmodel slot] + loop i 256 [ + mpath = (mapmodelslotname $i) + if (strlen $mpath) [ + if (strcmp "" (mapmodelslotusage $i)) [ + menuitem (concatword "delete slot #" $i ": " (editmapmodelslot $i)) (concat deletemapmodelslot $i) (__mm_showmodel [Delete unused mapmodel slot] $mpath) + ] + ] + ] + delmenu [Edit mapmodel slots] + newmenu [Edit mapmodel slots] + loop i 256 [ + mpath = (mapmodelslotname $i) + if (strlen $mpath) [ + menuitem (concatword "edit slot #" $i ": " (editmapmodelslot $i)) (concat alias __mmslot $i ";" showmenu (escape "Edit mapmodel slot")) + ] + ] mapmodelchanged 0 pop menu __mm_menus __mm_sorted __mm_done __mm_unsorted idxs mpath ]