forked from teamnwah/openmw-tes3coop
stub for soundmanager, adjust rotation mode
This commit is contained in:
parent
378fcc2460
commit
df60f4bf92
2 changed files with 18 additions and 5 deletions
|
@ -263,6 +263,11 @@ RenderingManager::rotateObject(
|
|||
}
|
||||
MWWorld::Class::get(ptr).adjustRotation(ptr, rot.x, rot.y, rot.z);
|
||||
|
||||
if (adjust) {
|
||||
float *f = ptr.getRefData().getPosition().rot;
|
||||
rot.x += f[0], rot.y += f[1], rot.z += f[2];
|
||||
}
|
||||
|
||||
Ogre::Quaternion xr(Ogre::Degree(rot.x), Ogre::Vector3::UNIT_X);
|
||||
Ogre::Quaternion yr(Ogre::Degree(-rot.z), Ogre::Vector3::UNIT_Y);
|
||||
Ogre::Quaternion zr(Ogre::Degree(rot.y), Ogre::Vector3::UNIT_Z);
|
||||
|
|
|
@ -13,8 +13,6 @@
|
|||
|
||||
#include "../mwworld/player.hpp"
|
||||
|
||||
#include "../mwrender/player.hpp"
|
||||
|
||||
#include "sound_output.hpp"
|
||||
#include "sound_decoder.hpp"
|
||||
#include "sound.hpp"
|
||||
|
@ -491,9 +489,17 @@ namespace MWSound
|
|||
if(!isMusicPlaying())
|
||||
startRandomTitle();
|
||||
|
||||
const ESM::Cell *cell = MWBase::Environment::get().getWorld()->getPlayer().getPlayer().getCell()->cell;
|
||||
MWWorld::Ptr player =
|
||||
MWBase::Environment::get().getWorld()->getPlayer().getPlayer();
|
||||
const ESM::Cell *cell = player.getCell()->cell;
|
||||
// Ogre::Camera *cam = MWBase::Environment::get().getWorld()->getPlayer().getRenderer()->getCamera();
|
||||
Ogre::Vector3 nPos, nDir, nUp;
|
||||
Ogre::Vector3 pos, at, up = Ogre::Vector3::UNIT_Z;
|
||||
|
||||
float *fval = player.getRefData().getPosition().pos;
|
||||
pos.x = fval[0], pos.y = fval[1], pos.z = fval[2];
|
||||
|
||||
fval = player.getRefData().getPosition().rot;
|
||||
at.x = fval[0], at.y = fval[1], at.z = fval[2];
|
||||
/*
|
||||
nPos = cam->getRealPosition();
|
||||
nDir = cam->getRealDirection();
|
||||
|
@ -501,15 +507,17 @@ namespace MWSound
|
|||
*/
|
||||
|
||||
Environment env = Env_Normal;
|
||||
if((cell->data.flags&cell->HasWater) && nPos.y < cell->water)
|
||||
if((cell->data.flags&cell->HasWater) && pos.z < cell->water)
|
||||
env = Env_Underwater;
|
||||
|
||||
// The output handler is expecting vectors oriented like the game
|
||||
// (that is, -Z goes down, +Y goes forward), but that's not what we
|
||||
// get from Ogre's camera, so we have to convert.
|
||||
/*
|
||||
const Ogre::Vector3 pos(nPos[0], -nPos[2], nPos[1]);
|
||||
const Ogre::Vector3 at(nDir[0], -nDir[2], nDir[1]);
|
||||
const Ogre::Vector3 up(nUp[0], -nUp[2], nUp[1]);
|
||||
*/
|
||||
|
||||
mOutput->updateListener(pos, at, up, env);
|
||||
|
||||
|
|
Loading…
Reference in a new issue