# HG changeset patch # User David Demelier # Date 1605690207 -3600 # Node ID 33ddbe30440e3fd41053808915ca8df3ea9643ae # Parent 64f24b48272221c2c67caf039be81ee5f964327e rpg: improve collisions diff -r 64f24b482722 -r 33ddbe30440e librpg/rpg/map.c --- a/librpg/rpg/map.c Tue Nov 17 20:08:42 2020 +0100 +++ b/librpg/rpg/map.c Wed Nov 18 10:03:27 2020 +0100 @@ -312,8 +312,8 @@ const int playercol = map->player_x / map->tileset->sprite->cellw; const int playerrow = map->player_y / map->tileset->sprite->cellh; - const int ncols = map->player_sprite->cellw / map->tileset->sprite->cellw; - const int nrows = map->player_sprite->cellh / map->tileset->sprite->cellh; + const int ncols = (map->player_sprite->cellw / map->tileset->sprite->cellw) + 1; + const int nrows = (map->player_sprite->cellh / map->tileset->sprite->cellh) + 1; int rowstart, rowend, colstart, colend; if (drow) { @@ -328,7 +328,7 @@ block->w = WIDTH(map); } else { /* Moving DOWN. */ - rowstart = playerrow + nrows; + rowstart = playerrow; rowend = HEIGHT(map); block->x = block->h = 0; block->y = HEIGHT(map); @@ -346,7 +346,7 @@ block->h = HEIGHT(map); } else { /* Moving RIGHT. */ - colstart = playercol + ncols; + colstart = playercol; colend = WIDTH(map); block->x = WIDTH(map); block->y = block->w = 0;