mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-03-03 21:49:41 +00:00
Fix comparing outdated listener position with up-to-date cell (Fixes #1499)
This commit is contained in:
parent
2bcbc6ab7d
commit
09926a86cb
2 changed files with 9 additions and 5 deletions
|
@ -42,6 +42,7 @@ namespace MWSound
|
||||||
, mListenerPos(0,0,0)
|
, mListenerPos(0,0,0)
|
||||||
, mListenerDir(1,0,0)
|
, mListenerDir(1,0,0)
|
||||||
, mListenerUp(0,0,1)
|
, mListenerUp(0,0,1)
|
||||||
|
, mListenerUnderwater(false)
|
||||||
{
|
{
|
||||||
if(!useSound)
|
if(!useSound)
|
||||||
return;
|
return;
|
||||||
|
@ -584,12 +585,8 @@ namespace MWSound
|
||||||
if(!isMusicPlaying())
|
if(!isMusicPlaying())
|
||||||
startRandomTitle();
|
startRandomTitle();
|
||||||
|
|
||||||
MWWorld::Ptr player =
|
|
||||||
MWBase::Environment::get().getWorld()->getPlayerPtr();
|
|
||||||
const ESM::Cell *cell = player.getCell()->getCell();
|
|
||||||
|
|
||||||
Environment env = Env_Normal;
|
Environment env = Env_Normal;
|
||||||
if((cell->mData.mFlags&cell->HasWater) && mListenerPos.z < cell->mWater)
|
if (mListenerUnderwater)
|
||||||
{
|
{
|
||||||
env = Env_Underwater;
|
env = Env_Underwater;
|
||||||
//play underwater sound
|
//play underwater sound
|
||||||
|
@ -682,6 +679,12 @@ namespace MWSound
|
||||||
mListenerPos = pos;
|
mListenerPos = pos;
|
||||||
mListenerDir = dir;
|
mListenerDir = dir;
|
||||||
mListenerUp = up;
|
mListenerUp = up;
|
||||||
|
|
||||||
|
MWWorld::Ptr player =
|
||||||
|
MWBase::Environment::get().getWorld()->getPlayerPtr();
|
||||||
|
const ESM::Cell *cell = player.getCell()->getCell();
|
||||||
|
|
||||||
|
mListenerUnderwater = ((cell->mData.mFlags&cell->HasWater) && mListenerPos.z < cell->mWater);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SoundManager::updatePtr(const MWWorld::Ptr &old, const MWWorld::Ptr &updated)
|
void SoundManager::updatePtr(const MWWorld::Ptr &old, const MWWorld::Ptr &updated)
|
||||||
|
|
|
@ -50,6 +50,7 @@ namespace MWSound
|
||||||
|
|
||||||
MWBase::SoundPtr mUnderwaterSound;
|
MWBase::SoundPtr mUnderwaterSound;
|
||||||
|
|
||||||
|
bool mListenerUnderwater;
|
||||||
Ogre::Vector3 mListenerPos;
|
Ogre::Vector3 mListenerPos;
|
||||||
Ogre::Vector3 mListenerDir;
|
Ogre::Vector3 mListenerDir;
|
||||||
Ogre::Vector3 mListenerUp;
|
Ogre::Vector3 mListenerUp;
|
||||||
|
|
Loading…
Reference in a new issue