static void loadChallenges(cJSON *missionsJSON) { Mission *mission; Challenge *challenge; cJSON *missionJSON, *challengeJSON; int type, value; if (missionsJSON) { for (missionJSON = missionsJSON->child ; missionJSON != NULL ; missionJSON = missionJSON->next) { mission = getMission(cJSON_GetObjectItem(missionJSON, "filename")->valuestring); for (challengeJSON = cJSON_GetObjectItem(missionJSON, "challenges")->child ; challengeJSON != NULL ; challengeJSON = challengeJSON->next) { type = lookup(cJSON_GetObjectItem(challengeJSON, "type")->valuestring); value = cJSON_GetObjectItem(challengeJSON, "value")->valueint; challenge = getChallenge(mission, type, value); if (challenge) { challenge->passed = cJSON_GetObjectItem(challengeJSON, "passed")->valueint; } } } } }
bool MissionMgr::completeMission(FCULONG mission_id) { _Mission* pMission = getMission(mission_id); if ( !pMission ) return false; pMission->bCompleted = true; return true; }
static void loadMissions(cJSON *missionsJSON) { Mission *mission; cJSON *missionJSON; for (missionJSON = missionsJSON->child ; missionJSON != NULL ; missionJSON = missionJSON->next) { mission = getMission(cJSON_GetObjectItem(missionJSON, "filename")->valuestring); mission->completed = cJSON_GetObjectItem(missionJSON, "completed")->valueint; } }
FCSHORT MissionMgr::getMissionFailureCount(FCULONG mission_id) { FCSHORT ret = 0; _Mission* pMission = getMission(mission_id); if ( pMission ) { ret = pMission->failureCount; } return ret; }
FCSHORT MissionMgr::getMissionSuccessCount(FCULONG mission_id) { FCSHORT ret = 0; _Mission* pMission = getMission(mission_id); if ( pMission ) { ret = pMission->successCount; } return ret; }
static void loadMissions(cJSON *missionsCJSON) { Mission *mission; cJSON *missionCJSON; for (missionCJSON = missionsCJSON->child ; missionCJSON != NULL ; missionCJSON = missionCJSON->next) { mission = getMission(cJSON_GetObjectItem(missionCJSON, "filename")->valuestring); mission->completed = cJSON_GetObjectItem(missionCJSON, "completed")->valueint; if (cJSON_GetObjectItem(missionCJSON, "challenges")) { loadChallenges(mission, cJSON_GetObjectItem(missionCJSON, "challenges")); } } }
bool MissionMgr::addMission(FCULONG mission_id, FCSHORT successCount, FCSHORT failureCount, bool bCompleted, FCULONG parent_mission_id) { _Mission m; m.mission_id = mission_id; m.successCount = successCount; m.failureCount = failureCount; m.bCompleted = bCompleted; if ( !parent_mission_id ) { // if this is mission that has no parent, then we add it to the root missions vector m_missions.push_back(m); } else { // if this mission is childed, lets find the parent _Mission* pParent = getMission(parent_mission_id); if ( pParent ) pParent->children.push_back(m); } return true; }