annotate verbage.lua @ 95:3546c7b55986

Move generation of the Help tab to the same file as the help text. Allow registration of arbitrary tab controls, not just text generation. Move some shared data out of the addon table into a 'gui' state table in preparation for more of the same. Clean some cruft out of the default itemfilter list.
author Farmbuyer of US-Kilrogg <farmbuyer@gmail.com>
date Thu, 26 Jul 2012 03:34:56 +0000
parents c9f955f9a285
children 780b7e0eeeeb
rev   line source
farmbuyer@95 1 local addon = select(2,...)
farmbuyer@95 2 if addon.NOLOAD then return end
farmbuyer@95 3
farmbuyer@95 4 -- Don't bother recording any of this loot:
farmbuyer@95 5 addon.default_itemfilter = {
farmbuyer@95 6 -- could probably remove most of this now
farmbuyer@95 7 -- [29434] = true, -- Badge of Justice
farmbuyer@95 8 -- [40752] = true, -- Emblem of Heroism
farmbuyer@95 9 -- [40753] = true, -- Emblem of Valor
farmbuyer@95 10 -- [45624] = true, -- Emblem of Conquest
farmbuyer@95 11 -- [43228] = true, -- Stone Keeper's Shard
farmbuyer@95 12 -- [47241] = true, -- Emblem of Triumph
farmbuyer@95 13 -- [49426] = true, -- Emblem of Frost
farmbuyer@95 14 }
farmbuyer@95 15
farmbuyer@95 16 -- Mark these as straight to guild vault:
farmbuyer@95 17 addon.default_itemvault = {
farmbuyer@95 18 [52078] = true, -- Chaos Orb
farmbuyer@95 19 [69237] = true, -- Living Ember
farmbuyer@95 20 [71998] = true, -- Essence of Destruction
farmbuyer@95 21 }
farmbuyer@1 22
farmbuyer@1 23 local todo = [[
farmbuyer@88 24 - Right-clicking the [ouroloot] chat link could do something different than
farmbuyer@88 25 the current left-clicking. Popup small menu in place?
farmbuyer@88 26
farmbuyer@88 27 - Break more methods out into private routines.
farmbuyer@1 28
farmbuyer@1 29 - implement ack, then fallback to recording if not ack'd
farmbuyer@1 30
farmbuyer@1 31 - Being able to drag rows up and down the main loot grid would be awesome. Coding
farmbuyer@1 32 that would be likely to drive me batshiat insane.
farmbuyer@1 33 ]]
farmbuyer@1 34
farmbuyer@1 35 addon.helptree = {
farmbuyer@1 36 {
farmbuyer@1 37 value = "about",
farmbuyer@1 38 text = "About",
farmbuyer@1 39 },
farmbuyer@1 40 {
farmbuyer@1 41 value = "basic",
farmbuyer@1 42 text = "Basics",
farmbuyer@1 43 children = {
farmbuyer@1 44 {
farmbuyer@1 45 value = "loot",
farmbuyer@1 46 text = "Loot Entries",
farmbuyer@1 47 },
farmbuyer@1 48 {
farmbuyer@1 49 value = "boss",
farmbuyer@1 50 text = "Boss Entries",
farmbuyer@1 51 },
farmbuyer@1 52 },
farmbuyer@1 53 },
farmbuyer@1 54 {
farmbuyer@1 55 value = "tracking",
farmbuyer@1 56 text = "Tracking Loot",
farmbuyer@1 57 children = {
farmbuyer@1 58 {
farmbuyer@1 59 value = "enabled",
farmbuyer@1 60 text = "Full Tracking",
farmbuyer@1 61 },
farmbuyer@1 62 {
farmbuyer@1 63 value = "bcast",
farmbuyer@1 64 text = "Rebroadcasting",
farmbuyer@1 65 },
farmbuyer@1 66 },
farmbuyer@1 67 },
farmbuyer@1 68 {
farmbuyer@1 69 value = "texts",
farmbuyer@1 70 text = "Generated Texts",
farmbuyer@1 71 children = {
farmbuyer@1 72 {
farmbuyer@1 73 value = "forum",
farmbuyer@1 74 text = "Forum Markup",
farmbuyer@1 75 },
farmbuyer@1 76 {
farmbuyer@1 77 value = "other",
farmbuyer@1 78 text = "Other Texts",
farmbuyer@1 79 },
farmbuyer@1 80 {
farmbuyer@1 81 value = "saved",
farmbuyer@1 82 text = "Saved Texts",
farmbuyer@1 83 },
farmbuyer@1 84 },
farmbuyer@1 85 },
farmbuyer@1 86 {
farmbuyer@7 87 value = "history",
farmbuyer@7 88 text = "History Tab",
farmbuyer@7 89 },
farmbuyer@7 90 {
farmbuyer@1 91 value = "tips",
farmbuyer@1 92 text = "Handy Tips",
farmbuyer@1 93 children = {
farmbuyer@1 94 {
farmbuyer@1 95 value = "slashies",
farmbuyer@1 96 text = "Slash Commands",
farmbuyer@1 97 },
farmbuyer@73 98 {
farmbuyer@73 99 value = "prescan",
farmbuyer@73 100 text = "Prescanning",
farmbuyer@73 101 },
farmbuyer@1 102 },
farmbuyer@1 103 },
farmbuyer@1 104 {
farmbuyer@1 105 value = "todo",
farmbuyer@1 106 text = "TODOs, Bugs, etc",
farmbuyer@1 107 children = {
farmbuyer@1 108 {
farmbuyer@1 109 value = "gotchas",
farmbuyer@1 110 text = "Gotchas",
farmbuyer@1 111 },
farmbuyer@1 112 {
farmbuyer@1 113 value = "todolist",
farmbuyer@1 114 text = "TODO/knownbugs",
farmbuyer@1 115 },
farmbuyer@1 116 },
farmbuyer@1 117 },
farmbuyer@1 118 }
farmbuyer@1 119
farmbuyer@1 120 -- Help text. Formatting doesn't matter, but use a blank line to split
farmbuyer@1 121 -- paragraphs. This file needs to be edited with a text editor that doesn't
farmbuyer@1 122 -- do anything stupid by placing extra spaces at the end of lines.
farmbuyer@1 123 do
farmbuyer@73 124 local replacement_colors = {
farmbuyer@73 125 ["+"]="|cff30adff", -- blue: right-click options, control panel names
farmbuyer@73 126 ["<"]="|cff00ff00", -- light green, tab titles and generic highlighting
farmbuyer@73 127 [">"]="|r" }
farmbuyer@1 128 local T={}
farmbuyer@1 129 T.about = [[
farmbuyer@1 130 Ouro Loot is the fault of Farmbuyer of Ouroboros on US-Kilrogg. Bug reports,
farmbuyer@95 131 comments, and suggestions are welcome at the project page:
farmbuyer@95 132
farmbuyer@95 133 <www.curse.com/addons/wow/ouroloot>
farmbuyer@95 134
farmbuyer@95 135
farmbuyer@95 136 or send them to <farmbuyer@gmail.com>.
farmbuyer@1 137 ]]
farmbuyer@1 138
farmbuyer@1 139 T.basic = [[
farmbuyer@95 140 The </ouroloot> command opens this display. The buttons
farmbuyer@1 141 on the right side control operation and are mostly self-explanatory. Hovering over
farmbuyer@1 142 things will usually display some additional text in the gray line at the bottom.
farmbuyer@1 143
farmbuyer@47 144 Each tab on the left side can additionally create extra contols in the lower right
farmbuyer@47 145 section (with the same name as the tab).
farmbuyer@1 146
farmbuyer@1 147 The first tab on the left side, <Loot>, is where everything goes to and comes
farmbuyer@1 148 from. Looting events and Deadly Boss Mods notifications go to the <Loot> tab; the
farmbuyer@1 149 other tabs are all generated from the information in the <Loot> tab.
farmbuyer@16 150
farmbuyer@16 151 |cffff335dNote about these Help pages:|r The category "titles" on the left side
farmbuyer@16 152 have their own help text, in addition to the more specific entries in the expanded
farmbuyer@16 153 list. Read those first before expanding the categories or you'll miss stuff.
farmbuyer@1 154 ]]
farmbuyer@1 155
farmbuyer@1 156 T.basic_loot = [[
farmbuyer@1 157 A "loot row" in the first tab has three columns: the item, the recipient, and any
farmbuyer@1 158 extra notes. The recipient's class icon is displayed by their names, if class
farmbuyer@1 159 information is available at the time.
farmbuyer@1 160
farmbuyer@1 161 <Mouse Hover>
farmbuyer@1 162
farmbuyer@1 163 Hovering the mouse over the first column will display the item in a tooltip.
farmbuyer@1 164
farmbuyer@1 165 Hovering over the second column will display a tooltip with the loot that person
farmbuyer@1 166 has received. If they've won more than 10 items, the list is cut off with '...'
farmbuyer@1 167 at the end; to see the full list, use the right-click +Show only this player> option
farmbuyer@1 168 instead.
farmbuyer@1 169
farmbuyer@1 170 <Right-Click>
farmbuyer@1 171
farmbuyer@1 172 Right-clicking a loot row shows a dropdown menu.
farmbuyer@1 173
farmbuyer@1 174 Right-clicking in the first or third columns will display options for special
farmbuyer@1 175 treatment of that loot entry (marking as offspec, etcetera). Using any of those
farmbuyer@1 176 options will change the text in the third column (which will then affect the text
farmbuyer@1 177 in the generated tabs, such as forum markup).
farmbuyer@1 178
farmbuyer@1 179 Right-clicking in the second column allows you to temporarily remove all other
farmbuyer@1 180 players from the loot display. Use the reset button in the lower-right corner to
farmbuyer@1 181 restore the display to normal. The menu also allows you to +reassign> loot from
farmbuyer@1 182 one player to another; if the new recipient is not in the raid group at the time,
farmbuyer@1 183 use the +Enter name...> option at the bottom of the list of names to type the
farmbuyer@47 184 name into a text box. If your raid takes advantage of the ability to trade
farmbuyer@1 185 soulbound items, you will need to reassign the item here for the generated text
farmbuyer@1 186 to be factually correct.
farmbuyer@1 187
farmbuyer@1 188 See the help screen on "Boss Entries" for the +Insert new boss kill event> option.
farmbuyer@1 189
farmbuyer@1 190 <Double-Click>
farmbuyer@1 191
farmbuyer@1 192 Double-clicking a loot row in the third ("Notes") column allows you to edit that
farmbuyer@1 193 field directly. The color of the text will still depend on any +Mark as ___>
farmbuyer@1 194 actions done to that loot row, whether automatically or by hand.
farmbuyer@1 195 ]]
farmbuyer@1 196
farmbuyer@1 197 T.basic_boss = [[
farmbuyer@1 198 Boss wipe/kill entries are entirely dependant on Deadly Boss Mods being enabled and
farmbuyer@1 199 up-to-date. The typical sequence of events for our usual raids goes like this:
farmbuyer@1 200
farmbuyer@1 201 We make four or five attempts on Baron Steamroller. As DBM registers that combat
farmbuyer@1 202 ends, a <wipe> event is entered on the loot display along with the duration of the
farmbuyer@1 203 fight. If the loot display is opened, the wipes will be visible with a light gray
farmbuyer@1 204 background.
farmbuyer@1 205
farmbuyer@47 206 After reminding the melee dps to move out of fire, we manage to kill
farmbuyer@1 207 Steamroller. When DBM registers the win, a <kill> event is entered on the display
farmbuyer@1 208 with a dark gray background.
farmbuyer@1 209 All previous <wipe>s are removed and collapsed into the <kill> event. The final
farmbuyer@1 210 <kill> event shows the duration of the successful fight and the number of attempts
farmbuyer@47 211 needed (or "one-shot" if we're competent).
farmbuyer@1 212
farmbuyer@1 213 Sometimes this goes wrong, when DBM misses its own triggers. If DBM does not catch
farmbuyer@1 214 the start of the boss fight, it can't register the end, so nothing at all is
farmbuyer@1 215 recorded. If the fight was a win but DBM does not catch the victory conditions,
farmbuyer@1 216 then DBM will (after several seconds) decide that it was a wipe instead. And
farmbuyer@1 217 sometimes useful loot will drop from trash mobs, which DBM knows nothing about.
farmbuyer@1 218
farmbuyer@1 219 For all those reasons, right-clicking on a "boss row" will display options for
farmbuyer@1 220 +Insert new boss kill event>, and for toggling a <wipe> into a <kill>. We often
farmbuyer@1 221 insert bosses named "trash" to break up the display and correct the forum markup
farmbuyer@1 222 listing.
farmbuyer@1 223 ]]
farmbuyer@1 224
farmbuyer@1 225 T.tracking = [[
farmbuyer@1 226 The first button underneath +Main> in the right-hand column displays the current
farmbuyer@1 227 status of the addon. If it is disabled, then no recording, rebroadcasting, or
farmbuyer@1 228 listening for rebroadcasts is performed. Any loot already recorded will be restored
farmbuyer@1 229 across login sessions no matter the status.
farmbuyer@1 230
farmbuyer@1 231 You can turn on tracking/broadcasting before joining a raid. If you join a raid
farmbuyer@47 232 and the addon has not been turned on, then a popup dialog will ask for
farmbuyer@1 233 instructions. (This can be turned off in the advanced <Options>.)
farmbuyer@1 234
farmbuyer@1 235 The addon tries to be smart about logging on during a raid (due to a disconnect or
farmbuyer@1 236 relog). If you log in, are already in a raid group, and loot has already been
farmbuyer@16 237 stored from tracking, it will re-enable itself automatically.
farmbuyer@1 238
farmbuyer@1 239 The intent of the addon design is that, after the end of a raid, all the generated
farmbuyer@1 240 markup text is done, optionally saved (see "Generated Texts - Saved Texts"), and
farmbuyer@1 241 then cleared from
farmbuyer@1 242 storage altogether. As a result, if you login with restored loot information but
farmbuyer@1 243 are not in a raid, the addon will do nothing on its own -- but will assume that
farmbuyer@1 244 you've forgotten to finish those steps and will yammer about it in the chat window
farmbuyer@1 245 as a reminder.
farmbuyer@1 246
farmbuyer@1 247 The +Threshold> drop-down has no connection at all with any current loot threshold
farmbuyer@1 248 set by you or a master looter.
farmbuyer@1 249 ]]
farmbuyer@1 250
farmbuyer@1 251 T.tracking_enabled = [[
farmbuyer@1 252 Full tracking records all loot events that fulfill these criteria:
farmbuyer@1 253
farmbuyer@1 254 1) The loot quality is equal to or better than what you have selected in the
farmbuyer@1 255 +Threshold> drop-down.
farmbuyer@1 256
farmbuyer@47 257 2) The loot is not in the list of items to filter out (see the <Options> tab).
farmbuyer@47 258 These are things like shards from disenchanting and Darkmoon Faire quest items.
farmbuyer@1 259
farmbuyer@1 260 3) <You can see the loot event.> More precisely, you need to be close enough
farmbuyer@1 261 to the recipient of the loot to be able to see "So-And-So receives loot: [Stuff]"
farmbuyer@1 262 in your chat window, even if you have those actual loot messages turned off.
farmbuyer@1 263
farmbuyer@1 264 It is (3) that causes complications. A master looter can assign loot to anybody
farmbuyer@1 265 anywhere in a raid instance, but the range on detecting loot events is much
farmbuyer@1 266 smaller. If your raid does not use master looting then you merely need to be
farmbuyer@1 267 close enough to the boss corpse, presuming that the winners will need to walk
farmbuyer@1 268 over to get their phat epix.
farmbuyer@1 269
farmbuyer@1 270 If you do use master looter, then you have two options: first, you can
farmbuyer@1 271 require players
farmbuyer@1 272 who might get loot to stay near the boss. You would then also need to stay near
farmbuyer@1 273 the boss to detect the loot event. (This can be less hassle if you are also
farmbuyer@1 274 the loot master.) The downside is that other players moving on to fight to the
farmbuyer@1 275 next boss are doing so without the help of their teammates.
farmbuyer@1 276
farmbuyer@1 277 The other option is to ask other players to also install Ouro Loot, and for
farmbuyer@1 278 them to turn on the "Rebroadcasting" feature. Any loot events which they can
farmbuyer@1 279 see will be communicated to you. Then it only becomes necessary for at least
farmbuyer@1 280 one person to be close enough to the loot recipient to see the item awarded,
farmbuyer@47 281 and you will record it no matter how far away you are -- even back in Orgrimmar.
farmbuyer@1 282
farmbuyer@1 283 If you have Full Tracking enabled, then you are also automatically rebroadcasting.
farmbuyer@1 284 Having more than one player with Full Tracking turned on is probably a good
farmbuyer@1 285 idea, in case one of the trackers experiences a game crash or is suddenly kidnapped
farmbuyer@1 286 by robot ninja monkeys.
farmbuyer@1 287 ]]
farmbuyer@1 288
farmbuyer@1 289 T.tracking_bcast = [[
farmbuyer@1 290 The simplest method of operation is only rebroadcasting the loot events that you
farmbuyer@1 291 see, as you see them. Nothing is recorded in your local copy of the addon.
farmbuyer@1 292
farmbuyer@1 293 If you logout for any reason, the addon will not reactivate when you log back in.
farmbuyer@1 294
farmbuyer@95 295 You can use </ouroloot bcast> or </ouroloot broadcast> to turn on rebroadcasting
farmbuyer@95 296 without opening the GUI.
farmbuyer@1 297 ]]
farmbuyer@1 298
farmbuyer@1 299 T.texts = [[
farmbuyer@47 300 The middle tabs are simply large editable text boxes. Their text is initially
farmbuyer@47 301 generated from
farmbuyer@1 302 the information stored on the main <Loot> tab, at the time you click on the tab.
farmbuyer@1 303 Not every bit of information that
farmbuyer@1 304 we want in the generated text is always available, or depends on things that the
farmbuyer@1 305 game itself can't know. So you can edit the text in the tabs and your edits will
farmbuyer@1 306 be preserved.
farmbuyer@1 307
farmbuyer@1 308 Each time you click one of the text tabs, every new entry on the <Loot> tab
farmbuyer@1 309 since the last time this tab was shown will be turned into text.
farmbuyer@1 310
farmbuyer@1 311 Clicking the +Regenerate> button will throw away all the text on that tab, including
farmbuyer@1 312 any edits you've made, and recreate all of it from scratch. If you've accidentally
farmbuyer@1 313 deleted the text from the editbox, or you've made manual changes to the <Loot> tab,
farmbuyer@1 314 you can use this button to start over.
farmbuyer@1 315
farmbuyer@1 316 You can click in an editbox and use Control-A to select all text, then Control-C
farmbuyer@1 317 to copy it to the system clipboard for subsequent pasting into a web browser or
farmbuyer@1 318 whatever. If you're on a Mac, you probably already know the equivalent keys.
farmbuyer@1 319 ]]
farmbuyer@1 320
farmbuyer@1 321 T.texts_forum = [[
farmbuyer@1 322 The <Forum Markup> tab creates text as used by the guild forums for Ouroboros
farmbuyer@31 323 of US-Kilrogg. By default this is fairly standard BBcode. The format of the
farmbuyer@1 324 individual loot items can be adjusted via the dropdown menu on the lower right
farmbuyer@1 325 of the tab.
farmbuyer@1 326
farmbuyer@1 327 The [url] choice defaults to using Wowhead. If you have the [item] extension
farmbuyer@1 328 for your BBcode installed, you can use either of those choices too. The "by ID"
farmbuyer@16 329 variant is good for heroic raid items that share names with nonheroic items,
farmbuyer@16 330 but the raw output is harder to read in the text tab.
farmbuyer@1 331
farmbuyer@1 332 You can also specify a custom string. Formatting is done with these replacements:
farmbuyer@1 333
farmbuyer@1 334 +$N>: item name|r
farmbuyer@1 335
farmbuyer@1 336 +$I>: (capital "eye", not "ell") numeric item ID|r
farmbuyer@1 337
farmbuyer@1 338 +$T>: loot recipient and any additional notes|r
farmbuyer@1 339
farmbuyer@1 340 +$X>: if more than one of the item was looted, this is the "x2", "x3", etc
farmbuyer@1 341
farmbuyer@1 342
farmbuyer@1 343 Pro tip #1: if something has happened on the main <Loot> tab which cannot be
farmbuyer@1 344 changed directly but would generate incorrect text, you can click this tab to
farmbuyer@1 345 generate the text right away. Then edit/move the text as needed. When you
farmbuyer@1 346 close the display or click back on the <Loot> tab, your edited text will be
farmbuyer@1 347 preserved for later.
farmbuyer@1 348
farmbuyer@47 349 Pro tip #2: Barring situations like pro tip #1, this addon author typically
farmbuyer@47 350 does not generate any text until the end of the raid, simplifying things
farmbuyer@47 351 considerably.
farmbuyer@1 352 ]]
farmbuyer@1 353
farmbuyer@1 354 T.texts_other = [[
farmbuyer@1 355 So far the only other generated text is the <Attendance> tab, an alphabetized list
farmbuyer@56 356 on a per-boss basis. Players who are probably inside the raid are grouped
farmbuyer@56 357 under [:PLUS:], and the remaining players are under [-]. "Probably inside" is an
farmbuyer@56 358 assumption that groups 1 and 2 are raiding in a 10-player instance, groups 1-5
farmbuyer@56 359 are raiding in a 25-player instance, and so forth.
farmbuyer@1 360
farmbuyer@1 361 Other addons can register their own text tabs and corresponding generation
farmbuyer@1 362 functions. If you want to be able to feed text into an offline program (for
farmbuyer@1 363 example, a spreadsheet or DKP tracker), then this may be of use to you.
farmbuyer@1 364
farmbuyer@1 365 Ideas for more tabs? Tell me!
farmbuyer@1 366 ]]
farmbuyer@1 367
farmbuyer@1 368 T.texts_saved = [[
farmbuyer@16 369 The contents of the <Forum Markup>, <Attendance>, and other such tabs can be saved,
farmbuyer@16 370 so that they will not be lost when you use the +Clear> button.
farmbuyer@1 371
farmbuyer@1 372 Do any edits you want to the generated text tabs, then click the +Save Current As...>
farmbuyer@1 373 button on the right-hand side. Enter a short descriptive reminder (for example,
farmbuyer@1 374 "thursday hardmodes") in the popup dialog. The texts will remain in their tabs,
farmbuyer@1 375 but clearing loot information will not lose them now.
farmbuyer@1 376
farmbuyer@16 377 All saved texts are listed on the right-hand side. Clicking a saved text name
farmbuyer@16 378 lets you +Load> or +Delete> that saved set. The primary <Loot> tab is not saved
farmbuyer@16 379 and restored by this process, only the generated texts. This also means you cannot
farmbuyer@16 380 +Regenerate> the texts.
farmbuyer@1 381 ]]
farmbuyer@1 382
farmbuyer@7 383 T.history = [[
farmbuyer@7 384 The <History> tab maintains a list of all loot. It is intended to help answer
farmbuyer@7 385 questions such as "When was the last time PlayerX won something?" and "How much stuff
farmbuyer@7 386 has PlayerY gotten lately?" The history tab is, by design, not as configurable
farmbuyer@25 387 as the main <Loot> tab; entries cannot be manually edited and so forth.
farmbuyer@7 388
farmbuyer@25 389 This loot history is the only "live" data tab which persists across the +Clear Loot> command.
farmbuyer@7 390 For this reason, very little information is stored: only the recipient, the item,
farmbuyer@8 391 and a textual timestamp. Boss names, offspecs, and other notes are not preserved.
farmbuyer@7 392
farmbuyer@7 393 The default history window shows the most recent item received by each person. It
farmbuyer@7 394 is sorted with the most recent loot at the top, towards older loot at the bottom.
farmbuyer@7 395 You can click the column headers to rearrange the rows, but doing so repeatedly can
farmbuyer@7 396 lead to odd display issues.
farmbuyer@7 397
farmbuyer@7 398 Left-clicking a row will change the window to display all recorded loot for that
farmbuyer@25 399 player. While on that display, right-clicking any row will return to showing the
farmbuyer@25 400 most recent single item for all players.
farmbuyer@7 401
farmbuyer@7 402 Histories are maintained per-realm. This refers to the realm you are on when the
farmbuyer@7 403 loot drops, not the realm of the player receiving it (in the case of cross-realm
farmbuyer@7 404 groups). If you play multiple characters on the same realm, history will accumulate
farmbuyer@7 405 across all your raids. To change the displayed realm, use the dropdown menu in
farmbuyer@7 406 the lower right corner.
farmbuyer@7 407
farmbuyer@7 408 The +Regenerate> button permanently erases the history of the displayed realm, and
farmbuyer@7 409 creates fresh entries using whatever loot information is currently on the <Loot> tab.
farmbuyer@7 410 Be aware that the <Loot> tab does not track realms, so if you have gathered data
farmbuyer@7 411 for players on realm A, but are displaying realm B when you click the Regenerate button,
farmbuyer@7 412 then your history for realm B will be... very odd.
farmbuyer@7 413
farmbuyer@7 414 +Clear Realm History> and +Clear ALL History> are used to periodically wipe the
farmbuyer@7 415 slate clean. They do not generate any new entries from existing loot.
farmbuyer@7 416
farmbuyer@76 417 +Clear Older> deletes history information older than a certain threshold (by
farmbuyer@76 418 default, 5 loot events). It is another good periodic maintenance step, but
farmbuyer@76 419 does not discard as much data as the other actions.
farmbuyer@7 420
farmbuyer@25 421 Using +Reassign to...> will also move the item between player histories. The timestamp
farmbuyer@25 422 will not be changed; it will "always have been" received by the new recipient.
farmbuyer@25 423
farmbuyer@25 424 Using +Mark as disenchanted> or +Mark as guild vault> will remove the item from
farmbuyer@25 425 history altogether. Remarking such an item as +normal> or +offspec> will replace
farmbuyer@25 426 the item back into the player's history.
farmbuyer@25 427
farmbuyer@7 428 Note: the first time you display the histories during a game session, you will
farmbuyer@7 429 likely see several items listed as +UNKNOWN>. This is not a bug; these items are
farmbuyer@7 430 simply not in your local game cache. WoW will automatically retrieve the missing
farmbuyer@7 431 data after several seconds, but the display will not update until the next time
farmbuyer@7 432 the History tab is shown. Starting in WoW 4.0, the local game cache is not preserved
farmbuyer@7 433 across play sessions, so the +UNKNOWN> entries will pop up from time to time.
farmbuyer@7 434 ]]
farmbuyer@7 435
farmbuyer@1 436 T.tips = [[
farmbuyer@16 437 The |cffff8000[Ouro Loot]|r "legendary item" displayed at the start of all
farmbuyer@1 438 chat messages is a clickable link. Clicking opens the main display. An option
farmbuyer@1 439 on the <Options> tab will cause a message to be printed after a boss kill,
farmbuyer@1 440 mostly for lazy loot trackers who don't like typing slash commands to open windows.
farmbuyer@1 441
farmbuyer@1 442 If you are broadcasting to somebody else who is tracking, you should probably be
farmbuyer@1 443 using the same threshold. If yours is lower, then some of the loot you broadcast
farmbuyer@1 444 to him will be ignored. If yours is higher, then you will not be sending information
farmbuyer@1 445 that he would have recorded. The "correct" setting depends on what your guild wants
farmbuyer@1 446 to track.
farmbuyer@1 447
farmbuyer@1 448 Ticking the "notraid" box in advanced debugging <Options>, before enabling tracking,
farmbuyer@1 449 will make the tracking work outside of a raid group. Communication functions
farmbuyer@1 450 will behave a little strangely when doing this. Be sure to check the threshold!
farmbuyer@1 451 You can also use <"/ouroloot debug notraid"> instead.
farmbuyer@1 452
farmbuyer@1 453 Using the "Saved Texts" feature plus the +Clear> button is a great way of putting
farmbuyer@1 454 off pasting loot into your guild's website until a more convenient time.
farmbuyer@83 455
farmbuyer@83 456 Shift-clicking an item in the <Loot> or <History> display will paste it into an
farmbuyer@83 457 open chat editbox.
farmbuyer@1 458 ]]
farmbuyer@1 459
farmbuyer@1 460 T.tips_slashies = [[
farmbuyer@95 461 A field in the <Options> tab lets you use additional slash commands as a
farmbuyer@95 462 shortcut for </ouroloot>. The author prefers </ol>, as an example. The
farmbuyer@95 463 default used to be </loot> until that became a builtin command in MoP.
farmbuyer@95 464
farmbuyer@95 465 If you give an unrecognized argument to a slash command, it will
farmbuyer@16 466 search the tab titles left to right for a title beginning with the same letters as
farmbuyer@95 467 the argument, and open the display to that tab. For example, <"/ol a"> would
farmbuyer@95 468 open the <Attendance> tab, and <"/ol ad"> would open the <Advanced> tab. If
farmbuyer@95 469 you had added a theoretical <EQDKP> tab, then <"/ol eq"> would be the fastest
farmbuyer@16 470 way to see it.
farmbuyer@16 471
farmbuyer@1 472 The </ouroloot> command can take arguments to do things without going through
farmbuyer@1 473 the UI. Parts given in *(angle brackets)* are required, parts in [square brackets]
farmbuyer@1 474 are optional:
farmbuyer@1 475
farmbuyer@1 476 +broadcast>/+bcast>: turns on rebroadcasting|r
farmbuyer@1 477
farmbuyer@1 478 +on [T]>: turns on full tracking, optionally setting threshold to T|r
farmbuyer@1 479
farmbuyer@1 480 +off>: turns off everything|r
farmbuyer@1 481
farmbuyer@1 482 +thre[shold] T>: sets tracking threshold to T|r
farmbuyer@1 483
farmbuyer@1 484 +list>: prints saved text names and numbers|r
farmbuyer@1 485
farmbuyer@1 486 +save *(your set name)*>: saves texts as "your set name"|r
farmbuyer@1 487
farmbuyer@1 488 +restore *(N)*>: restores set number N|r
farmbuyer@1 489
farmbuyer@1 490 +delete *(N)*>: deletes set number N|r
farmbuyer@1 491
farmbuyer@1 492 +help>: opens the UI to the help tab|r
farmbuyer@1 493
farmbuyer@1 494 +toggle>: opens or closes the UI (used mostly in automated wrappers)|r
farmbuyer@1 495
farmbuyer@1 496
farmbuyer@1 497 If you use the slash commands to enable tracking or set loot thresholds, you can
farmbuyer@1 498 give numbers or common names for the threshold. For example, "0", "poor", "trash",
farmbuyer@1 499 "gray"/"grey" are all the same, "4", "epic", "purple" are the same, and so on.
farmbuyer@1 500 ]]
farmbuyer@1 501
farmbuyer@73 502 T.tips_prescan = [[
farmbuyer@73 503 When loot is manipulated, the history of previous loot entries must be scanned
farmbuyer@73 504 to determine whether you already have any information for that loot. In this
farmbuyer@73 505 case, "loot manipulation" includes things like receiving loot broadcasts from
farmbuyer@73 506 other players, marking older loot as being disenchanted, and so on.
farmbuyer@73 507
farmbuyer@73 508 You can speed up these actions by turning on the +Prescan for faster handling>
farmbuyer@73 509 toggle on the <Options> tab. This is a tradeoff: loot manipulation will
farmbuyer@73 510 go faster, but data from the prescan will use up more memory. (If you end up
farmbuyer@73 511 doing things to every single piece of loot, you would use up all that memory
farmbuyer@73 512 eventually. But if you don't, then that memory is essentially wasted.)
farmbuyer@73 513
farmbuyer@73 514 This prescanning is only done for the specific realm on which you're playing.
farmbuyer@73 515 Much depends on how far back you preserve history. The more history you keep
farmbuyer@73 516 for a given realm, then...
farmbuyer@73 517
farmbuyer@73 518 [option on] ...the more memory this option uses...
farmbuyer@73 519
farmbuyer@73 520 [option off] ...the longer loot work takes...
farmbuyer@73 521
farmbuyer@73 522 ...while manipulating loot for that realm. See the tradeoff?
farmbuyer@73 523
farmbuyer@73 524 The prescan is only done once, during login. It will print out how much
farmbuyer@73 525 additional memory is used, so you can better decide whether this option is
farmbuyer@73 526 worth turning on. This also means that you need to relog or /reload to have
farmbuyer@73 527 the option take effect once you enable it.
farmbuyer@73 528 ]]
farmbuyer@73 529
farmbuyer@1 530 T.todo = [[
farmbuyer@1 531 If you have ideas or complaints or bug reports, first check the Bugs subcategories
farmbuyer@1 532 to see if they're already being worked on. Bug reports are especially helpful
farmbuyer@73 533 if you can include a screenshot (in whatever image format you find convenient),
farmbuyer@73 534 and a copy of your SavedVariables file. This is found in your World of Warcraft
farmbuyer@73 535 installation folder, named "WTF/Account/you/SavedVariables/Ouro_Loot.lua"
farmbuyer@73 536 (where "you" is your account name). You may need to compress this file
farmbuyer@73 537 before the ticket system will accept it.
farmbuyer@1 538
farmbuyer@1 539 Click the "About" line on the left for contact information.
farmbuyer@1 540 ]]
farmbuyer@1 541
farmbuyer@1 542 T.todo_gotchas = [[
farmbuyer@1 543 <Things Which Might Surprise You> (and things I'm not sure I like in the
farmbuyer@1 544 current design):
farmbuyer@1 545
farmbuyer@73 546 Manipulating existing information while logged into a realm other than the
farmbuyer@73 547 realm represented by that same information can yield strange results, including
farmbuyer@73 548 outright breakage.
farmbuyer@73 549
farmbuyer@1 550 If you relog (or get disconnected) while in a raid group, behavior when you log
farmbuyer@1 551 back in can be surprising. If you have already recorded loot (and therefore
farmbuyer@1 552 the loot list is restored), then OL assumes it's from the current raid and should
farmbuyer@1 553 reactivate automatically in full tracking mode. If you were tracking but no
farmbuyer@1 554 loot had dropped yet (and therefore there was nothing *to* restore), then OL
farmbuyer@1 555 will pop up its reminder and ask again. Either way, if you were only broadcasting
farmbuyer@1 556 then OL will *not* go back to only broadcasting. This is probably a bug.
farmbuyer@1 557
farmbuyer@1 558 The saved texts feature does exactly that: only saves the generated texts, not
farmbuyer@1 559 the full loot list. Restoring will get you a blank first tab and whatever you
farmbuyer@1 560 previously had in the various generated text tabs.
farmbuyer@1 561
farmbuyer@47 562 The generated forum text tries to only list the name of the instance if it has
farmbuyer@47 563 not already been listed, or if it is different than the instance of the previous
farmbuyer@1 564 boss. If you relog, the "last printed instance name" will be forgotten, and
farmbuyer@1 565 you'll see redundant raid instance names appearing in the text.
farmbuyer@1 566
farmbuyer@1 567 After a boss wipe, multiple broadcasting players releasing spirit more than
farmbuyer@1 568 several seconds apart can cause spurious "wipe" entries (of zero duration) on
farmbuyer@1 569 the loot grid. The surefire way to avoid this is to not release spirit until
farmbuyer@1 570 DBM announces the wipe, but the problem isn't serious enough to really worry
farmbuyer@1 571 about. (Right-click the spurious entries and delete them.)
farmbuyer@69 572
farmbuyer@69 573 When a boss is killed, ALL previous wipes for that boss are removed and
farmbuyer@69 574 collapsed... even if they're on other days with other raids. If you only
farmbuyer@69 575 raid with one guild, this can result in some amusing statistics ("kill
farmbuyer@69 576 on 27th attempt" would actually mean something), but if there are multiple
farmbuyer@69 577 raid configurations without clearing loot in between, then this number
farmbuyer@69 578 is simply garbage.
farmbuyer@1 579 ]]
farmbuyer@1 580
farmbuyer@1 581 T.todo_todolist = todo
farmbuyer@1 582
farmbuyer@1 583
farmbuyer@1 584 -- Fill out the table that will actually be used. Join adjacent lines here so
farmbuyer@1 585 -- that they'll wrap properly.
farmbuyer@1 586 addon.helptext = {}
farmbuyer@1 587 for k,text in pairs(T) do
farmbuyer@1 588 local funkykey = k:gsub('_','\001') -- this is how TreeGroup makes unique keys
farmbuyer@1 589 local wrapped = text
farmbuyer@1 590 wrapped = wrapped:gsub ("[%+<>]", replacement_colors)
farmbuyer@1 591 wrapped = wrapped:gsub ("([^\n])\n([^\n])", "%1 %2")
farmbuyer@83 592 --safeprint(wrapped)
farmbuyer@1 593 wrapped = wrapped:gsub ("|r\n\n", "|r\n")
farmbuyer@1 594 wrapped = wrapped:gsub ("Ouroboros", "|cffa335ee<Ouroboros>|r")
farmbuyer@83 595 --safeprint(wrapped)
farmbuyer@56 596 wrapped = wrapped:gsub ("%*%(", "<") :gsub("%)%*", ">") :gsub(":PLUS:", "+")
farmbuyer@1 597 addon.helptext[funkykey] = wrapped
farmbuyer@1 598 end
farmbuyer@1 599 end -- do scope
farmbuyer@1 600 todo = nil
farmbuyer@1 601
farmbuyer@1 602
farmbuyer@95 603 -- Tab 5: Help
farmbuyer@95 604 do
farmbuyer@95 605 local AceGUI = LibStub("AceGUI-3.0")
farmbuyer@95 606 -- widget container status tables (will have things magically appear
farmbuyer@95 607 -- inside them that we wish to preserve)
farmbuyer@95 608 local status_for_scroll = {}
farmbuyer@95 609 local status_for_select = { treewidth = 145 }
farmbuyer@1 610
farmbuyer@95 611 -- Clicking an entry on the left tree column.
farmbuyer@95 612 local help_OnGroupSelected_func = function (treeg,event,category)
farmbuyer@95 613 treeg:ReleaseChildren()
farmbuyer@95 614 local txt = AceGUI:Create("Label")
farmbuyer@95 615 txt:SetFullWidth(true)
farmbuyer@95 616 txt:SetFontObject(GameFontNormal)--Highlight)
farmbuyer@95 617 txt:SetText(addon.helptext[category])
farmbuyer@95 618 local sf = AceGUI:Create("ScrollFrame")
farmbuyer@95 619 sf:SetStatusTable(status_for_scroll)
farmbuyer@95 620 sf:SetLayout("Fill")
farmbuyer@95 621 -- This forces the scrolling area to be bigger than the visible area; else
farmbuyer@95 622 -- some of the text gets cut off without ever triggering the scrollbar.
farmbuyer@95 623 sf.content:SetHeight(700)
farmbuyer@95 624 sf:AddChild(txt)
farmbuyer@95 625 treeg:AddChild(sf)
farmbuyer@95 626 if treeg:GetUserData("help restore scroll") then
farmbuyer@95 627 if status_for_scroll.scrollvalue then
farmbuyer@95 628 sf:SetScroll(status_for_scroll.scrollvalue)
farmbuyer@95 629 end
farmbuyer@95 630 treeg:SetUserData("help restore scroll", false)
farmbuyer@95 631 else
farmbuyer@95 632 sf:SetScroll(0)
farmbuyer@95 633 end
farmbuyer@95 634 end
farmbuyer@95 635
farmbuyer@95 636 -- Clicking the Help tab as a whole (tabs_OnGroupSelected["help"]).
farmbuyer@95 637 local tabs_OGS = function(container,specials)
farmbuyer@95 638 container:SetLayout("Fill")
farmbuyer@95 639 local left = AceGUI:Create("TreeGroup")
farmbuyer@95 640 left:SetStatusTable(status_for_select)
farmbuyer@95 641 left:SetLayout("Fill")
farmbuyer@95 642 left:SetFullWidth(true)
farmbuyer@95 643 left:SetFullHeight(true)
farmbuyer@95 644 left:EnableButtonTooltips(false)
farmbuyer@95 645 left:SetTree(addon.helptree)
farmbuyer@95 646 left:SetCallback("OnGroupSelected", help_OnGroupSelected_func)
farmbuyer@95 647 container:AddChild(left)
farmbuyer@95 648 if status_for_select.selected then
farmbuyer@95 649 left:SetUserData("help restore scroll", true)
farmbuyer@95 650 left:SelectByValue(status_for_select.selected)
farmbuyer@95 651 else
farmbuyer@95 652 left:SelectByValue("basic")
farmbuyer@95 653 end
farmbuyer@95 654 end
farmbuyer@95 655
farmbuyer@95 656 local noob = [[
farmbuyer@95 657 Every tab across the top also gets its own special buttons here in the lower
farmbuyer@95 658 right, under the same name as the tab. Some controls do not become visible
farmbuyer@95 659 until that tab has data to work with.]]
farmbuyer@95 660
farmbuyer@95 661 addon:register_tab_control_AT_END ("help", [[Help]],
farmbuyer@95 662 [[Instructions, reminders, and tips for non-obvious features]],
farmbuyer@95 663 tabs_OGS, --[[opt_noobtip=]]noob)
farmbuyer@95 664 end
farmbuyer@70 665
farmbuyer@1 666 -- vim:noet