void pilotfile::plr_reset_data() { // internals m_have_flags = false; m_have_info = false; m_data_invalid = false; // set all the entries in the control config arrays to -1 (undefined) control_config_clear(); // init stats init_scoring_element(&p->stats); // reset scoring lists all_time_stats.ship_kills.clear(); all_time_stats.medals_earned.clear(); multi_stats.ship_kills.clear(); multi_stats.medals_earned.clear(); // clear variables p->variables.clear(); // reset techroom to defaults (CSG will override this, multi will use defaults) tech_reset_to_default(); }
void pilotfile::csg_reset_data() { int idx; cmission *missionp; // internals m_have_flags = false; m_have_info = false; m_data_invalid = false; // init stats p->stats.init(); // zero out allowed ships/weapons memset(Campaign.ships_allowed, 0, sizeof(Campaign.ships_allowed)); memset(Campaign.weapons_allowed, 0, sizeof(Campaign.weapons_allowed)); // reset campaign status Campaign.prev_mission = -1; Campaign.next_mission = -1; Campaign.num_missions_completed = 0; // techroom reset tech_reset_to_default(); // clear out variables if (Campaign.variables) { Campaign.num_variables = 0; vm_free(Campaign.variables); Campaign.variables = NULL; } if (Campaign.redalert_variables) { Campaign.redalert_num_variables = 0; vm_free(Campaign.redalert_variables); Campaign.redalert_variables = NULL; } // clear red alert data Red_alert_wingman_status.clear(); // clear out mission stuff for (idx = 0; idx < MAX_CAMPAIGN_MISSIONS; idx++) { missionp = &Campaign.missions[idx]; if (missionp->goals) { missionp->num_goals = 0; vm_free(missionp->goals); missionp->goals = NULL; } if (missionp->events) { missionp->num_events = 0; vm_free(missionp->events); missionp->events = NULL; } if (missionp->variables) { missionp->num_variables = 0; vm_free(missionp->variables); missionp->variables = NULL; } missionp->stats.init(); } }