From 7f4927ced6908150f2f653b6d721598d66301428 Mon Sep 17 00:00:00 2001 From: Gymnasiast Date: Sun, 9 May 2021 20:16:40 +0200 Subject: [PATCH] More money64 fixes --- src/openrct2/rct1/RCT1.h | 2 +- src/openrct2/rct1/S4Importer.cpp | 22 +++++++++++----------- src/openrct2/rct2/S6Importer.cpp | 26 +++++++++++++------------- 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/src/openrct2/rct1/RCT1.h b/src/openrct2/rct1/RCT1.h index 87e20d2334..e0dbcb6ddb 100644 --- a/src/openrct2/rct1/RCT1.h +++ b/src/openrct2/rct1/RCT1.h @@ -633,7 +633,7 @@ struct rct1_s4 money32 weekly_profit_history[RCT12_FINANCE_GRAPH_SIZE]; money32 park_value; money32 park_value_history[RCT12_FINANCE_GRAPH_SIZE]; - uint32_t completed_company_value; + money32 completed_company_value; uint32_t num_admissions; money32 admission_total_income; money32 company_value; diff --git a/src/openrct2/rct1/S4Importer.cpp b/src/openrct2/rct1/S4Importer.cpp index 643456e4dc..8b52b87f83 100644 --- a/src/openrct2/rct1/S4Importer.cpp +++ b/src/openrct2/rct1/S4Importer.cpp @@ -1319,20 +1319,20 @@ private: gLandPrice = _s4.land_price; gConstructionRightsPrice = _s4.construction_rights_price; - gCash = _s4.cash; - gBankLoan = _s4.loan; - gMaxBankLoan = _s4.max_loan; + gCash = ToMoney64(_s4.cash); + gBankLoan = ToMoney64(_s4.loan); + gMaxBankLoan = ToMoney64(_s4.max_loan); // It's more like 1.33%, but we can only use integers. Can be fixed once we have our own save format. gBankLoanInterestRate = 1; - gInitialCash = _s4.cash; + gInitialCash = ToMoney64(_s4.cash); - gCompanyValue = _s4.company_value; + gCompanyValue = ToMoney64(_s4.company_value); gParkValue = ToMoney64(CorrectRCT1ParkValue(_s4.park_value)); - gCurrentProfit = _s4.profit; + gCurrentProfit = ToMoney64(_s4.profit); for (size_t i = 0; i < RCT12_FINANCE_GRAPH_SIZE; i++) { - gCashHistory[i] = _s4.cash_history[i]; + gCashHistory[i] = ToMoney64(_s4.cash_history[i]); gParkValueHistory[i] = ToMoney64(CorrectRCT1ParkValue(_s4.park_value_history[i])); gWeeklyProfitHistory[i] = ToMoney64(_s4.weekly_profit_history[i]); } @@ -1341,14 +1341,14 @@ private: { for (size_t j = 0; j < RCT12_EXPENDITURE_TYPE_COUNT; j++) { - gExpenditureTable[i][j] = _s4.expenditure[i][j]; + gExpenditureTable[i][j] = ToMoney64(_s4.expenditure[i][j]); } } - gCurrentExpenditure = _s4.total_expenditure; + gCurrentExpenditure = ToMoney64(_s4.total_expenditure); - gScenarioCompletedCompanyValue = _s4.completed_company_value; + gScenarioCompletedCompanyValue = ToMoney64(_s4.completed_company_value); gTotalAdmissions = _s4.num_admissions; - gTotalIncomeFromAdmissions = _s4.admission_total_income; + gTotalIncomeFromAdmissions = ToMoney64(_s4.admission_total_income); // TODO marketing campaigns not working static_assert( diff --git a/src/openrct2/rct2/S6Importer.cpp b/src/openrct2/rct2/S6Importer.cpp index 336aa41207..b2ae988bbf 100644 --- a/src/openrct2/rct2/S6Importer.cpp +++ b/src/openrct2/rct2/S6Importer.cpp @@ -230,8 +230,8 @@ public: ImportTileElements(); ImportEntities(); - gInitialCash = _s6.initial_cash; - gBankLoan = _s6.current_loan; + gInitialCash = ToMoney64(_s6.initial_cash); + gBankLoan = ToMoney64(_s6.current_loan); gParkFlags = _s6.park_flags; gParkEntranceFee = _s6.park_entrance_fee; // rct1_park_entrance_x @@ -256,7 +256,7 @@ public: { for (size_t j = 0; j < RCT12_EXPENDITURE_TYPE_COUNT; j++) { - gExpenditureTable[i][j] = _s6.expenditure_table[i][j]; + gExpenditureTable[i][j] = ToMoney64(_s6.expenditure_table[i][j]); } } @@ -293,7 +293,7 @@ public: gParkSize = _s6.park_size; _guestGenerationProbability = _s6.guest_generation_probability; gTotalRideValueForMoney = _s6.total_ride_value_for_money; - gMaxBankLoan = _s6.maximum_loan; + gMaxBankLoan = ToMoney64(_s6.maximum_loan); gGuestInitialCash = _s6.guest_initial_cash; gGuestInitialHunger = _s6.guest_initial_hunger; gGuestInitialThirst = _s6.guest_initial_thirst; @@ -309,25 +309,25 @@ public: gScenarioObjective.NumGuests = _s6.objective_guests; ImportMarketingCampaigns(); - gCurrentExpenditure = _s6.current_expenditure; - gCurrentProfit = _s6.current_profit; + gCurrentExpenditure = ToMoney64(_s6.current_expenditure); + gCurrentProfit = ToMoney64(_s6.current_profit); gWeeklyProfitAverageDividend = ToMoney64(_s6.weekly_profit_average_dividend); gWeeklyProfitAverageDivisor = _s6.weekly_profit_average_divisor; // pad_0135833A - gParkValue = _s6.park_value; + gParkValue = ToMoney64(_s6.park_value); for (size_t i = 0; i < RCT12_FINANCE_GRAPH_SIZE; i++) { - gCashHistory[i] = _s6.balance_history[i]; + gCashHistory[i] = ToMoney64(_s6.balance_history[i]); gWeeklyProfitHistory[i] = ToMoney64(_s6.weekly_profit_history[i]); gParkValueHistory[i] = ToMoney64(_s6.park_value_history[i]); } - gScenarioCompletedCompanyValue = _s6.completed_company_value; + gScenarioCompletedCompanyValue = ToMoney64(_s6.completed_company_value); gTotalAdmissions = _s6.total_admissions; - gTotalIncomeFromAdmissions = _s6.income_from_admissions; - gCompanyValue = _s6.company_value; + gTotalIncomeFromAdmissions = ToMoney64(_s6.income_from_admissions); + gCompanyValue = ToMoney64(_s6.company_value); std::memcpy(gPeepWarningThrottle, _s6.peep_warning_throttle, sizeof(_s6.peep_warning_throttle)); // Awards @@ -348,10 +348,10 @@ public: gScenarioCompanyValueRecord = _s6.completed_company_value_record; // _s6.loan_hash; // pad_013587CA - gHistoricalProfit = _s6.historical_profit; + gHistoricalProfit = ToMoney64(_s6.historical_profit); // pad_013587D4 gScenarioCompletedBy = std::string_view(_s6.scenario_completed_name, sizeof(_s6.scenario_completed_name)); - gCash = DECRYPT_MONEY(_s6.cash); + gCash = ToMoney64(DECRYPT_MONEY(_s6.cash)); // pad_013587FC gParkRatingCasualtyPenalty = _s6.park_rating_casualty_penalty; gMapSizeUnits = _s6.map_size_units;