Some work on world's task activity states

This commit is contained in:
Michael Cook (mackal) 2019-05-30 02:00:29 -04:00
parent c093b3e2ab
commit b0dff0c006
2 changed files with 29 additions and 0 deletions

View File

@ -10,6 +10,7 @@
extern ClientList client_list;
extern ZSList zoneserver_list;
extern SharedTaskManager shared_tasks;
void SharedTaskManager::HandleTaskRequest(ServerPacket *pack)
{
@ -152,6 +153,7 @@ void SharedTaskManager::HandleTaskRequest(ServerPacket *pack)
// this will also prevent any of these clients from requesting or being added to another, lets do it now before we tell zone
task.SetCLESharedTasks();
task.InitActivities();
// fire off to zone we're done!
SerializeBuffer buf(10 + 10 * players.size());
buf.WriteInt32(id); // shared task's ID
@ -528,3 +530,21 @@ void SharedTask::Save() const
{
}
/*
* sets up activity stuff
*/
void SharedTask::InitActivities()
{
task_state.TaskID = task_id;
task_state.AcceptedTime = time(nullptr);
task_state.Updated = true;
task_state.CurrentStep = -1;
for (int i = 0; i < shared_tasks.GetTaskActivityCount(task_id); i++) {
task_state.Activity[i].ActivityID = i;
task_state.Activity[i].DoneCount = 0;
task_state.Activity[i].State = ActivityHidden;
task_state.Activity[i].Updated = true;
}
}

View File

@ -42,6 +42,7 @@ public:
void SerializeMembers(SerializeBuffer &buf, bool include_leader = true) const;
void SetCLESharedTasks();
void InitActivities();
void Save() const; // save to database
@ -79,6 +80,14 @@ public:
return nullptr;
}
inline int GetTaskActivityCount(int task_id) const {
auto it = task_information.find(task_id);
if (it != task_information.end())
return it->second.ActivityCount;
else
return 0; // hmm
}
// IPC packet processing
void HandleTaskRequest(ServerPacket *pack);
void HandleTaskZoneCreated(ServerPacket *pack);