};
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;
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,
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++)
{
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)
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]);
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;
}
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)
}
}
-void HandleLevelEditorKeyInput(KeySym key)
+void HandleLevelEditorKeyInput(Key key)
{
- char letter = getCharFromKeySym(key);
- int button = MB_LEFT;
+ char letter = getCharFromKey(key);
+ int button = MB_LEFTBUTTON;
if (drawing_function == GADGET_ID_TEXT &&
DrawLevelText(0, 0, 0, TEXT_QUERY_TYPING) == TRUE)
{
if (letter)
DrawLevelText(0, 0, letter, TEXT_WRITECHAR);
- else if (key == XK_Delete || key == XK_BackSpace)
+ else if (key == KEY_Delete || key == KEY_BackSpace)
DrawLevelText(0, 0, 0, TEXT_BACKSPACE);
- else if (key == XK_Return)
+ else if (key == KEY_Return)
DrawLevelText(0, 0, 0, TEXT_NEWLINE);
}
else if (button_status == MB_RELEASED)
switch (key)
{
- case XK_Left:
+ case KEY_Left:
id = GADGET_ID_SCROLL_LEFT;
break;
- case XK_Right:
+ case KEY_Right:
id = GADGET_ID_SCROLL_RIGHT;
break;
- case XK_Up:
+ case KEY_Up:
id = GADGET_ID_SCROLL_UP;
break;
- case XK_Down:
+ case KEY_Down:
id = GADGET_ID_SCROLL_DOWN;
break;
- case XK_Page_Up:
+ case KEY_Page_Up:
id = GADGET_ID_SCROLL_LIST_UP;
- button = 3;
+ button = MB_RIGHTBUTTON;
break;
- case XK_Page_Down:
+ case KEY_Page_Down:
id = GADGET_ID_SCROLL_LIST_DOWN;
- button = 3;
+ button = MB_RIGHTBUTTON;
break;
default:
ClickOnGadget(level_editor_gadget[id], button);
else if (letter == '.')
ClickOnGadget(level_editor_gadget[GADGET_ID_SINGLE_ITEMS], button);
- else if (key == XK_space || key == XK_Return)
+ else if (key == KEY_space || key == KEY_Return)
ClickOnGadget(level_editor_gadget[GADGET_ID_TEST], button);
else
for (i=0; i<ED_NUM_CTRL_BUTTONS; i++)
}
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);