changed functions to check smooth movements in BD engine
[rocksndiamonds.git] / src / game_bd / bd_colors.h
index fe7e00fd2c53c552e63fff48684c645c4a73681e..15f1e367b7a7bd4977d0e2c431c39914c810370d 100644 (file)
@@ -35,54 +35,100 @@ typedef enum _color_type
   GD_COLOR_TYPE_C64DTV = 2,
   GD_COLOR_TYPE_ATARI  = 3,
 
-  GD_COLOR_TYPE_UNKNOWN    /* should be the last one */
+  GD_COLOR_TYPE_UNKNOWN         // should be the last one
 } GdColorType;
 
-/* traditional c64 color indexes. */
-#define GD_COLOR_INDEX_BLACK           (0)
-#define GD_COLOR_INDEX_WHITE           (1)
-#define GD_COLOR_INDEX_RED             (2)
-#define GD_COLOR_INDEX_PURPLE          (4)
-#define GD_COLOR_INDEX_CYAN            (3)
-#define GD_COLOR_INDEX_GREEN           (5)
-#define GD_COLOR_INDEX_BLUE            (6)
-#define GD_COLOR_INDEX_YELLOW          (7)
-#define GD_COLOR_INDEX_ORANGE          (8)
-#define GD_COLOR_INDEX_BROWN           (9)
-#define GD_COLOR_INDEX_LIGHTRED                (10)
-#define GD_COLOR_INDEX_GRAY1           (11)
-#define GD_COLOR_INDEX_GRAY2           (12)
-#define GD_COLOR_INDEX_LIGHTGREEN      (13)
-#define GD_COLOR_INDEX_LIGHTBLUE       (14)
-#define GD_COLOR_INDEX_GRAY3           (15)
-
-#define GD_GDASH_BLACK                 (gd_gdash_color(GD_COLOR_INDEX_BLACK))
-#define GD_GDASH_WHITE                 (gd_gdash_color(GD_COLOR_INDEX_WHITE))
-#define GD_GDASH_RED                   (gd_gdash_color(GD_COLOR_INDEX_RED))
-#define GD_GDASH_PURPLE                        (gd_gdash_color(GD_COLOR_INDEX_PURPLE))
-#define GD_GDASH_CYAN                  (gd_gdash_color(GD_COLOR_INDEX_CYAN))
-#define GD_GDASH_GREEN                 (gd_gdash_color(GD_COLOR_INDEX_GREEN))
-#define GD_GDASH_BLUE                  (gd_gdash_color(GD_COLOR_INDEX_BLUE))
-#define GD_GDASH_YELLOW                        (gd_gdash_color(GD_COLOR_INDEX_YELLOW))
-#define GD_GDASH_ORANGE                        (gd_gdash_color(GD_COLOR_INDEX_ORANGE))
-#define GD_GDASH_BROWN                 (gd_gdash_color(GD_COLOR_INDEX_BROWN))
-#define GD_GDASH_LIGHTRED              (gd_gdash_color(GD_COLOR_INDEX_LIGHTRED))
-#define GD_GDASH_GRAY1                 (gd_gdash_color(GD_COLOR_INDEX_GRAY1))
-#define GD_GDASH_GRAY2                 (gd_gdash_color(GD_COLOR_INDEX_GRAY2))
-#define GD_GDASH_LIGHTGREEN            (gd_gdash_color(GD_COLOR_INDEX_LIGHTGREEN))
-#define GD_GDASH_LIGHTBLUE             (gd_gdash_color(GD_COLOR_INDEX_LIGHTBLUE))
-#define GD_GDASH_GRAY3                 (gd_gdash_color(GD_COLOR_INDEX_GRAY3))
-
-#define GD_GDASH_MIDDLEBLUE            (gd_gdash_color(16))
-
-#define GD_COLOR_INVALID               (0xFFFFFFFF)
-
-
-/* color */
+#define GD_DEFAULT_COLOR_TYPE                  GD_COLOR_TYPE_RGB
+
+// traditional c64 color indexes.
+#define GD_COLOR_INDEX_BLACK                   0
+#define GD_COLOR_INDEX_WHITE                   1
+#define GD_COLOR_INDEX_RED                     2
+#define GD_COLOR_INDEX_CYAN                    3
+#define GD_COLOR_INDEX_PURPLE                  4
+#define GD_COLOR_INDEX_GREEN                   5
+#define GD_COLOR_INDEX_BLUE                    6
+#define GD_COLOR_INDEX_YELLOW                  7
+#define GD_COLOR_INDEX_ORANGE                  8
+#define GD_COLOR_INDEX_BROWN                   9
+#define GD_COLOR_INDEX_LIGHTRED                        10
+#define GD_COLOR_INDEX_GRAY1                   11
+#define GD_COLOR_INDEX_GRAY2                   12
+#define GD_COLOR_INDEX_LIGHTGREEN              13
+#define GD_COLOR_INDEX_LIGHTBLUE               14
+#define GD_COLOR_INDEX_GRAY3                   15
+
+#define GD_GDASH_BLACK                         gd_gdash_color(GD_COLOR_INDEX_BLACK)
+#define GD_GDASH_WHITE                         gd_gdash_color(GD_COLOR_INDEX_WHITE)
+#define GD_GDASH_RED                           gd_gdash_color(GD_COLOR_INDEX_RED)
+#define GD_GDASH_CYAN                          gd_gdash_color(GD_COLOR_INDEX_CYAN)
+#define GD_GDASH_PURPLE                                gd_gdash_color(GD_COLOR_INDEX_PURPLE)
+#define GD_GDASH_GREEN                         gd_gdash_color(GD_COLOR_INDEX_GREEN)
+#define GD_GDASH_BLUE                          gd_gdash_color(GD_COLOR_INDEX_BLUE)
+#define GD_GDASH_YELLOW                                gd_gdash_color(GD_COLOR_INDEX_YELLOW)
+#define GD_GDASH_ORANGE                                gd_gdash_color(GD_COLOR_INDEX_ORANGE)
+#define GD_GDASH_BROWN                         gd_gdash_color(GD_COLOR_INDEX_BROWN)
+#define GD_GDASH_LIGHTRED                      gd_gdash_color(GD_COLOR_INDEX_LIGHTRED)
+#define GD_GDASH_GRAY1                         gd_gdash_color(GD_COLOR_INDEX_GRAY1)
+#define GD_GDASH_GRAY2                         gd_gdash_color(GD_COLOR_INDEX_GRAY2)
+#define GD_GDASH_LIGHTGREEN                    gd_gdash_color(GD_COLOR_INDEX_LIGHTGREEN)
+#define GD_GDASH_LIGHTBLUE                     gd_gdash_color(GD_COLOR_INDEX_LIGHTBLUE)
+#define GD_GDASH_GRAY3                         gd_gdash_color(GD_COLOR_INDEX_GRAY3)
+
+#define GD_GDASH_MIDDLEBLUE                    gd_gdash_color(16)
+
+#define GD_COLOR_INVALID                       0xFFFFFFFF
+
+#define GD_C64_COLOR(index)                    ((GD_COLOR_TYPE_C64 << 24) + (index))
+
+// palette numbers must match pointer array positions in source file
+#define GD_PALETTE_C64_VICE_NEW                        0
+#define GD_PALETTE_C64_VICE_OLD                        1
+#define GD_PALETTE_C64_VIDE_DEFAULT            2
+#define GD_PALETTE_C64_C64HQ                   3
+#define GD_PALETTE_C64_C64S                    4
+#define GD_PALETTE_C64_CCS64                   5
+#define GD_PALETTE_C64_FRODO                   6
+#define GD_PALETTE_C64_GODOT                   7
+#define GD_PALETTE_C64_PC64                    8
+#define GD_PALETTE_C64_RTADASH                 9
+
+#define GD_DEFAULT_PALETTE_C64                 GD_PALETTE_C64_VICE_NEW
+
+// palette numbers must match pointer array positions in source file
+#define GD_PALETTE_C64DTV_SPIFF                        0
+#define GD_PALETTE_C64DTV_MURRAY               1
+
+#define GD_DEFAULT_PALETTE_C64DTV              GD_PALETTE_C64DTV_SPIFF
+
+// palette numbers must match pointer array positions in source file
+#define GD_PALETTE_ATARI_BUILTIN               0
+#define GD_PALETTE_ATARI_BUILTIN_CONTRAST      1
+#define GD_PALETTE_ATARI_DEFAULT               2
+#define GD_PALETTE_ATARI_JAKUB                 3
+#define GD_PALETTE_ATARI_JAKUB_CONTRAST                4
+#define GD_PALETTE_ATARI_REAL                  5
+#define GD_PALETTE_ATARI_REAL_CONTRAST         6
+#define GD_PALETTE_ATARI_XFORMER               7
+
+#define GD_DEFAULT_PALETTE_ATARI               GD_PALETTE_ATARI_BUILTIN
+
+
+// color
 GdColor gd_c64_color(int index);
 GdColor gd_atari_color(int index);
 GdColor gd_c64dtv_color(int index);
+
+GdColor gd_atari_color_huesat(int hue, int sat);
+GdColor gd_c64dtv_color_huesat(int hue, int sat);
+
+unsigned int gd_color_get_r(GdColor color);
+unsigned int gd_color_get_g(GdColor color);
+unsigned int gd_color_get_b(GdColor color);
+
+GdColor gd_color_get_rgb(GdColor color);
 GdColor gd_color_get_from_rgb(int r, int g, int b);
+GdColor gd_color_get_from_hsv(double h, double s, double v);
 GdColor gd_color_get_from_string(const char *color);
 const char *gd_color_get_string(GdColor color);