Quantcast

Caches missions while completing.

Alar of Daggerspine [03-16-15 - 11:24]
Caches missions while completing.
Looks like sometimes they disappera from "In progress" missions

Signed-off-by: Alar of Daggerspine <alar@aspide.it>
Filename
GarrisonCommander.lua
MissionCache.lua
MissionCompletion.lua
diff --git a/GarrisonCommander.lua b/GarrisonCommander.lua
index fbeb07c..64c3703 100644
--- a/GarrisonCommander.lua
+++ b/GarrisonCommander.lua
@@ -2056,6 +2056,7 @@ function addon:SafeHookScript(frame,hook,method,postHook)
 end

 function addon:CleanUp()
+	wipe(ns.CompletedMissions)
 	self:UnhookAll()
 	self:CancelAllTimers()
 	self:RemoveMenu()
diff --git a/MissionCache.lua b/MissionCache.lua
index 5a4c7f9..635a8a2 100644
--- a/MissionCache.lua
+++ b/MissionCache.lua
@@ -52,9 +52,15 @@ function addon:GetMissionData(missionID,key,default)
 			end
 		end
 	end
+	if not mission then
+		mission=ns.CompletedMissions[missionID]
+	end
 	if (key==nil) then
 		return mission
 	end
+	if not mission then
+		return default
+	end
 	if (type(mission[key])~='nil') then
 		return mission[key]
 	end
diff --git a/MissionCompletion.lua b/MissionCompletion.lua
index 3cf6015..6c9f57e 100644
--- a/MissionCompletion.lua
+++ b/MissionCompletion.lua
@@ -256,6 +256,7 @@ do
 				_,_,_,m.successChance,_,_,m.xpBonus,m.resourceMultiplier,m.goldMultiplier=G.GetPartyMissionInfo(m.missionID)
 			end
 			currentMission=tremove(missions)
+			ns.CompletedMissions[currentMission.missionID]=currentMission
 			self:MissionAutoComplete("LOOP")
 			self:MissionEvents(true)
 		end
@@ -334,6 +335,7 @@ do
 					self:GetMissionResults(step==3)
 					self:RefreshFollowerStatus()
 					currentMission=tremove(missions)
+					ns.CompletedMissions[currentMission.missionID]=currentMission
 					startTimer()
 					return
 				end