X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Flibgame%2Fsystem.h;h=2f6c2809fff688814c214e9030b4975d5e5e3f16;hp=fa422cafd8ee206c299023d8908a62430747f4ac;hb=25c22434b11938e230719d6f73df4ed7813570be;hpb=f7fcf0207e03bea13618e718f522c15d9120460c diff --git a/src/libgame/system.h b/src/libgame/system.h index fa422caf..2f6c2809 100644 --- a/src/libgame/system.h +++ b/src/libgame/system.h @@ -85,6 +85,7 @@ /* values for touch control */ #define TOUCH_CONTROL_VIRTUAL_BUTTONS "virtual_buttons" #define TOUCH_CONTROL_WIPE_GESTURES "wipe_gestures" +#define TOUCH_CONTROL_FOLLOW_FINGER "follow_finger" #define TOUCH_CONTROL_DEFAULT TOUCH_CONTROL_VIRTUAL_BUTTONS @@ -92,6 +93,15 @@ #define TOUCH_DROP_DISTANCE_DEFAULT 5 +/* values for special settings for mobile devices */ +#if defined(PLATFORM_ANDROID) +#define USE_TOUCH_INPUT_OVERLAY +#define USE_COMPLETE_DISPLAY +#define HAS_SCREEN_KEYBOARD +#define SCREEN_KEYBOARD_POS(h) ((h) / 2) +#endif + + /* default input keys */ #define DEFAULT_KEY_LEFT KSYM_Left #define DEFAULT_KEY_RIGHT KSYM_Right @@ -314,6 +324,19 @@ #define STYLE_DEFAULT STYLE_NONE +/* values for special global animation events */ +#define ANIM_EVENT_NONE 0 +#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 + /* values for fade mode */ #define FADE_TYPE_NONE 0 #define FADE_TYPE_FADE_IN (1 << 0) @@ -347,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) @@ -418,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" @@ -470,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" @@ -498,10 +527,13 @@ #define SOUNDSINFO_FILENAME "soundsinfo.conf" #define MUSICINFO_FILENAME "musicinfo.conf" #define ARTWORKINFO_CACHE_FILE "artworkinfo.cache" +#define LEVELTEMPLATE_FILENAME "template.level" #define LEVELFILE_EXTENSION "level" #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" @@ -715,14 +747,6 @@ } -/* type definitions */ -#if defined(TARGET_SDL2) -typedef int (*EventFilter)(void *, Event *); -#else -typedef int (*EventFilter)(const Event *); -#endif - - /* structure definitions */ struct ProgramInfo @@ -758,6 +782,11 @@ struct ProgramInfo char *(*window_title_function)(void); void (*exit_message_function)(char *, va_list); void (*exit_function)(int); + + boolean global_scores; + boolean many_scores_per_name; + + boolean headless; }; struct OptionInfo @@ -772,11 +801,13 @@ struct OptionInfo char *sounds_directory; char *music_directory; char *docs_directory; + char *conf_directory; char *execute_command; char *special_flags; + boolean mytapes; boolean serveronly; boolean network; boolean verbose; @@ -788,6 +819,9 @@ struct VideoSystemInfo int default_depth; int width, height, depth; int window_width, window_height; + int display_width, display_height; + int screen_width, screen_height; + int screen_xoffset, screen_yoffset; boolean fullscreen_available; boolean fullscreen_enabled; @@ -801,6 +835,12 @@ struct VideoSystemInfo unsigned int frame_delay; unsigned int frame_delay_value; + boolean shifted_up; + int shifted_up_pos; + int shifted_up_pos_last; + unsigned int shifted_up_delay; + unsigned int shifted_up_delay_value; + boolean initialized; }; @@ -901,10 +941,16 @@ struct GfxInfo int cursor_mode; }; +struct OverlayInfo +{ + 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 @@ -948,6 +994,8 @@ struct SetupEditorInfo boolean el_dx_boulderdash; boolean el_chars; boolean el_steel_chars; + + boolean el_classic; boolean el_custom; boolean el_user_defined; boolean el_dynamic; @@ -958,6 +1006,8 @@ struct SetupEditorInfo boolean el_by_type; boolean show_element_token; + + boolean use_template_for_new_levels; }; struct SetupEditorCascadeInfo @@ -1067,6 +1117,7 @@ struct SetupInfo boolean team_mode; boolean handicap; boolean skip_levels; + boolean increment_levels; boolean time_limit; boolean fullscreen; int window_scaling_percent; @@ -1294,6 +1345,12 @@ struct XY int x, y; }; +struct XYTileSize +{ + int x, y; + int tile_size; +}; + struct Rect { int x, y; @@ -1358,6 +1415,7 @@ extern struct OptionInfo options; extern struct VideoSystemInfo video; extern struct AudioSystemInfo audio; extern struct GfxInfo gfx; +extern struct OverlayInfo overlay; extern struct AnimInfo anim; extern struct ArtworkInfo artwork; extern struct JoystickInfo joystick; @@ -1391,6 +1449,7 @@ extern int FrameCounter; void InitProgramInfo(char *, char *, char *, char *, char *, char *, char *, int); +void InitScoresInfo(); void SetWindowTitle(); void InitWindowTitleFunction(char *(*window_title_function)(void)); @@ -1412,6 +1471,10 @@ void InitGfxDrawGlobalAnimFunction(void (*draw_global_anim_function)(int, int)); 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); void SetDrawBackgroundMask(int); void SetWindowBackgroundBitmap(Bitmap *); @@ -1474,7 +1537,6 @@ void OpenAudio(void); void CloseAudio(void); void SetAudioMode(boolean); -void InitEventFilter(EventFilter); boolean PendingEvent(void); void NextEvent(Event *event); void PeekEvent(Event *event); @@ -1482,9 +1544,13 @@ Key GetEventKey(KeyEvent *, boolean); KeyMod HandleKeyModState(Key, int); KeyMod GetKeyModState(); KeyMod GetKeyModStateFromEvents(); +void StartTextInput(int, int, int, int); +void StopTextInput(); boolean CheckCloseWindowEvent(ClientMessageEvent *); void InitJoysticks(); boolean ReadJoystick(int, int *, int *, boolean *, boolean *); +boolean CheckJoystickOpened(int); +void ClearJoystickState(); #endif /* SYSTEM_H */