mirror of
https://github.com/UberGames/EF2GameSource.git
synced 2024-11-10 06:31:42 +00:00
367 lines
8.9 KiB
C++
367 lines
8.9 KiB
C++
//-----------------------------------------------------------------------------
|
|
//
|
|
// $Logfile:: /EF2/Code/DLLs/game/changePosture.cpp $
|
|
// $Revision:: 3 $
|
|
// $Author:: Singlis $
|
|
// $Date:: 9/26/03 2:36p $
|
|
//
|
|
// Copyright (C) 2002 by Ritual Entertainment, Inc.
|
|
// All rights reserved.
|
|
//
|
|
// This source may not be distributed and/or modified without
|
|
// expressly written permission by Ritual Entertainment, Inc.
|
|
//
|
|
//
|
|
// DESCRIPTION:
|
|
// changePosture Implementation
|
|
//
|
|
// PARAMETERS:
|
|
//
|
|
//
|
|
// ANIMATIONS:
|
|
//
|
|
//--------------------------------------------------------------------------------
|
|
|
|
#include "actor.h"
|
|
#include "changePosture.hpp"
|
|
|
|
//--------------------------------------------------------------
|
|
//
|
|
// Class Declaration and Event Registration
|
|
//
|
|
//--------------------------------------------------------------
|
|
CLASS_DECLARATION( Behavior, ChangePosture, NULL )
|
|
{
|
|
{ &EV_Behavior_Args, &ChangePosture::SetArgs},
|
|
{ &EV_PostureChanged_Completed, &ChangePosture::PostureDone },
|
|
{ NULL, NULL }
|
|
};
|
|
|
|
|
|
//--------------------------------------------------------------
|
|
// Name: ChangePosture()
|
|
// Class: ChangePosture
|
|
//
|
|
// Description: Constructor
|
|
//
|
|
// Parameters: None
|
|
//
|
|
// Returns: None
|
|
//--------------------------------------------------------------
|
|
ChangePosture::ChangePosture()
|
|
{
|
|
_posture = "";
|
|
}
|
|
|
|
//--------------------------------------------------------------
|
|
// Name: ~ChangePosture()
|
|
// Class: ChangePosture
|
|
//
|
|
// Description: Destructor
|
|
//
|
|
// Parameters: None
|
|
//
|
|
// Returns: None
|
|
//--------------------------------------------------------------
|
|
ChangePosture::~ChangePosture()
|
|
{
|
|
}
|
|
|
|
|
|
//--------------------------------------------------------------
|
|
//
|
|
// Name: SetArgs()
|
|
// Class: ChangePosture
|
|
//
|
|
// Description:
|
|
//
|
|
// Parameters: Event *ev -- Event containing the string
|
|
//
|
|
// Returns: None
|
|
//
|
|
//--------------------------------------------------------------
|
|
void ChangePosture::SetArgs( Event *ev )
|
|
{
|
|
_posture = ev->GetString( 1 );
|
|
}
|
|
|
|
void ChangePosture::PostureDone( Event *ev )
|
|
{
|
|
_postureDone = true;
|
|
}
|
|
|
|
//--------------------------------------------------------------
|
|
//
|
|
// Name: Begin()
|
|
// Class: ChangePosture
|
|
//
|
|
// Description: Initializes the behavior
|
|
//
|
|
// Parameters: Actor &self -- The actor executing this behavior
|
|
//
|
|
// Returns: None
|
|
//
|
|
//--------------------------------------------------------------
|
|
void ChangePosture::Begin( Actor &self )
|
|
{
|
|
init();
|
|
}
|
|
|
|
|
|
|
|
//--------------------------------------------------------------
|
|
//
|
|
// Name: Evaluate()
|
|
// Class: ChangePosture
|
|
//
|
|
// Description: Update for this behavior -- called every server frame
|
|
//
|
|
// Parameters: Actor &self -- Actor executing this behavior
|
|
//
|
|
// Returns: BehaviorReturnCode_t
|
|
//
|
|
//--------------------------------------------------------------
|
|
BehaviorReturnCode_t ChangePosture::Evaluate( Actor &self )
|
|
{
|
|
|
|
BehaviorReturnCode_t stateResult;
|
|
|
|
|
|
think();
|
|
|
|
switch ( _state )
|
|
{
|
|
|
|
//---------------------------------------------------------------------
|
|
case CHANGE_POSTURE_SETUP:
|
|
//---------------------------------------------------------------------
|
|
stateResult = evaluateStateSetup();
|
|
if ( stateResult == BEHAVIOR_FAILED )
|
|
transitionToState( CHANGE_POSTURE_FAILED );
|
|
|
|
if ( stateResult == BEHAVIOR_SUCCESS )
|
|
transitionToState( CHANGE_POSTURE_CHANGE );
|
|
break;
|
|
|
|
//---------------------------------------------------------------------
|
|
case CHANGE_POSTURE_CHANGE:
|
|
//---------------------------------------------------------------------
|
|
stateResult = evaluateStateChange();
|
|
if ( stateResult == BEHAVIOR_FAILED )
|
|
transitionToState( CHANGE_POSTURE_FAILED );
|
|
|
|
if ( stateResult == BEHAVIOR_SUCCESS )
|
|
transitionToState( CHANGE_POSTURE_SUCCESS );
|
|
break;
|
|
|
|
//---------------------------------------------------------------------
|
|
case CHANGE_POSTURE_SUCCESS:
|
|
//---------------------------------------------------------------------
|
|
return BEHAVIOR_SUCCESS;
|
|
break;
|
|
|
|
//---------------------------------------------------------------------
|
|
case CHANGE_POSTURE_FAILED:
|
|
//---------------------------------------------------------------------
|
|
return BEHAVIOR_FAILED;
|
|
break;
|
|
}
|
|
|
|
return BEHAVIOR_EVALUATING;
|
|
}
|
|
|
|
|
|
|
|
//--------------------------------------------------------------
|
|
//
|
|
// Name: End()
|
|
// Class: ChangePosture
|
|
//
|
|
// Description: Ends this behavior -- cleans things up
|
|
//
|
|
// Parameters: Actor &self -- Actor executing this behavior
|
|
//
|
|
// Returns: None
|
|
//
|
|
//--------------------------------------------------------------
|
|
void ChangePosture::End(Actor &self)
|
|
{
|
|
}
|
|
|
|
|
|
//--------------------------------------------------------------
|
|
// Name: transitionToState()
|
|
// Class: ChangePosture
|
|
//
|
|
// Description: Transitions the behaviors state
|
|
//
|
|
// Parameters: coverCombatStates_t state -- The state to transition to
|
|
//
|
|
// Returns: None
|
|
//--------------------------------------------------------------
|
|
void ChangePosture::transitionToState( changePostureStates_t state )
|
|
{
|
|
switch( state )
|
|
{
|
|
case CHANGE_POSTURE_SETUP:
|
|
setupStateSetup();
|
|
setInternalState( state , "CHANGE_POSTURE_SETUP" );
|
|
break;
|
|
|
|
case CHANGE_POSTURE_CHANGE:
|
|
setupStateChange();
|
|
setInternalState( state , "CHANGE_POSTURE_CHANGE" );
|
|
break;
|
|
|
|
case CHANGE_POSTURE_SUCCESS:
|
|
setInternalState( state , "CHANGE_POSTURE_SUCCESS" );
|
|
break;
|
|
|
|
case CHANGE_POSTURE_FAILED:
|
|
setInternalState( state , "CHANGE_POSTURE_FAILED" );
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
//--------------------------------------------------------------
|
|
// Name: setInternalState()
|
|
// Class: ChangePosture
|
|
//
|
|
// Description: Sets the internal state of the behavior
|
|
//
|
|
// Parameters: unsigned int state
|
|
// const str &stateName
|
|
//
|
|
// Returns: None
|
|
//--------------------------------------------------------------
|
|
void ChangePosture::setInternalState( changePostureStates_t state , const str &stateName )
|
|
{
|
|
_state = state;
|
|
SetInternalStateName( stateName );
|
|
}
|
|
|
|
//--------------------------------------------------------------
|
|
// Name: init()
|
|
// Class: ChangePosture
|
|
//
|
|
// Description: Initializes the behavior
|
|
//
|
|
// Parameters: Actor &self
|
|
//
|
|
// Returns: None
|
|
//--------------------------------------------------------------
|
|
void ChangePosture::init()
|
|
{
|
|
transitionToState(CHANGE_POSTURE_SETUP);
|
|
_canChange = true;
|
|
_postureDone = false;
|
|
}
|
|
|
|
//--------------------------------------------------------------
|
|
// Name: think()
|
|
// Class: ChangePosture
|
|
//
|
|
// Description: Does any processing required before evaluating states
|
|
//
|
|
// Parameters: None
|
|
//
|
|
// Returns: None
|
|
//--------------------------------------------------------------
|
|
void ChangePosture::think()
|
|
{
|
|
}
|
|
|
|
|
|
//--------------------------------------------------------------
|
|
// Name: setupStateSetup()
|
|
// Class: ChangePosture
|
|
//
|
|
// Description: Sets up State
|
|
//
|
|
// Parameters: None
|
|
//
|
|
// Returns: None
|
|
//--------------------------------------------------------------
|
|
void ChangePosture::setupStateSetup()
|
|
{
|
|
_canChange = GetSelf()->postureController->requestPosture( _posture , this );
|
|
}
|
|
|
|
//--------------------------------------------------------------
|
|
// Name: evaluateStateSetup()
|
|
// Class: ChangePosture
|
|
//
|
|
// Description: Evaluates State
|
|
//
|
|
// Parameters: None
|
|
//
|
|
// Returns: BehaviorReturnCode_t
|
|
//--------------------------------------------------------------
|
|
BehaviorReturnCode_t ChangePosture::evaluateStateSetup()
|
|
{
|
|
if ( !_canChange )
|
|
return BEHAVIOR_FAILED;
|
|
|
|
return BEHAVIOR_SUCCESS;
|
|
}
|
|
|
|
//--------------------------------------------------------------
|
|
// Name: failureStateSetup()
|
|
// Class: ChangePosture
|
|
//
|
|
// Description: Failure Handler for State
|
|
//
|
|
// Parameters: const str &failureReason
|
|
//
|
|
// Returns: None
|
|
//--------------------------------------------------------------
|
|
void ChangePosture::failureStateSetup( const str& failureReason )
|
|
{
|
|
}
|
|
|
|
//--------------------------------------------------------------
|
|
// Name: setupStateChange()
|
|
// Class: ChangePosture
|
|
//
|
|
// Description: Sets up State
|
|
//
|
|
// Parameters: None
|
|
//
|
|
// Returns: None
|
|
//--------------------------------------------------------------
|
|
void ChangePosture::setupStateChange()
|
|
{
|
|
}
|
|
|
|
//--------------------------------------------------------------
|
|
// Name: evaluateStateChange()
|
|
// Class: ChangePosture
|
|
//
|
|
// Description: Evaluates State
|
|
//
|
|
// Parameters: None
|
|
//
|
|
// Returns: BehaviorReturnCode_t
|
|
//--------------------------------------------------------------
|
|
BehaviorReturnCode_t ChangePosture::evaluateStateChange()
|
|
{
|
|
if ( _postureDone )
|
|
return BEHAVIOR_SUCCESS;
|
|
|
|
return BEHAVIOR_EVALUATING;
|
|
}
|
|
|
|
//--------------------------------------------------------------
|
|
// Name: failureStateChange()
|
|
// Class: ChangePosture
|
|
//
|
|
// Description: Failure Handler for State
|
|
//
|
|
// Parameters: const str &failureReason
|
|
//
|
|
// Returns: None
|
|
//--------------------------------------------------------------
|
|
void ChangePosture::failureStateChange( const str& failureReason )
|
|
{
|
|
}
|