Skip to content
Snippets Groups Projects
Commit cb737dd4 authored by Bariatti Francesco's avatar Bariatti Francesco
Browse files

Bugfix: moves didn't start at 0

parent ffa7e07a
No related branches found
No related tags found
No related merge requests found
...@@ -177,48 +177,48 @@ namespace game ...@@ -177,48 +177,48 @@ namespace game
uint8_t move_number = ((*p) >> 6) & 63; //Move number for the current penguin uint8_t move_number = ((*p) >> 6) & 63; //Move number for the current penguin
uint32_t penguin_copy = (*p) >> 12; uint32_t penguin_copy = (*p) >> 12;
//Direction A //Direction A
if((penguin_copy & 7) >= move_number) if((penguin_copy & 7) > move_number)
{ {
//Move direction A //Move direction A
(*p) = (7 * move_number +1) + ((*p) & 63); (*p) = (7 * (move_number +1)) + ((*p) & 63);
return; return;
} }
move_number -= penguin_copy & 7; move_number -= penguin_copy & 7;
penguin_copy = penguin_copy >> 3; penguin_copy = penguin_copy >> 3;
if((penguin_copy & 7) >= move_number) if((penguin_copy & 7) > move_number)
{ {
//Move direction B //Move direction B
(*p) = (-1 * move_number +1) + ((*p) & 63); (*p) = (-1 * (move_number +1)) + ((*p) & 63);
return; return;
} }
move_number -= penguin_copy & 7; move_number -= penguin_copy & 7;
penguin_copy = penguin_copy >> 3; penguin_copy = penguin_copy >> 3;
if((penguin_copy & 7) >= move_number) if((penguin_copy & 7) > move_number)
{ {
//Move direction C //Move direction C
(*p) = (-8 * move_number +1) + ((*p) & 63); (*p) = (-8 * (move_number +1)) + ((*p) & 63);
return; return;
} }
move_number -= penguin_copy & 7; move_number -= penguin_copy & 7;
penguin_copy = penguin_copy >> 3; penguin_copy = penguin_copy >> 3;
if((penguin_copy & 7) >= move_number) if((penguin_copy & 7) > move_number)
{ {
//Move direction D //Move direction D
(*p) = (-7 * move_number +1) + ((*p) & 63); (*p) = (-7 * (move_number +1)) + ((*p) & 63);
return; return;
} }
move_number -= penguin_copy & 7; move_number -= penguin_copy & 7;
penguin_copy = penguin_copy >> 3; penguin_copy = penguin_copy >> 3;
if((penguin_copy & 7) >= move_number) if((penguin_copy & 7) > move_number)
{ {
//Move direction E //Move direction E
(*p) = (1 * move_number +1) + ((*p) & 63); (*p) = (1 * (move_number +1)) + ((*p) & 63);
return; return;
} }
move_number -= penguin_copy & 7; move_number -= penguin_copy & 7;
penguin_copy = penguin_copy >> 3; penguin_copy = penguin_copy >> 3;
//Move direction F //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) int penguin::update_moves(uint32_t* p, uint64_t obstacles)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment