X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsystem.h;h=fa722636b27c57679d7628e3f2b6777bb4525836;hb=7b47ce7ba0f673f0de5130daf5726104d0b38902;hp=d393bfc00fd6c5f057410c14786db7774c6e92fd;hpb=fa26d82a378cebf6b519c566c3f33739ebba7823;p=rocksndiamonds.git diff --git a/src/libgame/system.h b/src/libgame/system.h index d393bfc0..fa722636 100644 --- a/src/libgame/system.h +++ b/src/libgame/system.h @@ -71,7 +71,7 @@ #define MV_BIT_RIGHT 1 #define MV_BIT_UP 2 #define MV_BIT_DOWN 3 -#define NUM_MV_DIRECTIONS 4 +#define NUM_DIRECTIONS 4 #define MV_NO_MOVING 0 #define MV_LEFT (1 << MV_BIT_LEFT) @@ -138,14 +138,18 @@ /* default name for unknown player names */ #define ANONYMOUS_NAME "anonymous" +/* default name for new levels */ +#define NAMELESS_LEVEL_NAME "nameless level" + /* default text for non-existant artwork */ #define NOT_AVAILABLE "(not available)" /* default value for undefined filename */ #define UNDEFINED_FILENAME "[NONE]" -/* default name for new levels */ -#define NAMELESS_LEVEL_NAME "nameless level" +/* default values for undefined configuration file parameters */ +#define ARG_UNDEFINED "-1000000" +#define ARG_UNDEFINED_VALUE (atoi(ARG_UNDEFINED)) /* definitions for game sub-directories */ #ifndef RO_GAME_DIR @@ -296,7 +300,20 @@ struct GfxInfo int vx, vy; int vxsize, vysize; - boolean draw_deactivation_mask; + int draw_deactivation_mask; + int draw_background_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; }; struct JoystickInfo @@ -466,6 +483,7 @@ struct ConfigInfo { char *token; char *value; + int type; }; struct FileInfo @@ -479,6 +497,14 @@ struct FileInfo int *parameter; /* array of file parameters */ }; +struct SetupFileList +{ + char *token; + char *value; + + struct SetupFileList *next; +}; + struct ListNodeInfo { char *source_filename; /* primary key for node list */ @@ -491,9 +517,14 @@ struct ArtworkListInfo int num_file_list_entries; int num_suffix_list_entries; + int num_ext1_suffix_list_entries; + int num_ext2_suffix_list_entries; struct FileInfo *file_list; /* static artwork file array */ struct ConfigInfo *suffix_list; /* parameter suffixes array */ + struct ConfigInfo *ext1_suffix_list; /* property suffixes array 1 */ + struct ConfigInfo *ext2_suffix_list; /* property suffixes array 2 */ + struct SetupFileList *custom_setup_list; /* additional definitions */ struct ListNodeInfo **artwork_list; /* static artwork node array */ @@ -513,6 +544,7 @@ extern struct OptionInfo options; extern struct VideoSystemInfo video; extern struct AudioSystemInfo audio; extern struct GfxInfo gfx; +extern struct FontInfo font; extern struct ArtworkInfo artwork; extern struct JoystickInfo joystick; extern struct SetupInfo setup; @@ -553,7 +585,10 @@ void InitGfxFieldInfo(int, int, int, int, int, int, int, int); void InitGfxDoor1Info(int, int, int, int); void InitGfxDoor2Info(int, int, int, int); void InitGfxScrollbufferInfo(int, int); -void SetDrawDeactivationMask(int ); +void SetDrawDeactivationMask(int); +void SetDrawBackgroundMask(int); +void SetMainBackgroundBitmap(Bitmap *); +void SetDoorBackgroundBitmap(Bitmap *); inline void InitVideoDisplay(void); inline void CloseVideoDisplay(void); @@ -563,9 +598,13 @@ inline Bitmap *CreateBitmap(int, int, int); inline void FreeBitmap(Bitmap *); inline void BlitBitmap(Bitmap *, Bitmap *, int, int, int, int, int, int); inline void ClearRectangle(Bitmap *, int, int, int, int); +inline void ClearRectangleOnBackground(Bitmap *, int, int, int, int); inline void SetClipMask(Bitmap *, GC, Pixmap); inline void SetClipOrigin(Bitmap *, GC, int, int); inline void BlitBitmapMasked(Bitmap *, Bitmap *, int, int, int, int, int, int); +inline boolean DrawingOnBackground(int, int); +inline void BlitBitmapOnBackground(Bitmap *, Bitmap *, int, int, int, int, int, + int); inline void DrawSimpleWhiteLine(Bitmap *, int, int, int, int); inline void DrawLines(Bitmap *, struct XY *, int, Pixel); inline Pixel GetPixel(Bitmap *, int, int);