aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Howell2007-04-28 07:00:33 +0000
committerTravis Howell2007-04-28 07:00:33 +0000
commitda2d6b64af58f5c5595146acd467ddf61b879582 (patch)
treee72ad3fb085e91147a750b9b5da6b09fa54b0758
parent39238a9472c64f6416bf855966460bd06585a833 (diff)
downloadscummvm-rg350-da2d6b64af58f5c5595146acd467ddf61b879582.tar.gz
scummvm-rg350-da2d6b64af58f5c5595146acd467ddf61b879582.tar.bz2
scummvm-rg350-da2d6b64af58f5c5595146acd467ddf61b879582.zip
Add code difference for inventory arrows in Amiga versions of Simon the Sorcerer 1.
svn-id: r26641
-rw-r--r--engines/agos/gfx.cpp12
-rw-r--r--engines/agos/icons.cpp15
2 files changed, 14 insertions, 13 deletions
diff --git a/engines/agos/gfx.cpp b/engines/agos/gfx.cpp
index a370e42046..2a6b5e2cab 100644
--- a/engines/agos/gfx.cpp
+++ b/engines/agos/gfx.cpp
@@ -959,10 +959,7 @@ void AGOSEngine::animate(uint windowNum, uint zoneNum, uint vgaSpriteId, uint x,
p += sizeof(AnimationHeader_Simon);
}
- if (READ_BE_UINT16(&((AnimationHeader_Simon *) p)->id) != vgaSpriteId) {
- debug(0, "setImage: Animation %d not found.", vgaSpriteId);
- return;
- }
+ assert(READ_BE_UINT16(&((AnimationHeader_Simon *) p)->id) == vgaSpriteId);
} else {
p = pp + READ_BE_UINT16(pp + 10);
p += 20;
@@ -1072,12 +1069,7 @@ void AGOSEngine::setImage(uint16 vga_res_id, bool vgaScript) {
break;
b += sizeof(ImageHeader_Simon);
}
-
-
- if (READ_BE_UINT16(&((ImageHeader_Simon *) b)->id) != vga_res_id) {
- debug(0, "setImage: Image %d not found.", vga_res_id);
- return;
- }
+ assert(READ_BE_UINT16(&((ImageHeader_Simon *) b)->id) == vga_res_id);
} else {
b = bb + READ_BE_UINT16(bb + 10);
b += 20;
diff --git a/engines/agos/icons.cpp b/engines/agos/icons.cpp
index f2273c815b..172d5374fd 100644
--- a/engines/agos/icons.cpp
+++ b/engines/agos/icons.cpp
@@ -625,8 +625,13 @@ void AGOSEngine::addArrows(WindowBlock *window) {
ha->window = window;
ha->verb = 1;
- stopAnimate(128);
- animate(0, 1, 128, 0, 0, 14);
+ if (getFeatures() & GF_32COLOR) {
+ // TODO: Manually draws arrows
+ } else {
+ stopAnimate(128);
+ uint8 palette = (getGameId() == GID_SIMON1CD32) ? 15: 14;
+ animate(0, 1, 128, 0, 0, palette);
+ }
} else if (getGameType() == GType_WW) {
ha->x = 255;
ha->y = 170;
@@ -664,7 +669,11 @@ void AGOSEngine::addArrows(WindowBlock *window) {
void AGOSEngine::removeArrows(WindowBlock *window, uint num) {
if (getGameType() == GType_SIMON1) {
- stopAnimate(128);
+ if (getFeatures() & GF_32COLOR) {
+ // TODO: Manually removes arrows
+ } else {
+ stopAnimate(128);
+ }
} else if (getGameType() == GType_WW) {
setBitFlag(22, false);
setWindowImageEx(6, 103);