-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add cheat to disable ride value ageing #5196
Conversation
Well I just tested this by playing through a scenario, and it appears to work. No guests (that I could see) ever said that a ride was too expensive even after 3 years. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I left a few comments, and I haven't tested this myself, but it looks pretty straightforward.
I honestly have thought of something like this myself, especially since there is a 'disable ride breakdowns' cheat, so thanks for this!
data/language/en-GB.txt
Outdated
@@ -4321,6 +4321,8 @@ STR_6009 :{SMALLFONT}{BLACK}Select cut height | |||
STR_6010 :{COMMA2DP32}m | |||
STR_6011 :{COMMA1DP16}ft | |||
STR_6012 :{COMMA1DP16} | |||
STR_6013 :Rides don't decrease in value over time |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this should be something like "Disable ride aging"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The problem with that is that this cheat doesn't prevent a ride from getting older, it prevents it from depreciating.
I'd change it to Prevent rides from losing value
.
data/language/en-GB.txt
Outdated
@@ -4321,6 +4321,8 @@ STR_6009 :{SMALLFONT}{BLACK}Select cut height | |||
STR_6010 :{COMMA2DP32}m | |||
STR_6011 :{COMMA1DP16}ft | |||
STR_6012 :{COMMA1DP16} | |||
STR_6013 :Rides don't decrease in value over time | |||
STR_6014 :{SMALLFONT}{BLACK}The value of a ride won't decrease over time, so guests will not suddenly think that a ride is too expensive. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Personally, I think this should be reworded to something else. The words "suddenly" and "too expensive" give a feel that age mechanic is being described as if it was is bad or poorly done.
Maybe switch it to something such as "Rides will not age over time and stay 'new', preventing thoughts such as high price" ?
(I would prefer to see what others think of this, though, as it could just be me.)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This will keep the value of every ride from decreasing over time, so guests are always prepared to pay the price from when it was brand-new.
src/openrct2/ride/ride_ratings.c
Outdated
@@ -621,21 +622,25 @@ static void ride_ratings_calculate_value(rct_ride *ride) | |||
|
|||
sint32 monthsOld = gDateMonthsElapsed - ride->build_date; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would move this right below if (!gCheatsDisableRideValueAging) {
since it's only used when the cheat is not active.
src/openrct2/ride/ride_ratings.c
Outdated
} | ||
if (!gCheatsDisableRideValueAging) { | ||
// New ride reward | ||
if (monthsOld <= 12) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I know this is not really what your PR is about but could we refactor the whole of this into some sort of table so that you look up the amount to add to value then look up the multiplier.
@wolfreak99 - Thanks for reviewing the changes. I agree that the wording could be improved; I really didn't spend much time coming up with the text. I prefer your wording instead. @duncanspumpkin - I'm happy to do a little refactor for this. I unfortunately won't be able to get to this until this weekend though. |
Could you look at this again? |
470a596
to
3dc1d12
Compare
src/openrct2/windows/cheats.c
Outdated
@@ -147,6 +147,7 @@ enum WINDOW_CHEATS_WIDGET_IDX { | |||
WIDX_DISABLE_TRAIN_LENGTH_LIMITS, | |||
WIDX_ENABLE_CHAIN_LIFT_ON_ALL_TRACK, | |||
WIDX_ENABLE_ARBITRARY_RIDE_TYPE_CHANGES, | |||
WIDX_DISABLE_RIDE_VALUE_AGING |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
minor nitpick: missing comma
d90c58c
to
cef5b90
Compare
- Feature: [#1399 (partial), #5177] Add window that displays any missing/corrupt objects when loading a park - Feature: [#5056] Add cheat to own all land. - Feature: [#5133] Add option to display guest expenditure (as seen in RCTC). - Feature: [#5196] Add cheat to disable ride ageing. - Feature: [#5504] Group vehicles into ride groups - Feature: [#5576] Add a persistent 'display real names of guests' setting. - Feature: [#5611] Add support for Android - Feature: [#5706] Add support for OpenBSD - Feature: OpenRCT2 now starts up on the display it was last shown on. - Feature: Park entrance fee can now be set to amounts up to £200. - Improved: Construction rights can now be placed on park entrances. - Improved: Mouse can now be dragged to select scenery when saving track designs - Fix: [#259] Money making glitch involving swamps (original bug) - Fix: [#441] Construction rights over entrance path erased (original bug) - Fix: [#578] Ride ghosts show up in ride list during construction (original bug) - Fix: [#597] 'Finish 5 roller coasters' goal not properly checked (original bug) - Fix: [#667] Incorrect banner limit calculation (original bug) - Fix: [#739] Crocodile Ride (Log Flume) never allows more than five boats (original bug) - Fix: [#837] Can't move windows on title screen to where the toolbar would be (original bug) - Fix: [#1705] Time Twister's Medieval entrance has incorrect scrolling (original bug) - Fix: [#3178, #5456] Paths with non-ASCII characters not handled properly on macOS. - Fix: [#3346] Crash when extra long train breaks down at the back - Fix: [#3479] Building in pause mode creates too many floating numbers, crashing the game - Fix: [#3565] Multiplayer server crash - Fix: [#3681] Steel Twister rollercoaster always shows all track designs - Fix: [#3846, #5749] Crash when testing coaster with a diagonal lift in block brake mode - Fix: [#4054] Sorting rides by track type: Misleading research messages - Fix: [#4055] Sort rides by track type: Sorting rule is not really clear (inconsistent?) - Fix: [#4512] Invisible map edge tiles corrupted - Fix: [#5009] Ride rating calculations can overflow - Fix: [#5253] RCT1 park value conversion factor too high - Fix: [#5400] New Ride window does not focus properly on newly invented ride. - Fix: [#5489] Sprite index crash for car view on car ride. - Fix: [#5730] Unable to uncheck 'No money' in the Scenario Editor. - Fix: [#5750] Game freezes when ride queue linked list is corrupted. - Fix: [#5819] Vertical multi-dimension coaster tunnels drawn incorrectly - Fix: Non-invented vehicles can be used via track designs in select-by-track-type mode. - Fix: Track components added by OpenRCT2 are now usable in older scenarios. - Technical: [#5047] Add ride ratings tests - Technical: [#5458] Begin offering headless build with reduced compile- and run-time dependencies - Technical: [#5755] Title sequence wait periods use milliseconds - Technical: Fix many desync sources
This pull request adds a cheat which disables the ride aging mechanic for ride the ride "value" only. Rides will still become more unreliable over time.
It's something I always wished was not in the game, but I realise that it was an intentional game mechanic, so I implemented this as a cheat.
I've tested it on mac as far as compilation and running. I'm not sure of the best way to actually test that it is working at runtime. Any suggestions ? Is there a way to read the actual value of the ride somewhere?
Related to:
#3812
#3473
https://openrct2.org/forums/topic/1074-guest-eventually-stop-riding/