#include "collide.h" #define PLAYER_SIDES 11 #define LEVEL_WIDTH 28 char collide(int x, int y, char level[], char tile) { if ((level[(int)(x/16) + (int)(y/16) * LEVEL_WIDTH] == tile) || (level[(int)(x/16) + (int)((y+PLAYER_SIDES)/16) * LEVEL_WIDTH] == tile) || (level[(int)((x+PLAYER_SIDES)/16) + (int)((y+PLAYER_SIDES)/16) * LEVEL_WIDTH] == tile) || (level[(int)((x+PLAYER_SIDES)/16) + (int)(y/16) * LEVEL_WIDTH] == tile) /*|| (level[(int)(x/16) + (int)((y+PLAYER_SIDES/2)/16) * LEVEL_WIDTH] == tile) || (level[(int)((x+PLAYER_SIDES/2)/16) + (int)(y/16) * LEVEL_WIDTH] == tile) || (level[(int)((x+PLAYER_SIDES/2)/16) + (int)((y+PLAYER_SIDES)/16) * LEVEL_WIDTH] == tile) || (level[(int)((x+PLAYER_SIDES)/16) + (int)((y+PLAYER_SIDES/2)/16) * LEVEL_WIDTH] == tile)*/) return 1; return 0; } char collide_solid(int x, int y, char level[]) { return (collide(x, y, level, '0') || collide(x, y, level, '^') || collide(x, y, level, '~') || collide(x, y, level, '#')); }