projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rnd-20050724-1-src
[rocksndiamonds.git]
/
src
/
libgame
/
system.h
diff --git
a/src/libgame/system.h
b/src/libgame/system.h
index d05943775b1e7de7aba3bf502239588bbae01ae4..95c18af1076f911591faa3db707061bd4489d01f 100644
(file)
--- a/
src/libgame/system.h
+++ b/
src/libgame/system.h
@@
-55,10
+55,10
@@
#define DEFAULT_KEY_DOWN KSYM_Down
#if defined(PLATFORM_MACOSX)
#define DEFAULT_KEY_SNAP KSYM_Control_L
#define DEFAULT_KEY_DOWN KSYM_Down
#if defined(PLATFORM_MACOSX)
#define DEFAULT_KEY_SNAP KSYM_Control_L
-#define DEFAULT_KEY_
BOMB
KSYM_KP_Enter
+#define DEFAULT_KEY_
DROP
KSYM_KP_Enter
#else
#else
-#define DEFAULT_KEY_SNAP KSYM_
Shift
_L
-#define DEFAULT_KEY_
BOMB KSYM_Shift
_R
+#define DEFAULT_KEY_SNAP KSYM_
Control
_L
+#define DEFAULT_KEY_
DROP KSYM_Control
_R
#endif
#define DEFAULT_KEY_OKAY KSYM_Return
#define DEFAULT_KEY_CANCEL KSYM_Escape
#endif
#define DEFAULT_KEY_OKAY KSYM_Return
#define DEFAULT_KEY_CANCEL KSYM_Escape
@@
-99,13
+99,19
@@
#define BUTTON_1 4
#define BUTTON_2 5
#define BUTTON_1 4
#define BUTTON_2 5
-/* values for move direction and special "button" key bitmasks */
+/* values for move direction
s
and special "button" key bitmasks */
#define MV_NO_MOVING 0
#define MV_LEFT (1 << MV_BIT_LEFT)
#define MV_RIGHT (1 << MV_BIT_RIGHT)
#define MV_UP (1 << MV_BIT_UP)
#define MV_DOWN (1 << MV_BIT_DOWN)
#define MV_NO_MOVING 0
#define MV_LEFT (1 << MV_BIT_LEFT)
#define MV_RIGHT (1 << MV_BIT_RIGHT)
#define MV_UP (1 << MV_BIT_UP)
#define MV_DOWN (1 << MV_BIT_DOWN)
+#define MV_HORIZONTAL (MV_LEFT | MV_RIGHT)
+#define MV_VERTICAL (MV_UP | MV_DOWN)
+#define MV_ALL_DIRECTIONS (MV_LEFT | MV_RIGHT | MV_UP | MV_DOWN)
+#define MV_ANY_DIRECTION (MV_ALL_DIRECTIONS)
+#define MV_NO_DIRECTIONS (MV_NO_MOVING)
+
#define KEY_BUTTON_1 (1 << BUTTON_1)
#define KEY_BUTTON_2 (1 << BUTTON_2)
#define KEY_MOTION (MV_LEFT | MV_RIGHT | MV_UP | MV_DOWN)
#define KEY_BUTTON_1 (1 << BUTTON_1)
#define KEY_BUTTON_2 (1 << BUTTON_2)
#define KEY_MOTION (MV_LEFT | MV_RIGHT | MV_UP | MV_DOWN)
@@
-116,6
+122,11
@@
(x) == MV_RIGHT ? MV_BIT_RIGHT : \
(x) == MV_UP ? MV_BIT_UP : MV_BIT_DOWN)
(x) == MV_RIGHT ? MV_BIT_RIGHT : \
(x) == MV_UP ? MV_BIT_UP : MV_BIT_DOWN)
+#define MV_DIR_OPPOSITE(x) ((x) == MV_LEFT ? MV_RIGHT : \
+ (x) == MV_RIGHT ? MV_LEFT : \
+ (x) == MV_UP ? MV_DOWN : \
+ (x) == MV_DOWN ? MV_UP : MV_NO_MOVING)
+
/* values for animation mode (frame order and direction) */
#define ANIM_NONE 0
/* values for animation mode (frame order and direction) */
#define ANIM_NONE 0
@@
-251,8
+262,8
@@
#define SETUP_FILENAME "setup.cnf"
#define LEVELSETUP_FILENAME "lvlsetup.cnf"
#define EDITORSETUP_FILENAME "edsetup.cnf"
#define SETUP_FILENAME "setup.cnf"
#define LEVELSETUP_FILENAME "lvlsetup.cnf"
#define EDITORSETUP_FILENAME "edsetup.cnf"
-#define HELPANIM_FILENAME "helpanim.c
o
nf"
-#define HELPTEXT_FILENAME "helptext.c
o
nf"
+#define HELPANIM_FILENAME "helpanim.cnf"
+#define HELPTEXT_FILENAME "helptext.cnf"
#define LEVELINFO_FILENAME "lvlinfo.cnf"
#define GRAPHICSINFO_FILENAME "gfxinfo.cnf"
#define SOUNDSINFO_FILENAME "sndinfo.cnf"
#define LEVELINFO_FILENAME "lvlinfo.cnf"
#define GRAPHICSINFO_FILENAME "gfxinfo.cnf"
#define SOUNDSINFO_FILENAME "sndinfo.cnf"
@@
-270,7
+281,11
@@
PAGEX3: buffer for animations
*/
PAGEX3: buffer for animations
*/
-#define DOOR_GFX_PAGESIZE (gfx.dxsize)
+/* these values are hard-coded to be able to use them in initialization */
+#define DOOR_GFX_PAGE_WIDTH 100 /* should be set to "gfx.dxsize" */
+#define DOOR_GFX_PAGE_HEIGHT 280 /* should be set to "gfx.dysize" */
+
+#define DOOR_GFX_PAGESIZE (DOOR_GFX_PAGE_WIDTH)
#define DOOR_GFX_PAGEX1 (0 * DOOR_GFX_PAGESIZE)
#define DOOR_GFX_PAGEX2 (1 * DOOR_GFX_PAGESIZE)
#define DOOR_GFX_PAGEX3 (2 * DOOR_GFX_PAGESIZE)
#define DOOR_GFX_PAGEX1 (0 * DOOR_GFX_PAGESIZE)
#define DOOR_GFX_PAGEX2 (1 * DOOR_GFX_PAGESIZE)
#define DOOR_GFX_PAGEX3 (2 * DOOR_GFX_PAGESIZE)
@@
-280,7
+295,7
@@
#define DOOR_GFX_PAGEX7 (6 * DOOR_GFX_PAGESIZE)
#define DOOR_GFX_PAGEX8 (7 * DOOR_GFX_PAGESIZE)
#define DOOR_GFX_PAGEY1 (0)
#define DOOR_GFX_PAGEX7 (6 * DOOR_GFX_PAGESIZE)
#define DOOR_GFX_PAGEX8 (7 * DOOR_GFX_PAGESIZE)
#define DOOR_GFX_PAGEY1 (0)
-#define DOOR_GFX_PAGEY2 (
gfx.dysize
)
+#define DOOR_GFX_PAGEY2 (
DOOR_GFX_PAGE_HEIGHT
)
/* macros for version handling */
/* macros for version handling */
@@
-397,8
+412,9
@@
typedef int (*EventFilter)(const Event *);
struct ProgramInfo
{
struct ProgramInfo
{
- char *command_basename;
- char *userdata_directory;
+ char *command_basepath; /* directory that contains the program */
+ char *command_basename; /* base filename of the program binary */
+ char *userdata_directory; /* personal user data directory */
char *program_title;
char *window_title;
char *program_title;
char *window_title;
@@
-521,18
+537,13
@@
struct SetupJoystickInfo
int xleft, xmiddle, xright;
int yupper, ymiddle, ylower;
int xleft, xmiddle, xright;
int yupper, ymiddle, ylower;
- int snap;
- int bomb;
+ int snap, drop;
};
struct SetupKeyboardInfo
{
};
struct SetupKeyboardInfo
{
- Key left;
- Key right;
- Key up;
- Key down;
- Key snap;
- Key bomb;
+ Key left, right, up, down;
+ Key snap, drop;
};
struct SetupInputInfo
};
struct SetupInputInfo
@@
-546,6
+557,7
@@
struct SetupEditorInfo
{
boolean el_boulderdash;
boolean el_emerald_mine;
{
boolean el_boulderdash;
boolean el_emerald_mine;
+ boolean el_emerald_mine_club;
boolean el_more;
boolean el_sokoban;
boolean el_supaplex;
boolean el_more;
boolean el_sokoban;
boolean el_supaplex;
@@
-590,6
+602,7
@@
struct SetupInfo
boolean quick_doors;
boolean team_mode;
boolean handicap;
boolean quick_doors;
boolean team_mode;
boolean handicap;
+ boolean skip_levels;
boolean time_limit;
boolean fullscreen;
boolean ask_on_escape;
boolean time_limit;
boolean fullscreen;
boolean ask_on_escape;
@@
-622,7
+635,7
@@
struct TreeInfo
/* fields for "type == TREE_TYPE_LEVEL_DIR" */
/* fields for "type == TREE_TYPE_LEVEL_DIR" */
- char *
filename;
/* tree info sub-directory basename (may be ".") */
+ char *
subdir;
/* tree info sub-directory basename (may be ".") */
char *fullpath; /* complete path relative to tree base directory */
char *basepath; /* absolute base path of tree base directory */
char *identifier; /* identifier string for configuration files */
char *fullpath; /* complete path relative to tree base directory */
char *basepath; /* absolute base path of tree base directory */
char *identifier; /* identifier string for configuration files */
@@
-630,6
+643,7
@@
struct TreeInfo
char *name_sorting; /* optional sorting name for correct name sorting */
char *author; /* level or artwork author name */
char *imported_from; /* optional comment for imported levels or artwork */
char *name_sorting; /* optional sorting name for correct name sorting */
char *author; /* level or artwork author name */
char *imported_from; /* optional comment for imported levels or artwork */
+ char *imported_by; /* optional comment for imported levels or artwork */
char *graphics_set; /* optional custom graphics set (level tree only) */
char *sounds_set; /* optional custom sounds set (level tree only) */
char *graphics_set; /* optional custom graphics set (level tree only) */
char *sounds_set; /* optional custom sounds set (level tree only) */
@@
-638,6
+652,9
@@
struct TreeInfo
char *sounds_path; /* path to optional custom sounds set (level only) */
char *music_path; /* path to optional custom music set (level only) */
char *sounds_path; /* path to optional custom sounds set (level only) */
char *music_path; /* path to optional custom music set (level only) */
+ char *level_filename; /* filename of level file (for packed level file) */
+ char *level_filetype; /* type of levels in level directory or level file */
+
int levels; /* number of levels in level series */
int first_level; /* first level number (to allow start with 0 or 1) */
int last_level; /* last level number (automatically calculated) */
int levels; /* number of levels in level series */
int first_level; /* first level number (to allow start with 0 or 1) */
int last_level; /* last level number (automatically calculated) */
@@
-647,8
+664,11
@@
struct TreeInfo
boolean level_group; /* directory contains more level series directories */
boolean parent_link; /* entry links back to parent directory */
boolean level_group; /* directory contains more level series directories */
boolean parent_link; /* entry links back to parent directory */
- boolean user_defined; /* user defined levels are stored in home directory */
+ boolean in_user_dir; /* user defined levels are stored in home directory */
+ boolean user_defined; /* levels in user directory and marked as "private" */
boolean readonly; /* readonly levels can not be changed with editor */
boolean readonly; /* readonly levels can not be changed with editor */
+ boolean handicap; /* level set has no handicap when set to "false" */
+ boolean skip_levels; /* levels can be skipped when set to "true" */
int color; /* color to use on selection screen for this level */
char *class_desc; /* description of level series class */
int color; /* color to use on selection screen for this level */
char *class_desc; /* description of level series class */
@@
-683,6
+703,12
@@
struct ValueTextInfo
};
struct ConfigInfo
};
struct ConfigInfo
+{
+ char *token;
+ char *value;
+};
+
+struct ConfigTypeInfo
{
char *token;
char *value;
{
char *token;
char *value;
@@
-706,6
+732,7
@@
struct FileInfo
char **parameter; /* array of file parameters */
boolean redefined;
char **parameter; /* array of file parameters */
boolean redefined;
+ boolean fallback_to_default;
};
struct SetupFileList
};
struct SetupFileList
@@
-742,7
+769,7
@@
struct ArtworkListInfo
struct FileInfo *dynamic_file_list; /* dynamic artwrk file array */
int num_suffix_list_entries;
struct FileInfo *dynamic_file_list; /* dynamic artwrk file array */
int num_suffix_list_entries;
- struct Config
Info *suffix_list;
/* parameter suffixes array */
+ struct Config
TypeInfo *suffix_list;
/* parameter suffixes array */
int num_base_prefixes;
int num_ext1_suffixes;
int num_base_prefixes;
int num_ext1_suffixes;
@@
-859,7
+886,7
@@
Bitmap *LoadCustomImage(char *);
void ReloadCustomImage(Bitmap *, char *);
Bitmap *ZoomBitmap(Bitmap *, int, int);
void ReloadCustomImage(Bitmap *, char *);
Bitmap *ZoomBitmap(Bitmap *, int, int);
-void CreateBitmapWithSmallBitmaps(Bitmap *);
+void CreateBitmapWithSmallBitmaps(Bitmap *
, int
);
void SetMouseCursor(int);
void SetMouseCursor(int);
@@
-870,6
+897,7
@@
inline void SetAudioMode(boolean);
inline void InitEventFilter(EventFilter);
inline boolean PendingEvent(void);
inline void NextEvent(Event *event);
inline void InitEventFilter(EventFilter);
inline boolean PendingEvent(void);
inline void NextEvent(Event *event);
+inline void PeekEvent(Event *event);
inline Key GetEventKey(KeyEvent *, boolean);
inline KeyMod HandleKeyModState(Key, int);
inline KeyMod GetKeyModState();
inline Key GetEventKey(KeyEvent *, boolean);
inline KeyMod HandleKeyModState(Key, int);
inline KeyMod GetKeyModState();