mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2025-12-20 14:23:08 +01:00
Fix #12506: Cannot advertise food if there are no rides in the park
This commit is contained in:
committed by
GitHub
parent
1f3ea50915
commit
bb1d81471d
@@ -55,6 +55,7 @@
|
|||||||
- Fix: [#12312] Softlock when loading save file via command line fails.
|
- Fix: [#12312] Softlock when loading save file via command line fails.
|
||||||
- Fix: [#12486] `set-rct2` has a broken g1.dat check.
|
- Fix: [#12486] `set-rct2` has a broken g1.dat check.
|
||||||
- Fix: [#12505] Stores selling multiple items can only have the first product advertised.
|
- Fix: [#12505] Stores selling multiple items can only have the first product advertised.
|
||||||
|
- Fix: [#12506] Cannot advertise food if there are no rides in the park.
|
||||||
- Fix: 'j' character has broken kerning (original bug).
|
- Fix: 'j' character has broken kerning (original bug).
|
||||||
- Fix: RCT1 scenarios have more items in the object list than are present in the park or the research list.
|
- Fix: RCT1 scenarios have more items in the object list than are present in the park or the research list.
|
||||||
- Improved: [#6530] Allow water and land height changes on park borders.
|
- Improved: [#6530] Allow water and land height changes on park borders.
|
||||||
|
|||||||
@@ -154,7 +154,7 @@ rct_window* window_new_campaign_open(int16_t campaignType)
|
|||||||
w->campaign.no_weeks = 2;
|
w->campaign.no_weeks = 2;
|
||||||
|
|
||||||
// Currently selected ride
|
// Currently selected ride
|
||||||
w->campaign.ride_id = SELECTED_RIDE_UNDEFINED;
|
w->campaign.RideId = SELECTED_RIDE_UNDEFINED;
|
||||||
|
|
||||||
WindowCampaignRefreshRides();
|
WindowCampaignRefreshRides();
|
||||||
return w;
|
return w;
|
||||||
@@ -207,7 +207,7 @@ static void window_new_campaign_mouseup(rct_window* w, rct_widgetindex widgetInd
|
|||||||
break;
|
break;
|
||||||
case WIDX_START_BUTTON:
|
case WIDX_START_BUTTON:
|
||||||
{
|
{
|
||||||
auto gameAction = ParkMarketingAction(w->campaign.campaign_type, w->campaign.ride_id, w->campaign.no_weeks);
|
auto gameAction = ParkMarketingAction(w->campaign.campaign_type, w->campaign.RideId, w->campaign.no_weeks);
|
||||||
gameAction.SetCallback([](const GameAction* ga, const GameActionResult* result) {
|
gameAction.SetCallback([](const GameAction* ga, const GameActionResult* result) {
|
||||||
if (result->Error == GA_ERROR::OK)
|
if (result->Error == GA_ERROR::OK)
|
||||||
{
|
{
|
||||||
@@ -306,16 +306,25 @@ static void window_new_campaign_dropdown(rct_window* w, rct_widgetindex widgetIn
|
|||||||
if (widgetIndex != WIDX_RIDE_DROPDOWN_BUTTON)
|
if (widgetIndex != WIDX_RIDE_DROPDOWN_BUTTON)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (dropdownIndex < 0 || static_cast<size_t>(dropdownIndex) >= window_new_campaign_rides.size())
|
if (dropdownIndex < 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (w->campaign.campaign_type == ADVERTISING_CAMPAIGN_FOOD_OR_DRINK_FREE)
|
if (w->campaign.campaign_type == ADVERTISING_CAMPAIGN_FOOD_OR_DRINK_FREE)
|
||||||
{
|
{
|
||||||
w->campaign.ride_id = window_new_campaign_shop_items[dropdownIndex];
|
if (static_cast<size_t>(dropdownIndex) >= std::size(window_new_campaign_shop_items))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (window_new_campaign_shop_items[dropdownIndex] == 255)
|
||||||
|
return;
|
||||||
|
|
||||||
|
w->campaign.ShopItemId = window_new_campaign_shop_items[dropdownIndex];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
w->campaign.ride_id = window_new_campaign_rides[dropdownIndex];
|
if (static_cast<size_t>(dropdownIndex) >= window_new_campaign_rides.size())
|
||||||
|
return;
|
||||||
|
|
||||||
|
w->campaign.RideId = window_new_campaign_rides[dropdownIndex];
|
||||||
}
|
}
|
||||||
|
|
||||||
w->Invalidate();
|
w->Invalidate();
|
||||||
@@ -339,9 +348,9 @@ static void window_new_campaign_invalidate(rct_window* w)
|
|||||||
window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].type = WWT_DROPDOWN;
|
window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].type = WWT_DROPDOWN;
|
||||||
window_new_campaign_widgets[WIDX_RIDE_DROPDOWN_BUTTON].type = WWT_BUTTON;
|
window_new_campaign_widgets[WIDX_RIDE_DROPDOWN_BUTTON].type = WWT_BUTTON;
|
||||||
window_new_campaign_widgets[WIDX_RIDE_LABEL].text = STR_MARKETING_RIDE;
|
window_new_campaign_widgets[WIDX_RIDE_LABEL].text = STR_MARKETING_RIDE;
|
||||||
if (w->campaign.ride_id != SELECTED_RIDE_UNDEFINED)
|
if (w->campaign.RideId != SELECTED_RIDE_UNDEFINED)
|
||||||
{
|
{
|
||||||
auto ride = get_ride(w->campaign.ride_id);
|
auto ride = get_ride(w->campaign.RideId);
|
||||||
if (ride != nullptr)
|
if (ride != nullptr)
|
||||||
{
|
{
|
||||||
window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].text = STR_STRINGID;
|
window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].text = STR_STRINGID;
|
||||||
@@ -356,9 +365,9 @@ static void window_new_campaign_invalidate(rct_window* w)
|
|||||||
window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].type = WWT_DROPDOWN;
|
window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].type = WWT_DROPDOWN;
|
||||||
window_new_campaign_widgets[WIDX_RIDE_DROPDOWN_BUTTON].type = WWT_BUTTON;
|
window_new_campaign_widgets[WIDX_RIDE_DROPDOWN_BUTTON].type = WWT_BUTTON;
|
||||||
window_new_campaign_widgets[WIDX_RIDE_LABEL].text = STR_MARKETING_ITEM;
|
window_new_campaign_widgets[WIDX_RIDE_LABEL].text = STR_MARKETING_ITEM;
|
||||||
if (w->campaign.ride_id != SELECTED_RIDE_UNDEFINED)
|
if (w->campaign.ShopItemId != SELECTED_RIDE_UNDEFINED)
|
||||||
{
|
{
|
||||||
window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].text = ShopItems[w->campaign.ride_id].Naming.Plural;
|
window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].text = ShopItems[w->campaign.ShopItemId].Naming.Plural;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -368,7 +377,7 @@ static void window_new_campaign_invalidate(rct_window* w)
|
|||||||
|
|
||||||
// Enable / disable start button based on ride dropdown
|
// Enable / disable start button based on ride dropdown
|
||||||
w->disabled_widgets &= ~(1 << WIDX_START_BUTTON);
|
w->disabled_widgets &= ~(1 << WIDX_START_BUTTON);
|
||||||
if (window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].type == WWT_DROPDOWN && w->campaign.ride_id == SELECTED_RIDE_UNDEFINED)
|
if (window_new_campaign_widgets[WIDX_RIDE_DROPDOWN].type == WWT_DROPDOWN && w->campaign.RideId == SELECTED_RIDE_UNDEFINED)
|
||||||
w->disabled_widgets |= 1 << WIDX_START_BUTTON;
|
w->disabled_widgets |= 1 << WIDX_START_BUTTON;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -247,7 +247,11 @@ struct campaign_variables
|
|||||||
{
|
{
|
||||||
int16_t campaign_type;
|
int16_t campaign_type;
|
||||||
int16_t no_weeks; // 0x482
|
int16_t no_weeks; // 0x482
|
||||||
uint16_t ride_id; // 0x484
|
union
|
||||||
|
{
|
||||||
|
ride_id_t RideId; // 0x484
|
||||||
|
ObjectEntryIndex ShopItemId; // 0x484
|
||||||
|
};
|
||||||
uint32_t pad_486;
|
uint32_t pad_486;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user