aboutsummaryrefslogtreecommitdiff
path: root/engines/startrek/awaymission.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/startrek/awaymission.cpp')
-rw-r--r--engines/startrek/awaymission.cpp20
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;
}