2020-06-26 19:08:51 +02:00
|
|
|
#include "collide.h"
|
2020-06-27 14:47:58 +02:00
|
|
|
#include "define.h"
|
2020-06-26 19:08:51 +02:00
|
|
|
|
2020-06-30 19:13:03 +02:00
|
|
|
char collide(int x, int y, char level[], char gravity, char block) //detect if player is in a block
|
2020-06-26 19:08:51 +02:00
|
|
|
{
|
2020-06-30 19:13:03 +02:00
|
|
|
if(((level[(int)(x/16) + (int)((y/16) * 25)] == block ||
|
|
|
|
level[(int)((x + PLAYER_HEIGHT)/16) + (int)((y/16) * 25)] == block) && gravity) ||
|
|
|
|
((level[(int)(x/16) + (int)((y + PLAYER_HEIGHT)/16) * 25] == block ||
|
|
|
|
level[(int)((x + PLAYER_HEIGHT)/16) + (int)((y + PLAYER_HEIGHT)/16) * 25] == block) && !gravity)) return 1;
|
2020-06-30 17:12:33 +02:00
|
|
|
return 0;
|
2020-06-29 22:31:30 +02:00
|
|
|
}
|
|
|
|
|
2020-06-30 17:12:33 +02:00
|
|
|
char collide_solid(int x, int y, char level[], char gravity)
|
2020-06-29 22:31:30 +02:00
|
|
|
{
|
2020-06-30 17:12:33 +02:00
|
|
|
return collide(x, y, level, gravity, '1') || collide(x, y, level, gravity, '2');
|
2020-06-27 14:47:58 +02:00
|
|
|
}
|