From 9f27b58f95852caa59094daf238041dcab083890 Mon Sep 17 00:00:00 2001 From: Kawe Mazidjatari <48657826+Mauler125@users.noreply.github.com> Date: Mon, 18 Jul 2022 19:32:36 +0200 Subject: [PATCH] Improve struct member naming consistency Improved alignment of class 'Sample' and improved naming consistency. --- r5dev/naveditor/Sample.cpp | 44 +++++++++---------- r5dev/naveditor/Sample_TileMesh.cpp | 4 +- r5dev/naveditor/include/Sample.h | 11 +++-- .../recast/Detour/Include/DetourNavMesh.h | 12 ++--- .../recast/Detour/Source/DetourNavMesh.cpp | 3 -- .../Detour/Source/DetourNavMeshBuilder.cpp | 2 +- 6 files changed, 37 insertions(+), 39 deletions(-) diff --git a/r5dev/naveditor/Sample.cpp b/r5dev/naveditor/Sample.cpp index 96e3b65a..ac6e0844 100644 --- a/r5dev/naveditor/Sample.cpp +++ b/r5dev/naveditor/Sample.cpp @@ -174,7 +174,7 @@ void Sample::resetCommonSettings() m_detailSampleDist = 6.0f; m_detailSampleMaxError = 1.0f; m_partitionType = SAMPLE_PARTITION_WATERSHED; - m_count_reachability_tables = 1; + m_reachabilityTableCount = 1; } hulldef hulls[5] = { {"small",8,72*0.5,70,512.0f}, @@ -194,8 +194,8 @@ void Sample::handleCommonSettings() m_agentMaxClimb = h.climb_height; m_agentHeight = h.height; if (is_human) - m_count_reachability_tables = 4; - m_navmesh_name = h.name; + m_reachabilityTableCount = 4; + m_navmeshName = h.name; } is_human = false; } @@ -483,7 +483,7 @@ void build_link_table(dtNavMesh* mesh, LinkTableData& data) for (int j = 0; j < pcount; j++) { auto& poly = tile->polys[j]; - poly.link_table_idx = -1; + poly.disjointSetId = -1; } } //first pass @@ -504,18 +504,18 @@ void build_link_table(dtNavMesh* mesh, LinkTableData& data) const dtPoly* p; mesh->getTileAndPolyByRefUnsafe(l.ref, &t, &p); - if (p->link_table_idx != (unsigned short)-1) - nlabels.insert(p->link_table_idx); + if (p->disjointSetId != (unsigned short)-1) + nlabels.insert(p->disjointSetId); plink = l.next; } if (nlabels.empty()) { - poly.link_table_idx = data.insert_new(); + poly.disjointSetId = data.insert_new(); } else { auto l = *nlabels.begin(); - poly.link_table_idx = l; + poly.disjointSetId = l; for (auto nl : nlabels) data.set_union(l, nl); } @@ -531,8 +531,8 @@ void build_link_table(dtNavMesh* mesh, LinkTableData& data) for (int j = 0; j < pcount; j++) { auto& poly = tile->polys[j]; - auto id = data.find(poly.link_table_idx); - poly.link_table_idx = id; + auto id = data.find(poly.disjointSetId); + poly.disjointSetId = id; } } } @@ -551,7 +551,7 @@ dtNavMesh* Sample::loadAll(const char* path) { char buffer[256]; - sprintf(buffer, "%s_%s.nm", path, m_navmesh_name); + sprintf(buffer, "%s_%s.nm", path, m_navmeshName); FILE* fp = fopen(buffer, "rb"); if (!fp) return 0; @@ -636,7 +636,7 @@ void Sample::saveAll(std::string path, dtNavMesh* mesh) } char buffer[256]; - sprintf(buffer, "%s_%s.nm", path.c_str(), m_navmesh_name); + sprintf(buffer, "%s_%s.nm", path.c_str(), m_navmeshName); FILE* fp = fopen(buffer, "wb"); if (!fp) @@ -655,8 +655,8 @@ void Sample::saveAll(std::string path, dtNavMesh* mesh) header.numTiles++; } memcpy(&header.params, mesh->getParams(), sizeof(dtNavMeshParams)); - header.params.disjoint_poly_group_count = 3; - header.params.reachability_table_size = ((header.params.disjoint_poly_group_count + 31) / 32) * header.params.disjoint_poly_group_count * 32; + header.params.disjointPolyGroupCount = 3; + header.params.reachabilityTableSize = ((header.params.disjointPolyGroupCount + 31) / 32) * header.params.disjointPolyGroupCount * 32; if (*is_tf2)unpatch_headertf2(header); fwrite(&header, sizeof(NavMeshSetHeader), 1, fp); @@ -683,8 +683,8 @@ void Sample::saveAll(std::string path, dtNavMesh* mesh) for (int i = 0; i < 32 * 3; i++) reachability[i] = 0xffffffff; - for (int i = 0; i < header.params.reachability_table_count; i++) - fwrite(reachability, sizeof(int), (header.params.reachability_table_size / 4), fp); + for (int i = 0; i < header.params.reachabilityTableCount; i++) + fwrite(reachability, sizeof(int), (header.params.reachabilityTableSize / 4), fp); fclose(fp); } @@ -700,7 +700,7 @@ void Sample::saveAll(std::string path, dtNavMesh* mesh) // } // // char buffer[256]; -// sprintf(buffer, "%s_%s.nm", path.c_str(), m_navmesh_name); +// sprintf(buffer, "%s_%s.nm", path.c_str(), m_navmeshName); // // FILE* fp = fopen(buffer, "wb"); // if (!fp) @@ -719,14 +719,14 @@ void Sample::saveAll(std::string path, dtNavMesh* mesh) // header.numTiles++; // } // memcpy(&header.params, mesh->getParams(), sizeof(dtNavMeshParams)); -// header.params.disjoint_poly_group_count = 3; +// header.params.disjointPolyGroupCount = 3; // // LinkTableData link_data; // build_link_table(mesh, link_data); // int table_size = ((link_data.setCount + 31) / 32) * link_data.setCount * 32; -// header.params.disjoint_poly_group_count = link_data.setCount; -// header.params.reachability_table_count = m_count_reachability_tables; -// header.params.reachability_table_size = table_size; +// header.params.disjointPolyGroupCount = link_data.setCount; +// header.params.reachabilityTableCount = m_reachabilityTableCount; +// header.params.reachabilityTableSize = table_size; // // if (*is_tf2)unpatch_headertf2(header); // fwrite(&header, sizeof(NavMeshSetHeader), 1, fp); @@ -755,7 +755,7 @@ void Sample::saveAll(std::string path, dtNavMesh* mesh) // std::vector reachability(table_size, 0); // for (int i = 0; i < link_data.setCount; i++) // set_reachable(reachability, link_data.setCount, i, i, true); -// for (int i = 0; i < header.params.reachability_table_count; i++) +// for (int i = 0; i < header.params.reachabilityTableCount; i++) // fwrite(reachability.data(), sizeof(int), (table_size / 4), fp); // fclose(fp); //} \ No newline at end of file diff --git a/r5dev/naveditor/Sample_TileMesh.cpp b/r5dev/naveditor/Sample_TileMesh.cpp index 52ba70f7..c6e4f6d5 100644 --- a/r5dev/naveditor/Sample_TileMesh.cpp +++ b/r5dev/naveditor/Sample_TileMesh.cpp @@ -777,8 +777,8 @@ void Sample_TileMesh::buildAllHulls() m_agentMaxClimb = h.climb_height; m_agentHeight = h.height; if (is_human) - m_count_reachability_tables = 4; - m_navmesh_name = h.name; + m_reachabilityTableCount = 4; + m_navmeshName = h.name; is_human = false; handleSettings(); diff --git a/r5dev/naveditor/include/Sample.h b/r5dev/naveditor/include/Sample.h index 9e027271..f1923894 100644 --- a/r5dev/naveditor/include/Sample.h +++ b/r5dev/naveditor/include/Sample.h @@ -116,6 +116,9 @@ protected: class dtCrowd* m_crowd; unsigned char m_navMeshDrawFlags; + bool m_filterLowHangingObstacles; + bool m_filterLedgeSpans; + bool m_filterWalkableLowHeightSpans; float m_cellSize; float m_cellHeight; @@ -131,12 +134,8 @@ protected: float m_detailSampleDist; float m_detailSampleMaxError; int m_partitionType; - int m_count_reachability_tables; - const char* m_navmesh_name="unk"; - - bool m_filterLowHangingObstacles; - bool m_filterLedgeSpans; - bool m_filterWalkableLowHeightSpans; + int m_reachabilityTableCount; + const char* m_navmeshName="unk"; SampleTool* m_tool; SampleToolState* m_toolStates[MAX_TOOLS]; diff --git a/r5dev/thirdparty/recast/Detour/Include/DetourNavMesh.h b/r5dev/thirdparty/recast/Detour/Include/DetourNavMesh.h index 46a39f59..4b3a5b2f 100644 --- a/r5dev/thirdparty/recast/Detour/Include/DetourNavMesh.h +++ b/r5dev/thirdparty/recast/Detour/Include/DetourNavMesh.h @@ -177,7 +177,7 @@ struct dtPoly /// @note Use the structure's set and get methods to acess this value. unsigned char areaAndtype; - unsigned short link_table_idx; //IDK but looks filled + unsigned short disjointSetId; //IDK but looks filled unsigned short unk; //IDK but looks filled unsigned int unk1; //!TODO: debug this if you ever find where this gets used in the engine.. float org[3]; // Seems to be used for AIN file generation (build from large navmesh). @@ -193,6 +193,8 @@ struct dtPoly /// Gets the polygon type. (See: #dtPolyTypes) inline unsigned char getType() const { return areaAndtype >> 6; } + + inline unsigned char getTest() const { return areaAndtype & 0xc0; } }; /// Defines the location of detail sub-mesh data within a dtMeshTile. @@ -354,10 +356,10 @@ struct dtNavMeshParams int maxPolys; ///< The maximum number of polygons each tile can contain. This and maxTiles are used to calculate how many bits are needed to identify tiles and polygons uniquely. // //// i hate this - int disjoint_poly_group_count = 0; - int reachability_table_size = 0; - int reachability_table_count = 0; - int unk0 = 0; + int disjointPolyGroupCount = 0; + int reachabilityTableSize = 0; + int reachabilityTableCount = 0; + int allocSize = 0; }; #pragma pack(push, 4) diff --git a/r5dev/thirdparty/recast/Detour/Source/DetourNavMesh.cpp b/r5dev/thirdparty/recast/Detour/Source/DetourNavMesh.cpp index dee4ec99..5be6a016 100644 --- a/r5dev/thirdparty/recast/Detour/Source/DetourNavMesh.cpp +++ b/r5dev/thirdparty/recast/Detour/Source/DetourNavMesh.cpp @@ -250,8 +250,6 @@ dtStatus dtNavMesh::init(const dtNavMeshParams* params) m_tiles[i].next = m_nextFree; m_nextFree = &m_tiles[i]; } - - unk0 = dtIlog2(dtNextPow2((unsigned int)params[1].orig[0])); // Init ID generator values. #ifndef DT_POLYREF64 @@ -1000,7 +998,6 @@ dtStatus dtNavMesh::addTile(unsigned char* data, int dataSize, int flags, unsigned char* d = data + headerSize; tile->verts = dtGetThenAdvanceBufferPointer(d, vertsSize); tile->polys = dtGetThenAdvanceBufferPointer(d, polysSize); - d += header->sth_per_poly*header->polyCount * 4; tile->links = dtGetThenAdvanceBufferPointer(d, linksSize); tile->detailMeshes = dtGetThenAdvanceBufferPointer(d, detailMeshesSize); tile->detailVerts = dtGetThenAdvanceBufferPointer(d, detailVertsSize); diff --git a/r5dev/thirdparty/recast/Detour/Source/DetourNavMeshBuilder.cpp b/r5dev/thirdparty/recast/Detour/Source/DetourNavMeshBuilder.cpp index 95033fb2..26b8b806 100644 --- a/r5dev/thirdparty/recast/Detour/Source/DetourNavMeshBuilder.cpp +++ b/r5dev/thirdparty/recast/Detour/Source/DetourNavMeshBuilder.cpp @@ -539,7 +539,7 @@ bool dtCreateNavMeshData(dtNavMeshCreateParams* params, unsigned char** outData, p->setArea(params->polyAreas[i]); p->setType(DT_POLYTYPE_GROUND); //p->org=params->polys - p->link_table_idx = 2; //0 is invalid 1 is special? + p->disjointSetId = 2; //0 is invalid 1 is special? for (int j = 0; j < nvp; ++j) { if (src[j] == MESH_NULL_IDX) break;