Actions.c
/**@class WeaponActionBase
* @brief represents action executed on transition just between OnExit from old state and OnEntry to new state
**/
class WeaponActionBase
{
/**@fn Action
* @brief executed when transition occurs
**/
void Action (WeaponEventBase e) { }
};
// FSM Actions /////////////////////////////////////////////////////////////////////////////////////////////////////////
// fire
class WeaponActionDryFire extends WeaponActionBase
{
protected Weapon_Base m_weapon;
void WeaponActionDryFire (Weapon_Base w = NULL) { m_weapon = w; }
override void Action (WeaponEventBase e)
{
Print("[wpnfsm] " + Object.GetDebugName(m_weapon) + " action=dry fire");
int mi = m_weapon.GetCurrentMuzzle();
m_weapon.DryFire(mi);
}
};
class WeaponActionDryDryFire extends WeaponActionBase
{
protected Weapon_Base m_weapon;
void WeaponActionDryDryFire (Weapon_Base w = NULL) { m_weapon = w; }
override void Action (WeaponEventBase e)
{
Print("[wpnfsm] " + Object.GetDebugName(m_weapon) + " action=dry dry fire");
int mi = m_weapon.GetCurrentMuzzle();
m_weapon.DryDryFire(mi);
}
};