diff options
| author | hyperiris <hyperiris@gmail.com> | 2009-02-09 15:41:28 +0000 |
|---|---|---|
| committer | hyperiris <hyperiris@gmail.com> | 2009-02-09 15:41:28 +0000 |
| commit | 0868770d24be58a116303f0dd4557af07e61a89d (patch) | |
| tree | 46c47314993a32a2e4aa2d5d5fe9fea398034382 /Source/Core/DiscIO/Src/BannerLoaderGC.cpp | |
| parent | e4f196767412196d29e6cb2e4179e1e15b95138a (diff) | |
fix again, JP please check it. don't forget clear your cache!
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2177 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core/DiscIO/Src/BannerLoaderGC.cpp')
| -rw-r--r-- | Source/Core/DiscIO/Src/BannerLoaderGC.cpp | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/Source/Core/DiscIO/Src/BannerLoaderGC.cpp b/Source/Core/DiscIO/Src/BannerLoaderGC.cpp index 28e8378db4..a7a911642a 100644 --- a/Source/Core/DiscIO/Src/BannerLoaderGC.cpp +++ b/Source/Core/DiscIO/Src/BannerLoaderGC.cpp @@ -107,9 +107,17 @@ CBannerLoaderGC::GetName(std::string _rName[]) case CBannerLoaderGC::BANNER_BNR1: { DVDBanner* pBanner = (DVDBanner*)m_pBannerFile; - char tempBuffer[33] = {0}; - memcpy(tempBuffer, pBanner->comment.shortTitle, 32); - _rName[0] = tempBuffer; + char tempBuffer[65] = {0}; + if (pBanner->comment.longTitle[0]) + { + memcpy(tempBuffer, pBanner->comment.longTitle, 64); + } + else + { + memcpy(tempBuffer, pBanner->comment.shortTitle, 32); + } + + CopyToStringAndCheck(_rName[0], tempBuffer); returnCode = true; } break; @@ -120,9 +128,16 @@ CBannerLoaderGC::GetName(std::string _rName[]) u32 languageID = SConfig::GetInstance().m_InterfaceLanguage; for (int i = 0; i < 6; i++) { - char tempBuffer[33] = {0}; - memcpy(tempBuffer, pBanner->comment[i].shortTitle, 32); - _rName[i] = tempBuffer; + char tempBuffer[65] = {0}; + if (pBanner->comment[i].longTitle[0]) + { + memcpy(tempBuffer, pBanner->comment[i].longTitle, 64); + } + else + { + memcpy(tempBuffer, pBanner->comment[i].shortTitle, 32); + } + CopyToStringAndCheck(_rName[i], tempBuffer); } returnCode = true; @@ -174,7 +189,7 @@ CBannerLoaderGC::GetDescription(std::string* _rDescription) DVDBanner* pBanner = (DVDBanner*)m_pBannerFile; char tempBuffer[129] = {0}; memcpy(tempBuffer, pBanner->comment.comment, 128); - _rDescription[0] = tempBuffer; + CopyToStringAndCheck(_rDescription[0], tempBuffer); returnCode = true; } break; @@ -186,7 +201,7 @@ CBannerLoaderGC::GetDescription(std::string* _rDescription) { char tempBuffer[129] = {0}; memcpy(tempBuffer, pBanner->comment[i].comment, 128); - _rDescription[i] = tempBuffer; + CopyToStringAndCheck(_rDescription[i], tempBuffer); } returnCode = true; } |
