projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fixed player animation when snapping for BD engine
[rocksndiamonds.git]
/
src
/
game_sp
/
Explosions.c
diff --git
a/src/game_sp/Explosions.c
b/src/game_sp/Explosions.c
index ea9368c56b2830ca2d1da260756dd0b8f9584921..574991b2b7c70bd17515e9ac63325248f62bf2ad 100644
(file)
--- a/
src/game_sp/Explosions.c
+++ b/
src/game_sp/Explosions.c
@@
-17,7
+17,7
@@
static void subExplodeZonk(int tsi, int cx);
void subAnimateExplosion(int si)
{
void subAnimateExplosion(int si)
{
- int ax, bl
, X, Y
;
+ int ax, bl;
if (LowByte(PlayField16[si]) != fiExplosion)
return;
if (LowByte(PlayField16[si]) != fiExplosion)
return;
@@
-35,15
+35,14
@@
void subAnimateExplosion(int si)
MovHighByte(&PlayField16[si], bl);
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MovHighByte(&PlayField16[si], bl);
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- X = GetStretchX(si);
- Y = GetStretchY(si);
GfxGraphic[GetX(si)][GetY(si)] = aniDefaultExplosion;
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if (bl == 8)
{
PlayField16[si] = 0;
GfxGraphic[GetX(si)][GetY(si)] = aniDefaultExplosion;
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if (bl == 8)
{
PlayField16[si] = 0;
- ExplosionShake = 0; // nothing explodes
+ ExplosionShake = 0; // nothing explodes
+ // ExplosionShakeMurphy = 0; // nothing explodes
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GfxGraphic[GetX(si)][GetY(si)] = aniSpace;
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GfxGraphic[GetX(si)][GetY(si)] = aniSpace;
@@
-57,7
+56,8
@@
loc_g_28D0: // explosion produces infotron
if (bl == 0x89)
{
PlayField16[si] = fiInfotron;
if (bl == 0x89)
{
PlayField16[si] = fiInfotron;
- MovLowByte(&ExplosionShake, 0); // nothing explodes
+ MovLowByte(&ExplosionShake, 0); // nothing explodes
+ // MovLowByte(&ExplosionShakeMurphy, 0); // nothing explodes
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GfxGraphic[GetX(si)][GetY(si)] = aniInfotron;
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GfxGraphic[GetX(si)][GetY(si)] = aniInfotron;
@@
-69,8
+69,6
@@
loc_g_28D0: // explosion produces infotron
MovHighByte(&PlayField16[si], bl);
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MovHighByte(&PlayField16[si], bl);
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- X = GetStretchX(si);
- Y = GetStretchY(si);
GfxGraphic[GetX(si)][GetY(si)] = aniElectronExplosion;
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
}
GfxGraphic[GetX(si)][GetY(si)] = aniElectronExplosion;
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
}
@@
-88,14
+86,13
@@
void ExplodeFieldSP(int si)
if (ax == fiHardWare)
return;
if (ax == fiHardWare)
return;
- ExplosionShake = 1; // something explodes
+ ExplosionShake = 1; // something explodes
+
if (ax == fiMurphy)
{
if (ax == fiMurphy)
{
-#if 1
- printf("::: Explosions.c: ExplodeFieldSP(): killing murphy\n");
-#endif
-
KillMurphyFlag = 1;
KillMurphyFlag = 1;
+
+ ExplosionShakeMurphy = 30; // Murphy explodes
}
if (ax == fiElectron)
}
if (ax == fiElectron)
@@
-129,7
+126,7
@@
static void LetExplodeFieldSP(int tsi, int cx, int dh)
{
int al;
{
int al;
- if (tsi <
(-FieldWidth)
)
+ if (tsi <
-FieldWidth
)
return;
al = LowByte(PlayField16[tsi]);
return;
al = LowByte(PlayField16[tsi]);
@@
-161,11
+158,6
@@
static void LetExplodeFieldSP(int tsi, int cx, int dh)
break;
case fiMurphy:
break;
case fiMurphy:
-#if 1
- printf("::: Explosions.c: LetExplodeFieldSP(): killing murphy [%d]\n",
- tsi);
-#endif
-
KillMurphyFlag = 1;
PlayField8[tsi] = dh;
PlayField16[tsi] = cx;
KillMurphyFlag = 1;
PlayField8[tsi] = dh;
PlayField16[tsi] = cx;
@@
-269,20
+261,16
@@
static void subExplodeInfotron(int tsi, int cx)
void subClearFieldDueToExplosion(int si)
{
void subClearFieldDueToExplosion(int si)
{
- int X, Y;
-
if (LowByte(PlayField16[si]) == fiExplosion)
return;
PlayField16[si] = 0;
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if (LowByte(PlayField16[si]) == fiExplosion)
return;
PlayField16[si] = 0;
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- X = GetStretchX(si);
- Y = GetStretchY(si);
GfxGraphic[GetX(si)][GetY(si)] = aniSpace;
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
}
GfxGraphic[GetX(si)][GetY(si)] = aniSpace;
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
}
-void subRedDiskReleaseExplosion()
+void subRedDiskReleaseExplosion(
void
)
{
int al, X, Y, si;
{
int al, X, Y, si;
@@
-297,12
+285,7
@@
void subRedDiskReleaseExplosion()
// +++++++++++++++++++++++++++++++++++++++++
X = GetStretchX(si);
Y = GetStretchY(si);
// +++++++++++++++++++++++++++++++++++++++++
X = GetStretchX(si);
Y = GetStretchY(si);
-#if 0
- // !!! causes flicker -- fix in Murphy.c !!!
- GfxGraphic[GetX(si)][GetY(si)] = aniRedDisk;
-#else
- StretchedSprites.BltImg(X, Y, aniRedDisk, 0);
-#endif
+ DDSpriteBuffer_BltImg(X, Y, aniRedDisk, 0);
// +++++++++++++++++++++++++++++++++++++++++
RedDiskReleasePhase = RedDiskReleasePhase + 1;
// +++++++++++++++++++++++++++++++++++++++++
RedDiskReleasePhase = RedDiskReleasePhase + 1;
@@
-314,7
+297,7
@@
void subRedDiskReleaseExplosion()
}
}
}
}
-void subFollowUpExplosions()
+void subFollowUpExplosions(
void
)
{
int ax, si;
{
int ax, si;