Skip to content
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

Money Input Prompt break on certain values #7729

Closed
Broxzier opened this issue Jun 25, 2018 · 6 comments
Closed

Money Input Prompt break on certain values #7729

Broxzier opened this issue Jun 25, 2018 · 6 comments
Assignees
Labels
bug Something went wrong.

Comments

@Broxzier
Copy link
Member

Broxzier commented Jun 25, 2018

OS: Windows 10
Version: 0.2.0
Commit/Build: 9e052c7

Two issues:

  1. Setting a ride's price to something ignores the decimal part for values over 3 when the decimal part is .10 (3.10, 4.10, 5.10, etc..). Other decimal values seem to work fine.
  2. Entering high values in the 'Add/set money' cheat gives back a seemingly random amount. For example, entering 100,000.00 gives you 34,464.00 cash.
@Broxzier Broxzier added the bug Something went wrong. label Jun 25, 2018
@Broxzier Broxzier changed the title Money Input Prompt Money Input Prompt break on certain values Jun 25, 2018
@jmyre1999
Copy link

Is this bug currently being worked on by anybody?

@Gymnasiast
Copy link
Member

@jmyre1999 No, as far as I know, nobody is working on it. If you would like to work on it, please do!

@jmyre1999
Copy link

@Gymnasiast I tried to replicate part 1 and it seemed to work as intended

@joshtucker132
Copy link
Contributor

I am working with @jmyre1999 on this and I'm having issues with floating point division when trying to fix part 1.

auto number = std::stod(processedString, nullptr);
number /= (currencyDesc->rate / 10.0);
auto whole = static_cast<uint16_t>(number);
auto fraction = static_cast<uint8_t>((number - whole) * 100);

For some entered money values (ex. 6.10), number evaluates to 6.099999. This causes fraction to evaluate to 0 instead of .1. I have tried multiple ways to round number to two decimal places (ceiling/floor functions, casting to int and dividing by 100.0, etc.) but no method works as expected. Any particular reason for this error? Even simple division like 610 / 100.0 evaluates to 6.099999 which seems odd.

@ZehMatt
Copy link
Member

ZehMatt commented Apr 2, 2019

Have a look at this example http://cpp.sh/9ao5v you want to use long double and suffix L.

@joshtucker132
Copy link
Contributor

auto rounded = (static_cast<long>(number * 100 + .5) - (whole * 100)) / 100.0; auto fraction = static_cast<uint8_t>(rounded * 100);

@ZehMatt I tried to implement your solution, but it still did not give me the rounded value that I wanted. I found a work-around by performing the subtraction before the division. It is a little messy but fixes the issue.

jmyre1999 added a commit to Nazey/Team-10-OpenRCT2 that referenced this issue Apr 3, 2019
joshtucker132 pushed a commit to Nazey/Team-10-OpenRCT2 that referenced this issue Apr 8, 2019
AaronVanGeffen added a commit that referenced this issue Jul 10, 2019
- Feature: [#485] Rides can now be simulated with ghost trains during construction.
- Feature: [#1260] Option for making giant screenshots have a transparent background.
- Feature: [#2339] Find local servers automatically when fetching servers.
- Feature: [#7296] Allow assigning a keyboard shortcut for the scenery picker.
- Feature: [#8029] Add the Hungarian Forint (HUF) to the list of available currencies.
- Feature: [#8481] Multi-threaded rendering.
- Feature: [#8558] Guest debugging tab.
- Feature: [#8659] Banner and sign texts are now shown in tooltips.
- Feature: [#8687] New multiplayer toolbar icon showing network status with reconnect option.
- Feature: [#8791] Improved tile element flag manipulation in Tile Inspector.
- Feature: [#8919] Allow setting ride price from console.
- Feature: [#8963] Add missing Czech letters to sprite font, use sprite font for Czech.
- Feature: [#9154] Change map toolbar icon with current viewport rotation.
- Change: [#7877] Files are now sorted in logical rather than dictionary order.
- Change: [#8427] Ghost elements now show up as white on the mini-map.
- Change: [#8688] Move common actions from debug menu into cheats menu.
- Change: [#9428] Increase maximum height of the Hypercoaster to RCT1 limits.
- Fix: [#2294] Clients crashing the server with invalid object selection.
- Fix: [#4568, #5896] Incorrect fences removed when building a tracked ride through
- Fix: [#5103] OpenGL: ride track preview not rendered.
- Fix: [#5889] Giant screenshot does not work while using OpenGL renderer.
- Fix: [#5579] Network desync immediately after connecting.
- Fix: [#5893] Looking at guest window tabs other than the main tab eventually causes assertion.
- Fix: [#5905] Urban Park merry-go-round has entrance and exit swapped (original bug).
- Fix: [#6006] Objects higher than 6 metres are considered trees (original bug).
- Fix: [#7039] Map window not rendering properly when using OpenGL.
- Fix: [#7045] Theme window's colour pickers not drawn properly on OpenGL.
- Fix: [#7323] Tunnel entrances not rendering in 'highlight path issues' mode if they have benches inside.
- Fix: [#7729] Money Input Prompt breaks on certain values.
- Fix: [#7884] Unfinished preserved rides can be demolished with quick demolish.
- Fix: [#7913] RCT1/RCT2 title sequence timing is off.
- Fix: [#7700, #8079, #8969] Crash when unloading buggy custom rides.
- Fix: [#7829] Rotated information kiosk can cause 'unreachable' messages.
- Fix: [#7878] Scroll shortcut keys ignore SHIFT/CTRL/ALT modifiers.
- Fix: [#8219] Faulty folder recreation in "save" folder.
- Fix: [#8480, #8535] Crash when mirroring track design.
- Fix: [#8507] Incorrect change in vehicle rolling direction.
- Fix: [#8537] Imported RCT1 rides/shops are all numbered 1.
- Fix: [#8553] Scenery removal tool removes fences and paths while paused.
- Fix: [#8598] Taking screenshots fails with some park names.
- Fix: [#8602] Wall piece collision detection deviates from vanilla
- Fix: [#8649] Setting date does not work in multiplayer.
- Fix: [#8873] Potential crash when placing footpaths.
- Fix: [#8882] Submarine Ride does not count as indoors (original bug).
- Fix: [#8900] Peep tracking is not synchronized.
- Fix: [#8909] Potential crash when invoking game actions as server.
- Fix: [#8947] Detection of AVX2 support.
- Fix: [#8988] Character sprite lookup noticeably slows down drawing.
- Fix: [#9000] Show correct error message if not enough money available.
- Fix: [#9067] Land/water tools show prices when money is disabled.
- Fix: [#9124] Disconnected clients can crash the server.
- Fix: [#9132] System file browser cannot open SV4 files.
- Fix: [#9152] Spectators can modify ride colours.
- Fix: [#9202] Artefacts show when changing ride type as client or using in-game console.
- Fix: [#9240] Crash when passing directory instead of save file.
- Fix: [#9245] Headless servers apply Discord Rich Presence.
- Fix: [#9293] Issue with the native load/save dialog.
- Fix: [#9322] Peep crashing the game trying to find a ride to look at.
- Fix: [#9324] Crash trying to remove invalid footpath scenery.
- Fix: [#9402] Ad campaigns disappear when you save and load the game.
- Fix: [#9411] Ad campaigns end too soon.
- Fix: [#9476] Running `simulate` command on park yields `Completed: (null)`.
- Fix: [#9520] Time Twister object artdec29 conversion problem.
- Fix: Guests eating popcorn are drawn as if they're eating pizza.
- Fix: The arbitrary ride type and vehicle dropdown lists are ordered case-sensitively.
- Improved: [#6116] Expose colour scheme for track elements in the tile inspector.
- Improved: Allow the use of numpad enter key for console and chat.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something went wrong.
Projects
None yet
Development

No branches or pull requests

5 participants