summaryrefslogtreecommitdiff
path: root/Source/Core/DiscIO/Src/BannerLoaderGC.cpp
diff options
context:
space:
mode:
authorhyperiris <hyperiris@gmail.com>2009-02-09 15:41:28 +0000
committerhyperiris <hyperiris@gmail.com>2009-02-09 15:41:28 +0000
commit0868770d24be58a116303f0dd4557af07e61a89d (patch)
tree46c47314993a32a2e4aa2d5d5fe9fea398034382 /Source/Core/DiscIO/Src/BannerLoaderGC.cpp
parente4f196767412196d29e6cb2e4179e1e15b95138a (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.cpp31
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;
}