vanilla-wow-addons – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 --Reputation Mod
2  
3 Reputations_Version="0.14";
4  
5 Reputations = { };
6 --Default Values
7 Reputations_Enabled = 1; --Enabled
8 Reputations_Raw = 1; --Raw Numbers
9 Reputations_Frame = 2; --Combat Window
10 Reputations_Next = 1; --Display reputation needed until next standing
11 Reputations_Notify = 1; --Display reputation notifications
12 Reputations_Debug = 0; --Debug Info: Displays Previous, New and Diff and each faction change
13 Reputations_Load = 1; --Display reputation loaded message
14 Reputations_Repeat = 0; --Display amount of repetitions needed until next standing
15  
16 REPUTATIONS_CHAT_FRAME = getglobal("ChatFrame"..Reputations_Frame);
17  
18 -- Maximum units for each standing
19 Units = { };
20 Units[1] = 36000; -- Hated
21 Units[2] = 3000; -- Hostile
22 Units[3] = 3000; -- Unfriendly
23 Units[4] = 3000; -- Neutral
24 Units[5] = 6000; -- Friendly
25 Units[6] = 12000; -- Honored
26 Units[7] = 21000; -- Revered
27 Units[8] = 1000; -- Exalted
28  
29 -- Function Hooks
30 local lOriginal_ReputationFrame_Update;
31  
32 -- Add entry into cosmos configuration
33 function Reputation_RegisterCosmos()
34 if (Cosmos_RegisterConfiguration) then
35 Cosmos_RegisterConfiguration(
36 "COS_REPUTATION",
37 "SECTION",
38 REPUTATION_HEADER,
39 REPUTATION_HEADER_INFO);
40 Cosmos_RegisterConfiguration(
41 "COS_REPUTATION_SECTION",
42 "SEPERATOR",
43 REPUTATION_HEADER,
44 REPUTATION_HEADER_INFO);
45 Cosmos_RegisterConfiguration(
46 "COS_REPUTATION_ENABLE",
47 "CHECKBOX",
48 REPUTATION_ENABLE,
49 REPUTATION_ENABLE_INFO,
50 Reputation_Cosmos_Toggle,
51 1);
52 Cosmos_RegisterConfiguration(
53 "COS_REPUTATION_LOADED",
54 "CHECKBOX",
55 REPUTATION_LOADED,
56 REPUTATION_LOADED_INFO,
57 Reputation_Load_Toggle,
58 1);
59 Cosmos_RegisterConfiguration(
60 "COS_REPUTATION_RAW",
61 "CHECKBOX",
62 REPUTATION_RAW,
63 REPUTATION_RAW_INFO,
64 Reputation_Raw_Toggle,
65 1);
66 Cosmos_RegisterConfiguration(
67 "COS_REPUTATION_CHATFRAME",
68 "SLIDER",
69 REPUTATION_FRAME,
70 REPUTATION_FRAME_INFO,
71 Reputation_ChatFrame_Change,
72 0,
73 2, --default
74 1, --min
75 7, --max
76 "chatframe",
77 1,
78 1,
79 "",
80 1);
81 Cosmos_RegisterConfiguration(
82 "COS_REPUTATION_NOTIFY",
83 "CHECKBOX",
84 REPUTATION_NOTIFICATION,
85 REPUTATION_NOTIFICATION_INFO,
86 Reputation_Notify_Toggle,
87 1);
88 Cosmos_RegisterConfiguration(
89 "COS_REPUTATION_STANDING",
90 "CHECKBOX",
91 REPUTATION_STANDING,
92 REPUTATION_STANDING_INFO,
93 Reputation_Next_Toggle,
94 1);
95 Cosmos_RegisterConfiguration(
96 "COS_REPUTATION_REPEATING",
97 "CHECKBOX",
98 REPUTATION_REPEATING,
99 REPUTATION_REPEATING_INFO,
100 Reputation_Repeat_Toggle,
101 1);
102 end
103 end
104  
105 -- Round function
106 function round(x)
107 return floor(x+0.5);
108 end
109  
110 function ReputationMod_OnLoad()
111 --Slash command for Non-Cosmos users
112 SlashCmdList["REPUTATIONCOMMAND"] = Reputation_SlashHandler;
113 SLASH_REPUTATIONCOMMAND1 = "/reputation";
114 SLASH_REPUTATIONCOMMAND2 = "/rep";
115  
116 this:RegisterEvent("UPDATE_FACTION");
117 this:RegisterEvent("VARIABLES_LOADED"); --Set hook if needed and check chat frame
118  
119 Reputation_RegisterCosmos();
120  
121 if( DEFAULT_CHAT_FRAME and Reputations_Load==1 ) then
122 DEFAULT_CHAT_FRAME:AddMessage(format(REPUTATION_LOADED,Reputations_Version));
123 end
124 end
125  
126 local function ReputationMod_Update()
127 local numFactions = GetNumFactions();
128 local factionIndex, factionStanding, factionBar, factionHeader, color;
129 local name, standingID, barValue, atWarWith, canToggleAtWar, isHeader, isCollapsed;
130 local multiplier=100;
131 local RepRemains
132 for factionIndex=1, numFactions, 1 do
133 name, _, standingID, barValue, atWarWith, canToggleAtWar, isHeader, isCollapsed = GetFactionInfo(factionIndex);
134 if (not isHeader) then
135 if (Reputations_Enabled==1) then
136 if (Reputations[name] and Reputations_Notify==1) then
137 local multiplier = 100;
138 local RawTotal = 0;
139 if (Reputations_Raw==1) then
140 multiplier=Units[standingID];
141 end
142 if (Reputations[name].standingID == standingID) then
143 local difference = (barValue - Reputations[name].Value)*multiplier;
144 if ( Reputations_Raw == 1 ) then
145 difference = round(difference);
146 end
147 if (difference > 0) then --Reputation went up
148 REPUTATIONS_CHAT_FRAME:AddMessage(format(getglobal("REPUTATION_GAINED"..Reputations_Raw),name,difference), 0.5, 0.5, 1.0);
149 if (standingID ~= 8) then
150 RepRemains = (1-barValue)*multiplier;
151 if (Reputations_Next==1) then
152 if ( Reputations_Raw == 1 ) then
153 RepRemains = round(RepRemains);
154 end
155 REPUTATIONS_CHAT_FRAME:AddMessage(format(getglobal("REPUTATION_NEEDED"..Reputations_Raw),RepRemains,getglobal("FACTION_STANDING_LABEL"..standingID+1),name), 1.0, 1.0, 0.0);
156 end
157 if (Reputations_Repeat==1) then
158 RepRepeats = RepRemains/difference;
159 if (RepRepeats > floor(RepRepeats)) then
160 RepRepeats = ceil(RepRepeats);
161 end
162 REPUTATIONS_CHAT_FRAME:AddMessage(format(getglobal("REPUTATION_REPEATS"),RepRepeats,getglobal("FACTION_STANDING_LABEL"..standingID+1),name), 1.0, 1.0, 0.0);
163 end
164 end
165 elseif (difference < 0) then --Reputation went down
166 difference=abs(difference);
167 REPUTATIONS_CHAT_FRAME:AddMessage(format(getglobal("REPUTATION_LOST"..Reputations_Raw),name,difference), 0.5, 0.5, 1.0);
168 if (standingID ~= 1) then
169 RepRemains = barValue*multiplier;
170 if (Reputations_Next==1) then
171 if ( Reputations_Raw == 1 ) then
172 RepRemains = round(RepRemains);
173 end
174 REPUTATIONS_CHAT_FRAME:AddMessage(format(getglobal("REPUTATION_LEFT"..Reputations_Raw),RepRemains,getglobal("FACTION_STANDING_LABEL"..standingID-1),name), 1.0, 1.0, 0.0);
175 end
176 if (Reputations_Repeat==1) then
177 RepRepeats = RepRemains/difference;
178 if (RepRepeats > floor(RepRepeats)) then
179 RepRepeats = ceil(RepRepeats);
180 end
181 REPUTATIONS_CHAT_FRAME:AddMessage(format(getglobal("REPUTATION_REPEATS"),RepRepeats,getglobal("FACTION_STANDING_LABEL"..standingID+1),name), 1.0, 1.0, 0.0);
182 end
183 end
184 end
185 elseif (Reputations[name].standingID < standingID) then --Reputation went up
186 RepRemains = (1-barValue)*multiplier;
187 if (Reputations_Raw==1) then
188 RepRemains = round(RepRemains);
189 for i=Reputations[name].standingID, standingID, 1 do
190 if ( i == standingID ) then
191 RawTotal = RawTotal+barValue*multiplier;
192 elseif ( i == Reputations[name].standingID ) then
193 RawTotal = RawTotal+(1-Reputations[name].Value)*Units[i];
194 else
195 RawTotal = RawTotal+Units[i];
196 end
197 end
198 RawTotal = round(RawTotal);
199 else
200 RawTotal = (standingID-Reputations[name].standingID-Reputations[name].Value+barValue)*multiplier;
201 end
202 REPUTATIONS_CHAT_FRAME:AddMessage(format(getglobal("REPUTATION_GAINED"..Reputations_Raw),name,RawTotal), 0.5, 0.5, 1.0);
203 REPUTATIONS_CHAT_FRAME:AddMessage(format(REPUTATION_REACHED,getglobal("FACTION_STANDING_LABEL"..standingID),name), 1.0, 1.0, 0.0);
204 if (standingID ~= 8) then
205 if (Reputations_Next==1) then
206 REPUTATIONS_CHAT_FRAME:AddMessage(format(getglobal("REPUTATION_NEEDED"..Reputations_Raw),RepRemains,getglobal("FACTION_STANDING_LABEL"..standingID+1),name), 1.0, 1.0, 0.0);
207 end
208 if (Reputations_Repeat==1) then
209 RepRepeats = RepRemains/RawTotal;
210 if (RepRepeats > floor(RepRepeats)) then
211 RepRepeats = ceil(RepRepeats);
212 end
213 REPUTATIONS_CHAT_FRAME:AddMessage(format(getglobal("REPUTATION_REPEATS"),RepRepeats,getglobal("FACTION_STANDING_LABEL"..standingID+1),name), 1.0, 1.0, 0.0);
214 end
215 end
216 color=FACTION_BAR_COLORS[standingID];
217 ZoneTextString:SetText(getglobal("FACTION_STANDING_LABEL"..standingID).."!");
218 ZoneTextString:SetTextColor(color.r, color.g, color.b);
219 SubZoneTextString:SetText(name);
220 SubZoneTextString:SetTextColor(color.r, color.g, color.b);
221 ZoneTextFrame.startTime=GetTime();
222 SubZoneTextFrame.startTime=GetTime();
223 ZoneTextFrame:Show();
224 SubZoneTextFrame:Show();
225 --UIErrorsFrame:AddMessage(getglobal("FACTION_STANDING_LABEL"..standingID).."!", 1.0, 1.0, 1.0, 1.0, UIERRORS_HOLD_TIME);
226 else --Reputation went down
227 RepRemains = barValue*multiplier;
228 if (Reputations_Raw==1) then
229 RepRemains = round(RepRemains);
230 for i=standingID, Reputations[name].standingID, 1 do
231 if ( i == standingID ) then
232 RawTotal = RawTotal+(1-barValue)*multiplier;
233 elseif ( i == Reputations[name].standingID ) then
234 RawTotal = RawTotal+Reputations[name].Value*Units[i];
235 else
236 RawTotal = RawTotal+Units[i];
237 end
238 end
239 RawTotal = round(RawTotal);
240 else
241 RawTotal = (Reputations[name].standingID-standingID-barValue+Reputations[name].Value)*multiplier;
242 end
243 REPUTATIONS_CHAT_FRAME:AddMessage(format(getglobal("REPUTATION_LOST"..Reputations_Raw),name,RawTotal), 0.5, 0.5, 1.0);
244 REPUTATIONS_CHAT_FRAME:AddMessage(format(REPUTATION_REACHED,getglobal("FACTION_STANDING_LABEL"..standingID),name), 1.0, 1.0, 0.0);
245 if (standingID ~= 1) then
246 if (Reputations_Next==1) then
247 REPUTATIONS_CHAT_FRAME:AddMessage(format(getglobal("REPUTATION_LEFT"..Reputations_Raw),RepRemains,getglobal("FACTION_STANDING_LABEL"..standingID-1),name), 1.0, 1.0, 0.0);
248 end
249 if (Reputations_Repeat==1) then
250 RepRepeats = RepRemains/RawTotal;
251 if (RepRepeats > floor(RepRepeats)) then
252 RepRepeats = ceil(RepRepeats);
253 end
254 REPUTATIONS_CHAT_FRAME:AddMessage(format(getglobal("REPUTATION_REPEATS"),RepRepeats,getglobal("FACTION_STANDING_LABEL"..standingID+1),name), 1.0, 1.0, 0.0);
255 end
256 end
257 color=FACTION_BAR_COLORS[standingID];
258 ZoneTextString:SetText(getglobal("FACTION_STANDING_LABEL"..standingID).."!");
259 ZoneTextString:SetTextColor(color.r, color.g, color.b);
260 SubZoneTextString:SetText(name);
261 SubZoneTextString:SetTextColor(color.r, color.g, color.b);
262 ZoneTextFrame.startTime=GetTime();
263 SubZoneTextFrame.startTime=GetTime();
264 ZoneTextFrame:Show();
265 SubZoneTextFrame:Show();
266 end
267 else
268 Reputations[name] = { };
269 end
270 if (Reputations_Debug == 1) then
271 REPUTATIONS_CHAT_FRAME:AddMessage(format("%s-Old:%f New:%f Diff:%f",name,Reputations[name].Value,barValue,barValue-Reputations[name].Value));
272 end
273 Reputations[name].standingID = standingID;
274 Reputations[name].Value = barValue;
275 Reputations[name].atWarWith = atWarWith;
276 end
277 end
278 end
279 end
280  
281 function ReputationMod_OnEvent()
282 if(event == "UPDATE_FACTION") then
283 ReputationMod_Update();
284 end
285 if(event == "VARIABLES_LOADED") then
286 if (Reputations_Enabled==1) then
287 --Hook ReputationFrame
288 if (not lOriginal_ReputationFrame_Update) then
289 lOriginal_ReputationFrame_Update=ReputationFrame_Update;
290 ReputationFrame_Update=ReputationFrame_Update_New;
291 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_MOD_ON);
292 end
293 else
294 --Unhook ReputationFrame
295 if (lOriginal_ReputationFrame_Update) then
296 ReputationFrame_Update=lOriginal_ReputationFrame_Update;
297 lOriginal_ReputationFrame_Update=nil;
298 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_MOD_OFF);
299 end
300 end
301 if (Reputations_Frame > 0 and Reputations_Frame <= FCF_GetNumActiveChatFrames()) then
302 REPUTATIONS_CHAT_FRAME = getglobal("ChatFrame"..Reputations_Frame);
303 else
304 REPUTATIONS_CHAT_FRAME = DEFAULT_CHAT_FRAME;
305 end
306 end
307 end
308  
309 function Reputation_Toggle(toggle) --Toggle with notification
310 if (toggle) then
311 Reputations_Enabled = toggle;
312 if (toggle==1) then
313 --Hook ReputationFrame
314 if (not lOriginal_ReputationFrame_Update) then
315 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_MOD_ON);
316 lOriginal_ReputationFrame_Update=ReputationFrame_Update;
317 ReputationFrame_Update=ReputationFrame_Update_New;
318 end
319 else
320 --Unhook ReputationFrame
321 if (lOriginal_ReputationFrame_Update) then
322 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_MOD_OFF);
323 ReputationFrame_Update=lOriginal_ReputationFrame_Update;
324 lOriginal_ReputationFrame_Update=nil;
325 end
326 end
327 else
328 if (Reputations_Enable == 1) then
329 Reputations_Enable = 0;
330 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_MOD_OFF);
331 --Unhook ReputationFrame
332 if (lOriginal_ReputationFrame_Update) then
333 ReputationFrame_Update=lOriginal_ReputationFrame_Update;
334 lOriginal_ReputationFrame_Update=nil;
335 end
336 else
337 Reputations_Enable = 1;
338 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_MOD_ON);
339 --Hook ReputationFrame
340 if (not lOriginal_ReputationFrame_Update) then
341 lOriginal_ReputationFrame_Update=ReputationFrame_Update;
342 ReputationFrame_Update=ReputationFrame_Update_New;
343 end
344 end
345 end
346 if (Cosmos_UpdateValue) then
347 Cosmos_UpdateValue("COS_REPUTATION_ENABLE_X",CSM_CHECKONOFF,Reputations_Enable);
348 end
349  
350 end
351  
352 function Reputation_Cosmos_Toggle(toggle) --Toggle without notification
353 Reputations_Enabled = toggle;
354 if (toggle==1) then
355 --Hook ReputationFrame
356 if (not lOriginal_ReputationFrame_Update) then
357 lOriginal_ReputationFrame_Update=ReputationFrame_Update;
358 ReputationFrame_Update=ReputationFrame_Update_New;
359 end
360 else
361 --Unhook ReputationFrame
362 if (lOriginal_ReputationFrame_Update) then
363 ReputationFrame_Update=lOriginal_ReputationFrame_Update;
364 lOriginal_ReputationFrame_Update=nil;
365 end
366 end
367 end
368  
369 function Reputation_Load_Toggle(toggle)
370 if (toggle) then
371 Reputations_Load = toggle;
372 if (toggle==1) then
373 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_LOAD_ON);
374 else
375 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_LOAD_OFF);
376 end
377 else
378 if (Reputations_Raw == 1) then
379 Reputations_Load = 0;
380 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_LOAD_OFF);
381 else
382 Reputations_Load = 1;
383 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_LOAD_ON);
384 end
385 end
386 if (Cosmos_UpdateValue) then
387 Cosmos_UpdateValue("COS_REPUTATION_LOADED_X",CSM_CHECKONOFF,Reputations_Load);
388 end
389 end
390  
391 function Reputation_Raw_Toggle(toggle)
392 if (toggle) then
393 Reputations_Raw = toggle;
394 if (toggle==1) then
395 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_RAW_NUMS);
396 else
397 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_PCT_NUMS);
398 end
399 else
400 if (Reputations_Raw == 1) then
401 Reputations_Raw = 0;
402 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_PCT_NUMS);
403 else
404 Reputations_Raw = 1;
405 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_RAW_NUMS);
406 end
407 end
408 if (Cosmos_UpdateValue) then
409 Cosmos_UpdateValue("COS_REPUTATION_RAW_X",CSM_CHECKONOFF,Reputations_Raw);
410 end
411 end
412  
413 function Reputation_Debug_Toggle(toggle)
414 if (toggle) then
415 Reputations_Debug = toggle;
416 if (toggle==1) then
417 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_DEBUG_ON);
418 end
419 else
420 if (Reputations_Debug == 1) then
421 Reputations_Debug = 0;
422 else
423 Reputations_Debug = 1;
424 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_DEBUG_ON);
425 end
426 end
427 end
428  
429 function Reputation_ChatFrame_Change(checked,value) --Checked will always be 0
430 if (value) then
431 if (value > 0 and value <= FCF_GetNumActiveChatFrames()) then
432 Reputations_Frame = value;
433 REPUTATIONS_CHAT_FRAME = getglobal("ChatFrame"..Reputations_Frame);
434 REPUTATIONS_CHAT_FRAME:AddMessage(REPUTATION_MOD_FRAME,1.0,1.0,0.0);
435 else
436 DEFAULT_CHAT_FRAME:AddMessage(format(REPUTATION_INVALID_FRAME,value));
437 DEFAULT_CHAT_FRAME:AddMessage(format(REPUTATION_VALID_FRAMES,FCF_GetNumActiveChatFrames()));
438 end
439 end
440 end
441  
442 function Reputation_Notify_Toggle(toggle)
443 if (toggle) then
444 Reputations_Notify = toggle;
445 if (toggle==1) then
446 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_NOTIFY_ON);
447 else
448 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_NOTIFY_OFF);
449 end
450 else
451 if (Reputations_Notify == 1) then
452 Reputations_Notify = 0;
453 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_NOTIFY_OFF);
454 else
455 Reputations_Notify = 1;
456 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_NOTIFY_ON);
457 end
458 end
459 if (Cosmos_UpdateValue) then
460 Cosmos_UpdateValue("COS_REPUTATION_NOTIFY_X",CSM_CHECKONOFF,Reputations_Notify);
461 end
462 end
463  
464 function Reputation_Next_Toggle(toggle)
465 if (toggle) then
466 Reputations_Next = toggle;
467 if (toggle==1) then
468 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_NEXT_ON);
469 else
470 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_NEXT_OFF);
471 end
472 else
473 if (Reputations_Next == 1) then
474 Reputations_Next = 0;
475 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_NEXT_OFF);
476 else
477 Reputations_Next = 1;
478 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_NEXT_ON);
479 end
480 end
481 if (Cosmos_UpdateValue) then
482 Cosmos_UpdateValue("COS_REPUTATION_STANDING_X",CSM_CHECKONOFF,Reputations_Next);
483 end
484 end
485  
486 function Reputation_Repeat_Toggle(toggle)
487 if (toggle) then
488 Reputations_Repeat = toggle;
489 if (toggle==1) then
490 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_REPEAT_ON);
491 else
492 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_REPEAT_OFF);
493 end
494 else
495 if (Reputations_Repeat == 1) then
496 Reputations_Repeat = 0;
497 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_REPEAT_OFF);
498 else
499 Reputations_Repeat = 1;
500 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_REPEAT_ON);
501 end
502 end
503 if (Cosmos_UpdateValue) then
504 Cosmos_UpdateValue("COS_REPUTATION_REPEATING_X",CSM_CHECKONOFF,Reputations_Repeat);
505 end
506 end
507  
508 function Reputation_SlashHandler(msg)
509 local index, value;
510 if (not msg or msg == "") then --Show Help
511 for index, value in REPUTATION_HELP_TEXT do
512 DEFAULT_CHAT_FRAME:AddMessage(value);
513 end
514 else
515 local command=strlower(msg);
516 if (command == REPUTATION_LIST) then
517 local numFactions = GetNumFactions();
518 local factionIndex, factionStanding, factionBar, factionHeader, color;
519 local name, standingID, barValue, atWarWith, canToggleAtWar, isHeader, isCollapsed;
520 for factionIndex=1, numFactions, 1 do
521 name, _, standingID, barValue, atWarWith, canToggleAtWar, isHeader, isCollapsed = GetFactionInfo(factionIndex);
522 if (not isHeader) then
523 if (Reputations_Raw==1) then
524 REPUTATIONS_CHAT_FRAME:AddMessage(format(name..":%d/%d",barValue*Units[standingID],Units[standingID]));
525 else
526 REPUTATIONS_CHAT_FRAME:AddMessage(format(name..":%.5f%%",barValue*100));
527 end
528 end
529 end
530 elseif (command == REPUTATION_ON) then
531 Reputation_Toggle(1);
532 elseif (command == REPUTATION_OFF) then
533 Reputation_Toggle(0);
534 elseif (command == REPUTATION_LOAD) then
535 Reputation_Load_Toggle();
536 elseif (command == REPUTATION_STATUS) then
537 DEFAULT_CHAT_FRAME:AddMessage(format(REPUTATION_VERSION..".",Reputations_Version));
538 if (Reputations_Enabled==1) then
539 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_MOD_ON);
540 if (Reputations_Load==1) then
541 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_LOAD_ON);
542 else
543 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_LOAD_OFF);
544 end
545 if (Reputations_Raw==1) then
546 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_RAW_NUMS);
547 else
548 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_PCT_NUMS);
549 end
550 DEFAULT_CHAT_FRAME:AddMessage(format(REPUTATION_SEL_FRAME,Reputations_Frame));
551 if (Reputations_Notify==1) then
552 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_NOTIFY_ON);
553 else
554 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_NOTIFY_OFF);
555 end
556 if (Reputations_Next==1) then
557 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_NEXT_ON);
558 else
559 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_NEXT_OFF);
560 end
561 if (Reputations_Repeat==1) then
562 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_REPEAT_ON);
563 else
564 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_REPEAT_OFF);
565 end
566 if (Reputations_Debug==1) then
567 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_DEBUG_ON);
568 end
569 else
570 DEFAULT_CHAT_FRAME:AddMessage(REPUTATION_MOD_OFF);
571 end
572 elseif (command == REPUTATION_PCT_RAW) then
573 Reputation_Raw_Toggle();
574 elseif (command == REPUTATION_DEBUG) then
575 Reputation_Debug_Toggle();
576 elseif (strfind(command,"^"..REPUTATION_FRAME.." ")) then
577 local repchannel;
578 _,_,repchannel = strfind(command,"^"..REPUTATION_FRAME.."%s+(%d+)%s*$");
579 if (repchannel) then
580 repchannel = tonumber(repchannel);
581 Reputation_ChatFrame_Change(0,repchannel);
582 else
583 DEFAULT_CHAT_FRAME:AddMessage(format(REPUTATION_INVALID_FRAME,value));
584 DEFAULT_CHAT_FRAME:AddMessage(format(REPUTATION_VALID_FRAMES,FCF_GetNumActiveChatFrames()));
585 end
586 elseif (command == REPUTATION_NOTIFY) then
587 Reputation_Notify_Toggle();
588 elseif (command == REPUTATION_NEXT) then
589 Reputation_Next_Toggle();
590 elseif (command == REPUTATION_REPEAT) then
591 Reputation_Repeat_Toggle();
592 else --Help
593 for index, value in REPUTATION_HELP_TEXT do
594 DEFAULT_CHAT_FRAME:AddMessage(value);
595 end
596 end
597 end
598 end
599  
600 function ReputationFrame_Update_New()
601 lOriginal_ReputationFrame_Update();
602 local numFactions = GetNumFactions();
603 local factionOffset = FauxScrollFrame_GetOffset(ReputationListScrollFrame);
604 local factionIndex, factionStanding, standingID, barValue, isHeader;
605  
606 for i=1, NUM_FACTIONS_DISPLAYED, 1 do
607 factionIndex = factionOffset + i;
608 if ( factionIndex <= numFactions ) then
609 _, _, standingID, barValue, _, _, isHeader = GetFactionInfo(factionIndex);
610 if ( not isHeader ) then
611 factionStanding = getglobal("FACTION_STANDING_LABEL"..standingID);
612 if (Reputations_Raw==1) then
613 getglobal("ReputationBar"..i.."FactionStanding"):SetText( factionStanding.." - "..round(barValue*Units[standingID]).."/"..Units[standingID]);
614 else
615 getglobal("ReputationBar"..i.."FactionStanding"):SetText( format(factionStanding.." %.2f%%", barValue*100));
616 end
617 end
618 end
619 end
620 end