summaryrefslogtreecommitdiff
path: root/src/libs/graphics/cmap.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/graphics/cmap.h')
-rw-r--r--src/libs/graphics/cmap.h77
1 files changed, 77 insertions, 0 deletions
diff --git a/src/libs/graphics/cmap.h b/src/libs/graphics/cmap.h
new file mode 100644
index 0000000..f27f789
--- /dev/null
+++ b/src/libs/graphics/cmap.h
@@ -0,0 +1,77 @@
+//Copyright Paul Reiche, Fred Ford. 1992-2002
+
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef CMAP_H
+#define CMAP_H
+
+#include "libs/gfxlib.h"
+
+#define MAX_COLORMAPS 250
+
+// These are pertinent to colortable file format
+// We load colormaps as binary and parse them when needed
+#define PLUTVAL_BYTE_SIZE 3
+// Channel order in colormap tables
+#define PLUTVAL_RED 0
+#define PLUTVAL_GREEN 1
+#define PLUTVAL_BLUE 2
+
+#define NUMBER_OF_PLUTVALS 256
+// Size of the colormap in a colortable file
+#define PLUT_BYTE_SIZE (PLUTVAL_BYTE_SIZE * NUMBER_OF_PLUTVALS)
+
+#define FADE_NO_INTENSITY 0
+#define FADE_NORMAL_INTENSITY 255
+#define FADE_FULL_INTENSITY 510
+
+typedef struct NativePalette NativePalette;
+
+typedef struct tfb_colormap
+{
+ int index;
+ // Colormap index as the game sees it
+ int version;
+ // Version goes up every time the colormap changes. This may
+ // be due to SetColorMap() or at every transformation step
+ // of XFormColorMap(). Paletted TFB_Images track the last
+ // colormap version they were drawn with for optimization.
+ int refcount;
+ struct tfb_colormap *next;
+ // for spares linking
+ NativePalette *palette;
+} TFB_ColorMap;
+
+extern int GetFadeAmount (void);
+
+extern void InitColorMaps (void);
+extern void UninitColorMaps (void);
+
+extern void GetColorMapColors (Color *colors, TFB_ColorMap *);
+
+extern TFB_ColorMap * TFB_GetColorMap (int index);
+extern void TFB_ReturnColorMap (TFB_ColorMap *map);
+
+extern BOOLEAN XFormColorMap_step (void);
+
+// Native
+NativePalette* AllocNativePalette (void);
+void FreeNativePalette (NativePalette *);
+void SetNativePaletteColor (NativePalette *, int index, Color);
+Color GetNativePaletteColor (NativePalette *, int index);
+
+#endif /* CMAP_H */