actions.c 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. /**@class WeaponActionBase
  2. * @brief represents action executed on transition just between OnExit from old state and OnEntry to new state
  3. **/
  4. class WeaponActionBase
  5. {
  6. /**@fn Action
  7. * @brief executed when transition occurs
  8. **/
  9. void Action (WeaponEventBase e) { }
  10. };
  11. // FSM Actions /////////////////////////////////////////////////////////////////////////////////////////////////////////
  12. // fire
  13. class WeaponActionDryFire extends WeaponActionBase
  14. {
  15. protected Weapon_Base m_weapon;
  16. void WeaponActionDryFire (Weapon_Base w = NULL) { m_weapon = w; }
  17. override void Action (WeaponEventBase e)
  18. {
  19. Print("[wpnfsm] " + Object.GetDebugName(m_weapon) + " action=dry fire");
  20. int mi = m_weapon.GetCurrentMuzzle();
  21. m_weapon.DryFire(mi);
  22. }
  23. };
  24. class WeaponActionDryDryFire extends WeaponActionBase
  25. {
  26. protected Weapon_Base m_weapon;
  27. void WeaponActionDryDryFire (Weapon_Base w = NULL) { m_weapon = w; }
  28. override void Action (WeaponEventBase e)
  29. {
  30. Print("[wpnfsm] " + Object.GetDebugName(m_weapon) + " action=dry dry fire");
  31. int mi = m_weapon.GetCurrentMuzzle();
  32. m_weapon.DryDryFire(mi);
  33. }
  34. };