mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-02-25 12:41:01 +00:00
Add isInCell checks to PlaceAt and PlaceItem (Fixes #2873)
Avoids the game crashing when a script calls these functions before the player has been moved to the starting location.
This commit is contained in:
parent
34f48d63f3
commit
a699b4128a
@ -458,6 +458,10 @@ namespace MWScript
|
||||
runtime.pop();
|
||||
|
||||
MWWorld::Ptr player = MWMechanics::getPlayer();
|
||||
|
||||
if (!player.isInCell())
|
||||
throw std::runtime_error("player not in a cell");
|
||||
|
||||
MWWorld::CellStore* store = NULL;
|
||||
if (player.getCell()->isExterior())
|
||||
{
|
||||
@ -505,6 +509,9 @@ namespace MWScript
|
||||
if (count<0)
|
||||
throw std::runtime_error ("count must be non-negative");
|
||||
|
||||
if (!actor.isInCell())
|
||||
throw std::runtime_error ("actor is not in a cell");
|
||||
|
||||
for (int i=0; i<count; ++i)
|
||||
{
|
||||
ESM::Position ipos = actor.getRefData().getPosition();
|
||||
|
Loading…
x
Reference in New Issue
Block a user