Files
st/src/001_SceneInit/UnkStruct_027e09c0_001.cpp
T
Yanis 8d759ee331 Decompile overlay 1 (Part 7) (#106)
* run ninja format

* delink what's left from overlay 1 (except dsprotect)

* fix regressions

* UnkStruct_027e0ce0_1C_001 97%

* UnkStruct_0204a110_001 OK

* UnkStruct_ov024_020d86a0_001 OK

* UnkStruct_ov000_020b50c0_001 OK

* GameModeCreate OK

* AdventureModeManager_001 OK

* GameModeAdventure_001 OK

* AdventureModeManager_001 OKn't because weak issues

* ZeldaCollisionBinary OK

* UnkStruct_027e09c0_001 OK

* UnkStruct_ov000_020b504c_001 OK

* UnkStruct_ov000_02067bc4.hpp -> UnkStruct_ov000_020b504c.hpp

* match overlay 97

* match overlay 100

* run ninja format
2026-07-13 18:41:32 +02:00

100 lines
2.5 KiB
C++

#include "System/SysNew.hpp"
#include "Unknown/UnkStruct_027e09a4.hpp"
#include "Unknown/UnkStruct_027e09c0.hpp"
#include "Unknown/UnkStruct_027e09e8.hpp"
#include "Unknown/UnkStruct_027e0a48.hpp"
#include "Unknown/UnkStruct_027e0b48.hpp"
#include <nitro/mi.h>
UnkStruct_027e09c0 *UnkStruct_027e09c0::Create() {
return new(HeapIndex_1) UnkStruct_027e09c0();
}
void UnkStruct_027e09c0::Destroy() {
UnkStruct_027e09c0::DestroyImpl();
}
UnkStruct_027e09c0::UnkStruct_027e09c0() :
mUnk_000(0),
mUnk_044(this->mUnk_004),
mUnk_048(NULL),
mUnk_04C(NULL),
mUnk_050(0),
mUnk_054(NULL),
mUnk_058(NULL),
mUnk_05C(0),
mUnk_760(NULL),
mUnk_764(NULL),
mUnk_768(0),
mUnk_76C(NULL),
mUnk_770(NULL),
mUnk_774(0) {
this->mUnk_048 = this->mUnk_060;
this->mUnk_04C = this->mUnk_060;
this->mUnk_050 = 0x20;
this->mUnk_054 = &this->mUnk_060[32];
this->mUnk_058 = &this->mUnk_060[32];
this->mUnk_05C = 0x20;
this->mUnk_760 = &this->mUnk_778;
this->mUnk_764 = &this->mUnk_778;
this->mUnk_768 = 0x20;
this->mUnk_76C = &this->mUnk_878;
this->mUnk_770 = &this->mUnk_878;
this->mUnk_774 = 0x20;
}
void UnkStruct_027e09c0::func_ov001_020be394() {
if (data_027e09a4->IsLand()) {
data_027e0a48.func_ov000_0207ef30();
} else {
data_027e0a48.func_ov000_0207f048();
}
data_027e0b48.func_ov001_020be474();
}
void UnkStruct_027e09c0::func_ov001_020be3c4() {
data_027e0b48.func_ov001_020be4e4();
data_027e0a48.func_ov000_0207f1f0();
}
void UnkStruct_027e09c0::func_ov001_020be3dc(UnkFileSystem3 *param1, UnkStruct_027e0cd8_0C_Base *param2) {
data_027e0a48.func_ov000_0207f280(param2);
data_027e09e8.func_ov000_0207ba84(param1, param2);
}
void UnkStruct_027e09c0::func_ov001_020be400() {
for (UnkStruct_027e09c0_04 **pIt = this->mUnk_004; pIt != this->mUnk_044; pIt++) {
if (*pIt != NULL) {
(*pIt)->func_ov000_0207f4d4();
}
}
this->mUnk_044 = this->mUnk_004;
this->mUnk_000 = 0;
data_027e0a48.func_ov000_0207f2d8();
data_027e09e8.func_ov000_0207baa0();
}
void UnkStruct_027e09c0::DestroyImpl() {
if (data_027e09c0 != NULL) {
delete data_027e09c0;
}
}
DECL_INSTANCE(UnkStruct_027e09c0, data_027e09c0);
void UnkStruct_027e0b48::func_ov001_020be474() {
bool isLand = data_027e09a4->IsLand();
this->mUnk_000.Init(0x74 * (isLand ? 4 : 8), 1);
MI_CpuClearFast(this->mUnk_008, sizeof(this->mUnk_008));
}
void UnkStruct_027e0b48::func_ov001_020be4e4() {
this->mUnk_000.Reset();
}