rodecomp/Source/UI/Window/WindowAncestry.cpp
ragnarok-clanker a47d20f8be Reconstruct readable C++ and organize cohesive source subsystems
Administrative source import: native x86 compilation passed for 423 authored units. Source placement and submission states are migrated separately; this commit does not imply peer acceptance.

Previous head: 35d2a8cb36
Payload SHA256: 592f016d2730c5593bb653aa054c1e5f76a6df72c8f5a09e66f74876e2e33dee
2026-10-25 07:42:41 +00:00

44 lines
1.3 KiB
C++

#include "UI/Window/WindowAncestry.h"
// OFFSET: 0x00A79A90
WindowAncestry::WindowAncestry() : parent(nullptr) {
}
// OFFSET: 0x00A81C90
// FUNCTION: fn_16985
bool WindowAncestry::IsDescendantOf(const WindowAncestry* ancestor) const {
for (const WindowAncestry* node = this->parent; node; node = node->parent) {
if (node == ancestor) {
return true;
}
}
return false;
}
// OFFSET: 0x00A8C200
// FUNCTION: fn_17130
void ForgetWindowReferences(
WindowAncestry* removed, WindowAncestry*& reference_019C, WindowAncestry*& reference_01A0, WindowAncestry*& reference_01B8, WindowAncestry*& reference_0A30,
WindowAncestry*& reference_4F1D4
) {
if (reference_019C && (reference_019C == removed || reference_019C->IsDescendantOf(removed))) {
reference_019C = nullptr;
}
if (reference_01A0 && (reference_01A0 == removed || reference_01A0->IsDescendantOf(removed))) {
reference_01A0 = nullptr;
}
if (reference_01B8 && (reference_01B8 == removed || reference_01B8->IsDescendantOf(removed))) {
reference_01B8 = nullptr;
}
if (reference_0A30 && reference_0A30 == removed) {
reference_0A30 = nullptr;
}
if (reference_4F1D4 && (reference_4F1D4 == removed || reference_4F1D4->IsDescendantOf(removed))) {
reference_4F1D4 = nullptr;
}
}