Rearrangements; Audio support
This commit is contained in:
5
src/characters/CMakeLists.txt
Normal file
5
src/characters/CMakeLists.txt
Normal file
@@ -0,0 +1,5 @@
|
||||
project(characters)
|
||||
find_package(OGRE REQUIRED COMPONENTS Bites Bullet Paging Terrain CONFIG)
|
||||
add_library(controller STATIC controller.cpp)
|
||||
target_link_libraries(controller PUBLIC OgreMain OgreBites PRIVATE GameData)
|
||||
target_include_directories(controller PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
@@ -1,5 +1,6 @@
|
||||
#include <iostream>
|
||||
#include <OgreMath.h>
|
||||
#include "GameData.h"
|
||||
#include "character.h"
|
||||
#include "controller.h"
|
||||
#if 0
|
||||
@@ -227,14 +228,11 @@ void CharacterController::setupBody()
|
||||
}
|
||||
mGhostObject->setCollisionFlags(
|
||||
btCollisionObject::CF_KINEMATIC_OBJECT |
|
||||
btCollisionObject::CF_NO_CONTACT_RESPONSE );
|
||||
btCollisionObject::CF_NO_CONTACT_RESPONSE);
|
||||
mGhostObject->setActivationState(DISABLE_DEACTIVATION);
|
||||
mWorld->attachCollisionObject(mGhostObject, mBodyEnt,
|
||||
1,
|
||||
0x7FFFFFF);
|
||||
mController =
|
||||
new Ogre::Bullet::KinematicMotionSimple(mGhostObject,
|
||||
mBodyNode);
|
||||
mWorld->attachCollisionObject(mGhostObject, mBodyEnt, 1, 0x7FFFFFF);
|
||||
mController = new Ogre::Bullet::KinematicMotionSimple(mGhostObject,
|
||||
mBodyNode);
|
||||
OgreAssert(mGhostObject, "Need GhostObject");
|
||||
OgreAssert(mController, "Need controller");
|
||||
mWorld->getBtWorld()->addAction(mController);
|
||||
@@ -380,6 +378,7 @@ void CharacterController::setupAnimations()
|
||||
}
|
||||
bool CharacterController::keyPressed(const OgreBites::KeyboardEvent &evt)
|
||||
{
|
||||
ECS::Input &input = ECS::get().get_mut<ECS::Input>();
|
||||
OgreBites::Keycode key = evt.keysym.sym;
|
||||
if (key == 'q' && (mAnimID == ANIM_IDLE)) {
|
||||
/* ... */
|
||||
@@ -551,10 +550,9 @@ void CharacterController::updateAnimations(Ogre::Real delta)
|
||||
}
|
||||
fadeAnimations(delta);
|
||||
}
|
||||
struct EntityCollisionListener
|
||||
{
|
||||
const Ogre::MovableObject* entity;
|
||||
Ogre::Bullet::CollisionListener* listener;
|
||||
struct EntityCollisionListener {
|
||||
const Ogre::MovableObject *entity;
|
||||
Ogre::Bullet::CollisionListener *listener;
|
||||
};
|
||||
void CharacterController::updateRootMotion(Ogre::Real delta)
|
||||
{
|
||||
@@ -572,7 +570,8 @@ void CharacterController::updateRootMotion(Ogre::Real delta)
|
||||
gvelocity += gravity * delta;
|
||||
velocity += gvelocity;
|
||||
Ogre::Vector3 rotMotion = velocity * delta;
|
||||
btVector3 currentPosition = mGhostObject->getWorldTransform().getOrigin();
|
||||
btVector3 currentPosition =
|
||||
mGhostObject->getWorldTransform().getOrigin();
|
||||
is_on_floor = mController->isOnFloor();
|
||||
penetration = mController->isPenetrating();
|
||||
if (is_on_floor)
|
||||
|
||||
Reference in New Issue
Block a user