forked from teamnwah/openmw-tes3coop
Merge pull request #412 from OpenMW/master while resolving conflicts
# Conflicts: # apps/openmw/mwscript/transformationextensions.cpp
This commit is contained in:
commit
7db74509e0
7 changed files with 48 additions and 33 deletions
|
@ -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.
|
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
|
Other resources
|
||||||
===============
|
===============
|
||||||
|
|
|
@ -302,7 +302,7 @@ void CharacterController::refreshHitRecoilAnims()
|
||||||
}
|
}
|
||||||
else if (recovery)
|
else if (recovery)
|
||||||
{
|
{
|
||||||
std::string anim = isSwimming ? chooseRandomGroup("swimhit") : chooseRandomGroup("hit");
|
std::string anim = chooseRandomGroup("swimhit");
|
||||||
if (isSwimming && mAnimation->hasAnimation(anim))
|
if (isSwimming && mAnimation->hasAnimation(anim))
|
||||||
{
|
{
|
||||||
mHitState = CharState_SwimHit;
|
mHitState = CharState_SwimHit;
|
||||||
|
|
|
@ -574,6 +574,7 @@ namespace MWScript
|
||||||
MWWorld::ManualRef ref(MWBase::Environment::get().getWorld()->getStore(), itemID, 1);
|
MWWorld::ManualRef ref(MWBase::Environment::get().getWorld()->getStore(), itemID, 1);
|
||||||
|
|
||||||
MWWorld::Ptr ptr = 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());
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Start of tes3mp addition
|
Start of tes3mp addition
|
||||||
|
|
|
@ -393,32 +393,8 @@ namespace MWSound
|
||||||
|
|
||||||
void SoundManager::startRandomTitle()
|
void SoundManager::startRandomTitle()
|
||||||
{
|
{
|
||||||
std::vector<std::string> filelist;
|
const std::vector<std::string> &filelist = mMusicFiles[mCurrentPlaylist];
|
||||||
auto &tracklist = mMusicToPlay[mCurrentPlaylist];
|
auto &tracklist = mMusicToPlay[mCurrentPlaylist];
|
||||||
if (mMusicFiles.find(mCurrentPlaylist) == mMusicFiles.end())
|
|
||||||
{
|
|
||||||
const std::map<std::string, VFS::File*>& index = mVFS->getIndex();
|
|
||||||
|
|
||||||
std::string pattern = "Music/" + mCurrentPlaylist;
|
|
||||||
mVFS->normalizeFilename(pattern);
|
|
||||||
|
|
||||||
std::map<std::string, VFS::File*>::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
|
// Do a Fisher-Yates shuffle
|
||||||
|
|
||||||
|
@ -454,6 +430,33 @@ namespace MWSound
|
||||||
|
|
||||||
void SoundManager::playPlaylist(const std::string &playlist)
|
void SoundManager::playPlaylist(const std::string &playlist)
|
||||||
{
|
{
|
||||||
|
if (mCurrentPlaylist == playlist)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (mMusicFiles.find(playlist) == mMusicFiles.end())
|
||||||
|
{
|
||||||
|
std::vector<std::string> filelist;
|
||||||
|
const std::map<std::string, VFS::File*>& index = mVFS->getIndex();
|
||||||
|
|
||||||
|
std::string pattern = "Music/" + playlist;
|
||||||
|
mVFS->normalizeFilename(pattern);
|
||||||
|
|
||||||
|
std::map<std::string, VFS::File*>::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;
|
mCurrentPlaylist = playlist;
|
||||||
startRandomTitle();
|
startRandomTitle();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
#include "fallback.hpp"
|
#include "fallback.hpp"
|
||||||
|
|
||||||
#include <iostream>
|
|
||||||
|
|
||||||
#include <boost/lexical_cast.hpp>
|
#include <boost/lexical_cast.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
@ -19,7 +17,6 @@ namespace Fallback
|
||||||
std::map<std::string,std::string>::const_iterator it;
|
std::map<std::string,std::string>::const_iterator it;
|
||||||
if((it = mFallbackMap.find(fall)) == mFallbackMap.end())
|
if((it = mFallbackMap.find(fall)) == mFallbackMap.end())
|
||||||
{
|
{
|
||||||
std::cerr << "Warning: fallback value " << fall << " not found." << std::endl;
|
|
||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
return it->second;
|
return it->second;
|
||||||
|
|
|
@ -25,7 +25,7 @@ namespace Misc
|
||||||
|
|
||||||
int Rng::rollDice(int max)
|
int Rng::rollDice(int max)
|
||||||
{
|
{
|
||||||
return std::uniform_int_distribution<int>(0, max - 1)(generator);
|
return max > 0 ? std::uniform_int_distribution<int>(0, max - 1)(generator) : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,10 +3,10 @@
|
||||||
Copyright 2015 Alexandre Moine <nobrakal@gmail.com>
|
Copyright 2015 Alexandre Moine <nobrakal@gmail.com>
|
||||||
Copyright 2017 Bret Curtis <psi29a@gmail.com>
|
Copyright 2017 Bret Curtis <psi29a@gmail.com>
|
||||||
-->
|
-->
|
||||||
<component>
|
<component type="desktop">
|
||||||
<id>org.openmw.desktop</id>
|
<id>org.openmw.desktop</id>
|
||||||
<metadata_license>CC0-1.0</metadata_license>
|
<metadata_license>CC0-1.0</metadata_license>
|
||||||
<project_license> GPL-3.0 and MIT</project_license>
|
<project_license>GPL-3.0 and MIT</project_license>
|
||||||
<name>OpenMW</name>
|
<name>OpenMW</name>
|
||||||
<summary>Unofficial open source engine re-implementation of the game Morrowind</summary>
|
<summary>Unofficial open source engine re-implementation of the game Morrowind</summary>
|
||||||
<description>
|
<description>
|
||||||
|
@ -20,7 +20,6 @@ Copyright 2017 Bret Curtis <psi29a@gmail.com>
|
||||||
You will still need the original game data to play OpenMW.
|
You will still need the original game data to play OpenMW.
|
||||||
</p>
|
</p>
|
||||||
</description>
|
</description>
|
||||||
|
|
||||||
<screenshots>
|
<screenshots>
|
||||||
<screenshot type="default">
|
<screenshot type="default">
|
||||||
<image>https://wiki.openmw.org/images/b/b2/Openmw_0.11.1_launcher_1.png</image>
|
<image>https://wiki.openmw.org/images/b/b2/Openmw_0.11.1_launcher_1.png</image>
|
||||||
|
@ -34,7 +33,18 @@ Copyright 2017 Bret Curtis <psi29a@gmail.com>
|
||||||
<image>https://wiki.openmw.org/images/5/5b/Screenshot_Vivec_seen_from_Ebonheart_0.35.png</image>
|
<image>https://wiki.openmw.org/images/5/5b/Screenshot_Vivec_seen_from_Ebonheart_0.35.png</image>
|
||||||
<caption>Vivec seen from Ebonheart on OpenMW</caption>
|
<caption>Vivec seen from Ebonheart on OpenMW</caption>
|
||||||
</screenshot>
|
</screenshot>
|
||||||
|
<screenshot>
|
||||||
|
<image>http://wiki.openmw.org/images/a/a3/0.40_Screenshot-Balmora_3.png</image>
|
||||||
|
<caption>Balmora at morning on OpenMW</caption>
|
||||||
|
</screenshot>
|
||||||
</screenshots>
|
</screenshots>
|
||||||
|
<categories>
|
||||||
|
<category>Game</category>
|
||||||
|
<category>RolePlaying</category>
|
||||||
|
</categories>
|
||||||
|
<releases>
|
||||||
|
<release version="0.43.0" date="2017-12-05"/>
|
||||||
|
</releases>
|
||||||
<url type="homepage">https://openmw.org</url>
|
<url type="homepage">https://openmw.org</url>
|
||||||
<url type="bugtracker">https://bugs.openmw.org/</url>
|
<url type="bugtracker">https://bugs.openmw.org/</url>
|
||||||
<url type="faq">https://openmw.org/faq/</url>
|
<url type="faq">https://openmw.org/faq/</url>
|
||||||
|
|
Loading…
Reference in a new issue