projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rnd-20020330-1-src
[rocksndiamonds.git]
/
src
/
game.c
diff --git
a/src/game.c
b/src/game.c
index 423fc4c85fb5785071da7f2be6b80fe97afedeaf..c0d43b8bf432636e9960977340fedff96188d52f 100644
(file)
--- a/
src/game.c
+++ b/
src/game.c
@@
-19,12
+19,14
@@
#include "init.h"
#include "files.h"
#include "tape.h"
#include "init.h"
#include "files.h"
#include "tape.h"
-#include "joystick.h"
#include "network.h"
/* this switch controls how rocks move horizontally */
#define OLD_GAME_BEHAVIOUR FALSE
#include "network.h"
/* this switch controls how rocks move horizontally */
#define OLD_GAME_BEHAVIOUR FALSE
+/* EXPERIMENTAL STUFF */
+#define USE_NEW_AMOEBA_CODE FALSE
+
/* for DigField() */
#define DF_NO_PUSH 0
#define DF_DIG 1
/* for DigField() */
#define DF_NO_PUSH 0
#define DF_DIG 1
@@
-171,10
+173,10
@@
void GetPlayerConfig()
setup.sound = FALSE;
if (!audio.loops_available)
setup.sound = FALSE;
if (!audio.loops_available)
- {
setup.sound_loops = FALSE;
setup.sound_loops = FALSE;
+
+ if (!audio.music_available)
setup.sound_music = FALSE;
setup.sound_music = FALSE;
- }
if (!video.fullscreen_available)
setup.fullscreen = FALSE;
if (!video.fullscreen_available)
setup.fullscreen = FALSE;
@@
-268,7
+270,7
@@
static void InitField(int x, int y, boolean init_game)
StorePlayer[x][y] = Feld[x][y];
StorePlayer[x][y] = Feld[x][y];
- if (options.
verbose
)
+ if (options.
debug
)
{
printf("Player %d activated.\n", player->element_nr);
printf("[Local player is %d and currently %s.]\n",
{
printf("Player %d activated.\n", player->element_nr);
printf("[Local player is %d and currently %s.]\n",
@@
-437,6
+439,14
@@
void InitGame()
boolean emulate_sb = TRUE; /* unless non-SOKOBAN elements found */
boolean emulate_sp = TRUE; /* unless non-SUPAPLEX elements found */
boolean emulate_sb = TRUE; /* unless non-SOKOBAN elements found */
boolean emulate_sp = TRUE; /* unless non-SUPAPLEX elements found */
+#if DEBUG
+#if USE_NEW_AMOEBA_CODE
+ printf("Using new amoeba code.\n");
+#else
+ printf("Using old amoeba code.\n");
+#endif
+#endif
+
/* don't play tapes over network */
network_playing = (options.network && !tape.playing);
/* don't play tapes over network */
network_playing = (options.network && !tape.playing);
@@
-659,7
+669,7
@@
void InitGame()
tape.player_participates[i] = TRUE;
}
tape.player_participates[i] = TRUE;
}
- if (options.
verbose
)
+ if (options.
debug
)
{
for (i=0; i<MAX_PLAYERS; i++)
{
{
for (i=0; i<MAX_PLAYERS; i++)
{
@@
-682,7
+692,7
@@
void InitGame()
/* dynamically adjust element properties according to game engine version */
{
/* dynamically adjust element properties according to game engine version */
{
- static int ep_
slippery
[] =
+ static int ep_
em_slippery_wall
[] =
{
EL_BETON,
EL_MAUERWERK,
{
EL_BETON,
EL_MAUERWERK,
@@
-691,14
+701,30
@@
void InitGame()
EL_MAUER_Y,
EL_MAUER_XY
};
EL_MAUER_Y,
EL_MAUER_XY
};
- static int ep_slippery_num = sizeof(ep_slippery)/sizeof(int);
+#if 1
+ static int ep_em_slippery_wall_num = SIZEOF_ARRAY_INT(ep_em_slippery_wall);
+#else
+ static int ep_em_slippery_wall_num =
+ sizeof(ep_em_slippery_wall) / sizeof(int);
+#endif
- for (i=0; i<ep_slippery_num; i++)
+ /*
+ printf("level %d: game.version == %06d\n", level_nr, level.game_version);
+ printf(" file_version == %06d\n", level.file_version);
+ */
+
+ for (i=0; i<ep_em_slippery_wall_num; i++)
{
{
+#if 1
+ if (level.em_slippery_gems) /* special EM style gems behaviour */
+#else
if (game.version >= GAME_VERSION_2_0)
if (game.version >= GAME_VERSION_2_0)
- Elementeigenschaften2[ep_slippery[i]] |= EP_BIT_SLIPPERY_GEMS;
+#endif
+ Elementeigenschaften2[ep_em_slippery_wall[i]] |=
+ EP_BIT_EM_SLIPPERY_WALL;
else
else
- Elementeigenschaften2[ep_slippery[i]] &= ~EP_BIT_SLIPPERY_GEMS;
+ Elementeigenschaften2[ep_em_slippery_wall[i]] &=
+ ~EP_BIT_EM_SLIPPERY_WALL;
}
}
}
}
@@
-793,7
+819,7
@@
void InitGame()
KeyboardAutoRepeatOff();
KeyboardAutoRepeatOff();
- if (options.
verbose
)
+ if (options.
debug
)
{
for (i=0; i<4; i++)
printf("Player %d %sactive.\n",
{
for (i=0; i<4; i++)
printf("Player %d %sactive.\n",
@@
-2615,7
+2641,7
@@
void StartMoving(int x, int y)
#endif
#else
else if ((IS_SLIPPERY(Feld[x][y+1]) ||
#endif
#else
else if ((IS_SLIPPERY(Feld[x][y+1]) ||
- (IS_
SLIPPERY_GEMS
(Feld[x][y+1]) && IS_GEM(element))) &&
+ (IS_
EM_SLIPPERY_WALL
(Feld[x][y+1]) && IS_GEM(element))) &&
!IS_FALLING(x, y+1) && !JustStopped[x][y+1] &&
element != EL_DX_SUPABOMB && element != EL_SP_DISK_ORANGE)
#endif
!IS_FALLING(x, y+1) && !JustStopped[x][y+1] &&
element != EL_DX_SUPABOMB && element != EL_SP_DISK_ORANGE)
#endif
@@
-4503,10
+4529,12
@@
void GameActions()
AmoebeWaechst(x, y);
else if (element == EL_DEAMOEBING)
AmoebeSchrumpft(x, y);
AmoebeWaechst(x, y);
else if (element == EL_DEAMOEBING)
AmoebeSchrumpft(x, y);
-#if 0
+
+#if !USE_NEW_AMOEBA_CODE
else if (IS_AMOEBALIVE(element))
AmoebeAbleger(x, y);
#endif
else if (IS_AMOEBALIVE(element))
AmoebeAbleger(x, y);
#endif
+
else if (element == EL_LIFE || element == EL_LIFE_ASYNC)
Life(x, y);
else if (element == EL_ABLENK_EIN)
else if (element == EL_LIFE || element == EL_LIFE_ASYNC)
Life(x, y);
else if (element == EL_ABLENK_EIN)
@@
-4590,8
+4618,8
@@
void GameActions()
}
}
}
}
-#if
1
- /* new experimental amoeba growth stuff*/
+#if
USE_NEW_AMOEBA_CODE
+ /* new experimental amoeba growth stuff
*/
#if 1
if (!(FrameCounter % 8))
#endif
#if 1
if (!(FrameCounter % 8))
#endif
@@
-6487,7
+6515,7
@@
static void HandleGameButtons(struct GadgetInfo *gi)
setup.sound_music = FALSE;
FadeMusic();
}
setup.sound_music = FALSE;
FadeMusic();
}
- else if (audio.
loops
_available)
+ else if (audio.
music
_available)
{
setup.sound = setup.sound_music = TRUE;
if (num_bg_loops)
{
setup.sound = setup.sound_music = TRUE;
if (num_bg_loops)