DB/EmotesText: Difference between revisions

From wowdev
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
(7 intermediate revisions by one other user not shown)
Line 1: Line 1:
==3.3.5.12340==
==0.5.3.3368, 1.12.1.5875, 3.3.5.12340, 6.0.1.18179==
struct EmotesTextRec {
  uint32_t m_ID;
  {{Template:Type|stringref}} m_name;
  {{Template:Type/foreign_key|table=Emotes}} m_emoteID;
  {{Template:Type/foreign_key|table=EmotesTextData}} 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.
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.
{| style="background:#FCFCFC; color:black"
{| style="background:#FCFCFC; color:black"
Line 49: Line 57:
[[User:Amaroth|Amaroth]] 30th November 2016
[[User:Amaroth|Amaroth]] 30th November 2016


==0.5.3.3368, 1.21.1.5875, 6.0.1.18179==
{{Template:SectionBox|This section only applies to version {{Template:Sandbox/PrettyVersion|expansionlevel=0|build=0.5.3.3368}}}}
  struct EmotesTextRec {
In the Alpha, the <code>CGChat::AddTextEmoteMessage</code> 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 'displayed to x', these are subsequently 0 filled in the DBC. Below is a simplistic list of the flags:
  uint32_t m_ID;
 
  {{Template:Type|stringref}} m_name;
0x0 = default, male
  uint32_t m_emoteID;
0x1 = display to others
  uint32_t m_emoteText[16];
0x2 = display to target
};
  0x4 = no target
[[Category:DBC]][[Category:DBC_WotLK]]
0x8 = female
  * 'displayed to sender' (index 3 and 7) is a special case {{Template:Unverified| presumably calculated and used if (((flags & 1 or flags & 2) ? 3 : 0) + (flags & 4)) > 0}}
 
[[Category:DBC]]
[[Category:DBC_Alpha]]
[[Category:DBC_Vanilla]]
[[Category:DBC_WotLK]]
[[Category:DBC_WoD]][[Category:6.0.1.18179]]
[[Category:DBC_WoD]][[Category:6.0.1.18179]]

Revision as of 12:41, 9 January 2018

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;
  foreign_key<uint32_t, &EmotesTextDataRec::m_ID> 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 'displayed 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
 * 'displayed 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