Scriptname UIMenuBase extends Quest bool Property isResetting = false Auto bool _waitLock = false Function Lock() _waitLock = true EndFunction bool Function WaitLock() int lockOut = 0 While _waitLock lockOut += 1 If lockOut > 50 ; Took more than 5 sec _waitLock = false return false Endif Utility.Wait(0.1) EndWhile return true EndFunction Function Unlock() _waitLock = false EndFunction bool Function BlockUntilClosed() int counter = 0 While UI.IsMenuOpen("CustomMenu") counter += 1 If counter > 50 return false Endif Utility.Wait(0.1) EndWhile return true EndFunction bool Function WaitForReset() int counter = 0 While isResetting counter += 1 If counter > 50 isResetting = false return false Endif Utility.Wait(0.1) EndWhile return true EndFunction int Function OpenMenu(Form akForm = None, Form akReceiver = None) return -1 EndFunction string Function GetMenuName() return "" EndFunction Event OnGameReload() EndEvent Function ResetMenu() EndFunction float Function GetResultFloat() return 0.0 EndFunction int Function GetResultInt() return 0 EndFunction string Function GetResultString() return "" EndFunction Form Function GetResultForm() return None EndFunction ; Property functions ; Getters int Function GetPropertyInt(string propertyName) return 0 EndFunction bool Function GetPropertyBool(string propertyName) return false EndFunction string Function GetPropertyString(string propertyName) return "" EndFunction float Function GetPropertyFloat(string propertyName) return 0.0 EndFunction Form Function GetPropertyForm(string propertyName) return None EndFunction Alias Function GetPropertyAlias(string propertyName) return None EndFunction ; Setters Function SetPropertyInt(string propertyName, int value) EndFunction Function SetPropertyBool(string propertyName, bool value) EndFunction Function SetPropertyString(string propertyName, string value) EndFunction Function SetPropertyFloat(string propertyName, float value) EndFunction Function SetPropertyForm(string propertyName, Form value) EndFunction Function SetPropertyAlias(string propertyName, Alias value) EndFunction ; Property Index functions Function SetPropertyIndexInt(string propertyName, int index, int value) EndFunction Function SetPropertyIndexBool(string propertyName, int index, bool value) EndFunction Function SetPropertyIndexString(string propertyName, int index, string value) EndFunction Function SetPropertyIndexFloat(string propertyName, int index, float value) EndFunction Function SetPropertyIndexForm(string propertyName, int index, Form value) EndFunction Function SetPropertyIndexAlias(string propertyName, int index, Alias value) EndFunction ; Array Functions Function SetPropertyIntA(string propertyName, int[] value) EndFunction Function SetPropertyBoolA(string propertyName, bool[] value) EndFunction Function SetPropertyStringA(string propertyName, string[] value) EndFunction Function SetPropertyFloatA(string propertyName, float[] value) EndFunction Function SetPropertyFormA(string propertyName, Form[] value) EndFunction Function SetPropertyAliasA(string propertyName, Alias[] value) EndFunction