#define API_SERVER_METHOD "POST"
#define API_SERVER_URI_ADD "/api/scores/add"
#define API_SERVER_URI_GET "/api/scores/get"
+#define API_SERVER_URI_RENAME "/api/players/rename"
+#define API_SERVER_URI_RESETUUID "/api/players/resetuuid"
+
+#if defined(TESTING)
+#undef API_SERVER_HOSTNAME
+#define API_SERVER_HOSTNAME "api-test.artsoft.org"
+#define TEST_PREFIX "test."
+#else
+#define TEST_PREFIX ""
+#endif
// values for touch control
#define TOUCH_CONTROL_OFF "off"
// default shortcut keys
#define DEFAULT_KEY_SAVE_GAME KSYM_F1
#define DEFAULT_KEY_LOAD_GAME KSYM_F2
+#define DEFAULT_KEY_RESTART_GAME KSYM_F3
+#define DEFAULT_KEY_PAUSE_BEFORE_END KSYM_F4
#define DEFAULT_KEY_TOGGLE_PAUSE KSYM_space
#define DEFAULT_KEY_FOCUS_PLAYER_1 KSYM_F5
#define DEFAULT_KEY_FOCUS_PLAYER_2 KSYM_F6
#define ANIM_STATIC_PANEL (1 << 13)
#define ANIM_ALL (1 << 14)
#define ANIM_ONCE (1 << 15)
+#define ANIM_TILED (1 << 16)
+#define ANIM_RANDOM_STATIC (1 << 17)
#define ANIM_DEFAULT ANIM_LOOP
#define USERSETUP_FILENAME "usersetup.conf"
#define AUTOSETUP_FILENAME "autosetup.conf"
#define LEVELSETUP_FILENAME "levelsetup.conf"
+#define SERVERSETUP_FILENAME "serversetup.conf"
#define EDITORSETUP_FILENAME "editorsetup.conf"
#define EDITORCASCADE_FILENAME "editorcascade.conf"
#define HELPANIM_FILENAME "helpanim.conf"
#define MUSICINFO_FILENAME "musicinfo.conf"
#define ARTWORKINFO_CACHE_FILE "artworkinfo.cache"
#define LEVELTEMPLATE_FILENAME "template.level"
+#define UPLOADED_FILENAME ".uploaded"
#define LEVELFILE_EXTENSION "level"
#define TAPEFILE_EXTENSION "tape"
#define SCOREFILE_EXTENSION "score"
#define TREE_TYPE_LEVEL_DIR 3
#define TREE_TYPE_LEVEL_NR 4
#define TREE_TYPE_PLAYER_NAME 5
+#define TREE_TYPE_SCORE_ENTRY 6
#define NUM_BASE_TREE_TYPES 4
-#define NUM_TREE_TYPES 6
+#define NUM_TREE_TYPES 7
#define TREE_TYPE_IS_DIR(type) ((type) == TREE_TYPE_GRAPHICS_DIR || \
(type) == TREE_TYPE_SOUNDS_DIR || \
#define INFOTEXT_LEVEL_DIR "Level Sets"
#define INFOTEXT_LEVEL_NR "Levels"
#define INFOTEXT_PLAYER_NAME "Players & Teams"
+#define INFOTEXT_SCORE_ENTRY "Hall of Fame"
#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 ? \
+#define TREE_INFOTEXT(t) ((t) == TREE_TYPE_SCORE_ENTRY ? \
+ INFOTEXT_SCORE_ENTRY : \
+ (t) == TREE_TYPE_PLAYER_NAME ? \
INFOTEXT_PLAYER_NAME : \
(t) == TREE_TYPE_LEVEL_NR ? \
INFOTEXT_LEVEL_NR : \
INFOTEXT_MUSIC_DIR : \
INFOTEXT_UNDEFINED)
-#define TREE_BACKLINK_TEXT(t) ((t) == TREE_TYPE_LEVEL_DIR ? \
+#define TREE_BACKLINK_TEXT(t) ((t) == TREE_TYPE_SCORE_ENTRY || \
+ (t) == TREE_TYPE_LEVEL_DIR ? \
BACKLINK_TEXT_MAIN : \
BACKLINK_TEXT_SETUP)
void (*exit_message_function)(char *, va_list);
void (*exit_function)(int);
+ int api_thread_count;
+
boolean headless;
};
{
boolean uses_touch_device;
- boolean api_server;
+ boolean use_api_server;
};
struct OptionInfo
char *special_flags;
char *debug_mode;
+ char *player_name;
+ char *identifier;
+ char *level_nr;
+
boolean mytapes;
boolean serveronly;
boolean network;
boolean el_steel_chars;
boolean el_ce;
boolean el_ge;
+ boolean el_es;
boolean el_ref;
boolean el_user;
boolean el_dynamic;
{
Key save_game;
Key load_game;
+ Key restart_game;
+ Key pause_before_end;
Key toggle_pause;
Key focus_player[MAX_PLAYERS];
{
char *player_name;
char *player_uuid;
+ int player_version;
boolean multiple_users;
int engine_snapshot_memory;
boolean fade_screens;
boolean autorecord;
+ boolean auto_pause_on_start;
boolean show_titlescreen;
boolean quick_doors;
boolean team_mode;
boolean small_game_graphics;
boolean show_load_save_buttons;
boolean show_undo_redo_buttons;
- boolean only_show_local_scores;
+ char *scores_in_highscore_list;
char *graphics_set;
char *sounds_set;
int network_player_nr;
char *network_server_hostname;
- boolean api_server;
+ boolean use_api_server;
char *api_server_hostname;
char *api_server_password;
+ boolean ask_for_uploading_tapes;
+ boolean ask_for_remaining_tapes;
+ boolean provide_uploading_tapes;
+ boolean ask_for_using_api_server;
+ boolean has_remaining_tapes;
struct SetupAutoSetupInfo auto_setup;
struct SetupLevelSetupInfo level_setup;
int first_level; // first level number (to allow start with 0 or 1)
int last_level; // last level number (automatically calculated)
int sort_priority; // sort levels by 'sort_priority' and then by name
+ int pos; // custom position information of node in tree
boolean latest_engine;// force level set to use the latest game engine