diff --git a/Source/Contents/AdventureGuideMgr.cpp b/Source/Contents/AdventureGuideMgr.cpp index 8563b950..3106cf61 100644 --- a/Source/Contents/AdventureGuideMgr.cpp +++ b/Source/Contents/AdventureGuideMgr.cpp @@ -82,3 +82,31 @@ void CAdventureGuideMgr::GetContentsList(std::list>& out, int type, int id) { + out.clear(); + + std::map>* table; + switch (type) { + case 5: + table = &unknown_0054; + break; + case 6: + table = &unknown_005C; + break; + default: + return; + } + + std::optional*> entries = FindMapped(*table, id); + if (!entries) { + return; + } + + std::copy((*entries)->begin(), (*entries)->end(), std::back_inserter(out)); + out.sort([](const std::pair& lhs, const std::pair& rhs) { + return lhs.second.unknown_0004 < rhs.second.unknown_0004; + }); +} diff --git a/Source/Contents/AdventureGuideMgr.h b/Source/Contents/AdventureGuideMgr.h index cb4a6395..57e8da61 100644 --- a/Source/Contents/AdventureGuideMgr.h +++ b/Source/Contents/AdventureGuideMgr.h @@ -79,6 +79,7 @@ public: void GetEpisodeList(std::list& out); void GetContentsList(std::list>& out, int type, int id); + void GetEntryList(std::list>& out, int type, int id); }; extern CAdventureGuideMgr* g_adventureGuideMgr;