X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Finit.c;h=184ea73f333c5beef4801ae7a5ff229041c3039e;hb=ab0879a8bcb3e816912bc89b8e21c22cc2a4c0c2;hp=488b4338c53a819df4c536e528a204ea2b5414f6;hpb=82b1f76754f039e4ee151c7da7c49819c7310546;p=rocksndiamonds.git diff --git a/src/init.c b/src/init.c index 488b4338..184ea73f 100644 --- a/src/init.c +++ b/src/init.c @@ -20,15 +20,14 @@ #include "tools.h" #include "files.h" #include "joystick.h" -#include "gfxload.h" -#include "gifload.h" +#include "image.h" #include "network.h" #include "netserv.h" #ifdef DEBUG -/* + #define DEBUG_TIMING -*/ + #endif struct PictureFileInfo @@ -70,7 +69,7 @@ void OpenAll(int argc, char *argv[]) InitCounter(); InitSound(); InitSoundServer(); - InitJoystick(); + InitJoysticks(); InitRND(NEW_RANDOMIZE); signal(SIGINT, CloseAllAndExit); @@ -96,8 +95,13 @@ void InitLevelAndPlayerInfo() /* choose default local player */ local_player = &stored_player[0]; + for (i=0; iconnected = TRUE; if (!LoadLevelInfo()) /* global level info */ @@ -119,7 +123,7 @@ void InitNetworkServer() if (!ConnectToServer(options.server_host, options.server_port)) Error(ERR_EXIT, "cannot connect to multiplayer server"); - SendToServer_Nickname(local_player->alias_name); + SendToServer_Nickname(setup.alias_name); SendToServer_ProtocolVersion(); if (nr_wanted) @@ -134,7 +138,7 @@ void InitSound() return; #ifndef MSDOS - if (access(sound_device_name,W_OK)<0) + if (access(sound_device_name, W_OK) != 0) { Error(ERR_WARN, "cannot access sound device - no sounds"); sound_status = SOUND_OFF; @@ -216,33 +220,44 @@ void InitSoundServer() #endif } -void InitJoystick() +void InitJoysticks() { - int joystick_nr = setup.input[0].joystick_nr; + int i; if (global_joystick_status == JOYSTICK_OFF) return; + joystick_status = JOYSTICK_OFF; + #ifndef MSDOS - if (access(joystick_device_name[joystick_nr], R_OK) < 0) + for (i=0; ipicture_filename) { - sprintf(basefilename,"%s%s",pic->picture_filename,picture_ext); - DrawInitText(basefilename,150,FC_YELLOW); - sprintf(filename,"%s/%s",GFX_PATH,basefilename); + sprintf(basefilename, "%s%s", pic->picture_filename, picture_ext); + DrawInitText(basefilename, 150, FC_YELLOW); + sprintf(filename, "%s/%s/%s", + options.base_directory, GRAPHICS_DIRECTORY, basefilename); #ifdef MSDOS rest(100); @@ -673,30 +693,30 @@ void LoadGfx(int pos, struct PictureFileInfo *pic) #else - gif_err = Read_GIF_to_Pixmaps(display, window, filename, + pcx_err = Read_PCX_to_Pixmaps(display, window, filename, &pix[pos], &clipmask[pos]); - switch(gif_err) + switch(pcx_err) { - case GIF_Success: + case PCX_Success: break; - case GIF_OpenFailed: - Error(ERR_EXIT, "cannot open GIF file '%s'", filename); - case GIF_ReadFailed: - Error(ERR_EXIT, "cannot read GIF file '%s'", filename); - case GIF_FileInvalid: - Error(ERR_EXIT, "invalid GIF file '%s'", filename); - case GIF_NoMemory: - Error(ERR_EXIT, "not enough memory for GIF file '%s'", filename); - case GIF_ColorFailed: - Error(ERR_EXIT, "cannot get colors for GIF file '%s'", filename); + case PCX_OpenFailed: + Error(ERR_EXIT, "cannot open PCX file '%s'", filename); + case PCX_ReadFailed: + Error(ERR_EXIT, "cannot read PCX file '%s'", filename); + case PCX_FileInvalid: + Error(ERR_EXIT, "invalid PCX file '%s'", filename); + case PCX_NoMemory: + Error(ERR_EXIT, "not enough memory for PCX file '%s'", filename); + case PCX_ColorFailed: + Error(ERR_EXIT, "cannot get colors for PCX file '%s'", filename); default: break; } #ifdef DEBUG_TIMING count2 = Counter(); - printf("GIF LOADING %s IN %.2f SECONDS\n", + printf("PCX LOADING %s IN %.2f SECONDS\n", filename,(float)(count2-count1)/1000.0); #endif @@ -712,9 +732,10 @@ void LoadGfx(int pos, struct PictureFileInfo *pic) #ifdef XPM_INCLUDE_FILE - sprintf(basefilename,"%s%s",pic->picture_filename,picturemask_ext); - DrawInitText(basefilename,150,FC_YELLOW); - sprintf(filename,"%s/%s",GFX_PATH,basefilename); + sprintf(basefilename, "%s%s", pic->picture_filename, picturemask_ext); + DrawInitText(basefilename, 150, FC_YELLOW); + sprintf(filename, "%s/%s/%s", + options.base_directory, GRAPHICS_DIRECTORY, basefilename); #ifdef DEBUG_TIMING count1 = Counter();