projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rnd-20040221-1-src
[rocksndiamonds.git]
/
src
/
main.h
diff --git
a/src/main.h
b/src/main.h
index 486f6f2a020e889fce10eab3994bb1126cb898f4..3036ea425a5c3278d8e8a90970b3c943e3a943fa 100644
(file)
--- a/
src/main.h
+++ b/
src/main.h
@@
-88,6
+88,7
@@
#define EP_PUSHABLE 24
#define EP_CAN_EXPLODE_DYNA 25
#define EP_PROTECTED 26
#define EP_PUSHABLE 24
#define EP_CAN_EXPLODE_DYNA 25
#define EP_PROTECTED 26
+#define EP_CAN_MOVE_INTO_ACID 27
/* values for pre-defined properties */
#define EP_PLAYER 32
/* values for pre-defined properties */
#define EP_PLAYER 32
@@
-137,13
+138,16
@@
#define EP_CAN_EXPLODE 70
#define EP_CAN_EXPLODE_3X3 71
#define EP_SP_PORT 72
#define EP_CAN_EXPLODE 70
#define EP_CAN_EXPLODE_3X3 71
#define EP_SP_PORT 72
+#define EP_CAN_EXPLODE_BY_DRAGONFIRE 73
+#define EP_CAN_EXPLODE_BY_EXPLOSION 74
+#define EP_COULD_MOVE_INTO_ACID 75
/* values for internal purpose only (level editor) */
/* values for internal purpose only (level editor) */
-#define EP_EXPLODE_RESULT 7
3
-#define EP_WALK_TO_OBJECT 7
4
-#define EP_DEADLY 7
5
+#define EP_EXPLODE_RESULT 7
6
+#define EP_WALK_TO_OBJECT 7
7
+#define EP_DEADLY 7
8
-#define NUM_ELEMENT_PROPERTIES 7
6
+#define NUM_ELEMENT_PROPERTIES 7
9
#define NUM_EP_BITFIELDS ((NUM_ELEMENT_PROPERTIES + 31) / 32)
#define EP_BITFIELD_BASE 0
#define NUM_EP_BITFIELDS ((NUM_ELEMENT_PROPERTIES + 31) / 32)
#define EP_BITFIELD_BASE 0
@@
-308,6
+312,7
@@
#define IS_PUSHABLE(e) HAS_PROPERTY(e, EP_PUSHABLE)
#define CAN_EXPLODE_DYNA(e) HAS_PROPERTY(e, EP_CAN_EXPLODE_DYNA)
#define IS_PROTECTED(e) HAS_PROPERTY(e, EP_PROTECTED)
#define IS_PUSHABLE(e) HAS_PROPERTY(e, EP_PUSHABLE)
#define CAN_EXPLODE_DYNA(e) HAS_PROPERTY(e, EP_CAN_EXPLODE_DYNA)
#define IS_PROTECTED(e) HAS_PROPERTY(e, EP_PROTECTED)
+#define CAN_MOVE_INTO_ACID(e) HAS_PROPERTY(e, EP_CAN_MOVE_INTO_ACID)
/* macros for special configurable properties */
#define IS_EM_SLIPPERY_WALL(e) HAS_PROPERTY(e, EP_EM_SLIPPERY_WALL)
/* macros for special configurable properties */
#define IS_EM_SLIPPERY_WALL(e) HAS_PROPERTY(e, EP_EM_SLIPPERY_WALL)
@@
-357,6
+362,11
@@
#define CAN_EXPLODE(e) HAS_PROPERTY(e, EP_CAN_EXPLODE)
#define CAN_EXPLODE_3X3(e) HAS_PROPERTY(e, EP_CAN_EXPLODE_3X3)
#define IS_SP_PORT(e) HAS_PROPERTY(e, EP_SP_PORT)
#define CAN_EXPLODE(e) HAS_PROPERTY(e, EP_CAN_EXPLODE)
#define CAN_EXPLODE_3X3(e) HAS_PROPERTY(e, EP_CAN_EXPLODE_3X3)
#define IS_SP_PORT(e) HAS_PROPERTY(e, EP_SP_PORT)
+#define CAN_EXPLODE_BY_DRAGONFIRE(e) \
+ HAS_PROPERTY(e, EP_CAN_EXPLODE_BY_DRAGONFIRE)
+#define CAN_EXPLODE_BY_EXPLOSION(e) \
+ HAS_PROPERTY(e, EP_CAN_EXPLODE_BY_EXPLOSION)
+#define COULD_MOVE_INTO_ACID(e) HAS_PROPERTY(e, EP_COULD_MOVE_INTO_ACID)
/* special macros used in game engine */
#define IS_CUSTOM_ELEMENT(e) ((e) >= EL_CUSTOM_START && \
/* special macros used in game engine */
#define IS_CUSTOM_ELEMENT(e) ((e) >= EL_CUSTOM_START && \
@@
-1370,26
+1380,37
@@
struct LevelInfo
boolean encoding_16bit_amoeba; /* amoeba contains 16-bit elements */
int fieldx, fieldy;
boolean encoding_16bit_amoeba; /* amoeba contains 16-bit elements */
int fieldx, fieldy;
+
int time;
int gems_needed;
int time;
int gems_needed;
+
char name[MAX_LEVEL_NAME_LEN + 1];
char author[MAX_LEVEL_AUTHOR_LEN + 1];
char name[MAX_LEVEL_NAME_LEN + 1];
char author[MAX_LEVEL_AUTHOR_LEN + 1];
+
char envelope_text[4][MAX_ENVELOPE_TEXT_LEN + 1];
int envelope_xsize[4], envelope_ysize[4];
char envelope_text[4][MAX_ENVELOPE_TEXT_LEN + 1];
int envelope_xsize[4], envelope_ysize[4];
+
int score[LEVEL_SCORE_ELEMENTS];
int score[LEVEL_SCORE_ELEMENTS];
+
int yamyam_content[MAX_ELEMENT_CONTENTS][3][3];
int num_yamyam_contents;
int yamyam_content[MAX_ELEMENT_CONTENTS][3][3];
int num_yamyam_contents;
+
int amoeba_speed;
int amoeba_content;
int amoeba_speed;
int amoeba_content;
+
int time_magic_wall;
int time_wheel;
int time_light;
int time_timegate;
int time_magic_wall;
int time_wheel;
int time_light;
int time_timegate;
+
+ int can_move_into_acid; /* bits indicate property for element groups */
+
boolean double_speed;
boolean initial_gravity;
boolean em_slippery_gems; /* EM style "gems slip from wall" behaviour */
boolean block_last_field; /* player blocks previous field while moving */
boolean sp_block_last_field; /* player blocks previous field while moving */
boolean double_speed;
boolean initial_gravity;
boolean em_slippery_gems; /* EM style "gems slip from wall" behaviour */
boolean block_last_field; /* player blocks previous field while moving */
boolean sp_block_last_field; /* player blocks previous field while moving */
+ boolean use_spring_bug; /* for compatibility with old levels */
short field[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
short field[MAX_LEV_FIELDX][MAX_LEV_FIELDY];
@@
-1560,6
+1581,8
@@
struct ElementInfo
boolean use_gfx_element; /* use custom graphic element */
short gfx_element; /* optional custom graphic element */
boolean use_gfx_element; /* use custom graphic element */
short gfx_element; /* optional custom graphic element */
+ int access_direction; /* accessible from which direction */
+
int collect_score; /* score value for collecting */
int collect_count; /* count value for collecting */
int collect_score; /* score value for collecting */
int collect_count; /* count value for collecting */