version 1.0.4

René Welbers [01-30-16 - 17:22]
version 1.0.4
- added cleanup function
- cleaned up code
Filename
OverwriteFTC.lua
PanicModeCombatAnalyzer.lua
PanicModeCombatAnalyzer.txt
diff --git a/OverwriteFTC.lua b/OverwriteFTC.lua
index 703855a..e75e1c4 100644
--- a/OverwriteFTC.lua
+++ b/OverwriteFTC.lua
@@ -7,6 +7,9 @@ FTC = _G['FTC']
  * --------------------------------
  * Called by EVENT_COMBAT_EVENT
  * --------------------------------
+ *
+ * Update for PanicModeCombatAnalyzer: Only added abilityId to function call
+ *
  ]]--
 function FTC.OnCombatEvent( eventCode , result , isError , abilityName , abilityGraphic , abilityActionSlotType , sourceName , sourceType , targetName , targetType , hitValue , powerType , damageType , log , sourceUnitId , targetUnitId , abilityId )

@@ -24,6 +27,9 @@ end
  * --------------------------------
  * Called by FTC:OnCombatEvent()
  * --------------------------------
+ *
+ * Update for PanicModeCombatAnalyzer: Only added abilityId to damage object
+ *
  ]]--
 function FTC.Damage:New( result , abilityName , abilityGraphic , abilityActionSlotType , sourceName , sourceType , targetName , targetType , hitValue , powerType , damageType, abilityId )

diff --git a/PanicModeCombatAnalyzer.lua b/PanicModeCombatAnalyzer.lua
index ff5ef8e..0484d56 100644
--- a/PanicModeCombatAnalyzer.lua
+++ b/PanicModeCombatAnalyzer.lua
@@ -2,7 +2,7 @@
 PanicModeCombatAnalyzer = PanicModeCombatAnalyzer or {}

 PanicModeCombatAnalyzer.name		  = 'PanicModeCombatAnalyzer'
-PanicModeCombatAnalyzer.version	      = '1.0.3'
+PanicModeCombatAnalyzer.version	      = '1.0.4'
 PanicModeCombatAnalyzer.versionDB	  = 2
 PanicModeCombatAnalyzer.loaded	      = false
 PanicModeCombatAnalyzer.author        = 'silentgecko, deevilius'
@@ -35,37 +35,35 @@ function PanicModeCombatAnalyzer.Initialize(_, addonName)

     self.savedVariables = ZO_SavedVars:New(self.savedVarsName, self.versionDB, nil, self.variables)

-    -- reset previously saved data
---    if self.savedVariables.fights ~= nil then
---        self.savedVariables.fights = nil
---    end
---    if self.savedVariables.groups ~= nil then
---        self.savedVariables.groups = nil
---    end
---    if self.savedVariables.trials ~= nil then
---        self.savedVariables.trials = nil
---    end
-
-    -- todo cleanup old data
-
     --save current server and language
     self.savedVariables.metadata = {
         server = GetWorldName(),
         language = GetCVar('language.2')
     }

-    EVENT_MANAGER:RegisterForEvent(self.name, EVENT_PLAYER_COMBAT_STATE, self.OnPlayerCombatState)
+    self.cleanUp()
+
     CALLBACK_MANAGER:RegisterCallback("FTC_NewDamage", self.addDamage)
 end

-function PanicModeCombatAnalyzer.OnPlayerCombatState(_, inCombat)
-    PanicModeCombatAnalyzer.tempVars.inFight = inCombat
+-- cleanup
+function PanicModeCombatAnalyzer.cleanUp()
+    local self      = PanicModeCombatAnalyzer
+    local savedVars = self.savedVariables.data
+    local currentTs = GetTimeStamp()
+    local limitTs   = currentTs - 604800 -- one week in seconds
+
+    for ts, data in pairs(savedVars) do
+        if ts <= limitTs then
+            self.savedVariables.data[ts] = nil
+        end
+    end
 end

+-- get current trial
 function PanicModeCombatAnalyzer.getTrial()
     local self         = PanicModeCombatAnalyzer
     local currentRaid  = GetCurrentParticipatingRaidId() or 0
-
     return currentRaid
 end

@@ -119,6 +117,7 @@ function PanicModeCombatAnalyzer.addDamage(damage)
     end
 end

+-- get group
 function PanicModeCombatAnalyzer.getGroup()
     local self      = PanicModeCombatAnalyzer
     local groupSize = GetGroupSize()
@@ -144,24 +143,5 @@ function PanicModeCombatAnalyzer.debug(message, data)
     d(message, data)
 end

--- deep copy of table
-function PanicModeCombatAnalyzer.copyTableAndClean(orig)
-    local self      = PanicModeCombatAnalyzer
-    local orig_type = type(orig)
-    local copy
-    if orig_type == 'table' then
-        copy = {}
-        for orig_key, orig_value in next, orig, nil do
-            if orig_key ~= 'Total' and orig_key ~= 'icon' then
-                copy[self.copyTableAndClean(orig_key)] = self.copyTableAndClean(orig_value)
-            end
-        end
-        setmetatable(copy, self.copyTableAndClean(getmetatable(orig)))
-    else -- number, string, boolean, etc
-        copy = orig
-    end
-    return copy
-end
-
 ---------Events-------
 EVENT_MANAGER:RegisterForEvent(PanicModeCombatAnalyzer.name, EVENT_ADD_ON_LOADED, PanicModeCombatAnalyzer.Initialize)
diff --git a/PanicModeCombatAnalyzer.txt b/PanicModeCombatAnalyzer.txt
index f1e1c33..9d526d1 100644
--- a/PanicModeCombatAnalyzer.txt
+++ b/PanicModeCombatAnalyzer.txt
@@ -1,7 +1,7 @@
 ## Title: |cEFEBBEPanic Mode Combat Analyzer|r
 ## Description: Saves your dps during fight, based on FTC DPS Meter.
 ## Author: |c009ad6silentgecko|r, deevilius
-## Version: 1.0.3
+## Version: 1.0.4
 ## APIVersion: 100013
 ## SavedVariables: PMCAVars
 ## OptionalDependsOn: FoundryTacticalCombat