From 5accafc0323aef88b52615bb9b9a0107e8ffd453 Mon Sep 17 00:00:00 2001 From: Archez Date: Sun, 18 Feb 2024 14:34:15 -0500 Subject: handle all sgement lookups for vtx commands (#12) --- OTRExporter/DisplayListExporter.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/OTRExporter/DisplayListExporter.cpp b/OTRExporter/DisplayListExporter.cpp index 0e5a647..5d4b979 100644 --- a/OTRExporter/DisplayListExporter.cpp +++ b/OTRExporter/DisplayListExporter.cpp @@ -804,17 +804,15 @@ void OTRExporter_DisplayList::Save(ZResource* res, const fs::path& outPath, Bina break; case G_VTX: { - if (GETSEGNUM(data) == 0xC || GETSEGNUM(data) == 0x8) + if (!Globals::Instance->HasSegment(GETSEGNUM(data), res->parent->workerID)) { - // hack for dynamic verticies used in en_ganon_mant and en_jsjutan - // TODO is there a better way? int32_t aa = (data & 0x000000FF00000000ULL) >> 32; int32_t nn = (data & 0x000FF00000000000ULL) >> 44; - Gfx value = {gsSPVertex(data & 0xFFFFFFFF, nn, ((aa >> 1) - nn))}; + Gfx value = {gsSPVertex((data & 0xFFFFFFFF) + 1, nn, ((aa >> 1) - nn))}; word0 = value.words.w0; - word1 = value.words.w1 | 1; + word1 = value.words.w1; } else { -- cgit v1.2.3