only1yzerman@0
|
1 -------- YOU'RE ON YOUR OWN HERE, THIS IS A FRIKKIN MESS - Osmium
|
only1yzerman@0
|
2 -------- Challenge Accepted - Whyzerman
|
only1yzerman@0
|
3
|
only1yzerman@0
|
4 local element;
|
only1yzerman@0
|
5 local frame;
|
only1yzerman@0
|
6
|
only1yzerman@0
|
7 Settings = {};
|
only1yzerman@0
|
8 Settings.MultiZoneMode = 0;
|
only1yzerman@0
|
9 Settings.HerbFilter = {};
|
only1yzerman@0
|
10 Settings.OreFilter = {};
|
only1yzerman@8
|
11 Settings.MiscFilter = {};
|
only1yzerman@0
|
12 Settings.ZoneFilter = {{}, {}, {}, {}, {}};
|
only1yzerman@0
|
13 Settings.InspectionRadius = 60;
|
only1yzerman@8
|
14
|
only1yzerman@0
|
15 local function Title(text)
|
only1yzerman@0
|
16 local str = frame:CreateFontString(nil, "ARTWORK", "GameFontNormalLarge");
|
only1yzerman@0
|
17 str:SetPoint("TOPLEFT", element, "TOPLEFT", 16, -16);
|
only1yzerman@0
|
18 str:SetJustifyH("LEFT");
|
only1yzerman@0
|
19 str:SetJustifyV("TOP");
|
only1yzerman@0
|
20 str:SetText(text);
|
only1yzerman@0
|
21 element = str;
|
only1yzerman@0
|
22 end
|
only1yzerman@0
|
23
|
only1yzerman@0
|
24 local function Column2(offset)
|
only1yzerman@0
|
25 local str = frame:CreateFontString(nil, "ARTWORK", "GameFontNormalLarge");
|
only1yzerman@0
|
26 str:SetPoint("TOPLEFT", element, "TOPRIGHT", -offset, -16);
|
only1yzerman@0
|
27 str:SetText(" ");
|
only1yzerman@0
|
28 element = str;
|
only1yzerman@0
|
29 end
|
only1yzerman@0
|
30
|
only1yzerman@0
|
31 local function Heading(text)
|
only1yzerman@0
|
32 local str = frame:CreateFontString(nil, "OVERLAY", "GameFontHighlight");
|
only1yzerman@0
|
33 str:SetPoint("TOPLEFT", element, "BOTTOMLEFT", 0, -8);
|
only1yzerman@0
|
34 str:SetText(text);
|
only1yzerman@0
|
35 element = str;
|
only1yzerman@0
|
36 end
|
only1yzerman@0
|
37
|
only1yzerman@0
|
38 local ddCount = 0;
|
only1yzerman@0
|
39
|
only1yzerman@0
|
40 local function DropDown(settings, key, width, init)
|
only1yzerman@0
|
41 ddCount = ddCount + 1;
|
only1yzerman@0
|
42 local dd = CreateFrame("Frame", "dropDown"..ddCount, frame, "UIDropDownMenuTemplate");
|
only1yzerman@0
|
43 dd:EnableMouse(true);
|
only1yzerman@0
|
44 dd:SetPoint("TOPLEFT", element, "BOTTOMLEFT", 0, -8);
|
only1yzerman@0
|
45 dd.State = {};
|
only1yzerman@0
|
46 UIDropDownMenu_Initialize(dd, init);
|
only1yzerman@0
|
47 UIDropDownMenu_SetWidth(dd, width);
|
only1yzerman@0
|
48 UIDropDownMenu_JustifyText(dd, "LEFT");
|
only1yzerman@0
|
49 UIDropDownMenu_SetSelectedValue(dd, settings[key]);
|
only1yzerman@0
|
50 element = dd;
|
only1yzerman@0
|
51 end
|
only1yzerman@0
|
52
|
only1yzerman@0
|
53 function AddButton(settings, key, menu, label, value)
|
only1yzerman@0
|
54 local info = UIDropDownMenu_CreateInfo();
|
only1yzerman@0
|
55 info.text = label;
|
only1yzerman@0
|
56 info.value = value;
|
only1yzerman@0
|
57 info.owner = menu;
|
only1yzerman@0
|
58 info.func = function()
|
only1yzerman@0
|
59 UIDropDownMenu_SetSelectedValue(menu, value);
|
only1yzerman@0
|
60 settings[key] = value;
|
only1yzerman@0
|
61 Bloodhound2.UpdateMinimap();
|
only1yzerman@0
|
62 end;
|
only1yzerman@0
|
63 UIDropDownMenu_AddButton(info);
|
only1yzerman@0
|
64 end
|
only1yzerman@0
|
65
|
only1yzerman@0
|
66 local cbCount = 0;
|
only1yzerman@0
|
67
|
only1yzerman@0
|
68 function CheckBox(label, value, relative, anchor, dx, dy, state)
|
only1yzerman@0
|
69 cbCount = cbCount + 1;
|
only1yzerman@0
|
70 local cb = CreateFrame("CheckButton", "checkBox"..cbCount, frame, "UICheckButtonTemplate");
|
only1yzerman@0
|
71 cb:SetWidth(16);
|
only1yzerman@0
|
72 cb:SetHeight(16);
|
only1yzerman@0
|
73 cb:SetPoint("TOPLEFT", relative, anchor, dx, dy);
|
only1yzerman@0
|
74 local text = getglobal(cb:GetName() .. "Text");
|
only1yzerman@0
|
75 text:SetText(label);
|
only1yzerman@0
|
76 cb:SetChecked(not state[value]);
|
only1yzerman@0
|
77 cb:SetScript("OnClick", function(self)
|
only1yzerman@0
|
78 if (self:GetChecked()) then
|
only1yzerman@0
|
79 state[value] = nil;
|
only1yzerman@0
|
80 else
|
only1yzerman@0
|
81 state[value] = 1;
|
only1yzerman@0
|
82 end
|
only1yzerman@0
|
83 Bloodhound2.UpdateMinimap();
|
only1yzerman@0
|
84 end);
|
only1yzerman@0
|
85 element = cb;
|
only1yzerman@0
|
86 return text:GetWidth();
|
only1yzerman@0
|
87 end
|
only1yzerman@0
|
88
|
only1yzerman@0
|
89 function ContinentName()
|
only1yzerman@0
|
90 return select(GetCurrentMapContinent(), GetMapContinents());
|
only1yzerman@0
|
91 end
|
only1yzerman@0
|
92
|
only1yzerman@0
|
93 function CheckBoxes(table, state)
|
only1yzerman@0
|
94 local relative;
|
only1yzerman@0
|
95 local bottom;
|
only1yzerman@0
|
96 local height = 1;
|
only1yzerman@0
|
97 local maxWidth = 0;
|
only1yzerman@0
|
98 local i = 0;
|
only1yzerman@0
|
99 local checkboxes = {};
|
only1yzerman@0
|
100
|
only1yzerman@0
|
101 for k, v in pairs(table) do
|
only1yzerman@0
|
102 height = height + 1;
|
only1yzerman@0
|
103 end
|
only1yzerman@0
|
104
|
only1yzerman@0
|
105 height = floor(height / 2);
|
only1yzerman@0
|
106 if height > 19 then height = 19; end;
|
only1yzerman@0
|
107
|
only1yzerman@0
|
108 for k, v in pairs(table) do
|
only1yzerman@0
|
109 i = i + 1;
|
only1yzerman@0
|
110 if (i > 1) and (mod(i, height) == 1) then
|
only1yzerman@0
|
111 width = CheckBox(v, k, relative, "TOPRIGHT", maxWidth + 6, 0, state);
|
only1yzerman@0
|
112 relative = element;
|
only1yzerman@0
|
113 maxWidth = width;
|
only1yzerman@0
|
114 else
|
only1yzerman@0
|
115 width = CheckBox(v, k, element, "BOTTOMLEFT", 0, 0, state);
|
only1yzerman@0
|
116 if (i == 1) then relative = element; end;
|
only1yzerman@0
|
117 maxWidth = max(width, maxWidth);
|
only1yzerman@0
|
118 end
|
only1yzerman@0
|
119 if (i == height) then bottom = element; end;
|
only1yzerman@0
|
120 checkboxes[k] = element;
|
only1yzerman@0
|
121 end
|
only1yzerman@0
|
122
|
only1yzerman@0
|
123 local button = CreateFrame("Button", nil, frame, "UIPanelButtonTemplate");
|
only1yzerman@0
|
124 button:SetText(L["All"]);
|
only1yzerman@0
|
125 local allWidth = button:GetTextWidth() + 30;
|
only1yzerman@0
|
126 button:SetWidth(allWidth);
|
only1yzerman@0
|
127 button:SetHeight(22);
|
only1yzerman@0
|
128 button:SetPoint("TOPLEFT", bottom, "TOPLEFT", 0, -20);
|
only1yzerman@0
|
129 button:SetScript("OnClick",
|
only1yzerman@0
|
130 function(self, button, down)
|
only1yzerman@0
|
131 for k, v in pairs(table) do
|
only1yzerman@0
|
132 checkboxes[k]:SetChecked(true);
|
only1yzerman@0
|
133 state[k] = nil;
|
only1yzerman@0
|
134 end
|
only1yzerman@0
|
135 end
|
only1yzerman@0
|
136 );
|
only1yzerman@0
|
137
|
only1yzerman@0
|
138 element = button;
|
only1yzerman@0
|
139
|
only1yzerman@0
|
140 local button = CreateFrame("Button", nil, frame, "UIPanelButtonTemplate");
|
only1yzerman@0
|
141 button:SetText(L["None"]);
|
only1yzerman@0
|
142 button:SetWidth(button:GetTextWidth() + 30);
|
only1yzerman@0
|
143 button:SetHeight(22);
|
only1yzerman@0
|
144 button:SetPoint("TOPLEFT", bottom, "TOPLEFT", allWidth + 20, -20);
|
only1yzerman@0
|
145 button:SetScript("OnClick",
|
only1yzerman@0
|
146 function(self, button, down)
|
only1yzerman@0
|
147 for k, v in pairs(table) do
|
only1yzerman@0
|
148 checkboxes[k]:SetChecked(false);
|
only1yzerman@0
|
149 state[k] = 1;
|
only1yzerman@0
|
150 end
|
only1yzerman@0
|
151 end
|
only1yzerman@0
|
152 );
|
only1yzerman@0
|
153 end
|
only1yzerman@0
|
154
|
only1yzerman@0
|
155 function AddZones(...)
|
only1yzerman@0
|
156 local table = {};
|
only1yzerman@0
|
157
|
only1yzerman@0
|
158 for i=1,select("#", ...),1 do
|
only1yzerman@0
|
159 table[i] = select(i, ...);
|
only1yzerman@0
|
160 end
|
only1yzerman@0
|
161
|
only1yzerman@0
|
162 if not Settings.ZoneFilter then
|
only1yzerman@0
|
163 Settings.ZoneFilter = {{},{},{},{},{}};
|
only1yzerman@0
|
164 end
|
only1yzerman@0
|
165
|
only1yzerman@0
|
166 local c = GetCurrentMapContinent()
|
only1yzerman@0
|
167
|
only1yzerman@0
|
168 if not Settings.ZoneFilter[c] then
|
only1yzerman@0
|
169 Settings.ZoneFilter[c] = {}
|
only1yzerman@0
|
170 end
|
only1yzerman@0
|
171
|
only1yzerman@0
|
172 CheckBoxes(table, Settings.ZoneFilter[c]);
|
only1yzerman@0
|
173 end
|
only1yzerman@0
|
174
|
only1yzerman@0
|
175 function AddHerbs()
|
only1yzerman@0
|
176 local table = {};
|
only1yzerman@0
|
177
|
only1yzerman@0
|
178 for h, v in pairs(Bloodhound2.ContinentHerbs) do
|
only1yzerman@0
|
179 local name = L[h];
|
only1yzerman@0
|
180 if not name then name="Herb "..h; end;
|
only1yzerman@0
|
181 table[h] = name;
|
only1yzerman@0
|
182 end
|
only1yzerman@0
|
183
|
only1yzerman@0
|
184 if not Settings.HerbFilter then
|
only1yzerman@0
|
185 Settings.HerbFilter = {};
|
only1yzerman@0
|
186 end
|
only1yzerman@0
|
187
|
only1yzerman@0
|
188 CheckBoxes(table, Settings.HerbFilter);
|
only1yzerman@0
|
189 end
|
only1yzerman@0
|
190
|
only1yzerman@0
|
191 function AddOre()
|
only1yzerman@0
|
192 local table = {};
|
only1yzerman@0
|
193
|
only1yzerman@0
|
194 for h, v in pairs(Bloodhound2.ContinentOre) do
|
only1yzerman@0
|
195 local name = L[h];
|
only1yzerman@0
|
196 if not name then name="Ore "..h; end;
|
only1yzerman@0
|
197 table[h] = name;
|
only1yzerman@0
|
198 end
|
only1yzerman@0
|
199
|
only1yzerman@0
|
200 if not Settings.OreFilter then
|
only1yzerman@0
|
201 Settings.OreFilter = {};
|
only1yzerman@0
|
202 end
|
only1yzerman@0
|
203
|
only1yzerman@0
|
204 CheckBoxes(table, Settings.OreFilter);
|
only1yzerman@0
|
205 end
|
only1yzerman@0
|
206
|
only1yzerman@8
|
207 function AddMisc()
|
only1yzerman@8
|
208 local table = {};
|
only1yzerman@8
|
209
|
only1yzerman@8
|
210 for h, v in pairs(Bloodhound2.ContinentMisc) do
|
only1yzerman@8
|
211 local name = L[h];
|
only1yzerman@8
|
212 if not name then name="Misc "..h; end;
|
only1yzerman@8
|
213 table[h] = name;
|
only1yzerman@8
|
214 end
|
only1yzerman@8
|
215
|
only1yzerman@8
|
216 if not Settings.MiscFilter then
|
only1yzerman@8
|
217 Settings.MiscFilter = {};
|
only1yzerman@8
|
218 end
|
only1yzerman@8
|
219
|
only1yzerman@8
|
220 CheckBoxes(table, Settings.MiscFilter);
|
only1yzerman@8
|
221 end
|
only1yzerman@8
|
222
|
only1yzerman@0
|
223 local function CopyTable(table)
|
only1yzerman@0
|
224 local copy = {};
|
only1yzerman@0
|
225 for k,v in pairs(table) do
|
only1yzerman@0
|
226 if (type(v) == "table") then
|
only1yzerman@0
|
227 copy[k] = CopyTable(v);
|
only1yzerman@0
|
228 else
|
only1yzerman@0
|
229 copy[k] = v;
|
only1yzerman@0
|
230 end
|
only1yzerman@0
|
231 end
|
only1yzerman@0
|
232 return copy;
|
only1yzerman@0
|
233 end
|
only1yzerman@0
|
234
|
only1yzerman@0
|
235 local configFrame;
|
only1yzerman@0
|
236 local BackupSettings;
|
only1yzerman@0
|
237
|
only1yzerman@0
|
238 local function RefreshConfigFrame()
|
only1yzerman@0
|
239 if (configFrame) then
|
only1yzerman@0
|
240 configFrame:Hide();
|
only1yzerman@0
|
241 end
|
only1yzerman@0
|
242
|
only1yzerman@0
|
243 BackupSettings = CopyTable(Settings);
|
only1yzerman@0
|
244
|
only1yzerman@0
|
245 configFrame = CreateFrame("Frame", nil, Bloodhound2.panel);
|
only1yzerman@0
|
246 configFrame:SetAllPoints(Bloodhound2.panel);
|
only1yzerman@0
|
247 frame = configFrame;
|
only1yzerman@0
|
248 element = frame;
|
only1yzerman@0
|
249 Title(L["Bloodhound2 Options"]);
|
only1yzerman@0
|
250 Heading(L["Multi-Zone"]);
|
only1yzerman@0
|
251 DropDown(Settings, "MultiZoneMode", 120, function(menu)
|
only1yzerman@0
|
252 AddButton(Settings, "MultiZoneMode", menu, L["While flying"], 0);
|
only1yzerman@0
|
253 AddButton(Settings, "MultiZoneMode", menu, L["Always"], 1);
|
only1yzerman@0
|
254 AddButton(Settings, "MultiZoneMode", menu, L["Never"], 2);
|
only1yzerman@0
|
255 end);
|
only1yzerman@0
|
256 Heading(L["Zones"].." ("..ContinentName()..")");
|
only1yzerman@0
|
257 AddZones(GetMapZones(GetCurrentMapContinent()));
|
only1yzerman@0
|
258 element = frame;
|
only1yzerman@0
|
259 Column2(150);
|
only1yzerman@0
|
260 Heading(L["Inspection radius"]);
|
only1yzerman@0
|
261 DropDown(Settings, "InspectionRadius", 70, function(menu)
|
only1yzerman@0
|
262 AddButton(Settings, "InspectionRadius", menu, 30, 30);
|
only1yzerman@0
|
263 AddButton(Settings, "InspectionRadius", menu, 35, 35);
|
only1yzerman@0
|
264 AddButton(Settings, "InspectionRadius", menu, 40, 40);
|
only1yzerman@0
|
265 AddButton(Settings, "InspectionRadius", menu, 45, 45);
|
only1yzerman@0
|
266 AddButton(Settings, "InspectionRadius", menu, 50, 50);
|
only1yzerman@0
|
267 AddButton(Settings, "InspectionRadius", menu, 60, 60);
|
only1yzerman@0
|
268 AddButton(Settings, "InspectionRadius", menu, 70, 70);
|
only1yzerman@0
|
269 AddButton(Settings, "InspectionRadius", menu, 80, 80);
|
only1yzerman@0
|
270 AddButton(Settings, "InspectionRadius", menu, 90, 90);
|
only1yzerman@0
|
271 AddButton(Settings, "InspectionRadius", menu, 100, 100);
|
only1yzerman@0
|
272 AddButton(Settings, "InspectionRadius", menu, 120, 120);
|
only1yzerman@0
|
273 end);
|
only1yzerman@0
|
274 end
|
only1yzerman@0
|
275
|
only1yzerman@0
|
276 local herbFrame;
|
only1yzerman@0
|
277
|
only1yzerman@0
|
278 local function RefreshHerbs()
|
only1yzerman@0
|
279 if (herbFrame) then herbFrame:Hide(); end;
|
only1yzerman@0
|
280 herbFrame = CreateFrame("Frame", nil, Bloodhound2.herbPanel);
|
only1yzerman@0
|
281 herbFrame:SetAllPoints(Bloodhound2.herbPanel);
|
only1yzerman@0
|
282 frame = herbFrame;
|
only1yzerman@0
|
283 element = frame;
|
only1yzerman@0
|
284 Title(L["Bloodhound2 Options"]);
|
only1yzerman@0
|
285 Heading(L["Herbs"].." ("..ContinentName()..")");
|
only1yzerman@0
|
286 AddHerbs();
|
only1yzerman@0
|
287 end
|
only1yzerman@0
|
288
|
only1yzerman@0
|
289 local oreFrame;
|
only1yzerman@0
|
290
|
only1yzerman@0
|
291 local function RefreshOre()
|
only1yzerman@0
|
292 if (oreFrame) then oreFrame:Hide(); end;
|
only1yzerman@0
|
293 oreFrame= CreateFrame("Frame", nil, Bloodhound2.orePanel);
|
only1yzerman@0
|
294 oreFrame:SetAllPoints(Bloodhound2.orePanel);
|
only1yzerman@0
|
295 frame = oreFrame;
|
only1yzerman@0
|
296 element = frame;
|
only1yzerman@0
|
297 Title(L["Bloodhound2 Options"]);
|
only1yzerman@0
|
298 Heading(L["Minerals"].." ("..ContinentName()..")");
|
only1yzerman@0
|
299 AddOre();
|
only1yzerman@0
|
300 end
|
only1yzerman@0
|
301
|
only1yzerman@8
|
302 local miscFrame;
|
only1yzerman@8
|
303
|
only1yzerman@8
|
304 local function RefreshMisc()
|
only1yzerman@8
|
305 if (miscFrame) then miscFrame:Hide(); end;
|
only1yzerman@8
|
306 miscFrame= CreateFrame("Frame", nil, Bloodhound2.miscPanel);
|
only1yzerman@8
|
307 miscFrame:SetAllPoints(Bloodhound2.miscPanel);
|
only1yzerman@8
|
308 frame = miscFrame;
|
only1yzerman@8
|
309 element = frame;
|
only1yzerman@8
|
310 Title(L["Bloodhound2 Options"]);
|
only1yzerman@8
|
311 Heading(L["Misc"].." ("..ContinentName()..")");
|
only1yzerman@8
|
312 AddMisc();
|
only1yzerman@8
|
313 end
|
only1yzerman@8
|
314
|
only1yzerman@0
|
315 local function RestoreHerbDefaults()
|
only1yzerman@0
|
316 Settings.HerbFilter = {};
|
only1yzerman@0
|
317 end
|
only1yzerman@0
|
318
|
only1yzerman@0
|
319 local function RestoreOreDefaults()
|
only1yzerman@0
|
320 Settings.OreFilter = {};
|
only1yzerman@0
|
321 end
|
only1yzerman@0
|
322
|
only1yzerman@8
|
323 local function RestoreMiscDefaults()
|
only1yzerman@8
|
324 Settings.MiscFilter = {};
|
only1yzerman@8
|
325 end
|
only1yzerman@8
|
326
|
only1yzerman@0
|
327 local function RestoreZoneDefaults()
|
only1yzerman@0
|
328 Settings.MultiZoneMode = 0;
|
only1yzerman@0
|
329 Settings.InspectionRadius = 60;
|
only1yzerman@0
|
330 Settings.ZoneFilter[GetCurrentMapContinent()] = {};
|
only1yzerman@0
|
331 end
|
only1yzerman@0
|
332
|
only1yzerman@0
|
333 Bloodhound2.panel = CreateFrame("FRAME", "Bloodhound2", Bloodhound2.Frame);
|
only1yzerman@0
|
334 Bloodhound2.panel.name = L["Bloodhound2"];
|
only1yzerman@0
|
335 Bloodhound2.panel.default = RestoreZoneDefaults;
|
only1yzerman@0
|
336 Bloodhound2.panel.okay = function() end;
|
only1yzerman@0
|
337 Bloodhound2.panel.cancel = function() Settings = BackupSettings; Bloodhound2.UpdateMinimap(); end;
|
only1yzerman@0
|
338 Bloodhound2.panel.refresh = RefreshConfigFrame;
|
only1yzerman@0
|
339 InterfaceOptions_AddCategory(Bloodhound2.panel);
|
only1yzerman@0
|
340
|
only1yzerman@0
|
341 Bloodhound2.herbPanel = CreateFrame("FRAME", "Bloodhound2_Herbs", Bloodhound2.Frame);
|
only1yzerman@0
|
342 Bloodhound2.herbPanel.name = L["Herbs"];
|
only1yzerman@0
|
343 Bloodhound2.herbPanel.parent = "Bloodhound2";
|
only1yzerman@0
|
344 Bloodhound2.herbPanel.default = RestoreHerbDefaults;
|
only1yzerman@0
|
345 Bloodhound2.herbPanel.okay = function() end;
|
only1yzerman@0
|
346 Bloodhound2.herbPanel.cancel = function() end;
|
only1yzerman@0
|
347 Bloodhound2.herbPanel.refresh = RefreshHerbs;
|
only1yzerman@0
|
348 InterfaceOptions_AddCategory(Bloodhound2.herbPanel);
|
only1yzerman@0
|
349
|
only1yzerman@0
|
350 Bloodhound2.orePanel = CreateFrame("FRAME", "Bloodhound2_Ore", Bloodhound2.Frame);
|
only1yzerman@0
|
351 Bloodhound2.orePanel.name = L["Minerals"];
|
only1yzerman@0
|
352 Bloodhound2.orePanel.parent = "Bloodhound2";
|
only1yzerman@0
|
353 Bloodhound2.orePanel.default = RestoreOreDefaults;
|
only1yzerman@0
|
354 Bloodhound2.orePanel.okay = function() end;
|
only1yzerman@0
|
355 Bloodhound2.orePanel.cancel = function() end;
|
only1yzerman@0
|
356 Bloodhound2.orePanel.refresh = RefreshOre;
|
only1yzerman@0
|
357 InterfaceOptions_AddCategory(Bloodhound2.orePanel);
|
only1yzerman@0
|
358
|
only1yzerman@8
|
359 Bloodhound2.miscPanel = CreateFrame("FRAME", "Bloodhound2_Misc", Bloodhound2.Frame);
|
only1yzerman@8
|
360 Bloodhound2.miscPanel.name = L["Misc"];
|
only1yzerman@8
|
361 Bloodhound2.miscPanel.parent = "Bloodhound2";
|
only1yzerman@8
|
362 Bloodhound2.miscPanel.default = RestoreMiscDefaults;
|
only1yzerman@8
|
363 Bloodhound2.miscPanel.okay = function() end;
|
only1yzerman@8
|
364 Bloodhound2.miscPanel.cancel = function() end;
|
only1yzerman@8
|
365 Bloodhound2.miscPanel.refresh = RefreshMisc;
|
only1yzerman@8
|
366 InterfaceOptions_AddCategory(Bloodhound2.miscPanel); |