From bb4da3fc20ade4c8d9f38d2424d5194069a0917c Mon Sep 17 00:00:00 2001 From: James Whitehead II Date: Sun, 28 Mar 2010 17:41:42 +0000 Subject: [PATCH] A number of enhancements and minor bug fixes * Added a 'ping' sound that can be played when you've arrived at your destination. The sound will be played when you're within the 'arrival distance', as set under the "Waypoint Arrow" configuration. This is also where the option can be found. * Enabled dual positioning for world map coordinates, hopefully the placement now works properly. * Added a function TomTom:WaypointExists(c, z, x, y, desc) which returns true or false * Fixed POI integration (from what I tested) * Added an 'automatic objectives waypoint' setting that will automatically set waypoints to your closest quest objective. I'm not sure how useful this will be, it's disabled by default. --- Media/PingLicense.txt | 1 + Media/ping.mp3 | Bin 0 -> 54752 bytes TomTom.lua | 70 +++++++++++++++++++++++++++--- TomTom_Config.lua | 20 ++++++++- TomTom_POIIntegration.lua | 104 ++++++++++++++++++++++++++++++++++++--------- 5 files changed, 165 insertions(+), 30 deletions(-) create mode 100644 Media/PingLicense.txt create mode 100644 Media/ping.mp3 diff --git a/Media/PingLicense.txt b/Media/PingLicense.txt new file mode 100644 index 0000000..55ff370 --- /dev/null +++ b/Media/PingLicense.txt @@ -0,0 +1 @@ +The sound file included in this directory is 'ping.mp3' from BristolStories on freesound.org. More information about the audio file can be obtained at: http://www.freesound.org/samplesViewSingle.php?id=51702 diff --git a/Media/ping.mp3 b/Media/ping.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..8c78931df80569f180124fac4a199602c69fe6e4 GIT binary patch literal 54752 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 0 then - callbacks.distance[cleardistance] = _both_clear_distance + local arrivaldistance = self.profile.arrow.arrival + + if cleardistance == arrivaldistance then + callbacks.distance[cleardistance] = function(...) + _both_clear_distance(...); + _both_ping_arrival(...); + end + else + if cleardistance > 0 then + callbacks.distance[cleardistance] = _both_clear_distance + end + if arrivaldistance > 0 then + callbacks.distance[arrivaldistance] = _both_ping_arrival + end end + -- Default values if persistent == nil then persistent = self.profile.persistence.savewaypoints end if minimap == nil then minimap = self.profile.minimap.enable end @@ -799,6 +835,26 @@ function TomTom:AddZWaypoint(c, z, x, y, desc, persistent, minimap, world, custo return uid end +function TomTom:WaypointExists(c, z, x, y, desc) + local coord = self:GetCoord(x / 100, y / 100) + local zone = self:GetMapFile(c, z) + + if not zone then + return + end + + if waypoints[zone] then + for uid in pairs(waypoints[zone]) do + local data = waypoints[uid] + if data.title == desc then + return true + else + return false + end + end + end +end + function TomTom:SetCustomWaypoint(c,z,x,y,callback,minimap,world, silent) return self:AddZWaypoint(c, z, x, y, desc, false, minimap, world, callback, silent) end diff --git a/TomTom_Config.lua b/TomTom_Config.lua index f8b3015..c3dadef 100644 --- a/TomTom_Config.lua +++ b/TomTom_Config.lua @@ -219,6 +219,14 @@ local function createconfig() min = 0, max = 150, step = 5, arg = "arrow.arrival", }, + enablePing = { + order = 9.5, + type = "toggle", + name = L["Play a sound when arriving at a waypoint"], + desc = L["When you 'arrive' at a waypoint (this distance is controlled by the 'Arrival Distance' setting in this group) a sound can be played to indicate this. You can enable or disable this sound using this setting."], + width = "double", + arg = "arrow.enablePing", + }, display = { type = "group", name = L["Arrow display"], @@ -604,7 +612,7 @@ local function createconfig() }, corpse_arrow = { type = "toggle", - order = 5, + order = 6, name = L["Automatically set a waypoint when I die"], desc = L["TomTom can automatically set a waypoint when you die, guiding you back to your corpse"], width = "double", @@ -629,7 +637,7 @@ local function createconfig() enable = { order = 2, type = "toggle", - name = L["Enable quest objective integration"], + name = L["Enable quest objective click integration"], desc = L["Enables the setting of waypoints when modified-clicking on quest objectives"], width = "double", arg = "poi.enable", @@ -650,6 +658,14 @@ local function createconfig() }, arg = "poi.modifier", }, + enableClosest = { + order = 4, + type = "toggle", + name = L["Enable automatic quest objective waypoints"], + desc = L["Enables the automatic setting of quest objective waypoints based on which objective is closest to your current location. This setting WILL override the setting of manual waypoints."], + width = "double", + arg = "poi.setClosest", + }, }, } -- End POI Integration settings diff --git a/TomTom_POIIntegration.lua b/TomTom_POIIntegration.lua index 4ebdb89..325476b 100644 --- a/TomTom_POIIntegration.lua +++ b/TomTom_POIIntegration.lua @@ -1,3 +1,7 @@ +local hookEnabled = true; +local modifier; +local watchframeHookEnabled = false; + local function POIAnchorToCoord(poiframe) local point, relto, relpoint, x, y = poiframe:GetPoint() local frame = WorldMapDetailFrame @@ -20,8 +24,36 @@ local modTbl = { S = IsShiftKeyDown, } -local hookEnabled = true; -local modifier; +local function findQuestFrameFromQuestIndex(questId) + -- Try to find the correct quest frame + for i = 1, MAX_NUM_QUESTS do + local questFrame = _G["WorldMapQuestFrame"..i]; + if ( not questFrame ) then + break + elseif ( questFrame.questId == questId ) then + return questFrame + end + end +end + +local function setQuestWaypoint(self) + local c, z = GetCurrentMapContinent(), GetCurrentMapZone(); + local x, y = POIAnchorToCoord(self) + + local qid = self.questId + + local title; + if self.quest and self.quest.questLogIndex then + title = GetQuestLogTitle(self.quest.questLogIndex) + elseif self.questLogIndex then + title = GetQuestLogTitle(self.questLogIndex) + else + title = "Quest #" .. qid .. " POI" + end + + local uid = TomTom:AddZWaypoint(c, z, x, y, title) + return uid +end -- desc, persistent, minimap, world, custom_callbacks, silent, crazy) local function poi_OnClick(self, button) @@ -44,26 +76,16 @@ local function poi_OnClick(self, button) end if self.parentName == "WatchFrameLines" then - local questFrame = _G["WorldMapQuestFrame"..self.questLogIndex]; - local selected = WorldMapQuestScrollChildFrame.selected - local poiIcon = selected.poiIcon; - self = poiIcon - end - - local c, z = GetCurrentMapContinent(), GetCurrentMapZone(); - local x, y = POIAnchorToCoord(self) - - local qid = self.questId - - local title; - if self.quest.questLogIndex then - title = GetQuestLogTitle(self.quest.questLogIndex) - else - title = "Quest #" .. qid .. " POI" + local questFrame = findQuestFrameFromQuestIndex(self.questId) + if not questFrame then + return + else + self = questFrame.poiIcon + end end - - local uid = TomTom:AddZWaypoint(c, z, x, y, title) -end + + return setQuestWaypoint(self) + end local hooked = {} hooksecurefunc("QuestPOI_DisplayButton", function(parentName, buttonType, buttonIndex, questId) @@ -77,7 +99,47 @@ hooksecurefunc("QuestPOI_DisplayButton", function(parentName, buttonType, button end end) +-- This code will enable auto-tracking of closest quest objectives. To +-- accomplish this, it hooks the WatchFrame_Update function, and when it +-- is called, it sets a waypoint to the closest quest id. +local function updateClosestPOI() + local questIndex = GetQuestIndexForWatch(1); + if ( questIndex ) then + local title, level, questTag, suggestedGroup, isHeader, isCollapsed, isComplete, isDaily, questID = GetQuestLogTitle(questIndex); + local requiredMoney = GetQuestLogRequiredMoney(questIndex); + numObjectives = GetNumQuestLeaderBoards(questIndex); + if ( isComplete and isComplete < 0 ) then + isComplete = false; + elseif ( numObjectives == 0 and playerMoney >= requiredMoney ) then + isComplete = true; + end + + -- check filters + local filterOK = true; + if ( isComplete and bit.band(WATCHFRAME_FILTER_TYPE, WATCHFRAME_FILTER_COMPLETED_QUESTS) ~= WATCHFRAME_FILTER_COMPLETED_QUESTS ) then + filterOK = false; + elseif ( bit.band(WATCHFRAME_FILTER_TYPE, WATCHFRAME_FILTER_REMOTE_ZONES) ~= WATCHFRAME_FILTER_REMOTE_ZONES and not LOCAL_MAP_QUESTS[questID] ) then + filterOK = false; + end + + if filterOK then + -- Set a waypoint for this POI, it should be the higehst + local questFrame = findQuestFrameFromQuestIndex(questID) + if questFrame then + setQuestWaypoint(questFrame.poiIcon) + end + end + end +end + +hooksecurefunc("WatchFrame_Update", function() + if watchframeHookEnabled then + updateClosestPOI() + end +end) + function TomTom:EnableDisablePOIIntegration() hookEnabled = TomTom.profile.poi.enable modifier = TomTom.profile.poi.modifier + watchframeHookEnabled = TomTom.profile.poi.setClosest end -- 1.7.9.5