X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fmain.c;h=49478464d427b114e7ebb2fb75218f0814988167;hb=3836649c663e70e503686c52c67f71d21c00bb84;hp=2a8af5d08dce96805db896728142e65738cdedcc;hpb=5e8d9d0308f76bb35e7578a8859d6f01977d0f69;p=rocksndiamonds.git diff --git a/src/main.c b/src/main.c index 2a8af5d0..49478464 100644 --- a/src/main.c +++ b/src/main.c @@ -1,13 +1,12 @@ /*********************************************************** * Rocks'n'Diamonds -- McDuffin Strikes Back! * *----------------------------------------------------------* -* ©1995 Artsoft Development * -* Holger Schemel * -* 33659 Bielefeld-Senne * -* Telefon: (0521) 493245 * -* eMail: aeglos@valinor.owl.de * -* aeglos@uni-paderborn.de * -* q99492@pbhrzx.uni-paderborn.de * +* (c) 1995-98 Artsoft Entertainment * +* Holger Schemel * +* Oststrasse 11a * +* 33604 Bielefeld * +* phone: ++49 +521 290471 * +* email: aeglos@valinor.owl.de * *----------------------------------------------------------* * main.c * ***********************************************************/ @@ -18,6 +17,7 @@ #include "events.h" #include "sound.h" #include "joystick.h" +#include "misc.h" #ifdef MSDOS #include @@ -46,8 +46,17 @@ char *joystick_device_name[2] = { DEV_JOYSTICK_0, DEV_JOYSTICK_1 }; char *level_directory = LEVEL_PATH; int width, height; +char *program_name = NULL; +char *display_name = NULL; +char *server_host = NULL; +int server_port = 0; +int serveronly = FALSE; +int network = FALSE; +int verbose = FALSE; + int game_status = MAINMENU; int game_emulation = EMU_NONE; +int network_playing = FALSE; int button_status = MB_NOT_PRESSED, motion_status = FALSE; int key_joystick_mapping = 0; int global_joystick_status = JOYSTICK_STATUS; @@ -88,18 +97,24 @@ long Elementeigenschaften[MAX_ELEMENTS]; int level_nr, leveldir_nr, num_leveldirs; int lev_fieldx,lev_fieldy, scroll_x,scroll_y; -int FX = SX, FY = SY, ScreenMovPos = 0, ScrollStepSize = TILEX/8; +int FX = SX, FY = SY, ScrollStepSize = TILEX/8; +int ScreenMovDir = MV_NO_MOVING, ScreenMovPos = 0; +int ScreenGfxPos = 0; int GameFrameDelay = GAME_FRAME_DELAY, MoveSpeed = 8; int BX1 = 0, BY1 = 0, BX2 = SCR_FIELDX-1, BY2 = SCR_FIELDY-1; -int JX,JY, lastJX,lastJY, ZX,ZY, ExitX,ExitY; -int PlayerGone, LevelSolved, GameOver; +int ZX,ZY, ExitX,ExitY; +int AllPlayersGone; int FrameCounter, TimeFrames, TimeLeft; int MampferNr, SiebAktiv; +byte network_player_action[MAX_PLAYERS]; +BOOL network_player_action_received = FALSE; +int TestPlayer = 0; + struct LevelDirInfo leveldir[MAX_LEVDIR_ENTRIES]; struct LevelInfo level; struct PlayerInfo stored_player[MAX_PLAYERS+1]; -struct PlayerInfo *local_player, *player; +struct PlayerInfo *local_player; struct HiScore highscore[MAX_SCORE_ENTRIES]; struct SoundInfo Sound[NUM_SOUNDS]; struct RecordingInfo tape; @@ -182,22 +197,17 @@ int background_loop[] = }; int num_bg_loops = sizeof(background_loop)/sizeof(int); -char *progname; - int main(int argc, char *argv[]) { - progname = argv[0]; - - if (argc>1) - level_directory = argv[1]; + program_name = (strrchr(argv[0],'/') ? strrchr(argv[0],'/') + 1 : argv[0]); #ifdef MSDOS _fmode = O_BINARY; #endif + GetOptions(argv); OpenAll(argc,argv); EventLoop(); - CloseAll(); - - exit(0); + CloseAllAndExit(0); + exit(0); /* to keep compilers happy */ }