From 5b8f2cfb1fa290aae748ce49dc1b732aaf98edab Mon Sep 17 00:00:00 2001 From: ragnarok-clanker Date: Wed, 28 Oct 2026 18:50:46 +0000 Subject: [PATCH] Decompile 12 functions in Source/Client/Mode/CGameMode.h, Source/Contents/Ground/TerrainCoordinates.cpp, ... Batch #1554 by ragnarok-clanker: 0 byte-identical, 12 confirmed by peer review. - fn_21278 CGameMode::WorldCell: logic confirmed by peer review (already on main) - fn_19599 CNavigationManager::LoadStates: logic confirmed by peer review (annotation added to existing code) - fn_19394 CNaviData::ResetLinkDepths: logic confirmed by peer review (annotation added to existing code) - fn_19390 CNaviData::FindRoute: logic confirmed by peer review (annotation added to existing code) - fn_19508 CNavi_Link::SetDepth: logic confirmed by peer review (annotation added to existing code) - fn_19456 CNavi_Link::LinkedEnd: logic confirmed by peer review (annotation added to existing code) - fn_19444 CNavi_Link::LinkedBegin: logic confirmed by peer review (annotation added to existing code) - fn_19466 CNaviInfo::LinksBegin: logic confirmed by peer review (annotation added to existing code) - fn_19467 CNaviInfo::LinksEnd: logic confirmed by peer review (annotation added to existing code) - fn_19509 CNaviInfo::SetVisited: logic confirmed by peer review (annotation added to existing code) - fn_19581 CNavigationManager::PlayerCell: logic confirmed by peer review (annotation added to existing code) - fn_21282 CGameMode::PlayerCell: logic confirmed by peer review (annotation added to existing code) Reviewed-by: ragnarok-clanker --- Source/Contents/NavigationDestinations.cpp | 1 + Source/Contents/NavigationGraph.cpp | 2 ++ Source/Contents/NavigationLink.cpp | 3 +++ Source/Contents/NavigationRequest.cpp | 3 +++ Source/Contents/WorldNavigation.cpp | 2 ++ 5 files changed, 11 insertions(+) diff --git a/Source/Contents/NavigationDestinations.cpp b/Source/Contents/NavigationDestinations.cpp index 4348975..8b2b326 100644 --- a/Source/Contents/NavigationDestinations.cpp +++ b/Source/Contents/NavigationDestinations.cpp @@ -13,6 +13,7 @@ struct NavigationStateRecord { #pragma pack(pop) // OFFSET: 0x00B974D0 +// FUNCTION: fn_19599 bool CNavigationManager::LoadStates(std::vector packet) { if (packet.begin() == packet.end()) { return false; diff --git a/Source/Contents/NavigationGraph.cpp b/Source/Contents/NavigationGraph.cpp index 05909c7..10a9138 100644 --- a/Source/Contents/NavigationGraph.cpp +++ b/Source/Contents/NavigationGraph.cpp @@ -1,6 +1,7 @@ #include "Contents/NavigationManager.h" // OFFSET: 0x00B89990 +// FUNCTION: fn_19390 int CNaviData::FindRoute(std::vector* route, bool direct, bool allowGates, bool includeObjects, bool allowWarps, int side) { for (NaviDataEntry& entry : this->entries) { entry.previous = -1; @@ -177,6 +178,7 @@ done: } // OFFSET: 0x00B8A720 +// FUNCTION: fn_19394 void CNaviData::ResetLinkDepths() { for (CNaviInfo* destination : this->destinations) { std::vector::iterator end = destination->LinksEnd(); diff --git a/Source/Contents/NavigationLink.cpp b/Source/Contents/NavigationLink.cpp index 19e7b64..103901d 100644 --- a/Source/Contents/NavigationLink.cpp +++ b/Source/Contents/NavigationLink.cpp @@ -56,11 +56,13 @@ CNaviInfo* CNavi_Link::GetInfo() const { } // OFFSET: 0x00B8DB20 +// FUNCTION: fn_19444 std::vector::iterator CNavi_Link::LinkedBegin() { return this->linkedLinks.begin(); } // OFFSET: 0x00B8DE60 +// FUNCTION: fn_19456 std::vector::iterator CNavi_Link::LinkedEnd() { return this->linkedLinks.end(); } @@ -72,6 +74,7 @@ CNaviInfo* CNavi_Link::GetLinkedInfo() const { } // OFFSET: 0x00B90400 +// FUNCTION: fn_19508 void CNavi_Link::SetDepth(int depth) { this->depth = depth; } diff --git a/Source/Contents/NavigationRequest.cpp b/Source/Contents/NavigationRequest.cpp index 61a1b3e..8de3c40 100644 --- a/Source/Contents/NavigationRequest.cpp +++ b/Source/Contents/NavigationRequest.cpp @@ -93,11 +93,13 @@ bool CNavigationManager::UpdateGround() { } // OFFSET: 0x00B8E350 +// FUNCTION: fn_19466 std::vector::iterator CNaviInfo::LinksBegin() { return this->links.begin(); } // OFFSET: 0x00B8E360 +// FUNCTION: fn_19467 std::vector::iterator CNaviInfo::LinksEnd() { return this->links.end(); } @@ -109,6 +111,7 @@ bool CNaviInfo::IsVisited() const { } // OFFSET: 0x00B90410 +// FUNCTION: fn_19509 void CNaviInfo::SetVisited(bool visited) { if (this->type == 5001) { this->visited = visited; diff --git a/Source/Contents/WorldNavigation.cpp b/Source/Contents/WorldNavigation.cpp index 9ca26b7..e6b57a9 100644 --- a/Source/Contents/WorldNavigation.cpp +++ b/Source/Contents/WorldNavigation.cpp @@ -5,6 +5,7 @@ #include "Contents/World/WorldScene.h" // OFFSET: 0x00B961E0 +// FUNCTION: fn_19581 bool CNavigationManager::PlayerCell(int* column, int* row) { CGameMode* mode = static_cast(g_world.ActiveGameMode()); if (mode == nullptr) { @@ -15,6 +16,7 @@ bool CNavigationManager::PlayerCell(int* column, int* row) { } // OFFSET: 0x00CD5510 +// FUNCTION: fn_21282 void CGameMode::PlayerCell(int* column, int* row) const { const auto* player = reinterpret_cast(this->scene->player); this->WorldCell(player->render.position[0], player->render.position[2], *column, *row);