X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Ftools.c;h=33b677954947107346e76e69d65f778027d1e2f6;hp=2ff2a6e3a7450e00293d90a81ee25308167fa84a;hb=be5bf9c7912238465ec23cec535277ebc1a4a21b;hpb=05f79aac9452f5666ee6dc712637adc1d9ae6b7a diff --git a/src/tools.c b/src/tools.c index 2ff2a6e3..33b67795 100644 --- a/src/tools.c +++ b/src/tools.c @@ -1150,10 +1150,12 @@ void FadeSkipNextFadeOut(void) static Bitmap *getBitmapFromGraphicOrDefault(int graphic, int default_graphic) { + if (graphic == IMG_UNDEFINED) + return NULL; + boolean redefined = getImageListEntryFromImageID(graphic)->redefined; - return (graphic == IMG_UNDEFINED ? NULL : - graphic_info[graphic].bitmap != NULL || redefined ? + return (graphic_info[graphic].bitmap != NULL || redefined ? graphic_info[graphic].bitmap : graphic_info[default_graphic].bitmap); } @@ -2274,7 +2276,9 @@ static void DrawLevelFieldCrumbledExt(int x, int y, int graphic, int frame) !IN_SCR_FIELD(sxx, syy)) continue; - if (Feld[xx][yy] == EL_ELEMENT_SNAPPING) + // do not crumble fields that are being digged or snapped + if (Feld[xx][yy] == EL_EMPTY || + Feld[xx][yy] == EL_ELEMENT_SNAPPING) continue; element = TILE_GFX_ELEMENT(xx, yy); @@ -3514,14 +3518,11 @@ static void DrawPreviewLevelExt(boolean restart) } } -static void DrawPreviewPlayers(void) +void DrawPreviewPlayers(void) { if (game_status != GAME_MODE_MAIN) return; - if (!network.enabled && !setup.team_mode) - return; - boolean player_found[MAX_PLAYERS]; int num_players = 0; int i, x, y; @@ -3570,6 +3571,9 @@ static void DrawPreviewPlayers(void) ClearRectangleOnBackground(drawto, max_xpos, max_ypos, max_players_width, max_players_height); + if (!network.enabled && !setup.team_mode) + return; + // only draw players if level is suited for team mode if (num_players < 2) return; @@ -9656,6 +9660,8 @@ void ChangeViewportPropertiesIfNeeded(void) { // printf("::: init_video_buffer\n"); + FreeAllImageTextures(); // needs old renderer to free the textures + InitVideoBuffer(WIN_XSIZE, WIN_YSIZE, DEFAULT_DEPTH, setup.fullscreen); InitImageTextures(); }