vanilla-wow-addons – Rev 1
?pathlinks?
--Reputation Mod
Reputations_Version="0.14";
Reputations = { };
--Default Values
Reputations_Enabled = 1; --Enabled
Reputations_Raw = 1; --Raw Numbers
Reputations_Frame = 2; --Combat Window
Reputations_Next = 1; --Display reputation needed until next standing
Reputations_Notify = 1; --Display reputation notifications
Reputations_Debug = 0; --Debug Info: Displays Previous, New and Diff and each faction change
Reputations_Load = 1; --Display reputation loaded message
Reputations_Repeat = 0; --Display amount of repetitions needed until next standing
REPUTATIONS_CHAT_FRAME = getglobal("ChatFrame"..Reputations_Frame);
-- Maximum units for each standing
Units = { };
Units[1] = 36000; -- Hated
Units[2] = 3000; -- Hostile
Units[3] = 3000; -- Unfriendly
Units[4] = 3000; -- Neutral
Units[5] = 6000; -- Friendly
Units[6] = 12000; -- Honored
Units[7] = 21000; -- Revered
Units[8] = 1000; -- Exalted
-- Function Hooks
local lOriginal_ReputationFrame_Update;
-- Add entry into cosmos configuration
function Reputation_RegisterCosmos()
if (Cosmos_RegisterConfiguration) then
Cosmos_RegisterConfiguration(
"COS_REPUTATION",
"SECTION",
REPUTATION_HEADER,
REPUTATION_HEADER_INFO);
Cosmos_RegisterConfiguration(
"COS_REPUTATION_SECTION",
"SEPERATOR",
REPUTATION_HEADER,
REPUTATION_HEADER_INFO);
Cosmos_RegisterConfiguration(
"COS_REPUTATION_ENABLE",
"CHECKBOX",
REPUTATION_ENABLE,
REPUTATION_ENABLE_INFO,
Reputation_Cosmos_Toggle,
1);
Cosmos_RegisterConfiguration(
"COS_REPUTATION_LOADED",
"CHECKBOX",
REPUTATION_LOADED,
REPUTATION_LOADED_INFO,
Reputation_Load_Toggle,
1);
Cosmos_RegisterConfiguration(
"COS_REPUTATION_RAW",
"CHECKBOX",
REPUTATION_RAW,
REPUTATION_RAW_INFO,
Reputation_Raw_Toggle,
1);
Cosmos_RegisterConfiguration(
"COS_REPUTATION_CHATFRAME",
"SLIDER",
REPUTATION_FRAME,
REPUTATION_FRAME_INFO,
Reputation_ChatFrame_Change,
0,
2, --default
1, --min
7, --max
"chatframe",
1,
1,
"",
1);
Cosmos_RegisterConfiguration(
"COS_REPUTATION_NOTIFY",
"CHECKBOX",
REPUTATION_NOTIFICATION,
REPUTATION_NOTIFICATION_INFO,
Reputation_Notify_Toggle,
1);
Cosmos_RegisterConfiguration(
"COS_REPUTATION_STANDING",
"CHECKBOX",
REPUTATION_STANDING,
REPUTATION_STANDING_INFO,
Reputation_Next_Toggle,
1);
Cosmos_RegisterConfiguration(
"COS_REPUTATION_REPEATING",
"CHECKBOX",
REPUTATION_REPEATING,
REPUTATION_REPEATING_INFO,
Reputation_Repeat_Toggle,
1);
end
end
-- Round function
function round(x)
return floor(x+0.5);
end
function ReputationMod_OnLoad()
--Slash command for Non-Cosmos users
SlashCmdList["REPUTATIONCOMMAND"] = Reputation_SlashHandler;
SLASH_REPUTATIONCOMMAND1 = "/reputation";
SLASH_REPUTATIONCOMMAND2 = "/rep";
this:RegisterEvent("UPDATE_FACTION");
this:RegisterEvent("VARIABLES_LOADED"); --Set hook if needed and check chat frame
Reputation_RegisterCosmos();
if( DEFAULT_CHAT_FRAME and Reputations_Load==1 ) then
DEFAULT_CHAT_FRAME:AddMessage(format(REPUTATION_LOADED,Reputations_Version));
end
end
local function ReputationMod_Update()
local numFactions = GetNumFactions();
local factionIndex, factionStanding, factionBar, factionHeader, color;
local name, standingID, barValue, atWarWith, canToggleAtWar, isHeader, isCollapsed;
local multiplier=100;
local RepRemains
for factionIndex=1, numFactions, 1 do
name, _, standingID, barValue, atWarWith, canToggleAtWar, isHeader, isCollapsed = GetFactionInfo(factionIndex);
if (not isHeader) then
if (Reputations_Enabled==1) then
if (Reputations[name] and Reputations_Notify==1) then
local multiplier = 100;
local RawTotal = 0;
if (Reputations_Raw==1) then
multiplier=Units[standingID];
end
if (Reputations[name].standingID == standingID) then
local difference = (barValue - Reputations[name].Value)*multiplier;
if ( Reputations_Raw == 1 ) then
difference = round(difference);
end
if (difference > 0) then --Reputation went up
REPUTATIONS_CHAT_FRAME:AddMessage(format(getglobal("REPUTATION_GAINED"..Reputations_Raw),name,difference), 0.5, 0.5, 1.0);
if (standingID ~= 8) then
RepRemains = (1-barValue)*multiplier;
if (Reputations_Next==1) then
if ( Reputations_Raw == 1 ) then
RepRemains = round(RepRemains);
end
REPUTATIONS_CHAT_FRAME:AddMessage(format(getglobal("REPUTATION_NEEDED"..Reputations_Raw),RepRemains,getglobal("FACTION_STANDING_LABEL"..standingID+1),name), 1.0, 1.0, 0.0);
end
if (Reputations_Repeat==1) then
RepRepeats = RepRemains/difference;
if (RepRepeats > floor(RepRepeats)) then
RepRepeats = ceil(RepRepeats);
end
REPUTATIONS_CHAT_FRAME:AddMessage(format(getglobal("REPUTATION_REPEATS"),RepRepeats,getglobal("FACTION_STANDING_LABEL"..standingID+1),name), 1.0, 1.0, 0.0);
end
end
elseif (difference < 0) then --Reputation went down
difference=abs(difference);
REPUTATIONS_CHAT_FRAME:AddMessage(format(getglobal("REPUTATION_LOST"..Reputations_Raw),name,difference), 0.5, 0.5, 1.0);
if (standingID ~= 1) then
RepRemains = barValue*multiplier;
if (Reputations_Next==1) then
if ( Reputations_Raw == 1 ) then
RepRemains = round(RepRemains);
end
REPUTATIONS_CHAT_FRAME:AddMessage(format(getglobal("REPUTATION_LEFT"..Reputations_Raw),RepRemains,getglobal("FACTION_STANDING_LABEL"..standingID-1),name), 1.0, 1.0, 0.0);
end
if (Reputations_Repeat==1) then
RepRepeats = RepRemains/difference;
if (RepRepeats > floor(RepRepeats)) then
RepRepeats = ceil(RepRepeats);
end
REPUTATIONS_CHAT_FRAME:AddMessage(format(getglobal("REPUTATION_REPEATS"),RepRepeats,getglobal("FACTION_STANDING_LABEL"..standingID+1),name), 1.0, 1.0, 0.0);
end
end
end
elseif (Reputations[name].standingID < standingID) then --Reputation went up
RepRemains = (1-barValue)*multiplier;
if (Reputations_Raw==1) then
RepRemains = round(RepRemains);
for i=Reputations[name].standingID, standingID, 1 do
if ( i == standingID ) then
RawTotal = RawTotal+barValue*multiplier;
elseif ( i == Reputations[name].standingID ) then
RawTotal = RawTotal+(1-Reputations[name].Value)*Units[i];
else
RawTotal = RawTotal+Units[i];
end
end
RawTotal = round(RawTotal);
else
RawTotal = (standingID-Reputations[name].standingID-Reputations[name].Value+barValue)*multiplier;
end
REPUTATIONS_CHAT_FRAME:AddMessage(format(getglobal("REPUTATION_GAINED"..Reputations_Raw),name,RawTotal), 0.5, 0.5, 1.0);
REPUTATIONS_CHAT_FRAME:AddMessage(format(REPUTATION_REACHED,getglobal("FACTION_STANDING_LABEL"..standingID),name), 1.0, 1.0, 0.0);
if (standingID ~= 8) then
if (Reputations_Next==1) then
REPUTATIONS_CHAT_FRAME:AddMessage(format(getglobal("REPUTATION_NEEDED"..Reputations_Raw),RepRemains,getglobal("FACTION_STANDING_LABEL"..standingID+1),name), 1.0, 1.0, 0.0);
end
if (Reputations_Repeat==1) then
RepRepeats = RepRemains/RawTotal;
if (RepRepeats > floor(RepRepeats)) then
RepRepeats = ceil(RepRepeats);
end
REPUTATIONS_CHAT_FRAME:AddMessage(format(getglobal("REPUTATION_REPEATS"),RepRepeats,getglobal("FACTION_STANDING_LABEL"..standingID+1),name), 1.0, 1.0, 0.0);
end
end
color=FACTION_BAR_COLORS[standingID];
ZoneTextString:SetText(getglobal("FACTION_STANDING_LABEL"..standingID).."!");
ZoneTextString:SetTextColor(color.r, color.g, color.b);
SubZoneTextString:SetText(name);
SubZoneTextString:SetTextColor(color.r, color.g, color.b);
ZoneTextFrame.startTime=GetTime();
SubZoneTextFrame.startTime=GetTime();
ZoneTextFrame:Show();
SubZoneTextFrame:Show();
--UIErrorsFrame:AddMessage(getglobal("FACTION_STANDING_LABEL"..standingID).."!", 1.0, 1.0, 1.0, 1.0, UIERRORS_HOLD_TIME);
else --Reputation went down
RepRemains = barValue*multiplier;
if (Reputations_Raw==1) then
RepRemains = round(RepRemains);
for i=standingID, Reputations[name].standingID, 1 do
if ( i == standingID ) then
RawTotal = RawTotal+(1-barValue)*multiplier;
elseif ( i == Reputations[name].standingID ) then
RawTotal = RawTotal+Reputations[name].Value*Units[i];
else
RawTotal = RawTotal+Units[i];
end
end
RawTotal = round(RawTotal);
else
RawTotal = (Reputations[name].standingID-standingID-barValue+Reputations[name].Value)*multiplier;
end
REPUTATIONS_CHAT_FRAME:AddMessage(format(getglobal("REPUTATION_LOST"..Reputations_Raw),name,RawTotal), 0.5, 0.5, 1.0);
REPUTATIONS_CHAT_FRAME:AddMessage(format(REPUTATION_REACHED,getglobal("FACTION_STANDING_LABEL"..standingID),name), 1.0, 1.0, 0.0);
if (standingID ~= 1) then
if (Reputations_Next==1) then
REPUTATIONS_CHAT_FRAME:AddMessage(format(getglobal("REPUTATION_LEFT"..Reputations_Raw),RepRemains,getglobal("FACTION_STANDING_LABEL"..standingID-1),name), 1.0, 1.0, 0.0);
end
if (Reputations_Repeat==1) then
RepRepeats = RepRemains/RawTotal;
if (RepRepeats > floor(RepRepeats)) then
RepRepeats = ceil(RepRepeats);
end
REPUTATIONS_CHAT_FRAME:AddMessage(format(getglobal("REPUTATION_REPEATS"),RepRepeats,getglobal("FACTION_STANDING_LABEL"..standingID+1),name), 1.0, 1.0, 0.0);
end
end
color=FACTION_BAR_COLORS[standingID];
ZoneTextString:SetText(getglobal("FACTION_STANDING_LABEL"..standingID).."!");
ZoneTextString:SetTextColor(color.r, color.g, color.b);
SubZoneTextString:SetText(name);
SubZoneTextString:SetTextColor(color.r, color.g, color.b);
ZoneTextFrame.startTime=GetTime();
SubZoneTextFrame.startTime=GetTime();
ZoneTextFrame:Show();
SubZoneTextFrame:Show();
end
else
Reputations[name] = { };
end
if (Reputations_Debug == 1) then
REPUTATIONS_CHAT_FRAME:AddMessage(format("%s-Old:%f New:%f Diff:%f",name,Reputations[name].Value,barValue,barValue-Reputations[name].Value));
end
Reputations[name].standingID = standingID;
Reputations[name].Value = barValue;
Reputations[name].atWarWith = atWarWith;
end
end
end
end
function ReputationMod_OnEvent()
if(event == "UPDATE_FACTION") then
ReputationMod_Update();
end
if(event == "VARIABLES_LOADED") then
if (Reputations_Enabled==1) then
--Hook ReputationFrame
if (not lOriginal_ReputationFrame_Update) then
lOriginal_ReputationFrame_Update=ReputationFrame_Update;
ReputationFrame_Update=ReputationFrame_Update_New;
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_MOD_ON);
end
else
--Unhook ReputationFrame
if (lOriginal_ReputationFrame_Update) then
ReputationFrame_Update=lOriginal_ReputationFrame_Update;
lOriginal_ReputationFrame_Update=nil;
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_MOD_OFF);
end
end
if (Reputations_Frame > 0 and Reputations_Frame <= FCF_GetNumActiveChatFrames()) then
REPUTATIONS_CHAT_FRAME = getglobal("ChatFrame"..Reputations_Frame);
else
REPUTATIONS_CHAT_FRAME = DEFAULT_CHAT_FRAME;
end
end
end
function Reputation_Toggle(toggle) --Toggle with notification
if (toggle) then
Reputations_Enabled = toggle;
if (toggle==1) then
--Hook ReputationFrame
if (not lOriginal_ReputationFrame_Update) then
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_MOD_ON);
lOriginal_ReputationFrame_Update=ReputationFrame_Update;
ReputationFrame_Update=ReputationFrame_Update_New;
end
else
--Unhook ReputationFrame
if (lOriginal_ReputationFrame_Update) then
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_MOD_OFF);
ReputationFrame_Update=lOriginal_ReputationFrame_Update;
lOriginal_ReputationFrame_Update=nil;
end
end
else
if (Reputations_Enable == 1) then
Reputations_Enable = 0;
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_MOD_OFF);
--Unhook ReputationFrame
if (lOriginal_ReputationFrame_Update) then
ReputationFrame_Update=lOriginal_ReputationFrame_Update;
lOriginal_ReputationFrame_Update=nil;
end
else
Reputations_Enable = 1;
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_MOD_ON);
--Hook ReputationFrame
if (not lOriginal_ReputationFrame_Update) then
lOriginal_ReputationFrame_Update=ReputationFrame_Update;
ReputationFrame_Update=ReputationFrame_Update_New;
end
end
end
if (Cosmos_UpdateValue) then
Cosmos_UpdateValue("COS_REPUTATION_ENABLE_X",CSM_CHECKONOFF,Reputations_Enable);
end
end
function Reputation_Cosmos_Toggle(toggle) --Toggle without notification
Reputations_Enabled = toggle;
if (toggle==1) then
--Hook ReputationFrame
if (not lOriginal_ReputationFrame_Update) then
lOriginal_ReputationFrame_Update=ReputationFrame_Update;
ReputationFrame_Update=ReputationFrame_Update_New;
end
else
--Unhook ReputationFrame
if (lOriginal_ReputationFrame_Update) then
ReputationFrame_Update=lOriginal_ReputationFrame_Update;
lOriginal_ReputationFrame_Update=nil;
end
end
end
function Reputation_Load_Toggle(toggle)
if (toggle) then
Reputations_Load = toggle;
if (toggle==1) then
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_LOAD_ON);
else
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_LOAD_OFF);
end
else
if (Reputations_Raw == 1) then
Reputations_Load = 0;
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_LOAD_OFF);
else
Reputations_Load = 1;
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_LOAD_ON);
end
end
if (Cosmos_UpdateValue) then
Cosmos_UpdateValue("COS_REPUTATION_LOADED_X",CSM_CHECKONOFF,Reputations_Load);
end
end
function Reputation_Raw_Toggle(toggle)
if (toggle) then
Reputations_Raw = toggle;
if (toggle==1) then
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_RAW_NUMS);
else
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_PCT_NUMS);
end
else
if (Reputations_Raw == 1) then
Reputations_Raw = 0;
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_PCT_NUMS);
else
Reputations_Raw = 1;
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_RAW_NUMS);
end
end
if (Cosmos_UpdateValue) then
Cosmos_UpdateValue("COS_REPUTATION_RAW_X",CSM_CHECKONOFF,Reputations_Raw);
end
end
function Reputation_Debug_Toggle(toggle)
if (toggle) then
Reputations_Debug = toggle;
if (toggle==1) then
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_DEBUG_ON);
end
else
if (Reputations_Debug == 1) then
Reputations_Debug = 0;
else
Reputations_Debug = 1;
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_DEBUG_ON);
end
end
end
function Reputation_ChatFrame_Change(checked,value) --Checked will always be 0
if (value) then
if (value > 0 and value <= FCF_GetNumActiveChatFrames()) then
Reputations_Frame = value;
REPUTATIONS_CHAT_FRAME = getglobal("ChatFrame"..Reputations_Frame);
REPUTATIONS_CHAT_FRAME:AddMessage(REPUTATION_MOD_FRAME,1.0,1.0,0.0);
else
DEFAULT_CHAT_FRAME:AddMessage(format(REPUTATION_INVALID_FRAME,value));
DEFAULT_CHAT_FRAME:AddMessage(format(REPUTATION_VALID_FRAMES,FCF_GetNumActiveChatFrames()));
end
end
end
function Reputation_Notify_Toggle(toggle)
if (toggle) then
Reputations_Notify = toggle;
if (toggle==1) then
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_NOTIFY_ON);
else
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_NOTIFY_OFF);
end
else
if (Reputations_Notify == 1) then
Reputations_Notify = 0;
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_NOTIFY_OFF);
else
Reputations_Notify = 1;
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_NOTIFY_ON);
end
end
if (Cosmos_UpdateValue) then
Cosmos_UpdateValue("COS_REPUTATION_NOTIFY_X",CSM_CHECKONOFF,Reputations_Notify);
end
end
function Reputation_Next_Toggle(toggle)
if (toggle) then
Reputations_Next = toggle;
if (toggle==1) then
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_NEXT_ON);
else
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_NEXT_OFF);
end
else
if (Reputations_Next == 1) then
Reputations_Next = 0;
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_NEXT_OFF);
else
Reputations_Next = 1;
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_NEXT_ON);
end
end
if (Cosmos_UpdateValue) then
Cosmos_UpdateValue("COS_REPUTATION_STANDING_X",CSM_CHECKONOFF,Reputations_Next);
end
end
function Reputation_Repeat_Toggle(toggle)
if (toggle) then
Reputations_Repeat = toggle;
if (toggle==1) then
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_REPEAT_ON);
else
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_REPEAT_OFF);
end
else
if (Reputations_Repeat == 1) then
Reputations_Repeat = 0;
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_REPEAT_OFF);
else
Reputations_Repeat = 1;
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_REPEAT_ON);
end
end
if (Cosmos_UpdateValue) then
Cosmos_UpdateValue("COS_REPUTATION_REPEATING_X",CSM_CHECKONOFF,Reputations_Repeat);
end
end
function Reputation_SlashHandler(msg)
local index, value;
if (not msg or msg == "") then --Show Help
for index, value in REPUTATION_HELP_TEXT do
DEFAULT_CHAT_FRAME:AddMessage(value);
end
else
local command=strlower(msg);
if (command == REPUTATION_LIST) then
local numFactions = GetNumFactions();
local factionIndex, factionStanding, factionBar, factionHeader, color;
local name, standingID, barValue, atWarWith, canToggleAtWar, isHeader, isCollapsed;
for factionIndex=1, numFactions, 1 do
name, _, standingID, barValue, atWarWith, canToggleAtWar, isHeader, isCollapsed = GetFactionInfo(factionIndex);
if (not isHeader) then
if (Reputations_Raw==1) then
REPUTATIONS_CHAT_FRAME:AddMessage(format(name..":%d/%d",barValue*Units[standingID],Units[standingID]));
else
REPUTATIONS_CHAT_FRAME:AddMessage(format(name..":%.5f%%",barValue*100));
end
end
end
elseif (command == REPUTATION_ON) then
Reputation_Toggle(1);
elseif (command == REPUTATION_OFF) then
Reputation_Toggle(0);
elseif (command == REPUTATION_LOAD) then
Reputation_Load_Toggle();
elseif (command == REPUTATION_STATUS) then
DEFAULT_CHAT_FRAME:AddMessage(format(REPUTATION_VERSION..".",Reputations_Version));
if (Reputations_Enabled==1) then
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_MOD_ON);
if (Reputations_Load==1) then
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_LOAD_ON);
else
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_LOAD_OFF);
end
if (Reputations_Raw==1) then
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_RAW_NUMS);
else
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_PCT_NUMS);
end
DEFAULT_CHAT_FRAME:AddMessage(format(REPUTATION_SEL_FRAME,Reputations_Frame));
if (Reputations_Notify==1) then
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_NOTIFY_ON);
else
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_NOTIFY_OFF);
end
if (Reputations_Next==1) then
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_NEXT_ON);
else
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_NEXT_OFF);
end
if (Reputations_Repeat==1) then
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_REPEAT_ON);
else
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_REPEAT_OFF);
end
if (Reputations_Debug==1) then
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_DEBUG_ON);
end
else
DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_MOD_OFF);
end
elseif (command == REPUTATION_PCT_RAW) then
Reputation_Raw_Toggle();
elseif (command == REPUTATION_DEBUG) then
Reputation_Debug_Toggle();
elseif (strfind(command,"^"..REPUTATION_FRAME.." ")) then
local repchannel;
_,_,repchannel = strfind(command,"^"..REPUTATION_FRAME.."%s+(%d+)%s*$");
if (repchannel) then
repchannel = tonumber(repchannel);
Reputation_ChatFrame_Change(0,repchannel);
else
DEFAULT_CHAT_FRAME:AddMessage(format(REPUTATION_INVALID_FRAME,value));
DEFAULT_CHAT_FRAME:AddMessage(format(REPUTATION_VALID_FRAMES,FCF_GetNumActiveChatFrames()));
end
elseif (command == REPUTATION_NOTIFY) then
Reputation_Notify_Toggle();
elseif (command == REPUTATION_NEXT) then
Reputation_Next_Toggle();
elseif (command == REPUTATION_REPEAT) then
Reputation_Repeat_Toggle();
else --Help
for index, value in REPUTATION_HELP_TEXT do
DEFAULT_CHAT_FRAME:AddMessage(value);
end
end
end
end
function ReputationFrame_Update_New()
lOriginal_ReputationFrame_Update();
local numFactions = GetNumFactions();
local factionOffset = FauxScrollFrame_GetOffset(ReputationListScrollFrame);
local factionIndex, factionStanding, standingID, barValue, isHeader;
for i=1, NUM_FACTIONS_DISPLAYED, 1 do
factionIndex = factionOffset + i;
if ( factionIndex <= numFactions ) then
_, _, standingID, barValue, _, _, isHeader = GetFactionInfo(factionIndex);
if ( not isHeader ) then
factionStanding = getglobal("FACTION_STANDING_LABEL"..standingID);
if (Reputations_Raw==1) then
getglobal("ReputationBar"..i.."FactionStanding"):SetText( factionStanding.." - "..round(barValue*Units[standingID]).."/"..Units[standingID]);
else
getglobal("ReputationBar"..i.."FactionStanding"):SetText( format(factionStanding.." %.2f%%", barValue*100));
end
end
end
end
end