diff --git a/src/TSMapEditor/CCEngine/CCFileManager.cs b/src/TSMapEditor/CCEngine/CCFileManager.cs
index f5430eb8..192c0f92 100644
--- a/src/TSMapEditor/CCEngine/CCFileManager.cs
+++ b/src/TSMapEditor/CCEngine/CCFileManager.cs
@@ -219,6 +219,25 @@ public void LoadStringTable(string name)
CsfFiles.Add(file);
}
+ ///
+ /// Searches for a file from all search directories.
+ /// If found, returns the full path to the found file.
+ /// Otherwise returns null.
+ ///
+ /// The name of the file to look for.
+ public string FindFileFromDirectories(string fileName)
+ {
+ foreach (string searchDirectory in searchDirectories)
+ {
+ string fullPath = Path.Combine(searchDirectory, fileName);
+
+ if (File.Exists(fullPath))
+ return fullPath;
+ }
+
+ return null;
+ }
+
public byte[] LoadFile(string name)
{
foreach (string searchDirectory in searchDirectories)
diff --git a/src/TSMapEditor/UI/Windows/MainMenuWindows/MapSetup.cs b/src/TSMapEditor/UI/Windows/MainMenuWindows/MapSetup.cs
index 1cadbb29..ece4c1ba 100644
--- a/src/TSMapEditor/UI/Windows/MainMenuWindows/MapSetup.cs
+++ b/src/TSMapEditor/UI/Windows/MainMenuWindows/MapSetup.cs
@@ -38,7 +38,12 @@ public static string InitializeMap(string gameDirectory, bool createNew, string
var gameConfigIniFiles = new GameConfigINIFiles(gameDirectory, ccFileManager);
- var tutorialLines = new TutorialLines(Path.Combine(gameDirectory, Constants.TutorialIniPath), a => windowManager.AddCallback(a, null));
+ // Search for tutorial lines from all directories specified in the file manager configuration
+ string tutorialsPath = ccFileManager.FindFileFromDirectories(Constants.TutorialIniPath);
+ if (tutorialsPath == null)
+ tutorialsPath = Path.Combine(gameDirectory, Constants.TutorialIniPath);
+
+ var tutorialLines = new TutorialLines(tutorialsPath, a => windowManager.AddCallback(a, null));
var themes = new Themes(IniFileEx.FromPathOrMix(Constants.ThemeIniPath, gameDirectory, ccFileManager));
var evaSpeeches = new EvaSpeeches(IniFileEx.FromPathOrMix(Constants.EvaIniPath, gameDirectory, ccFileManager));
var sounds = new Sounds(IniFileEx.FromPathOrMix(Constants.SoundIniPath, gameDirectory, ccFileManager));