[Game List] Separate DC and arcade games
This commit is contained in:
parent
4de9076b49
commit
c8fc873cf9
|
@ -42,6 +42,7 @@ static bool operator<(const GameMedia &left, const GameMedia &right)
|
|||
class GameScanner
|
||||
{
|
||||
std::vector<GameMedia> game_list;
|
||||
std::vector<GameMedia> arcade_game_list;
|
||||
std::mutex mutex;
|
||||
std::mutex threadMutex;
|
||||
std::unique_ptr<std::thread> scan_thread;
|
||||
|
@ -56,6 +57,12 @@ class GameScanner
|
|||
game_list.insert(std::upper_bound(game_list.begin(), game_list.end(), game), game);
|
||||
}
|
||||
|
||||
void insert_arcade_game(const GameMedia& game)
|
||||
{
|
||||
std::lock_guard<std::mutex> guard(mutex);
|
||||
arcade_game_list.insert(std::upper_bound(arcade_game_list.begin(), arcade_game_list.end(), game), game);
|
||||
}
|
||||
|
||||
void add_game_directory(const std::string& path)
|
||||
{
|
||||
DirectoryTree tree(path);
|
||||
|
@ -100,6 +107,14 @@ class GameScanner
|
|||
continue;
|
||||
gameName = it->second->description;
|
||||
fileName = fileName + " (" + gameName + ")";
|
||||
insert_arcade_game(GameMedia{ fileName, child_path, gameName });
|
||||
continue;
|
||||
}
|
||||
else if (extension == "bin" || extension == "lst" || extension == "dat")
|
||||
{
|
||||
if (!config::HideLegacyNaomiRoms)
|
||||
insert_arcade_game(GameMedia{ fileName, child_path, gameName });
|
||||
continue;
|
||||
}
|
||||
else if (extension == "chd" || extension == "gdi")
|
||||
{
|
||||
|
@ -109,9 +124,7 @@ class GameScanner
|
|||
if (arcade_gdroms.count(basename) != 0)
|
||||
continue;
|
||||
}
|
||||
else if ((config::HideLegacyNaomiRoms
|
||||
|| (extension != "bin" && extension != "lst" && extension != "dat"))
|
||||
&& extension != "cdi" && extension != "cue")
|
||||
else if (extension != "cdi" && extension != "cue")
|
||||
continue;
|
||||
insert_game(GameMedia{ fileName, child_path, gameName });
|
||||
}
|
||||
|
@ -167,6 +180,7 @@ public:
|
|||
if (!running)
|
||||
break;
|
||||
}
|
||||
game_list.insert(game_list.end(), arcade_game_list.begin(), arcade_game_list.end());
|
||||
if (running)
|
||||
scan_done = true;
|
||||
running = false;
|
||||
|
|
Loading…
Reference in New Issue