mirror of https://github.com/OpenRCT2/OpenRCT2.git
Add more read code
This commit is contained in:
parent
4174b8adcc
commit
335c1daed4
|
@ -391,6 +391,7 @@ namespace OpenRCT2
|
||||||
WriteValue(gStaffMechanicColour);
|
WriteValue(gStaffMechanicColour);
|
||||||
WriteValue(gStaffSecurityColour);
|
WriteValue(gStaffSecurityColour);
|
||||||
|
|
||||||
|
// TODO use a uint64 or a list of active items
|
||||||
WriteValue(gSamePriceThroughoutParkA);
|
WriteValue(gSamePriceThroughoutParkA);
|
||||||
WriteValue(gSamePriceThroughoutParkB);
|
WriteValue(gSamePriceThroughoutParkB);
|
||||||
|
|
||||||
|
@ -540,8 +541,6 @@ namespace OpenRCT2
|
||||||
entry.flags = type & 0x7FFF;
|
entry.flags = type & 0x7FFF;
|
||||||
strncpy(entry.name, id.c_str(), 8);
|
strncpy(entry.name, id.c_str(), 8);
|
||||||
RequiredObjects.push_back(entry);
|
RequiredObjects.push_back(entry);
|
||||||
|
|
||||||
ReadNextArrayElement();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -554,6 +553,7 @@ namespace OpenRCT2
|
||||||
ReadParkChunk();
|
ReadParkChunk();
|
||||||
ReadClimateChunk();
|
ReadClimateChunk();
|
||||||
ReadResearchChunk();
|
ReadResearchChunk();
|
||||||
|
ReadNotifications();
|
||||||
ReadInterfaceChunk();
|
ReadInterfaceChunk();
|
||||||
|
|
||||||
// Initial cash will eventually be removed
|
// Initial cash will eventually be removed
|
||||||
|
@ -691,7 +691,6 @@ namespace OpenRCT2
|
||||||
gPeepSpawns[i].y = ReadValue<uint32_t>();
|
gPeepSpawns[i].y = ReadValue<uint32_t>();
|
||||||
gPeepSpawns[i].z = ReadValue<uint32_t>();
|
gPeepSpawns[i].z = ReadValue<uint32_t>();
|
||||||
gPeepSpawns[i].direction = ReadValue<uint8_t>();
|
gPeepSpawns[i].direction = ReadValue<uint8_t>();
|
||||||
ReadNextArrayElement();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
gLandPrice = ReadValue<money16>();
|
gLandPrice = ReadValue<money16>();
|
||||||
|
@ -735,10 +734,89 @@ namespace OpenRCT2
|
||||||
|
|
||||||
void ReadParkChunk()
|
void ReadParkChunk()
|
||||||
{
|
{
|
||||||
|
if (SeekChunk(ParkFileChunkType::PARK))
|
||||||
|
{
|
||||||
|
gParkNameArgs = ReadValue<uint32_t>();
|
||||||
|
gCash = ReadValue<money32>();
|
||||||
|
gBankLoan = ReadValue<money32>();
|
||||||
|
gMaxBankLoan = ReadValue<money32>();
|
||||||
|
gBankLoanInterestRate = ReadValue<uint16_t>();
|
||||||
|
gParkFlags = ReadValue<uint64_t>();
|
||||||
|
gParkEntranceFee = ReadValue<money32>();
|
||||||
|
gStaffHandymanColour = ReadValue<uint8_t>();
|
||||||
|
gStaffMechanicColour = ReadValue<uint8_t>();
|
||||||
|
gStaffSecurityColour = ReadValue<uint8_t>();
|
||||||
|
|
||||||
|
gSamePriceThroughoutParkA = ReadValue<uint64_t>();
|
||||||
|
gSamePriceThroughoutParkB = ReadValue<uint64_t>();
|
||||||
|
|
||||||
|
// Marketing
|
||||||
|
auto numItems = ReadArray();
|
||||||
|
for (size_t i = 0; i < numItems; i++)
|
||||||
|
{
|
||||||
|
gMarketingCampaignDaysLeft[i] = ReadValue<uint32_t>();
|
||||||
|
gMarketingCampaignRideIndex[i] = ReadValue<uint32_t>();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Awards
|
||||||
|
numItems = ReadArray();
|
||||||
|
for (size_t i = 0; i < numItems; i++)
|
||||||
|
{
|
||||||
|
Award award;
|
||||||
|
award.Time = ReadValue<uint16_t>();
|
||||||
|
award.Type = ReadValue<uint16_t>();
|
||||||
|
}
|
||||||
|
|
||||||
|
numItems = ReadArray();
|
||||||
|
for (size_t i = 0; i < numItems; i++)
|
||||||
|
{
|
||||||
|
gPeepWarningThrottle[i] = ReadValue<uint8_t>();
|
||||||
|
}
|
||||||
|
|
||||||
|
gParkRatingCasualtyPenalty = ReadValue<uint16_t>();
|
||||||
|
gCurrentExpenditure = ReadValue<money32>();
|
||||||
|
gCurrentProfit = ReadValue<money32>();
|
||||||
|
gTotalAdmissions = ReadValue<uint32_t>();
|
||||||
|
gTotalIncomeFromAdmissions = ReadValue<money32>();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
throw std::runtime_error("No park chunk found.");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ReadResearchChunk()
|
void ReadResearchChunk()
|
||||||
{
|
{
|
||||||
|
if (SeekChunk(ParkFileChunkType::RESEARCH))
|
||||||
|
{
|
||||||
|
// Research status
|
||||||
|
gResearchFundingLevel = ReadValue<uint8_t>();
|
||||||
|
gResearchPriorities = ReadValue<uint8_t>();
|
||||||
|
gResearchProgressStage = ReadValue<uint8_t>();
|
||||||
|
gResearchProgress = ReadValue<uint16_t>();
|
||||||
|
gResearchExpectedMonth = ReadValue<uint8_t>();
|
||||||
|
gResearchExpectedDay = ReadValue<uint8_t>();
|
||||||
|
gResearchLastItem = ReadValue<rct_research_item>();
|
||||||
|
gResearchNextItem = ReadValue<rct_research_item>();
|
||||||
|
|
||||||
|
// auto numItems = ReadArray();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void ReadNotifications()
|
||||||
|
{
|
||||||
|
if (SeekChunk(ParkFileChunkType::NOTIFICATIONS))
|
||||||
|
{
|
||||||
|
NewsItem notification;
|
||||||
|
notification.Type = ReadValue<uint8_t>();
|
||||||
|
notification.Flags = ReadValue<uint8_t>();
|
||||||
|
notification.Assoc = ReadValue<uint32_t>();
|
||||||
|
notification.Ticks = ReadValue<uint16_t>();
|
||||||
|
notification.MonthYear = ReadValue<uint16_t>();
|
||||||
|
notification.Day = ReadValue<uint8_t>();
|
||||||
|
auto text = ReadString();
|
||||||
|
String::Set(notification.Text, sizeof(notification.Text), text.c_str());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ReadTilesChunk()
|
void ReadTilesChunk()
|
||||||
|
|
Loading…
Reference in New Issue