mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-02-24 09:39:51 +00:00
Keep jailing state for one frame after leaving jail (bug #3788)
This commit is contained in:
parent
9dfd775bf2
commit
4003fa1296
@ -19,6 +19,7 @@
|
||||
Bug #3486: [Mod] NPC Commands does not work
|
||||
Bug #3591: Angled hit distance too low
|
||||
Bug #3629: DB assassin attack never triggers creature spawning
|
||||
Bug #3788: GetPCInJail and GetPCTraveling do not work as in vanilla
|
||||
Bug #3876: Landscape texture painting is misaligned
|
||||
Bug #3897: Have Goodbye give all choices the effects of Goodbye
|
||||
Bug #3911: [macOS] Typing in the "Content List name" dialog box produces double characters
|
||||
|
@ -154,7 +154,7 @@ namespace MWWorld
|
||||
mActivationDistanceOverride (activationDistanceOverride), mStartupScript(startupScript),
|
||||
mStartCell (startCell), mDistanceToFacedObject(-1), mTeleportEnabled(true),
|
||||
mLevitationEnabled(true), mGoToJail(false), mDaysInPrison(0),
|
||||
mPlayerTraveling(false), mSpellPreloadTimer(0.f)
|
||||
mPlayerTraveling(false), mPlayerInJail(false), mSpellPreloadTimer(0.f)
|
||||
{
|
||||
mPhysics.reset(new MWPhysics::PhysicsSystem(resourceSystem, rootNode));
|
||||
mRendering.reset(new MWRender::RenderingManager(viewer, rootNode, resourceSystem, workQueue, &mFallback, resourcePath));
|
||||
@ -313,6 +313,7 @@ namespace MWWorld
|
||||
mTeleportEnabled = true;
|
||||
mLevitationEnabled = true;
|
||||
mPlayerTraveling = false;
|
||||
mPlayerInJail = false;
|
||||
|
||||
fillGlobalVariables();
|
||||
}
|
||||
@ -1641,11 +1642,17 @@ namespace MWWorld
|
||||
|
||||
void World::update (float duration, bool paused)
|
||||
{
|
||||
if (mGoToJail && !paused)
|
||||
goToJail();
|
||||
|
||||
// Reset "traveling" flag - there was a frame to detect traveling.
|
||||
mPlayerTraveling = false;
|
||||
|
||||
if (mGoToJail && !paused)
|
||||
goToJail();
|
||||
// The same thing for "in jail" flag: reset it if:
|
||||
// 1. Player was in jail
|
||||
// 2. Jailing window was closed
|
||||
if (mPlayerInJail && !mGoToJail && !MWBase::Environment::get().getWindowManager()->containsMode(MWGui::GM_Jail))
|
||||
mPlayerInJail = false;
|
||||
|
||||
updateWeather(duration, paused);
|
||||
|
||||
@ -3286,6 +3293,7 @@ namespace MWWorld
|
||||
{
|
||||
// Reset bounty and forget the crime now, but don't change cell yet (the player should be able to read the dialog text first)
|
||||
mGoToJail = true;
|
||||
mPlayerInJail = true;
|
||||
|
||||
MWWorld::Ptr player = getPlayerPtr();
|
||||
|
||||
@ -3311,10 +3319,7 @@ namespace MWWorld
|
||||
|
||||
bool World::isPlayerInJail() const
|
||||
{
|
||||
if (mGoToJail)
|
||||
return true;
|
||||
|
||||
return MWBase::Environment::get().getWindowManager()->containsMode(MWGui::GM_Jail);
|
||||
return mPlayerInJail;
|
||||
}
|
||||
|
||||
void World::setPlayerTraveling(bool traveling)
|
||||
|
@ -169,6 +169,7 @@ namespace MWWorld
|
||||
bool mGoToJail;
|
||||
int mDaysInPrison;
|
||||
bool mPlayerTraveling;
|
||||
bool mPlayerInJail;
|
||||
|
||||
float mSpellPreloadTimer;
|
||||
|
||||
@ -673,8 +674,8 @@ namespace MWWorld
|
||||
|
||||
bool isPlayerInJail() const override;
|
||||
|
||||
void setPlayerTraveling(bool traveling);
|
||||
bool isPlayerTraveling() const;
|
||||
void setPlayerTraveling(bool traveling) override;
|
||||
bool isPlayerTraveling() const override;
|
||||
|
||||
/// Return terrain height at \a worldPos position.
|
||||
float getTerrainHeightAt(const osg::Vec3f& worldPos) const override;
|
||||
|
Loading…
x
Reference in New Issue
Block a user