diff options
author | Paul Gilbert | 2018-04-28 16:33:10 -0400 |
---|---|---|
committer | Paul Gilbert | 2018-04-28 16:33:10 -0400 |
commit | 730de448db0193526a4b8692191374b707f78ff5 (patch) | |
tree | f7864bdaa5c3d38c11799f79855634f5c419d781 /engines | |
parent | bd5d097286fd316fd2067ad5681dcccadafb8219 (diff) | |
download | scummvm-rg350-730de448db0193526a4b8692191374b707f78ff5.tar.gz scummvm-rg350-730de448db0193526a4b8692191374b707f78ff5.tar.bz2 scummvm-rg350-730de448db0193526a4b8692191374b707f78ff5.zip |
XEEN: Revert removal of movement check code; it was necessary after all
Diffstat (limited to 'engines')
-rw-r--r-- | engines/xeen/interface.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/engines/xeen/interface.cpp b/engines/xeen/interface.cpp index 390328aa21..fbb91aa7e5 100644 --- a/engines/xeen/interface.cpp +++ b/engines/xeen/interface.cpp @@ -901,7 +901,25 @@ bool Interface::checkMoveDirection(int key) { Map &map = *_vm->_map; Party &party = *_vm->_party; Sound &sound = *_vm->_sound; + + // For strafing or moving backwards, temporarily move to face the direction being checked, + // since the call to getCell will the adjacent cell details in the direction being faced Direction dir = party._mazeDirection; + switch (key) { + case (Common::KBD_CTRL << 16) | Common::KEYCODE_LEFT: + party._mazeDirection = (party._mazeDirection == DIR_NORTH) ? DIR_WEST : + (Direction)(party._mazeDirection - 1); + break; + case (Common::KBD_CTRL << 16) | Common::KEYCODE_RIGHT: + party._mazeDirection = (party._mazeDirection == DIR_WEST) ? DIR_NORTH : + (Direction)(party._mazeDirection + 1); + break; + case Common::KEYCODE_DOWN: + party._mazeDirection = (Direction)((int)party._mazeDirection ^ 2); + break; + default: + break; + } map.getCell(7); int startSurfaceId = map._currentSurfaceId; |