mirror of
https://github.com/EQEmu/Server.git
synced 2026-09-05 07:16:37 +00:00
Combine task_activity item and npc fields
This will make tooling easier. While denormalizing goallists may not be ideal, it decouples tasks from rewards which share the table and removes a redundant column in favor of a using the delimited string which better matches live packet data.
This commit is contained in:
@@ -492,19 +492,6 @@ bool ClientTaskState::CanUpdate(Client* client, const TaskUpdateFilter& filter,
|
||||
return false;
|
||||
}
|
||||
|
||||
// item is only checked for updates that provide an item (unlike npc which may be null for non-npcs)
|
||||
if (activity.item_id != 0 && filter.item_id != 0 && activity.item_id != filter.item_id)
|
||||
{
|
||||
LogTasks("[CanUpdate] client [{}] task [{}]-[{}] failed item id filter", client->GetName(), task_id, client_activity.activity_id);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (activity.npc_id != 0 && (!filter.npc || activity.npc_id != filter.npc->GetNPCTypeID()))
|
||||
{
|
||||
LogTasks("[CanUpdate] client [{}] task [{}]-[{}] failed npc id filter", client->GetName(), task_id, client_activity.activity_id);
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!activity.CheckZone(zone->GetZoneID(), zone->GetInstanceVersion()))
|
||||
{
|
||||
LogTasks("[CanUpdate] client [{}] task [{}]-[{}] failed zone filter", client->GetName(), task_id, client_activity.activity_id);
|
||||
@@ -523,13 +510,7 @@ bool ClientTaskState::CanUpdate(Client* client, const TaskUpdateFilter& filter,
|
||||
}
|
||||
}
|
||||
|
||||
if (activity.item_goal_id != 0 && filter.item_id != 0 &&
|
||||
!task_manager->m_goal_list_manager.IsInList(activity.item_goal_id, filter.item_id))
|
||||
{
|
||||
LogTasks("[CanUpdate] client [{}] task [{}]-[{}] failed item goallist filter", client->GetName(), task_id, client_activity.activity_id);
|
||||
return false;
|
||||
}
|
||||
|
||||
// item is only checked for updates that provide an item to check (unlike npc which may be null for non-npcs)
|
||||
if (!activity.item_id_list.empty() && filter.item_id != 0 &&
|
||||
!TaskGoalListManager::IsInMatchList(activity.item_id_list, std::to_string(filter.item_id)))
|
||||
{
|
||||
@@ -537,13 +518,6 @@ bool ClientTaskState::CanUpdate(Client* client, const TaskUpdateFilter& filter,
|
||||
return false;
|
||||
}
|
||||
|
||||
if (activity.npc_goal_id != 0 && (!filter.npc ||
|
||||
!task_manager->m_goal_list_manager.IsInList(activity.npc_goal_id, filter.npc->GetNPCTypeID())))
|
||||
{
|
||||
LogTasks("[CanUpdate] client [{}] task [{}]-[{}] failed npc goallist filter", client->GetName(), task_id, client_activity.activity_id);
|
||||
return false;
|
||||
}
|
||||
|
||||
// npc filter supports both npc names and ids in match lists
|
||||
if (!activity.npc_match_list.empty() && (!filter.npc ||
|
||||
(!TaskGoalListManager::IsInMatchListPartial(activity.npc_match_list, filter.npc->GetName()) &&
|
||||
|
||||
@@ -212,11 +212,7 @@ bool TaskManager::LoadTasks(int single_task)
|
||||
activity_data->spell_list = task_activity.spell_list;
|
||||
activity_data->spell_id = Strings::IsNumber(task_activity.spell_list) ? std::stoi(task_activity.spell_list) : 0; // for older clients
|
||||
activity_data->description_override = task_activity.description_override;
|
||||
activity_data->npc_id = task_activity.npc_id;
|
||||
activity_data->npc_goal_id = task_activity.npc_goal_id;
|
||||
activity_data->npc_match_list = task_activity.npc_match_list;
|
||||
activity_data->item_id = task_activity.item_id;
|
||||
activity_data->item_goal_id = task_activity.item_goal_id;
|
||||
activity_data->item_id_list = task_activity.item_id_list;
|
||||
activity_data->dz_switch_id = task_activity.dz_switch_id;
|
||||
activity_data->goal_method = (TaskMethodType) task_activity.goalmethod;
|
||||
|
||||
Reference in New Issue
Block a user