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