mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-24 07:14:31 +01:00
Implement saving / loading of banners
This commit is contained in:
@@ -97,6 +97,7 @@ namespace OpenRCT2
|
||||
{
|
||||
auto& os = *_os;
|
||||
ReadWriteTilesChunk(os);
|
||||
ReadWriteBannersChunk(os);
|
||||
ReadWriteRidesChunk(os);
|
||||
ReadWriteThingsChunk(os);
|
||||
ReadWriteScenarioChunk(os);
|
||||
@@ -127,6 +128,7 @@ namespace OpenRCT2
|
||||
ReadWriteAuthoringChunk(os);
|
||||
ReadWriteObjectsChunk(os);
|
||||
ReadWriteTilesChunk(os);
|
||||
ReadWriteBannersChunk(os);
|
||||
ReadWriteRidesChunk(os);
|
||||
ReadWriteThingsChunk(os);
|
||||
ReadWriteScenarioChunk(os);
|
||||
@@ -452,6 +454,37 @@ namespace OpenRCT2
|
||||
}
|
||||
}
|
||||
|
||||
void ReadWriteBannersChunk(OrcaStream& os)
|
||||
{
|
||||
os.ReadWriteChunk(ParkFileChunkType::BANNERS, [](OrcaStream::ChunkStream& cs) {
|
||||
std::vector<Banner> banners;
|
||||
if (cs.GetMode() == OrcaStream::Mode::WRITING)
|
||||
{
|
||||
for (BannerIndex i = 0; i < MAX_BANNERS; i++)
|
||||
{
|
||||
banners.push_back(*GetBanner(i));
|
||||
}
|
||||
}
|
||||
cs.ReadWriteVector(banners, [&cs](Banner& banner) {
|
||||
cs.ReadWrite(banner.type);
|
||||
cs.ReadWrite(banner.flags);
|
||||
cs.ReadWrite(banner.text);
|
||||
cs.ReadWrite(banner.colour);
|
||||
cs.ReadWrite(banner.ride_index);
|
||||
cs.ReadWrite(banner.text_colour);
|
||||
cs.ReadWrite(banner.position);
|
||||
});
|
||||
if (cs.GetMode() == OrcaStream::Mode::READING)
|
||||
{
|
||||
for (BannerIndex i = 0; i < MAX_BANNERS; i++)
|
||||
{
|
||||
auto banner = GetBanner(i);
|
||||
*banner = banners[i];
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void ReadWriteRidesChunk(OrcaStream& os)
|
||||
{
|
||||
os.ReadWriteChunk(ParkFileChunkType::RIDES, [](OrcaStream::ChunkStream& cs) {
|
||||
|
||||
Reference in New Issue
Block a user