FIXED: "you don't know that language" errors
* This would occur for speeches that were set to use the racial language, combined with sharing speeches between toons, one toon would not know the others' racial language
* It is no longer necessary to set "Always Use Common" to work around this error.

BANDAID: When creating a new character...
* if "share speeches for all toons" is enabled,
* SpeakinSpell will NOT automatically import ANY default starter speeches for the new character.
* You may still use "/ss import" to setup new characters to use these default speeches (and more)

Removed the SpellIdCache and the related lag-producing search to match a spell name to its ID
- New in WoW 4.0, spell IDs are now reported by the Blizzard API events like UNIT_SPELLCAST_START, so we don't need to search for an ID that matches the name anymore

Fixed a Lua error in "/ss import"

Fixed a case where <targetclass> was still using the target's name for NPCs instead of "NPC"

Fixed minor inaccuracies in the memory usage report

---------
4.0.3.04
---------

Fixed a Lua error for French and German game clients

---------
4.0.3.03
---------

Theoretical repair to a Lua error (couldn't reproduce the problem)
- When one of your SpeakinSpell speeches is a slash command like "/cheer" the invisible chat frame used to run the slash command is now created on-demand, instead of when the addon loads.

---------
4.0.3.02
---------

The 2-year Anniversary Release! - good enough to stop calling it a beta

If you skipped the beta versions, please save a backup copy of your saved data, and read the release notes below for 4.0.1.01 - BETA.

The interface options now live outside the Blizzard interface options frame
- If you browse in the options for Escape > Interface Options > Addons > SpeakinSpell, you will now find a single button that says [/ss options] and opens the real options windows
- The SpeakinSpell options GUI is now larger, movable, and resizable without the use of LibBetterBlizzOptions
- This also fixes a problem with loading the GUI on-demand

Restored <rank> as a substitution in speeches
- This still shows the Polymorph animal (sheep, pig, etc) and ranks of profession skills (journeyman, master, etc)
- This can be used for redirects to separate speech lists for a specific rank by using "/ss macro <spellname> <rank>"

---------
4.0.3.01 - BETA
---------

NEW FEATURES:
* Partially translated into French
* <targetrace> now also works on mobs = Humanoid, Beast, Dragonkin, etc. (on target players, this still returns Human, Tauren, etc)
* <targetclass> now returns "NPC" for NPCs instead of their name
* "/ss macro <substitution>" can now be used as a pointer to conditional speeches that are based on the results of the substition, for example speeches you want to use when casting Heal on a target Dwarf can be directed through "/ss macro <spellname> <targetrace>" and written in "/ss macro heal dwarf" to avoid saying those speeches on non-dwarves.
* When using "expand macros as lists-only" undefined single-line macros will be removed from the expanded list of possible speeches, so that another speech will be selected, instead of prompting you to [Setup New Event] for this undefined macro
* When creating a new event (/ss create) the list of random speeches will now be empty, instead of showing some examples

BACK-END IMPROVEMENTS:
* Loading is a little faster
* SpeakinSpell_Defaults is now a separate Load-on-Demand module containing a large amount of data that you don't need most of the time, saving memory

BUG FIXES:
* The Yell channel is selectable again
* Achievements you earn are no longer treated as achievements earned by guild members
* Added safety checks for nil value errors

---------
4.0.1.01 - BETA
---------

(Mostly) Compatible with WoW patch 4.01
- Some known issues remain, which is why this is still a beta.

BACKUP AND CHECK YOUR SAVED DATA! (/ss messages)

Make a backup copy of your saved data file as a precaution to avoid losing your custom speeches!
/World of Warcraft/WTF/Account/<your name>/SavedVariables/SpeakinSpell.lua

Any ranked spell announcements in your saved data will be merged automatically to the rankless version of that spell

- ATTENTION MAGES: you may now have Biscuit speeches (from Rank 1) mixed into your Ritual of Refreshment speeches (Rankless Ritual of Refreshment conjures Strudel at level 80). You may also have a problem with Polymorph (see known issues below)

Spell Ranks have been removed from the game, and from SpeakinSpell
- removed substitutions for <rank> and <spellrank>
- removed the "Show All Ranks" search option
- removed "(Any Rank)" from event names
- removed all special logic related to announcing only the ranked or rankless version of an event when both are defined
- updated the default spell triggers for new installs and [/ss reset] to remove obsolete spells

The list of known-good event keys has been reset since we don't trust it
- new keys will be learned as you play and added to future releases

Added SpeakinSpell_Patches: a load-on-demand module containing the data upgrading functions which are needed only once per character after updating SpeakinSpell to a newer version

Repaired Lua error thrown by "/ss eraseall"

Updated embedded libraries

KNOWN ISSUES:

* Something appears to be wrong with saving and restoring your saved variables. If you change your speeches, the changes might not save properly after you logout.

* Blizzard removed several spells from the game. In an effort to avoid deleting your custom speeches, SpeakinSpell will NOT clean up obsolete speeches for spells that no longer exist. You will have to fix that manually if it applies to you (/ss messages). There may be similar problems in the default speeches, which have not yet been reviewed for this issue.

Repaired a packager error that was unexpectedly renaming the guiwrapper.lua file.

---------
3.3.5.10
---------

-- NEW FEATURES --

Added new combat events: I gained aggro / I lost aggro
- Applies only to your target and focus, and occurs redundantly with entering/exiting combat events.

Added to the network data sharing GUI: show the list of players we have synced with during this session, and what version of SpeakinSpell they're running

Added a new slash command "/speakinspell eraseall" to erase all speeches for all event triggers
- WARNING: there is not yet a confirmation prompt to ask if you're sure. Only do this if you're sure you want to erase everything you wrote!

-- BUG FIXES --

Fixed a bug that was using German default speeches in all versions of the game client (not just the German game client)

Fixed a bug that was blocking some default content from loading with new installs, and during "/speakinspell reset"
- This applies to battlecries, <randomfaction>, <randomtaunt>, summoning stones, hearthstone, mounts and pets, death cries, guild achievements, and some raid boss events

Fixed a Blizzard bug: when /follow breaks, ignore redundant notifications from the API, to announce ending /follow exactly once per beginning /follow (down from 3 times)

Fixed a bug with slash commands such as "/ss sync playername" or "/ss ad playername" which was including the separating space as part of the ' playername' which caused errors that there was no such player

-- BEHIND THE SCENES --

Divided the addon into multiple modules to help with performance
- The GUI will not load until called for.

Improved localization support using GlobalStrings

-- CONTENT --

Added new default speeches for all classes and races (except for Shamans, sorry)
- adds most speeches from RPHelper2
- repairs some spelling and grammar errors in various default speeches

---------
3.3.5.09
---------

Added support for announcing combat pets' independent actions

---------
3.3.5.08
---------

Fixed <targetclass> ... again

---------
3.3.5.07
---------

Data Sharing event: "Found a SpeakinSpell User" now works correctly

---------
3.3.5.06
---------

Added 34 default speeches for Summoning Stones
- upgrading users may use "/ss import" to import the new macros

Bug Fix: <targetrace>, <targetclass>, and gender forms now work better on targets who are not in your party or raid
- This info only works on players in your party or raid, your selected target, focus, and mouseover. Other targets' race, class, and gender information is unreliable

Bug Fix: When using the setting to "Share Speeches for All Characters" and then logging in to a new character for the first time, your SpeakinSpell settings will no longer be reset to defaults.
- applicable defaults for the new character's race and class will be imported automatically

Bug Fix: Fixed the default event hook for "Resurrection: Start Casting (I'm the caster)" so that it works for new installs.
- saved data will also be corrected by the upgrade if applicable

The diagnostic function to "Show Why Event Triggers Do not Fire" now shows the % chance or cooldown setting that was in effect

---------
3.3.5.05
---------

Not a beta!

LibBetterBlizzOptions is no longer embedded, since it is not technically required.
- It is still highly recommended for use with SpeakinSpell as a separate install

The packager will now ignore developer files (reduces download size slightly)
- Interested programmers are still encouraged to use SVN to access the SDD.doc and other developer files that aren't needed to run the addon

---------
3.3.5.04 - beta
---------

Trying to make packager use head revisions of Ace

---------
3.3.5.03 - beta
---------

Added some links to the help file

Fixed a typo in default speeches

Fixed some potential nil value errors in the GUI

Changed packaging to use .pkgmeta instead of hard-embedding libraries

---------
3.3.5.02 - beta
---------

Code Cleanup
- No visible impact is intended in this area (yet), but the following elements have been cleaned up or refactored:
- localization support overhauled for non-English game clients
- cleaned up slash commands implementation and related usage of AceConsole-3.0

Fixed Lua errors from using <targetclass> and <targetrace> without a target
Fixed a bug with "/ss reset" leaving remnant deleted spells in the GUI

Removed default speeches for Blessing of Protection

---------
3.3.5.01 - beta
---------

NEW FEATURES:

Added a speech event hook: Data Sharing Events (Received): Found a SpeakinSpell User
- This event is fired once per login session when the data sharing feature handshakes with another SpeakinSpell user for the first time. (unreliable at detecting versions older than 3.3.5.01)
- Supports the following substitutions:
- <caster> and <target> are both the player who was found
- <version> is the version of SS they are running
- and all other standard substitutions apply as usual

BUG FIXES:
- Skip unnecessary data patch functions that you already ran by logging into an alt.
- "/ss import" will not suffer an error if you have multiple alternate characters with the same name on different realms
- Non-English game clients will no longer use the English list of default known event hooks
- Fixed WoW 3.3.5 vs. voice emotes (/cheer) and other slash commands in your SpeakinSpell macros

Data Sharing Network Communications:
- Removed the SilentSendAddonMessage module that silences "you are not in a raid" spam error messages. This will be rereleased as a stand-alone addon because this functionality is out of scope for SpeakinSpell.
- fixed the logic that SpeakinSpell uses for which addon communication channels are valid in different kinds of groups or scenarios.

CONTENT UPDATE - NEW MACROS! (and some dumb ones deleted or reworded)
- Use "/ss import" to browse and import the ones you like

For Mages: Ritual of Refreshment (Rank 2), Mirror Image, and all Alliance portals

For Death Knights: Army of the Dead

Added an Arena Content Pack
- This is optional and will not be enabled by default
- use "/ss import" to activate these announcements if you're an Arena player.

UPDATES TO THE DEFAULT SETTINGS for new installs
- Upgrading users' settings will not be changed by the update, but you may want to consider reviewing your choices for the following options.

Under General Options (/ss options)...
- The global cooldown is now 10 seconds by default (up from 0).
Reason: catches the occasional glitch where events are triggered twice at a time (i.e. guild achievement spam, and the occasional Blizzard bugs)
- The default setting is for "Share Speeches for All Characters" is now ON.
Reason: I assume that most people want to use the same macros when playing every different toon they have. Roleplayers who want to use different macros on different toons can still turn this off.

Under Network Data Sharing (/ss network)...
- Auto-Sync at Login is now OFF for new installs.
Reason: There's not enough new content out there to retrieve every time you login. I just type "/ss sync" or "/ss sync <target>" manually every once in a while if I notice another SS user to share with.

---------
3.3.3.09
---------

Fixed a bug for anyone who loaded the buggy 3.3.3.05 version, to remove repeating "macro macro" from converted macro events

Updated default event hook list
- Total known event hooks now: 5262
- New spells, buffs, debuffs, and auras are still learned when SpeakinSpell sees them for the first time

---------
3.3.3.08
---------

Fixed a bug when using [Click Here] and similar links to edit speeches for an event trigger
- It will no longer open to the wrong event if you had previously selected a different event category

---------
3.3.3.07
---------

Added a new diagnostic function to "Show Why Event Triggers Do Not Fire"
- see new checkbox under general options (/ss options), under the diagnostics group, near the bottom

Bug Fixes:
- when a /ss macro event is used as a shared speech list, it will no longer be silenced by the global cooldown option
- when you toggle SS on/off using the options GUI, the minimap icon is now updated to show the different icon for on/off status (the battleshout icon is ON, and the white mask is OFF)
- also modified the label and tooltip on that option to clarify that manually typing an /ss macro or clicking a button for it is always enabled
- Another embedded library error to eliminate reliance on other addons: now loading CallbackHandler-1.0 before other libs that depend on it

---------
3.3.3.06
---------

Fixed an intermittent bug in the data patch function from the previous version, which was blocking SS from loading for some people who used the deprecated white/yellow damage events

---------
3.3.3.05
---------

The white and yellow damage events have been removed
- The excessive combinations of Crushing/Critical/Resisted/Blocked/Absorbed/Glancing/Killing Blow made these events practically unusable
- If you used these event triggers, your speeches have been preserved by converting them to /ss macro events

Added new event triggers for Combat Event: Critical Strike, and Combat Event: Killing Blow
- These new events are more generalized compared to the deprecated white and yellow damage events
- Note that both of these new events may be triggered simultaneously from the same attack, if you kill someone with a critical strike
- related bug fix: These events now also properly detect ranged attack "white hits" such as from a wand or bow

Fixed a bug with Combat Event: I Died
- suppressed redundant announcements that you died after you're already dead (work-around for Blizzard's bug)

Fixed integration with Titan Panel so that the "off" icon now displays when SS is off

Fixed an error with embedded LDB libraries so that SS will run correctly without relying on other addons to load the LDB libraries

A few performance enhancements
- moved some static tables into global space to avoid recreating them frequently

---------
3.3.3.04
---------

Added an option to share speeches and event triggers across all your characters
- see "/ss options" for the new checkbox for "Share Speeches for All Characters"

Fixed bugs with the silencer for "you are not in a raid" (SilentSendAddonMessage)
- This resolves a conflict with PallyPower, at the expense of getting more "you are not in a raid group" spam error messages from other addons' comms.

Fixed a bug that could open the wrong event's settings when clicking [Edit Speeches] in chat links

---------
3.3.3.03
---------

Added a new Global Cooldown option to silence SpeakinSpell for 0 to 600 seconds between announcing any event.
- The default is still 0 to preserve legacy behavior

Added new option to "Expand /ss macros as lists-only"
- The new checkbox is found under "/ss messages" just above the random speech list.
- To preserve legacy behavior, this option has NOT been turned on by default
- If you use the built-in default mount announcements, you may want to edit your settings to enable this new option to even out the random selection from the nested speech lists.

Fixed a bug with missing embedded libraries which could have caused loading errors and/or the minimap button to fail

---------
3.3.3.02
---------

Fixed bugs with minimap icon
- now loads the OFF icon correctly at load time when applicable
- now correctly saves the position of the icon if you change it

Fixed a bug in the patch function for saved data older than 3.3.3.01
- was causing load errors for some people who skipped from a version of SS older than 3.2.2.22 straight to 3.3.3.01 without installing/running any version in between

At login, now uses ADDON_LOADED instead of VARIABLES_LOADED to check when saved variables are loaded
- this may fix a rare problem of user data becoming erased while logging in (could have occurred randomly during any login attempt)

Updated all 3rd party libraries to the latest versions
- This may fix errors I never saw or knew about, compatibility issues, and so on

---------
3.3.3.01
---------

Fixed issues with custom-made random word lists
- Applies to "/ss random" for the "New Word List" feature ...
- This will now correct for any errors in the way you type the name of your new word list
- (must be lowercase, and do not include the <brackets> or special characters like | or *)
- Your saved data will also be repaired automatically if you had a custom random word list that was not working

---------
3.3.2.01
---------

Added new event "Combat Event: I Died" for announcing when you die

The feature to "Show Setup Guides" is now OFF by default for new installs
- fine-tuned this feature to show [/ss guides] as a clickable link in every guide message

Cleaned up /ss ad macros

---------
3.3.0.07
---------

Added [Click Here] links to the chat, for easier access to SpeakinSpell settings and commands

The option to "Report Detected Speech Events" is now called "Show Setup Guides"
- This option has been enabled for all players updating to this version
- Setup guides allow you to [Click Here] to edit speeches or setup a new event
- you can [Click Here] to disable these guides from a welcome message in the chat frame
- A new slash command "/ss guides" will toggle the setup guides on/off

"/ss recent" is a new slash command to show setup guides for the last 5 events detected, and last 5 speeches announced

Removed the Raid Warning channel option from 5-man scenarios
Blizzard disabled Raid Warnings in 5-mans in 3.3.0
Your SpeakinSpell data will be updated to use Party chat instead, if applicable

Added a safety check for a nil value (LastPageViewed)

Added a patch function to fix duplicate Enter/Exit combat events

---------
3.3.0.01
---------

Not a beta! (I hope...)
TOC update for WoW patch 3.3.0
Now comes with 4387 known event hooks out of the box (and still discoverable)
The network system no longer sends built-in data from the event hook list
Fixed bugs

Added [Reset Event List] button to the Create New GUI to delete all collected event hooks
- Now knows 2230 (randomly) pre-recorded event hooks "out of the box", without having to record them first
- These will be merged into your existing list automatically - you shouldn't have to reset

- split off LibSmartComm sub-component library to encapsulate the network engine core
- Added compression to the data sharing system
- The new compressed data sharing protocol will not talk to older clients (not even for new version alerts, sorry)
- Added a function to repair invalid data left behind by the previous few betas
- Added a list of known event hooks for "/ss create", used on fresh installs or will be added to your existing saved data

---------
3.2.2.25 (beta)
---------

- Cleaned up the new Resurrection events
- Cleaned up the Data Sharing GUI
- Fixed minor bugs
- Updated the Help file

---------
3.2.2.24 (beta) HOT FIX
---------

Hot Fix for LUA error in oldversions.lua

Added LibResComm-1.0
- UNTESTED EXPERIMENTAL WORK IN PROGRESS
- This library provides smarter notifications for resurrection spells
- See the new category of "Resurrection Events"

---------
3.2.2.23 (beta) HOT FIX
---------

OOPS! accidentally left automated debugging functions enabled in the last release

---------
3.2.2.22 (beta)
---------

ADDED: GUI controls to create and delete <randomword> word lists

ADDED: <randomword> word lists can now be shared through the comm system

ADDED: a search filter under "/ss create" to hide the event hooks that you already use

BUG FIX: Interrupted data transfers will no longer cause error message spam in the chat
i.e. "no such player as 'player' is online" and "you are not in a guild"

Repaired <target> info used for spell channeling events
- this info is missing from the API, and will now use the value of <selected> instead of <lasttarget>

Added <lasttarget> substitution to replace the lost automatic function of <target> for channeling events
- This is the target of the last UNIT_SPELLCAST_SENT event
- usually this is the target of a spell-related event such as channeling start, but not always up to date
- <selected> is often more accurate than <lasttarget> unless you are doing something unusual with the way you're targetting your abilities

COMMUNICATIONS SYSTEM

Added option to Show Comm Traffic under network settings
- this is also a new Comm Traffic channel option with a configurable color

Known issues:
- comm traffic error spam saying: no player named 'player' is online

---------
3.2.2.19 (beta)
---------

Fixed LUA error from automatic version checks

---------
3.2.2.18 (beta)
---------

Fixed LUA error from automatic version checks

Added "/ss sync <target>" to perform a complete data sync with a specific target name

---------
3.2.2.17 (beta)
---------

It's the SpeakinSpell 1-year Anniversary Edition!

Added a framework for network communication and data sharing through invisible chat channels
- "/ss network" opens a new GUI with related options
- "/ss sync" will cause an auto-sync between available SS users, also occurs automatically at login, and will become more automated in the future
- "/ss import" allows you to import shared speeches from other players
- Checks for newer versions of SpeakinSpell
- Synchronizes the list of new events detected for the "/ss create" GUI

The "/ss import" GUI can now be used to import speeches from your alternate characters on the same account

The list of new events detected (/ss create) is now shared account-wide instead of in separate per-character data
- Be warned this means you can now configure your warrior to announce when he casts your mage spells, even though that would be pointless

Random <substitutions> are now shared account-wide

---------
3.2.2.16
---------

Pronoun forms now support embedded substitutions marked with underscores, as in the following syntax:
<target*_randomboy_*_randomgirl_|_playerfulltiitle_>

Updated the in-game help with some features that had previously gone undocumented.
(features added in the previous release, and some <substitution> keys that snuck in over the past few months)

fixed bug: when creating a new event trigger (/ss create), the new event is now properly added to the event selection list under the message settings (/ss messages)

---------
3.2.2.14
---------

Dramatically increases the number of events that SpeakinSpell can announce!

(NOTE: the changes in this release are so extensive, I was unable to test some of them as much as I would have liked. I'm pretty sure it's all working, but if you find any problems, PLEASE report them)

The "System Event" category has been removed/renamed
- Enter/Exit combat events are now "Combat Events" instead of "System Events"
- "Whispered while in-combat" is now a "Chat Event" instead of a "System Event"
- All other "System Events" are now called "Misc. Events"

The following new speech events have also been added.

Please note that you must experience each event at least once in-game to populate the "/ss create" GUI to use these new events.

Please consult the in-game help (/ss help) chapter 11 for a complete list of all of these "other events" including these new ones and all the older ones in a comprehensive list, with info about additional options and features related to each of these events.

Chat Event: a guild member said "ding"
Chat Event: a party member said "ding"

Combat Event: Yellow Damage (<damagetype>)
Combat Event: White Damage (<damagetype>)
- These are both large groups of events
- <damagetype> is a string composed of all of the following that apply (in this order):
- Crushing, Critical, Resisted, Blocked, Absorbed, Glancing, Killing Blow
- If none of those apply, then it will be a simple "Hit"
- example event name: "Combat Event: Yellow Damage (Critical, Killing Blow)" but many other permutations are also possible

---------
3.2.2.13
---------

Adds options to change some of the colors used by SS
"/ss colors" will open this new options GUI screen

Adds the ability to announce a new "System Event: Whispered While In-Combat"
- This event will NOT be announced when you send a whisper to yourself
- allows you to auto-reply with a randomized comment, for example "/r sorry can't talk right now, busy fighting with <selected>"
- <target> is the target of the event, meaning you, the player, who was the target of the whisper
- <caster> is the author of the message whispered to you
- <text> is a special substitution supported for this event only, and is the content of the whispered message.
- This can be used to relay the whisper into party chat, for example "/p <caster> whispered me to say: <text>"

---------
3.2.2.12
---------

Fixed LUA error

---------
3.2.2.11
---------

The channel drop-down lists in the GUI now correctly show the player's customized chat channel colors
(even the default colors look more accurate)

---------
3.2.2.10
---------

Removed the Multi-RNG fix from the previous version
- A different solution will be added to address that issue in a future version

Added some buttons for managing /ss macro calls.
- see new buttons under "/ss messages" attached to speeches which call out a single "/ss macro thing"

Multi-RNG Fix: Now expanding macro contents to process recursive calls to "/ss macro subcategory" with a single RNG
- This creates a balanced distribution of random selections when you call out more than one /ss macro subcategory as separate speech lists for a single event

---------
3.2.2.08
---------

Added "Import New Data" GUI
- Allows you to search the content that comes with SpeakinSpell for any new speeches or <randomsubs> that you aren't using
- VERY flexible about letting you select what new content you want to use, if any
- "/ss import" now opens this window

Added some new content packs from Dire Lemming (Thanks!!)
- hit "/ss import" to see if any of these new speeches work for you (for your race/class and style)

Embedded LibBetterBlizzOptions for a better overall experience with the blizzard options frame

Enhanced data structures to support upcoming features
(replaces DEFAULT_SPEECHES tables with Templates system)

Fixed LUA errors

---------
3.2.2.03
---------

More GUI touchups

Fixed: Will now ignore blank lines in speeches

Added a patch function to auto-upgrade <newline> to actual line breaks for use in the new multi-line edit boxes
(<newline> may still be used as a substitution)

---------
3.2.2.02
---------

GUI Overhaul: Better organization, labeling, and overall appearance

Added channel option: Self-Only Raid Warning

Fixed: Rebuffs now count as buff events and will be announced if applicable

Added "/ss toggle"
Changed "/ss" and "/ss toggle" now work the same way as right-clicking the minimap button

Various bug fixes - Removed "beta" designation

---------
3.2.2.01 (beta)
---------

Fixed LUA error with spell links
Fixed LUA error with events that do not have any speeches

Enhanced <spelllink> to work on most spells now
(adds spell id cache)

Added "/ss memory" and memory display on the General Settings

---------
3.2.0.08 (beta)
---------

Added support for Gender substitutions
- The simple form is: <target*male*female>
- More advanced forms like <mouseover's*his*her> target is <mouseovertarget*a boy*a girl|me>
- See the in-game help chapter 8. Gender for details

Improved Search GUI
- If search options are too limited, will now display "No Matching Search Results Found"
- normally limited to 100 results to get rid of the lag
- Fixed bugs with some of the search results

Overhauled the substitution engine
- Possessive forms now work on all subtitutions
- Third Person |me parsing now works on all subtitutions, and when combined with possessive forms, as in <target's|my>
- Substitution data is now only generated if it is used (performance boost)
- Gender substitutions are now supported

Added a minimap button for easier access to settings

---------
3.2.0.07 (beta)
---------

Fixed LUA error with new <playerfulltitle> feature for people who do not have a title.
This error was crashing the addon for all people without a title, even if you didn't try to use the new <playerfulltitle> substitution

---------
3.2.0.06 (beta)
---------

Added a search box to the options GUI
- search settings are now shared between Message Settings and Create New
- includes a search option to show/hide all ranks

Added support for new event types:
- (UNIT_SPELLCAST_CHANNEL_START) When I start channeling: ___
- (UNIT_SPELLCAST_CHANNEL_STOP) When I stop channeling: ___
- (UNIT_SPELLCAST_FAILED) When I fail to cast: ___
- (UNIT_SPELLCAST_INTERRUPTED) When I am interrupted when casting: ___
- (UNIT_SPELLCAST_STOP) When I stop casting: ___
- (UNIT_SPELLCAST_SUCCEEDED) When I succeed at casting: ___

Added new substitutions:
<guild> - the name of your guild
<home> - the name of your home inn (hearthstone location)
<selected> - will show your selected target only
<mouseover> - will show the name of the target under your mouse
<arenaN> - Opposing arena member with index N (1,2,3,4,5).
<partyN> - The Nth party member excluding the player (1,2,3 or 4).
<partypetN> - The pet of the Nth party member (N is 1,2,3, or 4) (Added in 1.5.0).
<raidN> - The raid member with raidIndex N (1,2,3,...,40).
<raidpetN> - The pet of the raid member with raidIndex N (1,2,3,...,40) (Added in 1.5.0)
<vehicle> - The current player's vehicle.
<playerfulltitle> - your name with your title included

Also added support for all other UnitId values which may be used with the UnitName() API, including targets of targets:
You can append the suffix target to any UnitId to get a UnitId which refers to that unit's target (e.g. "partypet2target"). This appending can be repeated indefinitely (e.g. "playertargettarget"), though you will observe an attendant performance hit if you overdo it, as the game engine has to jump from target to target.

Random Substutition lists may now be edited (type "/ss random" to access the interface)
<randomtaunt> - a random mean name to call someone
<randomfaction> - a random faction's name
<randomboy> - a random boy's name (new)
<randomgirl> - a random girl's name (new)
<randomsilly> - a random silly word (new)

New options to limit chat spam to once per combat and/or once per <target> name.

A couple minor bug fixes

---------
3.2.0.03
---------

Fixed the <newline> function

Added "Leroy" as a <randomtaunt>

---------
3.2.0.02
---------

Added 3 new substitution variables:

<randomfaction>
- will become the name of a random faction such as Horde, Alliance, Sindorei, Light, and over 80 more
- "For the glory of the <randomfaction>!" can become "For the glory of the Zandalar Tribe!" or many other random factions

<randomtaunt>
- will become a random insulting name, such as Meanie, Coward, Punk, N00b, and over 20 more
- "Die <randomtaunt>!" can become "Die Nub!" or "Die Son of a Hamster!" or many more

<newline>
- This will split a speech into more than one line of text, so you can say two speeches at the same time
- "For the Horde!<newline>/cheer" will say "For the Horde!" in your selected channel, and then make you do "/cheer" at the same time.
- (OOPS: this is not working yet in 3.2.0.02 - will be fixed in 3.2.0.03!)

Added several new default sample speeches for all classes
- includes a new default event for "/ss macro battlecry" with very many battlecries, inspired by the addon, Ultimate Warcraft Battlecry Generator, by NytewolfAU2k7
- includes a new system of race-specific and universal default speeches
- includes some nice suggested speeches by Folji

Adds Feature: [Import New Default Sample Speeches]
- look for the button under General Settings (/ss options)
- Merges your current settings with the default sample settings that come with SpeakinSpell.
- Your saved settings will be preserved, but new speeches will be added.

Added a feature to support any slash command in any message that you write for any event
This includes built-in emotes like /cheer, chat channel overrides like /s /y /2 /g etc
and any other non-protected command. /cast and other secure commands are not allowed.

Minor corrections to GUI option labels and tooltips
- expanding on the transition from "spells" to more generally speaking of "events"

---------
3.1.3.05
---------

It is now possible to announce 2 new events:
System Event: Entering Combat
System Event: Exiting Combat

---------
3.1.3.04
---------

updates to the Korean translation

when creating message settings for a new event, that event will no longer be removed from the Create New interface.

fixed a bug with "/ss ad /w" when applied to selected target

reorganized source code into separate files for growing room

---------
3.1.3.03
---------

Added event type filters to the options interface to make it easier to find what you're looking for.

Fixed a bug with missing information in the saved data needed to support the new event type filters.

---------
3.1.3.02 (unreleased)
---------

The list of new events under Create New is now remembered between sessions if you relog or reloadui

---------
3.1.3.01
---------

Added support for Korean WoW game clients

---------
3.1.2.14
---------

Fixed a LUA error with the Whisper Target feature

---------
3.1.2.13
---------

Adds substitution variable <focus>
(I can't think of a good way to use it since <target> is pretty smart, but it might as well be supported)

<caster|I> now works
"<caster|I> cast <spelllink> on <target|myself>" works nicely

---------
3.1.2.11 (beta)
---------

Fixed errors when upgrading from 3.1.2.03 to 3.1.2.05 data format.
- the EventTable is now created properly
- "_ event: login" is now updated correctly

This should do it for the major bugs in the recent beta versions.

---------
3.1.2.10 (beta)
---------

Fixed non-deterministic order of applying patches to old saved data when upgdading to a new version
This should fix the main error encountered by many people when updating from pre 3.1.2.07 versions

---------
3.1.2.09 (beta)
---------

Simplifies the data update code for updating to 3.1.2.07. Should be more reliable now.

---------
3.1.2.08 (beta)
---------

Attempting to fix reported LUA error on line 1799.
This was related to the saved data format updating to the 3.1.2.07 format.
Should work now or at least not throw a LUA error

---------
3.1.2.07 (beta)
---------

Lots of code restructuring behind the scenes to make room for expansion

Saved data format has been upgraded

Due to the nature of the upgrade and the limitations of the old data
some saved spell events may be duplicated as two types during the upgrade
both as the "Spell Cast Start" type and the "Received Buff" type

Enhanced in-game help TOC with a button for each chapter

Adds new substitution variable <spelllink> and related functionality

Now detects additional spell events
- buffs cast on you by others (and totems)
- debuffs you receive from yourself or others

More enhancements to the options GUI to support the growing features

fixed bugs with "<caster>"

---------
3.1.2.04 - 3.1.2.06 (unreleased)
---------

These unreleased versions changed the saved data format several times
3.1.2.05 - changed from SpellTable to EventTable, added TableEntry.DetectedEvent object, table keys were de.name..de.rank..de.type
3.1.2.06 - changed table keys to put DetectedEvent.type first for sort order purposes. table keys now de.type..de.name..re.rank
3.1.2.07 - changed table keys to UPPERCASE to fix case sensitivity issues - see 3.1.2.07 for the rest of the feature list

---------
3.1.2.03 (beta)
---------

Reorganized and updated all documentation, in game and out
Improved in-game Help

New substitution variable <caster>

No longer using <no target> <no target race> <no target class> and <no pet>
If your target or pet information is unknown, those variables will go unsubstituted
and appear as simply <target> or <pet>

/ss macro newmacro
will now automatically open the Create New... interface to "_ macro newmacro"

---------
3.1.2.02 (beta)
---------

Added Help to the interface options, containing the complete user's manual for maximum detail on using all of the features SpeakinSpell has to offer

"/ss" now opens the interface options
"/ss help" now opens the interface options to the Help page
"/ss options" still works as before
"/ss create" opens the Create New... interface

Added support for CUSTOM MACROS!
Type "/ss macro something" to create any named event you want to define yourself.
For example, "/ss macro battlecry"
Go to the interface options under Create New... (/ss create)
Look for "/ss macro battlecry" in the list of detected events.
Click on Create
In the future, any time you type "/ss macro battlecry", SpeakinSpell will announce the event as if you just cast a spell called "/ss macro battlecry". This "spell" event has no rank. The target is your selected target.