diff options
| author | Léo Lam <leo@leolam.fr> | 2021-03-20 10:17:39 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-03-20 05:17:39 -0400 |
| commit | 4751db5c9ee0a25a26379ca5b44efad72215d256 (patch) | |
| tree | ce49e6e23e352c93424343f75b2e10601457a9c3 /ZAPD/ZRoom/Commands/SetMesh.cpp | |
| parent | 963a282dc10036f367a2cb09bb5651aefc73d2a4 (diff) | |
Add a clang-format config and reformat all source files (#63)
* build: Add genbuildinfo as a dependency for ZAPD object files
* Add a clang-format config and reformat all source files
The existing code style is mostly preserved; this just makes formatting
more consistent and prevents lines from getting too long.
* Fix missing includes
Diffstat (limited to 'ZAPD/ZRoom/Commands/SetMesh.cpp')
| -rw-r--r-- | ZAPD/ZRoom/Commands/SetMesh.cpp | 252 |
1 files changed, 174 insertions, 78 deletions
diff --git a/ZAPD/ZRoom/Commands/SetMesh.cpp b/ZAPD/ZRoom/Commands/SetMesh.cpp index a63ab83..4884e3e 100644 --- a/ZAPD/ZRoom/Commands/SetMesh.cpp +++ b/ZAPD/ZRoom/Commands/SetMesh.cpp @@ -1,14 +1,16 @@ #include "SetMesh.h" -#include "../../ZFile.h" -#include "../ZRoom.h" +#include <Globals.h> +#include <Path.h> #include "../../BitConverter.h" #include "../../StringHelper.h" -#include <Path.h> -#include <Globals.h> +#include "../../ZFile.h" +#include "../ZRoom.h" using namespace std; -SetMesh::SetMesh(ZRoom* nZRoom, std::vector<uint8_t> rawData, int rawDataIndex, int segAddressOffset) : ZRoomCommand(nZRoom, rawData, rawDataIndex) +SetMesh::SetMesh(ZRoom* nZRoom, std::vector<uint8_t> rawData, int rawDataIndex, + int segAddressOffset) + : ZRoomCommand(nZRoom, rawData, rawDataIndex) { data = rawData[rawDataIndex + 1]; segmentOffset = GETSEGOFFSET(BitConverter::ToInt32BE(rawData, rawDataIndex + 4)); @@ -39,11 +41,17 @@ SetMesh::SetMesh(ZRoom* nZRoom, std::vector<uint8_t> rawData, int rawDataIndex, { MeshEntry0* entry = new MeshEntry0(); entry->opaqueDListAddr = GETSEGOFFSET(BitConverter::ToInt32BE(rawData, currentPtr + 0)); - entry->translucentDListAddr = GETSEGOFFSET(BitConverter::ToInt32BE(rawData, currentPtr + 4)); + entry->translucentDListAddr = + GETSEGOFFSET(BitConverter::ToInt32BE(rawData, currentPtr + 4)); if (entry->opaqueDListAddr != 0) { - entry->opaqueDList = new ZDisplayList(rawData, entry->opaqueDListAddr, ZDisplayList::GetDListLength(rawData, entry->opaqueDListAddr, Globals::Instance->game == ZGame::OOT_SW97 ? DListType::F3DEX : DListType::F3DZEX)); + entry->opaqueDList = new ZDisplayList( + rawData, entry->opaqueDListAddr, + ZDisplayList::GetDListLength(rawData, entry->opaqueDListAddr, + Globals::Instance->game == ZGame::OOT_SW97 ? + DListType::F3DEX : + DListType::F3DZEX)); entry->opaqueDList->scene = zRoom->scene; entry->opaqueDList->parent = zRoom->parent; GenDListDeclarations(rawData, entry->opaqueDList); @@ -51,7 +59,12 @@ SetMesh::SetMesh(ZRoom* nZRoom, std::vector<uint8_t> rawData, int rawDataIndex, if (entry->translucentDListAddr != 0) { - entry->translucentDList = new ZDisplayList(rawData, entry->translucentDListAddr, ZDisplayList::GetDListLength(rawData, entry->translucentDListAddr, Globals::Instance->game == ZGame::OOT_SW97 ? DListType::F3DEX : DListType::F3DZEX)); + entry->translucentDList = new ZDisplayList( + rawData, entry->translucentDListAddr, + ZDisplayList::GetDListLength(rawData, entry->translucentDListAddr, + Globals::Instance->game == ZGame::OOT_SW97 ? + DListType::F3DEX : + DListType::F3DZEX)); entry->translucentDList->scene = zRoom->scene; entry->translucentDList->parent = zRoom->parent; GenDListDeclarations(rawData, entry->translucentDList); @@ -65,16 +78,22 @@ SetMesh::SetMesh(ZRoom* nZRoom, std::vector<uint8_t> rawData, int rawDataIndex, declaration += StringHelper::Sprintf("{ 0 }, 0x%02X, ", meshHeader0->entries.size()); if (meshHeader0->dListStart != 0) - declaration += StringHelper::Sprintf("(u32)&%sMeshDListEntry0x%06X, ", zRoom->GetName().c_str(), meshHeader0->dListStart); + declaration += StringHelper::Sprintf("(u32)&%sMeshDListEntry0x%06X, ", + zRoom->GetName().c_str(), meshHeader0->dListStart); else declaration += "0, "; if (meshHeader0->dListEnd != 0) - declaration += StringHelper::Sprintf("(u32)&(%sMeshDListEntry0x%06X) + sizeof(%sMeshDListEntry0x%06X)", zRoom->GetName().c_str(), meshHeader0->dListStart, zRoom->GetName().c_str(), meshHeader0->dListStart); + declaration += StringHelper::Sprintf( + "(u32)&(%sMeshDListEntry0x%06X) + sizeof(%sMeshDListEntry0x%06X)", + zRoom->GetName().c_str(), meshHeader0->dListStart, zRoom->GetName().c_str(), + meshHeader0->dListStart); else declaration += "0"; - zRoom->parent->AddDeclaration(segmentOffset, DeclarationAlignment::Align16, 12, "MeshHeader0", StringHelper::Sprintf("%sMeshHeader0x%06X", zRoom->GetName().c_str(), segmentOffset), + zRoom->parent->AddDeclaration( + segmentOffset, DeclarationAlignment::Align16, 12, "MeshHeader0", + StringHelper::Sprintf("%sMeshHeader0x%06X", zRoom->GetName().c_str(), segmentOffset), declaration); declaration = ""; @@ -82,39 +101,51 @@ SetMesh::SetMesh(ZRoom* nZRoom, std::vector<uint8_t> rawData, int rawDataIndex, for (size_t i = 0; i < meshHeader0->entries.size(); i++) { if (meshHeader0->entries[i]->opaqueDListAddr != 0) - declaration += StringHelper::Sprintf("\t{ (u32)%sDL_%06X, ", zRoom->GetName().c_str(), meshHeader0->entries[i]->opaqueDListAddr); + declaration += + StringHelper::Sprintf("\t{ (u32)%sDL_%06X, ", zRoom->GetName().c_str(), + meshHeader0->entries[i]->opaqueDListAddr); else declaration += "\t{ 0, "; if (meshHeader0->entries[i]->translucentDListAddr != 0) - declaration += StringHelper::Sprintf("(u32)%sDL_%06X },\n", zRoom->GetName().c_str(), meshHeader0->entries[i]->translucentDListAddr); + declaration += + StringHelper::Sprintf("(u32)%sDL_%06X },\n", zRoom->GetName().c_str(), + meshHeader0->entries[i]->translucentDListAddr); else declaration += "0 },\n"; } - zRoom->parent->AddDeclarationArray(meshHeader0->dListStart, DeclarationAlignment::None, DeclarationPadding::None, (meshHeader0->entries.size() * 8) + 0, "MeshEntry0", - StringHelper::Sprintf("%sMeshDListEntry0x%06X", zRoom->GetName().c_str(), meshHeader0->dListStart), meshHeader0->entries.size(), declaration); + zRoom->parent->AddDeclarationArray( + meshHeader0->dListStart, DeclarationAlignment::None, DeclarationPadding::None, + (meshHeader0->entries.size() * 8) + 0, "MeshEntry0", + StringHelper::Sprintf("%sMeshDListEntry0x%06X", zRoom->GetName().c_str(), + meshHeader0->dListStart), + meshHeader0->entries.size(), declaration); - zRoom->parent->AddDeclaration(meshHeader0->dListStart + (meshHeader0->entries.size() * 8) + 0, DeclarationAlignment::None, DeclarationPadding::Pad16, 4, "static s32", - "terminatorMaybe", " 0x01000000 "); + zRoom->parent->AddDeclaration(meshHeader0->dListStart + (meshHeader0->entries.size() * 8) + + 0, + DeclarationAlignment::None, DeclarationPadding::Pad16, 4, + "static s32", "terminatorMaybe", " 0x01000000 "); meshHeader = meshHeader0; } else if (meshHeaderType == 1) { MeshHeader1Base* meshHeader1 = nullptr; - + uint8_t fmt = rawData[segmentOffset + 1]; - if (fmt == 1) // Single Format + if (fmt == 1) // Single Format { MeshHeader1Single* headerSingle = new MeshHeader1Single(); headerSingle->headerType = 1; headerSingle->format = fmt; - headerSingle->entryRecord = BitConverter::ToInt32BE(rawData, segmentOffset + 4);// &0x00FFFFFF; + headerSingle->entryRecord = + BitConverter::ToInt32BE(rawData, segmentOffset + 4); // &0x00FFFFFF; - headerSingle->imagePtr = BitConverter::ToInt32BE(rawData, segmentOffset + 8);// &0x00FFFFFF; + headerSingle->imagePtr = + BitConverter::ToInt32BE(rawData, segmentOffset + 8); // &0x00FFFFFF; headerSingle->unknown = BitConverter::ToInt32BE(rawData, segmentOffset + 12); headerSingle->unknown2 = BitConverter::ToInt32BE(rawData, segmentOffset + 16); headerSingle->bgWidth = BitConverter::ToInt16BE(rawData, segmentOffset + 20); @@ -124,37 +155,50 @@ SetMesh::SetMesh(ZRoom* nZRoom, std::vector<uint8_t> rawData, int rawDataIndex, headerSingle->imagePal = BitConverter::ToInt16BE(rawData, segmentOffset + 26); headerSingle->imageFlip = BitConverter::ToInt16BE(rawData, segmentOffset + 28); - declaration += StringHelper::Sprintf("{ { 1 }, 1, 0x%06X }, 0x%06X, ", - headerSingle->entryRecord, headerSingle->imagePtr); + declaration += StringHelper::Sprintf("{ { 1 }, 1, 0x%06X }, 0x%06X, ", + headerSingle->entryRecord, headerSingle->imagePtr); declaration += StringHelper::Sprintf("0x%06X, 0x%06X, %i, %i, %i, %i, %i, %i\n", - headerSingle->unknown, headerSingle->unknown2, headerSingle->bgWidth, headerSingle->bgHeight, headerSingle->imageFormat, headerSingle->imageSize, headerSingle->imagePal, headerSingle->imageFlip); - - zRoom->parent->AddDeclaration(segmentOffset, DeclarationAlignment::None, DeclarationPadding::Pad16, 0x1E, "MeshHeader1Single", - StringHelper::Sprintf("%sMeshHeader0x%06X", zRoom->GetName().c_str(), segmentOffset), declaration); + headerSingle->unknown, headerSingle->unknown2, + headerSingle->bgWidth, headerSingle->bgHeight, + headerSingle->imageFormat, headerSingle->imageSize, + headerSingle->imagePal, headerSingle->imageFlip); + + zRoom->parent->AddDeclaration(segmentOffset, DeclarationAlignment::None, + DeclarationPadding::Pad16, 0x1E, "MeshHeader1Single", + StringHelper::Sprintf("%sMeshHeader0x%06X", + zRoom->GetName().c_str(), + segmentOffset), + declaration); meshHeader1 = headerSingle; } - else if (fmt == 2) // Multi-Format + else if (fmt == 2) // Multi-Format { MeshHeader1Multi* headerMulti = new MeshHeader1Multi(); headerMulti->headerType = 1; headerMulti->format = fmt; - headerMulti->entryRecord = BitConverter::ToInt32BE(rawData, segmentOffset + 4);// &0x00FFFFFF; + headerMulti->entryRecord = + BitConverter::ToInt32BE(rawData, segmentOffset + 4); // &0x00FFFFFF; headerMulti->bgCnt = rawData[segmentOffset + 8]; headerMulti->bgRecordPtr = BitConverter::ToInt32BE(rawData, segmentOffset + 12); declaration += StringHelper::Sprintf("{ { 1 }, 2, 0x%06X }, 0x%06X, 0x%06X", - headerMulti->entryRecord, headerMulti->bgCnt, headerMulti->bgRecordPtr); + headerMulti->entryRecord, headerMulti->bgCnt, + headerMulti->bgRecordPtr); - zRoom->parent->AddDeclaration(segmentOffset, DeclarationAlignment::None, DeclarationPadding::Pad16, 16, "MeshHeader1Multi", - StringHelper::Sprintf("%sMeshHeader0x%06X", zRoom->GetName().c_str(), segmentOffset), declaration); + zRoom->parent->AddDeclaration(segmentOffset, DeclarationAlignment::None, + DeclarationPadding::Pad16, 16, "MeshHeader1Multi", + StringHelper::Sprintf("%sMeshHeader0x%06X", + zRoom->GetName().c_str(), + segmentOffset), + declaration); meshHeader1 = headerMulti; } - else // UH OH + else // UH OH { if (Globals::Instance->verbosity >= VERBOSITY_INFO) printf("WARNING: MeshHeader FMT %i not implemented!\n", fmt); @@ -164,14 +208,13 @@ SetMesh::SetMesh(ZRoom* nZRoom, std::vector<uint8_t> rawData, int rawDataIndex, meshHeader1->format = fmt; meshHeader1->entryRecord = BitConverter::ToInt32BE(rawData, segmentOffset + 4) & 0x00FFFFFF; - meshHeader = meshHeader1; } else if (meshHeaderType == 2) { MeshHeader2* meshHeader2 = new MeshHeader2(); meshHeader2->headerType = 2; - + meshHeader2->entries = vector<MeshEntry2*>(); meshHeader2->dListStart = GETSEGOFFSET(BitConverter::ToInt32BE(rawData, segmentOffset + 4)); meshHeader2->dListEnd = GETSEGOFFSET(BitConverter::ToInt32BE(rawData, segmentOffset + 8)); @@ -189,22 +232,33 @@ SetMesh::SetMesh(ZRoom* nZRoom, std::vector<uint8_t> rawData, int rawDataIndex, entry->playerZMin = BitConverter::ToInt16BE(rawData, currentPtr + 6); entry->opaqueDListAddr = BitConverter::ToInt32BE(rawData, currentPtr + 8) & 0x00FFFFFF; - entry->translucentDListAddr = BitConverter::ToInt32BE(rawData, currentPtr + 12) & 0x00FFFFFF; + entry->translucentDListAddr = + BitConverter::ToInt32BE(rawData, currentPtr + 12) & 0x00FFFFFF; if (entry->opaqueDListAddr != 0) { - entry->opaqueDList = new ZDisplayList(rawData, entry->opaqueDListAddr, ZDisplayList::GetDListLength(rawData, entry->opaqueDListAddr, Globals::Instance->game == ZGame::OOT_SW97 ? DListType::F3DEX : DListType::F3DZEX)); + entry->opaqueDList = new ZDisplayList( + rawData, entry->opaqueDListAddr, + ZDisplayList::GetDListLength(rawData, entry->opaqueDListAddr, + Globals::Instance->game == ZGame::OOT_SW97 ? + DListType::F3DEX : + DListType::F3DZEX)); entry->opaqueDList->scene = zRoom->scene; entry->opaqueDList->parent = zRoom->parent; - GenDListDeclarations(rawData, entry->opaqueDList); // HOTSPOT + GenDListDeclarations(rawData, entry->opaqueDList); // HOTSPOT } if (entry->translucentDListAddr != 0) { - entry->translucentDList = new ZDisplayList(rawData, entry->translucentDListAddr, ZDisplayList::GetDListLength(rawData, entry->translucentDListAddr, Globals::Instance->game == ZGame::OOT_SW97 ? DListType::F3DEX : DListType::F3DZEX)); + entry->translucentDList = new ZDisplayList( + rawData, entry->translucentDListAddr, + ZDisplayList::GetDListLength(rawData, entry->translucentDListAddr, + Globals::Instance->game == ZGame::OOT_SW97 ? + DListType::F3DEX : + DListType::F3DZEX)); entry->translucentDList->scene = zRoom->scene; entry->translucentDList->parent = zRoom->parent; - GenDListDeclarations(rawData, entry->translucentDList); // HOTSPOT + GenDListDeclarations(rawData, entry->translucentDList); // HOTSPOT } meshHeader2->entries.push_back(entry); @@ -215,40 +269,57 @@ SetMesh::SetMesh(ZRoom* nZRoom, std::vector<uint8_t> rawData, int rawDataIndex, declaration += StringHelper::Sprintf("{ 2 }, 0x%02lX, ", meshHeader2->entries.size()); if (meshHeader2->dListStart != 0) - declaration += StringHelper::Sprintf("(u32)&%sMeshDListEntry0x%06X, ", zRoom->GetName().c_str(), meshHeader2->dListStart); + declaration += StringHelper::Sprintf("(u32)&%sMeshDListEntry0x%06X, ", + zRoom->GetName().c_str(), meshHeader2->dListStart); else declaration += "0, "; if (meshHeader2->dListEnd != 0) - declaration += StringHelper::Sprintf("(u32)&(%sMeshDListEntry0x%06X) + sizeof(%sMeshDListEntry0x%06X)", zRoom->GetName().c_str(), meshHeader2->dListStart, zRoom->GetName().c_str(), meshHeader2->dListStart); + declaration += StringHelper::Sprintf( + "(u32)&(%sMeshDListEntry0x%06X) + sizeof(%sMeshDListEntry0x%06X)", + zRoom->GetName().c_str(), meshHeader2->dListStart, zRoom->GetName().c_str(), + meshHeader2->dListStart); else declaration += "0"; - zRoom->parent->AddDeclaration(segmentOffset, DeclarationAlignment::None, 12, "MeshHeader2", - StringHelper::Sprintf("%sMeshHeader0x%06X", zRoom->GetName().c_str(), segmentOffset), declaration); + zRoom->parent->AddDeclaration( + segmentOffset, DeclarationAlignment::None, 12, "MeshHeader2", + StringHelper::Sprintf("%sMeshHeader0x%06X", zRoom->GetName().c_str(), segmentOffset), + declaration); declaration = ""; for (size_t i = 0; i < meshHeader2->entries.size(); i++) { - declaration += StringHelper::Sprintf("\t{ %i, %i, %i, %i, ", meshHeader2->entries[i]->playerXMax, meshHeader2->entries[i]->playerZMax, meshHeader2->entries[i]->playerXMin, meshHeader2->entries[i]->playerZMin); + declaration += StringHelper::Sprintf( + "\t{ %i, %i, %i, %i, ", meshHeader2->entries[i]->playerXMax, + meshHeader2->entries[i]->playerZMax, meshHeader2->entries[i]->playerXMin, + meshHeader2->entries[i]->playerZMin); if (meshHeader2->entries[i]->opaqueDListAddr != 0) - declaration += StringHelper::Sprintf("(u32)%sDL_%06X, ", zRoom->GetName().c_str(), meshHeader2->entries[i]->opaqueDListAddr); + declaration += StringHelper::Sprintf("(u32)%sDL_%06X, ", zRoom->GetName().c_str(), + meshHeader2->entries[i]->opaqueDListAddr); else declaration += "0, "; if (meshHeader2->entries[i]->translucentDListAddr != 0) - declaration += StringHelper::Sprintf("(u32)%sDL_%06X },\n", zRoom->GetName().c_str(), meshHeader2->entries[i]->translucentDListAddr); + declaration += + StringHelper::Sprintf("(u32)%sDL_%06X },\n", zRoom->GetName().c_str(), + meshHeader2->entries[i]->translucentDListAddr); else declaration += "0 },\n"; } - zRoom->parent->AddDeclarationArray(meshHeader2->dListStart, DeclarationAlignment::None, DeclarationPadding::None, (meshHeader2->entries.size() * 16) + 0, - "MeshEntry2", StringHelper::Sprintf("%sMeshDListEntry0x%06X", zRoom->GetName().c_str(), meshHeader2->dListStart, meshHeader2->entries.size()), meshHeader2->entries.size(), declaration); + zRoom->parent->AddDeclarationArray( + meshHeader2->dListStart, DeclarationAlignment::None, DeclarationPadding::None, + (meshHeader2->entries.size() * 16) + 0, "MeshEntry2", + StringHelper::Sprintf("%sMeshDListEntry0x%06X", zRoom->GetName().c_str(), + meshHeader2->dListStart, meshHeader2->entries.size()), + meshHeader2->entries.size(), declaration); - zRoom->parent->AddDeclaration(meshHeader2->dListStart + (meshHeader2->entries.size() * 16), DeclarationAlignment::None, DeclarationPadding::Pad16, 4, "static s32", - "terminatorMaybe", "0x01000000"); + zRoom->parent->AddDeclaration(meshHeader2->dListStart + (meshHeader2->entries.size() * 16), + DeclarationAlignment::None, DeclarationPadding::Pad16, 4, + "static s32", "terminatorMaybe", "0x01000000"); meshHeader = meshHeader2; } @@ -267,23 +338,27 @@ void SetMesh::GenDListDeclarations(std::vector<uint8_t> rawData, ZDisplayList* d { string srcVarName = ""; - //if (Globals::Instance->includeFilePrefix) - srcVarName = StringHelper::Sprintf("%s%s", zRoom->GetName().c_str(), dList->GetName().c_str()); - //else - //srcVarName = StringHelper::Sprintf("%s", dList->GetName().c_str()); + // if (Globals::Instance->includeFilePrefix) + srcVarName = StringHelper::Sprintf("%s%s", zRoom->GetName().c_str(), dList->GetName().c_str()); + // else + // srcVarName = StringHelper::Sprintf("%s", dList->GetName().c_str()); dList->SetName(srcVarName); - string sourceOutput = dList->GetSourceOutputCode(zRoom->GetName()); // HOTSPOT + string sourceOutput = dList->GetSourceOutputCode(zRoom->GetName()); // HOTSPOT - //zRoom->parent->AddDeclarationArray(dList->GetRawDataIndex(), DeclarationAlignment::None, dList->GetRawDataSize(), "static Gfx", srcVarName, dList->GetRawDataSize() / 8, sourceOutput); + // zRoom->parent->AddDeclarationArray(dList->GetRawDataIndex(), DeclarationAlignment::None, + // dList->GetRawDataSize(), "static Gfx", srcVarName, dList->GetRawDataSize() / 8, sourceOutput); for (ZDisplayList* otherDList : dList->otherDLists) GenDListDeclarations(rawData, otherDList); for (pair<uint32_t, string> vtxEntry : dList->vtxDeclarations) { - zRoom->parent->AddDeclarationArray(vtxEntry.first, DeclarationAlignment::Align8, dList->vertices[vtxEntry.first].size() * 16, "static Vtx", - StringHelper::Sprintf("%sVtx_%06X", zRoom->GetName().c_str(), vtxEntry.first), dList->vertices[vtxEntry.first].size(), vtxEntry.second); + zRoom->parent->AddDeclarationArray( + vtxEntry.first, DeclarationAlignment::Align8, + dList->vertices[vtxEntry.first].size() * 16, "static Vtx", + StringHelper::Sprintf("%sVtx_%06X", zRoom->GetName().c_str(), vtxEntry.first), + dList->vertices[vtxEntry.first].size(), vtxEntry.second); } for (pair<uint32_t, string> texEntry : dList->texDeclarations) @@ -292,21 +367,30 @@ void SetMesh::GenDListDeclarations(std::vector<uint8_t> rawData, ZDisplayList* d if (Globals::Instance->verbosity >= VERBOSITY_DEBUG) printf("SAVING IMAGE TO %s\n", Globals::Instance->outputPath.c_str()); - + zRoom->textures[texEntry.first]->Save(Globals::Instance->outputPath); - zRoom->parent->AddDeclarationIncludeArray(texEntry.first, StringHelper::Sprintf("%s/%s.%s.inc.c", - Globals::Instance->outputPath.c_str(), Path::GetFileNameWithoutExtension(zRoom->textures[texEntry.first]->GetName()).c_str(), zRoom->textures[texEntry.first]->GetExternalExtension().c_str()), - zRoom->textures[texEntry.first]->GetRawDataSize(), "u64", StringHelper::Sprintf("%s", zRoom->textures[texEntry.first]->GetName().c_str(), texEntry.first), 0); + zRoom->parent->AddDeclarationIncludeArray( + texEntry.first, + StringHelper::Sprintf( + "%s/%s.%s.inc.c", Globals::Instance->outputPath.c_str(), + Path::GetFileNameWithoutExtension(zRoom->textures[texEntry.first]->GetName()) + .c_str(), + zRoom->textures[texEntry.first]->GetExternalExtension().c_str()), + zRoom->textures[texEntry.first]->GetRawDataSize(), "u64", + StringHelper::Sprintf("%s", zRoom->textures[texEntry.first]->GetName().c_str(), + texEntry.first), + 0); } } std::string SetMesh::GenDListExterns(ZDisplayList* dList) { string sourceOutput = ""; - + if (Globals::Instance->includeFilePrefix) - sourceOutput += StringHelper::Sprintf("extern Gfx %sDL_%06X[];\n", zRoom->GetName().c_str(), dList->GetRawDataIndex()); + sourceOutput += StringHelper::Sprintf("extern Gfx %sDL_%06X[];\n", zRoom->GetName().c_str(), + dList->GetRawDataIndex()); else sourceOutput += StringHelper::Sprintf("extern Gfx DL_%06X[];\n", dList->GetRawDataIndex()); @@ -314,7 +398,8 @@ std::string SetMesh::GenDListExterns(ZDisplayList* dList) sourceOutput += GenDListExterns(otherDList); for (pair<uint32_t, string> texEntry : dList->texDeclarations) - sourceOutput += StringHelper::Sprintf("extern u64 %sTex_%06X[];\n", zRoom->GetName().c_str(), texEntry.first); + sourceOutput += StringHelper::Sprintf("extern u64 %sTex_%06X[];\n", + zRoom->GetName().c_str(), texEntry.first); sourceOutput += dList->defines; @@ -324,17 +409,20 @@ std::string SetMesh::GenDListExterns(ZDisplayList* dList) string SetMesh::GenerateSourceCodePass1(string roomName, int baseAddress) { string sourceOutput = ""; - - sourceOutput += StringHelper::Sprintf("%s %i, (u32)&%sMeshHeader0x%06X", ZRoomCommand::GenerateSourceCodePass1(roomName, baseAddress).c_str(), data, zRoom->GetName().c_str(), segmentOffset); + + sourceOutput += + StringHelper::Sprintf("%s %i, (u32)&%sMeshHeader0x%06X", + ZRoomCommand::GenerateSourceCodePass1(roomName, baseAddress).c_str(), + data, zRoom->GetName().c_str(), segmentOffset); /*if (meshHeader->headerType == 0) { - MeshHeader0* meshHeader0 = (MeshHeader0*)meshHeader; + MeshHeader0* meshHeader0 = (MeshHeader0*)meshHeader; } else { - sourceOutput += "// SetMesh UNIMPLEMENTED HEADER TYPE!\n"; + sourceOutput += "// SetMesh UNIMPLEMENTED HEADER TYPE!\n"; } */ return sourceOutput; @@ -348,9 +436,12 @@ string SetMesh::GenerateExterns() { MeshHeader0* meshHeader0 = (MeshHeader0*)meshHeader; - sourceOutput += StringHelper::Sprintf("extern MeshHeader0 %sMeshHeader0x%06X;\n", zRoom->GetName().c_str(), segmentOffset); - sourceOutput += StringHelper::Sprintf("extern MeshEntry0 %sMeshDListEntry0x%06X[%i];\n", zRoom->GetName().c_str(), meshHeader0->dListStart, meshHeader0->entries.size()); - + sourceOutput += StringHelper::Sprintf("extern MeshHeader0 %sMeshHeader0x%06X;\n", + zRoom->GetName().c_str(), segmentOffset); + sourceOutput += StringHelper::Sprintf("extern MeshEntry0 %sMeshDListEntry0x%06X[%i];\n", + zRoom->GetName().c_str(), meshHeader0->dListStart, + meshHeader0->entries.size()); + for (MeshEntry0* entry : meshHeader0->entries) { if (entry->opaqueDList != nullptr) @@ -365,16 +456,21 @@ string SetMesh::GenerateExterns() MeshHeader1Base* meshHeader1 = (MeshHeader1Base*)meshHeader; if (meshHeader1->format == 1) - sourceOutput += StringHelper::Sprintf("extern MeshHeader1Single %sMeshHeader0x%06X;\n", zRoom->GetName().c_str(), segmentOffset); + sourceOutput += StringHelper::Sprintf("extern MeshHeader1Single %sMeshHeader0x%06X;\n", + zRoom->GetName().c_str(), segmentOffset); else if (meshHeader1->format == 2) - sourceOutput += StringHelper::Sprintf("extern MeshHeader1Multi %sMeshHeader0x%06X;\n", zRoom->GetName().c_str(), segmentOffset); + sourceOutput += StringHelper::Sprintf("extern MeshHeader1Multi %sMeshHeader0x%06X;\n", + zRoom->GetName().c_str(), segmentOffset); } else if (meshHeader->headerType == 2) { MeshHeader2* meshHeader2 = (MeshHeader2*)meshHeader; - sourceOutput += StringHelper::Sprintf("extern MeshHeader2 %sMeshHeader0x%06X;\n", zRoom->GetName().c_str(), segmentOffset); - sourceOutput += StringHelper::Sprintf("extern MeshEntry2 %sMeshDListEntry0x%06X[%i];\n", zRoom->GetName().c_str(), meshHeader2->dListStart, meshHeader2->entries.size()); + sourceOutput += StringHelper::Sprintf("extern MeshHeader2 %sMeshHeader0x%06X;\n", + zRoom->GetName().c_str(), segmentOffset); + sourceOutput += StringHelper::Sprintf("extern MeshEntry2 %sMeshDListEntry0x%06X[%i];\n", + zRoom->GetName().c_str(), meshHeader2->dListStart, + meshHeader2->entries.size()); for (MeshEntry2* entry : meshHeader2->entries) { @@ -387,7 +483,7 @@ string SetMesh::GenerateExterns() } else { - //sourceOutput += "// SetMesh UNIMPLEMENTED HEADER TYPE!\n"; + // sourceOutput += "// SetMesh UNIMPLEMENTED HEADER TYPE!\n"; } return sourceOutput; |
