added deactivating laser target element when disabling laser in MM engine
[rocksndiamonds.git] / src / game_mm / export.h
index 07ebf934e92d01804b5ac6151de36a51b1fdba1a..e9d84fda44a870cfea5940571bdbf5e6595275c8 100644 (file)
@@ -27,6 +27,8 @@
 
 #define MM_LEVEL_SCORE_ELEMENTS                16
 
+#define MM_MAX_BALL_CONTENTS           16
+
 #define MM_MAX_LEVEL_NAME_LEN          32
 #define MM_MAX_LEVEL_AUTHOR_LEN                32
 
@@ -43,9 +45,6 @@
 #define EL_MM_RUNTIME_START_NATIVE     500
 #define EL_MM_RUNTIME_END_NATIVE       504
 
-#define EL_MM_DUMMY_START_NATIVE       700
-#define EL_MM_DUMMY_END_NATIVE         709
-
 // elements to be specially mapped
 #define EL_MM_EMPTY_NATIVE             0
 #define EL_DF_EMPTY_NATIVE             304
@@ -115,6 +114,9 @@ struct LaserInfo
   int fuse_x, fuse_y;
 
   int dest_element;
+  int dest_element_last;
+  int dest_element_last_x;
+  int dest_element_last_y;
   boolean stops_inside_element;
 
   boolean redraw;
@@ -138,6 +140,7 @@ struct GameInfo_MM
   int kettles_still_needed;
   int lights_still_needed;
   int num_keys;
+  int ball_choice_pos;         // current content element choice position
 
   boolean level_solved;
   boolean game_over;
@@ -171,6 +174,10 @@ struct LevelInfo_MM
   int time_ball;
   int time_block;
 
+  int num_ball_contents;
+  int ball_choice_mode;
+  int ball_content[MM_MAX_BALL_CONTENTS];
+
   short field[MAX_PLAYFIELD_WIDTH][MAX_PLAYFIELD_HEIGHT];
 };