X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.h;h=1d0375f1a8fdc8f08f1dd799aa998ca35b38693b;hb=c8da2fb958f55086c20c03246e17f7f542326137;hp=76be4a459f3c0445c4b6fddd3f36ad1b7ca64a78;hpb=8e5671db64b55432158b1d43d7fd2e684544ebeb;p=rocksndiamonds.git diff --git a/src/main.h b/src/main.h index 76be4a45..1d0375f1 100644 --- a/src/main.h +++ b/src/main.h @@ -165,7 +165,7 @@ #define CE_COLLISION 5 #define CE_IMPACT 6 #define CE_SMASHED 7 -#define CE_OTHER_IS_TOUCHING 8 +#define CE_TOUCHING_ANY_SIDE_OF 8 #define CE_OTHER_IS_CHANGING 9 #define CE_OTHER_IS_EXPLODING 10 #define CE_OTHER_GETS_TOUCHED 11 @@ -178,8 +178,15 @@ #define CE_BY_OTHER_ACTION 18 /* activates other element events */ #define CE_BY_DIRECT_ACTION 19 /* activates direct element events */ #define CE_OTHER_GETS_DIGGED 20 +#define CE_TOUCHING_LEFT_OF 21 +#define CE_TOUCHING_RIGHT_OF 22 +#define CE_TOUCHING_TOP_OF 23 +#define CE_TOUCHING_BOTTOM_OF 24 -#define NUM_CHANGE_EVENTS 21 +/* values for derived change events (determined from properties above) */ +#define CE_TOUCHING_SOME_SIDE 25 /* summarized left/right/up/down/any */ + +#define NUM_CHANGE_EVENTS 26 #define CE_BITMASK_DEFAULT 0 @@ -376,7 +383,7 @@ #define MAX_ENVELOPE_YSIZE 20 #define MAX_ENVELOPE_TEXT_LEN (MAX_ENVELOPE_XSIZE * MAX_ENVELOPE_YSIZE) #define MIN_CHANGE_PAGES 1 -#define MAX_CHANGE_PAGES 10 +#define MAX_CHANGE_PAGES 16 /* values for elements with content */ #define MIN_ELEMENT_CONTENTS 1 @@ -792,24 +799,25 @@ #define EL_CONVEYOR_BELT_4_MIDDLE_ACTIVE (EL_FIRST_RUNTIME_REAL + 28) #define EL_CONVEYOR_BELT_4_RIGHT_ACTIVE (EL_FIRST_RUNTIME_REAL + 29) #define EL_EXIT_OPENING (EL_FIRST_RUNTIME_REAL + 30) -#define EL_SP_EXIT_OPEN (EL_FIRST_RUNTIME_REAL + 31) -#define EL_SP_TERMINAL_ACTIVE (EL_FIRST_RUNTIME_REAL + 32) -#define EL_SP_BUGGY_BASE_ACTIVATING (EL_FIRST_RUNTIME_REAL + 33) -#define EL_SP_BUGGY_BASE_ACTIVE (EL_FIRST_RUNTIME_REAL + 34) -#define EL_SP_MURPHY_CLONE (EL_FIRST_RUNTIME_REAL + 35) -#define EL_AMOEBA_DROPPING (EL_FIRST_RUNTIME_REAL + 36) -#define EL_QUICKSAND_EMPTYING (EL_FIRST_RUNTIME_REAL + 37) -#define EL_MAGIC_WALL_ACTIVE (EL_FIRST_RUNTIME_REAL + 38) -#define EL_BD_MAGIC_WALL_ACTIVE (EL_FIRST_RUNTIME_REAL + 39) -#define EL_MAGIC_WALL_FULL (EL_FIRST_RUNTIME_REAL + 40) -#define EL_BD_MAGIC_WALL_FULL (EL_FIRST_RUNTIME_REAL + 41) -#define EL_MAGIC_WALL_EMPTYING (EL_FIRST_RUNTIME_REAL + 42) -#define EL_BD_MAGIC_WALL_EMPTYING (EL_FIRST_RUNTIME_REAL + 43) -#define EL_MAGIC_WALL_DEAD (EL_FIRST_RUNTIME_REAL + 44) -#define EL_BD_MAGIC_WALL_DEAD (EL_FIRST_RUNTIME_REAL + 45) +#define EL_EXIT_CLOSING (EL_FIRST_RUNTIME_REAL + 31) +#define EL_SP_EXIT_OPEN (EL_FIRST_RUNTIME_REAL + 32) +#define EL_SP_TERMINAL_ACTIVE (EL_FIRST_RUNTIME_REAL + 33) +#define EL_SP_BUGGY_BASE_ACTIVATING (EL_FIRST_RUNTIME_REAL + 34) +#define EL_SP_BUGGY_BASE_ACTIVE (EL_FIRST_RUNTIME_REAL + 35) +#define EL_SP_MURPHY_CLONE (EL_FIRST_RUNTIME_REAL + 36) +#define EL_AMOEBA_DROPPING (EL_FIRST_RUNTIME_REAL + 37) +#define EL_QUICKSAND_EMPTYING (EL_FIRST_RUNTIME_REAL + 38) +#define EL_MAGIC_WALL_ACTIVE (EL_FIRST_RUNTIME_REAL + 39) +#define EL_BD_MAGIC_WALL_ACTIVE (EL_FIRST_RUNTIME_REAL + 40) +#define EL_MAGIC_WALL_FULL (EL_FIRST_RUNTIME_REAL + 41) +#define EL_BD_MAGIC_WALL_FULL (EL_FIRST_RUNTIME_REAL + 42) +#define EL_MAGIC_WALL_EMPTYING (EL_FIRST_RUNTIME_REAL + 43) +#define EL_BD_MAGIC_WALL_EMPTYING (EL_FIRST_RUNTIME_REAL + 44) +#define EL_MAGIC_WALL_DEAD (EL_FIRST_RUNTIME_REAL + 45) +#define EL_BD_MAGIC_WALL_DEAD (EL_FIRST_RUNTIME_REAL + 46) /* "unreal" (and therefore not drawable) runtime elements */ -#define EL_FIRST_RUNTIME_UNREAL (EL_FIRST_RUNTIME_REAL + 46) +#define EL_FIRST_RUNTIME_UNREAL (EL_FIRST_RUNTIME_REAL + 47) #define EL_BLOCKED (EL_FIRST_RUNTIME_UNREAL + 0) #define EL_EXPLOSION (EL_FIRST_RUNTIME_UNREAL + 1) @@ -993,9 +1001,9 @@ #define PROGRAM_VERSION_MAJOR 3 #define PROGRAM_VERSION_MINOR 0 -#define PROGRAM_VERSION_PATCH 3 +#define PROGRAM_VERSION_PATCH 5 #define PROGRAM_VERSION_RELEASE 0 -#define PROGRAM_VERSION_STRING "3.0.3" +#define PROGRAM_VERSION_STRING "3.0.5" #define PROGRAM_TITLE_STRING "Rocks'n'Diamonds" #define PROGRAM_AUTHOR_STRING "Holger Schemel" @@ -1094,6 +1102,8 @@ struct PlayerInfo boolean is_digging; boolean is_collecting; + boolean show_envelope; + unsigned long move_delay; int move_delay_value; @@ -1441,7 +1451,8 @@ extern short StorePlayer[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern short Back[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern boolean Stop[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern boolean Pushed[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; -extern boolean Changed[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +extern unsigned long Changed[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; +extern unsigned long ChangeEvent[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern short JustStopped[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern short AmoebaNr[MAX_LEV_FIELDX][MAX_LEV_FIELDY]; extern short AmoebaCnt[MAX_NUM_AMOEBA];