changeset 21:c8b19bc87787

Simplified settings handling, and fixed a few minor bugs related to them.
author madcatzinc@35b17cf1-18cd-47ff-9ca3-31d6b526ef09
date Thu, 25 Apr 2013 01:30:26 +0000
parents 937be4664323
children 0b0f51236a88
files CyborgMMO7.lua
diffstat 1 files changed, 38 insertions(+), 49 deletions(-) [+]
line wrap: on
line diff
--- a/CyborgMMO7.lua	Thu Apr 25 01:30:21 2013 +0000
+++ b/CyborgMMO7.lua	Thu Apr 25 01:30:26 2013 +0000
@@ -26,8 +26,9 @@
 local VarsLoaded = false
 local EnteredWorld = false
 local BindingsLoaded = false
+local SettingsLoaded = false
 local SaveName = GetRealmName().."_"..UnitName("player")
-local CyborgMMO_Settings = nil
+local Settings = nil
 
 
 function CyborgMMO_MiniMapButtonReposition(pos)
@@ -131,25 +132,23 @@
 		CyborgMMO_SetupModeCallbacks(2)
 		CyborgMMO_SetupModeCallbacks(3)
 
+		Settings = data.Settings
+		if not Settings then
+			Settings = {}
+			Settings.Cyborg = 0.75
+			Settings.Plugin = 0.75
+			Settings.MiniMapButton = true
+			Settings.CyborgButton = true
+			data.Settings = Settings
+		end
+		SettingsLoaded = true
 
-		--Reload Slider values:
-		if not data["Settings"] then
-			data["Settings"] = {}
-			data["Settings"]["Cyborg"] = 0.75
-			data["Settings"]["Plugin"] = 0.75
-			data["Settings"]["MiniMapButton"] = true
-			data["Settings"]["CyborgButton"] = true
-		end
+		-- Reload Slider values:
+		CyborgMMO_SetOpenButtonSize(Settings.Cyborg)
+		CyborgMMO_SetMainPageSize(Settings.Plugin)
 
-		CyborgMMO_Settings = data["Settings"]
-
-		CyborgMMO_OptionPageCyborgSizeSlider:SetValue(CyborgMMO_Settings["Cyborg"])
-		CyborgMMO_SetOpenButtonSize(CyborgMMO_Settings["Cyborg"])
-		CyborgMMO_OptionPagePluginSizeSlider:SetValue(CyborgMMO_Settings["Plugin"])
-		CyborgMMO_SetMainPageSize(CyborgMMO_Settings["Plugin"])
-
-		CyborgMMO_SetMiniMapButton(CyborgMMO_Settings["MiniMapButton"])
-		CyborgMMO_SetCyborgHeadButton(CyborgMMO_Settings["CyborgButton"])
+		CyborgMMO_SetMiniMapButton(Settings.MiniMapButton)
+		CyborgMMO_SetCyborgHeadButton(Settings.CyborgButton)
 
 		local xmin,ymin = Minimap:GetLeft(),Minimap:GetBottom()
 		CyborgMMO_MiniMapButtonReposition(math.deg(math.atan2(ymin, xmin)))
@@ -189,17 +188,11 @@
 
 function CyborgMMO_Close()
 	CyborgMMO_MainPage:Hide()
-	if CyborgMMO_Settings["CyborgButton"] then
-		CyborgMMO_OpenButtonPage:Show()
-	end
 end
 
 function CyborgMMO_Open()
 	CyborgMMO_MainPage:Show()
 	CyborgMMO_RatQuickPage:Hide()
-	if CyborgMMO_Settings["CyborgButton"] then
-		CyborgMMO_OpenButtonPage:Show()
-	end
 end
 
 function CyborgMMO_IsOpen()
@@ -241,46 +234,42 @@
 end
 
 function CyborgMMO_SetMainPageSize(percent)
-	if VarsLoaded and EnteredWorld then
-		CyborgMMO_MainPage:SetScale(percent)
-		CyborgMMO_Settings["Plugin"] = percent
-		local data = CyborgMMO_GetSaveData()
-		data["Settings"] = CyborgMMO_Settings
-		CyborgMMO_OptionPagePluginSizeSlider:SetValue(percent)
+	CyborgMMO_MainPage:SetScale(percent)
+	CyborgMMO_OptionPagePluginSizeSlider:SetValue(percent)
+	if BindingsLoaded then
+		Settings.Plugin = percent
 	end
 end
 
 function CyborgMMO_SetOpenButtonSize(percent)
-	if VarsLoaded and EnteredWorld then
-		CyborgMMO_OpenButtonPage:SetScale(percent)
-		CyborgMMO_Settings["Cyborg"] = percent
-		local data = CyborgMMO_GetSaveData()
-		data["Settings"] = CyborgMMO_Settings
-		CyborgMMO_OptionPageCyborgSizeSlider:SetValue(percent)
+	CyborgMMO_OpenButtonPage:SetScale(percent)
+	CyborgMMO_OptionPageCyborgSizeSlider:SetValue(percent)
+	if SettingsLoaded then
+		Settings.Cyborg = percent
 	end
 end
 
-function CyborgMMO_SetCyborgHeadButton(boolVal)
-	CyborgMMO_Settings["CyborgButton"] = boolVal
-	CyborgMMO_OptionPageCyborgButton:SetChecked(boolVal)
-	if CyborgMMO_Settings["CyborgButton"] then
-		CyborgMMO_Close()
+function CyborgMMO_SetCyborgHeadButton(visible)
+	if visible then
+		CyborgMMO_OpenButtonPage:Show()
 	else
 		CyborgMMO_OpenButtonPage:Hide()
 	end
-	local data = CyborgMMO_GetSaveData()
-	data["Settings"] = CyborgMMO_Settings
+	CyborgMMO_OptionPageCyborgButton:SetChecked(visible)
+	if SettingsLoaded then
+		Settings.CyborgButton = visible
+	end
 end
 
-function CyborgMMO_SetMiniMapButton(boolVal)
-	CyborgMMO_Settings["MiniMapButton"] = boolVal
-	CyborgMMO_OptionPageMiniMapButton:SetChecked(boolVal)
-	if CyborgMMO_Settings["MiniMapButton"] then
+function CyborgMMO_SetMiniMapButton(visible)
+	if visible then
 		CyborgMMO_MiniMapFrameButton:Show()
 	else
 		CyborgMMO_MiniMapFrameButton:Hide()
 	end
-	local data = CyborgMMO_GetSaveData()
-	data["Settings"] = CyborgMMO_Settings
+	CyborgMMO_OptionPageMiniMapButton:SetChecked(visible)
+	if SettingsLoaded then
+		Settings.MiniMapButton = visible
+	end
 end