Update GetTaskActivityDoneCountFromTaskID and GetTaskStartTime

This commit is contained in:
Michael Cook (mackal) 2018-07-06 00:59:19 -04:00
parent 0600b6834a
commit 955b2afb18
3 changed files with 21 additions and 8 deletions

View File

@ -1036,7 +1036,7 @@ public:
inline void CancelAllTasks() { if(taskstate) taskstate->CancelAllTasks(this); } inline void CancelAllTasks() { if(taskstate) taskstate->CancelAllTasks(this); }
inline int GetActiveTaskCount() { return (taskstate ? taskstate->GetActiveTaskCount() : 0); } inline int GetActiveTaskCount() { return (taskstate ? taskstate->GetActiveTaskCount() : 0); }
inline int GetActiveTaskID(int index) { return (taskstate ? taskstate->GetActiveTaskID(index) : -1); } inline int GetActiveTaskID(int index) { return (taskstate ? taskstate->GetActiveTaskID(index) : -1); }
inline int GetTaskStartTime(int index) { return (taskstate ? taskstate->GetTaskStartTime(index) : -1); } inline int GetTaskStartTime(TaskType type, int index) { return (taskstate ? taskstate->GetTaskStartTime(type, index) : -1); }
inline bool IsTaskActivityCompleted(TaskType type, int index, int ActivityID) { return (taskstate ? taskstate->IsTaskActivityCompleted(type, index, ActivityID) : false); } inline bool IsTaskActivityCompleted(TaskType type, int index, int ActivityID) { return (taskstate ? taskstate->IsTaskActivityCompleted(type, index, ActivityID) : false); }
inline int GetTaskActivityDoneCount(TaskType type, int ClientTaskIndex, int ActivityID) { return (taskstate ? taskstate->GetTaskActivityDoneCount(type, ClientTaskIndex, ActivityID) :0); } inline int GetTaskActivityDoneCount(TaskType type, int ClientTaskIndex, int ActivityID) { return (taskstate ? taskstate->GetTaskActivityDoneCount(type, ClientTaskIndex, ActivityID) :0); }
inline int GetTaskActivityDoneCountFromTaskID(int TaskID, int ActivityID) { return (taskstate ? taskstate->GetTaskActivityDoneCountFromTaskID(TaskID, ActivityID) :0); } inline int GetTaskActivityDoneCountFromTaskID(int TaskID, int ActivityID) { return (taskstate ? taskstate->GetTaskActivityDoneCountFromTaskID(TaskID, ActivityID) :0); }

View File

@ -2731,7 +2731,7 @@ void TaskManager::SendActiveTasksToClient(Client *c, bool TaskComplete)
for (int TaskIndex=0; TaskIndex<MAXACTIVEQUESTS; TaskIndex++) { for (int TaskIndex=0; TaskIndex<MAXACTIVEQUESTS; TaskIndex++) {
int TaskID = c->GetActiveTaskID(TaskIndex); int TaskID = c->GetActiveTaskID(TaskIndex);
if((TaskID==0) || (Tasks[TaskID] ==0)) continue; if((TaskID==0) || (Tasks[TaskID] ==0)) continue;
int StartTime = c->GetTaskStartTime(TaskIndex); int StartTime = c->GetTaskStartTime(Tasks[TaskID]->type, TaskIndex);
SendActiveTaskDescription(c, TaskID, state->ActiveQuests[TaskIndex], StartTime, Tasks[TaskID]->Duration, false); SendActiveTaskDescription(c, TaskID, state->ActiveQuests[TaskIndex], StartTime, Tasks[TaskID]->Duration, false);
Log(Logs::General, Logs::Tasks, "[UPDATE] SendActiveTasksToClient: Task %i, Activities: %i", TaskID, GetActivityCount(TaskID)); Log(Logs::General, Logs::Tasks, "[UPDATE] SendActiveTasksToClient: Task %i, Activities: %i", TaskID, GetActivityCount(TaskID));
@ -2939,7 +2939,13 @@ int ClientTaskState::GetTaskActivityDoneCount(TaskType type, int index, int Acti
} }
} }
int ClientTaskState::GetTaskActivityDoneCountFromTaskID(int TaskID, int ActivityID){ int ClientTaskState::GetTaskActivityDoneCountFromTaskID(int TaskID, int ActivityID)
{
if (ActiveTask.TaskID == TaskID)
return ActiveTask.Activity[ActivityID].DoneCount;
// TODO: shared tasks
int ActiveTaskIndex = -1; int ActiveTaskIndex = -1;
for(int i=0; i<MAXACTIVEQUESTS; i++) { for(int i=0; i<MAXACTIVEQUESTS; i++) {
if(ActiveQuests[i].TaskID==TaskID) { if(ActiveQuests[i].TaskID==TaskID) {
@ -2959,10 +2965,17 @@ int ClientTaskState::GetTaskActivityDoneCountFromTaskID(int TaskID, int Activity
} }
} }
int ClientTaskState::GetTaskStartTime(int index) { int ClientTaskState::GetTaskStartTime(TaskType type, int index)
{
switch (type) {
case TaskType::Task:
return ActiveTask.AcceptedTime;
case TaskType::Quest:
return ActiveQuests[index].AcceptedTime; return ActiveQuests[index].AcceptedTime;
case TaskType::Shared: // TODO
default:
return -1;
}
} }
void ClientTaskState::CancelAllTasks(Client *c) { void ClientTaskState::CancelAllTasks(Client *c) {

View File

@ -199,7 +199,7 @@ public:
bool IsTaskActivityCompleted(TaskType type, int index, int ActivityID); bool IsTaskActivityCompleted(TaskType type, int index, int ActivityID);
int GetTaskActivityDoneCount(TaskType type, int index, int ActivityID); int GetTaskActivityDoneCount(TaskType type, int index, int ActivityID);
int GetTaskActivityDoneCountFromTaskID(int TaskID, int ActivityID); int GetTaskActivityDoneCountFromTaskID(int TaskID, int ActivityID);
int GetTaskStartTime(int index); int GetTaskStartTime(TaskType type, int index);
void AcceptNewTask(Client *c, int TaskID, int NPCID, bool enforce_level_requirement = false); void AcceptNewTask(Client *c, int TaskID, int NPCID, bool enforce_level_requirement = false);
void FailTask(Client *c, int TaskID); void FailTask(Client *c, int TaskID);
int TaskTimeLeft(int TaskID); int TaskTimeLeft(int TaskID);