int MovementComponent::rotate(float targetRotX, float targetRotY, float targetRotZ, float speed, bool putInQueue, const char* animName) { Vec3f target(targetRotX, targetRotY, targetRotZ); //if we don't want a queue, we must erase all existent movement nodes if(!putInQueue) clear(); if(speed < 0) speed = m_speed; //use agent default //rotate until we reach the target rotation Orientation* o = new Orientation( m_eID, target, speed, true ); o->setAnimation( (animName == 0) ? m_orientAnimName : animName ); m_movementNodes.push_back( o ); return o->getID(); }
int MovementComponent::turnTowards(float targetPosX, float targetPosY, float targetPosZ, float speed, bool putInQueue, const char* animName) { Vec3f target(targetPosX, targetPosY, targetPosZ); //if we don't want a queue, we must erase all existent movement nodes if(!putInQueue) clear(); if(speed < 0) speed = m_speed; //use agent default //orient towards the target Orientation* o = new Orientation( m_eID, target, speed, false ); o->setAnimation( (animName == 0) ? m_orientAnimName : animName ); m_movementNodes.push_back( o ); return o->getID(); }