changeset 51:fb81254bd7b8

Clarified the distinction between data (what is actually saved) and the objects (which store the data, but also have methods and other attributes).
author madcatzinc@35b17cf1-18cd-47ff-9ca3-31d6b526ef09
date Fri, 03 May 2013 23:24:04 +0000
parents 7cbd32de1fdd
children da98db8191f5
files CyborgMMO7.lua RatPageModel.lua
diffstat 2 files changed, 30 insertions(+), 55 deletions(-) [+]
line wrap: on
line diff
--- a/CyborgMMO7.lua	Fri May 03 23:23:58 2013 +0000
+++ b/CyborgMMO7.lua	Fri May 03 23:24:04 2013 +0000
@@ -92,18 +92,22 @@
 	return CyborgMMO7SaveData
 end
 
-function CyborgMMO_SetRatSaveData(data)
+function CyborgMMO_SetRatSaveData(objects)
 	assert(VarsLoaded)
-	local saveData = {}
+	local data = {}
 	for mode=1,RAT7.MODES do
-		saveData[mode] = {}
+		data[mode] = {}
 		for button=1,RAT7.BUTTONS do
-			if data[mode][button] then
-				saveData[mode][button] = data[mode][button]:SaveData()
+			if objects[mode][button] then
+				data[mode][button] = objects[mode][button]:SaveData()
 			end
 		end
 	end
-	CyborgMMO_GetSaveData().Rat = saveData
+	CyborgMMO_GetSaveData().Rat = data
+end
+
+function CyborgMMO_GetRatSaveData()
+	return CyborgMMO_GetSaveData().Rat
 end
 
 local function GetSpellID(name)
--- a/RatPageModel.lua	Fri May 03 23:23:58 2013 +0000
+++ b/RatPageModel.lua	Fri May 03 23:24:04 2013 +0000
@@ -36,13 +36,10 @@
 	local self = {}
 	self.mode = 1
 	self.observers = {}
-	self.data = {}
+	self.objects = {}
 
-	for i=1,RAT7.MODES do
-		self.data[i] = {}
-		for j=1,RAT7.BUTTONS do
-			self.data[i][j] = {}
-		end
+	for mode=1,RAT7.MODES do
+		self.objects[mode] = {}
 	end
 
 	setmetatable(self, RatPageModel_mt)
@@ -50,48 +47,26 @@
 	return self
 end
 
-function RatPageModel_methods:InitSaveData(data)
-	for i=1,RAT7.MODES do
-		if not data["Rat"][i] then
-			data["Rat"][i] = {}
-		end
-		for j=1,RAT7.BUTTONS do
-			if not data["Rat"][i][j] then
-				data["Rat"][i][j] = {}
+function RatPageModel_methods:LoadData()
+	CyborgMMO_DPrint("Loading...")
+	local data = CyborgMMO_GetRatSaveData()
+	for mode=1,RAT7.MODES do
+		for button=1,RAT7.BUTTONS do
+			local buttonData = data and data[mode] and data[mode][button]
+			if buttonData and buttonData.type then
+				local object = CyborgMMO_CreateWowObject(buttonData.type, buttonData.detail, buttonData.subdetail)
+				self:SetObjectOnButtonNoUpdate(button, mode, object)
+			else
+				self:SetObjectOnButtonNoUpdate(button, mode, nil)
 			end
 		end
 	end
-end
-
-function RatPageModel_methods:LoadData()
-	CyborgMMO_DPrint("Loading...")
-	local data = CyborgMMO_GetSaveData()
-
-	if not data["Rat"] then
-		data["Rat"] = {}
-		self:InitSaveData(data)
-	end
-
-	self.data = data["Rat"]
-	if data then
-		for mode=1,RAT7.MODES do
-			for button=1,RAT7.BUTTONS do
-				local data = self.data[mode][button]
-				if data and data.type then
-					local object = CyborgMMO_CreateWowObject(data.type, data.detail, data.subdetail)
-					self:SetObjectOnButtonNoUpdate(button, mode, object)
-				else
-					self:SetObjectOnButtonNoUpdate(button, mode, nil)
-				end
-			end
-		end
-		self:UpdateObservers()
-	end
+	self:UpdateObservers()
 end
 
 function RatPageModel_methods:SaveData()
 	CyborgMMO_DPrint("Saving...")
-	CyborgMMO_SetRatSaveData(self.data)
+	CyborgMMO_SetRatSaveData(self.objects)
 end
 
 function RatPageModel_methods:SetMode(mode)
@@ -103,21 +78,17 @@
 	return self.mode
 end
 
-function RatPageModel_methods:GetData()
-	return self.data,self.mode
-end
-
 function RatPageModel_methods:GetObjectOnButton(button)
-	if not self.data[self.mode][button] then
+	if not self.objects[self.mode][button] then
 		return nil
 	else
-		return self.data[self.mode][button]
+		return self.objects[self.mode][button]
 	end
 end
 
 function RatPageModel_methods:SetObjectOnButtonNoUpdate(button, mode, object)
 --	CyborgMMO_DPrint("button = "..tostring(button).." mode = "..tostring(mode))
-	self.data[mode][button] = object
+	self.objects[mode][button] = object
 
 	if object then
 		object:SetBinding(CyborgMMO_ProfileKeyBindings[((mode-1)*RAT7.BUTTONS)+button])
@@ -149,7 +120,7 @@
 
 function RatPageModel_methods:UpdateObservers()
 	for i=1,#self.observers do
-		self.observers[i].Update(self.data, self.mode)
+		self.observers[i].Update(self.objects, self.mode)
 	end
 	self:SaveData()
 end