X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Feditor.c;h=618c272f9971f798162640b3913d03fd89a7ade4;hb=36357e8399d0a42ac45a1cd096aee24a9008b5f5;hp=5fb13e1ee035bc9056ea69a6cfa87fdadea0245b;hpb=12d604d7378a05f91df4b061195a9943f2214da8;p=rocksndiamonds.git diff --git a/src/editor.c b/src/editor.c index 5fb13e1e..618c272f 100644 --- a/src/editor.c +++ b/src/editor.c @@ -751,24 +751,24 @@ int editor_element[] = EL_ERDREICH, EL_BETON, - EL_FELSBODEN, - EL_SIEB2_INAKTIV, + EL_BD_WALL, + EL_MAGIC_WALL_BD_OFF, EL_AUSGANG_ZU, EL_AUSGANG_AUF, EL_EDELSTEIN_BD, - EL_BUTTERFLY_O, - EL_FIREFLY_O, - EL_FELSBROCKEN, + EL_BUTTERFLY_UP, + EL_FIREFLY_UP, + EL_BD_ROCK, - EL_BUTTERFLY_L, - EL_FIREFLY_L, - EL_BUTTERFLY_R, - EL_FIREFLY_R, + EL_BUTTERFLY_LEFT, + EL_FIREFLY_LEFT, + EL_BUTTERFLY_RIGHT, + EL_FIREFLY_RIGHT, EL_AMOEBE_BD, - EL_BUTTERFLY_U, - EL_FIREFLY_U, + EL_BUTTERFLY_DOWN, + EL_FIREFLY_DOWN, EL_LEERRAUM, EL_CHAR('E'), @@ -799,7 +799,7 @@ int editor_element[] = EL_BETON, EL_MAUERWERK, EL_FELSBODEN, - EL_SIEB_INAKTIV, + EL_MAGIC_WALL_OFF, EL_EDELSTEIN, EL_DIAMANT, @@ -817,18 +817,18 @@ int editor_element[] = EL_AUSGANG_AUF, EL_MAMPFER, - EL_KAEFER_O, - EL_FLIEGER_O, + EL_KAEFER_UP, + EL_FLIEGER_UP, EL_ROBOT, - EL_KAEFER_L, - EL_FLIEGER_L, - EL_KAEFER_R, - EL_FLIEGER_R, + EL_KAEFER_LEFT, + EL_FLIEGER_LEFT, + EL_KAEFER_RIGHT, + EL_FLIEGER_RIGHT, EL_ABLENK_AUS, - EL_KAEFER_U, - EL_FLIEGER_U, + EL_KAEFER_DOWN, + EL_FLIEGER_DOWN, EL_UNSICHTBAR, EL_BADEWANNE1, @@ -881,10 +881,10 @@ int editor_element[] = EL_PFORTE3X, EL_PFORTE4X, - EL_PFEIL_L, - EL_PFEIL_R, - EL_PFEIL_O, - EL_PFEIL_U, + EL_PFEIL_LEFT, + EL_PFEIL_RIGHT, + EL_PFEIL_UP, + EL_PFEIL_DOWN, EL_AMOEBE_VOLL, EL_EDELSTEIN_GELB, @@ -897,17 +897,17 @@ int editor_element[] = EL_ERZ_EDEL_LILA, EL_LIFE, - EL_PACMAN_O, + EL_PACMAN_UP, EL_ZEIT_VOLL, EL_ZEIT_LEER, - EL_PACMAN_L, + EL_PACMAN_LEFT, EL_MAMPFER2, - EL_PACMAN_R, + EL_PACMAN_RIGHT, EL_MAUER_LEBT, EL_LIFE_ASYNC, - EL_PACMAN_U, + EL_PACMAN_DOWN, EL_BIRNE_AUS, EL_BIRNE_EIN, @@ -916,11 +916,31 @@ int editor_element[] = EL_DYNABOMB_XL, EL_BADEWANNE, - EL_MAULWURF, + EL_MOLE, EL_PINGUIN, EL_SCHWEIN, EL_DRACHE, + EL_LEERRAUM, + EL_MOLE_UP, + EL_LEERRAUM, + EL_LEERRAUM, + + EL_MOLE_LEFT, + EL_LEERRAUM, + EL_MOLE_RIGHT, + EL_LEERRAUM, + + EL_LEERRAUM, + EL_MOLE_DOWN, + EL_BALLOON, + EL_BALLOON_SEND_ANY, + + EL_BALLOON_SEND_LEFT, + EL_BALLOON_SEND_RIGHT, + EL_BALLOON_SEND_UP, + EL_BALLOON_SEND_DOWN, + EL_SONDE, EL_MAUER_X, EL_MAUER_Y, @@ -931,6 +951,17 @@ int editor_element[] = EL_SPEED_PILL, EL_BLACK_ORB, + EL_EMC_STEEL_WALL_1, + EL_EMC_WALL_1, + EL_EMC_WALL_2, + EL_EMC_WALL_3, + + EL_EMC_WALL_4, + EL_EMC_WALL_5, + EL_EMC_WALL_6, + EL_EMC_WALL_7, + + EL_CHAR('S'), EL_CHAR('O'), EL_CHAR('K'), @@ -1026,35 +1057,105 @@ int editor_element[] = EL_CHAR('I'), EL_CHAR('I'), + EL_PEARL, + EL_CRYSTAL, + EL_WALL_PEARL, + EL_WALL_CRYSTAL, + EL_BELT1_LEFT, EL_BELT1_MIDDLE, EL_BELT1_RIGHT, - EL_BELT1_SWITCH_M, + EL_BELT1_SWITCH_MIDDLE, EL_BELT2_LEFT, EL_BELT2_MIDDLE, EL_BELT2_RIGHT, - EL_BELT2_SWITCH_M, + EL_BELT2_SWITCH_MIDDLE, EL_BELT3_LEFT, EL_BELT3_MIDDLE, EL_BELT3_RIGHT, - EL_BELT3_SWITCH_M, + EL_BELT3_SWITCH_MIDDLE, EL_BELT4_LEFT, EL_BELT4_MIDDLE, EL_BELT4_RIGHT, - EL_BELT4_SWITCH_M, + EL_BELT4_SWITCH_MIDDLE, + + EL_BELT1_SWITCH_LEFT, + EL_BELT2_SWITCH_LEFT, + EL_BELT3_SWITCH_LEFT, + EL_BELT4_SWITCH_LEFT, + + EL_BELT1_SWITCH_RIGHT, + EL_BELT2_SWITCH_RIGHT, + EL_BELT3_SWITCH_RIGHT, + EL_BELT4_SWITCH_RIGHT, + + EL_SWITCHGATE_OPEN, + EL_SWITCHGATE_CLOSED, + EL_SWITCHGATE_SWITCH_1, + EL_ENVELOPE, + + EL_TIMEGATE_CLOSED, + EL_TIMEGATE_OPEN, + EL_TIMEGATE_SWITCH_OFF, + EL_LEERRAUM, + + EL_LANDMINE, + EL_SAND_INVISIBLE, + EL_STEEL_SLANTED, + EL_LEERRAUM, - EL_BELT1_SWITCH_L, - EL_BELT2_SWITCH_L, - EL_BELT3_SWITCH_L, - EL_BELT4_SWITCH_L, + EL_SIGN_EXCLAMATION, + EL_SIGN_STOP, + EL_LIGHT_SWITCH_OFF, + EL_LIGHT_SWITCH_ON, - EL_BELT1_SWITCH_R, - EL_BELT2_SWITCH_R, - EL_BELT3_SWITCH_R, - EL_BELT4_SWITCH_R, + EL_SHIELD_PASSIVE, + EL_SHIELD_ACTIVE, + EL_EXTRA_TIME, + EL_LEERRAUM, + + EL_CHAR('D'), + EL_CHAR('X'), + EL_CHAR('-'), + EL_CHAR(' '), + + EL_CHAR('B'), + EL_CHAR('O'), + EL_CHAR('U'), + EL_CHAR('L'), + + EL_CHAR('-'), + EL_CHAR('D'), + EL_CHAR('E'), + EL_CHAR('R'), + + EL_CHAR('D'), + EL_CHAR('A'), + EL_CHAR('S'), + EL_CHAR('H'), + + EL_SPRING, + EL_TUBE_RIGHT_DOWN, + EL_TUBE_HORIZ_DOWN, + EL_TUBE_LEFT_DOWN, + + EL_TUBE_HORIZONTAL, + EL_TUBE_VERT_RIGHT, + EL_TUBE_CROSS, + EL_TUBE_VERT_LEFT, + + EL_TUBE_VERTICAL, + EL_TUBE_RIGHT_UP, + EL_TUBE_HORIZ_UP, + EL_TUBE_LEFT_UP, + + EL_TRAP_INACTIVE, + EL_DX_SUPABOMB, + EL_LEERRAUM, + EL_LEERRAUM, /* EL_CHAR('D'), @@ -1166,13 +1267,13 @@ static void ScrollMiniLevel(int from_x, int from_y, int scroll) int dx = (scroll == ED_SCROLL_LEFT ? -1 : scroll == ED_SCROLL_RIGHT ? 1 : 0); int dy = (scroll == ED_SCROLL_UP ? -1 : scroll == ED_SCROLL_DOWN ? 1 : 0); - XCopyArea(display, drawto, drawto, gc, - SX + (dx == -1 ? MINI_TILEX : 0), - SY + (dy == -1 ? MINI_TILEY : 0), - (ed_fieldx * MINI_TILEX) - (dx != 0 ? MINI_TILEX : 0), - (ed_fieldy * MINI_TILEY) - (dy != 0 ? MINI_TILEY : 0), - SX + (dx == +1 ? MINI_TILEX : 0), - SY + (dy == +1 ? MINI_TILEY : 0)); + BlitBitmap(drawto, drawto, + SX + (dx == -1 ? MINI_TILEX : 0), + SY + (dy == -1 ? MINI_TILEY : 0), + (ed_fieldx * MINI_TILEX) - (dx != 0 ? MINI_TILEX : 0), + (ed_fieldy * MINI_TILEY) - (dy != 0 ? MINI_TILEY : 0), + SX + (dx == +1 ? MINI_TILEX : 0), + SY + (dy == +1 ? MINI_TILEY : 0)); if (dx) { x = (dx == 1 ? 0 : ed_fieldx - 1); @@ -1192,7 +1293,7 @@ static void ScrollMiniLevel(int from_x, int from_y, int scroll) static void CreateControlButtons() { - Pixmap gd_pixmap = pix[PIX_DOOR]; + Bitmap gd_bitmap = pix[PIX_DOOR]; struct GadgetInfo *gi; unsigned long event_mask; int i; @@ -1276,10 +1377,10 @@ static void CreateControlButtons() GDI_STATE, GD_BUTTON_UNPRESSED, GDI_RADIO_NR, radio_button_nr, GDI_CHECKED, checked, - GDI_DESIGN_UNPRESSED, gd_pixmap, gd_x1, gd_y1, - GDI_DESIGN_PRESSED, gd_pixmap, gd_x2, gd_y1, - GDI_ALT_DESIGN_UNPRESSED, gd_pixmap, gd_x1, gd_y2, - GDI_ALT_DESIGN_PRESSED, gd_pixmap, gd_x2, gd_y2, + GDI_DESIGN_UNPRESSED, gd_bitmap, gd_x1, gd_y1, + GDI_DESIGN_PRESSED, gd_bitmap, gd_x2, gd_y1, + 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_ACTION, HandleControlButtons, GDI_END); @@ -1335,8 +1436,8 @@ static void CreateControlButtons() GDI_HEIGHT, height, GDI_TYPE, GD_TYPE_NORMAL_BUTTON, GDI_STATE, GD_BUTTON_UNPRESSED, - GDI_DESIGN_UNPRESSED, gd_pixmap, gd_x1, gd_y1, - GDI_DESIGN_PRESSED, gd_pixmap, gd_x2, gd_y2, + 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_ACTION, HandleControlButtons, GDI_END); @@ -1350,7 +1451,7 @@ static void CreateControlButtons() /* create buttons for element list */ for (i=0; ifirst_level, + leveldir_current->last_level); ModifyEditorCounter(counter_id, *counterbutton_info[counter_id].value); MapCounterButtons(counter_id); } @@ -2008,8 +2109,8 @@ void DrawLevelEd() } /* copy default editor door content to main double buffer */ - XCopyArea(display, pix[PIX_DOOR], drawto, gc, - DOOR_GFX_PAGEX6, DOOR_GFX_PAGEY1, DXSIZE, DYSIZE, DX, DY); + BlitBitmap(pix[PIX_DOOR], drawto, + DOOR_GFX_PAGEX6, DOOR_GFX_PAGEY1, DXSIZE, DYSIZE, DX, DY); /* draw mouse button brush elements */ DrawMiniGraphicExt(drawto, gc, @@ -2026,18 +2127,16 @@ void DrawLevelEd() DrawSpecialEditorDoor(); /* draw new control window */ - XCopyArea(display, pix[PIX_DOOR], drawto, gc, - DOOR_GFX_PAGEX8, 236, - EXSIZE, EYSIZE, - EX, EY); + BlitBitmap(pix[PIX_DOOR], drawto, + DOOR_GFX_PAGEX8, 236, EXSIZE, EYSIZE, EX, EY); redraw_mask |= REDRAW_ALL; MapControlButtons(); /* copy actual editor door content to door double buffer for OpenDoor() */ - XCopyArea(display, drawto, pix[PIX_DB_DOOR], gc, - DX, DY, DXSIZE, DYSIZE, DOOR_GFX_PAGEX1, DOOR_GFX_PAGEY1); + BlitBitmap(drawto, pix[PIX_DB_DOOR], + DX, DY, DXSIZE, DYSIZE, DOOR_GFX_PAGEX1, DOOR_GFX_PAGEY1); DrawEditModeWindow(); @@ -2242,14 +2341,14 @@ static void DrawRandomPlacementBackgroundArea() for (x=0; x<2; x++) DrawMiniElement(area_x + x, area_y + y, EL_ERDREICH); - XFillRectangle(display, drawto, gc, + ClearRectangle(drawto, area_sx + MINI_TILEX/2 - 1, area_sy + MINI_TILEY/2 - 1, MINI_TILEX + 2, MINI_TILEY + 2); /* copy border to the right location */ - XCopyArea(display, drawto, drawto, gc, - area_sx, area_sy, 3 * MINI_TILEX, 3 * MINI_TILEY, - area_sx - MINI_TILEX/2, area_sy - MINI_TILEY/2); + BlitBitmap(drawto, drawto, + area_sx, area_sy, 3 * MINI_TILEX, 3 * MINI_TILEY, + area_sx - MINI_TILEX/2, area_sy - MINI_TILEY/2); DrawMiniElement(area_x, area_y, ElementContent[0][0][0]); @@ -2364,14 +2463,14 @@ static void DrawAmoebaContentArea() for (x=0; x<2; x++) DrawMiniElement(area_x + x, area_y + y, EL_ERDREICH); - XFillRectangle(display, drawto, gc, + ClearRectangle(drawto, area_sx + MINI_TILEX/2 - 1, area_sy + MINI_TILEY/2 - 1, MINI_TILEX + 2, MINI_TILEY + 2); /* copy border to the right location */ - XCopyArea(display, drawto, drawto, gc, - area_sx, area_sy, 3 * MINI_TILEX, 3 * MINI_TILEY, - area_sx - MINI_TILEX/2, area_sy - MINI_TILEY/2); + BlitBitmap(drawto, drawto, + area_sx, area_sy, 3 * MINI_TILEX, 3 * MINI_TILEY, + area_sx - MINI_TILEX/2, area_sy - MINI_TILEY/2); DrawText(area_sx + TILEX, area_sy + 1, "Content of amoeba", FS_SMALL, font_color); @@ -2410,7 +2509,7 @@ static void DrawElementContentAreas() MapCounterButtons(counter_id); /* delete content areas in case of reducing number of them */ - XFillRectangle(display, backbuffer, gc, + ClearRectangle(backbuffer, SX, area_sy - MINI_TILEX, SXSIZE, 12 * MINI_TILEY); @@ -2422,16 +2521,16 @@ static void DrawElementContentAreas() DrawMiniElement(area_x + 5 * (i % 4) + x, area_y + 6 * (i / 4) + y, EL_ERDREICH); - XFillRectangle(display, drawto, gc, + ClearRectangle(drawto, area_sx + 5 * (i % 4) * MINI_TILEX + MINI_TILEX/2 - 1, area_sy + 6 * (i / 4) * MINI_TILEY + MINI_TILEY/2 - 1, 3 * MINI_TILEX + 2, 3 * MINI_TILEY + 2); } /* copy border to the right location */ - XCopyArea(display, drawto, drawto, gc, - area_sx, area_sy, (5 * 4 + 1) * MINI_TILEX, 11 * MINI_TILEY, - area_sx - MINI_TILEX/2, area_sy - MINI_TILEY/2); + BlitBitmap(drawto, drawto, + area_sx, area_sy, (5 * 4 + 1) * MINI_TILEX, 11 * MINI_TILEY, + area_sx - MINI_TILEX/2, area_sy - MINI_TILEY/2); DrawText(area_sx + (5 * 4 - 1) * MINI_TILEX, area_sy + 0 * MINI_TILEY + 1, "Content", FS_SMALL, font_color); @@ -2488,29 +2587,29 @@ static void DrawPropertiesWindow() { EL_EDELSTEIN_ROT, &level.score[SC_EDELSTEIN], TEXT_COLLECTING }, { EL_EDELSTEIN_LILA,&level.score[SC_EDELSTEIN], TEXT_COLLECTING }, { EL_DIAMANT, &level.score[SC_DIAMANT], TEXT_COLLECTING }, - { EL_KAEFER_R, &level.score[SC_KAEFER], TEXT_SMASHING }, - { EL_KAEFER_O, &level.score[SC_KAEFER], TEXT_SMASHING }, - { EL_KAEFER_L, &level.score[SC_KAEFER], TEXT_SMASHING }, - { EL_KAEFER_U, &level.score[SC_KAEFER], TEXT_SMASHING }, - { EL_BUTTERFLY_R, &level.score[SC_KAEFER], TEXT_SMASHING }, - { EL_BUTTERFLY_O, &level.score[SC_KAEFER], TEXT_SMASHING }, - { EL_BUTTERFLY_L, &level.score[SC_KAEFER], TEXT_SMASHING }, - { EL_BUTTERFLY_U, &level.score[SC_KAEFER], TEXT_SMASHING }, - { EL_FLIEGER_R, &level.score[SC_FLIEGER], TEXT_SMASHING }, - { EL_FLIEGER_O, &level.score[SC_FLIEGER], TEXT_SMASHING }, - { EL_FLIEGER_L, &level.score[SC_FLIEGER], TEXT_SMASHING }, - { EL_FLIEGER_U, &level.score[SC_FLIEGER], TEXT_SMASHING }, - { EL_FIREFLY_R, &level.score[SC_FLIEGER], TEXT_SMASHING }, - { EL_FIREFLY_O, &level.score[SC_FLIEGER], TEXT_SMASHING }, - { EL_FIREFLY_L, &level.score[SC_FLIEGER], TEXT_SMASHING }, - { EL_FIREFLY_U, &level.score[SC_FLIEGER], TEXT_SMASHING }, + { EL_KAEFER_RIGHT, &level.score[SC_KAEFER], TEXT_SMASHING }, + { EL_KAEFER_UP, &level.score[SC_KAEFER], TEXT_SMASHING }, + { EL_KAEFER_LEFT, &level.score[SC_KAEFER], TEXT_SMASHING }, + { EL_KAEFER_DOWN, &level.score[SC_KAEFER], TEXT_SMASHING }, + { EL_BUTTERFLY_RIGHT,&level.score[SC_KAEFER], TEXT_SMASHING }, + { EL_BUTTERFLY_UP, &level.score[SC_KAEFER], TEXT_SMASHING }, + { EL_BUTTERFLY_LEFT,&level.score[SC_KAEFER], TEXT_SMASHING }, + { EL_BUTTERFLY_DOWN,&level.score[SC_KAEFER], TEXT_SMASHING }, + { EL_FLIEGER_RIGHT, &level.score[SC_FLIEGER], TEXT_SMASHING }, + { EL_FLIEGER_UP, &level.score[SC_FLIEGER], TEXT_SMASHING }, + { EL_FLIEGER_LEFT, &level.score[SC_FLIEGER], TEXT_SMASHING }, + { EL_FLIEGER_DOWN, &level.score[SC_FLIEGER], TEXT_SMASHING }, + { EL_FIREFLY_RIGHT, &level.score[SC_FLIEGER], TEXT_SMASHING }, + { EL_FIREFLY_UP, &level.score[SC_FLIEGER], TEXT_SMASHING }, + { EL_FIREFLY_LEFT, &level.score[SC_FLIEGER], TEXT_SMASHING }, + { EL_FIREFLY_DOWN, &level.score[SC_FLIEGER], TEXT_SMASHING }, { EL_MAMPFER, &level.score[SC_MAMPFER], TEXT_SMASHING }, { EL_MAMPFER2, &level.score[SC_MAMPFER], TEXT_SMASHING }, { EL_ROBOT, &level.score[SC_ROBOT], TEXT_SMASHING }, - { EL_PACMAN_R, &level.score[SC_PACMAN], TEXT_SMASHING }, - { EL_PACMAN_O, &level.score[SC_PACMAN], TEXT_SMASHING }, - { EL_PACMAN_L, &level.score[SC_PACMAN], TEXT_SMASHING }, - { EL_PACMAN_U, &level.score[SC_PACMAN], TEXT_SMASHING }, + { EL_PACMAN_RIGHT, &level.score[SC_PACMAN], TEXT_SMASHING }, + { EL_PACMAN_UP, &level.score[SC_PACMAN], TEXT_SMASHING }, + { EL_PACMAN_LEFT, &level.score[SC_PACMAN], TEXT_SMASHING }, + { EL_PACMAN_DOWN, &level.score[SC_PACMAN], TEXT_SMASHING }, { EL_KOKOSNUSS, &level.score[SC_KOKOSNUSS], TEXT_CRACKING }, { EL_DYNAMITE_INACTIVE,&level.score[SC_DYNAMIT], TEXT_COLLECTING }, { EL_SCHLUESSEL1, &level.score[SC_SCHLUESSEL], TEXT_COLLECTING }, @@ -2525,7 +2624,7 @@ static void DrawPropertiesWindow() { EL_AMOEBE_NORM, &level.amoeba_speed, TEXT_SPEED }, { EL_AMOEBE_VOLL, &level.amoeba_speed, TEXT_SPEED }, { EL_AMOEBE_BD, &level.amoeba_speed, TEXT_SPEED }, - { EL_SIEB_INAKTIV, &level.time_magic_wall, TEXT_DURATION }, + { EL_MAGIC_WALL_OFF,&level.time_magic_wall, TEXT_DURATION }, { EL_ABLENK_AUS, &level.time_wheel, TEXT_DURATION }, { -1, NULL, NULL } }; @@ -2541,28 +2640,28 @@ static void DrawPropertiesWindow() for (x=0; x<3; x++) DrawMiniElement(xstart + x , ystart + y, EL_ERDREICH); - XFillRectangle(display, drawto, gc, + ClearRectangle(drawto, SX + xstart * MINI_TILEX + MINI_TILEX/2 - 1, SY + ystart * MINI_TILEY + MINI_TILEY/2 - 1, TILEX + 2, TILEY + 2); /* copy border to the right location */ - XCopyArea(display, drawto, drawto, gc, - SX + xstart * MINI_TILEX, - SY + ystart * MINI_TILEY, - 2 * TILEX, 2 * TILEY, - SX + xstart * MINI_TILEX - MINI_TILEX/2, - SY + ystart * MINI_TILEY - MINI_TILEY/2); + BlitBitmap(drawto, drawto, + SX + xstart * MINI_TILEX, + SY + ystart * MINI_TILEY, + 2 * TILEX, 2 * TILEY, + SX + xstart * MINI_TILEX - MINI_TILEX/2, + SY + ystart * MINI_TILEY - MINI_TILEY/2); DrawGraphic(xstart/2, ystart/2, el2gfx(properties_element)); /* copy the whole stuff to the definitive location */ - XCopyArea(display, drawto, drawto, gc, - SX + xstart * MINI_TILEX - MINI_TILEX/2, - SY + ystart * MINI_TILEY - MINI_TILEY, - 2 * TILEX, 2 * TILEY, - SX + xstart * MINI_TILEX - MINI_TILEX/2, - SY + ystart * MINI_TILEY - MINI_TILEY/2); + BlitBitmap(drawto, drawto, + SX + xstart * MINI_TILEX - MINI_TILEX/2, + SY + ystart * MINI_TILEY - MINI_TILEY, + 2 * TILEX, 2 * TILEY, + SX + xstart * MINI_TILEX - MINI_TILEX/2, + SY + ystart * MINI_TILEY - MINI_TILEY/2); DrawTextF((xstart + 3) * MINI_TILEX, (ystart + 1) * MINI_TILEY, font_color, element_info[properties_element]); @@ -2614,26 +2713,6 @@ static void DrawPropertiesWindow() } } -static void swap_numbers(int *i1, int *i2) -{ - int help = *i1; - - *i1 = *i2; - *i2 = help; -} - -static void swap_number_pairs(int *x1, int *y1, int *x2, int *y2) -{ - int help_x = *x1; - int help_y = *y1; - - *x1 = *x2; - *x2 = help_x; - - *y1 = *y2; - *y2 = help_y; -} - static void DrawLineElement(int sx, int sy, int element, boolean change_level) { int lx = sx + level_xpos; @@ -2813,14 +2892,10 @@ static void DrawAreaBorder(int from_x, int from_y, int to_x, int to_y) to_sx = SX + to_x * MINI_TILEX + MINI_TILEX - 1; to_sy = SY + to_y * MINI_TILEY + MINI_TILEY - 1; - XSetForeground(display, gc, WhitePixel(display, screen)); - - XDrawLine(display, drawto, gc, from_sx, from_sy, to_sx, from_sy); - XDrawLine(display, drawto, gc, to_sx, from_sy, to_sx, to_sy); - XDrawLine(display, drawto, gc, to_sx, to_sy, from_sx, to_sy); - XDrawLine(display, drawto, gc, from_sx, to_sy, from_sx, from_sy); - - XSetForeground(display, gc, BlackPixel(display, screen)); + DrawSimpleWhiteLine(drawto, from_sx, from_sy, to_sx, from_sy); + DrawSimpleWhiteLine(drawto, to_sx, from_sy, to_sx, to_sy); + DrawSimpleWhiteLine(drawto, to_sx, to_sy, from_sx, to_sy); + DrawSimpleWhiteLine(drawto, from_sx, to_sy, from_sx, from_sy); if (from_x == to_x && from_y == to_y) MarkTileDirty(from_x/2, from_y/2); @@ -3681,7 +3756,7 @@ static void HandleControlButtons(struct GadgetInfo *gi) int element = editor_element[element_shift + i]; UnmapGadget(gi); - getMiniGraphicSource(el2gfx(element), &gd->pixmap, &gd->x, &gd->y); + getMiniGraphicSource(el2gfx(element), &gd->bitmap, &gd->x, &gd->y); ModifyGadget(gi, GDI_INFO_TEXT, element_info[element], GDI_END); MapGadget(gi); } @@ -3776,7 +3851,7 @@ static void HandleControlButtons(struct GadgetInfo *gi) break; case GADGET_ID_SAVE: - if (leveldir[leveldir_nr].readonly) + if (leveldir_current->readonly) { Request("This level is read only !", REQ_CONFIRM); break; @@ -3843,9 +3918,9 @@ static void HandleControlButtons(struct GadgetInfo *gi) else { CloseDoor(DOOR_CLOSE_1); - XCopyArea(display, pix[PIX_DB_DOOR], pix[PIX_DB_DOOR], gc, - DOOR_GFX_PAGEX2, DOOR_GFX_PAGEY1, DXSIZE,DYSIZE, - DOOR_GFX_PAGEX1, DOOR_GFX_PAGEY1); + BlitBitmap(pix[PIX_DB_DOOR], pix[PIX_DB_DOOR], + DOOR_GFX_PAGEX2, DOOR_GFX_PAGEY1, DXSIZE,DYSIZE, + DOOR_GFX_PAGEX1, DOOR_GFX_PAGEY1); OpenDoor(DOOR_OPEN_1); } break; @@ -3947,7 +4022,7 @@ void HandleLevelEditorKeyInput(KeySym key) void ClearEditorGadgetInfoText() { - XFillRectangle(display, drawto, gc, + ClearRectangle(drawto, INFOTEXT_XPOS, INFOTEXT_YPOS, INFOTEXT_XSIZE, INFOTEXT_YSIZE); redraw_mask |= REDRAW_FIELD; }