diff --git a/lib/generate_functions.py b/lib/generate_functions.py index a1899e5..9155a4c 100755 --- a/lib/generate_functions.py +++ b/lib/generate_functions.py @@ -133,6 +133,10 @@ def c_to_zig_type(c: str) -> str: def ziggify_type(name: str, t: str, func_name: str) -> str: if func_name in IGNORE_C_TYPE: return t + + if func_name.endswith("Equals") and t == "c_int": + return "bool" + NO_STRINGS = ["data", "fileData", "compData"] single = [ @@ -218,6 +222,8 @@ def make_return_cast(func_name: str, source_type: str, dest_type: str, inner: st inner = f"@as([*][:0]{source_type[8:]}, @ptrCast({inner}))" if func_name in TRIVIAL_SIZE: return f"{inner}[0..@as(usize, @intCast(_len))]" + if func_name.endswith("Equals"): + return f"{inner} == 1" if source_type in ["[*c]const u8", "[*c]u8"]: return f"std.mem.span({inner})" diff --git a/lib/raymath.zig b/lib/raymath.zig index faf42e2..a9c717d 100644 --- a/lib/raymath.zig +++ b/lib/raymath.zig @@ -44,8 +44,8 @@ pub fn wrap(value: f32, min: f32, max: f32) f32 { return cdef.Wrap(value, min, max); } -pub fn floatEquals(x: f32, y: f32) i32 { - return @as(i32, cdef.FloatEquals(x, y)); +pub fn floatEquals(x: f32, y: f32) bool { + return cdef.FloatEquals(x, y) == 1; } pub fn vector2Zero() Vector2 { @@ -164,8 +164,8 @@ pub fn vector2ClampValue(v: Vector2, min: f32, max: f32) Vector2 { return cdef.Vector2ClampValue(v, min, max); } -pub fn vector2Equals(p: Vector2, q: Vector2) i32 { - return @as(i32, cdef.Vector2Equals(p, q)); +pub fn vector2Equals(p: Vector2, q: Vector2) bool { + return cdef.Vector2Equals(p, q) == 1; } pub fn vector2Refract(v: Vector2, n: Vector2, r: f32) Vector2 { @@ -320,8 +320,8 @@ pub fn vector3ClampValue(v: Vector3, min: f32, max: f32) Vector3 { return cdef.Vector3ClampValue(v, min, max); } -pub fn vector3Equals(p: Vector3, q: Vector3) i32 { - return @as(i32, cdef.Vector3Equals(p, q)); +pub fn vector3Equals(p: Vector3, q: Vector3) bool { + return cdef.Vector3Equals(p, q) == 1; } pub fn vector3Refract(v: Vector3, n: Vector3, r: f32) Vector3 { @@ -412,8 +412,8 @@ pub fn vector4Invert(v: Vector4) Vector4 { return cdef.Vector4Invert(v); } -pub fn vector4Equals(p: Vector4, q: Vector4) i32 { - return @as(i32, cdef.Vector4Equals(p, q)); +pub fn vector4Equals(p: Vector4, q: Vector4) bool { + return cdef.Vector4Equals(p, q) == 1; } pub fn matrixDeterminant(mat: Matrix) f32 { @@ -596,8 +596,8 @@ pub fn quaternionTransform(q: Quaternion, mat: Matrix) Quaternion { return cdef.QuaternionTransform(q, mat); } -pub fn quaternionEquals(p: Quaternion, q: Quaternion) i32 { - return @as(i32, cdef.QuaternionEquals(p, q)); +pub fn quaternionEquals(p: Quaternion, q: Quaternion) bool { + return cdef.QuaternionEquals(p, q) == 1; } pub fn matrixCompose(translation: Vector3, rotation: Quaternion, scale: Vector3) Matrix {