Decompile 14 functions in Source/Contents/NavigationLink.cpp, Source/Contents/NavigationManager.h, ...
Batch #1540 by ragnarok-clanker: 0 byte-identical, 14 confirmed by peer review. - fn_19436 CNavi_Link::`scalar deleting destructor': logic confirmed by peer review - fn_19483 CNavi_Link::GetCell: logic confirmed by peer review - fn_19497 CNavi_Link::GetInfo: logic confirmed by peer review - fn_19387 CNaviData::SetDestination: logic confirmed by peer review - fn_19638 CNavigationManager::UpdateGround: logic confirmed by peer review - fn_19364 CNaviData::CNaviData: logic confirmed by peer review - fn_19371 CNaviData::~CNaviData: logic confirmed by peer review - fn_19429 CNaviInfo::~CNaviInfo: logic confirmed by peer review - fn_19551 CNavigationManager::CNavigationManager: logic confirmed by peer review - fn_19574 CNavigationManager::ClearRouteNodes: logic confirmed by peer review - fn_19575 CNavigationManager::ClearNodePaths: logic confirmed by peer review - fn_19593 CNavigationManager::Reset: logic confirmed by peer review - fn_45448 CNavigationManager::~CNavigationManager: logic confirmed by peer review - fn_45452 CNavigationManager::GetLinkedPlayerInfo: logic confirmed by peer review Reviewed-by: ragnarok-clanker
This commit is contained in:
parent
dfadb24ce5
commit
4c1960b206
3 changed files with 175 additions and 0 deletions
|
|
@ -109,10 +109,66 @@ int CNavigationManager::SaveCurrentTarget() {
|
|||
}
|
||||
|
||||
// OFFSET: 0x00B880D0
|
||||
// FUNCTION: fn_19364
|
||||
CNaviData::CNaviData() : info(nullptr), cellX(0), cellY(0), range(50000) {
|
||||
}
|
||||
|
||||
// OFFSET: 0x00B88530
|
||||
// FUNCTION: fn_19371
|
||||
CNaviData::~CNaviData() {
|
||||
this->Clear();
|
||||
|
||||
for (CNavi_Object*& object : this->objects) {
|
||||
if (object != nullptr) {
|
||||
delete object;
|
||||
}
|
||||
object = nullptr;
|
||||
}
|
||||
this->objects.clear();
|
||||
|
||||
for (CNaviInfo*& info : this->destinations) {
|
||||
if (info != nullptr) {
|
||||
delete info;
|
||||
}
|
||||
info = nullptr;
|
||||
}
|
||||
this->destinations.clear();
|
||||
}
|
||||
|
||||
// OFFSET: 0x00B8CC10
|
||||
// FUNCTION: fn_19429
|
||||
CNaviInfo::~CNaviInfo() {
|
||||
this->index = 0;
|
||||
this->type = 5001;
|
||||
this->name.clear();
|
||||
this->title.clear();
|
||||
this->cellX = 0;
|
||||
this->cellY = 0;
|
||||
|
||||
for (CNavi_Object*& npc : this->npcs) {
|
||||
if (npc != nullptr) {
|
||||
delete npc;
|
||||
}
|
||||
npc = nullptr;
|
||||
}
|
||||
this->npcs.clear();
|
||||
|
||||
for (CNavi_Object*& mob : this->mobs) {
|
||||
if (mob != nullptr) {
|
||||
delete mob;
|
||||
}
|
||||
mob = nullptr;
|
||||
}
|
||||
this->mobs.clear();
|
||||
|
||||
for (CNavi_Link*& link : this->links) {
|
||||
if (link != nullptr) {
|
||||
delete link;
|
||||
}
|
||||
link = nullptr;
|
||||
}
|
||||
this->links.clear();
|
||||
}
|
||||
|
||||
// INLINED
|
||||
NavigationTarget::~NavigationTarget() {
|
||||
|
|
@ -124,13 +180,93 @@ NavigationTarget::~NavigationTarget() {
|
|||
}
|
||||
|
||||
// OFFSET: 0x00B92580
|
||||
// FUNCTION: fn_19551
|
||||
CNavigationManager::CNavigationManager() {
|
||||
this->viewIcon = 1;
|
||||
this->unknown_127C = false;
|
||||
this->unknown_127D = false;
|
||||
this->unknown_127E = false;
|
||||
this->unknown_1250 = -1;
|
||||
this->unknown_124C = -1;
|
||||
this->unknown_1248 = false;
|
||||
this->unknown_1254 = false;
|
||||
this->Reset(true);
|
||||
this->pathFinder.useNodePool = true;
|
||||
this->unknown_1244 = nullptr;
|
||||
|
||||
char buffer[0x104];
|
||||
for (int i = 0; i < 8; ++i) {
|
||||
std::memset(buffer, 0, sizeof(buffer));
|
||||
std::sprintf(buffer, "유저인터페이스\\navigation_interface3\\navi_grid%d_%d.tga", this->viewIcon, i);
|
||||
this->labels[i].assign(buffer, std::strlen(buffer));
|
||||
}
|
||||
|
||||
this->unknown_12B4 = false;
|
||||
}
|
||||
|
||||
// OFFSET: 0x00B92CA0
|
||||
// FUNCTION: fn_45448
|
||||
CNavigationManager::~CNavigationManager() {
|
||||
this->Reset(true);
|
||||
this->unknown_1244 = nullptr;
|
||||
}
|
||||
|
||||
// OFFSET: 0x00B959D0
|
||||
// FUNCTION: fn_19574
|
||||
void CNavigationManager::ClearRouteNodes() {
|
||||
for (NaviRouteLine& line : this->routeLines) {
|
||||
line.text.clear();
|
||||
}
|
||||
this->routeLines.clear();
|
||||
}
|
||||
|
||||
// OFFSET: 0x00B95A20
|
||||
// FUNCTION: fn_19575
|
||||
void CNavigationManager::ClearNodePaths() {
|
||||
for (std::size_t i = 0; i < this->nodePaths.size(); ++i) {
|
||||
this->nodePaths[i].clear();
|
||||
}
|
||||
this->nodePaths.clear();
|
||||
}
|
||||
|
||||
// OFFSET: 0x00B961A0
|
||||
// FUNCTION: fn_45452
|
||||
CNaviInfo* CNavigationManager::GetLinkedPlayerInfo() {
|
||||
if (!this->unknown_1244->HasName(g_session.m_navigationPlayerMap)) {
|
||||
this->unknown_1244 = this->FindObject(g_session.m_navigationPlayerMap);
|
||||
}
|
||||
return this->unknown_1244;
|
||||
}
|
||||
|
||||
// OFFSET: 0x00B96BA0
|
||||
// FUNCTION: fn_19593
|
||||
void CNavigationManager::Reset(bool clearAll) {
|
||||
if (clearAll) {
|
||||
this->ClearNodePaths();
|
||||
this->unknown_12C4 = -1;
|
||||
this->unknown_12C8 = -1;
|
||||
this->states.clear();
|
||||
}
|
||||
|
||||
this->savedTarget = NavigationTarget();
|
||||
this->currentTarget = NavigationTarget();
|
||||
this->routeResult = 0;
|
||||
this->nodes.clear();
|
||||
this->unknown_115C = false;
|
||||
this->selectedNode = -1;
|
||||
this->movementRoute.segment = 0;
|
||||
this->unknown_117C = false;
|
||||
this->ground = nullptr;
|
||||
this->unknown_1258 = 0;
|
||||
this->unknown_1260 = 0;
|
||||
this->unknown_1264.clear();
|
||||
this->unknown_1280 = 0;
|
||||
this->unknown_1284 = 0;
|
||||
this->unknown_1288 = nullptr;
|
||||
this->unknown_128C = -1;
|
||||
this->unknown_1290 = -1;
|
||||
this->cells.clear();
|
||||
this->unknown_12A0 = nullptr;
|
||||
this->unknown_12A4 = nullptr;
|
||||
this->ClearRouteNodes();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue