mirror of
https://github.com/zoriya/My3D.git
synced 2026-06-04 02:56:32 +00:00
fix the click with the offset of map
This commit is contained in:
+1
-1
Submodule lib/gamacon updated: b9532de65a...ba792b5fe3
@@ -34,27 +34,40 @@ struct tile *ret, bool is_left)
|
||||
}
|
||||
}
|
||||
|
||||
bool tile_interact(gc_engine *engine, gc_entity *entity, gc_vector2 pos, \
|
||||
enum gc_mousekeys key)
|
||||
void do_the_tile_interact(gc_engine *engine, void **dodge, \
|
||||
enum gc_mousekeys key, gc_vector2 pos)
|
||||
{
|
||||
struct vertex_component *map = GETCMP(entity, vertex_component);
|
||||
struct map_manager_component *manager = GETCMP(entity, map_manager_component);
|
||||
int ind;
|
||||
struct map_manager_component *manager = dodge[1];
|
||||
struct vertex_component *map = dodge[0];
|
||||
struct tile *ret = get_tile_from_pos(map, pos);
|
||||
bool r = manager->brush == RESET;
|
||||
int ind;
|
||||
|
||||
if (!map || !manager) {
|
||||
my_printf("map not found\n");
|
||||
return (false);
|
||||
}
|
||||
if (!ret)
|
||||
return (false);
|
||||
return;
|
||||
if (manager->tile_mode)
|
||||
click_tile(engine, manager, ret, key == GC_LEFT);
|
||||
else {
|
||||
ind = get_index_nearest_vertex(ret, pos);
|
||||
move_tile(engine, ret, ((int) pow(2, ind + 1)) | (key == GC_LEFT), r);
|
||||
move_tile(engine, ret, ((int) pow(2, ind + 1)) | (key == GC_LEFT), r);
|
||||
}
|
||||
}
|
||||
|
||||
bool tile_interact(gc_engine *engine, gc_entity *entity, gc_vector2 pos, \
|
||||
enum gc_mousekeys key)
|
||||
{
|
||||
struct map_manager_component *m = GETCMP(entity, map_manager_component);
|
||||
struct transform_component *tc = GETCMP(entity, transform_component);
|
||||
struct vertex_component *map = GETCMP(entity, vertex_component);
|
||||
void *dodge[2] = {map, m};
|
||||
|
||||
if (!map || !m || !tc) {
|
||||
my_printf("map not found\n");
|
||||
return (false);
|
||||
}
|
||||
pos.x -= tc->position.x;
|
||||
pos.y += tc->position.y;
|
||||
do_the_tile_interact(engine, dodge, key, pos);
|
||||
return (false);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user