1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 |
return obj
end
self . taskIdToConditionData = { }
self . conditionDataToPosition = { }
self . activeQuests = { }
EVENT_MANAGER : RegisterForEvent ( "ZO_WorldMapQuestBreadcrumbs" , EVENT_QUEST_POSITION_REQUEST_COMPLETE , function ( _ , ... ) self : OnQuestPositionRequestComplete ( ... ) end )
EVENT_MANAGER : RegisterForEvent ( "ZO_WorldMapQuestBreadcrumbs" , EVENT_QUEST_CONDITION_COUNTER_CHANGED , function ( _ , ... ) self : OnQuestConditionInfoChanged ( ... ) end )
EVENT_MANAGER : RegisterForEvent ( "ZO_WorldMapQuestBreadcrumbs" , EVENT_QUEST_ADDED , function ( _ , ... ) self : OnQuestAdded ( ... ) end )
EVENT_MANAGER : RegisterForEvent ( "ZO_WorldMapQuestBreadcrumbs" , EVENT_QUEST_REMOVED , function ( _ , ... ) self : OnQuestRemoved ( ... ) end )
EVENT_MANAGER : RegisterForEvent ( "ZO_WorldMapQuestBreadcrumbs" , EVENT_QUEST_LIST_UPDATED , function ( ) self : OnQuestListUpdated ( ) end )
EVENT_MANAGER : RegisterForEvent ( "ZO_WorldMapQuestBreadcrumbs" , EVENT_LINKED_WORLD_POSITION_CHANGED , function ( ) self : OnLinkedWorldPositionChanged ( ) end )
EVENT_MANAGER : RegisterForEvent ( "ZO_WorldMapQuestBreadcrumbs" , EVENT_QUEST_ADVANCED , function ( _ , ... ) self : OnQuestAdvanced ( ... ) end )
EVENT_MANAGER : RegisterForEvent ( "ZO_WorldMapQuestBreadcrumbs" , EVENT_PATH_FINDING_NETWORK_LINK_CHANGED , function ( ) self : OnPathFindingNetworkLinkChanged ( ) end )
end
end
return self . conditionDataToPosition [ questIndex ]
end
end
return stepsTable and stepsTable [ stepIndex ] or nil
end
-- For backwards compatibility we return nil (instead of 0) for empty tables.
end
function ZO_WorldMapQuestBreadcrumbs : GetQuestConditionPosition ( questIndex , stepIndex , conditionIndex )
return positionsTable and positionsTable [ conditionIndex ] or nil
end
function ZO_WorldMapQuestBreadcrumbs : RequestConditionPosition ( questIndex , stepIndex , conditionIndex )
local conditionData =
{
questIndex = questIndex ,
stepIndex = stepIndex ,
conditionIndex = conditionIndex ,
}
if taskId then
self . taskIdToConditionData [ taskId ] = conditionData
return taskId
end
end
else
-- Request the position of all quest conditions that are incomplete and have not failed.
for stepIndex = QUEST_MAIN_STEP_INDEX , numSteps do
for conditionIndex = 1 , numConditions do
local _ , _ , isFailCondition , isComplete , _ , isVisible = GetJournalQuestConditionValues ( questIndex , stepIndex , conditionIndex )
end
end
end
end
end
end
for questIndex = 1 , MAX_JOURNAL_QUESTS do
end
end
end
self . taskIdToConditionData [ taskId ] = nil
end
self . conditionDataToPosition = { }
end
if conditionData . questIndex == questIndex then
self . taskIdToConditionData [ taskId ] = nil
end
end
self . conditionDataToPosition [ questIndex ] = nil
end
if conditionData . questIndex == questIndex then
return true
end
end
return false
end
return self . activeQuests [ questIndex ] == true
end
local questIndex , stepIndex , conditionIndex = conditionData . questIndex , conditionData . stepIndex , conditionData . conditionIndex
local questTable = self . conditionDataToPosition [ questIndex ]
if not questTable then
questTable = { }
self . conditionDataToPosition [ questIndex ] = questTable
end
local stepTable = questTable [ stepIndex ]
if not stepTable then
stepTable = { }
questTable [ stepIndex ] = stepTable
end
stepTable [ conditionIndex ] = positionData
end
self . activeQuests [ questIndex ] = true
end
end
if self . activeQuests [ questIndex ] then
self . activeQuests [ questIndex ] = nil
end
end
--Events
function ZO_WorldMapQuestBreadcrumbs : OnQuestPositionRequestComplete ( taskId , pinType , xLoc , yLoc , areaRadius , insideCurrentMapWorld , isBreadcrumb )
local conditionData = self . taskIdToConditionData [ taskId ]
if conditionData then
self . taskIdToConditionData [ taskId ] = nil
local positionData =
{
pinType = pinType ,
xLoc = xLoc ,
yLoc = yLoc ,
areaRadius = areaRadius ,
insideCurrentMapWorld = insideCurrentMapWorld ,
isBreadcrumb = isBreadcrumb ,
}
end
end
function ZO_WorldMapQuestBreadcrumbs : OnQuestConditionInfoChanged ( questIndex , questName , conditionText , conditionType , curCondtionVal , newConditionVal , conditionMax , isFailCondition , stepOverrideText , isPushed , isQuestComplete , isConditionComplete , isStepHidden , isConditionCompleteStatusChanged , isConditionCompletableBySiblingStatusChanged )
-- Only refresh if the condition completed has changed but the quest is not complete since there is another event for a quest completing.
-- This will reduce the number of times the pins are refreshed so that they are not refreshed unnecessarily.
if not isQuestComplete and ( isConditionCompleteStatusChanged or isConditionCompletableBySiblingStatusChanged ) then
end
end
end
end
end
end
end
end
end
|