diff --git a/CHANGELOG.txt b/CHANGELOG.txt
index d2f5a76..a7f2a45 100644
--- a/CHANGELOG.txt
+++ b/CHANGELOG.txt
@@ -14,6 +14,4 @@
*** Feature: threat tooltip in mission list wiht full countering follower list
*** Feature: Broker displays not which toon has completed missions
** Fix from previous beta
-*** Sometimes opening mission after heartstoning to Garrison raised a lua error
-*** Sometimes opening the mission table as the very first action after login raised a lua error
-*** Priorities list in mission control was misaligned when choosing more than 5 priorities
+*** Fix: integer overflow attempting to store<some big number> [C]: on loading
diff --git a/MatchMaker.lua b/MatchMaker.lua
index 10d9169..ac75237 100644
--- a/MatchMaker.lua
+++ b/MatchMaker.lua
@@ -28,9 +28,8 @@ local xprint=function(...) if dbg then ns.xprint(...) end end
local xdump=function(...) if dbg then ns.xdump(...) end end
function addon:MissionScore(mission)
local totalTimeString, totalTimeSeconds, isMissionTimeImproved, successChance, partyBuffs, isEnvMechanicCountered, xpBonus, materialMultiplier,goldMultiplier = G.GetPartyMissionInfo(mission.missionID)
- local r=mission.class=='resource' and materialMultiplier or xpBonus/10
+ local r=math.min(mission.class=='resource' and materialMultiplier or xpBonus/100,999)
local t=isMissionTimeImproved and 1 or 0
- if r > 9999 then r= 999 end
return format("%03d%03d%01d",successChance,r,t)
end
function addon:FollowerScore(mission,followerID)
@@ -43,8 +42,8 @@ function addon:FollowerScore(mission,followerID)
end
local t=isMissionTimeImproved and 1 or 0
- local c=(isEnvMechanicCountered and 1 or 0)+#partyBuffs
- return format("%03d%01d%01d%01d%04d",successChance,r,c,t,10000-self:GetFollowerData(followerID,'rank',0))
+ local c=math.min((isEnvMechanicCountered and 1 or 0)+#partyBuffs,9)
+ return format("%03d%01d%01d%01d%04d",successChance,r,c,t,math.min(1000-self:GetFollowerData(followerID,'rank',90),999))
end
local filters={skipMaxed=false,skipBusy=false}
function filters.nop(followerID)
@@ -158,7 +157,9 @@ local function MatchMaker(self,missionID,party,includeBusy,onlyBest)
--G.GetFollowerBiasForMission(missionID,followerID)
for followerID,_ in pairs(buffed) do
P:AddFollower(followerID)
- tinsert(scores,format("%010d1|%s",self:FollowerScore(mission,followerID),followerID))
+ -- dirty trick to avoid issue with integer overflow
+ local followerScore=self:FollowerScore(mission,followerID)
+ tinsert(scores,format("%05d%05d1|%s",,followerID))
P:RemoveFollower(followerID)
buffeds=buffeds+1
end