From aeb36d4afc0c6b5961adc411dc03b00a96a86f99 Mon Sep 17 00:00:00 2001 From: Strangerke Date: Mon, 23 May 2016 07:52:48 +0200 Subject: GNAP: Add safeguard checks in PlayerGnap's getWalkStopSequenceId and getWalkFacing --- engines/gnap/grid.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'engines') diff --git a/engines/gnap/grid.cpp b/engines/gnap/grid.cpp index 2197317227..aa6da71395 100644 --- a/engines/gnap/grid.cpp +++ b/engines/gnap/grid.cpp @@ -68,8 +68,10 @@ int PlayerGnap::getWalkStopSequenceId(int deltaX, int deltaY) { 0x7BC, 0x000, 0x7BA, 0x7BB, 0x7B9, 0x7B9 }; - // CHECKME This is a little weird - return gnapWalkStopSequenceIds[3 * deltaX + 3 + 1 + deltaY]; + + int id = 3 * (deltaX + 1) + deltaY + 1; + assert (id >= 0 && id < 9 ); + return gnapWalkStopSequenceIds[id]; } Facing PlayerGnap::getWalkFacing(int deltaX, int deltaY) { @@ -78,8 +80,10 @@ Facing PlayerGnap::getWalkFacing(int deltaX, int deltaY) { kDirUpLeft, kDirIdleLeft, kDirBottomLeft, kDirUpRight, kDirBottomRight, kDirBottomRight }; - // CHECKME This is a little weird - return gnapWalkFacings[3 * deltaX + 3 + 1 + deltaY]; + + int id = 3 * (deltaX + 1) + deltaY + 1; + assert (id >= 0 && id < 9 ); + return gnapWalkFacings[id]; } bool PlayerGnap::findPath1(int gridX, int gridY, int index) { -- cgit v1.2.3