aboutsummaryrefslogtreecommitdiff
path: root/engines/queen/graphics.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/queen/graphics.cpp')
-rw-r--r--engines/queen/graphics.cpp69
1 files changed, 67 insertions, 2 deletions
diff --git a/engines/queen/graphics.cpp b/engines/queen/graphics.cpp
index bdd191e935..b3c0542592 100644
--- a/engines/queen/graphics.cpp
+++ b/engines/queen/graphics.cpp
@@ -594,6 +594,15 @@ void Graphics::setBobText(const BobSlot *pbs, const char *text, int textX, int t
else if ((x + maxLineWidth) > 320)
x = 320 - maxLineWidth - 4;
+ // remap some colors for the Amiga
+ if (_vm->resource()->getPlatform() == Common::kPlatformAmiga) {
+ if (color == 5) {
+ color = (_vm->logic()->currentRoom() == 9) ? 15 : 11;
+ } else if (color == 10 && _vm->logic()->currentRoom() == 100) {
+ color = 11;
+ }
+ }
+
_vm->display()->textCurrentColor(color);
for (i = 0; i < lineCount; i++) {
@@ -1068,7 +1077,6 @@ void Graphics::setupRoomObjects() {
curBob = 20 + _numFurnitureStatic + numObjectStatic;
++curImage;
bob(curBob)->clear();
-
_vm->bankMan()->unpack(pgd->firstFrame, curImage, 15);
++_numFrames;
if (pod->name > 0) {
@@ -1165,6 +1173,9 @@ void Graphics::update(uint16 room) {
BamScene::BamScene(QueenEngine *vm)
: _flag(F_STOP), _screenShaked(false), _fightData(_fight1Data), _vm(vm) {
+ if (_vm->resource()->getPlatform() == Common::kPlatformAmiga) {
+ _fightData = _fight4Data;
+ }
}
void BamScene::playSfx() {
@@ -1278,7 +1289,9 @@ void BamScene::updateFightAnimation() {
break;
case 99: // end of BAM data
_lastSoundIndex = _index = 0;
- _fightData = fightDataBlocks[_vm->randomizer.getRandomNumber(2)];
+ if (_vm->resource()->getPlatform() == Common::kPlatformPC) {
+ _fightData = fightDataBlocks[_vm->randomizer.getRandomNumber(2)];
+ }
if (_flag == F_REQ_STOP) {
_flag = F_STOP;
}
@@ -1562,6 +1575,58 @@ const BamScene::BamDataBlock BamScene::_fight3Data[] = {
{ { 75, 96, 1 }, { 187, 96, -23 }, { 183, 41, 47 }, 0 },
{ { 75, 96, 1 }, { 187, 96, -23 }, { 183, 41, 47 }, 99 }
};
+
+const BamScene::BamDataBlock BamScene::_fight4Data[] = {
+ { { 75, 96, 1 }, { 187, 96, -23 }, { 150, 45, 35 }, 0 },
+ { { 75, 96, 1 }, { 187, 96, -23 }, { 150, 45, 35 }, 0 },
+ { { 75, 96, 1 }, { 187, 96, -23 }, { 150, 45, 35 }, 0 },
+ { { 75, 96, 5 }, { 187, 96, -23 }, { 150, 45, 35 }, 0 },
+ { { 75, 96, 5 }, { 187, 96, -23 }, { 150, 45, 35 }, 0 },
+ { { 75, 96, 6 }, { 187, 96, -24 }, { 150, 45, 35 }, 0 },
+ { { 75, 96, 6 }, { 187, 96, -24 }, { 150, 45, 35 }, 0 },
+ { { 75, 96, 7 }, { 187, 96, -24 }, { 150, 45, 35 }, 0 },
+ { { 75, 96, 8 }, { 187, 96, -25 }, { 79, 101, 59 }, 0 },
+ { { 75, 96, 9 }, { 187, 96, -25 }, { 95, 104, 66 }, 0 },
+ { { 75, 96, 10 }, { 187, 96, -25 }, { 129, 104, 65 }, 0 },
+ { { 75, 96, 10 }, { 187, 96, -25 }, { 160, 104, 64 }, 0 },
+ { { 75, 96, 6 }, { 187, 96, -25 }, { 179, 104, 63 }, 0 },
+ { { 75, 96, 6 }, { 187, 96, -23 }, { 188, 104, 62 }, 0 },
+ { { 75, 96, 6 }, { 187, 96, -29 }, { 191, 104, 36 }, 0 },
+ { { 75, 96, 6 }, { 187, 96, -29 }, { 195, 104, 37 }, 0 },
+ { { 75, 96, 6 }, { 187, 96, -31 }, { 202, 104, 38 }, 0 },
+ { { 75, 96, 5 }, { 187, 96, -32 }, { 210, 104, 39 }, 0 },
+ { { 75, 96, 5 }, { 187, 98, -32 }, { 216, 104, 40 }, 0 },
+ { { 75, 96, 5 }, { 187, 96, -32 }, { 223, 104, 42 }, 0 },
+ { { 75, 96, 5 }, { 187, 98, -32 }, { 223, 104, 42 }, 0 },
+ { { 75, 96, 5 }, { 187, 97, -33 }, { 223, 104, 42 }, 0 },
+ { { 75, 96, 5 }, { 187, 96, -34 }, { 223, 104, 42 }, 0 },
+ { { 75, 96, 5 }, { 187, 96, -23 }, { 223, 104, 42 }, 0 },
+ { { 75, 96, 5 }, { 187, 96, -23 }, { 223, 104, 42 }, 0 },
+ { { 75, 96, 6 }, { 187, 96, -23 }, { 223, 104, 42 }, 0 },
+ { { 75, 96, 6 }, { 187, 96, -24 }, { 223, 104, 42 }, 0 },
+ { { 75, 96, 6 }, { 187, 96, -24 }, { 223, 104, 42 }, 0 },
+ { { 75, 96, 5 }, { 187, 96, -25 }, { 223, 104, 42 }, 0 },
+ { { 75, 96, 5 }, { 187, 96, -25 }, { 223, 104, 42 }, 0 },
+ { { 75, 96, 5 }, { 187, 96, -26 }, { 175, 98, 36 }, 0 },
+ { { 75, 96, 5 }, { 187, 96, -26 }, { 152, 98, 36 }, 0 },
+ { { 75, 96, 6 }, { 187, 96, -27 }, { 124, 98, 37 }, 0 },
+ { { 75, 96, 6 }, { 187, 96, -28 }, { 105, 98, 38 }, 0 },
+ { { 75, 96, 11 }, { 187, 96, -23 }, { 77, 98, 39 }, 0 },
+ { { 75, 96, 13 }, { 187, 96, -23 }, { 63, 98, 40 }, 0 },
+ { { 75, 96, 14 }, { 187, 96, -23 }, { 51, 98, 41 }, 0 },
+ { { 75, 98, 14 }, { 187, 96, -23 }, { 51, 98, 42 }, 0 },
+ { { 75, 94, 14 }, { 187, 96, -23 }, { 0, 0, 0 }, 0 },
+ { { 75, 98, 14 }, { 187, 96, -23 }, { 0, 0, 0 }, 0 },
+ { { 75, 96, 15 }, { 187, 96, -23 }, { 0, 0, 0 }, 0 },
+ { { 75, 96, 1 }, { 187, 96, -23 }, { 0, 0, 0 }, 0 },
+ { { 75, 96, 1 }, { 187, 96, -23 }, { 0, 0, 0 }, 0 },
+ { { 75, 96, 1 }, { 187, 96, -23 }, { 0, 0, 0 }, 0 },
+ { { 75, 96, 1 }, { 187, 96, -23 }, { 0, 0, 0 }, 0 },
+ { { 75, 96, 1 }, { 187, 96, -23 }, { 0, 0, 0 }, 0 },
+ { { 75, 96, 1 }, { 187, 96, -23 }, { 0, 0, 0 }, 0 },
+ { { 75, 96, 1 }, { 187, 96, -23 }, { 0, 0, 0 }, 0 },
+ { { 75, 96, 1 }, { 187, 96, -23 }, { 0, 0, 0 }, 99 }
+};
#endif
} // End of namespace Queen