Rational errors fix #239
No reviewers
Labels
No labels
RGSS accuracy
bug
compilation
discussion
documentation
duplicate
enhancement
invalid
performance issue
port request
question
ruby incompatibility
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: MapleShrine/mkxp#239
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "pk-2000/test-RUBY_T_RATIONAL"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
@ -251,3 +251,4 @@rb_raise(rb_eTypeError, "Argument %d: Expected fixnum(got 0x%x)", argPos, rb_type(arg));}}Have you tested this?
FIX2INT()only works with fixnums.@ -251,3 +251,4 @@rb_raise(rb_eTypeError, "Argument %d: Expected fixnum(got 0x%x)", argPos, rb_type(arg));}}Yes,
the only games that I encountered this problem are some rgss1 games,
that use a plugin to determine the characters position.
float value (X,Y position of the character) & rational value (expected X,Y new value)
The new value is determined from the move direction of the character.
@ -251,3 +251,4 @@rb_raise(rb_eTypeError, "Argument %d: Expected fixnum(got 0x%x)", argPos, rb_type(arg));}}Yeah, RGSS3 also supports rational numbers but your change may only appear to work. Could you please try something like
Rect.new(Rational(10, 10), 0, 0, 0)and check the value of itsxattribute? I can't compile mkxp at the moment and there's no test suite or build bot.IMHO the type check isn't necessary anyway.
*out = NUM2INT(arg);is good enough (andrb_rescue()if the custom error message should be kept). This would add support for complex numbers too:Rect.new(Complex(10, 0), 0, 0, 0).@ -251,3 +251,4 @@rb_raise(rb_eTypeError, "Argument %d: Expected fixnum(got 0x%x)", argPos, rb_type(arg));}}Can you give another test?
My Falcon-mkxp has unlocked resolution, so the x result will always deffer, depending on the game resolution & monitor resolution & position of the window.
https://ruby-doc.org/core-2.5.3/Rational.html
and the only ones that could not resolve (if I remember correctly) were the examples with half keyword arguments e.g.
Rational(25, 100).round(1, half: :up) #=> (3/10)
@ -251,3 +251,4 @@rb_raise(rb_eTypeError, "Argument %d: Expected fixnum(got 0x%x)", argPos, rb_type(arg));}}X should always be 1. But it can be tested with any other integer attribute:
@ -251,3 +251,4 @@rb_raise(rb_eTypeError, "Argument %d: Expected fixnum(got 0x%x)", argPos, rb_type(arg));}}Thank you.
I created 2 events to call the test scripts and both of them
return positive random(?) values with 8 digits(!) instead of returning x=1 & s=5.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.Merge
Merge the changes and update on Forgejo.Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.