From 39385a455c64c84fb4ac2ac841ce307c638d8e2d Mon Sep 17 00:00:00 2001 From: rexim Date: Mon, 18 Mar 2024 01:11:08 +0700 Subject: Factor out HSV_To_RGB function --- game.adb | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/game.adb b/game.adb index 9af766c..34ac5fb 100644 --- a/game.adb +++ b/game.adb @@ -51,6 +51,14 @@ procedure Game is type HSV_Comp is (Hue, Sat, Value); type HSV is array (HSV_Comp) of Byte; + function HSV_To_RGB(C: HSV) return Color is + H: constant C_Float := C_Float(C(Hue))/255.0*360.0; + S: constant C_Float := C_Float(C(Sat))/255.0; + V: constant C_Float := C_Float(C(Value))/255.0; + begin + return Color_From_HSV(H, S, V); + end; + Palette_RGB: array (Palette) of Color := [others => (A => 255, others => 0)]; Palette_HSV: array (Palette) of HSV := [others => [others => 0]]; @@ -1036,12 +1044,12 @@ begin if Is_Key_Down(Keys(Up)) then Palette_HSV(Palette_Editor_Choice)(Palette_Editor_Component) := Palette_HSV(Palette_Editor_Choice)(Palette_Editor_Component) + 1; - Palette_RGB(Palette_Editor_Choice) := Color_From_HSV(C_Float(Palette_HSV(Palette_Editor_Choice)(Hue))/255.0*360.0, C_Float(Palette_HSV(Palette_Editor_Choice)(Sat))/255.0, C_Float(Palette_HSV(Palette_Editor_Choice)(Value))/255.0); + Palette_RGB(Palette_Editor_Choice) := HSV_To_RGB(Palette_HSV(Palette_Editor_Choice)); end if; if Is_Key_Down(Keys(Down)) then Palette_HSV(Palette_Editor_Choice)(Palette_Editor_Component) := Palette_HSV(Palette_Editor_Choice)(Palette_Editor_Component) - 1; - Palette_RGB(Palette_Editor_Choice) := Color_From_HSV(C_Float(Palette_HSV(Palette_Editor_Choice)(Hue))/255.0*360.0, C_Float(Palette_HSV(Palette_Editor_Choice)(Sat))/255.0, C_Float(Palette_HSV(Palette_Editor_Choice)(Value))/255.0); + Palette_RGB(Palette_Editor_Choice) := HSV_To_RGB(Palette_HSV(Palette_Editor_Choice)); end if; else if Is_Key_Pressed(Keys(Down)) then -- cgit v1.2.3