From 37dc3200d1360410280247ecef7dd024d802b6f4 Mon Sep 17 00:00:00 2001 From: Capostrophic Date: Thu, 19 Apr 2018 23:43:13 +0300 Subject: [PATCH 1/7] Inherit the calling object scale in PlaceAt (fixes #4308) --- apps/openmw/mwscript/transformationextensions.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/openmw/mwscript/transformationextensions.cpp b/apps/openmw/mwscript/transformationextensions.cpp index 68b1063e4..5e617fb1a 100644 --- a/apps/openmw/mwscript/transformationextensions.cpp +++ b/apps/openmw/mwscript/transformationextensions.cpp @@ -530,7 +530,8 @@ namespace MWScript // create item MWWorld::ManualRef ref(MWBase::Environment::get().getWorld()->getStore(), itemID, 1); - MWBase::Environment::get().getWorld()->safePlaceObject(ref.getPtr(), actor, actor.getCell(), direction, distance); + MWWorld::Ptr ptr = MWBase::Environment::get().getWorld()->safePlaceObject(ref.getPtr(), actor, actor.getCell(), direction, distance); + MWBase::Environment::get().getWorld()->scaleObject(ptr, actor.getCellRef().getScale()); } } }; From 48fb6bb9e8ec77b1d5306e8d7e729d2c2d224d8f Mon Sep 17 00:00:00 2001 From: Evgeny Kurnevsky Date: Sat, 21 Apr 2018 16:27:07 +0300 Subject: [PATCH 2/7] Fix crash when rollDice is called with 0. --- components/misc/rng.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/misc/rng.cpp b/components/misc/rng.cpp index dfe0eff40..e402f0b79 100644 --- a/components/misc/rng.cpp +++ b/components/misc/rng.cpp @@ -25,7 +25,7 @@ namespace Misc int Rng::rollDice(int max) { - return std::uniform_int_distribution(0, max - 1)(generator); + return max > 0 ? std::uniform_int_distribution(0, max - 1)(generator) : 0; } } From c025b8f8f3ceab7998c53778cecfdb11f0a2c5ca Mon Sep 17 00:00:00 2001 From: Evgeny Kurnevsky Date: Sat, 21 Apr 2018 16:42:28 +0300 Subject: [PATCH 3/7] Remove useless comparison. --- apps/openmw/mwmechanics/character.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/openmw/mwmechanics/character.cpp b/apps/openmw/mwmechanics/character.cpp index 06e0a42d7..2ef5e07d7 100644 --- a/apps/openmw/mwmechanics/character.cpp +++ b/apps/openmw/mwmechanics/character.cpp @@ -286,7 +286,7 @@ void CharacterController::refreshHitRecoilAnims() } else if (recovery) { - std::string anim = isSwimming ? chooseRandomGroup("swimhit") : chooseRandomGroup("hit"); + std::string anim = chooseRandomGroup("swimhit"); if (isSwimming && mAnimation->hasAnimation(anim)) { mHitState = CharState_SwimHit; From f0288282bef8e3c3f20fd68910a43707fa6c9744 Mon Sep 17 00:00:00 2001 From: Alexander Olofsson Date: Sun, 22 Apr 2018 12:40:22 +0200 Subject: [PATCH 4/7] Slight appdata cleanup and improvement --- files/openmw.appdata.xml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/files/openmw.appdata.xml b/files/openmw.appdata.xml index 1503c2fd8..e66fb2978 100644 --- a/files/openmw.appdata.xml +++ b/files/openmw.appdata.xml @@ -3,10 +3,10 @@ Copyright 2015 Alexandre Moine Copyright 2017 Bret Curtis --> - + org.openmw.desktop CC0-1.0 - GPL-3.0 and MIT + GPL-3.0 and MIT OpenMW Unofficial open source engine re-implementation of the game Morrowind @@ -20,7 +20,6 @@ Copyright 2017 Bret Curtis You will still need the original game data to play OpenMW.

- https://wiki.openmw.org/images/b/b2/Openmw_0.11.1_launcher_1.png @@ -34,7 +33,18 @@ Copyright 2017 Bret Curtis https://wiki.openmw.org/images/5/5b/Screenshot_Vivec_seen_from_Ebonheart_0.35.png Vivec seen from Ebonheart on OpenMW + + http://wiki.openmw.org/images/a/a3/0.40_Screenshot-Balmora_3.png + Balmora at morning on OpenMW + + + Game + RolePlaying + + + + https://openmw.org https://bugs.openmw.org/ https://openmw.org/faq/ From 55a6344fb0dca253c2177a1bacd8e5c51ec989ba Mon Sep 17 00:00:00 2001 From: scrawl <720642+scrawl@users.noreply.github.com> Date: Sun, 22 Apr 2018 15:41:07 +0000 Subject: [PATCH 5/7] Revert log spam --- components/fallback/fallback.cpp | 3 --- 1 file changed, 3 deletions(-) diff --git a/components/fallback/fallback.cpp b/components/fallback/fallback.cpp index ce6cba313..edc3f2678 100644 --- a/components/fallback/fallback.cpp +++ b/components/fallback/fallback.cpp @@ -1,7 +1,5 @@ #include "fallback.hpp" -#include - #include @@ -19,7 +17,6 @@ namespace Fallback std::map::const_iterator it; if((it = mFallbackMap.find(fall)) == mFallbackMap.end()) { - std::cerr << "Warning: fallback value " << fall << " not found." << std::endl; return ""; } return it->second; From 9073e4d4baf1cf5116c4ab456a5a42ecc321fb01 Mon Sep 17 00:00:00 2001 From: Capostrophic Date: Sat, 21 Apr 2018 22:20:07 +0300 Subject: [PATCH 6/7] Initialize playlist file list in playPlaylist (fixes #4134) --- apps/openmw/mwsound/soundmanagerimp.cpp | 53 +++++++++++++------------ 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/apps/openmw/mwsound/soundmanagerimp.cpp b/apps/openmw/mwsound/soundmanagerimp.cpp index a798d350c..db02bb482 100644 --- a/apps/openmw/mwsound/soundmanagerimp.cpp +++ b/apps/openmw/mwsound/soundmanagerimp.cpp @@ -393,32 +393,8 @@ namespace MWSound void SoundManager::startRandomTitle() { - std::vector filelist; + const std::vector &filelist = mMusicFiles[mCurrentPlaylist]; auto &tracklist = mMusicToPlay[mCurrentPlaylist]; - if (mMusicFiles.find(mCurrentPlaylist) == mMusicFiles.end()) - { - const std::map& index = mVFS->getIndex(); - - std::string pattern = "Music/" + mCurrentPlaylist; - mVFS->normalizeFilename(pattern); - - std::map::const_iterator found = index.lower_bound(pattern); - while (found != index.end()) - { - if (found->first.size() >= pattern.size() && found->first.substr(0, pattern.size()) == pattern) - filelist.push_back(found->first); - else - break; - ++found; - } - - mMusicFiles[mCurrentPlaylist] = filelist; - } - else - filelist = mMusicFiles[mCurrentPlaylist]; - - if(filelist.empty()) - return; // Do a Fisher-Yates shuffle @@ -454,6 +430,33 @@ namespace MWSound void SoundManager::playPlaylist(const std::string &playlist) { + if (mCurrentPlaylist == playlist) + return; + + if (mMusicFiles.find(playlist) == mMusicFiles.end()) + { + std::vector filelist; + const std::map& index = mVFS->getIndex(); + + std::string pattern = "Music/" + playlist; + mVFS->normalizeFilename(pattern); + + std::map::const_iterator found = index.lower_bound(pattern); + while (found != index.end()) + { + if (found->first.size() >= pattern.size() && found->first.substr(0, pattern.size()) == pattern) + filelist.push_back(found->first); + else + break; + ++found; + } + + mMusicFiles[playlist] = filelist; + } + + if (mMusicFiles[playlist].empty()) + return; + mCurrentPlaylist = playlist; startRandomTitle(); } From 4cc65239ff1c33269a1e56c15038b02503af808e Mon Sep 17 00:00:00 2001 From: scrawl <720642+scrawl@users.noreply.github.com> Date: Wed, 25 Apr 2018 10:21:58 +0000 Subject: [PATCH 7/7] Add section on dealing with regressions --- CONTRIBUTING.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4b2b4dfdd..4805bff3b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -103,6 +103,10 @@ To be able to merge PRs, commit priviledges are required. If you do not have the The person to merge the PR may either use github's Merge button or if using the command line, use the ```--no-ff``` flag (so a merge commit is created, just like with Github's merge button) and include the pull request number in the commit description. +Dealing with regressions +======================== + +The master branch should always be in a working state that is not worse than the previous release in any way. If a regression is found, the first and foremost priority should be to get the regression fixed quickly, either by reverting the change that caused it or finding a better solution. Please avoid leaving the project in the 'broken' state for an extensive period of time while proper solutions are found. If the solution takes more than a day or so then it is usually better to revert the offending change first and reapply it later when fixed. Other resources ===============