rnd-20001105-1-src
[rocksndiamonds.git] / src / editor.c
index bb729811096f99b28d81eba55f771956f262848a..fe5dc3589467eb20eadc0f66da11f37212034e9c 100644 (file)
@@ -1261,6 +1261,18 @@ int editor_element[] =
 };
 int elements_in_list = sizeof(editor_element)/sizeof(int);
 
+static char *getElementInfoText(int element)
+{
+  char *info_text = "unknown";
+
+  if (element < num_element_info)
+    info_text = element_info[element];
+  else
+    Error(ERR_WARN, "no element description for element %d", element);
+
+  return info_text;
+}
+
 static void ScrollMiniLevel(int from_x, int from_y, int scroll)
 {
   int x,y;
@@ -1475,7 +1487,7 @@ static void CreateControlButtons()
 
     gi = CreateGadget(GDI_CUSTOM_ID, id,
                      GDI_CUSTOM_TYPE_ID, i,
-                     GDI_INFO_TEXT, element_info[editor_element[i]],
+                     GDI_INFO_TEXT, getElementInfoText(editor_element[i]),
                      GDI_X, DX + gd_xoffset,
                      GDI_Y, DY + gd_yoffset,
                      GDI_WIDTH, ED_ELEMENTLIST_XSIZE,
@@ -2664,7 +2676,7 @@ static void DrawPropertiesWindow()
             SY + ystart * MINI_TILEY - MINI_TILEY/2);
 
   DrawTextF((xstart + 3) * MINI_TILEX, (ystart + 1) * MINI_TILEY,
-           font_color, element_info[properties_element]);
+           font_color, getElementInfoText(properties_element));
 
   num_elements_in_level = 0;
   for (y=0; y<lev_fieldy; y++) 
@@ -3511,7 +3523,8 @@ static void HandleDrawingAreas(struct GadgetInfo *gi)
          {
            CopyAreaToBrush(start_sx, start_sy, sx, sy, button);
            CopyBrushToCursor(sx, sy);
-           ClickOnGadget(level_editor_gadget[GADGET_ID_SINGLE_ITEMS],MB_LEFT);
+           ClickOnGadget(level_editor_gadget[GADGET_ID_SINGLE_ITEMS],
+                         MB_LEFTBUTTON);
            draw_with_brush = TRUE;
          }
          else if (drawing_function == GADGET_ID_TEXT)
@@ -3540,7 +3553,8 @@ static void HandleDrawingAreas(struct GadgetInfo *gi)
 
     case GADGET_ID_PICK_ELEMENT:
       if (button_release_event)
-       ClickOnGadget(level_editor_gadget[last_drawing_function], MB_LEFT);
+       ClickOnGadget(level_editor_gadget[last_drawing_function],
+                     MB_LEFTBUTTON);
       else
        PickDrawingElement(button, Feld[lx][ly]);
 
@@ -3757,7 +3771,7 @@ static void HandleControlButtons(struct GadgetInfo *gi)
 
        UnmapGadget(gi);
        getMiniGraphicSource(el2gfx(element), &gd->bitmap, &gd->x, &gd->y);
-       ModifyGadget(gi, GDI_INFO_TEXT, element_info[element], GDI_END);
+       ModifyGadget(gi, GDI_INFO_TEXT, getElementInfoText(element), GDI_END);
        MapGadget(gi);
       }
       break;
@@ -3943,7 +3957,8 @@ static void HandleControlButtons(struct GadgetInfo *gi)
        }
 
        if (drawing_function == GADGET_ID_PICK_ELEMENT)
-         ClickOnGadget(level_editor_gadget[last_drawing_function], MB_LEFT);
+         ClickOnGadget(level_editor_gadget[last_drawing_function],
+                       MB_LEFTBUTTON);
       }
 #ifdef DEBUG
       else if (gi->event.type == GD_EVENT_PRESSED)
@@ -3962,7 +3977,7 @@ static void HandleControlButtons(struct GadgetInfo *gi)
 void HandleLevelEditorKeyInput(Key key)
 {
   char letter = getCharFromKey(key);
-  int button = MB_LEFT;
+  int button = MB_LEFTBUTTON;
 
   if (drawing_function == GADGET_ID_TEXT &&
       DrawLevelText(0, 0, 0, TEXT_QUERY_TYPING) == TRUE)
@@ -3994,11 +4009,11 @@ void HandleLevelEditorKeyInput(Key key)
        break;
       case KEY_Page_Up:
        id = GADGET_ID_SCROLL_LIST_UP;
-       button = 3;
+       button = MB_RIGHTBUTTON;
        break;
       case KEY_Page_Down:
        id = GADGET_ID_SCROLL_LIST_DOWN;
-       button = 3;
+       button = MB_RIGHTBUTTON;
        break;
 
       default:
@@ -4164,7 +4179,7 @@ static void HandleDrawingAreaInfo(struct GadgetInfo *gi)
       }
       else if (drawing_function == GADGET_ID_PICK_ELEMENT)
        DrawTextF(INFOTEXT_XPOS - SX, INFOTEXT_YPOS - SY, FC_YELLOW,
-                 "%s", element_info[Feld[lx][ly]]);
+                 "%s", getElementInfoText(Feld[lx][ly]));
       else
        DrawTextF(INFOTEXT_XPOS - SX, INFOTEXT_YPOS - SY, FC_YELLOW,
                  "Level position: %d, %d", lx, ly);