1 /***********************************************************
2 * Rocks'n'Diamonds -- McDuffin Strikes Back! *
3 *----------------------------------------------------------*
4 * (c) 1995-98 Artsoft Entertainment *
8 * phone: ++49 +521 290471 *
9 * email: aeglos@valinor.owl.de *
10 *----------------------------------------------------------*
12 ***********************************************************/
30 /* default name for empty highscore entry */
31 #define EMPTY_PLAYER_NAME "no name"
33 /* default name for unknown player names */
34 #define ANONYMOUS_NAME "anonymous"
36 /* default name for new levels */
37 #define NAMELESS_LEVEL_NAME "nameless level"
39 /* definitions for game sub-directories */
41 #define RO_GAME_DIR "."
45 #define RW_GAME_DIR "."
48 #define RO_BASE_PATH RO_GAME_DIR
49 #define RW_BASE_PATH RW_GAME_DIR
51 #define GRAPHICS_DIRECTORY "graphics"
52 #define SOUNDS_DIRECTORY "sounds"
53 #define LEVELS_DIRECTORY "levels"
54 #define TAPES_DIRECTORY "tapes"
55 #define SCORES_DIRECTORY "scores"
57 /* areas in bitmap PIX_DOOR */
58 /* meaning in PIX_DB_DOOR: (3 PAGEs)
59 PAGEX1: 1. buffer for DOOR_1
60 PAGEX2: 2. buffer for DOOR_1
61 PAGEX3: buffer for animations
64 #define DOOR_GFX_PAGESIZE (gfx.dxsize)
65 #define DOOR_GFX_PAGEX1 (0 * DOOR_GFX_PAGESIZE)
66 #define DOOR_GFX_PAGEX2 (1 * DOOR_GFX_PAGESIZE)
67 #define DOOR_GFX_PAGEX3 (2 * DOOR_GFX_PAGESIZE)
68 #define DOOR_GFX_PAGEX4 (3 * DOOR_GFX_PAGESIZE)
69 #define DOOR_GFX_PAGEX5 (4 * DOOR_GFX_PAGESIZE)
70 #define DOOR_GFX_PAGEX6 (5 * DOOR_GFX_PAGESIZE)
71 #define DOOR_GFX_PAGEX7 (6 * DOOR_GFX_PAGESIZE)
72 #define DOOR_GFX_PAGEX8 (7 * DOOR_GFX_PAGESIZE)
73 #define DOOR_GFX_PAGEY1 (0)
74 #define DOOR_GFX_PAGEY2 (gfx.dysize)
78 char *filename; /* level series single directory name */
79 char *fullpath; /* complete path relative to level directory */
80 char *basepath; /* absolute base path of level directory */
81 char *name; /* level series name, as displayed on main screen */
82 char *name_short; /* optional short name for level selection screen */
83 char *name_sorting; /* optional sorting name for correct level sorting */
84 char *author; /* level series author name levels without author */
85 char *imported_from; /* optional comment for imported level series */
86 int levels; /* number of levels in level series */
87 int first_level; /* first level number (to allow start with 0 or 1) */
88 int last_level; /* last level number (automatically calculated) */
89 int sort_priority; /* sort levels by 'sort_priority' and then by name */
90 boolean level_group; /* directory contains more level series directories */
91 boolean parent_link; /* entry links back to parent directory */
92 boolean user_defined; /* user defined levels are stored in home directory */
93 boolean readonly; /* readonly levels can not be changed with editor */
94 int color; /* color to use on selection screen for this level */
95 char *class_desc; /* description of level series class */
96 int handicap_level; /* number of the lowest unsolved level */
97 int cl_first; /* internal control field for "choose level" screen */
98 int cl_cursor; /* internal control field for "choose level" screen */
100 struct LevelDirInfo *node_parent; /* parent level directory info */
101 struct LevelDirInfo *node_group; /* level group sub-directory info */
102 struct LevelDirInfo *next; /* next level series structure node */
106 /* ========================================================================= */
107 /* exported variables */
108 /* ========================================================================= */
110 extern struct ProgramInfo program;
111 extern struct OptionInfo options;
112 extern struct VideoSystemInfo video;
113 extern struct AudioSystemInfo audio;
114 extern struct GfxInfo gfx;
116 extern struct LevelDirInfo *leveldir_first;
117 extern struct LevelDirInfo *leveldir_current;
119 extern Display *display;
120 extern Visual *visual;
122 extern Colormap cmap;
124 extern DrawWindow window;
125 extern DrawBuffer backbuffer;
126 extern DrawBuffer drawto;
128 extern int button_status;
129 extern boolean motion_status;
131 extern int redraw_mask;
132 extern int redraw_tiles;
134 extern int FrameCounter;
136 #endif /* LIBGAME_H */