summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlouist103 <louist103@gmail.com>2022-01-28 12:04:08 -0500
committerlouist103 <louist103@gmail.com>2022-01-28 12:04:08 -0500
commitdad6d087fd4dce68db60f8d0cde23d1b14a6ada8 (patch)
treef4c93e50c7d986a4b901710552bfc98fbe003c85
parent2174e8ddfd02dc90140fe38382c8a1ea064f860c (diff)
Re do the sketchy exporter
-rw-r--r--OTRExporter/DisplayListExporter.cpp39
1 files changed, 12 insertions, 27 deletions
diff --git a/OTRExporter/DisplayListExporter.cpp b/OTRExporter/DisplayListExporter.cpp
index 1042542..b30c9c1 100644
--- a/OTRExporter/DisplayListExporter.cpp
+++ b/OTRExporter/DisplayListExporter.cpp
@@ -677,29 +677,36 @@ void OTRExporter_DisplayList::Save(ZResource* res, const fs::path& outPath, Bina
std::string fName = OTRExporter_DisplayList::GetPathToRes(res, vtxDecl->varName);
- printf("Exporting VTX Data %s\n", fName.c_str());
+
uint64_t hash = CRC64(fName.c_str());
word0 = hash >> 32;
word1 = hash & 0xFFFFFFFF;
- //if (!otrArchive->HasFile(fName))
+ if (!otrArchive->HasFile(fName))
{
+ printf("Exporting VTX Data %s\n", fName.c_str());
// Write vertices to file
MemoryStream* vtxStream = new MemoryStream();
BinaryWriter vtxWriter = BinaryWriter(vtxStream);
size_t sz = dList->vertices[vtxDecl->address].size();
-
+
if (sz > 0)
{
auto start = std::chrono::steady_clock::now();
// God dammit this is so dumb
auto split = StringHelper::Split(vtxDecl->text, "\n");
-
- for (int i = 0; i < split.size(); i++)
+ size_t size = split.size();
+ vtxWriter.Write((uint8_t)Endianess::Little);
+ vtxWriter.Write((uint32_t)Ship::ResourceType::Vertex);
+ vtxWriter.Write((uint32_t)Ship::Version::Deckard);
+ vtxWriter.Write((uint64_t)0xDEADBEEFDEADBEEF); // id
+ vtxWriter.Write((uint32_t)vtxDecl->arrayItemCnt);
+
+ for (size_t i = 0; i < size; i++)
{
std::string line = split[i];
@@ -724,28 +731,6 @@ void OTRExporter_DisplayList::Save(ZResource* res, const fs::path& outPath, Bina
int bp = 0;
}
}
-
- /*for (size_t i = 0; i < sz; i++)
- {
- auto v = dList->vertices[vtxDecl->address][i];
-
- vtxWriter.Write(v.x);
- vtxWriter.Write(v.y);
- vtxWriter.Write(v.z);
- vtxWriter.Write(v.flag);
- vtxWriter.Write(v.s);
- vtxWriter.Write(v.t);
- vtxWriter.Write(v.r);
- vtxWriter.Write(v.g);
- vtxWriter.Write(v.b);
- vtxWriter.Write(v.a);
- }*/
-
- //#ifdef _DEBUG
- //if (otrotrArchive->HasFile(fName))
- //otrotrArchive->RemoveFile(fName);
- //#endif
-
otrArchive->AddFile(fName, (uintptr_t)vtxStream->ToVector().data(), vtxWriter.GetBaseAddress());
auto end = std::chrono::steady_clock::now();