projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rnd-20030403-3-src
[rocksndiamonds.git]
/
src
/
libgame
/
system.h
diff --git
a/src/libgame/system.h
b/src/libgame/system.h
index 655d00b1d1e5946d9e9dab214e1c375a5a8be812..955be708b67f14d5f7cd658898f3fa40d4a9b18f 100644
(file)
--- a/
src/libgame/system.h
+++ b/
src/libgame/system.h
@@
-17,7
+17,12
@@
#include "platform.h"
#include "types.h"
#include "platform.h"
#include "types.h"
-#if defined(PLATFORM_MSDOS)
+
+#if defined(PLATFORM_MACOSX)
+#include "macosx.h"
+#elif defined(PLATFORM_WIN32)
+#include "windows.h"
+#elif defined(PLATFORM_MSDOS)
#include "msdos.h"
#endif
#include "msdos.h"
#endif
@@
-27,14
+32,6
@@
#include "x11.h"
#endif
#include "x11.h"
#endif
-#if defined(PLATFORM_MACOSX)
-/* some symbols are already defined on Mac OS X */
-#define Delay Delay_internal
-#define DrawLine DrawLine_internal
-#define DrawText DrawText_internal
-#define GetPixel GetPixel_internal
-#endif
-
/* the additional 'b' is needed for Win32 to open files in binary mode */
#define MODE_READ "rb"
/* the additional 'b' is needed for Win32 to open files in binary mode */
#define MODE_READ "rb"
@@
-43,6
+40,9
@@
#define DEFAULT_DEPTH 0
#define DEFAULT_DEPTH 0
+#define BLIT_OPAQUE 0
+#define BLIT_MASKED 1
+
#define FULLSCREEN_NOT_AVAILABLE FALSE
#define FULLSCREEN_AVAILABLE TRUE
#define FULLSCREEN_NOT_AVAILABLE FALSE
#define FULLSCREEN_AVAILABLE TRUE
@@
-101,6
+101,15
@@
#define MB_MIDDLEBUTTON 2
#define MB_RIGHTBUTTON 3
#define MB_MIDDLEBUTTON 2
#define MB_RIGHTBUTTON 3
+/* values for animation mode (frame order and direction) */
+#define ANIM_NONE 0
+#define ANIM_LOOP (1 << 0)
+#define ANIM_LINEAR (1 << 1)
+#define ANIM_PINGPONG (1 << 2)
+#define ANIM_PINGPONG2 (1 << 3)
+#define ANIM_RANDOM (1 << 4)
+#define ANIM_REVERSE (1 << 5)
+
/* values for redraw_mask */
#define REDRAW_NONE (0)
#define REDRAW_ALL (1 << 0)
/* values for redraw_mask */
#define REDRAW_NONE (0)
#define REDRAW_ALL (1 << 0)
@@
-147,6
+156,9
@@
/* default value for undefined filename */
#define UNDEFINED_FILENAME "[NONE]"
/* default value for undefined filename */
#define UNDEFINED_FILENAME "[NONE]"
+/* default value for undefined parameter */
+#define ARG_DEFAULT "[DEFAULT]"
+
/* default values for undefined configuration file parameters */
#define ARG_UNDEFINED "-1000000"
#define ARG_UNDEFINED_VALUE (atoi(ARG_UNDEFINED))
/* default values for undefined configuration file parameters */
#define ARG_UNDEFINED "-1000000"
#define ARG_UNDEFINED_VALUE (atoi(ARG_UNDEFINED))
@@
-206,9
+218,13
@@
#define VERSION_PATCH(x) ((x) % 100)
/* functions for parent/child process identification */
#define VERSION_PATCH(x) ((x) % 100)
/* functions for parent/child process identification */
-#define IS_PARENT_PROCESS(pid) ((pid) > 0 || (pid) == -1)
-#define IS_CHILD_PROCESS(pid) ((pid) == 0)
-
+#if defined(PLATFORM_UNIX)
+#define IS_PARENT_PROCESS() (audio.mixer_pid != getpid())
+#define IS_CHILD_PROCESS() (audio.mixer_pid == getpid())
+#else
+#define IS_PARENT_PROCESS() TRUE
+#define IS_CHILD_PROCESS() FALSE
+#endif
/* type definitions */
typedef int (*EventFilter)(const Event *);
/* type definitions */
typedef int (*EventFilter)(const Event *);
@@
-286,6
+302,18
@@
struct AudioSystemInfo
int first_sound_channel;
};
int first_sound_channel;
};
+struct FontBitmapInfo
+{
+ Bitmap *bitmap;
+ int src_x, src_y; /* start position of animation frames */
+ int width, height; /* width/height of each animation frame */
+ int draw_x, draw_y; /* offset for drawing font characters */
+
+#if defined(TARGET_X11_NATIVE_PERFORMANCE_WORKAROUND)
+ Pixmap *clip_mask; /* single-char-only clip mask array for X11 */
+#endif
+};
+
struct GfxInfo
{
int sx, sy;
struct GfxInfo
{
int sx, sy;
@@
-303,22
+331,16
@@
struct GfxInfo
int draw_deactivation_mask;
int draw_background_mask;
int draw_deactivation_mask;
int draw_background_mask;
+ Bitmap *field_save_buffer;
+
Bitmap *background_bitmap;
int background_bitmap_mask;
Bitmap *background_bitmap;
int background_bitmap_mask;
-};
-struct FontInfo
-{
- Bitmap *bitmap_initial;
- Bitmap *bitmap_big;
- Bitmap *bitmap_medium;
- Bitmap *bitmap_small;
- Bitmap *bitmap_tile;
-};
+ int num_fonts;
+ struct FontBitmapInfo *font_bitmap_info;
+ int (*select_font_function)(int);
-struct AnimInfo
-{
- int random_frame;
+ int anim_random_frame;
};
struct JoystickInfo
};
struct JoystickInfo
@@
-374,6
+396,12
@@
struct SetupShortcutInfo
Key toggle_pause;
};
Key toggle_pause;
};
+struct SetupSystemInfo
+{
+ char *sdl_audiodriver;
+ int audio_fragment_size;
+};
+
struct SetupInfo
{
char *player_name;
struct SetupInfo
{
char *player_name;
@@
-406,6
+434,8
@@
struct SetupInfo
struct SetupEditorInfo editor;
struct SetupShortcutInfo shortcut;
struct SetupInputInfo input[MAX_PLAYERS];
struct SetupEditorInfo editor;
struct SetupShortcutInfo shortcut;
struct SetupInputInfo input[MAX_PLAYERS];
+ struct SetupSystemInfo system;
+ struct OptionInfo options;
};
#define TREE_TYPE_GENERIC 0
};
#define TREE_TYPE_GENERIC 0
@@
-498,8
+528,10
@@
struct FileInfo
char *default_filename;
char *filename;
char *default_filename;
char *filename;
- int *default_parameter; /* array of file parameters */
- int *parameter; /* array of file parameters */
+ char **default_parameter; /* array of file parameters */
+ char **parameter; /* array of file parameters */
+
+ boolean redefined;
};
struct SetupFileList
};
struct SetupFileList
@@
-521,6
+553,7
@@
struct PropertyMapping
int base_index;
int ext1_index;
int ext2_index;
int base_index;
int ext1_index;
int ext2_index;
+ int ext3_index;
int artwork_index;
};
int artwork_index;
};
@@
-531,24
+564,25
@@
struct ArtworkListInfo
int num_file_list_entries;
int num_dynamic_file_list_entries;
int num_file_list_entries;
int num_dynamic_file_list_entries;
-
struct FileInfo *file_list; /* static artwork file array */
struct FileInfo *dynamic_file_list; /* dynamic artwrk file array */
int num_suffix_list_entries;
struct FileInfo *file_list; /* static artwork file array */
struct FileInfo *dynamic_file_list; /* dynamic artwrk file array */
int num_suffix_list_entries;
-
struct ConfigInfo *suffix_list; /* parameter suffixes array */
int num_base_prefixes;
int num_ext1_suffixes;
int num_ext2_suffixes;
struct ConfigInfo *suffix_list; /* parameter suffixes array */
int num_base_prefixes;
int num_ext1_suffixes;
int num_ext2_suffixes;
-
+ int num_ext3_suffixes;
char **base_prefixes; /* base token prefixes array */
char **ext1_suffixes; /* property suffixes array 1 */
char **ext2_suffixes; /* property suffixes array 2 */
char **base_prefixes; /* base token prefixes array */
char **ext1_suffixes; /* property suffixes array 1 */
char **ext2_suffixes; /* property suffixes array 2 */
+ char **ext3_suffixes; /* property suffixes array 3 */
- int num_property_mapping_entries;
+ int num_ignore_tokens;
+ char **ignore_tokens; /* file tokens to be ignored */
+ int num_property_mapping_entries;
struct PropertyMapping *property_mapping; /* mapping token -> artwork */
int sizeof_artwork_list_entry;
struct PropertyMapping *property_mapping; /* mapping token -> artwork */
int sizeof_artwork_list_entry;
@@
-571,7
+605,6
@@
extern struct OptionInfo options;
extern struct VideoSystemInfo video;
extern struct AudioSystemInfo audio;
extern struct GfxInfo gfx;
extern struct VideoSystemInfo video;
extern struct AudioSystemInfo audio;
extern struct GfxInfo gfx;
-extern struct FontInfo font;
extern struct AnimInfo anim;
extern struct ArtworkInfo artwork;
extern struct JoystickInfo joystick;
extern struct AnimInfo anim;
extern struct ArtworkInfo artwork;
extern struct JoystickInfo joystick;
@@
-601,15
+634,14
@@
extern int FrameCounter;
/* function definitions */
/* function definitions */
-void InitCommandName(char *);
+void InitProgramInfo(char *, char *, char *, char *, char *, char *, char *,
+ char *, char *, char *, int);
+
void InitExitFunction(void (*exit_function)(int));
void InitPlatformDependantStuff(void);
void ClosePlatformDependantStuff(void);
void InitExitFunction(void (*exit_function)(int));
void InitPlatformDependantStuff(void);
void ClosePlatformDependantStuff(void);
-void InitProgramInfo(char *, char *, char *, char *, char *, char *, char *,
- char *, char *, int);
-
-void InitGfxFieldInfo(int, int, int, int, int, int, int, int);
+void InitGfxFieldInfo(int, int, int, int, int, int, int, int, Bitmap *);
void InitGfxDoor1Info(int, int, int, int);
void InitGfxDoor2Info(int, int, int, int);
void InitGfxScrollbufferInfo(int, int);
void InitGfxDoor1Info(int, int, int, int);
void InitGfxDoor2Info(int, int, int, int);
void InitGfxScrollbufferInfo(int, int);
@@
-625,6
+657,7
@@
inline Bitmap *CreateBitmapStruct(void);
inline Bitmap *CreateBitmap(int, int, int);
inline void FreeBitmap(Bitmap *);
inline void BlitBitmap(Bitmap *, Bitmap *, int, int, int, int, int, int);
inline Bitmap *CreateBitmap(int, int, int);
inline void FreeBitmap(Bitmap *);
inline void BlitBitmap(Bitmap *, Bitmap *, int, int, int, int, int, int);
+inline void FillRectangle(Bitmap *, int, int, int, int, Pixel);
inline void ClearRectangle(Bitmap *, int, int, int, int);
inline void ClearRectangleOnBackground(Bitmap *, int, int, int, int);
inline void SetClipMask(Bitmap *, GC, Pixmap);
inline void ClearRectangle(Bitmap *, int, int, int, int);
inline void ClearRectangleOnBackground(Bitmap *, int, int, int, int);
inline void SetClipMask(Bitmap *, GC, Pixmap);