X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsystem.h;h=efc4490d7e2fdaf65e9d6b92349ea44459007a8f;hb=727d3b5fc7cac6f59652eaa23f1ed9e991ae50bd;hp=b214ba752733cc58ea9ffbc94797c577b4f9df61;hpb=a00af4d54f7f23fe9ed4ae7e3244895c4acc0158;p=rocksndiamonds.git diff --git a/src/libgame/system.h b/src/libgame/system.h index b214ba75..efc4490d 100644 --- a/src/libgame/system.h +++ b/src/libgame/system.h @@ -324,43 +324,16 @@ #define STYLE_DEFAULT STYLE_NONE +/* values for special global animation events */ #define ANIM_EVENT_NONE 0 -#define ANIM_EVENT_CLICK_ANIM_1 (1 << 0) -#define ANIM_EVENT_CLICK_ANIM_2 (1 << 1) -#define ANIM_EVENT_CLICK_ANIM_3 (1 << 2) -#define ANIM_EVENT_CLICK_ANIM_4 (1 << 3) -#define ANIM_EVENT_CLICK_ANIM_5 (1 << 4) -#define ANIM_EVENT_CLICK_ANIM_6 (1 << 5) -#define ANIM_EVENT_CLICK_ANIM_7 (1 << 6) -#define ANIM_EVENT_CLICK_ANIM_8 (1 << 7) -#define ANIM_EVENT_CLICK_PART_1 (1 << 8) -#define ANIM_EVENT_CLICK_PART_2 (1 << 9) -#define ANIM_EVENT_CLICK_PART_3 (1 << 10) -#define ANIM_EVENT_CLICK_PART_4 (1 << 11) -#define ANIM_EVENT_CLICK_PART_5 (1 << 12) -#define ANIM_EVENT_CLICK_PART_6 (1 << 13) -#define ANIM_EVENT_CLICK_PART_7 (1 << 14) -#define ANIM_EVENT_CLICK_PART_8 (1 << 15) -#define ANIM_EVENT_CLICK_SELF (1 << 16) -#define ANIM_EVENT_CLICK_ANY (1 << 17) - -#define ANIM_EVENT_CLICK_ANIM_ALL (ANIM_EVENT_CLICK_ANIM_1 | \ - ANIM_EVENT_CLICK_ANIM_2 | \ - ANIM_EVENT_CLICK_ANIM_3 | \ - ANIM_EVENT_CLICK_ANIM_4 | \ - ANIM_EVENT_CLICK_ANIM_5 | \ - ANIM_EVENT_CLICK_ANIM_6 | \ - ANIM_EVENT_CLICK_ANIM_7 | \ - ANIM_EVENT_CLICK_ANIM_8) - -#define ANIM_EVENT_CLICK_PART_ALL (ANIM_EVENT_CLICK_PART_1 | \ - ANIM_EVENT_CLICK_PART_2 | \ - ANIM_EVENT_CLICK_PART_3 | \ - ANIM_EVENT_CLICK_PART_4 | \ - ANIM_EVENT_CLICK_PART_5 | \ - ANIM_EVENT_CLICK_PART_6 | \ - ANIM_EVENT_CLICK_PART_7 | \ - ANIM_EVENT_CLICK_PART_8) +#define ANIM_EVENT_SELF (1 << 16) +#define ANIM_EVENT_ANY (1 << 17) + +#define ANIM_EVENT_ANIM_BIT 0 +#define ANIM_EVENT_PART_BIT 8 + +#define ANIM_EVENT_ANIM_MASK (0xff << ANIM_EVENT_ANIM_BIT) +#define ANIM_EVENT_PART_MASK (0xff << ANIM_EVENT_PART_BIT) #define ANIM_EVENT_DEFAULT ANIM_EVENT_NONE @@ -397,6 +370,7 @@ #define POS_LOWER 5 #define POS_BOTTOM 6 #define POS_ANY 7 +#define POS_LAST 8 /* values for text alignment */ #define ALIGN_LEFT (1 << 0) @@ -468,6 +442,10 @@ /* maximum number of levels in a level set */ #define MAX_LEVELS 1000 +/* maximum number of global animation and parts */ +#define MAX_GLOBAL_ANIMS 32 +#define MAX_GLOBAL_ANIM_PARTS 32 + /* default name for empty highscore entry */ #define EMPTY_PLAYER_NAME "no name" @@ -520,6 +498,7 @@ #define SCORES_DIRECTORY "scores" #define DOCS_DIRECTORY "docs" #define CACHE_DIRECTORY "cache" +#define CONF_DIRECTORY "conf" #define GFX_CLASSIC_SUBDIR "gfx_classic" #define SND_CLASSIC_SUBDIR "snd_classic" @@ -553,6 +532,8 @@ #define TAPEFILE_EXTENSION "tape" #define SCOREFILE_EXTENSION "score" +#define GAMECONTROLLER_BASENAME "gamecontrollerdb.txt" + #define LOG_OUT_BASENAME "stdout.txt" #define LOG_ERR_BASENAME "stderr.txt" @@ -798,6 +779,8 @@ struct ProgramInfo int version_build; int version_ident; + char *version_string; + char *(*window_title_function)(void); void (*exit_message_function)(char *, va_list); void (*exit_function)(int); @@ -820,6 +803,7 @@ struct OptionInfo char *sounds_directory; char *music_directory; char *docs_directory; + char *conf_directory; char *execute_command; @@ -961,13 +945,14 @@ struct GfxInfo struct OverlayInfo { - boolean active; + boolean enabled; /* overlay generally enabled or disabled */ + boolean active; /* overlay activated (depending on game mode) */ }; struct JoystickInfo { int status; - int fd[MAX_PLAYERS]; /* file descriptor of player's joystick */ + int nr[MAX_PLAYERS]; /* joystick number for each player */ }; struct SetupJoystickInfo @@ -1082,6 +1067,7 @@ struct SetupSystemInfo struct SetupInternalInfo { char *program_title; + char *program_version; char *program_author; char *program_email; char *program_website; @@ -1104,6 +1090,7 @@ struct SetupInternalInfo int default_window_height; boolean choose_from_top_leveldir; + boolean show_scaling_in_title; }; struct SetupDebugInfo @@ -1112,6 +1099,7 @@ struct SetupDebugInfo Key frame_delay_key[10]; boolean frame_delay_use_mod_key; boolean frame_delay_game_only; + boolean show_frames_per_second; }; struct SetupInfo @@ -1464,7 +1452,7 @@ extern int FrameCounter; /* function definitions */ void InitProgramInfo(char *, char *, char *, char *, char *, char *, char *, - int); + char *, int); void InitScoresInfo(); void SetWindowTitle(); @@ -1489,9 +1477,11 @@ void InitGfxDrawGlobalBorderFunction(void (*draw_global_border_function)(int)); void InitGfxCustomArtworkInfo(); void InitGfxOtherSettings(); void InitOverlayInfo(); +void SetOverlayEnabled(boolean); void SetOverlayActive(boolean); boolean GetOverlayActive(); void SetDrawDeactivationMask(int); +int GetDrawDeactivationMask(void); void SetDrawBackgroundMask(int); void SetWindowBackgroundBitmap(Bitmap *); void SetMainBackgroundBitmap(Bitmap *); @@ -1515,6 +1505,7 @@ void FillRectangle(Bitmap *, int, int, int, int, Pixel); void ClearRectangle(Bitmap *, int, int, int, int); void ClearRectangleOnBackground(Bitmap *, int, int, int, int); void BlitBitmapMasked(Bitmap *, Bitmap *, int, int, int, int, int, int); +boolean DrawingDeactivatedField(void); boolean DrawingDeactivated(int, int, int, int); boolean DrawingOnBackground(int, int); boolean DrawingAreaChanged(); @@ -1554,8 +1545,9 @@ void CloseAudio(void); void SetAudioMode(boolean); boolean PendingEvent(void); -void NextEvent(Event *event); +void WaitEvent(Event *event); void PeekEvent(Event *event); +void CheckQuitEvent(void); Key GetEventKey(KeyEvent *, boolean); KeyMod HandleKeyModState(Key, int); KeyMod GetKeyModState(); @@ -1566,5 +1558,7 @@ boolean CheckCloseWindowEvent(ClientMessageEvent *); void InitJoysticks(); boolean ReadJoystick(int, int *, int *, boolean *, boolean *); +boolean CheckJoystickOpened(int); +void ClearJoystickState(); #endif /* SYSTEM_H */