projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rnd-19990204-1
[rocksndiamonds.git]
/
src
/
game.c
diff --git
a/src/game.c
b/src/game.c
index 7f575ebb983b2c7eddbbfc1621da26353819becc..fada15db70f1733e76a78b67ac8cfdfea807e05f 100644
(file)
--- a/
src/game.c
+++ b/
src/game.c
@@
-560,10
+560,10
@@
void InitGame()
SBY_Lower = lev_fieldy - SCR_FIELDY + 1;
}
SBY_Lower = lev_fieldy - SCR_FIELDY + 1;
}
- if (lev_fieldx
<
SCR_FIELDX)
+ if (lev_fieldx
+ (SBX_Left == -1 ? 2 : 0) <=
SCR_FIELDX)
SBX_Left = SBX_Right = -1 * (SCR_FIELDX - lev_fieldx) / 2;
SBX_Left = SBX_Right = -1 * (SCR_FIELDX - lev_fieldx) / 2;
- if (lev_fieldy
<
SCR_FIELDY)
+ if (lev_fieldy
+ (SBY_Upper == -1 ? 2 : 0) <=
SCR_FIELDY)
SBY_Upper = SBY_Lower = -1 * (SCR_FIELDY - lev_fieldy) / 2;
scroll_x = SBX_Left;
SBY_Upper = SBY_Lower = -1 * (SCR_FIELDY - lev_fieldy) / 2;
scroll_x = SBX_Left;
@@
-617,6
+617,7
@@
void InitGame()
game_gadget[SOUND_CTRL_ID_LOOPS]->checked = setup.sound_loops;
game_gadget[SOUND_CTRL_ID_SIMPLE]->checked = setup.sound_simple;
MapGameButtons();
game_gadget[SOUND_CTRL_ID_LOOPS]->checked = setup.sound_loops;
game_gadget[SOUND_CTRL_ID_SIMPLE]->checked = setup.sound_simple;
MapGameButtons();
+ MapTapeButtons();
#endif
XCopyArea(display, drawto, pix[PIX_DB_DOOR], gc,
#endif
XCopyArea(display, drawto, pix[PIX_DB_DOOR], gc,
@@
-1075,6
+1076,7
@@
void Explode(int ex, int ey, int phase, int mode)
int num_phase = 9, delay = 2;
int last_phase = num_phase * delay;
int half_phase = (num_phase / 2) * delay;
int num_phase = 9, delay = 2;
int last_phase = num_phase * delay;
int half_phase = (num_phase / 2) * delay;
+ int first_phase_after_start = EX_PHASE_START + 1;
if (phase == EX_PHASE_START) /* initialize 'Store[][]' field */
{
if (phase == EX_PHASE_START) /* initialize 'Store[][]' field */
{
@@
-1189,9
+1191,20
@@
void Explode(int ex, int ey, int phase, int mode)
x = ex;
y = ey;
x = ex;
y = ey;
- Frame[x][y] = (phase
<last_phase ? phase+
1 : 0);
+ Frame[x][y] = (phase
< last_phase ? phase +
1 : 0);
- if (phase == half_phase)
+ if (phase == first_phase_after_start)
+ {
+ int element = Store2[x][y];
+
+ if (element == EL_BLACK_ORB)
+ {
+ Feld[x][y] = Store2[x][y];
+ Store2[x][y] = 0;
+ Bang(x, y);
+ }
+ }
+ else if (phase == half_phase)
{
int element = Store2[x][y];
{
int element = Store2[x][y];