projects
/
rocksndiamonds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rnd-19991024-1-src
[rocksndiamonds.git]
/
src
/
init.c
diff --git
a/src/init.c
b/src/init.c
index a9f061770b0532013b5f64a822ebb52a0711f780..78a587f575a78f334642d1b0069cf6a8d21936d2 100644
(file)
--- a/
src/init.c
+++ b/
src/init.c
@@
-55,6
+55,10
@@
static void InitElementProperties(void);
void OpenAll(int argc, char *argv[])
{
void OpenAll(int argc, char *argv[])
{
+#ifdef MSDOS
+ initErrorFile();
+#endif
+
if (options.serveronly)
{
NetworkServer(options.server_port, options.serveronly);
if (options.serveronly)
{
NetworkServer(options.server_port, options.serveronly);
@@
-81,8
+85,8
@@
void OpenAll(int argc, char *argv[])
InitGfx();
InitElementProperties(); /* initializes IS_CHAR() for el2gfx() */
InitGfx();
InitElementProperties(); /* initializes IS_CHAR() for el2gfx() */
- InitGadgets();
InitLevelAndPlayerInfo();
InitLevelAndPlayerInfo();
+ InitGadgets(); /* needs to know number of level series */
DrawMainMenu();
DrawMainMenu();
@@
-107,7
+111,7
@@
void InitLevelAndPlayerInfo()
LoadLevelInfo(); /* global level info */
LoadSetup(); /* global setup info */
LoadLevelSetup_LastSeries(); /* last played series info */
LoadLevelInfo(); /* global level info */
LoadSetup(); /* global setup info */
LoadLevelSetup_LastSeries(); /* last played series info */
- LoadLevelSetup_SeriesInfo(
leveldir_nr);
/* last played level info */
+ LoadLevelSetup_SeriesInfo(
);
/* last played level info */
}
void InitNetworkServer()
}
void InitNetworkServer()
@@
-472,8
+476,10
@@
void InitGfx()
{ "Toons", TRUE },
{ "SP", TRUE },
{ "DC", TRUE },
{ "Toons", TRUE },
{ "SP", TRUE },
{ "DC", TRUE },
+ { "More", TRUE },
{ "Font", FALSE },
{ "Font", FALSE },
- { "Font2", FALSE }
+ { "Font2", FALSE },
+ { "Font3", FALSE }
};
#else
static struct PictureFileInfo pic[NUM_PICTURES] =
};
#else
static struct PictureFileInfo pic[NUM_PICTURES] =
@@
-484,8
+490,10
@@
void InitGfx()
{ "RocksToons", TRUE },
{ "RocksSP", TRUE },
{ "RocksDC", TRUE },
{ "RocksToons", TRUE },
{ "RocksSP", TRUE },
{ "RocksDC", TRUE },
+ { "RocksMore", TRUE },
{ "RocksFont", FALSE },
{ "RocksFont", FALSE },
- { "RocksFont2", FALSE }
+ { "RocksFont2", FALSE },
+ { "RocksFont3", FALSE }
};
#endif
};
#endif
@@
-807,6
+815,7
@@
void InitGadgets()
CreateGameButtons();
CreateTapeButtons();
CreateToolButtons();
CreateGameButtons();
CreateTapeButtons();
CreateToolButtons();
+ CreateScreenGadgets();
}
void InitElementProperties()
}
void InitElementProperties()
@@
-866,7
+875,18
@@
void InitElementProperties()
EL_SWITCHGATE_OPEN,
EL_SWITCHGATE_CLOSED,
EL_TIMEGATE_OPEN,
EL_SWITCHGATE_OPEN,
EL_SWITCHGATE_CLOSED,
EL_TIMEGATE_OPEN,
- EL_TIMEGATE_CLOSED
+ EL_TIMEGATE_CLOSED,
+ EL_TUBE_CROSS,
+ EL_TUBE_VERTICAL,
+ EL_TUBE_HORIZONTAL,
+ EL_TUBE_VERT_LEFT,
+ EL_TUBE_VERT_RIGHT,
+ EL_TUBE_HORIZ_UP,
+ EL_TUBE_HORIZ_DOWN,
+ EL_TUBE_LEFT_UP,
+ EL_TUBE_LEFT_DOWN,
+ EL_TUBE_RIGHT_UP,
+ EL_TUBE_RIGHT_DOWN
};
static int ep_pforte_num = sizeof(ep_pforte)/sizeof(int);
};
static int ep_pforte_num = sizeof(ep_pforte)/sizeof(int);
@@
-878,6
+898,7
@@
void InitElementProperties()
EL_MAUER_X,
EL_MAUER_Y,
EL_MAUER_XY,
EL_MAUER_X,
EL_MAUER_Y,
EL_MAUER_XY,
+ EL_BD_WALL,
EL_FELSBODEN,
EL_AUSGANG_ZU,
EL_AUSGANG_ACT,
EL_FELSBODEN,
EL_AUSGANG_ZU,
EL_AUSGANG_ACT,
@@
-889,14
+910,14
@@
void InitElementProperties()
EL_AMOEBE_BD,
EL_MORAST_VOLL,
EL_MORAST_LEER,
EL_AMOEBE_BD,
EL_MORAST_VOLL,
EL_MORAST_LEER,
- EL_
SIEB_INAKTIV
,
- EL_
SIEB_LEER
,
- EL_
SIEB_VO
LL,
- EL_
SIEB_TOT
,
- EL_
SIEB2_INAKTIV
,
- EL_
SIEB2_LEER
,
- EL_
SIEB2_VO
LL,
- EL_
SIEB2_TOT
,
+ EL_
MAGIC_WALL_OFF
,
+ EL_
MAGIC_WALL_EMPTY
,
+ EL_
MAGIC_WALL_FU
LL,
+ EL_
MAGIC_WALL_DEAD
,
+ EL_
MAGIC_WALL_BD_OFF
,
+ EL_
MAGIC_WALL_BD_EMPTY
,
+ EL_
MAGIC_WALL_BD_FU
LL,
+ EL_
MAGIC_WALL_BD_DEAD
,
EL_LIFE,
EL_LIFE_ASYNC,
EL_BADEWANNE1,
EL_LIFE,
EL_LIFE_ASYNC,
EL_BADEWANNE1,
@@
-965,7
+986,21
@@
void InitElementProperties()
EL_EMC_WALL_5,
EL_EMC_WALL_6,
EL_EMC_WALL_7,
EL_EMC_WALL_5,
EL_EMC_WALL_6,
EL_EMC_WALL_7,
- EL_EMC_WALL_8
+ EL_EMC_WALL_8,
+ EL_CRYSTAL,
+ EL_WALL_PEARL,
+ EL_WALL_CRYSTAL,
+ EL_TUBE_CROSS,
+ EL_TUBE_VERTICAL,
+ EL_TUBE_HORIZONTAL,
+ EL_TUBE_VERT_LEFT,
+ EL_TUBE_VERT_RIGHT,
+ EL_TUBE_HORIZ_UP,
+ EL_TUBE_HORIZ_DOWN,
+ EL_TUBE_LEFT_UP,
+ EL_TUBE_LEFT_DOWN,
+ EL_TUBE_RIGHT_UP,
+ EL_TUBE_RIGHT_DOWN
};
static int ep_solid_num = sizeof(ep_solid)/sizeof(int);
};
static int ep_solid_num = sizeof(ep_solid)/sizeof(int);
@@
-1040,14
+1075,28
@@
void InitElementProperties()
EL_EMC_STEEL_WALL_1,
EL_EMC_STEEL_WALL_2,
EL_EMC_STEEL_WALL_3,
EL_EMC_STEEL_WALL_1,
EL_EMC_STEEL_WALL_2,
EL_EMC_STEEL_WALL_3,
- EL_EMC_STEEL_WALL_4
+ EL_EMC_STEEL_WALL_4,
+ EL_CRYSTAL,
+ EL_TUBE_CROSS,
+ EL_TUBE_VERTICAL,
+ EL_TUBE_HORIZONTAL,
+ EL_TUBE_VERT_LEFT,
+ EL_TUBE_VERT_RIGHT,
+ EL_TUBE_HORIZ_UP,
+ EL_TUBE_HORIZ_DOWN,
+ EL_TUBE_LEFT_UP,
+ EL_TUBE_LEFT_DOWN,
+ EL_TUBE_RIGHT_UP,
+ EL_TUBE_RIGHT_DOWN
};
static int ep_massive_num = sizeof(ep_massive)/sizeof(int);
static int ep_slippery[] =
{
EL_FELSBODEN,
};
static int ep_massive_num = sizeof(ep_massive)/sizeof(int);
static int ep_slippery[] =
{
EL_FELSBODEN,
+ EL_BD_WALL,
EL_FELSBROCKEN,
EL_FELSBROCKEN,
+ EL_BD_ROCK,
EL_EDELSTEIN,
EL_EDELSTEIN_BD,
EL_EDELSTEIN_GELB,
EL_EDELSTEIN,
EL_EDELSTEIN_BD,
EL_EDELSTEIN_GELB,
@@
-1073,7
+1122,9
@@
void InitElementProperties()
EL_SP_CHIP_UPPER,
EL_SP_CHIP_LOWER,
EL_SPEED_PILL,
EL_SP_CHIP_UPPER,
EL_SP_CHIP_LOWER,
EL_SPEED_PILL,
- EL_STEEL_SLANTED
+ EL_STEEL_SLANTED,
+ EL_PEARL,
+ EL_CRYSTAL
};
static int ep_slippery_num = sizeof(ep_slippery)/sizeof(int);
};
static int ep_slippery_num = sizeof(ep_slippery)/sizeof(int);
@@
-1121,6
+1172,7
@@
void InitElementProperties()
EL_MAUER_Y,
EL_MAUER_XY,
EL_MAUERND,
EL_MAUER_Y,
EL_MAUER_XY,
EL_MAUERND,
+ EL_BD_WALL,
EL_SP_CHIP_SINGLE,
EL_SP_CHIP_LEFT,
EL_SP_CHIP_RIGHT,
EL_SP_CHIP_SINGLE,
EL_SP_CHIP_LEFT,
EL_SP_CHIP_RIGHT,
@@
-1159,6
+1211,7
@@
void InitElementProperties()
static int ep_can_fall[] =
{
EL_FELSBROCKEN,
static int ep_can_fall[] =
{
EL_FELSBROCKEN,
+ EL_BD_ROCK,
EL_EDELSTEIN,
EL_EDELSTEIN_BD,
EL_EDELSTEIN_GELB,
EL_EDELSTEIN,
EL_EDELSTEIN_BD,
EL_EDELSTEIN_GELB,
@@
-1169,19
+1222,24
@@
void InitElementProperties()
EL_KOKOSNUSS,
EL_TROPFEN,
EL_MORAST_VOLL,
EL_KOKOSNUSS,
EL_TROPFEN,
EL_MORAST_VOLL,
- EL_
SIEB_VO
LL,
- EL_
SIEB2_VO
LL,
+ EL_
MAGIC_WALL_FU
LL,
+ EL_
MAGIC_WALL_BD_FU
LL,
EL_ZEIT_VOLL,
EL_ZEIT_LEER,
EL_SP_ZONK,
EL_SP_INFOTRON,
EL_ZEIT_VOLL,
EL_ZEIT_LEER,
EL_SP_ZONK,
EL_SP_INFOTRON,
- EL_SP_DISK_ORANGE
+ EL_SP_DISK_ORANGE,
+ EL_PEARL,
+ EL_CRYSTAL,
+ EL_SPRING,
+ EL_DX_SUPABOMB
};
static int ep_can_fall_num = sizeof(ep_can_fall)/sizeof(int);
static int ep_can_smash[] =
{
EL_FELSBROCKEN,
};
static int ep_can_fall_num = sizeof(ep_can_fall)/sizeof(int);
static int ep_can_smash[] =
{
EL_FELSBROCKEN,
+ EL_BD_ROCK,
EL_EDELSTEIN,
EL_EDELSTEIN_BD,
EL_EDELSTEIN_GELB,
EL_EDELSTEIN,
EL_EDELSTEIN_BD,
EL_EDELSTEIN_GELB,
@@
-1203,13
+1261,18
@@
void InitElementProperties()
EL_ZEIT_LEER,
EL_SP_ZONK,
EL_SP_INFOTRON,
EL_ZEIT_LEER,
EL_SP_ZONK,
EL_SP_INFOTRON,
- EL_SP_DISK_ORANGE
+ EL_SP_DISK_ORANGE,
+ EL_PEARL,
+ EL_CRYSTAL,
+ EL_SPRING,
+ EL_DX_SUPABOMB
};
static int ep_can_smash_num = sizeof(ep_can_smash)/sizeof(int);
static int ep_can_change[] =
{
EL_FELSBROCKEN,
};
static int ep_can_smash_num = sizeof(ep_can_smash)/sizeof(int);
static int ep_can_change[] =
{
EL_FELSBROCKEN,
+ EL_BD_ROCK,
EL_EDELSTEIN,
EL_EDELSTEIN_BD,
EL_EDELSTEIN_GELB,
EL_EDELSTEIN,
EL_EDELSTEIN_BD,
EL_EDELSTEIN_GELB,
@@
-1236,7
+1299,8
@@
void InitElementProperties()
EL_SONDE,
EL_SP_SNIKSNAK,
EL_SP_ELECTRON,
EL_SONDE,
EL_SP_SNIKSNAK,
EL_SP_ELECTRON,
- EL_BALLOON
+ EL_BALLOON,
+ EL_SPRING_MOVING
};
static int ep_can_move_num = sizeof(ep_can_move)/sizeof(int);
};
static int ep_can_move_num = sizeof(ep_can_move)/sizeof(int);
@@
-1289,6
+1353,7
@@
void InitElementProperties()
EL_SP_SNIKSNAK,
EL_SP_ELECTRON,
EL_SP_BUG_ACTIVE,
EL_SP_SNIKSNAK,
EL_SP_ELECTRON,
EL_SP_BUG_ACTIVE,
+ EL_TRAP_ACTIVE,
EL_LANDMINE
};
static int ep_dont_go_to_num = sizeof(ep_dont_go_to)/sizeof(int);
EL_LANDMINE
};
static int ep_dont_go_to_num = sizeof(ep_dont_go_to)/sizeof(int);
@@
-1314,7
+1379,9
@@
void InitElementProperties()
EL_EDELSTEIN_GELB,
EL_EDELSTEIN_ROT,
EL_EDELSTEIN_LILA,
EL_EDELSTEIN_GELB,
EL_EDELSTEIN_ROT,
EL_EDELSTEIN_LILA,
- EL_DIAMANT
+ EL_DIAMANT,
+ EL_PEARL,
+ EL_CRYSTAL
};
static int ep_mampf2_num = sizeof(ep_mampf2)/sizeof(int);
};
static int ep_mampf2_num = sizeof(ep_mampf2)/sizeof(int);
@@
-1323,9
+1390,11
@@
void InitElementProperties()
EL_LEERRAUM,
EL_ERDREICH,
EL_FELSBODEN,
EL_LEERRAUM,
EL_ERDREICH,
EL_FELSBODEN,
+ EL_BD_WALL,
EL_FELSBROCKEN,
EL_FELSBROCKEN,
+ EL_BD_ROCK,
EL_EDELSTEIN_BD,
EL_EDELSTEIN_BD,
- EL_
SIEB2_INAKTIV
,
+ EL_
MAGIC_WALL_BD_OFF
,
EL_AUSGANG_ZU,
EL_AUSGANG_AUF,
EL_BETON,
EL_AUSGANG_ZU,
EL_AUSGANG_AUF,
EL_BETON,
@@
-1374,6
+1443,7
@@
void InitElementProperties()
EL_LEERRAUM,
EL_ERDREICH,
EL_MAUERWERK,
EL_LEERRAUM,
EL_ERDREICH,
EL_MAUERWERK,
+ EL_BD_WALL,
EL_FELSBODEN,
EL_SCHLUESSEL,
EL_BETON,
EL_FELSBODEN,
EL_SCHLUESSEL,
EL_BETON,
@@
-1426,10
+1496,10
@@
void InitElementProperties()
EL_BADEWANNE3,
EL_BADEWANNE4,
EL_BADEWANNE5,
EL_BADEWANNE3,
EL_BADEWANNE4,
EL_BADEWANNE5,
- EL_
SIEB_INAKTIV
,
- EL_
SIEB_TOT
,
- EL_
SIEB2_INAKTIV
,
- EL_
SIEB2_TOT
,
+ EL_
MAGIC_WALL_OFF
,
+ EL_
MAGIC_WALL_DEAD
,
+ EL_
MAGIC_WALL_BD_OFF
,
+ EL_
MAGIC_WALL_BD_DEAD
,
EL_AMOEBA2DIAM,
EL_BLOCKED,
EL_SP_EMPTY,
EL_AMOEBA2DIAM,
EL_BLOCKED,
EL_SP_EMPTY,
@@
-1527,7
+1597,8
@@
void InitElementProperties()
EL_SP_DISK_ORANGE,
EL_SP_DISK_YELLOW,
EL_SP_SNIKSNAK,
EL_SP_DISK_ORANGE,
EL_SP_DISK_YELLOW,
EL_SP_SNIKSNAK,
- EL_SP_ELECTRON
+ EL_SP_ELECTRON,
+ EL_DX_SUPABOMB
};
static int ep_explosive_num = sizeof(ep_explosive)/sizeof(int);
};
static int ep_explosive_num = sizeof(ep_explosive)/sizeof(int);
@@
-1538,13
+1609,16
@@
void InitElementProperties()
EL_EDELSTEIN_GELB,
EL_EDELSTEIN_ROT,
EL_EDELSTEIN_LILA,
EL_EDELSTEIN_GELB,
EL_EDELSTEIN_ROT,
EL_EDELSTEIN_LILA,
- EL_DIAMANT
+ EL_DIAMANT,
+ EL_PEARL,
+ EL_CRYSTAL
};
static int ep_mampf3_num = sizeof(ep_mampf3)/sizeof(int);
static int ep_pushable[] =
{
EL_FELSBROCKEN,
};
static int ep_mampf3_num = sizeof(ep_mampf3)/sizeof(int);
static int ep_pushable[] =
{
EL_FELSBROCKEN,
+ EL_BD_ROCK,
EL_BOMBE,
EL_KOKOSNUSS,
EL_ZEIT_LEER,
EL_BOMBE,
EL_KOKOSNUSS,
EL_ZEIT_LEER,
@@
-1554,7
+1628,9
@@
void InitElementProperties()
EL_SP_ZONK,
EL_SP_DISK_ORANGE,
EL_SP_DISK_YELLOW,
EL_SP_ZONK,
EL_SP_DISK_ORANGE,
EL_SP_DISK_YELLOW,
- EL_BALLOON
+ EL_BALLOON,
+ EL_SPRING,
+ EL_DX_SUPABOMB
};
static int ep_pushable_num = sizeof(ep_pushable)/sizeof(int);
};
static int ep_pushable_num = sizeof(ep_pushable)/sizeof(int);
@@
-1583,6
+1659,7
@@
void InitElementProperties()
EL_ERDREICH,
EL_SP_BASE,
EL_SP_BUG,
EL_ERDREICH,
EL_SP_BASE,
EL_SP_BUG,
+ EL_TRAP_INACTIVE,
EL_SAND_INVISIBLE
};
static int ep_eatable_num = sizeof(ep_eatable)/sizeof(int);
EL_SAND_INVISIBLE
};
static int ep_eatable_num = sizeof(ep_eatable)/sizeof(int);
@@
-1630,7
+1707,9
@@
void InitElementProperties()
EL_SP_CHIP_UPPER,
EL_SP_CHIP_LOWER,
/* additional elements that appeared in newer Supaplex levels */
EL_SP_CHIP_UPPER,
EL_SP_CHIP_LOWER,
/* additional elements that appeared in newer Supaplex levels */
- EL_UNSICHTBAR
+ EL_UNSICHTBAR,
+ /* more than one murphy in a level results in an inactive clone */
+ EL_SP_MURPHY_CLONE
};
static int ep_sp_element_num = sizeof(ep_sp_element)/sizeof(int);
};
static int ep_sp_element_num = sizeof(ep_sp_element)/sizeof(int);
@@
-1672,7
+1751,18
@@
void InitElementProperties()
EL_SP_PORT2_DOWN,
EL_SP_PORT_X,
EL_SP_PORT_Y,
EL_SP_PORT2_DOWN,
EL_SP_PORT_X,
EL_SP_PORT_Y,
- EL_SP_PORT_XY
+ EL_SP_PORT_XY,
+ EL_TUBE_CROSS,
+ EL_TUBE_VERTICAL,
+ EL_TUBE_HORIZONTAL,
+ EL_TUBE_VERT_LEFT,
+ EL_TUBE_VERT_RIGHT,
+ EL_TUBE_HORIZ_UP,
+ EL_TUBE_HORIZ_DOWN,
+ EL_TUBE_LEFT_UP,
+ EL_TUBE_LEFT_DOWN,
+ EL_TUBE_RIGHT_UP,
+ EL_TUBE_RIGHT_DOWN
};
static int ep_over_player_num = sizeof(ep_over_player)/sizeof(int);
};
static int ep_over_player_num = sizeof(ep_over_player)/sizeof(int);
@@
-1720,6
+1810,22
@@
void InitElementProperties()
};
static int ep_belt_switch_num = sizeof(ep_belt_switch)/sizeof(int);
};
static int ep_belt_switch_num = sizeof(ep_belt_switch)/sizeof(int);
+ static int ep_tube[] =
+ {
+ EL_TUBE_CROSS,
+ EL_TUBE_VERTICAL,
+ EL_TUBE_HORIZONTAL,
+ EL_TUBE_VERT_LEFT,
+ EL_TUBE_VERT_RIGHT,
+ EL_TUBE_HORIZ_UP,
+ EL_TUBE_HORIZ_DOWN,
+ EL_TUBE_LEFT_UP,
+ EL_TUBE_LEFT_DOWN,
+ EL_TUBE_RIGHT_UP,
+ EL_TUBE_RIGHT_DOWN
+ };
+ static int ep_tube_num = sizeof(ep_tube)/sizeof(int);
+
static long ep1_bit[] =
{
EP_BIT_AMOEBALIVE,
static long ep1_bit[] =
{
EP_BIT_AMOEBALIVE,
@@
-1757,7
+1863,8
@@
void InitElementProperties()
static long ep2_bit[] =
{
EP_BIT_BELT,
static long ep2_bit[] =
{
EP_BIT_BELT,
- EP_BIT_BELT_SWITCH
+ EP_BIT_BELT_SWITCH,
+ EP_BIT_TUBE
};
static int *ep1_array[] =
{
};
static int *ep1_array[] =
{
@@
-1796,7
+1903,8
@@
void InitElementProperties()
static int *ep2_array[] =
{
ep_belt,
static int *ep2_array[] =
{
ep_belt,
- ep_belt_switch
+ ep_belt_switch,
+ ep_tube
};
static int *ep1_num[] =
{
};
static int *ep1_num[] =
{
@@
-1835,7
+1943,8
@@
void InitElementProperties()
static int *ep2_num[] =
{
&ep_belt_num,
static int *ep2_num[] =
{
&ep_belt_num,
- &ep_belt_switch_num
+ &ep_belt_switch_num,
+ &ep_tube_num
};
static int num_properties1 = sizeof(ep1_num)/sizeof(int *);
static int num_properties2 = sizeof(ep2_num)/sizeof(int *);
};
static int num_properties1 = sizeof(ep1_num)/sizeof(int *);
static int num_properties2 = sizeof(ep2_num)/sizeof(int *);