Monkey Maps
Monkey Forums/Monkey Programming/Monkey Maps
| ||
Function ActivateMenu:Void(menu:String) If MenuList.Get(menu) <> Null ' What I want to do MenuList.Get(menu).Active = True ' What I think I need to do Local m:Menu = MenuList.Get(menu) m.Active = True MenuList.Set(menu,m) End End I have a list of Menu items stored in a StringMap (MenuList). Am I able to manipulate these items without getting one, manipulating it and then setting it again? Thanks -Chris |
| ||
Class Menu
Field Active:Bool
End
Global MenuList:StringMap<Menu>
Function ActivateMenu:Void(menu:String)
If MenuList.Get(menu)
Local m:=MenuList.Get(menu)
m.Active = True
End
End
Function Main()
MenuList = New StringMap<Menu>
'insert menu into map
MenuList.Insert "hi",(New Menu)
'activate menu
ActivateMenu("hi")
'check
If MenuList.Get("hi").Active
Print "active"
Else
Print "not active"
Endif
End
You should be able to do it in one line, but it seems monkey's typechecker is failing. You certainly don't need to insert the object into the map again - the map only stores a pointer to the object. This should probably get moved over to the bug forum. |