VHumanoidAnimationStates.cpp
Engine/source/Verve/VActor/Humanoid/VHumanoidAnimationStates.cpp
Public Functions
ExecuteActorAnimationState(HumanoidIdle )
ExecuteActorAnimationState(HumanoidRunBackward )
ExecuteActorAnimationState(HumanoidRunForward )
ExecuteActorAnimationState(HumanoidSwimBackward )
ExecuteActorAnimationState(HumanoidSwimForward )
ExecuteActorAnimationState(HumanoidSwimIdle )
ExecuteActorAnimationState(HumanoidWalkBackward )
ExecuteActorAnimationState(HumanoidWalkForward )
ImplementActorAnimationState(HumanoidIdle , VHumanoidActorData::k_IdleAnimation )
ImplementActorAnimationState(HumanoidRunBackward , VHumanoidActorData::k_RunBackwardAnimation )
ImplementActorAnimationState(HumanoidRunForward , VHumanoidActorData::k_RunForwardAnimation )
ImplementActorAnimationState(HumanoidSwimBackward , VHumanoidActorData::k_SwimBackwardAnimation )
ImplementActorAnimationState(HumanoidSwimForward , VHumanoidActorData::k_SwimForwardAnimation )
ImplementActorAnimationState(HumanoidSwimIdle , VHumanoidActorData::k_SwimIdleAnimation )
ImplementActorAnimationState(HumanoidWalkBackward , VHumanoidActorData::k_WalkBackwardAnimation )
ImplementActorAnimationState(HumanoidWalkForward , VHumanoidActorData::k_WalkForwardAnimation )
Detailed Description
Public Functions
ExecuteActorAnimationState(HumanoidIdle )
ExecuteActorAnimationState(HumanoidRunBackward )
ExecuteActorAnimationState(HumanoidRunForward )
ExecuteActorAnimationState(HumanoidSwimBackward )
ExecuteActorAnimationState(HumanoidSwimForward )
ExecuteActorAnimationState(HumanoidSwimIdle )
ExecuteActorAnimationState(HumanoidWalkBackward )
ExecuteActorAnimationState(HumanoidWalkForward )
ImplementActorAnimationState(HumanoidIdle , VHumanoidActorData::k_IdleAnimation )
ImplementActorAnimationState(HumanoidRunBackward , VHumanoidActorData::k_RunBackwardAnimation )
ImplementActorAnimationState(HumanoidRunForward , VHumanoidActorData::k_RunForwardAnimation )
ImplementActorAnimationState(HumanoidSwimBackward , VHumanoidActorData::k_SwimBackwardAnimation )
ImplementActorAnimationState(HumanoidSwimForward , VHumanoidActorData::k_SwimForwardAnimation )
ImplementActorAnimationState(HumanoidSwimIdle , VHumanoidActorData::k_SwimIdleAnimation )
ImplementActorAnimationState(HumanoidWalkBackward , VHumanoidActorData::k_WalkBackwardAnimation )
ImplementActorAnimationState(HumanoidWalkForward , VHumanoidActorData::k_WalkForwardAnimation )
1 2//----------------------------------------------------------------------------- 3// Verve 4// Copyright (C) 2014 - Violent Tulip 5// 6// Permission is hereby granted, free of charge, to any person obtaining a copy 7// of this software and associated documentation files (the "Software"), to 8// deal in the Software without restriction, including without limitation the 9// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 10// sell copies of the Software, and to permit persons to whom the Software is 11// furnished to do so, subject to the following conditions: 12// 13// The above copyright notice and this permission notice shall be included in 14// all copies or substantial portions of the Software. 15// 16// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 22// IN THE SOFTWARE. 23//----------------------------------------------------------------------------- 24#include "VHumanoidAnimationStates.h" 25#include "VHumanoidActor.h" 26 27#include "../VActorAnimationController.h" 28#include "../VActorPhysicsController.h" 29 30//----------------------------------------------------------------------------- 31// 32// Implement Animation States. 33// 34//----------------------------------------------------------------------------- 35 36ImplementActorAnimationState( HumanoidIdle, VHumanoidActorData::k_IdleAnimation ); 37 38ImplementActorAnimationState( HumanoidWalkForward, VHumanoidActorData::k_WalkForwardAnimation ); 39ImplementActorAnimationState( HumanoidWalkBackward, VHumanoidActorData::k_WalkBackwardAnimation ); 40 41ImplementActorAnimationState( HumanoidRunForward, VHumanoidActorData::k_RunForwardAnimation ); 42ImplementActorAnimationState( HumanoidRunBackward, VHumanoidActorData::k_RunBackwardAnimation ); 43 44ImplementActorAnimationState( HumanoidSwimIdle, VHumanoidActorData::k_SwimIdleAnimation ); 45ImplementActorAnimationState( HumanoidSwimForward, VHumanoidActorData::k_SwimForwardAnimation ); 46ImplementActorAnimationState( HumanoidSwimBackward, VHumanoidActorData::k_SwimBackwardAnimation ); 47 48 49 50 51//----------------------------------------------------------------------------- 52// 53// Execute Animation States. 54// 55//----------------------------------------------------------------------------- 56 57//----------------------------------------------------------------------------- 58// 59// OnGround Animation States 60// 61//----------------------------------------------------------------------------- 62 63ExecuteActorAnimationState( HumanoidIdle ) 64{ 65 // Always Enter. 66 return true; 67} 68 69ExecuteActorAnimationState( HumanoidWalkForward ) 70{ 71 // Fetch Controller. 72 VActorPhysicsController *physicsController = pObject->getPhysicsController(); 73 74 // On the Ground? 75 if ( physicsController->getPhysicsState() != VHumanoidActorData::k_OnGroundPhysics ) 76 { 77 // Can't Run Forward. 78 return false; 79 } 80 81 // Fetch Velocity. 82 const VectorF &velocity = physicsController->getVelocity(); 83 // Determine Move Speed. 84 const F32 moveSpeed = mSqrt( velocity.x * velocity.x + velocity.y * velocity.y ); 85 86 // Moving Forward & Slow Enough? 87 return ( ( physicsController->getMoveState() & k_ForwardMove ) && 88 ( moveSpeed < pObject->getDataBlock()->getRunSpeed() ) ); 89} 90 91ExecuteActorAnimationState( HumanoidWalkBackward ) 92{ 93 // Fetch Controller. 94 VActorPhysicsController *physicsController = pObject->getPhysicsController(); 95 96 // On the Ground? 97 if ( physicsController->getPhysicsState() != VHumanoidActorData::k_OnGroundPhysics ) 98 { 99 // Can't Run Backward. 100 return false; 101 } 102 103 // Fetch Velocity. 104 const VectorF &velocity = physicsController->getVelocity(); 105 // Determine Move Speed. 106 const F32 moveSpeed = mSqrt( velocity.x * velocity.x + velocity.y * velocity.y ); 107 108 // Moving Backward? 109 return ( ( physicsController->getMoveState() & k_BackwardMove ) && 110 ( moveSpeed < pObject->getDataBlock()->getRunSpeed() ) ); 111} 112 113ExecuteActorAnimationState( HumanoidRunForward ) 114{ 115 // Fetch Controller. 116 VActorPhysicsController *physicsController = pObject->getPhysicsController(); 117 118 // On the Ground? 119 if ( physicsController->getPhysicsState() != VHumanoidActorData::k_OnGroundPhysics ) 120 { 121 // Can't Run Forward. 122 return false; 123 } 124 125 // Fetch Velocity. 126 const VectorF &velocity = physicsController->getVelocity(); 127 // Determine Move Speed. 128 const F32 moveSpeed = mSqrt( velocity.x * velocity.x + velocity.y * velocity.y ); 129 130 // Moving Forward? 131 return ( ( physicsController->getMoveState() & k_ForwardMove ) && 132 ( moveSpeed >= pObject->getDataBlock()->getRunSpeed() ) ); 133} 134 135ExecuteActorAnimationState( HumanoidRunBackward ) 136{ 137 // Fetch Controller. 138 VActorPhysicsController *physicsController = pObject->getPhysicsController(); 139 140 // On the Ground? 141 if ( physicsController->getPhysicsState() != VHumanoidActorData::k_OnGroundPhysics ) 142 { 143 // Can't Run Backward. 144 return false; 145 } 146 147 // Fetch Velocity. 148 const VectorF &velocity = physicsController->getVelocity(); 149 // Determine Move Speed. 150 const F32 moveSpeed = mSqrt( velocity.x * velocity.x + velocity.y * velocity.y ); 151 152 // Moving Backward? 153 return ( ( physicsController->getMoveState() & k_BackwardMove ) && 154 ( moveSpeed >= pObject->getDataBlock()->getRunSpeed() ) ); 155} 156 157 158 159 160//----------------------------------------------------------------------------- 161// 162// InWater Animation States 163// 164//----------------------------------------------------------------------------- 165 166ExecuteActorAnimationState( HumanoidSwimIdle ) 167{ 168 // Fetch Controller. 169 VActorPhysicsController *physicsController = pObject->getPhysicsController(); 170 171 // In the Water? 172 if ( physicsController->getPhysicsState() != VHumanoidActorData::k_InWaterPhysics ) 173 { 174 // Can't Swim. 175 return false; 176 } 177 178 // Idle? 179 return ( physicsController->getMoveState() & k_NullMove ); 180} 181 182ExecuteActorAnimationState( HumanoidSwimForward ) 183{ 184 // Fetch Controller. 185 VActorPhysicsController *physicsController = pObject->getPhysicsController(); 186 187 // In the Water? 188 if ( physicsController->getPhysicsState() != VHumanoidActorData::k_InWaterPhysics ) 189 { 190 // Can't Swim. 191 return false; 192 } 193 194 // Moving Around? 195 return ( physicsController->getMoveState() & ( k_ForwardMove | 196 k_UpMove | 197 k_DownMove ) ); 198} 199 200ExecuteActorAnimationState( HumanoidSwimBackward ) 201{ 202 // Fetch Controller. 203 VActorPhysicsController *physicsController = pObject->getPhysicsController(); 204 205 // In the Water? 206 if ( physicsController->getPhysicsState() != VHumanoidActorData::k_InWaterPhysics ) 207 { 208 // Can't Swim. 209 return false; 210 } 211 212 // Moving Backward? 213 return ( physicsController->getMoveState() & k_BackwardMove ); 214} 215