X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Flibgame%2Fsystem.h;h=8265773358ca9d1806dc39e69b3c78f39a9cf61e;hb=8a2470395f5f3701811ff2da6907c9a4dc95d285;hp=598fbfef447e9ee781b03b1ee425244249d220ce;hpb=b55729ffeba9da45b5ae83abfd3460a5c0609e94;p=rocksndiamonds.git diff --git a/src/libgame/system.h b/src/libgame/system.h index 598fbfef..82657733 100644 --- a/src/libgame/system.h +++ b/src/libgame/system.h @@ -22,6 +22,8 @@ #include "windows.h" #elif defined(PLATFORM_ANDROID) #include "android.h" +#elif defined(PLATFORM_EMSCRIPTEN) +#include "emscripten.h" #endif #include "sdl.h" @@ -103,6 +105,12 @@ #define STR_NETWORK_AUTO_DETECT "auto_detect_network_server" #define STR_NETWORK_AUTO_DETECT_SETUP "(auto detect network server)" +// values for API server settings +#define API_SERVER_HOSTNAME "api.artsoft.org" +#define API_SERVER_PORT 80 +#define API_SERVER_METHOD "POST" +#define API_SERVER_URI_ADD "/api/scores/add" + // values for touch control #define TOUCH_CONTROL_OFF "off" #define TOUCH_CONTROL_VIRTUAL_BUTTONS "virtual_buttons" @@ -581,6 +589,9 @@ JOY_BUTTON_2 : \ JOY_NO_ACTION) +// maximum number of level sets in the level set history +#define MAX_LEVELDIR_HISTORY 12 + // default name for empty highscore entry #define EMPTY_PLAYER_NAME "no name" @@ -771,6 +782,11 @@ #define NUM_BASE_TREE_TYPES 4 #define NUM_TREE_TYPES 6 +#define TREE_TYPE_IS_DIR(type) ((type) == TREE_TYPE_GRAPHICS_DIR || \ + (type) == TREE_TYPE_SOUNDS_DIR || \ + (type) == TREE_TYPE_MUSIC_DIR || \ + (type) == TREE_TYPE_LEVEL_DIR) + #define INFOTEXT_UNDEFINED "" #define INFOTEXT_GRAPHICS_DIR "Custom Graphics" #define INFOTEXT_SOUNDS_DIR "Custom Sounds" @@ -779,6 +795,10 @@ #define INFOTEXT_LEVEL_NR "Levels" #define INFOTEXT_PLAYER_NAME "Players & Teams" +#define BACKLINK_TEXT_MAIN ".. (main menu)" +#define BACKLINK_TEXT_SETUP ".. (setup menu)" +#define BACKLINK_TEXT_PARENT ".. (parent directory)" + #define TREE_INFOTEXT(t) ((t) == TREE_TYPE_PLAYER_NAME ? \ INFOTEXT_PLAYER_NAME : \ (t) == TREE_TYPE_LEVEL_NR ? \ @@ -793,6 +813,10 @@ INFOTEXT_MUSIC_DIR : \ INFOTEXT_UNDEFINED) +#define TREE_BACKLINK_TEXT(t) ((t) == TREE_TYPE_LEVEL_DIR ? \ + BACKLINK_TEXT_MAIN : \ + BACKLINK_TEXT_SETUP) + #define TREE_USERDIR(t) ((t) == TREE_TYPE_LEVEL_DIR ? \ getUserLevelDir(NULL) : \ (t) == TREE_TYPE_GRAPHICS_DIR ? \ @@ -1294,6 +1318,11 @@ struct SetupAutoSetupInfo int editor_zoom_tilesize; }; +struct SetupLevelSetupInfo +{ + char *last_level_series[MAX_LEVELDIR_HISTORY + 1]; +}; + struct SetupEditorCascadeInfo { boolean el_bd; @@ -1438,6 +1467,8 @@ struct SetupInfo boolean ask_on_escape; boolean ask_on_escape_editor; boolean ask_on_game_over; + boolean ask_on_quit_game; + boolean ask_on_quit_program; boolean quick_switch; boolean input_on_focus; boolean prefer_aga_graphics; @@ -1465,6 +1496,8 @@ struct SetupInfo char *network_server_hostname; struct SetupAutoSetupInfo auto_setup; + struct SetupLevelSetupInfo level_setup; + struct SetupEditorInfo editor; struct SetupEditorCascadeInfo editor_cascade; struct SetupShortcutInfo shortcut; @@ -1538,6 +1571,7 @@ struct TreeInfo boolean level_group; // directory contains more level series directories boolean parent_link; // entry links back to parent directory + boolean is_copy; // this entry is a copy of another entry in the tree boolean in_user_dir; // user defined levels are stored in home directory boolean user_defined; // levels in user directory and marked as "private" boolean readonly; // readonly levels can not be changed with editor @@ -1956,4 +1990,7 @@ boolean ReadJoystick(int, int *, int *, boolean *, boolean *); boolean CheckJoystickOpened(int); void ClearJoystickState(void); +void InitEmscriptenFilesystem(void); +void SyncEmscriptenFilesystem(void); + #endif // SYSTEM_H