projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rnd-20040114-1-src
[rocksndiamonds.git]
/
src
/
tools.c
diff --git
a/src/tools.c
b/src/tools.c
index aa399caaa197fef426e5e570fb1bf2e298e227c1..a7a5dba1212be6b76dd33961f63693123b5857d0 100644
(file)
--- a/
src/tools.c
+++ b/
src/tools.c
@@
-1192,6
+1192,10
@@
void DrawLevelFieldThruMask(int x, int y)
DrawLevelElementExt(x, y, 0, 0, Feld[x][y], NO_CUTTING, USE_MASKING);
}
DrawLevelElementExt(x, y, 0, 0, Feld[x][y], NO_CUTTING, USE_MASKING);
}
+#define TILE_GFX_ELEMENT(x, y) \
+ (GfxElement[x][y] != EL_UNDEFINED && Feld[x][y] != EL_EXPLOSION ? \
+ GfxElement[x][y] : Feld[x][y])
+
static void DrawLevelFieldCrumbledSandExt(int x, int y, int graphic, int frame)
{
Bitmap *src_bitmap;
static void DrawLevelFieldCrumbledSandExt(int x, int y, int graphic, int frame)
{
Bitmap *src_bitmap;
@@
-1221,8
+1225,7
@@
static void DrawLevelFieldCrumbledSandExt(int x, int y, int graphic, int frame)
if (!IN_LEV_FIELD(x, y))
return;
if (!IN_LEV_FIELD(x, y))
return;
- element = (GfxElement[x][y] != EL_UNDEFINED && Feld[x][y] != EL_EXPLOSION ?
- GfxElement[x][y] : Feld[x][y]);
+ element = TILE_GFX_ELEMENT(x, y);
/* crumble field itself */
if (GFX_CRUMBLED(element) && !IS_MOVING(x, y))
/* crumble field itself */
if (GFX_CRUMBLED(element) && !IS_MOVING(x, y))
@@
-1237,7
+1240,12
@@
static void DrawLevelFieldCrumbledSandExt(int x, int y, int graphic, int frame)
int xx = x + xy[i][0];
int yy = y + xy[i][1];
int xx = x + xy[i][0];
int yy = y + xy[i][1];
+#if 1
+ element = (IN_LEV_FIELD(xx, yy) ? TILE_GFX_ELEMENT(xx, yy) :
+ BorderElement);
+#else
element = (IN_LEV_FIELD(xx, yy) ? Feld[xx][yy] : BorderElement);
element = (IN_LEV_FIELD(xx, yy) ? Feld[xx][yy] : BorderElement);
+#endif
/* check if neighbour field is of same type */
if (GFX_CRUMBLED(element) && !IS_MOVING(xx, yy))
/* check if neighbour field is of same type */
if (GFX_CRUMBLED(element) && !IS_MOVING(xx, yy))
@@
-1284,11
+1292,23
@@
static void DrawLevelFieldCrumbledSandExt(int x, int y, int graphic, int frame)
int sxx = sx + xy[i][0];
int syy = sy + xy[i][1];
int sxx = sx + xy[i][0];
int syy = sy + xy[i][1];
+#if 1
+ if (!IN_LEV_FIELD(xx, yy) ||
+ !IN_SCR_FIELD(sxx, syy) ||
+ IS_MOVING(xx, yy))
+ continue;
+
+ element = TILE_GFX_ELEMENT(xx, yy);
+
+ if (!GFX_CRUMBLED(element))
+ continue;
+#else
if (!IN_LEV_FIELD(xx, yy) ||
!IN_SCR_FIELD(sxx, syy) ||
!GFX_CRUMBLED(Feld[xx][yy]) ||
IS_MOVING(xx, yy))
continue;
if (!IN_LEV_FIELD(xx, yy) ||
!IN_SCR_FIELD(sxx, syy) ||
!GFX_CRUMBLED(Feld[xx][yy]) ||
IS_MOVING(xx, yy))
continue;
+#endif
#if 1
graphic = el_act2crm(Feld[xx][yy], ACTION_DEFAULT);
#if 1
graphic = el_act2crm(Feld[xx][yy], ACTION_DEFAULT);