llanimationstates.cpp
上传用户:king477883
上传日期:2021-03-01
资源大小:9553k
文件大小:19k
源码类别:

游戏引擎

开发平台:

C++ Builder

  1. /** 
  2.  * @file llanimationstates.cpp
  3.  * @brief Implementation of animation state related functions.
  4.  *
  5.  * $LicenseInfo:firstyear=2001&license=viewergpl$
  6.  * 
  7.  * Copyright (c) 2001-2010, Linden Research, Inc.
  8.  * 
  9.  * Second Life Viewer Source Code
  10.  * The source code in this file ("Source Code") is provided by Linden Lab
  11.  * to you under the terms of the GNU General Public License, version 2.0
  12.  * ("GPL"), unless you have obtained a separate licensing agreement
  13.  * ("Other License"), formally executed by you and Linden Lab.  Terms of
  14.  * the GPL can be found in doc/GPL-license.txt in this distribution, or
  15.  * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
  16.  * 
  17.  * There are special exceptions to the terms and conditions of the GPL as
  18.  * it is applied to this Source Code. View the full text of the exception
  19.  * in the file doc/FLOSS-exception.txt in this software distribution, or
  20.  * online at
  21.  * http://secondlifegrid.net/programs/open_source/licensing/flossexception
  22.  * 
  23.  * By copying, modifying or distributing this software, you acknowledge
  24.  * that you have read and understood your obligations described above,
  25.  * and agree to abide by those obligations.
  26.  * 
  27.  * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
  28.  * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
  29.  * COMPLETENESS OR PERFORMANCE.
  30.  * $/LicenseInfo$
  31.  */
  32. //-----------------------------------------------------------------------------
  33. // Agent Animation State
  34. //-----------------------------------------------------------------------------
  35. #include "linden_common.h"
  36. #include "llanimationstates.h"
  37. #include "llstring.h"
  38. LLUUID AGENT_WALK_ANIMS[] = {ANIM_AGENT_WALK, ANIM_AGENT_RUN, ANIM_AGENT_CROUCHWALK, ANIM_AGENT_TURNLEFT, ANIM_AGENT_TURNRIGHT};
  39. S32 NUM_AGENT_WALK_ANIMS = LL_ARRAY_SIZE(AGENT_WALK_ANIMS);
  40. LLUUID AGENT_GUN_HOLD_ANIMS[] = {ANIM_AGENT_HOLD_RIFLE_R, ANIM_AGENT_HOLD_HANDGUN_R, ANIM_AGENT_HOLD_BAZOOKA_R, ANIM_AGENT_HOLD_BOW_L};
  41. S32 NUM_AGENT_GUN_HOLD_ANIMS = LL_ARRAY_SIZE(AGENT_GUN_HOLD_ANIMS);
  42. LLUUID AGENT_GUN_AIM_ANIMS[] = {ANIM_AGENT_AIM_RIFLE_R, ANIM_AGENT_AIM_HANDGUN_R, ANIM_AGENT_AIM_BAZOOKA_R, ANIM_AGENT_AIM_BOW_L};
  43. S32 NUM_AGENT_GUN_AIM_ANIMS = LL_ARRAY_SIZE(AGENT_GUN_AIM_ANIMS);
  44. LLUUID AGENT_NO_ROTATE_ANIMS[] = {ANIM_AGENT_SIT_GROUND, ANIM_AGENT_SIT_GROUND_CONSTRAINED, ANIM_AGENT_STANDUP};
  45. S32 NUM_AGENT_NO_ROTATE_ANIMS = LL_ARRAY_SIZE(AGENT_NO_ROTATE_ANIMS);
  46. LLUUID AGENT_STAND_ANIMS[] = {ANIM_AGENT_STAND, ANIM_AGENT_STAND_1, ANIM_AGENT_STAND_2, ANIM_AGENT_STAND_3, ANIM_AGENT_STAND_4};
  47. S32 NUM_AGENT_STAND_ANIMS = LL_ARRAY_SIZE(AGENT_STAND_ANIMS);
  48. LLAnimationLibrary gAnimLibrary;
  49. //-----------------------------------------------------------------------------
  50. // LLAnimationLibrary()
  51. //-----------------------------------------------------------------------------
  52. LLAnimationLibrary::LLAnimationLibrary() :
  53. mAnimStringTable(16384)
  54. {
  55. //add animation names to animmap
  56. mAnimMap[ANIM_AGENT_AFRAID]= mAnimStringTable.addString("express_afraid");
  57. mAnimMap[ANIM_AGENT_AIM_BAZOOKA_R]= mAnimStringTable.addString("aim_r_bazooka");
  58. mAnimMap[ANIM_AGENT_AIM_BOW_L]=    mAnimStringTable.addString("aim_l_bow");
  59. mAnimMap[ANIM_AGENT_AIM_HANDGUN_R]= mAnimStringTable.addString("aim_r_handgun");
  60. mAnimMap[ANIM_AGENT_AIM_RIFLE_R]= mAnimStringTable.addString("aim_r_rifle");
  61. mAnimMap[ANIM_AGENT_ANGRY]= mAnimStringTable.addString("express_anger");
  62. mAnimMap[ANIM_AGENT_AWAY]= mAnimStringTable.addString("away");
  63. mAnimMap[ANIM_AGENT_BACKFLIP]= mAnimStringTable.addString("backflip");
  64. mAnimMap[ANIM_AGENT_BELLY_LAUGH]= mAnimStringTable.addString("express_laugh");
  65. mAnimMap[ANIM_AGENT_BLOW_KISS]= mAnimStringTable.addString("blowkiss");
  66. mAnimMap[ANIM_AGENT_BORED]= mAnimStringTable.addString("express_bored");
  67. mAnimMap[ANIM_AGENT_BOW]= mAnimStringTable.addString("bow");
  68. mAnimMap[ANIM_AGENT_BRUSH]= mAnimStringTable.addString("brush");
  69. mAnimMap[ANIM_AGENT_BUSY]= mAnimStringTable.addString("busy");
  70. mAnimMap[ANIM_AGENT_CLAP]= mAnimStringTable.addString("clap");
  71. mAnimMap[ANIM_AGENT_COURTBOW]= mAnimStringTable.addString("courtbow");
  72. mAnimMap[ANIM_AGENT_CROUCH]= mAnimStringTable.addString("crouch");
  73. mAnimMap[ANIM_AGENT_CROUCHWALK]= mAnimStringTable.addString("crouchwalk");
  74. mAnimMap[ANIM_AGENT_CRY]= mAnimStringTable.addString("express_cry");
  75. mAnimMap[ANIM_AGENT_CUSTOMIZE]= mAnimStringTable.addString("turn_180");
  76. mAnimMap[ANIM_AGENT_CUSTOMIZE_DONE]= mAnimStringTable.addString("turnback_180");
  77. mAnimMap[ANIM_AGENT_DANCE1]= mAnimStringTable.addString("dance1");
  78. mAnimMap[ANIM_AGENT_DANCE2]= mAnimStringTable.addString("dance2");
  79. mAnimMap[ANIM_AGENT_DANCE3]= mAnimStringTable.addString("dance3");
  80. mAnimMap[ANIM_AGENT_DANCE4]= mAnimStringTable.addString("dance4");
  81. mAnimMap[ANIM_AGENT_DANCE5]= mAnimStringTable.addString("dance5");
  82. mAnimMap[ANIM_AGENT_DANCE6]= mAnimStringTable.addString("dance6");
  83. mAnimMap[ANIM_AGENT_DANCE7]= mAnimStringTable.addString("dance7");
  84. mAnimMap[ANIM_AGENT_DANCE8]= mAnimStringTable.addString("dance8");
  85. mAnimMap[ANIM_AGENT_DEAD]= mAnimStringTable.addString("dead");
  86. mAnimMap[ANIM_AGENT_DRINK]= mAnimStringTable.addString("drink");
  87. mAnimMap[ANIM_AGENT_EMBARRASSED]= mAnimStringTable.addString("express_embarrased");
  88. mAnimMap[ANIM_AGENT_EXPRESS_AFRAID]= mAnimStringTable.addString("express_afraid_emote");
  89. mAnimMap[ANIM_AGENT_EXPRESS_ANGER]= mAnimStringTable.addString("express_anger_emote");
  90. mAnimMap[ANIM_AGENT_EXPRESS_BORED]= mAnimStringTable.addString("express_bored_emote");
  91. mAnimMap[ANIM_AGENT_EXPRESS_CRY]= mAnimStringTable.addString("express_cry_emote");
  92. mAnimMap[ANIM_AGENT_EXPRESS_DISDAIN]= mAnimStringTable.addString("express_disdain");
  93. mAnimMap[ANIM_AGENT_EXPRESS_EMBARRASSED]= mAnimStringTable.addString("express_embarrassed_emote");
  94. mAnimMap[ANIM_AGENT_EXPRESS_FROWN]= mAnimStringTable.addString("express_frown");
  95. mAnimMap[ANIM_AGENT_EXPRESS_KISS]= mAnimStringTable.addString("express_kiss");
  96. mAnimMap[ANIM_AGENT_EXPRESS_LAUGH]= mAnimStringTable.addString("express_laugh_emote");
  97. mAnimMap[ANIM_AGENT_EXPRESS_OPEN_MOUTH]= mAnimStringTable.addString("express_open_mouth");
  98. mAnimMap[ANIM_AGENT_EXPRESS_REPULSED]= mAnimStringTable.addString("express_repulsed_emote");
  99. mAnimMap[ANIM_AGENT_EXPRESS_SAD]= mAnimStringTable.addString("express_sad_emote");
  100. mAnimMap[ANIM_AGENT_EXPRESS_SHRUG]= mAnimStringTable.addString("express_shrug_emote");
  101. mAnimMap[ANIM_AGENT_EXPRESS_SMILE]= mAnimStringTable.addString("express_smile");
  102. mAnimMap[ANIM_AGENT_EXPRESS_SURPRISE]= mAnimStringTable.addString("express_surprise_emote");
  103. mAnimMap[ANIM_AGENT_EXPRESS_TONGUE_OUT]= mAnimStringTable.addString("express_tongue_out");
  104. mAnimMap[ANIM_AGENT_EXPRESS_TOOTHSMILE]= mAnimStringTable.addString("express_toothsmile");
  105. mAnimMap[ANIM_AGENT_EXPRESS_WINK]= mAnimStringTable.addString("express_wink_emote");
  106. mAnimMap[ANIM_AGENT_EXPRESS_WORRY]= mAnimStringTable.addString("express_worry_emote");
  107. mAnimMap[ANIM_AGENT_FALLDOWN]= mAnimStringTable.addString("falldown");
  108. mAnimMap[ANIM_AGENT_FEMALE_WALK]= mAnimStringTable.addString("female_walk");
  109. mAnimMap[ANIM_AGENT_FINGER_WAG]= mAnimStringTable.addString("angry_fingerwag");
  110. mAnimMap[ANIM_AGENT_FIST_PUMP]= mAnimStringTable.addString("fist_pump");
  111. mAnimMap[ANIM_AGENT_FLY]= mAnimStringTable.addString("fly");
  112. mAnimMap[ANIM_AGENT_FLYSLOW]= mAnimStringTable.addString("flyslow");
  113. mAnimMap[ANIM_AGENT_HELLO]= mAnimStringTable.addString("hello");
  114. mAnimMap[ANIM_AGENT_HOLD_BAZOOKA_R]= mAnimStringTable.addString("hold_r_bazooka");
  115. mAnimMap[ANIM_AGENT_HOLD_BOW_L]= mAnimStringTable.addString("hold_l_bow");
  116. mAnimMap[ANIM_AGENT_HOLD_HANDGUN_R]= mAnimStringTable.addString("hold_r_handgun");
  117. mAnimMap[ANIM_AGENT_HOLD_RIFLE_R]= mAnimStringTable.addString("hold_r_rifle");
  118. mAnimMap[ANIM_AGENT_HOLD_THROW_R]= mAnimStringTable.addString("hold_throw_r");
  119. mAnimMap[ANIM_AGENT_HOVER]= mAnimStringTable.addString("hover");
  120. mAnimMap[ANIM_AGENT_HOVER_DOWN]= mAnimStringTable.addString("hover_down");
  121. mAnimMap[ANIM_AGENT_HOVER_UP]= mAnimStringTable.addString("hover_up");
  122. mAnimMap[ANIM_AGENT_IMPATIENT]= mAnimStringTable.addString("impatient");
  123. mAnimMap[ANIM_AGENT_JUMP]= mAnimStringTable.addString("jump");
  124. mAnimMap[ANIM_AGENT_JUMP_FOR_JOY]= mAnimStringTable.addString("jumpforjoy");
  125. mAnimMap[ANIM_AGENT_KISS_MY_BUTT]= mAnimStringTable.addString("kissmybutt");
  126. mAnimMap[ANIM_AGENT_LAND]= mAnimStringTable.addString("land");
  127. mAnimMap[ANIM_AGENT_LAUGH_SHORT]= mAnimStringTable.addString("laugh_short");
  128. mAnimMap[ANIM_AGENT_MEDIUM_LAND]= mAnimStringTable.addString("soft_land");
  129. mAnimMap[ANIM_AGENT_MOTORCYCLE_SIT]= mAnimStringTable.addString("motorcycle_sit");
  130. mAnimMap[ANIM_AGENT_MUSCLE_BEACH]= mAnimStringTable.addString("musclebeach");
  131. mAnimMap[ANIM_AGENT_NO]= mAnimStringTable.addString("no_head");
  132. mAnimMap[ANIM_AGENT_NO_UNHAPPY]= mAnimStringTable.addString("no_unhappy");
  133. mAnimMap[ANIM_AGENT_NYAH_NYAH]= mAnimStringTable.addString("nyanya");
  134. mAnimMap[ANIM_AGENT_ONETWO_PUNCH]= mAnimStringTable.addString("punch_onetwo");
  135. mAnimMap[ANIM_AGENT_PEACE]= mAnimStringTable.addString("peace");
  136. mAnimMap[ANIM_AGENT_POINT_ME]= mAnimStringTable.addString("point_me");
  137. mAnimMap[ANIM_AGENT_POINT_YOU]= mAnimStringTable.addString("point_you");
  138. mAnimMap[ANIM_AGENT_PRE_JUMP]= mAnimStringTable.addString("prejump");
  139. mAnimMap[ANIM_AGENT_PUNCH_LEFT]= mAnimStringTable.addString("punch_l");
  140. mAnimMap[ANIM_AGENT_PUNCH_RIGHT]= mAnimStringTable.addString("punch_r");
  141. mAnimMap[ANIM_AGENT_REPULSED]= mAnimStringTable.addString("express_repulsed");
  142. mAnimMap[ANIM_AGENT_ROUNDHOUSE_KICK]= mAnimStringTable.addString("kick_roundhouse_r");
  143. mAnimMap[ANIM_AGENT_RPS_COUNTDOWN]= mAnimStringTable.addString("rps_countdown");
  144. mAnimMap[ANIM_AGENT_RPS_PAPER]= mAnimStringTable.addString("rps_paper");
  145. mAnimMap[ANIM_AGENT_RPS_ROCK]= mAnimStringTable.addString("rps_rock");
  146. mAnimMap[ANIM_AGENT_RPS_SCISSORS]= mAnimStringTable.addString("rps_scissors");
  147. mAnimMap[ANIM_AGENT_RUN]= mAnimStringTable.addString("run");
  148. mAnimMap[ANIM_AGENT_SAD]= mAnimStringTable.addString("express_sad");
  149. mAnimMap[ANIM_AGENT_SALUTE]= mAnimStringTable.addString("salute");
  150. mAnimMap[ANIM_AGENT_SHOOT_BOW_L]= mAnimStringTable.addString("shoot_l_bow");
  151. mAnimMap[ANIM_AGENT_SHOUT]= mAnimStringTable.addString("shout");
  152. mAnimMap[ANIM_AGENT_SHRUG]= mAnimStringTable.addString("express_shrug");
  153. mAnimMap[ANIM_AGENT_SIT]= mAnimStringTable.addString("sit");
  154. mAnimMap[ANIM_AGENT_SIT_FEMALE]= mAnimStringTable.addString("sit_female");
  155. mAnimMap[ANIM_AGENT_SIT_GROUND]= mAnimStringTable.addString("sit_ground");
  156. mAnimMap[ANIM_AGENT_SIT_GROUND_CONSTRAINED]= mAnimStringTable.addString("sit_ground_constrained");
  157. mAnimMap[ANIM_AGENT_SIT_GENERIC]= mAnimStringTable.addString("sit_generic");
  158. mAnimMap[ANIM_AGENT_SIT_TO_STAND]= mAnimStringTable.addString("sit_to_stand");
  159. mAnimMap[ANIM_AGENT_SLEEP]= mAnimStringTable.addString("sleep");
  160. mAnimMap[ANIM_AGENT_SMOKE_IDLE]= mAnimStringTable.addString("smoke_idle");
  161. mAnimMap[ANIM_AGENT_SMOKE_INHALE]= mAnimStringTable.addString("smoke_inhale");
  162. mAnimMap[ANIM_AGENT_SMOKE_THROW_DOWN]= mAnimStringTable.addString("smoke_throw_down");
  163. mAnimMap[ANIM_AGENT_SNAPSHOT]= mAnimStringTable.addString("snapshot");
  164. mAnimMap[ANIM_AGENT_STAND]= mAnimStringTable.addString("stand");
  165. mAnimMap[ANIM_AGENT_STANDUP]= mAnimStringTable.addString("standup");
  166. mAnimMap[ANIM_AGENT_STAND_1]= mAnimStringTable.addString("stand_1");
  167. mAnimMap[ANIM_AGENT_STAND_2]= mAnimStringTable.addString("stand_2");
  168. mAnimMap[ANIM_AGENT_STAND_3]= mAnimStringTable.addString("stand_3");
  169. mAnimMap[ANIM_AGENT_STAND_4]= mAnimStringTable.addString("stand_4");
  170. mAnimMap[ANIM_AGENT_STRETCH]= mAnimStringTable.addString("stretch");
  171. mAnimMap[ANIM_AGENT_STRIDE]= mAnimStringTable.addString("stride");
  172. mAnimMap[ANIM_AGENT_SURF]= mAnimStringTable.addString("surf");
  173. mAnimMap[ANIM_AGENT_SURPRISE]= mAnimStringTable.addString("express_surprise");
  174. mAnimMap[ANIM_AGENT_SWORD_STRIKE]= mAnimStringTable.addString("sword_strike_r");
  175. mAnimMap[ANIM_AGENT_TALK]= mAnimStringTable.addString("talk");
  176. mAnimMap[ANIM_AGENT_TANTRUM]= mAnimStringTable.addString("angry_tantrum");
  177. mAnimMap[ANIM_AGENT_THROW_R]= mAnimStringTable.addString("throw_r");
  178. mAnimMap[ANIM_AGENT_TRYON_SHIRT]= mAnimStringTable.addString("tryon_shirt");
  179. mAnimMap[ANIM_AGENT_TURNLEFT]= mAnimStringTable.addString("turnleft");
  180. mAnimMap[ANIM_AGENT_TURNRIGHT]= mAnimStringTable.addString("turnright");
  181. mAnimMap[ANIM_AGENT_TYPE]= mAnimStringTable.addString("type");
  182. mAnimMap[ANIM_AGENT_WALK]= mAnimStringTable.addString("walk");
  183. mAnimMap[ANIM_AGENT_WHISPER]= mAnimStringTable.addString("whisper");
  184. mAnimMap[ANIM_AGENT_WHISTLE]= mAnimStringTable.addString("whistle");
  185. mAnimMap[ANIM_AGENT_WINK]= mAnimStringTable.addString("express_wink");
  186. mAnimMap[ANIM_AGENT_WINK_HOLLYWOOD]= mAnimStringTable.addString("wink_hollywood");
  187. mAnimMap[ANIM_AGENT_WORRY]= mAnimStringTable.addString("express_worry");
  188. mAnimMap[ANIM_AGENT_YES]= mAnimStringTable.addString("yes_head");
  189. mAnimMap[ANIM_AGENT_YES_HAPPY]= mAnimStringTable.addString("yes_happy");
  190. mAnimMap[ANIM_AGENT_YOGA_FLOAT]= mAnimStringTable.addString("yoga_float");
  191. }
  192. //-----------------------------------------------------------------------------
  193. // ~LLAnimationLibrary()
  194. //-----------------------------------------------------------------------------
  195. LLAnimationLibrary::~LLAnimationLibrary()
  196. {
  197. }
  198. //-----------------------------------------------------------------------------
  199. // Return the text name of an animation state
  200. //-----------------------------------------------------------------------------
  201. const char *LLAnimationLibrary::animStateToString( const LLUUID& state )
  202. {
  203. if (state.isNull())
  204. {
  205. return NULL;
  206. }
  207. if (mAnimMap.count(state))
  208. {
  209. return mAnimMap[state];
  210. }
  211. return NULL;
  212. }
  213. //-----------------------------------------------------------------------------
  214. // Return the animation state for a given name
  215. //-----------------------------------------------------------------------------
  216. LLUUID LLAnimationLibrary::stringToAnimState( const std::string& name, BOOL allow_ids )
  217. {
  218. std::string lower_case_name(name);
  219. LLStringUtil::toLower(lower_case_name);
  220. char *true_name = mAnimStringTable.checkString(lower_case_name.c_str());
  221. LLUUID id;
  222. id.setNull();
  223. if (true_name)
  224. {
  225. for (anim_map_t::iterator iter = mAnimMap.begin();
  226.  iter != mAnimMap.end(); iter++)
  227. {
  228. if (iter->second == true_name)
  229. {
  230. id = iter->first;
  231. break;
  232. }
  233. }
  234. }
  235. else if (allow_ids)
  236. {
  237. // try to convert string to LLUUID
  238. id.set(name, FALSE);
  239. }
  240. return id;
  241. }
  242. // Animation states that the user can trigger as part of a gesture
  243. // See struct LLAnimStateEntry in header for label location information
  244. const LLAnimStateEntry gUserAnimStates[] = {
  245. LLAnimStateEntry("express_afraid", ANIM_AGENT_AFRAID),
  246. LLAnimStateEntry("express_anger", ANIM_AGENT_ANGRY),
  247. LLAnimStateEntry("away", ANIM_AGENT_AWAY),
  248. LLAnimStateEntry("backflip", ANIM_AGENT_BACKFLIP),
  249. LLAnimStateEntry("express_laugh", ANIM_AGENT_BELLY_LAUGH),
  250. LLAnimStateEntry("express_toothsmile", ANIM_AGENT_EXPRESS_TOOTHSMILE),
  251. LLAnimStateEntry("blowkiss", ANIM_AGENT_BLOW_KISS),
  252. LLAnimStateEntry("express_bored", ANIM_AGENT_BORED),
  253. LLAnimStateEntry("bow", ANIM_AGENT_BOW),
  254. LLAnimStateEntry("clap", ANIM_AGENT_CLAP),
  255. LLAnimStateEntry("courtbow", ANIM_AGENT_COURTBOW),
  256. LLAnimStateEntry("express_cry", ANIM_AGENT_CRY),
  257. LLAnimStateEntry("dance1", ANIM_AGENT_DANCE1),
  258. LLAnimStateEntry("dance2", ANIM_AGENT_DANCE2),
  259. LLAnimStateEntry("dance3", ANIM_AGENT_DANCE3),
  260. LLAnimStateEntry("dance4", ANIM_AGENT_DANCE4),
  261. LLAnimStateEntry("dance5", ANIM_AGENT_DANCE5),
  262. LLAnimStateEntry("dance6", ANIM_AGENT_DANCE6),
  263. LLAnimStateEntry("dance7", ANIM_AGENT_DANCE7),
  264. LLAnimStateEntry("dance8", ANIM_AGENT_DANCE8),
  265. LLAnimStateEntry("express_disdain", ANIM_AGENT_EXPRESS_DISDAIN),
  266. LLAnimStateEntry("drink", ANIM_AGENT_DRINK),
  267. LLAnimStateEntry("express_embarrased", ANIM_AGENT_EMBARRASSED),
  268. LLAnimStateEntry("angry_fingerwag", ANIM_AGENT_FINGER_WAG),
  269. LLAnimStateEntry("fist_pump", ANIM_AGENT_FIST_PUMP),
  270. LLAnimStateEntry("yoga_float", ANIM_AGENT_YOGA_FLOAT),
  271. LLAnimStateEntry("express_frown", ANIM_AGENT_EXPRESS_FROWN),
  272. LLAnimStateEntry("impatient", ANIM_AGENT_IMPATIENT),
  273. LLAnimStateEntry("jumpforjoy", ANIM_AGENT_JUMP_FOR_JOY),
  274. LLAnimStateEntry("kissmybutt", ANIM_AGENT_KISS_MY_BUTT),
  275. LLAnimStateEntry("express_kiss", ANIM_AGENT_EXPRESS_KISS),
  276. LLAnimStateEntry("laugh_short", ANIM_AGENT_LAUGH_SHORT),
  277. LLAnimStateEntry("musclebeach", ANIM_AGENT_MUSCLE_BEACH),
  278. LLAnimStateEntry("no_unhappy", ANIM_AGENT_NO_UNHAPPY),
  279. LLAnimStateEntry("no_head", ANIM_AGENT_NO),
  280. LLAnimStateEntry("nyanya", ANIM_AGENT_NYAH_NYAH),
  281. LLAnimStateEntry("punch_onetwo", ANIM_AGENT_ONETWO_PUNCH),
  282. LLAnimStateEntry("express_open_mouth", ANIM_AGENT_EXPRESS_OPEN_MOUTH),
  283. LLAnimStateEntry("peace", ANIM_AGENT_PEACE),
  284. LLAnimStateEntry("point_you", ANIM_AGENT_POINT_YOU),
  285. LLAnimStateEntry("point_me", ANIM_AGENT_POINT_ME),
  286. LLAnimStateEntry("punch_l", ANIM_AGENT_PUNCH_LEFT),
  287. LLAnimStateEntry("punch_r", ANIM_AGENT_PUNCH_RIGHT),
  288. LLAnimStateEntry("rps_countdown", ANIM_AGENT_RPS_COUNTDOWN),
  289. LLAnimStateEntry("rps_paper", ANIM_AGENT_RPS_PAPER),
  290. LLAnimStateEntry("rps_rock", ANIM_AGENT_RPS_ROCK),
  291. LLAnimStateEntry("rps_scissors", ANIM_AGENT_RPS_SCISSORS),
  292. LLAnimStateEntry("express_repulsed", ANIM_AGENT_EXPRESS_REPULSED),
  293. LLAnimStateEntry("kick_roundhouse_r", ANIM_AGENT_ROUNDHOUSE_KICK),
  294. LLAnimStateEntry("express_sad", ANIM_AGENT_SAD),
  295. LLAnimStateEntry("salute", ANIM_AGENT_SALUTE),
  296. LLAnimStateEntry("shout", ANIM_AGENT_SHOUT),
  297. LLAnimStateEntry("express_shrug", ANIM_AGENT_SHRUG),
  298. LLAnimStateEntry("express_smile", ANIM_AGENT_EXPRESS_SMILE),
  299. LLAnimStateEntry("smoke_idle", ANIM_AGENT_SMOKE_IDLE),
  300. LLAnimStateEntry("smoke_inhale", ANIM_AGENT_SMOKE_INHALE),
  301. LLAnimStateEntry("smoke_throw_down", ANIM_AGENT_SMOKE_THROW_DOWN),
  302. LLAnimStateEntry("express_surprise", ANIM_AGENT_SURPRISE),
  303. LLAnimStateEntry("sword_strike_r", ANIM_AGENT_SWORD_STRIKE),
  304. LLAnimStateEntry("angry_tantrum", ANIM_AGENT_TANTRUM),
  305. LLAnimStateEntry("express_tongue_out", ANIM_AGENT_EXPRESS_TONGUE_OUT),
  306. LLAnimStateEntry("hello", ANIM_AGENT_HELLO),
  307. LLAnimStateEntry("whisper", ANIM_AGENT_WHISPER),
  308. LLAnimStateEntry("whistle", ANIM_AGENT_WHISTLE),
  309. LLAnimStateEntry("express_wink", ANIM_AGENT_WINK),
  310. LLAnimStateEntry("wink_hollywood", ANIM_AGENT_WINK_HOLLYWOOD),
  311. LLAnimStateEntry("express_worry", ANIM_AGENT_EXPRESS_WORRY),
  312. LLAnimStateEntry("yes_happy", ANIM_AGENT_YES_HAPPY),
  313. LLAnimStateEntry("yes_head", ANIM_AGENT_YES),
  314. };
  315. const S32 gUserAnimStatesCount = LL_ARRAY_SIZE(gUserAnimStates);
  316. // End