diff options
| author | Matt Damon <mattdamon@damon.matt> | 2022-01-21 23:44:41 -0500 |
|---|---|---|
| committer | Matt Damon <mattdamon@damon.matt> | 2022-01-21 23:44:41 -0500 |
| commit | 2f079c82bfc6f6b0727c327cf375de83d284db3b (patch) | |
| tree | 79ae5ff65061ee78ba56c38dab2c919b6cf72c92 | |
| parent | 96d7f8c6c407e4df498c46d4b48db334949b2306 (diff) | |
Array and text exporter stuff
| -rw-r--r-- | OTRExporter/ArrayExporter.cpp | 77 | ||||
| -rw-r--r-- | OTRExporter/Main.cpp | 2 | ||||
| -rw-r--r-- | OTRExporter/OTRExporter.vcxproj | 2 | ||||
| -rw-r--r-- | OTRExporter/OTRExporter.vcxproj.filters | 6 | ||||
| -rw-r--r-- | OTRExporter/TextExporter.cpp | 23 | ||||
| -rw-r--r-- | OTRExporter/TextExporter.h | 12 |
6 files changed, 92 insertions, 30 deletions
diff --git a/OTRExporter/ArrayExporter.cpp b/OTRExporter/ArrayExporter.cpp index 0cfbaed..d0d8dc7 100644 --- a/OTRExporter/ArrayExporter.cpp +++ b/OTRExporter/ArrayExporter.cpp @@ -11,37 +11,54 @@ void OTRExporter_Array::Save(ZResource* res, fs::path outPath, BinaryWriter* wri for (int i = 0; i < arr->arrayCnt; i++)
{
- ZScalar* scal = (ZScalar*)arr->resList[i];
-
- writer->Write((uint32_t)scal->scalarType);
-
- switch (scal->scalarType)
+ if (arr->resList[i]->GetResourceType() == ZResourceType::Vertex)
+ {
+ ZVtx* vtx = (ZVtx*)arr->resList[i];
+ writer->Write(vtx->x);
+ writer->Write(vtx->y);
+ writer->Write(vtx->z);
+ writer->Write(vtx->flag);
+ writer->Write(vtx->s);
+ writer->Write(vtx->t);
+ writer->Write(vtx->r);
+ writer->Write(vtx->g);
+ writer->Write(vtx->b);
+ writer->Write(vtx->a);
+ }
+ else
{
- case ZScalarType::ZSCALAR_U8:
- writer->Write(scal->scalarData.u8);
- break;
- case ZScalarType::ZSCALAR_S8:
- writer->Write(scal->scalarData.s8);
- break;
- case ZScalarType::ZSCALAR_U16:
- writer->Write(scal->scalarData.u16);
- break;
- case ZScalarType::ZSCALAR_S16:
- writer->Write(scal->scalarData.s16);
- break;
- case ZScalarType::ZSCALAR_S32:
- writer->Write(scal->scalarData.s32);
- break;
- case ZScalarType::ZSCALAR_U32:
- writer->Write(scal->scalarData.u32);
- break;
- case ZScalarType::ZSCALAR_S64:
- writer->Write(scal->scalarData.s64);
- break;
- case ZScalarType::ZSCALAR_U64:
- writer->Write(scal->scalarData.u64);
- break;
- // OTRTODO: ADD OTHER TYPES
+ ZScalar* scal = (ZScalar*)arr->resList[i];
+
+ writer->Write((uint32_t)scal->scalarType);
+
+ switch (scal->scalarType)
+ {
+ case ZScalarType::ZSCALAR_U8:
+ writer->Write(scal->scalarData.u8);
+ break;
+ case ZScalarType::ZSCALAR_S8:
+ writer->Write(scal->scalarData.s8);
+ break;
+ case ZScalarType::ZSCALAR_U16:
+ writer->Write(scal->scalarData.u16);
+ break;
+ case ZScalarType::ZSCALAR_S16:
+ writer->Write(scal->scalarData.s16);
+ break;
+ case ZScalarType::ZSCALAR_S32:
+ writer->Write(scal->scalarData.s32);
+ break;
+ case ZScalarType::ZSCALAR_U32:
+ writer->Write(scal->scalarData.u32);
+ break;
+ case ZScalarType::ZSCALAR_S64:
+ writer->Write(scal->scalarData.s64);
+ break;
+ case ZScalarType::ZSCALAR_U64:
+ writer->Write(scal->scalarData.u64);
+ break;
+ // OTRTODO: ADD OTHER TYPES
+ }
}
}
diff --git a/OTRExporter/Main.cpp b/OTRExporter/Main.cpp index fb57dc8..a206b20 100644 --- a/OTRExporter/Main.cpp +++ b/OTRExporter/Main.cpp @@ -13,6 +13,7 @@ #include "AnimationExporter.h" #include "CutsceneExporter.h" #include "PathExporter.h" +#include "TextExporter.h" #include <Globals.h> #include <Utils/File.h> #include <Utils/Directory.h> @@ -184,6 +185,7 @@ static void ImportExporters() exporterSet->exporters[ZResourceType::Vertex] = new OTRExporter_Vtx(); exporterSet->exporters[ZResourceType::Array] = new OTRExporter_Array(); exporterSet->exporters[ZResourceType::Path] = new OTRExporter_Path(); + exporterSet->exporters[ZResourceType::Text] = new OTRExporter_Text(); Globals::AddExporter("OTR", exporterSet); } diff --git a/OTRExporter/OTRExporter.vcxproj b/OTRExporter/OTRExporter.vcxproj index 74c6fa6..a3bc066 100644 --- a/OTRExporter/OTRExporter.vcxproj +++ b/OTRExporter/OTRExporter.vcxproj @@ -33,6 +33,7 @@ <ClInclude Include="PathExporter.h" />
<ClInclude Include="PlayerAnimationExporter.h" />
<ClInclude Include="RoomExporter.h" />
+ <ClInclude Include="TextExporter.h" />
<ClInclude Include="TextureExporter.h" />
<ClInclude Include="VtxExporter.h" />
<ClInclude Include="z64cutscene.h" />
@@ -52,6 +53,7 @@ <ClCompile Include="PathExporter.cpp" />
<ClCompile Include="PlayerAnimationExporter.cpp" />
<ClCompile Include="RoomExporter.cpp" />
+ <ClCompile Include="TextExporter.cpp" />
<ClCompile Include="TextureExporter.cpp" />
<ClCompile Include="VtxExporter.cpp" />
</ItemGroup>
diff --git a/OTRExporter/OTRExporter.vcxproj.filters b/OTRExporter/OTRExporter.vcxproj.filters index ed559ee..08a5f46 100644 --- a/OTRExporter/OTRExporter.vcxproj.filters +++ b/OTRExporter/OTRExporter.vcxproj.filters @@ -69,6 +69,9 @@ <ClInclude Include="SkeletonLimbExporter.h">
<Filter>Header Files</Filter>
</ClInclude>
+ <ClInclude Include="TextExporter.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="CollisionExporter.cpp">
@@ -116,5 +119,8 @@ <ClCompile Include="PathExporter.cpp">
<Filter>Source Files</Filter>
</ClCompile>
+ <ClCompile Include="TextExporter.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
</ItemGroup>
</Project>
\ No newline at end of file diff --git a/OTRExporter/TextExporter.cpp b/OTRExporter/TextExporter.cpp new file mode 100644 index 0000000..4c9821f --- /dev/null +++ b/OTRExporter/TextExporter.cpp @@ -0,0 +1,23 @@ +#include "TextExporter.h" +#include "../ZAPD/ZFile.h" + +void OTRExporter_Text::Save(ZResource* res, fs::path outPath, BinaryWriter* writer) +{ + ZText* txt = (ZText*)res; + + WriteHeader(txt, outPath, writer, Ship::ResourceType::Text); + + auto start = std::chrono::steady_clock::now(); + + //printf("Exporting Texture %s\n", tex->GetName().c_str()); + + writer->Write((uint32_t)txt->messages.size()); + + for (int i = 0; i < txt->messages.size(); i++) + { + writer->Write(txt->messages[i].id); + writer->Write(txt->messages[i].textboxType); + writer->Write(txt->messages[i].textboxYPos); + writer->Write(txt->messages[i].msg); + } +} diff --git a/OTRExporter/TextExporter.h b/OTRExporter/TextExporter.h new file mode 100644 index 0000000..7ffb5b4 --- /dev/null +++ b/OTRExporter/TextExporter.h @@ -0,0 +1,12 @@ +#pragma once + +#include "ZResource.h" +#include "ZText.h" +#include "Exporter.h" +#include <Utils/BinaryWriter.h> + +class OTRExporter_Text : public OTRExporter +{ +public: + virtual void Save(ZResource* res, fs::path outPath, BinaryWriter* writer) override; +};
\ No newline at end of file |
