Time to go, gumballs and nano potions (#113)

* set up "go to the time machine" button working

* warping to the past now sets PayZoneFlag and removes all active missions

* added gumballs functionality

* added nano potions functionality

* formatting fix
This commit is contained in:
kamilprzyb
2020-09-25 07:35:27 +02:00
committed by GitHub
parent e5a24bcb70
commit d4f1515f5d
10 changed files with 158 additions and 11 deletions

View File

@@ -157,13 +157,17 @@ void MissionManager::quitMission(CNSocket* sock, CNPacketData* data) {
return; // malformed packet
sP_CL2FE_REQ_PC_TASK_STOP* missionData = (sP_CL2FE_REQ_PC_TASK_STOP*)data->buf;
quitTask(sock, missionData->iTaskNum);
}
void MissionManager::quitTask(CNSocket* sock, int32_t taskNum) {
INITSTRUCT(sP_FE2CL_REP_PC_TASK_STOP_SUCC, response);
Player *plr = PlayerManager::getPlayer(sock);
Player* plr = PlayerManager::getPlayer(sock);
// update player
int i;
for (i = 0; i < ACTIVE_MISSION_COUNT; i++) {
if (plr->tasks[i] == missionData->iTaskNum)
if (plr->tasks[i] == taskNum)
{
plr->tasks[i] = 0;
for (int j = 0; j < 3; j++) {
@@ -177,7 +181,7 @@ void MissionManager::quitMission(CNSocket* sock, CNPacketData* data) {
// remove current mission
plr->CurrentMissionID = 0;
TaskData& task = *Tasks[missionData->iTaskNum];
TaskData& task = *Tasks[taskNum];
// clean up quest items
for (i = 0; i < 3; i++) {
@@ -193,7 +197,7 @@ void MissionManager::quitMission(CNSocket* sock, CNPacketData* data) {
memset(&plr->QInven[j], 0, sizeof(sItemBase));
}
response.iTaskNum = missionData->iTaskNum;
response.iTaskNum = taskNum;
sock->sendPacket((void*)&response, P_FE2CL_REP_PC_TASK_STOP_SUCC, sizeof(sP_FE2CL_REP_PC_TASK_STOP_SUCC));
}