aboutsummaryrefslogtreecommitdiff
path: root/engines/gob
diff options
context:
space:
mode:
authorSven Hesse2008-02-16 02:20:30 +0000
committerSven Hesse2008-02-16 02:20:30 +0000
commita67ebc3d7a724061a52d458af6ca0443dc99a547 (patch)
tree261a9d663151018a7f25e3ae2420ba0ba147c699 /engines/gob
parent28d61e484bba27cadd49ba4fd15dcc4f8f928cf6 (diff)
downloadscummvm-rg350-a67ebc3d7a724061a52d458af6ca0443dc99a547.tar.gz
scummvm-rg350-a67ebc3d7a724061a52d458af6ca0443dc99a547.tar.bz2
scummvm-rg350-a67ebc3d7a724061a52d458af6ca0443dc99a547.zip
Fixed a Gob3 walking issue noticeable when Blount walks down double-wide stairs (see bug report #1888627)
svn-id: r30874
Diffstat (limited to 'engines/gob')
-rw-r--r--engines/gob/goblin_v2.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/engines/gob/goblin_v2.cpp b/engines/gob/goblin_v2.cpp
index 7fa877fa8a..c9e155ad08 100644
--- a/engines/gob/goblin_v2.cpp
+++ b/engines/gob/goblin_v2.cpp
@@ -266,7 +266,7 @@ void Goblin_v2::movePathFind(Mult::Mult_Object *obj, Gob_Object *gobDesc, int16
if (_vm->_map->_screenWidth == 640) {
if (_vm->_map->getPass(obj->goblinX, obj->goblinY) == 10)
animData->nextState = 41;
- if (_vm->_map->getPass(obj->goblinX - 1, obj->goblinY) != 10)
+ if (_vm->_map->getPass(obj->goblinX - 1, obj->goblinY + 2) != 10)
animData->nextState = 7;
}
break;
@@ -277,7 +277,7 @@ void Goblin_v2::movePathFind(Mult::Mult_Object *obj, Gob_Object *gobDesc, int16
if (_vm->_map->_screenWidth == 640) {
if (_vm->_map->getPass(obj->goblinX, obj->goblinY) == 20)
animData->nextState = 39;
- else if (_vm->_map->getPass(obj->goblinX, obj->goblinY) == 19)
+ if (_vm->_map->getPass(obj->goblinX, obj->goblinY) == 19)
animData->nextState = 27;
}
break;
@@ -287,7 +287,7 @@ void Goblin_v2::movePathFind(Mult::Mult_Object *obj, Gob_Object *gobDesc, int16
if (_vm->_map->_screenWidth == 640) {
if (_vm->_map->getPass(obj->goblinX, obj->goblinY) == 10)
animData->nextState = 43;
- if (_vm->_map->getPass(obj->goblinX + 1, obj->goblinY) != 10)
+ if (_vm->_map->getPass(obj->goblinX + 1, obj->goblinY + 2) != 10)
animData->nextState = 5;
}
break;
@@ -351,6 +351,8 @@ void Goblin_v2::moveAdvance(Mult::Mult_Object *obj, Gob_Object *gobDesc,
case 13:
case 16:
case 23:
+ case 40:
+ case 41:
animData->curLookDir = 0;
break;
@@ -358,6 +360,8 @@ void Goblin_v2::moveAdvance(Mult::Mult_Object *obj, Gob_Object *gobDesc,
case 15:
case 18:
case 21:
+ case 26:
+ case 38:
animData->curLookDir = 2;
break;
@@ -367,6 +371,8 @@ void Goblin_v2::moveAdvance(Mult::Mult_Object *obj, Gob_Object *gobDesc,
case 12:
case 19:
case 22:
+ case 42:
+ case 43:
animData->curLookDir = 4;
break;
@@ -374,6 +380,8 @@ void Goblin_v2::moveAdvance(Mult::Mult_Object *obj, Gob_Object *gobDesc,
case 14:
case 17:
case 20:
+ case 27:
+ case 39:
animData->curLookDir = 6;
break;