#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_GETTAPE "/api/scores/gettape"
#define API_SERVER_URI_RENAME "/api/players/rename"
#define API_SERVER_URI_RESETUUID "/api/players/resetuuid"
#define TAPES_DIRECTORY "tapes"
#define SCORES_DIRECTORY "scores"
#define DOCS_DIRECTORY "docs"
+#define ELEMENTS_DIRECTORY "elements"
+#define CREDITS_DIRECTORY "credits"
+#define INFO_DIRECTORY "info"
#define CACHE_DIRECTORY "cache"
#define CONF_DIRECTORY "conf"
#define NETWORK_DIRECTORY "network"
#define USERS_DIRECTORY "users"
+#define PERSISTENT_DIRECTORY "/persistent"
#define GFX_CLASSIC_SUBDIR "gfx_classic"
#define SND_CLASSIC_SUBDIR "snd_classic"
#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 BACKLINK_TEXT_SCORES "back"
-#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 ? \
+ BACKLINK_TEXT_SCORES : \
+ (t) == TREE_TYPE_LEVEL_DIR ? \
BACKLINK_TEXT_MAIN : \
BACKLINK_TEXT_SETUP)
#define UPDATE_BUSY_STATE() \
{ \
if (gfx.draw_busy_anim_function != NULL) \
- gfx.draw_busy_anim_function(); \
+ gfx.draw_busy_anim_function(TRUE); \
+}
+#define UPDATE_BUSY_STATE_NOT_LOADING() \
+{ \
+ if (gfx.draw_busy_anim_function != NULL) \
+ gfx.draw_busy_anim_function(FALSE); \
}
int anim_random_frame;
- void (*draw_busy_anim_function)(void);
+ void (*draw_busy_anim_function)(boolean);
void (*draw_global_anim_function)(int, int);
void (*draw_global_border_function)(int);
void (*draw_tile_cursor_function)(int);
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
void InitGfxWindowInfo(int, int);
void InitGfxScrollbufferInfo(int, int);
void InitGfxClipRegion(boolean, int, int, int, int);
-void InitGfxDrawBusyAnimFunction(void (*draw_busy_anim_function)(void));
+void InitGfxDrawBusyAnimFunction(void (*draw_busy_anim_function)(boolean));
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 StartTextInput(int, int, int, int);
void StopTextInput(void);
void PushUserEvent(int, int, int);
+boolean PendingEscapeKeyEvent(void);
void InitJoysticks(void);
boolean ReadJoystick(int, int *, int *, boolean *, boolean *);