This commit is contained in:
gugus 2012-08-18 10:50:58 +02:00
parent fb91f76a2b
commit f2d080d091

View file

@ -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.;