rnd-19981017-1
[rocksndiamonds.git] / src / screens.c
index 86a1235d1549547c18ff94da1a756e22e5dd7862..d728c42a24a4ac7ec2eeabd1fb9415f9b01937ba 100644 (file)
@@ -23,6 +23,7 @@
 #include "tape.h"
 #include "joystick.h"
 #include "cartoons.h"
+#include "network.h"
 
 #ifdef MSDOS
 extern unsigned char get_ascii(KeySym);
@@ -204,7 +205,7 @@ void HandleMainMenu(int mx, int my, int dx, int dy, int button)
       {
        game_status = LEVELED;
        if (leveldir[leveldir_nr].readonly)
-         AreYouSure("This level is read only !",AYS_CONFIRM);
+         Request("This level is read only !",REQ_CONFIRM);
        DrawLevelEd();
       }
       else if (y==7)
@@ -214,11 +215,16 @@ void HandleMainMenu(int mx, int my, int dx, int dy, int button)
       }
       else if (y==8)
       {
-       if (autorecord_on)
+       if (setup.autorecord_on)
          TapeStartRecording();
 
-       game_status = PLAYING;
-       InitGame();
+       if (options.network)
+         SendToServer_StartPlaying();
+       else
+       {
+         game_status = PLAYING;
+         InitGame();
+       }
       }
       else if (y==9)
       {
@@ -228,7 +234,7 @@ void HandleMainMenu(int mx, int my, int dx, int dy, int button)
       else if (y==10)
       {
        SavePlayerInfo(PLAYER_LEVEL);
-        if (AreYouSure("Do you really want to quit ?",AYS_ASK|AYS_STAY_CLOSED))
+        if (Request("Do you really want to quit ?", REQ_ASK | REQ_STAY_CLOSED))
          game_status = EXITGAME;
       }
 
@@ -679,7 +685,9 @@ void CheckCheat()
 {
   int old_handicap = local_player->handicap;
 
+#if 0
   if (!strcmp(local_player->alias_name,"Artsoft"))
+#endif
     local_player->handicap = leveldir[leveldir_nr].levels-1;
 
   if (local_player->handicap != old_handicap)
@@ -1237,12 +1245,12 @@ void CalibrateJoystick()
   new_joystick_xmiddle = joy_ctrl.x;
   new_joystick_ymiddle = joy_ctrl.y;
 
-  joystick[joystick_nr].xleft = new_joystick_xleft;
-  joystick[joystick_nr].yupper = new_joystick_yupper;
-  joystick[joystick_nr].xright = new_joystick_xright;
-  joystick[joystick_nr].ylower = new_joystick_ylower;
-  joystick[joystick_nr].xmiddle = new_joystick_xmiddle;
-  joystick[joystick_nr].ymiddle = new_joystick_ymiddle;
+  joystick[setup.joystick_nr].xleft = new_joystick_xleft;
+  joystick[setup.joystick_nr].yupper = new_joystick_yupper;
+  joystick[setup.joystick_nr].xright = new_joystick_xright;
+  joystick[setup.joystick_nr].ylower = new_joystick_ylower;
+  joystick[setup.joystick_nr].xmiddle = new_joystick_xmiddle;
+  joystick[setup.joystick_nr].ymiddle = new_joystick_ymiddle;
 
   CheckJoystickData();
 
@@ -1298,7 +1306,7 @@ void CalibrateJoystick()
   DrawSetupScreen();
 }
 
-void HandleGameActions(int player_action)
+void HandleGameActions(byte player_action)
 {
   if (game_status != PLAYING)
     return;
@@ -1327,7 +1335,7 @@ void HandleVideoButtons(int mx, int my, int button)
       {
        LoadLevelTape(level_nr);
        if (TAPE_IS_EMPTY(tape))
-         AreYouSure("No tape for this level !",AYS_CONFIRM);
+         Request("No tape for this level !",REQ_CONFIRM);
       }
       else
       {
@@ -1337,18 +1345,27 @@ void HandleVideoButtons(int mx, int my, int button)
       }
       DrawCompleteVideoDisplay();
       break;
+
     case BUTTON_VIDEO_STOP:
       TapeStop();
       break;
+
     case BUTTON_VIDEO_PAUSE:
       TapeTogglePause();
       break;
+
     case BUTTON_VIDEO_REC:
       if (TAPE_IS_STOPPED(tape))
       {
        TapeStartRecording();
-       game_status = PLAYING;
-       InitGame();
+
+       if (options.network)
+         SendToServer_StartPlaying();
+       else
+       {
+         game_status = PLAYING;
+         InitGame();
+       }
       }
       else if (tape.pausing)
       {
@@ -1365,6 +1382,7 @@ void HandleVideoButtons(int mx, int my, int button)
          TapeTogglePause();
       }
       break;
+
     case BUTTON_VIDEO_PLAY:
       if (TAPE_IS_EMPTY(tape))
        break;
@@ -1372,6 +1390,7 @@ void HandleVideoButtons(int mx, int my, int button)
       if (TAPE_IS_STOPPED(tape))
       {
        TapeStartPlaying();
+
        game_status = PLAYING;
        InitGame();
       }
@@ -1397,6 +1416,7 @@ void HandleVideoButtons(int mx, int my, int button)
        }
       }
       break;
+
     default:
       break;
   }
@@ -1412,16 +1432,16 @@ void HandleSoundButtons(int mx, int my, int button)
   switch(CheckSoundButtons(mx,my,button))
   {
     case BUTTON_SOUND_MUSIC:
-      if (sound_music_on)
+      if (setup.sound_music_on)
       { 
-       sound_music_on = FALSE;
+       setup.sound_music_on = FALSE;
        local_player->setup &= ~SETUP_SOUND_MUSIC;
        FadeSound(background_loop[level_nr % num_bg_loops]);
        DrawSoundDisplay(BUTTON_SOUND_MUSIC_OFF);
       }
       else if (sound_loops_allowed)
       { 
-       sound_on = sound_music_on = TRUE;
+       setup.sound_on = setup.sound_music_on = TRUE;
        local_player->setup |= (SETUP_SOUND | SETUP_SOUND_MUSIC);
        PlaySoundLoop(background_loop[level_nr % num_bg_loops]);
        DrawSoundDisplay(BUTTON_SOUND_MUSIC_ON);
@@ -1429,38 +1449,41 @@ void HandleSoundButtons(int mx, int my, int button)
       else
        DrawSoundDisplay(BUTTON_SOUND_MUSIC_OFF);
       break;
+
     case BUTTON_SOUND_LOOPS:
-      if (sound_loops_on)
+      if (setup.sound_loops_on)
       { 
-       sound_loops_on = FALSE;
+       setup.sound_loops_on = FALSE;
        local_player->setup &= ~SETUP_SOUND_LOOPS;
        DrawSoundDisplay(BUTTON_SOUND_LOOPS_OFF);
       }
       else if (sound_loops_allowed)
       { 
-       sound_on = sound_loops_on = TRUE;
+       setup.sound_on = setup.sound_loops_on = TRUE;
        local_player->setup |= (SETUP_SOUND | SETUP_SOUND_LOOPS);
        DrawSoundDisplay(BUTTON_SOUND_LOOPS_ON);
       }
       else
        DrawSoundDisplay(BUTTON_SOUND_LOOPS_OFF);
       break;
+
     case BUTTON_SOUND_SIMPLE:
-      if (sound_simple_on)
+      if (setup.sound_simple_on)
       { 
-       sound_simple_on = FALSE;
+       setup.sound_simple_on = FALSE;
        local_player->setup &= ~SETUP_SOUND;
        DrawSoundDisplay(BUTTON_SOUND_SIMPLE_OFF);
       }
       else if (sound_status==SOUND_AVAILABLE)
       { 
-       sound_on = sound_simple_on = TRUE;
+       setup.sound_on = setup.sound_simple_on = TRUE;
        local_player->setup |= SETUP_SOUND;
        DrawSoundDisplay(BUTTON_SOUND_SIMPLE_ON);
       }
       else
        DrawSoundDisplay(BUTTON_SOUND_SIMPLE_OFF);
       break;
+
     default:
       break;
   }
@@ -1484,34 +1507,70 @@ void HandleGameButtons(int mx, int my, int button)
        break;
       }
 
-      if (AreYouSure("Do you really want to quit the game ?",
-                     AYS_ASK | AYS_STAY_CLOSED))
+      if (Request("Do you really want to quit the game ?",
+                 REQ_ASK | REQ_STAY_CLOSED))
       { 
-       game_status = MAINMENU;
-       DrawMainMenu();
+       if (options.network)
+         SendToServer_StopPlaying();
+       else
+       {
+         game_status = MAINMENU;
+         DrawMainMenu();
+       }
       }
       else
        OpenDoor(DOOR_OPEN_1 | DOOR_COPY_BACK);
       break;
+
     case BUTTON_GAME_PAUSE:
+      if (options.network)
+      {
+       if (tape.pausing)
+         SendToServer_ContinuePlaying();
+       else
+         SendToServer_PausePlaying();
+      }
+      else
+       TapeTogglePause();
+
+      /*
       if (tape.pausing)
       {
-       tape.pausing = FALSE;
-       DrawVideoDisplay(VIDEO_STATE_PAUSE_OFF,0);
+       if (options.network)
+         SendToServer_ContinuePlaying();
+       else
+       {
+         tape.pausing = FALSE;
+         DrawVideoDisplay(VIDEO_STATE_PAUSE_OFF,0);
+       }
       }
       else
       {
-       tape.pausing = TRUE;
-       DrawVideoDisplay(VIDEO_STATE_PAUSE_ON,0);
+       if (options.network)
+         SendToServer_PausePlaying();
+       else
+       {
+         tape.pausing = TRUE;
+         DrawVideoDisplay(VIDEO_STATE_PAUSE_ON,0);
+       }
       }
+      */
+
       break;
+
     case BUTTON_GAME_PLAY:
       if (tape.pausing)
       {
-       tape.pausing = FALSE;
-       DrawVideoDisplay(VIDEO_STATE_PAUSE_OFF,0);
+       if (options.network)
+         SendToServer_ContinuePlaying();
+       else
+       {
+         tape.pausing = FALSE;
+         DrawVideoDisplay(VIDEO_STATE_PAUSE_OFF,0);
+       }
       }
       break;
+
     default:
       break;
   }