diff --git a/distribution/changelog.txt b/distribution/changelog.txt index 693d3bf764..73378915d7 100644 --- a/distribution/changelog.txt +++ b/distribution/changelog.txt @@ -56,6 +56,8 @@ - Fix: [#9240] Crash when passing directory instead of save file. - Fix: [#9293] Issue with the native load/save dialog. - Fix: [#9322] Peep crashing the game trying to find a ride to look at. +- Fix: [#9402] Ad campaigns disappear when you save and load the game. +- Fix: [#9411] Ad campaigns end too soon. - Fix: Guests eating popcorn are drawn as if they're eating pizza. - Fix: The arbitrary ride type and vehicle dropdown lists are ordered case-sensitively. - Improved: [#6116] Expose colour scheme for track elements in the tile inspector. diff --git a/src/openrct2/actions/ParkMarketingAction.hpp b/src/openrct2/actions/ParkMarketingAction.hpp index 8de0b7e87f..607d0c1249 100644 --- a/src/openrct2/actions/ParkMarketingAction.hpp +++ b/src/openrct2/actions/ParkMarketingAction.hpp @@ -71,6 +71,7 @@ public: MarketingCampaign campaign{}; campaign.Type = _type; campaign.WeeksLeft = _numWeeks; + campaign.Flags = MarketingCampaignFlags::FIRST_WEEK; if (campaign.Type == ADVERTISING_CAMPAIGN_RIDE_FREE || campaign.Type == ADVERTISING_CAMPAIGN_RIDE) { campaign.RideId = _item; diff --git a/src/openrct2/rct2/S6Exporter.cpp b/src/openrct2/rct2/S6Exporter.cpp index a9e4a79cd2..1772a19fb2 100644 --- a/src/openrct2/rct2/S6Exporter.cpp +++ b/src/openrct2/rct2/S6Exporter.cpp @@ -794,7 +794,7 @@ void S6Exporter::ExportMarketingCampaigns() std::memset(_s6.campaign_ride_index, 0, sizeof(_s6.campaign_ride_index)); for (const auto& campaign : gMarketingCampaigns) { - _s6.campaign_weeks_left[campaign.Type] = campaign.WeeksLeft; + _s6.campaign_weeks_left[campaign.Type] = campaign.WeeksLeft | CAMPAIGN_ACTIVE_FLAG; if (campaign.Type == ADVERTISING_CAMPAIGN_RIDE_FREE || campaign.Type == ADVERTISING_CAMPAIGN_RIDE) { _s6.campaign_ride_index[campaign.Type] = campaign.RideId;