From cb737dd4b5a6b864ec421fe15534cd7d49fcbc77 Mon Sep 17 00:00:00 2001 From: Francesco Bariatti <francesco.bariatti@insa-rennes.fr> Date: Wed, 16 Mar 2016 17:47:58 +0100 Subject: [PATCH] Bugfix: moves didn't start at 0 --- src/game/penguin.cpp | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/game/penguin.cpp b/src/game/penguin.cpp index 6acc76d..dde9a87 100644 --- a/src/game/penguin.cpp +++ b/src/game/penguin.cpp @@ -177,48 +177,48 @@ namespace game uint8_t move_number = ((*p) >> 6) & 63; //Move number for the current penguin uint32_t penguin_copy = (*p) >> 12; //Direction A - if((penguin_copy & 7) >= move_number) + if((penguin_copy & 7) > move_number) { //Move direction A - (*p) = (7 * move_number +1) + ((*p) & 63); + (*p) = (7 * (move_number +1)) + ((*p) & 63); return; } move_number -= penguin_copy & 7; penguin_copy = penguin_copy >> 3; - if((penguin_copy & 7) >= move_number) + if((penguin_copy & 7) > move_number) { //Move direction B - (*p) = (-1 * move_number +1) + ((*p) & 63); + (*p) = (-1 * (move_number +1)) + ((*p) & 63); return; } move_number -= penguin_copy & 7; penguin_copy = penguin_copy >> 3; - if((penguin_copy & 7) >= move_number) + if((penguin_copy & 7) > move_number) { //Move direction C - (*p) = (-8 * move_number +1) + ((*p) & 63); + (*p) = (-8 * (move_number +1)) + ((*p) & 63); return; } move_number -= penguin_copy & 7; penguin_copy = penguin_copy >> 3; - if((penguin_copy & 7) >= move_number) + if((penguin_copy & 7) > move_number) { //Move direction D - (*p) = (-7 * move_number +1) + ((*p) & 63); + (*p) = (-7 * (move_number +1)) + ((*p) & 63); return; } move_number -= penguin_copy & 7; penguin_copy = penguin_copy >> 3; - if((penguin_copy & 7) >= move_number) + if((penguin_copy & 7) > move_number) { //Move direction E - (*p) = (1 * move_number +1) + ((*p) & 63); + (*p) = (1 * (move_number +1)) + ((*p) & 63); return; } move_number -= penguin_copy & 7; penguin_copy = penguin_copy >> 3; //Move direction F - (*p) = (8 * move_number +1) + ((*p) & 63); + (*p) = (8 * (move_number +1)) + ((*p) & 63); } int penguin::update_moves(uint32_t* p, uint64_t obstacles) -- GitLab