예제 #1
0
파일: plr.cpp 프로젝트: sobczyk/fs2open
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();
}
예제 #2
0
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();
	}
}