X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_mm%2Fmm_tools.c;h=21ad08144351dab725e4e6ec23be4330767a3056;hb=HEAD;hp=aa9c2a5d0aab5cbdeed125d1961bdd6b7d417cc7;hpb=34b1ec9d816877389df293fb4f9ec10cc2a43729;p=rocksndiamonds.git diff --git a/src/game_mm/mm_tools.c b/src/game_mm/mm_tools.c index aa9c2a5d..12ca83ce 100644 --- a/src/game_mm/mm_tools.c +++ b/src/game_mm/mm_tools.c @@ -1057,7 +1057,8 @@ static void DrawTileCursor_Xsn(int draw_target) } } -void DrawTileCursor_MM(int draw_target, boolean tile_cursor_active) +void DrawTileCursor_MM(int draw_target, int drawing_stage, + boolean tile_cursor_active) { if (program.headless) return; @@ -1072,7 +1073,12 @@ void DrawTileCursor_MM(int draw_target, boolean tile_cursor_active) int width = tilesize; int height = tilesize; - DrawTileCursor_Xsn(draw_target); + if (!drawing_stage) + { + DrawTileCursor_Xsn(draw_target); + + return; + } if (!tile_cursor.enabled || !tile_cursor.active || @@ -1149,6 +1155,8 @@ int get_base_element(int element) return EL_DF_MIRROR_AUTO_START; else if (IS_DF_MIRROR_FIXED(element)) return EL_DF_MIRROR_FIXED_START; + else if (IS_DF_SLOPE(element)) + return EL_DF_SLOPE_START; else if (IS_PACMAN(element)) return EL_PACMAN_START; else if (IS_GRID_STEEL(element)) @@ -1207,7 +1215,8 @@ int get_num_elements(int element) IS_RECEIVER(element) || IS_PACMAN(element) || IS_GRID_STEEL(element) || - IS_GRID_WOOD(element)) + IS_GRID_WOOD(element) || + IS_DF_SLOPE(element)) return 4; else return 1; @@ -1278,6 +1287,13 @@ static int getFlippedTileExt_MM(int element, int mode) (mode != MM_FLIP_XY && element_phase > 1)) element_phase ^= 1; } + else if (IS_DF_SLOPE(element)) + { + element_phase = (mode == MM_FLIP_X ? 5 - element_phase : + mode == MM_FLIP_Y ? 3 - element_phase : + mode == MM_FLIP_XY ? 4 - element_phase : + element_phase); + } else { int num_elements_flip = num_elements;