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/ZCollision.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/ZCollision.cpp')
| -rw-r--r-- | ZAPD/ZCollision.cpp | 138 |
1 files changed, 88 insertions, 50 deletions
diff --git a/ZAPD/ZCollision.cpp b/ZAPD/ZCollision.cpp index 8d28fe8..bb3144a 100644 --- a/ZAPD/ZCollision.cpp +++ b/ZAPD/ZCollision.cpp @@ -1,18 +1,18 @@ #include "ZCollision.h" -#include "BitConverter.h" -#include "StringHelper.h" -#include "Globals.h" #include <stdint.h> #include <string> +#include "BitConverter.h" +#include "Globals.h" +#include "StringHelper.h" using namespace std; ZCollisionHeader::ZCollisionHeader() { - } -ZCollisionHeader::ZCollisionHeader(ZFile* parent, const std::string& prefix, const std::vector<uint8_t>& rawData, int rawDataIndex) +ZCollisionHeader::ZCollisionHeader(ZFile* parent, const std::string& prefix, + const std::vector<uint8_t>& rawData, int rawDataIndex) { const uint8_t* data = rawData.data(); @@ -57,24 +57,28 @@ ZCollisionHeader::ZCollisionHeader(ZFile* parent, const std::string& prefix, con highestPolyType = poly->type; } - //if (highestPolyType > 0) + // if (highestPolyType > 0) { for (uint16_t i = 0; i < highestPolyType + 1; i++) - polygonTypes.push_back(BitConverter::ToUInt64BE(data, polyTypeDefSegmentOffset + (i * 8))); + polygonTypes.push_back( + BitConverter::ToUInt64BE(data, polyTypeDefSegmentOffset + (i * 8))); } - //else + // else //{ - //int polyTypesSize = abs(polyTypeDefSegmentOffset - camDataSegmentOffset) / 8; + // int polyTypesSize = abs(polyTypeDefSegmentOffset - camDataSegmentOffset) / 8; - //for (int i = 0; i < polyTypesSize; i++) - //polygonTypes.push_back(BitConverter::ToUInt64BE(data, polyTypeDefSegmentOffset + (i * 8))); + // for (int i = 0; i < polyTypesSize; i++) + // polygonTypes.push_back(BitConverter::ToUInt64BE(data, polyTypeDefSegmentOffset + (i * 8))); //} if (camDataAddress != 0) - camData = new CameraDataList(parent, prefix, rawData, camDataSegmentOffset, polyTypeDefSegmentOffset, polygonTypes.size()); + camData = new CameraDataList(parent, prefix, rawData, camDataSegmentOffset, + polyTypeDefSegmentOffset, polygonTypes.size()); for (int i = 0; i < numWaterBoxes; i++) - waterBoxes.push_back(new WaterBoxHeader(rawData, waterBoxSegmentOffset + (i * (Globals::Instance->game == ZGame::OOT_SW97 ? 12 : 16)))); + waterBoxes.push_back(new WaterBoxHeader( + rawData, + waterBoxSegmentOffset + (i * (Globals::Instance->game == ZGame::OOT_SW97 ? 12 : 16)))); string declaration = ""; char line[2048]; @@ -83,14 +87,18 @@ ZCollisionHeader::ZCollisionHeader(ZFile* parent, const std::string& prefix, con { for (size_t i = 0; i < waterBoxes.size(); i++) { - sprintf(line, " { %i, %i, %i, %i, %i, 0x%08X },\n", waterBoxes[i]->xMin, waterBoxes[i]->ySurface, waterBoxes[i]->zMin, waterBoxes[i]->xLength, waterBoxes[i]->zLength, waterBoxes[i]->properties); + sprintf(line, " { %i, %i, %i, %i, %i, 0x%08X },\n", waterBoxes[i]->xMin, + waterBoxes[i]->ySurface, waterBoxes[i]->zMin, waterBoxes[i]->xLength, + waterBoxes[i]->zLength, waterBoxes[i]->properties); declaration += line; } } if (waterBoxAddress != 0) - parent->AddDeclarationArray(waterBoxSegmentOffset, DeclarationAlignment::None, 16 * waterBoxes.size(), "WaterBox", - StringHelper::Sprintf("%s_waterBoxes_%08X", prefix.c_str(), waterBoxSegmentOffset), 0, declaration); + parent->AddDeclarationArray( + waterBoxSegmentOffset, DeclarationAlignment::None, 16 * waterBoxes.size(), "WaterBox", + StringHelper::Sprintf("%s_waterBoxes_%08X", prefix.c_str(), waterBoxSegmentOffset), 0, + declaration); if (polygons.size() > 0) { @@ -98,29 +106,40 @@ ZCollisionHeader::ZCollisionHeader(ZFile* parent, const std::string& prefix, con for (size_t i = 0; i < polygons.size(); i++) { - sprintf(line, " { 0x%04X, 0x%04X, 0x%04X, 0x%04X, 0x%04X, 0x%04X, 0x%04X, 0x%04X },\n", - (uint16_t)polygons[i]->type, (uint16_t)polygons[i]->vtxA, (uint16_t)polygons[i]->vtxB, (uint16_t)polygons[i]->vtxC, - (uint16_t)polygons[i]->a, (uint16_t)polygons[i]->b, (uint16_t)polygons[i]->c, (uint16_t)polygons[i]->d); + sprintf( + line, " { 0x%04X, 0x%04X, 0x%04X, 0x%04X, 0x%04X, 0x%04X, 0x%04X, 0x%04X },\n", + (uint16_t)polygons[i]->type, (uint16_t)polygons[i]->vtxA, + (uint16_t)polygons[i]->vtxB, (uint16_t)polygons[i]->vtxC, (uint16_t)polygons[i]->a, + (uint16_t)polygons[i]->b, (uint16_t)polygons[i]->c, (uint16_t)polygons[i]->d); declaration += line; } - if (polyAddress != 0) { - parent->AddDeclarationArray(polySegmentOffset, DeclarationAlignment::None, polygons.size() * 16, "CollisionPoly", StringHelper::Sprintf("%s_polygons_%08X", prefix.c_str(), polySegmentOffset), 0, declaration); + if (polyAddress != 0) + { + parent->AddDeclarationArray( + polySegmentOffset, DeclarationAlignment::None, polygons.size() * 16, + "CollisionPoly", + StringHelper::Sprintf("%s_polygons_%08X", prefix.c_str(), polySegmentOffset), 0, + declaration); } } declaration = ""; for (size_t i = 0; i < polygonTypes.size(); i++) { - declaration += StringHelper::Sprintf(" { 0x%08lX, 0x%08lX },", polygonTypes[i] >> 32, polygonTypes[i] & 0xFFFFFFFF); + declaration += StringHelper::Sprintf(" { 0x%08lX, 0x%08lX },", polygonTypes[i] >> 32, + polygonTypes[i] & 0xFFFFFFFF); if (i < polygonTypes.size() - 1) declaration += "\n"; } if (polyTypeDefAddress != 0) - parent->AddDeclarationArray(polyTypeDefSegmentOffset, DeclarationAlignment::None, polygonTypes.size() * 8, - "SurfaceType", StringHelper::Sprintf("%s_surfaceType_%08X", prefix.c_str(), polyTypeDefSegmentOffset), 0, declaration); + parent->AddDeclarationArray( + polyTypeDefSegmentOffset, DeclarationAlignment::None, polygonTypes.size() * 8, + "SurfaceType", + StringHelper::Sprintf("%s_surfaceType_%08X", prefix.c_str(), polyTypeDefSegmentOffset), + 0, declaration); declaration = ""; @@ -130,15 +149,18 @@ ZCollisionHeader::ZCollisionHeader(ZFile* parent, const std::string& prefix, con for (size_t i = 0; i < vertices.size(); i++) { - declaration += StringHelper::Sprintf(" { %i, %i, %i },", vertices[i]->x, vertices[i]->y, vertices[i]->z); + declaration += StringHelper::Sprintf(" { %i, %i, %i },", vertices[i]->x, + vertices[i]->y, vertices[i]->z); if (i < vertices.size() - 1) declaration += "\n"; } if (vtxAddress != 0) - parent->AddDeclarationArray(vtxSegmentOffset, DeclarationAlignment::None, vertices.size() * 6, - "Vec3s", StringHelper::Sprintf("%s_vtx_%08X", prefix.c_str(), vtxSegmentOffset), 0, declaration); + parent->AddDeclarationArray( + vtxSegmentOffset, DeclarationAlignment::None, vertices.size() * 6, "Vec3s", + StringHelper::Sprintf("%s_vtx_%08X", prefix.c_str(), vtxSegmentOffset), 0, + declaration); declaration = ""; } @@ -153,17 +175,19 @@ ZCollisionHeader::ZCollisionHeader(ZFile* parent, const std::string& prefix, con declaration += "\n"; - declaration += StringHelper::Sprintf(" { %i, %i, %i },\n { %i, %i, %i },\n", - absMinX, absMinY, absMinZ, - absMaxX, absMaxY, absMaxZ); + declaration += StringHelper::Sprintf(" { %i, %i, %i },\n { %i, %i, %i },\n", absMinX, + absMinY, absMinZ, absMaxX, absMaxY, absMaxZ); - declaration += StringHelper::Sprintf(" %i,\n %s_vtx_%08X,\n %i,\n %s_polygons_%08X,\n %s_surfaceType_%08X,\n %s_camDataList_%08X,\n %i,\n %s\n", - numVerts, prefix.c_str(), vtxSegmentOffset, numPolygons, - prefix.c_str(), polySegmentOffset, prefix.c_str(), polyTypeDefSegmentOffset, - prefix.c_str(), camDataSegmentOffset, numWaterBoxes, waterBoxStr); + declaration += StringHelper::Sprintf( + " %i,\n %s_vtx_%08X,\n %i,\n %s_polygons_%08X,\n %s_surfaceType_%08X,\n " + "%s_camDataList_%08X,\n %i,\n %s\n", + numVerts, prefix.c_str(), vtxSegmentOffset, numPolygons, prefix.c_str(), polySegmentOffset, + prefix.c_str(), polyTypeDefSegmentOffset, prefix.c_str(), camDataSegmentOffset, + numWaterBoxes, waterBoxStr); - parent->AddDeclaration(rawDataIndex, DeclarationAlignment::None, DeclarationPadding::Pad16, 44, "CollisionHeader", - StringHelper::Sprintf("%s", prefix.c_str(), rawDataIndex), declaration); + parent->AddDeclaration(rawDataIndex, DeclarationAlignment::None, DeclarationPadding::Pad16, 44, + "CollisionHeader", + StringHelper::Sprintf("%s", prefix.c_str(), rawDataIndex), declaration); } ZCollisionHeader::~ZCollisionHeader() @@ -183,12 +207,11 @@ ZResourceType ZCollisionHeader::GetResourceType() return ZResourceType::CollisionHeader; } -ZCollisionHeader* ZCollisionHeader::ExtractFromXML(tinyxml2::XMLElement* reader, vector<uint8_t> nRawData, int rawDataIndex) +ZCollisionHeader* ZCollisionHeader::ExtractFromXML(tinyxml2::XMLElement* reader, + vector<uint8_t> nRawData, int rawDataIndex) { ZCollisionHeader* col = new ZCollisionHeader(); - - return col; } @@ -234,21 +257,25 @@ WaterBoxHeader::WaterBoxHeader(const std::vector<uint8_t>& rawData, int rawDataI } } -CameraDataList::CameraDataList(ZFile* parent, const std::string& prefix, const std::vector<uint8_t>& rawData, int rawDataIndex, int polyTypeDefSegmentOffset, int polygonTypesCnt) +CameraDataList::CameraDataList(ZFile* parent, const std::string& prefix, + const std::vector<uint8_t>& rawData, int rawDataIndex, + int polyTypeDefSegmentOffset, int polygonTypesCnt) { string declaration = ""; // Parse CameraDataEntries int numElements = abs(polyTypeDefSegmentOffset - (rawDataIndex)) / 8; - //int numElements = polygonTypesCnt; + // int numElements = polygonTypesCnt; uint32_t cameraPosDataSeg = rawDataIndex; for (int i = 0; i < numElements; i++) { CameraDataEntry* entry = new CameraDataEntry(); - entry->cameraSType = BitConverter::ToInt16BE(rawData, rawDataIndex + (entries.size() * 8) + 0); + entry->cameraSType = + BitConverter::ToInt16BE(rawData, rawDataIndex + (entries.size() * 8) + 0); entry->numData = BitConverter::ToInt16BE(rawData, rawDataIndex + (entries.size() * 8) + 2); - entry->cameraPosDataSeg = BitConverter::ToInt32BE(rawData, rawDataIndex + (entries.size() * 8) + 4); + entry->cameraPosDataSeg = + BitConverter::ToInt32BE(rawData, rawDataIndex + (entries.size() * 8) + 4); if (entry->cameraPosDataSeg != 0 && GETSEGNUM(entry->cameraPosDataSeg) != 2) { @@ -262,7 +289,7 @@ CameraDataList::CameraDataList(ZFile* parent, const std::string& prefix, const s entries.push_back(entry); } - //setting cameraPosDataAddr to rawDataIndex give a pos list length of 0 + // setting cameraPosDataAddr to rawDataIndex give a pos list length of 0 uint32_t cameraPosDataOffset = cameraPosDataSeg & 0xFFFFFF; for (size_t i = 0; i < entries.size(); i++) { @@ -271,18 +298,24 @@ CameraDataList::CameraDataList(ZFile* parent, const std::string& prefix, const s if (entries[i]->cameraPosDataSeg != 0) { int index = ((entries[i]->cameraPosDataSeg & 0x00FFFFFF) - cameraPosDataOffset) / 0x6; - sprintf(camSegLine, "&%s_camPosData_%08X[%i]", prefix.c_str(), cameraPosDataOffset, index); + sprintf(camSegLine, "&%s_camPosData_%08X[%i]", prefix.c_str(), cameraPosDataOffset, + index); } else sprintf(camSegLine, "0x%08X", entries[i]->cameraPosDataSeg); - declaration += StringHelper::Sprintf(" { 0x%04X, %i, %s },", entries[i]->cameraSType, entries[i]->numData, camSegLine, rawDataIndex + (i * 8)); + declaration += + StringHelper::Sprintf(" { 0x%04X, %i, %s },", entries[i]->cameraSType, + entries[i]->numData, camSegLine, rawDataIndex + (i * 8)); if (i < entries.size() - 1) declaration += "\n"; } - parent->AddDeclarationArray(rawDataIndex, DeclarationAlignment::None, entries.size() * 8, "CamData", StringHelper::Sprintf("%s_camDataList_%08X", prefix.c_str(), rawDataIndex), entries.size(), declaration); + parent->AddDeclarationArray( + rawDataIndex, DeclarationAlignment::None, entries.size() * 8, "CamData", + StringHelper::Sprintf("%s_camDataList_%08X", prefix.c_str(), rawDataIndex), entries.size(), + declaration); int numDataTotal = abs(rawDataIndex - (int)cameraPosDataOffset) / 0x6; @@ -291,15 +324,20 @@ CameraDataList::CameraDataList(ZFile* parent, const std::string& prefix, const s declaration = ""; for (int i = 0; i < numDataTotal; i++) { - CameraPositionData* data = new CameraPositionData(rawData, cameraPosDataOffset + (i * 6)); + CameraPositionData* data = + new CameraPositionData(rawData, cameraPosDataOffset + (i * 6)); cameraPositionData.push_back(data); - declaration += StringHelper::Sprintf(" { %6i, %6i, %6i },\n", data->x, data->y, data->z); + declaration += + StringHelper::Sprintf(" { %6i, %6i, %6i },\n", data->x, data->y, data->z); } int cameraPosDataIndex = cameraPosDataSeg & 0x00FFFFFF; int entrySize = numDataTotal * 0x6; - parent->AddDeclarationArray(cameraPosDataIndex, DeclarationAlignment::None, entrySize, "Vec3s", StringHelper::Sprintf("%s_camPosData_%08X", prefix.c_str(), cameraPosDataIndex), numDataTotal, declaration); + parent->AddDeclarationArray( + cameraPosDataIndex, DeclarationAlignment::None, entrySize, "Vec3s", + StringHelper::Sprintf("%s_camPosData_%08X", prefix.c_str(), cameraPosDataIndex), + numDataTotal, declaration); } } |
