Format S6Exporter.cpp

Pretty much just align field assignments
This commit is contained in:
Michał Janiszewski 2017-04-24 22:33:00 +02:00
parent a83dd095d6
commit ad7ecc0d85
1 changed files with 82 additions and 82 deletions

View File

@ -82,12 +82,12 @@ void S6Exporter::SaveScenario(IStream * stream)
void S6Exporter::Save(IStream * stream, bool isScenario)
{
_s6.header.type = isScenario ? S6_TYPE_SCENARIO : S6_TYPE_SAVEDGAME;
_s6.header.classic_flag = 0;
_s6.header.type = isScenario ? S6_TYPE_SCENARIO : S6_TYPE_SAVEDGAME;
_s6.header.classic_flag = 0;
_s6.header.num_packed_objects = uint16(ExportObjectsList.size());
_s6.header.version = S6_RCT2_VERSION;
_s6.header.magic_number = S6_MAGIC_NUMBER;
_s6.game_version_number = 201028;
_s6.header.version = S6_RCT2_VERSION;
_s6.header.magic_number = S6_MAGIC_NUMBER;
_s6.game_version_number = 201028;
auto chunkWriter = SawyerChunkWriter(stream);
@ -139,7 +139,7 @@ void S6Exporter::Save(IStream * stream, bool isScenario)
// Read all written bytes back into a single buffer
stream->SetPosition(0);
auto data = std::unique_ptr<uint8, std::function<void(uint8*)>>(stream->ReadArray<uint8>(fileSize), Memory::Free<uint8>);
auto data = std::unique_ptr<uint8, std::function<void(uint8 *)>>(stream->ReadArray<uint8>(fileSize), Memory::Free<uint8>);
uint32 checksum = sawyercoding_calculate_checksum(data.get(), fileSize);
// Write the checksum on the end
@ -153,21 +153,21 @@ void S6Exporter::Export()
for (sint32 i = 0; i < OBJECT_ENTRY_COUNT; i++)
{
const rct_object_entry * entry = get_loaded_object_entry(i);
void * entryData = get_loaded_object_chunk(i);
const rct_object_entry * entry = get_loaded_object_entry(i);
void * entryData = get_loaded_object_chunk(i);
if (entryData == (void *)-1)
{
Memory::Set(&_s6.objects[i], 0xFF, sizeof(rct_object_entry));
}
else
{
_s6.objects[i] = *((rct_object_entry*)entry);
_s6.objects[i] = *((rct_object_entry *)entry);
}
}
_s6.elapsed_months = gDateMonthsElapsed;
_s6.current_day = gDateMonthTicks;
_s6.scenario_ticks = gScenarioTicks;
_s6.elapsed_months = gDateMonthsElapsed;
_s6.current_day = gDateMonthTicks;
_s6.scenario_ticks = gScenarioTicks;
_s6.scenario_srand_0 = gScenarioSrand0;
_s6.scenario_srand_1 = gScenarioSrand1;
@ -181,15 +181,15 @@ void S6Exporter::Export()
for (sint32 i = 0; i < NUM_SPRITE_LISTS; i++)
{
_s6.sprite_lists_head[i] = gSpriteListHead[i];
_s6.sprite_lists_head[i] = gSpriteListHead[i];
_s6.sprite_lists_count[i] = gSpriteListCount[i];
}
_s6.park_name = gParkName;
// pad_013573D6
_s6.park_name_args = gParkNameArgs;
_s6.initial_cash = gInitialCash;
_s6.current_loan = gBankLoan;
_s6.park_flags = gParkFlags;
_s6.park_name_args = gParkNameArgs;
_s6.initial_cash = gInitialCash;
_s6.current_loan = gBankLoan;
_s6.park_flags = gParkFlags;
_s6.park_entrance_fee = gParkEntranceFee;
// rct1_park_entrance_x
// rct1_park_entrance_y
@ -197,14 +197,14 @@ void S6Exporter::Export()
// rct1_park_entrance_z
memcpy(_s6.peep_spawns, gPeepSpawns, sizeof(_s6.peep_spawns));
_s6.guest_count_change_modifier = gGuestChangeModifier;
_s6.current_research_level = gResearchFundingLevel;
_s6.current_research_level = gResearchFundingLevel;
// pad_01357400
memcpy(_s6.researched_ride_types, gResearchedRideTypes, sizeof(_s6.researched_ride_types));
memcpy(_s6.researched_ride_entries, gResearchedRideEntries, sizeof(_s6.researched_ride_entries));
memcpy(_s6.researched_track_types_a, gResearchedTrackTypesA, sizeof(_s6.researched_track_types_a));
memcpy(_s6.researched_track_types_b, gResearchedTrackTypesB, sizeof(_s6.researched_track_types_b));
_s6.guests_in_park = gNumGuestsInPark;
_s6.guests_in_park = gNumGuestsInPark;
_s6.guests_heading_for_park = gNumGuestsHeadingForPark;
memcpy(_s6.expenditure_table, gExpenditureTable, sizeof(_s6.expenditure_table));
@ -222,37 +222,37 @@ void S6Exporter::Export()
memcpy(_s6.park_rating_history, gParkRatingHistory, sizeof(_s6.park_rating_history));
memcpy(_s6.guests_in_park_history, gGuestsInParkHistory, sizeof(_s6.guests_in_park_history));
_s6.active_research_types = gResearchPriorities;
_s6.research_progress_stage = gResearchProgressStage;
_s6.active_research_types = gResearchPriorities;
_s6.research_progress_stage = gResearchProgressStage;
_s6.last_researched_item_subject = gResearchLastItemSubject;
// pad_01357CF8
_s6.next_research_item = gResearchNextItem;
_s6.research_progress = gResearchProgress;
_s6.next_research_category = gResearchNextCategory;
_s6.next_research_expected_day = gResearchExpectedDay;
_s6.next_research_item = gResearchNextItem;
_s6.research_progress = gResearchProgress;
_s6.next_research_category = gResearchNextCategory;
_s6.next_research_expected_day = gResearchExpectedDay;
_s6.next_research_expected_month = gResearchExpectedMonth;
_s6.guest_initial_happiness = gGuestInitialHappiness;
_s6.park_size = gParkSize;
_s6.guest_initial_happiness = gGuestInitialHappiness;
_s6.park_size = gParkSize;
_s6.guest_generation_probability = _guestGenerationProbability;
_s6.total_ride_value = gTotalRideValue;
_s6.maximum_loan = gMaxBankLoan;
_s6.guest_initial_cash = gGuestInitialCash;
_s6.guest_initial_hunger = gGuestInitialHunger;
_s6.guest_initial_thirst = gGuestInitialThirst;
_s6.objective_type = gScenarioObjectiveType;
_s6.objective_year = gScenarioObjectiveYear;
_s6.total_ride_value = gTotalRideValue;
_s6.maximum_loan = gMaxBankLoan;
_s6.guest_initial_cash = gGuestInitialCash;
_s6.guest_initial_hunger = gGuestInitialHunger;
_s6.guest_initial_thirst = gGuestInitialThirst;
_s6.objective_type = gScenarioObjectiveType;
_s6.objective_year = gScenarioObjectiveYear;
// pad_013580FA
_s6.objective_currency = gScenarioObjectiveCurrency;
_s6.objective_guests = gScenarioObjectiveNumGuests;
_s6.objective_guests = gScenarioObjectiveNumGuests;
memcpy(_s6.campaign_weeks_left, gMarketingCampaignDaysLeft, sizeof(_s6.campaign_weeks_left));
memcpy(_s6.campaign_ride_index, gMarketingCampaignRideIndex, sizeof(_s6.campaign_ride_index));
memcpy(_s6.balance_history, gCashHistory, sizeof(_s6.balance_history));
_s6.current_expenditure = gCurrentExpenditure;
_s6.current_profit = gCurrentProfit;
_s6.current_expenditure = gCurrentExpenditure;
_s6.current_profit = gCurrentProfit;
_s6.weekly_profit_average_dividend = gWeeklyProfitAverageDividend;
_s6.weekly_profit_average_divisor = gWeeklyProfitAverageDivisor;
_s6.weekly_profit_average_divisor = gWeeklyProfitAverageDivisor;
// pad_0135833A
memcpy(_s6.weekly_profit_history, gWeeklyProfitHistory, sizeof(_s6.weekly_profit_history));
@ -262,29 +262,29 @@ void S6Exporter::Export()
memcpy(_s6.park_value_history, gParkValueHistory, sizeof(_s6.park_value_history));
_s6.completed_company_value = gScenarioCompletedCompanyValue;
_s6.total_admissions = gTotalAdmissions;
_s6.income_from_admissions = gTotalIncomeFromAdmissions;
_s6.company_value = gCompanyValue;
_s6.total_admissions = gTotalAdmissions;
_s6.income_from_admissions = gTotalIncomeFromAdmissions;
_s6.company_value = gCompanyValue;
memcpy(_s6.peep_warning_throttle, gPeepWarningThrottle, sizeof(_s6.peep_warning_throttle));
// Awards
for (sint32 i = 0; i < RCT12_MAX_AWARDS; i++)
{
Award * src = &gCurrentAwards[i];
Award * src = &gCurrentAwards[i];
rct12_award * dst = &_s6.awards[i];
dst->time = src->Time;
dst->type = src->Type;
dst->time = src->Time;
dst->type = src->Type;
}
_s6.land_price = gLandPrice;
_s6.land_price = gLandPrice;
_s6.construction_rights_price = gConstructionRightsPrice;
// unk_01358774
// pad_01358776
// _s6.cd_key
// _s6.game_version_number
_s6.completed_company_value_record = gScenarioCompanyValueRecord;
_s6.loan_hash = GetLoanHash(gInitialCash, gBankLoan, gMaxBankLoan);
_s6.ride_count = gRideCount;
_s6.loan_hash = GetLoanHash(gInitialCash, gBankLoan, gMaxBankLoan);
_s6.ride_count = gRideCount;
// pad_013587CA
_s6.historical_profit = gHistoricalProfit;
// pad_013587D4
@ -292,14 +292,14 @@ void S6Exporter::Export()
_s6.cash = gCashEncrypted;
// pad_013587FC
_s6.park_rating_casualty_penalty = gParkRatingCasualtyPenalty;
_s6.map_size_units = gMapSizeUnits;
_s6.map_size_minus_2 = gMapSizeMinus2;
_s6.map_size = gMapSize;
_s6.map_max_xy = gMapSizeMaxXY;
_s6.same_price_throughout = gSamePriceThroughoutParkA;
_s6.suggested_max_guests = _suggestedGuestMaximum;
_s6.park_rating_warning_days = gScenarioParkRatingWarningDays;
_s6.last_entrance_style = gLastEntranceStyle;
_s6.map_size_units = gMapSizeUnits;
_s6.map_size_minus_2 = gMapSizeMinus2;
_s6.map_size = gMapSize;
_s6.map_max_xy = gMapSizeMaxXY;
_s6.same_price_throughout = gSamePriceThroughoutParkA;
_s6.suggested_max_guests = _suggestedGuestMaximum;
_s6.park_rating_warning_days = gScenarioParkRatingWarningDays;
_s6.last_entrance_style = gLastEntranceStyle;
// rct1_water_colour
// pad_01358842
memcpy(_s6.research_items, gResearchItems, sizeof(_s6.research_items));
@ -312,9 +312,9 @@ void S6Exporter::Export()
// Preserve compatibility with vanilla RCT2's save format.
for (uint8 i = 0; i < RCT12_MAX_PARK_ENTRANCES; i++)
{
_s6.park_entrance_x[i] = gParkEntrances[i].x;
_s6.park_entrance_y[i] = gParkEntrances[i].y;
_s6.park_entrance_z[i] = gParkEntrances[i].z;
_s6.park_entrance_x[i] = gParkEntrances[i].x;
_s6.park_entrance_y[i] = gParkEntrances[i].y;
_s6.park_entrance_z[i] = gParkEntrances[i].z;
_s6.park_entrance_direction[i] = gParkEntrances[i].direction;
}
safe_strcpy(_s6.scenario_filename, _scenarioFileName, sizeof(_s6.scenario_filename));
@ -323,10 +323,10 @@ void S6Exporter::Export()
memcpy(_s6.custom_strings, gUserStrings, sizeof(_s6.custom_strings));
_s6.game_ticks_1 = gCurrentTicks;
memcpy(_s6.rides, gRideList, sizeof(_s6.rides));
_s6.saved_age = gSavedAge;
_s6.saved_view_x = gSavedViewX;
_s6.saved_view_y = gSavedViewY;
_s6.saved_view_zoom = gSavedViewZoom;
_s6.saved_age = gSavedAge;
_s6.saved_view_x = gSavedViewX;
_s6.saved_view_y = gSavedViewY;
_s6.saved_view_zoom = gSavedViewZoom;
_s6.saved_view_rotation = gSavedViewRotation;
memcpy(_s6.map_animations, gAnimatedObjects, sizeof(_s6.map_animations));
_s6.num_map_animations = gNumMapAnimations;
@ -334,41 +334,41 @@ void S6Exporter::Export()
_s6.ride_ratings_calc_data = gRideRatingsCalcData;
memcpy(_s6.ride_measurements, gRideMeasurements, sizeof(_s6.ride_measurements));
_s6.next_guest_index = gNextGuestNumber;
_s6.next_guest_index = gNextGuestNumber;
_s6.grass_and_scenery_tilepos = gGrassSceneryTileLoopPosition;
memcpy(_s6.patrol_areas, gStaffPatrolAreas, sizeof(_s6.patrol_areas));
memcpy(_s6.staff_modes, gStaffModes, sizeof(_s6.staff_modes));
// unk_13CA73E
// pad_13CA73F
_s6.byte_13CA740 = gUnk13CA740;
_s6.climate = gClimate;
_s6.climate = gClimate;
// pad_13CA741;
// byte_13CA742
// pad_013CA747
_s6.climate_update_timer = gClimateUpdateTimer;
_s6.current_weather = gClimateCurrentWeather;
_s6.next_weather = gClimateNextWeather;
_s6.temperature = gClimateCurrentTemperature;
_s6.next_temperature = gClimateNextTemperature;
_s6.climate_update_timer = gClimateUpdateTimer;
_s6.current_weather = gClimateCurrentWeather;
_s6.next_weather = gClimateNextWeather;
_s6.temperature = gClimateCurrentTemperature;
_s6.next_temperature = gClimateNextTemperature;
_s6.current_weather_effect = gClimateCurrentWeatherEffect;
_s6.next_weather_effect = gClimateNextWeatherEffect;
_s6.current_weather_gloom = gClimateCurrentWeatherGloom;
_s6.next_weather_gloom = gClimateNextWeatherGloom;
_s6.current_rain_level = gClimateCurrentRainLevel;
_s6.next_rain_level = gClimateNextRainLevel;
_s6.next_weather_effect = gClimateNextWeatherEffect;
_s6.current_weather_gloom = gClimateCurrentWeatherGloom;
_s6.next_weather_gloom = gClimateNextWeatherGloom;
_s6.current_rain_level = gClimateCurrentRainLevel;
_s6.next_rain_level = gClimateNextRainLevel;
// News items
for (size_t i = 0; i < RCT12_MAX_NEWS_ITEMS; i++)
{
const NewsItem * src = &gNewsItems[i];
const NewsItem * src = &gNewsItems[i];
rct12_news_item * dst = &_s6.news_items[i];
dst->Type = src->Type;
dst->Flags = src->Flags;
dst->Assoc = src->Assoc;
dst->Ticks = src->Ticks;
dst->Type = src->Type;
dst->Flags = src->Flags;
dst->Assoc = src->Assoc;
dst->Ticks = src->Ticks;
dst->MonthYear = src->MonthYear;
dst->Day = src->Day;
dst->Day = src->Day;
memcpy(dst->Text, src->Text, sizeof(dst->Text));
}
@ -435,13 +435,13 @@ extern "C"
viewport_set_saved_view();
bool result = false;
bool result = false;
auto s6exporter = new S6Exporter();
try
{
if (flags & S6_SAVE_FLAG_EXPORT)
{
IObjectManager * objManager = GetObjectManager();
IObjectManager * objManager = GetObjectManager();
s6exporter->ExportObjectsList = objManager->GetPackableObjects();
}
s6exporter->RemoveTracklessRides = true;