X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=a4ea04764b5d545e1a8586c8fb5dcf2e7f7e7966;hb=0a52f54d2f6ab7dce8062c7738ede185ba5acad3;hp=0d427559c812d71a0b821b87c7d2bdeb2dfd5324;hpb=a4d4e8e444b21b58dcc88b52ff22726c545142a4;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 0d427559..a4ea0476 100644 --- a/src/main.h +++ b/src/main.h @@ -35,9 +35,9 @@ #ifdef XPM_INCLUDE_FILE #include XPM_INCLUDE_FILE #endif -#else +#else /* MSDOS */ #include "msdos.h" -#endif /* #ifndef MSDOS */ +#endif /* MSDOS */ typedef unsigned char boolean; typedef unsigned char byte; @@ -52,10 +52,10 @@ typedef unsigned char byte; #ifndef MSDOS #define WIN_XPOS 0 #define WIN_YPOS 0 -#else +#else /* MSDOS */ #define WIN_XPOS ((XRES - WIN_XSIZE) / 2) #define WIN_YPOS ((YRES - WIN_YSIZE) / 2) -#endif +#endif /* MSDOS */ #define SCR_FIELDX 17 #define SCR_FIELDY 17 #define MAX_BUF_XSIZE (SCR_FIELDX + 2) @@ -82,6 +82,7 @@ typedef unsigned char byte; #ifndef SIGN #define SIGN(a) ((a) < 0 ? -1 : ((a)>0 ? 1 : 0)) #endif + #define SCREENX(a) ((a) - scroll_x) #define SCREENY(a) ((a) - scroll_y) #define LEVELX(a) ((a) + scroll_x) @@ -217,6 +218,12 @@ struct OptionInfo boolean verbose; }; +struct SetupJoystickInfo +{ + int snap; + int bomb; +}; + struct SetupKeyboardInfo { KeySym left; @@ -227,14 +234,6 @@ struct SetupKeyboardInfo KeySym bomb; }; -struct SetupJoystickInfo -{ - boolean use_joystick; - int joystick_nr; - int button_snap; - int button_bomb; -}; - struct SetupInfo { boolean sound_on; @@ -248,25 +247,35 @@ struct SetupInfo boolean fading_on; boolean autorecord_on; boolean quick_doors; - struct SetupKeyboardInfo key_input[MAX_PLAYERS]; - struct SetupJoystickInfo joy_input[MAX_PLAYERS]; + struct + { + boolean use_joystick; + int joystick_nr; + struct SetupJoystickInfo joy; + struct SetupKeyboardInfo key; + } input[MAX_PLAYERS]; +}; + +struct SetupFileList +{ + char *token; + char *value; + struct SetupFileList *next; }; struct PlayerInfo { boolean present; /* player present in level playfield */ - boolean connected; /* player connected locally or via network */ - boolean local; /* player connected locally */ + boolean connected; /* player connected (locally or via network) */ boolean active; /* player (present && connected) */ int index_nr, client_nr, element_nr; + byte action; /* action from server or for local playing */ + byte potential_action; /* must go to network server first */ + char login_name[MAX_NAMELEN]; char alias_name[MAX_NAMELEN]; - int handicap; - unsigned int setup; - int leveldir_nr; - int level_nr; int jx,jy, last_jx,last_jy; int MovDir, MovPos, GfxPos; @@ -414,7 +423,6 @@ 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; @@ -427,6 +435,8 @@ extern struct SoundInfo Sound[]; extern struct JoystickInfo joystick[]; extern struct OptionInfo options; extern struct SetupInfo setup; +extern struct SetupFileList *setup_list; +extern struct SetupFileList *level_setup_list; extern char *sound_name[]; extern int background_loop[]; @@ -1008,12 +1018,15 @@ extern int num_bg_loops; (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 @@ -1076,17 +1089,24 @@ 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" +#define LEVELSETUP_FILENAME "ROCKS.levelsetup" #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" +#define LEVELSETUP_FILENAME "ROCKS.lvs" #endif #define JOYDAT_FILE JOYDAT_PATH "/" JOYDAT_FILENAME @@ -1097,6 +1117,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" @@ -1108,12 +1129,16 @@ 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 LEVELSETUP_COOKIE "ROCKSNDIAMONDS_LEVELSETUP_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 LEVELSETUP_COOKIE_LEN (strlen(LEVELSETUP_COOKIE)+1) #define VERSION_STRING "1.2" #define GAMETITLE_STRING "Rocks'n'Diamonds" @@ -1209,4 +1234,4 @@ extern int num_bg_loops; #define ANIM_OSCILLATE 1 #define ANIM_REVERSE 2 -#endif +#endif /* MAIN_H */