This commit is contained in:
Walter Julius Hennecke 2014-03-09 23:04:25 +01:00
parent bc0aecbafd
commit 5477f6b6b8
1 changed files with 188 additions and 199 deletions

View File

@ -40,14 +40,12 @@ class TorsoAimAndFireWeapon;
// //
// Method of Use: Called From State Machine // Method of Use: Called From State Machine
//-------------------------------------------------------------- //--------------------------------------------------------------
class TorsoAimAndFireWeapon : public Behavior class TorsoAimAndFireWeapon : public Behavior {
{ public:
//------------------------------------ //------------------------------------
// States // States
//------------------------------------ //------------------------------------
public: typedef enum {
typedef enum
{
TORSO_AIM_AND_FIRE_AIM, TORSO_AIM_AND_FIRE_AIM,
TORSO_AIM_AND_FIRE_PRE_FIRE, TORSO_AIM_AND_FIRE_PRE_FIRE,
TORSO_AIM_AND_FIRE_ATTACK, TORSO_AIM_AND_FIRE_ATTACK,
@ -56,26 +54,28 @@ class TorsoAimAndFireWeapon : public Behavior
TORSO_AIM_AND_FIRE_FAILED TORSO_AIM_AND_FIRE_FAILED
} TorsoAimAndFireStates_t; } TorsoAimAndFireStates_t;
//------------------------------------ //-------------------------------------
// Parameters // Public Interface
//------------------------------------ //-------------------------------------
private: CLASS_PROTOTYPE(TorsoAimAndFireWeapon);
float _aimTimeMin;
float _aimTimeMax;
float _fireTimeMin;
float _fireTimeMax;
bool _forceAttack;
float _maxTorsoYaw;
float _maxTorsoPitch;
float _maxTorsoTurnSpeed;
int _shots;
bool _aimOnly;
bool _repeat;
TorsoAimAndFireWeapon();
~TorsoAimAndFireWeapon();
void SetArgs(Event* ev);
void AnimDone(Event* ev);
void Begin(Actor& self);
BehaviorReturnCode_t Evaluate(Actor& self);
void End(Actor& self);
// Accessors
virtual void Archive(Archiver& arc);
protected:
//------------------------------------- //-------------------------------------
// Internal Functionality // Internal Functionality
//------------------------------------- //-------------------------------------
protected:
void transitionToState(TorsoAimAndFireStates_t state); void transitionToState(TorsoAimAndFireStates_t state);
void setInternalState(TorsoAimAndFireStates_t state, const str& stateName); void setInternalState(TorsoAimAndFireStates_t state, const str& stateName);
void init(Actor &self); void init(Actor &self);
@ -100,37 +100,30 @@ class TorsoAimAndFireWeapon : public Behavior
BehaviorReturnCode_t evaluateStatePostFire(); BehaviorReturnCode_t evaluateStatePostFire();
void failureStatePostFire(const str& failureReason); void failureStatePostFire(const str& failureReason);
private:
//------------------------------------
//------------------------------------- // Parameters
// Public Interface //------------------------------------
//------------------------------------- float _aimTimeMin;
public: float _aimTimeMax;
CLASS_PROTOTYPE( TorsoAimAndFireWeapon ); float _fireTimeMin;
float _fireTimeMax;
TorsoAimAndFireWeapon(); bool _forceAttack;
~TorsoAimAndFireWeapon(); float _maxTorsoYaw;
float _maxTorsoPitch;
void SetArgs ( Event *ev ); float _maxTorsoTurnSpeed;
void AnimDone ( Event *ev ); int _shots;
bool _aimOnly;
void Begin ( Actor &self ); bool _repeat;
BehaviorReturnCode_t Evaluate ( Actor &self );
void End ( Actor &self );
// Accessors
virtual void Archive ( Archiver &arc );
//------------------------------------- //-------------------------------------
// Components // Components
//------------------------------------- //-------------------------------------
private:
FireWeapon _fireWeapon; FireWeapon _fireWeapon;
//------------------------------------- //-------------------------------------
// Member Variables // Member Variables
//------------------------------------- //-------------------------------------
private:
TorsoAimAndFireStates_t _state; TorsoAimAndFireStates_t _state;
Vector _currentTorsoAngles; Vector _currentTorsoAngles;
float _endFireTime; float _endFireTime;
@ -145,12 +138,9 @@ class TorsoAimAndFireWeapon : public Behavior
bool _fireFailed; bool _fireFailed;
bool _endOnAimFail; bool _endOnAimFail;
Actor* _self; Actor* _self;
}; };
inline void TorsoAimAndFireWeapon::Archive( Archiver &arc ) inline void TorsoAimAndFireWeapon::Archive(Archiver& arc) {
{
Behavior::Archive(arc); Behavior::Archive(arc);
// //
@ -196,4 +186,3 @@ inline void TorsoAimAndFireWeapon::Archive( Archiver &arc )
#endif /* __TORSO_AIM_AND_FIRE_WEAPON___ */ #endif /* __TORSO_AIM_AND_FIRE_WEAPON___ */