X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Flibgame%2Fsystem.h;h=939324abe37f4782b4791126d3c7985dba983d53;hb=bda127760b955e877a6509c620de6e3977a44533;hp=c1eb58d87f4dcb3876d0485be937ca4a1c89f100;hpb=22d6bccc33b6a7ddd0961be470d72800f171579c;p=rocksndiamonds.git diff --git a/src/libgame/system.h b/src/libgame/system.h index c1eb58d8..939324ab 100644 --- a/src/libgame/system.h +++ b/src/libgame/system.h @@ -510,6 +510,9 @@ // maximum number of parallel players supported by libgame functions #define MAX_PLAYERS 4 +// maximum number of player names +#define MAX_PLAYER_NAMES 12 + // maximum allowed length of player name #define MAX_PLAYER_NAME_LEN 10 @@ -627,6 +630,7 @@ #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" @@ -645,6 +649,7 @@ // 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" @@ -756,9 +761,10 @@ #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 NUM_BASE_TREE_TYPES 4 -#define NUM_TREE_TYPES 5 +#define NUM_TREE_TYPES 6 #define INFOTEXT_UNDEFINED "" #define INFOTEXT_GRAPHICS_DIR "Custom Graphics" @@ -766,8 +772,11 @@ #define INFOTEXT_MUSIC_DIR "Custom Music" #define INFOTEXT_LEVEL_DIR "Level Sets" #define INFOTEXT_LEVEL_NR "Levels" +#define INFOTEXT_PLAYER_NAME "Players & Teams" -#define TREE_INFOTEXT(t) ((t) == TREE_TYPE_LEVEL_NR ? \ +#define TREE_INFOTEXT(t) ((t) == TREE_TYPE_PLAYER_NAME ? \ + INFOTEXT_PLAYER_NAME : \ + (t) == TREE_TYPE_LEVEL_NR ? \ INFOTEXT_LEVEL_NR : \ (t) == TREE_TYPE_LEVEL_DIR ? \ INFOTEXT_LEVEL_DIR : \ @@ -866,6 +875,20 @@ (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 : \ @@ -1376,6 +1399,8 @@ struct SetupInfo { char *player_name; + boolean multiple_users; + boolean sound; boolean sound_loops; boolean sound_music; @@ -1443,6 +1468,11 @@ struct SetupInfo struct OptionInfo options; }; +struct UserInfo +{ + int nr; +}; + struct TreeInfo { struct TreeInfo **node_top; // topmost node in tree @@ -1763,6 +1793,7 @@ extern struct AnimInfo anim; 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;