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
This commit is contained in:
ragnarok-clanker 2026-10-25 07:42:41 +00:00
commit a47d20f8be
890 changed files with 11796 additions and 16664 deletions

View file

@ -0,0 +1,66 @@
#include "Contents/Effects/EffectAttachments.h"
#include "Contents/Effects/EffectActor.h"
#include "Contents/Effects/RagEffectState.h"
// OFFSET: 0x00CADBE0
// FUNCTION: fn_21062
bool EffectAttachments::HasId(int id) const {
for (const RagEffectState* effect : this->effects) {
if (effect && effect->id == id) {
return true;
}
}
return false;
}
// OFFSET: 0x00CADC40
// FUNCTION: fn_21064
bool EffectAttachments::Contains(const RagEffectState* effect) const {
for (const RagEffectState* current : this->effects) {
if (current == effect) {
return true;
}
}
return false;
}
// ORIGINAL_SITE: 0x00CB4416 in fn_21111 (fragment)
void EffectAttachments::Unlink(RagEffectState* effect) {
if (!effect) {
return;
}
for (auto entry = this->effects.begin(); entry != this->effects.end(); ++entry) {
if (*entry == effect) {
this->effects.erase(entry);
if (this->first == effect) {
this->first = nullptr;
} else if (this->second == effect) {
this->second = nullptr;
}
return;
}
}
}
// OFFSET: 0x00CA8C40
void EffectAttachments::DetachAll() {
for (RagEffectState* effect : this->effects) {
if (effect) {
effect->parent = nullptr;
}
}
this->effects.clear();
this->first = nullptr;
this->second = nullptr;
}
// FUNCTION: fn_21063
bool EffectActor::EffectVisible() const {
return this->render.visible != 0 && this->render.enabled != 0;
}