From 1cbf731fc0c3cbc5a1d2be6f1af51cb93d9739e2 Mon Sep 17 00:00:00 2001 From: Choupom Date: Sat, 18 Sep 2010 15:08:57 +0200 Subject: improved demos listing --- src/game/client/components/menus_demo.cpp | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) (limited to 'src/game/client/components/menus_demo.cpp') diff --git a/src/game/client/components/menus_demo.cpp b/src/game/client/components/menus_demo.cpp index 9a538e70..b64936ec 100644 --- a/src/game/client/components/menus_demo.cpp +++ b/src/game/client/components/menus_demo.cpp @@ -408,30 +408,23 @@ int CMenus::UiDoListboxEnd(float *pScrollValue, bool *pItemActivated) return gs_ListBoxNewSelected; } -struct FETCH_CALLBACKINFO -{ - CMenus *m_pSelf; - const char *m_pPrefix; -}; - void CMenus::DemolistFetchCallback(const char *pName, int IsDir, void *pUser) { if(pName[0] == '.') return; - FETCH_CALLBACKINFO *pInfo = (FETCH_CALLBACKINFO *)pUser; + CMenus *pSelf = (CMenus *)pUser; CDemoItem Item; - str_format(Item.m_aFilename, sizeof(Item.m_aFilename), "%s/%s", pInfo->m_pPrefix, pName); + str_format(Item.m_aFilename, sizeof(Item.m_aFilename), "%s/%s/%s", pSelf->Client()->UserDirectory(), pSelf->m_aCurrentDemoFolder, pName); str_copy(Item.m_aName, pName, sizeof(Item.m_aName)); - pInfo->m_pSelf->m_lDemos.add(Item); + pSelf->m_lDemos.add(Item); } void CMenus::DemolistPopulate() { m_lDemos.clear(); - if(str_comp(m_aCurrentDemoFolder, "demos") != 0) //add parent folder { CDemoItem Item; @@ -440,14 +433,7 @@ void CMenus::DemolistPopulate() m_lDemos.add(Item); } - - char aBuf[512]; - str_format(aBuf, sizeof(aBuf), "%s/%s", Client()->UserDirectory(), m_aCurrentDemoFolder); - - FETCH_CALLBACKINFO Info = {this, aBuf}; - fs_listdir(aBuf, DemolistFetchCallback, &Info); - Info.m_pPrefix = m_aCurrentDemoFolder; - fs_listdir(m_aCurrentDemoFolder, DemolistFetchCallback, &Info); + Storage()->ListDirectory(IStorage::TYPE_SAVE, m_aCurrentDemoFolder, DemolistFetchCallback, this); } -- cgit 1.4.1