From f381453dbd857f73b23a69548225912ceb3a49fd Mon Sep 17 00:00:00 2001 From: hg <4683435+hgtw@users.noreply.github.com> Date: Thu, 14 Jul 2022 03:16:43 -0400 Subject: [PATCH] [Tasks] Place task item rewards in free slots (#2300) Live places item rewards into the first free inventory slot and only places it on the cursor if inventory is full --- zone/task_client_state.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/zone/task_client_state.cpp b/zone/task_client_state.cpp index 86cc835b6..dda42b80d 100644 --- a/zone/task_client_state.cpp +++ b/zone/task_client_state.cpp @@ -1291,7 +1291,8 @@ void ClientTaskState::RewardTask(Client *client, TaskInformation *task_informati switch (task_information->reward_method) { case METHODSINGLEID: { if (task_information->reward_id) { - client->SummonItem(task_information->reward_id); + int16_t slot = client->GetInv().FindFreeSlot(true, true); + client->SummonItem(task_information->reward_id, -1, 0, 0, 0, 0, 0, 0, false, slot); item_data = database.GetItem(task_information->reward_id); if (item_data) { client->MessageString(Chat::Yellow, YOU_HAVE_BEEN_GIVEN, item_data->Name); @@ -1302,7 +1303,8 @@ void ClientTaskState::RewardTask(Client *client, TaskInformation *task_informati case METHODLIST: { reward_list = task_manager->m_goal_list_manager.GetListContents(task_information->reward_id); for (int item_id : reward_list) { - client->SummonItem(item_id); + int16_t slot = client->GetInv().FindFreeSlot(true, true); + client->SummonItem(item_id, -1, 0, 0, 0, 0, 0, 0, false, slot); item_data = database.GetItem(item_id); if (item_data) { client->MessageString(Chat::Yellow, YOU_HAVE_BEEN_GIVEN, item_data->Name);