X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=a43543e54255c737d86964320e8ef158fab8932e;hb=d7d97176a88ee47f893055480c76b9c05a253d05;hp=7b9debaca77f20680ad0c35e467084e8e1bc9056;hpb=684ddd785539f8e049791894a3246db5dc020766;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 7b9debac..a43543e5 100644 --- a/src/main.h +++ b/src/main.h @@ -217,6 +217,22 @@ struct OptionInfo boolean verbose; }; +struct SetupJoystickInfo +{ + int snap; + int bomb; +}; + +struct SetupKeyboardInfo +{ + KeySym left; + KeySym right; + KeySym up; + KeySym down; + KeySym snap; + KeySym bomb; +}; + struct SetupInfo { boolean sound_on; @@ -230,7 +246,20 @@ struct SetupInfo boolean fading_on; boolean autorecord_on; boolean quick_doors; - int joystick_nr; + struct + { + boolean use_joystick; + int joystick_nr; + struct SetupJoystickInfo joy; + struct SetupKeyboardInfo key; + } input[MAX_PLAYERS]; +}; + +struct SetupFileInfo +{ + char *token; + char *value; + struct SetupFileInfo *next; }; struct PlayerInfo @@ -242,6 +271,8 @@ struct PlayerInfo int index_nr, client_nr, element_nr; + byte action; + char login_name[MAX_NAMELEN]; char alias_name[MAX_NAMELEN]; int handicap; @@ -395,20 +426,18 @@ extern int AllPlayersGone; extern int FrameCounter, TimeFrames, TimeLeft; extern int MampferNr, SiebAktiv; -extern byte network_player_action[]; extern boolean network_player_action_received; extern int TestPlayer; extern struct LevelDirInfo leveldir[]; extern struct LevelInfo level; -extern struct PlayerInfo stored_player[]; -extern struct PlayerInfo *local_player; +extern struct PlayerInfo stored_player[], *local_player; extern struct HiScore highscore[]; extern struct RecordingInfo tape; extern struct SoundInfo Sound[]; extern struct JoystickInfo joystick[]; -struct OptionInfo options; -struct SetupInfo setup; +extern struct OptionInfo options; +extern struct SetupInfo setup; extern char *sound_name[]; extern int background_loop[]; @@ -989,6 +1018,16 @@ extern int num_bg_loops; (s)==SND_TYGER || (s)==SND_VOYAGER || \ (s)==SND_TWILIGHT) +/* default input keys */ +#define KEY_UNDEFINDED XK_VoidSymbol +#define DEFAULT_KEY_LEFT XK_Left +#define DEFAULT_KEY_RIGHT XK_Right +#define DEFAULT_KEY_UP XK_Up +#define DEFAULT_KEY_DOWN XK_Down +#define DEFAULT_KEY_SNAP XK_Shift_L +#define DEFAULT_KEY_BOMB XK_Shift_R +#define DEFAULT_KEY_OKAY XK_Return +#define DEFAULT_KEY_CANCEL XK_Escape /* directions for moving */ #define MV_NO_MOVING 0 @@ -1017,7 +1056,8 @@ extern int num_bg_loops; #define TYPENAME 5 #define HALLOFFAME 6 #define SETUP 7 -#define EXITGAME 8 +#define SETUPINPUT 8 +#define EXITGAME 9 /* values for game_emulation */ #define EMU_NONE 0 @@ -1050,17 +1090,22 @@ extern int num_bg_loops; #ifndef JOYDAT_PATH #define JOYDAT_PATH GAME_DIR #endif +#ifndef SETUP_PATH +#define SETUP_PATH GAME_DIR +#endif #ifndef MSDOS #define SCORE_FILENAME "ROCKS.score" #define NAMES_FILENAME "ROCKS.names" #define LEVDIR_FILENAME "ROCKS.levelinfo" #define JOYDAT_FILENAME "ROCKS.joystick" +#define SETUP_FILENAME "ROCKS.setup" #else #define SCORE_FILENAME "ROCKS.sco" #define NAMES_FILENAME "ROCKS.nam" #define LEVDIR_FILENAME "ROCKS.lev" #define JOYDAT_FILENAME "ROCKS.joy" +#define SETUP_FILENAME "ROCKS.set" #endif #define JOYDAT_FILE JOYDAT_PATH "/" JOYDAT_FILENAME @@ -1071,6 +1116,7 @@ extern int num_bg_loops; #define LEVDIR_PERMS LEVEL_PERMS #define LEVREC_PERMS LEVEL_PERMS #define JOYDAT_PERMS LEVEL_PERMS +#define SETUP_PERMS LEVEL_PERMS /* old cookies */ #define NAMES_COOKIE_10 "ROCKSNDIAMONDS_NAMES_FILE_VERSION_1.0" @@ -1082,12 +1128,14 @@ extern int num_bg_loops; #define LEVELDIR_COOKIE "ROCKSNDIAMONDS_LEVELDIR_FILE_VERSION_1.0" #define LEVELREC_COOKIE "ROCKSNDIAMONDS_LEVELREC_FILE_VERSION_1.2" #define JOYSTICK_COOKIE "ROCKSNDIAMONDS_JOYSTICK_FILE_VERSION_1.0" +#define SETUP_COOKIE "ROCKSNDIAMONDS_SETUP_FILE_VERSION_1.2" #define LEVEL_COOKIE_LEN (strlen(LEVEL_COOKIE)+1) #define SCORE_COOKIE_LEN (strlen(SCORE_COOKIE)+1) #define NAMES_COOKIE_LEN (strlen(NAMES_COOKIE)+1) #define LEVELDIR_COOKIE_LEN (strlen(LEVELDIR_COOKIE)+1) #define LEVELREC_COOKIE_LEN (strlen(LEVELREC_COOKIE)+1) #define JOYSTICK_COOKIE_LEN (strlen(JOYSTICK_COOKIE)+1) +#define SETUP_COOKIE_LEN (strlen(SETUP_COOKIE)+1) #define VERSION_STRING "1.2" #define GAMETITLE_STRING "Rocks'n'Diamonds"