X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=7cdf619a7478d12976b31bf5821a4f49190b09c3;hb=5ed4de42ced8e7dce5b786ba3d5fd1a6f6a7d7f6;hp=7a7484549d3e30956c66e9cb3f92f8c668ad72b0;hpb=4f767d54c7ac468e9a42e22caf716111be1ceba9;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 7a748454..7cdf619a 100644 --- a/src/main.h +++ b/src/main.h @@ -17,9 +17,9 @@ #include #include #include -#include #include #include +#include #ifndef MSDOS #define XK_MISCELLANY @@ -48,8 +48,8 @@ typedef unsigned char boolean; typedef unsigned char byte; #ifndef FALSE -#define FALSE 0 -#define TRUE (!FALSE) +#define FALSE 0 +#define TRUE (!FALSE) #endif #define WIN_XSIZE 672 @@ -204,6 +204,7 @@ typedef unsigned char byte; #define GAME_FRAME_DELAY 20 /* frame delay in milliseconds */ #define FFWD_FRAME_DELAY 10 /* 200% speed for fast forward */ #define FRAMES_PER_SECOND (1000 / GAME_FRAME_DELAY) +#define GADGET_FRAME_DELAY 150 /* delay between gadget actions */ struct HiScore { @@ -300,15 +301,15 @@ struct PlayerInfo boolean gone, LevelSolved, GameOver; boolean snapped; - long move_delay; + unsigned long move_delay; int last_move_dir; - long push_delay; - int push_delay_value; + unsigned long push_delay; + unsigned long push_delay_value; int frame_reset_delay; - long actual_frame_counter; + unsigned long actual_frame_counter; int score; int gems_still_needed; @@ -345,7 +346,7 @@ struct LevelDirInfo boolean readonly; }; -struct RecordingInfo +struct TapeInfo { int level_nr; unsigned long random_seed; @@ -358,6 +359,7 @@ struct RecordingInfo boolean recording, playing, pausing; boolean fast_forward; boolean changed; + boolean player_participates[MAX_PLAYERS]; struct { byte action[MAX_PLAYERS]; @@ -389,6 +391,7 @@ extern char *joystick_device_name[]; extern char *program_name; extern int game_status; +extern boolean level_editor_test_game; extern boolean network_playing; extern int button_status; extern boolean motion_status; @@ -432,13 +435,12 @@ extern int FrameCounter, TimeFrames, TimeLeft; extern int MampferNr, SiebAktiv; extern boolean network_player_action_received; -extern int TestPlayer; extern struct LevelDirInfo leveldir[]; extern struct LevelInfo level; extern struct PlayerInfo stored_player[], *local_player; extern struct HiScore highscore[]; -extern struct RecordingInfo tape; +extern struct TapeInfo tape; extern struct SoundInfo Sound[]; extern struct JoystickInfo joystick[]; extern struct OptionInfo options; @@ -460,6 +462,8 @@ extern int num_bg_loops; #define DY 60 #define VX DX #define VY 400 +#define EX DX +#define EY (VY - 44) #define TILEX 32 #define TILEY 32 #define MINI_TILEX (TILEX/2) @@ -476,6 +480,8 @@ extern int num_bg_loops; #define DYSIZE 280 #define VXSIZE DXSIZE #define VYSIZE 100 +#define EXSIZE DXSIZE +#define EYSIZE (VXSIZE + 44) #define FULL_SXSIZE (2+SXSIZE+2) #define FULL_SYSIZE (2+SYSIZE+2) #define MICROLEV_XPOS (SX+4*32+16) @@ -1035,16 +1041,17 @@ extern int num_bg_loops; #define FC_SPECIAL2 5 /* values for game_status */ -#define MAINMENU 0 -#define PLAYING 1 -#define LEVELED 2 -#define HELPSCREEN 3 -#define CHOOSELEVEL 4 -#define TYPENAME 5 -#define HALLOFFAME 6 -#define SETUP 7 -#define SETUPINPUT 8 -#define EXITGAME 9 +#define EXITGAME 0 +#define MAINMENU 1 +#define PLAYING 2 +#define LEVELED 3 +#define HELPSCREEN 4 +#define CHOOSELEVEL 5 +#define TYPENAME 6 +#define HALLOFFAME 7 +#define SETUP 8 +#define SETUPINPUT 9 +#define CALIBRATION 10 #ifndef GAME_DIR #define GAME_DIR "." @@ -1058,13 +1065,13 @@ extern int num_bg_loops; #define TAPES_DIRECTORY "tapes" #define SCORES_DIRECTORY "scores" -#define VERSION_STRING "1.2 preview 1" +#define VERSION_STRING "1.2.0" #define GAMETITLE_STRING "Rocks'n'Diamonds" #define WINDOWTITLE_STRING GAMETITLE_STRING " " VERSION_STRING #define COPYRIGHT_STRING "Copyright ^1995-98 by Holger Schemel" /* default name for empty highscore entry */ -#define EMPTY_ALIAS "NO_NAME" +#define EMPTY_PLAYER_NAME "no name" /* values for button_status */ #define MB_NOT_PRESSED FALSE @@ -1083,17 +1090,18 @@ extern int num_bg_loops; #endif /* values for redraw_mask */ -#define REDRAW_ALL (1L<<0) -#define REDRAW_FIELD (1L<<1) -#define REDRAW_TILES (1L<<2) -#define REDRAW_DOOR_1 (1L<<3) -#define REDRAW_VIDEO_1 (1L<<4) -#define REDRAW_VIDEO_2 (1L<<5) -#define REDRAW_VIDEO_3 (1L<<6) -#define REDRAW_MICROLEV (1L<<7) -#define REDRAW_FROM_BACKBUFFER (1L<<8) +#define REDRAW_ALL (1L << 0) +#define REDRAW_FIELD (1L << 1) +#define REDRAW_TILES (1L << 2) +#define REDRAW_DOOR_1 (1L << 3) +#define REDRAW_VIDEO_1 (1L << 4) +#define REDRAW_VIDEO_2 (1L << 5) +#define REDRAW_VIDEO_3 (1L << 6) +#define REDRAW_MICROLEV (1L << 7) +#define REDRAW_FROM_BACKBUFFER (1L << 8) #define REDRAW_DOOR_2 (REDRAW_VIDEO_1 | REDRAW_VIDEO_2 | REDRAW_VIDEO_3) -#define REDRAW_DOORS (REDRAW_DOOR_1 | REDRAW_DOOR_2) +#define REDRAW_DOOR_3 (1L << 9) +#define REDRAW_DOORS (REDRAW_DOOR_1 | REDRAW_DOOR_2 | REDRAW_DOOR_3) #define REDRAW_MAIN (REDRAW_FIELD | REDRAW_TILES | REDRAW_MICROLEV) #define REDRAWTILES_THRESHOLD SCR_FIELDX*SCR_FIELDY/2 @@ -1111,6 +1119,8 @@ extern int num_bg_loops; #define DOOR_GFX_PAGEX4 (3 * DOOR_GFX_PAGESIZE) #define DOOR_GFX_PAGEX5 (4 * DOOR_GFX_PAGESIZE) #define DOOR_GFX_PAGEX6 (5 * DOOR_GFX_PAGESIZE) +#define DOOR_GFX_PAGEX7 (6 * DOOR_GFX_PAGESIZE) +#define DOOR_GFX_PAGEX8 (7 * DOOR_GFX_PAGESIZE) #define DOOR_GFX_PAGEY1 0 #define DOOR_GFX_PAGEY2 DYSIZE