X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Feditor.c;h=fc81ebe09a6bee9e175a28daa927ee138172ebc5;hb=57562a0f29074feea1dc01ddf1b1d5e4e6d59730;hp=871eafa8aed419c25c41fcdbaf4e74d0d1c3fd40;hpb=a5a03e15b395ba1942c180d1cd0d3a4f43b87f56;p=rocksndiamonds.git diff --git a/src/editor.c b/src/editor.c index 871eafa8..fc81ebe0 100644 --- a/src/editor.c +++ b/src/editor.c @@ -1,13 +1,12 @@ /*********************************************************** * Rocks'n'Diamonds -- McDuffin Strikes Back! * *----------------------------------------------------------* -* ©1995 Artsoft Development * -* Holger Schemel * -* 33659 Bielefeld-Senne * -* Telefon: (0521) 493245 * -* eMail: aeglos@valinor.owl.de * -* aeglos@uni-paderborn.de * -* q99492@pbhrzx.uni-paderborn.de * +* (c) 1995-98 Artsoft Entertainment * +* Holger Schemel * +* Oststrasse 11a * +* 33604 Bielefeld * +* phone: ++49 +521 290471 * +* email: aeglos@valinor.owl.de * *----------------------------------------------------------* * editor.c * ***********************************************************/ @@ -19,6 +18,8 @@ #include "buttons.h" #include "files.h" +#define CHOICE_DELAY_VALUE 100 + static int level_xpos,level_ypos; static BOOL edit_mode; static BOOL name_typing; @@ -84,6 +85,11 @@ int editor_element[] = EL_CHAR_A + ('N' - 'A'), EL_CHAR_A + ('E' - 'A'), + EL_SPIELER1, + EL_SPIELER2, + EL_SPIELER3, + EL_SPIELER4, + EL_SPIELFIGUR, EL_LEERRAUM, EL_ERDREICH, @@ -112,7 +118,7 @@ int editor_element[] = EL_MAMPFER, EL_KAEFER_O, EL_FLIEGER_O, - EL_ZOMBIE, + EL_ROBOT, EL_KAEFER_L, EL_FLIEGER_L, @@ -159,6 +165,11 @@ int editor_element[] = EL_CHAR_A + ('R' - 'A'), EL_CHAR_A + ('E' - 'A'), + EL_PFEIL_L, + EL_PFEIL_R, + EL_PFEIL_O, + EL_PFEIL_U, + EL_AMOEBE_VOLL, EL_EDELSTEIN_GELB, EL_EDELSTEIN_ROT, @@ -189,6 +200,16 @@ int editor_element[] = EL_DYNABOMB_XL, EL_BADEWANNE, + EL_MAULWURF, + EL_PINGUIN, + EL_SCHWEIN, + EL_DRACHE, + + EL_SONDE, + EL_MAUER_X, + EL_MAUER_Y, + EL_MAUER_XY, + EL_CHAR_A + ('S' - 'A'), EL_CHAR_A + ('O' - 'A'), EL_CHAR_A + ('K' - 'A'), @@ -221,6 +242,11 @@ int editor_element[] = EL_CHAR_A + ('R' - 'A'), */ + EL_LEERRAUM, + EL_LEERRAUM, + EL_LEERRAUM, + EL_LEERRAUM, + EL_CHAR_AUSRUF, EL_CHAR_ZOLL, EL_CHAR_DOLLAR, @@ -330,26 +356,26 @@ void DrawLevelEd() else graphic = GFX_LEERRAUM; - DrawMiniGraphicExtHiRes(pix[PIX_DB_DOOR],gc, - DOOR_GFX_PAGEX1+ED_BUTTON_ELEM_XPOS+3 + - (i%MAX_ELEM_X)*ED_BUTTON_ELEM_XSIZE, - DOOR_GFX_PAGEY1+ED_BUTTON_ELEM_YPOS+3 + - (i/MAX_ELEM_X)*ED_BUTTON_ELEM_YSIZE, - graphic); + DrawMiniGraphicExt(pix[PIX_DB_DOOR],gc, + DOOR_GFX_PAGEX1+ED_BUTTON_ELEM_XPOS+3 + + (i%MAX_ELEM_X)*ED_BUTTON_ELEM_XSIZE, + DOOR_GFX_PAGEY1+ED_BUTTON_ELEM_YPOS+3 + + (i/MAX_ELEM_X)*ED_BUTTON_ELEM_YSIZE, + graphic); } - DrawMiniGraphicExtHiRes(pix[PIX_DB_DOOR],gc, - DOOR_GFX_PAGEX1+ED_WIN_MB_LEFT_XPOS, - DOOR_GFX_PAGEY1+ED_WIN_MB_LEFT_YPOS, - el2gfx(new_element1)); - DrawMiniGraphicExtHiRes(pix[PIX_DB_DOOR],gc, - DOOR_GFX_PAGEX1+ED_WIN_MB_MIDDLE_XPOS, - DOOR_GFX_PAGEY1+ED_WIN_MB_MIDDLE_YPOS, - el2gfx(new_element2)); - DrawMiniGraphicExtHiRes(pix[PIX_DB_DOOR],gc, - DOOR_GFX_PAGEX1+ED_WIN_MB_RIGHT_XPOS, - DOOR_GFX_PAGEY1+ED_WIN_MB_RIGHT_YPOS, - el2gfx(new_element3)); + DrawMiniGraphicExt(pix[PIX_DB_DOOR],gc, + DOOR_GFX_PAGEX1+ED_WIN_MB_LEFT_XPOS, + DOOR_GFX_PAGEY1+ED_WIN_MB_LEFT_YPOS, + el2gfx(new_element1)); + DrawMiniGraphicExt(pix[PIX_DB_DOOR],gc, + DOOR_GFX_PAGEX1+ED_WIN_MB_MIDDLE_XPOS, + DOOR_GFX_PAGEY1+ED_WIN_MB_MIDDLE_YPOS, + el2gfx(new_element2)); + DrawMiniGraphicExt(pix[PIX_DB_DOOR],gc, + DOOR_GFX_PAGEX1+ED_WIN_MB_RIGHT_XPOS, + DOOR_GFX_PAGEY1+ED_WIN_MB_RIGHT_YPOS, + el2gfx(new_element3)); DrawTextExt(pix[PIX_DB_DOOR],gc, DOOR_GFX_PAGEX2+ED_WIN_LEVELNR_XPOS, DOOR_GFX_PAGEY1+ED_WIN_LEVELNR_YPOS, @@ -656,7 +682,7 @@ void LevelEd(int mx, int my, int button) if (((choice == ED_BUTTON_EUP && element_shift>0) || (choice == ED_BUTTON_EDOWN && element_shift=0) { - if (!DelayReached(&choice_delay,10)) + if (!DelayReached(&choice_delay, CHOICE_DELAY_VALUE)) break; if (lev_fieldx<2*SCR_FIELDX-2) break; @@ -743,7 +769,7 @@ void LevelEd(int mx, int my, int button) case ED_BUTTON_RIGHT: if (level_xpos<=lev_fieldx-2*SCR_FIELDX) { - if (!DelayReached(&choice_delay,10)) + if (!DelayReached(&choice_delay, CHOICE_DELAY_VALUE)) break; if (lev_fieldx<2*SCR_FIELDX-2) break; @@ -760,7 +786,7 @@ void LevelEd(int mx, int my, int button) case ED_BUTTON_UP: if (level_ypos>=0) { - if (!DelayReached(&choice_delay,10)) + if (!DelayReached(&choice_delay, CHOICE_DELAY_VALUE)) break; if (lev_fieldy<2*SCR_FIELDY-2) break; @@ -777,7 +803,7 @@ void LevelEd(int mx, int my, int button) case ED_BUTTON_DOWN: if (level_ypos<=lev_fieldy-2*SCR_FIELDY) { - if (!DelayReached(&choice_delay,10)) + if (!DelayReached(&choice_delay, CHOICE_DELAY_VALUE)) break; if (lev_fieldy<2*SCR_FIELDY-2) break; @@ -844,7 +870,8 @@ void LevelEd(int mx, int my, int button) int choice = CheckCountButtons(mx,my,button); int step = (button==1 ? 1 : button==2 ? 5 : button==3 ? 10 : 0); - if (choice>=0 && choice<36 && DelayReached(&choice_delay,10)) + if (choice >= 0 && choice < 36 && + DelayReached(&choice_delay, CHOICE_DELAY_VALUE)) { if (!(choice % 2)) step = -step; @@ -1188,7 +1215,7 @@ void LevelNameTyping(KeySym key) ED_COUNT_TEXT_YPOS+16*ED_COUNT_TEXT_YSIZE, "<",FS_SMALL,FC_RED); } - else if (key==XK_Delete && len>0) + else if ((key==XK_Delete || key==XK_BackSpace) && len>0) { level.name[len-1] = 0; len--;