Fix 32 bit interger overflow handling #9
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The current way that
handleBigInt()works does not match how true 32bit integer overflow in CS code works when casting a large number to a 32bit integer.This patch corrects this and removes the need for the BigInteger library.
You can see a "frustrating" example of this on XianjiTV's vod at https://www.twitch.tv/videos/921493868 around1 hour 5mins into the vod.
For reference, his Game ID was: 273414764 and the predictor said his Mine Chests were:
What he actually got in game, and what this patch corrects the predictor to show is:
I think anyone with a seed that overflows a 32 bit signed integer, or in the case of mine chests, is larger than 4194303, they will "buffer overflow" and the predictor I believe will show the incorrect results for one or more mine chests.