#define PLAYER_SIDES 11 #define LEVEL_WIDTH 14 char collide(int x, int y, char level[], char tile) { 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) || (level[(int)((x+PLAYER_SIDES)/8) + (int)(y/8) * LEVEL_WIDTH] == tile) || (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) || (level[(int)((x+PLAYER_SIDES)/8) + (int)((y+PLAYER_SIDES/2)/8) * LEVEL_WIDTH] == tile)) return 1; else return 0; }