diff --git a/myReputation.lua b/myReputation.lua
deleted file mode 100755
index 5b41653..0000000
--- a/myReputation.lua
+++ /dev/null
@@ -1,635 +0,0 @@
-----------------------------------------------------------------------
--- Variables
-----------------------------------------------------------------------
-
--- Basic Addon Variables
-MYREP_NAME = "myReputationClassic";
-MYREP_VERSION = GetAddOnMetadata("myReputation", "Version") or "N/A";
-MYREP_VERSION_STRING = "|cffffd700myReputation Classic "..GREEN_FONT_COLOR_CODE..MYREP_VERSION.."|cffffd700 by |cffff8c00HonorGoG";
-MYREP_MSG_FORMAT = "%s |cffffff00%s|r";
-MYREP_REGEXP_CHANGED = string.gsub( FACTION_STANDING_CHANGED, "'?%%[1|2]$s'?", "%(.+)" );
-MYREP_REGEXP_DECREASED = string.gsub( FACTION_STANDING_DECREASED, "'?%%[s|d]'?", "%(.+)" );
-MYREP_REGEXP_DECREASED_GENERIC = string.gsub( FACTION_STANDING_DECREASED_GENERIC, "'?%%[s|d]'?", "%(.+)" );
-MYREP_REGEXP_INCREASED = string.gsub( FACTION_STANDING_INCREASED, "'?%%[s|d]'?", "%(.+)" );
-MYREP_REGEXP_INCREASED_GENERIC = string.gsub( FACTION_STANDING_INCREASED_GENERIC, "'?%%[s|d]'?", "%(.+)" );
-
--- Configuration Variables and their Standard Values
-myReputation_Config = { };
-myReputation_DefaultConfig = { };
-myReputation_DefaultConfig.Enabled = true;
-myReputation_DefaultConfig.More = true;
-myReputation_DefaultConfig.Blizz = false;
-myReputation_DefaultConfig.Splash = true;
-myReputation_DefaultConfig.Debug = false;
-myReputation_DefaultConfig.Frame = 1;
-myReputation_DefaultConfig.Info = 'Text';
-myReputation_DefaultConfig.Tooltip = 'Absolute';
-
--- Temp Variables and Arrays
-myReputations = { };
-mySessionReputations = { };
-myReputation_Var = { };
-myReputation_Var.InWorld = false;
-
--- Function Hooks
-local lOriginal_ReputationFrame_Update;
-local lOriginal_ReputationBar_OnClick;
-local lOriginal_CFAddMessage_General;
-local lOriginal_CFAddMessage_Combat;
-
-local _G = getfenv(0);
-
-----------------------------------------------------------------------
--- OnFoo
-----------------------------------------------------------------------
-
-function myReputation_OnLoad(this)
- --Slash command
- SlashCmdList["MYREPCOMMAND"] = myReputation_SlashHandler;
- SLASH_MYREPCOMMAND1 = "/myreputation";
- SLASH_MYREPCOMMAND2 = "/myrep";
-
- -- Register Default Events
- this:RegisterEvent("ADDON_LOADED");
- this:RegisterEvent("PLAYER_LOGIN");
- this:RegisterEvent("PLAYER_ENTERING_WORLD");
- this:RegisterEvent("UNIT_AURA");
- this:RegisterEvent("PLAYER_TARGET_CHANGED");
- this:RegisterEvent("PLAYER_LEAVING_WORLD");
-
- if (DEFAULT_CHAT_FRAME) then
- myReputation_ChatMsg(MYREP_VERSION));
- end
-end
-
-function myReputation_OnEvent(this, event, arg1)
- if (event == "ADDON_LOADED") then
- myReputation_AddOptionMt(myReputation_Config, myReputation_DefaultConfig);
-
- -- Delete Unused Config Values
- for i,v in pairs(myReputation_Config) do
- if (myReputation_DefaultConfig[i] == nil) then
- if (myReputation_Config.Debug == true) then
- myReputation_ChatMsg('Clean Up Config '..i);
- end
- myReputation_Config[i] = nil;
- end
- end
- end
-
- -- Fired just before PLAYER_ENTERING_WORLD on login and UI Reload
- if (event == "PLAYER_LOGIN") then
- if (
- (myReputation_Config.Frame > 0) and
- (myReputation_Config.Frame <= FCF_GetNumActiveChatFrames())
- ) then
- REPUTATIONS_CHAT_FRAME = _G["ChatFrame"..myReputation_Config.Frame];
- else
- REPUTATIONS_CHAT_FRAME = DEFAULT_CHAT_FRAME;
- end
- myReputation_Toggle(myReputation_Config.Enabled,true);
- end
-
- -- Register Ingame Events
- if (event == "PLAYER_ENTERING_WORLD") then
- this:RegisterEvent("UPDATE_FACTION");
- end
-
- -- Unregister Ingame Events
- if (event == "PLAYER_LEAVING_WORLD") then
- this:UnregisterEvent("UPDATE_FACTION");
- end
-
- -- Event UPDATE_FACTION
- if (
- (event == "UPDATE_FACTION") and
- (myReputation_Config.Enabled == true)
- ) then
- myReputation_Factions_Update();
- end
-
- -- Events which are usable to get numFactions > 0
- if ((event == "UNIT_AURA") or (event == "PLAYER_TARGET_CHANGED")) then
- -- Save Session StartRep
- if (not mySessionReputations["Darnassus"]) then
-
- local numFactions = GetNumFactions();
- local factionIndex;
- local name, standingID, barMin, barMax, barValue, isHeader, hasRep;
-
- for factionIndex=1, numFactions, 1 do
- name, _, standingID, barMin, barMax, barValue, _, _, isHeader, _, hasRep = GetFactionInfo(factionIndex);
-
- if (not isHeader or hasRep) then
- barMax = barMax - barMin;
- barValue = barValue - barMin;
- barMin = 0;
- mySessionReputations[name] = { };
- mySessionReputations[name].standingID = standingID;
- mySessionReputations[name].barValue = barValue;
- mySessionReputations[name].barMax = barMax;
-
- end
- end
- end
-
- this:UnregisterEvent("UNIT_AURA");
- this:UnregisterEvent("PLAYER_TARGET_CHANGED");
- end
-end
-
-----------------------------------------------------------------------
--- Metatable Functions
-----------------------------------------------------------------------
-
-function myReputation_AddOptionMt(options, defaults)
- setmetatable(options, { __index = defaults });
-end
-
-----------------------------------------------------------------------
--- Other Functions
-----------------------------------------------------------------------
-
--- Send Message to Chat Frame
-function myReputation_ChatMsg(message)
- DEFAULT_CHAT_FRAME:AddMessage(message);
-end
-
--- Send Message to Reputation Chat Frame
-function myReputation_RepMsg(message,r,g,b)
- REPUTATIONS_CHAT_FRAME:AddMessage(message,r,g,b);
-end
-
--- Send Message to Splash Frame
-function myReputation_SplashMessage(message,r,g,b)
- myReputation_SplashFrame:AddMessage(message, r,g,b, 1.0, UIERRORS_HOLD_TIME);
-end
-
--- SlashHandler
-function myReputation_SlashHandler(msg)
- if (msg == MYREP_CMD_STATUS) then
- myReputation_DisplayStatus();
- elseif (msg == MYREP_CMD_DEBUG) then
- myReputation_Toggle_Options("Debug");
- else
- InterfaceOptionsFrame_OpenToCategory(MYREP_NAME);
- end;
-end
-
-function myReputation_DisplayStatus()
- if (myReputation_Config.Enabled == true) then
- myReputation_ChatMsg(format(MYREP_MSG_FORMAT,MYREP_NAME,MYREP_MSG_ON));
- else
- myReputation_ChatMsg(format(MYREP_MSG_FORMAT,MYREP_NAME,MYREP_MSG_OFF));
- end
- if (myReputation_Config.Debug == true) then
- myReputation_ChatMsg(format(MYREP_MSG_FORMAT,MYREP_MSG_DEBUG,MYREP_MSG_ON));
- end
- if (myReputation_Config.Blizz == true) then
- myReputation_ChatMsg(format(MYREP_MSG_FORMAT,MYREP_MSG_BLIZZ,MYREP_MSG_ON));
- else
- myReputation_ChatMsg(format(MYREP_MSG_FORMAT,MYREP_MSG_BLIZZ,MYREP_MSG_OFF));
- end
- if (myReputation_Config.More == true) then
- myReputation_ChatMsg(format(MYREP_MSG_FORMAT,MYREP_MSG_MORE,MYREP_MSG_ON));
- else
- myReputation_ChatMsg(format(MYREP_MSG_FORMAT,MYREP_MSG_MORE,MYREP_MSG_OFF));
- end
- if (myReputation_Config.Splash == true) then
- myReputation_ChatMsg(format(MYREP_MSG_FORMAT,MYREP_MSG_SPLASH,MYREP_MSG_ON));
- else
- myReputation_ChatMsg(format(MYREP_MSG_FORMAT,MYREP_MSG_SPLASH,MYREP_MSG_OFF));
- end
- myReputation_ChatMsg(format(MYREP_MSG_FORMAT,MYREP_MSG_FRAME,myReputation_Config.Frame));
- myReputation_ChatMsg(format(MYREP_MSG_FORMAT,'Info',myReputation_Config.Info));
- myReputation_ChatMsg(format(MYREP_MSG_FORMAT,'Tooltip',myReputation_Config.Tooltip));
-end
-
--- Toggles
-function myReputation_Toggle(toggle,init)
- myReputation_Config.Enabled = toggle;
-
- if (toggle == true) then
- --Hook
- if (not lOriginal_ReputationFrame_Update) then
- if (init ~= true) then
- myReputation_ChatMsg(format(MYREP_MSG_FORMAT,MYREP_NAME,MYREP_MSG_ON,"."));
- end
- lOriginal_ReputationFrame_Update = ReputationFrame_Update;
- ReputationFrame_Update = myReputation_Frame_Update_New;
- end
- if (not lOriginal_ReputationBar_OnClick) then
- lOriginal_ReputationBar_OnClick = ReputationBar_OnClick;
- ReputationBar_OnClick = myReputation_ReputationBar_OnClick;
- end
- if (not lOriginal_CFAddMessage_General) then
- lOriginal_CFAddMessage_General = _G["ChatFrame1"].AddMessage;
- _G["ChatFrame1"].AddMessage = myReputation_CFAddMessage_Allgemein;
- end
- if (not lOriginal_CFAddMessage_Combat) then
- lOriginal_CFAddMessage_Combat = _G["ChatFrame2"].AddMessage;
- _G["ChatFrame2"].AddMessage = myReputation_CFAddMessage_Kampflog;
- end
-
- if (ReputationDetailFrame:GetScript("OnShow") == nil) then
- ReputationDetailFrame:HookScript("OnShow", function(self, event)
- if (myReputation_Config.Enabled) then
- myReputation_ReputationDetailFrame:Show();
- end
- end)
- end
- if (ReputationDetailFrame:GetScript("OnHide") == nil) then
- ReputationDetailFrame:HookScript("OnHide", function(self, event)
- myReputation_ReputationDetailFrame:Hide();
- end)
- end
- else
- --Unhook
- if (lOriginal_ReputationFrame_Update) then
- if (init ~= true) then
- myReputation_ChatMsg(format(MYREP_MSG_FORMAT,MYREP_NAME,MYREP_MSG_OFF,"."));
- end
- ReputationFrame_Update = lOriginal_ReputationFrame_Update;
- lOriginal_ReputationFrame_Update = nil;
- end
- if (lOriginal_CFAddMessage_General) then
- _G["ChatFrame1"].AddMessage = lOriginal_CFAddMessage_General;
- lOriginal_CFAddMessage_General = nil;
- end
- if (lOriginal_CFAddMessage_Combat) then
- _G["ChatFrame2"].AddMessage = lOriginal_CFAddMessage_Combat;
- lOriginal_CFAddMessage_Combat = nil;
- end
- end
-end
-
-function myReputation_Toggle_Options(option)
- if (myReputation_Config[option] == true) then
- myReputation_Config[option] = false;
- myReputation_ChatMsg(format(MYREP_MSG_FORMAT,_G["MYREP_MSG_"..string.upper(option)],MYREP_MSG_OFF,"."));
- else
- myReputation_Config[option] = true;
- myReputation_ChatMsg(format(MYREP_MSG_FORMAT,_G["MYREP_MSG_"..string.upper(option)],MYREP_MSG_ON,"."));
- end
-end
-
-function myReputation_ChatFrame_Change(checked,value) --Checked will always be 0
- local number = tonumber(value);
- if (
- (value ~= nil) and
- (number > 0) and
- (number ~= 2) and
- (number <= FCF_GetNumActiveChatFrames())
- ) then
- myReputation_Config.Frame = number;
- myReputation_ChatMsg(format(MYREP_MSG_FORMAT,MYREP_MSG_FRAME,myReputation_Config.Frame,"."));
- REPUTATIONS_CHAT_FRAME = _G["ChatFrame"..myReputation_Config.Frame];
- myReputation_RepMsg(MYREP_MSG_NOTIFY,1.0,1.0,0.0);
- else
- myReputation_ChatMsg(format(MYREP_MSG_INVALID_FRAME,FCF_GetNumActiveChatFrames()));
- end
-end
-
--- Hooked Functions
-function myReputation_CFAddMessage_Allgemein(self, msg, ...)
- if (
- (myReputation_Config.Blizz == false) and
- (msg ~= nil) and
- (
- string.find(msg, MYREP_REGEXP_CHANGED) or
- string.find(msg, MYREP_REGEXP_DECREASED) or
- string.find(msg, MYREP_REGEXP_DECREASED_GENERIC) or
- string.find(msg, MYREP_REGEXP_INCREASED) or
- string.find(msg, MYREP_REGEXP_INCREASED_GENERIC)
- )
- ) then
- if (myReputation_Config.Debug == true) then
- myReputation_RepMsg("Blizzard Meldung in Frame 1 abgefangen");
- end
- else
- lOriginal_CFAddMessage_General(self, msg, ...);
- end
-end
-
-function myReputation_CFAddMessage_Kampflog(self, msg, ...)
- if (
- (myReputation_Config.Blizz == false) and
- (msg ~= nil) and
- (
- string.find(msg, MYREP_REGEXP_CHANGED) or
- string.find(msg, MYREP_REGEXP_DECREASED) or
- string.find(msg, MYREP_REGEXP_DECREASED_GENERIC) or
- string.find(msg, MYREP_REGEXP_INCREASED) or
- string.find(msg, MYREP_REGEXP_INCREASED_GENERIC)
- )
- ) then
- if (myReputation_Config.Debug == true) then
- myReputation_RepMsg("Blizzard Meldung in Frame 2 abgefangen");
- end
- else
- lOriginal_CFAddMessage_Combat(self, msg, ...);
- end
-end
-
-function myReputation_ReputationBar_OnClick(self)
- lOriginal_ReputationBar_OnClick(self);
-
- if (myReputation_Config.Debug == true) then
- myReputation_RepMsg("ReputationBar_OnClick Faction "..self.index);
- end
-
- if (ReputationDetailFrame:IsVisible()) then
- local name, description, standingID, barMin, barMax, barValue, atWarWith, canToggleAtWar, isHeader, isCollapsed, hasRep, isWatched, isChild = GetFactionInfo(self.index);
- local color = FACTION_BAR_COLORS[standingID];
-
- --Normalize Values
- barMax = barMax - barMin;
- barValue = barValue - barMin;
- barMin = 0;
-
- local text = GetText("FACTION_STANDING_LABEL"..standingID, gender);
- local absolute = barValue.."/"..barMax;
- local percent = format("%.1f%%", barValue / barMax * 100);
- local difference = 0;
-
- if (mySessionReputations[name]) then
- -- No change in standing
- if (mySessionReputations[name].standingID == standingID) then
- difference = barValue - mySessionReputations[name].barValue;
-
- -- Reputation went up and reached next standing
- elseif (mySessionReputations[name].standingID < standingID) then
- difference = barValue + mySessionReputations[name].barMax - mySessionReputations[name].barValue;
-
- -- Reputation went down and reached next standing
- else
- difference = barMax - barValue + mySessionReputations[name].barValue;
- end
- end
-
- myReputation_ReputationDetailFrameDetails:SetTextColor(color.r, color.g, color.b);
- myReputation_ReputationDetailFrameText:SetText(
- format(MYREP_MSG_FORMAT, MYREP_INFO_TEXT..":", text)
- );
- myReputation_ReputationDetailFrameAbsolute:SetText(
- format(MYREP_MSG_FORMAT, MYREP_INFO_ABSOLUTE..":", absolute)
- );
- myReputation_ReputationDetailFramePercent:SetText(
- format(MYREP_MSG_FORMAT, MYREP_INFO_PERCENT..":", percent)
- );
- myReputation_ReputationDetailFrameDifference:SetText(
- format(MYREP_MSG_FORMAT, MYREP_INFO_DIFFERENCE..":", difference)
- );
- end
-end
-
-function myReputation_Frame_Update_New()
- lOriginal_ReputationFrame_Update();
-
- local info = myReputation_Explode(myReputation_Config.Info, ',');
- local tooltip = myReputation_Explode(myReputation_Config.Tooltip, ',');
-
- local numFactions = GetNumFactions();
- local factionIndex, factionRow, factionTitle, factionStanding, factionBar, factionButton, factionLeftLine, factionBottomLine, factionBackground, color, tooltipStanding;
- local name, description, standingID, barMin, barMax, barValue, atWarWith, canToggleAtWar, isHeader, isCollapsed, hasRep, isWatched, isChild;
- local atWarIndicator, rightBarTexture;
- local factionCompleteInfo, factionTooltip, difference;
-
- local factionOffset = FauxScrollFrame_GetOffset(ReputationListScrollFrame);
-
- local gender = UnitSex("player");
- local guildName = GetGuildInfo("player");
-
- local i;
-
- for i=1, NUM_FACTIONS_DISPLAYED, 1 do
- factionIndex = factionOffset + i;
- factionRow = _G["ReputationBar"..i];
- factionBar = _G["ReputationBar"..i.."ReputationBar"];
- factionTitle = _G["ReputationBar"..i.."FactionName"];
- factionButton = _G["ReputationBar"..i.."ExpandOrCollapseButton"];
- factionLeftLine = _G["ReputationBar"..i.."LeftLine"];
- factionBottomLine = _G["ReputationBar"..i.."BottomLine"];
- factionStanding = _G["ReputationBar"..i.."ReputationBarFactionStanding"];
- factionBackground = _G["ReputationBar"..i.."Background"];
-
- if (factionIndex <= numFactions) then
- name, description, standingID, barMin, barMax, barValue, atWarWith, canToggleAtWar, isHeader, isCollapsed, hasRep, isWatched, isChild = GetFactionInfo(factionIndex);
- factionTitle:SetText(name);
-
- local factionStandingtext = GetText("FACTION_STANDING_LABEL"..standingID, gender);
-
- --Normalize Values
- barMax = barMax - barMin;
- barValue = barValue - barMin;
- barMin = 0;
-
- if (
- (not isHeader or hasRep) and
- (factionStanding:GetText() ~= nil)
- ) then
- local difference = 0;
-
- -- guild name was not available on login
- if (mySessionReputations[name] == nil and guildName ~= nil and name == guildName) then
- bakName = name;
- name = GUILD_REPUTATION;
- end
-
- if (mySessionReputations[name]) then
- -- No change in standing
- if (mySessionReputations[name].standingID == standingID) then
- difference = barValue - mySessionReputations[name].barValue;
-
- -- Reputation went up and reached next standing
- elseif (mySessionReputations[name].standingID < standingID) then
- difference = barValue + mySessionReputations[name].barMax - mySessionReputations[name].barValue;
-
- -- Reputation went down and reached next standing
- else
- difference = barMax - barValue + mySessionReputations[name].barValue;
- end
- end
-
- local join;
-
- -- guild name should be displayed
- if (bakName ~= nil) then
- name = bakName;
- end
-
- factionCompleteInfo = factionStandingtext;
- if (type(info) == 'table') then
- factionCompleteInfo = '';
- join = '';
-
- for i,v in ipairs(info) do
- if (v == 'Text') then
- factionCompleteInfo = factionCompleteInfo..join..factionStandingtext;
- end
- if (v == 'Percent') then
- factionCompleteInfo = factionCompleteInfo..join..format("%.1f%%", barValue / barMax * 100);
- end
- if (v == 'Absolute') then
- factionCompleteInfo = factionCompleteInfo..join..barValue.."/"..barMax;
- end
- if (v == 'Difference') then
- if (join ~= '') then
- factionCompleteInfo = factionCompleteInfo..join..'('..difference..')';
- else
- factionCompleteInfo = factionCompleteInfo..join..difference;
- end
- end
- join = ' ';
- end
- end
-
- factionTooltip = barValue.."/"..barMax;
- if (type(tooltip) == 'table') then
- factionTooltip = '';
- join = '';
-
- for i,v in ipairs(tooltip) do
- if (v == 'Text') then
- factionTooltip = factionTooltip..join..factionStandingtext;
- end
- if (v == 'Percent') then
- factionTooltip = factionTooltip..join..format("%.1f%%", barValue / barMax * 100);
- end
- if (v == 'Absolute') then
- factionTooltip = factionTooltip..join..barValue.."/"..barMax;
- end
- if (v == 'Difference') then
- if (join ~= '') then
- factionTooltip = factionTooltip..join..'('..difference..')';
- else
- factionTooltip = factionTooltip..join..difference;
- end
- end
- join = ' ';
- end
- end
-
- factionStanding:SetText(factionCompleteInfo);
- factionRow.standingText = factionCompleteInfo;
- factionRow.tooltip = HIGHLIGHT_FONT_COLOR_CODE..factionTooltip..FONT_COLOR_CODE_CLOSE;
- end
- end
- end
-end
-
--- Event UPDATE_FACTION
-function myReputation_Factions_Update()
- local numFactions = GetNumFactions();
- local factionIndex, factionStanding, factionBar, factionHeader, color;
- local name, description, standingID, barMin, barMax, barValue, atWarWith, canToggleAtWar, isHeader, isCollapsed, hasRep, isWatched, isChild;
- local barMax, barMin, barValue;
- local RepRemains, RepRepeats, RepBefore, RepActual, RepNext;
-
- for factionIndex=1, numFactions, 1 do
- name, description, standingID, barMin, barMax, barValue, atWarWith, canToggleAtWar, isHeader, isCollapsed, hasRep, isWatched, isChild = GetFactionInfo(factionIndex);
-
- if (not isHeader or hasRep) then
- barMax = barMax - barMin;
- barValue = barValue - barMin;
- barMin = 0;
-
- if (myReputations[name]) then
- if (standingID ~= 1) then
- RepBefore = _G["FACTION_STANDING_LABEL"..standingID-1];
- end
-
- RepActual = _G["FACTION_STANDING_LABEL"..standingID];
-
- if (standingID ~= 8) then
- RepNext = _G["FACTION_STANDING_LABEL"..standingID+1];
- end
-
- local RawTotal = 0;
-
- -- No change in standing
- if (myReputations[name].standingID == standingID) then
- local difference = barValue - myReputations[name].barValue;
-
- -- Reputation went up
- if ((difference > 0) and (myReputations[name].standingID == standingID)) then
- myReputation_RepMsg(format(MYREP_NOTIFICATION_GAINED,name,difference,barValue,barMax), 0.5, 0.5, 1.0);
- if (standingID ~= 8) then
- RepRemains = barMax - barValue;
- RepRepeats = RepRemains / difference;
- if (RepRepeats > floor(RepRepeats)) then
- RepRepeats = ceil(RepRepeats);
- end
- if (myReputation_Config.More == true) then
- myReputation_RepMsg(format(MYREP_NOTIFICATION_NEEDED,RepRemains,RepRepeats,RepNext), 1.0, 1.0, 0.0);
- end
- end
-
- -- Reputation went down
- elseif ((difference < 0) and (myReputations[name].standingID == standingID)) then
- difference = abs(difference);
- myReputation_RepMsg(format(MYREP_NOTIFICATION_LOST,name,difference,barValue,barMax), 0.5, 0.5, 1.0);
- if (standingID ~= 1) then
- RepRemains = barValue;
- RepRepeats = RepRemains / difference;
- if (RepRepeats > floor(RepRepeats)) then
- RepRepeats = ceil(RepRepeats);
- end
- if (myReputation_Config.More == true) then
- myReputation_RepMsg(format(MYREP_NOTIFICATION_LEFT,RepRemains,RepRepeats,RepBefore), 1.0, 1.0, 0.0);
- end
- end
- end
-
- -- Reputation went up and reached next standing
- elseif (myReputations[name].standingID < standingID) then
- RepRemains = barMax - barValue;
- RawTotal = barValue + myReputations[name].barMax - myReputations[name].barValue;
- myReputation_RepMsg(format(MYREP_NOTIFICATION_GAINED,name,RawTotal,barValue,barMax), 0.5, 0.5, 1.0);
- myReputation_RepMsg(format(MYREP_NOTIFICATION_REACHED,RepActual,name), 1.0, 1.0, 0.0);
- if (standingID ~= 8) then
- RepRepeats = RepRemains / RawTotal;
- if (RepRepeats > floor(RepRepeats)) then
- RepRepeats = ceil(RepRepeats);
- end
- if (myReputation_Config.More == true) then
- myReputation_RepMsg(format(MYREP_NOTIFICATION_NEEDED,RepRemains,RepRepeats,RepNext), 1.0, 1.0, 0.0);
- end
- end
-
- if (myReputation_Config.Splash == true) then
- myReputation_SplashMessage(name.." - "..RepActual.."!", 1.0, 1.0, 0.0);
- end
-
- -- Reputation went down and reached next standing
- else
- RepRemains = barValue;
- RawTotal = barMax - barValue + myReputations[name].barValue;
- myReputation_RepMsg(format(MYREP_NOTIFICATION_LOST,name,RawTotal,barValue,barMax), 0.5, 0.5, 1.0);
- myReputation_RepMsg(format(MYREP_NOTIFICATION_REACHED,RepActual,name), 1.0, 1.0, 0.0);
- if (standingID ~= 1) then
- RepRepeats = RepRemains / RawTotal;
- if (RepRepeats > floor(RepRepeats)) then
- RepRepeats = ceil(RepRepeats);
- end
- if (myReputation_Config.More == true) then
- myReputation_RepMsg(format(MYREP_NOTIFICATION_LEFT,RepRemains,RepRepeats,RepBefore), 1.0, 1.0, 0.0);
- end
- end
-
- if (myReputation_Config.Splash == true) then
- myReputation_SplashMessage(name.." - "..RepActual.."!", 1.0, 1.0, 0.0);
- end
- end
-
- else
- myReputations[name] = { };
- end
-
- myReputations[name].standingID = standingID;
- myReputations[name].barValue = barValue;
- myReputations[name].barMax = barMax;
- myReputations[name].atWarWith = atWarWith;
- end
- end
-end
\ No newline at end of file
diff --git a/myReputation.toc b/myReputation.toc
deleted file mode 100755
index 19bf123..0000000
--- a/myReputation.toc
+++ /dev/null
@@ -1,20 +0,0 @@
-## Interface: 11304
-## Title: myReputation Classic |cff00aa001.0.0.11304|r
-## Author: HonorGoG of the Titan Panel Development Team
-## Version: 1.0.0.11304
-## SavedVariables: myReputation_Config
-## Notes: Changed display of reputation window and chat messages
-## X-Credits: Egris, Karmond and Larry @ Baelgun.
-## X-Category: Interface Enhancements
-## X-Email: honorgog@gmail.com
-## X-Localizations: enUS, deDE
-## X-License: All rights reserved
-## X-WoWI-ID:
-
-localization.lua
-localization.de.lua
-
-myReputation.xml
-myReputation.lua
-myReputationOptions.xml
-myReputationOptions.lua
diff --git a/myReputation.xml b/myReputation.xml
deleted file mode 100755
index 0de467d..0000000
--- a/myReputation.xml
+++ /dev/null
@@ -1,130 +0,0 @@
-<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/
-..\FrameXML\UI.xsd">
-
- <Frame name="myReputation_Frame" hidden="false" parent="UIParent">
- <Scripts>
- <OnLoad>
- myReputation_OnLoad(self);
- </OnLoad>
- <OnEvent>
- myReputation_OnEvent(self, event, arg1);
- </OnEvent>
- </Scripts>
- <Frames>
- <MessageFrame name="myReputation_SplashFrame" frameStrata="LOW" insertMode="TOP" parent="UIParent" toplevel="true">
- <Size>
- <AbsDimension x="512" y="100"></AbsDimension>
- </Size>
- <Anchors>
- <Anchor point="CENTER">
- <Offset>
- <AbsDimension x="0" y="100"></AbsDimension>
- </Offset>
- </Anchor>
- </Anchors>
- <FontString inherits="NumberFontNormalHuge" justifyH="CENTER"></FontString>
- </MessageFrame>
- </Frames>
- </Frame>
-
- <Frame name="myReputation_ReputationDetailFrame" enableMouse="true" hidden="true">
- <Size>
- <AbsDimension x="172" y="143"/>
- </Size>
- <Anchors>
- <Anchor point="TOPLEFT" relativeTo="ReputationFrame" relativePoint="TOPRIGHT">
- <Offset>
- <AbsDimension x="0" y="-188"/>
- </Offset>
- </Anchor>
- </Anchors>
- <Backdrop bgFile="Interface\DialogFrame\UI-DialogBox-Background" edgeFile="Interface\DialogFrame\UI-DialogBox-Border" tile="true">
- <BackgroundInsets>
- <AbsInset left="11" right="12" top="12" bottom="11"/>
- </BackgroundInsets>
- <TileSize>
- <AbsValue val="32"/>
- </TileSize>
- <EdgeSize>
- <AbsValue val="32"/>
- </EdgeSize>
- </Backdrop>
- <Layers>
- <Layer level="ARTWORK">
- <FontString name="$parentDetails" inherits="GameFontHighlight" justifyH="LEFT" text="MYREP_MSG_MORE">
- <Size>
- <AbsDimension x="140" y="0"/>
- </Size>
- <Anchors>
- <Anchor point="TOPLEFT">
- <Offset>
- <AbsDimension x="20" y="-21"/>
- </Offset>
- </Anchor>
- </Anchors>
- </FontString>
- <FontString name="$parentText" inherits="GameFontHighlightSmall" justifyH="LEFT">
- <Size>
- <AbsDimension x="140" y="0"/>
- </Size>
- <Anchors>
- <Anchor point="TOPLEFT" relativeTo="$parentDetails" relativePoint="BOTTOMLEFT">
- <Offset>
- <AbsDimension x="0" y="-8"/>
- </Offset>
- </Anchor>
- </Anchors>
- </FontString>
- <FontString name="$parentAbsolute" inherits="GameFontHighlightSmall" justifyH="LEFT">
- <Size>
- <AbsDimension x="140" y="0"/>
- </Size>
- <Anchors>
- <Anchor point="TOPLEFT" relativeTo="$parentText" relativePoint="BOTTOMLEFT">
- <Offset>
- <AbsDimension x="0" y="-6"/>
- </Offset>
- </Anchor>
- </Anchors>
- </FontString>
- <FontString name="$parentPercent" inherits="GameFontHighlightSmall" justifyH="LEFT">
- <Size>
- <AbsDimension x="140" y="0"/>
- </Size>
- <Anchors>
- <Anchor point="TOPLEFT" relativeTo="$parentAbsolute" relativePoint="BOTTOMLEFT">
- <Offset>
- <AbsDimension x="0" y="-6"/>
- </Offset>
- </Anchor>
- </Anchors>
- </FontString>
- <FontString name="$parentDifference" inherits="GameFontHighlightSmall" justifyH="LEFT">
- <Size>
- <AbsDimension x="140" y="0"/>
- </Size>
- <Anchors>
- <Anchor point="TOPLEFT" relativeTo="$parentPercent" relativePoint="BOTTOMLEFT">
- <Offset>
- <AbsDimension x="0" y="-6"/>
- </Offset>
- </Anchor>
- </Anchors>
- </FontString>
- <Texture file="Interface\PaperDollInfoFrame\UI-Character-Reputation-DetailBackground">
- <Size>
- <AbsDimension x="211" y="128"/>
- </Size>
- <Anchors>
- <Anchor point="TOPLEFT">
- <Offset>
- <AbsDimension x="11" y="-11"/>
- </Offset>
- </Anchor>
- </Anchors>
- </Texture>
- </Layer>
- </Layers>
- </Frame>
-
-</Ui>
\ No newline at end of file
diff --git a/myReputationClassic.lua b/myReputationClassic.lua
new file mode 100755
index 0000000..4279dba
--- /dev/null
+++ b/myReputationClassic.lua
@@ -0,0 +1,635 @@
+----------------------------------------------------------------------
+-- Variables
+----------------------------------------------------------------------
+
+-- Basic Addon Variables
+MYREP_NAME = "myReputationClassic";
+MYREP_VERSION = GetAddOnMetadata("myReputation", "Version") or "N/A";
+MYREP_VERSION_STRING = "|cffffd700myReputation Classic "..GREEN_FONT_COLOR_CODE..MYREP_VERSION.."|cffffd700 by |cffff8c00HonorGoG";
+MYREP_MSG_FORMAT = "%s |cffffff00%s|r";
+MYREP_REGEXP_CHANGED = string.gsub( FACTION_STANDING_CHANGED, "'?%%[1|2]$s'?", "%(.+)" );
+MYREP_REGEXP_DECREASED = string.gsub( FACTION_STANDING_DECREASED, "'?%%[s|d]'?", "%(.+)" );
+MYREP_REGEXP_DECREASED_GENERIC = string.gsub( FACTION_STANDING_DECREASED_GENERIC, "'?%%[s|d]'?", "%(.+)" );
+MYREP_REGEXP_INCREASED = string.gsub( FACTION_STANDING_INCREASED, "'?%%[s|d]'?", "%(.+)" );
+MYREP_REGEXP_INCREASED_GENERIC = string.gsub( FACTION_STANDING_INCREASED_GENERIC, "'?%%[s|d]'?", "%(.+)" );
+
+-- Configuration Variables and their Standard Values
+myReputation_Config = { };
+myReputation_DefaultConfig = { };
+myReputation_DefaultConfig.Enabled = true;
+myReputation_DefaultConfig.More = true;
+myReputation_DefaultConfig.Blizz = false;
+myReputation_DefaultConfig.Splash = true;
+myReputation_DefaultConfig.Debug = false;
+myReputation_DefaultConfig.Frame = 1;
+myReputation_DefaultConfig.Info = 'Text';
+myReputation_DefaultConfig.Tooltip = 'Absolute';
+
+-- Temp Variables and Arrays
+myReputations = { };
+mySessionReputations = { };
+myReputation_Var = { };
+myReputation_Var.InWorld = false;
+
+-- Function Hooks
+local lOriginal_ReputationFrame_Update;
+local lOriginal_ReputationBar_OnClick;
+local lOriginal_CFAddMessage_General;
+local lOriginal_CFAddMessage_Combat;
+
+local _G = getfenv(0);
+
+----------------------------------------------------------------------
+-- OnFoo
+----------------------------------------------------------------------
+
+function myReputation_OnLoad(this)
+ --Slash command
+ SlashCmdList["MYREPCOMMAND"] = myReputation_SlashHandler;
+ SLASH_MYREPCOMMAND1 = "/myreputation";
+ SLASH_MYREPCOMMAND2 = "/myrep";
+
+ -- Register Default Events
+ this:RegisterEvent("ADDON_LOADED");
+ this:RegisterEvent("PLAYER_LOGIN");
+ this:RegisterEvent("PLAYER_ENTERING_WORLD");
+ this:RegisterEvent("UNIT_AURA");
+ this:RegisterEvent("PLAYER_TARGET_CHANGED");
+ this:RegisterEvent("PLAYER_LEAVING_WORLD");
+
+ if (DEFAULT_CHAT_FRAME) then
+ myReputation_ChatMsg(MYREP_VERSION);
+ end
+end
+
+function myReputation_OnEvent(this, event, arg1)
+ if (event == "ADDON_LOADED") then
+ myReputation_AddOptionMt(myReputation_Config, myReputation_DefaultConfig);
+
+ -- Delete Unused Config Values
+ for i,v in pairs(myReputation_Config) do
+ if (myReputation_DefaultConfig[i] == nil) then
+ if (myReputation_Config.Debug == true) then
+ myReputation_ChatMsg('Clean Up Config '..i);
+ end
+ myReputation_Config[i] = nil;
+ end
+ end
+ end
+
+ -- Fired just before PLAYER_ENTERING_WORLD on login and UI Reload
+ if (event == "PLAYER_LOGIN") then
+ if (
+ (myReputation_Config.Frame > 0) and
+ (myReputation_Config.Frame <= FCF_GetNumActiveChatFrames())
+ ) then
+ REPUTATIONS_CHAT_FRAME = _G["ChatFrame"..myReputation_Config.Frame];
+ else
+ REPUTATIONS_CHAT_FRAME = DEFAULT_CHAT_FRAME;
+ end
+ myReputation_Toggle(myReputation_Config.Enabled,true);
+ end
+
+ -- Register Ingame Events
+ if (event == "PLAYER_ENTERING_WORLD") then
+ this:RegisterEvent("UPDATE_FACTION");
+ end
+
+ -- Unregister Ingame Events
+ if (event == "PLAYER_LEAVING_WORLD") then
+ this:UnregisterEvent("UPDATE_FACTION");
+ end
+
+ -- Event UPDATE_FACTION
+ if (
+ (event == "UPDATE_FACTION") and
+ (myReputation_Config.Enabled == true)
+ ) then
+ myReputation_Factions_Update();
+ end
+
+ -- Events which are usable to get numFactions > 0
+ if ((event == "UNIT_AURA") or (event == "PLAYER_TARGET_CHANGED")) then
+ -- Save Session StartRep
+ if (not mySessionReputations["Darnassus"]) then
+
+ local numFactions = GetNumFactions();
+ local factionIndex;
+ local name, standingID, barMin, barMax, barValue, isHeader, hasRep;
+
+ for factionIndex=1, numFactions, 1 do
+ name, _, standingID, barMin, barMax, barValue, _, _, isHeader, _, hasRep = GetFactionInfo(factionIndex);
+
+ if (not isHeader or hasRep) then
+ barMax = barMax - barMin;
+ barValue = barValue - barMin;
+ barMin = 0;
+ mySessionReputations[name] = { };
+ mySessionReputations[name].standingID = standingID;
+ mySessionReputations[name].barValue = barValue;
+ mySessionReputations[name].barMax = barMax;
+
+ end
+ end
+ end
+
+ this:UnregisterEvent("UNIT_AURA");
+ this:UnregisterEvent("PLAYER_TARGET_CHANGED");
+ end
+end
+
+----------------------------------------------------------------------
+-- Metatable Functions
+----------------------------------------------------------------------
+
+function myReputation_AddOptionMt(options, defaults)
+ setmetatable(options, { __index = defaults });
+end
+
+----------------------------------------------------------------------
+-- Other Functions
+----------------------------------------------------------------------
+
+-- Send Message to Chat Frame
+function myReputation_ChatMsg(message)
+ DEFAULT_CHAT_FRAME:AddMessage(message);
+end
+
+-- Send Message to Reputation Chat Frame
+function myReputation_RepMsg(message,r,g,b)
+ REPUTATIONS_CHAT_FRAME:AddMessage(message,r,g,b);
+end
+
+-- Send Message to Splash Frame
+function myReputation_SplashMessage(message,r,g,b)
+ myReputation_SplashFrame:AddMessage(message, r,g,b, 1.0, UIERRORS_HOLD_TIME);
+end
+
+-- SlashHandler
+function myReputation_SlashHandler(msg)
+ if (msg == MYREP_CMD_STATUS) then
+ myReputation_DisplayStatus();
+ elseif (msg == MYREP_CMD_DEBUG) then
+ myReputation_Toggle_Options("Debug");
+ else
+ InterfaceOptionsFrame_OpenToCategory(MYREP_NAME);
+ end;
+end
+
+function myReputation_DisplayStatus()
+ if (myReputation_Config.Enabled == true) then
+ myReputation_ChatMsg(format(MYREP_MSG_FORMAT,MYREP_NAME,MYREP_MSG_ON));
+ else
+ myReputation_ChatMsg(format(MYREP_MSG_FORMAT,MYREP_NAME,MYREP_MSG_OFF));
+ end
+ if (myReputation_Config.Debug == true) then
+ myReputation_ChatMsg(format(MYREP_MSG_FORMAT,MYREP_MSG_DEBUG,MYREP_MSG_ON));
+ end
+ if (myReputation_Config.Blizz == true) then
+ myReputation_ChatMsg(format(MYREP_MSG_FORMAT,MYREP_MSG_BLIZZ,MYREP_MSG_ON));
+ else
+ myReputation_ChatMsg(format(MYREP_MSG_FORMAT,MYREP_MSG_BLIZZ,MYREP_MSG_OFF));
+ end
+ if (myReputation_Config.More == true) then
+ myReputation_ChatMsg(format(MYREP_MSG_FORMAT,MYREP_MSG_MORE,MYREP_MSG_ON));
+ else
+ myReputation_ChatMsg(format(MYREP_MSG_FORMAT,MYREP_MSG_MORE,MYREP_MSG_OFF));
+ end
+ if (myReputation_Config.Splash == true) then
+ myReputation_ChatMsg(format(MYREP_MSG_FORMAT,MYREP_MSG_SPLASH,MYREP_MSG_ON));
+ else
+ myReputation_ChatMsg(format(MYREP_MSG_FORMAT,MYREP_MSG_SPLASH,MYREP_MSG_OFF));
+ end
+ myReputation_ChatMsg(format(MYREP_MSG_FORMAT,MYREP_MSG_FRAME,myReputation_Config.Frame));
+ myReputation_ChatMsg(format(MYREP_MSG_FORMAT,'Info',myReputation_Config.Info));
+ myReputation_ChatMsg(format(MYREP_MSG_FORMAT,'Tooltip',myReputation_Config.Tooltip));
+end
+
+-- Toggles
+function myReputation_Toggle(toggle,init)
+ myReputation_Config.Enabled = toggle;
+
+ if (toggle == true) then
+ --Hook
+ if (not lOriginal_ReputationFrame_Update) then
+ if (init ~= true) then
+ myReputation_ChatMsg(format(MYREP_MSG_FORMAT,MYREP_NAME,MYREP_MSG_ON,"."));
+ end
+ lOriginal_ReputationFrame_Update = ReputationFrame_Update;
+ ReputationFrame_Update = myReputation_Frame_Update_New;
+ end
+ if (not lOriginal_ReputationBar_OnClick) then
+ lOriginal_ReputationBar_OnClick = ReputationBar_OnClick;
+ ReputationBar_OnClick = myReputation_ReputationBar_OnClick;
+ end
+ if (not lOriginal_CFAddMessage_General) then
+ lOriginal_CFAddMessage_General = _G["ChatFrame1"].AddMessage;
+ _G["ChatFrame1"].AddMessage = myReputation_CFAddMessage_Allgemein;
+ end
+ if (not lOriginal_CFAddMessage_Combat) then
+ lOriginal_CFAddMessage_Combat = _G["ChatFrame2"].AddMessage;
+ _G["ChatFrame2"].AddMessage = myReputation_CFAddMessage_Kampflog;
+ end
+
+ if (ReputationDetailFrame:GetScript("OnShow") == nil) then
+ ReputationDetailFrame:HookScript("OnShow", function(self, event)
+ if (myReputation_Config.Enabled) then
+ myReputation_ReputationDetailFrame:Show();
+ end
+ end)
+ end
+ if (ReputationDetailFrame:GetScript("OnHide") == nil) then
+ ReputationDetailFrame:HookScript("OnHide", function(self, event)
+ myReputation_ReputationDetailFrame:Hide();
+ end)
+ end
+ else
+ --Unhook
+ if (lOriginal_ReputationFrame_Update) then
+ if (init ~= true) then
+ myReputation_ChatMsg(format(MYREP_MSG_FORMAT,MYREP_NAME,MYREP_MSG_OFF,"."));
+ end
+ ReputationFrame_Update = lOriginal_ReputationFrame_Update;
+ lOriginal_ReputationFrame_Update = nil;
+ end
+ if (lOriginal_CFAddMessage_General) then
+ _G["ChatFrame1"].AddMessage = lOriginal_CFAddMessage_General;
+ lOriginal_CFAddMessage_General = nil;
+ end
+ if (lOriginal_CFAddMessage_Combat) then
+ _G["ChatFrame2"].AddMessage = lOriginal_CFAddMessage_Combat;
+ lOriginal_CFAddMessage_Combat = nil;
+ end
+ end
+end
+
+function myReputation_Toggle_Options(option)
+ if (myReputation_Config[option] == true) then
+ myReputation_Config[option] = false;
+ myReputation_ChatMsg(format(MYREP_MSG_FORMAT,_G["MYREP_MSG_"..string.upper(option)],MYREP_MSG_OFF,"."));
+ else
+ myReputation_Config[option] = true;
+ myReputation_ChatMsg(format(MYREP_MSG_FORMAT,_G["MYREP_MSG_"..string.upper(option)],MYREP_MSG_ON,"."));
+ end
+end
+
+function myReputation_ChatFrame_Change(checked,value) --Checked will always be 0
+ local number = tonumber(value);
+ if (
+ (value ~= nil) and
+ (number > 0) and
+ (number ~= 2) and
+ (number <= FCF_GetNumActiveChatFrames())
+ ) then
+ myReputation_Config.Frame = number;
+ myReputation_ChatMsg(format(MYREP_MSG_FORMAT,MYREP_MSG_FRAME,myReputation_Config.Frame,"."));
+ REPUTATIONS_CHAT_FRAME = _G["ChatFrame"..myReputation_Config.Frame];
+ myReputation_RepMsg(MYREP_MSG_NOTIFY,1.0,1.0,0.0);
+ else
+ myReputation_ChatMsg(format(MYREP_MSG_INVALID_FRAME,FCF_GetNumActiveChatFrames()));
+ end
+end
+
+-- Hooked Functions
+function myReputation_CFAddMessage_Allgemein(self, msg, ...)
+ if (
+ (myReputation_Config.Blizz == false) and
+ (msg ~= nil) and
+ (
+ string.find(msg, MYREP_REGEXP_CHANGED) or
+ string.find(msg, MYREP_REGEXP_DECREASED) or
+ string.find(msg, MYREP_REGEXP_DECREASED_GENERIC) or
+ string.find(msg, MYREP_REGEXP_INCREASED) or
+ string.find(msg, MYREP_REGEXP_INCREASED_GENERIC)
+ )
+ ) then
+ if (myReputation_Config.Debug == true) then
+ myReputation_RepMsg("Blizzard Meldung in Frame 1 abgefangen");
+ end
+ else
+ lOriginal_CFAddMessage_General(self, msg, ...);
+ end
+end
+
+function myReputation_CFAddMessage_Kampflog(self, msg, ...)
+ if (
+ (myReputation_Config.Blizz == false) and
+ (msg ~= nil) and
+ (
+ string.find(msg, MYREP_REGEXP_CHANGED) or
+ string.find(msg, MYREP_REGEXP_DECREASED) or
+ string.find(msg, MYREP_REGEXP_DECREASED_GENERIC) or
+ string.find(msg, MYREP_REGEXP_INCREASED) or
+ string.find(msg, MYREP_REGEXP_INCREASED_GENERIC)
+ )
+ ) then
+ if (myReputation_Config.Debug == true) then
+ myReputation_RepMsg("Blizzard Meldung in Frame 2 abgefangen");
+ end
+ else
+ lOriginal_CFAddMessage_Combat(self, msg, ...);
+ end
+end
+
+function myReputation_ReputationBar_OnClick(self)
+ lOriginal_ReputationBar_OnClick(self);
+
+ if (myReputation_Config.Debug == true) then
+ myReputation_RepMsg("ReputationBar_OnClick Faction "..self.index);
+ end
+
+ if (ReputationDetailFrame:IsVisible()) then
+ local name, description, standingID, barMin, barMax, barValue, atWarWith, canToggleAtWar, isHeader, isCollapsed, hasRep, isWatched, isChild = GetFactionInfo(self.index);
+ local color = FACTION_BAR_COLORS[standingID];
+
+ --Normalize Values
+ barMax = barMax - barMin;
+ barValue = barValue - barMin;
+ barMin = 0;
+
+ local text = GetText("FACTION_STANDING_LABEL"..standingID, gender);
+ local absolute = barValue.."/"..barMax;
+ local percent = format("%.1f%%", barValue / barMax * 100);
+ local difference = 0;
+
+ if (mySessionReputations[name]) then
+ -- No change in standing
+ if (mySessionReputations[name].standingID == standingID) then
+ difference = barValue - mySessionReputations[name].barValue;
+
+ -- Reputation went up and reached next standing
+ elseif (mySessionReputations[name].standingID < standingID) then
+ difference = barValue + mySessionReputations[name].barMax - mySessionReputations[name].barValue;
+
+ -- Reputation went down and reached next standing
+ else
+ difference = barMax - barValue + mySessionReputations[name].barValue;
+ end
+ end
+
+ myReputation_ReputationDetailFrameDetails:SetTextColor(color.r, color.g, color.b);
+ myReputation_ReputationDetailFrameText:SetText(
+ format(MYREP_MSG_FORMAT, MYREP_INFO_TEXT..":", text)
+ );
+ myReputation_ReputationDetailFrameAbsolute:SetText(
+ format(MYREP_MSG_FORMAT, MYREP_INFO_ABSOLUTE..":", absolute)
+ );
+ myReputation_ReputationDetailFramePercent:SetText(
+ format(MYREP_MSG_FORMAT, MYREP_INFO_PERCENT..":", percent)
+ );
+ myReputation_ReputationDetailFrameDifference:SetText(
+ format(MYREP_MSG_FORMAT, MYREP_INFO_DIFFERENCE..":", difference)
+ );
+ end
+end
+
+function myReputation_Frame_Update_New()
+ lOriginal_ReputationFrame_Update();
+
+ local info = myReputation_Explode(myReputation_Config.Info, ',');
+ local tooltip = myReputation_Explode(myReputation_Config.Tooltip, ',');
+
+ local numFactions = GetNumFactions();
+ local factionIndex, factionRow, factionTitle, factionStanding, factionBar, factionButton, factionLeftLine, factionBottomLine, factionBackground, color, tooltipStanding;
+ local name, description, standingID, barMin, barMax, barValue, atWarWith, canToggleAtWar, isHeader, isCollapsed, hasRep, isWatched, isChild;
+ local atWarIndicator, rightBarTexture;
+ local factionCompleteInfo, factionTooltip, difference;
+
+ local factionOffset = FauxScrollFrame_GetOffset(ReputationListScrollFrame);
+
+ local gender = UnitSex("player");
+ local guildName = GetGuildInfo("player");
+
+ local i;
+
+ for i=1, NUM_FACTIONS_DISPLAYED, 1 do
+ factionIndex = factionOffset + i;
+ factionRow = _G["ReputationBar"..i];
+ factionBar = _G["ReputationBar"..i.."ReputationBar"];
+ factionTitle = _G["ReputationBar"..i.."FactionName"];
+ factionButton = _G["ReputationBar"..i.."ExpandOrCollapseButton"];
+ factionLeftLine = _G["ReputationBar"..i.."LeftLine"];
+ factionBottomLine = _G["ReputationBar"..i.."BottomLine"];
+ factionStanding = _G["ReputationBar"..i.."ReputationBarFactionStanding"];
+ factionBackground = _G["ReputationBar"..i.."Background"];
+
+ if (factionIndex <= numFactions) then
+ name, description, standingID, barMin, barMax, barValue, atWarWith, canToggleAtWar, isHeader, isCollapsed, hasRep, isWatched, isChild = GetFactionInfo(factionIndex);
+ factionTitle:SetText(name);
+
+ local factionStandingtext = GetText("FACTION_STANDING_LABEL"..standingID, gender);
+
+ --Normalize Values
+ barMax = barMax - barMin;
+ barValue = barValue - barMin;
+ barMin = 0;
+
+ if (
+ (not isHeader or hasRep) and
+ (factionStanding:GetText() ~= nil)
+ ) then
+ local difference = 0;
+
+ -- guild name was not available on login
+ if (mySessionReputations[name] == nil and guildName ~= nil and name == guildName) then
+ bakName = name;
+ name = GUILD_REPUTATION;
+ end
+
+ if (mySessionReputations[name]) then
+ -- No change in standing
+ if (mySessionReputations[name].standingID == standingID) then
+ difference = barValue - mySessionReputations[name].barValue;
+
+ -- Reputation went up and reached next standing
+ elseif (mySessionReputations[name].standingID < standingID) then
+ difference = barValue + mySessionReputations[name].barMax - mySessionReputations[name].barValue;
+
+ -- Reputation went down and reached next standing
+ else
+ difference = barMax - barValue + mySessionReputations[name].barValue;
+ end
+ end
+
+ local join;
+
+ -- guild name should be displayed
+ if (bakName ~= nil) then
+ name = bakName;
+ end
+
+ factionCompleteInfo = factionStandingtext;
+ if (type(info) == 'table') then
+ factionCompleteInfo = '';
+ join = '';
+
+ for i,v in ipairs(info) do
+ if (v == 'Text') then
+ factionCompleteInfo = factionCompleteInfo..join..factionStandingtext;
+ end
+ if (v == 'Percent') then
+ factionCompleteInfo = factionCompleteInfo..join..format("%.1f%%", barValue / barMax * 100);
+ end
+ if (v == 'Absolute') then
+ factionCompleteInfo = factionCompleteInfo..join..barValue.."/"..barMax;
+ end
+ if (v == 'Difference') then
+ if (join ~= '') then
+ factionCompleteInfo = factionCompleteInfo..join..'('..difference..')';
+ else
+ factionCompleteInfo = factionCompleteInfo..join..difference;
+ end
+ end
+ join = ' ';
+ end
+ end
+
+ factionTooltip = barValue.."/"..barMax;
+ if (type(tooltip) == 'table') then
+ factionTooltip = '';
+ join = '';
+
+ for i,v in ipairs(tooltip) do
+ if (v == 'Text') then
+ factionTooltip = factionTooltip..join..factionStandingtext;
+ end
+ if (v == 'Percent') then
+ factionTooltip = factionTooltip..join..format("%.1f%%", barValue / barMax * 100);
+ end
+ if (v == 'Absolute') then
+ factionTooltip = factionTooltip..join..barValue.."/"..barMax;
+ end
+ if (v == 'Difference') then
+ if (join ~= '') then
+ factionTooltip = factionTooltip..join..'('..difference..')';
+ else
+ factionTooltip = factionTooltip..join..difference;
+ end
+ end
+ join = ' ';
+ end
+ end
+
+ factionStanding:SetText(factionCompleteInfo);
+ factionRow.standingText = factionCompleteInfo;
+ factionRow.tooltip = HIGHLIGHT_FONT_COLOR_CODE..factionTooltip..FONT_COLOR_CODE_CLOSE;
+ end
+ end
+ end
+end
+
+-- Event UPDATE_FACTION
+function myReputation_Factions_Update()
+ local numFactions = GetNumFactions();
+ local factionIndex, factionStanding, factionBar, factionHeader, color;
+ local name, description, standingID, barMin, barMax, barValue, atWarWith, canToggleAtWar, isHeader, isCollapsed, hasRep, isWatched, isChild;
+ local barMax, barMin, barValue;
+ local RepRemains, RepRepeats, RepBefore, RepActual, RepNext;
+
+ for factionIndex=1, numFactions, 1 do
+ name, description, standingID, barMin, barMax, barValue, atWarWith, canToggleAtWar, isHeader, isCollapsed, hasRep, isWatched, isChild = GetFactionInfo(factionIndex);
+
+ if (not isHeader or hasRep) then
+ barMax = barMax - barMin;
+ barValue = barValue - barMin;
+ barMin = 0;
+
+ if (myReputations[name]) then
+ if (standingID ~= 1) then
+ RepBefore = _G["FACTION_STANDING_LABEL"..standingID-1];
+ end
+
+ RepActual = _G["FACTION_STANDING_LABEL"..standingID];
+
+ if (standingID ~= 8) then
+ RepNext = _G["FACTION_STANDING_LABEL"..standingID+1];
+ end
+
+ local RawTotal = 0;
+
+ -- No change in standing
+ if (myReputations[name].standingID == standingID) then
+ local difference = barValue - myReputations[name].barValue;
+
+ -- Reputation went up
+ if ((difference > 0) and (myReputations[name].standingID == standingID)) then
+ myReputation_RepMsg(format(MYREP_NOTIFICATION_GAINED,name,difference,barValue,barMax), 0.5, 0.5, 1.0);
+ if (standingID ~= 8) then
+ RepRemains = barMax - barValue;
+ RepRepeats = RepRemains / difference;
+ if (RepRepeats > floor(RepRepeats)) then
+ RepRepeats = ceil(RepRepeats);
+ end
+ if (myReputation_Config.More == true) then
+ myReputation_RepMsg(format(MYREP_NOTIFICATION_NEEDED,RepRemains,RepRepeats,RepNext), 1.0, 1.0, 0.0);
+ end
+ end
+
+ -- Reputation went down
+ elseif ((difference < 0) and (myReputations[name].standingID == standingID)) then
+ difference = abs(difference);
+ myReputation_RepMsg(format(MYREP_NOTIFICATION_LOST,name,difference,barValue,barMax), 0.5, 0.5, 1.0);
+ if (standingID ~= 1) then
+ RepRemains = barValue;
+ RepRepeats = RepRemains / difference;
+ if (RepRepeats > floor(RepRepeats)) then
+ RepRepeats = ceil(RepRepeats);
+ end
+ if (myReputation_Config.More == true) then
+ myReputation_RepMsg(format(MYREP_NOTIFICATION_LEFT,RepRemains,RepRepeats,RepBefore), 1.0, 1.0, 0.0);
+ end
+ end
+ end
+
+ -- Reputation went up and reached next standing
+ elseif (myReputations[name].standingID < standingID) then
+ RepRemains = barMax - barValue;
+ RawTotal = barValue + myReputations[name].barMax - myReputations[name].barValue;
+ myReputation_RepMsg(format(MYREP_NOTIFICATION_GAINED,name,RawTotal,barValue,barMax), 0.5, 0.5, 1.0);
+ myReputation_RepMsg(format(MYREP_NOTIFICATION_REACHED,RepActual,name), 1.0, 1.0, 0.0);
+ if (standingID ~= 8) then
+ RepRepeats = RepRemains / RawTotal;
+ if (RepRepeats > floor(RepRepeats)) then
+ RepRepeats = ceil(RepRepeats);
+ end
+ if (myReputation_Config.More == true) then
+ myReputation_RepMsg(format(MYREP_NOTIFICATION_NEEDED,RepRemains,RepRepeats,RepNext), 1.0, 1.0, 0.0);
+ end
+ end
+
+ if (myReputation_Config.Splash == true) then
+ myReputation_SplashMessage(name.." - "..RepActual.."!", 1.0, 1.0, 0.0);
+ end
+
+ -- Reputation went down and reached next standing
+ else
+ RepRemains = barValue;
+ RawTotal = barMax - barValue + myReputations[name].barValue;
+ myReputation_RepMsg(format(MYREP_NOTIFICATION_LOST,name,RawTotal,barValue,barMax), 0.5, 0.5, 1.0);
+ myReputation_RepMsg(format(MYREP_NOTIFICATION_REACHED,RepActual,name), 1.0, 1.0, 0.0);
+ if (standingID ~= 1) then
+ RepRepeats = RepRemains / RawTotal;
+ if (RepRepeats > floor(RepRepeats)) then
+ RepRepeats = ceil(RepRepeats);
+ end
+ if (myReputation_Config.More == true) then
+ myReputation_RepMsg(format(MYREP_NOTIFICATION_LEFT,RepRemains,RepRepeats,RepBefore), 1.0, 1.0, 0.0);
+ end
+ end
+
+ if (myReputation_Config.Splash == true) then
+ myReputation_SplashMessage(name.." - "..RepActual.."!", 1.0, 1.0, 0.0);
+ end
+ end
+
+ else
+ myReputations[name] = { };
+ end
+
+ myReputations[name].standingID = standingID;
+ myReputations[name].barValue = barValue;
+ myReputations[name].barMax = barMax;
+ myReputations[name].atWarWith = atWarWith;
+ end
+ end
+end
\ No newline at end of file
diff --git a/myReputationClassic.toc b/myReputationClassic.toc
new file mode 100755
index 0000000..9e622b7
--- /dev/null
+++ b/myReputationClassic.toc
@@ -0,0 +1,15 @@
+## Interface: 11304
+## Title: myReputation Classic |cff00aa001.0.0.11304|r
+## Author: HonorGoG of the Titan Panel Development Team
+## Version: 1.0.0.11304
+## SavedVariables: myReputation_Config
+## Notes: Changed display of reputation window and chat messages
+## X-Credits: Egris, Karmond and Larry @ Baelgun.
+## X-Category: Interface Enhancements
+## X-Email: honorgog@gmail.com
+## X-Localizations: enUS, deDE
+## X-License: All rights reserved
+## X-WoWI-ID:
+
+myReputationClassic.xml
+myReputationOptions.xml
diff --git a/myReputationClassic.xml b/myReputationClassic.xml
new file mode 100755
index 0000000..8c82539
--- /dev/null
+++ b/myReputationClassic.xml
@@ -0,0 +1,134 @@
+<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/
+..\FrameXML\UI.xsd">
+
+ <Script file="localization.lua"/>
+ <Script file="localization.de.lua"/>
+ <Script file="myReputationClassic.lua"/>
+
+ <Frame name="myReputation_Frame" hidden="false" parent="UIParent">
+ <Scripts>
+ <OnLoad>
+ myReputation_OnLoad(self);
+ </OnLoad>
+ <OnEvent>
+ myReputation_OnEvent(self, event, arg1);
+ </OnEvent>
+ </Scripts>
+ <Frames>
+ <MessageFrame name="myReputation_SplashFrame" frameStrata="LOW" insertMode="TOP" parent="UIParent" toplevel="true">
+ <Size>
+ <AbsDimension x="512" y="100"></AbsDimension>
+ </Size>
+ <Anchors>
+ <Anchor point="CENTER">
+ <Offset>
+ <AbsDimension x="0" y="100"></AbsDimension>
+ </Offset>
+ </Anchor>
+ </Anchors>
+ <FontString inherits="NumberFontNormalHuge" justifyH="CENTER"></FontString>
+ </MessageFrame>
+ </Frames>
+ </Frame>
+
+ <Frame name="myReputation_ReputationDetailFrame" enableMouse="true" hidden="true">
+ <Size>
+ <AbsDimension x="172" y="143"/>
+ </Size>
+ <Anchors>
+ <Anchor point="TOPLEFT" relativeTo="ReputationFrame" relativePoint="TOPRIGHT">
+ <Offset>
+ <AbsDimension x="0" y="-188"/>
+ </Offset>
+ </Anchor>
+ </Anchors>
+ <Backdrop bgFile="Interface\DialogFrame\UI-DialogBox-Background" edgeFile="Interface\DialogFrame\UI-DialogBox-Border" tile="true">
+ <BackgroundInsets>
+ <AbsInset left="11" right="12" top="12" bottom="11"/>
+ </BackgroundInsets>
+ <TileSize>
+ <AbsValue val="32"/>
+ </TileSize>
+ <EdgeSize>
+ <AbsValue val="32"/>
+ </EdgeSize>
+ </Backdrop>
+ <Layers>
+ <Layer level="ARTWORK">
+ <FontString name="$parentDetails" inherits="GameFontHighlight" justifyH="LEFT" text="MYREP_MSG_MORE">
+ <Size>
+ <AbsDimension x="140" y="0"/>
+ </Size>
+ <Anchors>
+ <Anchor point="TOPLEFT">
+ <Offset>
+ <AbsDimension x="20" y="-21"/>
+ </Offset>
+ </Anchor>
+ </Anchors>
+ </FontString>
+ <FontString name="$parentText" inherits="GameFontHighlightSmall" justifyH="LEFT">
+ <Size>
+ <AbsDimension x="140" y="0"/>
+ </Size>
+ <Anchors>
+ <Anchor point="TOPLEFT" relativeTo="$parentDetails" relativePoint="BOTTOMLEFT">
+ <Offset>
+ <AbsDimension x="0" y="-8"/>
+ </Offset>
+ </Anchor>
+ </Anchors>
+ </FontString>
+ <FontString name="$parentAbsolute" inherits="GameFontHighlightSmall" justifyH="LEFT">
+ <Size>
+ <AbsDimension x="140" y="0"/>
+ </Size>
+ <Anchors>
+ <Anchor point="TOPLEFT" relativeTo="$parentText" relativePoint="BOTTOMLEFT">
+ <Offset>
+ <AbsDimension x="0" y="-6"/>
+ </Offset>
+ </Anchor>
+ </Anchors>
+ </FontString>
+ <FontString name="$parentPercent" inherits="GameFontHighlightSmall" justifyH="LEFT">
+ <Size>
+ <AbsDimension x="140" y="0"/>
+ </Size>
+ <Anchors>
+ <Anchor point="TOPLEFT" relativeTo="$parentAbsolute" relativePoint="BOTTOMLEFT">
+ <Offset>
+ <AbsDimension x="0" y="-6"/>
+ </Offset>
+ </Anchor>
+ </Anchors>
+ </FontString>
+ <FontString name="$parentDifference" inherits="GameFontHighlightSmall" justifyH="LEFT">
+ <Size>
+ <AbsDimension x="140" y="0"/>
+ </Size>
+ <Anchors>
+ <Anchor point="TOPLEFT" relativeTo="$parentPercent" relativePoint="BOTTOMLEFT">
+ <Offset>
+ <AbsDimension x="0" y="-6"/>
+ </Offset>
+ </Anchor>
+ </Anchors>
+ </FontString>
+ <Texture file="Interface\PaperDollInfoFrame\UI-Character-Reputation-DetailBackground">
+ <Size>
+ <AbsDimension x="211" y="128"/>
+ </Size>
+ <Anchors>
+ <Anchor point="TOPLEFT">
+ <Offset>
+ <AbsDimension x="11" y="-11"/>
+ </Offset>
+ </Anchor>
+ </Anchors>
+ </Texture>
+ </Layer>
+ </Layers>
+ </Frame>
+
+</Ui>
\ No newline at end of file
diff --git a/myReputationOptions.xml b/myReputationOptions.xml
index 97dacf1..b924ee1 100755
--- a/myReputationOptions.xml
+++ b/myReputationOptions.xml
@@ -1,6 +1,8 @@
<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/
..\..\FrameXML\UI.xsd">
+ <Script file="myReputationOptions.lua" />
+
<Frame name="myReputation_OptionsPanel" hidden="false">
<Layers>
<Layer level="ARTWORK">