#include "misc.h"
#include "sound.h"
#include "screens.h"
+#include "editor.h"
#include "tools.h"
#include "files.h"
#include "joystick.h"
#include "image.h"
+#include "pcx.h"
#include "network.h"
#include "netserv.h"
InitSoundServer();
InitJoysticks();
InitRND(NEW_RANDOMIZE);
+ InitLevelEditorGadgets();
signal(SIGINT, CloseAllAndExit);
signal(SIGTERM, CloseAllAndExit);
*/
#endif
-#else
+#else /* MSDOS */
sound_loops_allowed = TRUE;
/*
setup.sound_loops_on = TRUE;
*/
-#endif
+#endif /* MSDOS */
for(i=0; i<NUM_SOUNDS; i++)
{
#ifdef MSDOS
- sprintf(sound_name[i], "%d", i+1);
+ sprintf(sound_name[i], "%d", i + 1);
#endif
+
Sound[i].name = sound_name[i];
if (!LoadSound(&Sound[i]))
{
return;
#ifndef MSDOS
+
if (pipe(sound_pipe)<0)
{
Error(ERR_WARN, "cannot create pipe - no sounds");
}
else /* we are parent */
close(sound_pipe[0]); /* no reading from pipe needed */
-#else
+
+#else /* MSDOS */
+
SoundServer();
-#endif
+
+#endif /* MSDOS */
}
void InitJoysticks()
joystick_status = JOYSTICK_AVAILABLE;
}
-#else
+
+#else /* MSDOS */
/* try to access two joysticks; if that fails, try to access just one */
if (install_joystick(JOY_TYPE_2PADS) == 0 ||
{ "Door", TRUE },
{ "Heroes", TRUE },
{ "Toons", TRUE },
+ { "More", TRUE },
{ "Font", FALSE },
{ "Font2", FALSE }
};
{ "RocksDoor", TRUE },
{ "RocksHeroes", TRUE },
{ "RocksToons", TRUE },
+ { "RocksMore", TRUE },
{ "RocksFont", FALSE },
{ "RocksFont2", FALSE }
};
#ifdef MSDOS
DrawInitText("MSDOS version done by Guido Schulz",210,FC_BLUE);
rest(200);
-#endif MSDOS
+#endif /* MSDOS */
DrawInitText("Loading graphics:",120,FC_GREEN);
for(i=0; i<NUM_PICTURES; i++)
char *picturemask_ext = "Mask.xbm";
#else
int pcx_err;
-
-#if 1
char *picture_ext = ".pcx";
-#else
- char *picture_ext = ".gif";
-#endif
-
#endif
/* Grafik laden */
#ifdef MSDOS
rest(100);
-#endif MSDOS
+#endif /* MSDOS */
#if DEBUG_TIMING
debug_print_timestamp(1, NULL); /* initialize timestamp function */
EL_AMOEBE_BD,
EL_MORAST_VOLL,
EL_MORAST_LEER,
- EL_SIEB_VOLL,
+ EL_SIEB_INAKTIV,
EL_SIEB_LEER,
+ EL_SIEB_VOLL,
EL_SIEB_TOT,
- EL_SIEB2_VOLL,
+ EL_SIEB2_INAKTIV,
EL_SIEB2_LEER,
+ EL_SIEB2_VOLL,
EL_SIEB2_TOT,
EL_LIFE,
EL_LIFE_ASYNC,
EL_BADEWANNE2,
EL_BADEWANNE3,
EL_BADEWANNE4,
- EL_BADEWANNE5
+ EL_BADEWANNE5,
+ EL_SP_CHIP_SINGLE,
+ EL_SP_CHIP_LEFT,
+ EL_SP_CHIP_RIGHT,
+ EL_SP_CHIP_UPPER,
+ EL_SP_CHIP_LOWER,
+ EL_SP_HARD_GRAY,
+ EL_SP_HARD_GREEN,
+ EL_SP_HARD_BLUE,
+ EL_SP_HARD_RED,
+ EL_SP_HARD_YELLOW,
+ EL_SP_HARD_BASE1,
+ EL_SP_HARD_BASE2,
+ EL_SP_HARD_BASE3,
+ EL_SP_HARD_BASE4,
+ EL_SP_HARD_BASE5,
+ EL_SP_HARD_BASE6,
+ EL_SP_TERMINAL,
+ EL_SP_EXIT
};
static int ep_solid_num = sizeof(ep_solid)/sizeof(int);
EL_PFORTE1X,
EL_PFORTE2X,
EL_PFORTE3X,
- EL_PFORTE4X
+ EL_PFORTE4X,
+ EL_SP_HARD_GRAY,
+ EL_SP_HARD_GREEN,
+ EL_SP_HARD_BLUE,
+ EL_SP_HARD_RED,
+ EL_SP_HARD_YELLOW,
+ EL_SP_HARD_BASE1,
+ EL_SP_HARD_BASE2,
+ EL_SP_HARD_BASE3,
+ EL_SP_HARD_BASE4,
+ EL_SP_HARD_BASE5,
+ EL_SP_HARD_BASE6,
};
static int ep_massiv_num = sizeof(ep_massiv)/sizeof(int);
EL_BIRNE_AUS,
EL_BADEWANNE1,
EL_BADEWANNE2,
- EL_SONDE
+ EL_SONDE,
+ EL_SP_ZONK,
+ EL_SP_INFOTRON,
+ EL_SP_CHIP_SINGLE,
+ EL_SP_CHIP_LEFT,
+ EL_SP_CHIP_RIGHT,
+ EL_SP_CHIP_UPPER,
+ EL_SP_CHIP_LOWER,
+ EL_SPEED_PILL
};
static int ep_slippery_num = sizeof(ep_slippery)/sizeof(int);
EL_MAMPFER,
EL_MAMPFER2,
EL_ROBOT,
- EL_PACMAN
+ EL_PACMAN,
+ EL_SP_SNIKSNAK,
+ EL_SP_ELECTRON
};
static int ep_enemy_num = sizeof(ep_enemy)/sizeof(int);
EL_MAUER_X,
EL_MAUER_Y,
EL_MAUER_XY,
- EL_MAUERND
+ EL_MAUERND,
+ EL_SP_CHIP_SINGLE,
+ EL_SP_CHIP_LEFT,
+ EL_SP_CHIP_RIGHT,
+ EL_SP_CHIP_UPPER,
+ EL_SP_CHIP_LOWER,
+ EL_SP_HARD_GRAY,
+ EL_SP_HARD_GREEN,
+ EL_SP_HARD_BLUE,
+ EL_SP_HARD_RED,
+ EL_SP_HARD_YELLOW,
+ EL_SP_HARD_BASE1,
+ EL_SP_HARD_BASE2,
+ EL_SP_HARD_BASE3,
+ EL_SP_HARD_BASE4,
+ EL_SP_HARD_BASE5,
+ EL_SP_HARD_BASE6,
+ EL_SP_TERMINAL,
+ EL_SP_EXIT
};
static int ep_mauer_num = sizeof(ep_mauer)/sizeof(int);
EL_SIEB_VOLL,
EL_SIEB2_VOLL,
EL_ZEIT_VOLL,
- EL_ZEIT_LEER
+ EL_ZEIT_LEER,
+ EL_SP_ZONK,
+ EL_SP_INFOTRON,
+ EL_SP_DISK_ORANGE
};
static int ep_can_fall_num = sizeof(ep_can_fall)/sizeof(int);
EL_KOKOSNUSS,
EL_TROPFEN,
EL_ZEIT_VOLL,
- EL_ZEIT_LEER
+ EL_ZEIT_LEER,
+ EL_SP_ZONK,
+ EL_SP_INFOTRON,
+ EL_SP_DISK_ORANGE
};
static int ep_can_smash_num = sizeof(ep_can_smash)/sizeof(int);
EL_PINGUIN,
EL_SCHWEIN,
EL_DRACHE,
- EL_SONDE
+ EL_SONDE,
+ EL_SP_SNIKSNAK,
+ EL_SP_ELECTRON
};
static int ep_can_move_num = sizeof(ep_can_move)/sizeof(int);
EL_ROBOT,
EL_PACMAN,
EL_TROPFEN,
- EL_SALZSAEURE
+ EL_SALZSAEURE,
+ EL_SP_SNIKSNAK,
+ EL_SP_ELECTRON,
+ EL_SP_BUG
};
static int ep_dont_go_to_num = sizeof(ep_dont_go_to)/sizeof(int);
EL_FELSBODEN,
EL_FELSBROCKEN,
EL_EDELSTEIN_BD,
- EL_SIEB2_LEER,
+ EL_SIEB2_INAKTIV,
EL_AUSGANG_ZU,
EL_AUSGANG_AUF,
EL_BETON,
EL_EDELSTEIN_GELB,
EL_EDELSTEIN_ROT,
EL_EDELSTEIN_LILA,
- EL_DIAMANT
+ EL_DIAMANT,
+ EL_SP_INFOTRON
};
static int ep_gem_num = sizeof(ep_gem)/sizeof(int);
EL_BADEWANNE3,
EL_BADEWANNE4,
EL_BADEWANNE5,
+ EL_SIEB_INAKTIV,
EL_SIEB_TOT,
+ EL_SIEB2_INAKTIV,
EL_SIEB2_TOT,
EL_AMOEBA2DIAM,
- EL_BLOCKED
+ EL_BLOCKED,
+ EL_SP_EMPTY,
+ EL_SP_BASE,
+ EL_SP_PORT1_RIGHT,
+ EL_SP_PORT1_DOWN,
+ EL_SP_PORT1_LEFT,
+ EL_SP_PORT1_UP,
+ EL_SP_PORT2_RIGHT,
+ EL_SP_PORT2_DOWN,
+ EL_SP_PORT2_LEFT,
+ EL_SP_PORT2_UP,
+ EL_SP_PORT_X,
+ EL_SP_PORT_Y,
+ EL_SP_PORT_XY,
+ EL_SP_DISK_RED,
+ EL_SP_DISK_YELLOW,
+ EL_SP_CHIP_SINGLE,
+ EL_SP_CHIP_LEFT,
+ EL_SP_CHIP_RIGHT,
+ EL_SP_CHIP_UPPER,
+ EL_SP_CHIP_LOWER,
+ EL_SP_HARD_GRAY,
+ EL_SP_HARD_GREEN,
+ EL_SP_HARD_BLUE,
+ EL_SP_HARD_RED,
+ EL_SP_HARD_YELLOW,
+ EL_SP_HARD_BASE1,
+ EL_SP_HARD_BASE2,
+ EL_SP_HARD_BASE3,
+ EL_SP_HARD_BASE4,
+ EL_SP_HARD_BASE5,
+ EL_SP_HARD_BASE6,
+ EL_SP_EXIT
};
static int ep_inactive_num = sizeof(ep_inactive)/sizeof(int);
EL_PINGUIN,
EL_SCHWEIN,
EL_DRACHE,
- EL_SONDE
+ EL_SONDE,
+ EL_SP_DISK_RED,
+ EL_SP_DISK_ORANGE,
+ EL_SP_DISK_YELLOW,
+ EL_SP_SNIKSNAK,
+ EL_SP_ELECTRON
};
static int ep_explosive_num = sizeof(ep_explosive)/sizeof(int);
EL_ZEIT_LEER,
EL_SOKOBAN_FELD_VOLL,
EL_SOKOBAN_OBJEKT,
- EL_SONDE
+ EL_SONDE,
+ EL_SP_ZONK,
+ EL_SP_DISK_ORANGE,
+ EL_SP_DISK_YELLOW
};
static int ep_pushable_num = sizeof(ep_pushable)/sizeof(int);
};
static int ep_player_num = sizeof(ep_player)/sizeof(int);
+ static int ep_has_content[] =
+ {
+ EL_MAMPFER,
+ EL_AMOEBE_NASS,
+ EL_AMOEBE_NORM,
+ EL_AMOEBE_VOLL,
+ EL_AMOEBE_BD
+ };
+ static int ep_has_content_num = sizeof(ep_has_content)/sizeof(int);
+
+ static int ep_eatable[] =
+ {
+ EL_ERDREICH,
+ EL_SP_BASE,
+ EL_SP_BUG
+ };
+ static int ep_eatable_num = sizeof(ep_eatable)/sizeof(int);
+
+ static int ep_sp_element[] =
+ {
+ EL_SP_EMPTY,
+ EL_SP_ZONK,
+ EL_SP_BASE,
+ EL_SP_MURPHY,
+ EL_SP_INFOTRON,
+ EL_SP_CHIP_SINGLE,
+ EL_SP_HARD_GRAY,
+ EL_SP_EXIT,
+ EL_SP_DISK_ORANGE,
+ EL_SP_PORT1_RIGHT,
+ EL_SP_PORT1_DOWN,
+ EL_SP_PORT1_LEFT,
+ EL_SP_PORT1_UP,
+ EL_SP_PORT2_RIGHT,
+ EL_SP_PORT2_DOWN,
+ EL_SP_PORT2_LEFT,
+ EL_SP_PORT2_UP,
+ EL_SP_SNIKSNAK,
+ EL_SP_DISK_YELLOW,
+ EL_SP_TERMINAL,
+ EL_SP_DISK_RED,
+ EL_SP_PORT_Y,
+ EL_SP_PORT_X,
+ EL_SP_PORT_XY,
+ EL_SP_ELECTRON,
+ EL_SP_BUG,
+ EL_SP_CHIP_LEFT,
+ EL_SP_CHIP_RIGHT,
+ EL_SP_HARD_BASE1,
+ EL_SP_HARD_GREEN,
+ EL_SP_HARD_BLUE,
+ EL_SP_HARD_RED,
+ EL_SP_HARD_YELLOW,
+ EL_SP_HARD_BASE2,
+ EL_SP_HARD_BASE3,
+ EL_SP_HARD_BASE4,
+ EL_SP_HARD_BASE5,
+ EL_SP_HARD_BASE6,
+ EL_SP_CHIP_UPPER,
+ EL_SP_CHIP_LOWER
+ };
+ static int ep_sp_element_num = sizeof(ep_sp_element)/sizeof(int);
+
static long ep_bit[] =
{
EP_BIT_AMOEBALIVE,
EP_BIT_EXPLOSIVE,
EP_BIT_MAMPF3,
EP_BIT_PUSHABLE,
- EP_BIT_PLAYER
+ EP_BIT_PLAYER,
+ EP_BIT_HAS_CONTENT,
+ EP_BIT_EATABLE,
+ EP_BIT_SP_ELEMENT
};
static int *ep_array[] =
{
ep_explosive,
ep_mampf3,
ep_pushable,
- ep_player
+ ep_player,
+ ep_has_content,
+ ep_eatable,
+ ep_sp_element
};
static int *ep_num[] =
{
&ep_explosive_num,
&ep_mampf3_num,
&ep_pushable_num,
- &ep_player_num
+ &ep_player_num,
+ &ep_has_content_num,
+ &ep_eatable_num,
+ &ep_sp_element_num
};
static int num_properties = sizeof(ep_num)/sizeof(int *);