2020-02-12 10:47:12 +01:00
|
|
|
#define PLAYER_SIDES 5
|
2020-02-13 09:12:34 +01:00
|
|
|
#define LEVEL_WIDTH 28
|
2020-02-11 11:44:37 +01:00
|
|
|
|
2020-02-11 13:55:57 +01:00
|
|
|
char collide(int x, int y, char level[], char tile)
|
2020-02-11 11:44:37 +01:00
|
|
|
{
|
2020-02-11 13:55:57 +01:00
|
|
|
if ((level[(int)(x/8) + (int)(y/8) * LEVEL_WIDTH] == tile) ||
|
|
|
|
(level[(int)(x/8) + (int)((y+PLAYER_SIDES)/8) * LEVEL_WIDTH] == tile) ||
|
|
|
|
(level[(int)((x+PLAYER_SIDES)/8) + (int)((y+PLAYER_SIDES)/8) * LEVEL_WIDTH] == tile) ||
|
2020-02-14 15:11:36 +01:00
|
|
|
(level[(int)((x+PLAYER_SIDES)/8) + (int)(y/8) * LEVEL_WIDTH] == tile) /*||
|
2020-02-11 13:55:57 +01:00
|
|
|
(level[(int)(x/8) + (int)((y+PLAYER_SIDES/2)/8) * LEVEL_WIDTH] == tile) ||
|
|
|
|
(level[(int)((x+PLAYER_SIDES/2)/8) + (int)(y/8) * LEVEL_WIDTH] == tile) ||
|
|
|
|
(level[(int)((x+PLAYER_SIDES/2)/8) + (int)((y+PLAYER_SIDES)/8) * LEVEL_WIDTH] == tile) ||
|
2020-02-14 15:11:36 +01:00
|
|
|
(level[(int)((x+PLAYER_SIDES)/8) + (int)((y+PLAYER_SIDES/2)/8) * LEVEL_WIDTH] == tile)*/) return 1;
|
2020-02-13 09:12:34 +01:00
|
|
|
return 0;
|
2020-02-11 11:44:37 +01:00
|
|
|
}
|
2020-02-13 10:12:04 +01:00
|
|
|
|
|
|
|
char collide_solid(int x, int y, char level[])
|
|
|
|
{
|
|
|
|
return (collide(x, y, level, '0') || collide(x, y, level, '^'));
|
|
|
|
}
|