diff options
| author | arngo <[email protected]> | 2022-01-23 19:09:56 -0500 |
|---|---|---|
| committer | arngo <[email protected]> | 2022-01-23 19:09:56 -0500 |
| commit | ae819b4f85218c37496a763a1ee3ff6161e87da4 (patch) | |
| tree | 75181250a581b98f2445d52a57a7d028c1b11293 /src | |
| parent | 39b6b5a82186eec467ff9d9392e3a35e97bf726f (diff) | |
| download | mruby-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.c | 9 |
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 |
