diff CyborgMMO7.lua @ 0:bf9220814fb5

The first version of the Cyborg MMO7 addon for warcraft
author madcatzinc@35b17cf1-18cd-47ff-9ca3-31d6b526ef09
date Tue, 24 Jan 2012 17:14:21 +0000
parents
children a4e2eaf9cad9
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/CyborgMMO7.lua	Tue Jan 24 17:14:21 2012 +0000
@@ -0,0 +1,664 @@
+--~ Warcraft Plugin for Cyborg MMO7 
+--~ Filename: CyborgMMO7.lua
+--~ Description: Plugin entry point, String tables and other generic crap that I could not think to put anywhere else.
+--~ Copyright (C) 2012 Mad Catz Inc.
+--~ Author: Christopher Hooks
+
+--~ This program is free software; you can redistribute it and/or
+--~ modify it under the terms of the GNU General Public License
+--~ as published by the Free Software Foundation; either version 2
+--~ of the License, or (at your option) any later version.
+
+--~ This program is distributed in the hope that it will be useful,
+--~ but WITHOUT ANY WARRANTY; without even the implied warranty of
+--~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+--~ GNU General Public License for more details.
+
+--~ You should have received a copy of the GNU General Public License
+--~ along with this program; if not, write to the Free Software
+--~ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+
+Mode = {
+	["enUS"] = {
+		"ALT-CTRL-E",
+		"ALT-CTRL-F",
+		"ALT-CTRL-["
+	},
+	["frFR"] = {
+		"ALT-CTRL-E",
+		"ALT-CTRL-F",
+		"ALT-CTRL-^"
+	},
+	["deDE"] = {
+		"ALT-CTRL-E",
+		"ALT-CTRL-F",
+		"ALT-CTRL-ü"
+	},
+	["zhCN"] = {
+		"ALT-CTRL-E",
+		"ALT-CTRL-F",
+		"ALT-CTRL-["
+	},
+	["zhTW"] = {
+		"ALT-CTRL-E",
+		"ALT-CTRL-F",
+		"ALT-CTRL-["
+	},
+	["esES"] = {
+		"ALT-CTRL-E",
+		"ALT-CTRL-F",
+		"ALT-CTRL-'"
+	},
+	["esMX"] = {
+		"ALT-CTRL-E",
+		"ALT-CTRL-F",
+		"ALT-CTRL-'"
+	}
+}
+
+WowCommands = {
+	["enUS"] = {
+		"ALT-CTRL-NUMPAD1",
+		"ALT-CTRL-NUMPAD2",
+		"ALT-CTRL-NUMPAD3",
+		"ALT-CTRL-NUMPAD4",
+		"ALT-CTRL-NUMPAD5",
+		"ALT-CTRL-NUMPAD6",
+		"ALT-CTRL-NUMPAD7",
+		"ALT-CTRL-NUMPAD8",
+		"ALT-CTRL-NUMPAD9",
+		"ALT-CTRL-NUMPAD0",
+		"ALT-CTRL-1",
+		"ALT-CTRL-2",
+		"ALT-CTRL-3",
+		"ALT-CTRL-4",
+		"ALT-CTRL-5",
+		"ALT-CTRL-6",
+		"ALT-CTRL-7",
+		"ALT-CTRL-8",
+		"ALT-CTRL-9",
+		"ALT-CTRL-0",
+		"ALT-CTRL-F1",
+		"ALT-CTRL-F2",
+		"ALT-CTRL-F3",
+		"ALT-CTRL-F4",
+		"ALT-CTRL-F5",
+		"ALT-CTRL-F6",
+		"ALT-CTRL-F7",
+		"ALT-CTRL-F8",
+		"ALT-CTRL-F9",
+		"ALT-CTRL-F10",
+		"ALT-CTRL-F11",
+		"ALT-CTRL-F12",
+		"ALT-CTRL--",
+		"ALT-CTRL-H",
+		"ALT-CTRL-A",
+		"ALT-CTRL-B",
+		"ALT-CTRL-C",
+		"ALT-CTRL-D",
+		"ALT-CTRL-END"
+	},
+	["frFR"] = {
+		"ALT-CTRL-NUMPAD1",
+		"ALT-CTRL-NUMPAD2",
+		"ALT-CTRL-NUMPAD3",
+		"ALT-CTRL-NUMPAD4",
+		"ALT-CTRL-NUMPAD5",
+		"ALT-CTRL-NUMPAD6",
+		"ALT-CTRL-NUMPAD7",
+		"ALT-CTRL-NUMPAD8",
+		"ALT-CTRL-NUMPAD9",
+		"ALT-CTRL-NUMPAD0",
+		"ALT-CTRL-1",
+		"ALT-CTRL-2",
+		"ALT-CTRL-3",
+		"ALT-CTRL-4",
+		"ALT-CTRL-5",
+		"ALT-CTRL-6",
+		"ALT-CTRL-7",
+		"ALT-CTRL-8",
+		"ALT-CTRL-9",
+		"ALT-CTRL-0",
+		"ALT-CTRL-F1",
+		"ALT-CTRL-F2",
+		"ALT-CTRL-F3",
+		"ALT-CTRL-F4",
+		"ALT-CTRL-F5",
+		"ALT-CTRL-F6",
+		"ALT-CTRL-F7",
+		"ALT-CTRL-F8",
+		"ALT-CTRL-F9",
+		"ALT-CTRL-F10",
+		"ALT-CTRL-F11",
+		"ALT-CTRL-F12",
+		"ALT-CTRL-)",
+		"ALT-CTRL-H",
+		"ALT-CTRL-Q",
+		"ALT-CTRL-B",
+		"ALT-CTRL-C",
+		"ALT-CTRL-D",
+		"ALT-CTRL-END"
+	},
+	["deDE"] = {
+		"ALT-CTRL-NUMPAD1",
+		"ALT-CTRL-NUMPAD2",
+		"ALT-CTRL-NUMPAD3",
+		"ALT-CTRL-NUMPAD4",
+		"ALT-CTRL-NUMPAD5",
+		"ALT-CTRL-NUMPAD6",
+		"ALT-CTRL-NUMPAD7",
+		"ALT-CTRL-NUMPAD8",
+		"ALT-CTRL-NUMPAD9",
+		"ALT-CTRL-NUMPAD0",
+		"ALT-CTRL-1",
+		"ALT-CTRL-2",
+		"ALT-CTRL-3",
+		"ALT-CTRL-4",
+		"ALT-CTRL-5",
+		"ALT-CTRL-6",
+		"ALT-CTRL-7",
+		"ALT-CTRL-8",
+		"ALT-CTRL-9",
+		"ALT-CTRL-0",
+		"ALT-CTRL-F1",
+		"ALT-CTRL-F2",
+		"ALT-CTRL-F3",
+		"ALT-CTRL-F4",
+		"ALT-CTRL-F5",
+		"ALT-CTRL-F6",
+		"ALT-CTRL-F7",
+		"ALT-CTRL-F8",
+		"ALT-CTRL-F9",
+		"ALT-CTRL-F10",
+		"ALT-CTRL-F11",
+		"ALT-CTRL-F12",
+		"ALT-CTRL-ß",
+		"ALT-CTRL-H",
+		"ALT-CTRL-A",
+		"ALT-CTRL-B",
+		"ALT-CTRL-C",
+		"ALT-CTRL-D",
+		"ALT-CTRL-END"
+	},
+	["zhCN"] = {
+		"ALT-CTRL-NUMPAD1",
+		"ALT-CTRL-NUMPAD2",
+		"ALT-CTRL-NUMPAD3",
+		"ALT-CTRL-NUMPAD4",
+		"ALT-CTRL-NUMPAD5",
+		"ALT-CTRL-NUMPAD6",
+		"ALT-CTRL-NUMPAD7",
+		"ALT-CTRL-NUMPAD8",
+		"ALT-CTRL-NUMPAD9",
+		"ALT-CTRL-NUMPAD0",
+		"ALT-CTRL-1",
+		"ALT-CTRL-2",
+		"ALT-CTRL-3",
+		"ALT-CTRL-4",
+		"ALT-CTRL-5",
+		"ALT-CTRL-6",
+		"ALT-CTRL-7",
+		"ALT-CTRL-8",
+		"ALT-CTRL-9",
+		"ALT-CTRL-0",
+		"ALT-CTRL-F1",
+		"ALT-CTRL-F2",
+		"ALT-CTRL-F3",
+		"ALT-CTRL-F4",
+		"ALT-CTRL-F5",
+		"ALT-CTRL-F6",
+		"ALT-CTRL-F7",
+		"ALT-CTRL-F8",
+		"ALT-CTRL-F9",
+		"ALT-CTRL-F10",
+		"ALT-CTRL-F11",
+		"ALT-CTRL-F12",
+		"ALT-CTRL--",
+		"ALT-CTRL-H",
+		"ALT-CTRL-A",
+		"ALT-CTRL-B",
+		"ALT-CTRL-C",
+		"ALT-CTRL-D",
+		"ALT-CTRL-END"
+	},
+	["zhTW"] = {
+		"ALT-CTRL-NUMPAD1",
+		"ALT-CTRL-NUMPAD2",
+		"ALT-CTRL-NUMPAD3",
+		"ALT-CTRL-NUMPAD4",
+		"ALT-CTRL-NUMPAD5",
+		"ALT-CTRL-NUMPAD6",
+		"ALT-CTRL-NUMPAD7",
+		"ALT-CTRL-NUMPAD8",
+		"ALT-CTRL-NUMPAD9",
+		"ALT-CTRL-NUMPAD0",
+		"ALT-CTRL-1",
+		"ALT-CTRL-2",
+		"ALT-CTRL-3",
+		"ALT-CTRL-4",
+		"ALT-CTRL-5",
+		"ALT-CTRL-6",
+		"ALT-CTRL-7",
+		"ALT-CTRL-8",
+		"ALT-CTRL-9",
+		"ALT-CTRL-0",
+		"ALT-CTRL-F1",
+		"ALT-CTRL-F2",
+		"ALT-CTRL-F3",
+		"ALT-CTRL-F4",
+		"ALT-CTRL-F5",
+		"ALT-CTRL-F6",
+		"ALT-CTRL-F7",
+		"ALT-CTRL-F8",
+		"ALT-CTRL-F9",
+		"ALT-CTRL-F10",
+		"ALT-CTRL-F11",
+		"ALT-CTRL-F12",
+		"ALT-CTRL--",
+		"ALT-CTRL-H",
+		"ALT-CTRL-A",
+		"ALT-CTRL-B",
+		"ALT-CTRL-C",
+		"ALT-CTRL-D",
+		"ALT-CTRL-END"
+	},
+	["esES"] = {
+		"ALT-CTRL-NUMPAD1",
+		"ALT-CTRL-NUMPAD2",
+		"ALT-CTRL-NUMPAD3",
+		"ALT-CTRL-NUMPAD4",
+		"ALT-CTRL-NUMPAD5",
+		"ALT-CTRL-NUMPAD6",
+		"ALT-CTRL-NUMPAD7",
+		"ALT-CTRL-NUMPAD8",
+		"ALT-CTRL-NUMPAD9",
+		"ALT-CTRL-NUMPAD0",
+		"ALT-CTRL-1",
+		"ALT-CTRL-2",
+		"ALT-CTRL-3",
+		"ALT-CTRL-4",
+		"ALT-CTRL-5",
+		"ALT-CTRL-6",
+		"ALT-CTRL-7",
+		"ALT-CTRL-8",
+		"ALT-CTRL-9",
+		"ALT-CTRL-0",
+		"ALT-CTRL-F1",
+		"ALT-CTRL-F2",
+		"ALT-CTRL-F3",
+		"ALT-CTRL-F4",
+		"ALT-CTRL-F5",
+		"ALT-CTRL-F6",
+		"ALT-CTRL-F7",
+		"ALT-CTRL-F8",
+		"ALT-CTRL-F9",
+		"ALT-CTRL-F10",
+		"ALT-CTRL-F11",
+		"ALT-CTRL-F12",
+		"ALT-CTRL-'",
+		"ALT-CTRL-H",
+		"ALT-CTRL-A",
+		"ALT-CTRL-B",
+		"ALT-CTRL-C",
+		"ALT-CTRL-D",
+		"ALT-CTRL-END"
+	},
+	["esMX"] = {
+		"ALT-CTRL-NUMPAD1",
+		"ALT-CTRL-NUMPAD2",
+		"ALT-CTRL-NUMPAD3",
+		"ALT-CTRL-NUMPAD4",
+		"ALT-CTRL-NUMPAD5",
+		"ALT-CTRL-NUMPAD6",
+		"ALT-CTRL-NUMPAD7",
+		"ALT-CTRL-NUMPAD8",
+		"ALT-CTRL-NUMPAD9",
+		"ALT-CTRL-NUMPAD0",
+		"ALT-CTRL-1",
+		"ALT-CTRL-2",
+		"ALT-CTRL-3",
+		"ALT-CTRL-4",
+		"ALT-CTRL-5",
+		"ALT-CTRL-6",
+		"ALT-CTRL-7",
+		"ALT-CTRL-8",
+		"ALT-CTRL-9",
+		"ALT-CTRL-0",
+		"ALT-CTRL-F1",
+		"ALT-CTRL-F2",
+		"ALT-CTRL-F3",
+		"ALT-CTRL-F4",
+		"ALT-CTRL-F5",
+		"ALT-CTRL-F6",
+		"ALT-CTRL-F7",
+		"ALT-CTRL-F8",
+		"ALT-CTRL-F9",
+		"ALT-CTRL-F10",
+		"ALT-CTRL-F11",
+		"ALT-CTRL-F12",
+		"ALT-CTRL-'",
+		"ALT-CTRL-H",
+		"ALT-CTRL-A",
+		"ALT-CTRL-B",
+		"ALT-CTRL-C",
+		"ALT-CTRL-D",
+		"ALT-CTRL-END"
+	}
+}
+
+
+StringTable = {
+	["enUS"] = {
+		CyborgButtonTitle="Cyborg Button",
+		MiniMapButtonTitle="MiniMap Button",
+		OptionPageTitle="Cyborg MMO7",
+		OptionPageSetDefaults="Default",
+		CyborgSizeSliderTitle="Cyborg Head Size",
+		PluginSizeSliderTitle="Interface Window Size"
+	},
+	["frFR"] = {
+		CyborgButtonTitle="Bouton Cyborg",
+		MiniMapButtonTitle="Bouton minimap",
+		OptionPageTitle="Cyborg MMO7",
+		OptionPageSetDefaults="Par défaut",
+		CyborgSizeSliderTitle="Dimension de la tête Cyborg",
+		PluginSizeSliderTitle="Dimension de la fenêtre d'interface"
+	},
+	["deDE"] = {
+		CyborgButtonTitle="Cyborg-Taste",
+		MiniMapButtonTitle="MiniMap-Taste",
+		OptionPageTitle="Cyborg MMO7",
+		OptionPageSetDefaults="Standard",
+		CyborgSizeSliderTitle="Größe des Cyborg-Kopfes",
+		PluginSizeSliderTitle="Größe des Schnittstellenfensters"
+	},
+	["zhCN"] = {
+		CyborgButtonTitle="Cyborg 按钮",
+		MiniMapButtonTitle="“迷你地图”按钮",
+		OptionPageTitle="Cyborg MMO7",
+		OptionPageSetDefaults="默认",
+		CyborgSizeSliderTitle="Cyborg 标题大小",
+		PluginSizeSliderTitle="界面窗口大小"
+	},
+	["zhTW"] = {
+		CyborgButtonTitle="Cyborg 按鈕",
+		MiniMapButtonTitle="MiniMap 按鈕",
+		OptionPageTitle="Cyborg MMO7",
+		OptionPageSetDefaults="預設",
+		CyborgSizeSliderTitle="Cyborg 頭大小",
+		PluginSizeSliderTitle="介面視窗大小"
+	},
+	["esES"] = {
+		CyborgButtonTitle="Botón Cyborg",
+		MiniMapButtonTitle="Botón Minimapa",
+		OptionPageTitle="Cyborg MMO7",
+		OptionPageSetDefaults="Predeterminado",
+		CyborgSizeSliderTitle="Tamaño de la cabeza de Cyborg",
+		PluginSizeSliderTitle="Tamaño de la ventana de la interfaz"
+	},
+	["esMX"] = {
+		CyborgButtonTitle="Botón de Cyborg",
+		MiniMapButtonTitle="Botón de Minimapa",
+		OptionPageTitle="Cyborg MMO7",
+		OptionPageSetDefaults="Modo predeterminado",
+		CyborgSizeSliderTitle="Tamaño de la cabeza de Cyborg",
+		PluginSizeSliderTitle="Tamaño de la ventana de interfaz"
+	}
+}
+
+function LoadStrings(self)
+	self:SetText(StringTable[GetLocale()][self:GetName()]);
+end
+
+local VarsLoaded = false;
+local EnteredWorld = false;
+local LoadBinding = false;
+local SaveName = GetRealmName().."_"..UnitName("player");
+local Settings = nil;
+
+
+
+function CyborgMiniMapButton_Reposition(pos)
+	CyborgMiniMapFrame:SetPoint("TOPLEFT",
+		"Minimap",
+		"TOPLEFT",
+		52-(80*cos(pos)),
+		(80*sin(pos))-52)
+end
+
+
+function CyborgMiniMapButton_OnUpdate()
+
+	local xpos,ypos = GetCursorPosition()
+	local xmin,ymin = Minimap:GetLeft(), Minimap:GetBottom()
+
+	xpos = (xmin)-(xpos / UIParent:GetScale())
+	ypos = (ypos/ UIParent:GetScale())-(ymin)
+
+	local degrees = math.deg(math.atan2(ypos,xpos));
+
+	while(degrees < 0) do
+		degrees = degrees + 360;
+	end
+
+
+	CyborgMiniMapButton_Reposition(degrees)
+end
+
+function MouseModeChange(mode)
+	local MiniMapTexture = getglobal("CyborgMiniMapButton_Icon")
+	local MiniMapGlowTexture = getglobal("CyborgMiniMapButton_IconGlow")
+	local OpenButtonTexture = getglobal("OpenButtonPage".."OpenMainForm"):GetNormalTexture();
+	local OpenButtonGlowTexture = getglobal("OpenButtonPage".."OpenMainForm"):GetHighlightTexture();
+	if(1==mode) then
+		MiniMapTexture:SetVertexColor(1,0,0,1)
+		--MiniMapGlowTexture:SetVertexColor(1,0.26,0.26,.75);
+		OpenButtonTexture:SetVertexColor(1,0,0,0.75);
+		--OpenButtonGlowTexture:SetVertexColor(1,0.26,0.26,0.50);
+	elseif(2==mode) then
+		MiniMapTexture:SetVertexColor(0.07,0.22,1,1)
+		MiniMapGlowTexture:SetVertexColor(0.13,0.56,1,.75);
+		OpenButtonTexture:SetVertexColor(0.07,0.22,1,0.75);
+		OpenButtonGlowTexture:SetVertexColor(0.13,0.56,1,0.5);
+	elseif(3==mode) then
+		MiniMapTexture:SetVertexColor(0.52,0.08,0.89,1)
+		MiniMapGlowTexture:SetVertexColor(0.67,0.31,0.85,.75);
+		OpenButtonTexture:SetVertexColor(0.52,0.08,0.89,0.75);
+		OpenButtonGlowTexture:SetVertexColor(0.67,0.31,0.85,0.5);
+	end
+end
+
+function GetSaveData()
+	if(VarsLoaded) then
+		if (CyborgMMO7SaveData == nil) then
+			CyborgMMO7SaveData = {};
+			CyborgMMO7SaveData[SaveName] = {}
+		end
+		return CyborgMMO7SaveData[SaveName];
+	end
+	return nil;
+end
+
+function SetSaveData(data, index)
+	if(VarsLoaded) then
+		GetSaveData()[index] = data
+	end
+end
+
+function Event(self, event, ...)
+    if(event == "VARIABLES_LOADED") then
+		VarsLoaded = true;
+    elseif(event == "PLAYER_ENTERING_WORLD") then
+		EnteredWorld = true;
+    elseif(event == "PLAYER_ENTER_COMBAT") then
+		msg("PLAYER_ENTER_COMBAT");
+		Close();
+	elseif(event == nil) then
+		msg("Event is nil");
+	else
+		msg("Event is not nil");
+    end
+
+
+	-- Fire Loading if and only if the player is in the world and vars are loaded
+	if(false == LoadBinding) then
+		if(VarsLoaded) then
+			if(EnteredWorld) then
+				local data = GetSaveData()
+
+				RatPageModel.Instance().LoadData();
+				LoadBinding = true;
+
+				ShowMacroFrame();
+				HideUIPanel(MacroFrame);
+
+
+				SetupModeCallbacks(1);
+				SetupModeCallbacks(2);
+				SetupModeCallbacks(3);
+
+
+				--Reload Slider values:
+				if(nil == data["Settings"]) then
+					data["Settings"] = {}
+					data["Settings"]["Cyborg"] = 0.75;
+					data["Settings"]["Plugin"] = 0.75;
+					data["Settings"]["MiniMapButton"] = true;
+					data["Settings"]["CyborgButton"] = true;
+				end
+
+				Settings = data["Settings"];
+
+				CyborgSizeSlider:SetValue(Settings["Cyborg"]);
+				SetOpenButtonSize(Settings["Cyborg"])
+				PluginSizeSlider:SetValue(Settings["Plugin"]);
+				SetMainPageSize(Settings["Plugin"]);
+
+				if(Settings["MiniMapButton"] == false) then
+					CyborgMiniMapButton:Hide();
+				end
+
+				local xmin,ymin = Minimap:GetLeft(), Minimap:GetBottom()
+				CyborgMiniMapButton_Reposition(math.deg(math.atan2(ymin,xmin)))
+				-- Close the main window for now
+				Close();
+			end
+		end
+	end
+end
+
+function SetDefaultSettings()
+	OpenButtonPageOpenMainForm:ClearAllPoints();
+	MainPage:ClearAllPoints();
+	OpenButtonPageOpenMainForm:SetPoint("LEFT", UIParent, "LEFT", 0, 0);
+	MainPage:SetPoint("LEFT", UIParent, "LEFT", 0, 0);
+
+	SetOpenButtonSize(0.75);
+	SetMainPageSize(0.75);
+	MiniMapButton:SetChecked();
+	SetMiniMapButton(true);
+	CyborgButton:SetChecked();
+	SetCyborgHeadButton(true);
+end
+
+function SetupModeCallbacks(modeNum)
+
+	fn = function()
+		MouseModeChange(modeNum);
+		RatPageModel.Instance().SetMode(modeNum)
+	end
+
+	local buttonFrame, parentFrame, name = CallbackFactory.Instance().AddCallback(fn);
+	if(1 ~= SetOverrideBindingClick(parentFrame, true, Mode[GetLocale()][modeNum], name, "LeftButton")) then
+		msg("Failed to Bind modeChange");
+	end
+end
+
+function Loaded()
+    MainPage:RegisterEvent("VARIABLES_LOADED");
+	MainPage:RegisterEvent("PLAYER_ENTERING_WORLD");
+    MainPage:RegisterEvent("PLAYER_ENTER_COMBAT");
+end
+
+function Close()
+    MainPage:Hide();
+	if(Settings["CyborgButton"] == true) then
+		OpenButtonPage:Show();
+	end
+end
+
+function Open()
+	MainPage:Show();
+	RatQuickPage:Hide();
+	if(Settings["CyborgButton"] == true) then
+		OpenButtonPage:Show();
+	end
+end
+
+function IsOpen()
+	if(MainPage:IsVisible() == 1) then
+		return true;
+	else
+		return false;
+	end
+end
+
+function Toggle()
+	if(IsOpen()) then
+		Close();
+	else
+		Open();
+	end
+end
+
+function msg(m)
+	local id, name = GetChannelName("Debug");
+	SendChatMessage(m, "CHANNEL", nil, id);
+end
+
+function SetMainPageSize(percent)
+	if(VarsLoaded) then
+		if(EnteredWorld) then
+			MainPage:SetScale(percent);
+			Settings["Plugin"] = percent;
+			local data = GetSaveData()
+			data["Settings"] = Settings
+			PluginSizeSlider:SetValue(percent);
+		end
+	end
+end
+
+function SetOpenButtonSize(percent)
+	if(VarsLoaded) then
+		if(EnteredWorld) then
+			OpenButtonPage:SetScale(percent)
+			Settings["Cyborg"] = percent;
+			local data = GetSaveData()
+			data["Settings"] = Settings
+			CyborgSizeSlider:SetValue(percent);
+		end
+	end
+end
+
+function SetCyborgHeadButton(boolVal)
+	Settings["CyborgButton"] = boolVal;
+	if(Settings["CyborgButton"] == true) then
+		Close();
+	else
+		OpenButtonPage:Hide();
+	end
+	local data = GetSaveData()
+	data["Settings"] = Settings
+end
+
+function SetMiniMapButton(boolVal)
+	Settings["MiniMapButton"] = boolVal;
+	if(Settings["MiniMapButton"] == true) then
+		CyborgMiniMapButton:Show();
+	else
+		CyborgMiniMapButton:Hide();
+	end
+	local data = GetSaveData()
+	data["Settings"] = Settings
+end
+