rnd-19981026-1
[rocksndiamonds.git] / src / init.c
index ce82c209eb9c6dbeeaa5490c1d8976831303d17f..b048083108d3fbe97c6f653798aed31f1c84094c 100644 (file)
@@ -94,7 +94,10 @@ void InitLevelAndPlayerInfo()
 {
   int i;
 
-  /* initialize local player's setup */
+
+#if 0
+
+  /* initialize local setup */
   setup.sound_on = TRUE;
   setup.sound_loops_on = FALSE;
   setup.sound_music_on = FALSE;
@@ -106,7 +109,23 @@ void InitLevelAndPlayerInfo()
   setup.fading_on = FALSE;
   setup.autorecord_on = FALSE;
   setup.quick_doors = FALSE;
-  setup.joystick_nr = 0;
+  for (i=0; i<MAX_PLAYERS; i++)
+  {
+    setup.input[i].use_joystick = FALSE;
+    setup.input[i].joystick_nr = 0;
+    setup.input[i].joy.snap  = (i == 0 ? JOY_BUTTON_1 : 0);
+    setup.input[i].joy.bomb  = (i == 0 ? JOY_BUTTON_2 : 0);
+    setup.input[i].key.left  = (i == 0 ? DEFAULT_KEY_LEFT  : KEY_UNDEFINDED);
+    setup.input[i].key.right = (i == 0 ? DEFAULT_KEY_RIGHT : KEY_UNDEFINDED);
+    setup.input[i].key.up    = (i == 0 ? DEFAULT_KEY_UP    : KEY_UNDEFINDED);
+    setup.input[i].key.down  = (i == 0 ? DEFAULT_KEY_DOWN  : KEY_UNDEFINDED);
+    setup.input[i].key.snap  = (i == 0 ? DEFAULT_KEY_SNAP  : KEY_UNDEFINDED);
+    setup.input[i].key.bomb  = (i == 0 ? DEFAULT_KEY_BOMB  : KEY_UNDEFINDED);
+  }
+
+#endif
+
+
 
   /* choose default local player */
   local_player = &stored_player[0];
@@ -114,10 +133,20 @@ void InitLevelAndPlayerInfo()
   if (!LoadLevelInfo())                        /* global level info */
     Error(ERR_EXIT, NULL);
 
+
+  LoadSetup();                         /* global setup info */
+  LoadLevelSetup();                    /* info about last played level */
+
+
+#if 0
   LoadPlayerInfo(PLAYER_SETUP);                /* global setup info */
   LoadPlayerInfo(PLAYER_LEVEL);                /* level specific info */
+#endif
 
+
+#if 0
   /* after LoadPlayerInfo(), because it overwrites 'local_player' */
+#endif
   for (i=0; i<MAX_PLAYERS; i++)
   {
     stored_player[i].connected = FALSE;
@@ -156,14 +185,14 @@ void InitSound()
 #ifndef MSDOS
   if (access(sound_device_name,W_OK)<0)
   {
-    Error(ERR_RETURN, "cannot access sound device - no sounds");
+    Error(ERR_WARN, "cannot access sound device - no sounds");
     sound_status = SOUND_OFF;
     return;
   }
 
   if ((sound_device = open(sound_device_name,O_WRONLY))<0)
   {
-    Error(ERR_RETURN, "cannot open sound device - no sounds");
+    Error(ERR_WARN, "cannot open sound device - no sounds");
     sound_status = SOUND_OFF;
     return;
   }
@@ -173,11 +202,19 @@ void InitSound()
 
 #ifdef VOXWARE
   sound_loops_allowed = TRUE;
+
+  /*
   setup.sound_loops_on = TRUE;
+  */
+
 #endif
 #else
   sound_loops_allowed = TRUE;
+
+  /*
   setup.sound_loops_on = TRUE;
+  */
+
 #endif
 
   for(i=0; i<NUM_SOUNDS; i++)
@@ -202,14 +239,14 @@ void InitSoundServer()
 #ifndef MSDOS
   if (pipe(sound_pipe)<0)
   {
-    Error(ERR_RETURN, "cannot create pipe - no sounds");
+    Error(ERR_WARN, "cannot create pipe - no sounds");
     sound_status = SOUND_OFF;
     return;
   }
 
   if ((sound_process_id = fork()) < 0)
   {       
-    Error(ERR_RETURN, "cannot create sound server process - no sounds");
+    Error(ERR_WARN, "cannot create sound server process - no sounds");
     sound_status = SOUND_OFF;
     return;
   }
@@ -230,23 +267,25 @@ void InitSoundServer()
 
 void InitJoystick()
 {
+  int joystick_nr = setup.input[0].joystick_nr;
+
   if (global_joystick_status == JOYSTICK_OFF)
     return;
 
 #ifndef MSDOS
-  if (access(joystick_device_name[setup.joystick_nr], R_OK) < 0)
+  if (access(joystick_device_name[joystick_nr], R_OK) < 0)
   {
-    Error(ERR_RETURN, "cannot access joystick device '%s'",
-         joystick_device_name[setup.joystick_nr]);
+    Error(ERR_WARN, "cannot access joystick device '%s'",
+         joystick_device_name[joystick_nr]);
     joystick_status = JOYSTICK_OFF;
     return;
   }
 
   if ((joystick_device =
-       open(joystick_device_name[setup.joystick_nr], O_RDONLY)) < 0)
+       open(joystick_device_name[joystick_nr], O_RDONLY)) < 0)
   {
-    Error(ERR_RETURN, "cannot open joystick device '%s'",
-         joystick_device_name[setup.joystick_nr]);
+    Error(ERR_WARN, "cannot open joystick device '%s'",
+         joystick_device_name[joystick_nr]);
     joystick_status = JOYSTICK_OFF;
     return;
   }