#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);
void InitNetworkServer()
{
+#ifndef MSDOS
int nr_wanted;
+#endif
if (!options.network)
return;
+#ifndef MSDOS
nr_wanted = Request("Choose player", REQ_PLAYER | REQ_STAY_CLOSED);
if (!ConnectToServer(options.server_host, options.server_port))
- Error(ERR_EXIT, "cannot connect to multiplayer server");
+ Error(ERR_EXIT, "cannot connect to network game server");
- SendToServer_Nickname(setup.player_name);
+ SendToServer_PlayerName(setup.player_name);
SendToServer_ProtocolVersion();
if (nr_wanted)
SendToServer_NrWanted(nr_wanted);
+#endif
}
void InitSound()
*/
#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
- joystick_status = JOYSTICK_AVAILABLE;
+
+#else /* MSDOS */
+
+ /* try to access two joysticks; if that fails, try to access just one */
+ if (install_joystick(JOY_TYPE_2PADS) == 0 ||
+ install_joystick(JOY_TYPE_AUTODETECT) == 0)
+ joystick_status = JOYSTICK_AVAILABLE;
+
+ /*
+ load_joystick_data(JOYSTICK_FILENAME);
+ */
+
+ for (i=0; i<MAX_PLAYERS; i++)
+ {
+ char *device_name = setup.input[i].joy.device_name;
+ int joystick_nr = getJoystickNrFromDeviceName(device_name);
+
+ if (joystick_nr >= num_joysticks)
+ joystick_nr = -1;
+
+ /* misuse joystick file descriptor variable to store joystick number */
+ stored_player[i].joystick_fd = joystick_nr;
+ }
#endif
}
void InitDisplay()
{
+#ifndef MSDOS
XVisualInfo vinfo_template, *vinfo;
int num_visuals;
+#endif
unsigned int depth;
/* connect to X server */
depth = DefaultDepth(display, screen);
cmap = DefaultColormap(display, screen);
+#ifndef MSDOS
/* look for good enough visual */
vinfo_template.screen = screen;
vinfo_template.class = (depth == 8 ? PseudoColor : TrueColor);
printf("Sorry, cannot get appropriate visual.\n");
exit(-1);
}
+#endif
}
void InitWindow(int argc, char *argv[])
{
unsigned int border_width = 4;
+ XGCValues gc_values;
+ unsigned long gc_valuemask;
+#ifndef MSDOS
+ XTextProperty windowName, iconName;
Pixmap icon_pixmap, iconmask_pixmap;
- unsigned int icon_width,icon_height;
- int icon_hot_x,icon_hot_y;
+ unsigned int icon_width, icon_height;
+ int icon_hot_x, icon_hot_y;
char icon_filename[256];
XSizeHints size_hints;
XWMHints wm_hints;
XClassHint class_hints;
- XTextProperty windowName, iconName;
- XGCValues gc_values;
- unsigned long gc_valuemask;
char *window_name = WINDOWTITLE_STRING;
char *icon_name = WINDOWTITLE_STRING;
long window_event_mask;
Atom proto_atom = None, delete_atom = None;
+#endif
int screen_width, screen_height;
int win_xpos = WIN_XPOS, win_ypos = WIN_YPOS;
unsigned long pen_fg = WhitePixel(display,screen);
#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++)
#ifdef MSDOS
rest(100);
-#endif MSDOS
+#endif /* MSDOS */
#if DEBUG_TIMING
debug_print_timestamp(1, NULL); /* initialize timestamp function */
#else /* !USE_XPM_LIBRARY */
- pcx_err = Read_PCX_to_Pixmaps(display, window, gc, filename,
- &pix[pos], &clipmask[pos]);
+ pcx_err = Read_PCX_to_Pixmap(display, window, gc, filename,
+ &pix[pos], &clipmask[pos]);
switch(pcx_err)
{
case PCX_Success:
};
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 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
};
static int *ep_array[] =
{
ep_explosive,
ep_mampf3,
ep_pushable,
- ep_player
+ ep_player,
+ ep_has_content
};
static int *ep_num[] =
{
&ep_explosive_num,
&ep_mampf3_num,
&ep_pushable_num,
- &ep_player_num
+ &ep_player_num,
+ &ep_has_content_num
};
static int num_properties = sizeof(ep_num)/sizeof(int *);
XCloseDisplay(display);
}
+#ifdef MSDOS
+ dumpErrorFile();
+#endif
+
exit(exit_value);
}