projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rocksndiamonds-1.3.0
[rocksndiamonds.git]
/
src
/
game.c
diff --git
a/src/game.c
b/src/game.c
index 73cab1164f2c8c48b934128ce355bf0f85784376..fada15db70f1733e76a78b67ac8cfdfea807e05f 100644
(file)
--- a/
src/game.c
+++ b/
src/game.c
@@
-405,16
+405,8
@@
void InitGame()
ScreenMovPos = 0;
ScreenGfxPos = 0;
ScreenMovPos = 0;
ScreenGfxPos = 0;
- if (level.high_speed)
- {
- MoveSpeed = 4;
- ScrollStepSize = TILEX/4;
- }
- else
- {
- MoveSpeed = 8;
- ScrollStepSize = TILEX/8;
- }
+ MoveSpeed = (level.double_speed ? 4 : 8);
+ ScrollStepSize = TILEX / MoveSpeed;
AllPlayersGone = FALSE;
SiebAktiv = FALSE;
AllPlayersGone = FALSE;
SiebAktiv = FALSE;
@@
-568,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;
@@
-625,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,
@@
-1083,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 */
{
@@
-1197,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];
@@
-4887,18
+4892,18
@@
static struct
void CreateGameButtons()
{
void CreateGameButtons()
{
- Pixmap gd_pixmap = pix[PIX_DOOR];
- struct GadgetInfo *gi;
- unsigned long event_mask;
int i;
for (i=0; i<NUM_GAME_BUTTONS; i++)
{
int i;
for (i=0; i<NUM_GAME_BUTTONS; i++)
{
- int id = i;
- int gd_xoffset, gd_yoffset;
- int gd_x1, gd_x2, gd_y1, gd_y2;
+ Pixmap gd_pixmap = pix[PIX_DOOR];
+ struct GadgetInfo *gi;
int button_type;
boolean checked;
int button_type;
boolean checked;
+ unsigned long event_mask;
+ int gd_xoffset, gd_yoffset;
+ int gd_x1, gd_x2, gd_y1, gd_y2;
+ int id = i;
gd_xoffset = gamebutton_info[i].x;
gd_yoffset = gamebutton_info[i].y;
gd_xoffset = gamebutton_info[i].x;
gd_yoffset = gamebutton_info[i].y;