diff options
author | Arnaud Boutonné | 2010-09-01 22:11:01 +0000 |
---|---|---|
committer | Arnaud Boutonné | 2010-09-01 22:11:01 +0000 |
commit | ca74eb3e8b77cd49bad7a0fa6e261531ea8c0f44 (patch) | |
tree | 302f532c05fa0d8ecbee3496df3f5cce88ed35e9 /engines | |
parent | 64313cd7f10267c29d7e3b963c7bd0ff2e1c7f1a (diff) | |
download | scummvm-rg350-ca74eb3e8b77cd49bad7a0fa6e261531ea8c0f44.tar.gz scummvm-rg350-ca74eb3e8b77cd49bad7a0fa6e261531ea8c0f44.tar.bz2 scummvm-rg350-ca74eb3e8b77cd49bad7a0fa6e261531ea8c0f44.zip |
HUGO: Fix labyrinth bug in Hugo 2 for Windows
svn-id: r52485
Diffstat (limited to 'engines')
-rw-r--r-- | engines/hugo/engine.cpp | 15 | ||||
-rw-r--r-- | engines/hugo/hugo.cpp | 2 | ||||
-rw-r--r-- | engines/hugo/hugo.h | 2 |
3 files changed, 3 insertions, 16 deletions
diff --git a/engines/hugo/engine.cpp b/engines/hugo/engine.cpp index 082cbdd685..1a097cd90a 100644 --- a/engines/hugo/engine.cpp +++ b/engines/hugo/engine.cpp @@ -523,9 +523,6 @@ void HugoEngine::processMaze() { debugC(1, kDebugEngine, "processMaze"); - //actlist alnewscr = {&aheroxy,&astophero,&aherostop,&anewscr,NULL}; - //actlist_pt alist = &alnewscr[0]; - currImage = _hero->currImagePtr; // Get ptr to current image x1 = _hero->x + currImage->x1; // Left edge of object x2 = _hero->x + currImage->x2; // Right edge @@ -534,41 +531,29 @@ void HugoEngine::processMaze() { if (x1 < _maze.x1) { // Exit west -// anewscr.screen = *_screen_p - 1; _actListArr[_alNewscrIndex][3].a8.screenIndex = *_screen_p - 1; -// aheroxy.x = _maze.x2 - SHIFT - (x2 - x1); _actListArr[_alNewscrIndex][0].a2.x = _maze.x2 - SHIFT - (x2 - x1); -// aheroxy.y = _hero_p->y; _actListArr[_alNewscrIndex][0].a2.y = _hero->y; _status.routeIndex = -1; scheduler().insertActionList(_alNewscrIndex); } else if (x2 > _maze.x2) { // Exit east -// anewscr.screen = *_screen_p + 1; _actListArr[_alNewscrIndex][3].a8.screenIndex = *_screen_p + 1; -// aheroxy.x = _maze.x1 + SHIFT; _actListArr[_alNewscrIndex][0].a2.x = _maze.x1 + SHIFT; -// aheroxy.y = _hero_p->y; _actListArr[_alNewscrIndex][0].a2.y = _hero->y; _status.routeIndex = -1; scheduler().insertActionList(_alNewscrIndex); } else if (y1 < _maze.y1 - SHIFT) { // Exit north -// anewscr.screen = *_screen_p - _maze.size; _actListArr[_alNewscrIndex][3].a8.screenIndex = *_screen_p - _maze.size; -// aheroxy.x = _maze.x3; // special offset for perspective _actListArr[_alNewscrIndex][0].a2.x = _maze.x3; -// aheroxy.y = _maze.y2 - SHIFT - (y2 - y1); _actListArr[_alNewscrIndex][0].a2.y = _maze.y2 - SHIFT - (y2 - y1); _status.routeIndex = -1; scheduler().insertActionList(_alNewscrIndex); } else if (y2 > _maze.y2 - SHIFT / 2) { // Exit south -// anewscr.screen = *_screen_p + _maze.size; _actListArr[_alNewscrIndex][3].a8.screenIndex = *_screen_p + _maze.size; -// aheroxy.x = _maze.x4; // special offset for perspective _actListArr[_alNewscrIndex][0].a2.x = _maze.x4; -// aheroxy.y = _maze.y1 + SHIFT; _actListArr[_alNewscrIndex][0].a2.y = _maze.y1 + SHIFT; _status.routeIndex = -1; scheduler().insertActionList(_alNewscrIndex); diff --git a/engines/hugo/hugo.cpp b/engines/hugo/hugo.cpp index 1329ae84ec..1c0b52e49a 100644 --- a/engines/hugo/hugo.cpp +++ b/engines/hugo/hugo.cpp @@ -848,6 +848,7 @@ bool HugoEngine::loadHugoDat() { case INIT_MAZE: // 30 _actListArr[i][j].a30.timer = in.readSint16BE(); _actListArr[i][j].a30.mazeSize = in.readByte(); + _actListArr[i][j].a30.x1 = in.readSint16BE(); _actListArr[i][j].a30.y1 = in.readSint16BE(); _actListArr[i][j].a30.x2 = in.readSint16BE(); _actListArr[i][j].a30.y2 = in.readSint16BE(); @@ -1130,6 +1131,7 @@ bool HugoEngine::loadHugoDat() { in.readSint16BE(); in.readSint16BE(); in.readSint16BE(); + in.readSint16BE(); in.readByte(); break; case EXIT_MAZE: // 31 diff --git a/engines/hugo/hugo.h b/engines/hugo/hugo.h index 3b78b41016..532f18d2eb 100644 --- a/engines/hugo/hugo.h +++ b/engines/hugo/hugo.h @@ -33,7 +33,7 @@ #include "hugo/game.h" #define HUGO_DAT_VER_MAJ 0 // 1 byte -#define HUGO_DAT_VER_MIN 18 // 1 byte +#define HUGO_DAT_VER_MIN 19 // 1 byte #define DATAALIGNMENT 4 namespace Common { |