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) { } } } - - -