projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
added description for BD style explosion
[rocksndiamonds.git]
/
src
/
game_mm
/
mm_tools.c
diff --git
a/src/game_mm/mm_tools.c
b/src/game_mm/mm_tools.c
index aa9c2a5d0aab5cbdeed125d1961bdd6b7d417cc7..3deac03390bad2d1a6e2fa3c6fa99648817320b1 100644
(file)
--- a/
src/game_mm/mm_tools.c
+++ b/
src/game_mm/mm_tools.c
@@
-165,35
+165,35
@@
void DrawGraphicShifted_MM(int x, int y, int dx, int dy, int graphic,
return;
}
return;
}
- if (dx || dy) // Verschiebung der Grafik?
+ if (dx || dy)
// Verschiebung der Grafik?
{
{
- if (x < BX1) // Element kommt von links ins Bild
+ if (x < BX1)
// Element kommt von links ins Bild
{
x = BX1;
width = dx;
cx = TILEX - dx;
dx = 0;
}
{
x = BX1;
width = dx;
cx = TILEX - dx;
dx = 0;
}
- else if (x > BX2) // Element kommt von rechts ins Bild
+ else if (x > BX2)
// Element kommt von rechts ins Bild
{
x = BX2;
width = -dx;
dx = TILEX + dx;
}
{
x = BX2;
width = -dx;
dx = TILEX + dx;
}
- else if (x
==BX1 && dx < 0)
// Element verläßt links das Bild
+ else if (x
== BX1 && dx < 0)
// Element verläßt links das Bild
{
width += dx;
cx = -dx;
dx = 0;
}
{
width += dx;
cx = -dx;
dx = 0;
}
- else if (x
==BX2 && dx > 0)
// Element verläßt rechts das Bild
+ else if (x
== BX2 && dx > 0)
// Element verläßt rechts das Bild
width -= dx;
width -= dx;
- else if (dx) // allg. Bewegung in x-Richtung
+ else if (dx)
// allg. Bewegung in x-Richtung
MarkTileDirty(x + SIGN(dx), y);
MarkTileDirty(x + SIGN(dx), y);
- if (y < BY1) // Element kommt von oben ins Bild
+ if (y < BY1)
// Element kommt von oben ins Bild
{
{
- if (cut_mode
==CUT_BELOW)
// Element oberhalb des Bildes
+ if (cut_mode
== CUT_BELOW)
// Element oberhalb des Bildes
return;
y = BY1;
return;
y = BY1;
@@
-201,13
+201,13
@@
void DrawGraphicShifted_MM(int x, int y, int dx, int dy, int graphic,
cy = TILEY - dy;
dy = 0;
}
cy = TILEY - dy;
dy = 0;
}
- else if (y > BY2) // Element kommt von unten ins Bild
+ else if (y > BY2)
// Element kommt von unten ins Bild
{
y = BY2;
height = -dy;
dy = TILEY + dy;
}
{
y = BY2;
height = -dy;
dy = TILEY + dy;
}
- else if (y
==BY1 && dy < 0)
// Element verläßt oben das Bild
+ else if (y
== BY1 && dy < 0)
// Element verläßt oben das Bild
{
height += dy;
cy = -dy;
{
height += dy;
cy = -dy;
@@
-215,19
+215,19
@@
void DrawGraphicShifted_MM(int x, int y, int dx, int dy, int graphic,
}
else if (dy > 0 && cut_mode == CUT_ABOVE)
{
}
else if (dy > 0 && cut_mode == CUT_ABOVE)
{
- if (y == BY2) // Element unterhalb des Bildes
+ if (y == BY2)
// Element unterhalb des Bildes
return;
height = dy;
cy = TILEY - dy;
dy = TILEY;
MarkTileDirty(x, y + 1);
return;
height = dy;
cy = TILEY - dy;
dy = TILEY;
MarkTileDirty(x, y + 1);
- } // Element verläßt unten das Bild
+ }
// Element verläßt unten das Bild
else if (dy > 0 && (y == BY2 || cut_mode == CUT_BELOW))
{
height -= dy;
}
else if (dy > 0 && (y == BY2 || cut_mode == CUT_BELOW))
{
height -= dy;
}
- else if (dy) // allg. Bewegung in y-Richtung
+ else if (dy)
// allg. Bewegung in y-Richtung
{
MarkTileDirty(x, y + SIGN(dy));
}
{
MarkTileDirty(x, y + SIGN(dy));
}
@@
-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;
{
if (program.headless)
return;
@@
-1072,7
+1073,12
@@
void DrawTileCursor_MM(int draw_target, boolean tile_cursor_active)
int width = tilesize;
int height = tilesize;
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 ||
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;
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))
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_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;
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;
}
(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;
else
{
int num_elements_flip = num_elements;