X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=0d427559c812d71a0b821b87c7d2bdeb2dfd5324;hb=a4d4e8e444b21b58dcc88b52ff22726c545142a4;hp=98d59381c2a914c37888675301cdc14cbb24e36d;hpb=1cacebfb41c20889c904155001a5b88ace962348;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 98d59381..0d427559 100644 --- a/src/main.h +++ b/src/main.h @@ -39,7 +39,7 @@ #include "msdos.h" #endif /* #ifndef MSDOS */ -typedef int BOOL; +typedef unsigned char boolean; typedef unsigned char byte; #ifndef FALSE @@ -207,9 +207,58 @@ struct HiScore int Score; }; +struct OptionInfo +{ + char *display_name; + char *server_host; + int server_port; + boolean serveronly; + boolean network; + boolean verbose; +}; + +struct SetupKeyboardInfo +{ + KeySym left; + KeySym right; + KeySym up; + KeySym down; + KeySym snap; + KeySym bomb; +}; + +struct SetupJoystickInfo +{ + boolean use_joystick; + int joystick_nr; + int button_snap; + int button_bomb; +}; + +struct SetupInfo +{ + boolean sound_on; + boolean sound_loops_on; + boolean sound_music_on; + boolean sound_simple_on; + boolean toons_on; + boolean direct_draw_on; + boolean scroll_delay_on; + boolean soft_scrolling_on; + boolean fading_on; + boolean autorecord_on; + boolean quick_doors; + struct SetupKeyboardInfo key_input[MAX_PLAYERS]; + struct SetupJoystickInfo joy_input[MAX_PLAYERS]; +}; + struct PlayerInfo { - int active, local; + boolean present; /* player present in level playfield */ + boolean connected; /* player connected locally or via network */ + boolean local; /* player connected locally */ + boolean active; /* player (present && connected) */ + int index_nr, client_nr, element_nr; char login_name[MAX_NAMELEN]; @@ -221,13 +270,11 @@ struct PlayerInfo int jx,jy, last_jx,last_jy; int MovDir, MovPos, GfxPos; - int Pushing, Frame; - - int gone, LevelSolved, GameOver; - - long actual_frame_counter; + int Frame; - int frame_reset_delay; + boolean Pushing; + boolean gone, LevelSolved, GameOver; + boolean snapped; long move_delay; int last_move_dir; @@ -235,7 +282,9 @@ struct PlayerInfo long push_delay; int push_delay_value; - int snapped; + int frame_reset_delay; + + long actual_frame_counter; int score; int gems_still_needed; @@ -279,10 +328,10 @@ struct RecordingInfo unsigned long length; unsigned long length_seconds; unsigned int delay_played; - BOOL pause_before_death; - BOOL recording, playing, pausing; - BOOL fast_forward; - BOOL changed; + boolean pause_before_death; + boolean recording, playing, pausing; + boolean fast_forward; + boolean changed; struct { byte action[MAX_PLAYERS]; @@ -320,57 +369,45 @@ extern char *level_directory; extern int width, height; extern char *program_name; -extern char *display_name; -extern char *server_host; -extern int server_port; -extern int serveronly; -extern int standalone; -extern int verbose; extern int game_status; extern int game_emulation; -extern int button_status, motion_status; +extern boolean network_playing; +extern int button_status; +extern boolean motion_status; extern int key_joystick_mapping; extern int global_joystick_status, joystick_status; -extern int sound_status, sound_on; -extern int sound_loops_allowed, sound_loops_on; -extern int sound_music_on; -extern int sound_simple_on; -extern int toons_on; -extern int direct_draw_on; -extern int scroll_delay_on; -extern int soft_scrolling_on; -extern int fading_on; -extern int autorecord_on; -extern int joystick_nr; -extern int quick_doors; - -extern BOOL redraw[MAX_BUF_XSIZE][MAX_BUF_YSIZE]; +extern int sound_status; +extern boolean sound_loops_allowed; + +extern boolean redraw[MAX_BUF_XSIZE][MAX_BUF_YSIZE]; extern int redraw_x1, redraw_y1; extern int redraw_mask; extern int redraw_tiles; -extern int Feld[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; -extern int Ur[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; -extern int MovPos[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; -extern int MovDir[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; -extern int MovDelay[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; -extern int Store[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; -extern int Store2[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; -extern int StorePlayer[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; -extern int Frame[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; -extern int Stop[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; -extern int JustHit[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; -extern int AmoebaNr[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; -extern int AmoebaCnt[MAX_NUM_AMOEBA], AmoebaCnt2[MAX_NUM_AMOEBA]; -extern long Elementeigenschaften[MAX_ELEMENTS]; +extern short Feld[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +extern short Ur[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +extern short MovPos[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +extern short MovDir[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +extern short MovDelay[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +extern short Store[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +extern short Store2[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +extern short StorePlayer[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +extern short Frame[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +extern boolean Stop[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +extern short JustHit[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +extern short AmoebaNr[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +extern short AmoebaCnt[MAX_NUM_AMOEBA], AmoebaCnt2[MAX_NUM_AMOEBA]; +extern unsigned long Elementeigenschaften[MAX_ELEMENTS]; extern int level_nr, leveldir_nr, num_leveldirs; extern int lev_fieldx,lev_fieldy, scroll_x,scroll_y; extern int FX,FY, ScrollStepSize; extern int ScreenMovDir, ScreenMovPos, ScreenGfxPos; -extern int GameFrameDelay, MoveSpeed; +extern int GameFrameDelay; +extern int FfwdFrameDelay; +extern int MoveSpeed; extern int BX1,BY1, BX2,BY2; extern int ZX,ZY, ExitX,ExitY; extern int AllPlayersGone; @@ -378,17 +415,18 @@ extern int FrameCounter, TimeFrames, TimeLeft; extern int MampferNr, SiebAktiv; extern byte network_player_action[]; -extern BOOL network_player_action_received; +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[]; +extern struct OptionInfo options; +extern struct SetupInfo setup; extern char *sound_name[]; extern int background_loop[]; @@ -969,6 +1007,13 @@ extern int num_bg_loops; (s)==SND_TYGER || (s)==SND_VOYAGER || \ (s)==SND_TWILIGHT) +/* default input keys */ +#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 /* directions for moving */ #define MV_NO_MOVING 0 @@ -997,7 +1042,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