1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-15 11:03:00 +01:00

Use callback mechanism in case server rejects command

This commit is contained in:
Ted John
2017-05-07 00:55:28 +01:00
committed by Michael Steenbeek
parent 2bb3a297b4
commit f9acdcb02d
4 changed files with 15 additions and 13 deletions

View File

@@ -86,6 +86,7 @@ GAME_COMMAND_CALLBACK_POINTER* game_command_callback_table[] = {
game_command_callback_hire_new_staff_member, game_command_callback_hire_new_staff_member,
game_command_callback_pickup_guest, game_command_callback_pickup_guest,
game_command_callback_pickup_staff, game_command_callback_pickup_staff,
game_command_callback_marketing_start_campaign,
}; };
sint32 game_command_playerid = -1; sint32 game_command_playerid = -1;

View File

@@ -138,16 +138,19 @@ void marketing_set_guest_campaign(rct_peep *peep, sint32 campaign)
} }
} }
bool marketing_start_campaign(sint32 type, sint32 rideOrItem, sint32 numWeeks) void game_command_callback_marketing_start_campaign(sint32 eax, sint32 ebx, sint32 ecx, sint32 edx, sint32 esi, sint32 edi, sint32 ebp)
{
if (ebx != MONEY32_UNDEFINED)
{
window_close_by_class(WC_NEW_CAMPAIGN);
}
}
void marketing_start_campaign(sint32 type, sint32 rideOrItem, sint32 numWeeks)
{ {
gGameCommandErrorTitle = STR_CANT_START_MARKETING_CAMPAIGN; gGameCommandErrorTitle = STR_CANT_START_MARKETING_CAMPAIGN;
sint32 retVal = game_do_command(0, (numWeeks << 8) | GAME_COMMAND_FLAG_APPLY, 0, (rideOrItem << 8) | type, GAME_COMMAND_START_MARKETING_CAMPAIGN, 0, 0); game_command_callback = game_command_callback_marketing_start_campaign;
if (retVal == MONEY32_UNDEFINED) { game_do_command(0, (numWeeks << 8) | GAME_COMMAND_FLAG_APPLY, 0, (rideOrItem << 8) | type, GAME_COMMAND_START_MARKETING_CAMPAIGN, 0, 0);
return false;
}
else {
return true;
}
} }
/** /**

View File

@@ -47,7 +47,8 @@ extern uint8 gMarketingCampaignRideIndex[22];
sint32 marketing_get_campaign_guest_generation_probability(sint32 campaign); sint32 marketing_get_campaign_guest_generation_probability(sint32 campaign);
void marketing_update(); void marketing_update();
void marketing_set_guest_campaign(rct_peep *peep, sint32 campaign); void marketing_set_guest_campaign(rct_peep *peep, sint32 campaign);
bool marketing_start_campaign(sint32 type, sint32 rideOrItem, sint32 numWeeks); void game_command_callback_marketing_start_campaign(sint32 eax, sint32 ebx, sint32 ecx, sint32 edx, sint32 esi, sint32 edi, sint32 ebp);
void 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); 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); bool marketing_is_campaign_type_applicable(sint32 campaignType);

View File

@@ -225,10 +225,7 @@ static void window_new_campaign_mouseup(rct_window *w, rct_widgetindex widgetInd
window_close(w); window_close(w);
break; break;
case WIDX_START_BUTTON: case WIDX_START_BUTTON:
if (marketing_start_campaign(w->campaign.campaign_type, w->campaign.ride_id, w->campaign.no_weeks)) marketing_start_campaign(w->campaign.campaign_type, w->campaign.ride_id, w->campaign.no_weeks);
{
window_close(w);
}
break; break;
} }
} }