/*
* Seven Kingdoms: Ancient Adversaries
*
* Copyright 1997,1998 Enlight Software Ltd.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*
*/
// Filename : OGF_V1.CPP
// Description : Old Class structures for save game conversion
#ifdef AMPLUS
#include
#include
#include
#include
//---------------- begin of function Version_1_Town::convert_to_version_2() -----------------//
void Version_1_Town::convert_to_version_2(Town *townPtr)
{
townPtr->town_recno = town_recno;
townPtr->town_name_id = town_name_id;
townPtr->nation_recno = nation_recno;
townPtr->rebel_recno = rebel_recno;
townPtr->race_id = race_id;
townPtr->setup_date = setup_date;
townPtr->ai_town = ai_town;
townPtr->ai_link_checked = ai_link_checked;
townPtr->independ_town_nation_relation = independ_town_nation_relation;
townPtr->has_linked_own_camp = has_linked_own_camp;
townPtr->has_linked_enemy_camp = has_linked_enemy_camp;
townPtr->is_base_town = is_base_town;
townPtr->loc_x1 = loc_x1;
townPtr->loc_y1 = loc_y1;
townPtr->loc_x2 = loc_x2;
townPtr->loc_y2 = loc_y2;
townPtr->abs_x1 = abs_x1;
townPtr->abs_y1 = abs_y1;
townPtr->abs_x2 = abs_x2;
townPtr->abs_y2 = abs_y2;
townPtr->center_x = center_x;
townPtr->center_y = center_y;
townPtr->region_id = region_id;
townPtr->layout_id = layout_id;
townPtr->first_slot_id = first_slot_id;
memcpy(townPtr->slot_object_id_array, slot_object_id_array, sizeof(slot_object_id_array));
townPtr->population = population;
townPtr->jobless_population = jobless_population;
memset(townPtr->max_race_pop_array, 0, sizeof(townPtr->max_race_pop_array));
memcpy(townPtr->max_race_pop_array, max_race_pop_array, sizeof(max_race_pop_array[0])*VERSION_1_MAX_RACE);
memset(townPtr->race_pop_array, 0, sizeof(townPtr->race_pop_array));
memcpy(townPtr->race_pop_array, race_pop_array, sizeof(race_pop_array[0])*VERSION_1_MAX_RACE);
memset(townPtr->race_pop_growth_array, 0, sizeof(townPtr->race_pop_growth_array));
memcpy(townPtr->race_pop_growth_array, race_pop_growth_array, sizeof(race_pop_growth_array[0])*VERSION_1_MAX_RACE);
memset(townPtr->jobless_race_pop_array, 0, sizeof(townPtr->jobless_race_pop_array));
memcpy(townPtr->jobless_race_pop_array, jobless_race_pop_array, sizeof(jobless_race_pop_array[0])*VERSION_1_MAX_RACE);
memset(townPtr->race_loyalty_array, 0, sizeof(townPtr->race_loyalty_array));
memcpy(townPtr->race_loyalty_array, race_loyalty_array, sizeof(race_loyalty_array[0])*VERSION_1_MAX_RACE);
memset(townPtr->race_target_loyalty_array, 0, sizeof(townPtr->race_target_loyalty_array));
memcpy(townPtr->race_target_loyalty_array, race_target_loyalty_array, sizeof(race_target_loyalty_array[0])*VERSION_1_MAX_RACE);
memset(townPtr->race_spy_count_array, 0, sizeof(townPtr->race_spy_count_array));
memcpy(townPtr->race_spy_count_array, race_spy_count_array, sizeof(race_spy_count_array[0])*VERSION_1_MAX_RACE);
memset(townPtr->race_resistance_array, 0, sizeof(townPtr->race_resistance_array));
memcpy(townPtr->race_resistance_array, race_resistance_array, sizeof(race_resistance_array[0][0])*VERSION_1_MAX_RACE*MAX_NATION);
memset(townPtr->race_target_resistance_array, 0, sizeof(townPtr->race_target_resistance_array));
memcpy(townPtr->race_target_resistance_array, race_target_resistance_array, sizeof(race_target_resistance_array[0][0])*VERSION_1_MAX_RACE*MAX_NATION);
townPtr->town_defender_count = town_defender_count;
townPtr->last_being_attacked_date = last_being_attacked_date;
townPtr->received_hit_count = received_hit_count;
memcpy(townPtr->train_queue_skill_array, train_queue_skill_array, sizeof(train_queue_skill_array));
memcpy(townPtr->train_queue_race_array, train_queue_race_array, sizeof(train_queue_race_array));
townPtr->train_queue_count = train_queue_count;
townPtr->train_unit_recno = train_unit_recno;
townPtr->train_unit_action_id = train_unit_action_id;
townPtr->start_train_frame_no = start_train_frame_no;
townPtr->defend_target_recno = defend_target_recno;
townPtr->accumulated_collect_tax_penalty = accumulated_collect_tax_penalty;
townPtr->accumulated_reward_penalty = accumulated_reward_penalty;
townPtr->accumulated_recruit_penalty = accumulated_recruit_penalty;
townPtr->accumulated_enemy_grant_penalty = accumulated_enemy_grant_penalty;
townPtr->last_rebel_date = last_rebel_date;
townPtr->independent_unit_join_nation_min_rating = independent_unit_join_nation_min_rating;
townPtr->quality_of_life = quality_of_life;
townPtr->auto_collect_tax_loyalty = auto_collect_tax_loyalty;
townPtr->auto_grant_loyalty = auto_grant_loyalty;
townPtr->town_combat_level = town_combat_level;
memcpy(townPtr->has_product_supply, has_product_supply, sizeof(has_product_supply));
townPtr->no_neighbor_space = no_neighbor_space;
townPtr->linked_firm_count = linked_firm_count;
townPtr->linked_town_count = linked_town_count;
memcpy(townPtr->linked_firm_array, linked_firm_array, sizeof(linked_firm_array));
memcpy(townPtr->linked_town_array, linked_town_array, sizeof(linked_town_array));
memcpy(townPtr->linked_firm_enable_array, linked_firm_enable_array, sizeof(linked_firm_enable_array));
memcpy(townPtr->linked_town_enable_array, linked_town_enable_array, sizeof(linked_town_enable_array));
}
//---------------- end of function Version_1_Town::convert_to_version_2() -----------------//
//---------------- begin of function Version_1_NationArray::convert_to_version_2() -----------------//
void Version_1_NationArray::convert_to_version_2(NationArray *nationArrayPtr)
{
nationArrayPtr->nation_count = nation_count;
nationArrayPtr->ai_nation_count = ai_nation_count;
nationArrayPtr->last_del_nation_date = last_del_nation_date;
nationArrayPtr->last_new_nation_date = last_new_nation_date;
nationArrayPtr->max_nation_population = max_nation_population;
nationArrayPtr->all_nation_population = all_nation_population;
nationArrayPtr->independent_town_count = independent_town_count;
memset(nationArrayPtr->independent_town_count_race_array, 0, sizeof(nationArrayPtr->independent_town_count_race_array));
memcpy(nationArrayPtr->independent_town_count_race_array, independent_town_count_race_array, sizeof(independent_town_count_race_array));
nationArrayPtr->max_nation_units = max_nation_units;
nationArrayPtr->max_nation_humans = max_nation_humans;
nationArrayPtr->max_nation_generals = max_nation_generals;
nationArrayPtr->max_nation_weapons = max_nation_weapons;
nationArrayPtr->max_nation_ships = max_nation_ships;
nationArrayPtr->max_nation_spies = max_nation_spies;
nationArrayPtr->max_nation_firms = max_nation_firms;
nationArrayPtr->max_nation_tech_level = max_nation_tech_level;
nationArrayPtr->max_population_rating = max_population_rating;
nationArrayPtr->max_military_rating = max_military_rating;
nationArrayPtr->max_economic_rating = max_economic_rating;
nationArrayPtr->max_reputation = max_reputation;
nationArrayPtr->max_kill_monster_score = max_kill_monster_score;
nationArrayPtr->max_overall_rating = max_overall_rating;
nationArrayPtr->max_population_nation_recno = max_population_nation_recno;
nationArrayPtr->max_military_nation_recno = max_military_nation_recno;
nationArrayPtr->max_economic_nation_recno = max_economic_nation_recno;
nationArrayPtr->max_reputation_nation_recno = max_reputation_nation_recno;
nationArrayPtr->max_kill_monster_nation_recno = max_kill_monster_nation_recno;
nationArrayPtr->max_overall_nation_recno = max_overall_nation_recno;
nationArrayPtr->last_alliance_id = last_alliance_id;
nationArrayPtr->nation_peace_days = nation_peace_days;
nationArrayPtr->player_recno = player_recno;
nationArrayPtr->player_ptr = player_ptr;
memcpy(nationArrayPtr->nation_color_array, nation_color_array, sizeof(nation_color_array[0])*(MAX_NATION+1));
memcpy(nationArrayPtr->nation_power_color_array, nation_power_color_array, sizeof(nation_power_color_array[0])*(MAX_NATION+2));
memcpy(nationArrayPtr->human_name_array, human_name_array, sizeof(human_name_array[0])*(MAX_NATION));
}
//---------------- end of function Version_1_NationArray::convert_to_version_2() -----------------//
//---------------- begin of function Version_1_NationBase::convert_to_version_2() -----------------//
void Version_1_NationBase::convert_to_version_2(Nation *nationPtr)
{
nationPtr->nation_recno = nation_recno;
nationPtr->nation_type = nation_type;
nationPtr->race_id = race_id;
nationPtr->color_scheme_id = color_scheme_id;
nationPtr->nation_color = nation_color;
nationPtr->king_unit_recno = king_unit_recno;
nationPtr->king_leadership = king_leadership;
nationPtr->nation_name_id = nation_name_id;
memcpy(nationPtr->nation_name_str, nation_name_str, sizeof(nation_name_str));
nationPtr->player_id = player_id;
nationPtr->next_frame_ready = next_frame_ready;
nationPtr->last_caravan_id = last_caravan_id;
nationPtr->nation_firm_count = nation_firm_count;
nationPtr->last_build_firm_date = last_build_firm_date;
memset(nationPtr->know_base_array, 0, sizeof(nationPtr->know_base_array));
memcpy(nationPtr->know_base_array, know_base_array, sizeof(know_base_array));
memset(nationPtr->base_count_array, 0, sizeof(nationPtr->base_count_array));
memcpy(nationPtr->base_count_array, base_count_array, sizeof(base_count_array));
nationPtr->is_at_war_today = is_at_war_today;
nationPtr->is_at_war_yesterday = is_at_war_yesterday;
nationPtr->last_war_date = last_war_date;
nationPtr->last_attacker_unit_recno = last_attacker_unit_recno;
nationPtr->last_independent_unit_join_date = last_independent_unit_join_date;
nationPtr->cheat_enabled_flag = cheat_enabled_flag;
//----------------------------------//
nationPtr->cash = cash;
nationPtr->food = food;
nationPtr->reputation = reputation;
nationPtr->kill_monster_score = kill_monster_score;
//------- town auto policy -------------//
nationPtr->auto_collect_tax_loyalty = auto_collect_tax_loyalty;
nationPtr->auto_grant_loyalty = auto_grant_loyalty;
//----- yearly income, expense and profit ------//
nationPtr->cur_year_profit = cur_year_profit;
nationPtr->last_year_profit = last_year_profit;
nationPtr->cur_year_fixed_income = cur_year_fixed_income;
nationPtr->last_year_fixed_income = last_year_fixed_income;
nationPtr->cur_year_fixed_expense = cur_year_fixed_expense;
nationPtr->last_year_fixed_expense = last_year_fixed_expense;
//------- yearly income ------//
memcpy(nationPtr->cur_year_income_array, cur_year_income_array, sizeof(cur_year_income_array));
memcpy(nationPtr->last_year_income_array, last_year_income_array, sizeof(last_year_income_array));
nationPtr->cur_year_income = cur_year_income;
nationPtr->last_year_income = last_year_income;
//------- yearly expense ------//
memcpy(nationPtr->cur_year_expense_array, cur_year_expense_array, sizeof(cur_year_expense_array));
memcpy(nationPtr->last_year_expense_array, last_year_expense_array, sizeof(last_year_expense_array));
nationPtr->cur_year_expense = cur_year_expense;
nationPtr->last_year_expense = last_year_expense;
//------- yearly expense ------//
nationPtr->cur_year_cheat = cur_year_cheat;
nationPtr->last_year_cheat = last_year_cheat;
//----- yearly food in, out and change ------//
nationPtr->cur_year_food_in = cur_year_food_in;
nationPtr->last_year_food_in = last_year_food_in;
nationPtr->cur_year_food_out = cur_year_food_out;
nationPtr->last_year_food_out = last_year_food_out;
nationPtr->cur_year_food_change = cur_year_food_change;
nationPtr->last_year_food_change = last_year_food_change;
//----- yearly reputatino change ------//
nationPtr->cur_year_reputation_change = cur_year_reputation_change;
nationPtr->last_year_reputation_change = last_year_reputation_change;
//--------- er-nation relationship -----------//
memcpy(nationPtr->relation_array, relation_array, sizeof(relation_array));
memcpy(nationPtr->relation_status_array, relation_status_array, sizeof(relation_status_array));
memcpy(nationPtr->relation_passable_array, relation_passable_array, sizeof(relation_passable_array));
memcpy(nationPtr->relation_should_attack_array, relation_should_attack_array, sizeof(relation_should_attack_array));
nationPtr->is_allied_with_player = is_allied_with_player;
//---------- statistic ------------//
nationPtr->total_population = total_population;
nationPtr->total_jobless_population = total_jobless_population;
nationPtr->total_unit_count = total_unit_count;
nationPtr->total_human_count = total_human_count;
nationPtr->total_general_count = total_general_count;
nationPtr->total_weapon_count = total_weapon_count;
nationPtr->total_ship_count = total_ship_count;
nationPtr->total_firm_count = total_firm_count;
nationPtr->total_spy_count = total_spy_count;
nationPtr->total_ship_combat_level = total_ship_combat_level;
nationPtr->largest_town_recno = largest_town_recno;
nationPtr->largest_town_pop = largest_town_pop;
memcpy(nationPtr->raw_count_array, raw_count_array, sizeof(raw_count_array));
memset(nationPtr->last_unit_name_id_array, 0, sizeof(nationPtr->last_unit_name_id_array));
memcpy(nationPtr->last_unit_name_id_array, last_unit_name_id_array, sizeof(last_unit_name_id_array));
//--------- rank ratings ---------//
nationPtr->population_rating = population_rating;
nationPtr->military_rating = military_rating;
nationPtr->economic_rating = economic_rating;
nationPtr->overall_rating = overall_rating;
//------ additional statistic ------//
nationPtr->enemy_soldier_killed = enemy_soldier_killed;
nationPtr->own_soldier_killed = own_soldier_killed;
nationPtr->enemy_civilian_killed = enemy_civilian_killed;
nationPtr->own_civilian_killed = own_civilian_killed;
nationPtr->enemy_weapon_destroyed = enemy_weapon_destroyed;
nationPtr->own_weapon_destroyed = own_weapon_destroyed;
nationPtr->enemy_ship_destroyed = enemy_ship_destroyed;
nationPtr->own_ship_destroyed = own_ship_destroyed;
nationPtr->enemy_firm_destroyed = enemy_firm_destroyed;
nationPtr->own_firm_destroyed = own_firm_destroyed;
}
//---------------- end of function Version_1_NationBase::convert_to_version_2() -----------------//
//---------------- begin of function Version_1_Nation::convert_to_version_2() -----------------//
void Version_1_Nation::convert_to_version_2(Nation *nationPtr)
{
Version_1_NationBase::convert_to_version_2(nationPtr);
nationPtr->action_array = action_array;
nationPtr->last_action_id = last_action_id;
nationPtr->ai_town_size = ai_town_size;
nationPtr->ai_base_size = ai_base_size;
nationPtr->ai_mine_size = ai_mine_size;
nationPtr->ai_factory_size = ai_factory_size;
nationPtr->ai_camp_size = ai_camp_size;
nationPtr->ai_research_size = ai_research_size;
nationPtr->ai_war_size = ai_war_size;
nationPtr->ai_harbor_size = ai_harbor_size;
nationPtr->ai_market_size = ai_market_size;
nationPtr->ai_inn_size = ai_inn_size;
nationPtr->ai_general_size = ai_general_size;
nationPtr->ai_caravan_size = ai_caravan_size;
nationPtr->ai_ship_size = ai_ship_size;
nationPtr->ai_town_count = ai_town_count;
nationPtr->ai_base_count = ai_base_count;
nationPtr->ai_mine_count = ai_mine_count;
nationPtr->ai_factory_count = ai_factory_count;
nationPtr->ai_camp_count = ai_camp_count;
nationPtr->ai_research_count = ai_research_count;
nationPtr->ai_war_count = ai_war_count;
nationPtr->ai_harbor_count = ai_harbor_count;
nationPtr->ai_market_count = ai_market_count;
nationPtr->ai_inn_count = ai_inn_count;
nationPtr->ai_general_count = ai_general_count;
nationPtr->ai_caravan_count = ai_caravan_count;
nationPtr->ai_ship_count = ai_ship_count;
nationPtr->ai_base_town_count = ai_base_town_count;
memcpy(nationPtr->firm_should_close_array, firm_should_close_array, sizeof(firm_should_close_array));
//------------------------------------------------------//
// parameters about the nation itself
//------------------------------------------------------//
memcpy(nationPtr->ai_region_array, ai_region_array, sizeof(ai_region_array));
nationPtr->ai_region_count = ai_region_count;
//------------------------------------------------------//
// AI personalties
//------------------------------------------------------//
nationPtr->pref_force_projection = pref_force_projection;
nationPtr->pref_military_development = pref_military_development;
nationPtr->pref_economic_development = pref_economic_development;
nationPtr->pref_inc_pop_by_capture = pref_inc_pop_by_capture;
nationPtr->pref_inc_pop_by_growth = pref_inc_pop_by_growth;
nationPtr->pref_peacefulness = pref_peacefulness;
nationPtr->pref_military_courage = pref_military_courage;
nationPtr->pref_territorial_cohesiveness = pref_territorial_cohesiveness;
nationPtr->pref_trading_tendency = pref_trading_tendency;
nationPtr->pref_allying_tendency = pref_allying_tendency;
nationPtr->pref_honesty = pref_honesty;
nationPtr->pref_town_harmony = pref_town_harmony;
nationPtr->pref_loyalty_concern = pref_loyalty_concern;
nationPtr->pref_forgiveness = pref_forgiveness;
nationPtr->pref_collect_tax = pref_collect_tax;
nationPtr->pref_hire_unit = pref_hire_unit;
nationPtr->pref_use_weapon = pref_use_weapon;
nationPtr->pref_keep_general = pref_keep_general;
nationPtr->pref_keep_skilled_unit = pref_keep_skilled_unit;
nationPtr->pref_diplomacy_retry = pref_diplomacy_retry;
nationPtr->pref_attack_monster = pref_attack_monster;
nationPtr->pref_spy = pref_spy;
nationPtr->pref_counter_spy = pref_counter_spy;
nationPtr->pref_food_reserve = pref_food_reserve;
nationPtr->pref_cash_reserve = pref_cash_reserve;
nationPtr->pref_use_marine = pref_use_marine;
nationPtr->pref_unit_chase_distance = pref_unit_chase_distance;
nationPtr->pref_repair_concern = pref_repair_concern;
nationPtr->pref_scout = pref_scout;
//------- AI action vars --------//
nationPtr->ai_capture_enemy_town_recno = ai_capture_enemy_town_recno;
nationPtr->ai_capture_enemy_town_plan_date = ai_capture_enemy_town_plan_date;
nationPtr->ai_capture_enemy_town_start_attack_date = ai_capture_enemy_town_start_attack_date;
nationPtr->ai_capture_enemy_town_use_all_camp = ai_capture_enemy_town_use_all_camp;
nationPtr->ai_last_defend_action_date = ai_last_defend_action_date;
nationPtr->ai_attack_target_x_loc = ai_attack_target_x_loc;
nationPtr->ai_attack_target_y_loc = ai_attack_target_y_loc;
nationPtr->ai_attack_target_nation_recno = ai_attack_target_nation_recno;
memcpy(nationPtr->attack_camp_array, attack_camp_array, sizeof(attack_camp_array));
nationPtr->attack_camp_count = attack_camp_count;
nationPtr->lead_attack_camp_recno = lead_attack_camp_recno;
}
//---------------- end of function Version_1_Nation::convert_to_version_2() -----------------//
#endif