Ensures MQ and Vanilla title Logos are saved with different names. (#1788)

This way either one can be loaded according to which OTR/whether or not MQ is enabled.
This commit is contained in:
Christopher Leggett 2022-10-23 04:04:20 -04:00 committed by GitHub
parent fc1a009953
commit 60c9e869e3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 33 additions and 2 deletions

View File

@ -91,8 +91,17 @@ static void ExporterProgramEnd()
otrArchive = Ship::Archive::CreateArchive(otrFileName, 40000); otrArchive = Ship::Archive::CreateArchive(otrFileName, 40000);
for (auto item : files) { for (auto item : files) {
std::string fName = item.first;
if (fName.find("gTitleZeldaShieldLogoMQTex") != std::string::npos && !ZRom(romPath).IsMQ())
{
size_t pos = 0;
if ((pos = fName.find("gTitleZeldaShieldLogoMQTex", 0)) != std::string::npos)
{
fName.replace(pos, 27, "gTitleZeldaShieldLogoTex");
}
}
auto fileData = item.second; auto fileData = item.second;
otrArchive->AddFile(item.first, (uintptr_t)fileData.data(), otrArchive->AddFile(fName, (uintptr_t)fileData.data(),
fileData.size()); fileData.size());
} }

View File

@ -362,6 +362,28 @@ static const char %s[] __attribute__((aligned (2))) = d%s;
} }
} }
if (name == "gTitleZeldaShieldLogoMQTex")
{
std::string addName = "gTitleZeldaShieldLogoTex";
nameStr = StringHelper::Strip(StringHelper::Strip(addName, "\n"), "\r");
str += StringHelper::Sprintf("\n#define d%s \"__OTR__%s/%s/%s\"", addName.c_str(), prefix.c_str(), outName.c_str(), nameStr.c_str());
if (nameSet && nameSet->find(addName) == nameSet->end())
{
str += StringHelper::Sprintf(R"(
#ifdef _WIN32
static const __declspec(align(2)) char %s[] = d%s;
#else
static const char %s[] __attribute__((aligned (2))) = d%s;
#endif
)", addName.c_str(), addName.c_str(), addName.c_str(), addName.c_str());
if (nameSet)
{
nameSet->insert(addName);
}
}
}
return str; return str;
} }
else else

View File

@ -913,7 +913,7 @@ void EnMag_DrawInnerVanilla(Actor* thisx, GlobalContext* globalCtx, Gfx** gfxp)
gDPSetPrimColor(gfx++, 0, 0, 255, 255, 255, (s16)this->mainAlpha); gDPSetPrimColor(gfx++, 0, 0, 255, 255, 255, (s16)this->mainAlpha);
if ((s16)this->mainAlpha != 0) { if ((s16)this->mainAlpha != 0) {
EnMag_DrawImageRGBA32(&gfx, 160, 100, (u8*)gTitleZeldaShieldLogoMQTex, 160, 160); EnMag_DrawImageRGBA32(&gfx, 160, 100, (u8*)gTitleZeldaShieldLogoTex, 160, 160);
} }
func_8009457C(&gfx); func_8009457C(&gfx);