summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorarngo <[email protected]>2022-01-23 19:09:56 -0500
committerarngo <[email protected]>2022-01-23 19:09:56 -0500
commitae819b4f85218c37496a763a1ee3ff6161e87da4 (patch)
tree75181250a581b98f2445d52a57a7d028c1b11293 /src
parent39b6b5a82186eec467ff9d9392e3a35e97bf726f (diff)
downloadmruby-raylib-ae819b4f85218c37496a763a1ee3ff6161e87da4.tar.gz
mruby-raylib-ae819b4f85218c37496a763a1ee3ff6161e87da4.zip
fix creating a new rectangle in mrb_Rectangle_get_collision_rec
Diffstat (limited to 'src')
-rw-r--r--src/raylib.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/raylib.c b/src/raylib.c
index 3deb6a7..ce33713 100644
--- a/src/raylib.c
+++ b/src/raylib.c
@@ -684,15 +684,16 @@ mrb_Circle_collide_with_rec(mrb_state* mrb, mrb_value self) {
static mrb_value
mrb_Rectangle_get_collision_rec(mrb_state* mrb, mrb_value self) {
mrb_value rec_obj;
- mrb_value collision_rec_obj;
mrb_get_args(mrb, "o", &rec_obj);
Rectangle *rec_self = DATA_GET_PTR(mrb, self, &Rectangle_type, Rectangle);
Rectangle *rec_other = DATA_GET_PTR(mrb, rec_obj, &Rectangle_type, Rectangle);
- Rectangle collision_rec = GetCollisionRec(*rec_self, *rec_other);
+ Rectangle *collision_rec = (Rectangle *)mrb_malloc(mrb, sizeof(Rectangle));
+ *collision_rec = GetCollisionRec(*rec_self, *rec_other);
- mrb_data_init(collision_rec_obj, &collision_rec, &Rectangle_type);
- return collision_rec_obj;
+ struct RClass *c = mrb_module_get(mrb, "Raylib");
+ struct RClass *rec_class = mrb_class_get_under(mrb, c, Rectangle_type.struct_name);
+ return mrb_obj_value(Data_Wrap_Struct(mrb, rec_class, &Rectangle_type, collision_rec));
}
static mrb_value