X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Feditor.c;h=89e8d438d85b3e7947b1eb3930b46f7fc9865f50;hb=2ae6ae8ed951e87fcba7c363705cd6ddea8de91c;hp=669991b70ed6949d05077e1a6c64e488e6a46099;hpb=74b5b6c19587f93c45b72b1153154030dc99b50d;p=rocksndiamonds.git diff --git a/src/editor.c b/src/editor.c index 669991b7..89e8d438 100644 --- a/src/editor.c +++ b/src/editor.c @@ -1,23 +1,23 @@ /*********************************************************** -* Rocks'n'Diamonds -- McDuffin Strikes Back! * +* Rocks'n'Diamonds -- McDuffin Strikes Back! * *----------------------------------------------------------* -* (c) 1995-98 Artsoft Entertainment * -* Holger Schemel * -* Oststrasse 11a * -* 33604 Bielefeld * -* phone: ++49 +521 290471 * -* email: aeglos@valinor.owl.de * +* (c) 1995-2000 Artsoft Entertainment * +* Holger Schemel * +* Detmolder Strasse 189 * +* 33604 Bielefeld * +* Germany * +* e-mail: info@artsoft.org * *----------------------------------------------------------* -* editor.c * +* editor.c * ***********************************************************/ #include +#include "libgame/libgame.h" + #include "editor.h" #include "screens.h" #include "tools.h" -#include "misc.h" -#include "buttons.h" #include "files.h" #include "game.h" #include "tape.h" @@ -690,10 +690,10 @@ static int new_element1 = EL_MAUERWERK; static int new_element2 = EL_LEERRAUM; static int new_element3 = EL_ERDREICH; -#define BUTTON_ELEMENT(button) (button == 1 ? new_element1 : \ - button == 2 ? new_element2 : \ - button == 3 ? new_element3 : EL_LEERRAUM) -#define BUTTON_STEPSIZE(button) (button == 1 ? 1 : button == 2 ? 5 : 10) +#define BUTTON_ELEMENT(button) ((button) == 1 ? new_element1 : \ + (button) == 2 ? new_element2 : \ + (button) == 3 ? new_element3 : EL_LEERRAUM) +#define BUTTON_STEPSIZE(button) ((button) == 1 ? 1 : (button) == 2 ? 5 : 10) /* forward declaration for internal use */ static void ModifyEditorCounter(int, int); @@ -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; @@ -1293,7 +1305,7 @@ static void ScrollMiniLevel(int from_x, int from_y, int scroll) static void CreateControlButtons() { - Bitmap gd_bitmap = pix[PIX_DOOR]; + Bitmap *gd_bitmap = pix[PIX_DOOR]; struct GadgetInfo *gi; unsigned long event_mask; int i; @@ -1382,6 +1394,7 @@ static void CreateControlButtons() GDI_ALT_DESIGN_UNPRESSED, gd_bitmap, gd_x1, gd_y2, GDI_ALT_DESIGN_PRESSED, gd_bitmap, gd_x2, gd_y2, GDI_EVENT_MASK, event_mask, + GDI_CALLBACK_INFO, HandleEditorGadgetInfoText, GDI_CALLBACK_ACTION, HandleControlButtons, GDI_END); @@ -1439,6 +1452,7 @@ static void CreateControlButtons() GDI_DESIGN_UNPRESSED, gd_bitmap, gd_x1, gd_y1, GDI_DESIGN_PRESSED, gd_bitmap, gd_x2, gd_y2, GDI_EVENT_MASK, event_mask, + GDI_CALLBACK_INFO, HandleEditorGadgetInfoText, GDI_CALLBACK_ACTION, HandleControlButtons, GDI_END); @@ -1451,7 +1465,7 @@ static void CreateControlButtons() /* create buttons for element list */ for (i=0; ix + sx * MINI_TILEX, gi->y + sy * MINI_TILEY, el2gfx(new_element)); - DrawMiniGraphicExt(window, gc, + DrawMiniGraphicExt(window, gi->x + sx * MINI_TILEX, gi->y + sy * MINI_TILEY, el2gfx(new_element)); @@ -3759,7 +3780,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; @@ -3972,9 +3993,9 @@ void HandleLevelEditorKeyInput(Key key) { if (letter) DrawLevelText(0, 0, letter, TEXT_WRITECHAR); - else if (key == KEY_Delete || key == KEY_BackSpace) + else if (key == KSYM_Delete || key == KSYM_BackSpace) DrawLevelText(0, 0, 0, TEXT_BACKSPACE); - else if (key == KEY_Return) + else if (key == KSYM_Return) DrawLevelText(0, 0, 0, TEXT_NEWLINE); } else if (button_status == MB_RELEASED) @@ -3983,23 +4004,23 @@ void HandleLevelEditorKeyInput(Key key) switch (key) { - case KEY_Left: + case KSYM_Left: id = GADGET_ID_SCROLL_LEFT; break; - case KEY_Right: + case KSYM_Right: id = GADGET_ID_SCROLL_RIGHT; break; - case KEY_Up: + case KSYM_Up: id = GADGET_ID_SCROLL_UP; break; - case KEY_Down: + case KSYM_Down: id = GADGET_ID_SCROLL_DOWN; break; - case KEY_Page_Up: + case KSYM_Page_Up: id = GADGET_ID_SCROLL_LIST_UP; button = MB_RIGHTBUTTON; break; - case KEY_Page_Down: + case KSYM_Page_Down: id = GADGET_ID_SCROLL_LIST_DOWN; button = MB_RIGHTBUTTON; break; @@ -4013,7 +4034,7 @@ void HandleLevelEditorKeyInput(Key key) ClickOnGadget(level_editor_gadget[id], button); else if (letter == '.') ClickOnGadget(level_editor_gadget[GADGET_ID_SINGLE_ITEMS], button); - else if (key == KEY_space || key == KEY_Return) + else if (key == KSYM_space || key == KSYM_Return) ClickOnGadget(level_editor_gadget[GADGET_ID_TEST], button); else for (i=0; i