>>109380505
I mean I guess that works for your use case. For me I need to construct the background from multiple tiles.
// Each sector is using the Von Neumann neighborhood: The center room plus its N/E/S/W neighbors.
static void WorldDrawSector(World *world, SDL_Renderer *renderer, SDL_Texture *tileset, vec2 offset)
{
Room *north = &world->rooms[world->curr_room->adj_room_ids[0]];
Room *south = &world->rooms[world->curr_room->adj_room_ids[1]];
Room *west = &world->rooms[world->curr_room->adj_room_ids[2]];
Room *east = &world->rooms[world->curr_room->adj_room_ids[3]];
vec2 north_offset = { offset.x, (world->curr_room->bounds.y + offset.y) };
vec2 south_offset = { offset.x, -(world->curr_room->bounds.y - offset.y) };
vec2 west_offset = { (world->curr_room->bounds.x + offset.x), offset.y };
vec2 east_offset = { -(world->curr_room->bounds.x - offset.x), offset.y };
RoomDrawTiles(north, world->canvas, tileset, renderer, north_offset);
RoomDrawEntities(north, renderer, north_offset);
RoomDrawTiles(south, world->canvas, tileset, renderer, south_offset);
RoomDrawEntities(south, renderer, south_offset);
RoomDrawTiles(west, world->canvas, tileset, renderer, west_offset);
RoomDrawEntities(west, renderer, west_offset);
RoomDrawTiles(east, world->canvas, tileset, renderer, east_offset);
RoomDrawEntities(east, renderer, east_offset);
RoomDrawTiles(world->curr_room, world->canvas, tileset, renderer, offset);
RoomDrawEntities(world->curr_room, renderer, offset);
}