From 079819e8d113d65f8bbce2723fbe1c93e979bb9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dominik=20Madar=C3=A1sz?= Date: Tue, 9 Aug 2022 17:54:00 +0200 Subject: [PATCH] improve mouse picking --- code/modules/modules/systems.c | 2 +- code/modules/source/system_items.c | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/code/modules/modules/systems.c b/code/modules/modules/systems.c index 6df2cad..cdab34d 100644 --- a/code/modules/modules/systems.c +++ b/code/modules/modules/systems.c @@ -184,7 +184,7 @@ void PlayerClosestInteractable(ecs_iter_t *it){ in[i].pick_ent = closest_pick; if (in[i].pick) - in[i].sel_ent = closest_pick; + in[i].sel_ent = (in[i].sel_ent == closest_pick) ? 0 : closest_pick; } } diff --git a/code/modules/source/system_items.c b/code/modules/source/system_items.c index 4744a07..e3f9420 100644 --- a/code/modules/source/system_items.c +++ b/code/modules/source/system_items.c @@ -297,7 +297,9 @@ void InspectContainers(ecs_iter_t *it) { for (int i = 0; i < it->count; ++i) { if (!in[i].pick) continue; - in[i].storage_ent = in[i].pick_ent; + + if ((in[i].sel_ent && ecs_get(it->world, in[i].sel_ent, ItemContainer)) || !in[i].sel_ent) + in[i].storage_ent = in[i].sel_ent; } } @@ -342,6 +344,3 @@ void HarvestIntoContainers(ecs_iter_t *it) { } } } - - -