Openrct2: Advertisement campaigns - weird entrance fee check

Created on 26 Jan 2019  Â·  4Comments  Â·  Source: OpenRCT2/OpenRCT2


OS: Windows 10
Version: 0.2.1
Commit/Build: 3b176cd

In the function that determines the spawn rate from advertisement campaigns, the function checks if the park entrance fee is below 4 for free entrance campaigns, or below 6 for half price entrance campaigns. For a money16 variable, this would translate to € 0.4 and €0.6. If they are lower, then the guest spawn rates for these advertisement campaigns are severly limited.

park_get_entrance_fee() returns gParkEntranceFee, which is also a Money16 variable, so a fixed point number with 1 decimal. 1.0 € would be stored as 10. Since the park entrance fee always gets set in increments of 1€, it doesn't make sense for the function to check if the entrance fee is below € 0.4 or € 0.6. I assume it was meant to check if the park entrance fee was below €4 or €6 (which are both still very low entrance fee prices).

I'm curious as to whether this was an oversight in the original game or if this is something introduced by OpenRCT2..

int32_t marketing_get_campaign_guest_generation_probability(int32_t campaign)
{
    int32_t probability = AdvertisingCampaignGuestGenerationProbabilities[campaign];
    Ride* ride;

    // Lower probability of guest generation if price was already low
    switch (campaign)
    {
        case ADVERTISING_CAMPAIGN_PARK_ENTRY_FREE:
            if (park_get_entrance_fee() < 4)
                probability /= 8;
            break;
        case ADVERTISING_CAMPAIGN_PARK_ENTRY_HALF_PRICE:
            if (park_get_entrance_fee() < 6)
                probability /= 8;
            break;
        case ADVERTISING_CAMPAIGN_RIDE_FREE:
            ride = get_ride(gMarketingCampaignRideIndex[campaign]);
            if (ride->price < 3)
                probability /= 8;
            break;
    }

    return probability;
}
original bug

Most helpful comment

Generally we don't mind fixing them as long as it doesn't break someones workflow. https://xkcd.com/1172/ NE uses many bugs for many of their parks and its very easy to break their parks fixing bugs.

This looks to be an oversight by CS but it may affect the balance of the game. Time will tell if it needs tuning.

All 4 comments

I think you're right #8647.

I did some investigation into this. Its an original bug.
image
0x13573E8 is the address of the park entrance fee.

What's the 'original bug policy' by the way?

Generally we don't mind fixing them as long as it doesn't break someones workflow. https://xkcd.com/1172/ NE uses many bugs for many of their parks and its very easy to break their parks fixing bugs.

This looks to be an oversight by CS but it may affect the balance of the game. Time will tell if it needs tuning.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

nuclearslurpee picture nuclearslurpee  Â·  3Comments

mrtnptrs picture mrtnptrs  Â·  3Comments

Ryder17z picture Ryder17z  Â·  3Comments

Nubbie picture Nubbie  Â·  3Comments

deurklink picture deurklink  Â·  3Comments