diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2010-07-05 20:46:32 +0200 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2010-07-05 20:46:32 +0200 |
| commit | d302ba921e61177da9af1f85df58fe6f47ca5e95 (patch) | |
| tree | 4ac19b9caab0a7142b6dfbc05d234af152bd5407 /src/game/client/components/menus_demo.cpp | |
| parent | 143af11a25bc4a944c3605b9a165ffd2f1970641 (diff) | |
| parent | bd02c2043e9f76ec47ee9ac35caf23ae294b1dfa (diff) | |
| download | zcatch-d302ba921e61177da9af1f85df58fe6f47ca5e95.tar.gz zcatch-d302ba921e61177da9af1f85df58fe6f47ca5e95.zip | |
Merge branch 'master' of github.com:matricks/teeworlds
Diffstat (limited to 'src/game/client/components/menus_demo.cpp')
| -rw-r--r-- | src/game/client/components/menus_demo.cpp | 36 |
1 files changed, 15 insertions, 21 deletions
diff --git a/src/game/client/components/menus_demo.cpp b/src/game/client/components/menus_demo.cpp index ec1ead8e..f8cf8e4f 100644 --- a/src/game/client/components/menus_demo.cpp +++ b/src/game/client/components/menus_demo.cpp @@ -1,5 +1,4 @@ -#include <string.h> #include <base/math.h> @@ -380,9 +379,9 @@ struct FETCH_CALLBACKINFO void CMenus::DemolistFetchCallback(const char *pName, int IsDir, void *pUser) { - if(IsDir || pName[0] == '.') + if(pName[0] == '.') return; - + FETCH_CALLBACKINFO *pInfo = (FETCH_CALLBACKINFO *)pUser; CDemoItem Item; @@ -391,17 +390,12 @@ void CMenus::DemolistFetchCallback(const char *pName, int IsDir, void *pUser) pInfo->m_pSelf->m_lDemos.add(Item); } -void CMenus::IsDirCallback(const char *pName, int IsDir, void *pUser) -{ - *((bool *)pUser) = true; -} - void CMenus::DemolistPopulate() { m_lDemos.clear(); - if(strncmp(m_aCurrentDemoFolder, "demos", 256)) //add parent folder + if(str_comp_num(m_aCurrentDemoFolder, "demos", 256)) //add parent folder { CDemoItem Item; str_copy(Item.m_aName, "..", sizeof(Item.m_aName)); @@ -413,7 +407,7 @@ void CMenus::DemolistPopulate() char aBuf[512]; str_format(aBuf, sizeof(aBuf), "%s/%s", Client()->UserDirectory(), m_aCurrentDemoFolder); - FETCH_CALLBACKINFO Info = {this, aBuf, 0}; + FETCH_CALLBACKINFO Info = {this, aBuf, m_aCurrentDemoFolder[6]}; //skip "demos/" fs_listdir(aBuf, DemolistFetchCallback, &Info); Info.m_pPrefix = m_aCurrentDemoFolder; fs_listdir(m_aCurrentDemoFolder, DemolistFetchCallback, &Info); @@ -457,10 +451,10 @@ void CMenus::RenderDemoList(CUIRect MainView) bool IsDir = false; - if(!strncmp(m_lDemos[s_SelectedItem].m_aName, "..", 256)) //parent folder + if(!str_comp_num(m_lDemos[s_SelectedItem].m_aName, "..", 256)) //parent folder + IsDir = true; + else if(fs_is_dir(m_lDemos[s_SelectedItem].m_aFilename)) IsDir = true; - else - fs_listdir(m_lDemos[s_SelectedItem].m_aFilename, IsDirCallback, &IsDir); static int s_RefreshButton = 0; @@ -470,17 +464,17 @@ void CMenus::RenderDemoList(CUIRect MainView) } static int s_PlayButton = 0; - char aTitleButton[8]; + char aTitleButton[10]; if(IsDir) - str_copy(aTitleButton, "Open", sizeof(aTitleButton)); + str_copy(aTitleButton, Localize("Open"), sizeof(aTitleButton)); else - str_copy(aTitleButton, "Play", sizeof(aTitleButton)); - // /!\ TODO: Add "Open" in Localization /!\ - if(DoButton_Menu(&s_PlayButton, Localize(aTitleButton), 0, &PlayRect) || Activated) + str_copy(aTitleButton, Localize("Play"), sizeof(aTitleButton)); + + if(DoButton_Menu(&s_PlayButton, aTitleButton, 0, &PlayRect) || Activated) { if(s_SelectedItem >= 0 && s_SelectedItem < m_lDemos.size()) { - if(!strncmp(m_lDemos[s_SelectedItem].m_aName, "..", 256)) + if(!str_comp_num(m_lDemos[s_SelectedItem].m_aName, "..", 256)) { DemoSetParentDirectory(); DemolistPopulate(); @@ -496,7 +490,7 @@ void CMenus::RenderDemoList(CUIRect MainView) { const char *pError = Client()->DemoPlayer_Play(m_lDemos[s_SelectedItem].m_aFilename); if(pError) - PopupMessage(Localize("Error"), pError, Localize("Ok")); + PopupMessage(Localize("Error"), Localize(pError), Localize("Ok")); } } } @@ -519,6 +513,6 @@ void CMenus::DemoSetParentDirectory() for(i = 0; i < 256; i++) { if(i >= Stop) - m_aCurrentDemoFolder[i] = NULL; + m_aCurrentDemoFolder[i] = 0; } } |