mirror of
https://github.com/zeldaret/st
synced 2026-08-15 12:58:54 -04:00
Decompile overlay 24 (Part 2) (#66)
* remove scratch links * UnkAdventureModeSystem1 OK * UnkStruct_ov024_020d8694_024 OK * UnkTitleCardSystem1_024 99% * UnkTitleCardSystem1_024 OK * fix regressions * title card vfunc_08 oddity * tools: make build.ninja deterministic and delink when objdiff rebuild-on-change * clean up link node mess * UnkStruct_020d8698_024 24% * UnkStruct_020d8698_024 49% * UnkStruct_020d8698_024 65% * fix build issues * UnkStruct_020d8698_024 92% * UnkStruct_020d8698_024 OK * delink data_ov024_020d8694 symbol * tools: revert previous objdiff change and reduce ds-rom logs on objdiff
This commit is contained in:
@@ -66,14 +66,6 @@ public:
|
||||
/* 0FE4 */ UnkResult mUnk_0FE4;
|
||||
/* 1020 */
|
||||
|
||||
GameModeLinkListNode *GetNode() {
|
||||
GameModeLinkListNode *node = (GameModeLinkListNode *) this;
|
||||
if (this != NULL) {
|
||||
node = (GameModeLinkListNode *) ((u32 *) node + 1);
|
||||
}
|
||||
return node;
|
||||
}
|
||||
|
||||
FileSelectSubScreen();
|
||||
void func_ov019_020cf73c(unk32 param1, unk32 param2);
|
||||
|
||||
@@ -122,7 +114,7 @@ public:
|
||||
/* 10 */ virtual void vfunc_10(unk32 param1, unk32 param2, unk32 param3) override;
|
||||
/* 24 */ virtual void vfunc_24() override;
|
||||
/* 28 */ virtual void vfunc_28(unk8 *param1) override;
|
||||
/* 2C */ virtual void vfunc_2C(unk8 *param1) override;
|
||||
/* 2C */ virtual void DrawUI(unk8 *param1) override;
|
||||
|
||||
static GameModeManagerBase *Create(unk32 param1);
|
||||
};
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#include "math.hpp"
|
||||
#include "types.h"
|
||||
|
||||
typedef Iterator<UnkSubStruct9, MAX_SAVE_SLOTS> FileSlotIterator;
|
||||
typedef Iterator<UnkSubStruct9> FileSlotIterator;
|
||||
|
||||
/*
|
||||
- "Slot Select" refers to the screen where you choose which file to use
|
||||
@@ -153,21 +153,13 @@ public:
|
||||
/* 1C28 */
|
||||
|
||||
UnkSubStruct9 &GetUnk03E0(int saveSlotIndex) {
|
||||
return this->mUnk_03E0.GetRef(saveSlotIndex);
|
||||
return this->mUnk_03E0.Get(saveSlotIndex);
|
||||
}
|
||||
|
||||
UnkSubStruct9 &GetUnk03E0() {
|
||||
return this->GetUnk03E0(this->mSaveSlotIndex);
|
||||
}
|
||||
|
||||
GameModeLinkListNode *GetNode() {
|
||||
GameModeLinkListNode *node = (GameModeLinkListNode *) this;
|
||||
if (this != NULL) {
|
||||
node = (GameModeLinkListNode *) ((u32 *) node + 1);
|
||||
}
|
||||
return node;
|
||||
}
|
||||
|
||||
FileSelectMain();
|
||||
void func_ov019_020c61dc();
|
||||
void func_ov019_020c63dc();
|
||||
|
||||
@@ -74,14 +74,6 @@ public:
|
||||
/* 633 */ unk8 mUnk_633;
|
||||
/* 634 */
|
||||
|
||||
GameModeLinkListNode *GetNode() {
|
||||
GameModeLinkListNode *node = (GameModeLinkListNode *) this;
|
||||
if (this != NULL) {
|
||||
node = (GameModeLinkListNode *) ((u32 *) node + 1);
|
||||
}
|
||||
return node;
|
||||
}
|
||||
|
||||
FileSelectMicTest();
|
||||
void func_ov019_020cea74();
|
||||
void func_ov019_020cefe4();
|
||||
|
||||
@@ -135,14 +135,6 @@ public:
|
||||
/* 1CF7 */ unk8 mUnk_1CF7;
|
||||
/* 1CF8 */
|
||||
|
||||
GameModeLinkListNode *GetNode() {
|
||||
GameModeLinkListNode *node = (GameModeLinkListNode *) this;
|
||||
if (this != NULL) {
|
||||
node = (GameModeLinkListNode *) ((u32 *) node + 1);
|
||||
}
|
||||
return node;
|
||||
}
|
||||
|
||||
FileSelectOptions(s32 saveSlotIndex);
|
||||
void func_ov019_020ccd40();
|
||||
void func_ov019_020ccdf4();
|
||||
|
||||
@@ -29,14 +29,6 @@ public:
|
||||
/* 2C */ FileSelectOptions *mpOptions;
|
||||
/* 30 */
|
||||
|
||||
GameModeLinkListNode *GetNode() {
|
||||
GameModeLinkListNode *node = (GameModeLinkListNode *) this;
|
||||
if (this != NULL) {
|
||||
node = (GameModeLinkListNode *) ((u32 *) node + 1);
|
||||
}
|
||||
return node;
|
||||
}
|
||||
|
||||
FileSelectOptionsManager(void *param1, unk32 param2);
|
||||
void func_ov019_020cc85c(unk32 param1);
|
||||
unk32 func_ov019_020cc874();
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
class FileSelectManager_UnkDrawBase : public SysObject {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ GameModeLinkListNode mUnk_04;
|
||||
/* 04 */ LinkListImpl mUnk_04;
|
||||
/* 0C */
|
||||
|
||||
FileSelectManager_UnkDrawBase();
|
||||
|
||||
@@ -43,8 +43,7 @@ public:
|
||||
|
||||
UnkSubStruct9();
|
||||
UnkSubStruct9(stack_struct1 param1);
|
||||
void Init();
|
||||
void Init(stack_struct1 param1);
|
||||
|
||||
void func_ov019_020cbaec();
|
||||
bool IsPlayerNameSet();
|
||||
void func_ov019_020cbb40();
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
#pragma once
|
||||
|
||||
#include "Game/GameMode.hpp"
|
||||
#include "LinkList.hpp"
|
||||
#include "Player/TouchControl.hpp"
|
||||
#include "System/SysNew.hpp"
|
||||
#include "Unknown/UnkStruct_02049b18.hpp"
|
||||
#include "math.hpp"
|
||||
#include "types.h"
|
||||
|
||||
#include <nitro/button.h>
|
||||
#include <nitro/touch.h>
|
||||
|
||||
@@ -23,126 +25,26 @@ public:
|
||||
void func_0201bf24();
|
||||
void func_0201bf54();
|
||||
void func_0201bf90();
|
||||
void func_0201bfec();
|
||||
void func_0201bfec(unk16 param1);
|
||||
void func_0201c00c(unk32 param1, unk32 param2);
|
||||
void func_0201c068(unk16 param1);
|
||||
void func_0201c068(unk16 param1, bool param2);
|
||||
void func_0201c0c4(unk32 param1);
|
||||
void func_0201c0e4();
|
||||
void func_0201c19c();
|
||||
void func_0201c124(unk32 param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5);
|
||||
void func_0201c1e4();
|
||||
void func_0201c22c();
|
||||
bool func_0201c2b0(unk32 param1);
|
||||
|
||||
void func_ov001_020bd734(unk32 *param1);
|
||||
void func_ov001_020bd784();
|
||||
};
|
||||
|
||||
class GameModeLinkListNode {
|
||||
class GameModeManagerBase_104_0C : public LinkList<GameModeManagerBase_104_0C> {
|
||||
public:
|
||||
/* 00 */ GameModeLinkListNode *mNext;
|
||||
/* 04 */ GameModeLinkListNode *mPrev;
|
||||
/* 08 */
|
||||
|
||||
GameModeLinkListNode();
|
||||
~GameModeLinkListNode();
|
||||
|
||||
GameModeLinkListNode *GetNode() {
|
||||
GameModeLinkListNode *node = (GameModeLinkListNode *) this;
|
||||
if (node != NULL) {
|
||||
node = (GameModeLinkListNode *) ((u32 *) node + 1);
|
||||
}
|
||||
return node;
|
||||
}
|
||||
|
||||
GameModeLinkListNode *GetNext() {
|
||||
GameModeLinkListNode *next = mNext;
|
||||
if (next != NULL) {
|
||||
next = (GameModeLinkListNode *) ((u32 *) next - 1);
|
||||
}
|
||||
return next;
|
||||
}
|
||||
|
||||
GameModeLinkListNode *GetNext3() {
|
||||
GameModeLinkListNode *next = this;
|
||||
if (next != NULL) {
|
||||
next = (GameModeLinkListNode *) ((u32 *) next - 1);
|
||||
}
|
||||
return next;
|
||||
}
|
||||
|
||||
GameModeLinkListNode *GetUnk() {
|
||||
GameModeLinkListNode *prev = (GameModeLinkListNode *) *((u32 *) this + 2);
|
||||
if (prev != NULL) {
|
||||
prev = (GameModeLinkListNode *) ((u32 *) prev - 1);
|
||||
}
|
||||
return prev;
|
||||
}
|
||||
|
||||
GameModeLinkListNode *GetUnk2() {
|
||||
GameModeLinkListNode *prev = (GameModeLinkListNode *) *((u32 *) this + 1);
|
||||
if (prev != NULL) {
|
||||
prev = (GameModeLinkListNode *) ((u32 *) prev - 1);
|
||||
}
|
||||
return prev;
|
||||
}
|
||||
|
||||
GameModeLinkListNode *GetPrev() {
|
||||
GameModeLinkListNode *prev = mPrev;
|
||||
if (prev != NULL) {
|
||||
prev = (GameModeLinkListNode *) ((u32 *) prev - 1);
|
||||
}
|
||||
return prev;
|
||||
}
|
||||
|
||||
template <typename T> T *GetTarget() {
|
||||
return (T *) this;
|
||||
}
|
||||
|
||||
void func_020166cc(GameModeLinkListNode *param1);
|
||||
void func_020166f4(GameModeLinkListNode *param1);
|
||||
unk32 func_0201673c();
|
||||
|
||||
static void func_020166ac(GameModeLinkListNode *param1);
|
||||
};
|
||||
|
||||
template <typename T> class GameModeLinkList : public GameModeLinkListNode {
|
||||
public:
|
||||
GameModeLinkList *GetNext2() {
|
||||
GameModeLinkListNode *next = (GameModeLinkListNode *) *((u8 **) this + 2);
|
||||
if (next != NULL) {
|
||||
next = (GameModeLinkListNode *) ((u32 *) next - 1);
|
||||
}
|
||||
return (GameModeLinkList *) next;
|
||||
}
|
||||
|
||||
GameModeLinkList *GetNextList() {
|
||||
return (GameModeLinkList *) this->GetNext();
|
||||
}
|
||||
|
||||
GameModeLinkList *GetPrevList() {
|
||||
return (GameModeLinkList *) this->GetPrev();
|
||||
}
|
||||
|
||||
T *GetTarget() {
|
||||
return (T *) this;
|
||||
}
|
||||
};
|
||||
|
||||
class GameModeManagerBase_104_0C : public SysObject {
|
||||
public:
|
||||
GameModeLinkList<GameModeManagerBase_104_0C> mList;
|
||||
|
||||
GameModeLinkList<GameModeManagerBase_104_0C> *GetOrigin() {
|
||||
return (GameModeLinkList<GameModeManagerBase_104_0C> *) this;
|
||||
}
|
||||
|
||||
GameModeLinkListNode *GetUnk3() {
|
||||
GameModeLinkListNode *prev = (GameModeLinkListNode *) *((u32 *) this - 1);
|
||||
if (prev != NULL) {
|
||||
prev = (GameModeLinkListNode *) ((u32 *) prev - 1);
|
||||
}
|
||||
return prev;
|
||||
}
|
||||
/* 00 (vtable) */
|
||||
/* 04 (base) */
|
||||
/* 0C */
|
||||
|
||||
// data_ov000_020b1e48 vtable
|
||||
/* 00 */ virtual ~GameModeManagerBase_104_0C();
|
||||
@@ -150,38 +52,20 @@ public:
|
||||
/* 0C */ virtual void vfunc_0C(void *param1);
|
||||
};
|
||||
|
||||
class GameModeManagerBase_104_00 : public SysObject {
|
||||
public:
|
||||
GameModeManagerBase_104_00() {}
|
||||
|
||||
/* 04 */ GameModeLinkList<GameModeManagerBase_104> mList;
|
||||
/* 0C */ GameModeManagerBase_104_0C mUnk_0C;
|
||||
};
|
||||
|
||||
class AdventureModeManager_160_14;
|
||||
class AdventureModeManager_160_18;
|
||||
class AdventureModeManager_1B8;
|
||||
|
||||
class GameModeManagerBase_104 : public GameModeManagerBase_104_00 {
|
||||
class GameModeManagerBase_104 : public LinkList<GameModeManagerBase_104> {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 (base) */
|
||||
/* 0C */ GameModeManagerBase_104_0C mUnk_0C;
|
||||
/* 18 */ bool mUnk_18;
|
||||
/* 19 */ bool mUnk_19;
|
||||
/* 1A */ bool mUnk_1A;
|
||||
/* 1C */
|
||||
|
||||
GameModeLinkList<GameModeManagerBase_104> *GetOrigin() {
|
||||
return (GameModeLinkList<GameModeManagerBase_104> *) this;
|
||||
}
|
||||
|
||||
GameModeLinkListNode *GetNode() {
|
||||
GameModeLinkListNode *node = (GameModeLinkListNode *) this;
|
||||
if (node != NULL) {
|
||||
node = (GameModeLinkListNode *) ((u32 *) node + 1);
|
||||
}
|
||||
return node;
|
||||
}
|
||||
|
||||
GameModeManagerBase_104();
|
||||
|
||||
// data_ov000_020b1e60 vtable
|
||||
@@ -226,6 +110,10 @@ public:
|
||||
/* 150 */ unk8 mUnk_153;
|
||||
/* 154 */
|
||||
|
||||
BOOL IsUnk150() {
|
||||
return this->mUnk_150;
|
||||
}
|
||||
|
||||
GameModeManagerBase(unk32 param1);
|
||||
void func_02018550(void);
|
||||
void func_02018554(void);
|
||||
@@ -242,12 +130,12 @@ public:
|
||||
void func_02018a14(unk8 *param1);
|
||||
void func_02018a8c(void);
|
||||
void func_02018a9c(unk32 param1, unk32 param2);
|
||||
void func_02018aac(unk32 param1);
|
||||
void func_02018ac4(void);
|
||||
void func_02018aac(unk32 param1, bool param2);
|
||||
void func_02018ac4(unk16 param1);
|
||||
bool func_02018ad4(void);
|
||||
bool func_02018af0(GameModeLinkList<GameModeManagerBase_104> *param1);
|
||||
bool func_02018b54(GameModeLinkList<GameModeManagerBase_104> *param1);
|
||||
bool func_02018b90(GameModeLinkList<GameModeManagerBase_104> *param1, unk8 *param2);
|
||||
bool func_02018af0(GameModeManagerBase_104 *param1);
|
||||
bool func_02018b54(GameModeManagerBase_104 *param1);
|
||||
bool func_02018b90(GameModeManagerBase_104 *param1, unk8 *param2);
|
||||
void func_02018bc4(unk32 param1);
|
||||
|
||||
// data_02044064 vtable
|
||||
@@ -261,7 +149,7 @@ public:
|
||||
/* 20 */ virtual void vfunc_20();
|
||||
/* 24 */ virtual void vfunc_24();
|
||||
/* 28 */ virtual void vfunc_28(unk8 *param1);
|
||||
/* 2C */ virtual void vfunc_2C(unk8 *param1);
|
||||
/* 2C */ virtual void DrawUI(unk8 *param1);
|
||||
/* 30 */ virtual void vfunc_30(unk32 param1);
|
||||
/* 34 */ virtual void vfunc_34(unk32 param1, unk32 param2);
|
||||
|
||||
|
||||
@@ -77,6 +77,14 @@ public:
|
||||
/* 24 */ unk8 mUnk_27;
|
||||
/* 28 */
|
||||
|
||||
u8 GetTearsAmount() const {
|
||||
return this->mTearsAmount;
|
||||
}
|
||||
|
||||
u8 GetKeyAmount() const {
|
||||
return this->mKeyAmount;
|
||||
}
|
||||
|
||||
ItemManager();
|
||||
~ItemManager();
|
||||
|
||||
|
||||
@@ -0,0 +1,201 @@
|
||||
#pragma once
|
||||
|
||||
#include "types.h"
|
||||
|
||||
//! TODO: inlines in the class
|
||||
#define GetLinkListRef(l) (&l)
|
||||
#define GetLinkListOrigin(l) GetLinkListRef(l)
|
||||
|
||||
class LinkListNode {
|
||||
private:
|
||||
/* 00 */ LinkListNode *mpNext;
|
||||
/* 04 */ LinkListNode *mpPrev;
|
||||
/* 08 */
|
||||
|
||||
public:
|
||||
LinkListNode *GetNext() {
|
||||
return this->mpNext;
|
||||
}
|
||||
|
||||
LinkListNode *GetPrev() {
|
||||
return this->mpPrev;
|
||||
}
|
||||
|
||||
void SetNext(LinkListNode *pNext) {
|
||||
this->mpNext = pNext;
|
||||
}
|
||||
|
||||
void SetPrev(LinkListNode *pPrev) {
|
||||
this->mpPrev = pPrev;
|
||||
}
|
||||
};
|
||||
|
||||
class LinkListIterImpl {
|
||||
private:
|
||||
LinkListNode *mPointer;
|
||||
|
||||
public:
|
||||
LinkListIterImpl(LinkListNode *pNode) {
|
||||
this->mPointer = pNode;
|
||||
}
|
||||
|
||||
LinkListNode *operator->() {
|
||||
return this->mPointer;
|
||||
}
|
||||
|
||||
LinkListNode &operator*() {
|
||||
return *this->mPointer;
|
||||
}
|
||||
|
||||
LinkListIterImpl &operator++() {
|
||||
this->mPointer = (LinkListNode *) ((u8 *) this->mPointer + 4);
|
||||
return *this;
|
||||
}
|
||||
|
||||
LinkListIterImpl &operator++(int) {
|
||||
this->mPointer = this->mPointer->GetNext();
|
||||
return *this;
|
||||
}
|
||||
|
||||
LinkListIterImpl &operator--(int) {
|
||||
this->mPointer = mPointer->GetPrev();
|
||||
return *this;
|
||||
}
|
||||
|
||||
friend bool operator==(LinkListIterImpl &left, LinkListNode *right) {
|
||||
return left.mPointer == right;
|
||||
}
|
||||
|
||||
friend bool operator!=(LinkListIterImpl &left, LinkListNode *right) {
|
||||
return left.mPointer != right;
|
||||
}
|
||||
};
|
||||
|
||||
class LinkListImpl : public LinkListNode {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 08 */
|
||||
|
||||
public:
|
||||
LinkListImpl();
|
||||
~LinkListImpl();
|
||||
|
||||
LinkListNode *GetOriginNode() {
|
||||
return (LinkListNode *) this;
|
||||
}
|
||||
|
||||
LinkListNode *GetBeginIterImpl() {
|
||||
return this->GetNext();
|
||||
}
|
||||
|
||||
LinkListNode *GetEndIterImpl() {
|
||||
return this;
|
||||
}
|
||||
|
||||
// insert B (`node`) between A (`this`) and C (`this->mNext`)
|
||||
void Append(LinkListNode *node);
|
||||
|
||||
// insert B (`node`) between A (`this->mPrev`) and C (`this`)
|
||||
void Prepend(LinkListNode *node);
|
||||
|
||||
// links list `node` to list `this` (append)
|
||||
void Extend(LinkListNode *node);
|
||||
|
||||
// returns the number of how many nodes are following `this`
|
||||
s32 GetListLength();
|
||||
|
||||
// search through the list to determine if the node is inside it
|
||||
bool Contains(LinkListNode *node);
|
||||
|
||||
static void Detach(LinkListNode *pNode);
|
||||
};
|
||||
|
||||
#define GetBeginIter(l) (GetLinkListRef(l)->GetNextTarget())
|
||||
#define GetBeginIterReverse(l) (GetLinkListRef(l)->GetPrevTarget())
|
||||
#define GetEndIter(l) GetLinkListRef(l)
|
||||
#define GetNextIter(it) (it = it->GetNextTarget())
|
||||
#define GetPrevIter(it) (it = it->GetPrevTarget())
|
||||
|
||||
template <typename T> class LinkListIter {
|
||||
private:
|
||||
T *mPointer;
|
||||
|
||||
public:
|
||||
LinkListIter() {}
|
||||
|
||||
LinkListIter(T *pNode) {
|
||||
this->mPointer = pNode;
|
||||
}
|
||||
|
||||
T *operator->() const {
|
||||
return this->mPointer;
|
||||
}
|
||||
|
||||
T &operator*() const {
|
||||
return *this->mPointer;
|
||||
}
|
||||
|
||||
void operator++() {
|
||||
this->mPointer = (T *) ((u8 *) this->mPointer + 4);
|
||||
}
|
||||
|
||||
void operator++(int) {
|
||||
this->mPointer = this->mPointer->GetNextTarget();
|
||||
}
|
||||
|
||||
void operator--(int) {
|
||||
this->mPointer = mPointer->GetPrevTarget();
|
||||
}
|
||||
|
||||
friend const bool operator==(LinkListIter &left, T *right) {
|
||||
return left.mPointer == right;
|
||||
}
|
||||
|
||||
friend const bool operator!=(LinkListIter &left, T *right) {
|
||||
return left.mPointer != right;
|
||||
}
|
||||
|
||||
friend const bool operator==(LinkListIter &left, T &right) {
|
||||
return left.mPointer == &right;
|
||||
}
|
||||
|
||||
friend const bool operator!=(LinkListIter &left, T &right) {
|
||||
return left.mPointer != &right;
|
||||
}
|
||||
};
|
||||
|
||||
template <typename T> class LinkList : public LinkListImpl {
|
||||
private:
|
||||
/* 00 (base) */
|
||||
/* 08 */
|
||||
|
||||
public:
|
||||
LinkList() {}
|
||||
~LinkList() {}
|
||||
|
||||
LinkListNode *GetNextNode() {
|
||||
return this->GetNext();
|
||||
}
|
||||
|
||||
LinkListNode *GetPrevNode() {
|
||||
return this->GetPrev();
|
||||
}
|
||||
|
||||
T *GetNextTarget() {
|
||||
return (T *) this->GetNextNode();
|
||||
}
|
||||
|
||||
T *GetPrevTarget() {
|
||||
return (T *) this->GetPrevNode();
|
||||
}
|
||||
|
||||
T *GetRef() {
|
||||
return (T *) this;
|
||||
}
|
||||
|
||||
void Detach() {
|
||||
LinkListImpl::Detach(this);
|
||||
}
|
||||
|
||||
typedef LinkListIter<T> Iterator;
|
||||
};
|
||||
@@ -115,10 +115,10 @@ public:
|
||||
void func_ov000_02066218(unk32 param1);
|
||||
};
|
||||
|
||||
class AdventureModeManager_160_18 {
|
||||
class AdventureModeManager_160_18 : public LinkList<AdventureModeManager_160_18> {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */
|
||||
/* 04 (base) */
|
||||
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
/* 04 */ virtual void vfunc_04();
|
||||
@@ -695,7 +695,8 @@ public:
|
||||
class AdventureModeManager_1A0 : public AdventureModeManager_174_Base {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 0C */ STRUCT_PAD(0x0C, 0xBC);
|
||||
/* B8 */ unk32 mUnk_B8;
|
||||
/* BC */
|
||||
|
||||
AdventureModeManager_1A0(GameModeManagerBase_104 *param1); // overlay 62
|
||||
|
||||
@@ -712,7 +713,8 @@ public:
|
||||
class AdventureModeManager_1A4 : public AdventureModeManager_174_Base {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 0C */ STRUCT_PAD(0x0C, 0xBC);
|
||||
/* B8 */ unk32 mUnk_B8;
|
||||
/* BC */
|
||||
|
||||
AdventureModeManager_1A4(GameModeManagerBase_104 *param1); // overlay 62
|
||||
|
||||
@@ -762,14 +764,6 @@ public:
|
||||
/* 34 */ STRUCT_PAD(0x34, 0x50);
|
||||
/* 50 */
|
||||
|
||||
GameModeLinkListNode *GetNode() {
|
||||
GameModeLinkListNode *node = (GameModeLinkListNode *) this;
|
||||
if (node != NULL) {
|
||||
node = (GameModeLinkListNode *) ((u32 *) node + 1);
|
||||
}
|
||||
return node;
|
||||
}
|
||||
|
||||
AdventureModeManager_1B0(); // overlay 31
|
||||
void func_ov031_0210fad0();
|
||||
|
||||
@@ -957,7 +951,7 @@ public:
|
||||
/* 20 */ virtual void vfunc_20() override;
|
||||
/* 24 */ virtual void vfunc_24() override;
|
||||
/* 28 */ virtual void vfunc_28(unk8 *param1) override;
|
||||
/* 2C */ virtual void vfunc_2C(unk8 *param1) override;
|
||||
/* 2C */ virtual void DrawUI(unk8 *param1) override;
|
||||
/* 34 */ virtual void vfunc_34(unk32 param1, unk32 param2) override;
|
||||
/* 38 */ virtual void vfunc_38(u32 param1, u8 param2, unk16 param3, unk16 param4) override;
|
||||
|
||||
@@ -991,7 +985,7 @@ public:
|
||||
bool func_ov024_020c6940(unk32 param1, unk32 param2);
|
||||
unk32 func_ov024_020c69d0();
|
||||
unk32 func_ov024_020c6a20();
|
||||
void func_ov024_020c6a48(unk32 param1, unk32 param2);
|
||||
void func_ov024_020c6a48(unk32 param1, bool param2);
|
||||
bool func_ov024_020c6af4(unk32 param1);
|
||||
void func_ov024_020c6b8c();
|
||||
void func_ov024_020c6c60();
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
#include "types.h"
|
||||
|
||||
typedef s32 CargoType;
|
||||
enum CargoType_ {
|
||||
CargoType_None = -1,
|
||||
CargoType_MegaIce,
|
||||
@@ -16,7 +17,7 @@ enum CargoType_ {
|
||||
|
||||
class Cargo {
|
||||
public:
|
||||
/* 00 */ unk32 mType;
|
||||
/* 00 */ CargoType mType;
|
||||
/* 04 */ unk32 mAmount;
|
||||
/* 08 */ u32 mDecayTimer;
|
||||
/* 0C */
|
||||
@@ -36,6 +37,18 @@ public:
|
||||
this->mAmount = 0;
|
||||
this->mDecayTimer = 0;
|
||||
}
|
||||
|
||||
CargoType GetType() {
|
||||
return this->mType;
|
||||
}
|
||||
|
||||
bool IsTypeSet() {
|
||||
return this->mType != CargoType_None;
|
||||
}
|
||||
|
||||
unk32 GetAmount() {
|
||||
return this->mAmount;
|
||||
}
|
||||
};
|
||||
|
||||
class CargoManager : public AutoInstance<CargoManager> {
|
||||
@@ -46,6 +59,10 @@ public:
|
||||
/* 1C */ bool mUnk_1C;
|
||||
/* 20 */
|
||||
|
||||
Cargo *GetCargo() {
|
||||
return &this->mCargo;
|
||||
}
|
||||
|
||||
// overlay 1
|
||||
CargoManager();
|
||||
~CargoManager();
|
||||
|
||||
@@ -3,19 +3,27 @@
|
||||
#include "Unknown/Common.hpp"
|
||||
#include "types.h"
|
||||
|
||||
#include <nitro/math.h>
|
||||
|
||||
struct UnkAdventureModeSystem1_48 {
|
||||
/* 00 */ STRUCT_PAD(0x00, 0x2A);
|
||||
/* 2A */ bool mUnk_2A;
|
||||
};
|
||||
|
||||
class UnkAdventureModeSystem1 {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ UnkSystem2_UnkSubSystem9 mUnk_04;
|
||||
/* 48 */
|
||||
/* 48 */ UnkAdventureModeSystem1_48 *mUnk_48;
|
||||
/* 4A */
|
||||
|
||||
UnkAdventureModeSystem1(unk16 *param1, unk16 *param2, unk32 param3);
|
||||
UnkAdventureModeSystem1(unk32 param3);
|
||||
UnkAdventureModeSystem1(Vec2s *param1, Vec2s *param2, bool param3);
|
||||
UnkAdventureModeSystem1(bool param3);
|
||||
|
||||
// data_ov024_020d7f7c
|
||||
/* 00 */ virtual void vfunc_00() = 0;
|
||||
/* 00 */ virtual unk32 vfunc_00(unk32 param1) = 0;
|
||||
|
||||
void func_ov024_020cab58();
|
||||
void func_ov024_020caba4();
|
||||
void func_ov024_020cad7c();
|
||||
void func_ov024_020cab58(Vec2s *param1, Vec2s *param2);
|
||||
bool func_ov024_020caba4(unk32 param1);
|
||||
bool func_ov024_020cad7c(unk32 param1);
|
||||
};
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
((u32) (pGroups)->entries[(flags) >> 0x10].pDAT1 + (BMG_GET_MSG_OFFSET((pGroups), (flags)) & ~1))
|
||||
|
||||
#define BMG_ID(group, infIndex) (((group) << 16) | (infIndex))
|
||||
#define BMG_ID_NONE 0
|
||||
|
||||
enum BMGGroup_ {
|
||||
BMGGroup_regular = 0x00,
|
||||
@@ -89,8 +90,8 @@ struct EntryINF1 {
|
||||
/* 00 */ u32 offset; // relative to the end of the DAT1 header
|
||||
/* 04 */ u8 mUnk_04; // flags/attributes? (+0x04 to +0x06)
|
||||
/* 05 */ u8 mUnk_05;
|
||||
/* 06 */ u8 mUnk_06;
|
||||
/* 07 */ u8 mUnk_07;
|
||||
/* 06 */ u8 fontIndex; // see FontIndex enum
|
||||
/* 07 */ s8 mUnk_07;
|
||||
/* 08 */
|
||||
};
|
||||
|
||||
|
||||
@@ -188,6 +188,38 @@ enum MsgIndex_ {
|
||||
MsgIndex_ValleySanctuary,
|
||||
MsgIndex_DuneSanctuary,
|
||||
MsgIndex_BridgeWorkersHouse,
|
||||
|
||||
#if IS_JP
|
||||
//! TODO: add the indices from the other files so we can improve this
|
||||
// BMGGroup_dungeon
|
||||
MsgIndex_BossStagnox = 0x90,
|
||||
MsgIndex_BossFraaz,
|
||||
MsgIndex_BossCactops,
|
||||
MsgIndex_BossVulcano,
|
||||
MsgIndex_BossCapbone,
|
||||
|
||||
// BMGGroup_train_extra
|
||||
MsgIndex_BossGhostTrain = 0x1A,
|
||||
|
||||
// BMGGroup_dungeon
|
||||
MsgIndex_BossStaven = 0x95,
|
||||
MsgIndex_BossMalladus1,
|
||||
MsgIndex_BossMalladus2,
|
||||
|
||||
MsgIndex_GoronTargetRange = 0xB2,
|
||||
MsgIndex_SnowdriftStation,
|
||||
MsgIndex_LostAtSeaStation,
|
||||
MsgIndex_DisorientationStation,
|
||||
MsgIndex_EndsOfTheEarthStation,
|
||||
MsgIndex_DarkOreMine,
|
||||
MsgIndex_RabbitHaven,
|
||||
MsgIndex_SlipperyStation,
|
||||
MsgIndex_ThreeQuestionMarks,
|
||||
MsgIndex_Floor1,
|
||||
MsgIndex_Floor2,
|
||||
MsgIndex_Floor3,
|
||||
MsgIndex_ZeldaPhantomTooFar,
|
||||
#else
|
||||
MsgIndex_BossStagnox,
|
||||
MsgIndex_BossFraaz,
|
||||
MsgIndex_BossCactops,
|
||||
@@ -202,7 +234,7 @@ enum MsgIndex_ {
|
||||
MsgIndex_LostAtSeaStation,
|
||||
MsgIndex_DisorientationStation,
|
||||
MsgIndex_EndsOfTheEarthStation,
|
||||
MsgIndex_DarOreMine,
|
||||
MsgIndex_DarkOreMine,
|
||||
MsgIndex_RabbitHaven,
|
||||
MsgIndex_SlipperyStation,
|
||||
MsgIndex_ThreeQuestionMarks,
|
||||
@@ -210,4 +242,5 @@ enum MsgIndex_ {
|
||||
MsgIndex_Floor2,
|
||||
MsgIndex_Floor3,
|
||||
MsgIndex_ZeldaPhantomTooFar,
|
||||
#endif
|
||||
};
|
||||
|
||||
@@ -24,7 +24,7 @@ enum TitleScreenState_ {
|
||||
TitleScreenState_Max = 6
|
||||
};
|
||||
|
||||
class TitleScreen_Sub2 : public GameModeLinkListNode {
|
||||
class TitleScreen_Sub2 : public LinkList<TitleScreen_Sub2> {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 0C */ unk32 mUnk_0C;
|
||||
@@ -37,10 +37,6 @@ public:
|
||||
mUnk_0C(0),
|
||||
mUnk_10(false) {}
|
||||
|
||||
GameModeLinkListNode *GetNode() {
|
||||
return this;
|
||||
}
|
||||
|
||||
// data_ov025_020c5b24 vtable
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
};
|
||||
@@ -92,14 +88,6 @@ public:
|
||||
/* 344 */ unk32 mUnk_344;
|
||||
/* 348 */
|
||||
|
||||
GameModeLinkListNode *GetNode() {
|
||||
GameModeLinkListNode *node = (GameModeLinkListNode *) this;
|
||||
if (this != NULL) {
|
||||
node = (GameModeLinkListNode *) ((u32 *) node + 1);
|
||||
}
|
||||
return node;
|
||||
}
|
||||
|
||||
TitleScreen();
|
||||
|
||||
void func_ov025_020c4e54();
|
||||
@@ -148,7 +136,7 @@ public:
|
||||
/* 18 */ virtual void vfunc_18() override;
|
||||
/* 24 */ virtual void vfunc_24() override;
|
||||
/* 28 */ virtual void vfunc_28(unk8 *param1) override;
|
||||
/* 2C */ virtual void vfunc_2C(unk8 *param1) override;
|
||||
/* 2C */ virtual void DrawUI(unk8 *param1) override;
|
||||
/* 38 */ virtual void vfunc_38(u32 param1, u8 param2, unk16 param3, unk16 param4) override;
|
||||
|
||||
static TitleScreenManager *Create(unk32 param1);
|
||||
|
||||
+195
-45
@@ -3,12 +3,15 @@
|
||||
#include "Game/GameModeManager.hpp"
|
||||
#include "System/SysNew.hpp"
|
||||
#include "Unknown/UnkFileSystem.hpp"
|
||||
#include "Unknown/UnkMemFuncs.h"
|
||||
#include "global.h"
|
||||
#include "math.hpp"
|
||||
#include "profile.hpp"
|
||||
#include "types.h"
|
||||
|
||||
#include <nns/text.h>
|
||||
|
||||
class UnkDataStruct2;
|
||||
extern "C" void func_0201e8d4(void *param1, void *param2);
|
||||
|
||||
//! TODO: make this work with templates?
|
||||
@@ -120,6 +123,35 @@ public:
|
||||
/* 1C */ unk32 mUnk_1C;
|
||||
/* 20 */
|
||||
|
||||
void UnkOperations1() {
|
||||
this->mUnk_0A = true;
|
||||
this->mUnk_0B = false;
|
||||
this->mUnk_0C = false;
|
||||
|
||||
if (this->mUnk_04 == this->mUnk_06) {
|
||||
this->mUnk_0A = false;
|
||||
this->mUnk_0C = true;
|
||||
}
|
||||
}
|
||||
|
||||
void UnkOperations2() {
|
||||
this->mUnk_0A = false;
|
||||
this->mUnk_0B = true;
|
||||
this->mUnk_0C = false;
|
||||
|
||||
if (this->mUnk_04 == 0) {
|
||||
this->mUnk_0B = false;
|
||||
this->mUnk_0C = true;
|
||||
}
|
||||
}
|
||||
|
||||
void UnkOperations3() {
|
||||
this->mUnk_04 = 0;
|
||||
this->mUnk_0A = false;
|
||||
this->mUnk_0B = false;
|
||||
this->mUnk_0C = true;
|
||||
}
|
||||
|
||||
UnkSubStruct1_Base();
|
||||
|
||||
// data_02044330 vtable
|
||||
@@ -181,14 +213,25 @@ public:
|
||||
struct UnkStruct_ov019_020d24c8_28_258_00 {
|
||||
/* 00 */ void *mUnk_00;
|
||||
/* 04 */ unk32 mUnk_04;
|
||||
/* 08 */
|
||||
|
||||
UnkStruct_ov019_020d24c8_28_258_00() {
|
||||
this->mUnk_00 = NULL;
|
||||
this->mUnk_04 = 0;
|
||||
}
|
||||
|
||||
UnkStruct_ov019_020d24c8_28_258_00() {}
|
||||
UnkStruct_ov019_020d24c8_28_258_00(void *param1, unk32 param2) :
|
||||
mUnk_00(param1),
|
||||
mUnk_04(param2) {}
|
||||
void func_ov000_0205fc20(unk32 param1, unk32 param2, void *param3, void *param4);
|
||||
};
|
||||
|
||||
struct UnkStruct_ov019_020d24c8_28_258_00_Derived1 : public UnkStruct_ov019_020d24c8_28_258_00 {
|
||||
/* 00 (base) */
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 0C */
|
||||
};
|
||||
|
||||
class UnkStruct_ov019_020d24c8_28_258 : public UnkStruct_ov019_020d24c8_28_258_00 {
|
||||
public:
|
||||
/* 08 */ unk16 mUnk_08;
|
||||
@@ -196,26 +239,22 @@ public:
|
||||
Vec2s mPos;
|
||||
Vec2us mPosU;
|
||||
};
|
||||
/* 0E */ s16 mUnk_0E;
|
||||
/* 10 */ unk16 mUnk_10;
|
||||
/* 0E */ Vec2s mUnk_0E;
|
||||
/* 12 */ unk16 mUnk_12;
|
||||
/* 14 */ unk16 mUnk_14;
|
||||
/* 16 */ unk16 mUnk_16;
|
||||
/* 18 */
|
||||
|
||||
UnkStruct_ov019_020d24c8_28_258() {
|
||||
this->mUnk_00 = NULL;
|
||||
this->mUnk_04 = 0;
|
||||
this->mPos.x = 0;
|
||||
this->mPos.y = 0;
|
||||
this->mPos.x = 0;
|
||||
this->mPos.y = 0;
|
||||
};
|
||||
|
||||
UnkStruct_ov019_020d24c8_28_258(unk32 param1, unk32 param2) :
|
||||
UnkStruct_ov019_020d24c8_28_258_00(NULL, 0) {
|
||||
UnkStruct_ov019_020d24c8_28_258(s16 param1, unk32 param2) {
|
||||
this->UnknownAction(param1, param2);
|
||||
}
|
||||
|
||||
void UnknownAction(unk32 param1, unk32 param2) {
|
||||
void UnknownAction(s16 param1, unk32 param2) {
|
||||
this->func_ov000_0205fc20(param1, param2, &this->mPos, &this->mUnk_0E);
|
||||
this->mUnk_12 = param1;
|
||||
this->mUnk_14 = param2;
|
||||
@@ -223,9 +262,15 @@ public:
|
||||
};
|
||||
|
||||
#define BTN_ID_NONE -1
|
||||
|
||||
#define BTN_ID_UNK_00 0x00
|
||||
|
||||
#define BTN_ID_ITEM 0x03
|
||||
#define BTN_ID_RETURN 0x05
|
||||
|
||||
#define BTN_ID_UNK_08 0x08
|
||||
#define BTN_ID_UNK_0C 0x0C
|
||||
|
||||
#define BTN_ID_TRAIN_ROUTE_GO 0x0E
|
||||
#define BTN_ID_TRAIN_ROUTE_CANCEL 0x0F
|
||||
#define BTN_ID_TRAIN_ROUTE_QUIT 0x10
|
||||
@@ -256,6 +301,8 @@ public:
|
||||
#define BTN_ID_MENU_PAN_FLUTE 0x3C
|
||||
#define BTN_ID_MENU_CLOSE_TOP 0x3D
|
||||
|
||||
#define BTN_ID_FILE_SELECT_UNK_0F 0x0F
|
||||
#define BTN_ID_FILE_SELECT_UNK_14 0x14
|
||||
#define BTN_ID_FILE_SELECT_FILE_1 0x40
|
||||
#define BTN_ID_FILE_SELECT_FILE_2 0x41
|
||||
#define BTN_ID_FILE_SELECT_42 0x42 // unused file 3 probably
|
||||
@@ -413,7 +460,7 @@ public:
|
||||
#define BTN_ID_BATTLE_MENU_JOIN_GROUP 0xBB
|
||||
#define BTN_ID_BATTLE_MENU_PLAYER_LIST 0xBD
|
||||
|
||||
class UnkSystem2_UnkSubSystem1_Base : public GameModeLinkList<UnkSystem2_UnkSubSystem1_Base> {
|
||||
class UnkSystem2_UnkSubSystem1_Base : public LinkList<UnkSystem2_UnkSubSystem1_Base> {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 0C */ void *mUnk_0C;
|
||||
@@ -538,25 +585,33 @@ public:
|
||||
class UnkSystem2_UnkSubSystem5_Base_10 {
|
||||
public:
|
||||
/* 000 (vtable) */
|
||||
/* 014 */ void *mUnk_014;
|
||||
/* 018 */ unk32 mUnk_018;
|
||||
/* 01C */ void *mUnk_01C;
|
||||
/* 020 */ unk32 mUnk_020;
|
||||
/* 024 */ unk32 mUnk_024;
|
||||
/* 028 */ unk8 mUnk_028;
|
||||
/* 029 */ unk8 mUnk_029;
|
||||
/* 02A */ unk8 mUnk_02A;
|
||||
/* 02B */ unk8 mUnk_02B;
|
||||
/* 02C */ unk32 mUnk_02C;
|
||||
/* 030 */ unk32 mUnk_030;
|
||||
/* 034 */ unk32 mUnk_034;
|
||||
/* 038 */ unk32 mUnk_038;
|
||||
/* 03C */ unk32 mUnk_03C;
|
||||
/* 040 */ unk32 mUnk_040;
|
||||
/* 044 */ unk32 mUnk_044;
|
||||
/* 048 */ unk32 mUnk_048;
|
||||
/* 04C */ unk32 mUnk_04C;
|
||||
/* 050 */ STRUCT_PAD(0x50, 0x130); // e0
|
||||
/* 014 */ void *mUnk_004;
|
||||
/* 018 */ unk32 mUnk_008;
|
||||
/* 01C */ void *mUnk_00C;
|
||||
/* 020 */ unk32 mUnk_010;
|
||||
/* 024 */ unk16 mUnk_014;
|
||||
/* 026 */ u16 mUnk_016;
|
||||
/* 028 */ unk8 mUnk_018;
|
||||
/* 029 */ unk8 mUnk_019;
|
||||
/* 02A */ unk8 mUnk_01A;
|
||||
/* 02B */ unk8 mUnk_01B;
|
||||
/* 02C */ unk32 mUnk_01C;
|
||||
/* 030 */ unk32 mUnk_020;
|
||||
/* 034 */ unk32 mUnk_024;
|
||||
/* 038 */ unk32 mUnk_028;
|
||||
/* 03C */ unk32 mUnk_02C;
|
||||
/* 040 */ unk32 mUnk_030;
|
||||
/* 044 */ unk32 mUnk_034;
|
||||
/* 048 */ unk32 mUnk_038;
|
||||
/* 04C */ unk32 mUnk_03C;
|
||||
/* 050 */ unk32 mUnk_040;
|
||||
/* 054 */ unk32 mUnk_044;
|
||||
/* 058 */ unk32 mUnk_048;
|
||||
/* 05C */ unk32 mUnk_04C;
|
||||
/* 060 */ unk32 mUnk_050;
|
||||
/* 064 */ unk32 mUnk_054;
|
||||
/* 068 */ STRUCT_PAD(0x58, 0x130);
|
||||
/* 130 */
|
||||
|
||||
UnkSystem2_UnkSubSystem5_Base_10();
|
||||
|
||||
@@ -565,7 +620,7 @@ public:
|
||||
/* 08 */ virtual void vfunc_08();
|
||||
/* 0C */ virtual void vfunc_0C();
|
||||
/* 10 */ virtual void vfunc_10(void *param1);
|
||||
/* 14 */ virtual void vfunc_14();
|
||||
/* 14 */ virtual void vfunc_14(unk32 param1);
|
||||
/* 18 */ virtual void vfunc_18();
|
||||
/* 1C */ virtual void vfunc_1C();
|
||||
/* 20 */ virtual void vfunc_20();
|
||||
@@ -580,10 +635,19 @@ public:
|
||||
/* 44 */ virtual void vfunc_44();
|
||||
/* 48 */ virtual void vfunc_48();
|
||||
/* 4C */
|
||||
|
||||
unk32 func_ov000_020691e0(void *param1);
|
||||
void func_ov000_02068798(Vec2s *param1);
|
||||
void func_ov000_02068798(void *, void *);
|
||||
};
|
||||
|
||||
struct Font_UnkStruct1;
|
||||
struct UnkSystem2_UnkSubSystem11_Base_1C {
|
||||
u8 pad[0x10];
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
/* 04 */ Font_UnkStruct1 *mUnk_04;
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 0C */ unk32 mUnk_0C;
|
||||
/* 10 */
|
||||
};
|
||||
|
||||
class UnkSystem2_UnkSubSystem11_Base {
|
||||
@@ -591,7 +655,9 @@ public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ Text_UnkStruct2 mUnk_04;
|
||||
/* 1C */ UnkSystem2_UnkSubSystem11_Base_1C mUnk_1C; // +0x24: space between characters, set from BMG INF1 entry
|
||||
/* 2C */
|
||||
/* 2C */ s16 mUnk_2C;
|
||||
/* 2E */ unk16 mUnk_2E; // pad?
|
||||
/* 30 */
|
||||
|
||||
UnkSystem2_UnkSubSystem11_Base(); // func_ov000_02061ce0
|
||||
|
||||
@@ -600,23 +666,48 @@ public:
|
||||
/* 04 */ virtual void vfunc_04();
|
||||
/* 08 */ virtual void vfunc_08();
|
||||
/* 0C */ virtual void vfunc_0C();
|
||||
|
||||
void func_ov000_02061d38();
|
||||
void func_ov000_02061d88();
|
||||
unk32 func_ov000_02061da8();
|
||||
unk32 func_ov000_02061db8();
|
||||
};
|
||||
|
||||
class UnkSystem2_UnkSubSystem11 : public UnkSystem2_UnkSubSystem11_Base {
|
||||
class UnkSystem2_UnkSubSystem11_Derived1 : public UnkSystem2_UnkSubSystem11_Base {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 2C */ STRUCT_PAD(0x2C, 0xE8);
|
||||
/* E8 */
|
||||
/* 30 */ STRUCT_PAD(0x30, 0xC0);
|
||||
/* C0 */
|
||||
|
||||
UnkSystem2_UnkSubSystem11(); // func_ov000_02061f30
|
||||
~UnkSystem2_UnkSubSystem11();
|
||||
void func_ov000_02061f60();
|
||||
UnkSystem2_UnkSubSystem11_Derived1(); // func_ov000_02061f30
|
||||
~UnkSystem2_UnkSubSystem11_Derived1();
|
||||
|
||||
// data_ov000_020b1e9c vtable
|
||||
/* 00 */ virtual void vfunc_00() override;
|
||||
/* 04 */ virtual void vfunc_04() override;
|
||||
/* 08 */ virtual void vfunc_08() override;
|
||||
/* 0C */ virtual void vfunc_0C() override;
|
||||
|
||||
void func_ov000_02061f8c();
|
||||
void func_ov000_02062144();
|
||||
void func_ov000_0206216c(Vec2s *param1, unk32 param2, unk32 param3);
|
||||
void func_ov000_02062228();
|
||||
void func_ov000_02062838(void *param1);
|
||||
};
|
||||
|
||||
class UnkSystem2_UnkSubSystem11_Derived2 : public UnkSystem2_UnkSubSystem11_Derived1 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* C0 */ STRUCT_PAD(0xC0, 0xE0);
|
||||
/* E0 */
|
||||
|
||||
UnkSystem2_UnkSubSystem11_Derived2() {}
|
||||
~UnkSystem2_UnkSubSystem11_Derived2() {}
|
||||
|
||||
// data_020443a8 (vtable)
|
||||
|
||||
void func_ov000_020626e4(void *param1, bool param2, unk32 *param3, void *param4);
|
||||
void func_ov000_020626e4(void *param1, bool param2, unk32 *param3, unk32 param4, unk32 param5, unk32 param6, unk32 param7);
|
||||
};
|
||||
|
||||
class UnkSystem2_UnkSubSystem5_Base {
|
||||
@@ -627,7 +718,6 @@ public:
|
||||
/* 00A */ unk16 mUnk_00A; // UnkSystem2_UnkSubSystem5()'s param2
|
||||
/* 00C */ void *mUnk_00C;
|
||||
/* 010 */ UnkSystem2_UnkSubSystem5_Base_10 mUnk_010;
|
||||
/* 130 */ STRUCT_PAD(0x130, 0x140);
|
||||
/* 140 */ unk16 mUnk_140;
|
||||
/* 142 */ unk16 mUnk_142;
|
||||
/* 144 */ unk16 mUnk_144;
|
||||
@@ -638,7 +728,7 @@ public:
|
||||
/* 14E */ unk8 mUnk_14E; // 0x546
|
||||
/* 14F */ unk8 mUnk_14F; // 0x547
|
||||
|
||||
UnkSystem2_UnkSubSystem5_Base(UnkSystem2_UnkSubSystem11 *param1, unk32 param2, unk32 param3); // func_0201f288
|
||||
UnkSystem2_UnkSubSystem5_Base(UnkSystem2_UnkSubSystem11_Derived2 *param1, unk32 param2, unk32 param3); // func_0201f288
|
||||
~UnkSystem2_UnkSubSystem5_Base();
|
||||
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
@@ -649,7 +739,9 @@ public:
|
||||
class UnkSystem2_UnkSubSystem5 : public UnkSystem2_UnkSubSystem5_Base {
|
||||
public:
|
||||
/* 000 (base) */
|
||||
/* 150 */ UnkSystem2_UnkSubSystem11 mUnk_150;
|
||||
/* 150 */ UnkSystem2_UnkSubSystem11_Derived2 mUnk_150;
|
||||
/* 230 */ unk32 mUnk_230;
|
||||
/* 234 */ unk32 mUnk_234;
|
||||
/* 238 */
|
||||
|
||||
UnkSystem2_UnkSubSystem5(unk32 param1, unk32 param2);
|
||||
@@ -717,7 +809,7 @@ public:
|
||||
/* 0C */
|
||||
|
||||
//! TODO: conflict with UnkStruct_ov019_020d24c8_28_304
|
||||
void func_0201e874(unk32 param1, void *param2, void *param3, unk32 param4);
|
||||
void func_0201e874(unk32 buttonID, void *param2, void *param3, unk32 param4);
|
||||
};
|
||||
|
||||
class UnkSystem2_UnkSubSystem8 : public UnkSystem2_UnkSubSystem8_Base {
|
||||
@@ -834,15 +926,16 @@ public:
|
||||
this->func_ov000_0206082c(param1, param2);
|
||||
}
|
||||
|
||||
void func_ov000_0206082c(unk32 param1, unk32 param2);
|
||||
void func_ov000_0206082c(s16 param1, unk32 param2);
|
||||
void func_ov000_02060950();
|
||||
void func_ov000_020609b0();
|
||||
void func_ov000_020609c4(void);
|
||||
bool func_ov000_02060a98(unk32 param1);
|
||||
void func_ov000_02060ad0();
|
||||
unk32 func_ov000_02060af8(void);
|
||||
bool func_ov000_02060af8(void);
|
||||
void func_ov000_02060b50();
|
||||
void func_ov000_02060b64(void);
|
||||
void func_ov000_02060bac();
|
||||
unk32 func_ov000_02060c28(void);
|
||||
void func_ov000_02060bd8(unk32 param1);
|
||||
};
|
||||
@@ -1133,3 +1226,60 @@ public:
|
||||
bool func_ov024_020c510c();
|
||||
void func_ov024_020c5120(bool param1);
|
||||
};
|
||||
|
||||
struct UnkDataStruct1 {
|
||||
/* 00 */ void *mUnk_00;
|
||||
/* 04 */ u8 mUnk_04;
|
||||
/* 05 */ unk8 mUnk_05;
|
||||
/* 06 */ u16 mUnk_06;
|
||||
/* 08 */
|
||||
|
||||
UnkDataStruct1() {}
|
||||
UnkDataStruct1(u16 param1) {
|
||||
this->Init();
|
||||
this->mUnk_06 |= param1;
|
||||
}
|
||||
|
||||
UnkDataStruct1(void *param1, u16 param2) {
|
||||
this->Init();
|
||||
this->mUnk_06 |= param2;
|
||||
this->mUnk_00 = param1;
|
||||
}
|
||||
|
||||
void Init() {
|
||||
this->mUnk_06 = 0x00;
|
||||
MI_CpuFill32(0, this, sizeof(UnkDataStruct1));
|
||||
this->mUnk_05 = -1;
|
||||
}
|
||||
|
||||
void SetUnk04(u8 param1) {
|
||||
this->mUnk_04 = param1;
|
||||
}
|
||||
};
|
||||
|
||||
struct UnkDataStruct2 {
|
||||
/* 00 */ void *unk_00;
|
||||
/* 04 */
|
||||
|
||||
UnkDataStruct2(unk32 param1);
|
||||
~UnkDataStruct2();
|
||||
};
|
||||
|
||||
struct UnkDataStruct3 {
|
||||
/* 00 */ UnkDataStruct2 mUnk_00;
|
||||
/* 04 */ unk32 mUnk_04;
|
||||
/* 08 */ STRUCT_PAD(0x08, 0xCC);
|
||||
/* CC */ unk32 mUnk_CC;
|
||||
/* D0 */ unk32 mUnk_D0;
|
||||
/* D4 */
|
||||
|
||||
UnkDataStruct3(unk32 param1) :
|
||||
mUnk_00(param1) {}
|
||||
};
|
||||
|
||||
struct InputInformations {
|
||||
void *unk_00;
|
||||
void *unk_04;
|
||||
void *unk_08;
|
||||
void *unk_0C;
|
||||
};
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
#include "Game/GameMode.hpp"
|
||||
#include "Game/GameModeManager.hpp"
|
||||
#include "LinkList.hpp"
|
||||
#include "System/SysNew.hpp"
|
||||
#include "Unknown/Common.hpp"
|
||||
#include "Unknown/UnkStruct_ov000_02067bc4.hpp"
|
||||
@@ -9,10 +10,10 @@
|
||||
|
||||
class GameModeFileSelect;
|
||||
|
||||
class UnkStruct_0204a060_Base3 : public SysObject {
|
||||
class UnkStruct_0204a060_Base3 : public LinkList<UnkStruct_0204a060_Base3> {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ GameModeLinkList<UnkStruct_0204a060_Base3> mUnk_04;
|
||||
/* 04 (base) */
|
||||
/* 0C */ bool mUnk_0C;
|
||||
/* 0D */ unk8 mUnk_0D;
|
||||
/* 0E */ unk8 mUnk_0E;
|
||||
|
||||
@@ -60,6 +60,7 @@ public:
|
||||
|
||||
UnkStruct_0204a110_Sub2();
|
||||
void func_0201c890(unk32 param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5);
|
||||
void func_0201ca28(unk32 param1);
|
||||
};
|
||||
|
||||
class UnkStruct_0204a110_Sub3_00 {
|
||||
@@ -131,12 +132,10 @@ public:
|
||||
void func_0201cf30();
|
||||
};
|
||||
|
||||
class UnkStruct_0204a110_Sub7_08 : public SysObject {
|
||||
class UnkStruct_0204a110_Sub7_08 : public UnkSubStruct1_Base {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ STRUCT_PAD(0x04, 0x0A);
|
||||
/* 0A */ bool mUnk_0A;
|
||||
/* 0B */ STRUCT_PAD(0x0B, 0x30);
|
||||
/* 0B */ STRUCT_PAD(0x20, 0x30);
|
||||
/* 30 */
|
||||
|
||||
UnkStruct_0204a110_Sub7_08();
|
||||
@@ -147,14 +146,21 @@ public:
|
||||
/* 08 */ virtual void vfunc_08();
|
||||
|
||||
unk32 func_0201ec30();
|
||||
void func_0201ebf8(unk32 param1, unk32 param2, unk32 param3, unk32 param4);
|
||||
|
||||
void Subprocess1_UnkValueSets() {
|
||||
this->mUnk_10 = this->mUnk_18;
|
||||
}
|
||||
|
||||
void Subprocess2_UnkValueSets() {
|
||||
this->mUnk_10 = this->mUnk_14;
|
||||
}
|
||||
|
||||
UnkSubStruct1_Methods;
|
||||
};
|
||||
|
||||
struct UnkStruct_027e0120 {
|
||||
/* 00 */ unk32 mUnk_00[4];
|
||||
/* 10 */
|
||||
};
|
||||
|
||||
extern UnkStruct_027e0120 data_027e0120;
|
||||
//! TODO: actually a matrix
|
||||
extern Vec4p data_027e0120;
|
||||
|
||||
class UnkStruct_0204a110_Sub7 {
|
||||
public:
|
||||
@@ -164,7 +170,7 @@ public:
|
||||
/* 03 */ unk8 mUnk_03;
|
||||
/* 04 */ UnkSystem2_UnkSubSystem9 *mUnk_04;
|
||||
/* 08 */ UnkStruct_0204a110_Sub7_08 *mUnk_08;
|
||||
/* 0C */ UnkStruct_027e0120 mUnk_0C;
|
||||
/* 0C */ Vec4p mUnk_0C; // same type as data_027e0120?
|
||||
/* 1C */
|
||||
|
||||
UnkStruct_0204a110_Sub7();
|
||||
@@ -195,6 +201,21 @@ public:
|
||||
void func_0201e698(void);
|
||||
};
|
||||
|
||||
//! TODO: is this real?
|
||||
struct UnkStruct_func_02019590 {
|
||||
s16 a : 12;
|
||||
s16 b : 12;
|
||||
union {
|
||||
unk32 c_raw;
|
||||
struct {
|
||||
u16 c_b1 : 8;
|
||||
u16 c_b2 : 8;
|
||||
};
|
||||
};
|
||||
u16 d : 8;
|
||||
u16 e : 4;
|
||||
};
|
||||
|
||||
class UnkStruct_0204a110 {
|
||||
public:
|
||||
/* 000 */ unk32 mUnk_000;
|
||||
@@ -261,6 +282,7 @@ public:
|
||||
unk32 func_02019514();
|
||||
void func_02019528();
|
||||
bool func_02019548();
|
||||
UnkStruct_func_02019590 *func_02019590(unk16 param1, unk32 param2);
|
||||
|
||||
void func_ov001_020bd514(unk32 param1, void *param2, unk32 param3, unk32 param4);
|
||||
void func_ov001_020bd58c(void);
|
||||
|
||||
@@ -21,8 +21,9 @@ public:
|
||||
|
||||
UnkStruct_0204af1c();
|
||||
void func_0201a800();
|
||||
void func_0201aa44(void *param1, void *param2, unk32 param3, void *param4);
|
||||
void func_0201aa44(UnkStruct_ov019_020d24c8_28_258_00 *param1, void *param2, unk32 param3, void *param4);
|
||||
void func_0201aad0(UnkSubStruct19 *param1, void *param2, unk32 param3, void *param4);
|
||||
void func_0201aa8c(UnkStruct_ov019_020d24c8_28_258_00 *param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5);
|
||||
};
|
||||
|
||||
extern UnkStruct_0204af1c data_0204af1c;
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_0204e5f8_1C_Base : GameModeLinkListNode {
|
||||
class UnkStruct_0204e5f8_1C_Base : public LinkList<UnkStruct_0204e5f8_1C_Base> {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
|
||||
@@ -2,30 +2,278 @@
|
||||
|
||||
#include "Game/GameModeManager.hpp"
|
||||
#include "Item/Item.hpp"
|
||||
#include "Unknown/Common.hpp"
|
||||
#include "iterator.hpp"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_020d8698 : public GameModeManagerBase_104 {
|
||||
struct UnkStructIterator1 {
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
|
||||
UnkStructIterator1() {
|
||||
this->mUnk_00 = 0;
|
||||
}
|
||||
~UnkStructIterator1() {}
|
||||
};
|
||||
|
||||
typedef Iterator<UnkStructIterator1> UnkIterator1;
|
||||
|
||||
class UnkStruct_020d8698_1C {
|
||||
public:
|
||||
void func_ov024_020cd094();
|
||||
void func_ov024_020cd150();
|
||||
void func_ov024_020cd368(bool param1, bool param2);
|
||||
void func_ov024_020cd3d0();
|
||||
void func_ov024_020cd3e0(unk32 param1);
|
||||
void func_ov024_020cd3f0(unk32 param1);
|
||||
void func_ov024_020cd410();
|
||||
void func_ov024_020cd420();
|
||||
void func_ov024_020cd458(ItemFlag itemFlag, unk32 param2);
|
||||
void func_ov024_020cd4e4(u16 param1);
|
||||
bool func_ov024_020cd5c0(u16 param1);
|
||||
void func_ov024_020cd3a4();
|
||||
void func_ov024_020cd400();
|
||||
/* 000 */ UnkIterator1 mUnk_000;
|
||||
/* 008 */ u8 mUnk_008;
|
||||
/* 009 */ u8 mUnk_009;
|
||||
/* 00A */ u8 mUnk_00A;
|
||||
/* 00B */ unk8 mUnk_00B;
|
||||
/* 000 */ UnkStruct_ov019_020d24c8_28_258 mUnk_00C;
|
||||
/* 018 */ UnkSubStruct19 mUnk_024;
|
||||
/* 090 */ UnkSubStruct19 mUnk_09C;
|
||||
/* 108 */ UnkSubStruct19 mUnk_114;
|
||||
/* 180 */ UnkSubStruct19 mUnk_18C;
|
||||
/* 1F8 */ UnkSubStruct19 mUnk_204;
|
||||
/* 270 */ UnkSubStruct19 mUnk_27C;
|
||||
/* 2E8 */ UnkSubStruct19 mUnk_2F4;
|
||||
/* 360 */ UnkSubStruct19 mUnk_36C;
|
||||
/* 3E4 */ UnkSubStruct19 mUnk_3E4[2];
|
||||
/* 4D4 */ u8 mUnk_4D4;
|
||||
/* 4D5 */ u8 mUnk_4D5;
|
||||
/* 4D6 */ unk8 mUnk_4D6; // pad?
|
||||
/* 4D7 */ unk8 mUnk_4D7; // pad?
|
||||
/* 4D8 */
|
||||
|
||||
unk32 GetIterValue(int index) {
|
||||
return this->mUnk_000.Get(index).mUnk_00;
|
||||
}
|
||||
|
||||
void SetIterValue(u32 index, u32 value) {
|
||||
this->mUnk_000.Get(index).mUnk_00 = value;
|
||||
}
|
||||
|
||||
UnkStruct_020d8698_1C();
|
||||
|
||||
void func_ov024_020cd768();
|
||||
void func_ov024_020cd774();
|
||||
void func_ov024_020cd9f0();
|
||||
void func_ov024_020cdaac();
|
||||
void func_ov024_020cdd3c(u8 param1, u8 param2);
|
||||
void func_ov024_020cde54(u8 param1);
|
||||
void func_ov024_020cdec8();
|
||||
void func_ov024_020cdfd8();
|
||||
u8 func_ov024_020ce218();
|
||||
u8 func_ov024_020ce260();
|
||||
u32 func_ov024_020ce2a8();
|
||||
};
|
||||
|
||||
class UnkStruct_020d8698_24_5C_Base {
|
||||
public:
|
||||
/* 00 */ Vec2s mUnk_00;
|
||||
/* 04 */ unk16 mUnk_04;
|
||||
/* 06 */ unk16 mUnk_06;
|
||||
/* 08 */ UnkStruct_ov019_020d24c8_28_258_00_Derived1 mUnk_08[10];
|
||||
/* 80 */ unk32 mUnk_80;
|
||||
/* 84 */ unk32 mUnk_84;
|
||||
/* 88 */ unk32 mUnk_88;
|
||||
/* 8C */ unk32 mUnk_8C;
|
||||
/* 90 */ unk32 mUnk_90;
|
||||
/* 94 */ unk32 mUnk_94;
|
||||
/* 98 */
|
||||
|
||||
UnkStruct_020d8698_24_5C_Base(unk32 param1, const u16 *param2, u16 param3, unk32 param4);
|
||||
|
||||
void func_ov000_02065884();
|
||||
void func_ov000_0206590c(u16 param1, unk32 param2);
|
||||
void func_ov000_02065930();
|
||||
void func_ov000_02065988(u16 param1, const u16 *param2);
|
||||
void func_ov000_020659d0(unk8 *param1, UnkDataStruct1 *param2);
|
||||
};
|
||||
|
||||
class UnkStruct_020d8698_24_5C : public UnkStruct_020d8698_24_5C_Base {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 98 */ unk32 mUnk_98;
|
||||
/* 98 */ unk32 mUnk_9C;
|
||||
/* A0 */
|
||||
|
||||
UnkStruct_020d8698_24_5C(unk32 param1, const u16 *param2, u16 param3, unk32 param4);
|
||||
|
||||
void func_ov000_02065b48(unk32 param1, unk32 param2);
|
||||
void func_ov000_02065b8c();
|
||||
};
|
||||
|
||||
class UnkStruct_020d8698_24 {
|
||||
public:
|
||||
/* 000 */ UnkStruct_ov019_020d24c8_28_258 mUnk_000;
|
||||
/* 018 */ UnkSystem2_UnkSubSystem9 mUnk_018;
|
||||
/* 05C */ UnkStruct_020d8698_24_5C mUnk_05C;
|
||||
/* 0FC */ Vec2s mUnk_0FC;
|
||||
/* 100 */ unk32 mUnk_100;
|
||||
/* 104 */ bool mUnk_104;
|
||||
/* 105 */ bool mUnk_105;
|
||||
/* 106 */ Vec2s mUnk_106;
|
||||
/* 10C */
|
||||
|
||||
UnkStruct_020d8698_24();
|
||||
|
||||
void func_ov024_020ce518();
|
||||
void func_ov024_020ce570();
|
||||
void func_ov024_020ce5cc();
|
||||
void func_ov024_020ce88c(unk8 *param1);
|
||||
void func_ov024_020ce990(bool param1, bool param2);
|
||||
void func_ov024_020ce9ac();
|
||||
};
|
||||
|
||||
class UnkStruct_020d8698_2C_198 {
|
||||
public:
|
||||
/* 00 */ STRUCT_PAD(0x00, 0x80);
|
||||
/* 80 */
|
||||
};
|
||||
|
||||
class UnkStruct_020d8698_2C_14C {
|
||||
public:
|
||||
/* 00 */ wchar_t mUnk_00[31]; // path to a ncgr file
|
||||
/* 40 */ unk32 mUnk_40;
|
||||
/* 44 */ unk32 mUnk_44;
|
||||
/* 48 */ unk32 mUnk_48;
|
||||
/* 4C */
|
||||
|
||||
UnkStruct_020d8698_2C_14C();
|
||||
|
||||
void func_ov000_02060c50(const wchar_t *path, UnkStruct_020d8698_2C_198 *param2, unk32 param3,
|
||||
UnkStruct_ov019_020d24c8_28_258_00 *param4); // is param3 sizeof(param2)?
|
||||
void func_ov000_02060c7c(unk32 param1);
|
||||
void func_ov000_02060d7c(unk32 param1, u16 param2);
|
||||
void func_ov000_02060db8(u16 param1);
|
||||
void func_ov000_02060e3c(unk32 param1, const char *filename, wchar_t *param3);
|
||||
};
|
||||
|
||||
class UnkStruct_020d8698_2C {
|
||||
public:
|
||||
/* 000 */ unk32 mUnk_000;
|
||||
/* 004 */ UnkStruct_ov019_020d24c8_28_258 mUnk_004;
|
||||
/* 01C */ UnkStruct_ov019_020d24c8_28_258 mUnk_01C;
|
||||
/* 034 */ UnkStruct_ov019_020d24c8_28_258 mUnk_034;
|
||||
/* 04C */ UnkSystem2_UnkSubSystem9 mUnk_04C;
|
||||
/* 090 */ UnkStruct_020d8698_24_5C mUnk_090;
|
||||
/* 130 */ Vec2s mUnk_130;
|
||||
/* 134 */ Vec2s mUnk_134;
|
||||
/* 138 */ Vec2s mUnk_138;
|
||||
/* 13C */ unk32 mUnk_13C;
|
||||
/* 140 */ bool mUnk_140;
|
||||
/* 141 */ bool mUnk_141;
|
||||
/* 142 */ bool mUnk_142;
|
||||
/* 143 */ bool mUnk_143;
|
||||
/* 144 */ unk16 mUnk_144;
|
||||
/* 144 */ bool mUnk_146;
|
||||
/* 148 */ unk16 mUnk_148;
|
||||
/* 14A */ unk16 mUnk_14A;
|
||||
/* 14C */ UnkStruct_020d8698_2C_14C mUnk_14C;
|
||||
/* 198 */ UnkStruct_020d8698_2C_198 mUnk_198;
|
||||
/* 218 */ Vec2s mUnk_218;
|
||||
/* 21C */
|
||||
|
||||
UnkStruct_020d8698_2C();
|
||||
|
||||
void func_ov024_020ced54();
|
||||
void func_ov024_020ceda8();
|
||||
void func_ov024_020cee58();
|
||||
void func_ov024_020cee64();
|
||||
void func_ov024_020cee84();
|
||||
void func_ov024_020cef58();
|
||||
void func_ov024_020cf2b8(unk8 *param1);
|
||||
void func_ov024_020cf494(bool param1);
|
||||
void func_ov024_020cf4c4();
|
||||
void func_ov024_020cf514();
|
||||
void func_ov024_020cf53c(bool param1);
|
||||
void func_ov024_020cf570();
|
||||
void func_ov024_020cf584();
|
||||
void func_ov024_020cf5a8(bool param1);
|
||||
};
|
||||
|
||||
class UnkStruct_020d8698_34 {
|
||||
public:
|
||||
/* 00 */ UnkStruct_ov019_020d24c8_28_258 mUnk_00;
|
||||
/* 18 */ UnkSubStruct19 mUnk_18;
|
||||
/* 90 */ unk16 mUnk_90;
|
||||
/* 92 */ unk16 mUnk_92;
|
||||
/* 94 */
|
||||
|
||||
UnkStruct_020d8698_34();
|
||||
|
||||
void func_ov024_020cf698();
|
||||
void func_ov024_020cf6e4();
|
||||
void func_ov024_020cf724();
|
||||
};
|
||||
|
||||
class UnkStruct_020d8698_3C {
|
||||
public:
|
||||
/* 00 */ UnkStruct_ov019_020d24c8_28_258 mUnk_00;
|
||||
/* 18 */ UnkStruct_ov019_020d24c8_28_258 mUnk_18;
|
||||
/* 30 */
|
||||
|
||||
UnkStruct_020d8698_3C();
|
||||
|
||||
void func_ov024_020cf82c();
|
||||
void func_ov024_020cf888();
|
||||
void func_ov024_020cf88c();
|
||||
};
|
||||
|
||||
class UnkStruct_020d8698_44 : public LinkList<UnkStruct_020d8698_44> {
|
||||
public:
|
||||
/* 008 */ STRUCT_PAD(0x0C, 0x18B);
|
||||
/* 18B */ bool mUnk_18B;
|
||||
/* 18C */ STRUCT_PAD(0x18C, 0x52C);
|
||||
/* 52C */
|
||||
|
||||
UnkStruct_020d8698_44(); // overlay 31
|
||||
|
||||
/* 00 */ virtual ~UnkStruct_020d8698_44();
|
||||
/* 08 */
|
||||
|
||||
void func_ov031_0210eeb4();
|
||||
void func_ov031_0210f7e4(ItemFlag itemFlag, bool param2);
|
||||
void func_ov031_0210f814();
|
||||
};
|
||||
|
||||
class UnkStruct_020d8698 : public GameModeManagerBase_104, AutoInstance<UnkStruct_020d8698> {
|
||||
public:
|
||||
/* 000 (base) */
|
||||
/* 01C */ UnkStruct_020d8698_1C *mUnk_01C;
|
||||
/* 020 */ bool mUnk_020;
|
||||
/* 024 */ UnkStruct_020d8698_24 *mUnk_024;
|
||||
/* 028 */ bool mUnk_028;
|
||||
/* 02C */ UnkStruct_020d8698_2C *mUnk_02C;
|
||||
/* 030 */ bool mUnk_030;
|
||||
/* 034 */ UnkStruct_020d8698_34 *mUnk_034;
|
||||
/* 038 */ bool mUnk_038;
|
||||
/* 03C */ UnkStruct_020d8698_3C *mUnk_03C;
|
||||
/* 040 */ bool mUnk_040;
|
||||
/* 044 */ UnkStruct_020d8698_44 *mUnk_044;
|
||||
/* 048 */ bool mUnk_048;
|
||||
|
||||
UnkStruct_020d8698();
|
||||
|
||||
/* 00 */ virtual ~UnkStruct_020d8698();
|
||||
/* 08 */ virtual void vfunc_08();
|
||||
/* 0C */ virtual void vfunc_0C();
|
||||
/* 10 */ virtual void vfunc_10();
|
||||
/* 14 */ virtual void vfunc_14();
|
||||
/* 18 */ virtual void vfunc_18();
|
||||
/* 08 */ virtual void vfunc_08(Input *pButtons, TouchControl *pTouchControl);
|
||||
/* 10 */ virtual void vfunc_10(unk8 *param1);
|
||||
|
||||
void func_ov024_020cd094();
|
||||
void func_ov024_020cd150();
|
||||
void func_ov024_020cd348(u8 param1, u8 param2);
|
||||
void func_ov024_020cd358(u8 param1);
|
||||
void func_ov024_020cd368(bool param1, bool param2);
|
||||
void func_ov024_020cd3a4();
|
||||
void func_ov024_020cd3d0();
|
||||
void func_ov024_020cd3e0(bool param1);
|
||||
void func_ov024_020cd3f0(bool param1);
|
||||
void func_ov024_020cd400();
|
||||
void func_ov024_020cd410();
|
||||
void func_ov024_020cd420();
|
||||
void func_ov024_020cd458(ItemFlag itemFlag, bool param2);
|
||||
void func_ov024_020cd4a4(bool param1);
|
||||
void func_ov024_020cd4e4(u16 param1, bool param2);
|
||||
bool func_ov024_020cd5c0(u16 param1);
|
||||
bool func_ov024_020cd604();
|
||||
|
||||
static UnkStruct_020d8698 *Create();
|
||||
};
|
||||
|
||||
extern UnkStruct_020d8698 *data_ov024_020d8698;
|
||||
|
||||
@@ -11,7 +11,7 @@ public:
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 0C */ unk32 mUnk_0C;
|
||||
/* 10 */ unk32 mUnk_10;
|
||||
/* 14 */ GameModeLinkListNode mUnk_14;
|
||||
/* 14 */ LinkListImpl mUnk_14;
|
||||
|
||||
UnkStruct_027e0954();
|
||||
~UnkStruct_027e0954();
|
||||
|
||||
@@ -78,7 +78,7 @@ enum SceneIndex_ {
|
||||
/* 54 */ SceneIndex_f_bridge = 0x36, // Bridge Worker's House
|
||||
/* 55 */ SceneIndex_f_bridge2 = 0x37, // Trading Post
|
||||
/* 56 */ SceneIndex_f_forest3 = 0x38, // whittleton forest
|
||||
/* 57 */ SceneIndex_f_water3 = 0x39, // papuchia south
|
||||
/* 57 */ SceneIndex_f_water3 = 0x39, // papuchia south and lost at sea station
|
||||
/* 58 */ SceneIndex_f_ajito = 0x3A, // Pirate Hideout
|
||||
/* 59 */ SceneIndex_f_ajito2 = 0x3B, // same as above
|
||||
/* 60 */ SceneIndex_f_flame3 = 0x3C, // Goron Target Range
|
||||
@@ -147,11 +147,13 @@ enum SceneIndex_ {
|
||||
|
||||
struct UnkStruct_func_01ffd400 {
|
||||
/* 00 */ STRUCT_PAD(0x00, 0x10);
|
||||
/* 1B */ unk32 mUnk_10;
|
||||
/* 1B */ unk32 mUnk_14;
|
||||
/* 1B */ unk8 mUnk_18;
|
||||
/* 1B */ unk8 mUnk_19;
|
||||
/* 1B */ unk8 mUnk_1A;
|
||||
/* 10 */ unk32 mUnk_10;
|
||||
/* 14 */ unk16 mUnk_14;
|
||||
/* 16 */ s8 mUnk_16;
|
||||
/* 17 */ unk8 mUnk_17;
|
||||
/* 18 */ unk8 mUnk_18;
|
||||
/* 19 */ unk8 mUnk_19;
|
||||
/* 1A */ unk8 mUnk_1A;
|
||||
/* 1B */ u8 mUnk_1B;
|
||||
};
|
||||
|
||||
@@ -269,6 +271,16 @@ public:
|
||||
return false;
|
||||
}
|
||||
|
||||
bool UnkCheck2() const {
|
||||
bool result = true;
|
||||
|
||||
if (this->func_01ffd400()->mUnk_10 != 1 && this->func_01ffd400()->mUnk_10 != 3) {
|
||||
result = false;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
SceneIndex CurrentSceneIndex() {
|
||||
return this->mUnk_00.mSceneIndex;
|
||||
}
|
||||
@@ -277,18 +289,30 @@ public:
|
||||
return this->mUnk_00.mSceneIndex <= SceneIndex_t_eviltrain3 && this->mUnk_00.mSceneIndex >= SceneIndex_t_eviltrain;
|
||||
}
|
||||
|
||||
bool IsDungeonTower() {
|
||||
return this->mUnk_00.mSceneIndex == SceneIndex_d_main;
|
||||
}
|
||||
|
||||
bool IsPirate() {
|
||||
return this->mUnk_00.mSceneIndex == SceneIndex_f_pirate;
|
||||
}
|
||||
|
||||
bool IsWater3() {
|
||||
return this->mUnk_00.mSceneIndex == SceneIndex_f_water3;
|
||||
}
|
||||
|
||||
bool IsSnowdriftStation() {
|
||||
return this->mUnk_00.mSceneIndex == SceneIndex_f_kakushi1;
|
||||
}
|
||||
|
||||
bool IsPassenger() {
|
||||
return this->mUnk_00.mSceneIndex == SceneIndex_f_passenger;
|
||||
}
|
||||
|
||||
~UnkStruct_027e09a4();
|
||||
|
||||
bool func_01ffd3d8();
|
||||
UnkStruct_func_01ffd400 *func_01ffd400();
|
||||
bool func_01ffd3d8(); // is on train?
|
||||
UnkStruct_func_01ffd400 *func_01ffd400() const;
|
||||
|
||||
unk8 func_ov000_02070bd0(unk32 csIndex, unk32 param2);
|
||||
UnkStruct_SceneChange1 *func_ov000_02070560();
|
||||
@@ -302,7 +326,7 @@ public:
|
||||
unk16 *func_ov000_02070538();
|
||||
bool func_ov000_02070a9c(UnkStruct_SceneChange1 *param1);
|
||||
bool func_ov000_02072154(UnkStruct_SceneChange1 *param1, unk32 param2);
|
||||
void func_ov000_0207056c();
|
||||
bool func_ov000_0207056c();
|
||||
void func_ov000_020705e8(SaveFile *param1, unk32 param2);
|
||||
|
||||
void func_ov017_020bb994(void *param1);
|
||||
|
||||
@@ -109,7 +109,10 @@ public:
|
||||
|
||||
class UnkStruct_027e0cd8_04_0C {
|
||||
public:
|
||||
/* 00 */ STRUCT_PAD(0x00, 0x50);
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
/* 04 */ unk32 mUnk_04;
|
||||
/* 08 */ s16 mUnk_08;
|
||||
/* 0C */ STRUCT_PAD(0x0C, 0x50);
|
||||
/* 50 */
|
||||
|
||||
UnkStruct_027e0cd8_04_0C();
|
||||
@@ -144,7 +147,7 @@ public:
|
||||
void func_ov000_02081ecc(unk16 param1, unk32 param2);
|
||||
void func_ov000_02081eec(unk16 param1, unk32 param2, unk32 param3);
|
||||
bool func_ov000_02081f3c(unk16 param1, unk32 param2);
|
||||
unk32 func_ov000_02081d5c();
|
||||
u32 func_ov000_02081d5c(); // returns current room index?
|
||||
bool func_ov000_02082124();
|
||||
bool func_ov000_02081c28();
|
||||
};
|
||||
|
||||
@@ -26,14 +26,20 @@ class UnkStruct_ov000_02067bc4 {
|
||||
public:
|
||||
class UnkStruct1 {
|
||||
public:
|
||||
unk16 mUnk_00;
|
||||
unk16 mUnk_02;
|
||||
unk32 mUnk_04;
|
||||
unk32 mUnk_08;
|
||||
unk8 mUnk_0C;
|
||||
unk8 mUnk_0D;
|
||||
unk8 mUnk_0E;
|
||||
unk8 mUnk_0F;
|
||||
union {
|
||||
struct {
|
||||
unk16 mUnk_00;
|
||||
unk16 mUnk_02;
|
||||
unk32 mUnk_04;
|
||||
unk32 mUnk_08;
|
||||
u8 mUnk_0C;
|
||||
unk8 mUnk_0D;
|
||||
unk8 mUnk_0E;
|
||||
unk8 mUnk_0F;
|
||||
};
|
||||
|
||||
u32 data[4];
|
||||
};
|
||||
|
||||
UnkStruct1(unk32 param1, unk32 param2) {
|
||||
mUnk_00 = 0;
|
||||
@@ -64,12 +70,14 @@ public:
|
||||
/* 000 (vtable) */
|
||||
/* 004 */ unk32 mUnk_004;
|
||||
/* 008 */ UnkStruct_ov000_02067bc4_Sub2 *mUnk_008;
|
||||
/* 00C */ STRUCT_PAD(0x0C, 0x160);
|
||||
/* 00C */ STRUCT_PAD(0x0C, 0x28);
|
||||
/* 028 */ UnkStruct1 mUnk_028;
|
||||
/* 038 */ STRUCT_PAD(0x38, 0x160);
|
||||
/* 160 */ UnkStruct_ov000_02067bc4_Sub1 mUnk_160;
|
||||
|
||||
/* 00 */ virtual unk32 vfunc_00();
|
||||
/* 04 */ virtual unk32 vfunc_04();
|
||||
/* 08 */ virtual unk32 vfunc_08();
|
||||
/* 08 */ virtual bool vfunc_08();
|
||||
|
||||
void func_02021bec(unk16 param1);
|
||||
void func_02021c08();
|
||||
@@ -99,6 +107,7 @@ public:
|
||||
|
||||
UnkStruct_ov000_020b504c_Sub3(unk32 param1);
|
||||
void func_ov000_020676f8(const char *bmgFileName, unk32 param2);
|
||||
EntryINF1 *func_ov000_02067a2c(u32 msgId);
|
||||
};
|
||||
|
||||
class UnkStruct_ov000_020b504c_Sub4_00 {
|
||||
@@ -145,7 +154,7 @@ public:
|
||||
void func_ov000_02067e60(u8 param1, unk32 param2);
|
||||
unk32 func_ov000_020682c0(unk32 param1);
|
||||
void func_ov000_02067f5c(unk32 param1);
|
||||
unk32 func_ov000_02067f88(unk32 param1, unk32 param2);
|
||||
bool func_ov000_02067f88(unk32 param1, unk32 param2);
|
||||
UnkStruct_ov000_020b504c_Sub4_00 *func_ov000_02067bf0();
|
||||
void func_ov000_02067b20();
|
||||
void func_ov000_02068068(unk32 param1);
|
||||
@@ -165,3 +174,9 @@ public:
|
||||
|
||||
// gMessageManager?
|
||||
extern UnkStruct_ov000_020b504c data_ov000_020b504c;
|
||||
|
||||
struct UnkMsgDataStruct1 {
|
||||
unk32 mUnk_00;
|
||||
|
||||
void func_ov000_02067a60(void *, int);
|
||||
};
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
#include "types.h"
|
||||
#include <nns/font.h>
|
||||
|
||||
enum {
|
||||
enum FontIndex_ {
|
||||
FontIndex_DSZ2_msg = 0,
|
||||
FontIndex_LC_Font_s = 1, // unused?
|
||||
FontIndex_DSZ2_endL = 2,
|
||||
@@ -16,9 +16,9 @@ enum {
|
||||
};
|
||||
|
||||
// FontEntry?
|
||||
class UnkStruct_ov000_020b4f84_00 : public UnkFileSystem5 {
|
||||
class UnkStruct_ov000_020b4f84_00 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 00 */ UnkFileSystem5 mUnk_00;
|
||||
/* 14 */ Font_UnkStruct1 mUnk_14;
|
||||
/* 1C */ unk16 mUnk_1C;
|
||||
/* 1E */ unk16 mUnk_1E;
|
||||
|
||||
@@ -9,43 +9,69 @@
|
||||
|
||||
#include <nitro/button.h>
|
||||
|
||||
// Title Card Scene Message Index (see sBMGSceneMap)
|
||||
typedef s32 TC_SceneMsgIdx;
|
||||
enum TC_SceneMsgIdx_ {
|
||||
/* -1 */ TC_SceneMsgIdx_None = -1,
|
||||
/* 0 */ TC_SceneMsgIdx_ForestLand,
|
||||
/* 1 */ TC_SceneMsgIdx_SnowLand,
|
||||
/* 2 */ TC_SceneMsgIdx_OceanLand,
|
||||
/* 3 */ TC_SceneMsgIdx_FireLand,
|
||||
/* 4 */ TC_SceneMsgIdx_TowerOfSpirits,
|
||||
/* 5 */ TC_SceneMsgIdx_TunnelToTheTower,
|
||||
/* 6 */ TC_SceneMsgIdx_WoodedTemple,
|
||||
/* 7 */ TC_SceneMsgIdx_BlizzardTemple,
|
||||
/* 8 */ TC_SceneMsgIdx_MarineTemple,
|
||||
/* 9 */ TC_SceneMsgIdx_MountainTemple,
|
||||
/* 10 */ TC_SceneMsgIdx_DesertTemple,
|
||||
/* 11 */ TC_SceneMsgIdx_PirateHideout,
|
||||
/* 12 */ TC_SceneMsgIdx_HyruleCastle,
|
||||
/* 13 */ TC_SceneMsgIdx_CastleTown,
|
||||
/* 14 */ TC_SceneMsgIdx_Mayscore,
|
||||
/* 15 */ TC_SceneMsgIdx_AnoukiVillage,
|
||||
/* 16 */ TC_SceneMsgIdx_PapuziaVillage,
|
||||
/* 17 */ TC_SceneMsgIdx_GoronVillage,
|
||||
/* 18 */ TC_SceneMsgIdx_TradingPost,
|
||||
/* 19 */ TC_SceneMsgIdx_IcySpring,
|
||||
/* 20 */ TC_SceneMsgIdx_OutsetVillage,
|
||||
/* 21 */ TC_SceneMsgIdx_WoodlandSanctuary,
|
||||
/* 22 */ TC_SceneMsgIdx_SnowfallSanctuary,
|
||||
/* 23 */ TC_SceneMsgIdx_IslandSanctuary,
|
||||
/* 24 */ TC_SceneMsgIdx_ValleySanctuary,
|
||||
/* 25 */ TC_SceneMsgIdx_DuneSanctuary,
|
||||
/* 26 */ TC_SceneMsgIdx_BridgeWorkersHouse,
|
||||
/* 27 */ TC_SceneMsgIdx_BossStagnox,
|
||||
/* 28 */ TC_SceneMsgIdx_BossFraaz,
|
||||
/* 29 */ TC_SceneMsgIdx_BossCactops,
|
||||
/* 30 */ TC_SceneMsgIdx_BossVulcano,
|
||||
/* 31 */ TC_SceneMsgIdx_BossCapbone,
|
||||
/* 32 */ TC_SceneMsgIdx_BossGhostTrain,
|
||||
/* 33 */ TC_SceneMsgIdx_BossStaven,
|
||||
/* 34 */ TC_SceneMsgIdx_BossMalladus1,
|
||||
/* 35 */ TC_SceneMsgIdx_BossMalladus2,
|
||||
/* 36 */ TC_SceneMsgIdx_GoronTargetRange,
|
||||
/* 37 */ TC_SceneMsgIdx_SnowdriftStation,
|
||||
/* 38 */ TC_SceneMsgIdx_LostAtSeaStation,
|
||||
/* 39 */ TC_SceneMsgIdx_DisorientationStation,
|
||||
/* 40 */ TC_SceneMsgIdx_EndsOfTheEarthStation,
|
||||
/* 41 */ TC_SceneMsgIdx_DarkOreMine,
|
||||
/* 42 */ TC_SceneMsgIdx_RabbitHaven,
|
||||
/* 43 */ TC_SceneMsgIdx_SlipperyStation,
|
||||
};
|
||||
|
||||
class UnkTitleCardSystem1 {
|
||||
public:
|
||||
/* 000 (vtable) */
|
||||
/* 004 */ unk16 mUnk_004;
|
||||
/* 006 */ unk16 mUnk_006; // pad?
|
||||
/* 008 */ unk32 mUnk_008;
|
||||
/* 00C */ unk32 mUnk_00C;
|
||||
/* 008 */ UnkSystem2_UnkSubSystem11_Derived2 *mUnk_008;
|
||||
/* 00C */ UnkSystem2_UnkSubSystem5_Base_10 *mUnk_00C;
|
||||
/* 010 */ unk32 mUnk_010;
|
||||
/* 014 */ GameModeManagerBase_004 *mUnk_014;
|
||||
/* 018 */ unk32 mUnk_018;
|
||||
/* 01C */ unk32 mUnk_01C;
|
||||
/* 020 */ unk16 mUnk_020;
|
||||
/* 022 */ unk16 mUnk_022;
|
||||
/* 024 */ unk16 mUnk_024;
|
||||
/* 026 */ unk16 mUnk_026;
|
||||
/* 028 */ unk32 mUnk_028;
|
||||
/* 02C */ unk32 mUnk_02C;
|
||||
/* 030 */ unk16 mUnk_030;
|
||||
/* 034 */ unk16 mUnk_034;
|
||||
/* 036 */ unk16 mUnk_036;
|
||||
/* 038 */ unk16 mUnk_038;
|
||||
/* 03A */ unk16 mUnk_03A;
|
||||
/* 03C */ unk16 mUnk_03C;
|
||||
/* 03E */ unk16 mUnk_03E;
|
||||
/* 040 */ unk32 mUnk_040;
|
||||
/* 044 */ unk32 mUnk_044;
|
||||
/* 048 */ unk16 mUnk_048;
|
||||
/* 04A */ unk16 mUnk_04A;
|
||||
/* 04C */ unk16 mUnk_04C;
|
||||
/* 04E */ unk16 mUnk_04E;
|
||||
/* 050 */ unk16 mUnk_050;
|
||||
/* 052 */ unk16 mUnk_052;
|
||||
/* 054 */ unk16 mUnk_054;
|
||||
/* 056 */ unk16 mUnk_056;
|
||||
/* 058 */ unk32 mUnk_058;
|
||||
/* 05C */ unk32 mUnk_05C;
|
||||
/* 060 */ unk32 mUnk_060;
|
||||
/* 018 */ UnkStruct_ov019_020d24c8_28_258 mUnk_018;
|
||||
/* 030 */ UnkStruct_ov019_020d24c8_28_258 mUnk_030;
|
||||
/* 048 */ UnkStruct_ov019_020d24c8_28_258 mUnk_048;
|
||||
/* 060 */ Vec2s mUnk_060;
|
||||
/* 064 */ UnkSystem2_UnkSubSystem9 mUnk_064;
|
||||
/* 0A8 */ UnkSystem2_UnkSubSystem9 mUnk_0A8;
|
||||
/* 0EC */ UnkSystem2_UnkSubSystem9 mUnk_0EC;
|
||||
@@ -60,21 +86,29 @@ public:
|
||||
|
||||
// data_ov024_020d7fd0
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
/* 04 */ virtual void vfunc_04();
|
||||
/* 08 */ virtual void vfunc_08();
|
||||
/* 04 */ virtual void vfunc_04(unk8 *param1);
|
||||
/* 08 */ virtual unk32 vfunc_08();
|
||||
/* 0C */ virtual void vfunc_0C();
|
||||
/* 10 */ virtual void vfunc_10();
|
||||
/* 14 */ virtual void vfunc_14();
|
||||
/* 18 */ virtual void vfunc_18();
|
||||
/* 14 */ virtual bool vfunc_14();
|
||||
/* 18 */ virtual unk32 vfunc_18();
|
||||
/* 1C */
|
||||
|
||||
void func_ov024_020cb274(UnkSystem2_UnkSubSystem11_Derived2 *param1, UnkSystem2_UnkSubSystem5_Base_10 *param2);
|
||||
void func_ov024_020cb280();
|
||||
void func_ov024_020cb284(unk32 param1, unk32 param2);
|
||||
void func_ov024_020cb490(UnkDataStruct2 *param1, unk32 *param2);
|
||||
void func_ov024_020cb490(UnkDataStruct2 *param1, unk32 *param2, void *);
|
||||
void func_ov024_020cb5bc();
|
||||
void func_ov024_020cb654(unk8 *param1, UnkDataStruct1 *param2);
|
||||
};
|
||||
|
||||
class UnkTitleCardSystem1_Derived1 : public UnkTitleCardSystem1 {
|
||||
public:
|
||||
/* 000 (base) */
|
||||
/* 138 */ unk32 mUnk_138;
|
||||
/* 13C */ unk16 mUnk_13C;
|
||||
/* 13E */ unk16 mUnk_13E;
|
||||
/* 13C */ u16 mUnk_13C;
|
||||
/* 13E */ u16 mUnk_13E;
|
||||
/* 140 */ bool mUnk_140;
|
||||
/* 141 */ unk8 mUnk_141; // pad?
|
||||
/* 142 */ unk8 mUnk_142; // pad?
|
||||
@@ -84,12 +118,20 @@ public:
|
||||
UnkTitleCardSystem1_Derived1(GameModeManagerBase_004 *param1);
|
||||
|
||||
// data_ov024_020d8044
|
||||
/* 08 */ virtual void vfunc_08() override;
|
||||
/* 08 */ virtual unk32 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();
|
||||
/* 18 */ virtual unk32 vfunc_18() override;
|
||||
/* 1C */ virtual void vfunc_1C(u32 msgId, unk32 param2, bool param3);
|
||||
/* 20 */
|
||||
|
||||
void func_ov024_020cbe94(unk32 param1);
|
||||
void func_ov024_020cbeb8();
|
||||
void func_ov024_020cbf74(unk32 param1);
|
||||
void func_ov024_020cbf98();
|
||||
void func_ov024_020cc05c(u32 msgId);
|
||||
void func_ov024_020cc088(bool param1);
|
||||
bool func_ov024_020cc0b4();
|
||||
};
|
||||
|
||||
class UnkStruct_ov024_020d8694_01C : public UnkTitleCardSystem1_Derived1 {
|
||||
@@ -106,7 +148,7 @@ public:
|
||||
|
||||
// data_ov024_020d7ff4
|
||||
/* 00 */ virtual void vfunc_00() override;
|
||||
/* 1C */ virtual void vfunc_1C() override;
|
||||
/* 1C */ virtual void vfunc_1C(u32 msgId, unk32 param2, bool param3) override;
|
||||
};
|
||||
|
||||
class UnkStruct_ov024_020d8694_188 : public UnkTitleCardSystem1_Derived1 {
|
||||
@@ -119,9 +161,9 @@ public:
|
||||
|
||||
// data_ov024_020d801c
|
||||
/* 00 */ virtual void vfunc_00() override;
|
||||
/* 04 */ virtual void vfunc_04() override;
|
||||
/* 14 */ virtual void vfunc_14() override;
|
||||
/* 1C */ virtual void vfunc_1C() override;
|
||||
/* 04 */ virtual void vfunc_04(unk8 *param1) override;
|
||||
/* 14 */ virtual bool vfunc_14() override;
|
||||
/* 1C */ virtual void vfunc_1C(u32 msgId, unk32 param2, bool param3) override;
|
||||
};
|
||||
|
||||
class UnkStruct_ov024_020d8694_2FC : public UnkTitleCardSystem1 {
|
||||
@@ -133,17 +175,22 @@ public:
|
||||
|
||||
// data_ov024_020d7fac
|
||||
/* 00 */ virtual void vfunc_00() override;
|
||||
/* 08 */ virtual void vfunc_08() override;
|
||||
/* 08 */ virtual unk32 vfunc_08() override;
|
||||
/* 0C */ virtual void vfunc_0C() override;
|
||||
/* 10 */ virtual void vfunc_10() override;
|
||||
|
||||
void func_ov024_020ccb10(unk32 param1, Vec2s *param2, Vec2s *param3);
|
||||
};
|
||||
|
||||
class UnkStruct_ov024_020d8694 : public AutoInstance<UnkStruct_ov024_020d8694>, public GameModeManagerBase_104 {
|
||||
class UnkStruct_ov024_020d8694 : public GameModeManagerBase_104, public AutoInstance<UnkStruct_ov024_020d8694> {
|
||||
public:
|
||||
/* 000 (vtable) */
|
||||
/* 01C */ UnkStruct_ov024_020d8694_01C mUnk_01C;
|
||||
/* 188 */ UnkStruct_ov024_020d8694_188 mUnk_188;
|
||||
/* 2FC */ UnkStruct_ov024_020d8694_2FC mUnk_2FC;
|
||||
/* 434 */ UnkSystem2_UnkSubSystem11_Derived2 *mUnk_434;
|
||||
/* 438 */ UnkSystem2_UnkSubSystem5_Base_10 *mUnk_438;
|
||||
/* 43C */ GameModeManagerBase_004 *mUnk_43C;
|
||||
/* 440 */
|
||||
|
||||
UnkStruct_ov024_020d8694(GameModeManagerBase_004 *param1);
|
||||
@@ -153,16 +200,16 @@ public:
|
||||
/* 08 */ virtual void vfunc_08(Input *pButtons, TouchControl *pTouchControl);
|
||||
/* 10 */ virtual void vfunc_10(unk8 *param1);
|
||||
|
||||
void func_ov024_020cafb8();
|
||||
void func_ov024_020cafd8();
|
||||
void func_ov024_020cb000();
|
||||
void func_ov024_020cb020();
|
||||
void func_ov024_020cafb8(unk32 param1);
|
||||
void func_ov024_020cafd8(unk32 param1);
|
||||
void func_ov024_020cb000(unk32 param1);
|
||||
void func_ov024_020cb020(unk32 param1);
|
||||
void func_ov024_020cb040();
|
||||
void func_ov024_020cb054();
|
||||
void func_ov024_020cb0ac();
|
||||
void func_ov024_020cb054(unk32 param1, Vec2s *param2, Vec2s *param3);
|
||||
u32 GetMessageID(int index);
|
||||
void func_ov024_020cb0c4();
|
||||
void func_ov024_020cb178();
|
||||
void func_ov024_020cb194();
|
||||
void func_ov024_020cb178(unk32 param1);
|
||||
void func_ov024_020cb194(unk16 param1);
|
||||
|
||||
static UnkStruct_ov024_020d8694 *Create(GameModeManagerBase_004 *param1);
|
||||
};
|
||||
|
||||
+52
-31
@@ -3,50 +3,57 @@
|
||||
#include "System/SysNew.hpp"
|
||||
#include "types.h"
|
||||
|
||||
// link list?
|
||||
struct stack_struct1 {
|
||||
void *param1;
|
||||
int param2;
|
||||
|
||||
union {
|
||||
void *param2;
|
||||
unk32 arg2;
|
||||
};
|
||||
};
|
||||
|
||||
template <typename T, int arrayLength> class Iterator {
|
||||
template <typename T> class Iterator {
|
||||
public:
|
||||
class ListData : public SysObject {
|
||||
public:
|
||||
u8 data[sizeof(T) * arrayLength];
|
||||
};
|
||||
/* 00 */ void *begin;
|
||||
/* 04 */ void *end;
|
||||
/* 08 */
|
||||
|
||||
ListData *begin;
|
||||
ListData *end;
|
||||
|
||||
Iterator() {}
|
||||
Iterator() {
|
||||
this->Clear();
|
||||
}
|
||||
|
||||
~Iterator() {
|
||||
this->Destroy();
|
||||
}
|
||||
|
||||
void Init(stack_struct1 *param1) {
|
||||
if (this->begin != this->end) {
|
||||
T *it = (T *) this->end;
|
||||
|
||||
do {
|
||||
(--it)->~T();
|
||||
} while (it != (T *) this->begin);
|
||||
|
||||
delete this->begin;
|
||||
}
|
||||
|
||||
ListData *ptr = new(HeapIndex_1) ListData();
|
||||
this->begin = ptr;
|
||||
this->end = ptr + (arrayLength - 1);
|
||||
// allocate the list and run the constructors for each element
|
||||
void Init(size_t arrayLength) {
|
||||
this->Destroy();
|
||||
this->Set(arrayLength * 4);
|
||||
|
||||
if (this->begin != this->end) {
|
||||
T *it = (T *) this->begin;
|
||||
stack_struct1 *p;
|
||||
|
||||
do {
|
||||
if (it != NULL) {
|
||||
it->Init(*p);
|
||||
}
|
||||
new(it) T(); // using placement new to run the ctor
|
||||
|
||||
it++;
|
||||
} while (it != (T *) this->end);
|
||||
}
|
||||
}
|
||||
|
||||
// same as the other `Init` except this takes a node list
|
||||
void Init(size_t arrayLength, void *params) {
|
||||
this->Destroy();
|
||||
this->Set(arrayLength);
|
||||
|
||||
if (this->begin != this->end) {
|
||||
T *it = (T *) this->begin;
|
||||
stack_struct1 *p = (stack_struct1 *) params;
|
||||
|
||||
do {
|
||||
new(it) T(*p);
|
||||
|
||||
it++;
|
||||
p++;
|
||||
@@ -54,6 +61,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
// iterate the array and run the destructors for each element
|
||||
void Destroy() {
|
||||
if (this->begin != this->end) {
|
||||
T *it = (T *) this->end;
|
||||
@@ -66,13 +74,26 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void Reset() {
|
||||
this->Destroy();
|
||||
// allocate and set pointers
|
||||
void Set(size_t arrayLength) {
|
||||
void *ptr = ::operator new(arrayLength, HeapIndex_1, 4);
|
||||
this->begin = ptr;
|
||||
this->end = (void *) ((u8 *) ptr + arrayLength);
|
||||
}
|
||||
|
||||
// clear pointers
|
||||
void Clear() {
|
||||
this->begin = NULL;
|
||||
this->end = NULL;
|
||||
}
|
||||
|
||||
T &GetRef(int index) {
|
||||
// destroy and clear
|
||||
void Reset() {
|
||||
this->Destroy();
|
||||
this->Clear();
|
||||
}
|
||||
|
||||
T &Get(int index) {
|
||||
return ((T *) this->begin)[index];
|
||||
}
|
||||
};
|
||||
|
||||
@@ -67,6 +67,35 @@ static inline void Vec2s_Sub(const Vec2s *a, const Vec2s *b, Vec2s *dst) {
|
||||
dst->y = y;
|
||||
}
|
||||
|
||||
//! TODO: Vec2s_OffsetAdd and Vec2s_OffsetAdd2 are probably fake?
|
||||
static inline void Vec2s_OffsetAdd(Vec2s *a, Vec2s *b, Vec2s *c, Vec2s *dst) {
|
||||
s16 y;
|
||||
s16 x;
|
||||
|
||||
y = a->y + b->y;
|
||||
x = a->x + b->x;
|
||||
|
||||
x += c->x;
|
||||
y += c->y;
|
||||
|
||||
dst->x = x;
|
||||
dst->y = y;
|
||||
}
|
||||
|
||||
static inline void Vec2s_OffsetAdd2(Vec2s *a, Vec2s *b, Vec2s *c, Vec2s *dst) {
|
||||
s16 y;
|
||||
s16 x;
|
||||
|
||||
y = a->y + b->y;
|
||||
x = a->x + b->x;
|
||||
|
||||
y += c->y;
|
||||
x += c->x;
|
||||
|
||||
dst->x = x;
|
||||
dst->y = y;
|
||||
}
|
||||
|
||||
static inline void Vec2s_Copy(const Vec2s *a, Vec2s *dst) {
|
||||
#if __MWERKS__
|
||||
dst->coords = a->coords;
|
||||
@@ -261,3 +290,19 @@ static inline void Vec2pCpp_Copy(const Vec2pCpp *a, Vec2pCpp *dst) {
|
||||
dst->y = a->y;
|
||||
#endif
|
||||
}
|
||||
|
||||
//! TODO: remove
|
||||
extern "C" static inline Vec2s *Vec2s_New(s16 x, s16 y) {
|
||||
Vec2s vec;
|
||||
vec.x = x;
|
||||
vec.y = y;
|
||||
return &vec;
|
||||
}
|
||||
|
||||
//! TODO: remove
|
||||
extern "C" static inline Vec2s *Vec2s_GetCopy(Vec2s *src) {
|
||||
Vec2s vec;
|
||||
vec.x = src->x;
|
||||
vec.y = src->y;
|
||||
return &vec;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user