diff options
Diffstat (limited to 'engines/startrek/awaymission.cpp')
-rw-r--r-- | engines/startrek/awaymission.cpp | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/engines/startrek/awaymission.cpp b/engines/startrek/awaymission.cpp index ca1b3f0c79..84985c3925 100644 --- a/engines/startrek/awaymission.cpp +++ b/engines/startrek/awaymission.cpp @@ -85,22 +85,18 @@ void StarTrekEngine::loadRoom(const Common::String &missionName, int roomIndex) _gfx->fadeoutScreen(); _sound->stopAllVocSounds(); - _screenName = _missionName + (char)(_roomIndex + '0'); - - _gfx->setBackgroundImage(_gfx->loadBitmap(_screenName)); - _gfx->loadPri(_screenName); + _gfx->setBackgroundImage(_gfx->loadBitmap(getScreenName())); + _gfx->loadPri(getScreenName()); _gfx->loadPalette("palette"); _gfx->copyBackgroundScreen(); - _room = SharedPtr<Room>(new Room(this, _screenName)); + _room = new Room(this, getScreenName()); // Original sets up bytes 0-3 of rdf file as "remote function caller" - // Load map file + _room->loadMapFile(getScreenName()); + _awayMission.activeAction = ACTION_WALK; - _mapFilename = _screenName; - _mapFile = loadFile(_mapFilename + ".map"); - _iwFile = SharedPtr<IWFile>(new IWFile(this, _mapFilename + ".iw")); actorFunc1(); initActors(); @@ -467,8 +463,10 @@ void StarTrekEngine::unloadRoom() { _gfx->fadeoutScreen(); // sub_2394b(); // TODO actorFunc1(); - _room.reset(); + delete _room; + _room = nullptr; delete _mapFile; + _mapFile = nullptr; } int StarTrekEngine::loadActorAnimWithRoomScaling(int actorIndex, const Common::String &animName, int16 x, int16 y) { @@ -489,7 +487,7 @@ Fixed8 StarTrekEngine::getActorScaleAtPosition(int16 y) { return Fixed8(_playerActorScale * (y - minY)) + minScale; } -SharedPtr<Room> StarTrekEngine::getRoom() { +Room *StarTrekEngine::getRoom() { return _room; } |