aboutsummaryrefslogtreecommitdiff
path: root/engines/startrek/awaymission.cpp
diff options
context:
space:
mode:
authorMatthew Stewart2018-07-26 00:18:32 -0400
committerEugene Sandulenko2018-08-09 08:37:30 +0200
commit919db23841c24475257182f6daddea59cefb408a (patch)
tree45e91c38d8953fe874ebe91627ae7d4190745b98 /engines/startrek/awaymission.cpp
parentb1fa6126cc0429aaa378550f28d234e06d35a3aa (diff)
downloadscummvm-rg350-919db23841c24475257182f6daddea59cefb408a.tar.gz
scummvm-rg350-919db23841c24475257182f6daddea59cefb408a.tar.bz2
scummvm-rg350-919db23841c24475257182f6daddea59cefb408a.zip
STARTREK: Implement "BAN" files.
These are background animations in various rooms, purely visual.
Diffstat (limited to 'engines/startrek/awaymission.cpp')
-rw-r--r--engines/startrek/awaymission.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/engines/startrek/awaymission.cpp b/engines/startrek/awaymission.cpp
index c3fe9f732d..158d8c6ece 100644
--- a/engines/startrek/awaymission.cpp
+++ b/engines/startrek/awaymission.cpp
@@ -109,7 +109,12 @@ void StarTrekEngine::loadRoom(const Common::String &missionName, int roomIndex)
int16 den = _room->getMaxY() - _room->getMinY() + 1;
_playerActorScale = Fixed16(num) / den;
- // TODO: RDF vars 1e/1f and 20/21; relates to BAN files?
+ int16 addr = _room->getBanDataStart();
+ while (addr != _room->getBanDataEnd()) {
+ Common::String name((char *)&_room->_rdfData[addr]);
+ loadBanFile(name);
+ addr += strlen((char *)&_room->_rdfData[addr]) + 1;
+ }
_actionQueue.clear();
}
@@ -181,10 +186,13 @@ void StarTrekEngine::handleAwayMissionEvents() {
case TREKEVENT_TICK:
updateActorAnimations();
updateCrewmanGetupTimers();
+
updateMouseBitmap();
- // doSomethingWithBanData1();
- _gfx->drawAllSprites();
- // doSomethingWithBanData2();
+ renderBanBelowSprites();
+ _gfx->drawAllSprites(false);
+ renderBanAboveSprites();
+ _gfx->updateScreen();
+
_sound->checkLoopMusic();
updateAwayMissionTimers();
_frameIndex++;