Misc Stuff 6 (#78)

* gcc fixes

* document random things in UnkStruct_027e09b8_00

* match func_ov001_020ba670 and rabbit docs

* match func_ov026_0211f394

* fix build issues

* match func_ov026_0211e3e0

* match func_ov026_02102924

* move structs to header

* document train rope thing

* MapObject OK and ActorRef stuff

* match more actor funcs

* fix regressions

* fix build issues

* more regressions fixes

* name keyt grab func

* UnkSubStruct19 -> CellAnimObject (based on the only assert string)

* fix build issues due to merge

* Actor::mUnk_4C -> Actor::mState + related changes

* create GetActorPtr template inline for Actor_c4

* ActorUnk_ov000_020a8bb0 -> Actor_Derived1

* actor: add comments about mUnk_50/52 and change type of mAngle
This commit is contained in:
Yanis
2026-06-17 22:20:45 +02:00
committed by GitHub
parent dfc8f2748c
commit 453db24d41
89 changed files with 1318 additions and 925 deletions
+32 -10
View File
@@ -101,6 +101,12 @@ enum ActorFlag_ {
class Actor_c4;
struct ActorGrabParams {
/* 00 */ u16 unk_00;
/* 02 */ u16 unk_02;
/* 04 */
};
class Actor_9c {
public:
/* 00 (vtable) */
@@ -115,6 +121,7 @@ public:
};
typedef s16 ActorState;
#define ActorState_None -1
class Actor : public SysObject {
public:
@@ -122,7 +129,7 @@ public:
/* 04 */ VecFx32 mPos;
/* 10 */ VecFx32 mPrevPos;
/* 1C */ VecFx32 mVel;
/* 28 */ s16 mAngle;
/* 28 */ fx16 mAngle;
/* 2A */ unk16 mUnk_2A;
/* 2C */ unk32 mUnk_2C; // gravity?
/* 30 */ Cylinder *mUnk_30;
@@ -133,12 +140,11 @@ public:
/* 44 */ u16 mUnk_44;
/* 46 */ unk16 mUnk_46;
/* 48 */ unk16 mUnk_48;
/* 4A */ unk8 mUnk_4A;
/* 4A */ unk8 mUnk_4B;
/* 4C */ ActorState mUnk_4C;
/* 4E */ s16 mUnk_4E;
/* 50 */ volatile u16 mUnk_50;
/* 52 */ u16 mUnk_52;
/* 4A */ u8 mUnk_4A[2];
/* 4C */ ActorState mState;
/* 4E */ fx16 mYOffset;
/* 50 */ volatile u16 mUnk_50; // timer some actors are using
/* 52 */ u16 mUnk_52; // maximum value for above timer
/* 54 */ unk32 mUnk_54;
/* 58 */ ActorFlags mFlags[1];
/* 5C */ ActorParams mUnk_5C;
@@ -146,7 +152,7 @@ public:
/* 90 */ ActorProfile *mpProfile;
/* 94 */
/* 00 */ virtual void vfunc_00(VecFx32 *param1);
/* 00 */ virtual void GetOffsetPos(VecFx32 *pPos) const;
/* 04 */ virtual bool vfunc_04();
/* 08 */ virtual unk16 vfunc_08();
/* 0C */ virtual unk8 vfunc_0c();
@@ -160,8 +166,8 @@ public:
/* 2C */ virtual void vfunc_2c(unk32 param1);
/* 30 */ virtual void vfunc_30();
/* 34 */ virtual unk32 vfunc_34();
/* 38 */ virtual unk32 vfunc_38(unk32 param1);
/* 3C */ virtual bool vfunc_3c(unk32 param2, VecFx32 *param3);
/* 38 */ virtual bool Grab(ActorGrabParams grabParams);
/* 3C */ virtual bool Drop(ActorGrabParams grabParams, const VecFx32 *pVel);
/* 40 */ virtual void vfunc_40();
/* 44 */ virtual void vfunc_44();
/* 48 */ virtual void vfunc_48();
@@ -178,6 +184,10 @@ public:
UNSET_FLAG(this->mFlags, ActorFlag_Alive);
}
bool IsAlive() {
return GET_FLAG(this->mFlags, ActorFlag_Alive);
}
Actor();
ActorId GetActorId();
@@ -252,6 +262,10 @@ public:
/* 0C */ virtual void vfunc_0c(unk32 param1);
/* 10 */
template <typename T> T *GetActorPtr() {
return (T *) this->mUnk_20;
}
Actor_c4(Actor *param1) :
Actor_c4_Base(&param1->mRef, 0) {}
};
@@ -275,3 +289,11 @@ public:
};
extern UnkStruct_ov000_020b539c data_ov000_020b539c_eur;
struct UnkActorDataStruct1 {
/* 00 */ unk32 unk_00[4];
/* 10 */ unk32 unk_10;
/* 14 */ unk32 unk_14;
/* 18 */
};
extern "C" void func_ov000_02099ddc(void *thisx, UnkActorDataStruct1 param1, unk32 param2, unk32 param3);
+1 -1
View File
@@ -9,7 +9,7 @@
class ActorEventIcon : public Actor {
public:
/* 000 (base) */
/* 094 */ UnkSubStruct19 mUnk_094; // event icon
/* 094 */ CellAnimObject mUnk_094; // event icon
/* 10C */ unk16 mUnk_10C;
/* 110 */ unk16 mUnk_10E; // pad?
+13 -2
View File
@@ -5,6 +5,16 @@
#include "ActorRupee.hpp"
#include "types.h"
enum ActorHeartState_ {
ActorHeartState_0 = 0,
ActorHeartState_1 = 1,
ActorHeartState_2 = 2,
ActorHeartState_3 = 3,
ActorHeartState_4 = 4,
ActorHeartState_5 = 5,
ActorHeartState_Max,
};
class ActorHeart_c4 : public Actor_c4 {
public:
ActorHeart_c4(Actor *param1);
@@ -45,14 +55,15 @@ public:
/* 4C */ virtual ~ActorHeart() override {};
void func_ov031_020f0750();
static void func_ov031_020eed64(ActorRef *pOutRef, const VecFx32 *pPos, u32 params, ActorRef ref);
void func_ov031_020ef1b4(unk16 param_2);
void SetState(ActorState state);
void func_ov031_020ef208();
void func_ov031_020ef4a8();
void func_ov031_020ef528();
void func_ov031_020ef570();
void func_ov031_020ef698();
static void func_ov031_020eed64(ActorRef *pOutRef, const VecFx32 *pPos, u32 params, ActorRef ref);
// data_ov031_02113d74
void func_ov031_020ef2f8();
void func_ov031_020ef334();
+31 -27
View File
@@ -20,21 +20,21 @@ enum ItemDropType_ {
ItemDropType_Max = 10,
};
enum ActorDroppedItemState_ {
ActorDroppedItemState_0 = 0,
ActorDroppedItemState_1 = 1,
ActorDroppedItemState_2 = 2,
ActorDroppedItemState_3 = 3,
ActorDroppedItemState_4 = 4,
ActorDroppedItemState_5 = 5,
ActorDroppedItemState_6 = 6,
ActorDroppedItemState_Max,
enum ActorItemDropState_ {
ActorItemDropState_0 = 0,
ActorItemDropState_1 = 1,
ActorItemDropState_2 = 2,
ActorItemDropState_3 = 3,
ActorItemDropState_4 = 4,
ActorItemDropState_5 = 5,
ActorItemDropState_6 = 6,
ActorItemDropState_Max,
};
class ActorDroppedItem_c4 : public Actor_c4 {
class ActorItemDrop_c4 : public Actor_c4 {
public:
// func_ov031_020fa9f8
ActorDroppedItem_c4(Actor *param1);
ActorItemDrop_c4(Actor *param1);
virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
virtual void vfunc_04() override;
@@ -58,7 +58,7 @@ public:
/* 0D8 */ fx32 mUnk_D8;
/* 0DC */ ActorRef mUnk_DC;
/* 0E0 */ ActorRef mUnk_E0;
/* 0E4 */ ActorDroppedItem_c4 mUnk_E4;
/* 0E4 */ ActorItemDrop_c4 mUnk_E4;
/* 108 */ unk16 mUnk_108;
/* 10A */ STRUCT_PAD(0x10A, 0x10C);
/* 10C */ VecFx32 mUnk_10C;
@@ -83,24 +83,28 @@ public:
/* 4C */ virtual ~ActorItemDrop() override;
void func_ov031_020fa260();
void func_ov031_020fa424(ActorState state);
void func_ov031_020fa468();
void func_ov031_020fa46c();
void func_ov031_020fa494();
void func_ov031_020fa4a0();
void func_ov031_020fa524();
void func_ov031_020fa568();
void func_ov031_020fa5d8();
void func_ov031_020fa5f0();
void func_ov031_020fa650();
void func_ov031_020fa664();
void func_ov031_020fa668();
void func_ov031_020fa678();
void func_ov031_020fa6c8();
void func_ov031_020fa72c();
void SetState(ActorState state);
void func_ov031_020fa900();
static void func_ov031_020f9f8c(ActorRef *pOutRef, const VecFx32 *pPos, u32 params, ActorRef ref);
// data_ov031_02114bb0
void func_ov031_020fa46c();
void func_ov031_020fa4a0();
void func_ov031_020fa568();
void func_ov031_020fa5f0();
void func_ov031_020fa664();
void func_ov031_020fa678();
void func_ov031_020fa72c();
// data_ov031_02114be8
void func_ov031_020fa468();
void func_ov031_020fa494();
void func_ov031_020fa524();
void func_ov031_020fa5d8();
void func_ov031_020fa650();
void func_ov031_020fa668();
void func_ov031_020fa6c8();
};
class ActorProfileArrowDrop : public ActorProfile {
+3 -2
View File
@@ -1,6 +1,7 @@
#pragma once
#include "Actor/ActorUnk_ov000_020a8bb0.hpp"
#include "Actor/ActorRef.hpp"
#include "Actor/Actor_Derived1.hpp"
#include "System/SysNew.hpp"
#include "Unknown/Common.hpp"
#include "files.h"
@@ -43,8 +44,8 @@ public:
ActorManager();
~ActorManager();
Actor *func_01fff3b4(ActorRef ref);
Actor **func_01fff350(void *param1, Actor **ppActorTable);
Actor *func_01fff3b4(ActorRef ref);
void func_ov000_02096e44(int index);
unk32 func_ov000_0209704c();
+19 -2
View File
@@ -3,7 +3,7 @@
#include "Actor/Actor.hpp"
#include "Actor/ActorManager.hpp"
#include "Actor/ActorProfile.hpp"
#include "Actor/ActorUnk_ov000_020a8bb0.hpp"
#include "Actor/Actor_Derived1.hpp"
#include "Player/PlayerGet.hpp"
#include "types.h"
@@ -19,6 +19,23 @@ enum RupeeId_ {
/* 7 */ RupeeId_7,
};
enum ActorRupeeState_ {
ActorRupeeState_0 = 0,
ActorRupeeState_1 = 1,
ActorRupeeState_2 = 2,
ActorRupeeState_3 = 3,
ActorRupeeState_4 = 4,
ActorRupeeState_5 = 5,
ActorRupeeState_6 = 6,
ActorRupeeState_7 = 7,
ActorRupeeState_8 = 8,
ActorRupeeState_9 = 9,
ActorRupeeState_10 = 10,
ActorRupeeState_11 = 11,
ActorRupeeState_12 = 12,
ActorRupeeState_Max,
};
class ActorRupee_c4 : public Actor_c4 {
public:
ActorRupee_c4(Actor *param1);
@@ -91,7 +108,7 @@ public:
void func_ov031_020e9740();
void func_ov031_020e9838();
void func_ov031_020e98c4();
void func_ov031_020e9904(unk32 param1);
void SetState(ActorState state);
void func_ov031_020e9b88();
void func_ov031_020e9be8();
bool func_ov031_020e9d54();
+1 -1
View File
@@ -24,13 +24,13 @@ public:
ActorUnkKEYT();
/* 38 */ virtual bool Grab(ActorGrabParams grabParams) override;
/* 4C */ virtual ~ActorUnkKEYT() override;
void func_ov041_02123c7c(void);
void func_ov041_02123cf8(void);
void func_ov041_02123d40(void);
void func_ov041_02123d88(void);
void func_ov041_02123eb8(void);
void func_ov041_02123ff8(void);
void func_ov041_02124094(void);
void func_ov041_021240c0(void);
+7 -3
View File
@@ -6,6 +6,12 @@
#include "global.h"
#include "types.h"
enum ActorUnkOBPCState_ {
ActorUnkOBPCState_0 = 0,
ActorUnkOBPCState_1 = 1,
ActorUnkOBPCState_Max,
};
class ActorUnkOBPC : public Actor {
public:
/* 00 (base) */
@@ -19,10 +25,9 @@ public:
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void vfunc_24() override;
/* 4C */ virtual ~ActorUnkOBPC() override;
bool func_ov024_020d6f74(void);
void func_ov024_020d7064(s16 param1, unk32 param2);
void SetState(ActorState state, int param2);
bool func_ov024_020d7154(void);
};
@@ -31,7 +36,6 @@ public:
/* 00 (base) */
ActorProfileUnkOBPC();
~ActorProfileUnkOBPC();
/* 0C */ virtual Actor *Create();
+27 -6
View File
@@ -4,6 +4,7 @@
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "Actor/Actor_Derived1.hpp"
#include "global.h"
#include "types.h"
@@ -17,20 +18,40 @@ public:
/* 0C */ virtual void vfunc_0c(unk32 param1) override;
};
class ActorUnkRB1T : public Actor {
class ActorUnkRB1T : public Actor_Derived1 {
public:
/* 00 (base) */
/* 94 */
/* 000 (base) */
/* 120 */ unk32 mUnk_120;
/* 124 */ STRUCT_PAD(0x124, 0x20C);
/* 20C */ ModelRender mUnk_20C; // actually a derived class of a derived class
/* 26C */ STRUCT_PAD(0x26C, 0x280);
/* 280 */ unk32 mUnk_280;
/* 284 */ STRUCT_PAD(0x284, 0x300);
/* 300 */ unk32 mUnk_300;
/* 304 */ STRUCT_PAD(0x304, 0x36C);
/* 36C */ unk8 mUnk_36C;
/* 36D */ unk8 mUnk_36D;
/* 36E */ unk8 mUnk_36E;
/* 36F */ unk8 mUnk_36F;
/* 370 */ unk8 mUnk_370;
/* 371 */ unk8 mUnk_371;
/* 372 */ unk8 mUnk_372;
/* 373 */ unk8 mUnk_373;
/* 374 */ unk8 mUnk_374;
/* 375 */ unk8 mUnk_375;
/* 376 */ unk8 mUnk_376;
/* 377 */ unk8 mUnk_377;
ActorUnkRB1T();
/* 4C */ virtual ~ActorUnkRB1T() override;
/* 58 */ virtual void vfunc_58(unk32 param1);
void func_ov026_0211e3cc(void);
void func_ov026_0211e3e0(void);
bool func_ov026_0211e3e0(unk32 param1);
void func_ov026_0211e4c8(void);
void func_ov026_0211e554(void);
void func_ov026_0211e6cc(void);
unk32 func_ov026_0211e6cc(void);
void func_ov026_0211e6e4(void);
void func_ov026_0211e6f0(void);
void func_ov026_0211e748(void);
@@ -77,7 +98,7 @@ public:
void func_ov026_02120744(void);
void func_ov026_021207e0(void);
void func_ov026_02120874(void);
void func_ov026_021208a0(void);
static void func_ov026_021208a0(void); //! TODO is this really static? can't make it work as a ptmf
void func_ov026_02120954(void);
void func_ov026_02120974(void);
void func_ov026_021209d8(void);
+9 -3
View File
@@ -2,9 +2,17 @@
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "Actor/ActorRef.hpp"
#include "global.h"
#include "types.h"
enum ActorUnkSWOBState_ {
ActorUnkSWOBState_0 = 0,
ActorUnkSWOBState_1 = 1,
ActorUnkSWOBState_2 = 2,
ActorUnkSWOBState_Max,
};
class ActorUnkSWOB : public Actor {
public:
/* 00 (base) */
@@ -21,10 +29,9 @@ public:
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 4C */ virtual ~ActorUnkSWOB() override;
bool func_ov000_0209a948(void);
void func_ov000_0209a9b4(unk32 param1);
void SetState(ActorState state);
void func_ov000_0209aa30(void);
};
@@ -33,7 +40,6 @@ public:
/* 00 (base) */
ActorProfileUnkSWOB();
~ActorProfileUnkSWOB();
/* 0C */ virtual Actor *Create();
+9 -2
View File
@@ -5,6 +5,14 @@
#include "global.h"
#include "types.h"
enum ActorUnkSWTMState_ {
ActorUnkSWTMState_0 = 0,
ActorUnkSWTMState_1 = 1,
ActorUnkSWTMState_2 = 2,
ActorUnkSWTMState_3 = 3,
ActorUnkSWTMState_Max,
};
class ActorUnkSWTM_B0 {
public:
/* 00 */ unk32 mUnk_00;
@@ -39,7 +47,7 @@ public:
/* 24 */ virtual void vfunc_24() override;
/* 4C */ virtual ~ActorUnkSWTM() override;
void func_ov000_0209af54(unk32 param1);
void SetState(ActorState state);
bool func_ov000_0209afe4(void);
unk32 func_ov000_0209b038(void);
void func_ov000_0209b160(void);
@@ -52,7 +60,6 @@ public:
/* 00 (base) */
ActorProfileUnkSWTM();
~ActorProfileUnkSWTM();
/* 0C */ virtual Actor *Create();
@@ -33,7 +33,7 @@ public:
ActorUnk_vfunc_b0();
};
class ActorUnk_ov000_020a8bb0_94 {
class Actor_Derived1_94 {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
@@ -41,20 +41,20 @@ public:
/* 0A */ unk16 mUnk_0A;
/* 0C */ unk32 mUnk_0C;
ActorUnk_ov000_020a8bb0_94();
~ActorUnk_ov000_020a8bb0_94();
Actor_Derived1_94();
~Actor_Derived1_94();
};
class ActorUnk_ov000_020a8bb0_94_Derived1 : public ActorUnk_ov000_020a8bb0_94 {
class Actor_Derived1_94_Derived1 : public Actor_Derived1_94 {
public:
/* 00 (base) */
ActorUnk_ov000_020a8bb0_94_Derived1(unk32 param1) {
Actor_Derived1_94_Derived1(unk32 param1) {
this->mUnk_0C = param1;
}
};
class ActorUnk_ov000_020a8bb0_a4 {
class Actor_Derived1_a4 {
public:
/* 00 */ ModelRender *mpModelRender;
/* 08 */ unk16 mUnk_04;
@@ -64,16 +64,16 @@ public:
void func_01ffc6d4(u16 param1, VecFx32 *pos);
ActorUnk_ov000_020a8bb0_a4(ModelRender *pModelRender) {
Actor_Derived1_a4(ModelRender *pModelRender) {
this->mpModelRender = pModelRender;
this->mUnk_04 = 0;
this->mUnk_08 = 0;
}
~ActorUnk_ov000_020a8bb0_a4() {}
~Actor_Derived1_a4() {}
};
class ActorUnk_ov000_020a8bb0_EC {
class Actor_Derived1_EC {
public:
/* 00 */ UnkStruct_027e0960_TableEntry *mUnk_00;
/* 04 */ u8 mUnk_04;
@@ -84,8 +84,8 @@ public:
/* 0C */ VecFx32 mUnk_0C;
/* 18 */
ActorUnk_ov000_020a8bb0_EC();
~ActorUnk_ov000_020a8bb0_EC() {}
Actor_Derived1_EC();
~Actor_Derived1_EC() {}
void func_ov024_020d6680(const VecFx32 *param1, u8 *param2);
void func_ov024_020d66c0(const VecFx32 *param1, unk32 param2);
@@ -96,11 +96,11 @@ public:
u16 *func_ov024_020d6d80(VecFx32 *pPos, VecFx32 *pVel);
};
class ActorUnk_ov000_020a8bb0 : public Actor {
class Actor_Derived1 : public Actor {
public:
/* 000 (base) */
/* 094 */ ActorUnk_ov000_020a8bb0_94_Derived1 mUnk_094;
/* 0A4 */ ActorUnk_ov000_020a8bb0_a4 mUnk_0A4;
/* 094 */ Actor_Derived1_94_Derived1 mUnk_094;
/* 0A4 */ Actor_Derived1_a4 mUnk_0A4;
/* 0B0 */ u16 mUnk_0B0;
/* 0B4 */ unk32 mUnk_0B4;
/* 0B8 */ unk32 mUnk_0B8;
@@ -116,10 +116,10 @@ public:
/* 0DC */ unk16 mUnk_0DE;
/* 0E0 */ unk16 mUnk_0E0;
/* 0E0 */ unk16 mUnk_0E2;
/* 0E4 */ unk32 mUnk_0E4;
/* 0E4 */ void *mUnk_0E4; // callback
/* 0E8 */ unk16 mUnk_0E8;
/* 0E8 */ unk16 mUnk_0EA;
/* 0EC */ ActorUnk_ov000_020a8bb0_EC mUnk_0EC;
/* 0EC */ Actor_Derived1_EC mUnk_0EC;
/* 104 */ Cylinder mUnk_104;
/* 114 */ unk32 mUnk_114;
/* 118 */ unk32 mUnk_118;
@@ -131,9 +131,9 @@ public:
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void vfunc_24() override;
/* 2C */ virtual void vfunc_2c(unk32 param1) override;
/* 4C */ virtual ~ActorUnk_ov000_020a8bb0();
/* 4C */ virtual ~Actor_Derived1();
/* 54 */ virtual void vfunc_54(unk32 param1);
/* 54 */ virtual void vfunc_58(unk32 param1) = 0;
/* 58 */ virtual void vfunc_58(unk32 param1) = 0;
/* 5C */ virtual void vfunc_5c();
/* 60 */ virtual void vfunc_60();
/* 64 */ virtual bool vfunc_64();
@@ -149,7 +149,7 @@ public:
/* 8C */ virtual unk32 vfunc_8c();
/* 90 */ virtual unk32 vfunc_90();
/* 94 */ virtual void vfunc_94();
/* 98 */ virtual void vfunc_98();
/* 98 */ virtual void vfunc_98(unk32 param1);
/* 9C */ virtual void vfunc_9c();
/* A0 */ virtual unk32 vfunc_a0();
/* A4 */ virtual void vfunc_a4();
@@ -160,8 +160,10 @@ public:
/* B8 */ virtual void vfunc_b8();
/* BC */
Actor_Derived1(ModelRender *param1, unk32 param2);
// overlay 0
void func_ov000_020a8ae0(fx32 param1);
ActorUnk_ov000_020a8bb0(ModelRender *param1, unk32 param2);
bool func_ov000_020a8db0();
bool func_ov000_020a8dd0();
void func_ov000_020a8df0(ActorRef param1, unk32 param2);
@@ -172,7 +174,6 @@ public:
void func_ov000_020a9248();
void func_ov000_020a94b0();
void func_ov000_020a95d8();
static void func_ov000_020a9804();
void func_ov000_020a9a20();
void func_ov000_020a9a34();
void func_ov000_020a9a50();
@@ -181,5 +182,8 @@ public:
void func_ov000_020a9ae0();
void func_ov000_020a9afc();
static void func_ov000_020a9804();
// overlay 31
void func_ov031_020e3ca4();
};
+47
View File
@@ -0,0 +1,47 @@
#pragma once
#include <math.hpp>
#include <nns/anim.h>
// assumed to be the only original name, from an assert inside `func_ov000_020609c4`
class CellAnimObject {
public:
/* 00 */ CellAnim mCellAnim;
/* 50 */ unk32 mUnk_50;
/* 54 */ unk32 mUnk_54;
/* 58 */ unk32 mUnk_58; // another timer?
/* 5C */ Vec2s mUnk_5C; // position of the animated texture
/* 60 */ unk32 mUnk_60;
/* 64 */ unk32 mUnk_64;
/* 68 */ unk32 mUnk_68;
/* 6C */ unk16 mUnk_6C;
/* 6E */ bool mUnk_6E;
/* 6F */ unk8 mUnk_6F;
/* 70 */ unk32 mUnk_70;
/* 74 */ unk16 mUnk_74;
/* 76 */ unk16 mUnk_76;
/* 78 */
CellAnimObject();
CellAnimObject(unk32 param1, unk32 param2) {
this->mUnk_6E = true;
this->mUnk_70 = 0;
this->mUnk_5C.x = 0;
this->mUnk_5C.y = 0;
this->mUnk_74 = 0;
this->func_ov000_0206082c(param1, 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();
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);
};
+1 -1
View File
@@ -16,7 +16,7 @@ extern "C" void func_ov001_020bd6a8();
class FileSelect_UnkClass7_04 {
public:
/* 000 */ UnkSubStruct19 mUnk_000[30];
/* 000 */ CellAnimObject mUnk_000[30];
/* E10 */ Vec2us mUnk_E10[30];
/* E88 */
};
+2 -2
View File
@@ -124,7 +124,7 @@ public:
// adventure mode animated sword icon
/* 10BC */ UnkSystem2_UnkSubSystem9 mUnk_10BC;
/* 1100 */ UnkSystem2_UnkSubSystem9 mUnk_1100;
/* 1144 */ UnkSubStruct19 mUnk_1144;
/* 1144 */ CellAnimObject mUnk_1144;
// "battle" button
/* 11BC */ UnkSystem2_UnkSubSystem1_Derived2 mUnk_11BC;
@@ -135,7 +135,7 @@ public:
// battle mode animated sword icon
/* 14D4 */ UnkSystem2_UnkSubSystem9 mUnk_14D4;
/* 1518 */ UnkSystem2_UnkSubSystem9 mUnk_1518;
/* 155C */ UnkSubStruct19 mUnk_155C;
/* 155C */ CellAnimObject mUnk_155C;
// "contact mode" button
/* 15D4 */ UnkSystem2_UnkSubSystem1_Derived2 mUnk_15D4;
+10 -10
View File
@@ -18,16 +18,16 @@ public:
/* 064 */ UnkSystem2_UnkSubSystem5 mUnk_064;
/* 29C */ UnkStruct_ov019_020d24c8_28_258 mUnk_29C; // top-left 1 and 2 icons
/* 2B4 */ UnkStruct_ov019_020d24c8_28_258 mUnk_2B4; // static hearts (hearts before beating heart)
/* 2CC */ UnkSubStruct19 mUnk_2CC;
/* 344 */ UnkSubStruct19 mUnk_344;
/* 3BC */ UnkSubStruct19 mUnk_3BC;
/* 434 */ UnkSubStruct19 mUnk_434;
/* 4AC */ UnkSubStruct19 mUnk_4AC;
/* 524 */ UnkSubStruct19 mUnk_524; // forest dungeon icon
/* 59C */ UnkSubStruct19 mUnk_59C; // snow dungeon icon
/* 614 */ UnkSubStruct19 mUnk_614; // ocean dungeon icon
/* 68C */ UnkSubStruct19 mUnk_68C; // fire dungeon icon
/* 704 */ UnkSubStruct19 mUnk_704; // desert dungeon icon
/* 2CC */ CellAnimObject mUnk_2CC;
/* 344 */ CellAnimObject mUnk_344;
/* 3BC */ CellAnimObject mUnk_3BC;
/* 434 */ CellAnimObject mUnk_434;
/* 4AC */ CellAnimObject mUnk_4AC;
/* 524 */ CellAnimObject mUnk_524; // forest dungeon icon
/* 59C */ CellAnimObject mUnk_59C; // snow dungeon icon
/* 614 */ CellAnimObject mUnk_614; // ocean dungeon icon
/* 68C */ CellAnimObject mUnk_68C; // fire dungeon icon
/* 704 */ CellAnimObject mUnk_704; // desert dungeon icon
/* 77C */ Vec2us mUnk_77C;
/* 780 */
+1 -1
View File
@@ -33,7 +33,7 @@ public:
/* 04 */ GameModeCreateCallback createCallback;
/* 08 */ GameUnkCallback1 mUnk_08; // seems related to entering and leaving houses/grottos??
/* 0C */ unk32 mFrameCounter;
/* 10 */ SaveFile *mpSaveFile;
/* 10 */ SaveSlot *mpSaveSlot;
/* 14 */ GameUnkCallback2 mUnk_14; // only set for wireless stuff?
/* 18 */ GameUnkCallback3 mUnk_18; // same as above
/* 1C */ UnkStruct_02049a2c_1C mUnk_1C;
+2 -1
View File
@@ -186,5 +186,6 @@ public:
static void func_ov000_0209d0bc(Vec2b *param1, MapObject *thisx);
static void func_ov000_0209d22c(unk16 *param1, MapObject *thisx, unk32 param2);
static void func_ov000_0209d54c(void *param1, MapObject *thisx, unk32 param2, VecFx32 *param3, unk32 param4, unk32 param5);
static void func_ov000_0209d54c(ActorRef *param1, MapObject *thisx, u16 param2, const VecFx32 *pPos, s16 param3,
u16 param4);
};
+1 -1
View File
@@ -40,7 +40,7 @@ public:
/* 050 */ MapObject_10 mUnk_050;
/* 074 */ MapObjectTreasureSpawned_74 mUnk_074;
/* 0D8 */ ItemId mItemId;
/* 0DC */ UnkSubStruct19 mUnk_0DC;
/* 0DC */ CellAnimObject mUnk_0DC;
/* 154 */
MapObjectChestBase(unk32 param1); // func_ov031_0210307c
+1 -1
View File
@@ -143,7 +143,7 @@ struct FLW1Instr {
InstrBranch branch;
InstrEvent event;
};
/* 09 */
/* 08 */
};
struct SectionFLW1 {
+8 -5
View File
@@ -1,11 +1,14 @@
#pragma once
#include "Actor/Actor.hpp"
#include "LinkList.hpp"
#include "Unknown/Common.hpp"
#include "Unknown/UnkStruct_ov000_0208f820.hpp"
#include "math.hpp"
#include "types.h"
class UnkStruct_027e0ce0_40;
class PlayerActorBase_5C {
public:
/* 00 */ unk32 mUnk_00;
@@ -41,14 +44,14 @@ public:
/* 30 */ u16 mAngle;
/* 32 */ u8 mInvincibilityTimer;
/* 33 */ u8 mInvincibilityIconTimer; // the blinking icon on top-screen
/* 34 */ unk32 mUnk_34;
/* 34 */ ActorRef mGrabActor;
/* 38 */ UnkStruct_PlayerGet_64 mUnk_38;
/* 44 */ unk32 mUnk_44;
/* 48 */ unk32 mUnk_48;
/* 4C */ unk32 mUnk_4C;
/* 50 */ unk32 mUnk_50;
/* 50 */ ActorGrabParams mUnk_50;
/* 54 */ unk32 mUnk_54;
/* 58 */ unk32 mUnk_58;
/* 58 */ UnkStruct_027e0ce0_40 *mUnk_58;
/* 5C */ PlayerActorBase_5C mUnk_5C;
/* 70 */ PlayerActorBase_70 *mUnk_70;
/* 74 */ PlayerActorBase_74 *mUnk_74;
@@ -194,9 +197,9 @@ public:
/* 0B9 */ unk8 mUnk_B9;
/* 0BA */ unk8 mUnk_BA;
/* 0BB */ unk8 mUnk_BB;
/* 0BC */ UnkSubStruct19 mUnk_BC;
/* 0BC */ CellAnimObject mUnk_BC;
/* 134 */ PlayerActor_134 *mUnk_134;
/* 138 */ UnkSubStruct19 mUnk_138; // sanctuary link icon animation
/* 138 */ CellAnimObject mUnk_138; // sanctuary link icon animation
/* 1B0 */ PlayerActor_1B0 mUnk_1B0[3];
/* 1D4 */
+124 -43
View File
@@ -3,6 +3,7 @@
#include "Item/ItemManager.hpp"
#include "MainGame/MiscAdvManager.hpp"
#include "MainGame/PassengerManager.hpp"
#include "flags.h"
#include "math.hpp"
#include "types.h"
@@ -37,10 +38,12 @@ struct SaveFile_00000_0000_Data_D8 {
SaveFile_00000_0000_Data_D8();
};
// related to scene flags?
struct SaveFile_00000_0000_Data_184 {
/* 00 */ unk32 unk_00;
/* 04 */ unk16 unk_04;
/* 06 */ unk16 unk_06;
/* 06 */ u8 keyAmount;
/* 07 */ unk8 unk_07;
/* 08 */
SaveFile_00000_0000_Data_184() :
@@ -126,24 +129,122 @@ struct SaveFile_00000_0000_Data_C84 {
}
};
struct SaveFile_00000_0000_Data_D4C {
/* D24 */ unk32 unk_D4C;
/* D24 */ unk32 unk_D50;
/* D24 */ unk32 unk_D54;
/* D24 */ unk32 unk_D58;
/* D24 */ unk32 unk_D5C;
/* D24 */ unk32 unk_D60;
/* D24 */ unk32 unk_D64;
/* D24 */ unk32 unk_D68;
/* D6C */ unk8 unk_D6C[0x08];
/* D74 */ unk16 unk_D74;
struct SaveFile_00000_0000_Data_D24 {
/* 00 */ unk32 unk_00;
/* 04 */ unk32 unk_04;
/* 08 */ unk32 unk_08;
/* 0C */ unk32 unk_0C;
/* 10 */ unk32 unk_10;
/* 14 */ unk32 unk_14;
/* 18 */ unk32 unk_18;
/* 1C */ unk32 unk_1C;
/* 20 */ unk32 unk_20;
/* 24 */ unk32 unk_24;
/* 28 */
};
SaveFile_00000_0000_Data_D4C() {
MI_CpuFill32(0, this->unk_D6C, sizeof(this->unk_D6C));
this->unk_D74 = 0;
typedef u32 RabbitFlag;
enum RabbitFlag_ {
RabbitFlag_None = -1,
RabbitFlag_Grass_01 = FLAG(0, 0),
RabbitFlag_Grass_02 = FLAG(0, 1),
RabbitFlag_Grass_03 = FLAG(0, 2),
RabbitFlag_Grass_04 = FLAG(0, 3),
RabbitFlag_Grass_05 = FLAG(0, 4),
RabbitFlag_Grass_06 = FLAG(0, 5),
RabbitFlag_Grass_07 = FLAG(0, 6),
RabbitFlag_Grass_08 = FLAG(0, 7),
RabbitFlag_Grass_09 = FLAG(0, 8),
RabbitFlag_Grass_10 = FLAG(0, 9),
RabbitFlag_Snow_01 = FLAG(0, 10),
RabbitFlag_Snow_02 = FLAG(0, 11),
RabbitFlag_Snow_03 = FLAG(0, 12),
RabbitFlag_Snow_04 = FLAG(0, 13),
RabbitFlag_Snow_05 = FLAG(0, 14),
RabbitFlag_Snow_06 = FLAG(0, 15),
RabbitFlag_Snow_07 = FLAG(0, 16),
RabbitFlag_Snow_08 = FLAG(0, 17),
RabbitFlag_Snow_09 = FLAG(0, 18),
RabbitFlag_Snow_10 = FLAG(0, 19),
RabbitFlag_Water_01 = FLAG(0, 20),
RabbitFlag_Water_02 = FLAG(0, 21),
RabbitFlag_Water_03 = FLAG(0, 22),
RabbitFlag_Water_04 = FLAG(0, 23),
RabbitFlag_Water_05 = FLAG(0, 24),
RabbitFlag_Water_06 = FLAG(0, 25),
RabbitFlag_Water_07 = FLAG(0, 26),
RabbitFlag_Water_08 = FLAG(0, 27),
RabbitFlag_Water_09 = FLAG(0, 28),
RabbitFlag_Water_10 = FLAG(0, 29),
RabbitFlag_Mountain_01 = FLAG(0, 30),
RabbitFlag_Mountain_02 = FLAG(0, 31),
RabbitFlag_Mountain_03 = FLAG(1, 0),
RabbitFlag_Mountain_04 = FLAG(1, 1),
RabbitFlag_Mountain_05 = FLAG(1, 2),
RabbitFlag_Mountain_06 = FLAG(1, 3),
RabbitFlag_Mountain_07 = FLAG(1, 4),
RabbitFlag_Mountain_08 = FLAG(1, 5),
RabbitFlag_Mountain_09 = FLAG(1, 6),
RabbitFlag_Mountain_10 = FLAG(1, 7),
RabbitFlag_Sand_01 = FLAG(1, 8),
RabbitFlag_Sand_02 = FLAG(1, 9),
RabbitFlag_Sand_03 = FLAG(1, 10),
RabbitFlag_Sand_04 = FLAG(1, 11),
RabbitFlag_Sand_05 = FLAG(1, 12),
RabbitFlag_Sand_06 = FLAG(1, 13),
RabbitFlag_Sand_07 = FLAG(1, 14),
RabbitFlag_Sand_08 = FLAG(1, 15),
RabbitFlag_Sand_09 = FLAG(1, 16),
RabbitFlag_Sand_10 = FLAG(1, 17),
RabbitFlag_Max,
};
struct SaveFile_00000_0000_Data_D4C {
/* 00 */ unk32 unk_00;
/* 04 */ unk32 unk_04;
/* 08 */ unk32 unk_08;
/* 0C */ unk32 unk_0C;
/* 10 */ unk32 unk_10;
/* 14 */ unk32 unk_14;
/* 18 */ unk32 unk_18;
/* 1C */ unk32 unk_1C;
/* 20 */ RabbitFlag rabbitFlags[2];
/* 28 */ unk16 unk_28;
/* 2A */ unk16 unk_2A;
/* 2C */ unk32 unk_2C;
/* 30 */ unk32 unk_30;
/* 34 */ unk32 unk_34;
/* 38 */ unk32 unk_38;
/* 3C */ unk32 unk_3C;
/* 40 */
SaveFile_00000_0000_Data_D4C() {}
SaveFile_00000_0000_Data_D4C(unk16 param1) {
MI_CpuFill32(0, this->rabbitFlags, sizeof(this->rabbitFlags));
this->unk_28 = param1;
}
};
struct SaveFile_00000_0000_Data_D8C {
/* 00 */ unk32 unk_00;
/* 04 */ unk32 unk_04;
/* 08 */ unk32 unk_08;
/* 0C */ unk32 unk_0C;
/* 10 */
};
struct SaveFile_00000_0000_Data_D9C {
/* 00 */ unk32 unk_00;
/* 04 */ unk16 unk_04;
/* 06 */ wchar_t mPlayerName[LENGTH_PLAYER_NAME + 1];
/* 18 */ unk32 unk_18;
/* 1C */ unk32 unk_1C;
/* 20 */
unk32 func_ov000_020a1000();
};
struct SaveInfoData {
/* 000 */ unk32 unk_000;
/* 004 */ unk32 unk_004;
@@ -162,35 +263,14 @@ struct SaveInfoData {
/* 040 */ SaveInventory inventory;
/* 0D8 */ SaveFile_00000_0000_Data_D8 unk_0D8;
/* 158 */ SaveFile_00000_0000_Data_158 unk_158;
/* 184 */ SaveFile_00000_0000_Data_184 unk_184[96];
/* 184 */ SaveFile_00000_0000_Data_184 unk_184[SaveCourseIndex_Max];
/* 484 */ SaveFile_00000_0000_Data_484 unk_484[256];
/* C84 */ SaveFile_00000_0000_Data_C84 unk_C84;
/* C94 */ SaveMiscAdvManager miscAdvManager;
/* D24 */ unk32 unk_D24;
/* D24 */ unk32 unk_D28;
/* D24 */ unk32 unk_D2C;
/* D24 */ unk32 unk_D30;
/* D24 */ unk32 unk_D34;
/* D24 */ unk32 unk_D38;
/* D24 */ unk32 unk_D3C;
/* D24 */ unk32 unk_D40;
/* D24 */ unk32 unk_D44;
/* D24 */ unk32 unk_D48;
/* D24 */ SaveFile_00000_0000_Data_D24 unk_D24;
/* D4C */ SaveFile_00000_0000_Data_D4C unk_D4C;
/* D78 */ unk32 unk_D78;
/* D7C */ unk32 unk_D7C;
/* D80 */ unk32 unk_D80;
/* D84 */ unk32 unk_D84;
/* D88 */ unk32 unk_D88;
/* D8C */ unk32 unk_D8C;
/* D90 */ unk32 unk_D90;
/* D94 */ unk32 unk_D94;
/* D98 */ unk32 unk_D98;
/* D9C */ unk32 unk_D9C;
/* DA0 */ unk16 unk_DA0;
/* DA2 */ wchar_t mPlayerName[LENGTH_PLAYER_NAME + 1];
/* DB4 */ unk32 unk_DB4;
/* DB8 */ unk32 unk_DB8;
/* D8C */ SaveFile_00000_0000_Data_D8C unk_D8C;
/* D9C */ SaveFile_00000_0000_Data_D9C unk_D9C;
/* DBC */ unk32 unk_DBC;
/* DC0 */ unk32 unk_DC0;
/* DC4 */ unk32 unk_DC4;
@@ -212,7 +292,8 @@ struct SaveInfoData {
/* E00 */
SaveInfoData() :
unk_014(0) {}
unk_014(0),
unk_D4C(0) {}
};
struct SaveTreasureData {
@@ -267,11 +348,11 @@ public:
}
wchar_t *GetPlayerName() {
return this->mInfoData[0].mPlayerName;
return this->mInfoData[0].unk_D9C.mPlayerName;
}
bool IsPlayerNameSet() {
return this->mInfoData[0].mPlayerName[0] != L'\0';
return this->mInfoData[0].unk_D9C.mPlayerName[0] != L'\0';
}
SaveFile_00000_2600_Data *Get2600Ptr() {
+22 -19
View File
@@ -9,6 +9,8 @@
#include "global.h"
#include "types.h"
#include <nitro/mi.h>
#define SAVE_DATA_SIZE (sizeof(SaveSlot) + sizeof(u8) * NUM_UNK_BLOCKS * SIZE_UNK_BLOCK)
enum {
@@ -19,25 +21,19 @@ enum {
SaveDataIndex_04,
};
class SaveManager_21C {
public:
/* 00 */ unk32 mUnk_00;
unk32 func_ov000_020a1000();
};
struct SaveManager_36 {
/* 00 */ u8 mKeyAmount;
/* 01 */ STRUCT_PAD(0x01, 0x08);
/* 08 */
};
struct SaveManager_00 {
/* 000 */ STRUCT_PAD(0x00, 0x36);
/* 036 */ SaveManager_36 mUnk_36[0x60];
/* 336 */ STRUCT_PAD(0x336, 0xB30);
/* B30 */ unk32 mUnk_B30[1]; // flags, at least 1
/* 000 */ unk32 unk_00;
/* 004 */ SaveFile_00000_0000_Data_158 unk_004;
/* 030 */ SaveFile_00000_0000_Data_184 unk_030[SaveCourseIndex_Max];
/* 330 */ SaveFile_00000_0000_Data_484 unk_330[256];
/* B30 */ SaveFile_00000_0000_Data_C84 unk_B30;
/* B40 */ SaveFile_00000_0000_Data_D24 unk_B40;
/* B68 */ SaveFile_00000_0000_Data_D8C unk_B68;
/* B78 */ SaveFile_00000_0000_Data_D4C unk_B78;
/* BB8 */
SaveManager_00(unk16 param1) :
unk_B78(param1) {}
};
class SaveManager {
@@ -54,8 +50,7 @@ public:
/* 210 */ unk32 mUnk_210;
/* 214 */ unk32 mUnk_214;
/* 218 */ SaveFile *mpSaveFile;
/* 21C */ SaveManager_21C mUnk_21C;
/* 220 */ STRUCT_PAD(0x220, 0x23C);
/* 21C */ SaveFile_00000_0000_Data_D9C mUnk_21C;
/* 23C */ PTMF<SaveFile>::PTMFCallback mUnk_23C;
/* 244 */ unk32 mUnk_244;
@@ -75,17 +70,25 @@ public:
return this->mpSaveFile->mSlots;
}
SaveManager_00 *GetUnk000() {
return this->mUnk_000;
}
SaveManager();
// overlay 0
void func_ov000_020a0b2c(UnkCallback param1, unk32 param2);
bool func_ov000_020a0b70(void *param1, unk32 param2);
// overlay 1
void func_ov001_020ba670();
void func_ov001_020ba7a8();
void func_ov001_020ba7c8(u16 saveSlotIndex);
// overlay 17
void func_ov017_020c3040(void *param1, unk32 param2);
// overlay 19
void func_ov019_020d08fc(unk32 param1, PTMF<SaveFile>::PTMFCallback param2);
bool func_ov019_020d0964(void);
void func_ov019_020d09dc(u16 saveSlotIndex);
+1 -1
View File
@@ -40,7 +40,7 @@ public:
void *operator new(size_t length, u32 id, u32 idLength = 4);
void *operator new[](size_t length, u32 id, u32 idLength = 4);
static inline void *operator new(size_t length, void *ptr = nullptr) {
inline void *operator new(size_t length, void *ptr = nullptr) {
#pragma unused(length)
return ptr;
}
+6 -6
View File
@@ -73,15 +73,15 @@ public:
/* 021 */ u8 mUnk_021;
/* 022 */ unk8 mUnk_022;
/* 023 */ unk8 mUnk_023;
/* 024 */ UnkSubStruct19 mUnk_024; // feather
/* 09C */ UnkSubStruct19 mUnk_09C; // green rectangle
/* 114 */ UnkSubStruct19 mUnk_114; // "touch screen!" text
/* 18C */ UnkSubStruct19 mUnk_18C; // copyright text
/* 024 */ CellAnimObject mUnk_024; // feather
/* 09C */ CellAnimObject mUnk_09C; // green rectangle
/* 114 */ CellAnimObject mUnk_114; // "touch screen!" text
/* 18C */ CellAnimObject mUnk_18C; // copyright text
/* 204 */ TitleScreen_Sub2 mUnk_204;
/* 218 */ TitleScreen_Sub3 mUnk_218;
/* 23C */ UnkStruct_ov019_020d24c8_28_258 mUnk_23C;
/* 254 */ UnkSubStruct19 mUnk_254; // logo shine
/* 2CC */ UnkSubStruct19 mUnk_2CC; // logo shine outline (it's barely visible)
/* 254 */ CellAnimObject mUnk_254; // logo shine
/* 2CC */ CellAnimObject mUnk_2CC; // logo shine outline (it's barely visible)
/* 344 */ unk32 mUnk_344;
/* 348 */
+36 -67
View File
@@ -1,5 +1,6 @@
#pragma once
#include "Animation/CellAnimObject.hpp"
#include "Game/GameModeManager.hpp"
#include "System/SysNew.hpp"
#include "Unknown/UnkFileSystem.hpp"
@@ -880,71 +881,6 @@ struct UnkResult {
void func_02017520(const char *nscrPath, const char *ncgrPath, const char *nclrPath);
};
// used to draw the swords from the adventure and battle buttons
class UnkSubStruct19 {
public:
/* 00 */ void *mUnk_00;
/* 04 */ void *mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0C */ unk32 mUnk_0C; // pause the animation timer (in this context: pause the shiny animation on the sword)
/* 10 */ unk32 mUnk_10; // animation timer
/* 14 */ unk32 mUnk_14; // animation speed (also affects above timer)
/* 18 */ unk32 mUnk_18;
/* 1C */ void *mUnk_1C; // pointer to animation bank ("ABNK")
/* 20 */ unk32 mUnk_20;
/* 24 */ unk32 mUnk_24;
/* 28 */ u8 mUnk_28; // bool?
/* 29 */ unk8 mUnk_29;
/* 2A */ unk8 mUnk_2A;
/* 2B */ unk8 mUnk_2B;
/* 2C */ unk32 mUnk_2C;
/* 30 */ void *mUnk_30; // pointer to somewhere inside "CEBK"
/* 34 */ void *mUnk_34;
/* 38 */ unk32 mUnk_38;
/* 3C */ unk32 mUnk_3C;
/* 40 */ unk32 mUnk_40; // related to the width of the texture (scaling matrix?)
/* 44 */ unk32 mUnk_44; // related to the height of the texture
/* 48 */ Vec2us mUnk_48;
/* 4C */ unk32 mUnk_4C;
/* 50 */ unk32 mUnk_50;
/* 54 */ unk32 mUnk_54;
/* 58 */ unk32 mUnk_58; // another timer?
/* 5C */ Vec2s mUnk_5C; // position of the animated texture
/* 60 */ unk32 mUnk_60;
/* 64 */ unk32 mUnk_64;
/* 68 */ unk32 mUnk_68;
/* 6C */ unk16 mUnk_6C;
/* 6E */ bool mUnk_6E;
/* 6F */ unk8 mUnk_6F;
/* 70 */ unk32 mUnk_70;
/* 74 */ unk16 mUnk_74;
/* 76 */ unk16 mUnk_76;
/* 78 */
UnkSubStruct19();
UnkSubStruct19(unk32 param1, unk32 param2) {
this->mUnk_6E = true;
this->mUnk_70 = 0;
this->mUnk_5C.x = 0;
this->mUnk_5C.y = 0;
this->mUnk_74 = 0;
this->func_ov000_0206082c(param1, 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();
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);
};
struct UnkStruct_StackTitleScreen {
/* 00 */ unk32 pad[5];
/* 14 */
@@ -1026,8 +962,8 @@ class UnkActorSystem2 : public GameModeManagerBase_104 {
public:
/* 000 (base) */
/* 01B */ bool mUnk_01B;
/* 01C */ UnkSubStruct19 mUnk_01C;
/* 094 */ UnkSubStruct19 mUnk_094;
/* 01C */ CellAnimObject mUnk_01C;
/* 094 */ CellAnimObject mUnk_094;
/* 10C */ bool mUnk_10C;
/* 10C */ bool mUnk_10D;
@@ -1293,3 +1229,36 @@ public:
/* 00 */ virtual ~MapObjectProfile_Derived5() override;
/* 08 */
};
//! TODO: move to a better place
enum TrainPresetType_ {
TrainPresetType_Default = 0, // normal overworld settings
TrainPresetType_DarkRealmNormal = 1, // default dark realm settings (SceneIndex_t_dark)
TrainPresetType_DarkRealmLightTear = 2, // dark realm when on a light tear (SceneIndex_t_dark)
TrainPresetType_DarkRealmLightTearRope = 3, // same as above but when pulling the rope (SceneIndex_t_dark)
TrainPresetType_DarkRealmFight = 4, // (SceneIndex_t_eviltrain, SceneIndex_t_eviltrain2 & SceneIndex_t_eviltrain3)
TrainPresetType_5 = 5, // unused?
TrainPresetType_Max,
};
struct TrainSpeedTarget {
/* 00 */ unk32 speed;
/* 04 */ unk32 unk_04;
/* 08 */
};
struct TrainSpeedPreset {
/* 00 */ TrainSpeedTarget reverse;
/* 08 */ TrainSpeedTarget stop;
/* 10 */ TrainSpeedTarget slow;
/* 18 */ TrainSpeedTarget fast;
/* 20 */ unk32 unk_20;
/* 24 */ unk32 unk_24;
/* 28 */ unk32 unk_28;
/* 2C */ unk32 unk_2C;
/* 30 */ unk32 unk_30;
/* 34 */ unk32 unk_34;
/* 38 */ unk32 unk_38; // related to the "emergency break" thing when you go to reverse while fast speed
/* 3C */ fx32 unk_3C;
/* 40 */
};
+10 -10
View File
@@ -25,15 +25,15 @@ public:
/* 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];
/* 018 */ CellAnimObject mUnk_024;
/* 090 */ CellAnimObject mUnk_09C;
/* 108 */ CellAnimObject mUnk_114;
/* 180 */ CellAnimObject mUnk_18C;
/* 1F8 */ CellAnimObject mUnk_204;
/* 270 */ CellAnimObject mUnk_27C;
/* 2E8 */ CellAnimObject mUnk_2F4;
/* 360 */ CellAnimObject mUnk_36C;
/* 3E4 */ CellAnimObject mUnk_3E4[2];
/* 4D4 */ u8 mUnk_4D4;
/* 4D5 */ u8 mUnk_4D5;
/* 4D6 */ unk8 mUnk_4D6; // pad?
@@ -191,7 +191,7 @@ public:
class UICounter_SmallKeys {
public:
/* 00 */ UnkStruct_ov019_020d24c8_28_258 mUnk_00;
/* 18 */ UnkSubStruct19 mUnk_18;
/* 18 */ CellAnimObject mUnk_18;
/* 90 */ unk16 mUnk_90;
/* 92 */ unk16 mUnk_92;
/* 94 */
+2 -2
View File
@@ -2,7 +2,7 @@
#include "types.h"
class UnkSubStruct19;
class CellAnimObject;
class UnkStruct_0204af1c_00 {
public:
@@ -22,7 +22,7 @@ public:
UnkStruct_0204af1c();
void func_0201a800();
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_0201aad0(CellAnimObject *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);
};
+6 -1
View File
@@ -15,11 +15,15 @@ struct stack_ov000_02073578 {
class UnkStruct_027e09b8_00 {
public:
/* 000 */ STRUCT_PAD(0x000, 0xFD4);
/* 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();
~UnkStruct_027e09b8_00();
void func_ov000_02073bc0();
};
class UnkStruct_027e09b8_04 {
@@ -85,6 +89,7 @@ public:
unk32 func_ov000_02073470(void *param1, unk32 param2);
unk32 func_ov000_02073388(void *param1, unk32 param2);
void func_ov000_02073578(void *param1, unk32 param2);
void func_ov000_0207332c();
#if IS_JP
void func_ov000_02074d78(unk32 param1);
+18 -4
View File
@@ -3,6 +3,7 @@
#include "global.h"
#include "types.h"
#include "Actor/ActorRef.hpp"
#include "Item/ItemManager.hpp"
#include "LinkList.hpp"
#include "Player/Player.hpp"
@@ -105,7 +106,10 @@ public:
class UnkStruct_027e0ce0_38_58 {
public:
/* 000 */ STRUCT_PAD(0x00, 0x3D4);
/* 000 */ STRUCT_PAD(0x00, 0x338);
/* 338 */ unk32 mUnk_338; // rope pulled timer
/* 33C */ unk32 mUnk_33C; // rope pull strength, 0 to 8
/* 340 */ STRUCT_PAD(0x340, 0x3D4);
/* 3D4 */
UnkStruct_027e0ce0_38_58();
@@ -175,7 +179,7 @@ public:
/* 050 */ unk32 mUnk_050;
/* 054 */ unk16 mUnk_054;
/* 056 */ unk16 mUnk_056;
/* 058 */ UnkStruct_027e0ce0_38_58 *mUnk_058;
/* 058 */ UnkStruct_027e0ce0_38_58 *mUnk_058; // related to train invicibility state in the dark realm (+0x35C/+0x360)
/* 05C */ UnkStruct_027e0ce0_38_5C *mUnk_05C;
/* 060 */ UnkStruct_027e0ce0_38_60 mUnk_060;
/* 138 */ unk32 mUnk_138;
@@ -197,7 +201,7 @@ public:
/* 174 */ UnkStruct_027e0ce0_38_174 mUnk_174;
/* 19C */ UnkStruct_027e0ce0_38_19C mUnk_19C;
/* 1C8 */ UnkStruct_027e0ce0_38_1C8 mUnk_1C8;
/* 1FC */ UnkSubStruct19 mUnk_1FC;
/* 1FC */ CellAnimObject mUnk_1FC;
/* 274 */ UnkStruct_ov019_020d24c8_28_258_00 mUnk_274;
/* 280 */
@@ -243,7 +247,17 @@ public:
class UnkStruct_027e0ce0_40_Base_94 {
public:
/* 00 */ STRUCT_PAD(0x00, 0x5C);
/* 00 */ STRUCT_PAD(0x00, 0x14);
/* 14 */ ActorRef mUnk_14;
/* 18 */ unk32 mUnk_18;
/* 1C */ ActorRef mUnk_1C;
/* 20 */ unk32 mUnk_20;
/* 24 */ STRUCT_PAD(0x24, 0x48);
/* 48 */ ActorRef mUnk_48;
/* 4C */ unk32 mUnk_4C;
/* 50 */ unk32 mUnk_50;
/* 54 */ unk32 mUnk_54;
/* 58 */ unk32 mUnk_58;
/* 5C */ unk32 mUnk_5C; // seems to be the walking speed of link??
/* 60 */ unk32 mUnk_60;
/* 64 */ unk32 mUnk_64;
+1 -1
View File
@@ -8,7 +8,7 @@
#include "types.h"
struct UnkStruct_027e0cf8_00_18_00 {
/* 00 */ UnkSubStruct19 mUnk_00;
/* 00 */ CellAnimObject mUnk_00;
/* 78 */ unk32 mUnk_78;
/* 7C */ unk32 mUnk_7C;
/* 80 */ unk32 mUnk_80;
+10 -17
View File
@@ -3,6 +3,7 @@
#include "global.h"
#include "types.h"
#include "Actor/ActorRef.hpp"
#include "Item/ItemManager.hpp"
#include "System/SysNew.hpp"
#include "math.hpp"
@@ -25,9 +26,9 @@ public:
class UnkStruct_PlayerGet_64 {
public:
/* 00 */ unk32 mUnk_00;
/* 00 */ ActorRef *mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ u16 mUnk_08;
/* 08 */ u16 mUnk_08; // makes link invisible when set
/* 0A */ unk16 mUnk_0A;
/* 0C */
@@ -94,7 +95,7 @@ public:
/* A0 */ STRUCT_PAD(0xA0, 0x148);
/* 148 */ u32 mUnk_148;
/* 14C */ unk32 mUnk_14C;
/* 150 */ unk32 mUnk_150;
/* 150 */ ActorRef mUnk_150;
};
class UnkStruct_ov000_0208f820_30_10 {
@@ -160,25 +161,17 @@ public:
class UnkStruct_ov000_0208f820_04 {
public:
/* 00 */ union {
u8 mUnk_00[4];
u16 mUnk_00_s16;
u32 mUnk_00_s32;
};
/* 04 */ union {
u8 mUnk_04[4];
u16 mUnk_04_s16;
u32 mUnk_04_s32;
};
/* 00 */ ActorRef mUnk_00;
/* 04 */ ActorRef mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0C */ ItemId mItemId;
/* 10 */
UnkStruct_ov000_0208f820_04(unk32 param1, unk32 param2, unk32 param3, ItemId itemId) {
*(u32 *) this->mUnk_00 = param1;
*(u32 *) this->mUnk_04 = param2;
this->mUnk_08 = param3;
this->mItemId = itemId;
this->mUnk_00.data = param1;
this->mUnk_04.data = param2;
this->mUnk_08 = param3;
this->mItemId = itemId;
}
UnkStruct_ov000_0208f820_04() {}
+1 -1
View File
@@ -68,7 +68,7 @@ public:
void func_ov000_0206d0bc(unk32 param1);
void func_ov000_0206d0ec(unk32 param1, unk32 param2, unk32 param3, unk32 param4);
void func_ov000_0206d134(unk32 param1);
void func_ov000_0206d274(unk32 param1);
void func_ov000_0206d274(unk32 param1); // play seq?
void func_ov018_020c5940();
};
+2 -1
View File
@@ -1,5 +1,6 @@
#pragma once
#include "Message/BMG.hpp"
#include "Save/SaveManager.hpp"
#include "System/SysNew.hpp"
#include "global.h"
@@ -33,7 +34,7 @@ public:
/* 08 */ virtual void vfunc_08(unk32 param1); // func_ov000_020669cc
/* 0C */ virtual unk32 vfunc_0C(); // func_ov000_020669d0
/* 10 */ virtual unk32 vfunc_10(u16 *param1); // func_ov000_02066a5c
/* 14 */ virtual unk32 vfunc_14(void *param1); // func_ov000_02066dfc
/* 14 */ virtual bool vfunc_14(FLW1Instr *param1); // func_ov000_02066dfc
/* 18 */ virtual void vfunc_18(); // func_ov000_020669d8
/* 1C */ virtual unk32 vfunc_1C(u32 param1, unk32 param2, unk32 param3); // func_ov000_02067234
/* 20 */ virtual unk32 vfunc_20(unk32 param1, unk32 param2, unk32 param3); // func_ov000_0206723c
+2 -2
View File
@@ -319,7 +319,7 @@ static inline void Vec2pCpp_Copy(const Vec2pCpp *a, Vec2pCpp *dst) {
}
//! TODO: remove
extern "C" static inline Vec2s *Vec2s_New(s16 x, s16 y) {
extern "C" inline Vec2s *Vec2s_New(s16 x, s16 y) {
Vec2s vec;
vec.x = x;
vec.y = y;
@@ -327,7 +327,7 @@ extern "C" static inline Vec2s *Vec2s_New(s16 x, s16 y) {
}
//! TODO: remove
extern "C" static inline Vec2s *Vec2s_GetCopy(Vec2s *src) {
extern "C" inline Vec2s *Vec2s_GetCopy(Vec2s *src) {
Vec2s vec;
vec.x = src->x;
vec.y = src->y;