plugindayzplayerdebug.c 60 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367
  1. // *************************************************************************************
  2. // ! PluginDayzPlayerDebugUserData
  3. // *************************************************************************************
  4. class PluginDayzPlayerDebugUserData
  5. {
  6. void PluginDayzPlayerDebugUserData(string name, int category, int pUserData, bool pFullBody, int pStanceMask = -1)
  7. {
  8. m_iUserData = pUserData;//animation CMD id
  9. m_bIsFullBody = pFullBody;
  10. m_iStanceMask = pStanceMask;
  11. m_Category = category;//pType
  12. m_Name = name;
  13. }
  14. int GetInt()
  15. {
  16. return m_iUserData;
  17. }
  18. bool IsFullBody()
  19. {
  20. return m_bIsFullBody;
  21. }
  22. int GetStanceMask()
  23. {
  24. return m_iStanceMask;
  25. }
  26. int GetCategory()
  27. {
  28. return m_Category;
  29. }
  30. string GetName()
  31. {
  32. return m_Name;
  33. }
  34. string GetNameUnique()
  35. {
  36. return m_Name + "|" + GetCategory();
  37. }
  38. protected int m_iUserData;
  39. protected bool m_bIsFullBody;
  40. protected int m_iStanceMask;
  41. protected int m_Category;
  42. protected string m_Name;
  43. }
  44. // *************************************************************************************
  45. // ! PluginDayzPlayerDebugUI
  46. // *************************************************************************************
  47. class PluginDayzPlayerDebugUIHandler extends ScriptedWidgetEventHandler
  48. {
  49. override bool OnClick(Widget w, int x, int y, int button)
  50. {
  51. super.OnClick(w, x, y, button);
  52. return m_pPluginPlayerDebug.OnClick(w, x, y, button);
  53. }
  54. override bool OnChange(Widget w, int x, int y, bool finished)
  55. {
  56. super.OnChange(w, x, y, finished);
  57. return m_pPluginPlayerDebug.OnChange(w, x, y, finished);
  58. }
  59. override bool OnMouseEnter(Widget w, int x, int y)
  60. {
  61. super.OnMouseEnter(w,x,y);
  62. GetGame().GetMission().AddActiveInputExcludes({"menu"});
  63. return true;
  64. }
  65. override bool OnMouseLeave(Widget w, Widget enterW, int x, int y)
  66. {
  67. super.OnMouseLeave(w,enterW, x,y);
  68. GetGame().GetMission().RemoveActiveInputExcludes({"menu"},true);
  69. return true;
  70. }
  71. PluginDayzPlayerDebug m_pPluginPlayerDebug;
  72. }
  73. // *************************************************************************************
  74. // ! PluginDayzPlayerDebugUI
  75. // *************************************************************************************
  76. class PluginDayzPlayerActionCallback extends HumanCommandActionCallback
  77. {
  78. protected static ref set<string> m_AnimEventMapping;
  79. void PluginDayzPlayerActionCallback()
  80. {
  81. //Print("Action callback created");
  82. EnableCancelCondition(true);
  83. //RegisterAnimationEvent("ActionExec", 1); // really weird id
  84. if (!m_AnimEventMapping)//making sure to only do once
  85. {
  86. m_AnimEventMapping = new set<string>();
  87. m_AnimEventMapping.Insert("ActionExec");
  88. m_AnimEventMapping.Insert("SoundWeapon");
  89. m_AnimEventMapping.Insert("SoundVoice");
  90. m_AnimEventMapping.Insert("SoundAttachment");
  91. m_AnimEventMapping.Insert("Sound");
  92. }
  93. foreach (int index, string eventName: m_AnimEventMapping)
  94. RegisterAnimationEvent(eventName, index);
  95. EnableStateChangeCallback(); // enable this to get OnStateChange callbacks
  96. m_fTimeStart = GetWorldTime();
  97. }
  98. void ~PluginDayzPlayerActionCallback()
  99. {
  100. //Print("Action callback deleted");
  101. }
  102. override void OnFinish(bool pCanceled)
  103. {
  104. if (pCanceled)
  105. {
  106. m_pStateWidget.SetText("Result: canceled");
  107. }
  108. else
  109. {
  110. m_pStateWidget.SetText("Result: ended");
  111. }
  112. }
  113. bool CancelCondition()
  114. {
  115. // Print("Action cancel condition");
  116. return DefaultCancelCondition();
  117. }
  118. override void OnAnimationEvent(int pEventID)
  119. {
  120. //Print(pEventID);
  121. //Print("--------------------------------");
  122. // only one event id is registered - 1 so nothing else can be delivered
  123. string eventName= m_AnimEventMapping.Get(pEventID);
  124. string eventText = eventName + " event at: ";
  125. float tFromSt = GetWorldTime() - m_fTimeStart;
  126. eventText += tFromSt.ToString();
  127. m_EventsHistory.AddItem(eventText,null,0);
  128. m_pAnimEventWidget.SetText(eventText);
  129. }
  130. override void OnStateChange(int pOldState, int pCurrentState)
  131. {
  132. string oldState = GetStateString(pOldState);
  133. string newState = GetStateString(pCurrentState);
  134. m_pStateWidget.SetText(oldState + "->" + newState);
  135. };
  136. //!
  137. float m_fTimeStart;
  138. TextWidget m_pStateWidget;
  139. TextWidget m_pAnimEventWidget;
  140. TextListboxWidget m_EventsHistory;
  141. }
  142. // *************************************************************************************
  143. // ! PluginDayzPlayerDebug
  144. // *************************************************************************************
  145. class PluginDayzPlayerDebug extends PluginBase
  146. {
  147. private const int TYPE_MOD_LOOPING = 0;
  148. private const int TYPE_MOD_ONETIME = 1;
  149. private const int TYPE_FB_LOOPING = 2;
  150. private const int TYPE_FB_ONETIME = 3;
  151. private const int TYPE_MOD_GESTURE_LOOPING = 4;
  152. private const int TYPE_MOD_GESTURE_ONETIME = 5;
  153. private const int TYPE_FB_GESTURE_LOOPING = 6;
  154. private const int TYPE_FB_GESTURE_ONETIME = 7;
  155. private const int TYPE_FB_SUICIDE_LOOPING = TYPE_FB_GESTURE_LOOPING;
  156. private const int TYPE_ALL = -1;
  157. ref Timer m_TickTimer;
  158. protected ref array<ref PluginDayzPlayerDebugUserData> m_AnimationList = new array<ref PluginDayzPlayerDebugUserData>();
  159. protected ref map<string, ref PluginDayzPlayerDebugUserData> m_AnimationListMappings = new map<string, ref PluginDayzPlayerDebugUserData>();
  160. protected ref map<int, string> m_TypeNameMappings = new map<int, string>();
  161. bool m_IsActive = false;
  162. bool m_HasFocus = false;
  163. bool m_HasServerWalk = false;
  164. Widget m_MainWnd;
  165. Widget m_Card0;
  166. Widget m_Card1;
  167. Widget m_Card2;
  168. Widget m_Card3;
  169. Widget m_Card4;
  170. ButtonWidget m_Card0Button;
  171. ButtonWidget m_Card1Button;
  172. ButtonWidget m_Card2Button;
  173. ButtonWidget m_Card3Button;
  174. ButtonWidget m_Card4Button;
  175. EditBoxWidget m_PlayerStatusV;
  176. TextListboxWidget m_ActionsSelector;
  177. ButtonWidget m_ActionsStart;
  178. ButtonWidget m_ActionsEnd;
  179. ButtonWidget m_ActionsFinish;
  180. ButtonWidget m_ActionsCancel;
  181. ButtonWidget m_ActionsOTA;
  182. ButtonWidget m_ActionsOTL;
  183. TextWidget m_ActionStateV;
  184. TextWidget m_ActionEventV;
  185. TextWidget m_ActionsGlobalStatus;
  186. EditBoxWidget m_ActionsFilter;
  187. ButtonWidget m_PlayerSyncCreateShadow;
  188. ButtonWidget m_PlayerSyncDelete;
  189. ButtonWidget m_PlayerServerWalk;
  190. TextWidget m_ItemAccClass;
  191. TextWidget m_ItemAccSClass;
  192. TextWidget m_ItemAccInst;
  193. ButtonWidget m_ActionTypeAll;
  194. ButtonWidget m_ActionTypeLA;
  195. ButtonWidget m_ActionTypeOA;
  196. ButtonWidget m_ActionTypeFLA;
  197. ButtonWidget m_ActionTypeFOA;
  198. ButtonWidget m_ActionTypeLG;
  199. ButtonWidget m_ActionTypeOG;
  200. ButtonWidget m_ActionTypeFLG;
  201. ButtonWidget m_ActionTypeFOG;
  202. ButtonWidget m_ClearEventsButton;
  203. TextListboxWidget m_EventsHistory;
  204. ref PluginDayzPlayerDebugUIHandler m_pUIHandler;
  205. Entity m_pPlayerShadow;
  206. protected int m_CurrentType;
  207. // command handler properties
  208. bool m_CH_ActionStart = false;
  209. int m_CH_ActionCommand = -1000;
  210. bool m_CH_ActionCancel = false;
  211. ref PluginDayzPlayerDebug_Weapons m_Weapons;
  212. ref PluginDayzPlayerDebug_Ctrl m_Controls;
  213. ref PluginDayzPlayerDebug_OtherCmds m_OtherCmds;
  214. //---------------------------------------------------
  215. // gui stuff
  216. void PluginDayzPlayerDebug()
  217. {
  218. RegisterAnimations();
  219. CreateTypeNameMapping();
  220. #ifndef NO_GUI
  221. CreateModuleWidgets();
  222. m_Weapons = new PluginDayzPlayerDebug_Weapons(m_Card1);
  223. m_Controls = new PluginDayzPlayerDebug_Ctrl(m_Card2);
  224. m_OtherCmds = new PluginDayzPlayerDebug_OtherCmds(m_Card3);
  225. #endif
  226. //m_TypeNameMappings.Insert(TYPE_FB_SUICIDE_LOOPING, "TYPE_FB_SUICIDE_LOOPING");
  227. }
  228. void CreateTypeNameMapping()
  229. {
  230. m_TypeNameMappings.Insert(TYPE_MOD_LOOPING, "MOD_LOOPING");
  231. m_TypeNameMappings.Insert(TYPE_MOD_ONETIME, "MOD_ONETIME");
  232. m_TypeNameMappings.Insert(TYPE_FB_LOOPING, "FB_LOOPING");
  233. m_TypeNameMappings.Insert(TYPE_FB_ONETIME, "FB_ONETIME");
  234. m_TypeNameMappings.Insert(TYPE_MOD_GESTURE_LOOPING, "MOD_GESTURE_LOOPING");
  235. m_TypeNameMappings.Insert(TYPE_MOD_GESTURE_ONETIME, "MOD_GESTURE_ONETIME");
  236. m_TypeNameMappings.Insert(TYPE_FB_GESTURE_LOOPING, "FB_GESTURE_LOOPING");
  237. m_TypeNameMappings.Insert(TYPE_FB_GESTURE_ONETIME, "FB_GESTURE_ONETIME");
  238. }
  239. void ~PluginDayzPlayerDebug()
  240. {
  241. ReleaseFocus();
  242. PlayerSyncDelete();
  243. #ifndef NO_GUI
  244. m_Weapons = NULL;
  245. m_Controls = NULL;
  246. m_OtherCmds = NULL;
  247. DestroyModuleWidgets();
  248. #endif
  249. }
  250. void RegisterDebugItem(ItemBase item, PlayerBase player)
  251. {
  252. }
  253. bool IsActive()
  254. {
  255. return m_IsActive;
  256. }
  257. void ShowWidgets(bool show)
  258. {
  259. if(m_MainWnd)
  260. {
  261. m_MainWnd.Show(show);
  262. }
  263. }
  264. //!
  265. void Show()
  266. {
  267. ShowWidgets(true);
  268. m_IsActive = true;
  269. if (!m_TickTimer)
  270. {
  271. m_TickTimer = new Timer();
  272. m_TickTimer.Run(0.1, this, "Tick", NULL, true);
  273. }
  274. }
  275. //!
  276. void Hide()
  277. {
  278. ShowWidgets(false);
  279. m_IsActive = false;
  280. m_TickTimer = NULL;
  281. }
  282. //!
  283. void CaptureFocus()
  284. {
  285. if (!m_HasFocus)
  286. {
  287. GetGame().GetInput().ChangeGameFocus(1);
  288. GetGame().GetUIManager().ShowUICursor(true);
  289. m_HasFocus = true;
  290. }
  291. }
  292. //!
  293. void ReleaseFocus()
  294. {
  295. if (m_HasFocus)
  296. {
  297. GetGame().GetInput().ChangeGameFocus(-1);
  298. GetGame().GetUIManager().ShowUICursor(false);
  299. m_HasFocus = false;
  300. }
  301. }
  302. int m_CurrentMode = 0;
  303. //!
  304. void ToggleDebugWindowEvent()
  305. {
  306. m_CurrentMode++;
  307. if (m_CurrentMode > 2)
  308. {
  309. m_CurrentMode = 0;
  310. }
  311. ToggleDebugWindowSetMode(m_CurrentMode);
  312. }
  313. //!
  314. void ToggleDebugWindowEventOld()
  315. {
  316. //! act:0 foc:0 -> act:1 foc:0
  317. //! act:1 foc:0 -> act:0 foc:0
  318. //! act:1 foc:1 -> act:1 foc:0
  319. if(m_IsActive && !m_HasFocus)
  320. {
  321. Hide();
  322. }
  323. else
  324. {
  325. Show();
  326. ReleaseFocus();
  327. }
  328. }
  329. void ToggleDebugWindowEventP()
  330. {
  331. //! act:0 foc:0 -> act:1 foc:1
  332. //! act:1 foc:0 -> act:1 foc:1
  333. //! act:1 foc:1 -> act:0 foc:0
  334. if (m_IsActive && m_HasFocus)
  335. {
  336. Hide();
  337. ReleaseFocus();
  338. }
  339. else
  340. {
  341. Show();
  342. CaptureFocus();
  343. }
  344. }
  345. void ToggleDebugWindowSetMode(int pMode)
  346. {
  347. switch (pMode)
  348. {
  349. case 0: Hide(); ReleaseFocus(); break;
  350. case 1: Show(); ReleaseFocus(); break;
  351. case 2: Show(); CaptureFocus(); break;
  352. }
  353. }
  354. void CreateModuleWidgets()
  355. {
  356. if (!m_pUIHandler)
  357. {
  358. m_pUIHandler = new PluginDayzPlayerDebugUIHandler();
  359. m_pUIHandler.m_pPluginPlayerDebug = this;
  360. }
  361. if (!m_MainWnd)
  362. {
  363. m_MainWnd = GetGame().GetWorkspace().CreateWidgets("gui/layouts/debug/day_z_playerdebug.layout");
  364. m_MainWnd.SetHandler(m_pUIHandler);
  365. m_MainWnd.Show(false);
  366. }
  367. m_Card0 = m_MainWnd.FindAnyWidget("Card0");
  368. m_Card1 = m_MainWnd.FindAnyWidget("Card1");
  369. m_Card2 = m_MainWnd.FindAnyWidget("Card2");
  370. m_Card3 = m_MainWnd.FindAnyWidget("Card3");
  371. m_Card4 = m_MainWnd.FindAnyWidget("Card4");
  372. m_Card0Button = ButtonWidget.Cast( m_MainWnd.FindAnyWidget("Card0Button") );
  373. m_Card1Button = ButtonWidget.Cast( m_MainWnd.FindAnyWidget("Card1Button") );
  374. m_Card2Button = ButtonWidget.Cast( m_MainWnd.FindAnyWidget("Card2Button") );
  375. m_Card3Button = ButtonWidget.Cast( m_MainWnd.FindAnyWidget("Card3Button") );
  376. m_Card4Button = ButtonWidget.Cast( m_MainWnd.FindAnyWidget("Card4Button") );
  377. m_PlayerStatusV = EditBoxWidget.Cast( m_MainWnd.FindAnyWidget("PlayerStatusV") );
  378. m_ActionsSelector = TextListboxWidget.Cast( m_MainWnd.FindAnyWidget("ActionsSelector") );
  379. m_ActionsStart = ButtonWidget.Cast( m_MainWnd.FindAnyWidget("ActionsStart") );
  380. m_ActionsEnd = ButtonWidget.Cast( m_MainWnd.FindAnyWidget("ActionsEnd") );
  381. m_ActionsFinish = ButtonWidget.Cast( m_MainWnd.FindAnyWidget("ActionsFinish") );
  382. m_ActionsCancel = ButtonWidget.Cast( m_MainWnd.FindAnyWidget("ActionsCancel") );
  383. m_ActionsOTA = ButtonWidget.Cast( m_MainWnd.FindAnyWidget("ActionsOTA") );
  384. m_ActionsOTL = ButtonWidget.Cast( m_MainWnd.FindAnyWidget("ActionsOTL") );
  385. m_ActionStateV = TextWidget.Cast( m_MainWnd.FindAnyWidget("ActionStateV") );
  386. m_ActionEventV = TextWidget.Cast( m_MainWnd.FindAnyWidget("ActionEventV") );
  387. m_ActionsGlobalStatus = TextWidget.Cast( m_MainWnd.FindAnyWidget("ActionGlobalStatus") );
  388. m_ActionsFilter = EditBoxWidget.Cast( m_MainWnd.FindAnyWidget("FilterField") );
  389. m_PlayerSyncCreateShadow = ButtonWidget.Cast( m_MainWnd.FindAnyWidget("PlayerSyncCreate") );
  390. m_PlayerSyncDelete = ButtonWidget.Cast( m_MainWnd.FindAnyWidget("PlayerSyncDelete") );
  391. m_PlayerServerWalk = ButtonWidget.Cast( m_MainWnd.FindAnyWidget("PlayerServerWalk") );
  392. m_ItemAccClass = TextWidget.Cast( m_MainWnd.FindAnyWidget("ItemAccessClass") );
  393. m_ItemAccSClass = TextWidget.Cast( m_MainWnd.FindAnyWidget("ItemAccessSClass") );
  394. m_ItemAccInst = TextWidget.Cast( m_MainWnd.FindAnyWidget("ItemAccessInst") );
  395. m_ActionTypeAll = ButtonWidget.Cast( m_MainWnd.FindAnyWidget("ActionsGroupALL") );
  396. m_ActionTypeLA = ButtonWidget.Cast( m_MainWnd.FindAnyWidget("ActionsGroupLA") );
  397. m_ActionTypeOA = ButtonWidget.Cast( m_MainWnd.FindAnyWidget("ActionsGroupOA") );
  398. m_ActionTypeFLA = ButtonWidget.Cast( m_MainWnd.FindAnyWidget("ActionsGroupFLA") );
  399. m_ActionTypeFOA = ButtonWidget.Cast( m_MainWnd.FindAnyWidget("ActionsGroupFOA") );
  400. m_ActionTypeLG = ButtonWidget.Cast( m_MainWnd.FindAnyWidget("ActionsGroupLG") );
  401. m_ActionTypeOG = ButtonWidget.Cast( m_MainWnd.FindAnyWidget("ActionsGroupOG") );
  402. m_ActionTypeFLG = ButtonWidget.Cast( m_MainWnd.FindAnyWidget("ActionsGroupFLG") );
  403. m_ActionTypeFOG = ButtonWidget.Cast( m_MainWnd.FindAnyWidget("ActionsGroupFOG") );
  404. m_EventsHistory = TextListboxWidget.Cast( m_MainWnd.FindAnyWidget("EventHistory") );
  405. m_ClearEventsButton = ButtonWidget.Cast( m_MainWnd.FindAnyWidget("ClearButton") );
  406. DisplayActions(-1);
  407. ShowCard(0);
  408. // m_DebugAgentListWidget = m_DebugRootWidget.FindAnyWidget("w_Agents");
  409. // m_DebugFloatsListWidget = m_DebugRootWidget.FindAnyWidget("w_Floats");
  410. // m_DebugStringsListWidget = m_DebugRootWidget.FindAnyWidget("w_Strings");
  411. // m_DebugFloatsProperListWidget = m_DebugRootWidget.FindAnyWidget("w_FloatsProper");
  412. // m_ItemPreviewWidget = m_DebugRootWidget.FindAnyWidget("w_ItemPreview");
  413. // m_ClassNameWidget = m_DebugRootWidget.FindAnyWidget("w_ClassName");
  414. }
  415. void DestroyModuleWidgets()
  416. {
  417. delete m_MainWnd;
  418. }
  419. void ShowCard(int pCard)
  420. {
  421. m_Card0.Show(pCard == 0);
  422. m_Card1.Show(pCard == 1);
  423. m_Card2.Show(pCard == 2);
  424. m_Card3.Show(pCard == 3);
  425. m_Card4.Show(pCard == 4);
  426. }
  427. //---------------------------------------------------
  428. // main update
  429. void Tick()
  430. {
  431. DayZPlayer player = DayZPlayer.Cast( GetGame().GetPlayer() );
  432. if (!player)
  433. {
  434. return;
  435. }
  436. // Print("PluginDayzPlayerDebug tick");
  437. UpdatePlayerStatus(player);
  438. // DbgShowBoneName(player);
  439. UpdateCommandModifiers(player);
  440. //!
  441. UpdateItemAccessor(player);
  442. m_Weapons.Tick();
  443. }
  444. //---------------------------------------------------
  445. // Player main
  446. void UpdatePlayerStatus(DayZPlayer pPlayer)
  447. {
  448. ref HumanMovementState state = new HumanMovementState();
  449. pPlayer.GetMovementState(state);
  450. string a = "Cmd:";
  451. if (state.m_CommandTypeId == DayZPlayerConstants.COMMANDID_MOVE)
  452. {
  453. a += "MOVE:";
  454. a += " st:" + state.m_iStanceIdx.ToString() + ", mv:" + state.m_iMovement.ToString();
  455. }
  456. else if (state.m_CommandTypeId == DayZPlayerConstants.COMMANDID_ACTION)
  457. {
  458. a += "FB ACTION:";
  459. a += " st:" + state.m_iStanceIdx.ToString();
  460. }
  461. else if (state.m_CommandTypeId == DayZPlayerConstants.COMMANDID_MELEE)
  462. {
  463. a += "MELEE:";
  464. a += " st:" + state.m_iStanceIdx.ToString();
  465. }
  466. else if (state.m_CommandTypeId == DayZPlayerConstants.COMMANDID_MELEE2)
  467. {
  468. a += "MELEE2:";
  469. a += " st:" + state.m_iStanceIdx.ToString();
  470. }
  471. else if (state.m_CommandTypeId == DayZPlayerConstants.COMMANDID_FALL)
  472. {
  473. a += "FALL:";
  474. a += " st:" + state.m_iStanceIdx.ToString();
  475. }
  476. else if (state.m_CommandTypeId == DayZPlayerConstants.COMMANDID_DEATH)
  477. {
  478. a += "now DEAD:";
  479. a += " st:" + state.m_iStanceIdx.ToString();
  480. }
  481. else if (state.m_CommandTypeId == DayZPlayerConstants.COMMANDID_LADDER)
  482. {
  483. a += "LADDER:";
  484. a += " st:" + state.m_iStanceIdx.ToString();
  485. }
  486. else if (state.m_CommandTypeId == DayZPlayerConstants.COMMANDID_UNCONSCIOUS)
  487. {
  488. a += "Unconscious:";
  489. a += " st:" + state.m_iStanceIdx.ToString();
  490. }
  491. else if (state.m_CommandTypeId == DayZPlayerConstants.COMMANDID_SWIM)
  492. {
  493. a += "Swimming:";
  494. a += " st:" + state.m_iStanceIdx.ToString();
  495. }
  496. else if (state.m_CommandTypeId == DayZPlayerConstants.COMMANDID_CLIMB)
  497. {
  498. a += "Climbing:";
  499. a += " st:" + state.m_iStanceIdx.ToString();
  500. }
  501. else
  502. {
  503. a += "UNKNOWN";
  504. }
  505. m_PlayerStatusV.SetText(a);
  506. }
  507. void DbgShowBoneName(DayZPlayer pPlayer)
  508. {
  509. int boneIndex = pPlayer.GetBoneIndexByName("Head");
  510. // vector pos = pPlayer.GetBonePositionMS(boneIndex);
  511. vector tm[4];
  512. pPlayer.GetBoneTransformMS(boneIndex, tm);
  513. string a = "Bone index:";
  514. a += boneIndex.ToString();
  515. a += ",";
  516. a += tm.ToString();
  517. Print(a);
  518. }
  519. void UpdateCommandModifiers(DayZPlayer pPlayer)
  520. {
  521. Actions_UpdateGlobals(pPlayer);
  522. // int nMods = pPlayer.GetCommandModifierCount();
  523. // Print("Number of modifiers");
  524. // Print(nMods);
  525. /*
  526. for (int i = 0; i < nMods; i ++)
  527. {
  528. // int a = pPlayer.GetCommandModifierId(i);
  529. if (pPlayer.GetCommandModifierId(i) == DayZPlayerConstants.COMMANDID_MOD_ACTION)
  530. {
  531. }
  532. // Print(a);
  533. }
  534. */
  535. HumanCommandActionCallback clbk = pPlayer.GetCommandModifier_Action();
  536. if (clbk)
  537. {
  538. Print(clbk);
  539. };
  540. }
  541. //---------------------------------------------------
  542. // Actions
  543. void DisplayActions(int pType)
  544. {
  545. m_CurrentType = pType;
  546. TStringArray sortedNames = new TStringArray();
  547. m_ActionsSelector.ClearItems();
  548. string filterTextLower = m_ActionsFilter.GetText();
  549. filterTextLower.ToLower();
  550. TStringArray filterTokens = new TStringArray;
  551. filterTextLower.Split(" ", filterTokens);
  552. foreach (PluginDayzPlayerDebugUserData dta: m_AnimationList)
  553. {
  554. string nameLower = dta.GetName();
  555. nameLower.ToLower();
  556. bool add = false;
  557. if (pType == -1 || pType == dta.GetCategory())
  558. {
  559. if (filterTextLower)
  560. {
  561. foreach (string token:filterTokens)
  562. {
  563. if (nameLower.Contains(token))
  564. add = true;
  565. }
  566. }
  567. else
  568. add = true;
  569. }
  570. if (add)
  571. sortedNames.Insert(dta.GetNameUnique());
  572. }
  573. sortedNames.Sort();
  574. foreach (int i, string sortedNameUnique:sortedNames)
  575. {
  576. PluginDayzPlayerDebugUserData data = m_AnimationListMappings.Get(sortedNameUnique);
  577. string sortedName = data.GetName();
  578. string typeName;
  579. if (m_TypeNameMappings.Contains(data.GetCategory()))
  580. {
  581. typeName = m_TypeNameMappings.Get(data.GetCategory());
  582. }
  583. m_ActionsSelector.AddItem(sortedName, data, 0,i);
  584. if (typeName)
  585. m_ActionsSelector.SetItem(i, typeName, null, 1);
  586. }
  587. }
  588. //!
  589. void Actions_Start()
  590. {
  591. int row = m_ActionsSelector.GetSelectedRow();
  592. if (row == -1)
  593. {
  594. return;
  595. }
  596. //!
  597. DayZPlayer player = DayZPlayer.Cast( GetGame().GetPlayer() );
  598. if (!player)
  599. {
  600. return;
  601. }
  602. PluginDayzPlayerDebugUserData userData;
  603. m_ActionsSelector.GetItemData(row, 0, userData);
  604. //! start action
  605. PluginDayzPlayerActionCallback a;
  606. if (userData.IsFullBody())
  607. {
  608. a = PluginDayzPlayerActionCallback.Cast( player.StartCommand_Action(userData.GetInt(), PluginDayzPlayerActionCallback, userData.GetStanceMask()) );
  609. }
  610. else
  611. {
  612. a = PluginDayzPlayerActionCallback.Cast( player.AddCommandModifier_Action(userData.GetInt(), PluginDayzPlayerActionCallback) );
  613. }
  614. m_ActionEventV.SetText("");
  615. a.m_pStateWidget = m_ActionStateV;
  616. a.m_pAnimEventWidget = m_ActionEventV;
  617. a.m_EventsHistory = m_EventsHistory;
  618. Print(m_ActionStateV);
  619. m_ActionStateV.SetText("Crash Test");
  620. }
  621. //!
  622. void Actions_DoInternalCommand(int pCommandId)
  623. {
  624. //!
  625. DayZPlayer player = DayZPlayer.Cast( GetGame().GetPlayer() );
  626. if (!player)
  627. {
  628. return;
  629. }
  630. HumanCommandActionCallback clbk = player.GetCommand_Action();
  631. if (!clbk)
  632. {
  633. clbk = player.GetCommandModifier_Action();
  634. if (!clbk)
  635. {
  636. return;
  637. }
  638. }
  639. clbk.InternalCommand(pCommandId);
  640. }
  641. //!
  642. void Actions_DoCancel()
  643. {
  644. //!
  645. DayZPlayer player = DayZPlayer.Cast( GetGame().GetPlayer() );
  646. if (!player)
  647. {
  648. return;
  649. }
  650. HumanCommandActionCallback clbk = player.GetCommand_Action();
  651. if (!clbk)
  652. {
  653. clbk = player.GetCommandModifier_Action();
  654. if (!clbk)
  655. {
  656. return;
  657. }
  658. }
  659. clbk.Cancel();
  660. }
  661. //!
  662. void Actions_UpdateGlobals(DayZPlayer pPlayer)
  663. {
  664. HumanCommandActionCallback clbk = pPlayer.GetCommandModifier_Action();
  665. if (!clbk)
  666. {
  667. m_ActionsGlobalStatus.SetText("No Action");
  668. }
  669. m_ActionsGlobalStatus.SetText(clbk.ToString());
  670. }
  671. //! ---------------------------------------------------------
  672. void PlayerSyncCreate()
  673. {
  674. PlayerSyncDelete();
  675. vector item_position = GetGame().GetPlayer().GetPosition() + ( GetGame().GetPlayer().GetDirection() * 2.0);
  676. m_pPlayerShadow = Entity.Cast( GetGame().CreateObject("SurvivorM_Mirek", item_position, false, false) );
  677. DayZPlayer pl = DayZPlayer.Cast( GetGame().GetPlayer() );
  678. pl.DebugSyncShadowSetup( DayZPlayer.Cast( m_pPlayerShadow ) );
  679. }
  680. void PlayerSyncDelete()
  681. {
  682. if (m_pPlayerShadow)
  683. {
  684. GetGame().ObjectDelete(m_pPlayerShadow);
  685. m_pPlayerShadow = NULL;
  686. }
  687. DayZPlayer pl = DayZPlayer.Cast( GetGame().GetPlayer() );
  688. if (pl)
  689. {
  690. pl.DebugSyncShadowSetup(NULL);
  691. }
  692. }
  693. //---------------------------------------------------
  694. // item accessor
  695. void UpdateItemAccessor(DayZPlayer pPlayer)
  696. {
  697. m_ItemAccClass.SetText(pPlayer.DebugGetItemClass());
  698. m_ItemAccSClass.SetText(pPlayer.DebugGetItemSuperClass());
  699. m_ItemAccInst.SetText(pPlayer.DebugGetItemAnimInstance());
  700. }
  701. //---------------------------------------------------
  702. // window ui clicks
  703. //! buttons clicks
  704. bool OnClick(Widget w, int x, int y, int button)
  705. {
  706. if (w == m_Card0Button)
  707. {
  708. ShowCard(0);
  709. }
  710. else if (w == m_Card1Button)
  711. {
  712. ShowCard(1);
  713. }
  714. else if (w == m_Card2Button)
  715. {
  716. ShowCard(2);
  717. }
  718. else if (w == m_Card3Button)
  719. {
  720. ShowCard(3);
  721. }
  722. else if (w == m_Card4Button)
  723. {
  724. ShowCard(4);
  725. }
  726. else if (w == m_ClearEventsButton)
  727. {
  728. m_EventsHistory.ClearItems();
  729. }
  730. else if (w == m_ActionsStart)
  731. {
  732. Print("PluginPlayerDebug: Action Start");
  733. m_CH_ActionStart = true;
  734. return true;
  735. }
  736. else if (w == m_ActionsEnd)
  737. {
  738. Print("PluginPlayerDebug: Action End");
  739. m_CH_ActionCommand = DayZPlayerConstants.CMD_ACTIONINT_END;
  740. return true;
  741. }
  742. else if (w == m_ActionsFinish)
  743. {
  744. Print("PluginPlayerDebug: Action Finish");
  745. m_CH_ActionCommand = DayZPlayerConstants.CMD_ACTIONINT_FINISH;
  746. return true;
  747. }
  748. else if (w == m_ActionsOTA)
  749. {
  750. Print("PluginPlayerDebug: Action One Time Action");
  751. m_CH_ActionCommand = DayZPlayerConstants.CMD_ACTIONINT_ACTION;
  752. return true;
  753. }
  754. else if (w == m_ActionsOTL)
  755. {
  756. Print("PluginPlayerDebug: Action Loop");
  757. m_CH_ActionCommand = DayZPlayerConstants.CMD_ACTIONINT_ACTIONLOOP;
  758. return true;
  759. }
  760. else if (w == m_ActionsCancel)
  761. {
  762. Print("PluginPlayerDebug: Action Cancel");
  763. m_CH_ActionCancel = true;
  764. return true;
  765. }
  766. else if (w == m_PlayerSyncCreateShadow)
  767. {
  768. PlayerSyncCreate();
  769. return true;
  770. }
  771. else if (w == m_PlayerSyncDelete)
  772. {
  773. PlayerSyncDelete();
  774. return true;
  775. }
  776. else if (w == m_PlayerServerWalk)
  777. {
  778. //! send rcp
  779. m_HasServerWalk = !m_HasServerWalk;
  780. #ifdef DEVELOPER
  781. Param1<bool> rp = new Param1<bool>(m_HasServerWalk);
  782. GetGame().RPCSingleParam(GetGame().GetPlayer(), ERPCs.RPC_DAYZPLAYER_DEBUGSERVERWALK, rp, true);
  783. #endif
  784. }
  785. else if (w == m_ActionTypeLA)
  786. {
  787. DisplayActions(TYPE_MOD_LOOPING);
  788. }
  789. else if (w == m_ActionTypeOA)
  790. {
  791. DisplayActions(TYPE_MOD_ONETIME);
  792. }
  793. else if (w == m_ActionTypeFLA)
  794. {
  795. DisplayActions(TYPE_FB_LOOPING);
  796. }
  797. else if (w == m_ActionTypeFOA)
  798. {
  799. DisplayActions(TYPE_FB_ONETIME);
  800. }
  801. else if (w == m_ActionTypeLG)
  802. {
  803. DisplayActions(TYPE_MOD_GESTURE_LOOPING);
  804. }
  805. else if (w == m_ActionTypeOG)
  806. {
  807. DisplayActions(TYPE_MOD_GESTURE_ONETIME);
  808. }
  809. else if (w == m_ActionTypeFLG)
  810. {
  811. DisplayActions(TYPE_FB_GESTURE_LOOPING);
  812. }
  813. else if (w == m_ActionTypeFOG)
  814. {
  815. DisplayActions(TYPE_FB_GESTURE_ONETIME);
  816. }
  817. else if (w == m_ActionTypeAll)
  818. {
  819. DisplayActions(TYPE_ALL);
  820. }
  821. if (m_Weapons.OnClick(w,x,y,button))
  822. {
  823. return true;
  824. }
  825. else if (m_OtherCmds.OnClick(w,x,y,button))
  826. {
  827. return true;
  828. }
  829. else
  830. {
  831. return m_Controls.OnClick(w,x,y,button);
  832. }
  833. }
  834. bool OnChange(Widget w, int x, int y, bool finished)
  835. {
  836. if (w == m_ActionsFilter)
  837. {
  838. DisplayActions(m_CurrentType);
  839. }
  840. if ( m_Controls.OnChange(w, x, y, finished) )
  841. return true;
  842. return false;
  843. }
  844. //---------------------------------------------------
  845. // Global handler to handle commands from player
  846. bool IsWeaponChange(out string pNewWeapon, out int pHideSlot, out int pShowSlot)
  847. {
  848. if (m_Weapons)
  849. {
  850. m_Weapons.IsWeaponChange(pNewWeapon, pHideSlot, pShowSlot);
  851. }
  852. return false;
  853. }
  854. //---------------------------------------------------
  855. // Global handler to handle commands from player
  856. void CommandHandler()
  857. {
  858. if (m_CH_ActionStart)
  859. {
  860. Actions_Start();
  861. m_CH_ActionStart = false;
  862. }
  863. if (m_CH_ActionCommand != -1000)
  864. {
  865. Actions_DoInternalCommand(m_CH_ActionCommand);
  866. m_CH_ActionCommand = -1000;
  867. }
  868. if (m_CH_ActionCancel)
  869. {
  870. Actions_DoCancel();
  871. m_CH_ActionCancel = false;
  872. }
  873. if (m_Weapons)
  874. {
  875. m_Weapons.CommandHandler();
  876. }
  877. if (m_Controls)
  878. {
  879. m_Controls.CommandHandler();
  880. }
  881. if (m_OtherCmds)
  882. {
  883. m_OtherCmds.CommandHandler();
  884. }
  885. }
  886. void RegisterAnimation(string name, int category, int pUserData, bool pFullBody, int pStanceMask = -1)
  887. {
  888. PluginDayzPlayerDebugUserData data = new PluginDayzPlayerDebugUserData(name, category, pUserData, pFullBody, pStanceMask);
  889. m_AnimationList.Insert(data);
  890. m_AnimationListMappings.Insert(data.GetNameUnique(), data);
  891. }
  892. void RegisterAnimations()
  893. {
  894. RegisterAnimation("CLEAN HANDS BOTTLE", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_CLEANHANDSBOTTLE, false);
  895. RegisterAnimation("DRINK", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_DRINK, false);
  896. RegisterAnimation("EAT", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_EAT, false);
  897. RegisterAnimation("EMPTY VESSEL", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_EMPTY_VESSEL, false);
  898. RegisterAnimation("CATCH RAIN", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_CATCHRAIN, false);
  899. RegisterAnimation("VIEW COMPASS", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_VIEWCOMPASS, false);
  900. RegisterAnimation("ITEM TUNE", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_ITEM_TUNE, false);
  901. RegisterAnimation("GIVE L ITEM", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_GIVEL, false);
  902. RegisterAnimation("GIVE R ITEM", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_GIVER, false);
  903. RegisterAnimation("SHAVE", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_SHAVE, false);
  904. RegisterAnimation("FILL MAG", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_FILLMAG, false);
  905. RegisterAnimation("EMPTY MAG", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_EMPTYMAG, false);
  906. RegisterAnimation("OPEN ITEM", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_OPENITEM, false);
  907. RegisterAnimation("TAKE TEMP SELF", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_TAKETEMPSELF, false);
  908. RegisterAnimation("VIEW MAP", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_VIEWMAP, false);
  909. RegisterAnimation("RAISE ITEM", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_RAISEITEM, false);
  910. RegisterAnimation("SEARCH INVENTORY", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_SEARCHINVENTORY, false);
  911. RegisterAnimation("CRAFTING UPPDERBODY", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_CRAFTING, false);
  912. RegisterAnimation("RESTRAINED STRUGGLE", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_RESTRAINEDSTRUGGLE, false);
  913. RegisterAnimation("COVER HEAD SELF", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_COVERHEAD_SELF, false);
  914. RegisterAnimation("COVER HEAD TARGET", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_COVERHEAD_TARGET, false);
  915. RegisterAnimation("SET ALARM CLOCK", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_SET_ALARM, false);
  916. RegisterAnimation("ENGINE START", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_STARTENGINE, false);
  917. RegisterAnimation("TOOT HORN", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_TOOTHORN, false);
  918. RegisterAnimation("ENGINE STOP", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_STOPENGINE, false);
  919. RegisterAnimation("SHIFT GEAR", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_SHIFTGEAR, false);
  920. RegisterAnimation("TURN ON/OFF LIGHTS", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_HEADLIGHT, false);
  921. RegisterAnimation("DRIVER OPEN DOOR", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_DRIVER_DOOR_OPEN, false);
  922. RegisterAnimation("DRIVER CLOSE DOOR", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_DRIVER_DOOR_CLOSE, false);
  923. RegisterAnimation("CODRIVER OPEN DOOR", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_CODRIVER_DOOROPEN, false);
  924. RegisterAnimation("CODRIVER CLOSE DOOR", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_CODRIVER_DOORCLOSE, false);
  925. RegisterAnimation("BLOODTEST", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_BLOODTEST, false);
  926. RegisterAnimation("BLOODTESTOTHER", TYPE_MOD_LOOPING, DayZPlayerConstants.CMD_ACTIONMOD_BLOODTESTOTHER, false);
  927. //! one time
  928. RegisterAnimation("PICK UP HANDS", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_PICKUP_HANDS, false);
  929. RegisterAnimation("PICK UP INVENTORY", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_PICKUP_INVENTORY, false);
  930. RegisterAnimation("LICK BATTERY", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_LICKBATTERY, false);
  931. RegisterAnimation("LIGHT FLARE", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_LIGHTFLARE, false);
  932. RegisterAnimation("LITCHEM LIGHT", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_LITCHEMLIGHT, false);
  933. RegisterAnimation("UNPIN GRENAGE", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_UNPINGRENAGE, false);
  934. RegisterAnimation("OPEN DOOR FW", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_OPENDOORFW, false);
  935. RegisterAnimation("OPEN LID", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_OPENLID, false);
  936. RegisterAnimation("CLOSE LID", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_CLOSELID, false);
  937. RegisterAnimation("RADIO ON", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_ITEM_ON, false);
  938. RegisterAnimation("RADIO OFF", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_ITEM_OFF, false);
  939. RegisterAnimation("BATON EXTEND", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_BATONEXTEND, false);
  940. RegisterAnimation("BATON RETRACT", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_BATONRETRACT, false);
  941. RegisterAnimation("UNLOCK HANDCUFF TARGET", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_UNLOCKHANDCUFFTARGET, false);
  942. RegisterAnimation("FISHINGROD EXTEND", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_FISHINGRODEXTEND, false);
  943. RegisterAnimation("FISHINGROD RETRACT", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_FISHINGRODRETRACT, false);
  944. RegisterAnimation("OPEN ITEM ONCE", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_OPENITEM_ONCE, false);
  945. RegisterAnimation("CLOSE ITEM ONCE", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_CLOSEITEM_ONCE, false);
  946. RegisterAnimation("ATTACH SCOPE", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_ATTACHSCOPE, false);
  947. RegisterAnimation("ATTACH BARREL", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_ATTACHBARREL, false);
  948. RegisterAnimation("EMPTY SEEDS PACK", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_EMPTYSEEDSPACK, false);
  949. RegisterAnimation("INTERACT", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_INTERACTONCE, false);
  950. RegisterAnimation("ATTACH ITEM", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_ATTACHITEM, false);
  951. RegisterAnimation("STOP ALARM CLOCK", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_STOP_ALARM, false);
  952. RegisterAnimation("PRESS TRIGGER", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_PRESS_TRIGGER, false);
  953. RegisterAnimation("DROP ITEM HANDS", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_DROPITEM_HANDS, false);
  954. RegisterAnimation("DROP ITEM INVENTORY", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_DROPITEM_INVENTORY, false);
  955. RegisterAnimation("EAT PILL", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_EAT_PILL, false);
  956. RegisterAnimation("EAT TABLET", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_EAT_TABLET, false);
  957. RegisterAnimation("HEATPACK", TYPE_MOD_ONETIME, DayZPlayerConstants.CMD_ACTIONMOD_HEATPACK, false);
  958. //! fullbody looping
  959. RegisterAnimation("DRINK", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_DRINK, true, DayZPlayerConstants.STANCEMASK_PRONE);
  960. RegisterAnimation("EAT", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_EAT, true, DayZPlayerConstants.STANCEMASK_PRONE);
  961. RegisterAnimation("CATCH RAIN", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_CATCHRAIN, true, DayZPlayerConstants.STANCEMASK_PRONE);
  962. RegisterAnimation("WALKIETALKIE TUNE", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_ITEM_TUNE, true, DayZPlayerConstants.STANCEMASK_PRONE);
  963. RegisterAnimation("GIVE L ITEM", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_GIVEL, true, DayZPlayerConstants.STANCEMASK_PRONE);
  964. RegisterAnimation("GIVE R ITEM", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_GIVER, true, DayZPlayerConstants.STANCEMASK_PRONE);
  965. RegisterAnimation("FILL MAG", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_FILLMAG, true, DayZPlayerConstants.STANCEMASK_PRONE);
  966. RegisterAnimation("EMPTY MAG", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_EMPTYMAG, true, DayZPlayerConstants.STANCEMASK_PRONE);
  967. RegisterAnimation("DRINK POND", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_DRINKPOND, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  968. RegisterAnimation("DRINK WELL", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_DRINKWELL, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  969. RegisterAnimation("FILL BOTTLE WELL", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_FILLBOTTLEWELL, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  970. RegisterAnimation("FIRE ESTINGUISHER", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_FIREESTINGUISHER, true, DayZPlayerConstants.STANCEMASK_ERECT);
  971. RegisterAnimation("FLAME REPAIR", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_FLAME_REPAIR, true, DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT);
  972. RegisterAnimation("WRING CLOTH", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_WRING, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  973. RegisterAnimation("FISHING", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_FISHING, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  974. RegisterAnimation("CPR", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_CPR, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  975. RegisterAnimation("BANDAGE", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_BANDAGE, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  976. RegisterAnimation("CRAFTING", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_CRAFTING, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  977. RegisterAnimation("INTERACT", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_INTERACT, true, DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT);
  978. RegisterAnimation("FORCE FEED TARGET", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_FORCEFEED, true, DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT);
  979. RegisterAnimation("BANDAGE TARGET", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_BANDAGETARGET, true, DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT);
  980. RegisterAnimation("SPRAY PLANT", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_SPRAYPLANT, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  981. RegisterAnimation("START FIRE", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_STARTFIRE, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  982. RegisterAnimation("ANIMAL SKINNING", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_ANIMALSKINNING, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  983. RegisterAnimation("WASH HANDS WELL", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_WASHHANDSWELL, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  984. RegisterAnimation("WASH HANDS POND", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_WASHHANDSPOND, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  985. RegisterAnimation("SALINE BLOODBAG TARGET", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_SALINEBLOODBAGTARGET, true, DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT);
  986. RegisterAnimation("SALINE BLOOD BAG", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_SALINEBLOODBAG, true, DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT);
  987. RegisterAnimation("STITCH UP SELF", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_STITCHUPSELF, true, DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT);
  988. RegisterAnimation("VOMIT", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_VOMIT, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  989. RegisterAnimation("UNRESTRAINT TARGET", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_UNRESTRAINTARGET, true, DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT);
  990. RegisterAnimation("RESTRAIN TARGET", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_RESTRAINTARGET, true, DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT);
  991. RegisterAnimation("CHECK PULSE", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_CHECKPULSE, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  992. RegisterAnimation("CLEAN WOUNDS TARGET", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_CLEANWOUNDSTARGET, true, DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT);
  993. RegisterAnimation("COLLECT BLOOD SELF", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_COLLECTBLOODSELF, true, DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT);
  994. RegisterAnimation("EMPTY VESSEL", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_EMPTY_VESSEL, true, DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT);
  995. RegisterAnimation("OPEN ITEM", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_OPENITEM, true, DayZPlayerConstants.STANCEMASK_PRONE);
  996. RegisterAnimation("HACK BUSH", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_HACKBUSH, true, DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT);
  997. RegisterAnimation("HACK TREE", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_HACKTREE, true, DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT);
  998. RegisterAnimation("TAKE TEMP SELF", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_TAKETEMPSELF, true, DayZPlayerConstants.STANCEMASK_PRONE);
  999. RegisterAnimation("DIG HOLE", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_DIG, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1000. RegisterAnimation("DIG UP CACHE", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_DIGUPCACHE, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1001. RegisterAnimation("DIG MANIPULATE", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_DIGMANIPULATE, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1002. RegisterAnimation("DEPLOY HEAVY", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_DEPLOY_HEAVY, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1003. RegisterAnimation("DEPLOY 1HD", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_DEPLOY_1HD, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  1004. RegisterAnimation("DEPLOY 2HD", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_DEPLOY_2HD, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  1005. RegisterAnimation("BLOW FIREPLACE", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_BLOWFIREPLACE, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  1006. RegisterAnimation("VIEW MAP", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_VIEWMAP, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1007. RegisterAnimation("VIEW COMPASS", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_VIEWCOMPASS, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1008. RegisterAnimation("FILL BOTTLE POND", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_FILLBOTTLEPOND, true, DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT);
  1009. RegisterAnimation("PLACING HEAVY", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_PLACING_HEAVY, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1010. RegisterAnimation("PLACING 1HD", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_PLACING_1HD, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  1011. RegisterAnimation("PLACING 2HD", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_PLACING_2HD, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  1012. RegisterAnimation("CUT BARK", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_CUTBARK, true, DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT);
  1013. RegisterAnimation("VIEW NOTE", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_VIEWNOTE, true, DayZPlayerConstants.STANCEMASK_PRONE | DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT);
  1014. RegisterAnimation("SEARCH INVENTORY", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_SEARCHINVENTORY, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1015. RegisterAnimation("LOOK OPTICS", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_GESTUREFB_LOOKOPTICS, true, DayZPlayerConstants.STANCEMASK_PRONE | DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT);
  1016. RegisterAnimation("MINE ROCK", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_MINEROCK, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1017. RegisterAnimation("RAISE ITEM", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_RAISEITEM, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1018. RegisterAnimation("RESTRAINED STRUGGLE", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_RESTRAINEDSTRUGGLE, true, DayZPlayerConstants.STANCEMASK_PRONE | DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT);
  1019. RegisterAnimation("RESTRAIN SELF", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_RESTRAINSELF, true, DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT);
  1020. RegisterAnimation("ASSEMBLE", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_ASSEMBLE, true, DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT);
  1021. RegisterAnimation("DISASSEMBLE", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_DISASSEMBLE, true, DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT);
  1022. RegisterAnimation("RAISE FLAG", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_RAISE_FLAG, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1023. RegisterAnimation("LOWER FLAG", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_LOWER_FLAG, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1024. RegisterAnimation("SET ALARM CLOCK", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_SET_ALARM, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1025. RegisterAnimation("SHOVEL DIG", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_SHOVEL_DIG, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  1026. RegisterAnimation("VEHICLE_PUSH", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_VEHICLE_PUSH, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1027. RegisterAnimation("PATCHING_TIRE", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_PATCHING_TIRE, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  1028. RegisterAnimation("PATCHING_DUCTTAPE", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_PATCHING_DUCTTAPE, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  1029. RegisterAnimation("PATCHING_SEWING", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_PATCHING_SEWING, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  1030. RegisterAnimation("PATCHING_LEATHER_SEWING_KIT", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_PATCHING_LEATHER_SEWING_KIT, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  1031. RegisterAnimation("SPLITTING FIREWOOD", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_SPLITTING_FIREWOOD, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  1032. RegisterAnimation("BREAKING STICK", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_BREAKING_STICK, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  1033. RegisterAnimation("CLEANING_WEAPON", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_CLEANING_WEAPON, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  1034. RegisterAnimation("EATING_SNOW", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_EATING_SNOW, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  1035. RegisterAnimation("FILLING_CONTAINER_SNOW", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_FILLING_CONTAINER_SNOW, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  1036. RegisterAnimation("DIGGING_WORMS", TYPE_FB_LOOPING, DayZPlayerConstants.CMD_ACTIONFB_DIGGIN_WORMS, true, DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT);
  1037. //! one time
  1038. RegisterAnimation("PICK UP HANDS", TYPE_FB_ONETIME, DayZPlayerConstants.CMD_ACTIONFB_PICKUP_HANDS, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1039. RegisterAnimation("PICK UP INVENTORY", TYPE_FB_ONETIME, DayZPlayerConstants.CMD_ACTIONFB_PICKUP_INVENTORY, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1040. RegisterAnimation("LICK BATTERY", TYPE_FB_ONETIME, DayZPlayerConstants.CMD_ACTIONFB_LICKBATTERY, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1041. RegisterAnimation("LIGHT FLARE", TYPE_FB_ONETIME, DayZPlayerConstants.CMD_ACTIONFB_LIGHTFLARE, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1042. RegisterAnimation("LITCHEM LIGHT", TYPE_FB_ONETIME, DayZPlayerConstants.CMD_ACTIONFB_LITCHEMLIGHT, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1043. RegisterAnimation("UNPIN GRENAGE", TYPE_FB_ONETIME, DayZPlayerConstants.CMD_ACTIONFB_UNPINGRENAGE, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1044. RegisterAnimation("RADIO ON", TYPE_FB_ONETIME, DayZPlayerConstants.CMD_ACTIONFB_ITEM_ON, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1045. RegisterAnimation("RADIO OFF", TYPE_FB_ONETIME, DayZPlayerConstants.CMD_ACTIONFB_ITEM_OFF, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1046. RegisterAnimation("HANDCUFF TARGET", TYPE_FB_ONETIME, DayZPlayerConstants.CMD_ACTIONFB_HANDCUFFTARGET, true, DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT);
  1047. RegisterAnimation("MORPHINE", TYPE_FB_ONETIME, DayZPlayerConstants.CMD_ACTIONFB_MORPHINE, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  1048. RegisterAnimation("INJECTION", TYPE_FB_ONETIME, DayZPlayerConstants.CMD_ACTIONFB_INJECTION, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  1049. RegisterAnimation("INJECTION TARGET", TYPE_FB_ONETIME, DayZPlayerConstants.CMD_ACTIONFB_INJECTIONTARGET, true, DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT);
  1050. RegisterAnimation("DRINK SIP", TYPE_FB_ONETIME, DayZPlayerConstants.CMD_ACTIONFB_DRINKSIP, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  1051. RegisterAnimation("CLEAN HANDS BOTTLE", TYPE_FB_ONETIME, DayZPlayerConstants.CMD_ACTIONFB_CLEANHANDSBOTTLE, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1052. RegisterAnimation("OPEN ITEM ONCE", TYPE_FB_ONETIME, DayZPlayerConstants.CMD_ACTIONFB_OPENITEM_ONCE, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1053. RegisterAnimation("POKE", TYPE_FB_ONETIME, DayZPlayerConstants.CMD_ACTIONFB_POKE, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  1054. RegisterAnimation("ATTACH SCOPE", TYPE_FB_ONETIME, DayZPlayerConstants.CMD_ACTIONFB_ATTACHSCOPE, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1055. RegisterAnimation("ATTACH BARREL", TYPE_FB_ONETIME, DayZPlayerConstants.CMD_ACTIONFB_ATTACHBARREL, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1056. RegisterAnimation("RESTRAIN", TYPE_FB_ONETIME, DayZPlayerConstants.CMD_ACTIONFB_RESTRAIN, true, DayZPlayerConstants.STANCEMASK_PRONE | DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT);
  1057. RegisterAnimation("PICK UP HEAVY", TYPE_FB_ONETIME, DayZPlayerConstants.CMD_ACTIONFB_PICKUP_HEAVY, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1058. RegisterAnimation("STOP ALARM CLOCK", TYPE_FB_ONETIME, DayZPlayerConstants.CMD_ACTIONFB_STOP_ALARM, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1059. RegisterAnimation("PRESS TRIGGER", TYPE_FB_ONETIME, DayZPlayerConstants.CMD_ACTIONFB_PRESS_TRIGGER, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1060. RegisterAnimation("EAT PILL", TYPE_FB_ONETIME, DayZPlayerConstants.CMD_ACTIONFB_EAT_PILL, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1061. RegisterAnimation("EAT TABLET", TYPE_FB_ONETIME, DayZPlayerConstants.CMD_ACTIONFB_EAT_TABLET, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1062. RegisterAnimation("HEATPACK", TYPE_FB_ONETIME, DayZPlayerConstants.CMD_ACTIONFB_HEATPACK, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1063. //! ---------------------------------------------------------
  1064. //! ---------------------- GESTURES -------------------------
  1065. //! ---------------------------------------------------------
  1066. //! looping
  1067. RegisterAnimation("GREETING", TYPE_MOD_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREMOD_GREETING, false);
  1068. RegisterAnimation("POINT", TYPE_MOD_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREMOD_POINT, false);
  1069. RegisterAnimation("THUMB UP", TYPE_MOD_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREMOD_THUMB, false);
  1070. RegisterAnimation("THUMB DOWN", TYPE_MOD_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREMOD_THUMB, false);
  1071. RegisterAnimation("SILENCE", TYPE_MOD_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREMOD_SILENCE, false);
  1072. RegisterAnimation("TAUNT", TYPE_MOD_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREMOD_TAUNT, false);
  1073. RegisterAnimation("TIME OUT", TYPE_MOD_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREMOD_TIMEOUT, false);
  1074. RegisterAnimation("HEART", TYPE_MOD_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREMOD_HEART, false);
  1075. RegisterAnimation("FACEPALM", TYPE_MOD_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREMOD_FACEPALM, false);
  1076. RegisterAnimation("WATCHING", TYPE_MOD_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREMOD_WATCHING, false);
  1077. RegisterAnimation("HOLD", TYPE_MOD_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREMOD_HOLD, false);
  1078. RegisterAnimation("LISTENING", TYPE_MOD_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREMOD_LISTENING, false);
  1079. RegisterAnimation("POINT AT SELF", TYPE_MOD_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREMOD_POINTSELF, false);
  1080. RegisterAnimation("LOOK AT ME", TYPE_MOD_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREMOD_LOOKATME, false);
  1081. RegisterAnimation("OKAY", TYPE_MOD_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREMOD_OKAY, false);
  1082. RegisterAnimation("RPS", TYPE_MOD_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREMOD_RPS, false);
  1083. //! one time
  1084. RegisterAnimation("THROAT", TYPE_MOD_GESTURE_ONETIME, DayZPlayerConstants.CMD_GESTUREMOD_THROAT, false);
  1085. RegisterAnimation("CLAP", TYPE_MOD_GESTURE_ONETIME, DayZPlayerConstants.CMD_GESTUREMOD_CLAP, false);
  1086. RegisterAnimation("DABBING", TYPE_MOD_GESTURE_ONETIME, DayZPlayerConstants.CMD_GESTUREMOD_DABBING, false);
  1087. RegisterAnimation("MOVE", TYPE_MOD_GESTURE_ONETIME, DayZPlayerConstants.CMD_GESTUREMOD_MOVE, false);
  1088. RegisterAnimation("DOWN", TYPE_MOD_GESTURE_ONETIME, DayZPlayerConstants.CMD_GESTUREMOD_DOWN, false);
  1089. RegisterAnimation("COME", TYPE_MOD_GESTURE_ONETIME, DayZPlayerConstants.CMD_GESTUREMOD_COME, false);
  1090. RegisterAnimation("TAUNT KISS", TYPE_MOD_GESTURE_ONETIME, DayZPlayerConstants.CMD_GESTUREMOD_TAUNTKISS, false);
  1091. RegisterAnimation("TAUNT ELBOW", TYPE_MOD_GESTURE_ONETIME, DayZPlayerConstants.CMD_GESTUREMOD_TAUNTELBOW, false);
  1092. RegisterAnimation("TAUNT THINK", TYPE_MOD_GESTURE_ONETIME, DayZPlayerConstants.CMD_GESTUREMOD_TAUNTTHINK, false);
  1093. RegisterAnimation("NOD HEAD", TYPE_MOD_GESTURE_ONETIME, DayZPlayerConstants.CMD_GESTUREMOD_NODHEAD, false);
  1094. RegisterAnimation("SHAKE HEAD", TYPE_MOD_GESTURE_ONETIME, DayZPlayerConstants.CMD_GESTUREMOD_SHAKEHEAD, false);
  1095. RegisterAnimation("SHRUG", TYPE_MOD_GESTURE_ONETIME, DayZPlayerConstants.CMD_GESTUREMOD_SHRUG, false);
  1096. RegisterAnimation("SURRENDER", TYPE_MOD_GESTURE_ONETIME, DayZPlayerConstants.CMD_GESTUREMOD_SURRENDER, false);
  1097. //! fullbody looping
  1098. RegisterAnimation("GREETING", TYPE_FB_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREFB_GREETING, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1099. RegisterAnimation("POINT", TYPE_FB_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREFB_POINT, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1100. RegisterAnimation("THUMBUP", TYPE_FB_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREFB_THUMB, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1101. RegisterAnimation("THUMBDOWN", TYPE_FB_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREFB_THUMB, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1102. RegisterAnimation("SILENCE", TYPE_FB_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREFB_SILENCE, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1103. RegisterAnimation("TAUNT", TYPE_FB_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREFB_TAUNT, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1104. RegisterAnimation("TIMEOUT", TYPE_FB_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREFB_TIMEOUT, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1105. RegisterAnimation("HEART", TYPE_FB_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREFB_HEART, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1106. RegisterAnimation("WATCHING", TYPE_FB_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREFB_WATCHING, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1107. RegisterAnimation("HOLD", TYPE_FB_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREFB_HOLD, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1108. RegisterAnimation("LISTENING", TYPE_FB_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREFB_LISTENING, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1109. RegisterAnimation("POINTSELF", TYPE_FB_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREFB_POINTSELF, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1110. RegisterAnimation("LOOKATME", TYPE_FB_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREFB_LOOKATME, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1111. RegisterAnimation("OKAY", TYPE_FB_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREFB_OKAY, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1112. RegisterAnimation("SALUTE", TYPE_FB_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREFB_SALUTE, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1113. RegisterAnimation("CAMPFIRE", TYPE_FB_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREFB_CAMPFIRE, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  1114. RegisterAnimation("LYINGDOWN", TYPE_FB_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREFB_LYINGDOWN, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  1115. RegisterAnimation("SOS", TYPE_FB_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREFB_SOS, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1116. RegisterAnimation("SITA", TYPE_FB_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREFB_SITA, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  1117. RegisterAnimation("SITB", TYPE_FB_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREFB_SITB, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  1118. RegisterAnimation("DABBING", TYPE_FB_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREFB_DABBING, true, DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_ERECT);
  1119. RegisterAnimation("SURRENDER", TYPE_FB_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREFB_SURRENDER, true, DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_PRONE);
  1120. RegisterAnimation("KNEEL", TYPE_FB_GESTURE_LOOPING, DayZPlayerConstants.CMD_GESTUREFB_KNEEL, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  1121. RegisterAnimation("TRAILER WAKE UP", TYPE_FB_GESTURE_LOOPING, DayZPlayerConstants.CMD_TRAILER_WAKE_UP, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1122. RegisterAnimation("TRAILER DEAD BODY", TYPE_FB_GESTURE_LOOPING, DayZPlayerConstants.CMD_TRAILER_DEAD_BODY, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1123. RegisterAnimation("TRAILER WALKIE TALKIE", TYPE_FB_GESTURE_LOOPING, DayZPlayerConstants.CMD_TRAILER_WALKIE_TALKIE, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1124. RegisterAnimation("TRAILER WOUNDED", TYPE_FB_GESTURE_LOOPING, DayZPlayerConstants.CMD_TRAILER_WOUNDED, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1125. RegisterAnimation("TRAILER WALK AWAY", TYPE_FB_GESTURE_LOOPING, DayZPlayerConstants.CMD_TRAILER_WALK_AWAY, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1126. RegisterAnimation("TRAILER DEAD DEAD", TYPE_FB_GESTURE_LOOPING, DayZPlayerConstants.CMD_TRAILER_DEAD, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1127. //! fullbody one time
  1128. RegisterAnimation("THROAT", TYPE_FB_GESTURE_ONETIME, DayZPlayerConstants.CMD_GESTUREFB_THROAT, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1129. RegisterAnimation("MOVE", TYPE_FB_GESTURE_ONETIME, DayZPlayerConstants.CMD_GESTUREFB_MOVE, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1130. RegisterAnimation("DOWN", TYPE_FB_GESTURE_ONETIME, DayZPlayerConstants.CMD_GESTUREFB_DOWN, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1131. RegisterAnimation("COME", TYPE_FB_GESTURE_ONETIME, DayZPlayerConstants.CMD_GESTUREFB_COME, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1132. RegisterAnimation("TAUNT KISS", TYPE_FB_GESTURE_ONETIME, DayZPlayerConstants.CMD_GESTUREFB_TAUNTKISS, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1133. RegisterAnimation("TAUNT THINK", TYPE_FB_GESTURE_ONETIME, DayZPlayerConstants.CMD_GESTUREFB_TAUNTTHINK, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1134. RegisterAnimation("DANCE", TYPE_FB_GESTURE_ONETIME, DayZPlayerConstants.CMD_GESTUREFB_DANCE, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1135. RegisterAnimation("NOD HEAD", TYPE_FB_GESTURE_ONETIME, DayZPlayerConstants.CMD_GESTUREFB_NODHEAD, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1136. RegisterAnimation("SHAKE HEAD", TYPE_FB_GESTURE_ONETIME, DayZPlayerConstants.CMD_GESTUREFB_SHAKEHEAD, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1137. RegisterAnimation("SHRUG", TYPE_FB_GESTURE_ONETIME, DayZPlayerConstants.CMD_GESTUREFB_SHRUG, true, DayZPlayerConstants.STANCEMASK_PRONE);
  1138. RegisterAnimation("SURRENDER", TYPE_FB_GESTURE_ONETIME, DayZPlayerConstants.CMD_GESTUREFB_SURRENDER, true, DayZPlayerConstants.STANCEMASK_CROUCH | DayZPlayerConstants.STANCEMASK_PRONE);
  1139. RegisterAnimation("TRAILER MASK", TYPE_FB_GESTURE_ONETIME, DayZPlayerConstants.CMD_TRAILER_MASK, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1140. RegisterAnimation("TRAILER MASK_02", TYPE_FB_GESTURE_ONETIME, DayZPlayerConstants.CMD_TRAILER_MASK_02, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1141. RegisterAnimation("TRAILER MASK_CHAINS", TYPE_FB_GESTURE_ONETIME, DayZPlayerConstants.CMD_TRAILER_MASK_CHAINS, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1142. RegisterAnimation("TRAILER MASK_DALLAS", TYPE_FB_GESTURE_ONETIME, DayZPlayerConstants.CMD_TRAILER_MASK_DALLAS, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1143. RegisterAnimation("TRAILER MASK_HOXTON", TYPE_FB_GESTURE_ONETIME, DayZPlayerConstants.CMD_TRAILER_MASK_HOXTON, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1144. RegisterAnimation("TRAILER MASK_WOLF", TYPE_FB_GESTURE_ONETIME, DayZPlayerConstants.CMD_TRAILER_MASK_WOLF, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1145. //! ---------------------------------------------------------
  1146. //! ---------------------- SUICIDE --------------------------
  1147. //! ---------------------------------------------------------
  1148. //! fullbody looping
  1149. RegisterAnimation("1HD", TYPE_FB_SUICIDE_LOOPING, DayZPlayerConstants.CMD_SUICIDEFB_1HD, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  1150. RegisterAnimation("FIREAXE", TYPE_FB_SUICIDE_LOOPING, DayZPlayerConstants.CMD_SUICIDEFB_FIREAXE, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1151. RegisterAnimation("PITCHFORK", TYPE_FB_SUICIDE_LOOPING, DayZPlayerConstants.CMD_SUICIDEFB_PITCHFORK, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1152. RegisterAnimation("PISTOL", TYPE_FB_SUICIDE_LOOPING, DayZPlayerConstants.CMD_SUICIDEFB_PISTOL, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  1153. RegisterAnimation("RIFLE", TYPE_FB_SUICIDE_LOOPING, DayZPlayerConstants.CMD_SUICIDEFB_RIFLE, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  1154. RegisterAnimation("SWORD", TYPE_FB_SUICIDE_LOOPING, DayZPlayerConstants.CMD_SUICIDEFB_SWORD, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1155. RegisterAnimation("UNARMED", TYPE_FB_SUICIDE_LOOPING, DayZPlayerConstants.CMD_SUICIDEFB_UNARMED, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  1156. RegisterAnimation("WOODAXE", TYPE_FB_SUICIDE_LOOPING, DayZPlayerConstants.CMD_SUICIDEFB_WOODAXE, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1157. RegisterAnimation("SPEAR", TYPE_FB_SUICIDE_LOOPING, DayZPlayerConstants.CMD_SUICIDEFB_SPEAR, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1158. RegisterAnimation("SICKLE", TYPE_FB_SUICIDE_LOOPING, DayZPlayerConstants.CMD_SUICIDEFB_SICKLE, true, DayZPlayerConstants.STANCEMASK_CROUCH);
  1159. RegisterAnimation("HOE", TYPE_FB_SUICIDE_LOOPING, DayZPlayerConstants.CMD_SUICIDEFB_HOE, true, DayZPlayerConstants.STANCEMASK_ERECT);
  1160. }
  1161. }