mirror of
https://github.com/OpenMW/openmw.git
synced 2025-02-01 14:45:33 +00:00
Handle always run in the inputmanager, instead of using forced stance.
This commit is contained in:
parent
2d8f0949a4
commit
5b943a965f
7 changed files with 7 additions and 23 deletions
|
@ -84,7 +84,7 @@ namespace MWClass
|
||||||
|
|
||||||
virtual bool getStance (const MWWorld::Ptr& ptr, Stance stance, bool ignoreForce = false)
|
virtual bool getStance (const MWWorld::Ptr& ptr, Stance stance, bool ignoreForce = false)
|
||||||
const;
|
const;
|
||||||
////< Check if a stance is active or not.
|
///< Check if a stance is active or not.
|
||||||
|
|
||||||
virtual float getSpeed (const MWWorld::Ptr& ptr) const;
|
virtual float getSpeed (const MWWorld::Ptr& ptr) const;
|
||||||
///< Return movement speed.
|
///< Return movement speed.
|
||||||
|
|
|
@ -55,6 +55,7 @@ namespace MWInput
|
||||||
, mPreviewPOVDelay(0.f)
|
, mPreviewPOVDelay(0.f)
|
||||||
, mTimeIdle(0.f)
|
, mTimeIdle(0.f)
|
||||||
, mOverencumberedMessageDelay(0.f)
|
, mOverencumberedMessageDelay(0.f)
|
||||||
|
, mAlwaysRunActive(false)
|
||||||
{
|
{
|
||||||
Ogre::RenderWindow* window = mOgre.getWindow ();
|
Ogre::RenderWindow* window = mOgre.getWindow ();
|
||||||
size_t windowHnd;
|
size_t windowHnd;
|
||||||
|
@ -315,10 +316,10 @@ namespace MWInput
|
||||||
else
|
else
|
||||||
mPlayer.setUpDown (0);
|
mPlayer.setUpDown (0);
|
||||||
|
|
||||||
if(actionIsActive(A_Run))
|
if (mAlwaysRunActive)
|
||||||
mPlayer.setRunState(true);
|
mPlayer.setRunState(!actionIsActive(A_Run));
|
||||||
else
|
else
|
||||||
mPlayer.setRunState(false);
|
mPlayer.setRunState(actionIsActive(A_Run));
|
||||||
|
|
||||||
// if player tried to start moving, but can't (due to being overencumbered), display a notification.
|
// if player tried to start moving, but can't (due to being overencumbered), display a notification.
|
||||||
if (triedToMove)
|
if (triedToMove)
|
||||||
|
@ -699,7 +700,7 @@ namespace MWInput
|
||||||
void InputManager::toggleWalking()
|
void InputManager::toggleWalking()
|
||||||
{
|
{
|
||||||
if (mWindows.isGuiMode()) return;
|
if (mWindows.isGuiMode()) return;
|
||||||
mPlayer.toggleRunning();
|
mAlwaysRunActive = !mAlwaysRunActive;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Exit program now button (which is disabled in GUI mode)
|
// Exit program now button (which is disabled in GUI mode)
|
||||||
|
|
|
@ -152,6 +152,7 @@ namespace MWInput
|
||||||
int mMouseWheel;
|
int mMouseWheel;
|
||||||
bool mDebug;
|
bool mDebug;
|
||||||
bool mUserFileExists;
|
bool mUserFileExists;
|
||||||
|
bool mAlwaysRunActive;
|
||||||
|
|
||||||
std::map<std::string, bool> mControlSwitch;
|
std::map<std::string, bool> mControlSwitch;
|
||||||
|
|
||||||
|
|
|
@ -117,11 +117,6 @@ namespace MWWorld
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Class::getForceStance (const Ptr& ptr, Stance stance) const
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
float Class::getSpeed (const Ptr& ptr) const
|
float Class::getSpeed (const Ptr& ptr) const
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
@ -131,9 +131,6 @@ namespace MWWorld
|
||||||
virtual void setForceStance (const Ptr& ptr, Stance stance, bool force) const;
|
virtual void setForceStance (const Ptr& ptr, Stance stance, bool force) const;
|
||||||
///< Force or unforce a stance.
|
///< Force or unforce a stance.
|
||||||
|
|
||||||
virtual bool getForceStance (const Ptr& ptr, Stance stance) const;
|
|
||||||
///< Check if a stance forced.
|
|
||||||
|
|
||||||
virtual void setStance (const Ptr& ptr, Stance stance, bool set) const;
|
virtual void setStance (const Ptr& ptr, Stance stance, bool set) const;
|
||||||
///< Set or unset a stance.
|
///< Set or unset a stance.
|
||||||
|
|
||||||
|
|
|
@ -77,15 +77,6 @@ namespace MWWorld
|
||||||
MWWorld::Class::get(ptr).setStance(ptr, MWWorld::Class::Run, run);
|
MWWorld::Class::get(ptr).setStance(ptr, MWWorld::Class::Run, run);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Player::toggleRunning()
|
|
||||||
{
|
|
||||||
MWWorld::Ptr ptr = getPlayer();
|
|
||||||
|
|
||||||
bool running = MWWorld::Class::get (ptr).getForceStance(ptr, MWWorld::Class::Run);
|
|
||||||
|
|
||||||
MWWorld::Class::get (ptr).setForceStance(ptr, MWWorld::Class::Run, !running);
|
|
||||||
}
|
|
||||||
|
|
||||||
void Player::setSneak(bool sneak)
|
void Player::setSneak(bool sneak)
|
||||||
{
|
{
|
||||||
MWWorld::Ptr ptr = getPlayer();
|
MWWorld::Ptr ptr = getPlayer();
|
||||||
|
|
|
@ -66,7 +66,6 @@ namespace MWWorld
|
||||||
void setUpDown(int value);
|
void setUpDown(int value);
|
||||||
|
|
||||||
void setRunState(bool run);
|
void setRunState(bool run);
|
||||||
void toggleRunning();
|
|
||||||
void setSneak(bool sneak);
|
void setSneak(bool sneak);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue