// this script was compiled with wurst 1.8.1.0-jenkins-Wurst-1365 globals // originframetype ORIGIN_FRAME_GAME_UI=null // integer bj_MAX_PLAYER_SLOTS=0 string array Colors_hexs integer Colors_decs=0 hashtable ErrorHandling_HT=null framehandle Framehandle_GAME_UI=null real GameTimer_currentTime=0. boolean MagicFunctions_compiletime=false player Player_localPlayer=null hashtable Table_ht=null integer TypeCasting_typecastdata=0 hashtable hashtable_compiletime=null hashtable hashtable_compiletime_16=null integer array Table_nextFree integer Table_firstFree=0 integer Table_maxIndex=0 integer array Table_typeId code ref_function_init_AbilityIds=null code ref_function_init_Real=null code ref_function_init_Integer=null code ref_function_init_Angle=null code ref_function_init_String=null code ref_function_init_Vectors=null code ref_function_init_Destructable=null code ref_function_init_Player=null code ref_function_init_Basics=null code ref_function_init_MagicFunctions=null code ref_function_init_Table=null code ref_function_init_Playercolor=null code ref_function_init_Maths=null code ref_function_init_Colors=null code ref_function_init_Printing=null code ref_function_init_GameTimer=null code ref_function_init_ErrorHandling=null code ref_function_init_HashList=null code ref_function_init_Matrices=null code ref_function_init_Quaternion=null code ref_function_init_Framehandle=null code ref_function_init_Group=null code ref_function_init_Lightning=null code ref_function_init_WeatherEffects=null code ref_function_init_TypeCasting=null code ref_function_init_EventHelper=null code ref_function_init_test=null code ref_function_code__startPeriodic_GameTimer=null endglobals function Loglevel_getTag takes integer this returns string if this == 0 then return "|cffADADADtrace|r" elseif this == 1 then return "|cff2685DCdebug|r" elseif this == 2 then return "|cffFFCC00info|r" elseif this == 3 then return "|cffF47E3Ewarning|r" else return "|cffFB2700error|r" endif endfunction function printLog takes player showTo, integer loglvl, string msg returns nothing if 2 <= loglvl then call DisplayTimedTextToPlayer(showTo, 0., 0., 45., Loglevel_getTag(loglvl) + " - " + msg) endif endfunction function Log_error takes string msg returns nothing call printLog(Player_localPlayer, 4, msg) endfunction function compileError takes string msg returns nothing endfunction function hashtable_hasBoolean takes hashtable this, integer parentKey, integer childKey returns boolean return HaveSavedBoolean(this, parentKey, childKey) endfunction function hashtable_hasInt takes hashtable this, integer parentKey, integer childKey returns boolean return HaveSavedInteger(this, parentKey, childKey) endfunction function hashtable_loadBoolean takes hashtable this, integer parentKey, integer childKey returns boolean return LoadBoolean(this, parentKey, childKey) endfunction function hashtable_loadInt takes hashtable this, integer parentKey, integer childKey returns integer return LoadInteger(this, parentKey, childKey) endfunction function hashtable_saveBoolean takes hashtable this, integer parentKey, integer childKey, boolean value returns nothing call SaveBoolean(this, parentKey, childKey, value) endfunction function hashtable_saveInt takes hashtable this, integer parentKey, integer childKey, integer value returns nothing call SaveInteger(this, parentKey, childKey, value) endfunction function real_toInt takes real this returns integer return R2I(this) endfunction function string_getHash takes string this returns integer return StringHash(this) endfunction function error takes string msg returns nothing local integer hash if MagicFunctions_compiletime then call compileError("ERROR: " + msg) else set hash = string_getHash(msg) if hashtable_hasInt(ErrorHandling_HT, -1, hash) then if hashtable_loadInt(ErrorHandling_HT, -1, hash) + 60 < GameTimer_currentTime then call Log_error(msg + "") call hashtable_saveInt(ErrorHandling_HT, -1, hash, real_toInt(GameTimer_currentTime)) call hashtable_saveBoolean(ErrorHandling_HT, -1, hash, false) elseif hashtable_hasBoolean(ErrorHandling_HT, -1, hash) then if not hashtable_loadBoolean(ErrorHandling_HT, -1, hash) then call Log_error("|cffFF3A29Excessive repeating errors are being omitted") call hashtable_saveBoolean(ErrorHandling_HT, -1, hash, true) endif else call Log_error("|cffFF3A29Excessive repeating errors are being omitted") call hashtable_saveBoolean(ErrorHandling_HT, -1, hash, true) endif else call hashtable_saveInt(ErrorHandling_HT, -1, hash, real_toInt(GameTimer_currentTime)) call Log_error("Message: " + msg + "") endif call I2S(1 / 0) endif endfunction function initCompiletimeState_0 takes nothing returns nothing call InitHashtable() call InitHashtable() set hashtable_compiletime_16 = InitHashtable() set hashtable_compiletime = InitHashtable() call SaveInteger(hashtable_compiletime_16, 1, -242600650, 0) call SaveInteger(hashtable_compiletime_16, 1, 1132341824, 1) call SaveInteger(hashtable_compiletime_16, 1, -647782241, 2) call SaveInteger(hashtable_compiletime_16, 1, -854572045, 3) call SaveInteger(hashtable_compiletime_16, 1, -680649701, 4) call SaveInteger(hashtable_compiletime_16, 1, -943650483, 5) call SaveInteger(hashtable_compiletime_16, 1, -671760605, 6) call SaveInteger(hashtable_compiletime_16, 1, 349230650, 7) call SaveInteger(hashtable_compiletime_16, 1, -1894922563, 8) call SaveInteger(hashtable_compiletime_16, 1, -1474492777, 9) call SaveInteger(hashtable_compiletime_16, 1, -1587459251, 10) call SaveInteger(hashtable_compiletime_16, 1, -1676716706, 11) call SaveInteger(hashtable_compiletime_16, 1, -1559655710, 12) call SaveInteger(hashtable_compiletime_16, 1, -1663695754, 13) call SaveInteger(hashtable_compiletime_16, 1, 597637742, 14) call SaveInteger(hashtable_compiletime_16, 1, 789744696, 15) call SaveStr(hashtable_compiletime_16, 2, 0, "") endfunction function initCompiletimeState takes nothing returns nothing call ExecuteFunc("initCompiletimeState_0") endfunction function code__startPeriodic_GameTimer takes nothing returns nothing set GameTimer_currentTime = GameTimer_currentTime + 0.030 endfunction function init_AbilityIds takes nothing returns boolean return true endfunction function init_Angle takes nothing returns boolean return true endfunction function init_Basics takes nothing returns boolean return true endfunction function toHex takes integer number returns string local integer firstpart = number / 16 return Colors_hexs[firstpart] + Colors_hexs[number - firstpart * 16] endfunction function colorA_toColorString takes integer this_red, integer this_green, integer this_blue, integer this_alpha returns string return "|c" + toHex(this_alpha) + toHex(this_red) + toHex(this_green) + toHex(this_blue) endfunction function Table_saveInt takes integer this, integer parentKey, integer value returns nothing call hashtable_saveInt(Table_ht, this, parentKey, value) endfunction function dispatch_Table_Table_Table_saveInt takes integer this, integer parentKey, integer value returns nothing if Table_typeId[this] == 0 then if this == 0 then call error("Nullpointer exception when calling Table.saveInt") else call error("Called Table.saveInt on invalid object.") endif endif call Table_saveInt(this, parentKey, value) endfunction function initializeTable takes nothing returns nothing local integer i = 0 loop exitwhen i > 15 call dispatch_Table_Table_Table_saveInt(Colors_decs, string_getHash(Colors_hexs[i]), i) set i = i + 1 endloop endfunction function alloc_Table takes nothing returns integer local integer this if Table_firstFree == 0 then if Table_maxIndex < 32768 then set Table_maxIndex = Table_maxIndex + 1 set this = Table_maxIndex set Table_typeId[this] = 12 else call error("Out of memory: Could not create Table.") set this = 0 endif else set Table_firstFree = Table_firstFree - 1 set this = Table_nextFree[Table_firstFree] set Table_typeId[this] = 12 endif return this endfunction function Table_init takes integer this returns nothing endfunction function construct_Table takes integer this returns nothing call Table_init(this) endfunction function new_Table takes nothing returns integer local integer this = alloc_Table() call construct_Table(this) return this endfunction function init_Colors takes nothing returns boolean set Colors_hexs[0] = "0" set Colors_hexs[1] = "1" set Colors_hexs[2] = "2" set Colors_hexs[3] = "3" set Colors_hexs[4] = "4" set Colors_hexs[5] = "5" set Colors_hexs[6] = "6" set Colors_hexs[7] = "7" set Colors_hexs[8] = "8" set Colors_hexs[9] = "9" set Colors_hexs[10] = "A" set Colors_hexs[11] = "B" set Colors_hexs[12] = "C" set Colors_hexs[13] = "D" set Colors_hexs[14] = "E" set Colors_hexs[15] = "F" set Colors_decs = new_Table() call colorA_toColorString(255, 255, 255, 255) call colorA_toColorString(0, 0, 0, 0) call colorA_toColorString(255, 204, 0, 255) call initializeTable() return true endfunction function init_Destructable takes nothing returns boolean return true endfunction function init_ErrorHandling takes nothing returns boolean set ErrorHandling_HT = hashtable_compiletime return true endfunction function alloc_HashMap takes nothing returns integer local integer this if Table_firstFree == 0 then if Table_maxIndex < 32768 then set Table_maxIndex = Table_maxIndex + 1 set this = Table_maxIndex set Table_typeId[this] = 13 else call error("Out of memory: Could not create HashMap.") set this = 0 endif else set Table_firstFree = Table_firstFree - 1 set this = Table_nextFree[Table_firstFree] set Table_typeId[this] = 13 endif return this endfunction function HashMap_init takes integer this returns nothing endfunction function construct_HashMap takes integer this returns nothing call construct_Table(this) call HashMap_init(this) endfunction function new_HashMap takes nothing returns integer local integer this = alloc_HashMap() call construct_HashMap(this) return this endfunction function init_EventHelper takes nothing returns boolean call new_HashMap() call new_HashMap() call new_Table() return true endfunction function int_toString takes integer this returns string return I2S(this) endfunction function string_length takes string this returns integer return StringLength(this) endfunction function verifyFrameNameLength takes string name returns boolean if string_length(name) > 560 then call error("Trying to address frame with exceeding maximum frame name length (" + int_toString(560) + ") for: " + name) return false endif return true endfunction function createFrame takes string typeName, string name, framehandle owner, string inherits, integer createContext returns framehandle call verifyFrameNameLength(name) return BlzCreateFrameByType(typeName, name, owner, inherits, createContext) endfunction function framehandle_setSize takes framehandle this, real width, real height returns nothing call BlzFrameSetSize(this, width, height) endfunction function init_Framehandle takes nothing returns boolean set Framehandle_GAME_UI = BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0) call framehandle_setSize(createFrame("FRAME", "SetMousePositionCage", Framehandle_GAME_UI, null, 0), 0.0001, 0.0001) return true endfunction function timer_start takes timer this, real time, code timerCallBack returns nothing call TimerStart(this, time, false, timerCallBack) endfunction function timer_startPeriodic takes timer this, real time, code timerCallBack returns nothing call TimerStart(this, time, true, timerCallBack) endfunction function init_GameTimer takes nothing returns boolean call timer_start(CreateTimer(), 100000., null) call timer_startPeriodic(CreateTimer(), 0.030, ref_function_code__startPeriodic_GameTimer) return true endfunction function init_Group takes nothing returns boolean call CreateGroup() return true endfunction function init_HashList takes nothing returns boolean return true endfunction function init_Integer takes nothing returns boolean return true endfunction function init_Lightning takes nothing returns boolean return true endfunction function init_MagicFunctions takes nothing returns boolean set MagicFunctions_compiletime = false return true endfunction function init_Maths takes nothing returns boolean return true endfunction function init_Matrices takes nothing returns boolean return true endfunction function initPlayerArray takes nothing returns nothing local integer i = 0 local integer temp = bj_MAX_PLAYER_SLOTS - 1 loop exitwhen i > temp set i = i + 1 endloop endfunction function init_Player takes nothing returns boolean set Player_localPlayer = GetLocalPlayer() call initPlayerArray() return true endfunction function init_Playercolor takes nothing returns boolean return true endfunction function init_Printing takes nothing returns boolean return true endfunction function init_Quaternion takes nothing returns boolean return true endfunction function init_Real takes nothing returns boolean return true endfunction function init_String takes nothing returns boolean call string_length("0123456789") call string_length("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") return true endfunction function init_Table takes nothing returns boolean set Table_ht = hashtable_compiletime_16 return true endfunction function hashtable_saveString takes hashtable this, integer parentKey, integer childKey, string value returns nothing call SaveStr(this, parentKey, childKey, value) endfunction function Table_saveString takes integer this, integer parentKey, string value returns nothing call hashtable_saveString(Table_ht, this, parentKey, value) endfunction function dispatch_Table_Table_Table_saveString takes integer this, integer parentKey, string value returns nothing if Table_typeId[this] == 0 then if this == 0 then call error("Nullpointer exception when calling Table.saveString") else call error("Called Table.saveString on invalid object.") endif endif call Table_saveString(this, parentKey, value) endfunction function initTypecastData takes nothing returns nothing call dispatch_Table_Table_Table_saveString(TypeCasting_typecastdata, 0, "") endfunction function init_TypeCasting takes nothing returns boolean set TypeCasting_typecastdata = new_Table() call initTypecastData() return true endfunction function init_Vectors takes nothing returns boolean call Location(0., 0.) return true endfunction function init_WeatherEffects takes nothing returns boolean return true endfunction function group_hasNext takes group this returns boolean return FirstOfGroup(this) != null endfunction function group_next takes group this returns unit local unit iterUnit = FirstOfGroup(this) call GroupRemoveUnit(this, iterUnit) return iterUnit endfunction function init_test takes nothing returns boolean local group g = CreateGroup() local group from = g loop exitwhen not group_hasNext(from) call group_next(from) endloop call DestroyGroup(g) return true endfunction function initGlobals takes nothing returns nothing set ref_function_init_AbilityIds = function init_AbilityIds set ref_function_init_Real = function init_Real set ref_function_init_Integer = function init_Integer set ref_function_init_Angle = function init_Angle set ref_function_init_String = function init_String set ref_function_init_Vectors = function init_Vectors set ref_function_init_Destructable = function init_Destructable set ref_function_init_Player = function init_Player set ref_function_init_Basics = function init_Basics set ref_function_init_MagicFunctions = function init_MagicFunctions set ref_function_init_Table = function init_Table set ref_function_init_Playercolor = function init_Playercolor set ref_function_init_Maths = function init_Maths set ref_function_init_Colors = function init_Colors set ref_function_init_Printing = function init_Printing set ref_function_init_GameTimer = function init_GameTimer set ref_function_init_ErrorHandling = function init_ErrorHandling set ref_function_init_HashList = function init_HashList set ref_function_init_Matrices = function init_Matrices set ref_function_init_Quaternion = function init_Quaternion set ref_function_init_Framehandle = function init_Framehandle set ref_function_init_Group = function init_Group set ref_function_init_Lightning = function init_Lightning set ref_function_init_WeatherEffects = function init_WeatherEffects set ref_function_init_TypeCasting = function init_TypeCasting set ref_function_init_EventHelper = function init_EventHelper set ref_function_init_test = function init_test set ref_function_code__startPeriodic_GameTimer = function code__startPeriodic_GameTimer endfunction function main takes nothing returns nothing local trigger initTrig call initGlobals() call initCompiletimeState() set initTrig = CreateTrigger() call TriggerAddCondition(initTrig, Condition(ref_function_init_AbilityIds)) if not TriggerEvaluate(initTrig) then call error("Could not initialize package AbilityIds.") endif call TriggerClearConditions(initTrig) call TriggerAddCondition(initTrig, Condition(ref_function_init_Real)) if not TriggerEvaluate(initTrig) then call error("Could not initialize package Real.") endif call TriggerClearConditions(initTrig) call TriggerAddCondition(initTrig, Condition(ref_function_init_Integer)) if not TriggerEvaluate(initTrig) then call error("Could not initialize package Integer.") endif call TriggerClearConditions(initTrig) call TriggerAddCondition(initTrig, Condition(ref_function_init_Angle)) if not TriggerEvaluate(initTrig) then call error("Could not initialize package Angle.") endif call TriggerClearConditions(initTrig) call TriggerAddCondition(initTrig, Condition(ref_function_init_String)) if not TriggerEvaluate(initTrig) then call error("Could not initialize package String.") endif call TriggerClearConditions(initTrig) call TriggerAddCondition(initTrig, Condition(ref_function_init_Vectors)) if not TriggerEvaluate(initTrig) then call error("Could not initialize package Vectors.") endif call TriggerClearConditions(initTrig) call TriggerAddCondition(initTrig, Condition(ref_function_init_Destructable)) if not TriggerEvaluate(initTrig) then call error("Could not initialize package Destructable.") endif call TriggerClearConditions(initTrig) call TriggerAddCondition(initTrig, Condition(ref_function_init_Player)) if not TriggerEvaluate(initTrig) then call error("Could not initialize package Player.") endif call TriggerClearConditions(initTrig) call TriggerAddCondition(initTrig, Condition(ref_function_init_Basics)) if not TriggerEvaluate(initTrig) then call error("Could not initialize package Basics.") endif call TriggerClearConditions(initTrig) call TriggerAddCondition(initTrig, Condition(ref_function_init_MagicFunctions)) if not TriggerEvaluate(initTrig) then call error("Could not initialize package MagicFunctions.") endif call TriggerClearConditions(initTrig) call TriggerAddCondition(initTrig, Condition(ref_function_init_Table)) if not TriggerEvaluate(initTrig) then call error("Could not initialize package Table.") endif call TriggerClearConditions(initTrig) call TriggerAddCondition(initTrig, Condition(ref_function_init_Playercolor)) if not TriggerEvaluate(initTrig) then call error("Could not initialize package Playercolor.") endif call TriggerClearConditions(initTrig) call TriggerAddCondition(initTrig, Condition(ref_function_init_Maths)) if not TriggerEvaluate(initTrig) then call error("Could not initialize package Maths.") endif call TriggerClearConditions(initTrig) call TriggerAddCondition(initTrig, Condition(ref_function_init_Colors)) if not TriggerEvaluate(initTrig) then call error("Could not initialize package Colors.") endif call TriggerClearConditions(initTrig) call TriggerAddCondition(initTrig, Condition(ref_function_init_Printing)) if not TriggerEvaluate(initTrig) then call error("Could not initialize package Printing.") endif call TriggerClearConditions(initTrig) call TriggerAddCondition(initTrig, Condition(ref_function_init_GameTimer)) if not TriggerEvaluate(initTrig) then call error("Could not initialize package GameTimer.") endif call TriggerClearConditions(initTrig) call TriggerAddCondition(initTrig, Condition(ref_function_init_ErrorHandling)) if not TriggerEvaluate(initTrig) then call error("Could not initialize package ErrorHandling.") endif call TriggerClearConditions(initTrig) call TriggerAddCondition(initTrig, Condition(ref_function_init_HashList)) if not TriggerEvaluate(initTrig) then call error("Could not initialize package HashList.") endif call TriggerClearConditions(initTrig) call TriggerAddCondition(initTrig, Condition(ref_function_init_Matrices)) if not TriggerEvaluate(initTrig) then call error("Could not initialize package Matrices.") endif call TriggerClearConditions(initTrig) call TriggerAddCondition(initTrig, Condition(ref_function_init_Quaternion)) if not TriggerEvaluate(initTrig) then call error("Could not initialize package Quaternion.") endif call TriggerClearConditions(initTrig) call TriggerAddCondition(initTrig, Condition(ref_function_init_Framehandle)) if not TriggerEvaluate(initTrig) then call error("Could not initialize package Framehandle.") endif call TriggerClearConditions(initTrig) call TriggerAddCondition(initTrig, Condition(ref_function_init_Group)) if not TriggerEvaluate(initTrig) then call error("Could not initialize package Group.") endif call TriggerClearConditions(initTrig) call TriggerAddCondition(initTrig, Condition(ref_function_init_Lightning)) if not TriggerEvaluate(initTrig) then call error("Could not initialize package Lightning.") endif call TriggerClearConditions(initTrig) call TriggerAddCondition(initTrig, Condition(ref_function_init_WeatherEffects)) if not TriggerEvaluate(initTrig) then call error("Could not initialize package WeatherEffects.") endif call TriggerClearConditions(initTrig) call TriggerAddCondition(initTrig, Condition(ref_function_init_TypeCasting)) if not TriggerEvaluate(initTrig) then call error("Could not initialize package TypeCasting.") endif call TriggerClearConditions(initTrig) call TriggerAddCondition(initTrig, Condition(ref_function_init_EventHelper)) if not TriggerEvaluate(initTrig) then call error("Could not initialize package EventHelper.") endif call TriggerClearConditions(initTrig) call TriggerAddCondition(initTrig, Condition(ref_function_init_test)) if not TriggerEvaluate(initTrig) then call error("Could not initialize package test.") endif call TriggerClearConditions(initTrig) call DestroyTrigger(initTrig) endfunction function config takes nothing returns nothing endfunction