aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/agos/icons.cpp20
1 files changed, 17 insertions, 3 deletions
diff --git a/engines/agos/icons.cpp b/engines/agos/icons.cpp
index e01d10a1c4..6b968711e3 100644
--- a/engines/agos/icons.cpp
+++ b/engines/agos/icons.cpp
@@ -704,10 +704,24 @@ void AGOSEngine_Simon1::addArrows(WindowBlock *window) {
ha->verb = 1;
if (getFeatures() & GF_32COLOR) {
- // TODO: Manually draws arrows
+ _lockWord |= 0x8;
+
+ VgaPointersEntry *vpe = &_vgaBufferPointers[1];
+ byte *curVgaFile2Orig = _curVgaFile2;
+ uint16 windowNumOrig = _windowNum;
+
+
+ _windowNum = 0;
+ _curVgaFile2 = vpe->vgaFile2;
+ drawImage_init(1, 15, 38, 150, 4);
+
+ _curVgaFile2 = curVgaFile2Orig;
+ _windowNum = windowNumOrig;
+
+ _lockWord &= ~0x8;
} else {
stopAnimate(128);
- uint8 palette = (getPlatform() == Common::kPlatformAmiga) ? 15: 14;
+ uint8 palette = (getPlatform() == Common::kPlatformAmiga) ? 15 : 14;
animate(0, 1, 128, 0, 0, palette);
}
}
@@ -809,7 +823,7 @@ void AGOSEngine::addArrows(WindowBlock *window) {
void AGOSEngine::removeArrows(WindowBlock *window, uint num) {
if (getGameType() == GType_SIMON1) {
if (getFeatures() & GF_32COLOR) {
- // TODO: Manually removes arrows
+ restoreBlock(200, 320, 146, 304);
} else {
stopAnimate(129);
uint8 palette = (getPlatform() == Common::kPlatformAmiga) ? 15: 14;