From fec90122c3deedf9369295f02cf51d669dd66d4f Mon Sep 17 00:00:00 2001 From: Star-Demon Date: Sun, 2 Jan 2011 11:55:00 -0500 Subject: [PATCH 01/14] Added enumerated States to inputmanager to handle future standard actions. --- apps/openmw/mwinput/inputmanager.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/apps/openmw/mwinput/inputmanager.cpp b/apps/openmw/mwinput/inputmanager.cpp index 0544df6f0f..c5353d7b11 100644 --- a/apps/openmw/mwinput/inputmanager.cpp +++ b/apps/openmw/mwinput/inputmanager.cpp @@ -45,6 +45,24 @@ namespace MWInput A_Activate, + A_Use, //Use weapon, spell, etc. + A_Jump, + A_AutoMove, //Toggle Auto-move forward + A_Rest, //Rest + A_Journal, //Journal + A_Weapon, //Draw/Sheath weapon + A_Spell, //Ready/Unready Casting + A_AlwaysRun, //Toggle Always Run + A_CycleSpellLeft, //cycling through spells + A_CycleSPellRight, + A_CycleWeaponLeft,//Cycling through weapons + A_CycleWeaponRight, + + A_QuickSave, + A_QuickLoad, + A_QuickMenu, + A_GameMenu, + A_LAST // Marker for the last item }; From e98eef8cd31c624a4f47207ed2de84dca09af4c5 Mon Sep 17 00:00:00 2001 From: Star-Demon Date: Sun, 9 Jan 2011 16:42:38 -0500 Subject: [PATCH 02/14] corrected grammar for merge --- apps/openmw/mwinput/inputmanager.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/openmw/mwinput/inputmanager.cpp b/apps/openmw/mwinput/inputmanager.cpp index c5353d7b11..69c6440462 100644 --- a/apps/openmw/mwinput/inputmanager.cpp +++ b/apps/openmw/mwinput/inputmanager.cpp @@ -54,7 +54,7 @@ namespace MWInput A_Spell, //Ready/Unready Casting A_AlwaysRun, //Toggle Always Run A_CycleSpellLeft, //cycling through spells - A_CycleSPellRight, + A_CycleSpellRight, A_CycleWeaponLeft,//Cycling through weapons A_CycleWeaponRight, @@ -86,8 +86,8 @@ namespace MWInput // Write screenshot to file. void screenshot() { - // Find the first unused filename. - // + + // Find the first unused filename with a do-while char buf[50]; do { From 3ab4a4487f9fb59597f917c406552544c29cf3d3 Mon Sep 17 00:00:00 2001 From: Star-Demon Date: Wed, 12 Jan 2011 12:19:33 -0500 Subject: [PATCH 03/14] Sneak State, Bound Sneak and AutoMove, began outlining AutoMove --- apps/openmw/mwinput/inputmanager.cpp | 13 +++++++++++++ libs/mangle | 2 +- libs/openengine | 2 +- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/apps/openmw/mwinput/inputmanager.cpp b/apps/openmw/mwinput/inputmanager.cpp index 15d6f5e0f6..c93ce1611e 100644 --- a/apps/openmw/mwinput/inputmanager.cpp +++ b/apps/openmw/mwinput/inputmanager.cpp @@ -60,6 +60,7 @@ namespace MWInput A_CycleSpellRight, A_CycleWeaponLeft,//Cycling through weapons A_CycleWeaponRight, + A_ToggleSneak, //Toggles Sneak, add Push-Sneak later A_QuickSave, A_QuickLoad, @@ -213,6 +214,7 @@ namespace MWInput **********************************/ // Key bindings for keypress events + // NOTE: These keys do not require constant polling - use in conjuction with variables in loops. disp->bind(A_Quit, KC_Q); disp->bind(A_Quit, KC_ESCAPE); @@ -220,8 +222,11 @@ namespace MWInput disp->bind(A_Inventory, KC_I); disp->bind(A_Console, KC_F1); disp->bind(A_Activate, KC_SPACE); + disp->bind(A_AutoMove, KC_Z); + disp->bind(A_ToggleSneak, KC_X); // Key bindings for polled keys + // NOTE: These keys are constantly being polled. Only add keys that must be checked each frame. // Arrow keys poller.bind(A_MoveLeft, KC_LEFT); @@ -259,6 +264,14 @@ namespace MWInput float speed = 300 * evt.timeSinceLastFrame; float moveX = 0, moveY = 0, moveZ = 0; + + + //TODO: Where should I put bool isAutoMoving; ? + //AUTO-MOVE condition + //Check Automove Toggle. + //If true...apply current MoveType speed to current direction + + //If any other movement key is pressed, Toggle automove. if(poller.isDown(A_MoveLeft)) moveX -= speed; if(poller.isDown(A_MoveRight)) moveX += speed; diff --git a/libs/mangle b/libs/mangle index 12e5c8d704..7345f2307f 160000 --- a/libs/mangle +++ b/libs/mangle @@ -1 +1 @@ -Subproject commit 12e5c8d704b959c78a62931b2360d18092b82c3d +Subproject commit 7345f2307f3ce6682a4044b98a811fac2cb7c4f0 diff --git a/libs/openengine b/libs/openengine index 7185eab18c..377e7d71ce 160000 --- a/libs/openengine +++ b/libs/openengine @@ -1 +1 @@ -Subproject commit 7185eab18c29a0a5e03e44690d6bd8ece7e3792b +Subproject commit 377e7d71ceea5a1ca166b8df9a03a5b68df83bc5 From bfcfcecab6b750f954b46f70af7f5a1d678967b4 Mon Sep 17 00:00:00 2001 From: Star-Demon Date: Fri, 14 Jan 2011 09:52:28 -0500 Subject: [PATCH 04/14] Most of AutoMove finished - just needs some speed in Player class. --- apps/openmw/mwinput/inputmanager.cpp | 55 +++++++++++++++++++++------- apps/openmw/mwworld/player.hpp | 25 +++++++++++++ 2 files changed, 67 insertions(+), 13 deletions(-) diff --git a/apps/openmw/mwinput/inputmanager.cpp b/apps/openmw/mwinput/inputmanager.cpp index c93ce1611e..c2c1f96559 100644 --- a/apps/openmw/mwinput/inputmanager.cpp +++ b/apps/openmw/mwinput/inputmanager.cpp @@ -87,6 +87,9 @@ namespace MWInput // Count screenshots. int shotCount; + + /* InputImpl Methods */ + // Write screenshot to file. void screenshot() { @@ -101,8 +104,8 @@ namespace MWInput ogre.screenshot(buf); } - // Called when the user presses the button to toggle the inventory - // screen. + + /* toggleInventory() is called when the user presses the button to toggle the inventory screen. */ void toggleInventory() { using namespace MWGui; @@ -137,6 +140,11 @@ namespace MWInput mEngine.activate(); } + void toggleAutoMove() + { + player.setmAutoMove(true); + } + // Exit program now button (which is disabled in GUI mode) void exitNow() { @@ -178,7 +186,8 @@ namespace MWInput "Toggle console"); disp->funcs.bind(A_Activate, boost::bind(&InputImpl::activate, this), "Activate"); - + disp->funcs.bind(A_AutoMove, boost::bind(&InputImpl::toggleAUtoMove, this), + "Auto Move"); // Add the exit listener ogre.getRoot()->addFrameListener(&exit); @@ -245,7 +254,7 @@ namespace MWInput poller.bind(A_MoveDown, KC_LCONTROL); } - // Used to check for movement keys + //NOTE: Used to check for movement keys bool frameStarted(const Ogre::FrameEvent &evt) { // Tell OIS to handle all input events @@ -266,17 +275,35 @@ namespace MWInput float moveX = 0, moveY = 0, moveZ = 0; - //TODO: Where should I put bool isAutoMoving; ? - //AUTO-MOVE condition - //Check Automove Toggle. - //If true...apply current MoveType speed to current direction + /*AUTO-MOVE*/ + //TODO: double Check this. + //player.executeAutoMove((float)evt.timeSinceLastEvent); + - //If any other movement key is pressed, Toggle automove. + if(poller.isDown(A_MoveLeft)) + { + player.setmAutoMove(false); + moveX -= speed; + } + + if(poller.isDown(A_MoveRight)) + { + player.setmAutoMove(false); + moveX += speed; + } + + if(poller.isDown(A_MoveForward)) + { + player.setmAutoMove(false); + moveZ -= speed; + } + + if(poller.isDown(A_MoveBackward)) + { + player.setmAutoMove(false); + moveZ += speed; + } - if(poller.isDown(A_MoveLeft)) moveX -= speed; - if(poller.isDown(A_MoveRight)) moveX += speed; - if(poller.isDown(A_MoveForward)) moveZ -= speed; - if(poller.isDown(A_MoveBackward)) moveZ += speed; // TODO: These should be enabled for floating modes (like // swimming and levitation) and disabled for everything else. @@ -319,6 +346,7 @@ namespace MWInput } }; + /***CONSTRUCTOR***/ MWInputManager::MWInputManager(OEngine::Render::OgreRenderer &ogre, MWWorld::Player &player, MWGui::WindowManager &windows, @@ -328,6 +356,7 @@ namespace MWInput impl = new InputImpl(ogre,player,windows,debug, engine); } + /***DESTRUCTOR***/ MWInputManager::~MWInputManager() { delete impl; diff --git a/apps/openmw/mwworld/player.hpp b/apps/openmw/mwworld/player.hpp index 997282ca64..828c2082aa 100644 --- a/apps/openmw/mwworld/player.hpp +++ b/apps/openmw/mwworld/player.hpp @@ -31,6 +31,8 @@ namespace MWWorld ESM::Class *mClass; bool mCollisionMode; + bool mAutoMove; + public: Player(MWRender::Player *renderer, const ESM::NPC *player, MWWorld::World& world); @@ -108,6 +110,29 @@ namespace MWWorld { mCollisionMode = !mCollisionMode; } + + bool getmAutoMove() + { + return mAutoMove; + } + + void setmAutoMove(bool setMe) + { + mAutoMove = setMe; + } + + /// float value representing time since last call + void executeAutoMove(float duration) + { + if (this.mAutoMove == true) + { + //No code insight! ARGH! + //Z...? Forward is Z? /boggle + //player.setspeedZ() = speed * duration * -1; + } + } + + }; } #endif From 60c9c31c7aaba7bba8917a53e19ab2dc535f8a6a Mon Sep 17 00:00:00 2001 From: Star-Demon Date: Fri, 14 Jan 2011 10:03:45 -0500 Subject: [PATCH 05/14] Silly error Fixed in binding --- apps/openmw/mwinput/inputmanager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/openmw/mwinput/inputmanager.cpp b/apps/openmw/mwinput/inputmanager.cpp index c2c1f96559..899b735295 100644 --- a/apps/openmw/mwinput/inputmanager.cpp +++ b/apps/openmw/mwinput/inputmanager.cpp @@ -186,7 +186,7 @@ namespace MWInput "Toggle console"); disp->funcs.bind(A_Activate, boost::bind(&InputImpl::activate, this), "Activate"); - disp->funcs.bind(A_AutoMove, boost::bind(&InputImpl::toggleAUtoMove, this), + disp->funcs.bind(A_AutoMove, boost::bind(&InputImpl::toggleAutoMove, this), "Auto Move"); // Add the exit listener From f96f53484c99bbc6935680eba765a1e1f056fa0e Mon Sep 17 00:00:00 2001 From: Star-Demon Date: Sun, 16 Jan 2011 10:25:33 -0500 Subject: [PATCH 06/14] More AutoMove stuff, Sneak bools, cleaning --- apps/openmw/mwinput/inputmanager.cpp | 8 +++----- apps/openmw/mwworld/player.hpp | 2 ++ 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/openmw/mwinput/inputmanager.cpp b/apps/openmw/mwinput/inputmanager.cpp index 899b735295..fe5b1866ef 100644 --- a/apps/openmw/mwinput/inputmanager.cpp +++ b/apps/openmw/mwinput/inputmanager.cpp @@ -274,12 +274,10 @@ namespace MWInput float speed = 300 * evt.timeSinceLastFrame; float moveX = 0, moveY = 0, moveZ = 0; - - /*AUTO-MOVE*/ - //TODO: double Check this. - //player.executeAutoMove((float)evt.timeSinceLastEvent); + //execute Automove - condition checked in function + player.executeAutoMove((float)evt.timeSinceLastEvent); - + //Poll and execute movement keys - will disable automove if pressed. if(poller.isDown(A_MoveLeft)) { player.setmAutoMove(false); diff --git a/apps/openmw/mwworld/player.hpp b/apps/openmw/mwworld/player.hpp index 828c2082aa..3b827a8ad1 100644 --- a/apps/openmw/mwworld/player.hpp +++ b/apps/openmw/mwworld/player.hpp @@ -32,6 +32,8 @@ namespace MWWorld bool mCollisionMode; bool mAutoMove; + bool misSneaking; + bool misHidden; public: From 5aec3815fd2e7204bd850f40c6f30a281dffe1d7 Mon Sep 17 00:00:00 2001 From: Star-Demon Date: Sun, 16 Jan 2011 10:47:03 -0500 Subject: [PATCH 07/14] The player should now be able to run AND walk... --- apps/openmw/mwinput/inputmanager.cpp | 54 +++++++++++++++++++++++----- apps/openmw/mwworld/player.hpp | 16 +++++++-- 2 files changed, 59 insertions(+), 11 deletions(-) diff --git a/apps/openmw/mwinput/inputmanager.cpp b/apps/openmw/mwinput/inputmanager.cpp index fe5b1866ef..159c0a26d1 100644 --- a/apps/openmw/mwinput/inputmanager.cpp +++ b/apps/openmw/mwinput/inputmanager.cpp @@ -61,6 +61,7 @@ namespace MWInput A_CycleWeaponLeft,//Cycling through weapons A_CycleWeaponRight, A_ToggleSneak, //Toggles Sneak, add Push-Sneak later + A_ToggleWalk, //Toggle Walking/Running A_QuickSave, A_QuickLoad, @@ -145,6 +146,11 @@ namespace MWInput player.setmAutoMove(true); } + void toggleWalking() + { + player.setmisWalking(true); + } + // Exit program now button (which is disabled in GUI mode) void exitNow() { @@ -188,6 +194,8 @@ namespace MWInput "Activate"); disp->funcs.bind(A_AutoMove, boost::bind(&InputImpl::toggleAutoMove, this), "Auto Move"); + disp->funcs.bind(A_ToggleWalk, boost::bind(&InputImpl::toggleWalking, this), + "Toggle Walk/Run"); // Add the exit listener ogre.getRoot()->addFrameListener(&exit); @@ -233,6 +241,7 @@ namespace MWInput disp->bind(A_Activate, KC_SPACE); disp->bind(A_AutoMove, KC_Z); disp->bind(A_ToggleSneak, KC_X); + disp->bind(A_ToggleWalk, KC_C); // Key bindings for polled keys // NOTE: These keys are constantly being polled. Only add keys that must be checked each frame. @@ -271,7 +280,10 @@ namespace MWInput // Disable movement in Gui mode if(windows.isGuiMode()) return true; - float speed = 300 * evt.timeSinceLastFrame; + float speed = 300 * evt.timeSinceLastFrame; //is this a placeholder player speed? + float TESTwalkSpeed = 100 * evt.timeSinceLastFrame; //Try this, then. + float TESTsneakSpeed = 100 * evt.timeSinceLastFrame; //and this. + float moveX = 0, moveY = 0, moveZ = 0; //execute Automove - condition checked in function @@ -280,26 +292,50 @@ namespace MWInput //Poll and execute movement keys - will disable automove if pressed. if(poller.isDown(A_MoveLeft)) { - player.setmAutoMove(false); - moveX -= speed; + if (player.getmisWalking() == false) + { + player.setmAutoMove(false); + moveX -= speed; + } else { + player.setmAutoMove(false); + moveX -= TESTwalkSpeed; + } } if(poller.isDown(A_MoveRight)) { - player.setmAutoMove(false); - moveX += speed; + if (player.getmisWalking() == false) + { + player.setmAutoMove(false); + moveX += speed; + } else { + player.setmAutoMove(false); + moveX += TESTwalkSpeed; + } } if(poller.isDown(A_MoveForward)) { - player.setmAutoMove(false); - moveZ -= speed; + if (player.getmisWalking() == false) + { + player.setmAutoMove(false); + moveZ -= speed; + } else { + player.setmAutoMove(false); + moveZ -= TESTwalkSpeed; + } } if(poller.isDown(A_MoveBackward)) { - player.setmAutoMove(false); - moveZ += speed; + if (player.getmisWalking() == false) + { + player.setmAutoMove(false); + moveZ += speed; + } else { + player.setmAutoMove(false); + moveZ += TESTwalkSpeed; + } } diff --git a/apps/openmw/mwworld/player.hpp b/apps/openmw/mwworld/player.hpp index 3b827a8ad1..7a9bf20b19 100644 --- a/apps/openmw/mwworld/player.hpp +++ b/apps/openmw/mwworld/player.hpp @@ -32,8 +32,9 @@ namespace MWWorld bool mCollisionMode; bool mAutoMove; - bool misSneaking; - bool misHidden; + //bool misSneaking; + //bool misHidden; + bool misWalking; //Testing... public: @@ -134,6 +135,17 @@ namespace MWWorld } } + bool getmisWalking() + { + return this.misWalking; + } + + void setmisWalking(bool setMe) + { + this.misWalking = setMe; + } + + }; } From 1a56ef9a676212385c9c7438428ae53343068e31 Mon Sep 17 00:00:00 2001 From: Star-Demon Date: Sun, 16 Jan 2011 11:05:03 -0500 Subject: [PATCH 08/14] More AutoMove, now including walking - ready for a look and then test --- apps/openmw/mwinput/inputmanager.cpp | 2 +- apps/openmw/mwworld/player.hpp | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/apps/openmw/mwinput/inputmanager.cpp b/apps/openmw/mwinput/inputmanager.cpp index 159c0a26d1..4fc8e3af43 100644 --- a/apps/openmw/mwinput/inputmanager.cpp +++ b/apps/openmw/mwinput/inputmanager.cpp @@ -287,7 +287,7 @@ namespace MWInput float moveX = 0, moveY = 0, moveZ = 0; //execute Automove - condition checked in function - player.executeAutoMove((float)evt.timeSinceLastEvent); + player.executeAutoMove((float)evt.timeSinceLastEvent); //or since last frame? //Poll and execute movement keys - will disable automove if pressed. if(poller.isDown(A_MoveLeft)) diff --git a/apps/openmw/mwworld/player.hpp b/apps/openmw/mwworld/player.hpp index 7a9bf20b19..d576a45ae3 100644 --- a/apps/openmw/mwworld/player.hpp +++ b/apps/openmw/mwworld/player.hpp @@ -125,13 +125,21 @@ namespace MWWorld } /// float value representing time since last call - void executeAutoMove(float duration) + void executeAutoMove(float duration) //call by value for MoveZ makes this harder. { if (this.mAutoMove == true) { - //No code insight! ARGH! - //Z...? Forward is Z? /boggle - //player.setspeedZ() = speed * duration * -1; + //TODO: Make player go. + /*Access moveZ, access walking/running speed, -1 is for correct direction, + otherwise you end up running backwards - not a bad idea for a future feature, actually...*/ + /* + if (this.misWalking == false) + { + //inputmanager.moveZ = 300 * duration * -1; + } else { + //inputmanager.moveZ = 100 * duration * -1; + } + */ } } From 81c0909dbf0da65a06ae54eb74c9122b6a75bf9d Mon Sep 17 00:00:00 2001 From: Star-Demon Date: Sun, 16 Jan 2011 12:39:54 -0500 Subject: [PATCH 09/14] Player constructor now inits new variables. --- apps/openmw/mwworld/player.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/openmw/mwworld/player.cpp b/apps/openmw/mwworld/player.cpp index cc7abccac5..d0d0e00221 100644 --- a/apps/openmw/mwworld/player.cpp +++ b/apps/openmw/mwworld/player.cpp @@ -16,6 +16,8 @@ namespace MWWorld mRace = player->race; mPlayer.ref.pos.pos[0] = mPlayer.ref.pos.pos[1] = mPlayer.ref.pos.pos[2] = 0; mClass = new ESM::Class (*world.getStore().classes.find (player->cls)); + mAutoMove = false; + misWalking = false; } Player::~Player() From 90e6029bad909ff0dd3af735bd947aaf8b9e29ab Mon Sep 17 00:00:00 2001 From: Star-Demon Date: Sun, 16 Jan 2011 13:45:54 -0500 Subject: [PATCH 10/14] Fixed object reference error in player gets --- apps/openmw/mwinput/inputmanager.cpp | 2 +- apps/openmw/mwworld/player.hpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/openmw/mwinput/inputmanager.cpp b/apps/openmw/mwinput/inputmanager.cpp index 4fc8e3af43..6e8cb6b2ee 100644 --- a/apps/openmw/mwinput/inputmanager.cpp +++ b/apps/openmw/mwinput/inputmanager.cpp @@ -282,7 +282,7 @@ namespace MWInput float speed = 300 * evt.timeSinceLastFrame; //is this a placeholder player speed? float TESTwalkSpeed = 100 * evt.timeSinceLastFrame; //Try this, then. - float TESTsneakSpeed = 100 * evt.timeSinceLastFrame; //and this. + //float TESTsneakSpeed = 100 * evt.timeSinceLastFrame; //and this. float moveX = 0, moveY = 0, moveZ = 0; diff --git a/apps/openmw/mwworld/player.hpp b/apps/openmw/mwworld/player.hpp index d576a45ae3..972ab7c881 100644 --- a/apps/openmw/mwworld/player.hpp +++ b/apps/openmw/mwworld/player.hpp @@ -127,7 +127,7 @@ namespace MWWorld /// float value representing time since last call void executeAutoMove(float duration) //call by value for MoveZ makes this harder. { - if (this.mAutoMove == true) + if (mAutoMove == true) { //TODO: Make player go. /*Access moveZ, access walking/running speed, -1 is for correct direction, @@ -145,12 +145,12 @@ namespace MWWorld bool getmisWalking() { - return this.misWalking; + return misWalking; } void setmisWalking(bool setMe) { - this.misWalking = setMe; + misWalking = setMe; } From 1bc9a46c6b2721fff7695f000a1f9a44aeddbc73 Mon Sep 17 00:00:00 2001 From: Star-Demon Date: Mon, 17 Jan 2011 15:48:12 -0500 Subject: [PATCH 11/14] Cleaned up and changed executeAutoMove() --- apps/openmw/mwinput/inputmanager.cpp | 37 +++++++++++++------------ apps/openmw/mwworld/player.cpp | 1 + apps/openmw/mwworld/player.hpp | 40 +++++++++++----------------- 3 files changed, 35 insertions(+), 43 deletions(-) diff --git a/apps/openmw/mwinput/inputmanager.cpp b/apps/openmw/mwinput/inputmanager.cpp index 6e8cb6b2ee..cd2c46715e 100644 --- a/apps/openmw/mwinput/inputmanager.cpp +++ b/apps/openmw/mwinput/inputmanager.cpp @@ -280,38 +280,37 @@ namespace MWInput // Disable movement in Gui mode if(windows.isGuiMode()) return true; - float speed = 300 * evt.timeSinceLastFrame; //is this a placeholder player speed? - float TESTwalkSpeed = 100 * evt.timeSinceLastFrame; //Try this, then. - //float TESTsneakSpeed = 100 * evt.timeSinceLastFrame; //and this. + float speed = 300 * evt.timeSinceLastFrame; //placeholder player speed? + float TESTwalkSpeed = 100 * evt.timeSinceLastFrame; //How about another? float moveX = 0, moveY = 0, moveZ = 0; //execute Automove - condition checked in function - player.executeAutoMove((float)evt.timeSinceLastEvent); //or since last frame? - + player.executeAutoMove((float)evt.timeSinceLastFrame); //or since last frame? + //Poll and execute movement keys - will disable automove if pressed. if(poller.isDown(A_MoveLeft)) { if (player.getmisWalking() == false) - { + { player.setmAutoMove(false); moveX -= speed; - } else { - player.setmAutoMove(false); + } else { + player.setmAutoMove(false); moveX -= TESTwalkSpeed; - } + } } if(poller.isDown(A_MoveRight)) { - if (player.getmisWalking() == false) - { + if (player.getmisWalking() == false) + { player.setmAutoMove(false); moveX += speed; - } else { - player.setmAutoMove(false); + } else { + player.setmAutoMove(false); moveX += TESTwalkSpeed; - } + } } if(poller.isDown(A_MoveForward)) @@ -328,14 +327,14 @@ namespace MWInput if(poller.isDown(A_MoveBackward)) { - if (player.getmisWalking() == false) - { + if (player.getmisWalking() == false) + { player.setmAutoMove(false); moveZ += speed; - } else { - player.setmAutoMove(false); + } else { + player.setmAutoMove(false); moveZ += TESTwalkSpeed; - } + } } diff --git a/apps/openmw/mwworld/player.cpp b/apps/openmw/mwworld/player.cpp index d0d0e00221..b0805269dd 100644 --- a/apps/openmw/mwworld/player.cpp +++ b/apps/openmw/mwworld/player.cpp @@ -63,4 +63,5 @@ namespace MWWorld delete mClass; mClass = new_class; } + } diff --git a/apps/openmw/mwworld/player.hpp b/apps/openmw/mwworld/player.hpp index 972ab7c881..fc2597d89b 100644 --- a/apps/openmw/mwworld/player.hpp +++ b/apps/openmw/mwworld/player.hpp @@ -32,8 +32,6 @@ namespace MWWorld bool mCollisionMode; bool mAutoMove; - //bool misSneaking; - //bool misHidden; bool misWalking; //Testing... public: @@ -114,33 +112,27 @@ namespace MWWorld mCollisionMode = !mCollisionMode; } - bool getmAutoMove() + bool getmAutoMove() { return mAutoMove; - } + } - void setmAutoMove(bool setMe) - { - mAutoMove = setMe; - } - - /// float value representing time since last call - void executeAutoMove(float duration) //call by value for MoveZ makes this harder. - { - if (mAutoMove == true) - { - //TODO: Make player go. - /*Access moveZ, access walking/running speed, -1 is for correct direction, - otherwise you end up running backwards - not a bad idea for a future feature, actually...*/ - /* - if (this.misWalking == false) + void setmAutoMove(bool setMe) { - //inputmanager.moveZ = 300 * duration * -1; - } else { - //inputmanager.moveZ = 100 * duration * -1; + mAutoMove = setMe; } - */ - } + + //NOTE: we don't have speed being calculated yet, so for now this function only requires a frame duration. + /// float value representing time since last call + void executeAutoMove(float duration) + { + if (mAutoMove == true) + { + //if player is running + //Make player go at full speed + //player.moveRel(0, 0, (300*duration*-1)); + //else go forward at walk speed. + } } bool getmisWalking() From 962b8c97810a608498df0a0ebe6e0bc2f04a421a Mon Sep 17 00:00:00 2001 From: Star-Demon Date: Mon, 17 Jan 2011 16:36:44 -0500 Subject: [PATCH 12/14] Cleaned up inputmanager, tightened up player.exectueAutoMove() --- apps/openmw/mwinput/inputmanager.cpp | 45 +++++++--------------------- apps/openmw/mwworld/player.hpp | 5 +++- 2 files changed, 15 insertions(+), 35 deletions(-) diff --git a/apps/openmw/mwinput/inputmanager.cpp b/apps/openmw/mwinput/inputmanager.cpp index cd2c46715e..15e3ba1c01 100644 --- a/apps/openmw/mwinput/inputmanager.cpp +++ b/apps/openmw/mwinput/inputmanager.cpp @@ -281,7 +281,7 @@ namespace MWInput if(windows.isGuiMode()) return true; float speed = 300 * evt.timeSinceLastFrame; //placeholder player speed? - float TESTwalkSpeed = 100 * evt.timeSinceLastFrame; //How about another? + //float TESTwalkSpeed = 100 * evt.timeSinceLastFrame; //How about another? float moveX = 0, moveY = 0, moveZ = 0; @@ -291,51 +291,28 @@ namespace MWInput //Poll and execute movement keys - will disable automove if pressed. if(poller.isDown(A_MoveLeft)) { - if (player.getmisWalking() == false) - { - player.setmAutoMove(false); - moveX -= speed; - } else { - player.setmAutoMove(false); - moveX -= TESTwalkSpeed; - } + player.setmAutoMove(false); + moveX -= speed; + } if(poller.isDown(A_MoveRight)) { - if (player.getmisWalking() == false) - { - player.setmAutoMove(false); - moveX += speed; - } else { - player.setmAutoMove(false); - moveX += TESTwalkSpeed; - } + player.setmAutoMove(false); + moveX += speed; } if(poller.isDown(A_MoveForward)) { - if (player.getmisWalking() == false) - { - player.setmAutoMove(false); - moveZ -= speed; - } else { - player.setmAutoMove(false); - moveZ -= TESTwalkSpeed; + player.setmAutoMove(false); + moveZ -= speed; } - } if(poller.isDown(A_MoveBackward)) { - if (player.getmisWalking() == false) - { - player.setmAutoMove(false); - moveZ += speed; - } else { - player.setmAutoMove(false); - moveZ += TESTwalkSpeed; - } - } + player.setmAutoMove(false); + moveZ += speed; + } // TODO: These should be enabled for floating modes (like diff --git a/apps/openmw/mwworld/player.hpp b/apps/openmw/mwworld/player.hpp index fc2597d89b..335c602ce0 100644 --- a/apps/openmw/mwworld/player.hpp +++ b/apps/openmw/mwworld/player.hpp @@ -126,11 +126,14 @@ namespace MWWorld /// float value representing time since last call void executeAutoMove(float duration) { + float X_Val = 0.0f; + float Y_Val = 0.0f; + float Z_Val = 300.0f * duration * -1.0f; if (mAutoMove == true) { //if player is running //Make player go at full speed - //player.moveRel(0, 0, (300*duration*-1)); + moveRel(X_Val, Y_Val, Z_Val); //else go forward at walk speed. } } From 09023bb85321aa7daa90de998ad68b84ae9210e8 Mon Sep 17 00:00:00 2001 From: Star-Demon Date: Tue, 18 Jan 2011 00:16:01 -0500 Subject: [PATCH 13/14] Toggle now toggles, conventions... --- apps/openmw/mwinput/inputmanager.cpp | 17 +++++++++++------ apps/openmw/mwworld/player.hpp | 8 ++++---- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/apps/openmw/mwinput/inputmanager.cpp b/apps/openmw/mwinput/inputmanager.cpp index 15e3ba1c01..64904d08f4 100644 --- a/apps/openmw/mwinput/inputmanager.cpp +++ b/apps/openmw/mwinput/inputmanager.cpp @@ -143,8 +143,13 @@ namespace MWInput void toggleAutoMove() { - player.setmAutoMove(true); - } + if (player.getmAutoMove() == false) + { + player.setmAutoMove(true); + } else { + player.setmAutoMove(false); + } + } void toggleWalking() { @@ -291,26 +296,26 @@ namespace MWInput //Poll and execute movement keys - will disable automove if pressed. if(poller.isDown(A_MoveLeft)) { - player.setmAutoMove(false); + player.setAutoMove(false); moveX -= speed; } if(poller.isDown(A_MoveRight)) { - player.setmAutoMove(false); + player.setAutoMove(false); moveX += speed; } if(poller.isDown(A_MoveForward)) { - player.setmAutoMove(false); + player.setAutoMove(false); moveZ -= speed; } if(poller.isDown(A_MoveBackward)) { - player.setmAutoMove(false); + player.setAutoMove(false); moveZ += speed; } diff --git a/apps/openmw/mwworld/player.hpp b/apps/openmw/mwworld/player.hpp index 335c602ce0..e46bda486a 100644 --- a/apps/openmw/mwworld/player.hpp +++ b/apps/openmw/mwworld/player.hpp @@ -112,12 +112,12 @@ namespace MWWorld mCollisionMode = !mCollisionMode; } - bool getmAutoMove() + bool getAutoMove() { return mAutoMove; } - void setmAutoMove(bool setMe) + void setAutoMove(bool setMe) { mAutoMove = setMe; } @@ -138,12 +138,12 @@ namespace MWWorld } } - bool getmisWalking() + bool getisWalking() { return misWalking; } - void setmisWalking(bool setMe) + void setisWalking(bool setMe) { misWalking = setMe; } From 588e6e99957af268a64e844751e038af9056d59b Mon Sep 17 00:00:00 2001 From: Star-Demon Date: Tue, 18 Jan 2011 08:36:42 -0500 Subject: [PATCH 14/14] Fixed a syntax error! Oops! --- apps/openmw/mwinput/inputmanager.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/apps/openmw/mwinput/inputmanager.cpp b/apps/openmw/mwinput/inputmanager.cpp index 64904d08f4..009dd635ff 100644 --- a/apps/openmw/mwinput/inputmanager.cpp +++ b/apps/openmw/mwinput/inputmanager.cpp @@ -143,17 +143,17 @@ namespace MWInput void toggleAutoMove() { - if (player.getmAutoMove() == false) + if (player.getAutoMove() == false) { - player.setmAutoMove(true); + player.setAutoMove(true); } else { - player.setmAutoMove(false); + player.setAutoMove(false); } } void toggleWalking() { - player.setmisWalking(true); + player.setisWalking(true); } // Exit program now button (which is disabled in GUI mode)