rb_get_args is annoying

This commit is contained in:
Inori 2019-09-21 20:19:34 -04:00 committed by Inori
parent d63f9958a3
commit 392fe91fb5
2 changed files with 11 additions and 4 deletions

View file

@ -174,8 +174,15 @@ RB_METHOD(kernelLoadData)
RB_UNUSED_PARAM; RB_UNUSED_PARAM;
VALUE filename; VALUE filename;
bool raw = false; VALUE raw;
rb_get_args(argc, argv, "S|b", &filename, &raw RB_ARG_END); rb_scan_args(argc, argv, "11", &filename, &raw);
SafeStringValue(filename);
// There's gotta be an easier way to do this
if (raw != Qnil && raw != Qtrue && raw != Qfalse)
{
rb_raise(rb_eTypeError, "load_data: second argument must be Boolean");
}
// Until a faster method for getting RGSSAD data is // Until a faster method for getting RGSSAD data is
// written (could just copy RMXP, keeping stuff in // written (could just copy RMXP, keeping stuff in
@ -194,7 +201,7 @@ RB_METHOD(kernelLoadData)
rb_funcall(f, rb_intern("close"), 0); rb_funcall(f, rb_intern("close"), 0);
return ret; return ret;
} }
return kernelLoadDataInt(RSTRING_PTR(filename), true, raw); return kernelLoadDataInt(RSTRING_PTR(filename), true, RTEST(raw));
} }
RB_METHOD(kernelSaveData) RB_METHOD(kernelSaveData)

View file

@ -248,7 +248,7 @@ RB_METHOD(MiniFFI_call)
break; break;
case _T_BOOL: case _T_BOOL:
lParam = (rb_ary_entry(args, i) == Qtrue); lParam = RTEST(rb_ary_entry(args, i));
break; break;
case _T_NUMBER: case _T_INTEGER: default: case _T_NUMBER: case _T_INTEGER: default: