mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-15 12:31:31 +00:00
Change TaskInformation strings to std::string
This commit is contained in:
parent
9e64132261
commit
4662f29f11
@ -48,9 +48,6 @@ TaskManager::TaskManager() {
|
|||||||
TaskManager::~TaskManager() {
|
TaskManager::~TaskManager() {
|
||||||
for(int i=0; i<MAXTASKS; i++) {
|
for(int i=0; i<MAXTASKS; i++) {
|
||||||
if(Tasks[i] != nullptr) {
|
if(Tasks[i] != nullptr) {
|
||||||
safe_delete_array(Tasks[i]->Title);
|
|
||||||
safe_delete_array(Tasks[i]->Description);
|
|
||||||
safe_delete_array(Tasks[i]->Reward);
|
|
||||||
safe_delete(Tasks[i]);
|
safe_delete(Tasks[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -93,9 +90,6 @@ bool TaskManager::LoadSingleTask(int TaskID) {
|
|||||||
|
|
||||||
// If this task already exists in memory, free all the dynamically allocated strings.
|
// If this task already exists in memory, free all the dynamically allocated strings.
|
||||||
if(Tasks[TaskID]) {
|
if(Tasks[TaskID]) {
|
||||||
safe_delete_array(Tasks[TaskID]->Title);
|
|
||||||
safe_delete_array(Tasks[TaskID]->Description);
|
|
||||||
safe_delete_array(Tasks[TaskID]->Reward);
|
|
||||||
safe_delete(Tasks[TaskID]);
|
safe_delete(Tasks[TaskID]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -153,12 +147,9 @@ bool TaskManager::LoadTasks(int singleTask)
|
|||||||
|
|
||||||
Tasks[taskID] = new TaskInformation;
|
Tasks[taskID] = new TaskInformation;
|
||||||
Tasks[taskID]->Duration = atoi(row[1]);
|
Tasks[taskID]->Duration = atoi(row[1]);
|
||||||
Tasks[taskID]->Title = new char[strlen(row[2]) + 1];
|
Tasks[taskID]->Title = row[2];
|
||||||
strcpy(Tasks[taskID]->Title, row[2]);
|
Tasks[taskID]->Description = row[3];
|
||||||
Tasks[taskID]->Description = new char[strlen(row[3]) + 1];
|
Tasks[taskID]->Reward = row[4];
|
||||||
strcpy(Tasks[taskID]->Description, row[3]);
|
|
||||||
Tasks[taskID]->Reward = new char[strlen(row[4]) + 1];
|
|
||||||
strcpy(Tasks[taskID]->Reward, row[4]);
|
|
||||||
Tasks[taskID]->RewardID = atoi(row[5]);
|
Tasks[taskID]->RewardID = atoi(row[5]);
|
||||||
Tasks[taskID]->CashReward = atoi(row[6]);
|
Tasks[taskID]->CashReward = atoi(row[6]);
|
||||||
Tasks[taskID]->XPReward = atoi(row[7]);
|
Tasks[taskID]->XPReward = atoi(row[7]);
|
||||||
@ -174,9 +165,9 @@ bool TaskManager::LoadTasks(int singleTask)
|
|||||||
Log(Logs::General, Logs::Tasks,
|
Log(Logs::General, Logs::Tasks,
|
||||||
"[GLOBALLOAD] TaskID: %5i, Duration: %8i, StartZone: %3i Reward: %s MinLevel %i MaxLevel %i "
|
"[GLOBALLOAD] TaskID: %5i, Duration: %8i, StartZone: %3i Reward: %s MinLevel %i MaxLevel %i "
|
||||||
"Repeatable: %s",
|
"Repeatable: %s",
|
||||||
taskID, Tasks[taskID]->Duration, Tasks[taskID]->StartZone, Tasks[taskID]->Reward,
|
taskID, Tasks[taskID]->Duration, Tasks[taskID]->StartZone, Tasks[taskID]->Reward.c_str(),
|
||||||
Tasks[taskID]->MinLevel, Tasks[taskID]->MaxLevel, Tasks[taskID]->Repeatable ? "Yes" : "No");
|
Tasks[taskID]->MinLevel, Tasks[taskID]->MaxLevel, Tasks[taskID]->Repeatable ? "Yes" : "No");
|
||||||
Log(Logs::General, Logs::Tasks, "[GLOBALLOAD] Title: %s", Tasks[taskID]->Title);
|
Log(Logs::General, Logs::Tasks, "[GLOBALLOAD] Title: %s", Tasks[taskID]->Title.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (singleTask == 0)
|
if (singleTask == 0)
|
||||||
@ -658,7 +649,7 @@ bool TaskManager::LoadClientState(Client *c, ClientTaskState *state) {
|
|||||||
if(state->ActiveTasks[i].Activity[j].ActivityID != j) {
|
if(state->ActiveTasks[i].Activity[j].ActivityID != j) {
|
||||||
c->Message(13, "Active Task %i, %s. Activity count does not match expected value."
|
c->Message(13, "Active Task %i, %s. Activity count does not match expected value."
|
||||||
"Removing from memory. Contact a GM to resolve this.",
|
"Removing from memory. Contact a GM to resolve this.",
|
||||||
taskID, Tasks[taskID]->Title);
|
taskID, Tasks[taskID]->Title.c_str());
|
||||||
|
|
||||||
Log(Logs::General, Logs::Error, "[TASKS]Fatal error in character %i task state. Activity %i for "
|
Log(Logs::General, Logs::Error, "[TASKS]Fatal error in character %i task state. Activity %i for "
|
||||||
"Task %i either missing from client state or from task.", characterID, j, taskID);
|
"Task %i either missing from client state or from task.", characterID, j, taskID);
|
||||||
@ -1043,8 +1034,8 @@ void TaskManager::SendTaskSelector(Client *c, Mob *mob, int TaskCount, int *Task
|
|||||||
|
|
||||||
ValidTasks++;
|
ValidTasks++;
|
||||||
|
|
||||||
PacketLength = PacketLength + sizeof(AvailableTaskData1_Struct) + strlen(Tasks[TaskList[i]]->Title) + 1 +
|
PacketLength = PacketLength + sizeof(AvailableTaskData1_Struct) + Tasks[TaskList[i]]->Title.size() + 1 +
|
||||||
strlen(Tasks[TaskList[i]]->Description) + 1 + sizeof(AvailableTaskData2_Struct) + 10 +
|
Tasks[TaskList[i]]->Description.size() + 1 + sizeof(AvailableTaskData2_Struct) + 10 +
|
||||||
sizeof(AvailableTaskTrailer_Struct) + 5;
|
sizeof(AvailableTaskTrailer_Struct) + 5;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1082,11 +1073,11 @@ void TaskManager::SendTaskSelector(Client *c, Mob *mob, int TaskCount, int *Task
|
|||||||
|
|
||||||
Ptr = (char *)AvailableTaskData1 + sizeof(AvailableTaskData1_Struct);
|
Ptr = (char *)AvailableTaskData1 + sizeof(AvailableTaskData1_Struct);
|
||||||
|
|
||||||
sprintf(Ptr, "%s", Tasks[TaskList[i]]->Title);
|
sprintf(Ptr, "%s", Tasks[TaskList[i]]->Title.c_str());
|
||||||
|
|
||||||
Ptr = Ptr + strlen(Ptr) + 1;
|
Ptr = Ptr + strlen(Ptr) + 1;
|
||||||
|
|
||||||
sprintf(Ptr, "%s", Tasks[TaskList[i]]->Description);
|
sprintf(Ptr, "%s", Tasks[TaskList[i]]->Description.c_str());
|
||||||
|
|
||||||
Ptr = Ptr + strlen(Ptr) + 1;
|
Ptr = Ptr + strlen(Ptr) + 1;
|
||||||
|
|
||||||
@ -1158,8 +1149,8 @@ void TaskManager::SendTaskSelectorNew(Client *c, Mob *mob, int TaskCount, int *T
|
|||||||
ValidTasks++;
|
ValidTasks++;
|
||||||
|
|
||||||
PacketLength += 21; // Task Data - strings
|
PacketLength += 21; // Task Data - strings
|
||||||
PacketLength += strlen(Tasks[TaskList[i]]->Title) + 1 +
|
PacketLength += Tasks[TaskList[i]]->Title.size() + 1 +
|
||||||
strlen(Tasks[TaskList[i]]->Description) + 1;
|
Tasks[TaskList[i]]->Description.size() + 1;
|
||||||
|
|
||||||
sprintf(StartZone, "%i", Tasks[TaskList[i]]->StartZone);
|
sprintf(StartZone, "%i", Tasks[TaskList[i]]->StartZone);
|
||||||
/*
|
/*
|
||||||
@ -1196,8 +1187,8 @@ void TaskManager::SendTaskSelectorNew(Client *c, Mob *mob, int TaskCount, int *T
|
|||||||
outapp->WriteUInt32(Tasks[TaskList[i]]->Duration);
|
outapp->WriteUInt32(Tasks[TaskList[i]]->Duration);
|
||||||
outapp->WriteUInt32(0); // 1 = Short, 2 = Medium, 3 = Long, anything else Unlimited
|
outapp->WriteUInt32(0); // 1 = Short, 2 = Medium, 3 = Long, anything else Unlimited
|
||||||
|
|
||||||
outapp->WriteString(Tasks[TaskList[i]]->Title); // max 64 with null
|
outapp->WriteString(Tasks[TaskList[i]]->Title.c_str()); // max 64 with null
|
||||||
outapp->WriteString(Tasks[TaskList[i]]->Description); // max 4000 with null
|
outapp->WriteString(Tasks[TaskList[i]]->Description.c_str()); // max 4000 with null
|
||||||
|
|
||||||
outapp->WriteUInt8(0); // Has reward set flag
|
outapp->WriteUInt8(0); // Has reward set flag
|
||||||
outapp->WriteUInt32(1); // ActivityCount - Hard set to 1 for now
|
outapp->WriteUInt32(1); // ActivityCount - Hard set to 1 for now
|
||||||
@ -1269,7 +1260,7 @@ void TaskManager::ExplainTask(Client*c, int TaskID) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
char Explanation[1000], *ptr;
|
char Explanation[1000], *ptr;
|
||||||
c->Message(0, "Task %4i: Title: %s", TaskID, Tasks[TaskID]->Description);
|
c->Message(0, "Task %4i: Title: %s", TaskID, Tasks[TaskID]->Description.c_str());
|
||||||
c->Message(0, "%3i Activities", Tasks[TaskID]->ActivityCount);
|
c->Message(0, "%3i Activities", Tasks[TaskID]->ActivityCount);
|
||||||
ptr = Explanation;
|
ptr = Explanation;
|
||||||
for(int i=0; i<Tasks[TaskID]->ActivityCount; i++) {
|
for(int i=0; i<Tasks[TaskID]->ActivityCount; i++) {
|
||||||
@ -1851,7 +1842,7 @@ void ClientTaskState::IncrementDoneCount(Client *c, TaskInformation* Task, int T
|
|||||||
// Send the updated task/activity list to the client
|
// Send the updated task/activity list to the client
|
||||||
taskmanager->SendSingleActiveTaskToClient(c, TaskIndex, TaskComplete, false);
|
taskmanager->SendSingleActiveTaskToClient(c, TaskIndex, TaskComplete, false);
|
||||||
// Inform the client the task has been updated, both by a chat message
|
// Inform the client the task has been updated, both by a chat message
|
||||||
c->Message(0, "Your task '%s' has been updated.", Task->Title);
|
c->Message(0, "Your task '%s' has been updated.", Task->Title.c_str());
|
||||||
|
|
||||||
if(Task->Activity[ActivityID].GoalMethod != METHODQUEST) {
|
if(Task->Activity[ActivityID].GoalMethod != METHODQUEST) {
|
||||||
if (!ignore_quest_update){
|
if (!ignore_quest_update){
|
||||||
@ -2157,8 +2148,8 @@ void ClientTaskState::ShowClientTasks(Client *c) {
|
|||||||
if(ActiveTasks[i].TaskID==TASKSLOTEMPTY)
|
if(ActiveTasks[i].TaskID==TASKSLOTEMPTY)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
c->Message(0, "Task: %i %s", ActiveTasks[i].TaskID, taskmanager->Tasks[ActiveTasks[i].TaskID]->Title);
|
c->Message(0, "Task: %i %s", ActiveTasks[i].TaskID, taskmanager->Tasks[ActiveTasks[i].TaskID]->Title.c_str());
|
||||||
c->Message(0, " Description: [%s]\n", taskmanager->Tasks[ActiveTasks[i].TaskID]->Description);
|
c->Message(0, " Description: [%s]\n", taskmanager->Tasks[ActiveTasks[i].TaskID]->Description.c_str());
|
||||||
for(int j=0; j<taskmanager->GetActivityCount(ActiveTasks[i].TaskID); j++) {
|
for(int j=0; j<taskmanager->GetActivityCount(ActiveTasks[i].TaskID); j++) {
|
||||||
c->Message(0, " Activity: %2d, DoneCount: %2d, Status: %d (0=Hidden, 1=Active, 2=Complete)",
|
c->Message(0, " Activity: %2d, DoneCount: %2d, Status: %d (0=Hidden, 1=Active, 2=Complete)",
|
||||||
ActiveTasks[i].Activity[j].ActivityID,
|
ActiveTasks[i].Activity[j].ActivityID,
|
||||||
@ -2466,7 +2457,7 @@ void TaskManager::SendCompletedTasksToClient(Client *c, ClientTaskState *State)
|
|||||||
for(int i = FirstTaskToSend; i<LastTaskToSend; i++) {
|
for(int i = FirstTaskToSend; i<LastTaskToSend; i++) {
|
||||||
int TaskID = State->CompletedTasks[i].TaskID;
|
int TaskID = State->CompletedTasks[i].TaskID;
|
||||||
if(Tasks[TaskID] == nullptr) continue;
|
if(Tasks[TaskID] == nullptr) continue;
|
||||||
PacketLength = PacketLength + 8 + strlen(Tasks[TaskID]->Title) + 1;
|
PacketLength = PacketLength + 8 + Tasks[TaskID]->Title.size() + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
auto outapp = new EQApplicationPacket(OP_CompletedTasks, PacketLength);
|
auto outapp = new EQApplicationPacket(OP_CompletedTasks, PacketLength);
|
||||||
@ -2483,7 +2474,7 @@ void TaskManager::SendCompletedTasksToClient(Client *c, ClientTaskState *State)
|
|||||||
*(uint32 *)buf = TaskID;
|
*(uint32 *)buf = TaskID;
|
||||||
buf = buf + 4;
|
buf = buf + 4;
|
||||||
|
|
||||||
sprintf(buf, "%s", Tasks[TaskID]->Title);
|
sprintf(buf, "%s", Tasks[TaskID]->Title.c_str());
|
||||||
buf = buf + strlen(buf) + 1;
|
buf = buf + strlen(buf) + 1;
|
||||||
//*(uint32 *)buf = (*iterator).CompletedTime;
|
//*(uint32 *)buf = (*iterator).CompletedTime;
|
||||||
*(uint32 *)buf = State->CompletedTasks[i].CompletedTime;
|
*(uint32 *)buf = State->CompletedTasks[i].CompletedTime;
|
||||||
@ -2774,8 +2765,8 @@ void TaskManager::SendActiveTaskDescription(Client *c, int TaskID, int SequenceN
|
|||||||
if ((TaskID < 1) || (TaskID >= MAXTASKS) || !Tasks[TaskID])
|
if ((TaskID < 1) || (TaskID >= MAXTASKS) || !Tasks[TaskID])
|
||||||
return;
|
return;
|
||||||
|
|
||||||
int PacketLength = sizeof(TaskDescriptionHeader_Struct) + strlen(Tasks[TaskID]->Title) + 1
|
int PacketLength = sizeof(TaskDescriptionHeader_Struct) + Tasks[TaskID]->Title.size() + 1
|
||||||
+ sizeof(TaskDescriptionData1_Struct) + strlen(Tasks[TaskID]->Description) + 1
|
+ sizeof(TaskDescriptionData1_Struct) + Tasks[TaskID]->Description.size() + 1
|
||||||
+ sizeof(TaskDescriptionData2_Struct) + 1 + sizeof(TaskDescriptionTrailer_Struct);
|
+ sizeof(TaskDescriptionData2_Struct) + 1 + sizeof(TaskDescriptionTrailer_Struct);
|
||||||
|
|
||||||
std::string reward_text;
|
std::string reward_text;
|
||||||
@ -2802,8 +2793,8 @@ void TaskManager::SendActiveTaskDescription(Client *c, int TaskID, int SequenceN
|
|||||||
linker.SetLinkType(EQEmu::saylink::SayLinkItemData);
|
linker.SetLinkType(EQEmu::saylink::SayLinkItemData);
|
||||||
linker.SetItemData(reward_item);
|
linker.SetItemData(reward_item);
|
||||||
linker.SetTaskUse();
|
linker.SetTaskUse();
|
||||||
if (strlen(Tasks[TaskID]->Reward) != 0)
|
if (!Tasks[TaskID]->Reward.empty())
|
||||||
linker.SetProxyText(Tasks[TaskID]->Reward);
|
linker.SetProxyText(Tasks[TaskID]->Reward.c_str());
|
||||||
|
|
||||||
reward_text.append(linker.GenerateLink());
|
reward_text.append(linker.GenerateLink());
|
||||||
}
|
}
|
||||||
@ -2841,7 +2832,7 @@ void TaskManager::SendActiveTaskDescription(Client *c, int TaskID, int SequenceN
|
|||||||
|
|
||||||
Ptr = (char *) tdh + sizeof(TaskDescriptionHeader_Struct);
|
Ptr = (char *) tdh + sizeof(TaskDescriptionHeader_Struct);
|
||||||
|
|
||||||
sprintf(Ptr, "%s", Tasks[TaskID]->Title);
|
sprintf(Ptr, "%s", Tasks[TaskID]->Title.c_str());
|
||||||
Ptr = Ptr + strlen(Ptr) + 1;
|
Ptr = Ptr + strlen(Ptr) + 1;
|
||||||
|
|
||||||
tdd1 = (TaskDescriptionData1_Struct*)Ptr;
|
tdd1 = (TaskDescriptionData1_Struct*)Ptr;
|
||||||
@ -2853,7 +2844,7 @@ void TaskManager::SendActiveTaskDescription(Client *c, int TaskID, int SequenceN
|
|||||||
|
|
||||||
Ptr = (char *) tdd1 + sizeof(TaskDescriptionData1_Struct);
|
Ptr = (char *) tdd1 + sizeof(TaskDescriptionData1_Struct);
|
||||||
|
|
||||||
sprintf(Ptr, "%s", Tasks[TaskID]->Description);
|
sprintf(Ptr, "%s", Tasks[TaskID]->Description.c_str());
|
||||||
Ptr = Ptr + strlen(Ptr) + 1;
|
Ptr = Ptr + strlen(Ptr) + 1;
|
||||||
|
|
||||||
tdd2 = (TaskDescriptionData2_Struct*)Ptr;
|
tdd2 = (TaskDescriptionData2_Struct*)Ptr;
|
||||||
@ -3053,7 +3044,7 @@ void ClientTaskState::AcceptNewTask(Client *c, int TaskID, int NPCID, bool enfor
|
|||||||
UnlockActivities(c->CharacterID(), FreeSlot);
|
UnlockActivities(c->CharacterID(), FreeSlot);
|
||||||
ActiveTaskCount++;
|
ActiveTaskCount++;
|
||||||
taskmanager->SendSingleActiveTaskToClient(c, FreeSlot, false, true);
|
taskmanager->SendSingleActiveTaskToClient(c, FreeSlot, false, true);
|
||||||
c->Message(0, "You have been assigned the task '%s'.", taskmanager->Tasks[TaskID]->Title);
|
c->Message(0, "You have been assigned the task '%s'.", taskmanager->Tasks[TaskID]->Title.c_str());
|
||||||
|
|
||||||
char *buf = 0;
|
char *buf = 0;
|
||||||
MakeAnyLenString(&buf, "%d", TaskID);
|
MakeAnyLenString(&buf, "%d", TaskID);
|
||||||
|
|||||||
@ -117,9 +117,9 @@ typedef enum { ActivitiesSequential = 0, ActivitiesStepped = 1 } SequenceType;
|
|||||||
|
|
||||||
struct TaskInformation {
|
struct TaskInformation {
|
||||||
int Duration;
|
int Duration;
|
||||||
char *Title;
|
std::string Title; // max length 64
|
||||||
char *Description;
|
std::string Description; // max length 4000
|
||||||
char *Reward;
|
std::string Reward;
|
||||||
int RewardID;
|
int RewardID;
|
||||||
int CashReward; // Expressed in copper
|
int CashReward; // Expressed in copper
|
||||||
int XPReward;
|
int XPReward;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user