steed/src/sdl-instead/themes.h

165 lines
3.0 KiB
C

#ifndef __THEMES_INCLUDED_H
#define __THEMES_INCLUDED_H
#include "graphics.h"
#include "sound.h"
#define DEFAULT_THEME "steed"
#ifndef THEMES_PATH
#define THEMES_PATH "./themes"
#endif
#define THEME_FILE "theme.ini"
struct game_theme {
float scale;
int w;
int h;
int gfx_scalable;
color_t bgcol;
char *bg_name;
img_t bg;
char *use_name;
char *cursor_name;
int cur_x;
int cur_y;
img_t use;
img_t cursor;
int pad;
int win_align;
int win_x;
int win_y;
int win_w;
int win_h;
char *font_name;
int font_size;
float font_height;
fnt_t font;
int gfx_x;
int gfx_y;
int max_scene_w;
int max_scene_h;
char *a_up_name;
char *a_down_name;
img_t a_up;
img_t a_down;
int a_up_x; int a_up_y;
int a_down_x; int a_down_y;
color_t fgcol;
color_t lcol;
color_t acol;
int inv_x;
int inv_y;
int inv_w;
int inv_h;
color_t icol;
color_t ilcol;
color_t iacol;
char *inv_font_name;
int inv_font_size;
float inv_font_height;
fnt_t inv_font;
char *inv_a_up_name;
char *inv_a_down_name;
img_t inv_a_up;
img_t inv_a_down;
int inv_a_up_x; int inv_a_up_y;
int inv_a_down_x; int inv_a_down_y;
// int lstyle;
// int ilstyle;
color_t menu_bg;
color_t menu_fg;
color_t border_col;
color_t menu_link;
color_t menu_alink;
int menu_alpha;
int border_w;
char *menu_font_name;
int menu_font_size;
float menu_font_height;
fnt_t menu_font;
char *menu_button_name;
img_t menu_button;
int menu_button_x;
int menu_button_y;
int gfx_mode;
int inv_mode;
char *click_name;
void *click;
int xoff;
int yoff;
int changed;
};
#define CHANGED_FONT 1
#define CHANGED_IFONT 2
#define CHANGED_MFONT 4
#define CHANGED_BG 8
#define CHANGED_CLICK 0x10
#define CHANGED_CURSOR 0x20
#define CHANGED_USE 0x40
#define CHANGED_UP 0x80
#define CHANGED_DOWN 0x100
#define CHANGED_IUP 0x200
#define CHANGED_IDOWN 0x400
#define CHANGED_BUTTON 0x800
#define CHANGED_ALL 0xffff
struct theme {
char *path;
char *name;
char *dir;
};
extern struct theme *themes;
extern int themes_nr;
extern char *curtheme_dir;
extern struct game_theme game_theme;
extern struct game_theme game_theme_unscaled;
extern int game_default_theme(void);
extern int game_theme_select(const char *name);
extern int themes_lookup(const char *path);
extern int themes_rename(void);
extern int game_theme_load(const char *name);
extern int game_theme_init(void);
extern int game_theme_free(void);
extern int game_theme_optimize(void);
extern int game_theme_update(void);
extern int theme_load(const char *name);
extern char *game_local_themes_path(void);
extern int theme_img_scale(img_t *p);
extern int theme_relative;
#define GFX_MODE_FLOAT 0
#define GFX_MODE_FIXED 1
#define GFX_MODE_EMBEDDED 2
#define GFX_MODE_DIRECT 3
#define INV_MODE_DISABLED -1
#define INV_MODE_VERT 0
#define INV_MODE_HORIZ 1
#define INV_MODE(v) ((v)&0xff)
#define INV_ALIGN(v) ((v)>>8)
#define INV_ALIGN_SET(v) ((v)<<8)
#define DIRECT_MODE (game_theme.gfx_mode == GFX_MODE_DIRECT)
#define SCALABLE_THEME (game_theme.gfx_scalable)
#endif