chiark / gitweb /
Update upstream source from tag 'upstream/1.18'
[chroma-debian.git] / graphics.h
diff --git a/graphics.h b/graphics.h
new file mode 100644 (file)
index 0000000..8f98509
--- /dev/null
@@ -0,0 +1,130 @@
+/*  
+    graphics.h
+
+    Copyright (C) 2010-2019 Amf
+
+    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
+*/
+
+#define GRAPHICS_DEFAULT    "chroma-zen.chroma"
+
+/* Flags for pieces */
+#define GRAPHICS_BEVEL          1
+#define GRAPHICS_BEVEL_SHADOW   2
+#define GRAPHICS_BEVEL16        4
+#define GRAPHICS_RANDOM         8
+#define GRAPHICS_KEY            16
+#define GRAPHICS_MOVER          32
+#define GRAPHICS_TILE           64
+#define GRAPHICS_ANIMATE        128
+#define GRAPHICS_LEVEL          256
+#define GRAPHICS_CLONE          512
+#define GRAPHICS_SCALE          1024
+
+/* Flags for set */
+#define GRAPHICS_CURSES         1
+#define GRAPHICS_ZORDER         2
+#define GRAPHICS_BACKGROUND     4
+#define GRAPHICS_TRANSLATE      8
+
+#define BEVEL_BASE              0x10000
+#define BEVEL_L                (BEVEL_BASE * 1)
+#define BEVEL_R                (BEVEL_BASE * 2)
+#define BEVEL_U                (BEVEL_BASE * 4)
+#define BEVEL_D                (BEVEL_BASE * 8)
+#define BEVEL_TL               (BEVEL_BASE * 16)
+#define BEVEL_TR               (BEVEL_BASE * 32)
+#define BEVEL_BL               (BEVEL_BASE * 64)
+#define BEVEL_BR               (BEVEL_BASE * 128)
+#define BEVEL_ALL              (BEVEL_BASE * 255)
+
+#define SHADOW_BASE            0x1000000
+#define SHADOW_TOP_LEFT         1
+#define SHADOW_TOP              2
+#define SHADOW_TOP_RIGHT        4
+#define SHADOW_LEFT             8
+#define SHADOW_MIDDLE           16
+#define SHADOW_RIGHT            32
+#define SHADOW_BOTTOM_LEFT      64
+#define SHADOW_BOTTOM           128
+#define SHADOW_BOTTOM_RIGHT     256
+
+#define IMAGE_PIECE             0
+#define IMAGE_SHADOW            1
+#define IMAGE_SMALL             2
+#define IMAGE_MAX               3
+
+#define SIZE_PIECES             1
+#define SIZE_SMALL              2
+
+struct graphicssize
+{
+    int x;
+    int y;
+    int flags;
+    struct graphicssize *next;
+};
+
+struct shadow
+{
+    int x;
+    int y;
+    int z;
+    int p;
+    int flag;
+    int shadow;
+    struct shadow *next;
+    struct shadow *nextordered;
+    struct shadow *previousordered;
+};
+
+
+struct graphics
+{
+    int size_x;
+    int size_y;
+    int small_size_x;
+    int small_size_y;
+    int flags;
+    char *title;
+    int background[3];
+    int level;
+    int levels;
+
+    int image_flags[PIECE_MAX];
+    SDL_Surface *image[PIECE_MAX][3];
+
+    int clone[PIECE_MAX];
+    int shadow_z[PIECE_MAX];
+    int shadow_offset_x[PIECE_MAX][10];
+    int shadow_offset_y[PIECE_MAX][10];
+    int shadow_start_x[PIECE_MAX][10];
+    int shadow_start_y[PIECE_MAX][10];
+    int shadow_width[PIECE_MAX][10];
+    int shadow_height[PIECE_MAX][10];
+    int shadow_flags[PIECE_MAX];
+
+    struct graphicssize *sizes;
+    struct shadow *shadows;
+
+};
+
+void graphics_init();
+struct graphics* graphics_load(char *filename, int partial);
+void graphics_delete(struct graphics*);
+struct menu* graphics_menu();
+SDL_Surface *graphics_loadimage(char *filename);
+void graphics_reload();
+