X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=7d1f74bebe29947c8c956b9a9cf3367e913f3c18;hb=fa2a77aa4b53bb786e67f35d6c46f759ebe7823d;hp=af0b57cfd3ecf6ca0e297993b43ff2a5b9110401;hpb=234748b5eb0bc4fe29a36fd25a1d25658f53858a;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index af0b57cf..7d1f74be 100644 --- a/src/main.h +++ b/src/main.h @@ -30,9 +30,10 @@ #include "conf_gfx.h" #include "conf_snd.h" -#define IMG_EMPTY IMG_EMPTY_SPACE -#define IMG_SP_EMPTY IMG_SP_EMPTY_SPACE -#define IMG_CHAR_START IMG_CHAR_SPACE +#define IMG_EMPTY IMG_EMPTY_SPACE +#define IMG_SP_EMPTY IMG_SP_EMPTY_SPACE +#define IMG_CHAR_START IMG_CHAR_SPACE +#define IMG_GENERIC_START IMG_GENERIC_0 #define WIN_XSIZE 672 #define WIN_YSIZE 560 @@ -449,6 +450,7 @@ #define EL_CHAR_START 120 #define EL_CHAR_ASCII0 (EL_CHAR_START - 32) +#define EL_CHAR_ASCII0_START (EL_CHAR_ASCII0 + 32) #define EL_CHAR_EXCLAM (EL_CHAR_ASCII0 + 33) #define EL_CHAR_QUOTEDBL (EL_CHAR_ASCII0 + 34) #define EL_CHAR_NUMBERSIGN (EL_CHAR_ASCII0 + 35) @@ -479,11 +481,22 @@ #define EL_CHAR_OE (EL_CHAR_ASCII0 + 92) #define EL_CHAR_UE (EL_CHAR_ASCII0 + 93) #define EL_CHAR_COPYRIGHT (EL_CHAR_ASCII0 + 94) +#define EL_CHAR_UNDERSCORE (EL_CHAR_ASCII0 + 95) +#define EL_CHAR_EMPTY (EL_CHAR_ASCII0 + 96) +#define EL_CHAR_DEGREE (EL_CHAR_ASCII0 + 97) +#define EL_CHAR_TM (EL_CHAR_ASCII0 + 98) +#define EL_CHAR_CURSOR (EL_CHAR_ASCII0 + 99) +#define EL_CHAR_ASCII0_END (EL_CHAR_ASCII0 + 111) #define EL_CHAR_END (EL_CHAR_START + 79) -#define EL_CHAR(x) ((x) == 'Ä' ? EL_CHAR_AE : \ - (x) == 'Ö' ? EL_CHAR_OE : \ - (x) == 'Ü' ? EL_CHAR_UE : \ +#define EL_CHAR(x) ((x) == 'Ä' ? EL_CHAR_AE : \ + (x) == 'Ö' ? EL_CHAR_OE : \ + (x) == 'Ü' ? EL_CHAR_UE : \ + (x) == '^' ? EL_CHAR_COPYRIGHT : \ + (x) == '_' ? EL_CHAR_UNDERSCORE : \ + (x) == '°' ? EL_CHAR_DEGREE : \ + (x) == '´' ? EL_CHAR_TM : \ + (x) == '|' ? EL_CHAR_CURSOR : \ EL_CHAR_A + (x) - 'A') #define EL_WALL_GROWING_X 200 @@ -661,7 +674,15 @@ #define EL_TRAP 356 #define EL_DX_SUPABOMB 357 -#define NUM_FILE_ELEMENTS 358 +#define EL_UNUSED_358 358 +#define EL_UNUSED_359 359 + +#define EL_GENERIC_START 360 +#define EL_GENERIC_0 (EL_GENERIC_START + 0) +#define EL_GENERIC_31 (EL_GENERIC_START + 31) +#define EL_GENERIC_END (EL_GENERIC_START + 31) + +#define NUM_FILE_ELEMENTS 392 /* "real" (and therefore drawable) runtime elements */ @@ -690,31 +711,30 @@ #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) @@ -1352,13 +1372,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 @@ -1367,15 +1391,23 @@ #define GFX_ARG_YPOS 1 #define GFX_ARG_OFFSET 2 #define GFX_ARG_VERTICAL 3 -#define GFX_ARG_FRAMES 4 -#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 GFX_ARG_XOFFSET 4 +#define GFX_ARG_YOFFSET 5 +#define GFX_ARG_FRAMES 6 +#define GFX_ARG_START_FRAME 7 +#define GFX_ARG_DELAY 8 +#define GFX_ARG_MODE_LOOP 9 +#define GFX_ARG_MODE_LINEAR 10 +#define GFX_ARG_MODE_PINGPONG 11 +#define GFX_ARG_MODE_PINGPONG2 12 +#define GFX_ARG_MODE_REVERSE 13 +#define GFX_ARG_GLOBAL_SYNC 14 + +#define NUM_GFX_ARGS 15 + +#define GFX_ARG_UNDEFINED "-1000000" +#define GFX_ARG_UNDEFINED_VALUE (atoi(GFX_ARG_UNDEFINED)) + /* values for sound configuration suffixes */ /* (currently none) */ @@ -1527,6 +1559,8 @@ struct LevelInfo boolean double_speed; boolean gravity; boolean em_slippery_gems; /* EM style "gems slip from wall" behaviour */ + + boolean no_level_file; }; struct TapeInfo @@ -1546,6 +1580,8 @@ struct TapeInfo boolean recording, playing, pausing; boolean fast_forward; boolean index_search; + boolean auto_play; + boolean auto_play_level_solved; boolean quick_resume; boolean single_step; boolean changed; @@ -1582,6 +1618,9 @@ struct GameInfo struct GlobalInfo { + char *autoplay_leveldir; + int autoplay_level_nr; + float frames_per_second; boolean fps_slowdown; int fps_slowdown_factor; @@ -1618,7 +1657,10 @@ struct NewGraphicInfo }; 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;