X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fgame_mm%2Fmm_tools.c;h=39bb24671273009ff21270cc47acb651e879e626;hb=d9854779a9f8bfcf09cfab5905c257da10c61e5f;hp=02eb5dfbee8825fe9f9b9b82425866ef6c3879b3;hpb=0703af7954d64f643865647bfef8749cd01ab268;p=rocksndiamonds.git diff --git a/src/game_mm/mm_tools.c b/src/game_mm/mm_tools.c index 02eb5dfb..39bb2467 100644 --- a/src/game_mm/mm_tools.c +++ b/src/game_mm/mm_tools.c @@ -41,9 +41,16 @@ void SetDrawtoField_MM(int mode) SetTileCursorSXSY(cSX, cSY); } +void BackToFront_MM(void) +{ + BlitScreenToBitmap_MM(backbuffer); + + BackToFront(); +} + void ClearWindow(void) { - ClearRectangle(backbuffer, REAL_SX, REAL_SY, FULL_SXSIZE, FULL_SYSIZE); + ClearRectangle(drawto_mm, REAL_SX, REAL_SY, FULL_SXSIZE, FULL_SYSIZE); SetDrawtoField(DRAW_TO_BACKBUFFER); SetDrawtoField_MM(DRAW_TO_BACKBUFFER); @@ -58,7 +65,7 @@ void DrawGraphicAnimation_MM(int x, int y, int graphic, int frame) getGraphicSource(graphic, frame, &bitmap, &src_x, &src_y); - BlitBitmap(bitmap, drawto_field, src_x, src_y, TILEX, TILEY, + BlitBitmap(bitmap, drawto_mm, src_x, src_y, TILEX, TILEY, cFX + x * TILEX, cFY + y * TILEY); } @@ -105,7 +112,7 @@ void DrawGraphicThruMask_MM(int x, int y, int graphic, int frame) } #endif - DrawGraphicThruMaskExt_MM(drawto_field, cFX + x * TILEX, cFY + y * TILEY, + DrawGraphicThruMaskExt_MM(drawto_mm, cFX + x * TILEX, cFY + y * TILEY, graphic, frame); MarkTileDirty(x,y); @@ -127,7 +134,7 @@ void DrawGraphicThruMaskExt_MM(DrawBuffer *d, int dest_x, int dest_y, void DrawMiniGraphic_MM(int x, int y, int graphic) { - DrawMiniGraphicExt_MM(drawto, cSX + x * MINI_TILEX, cSY + y * MINI_TILEY, + DrawMiniGraphicExt_MM(drawto_mm, cSX + x * MINI_TILEX, cSY + y * MINI_TILEY, graphic); MarkTileDirty(x / 2, y / 2); @@ -246,10 +253,10 @@ void DrawGraphicShifted_MM(int x,int y, int dx,int dy, int graphic, #endif if (mask_mode == USE_MASKING) - BlitBitmapMasked(src_bitmap, drawto_field, + BlitBitmapMasked(src_bitmap, drawto_mm, src_x, src_y, TILEX, TILEY, dest_x, dest_y); else - BlitBitmap(src_bitmap, drawto_field, + BlitBitmap(src_bitmap, drawto_mm, src_x, src_y, width, height, dest_x, dest_y); MarkTileDirty(x,y); @@ -434,10 +441,10 @@ void DrawWallsExt_MM(int x, int y, int element, int draw_mask) continue; if (element & (1 << i)) - BlitBitmap(bitmap, drawto, gx, gy, MINI_TILEX, MINI_TILEY, + BlitBitmap(bitmap, drawto_mm, gx, gy, MINI_TILEX, MINI_TILEY, dest_x, dest_y); else - ClearRectangle(drawto, dest_x, dest_y, MINI_TILEX, MINI_TILEY); + ClearRectangle(drawto_mm, dest_x, dest_y, MINI_TILEX, MINI_TILEY); } MarkTileDirty(x, y); @@ -488,7 +495,7 @@ void DrawWallsAnimation_MM(int x, int y, int element, int phase, int bit_mask) getSizedGraphicSource(graphic, frame, MINI_TILESIZE, &bitmap, &src_x, &src_y); - BlitBitmap(bitmap, drawto, src_x, src_y, MINI_TILEX, MINI_TILEY, + BlitBitmap(bitmap, drawto_mm, src_x, src_y, MINI_TILEX, MINI_TILEY, dst_x, dst_y); } } @@ -1195,31 +1202,31 @@ int get_rotated_element(int element, int step) return base_element + (element_phase + step + num_elements) % num_elements; } -static int map_element(int element) +int map_wall_from_base_element(int element) { switch (element) { - case EL_WALL_STEEL: return EL_STEEL_WALL; - case EL_WALL_WOOD: return EL_WOODEN_WALL; - case EL_WALL_ICE: return EL_ICE_WALL; - case EL_WALL_AMOEBA: return EL_AMOEBA_WALL; - case EL_DF_WALL_STEEL: return EL_DF_STEEL_WALL; - case EL_DF_WALL_WOOD: return EL_DF_WOODEN_WALL; + case EL_WALL_STEEL_BASE: return EL_WALL_STEEL; + case EL_WALL_WOOD_BASE: return EL_WALL_WOOD; + case EL_WALL_ICE_BASE: return EL_WALL_ICE; + case EL_WALL_AMOEBA_BASE: return EL_WALL_AMOEBA; + case EL_DF_WALL_STEEL_BASE: return EL_DF_WALL_STEEL; + case EL_DF_WALL_WOOD_BASE: return EL_DF_WALL_WOOD; default: return element; } } -int unmap_element(int element) +int map_wall_to_base_element(int element) { switch (element) { - case EL_STEEL_WALL: return EL_WALL_STEEL; - case EL_WOODEN_WALL: return EL_WALL_WOOD; - case EL_ICE_WALL: return EL_WALL_ICE; - case EL_AMOEBA_WALL: return EL_WALL_AMOEBA; - case EL_DF_STEEL_WALL: return EL_DF_WALL_STEEL; - case EL_DF_WOODEN_WALL: return EL_DF_WALL_WOOD; + case EL_WALL_STEEL: return EL_WALL_STEEL_BASE; + case EL_WALL_WOOD: return EL_WALL_WOOD_BASE; + case EL_WALL_ICE: return EL_WALL_ICE_BASE; + case EL_WALL_AMOEBA: return EL_WALL_AMOEBA_BASE; + case EL_DF_WALL_STEEL: return EL_DF_WALL_STEEL_BASE; + case EL_DF_WALL_WOOD: return EL_DF_WALL_WOOD_BASE; default: return element; } @@ -1227,12 +1234,12 @@ int unmap_element(int element) int el2gfx(int element) { - return el2img_mm(map_element(element)); + return el2img_mm(map_wall_from_base_element(element)); } int el_act2gfx(int element, int action) { - return el_act2img_mm(map_element(element), action); + return el_act2img_mm(map_wall_from_base_element(element), action); } void RedrawPlayfield_MM(void) @@ -1243,6 +1250,6 @@ void RedrawPlayfield_MM(void) void BlitScreenToBitmap_MM(Bitmap *target_bitmap) { - BlitBitmap(drawto_field, target_bitmap, + BlitBitmap(drawto_mm, target_bitmap, REAL_SX, REAL_SY, FULL_SXSIZE, FULL_SYSIZE, REAL_SX, REAL_SY); }