// this script was compiled with wurst 1.8.1.0-jenkins-Wurst-1367 globals // originframetype ORIGIN_FRAME_GAME_UI=null // originframetype ORIGIN_FRAME_WORLD_FRAME=null // integer bj_MAX_PLAYER_SLOTS=0 // rect bj_mapInitialPlayableArea=null string array Colors_hexs integer Colors_decs=0 integer Colors_COLOR_WHITE_red=0 integer Colors_COLOR_WHITE_green=0 integer Colors_COLOR_WHITE_blue=0 integer Colors_COLOR_WHITE_alpha=0 integer Colors_COLOR_BLACK_red=0 integer Colors_COLOR_BLACK_green=0 integer Colors_COLOR_BLACK_blue=0 integer Colors_COLOR_BLACK_alpha=0 integer Colors_COLOR_GOLD_red=0 integer Colors_COLOR_GOLD_green=0 integer Colors_COLOR_GOLD_blue=0 integer Colors_COLOR_GOLD_alpha=0 hashtable ErrorHandling_HT=null framehandle Framehandle_GAME_UI=null real GameTimer_currentTime=0. boolean MagicFunctions_compiletime=false rect MapBounds_playableMapRect=null rect MapBounds_boundRect=null real MapBounds_playableMin_x=0. real MapBounds_playableMin_y=0. real MapBounds_playableMax_x=0. real MapBounds_playableMax_y=0. real MapBounds_boundMin_x=0. real MapBounds_boundMin_y=0. real MapBounds_boundMax_x=0. real MapBounds_boundMax_y=0. integer ObjectRecycler_objectLists=0 player Player_localPlayer=null hashtable Table_ht=null integer TypeCasting_typecastdata=0 hashtable hashtable_compiletime=null hashtable hashtable_compiletime_53=null integer array Table_nextFree integer Table_firstFree=0 integer Table_maxIndex=0 integer array Table_typeId integer array SEntry_nextFree integer SEntry_firstFree=0 integer SEntry_maxIndex=0 integer array Stack_nextFree integer Stack_firstFree=0 integer Stack_maxIndex=0 integer array Stack_typeId integer array SEntry_elem integer array SEntry_prev integer array Stack_dummy integer array Stack_top integer array Stack_size 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_MapBounds=null code ref_function_init_ObjectRecycler=null code ref_function_code__startPeriodic_GameTimer=null endglobals function Loglevel_getTag takes integer this returns string local integer temp = this if temp == 0 then return "|cffADADADtrace|r" elseif temp == 1 then return "|cff2685DCdebug|r" elseif temp == 2 then return "|cffFFCC00info|r" elseif temp == 3 then return "|cffF47E3Ewarning|r" else return "|cffFB2700error|r" endif endfunction function compileError takes string msg returns nothing endfunction function error takes string msg returns nothing local integer hash local string this local hashtable this_1 local integer parentKey local integer childKey local hashtable this_2 local integer parentKey_1 local integer childKey_1 local string msg_1 local player showTo local integer loglvl local string msg_2 local string compositeMsg local hashtable this_3 local integer parentKey_2 local integer childKey_2 local integer value local real this_4 local hashtable this_5 local integer parentKey_3 local integer childKey_3 local boolean value_1 local hashtable this_6 local integer parentKey_4 local integer childKey_4 local hashtable this_7 local integer parentKey_5 local integer childKey_5 local string msg_3 local player showTo_1 local integer loglvl_1 local string msg_4 local string compositeMsg_1 local hashtable this_8 local integer parentKey_6 local integer childKey_6 local boolean value_2 local string msg_5 local player showTo_2 local integer loglvl_2 local string msg_6 local string compositeMsg_2 local hashtable this_9 local integer parentKey_7 local integer childKey_7 local boolean value_3 local hashtable this_10 local integer parentKey_8 local integer childKey_8 local integer value_4 local real this_11 local string msg_7 local player showTo_3 local integer loglvl_3 local string msg_8 local string compositeMsg_3 if MagicFunctions_compiletime then call compileError("ERROR: " + msg) else if not false then set this = msg set hash = StringHash(this) set this_1 = ErrorHandling_HT set parentKey = -1 set childKey = hash if HaveSavedInteger(this_1, parentKey, childKey) then set this_2 = ErrorHandling_HT set parentKey_1 = -1 set childKey_1 = hash if LoadInteger(this_2, parentKey_1, childKey_1) + 60 < GameTimer_currentTime then set msg_1 = msg + "" set showTo = Player_localPlayer set loglvl = 4 set msg_2 = msg_1 if 2 <= loglvl then set compositeMsg = Loglevel_getTag(loglvl) + " - " + msg_2 call DisplayTimedTextToPlayer(showTo, 0., 0., 45., compositeMsg) endif set this_3 = ErrorHandling_HT set parentKey_2 = -1 set childKey_2 = hash set this_4 = GameTimer_currentTime set value = R2I(this_4) call SaveInteger(this_3, parentKey_2, childKey_2, value) set this_5 = ErrorHandling_HT set parentKey_3 = -1 set childKey_3 = hash set value_1 = false call SaveBoolean(this_5, parentKey_3, childKey_3, value_1) else set this_6 = ErrorHandling_HT set parentKey_4 = -1 set childKey_4 = hash if HaveSavedBoolean(this_6, parentKey_4, childKey_4) then set this_7 = ErrorHandling_HT set parentKey_5 = -1 set childKey_5 = hash if not LoadBoolean(this_7, parentKey_5, childKey_5) then set msg_3 = "|cffFF3A29Excessive repeating errors are being omitted" set showTo_1 = Player_localPlayer set loglvl_1 = 4 set msg_4 = msg_3 if 2 <= loglvl_1 then set compositeMsg_1 = Loglevel_getTag(loglvl_1) + " - " + msg_4 call DisplayTimedTextToPlayer(showTo_1, 0., 0., 45., compositeMsg_1) endif set this_8 = ErrorHandling_HT set parentKey_6 = -1 set childKey_6 = hash set value_2 = true call SaveBoolean(this_8, parentKey_6, childKey_6, value_2) endif else set msg_5 = "|cffFF3A29Excessive repeating errors are being omitted" set showTo_2 = Player_localPlayer set loglvl_2 = 4 set msg_6 = msg_5 if 2 <= loglvl_2 then set compositeMsg_2 = Loglevel_getTag(loglvl_2) + " - " + msg_6 call DisplayTimedTextToPlayer(showTo_2, 0., 0., 45., compositeMsg_2) endif set this_9 = ErrorHandling_HT set parentKey_7 = -1 set childKey_7 = hash set value_3 = true call SaveBoolean(this_9, parentKey_7, childKey_7, value_3) endif endif else set this_10 = ErrorHandling_HT set parentKey_8 = -1 set childKey_8 = hash set this_11 = GameTimer_currentTime set value_4 = R2I(this_11) call SaveInteger(this_10, parentKey_8, childKey_8, value_4) set msg_7 = "Message: " + msg + "" set showTo_3 = Player_localPlayer set loglvl_3 = 4 set msg_8 = msg_7 if 2 <= loglvl_3 then set compositeMsg_3 = Loglevel_getTag(loglvl_3) + " - " + msg_8 call DisplayTimedTextToPlayer(showTo_3, 0., 0., 45., compositeMsg_3) endif endif endif call I2S(1 / 0) endif endfunction function initCompiletimeState_0 takes nothing returns nothing call InitHashtable() call InitHashtable() set hashtable_compiletime_53 = InitHashtable() set hashtable_compiletime = InitHashtable() call SaveInteger(hashtable_compiletime_53, 1, -242600650, 0) call SaveInteger(hashtable_compiletime_53, 1, 1132341824, 1) call SaveInteger(hashtable_compiletime_53, 1, -647782241, 2) call SaveInteger(hashtable_compiletime_53, 1, -854572045, 3) call SaveInteger(hashtable_compiletime_53, 1, -680649701, 4) call SaveInteger(hashtable_compiletime_53, 1, -943650483, 5) call SaveInteger(hashtable_compiletime_53, 1, -671760605, 6) call SaveInteger(hashtable_compiletime_53, 1, 349230650, 7) call SaveInteger(hashtable_compiletime_53, 1, -1894922563, 8) call SaveInteger(hashtable_compiletime_53, 1, -1474492777, 9) call SaveInteger(hashtable_compiletime_53, 1, -1587459251, 10) call SaveInteger(hashtable_compiletime_53, 1, -1676716706, 11) call SaveInteger(hashtable_compiletime_53, 1, -1559655710, 12) call SaveInteger(hashtable_compiletime_53, 1, -1663695754, 13) call SaveInteger(hashtable_compiletime_53, 1, 597637742, 14) call SaveInteger(hashtable_compiletime_53, 1, 789744696, 15) call SaveStr(hashtable_compiletime_53, 2, 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 dispatch_Table_Table_Table_saveInt takes integer this, integer parentKey, integer value returns nothing local integer this_1 local integer parentKey_1 local integer value_1 local hashtable this_2 local integer parentKey_2 local integer childKey local integer value_2 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 set this_1 = this set parentKey_1 = parentKey set value_1 = value set this_2 = Table_ht set parentKey_2 = this_1 set childKey = parentKey_1 set value_2 = value_1 call SaveInteger(this_2, parentKey_2, childKey, value_2) endfunction function new_Table takes nothing returns integer local integer this local integer this_1 if Table_firstFree == 0 then if Table_maxIndex < 32768 then set Table_maxIndex = Table_maxIndex + 1 set this_1 = Table_maxIndex set Table_typeId[this_1] = 15 else call error("Out of memory: Could not create Table.") set this_1 = 0 endif else set Table_firstFree = Table_firstFree - 1 set this_1 = Table_nextFree[Table_firstFree] set Table_typeId[this_1] = 15 endif set this = this_1 return this endfunction function init_Colors takes nothing returns boolean local integer this_red local integer this_green local integer this_blue local integer this_alpha local integer number local integer firstpart local integer secondpart local integer number_1 local integer firstpart_1 local integer secondpart_1 local integer number_2 local integer firstpart_2 local integer number_3 local integer this_red_1 local integer this_green_1 local integer this_blue_1 local integer this_alpha_1 local integer number_4 local integer firstpart_3 local integer secondpart_2 local integer number_5 local integer firstpart_4 local integer secondpart_3 local integer number_6 local integer firstpart_5 local integer number_7 local integer this_red_2 local integer this_green_2 local integer this_blue_2 local integer this_alpha_2 local integer number_8 local integer firstpart_6 local integer secondpart_4 local integer number_9 local integer firstpart_7 local integer secondpart_5 local integer number_10 local integer firstpart_8 local integer number_11 local integer i local string this local string temp local string temp_1 local string temp_2 local integer temp_3 local integer tuple_temp local integer tuple_temp_1 local integer tuple_temp_2 local integer tuple_temp_3 local integer tuple_temp_4 local integer tuple_temp_5 local integer tuple_temp_6 local integer tuple_temp_7 local integer tuple_temp_8 local integer tuple_temp_9 local integer tuple_temp_10 local integer tuple_temp_11 local integer tuple_temp_12 local integer tuple_temp_13 local integer tuple_temp_14 local integer tuple_temp_15 local integer tuple_temp_16 local integer tuple_temp_17 local integer tuple_temp_18 local integer tuple_temp_19 local integer tuple_temp_20 local integer tuple_temp_21 local integer tuple_temp_22 local integer tuple_temp_23 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() set tuple_temp = 255 set tuple_temp_1 = 255 set tuple_temp_2 = 255 set tuple_temp_3 = 255 set Colors_COLOR_WHITE_red = tuple_temp set Colors_COLOR_WHITE_green = tuple_temp_1 set Colors_COLOR_WHITE_blue = tuple_temp_2 set Colors_COLOR_WHITE_alpha = tuple_temp_3 set tuple_temp_4 = 0 set tuple_temp_5 = 0 set tuple_temp_6 = 0 set tuple_temp_7 = 0 set Colors_COLOR_BLACK_red = tuple_temp_4 set Colors_COLOR_BLACK_green = tuple_temp_5 set Colors_COLOR_BLACK_blue = tuple_temp_6 set Colors_COLOR_BLACK_alpha = tuple_temp_7 set tuple_temp_8 = 255 set tuple_temp_9 = 204 set tuple_temp_10 = 0 set tuple_temp_11 = 255 set Colors_COLOR_GOLD_red = tuple_temp_8 set Colors_COLOR_GOLD_green = tuple_temp_9 set Colors_COLOR_GOLD_blue = tuple_temp_10 set Colors_COLOR_GOLD_alpha = tuple_temp_11 set tuple_temp_12 = Colors_COLOR_WHITE_red set tuple_temp_13 = Colors_COLOR_WHITE_green set tuple_temp_14 = Colors_COLOR_WHITE_blue set tuple_temp_15 = Colors_COLOR_WHITE_alpha set this_red = tuple_temp_12 set this_green = tuple_temp_13 set this_blue = tuple_temp_14 set this_alpha = tuple_temp_15 set number = this_alpha set firstpart = number / 16 set secondpart = number - firstpart * 16 set temp = "|c" + Colors_hexs[firstpart] + Colors_hexs[secondpart] set number_1 = this_red set firstpart_1 = number_1 / 16 set secondpart_1 = number_1 - firstpart_1 * 16 set number_2 = this_green set firstpart_2 = number_2 / 16 set number_3 = this_blue set tuple_temp_16 = Colors_COLOR_BLACK_red set tuple_temp_17 = Colors_COLOR_BLACK_green set tuple_temp_18 = Colors_COLOR_BLACK_blue set tuple_temp_19 = Colors_COLOR_BLACK_alpha set this_red_1 = tuple_temp_16 set this_green_1 = tuple_temp_17 set this_blue_1 = tuple_temp_18 set this_alpha_1 = tuple_temp_19 set number_4 = this_alpha_1 set firstpart_3 = number_4 / 16 set secondpart_2 = number_4 - firstpart_3 * 16 set temp_1 = "|c" + Colors_hexs[firstpart_3] + Colors_hexs[secondpart_2] set number_5 = this_red_1 set firstpart_4 = number_5 / 16 set secondpart_3 = number_5 - firstpart_4 * 16 set number_6 = this_green_1 set firstpart_5 = number_6 / 16 set number_7 = this_blue_1 set tuple_temp_20 = Colors_COLOR_GOLD_red set tuple_temp_21 = Colors_COLOR_GOLD_green set tuple_temp_22 = Colors_COLOR_GOLD_blue set tuple_temp_23 = Colors_COLOR_GOLD_alpha set this_red_2 = tuple_temp_20 set this_green_2 = tuple_temp_21 set this_blue_2 = tuple_temp_22 set this_alpha_2 = tuple_temp_23 set number_8 = this_alpha_2 set firstpart_6 = number_8 / 16 set secondpart_4 = number_8 - firstpart_6 * 16 set temp_2 = "|c" + Colors_hexs[firstpart_6] + Colors_hexs[secondpart_4] set number_9 = this_red_2 set firstpart_7 = number_9 / 16 set secondpart_5 = number_9 - firstpart_7 * 16 set number_10 = this_green_2 set firstpart_8 = number_10 / 16 set number_11 = this_blue_2 set i = 0 loop exitwhen i > 15 set temp_3 = Colors_decs set this = Colors_hexs[i] call dispatch_Table_Table_Table_saveInt(temp_3, StringHash(this), i) set i = i + 1 endloop 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 new_HashMap takes nothing returns integer local integer this local integer this_1 if Table_firstFree == 0 then if Table_maxIndex < 32768 then set Table_maxIndex = Table_maxIndex + 1 set this_1 = Table_maxIndex set Table_typeId[this_1] = 16 else call error("Out of memory: Could not create HashMap.") set this_1 = 0 endif else set Table_firstFree = Table_firstFree - 1 set this_1 = Table_nextFree[Table_firstFree] set Table_typeId[this_1] = 16 endif set this = this_1 return this endfunction function init_EventHelper takes nothing returns boolean call new_HashMap() call new_HashMap() call new_Table() return true endfunction function verifyFrameNameLength takes string name returns boolean local string this = name local integer this_1 if StringLength(this) > 560 then set this_1 = 560 call error("Trying to address frame with exceeding maximum frame name length (" + I2S(this_1) + ") for: " + name) return false endif return true endfunction function init_Framehandle takes nothing returns boolean local framehandle receiver local string typeName local string name local framehandle owner local string inherits local integer createContext local framehandle this local real width local real height set Framehandle_GAME_UI = BlzGetOriginFrame(ORIGIN_FRAME_GAME_UI, 0) call BlzGetOriginFrame(ORIGIN_FRAME_WORLD_FRAME, 0) set typeName = "FRAME" set name = "SetMousePositionCage" set owner = Framehandle_GAME_UI set inherits = null set createContext = 0 call verifyFrameNameLength(name) set receiver = BlzCreateFrameByType(typeName, name, owner, inherits, createContext) set this = receiver set width = 0.0001 set height = 0.0001 call BlzFrameSetSize(this, width, height) return true endfunction function init_GameTimer takes nothing returns boolean local timer receiver = CreateTimer() local timer this = receiver local real time = 100000. local code timerCallBack = null local timer this_1 local real time_1 local code timerCallBack_1 call TimerStart(this, time, false, timerCallBack) set this_1 = CreateTimer() set time_1 = 0.030 set timerCallBack_1 = ref_function_code__startPeriodic_GameTimer call TimerStart(this_1, time_1, true, timerCallBack_1) 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 initMapBounds takes nothing returns nothing local rect cond_result local region receiver local rect cond_result_1 local region receiver_1 local region this local rect rct local region this_1 local rect rct_1 local rect this_2 local rect this_3 local rect this_4 local rect this_5 local rect this_6 local rect this_7 local rect this_8 local rect this_9 local real this_x local real this_y local real v_x local real v_y local real this_x_1 local real this_y_1 local real v_x_1 local real v_y_1 local real temp local real temp_1 local real temp_2 local real temp_3 local real tuple_temp local real tuple_temp_1 local real tuple_temp_2 local real tuple_temp_3 local real tuple_temp_4 local real tuple_temp_5 local real tuple_temp_6 local real tuple_temp_7 local real tuple_temp_8 local real tuple_temp_9 local real tuple_temp_10 local real tuple_temp_11 local real tuple_temp_12 local real tuple_temp_13 local real tuple_temp_14 local real tuple_temp_15 if MagicFunctions_compiletime then set cond_result = Rect(-1024., -1024., 1024., 1024.) else set cond_result = bj_mapInitialPlayableArea endif set MapBounds_playableMapRect = cond_result set receiver = CreateRegion() set this = receiver set rct = MapBounds_playableMapRect call RegionAddRect(this, rct) if MagicFunctions_compiletime then set cond_result_1 = Rect(-1536., -1536., 1536., 1536.) else set cond_result_1 = GetWorldBounds() endif set MapBounds_boundRect = cond_result_1 set receiver_1 = CreateRegion() set this_1 = receiver_1 set rct_1 = MapBounds_boundRect call RegionAddRect(this_1, rct_1) set this_2 = MapBounds_playableMapRect set temp = GetRectMinX(this_2) set this_3 = MapBounds_playableMapRect set tuple_temp = temp set tuple_temp_1 = GetRectMinY(this_3) set MapBounds_playableMin_x = tuple_temp set MapBounds_playableMin_y = tuple_temp_1 set this_4 = MapBounds_playableMapRect set temp_1 = GetRectMaxX(this_4) set this_5 = MapBounds_playableMapRect set tuple_temp_2 = temp_1 set tuple_temp_3 = GetRectMaxY(this_5) set MapBounds_playableMax_x = tuple_temp_2 set MapBounds_playableMax_y = tuple_temp_3 set this_6 = MapBounds_boundRect set temp_2 = GetRectMinX(this_6) set this_7 = MapBounds_boundRect set tuple_temp_4 = temp_2 set tuple_temp_5 = GetRectMinY(this_7) set MapBounds_boundMin_x = tuple_temp_4 set MapBounds_boundMin_y = tuple_temp_5 set this_8 = MapBounds_boundRect set temp_3 = GetRectMaxX(this_8) set this_9 = MapBounds_boundRect set tuple_temp_6 = temp_3 set tuple_temp_7 = GetRectMaxY(this_9) set MapBounds_boundMax_x = tuple_temp_6 set MapBounds_boundMax_y = tuple_temp_7 set tuple_temp_8 = MapBounds_playableMin_x set tuple_temp_9 = MapBounds_playableMin_y set this_x = tuple_temp_8 set this_y = tuple_temp_9 set tuple_temp_10 = MapBounds_playableMax_x set tuple_temp_11 = MapBounds_playableMax_y set v_x = tuple_temp_10 set v_y = tuple_temp_11 set tuple_temp_12 = MapBounds_boundMin_x set tuple_temp_13 = MapBounds_boundMin_y set this_x_1 = tuple_temp_12 set this_y_1 = tuple_temp_13 set tuple_temp_14 = MapBounds_boundMax_x set tuple_temp_15 = MapBounds_boundMax_y set v_x_1 = tuple_temp_14 set v_y_1 = tuple_temp_15 endfunction function init_MapBounds takes nothing returns boolean call initMapBounds() return true endfunction function init_Maths takes nothing returns boolean return true endfunction function init_Matrices takes nothing returns boolean return true endfunction function dispatch_Stack_Stack_Stack_pop takes integer this returns integer local integer Stack_Stack_pop_result local integer this_1 local integer wval if Stack_typeId[this] == 0 then if this == 0 then call error("Nullpointer exception when calling Stack.pop") else call error("Called Stack.pop on invalid object.") endif endif set this_1 = this set wval = Stack_top[this_1] set Stack_top[this_1] = SEntry_prev[Stack_top[this_1]] set Stack_size[this_1] = Stack_size[this_1] - 1 set Stack_Stack_pop_result = SEntry_elem[wval] return Stack_Stack_pop_result endfunction function dispatch_Table_Table_Table_hasInt takes integer this, integer parentKey returns boolean local boolean Table_Table_hasInt_result local integer this_1 local integer parentKey_1 local hashtable this_2 local integer parentKey_2 local integer childKey if Table_typeId[this] == 0 then if this == 0 then call error("Nullpointer exception when calling Table.hasInt") else call error("Called Table.hasInt on invalid object.") endif endif set this_1 = this set parentKey_1 = parentKey set this_2 = Table_ht set parentKey_2 = this_1 set childKey = parentKey_1 set Table_Table_hasInt_result = HaveSavedInteger(this_2, parentKey_2, childKey) return Table_Table_hasInt_result endfunction function dispatch_Table_Table_Table_loadInt takes integer this, integer parentKey returns integer local integer Table_Table_loadInt_result local integer this_1 local integer parentKey_1 local hashtable this_2 local integer parentKey_2 local integer childKey if Table_typeId[this] == 0 then if this == 0 then call error("Nullpointer exception when calling Table.loadInt") else call error("Called Table.loadInt on invalid object.") endif endif set this_1 = this set parentKey_1 = parentKey set this_2 = Table_ht set parentKey_2 = this_1 set childKey = parentKey_1 set Table_Table_loadInt_result = LoadInteger(this_2, parentKey_2, childKey) return Table_Table_loadInt_result endfunction function construct_Stack takes integer this returns nothing local integer this_1 = this local integer elem local integer prev local integer this_2 local integer this_3 local integer this_4 local integer elem_1 local integer prev_1 set Stack_size[this_1] = 0 set elem = 0 set prev = 0 if SEntry_firstFree == 0 then if SEntry_maxIndex < 32768 then set SEntry_maxIndex = SEntry_maxIndex + 1 set this_3 = SEntry_maxIndex else call error("Out of memory: Could not create SEntry.") set this_3 = 0 endif else set SEntry_firstFree = SEntry_firstFree - 1 set this_3 = SEntry_nextFree[SEntry_firstFree] endif set this_2 = this_3 set this_4 = this_2 set elem_1 = elem set prev_1 = prev set SEntry_elem[this_4] = elem_1 set SEntry_prev[this_4] = prev_1 set Stack_dummy[this] = this_2 set Stack_top[this] = Stack_dummy[this] endfunction function new_Stack takes nothing returns integer local integer this local integer this_1 if Stack_firstFree == 0 then if Stack_maxIndex < 32768 then set Stack_maxIndex = Stack_maxIndex + 1 set this_1 = Stack_maxIndex set Stack_typeId[this_1] = 12 else call error("Out of memory: Could not create Stack.") set this_1 = 0 endif else set Stack_firstFree = Stack_firstFree - 1 set this_1 = Stack_nextFree[Stack_firstFree] set Stack_typeId[this_1] = 12 endif set this = this_1 call construct_Stack(this) return this endfunction function unitFromIndex takes integer index returns unit local integer this = TypeCasting_typecastdata local integer parentKey = 0 local fogstate value = ConvertFogState(index) local integer this_1 local integer parentKey_1 local fogstate value_1 local hashtable this_2 local integer parentKey_2 local integer childKey local fogstate value_2 local integer this_3 local integer parentKey_3 local unit Table_Table_loadUnit_result local integer this_4 local integer parentKey_4 local hashtable this_5 local integer parentKey_5 local integer childKey_1 if Table_typeId[this] == 0 then if this == 0 then call error("Nullpointer exception when calling Table.saveFogState") else call error("Called Table.saveFogState on invalid object.") endif endif set this_1 = this set parentKey_1 = parentKey set value_1 = value set this_2 = Table_ht set parentKey_2 = this_1 set childKey = parentKey_1 set value_2 = value_1 call SaveFogStateHandle(this_2, parentKey_2, childKey, value_2) set this_3 = TypeCasting_typecastdata set parentKey_3 = 0 if Table_typeId[this_3] == 0 then if this_3 == 0 then call error("Nullpointer exception when calling Table.loadUnit") else call error("Called Table.loadUnit on invalid object.") endif endif set this_4 = this_3 set parentKey_4 = parentKey_3 set this_5 = Table_ht set parentKey_5 = this_4 set childKey_1 = parentKey_4 set Table_Table_loadUnit_result = LoadUnitHandle(this_5, parentKey_5, childKey_1) return Table_Table_loadUnit_result endfunction function getUnit takes player p, integer id, real pos_x, real pos_y, real facing_radians returns unit local integer stack local unit receiver local unit receiver_1 local unit this local real a_radians local real this_radians local unit this_1 local player p_1 local integer unitId local real pos_x_1 local real pos_y_1 local real facing_radians_1 local real this_radians_1 local unit temp local player temp_1 local integer temp_2 local real temp_3 local real temp_4 local real tuple_temp local real tuple_temp_1 local real tuple_temp_2 local real tuple_temp_3 local real tuple_temp_4 local real tuple_temp_5 if dispatch_Table_Table_Table_hasInt(ObjectRecycler_objectLists, id) then set stack = dispatch_Table_Table_Table_loadInt(ObjectRecycler_objectLists, id) set receiver = unitFromIndex(dispatch_Stack_Stack_Stack_pop(stack)) set this = receiver set tuple_temp = facing_radians set a_radians = tuple_temp set temp = this set tuple_temp_1 = a_radians set this_radians = tuple_temp_1 call SetUnitFacing(temp, this_radians * 57.295779513) set receiver_1 = receiver set this_1 = receiver_1 call ShowUnit(this_1, true) return receiver_1 else call dispatch_Table_Table_Table_saveInt(ObjectRecycler_objectLists, id, new_Stack()) set p_1 = p set unitId = id set tuple_temp_2 = pos_x set tuple_temp_3 = pos_y set pos_x_1 = tuple_temp_2 set pos_y_1 = tuple_temp_3 set tuple_temp_4 = facing_radians set facing_radians_1 = tuple_temp_4 set temp_1 = p_1 set temp_2 = unitId set temp_3 = pos_x_1 set temp_4 = pos_y_1 set tuple_temp_5 = facing_radians_1 set this_radians_1 = tuple_temp_5 return CreateUnit(temp_1, temp_2, temp_3, temp_4, this_radians_1 * 57.295779513) endif endfunction function new_SEntry takes integer elem, integer prev returns integer local integer this local integer this_1 local integer this_2 local integer elem_1 local integer prev_1 if SEntry_firstFree == 0 then if SEntry_maxIndex < 32768 then set SEntry_maxIndex = SEntry_maxIndex + 1 set this_1 = SEntry_maxIndex else call error("Out of memory: Could not create SEntry.") set this_1 = 0 endif else set SEntry_firstFree = SEntry_firstFree - 1 set this_1 = SEntry_nextFree[SEntry_firstFree] endif set this = this_1 set this_2 = this set elem_1 = elem set prev_1 = prev set SEntry_elem[this_2] = elem_1 set SEntry_prev[this_2] = prev_1 return this endfunction function dispatch_Stack_Stack_Stack_push takes integer this, integer elem returns nothing local integer this_1 local integer elem_1 if Stack_typeId[this] == 0 then if this == 0 then call error("Nullpointer exception when calling Stack.push") else call error("Called Stack.push on invalid object.") endif endif set this_1 = this set elem_1 = elem set Stack_top[this_1] = new_SEntry(elem_1, Stack_top[this_1]) set Stack_size[this_1] = Stack_size[this_1] + 1 endfunction function unit_recycle takes unit this returns nothing local integer id = GetUnitTypeId(this) local integer stack local unit object local handle this_1 local unit this_2 local unit this_3 local real x local real y local integer temp if dispatch_Table_Table_Table_hasInt(ObjectRecycler_objectLists, id) then set stack = dispatch_Table_Table_Table_loadInt(ObjectRecycler_objectLists, id) set temp = stack set object = this set this_1 = object call dispatch_Stack_Stack_Stack_push(temp, GetHandleId(this_1)) set this_2 = this call ShowUnit(this_2, false) set this_3 = this set x = 1. set y = 2. call SetUnitPosition(this_3, x, y) else call error("trying to recycle a unit not created by 'getUnit'!") endif endfunction function init_ObjectRecycler takes nothing returns boolean local unit u set ObjectRecycler_objectLists = new_Table() set u = getUnit(Player(0), 0, 0., 0., 0.) call unit_recycle(u) return true endfunction function init_Player takes nothing returns boolean local integer i local integer temp set Player_localPlayer = GetLocalPlayer() set i = 0 set temp = bj_MAX_PLAYER_SLOTS - 1 loop exitwhen i > temp call Player(i) set i = i + 1 endloop return true endfunction function init_Playercolor takes nothing returns boolean call ConvertPlayerColor(24) call ConvertPlayerColor(25) call ConvertPlayerColor(26) call ConvertPlayerColor(27) 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 local string this = "0123456789" local string this_1 call StringLength(this) set this_1 = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" call StringLength(this_1) return true endfunction function init_Table takes nothing returns boolean set Table_ht = hashtable_compiletime_53 return true endfunction function init_TypeCasting takes nothing returns boolean local integer this local integer parentKey local string value local integer this_1 local integer parentKey_1 local string value_1 local hashtable this_2 local integer parentKey_2 local integer childKey local string value_2 set TypeCasting_typecastdata = new_Table() set this = TypeCasting_typecastdata set parentKey = 0 set value = "" 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 set this_1 = this set parentKey_1 = parentKey set value_1 = value set this_2 = Table_ht set parentKey_2 = this_1 set childKey = parentKey_1 set value_2 = value_1 call SaveStr(this_2, parentKey_2, childKey, value_2) 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 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_MapBounds = function init_MapBounds set ref_function_init_ObjectRecycler = function init_ObjectRecycler set ref_function_code__startPeriodic_GameTimer = function code__startPeriodic_GameTimer endfunction function main takes nothing returns nothing local trigger initTrig call initGlobals() call ExecuteFunc("initCompiletimeState_0") 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_MapBounds)) if not TriggerEvaluate(initTrig) then call error("Could not initialize package MapBounds.") endif call TriggerClearConditions(initTrig) call TriggerAddCondition(initTrig, Condition(ref_function_init_ObjectRecycler)) if not TriggerEvaluate(initTrig) then call error("Could not initialize package ObjectRecycler.") endif call TriggerClearConditions(initTrig) call DestroyTrigger(initTrig) endfunction function config takes nothing returns nothing endfunction