Files
st/include/Unknown/UnkStruct_027e09b8.hpp
T
Yanis a8fdb9c656 Port current delink progress to USA and EUR Rev 1 (#139)
* sig apply main usa

* sig apply main eur1

* eur1 main

* usa main

* relocs and symbol fixes

* sig apply ov000 eur1

* sig apply ov000 usa

* eur1 ov000

* usa ov000

* fix duplicates

* fix issue with -lang flag

* make usa build OK

* make eur1 build OK

* ninja format

* name all functions from eur names

* eur1 overlay 18 and 19

* usa overlay 18 and 19

* eur1 version differences + fileselect fix

* overlay 17

* various overlays 1

* various overlays 2

* various overlays 3

* add missing last delinks

* various overlays 4

* usa overlay 32

* eur1 overlays 32, 36, 37, 41, 44, 49, 57, 68, 70, 73, 75, 80 and 94

* eur1 overlays 32 (for real this time) and 63

* eur1 overlay 31

* eur1 overlay 24

* add 97, 100 and itcm

* run ninja format
2026-08-26 17:01:41 +02:00

193 lines
4.9 KiB
C++

#pragma once
#include "Cutscene/Cutscene.hpp"
#include "MapObject/MapObject.hpp"
#include "Save/AdventureFlags.hpp"
#include "Unknown/UnkStruct_027e09a4.hpp"
#include "Unknown/UnkSystem1.hpp"
#include "types.h"
#include "versions.h"
struct stack_ov000_02073578 {
unk8 unk_00;
unk32 unk_04;
unk32 unk_08;
stack_ov000_02073578();
};
class UnkStruct_027e09b8_00 {
public:
/* 000 */ STRUCT_PAD(0x000, 0xFD0);
/* FD0 */ unk16 mUnk_FD0; // set to 1 when link has a blocking interaction?
/* FD2 */ unk16 mUnk_FD2;
/* FD4 */
UnkStruct_027e09b8_00();
void func_ov000_02073b5c();
void func_ov000_02073bc0();
};
class UnkStruct_027e09b8_04_Base {
public:
/* 00 (vtable) */
/* 04 */
/* 00 */ virtual ~UnkStruct_027e09b8_04_Base();
/* 08 */ virtual void vfunc_08();
/* 0C */ virtual void vfunc_0C();
/* 10 */ virtual void vfunc_10() = 0;
/* 14 */ virtual void vfunc_14();
/* 18 */ virtual void vfunc_18();
/* 1C */ virtual void vfunc_1C();
/* 20 */ virtual void vfunc_20();
/* 24 */
};
class UnkStruct_027e09b8_04 : public UnkStruct_027e09b8_04_Base {
public:
/* 00 (base) */
/* 04 */ STRUCT_PAD(0x04, 0x14);
/* 14 */ UnkStruct_0204a060_Base mUnk_14;
/* 38 */ UnkStruct_WarpUnk1_50 mUnk_38;
/* 60 */ unk32 mUnk_60;
/* 64 */
UnkStruct_027e09b8_04() {
this->vfunc_0C();
}
// data_ov000_020b22c0
/* 00 */ virtual ~UnkStruct_027e09b8_04() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C() override;
/* 10 */ virtual void vfunc_10() override;
/* 18 */ virtual void vfunc_18() override;
/* 1C */ virtual void vfunc_1C() override;
/* 20 */ virtual void vfunc_20() override;
};
class UnkStruct_027e09b8_08 : public UnkStruct_027e09b8_04_Base {
public:
/* 00 (base) */
/* 04 */ STRUCT_PAD(0x04, 0x30);
/* 30 */
UnkStruct_027e09b8_08(void *param1);
~UnkStruct_027e09b8_08();
/* 10 */ virtual void vfunc_10() override;
};
class UnkStruct_027e09b8_0C : public UnkStruct_027e09b8_04_Base {
public:
/* 00 (base) */
/* 04 */ STRUCT_PAD(0x04, 0x0C);
/* 0C */ UnkSystem1_ov000_Derived3 mUnk_0C;
/* 20 */ STRUCT_PAD(0x20, 0x98);
/* 98 */ UnkStruct_WarpUnk1_50 mUnk_98;
/* C0 */ unk32 mUnk_C4;
/* C4 */ MapObjectId mMapObjId;
/* C8 */
UnkStruct_027e09b8_0C() {
this->vfunc_0C();
}
// data_ov000_020b234c
/* 00 */ virtual ~UnkStruct_027e09b8_0C() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C() override;
/* 10 */ virtual void vfunc_10() override;
/* 14 */ virtual void vfunc_14() override;
/* 18 */ virtual void vfunc_18() override;
};
class UnkStruct_027e09b8_10 : public UnkStruct_027e09b8_04_Base {
public:
/* 00 (base) */
/* 04 */ STRUCT_PAD(0x04, 0x18);
/* 18 */
UnkStruct_027e09b8_10();
~UnkStruct_027e09b8_10();
/* 10 */ virtual void vfunc_10() override;
};
class UnkStruct_027e09b8_98 {
public:
/* 0000 */ STRUCT_PAD(0x00, 0x151C);
/* 151C */
UnkStruct_027e09b8_98();
~UnkStruct_027e09b8_98();
void func_ov000_020a7b34();
};
class UnkStruct_027e09b8 : public AutoInstance<UnkStruct_027e09b8> {
public:
/* 00 */ UnkStruct_027e09b8_00 *mUnk_00;
/* 04 */ UnkStruct_027e09b8_04_Base *mUnk_04[4];
/* 14 */ u32 mAdventureFlags[32]; //! TODO
/* 94 */ u16 mUnk_94;
/* 96 */ bool mUnk_96;
/* 97 */ bool mUnk_97;
/* 98 */ UnkStruct_027e09b8_98 *mUnk_98;
/* 9C */
UnkStruct_027e09b8_04 *GetUnk04() {
return (UnkStruct_027e09b8_04 *) this->mUnk_04[0];
}
UnkStruct_027e09b8_08 *GetUnk08() {
return (UnkStruct_027e09b8_08 *) this->mUnk_04[1];
}
UnkStruct_027e09b8_0C *GetUnk0C() {
return (UnkStruct_027e09b8_0C *) this->mUnk_04[2];
}
UnkStruct_027e09b8_10 *GetUnk10() {
return (UnkStruct_027e09b8_10 *) this->mUnk_04[3];
}
bool HasAdventureFlag(AdventureFlag flag) {
return GET_FLAG(this->mAdventureFlags, flag);
}
UnkStruct_027e09b8();
~UnkStruct_027e09b8();
// itcm
unk32 func_01ffd420();
// overlay 0
unk32 func_ov000_020732ec(unk32 param1);
unk32 func_ov000_020732fc(unk32 param1);
bool func_ov000_020732dc(unk32 param1);
unk32 func_ov000_0207330c();
void func_ov000_0207332c();
unk32 func_ov000_02073388(void *param1, unk32 param2);
unk32 func_ov000_02073470(void *param1, unk32 param2);
void func_ov000_02073578(void *param1, unk32 param2);
void func_ov000_02073610(void *param1, unk32 param2);
#if IS_JP || IS_EUR1
void func_ov000_02074d78(unk32 param1);
#endif
// overlay 1
void ImportAdventureFlags(AdventureFlag *pAdventureFlags);
void func_ov001_020b76c0(CutsceneIndex csIndex);
void func_ov001_020b7700();
void func_ov001_020b7728();
static UnkStruct_027e09b8 *Create();
static void Destroy();
};
extern UnkStruct_027e09b8 *data_027e09b8;