From 6130b0841429920015301a661e5133cfd1ed3cb3 Mon Sep 17 00:00:00 2001
From: whiteshark0 <whiteshark0@b956fd51-792f-4845-bead-9b4dfca2ff2c>
Date: Fri, 8 Jun 2007 18:43:34 +0000
Subject: Fixed: Up and Down now don't leave Playlist and Search Mode anymore

git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@250 b956fd51-792f-4845-bead-9b4dfca2ff2c
---
 Game/Code/Screens/UScreenSong.pas | 127 +++++++++++++++++---------------------
 1 file changed, 58 insertions(+), 69 deletions(-)

(limited to 'Game/Code')

diff --git a/Game/Code/Screens/UScreenSong.pas b/Game/Code/Screens/UScreenSong.pas
index 1a5b41b8..2ce06d7a 100644
--- a/Game/Code/Screens/UScreenSong.pas
+++ b/Game/Code/Screens/UScreenSong.pas
@@ -381,7 +381,6 @@ begin
               end
               else if (Mode = 1) then //PartyMode -> Show Menu
               begin
-                //Is this Right?
                 if (Ini.PartyPopup = 1) then
                   ScreenSongMenu.MenuShow(SM_Party_Main)
                 else
@@ -427,93 +426,83 @@ begin
 
       SDLK_DOWN:
         begin
-        if (Mode = 0) then
-        begin
-{          if Length(Songs.Song) > 0 then begin
-            Music.PlayChange;
-            InteractNext;
-            Music.Close;
-            if Music.Open(CatSongs.Song[Interaction].Path + CatSongs.Song[Interaction].Mp3) then Music.Play;
-            SetScroll;
-          end;}
-
-          //Cat Change Hack
-          if Ini.Tabs_at_startup = 1 then
+          if (Mode = 0) then
+          begin
+            //Only Change Cat when not in Playlist or Search Mode
+            if (CatSongs.CatNumShow > -2) then
             begin
-            I := Interaction;
-            if I <= 0 then I := 1;
-
-            while not catsongs.Song[I].Main do
+              //Cat Change Hack
+              if Ini.Tabs_at_startup = 1 then
               begin
-              Inc (I);
-              if (I > high(catsongs.Song)) then
-                I := low(catsongs.Song);
-              end;
+                I := Interaction;
+                if I <= 0 then I := 1;
 
-            Interaction := I;
+                while not catsongs.Song[I].Main do
+                begin
+                  Inc (I);
+                  if (I > high(catsongs.Song)) then
+                    I := low(catsongs.Song);
+                end;
 
-            //Show Cat in Top Left Mod
-            ShowCatTL (Interaction);
+                Interaction := I;
 
-            CatSongs.ClickCategoryButton(Interaction);
-            SelectNext;
-            FixSelected;
+                //Show Cat in Top Left Mod
+                ShowCatTL (Interaction);
 
-            //Play Music:
-            Music.PlayChange;
-            ChangeMusic;
+                CatSongs.ClickCategoryButton(Interaction);
+                SelectNext;
+                FixSelected;
 
-            end;
+                //Play Music:
+                Music.PlayChange;
+                ChangeMusic;
 
-          //
-          //Cat Change Hack End}
-        end;
+              end;
+
+            //
+            //Cat Change Hack End}
+            end;
+          end;
         end;
       SDLK_UP:
         begin
-        if (Mode = 0) then
-        begin
-{          if Length(Songs.Song) > 0 then begin
-            Music.PlayChange;
-            InteractPrev;
-            Music.Close;
-            if Music.Open(CatSongs.Song[Interaction].Path + CatSongs.Song[Interaction].Mp3) then Music.Play;
-            SetScroll;
-          end;}
-          //Cat Change Hack
-          if Ini.Tabs_at_startup = 1 then
+          if (Mode = 0) then
+          begin
+            //Only Change Cat when not in Playlist or Search Mode
+            if (CatSongs.CatNumShow > -2) then
             begin
-            I := Interaction;
-            I2 := 0;
-            if I <= 0 then I := 1;
-
-            while not catsongs.Song[I].Main or (I2 = 0) do
+              //Cat Change Hack
+              if Ini.Tabs_at_startup = 1 then
               begin
-              if catsongs.Song[I].Main then
-                Inc(I2);
-              Dec (I);
-              if (I < low(catsongs.Song)) then
-                I := high(catsongs.Song);
-              end;
+                I := Interaction;
+                I2 := 0;
+                if I <= 0 then I := 1;
 
-            Interaction := I;
+                while not catsongs.Song[I].Main or (I2 = 0) do
+                begin
+                  if catsongs.Song[I].Main then
+                    Inc(I2);
+                  Dec (I);
+                  if (I < low(catsongs.Song)) then
+                    I := high(catsongs.Song);
+                end;
 
-            //Show Cat in Top Left Mod
-            ShowCatTL (I);
+                Interaction := I;
 
-            CatSongs.ClickCategoryButton(I);
-            SelectNext;
-            FixSelected;
+                //Show Cat in Top Left Mod
+                ShowCatTL (I);
 
-            //Play Music:
-            Music.PlayChange;
-            ChangeMusic;
+                CatSongs.ClickCategoryButton(I);
+                SelectNext;
+                FixSelected;
 
+                //Play Music:
+                Music.PlayChange;
+                ChangeMusic;
+              end;
             end;
-
-          //
-          //Cat Change Hack End}
-        end;
+            //Cat Change Hack End}
+          end;
         end;
 
       SDLK_RIGHT:
-- 
cgit v1.2.3