X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Ftools.c;h=a5224ae11bfabbbe570dd1f12c898c2a79aebf31;hb=0c27626bae90cb1eeea4939de0130a49b9aac507;hp=4c74046cedcab26e3fd0cf3f886343b73fb99db3;hpb=84c20a81b20d9a4017f7691dda78fc3b6f2dedf5;p=rocksndiamonds.git diff --git a/src/tools.c b/src/tools.c index 4c74046c..a5224ae1 100644 --- a/src/tools.c +++ b/src/tools.c @@ -94,12 +94,6 @@ void BackToFront() if (redraw_mask & REDRAW_FIELD) redraw_mask &= ~REDRAW_TILES; - /* - if (redraw_mask & REDRAW_FIELD || - (ScreenGfxPos && setup.soft_scrolling && game_status == PLAYING)) - redraw_mask &= ~REDRAW_TILES; - */ - if (!redraw_mask) return; @@ -110,12 +104,6 @@ void BackToFront() XSync(display, FALSE); - /* -#ifdef MSDOS - wait_for_vsync = TRUE; -#endif - */ - if (redraw_mask & REDRAW_ALL) { XCopyArea(display, backbuffer, window, gc, @@ -326,26 +314,41 @@ void ClearWindow() redraw_mask |= REDRAW_FIELD; } +int getFontWidth(int font_size, int font_type) +{ + return (font_size == FS_BIG ? FONT1_XSIZE : + font_type == FC_SPECIAL1 ? FONT3_XSIZE : + font_type == FC_SPECIAL2 ? FONT4_XSIZE : + font_type == FC_SPECIAL3 ? FONT5_XSIZE : + FONT2_XSIZE); +} + +int getFontHeight(int font_size, int font_type) +{ + return (font_size == FS_BIG ? FONT1_YSIZE : + font_type == FC_SPECIAL1 ? FONT3_YSIZE : + font_type == FC_SPECIAL2 ? FONT4_YSIZE : + font_type == FC_SPECIAL3 ? FONT5_YSIZE : + FONT2_YSIZE); +} + void DrawTextFCentered(int y, int font_type, char *format, ...) { - char buffer[FULL_SXSIZE / FONT3_XSIZE + 10]; - int font_xsize; + char buffer[FULL_SXSIZE / FONT5_XSIZE + 10]; + int font_width = getFontWidth(FS_SMALL, font_type); va_list ap; - font_xsize = (font_type < FC_SPECIAL1 ? FONT2_XSIZE : - font_type < FC_SPECIAL2 ? FONT3_XSIZE : FONT4_XSIZE); - va_start(ap, format); vsprintf(buffer, format, ap); va_end(ap); - DrawText(SX + (SXSIZE - strlen(buffer) * font_xsize) / 2, SY + y, + DrawText(SX + (SXSIZE - strlen(buffer) * font_width) / 2, SY + y, buffer, FS_SMALL, font_type); } void DrawTextF(int x, int y, int font_type, char *format, ...) { - char buffer[FULL_SXSIZE / FONT3_XSIZE + 10]; + char buffer[FULL_SXSIZE / FONT5_XSIZE + 10]; va_list ap; va_start(ap, format); @@ -374,23 +377,24 @@ void DrawTextExt(Drawable d, GC gc, int x, int y, if (font_size != FS_SMALL && font_size != FS_BIG) font_size = FS_SMALL; - if (font_type < FC_RED || font_type > FC_SPECIAL2) + if (font_type < FC_RED || font_type > FC_SPECIAL3) font_type = FC_RED; - font_width = (font_size == FS_BIG ? FONT1_XSIZE : - font_type < FC_SPECIAL1 ? FONT2_XSIZE : - font_type < FC_SPECIAL2 ? FONT3_XSIZE : FONT4_XSIZE); - font_height = (font_size == FS_BIG ? FONT1_XSIZE : - font_type < FC_SPECIAL2 ? FONT2_XSIZE : FONT4_XSIZE); + font_width = getFontWidth(font_size, font_type); + font_height = getFontHeight(font_size, font_type); + font_pixmap = (font_size == FS_BIG ? PIX_BIGFONT : PIX_SMALLFONT); font_start = (font_type * (font_size == FS_BIG ? FONT1_YSIZE : FONT2_YSIZE) * FONT_LINES_PER_FONT); + if (font_type == FC_SPECIAL3) + font_start += (FONT4_YSIZE - FONT2_YSIZE) * FONT_LINES_PER_FONT; + while (*text) { char c = *text++; - if (c == '~' && font_size == FS_SMALL && font_type <= FC_YELLOW) + if (c == '~' && font_size == FS_SMALL) { print_inverse = TRUE; continue; @@ -443,10 +447,10 @@ void DrawAllPlayers() void DrawPlayerField(int x, int y) { - if (!IS_PLAYER(x,y)) + if (!IS_PLAYER(x, y)) return; - DrawPlayer(PLAYERINFO(x,y)); + DrawPlayer(PLAYERINFO(x, y)); } void DrawPlayer(struct PlayerInfo *player) @@ -460,8 +464,7 @@ void DrawPlayer(struct PlayerInfo *player) int graphic, phase; boolean player_is_moving = (last_jx != jx || last_jy != jy ? TRUE : FALSE); - if (!player->active || player->gone || - !IN_SCR_FIELD(SCREENX(last_jx), SCREENY(last_jy))) + if (!player->active || !IN_SCR_FIELD(SCREENX(last_jx), SCREENY(last_jy))) return; #if DEBUG @@ -479,10 +482,6 @@ void DrawPlayer(struct PlayerInfo *player) /* draw things in the field the player is leaving, if needed */ - /* - if (last_jx != jx || last_jy != jy) - */ - if (player_is_moving) { if (Store[last_jx][last_jy] && IS_DRAWABLE(last_element)) @@ -490,7 +489,7 @@ void DrawPlayer(struct PlayerInfo *player) DrawLevelElement(last_jx, last_jy, Store[last_jx][last_jy]); DrawLevelFieldThruMask(last_jx, last_jy); } - else if (last_element == EL_DYNAMIT) + else if (last_element == EL_DYNAMITE_ACTIVE) DrawDynamite(last_jx, last_jy); else DrawLevelField(last_jx, last_jy); @@ -519,18 +518,20 @@ void DrawPlayer(struct PlayerInfo *player) if (Store[jx][jy]) DrawLevelElement(jx, jy, Store[jx][jy]); - else if (element != EL_DYNAMIT && element != EL_DYNABOMB) + else if (!IS_ACTIVE_BOMB(element)) DrawLevelField(jx, jy); /* draw player himself */ - if (game_emulation == EMU_SUPAPLEX) + if (game.emulation == EMU_SUPAPLEX) { static int last_dir = MV_LEFT; + int action = (player->programmed_action ? player->programmed_action : + player->action); boolean action_moving = (player_is_moving || - ((player->action & (MV_LEFT | MV_RIGHT | MV_UP | MV_DOWN)) && - !(player->action & ~(MV_LEFT | MV_RIGHT | MV_UP | MV_DOWN)))); + ((action & (MV_LEFT | MV_RIGHT | MV_UP | MV_DOWN)) && + !(action & ~(MV_LEFT | MV_RIGHT | MV_UP | MV_DOWN)))); graphic = GFX_SP_MURPHY; @@ -630,13 +631,13 @@ void DrawPlayer(struct PlayerInfo *player) } } - /* draw things in front of player (EL_DYNAMIT or EL_DYNABOMB) */ + /* draw things in front of player (active dynamite or dynabombs) */ - if (element == EL_DYNAMIT || element == EL_DYNABOMB) + if (IS_ACTIVE_BOMB(element)) { graphic = el2gfx(element); - if (element == EL_DYNAMIT) + if (element == EL_DYNAMITE_ACTIVE) { if ((phase = (96 - MovDelay[jx][jy]) / 12) > 6) phase = 6; @@ -647,16 +648,12 @@ void DrawPlayer(struct PlayerInfo *player) phase = 7 - phase; } - if (game_emulation == EMU_SUPAPLEX) + if (game.emulation == EMU_SUPAPLEX) DrawGraphic(sx, sy, GFX_SP_DISK_RED); else DrawGraphicThruMask(sx, sy, graphic + phase); } - /* - if ((last_jx != jx || last_jy != jy) && last_element == EL_EXPLODING) - */ - if (player_is_moving && last_element == EL_EXPLODING) { int phase = Frame[last_jx][last_jy]; @@ -791,56 +788,12 @@ void DrawGraphic(int x, int y, int graphic) void DrawGraphicExt(Drawable d, GC gc, int x, int y, int graphic) { - -#if 1 - int pixmap_nr; int src_x, src_y; getGraphicSource(graphic, &pixmap_nr, &src_x, &src_y); XCopyArea(display, pix[pixmap_nr], d, gc, src_x, src_y, TILEX, TILEY, x, y); - -#else - - if (graphic >= GFX_START_ROCKSSCREEN && graphic <= GFX_END_ROCKSSCREEN) - { - graphic -= GFX_START_ROCKSSCREEN; - XCopyArea(display, pix[PIX_BACK], d, gc, - SX + (graphic % GFX_PER_LINE) * TILEX, - SY + (graphic / GFX_PER_LINE) * TILEY, - TILEX, TILEY, x, y); - } - else if (graphic >= GFX_START_ROCKSMORE && graphic <= GFX_END_ROCKSMORE) - { - graphic -= GFX_START_ROCKSMORE; - XCopyArea(display, pix[PIX_MORE], d, gc, - (graphic % MORE_PER_LINE) * TILEX, - (graphic / MORE_PER_LINE) * TILEY, - TILEX, TILEY, x, y); - } - else if (graphic >= GFX_START_ROCKSHEROES && graphic <= GFX_END_ROCKSHEROES) - { - graphic -= GFX_START_ROCKSHEROES; - XCopyArea(display, pix[PIX_HEROES], d, gc, - (graphic % HEROES_PER_LINE) * TILEX, - (graphic / HEROES_PER_LINE) * TILEY, - TILEX, TILEY, x, y); - } - else if (graphic >= GFX_START_ROCKSFONT && graphic <= GFX_END_ROCKSFONT) - { - graphic -= GFX_START_ROCKSFONT; - XCopyArea(display, pix[PIX_BIGFONT], d, gc, - (graphic % FONT_CHARS_PER_LINE) * TILEX, - (graphic / FONT_CHARS_PER_LINE) * TILEY + - FC_SPECIAL1 * FONT_LINES_PER_FONT * TILEY, - TILEX, TILEY, x, y); - } - else - XFillRectangle(display, d, gc, x, y, TILEX, TILEY); - -#endif - } void DrawGraphicThruMask(int x, int y, int graphic) @@ -860,9 +813,6 @@ void DrawGraphicThruMask(int x, int y, int graphic) void DrawGraphicThruMaskExt(Drawable d, int dest_x, int dest_y, int graphic) { - -#if 1 - int tile = graphic; int pixmap_nr; int src_x, src_y; @@ -876,46 +826,6 @@ void DrawGraphicThruMaskExt(Drawable d, int dest_x, int dest_y, int graphic) src_pixmap = pix[pixmap_nr]; drawing_gc = clip_gc[pixmap_nr]; -#else - - int src_x, src_y; - int tile = graphic; - Pixmap src_pixmap; - GC drawing_gc; - - if (graphic >= GFX_START_ROCKSSCREEN && graphic <= GFX_END_ROCKSSCREEN) - { - src_pixmap = pix[PIX_BACK]; - drawing_gc = clip_gc[PIX_BACK]; - graphic -= GFX_START_ROCKSSCREEN; - src_x = SX + (graphic % GFX_PER_LINE) * TILEX; - src_y = SY + (graphic / GFX_PER_LINE) * TILEY; - } - else if (graphic >= GFX_START_ROCKSMORE && graphic <= GFX_END_ROCKSMORE) - { - src_pixmap = pix[PIX_MORE]; - drawing_gc = clip_gc[PIX_MORE]; - graphic -= GFX_START_ROCKSMORE; - src_x = (graphic % MORE_PER_LINE) * TILEX; - src_y = (graphic / MORE_PER_LINE) * TILEY; - } - else if (graphic >= GFX_START_ROCKSHEROES && graphic <= GFX_END_ROCKSHEROES) - { - src_pixmap = pix[PIX_HEROES]; - drawing_gc = clip_gc[PIX_HEROES]; - graphic -= GFX_START_ROCKSHEROES; - src_x = (graphic % HEROES_PER_LINE) * TILEX; - src_y = (graphic / HEROES_PER_LINE) * TILEY; - } - else - { - DrawGraphicExt(d, gc, dest_x,dest_y, graphic); - return; - } - -#endif - - if (tile_clipmask[tile] != None) { XSetClipMask(display, tile_clip_gc, tile_clipmask[tile]); @@ -976,48 +886,12 @@ void getMiniGraphicSource(int graphic, Pixmap *pixmap, int *x, int *y) void DrawMiniGraphicExt(Drawable d, GC gc, int x, int y, int graphic) { - -#if 1 - Pixmap pixmap; int src_x, src_y; getMiniGraphicSource(graphic, &pixmap, &src_x, &src_y); XCopyArea(display, pixmap, d, gc, src_x, src_y, MINI_TILEX, MINI_TILEY, x, y); - -#else - - if (graphic >= GFX_START_ROCKSSCREEN && graphic <= GFX_END_ROCKSSCREEN) - { - graphic -= GFX_START_ROCKSSCREEN; - XCopyArea(display, pix[PIX_BACK], d, gc, - MINI_GFX_STARTX + (graphic % MINI_GFX_PER_LINE) * MINI_TILEX, - MINI_GFX_STARTY + (graphic / MINI_GFX_PER_LINE) * MINI_TILEY, - MINI_TILEX, MINI_TILEY, x, y); - } - else if (graphic >= GFX_START_ROCKSMORE && graphic <= GFX_END_ROCKSMORE) - { - graphic -= GFX_START_ROCKSMORE; - XCopyArea(display, pix[PIX_MORE], d, gc, - MINI_MORE_STARTX + (graphic % MINI_MORE_PER_LINE) * MINI_TILEX, - MINI_MORE_STARTY + (graphic / MINI_MORE_PER_LINE) * MINI_TILEY, - MINI_TILEX, MINI_TILEY, x, y); - } - else if (graphic >= GFX_START_ROCKSFONT && graphic <= GFX_END_ROCKSFONT) - { - graphic -= GFX_START_ROCKSFONT; - XCopyArea(display, pix[PIX_SMALLFONT], d, gc, - (graphic % FONT_CHARS_PER_LINE) * FONT4_XSIZE, - (graphic / FONT_CHARS_PER_LINE) * FONT4_YSIZE + - FC_SPECIAL2 * FONT2_YSIZE * FONT_LINES_PER_FONT, - MINI_TILEX, MINI_TILEY, x, y); - } - else - XFillRectangle(display, d, gc, x, y, MINI_TILEX, MINI_TILEY); - -#endif - } void DrawGraphicShifted(int x,int y, int dx,int dy, int graphic, @@ -1027,6 +901,7 @@ void DrawGraphicShifted(int x,int y, int dx,int dy, int graphic, int cx = 0, cy = 0; int src_x, src_y, dest_x, dest_y; int tile = graphic; + int pixmap_nr; Pixmap src_pixmap; GC drawing_gc; @@ -1100,32 +975,12 @@ void DrawGraphicShifted(int x,int y, int dx,int dy, int graphic, MarkTileDirty(x, y + SIGN(dy)); } - if (graphic >= GFX_START_ROCKSSCREEN && graphic <= GFX_END_ROCKSSCREEN) - { - src_pixmap = pix[PIX_BACK]; - drawing_gc = clip_gc[PIX_BACK]; - graphic -= GFX_START_ROCKSSCREEN; - src_x = SX + (graphic % GFX_PER_LINE) * TILEX + cx; - src_y = SY + (graphic / GFX_PER_LINE) * TILEY + cy; - } - else if (graphic >= GFX_START_ROCKSMORE && graphic <= GFX_END_ROCKSMORE) - { - src_pixmap = pix[PIX_MORE]; - drawing_gc = clip_gc[PIX_MORE]; - graphic -= GFX_START_ROCKSMORE; - src_x = (graphic % MORE_PER_LINE) * TILEX + cx; - src_y = (graphic / MORE_PER_LINE) * TILEY + cy; - } - else if (graphic >= GFX_START_ROCKSHEROES && graphic <= GFX_END_ROCKSHEROES) - { - src_pixmap = pix[PIX_HEROES]; - drawing_gc = clip_gc[PIX_HEROES]; - graphic -= GFX_START_ROCKSHEROES; - src_x = (graphic % HEROES_PER_LINE) * TILEX + cx; - src_y = (graphic / HEROES_PER_LINE) * TILEY + cy; - } - else /* big font graphics currently not allowed (and not needed) */ - return; + getGraphicSource(graphic, &pixmap_nr, &src_x, &src_y); + src_pixmap = pix[pixmap_nr]; + drawing_gc = clip_gc[pixmap_nr]; + + src_x += cx; + src_y += cy; dest_x = FX + x * TILEX + dx; dest_y = FY + y * TILEY + dy; @@ -1258,21 +1113,6 @@ void DrawScreenElementExt(int x, int y, int dx, int dy, int element, } else if (element != EL_SP_INFOTRON) graphic += phase2; - - /* - if (element == EL_SP_ZONK) - { - if (dir == MV_LEFT) - graphic += (4 - phase4) % 4; - else if (dir == MV_RIGHT) - graphic += phase4; - else - graphic += phase2 * 2; - } - else if (element != EL_SP_INFOTRON) - graphic += phase2 * (element == EL_FELSBROCKEN ? 2 : 1); - */ - } else if (element == EL_SIEB_LEER || element == EL_SIEB2_LEER || element == EL_SIEB_VOLL || element == EL_SIEB2_VOLL) @@ -1607,24 +1447,6 @@ void DrawMiniElementOrWall(int sx, int sy, int scroll_x, int scroll_y) if (steel_position != -1) DrawMiniGraphic(sx, sy, border[steel_position][steel_type]); - - -#if 0 - if (x == -1 && y == -1) - DrawMiniGraphic(sx, sy, GFX_STEEL_UPPER_LEFT); - else if (x == lev_fieldx && y == -1) - DrawMiniGraphic(sx, sy, GFX_STEEL_UPPER_RIGHT); - else if (x == -1 && y == lev_fieldy) - DrawMiniGraphic(sx, sy, GFX_STEEL_LOWER_LEFT); - else if (x == lev_fieldx && y == lev_fieldy) - DrawMiniGraphic(sx, sy, GFX_STEEL_LOWER_RIGHT); - else if (x == -1 || x == lev_fieldx) - DrawMiniGraphic(sx, sy, GFX_STEEL_VERTICAL); - else if (y == -1 || y == lev_fieldy) - DrawMiniGraphic(sx, sy, GFX_STEEL_HORIZONTAL); -#endif - - } } @@ -1663,11 +1485,7 @@ void DrawLevel() for(y=BY1; y<=BY2; y++) DrawScreenField(x, y); - if (setup.soft_scrolling) - XCopyArea(display, fieldbuffer, backbuffer, gc, - FX, FY, SXSIZE, SYSIZE, SX, SY); - - redraw_mask |= (REDRAW_FIELD | REDRAW_FROM_BACKBUFFER); + redraw_mask |= REDRAW_FIELD; } void DrawMiniLevel(int size_x, int size_y, int scroll_x, int scroll_y) @@ -1685,9 +1503,6 @@ static void DrawMicroLevelExt(int xpos, int ypos, int from_x, int from_y) { int x, y; - /* determine border element for this level */ - SetBorderElement(); - XFillRectangle(display, drawto, gc, xpos, ypos, MICROLEV_XSIZE, MICROLEV_YSIZE); @@ -1860,12 +1675,7 @@ boolean Request(char *text, unsigned int req_state) DOOR_GFX_PAGEX2, DOOR_GFX_PAGEY1); /* clear door drawing field */ -#if 0 - XFillRectangle(display, pix[PIX_DB_DOOR], gc, - DOOR_GFX_PAGEX1, DOOR_GFX_PAGEY1, DXSIZE, DYSIZE); -#else XFillRectangle(display, drawto, gc, DX, DY, DXSIZE, DYSIZE); -#endif /* write text for request */ for(ty=0; ty<13; ty++) @@ -1890,37 +1700,12 @@ boolean Request(char *text, unsigned int req_state) } sprintf(txt, text); txt[tl] = 0; -#if 0 - DrawTextExt(pix[PIX_DB_DOOR], gc, - DOOR_GFX_PAGEX1 + 51 - (tl * 14)/2, SY + ty * 16, - txt, FS_SMALL, FC_YELLOW); -#else DrawTextExt(drawto, gc, DX + 51 - (tl * 14)/2, DY + 8 + ty * 16, txt, FS_SMALL, FC_YELLOW); -#endif text += tl + (tc == 32 ? 1 : 0); } -#if 0 - if (req_state & REQ_ASK) - { - DrawYesNoButton(BUTTON_OK, DB_INIT); - DrawYesNoButton(BUTTON_NO, DB_INIT); - } - else if (req_state & REQ_CONFIRM) - { - DrawConfirmButton(BUTTON_CONFIRM, DB_INIT); - } - else if (req_state & REQ_PLAYER) - { - DrawPlayerButton(BUTTON_PLAYER_1, DB_INIT); - DrawPlayerButton(BUTTON_PLAYER_2, DB_INIT); - DrawPlayerButton(BUTTON_PLAYER_3, DB_INIT); - DrawPlayerButton(BUTTON_PLAYER_4, DB_INIT); - } -#else - if (req_state & REQ_ASK) { MapGadget(tool_gadget[TOOL_CTRL_ID_YES]); @@ -1943,10 +1728,11 @@ boolean Request(char *text, unsigned int req_state) DX, DY, DXSIZE, DYSIZE, DOOR_GFX_PAGEX1, DOOR_GFX_PAGEY1); -#endif - OpenDoor(DOOR_OPEN_1); + +#if 0 ClearEventQueue(); +#endif if (!(req_state & REQUEST_WAIT_FOR)) return(FALSE); @@ -1972,11 +1758,6 @@ boolean Request(char *text, unsigned int req_state) case ButtonRelease: case MotionNotify: { - -#if 0 - int choice; -#endif - if (event.type == MotionNotify) { Window root, child; @@ -2006,46 +1787,6 @@ boolean Request(char *text, unsigned int req_state) button_status = MB_RELEASED; } - - -#if 0 - if (req_state & REQ_ASK) - choice = CheckYesNoButtons(mx,my,button_status); - else if (req_state & REQ_CONFIRM) - choice = CheckConfirmButton(mx,my,button_status); - else - choice = CheckPlayerButtons(mx,my,button_status); - - switch(choice) - { - case BUTTON_OK: - result = TRUE; - break; - case BUTTON_NO: - result = FALSE; - break; - case BUTTON_CONFIRM: - result = TRUE | FALSE; - break; - - case BUTTON_PLAYER_1: - result = 1; - break; - case BUTTON_PLAYER_2: - result = 2; - break; - case BUTTON_PLAYER_3: - result = 3; - break; - case BUTTON_PLAYER_4: - result = 4; - break; - - default: - break; - } -#else - /* this sets 'request_gadget_id' */ HandleGadgets(mx, my, button_status); @@ -2077,7 +1818,6 @@ boolean Request(char *text, unsigned int req_state) default: break; } -#endif break; } @@ -2306,15 +2046,7 @@ unsigned int MoveDoor(unsigned int door_state) redraw_mask |= REDRAW_DOOR_2; } - - -#if 1 BackToFront(); -#else - XCopyArea(display, drawto, window, gc, DX, DY, DXSIZE, DYSIZE, DX, DY); -#endif - - if (game_status == MAINMENU) DoAnimation(); @@ -2329,7 +2061,25 @@ unsigned int MoveDoor(unsigned int door_state) if (door_state & DOOR_ACTION_2) door2 = door_state & DOOR_ACTION_2; - return(door1 | door2); + return (door1 | door2); +} + +void DrawSpecialEditorDoor() +{ + /* draw bigger toolbox window */ + XCopyArea(display, pix[PIX_DOOR], drawto, gc, + DOOR_GFX_PAGEX7, 0, 108, 56, EX - 4, EY - 12); + + redraw_mask |= REDRAW_ALL; +} + +void UndrawSpecialEditorDoor() +{ + /* draw normal tape recorder window */ + XCopyArea(display, pix[PIX_BACK], drawto, gc, + 562, 344, 108, 56, EX - 4, EY - 12); + + redraw_mask |= REDRAW_ALL; } int ReadPixel(Drawable d, int x, int y) @@ -2446,6 +2196,11 @@ static struct } }; +static void DoNotDisplayInfoText(void *ptr) +{ + return; +} + void CreateToolButtons() { int i; @@ -2493,6 +2248,7 @@ void CreateToolButtons() GDI_DECORATION_SHIFTING, 1, 1, GDI_EVENT_MASK, event_mask, GDI_CALLBACK_ACTION, HandleToolButtons, + GDI_CALLBACK_INFO, DoNotDisplayInfoText, GDI_END); if (gi == NULL) @@ -2513,105 +2269,6 @@ static void UnmapToolButtons() static void HandleToolButtons(struct GadgetInfo *gi) { request_gadget_id = gi->custom_id; - - -#if 0 - int id = gi->custom_id; - - if (game_status != PLAYING) - return; - - switch (id) - { - case GAME_CTRL_ID_STOP: - if (AllPlayersGone) - { - CloseDoor(DOOR_CLOSE_1); - game_status = MAINMENU; - DrawMainMenu(); - break; - } - - if (Request("Do you really want to quit the game ?", - REQ_ASK | REQ_STAY_CLOSED)) - { -#ifndef MSDOS - if (options.network) - SendToServer_StopPlaying(); - else -#endif - { - game_status = MAINMENU; - DrawMainMenu(); - } - } - else - OpenDoor(DOOR_OPEN_1 | DOOR_COPY_BACK); - break; - - case GAME_CTRL_ID_PAUSE: - if (options.network) - { -#ifndef MSDOS - if (tape.pausing) - SendToServer_ContinuePlaying(); - else - SendToServer_PausePlaying(); -#endif - } - else - TapeTogglePause(); - break; - - case GAME_CTRL_ID_PLAY: - if (tape.pausing) - { -#ifndef MSDOS - if (options.network) - SendToServer_ContinuePlaying(); - else -#endif - { - tape.pausing = FALSE; - DrawVideoDisplay(VIDEO_STATE_PAUSE_OFF,0); - } - } - break; - - case SOUND_CTRL_ID_MUSIC: - if (setup.sound_music) - { - setup.sound_music = FALSE; - FadeSound(background_loop[level_nr % num_bg_loops]); - } - else if (sound_loops_allowed) - { - setup.sound = setup.sound_music = TRUE; - PlaySoundLoop(background_loop[level_nr % num_bg_loops]); - } - break; - - case SOUND_CTRL_ID_LOOPS: - if (setup.sound_loops) - setup.sound_loops = FALSE; - else if (sound_loops_allowed) - setup.sound = setup.sound_loops = TRUE; - break; - - case SOUND_CTRL_ID_SIMPLE: - if (setup.sound_simple) - setup.sound_simple = FALSE; - else if (sound_status==SOUND_AVAILABLE) - setup.sound = setup.sound_simple = TRUE; - break; - - default: - break; - } -#endif - - - } int el2gfx(int element) @@ -2675,7 +2332,7 @@ int el2gfx(int element) case EL_KOKOSNUSS: return GFX_KOKOSNUSS; case EL_LIFE: return GFX_LIFE; case EL_LIFE_ASYNC: return GFX_LIFE_ASYNC; - case EL_DYNAMIT: return GFX_DYNAMIT; + case EL_DYNAMITE_ACTIVE: return GFX_DYNAMIT; case EL_BADEWANNE: return GFX_BADEWANNE; case EL_BADEWANNE1: return GFX_BADEWANNE1; case EL_BADEWANNE2: return GFX_BADEWANNE2; @@ -2696,7 +2353,7 @@ int el2gfx(int element) case EL_PFORTE2X: return GFX_PFORTE2X; case EL_PFORTE3X: return GFX_PFORTE3X; case EL_PFORTE4X: return GFX_PFORTE4X; - case EL_DYNAMIT_AUS: return GFX_DYNAMIT_AUS; + case EL_DYNAMITE_INACTIVE: return GFX_DYNAMIT_AUS; case EL_PACMAN: return GFX_PACMAN; case EL_PACMAN_R: return GFX_PACMAN_R; case EL_PACMAN_O: return GFX_PACMAN_O; @@ -2726,7 +2383,10 @@ int el2gfx(int element) case EL_SIEB2_LEER: return GFX_SIEB2_LEER; case EL_SIEB2_VOLL: return GFX_SIEB2_VOLL; case EL_SIEB2_TOT: return GFX_SIEB2_TOT; - case EL_DYNABOMB: return GFX_DYNABOMB; + case EL_DYNABOMB_ACTIVE_1: return GFX_DYNABOMB; + case EL_DYNABOMB_ACTIVE_2: return GFX_DYNABOMB; + case EL_DYNABOMB_ACTIVE_3: return GFX_DYNABOMB; + case EL_DYNABOMB_ACTIVE_4: return GFX_DYNABOMB; case EL_DYNABOMB_NR: return GFX_DYNABOMB_NR; case EL_DYNABOMB_SZ: return GFX_DYNABOMB_SZ; case EL_DYNABOMB_XL: return GFX_DYNABOMB_XL;