DB/EmotesText

From wowdev
Revision as of 15:56, 12 October 2017 by Barncastle (talk | contribs)
Jump to navigation Jump to search

0.5.3.3368, 1.12.1.5875, 3.3.5.12340, 6.0.1.18179

struct EmotesTextRec {
  uint32_t m_ID;
  stringref m_name;
  foreign_key<uint32_t, &EmotesRec::m_ID> m_emoteID;
  uint32_t m_emoteText[16];
};

Structure

If a female emote text in #12, #13 or #16 is 0, appropriate male one is used instead. Unknown columns should be tested if they actually work and do something.

Field Name Type Description Example
1 ID Integer Unique row ID.
2 sRefCon String /String which executes this emote.
3 iRefID_Emotes Integer Animation to be played.
4 iRefID_EmotesTextData Integer Male, target, displayed to others. %s raises his fist in anger at %s.
5 iRefID_EmotesTextData Integer Male, target, displayed to target. %s raises his fist in anger at you.
6 iRefID_EmotesTextData Integer Unisex, target, displayed to sender. You raise your fist in anger at %s.
7 iRefID_EmotesTextData Integer Unknown
8 iRefID_EmotesTextData Integer Male, no target, displayed to others. %s raises his fist in anger.
9 iRefID_EmotesTextData Integer Unknown
10 iRefID_EmotesTextData Integer Unisex, no target, displayed to sender. You raise your fist in anger.
11 iRefID_EmotesTextData Integer Unknown
12 iRefID_EmotesTextData Integer Female, target, displayed to others. %s raises her fist in anger at %s.
13 iRefID_EmotesTextData Integer Female, target, displayed to target. %s raises her fist in anger at you.
14 iRefID_EmotesTextData Integer Unknown
15 iRefID_EmotesTextData Integer Unknown
16 iRefID_EmotesTextData Integer Female, no target, displayed to others. %s raises her fist in anger.
17 iRefID_EmotesTextData Integer Unknown
18 iRefID_EmotesTextData Integer Unknown
19 iRefID_EmotesTextData Integer Unknown

Amaroth 30th November 2016

This section only applies to version PreVanilla (0.5.3.3368)

In the Alpha, the CGChat::AddTextEmoteMessage function is used to calculate which emoteText to use, this is based off a basic set of rules that combines flags to produce an index. Because of these rules and flags certain combinations are not used i.e. 4 would have no 'display to x', these are subsequently 0 filled in the DBC. Below is a simplistic list of the flags:

0x0 = default, male
0x1 = display to others
0x2 = display to target
0x4 = no target
0x8 = female
 * 'display to sender' (index 3 and 7) is a special case  presumably calculated and used if (((flags & 1 or flags & 2) ? 3 : 0) + (flags & 4)) > 0