|
|
@@ -14,10 +14,8 @@ typedef struct
|
|
|
|
|
|
void map_draw(unsigned x, unsigned y, const Map map)
|
|
|
{
|
|
|
- unsigned tile_x = x / 24;
|
|
|
- unsigned tile_y = y / 24;
|
|
|
- unsigned offset_x = x % 24;
|
|
|
- unsigned offset_y = y % 24;
|
|
|
+ unsigned offset_x = x % 24 * -1;
|
|
|
+ unsigned offset_y = y % 24 * -1;
|
|
|
|
|
|
unsigned i, j, tile_offset;
|
|
|
Rect sprite;
|
|
|
@@ -25,16 +23,25 @@ void map_draw(unsigned x, unsigned y, const Map map)
|
|
|
sprite.w = 24;
|
|
|
sprite.h = 24;
|
|
|
|
|
|
- for (i = 0; i < 15; i++)
|
|
|
+ tile_offset = x / 24 + y / 24 * map.w;
|
|
|
+
|
|
|
for (j = 0; j < 11; j++)
|
|
|
{
|
|
|
- tile_offset = (tile_x + i) + (tile_y + j) * map.w;
|
|
|
+ for (i = 0; i < 15; i++)
|
|
|
+ {
|
|
|
+ sprite.x = map.layer0[tile_offset] * 24;
|
|
|
+ drawSpritePart(tiles, offset_x, offset_y, &sprite);
|
|
|
+
|
|
|
+ sprite.x = map.layer1[tile_offset] * 24;
|
|
|
+ drawSpritePart(tiles, offset_x, offset_y, &sprite);
|
|
|
|
|
|
- sprite.x = map.layer0[tile_offset] * 24;
|
|
|
- if (sprite.x) drawSpritePart(tiles, (i * 24) - offset_x, (j * 24) - offset_y, &sprite);
|
|
|
+ tile_offset++;
|
|
|
+ offset_x += 24;
|
|
|
+ }
|
|
|
|
|
|
- sprite.x = map.layer1[tile_offset] * 24;
|
|
|
- if (sprite.x) drawSpritePart(tiles, (i * 24) - offset_x, (j * 24) - offset_y, &sprite);
|
|
|
+ tile_offset += map.w - 15;
|
|
|
+ offset_x -= 24 * 15;
|
|
|
+ offset_y += 24;
|
|
|
}
|
|
|
}
|
|
|
|