diff --git a/Docs/Luadoc/LuaDocumentation.xml b/Docs/Luadoc/LuaDocumentation.xml
index bd725e1eea..61391fdbfd 100644
--- a/Docs/Luadoc/LuaDocumentation.xml
+++ b/Docs/Luadoc/LuaDocumentation.xml
@@ -5655,10 +5655,10 @@ local args = {
Returns the extra stage info (Song, Steps) for the specified Style s. If b2ndExtra is true, it will use the second Extra Stage data instead of the first.
- Returns the number of courses loaded via Additional folders.
+ [Deprecated] Always returns 0
- Returns the number of songs loaded via Additional folders.
+ [Deprecated] Always returns 0
Returns the number of course groups.
@@ -5733,10 +5733,10 @@ local args = {
Returns the preferred sort section name for the specified Song.
- Returns true if the specified course was loaded from AdditionalCourses.
+ [Deprecated] Always returns false
- Returns true if the specified song was loaded from AdditionalSongs.
+ [Deprecated] Always returns false
@@ -6129,7 +6129,7 @@ local spr = Def.Sprite{
Returns true if this style locks the difficulty for both players.
- Deprecated. Always returns false.
+ [Deprecated] Always returns false.
diff --git a/Themes/_fallback/Languages/de.ini b/Themes/_fallback/Languages/de.ini
index 49e39ae524..737a3fdc26 100644
--- a/Themes/_fallback/Languages/de.ini
+++ b/Themes/_fallback/Languages/de.ini
@@ -414,7 +414,6 @@ Fail=Fail
FailOffForFirstStageEasy=If enabled, the first stage will be considered Fail Off on Easy.
FailOffInBeginner=If enabled, beginner will always be considered Fail Off.
FastLoad=If enabled, don't check songs for changes on load.
-FastLoadAdditionalSongs=If enabled, don't check songs for changes to Additional Songs on load.
FastNoteRendering=If enabled, the z buffer is not cleared after every note. This causes 3d noteskins to collide, but substantially improves performance in gameplay.
Fill Machine Stats=
Game=Ändere den momentanen Spieltyp mit dieser Option.
@@ -1073,7 +1072,6 @@ Exit=Verlassen
Fail=Fehlschlag
Fakes=Fälschungen
FastLoad=Fast\nLoad
-FastLoadAdditionalSongs=Fast Load\nAdditional Songs
File1 Global BGAnimation=File1 Global BGAnimation
File1 Global Movie=File1 Global Movie
File1 Global Movie (Group + Genre)=File1 Global Movie (Group + Genre)
diff --git a/Themes/_fallback/Languages/en.ini b/Themes/_fallback/Languages/en.ini
index 28e05ce007..2b7acec0b1 100644
--- a/Themes/_fallback/Languages/en.ini
+++ b/Themes/_fallback/Languages/en.ini
@@ -421,7 +421,6 @@ Fail=Fail
FailOffForFirstStageEasy=If enabled, the first stage will be considered Fail Off on Easy.
FailOffInBeginner=If enabled, beginner will always be considered Fail Off.
FastLoad=If enabled, don't check songs for changes on load.
-FastLoadAdditionalSongs=If enabled, don't check songs for changes to Additional Songs on load.
FastNoteRendering=If enabled, the z buffer is not cleared after every note. This causes 3d noteskins to collide, but substantially improves performance in gameplay.
Fill Machine Stats=
Game=Change the current game type with this option.
@@ -1101,7 +1100,6 @@ Exit=Exit
Fail=Fail
Fakes=Fakes
FastLoad=Fast\nLoad
-FastLoadAdditionalSongs=Fast Load\nAdditional Songs
File1 Global BGAnimation=File1 Global BGAnimation
File1 Global Movie=File1 Global Movie
File1 Global Movie (Group + Genre)=File1 Global Movie (Group + Genre)
diff --git a/Themes/_fallback/Languages/es.ini b/Themes/_fallback/Languages/es.ini
index 21d79f6e72..1821054577 100644
--- a/Themes/_fallback/Languages/es.ini
+++ b/Themes/_fallback/Languages/es.ini
@@ -542,7 +542,6 @@ Disqualification=Si se apaga, los jugadores no se descalifican de la puntuación
EditRecordModeLeadIn=Ajusta el tiempo de entrada antes de iniciar una grabación.
FailOffForFirstStageEasy=Si se activa, la primera fase desactiva la pantalla de Fallo en Fácil.
FailOffInBeginner=Si se activa, el modo principiante siempre desactiva la pantalla de Fallo.
-FastLoadAdditionalSongs=Si se activa, las canciones adicionales no se comprobarán al inicio.
FastNoteRendering=Si se activa, el búfer Z no se libera tras cada flecha. De esta forma, los diseños 3D colisionan, pero mejora el rendimiento del juego.
InputDebounceTime=Tiempo que necesita el panel para pulsarse. Utilízalo para tratar los pasos falsos que ocurren poco después de un paso real.
Invalid=Definición de fila no válida.
@@ -1259,7 +1258,6 @@ Disqualification=Descalificación
EditRecordModeLeadIn=Entrada récord
FailOffForFirstStageEasy=Fallo desactivado en fase 1 fácil
FailOffInBeginner=Fallo apagado principiante
-FastLoadAdditionalSongs=Carga rápida\nCanciones adicionales
FastNoteRendering=Renderizado rápido
InputDebounceTime=Tiempo interruptor
Invalid=Inválido
diff --git a/Themes/_fallback/Languages/fr.ini b/Themes/_fallback/Languages/fr.ini
index 8f293d688d..b49a78a408 100644
--- a/Themes/_fallback/Languages/fr.ini
+++ b/Themes/_fallback/Languages/fr.ini
@@ -411,7 +411,6 @@ Fail=Perdre
FailOffForFirstStageEasy=Si activé, le premier stage en mode Facile ne pourra pas être Échoué.
FailOffInBeginner=Si activé, les chansons en mode Débutant ne vont pas échouer.
FastLoad=Si activé, ne va pas vérifier pendant le chargement si les chansons ont changé.
-FastLoadAdditionalSongs=Si activé, les changements de chansons dans Additional Songs ne seront pas vérifiées lors du chargement.
FastNoteRendering=If enabled, the z buffer is not cleared after every note. This causes 3d noteskins to collide, but substantially improves performance in gameplay.
Fill Machine Stats=
Game=Change the current game type with this option.
@@ -1198,7 +1197,6 @@ Edit time signature=Edit time signature
EffectsReceptor=Effets de Cible
EffectsArrow=Effets des Flèches
Entry %d=Entrée %d
-FastLoadAdditionalSongs=Charge Rapide\n des Chansons Additionnelles
File1 Global BGAnimation=File1 Global BGAnimation
File1 Global Movie=File1 Global Movie
File1 Global Movie (Group + Genre)=File1 Global Movie (Group + Genre)
diff --git a/Themes/_fallback/Languages/ja.ini b/Themes/_fallback/Languages/ja.ini
index 88dfad34be..3bda2aa74d 100644
--- a/Themes/_fallback/Languages/ja.ini
+++ b/Themes/_fallback/Languages/ja.ini
@@ -571,7 +571,6 @@ CourseSortOrder=ミュージックホイールでのコースの並び順を設
CreateNew=
Create New Course=新しいコースを作成します。
Fail=Fail
-FastLoadAdditionalSongs=Onにすると、起動時にAdditional Songsフォルダとして\n指定したフォルダのチェックを簡略化します。
Fill Machine Stats=
Game=ゲームタイプを変更します。
Insert Credit=Insert Credit(s)
@@ -1145,7 +1144,6 @@ Exit=Exit
Fail=Fail
Fakes=Fakes
FastLoad=Fast\nLoad
-FastLoadAdditionalSongs=Fast Load\nAdditional Songs
File1 Global BGAnimation=File1 Global BGAnimation
File1 Global Movie=File1 Global Movie
File1 Global Movie (Group + Genre)=File1 Global Movie (Group + Genre)
diff --git a/Themes/_fallback/Languages/nl.ini b/Themes/_fallback/Languages/nl.ini
index 25f3c078a2..171fd39a2d 100644
--- a/Themes/_fallback/Languages/nl.ini
+++ b/Themes/_fallback/Languages/nl.ini
@@ -413,7 +413,6 @@ Fail=Faal
FailOffForFirstStageEasy=Als dit aan staat kan er niet gefaald worden in de eerste etappe, als op Makkelijk wordt gespeeld.
FailOffInBeginner=Als dit aan staat kan er niet gefaald worden op Beginner.
FastLoad=Als dit aan staat worden nummers niet op wijzigingen gecontroleerd.
-FastLoadAdditionalSongs=Als dit aan staat wordt er niet gecontroleerd op veranderingen aan 'Additional Songs' nummers bij het laden.
FastNoteRendering=Als dit aan staat wordt de z-buffer niet geleegd na elke noot. Dit zorgt voor collisies bij 3d noteskins, maar verbeterd de game-prestaties aanzienlijk.
Fill Machine Stats=
Game=Verander het huidige speltype met deze optie.
@@ -1051,7 +1050,6 @@ FailOffForFirstStageEasy=Falen Uit Eerste Easy
FailOffInBeginner=Falen Uit Beginner
Fakes=Nep-noten
FastLoad=Snel\nLaden
-FastLoadAdditionalSongs=Snel Laden\nAdditional Songs
FastNoteRendering=Snelle noot-rendering
File1 Global BGAnimation=Bestand1 Globale BGAnimatie
File1 Global Movie (Group + Genre)=Bestand1 Globale Film (Groep + Genre)
diff --git a/Themes/_fallback/Languages/pl.ini b/Themes/_fallback/Languages/pl.ini
index 0903860618..a180ecd6d0 100644
--- a/Themes/_fallback/Languages/pl.ini
+++ b/Themes/_fallback/Languages/pl.ini
@@ -409,7 +409,6 @@ Fail=Porażka
FailOffForFirstStageEasy=Jeśli opcja jest włączona, w pierwszym etapie będą rozpatrywane Fail Off na Łatwym.
FailOffInBeginner=Jeśli opcja jest włączona, początkujący będą zawsze rozważane Fail Off.
FastLoad=Włączona opcja spowoduje przyśpieszenie wczytywania piosenek podczas startu programu, po przez pominięcie sprawdzania ew. zmian w plikach piosenki. Należy na to zwrócić uwagę w trakcie tworzenia nowych piosenek.
-FastLoadAdditionalSongs=Włączona opcja spowoduje przyśpieszenie wczytywania piosenek z dodatkowych folderów podczas startu programu, po przez pominięcie sprawdzania ew. zmian w plikach piosenki. Należy na to zwrócić uwagę w trakcie tworzenia nowych piosenek.
FastNoteRendering=Jeśli opcja jest włączona, bufor nie jest czyszczony po każdej nucie. Powoduje to zderzanie 3d noteskins, ale znacznie poprawia wydajność w rozgrywce.
Fill Machine Stats=
Game=Zmiana aktualnego trybu gry.
@@ -1049,7 +1048,6 @@ FailOffForFirstStageEasy=Pierwszy Fail Wył. na Łatwym
FailOffInBeginner=Fail Wył. dla Początkujących
Fakes=Podróby
FastLoad=Szybkie\nŁadowanie
-FastLoadAdditionalSongs=Szybkie Ładowanie\nDodatkowych Piosenek
FastNoteRendering=Rendering Szybkich Wskazówek
File1 Global BGAnimation=Globalne Animacje Tła Plik1
File1 Global Movie=Globalny Film Plik1
diff --git a/Themes/_fallback/Languages/sk.ini b/Themes/_fallback/Languages/sk.ini
index 701e5a0d8c..48356a647d 100644
--- a/Themes/_fallback/Languages/sk.ini
+++ b/Themes/_fallback/Languages/sk.ini
@@ -416,7 +416,6 @@ Fail=Fail
FailOffForFirstStageEasy=Ak je zapnuté, prvá úroveň na obtiažnosti Ľahká bude mať deaktivované faily.
FailOffInBeginner=Ak je zapnuté, začiatočník bude mať vždy deaktivované faily.
FastLoad=Ak je zapnuté, pri nahrávaní nebudú sledované zmeny v skladbách.
-FastLoadAdditionalSongs=Ak je zapnuté, pri nahrávaní nebudú sledované zmeny v dodatočných skladbách.
FastNoteRendering=Ak je zapnuté, z-buffer nebude po každej note vyčistený. To spôsobí kolíziu nôt s 3D vzhľadom, ale výrazne zvýši výkon počas hry.
Fill Machine Stats=
Game=Pomocou tejto voľby zmeníte aktuálny typ hry.
@@ -1079,7 +1078,6 @@ Exit=Ukončiť
Fail=Fail
Fakes=Klamy
FastLoad=Rýchle\nnahrávanie
-FastLoadAdditionalSongs=Rýchle nahrávanie\npre dodatočné skladby
File1 Global BGAnimation=Globálna animácia pozadia Súbor1
File1 Global Movie=Globálne video Súbor1
File1 Global Movie (Group + Genre)=Globálne video Súbor1 (Skupina + Žáner)
diff --git a/Themes/_fallback/Languages/zh-Hant.ini b/Themes/_fallback/Languages/zh-Hant.ini
index 3e2b83195d..df1d78dae7 100644
--- a/Themes/_fallback/Languages/zh-Hant.ini
+++ b/Themes/_fallback/Languages/zh-Hant.ini
@@ -416,7 +416,6 @@ Fail=當你失敗時的系統行為設定.
FailOffForFirstStageEasy=是否允許第一關簡單難度關卡不失敗.
FailOffInBeginner=是否允許初心者難度關卡不失敗.
FastLoad=是否不進行檢查歌曲變動直接進行讀取歌曲.
-FastLoadAdditionalSongs=是否不進行檢查追加歌曲變動直接進行讀取歌曲.
FastNoteRendering=若開啟,每一個箭頭的透視Z緩衝將不會清除,這會導致3D箭頭樣式發生不正常顯示,但大幅提高了遊戲性能.
Fill Machine Stats=
Game=改變目前的遊戲類型.
@@ -1076,7 +1075,6 @@ Exit=離開
Fail=失敗方式
Fakes=假箭頭
FastLoad=快速讀取
-FastLoadAdditionalSongs=快速讀取\n追加歌曲
File1 Global BGAnimation=檔案1歌曲泛用BGA
File1 Global Movie=檔案1歌曲泛用動畫
File1 Global Movie (Group + Genre)=檔案1歌曲泛用動畫 (專輯 + 類型)
diff --git a/Themes/_fallback/Scripts/02 Branches.lua b/Themes/_fallback/Scripts/02 Branches.lua
index 7690019e22..4417369d09 100644
--- a/Themes/_fallback/Scripts/02 Branches.lua
+++ b/Themes/_fallback/Scripts/02 Branches.lua
@@ -70,11 +70,8 @@ Branch = {
end
end,
StartGame = function()
- -- Check to see if there are 0 songs installed. Also make sure to check
- -- that the additional song count is also 0, because there is
- -- a possibility someone will use their existing StepMania simfile
- -- collection with sm-ssc via AdditionalFolders/AdditionalSongFolders.
- if SONGMAN:GetNumSongs() == 0 and SONGMAN:GetNumAdditionalSongs() == 0 then
+ -- Check to see if there are 0 songs installed.
+ if SONGMAN:GetNumSongs() == 0 then
return "ScreenHowToInstallSongs"
end
if PROFILEMAN:GetNumLocalProfiles() >= 2 then
@@ -93,7 +90,7 @@ Branch = {
end,
OptionsEdit = function()
-- Similar to above, don't let anyone in here with 0 songs.
- if SONGMAN:GetNumSongs() == 0 and SONGMAN:GetNumAdditionalSongs() == 0 then
+ if SONGMAN:GetNumSongs() == 0 then
return "ScreenHowToInstallSongs"
end
return "ScreenOptionsEdit"
diff --git a/Themes/_fallback/metrics.ini b/Themes/_fallback/metrics.ini
index 60c7ec666a..6e1cc51041 100644
--- a/Themes/_fallback/metrics.ini
+++ b/Themes/_fallback/metrics.ini
@@ -154,8 +154,6 @@ UnlockColor=color("1,0.5,0,1")
# Unlock harder/different steps based on passing easier steps.
AutoLockChallengeSteps=false
AutoLockEditSteps=false
-# determine if songs loaded via AdditionalSongs should be locked.
-SongsNotAdditional=true
UnlockNames=""
# useful commands:
@@ -3167,7 +3165,6 @@ Line16="conf,UseUnlockSystem"
Line28="conf,AutogenSteps"
Line29="conf,AutogenGroupCourses"
Line30="conf,FastLoad"
-Line31="conf,FastLoadAdditionalSongs"
Line32="conf,AllowSongDeletion"
LineECPT="conf,EditClearPromptThreshold"
diff --git a/Themes/default/BGAnimations/ScreenTitleMenu decorations.lua b/Themes/default/BGAnimations/ScreenTitleMenu decorations.lua
index 6f52a7a050..87f0e018c4 100644
--- a/Themes/default/BGAnimations/ScreenTitleMenu decorations.lua
+++ b/Themes/default/BGAnimations/ScreenTitleMenu decorations.lua
@@ -23,13 +23,11 @@ t[#t+1] = StandardDecorationFromFileOptional("SystemDirection","SystemDirection"
t[#t+1] = StandardDecorationFromFileOptional("NumSongs","NumSongs") .. {
SetCommand=function(self)
- local InstalledSongs, AdditionalSongs, InstalledCourses, AdditionalCourses, Groups, Unlocked = 0;
+ local InstalledSongs, InstalledCourses, Groups, Unlocked = 0;
if SONGMAN:GetRandomSong() then
- InstalledSongs, AdditionalSongs, InstalledCourses, AdditionalCourses, Groups, Unlocked =
+ InstalledSongs, InstalledCourses, Groups, Unlocked =
SONGMAN:GetNumSongs(),
- SONGMAN:GetNumAdditionalSongs(),
SONGMAN:GetNumCourses(),
- SONGMAN:GetNumAdditionalCourses(),
SONGMAN:GetNumSongGroups(),
SONGMAN:GetNumUnlockedSongs();
else
@@ -37,7 +35,6 @@ t[#t+1] = StandardDecorationFromFileOptional("NumSongs","NumSongs") .. {
end
self:settextf(THEME:GetString("ScreenTitleMenu","%i Songs (%i Groups), %i Courses"), InstalledSongs, Groups, InstalledCourses);
--- self:settextf("%i (+%i) Songs (%i Groups), %i (+%i) Courses", InstalledSongs, AdditionalSongs, Groups, InstalledCourses, AdditionalCourses);
end;
};
diff --git a/Themes/default/Scripts/02 BranchOverrides.lua b/Themes/default/Scripts/02 BranchOverrides.lua
index cc85a7f3ab..fd7d1aec2d 100644
--- a/Themes/default/Scripts/02 BranchOverrides.lua
+++ b/Themes/default/Scripts/02 BranchOverrides.lua
@@ -1,6 +1,6 @@
Branch.OptionsEdit = function()
- if SONGMAN:GetNumSongs() == 0 and SONGMAN:GetNumAdditionalSongs() == 0 then
+ if SONGMAN:GetNumSongs() == 0 then
return "ScreenHowToInstallSongs"
end
return "ScreenEditMenu"
-end
\ No newline at end of file
+end
diff --git a/Themes/legacy/BGAnimations/ScreenTitleMenu decorations.lua b/Themes/legacy/BGAnimations/ScreenTitleMenu decorations.lua
index e942af2272..3430153ab1 100644
--- a/Themes/legacy/BGAnimations/ScreenTitleMenu decorations.lua
+++ b/Themes/legacy/BGAnimations/ScreenTitleMenu decorations.lua
@@ -13,13 +13,11 @@ t[#t+1] = StandardDecorationFromFileOptional("SystemDirection","SystemDirection"
t[#t+1] = StandardDecorationFromFileOptional("NumSongs","NumSongs") .. {
SetCommand=function(self)
- local InstalledSongs, AdditionalSongs, InstalledCourses, AdditionalCourses, Groups, Unlocked = 0;
+ local InstalledSongs, InstalledCourses, Groups, Unlocked = 0;
if SONGMAN:GetRandomSong() then
- InstalledSongs, AdditionalSongs, InstalledCourses, AdditionalCourses, Groups, Unlocked =
+ InstalledSongs, InstalledCourses, Groups, Unlocked =
SONGMAN:GetNumSongs(),
- SONGMAN:GetNumAdditionalSongs(),
SONGMAN:GetNumCourses(),
- SONGMAN:GetNumAdditionalCourses(),
SONGMAN:GetNumSongGroups(),
SONGMAN:GetNumUnlockedSongs();
else
@@ -27,7 +25,6 @@ t[#t+1] = StandardDecorationFromFileOptional("NumSongs","NumSongs") .. {
end
self:settextf(THEME:GetString("ScreenTitleMenu","%i Songs (%i Groups), %i Courses"), InstalledSongs, Groups, InstalledCourses);
--- self:settextf("%i (+%i) Songs (%i Groups), %i (+%i) Courses", InstalledSongs, AdditionalSongs, Groups, InstalledCourses, AdditionalCourses);
end;
};
diff --git a/src/CourseUtil.cpp b/src/CourseUtil.cpp
index 043f6894b0..cb566fa54a 100644
--- a/src/CourseUtil.cpp
+++ b/src/CourseUtil.cpp
@@ -593,6 +593,10 @@ void CourseID::LoadFromNode( const XNode* pNode )
if( !pNode->GetAttrValue("Path", sPath) )
pNode->GetAttrValue( "FullTitle", sFullTitle );
m_Cache.Unset();
+
+ // HACK for backwards compatibility: /AdditionalCourses has been merged into /Courses
+ if (sPath.Left(18) == "AdditionalCourses/")
+ sPath.replace(0, 18, "Courses/");
}
RString CourseID::ToString() const
diff --git a/src/PrefsManager.cpp b/src/PrefsManager.cpp
index 9cb9359ad5..f6566822f2 100644
--- a/src/PrefsManager.cpp
+++ b/src/PrefsManager.cpp
@@ -182,7 +182,6 @@ PrefsManager::PrefsManager() :
m_bDelayedModelDelete ( "DelayedModelDelete", false ),
m_ImageCache ( "ImageCache", IMGCACHE_LOW_RES_PRELOAD ),
m_bFastLoad ( "FastLoad", true ),
- m_bFastLoadAdditionalSongs ( "FastLoadAdditionalSongs", true ),
m_NeverCacheList ( "NeverCacheList", ""),
m_bOnlyDedicatedMenuButtons ( "OnlyDedicatedMenuButtons", false ),
diff --git a/src/PrefsManager.h b/src/PrefsManager.h
index 11f1509f6d..ce310af60e 100644
--- a/src/PrefsManager.h
+++ b/src/PrefsManager.h
@@ -174,7 +174,6 @@ public:
Preference m_bDelayedModelDelete;
Preference m_ImageCache;
Preference m_bFastLoad;
- Preference m_bFastLoadAdditionalSongs;
Preference m_NeverCacheList;
Preference m_bOnlyDedicatedMenuButtons;
diff --git a/src/ScreenOptionsMasterPrefs.cpp b/src/ScreenOptionsMasterPrefs.cpp
index e9bd794607..9a1d69eb07 100644
--- a/src/ScreenOptionsMasterPrefs.cpp
+++ b/src/ScreenOptionsMasterPrefs.cpp
@@ -780,7 +780,6 @@ static void InitializeConfOptions()
ADD( ConfOption( "AutogenGroupCourses", MovePref, "Off","On" ) );
ADD( ConfOption( "FastLoad", MovePref, "Off","On" ) );
- ADD( ConfOption( "FastLoadAdditionalSongs", MovePref, "Off","On" ) );
{
ConfOption c("EditRecordModeLeadIn", EditRecordModeLeadIn);
for(int i= 0; i < 32; ++i)
diff --git a/src/SongManager.cpp b/src/SongManager.cpp
index 7987ddc9ef..6513f97cd4 100644
--- a/src/SongManager.cpp
+++ b/src/SongManager.cpp
@@ -39,12 +39,9 @@
SongManager* SONGMAN = nullptr; // global and accessible from anywhere in our program
-const RString ADDITIONAL_SONGS_DIR = "/AdditionalSongs/";
-const RString ADDITIONAL_COURSES_DIR = "/AdditionalCourses/";
-const RString EDIT_SUBDIR = "Edits/";
-
/** @brief The file that contains various random attacks. */
const RString ATTACK_FILE = "/Data/RandomAttacks.txt";
+const RString EDIT_SUBDIR = "Edits/";
static const ThemeMetric EXTRA_COLOR ( "SongManager", "ExtraColor" );
static const ThemeMetric EXTRA_COLOR_METER ( "SongManager", "ExtraColorMeter" );
@@ -116,9 +113,7 @@ static LocalizedString SANITY_CHECKING_GROUPS("SongManager", "Sanity checking gr
void SongManager::Reload( bool bAllowFastLoad, LoadingWindow *ld )
{
FILEMAN->FlushDirCache( SpecialFiles::SONGS_DIR );
- FILEMAN->FlushDirCache( ADDITIONAL_SONGS_DIR );
FILEMAN->FlushDirCache( SpecialFiles::COURSES_DIR );
- FILEMAN->FlushDirCache( ADDITIONAL_COURSES_DIR );
FILEMAN->FlushDirCache( EDIT_SUBDIR );
if( ld )
@@ -161,11 +156,6 @@ void SongManager::InitSongsFromDisk( LoadingWindow *ld )
SONGINDEX->delay_save_cache = true;
IMAGECACHE->delay_save_cache = true;
LoadStepManiaSongDir( SpecialFiles::SONGS_DIR, ld );
-
- const bool bOldVal = PREFSMAN->m_bFastLoad;
- PREFSMAN->m_bFastLoad.Set( PREFSMAN->m_bFastLoadAdditionalSongs );
- LoadStepManiaSongDir( ADDITIONAL_SONGS_DIR, ld );
- PREFSMAN->m_bFastLoad.Set( bOldVal );
LoadEnabledSongsFromPref();
SONGINDEX->SaveCacheIndex();
SONGINDEX->delay_save_cache= false;
@@ -799,11 +789,6 @@ int SongManager::GetNumSelectableAndUnlockedSongs() const
return std::count_if(m_pSongs.begin(), m_pSongs.end(), [](Song const *s) { return UNLOCKMAN->SongIsLocked(s) & ~(LOCKED_LOCK | LOCKED_SELECTABLE); });
}
-int SongManager::GetNumAdditionalSongs() const
-{
- return std::count_if(m_pSongs.begin(), m_pSongs.end(), [&](Song const *s) { return WasLoadedFromAdditionalSongs(s); });
-}
-
int SongManager::GetNumSongGroups() const
{
return m_sSongGroupNames.size();
@@ -814,11 +799,6 @@ int SongManager::GetNumCourses() const
return m_pCourses.size();
}
-int SongManager::GetNumAdditionalCourses() const
-{
- return std::count_if(m_pCourses.begin(), m_pCourses.end(), [&](Course const *c) { return WasLoadedFromAdditionalCourses(c); });
-}
-
int SongManager::GetNumCourseGroups() const
{
return m_mapCourseGroupToInfo.size();
@@ -841,18 +821,11 @@ void SongManager::InitCoursesFromDisk( LoadingWindow *ld )
RageTimer loading_window_last_update_time;
loading_window_last_update_time.Touch();
- vector vsCourseDirs;
- vsCourseDirs.push_back( SpecialFiles::COURSES_DIR );
- vsCourseDirs.push_back( ADDITIONAL_COURSES_DIR );
-
vector vsCourseGroupNames;
- for (RString const &sDir : vsCourseDirs)
- {
- // Find all group directories in Courses dir
- GetDirListing( sDir + "*", vsCourseGroupNames, true, true );
- StripCvsAndSvn( vsCourseGroupNames );
- StripMacResourceForks( vsCourseGroupNames );
- }
+ // Find all group directories in Courses dir
+ GetDirListing( SpecialFiles::COURSES_DIR + "*", vsCourseGroupNames, true, true );
+ StripCvsAndSvn( vsCourseGroupNames );
+ StripMacResourceForks( vsCourseGroupNames );
// Search for courses both in COURSES_DIR and in subdirectories
vsCourseGroupNames.push_back( SpecialFiles::COURSES_DIR );
@@ -1185,18 +1158,6 @@ void SongManager::DeleteSteps( Steps *pSteps )
pSteps->m_pSong->DeleteSteps( pSteps );
}
-bool SongManager::WasLoadedFromAdditionalSongs( const Song *pSong ) const
-{
- RString sDir = pSong->GetSongDir();
- return BeginsWith( sDir, ADDITIONAL_SONGS_DIR );
-}
-
-bool SongManager::WasLoadedFromAdditionalCourses( const Course *pCourse ) const
-{
- RString sDir = pCourse->m_sPath;
- return BeginsWith( sDir, ADDITIONAL_COURSES_DIR );
-}
-
void SongManager::GetAllCourses( vector &AddTo, bool bIncludeAutogen ) const
{
for( unsigned i=0; iGetNumLockedSongs() ); return 1; }
static int GetNumUnlockedSongs( T* p, lua_State *L ) { lua_pushnumber( L, p->GetNumUnlockedSongs() ); return 1; }
static int GetNumSelectableAndUnlockedSongs( T* p, lua_State *L ) { lua_pushnumber( L, p->GetNumSelectableAndUnlockedSongs() ); return 1; }
- static int GetNumAdditionalSongs( T* p, lua_State *L ) { lua_pushnumber( L, p->GetNumAdditionalSongs() ); return 1; }
+ static int GetNumAdditionalSongs( T* p, lua_State *L ) { lua_pushnumber( L, 0 ); return 1; } // deprecated
static int GetNumSongGroups( T* p, lua_State *L ) { lua_pushnumber( L, p->GetNumSongGroups() ); return 1; }
static int GetNumCourses( T* p, lua_State *L ) { lua_pushnumber( L, p->GetNumCourses() ); return 1; }
- static int GetNumAdditionalCourses( T* p, lua_State *L ){ lua_pushnumber( L, p->GetNumAdditionalCourses() ); return 1; }
+ static int GetNumAdditionalCourses( T* p, lua_State *L ){ lua_pushnumber( L, 0 ); return 1; } // deprecated
static int GetNumCourseGroups( T* p, lua_State *L ) { lua_pushnumber( L, p->GetNumCourseGroups() ); return 1; }
+
/* Note: this could now be implemented as Luna::GetSong */
static int GetSongFromSteps( T* p, lua_State *L )
{
@@ -2129,18 +2083,8 @@ public:
lua_pushstring(L, p->SongToPreferredSortSectionName(pSong));
return 1;
}
- static int WasLoadedFromAdditionalSongs( T* p, lua_State *L )
- {
- const Song* pSong = Luna::check(L,1);
- lua_pushboolean(L, p->WasLoadedFromAdditionalSongs(pSong));
- return 1;
- }
- static int WasLoadedFromAdditionalCourses( T* p, lua_State *L )
- {
- const Course* pCourse = Luna::check(L,1);
- lua_pushboolean(L, p->WasLoadedFromAdditionalCourses(pCourse));
- return 1;
- }
+ static int WasLoadedFromAdditionalSongs( T* p, lua_State *L ) { lua_pushboolean(L, false); return 1; } // deprecated
+ static int WasLoadedFromAdditionalCourses( T* p, lua_State *L ) { lua_pushboolean(L, false); return 1; } // deprecated
LunaSongManager()
{
@@ -2155,10 +2099,10 @@ public:
ADD_METHOD( GetNumLockedSongs );
ADD_METHOD( GetNumUnlockedSongs );
ADD_METHOD( GetNumSelectableAndUnlockedSongs );
- ADD_METHOD( GetNumAdditionalSongs );
+ ADD_METHOD( GetNumAdditionalSongs ); // deprecated
ADD_METHOD( GetNumSongGroups );
ADD_METHOD( GetNumCourses );
- ADD_METHOD( GetNumAdditionalCourses );
+ ADD_METHOD( GetNumAdditionalCourses ); // deprecated
ADD_METHOD( GetNumCourseGroups );
ADD_METHOD( GetSongFromSteps );
ADD_METHOD( GetExtraStageInfo );
@@ -2181,8 +2125,8 @@ public:
ADD_METHOD( GetPopularSongs );
ADD_METHOD( GetPopularCourses );
ADD_METHOD( SongToPreferredSortSectionName );
- ADD_METHOD( WasLoadedFromAdditionalSongs );
- ADD_METHOD( WasLoadedFromAdditionalCourses );
+ ADD_METHOD( WasLoadedFromAdditionalSongs ); // deprecated
+ ADD_METHOD( WasLoadedFromAdditionalCourses ); // deprecated
}
};
diff --git a/src/SongManager.h b/src/SongManager.h
index 82ca8b8478..9859e8e9dd 100644
--- a/src/SongManager.h
+++ b/src/SongManager.h
@@ -132,13 +132,11 @@ public:
int GetNumLockedSongs() const;
int GetNumUnlockedSongs() const;
int GetNumSelectableAndUnlockedSongs() const;
- int GetNumAdditionalSongs() const;
int GetNumSongGroups() const;
/**
* @brief Retrieve the number of courses in the game.
* @return the number of courses. */
int GetNumCourses() const;
- int GetNumAdditionalCourses() const;
int GetNumCourseGroups() const;
Song* GetRandomSong();
Course* GetRandomCourse();
@@ -148,8 +146,6 @@ public:
void GetStepsLoadedFromProfile( vector &AddTo, ProfileSlot slot ) const;
void DeleteSteps( Steps *pSteps ); // transfers ownership of pSteps
- bool WasLoadedFromAdditionalSongs( const Song *pSong ) const;
- bool WasLoadedFromAdditionalCourses( const Course *pCourse ) const;
void GetAllCourses( vector &AddTo, bool bIncludeAutogen ) const;
void GetCourses( CourseType ct, vector &AddTo, bool bIncludeAutogen ) const;
diff --git a/src/SongUtil.cpp b/src/SongUtil.cpp
index 44416f3575..0ea0f34152 100644
--- a/src/SongUtil.cpp
+++ b/src/SongUtil.cpp
@@ -1147,6 +1147,10 @@ void SongID::LoadFromNode( const XNode* pNode )
ASSERT( pNode->GetName() == "Song" );
pNode->GetAttrValue("Dir", sDir);
m_Cache.Unset();
+
+ // HACK for backwards compatibility: /AdditionalSongs has been merged into /Songs
+ if (sDir.Left(16) == "AdditionalSongs/")
+ sDir.replace(0, 16, "Songs/");
}
RString SongID::ToString() const
diff --git a/src/StepMania.cpp b/src/StepMania.cpp
index 59923dcab9..8c507bbb95 100644
--- a/src/StepMania.cpp
+++ b/src/StepMania.cpp
@@ -1034,14 +1034,14 @@ int sm_main(int argc, char* argv[])
vector dirs;
split( PREFSMAN->m_sAdditionalSongFolders, ",", dirs, true );
for( unsigned i=0; i < dirs.size(); i++)
- FILEMAN->Mount( "dir", dirs[i], "/AdditionalSongs" );
+ FILEMAN->Mount( "dir", dirs[i], "/Songs" );
}
if( PREFSMAN->m_sAdditionalCourseFolders.Get() != "" )
{
vector dirs;
split( PREFSMAN->m_sAdditionalCourseFolders, ",", dirs, true );
for( unsigned i=0; i < dirs.size(); i++)
- FILEMAN->Mount( "dir", dirs[i], "/AdditionalCourses" );
+ FILEMAN->Mount( "dir", dirs[i], "/Courses" );
}
MountTreeOfZips( SpecialFiles::PACKAGES_DIR );
diff --git a/src/UnlockManager.cpp b/src/UnlockManager.cpp
index 3e167821e3..3a37c17dd3 100644
--- a/src/UnlockManager.cpp
+++ b/src/UnlockManager.cpp
@@ -25,7 +25,6 @@ UnlockManager* UNLOCKMAN = nullptr; // global and accessible from anywhere in ou
static ThemeMetric AUTO_LOCK_CHALLENGE_STEPS( "UnlockManager", "AutoLockChallengeSteps" );
static ThemeMetric AUTO_LOCK_EDIT_STEPS( "UnlockManager", "AutoLockEditSteps" );
-static ThemeMetric SONGS_NOT_ADDITIONAL( "UnlockManager", "SongsNotAdditional" );
static const char *UnlockRequirementNames[] =
{
@@ -522,9 +521,6 @@ void UnlockManager::Load()
if( SongUtil::GetOneSteps(s, StepsType_Invalid, Difficulty_Challenge) == nullptr )
continue;
- if( SONGS_NOT_ADDITIONAL && SONGMAN->WasLoadedFromAdditionalSongs(s) )
- continue;
-
UnlockEntry ue;
ue.m_sEntryID = "_challenge_" + s->GetSongDir();
ue.m_Type = UnlockRewardType_Steps;
@@ -547,10 +543,6 @@ void UnlockManager::Load()
if (SongUtil::GetOneSteps(s, StepsType_Invalid, Difficulty_Edit) == nullptr)
continue;
- // don't add additional songs.
- if (SONGS_NOT_ADDITIONAL && SONGMAN->WasLoadedFromAdditionalSongs(s))
- continue;
-
UnlockEntry ue;
ue.m_sEntryID = "_edit_" + s->GetSongDir();
ue.m_Type = UnlockRewardType_Steps;