1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-29 21:45:32 +00:00

if cell doesn't exist, PositionCell and PlaceItemCell warn std::err but still execute, bug #2407

This commit is contained in:
Scott Howard 2015-03-02 11:53:59 -05:00
parent 64938b3796
commit 53213bf236

View file

@ -310,12 +310,13 @@ namespace MWScript
}
catch(std::exception&)
{
const ESM::Cell* cell = MWBase::Environment::get().getWorld()->getExterior(cellID);
if(cell)
const ESM::Cell* cell = MWBase::Environment::get().getWorld()->getExterior(cellID);
int cx,cy;
MWBase::Environment::get().getWorld()->positionToIndex(x,y,cx,cy);
store = MWBase::Environment::get().getWorld()->getExterior(cx,cy);
if(!cell)
{
int cx,cy;
MWBase::Environment::get().getWorld()->positionToIndex(x,y,cx,cy);
store = MWBase::Environment::get().getWorld()->getExterior(cx,cy);
std::cerr << "unknown cell (" << cellID << ")\n";
}
}
if(store)
@ -335,10 +336,6 @@ namespace MWScript
ptr.getClass().adjustPosition(ptr, false);
}
else
{
throw std::runtime_error (std::string("unknown cell (") + cellID + ")");
}
}
};
@ -426,11 +423,12 @@ namespace MWScript
catch(std::exception&)
{
const ESM::Cell* cell = MWBase::Environment::get().getWorld()->getExterior(cellID);
if(cell)
int cx,cy;
MWBase::Environment::get().getWorld()->positionToIndex(x,y,cx,cy);
store = MWBase::Environment::get().getWorld()->getExterior(cx,cy);
if(!cell)
{
int cx,cy;
MWBase::Environment::get().getWorld()->positionToIndex(x,y,cx,cy);
store = MWBase::Environment::get().getWorld()->getExterior(cx,cy);
std::cerr << "unknown cell (" << cellID << ")\n";
}
}
if(store)
@ -446,10 +444,6 @@ namespace MWScript
MWWorld::Ptr placed = MWBase::Environment::get().getWorld()->safePlaceObject(ref.getPtr(),store,pos);
placed.getClass().adjustPosition(placed, true);
}
else
{
throw std::runtime_error ( std::string("unknown cell (") + cellID + ")");
}
}
};