local GetTime = QuestHelper_GetTime QuestHelper_File["collect_zone.lua"] = "4.0.1.$svnversion$" QuestHelper_Loadtime["collect_zone.lua"] = GetTime() local debug_output = false if QuestHelper_File["collect_zone.lua"] == "Development Version" then debug_output = true end local QHCZ local GetLoc local Merger local function DoZoneUpdate(label, debugverbose) local zt, rzt, szt, mzt = GetZoneText() or "", GetRealZoneText() or "", GetSubZoneText() or "", GetMinimapZoneText() or "" local zname = string.format("%s@@%s@@%s@@%s", zt, rzt, szt, mzt) -- I don't *think* any zones will have a @@ in them :D if zname == "@@@@" then return end -- denied if not QHCZ[zname] then QHCZ[zname] = {} end if not QHCZ[zname][label] then QHCZ[zname][label] = {} end local znl = QHCZ[zname][label] if debugverbose and debug_output then --QuestHelper:TextOut("zoneupdate " .. zname .. " type " .. label) end QHCZ[zname].mapname = GetMapInfo() local loc = GetLoc() if loc.delayed == 128 and loc.c == 0 and loc.z == 0 and loc.x == -128 and loc.y == -128 then return end --if loc == "€\000\000\000€\000\000\000€€€" then return end -- this is kind of the "null value" local found = false if not znl.locs then znl.locs = {} end table.insert(znl.locs, loc) -- Commented out, 'cause this module isn't really loaded anymore. I'll remove it after the next commit. --Merger.Add(znl, loc, true) end local function OnEvent() DoZoneUpdate("border", true) end local lastupdate = 0 local function OnUpdate() if lastupdate + 15 <= GetTime() then DoZoneUpdate("update") lastupdate = GetTime() end end function QH_Collect_Zone_FactionChange(QHCData) if not QHCData.zone then QHCData.zone = {} end QHCZ = QHCData.zone end function QH_Collect_Zone_Init(QHCData, API) QH_Collect_Zone_FactionChange(QHCData) QH_Event("ZONE_CHANGED", OnEvent) QH_Event("ZONE_CHANGED_INDOORS", OnEvent) QH_Event("ZONE_CHANGED_NEW_AREA", OnEvent) API.Registrar_OnUpdateHook(OnUpdate) GetLoc = API.Callback_LocationBolusCurrent QuestHelper: Assert(GetLoc) Merger = API.Utility_Merger QuestHelper: Assert(Merger) end