wasd
git [11-19-18 - 08:13]
diff --git a/DasLog.lua b/DasLog.lua
new file mode 100644
index 0000000..ff6cde1
--- /dev/null
+++ b/DasLog.lua
@@ -0,0 +1,131 @@
+-- local currentDate = tonumber(GetDate())
+currentDate = tonumber(GetDate())
+
+characterName = DAS.pdn or GetUnitName(UNITTAG_PLAYER)
+-- local characterName = DAS.pdn or GetUnitName(UNITTAG_PLAYER)
+
+
+local function getSettingsArray()
+
+ currentDate = currentDate or tonumber(GetDate())
+ characterName = characterName or GetUnitName(UNITTAG_PLAYER)
+
+ local settings = DAS.globalSettings.completionLog[currentDate] or {}
+ -- initialize if empty
+
+ settings = DAS.globalSettings.completionLog[currentDate] or {}
+ settings[characterName] = settings[characterName] or {}
+
+
+ -- make sure it's set
+ DAS.globalSettings.completionLog[currentDate] = settings
+
+ DAS.todaysLog = DAS.globalSettings.completionLog[currentDate]
+ DAS.todaysCharacterLog = DAS.globalSettings.completionLog[currentDate][characterName]
+
+
+ return DAS.globalSettings.completionLog[currentDate][characterName]
+end
+DAS.GetShareableLog = getSettingsArray
+
+local typeString = "string"
+function DAS.GetCompleted(questName)
+
+ if nil == questName or "" == questName or typeString ~= type(questName) then return false end
+
+ local settings = getSettingsArray()
+ local logEntry = settings[zo_strformat(questName)] or {}
+ return logEntry.completed
+
+end
+
+
+function DAS.LogQuest(questName, completed)
+ if not questName then return end
+
+ local timeStringNumber = timeStringNumber or tonumber(GetTimeString():sub(1,2))
+ local settings = getSettingsArray()
+
+ local afterEight = (timeStringNumber >= 8) -- 08:17:02 - reset is at 8
+ local afterEightHasChanged = false
+ for questId, questData in pairs(settings) do
+ afterEightHasChanged = afterEightHasChanged or questData.afterEight ~= afterEight
+ end
+ if afterEightHasChanged then
+ for questId, questData in pairs(settings) do
+ if questData.afterEight ~= afterEight then
+ settings[questId] = nil
+ end
+ end
+ end
+
+ settings[questName] = {}
+ settings[questName].completed = completed
+ settings[questName].afterEight = afterEight
+
+ -- DAS.globalSettings.completionLog[currentDate][characterName][questName] = settings[questName]
+end
+
+
+local function deleteYesterdaysLog()
+ -- kill yesterday's log, we don't need it
+ if (nil ~= DAS.globalSettings and nil ~= DAS.globalSettings.lastLogDate) and (DAS.globalSettings.lastLogDate < currentDate) then
+ if nil == DAS.Log then DAS.Log = {} end
+ DAS.Log[DAS.globalSettings.lastLogDate] = nil
+ DAS.globalSettings.lastLogDate = currentDate
+ end
+end
+DAS.deleteYesterdaysLog = deleteYesterdaysLog
+
+function DAS.GetQuestStatus(questName)
+ if nil == questName then return end
+
+ if nil ~= DAS.QuestNameTable[questName] then return DAS_STATUS_ACTIVE end
+ if DAS.GetCompleted(questName) then
+ return DAS_STATUS_COMPLETE
+ end
+
+ return DAS_STATUS_OPEN
+end
+
+function DAS.GetLogIndex(questName)
+ return DAS.QuestNameTable[questName] or 0
+end
+
+local function handleLog(forceNoAfterEight)
+
+ local todaysLog = DAS.GetShareableLog()
+ if todaysLog and {} ~= todaysLog then
+ todaysLog = ZO_DeepTableCopy(todaysLog, {})
+ end
+
+ local allLogs = DAS.globalSettings.completionLog
+ allLogs[currentDate] = allLogs[currentDate] or {}
+
+ local logSize, lastDate = NonContiguousCount(DAS.globalSettings.completionLog)
+
+ local counter = 0
+ for currentDate, dateLog in pairs(DAS.globalSettings.completionLog) do
+ counter = counter + 1
+ if nil ~= currentDate and currentDate < currentDate then
+ lastDate = currentDate
+ end
+ if counter < logSize-2 then
+ DAS.globalSettings.completionLog[currentDate] = nil
+ end
+ end
+
+ local afterEight = not forceNoAfterEight and tonumber(GetTimeString():sub(0, 2)) >= 08 -- has to be a local var, lua error if not
+
+ if (not afterEight) and isEmpty(DAS.todaysLog) and lastDate ~= currentDate then
+ local lastLog = DAS.globalSettings.completionLog[lastDate]
+ DAS.globalSettings.completionLog[currentDate] = ZO_DeepTableCopy(lastLog, {})
+ -- d(DAS.globalSettings.completionLog[currentDate])
+ for charName, charLog in pairs(DAS.globalSettings.completionLog[currentDate]) do
+ for questName, questData in pairs(charLog) do
+ questData.afterEight = false
+ end
+ end
+ end
+end
+DAS.handleLog = handleLog -- expose this for debugging purpose
\ No newline at end of file