aboutsummaryrefslogtreecommitdiff
path: root/engines/agi/op_cmd.cpp
diff options
context:
space:
mode:
authorFilippos Karapetis2007-05-05 16:10:12 +0000
committerFilippos Karapetis2007-05-05 16:10:12 +0000
commitb82c68542cd8dc6ae7555ef9e3850389ba525a90 (patch)
tree2dc33bfaec8b8b8375c2bf8aea0e31bcd09aae48 /engines/agi/op_cmd.cpp
parent818da898ac5ad16dbbd0ef9554641ac1230ee304 (diff)
downloadscummvm-rg350-b82c68542cd8dc6ae7555ef9e3850389ba525a90.tar.gz
scummvm-rg350-b82c68542cd8dc6ae7555ef9e3850389ba525a90.tar.bz2
scummvm-rg350-b82c68542cd8dc6ae7555ef9e3850389ba525a90.zip
Fix bug #1712585
svn-id: r26753
Diffstat (limited to 'engines/agi/op_cmd.cpp')
-rw-r--r--engines/agi/op_cmd.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/engines/agi/op_cmd.cpp b/engines/agi/op_cmd.cpp
index 56694c70f1..32bcc37344 100644
--- a/engines/agi/op_cmd.cpp
+++ b/engines/agi/op_cmd.cpp
@@ -238,6 +238,24 @@ cmd(get_priority) {
cmd(set_priority) {
vt.flags |= FIXED_PRIORITY;
vt.priority = p1;
+
+ // WORKAROUND: this fixes bug #1712585 in KQ4 (dwarf sprite priority)
+ // For this scene, ego (Rosella) hasn't got a fixed priority till script 54
+ // explicitly sets priority 8 for her, so that she can walk back to the table
+ // without being drawn over the other dwarfs
+ // It seems that in this scene, ego's priority is set to 8, but the priority of
+ // the last dwarf with the soup bowls (view 152) is also set to 8, which causes
+ // the dwarf to be drawn behind ego
+ // With this workaround, when the game scripts set the priority of view 152
+ // (seventh dwarf with soup bowls), ego's priority is set to 7
+ // The game script itself sets priotity 8 for ego before she starts walking,
+ // and then releases the fixed priority set on ego after ego is seated
+ // Therefore, this workaround only affects that specific part of this scene
+ // Ego is set to object 19 by script 54
+ if (g_agi->getFeatures() & GF_KQ4 && vt.currentView == 152) {
+ game.viewTable[19].flags |= FIXED_PRIORITY;
+ game.viewTable[19].priority = 7;
+ }
}
cmd(set_priority_f) {