X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Feditor.c;h=7850a4f590f4bf3dcdad8624b70f693b72d95f06;hb=3fd727f8ab7628eaab0be7de31658d7d468d6c8d;hp=922dfe0699deaf9c27600642299f01c2b3531cc1;hpb=1d7b4b0ee6ba41cb6f977d35aca97e4965560cd4;p=rocksndiamonds.git diff --git a/src/editor.c b/src/editor.c index 922dfe06..7850a4f5 100644 --- a/src/editor.c +++ b/src/editor.c @@ -754,29 +754,29 @@ int editor_element[] = EL_CHAR('S'), EL_CHAR('H'), - EL_PLAYER, + EL_PLAYER1, EL_EMPTY, EL_SAND, EL_STEELWALL, EL_BD_WALL, - EL_MAGIC_WALL_BD_OFF, + EL_BD_MAGIC_WALL, EL_EXIT_CLOSED, EL_EXIT_OPEN, EL_BD_DIAMOND, - EL_BUTTERFLY_UP, - EL_FIREFLY_UP, + EL_BD_BUTTERFLY_UP, + EL_BD_FIREFLY_UP, EL_BD_ROCK, - EL_BUTTERFLY_LEFT, - EL_FIREFLY_LEFT, - EL_BUTTERFLY_RIGHT, - EL_FIREFLY_RIGHT, + EL_BD_BUTTERFLY_LEFT, + EL_BD_FIREFLY_LEFT, + EL_BD_BUTTERFLY_RIGHT, + EL_BD_FIREFLY_RIGHT, EL_BD_AMOEBA, - EL_BUTTERFLY_DOWN, - EL_FIREFLY_DOWN, + EL_BD_BUTTERFLY_DOWN, + EL_BD_FIREFLY_DOWN, EL_EMPTY, EL_CHAR('E'), @@ -799,7 +799,7 @@ int editor_element[] = EL_PLAYER3, EL_PLAYER4, - EL_PLAYER, + EL_PLAYER1, EL_EMPTY, EL_SAND, EL_ROCK, @@ -889,10 +889,10 @@ int editor_element[] = EL_GATE3_GRAY, EL_GATE4_GRAY, - EL_ARROW_LEFT, - EL_ARROW_RIGHT, - EL_ARROW_UP, - EL_ARROW_DOWN, + EL_ARROW_BLUE_LEFT, + EL_ARROW_BLUE_RIGHT, + EL_ARROW_BLUE_UP, + EL_ARROW_BLUE_DOWN, EL_AMOEBA_FULL, EL_EMERALD_YELLOW, @@ -942,7 +942,7 @@ int editor_element[] = EL_EMPTY, EL_MOLE_DOWN, EL_BALLOON, - EL_BALLOON_SEND_ANY, + EL_BALLOON_SEND_ANY_DIRECTION, EL_BALLOON_SEND_LEFT, EL_BALLOON_SEND_RIGHT, @@ -980,9 +980,9 @@ int editor_element[] = EL_CHAR('A'), EL_CHAR('N'), - EL_SOKOBAN_OBJEKT, - EL_SOKOBAN_FELD_LEER, - EL_SOKOBAN_FELD_VOLL, + EL_SOKOBAN_OBJECT, + EL_SOKOBAN_FIELD_EMPTY, + EL_SOKOBAN_FIELD_FULL, EL_STEELWALL, EL_CHAR('S'), @@ -1026,7 +1026,7 @@ int editor_element[] = EL_SP_PORT_XY, EL_SP_ELECTRON, - EL_SP_BUG, + EL_SP_BUGGY_BASE, EL_SP_CHIP_LEFT, EL_SP_CHIP_RIGHT, @@ -1107,11 +1107,11 @@ int editor_element[] = EL_TIMEGATE_CLOSED, EL_TIMEGATE_OPEN, - EL_TIMEGATE_SWITCH_OFF, + EL_TIMEGATE_SWITCH, EL_EMPTY, EL_LANDMINE, - EL_SAND_INVISIBLE, + EL_INVISIBLE_SAND, EL_STEELWALL_SLANTED, EL_EMPTY, @@ -1121,7 +1121,7 @@ int editor_element[] = EL_LIGHT_SWITCH_ACTIVE, EL_SHIELD_NORMAL, - EL_SHIELD_ACTIVE, + EL_SHIELD_DEADLY, EL_EXTRA_TIME, EL_EMPTY, @@ -1147,20 +1147,20 @@ int editor_element[] = EL_SPRING, EL_TUBE_RIGHT_DOWN, - EL_TUBE_HORIZ_DOWN, + EL_TUBE_HORIZONTAL_DOWN, EL_TUBE_LEFT_DOWN, EL_TUBE_HORIZONTAL, - EL_TUBE_VERT_RIGHT, - EL_TUBE_CROSS, - EL_TUBE_VERT_LEFT, + EL_TUBE_VERTICAL_RIGHT, + EL_TUBE_ALL, + EL_TUBE_VERTICAL_LEFT, EL_TUBE_VERTICAL, EL_TUBE_RIGHT_UP, - EL_TUBE_HORIZ_UP, + EL_TUBE_HORIZONTAL_UP, EL_TUBE_LEFT_UP, - EL_TRAP_INACTIVE, + EL_TRAP, EL_DX_SUPABOMB, EL_EMPTY, EL_EMPTY, @@ -1182,10 +1182,70 @@ int editor_element[] = EL_CHAR('R'), */ - EL_EMPTY, - EL_EMPTY, - EL_EMPTY, - EL_EMPTY, + EL_CHAR('C'), + EL_CHAR('U'), + EL_CHAR('S'), + EL_CHAR('-'), + + EL_CHAR('T'), + EL_CHAR('O'), + EL_CHAR('M'), + EL_CHAR(' '), + + EL_CHAR('E'), + EL_CHAR('L'), + EL_CHAR('E'), + EL_CHAR('M'), + + EL_CHAR('E'), + EL_CHAR('N'), + EL_CHAR('T'), + EL_CHAR('S'), + + EL_GENERIC_START + 0, + EL_GENERIC_START + 1, + EL_GENERIC_START + 2, + EL_GENERIC_START + 3, + + EL_GENERIC_START + 4, + EL_GENERIC_START + 5, + EL_GENERIC_START + 6, + EL_GENERIC_START + 7, + + EL_GENERIC_START + 8, + EL_GENERIC_START + 9, + EL_GENERIC_START + 10, + EL_GENERIC_START + 11, + + EL_GENERIC_START + 12, + EL_GENERIC_START + 13, + EL_GENERIC_START + 14, + EL_GENERIC_START + 15, + + EL_GENERIC_START + 16, + EL_GENERIC_START + 17, + EL_GENERIC_START + 18, + EL_GENERIC_START + 19, + + EL_GENERIC_START + 20, + EL_GENERIC_START + 21, + EL_GENERIC_START + 22, + EL_GENERIC_START + 23, + + EL_GENERIC_START + 24, + EL_GENERIC_START + 25, + EL_GENERIC_START + 26, + EL_GENERIC_START + 27, + + EL_GENERIC_START + 28, + EL_GENERIC_START + 29, + EL_GENERIC_START + 30, + EL_GENERIC_START + 31, + + EL_CHAR('T'), + EL_CHAR('E'), + EL_CHAR('X'), + EL_CHAR('T'), EL_CHAR(' '), EL_CHAR('!'), @@ -1265,7 +1325,12 @@ int editor_element[] = EL_CHAR('Ö'), EL_CHAR('Ü'), EL_CHAR('^'), - EL_CHAR(' ') + EL_CHAR('_'), + + EL_CHAR(' '), + EL_CHAR('°'), + EL_CHAR('´'), + EL_CHAR('|') }; int elements_in_list = sizeof(editor_element)/sizeof(int); @@ -1273,7 +1338,8 @@ static char *getElementInfoText(int element) { char *info_text = "unknown"; - if (element < NUM_FILE_ELEMENTS) + if (element < NUM_FILE_ELEMENTS && + element_info[element].editor_description != NULL) info_text = element_info[element].editor_description; else Error(ERR_WARN, "no element description for element %d", element); @@ -1313,7 +1379,7 @@ static void ScrollMiniLevel(int from_x, int from_y, int scroll) static void CreateControlButtons() { - Bitmap *gd_bitmap = pix[PIX_DOOR]; + Bitmap *gd_bitmap = new_graphic_info[IMG_MENU_DOOR].bitmap; struct GadgetInfo *gi; unsigned long event_mask; int i; @@ -1490,7 +1556,7 @@ static void CreateControlButtons() gd_x2 = DOOR_GFX_PAGEX6 + ED_ELEMENTLIST_XPOS; gd_y = DOOR_GFX_PAGEY1 + ED_ELEMENTLIST_YPOS; - getMiniGraphicSource(el2gfx(editor_element[i]), + getMiniGraphicSource(el2img(editor_element[i]), &deco_bitmap, &deco_x, &deco_y); deco_xpos = (ED_ELEMENTLIST_XSIZE - MINI_TILEX) / 2; deco_ypos = (ED_ELEMENTLIST_YSIZE - MINI_TILEY) / 2; @@ -1534,7 +1600,7 @@ static void CreateCounterButtons() for (j=0; j<2; j++) { - Bitmap *gd_bitmap = pix[PIX_DOOR]; + Bitmap *gd_bitmap = new_graphic_info[IMG_MENU_DOOR].bitmap; struct GadgetInfo *gi; int id = (j == 0 ? counterbutton_info[i].gadget_id_down : @@ -1756,7 +1822,7 @@ static void CreateTextInputGadgets() for (i=0; i= 0 && x - level_xpos < ed_fieldx && @@ -3475,11 +3599,11 @@ static void HandleDrawingAreas(struct GadgetInfo *gi) DrawMiniGraphicExt(drawto, gi->x + sx * MINI_TILEX, gi->y + sy * MINI_TILEY, - el2gfx(new_element)); + el2img(new_element)); DrawMiniGraphicExt(window, gi->x + sx * MINI_TILEX, gi->y + sy * MINI_TILEY, - el2gfx(new_element)); + el2img(new_element)); if (id == GADGET_ID_AMOEBA_CONTENT) level.amoeba_content = new_element; @@ -3801,7 +3925,7 @@ static void HandleControlButtons(struct GadgetInfo *gi) int element = editor_element[element_shift + i]; UnmapGadget(gi); - getMiniGraphicSource(el2gfx(element), &gd->bitmap, &gd->x, &gd->y); + getMiniGraphicSource(el2img(element), &gd->bitmap, &gd->x, &gd->y); ModifyGadget(gi, GDI_INFO_TEXT, getElementInfoText(element), GDI_END); MapGadget(gi); } @@ -4062,6 +4186,32 @@ void HandleLevelEditorKeyInput(Key key) } } +void HandleLevelEditorIdle() +{ + static unsigned long action_delay = 0; + unsigned long action_delay_value = GameFrameDelay; + int xpos = 1, ypos = 2; + + if (edit_mode != ED_MODE_PROPERTIES) + return; + + if (!DelayReached(&action_delay, action_delay_value)) + return; + + FY += MINI_TILEY / 2; +#if 1 + DrawGraphicAnimation(xpos, ypos, el2img(properties_element)); +#else + DrawGraphicAnimation(xpos, ypos, el_dir_act2img(properties_element, + MV_NO_MOVING, + ...)); +#endif + FY -= MINI_TILEY / 2; + MarkTileDirty(xpos, ypos + 1); + + FrameCounter++; /* increase animation frame counter */ +} + void ClearEditorGadgetInfoText() { ClearRectangle(drawto, @@ -4259,7 +4409,7 @@ void RequestExitLevelEditor(boolean ask_if_level_has_changed) else { CloseDoor(DOOR_CLOSE_1); - BlitBitmap(pix[PIX_DB_DOOR], pix[PIX_DB_DOOR], + BlitBitmap(bitmap_db_door, bitmap_db_door, DOOR_GFX_PAGEX2, DOOR_GFX_PAGEY1, DXSIZE,DYSIZE, DOOR_GFX_PAGEX1, DOOR_GFX_PAGEY1); OpenDoor(DOOR_OPEN_1);