create mapmodel slots automatically from the edit menu
If a mapmodel is placed that does not have a slot assigned yet, it is assigned one automatically.
This commit is contained in:
+11
-8
@@ -268,10 +268,13 @@ tempalias __rebuildmapmodelmenus [
|
||||
push __mm_menus "" // menus with content
|
||||
push __mm_done "" // done map config slots
|
||||
push idxs ""
|
||||
push mpath ""
|
||||
looplist $__mapmodelcategories [key menu] [delmenu $menu]
|
||||
looplist (getmapmodelattributes explodekeywords sortby: keywords sortby: desc usage distribution) [path keyword desc usage dist] [
|
||||
path = (concatword "mapmodels/" $path)
|
||||
idxs = (mapmodelslotbyname $path)
|
||||
looplist (getmapmodelattributes explodekeywords sortby: keywords sortby: desc usage defaults distribution) [path keyword desc usage dflts dist] [
|
||||
mpath = (concatword "mapmodels/" $path)
|
||||
dflts = (concat $dflts "0 0 0 0")
|
||||
dflts = (concat (at $dflts 0) (at $dflts 1) (at $dflts 2) (at $dflts 3)) // fix missing/incomplete default slot parameters
|
||||
idxs = (mapmodelslotbyname $mpath)
|
||||
if (|| (! (strlen $keyword)) (< (findlist $__mapmodelcategories $keyword) 0)) [
|
||||
keyword = unsorted
|
||||
if (strcmp $dist "official") [ keyword = unsoo ] // unless someone writes the missing config files ;)
|
||||
@@ -281,16 +284,16 @@ tempalias __rebuildmapmodelmenus [
|
||||
keyword = (concatword __mm_key_ $keyword)
|
||||
newmenu $$keyword
|
||||
concatuniq __mm_menus $$keyword
|
||||
if (strlen $desc) [] [desc = $path]
|
||||
if (strlen $desc) [] [desc = $mpath]
|
||||
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 $path) $usage] // several slots for the same mapmodel
|
||||
looplist $idxs i [menuitem (concat $desc (concatword "#" $i)) (concat newent mapmodel $i) (__mm_showmodel $$keyword $mpath) $usage] // several slots for the same mapmodel
|
||||
][
|
||||
menuitem $desc (concat newent mapmodel $idxs) (__mm_showmodel $$keyword $path) $usage // usual case: one slot per model
|
||||
menuitem $desc (concat newent mapmodel $idxs) (__mm_showmodel $$keyword $mpath) $usage // usual case: one slot per model
|
||||
]
|
||||
][
|
||||
menuitem (concatword "\f4" $desc) (concat __mm_unassigned $path) (__mm_showmodel $$keyword $path) $usage // mapmodel has no slot assigned
|
||||
menuitem (concatword "\f4" $desc) (concat newent mapmodel "(mapmodel" $dflts $path ")") (__mm_showmodel $$keyword $mpath) $usage // mapmodel has no slot assigned: assign one
|
||||
]
|
||||
]
|
||||
delmenu Mapmodels
|
||||
@@ -299,7 +302,7 @@ tempalias __rebuildmapmodelmenus [
|
||||
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
|
||||
mapmodelchanged 0
|
||||
pop menu __mm_menus __mm_sorted __mm_done __mm_unsorted idxs
|
||||
pop menu __mm_menus __mm_sorted __mm_done __mm_unsorted idxs mpath
|
||||
]
|
||||
]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user