X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=7fd5813671c838c6ef56564ab03e8e94c79f767e;hb=9fc7b9df17e6cc518d82ea6572ed69dc07f49689;hp=8f979b491fd74bcb32d00198a05a7f21b443a69e;hpb=6b83db8bee17d70c4e89dc3e3b703b7032aa5f27;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 8f979b49..7fd58136 100644 --- a/src/main.h +++ b/src/main.h @@ -124,6 +124,8 @@ typedef unsigned char byte; #define EP_BIT_HAS_CONTENT (1 << 26) #define EP_BIT_EATABLE (1 << 27) #define EP_BIT_SP_ELEMENT (1 << 28) +#define EP_BIT_QUICK_GATE (1 << 29) +#define EP_BIT_OVER_PLAYER (1 << 30) #define IS_AMOEBALIVE(e) (Elementeigenschaften[e] & EP_BIT_AMOEBALIVE) #define IS_AMOEBOID(e) (Elementeigenschaften[e] & EP_BIT_AMOEBOID) @@ -154,6 +156,8 @@ typedef unsigned char byte; #define HAS_CONTENT(e) (Elementeigenschaften[e] & EP_BIT_HAS_CONTENT) #define IS_EATABLE(e) (Elementeigenschaften[e] & EP_BIT_EATABLE) #define IS_SP_ELEMENT(e) (Elementeigenschaften[e] & EP_BIT_SP_ELEMENT) +#define IS_QUICK_GATE(e) (Elementeigenschaften[e] & EP_BIT_QUICK_GATE) +#define IS_OVER_PLAYER(e) (Elementeigenschaften[e] & EP_BIT_OVER_PLAYER) #define IS_PLAYER(x,y) (ELEM_IS_PLAYER(StorePlayer[x][y])) @@ -298,6 +302,14 @@ struct PlayerInfo byte effective_action; /* action aknowledged from network server or summarized over all configured input devices when in single player mode */ + byte programmed_action; /* action forced by game itself (like moving + through doors); overrides other actions */ + + +#if 0 + byte programmed_speed; /* speed (for only one move) forced by game */ +#endif + int joystick_fd; /* file descriptor of player's joystick */ @@ -309,6 +321,7 @@ struct PlayerInfo boolean gone, LevelSolved, GameOver; boolean snapped; + int move_speed; unsigned long move_delay; int last_move_dir; @@ -442,7 +455,6 @@ extern int ScreenMovDir, ScreenMovPos, ScreenGfxPos; extern int BorderElement; extern int GameFrameDelay; extern int FfwdFrameDelay; -extern int MoveSpeed; extern int BX1,BY1, BX2,BY2; extern int SBX_Left, SBX_Right; extern int SBY_Upper, SBY_Lower; @@ -531,12 +543,12 @@ extern char *element_info[]; #define MICRO_GFX_PER_LINE 128 #define HEROES_PER_LINE 16 #define MINI_MORE_STARTX 0 -#define MINI_MORE_STARTY 224 +#define MINI_MORE_STARTY 352 #define MICRO_MORE_STARTX 0 -#define MICRO_MORE_STARTY 336 +#define MICRO_MORE_STARTY 448 #define MORE_PER_LINE 16 #define MINI_MORE_PER_LINE 16 -#define MICRO_MORE_PER_LINE 16 +#define MICRO_MORE_PER_LINE 64 #define FONT_CHARS_PER_LINE 16 #define FONT_LINES_PER_FONT 4 @@ -664,7 +676,7 @@ extern char *element_info[]; #define EL_AUSGANG_AUF 107 -#define EL_UNUSED_108 108 +#define EL_BLACK_ORB 108 #define EL_AMOEBA2DIAM 109 #define EL_MAULWURF 110 @@ -683,11 +695,14 @@ extern char *element_info[]; #define EL_CHAR_ASCII0 (EL_CHAR_START-32) #define EL_CHAR_AUSRUF (EL_CHAR_ASCII0+33) #define EL_CHAR_ZOLL (EL_CHAR_ASCII0+34) +#define EL_CHAR_RAUTE (EL_CHAR_ASCII0+35) #define EL_CHAR_DOLLAR (EL_CHAR_ASCII0+36) #define EL_CHAR_PROZ (EL_CHAR_ASCII0+37) +#define EL_CHAR_AMPERSAND (EL_CHAR_ASCII0+38) #define EL_CHAR_APOSTR (EL_CHAR_ASCII0+39) #define EL_CHAR_KLAMM1 (EL_CHAR_ASCII0+40) #define EL_CHAR_KLAMM2 (EL_CHAR_ASCII0+41) +#define EL_CHAR_MULT (EL_CHAR_ASCII0+42) #define EL_CHAR_PLUS (EL_CHAR_ASCII0+43) #define EL_CHAR_KOMMA (EL_CHAR_ASCII0+44) #define EL_CHAR_MINUS (EL_CHAR_ASCII0+45) @@ -710,16 +725,20 @@ extern char *element_info[]; #define EL_CHAR_COPY (EL_CHAR_ASCII0+94) #define EL_CHAR_END (EL_CHAR_START+79) -#define EL_CHAR(x) (EL_CHAR_A + x - 'A') +#define EL_CHAR(x) ((x) == 'Ä' ? EL_CHAR_AE : \ + (x) == 'Ö' ? EL_CHAR_OE : \ + (x) == 'Ü' ? EL_CHAR_UE : \ + EL_CHAR_A + (x) - 'A') #define EL_MAUER_X 200 #define EL_MAUER_Y 201 #define EL_MAUER_XY 202 -#define EL_UNUSED_203 203 -#define EL_UNUSED_204 204 -#define EL_UNUSED_205 205 -#define EL_UNUSED_206 206 +#define EL_EM_GATE_1 203 +#define EL_EM_GATE_2 204 +#define EL_EM_GATE_3 205 +#define EL_EM_GATE_4 206 + #define EL_UNUSED_207 207 #define EL_UNUSED_208 208 #define EL_UNUSED_209 209 @@ -767,10 +786,11 @@ extern char *element_info[]; #define EL_SP_CHIP_LOWER (EL_SP_START + 39) #define EL_SP_END (EL_SP_START + 39) -#define EL_UNUSED_250 250 -#define EL_UNUSED_251 251 -#define EL_UNUSED_252 252 -#define EL_UNUSED_253 253 +#define EL_EM_GATE_1X 250 +#define EL_EM_GATE_2X 251 +#define EL_EM_GATE_3X 252 +#define EL_EM_GATE_4X 253 + #define EL_UNUSED_254 254 #define EL_UNUSED_255 255 @@ -935,6 +955,7 @@ extern char *element_info[]; #define GFX_EDELSTEIN_ROT 152 #define GFX_EDELSTEIN_LILA 154 #define GFX_DYNABOMB_XL 156 +#define GFX_BLACK_ORB 157 #define GFX_SPEED_PILL 158 #define GFX_SONDE 159 /* Zeile 10 (160) */ @@ -1048,7 +1069,9 @@ extern char *element_info[]; /* graphics from "RocksMore" */ #define GFX_SP_EMPTY (GFX_START_ROCKSMORE + 0 * MORE_PER_LINE + 0) +/* #define GFX_SP_ZONK (GFX_START_ROCKSMORE + 0 * MORE_PER_LINE + 1) +*/ #define GFX_SP_BASE (GFX_START_ROCKSMORE + 0 * MORE_PER_LINE + 2) #define GFX_SP_MURPHY (GFX_START_ROCKSMORE + 0 * MORE_PER_LINE + 3) #define GFX_SP_INFOTRON (GFX_START_ROCKSMORE + 0 * MORE_PER_LINE + 4) @@ -1090,6 +1113,20 @@ extern char *element_info[]; #define GFX_INVISIBLE_STEEL (GFX_START_ROCKSMORE + 5 * MORE_PER_LINE + 3) #define GFX_UNSICHTBAR (GFX_START_ROCKSMORE + 5 * MORE_PER_LINE + 7) +#define GFX_SP_ZONK (GFX_START_ROCKSMORE + 6 * MORE_PER_LINE + 0) + +#define GFX_EM_KEY_1 (GFX_START_ROCKSMORE + 6 * MORE_PER_LINE + 4) +#define GFX_EM_KEY_2 (GFX_START_ROCKSMORE + 6 * MORE_PER_LINE + 5) +#define GFX_EM_KEY_3 (GFX_START_ROCKSMORE + 6 * MORE_PER_LINE + 6) +#define GFX_EM_KEY_4 (GFX_START_ROCKSMORE + 6 * MORE_PER_LINE + 7) +#define GFX_EM_GATE_1 (GFX_START_ROCKSMORE + 7 * MORE_PER_LINE + 0) +#define GFX_EM_GATE_2 (GFX_START_ROCKSMORE + 7 * MORE_PER_LINE + 1) +#define GFX_EM_GATE_3 (GFX_START_ROCKSMORE + 7 * MORE_PER_LINE + 2) +#define GFX_EM_GATE_4 (GFX_START_ROCKSMORE + 7 * MORE_PER_LINE + 3) +#define GFX_EM_GATE_1X (GFX_START_ROCKSMORE + 7 * MORE_PER_LINE + 4) +#define GFX_EM_GATE_2X (GFX_START_ROCKSMORE + 7 * MORE_PER_LINE + 5) +#define GFX_EM_GATE_3X (GFX_START_ROCKSMORE + 7 * MORE_PER_LINE + 6) +#define GFX_EM_GATE_4X (GFX_START_ROCKSMORE + 7 * MORE_PER_LINE + 7) #define GFX_MURPHY_GO_LEFT (GFX_START_ROCKSMORE + 0 * MORE_PER_LINE + 8) #define GFX_MURPHY_ANY_LEFT (GFX_START_ROCKSMORE + 0 * MORE_PER_LINE + 9) @@ -1266,7 +1303,7 @@ extern char *element_info[]; #define TAPES_DIRECTORY "tapes" #define SCORES_DIRECTORY "scores" -#define PROGRAM_VERSION_STRING "1.2.1" +#define PROGRAM_VERSION_STRING "1.3.0" #define PROGRAM_TITLE_STRING "Rocks'n'Diamonds" #define PROGRAM_AUTHOR_STRING "Holger Schemel" #define WINDOW_TITLE_STRING PROGRAM_TITLE_STRING " " PROGRAM_VERSION_STRING