projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rnd-20100224-1-src
[rocksndiamonds.git]
/
src
/
game_sp
/
Explosions.c
diff --git
a/src/game_sp/Explosions.c
b/src/game_sp/Explosions.c
index 9398d84779d2c8c702f05a54eb984c0c4a10522e..8983a3781b131c0889435dba76e7eafe57babb27 100644
(file)
--- a/
src/game_sp/Explosions.c
+++ b/
src/game_sp/Explosions.c
@@
-42,12
+42,28
@@
int subAnimateExplosion(int si)
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
X = GetStretchX(si);
Y = GetStretchY(si);
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
X = GetStretchX(si);
Y = GetStretchY(si);
+#if 1
+
+#if 1
+ GfxGraphic[GetX(si)][GetY(si)] = aniDefaultExplosion;
+#else
+ StretchedSprites.BltImg(X, Y, aniDefaultExplosion, bl);
+#endif
+
+#else
StretchedSprites.BltEx(X, Y, aniFramesExplosion[bl]);
StretchedSprites.BltEx(X, Y, aniFramesExplosion[bl]);
+#endif
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if (bl == 8)
{
PlayField16[si] = 0;
ExplosionShake = 0; // nothing explodes
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if (bl == 8)
{
PlayField16[si] = 0;
ExplosionShake = 0; // nothing explodes
+
+#if 1
+ GfxGraphic[GetX(si)][GetY(si)] = aniSpace;
+#else
+ StretchedSprites.BltImg(X, Y, aniSpace, 0);
+#endif
} // loc_ret_g_28CF:
return subAnimateExplosion;
} // loc_ret_g_28CF:
return subAnimateExplosion;
@@
-58,6
+74,15
@@
loc_g_28D0: // explosion produces infotron
{
PlayField16[si] = fiInfotron;
MovLowByte(&ExplosionShake, 0); // nothing explodes
{
PlayField16[si] = fiInfotron;
MovLowByte(&ExplosionShake, 0); // nothing explodes
+
+#if 1
+ GfxGraphic[GetX(si)][GetY(si)] = aniInfotron;
+#else
+ X = GetStretchX(si);
+ Y = GetStretchY(si);
+ StretchedSprites.BltImg(X, Y, aniInfotron, 0);
+#endif
+
return subAnimateExplosion;
} // loc_g_28E3:
return subAnimateExplosion;
} // loc_g_28E3:
@@
-65,7
+90,17
@@
loc_g_28D0: // explosion produces infotron
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
X = GetStretchX(si);
Y = GetStretchY(si);
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
X = GetStretchX(si);
Y = GetStretchY(si);
+#if 1
+
+#if 1
+ GfxGraphic[GetX(si)][GetY(si)] = aniElectronExplosion;
+#else
+ StretchedSprites.BltImg(X, Y, aniElectronExplosion, bl - 0x80);
+#endif
+
+#else
StretchedSprites.BltEx(X, Y, aniExplosionInfo + bl - 0x80);
StretchedSprites.BltEx(X, Y, aniExplosionInfo + bl - 0x80);
+#endif
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
return subAnimateExplosion;
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
return subAnimateExplosion;
@@
-116,6
+151,8
@@
void ExplodeFieldSP(int si)
LetExplodeFieldSP(si + FieldWidth, cx, dl);
LetExplodeFieldSP(si + FieldWidth + 1, cx, dl);
LetExplodeFieldSP(si + FieldWidth, cx, dl);
LetExplodeFieldSP(si + FieldWidth + 1, cx, dl);
+ GfxGraphic[GetX(si)][GetY(si)] = -1; // restart for chain-explosions
+
// loc_g_2C3B:
subSoundFXExplosion();
} // ExplodeFieldSP
// loc_g_2C3B:
subSoundFXExplosion();
} // ExplodeFieldSP
@@
-175,7
+212,7
@@
static void LetExplodeFieldSP(int tsi, int cx, int dh)
break;
}
break;
}
- GfxGraphic[GetX(tsi)][GetY(tsi)] = -1;
+ GfxGraphic[GetX(tsi)][GetY(tsi)] = -1;
// restart for chain-explosions
}
static int subExplodeZonk(int tsi, int cx)
}
static int subExplodeZonk(int tsi, int cx)
@@
-287,7
+324,17
@@
int subClearFieldDueToExplosion(int si)
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
X = GetStretchX(si);
Y = GetStretchY(si);
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
X = GetStretchX(si);
Y = GetStretchY(si);
+#if 1
+
+#if 1
+ GfxGraphic[GetX(si)][GetY(si)] = aniSpace;
+#else
+ StretchedSprites.BltImg(X, Y, aniSpace, 0);
+#endif
+
+#else
StretchedSprites.BltEx(X, Y, fiSpace);
StretchedSprites.BltEx(X, Y, fiSpace);
+#endif
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
return subClearFieldDueToExplosion;
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
return subClearFieldDueToExplosion;
@@
-310,7
+357,18
@@
int subRedDiskReleaseExplosion()
// +++++++++++++++++++++++++++++++++++++++++
X = GetStretchX(si);
Y = GetStretchY(si);
// +++++++++++++++++++++++++++++++++++++++++
X = GetStretchX(si);
Y = GetStretchY(si);
+#if 1
+
+#if 0
+ // !!! causes flicker -- fix in Murphy.c !!!
+ GfxGraphic[GetX(si)][GetY(si)] = aniRedDisk;
+#else
+ StretchedSprites.BltImg(X, Y, aniRedDisk, 0);
+#endif
+
+#else
StretchedSprites.BltEx(X, Y, fiRedDisk);
StretchedSprites.BltEx(X, Y, fiRedDisk);
+#endif
// +++++++++++++++++++++++++++++++++++++++++
RedDiskReleasePhase = RedDiskReleasePhase + 1;
if (RedDiskReleasePhase >= 0x28)
// +++++++++++++++++++++++++++++++++++++++++
RedDiskReleasePhase = RedDiskReleasePhase + 1;
if (RedDiskReleasePhase >= 0x28)