X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmain.h;h=4889094c0ee6521af635e08634133c4a9dd8e5b9;hb=632b8ce3e7c946dc6d5e9d1f93a1a8dcb38e510c;hp=7b82f5e3a138adc4801cf5273e064a22b90fad14;hpb=cd9add1d9479d1938d05ca9df4f31c3f99bd5f3e;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 7b82f5e3..4889094c 100644 --- a/src/main.h +++ b/src/main.h @@ -161,11 +161,33 @@ #define TAPE_IS_STOPPED(x) (!(x).recording && !(x).playing) #define PLAYERINFO(x,y) (&stored_player[StorePlayer[x][y]-EL_PLAYER1]) -#define SHIELD_ON(p) ((p)->shield_passive_time_left > 0) +#define SHIELD_ON(p) ((p)->shield_normal_time_left > 0) #define PROTECTED_FIELD(x,y) (IS_TUBE(Feld[x][y])) #define PLAYER_PROTECTED(x,y) (SHIELD_ON(PLAYERINFO(x, y)) || \ PROTECTED_FIELD(x, y)) +#define PLAYER_NR_GFX(g,i) ((g) + i * (IMG_PLAYER2 - IMG_PLAYER1)) + + +#if 0 + +/* Bitmaps with graphic file */ +#define PIX_BACK 0 +#define PIX_DOOR 1 +#define PIX_TOONS 2 +#define PIX_FONT_BIG 3 +#define PIX_FONT_SMALL 4 +#define PIX_FONT_MEDIUM 5 +#define PIX_FONT_EM 6 +/* Bitmaps without graphic file */ +#define PIX_DB_DOOR 7 +#define PIX_DB_FIELD 8 + +#define NUM_PICTURES 7 +#define NUM_BITMAPS 9 + +#else + /* Bitmaps with graphic file */ #define PIX_BACK 0 #define PIX_ELEMENTS 1 @@ -186,6 +208,8 @@ #define NUM_PICTURES 12 #define NUM_BITMAPS 14 +#endif + /* boundaries of arrays etc. */ #define MAX_LEVEL_NAME_LEN 32 #define MAX_LEVEL_AUTHOR_LEN 32 @@ -255,9 +279,9 @@ #define MICRO_GFX_PER_LINE 16 #define MINI_FONT_STARTX 0 -#define MINI_FONT_STARTY 128 -#define MICRO_FONT_STARTX 408 -#define MICRO_FONT_STARTY 128 +#define MINI_FONT_STARTY 160 +#define MICRO_FONT_STARTX 384 +#define MICRO_FONT_STARTY 160 #define HEROES_PER_LINE 16 @@ -666,37 +690,36 @@ #define EL_TIMEGATE_CLOSING (EL_FIRST_RUNTIME_REAL + 20) #define EL_PEARL_BREAKING (EL_FIRST_RUNTIME_REAL + 21) #define EL_TRAP_ACTIVE (EL_FIRST_RUNTIME_REAL + 22) -#define EL_SPRING_MOVING (EL_FIRST_RUNTIME_REAL + 23) -#define EL_SP_MURPHY_CLONE (EL_FIRST_RUNTIME_REAL + 24) -#define EL_QUICKSAND_EMPTYING (EL_FIRST_RUNTIME_REAL + 25) -#define EL_MAGIC_WALL_EMPTYING (EL_FIRST_RUNTIME_REAL + 26) -#define EL_BD_MAGIC_WALL_EMPTYING (EL_FIRST_RUNTIME_REAL + 27) -#define EL_AMOEBA_DRIPPING (EL_FIRST_RUNTIME_REAL + 28) -#define EL_SP_EXIT_OPEN (EL_FIRST_RUNTIME_REAL + 29) -#define EL_INVISIBLE_STEELWALL_ACTIVE (EL_FIRST_RUNTIME_REAL + 30) -#define EL_INVISIBLE_SAND_ACTIVE (EL_FIRST_RUNTIME_REAL + 31) -#define EL_INVISIBLE_WALL_ACTIVE (EL_FIRST_RUNTIME_REAL + 32) -#define EL_CONVEYOR_BELT1_LEFT_ACTIVE (EL_FIRST_RUNTIME_REAL + 33) -#define EL_CONVEYOR_BELT1_MIDDLE_ACTIVE (EL_FIRST_RUNTIME_REAL + 34) -#define EL_CONVEYOR_BELT1_RIGHT_ACTIVE (EL_FIRST_RUNTIME_REAL + 35) -#define EL_CONVEYOR_BELT2_LEFT_ACTIVE (EL_FIRST_RUNTIME_REAL + 36) -#define EL_CONVEYOR_BELT2_MIDDLE_ACTIVE (EL_FIRST_RUNTIME_REAL + 37) -#define EL_CONVEYOR_BELT2_RIGHT_ACTIVE (EL_FIRST_RUNTIME_REAL + 38) -#define EL_CONVEYOR_BELT3_LEFT_ACTIVE (EL_FIRST_RUNTIME_REAL + 39) -#define EL_CONVEYOR_BELT3_MIDDLE_ACTIVE (EL_FIRST_RUNTIME_REAL + 40) -#define EL_CONVEYOR_BELT3_RIGHT_ACTIVE (EL_FIRST_RUNTIME_REAL + 41) -#define EL_CONVEYOR_BELT4_LEFT_ACTIVE (EL_FIRST_RUNTIME_REAL + 42) -#define EL_CONVEYOR_BELT4_MIDDLE_ACTIVE (EL_FIRST_RUNTIME_REAL + 43) -#define EL_CONVEYOR_BELT4_RIGHT_ACTIVE (EL_FIRST_RUNTIME_REAL + 44) +#define EL_SP_MURPHY_CLONE (EL_FIRST_RUNTIME_REAL + 23) +#define EL_QUICKSAND_EMPTYING (EL_FIRST_RUNTIME_REAL + 24) +#define EL_MAGIC_WALL_EMPTYING (EL_FIRST_RUNTIME_REAL + 25) +#define EL_BD_MAGIC_WALL_EMPTYING (EL_FIRST_RUNTIME_REAL + 26) +#define EL_AMOEBA_DRIPPING (EL_FIRST_RUNTIME_REAL + 27) +#define EL_SP_EXIT_OPEN (EL_FIRST_RUNTIME_REAL + 28) +#define EL_INVISIBLE_STEELWALL_ACTIVE (EL_FIRST_RUNTIME_REAL + 29) +#define EL_INVISIBLE_SAND_ACTIVE (EL_FIRST_RUNTIME_REAL + 30) +#define EL_INVISIBLE_WALL_ACTIVE (EL_FIRST_RUNTIME_REAL + 31) +#define EL_CONVEYOR_BELT1_LEFT_ACTIVE (EL_FIRST_RUNTIME_REAL + 32) +#define EL_CONVEYOR_BELT1_MIDDLE_ACTIVE (EL_FIRST_RUNTIME_REAL + 33) +#define EL_CONVEYOR_BELT1_RIGHT_ACTIVE (EL_FIRST_RUNTIME_REAL + 34) +#define EL_CONVEYOR_BELT2_LEFT_ACTIVE (EL_FIRST_RUNTIME_REAL + 35) +#define EL_CONVEYOR_BELT2_MIDDLE_ACTIVE (EL_FIRST_RUNTIME_REAL + 36) +#define EL_CONVEYOR_BELT2_RIGHT_ACTIVE (EL_FIRST_RUNTIME_REAL + 37) +#define EL_CONVEYOR_BELT3_LEFT_ACTIVE (EL_FIRST_RUNTIME_REAL + 38) +#define EL_CONVEYOR_BELT3_MIDDLE_ACTIVE (EL_FIRST_RUNTIME_REAL + 39) +#define EL_CONVEYOR_BELT3_RIGHT_ACTIVE (EL_FIRST_RUNTIME_REAL + 40) +#define EL_CONVEYOR_BELT4_LEFT_ACTIVE (EL_FIRST_RUNTIME_REAL + 41) +#define EL_CONVEYOR_BELT4_MIDDLE_ACTIVE (EL_FIRST_RUNTIME_REAL + 42) +#define EL_CONVEYOR_BELT4_RIGHT_ACTIVE (EL_FIRST_RUNTIME_REAL + 43) /* "unreal" (and therefore not drawable) runtime elements */ -#define EL_FIRST_RUNTIME_UNREAL (EL_FIRST_RUNTIME_REAL + 45) +#define EL_FIRST_RUNTIME_UNREAL (EL_FIRST_RUNTIME_REAL + 44) #define EL_BLOCKED (EL_FIRST_RUNTIME_UNREAL + 0) #define EL_EXPLOSION (EL_FIRST_RUNTIME_UNREAL + 1) -#define EL_CRACKINGNUT (EL_FIRST_RUNTIME_UNREAL + 2) -#define EL_ACID_SPLASHING_LEFT (EL_FIRST_RUNTIME_UNREAL + 3) -#define EL_ACID_SPLASHING_RIGHT (EL_FIRST_RUNTIME_UNREAL + 4) +#define EL_NUT_CRACKING (EL_FIRST_RUNTIME_UNREAL + 2) +#define EL_ACID_SPLASH_LEFT (EL_FIRST_RUNTIME_UNREAL + 3) +#define EL_ACID_SPLASH_RIGHT (EL_FIRST_RUNTIME_UNREAL + 4) #define EL_AMOEBA_CREATING (EL_FIRST_RUNTIME_UNREAL + 5) #define EL_AMOEBA_SHRINKING (EL_FIRST_RUNTIME_UNREAL + 6) #define EL_WALL_GROWING_ACTIVE (EL_FIRST_RUNTIME_UNREAL + 7) @@ -1328,13 +1351,17 @@ #define GFX_ACTION_PASSING 8 #define GFX_ACTION_IMPACT 9 #define GFX_ACTION_CRACKING 10 -#define GFX_ACTION_ACTIVATING 11 -#define GFX_ACTION_EATING 12 -#define GFX_ACTION_ATTACKING 13 -#define GFX_ACTION_GROWING 14 -#define GFX_ACTION_OTHER 15 - -#define NUM_GFX_ACTIONS 16 +#define GFX_ACTION_BREAKING 11 +#define GFX_ACTION_ACTIVATING 12 +#define GFX_ACTION_OPENING 13 +#define GFX_ACTION_CLOSING 14 +#define GFX_ACTION_EATING 15 +#define GFX_ACTION_ATTACKING 16 +#define GFX_ACTION_GROWING 17 +#define GFX_ACTION_SHRINKING 18 +#define GFX_ACTION_OTHER 19 + +#define NUM_GFX_ACTIONS 20 #define NUM_GFX_ACTIONS_MAPPED 8 @@ -1344,13 +1371,17 @@ #define GFX_ARG_OFFSET 2 #define GFX_ARG_VERTICAL 3 #define GFX_ARG_FRAMES 4 -#define GFX_ARG_DELAY 5 -#define GFX_ARG_MODE_LOOP 6 -#define GFX_ARG_MODE_LINEAR 7 -#define GFX_ARG_MODE_PINGPONG 8 -#define GFX_ARG_MODE_PINGPONG2 9 -#define GFX_ARG_MODE_REVERSE 10 -#define GFX_ARG_GLOBAL_SYNC 11 +#define GFX_ARG_START_FRAME 5 +#define GFX_ARG_DELAY 6 +#define GFX_ARG_MODE_LOOP 7 +#define GFX_ARG_MODE_LINEAR 8 +#define GFX_ARG_MODE_PINGPONG 9 +#define GFX_ARG_MODE_PINGPONG2 10 +#define GFX_ARG_MODE_REVERSE 11 +#define GFX_ARG_GLOBAL_SYNC 12 + +#define NUM_GFX_ARGS 13 + /* values for sound configuration suffixes */ /* (currently none) */ @@ -1471,8 +1502,8 @@ struct PlayerInfo int key[4]; int dynamite; int dynabomb_count, dynabomb_size, dynabombs_left, dynabomb_xl; - int shield_passive_time_left; - int shield_active_time_left; + int shield_normal_time_left; + int shield_deadly_time_left; }; struct LevelInfo @@ -1586,13 +1617,17 @@ struct NewGraphicInfo int src_x, src_y; /* derived from (tile sized) .xpos/.ypos */ int offset_x, offset_y; /* x/y offset to next animation frame */ int anim_frames; + int anim_start_frame; int anim_delay; /* important: delay of 1 means "no delay"! */ int anim_mode; boolean anim_global_sync; }; extern GC tile_clip_gc; +#if 0 extern Bitmap *pix[]; +#endif +extern Bitmap *bitmap_db_field, *bitmap_db_door; extern Pixmap tile_clipmask[]; extern DrawBuffer *fieldbuffer; extern DrawBuffer *drawto_field;