aboutsummaryrefslogtreecommitdiff
path: root/engines/agos
diff options
context:
space:
mode:
authorTravis Howell2009-08-09 01:20:08 +0000
committerTravis Howell2009-08-09 01:20:08 +0000
commit82692b117c5c18a32c7f2eb402340adee3ac3f7a (patch)
tree578da5efcd5b68ea5ebfdd8bd6140d188faf113a /engines/agos
parent5dbd11abad7c5e1f069a67a63b9be66cbfafc255 (diff)
downloadscummvm-rg350-82692b117c5c18a32c7f2eb402340adee3ac3f7a.tar.gz
scummvm-rg350-82692b117c5c18a32c7f2eb402340adee3ac3f7a.tar.bz2
scummvm-rg350-82692b117c5c18a32c7f2eb402340adee3ac3f7a.zip
Fix bug #2834254 - ELVIRA: Buggy scroll arrows when mixing spells.
svn-id: r43152
Diffstat (limited to 'engines/agos')
-rw-r--r--engines/agos/icons.cpp19
-rw-r--r--engines/agos/saveload.cpp1
2 files changed, 11 insertions, 9 deletions
diff --git a/engines/agos/icons.cpp b/engines/agos/icons.cpp
index 2fd93e64f2..f25aa967fc 100644
--- a/engines/agos/icons.cpp
+++ b/engines/agos/icons.cpp
@@ -860,16 +860,16 @@ void AGOSEngine::addArrows(WindowBlock *window, uint8 num) {
x = 30;
y = 151;
if (num != 2) {
- y = window->height * 4 + window->y - 19;
- x = window->width + window->x;
+ y = window->y + window->height * 4 - 19;
+ x = window->x + window->width;
}
drawArrow(x, y, 16);
ha = findEmptyHitArea();
_scrollUpHitArea = ha - _hitAreas;
- ha->x = 30 * 8;
- ha->y = 151;
+ ha->x = x * 8;
+ ha->y = y;
ha->width = 16;
ha->height = 19;
ha->flags = kBFBoxInUse;
@@ -881,16 +881,16 @@ void AGOSEngine::addArrows(WindowBlock *window, uint8 num) {
x = 30;
y = 170;
if (num != 2) {
- y = window->height * 4;
- x = window->width + window->x;
+ y = window->y + window->height * 4;
+ x = window->x + window->width;
}
drawArrow(x, y, -16);
ha = findEmptyHitArea();
_scrollDownHitArea = ha - _hitAreas;
- ha->x = 30 * 8;
- ha->y = 170;
+ ha->x = x * 8;
+ ha->y = y;
ha->width = 16;
ha->height = 19;
ha->flags = kBFBoxInUse;
@@ -956,7 +956,8 @@ void AGOSEngine::drawArrow(uint16 x, uint16 y, int8 dir) {
for (h = 0; h < 19; h++) {
for (w = 0; w < 16; w++) {
- dst[w] = src[w] + 16;
+ if (src[w])
+ dst[w] = src[w] + 16;
}
src += dir;
diff --git a/engines/agos/saveload.cpp b/engines/agos/saveload.cpp
index 3787617be7..53a323212d 100644
--- a/engines/agos/saveload.cpp
+++ b/engines/agos/saveload.cpp
@@ -269,6 +269,7 @@ int16 AGOSEngine::matchSaveGame(const char *name, uint16 max) {
in->read(dst, 8);
delete in;
+ printf("Find: name %s file %s\n", name, (const char *)dst);
if (!scumm_stricmp(name, dst)) {
return slot;
}