diff --git a/MonkeyBuddy/Bindings.xml b/MonkeyBuddy/Bindings.xml
new file mode 100644
index 0000000..b32fc9b
--- /dev/null
+++ b/MonkeyBuddy/Bindings.xml
@@ -0,0 +1,7 @@
+
+
+ if (keystate == "down") then
+ MonkeyBuddy_ToggleDisplay();
+ end
+
+
diff --git a/MonkeyBuddy/MonkeyBuddy.lua b/MonkeyBuddy/MonkeyBuddy.lua
new file mode 100644
index 0000000..0df76d4
--- /dev/null
+++ b/MonkeyBuddy/MonkeyBuddy.lua
@@ -0,0 +1,834 @@
+-- *****************************************************************************
+-- MonkeyQuest
+-- *****************************************************************************
+
+-- Set color functions
+local MonkeyBuddyQuest_ColourCallback = {
+ [1] = function(x) MonkeyBuddyQuest_SetColour(1) end,
+ [2] = function(x) MonkeyBuddyQuest_SetColour(2) end,
+ [3] = function(x) MonkeyBuddyQuest_SetColour(3) end,
+ [4] = function(x) MonkeyBuddyQuest_SetColour(4) end,
+ [5] = function(x) MonkeyBuddyQuest_SetColour(5) end,
+ [6] = function(x) MonkeyBuddyQuest_SetColour(6) end,
+ [7] = function(x) MonkeyBuddyQuest_SetColour(7) end,
+ [8] = function(x) MonkeyBuddyQuest_SetColour(8) end,
+ [9] = function(x) MonkeyBuddyQuest_SetColour(9) end,
+ [10] = function(x) MonkeyBuddyQuest_SetColour(10) end,
+ [11] = function(x) MonkeyBuddyQuest_SetColour(11) end,
+ [12] = function(x) MonkeyBuddyQuest_SetColour(12) end
+};
+
+local MonkeyBuddyQuest_ColourCancleCallback = {
+ [1] = function(x) MonkeyBuddyQuest_CancleColour(1) end,
+ [2] = function(x) MonkeyBuddyQuest_CancleColour(2) end,
+ [3] = function(x) MonkeyBuddyQuest_CancleColour(3) end,
+ [4] = function(x) MonkeyBuddyQuest_CancleColour(4) end,
+ [5] = function(x) MonkeyBuddyQuest_CancleColour(5) end,
+ [6] = function(x) MonkeyBuddyQuest_CancleColour(6) end,
+ [7] = function(x) MonkeyBuddyQuest_CancleColour(7) end,
+ [8] = function(x) MonkeyBuddyQuest_CancleColour(8) end,
+ [9] = function(x) MonkeyBuddyQuest_CancleColour(9) end,
+ [10] = function(x) MonkeyBuddyQuest_CancleColour(10) end,
+ [11] = function(x) MonkeyBuddyQuest_CancleColour(11) end,
+ [12] = function(x) MonkeyBuddyQuest_CancleColour(12) end
+};
+
+-- this array is used to init the check buttons
+local MonkeyBuddyQuest_CheckButtons = { };
+MonkeyBuddyQuest_CheckButtons[MONKEYBUDDY_QUEST_OPEN] = {
+ id = 1,
+ strVar = "m_bDisplay",
+ pSlashCommand = MonkeyQuestSlash_CmdOpen
+};
+MonkeyBuddyQuest_CheckButtons[MONKEYBUDDY_QUEST_SHOWHIDDEN] = {
+ id = 2,
+ strVar = "m_bShowHidden",
+ pSlashCommand = MonkeyQuestSlash_CmdShowHidden
+};
+MonkeyBuddyQuest_CheckButtons[MONKEYBUDDY_QUEST_USEOVERVIEWS] = {
+ id = 3,
+ strVar = "m_bObjectives",
+ pSlashCommand = MonkeyQuestSlash_CmdUseOverviews
+};
+MonkeyBuddyQuest_CheckButtons[MONKEYBUDDY_QUEST_HIDEHEADERS] = {
+ id = 4,
+ strVar = "m_bNoHeaders",
+ pSlashCommand = MonkeyQuestSlash_CmdHideHeaders
+};
+MonkeyBuddyQuest_CheckButtons[MONKEYBUDDY_QUEST_HIDEBORDER] = {
+ id = 5,
+ strVar = "m_bNoBorder",
+ pSlashCommand = MonkeyQuestSlash_CmdHideBorder
+};
+MonkeyBuddyQuest_CheckButtons[MONKEYBUDDY_QUEST_GROWUP] = {
+ id = 6,
+ strVar = "m_bGrowUp",
+ pSlashCommand = MonkeyQuestSlash_CmdGrowUp
+};
+MonkeyBuddyQuest_CheckButtons[MONKEYBUDDY_QUEST_SHOWNUMQUESTS] = {
+ id = 7,
+ strVar = "m_bShowNumQuests",
+ pSlashCommand = MonkeyQuestSlash_CmdShowNumQuests
+};
+MonkeyBuddyQuest_CheckButtons[MONKEYBUDDY_QUEST_LOCK] = {
+ id = 8,
+ strVar = "m_bLocked",
+ pSlashCommand = MonkeyQuestSlash_CmdLock
+};
+MonkeyBuddyQuest_CheckButtons[MONKEYBUDDY_QUEST_COLOURTITLEON] = {
+ id = 9,
+ strVar = "m_bColourTitle",
+ pSlashCommand = MonkeyQuestSlash_CmdColourTitleOn
+};
+MonkeyBuddyQuest_CheckButtons[MONKEYBUDDY_QUEST_HIDECOMPLETEDQUESTS] = {
+ id = 10,
+ strVar = "m_bHideCompletedQuests",
+ pSlashCommand = MonkeyQuestSlash_CmdHideCompletedQuests
+};
+MonkeyBuddyQuest_CheckButtons[MONKEYBUDDY_QUEST_HIDECOMPLETEDOBJECTIVES] = {
+ id = 11,
+ strVar = "m_bHideCompletedObjectives",
+ pSlashCommand = MonkeyQuestSlash_CmdHideCompletedObjectives
+};
+MonkeyBuddyQuest_CheckButtons[MONKEYBUDDY_QUEST_SHOWTOOLTIPOBJECTIVES] = {
+ id = 12,
+ strVar = "m_bShowTooltipObjectives",
+ pSlashCommand = MonkeyQuestSlash_CmdShowTooltipObjectives
+};
+MonkeyBuddyQuest_CheckButtons[MONKEYBUDDY_QUEST_ALLOWRIGHTCLICK] = {
+ id = 13,
+ strVar = "m_bAllowRightClick",
+ pSlashCommand = MonkeyQuestSlash_CmdAllowRightClick
+};
+MonkeyBuddyQuest_CheckButtons[MONKEYBUDDY_QUEST_HIDETITLEBUTTONS] = {
+ id = 14,
+ strVar = "m_bHideTitleButtons",
+ pSlashCommand = MonkeyQuestSlash_CmdHideTitleButtons
+};
+MonkeyBuddyQuest_CheckButtons[MONKEYBUDDY_QUEST_HIDETITLE] = {
+ id = 15,
+ strVar = "m_bHideTitle",
+ pSlashCommand = MonkeyQuestSlash_CmdHideTitle
+};
+MonkeyBuddyQuest_CheckButtons[MONKEYBUDDY_QUEST_CRASHFONT] = {
+ id = 16,
+ strVar = "m_bCrashFont",
+ pSlashCommand = MonkeyQuestInit_Font,
+ disabled = true
+};
+MonkeyBuddyQuest_CheckButtons[MONKEYBUDDY_QUEST_CRASHBORDER] = {
+ id = 17,
+ strVar = "m_bCrashBorder",
+ pSlashCommand = MonkeyQuestInit_Border
+};
+MonkeyBuddyQuest_CheckButtons[MONKEYBUDDY_QUEST_SHOWNOOBTIPS] = {
+ id = 18,
+ strVar = "m_bShowNoobTips",
+ pSlashCommand = MonkeyQuestSlash_CmdShowNoobTips
+};
+MonkeyBuddyQuest_CheckButtons[MONKEYBUDDY_QUEST_SHOWZONEHIGHLIGHT] = {
+ id = 19,
+ strVar = "m_bShowZoneHighlight",
+ pSlashCommand = MonkeyQuestSlash_CmdShowZoneHighlight
+};
+MonkeyBuddyQuest_CheckButtons[MONKEYBUDDY_QUEST_SHOWQUESTLEVEL] = {
+ id = 20,
+ strVar = "m_bShowQuestLevel",
+ pSlashCommand = MonkeyQuestSlash_CmdShowQuestLevel
+};
+MonkeyBuddyQuest_CheckButtons[MONKEYBUDDY_QUEST_ALWAYSHEADERS] = {
+ id = 21,
+ strVar = "m_bAlwaysHeaders",
+ pSlashCommand = MonkeyQuestSlash_CmdAlwaysHeaders
+};
+MonkeyBuddyQuest_CheckButtons[MONKEYBUDDY_QUEST_WORKCOMPLETE] = {
+ id = 22,
+ strVar = "m_bWorkComplete",
+ pSlashCommand = MonkeyQuestSlash_CmdWorkComplete
+};
+
+
+-- this array is used to init the colour buttons
+local MonkeyBuddyQuest_ColourButtons = { };
+MonkeyBuddyQuest_ColourButtons[MONKEYBUDDY_QUEST_QUESTTITLECOLOUR] = {
+ id = 1,
+ strVar = "m_strQuestTitleColour"
+};
+MonkeyBuddyQuest_ColourButtons[MONKEYBUDDY_QUEST_HEADEROPENCOLOUR] = {
+ id = 2,
+ strVar = "m_strHeaderOpenColour"
+};
+MonkeyBuddyQuest_ColourButtons[MONKEYBUDDY_QUEST_HEADERCLOSEDCOLOUR] = {
+ id = 3,
+ strVar = "m_strHeaderClosedColour"
+};
+MonkeyBuddyQuest_ColourButtons[MONKEYBUDDY_QUEST_OVERVIEWCOLOUR] = {
+ id = 4,
+ strVar = "m_strOverviewColour"
+};
+MonkeyBuddyQuest_ColourButtons[MONKEYBUDDY_QUEST_SPECIALOBJECTIVECOLOUR] = {
+ id = 5,
+ strVar = "m_strSpecialObjectiveColour"
+};
+MonkeyBuddyQuest_ColourButtons[MONKEYBUDDY_QUEST_INITIALOBJECTIVECOLOUR] = {
+ id = 6,
+ strVar = "m_strInitialObjectiveColour"
+};
+MonkeyBuddyQuest_ColourButtons[MONKEYBUDDY_QUEST_MIDOBJECTIVECOLOUR] = {
+ id = 7,
+ strVar = "m_strMidObjectiveColour"
+};
+MonkeyBuddyQuest_ColourButtons[MONKEYBUDDY_QUEST_COMPLETEOBJECTIVECOLOUR] = {
+ id = 8,
+ strVar = "m_strCompleteObjectiveColour"
+};
+MonkeyBuddyQuest_ColourButtons[MONKEYBUDDY_QUEST_FINISHOBJECTIVECOLOUR] = {
+ id = 9,
+ strVar = "m_strFinishObjectiveColour"
+};
+MonkeyBuddyQuest_ColourButtons[MONKEYBUDDY_QUEST_ZONEHIGHLIGHTCOLOUR] = {
+ id = 10,
+ strVar = "m_strZoneHighlightColour"
+};
+
+
+local MonkeyBuddyQuest_Sliders = { };
+
+MonkeyBuddyQuest_Sliders[MONKEYBUDDY_QUEST_FRAMEALPHASLIDER] = {
+ id = 1,
+ strVar = "m_iFrameAlpha",
+ pSlashCommand = MonkeyQuest_SetFrameAlpha,
+ minValue = 0.0,
+ maxValue = 1.0,
+ valueStep = .01,
+ minText="0%",
+ maxText="100%",
+};
+MonkeyBuddyQuest_Sliders[MONKEYBUDDY_QUEST_ALPHASLIDER] = {
+ id = 2,
+ strVar = "m_iAlpha",
+ pSlashCommand = MonkeyQuest_SetAlpha,
+ minValue = 0.0,
+ maxValue = 1.0,
+ valueStep = .01,
+ minText="0%",
+ maxText="100%",
+};
+MonkeyBuddyQuest_Sliders[MONKEYBUDDY_QUEST_WIDTHSLIDER] = {
+ id = 3,
+ strVar = "m_iFrameWidth",
+ pSlashCommand = MonkeyQuestSlash_CmdWidth,
+ minValue = 200,
+ maxValue = 600,
+ valueStep = 1,
+ minText="200",
+ maxText="600",
+};
+MonkeyBuddyQuest_Sliders[MONKEYBUDDY_QUEST_FONTSLIDER] = {
+ id = 4,
+ strVar = "m_iFontHeight",
+ pSlashCommand = MonkeyQuestSlash_CmdFontHeight,
+ minValue = 8,
+ maxValue = 48,
+ valueStep = 0.5,
+ minText="8",
+ maxText="48",
+};
+MonkeyBuddyQuest_Sliders[MONKEYBUDDY_QUEST_PADDINGSLIDER] = {
+ id = 5,
+ strVar = "m_iQuestPadding",
+ pSlashCommand = MonkeyQuestSlash_CmdSetQuestPadding,
+ minValue = 0,
+ maxValue = 32,
+ valueStep = 1,
+ minText="0",
+ maxText="32",
+};
+
+MonkeyBuddy = {};
+MonkeyBuddy.m_strPlayer = "";
+
+function MonkeyBuddy_OnLoad(self)
+ -- Add myCockOptionsFrame to the UIPanelWindows list
+ UIPanelWindows["MonkeyBuddyFrame"] = {area = "center", pushable = 0};
+
+ -- register events
+ self:RegisterEvent("VARIABLES_LOADED");
+
+ -- register chat slash commands
+ -- this command hides the MonkeyBuddy Icon
+ SlashCmdList["MONKEYBUDDY_DISMISS"] = MonkeyBuddySlash_CmdDismiss;
+ SLASH_MONKEYBUDDY_DISMISS1 = "/monkeybuddydismiss";
+ SLASH_MONKEYBUDDY_DISMISS2 = "/mbdismiss";
+
+ -- this command shows the MonkeyBuddy Icon
+ SlashCmdList["MONKEYBUDDY_CALL"] = MonkeyBuddySlash_CmdCall;
+ SLASH_MONKEYBUDDY_CALL1 = "/monkeybuddycall";
+ SLASH_MONKEYBUDDY_CALL2 = "/mbcall";
+
+ MonkeyBuddyFrame_TitleText:SetTextColor(MONKEYLIB_TITLE_COLOUR.r, MONKEYLIB_TITLE_COLOUR.g, MONKEYLIB_TITLE_COLOUR.b);
+
+
+ MonkeyBuddyFrame:SetBackdrop({
+ bgFile = "Interface\\DialogFrame\\UI-DialogBox-Background",
+ edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Border",
+ tile = true,
+ edgeSize = 32,
+ tileSize = 32,
+ insets = { left = 11, right = 12, top = 12, bottom = 11 }
+ })
+
+ MonkeyBuddyQuestTab:SetBackdrop({
+ bgFile = "Interface\\DialogFrame\\UI-DialogBox-Background",
+ edgeFile = "Interface\\DialogFrame\\UI-DialogBox-Border",
+ tile = true,
+ edgeSize = 16,
+ tileSize = 16,
+ insets = { left = 5, right = 5, top = 5, bottom = 5 }
+ })
+ MonkeyBuddyQuestTab:SetBackdropBorderColor(0.25, 0.25, 0.25, 1.0)
+end
+
+function MonkeyBuddySlash_CmdDismiss()
+ MonkeyBuddyConfig[MonkeyBuddy.m_strPlayer].m_bDismissed = true;
+ MonkeyBuddyOptionsCheckButton:SetChecked(false)
+end
+
+function MonkeyBuddySlash_CmdCall()
+ MonkeyBuddyConfig[MonkeyBuddy.m_strPlayer].m_bDismissed = false;
+ MonkeyBuddyOptionsCheckButton:SetChecked(true)
+end
+
+function MonkeyBuddy_OnEvent(self, event, ...)
+
+ if (event == "VARIABLES_LOADED") then
+ -- Add MonkeyBuddy to myAddOns
+ if (myAddOnsList) then
+ myAddOnsList[MONKEYBUDDY_TITLE] = {name = MONKEYBUDDY_TITLE, description = MONKEYBUDDY_DESCRIPTION, version = MONKEYBUDDY_VERSION, frame = "MonkeyBuddyIconButton", optionsframe = "MonkeyBuddyFrame"};
+ end
+
+ MonkeyBuddy.m_strPlayer = UnitName('player');
+
+ if (MonkeyBuddyConfig == nil) then
+ MonkeyBuddyConfig = {};
+ end
+ if (MonkeyBuddyConfig[MonkeyBuddy.m_strPlayer] == nil) then
+ MonkeyBuddyConfig[MonkeyBuddy.m_strPlayer] = {};
+ MonkeyBuddyConfig[MonkeyBuddy.m_strPlayer].m_bDismissed = false;
+ MonkeyBuddyConfig[MonkeyBuddy.m_strPlayer].m_bDailies = false;
+ end
+
+ -- print out a nice message letting the user know the addon loaded
+ -- if (DEFAULT_CHAT_FRAME) then
+ -- DEFAULT_CHAT_FRAME:AddMessage(MONKEYBUDDY_LOADED_MSG);
+ -- end
+ MonkeyBuddyOptions()
+ end
+end
+
+function MonkeyBuddy_ToggleDisplay()
+ if (MonkeyBuddyFrame:IsVisible()) then
+ HideUIPanel(MonkeyBuddyFrame);
+ else
+ --ShowUIPanel(MonkeyBuddyFrame);
+ if (MonkeyQuest ~= nil) then
+ if (MonkeyQuest.m_bLoaded == true) then
+ ShowUIPanel(MonkeyBuddyFrame);
+ end
+ end
+ end
+end
+
+function MonkeyBuddyQuestFrame_OnShow()
+ if (MonkeyQuest ~= nil) then
+ if (MonkeyQuest.m_bLoaded == true) then
+ MonkeyBuddyQuestTabTexture:Show();
+
+ MonkeyBuddyQuestTab:SetBackdropBorderColor(1, 1, 1, 1)
+
+ MonkeyBuddyQuestFrame_Refresh();
+ else
+ MonkeyBuddyQuestTabTexture:Hide();
+ MonkeyBuddyQuestFrame:Hide();
+ end
+ else
+ MonkeyBuddyQuestTabTexture:Hide();
+ MonkeyBuddyQuestFrame:Hide();
+ end
+end
+
+function MonkeyBuddyQuestFrame_OnHide()
+ MonkeyBuddyQuestTabTexture:Hide();
+
+ MonkeyBuddyQuestTab:SetBackdropBorderColor(0.25, 0.25, 0.25, 1.0)
+end
+
+--Called when option page loads
+function MonkeyBuddyQuestFrame_Refresh()
+ -- Initial Values
+ local button, string, swatch, border, iAlpha, iRed, iGreen, iBlue;
+
+ -- Setup check buttons
+ for key, value in pairs(MonkeyBuddyQuest_CheckButtons) do
+ button = _G["MonkeyBuddyQuestCheck" .. value.id];
+ string = _G["MonkeyBuddyQuestCheck" .. value.id .. "Text"];
+
+ --Check Box
+ button:SetChecked(MonkeyQuestConfig[MonkeyQuest.m_strPlayer][value.strVar]);
+
+ if (value.disabled == true) then
+ button:Disable()
+ string:SetTextColor(0.4, 0.4, 0.4)
+ end
+
+ string:SetPoint("LEFT", button, "RIGHT", 2, 1)
+ string:SetText(key);
+
+ button.pSlashCommand = value.pSlashCommand;
+ button.strModName = "MonkeyQuest";
+ end
+
+ -- Setup colour buttons
+ for key, value in pairs(MonkeyBuddyQuest_ColourButtons) do
+ button = _G["MonkeyBuddyQuestColour" .. value.id];
+ swatch = _G["MonkeyBuddyQuestColour" .. value.id .. "_SwatchTexture"];
+ border = _G["MonkeyBuddyQuestColour" .. value.id .. "_BorderTexture"];
+ string = _G["MonkeyBuddyQuestColour" .. value.id .. "Text"];
+
+ button.disabled = nil;
+
+ --Color Swatch
+ iAlpha, iRed, iGreen, iBlue = MonkeyLib_ColourStrToARGB(MonkeyQuestConfig[MonkeyQuest.m_strPlayer][value.strVar]);
+
+ button.a = iAlpha;
+ button.r = iRed;
+ button.g = iGreen;
+ button.b = iBlue;
+ button.swatchFunc = MonkeyBuddyQuest_ColourCallback[value.id];
+ button.cancelFunc = MonkeyBuddyQuest_ColourCancleCallback[value.id];
+
+ swatch:SetVertexColor(iRed, iGreen, iBlue);
+ border:SetVertexColor(iRed, iGreen, iBlue);
+
+ button.id = value.id;
+ button.strVar = value.strVar;
+ string:SetText(key);
+
+ button.strModName = "MonkeyQuest";
+ end
+
+ local slider, string, low, high;
+
+ -- Setup Sliders
+ for key, value in pairs(MonkeyBuddyQuest_Sliders) do
+ slider = _G["MonkeyBuddyQuestSlider"..value.id];
+ string = _G["MonkeyBuddyQuestSlider"..value.id.."Text"];
+ low = _G["MonkeyBuddyQuestSlider"..value.id.."Low"];
+ high = _G["MonkeyBuddyQuestSlider"..value.id.."High"];
+
+ slider.id = value.id;
+ slider.strVar = value.strVar;
+ slider.pSlashCommand = value.pSlashCommand;
+
+ --OptionsFrame_EnableSlider(slider);
+ slider:SetMinMaxValues(value.minValue, value.maxValue);
+ slider:SetValueStep(value.valueStep);
+ slider:SetValue(MonkeyQuestConfig[MonkeyQuest.m_strPlayer][value.strVar]);
+--###
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer][value.strVar] < 1 and MonkeyQuestConfig[MonkeyQuest.m_strPlayer][value.strVar] > 0) then
+ current = format("%.2f",MonkeyQuestConfig[MonkeyQuest.m_strPlayer][value.strVar])
+ else
+ current = MonkeyQuestConfig[MonkeyQuest.m_strPlayer][value.strVar]
+ end
+
+ if (value.strVar == "m_iFont") then
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer][value.strVar] == 0) then
+ string:SetText(key .. " (Default)");
+ elseif (MonkeyQuestConfig[MonkeyQuest.m_strPlayer][value.strVar] == 1) then
+ string:SetText(key .. " (Thin)");
+ elseif (MonkeyQuestConfig[MonkeyQuest.m_strPlayer][value.strVar] == 2) then
+ string:SetText(key .. " (Blizzard)");
+ end
+ else
+ string:SetText(key .. " (" .. current .. ")");
+ end
+--###
+ low:SetText(value.minText);
+ high:SetText(value.maxText);
+
+ slider.strModName = "MonkeyQuest";
+ end
+end
+
+function MonkeyBuddyCheckButton_OnClick(self, button, down)
+ self.pSlashCommand(self:GetChecked());
+end
+
+function MonkeyBuddyOptionsCheckButton_OnClick(self, button, down)
+ if (self:GetChecked()) then
+ MonkeyBuddyConfig[MonkeyBuddy.m_strPlayer].m_bDismissed = false;
+ else
+ MonkeyBuddyConfig[MonkeyBuddy.m_strPlayer].m_bDismissed = true;
+ end
+end
+
+function MonkeyQuestDailiesCheckButton_OnClick(self, button, down)
+ if (self:GetChecked()) then
+ local enable = 1;
+ MonkeyBuddyConfig[MonkeyBuddy.m_strPlayer].m_bDailies = true
+ MonkeyQuest_Refresh(enable)
+ else
+ local disable = 0;
+ MonkeyBuddyConfig[MonkeyBuddy.m_strPlayer].m_bDailies = false
+ MonkeyQuest_Refresh(disable)
+ end
+end
+
+function MBButton_OnClick()
+ MonkeyBuddy_ToggleDisplay()
+end
+
+function MBButton_MouseDown()
+ --prevent nil error
+end
+
+function MBButton_MouseUp()
+ --prevent nil error
+end
+
+function MonkeyBuddyQuest_SetColour(id)
+ local iRed, iGreen, iBlue = ColorPickerFrame:GetColorRGB();
+ local swatch, button, border;
+
+
+ button = _G["MonkeyBuddyQuestColour" .. id];
+ swatch = _G["MonkeyBuddyQuestColour" .. id .. "_SwatchTexture"];
+ border = _G["MonkeyBuddyQuestColour" .. id .. "_BorderTexture"];
+
+ swatch:SetVertexColor(iRed, iGreen, iBlue);
+ border:SetVertexColor(iRed, iGreen, iBlue);
+ button.r = iRed;
+ button.g = iGreen;
+ button.b = iBlue;
+
+ -- update MonkeyQuest
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer][button.strVar] = MonkeyLib_ARGBToColourStr(1.0, iRed, iGreen, iBlue);
+
+ MonkeyQuest_Refresh();
+end
+
+function MonkeyBuddyQuest_CancleColour(id)
+ local iRed = ColorPickerFrame.previousValues.r;
+ local iGreen = ColorPickerFrame.previousValues.g;
+ local iBlue = ColorPickerFrame.previousValues.b;
+
+ local swatch, button, border;
+
+
+ button = _G["MonkeyBuddyQuestColour" .. id];
+ swatch = _G["MonkeyBuddyQuestColour" .. id .. "_SwatchTexture"];
+ border = _G["MonkeyBuddyQuestColour" .. id .. "_BorderTexture"];
+
+ swatch:SetVertexColor(iRed, iGreen, iBlue);
+ border:SetVertexColor(iRed, iGreen, iBlue);
+ button.r = iRed;
+ button.g = iGreen;
+ button.b = iBlue;
+
+ -- update MonkeyQuest
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer][button.strVar] = MonkeyLib_ARGBToColourStr(1.0, iRed, iGreen, iBlue);
+
+ MonkeyQuest_Refresh();
+end
+
+function MonkeyBuddySlider_OnValueChanged(self, value)
+
+ -- update MonkeyMod
+ if (self.strModName == "MonkeyQuest") then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer][self.strVar] = self:GetValue();
+ end
+
+ self.pSlashCommand(self:GetValue());
+
+ -- set the tool tip text
+ if (self:GetValue() == floor(self:GetValue())) then
+ GameTooltip:SetText(format("%d", self:GetValue()));
+ else
+ GameTooltip:SetText(format("%.2f", self:GetValue()));
+ end
+end
+
+--[[
+function MonkeyBuddySlider_OnEnter()
+ -- put the tool tip in the default position
+ GameTooltip:SetOwner(this, "ANCHOR_CURSOR");
+
+ -- set the tool tip text
+ if (this:GetValue() == floor(this:GetValue())) then
+ GameTooltip:SetText(format("%d", this:GetValue()));
+ else
+ GameTooltip:SetText(format("%.2f", this:GetValue()));
+ end
+
+ GameTooltip:Show();
+end
+
+function MonkeyBuddySlider_OnLeave()
+ GameTooltip:Hide();
+end
+--]]
+
+function MonkeyBuddyOptions()
+
+ -- Create main frame for information text
+ local MonkeyBuddyOptions = CreateFrame("FRAME", "MonkeyBuddyOptions")
+ MonkeyBuddyOptions.name = MONKEYBUDDY_TITLE
+ InterfaceOptions_AddCategory(MonkeyBuddyOptions)
+
+ local MonkeyBuddyOptionsText1 = MonkeyBuddyOptions:CreateFontString(nil, "ARTWORK")
+ MonkeyBuddyOptionsText1:SetFontObject(GameFontNormalLarge)
+ MonkeyBuddyOptionsText1:SetJustifyH("LEFT")
+ MonkeyBuddyOptionsText1:SetJustifyV("TOP")
+ MonkeyBuddyOptionsText1:ClearAllPoints()
+ MonkeyBuddyOptionsText1:SetPoint("TOPLEFT", 16, -16)
+ MonkeyBuddyOptionsText1:SetText(MONKEYBUDDY_FRAME_TITLE)
+
+ local MonkeyBuddyOptionsText2 = MonkeyBuddyOptions:CreateFontString(nil, "ARTWORK")
+ MonkeyBuddyOptionsText2:SetFontObject(GameFontNormalSmall)
+ MonkeyBuddyOptionsText2:SetJustifyH("LEFT")
+ MonkeyBuddyOptionsText2:SetJustifyV("TOP")
+ MonkeyBuddyOptionsText2:SetTextColor(1, 1, 1)
+ MonkeyBuddyOptionsText2:ClearAllPoints()
+ MonkeyBuddyOptionsText2:SetPoint("TOPLEFT", MonkeyBuddyOptionsText1, "BOTTOMLEFT", 8, -16)
+ MonkeyBuddyOptionsText2:SetWidth(340)
+ MonkeyBuddyOptionsText2:SetText(MONKEYBUDDY_GUI_TEXT)
+
+ local MonkeyBuddyOptionsText3 = MonkeyBuddyOptions:CreateFontString(nil, "ARTWORK")
+ MonkeyBuddyOptionsText3:SetFontObject(GameFontNormalLarge)
+ MonkeyBuddyOptionsText3:SetJustifyH("LEFT")
+ MonkeyBuddyOptionsText3:SetJustifyV("TOP")
+ MonkeyBuddyOptionsText3:SetTextColor(0, 1, 0)
+ MonkeyBuddyOptionsText3:ClearAllPoints()
+ MonkeyBuddyOptionsText3:SetPoint("TOPLEFT", MonkeyBuddyOptionsText2, "BOTTOMLEFT", 0, -16)
+ MonkeyBuddyOptionsText3:SetWidth(340)
+ MonkeyBuddyOptionsText3:SetText(MONKEYBUDDY_GUI_MBLOADED)
+
+ local MonkeyBuddyOptionsTextS = MonkeyBuddyOptions:CreateFontString(nil, "ARTWORK")
+ MonkeyBuddyOptionsTextS:SetFontObject(GameFontNormalLarge)
+ MonkeyBuddyOptionsTextS:SetJustifyH("LEFT")
+ MonkeyBuddyOptionsTextS:SetJustifyV("TOP")
+ MonkeyBuddyOptionsTextS:SetTextColor(1, 1, 1)
+ MonkeyBuddyOptionsTextS:ClearAllPoints()
+ MonkeyBuddyOptionsTextS:SetPoint("TOPLEFT", MonkeyBuddyOptionsText3, "BOTTOMLEFT", 0, -16)
+ MonkeyBuddyOptionsTextS:SetWidth(340)
+ MonkeyBuddyOptionsTextS:SetText(MONKEYBUDDY_GUI_MMINSTALLED)
+
+ local MonkeyBuddyStatus = CreateFrame("FRAME", "MBStatus", MonkeyBuddyOptions, BackdropTemplateMixin and "BackdropTemplate")
+
+ MonkeyBuddyStatus:SetBackdrop({
+ bgFile = "Interface\\Tooltips\\UI-Tooltip-Background",
+ edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border",
+ tile = true,
+ tileSize = 16,
+ edgeSize = 16,
+ insets = { left = 4, right = 4, top = 4, bottom = 4 }
+ })
+ MonkeyBuddyStatus:SetBackdropBorderColor(1, 1, 1, 1.0)
+ MonkeyBuddyStatus:SetBackdropColor(0, 0, 0, 0)
+
+ MonkeyBuddyStatus:SetWidth(345)
+ MonkeyBuddyStatus:SetHeight(125)
+ MonkeyBuddyStatus:ClearAllPoints()
+ MonkeyBuddyStatus:SetPoint("TOPLEFT", MonkeyBuddyOptionsText3, "BOTTOMLEFT", -6, -36)
+
+ local MonkeyBuddyOptionsText4 = MonkeyBuddyOptions:CreateFontString(nil, "ARTWORK")
+ MonkeyBuddyOptionsText4:SetFontObject(GameFontNormalLarge)
+ MonkeyBuddyOptionsText4:SetJustifyH("LEFT")
+ MonkeyBuddyOptionsText4:SetJustifyV("TOP")
+
+ if (GetAddOnDependencies("MonkeyQuest") ~= nil) then
+ MonkeyBuddyOptionsText4:SetTextColor(0, 1, 0)
+ MonkeyBuddyOptionsText4:SetText(GetAddOnMetadata("MonkeyQuest", "title"))
+ else
+ MonkeyBuddyOptionsText4:SetTextColor(1, 0, 0)
+ MonkeyBuddyOptionsText4:SetText("MonkeyQuest")
+ end
+
+ MonkeyBuddyOptionsText4:ClearAllPoints()
+ MonkeyBuddyOptionsText4:SetPoint("TOPLEFT", MonkeyBuddyOptionsText3, "BOTTOMLEFT", 8, -45)
+ MonkeyBuddyOptionsText4:SetWidth(340)
+
+ local MonkeyBuddyOptionsText5 = MonkeyBuddyOptions:CreateFontString(nil, "ARTWORK")
+ MonkeyBuddyOptionsText5:SetFontObject(GameFontNormalLarge)
+ MonkeyBuddyOptionsText5:SetJustifyH("LEFT")
+ MonkeyBuddyOptionsText5:SetJustifyV("TOP")
+
+ if (GetAddOnDependencies("MonkeyQuestLog") ~= nil) then
+ MonkeyBuddyOptionsText5:SetTextColor(0, 1, 0)
+ MonkeyBuddyOptionsText5:SetText(GetAddOnMetadata("MonkeyQuestLog", "title"))
+ else
+ MonkeyBuddyOptionsText5:SetTextColor(1, 0, 0)
+ MonkeyBuddyOptionsText5:SetText("MonkeyQuestLog")
+ end
+
+ MonkeyBuddyOptionsText5:ClearAllPoints()
+ MonkeyBuddyOptionsText5:SetPoint("TOPLEFT", MonkeyBuddyOptionsText4, "BOTTOMLEFT", 0, -14)
+ MonkeyBuddyOptionsText5:SetWidth(340)
+
+ local MonkeyBuddyOptionsText6 = MonkeyBuddyOptions:CreateFontString(nil, "ARTWORK")
+ MonkeyBuddyOptionsText6:SetFontObject(GameFontNormalLarge)
+ MonkeyBuddyOptionsText6:SetJustifyH("LEFT")
+ MonkeyBuddyOptionsText6:SetJustifyV("TOP")
+
+ if (GetAddOnDependencies("MonkeyClock") ~= nil) then
+ MonkeyBuddyOptionsText6:SetTextColor(0, 1, 0)
+ MonkeyBuddyOptionsText6:SetText(GetAddOnMetadata("MonkeyClock", "title"))
+ else
+ MonkeyBuddyOptionsText6:SetTextColor(1, 0, 0)
+ MonkeyBuddyOptionsText6:SetText("MonkeyClock")
+ end
+
+ MonkeyBuddyOptionsText6:ClearAllPoints()
+ MonkeyBuddyOptionsText6:SetPoint("TOPLEFT", MonkeyBuddyOptionsText5, "BOTTOMLEFT", 0, -14)
+ MonkeyBuddyOptionsText6:SetWidth(340)
+
+ local MonkeyBuddyOptionsText7 = MonkeyBuddyOptions:CreateFontString(nil, "ARTWORK")
+ MonkeyBuddyOptionsText7:SetFontObject(GameFontNormalLarge)
+ MonkeyBuddyOptionsText7:SetJustifyH("LEFT")
+ MonkeyBuddyOptionsText7:SetJustifyV("TOP")
+
+ if (GetAddOnDependencies("MonkeySpeed") ~= nil) then
+ MonkeyBuddyOptionsText7:SetTextColor(0, 1, 0)
+ MonkeyBuddyOptionsText7:SetText(GetAddOnMetadata("MonkeySpeed", "title"))
+ else
+ MonkeyBuddyOptionsText7:SetTextColor(1, 0, 0)
+ MonkeyBuddyOptionsText7:SetText("MonkeySpeed")
+ end
+
+ MonkeyBuddyOptionsText7:ClearAllPoints()
+ MonkeyBuddyOptionsText7:SetPoint("TOPLEFT", MonkeyBuddyOptionsText6, "BOTTOMLEFT", 0, -14)
+ MonkeyBuddyOptionsText7:SetWidth(340)
+
+ local MonkeyBuddyOptionsTextB= MonkeyBuddyOptions:CreateFontString(nil, "ARTWORK")
+ MonkeyBuddyOptionsTextB:SetFontObject(GameFontNormalLarge)
+ MonkeyBuddyOptionsTextB:SetJustifyH("LEFT")
+ MonkeyBuddyOptionsTextB:SetJustifyV("TOP")
+ MonkeyBuddyOptionsTextB:ClearAllPoints()
+ MonkeyBuddyOptionsTextB:SetPoint("TOPLEFT", MonkeyBuddyOptionsText7, "BOTTOMLEFT", -8, -14)
+ MonkeyBuddyOptionsTextB:SetWidth(340)
+ MonkeyBuddyOptionsTextB:SetText("MonkeyBuddy:")
+
+
+ local MonkeyBuddyStatus = CreateFrame("FRAME", "MBIconOption", MonkeyBuddyOptions, BackdropTemplateMixin and "BackdropTemplate")
+
+ MonkeyBuddyStatus:SetBackdrop({
+ bgFile = "Interface\\Tooltips\\UI-Tooltip-Background",
+ edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border",
+ tile = true,
+ tileSize = 16,
+ edgeSize = 16,
+ insets = { left = 4, right = 4, top = 4, bottom = 4 }
+ })
+ MonkeyBuddyStatus:SetBackdropBorderColor(1, 1, 1, 1.0)
+ MonkeyBuddyStatus:SetBackdropColor(0, 0, 0, 0)
+
+ MonkeyBuddyStatus:SetWidth(345)
+ MonkeyBuddyStatus:SetHeight(35)
+ MonkeyBuddyStatus:ClearAllPoints()
+ MonkeyBuddyStatus:SetPoint("TOPLEFT", MonkeyBuddyOptionsTextB, "BOTTOMLEFT", -6, -4)
+
+ MonkeyBuddyOptionsCheckButton = CreateFrame("CheckButton", "MBIconCheckButton", MonkeyBuddyOptions, "MonkeyBuddyOptionsCheckButtonTemplate")
+ MonkeyBuddyOptionsCheckButton:ClearAllPoints()
+ MonkeyBuddyOptionsCheckButton:SetPoint("TOPLEFT", MonkeyBuddyOptionsTextB, "BOTTOMLEFT", 2, -11)
+
+ if (MonkeyBuddyConfig[MonkeyBuddy.m_strPlayer].m_bDismissed == false) then
+ MonkeyBuddyOptionsCheckButton:SetChecked(true)
+ else
+ MonkeyBuddyOptionsCheckButton:SetChecked(false)
+ end
+
+ local MonkeyBuddyOptionsTextCheck= MonkeyBuddyOptions:CreateFontString(nil, "ARTWORK")
+ MonkeyBuddyOptionsTextCheck:SetFontObject(GameFontNormal)
+ MonkeyBuddyOptionsTextCheck:SetJustifyH("LEFT")
+ MonkeyBuddyOptionsTextCheck:SetJustifyV("TOP")
+ MonkeyBuddyOptionsTextCheck:SetTextColor(1, 1, 1)
+ MonkeyBuddyOptionsTextCheck:ClearAllPoints()
+ MonkeyBuddyOptionsTextCheck:SetPoint("TOPLEFT", MonkeyBuddyOptionsTextB, "BOTTOMLEFT", 24, -15)
+ MonkeyBuddyOptionsTextCheck:SetWidth(340)
+ MonkeyBuddyOptionsTextCheck:SetText(MONKEYBUDDY_GUI_MBMINIMAP)
+
+ if (IsAddOnLoaded("MonkeyQuest") ~= nil) then
+ local MonkeyBuddyOptionsTextM = MonkeyBuddyOptions:CreateFontString(nil, "ARTWORK")
+ MonkeyBuddyOptionsTextM:SetFontObject(GameFontNormalLarge)
+ MonkeyBuddyOptionsTextM:SetJustifyH("LEFT")
+ MonkeyBuddyOptionsTextM:SetJustifyV("TOP")
+ MonkeyBuddyOptionsTextM:ClearAllPoints()
+ MonkeyBuddyOptionsTextM:SetPoint("TOPLEFT", MonkeyBuddyOptionsTextB, "BOTTOMLEFT", 0, -42)
+ MonkeyBuddyOptionsTextM:SetWidth(340)
+ MonkeyBuddyOptionsTextM:SetText(MONKEYBUDDY_GUI_MQEXTRA)
+
+
+ local MonkeyQuestDailies = CreateFrame("FRAME", "MQDailiesOption", MonkeyBuddyOptions, BackdropTemplateMixin and "BackdropTemplate")
+
+ MonkeyQuestDailies:SetBackdrop({
+ bgFile = "Interface\\Tooltips\\UI-Tooltip-Background",
+ edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border",
+ tile = true,
+ tileSize = 16,
+ edgeSize = 16,
+ insets = { left = 4, right = 4, top = 4, bottom = 4 }
+ })
+ MonkeyQuestDailies:SetBackdropBorderColor(1, 1, 1, 1.0)
+ MonkeyQuestDailies:SetBackdropColor(0, 0, 0, 0)
+
+ MonkeyQuestDailies:SetWidth(345)
+ MonkeyQuestDailies:SetHeight(35)
+ MonkeyQuestDailies:ClearAllPoints()
+ MonkeyQuestDailies:SetPoint("TOPLEFT", MonkeyBuddyOptionsTextM, "BOTTOMLEFT", -6, -4)
+
+ MonkeyQuestDailiesCheckButton = CreateFrame("CheckButton", "MQDailiesCheckButton", MonkeyBuddyOptions, "MonkeyQuestDailiesCheckButtonTemplate")
+ MonkeyQuestDailiesCheckButton:ClearAllPoints()
+ MonkeyQuestDailiesCheckButton:SetPoint("TOPLEFT", MonkeyBuddyOptionsTextM, "BOTTOMLEFT", 2, -11)
+
+ if (MonkeyBuddyConfig[MonkeyBuddy.m_strPlayer].m_bDailies == true) then
+ MonkeyQuestDailiesCheckButton:SetChecked(true)
+ else
+ MonkeyQuestDailiesCheckButton:SetChecked(false)
+ end
+
+ local MonkeyQuestDailiesTextCheck = MonkeyBuddyOptions:CreateFontString(nil, "ARTWORK")
+ MonkeyQuestDailiesTextCheck:SetFontObject(GameFontNormal)
+ MonkeyQuestDailiesTextCheck:SetJustifyH("LEFT")
+ MonkeyQuestDailiesTextCheck:SetJustifyV("TOP")
+ MonkeyQuestDailiesTextCheck:SetTextColor(1, 1, 1)
+ MonkeyQuestDailiesTextCheck:ClearAllPoints()
+ MonkeyQuestDailiesTextCheck:SetPoint("TOPLEFT", MonkeyBuddyOptionsTextM, "BOTTOMLEFT", 24, -15)
+ MonkeyQuestDailiesTextCheck:SetWidth(340)
+ MonkeyQuestDailiesTextCheck:SetText(MONKEYBUDDY_GUI_MQEDAILY)
+
+ end
+
+ local MonkeyBuddyOptionsTextMB = MonkeyBuddyOptions:CreateFontString(nil, "ARTWORK")
+ MonkeyBuddyOptionsTextMB:SetFontObject(GameFontNormal)
+ MonkeyBuddyOptionsTextMB:SetJustifyH("LEFT")
+ MonkeyBuddyOptionsTextMB:SetJustifyV("TOP")
+ MonkeyBuddyOptionsTextMB:SetTextColor(1, 1, 1)
+ MonkeyBuddyOptionsTextMB:ClearAllPoints()
+ MonkeyBuddyOptionsTextMB:SetPoint("TOPLEFT", MonkeyBuddyOptionsTextB, "BOTTOMLEFT", 5, -106)
+ MonkeyBuddyOptionsTextMB:SetWidth(340)
+ MonkeyBuddyOptionsTextMB:SetText(MONKEYBUDDY_GUI_MBOPENCFG)
+
+ local MonkeyBuddyOptionsMBButton = CreateFrame("Button", "MBOptionsButton", MonkeyBuddyOptions, "UIPanelButtonTemplate")
+ MonkeyBuddyOptionsMBButton:SetNormalFontObject(GameFontHighlightSmall)
+ MonkeyBuddyOptionsMBButton:SetHighlightFontObject(GameFontHighlightSmall)
+ MonkeyBuddyOptionsMBButton:SetWidth(100)
+ MonkeyBuddyOptionsMBButton:SetHeight(26)
+ MonkeyBuddyOptionsMBButton:SetText("MonkeyBuddy")
+ MonkeyBuddyOptionsMBButton:RegisterForClicks("LeftButtonUp")
+ MonkeyBuddyOptionsMBButton:ClearAllPoints()
+ MonkeyBuddyOptionsMBButton:SetPoint("TOPLEFT", MonkeyBuddyOptionsTextB, "BOTTOMLEFT", 225, -100)
+ MonkeyBuddyOptionsMBButton:SetScript("OnClick", MBButton_OnClick)
+ MonkeyBuddyOptionsMBButton:SetScript("OnMouseDown", MBButton_MouseDown)
+ MonkeyBuddyOptionsMBButton:SetScript("OnMouseUp", MBButton_MouseUp)
+
+end
diff --git a/MonkeyBuddy/MonkeyBuddy.toc b/MonkeyBuddy/MonkeyBuddy.toc
new file mode 100644
index 0000000..6eec9ad
--- /dev/null
+++ b/MonkeyBuddy/MonkeyBuddy.toc
@@ -0,0 +1,9 @@
+## Interface: 100002
+## Title: MonkeyBuddy v10.0.2
+## Notes: Helps you configure your MonkeyMods. (http://www.toctastic.net/)
+## Notes-deDE: Hilft Euch beim Einstellen Euer MonkeyMods. (http://www.toctastic.net/)
+## Author: Trentin, Jim-Bim, azuraji
+## Dependencies: MonkeyLibrary
+## OptionalDeps: MonkeyQuest, MonkeySpeed, MonkeyClock, myAddOns
+## SavedVariables: MonkeyBuddyConfig
+MonkeyBuddy.xml
diff --git a/MonkeyBuddy/MonkeyBuddy.xml b/MonkeyBuddy/MonkeyBuddy.xml
new file mode 100644
index 0000000..9486c9a
--- /dev/null
+++ b/MonkeyBuddy/MonkeyBuddy.xml
@@ -0,0 +1,740 @@
+
+
+
+
+
+
+
+
+
+
+ MonkeyBuddyCheckButton_OnClick(self, button, down);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MonkeyBuddyOptionsCheckButton_OnClick(self, button, down);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MonkeyQuestDailiesCheckButton_OnClick(self, button, down);
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PlaySound(SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_ON);
+ MonkeyBuddySlider_OnValueChanged(self, value);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MonkeyBuddyQuestFrame_OnShow();
+
+
+ MonkeyBuddyQuestFrame_OnHide();
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MonkeyBuddySpeedFrame_OnShow();
+
+
+ MonkeyBuddySpeedFrame_OnHide();
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MonkeyBuddyClockFrame_OnShow();
+
+
+ MonkeyBuddyClockFrame_OnHide();
+
+
+
+
+
+
+
+
+ MonkeyBuddy_OnLoad(self);
+ self:RegisterForDrag("LeftButton")
+
+
+ self:StartMoving()
+
+
+ self:StopMovingOrSizing()
+
+
+ MonkeyBuddy_OnEvent(self, event, ...);
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MonkeyBuddy/localization.lua b/MonkeyBuddy/localization.lua
new file mode 100644
index 0000000..23be3dc
--- /dev/null
+++ b/MonkeyBuddy/localization.lua
@@ -0,0 +1,271 @@
+-- Not translations
+MONKEYBUDDY_TITLE = "MonkeyBuddy";
+MONKEYBUDDY_VERSION = "2.9.9";
+MONKEYBUDDY_FRAME_TITLE = MONKEYBUDDY_TITLE .. " v" .. MONKEYBUDDY_VERSION;
+MONKEYBUDDY_QUEST_TITLE = "MonkeyQuest";
+MONKEYBUDDY_SPEED_TITLE = "MonkeySpeed";
+MONKEYBUDDY_CLOCK_TITLE = "MonkeyClock";
+MONKEYBUDDY_INFO_COLOUR = "|cffffff00";
+MONKEYBUDDY_GUI_ICON = "\124TInterface\\AddOns\\MonkeyLibrary\\Textures\\MonkeyBuddyIcon.tga:0\124t "
+BINDING_HEADER_MONKEYBUDDY = MONKEYBUDDY_TITLE;
+
+-- English, the default
+MONKEYBUDDY_DESCRIPTION = "Helps you configure your MonkeyMods.";
+MONKEYBUDDY_LOADED_MSG = MONKEYBUDDY_INFO_COLOUR .. MONKEYBUDDY_TITLE .. " v" .. MONKEYBUDDY_VERSION .. " loaded";
+
+MONKEYBUDDY_TOOLTIP_CLOSE = "Close";
+MONKEYBUDDY_RESET_ALL = "Reset All";
+MONKEYBUDDY_RESET = "Reset";
+
+MONKEYBUDDY_GUI_TEXT ="This addon allows you to easily configure your MonkeyMods"
+MONKEYBUDDY_GUI_MBLOADED = MONKEYBUDDY_GUI_ICON .. "MonkeyBuddy successfully loaded!"
+MONKEYBUDDY_GUI_MMINSTALLED ="Installed MonkeyMods:"
+MONKEYBUDDY_GUI_MBMINIMAP ="Show the MonkeyBuddy minimap icon"
+MONKEYBUDDY_GUI_MQEXTRA ="MonkeyQuest Extra:"
+MONKEYBUDDY_GUI_MQEDAILY ="Show the daily quest counter in the title"
+MONKEYBUDDY_GUI_MBOPENCFG ="Click on the following Button to open"
+
+-- defs for MonkeyQuest
+MONKEYBUDDY_QUEST_OPEN = "Open MonkeyQuest";
+MONKEYBUDDY_QUEST_SHOWHIDDEN = "Show hidden items";
+MONKEYBUDDY_QUEST_USEOVERVIEWS = "Use overviews when there's no objectives";
+MONKEYBUDDY_QUEST_HIDEHEADERS = "Hide zone headers if not showing hidden items";
+MONKEYBUDDY_QUEST_ALWAYSHEADERS = "Always show zone headers, always";
+MONKEYBUDDY_QUEST_HIDEBORDER = "Hide the border";
+MONKEYBUDDY_QUEST_GROWUP = "Expand upwards";
+MONKEYBUDDY_QUEST_SHOWNUMQUESTS = "Show the number of quests";
+MONKEYBUDDY_QUEST_LOCK = "Lock the MonkeyQuest frame";
+MONKEYBUDDY_QUEST_COLOURTITLEON = "Colour the quest titles by difficulty";
+MONKEYBUDDY_QUEST_HIDECOMPLETEDQUESTS = "Hide completed quests";
+MONKEYBUDDY_QUEST_HIDECOMPLETEDOBJECTIVES = "Hide completed objectives";
+MONKEYBUDDY_QUEST_SHOWTOOLTIPOBJECTIVES = "Show objective completeness in tooltips";
+MONKEYBUDDY_QUEST_ALLOWRIGHTCLICK = "Allow right click to open MonkeyBuddy";
+MONKEYBUDDY_QUEST_HIDETITLEBUTTONS = "Hide the title buttons";
+MONKEYBUDDY_QUEST_HIDETITLE = "Hide the title (" .. MONKEYBUDDY_QUEST_TITLE .. ") text";
+MONKEYBUDDY_QUEST_CRASHFONT = "Use the skinny font";
+MONKEYBUDDY_QUEST_CRASHBORDER = "Use the golden border colour";
+MONKEYBUDDY_QUEST_SHOWNOOBTIPS = "Show helpful tooltips for Noobs";
+MONKEYBUDDY_QUEST_SHOWZONEHIGHLIGHT = "Show quest zone highlighting";
+MONKEYBUDDY_QUEST_SHOWQUESTLEVEL = "Show the quest levels";
+MONKEYBUDDY_QUEST_WORKCOMPLETE = "Enable >work complete< sound";
+
+MONKEYBUDDY_QUEST_QUESTTITLECOLOUR = "Quest Titles";
+MONKEYBUDDY_QUEST_HEADEROPENCOLOUR = "Open Zone Headers";
+MONKEYBUDDY_QUEST_HEADERCLOSEDCOLOUR = "Closed Zone Headers";
+MONKEYBUDDY_QUEST_OVERVIEWCOLOUR = "Quest Overviews";
+MONKEYBUDDY_QUEST_SPECIALOBJECTIVECOLOUR = "Special Objectives";
+MONKEYBUDDY_QUEST_INITIALOBJECTIVECOLOUR = "Objectives at 0%";
+MONKEYBUDDY_QUEST_MIDOBJECTIVECOLOUR = "Objectives at 50%";
+MONKEYBUDDY_QUEST_COMPLETEOBJECTIVECOLOUR = "Objectives at <100%";
+MONKEYBUDDY_QUEST_FINISHOBJECTIVECOLOUR = "Finished Objectives";
+MONKEYBUDDY_QUEST_ZONEHIGHLIGHTCOLOUR = "Current Zone Highlight";
+
+MONKEYBUDDY_QUEST_FRAMEALPHASLIDER = "Global Alpha";
+MONKEYBUDDY_QUEST_ALPHASLIDER = "Background Alpha";
+MONKEYBUDDY_QUEST_WIDTHSLIDER = "Frame Width";
+MONKEYBUDDY_QUEST_FONTSLIDER = "Font Size";
+MONKEYBUDDY_QUEST_PADDINGSLIDER = "Quest Padding";
+
+-- defs for MonkeySpeed
+MONKEYBUDDY_SPEED_OPEN = "Open MonkeySpeed";
+MONKEYBUDDY_SPEED_PERCENT = "Show speed as a percent";
+MONKEYBUDDY_SPEED_BAR = "Show speed as a background colour";
+MONKEYBUDDY_SPEED_LOCK = "Lock the MonkeySpeed frame";
+MONKEYBUDDY_SPEED_ALLOWRIGHTCLICK = "Allow right click to open MonkeyBuddy";
+
+MONKEYBUDDY_SPEED_WIDTHSLIDER = "Frame Width";
+MONKEYBUDDY_SPEED_HEIGHTSLIDER = "Frame Height";
+
+-- defs for MonkeyClock
+MONKEYBUDDY_CLOCK_OPEN = "Open MonkeyClock";
+MONKEYBUDDY_CLOCK_HIDEBORDER = "Hide the border";
+MONKEYBUDDY_CLOCK_USEMILITARYTIME = "Use 24 hour clock";
+MONKEYBUDDY_CLOCK_LOCK = "Lock the MonkeyClock frame";
+MONKEYBUDDY_CLOCK_CHATALARM = "Use the alarm message in the chat window";
+MONKEYBUDDY_CLOCK_DIALOGALARM = "Use the alarm dialog box with snooze button";
+MONKEYBUDDY_CLOCK_ALLOWRIGHTCLICK = "Allow right click to open MonkeyBuddy";
+
+MONKEYBUDDY_CLOCK_HOURSLIDER = "Hour Offset";
+MONKEYBUDDY_CLOCK_MINUTESLIDER = "Minute Offset";
+
+MONKEYBUDDY_CLOCK_ALARMHOURSLIDER = "Alarm Hour";
+MONKEYBUDDY_CLOCK_ALARMMINUTESLIDER = "Alarm Minute";
+
+-- bindings
+BINDING_NAME_MONKEYBUDDY_OPEN = "Open/Close the config frame";
+
+if (GetLocale() == "deDE") then
+
+MONKEYBUDDY_DESCRIPTION = "Hilft Euch beim Einstellen Euer MonkeyMods.";
+MONKEYBUDDY_LOADED_MSG = MONKEYBUDDY_INFO_COLOUR .. MONKEYBUDDY_TITLE .. " v" .. MONKEYBUDDY_VERSION .. " geladen";
+
+MONKEYBUDDY_TOOLTIP_CLOSE = "Schlie\195\159en";
+MONKEYBUDDY_RESET_ALL = "Alles Zur\195\188cksetzen";
+MONKEYBUDDY_RESET = "Zur\195\188cksetzen";
+
+MONKEYBUDDY_GUI_TEXT ="Dieses AddOn hilft euch beim Einstellen euer MonkeyMods"
+MONKEYBUDDY_GUI_MBLOADED = MONKEYBUDDY_GUI_ICON .. "MonkeyBuddy erfolgreich geladen!"
+MONKEYBUDDY_GUI_MMINSTALLED ="Installierte MonkeyMods:"
+MONKEYBUDDY_GUI_MBMINIMAP ="Zeige das MonkeyBuddy MiniMap Symbol"
+MONKEYBUDDY_GUI_MQEXTRA ="MonkeyQuest Extra:"
+MONKEYBUDDY_GUI_MQEDAILY ="Zeige die Anzahl der t\195\164glichen Quests im Titel"
+MONKEYBUDDY_GUI_MBOPENCFG ="Ein Klick auf folgenden Button \195\182ffnet"
+
+-- defs for MonkeyQuest
+MONKEYBUDDY_QUEST_OPEN = "\195\150ffne MonkeyQuest";
+MONKEYBUDDY_QUEST_SHOWHIDDEN = "Zeige ausgeblendete Elemente";
+MONKEYBUDDY_QUEST_USEOVERVIEWS = "Benutze Questanweisungen, wenn keine Ziele vorhanden sind";
+MONKEYBUDDY_QUEST_HIDEHEADERS = "Verberge Questzonen, wenn ausgeblendete Elemente versteckt werden";
+MONKEYBUDDY_QUEST_ALWAYSHEADERS = "Zeige die Questzonen immer";
+MONKEYBUDDY_QUEST_HIDEBORDER = "Verberge den Rahmen";
+MONKEYBUDDY_QUEST_GROWUP = "Erweitere MonkeyQuest nach oben hin";
+MONKEYBUDDY_QUEST_SHOWNUMQUESTS = "Zeige die Anzahl der Quests";
+MONKEYBUDDY_QUEST_LOCK = "Fixiere das MonkeyQuest Fenster";
+MONKEYBUDDY_QUEST_COLOURTITLEON = "F\195\164rbe die Quests der Schwierigkeit ensprechend ein";
+MONKEYBUDDY_QUEST_HIDECOMPLETEDQUESTS = "Verberge erf\195\188llte Quests";
+MONKEYBUDDY_QUEST_HIDECOMPLETEDOBJECTIVES = "Verberge erf\195\188llte Ziele";
+MONKEYBUDDY_QUEST_SHOWTOOLTIPOBJECTIVES = "Zeige Zielfortschritte in Tooltips";
+MONKEYBUDDY_QUEST_ALLOWRIGHTCLICK = "\195\150ffnen von MonkeyBuddy durch Rechtsklick erm\195\182glichen";
+MONKEYBUDDY_QUEST_HIDETITLEBUTTONS = "Verberge die Titel-Buttons";
+MONKEYBUDDY_QUEST_HIDETITLE = "Verberge den Text (" .. MONKEYBUDDY_QUEST_TITLE .. ") im Titel";
+MONKEYBUDDY_QUEST_CRASHFONT = "Verwende eine d\195\188nne Schriftart";
+MONKEYBUDDY_QUEST_CRASHBORDER = "Benutze die goldene Rahmen-Farbe";
+MONKEYBUDDY_QUEST_SHOWNOOBTIPS = "Zeige hilfreiche Kurzinfos f\195\188r Anf\195\164nger";
+MONKEYBUDDY_QUEST_SHOWZONEHIGHLIGHT = "Hebe die aktuelle Questzone hervor";
+MONKEYBUDDY_QUEST_SHOWQUESTLEVEL = "Zeige das Questlevel";
+MONKEYBUDDY_QUEST_WORKCOMPLETE = "Aktiviere >Arbeit erledigt< Sound";
+
+MONKEYBUDDY_QUEST_QUESTTITLECOLOUR = "Quest-Titel";
+MONKEYBUDDY_QUEST_HEADEROPENCOLOUR = "Offene Zonen";
+MONKEYBUDDY_QUEST_HEADERCLOSEDCOLOUR = "Geschlossene Zonen";
+MONKEYBUDDY_QUEST_OVERVIEWCOLOUR = "Questanweisungen";
+MONKEYBUDDY_QUEST_SPECIALOBJECTIVECOLOUR = "Spezielle Ziele";
+MONKEYBUDDY_QUEST_INITIALOBJECTIVECOLOUR = "Ziele zu 0% erf\195\188llt";
+MONKEYBUDDY_QUEST_MIDOBJECTIVECOLOUR = "Ziele zu 50% erf\195\188llt";
+MONKEYBUDDY_QUEST_COMPLETEOBJECTIVECOLOUR = "Ziele zu <100% erf\195\188llt";
+MONKEYBUDDY_QUEST_FINISHOBJECTIVECOLOUR = "Komplett erledigte Ziele";
+MONKEYBUDDY_QUEST_ZONEHIGHLIGHTCOLOUR = "Questzonen-Hervorhebung";
+
+MONKEYBUDDY_QUEST_FRAMEALPHASLIDER = "Global Alpha";
+MONKEYBUDDY_QUEST_ALPHASLIDER = "Hintergrund Alpha";
+MONKEYBUDDY_QUEST_WIDTHSLIDER = "Fensterbreite";
+MONKEYBUDDY_QUEST_FONTSLIDER = "Schriftgr\195\182\195\159e";
+MONKEYBUDDY_QUEST_PADDINGSLIDER = "Zeilenabstand";
+
+-- defs for MonkeySpeed
+MONKEYBUDDY_SPEED_OPEN = "\195\150ffne MonkeySpeed";
+MONKEYBUDDY_SPEED_PERCENT = "Zeige Geschwindigkeit in Prozent";
+MONKEYBUDDY_SPEED_BAR = "Zeige Geschwindigkeit als farbigen Hintergrund";
+MONKEYBUDDY_SPEED_LOCK = "Fixiere das MonkeySpeed Fenster";
+MONKEYBUDDY_SPEED_ALLOWRIGHTCLICK = "\195\150ffnen von MonkeyBuddy durch Rechtsklick erm\195\182glichen";
+
+MONKEYBUDDY_SPEED_WIDTHSLIDER = "Fensterbreite";
+MONKEYBUDDY_SPEED_HEIGHTSLIDER = "Fensterh\195\182he";
+
+-- defs for MonkeyClock
+MONKEYBUDDY_CLOCK_OPEN = "\195\150ffne MonkeyClock";
+MONKEYBUDDY_CLOCK_HIDEBORDER = "Verberge den Rahmen";
+MONKEYBUDDY_CLOCK_USEMILITARYTIME = "Benutze den 24-Stundentakt";
+MONKEYBUDDY_CLOCK_LOCK = "Fixiere das MonkeyClock Fenster";
+MONKEYBUDDY_CLOCK_CHATALARM = "Aktviere die Alarm-Mitteilung im Nachrichtenfenster";
+MONKEYBUDDY_CLOCK_DIALOGALARM = "Aktiviere die Alarm-Mitteilung als PopUp mit Verl\195\164ngerungsoption";
+MONKEYBUDDY_CLOCK_ALLOWRIGHTCLICK = "\195\150ffnen von MonkeyBuddy durch Rechtsklick erm\195\182glichen";
+
+MONKEYBUDDY_CLOCK_HOURSLIDER = "Stundenausgleich";
+MONKEYBUDDY_CLOCK_MINUTESLIDER = "Minutenausgleich";
+
+MONKEYBUDDY_CLOCK_ALARMHOURSLIDER = "Alarmstunde";
+MONKEYBUDDY_CLOCK_ALARMMINUTESLIDER = "Alarmminute";
+
+-- bindings
+BINDING_NAME_MONKEYBUDDY_OPEN = "\195\150ffne/Schlie\195\159e das Optionsfenster";
+
+end
+
+if ( GetLocale() == "frFR" ) then
+
+MONKEYBUDDY_DESCRIPTION = "Vous aide à configurer vos MonkeyMods.";
+MONKEYBUDDY_LOADED_MSG = MONKEYBUDDY_INFO_COLOUR .. MONKEYBUDDY_TITLE .. " v" .. MONKEYBUDDY_VERSION .. " chargé";
+
+MONKEYBUDDY_TOOLTIP_CLOSE = "Fermer";
+MONKEYBUDDY_RESET_ALL = "R.\195\160.Z. Totale";
+MONKEYBUDDY_RESET = "R.\195\160.Z.";
+
+--MONKEYBUDDY_GUI_TEXT ="This addon allows you to easily configure your MonkeyMods"
+--MONKEYBUDDY_GUI_MBLOADED = MONKEYBUDDY_GUI_ICON .. "MonkeyBuddy successfully loaded!"
+--MONKEYBUDDY_GUI_MMINSTALLED ="Installed MonkeyMods:"
+--MONKEYBUDDY_GUI_MBMINIMAP ="Show the MonkeyBuddy minimap icon"
+--MONKEYBUDDY_GUI_MQEXTRA ="MonkeyQuest Extra:"
+--MONKEYBUDDY_GUI_MQEDAILY ="Show the daily quest counter in the title"
+--MONKEYBUDDY_GUI_MBOPENCFG ="Click on the following Button to open"
+
+-- defs for MonkeyQuest
+MONKEYBUDDY_QUEST_OPEN = "Ouvrir MonkeyQuest";
+MONKEYBUDDY_QUEST_SHOWHIDDEN = "Montrer toutes les qu\195\170tes";
+MONKEYBUDDY_QUEST_USEOVERVIEWS = "Utiliser la description lorsqu\'il n\'y a pas d\'objectifs";
+MONKEYBUDDY_QUEST_HIDEHEADERS = "Cacher les noms de zone";
+--MONKEYBUDDY_QUEST_ALWAYSHEADERS = "Always show zone headers, always";
+MONKEYBUDDY_QUEST_HIDEBORDER = "Cacher les bords";
+MONKEYBUDDY_QUEST_GROWUP = "Augmenter la fen\195\170tre vers le haut";
+MONKEYBUDDY_QUEST_SHOWNUMQUESTS = "Montrer le nombre de qu\195\170tes";
+MONKEYBUDDY_QUEST_LOCK = "Bloquer la fen\195\170tre MonkeyQuest";
+MONKEYBUDDY_QUEST_COLOURTITLEON = "Colorer les titres de qu\195\170tes selon la difficult\195\169";
+MONKEYBUDDY_QUEST_HIDECOMPLETEDQUESTS = "Cacher les qu\195\170tes termin\195\169es";
+MONKEYBUDDY_QUEST_HIDECOMPLETEDOBJECTIVES = "Cacher les objectifs termin\195\169s";
+MONKEYBUDDY_QUEST_SHOWTOOLTIPOBJECTIVES = "Afficher les objectifs dans la bulle d\'aide";
+MONKEYBUDDY_QUEST_ALLOWRIGHTCLICK = "Clic droit pour ouvrir MonkeyBuddy";
+MONKEYBUDDY_QUEST_HIDETITLEBUTTONS = "Cacher les boutons de titre";
+MONKEYBUDDY_QUEST_HIDETITLE = "Cacher le texte (" .. MONKEYBUDDY_QUEST_TITLE .. ") dans le titre";
+MONKEYBUDDY_QUEST_CRASHFONT = "Utiliser la police de Crash";
+MONKEYBUDDY_QUEST_CRASHBORDER = "Utiliser la couleur de bordure de Crash";
+MONKEYBUDDY_QUEST_SHOWNOOBTIPS = "Afficher les bulles d\'aide pour les Noobs";
+--MONKEYBUDDY_QUEST_SHOWZONEHIGHLIGHT = "Show quest zone highlighting";
+--MONKEYBUDDY_QUEST_SHOWQUESTLEVEL = "Show the quest levels";
+--MONKEYBUDDY_QUEST_WORKCOMPLETE = "Enable >work complete< sound";
+
+MONKEYBUDDY_QUEST_QUESTTITLECOLOUR = "Titre des Qu\195\170tes";
+MONKEYBUDDY_QUEST_HEADEROPENCOLOUR = "Ouvrir le nom des zones";
+MONKEYBUDDY_QUEST_HEADERCLOSEDCOLOUR = "Fermer le nom des zones";
+MONKEYBUDDY_QUEST_OVERVIEWCOLOUR = "Vues d\'ensemble des Qu\195\170tes";
+MONKEYBUDDY_QUEST_SPECIALOBJECTIVECOLOUR = "Objectifs Spéciaux";
+MONKEYBUDDY_QUEST_INITIALOBJECTIVECOLOUR = "Objectifs \195\160 0%";
+MONKEYBUDDY_QUEST_MIDOBJECTIVECOLOUR = "Objectifs \195\160 50%";
+MONKEYBUDDY_QUEST_COMPLETEOBJECTIVECOLOUR = "Objectifs \195\160 <100%";
+MONKEYBUDDY_QUEST_FINISHOBJECTIVECOLOUR = "Objectifs \195\160 100%";
+MONKEYBUDDY_QUEST_ZONEHIGHLIGHTCOLOUR = "Surligner la Zone courrante";
+
+MONKEYBUDDY_QUEST_FRAMEALPHASLIDER = "Transparence globale";
+MONKEYBUDDY_QUEST_ALPHASLIDER = "Transparence du fond";
+MONKEYBUDDY_QUEST_WIDTHSLIDER = "Largeur de la fen\195\170tre";
+MONKEYBUDDY_QUEST_FONTSLIDER = "Taille de la Police";
+MONKEYBUDDY_QUEST_PADDINGSLIDER = "Quest Padding";
+
+-- defs for MonkeySpeed
+MONKEYBUDDY_SPEED_OPEN = "Ouvrir MonkeySpeed";
+MONKEYBUDDY_SPEED_PERCENT = "Montrer la vitesse comme un pourcentage";
+MONKEYBUDDY_SPEED_BAR = "Montrer la vitesse comme une couleur de fond";
+--MONKEYBUDDY_SPEED_LOCK = "Lock the MonkeySpeed frame";
+MONKEYBUDDY_SPEED_ALLOWRIGHTCLICK = "Clic droit pour ouvrir MonkeyBuddy";
+
+--MONKEYBUDDY_SPEED_WIDTHSLIDER = "Frame Width";
+--MONKEYBUDDY_SPEED_HEIGHTSLIDER = "Frame Height";
+
+-- defs for MonkeyClock
+MONKEYBUDDY_CLOCK_OPEN = "Ouvrir MonkeyClock";
+MONKEYBUDDY_CLOCK_HIDEBORDER = "Cacher les bords";
+MONKEYBUDDY_CLOCK_USEMILITARYTIME = "Utiliser le format 24 heures";
+--MONKEYBUDDY_CLOCK_LOCK = "Lock the MonkeyClock frame";
+--MONKEYBUDDY_CLOCK_CHATALARM = "Use the alarm message in the chat window";
+--MONKEYBUDDY_CLOCK_DIALOGALARM = "Use the alarm dialog box with snooze button";
+MONKEYBUDDY_CLOCK_ALLOWRIGHTCLICK = "Clic droit pour ouvrir MonkeyBuddy";
+
+MONKEYBUDDY_CLOCK_HOURSLIDER = "Réglage Heure";
+MONKEYBUDDY_CLOCK_MINUTESLIDER = "Réglage Minute";
+
+--MONKEYBUDDY_CLOCK_ALARMHOURSLIDER = "Alarm Hour";
+--MONKEYBUDDY_CLOCK_ALARMMINUTESLIDER = "Alarm Minute";
+
+-- bindings
+BINDING_NAME_MONKEYBUDDY_OPEN = "Ouvrir/Fermer la fenêtre de configuration";
+
+end
\ No newline at end of file
diff --git a/MonkeyBuddy/readme.txt b/MonkeyBuddy/readme.txt
new file mode 100644
index 0000000..4e2a849
--- /dev/null
+++ b/MonkeyBuddy/readme.txt
@@ -0,0 +1,9 @@
+MonkeyBuddy slash commands:
+
+/monkeybuddydismiss
+/mbdismiss
+Sends the MonkeyBuddy icon away :(
+
+/monkeybuddycall
+/mbcall
+Calls the MonkeyBuddy icon back :)
diff --git a/MonkeyLibrary/Fonts/adventure.ttf b/MonkeyLibrary/Fonts/adventure.ttf
new file mode 100644
index 0000000..964ab3c
Binary files /dev/null and b/MonkeyLibrary/Fonts/adventure.ttf differ
diff --git a/MonkeyLibrary/Fonts/framd.ttf b/MonkeyLibrary/Fonts/framd.ttf
new file mode 100644
index 0000000..6f8f872
Binary files /dev/null and b/MonkeyLibrary/Fonts/framd.ttf differ
diff --git a/MonkeyLibrary/Fonts/myriapsc.ttf b/MonkeyLibrary/Fonts/myriapsc.ttf
new file mode 100644
index 0000000..42237fc
Binary files /dev/null and b/MonkeyLibrary/Fonts/myriapsc.ttf differ
diff --git a/MonkeyLibrary/MonkeyGlobals.lua b/MonkeyLibrary/MonkeyGlobals.lua
new file mode 100644
index 0000000..2898934
--- /dev/null
+++ b/MonkeyLibrary/MonkeyGlobals.lua
@@ -0,0 +1,21 @@
+
+-- turn on or off debugging
+MONKEYLIB_DEBUG = false;
+
+
+-- change the error window so we can actually READ the error
+if (MONKEYLIB_DEBUG) then
+
+ -- Another Blizzard hack, I just can't see errors without this
+ ScriptErrors:SetWidth(600);
+ ScriptErrors_Message:SetWidth(580);
+ ScriptErrors:SetPoint("BOTTOM", "UIParent", "BOTTOM", 0, 100);
+ ScriptErrors:SetPoint("TOP", "UIParent", "BOTTOM", 0, 220);
+end
+
+
+-- global "constants"
+MONKEYLIB_VERSION = "2.9.10";
+
+MONKEYLIB_TITLE_COLOUR = { r = 0.12, g = 0.55, b = 0.76 };
+--MONKEYLIB_TITLE_COLOUR = { r = 1.0, g = 0.5, b = 0 };
diff --git a/MonkeyLibrary/MonkeyLibrary.lua b/MonkeyLibrary/MonkeyLibrary.lua
new file mode 100644
index 0000000..9dea6bb
--- /dev/null
+++ b/MonkeyLibrary/MonkeyLibrary.lua
@@ -0,0 +1,71 @@
+--[[
+
+ MonkeyLibrary:
+ Common functions for the MonkeyMods
+
+ Website: http://www.toctastic.net/
+ Author: Trentin (trentin@toctastic.net)
+
+ This function extracts the ARGB values out of a colour encoded string.
+
+ @param strColour the string with the colour info.
+
+ @return the alpha value
+ @return the red value
+ @return the green value
+ @return the blue value
+
+--]]
+
+function MonkeyLib_ColourStrToARGB(strColour)
+ local i = 3;
+
+ local iAlpha = tonumber(string.sub(strColour, i, i + 1), 16);
+ local iRed = tonumber(string.sub(strColour, i + 2, i + 3), 16);
+ local iGreen = tonumber(string.sub(strColour, i + 4, i + 5), 16);
+ local iBlue = tonumber(string.sub(strColour, i + 6, i + 7), 16);
+
+ iAlpha = iAlpha / 255;
+ iRed = iRed / 255;
+ iGreen = iGreen / 255;
+ iBlue = iBlue / 255;
+
+ return iAlpha, iRed, iGreen, iBlue;
+end
+
+--[[
+
+ This function converts ARGB values into a colour encoded string.
+
+ @param the alpha value
+ @param the red value
+ @param the green value
+ @param the blue value
+
+ @return the string colour encoded
+--]]
+
+function MonkeyLib_ARGBToColourStr(iAlpha, iRed, iGreen, iBlue)
+ -- "|cFFFFFFFF"
+ local strColour;
+
+
+ -- floor it so it doesn't go over 255
+ iAlpha = floor(iAlpha * 255);
+ iRed = floor(iRed * 255);
+ iGreen = floor(iGreen * 255);
+ iBlue = floor(iBlue * 255);
+
+ strColour = format("|c%2x%2x%2x%2x", iAlpha, iRed, iGreen, iBlue);
+
+ return strColour;
+end
+
+function MonkeyLib_DebugMsg(strMsg)
+
+ if (MONKEYLIB_DEBUG) then
+ if (DEFAULT_CHAT_FRAME) then
+ DEFAULT_CHAT_FRAME:AddMessage("MonkeyLib: " .. strMsg);
+ end
+ end
+end
\ No newline at end of file
diff --git a/MonkeyLibrary/MonkeyLibrary.toc b/MonkeyLibrary/MonkeyLibrary.toc
new file mode 100644
index 0000000..e8f4d2b
--- /dev/null
+++ b/MonkeyLibrary/MonkeyLibrary.toc
@@ -0,0 +1,6 @@
+## Interface: 100002
+## Title: MonkeyLibrary v10.0.2
+## Notes: Common files and functions for MonkeyMods. (http://www.toctastic.net/)
+## Notes-deDE: Gemeinsame Dateien und Funktionen fuer MonkeyMods. (http://www.toctastic.net/)
+## Author: Trentin (trentin@toctastic.net)
+MonkeyLibrary.xml
diff --git a/MonkeyLibrary/MonkeyLibrary.xml b/MonkeyLibrary/MonkeyLibrary.xml
new file mode 100644
index 0000000..ab97a85
--- /dev/null
+++ b/MonkeyLibrary/MonkeyLibrary.xml
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MonkeyLibrary/Textures/BackDrop.tga b/MonkeyLibrary/Textures/BackDrop.tga
new file mode 100644
index 0000000..c532d41
Binary files /dev/null and b/MonkeyLibrary/Textures/BackDrop.tga differ
diff --git a/MonkeyLibrary/Textures/ButtonBackDrop.tga b/MonkeyLibrary/Textures/ButtonBackDrop.tga
new file mode 100644
index 0000000..7bdeac4
Binary files /dev/null and b/MonkeyLibrary/Textures/ButtonBackDrop.tga differ
diff --git a/MonkeyLibrary/Textures/CloseButton-Down.tga b/MonkeyLibrary/Textures/CloseButton-Down.tga
new file mode 100644
index 0000000..ea2c36c
Binary files /dev/null and b/MonkeyLibrary/Textures/CloseButton-Down.tga differ
diff --git a/MonkeyLibrary/Textures/CloseButton-Up.tga b/MonkeyLibrary/Textures/CloseButton-Up.tga
new file mode 100644
index 0000000..a91a7e4
Binary files /dev/null and b/MonkeyLibrary/Textures/CloseButton-Up.tga differ
diff --git a/MonkeyLibrary/Textures/Frame-Border.tga b/MonkeyLibrary/Textures/Frame-Border.tga
new file mode 100644
index 0000000..58fc0bc
Binary files /dev/null and b/MonkeyLibrary/Textures/Frame-Border.tga differ
diff --git a/MonkeyLibrary/Textures/MinimizeButton-Down.tga b/MonkeyLibrary/Textures/MinimizeButton-Down.tga
new file mode 100644
index 0000000..f4d1f89
Binary files /dev/null and b/MonkeyLibrary/Textures/MinimizeButton-Down.tga differ
diff --git a/MonkeyLibrary/Textures/MinimizeButton-Up.tga b/MonkeyLibrary/Textures/MinimizeButton-Up.tga
new file mode 100644
index 0000000..d3a599e
Binary files /dev/null and b/MonkeyLibrary/Textures/MinimizeButton-Up.tga differ
diff --git a/MonkeyLibrary/Textures/MonkeyBuddyIcon.tga b/MonkeyLibrary/Textures/MonkeyBuddyIcon.tga
new file mode 100644
index 0000000..fd2e81f
Binary files /dev/null and b/MonkeyLibrary/Textures/MonkeyBuddyIcon.tga differ
diff --git a/MonkeyLibrary/Textures/ResizeButton-Highlight.tga b/MonkeyLibrary/Textures/ResizeButton-Highlight.tga
new file mode 100644
index 0000000..4329468
Binary files /dev/null and b/MonkeyLibrary/Textures/ResizeButton-Highlight.tga differ
diff --git a/MonkeyLibrary/Textures/ResizeButton.tga b/MonkeyLibrary/Textures/ResizeButton.tga
new file mode 100644
index 0000000..36b5ec4
Binary files /dev/null and b/MonkeyLibrary/Textures/ResizeButton.tga differ
diff --git a/MonkeyLibrary/Textures/bar.tga b/MonkeyLibrary/Textures/bar.tga
new file mode 100644
index 0000000..e4e4180
Binary files /dev/null and b/MonkeyLibrary/Textures/bar.tga differ
diff --git a/MonkeyQuest/Bindings.xml b/MonkeyQuest/Bindings.xml
new file mode 100644
index 0000000..faa5c56
--- /dev/null
+++ b/MonkeyQuest/Bindings.xml
@@ -0,0 +1,22 @@
+
+
+ if (keystate == "down") then
+ MonkeyQuestSlash_ToggleDisplay();
+ end
+
+
+ if (keystate == "down") then
+ MonkeyQuestMinimizeButton_OnClick();
+ end
+
+
+ if (keystate == "down") then
+ MonkeyQuestSlash_ToggleShowHidden();
+ end
+
+
+ if (keystate == "down") then
+ MonkeyQuestSlash_ToggleNoHeaders();
+ end
+
+
diff --git a/MonkeyQuest/MonkeyQuest.lua b/MonkeyQuest/MonkeyQuest.lua
new file mode 100644
index 0000000..5b9ec56
--- /dev/null
+++ b/MonkeyQuest/MonkeyQuest.lua
@@ -0,0 +1,1622 @@
+-- script variables not saved
+MonkeyQuest = {};
+MonkeyQuest.m_bLoaded = false; -- true when the config variables are loaded
+MonkeyQuest.m_bVariablesLoaded = false;
+MonkeyQuest.m_iNumQuestButtons = 50; -- 50 is the max possible entries in the quest log (25 quests and 25 different locations)
+MonkeyQuest.m_iMaxTextWidth = 229; -- wraps the text if it gets too long, mostly needed for objectives
+MonkeyQuest.m_strPlayer = "";
+MonkeyQuest.m_aQuestList = {};
+MonkeyQuest.m_aQuestItemList = {};
+MonkeyQuest.m_bGotQuestLogUpdate = false;
+MonkeyQuest.m_bNeedRefresh = false;
+MonkeyQuest.m_fTimeSinceRefresh = 0.0;
+MonkeyQuest.m_bCleanQuestList = true; -- used to clean up the hidden list on the first questlog update event
+MonkeyQuest.m_setCorrectState = 1;
+--MQWATCHFRAME_NUM_ITEMS = 0;
+--MQWATCHFRAME_ITEM_WIDTH = 33;
+
+MonkeyQuest.m_colourBorder = { r = TOOLTIP_DEFAULT_COLOR.r, g = TOOLTIP_DEFAULT_COLOR.g, b = TOOLTIP_DEFAULT_COLOR.b };
+
+MonkeyQuestObjectiveTable = {};
+
+function MonkeyQuest_OnLoad(self)
+ hooksecurefunc("HideUIPanel", MonkeyQuest_Refresh);
+ hooksecurefunc(GameTooltip, "SetBagItem", YourSetBagItem);
+
+ -- register events
+ self:RegisterEvent('VARIABLES_LOADED');
+ self:RegisterEvent('QUEST_LOG_UPDATE'); -- used to know when to refresh the MonkeyQuest text
+ self:RegisterEvent('UNIT_NAME_UPDATE'); -- this is the event I use to get per character config settings
+ self:RegisterEvent('PLAYER_ENTERING_WORLD'); -- this event gives me a good character name in situations where 'UNIT_NAME_UPDATE' doesn't even trigger
+ self:RegisterEvent('PLAYER_LEVEL_UP'); -- when you level up the difficulty of some quests may change
+
+ -- events when zone changes to update the zone highlighting quests
+ --self:RegisterEvent('ZONE_CHANGED');
+ --self:RegisterEvent('ZONE_CHANGED_INDOORS');
+ --self:RegisterEvent('ZONE_CHANGED_NEW_AREA');
+
+
+ -- initialize the border and backdrop of the main frame
+ --this:SetBackdropBorderColor(TOOLTIP_DEFAULT_COLOR.r, TOOLTIP_DEFAULT_COLOR.g, TOOLTIP_DEFAULT_COLOR.b);
+ --this:SetBackdropColor(TOOLTIP_DEFAULT_BACKGROUND_COLOR.r, TOOLTIP_DEFAULT_BACKGROUND_COLOR.g, TOOLTIP_DEFAULT_BACKGROUND_COLOR.b, 0);
+
+ -- patch 9.0.1
+
+ MonkeyQuestFrame:SetBackdrop({
+ bgFile = "Interface\\AddOns\\MonkeyLibrary\\Textures\\BackDrop.tga",
+ edgeFile="Interface\\Tooltips\\UI-Tooltip-Border",
+ edgeSize = 16,
+ tile = true,
+ tileSize = 16,
+ insets = { 5, 5, 5, 5 }
+ })
+
+
+ -- setup the title of the main frame
+ MonkeyQuestTitleText:SetText(MONKEYQUEST_TITLE);
+ MonkeyQuestTitleText:SetTextColor(MONKEYLIB_TITLE_COLOUR.r, MONKEYLIB_TITLE_COLOUR.g, MONKEYLIB_TITLE_COLOUR.b);
+ MonkeyQuestTitleText:Show();
+
+ MonkeyQuestSlash_Init();
+ MonkeyQuestOptions();
+
+ -- overriding of tooltip functions
+ MonkeyQuest_OLD_aftt_setName = aftt_setName;
+ aftt_setName = MonkeyQuest_NEW_aftt_setName;
+
+ -- this will catch mobs needed for quests
+ self:RegisterEvent('UPDATE_MOUSEOVER_UNIT');
+end
+
+function MonkeyQuest_OnUpdate(self, elapsed)
+ -- if not loaded yet then get out
+ if (MonkeyQuest.m_bLoaded == false) then
+ return;
+ end
+
+ if (MonkeyQuest.m_setCorrectState == 1) then
+ MonkeyQuest.m_setCorrectState = 0
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideHeader == true) then
+ HideDetailedControls();
+ else
+ ShowDetailedControls();
+ end
+ end
+
+ -- need to make sure we don't read from the quest list before a QUEST_LOG_UPDATE or we'll get the previous character's data
+ if (MonkeyQuest.m_bGotQuestLogUpdate == false) then
+ return;
+ end
+
+ -- update the timer
+ MonkeyQuest.m_fTimeSinceRefresh = MonkeyQuest.m_fTimeSinceRefresh + elapsed;
+
+ -- if it's been more than MONKEYQUEST_DELAY seconds and we need to process a dropped QUEST_LOG_UPDATE
+ if (MonkeyQuest.m_fTimeSinceRefresh > MONKEYQUEST_DELAY and MonkeyQuest.m_bNeedRefresh == true) then
+ MonkeyQuest_Refresh();
+ end
+
+ if (MonkeyQuest.m_bCleanQuestList == true) then
+ if (MonkeyQuest.m_fTimeSinceRefresh > 15.0) then
+ MonkeyQuestInit_CleanQuestList();
+ MonkeyQuest.m_bCleanQuestList = false;
+ end
+ end
+end
+
+function MonkeyQuest_OnQuestLogUpdate()
+
+ -- if everything's been loaded, refresh the Quest Monkey Display
+ if (MonkeyQuest.m_bLoaded == true) then
+ if (MonkeyQuest.m_bNeedRefresh == true) then
+ -- don't process, let the OnUpdate catch it, but reset the timer
+ MonkeyQuest.m_fTimeSinceRefresh = 0.0;
+ else
+ MonkeyQuest.m_bNeedRefresh = true;
+ MonkeyQuest.m_fTimeSinceRefresh = 0.0;
+ end
+ end
+end
+
+-- OnEvent Function
+function MonkeyQuest_OnEvent(self, event, ...)
+
+ if (event == 'VARIABLES_LOADED') then
+ -- this event gets called when the variables are loaded
+ -- there's a possible situation where the other events might get a valid
+ -- player name BEFORE this event, which resets your config settings :(
+
+ MonkeyQuest.m_bVariablesLoaded = true;
+
+ -- double check that the mod isn't already loaded
+ if (not MonkeyQuest.m_bLoaded) then
+
+ MonkeyQuest.m_strPlayer = UnitName('player');
+
+ -- if MonkeyQuest.m_strPlayer is UNKNOWNOBJECT get out, need a real name
+ if (MonkeyQuest.m_strPlayer ~= nil and MonkeyQuest.m_strPlayer ~= UNKNOWNOBJECT) then
+ -- should have a valid player name here
+ MonkeyQuestInit_LoadConfig();
+ end
+ end
+
+ -- exit this event
+ return;
+
+ end -- VARIABLES_LOADED
+
+ if (event == 'UNIT_NAME_UPDATE') then
+ -- this event gets called whenever a unit's name changes (supposedly)
+ -- Note: Sometimes it gets called when unit's name gets set to
+ -- UNKNOWNOBJECT
+
+ -- double check that the mod isn't already loaded
+ if (not MonkeyQuest.m_bLoaded) then
+ -- this is the first place I know that reliably gets the player name
+ MonkeyQuest.m_strPlayer = UnitName('player');
+
+ -- if MonkeyQuest.m_strPlayer is UNKNOWNOBJECT get out, need a real name
+ if (MonkeyQuest.m_strPlayer ~= nil and MonkeyQuest.m_strPlayer ~= UNKNOWNOBJECT) then
+ -- should have a valid player name here
+ MonkeyQuestInit_LoadConfig();
+ end
+ end
+
+ -- exit this event
+ return;
+
+ end -- UNIT_NAME_UPDATE
+
+ if (event == 'PLAYER_ENTERING_WORLD') then
+ -- this event gets called when the player enters the world
+ -- Note: on initial login this event will not give a good player name
+
+ -- double check that the mod isn't already loaded
+ if (not MonkeyQuest.m_bLoaded) then
+
+ MonkeyQuest.m_strPlayer = UnitName('player');
+
+ -- if MonkeyQuest.m_strPlayer is UNKNOWNOBJECT get out, need a real name
+ if (MonkeyQuest.m_strPlayer ~= nil and MonkeyQuest.m_strPlayer ~= UNKNOWNOBJECT) then
+ -- should have a valid player name here
+ MonkeyQuestInit_LoadConfig();
+ end
+ end
+
+ -- exit this event
+ return;
+
+ end -- PLAYER_ENTERING_WORLD
+
+ if (event == 'QUEST_LOG_UPDATE') then
+ MonkeyQuest.m_bGotQuestLogUpdate = true;
+ MonkeyQuest_OnQuestLogUpdate();
+ return;
+ end -- QUEST_LOG_UPDATE
+
+ if (event == 'ZONE_CHANGED' or event == 'ZONE_CHANGED_INDOORS' or event == 'ZONE_CHANGED_NEW_AREA') then
+ MonkeyQuest_Refresh();
+ end -- ZONE_CHANGED
+
+ if (event == 'PLAYER_LEVEL_UP') then
+ MonkeyQuest_Refresh();
+ end -- PLAYER_LEVEL_UP
+
+ --if (event == 'TOOLTIP_ANCHOR_DEFAULT') then
+
+ --if (MonkeyQuest_SearchTooltip() == true) then
+ --GameTooltip:AddLine(MONKEYQUEST_TOOLTIP_QUESTITEM, MONKEYLIB_TITLE_COLOUR.r, MONKEYLIB_TITLE_COLOUR.g, MONKEYLIB_TITLE_COLOUR.b, 1);
+ --GameTooltip:SetHeight(GameTooltip:GetHeight() + 14);
+ --end
+ --end -- TOOLTIP_ANCHOR_DEFAULT
+
+ --if (event == 'UPDATE_MOUSEOVER_UNIT') then
+ -- check if this is a quest item
+ --MonkeyQuest_SearchTooltip();
+ --end -- UPDATE_MOUSEOVER_UNIT
+end
+
+-- this function is called when the frame should be dragged around
+function MonkeyQuest_OnMouseDown(self, button)
+ -- if not loaded yet then get out
+ if (MonkeyQuest.m_bLoaded == false) then
+ return;
+ end
+
+ -- left button moves the frame around
+ if (button == "LeftButton" and MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bLocked == false) then
+ MonkeyQuestFrame:StartMoving();
+ end
+
+ -- right button on the title or frame opens up the MonkeyBuddy, if it's there
+ if (button == "RightButton" and MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bAllowRightClick == true) then
+ if (MonkeyBuddyFrame ~= nil) then
+ MonkeyBuddy_ToggleDisplay();
+ end
+ end
+end
+
+-- this function is called when the frame is stopped being dragged around
+function MonkeyQuest_OnMouseUp(self, button)
+ -- if not loaded yet then get out
+ if (MonkeyQuest.m_bLoaded == false) then
+ return;
+ end
+
+ if (button == "LeftButton") then
+ MonkeyQuestFrame:StopMovingOrSizing();
+
+ -- save the position
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameLeft = MonkeyQuestFrame:GetLeft();
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameTop = MonkeyQuestFrame:GetTop();
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameBottom = MonkeyQuestFrame:GetBottom();
+ end
+end
+
+function MonkeyQuest_OnEnter()
+
+ -- BIB support
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bLockBIB == true) then
+ MonkeyQuestFrame:Show();
+ end
+ ShowDetailedControls();
+end
+
+function MonkeyQuest_OnLeave()
+
+ -- BIB support
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bLockBIB == true) then
+ MonkeyQuest_Hide();
+ end
+
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideHeader == true) then
+ HideDetailedControls();
+ end
+end
+
+function ShowDetailedControls()
+ MonkeyQuestTitleText:Show();
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideTitleButtons == false) then
+ MonkeyQuestMinimizeButton:Show();
+ MonkeyQuestCloseButton:Show();
+ MonkeyQuestShowHiddenCheckButton:Show();
+ end
+end
+
+function HideDetailedControls()
+ MonkeyQuestTitleText:Hide();
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideTitleButtons == false) then
+ MonkeyQuestMinimizeButton:Hide();
+ MonkeyQuestCloseButton:Hide();
+ MonkeyQuestShowHiddenCheckButton:Hide();
+ end
+end
+
+function MonkeyQuestCloseButton_OnClick()
+
+ -- if not loaded yet then get out
+ if (MonkeyQuest.m_bLoaded == false) then
+ return;
+ end
+
+ MonkeyQuest_Hide();
+end
+
+function MonkeyQuestCloseButton_OnEnter(self, motion)
+ -- no noob tip?
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowNoobTips == false) then
+ return;
+ end
+
+ -- put the tool tip in the default position
+ GameTooltip:SetOwner(self, "ANCHOR_TOPRIGHT");
+
+ -- set the tool tip text
+ GameTooltip:SetText(MONKEYQUEST_NOOBTIP_HEADER, TOOLTIP_DEFAULT_COLOR.r, TOOLTIP_DEFAULT_COLOR.g, TOOLTIP_DEFAULT_COLOR.b, 1);
+ GameTooltip:AddLine(MONKEYQUEST_NOOBTIP_CLOSE, NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b, 1);
+ GameTooltip:AddLine(MONKEYQUEST_HELP_OPEN_MSG, NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b, 1);
+
+
+ GameTooltip:Show();
+end
+
+function MonkeyQuestMinimizeButton_OnClick()
+
+ -- if not loaded yet then get out
+ if (MonkeyQuest.m_bLoaded == false) then
+ return;
+ end
+
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bMinimized = not MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bMinimized;
+
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bMinimized == true) then
+ MonkeyQuestMinimizeButton:SetNormalTexture("Interface\\AddOns\\MonkeyLibrary\\Textures\\MinimizeButton-Down");
+ else
+ MonkeyQuestMinimizeButton:SetNormalTexture("Interface\\AddOns\\MonkeyLibrary\\Textures\\MinimizeButton-Up");
+ end
+
+ MonkeyQuest_Refresh();
+end
+
+function MonkeyQuestMinimizeButton_OnEnter(self, motion)
+ -- no noob tip?
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowNoobTips == false) then
+ return;
+ end
+
+ -- put the tool tip in the default position
+ GameTooltip:SetOwner(self, "ANCHOR_TOPRIGHT");
+
+ -- set the tool tip text
+ GameTooltip:SetText(MONKEYQUEST_NOOBTIP_HEADER, TOOLTIP_DEFAULT_COLOR.r, TOOLTIP_DEFAULT_COLOR.g, TOOLTIP_DEFAULT_COLOR.b, 1);
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bMinimized) then
+ GameTooltip:AddLine(MONKEYQUEST_NOOBTIP_RESTORE, NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b, 1);
+ else
+ GameTooltip:AddLine(MONKEYQUEST_NOOBTIP_MINIMIZE, NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b, 1);
+ end
+
+ GameTooltip:Show();
+end
+
+function MonkeyQuestShowHiddenCheckButton_OnClick(self, button, down)
+
+ -- if not loaded yet then get out
+ if (MonkeyQuest.m_bLoaded == false) then
+ return;
+ end
+
+ if (self:GetChecked()) then
+ PlaySound(SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_OFF);
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowHidden = true;
+ else
+ PlaySound(SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_ON);
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowHidden = false;
+ end
+--XXXX
+ if (MonkeyBuddyFrame ~= nil) then
+ MonkeyBuddyQuestCheck2:SetChecked(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowHidden)
+ end
+
+ MonkeyQuest_Refresh();
+end
+
+function MonkeyQuestShowHiddenCheckButton_OnEnter(self, motion)
+
+ -- no noob tip?
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowNoobTips == false) then
+ return;
+ end
+
+ -- put the tool tip in the default position
+ GameTooltip:SetOwner(self, "ANCHOR_TOPRIGHT");
+
+ -- set the tool tip text
+ GameTooltip:SetText(MONKEYQUEST_NOOBTIP_HEADER, TOOLTIP_DEFAULT_COLOR.r, TOOLTIP_DEFAULT_COLOR.g, TOOLTIP_DEFAULT_COLOR.b, 1);
+ if (self:GetChecked()) then
+ GameTooltip:AddLine(MONKEYQUEST_NOOBTIP_HIDEALLHIDDEN, NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b, 1);
+ else
+ GameTooltip:AddLine(MONKEYQUEST_NOOBTIP_SHOWALLHIDDEN, NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b, 1);
+ end
+
+ GameTooltip:Show();
+end
+
+function MonkeyQuest_Show()
+
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bDisplay = true;
+ MonkeyQuestFrame:Show();
+ MonkeyQuest_Refresh();
+end
+
+function MonkeyQuest_Hide()
+
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bDisplay = false;
+ MonkeyQuestFrame:Hide();
+end
+
+function MonkeyQuest_SetAlpha(iAlpha)
+
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iAlpha = iAlpha;
+
+ MonkeyQuestFrame:SetBackdropColor(TOOLTIP_DEFAULT_BACKGROUND_COLOR.r, TOOLTIP_DEFAULT_BACKGROUND_COLOR.g, TOOLTIP_DEFAULT_BACKGROUND_COLOR.b, iAlpha)
+
+ --MonkeyQuestFrame:SetAlpha(0.5);
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuest_SetFrameAlpha(iAlpha)
+
+ -- wraith:
+ --MonkeyQuestFrame:SetAlpha(iAlpha);
+ MonkeyQuestFrame:SetAlpha(1.0);
+
+ MonkeyQuestTitleButton:SetAlpha( iAlpha );
+ MonkeyQuestCloseButton:SetAlpha( iAlpha );
+ MonkeyQuestMinimizeButton:SetAlpha( iAlpha );
+ MonkeyQuestShowHiddenCheckButton:SetAlpha( iAlpha );
+ for i = 1, MonkeyQuest.m_iNumQuestButtons, 1 do
+ _G["MonkeyQuestButton" .. i]:SetAlpha( iAlpha );
+ _G["MonkeyQuestHideButton" .. i]:SetAlpha( iAlpha );
+ end
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuest_SetHighlightAlpha(iAlpha)
+
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowZoneHighlight) then
+ MonkeyQuest_Refresh();
+ end
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuest_Refresh(MBDaily)
+
+ -- if not loaded yet, get outta here
+ if (MonkeyQuest.m_bLoaded == false) then
+ return;
+ end
+
+ if (MBDaily ~= nil) then
+ if (MBDaily == 1) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowDailyNumQuests = true
+ elseif (MBDaily == 0) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowDailyNumQuests = false
+ end
+ end
+
+ -- BIB bad options check
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bLockBIB == true) then
+ if (BIB_MonkeyQuestButton ~= nil) then
+ if (not BIB_MonkeyQuestButton:IsShown()) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bLockBIB = false;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor = "ANCHOR_TOPLEFT";
+ MonkeyQuest_Show();
+ end
+ else
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bLockBIB = false;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor = "ANCHOR_TOPLEFT";
+ MonkeyQuest_Show();
+ end
+ end
+
+ -- set the check state of the MonkeyQuestShowHiddenCheckButton
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowHidden == true) then
+ MonkeyQuestShowHiddenCheckButton:SetChecked(1);
+ else
+ MonkeyQuestShowHiddenCheckButton:SetChecked(0);
+ end
+
+ -- make sure the minimize button has the right texture
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bMinimized == true) then
+ MonkeyQuestMinimizeButton:SetNormalTexture("Interface\\AddOns\\MonkeyLibrary\\Textures\\MinimizeButton-Down");
+ else
+ MonkeyQuestMinimizeButton:SetNormalTexture("Interface\\AddOns\\MonkeyLibrary\\Textures\\MinimizeButton-Up");
+ end
+
+ local strMonkeyQuestBody = "";
+ local colour;
+ local strTitleColor;
+ local iButtonId = 1;
+ local bNextHeader = false;
+
+ local objectiveDesc, objectiveType, objectiveComplete;
+ local j, k, objectiveName, objectiveNumItems, objectiveNumNeeded;
+
+ if (MonkeyQuestObjectiveTable == nil) then
+ MonkeyQuestObjectiveTable = {};
+ end
+
+ if (MonkeyQuestTitleTable == nil) then
+ MonkeyQuestTitleTable = {};
+ end
+
+ -- Remember the currently selected quest log entry
+ local tmpQuestLogSelection = C_QuestLog.GetSelectedQuest();
+
+ local iNumEntries, iNumQuests = C_QuestLog.GetNumQuestLogEntries();
+
+ local DQCompleted = GetDailyQuestsCompleted();
+ --local DQMax = GetMaxDailyQuests();
+
+ MonkeyQuestTitleText:SetTextHeight(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFontHeight + 2);
+ -- set the title, with or without the number of quests
+
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowNumQuests == true) then
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideTitle == false) then
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowDailyNumQuests == false) then
+ MonkeyQuestTitleText:SetText(MONKEYQUEST_TITLE .. " " .. iNumQuests .. "/" .. MAX_QUESTLOG_QUESTS);
+ else
+ --MonkeyQuestTitleText:SetText(MONKEYQUEST_TITLE .. " " .. iNumQuests .. "/" .. MAX_QUESTLOG_QUESTS .. " (" .. DQCompleted .. "/" .. DQMax .. ")");
+ end
+ else
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowDailyNumQuests == false) then
+ MonkeyQuestTitleText:SetText(iNumQuests .. "/" .. MAX_QUESTLOG_QUESTS);
+ else
+ --MonkeyQuestTitleText:SetText(iNumQuests .. "/" .. MAX_QUESTLOG_QUESTS .. " (" .. DQCompleted .. "/" .. DQMax .. ")");
+ end
+ end
+ elseif (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideTitle == false) then
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowDailyNumQuests == false) then
+ MonkeyQuestTitleText:SetText(MONKEYQUEST_TITLE);
+ else
+ --MonkeyQuestTitleText:SetText(MONKEYQUEST_TITLE .. " (" .. DQCompleted .. "/" .. DQMax .. ")");
+ end
+ else
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowDailyNumQuests == false) then
+ MonkeyQuestTitleText:SetText("");
+ else
+ --MonkeyQuestTitleText:SetText("(" .. DQCompleted .. "/" .. DQMax .. ")");
+ end
+ end
+
+
+ -- update the BIB text
+ if (BIB_MonkeyQuestButton_GetButtonText) then
+ BIB_MonkeyQuestButton_GetButtonText();
+ end
+
+
+ MonkeyQuest.m_iNumEntries = iNumEntries;
+
+ -- hide all the text buttons
+ for i = 1, MonkeyQuest.m_iNumQuestButtons, 1 do
+ _G["MonkeyQuestButton" .. i .. "Text"]:SetText("");
+ _G["MonkeyQuestButton" .. i .. "Text"]:Hide();
+ _G["MonkeyQuestButton" .. i]:Hide();
+ _G["MonkeyQuestHideButton" .. i]:Hide();
+ _G["MonkeyQuestButton" .. i .. "Text"]:SetWidth(MonkeyQuestFrame:GetWidth() - MONKEYQUEST_PADDING - 8);
+ _G["MonkeyQuestButton" .. i .. "Text"]:SetTextHeight(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFontHeight);
+ end
+
+
+ MonkeyQuest_RefreshQuestItemList();
+
+ --local watchItemIndex = 0;
+
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bMinimized == false) then
+
+ for i = 1, iNumEntries, 1 do
+ -- questInfo.title the title text of the quest, may be a header (ex. Wetlands)
+ -- questInfo.level the level of the quest
+ -- questTagInfo.tagName the tag on the quest (ex. COMPLETED)
+ --local strQuestLogTitleText, strQuestLevel, strQuestTag, suggestedGroup, isHeader, isCollapsed, isComplete, isDaily = C_QuestLog.GetTitleForLogIndex(i);
+
+ local questInfo = C_QuestLog.GetInfo(i)
+ --print(questInfo.title, questInfo.isHeader, questInfo.questID)
+ local suggestedGroup = questInfo.suggestedGroup
+ local isComplete = C_QuestLog.IsComplete(questInfo.questID)
+ local questTagInfo = C_QuestLog.GetQuestTagInfo(questInfo.questID);
+
+ -- are we looking for the next header?
+ if (bNextHeader == true and questInfo.isHeader) then
+ -- no longer skipping quests
+ bNextHeader = false;
+ end
+
+ if (bNextHeader == false) then
+ -- no longer looking for the next header
+ -- Select the quest log entry for other functions like GetNumQuestLeaderBoards()
+ C_QuestLog.SetSelectedQuest(questInfo.questID);
+
+ -- double check this quest is in the hidden list, if not, it's a new quest
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_aQuestList[questInfo.title] == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_aQuestList[questInfo.title] = {};
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_aQuestList[questInfo.title].m_bChecked = true;
+ end
+
+ if (questInfo.isHeader) then
+
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_aQuestList[questInfo.title].m_bChecked == true) then
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bNoHeaders == false or
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowHidden == true or
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bAlwaysHeaders == true) then
+
+ strMonkeyQuestBody = strMonkeyQuestBody ..
+ format(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strHeaderOpenColour .. "%s|r",
+ "- " .. questInfo.title) .. "\n";
+
+ _G["MonkeyQuestButton" .. iButtonId .. "Text"]:SetText(strMonkeyQuestBody);
+ _G["MonkeyQuestButton" .. iButtonId .. "Text"]:Show();
+ _G["MonkeyQuestButton" .. iButtonId]:Show();
+
+ -- set the bg colour
+ _G["MonkeyQuestButton" .. iButtonId .. "Texture"]:SetVertexColor(0.0, 0.0, 0.0, 0.0);
+
+ _G["MonkeyQuestButton" .. iButtonId].m_iQuestIndex = i;
+ _G["MonkeyQuestButton" .. iButtonId].id = iButtonId;
+
+ _G["MonkeyQuestHideButton" .. iButtonId]:Hide();
+ _G["MonkeyQuestHideButton" .. iButtonId].m_strQuestLogTitleText = questInfo.title;
+
+ iButtonId = iButtonId + 1;
+
+ strMonkeyQuestBody = "";
+ end
+ else
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowHidden == true or
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bAlwaysHeaders == true) then
+
+ strMonkeyQuestBody = strMonkeyQuestBody ..
+ format(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strHeaderClosedColour .. "%s|r",
+ "+ " .. questInfo.title) .. "\n";
+
+ _G["MonkeyQuestButton" .. iButtonId .. "Text"]:SetText(strMonkeyQuestBody);
+ _G["MonkeyQuestButton" .. iButtonId .. "Text"]:Show();
+ _G["MonkeyQuestButton" .. iButtonId]:Show();
+
+ -- set the bg colour
+ _G["MonkeyQuestButton" .. iButtonId .. "Texture"]:SetVertexColor(0.0, 0.0, 0.0, 0.0);
+
+ _G["MonkeyQuestButton" .. iButtonId].m_iQuestIndex = i;
+ _G["MonkeyQuestButton" .. iButtonId].id = iButtonId;
+
+ _G["MonkeyQuestHideButton" .. iButtonId]:Hide();
+ _G["MonkeyQuestHideButton" .. iButtonId].m_strQuestLogTitleText = questInfo.title;
+
+ iButtonId = iButtonId + 1;
+
+ strMonkeyQuestBody = "";
+ end
+ -- keep looping through the list until we find the next header
+ bNextHeader = true;
+ end
+ else
+ -- check if the user even wants this displayed
+ if ((MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_aQuestList[questInfo.title].m_bChecked == true or
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowHidden) and
+ (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideCompletedQuests == false or
+ (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideCompletedQuests == true and not isComplete) or
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowHidden)) then
+
+ -- the user has this quest checked off or he's showing all quests anyways, so we show it (currently on :Hide)
+ --getglobal("MonkeyQuestHideButton" .. iButtonId):Hide();
+
+ if ( MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowHidden ) then
+ _G["MonkeyQuestHideButton" .. iButtonId]:Hide();
+ else
+ _G["MonkeyQuestHideButton" .. iButtonId]:Hide();
+ end
+
+ -- update hide quests buttons
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_aQuestList[questInfo.title].m_bChecked == true) then
+ _G["MonkeyQuestHideButton" .. iButtonId]:SetChecked(1);
+ else
+ _G["MonkeyQuestHideButton" .. iButtonId]:SetChecked(0);
+ end
+
+ _G["MonkeyQuestHideButton" .. iButtonId].m_strQuestLogTitleText = questInfo.title;
+
+ local color = GetQuestDifficultyColor(questInfo.level);
+ local strQuestLink = GetQuestLink(questInfo.questID);
+ local hexColor = strQuestLink and select(3, strfind(strQuestLink, "|cff(.+)|H")) or format("%02X%02X%02X", color.r * 255, color.g * 255, color.b * 255);
+
+ -- adjust bright yellow to golden yellow
+ if (color.font == "QuestDifficulty_Difficult") then
+ hexColor = "ffd000"
+ end
+
+ -- Begin Pkp Changes
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bColourTitle) then
+ -- strTitleColor = format("|c%02X%02X%02X%02X", 255, colour.r * 255, colour.g * 255, colour.b * 255);
+
+ strTitleColor = format("|cff%s", hexColor);
+ else
+ strTitleColor = MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strQuestTitleColour;
+ end
+
+ -- padding
+ strMonkeyQuestBody = strMonkeyQuestBody .. " ";
+
+ -- check if the user wants the quest levels
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowQuestLevel == true) then
+
+ if (questTagInfo and questTagInfo.tagID == Enum.QuestTag.Group) then
+ if (not suggestedGroup) or suggestedGroup <= 1 then
+ suggestedGroup = "";
+ end
+
+ if (questInfo.frequency == Enum.QuestFrequency.Daily) then
+ strMonkeyQuestBody = strMonkeyQuestBody .. format("%s%s|r", strTitleColor, "[" .. questInfo.level .. "g"..suggestedGroup.."*] ");
+ else
+ strMonkeyQuestBody = strMonkeyQuestBody .. format("%s%s|r", strTitleColor, "[" .. questInfo.level .. "g"..suggestedGroup.."] ");
+ end
+
+ elseif (questTagInfo and questTagInfo.tagID == Enum.QuestTag.Dungeon) then
+ if (questInfo.frequency == Enum.QuestFrequency.Daily) then
+ strMonkeyQuestBody = strMonkeyQuestBody .. format("%s%s|r", strTitleColor, "[" .. questInfo.level .. "d*] ");
+ elseif (C_QuestLog.IsWorldQuest(questInfo.questID)) then
+ strMonkeyQuestBody = strMonkeyQuestBody .. format("%s%s|r", strTitleColor, "[" .. questInfo.level .. "WQd] ");
+ else
+ strMonkeyQuestBody = strMonkeyQuestBody .. format("%s%s|r", strTitleColor, "[" .. questInfo.level .. "d] ");
+ end
+
+ elseif (questTagInfo and questTagInfo.tagID == Enum.QuestTag.Raid) then
+ strMonkeyQuestBody = strMonkeyQuestBody .. format("%s%s|r", strTitleColor, "[" .. questInfo.level .. "r] ");
+
+ -- Emissary world quest
+ elseif (questTagInfo and questTagInfo.tagID == 128) then
+ strMonkeyQuestBody = strMonkeyQuestBody .. format("%s%s|r", strTitleColor, "[" .. questInfo.level .. "E] ");
+
+ elseif (questTagInfo and questTagInfo.tagID == Enum.QuestTag.PvP) then
+ if (questInfo.frequency == Enum.QuestFrequency.Daily) then
+ strMonkeyQuestBody = strMonkeyQuestBody .. format("%s%s|r", strTitleColor, "[" .. questInfo.level .. "p*] ");
+ else
+ strMonkeyQuestBody = strMonkeyQuestBody .. format("%s%s|r", strTitleColor, "[" .. questInfo.level .. "p] ");
+ end
+
+ elseif (questTagInfo and questTagInfo.tagID == Enum.QuestTag.Heroic) then
+ if (questInfo.frequency == Enum.QuestFrequency.Daily) then
+ strMonkeyQuestBody = strMonkeyQuestBody .. format("%s%s|r", strTitleColor, "[" .. questInfo.level .. "d+] ");
+ else
+ strMonkeyQuestBody = strMonkeyQuestBody .. format("%s%s|r", strTitleColor, "[" .. questInfo.level .. "d+*] ");
+ end
+
+ elseif (questInfo.frequency == Enum.QuestFrequency.Daily) then
+ strMonkeyQuestBody = strMonkeyQuestBody .. format("%s%s|r", strTitleColor, "[" .. questInfo.level .. "*] ");
+
+ elseif (questInfo.frequency == Enum.QuestFrequency.Weekly) then
+ strMonkeyQuestBody = strMonkeyQuestBody .. format("%s%s|r", strTitleColor, "[" .. questInfo.level .. "w] ");
+
+ elseif (C_QuestLog.IsWorldQuest(questInfo.questID)) then
+ strMonkeyQuestBody = strMonkeyQuestBody .. format("%s%s|r", strTitleColor, "[" .. questInfo.level .. "WQ] ");
+
+ -- Covenant Calling Quest
+ elseif (questTagInfo and questTagInfo.tagID == 271) then
+ strMonkeyQuestBody = strMonkeyQuestBody .. format("%s%s|r", strTitleColor, "[" .. questInfo.level .. "CQ] ");
+
+ else
+ strMonkeyQuestBody = strMonkeyQuestBody .. format("%s%s|r", strTitleColor, "[" .. questInfo.level .. "] ");
+ end
+ end
+
+ -- add the completed tag, if needed
+ if (isComplete == -1) then
+ strMonkeyQuestBody = strMonkeyQuestBody ..
+ format(strTitleColor .. "%s|r", questInfo.title) ..
+ " (" .. MONKEYQUEST_QUEST_FAILED .. ")\n";
+ elseif (isComplete == 1) then
+ strMonkeyQuestBody = strMonkeyQuestBody ..
+ format(strTitleColor .. "%s|r", questInfo.title) ..
+ " (" .. MONKEYQUEST_QUEST_DONE .. ")\n";
+ else
+ strMonkeyQuestBody = strMonkeyQuestBody ..
+ format(strTitleColor .. "%s|r", questInfo.title) .. "\n";
+ end
+
+ local strQuestDescription, strQuestObjectives = GetQuestLogQuestText(i);
+
+ --[[
+ local link, item, charges = GetQuestLogSpecialItemInfo(i);
+ if ( item ) then
+ --watchItemIndex = watchItemIndex + 1;
+ --itemButton = _G["MQWatchFrameItem"..watchItemIndex];
+ if ( not itemButton ) then
+ MQWATCHFRAME_NUM_ITEMS = watchItemIndex;
+ itemButton = CreateFrame("BUTTON", "MQWatchFrameItem" .. watchItemIndex, _G["MonkeyQuestFrame"], "WatchFrameItemButtonTemplate");
+ end
+ itemButton:SetScale(0.7)
+ itemButton:Show();
+ itemButton:ClearAllPoints();
+ itemButton:SetID(i);
+ SetItemButtonTexture(itemButton, item);
+ SetItemButtonCount(itemButton, charges);
+ WatchFrameItem_UpdateCooldown(itemButton);
+ itemButton.rangeTimer = -1;
+ if ( MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bItemsOnLeft == true ) then
+ if ( MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowHidden == true ) then
+ itemButton:SetPoint( "TOPRIGHT", _G["MonkeyQuestHideButton" .. iButtonId], "TOPLEFT", -12, 0);
+ else
+ itemButton:SetPoint( "TOPRIGHT", _G["MonkeyQuestButton" .. iButtonId], "TOPLEFT" );
+ end
+ else
+ itemButton:SetPoint( "TOPLEFT", _G["MonkeyQuestButton" .. iButtonId], "TOPRIGHT", 12, 0);
+ end
+ end
+ --]]
+
+ local numQuestObjectives = C_QuestLog.GetNumQuestObjectives(questInfo.questID)
+
+ if (numQuestObjectives> 0) then
+ for ii = 1, numQuestObjectives, 1 do
+ local strLeaderBoardText, strType, iFinished = GetQuestLogLeaderBoard(ii, i);
+
+ MonkeyQuest_AddQuestItemToList(strLeaderBoardText);
+
+ if (strLeaderBoardText) then
+ if (not iFinished) then
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bColourSubObjectivesByProgress == true) then
+ strMonkeyQuestBody = strMonkeyQuestBody .. " " .. MonkeyQuest_GetLeaderboardColorStr(strLeaderBoardText) .. strLeaderBoardText .. "\n";
+ else
+ strMonkeyQuestBody = strMonkeyQuestBody .. " " .. MonkeyQuest_GetLeaderboardColorStr(strLeaderBoardText) .. strLeaderBoardText .. "\n";
+ end
+ elseif (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideCompletedObjectives == false
+ or MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowHidden) then
+ strMonkeyQuestBody = strMonkeyQuestBody .. " " ..
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strFinishObjectiveColour ..
+ strLeaderBoardText .. "\n";
+ end
+ end
+ end
+
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bWorkComplete == true and questInfo.title ~= nil) then
+
+ for ii = 1, numQuestObjectives, 1 do
+
+ objectiveDesc, objectiveType, objectiveComplete = GetQuestLogLeaderBoard(ii, i);
+
+ if (objectiveType == "item" or objectiveType == "monster" or objectiveType == "object") then
+
+ j, k, objectiveNumItems, objectiveNumNeeded, objectiveName = string.find(objectiveDesc, "^(%d+)/(%d+)%s(.*)$");
+
+ if (objectiveName ~= nil and objectiveName ~= " slain" and objectiveName ~= " ") then
+
+ currentObjectiveName = questInfo.title .. objectiveName;
+
+ if (MonkeyQuestObjectiveTable[currentObjectiveName] == nil) then
+ MonkeyQuestObjectiveTable[currentObjectiveName] = {};
+ end
+
+ if (isComplete and (MonkeyQuestObjectiveTable[currentObjectiveName].complete == nil or MonkeyQuestObjectiveTable[currentObjectiveName].complete == false)) then
+ PlaySoundFile(569169) -- sound/spells/valentines_lookingforloveheart.ogg
+ end
+
+ MonkeyQuestObjectiveTable[currentObjectiveName].complete = objectiveComplete;
+ end
+ elseif (objectiveType == "event") then
+ if (objectiveDesc ~= nil) then
+
+ currentObjectiveDesc = questInfo.title .. objectiveDesc;
+
+ if (MonkeyQuestObjectiveTable[currentObjectiveDesc] == nil) then
+ MonkeyQuestObjectiveTable[currentObjectiveDesc] = {};
+ end
+
+ if (objectiveComplete == true and MonkeyQuestObjectiveTable[currentObjectiveDesc].complete == nil) then
+ -- PlaySoundFile("sound\\spells\\valentines_lookingforloveheart.ogg")
+ PlaySoundFile(569169)
+ end
+
+ MonkeyQuestObjectiveTable[currentObjectiveDesc].complete = objectiveComplete;
+ end
+ end
+ end
+ end
+
+ elseif (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bObjectives) then
+ -- this quest has no leaderboard so display the objective instead if the config is set
+
+ strMonkeyQuestBody = strMonkeyQuestBody .. " " ..
+ format(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strOverviewColour .. "%s|r",
+ strQuestObjectives) .. "\n";
+ end
+
+ -- finally set the text
+ _G["MonkeyQuestButton" .. iButtonId .. "Text"]:SetText(strMonkeyQuestBody);
+ _G["MonkeyQuestButton" .. iButtonId .. "Text"]:Show();
+ _G["MonkeyQuestButton" .. iButtonId]:Show();
+
+ -- set the bg colour
+ _G["MonkeyQuestButton" .. iButtonId .. "Texture"]:SetVertexColor(0.0, 0.0, 0.0, 0.0);
+
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowZoneHighlight) then
+ local strSubZoneText = string.lower(GetSubZoneText());
+
+ if (strSubZoneText ~= "") then
+ if (string.find(string.lower(strQuestDescription), strSubZoneText, 1, true) or
+ string.find(string.lower(strQuestObjectives), strSubZoneText, 1, true)) then
+
+ local a, r, g, b = MonkeyLib_ColourStrToARGB(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strZoneHighlightColour);
+
+ _G["MonkeyQuestButton" .. iButtonId .. "Texture"]:SetVertexColor(r, g, b, MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iHighlightAlpha);
+ end
+ end
+ end
+
+ _G["MonkeyQuestButton" .. iButtonId].m_iQuestIndex = i;
+ _G["MonkeyQuestButton" .. iButtonId].m_strQuestObjectives = strQuestObjectives;
+
+ iButtonId = iButtonId + 1;
+
+ strMonkeyQuestBody = "";
+ end
+ end
+ end
+ end
+ end
+
+ for i = 1, MonkeyQuest.m_iNumQuestButtons, 1 do
+ _G["MonkeyQuestButton" .. i .. "Text"]:SetWidth(MonkeyQuestFrame:GetWidth() - MONKEYQUEST_PADDING - 8);
+ end
+
+--[[
+ for i = watchItemIndex + 1, MQWATCHFRAME_NUM_ITEMS do
+ _G["MQWatchFrameItem" .. i]:Hide();
+ end
+ --]]
+
+ -- Restore the current quest log selection
+ C_QuestLog.SetSelectedQuest(tmpQuestLogSelection);
+
+ MonkeyQuest_Resize();
+ -- we don't have a dropped QUEST_LOG_UPDATE anymore
+ MonkeyQuest.m_bNeedRefresh = false;
+ MonkeyQuest.m_fTimeSinceRefresh = 0.0;
+end
+
+function MonkeyQuest_RefreshQuestItemList()
+
+ local i;
+ local iNumEntries, iNumQuests = C_QuestLog.GetNumQuestLogEntries();
+
+
+ MonkeyQuest.m_aQuestItemList = nil;
+ MonkeyQuest.m_aQuestItemList = {};
+
+ for i = 1, iNumEntries, 1 do
+ local questInfo = C_QuestLog.GetInfo(i)
+
+ if (not questInfo.isHeader) then
+ -- Select the quest log entry for other functions like GetNumQuestLeaderBoards()
+ C_QuestLog.SetSelectedQuest(i);
+
+ if (GetNumQuestLeaderBoards() > 0) then
+ for ii=1, GetNumQuestLeaderBoards(), 1 do
+ --local string = _G["QuestLogObjective"..ii];
+ local strLeaderBoardText, strType, iFinished = GetQuestLogLeaderBoard(ii);
+
+ MonkeyQuest_AddQuestItemToList(strLeaderBoardText);
+
+ end
+ end
+ end
+ end
+end
+
+-- does a decent job of figuring out if the quest objective is an item and if so adds it to the list
+function MonkeyQuest_AddQuestItemToList(strLeaderBoardText)
+ if (not strLeaderBoardText) then
+ return;
+ end
+
+ --local i, j, strItemName, iNumItems, iNumNeeded = string.find(strLeaderBoardText, "(.*):%s*([-%d]+)%s*/%s*([-%d]+)%s*$");
+ local i, j, iNumItems, iNumNeeded, strItemName = string.find(strLeaderBoardText, "^(%d+)/(%d+)%s(.*)$");
+
+ if (iNumItems == nil) then
+ -- not a quest item
+ return;
+ end
+
+ i, j = string.find(strItemName, MONKEYQUEST_TOOLTIP_SLAIN);
+
+ if (i ~= nil) then
+ strItemName = string.sub(strItemName, 1, i - 2);
+ end
+
+ if (MonkeyQuest.m_aQuestItemList[strItemName] == nil) then
+ MonkeyQuest.m_aQuestItemList[strItemName] = {};
+ end
+
+ MonkeyQuest.m_aQuestItemList[strItemName].m_iNumItems = iNumItems;
+ MonkeyQuest.m_aQuestItemList[strItemName].m_iNumNeeded = iNumNeeded;
+end
+
+function MonkeyQuest_Resize()
+
+ local iHeight = 0;
+ local text;
+ local button;
+ local iTextWidth = 0;
+ local iPadding = MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iQuestPadding;
+
+
+ -- if not loaded yet then get out
+ if (MonkeyQuest.m_bLoaded == false) then
+ return;
+ end
+
+ --iTextWidth = MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameWidth - MONKEYQUEST_PADDING - 8;
+ iTextWidth = MonkeyQuestFrame:GetWidth() - MONKEYQUEST_PADDING - 8;
+
+ -- make sure the titlebutton is the right size for the title text
+ MonkeyQuestTitleButton:SetWidth(MonkeyQuestTitleText:GetWidth());
+ MonkeyQuestTitleButton:SetHeight(MonkeyQuestTitleText:GetHeight());
+
+ for i = 1, MonkeyQuest.m_iNumQuestButtons, 1 do
+ text = _G["MonkeyQuestButton" .. i .. "Text"];
+ button = _G["MonkeyQuestButton" .. i];
+
+ if (text:IsVisible()) then
+ text:SetWidth(iTextWidth);
+
+ local textHeight = text:GetHeight() + 4;
+ iHeight = iHeight + textHeight + iPadding;
+
+ button:SetWidth(text:GetWidth());
+ button:SetHeight(textHeight);
+ end
+ end
+
+ iHeight = iHeight + MonkeyQuestTitleText:GetHeight() + MONKEYQUEST_PADDING;
+
+ --MonkeyQuestFrame:SetWidth(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameWidth);
+ MonkeyQuestFrame:SetHeight(iHeight);
+
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameLeft == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameLeft = 500;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameTop == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameTop = 500;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameBottom == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameBottom = 539;
+ end
+
+
+
+ -- Set the grow direction
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bLockBIB == false) then
+ -- Added by Diungo
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bGrowUp == false) then
+ MonkeyQuestFrame:ClearAllPoints();
+ -- grow down
+ MonkeyQuestFrame:SetPoint("TOPLEFT", "UIParent", "BOTTOMLEFT",
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameLeft,
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameTop);
+
+ -- check to see if it grew off the screen
+ --if (MonkeyQuestFrame:GetBottom() < 0) then
+ -- MonkeyQuestFrame:SetPoint("TOPLEFT", "UIParent", "BOTTOMLEFT",
+ -- MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameLeft,
+ -- MonkeyQuestFrame:GetHeight() - 2);
+ --end
+ else
+ MonkeyQuestFrame:ClearAllPoints();
+ -- grow up
+ MonkeyQuestFrame:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT",
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameLeft,
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameBottom);
+
+ -- check to see if it grew off the screen
+ --if (MonkeyQuestFrame:GetTop() > 1024) then
+ -- MonkeyQuestFrame:SetPoint("BOTTOMLEFT", "UIParent", "BOTTOMLEFT",
+ -- MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameLeft,
+ -- 1024 - (MonkeyQuestFrame:GetHeight() - 2));
+ --end
+ end
+ end
+
+ -- save the position
+ if (MonkeyQuestFrame:GetLeft() ~= nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameLeft = MonkeyQuestFrame:GetLeft();
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameTop = MonkeyQuestFrame:GetTop();
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameBottom = MonkeyQuestFrame:GetBottom();
+ end
+end
+
+-- Get a colour for the leaderboard item depending on how "done" it is
+function MonkeyQuest_GetLeaderboardColorStr(strText)
+ --local i, j, strItemName, iNumItems, iNumNeeded = string.find(strText, "(.*):%s*([-%d]+)%s*/%s*([-%d]+)%s*$");
+ local i, j, iNumItems, iNumNeeded, strItemName = string.find(strText, "^(%d+)/(%d+)%s(.*)$");
+
+ -- wraith:
+ --if ( MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bColourSubObjectivesByProgress == true ) then
+ --DEFAULT_CHAT_FRAME:AddMessage("subobjective");
+ if (iNumItems ~= nil) then
+ local colour = {a = 1.0, r = 1.0, g = 1.0, b = 1.0};
+ colour.a, colour.r, colour.g, colour.b = MonkeyQuest_GetCompletenessColorStr(iNumItems, iNumNeeded);
+ return MonkeyLib_ARGBToColourStr(colour.a, colour.r, colour.g, colour.b);
+ end
+
+ -- it's a quest with no numerical objectives
+ --local i, j, strItemName, strItems, strNeeded = string.find(strText, "(.*):%s*([-%a]+)%s*/%s*([-%a]+)%s*$");
+ local i, j, iNumItems, iNumNeeded, strItemName = string.find(strText, "^(%a+)/(%a+)%s(.*)$");
+ -- is it a string/string type?
+ if (strItems ~= nil) then
+ if (strItems == strNeeded) then
+ -- strings are equal, completed objective
+ return MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strCompleteObjectiveColour;
+ else
+ -- strings are not equal, uncompleted objective
+ return MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strInitialObjectiveColour;
+ end
+ else
+ -- special objective
+ return MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strSpecialObjectiveColour;
+ end
+ --else
+ -- DEFAULT_CHAT_FRAME:AddMessage("finishedobj");
+ -- return MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strFinishObjectiveColour;
+ --end
+end
+
+-- Get a colour for the leaderboard item depending on how "done" it is
+function MonkeyQuest_GetCompletenessColorStr(iNumItems, iNumNeeded)
+ local colour = {a = 1.0, r = 1.0, g = 1.0, b = 1.0};
+ local colourInitial = {a = 1.0, r = 1.0, g = 1.0, b = 1.0};
+ local colourMid = {a = 1.0, r = 1.0, g = 1.0, b = 1.0};
+ local colourComplete = {a = 1.0, r = 1.0, g = 1.0, b = 1.0};
+ local colourFinish = {a = 1.0, r = 1.0, g = 1.0, b = 1.0};
+
+ colourInitial.a, colourInitial.r, colourInitial.g, colourInitial.b = MonkeyLib_ColourStrToARGB(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strInitialObjectiveColour);
+ colourMid.a, colourMid.r, colourMid.g, colourMid.b = MonkeyLib_ColourStrToARGB(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strMidObjectiveColour);
+ colourComplete.a, colourComplete.r, colourComplete.g, colourComplete.b = MonkeyLib_ColourStrToARGB(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strCompleteObjectiveColour);
+ colourFinish.a, colourFinish.r, colourFinish.g, colourFinish.b = MonkeyLib_ColourStrToARGB(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strFinishObjectiveColour);
+
+ local colourDelta1 = {
+ a = (colourMid.a - colourInitial.a),
+ r = (colourMid.r - colourInitial.r),
+ g = (colourMid.g - colourInitial.g),
+ b = (colourMid.b - colourInitial.b)
+ };
+
+ local colourDelta2 = {
+ a = (colourComplete.a - colourMid.a),
+ r = (colourComplete.r - colourMid.r),
+ g = (colourComplete.g - colourMid.g),
+ b = (colourComplete.b - colourMid.b)
+ };
+
+ -- standard x/y type objective
+ if (iNumItems + 0 == iNumNeeded + 0) then
+ colour.r = colourFinish.r;
+ colour.g = colourFinish.g;
+ colour.b = colourFinish.b;
+ elseif ((iNumItems / iNumNeeded) < 0.5) then
+ colour.r = colourInitial.r + ((iNumItems / (iNumNeeded / 2)) * colourDelta1.r);
+ colour.g = colourInitial.g + ((iNumItems / (iNumNeeded / 2)) * colourDelta1.g);
+ colour.b = colourInitial.b + ((iNumItems / (iNumNeeded / 2)) * colourDelta1.b);
+ else
+ colour.r = colourMid.r + (((iNumItems - (iNumNeeded / 2)) / (iNumNeeded / 2)) * colourDelta2.r);
+ colour.g = colourMid.g + (((iNumItems - (iNumNeeded / 2)) / (iNumNeeded / 2)) * colourDelta2.g);
+ colour.b = colourMid.b + (((iNumItems - (iNumNeeded / 2)) / (iNumNeeded / 2)) * colourDelta2.b);
+ end
+
+ -- just incase the numbers went slightly out of range
+ if (colour.r > 1.0) then
+ colour.r = 1.0;
+ end
+ if (colour.g > 1.0) then
+ colour.g = 1.0;
+ end
+ if (colour.b > 1.0) then
+ colour.b = 1.0;
+ end
+ if (colour.r < 0.0) then
+ colour.r = 0.0;
+ end
+ if (colour.g < 0.0) then
+ colour.g = 0.0;
+ end
+ if (colour.b < 0.0) then
+ colour.b = 0.0;
+ end
+
+ return colour.a, colour.r, colour.g, colour.b;
+end
+
+-- when the mouse goes over the main frame, this gets called
+function MonkeyQuestTitle_OnEnter(self, motion)
+ -- noob tip?
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowNoobTips == true) then
+
+ -- put the tool tip in the specified position
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor == "DEFAULT") then
+ GameTooltip_SetDefaultAnchor(GameTooltip, self);
+ else
+ GameTooltip:SetOwner(MonkeyQuestFrame, MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor);
+ end
+
+ -- set the tool tip text
+ GameTooltip:SetText(MONKEYQUEST_NOOBTIP_HEADER, TOOLTIP_DEFAULT_COLOR.r, TOOLTIP_DEFAULT_COLOR.g, TOOLTIP_DEFAULT_COLOR.b, 1);
+ GameTooltip:AddLine(MONKEYQUEST_NOOBTIP_TITLE, NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b, 1);
+
+ GameTooltip:Show();
+
+ return;
+ end
+end
+
+function MonkeyQuestButton_OnLoad(self)
+ self:RegisterForClicks("LeftButtonUp", "RightButtonUp");
+end
+
+function MonkeyQuestButton_OnClick(self, button, down)
+
+ --local strQuestLogTitleText, strQuestLevel, strQuestTag, suggestedGroup, isHeader, isCollapsed, isComplete, isDaily = C_QuestLog.GetTitleForLogIndex(self.m_iQuestIndex);
+ -- local strQuestLogTitleText, strQuestLevel, suggestedGroup, isHeader, isCollapsed, isComplete, frequency, questId = C_QuestLog.GetTitleForLogIndex(self.m_iQuestIndex);
+ -- local strQuestLink = GetQuestLink(questId);
+
+ local questInfo = C_QuestLog.GetInfo(self.m_iQuestIndex)
+ local isComplete = C_QuestLog.IsComplete(questInfo.questID)
+ local questTagInfo = C_QuestLog.GetQuestTagInfo(questInfo.questID);
+ local strQuestLink = GetQuestLink(questInfo.questID);
+
+ if (questInfo.isHeader) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_aQuestList[_G["MonkeyQuestHideButton" .. self.id].m_strQuestLogTitleText].m_bChecked = not MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_aQuestList[_G["MonkeyQuestHideButton" .. self.id].m_strQuestLogTitleText].m_bChecked;
+
+ MonkeyQuest_Refresh();
+ MonkeyQuestFrame:Show();
+ MonkeyQuest_Refresh();
+
+ return;
+ end
+
+ local activeWindow = ChatEdit_GetActiveWindow();
+
+ if (IsShiftKeyDown() and activeWindow) then
+ -- what button was it?
+ if (button == "LeftButton") then
+ if (questTagInfo and questTagInfo.tagID == Enum.QuestTag.Group) then
+ local grp = "";
+
+ if questInfo.suggestedGroup and questInfo.suggestedGroup > 1 then
+ grp = grp .. questInfo.suggestedGroup;
+ end
+
+ if (questTagInfo and questTagInfo.frequency == Enum.QuestFrequency.Daily) then
+ activeWindow:Insert("[" .. questInfo.level .. "g" .. grp .. "*] " .. strQuestLink .. " ");
+ else
+ activeWindow:Insert("[" .. questInfo.level .. "g" .. grp .. "] " .. strQuestLink .. " ");
+ end
+ elseif (questTagInfo and questTagInfo.tagID == Enum.QuestTag.Dungeon) then
+ if (questTagInfo.frequency == Enum.QuestFrequency.Daily) then
+ activeWindow:Insert("[" .. questInfo.level .. "d*] " .. strQuestLink .. " ");
+ else
+ activeWindow:Insert("[" .. questInfo.level .. "d] " .. strQuestLink .. " ");
+ end
+ elseif (questTagInfo and questTagInfo.tagID == Enum.QuestTag.Raid) then
+ activeWindow:Insert("[" .. questInfo.level .. "r] " .. strQuestLink .. " ");
+ elseif (questTagInfo and questTagInfo.tagID == Enum.QuestTag.PvP) then
+ if (questTagInfo.frequency == Enum.QuestFrequency.Daily) then
+ activeWindow:Insert("[" .. questInfo.level .. "p*] " .. strQuestLink .. " ");
+ else
+ activeWindow:Insert("[" .. questInfo.level .. "p] " .. strQuestLink .. " ");
+ end
+
+ -- elseif (strQuestTag == DUNGEON_DIFFICULTY2) then
+ -- if (isDaily ~= 1) then
+ -- activeWindow:Insert("[" .. strQuestLevel .. "d+] " .. strQuestLink .. " ");
+ -- end
+ -- if (isDaily == 1) then
+ -- activeWindow:Insert("[" .. strQuestLevel .. "d+*] " .. strQuestLink .. " ");
+ -- end
+
+ elseif (questTagInfo and questTagInfo.frequency == Enum.QuestFrequency.Daily) then
+ activeWindow:Insert("[" .. questInfo.level .. "*] " .. strQuestLink .. " ");
+ else
+ activeWindow:Insert("[" .. questInfo.level .. "] " .. strQuestLink .. " ");
+ end
+ else
+ local strChatObjectives = "";
+
+ -- Remember the currently selected quest log entry
+ local tmpQuestLogSelection = C_QuestLog.GetSelectedQuest();
+
+ -- Select the quest log entry for other functions like GetNumQuestLeaderBoards()
+ C_QuestLog.SetSelectedQuest(self.m_iQuestIndex);
+
+ local numQuestObjectives = C_QuestLog.GetNumQuestObjectives(questInfo.questID)
+
+ if (numQuestObjectives > 0) then
+ for i = 1, numQuestObjectives(), 1 do
+ --local string = _G["QuestLogObjective"..ii];
+ local strLeaderBoardText, strType, iFinished = GetQuestLogLeaderBoard(i, self.m_iQuestIndex);
+
+ if (strLeaderBoardText) then
+ strChatObjectives = strChatObjectives .. "{" .. strLeaderBoardText .. "} ";
+ end
+ end
+ elseif (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bObjectives) then
+ -- this quest has no leaderboard so display the objective instead if the config is set
+ local strQuestDescription, strQuestObjectives = GetQuestLogQuestText(i);
+
+ strChatObjectives = strChatObjectives .. "{" .. strQuestObjectives .. "} ";
+ end
+
+ activeWindow:Insert(strChatObjectives);
+
+ -- Restore the currently selected quest log entry
+ C_QuestLog.SetSelectedQuest(tmpQuestLogSelection);
+
+ end
+
+ -- the user isn't trying to actually open the real quest log, so just exit here
+ return;
+ end
+
+ if (IsControlKeyDown()) then
+ -- what button was it?
+ if (button == "LeftButton") then
+ -- Select the quest log entry for other functions like GetNumQuestLeaderBoards()
+ C_QuestLog.SetSelectedQuest(self.m_iQuestIndex);
+
+ -- try and share this quest with party members
+ if (GetQuestLogPushable() and GetNumPartyMembers() > 0) then
+ QuestLogPushQuest();
+ end
+
+ else
+ -- Remember the currently selected quest log entry
+ --local tmpQuestLogSelection = C_QuestLog.GetSelectedQuest();
+
+ -- Select the quest log entry for other functions like GetNumQuestLeaderBoards()
+ C_QuestLog.SetSelectedQuest(self.m_iQuestIndex);
+
+ C_QuestLog.SetAbandonQuest();
+ StaticPopup_Show("ABANDON_QUEST", GetAbandonQuestName());
+
+ -- Restore the currently selected quest log entry
+ --C_QuestLog.SetSelectedQuest(tmpQuestLogSelection);
+ end
+
+ -- the user isn't trying to actually open the real quest log, so just exit here
+ return;
+ end
+--[[
+ -- if MonkeyQuestLog is installed, open that instead
+ if (MkQL_SetQuest ~= nil) then
+ if (MkQL_Main_Frame:IsVisible()) then
+ if (MkQL_global_iCurrQuest == self.m_iQuestIndex) then
+ MkQL_Main_Frame:Hide();
+ return;
+ end
+ end
+ MkQL_SetQuest(self.m_iQuestIndex);
+ return;
+ end
+
+ -- show the real questlog
+ ShowUIPanel(QuestLogFrame);
+
+ -- check if there's even a need to mess with the offset
+ if (MonkeyQuest.m_iNumEntries > #QuestLogScrollFrame.buttons) then
+
+ -- move the real quest log list scrollbar to the correct place
+ if (self.m_iQuestIndex < MonkeyQuest.m_iNumEntries - #QuestLogScrollFrame.buttons) then
+ FauxScrollFrame_SetOffset(QuestLogListScrollFrame, self.m_iQuestIndex - 1);
+ QuestLogListScrollFrameScrollBar:SetValue((self.m_iQuestIndex - 1) * QUESTLOG_QUEST_HEIGHT);
+ else
+ FauxScrollFrame_SetOffset(QuestLogListScrollFrame, MonkeyQuest.m_iNumEntries - #QuestLogScrollFrame.buttons);
+ QuestLogListScrollFrameScrollBar:SetValue((MonkeyQuest.m_iNumEntries - #QuestLogScrollFrame.buttons) * QUESTLOG_QUEST_HEIGHT);
+ end
+ end
+
+ -- actually select the quest entry
+ C_QuestLog.SetSelectedQuest(self.m_iQuestIndex);
+ QuestLog_SetSelection(self.m_iQuestIndex);
+
+ -- update the real quest log
+ QuestLog_Update();
+
+
+ --]]
+
+ if (button == "LeftButton") then
+ -- if MonkeyQuestLog is installed, open that instead
+ if (MkQL_SetQuest ~= nil) then
+ if (MkQL_Main_Frame:IsVisible()) then
+ if (MkQL_global_iCurrQuest == self.m_iQuestIndex) then
+ MkQL_Main_Frame:Hide();
+ return;
+ end
+ end
+ MkQL_SetQuest(self.m_iQuestIndex);
+ return;
+ end
+
+ -- show the real questlog
+ ShowUIPanel(QuestLogFrame);
+
+ -- actually select the quest entry
+ C_QuestLog.SetSelectedQuest(self.m_iQuestIndex);
+ QuestLog_SetSelection(self.m_iQuestIndex);
+
+ -- update the real quest log
+ QuestLog_Update();
+
+ elseif (button == "RightButton") then
+ -- TODO: hide the quest
+ end
+end
+
+function MonkeyQuestButton_OnEnter(self, motion)
+
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor == "NONE") then
+ return;
+ end
+
+ --local strQuestLogTitleText, strQuestLevel, strQuestTag, suggestedGroup, isHeader, isCollapsed, isComplete, isDaily = C_QuestLog.GetTitleForLogIndex(self.m_iQuestIndex);
+
+ local questInfo = C_QuestLog.GetInfo(self.m_iQuestIndex)
+ local isComplete = C_QuestLog.IsComplete(questInfo.questID)
+ local questTagInfo = C_QuestLog.GetQuestTagInfo(questInfo.questID);
+ local strQuestTag = questTagInfo and questTagInfo.tagName or "";
+
+ if (questInfo.title == nil) then
+ return;
+ end
+
+
+ if (questInfo.isHeader) then
+ -- no noob tip?
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowNoobTips == false) then
+ return;
+ end
+
+ -- put the tooltip in the specified position
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor == "DEFAULT") then
+ GameTooltip_SetDefaultAnchor(GameTooltip, self);
+ else
+ GameTooltip:SetOwner(MonkeyQuestFrame, MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor);
+ end
+
+ -- set the tooltip text
+ GameTooltip:SetText(MONKEYQUEST_NOOBTIP_HEADER, TOOLTIP_DEFAULT_COLOR.r, TOOLTIP_DEFAULT_COLOR.g, TOOLTIP_DEFAULT_COLOR.b, 1);
+ GameTooltip:AddLine(MONKEYQUEST_NOOBTIP_QUESTHEADER, NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b, 1);
+
+ GameTooltip:Show();
+
+ return;
+ end
+
+ if questInfo.suggestedGroup and questInfo.suggestedGroup > 1 then
+ strQuestTag = questTagInfo.tagName .. " (" .. questInfo.suggestedGroup .. ")";
+ end
+
+ if (questTagInfo and questTagInfo.tagName == "Heroic") then
+ strQuestTag = "Heroic Dungeon";
+ end
+
+ if (questInfo.frequency == LE_QUEST_FREQUENCY_DAILY or questInfo.frequency == LE_QUEST_FREQUENCY_WEEKLY) then
+ strQuestTag = format(questInfo.frequency == LE_QUEST_FREQUENCY_DAILY and DAILY_QUEST_TAG_TEMPLATE or CALENDAR_REPEAT_WEEKLY, strQuestTag or ""):trim();
+ end
+
+
+ -- set owner of the tooltip
+ GameTooltip:SetOwner(self, "ANCHOR_NONE");
+
+
+ -- set the tooltip text
+ GameTooltip:SetText(questInfo.title, NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b, 1);
+ GameTooltip:AddLine(self.m_strQuestObjectives, GRAY_FONT_COLOR.r, GRAY_FONT_COLOR.g, GRAY_FONT_COLOR.b, 1);
+
+ if (strQuestTag ~= nil) then
+ GameTooltip:AddLine(strQuestTag, TOOLTIP_DEFAULT_COLOR.r, TOOLTIP_DEFAULT_COLOR.g, TOOLTIP_DEFAULT_COLOR.b, 1);
+ end
+
+ -- see if any nearby group mates are on this quest
+ local iNumPartyMembers = GetNumSubgroupMembers();
+ local isOnQuest, i;
+
+ for i = 1, iNumPartyMembers do
+ isOnQuest = C_QuestLog.IsUnitOnQuest("party" .. i, questInfo.questID);
+
+ if (isOnQuest == true) then
+ -- this member is on the quest
+ GameTooltip:AddLine(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strCompleteObjectiveColour .. UnitName("party" .. i));
+ else
+ -- this member isn't on the quest
+ GameTooltip:AddLine(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strInitialObjectiveColour .. UnitName("party" .. i));
+ end
+ end
+
+ if (IsShiftKeyDown()) then
+ GameTooltip:AddLine(questInfo.questID, 0, 0.65, 1);
+ end
+
+ -- put the tooltip in the specified position
+ GameTooltip:SetPoint("TOPRIGHT", self, "TOPRIGHT", -275, -1);
+
+ GameTooltip:Show();
+end
+
+function MonkeyQuestHideButton_OnLoad()
+
+end
+
+function MonkeyQuestHideButton_OnEnter(self, motion)
+ -- no noob tip?
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowNoobTips == false) then
+ return;
+ end
+
+ -- put the tool tip in the specified position
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor == "DEFAULT") then
+ GameTooltip_SetDefaultAnchor(GameTooltip, self);
+ else
+ GameTooltip:SetOwner(MonkeyQuestFrame, MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor);
+ end
+
+ -- set the tool tip text
+ GameTooltip:SetText(MONKEYQUEST_NOOBTIP_HEADER, TOOLTIP_DEFAULT_COLOR.r, TOOLTIP_DEFAULT_COLOR.g, TOOLTIP_DEFAULT_COLOR.b, 1);
+ GameTooltip:AddLine(MONKEYQUEST_NOOBTIP_HIDEBUTTON, NORMAL_FONT_COLOR.r, NORMAL_FONT_COLOR.g, NORMAL_FONT_COLOR.b, 1);
+
+ GameTooltip:Show();
+
+end
+
+function MonkeyQuestHideButton_OnClick(self, button, down)
+ -- if not loaded yet then get out
+ if (MonkeyQuest.m_bLoaded == false) then
+ return;
+ end
+
+ if (self:GetChecked()) then
+ PlaySound(SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_OFF);
+
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_aQuestList[self.m_strQuestLogTitleText].m_bChecked = true;
+
+ else
+ PlaySound(SOUNDKIT.IG_MAINMENU_OPTION_CHECKBOX_ON);
+
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_aQuestList[self.m_strQuestLogTitleText].m_bChecked = false;
+ end
+
+ MonkeyQuest_Refresh();
+ MonkeyQuestFrame:Show();
+ MonkeyQuest_Refresh();
+end
+
+function MonkeyQuest_PrintPoints()
+ if (DEFAULT_CHAT_FRAME) then
+ DEFAULT_CHAT_FRAME:AddMessage("Left: "..MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameLeft);
+ DEFAULT_CHAT_FRAME:AddMessage("Top: "..MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameTop);
+ DEFAULT_CHAT_FRAME:AddMessage("Bottom: "..MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameBottom);
+ end
+end
+
+function MonkeyQuestOptions()
+
+ if (GetAddOnDependencies("MonkeyBuddy") == nil) then
+
+ -- Create main frame for information text
+ local MonkeyQuestOptions = CreateFrame("FRAME", "MonkeyQuestOptions")
+ MonkeyQuestOptions.name = MONKEYQUEST_TITLE
+ InterfaceOptions_AddCategory(MonkeyQuestOptions)
+
+ function MonkeyQuestOptions.default()
+ MonkeyQuestInit_ResetConfig();
+ end
+
+ local MonkeyQuestOptionsText1 = MonkeyQuestOptions:CreateFontString(nil, "ARTWORK")
+ MonkeyQuestOptionsText1:SetFontObject(GameFontNormalLarge)
+ MonkeyQuestOptionsText1:SetJustifyH("LEFT")
+ MonkeyQuestOptionsText1:SetJustifyV("TOP")
+ MonkeyQuestOptionsText1:ClearAllPoints()
+ MonkeyQuestOptionsText1:SetPoint("TOPLEFT", 16, -16)
+ MonkeyQuestOptionsText1:SetText(MONKEYQUEST_TITLE_VERSION)
+
+ local MonkeyQuestOptionsText2 = MonkeyQuestOptions:CreateFontString(nil, "ARTWORK")
+ MonkeyQuestOptionsText2:SetFontObject(GameFontNormalSmall)
+ MonkeyQuestOptionsText2:SetJustifyH("LEFT")
+ MonkeyQuestOptionsText2:SetJustifyV("TOP")
+ MonkeyQuestOptionsText2:SetTextColor(1, 1, 1)
+ MonkeyQuestOptionsText2:ClearAllPoints()
+ MonkeyQuestOptionsText2:SetPoint("TOPLEFT", MonkeyQuestOptionsText1, "BOTTOMLEFT", 8, -16)
+ MonkeyQuestOptionsText2:SetWidth(340)
+ MonkeyQuestOptionsText2:SetText(MONKEYQUEST_OPTIONS1)
+
+ local MonkeyQuestOptionsText3 = MonkeyQuestOptions:CreateFontString(nil, "ARTWORK")
+ MonkeyQuestOptionsText3:SetFontObject(GameFontNormalLarge)
+ MonkeyQuestOptionsText3:SetJustifyH("LEFT")
+ MonkeyQuestOptionsText3:SetJustifyV("TOP")
+ MonkeyQuestOptionsText3:SetTextColor(1, 0.65, 0)
+ MonkeyQuestOptionsText3:ClearAllPoints()
+ MonkeyQuestOptionsText3:SetPoint("TOPLEFT", MonkeyQuestOptionsText2, "BOTTOMLEFT", 0, -16)
+ MonkeyQuestOptionsText3:SetWidth(340)
+ MonkeyQuestOptionsText3:SetText(MONKEYQUEST_OPTIONS2)
+
+ end
+
+end
\ No newline at end of file
diff --git a/MonkeyQuest/MonkeyQuest.toc b/MonkeyQuest/MonkeyQuest.toc
new file mode 100644
index 0000000..82039ac
--- /dev/null
+++ b/MonkeyQuest/MonkeyQuest.toc
@@ -0,0 +1,9 @@
+## Interface: 100002
+## Title: MonkeyQuest v10.0.2
+## Notes: Displays your quests for quick viewing. (http://www.toctastic.net/)
+## Notes-deDE: Stellt Quests in einer kompakten Uebersicht dar. (http://www.toctastic.net/)
+## Author: Trentin, Jim-Bim, azuraji
+## SavedVariables: MonkeyQuestConfig
+## Dependencies: MonkeyLibrary
+## OptionalDeps: aftt_extreme, BhaldieInfoBar
+MonkeyQuest.xml
diff --git a/MonkeyQuest/MonkeyQuest.xml b/MonkeyQuest/MonkeyQuest.xml
new file mode 100644
index 0000000..33fab82
--- /dev/null
+++ b/MonkeyQuest/MonkeyQuest.xml
@@ -0,0 +1,849 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MonkeyQuestHideButton_OnLoad();
+
+
+ MonkeyQuestHideButton_OnClick(self, button, down);
+
+
+ MonkeyQuest_OnEnter();
+ MonkeyQuestHideButton_OnEnter(self, motion);
+
+
+ MonkeyQuest_OnLeave();
+ GameTooltip:Hide();
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MonkeyQuest_OnEnter();
+ MonkeyQuestShowHiddenCheckButton_OnEnter(self, motion);
+
+
+ MonkeyQuest_OnLeave();
+ GameTooltip:Hide();
+
+
+ MonkeyQuestShowHiddenCheckButton_OnClick(self, button, down);
+
+
+
+
+
+
+
+ MonkeyQuest_OnLoad(self);
+
+
+ MonkeyQuest_OnUpdate(self, elapsed);
+
+
+ MonkeyQuest_OnEvent(self, event, ...);
+
+
+ MonkeyQuest_OnMouseDown(self, button);
+
+
+ MonkeyQuest_OnMouseUp(self, button);
+
+
+ MonkeyQuest_OnEnter();
+
+
+ MonkeyQuest_OnLeave();
+
+
+
+
\ No newline at end of file
diff --git a/MonkeyQuest/MonkeyQuestDefs.lua b/MonkeyQuest/MonkeyQuestDefs.lua
new file mode 100644
index 0000000..a408b24
--- /dev/null
+++ b/MonkeyQuest/MonkeyQuestDefs.lua
@@ -0,0 +1,58 @@
+-- default "constants" like #define in C :)
+MONKEYQUEST_DELAY = 0.3;
+MONKEYQUEST_PADDING = 25;
+MONKEYQUEST_MAX_BUTTONS = 50;
+
+-- default settings
+MONKEYQUEST_DEFAULT_CRASHCOLOUR = { r = 1.0, g = 0.6901960784313725, b = 0.0 };
+MONKEYQUEST_DEFAULT_ALPHA = 0.5;
+MONKEYQUEST_DEFAULT_HIGHLIGHT_ALPHA = 1.0;
+MONKEYQUEST_DEFAULT_FRAME_ALPHA = 1.0;
+MONKEYQUEST_DEFAULT_WIDTH = 255;
+MONKEYQUEST_DEFAULT_LEFT = 500;
+MONKEYQUEST_DEFAULT_TOP = 500;
+MONKEYQUEST_DEFAULT_BOTTOM = 539;
+MONKEYQUEST_DEFAULT_SHOWNOOBTIPS = true;
+MONKEYQUEST_DEFAULT_QUESTPADDING = 0;
+MONKEYQUEST_DEFAULT_SHOWZONEHIGHLIGHT = true;
+MONKEYQUEST_DEFAULT_SHOWQUESTLEVEL = true;
+MONKEYQUEST_DEFAULT_DISPLAY = true;
+MONKEYQUEST_DEFAULT_DEFAULTANCHOR = false;
+MONKEYQUEST_DEFAULT_ANCHOR = "ANCHOR_TOPLEFT";
+MONKEYQUEST_DEFAULT_OBJECTIVES = true;
+MONKEYQUEST_DEFAULT_MINIMIZED = false;
+MONKEYQUEST_DEFAULT_SHOWHIDDEN = false;
+MONKEYQUEST_DEFAULT_NOHEADERS = false;
+MONKEYQUEST_DEFAULT_ALWAYSHEADERS = false;
+MONKEYQUEST_DEFAULT_NOBORDER = false;
+MONKEYQUEST_DEFAULT_GROWUP = false;
+MONKEYQUEST_DEFAULT_SHOWNUMQUESTS = false;
+MONKEYQUEST_DEFAULT_SHOWDAILYNUMQUESTS = false;
+MONKEYQUEST_DEFAULT_LOCKED = false;
+MONKEYQUEST_DEFAULT_HIDECOMPLETEDQUESTS = false;
+MONKEYQUEST_DEFAULT_HIDECOMPLETEDOBJECTIVES = false;
+MONKEYQUEST_DEFAULT_ALLOWRIGHTCLICK = true;
+MONKEYQUEST_DEFAULT_SHOWTOOLTIPOBJECTIVES = true;
+MONKEYQUEST_DEFAULT_HIDETITLEBUTTONS = false;
+MONKEYQUEST_DEFAULT_HIDETITLE = false;
+MONKEYQUEST_DEFAULT_WORKCOMPLETE = true;
+MONKEYQUEST_DEFAULT_COLOURTITLE = false;
+MONKEYQUEST_DEFAULT_FONTHEIGHT = 12;
+MONKEYQUEST_DEFAULT_FONT = 0;
+MONKEYQUEST_DEFAULT_CRASHFONT = false;
+MONKEYQUEST_DEFAULT_CRASHBORDER = false;
+MONKEYQUEST_DEFAULT_LOCKBIB = false;
+MONKEYQUEST_DEFAULT_QUESTTITLECOLOUR = "|cFFFFFFFF";
+-- MONKEYQUEST_DEFAULT_HEADEROPENCOLOUR = "|cFFBFBFFF";
+MONKEYQUEST_DEFAULT_HEADEROPENCOLOUR = "|cFF9F9FFF";
+MONKEYQUEST_DEFAULT_HEADERCLOSEDCOLOUR = "|cFF9F9FFF";
+MONKEYQUEST_DEFAULT_OVERVIEWCOLOUR = "|cFF7F7F7F";
+MONKEYQUEST_DEFAULT_SPECIALOBJECTIVECOLOUR = "|cFFFFFF00";
+MONKEYQUEST_DEFAULT_INITIALOBJECTIVECOLOUR = "|cFFD82619";
+MONKEYQUEST_DEFAULT_MIDOBJECTIVECOLOUR = "|cFFFFFF00";
+MONKEYQUEST_DEFAULT_COMPLETEOBJECTIVECOLOUR = "|cFF00FF19";
+MONKEYQUEST_DEFAULT_FINISHOBJECTIVECOLOUR = "|cFF33DDFF";
+MONKEYQUEST_DEFAULT_ZONEHILIGHTCOLOUR = "|cff494961";
+MONKEYQUEST_DEFAULT_COLOURSUBOBJECTIVES = true;
+MONKEYQUEST_DEFAULT_ITEMSONLEFT = true;
+MONKEYQUEST_DEFAULT_HIDEHEADER = false;
diff --git a/MonkeyQuest/MonkeyQuestInit.lua b/MonkeyQuest/MonkeyQuestInit.lua
new file mode 100644
index 0000000..436b314
--- /dev/null
+++ b/MonkeyQuest/MonkeyQuestInit.lua
@@ -0,0 +1,442 @@
+function MonkeyQuestInit_LoadConfig()
+
+ -- double check that we aren't already loaded
+ if (MonkeyQuest.m_bLoaded == true) then
+ -- how did it even get here?
+ return;
+ end
+
+ -- double check that variables loaded event triggered, if not, exit
+ if (MonkeyQuest.m_bVariablesLoaded == false) then
+ return;
+ end
+
+ -- add the realm to the "player's name" for the config settings
+ MonkeyQuest.m_strPlayer = GetRealmName().."|"..MonkeyQuest.m_strPlayer;
+
+ -- check if the variable needs initializing
+ if (not MonkeyQuestConfig) then
+ MonkeyQuestConfig = {};
+ end
+
+ -- if there's not an entry for this
+ if (not MonkeyQuestConfig[MonkeyQuest.m_strPlayer]) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer] = {};
+ end
+
+ -- set the defaults if the variables don't exist
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bDisplay == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bDisplay = MONKEYQUEST_DEFAULT_DISPLAY;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor = MONKEYQUEST_DEFAULT_ANCHOR;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bObjectives == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bObjectives = MONKEYQUEST_DEFAULT_OBJECTIVES;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iAlpha == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iAlpha = MONKEYQUEST_DEFAULT_ALPHA;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iHighlightAlpha == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iHighlightAlpha = MONKEYQUEST_DEFAULT_HIGHLIGHT_ALPHA;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameAlpha == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameAlpha = MONKEYQUEST_DEFAULT_FRAME_ALPHA;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bMinimized == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bMinimized = MONKEYQUEST_DEFAULT_MINIMIZED;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_aQuestList == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_aQuestList = {};
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameWidth == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameWidth = MONKEYQUEST_DEFAULT_WIDTH;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowHidden == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowHidden = MONKEYQUEST_DEFAULT_SHOWHIDDEN;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bNoHeaders == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bNoHeaders = MONKEYQUEST_DEFAULT_NOHEADERS;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bAlwaysHeaders == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bAlwaysHeaders = MONKEYQUEST_DEFAULT_ALWAYSHEADERS;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bNoBorder == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bNoBorder = MONKEYQUEST_DEFAULT_NOBORDER;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bGrowUp == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bGrowUp = MONKEYQUEST_DEFAULT_GROWUP;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowNumQuests == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowNumQuests = MONKEYQUEST_DEFAULT_SHOWNUMQUESTS;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowDailyNumQuests == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowDailyNumQuests = MONKEYQUEST_DEFAULT_SHOWDAILYNUMQUESTS;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bLocked == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bLocked = MONKEYQUEST_DEFAULT_LOCKED;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideCompletedQuests == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideCompletedQuests = MONKEYQUEST_DEFAULT_HIDECOMPLETEDQUESTS;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideCompletedObjectives == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideCompletedObjectives = MONKEYQUEST_DEFAULT_HIDECOMPLETEDOBJECTIVES;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bAllowRightClick == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bAllowRightClick = MONKEYQUEST_DEFAULT_ALLOWRIGHTCLICK;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowTooltipObjectives == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowTooltipObjectives = MONKEYQUEST_DEFAULT_SHOWTOOLTIPOBJECTIVES;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideTitleButtons == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideTitleButtons = MONKEYQUEST_DEFAULT_HIDETITLEBUTTONS;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideTitle == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideTitle = MONKEYQUEST_DEFAULT_HIDETITLE;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bWorkComplete == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bWorkComplete = MONKEYQUEST_DEFAULT_WORKCOMPLETE;
+ end
+
+ -- colour config vars
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bColourTitle == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bColourTitle = MONKEYQUEST_DEFAULT_COLOURTITLE;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strQuestTitleColour == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strQuestTitleColour = MONKEYQUEST_DEFAULT_QUESTTITLECOLOUR;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strHeaderOpenColour == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strHeaderOpenColour = MONKEYQUEST_DEFAULT_HEADEROPENCOLOUR;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strHeaderClosedColour == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strHeaderClosedColour = MONKEYQUEST_DEFAULT_HEADERCLOSEDCOLOUR;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strOverviewColour == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strOverviewColour = MONKEYQUEST_DEFAULT_OVERVIEWCOLOUR;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strSpecialObjectiveColour == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strSpecialObjectiveColour = MONKEYQUEST_DEFAULT_SPECIALOBJECTIVECOLOUR;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strInitialObjectiveColour == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strInitialObjectiveColour = MONKEYQUEST_DEFAULT_INITIALOBJECTIVECOLOUR;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strMidObjectiveColour == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strMidObjectiveColour = MONKEYQUEST_DEFAULT_MIDOBJECTIVECOLOUR;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strCompleteObjectiveColour == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strCompleteObjectiveColour = MONKEYQUEST_DEFAULT_COMPLETEOBJECTIVECOLOUR;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strFinishObjectiveColour == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strFinishObjectiveColour = MONKEYQUEST_DEFAULT_FINISHOBJECTIVECOLOUR;
+ end
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strZoneHighlightColour == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strZoneHighlightColour = MONKEYQUEST_DEFAULT_ZONEHILIGHTCOLOUR;
+ end
+
+ -- font configs
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFontHeight == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFontHeight = MONKEYQUEST_DEFAULT_FONTHEIGHT;
+ end
+
+ -- Skinny font
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bCrashFont == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bCrashFont = MONKEYQUEST_DEFAULT_CRASHFONT;
+ end
+
+ -- Golden border
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bCrashBorder == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bCrashBorder = MONKEYQUEST_DEFAULT_CRASHBORDER;
+ end
+
+ -- Noob tips
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowNoobTips == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowNoobTips = MONKEYQUEST_DEFAULT_SHOWNOOBTIPS;
+ end
+
+ -- quest padding
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iQuestPadding == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iQuestPadding = MONKEYQUEST_DEFAULT_QUESTPADDING;
+ end
+
+ -- show zone highlight
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowZoneHighlight == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowZoneHighlight = MONKEYQUEST_DEFAULT_SHOWZONEHIGHLIGHT;
+ end
+
+ -- show quest levels in MonkeyQuest frame
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowQuestLevel == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowQuestLevel = MONKEYQUEST_DEFAULT_SHOWQUESTLEVEL;
+ end
+
+ -- BIB vars
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bLockBIB == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bLockBIB = MONKEYQUEST_DEFAULT_LOCKBIB;
+ end
+
+ -- force unlocked from bib if there is no bib
+ if (not IsAddOnLoaded("BhaldieInfoBar") and MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bLockBIB == true) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bLockBIB = false;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor = "ANCHOR_TOPLEFT";
+ end
+
+ -- All variables are loaded now
+ MonkeyQuest.m_bLoaded = true;
+
+ -- finally apply the settings
+ MonkeyQuestInit_ApplySettings();
+
+ -- Let the user know the mod is loaded
+ -- if (DEFAULT_CHAT_FRAME) then
+ -- DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_LOADED_MSG);
+ -- end
+end
+
+function MonkeyQuestInit_CleanQuestList()
+ -- make sure the hidden array is ready to go
+ local iNumEntries, iNumQuests = C_QuestLog.GetNumQuestLogEntries();
+
+ -- Remember the currently selected quest log entry
+ local tmpQuestLogSelection = C_QuestLog.GetSelectedQuest();
+
+ MonkeyQuest.m_iNumEntries = iNumEntries;
+
+ -- go through the quest list and m_aQuestList is initialized
+ for i = 1, iNumEntries, 1 do
+ -- strQuestLogTitleText the title text of the quest, may be a header (ex. Wetlands)
+ -- strQuestLevel the level of the quest
+ -- strQuestTag the tag on the quest (ex. COMPLETED)
+ local strQuestLogTitleText = C_QuestLog.GetTitleForLogIndex(i);
+
+ MonkeyQuest.m_aQuestList[strQuestLogTitleText] = {};
+
+ -- put the entry in the hidden list if it's not there already
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_aQuestList[strQuestLogTitleText] == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_aQuestList[strQuestLogTitleText] = {};
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_aQuestList[strQuestLogTitleText].m_bChecked = true;
+ end
+
+ MonkeyQuest.m_aQuestList[strQuestLogTitleText].m_bChecked =
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_aQuestList[strQuestLogTitleText].m_bChecked;
+ end
+
+ -- clean up the config hidden list
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_aQuestList = nil;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_aQuestList = {};
+
+
+ -- delete the objective list, we're about to rebuild it
+ MonkeyQuest.m_aQuestItemList = nil;
+ MonkeyQuest.m_aQuestItemList = {};
+
+
+ -- go through the quest list one more time and copy the entries from the temp list to the real list.
+ -- this gets rid of any list entries for quests the user doesn't have
+ for i = 1, iNumEntries, 1 do
+ -- strQuestLogTitleText the title text of the quest, may be a header (ex. Wetlands)
+ -- strQuestLevel the level of the quest
+ -- strQuestTag the tag on the quest (ex. COMPLETED)
+ local strQuestLogTitleText = C_QuestLog.GetTitleForLogIndex(i);
+
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_aQuestList[strQuestLogTitleText] = {};
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_aQuestList[strQuestLogTitleText].m_bChecked =
+ MonkeyQuest.m_aQuestList[strQuestLogTitleText].m_bChecked;
+
+
+ -- Select the quest log entry for other functions like GetNumQuestLeaderBoards()
+ C_QuestLog.SetSelectedQuest(i);
+
+ -- here's a good place to create the objective list
+ if (GetNumQuestLeaderBoards() > 0) then
+ for ii = 1, GetNumQuestLeaderBoards(), 1 do
+ --local string = getglobal("QuestLogObjective"..ii);
+ local strLeaderBoardText, strType, iFinished = GetQuestLogLeaderBoard(ii);
+
+ MonkeyQuest_AddQuestItemToList(strLeaderBoardText);
+ end
+ end
+ end
+
+ -- Restore the currently quest log selection
+ C_QuestLog.SetSelectedQuest(tmpQuestLogSelection);
+
+ -- kill it
+ MonkeyQuest.m_aQuestList = nil;
+end
+
+function MonkeyQuestInit_ResetConfig()
+
+ -- reset all the config variables to the defaults, but keep the hidden list intact
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iAlpha = MONKEYQUEST_DEFAULT_ALPHA;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameAlpha = MONKEYQUEST_DEFAULT_FRAME_ALPHA;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameWidth = MONKEYQUEST_DEFAULT_WIDTH;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameLeft = MONKEYQUEST_DEFAULT_LEFT;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameTop = MONKEYQUEST_DEFAULT_TOP;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameBottom = MONKEYQUEST_DEFAULT_BOTTOM;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iQuestPadding = MONKEYQUEST_DEFAULT_QUESTPADDING;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowZoneHighlight = MONKEYQUEST_DEFAULT_SHOWZONEHIGHLIGHT;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowQuestLevel = MONKEYQUEST_DEFAULT_SHOWQUESTLEVEL;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bDisplay = MONKEYQUEST_DEFAULT_DISPLAY;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bDefaultAnchor = MONKEYQUEST_DEFAULT_DEFAULTANCHOR;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor = MONKEYQUEST_DEFAULT_ANCHOR;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bObjectives = MONKEYQUEST_DEFAULT_OBJECTIVES;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bMinimized = MONKEYQUEST_DEFAULT_MINIMIZED;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowHidden = MONKEYQUEST_DEFAULT_SHOWHIDDEN;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bNoHeaders = MONKEYQUEST_DEFAULT_NOHEADERS;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bAlwaysHeaders = MONKEYQUEST_DEFAULT_ALWAYSHEADERS;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bNoBorder = MONKEYQUEST_DEFAULT_NOBORDER;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bGrowUp = MONKEYQUEST_DEFAULT_GROWUP;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowNumQuests = MONKEYQUEST_DEFAULT_SHOWNUMQUESTS;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowDailyNumQuests = MONKEYQUEST_DEFAULT_SHOWDAILYNUMQUESTS;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bLocked = MONKEYQUEST_DEFAULT_LOCKED;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideCompletedQuests = MONKEYQUEST_DEFAULT_HIDECOMPLETEDQUESTS;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideCompletedObjectives = MONKEYQUEST_DEFAULT_HIDECOMPLETEDOBJECTIVES;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bAllowRightClick = MONKEYQUEST_DEFAULT_ALLOWRIGHTCLICK;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowTooltipObjectives = MONKEYQUEST_DEFAULT_SHOWTOOLTIPOBJECTIVES;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideTitleButtons = MONKEYQUEST_DEFAULT_HIDETITLEBUTTONS;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideTitle = MONKEYQUEST_DEFAULT_HIDETITLE;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bWorkComplete = MONKEYQUEST_DEFAULT_WORKCOMPLETE;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bColourTitle = MONKEYQUEST_DEFAULT_COLOURTITLE;
+
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFontHeight = MONKEYQUEST_DEFAULT_FONTHEIGHT;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bCrashFont = MONKEYQUEST_DEFAULT_CRASHFONT;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bCrashBorder = MONKEYQUEST_DEFAULT_CRASHBORDER;
+
+ -- noob tips
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowNoobTips = MONKEYQUEST_DEFAULT_SHOWNOOBTIPS;
+
+ -- BhaldieInfoBar
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bLockBIB = MONKEYQUEST_DEFAULT_LOCKBIB;
+
+ -- colours
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strQuestTitleColour = MONKEYQUEST_DEFAULT_QUESTTITLECOLOUR;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strHeaderOpenColour = MONKEYQUEST_DEFAULT_HEADEROPENCOLOUR;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strHeaderClosedColour = MONKEYQUEST_DEFAULT_HEADERCLOSEDCOLOUR;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strOverviewColour = MONKEYQUEST_DEFAULT_OVERVIEWCOLOUR;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strSpecialObjectiveColour = MONKEYQUEST_DEFAULT_SPECIALOBJECTIVECOLOUR;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strMidObjectiveColour = MONKEYQUEST_DEFAULT_MIDOBJECTIVECOLOUR;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strInitialObjectiveColour = MONKEYQUEST_DEFAULT_INITIALOBJECTIVECOLOUR;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strCompleteObjectiveColour = MONKEYQUEST_DEFAULT_COMPLETEOBJECTIVECOLOUR;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strFinishObjectiveColour = MONKEYQUEST_DEFAULT_FINISHOBJECTIVECOLOUR;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strZoneHighlightColour = MONKEYQUEST_DEFAULT_ZONEHILIGHTCOLOUR;
+
+ -- finally apply the settings
+ MonkeyQuestInit_ApplySettings();
+end
+
+function MonkeyQuestInit_Font(bCrashFont)
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bCrashFont = bCrashFont;
+
+ if (not bCrashFont) then
+ -- Default look
+
+ -- change the fonts
+ MonkeyQuestInit_SetButtonFonts("Interface\\AddOns\\MonkeyLibrary\\Fonts\\framd.ttf", MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFontHeight);
+ --MonkeyQuestTitleText:SetFont("Fonts\\FRIZQT__.TTF", MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFontHeight + 2);
+
+ else
+ -- crash font
+
+ --MonkeyQuestTitleText:SetFont("Interface\\AddOns\\MonkeyLibrary\\Fonts\\adventure.ttf", MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFontHeight + 2);
+ MonkeyQuestInit_SetButtonFonts("Interface\\AddOns\\MonkeyLibrary\\Fonts\\myriapsc.ttf", MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFontHeight);
+
+ end
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+
+ MonkeyQuest_Refresh();
+
+end
+
+function MonkeyQuestInit_Border(bCrashBorder)
+
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bCrashBorder = bCrashBorder;
+
+ if (bCrashBorder) then
+
+ -- change the border colour
+ MonkeyQuest.m_colourBorder.r = MONKEYQUEST_DEFAULT_CRASHCOLOUR.r;
+ MonkeyQuest.m_colourBorder.g = MONKEYQUEST_DEFAULT_CRASHCOLOUR.g;
+ MonkeyQuest.m_colourBorder.b = MONKEYQUEST_DEFAULT_CRASHCOLOUR.b;
+
+ else
+ -- Default look
+ -- change the border colour
+ MonkeyQuest.m_colourBorder.r = TOOLTIP_DEFAULT_COLOR.r;
+ MonkeyQuest.m_colourBorder.g = TOOLTIP_DEFAULT_COLOR.g;
+ MonkeyQuest.m_colourBorder.b = TOOLTIP_DEFAULT_COLOR.b;
+
+ end
+
+ -- set the border
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bNoBorder == true) then
+ MonkeyQuestFrame:SetBackdropBorderColor(0.0, 0.0, 0.0, 0.0);
+ else
+ MonkeyQuestFrame:SetBackdropBorderColor(MonkeyQuest.m_colourBorder.r, MonkeyQuest.m_colourBorder.g, MonkeyQuest.m_colourBorder.b, 1.0);
+ end
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestInit_SetButtonFonts(strFontName, iFontHeight)
+ local i = 0;
+
+ -- set the font for all buttons
+ for i = 1, MonkeyQuest.m_iNumQuestButtons, 1 do
+ _G["MonkeyQuestButton" .. i .. "Text"]:SetFont(strFontName, iFontHeight);
+ end
+end
+
+function MonkeyQuestInit_ApplySettings()
+
+ -- init the look
+ MonkeyQuestInit_Font(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFont);
+ MonkeyQuestInit_Border(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bCrashBorder);
+
+ -- show or hide the main frame
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bDisplay == true) then
+ MonkeyQuestFrame:Show();
+ else
+ MonkeyQuestFrame:Hide();
+ end
+
+ -- make sure the minimize button has the right texture
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bMinimized == true) then
+ MonkeyQuestMinimizeButton:SetNormalTexture("Interface\\AddOns\\MonkeyLibrary\\Textures\\MinimizeButton-Down");
+ else
+ MonkeyQuestMinimizeButton:SetNormalTexture("Interface\\AddOns\\MonkeyLibrary\\Textures\\MinimizeButton-Up");
+ end
+
+ -- show or hide the title buttons
+ MonkeyQuestSlash_CmdHideTitleButtons(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideTitleButtons);
+
+ -- set the alpha
+ MonkeyQuest_SetAlpha(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iAlpha);
+ MonkeyQuest_SetFrameAlpha(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameAlpha);
+
+ -- set the border
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bNoBorder == true) then
+ MonkeyQuestFrame:SetBackdropBorderColor(0.0, 0.0, 0.0, 0.0);
+ else
+ MonkeyQuestFrame:SetBackdropBorderColor(MonkeyQuest.m_colourBorder.r, MonkeyQuest.m_colourBorder.g, MonkeyQuest.m_colourBorder.b, 1.0);
+ end
+
+ -- set the width
+ MonkeyQuestFrame:SetWidth(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameWidth);
+
+ -- set the quest padding
+ MonkeyQuestSlash_CmdSetQuestPadding(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iQuestPadding);
+
+ -- finally refresh the quest list
+ MonkeyQuest_Refresh();
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
diff --git a/MonkeyQuest/MonkeyQuestSlash.lua b/MonkeyQuest/MonkeyQuestSlash.lua
new file mode 100644
index 0000000..ae1b3fa
--- /dev/null
+++ b/MonkeyQuest/MonkeyQuestSlash.lua
@@ -0,0 +1,900 @@
+-- define the dialog box for reseting config
+StaticPopupDialogs["MONKEYQUEST_RESET"] = {
+ text = MONKEYQUEST_CONFIRM_RESET,
+ button1 = OKAY,
+ button2 = CANCEL,
+ OnAccept = function()
+ MonkeyQuestInit_ResetConfig();
+ if (DEFAULT_CHAT_FRAME) then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_RESET_MSG);
+ end
+ end,
+ timeout = 0,
+ exclusive = 1
+};
+
+-- function to register all the slash commands
+function MonkeyQuestSlash_Init()
+ -- this command toggles the Quest Monkey display
+ SlashCmdList["MONKEYQUEST_DISPLAY"] = MonkeyQuestSlash_Parse;
+ SLASH_MONKEYQUEST_DISPLAY1 = "/monkeyquest";
+ SLASH_MONKEYQUEST_DISPLAY2 = "/mquest";
+end
+
+function MonkeyQuestSlash_Parse(msg)
+ -- if not loaded yet then get out
+ if (MonkeyQuest.m_bLoaded == false) then
+ return;
+ end
+
+ if (msg == nil or msg == "" or string.find(msg, "help") ~= nil) then
+ local i, j = string.find(msg, "help");
+
+ if (i ~= nil) then
+ MonkeyQuestSlash_CmdHelp(string.lower(string.sub(msg, j + 2)));
+ return;
+ end
+
+ MonkeyQuestSlash_CmdHelp();
+ return;
+ end
+ if (string.lower(msg) == "reset") then
+ MonkeyQuestSlash_CmdReset();
+ return;
+ end
+ if (string.lower(msg) == "open") then
+ MonkeyQuestSlash_CmdOpen(true);
+ return;
+ end
+ if (string.lower(msg) == "close") then
+ MonkeyQuestSlash_CmdOpen(false);
+ return;
+ end
+ if (string.lower(msg) == "showhidden") then
+ MonkeyQuestSlash_CmdShowHidden(true);
+ return;
+ end
+ if (string.lower(msg) == "hidehidden") then
+ MonkeyQuestSlash_CmdShowHidden(false);
+ return;
+ end
+ if (string.lower(msg) == "useoverviews") then
+ MonkeyQuestSlash_CmdUseOverviews(true);
+ return;
+ end
+ if (string.lower(msg) == "nooverviews") then
+ MonkeyQuestSlash_CmdUseOverviews(false);
+ return;
+ end
+ if (string.lower(msg) == "hideheaders") then
+ MonkeyQuestSlash_CmdHideHeaders(true);
+ return;
+ end
+ if (string.lower(msg) == "showheaders") then
+ MonkeyQuestSlash_CmdHideHeaders(false);
+ return;
+ end
+ if (string.lower(msg) == "hideborder") then
+ MonkeyQuestSlash_CmdHideBorder(true);
+ return;
+ end
+ if (string.lower(msg) == "showborder") then
+ MonkeyQuestSlash_CmdHideBorder(false);
+ return;
+ end
+ if (string.lower(msg) == "growup") then
+ MonkeyQuestSlash_CmdGrowUp(true);
+ return;
+ end
+ if (string.lower(msg) == "growdown") then
+ MonkeyQuestSlash_CmdGrowUp(false);
+ return;
+ end
+ if (string.find(msg, "alpha") ~= nil) then
+ local i, j = string.find(msg, "%d+");
+
+ if (i ~= nil) then
+ MonkeyQuestSlash_CmdAlpha(tonumber(string.sub(msg, i, j), 10));
+ end
+ return;
+ end
+ if (string.find(msg, "width") ~= nil) then
+ local i, j = string.find(msg, "%d+");
+
+ if (i ~= nil) then
+ MonkeyQuestSlash_CmdWidth(tonumber(string.sub(msg, i, j), 10));
+ end
+ return;
+ end
+ if (string.find(msg, "fontheight") ~= nil) then
+ local i, j = string.find(msg, "%d+");
+
+ if (i ~= nil) then
+ MonkeyQuestSlash_CmdFontHeight(tonumber(string.sub(msg, i, j), 10));
+ end
+ return;
+ end
+ if (string.find(msg, "tipanchor") ~= nil) then
+ local i, j = string.find(msg, "=");
+
+ if (i ~= nil) then
+ MonkeyQuestSlash_CmdTipAnchor(string.sub(msg, i + 1));
+ end
+ return;
+ end
+ if (string.lower(msg) == "shownumquests") then
+ MonkeyQuestSlash_CmdShowNumQuests(true);
+ return;
+ end
+ if (string.lower(msg) == "hidenumquests") then
+ MonkeyQuestSlash_CmdShowNumQuests(false);
+ return;
+ end
+ if (string.lower(msg) == "lock") then
+ MonkeyQuestSlash_CmdLock(true);
+ return;
+ end
+ if (string.lower(msg) == "unlock") then
+ MonkeyQuestSlash_CmdLock(false);
+ return;
+ end
+ if (string.lower(msg) == "colourtitleon" or string.lower(msg) == "colortitleon") then
+ MonkeyQuestSlash_CmdColourTitleOn(true);
+ return;
+ end
+ if (string.lower(msg) == "colourtitleoff" or string.lower(msg) == "colortitleoff") then
+ MonkeyQuestSlash_CmdColourTitleOn(false);
+ return;
+ end
+ if (string.lower(msg) == "hidecompletedquests") then
+ MonkeyQuestSlash_CmdHideCompletedQuests(true);
+ return;
+ end
+ if (string.lower(msg) == "showcompletedquests") then
+ MonkeyQuestSlash_CmdHideCompletedQuests(false);
+ return;
+ end
+ if (string.lower(msg) == "hidecompletedobjectives") then
+ MonkeyQuestSlash_CmdHideCompletedObjectives(true);
+ return;
+ end
+ if (string.lower(msg) == "showcompletedobjectives") then
+ MonkeyQuestSlash_CmdHideCompletedObjectives(false);
+ return;
+ end
+ if (string.lower(msg) == "showtooltipobjectives") then
+ MonkeyQuestSlash_CmdShowTooltipObjectives(true);
+ return;
+ end
+ if (string.lower(msg) == "hidetooltipobjectives") then
+ MonkeyQuestSlash_CmdShowTooltipObjectives(false);
+ return;
+ end
+ if (string.lower(msg) == "allowrightclick") then
+ MonkeyQuestSlash_CmdAllowRightClick(true);
+ return;
+ end
+ if (string.lower(msg) == "disallowrightclick") then
+ MonkeyQuestSlash_CmdAllowRightClick(false);
+ return;
+ end
+ if (string.lower(msg) == "hidetitlebuttons") then
+ MonkeyQuestSlash_CmdHideTitleButtons(true);
+ return;
+ end
+ if (string.lower(msg) == "showtitlebuttons") then
+ MonkeyQuestSlash_CmdHideTitleButtons(false);
+ return;
+ end
+ if (string.lower(msg) == "hidetitle") then
+ MonkeyQuestSlash_CmdHideTitle(true);
+ return;
+ end
+ if (string.lower(msg) == "showtitle") then
+ MonkeyQuestSlash_CmdHideTitle(false);
+ return;
+ end
+ if (string.lower(msg) == "allowworkcomplete") then
+ MonkeyQuestSlash_CmdWorkComplete(true);
+ return;
+ end
+ if (string.lower(msg) == "disallowworkcomplete") then
+ MonkeyQuestSlash_CmdWorkComplete(false);
+ return;
+ end
+
+ -- didn't match any others, print out the help msg
+ MonkeyQuestSlash_CmdHelp();
+end
+
+function MonkeyQuestSlash_CmdHelp(strCommand)
+ if (not DEFAULT_CHAT_FRAME) then
+ return;
+ end
+
+ if (strCommand == nil) then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_MSG);
+ return;
+ end
+ if (strCommand == "reset") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_RESET_MSG);
+ return;
+ end
+ if (strCommand == "open") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_OPEN_MSG);
+ return;
+ end
+ if (strCommand == "close") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_CLOSE_MSG);
+ return;
+ end
+ if (strCommand == "showhidden") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_SHOWHIDDEN_MSG);
+ return;
+ end
+ if (strCommand == "hidehidden") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_HIDEHIDDEN_MSG);
+ return;
+ end
+ if (strCommand == "useoverviews") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_USEOVERVIEWS_MSG);
+ return;
+ end
+ if (strCommand == "nooverviews") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_NOOVERVIEWS_MSG);
+ return;
+ end
+ if (strCommand == "tipanchor") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_TIPANCHOR_MSG);
+ return;
+ end
+ if (strCommand == "alpha") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_ALPHA_MSG);
+ return;
+ end
+ if (strCommand == "width") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_WIDTH_MSG);
+ return;
+ end
+ if (strCommand == "fontheight") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_FONTHEIGHT_MSG);
+ return;
+ end
+ if (strCommand == "hideheaders") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_HIDEHEADERS_MSG);
+ return;
+ end
+ if (strCommand == "showheaders") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_SHOWHEADERS_MSG);
+ return;
+ end
+ if (strCommand == "hideborder") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_HIDEBORDER_MSG);
+ return;
+ end
+ if (strCommand == "showborder") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_SHOWBORDER_MSG);
+ return;
+ end
+ if (strCommand == "growup") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_GROWUP_MSG);
+ return;
+ end
+ if (strCommand == "growdown") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_GROWDOWN_MSG);
+ return;
+ end
+ if (strCommand == "hidenumquests") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_HIDENUMQUESTS_MSG);
+ return;
+ end
+ if (strCommand == "shownumquests") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_SHOWNUMQUESTS_MSG);
+ return;
+ end
+ if (strCommand == "lock") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_LOCK_MSG);
+ return;
+ end
+ if (strCommand == "unlock") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_UNLOCK_MSG);
+ return;
+ end
+ if (strCommand == "colourtitleon" or strCommand == "colortitleon") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_COLOURTITLEON_MSG);
+ return;
+ end
+ if (strCommand == "colourtitleoff" or strCommand == "colortitleoff") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_COLOURTITLEOFF_MSG);
+ return;
+ end
+ if (strCommand == "hidecompletedquests") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_HIDECOMPLETEDQUESTS_MSG);
+ return;
+ end
+ if (strCommand == "showcompletedquests") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_SHOWCOMPLETEDQUESTS_MSG);
+ return;
+ end
+ if (strCommand == "hidecompletedobjectives") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_HIDECOMPLETEDOBJECTIVES_MSG);
+ return;
+ end
+ if (strCommand == "showcompletedobjectives") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_SHOWCOMPLETEDOBJECTIVES_MSG);
+ return;
+ end
+ if (strCommand == "fontheight") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_FONTHEIGHT_MSG);
+ return;
+ end
+ if (strCommand == "showtooltipobjectives") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_SHOWTOOLTIPOBJECTIVES_MSG);
+ return;
+ end
+ if (strCommand == "hidetooltipobjectives") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_HIDETOOLTIPOBJECTIVES_MSG);
+ return;
+ end
+ if (strCommand == "allowrightclick") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_ALLOWRIGHTCLICK_MSG);
+ return;
+ end
+ if (strCommand == "disallowrightclick") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_DISALLOWRIGHTCLICK_MSG);
+ return;
+ end
+ if (strCommand == "hidetitlebuttons") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_HIDETITLEBUTTONS_MSG);
+ return;
+ end
+ if (strCommand == "showtitlebuttons") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_SHOWTITLEBUTTONS_MSG);
+ return;
+ end
+ if (strCommand == "allowworkcomplete") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_ALLOWWORKCOMPLETE_MSG);
+ return;
+ end
+ if (strCommand == "disallowworkcomplete") then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_DISALLOWWORKCOMPLETE_MSG);
+ return;
+ end
+
+ -- made it to the end just print the default help
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_HELP_MSG);
+end
+
+function MonkeyQuestSlash_CmdReset()
+ StaticPopup_Show("MONKEYQUEST_RESET");
+end
+
+function MonkeyQuestSlash_CmdOpen(bOpen)
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bDisplay = bOpen;
+
+ if (bOpen == true) then
+ MonkeyQuest_Show();
+ else
+ MonkeyQuest_Hide();
+ end
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_CmdShowHidden(bShow)
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowHidden = bShow;
+ MonkeyQuest_Refresh();
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_CmdUseOverviews(bOverviews)
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bObjectives = bOverviews;
+ MonkeyQuest_Refresh();
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_CmdHideHeaders(bHide)
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bNoHeaders = bHide;
+ MonkeyQuest_Refresh();
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_CmdAlwaysHeaders(bAlways)
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bAlwaysHeaders = bAlways;
+ MonkeyQuest_Refresh();
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_CmdHideBorder(bNoBorder)
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bNoBorder = bNoBorder;
+
+ if (bNoBorder == true) then
+ MonkeyQuestFrame:SetBackdropBorderColor(0.0, 0.0, 0.0, 0.0);
+ elseif (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bCrashBorder == true) then
+ MonkeyQuestFrame:SetBackdropBorderColor(MONKEYQUEST_DEFAULT_CRASHCOLOUR.r, MONKEYQUEST_DEFAULT_CRASHCOLOUR.g, MONKEYQUEST_DEFAULT_CRASHCOLOUR.b, 1.0);
+ else
+ MonkeyQuestFrame:SetBackdropBorderColor(TOOLTIP_DEFAULT_COLOR.r, TOOLTIP_DEFAULT_COLOR.g, TOOLTIP_DEFAULT_COLOR.b, 1.0);
+ end
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_CmdGrowUp(bGrowUp)
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bGrowUp = bGrowUp;
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_CmdAlpha(iAlpha)
+ if (iAlpha >= 0 and iAlpha <= 255) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iAlpha = iAlpha / 255;
+ MonkeyQuest_SetAlpha(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iAlpha);
+ end
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_CmdWidth(iWidth)
+ if (iWidth >= 200 and iWidth <= 600) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameWidth = iWidth;
+ MonkeyQuestFrame:SetWidth(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameWidth);
+ MonkeyQuest_Refresh();
+ end
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_CmdFontHeight(iHeight)
+ if (iHeight >= 8 and iHeight <= 48) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFontHeight = iHeight;
+
+ MonkeyQuest_Refresh();
+
+ -- little fix for when changing the font size
+ MonkeyQuestFrame:SetScale(2);
+ MonkeyQuestFrame:SetScale(1);
+ end
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_CmdTipAnchor(strAnchor)
+ if (strAnchor == nil) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor = "DEFAULT";
+ return;
+ end
+
+ -- let's check that it's a valid anchor before setting it
+ if (string.upper(strAnchor) == "ANCHOR_TOPLEFT") then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor = string.upper(strAnchor);
+ return;
+ end
+ if (string.upper(strAnchor) == "ANCHOR_TOPRIGHT") then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor = string.upper(strAnchor);
+ return;
+ end
+ if (string.upper(strAnchor) == "ANCHOR_TOP") then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor = string.upper(strAnchor);
+ return;
+ end
+ if (string.upper(strAnchor) == "ANCHOR_LEFT") then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor = string.upper(strAnchor);
+ return;
+ end
+ if (string.upper(strAnchor) == "ANCHOR_RIGHT") then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor = string.upper(strAnchor);
+ return;
+ end
+ if (string.upper(strAnchor) == "ANCHOR_BOTTOMLEFT") then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor = string.upper(strAnchor);
+ return;
+ end
+ if (string.upper(strAnchor) == "ANCHOR_BOTTOMRIGHT") then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor = string.upper(strAnchor);
+ return;
+ end
+ if (string.upper(strAnchor) == "ANCHOR_BOTTOM") then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor = string.upper(strAnchor);
+ return;
+ end
+ if (string.upper(strAnchor) == "ANCHOR_CURSOR") then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor = string.upper(strAnchor);
+ return;
+ end
+ if (string.upper(strAnchor) == "DEFAULT") then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor = string.upper(strAnchor);
+ return;
+ end
+ if (string.upper(strAnchor) == "NONE") then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor = string.upper(strAnchor);
+ return;
+ end
+
+ -- bad input or default, set it to the default position
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor = "ANCHOR_TOPLEFT";
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_CmdShowNumQuests(bShowNumQuests)
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowNumQuests = bShowNumQuests;
+ MonkeyQuest_Refresh();
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_CmdLock(bLocked)
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bLocked = bLocked;
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_CmdColourTitleOn(bColourTitle)
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bColourTitle = bColourTitle;
+ MonkeyQuest_Refresh();
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_CmdHideCompletedQuests(bHide)
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideCompletedQuests = bHide;
+ MonkeyQuest_Refresh();
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_CmdHideCompletedObjectives(bHide)
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideCompletedObjectives = bHide;
+ MonkeyQuest_Refresh();
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_CmdShowTooltipObjectives(bShow)
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowTooltipObjectives = bShow;
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_CmdAllowRightClick(bAllow)
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bAllowRightClick = bAllow;
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_CmdHideTitleButtons(bHide)
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideTitleButtons = bHide;
+
+ if (bHide == true) then
+ MonkeyQuestCloseButton:Hide();
+ MonkeyQuestMinimizeButton:Hide();
+ MonkeyQuestShowHiddenCheckButton:Hide();
+ else
+ MonkeyQuestCloseButton:Show();
+ MonkeyQuestMinimizeButton:Show();
+ MonkeyQuestShowHiddenCheckButton:Show();
+ end
+
+ -- check for MonkeyBuddy
+
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_CmdHideTitle(bHide)
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bHideTitle = bHide;
+ MonkeyQuest_Refresh();
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_CmdWorkComplete(bWork)
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bWorkComplete = bWork;
+ MonkeyQuest_Refresh();
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_ToggleDisplay()
+ -- if not loaded yet then get out
+ if (MonkeyQuest.m_bLoaded == false) then
+ return;
+ end
+
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bDisplay) then
+ MonkeyQuest_Hide();
+ else
+ MonkeyQuest_Show();
+ end
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_ToggleShowHidden()
+ -- if not loaded yet then get out
+ if (MonkeyQuest.m_bLoaded == false) then
+ return;
+ end
+
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowHidden = not MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowHidden;
+
+ MonkeyQuest_Refresh();
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_ToggleObjectives()
+ -- if not loaded yet then get out
+ if (MonkeyQuest.m_bLoaded == false) then
+ return;
+ end
+
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bObjectives = not MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bObjectives;
+
+ MonkeyQuest_Refresh();
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_ToggleAnchor()
+
+ -- if not loaded yet then get out
+ if (MonkeyQuest.m_bLoaded == false) then
+ return;
+ end
+
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bDefaultAnchor == true) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bDefaultAnchor = false;
+
+ else
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor == "ANCHOR_BOTTOMRIGHT") then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor = "ANCHOR_BOTTOMLEFT";
+
+ elseif (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor == "ANCHOR_BOTTOMLEFT") then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor = "ANCHOR_TOPLEFT";
+
+ elseif (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor == "ANCHOR_TOPLEFT") then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor = "ANCHOR_LEFT";
+
+ elseif (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor == "ANCHOR_LEFT") then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor = "ANCHOR_CURSOR";
+
+ elseif (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor == "ANCHOR_CURSOR") then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bDefaultAnchor = true;
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_strAnchor = "ANCHOR_BOTTOMRIGHT";
+
+ end
+ end
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_Alpha(msg)
+ -- if not loaded yet then get out
+ if (MonkeyQuest.m_bLoaded == false) then
+ return;
+ end
+
+ if (not(tonumber(msg, 10) == nil)) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iAlpha = tonumber(msg, 10);
+ else
+ -- set it to the default
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iAlpha = MONKEYQUEST_DEFAULT_ALPHA;
+ end
+
+ MonkeyQuest_SetAlpha(MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iAlpha);
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_Width(msg)
+ -- if not loaded yet then get out
+ if (MonkeyQuest.m_bLoaded == false) then
+ return;
+ end
+
+ if (not(tonumber(msg, 10) == nil)) then
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameWidth = tonumber(msg, 10);
+ else
+ -- set it to the default
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iFrameWidth = MONKEYQUEST_DEFAULT_WIDTH;
+ end
+
+ MonkeyQuest_Refresh();
+
+ -- Let the user know they might have to reload the ui
+ if (DEFAULT_CHAT_FRAME) then
+ DEFAULT_CHAT_FRAME:AddMessage(MONKEYQUEST_SET_WIDTH_MSG);
+ end
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_ToggleNoHeaders()
+ -- if not loaded yet then get out
+ if (MonkeyQuest.m_bLoaded == false) then
+ return;
+ end
+
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bNoHeaders = not MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bNoHeaders;
+
+ MonkeyQuest_Refresh();
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_ToggleNoBorder()
+ -- if not loaded yet then get out
+ if (MonkeyQuest.m_bLoaded == false) then
+ return;
+ end
+
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bNoBorder = not MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bNoBorder;
+
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bNoBorder == true) then
+ MonkeyQuestFrame:SetBackdropBorderColor(0.0, 0.0, 0.0, 0.0);
+ elseif (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bCrashBorder == false) then
+ MonkeyQuestFrame:SetBackdropBorderColor(TOOLTIP_DEFAULT_COLOR.r, TOOLTIP_DEFAULT_COLOR.g, TOOLTIP_DEFAULT_COLOR.b, 1.0);
+ else
+ MonkeyQuestFrame:SetBackdropBorderColor(MONKEYQUEST_DEFAULT_CRASHCOLOUR.r, MONKEYQUEST_DEFAULT_CRASHCOLOUR.g, MONKEYQUEST_DEFAULT_CRASHCOLOUR.b, 1.0);
+ end
+
+ --MonkeyQuest_Refresh();
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_ToggleGrow()
+ -- if not loaded yet then get out
+ if (MonkeyQuest.m_bLoaded == false) then
+ return;
+ end
+
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bGrowUp = not MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bGrowUp;
+
+ MonkeyQuest_Refresh();
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_CmdShowNoobTips(bShowNoobTips)
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowNoobTips = bShowNoobTips;
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_CmdSetQuestPadding(iPadding)
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_iQuestPadding = iPadding;
+
+ local i = 2;
+
+ -- loop through ALL the quest button and apply the padding
+ for i = 2, MONKEYQUEST_MAX_BUTTONS, 1 do
+ _G["MonkeyQuestButton" .. i]:SetPoint("TOPLEFT", "MonkeyQuestButton" .. (i - 1), "BOTTOMLEFT", 0, -iPadding);
+ end
+
+ -- resize MonkeyQuest
+ MonkeyQuest_Resize();
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_CmdShowZoneHighlight(bShowZoneHighlight)
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowZoneHighlight = bShowZoneHighlight;
+
+ MonkeyQuest_Refresh();
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
+
+function MonkeyQuestSlash_CmdShowQuestLevel(bShowQuestLevel)
+ MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowQuestLevel = bShowQuestLevel;
+
+ MonkeyQuest_Refresh();
+
+ -- check for MonkeyBuddy
+ if (MonkeyBuddyQuestFrame_Refresh ~= nil) then
+ MonkeyBuddyQuestFrame_Refresh();
+ end
+end
diff --git a/MonkeyQuest/MonkeyQuestTooltip.lua b/MonkeyQuest/MonkeyQuestTooltip.lua
new file mode 100644
index 0000000..f49f6cc
--- /dev/null
+++ b/MonkeyQuest/MonkeyQuestTooltip.lua
@@ -0,0 +1,231 @@
+-- this function catches the aftooltip extreme function for setting the mouse over unit's name
+function MonkeyQuest_NEW_aftt_setName(unit)
+ --return false;
+
+ -- call the original aftt setName function
+ --MonkeyQuest_OLD_aftt_setName(unit);
+
+ -- Overwrite the aftt text with the quest objective completeness, if needed
+ -- MonkeyQuest_SearchTooltip();
+end
+
+-- this function catches the bag mouse over tooltip event
+function YourSetBagItem(self, bag, slot)
+ --return false;
+
+
+ --isQuest = GetContainerItemQuestInfo(bag, slot)
+
+ --print(isQuest);
+
+
+ --local itemLink;
+
+ --_, itemLink = GameTooltip:GetItem();
+
+
+ --a, b, c, d, e, f, g, h, i, j, k, l = strsplit(":", itemLink);
+
+ --print(a, b, c, d, e, f, g, h, i, j, k, l);
+
+
+ --MonkeyQuest_NEW_ContainerFrameItemButton_OnEnter(self)
+ -- call the old (probably blizzard's) GameTooltip_OnEvent()
+ --MonkeyQuest_OLD_ContainerFrameItemButton_OnEnter(self);
+
+ --MonkeyQuest_SearchTooltip();
+
+ --MonkeyQuest_SearchTooltipForRelevantQuest();
+end
+
+function MonkeyQuest_SearchTooltip()
+ -- does the user not want this feature?
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowTooltipObjectives == false) then
+ return false;
+ end
+
+ if (GameTooltip == nil) then
+ return false;
+ end
+
+
+ local itemLink;
+
+ _, itemLink = GameTooltip:GetItem();
+
+
+ a, b, c, d, e, f, g, h, i = strsplit(":", itemLink);
+
+ print(a, b, c, d, e, f, g, h, i);
+
+
+ if (itemLink ~= nil) then
+ _, _, _, _, _, itemType, itemSubType = GetItemInfo(itemLink);
+
+ --print(itemType);
+ --print(itemSubType);
+ end
+
+
+
+ -- _, itemID = strsplit(":", string.match(itemLink, "item[%-?%d:]+"));
+
+ -- print(itemID);
+
+ -- if (not _G['GameTooltipTextLeft1']:IsVisible()) then
+ -- -- no more tooltip text, get out
+ -- return false;
+ -- end
+
+ -- -- check the string isn't nil
+ -- if (_G['GameTooltipTextLeft1']:GetText() ~= nil) then
+ -- if (MonkeyQuest_SearchQuestListItem(_G['GameTooltipTextLeft1']:GetText()) == true) then
+ -- return true;
+ -- end
+ -- end
+
+ -- didn't find an item needing the MonkeyQuest tooltip
+ return false;
+end
+
+function MonkeyQuest_SearchQuestListItem(strSearch)
+ local i, j, length, iStrKeySize, iStrSearchSize;
+
+
+ -- super double check for nil string
+ if (strSearch == nil) then
+ return false;
+ end
+
+ --DEFAULT_CHAT_FRAME:AddMessage("Searching: " .. strSearch);
+
+ for key, value in pairs(MonkeyQuest.m_aQuestItemList) do
+ i, j = string.find(strSearch, key);
+
+ iStrKeySize = string.len(key);
+ iStrSearchSize = string.len(strSearch);
+
+ if (string.find(strSearch, "|c")) then
+ -- chop off the colour coding
+ iStrSearchSize = iStrSearchSize - 10;
+ end
+
+ --DEFAULT_CHAT_FRAME:AddMessage(key .. " == " .. strSearch);
+
+ if (i ~= nil and i ~= j and iStrSearchSize == iStrKeySize) then
+ -- found it!
+ --DEFAULT_CHAT_FRAME:AddMessage(key .. " == " .. strSearch .. " i= " .. i .. " j= " .. j);
+
+ if (aftt_textline1 ~= nil) then
+ -- aftootip is loaded, set the text for it
+ aftt_textline1:SetText(strSearch .. " " .. MONKEYQUEST_TOOLTIP_QUESTITEM .. " " .. value.m_iNumItems .. "/" .. value.m_iNumNeeded);
+ --DEFAULT_CHAT_FRAME:AddMessage("aftt hack");
+ end
+
+ -- TODO: calculate the completeness colour
+ local colourTip = {a = 1.0, r = 1.0, g = 1.0, b = 1.0};
+
+ colourTip.a, colourTip.r, colourTip.g, colourTip.b = MonkeyQuest_GetCompletenessColorStr(value.m_iNumItems, value.m_iNumNeeded);
+
+
+ GameTooltip:AddLine(MONKEYQUEST_TOOLTIP_QUESTITEM .. " " .. value.m_iNumItems .. "/" .. value.m_iNumNeeded,
+ colourTip.r, colourTip.g, colourTip.b, 1);
+
+
+ -- resize the tootip (thanks Turan's AuctionIt)
+ length = _G[GameTooltip:GetName() .. "TextLeft" .. GameTooltip:NumLines()]:GetStringWidth();
+ -- Give the text some border space on the right side of the tooltip.
+ length = length + 22;
+
+ GameTooltip:SetHeight(GameTooltip:GetHeight() + 14);
+ if ( length > GameTooltip:GetWidth() ) then
+ GameTooltip:SetWidth(length);
+ end
+
+ return true;
+ end
+ end
+
+ return false;
+end
+
+function MonkeyQuest_SearchTooltipForRelevantQuest()
+ local ii, jj;
+
+
+ -- does the user not want this feature?
+ if (MonkeyQuestConfig[MonkeyQuest.m_strPlayer].m_bShowTooltipObjectives == false) then
+ return false;
+ end
+
+ if (GameTooltip == nil) then
+ return false;
+ end
+
+ if (not _G['GameTooltipTextLeft1']:IsVisible()) then
+ -- no more tooltip text, get out
+ return false;
+ end
+
+ -- check the string isn't nil
+ if (_G['GameTooltipTextLeft1']:GetText() ~= nil) then
+
+ strRelevantQuest = MonkeyQuest_SearchQuestDetails(_G['GameTooltipTextLeft1']:GetText());
+
+ if (strRelevantQuest ~= nil) then
+
+ GameTooltip:AddLine(MONKEYQUEST_TOOLTIP_QUEST .. ": " .. strRelevantQuest, MONKEYQUEST_DEFAULT_CRASHCOLOUR.r,
+ MONKEYQUEST_DEFAULT_CRASHCOLOUR.g,
+ MONKEYQUEST_DEFAULT_CRASHCOLOUR.b, 1);
+
+
+ -- resize the tootip (thanks Turan's AuctionIt)
+ length = _G[GameTooltip:GetName() .. "TextLeft" .. GameTooltip:NumLines()]:GetStringWidth();
+ -- Give the text some border space on the right side of the tooltip.
+ length = length + 22;
+
+ GameTooltip:SetHeight(GameTooltip:GetHeight() + 14);
+ if ( length > GameTooltip:GetWidth() ) then
+ GameTooltip:SetWidth(length);
+ end
+
+ return true;
+ end
+ end
+
+ -- didn't find an item needing the MonkeyQuest tooltip
+ return false;
+end
+
+-- search for the string anywhere in any quest
+function MonkeyQuest_SearchQuestDetails(strSearch)
+ -- super double check for nil string
+ if (strSearch == nil) then
+ return false;
+ end
+
+ local strQuestLogTitleText, isHeader;
+ local i;
+ local iNumEntries = GetNumQuestLogEntries();
+ local strQuestDescription, strQuestObjectives;
+
+
+ for i = 1, iNumEntries, 1 do
+ -- questInfo.title the title of the quest, may be a header (i.e. a quest category)
+
+ local questInfo = C_QuestLog.GetInfo(i)
+
+ if (not questInfo.isHeader) then
+ -- Select the quest log entry for other functions like GetNumQuestLeaderBoards()
+ C_QuestLog.SetSelectedQuest(i);
+
+ strQuestDescription, strQuestObjectives = GetQuestLogQuestText();
+
+ if (string.find(strQuestDescription, strSearch) or string.find(strQuestObjectives, strSearch)) then
+ return questInfo.title;
+ end
+ end
+ end
+
+ return nil;
+end
diff --git a/MonkeyQuest/localization.lua b/MonkeyQuest/localization.lua
new file mode 100644
index 0000000..374f811
--- /dev/null
+++ b/MonkeyQuest/localization.lua
@@ -0,0 +1,488 @@
+-- Not translations
+MONKEYQUEST_TITLE = "MonkeyQuest"
+MONKEYQUEST_VERSION = "2.9.10"
+MONKEYQUEST_TITLE_VERSION = MONKEYQUEST_TITLE .. " v" .. MONKEYQUEST_VERSION
+MONKEYQUEST_INFO_COLOUR = "|cffffff00"
+MONKEYQUEST_CHAT_COLOUR = "|cff00ff00"
+BINDING_HEADER_MONKEYQUEST = MONKEYQUEST_TITLE
+
+-- English, the default
+MONKEYQUEST_DESCRIPTION = "Displays your quests for quick viewing."
+MONKEYQUEST_LOADED_MSG = MONKEYQUEST_INFO_COLOUR .. MONKEYQUEST_TITLE .. " v" .. MONKEYQUEST_VERSION .. " loaded"
+MONKEYQUEST_OPTIONS1 = "Please install MonkeyBuddy to configure your MonkeyQuest easily."
+MONKEYQUEST_OPTIONS2 = "\124TInterface\\Icons\\Trade_Engineering:0\124t MonkeyBuddy is currently not installed."
+
+MONKEYQUEST_QUEST_DONE = "done"
+MONKEYQUEST_QUEST_FAILED = "failed"
+MONKEYQUEST_CONFIRM_RESET = "Okay to reset " .. MONKEYQUEST_TITLE .. " settings to default values?"
+
+MONKEYQUEST_SET_WIDTH_MSG = MONKEYQUEST_CHAT_COLOUR .. MONKEYQUEST_TITLE .. ": You may need to '/console reloadui' to see the changes in width."
+MONKEYQUEST_RESET_MSG = MONKEYQUEST_CHAT_COLOUR .. MONKEYQUEST_TITLE .. ": Settings reset."
+
+MONKEYQUEST_HELP_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest help \n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Where is any of the following: \n" ..
+ "reset, open, close, showhidden, hidehidden, useoverviews, nooverviews, " ..
+ "tipanchor, alpha, width, hideheaders, showheaders, hideborder, showborder, " ..
+ "growup, growdown, hidenumquests, shownumquests, lock, unlock, colourtitleon, " ..
+ "colourtitleoff, hidecompletedquests, showcompletedquests, hidecompletedobjectives, " ..
+ "showcompletedobjectives, fontheight, showtooltipobjectives, hidetootipobjectives, " ..
+ "allowrightclick, disallowrightclick, hidetitlebuttons, showtitlebuttons, allowworkcomplete, disallowworkcomplete."
+MONKEYQUEST_HELP_RESET_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest reset\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Displays the reset config variables dialog.\n"
+MONKEYQUEST_HELP_OPEN_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest open\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Shows the main " .. MONKEYQUEST_TITLE .. " frame.\n"
+MONKEYQUEST_HELP_CLOSE_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest close\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Hides the main " .. MONKEYQUEST_TITLE .. " frame.\n"
+MONKEYQUEST_HELP_SHOWHIDDEN_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest showhidden\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Shows collapsed zone headers and hidden quests.\n"
+MONKEYQUEST_HELP_HIDEHIDDEN_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest hidehidden\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Hides collapsed zone headers and hidden quests.\n"
+MONKEYQUEST_HELP_USEOVERVIEWS_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest useoverviews\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Displays the quest overview for quests without objectives.\n"
+MONKEYQUEST_HELP_NOOVERVIEWS_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest nooverviews\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Don't display the quest overview for quests without objectives.\n"
+MONKEYQUEST_HELP_TIPANCHOR_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest tipanchor=\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Sets the anchor point of the tooltip where " ..
+ "can be any of the following:\nANCHOR_TOPLEFT, ANCHOR_TOPRIGHT, ANCHOR_TOP, ANCHOR_LEFT, " ..
+ "ANCHOR_RIGHT, ANCHOR_BOTTOMLEFT, ANCHOR_BOTTOMRIGHT, ANCHOR_BOTTOM, ANCHOR_CURSOR, " ..
+ "DEFAULT, NONE"
+MONKEYQUEST_HELP_ALPHA_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest alpha=<0 - 255>\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Sets the backdrop alpha to the specified value.\n"
+MONKEYQUEST_HELP_WIDTH_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest width=\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Sets the width to the specified value, the default is 255.\n"
+MONKEYQUEST_HELP_HIDEHEADERS_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest hideheaders\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Never display any zone headers.\n"
+MONKEYQUEST_HELP_SHOWHEADERS_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest showheaders\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Display zone headers.\n"
+MONKEYQUEST_HELP_HIDEBORDER_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest hideborder\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Hide the border around the main " .. MONKEYQUEST_TITLE .. " frame.\n"
+MONKEYQUEST_HELP_SHOWBORDER_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest showborder\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Show the border around the main " .. MONKEYQUEST_TITLE .. " frame.\n"
+MONKEYQUEST_HELP_GROWUP_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest growup\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Makes the main " .. MONKEYQUEST_TITLE .. " frame expand upwards.\n"
+MONKEYQUEST_HELP_GROWDOWN_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest growdown\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Makes the main " .. MONKEYQUEST_TITLE .. " frame expand downwards.\n"
+MONKEYQUEST_HELP_HIDENUMQUESTS_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest hidenumquests\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Hide the number of quests next to the title.\n"
+MONKEYQUEST_HELP_SHOWNUMQUESTS_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest shownumquests\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Show the number of quests next to the title.\n"
+MONKEYQUEST_HELP_LOCK_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest lock\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Locks the " .. MONKEYQUEST_TITLE .. " frame in place.\n"
+MONKEYQUEST_HELP_UNLOCK_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest unlock\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Unlocks the " .. MONKEYQUEST_TITLE .. " frame, making it movable.\n"
+MONKEYQUEST_HELP_COLOURTITLEON_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest colourtitleon\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Uses the difficulty to colour the entier quest title.\n"
+MONKEYQUEST_HELP_COLOURTITLEOFF_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest colourtitleoff\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Doesn't colour the entier quest title by difficulty.\n"
+MONKEYQUEST_HELP_HIDECOMPLETEDQUESTS_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest hidecompletedquests\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Hides completed quests.\n"
+MONKEYQUEST_HELP_SHOWCOMPLETEDQUESTS_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest showcompletedquests\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Shows completed quests.\n"
+MONKEYQUEST_HELP_HIDECOMPLETEDOBJECTIVES_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest hidecompletedobjectives\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Hides completed objectives.\n"
+MONKEYQUEST_HELP_SHOWCOMPLETEDOBJECTIVES_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest showcompletedobjectives\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Shows completed objectives.\n"
+MONKEYQUEST_HELP_FONTHEIGHT_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest fontheight=\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Sets the font height to the specified value, the default is 12.\n"
+MONKEYQUEST_HELP_SHOWTOOLTIPOBJECTIVES_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest showtooltipobjectives\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Adds a line to the tooltip which shows the completeness of that quest objective.\n"
+MONKEYQUEST_HELP_HIDETOOLTIPOBJECTIVES_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest hidetooltipobjectives\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Does not add a line to the tooltip about the completeness of that quest objective.\n"
+MONKEYQUEST_HELP_ALLOWRIGHTCLICK_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest allowrightclick\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Allows you to right-click to open MonkeyBuddy.\n"
+MONKEYQUEST_HELP_DISALLOWRIGHTCLICK_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest disallowrightclick\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Disallows you from right-clicking to open MonkeyBuddy.\n"
+MONKEYQUEST_HELP_HIDETITLEBUTTONS_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest hidetitlebuttons\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Hides the title buttons.\n"
+MONKEYQUEST_HELP_SHOWTITLEBUTTONS_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest showtitlebuttons\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Shows the title buttons.\n"
+MONKEYQUEST_HELP_ALLOWWORKCOMPLETE_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest allowworkcomplete\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Enables >work complete< sound.\n"
+MONKEYQUEST_HELP_DISALLOWWORKCOMPLETE_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest disallowworkcomplete\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Disables >work complete< sound.\n"
+
+-- tooltip strings
+MONKEYQUEST_TOOLTIP_QUESTITEM = "Quest Item" -- as it appears in the tooltip of unique quest items
+MONKEYQUEST_TOOLTIP_QUEST = "Quest"
+MONKEYQUEST_TOOLTIP_SLAIN = "slain" -- as it appears in the objective text
+
+-- misc quest strings
+MONKEYQUEST_DUNGEON = "Dungeon"
+MONKEYQUEST_PVP = "PvP"
+
+-- noob tips
+MONKEYQUEST_NOOBTIP_HEADER = "Noob Tip:"
+
+MONKEYQUEST_NOOBTIP_CLOSE = "Click here to close the main frame. To get it back try:"
+MONKEYQUEST_NOOBTIP_MINIMIZE = "Click here to minimize the main frame"
+MONKEYQUEST_NOOBTIP_RESTORE = "Click here to restore the main frame"
+MONKEYQUEST_NOOBTIP_SHOWALLHIDDEN = "Click here to show all hidden items"
+MONKEYQUEST_NOOBTIP_HIDEALLHIDDEN = "Click here to hide all hidden items"
+MONKEYQUEST_NOOBTIP_HIDEBUTTON = "Click here to hide this quest. Activate 'Show all hidden items' to see this quest again"
+MONKEYQUEST_NOOBTIP_TITLE = "Right Click here to open MonkeyBuddy so you can configure " .. MONKEYQUEST_TITLE
+MONKEYQUEST_NOOBTIP_QUESTHEADER = "Click here to hide/show all the quests under this zone. Activate 'Show all hidden items' to show zone headers you've hidden."
+
+-- bindings
+BINDING_NAME_MONKEYQUEST_CLOSE = "Close/Open"
+BINDING_NAME_MONKEYQUEST_MINIMIZE = "Minimize/Restore"
+BINDING_NAME_MONKEYQUEST_HIDDEN = "Hide/Show all hidden items"
+BINDING_NAME_MONKEYQUEST_NOHEADERS = "Toggle No Headers"
+
+if ( GetLocale() == "frFR" ) then
+
+MONKEYQUEST_DESCRIPTION = "Affiche vos quêtes pour un aperçu rapide."
+MONKEYQUEST_LOADED_MSG = MONKEYQUEST_INFO_COLOUR .. MONKEYQUEST_TITLE .. " v" .. MONKEYQUEST_VERSION .. " chargé"
+--MONKEYQUEST_OPTIONS1 = "Please install MonkeyBuddy to configure your MonkeyQuest easily."
+--MONKEYQUEST_OPTIONS2 = "\124TInterface\\Icons\\Trade_Engineering:0\124t MonkeyBuddy is currently not installed."
+
+MONKEYQUEST_QUEST_DONE = "Terminée"
+--MONKEYQUEST_QUEST_FAILED = "failed"
+MONKEYQUEST_CONFIRM_RESET = "Ok pour remettre les options " .. MONKEYQUEST_TITLE .. " à leurs valeurs par défaut ?"
+
+MONKEYQUEST_SET_WIDTH_MSG = MONKEYQUEST_CHAT_COLOUR .. MONKEYQUEST_TITLE .. " : Vous aurez peut être besoin de '/console reloadui' pour voir les changements de la largeur."
+MONKEYQUEST_RESET_MSG = MONKEYQUEST_CHAT_COLOUR .. MONKEYQUEST_TITLE .. " : Options remises à zero."
+
+MONKEYQUEST_HELP_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest help \n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Où est une des suivantes : \n" ..
+ "reset, open, close, showhidden, hidehidden, useoverviews, nooverviews, " ..
+ "tipanchor, alpha, width, hideheaders, showheaders, hideborder, showborder, " ..
+ "growup, growdown, hidenumquests, shownumquests, lock, unlock, colourtitleon, " ..
+ "colourtitleoff, hidecompletedquests, showcompletedquests, hidecompletedobjectives, " ..
+ "showcompletedobjectives."
+MONKEYQUEST_HELP_RESET_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest reset\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Affiche le dialogue de remise à zero des options.\n"
+MONKEYQUEST_HELP_OPEN_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest open\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Ouvre la fenêtre " .. MONKEYQUEST_TITLE .. ".\n"
+MONKEYQUEST_HELP_CLOSE_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest close\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Ferme la fenêtre " .. MONKEYQUEST_TITLE .. ".\n"
+MONKEYQUEST_HELP_SHOWHIDDEN_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest showhidden\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Montrer les noms de zone et les quêtes cachées.\n"
+MONKEYQUEST_HELP_HIDEHIDDEN_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest hidehidden\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Cacher les noms de zone et les quêtes cachées.\n"
+MONKEYQUEST_HELP_USEOVERVIEWS_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest useoverviews\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Montrer la description quand il n'y a pas d'objectifs.\n"
+MONKEYQUEST_HELP_NOOVERVIEWS_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest nooverviews\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Ne pas montrer la description quand il n'y a pas d'objectifs.\n"
+MONKEYQUEST_HELP_TIPANCHOR_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest tipanchor=\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Fixer le point d'ancrage du tooltip où " ..
+ "peut être un des suivants :\nANCHOR_TOPLEFT, ANCHOR_TOPRIGHT, ANCHOR_TOP, ANCHOR_LEFT, " ..
+ "ANCHOR_RIGHT, ANCHOR_BOTTOMLEFT, ANCHOR_BOTTOMRIGHT, ANCHOR_BOTTOM, ANCHOR_CURSOR, " ..
+ "DEFAULT, NONE"
+MONKEYQUEST_HELP_ALPHA_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest alpha=<0 - 255>\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Fixer l'Alpha à la valeur spécifiée.\n"
+MONKEYQUEST_HELP_WIDTH_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest width=\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Fixer la largeur à la valeur spécifiée, 255 par défaut. " ..
+ "Nécessite de '/console reloadui' pour prendre effet.\n"
+MONKEYQUEST_HELP_HIDEHEADERS_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest hideheaders\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Cacher les noms de zone.\n"
+MONKEYQUEST_HELP_SHOWHEADERS_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest showheaders\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Montrer les noms de zone.\n"
+MONKEYQUEST_HELP_HIDEBORDER_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest hideborder\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Cacher les bords de la fenêtre " .. MONKEYQUEST_TITLE .. ".\n"
+MONKEYQUEST_HELP_SHOWBORDER_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest showborder\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Montrer les bords de la fenêtre " .. MONKEYQUEST_TITLE .. ".\n"
+MONKEYQUEST_HELP_GROWUP_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest growup\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Augmenter la fenêtre " .. MONKEYQUEST_TITLE .. " vers le haut.\n"
+MONKEYQUEST_HELP_GROWDOWN_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest growdown\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Augmenter la fenêtre " .. MONKEYQUEST_TITLE .. " vers le bas.\n"
+MONKEYQUEST_HELP_HIDENUMQUESTS_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest hidenumquests\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Cacher le nombre de quêtes.\n"
+MONKEYQUEST_HELP_SHOWNUMQUESTS_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest shownumquests\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Montrer le nombre de quêtes.\n"
+MONKEYQUEST_HELP_LOCK_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest lock\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Bloquer la fenêtre " .. MONKEYQUEST_TITLE .. ".\n"
+MONKEYQUEST_HELP_UNLOCK_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest unlock\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Débloquer la fenêtre " .. MONKEYQUEST_TITLE .. ", la rend mobile.\n"
+MONKEYQUEST_HELP_COLOURTITLEON_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest colourtitleon\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Colorer les titres de quêtes selon la difficulté.\n"
+MONKEYQUEST_HELP_COLOURTITLEOFF_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest colourtitleoff\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Ne pas colorer les titres de quêtes selon la difficulté.\n"
+MONKEYQUEST_HELP_HIDECOMPLETEDQUESTS_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest hidecompletedquests\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Cacher les quêtes terminées.\n"
+MONKEYQUEST_HELP_SHOWCOMPLETEDQUESTS_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest showcompletedquests\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Montrer les quêtes terminées.\n"
+MONKEYQUEST_HELP_HIDECOMPLETEDOBJECTIVES_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest hidecompletedobjectives\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Cacher les objectifs terminés.\n"
+MONKEYQUEST_HELP_SHOWCOMPLETEDOBJECTIVES_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest showcompletedobjectives\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Montrer les objectifs terminés.\n"
+MONKEYQUEST_HELP_FONTHEIGHT_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest fontheight=\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Fixe la taille de la police de caractères, 12 par défaut.\n"
+MONKEYQUEST_HELP_SHOWTOOLTIPOBJECTIVES_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest showtooltipobjectives\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Ajoute une ligne au tooltip qui montre l'avancement de cet objectif de quête.\n"
+MONKEYQUEST_HELP_HIDETOOLTIPOBJECTIVES_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest hidetooltipobjectives\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Retire la ligne du tooltip qui montre l'avancement de cet objectif de quête.\n"
+MONKEYQUEST_HELP_ALLOWRIGHTCLICK_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest allowrightclick\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Vous permet de faire un clic droit pour ouvrir MonkeyBuddy.\n"
+MONKEYQUEST_HELP_DISALLOWRIGHTCLICK_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest disallowrightclick\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Désactive le clic droit pour ouvrir MonkeyBuddy.\n"
+MONKEYQUEST_HELP_HIDETITLEBUTTONS_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest hidetitlebuttons\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Cacher les boutons de titre.\n"
+MONKEYQUEST_HELP_SHOWTITLEBUTTONS_MSG = MONKEYQUEST_INFO_COLOUR .. "Utilisation : /mquest showtitlebuttons\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Montrer les boutons de titre.\n"
+--MONKEYQUEST_HELP_ALLOWWORKCOMPLETE_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest allowworkcomplete\n" ..
+-- MONKEYQUEST_CHAT_COLOUR .. "Enables >work complete< sound.\n"
+--MONKEYQUEST_HELP_DISALLOWWORKCOMPLETE_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest disallowworkcomplete\n" ..
+-- MONKEYQUEST_CHAT_COLOUR .. "Disables >work complete< sound.\n"
+
+-- tooltip strings
+MONKEYQUEST_TOOLTIP_QUESTITEM = "Objet de quête" -- as it appears in the tooltip of unique quest items
+MONKEYQUEST_TOOLTIP_QUEST = "Quête"
+MONKEYQUEST_TOOLTIP_SLAIN = "morts" -- as it appears in the objective text
+
+-- misc quest strings
+MONKEYQUEST_DUNGEON = "Donjon"
+MONKEYQUEST_PVP = "JcJ"
+
+-- noob tips
+--MONKEYQUEST_NOOBTIP_HEADER = "Noob Tip:"
+
+--MONKEYQUEST_NOOBTIP_CLOSE = "Click here to close the main frame. To get it back try:"
+--MONKEYQUEST_NOOBTIP_MINIMIZE = "Click here to minimize the main frame"
+--MONKEYQUEST_NOOBTIP_RESTORE = "Click here to restore the main frame"
+--MONKEYQUEST_NOOBTIP_SHOWALLHIDDEN = "Click here to show all hidden items"
+--MONKEYQUEST_NOOBTIP_HIDEALLHIDDEN = "Click here to hide all hidden items"
+--MONKEYQUEST_NOOBTIP_HIDEBUTTON = "Click here to hide this quest. Activate 'Show all hidden items' to see this quest again"
+--MONKEYQUEST_NOOBTIP_TITLE = "Right Click here to open MonkeyBuddy so you can configure " .. MONKEYQUEST_TITLE
+--MONKEYQUEST_NOOBTIP_QUESTHEADER = "Click here to hide/show all the quests under this zone. Activate 'Show all hidden items' to show zone headers you've hidden."
+
+-- bindings
+BINDING_NAME_MONKEYQUEST_CLOSE = "Fermer/Open"
+BINDING_NAME_MONKEYQUEST_MINIMIZE = "Réduire/Restore"
+BINDING_NAME_MONKEYQUEST_HIDDEN = "Hide/Montrer les quêtes cachées"
+BINDING_NAME_MONKEYQUEST_NOHEADERS = "Afficher/Masquer Headers"
+
+elseif (GetLocale() == "deDE") then
+
+MONKEYQUEST_DESCRIPTION = "Stellt Quests in einer kompakten \195\156bersicht dar."
+MONKEYQUEST_LOADED_MSG = MONKEYQUEST_INFO_COLOUR .. MONKEYQUEST_TITLE .. " v" .. MONKEYQUEST_VERSION .. " geladen"
+MONKEYQUEST_OPTIONS1 = "Bitte installiere MonkeyBuddy um dein MonkeyQuest einzustellen."
+MONKEYQUEST_OPTIONS2 = "\124TInterface\\Icons\\Trade_Engineering:0\124t MonkeyBuddy ist derzeit nicht installiert."
+
+MONKEYQUEST_QUEST_DONE = "fertig"
+MONKEYQUEST_QUEST_FAILED = "fehlgeschlagen"
+MONKEYQUEST_CONFIRM_RESET = "Die Einstellungen von " .. MONKEYQUEST_TITLE .. " wirklich zur\195\188cksetzen?"
+
+MONKEYQUEST_RESET_MSG = MONKEYQUEST_CHAT_COLOUR .. MONKEYQUEST_TITLE .. ": Einstellungen zur\195\188ckgesetzt."
+MONKEYQUEST_SET_WIDTH_MSG = MONKEYQUEST_CHAT_COLOUR .. MONKEYQUEST_TITLE .. ": Um \195\134nderungen an der Breite wirksam werden zu lassen, m\195\188ssen Sie '/console reloadui' ausf\195\188hren."
+
+MONKEYQUEST_HELP_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest help \n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Anzeigen der Hilfe, wobei eines der folgenden sein kann: \n" ..
+ "reset, open, close, showhidden, hidehidden, useoverviews, nooverviews, " ..
+ "tipanchor, alpha, width, hideheaders, showheaders, hideborder, showborder, " ..
+ "growup, growdown, hidenumquests, shownumquests, lock, unlock, colourtitleon, " ..
+ "colourtitleoff, hidecompletedquests, showcompletedquests, hidecompletedobjectives, " ..
+ "showcompletedobjectives, fontheight, showtooltipobjectives, hidetootipobjectives, " ..
+ "allowrightclick, disallowrightclick, hidetitlebuttons, showtitlebuttons, allowworkcomplete, disallowworkcomplete."
+MONKEYQUEST_HELP_RESET_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest reset\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Zur\195\188cksetzen der Einstellungen auf die Werkseinstellung\n"
+MONKEYQUEST_HELP_OPEN_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest open\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "\195\150ffnen des " .. MONKEYQUEST_TITLE .. " Fensters\n"
+MONKEYQUEST_HELP_CLOSE_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest close\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Schlie\195\159en des " .. MONKEYQUEST_TITLE .. " Fensters\n"
+MONKEYQUEST_HELP_SHOWHIDDEN_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest showhidden\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Anzeigen aller, auch ausgeblendeter Quests\n"
+MONKEYQUEST_HELP_HIDEHIDDEN_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest hidehidden\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Ausblenden entsprechend markierter Quests\n"
+MONKEYQUEST_HELP_USEOVERVIEWS_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest useoverviews\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Anzeigen der Questzusammenfassung bei Quests, die keine Sammel- oder Killquest sind\n"
+MONKEYQUEST_HELP_NOOVERVIEWS_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest nooverviews\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Kein Anzeigen der Questzusammenfassung bei Quests, die keine Sammel- oder Killquest sind\n"
+MONKEYQUEST_HELP_TIPANCHOR_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest tipanchor=\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Festlegen der Tooltip-Position. M\195\182gliche Werte f\195\188r sind \n" ..
+ "ANCHOR_TOPLEFT, ANCHOR_TOPRIGHT, ANCHOR_TOP, ANCHOR_LEFT, " ..
+ "ANCHOR_RIGHT, ANCHOR_BOTTOMLEFT, ANCHOR_BOTTOMRIGHT, ANCHOR_BOTTOM, ANCHOR_CURSOR, " ..
+ "DEFAULT, NONE"
+MONKEYQUEST_HELP_ALPHA_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest alpha=<0 - 255>\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Festlegen der Transparenz des Fensters, mu\195\159 eine positive Ganzzahl sein. 0 ist komplett transparent, 255 komplett undurchsichtig\n"
+MONKEYQUEST_HELP_WIDTH_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest width=\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Festlegen der Fensterbreite, Standardwert ist 225, mu\195\159 eine positive Ganzzahl sein. Um die \195\134nderung sichtbar zu machen, mu\195\159 die Oberfl\195\164che \195\188ber das Kommando /console reloadui neu geladen werden\n"
+MONKEYQUEST_HELP_SHOWHEADERS_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest showheaders\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Einblenden der Namen der Regionen\n"
+MONKEYQUEST_HELP_HIDEHEADERS_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest hideheaders\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Ausblenden der Namen der Regionen\n"
+MONKEYQUEST_HELP_HIDEBORDER_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest hideborder\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Kein Zeichnen eines Rahmens um das Fenster\n"
+MONKEYQUEST_HELP_SHOWBORDER_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest showborder\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Zeichnen eines Rahmens um das Fenster\n"
+MONKEYQUEST_HELP_GROWUP_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest growup\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Festlegung, da\195\159 sich das Fenster nach oben hin erweitert, wenn eine neue Quest angenommen wird\n"
+MONKEYQUEST_HELP_GROWDOWN_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest growdown\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Festlegung, da\195\159 sich das Fenster nach unten hin erweitert, wenn eine neue Quest angenommen wird\n"
+MONKEYQUEST_HELP_HIDENUMQUESTS_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest hidenumquests\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Keine Anzeige der Anzahl der angenommenen Quests\n"
+MONKEYQUEST_HELP_SHOWNUMQUESTS_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest shownumquests\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Anzeige der Anzahl der angenommenen Quests\n"
+MONKEYQUEST_HELP_LOCK_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest lock\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Fixierung des Fensters\n"
+MONKEYQUEST_HELP_UNLOCK_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest unlock\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Aufhebung der Fixierung des Fensters\n"
+MONKEYQUEST_HELP_COLOURTITLEON_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest colourtitleon\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Farbliche Kodierung der Quests nach ihrem Schwierigkeitsgrad\n"
+MONKEYQUEST_HELP_COLOURTITLEOFF_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest colourtitleoff\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Keine farbliche Kodierung der Quests nach ihrem Schwierigkeitsgrad\n"
+MONKEYQUEST_HELP_HIDECOMPLETEDQUESTS_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest hidecompletedquests\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Versteckt alle Quests.\n"
+MONKEYQUEST_HELP_SHOWCOMPLETEDQUESTS_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest showcompletedquests\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Zeigt alle Quests.\n"
+MONKEYQUEST_HELP_HIDECOMPLETEDOBJECTIVES_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest hidecompletedobjectives\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Versteckt alle Questziele.\n"
+MONKEYQUEST_HELP_SHOWCOMPLETEDOBJECTIVES_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest showcompletedobjectives\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Zeigt alle Questziele.\n"
+MONKEYQUEST_HELP_FONTHEIGHT_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest fontheight=\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Stellt die Schriftgr\195\182sse ein, Standard ist 12.\n"
+MONKEYQUEST_HELP_SHOWTOOLTIPOBJECTIVES_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest showtooltipobjectives\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "F\195\188gt den Tooltips eine Info hinzu, welche die Vollst\195\164ndigkeit der jeweiligen Questziele anzeigt.\n"
+MONKEYQUEST_HELP_HIDETOOLTIPOBJECTIVES_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest hidetooltipobjectives\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "F\195\188gt den Tooltips keine Info hinzu, welche die Vollst\195\164ndigkeit der jeweiligen Questziele anzeigen w\195\188rde.\n"
+MONKEYQUEST_HELP_ALLOWRIGHTCLICK_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest allowrightclick\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Erm\195\182glicht dir MonkeyBuddy mit Rechtsklick zu \195\182ffnen.\n"
+MONKEYQUEST_HELP_DISALLOWRIGHTCLICK_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest disallowrightclick\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Erm\195\182glicht dir nicht MonkeyBuddy mit Rechtsklick zu \195\182ffnen.\n"
+MONKEYQUEST_HELP_HIDETITLEBUTTONS_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest hidetitlebuttons\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Versteckt die Titel-Buttons.\n"
+MONKEYQUEST_HELP_SHOWTITLEBUTTONS_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest showtitlebuttons\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Zeigt die Titel-Buttons.\n"
+MONKEYQUEST_HELP_ALLOWWORKCOMPLETE_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest allowworkcomplete\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Aktiviert >Arbeit erledigt< Sound.\n"
+MONKEYQUEST_HELP_DISALLOWWORKCOMPLETE_MSG = MONKEYQUEST_INFO_COLOUR .. "Verwendung: /mquest disallowworkcomplete\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Deaktiviert >Arbeit erledigt< Sound.\n"
+
+-- tooltip strings
+MONKEYQUEST_TOOLTIP_QUESTITEM = "Questgegenstand" -- as it appears in the tooltip of unique quest items
+MONKEYQUEST_TOOLTIP_QUEST = "Quest"
+MONKEYQUEST_TOOLTIP_SLAIN = "get\195\182tet" -- as it appears in the objective text
+
+-- misc quest strings
+MONKEYQUEST_DUNGEON = "Dungeon"
+MONKEYQUEST_PVP = "PvP"
+
+-- noob tips
+MONKEYQUEST_NOOBTIP_HEADER = "Anf\195\164nger Info:"
+
+MONKEYQUEST_NOOBTIP_CLOSE = "Klicke hier um das Hauptfenster zu schlie\195\159en. R\195\188ckg\195\164ngig durch:"
+MONKEYQUEST_NOOBTIP_MINIMIZE = "Klicke hier um das Hauptfenster zu minimieren"
+MONKEYQUEST_NOOBTIP_RESTORE = "Klicke hier um das Hauptfenster wiederherzustellen"
+MONKEYQUEST_NOOBTIP_SHOWALLHIDDEN = "Klicke hier um ausgeblendete Elemente anzuzeigen"
+MONKEYQUEST_NOOBTIP_HIDEALLHIDDEN = "Klicke hier um ausgeblendete Elemente zu verbergen"
+MONKEYQUEST_NOOBTIP_HIDEBUTTON = "Klicke hier um den Quest auszublenden. Aktiviere 'Zeige ausgeblendete Elemente' um den Quest wieder einzublenden"
+MONKEYQUEST_NOOBTIP_TITLE = "Rechtsklick erm\195\182glicht es dir MonkeyBuddy zu \195\182ffnen und so " .. MONKEYQUEST_TITLE .. " zu konfigurieren"
+MONKEYQUEST_NOOBTIP_QUESTHEADER = "Klicke hier um alle Quests dieser Zone ein/auszublenden. Aktiviere 'Zeige ausgeblendete Elemente' um ausgeblendete Questzonen wieder einzublenden."
+
+-- bindings
+BINDING_NAME_MONKEYQUEST_CLOSE = "Schlie\195\159en/\195\150ffnen"
+BINDING_NAME_MONKEYQUEST_MINIMIZE = "Minimieren/Wiederherstellen"
+BINDING_NAME_MONKEYQUEST_HIDDEN = "Ausgeblentete Elemente ein/ausblenden"
+BINDING_NAME_MONKEYQUEST_NOHEADERS = "Verberge Questzonen"
+
+elseif (GetLocale() == "esES") then
+
+MONKEYQUEST_QUEST_DONE = "hecho"
+MONKEYQUEST_CONFIRM_RESET = "Vale para reset " .. MONKEYQUEST_TITLE .. " settings to default values?"
+MONKEYQUEST_SET_WIDTH_MSG = MONKEYQUEST_CHAT_COLOUR .. MONKEYQUEST_TITLE .. ": Tu puedes necesitar de '/console reloadui' para ver los cambios."
+MONKEYQUEST_RESET_MSG = MONKEYQUEST_CHAT_COLOUR .. MONKEYQUEST_TITLE .. ": Opciones reseteadas."
+MONKEYQUEST_HELP_MSG = MONKEYQUEST_INFO_COLOUR .. "Comando: /mquest help \n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Cuando is any of the following: \n" ..
+ "reset, open, close, showhidden, hidehidden, useoverviews, nooverviews, " ..
+ "tipanchor, alpha, width, hideheaders, showheaders, hideborder, showborder, " ..
+ "growup, growdown, hidenumquests, shownumquests, lock, unlock, colourtitleon, " ..
+ "colourtitleoff, hidecompletedquests, showcompletedquests, hidecompletedobjectives, " ..
+ "showcompletedobjectives, fontheight, showtooltipobjectives, hidetootipobjectives, " ..
+ "allowrightclick, disallowrightclick, hidetitlebuttons, showtitlebuttons."
+MONKEYQUEST_HELP_RESET_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest reset\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Displays the reset config variables dialog.\n"
+MONKEYQUEST_HELP_OPEN_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest open\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Shows the main " .. MONKEYQUEST_TITLE .. " frame.\n"
+MONKEYQUEST_HELP_CLOSE_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest close\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Hides the main " .. MONKEYQUEST_TITLE .. " frame.\n"
+MONKEYQUEST_HELP_SHOWHIDDEN_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest showhidden\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Shows collapsed zone headers and hidden quests.\n"
+MONKEYQUEST_HELP_HIDEHIDDEN_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest hidehidden\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Hides collapsed zone headers and hidden quests.\n"
+MONKEYQUEST_HELP_USEOVERVIEWS_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest useoverviews\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Displays the quest overview for quests without objectives.\n"
+MONKEYQUEST_HELP_NOOVERVIEWS_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest nooverviews\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Don't display the quest overview for quests without objectives.\n"
+MONKEYQUEST_HELP_TIPANCHOR_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest tipanchor=\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Sets the anchor point of the tooltip where " ..
+ "can be any of the following:\nANCHOR_TOPLEFT, ANCHOR_TOPRIGHT, ANCHOR_TOP, ANCHOR_LEFT, " ..
+ "ANCHOR_RIGHT, ANCHOR_BOTTOMLEFT, ANCHOR_BOTTOMRIGHT, ANCHOR_BOTTOM, ANCHOR_CURSOR, " ..
+ "DEFAULT, NONE"
+MONKEYQUEST_HELP_ALPHA_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest alpha=<0 - 255>\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Sets the backdrop alpha to the specified value.\n"
+MONKEYQUEST_HELP_WIDTH_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest width=\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Sets the width to the specified value, the default is 255.\n"
+MONKEYQUEST_HELP_HIDEHEADERS_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest hideheaders\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Never display any zone headers.\n"
+MONKEYQUEST_HELP_SHOWHEADERS_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest showheaders\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Display zone headers.\n"
+MONKEYQUEST_HELP_HIDEBORDER_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest hideborder\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Hide the border around the main " .. MONKEYQUEST_TITLE .. " frame.\n"
+MONKEYQUEST_HELP_SHOWBORDER_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest showborder\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Show the border around the main " .. MONKEYQUEST_TITLE .. " frame.\n"
+MONKEYQUEST_HELP_GROWUP_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest growup\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Makes the main " .. MONKEYQUEST_TITLE .. " frame expand upwards.\n"
+MONKEYQUEST_HELP_GROWDOWN_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest growdown\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Makes the main " .. MONKEYQUEST_TITLE .. " frame expand downwards.\n"
+MONKEYQUEST_HELP_HIDENUMQUESTS_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest hidenumquests\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Hide the number of quests next to the title.\n"
+MONKEYQUEST_HELP_SHOWNUMQUESTS_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest shownumquests\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Show the number of quests next to the title.\n"
+MONKEYQUEST_HELP_LOCK_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest lock\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Locks the " .. MONKEYQUEST_TITLE .. " frame in place.\n"
+MONKEYQUEST_HELP_UNLOCK_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest unlock\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Unlocks the " .. MONKEYQUEST_TITLE .. " frame, making it movable.\n"
+MONKEYQUEST_HELP_COLOURTITLEON_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest colourtitleon\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Uses the difficulty to colour the entier quest title.\n"
+MONKEYQUEST_HELP_COLOURTITLEOFF_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest colourtitleoff\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Doesn't colour the entier quest title by difficulty.\n"
+MONKEYQUEST_HELP_HIDECOMPLETEDQUESTS_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest hidecompletedquests\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Hides completed quests.\n"
+MONKEYQUEST_HELP_SHOWCOMPLETEDQUESTS_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest showcompletedquests\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Shows completed quests.\n"
+MONKEYQUEST_HELP_HIDECOMPLETEDOBJECTIVES_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest hidecompletedobjectives\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Hides completed objectives.\n"
+MONKEYQUEST_HELP_SHOWCOMPLETEDOBJECTIVES_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest showcompletedobjectives\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Shows completed objectives.\n"
+MONKEYQUEST_HELP_FONTHEIGHT_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest fontheight=\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Sets the font height to the specified value, the default is 12.\n"
+MONKEYQUEST_HELP_SHOWTOOLTIPOBJECTIVES_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest showtooltipobjectives\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Adds a line to the tooltip which shows the completeness of that quest objective.\n"
+MONKEYQUEST_HELP_HIDETOOLTIPOBJECTIVES_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest hidetooltipobjectives\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Does not add a line to the tooltip about the completeness of that quest objective.\n"
+MONKEYQUEST_HELP_ALLOWRIGHTCLICK_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest allowrightclick\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Allows you to right-click to open MonkeyBuddy.\n"
+MONKEYQUEST_HELP_DISALLOWRIGHTCLICK_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest disallowrightclick\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Disallows you from right-clicking to open MonkeyBuddy.\n"
+MONKEYQUEST_HELP_HIDETITLEBUTTONS_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest hidetitlebuttons\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Hides the title buttons.\n"
+MONKEYQUEST_HELP_SHOWTITLEBUTTONS_MSG = MONKEYQUEST_INFO_COLOUR .. "Slash Command: /mquest showtitlebuttons\n" ..
+ MONKEYQUEST_CHAT_COLOUR .. "Shows the title buttons.\n"
+
+-- tooltip strings
+MONKEYQUEST_TOOLTIP_QUESTITEM = "Objeto de Quest" -- as it appears in the tooltip of unique quest items
+MONKEYQUEST_TOOLTIP_QUEST = "Quest"
+MONKEYQUEST_TOOLTIP_SLAIN = "slain" -- as it appears in the objective text
+
+-- misc quest strings
+MONKEYQUEST_DUNGEON = "Mazmorra"
+MONKEYQUEST_PVP = "PvP"
+
+-- noob tips
+MONKEYQUEST_NOOBTIP_HEADER = "Noob Tip:"
+
+MONKEYQUEST_NOOBTIP_CLOSE = "Pulsa aqui para cerrar esta ventana. Podras volver:"
+MONKEYQUEST_NOOBTIP_MINIMIZE = "Pulsa aqui para miminizar esta ventana"
+MONKEYQUEST_NOOBTIP_RESTORE = "Pulsa aqui para restaurar esta ventana"
+MONKEYQUEST_NOOBTIP_SHOWALLHIDDEN = "Pulsa aqui para ver todos los objetos ocultos"
+MONKEYQUEST_NOOBTIP_HIDEALLHIDDEN = "Pulsa aqui para ocultar todos los objetos escondidos"
+MONKEYQUEST_NOOBTIP_HIDEBUTTON = "Pulsa aqui para ocultar esta quest. Activalo en 'Show all hidden items' para mirar todas las quest"
+MONKEYQUEST_NOOBTIP_TITLE = "Click derecho para abrir MonkeyBuddy y poder configurarlo " .. MONKEYQUEST_TITLE
+MONKEYQUEST_NOOBTIP_QUESTHEADER = "Pulsa aqui para ocultar/mostrar todas las quest en esta zona. Activa 'Show all hidden items' para mostrar las de las zonas en que no estas."
+
+-- bindings
+BINDING_NAME_MONKEYQUEST_CLOSE = "Cerrar/Abrir"
+BINDING_NAME_MONKEYQUEST_MINIMIZE = "Minimizar/Restaurar"
+BINDING_NAME_MONKEYQUEST_HIDDEN = "Ocultar/Mostrar todos los objetos ocultos"
+BINDING_NAME_MONKEYQUEST_NOHEADERS = "Toggle No Headers"
+
+end
diff --git a/MonkeyQuest/readme.txt b/MonkeyQuest/readme.txt
new file mode 100644
index 0000000..50ef349
--- /dev/null
+++ b/MonkeyQuest/readme.txt
@@ -0,0 +1,128 @@
+MonkeyQuest Slash commands:
+
+/mquest help []
+Shows help. Optional parameter of any other command.
+e.g. /mquest help reset
+
+/mquest reset
+Resets all settings to the default
+
+/mquest open
+Opens the main frame
+
+/mquest close
+Closes the main frame
+
+/mquest showhidden
+Displays the collapsed quest headers and hidden quests
+
+/mquest hidehidden
+Hides the collapsed quest headers and hidden quests
+
+/mquest useoverviews
+Use quest overviews for quests without objectives
+
+/mquest nooverviews
+Don't use quest overviews for quests without objectives
+
+/mquest tipanchor=
+Set the anchor point of the tooltip to any of the following:
+ANCHOR_TOPLEFT
+ANCHOR_TOPRIGHT
+ANCHOR_TOP
+ANCHOR_LEFT
+ANCHOR_RIGHT
+ANCHOR_BOTTOMLEFT
+ANCHOR_BOTTOMRIGHT
+ANCHOR_BOTTOM
+ANCHOR_CURSOR
+DEFAULT (for the default gametooltip position)
+NONE
+
+/mquest alpha=<0 - 255>
+Sets the backdrop alpha to the specified value
+
+/mquest width=<200-600>
+Sets the width to the specified value, the default is 255.
+
+/mquest hideheaders
+Hides the displaying of ANY quest area headers in the MonkeyQuest frame.
+
+/mquest showheaders
+Allows the displaying of quest area headers in the MonkeyQuest frame.
+Note: see 'showhidden' and 'hidehidden' for additional rules.
+
+/mquest hideborder
+Hides the MonkeyQuest frame border.
+
+/mquest showborder
+Hides the MonkeyQuest frame border.
+
+/mquest growup
+Makes the main frame expand upwards.
+
+/mquest growdown
+Makes the main frame expand downwards.
+
+/mquest shownumquests
+Shows the number of quests you have out of 20 next to the title.
+
+/mquest hidenumquests
+Hide the number of quests you have out of 20.
+
+/mquest lock
+Locks the MonkeyQuest frame in place.
+
+/mquest unlock
+Un-Locks the MonkeyQuest frame.
+
+/mquest colourtitleon
+Uses the difficulty to colour the entier quest title.
+
+/mquest colourtitleoff
+Doesn't colour the entire quest title by difficulty.
+
+/mquest hidecompletedquests
+Hides completed quests.
+
+/mquest showcompletedquests
+Shows completed quests.
+
+/mquest hidecompletedobjectives
+Hides completed objectives.
+
+/mquest showcompletedobjectives
+Shows completed objectives.
+
+/mquest fontheight=<8-48>
+Sets the font height to the specified value, the default is 12.
+
+/mquest showtooltipobjectives
+Shows objectives inside tooltips.
+
+/mquest hidetooltipobjectives
+Hides objectives inside tooltips.
+
+/mquest allowrightclick
+Allows right-click to open MonkeyBuddy.
+
+/mquest disallowrightclick
+Disallows right-click from opening MonkeyBuddy.
+
+/mquest hidetitlebuttons
+Hides the title buttons.
+
+/mquest showtitlebuttons
+Shows the title buttons.
+
+/mquest hidetitle
+Hides the title "MonkeyQuest" text.
+
+/mquest showtitle
+Shows the title "MonkeyQuest" text.
+
+/mquest allowworkcomplete
+Sets the work complete sound to "on"
+
+/mquest disallowworkcomplete
+Sets the work complete sound to "off"
\ No newline at end of file
diff --git a/MonkeyQuest/valent.mp3 b/MonkeyQuest/valent.mp3
new file mode 100644
index 0000000..50d8600
Binary files /dev/null and b/MonkeyQuest/valent.mp3 differ
diff --git a/MonkeyQuestLog/MonkeyQuestLog.toc b/MonkeyQuestLog/MonkeyQuestLog.toc
new file mode 100644
index 0000000..2174399
--- /dev/null
+++ b/MonkeyQuestLog/MonkeyQuestLog.toc
@@ -0,0 +1,8 @@
+## Interface: 100002
+## Title: MonkeyQuestLog v10.0.2
+## Notes: Replacement Quest Log. (http://www.toctastic.net/)
+## Notes-deDE: Ersetzt den Questlog. (http://www.toctastic.net/)
+## Author: Trentin, Jim-Bim, azuraji
+## SavedVariables: mkql_Saved
+## Dependencies: MonkeyLibrary, MonkeyQuest
+MonkeyQuestLogFrame.xml
diff --git a/MonkeyQuestLog/MonkeyQuestLogFrame.lua b/MonkeyQuestLog/MonkeyQuestLogFrame.lua
new file mode 100644
index 0000000..7495fab
--- /dev/null
+++ b/MonkeyQuestLog/MonkeyQuestLogFrame.lua
@@ -0,0 +1,424 @@
+MkQL_global_iCurrQuest = 0;
+MkQL_global_iCurrQuestId = 0;
+
+local MkQL_local_bResizing = false;
+
+local MkQL_local_iExtraHeight = 0;
+
+
+function MkQL_OnLoad(self)
+
+ -- register events
+ self:RegisterEvent("PLAYER_LOGIN");
+ self:RegisterEvent("QUEST_LOG_UPDATE");
+
+
+ -- Let the user know the mod is loaded
+ MonkeyLib_DebugMsg(MONKEYQUESTLOG_LOADED_MSG);
+end
+
+-- this event is used to have nice smooth resizing
+function MkQL_OnUpdate()
+ if (MkQL_local_bResizing) then
+ MkQL_UpdateSize();
+ end
+end
+
+function MkQL_OnEvent(self, event, ...)
+
+ if (event == "PLAYER_LOGIN") then
+ -- this event gets called whenever a unit's name changes (supposedly)
+ -- Note: Sometimes it gets called when unit's name gets set to
+ -- UNKNOWNOBJECT
+
+ -- setup the title of the main frame
+ MkQL_Title_Txt:SetText(MONKEYQUESTLOG_TITLE);
+ MkQL_Title_Txt:SetTextColor(MONKEYLIB_TITLE_COLOUR.r, MONKEYLIB_TITLE_COLOUR.g, MONKEYLIB_TITLE_COLOUR.b);
+ --MkQL_Title_Txt:Show();
+
+ -- temp hack test!
+ --MkQL_SetQuest(4);
+
+ MonkeyLib_DebugMsg("MonkeyQuestLog PLAYER_LOGIN");
+
+ -- exit this event
+ return;
+ end -- PLAYER_LOGIN
+
+ if (event == 'QUEST_LOG_UPDATE') then
+ if (MkQL_Main_Frame:IsVisible()) then
+ MkQL_SetQuest(MkQL_global_iCurrQuest);
+ end
+
+ return;
+ end -- QUEST_LOG_UPDATE
+end
+
+function MkQL_CloseButton_OnClick()
+ MkQL_Main_Frame:Hide();
+end
+
+function MkQL_RewardItem_OnClick(self, button)
+ MonkeyLib_DebugMsg("self.type: "..self.type);
+ MonkeyLib_DebugMsg("self:GetID(): "..self:GetID());
+ MonkeyLib_DebugMsg("self.rewardType: "..self.rewardType);
+ MonkeyLib_DebugMsg("GetQuestItemLink(self.type, self:GetID()): "..GetQuestLogItemLink(self.type, self:GetID()));
+
+ if (IsControlKeyDown()) then
+
+ if (self.rewardType ~= "spell") then
+ DressUpItemLink(GetQuestLogItemLink(self.type, self:GetID()));
+ end
+ elseif (IsShiftKeyDown()) then
+ if (ChatFrameEditBox:IsVisible()) then
+ ChatFrameEditBox:Insert(GetQuestLogItemLink(self.type, self:GetID()));
+ end
+ end
+end
+
+function MkQL_SetQuest(iQuestNum)
+ -- Get the quest title info
+ --local strQuestLogTitleText, strQuestLevel, strQuestTag, isHeader, isCollapsed, isComplete = GetQuestLogTitle(iQuestNum);
+ -- local strQuestLogTitleText, _, _, _, _, isComplete, _, questID = GetQuestLogTitle(iQuestNum);
+
+ local questInfo = C_QuestLog.GetInfo(iQuestNum)
+
+ if (questInfo == nil) then
+ MkQL_Main_Frame:Hide();
+ do return end
+ end
+
+ -- show the main frame
+ MkQL_Main_Frame:Show();
+
+ local isComplete = C_QuestLog.IsComplete(questInfo.questID)
+ local isFailed = C_QuestLog.IsFailed(questInfo.questID)
+ local questTagInfo = C_QuestLog.GetQuestTagInfo(questInfo.questID);
+
+ -- Select the quest log entry for other functions like GetNumQuestLeaderBoards()
+ C_QuestLog.SetSelectedQuest(questInfo.questID);
+
+ MkQL_global_iCurrQuest = iQuestNum;
+ MkQL_global_iCurrQuestId = questInfo.questID;
+
+ local strQuestDescription, strQuestObjectives = GetQuestLogQuestText(iQuestNum);
+
+ local strOverview = strQuestObjectives;
+
+ -- Set the quest tag
+ if ( isFailed ) then
+ MkQL_QuestTitle_Txt:SetText(questInfo.title .. " (" .. MONKEYQUEST_QUEST_FAILED .. ")");
+ elseif ( isComplete ) then
+ MkQL_QuestTitle_Txt:SetText(questInfo.title .. " (" .. MONKEYQUEST_QUEST_DONE .. ")");
+ else
+ MkQL_QuestTitle_Txt:SetText(questInfo.title);
+ end
+
+ if (strOverview ~= nil) then
+ strOverview = MkQL_HighlightText(strOverview);
+ else
+ MkQL_Main_Frame:Hide(); return
+ end
+
+ if (GetNumQuestLeaderBoards() > 0) then
+
+ strOverview = strOverview .. "\n\n";
+
+ for i=1, GetNumQuestLeaderBoards(), 1 do
+ local strLeaderBoardText, strType, iFinished = GetQuestLogLeaderBoard(i);
+
+ if (strLeaderBoardText) then
+ strOverview = strOverview .. " " .. MonkeyQuest_GetLeaderboardColorStr(strLeaderBoardText) ..
+ strLeaderBoardText .. "\n";
+ end
+ end
+ end
+
+ MkQL_Overview_Txt:SetText(strOverview);
+ MkQL_Desc_Txt:SetText(MONKEYQUESTLOG_DESC_HEADER);
+ if (strQuestDescription ~= nil) then
+ MkQL_DescBody_Txt:SetText(MkQL_HighlightText(strQuestDescription));
+ else
+ MkQL_Main_Frame:Hide(); return
+ end
+
+ MkQL_UpdateSize();
+
+ -- REWARDS
+ local numQuestRewards = GetNumQuestLogRewards(questInfo.questID);
+ local numQuestChoices = GetNumQuestLogChoices(questInfo.questID);
+ local rewardMoney = GetQuestLogRewardMoney(questInfo.questID);
+ local name, texture, numItems, quality, isUsable = 1;
+ local numTotalRewards = numQuestRewards + numQuestChoices;
+
+ local rewardItem = nil;
+
+ if ( numTotalRewards == 0 and rewardMoney == 0 ) then
+ MkQL_Rewards_Txt:SetText("");
+ MkQL_local_iExtraHeight = 0;
+ else
+ MkQL_Rewards_Txt:SetText(MONKEYQUESTLOG_REWARDS_HEADER);
+ MkQL_local_iExtraHeight = 16;
+ end
+
+ -- debug info
+
+ MonkeyLib_DebugMsg("numQuestChoices=" .. numQuestChoices);
+ MonkeyLib_DebugMsg("numQuestRewards=" .. numQuestRewards);
+ MonkeyLib_DebugMsg("rewardMoney=" .. rewardMoney);
+
+ -- first erase the reward items
+ for i=numTotalRewards + 1, MkQL_MAX_REWARDS, 1 do
+ rewardItem = _G["MkQL_RewardItem"..i.."_Btn"];
+
+ if (rewardItem ~= nil) then
+ rewardItem:Hide();
+ end
+ end
+
+
+ if (numQuestChoices > 0) then
+ MkQL_RewardsChoose_Txt:SetText(MkQL_REWARDSCHOOSE_TXT);
+
+ -- anchor the reward items
+ MkQL_RewardItem1_Btn:SetPoint("TOPLEFT", "MkQL_RewardsChoose_Btn", "BOTTOMLEFT", 0, -4);
+ MkQL_local_iExtraHeight = MkQL_local_iExtraHeight + 4;
+
+ else
+ MkQL_RewardsChoose_Txt:SetText("");
+ end
+
+ -- blah blah do the choices
+ for i=1, numQuestChoices, 1 do
+
+ rewardItem = _G["MkQL_RewardItem"..(i).."_Btn"];
+ rewardItem.type = "choice";
+ numItems = 1;
+ name, texture, numItems, quality, isUsable = GetQuestLogChoiceInfo(i);
+
+ rewardItem:SetID(i)
+ rewardItem:Show();
+
+ -- For the tooltip
+ rewardItem.rewardType = "item";
+ SetItemButtonCount(rewardItem, numItems);
+ SetItemButtonTexture(rewardItem, texture);
+ if ( isUsable ) then
+ SetItemButtonTextureVertexColor(rewardItem, 1.0, 1.0, 1.0);
+ else
+ SetItemButtonTextureVertexColor(rewardItem, 0.5, 0, 0);
+ end
+
+ rewardItem:ClearAllPoints();
+
+ if (i > 1) then
+ rewardItem:SetPoint("TOPLEFT", "MkQL_RewardItem"..(i - 1).."_Btn", "TOPRIGHT", 4, 0);
+ else
+ rewardItem:SetPoint("TOPLEFT", "MkQL_RewardsChoose_Btn", "BOTTOMLEFT", 0, -10);
+ end
+
+ MonkeyLib_DebugMsg("Quest choices loop!");
+ end
+
+
+ -- do the rewards
+ if (numQuestRewards > 0 or rewardMoney > 0) then
+ MkQL_RewardsReceive_Txt:SetText(MkQL_REWARDSRECEIVE_TXT);
+
+ if (numQuestChoices > 0) then
+ -- re anchor
+ MkQL_RewardsReceive_Btn:SetPoint("TOPLEFT", "MkQL_RewardItem1_Btn", "BOTTOMLEFT", 0, -15);
+ else
+ MkQL_RewardsReceive_Btn:SetPoint("TOPLEFT", "MkQL_Rewards_Btn", "BOTTOMLEFT", 0, -4);
+ end
+
+ MkQL_local_iExtraHeight = MkQL_local_iExtraHeight + 8;
+ else
+ MkQL_RewardsReceive_Txt:SetText("");
+ end
+
+
+
+ for i=1, numQuestRewards, 1 do
+ rewardItem = _G["MkQL_RewardItem"..(i + numQuestChoices).."_Btn"];
+ rewardItem.type = "reward";
+ numItems = 1;
+ name, texture, numItems, quality, isUsable = GetQuestLogRewardInfo(i, questInfo.questID);
+
+ rewardItem:SetID(i)
+ rewardItem:Show();
+
+ -- For the tooltip
+ rewardItem.rewardType = "item";
+ SetItemButtonCount(rewardItem, numItems);
+ SetItemButtonTexture(rewardItem, texture);
+ if ( isUsable ) then
+ SetItemButtonTextureVertexColor(rewardItem, 1.0, 1.0, 1.0);
+ else
+ SetItemButtonTextureVertexColor(rewardItem, 0.5, 0, 0);
+ end
+
+ rewardItem:ClearAllPoints();
+
+ if (i > 1) then
+ rewardItem:SetPoint("TOPLEFT", "MkQL_RewardItem"..(i + numQuestChoices - 1).."_Btn", "TOPRIGHT", 4, 0);
+ else
+ rewardItem:SetPoint("TOPLEFT", "MkQL_RewardsReceive_Btn", "BOTTOMLEFT", 0, -4);
+ end
+
+ MonkeyLib_DebugMsg("Quest rewards loop!");
+ end
+
+ if (rewardMoney == 0) then
+ MkQL_RewardMoney_Frame:Hide();
+ else
+ -- the money
+ MkQL_RewardMoney_Frame:Show();
+ MoneyFrame_Update("MkQL_RewardMoney_Frame", rewardMoney);
+
+ MkQL_RewardMoney_Frame:ClearAllPoints();
+
+ if (numQuestRewards > 0) then
+ MkQL_RewardMoney_Frame:SetPoint("TOPLEFT", "MkQL_RewardItem"..(1 + numQuestChoices).."_Btn", "BOTTOMLEFT", 0, -4);
+ else
+ MkQL_RewardMoney_Frame:SetPoint("TOPLEFT", "MkQL_RewardsReceive_Btn", "BOTTOMLEFT", 0, -3);
+ end
+
+ MkQL_local_iExtraHeight = MkQL_local_iExtraHeight + 4;
+ end
+
+ -- share button
+ -- Determine whether the selected quest is shareable or not
+ if (C_QuestLog.IsPushableQuest(questInfo.questID) and GetNumSubgroupMembers() > 0) then
+ MkQL_ShareQuest_Btn:Enable();
+ else
+ MkQL_ShareQuest_Btn:Disable();
+ end
+
+ -- abandon button
+ -- Determine whether the selected quest is abandonable or not
+ if (C_QuestLog.CanAbandonQuest(questInfo.questID)) then
+ MkQL_AbandonQuest_Btn:Enable();
+ else
+ MkQL_AbandonQuest_Btn:Disable();
+ end
+
+ MkQL_UpdateSize();
+end
+
+function MkQL_Money_Frame_OnLoad(self)
+ MoneyFrame_OnLoad(self);
+ MoneyFrame_SetType(self, "STATIC");
+end
+
+function MkQL_UpdateSize()
+
+ local iWidth = MkQL_Main_Frame:GetWidth() - 48;
+
+
+ MkQL_Title_Txt:SetWidth(iWidth);
+
+ MkQL_QuestTitle_Txt:SetWidth(iWidth);
+ MkQL_Overview_Txt:SetWidth(iWidth);
+
+ MkQL_Desc_Txt:SetWidth(iWidth);
+ MkQL_DescBody_Txt:SetWidth(iWidth);
+
+ MkQL_RewardsChoose_Txt:SetWidth(iWidth);
+ MkQL_RewardsReceive_Txt:SetWidth(iWidth);
+
+
+ MkQL_Title_Btn:SetHeight(MkQL_Title_Txt:GetHeight());
+
+ MkQL_QuestTitle_Btn:SetHeight(MkQL_QuestTitle_Txt:GetHeight());
+ MkQL_Overview_Btn:SetHeight(MkQL_Overview_Txt:GetHeight());
+
+ MkQL_Desc_Btn:SetHeight(MkQL_Desc_Txt:GetHeight());
+ MkQL_DescBody_Btn:SetHeight(MkQL_DescBody_Txt:GetHeight());
+
+ MkQL_RewardsChoose_Btn:SetHeight(MkQL_RewardsChoose_Txt:GetHeight());
+ MkQL_RewardsReceive_Btn:SetHeight(MkQL_RewardsReceive_Txt:GetHeight());
+
+ local iHeight = MkQL_Title_Txt:GetHeight() + MkQL_QuestTitle_Txt:GetHeight() +
+ MkQL_Overview_Txt:GetHeight() + MkQL_Desc_Txt:GetHeight() + MkQL_DescBody_Txt:GetHeight() +
+ MkQL_RewardsChoose_Txt:GetHeight() + MkQL_RewardsReceive_Txt:GetHeight() + (MkQL_RewardItem1_Btn:GetHeight() * 2);
+
+ iHeight = iHeight + 24 + MkQL_local_iExtraHeight;
+
+
+ MkQL_ScrollChild:SetHeight(iHeight);
+
+ MkQL_ScrollFrame:UpdateScrollChildRect();
+end
+
+-- this function is called when the frame should be dragged around
+function MkQL_OnMouseDown(self, button)
+
+ -- left button moves the frame around
+ if (button == "LeftButton") then
+ MkQL_Main_Frame:StartMoving();
+ end
+end
+
+-- this function is called when the frame is stopped being dragged around
+function MkQL_OnMouseUp(self, button)
+
+ if (button == "LeftButton") then
+ MkQL_Main_Frame:StopMovingOrSizing();
+ end
+end
+
+-- this function is called when the frame should be dragged around
+function MkQL_Resizer_Btn_OnMouseDown(self, button)
+ MonkeyLib_DebugMsg("MkQL_Resizer_Btn_OnMouseDown "..button);
+
+ -- left button moves the frame around
+ if (button == "LeftButton") then
+
+ MonkeyLib_DebugMsg("MkQL_Resizer_Btn_OnMouseDown");
+
+ MkQL_Main_Frame:StartSizing();
+ MkQL_local_bResizing = true;
+
+ end
+end
+
+-- this function is called when the frame is stopped being dragged around
+function MkQL_Resizer_Btn_OnMouseUp(self, button)
+ MonkeyLib_DebugMsg("MkQL_Resizer_Btn_OnMouseUp "..button);
+ if (button == "LeftButton") then
+
+ MonkeyLib_DebugMsg("MkQL_Resizer_Btn_OnMouseUp");
+
+ MkQL_Main_Frame:StopMovingOrSizing();
+ MkQL_local_bResizing = false;
+
+ end
+end
+
+
+function MkQL_AbandonQuest_Btn_OnMouseClick(self, button)
+ local questInfo = C_QuestLog.GetInfo(MkQL_global_iCurrQuest)
+
+ C_QuestLog.SetAbandonQuest();
+ StaticPopup_Show("ABANDON_QUEST", questInfo.title);
+
+ MkQL_global_iCurrQuest = 1;
+end
+
+function MkQL_ShareQuest_Btn_OnMouseClick(self, button)
+
+ -- Remember the currently selected quest log entry
+ local tmpSelectedQuestLogQuestId = C_QuestLog.GetSelectedQuest();
+
+ -- Select the quest log entry for other functions like GetNumQuestLeaderBoards()
+ C_QuestLog.SetSelectedQuest(MkQL_global_iCurrQuestId);
+
+ -- try and share this quest with party members
+ if (C_QuestLog.IsPushableQuest(MkQL_global_iCurrQuestId) and GetNumSubgroupMembers() > 0) then
+ QuestLogPushQuest(MkQL_global_iCurrQuest);
+ end
+
+ -- Restore the currently selected quest log entry
+ C_QuestLog.SetSelectedQuest(tmpSelectedQuestLogQuestId);
+end
\ No newline at end of file
diff --git a/MonkeyQuestLog/MonkeyQuestLogFrame.xml b/MonkeyQuestLog/MonkeyQuestLogFrame.xml
new file mode 100644
index 0000000..0d080e0
--- /dev/null
+++ b/MonkeyQuestLog/MonkeyQuestLogFrame.xml
@@ -0,0 +1,654 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MkQL_Money_Frame_OnLoad(self);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ MkQL_OnLoad(self);
+ tinsert(UISpecialFrames, self:GetName());
+
+ self:SetBackdrop({
+ bgFile = "Interface\\AddOns\\MonkeyLibrary\\Textures\\BackDrop.tga",
+ edgeFile = "Interface\\Tooltips\\UI-Tooltip-Border",
+ edgeSize = 8,
+ tile = true,
+ tileSize = 16,
+ insets = { 50, 50, 5, 5 }
+ })
+
+
+ MkQL_OnUpdate(self, elapsed);
+
+
+ MkQL_OnEvent(self, event, ...);
+
+
+ MkQL_OnMouseDown(self, button);
+
+
+ MkQL_OnMouseUp(self, button);
+
+
+ --MonkeyQuest_OnEnter();
+
+
+ --MonkeyQuest_OnLeave();
+
+
+
+
diff --git a/MonkeyQuestLog/MonkeyQuestLogSyntax.lua b/MonkeyQuestLog/MonkeyQuestLogSyntax.lua
new file mode 100644
index 0000000..357349c
--- /dev/null
+++ b/MonkeyQuestLog/MonkeyQuestLogSyntax.lua
@@ -0,0 +1,18 @@
+-- originally I thought this function would be very complicated, but it turns out that
+-- highlighting all first letter capitalized words hits over 95% of the significant words
+function MkQL_HighlightText(strText)
+
+ local strColourWhite = MonkeyLib_ARGBToColourStr(1, 1, 1, 1);
+ local strColourRed = MonkeyLib_ARGBToColourStr(1, 1, 0, 0);
+ local strColourBlue = MonkeyLib_ARGBToColourStr(1, 0.6, 0.6, 1);
+ local strColourGreen = MonkeyLib_ARGBToColourStr(1, 0, 1, 0);
+
+ -- highlight all numbers
+ strText = string.gsub(strText, " (%d+) ", " "..strColourRed.."%1"..strColourWhite.." ");
+
+ -- highlight all first letter capitalized words, needs to run twice
+ strText = string.gsub(strText, "(%w+)(,*) (%u%a+'*%a*)", "%1%2 "..strColourBlue.."%3"..strColourWhite);
+ strText = string.gsub(strText, "(%w+)(,*) (%u%a+'*%a*)", "%1%2 "..strColourBlue.."%3"..strColourWhite);
+
+ return strText;
+end
\ No newline at end of file
diff --git a/MonkeyQuestLog/localization.lua b/MonkeyQuestLog/localization.lua
new file mode 100644
index 0000000..abbbe71
--- /dev/null
+++ b/MonkeyQuestLog/localization.lua
@@ -0,0 +1,32 @@
+-- Not translations
+MkQL_MAX_REWARDS = 10
+MONKEYQUESTLOG_TITLE = "MonkeyQuestLog"
+MONKEYQUESTLOG_VERSION = "2.9.10"
+MONKEYQUESTLOG_TITLE_VERSION = MONKEYQUESTLOG_TITLE .. " v" .. MONKEYQUESTLOG_VERSION
+MONKEYQUESTLOG_INFO_COLOUR = "|cffffff00"
+
+-- English, the default
+MONKEYQUESTLOG_DESCRIPTION = "Displays the full quest description for MonkeyQuest"
+MONKEYQUESTLOG_LOADED_MSG = MONKEYQUESTLOG_INFO_COLOUR .. MONKEYQUESTLOG_TITLE .. " v" .. MONKEYQUESTLOG_VERSION .. " loaded"
+
+MONKEYQUESTLOG_DESC_HEADER = "Description"
+MONKEYQUESTLOG_REWARDS_HEADER = "Rewards"
+MkQL_REWARDSCHOOSE_TXT = "Choose one of:"
+MkQL_REWARDSRECEIVE_TXT = "Receive all of:"
+MkQL_SHARE_TXT = "Share"
+MkQL_ABANDON_TXT = "Abandon"
+
+
+if (GetLocale() == "deDE") then
+
+MONKEYQUESTLOG_DESCRIPTION = "Zeigt die volle Quest Beschreibung für MonkeyQuest an"
+MONKEYQUESTLOG_LOADED_MSG = MONKEYQUESTLOG_INFO_COLOUR .. MONKEYQUESTLOG_TITLE .. " v" .. MONKEYQUESTLOG_VERSION .. " geladen"
+
+MONKEYQUESTLOG_DESC_HEADER = "Beschreibung"
+MONKEYQUESTLOG_REWARDS_HEADER = "Belohnungen"
+MkQL_REWARDSCHOOSE_TXT = "Auf Euch wartet eine dieser Belohnungen:"
+MkQL_REWARDSRECEIVE_TXT = "Ihr bekommt:"
+MkQL_SHARE_TXT = "Teilen"
+MkQL_ABANDON_TXT = "Abbrechen"
+
+end