rodecomp/Source/Contents/TerrainPathSearch.h
ragnarok-clanker 3c5e940a6d Decompile 31 functions in Source/Contents/NavigationManager.h, Source/Contents/NavigationRequest.cpp, ...
Batch #1503 by ragnarok-clanker: 12 byte-identical, 19 confirmed by peer review.

- fn_19461 CNavi_Object::GetFlag: logic confirmed by peer review
- fn_19474 CNavi_Object::GetTitle: byte-identical
- fn_19476 CNaviInfo::GetTitle: byte-identical
- fn_19477 CNavi_Object::GetName: byte-identical
- fn_19484 CNavi_Object::GetCell: logic confirmed by peer review
- fn_19485 CNaviInfo::GetName: byte-identical
- fn_19488 CNavi_Object::GetIndex: byte-identical
- fn_19493 CNavi_Object::GetType: byte-identical
- fn_19495 CNavi_Object::GetId: byte-identical
- fn_19498 CNavi_Object::GetInfo: byte-identical
- fn_19376 CNavigationManager::FindObject: logic confirmed by peer review
- fn_19378 CNaviData::GetCell: logic confirmed by peer review
- fn_19380 CNaviData::GetInfo: byte-identical
- fn_19430 CNavi_Object::~CNavi_Object: logic confirmed by peer review
- fn_19434 CNaviInfo::HasName: logic confirmed by peer review
- fn_19604 CNavigationManager::SelectedNodeText: logic confirmed by peer review
- fn_19605 CNavigationManager::SubDestinationText: logic confirmed by peer review
- fn_19606 CNavigationManager::DestinationText: logic confirmed by peer review
- fn_19607 CNavigationManager::DestinationTitle: logic confirmed by peer review
- fn_19613 CNavigationManager::LoadSettings: logic confirmed by peer review
- fn_19618 CNavigationManager::FitToSquare: logic confirmed by peer review
- fn_45449 CNaviData::Clear: logic confirmed by peer review
- fn_19588 CNavigationManager::GetCurrentTarget: logic confirmed by peer review
- fn_19589 CNavigationManager::GetCurrentTargetName: logic confirmed by peer review
- fn_19590 CNavigationManager::GetSavedTarget: logic confirmed by peer review
- fn_19591 CNavigationManager::GetDestinationInfo: byte-identical
- fn_19592 CNavigationManager::GetDestinationCell: logic confirmed by peer review
- fn_19594 CNavigationManager::ClearData: logic confirmed by peer review
- fn_19596 CNavigationManager::IsCurrentTarget: logic confirmed by peer review
- fn_19597 CNavigationManager::GetCurrentTargetType: byte-identical
- fn_19635 CNavigationManager::SaveCurrentTarget: byte-identical

Reviewed-by: ragnarok-clanker
Adds to the build: Source/Contents/NavigationRequest.cpp
2026-10-28 17:20:17 +00:00

59 lines
1.5 KiB
C++

#ifndef RAGNAROK_SOURCE_CONTENTS_TERRAINPATHSEARCH_H
#define RAGNAROK_SOURCE_CONTENTS_TERRAINPATHSEARCH_H
#include "Contents/MovementRouteInterpolation.h"
#include <cstddef>
#include <cstdint>
#include <map>
#include <string>
#include <vector>
class C3dAttr;
struct MovementPathNodeCompare {
bool operator()(const MovementPathNode* left, const MovementPathNode* right) const {
return left->estimatedCost > right->estimatedCost;
}
};
class MovementOpenList {
public:
std::vector<MovementPathNode*>& Nodes() {
return this->nodes;
}
/* 0000 */ std::vector<MovementPathNode*> nodes;
};
class CPathFinder {
public:
CPathFinder();
~CPathFinder();
/* 0000 */ C3dAttr* attr;
/* 0004 */ int destinationX;
/* 0008 */ int destinationY;
/* 000C */ int nodeCount;
/* 0010 */ MovementPathNode nodes[150];
/* 1078 */ std::map<std::string, C3dAttr*> attrCache;
/* 1080 */ bool useNodePool;
/* 1084 */ std::vector<MovementPathNode> nodePool;
/* 1090 */ std::map<int, MovementPathNode*> nodeMap;
/* 1098 */ MovementOpenList openList;
void Reset();
int Height() const;
int Width() const;
};
#if defined(_WIN32) && !defined(_WIN64)
static_assert(offsetof(CPathFinder, attrCache) == 0x1078);
static_assert(offsetof(CPathFinder, nodePool) == 0x1084);
static_assert(offsetof(CPathFinder, nodeMap) == 0x1090);
static_assert(offsetof(CPathFinder, openList) == 0x1098);
static_assert(sizeof(MovementOpenList) == 0x0C);
static_assert(sizeof(CPathFinder) == 0x10A4);
#endif
#endif