mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-21 22:13:07 +01:00
Convert to/from money64 during export; convert completed company value
This commit is contained in:
@@ -1346,7 +1346,7 @@ private:
|
||||
}
|
||||
gCurrentExpenditure = ToMoney64(_s4.total_expenditure);
|
||||
|
||||
gScenarioCompletedCompanyValue = ToMoney64(_s4.completed_company_value);
|
||||
gScenarioCompletedCompanyValue = RCT12CompletedCompanyValueToOpenRCT2(_s4.completed_company_value);
|
||||
gTotalAdmissions = _s4.num_admissions;
|
||||
gTotalIncomeFromAdmissions = ToMoney64(_s4.admission_total_income);
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
#include "../localisation/Formatting.h"
|
||||
#include "../localisation/Localisation.h"
|
||||
#include "../ride/Track.h"
|
||||
#include "../scenario/Scenario.h"
|
||||
#include "../world/Banner.h"
|
||||
#include "../world/Footpath.h"
|
||||
#include "../world/LargeScenery.h"
|
||||
@@ -1349,3 +1350,19 @@ RCT12TrackType OpenRCT2FlatTrackTypeToRCT12(track_type_t origTrackType)
|
||||
|
||||
return origTrackType;
|
||||
}
|
||||
|
||||
money64 RCT12CompletedCompanyValueToOpenRCT2(money32 origValue)
|
||||
{
|
||||
if (origValue == RCT12_COMPANY_VALUE_ON_FAILED_OBJECTIVE)
|
||||
return COMPANY_VALUE_ON_FAILED_OBJECTIVE;
|
||||
|
||||
return ToMoney64(origValue);
|
||||
}
|
||||
|
||||
money32 OpenRCT2CompletedCompanyValueToRCT12(money64 origValue)
|
||||
{
|
||||
if (origValue == COMPANY_VALUE_ON_FAILED_OBJECTIVE)
|
||||
return RCT12_COMPANY_VALUE_ON_FAILED_OBJECTIVE;
|
||||
|
||||
return ToMoney32(origValue);
|
||||
}
|
||||
|
||||
@@ -932,3 +932,8 @@ std::string ConvertFormattedStringToRCT2(std::string_view buffer, size_t maxLeng
|
||||
std::string GetTruncatedRCT2String(std::string_view src, size_t maxLength);
|
||||
track_type_t RCT12FlatTrackTypeToOpenRCT2(RCT12TrackType origTrackType);
|
||||
RCT12TrackType OpenRCT2FlatTrackTypeToRCT12(track_type_t origTrackType);
|
||||
|
||||
static constexpr money32 RCT12_COMPANY_VALUE_ON_FAILED_OBJECTIVE = 0x80000001;
|
||||
|
||||
money64 RCT12CompletedCompanyValueToOpenRCT2(money32 origValue);
|
||||
money32 OpenRCT2CompletedCompanyValueToRCT12(money64 origValue);
|
||||
|
||||
@@ -200,8 +200,8 @@ void S6Exporter::Export()
|
||||
ExportEntities();
|
||||
ExportParkName();
|
||||
|
||||
_s6.initial_cash = gInitialCash;
|
||||
_s6.current_loan = gBankLoan;
|
||||
_s6.initial_cash = ToMoney32(gInitialCash);
|
||||
_s6.current_loan = ToMoney32(gBankLoan);
|
||||
_s6.park_flags = gParkFlags;
|
||||
_s6.park_entrance_fee = gParkEntranceFee;
|
||||
// rct1_park_entrance_x
|
||||
@@ -226,7 +226,13 @@ void S6Exporter::Export()
|
||||
_s6.guests_in_park = gNumGuestsInPark;
|
||||
_s6.guests_heading_for_park = gNumGuestsHeadingForPark;
|
||||
|
||||
std::memcpy(_s6.expenditure_table, gExpenditureTable, sizeof(_s6.expenditure_table));
|
||||
for (size_t i = 0; i < RCT12_EXPENDITURE_TABLE_MONTH_COUNT; i++)
|
||||
{
|
||||
for (size_t j = 0; j < RCT12_EXPENDITURE_TYPE_COUNT; j++)
|
||||
{
|
||||
_s6.expenditure_table[i][j] = ToMoney32(gExpenditureTable[i][j]);
|
||||
}
|
||||
}
|
||||
|
||||
_s6.last_guests_in_park = gNumGuestsInParkLastWeek;
|
||||
// pad_01357BCA
|
||||
@@ -268,7 +274,7 @@ void S6Exporter::Export()
|
||||
_s6.park_size = gParkSize;
|
||||
_s6.guest_generation_probability = _guestGenerationProbability;
|
||||
_s6.total_ride_value_for_money = gTotalRideValueForMoney;
|
||||
_s6.maximum_loan = gMaxBankLoan;
|
||||
_s6.maximum_loan = ToMoney32(gMaxBankLoan);
|
||||
_s6.guest_initial_cash = gGuestInitialCash;
|
||||
_s6.guest_initial_hunger = gGuestInitialHunger;
|
||||
_s6.guest_initial_thirst = gGuestInitialThirst;
|
||||
@@ -285,24 +291,25 @@ void S6Exporter::Export()
|
||||
|
||||
ExportMarketingCampaigns();
|
||||
|
||||
std::memcpy(_s6.balance_history, gCashHistory, sizeof(_s6.balance_history));
|
||||
|
||||
_s6.current_expenditure = gCurrentExpenditure;
|
||||
_s6.current_profit = gCurrentProfit;
|
||||
_s6.weekly_profit_average_dividend = gWeeklyProfitAverageDividend;
|
||||
_s6.current_expenditure = ToMoney32(gCurrentExpenditure);
|
||||
_s6.current_profit = ToMoney32(gCurrentProfit);
|
||||
_s6.weekly_profit_average_dividend = ToMoney32(gWeeklyProfitAverageDividend);
|
||||
_s6.weekly_profit_average_divisor = gWeeklyProfitAverageDivisor;
|
||||
// pad_0135833A
|
||||
|
||||
std::memcpy(_s6.weekly_profit_history, gWeeklyProfitHistory, sizeof(_s6.weekly_profit_history));
|
||||
_s6.park_value = ToMoney32(gParkValue);
|
||||
|
||||
_s6.park_value = gParkValue;
|
||||
for (size_t i = 0; i < RCT12_FINANCE_GRAPH_SIZE; i++)
|
||||
{
|
||||
_s6.balance_history[i] = ToMoney32(gCashHistory[i]);
|
||||
_s6.weekly_profit_history[i] = ToMoney32(gWeeklyProfitHistory[i]);
|
||||
_s6.park_value_history[i] = ToMoney32(gParkValueHistory[i]);
|
||||
}
|
||||
|
||||
std::memcpy(_s6.park_value_history, gParkValueHistory, sizeof(_s6.park_value_history));
|
||||
|
||||
_s6.completed_company_value = gScenarioCompletedCompanyValue;
|
||||
_s6.completed_company_value = OpenRCT2CompletedCompanyValueToRCT12(gScenarioCompletedCompanyValue);
|
||||
_s6.total_admissions = gTotalAdmissions;
|
||||
_s6.income_from_admissions = gTotalIncomeFromAdmissions;
|
||||
_s6.company_value = gCompanyValue;
|
||||
_s6.income_from_admissions = ToMoney32(gTotalIncomeFromAdmissions);
|
||||
_s6.company_value = ToMoney32(gCompanyValue);
|
||||
std::memcpy(_s6.peep_warning_throttle, gPeepWarningThrottle, sizeof(_s6.peep_warning_throttle));
|
||||
|
||||
// Awards
|
||||
@@ -324,10 +331,10 @@ void S6Exporter::Export()
|
||||
_s6.loan_hash = GetLoanHash(gInitialCash, gBankLoan, gMaxBankLoan);
|
||||
_s6.ride_count = ride_get_count();
|
||||
// pad_013587CA
|
||||
_s6.historical_profit = gHistoricalProfit;
|
||||
_s6.historical_profit = ToMoney32(gHistoricalProfit);
|
||||
// pad_013587D4
|
||||
String::Set(_s6.scenario_completed_name, sizeof(_s6.scenario_completed_name), gScenarioCompletedBy.c_str());
|
||||
_s6.cash = ENCRYPT_MONEY(gCash);
|
||||
_s6.cash = ENCRYPT_MONEY(ToMoney32(gCash));
|
||||
// pad_013587FC
|
||||
_s6.park_rating_casualty_penalty = gParkRatingCasualtyPenalty;
|
||||
_s6.map_size_units = gMapSizeUnits;
|
||||
@@ -693,7 +700,7 @@ void S6Exporter::ExportRide(rct2_ride* dst, const Ride* src)
|
||||
// pad_14E[0x02];
|
||||
|
||||
dst->total_customers = src->total_customers;
|
||||
dst->total_profit = src->total_profit;
|
||||
dst->total_profit = ToMoney32(src->total_profit);
|
||||
dst->popularity = src->popularity;
|
||||
dst->popularity_time_out = src->popularity_time_out;
|
||||
dst->popularity_next = src->popularity_next;
|
||||
@@ -743,7 +750,7 @@ void S6Exporter::ExportRide(rct2_ride* dst, const Ride* src)
|
||||
dst->connected_message_throttle = src->connected_message_throttle;
|
||||
|
||||
dst->income_per_hour = src->income_per_hour;
|
||||
dst->profit = src->profit;
|
||||
dst->profit = ToMoney32(src->profit);
|
||||
|
||||
for (uint8_t i = 0; i < RCT12_NUM_COLOUR_SCHEMES; i++)
|
||||
{
|
||||
|
||||
@@ -324,7 +324,7 @@ public:
|
||||
gParkValueHistory[i] = ToMoney64(_s6.park_value_history[i]);
|
||||
}
|
||||
|
||||
gScenarioCompletedCompanyValue = ToMoney64(_s6.completed_company_value);
|
||||
gScenarioCompletedCompanyValue = RCT12CompletedCompanyValueToOpenRCT2(_s6.completed_company_value);
|
||||
gTotalAdmissions = _s6.total_admissions;
|
||||
gTotalIncomeFromAdmissions = ToMoney64(_s6.income_from_admissions);
|
||||
gCompanyValue = ToMoney64(_s6.company_value);
|
||||
|
||||
Reference in New Issue
Block a user