diff options
author | Sven Hesse | 2008-04-30 20:08:08 +0000 |
---|---|---|
committer | Sven Hesse | 2008-04-30 20:08:08 +0000 |
commit | e866aefdfdf7386cd3f5c94a058dd329c44b8fde (patch) | |
tree | 219a75e777f6bbf7337b7b575490447528b1584b /engines/gob | |
parent | ea5482e6b128ddb89e25a554468062d81744be1e (diff) | |
download | scummvm-rg350-e866aefdfdf7386cd3f5c94a058dd329c44b8fde.tar.gz scummvm-rg350-e866aefdfdf7386cd3f5c94a058dd329c44b8fde.tar.bz2 scummvm-rg350-e866aefdfdf7386cd3f5c94a058dd329c44b8fde.zip |
Fixing path finding in Woodruff
svn-id: r31793
Diffstat (limited to 'engines/gob')
-rw-r--r-- | engines/gob/gob.cpp | 2 | ||||
-rw-r--r-- | engines/gob/goblin_v4.cpp | 29 |
2 files changed, 21 insertions, 10 deletions
diff --git a/engines/gob/gob.cpp b/engines/gob/gob.cpp index e6afeefc03..a54d9241e0 100644 --- a/engines/gob/gob.cpp +++ b/engines/gob/gob.cpp @@ -328,7 +328,7 @@ bool GobEngine::initGameParts() { _draw = new Draw_v2(this); _game = new Game_v2(this); _map = new Map_v4(this); - _goblin = new Goblin_v3(this); + _goblin = new Goblin_v4(this); _scenery = new Scenery_v2(this); _saveLoad = new SaveLoad_v3(this, _targetName.c_str()); break; diff --git a/engines/gob/goblin_v4.cpp b/engines/gob/goblin_v4.cpp index 0defd32289..167946e30d 100644 --- a/engines/gob/goblin_v4.cpp +++ b/engines/gob/goblin_v4.cpp @@ -424,6 +424,8 @@ void Goblin_v4::moveAdvance(Mult::Mult_Object *obj, Gob_Object *gobDesc, case 13: case 16: case 23: + case 40: + case 41: animData->curLookDir = 0; break; @@ -431,6 +433,8 @@ void Goblin_v4::moveAdvance(Mult::Mult_Object *obj, Gob_Object *gobDesc, case 15: case 18: case 21: + case 26: + case 38: animData->curLookDir = 2; break; @@ -440,6 +444,8 @@ void Goblin_v4::moveAdvance(Mult::Mult_Object *obj, Gob_Object *gobDesc, case 12: case 19: case 22: + case 42: + case 43: animData->curLookDir = 4; break; @@ -447,13 +453,19 @@ void Goblin_v4::moveAdvance(Mult::Mult_Object *obj, Gob_Object *gobDesc, case 14: case 17: case 20: + case 27: + case 39: animData->curLookDir = 6; break; case 8: case 9: + case 10: + case 11: case 28: case 29: + case 30: + case 31: if (animData->pathExistence == 4) animData->pathExistence = 5; break; @@ -530,14 +542,14 @@ void Goblin_v4::moveAdvance(Mult::Mult_Object *obj, Gob_Object *gobDesc, int16 Goblin_v4::sub_20430(int16 state, uint16 dir) { static const int16 word_3F25E[8][8] = { - {0, 1, 10, 10, 10, 31, 31, 7}, - {0, 1, 2, 29, 29, 29, 8, 8}, - {10, 1, 2, 3, 11, 11, 11, 10}, - {29, 29, 2, 3, 4, 9, 9, 9}, - {30, 11, 11, 3, 4, 5, 30, 30}, - {28, 28, 9, 9, 4, 5, 6, 28}, - {31, 31, 31, 30, 30, 5, 6, 7}, - {0, 8, 8, 8, 28, 28, 6, 7} + { 0, 1, 10, 10, 10, 31, 31, 7}, + { 0, 1, 2, 29, 29, 29, 8, 8}, + {10, 1, 2, 3, 11, 11, 11, 10}, + {29, 29, 2, 3, 4, 9, 9, 9}, + {30, 11, 11, 3, 4, 5, 30, 30}, + {28, 28, 9, 9, 4, 5, 6, 28}, + {31, 31, 31, 30, 30, 5, 6, 7}, + { 0, 8, 8, 8, 28, 28, 6, 7} }; int16 dx = state, cx = 0; @@ -594,7 +606,6 @@ int16 Goblin_v4::sub_20430(int16 state, uint16 dir) { // loc_2046C - switch (dir) { case Map::kDirNW: cx = 1; |