From 77723c64f5078bed684b906d5d1e0142945caaed Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Wed, 23 Jan 2013 05:12:02 +1000 Subject: Delete a bunch of the keyboard handling stuff. --- ClientHamr/extantz/CDemo.cpp | 26 +----------- ClientHamr/extantz/extantzCamera.cpp | 77 ++++++++---------------------------- ClientHamr/extantz/extantzCamera.h | 23 ++--------- 3 files changed, 20 insertions(+), 106 deletions(-) (limited to 'ClientHamr/extantz') diff --git a/ClientHamr/extantz/CDemo.cpp b/ClientHamr/extantz/CDemo.cpp index 929f0db..7fc6ac1 100644 --- a/ClientHamr/extantz/CDemo.cpp +++ b/ClientHamr/extantz/CDemo.cpp @@ -191,31 +191,7 @@ void CDemo::switchToNextScene() } timeForThisScene = -1; - SKeyMap keyMap[9]; - keyMap[0].Action = EKA_MOVE_FORWARD; - keyMap[0].KeyCode = KEY_UP; - keyMap[1].Action = EKA_MOVE_FORWARD; - keyMap[1].KeyCode = KEY_KEY_W; - - keyMap[2].Action = EKA_MOVE_BACKWARD; - keyMap[2].KeyCode = KEY_DOWN; - keyMap[3].Action = EKA_MOVE_BACKWARD; - keyMap[3].KeyCode = KEY_KEY_S; - - keyMap[4].Action = EKA_STRAFE_LEFT; - keyMap[4].KeyCode = KEY_LEFT; - keyMap[5].Action = EKA_STRAFE_LEFT; - keyMap[5].KeyCode = KEY_KEY_A; - - keyMap[6].Action = EKA_STRAFE_RIGHT; - keyMap[6].KeyCode = KEY_RIGHT; - keyMap[7].Action = EKA_STRAFE_RIGHT; - keyMap[7].KeyCode = KEY_KEY_D; - - keyMap[8].Action = EKA_JUMP_UP; - keyMap[8].KeyCode = KEY_KEY_J; - - camera = addExtantzCamera(sm, 0, 100.0f, .4f, -1, keyMap, 9, false, 3.f, false, true); + camera = addExtantzCamera(sm, 0, 100.0f, .4f, -1, false, 3.f, false, true); camera->setPosition(core::vector3df(150, 170, -160)); camera->setFarValue(5000.0f); diff --git a/ClientHamr/extantz/extantzCamera.cpp b/ClientHamr/extantz/extantzCamera.cpp index 3c0ff7a..cab1faa 100644 --- a/ClientHamr/extantz/extantzCamera.cpp +++ b/ClientHamr/extantz/extantzCamera.cpp @@ -9,6 +9,9 @@ // As such, I expect lots of Nikolaus Gebhardt's code to go away. // To be replaced by my code, which will be copyright and licensed under the same license as the rest of extantz. +// Initally I'll make it SecondLife like, coz that's what my muscle memory is used to. +// It will get extended and made generic though. + #include "extantzCamera.h" #include "IVideoDriver.h" #include "ISceneManager.h" @@ -23,14 +26,14 @@ namespace scene { // Irrlicht hard codes a reference to the original FPS camera code inside it's scene manager. This is that code extracted so we can be more flexible. -// Hmmm, Where's CursorControl come from? Ah, passed to the scene manager constructor, it's a GUI thing that we need to replace with an EFL thing. -ICameraSceneNode *addExtantzCamera(ISceneManager* sm, ISceneNode* parent, f32 rotateSpeed, f32 moveSpeed, s32 id, SKeyMap* keyMapArray, s32 keyMapSize, bool noVerticalMovement, f32 jumpSpeed, bool invertMouseY, bool makeActive) +// TODO - Hmmm, Where's CursorControl come from? Ah, passed to the scene manager constructor, it's a GUI thing that we need to replace with an EFL thing. +ICameraSceneNode *addExtantzCamera(ISceneManager* sm, ISceneNode* parent, f32 rotateSpeed, f32 moveSpeed, s32 id, bool noVerticalMovement, f32 jumpSpeed, bool invertMouseY, bool makeActive) { ICameraSceneNode* node = sm->addCameraSceneNode(parent, core::vector3df(), core::vector3df(0, 0, 100), id, makeActive); if (node) { -// ISceneNodeAnimator* anm = new extantzCamera(CursorControl, rotateSpeed, moveSpeed, jumpSpeed, keyMapArray, keyMapSize, noVerticalMovement, invertMouseY); - ISceneNodeAnimator* anm = new extantzCamera(NULL, rotateSpeed, moveSpeed, jumpSpeed, keyMapArray, keyMapSize, noVerticalMovement, invertMouseY); +// ISceneNodeAnimator* anm = new extantzCamera(CursorControl, rotateSpeed, moveSpeed, jumpSpeed, noVerticalMovement, invertMouseY); + ISceneNodeAnimator* anm = new extantzCamera(NULL, rotateSpeed, moveSpeed, jumpSpeed, noVerticalMovement, invertMouseY); // Bind the node's rotation to its target. This is consistent with 1.4.2 and below. node->bindTargetAndRotation(true); @@ -43,9 +46,9 @@ ICameraSceneNode *addExtantzCamera(ISceneManager* sm, ISceneNode* parent, f32 ro //! constructor -extantzCamera::extantzCamera(gui::ICursorControl* cursorControl, f32 rotateSpeed, f32 moveSpeed, f32 jumpSpeed, SKeyMap* keyMapArray, u32 keyMapSize, bool noVerticalMovement, bool invertY) +extantzCamera::extantzCamera(gui::ICursorControl* cursorControl, f32 rotateSpeed, f32 moveSpeed, f32 jumpSpeed, bool noVerticalMovement, bool invertY) : CursorControl(cursorControl), MaxVerticalAngle(88.0f), MoveSpeed(moveSpeed), RotateSpeed(rotateSpeed), JumpSpeed(jumpSpeed), - MouseYDirection(invertY ? -1.0f : 1.0f), LastAnimationTime(0), firstUpdate(true), firstInput(true), NoVerticalMovement(noVerticalMovement) + MouseYDirection(invertY ? -1.0f : 1.0f), LastAnimationTime(0), firstUpdate(true), NoVerticalMovement(noVerticalMovement) { #ifdef _DEBUG setDebugName("extantzCamera"); @@ -55,22 +58,6 @@ extantzCamera::extantzCamera(gui::ICursorControl* cursorControl, f32 rotateSpeed // CursorControl->grab(); allKeysUp(); - - // create key map - if (!keyMapArray || !keyMapSize) - { - // create default key map - KeyMap.push_back(SKeyMap(EKA_MOVE_FORWARD, irr::KEY_UP)); - KeyMap.push_back(SKeyMap(EKA_MOVE_BACKWARD, irr::KEY_DOWN)); - KeyMap.push_back(SKeyMap(EKA_STRAFE_LEFT, irr::KEY_LEFT)); - KeyMap.push_back(SKeyMap(EKA_STRAFE_RIGHT, irr::KEY_RIGHT)); - KeyMap.push_back(SKeyMap(EKA_JUMP_UP, irr::KEY_KEY_J)); - } - else - { - // create custom key map - setKeyMap(keyMapArray, keyMapSize); - } } @@ -82,11 +69,9 @@ extantzCamera::~extantzCamera() } -//! It is possible to send mouse and key events to the camera. Most cameras -//! may ignore this input, but camera scene nodes which are created for -//! example with scene::ISceneManager::addMayaCameraSceneNode or -//! scene::ISceneManager::addFPSCameraSceneNode, may want to get this input -//! for changing their position, look at target or whatever. +#if 0 +// TODO - get rid of this, it's an Irrlicht callback, and I'm replacing it all with EFL. +// Leaving it here for the moment as an example. bool extantzCamera::OnEvent(const SEvent& evt) { switch(evt.EventType) @@ -116,7 +101,7 @@ bool extantzCamera::OnEvent(const SEvent& evt) return false; } - +#endif void extantzCamera::animateNode(ISceneNode* node, u32 timeMs) { @@ -142,14 +127,8 @@ void extantzCamera::animateNode(ISceneNode* node, u32 timeMs) // If the camera isn't the active camera, and receiving input, then don't process it. if(!camera->isInputReceiverEnabled()) { - firstInput = true; - return; - } - - if ( firstInput ) - { allKeysUp(); - firstInput = false; + return; } scene::ISceneManager * smgr = camera->getSceneManager(); @@ -237,6 +216,7 @@ void extantzCamera::animateNode(ISceneNode* node, u32 timeMs) movedir.normalize(); + // TODO - There is no turning left or right, or the other things I'll need. So might as well create my own thing to replace this. if (CursorKeys[EKA_MOVE_FORWARD]) pos += movedir * timeDiff * MoveSpeed; @@ -324,30 +304,6 @@ f32 extantzCamera::getMoveSpeed() const } -//! Sets the keyboard mapping for this animator -void extantzCamera::setKeyMap(SKeyMap *map, u32 count) -{ - // clear the keymap - KeyMap.clear(); - - // add actions - for (u32 i=0; i& keymap) -{ - KeyMap=keymap; -} - -const core::array& extantzCamera::getKeyMap() const -{ - return KeyMap; -} - - //! Sets whether vertical movement should be allowed. void extantzCamera::setVerticalMovement(bool allow) { @@ -367,8 +323,7 @@ void extantzCamera::setInvertMouse(bool invert) ISceneNodeAnimator* extantzCamera::createClone(ISceneNode* node, ISceneManager* newManager) { - extantzCamera *newAnimator = new extantzCamera(CursorControl, RotateSpeed, MoveSpeed, JumpSpeed, 0, 0, NoVerticalMovement); - newAnimator->setKeyMap(KeyMap); + extantzCamera *newAnimator = new extantzCamera(CursorControl, RotateSpeed, MoveSpeed, JumpSpeed, NoVerticalMovement); return newAnimator; } diff --git a/ClientHamr/extantz/extantzCamera.h b/ClientHamr/extantz/extantzCamera.h index a81eb8a..cfd4361 100644 --- a/ClientHamr/extantz/extantzCamera.h +++ b/ClientHamr/extantz/extantzCamera.h @@ -24,14 +24,14 @@ namespace gui namespace scene { - ICameraSceneNode *addExtantzCamera(ISceneManager* sm, ISceneNode* parent, f32 rotateSpeed, f32 moveSpeed, s32 id, SKeyMap* keyMapArray, s32 keyMapSize, bool noVerticalMovement, f32 jumpSpeed, bool invertMouseY, bool makeActive); + ICameraSceneNode *addExtantzCamera(ISceneManager* sm, ISceneNode* parent, f32 rotateSpeed, f32 moveSpeed, s32 id, bool noVerticalMovement, f32 jumpSpeed, bool invertMouseY, bool makeActive); class extantzCamera : public ISceneNodeAnimator { public: //! Constructor - extantzCamera(gui::ICursorControl* cursorControl, f32 rotateSpeed = 100.0f, f32 moveSpeed = .5f, f32 jumpSpeed=0.f, SKeyMap* keyMapArray=0, u32 keyMapSize=0, bool noVerticalMovement=false, bool invertY=false); + extantzCamera(gui::ICursorControl* cursorControl, f32 rotateSpeed = 100.0f, f32 moveSpeed = .5f, f32 jumpSpeed=0.f, bool noVerticalMovement=false, bool invertY=false); //! Destructor virtual ~extantzCamera(); @@ -39,9 +39,6 @@ namespace scene //! Animates the scene node, currently only works on cameras virtual void animateNode(ISceneNode* node, u32 timeMs); - //! Event receiver - virtual bool OnEvent(const SEvent& event); - //! Returns the speed of movement in units per second virtual f32 getMoveSpeed() const; @@ -54,18 +51,6 @@ namespace scene //! Set the rotation speed virtual void setRotateSpeed(f32 rotateSpeed); - //! Sets the keyboard mapping for this animator (old style) - //! \param keymap: an array of keyboard mappings, see SKeyMap - //! \param count: the size of the keyboard map array - virtual void setKeyMap(SKeyMap *map, u32 count); - - //! Sets the keyboard mapping for this animator - //! \param keymap The new keymap array - virtual void setKeyMap(const core::array& keymap); - - //! Gets the keyboard mapping for this animator - virtual const core::array& getKeyMap() const; - //! Sets whether vertical movement should be allowed. virtual void setVerticalMovement(bool allow); @@ -77,7 +62,7 @@ namespace scene //! This animator will receive events when attached to the active camera virtual bool isEventReceiverEnabled() const { - return true; + return false; } //! Returns the type of this animator @@ -107,13 +92,11 @@ namespace scene s32 LastAnimationTime; - core::array KeyMap; core::position2d CenterCursor, CursorPos; bool CursorKeys[EKA_COUNT]; bool firstUpdate; - bool firstInput; bool NoVerticalMovement; }; -- cgit v1.1