Rational errors fix #239
No reviewers
Labels
No Label
RGSS accuracy
bug
compilation
discussion
documentation
duplicate
enhancement
invalid
performance issue
port request
question
ruby incompatibility
wontfix
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: MapleShrine/mkxp#239
Loading…
Reference in 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 itsx
attribute? 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.
Step 1:
From your project repository, check out a new branch and test the changes.Step 2:
Merge the changes and update on Forgejo.