forked from teamnwah/openmw-tes3coop
bugfix
This commit is contained in:
parent
fb91f76a2b
commit
f2d080d091
1 changed files with 11 additions and 7 deletions
|
@ -185,7 +185,7 @@ namespace MWScript
|
||||||
float ax = ptr.getRefData().getPosition().pos[0];
|
float ax = ptr.getRefData().getPosition().pos[0];
|
||||||
float ay = ptr.getRefData().getPosition().pos[1];
|
float ay = ptr.getRefData().getPosition().pos[1];
|
||||||
float az = ptr.getRefData().getPosition().pos[2];
|
float az = ptr.getRefData().getPosition().pos[2];
|
||||||
std::cout << "setPos";
|
|
||||||
|
|
||||||
if(axis == "x")
|
if(axis == "x")
|
||||||
{
|
{
|
||||||
|
@ -252,28 +252,32 @@ namespace MWScript
|
||||||
MWWorld::CellStore* store = 0;
|
MWWorld::CellStore* store = 0;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
MWWorld::CellStore* store = MWBase::Environment::get().getWorld()->getInterior(cellID);
|
store = MWBase::Environment::get().getWorld()->getInterior(cellID);
|
||||||
}
|
}
|
||||||
catch(std::exception &e)
|
catch(std::exception &e)
|
||||||
{
|
{
|
||||||
const ESM::Cell* cell = MWBase::Environment::get().getWorld()->getExterior(cellID);
|
/*const ESM::Cell* cell = MWBase::Environment::get().getWorld()->getExterior(cellID);
|
||||||
if(cell)
|
if(cell)
|
||||||
{
|
{
|
||||||
store = MWBase::Environment::get().getWorld()->getExterior(cell->getGridX(),cell->getGridY());
|
store = MWBase::Environment::get().getWorld()->getExterior(cell->getGridX(),cell->getGridY());
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
if(store)
|
if(store)
|
||||||
{
|
{
|
||||||
MWBase::Environment::get().getWorld()->moveObject(ptr,*store,x,y,z);
|
MWBase::Environment::get().getWorld()->moveObject(ptr,*store,x,y,z);
|
||||||
float ax = Ogre::Radian(ptr.getRefData().getPosition().rot[0]).valueDegrees();
|
float ax = Ogre::Radian(ptr.getRefData().getPosition().rot[0]).valueDegrees();
|
||||||
float ay = Ogre::Radian(ptr.getRefData().getPosition().rot[1]).valueDegrees();
|
float ay = Ogre::Radian(ptr.getRefData().getPosition().rot[1]).valueDegrees();
|
||||||
if(ptr.getTypeName() == "struct ESM::NPC")//some morrowind oddity
|
if(ptr.getTypeName() == typeid(ESM::NPC).name())//some morrowind oddity
|
||||||
{
|
{
|
||||||
ax = ax/60.;
|
ax = ax/60.;
|
||||||
ay = ay/60.;
|
ay = ay/60.;
|
||||||
zRot = zRot/60.;
|
zRot = zRot/60.;
|
||||||
}
|
}
|
||||||
MWBase::Environment::get().getWorld()->rotateObject(ptr,ax,ay,zRot);
|
//MWBase::Environment::get().getWorld()->rotateObject(ptr,ax,ay,zRot);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw std::runtime_error ("unknown cell");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -301,7 +305,7 @@ namespace MWScript
|
||||||
*MWBase::Environment::get().getWorld()->getExterior(cx,cy),x,y,z);
|
*MWBase::Environment::get().getWorld()->getExterior(cx,cy),x,y,z);
|
||||||
float ax = Ogre::Radian(ptr.getRefData().getPosition().rot[0]).valueDegrees();
|
float ax = Ogre::Radian(ptr.getRefData().getPosition().rot[0]).valueDegrees();
|
||||||
float ay = Ogre::Radian(ptr.getRefData().getPosition().rot[1]).valueDegrees();
|
float ay = Ogre::Radian(ptr.getRefData().getPosition().rot[1]).valueDegrees();
|
||||||
if(ptr.getTypeName() == "struct ESM::NPC")//some morrowind oddity
|
if(ptr.getTypeName() == typeid(ESM::NPC).name())//some morrowind oddity
|
||||||
{
|
{
|
||||||
ax = ax/60.;
|
ax = ax/60.;
|
||||||
ay = ay/60.;
|
ay = ay/60.;
|
||||||
|
|
Loading…
Reference in a new issue