X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=81a67831e3e189d0c44f639f0b0b227f86df3d5d;hb=82b1f76754f039e4ee151c7da7c49819c7310546;hp=7fa6425715a497943e05c9b05b4c8354bd274928;hpb=8cef2a63b6c56ba086183693d3f73f02862cbd8f;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 7fa64257..81a67831 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,34 @@ 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; + 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 +422,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 +434,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 +1017,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 @@ -1042,7 +1054,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 @@ -1075,17 +1088,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 @@ -1096,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" @@ -1107,12 +1128,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" @@ -1208,4 +1233,4 @@ extern int num_bg_loops; #define ANIM_OSCILLATE 1 #define ANIM_REVERSE 2 -#endif +#endif /* MAIN_H */