plugindayzplayerdebug_ctrl.c 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. // *************************************************************************************
  2. // ! PluginDayzPlayerDebug_Ctrl
  3. // *************************************************************************************
  4. class PluginDayzPlayerDebug_Ctrl
  5. {
  6. Widget m_MainWnd;
  7. XComboBoxWidget m_ForceStance;
  8. EditBoxWidget m_MovSpeedEB;
  9. EditBoxWidget m_MovDirEB;
  10. CheckBoxWidget m_MovOverrideCheckbox;
  11. //
  12. int m_ApplyStanceChange;
  13. bool m_OverrideMovementChange = false;
  14. //---------------------------------------------------
  15. // gui stuff
  16. void PluginDayzPlayerDebug_Ctrl(Widget pMainWnd)
  17. {
  18. m_MainWnd = pMainWnd;
  19. m_ApplyStanceChange = -2;
  20. CreateModuleWidgets();
  21. }
  22. void ~PluginDayzPlayerDebug_Ctrl()
  23. {
  24. DestroyModuleWidgets();
  25. }
  26. void CreateModuleWidgets()
  27. {
  28. m_ForceStance = XComboBoxWidget.Cast( m_MainWnd.FindAnyWidget("StanceV") );
  29. m_MovSpeedEB = EditBoxWidget.Cast( m_MainWnd.FindAnyWidget("MovSpeedEB") );
  30. m_MovDirEB = EditBoxWidget.Cast( m_MainWnd.FindAnyWidget("MovDirEB") );
  31. m_MovOverrideCheckbox = CheckBoxWidget.Cast( m_MainWnd.FindAnyWidget("OverrideMovCheckBox") );
  32. }
  33. void DestroyModuleWidgets()
  34. {
  35. }
  36. //---------------------------------------------------
  37. // main update
  38. /* void Tick()
  39. {
  40. DayZPlayer player = DayZPlayer.Cast( GetGame().GetPlayer() );
  41. if (!player)
  42. {
  43. return;
  44. }
  45. if (player)
  46. {
  47. }
  48. } */
  49. //---------------------------------------------------
  50. // window ui clicks
  51. //! buttons clicks
  52. bool OnClick(Widget w, int x, int y, int button)
  53. {
  54. if (w == m_ForceStance)
  55. {
  56. Print("Stance changed");
  57. m_ApplyStanceChange = m_ForceStance.GetCurrentItem() - 1;
  58. return true;
  59. }
  60. else if (w == m_MovOverrideCheckbox)
  61. {
  62. Print("Movement override");
  63. m_OverrideMovementChange = true;
  64. }
  65. return false;
  66. }
  67. bool OnChange(Widget w, int x, int y, bool finished)
  68. {
  69. if( w == m_MovSpeedEB || w == m_MovDirEB )
  70. {
  71. Print("Movement override");
  72. m_OverrideMovementChange = true;
  73. return true;
  74. }
  75. return false;
  76. }
  77. //---------------------------------------------------
  78. // Global handler to handle commands from player
  79. void CommandHandler()
  80. {
  81. if (m_ApplyStanceChange != -2)
  82. {
  83. DayZPlayer player = DayZPlayer.Cast( GetGame().GetPlayer() );
  84. if (!player)
  85. {
  86. return;
  87. }
  88. HumanCommandMove cm = player.GetCommand_Move();
  89. if (cm)
  90. {
  91. cm.ForceStance(m_ApplyStanceChange);
  92. m_ApplyStanceChange = -2;
  93. }
  94. }
  95. if (m_OverrideMovementChange)
  96. {
  97. m_OverrideMovementChange = false;
  98. player = DayZPlayer.Cast( GetGame().GetPlayer() );
  99. if (!player)
  100. return;
  101. float speed = m_MovSpeedEB.GetText().ToFloat();
  102. float dir = m_MovDirEB.GetText().ToFloat();
  103. player.GetInputController().OverrideMovementSpeed(m_MovOverrideCheckbox.IsChecked(), speed);
  104. player.GetInputController().OverrideMovementAngle(m_MovOverrideCheckbox.IsChecked(), dir);
  105. }
  106. }
  107. }