// maximum number of parallel players supported by libgame functions
#define MAX_PLAYERS 4
+// maximum number of player names
+#define MAX_PLAYER_NAMES 10
+
// maximum allowed length of player name
#define MAX_PLAYER_NAME_LEN 10
#define CACHE_DIRECTORY "cache"
#define CONF_DIRECTORY "conf"
#define NETWORK_DIRECTORY "network"
+#define USERS_DIRECTORY "users"
#define GFX_CLASSIC_SUBDIR "gfx_classic"
#define SND_CLASSIC_SUBDIR "snd_classic"
// file names and filename extensions
#define LEVELSETUP_DIRECTORY "levelsetup"
#define SETUP_FILENAME "setup.conf"
+#define USERSETUP_FILENAME "usersetup.conf"
#define AUTOSETUP_FILENAME "autosetup.conf"
#define LEVELSETUP_FILENAME "levelsetup.conf"
#define EDITORSETUP_FILENAME "editorsetup.conf"
#define TREE_TYPE_MUSIC_DIR ARTWORK_TYPE_MUSIC
#define TREE_TYPE_LEVEL_DIR 3
#define TREE_TYPE_LEVEL_NR 4
+#define TREE_TYPE_PLAYER_NAME 5
+#define TREE_TYPE_PLAYER_TEAM 6
#define NUM_BASE_TREE_TYPES 4
-#define NUM_TREE_TYPES 5
+#define NUM_TREE_TYPES 7
#define INFOTEXT_UNDEFINED ""
#define INFOTEXT_GRAPHICS_DIR "Custom Graphics"
#define INFOTEXT_MUSIC_DIR "Custom Music"
#define INFOTEXT_LEVEL_DIR "Level Sets"
#define INFOTEXT_LEVEL_NR "Levels"
-
-#define TREE_INFOTEXT(t) ((t) == TREE_TYPE_LEVEL_NR ? \
+#define INFOTEXT_PLAYER_NAME "Player Names"
+#define INFOTEXT_PLAYER_TEAM "Player Teams"
+
+#define TREE_INFOTEXT(t) ((t) == TREE_TYPE_PLAYER_NAME ? \
+ INFOTEXT_PLAYER_NAME : \
+ (t) == TREE_TYPE_PLAYER_TEAM ? \
+ INFOTEXT_PLAYER_TEAM : \
+ (t) == TREE_TYPE_LEVEL_NR ? \
INFOTEXT_LEVEL_NR : \
(t) == TREE_TYPE_LEVEL_DIR ? \
INFOTEXT_LEVEL_DIR : \
(artwork).snd_first : \
(artwork).mus_first)
+#define ARTWORK_CURRENT_PTR(artwork, type) \
+ ((type) == ARTWORK_TYPE_GRAPHICS ? \
+ &(artwork).gfx_current : \
+ (type) == ARTWORK_TYPE_SOUNDS ? \
+ &(artwork).snd_current : \
+ &(artwork).mus_current)
+
+#define ARTWORK_CURRENT(artwork, type) \
+ ((type) == ARTWORK_TYPE_GRAPHICS ? \
+ (artwork).gfx_current : \
+ (type) == ARTWORK_TYPE_SOUNDS ? \
+ (artwork).snd_current : \
+ (artwork).mus_current)
+
#define ARTWORK_CURRENT_IDENTIFIER_PTR(artwork, type) \
((type) == ARTWORK_TYPE_GRAPHICS ? \
&(artwork).gfx_current_identifier : \
boolean frame_delay_use_mod_key;
boolean frame_delay_game_only;
boolean show_frames_per_second;
+ int xsn_mode;
+ int xsn_percent;
};
struct SetupInfo
{
char *player_name;
+ boolean multiple_users;
+
boolean sound;
boolean sound_loops;
boolean sound_music;
struct OptionInfo options;
};
+struct UserInfo
+{
+ int nr;
+};
+
struct TreeInfo
{
struct TreeInfo **node_top; // topmost node in tree
extern struct ArtworkInfo artwork;
extern struct JoystickInfo joystick;
extern struct SetupInfo setup;
+extern struct UserInfo user;
extern LevelDirTree *leveldir_first_all;
extern LevelDirTree *leveldir_first;