rnd-20060430-4-src
[rocksndiamonds.git] / src / events.c
index 49d3b1a0eca85bf8f8ba41602d0d06cfdcb99f65..134a5e73f536a54d9ac7288c7502df7a69a62ce5 100644 (file)
@@ -171,7 +171,9 @@ void EventLoop(void)
        has its own synchronization and is CPU friendly, too */
 
     if (game_status == GAME_MODE_PLAYING)
+    {
       HandleGameActions();
+    }
     else
     {
       SyncDisplay();
@@ -418,6 +420,10 @@ void HandleButton(int mx, int my, int button)
 
   switch(game_status)
   {
+    case GAME_MODE_TITLE:
+      HandleTitleScreen(mx,my, 0,0, button);
+      break;
+
     case GAME_MODE_MAIN:
       HandleMainMenu(mx,my, 0,0, button);
       break;
@@ -466,7 +472,7 @@ static boolean is_string_suffix(char *string, char *suffix)
   if (suffix_len > string_len)
     return FALSE;
 
-  return (strcmp(&string[string_len - suffix_len], suffix) == 0);
+  return (strEqual(&string[string_len - suffix_len], suffix));
 }
 
 #define MAX_CHEAT_INPUT_LEN    32
@@ -695,7 +701,7 @@ void HandleKey(Key key, int key_status)
       TapeTogglePause(TAPE_TOGGLE_MANUAL);
   }
 
-  if (game_status == GAME_MODE_PLAYING)
+  if (game_status == GAME_MODE_PLAYING && !network_playing)
   {
     int centered_player_nr_next = -999;
 
@@ -733,6 +739,7 @@ void HandleKey(Key key, int key_status)
       HandleTypeName(0, key);
       break;
 
+    case GAME_MODE_TITLE:
     case GAME_MODE_MAIN:
     case GAME_MODE_LEVELS:
     case GAME_MODE_SETUP:
@@ -746,7 +753,9 @@ void HandleKey(Key key, int key_status)
        case KSYM_space:
 #endif
        case KSYM_Return:
-         if (game_status == GAME_MODE_MAIN)
+         if (game_status == GAME_MODE_TITLE)
+           HandleTitleScreen(0,0, 0,0, MB_MENU_CHOICE);
+         else if (game_status == GAME_MODE_MAIN)
            HandleMainMenu(0,0, 0,0, MB_MENU_CHOICE);
           else if (game_status == GAME_MODE_LEVELS)
             HandleChooseLevel(0,0, 0,0, MB_MENU_CHOICE);
@@ -757,7 +766,9 @@ void HandleKey(Key key, int key_status)
          break;
 
        case KSYM_Escape:
-          if (game_status == GAME_MODE_LEVELS)
+         if (game_status == GAME_MODE_TITLE)
+           HandleTitleScreen(0,0, 0,0, MB_MENU_LEAVE);
+          else if (game_status == GAME_MODE_LEVELS)
             HandleChooseLevel(0,0, 0,0, MB_MENU_LEAVE);
          else if (game_status == GAME_MODE_SETUP)
            HandleSetupScreen(0,0, 0,0, MB_MENU_LEAVE);
@@ -990,6 +1001,7 @@ void HandleJoystick()
 
   switch(game_status)
   {
+    case GAME_MODE_TITLE:
     case GAME_MODE_MAIN:
     case GAME_MODE_LEVELS:
     case GAME_MODE_SETUP:
@@ -1001,7 +1013,9 @@ void HandleJoystick()
          !DelayReached(&joystickmove_delay, GADGET_FRAME_DELAY))
        newbutton = dx = dy = 0;
 
-      if (game_status == GAME_MODE_MAIN)
+      if (game_status == GAME_MODE_TITLE)
+       HandleTitleScreen(0,0,dx,dy,newbutton ? MB_MENU_CHOICE : MB_MENU_MARK);
+      else if (game_status == GAME_MODE_MAIN)
        HandleMainMenu(0,0,dx,dy,newbutton ? MB_MENU_CHOICE : MB_MENU_MARK);
       else if (game_status == GAME_MODE_LEVELS)
         HandleChooseLevel(0,0,dx,dy,newbutton ? MB_MENU_CHOICE : MB_MENU_MARK);