diff --git a/src/openrct2/management/marketing.c b/src/openrct2/management/marketing.c index 0bcad0cb14..01b7efe6a6 100644 --- a/src/openrct2/management/marketing.c +++ b/src/openrct2/management/marketing.c @@ -138,10 +138,16 @@ void marketing_set_guest_campaign(rct_peep *peep, sint32 campaign) } } -void marketing_start_campaign(sint32 type, sint32 rideOrItem, sint32 numWeeks) +bool marketing_start_campaign(sint32 type, sint32 rideOrItem, sint32 numWeeks) { gGameCommandErrorTitle = STR_CANT_START_MARKETING_CAMPAIGN; - game_do_command(0, (numWeeks << 8) | GAME_COMMAND_FLAG_APPLY, 0, (rideOrItem << 8) | type, GAME_COMMAND_START_MARKETING_CAMPAIGN, 0, 0); + sint32 retVal = game_do_command(0, (numWeeks << 8) | GAME_COMMAND_FLAG_APPLY, 0, (rideOrItem << 8) | type, GAME_COMMAND_START_MARKETING_CAMPAIGN, 0, 0); + if (retVal == MONEY32_UNDEFINED) { + return false; + } + else { + return true; + } } /** diff --git a/src/openrct2/management/marketing.h b/src/openrct2/management/marketing.h index 869816e76c..79f21068f3 100644 --- a/src/openrct2/management/marketing.h +++ b/src/openrct2/management/marketing.h @@ -47,7 +47,7 @@ extern uint8 gMarketingCampaignRideIndex[22]; sint32 marketing_get_campaign_guest_generation_probability(sint32 campaign); void marketing_update(); void marketing_set_guest_campaign(rct_peep *peep, sint32 campaign); -void marketing_start_campaign(sint32 type, sint32 rideOrItem, sint32 numWeeks); +bool marketing_start_campaign(sint32 type, sint32 rideOrItem, sint32 numWeeks); void game_command_start_campaign(sint32* eax, sint32* ebx, sint32* ecx, sint32* edx, sint32* esi, sint32* edi, sint32* ebp); bool marketing_is_campaign_type_applicable(sint32 campaignType); diff --git a/src/openrct2/windows/new_campaign.c b/src/openrct2/windows/new_campaign.c index 681ed2c4f2..aa8483438a 100644 --- a/src/openrct2/windows/new_campaign.c +++ b/src/openrct2/windows/new_campaign.c @@ -225,8 +225,10 @@ static void window_new_campaign_mouseup(rct_window *w, rct_widgetindex widgetInd window_close(w); break; case WIDX_START_BUTTON: - marketing_start_campaign(w->campaign.campaign_type, w->campaign.ride_id, w->campaign.no_weeks); - window_close(w); + if (marketing_start_campaign(w->campaign.campaign_type, w->campaign.ride_id, w->campaign.no_weeks)) + { + window_close(w); + } break; } }