X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Flibgame%2Fsystem.h;h=711b227355959cd6e7a28a1523c78c1ab9d34be9;hp=7c550499acbaed0cce06236df3066048f1290ab9;hb=17c7213a32d3a0e4c84727937f2ed79028461798;hpb=c3e9cc5a7524e88ca789982a803b805272448c0b diff --git a/src/libgame/system.h b/src/libgame/system.h index 7c550499..711b2273 100644 --- a/src/libgame/system.h +++ b/src/libgame/system.h @@ -82,6 +82,23 @@ #define SPECIAL_RENDERING_DEFAULT SPECIAL_RENDERING_BITMAP #endif +/* values for vertical screen retrace synchronization (vsync) */ +#define STR_VSYNC_MODE_OFF "off" +#define STR_VSYNC_MODE_NORMAL "normal" +#define STR_VSYNC_MODE_ADAPTIVE "adaptive" + +#define STR_VSYNC_MODE_DEFAULT STR_VSYNC_MODE_OFF + +#define VSYNC_MODE_OFF 0 +#define VSYNC_MODE_NORMAL 1 +#define VSYNC_MODE_ADAPTIVE -1 + +#define VSYNC_MODE_DEFAULT VSYNC_MODE_OFF + +/* values for network server settings */ +#define STR_NETWORK_AUTO_DETECT "auto_detect_network_server" +#define STR_NETWORK_AUTO_DETECT_SETUP "(auto detect network server)" + /* values for touch control */ #define TOUCH_CONTROL_OFF "off" #define TOUCH_CONTROL_VIRTUAL_BUTTONS "virtual_buttons" @@ -441,6 +458,8 @@ #define MENU_FRAME_DELAY 20 /* frame delay in milliseconds */ #define GAME_FRAME_DELAY 20 /* frame delay in milliseconds */ #define FFWD_FRAME_DELAY 10 /* 200% speed for fast forward */ +#define MIN_VSYNC_FRAME_DELAY 15 /* minimum value for vsync to keep */ +#define MAX_VSYNC_FRAME_DELAY 16 /* maximum value for vsync to work */ #define FRAMES_PER_SECOND (ONE_SECOND_DELAY / GAME_FRAME_DELAY) #define FRAMES_PER_SECOND_SP 35 @@ -919,6 +938,7 @@ struct VideoSystemInfo int window_scaling_percent; char *window_scaling_quality; int screen_rendering_mode; + int vsync_mode; unsigned int frame_delay; unsigned int frame_delay_value; @@ -1265,11 +1285,14 @@ struct SetupInfo int window_scaling_percent; char *window_scaling_quality; char *screen_rendering_mode; + char *vsync_mode; boolean ask_on_escape; boolean ask_on_escape_editor; + boolean ask_on_game_over; boolean quick_switch; boolean input_on_focus; boolean prefer_aga_graphics; + boolean game_speed_extended; int game_frame_delay; boolean sp_show_border_elements; boolean small_game_graphics; @@ -1288,6 +1311,7 @@ struct SetupInfo boolean network_mode; int network_player_nr; + char *network_server_hostname; struct SetupAutoSetupInfo auto_setup; struct SetupEditorInfo editor; @@ -1396,6 +1420,12 @@ struct ValueTextInfo char *text; }; +struct StringValueTextInfo +{ + char *value; + char *text; +}; + struct ConfigInfo { char *token; @@ -1566,6 +1596,14 @@ struct MouseActionInfo int button_hint; }; +struct LevelSetInfo +{ + int music[MAX_LEVELS]; + + char *identifier; + int level_nr; +}; + struct LevelStats { int played; @@ -1595,6 +1633,7 @@ extern LevelDirTree *leveldir_first; extern LevelDirTree *leveldir_current; extern int level_nr; +extern struct LevelSetInfo levelset; extern struct LevelStats level_stats[]; extern DrawWindow *window; @@ -1619,8 +1658,8 @@ void InitProgramInfo(char *, char *, char *, char *, char *, char *, char *, char *, int); void InitNetworkInfo(boolean, boolean, boolean, char *, int); -void InitScoresInfo(); -void SetWindowTitle(); +void InitScoresInfo(void); +void SetWindowTitle(void); void InitWindowTitleFunction(char *(*window_title_function)(void)); void InitExitMessageFunction(void (*exit_message_function)(char *, va_list)); @@ -1640,10 +1679,10 @@ void InitGfxDrawBusyAnimFunction(void (*draw_busy_anim_function)(void)); void InitGfxDrawGlobalAnimFunction(void (*draw_global_anim_function)(int, int)); void InitGfxDrawGlobalBorderFunction(void (*draw_global_border_function)(int)); void InitGfxDrawTileCursorFunction(void (*draw_tile_cursor_function)(int)); -void InitGfxCustomArtworkInfo(); -void InitGfxOtherSettings(); -void InitTileCursorInfo(); -void InitOverlayInfo(); +void InitGfxCustomArtworkInfo(void); +void InitGfxOtherSettings(void); +void InitTileCursorInfo(void); +void InitOverlayInfo(void); void SetTileCursorEnabled(boolean); void SetTileCursorActive(boolean); void SetTileCursorTargetXY(int, int); @@ -1652,7 +1691,7 @@ void SetTileCursorSXSY(int, int); void SetOverlayEnabled(boolean); void SetOverlayActive(boolean); void SetOverlayShowGrid(boolean); -boolean GetOverlayActive(); +boolean GetOverlayActive(void); void SetDrawDeactivationMask(int); int GetDrawDeactivationMask(void); void SetDrawBackgroundMask(int); @@ -1682,7 +1721,7 @@ 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(); +boolean DrawingAreaChanged(void); void BlitBitmapOnBackground(Bitmap *, Bitmap *, int, int, int, int, int, int); void BlitTexture(Bitmap *, int, int, int, int, int, int); void BlitTextureMasked(Bitmap *, int, int, int, int, int, int); @@ -1699,7 +1738,7 @@ void KeyboardAutoRepeatOn(void); void KeyboardAutoRepeatOff(void); boolean SetVideoMode(boolean); void SetVideoFrameDelay(unsigned int); -unsigned int GetVideoFrameDelay(); +unsigned int GetVideoFrameDelay(void); boolean ChangeVideoModeIfNeeded(boolean); Bitmap *LoadImage(char *); @@ -1724,15 +1763,15 @@ void PeekEvent(Event *event); void CheckQuitEvent(void); Key GetEventKey(KeyEvent *, boolean); KeyMod HandleKeyModState(Key, int); -KeyMod GetKeyModState(); -KeyMod GetKeyModStateFromEvents(); +KeyMod GetKeyModState(void); +KeyMod GetKeyModStateFromEvents(void); void StartTextInput(int, int, int, int); -void StopTextInput(); +void StopTextInput(void); boolean CheckCloseWindowEvent(ClientMessageEvent *); -void InitJoysticks(); +void InitJoysticks(void); boolean ReadJoystick(int, int *, int *, boolean *, boolean *); boolean CheckJoystickOpened(int); -void ClearJoystickState(); +void ClearJoystickState(void); #endif /* SYSTEM_H */