From 0e254aa7c764ad90a206c208ad08726b68e25917 Mon Sep 17 00:00:00 2001 From: scrawl Date: Sat, 23 Nov 2013 03:25:55 +0100 Subject: [PATCH] Fix startNewGame assigning an already freed CellStore to the player Ptr supplied to WindowManager. Fixes a crash when equipping lights after starting a new game (bug 967). Side note: The inventory preview's Ptr being assigned a cell at all doesn't make sense, as that is used to determine the light setting which should be the same no matter which cell you're in. --- apps/openmw/mwrender/characterpreview.cpp | 4 ++-- apps/openmw/mwworld/worldimp.cpp | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/openmw/mwrender/characterpreview.cpp b/apps/openmw/mwrender/characterpreview.cpp index 2cae306110..5e659ca1d7 100644 --- a/apps/openmw/mwrender/characterpreview.cpp +++ b/apps/openmw/mwrender/characterpreview.cpp @@ -35,7 +35,7 @@ namespace MWRender , mCamera(NULL) , mNode(NULL) { - + mCharacter.mCell = NULL; } void CharacterPreview::onSetup() @@ -230,7 +230,7 @@ namespace MWRender , mRef(&mBase) { mBase = *mCharacter.get()->mBase; - mCharacter = MWWorld::Ptr(&mRef, mCharacter.getCell()); + mCharacter = MWWorld::Ptr(&mRef, NULL); } void RaceSelectionPreview::update(float angle) diff --git a/apps/openmw/mwworld/worldimp.cpp b/apps/openmw/mwworld/worldimp.cpp index fba08db951..3c49b87390 100644 --- a/apps/openmw/mwworld/worldimp.cpp +++ b/apps/openmw/mwworld/worldimp.cpp @@ -267,6 +267,7 @@ namespace MWWorld // Rebuild player setupPlayer(); + mPlayer->setCell(NULL); MWWorld::Ptr player = mPlayer->getPlayer(); // removes NpcStats, ContainerStore etc