mirror of
https://github.com/zoriya/Gamacon.git
synced 2026-06-01 03:08:47 +00:00
Adding offsets to map linker
This commit is contained in:
@@ -15,6 +15,7 @@ struct map_linker
|
||||
{
|
||||
gc_component base;
|
||||
struct tile *tile;
|
||||
gc_vector2i offset;
|
||||
};
|
||||
|
||||
const struct map_linker map_linker;
|
||||
|
||||
@@ -47,6 +47,7 @@ static void ctr(void *component, va_list args)
|
||||
bool solid = va_arg(args, int);
|
||||
|
||||
cmp->tile = NULL;
|
||||
cmp->offset = (gc_vector2i){0, 0};
|
||||
if (!scene || !(maps = scene->get_entity_by_cmp(scene, "vertex_component")))
|
||||
return;
|
||||
vert = GETCMP(maps->data, vertex_component);
|
||||
@@ -67,8 +68,9 @@ static void fdctr(gc_entity *entity, gc_scene *scene, void *component, node *n)
|
||||
return;
|
||||
vert = GETCMP(maps->data, vertex_component);
|
||||
cmp->tile = init(entity, vert, (gc_vector2i){x, y}, solid);
|
||||
if (renderer && xml_hasproperty(n, "centered"))
|
||||
if (renderer && xml_hasproperty(n, "centered")) {
|
||||
renderer->render_mode_x = RENDER_MODE_CENTERED;
|
||||
}
|
||||
}
|
||||
|
||||
static void dtr(void *component)
|
||||
|
||||
@@ -97,7 +97,7 @@ struct vertex_component *info, float dt)
|
||||
tl = get_tile_from_pos(info, gc_vector2_add(pos, *(gc_vector2 *)&w));
|
||||
for (i = 0; info->map[i].corners[0]; i++);
|
||||
for (i--; i >= 0; i--) {
|
||||
sfmlrenderer_manage_hovered_tile(this, &info->map[i] == tl);
|
||||
sfmlrenderer_manage_hovered_tile(this, &info->map[i] == tl || info->map[i].entity);
|
||||
sfmlrenderer_draw_tile(engine, pos, &info->map[i], dt);
|
||||
}
|
||||
}
|
||||
@@ -28,4 +28,7 @@ struct tile *tile, gc_vector2 map_offset) {
|
||||
tra->position.x += map_offset.x;
|
||||
tra->position.y += map_offset.y;
|
||||
tra->position.y *= -1;
|
||||
gc_vector2 off = gc_vector2_from_coords(link->offset.x, link->offset.y, 0);
|
||||
tra->position.x += off.x / 16;
|
||||
tra->position.y += off.y / 16;
|
||||
}
|
||||
Reference in New Issue
Block a user