rnd-20051213-1-src
[rocksndiamonds.git] / src / editor.c
index 32e9a6d12cbaaef8d6fd3cba4cf665dbe2c9a301..8c68e5c1bb9353a11cb33be00534b0eb6d7c519d 100644 (file)
@@ -1056,7 +1056,7 @@ static struct
     MIN_SCORE,                         MAX_SCORE,
     GADGET_ID_CUSTOM_SCORE_DOWN,       GADGET_ID_CUSTOM_SCORE_UP,
     GADGET_ID_CUSTOM_SCORE_TEXT,       GADGET_ID_NONE,
-    &custom_element.collect_score,
+    &custom_element.collect_score_initial,
     NULL,                              "score", " "
   },
   {
@@ -1064,7 +1064,7 @@ static struct
     MIN_COLLECT_COUNT,                 MAX_COLLECT_COUNT,
     GADGET_ID_CUSTOM_GEMCOUNT_DOWN,    GADGET_ID_CUSTOM_GEMCOUNT_UP,
     GADGET_ID_CUSTOM_GEMCOUNT_TEXT,    GADGET_ID_CUSTOM_SCORE_UP,
-    &custom_element.collect_count,
+    &custom_element.collect_count_initial,
     NULL,                              "count", NULL
   },
   {
@@ -1538,9 +1538,11 @@ static struct ValueTextInfo options_action_type[] =
   { CA_SET_SCORE,              "set score"                     },
   { CA_SET_CE_SCORE,           "set CE score"                  },
   { CA_SET_CE_COUNT,           "set CE count"                  },
+#if 0
   { CA_SET_DYNABOMB_NUMBER,    "set bomb number"               },
   { CA_SET_DYNABOMB_SIZE,      "set bomb size"                 },
   { CA_SET_DYNABOMB_POWER,     "set bomb power"                },
+#endif
   { CA_TOGGLE_PLAYER_GRAVITY,  "toggle gravity"                },
   { CA_ENABLE_PLAYER_GRAVITY,  "enable gravity"                },
   { CA_DISABLE_PLAYER_GRAVITY, "disable gravity"               },
@@ -1551,11 +1553,12 @@ static struct ValueTextInfo options_action_type[] =
 static struct ValueTextInfo options_action_mode[] =
 {
   { CA_MODE_UNDEFINED,         " "                             },
+  { CA_MODE_SET,               "="                             },
   { CA_MODE_ADD,               "+"                             },
   { CA_MODE_SUBTRACT,          "-"                             },
   { CA_MODE_MULTIPLY,          "*"                             },
   { CA_MODE_DIVIDE,            "/"                             },
-  { CA_MODE_SET,               "="                             },
+  { CA_MODE_MODULO,            "%"                             },
 
   { -1,                                NULL                            }
 };
@@ -2841,14 +2844,14 @@ static int editor_el_emerald_mine_club[] =
   EL_EMC_WALL_11,
   EL_EMC_WALL_12,
 
-#if RELEASE_311
+#if RELEASE_3_1_2
   EL_EMPTY,
 #else
   EL_EMC_ANDROID,
 #endif
   EL_BALLOON,
   EL_BALLOON_SWITCH_ANY,
-#if RELEASE_311
+#if RELEASE_3_1_2
   EL_EMPTY,
 #else
   EL_BALLOON_SWITCH_NONE,
@@ -2861,7 +2864,7 @@ static int editor_el_emerald_mine_club[] =
 
   EL_EMC_GRASS,
   EL_EMC_PLANT,
-#if RELEASE_311
+#if RELEASE_3_1_2
   EL_EMPTY,
   EL_EMPTY,
 #else
@@ -2869,7 +2872,7 @@ static int editor_el_emerald_mine_club[] =
   EL_EMC_MAGNIFIER,
 #endif
 
-#if RELEASE_311
+#if RELEASE_3_1_2
   EL_EMPTY,
   EL_EMPTY,
 #else
@@ -2877,13 +2880,13 @@ static int editor_el_emerald_mine_club[] =
   EL_EMC_MAGIC_BALL_SWITCH,
 #endif
   EL_SPRING,
-#if RELEASE_311
+#if RELEASE_3_1_2
   EL_EMPTY,
 #else
   EL_EMC_SPRING_BUMPER,
 #endif
 
-#if RELEASE_311
+#if RELEASE_3_1_2
   EL_EMPTY,
 #else
   EL_EMC_DRIPPER,
@@ -4167,7 +4170,7 @@ static void DrawDrawingArea(int id)
       for (x = 0; x < 3; x++)
        DrawMiniGraphicExt(drawto,
                           gi->x + x * MINI_TILEX, gi->y + y * MINI_TILEY,
-                          el2edimg(custom_element.content[x][y]));
+                          el2edimg(custom_element.content.e[x][y]));
   else if (id == ED_DRAWING_ID_CUSTOM_MOVE_ENTER)
     DrawMiniGraphicExt(drawto, gi->x, gi->y,
                       el2edimg(custom_element.move_enter_element));
@@ -4182,7 +4185,7 @@ static void DrawDrawingArea(int id)
       for (x = 0; x < 3; x++)
        DrawMiniGraphicExt(drawto,
                           gi->x + x * MINI_TILEX, gi->y + y * MINI_TILEY,
-                          el2edimg(custom_element_change.target_content[x][y]));
+                          el2edimg(custom_element_change.target_content.e[x][y]));
   else if (id == ED_DRAWING_ID_CUSTOM_CHANGE_TRIGGER)
     DrawMiniGraphicExt(drawto, gi->x, gi->y,
                       el2edimg(custom_element_change.trigger_element));
@@ -4199,7 +4202,7 @@ static void DrawDrawingArea(int id)
       for (x = 0; x < 3; x++)
        DrawMiniGraphicExt(drawto,
                           gi->x + x * MINI_TILEX, gi->y + y * MINI_TILEY,
-                          el2edimg(level.yamyam_content[nr][x][y]));
+                          el2edimg(level.yamyam_content[nr].e[x][y]));
   }
   else if (id >= ED_DRAWING_ID_MAGIC_BALL_CONTENT_0 &&
           id <= ED_DRAWING_ID_MAGIC_BALL_CONTENT_7)
@@ -4210,7 +4213,7 @@ static void DrawDrawingArea(int id)
       for (x = 0; x < 3; x++)
        DrawMiniGraphicExt(drawto,
                           gi->x + x * MINI_TILEX, gi->y + y * MINI_TILEY,
-                          el2edimg(level.ball_content[nr][x][y]));
+                          el2edimg(level.ball_content[nr].e[x][y]));
   }
 }
 
@@ -5712,8 +5715,8 @@ static void copy_custom_element_settings(int element_from, int element_to)
 
   ei_to->access_direction = ei_from->access_direction;
 
-  ei_to->collect_score = ei_from->collect_score;
-  ei_to->collect_count = ei_from->collect_count;
+  ei_to->collect_score_initial = ei_from->collect_score_initial;
+  ei_to->collect_count_initial = ei_from->collect_count_initial;
 
   ei_to->push_delay_fixed = ei_from->push_delay_fixed;
   ei_to->push_delay_random = ei_from->push_delay_random;
@@ -5734,7 +5737,7 @@ static void copy_custom_element_settings(int element_from, int element_to)
 
   for (y = 0; y < 3; y++)
     for (x = 0; x < 3; x++)
-      ei_to->content[x][y] = ei_from->content[x][y];
+      ei_to->content.e[x][y] = ei_from->content.e[x][y];
 
   ei_to->explosion_type = ei_from->explosion_type;
   ei_to->explosion_delay = ei_from->explosion_delay;
@@ -5769,8 +5772,8 @@ static void replace_custom_element_in_settings(int element_from,
 
     for (y = 0; y < 3; y++)
       for (x = 0; x < 3; x++)
-       if (ei->content[x][y] == element_from)
-         ei->content[x][y] = element_to;
+       if (ei->content.e[x][y] == element_from)
+         ei->content.e[x][y] = element_to;
 
     for (j = 0; j < ei->num_change_pages; j++)
     {
@@ -5784,8 +5787,8 @@ static void replace_custom_element_in_settings(int element_from,
 
       for (y = 0; y < 3; y++)
        for (x = 0; x < 3; x++)
-         if (change->target_content[x][y] == element_from)
-           change->target_content[x][y] = element_to;
+         if (change->target_content.e[x][y] == element_from)
+           change->target_content.e[x][y] = element_to;
     }
 
     if (ei->group != NULL)                             /* group or internal */
@@ -6555,7 +6558,7 @@ static void DrawMagicBallContentAreas()
   int y = SY + ED_AREA_MAGIC_BALL_CONTENT_YPOS(0) + ED_BORDER_AREA_YSIZE;
   int i;
 
-  for (i = 0; i < NUM_MAGIC_BALL_CONTENTS; i++)
+  for (i = 0; i < MAX_ELEMENT_CONTENTS; i++)
     MapDrawingArea(ED_DRAWING_ID_MAGIC_BALL_CONTENT_0 + i);
 
   DrawText(x, y + 0 * MINI_TILEY, "generated", FONT_TEXT_1);
@@ -8121,7 +8124,7 @@ static void HandleDrawingAreas(struct GadgetInfo *gi)
        }
        else if (id == GADGET_ID_CUSTOM_CONTENT)
        {
-         custom_element.content[sx][sy] = new_element;
+         custom_element.content.e[sx][sy] = new_element;
 
          CopyCustomElementPropertiesToGame(properties_element);
        }
@@ -8145,7 +8148,7 @@ static void HandleDrawingAreas(struct GadgetInfo *gi)
        }
        else if (id == GADGET_ID_CUSTOM_CHANGE_CONTENT)
        {
-         custom_element_change.target_content[sx][sy] = new_element;
+         custom_element_change.target_content.e[sx][sy] = new_element;
 
          CopyCustomElementPropertiesToGame(properties_element);
        }
@@ -8165,11 +8168,11 @@ static void HandleDrawingAreas(struct GadgetInfo *gi)
          random_placement_background_element = new_element;
        else if (id >= GADGET_ID_YAMYAM_CONTENT_0 &&
                 id <= GADGET_ID_YAMYAM_CONTENT_7)
-         level.yamyam_content[id - GADGET_ID_YAMYAM_CONTENT_0][sx][sy] =
+         level.yamyam_content[id - GADGET_ID_YAMYAM_CONTENT_0].e[sx][sy] =
            new_element;
        else if (id >= GADGET_ID_MAGIC_BALL_CONTENT_0 &&
                 id <= GADGET_ID_MAGIC_BALL_CONTENT_7)
-         level.ball_content[id - GADGET_ID_MAGIC_BALL_CONTENT_0][sx][sy] =
+         level.ball_content[id - GADGET_ID_MAGIC_BALL_CONTENT_0].e[sx][sy] =
            new_element;
       }
       break;
@@ -8274,7 +8277,7 @@ static void HandleDrawingAreas(struct GadgetInfo *gi)
       else if (id == GADGET_ID_CUSTOM_GRAPHIC)
        PickDrawingElement(button, custom_element.gfx_element);
       else if (id == GADGET_ID_CUSTOM_CONTENT)
-       PickDrawingElement(button, custom_element.content[sx][sy]);
+       PickDrawingElement(button, custom_element.content.e[sx][sy]);
       else if (id == GADGET_ID_CUSTOM_MOVE_ENTER)
        PickDrawingElement(button, custom_element.move_enter_element);
       else if (id == GADGET_ID_CUSTOM_MOVE_LEAVE)
@@ -8282,7 +8285,7 @@ static void HandleDrawingAreas(struct GadgetInfo *gi)
       else if (id == GADGET_ID_CUSTOM_CHANGE_TARGET)
        PickDrawingElement(button, custom_element_change.target_element);
       else if (id == GADGET_ID_CUSTOM_CHANGE_CONTENT)
-       PickDrawingElement(button, custom_element_change.target_content[sx][sy]);
+       PickDrawingElement(button, custom_element_change.target_content.e[sx][sy]);
       else if (id == GADGET_ID_CUSTOM_CHANGE_TRIGGER)
        PickDrawingElement(button, custom_element_change.trigger_element);
       else if (id == GADGET_ID_GROUP_CONTENT)
@@ -8294,14 +8297,14 @@ static void HandleDrawingAreas(struct GadgetInfo *gi)
       {
        int i = id - GADGET_ID_YAMYAM_CONTENT_0;
 
-       PickDrawingElement(button, level.yamyam_content[i][sx][sy]);
+       PickDrawingElement(button, level.yamyam_content[i].e[sx][sy]);
       }
       else if (id >= GADGET_ID_MAGIC_BALL_CONTENT_0 &&
               id <= GADGET_ID_MAGIC_BALL_CONTENT_7)
       {
        int i = id - GADGET_ID_MAGIC_BALL_CONTENT_0;
 
-       PickDrawingElement(button, level.ball_content[i][sx][sy]);
+       PickDrawingElement(button, level.ball_content[i].e[sx][sy]);
       }
 
       break;
@@ -9264,7 +9267,7 @@ static void HandleDrawingAreaInfo(struct GadgetInfo *gi)
     else if (id == GADGET_ID_CUSTOM_GRAPHIC)
       element = custom_element.gfx_element;
     else if (id == GADGET_ID_CUSTOM_CONTENT)
-      element = custom_element.content[sx][sy];
+      element = custom_element.content.e[sx][sy];
     else if (id == GADGET_ID_CUSTOM_MOVE_ENTER)
       element = custom_element.move_enter_element;
     else if (id == GADGET_ID_CUSTOM_MOVE_LEAVE)
@@ -9272,7 +9275,7 @@ static void HandleDrawingAreaInfo(struct GadgetInfo *gi)
     else if (id == GADGET_ID_CUSTOM_CHANGE_TARGET)
       element = custom_element_change.target_element;
     else if (id == GADGET_ID_CUSTOM_CHANGE_CONTENT)
-      element = custom_element_change.target_content[sx][sy];
+      element = custom_element_change.target_content.e[sx][sy];
     else if (id == GADGET_ID_CUSTOM_CHANGE_TRIGGER)
       element = custom_element_change.trigger_element;
     else if (id == GADGET_ID_GROUP_CONTENT)
@@ -9281,10 +9284,10 @@ static void HandleDrawingAreaInfo(struct GadgetInfo *gi)
       element = random_placement_background_element;
     else if (id >= GADGET_ID_YAMYAM_CONTENT_0 &&
             id <= GADGET_ID_YAMYAM_CONTENT_7)
-      element = level.yamyam_content[id - GADGET_ID_YAMYAM_CONTENT_0][sx][sy];
+      element = level.yamyam_content[id -GADGET_ID_YAMYAM_CONTENT_0].e[sx][sy];
     else if (id >= GADGET_ID_MAGIC_BALL_CONTENT_0 &&
             id <= GADGET_ID_MAGIC_BALL_CONTENT_7)
-      element = level.ball_content[id -GADGET_ID_MAGIC_BALL_CONTENT_0][sx][sy];
+      element =level.ball_content[id-GADGET_ID_MAGIC_BALL_CONTENT_0].e[sx][sy];
 
     strncpy(infotext, getElementInfoText(element), max_infotext_len);
   }