From 404bb4948c93991a26869b6c40dd975497cafb47 Mon Sep 17 00:00:00 2001 From: Brendan Hansen Date: Tue, 8 Feb 2022 08:53:06 -0600 Subject: [PATCH] cleaned up enum editor code --- src/entity/editor.onyx | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/entity/editor.onyx b/src/entity/editor.onyx index efedda2..3cdb998 100644 --- a/src/entity/editor.onyx +++ b/src/entity/editor.onyx @@ -313,10 +313,17 @@ editor_draw :: () { y += 20; checkbox_value := (value & it.value) != 0; if draw_checkbox(.{x, y, w, 20}, ^checkbox_value, it.name, increment=~~y) { - println(checkbox_value); - - if !checkbox_value do *cast(^u32) v.data = ~~(value & ~it.value); - else do *cast(^u32) v.data = ~~(value | it.value); + switch enum_info.backing_type { + case i8, u8 do set_value(u8); + case i16, u16 do set_value(u16); + case i32, u32 do set_value(u32); + case i64, u64 do set_value(u64); + } + + set_value :: macro (T: type_expr) { + if !checkbox_value do *cast(^T) v.data = ~~(value & ~it.value); + else do *cast(^T) v.data = ~~(value | it.value); + } } } } else { -- 2.25.1