Merge remote-tracking branch 'zeldaret/main' into decomp-PlayerControl

This commit is contained in:
Aetias
2025-02-04 21:30:00 +01:00
347 changed files with 9795 additions and 5379 deletions
+1 -1
View File
@@ -3,7 +3,7 @@
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "nds/math.h"
#include "Actor/ActorRef.hpp"
#include "Actor/ActorType.hpp"
+12
View File
@@ -93,6 +93,18 @@ public:
void func_ov00_020c3ce8(unk32 param1, bool param2);
void Actor_vfunc_28();
static bool ActorTypeIsOneOf(ActorTypeId type, const ActorTypeId *types);
static void Create();
static void Destroy();
ActorManager();
~ActorManager();
void func_ov004_0210532c();
void func_ov004_021053dc();
void func_ov004_021054a4(s32 *param1, s32 param2, unk32 param3);
void func_ov004_0210554c();
bool func_ov004_02105578(unk32 param1);
bool func_ov004_02105608(unk32 param1, unk32 param2, unk32 param3);
void func_ov004_021056b8();
};
extern ActorManager *gActorManager;
-34
View File
@@ -1,34 +0,0 @@
#pragma once
#include "global.h"
#include "types.h"
#include "Actor/Actor.hpp"
#include "Render/ModelRender.hpp"
class ActorNaviBase : public Actor {
public:
/* 000 (base) */
/* 158 */ Vec3p mOffsetPos;
/* 164 */ u32 mUnk_164;
/* 168 */ unk8 mUnk_168[0x68];
/* 1d0 */ void *mUnk_1d0;
/* 164 */ unk8 mUnk_1d4[0x40];
/* 214 */ unk16 mUnk_214;
/* 216 */ unk8 mUnk_216[0xc];
/* 222 */ unk16 mUnk_222;
/* 224 */ unk8 mUnk_224[0x28];
/* 24c */ unk32 mUnk_24c;
/* 250 */ unk32 mUnk_250;
/* 254 */ unk32 mUnk_254;
/* 258 */ unk32 mUnk_258;
/* 25c */ unk32 mUnk_25c;
/* 260 */ unk32 mUnk_260;
/* 264 */ unk8 mUnk_264[0x1c];
/* 280 */ unk32 mUnk_280;
/* 284 */ unk32 mUnk_284;
/* 288 */ unk8 mUnk_288[0x2];
/* 28a */ unk16 mUnk_28a;
/* 28c */ unk8 mUnk_28c[0x8];
/* 294 */
};
+3 -1
View File
@@ -8,7 +8,9 @@ struct ActorRef {
/* 4 */ s32 index;
/* 8 */
inline ActorRef() {}
inline ActorRef() {
Reset();
}
inline ActorRef(s32 id, s32 index) :
id(id),
index(index) {}
+1 -1
View File
@@ -1,7 +1,7 @@
#pragma once
#include "global.h"
#include "lib/math.h"
#include "nds/math.h"
#include "types.h"
#include "Actor/Actor.hpp"
+25
View File
@@ -0,0 +1,25 @@
#pragma once
#include <nds/math.h>
#include "global.h"
#include "types.h"
#include "Actor/ActorRef.hpp"
#include "Actor/ActorType.hpp"
class ActorSpawner {
public:
/* 0 (empty) */
static ActorSpawner *Create();
static void Destroy();
ActorSpawner();
~ActorSpawner();
void _ZN12ActorSpawner19func_ov000_020c4014Ev();
void _ZN12ActorSpawner19func_ov000_020c4018Ev();
Actor *CreateActor(ActorTypeId type);
s32 Spawn(ActorTypeId type, Vec3p *pos, void *param3, ActorRef *ref);
};
extern ActorSpawner *gActorSpawner;
+69 -109
View File
@@ -3,127 +3,87 @@
#include "global.h"
#include "types.h"
#define __ACTOR_TYPE_A 'A'
#define __ACTOR_TYPE_B 'B'
#define __ACTOR_TYPE_C 'C'
#define __ACTOR_TYPE_D 'D'
#define __ACTOR_TYPE_E 'E'
#define __ACTOR_TYPE_F 'F'
#define __ACTOR_TYPE_G 'G'
#define __ACTOR_TYPE_H 'H'
#define __ACTOR_TYPE_I 'I'
#define __ACTOR_TYPE_J 'J'
#define __ACTOR_TYPE_K 'K'
#define __ACTOR_TYPE_L 'L'
#define __ACTOR_TYPE_M 'M'
#define __ACTOR_TYPE_N 'N'
#define __ACTOR_TYPE_O 'O'
#define __ACTOR_TYPE_P 'P'
#define __ACTOR_TYPE_Q 'Q'
#define __ACTOR_TYPE_R 'R'
#define __ACTOR_TYPE_S 'S'
#define __ACTOR_TYPE_T 'T'
#define __ACTOR_TYPE_U 'U'
#define __ACTOR_TYPE_V 'V'
#define __ACTOR_TYPE_W 'W'
#define __ACTOR_TYPE_X 'X'
#define __ACTOR_TYPE_Y 'Y'
#define __ACTOR_TYPE_Z 'Z'
#define __ACTOR_TYPE_0 '0'
#define __ACTOR_TYPE_1 '1'
#define __ACTOR_TYPE_2 '2'
#define __ACTOR_TYPE_3 '3'
#define __ACTOR_TYPE_4 '4'
#define __ACTOR_TYPE_5 '5'
#define __ACTOR_TYPE_6 '6'
#define __ACTOR_TYPE_7 '7'
#define __ACTOR_TYPE_8 '8'
#define __ACTOR_TYPE_9 '9'
#define __CONCAT(a, b) a##b
#define __EVAL(x) x
#define __ACTOR_TYPE_ID(a, b, c, d) \
((__EVAL(__CONCAT(__ACTOR_TYPE_, a)) << 24) | (__EVAL(__CONCAT(__ACTOR_TYPE_, b)) << 16) | \
(__EVAL(__CONCAT(__ACTOR_TYPE_, c)) << 8) | (__EVAL(__CONCAT(__ACTOR_TYPE_, d))))
typedef u32 ActorTypeId;
enum ActorTypeId_ {
ActorTypeId_Null = __ACTOR_TYPE_ID(N, U, L, L),
ActorTypeId_Null = 'NULL',
ActorTypeId_Navi = __ACTOR_TYPE_ID(N, A, V, I),
ActorTypeId_ForceNavi = __ACTOR_TYPE_ID(F, C, N, V),
ActorTypeId_WisdomNavi = __ACTOR_TYPE_ID(W, S, N, V),
ActorTypeId_Navi = 'NAVI',
ActorTypeId_ForceNavi = 'FCNV',
ActorTypeId_WisdomNavi = 'WSNV',
ActorTypeId_TreasureMap = __ACTOR_TYPE_ID(T, M, A, P),
ActorTypeId_DigSpot = __ACTOR_TYPE_ID(D, G, T, G),
ActorTypeId_TreasureMap = 'TMAP',
ActorTypeId_DigSpot = 'DGTG',
ActorTypeId_ShopItemBombchus = __ACTOR_TYPE_ID(I, T, B, T),
ActorTypeId_ShopItemBombs = __ACTOR_TYPE_ID(I, T, B, M),
ActorTypeId_ShopItemTreasure = __ACTOR_TYPE_ID(I, T, T, R),
ActorTypeId_ShopItemHeartContainer = __ACTOR_TYPE_ID(I, T, H, U),
ActorTypeId_ShopItemQuiver = __ACTOR_TYPE_ID(I, T, A, P),
ActorTypeId_ShopItemBombBag = __ACTOR_TYPE_ID(I, T, B, B),
ActorTypeId_ShopItemRedPotion = __ACTOR_TYPE_ID(I, T, P, B),
ActorTypeId_ShopItemCourageGem = __ACTOR_TYPE_ID(I, T, S, R),
ActorTypeId_ShopItemShield = __ACTOR_TYPE_ID(I, T, S, L),
ActorTypeId_ShopItemSoldOut = __ACTOR_TYPE_ID(I, T, S, O),
ActorTypeId_ShopItemBombchus = 'ITBT',
ActorTypeId_ShopItemBombs = 'ITBM',
ActorTypeId_ShopItemTreasure = 'ITTR',
ActorTypeId_ShopItemHeartContainer = 'ITHU',
ActorTypeId_ShopItemQuiver = 'ITAP',
ActorTypeId_ShopItemBombBag = 'ITBB',
ActorTypeId_ShopItemRedPotion = 'ITPB',
ActorTypeId_ShopItemCourageGem = 'ITSR',
ActorTypeId_ShopItemShield = 'ITSL',
ActorTypeId_ShopItemSoldOut = 'ITSO',
ActorTypeId_Heart = __ACTOR_TYPE_ID(H, A, R, T),
ActorTypeId_Rupee = __ACTOR_TYPE_ID(R, U, P, Y),
ActorTypeId_Heart = 'HART',
ActorTypeId_Rupee = 'RUPY',
ActorTypeId_Bomb = __ACTOR_TYPE_ID(B, O, M, B),
ActorTypeId_Arrow = __ACTOR_TYPE_ID(A, R, R, W),
ActorTypeId_Arrow = 'ARRW',
ActorTypeId_Blast = 'BLST',
ActorTypeId_Bomb = 'BOMB',
ActorTypeId_GrapplingHook = 'ROPE',
ActorTypeId_PlayerDummy = __ACTOR_TYPE_ID(P, L, D, M),
ActorTypeId_PushBlock = __ACTOR_TYPE_ID(P, S, B, L),
ActorTypeId_WindBlock = __ACTOR_TYPE_ID(W, B, L, K),
ActorTypeId_StorageDrum = __ACTOR_TYPE_ID(D, R, U, M),
ActorTypeId_PlayerDummy = 'PLDM',
ActorTypeId_PushBlock = 'PSBL',
ActorTypeId_WindBlock = 'WBLK',
ActorTypeId_StorageDrum = 'DRUM',
ActorTypeId_SmallKey = __ACTOR_TYPE_ID(N, K, E, Y),
ActorTypeId_SmallKey = 'NKEY',
ActorTypeId_SwitchObject = 'SWOB',
ActorTypeId_EventIcon = 'EVIC',
ActorTypeId_Sandworm = __ACTOR_TYPE_ID(M, L, D, W),
ActorTypeId_Tektite = __ACTOR_TYPE_ID(T, E, K, T),
ActorTypeId_PolsVoice = __ACTOR_TYPE_ID(P, L, S, V),
ActorTypeId_Yook = __ACTOR_TYPE_ID(Y, E, T, I),
ActorTypeId_Armos = __ACTOR_TYPE_ID(A, M, O, S),
ActorTypeId_Stalfos = __ACTOR_TYPE_ID(S, T, L, F),
ActorTypeId_StalfosWarrior = __ACTOR_TYPE_ID(S, T, L, W),
ActorTypeId_ChuChu = __ACTOR_TYPE_ID(C, H, U, C),
ActorTypeId_Gel = __ACTOR_TYPE_ID(G, E, L, L),
ActorTypeId_Bee = __ACTOR_TYPE_ID(B, E, E, 0),
ActorTypeId_BeeHive = __ACTOR_TYPE_ID(B, E, E, H),
ActorTypeId_Cucco = __ACTOR_TYPE_ID(K, O, K, O),
ActorTypeId_Rope = __ACTOR_TYPE_ID(S, N, A, K),
ActorTypeId_Octorok = __ACTOR_TYPE_ID(O, C, T, A),
ActorTypeId_Keese = __ACTOR_TYPE_ID(K, E, T, H),
ActorTypeId_Rat = __ACTOR_TYPE_ID(R, A, T, 0),
ActorTypeId_Beamos = __ACTOR_TYPE_ID(B, M, O, S),
ActorTypeId_LikeLike = __ACTOR_TYPE_ID(L, K, L, K),
ActorTypeId_Crow = __ACTOR_TYPE_ID(C, R, O, W),
ActorTypeId_Sandworm = 'MLDW',
ActorTypeId_Tektite = 'TEKT',
ActorTypeId_PolsVoice = 'PLSV',
ActorTypeId_Yook = 'YETI',
ActorTypeId_Armos = 'AMOS',
ActorTypeId_Stalfos = 'STLF',
ActorTypeId_StalfosWarrior = 'STLW',
ActorTypeId_ChuChu = 'CHUC',
ActorTypeId_Gel = 'GELL',
ActorTypeId_Bee = 'BEE0',
ActorTypeId_BeeHive = 'BEEH',
ActorTypeId_Cucco = 'KOKO',
ActorTypeId_Rope = 'SNAK',
ActorTypeId_Octorok = 'OCTA',
ActorTypeId_Keese = 'KETH',
ActorTypeId_Rat = 'RAT0',
ActorTypeId_Beamos = 'BMOS',
ActorTypeId_LikeLike = 'LKLK',
ActorTypeId_Crow = 'CROW',
ActorTypeId_Linebeck = __ACTOR_TYPE_ID(L, N, B, K),
ActorTypeId_Mailbox = __ACTOR_TYPE_ID(P, O, S, T),
ActorTypeId_Postman = __ACTOR_TYPE_ID(P, S, T, M),
ActorTypeId_Linebeck = 'LNBK',
ActorTypeId_Mailbox = 'POST',
ActorTypeId_Postman = 'PSTM',
ActorTypeId_BIGR = __ACTOR_TYPE_ID(B, I, G, R),
ActorTypeId_BKEY = __ACTOR_TYPE_ID(B, K, E, Y),
ActorTypeId_BLST = __ACTOR_TYPE_ID(B, L, S, T),
ActorTypeId_BMRN = __ACTOR_TYPE_ID(B, M, R, N),
ActorTypeId_BMTY = __ACTOR_TYPE_ID(B, M, T, Y),
ActorTypeId_BTRF = __ACTOR_TYPE_ID(B, T, R, F),
ActorTypeId_CBLS = __ACTOR_TYPE_ID(C, B, L, S),
ActorTypeId_FLAL = __ACTOR_TYPE_ID(F, L, A, L),
ActorTypeId_FLBM = __ACTOR_TYPE_ID(F, L, B, M),
ActorTypeId_FLBT = __ACTOR_TYPE_ID(F, L, B, T),
ActorTypeId_FLTB = __ACTOR_TYPE_ID(F, L, T, B),
ActorTypeId_FLTM = __ACTOR_TYPE_ID(F, L, T, M),
ActorTypeId_FORC = __ACTOR_TYPE_ID(F, O, R, C),
ActorTypeId_ROPE = __ACTOR_TYPE_ID(R, O, P, E),
ActorTypeId_SBEM = __ACTOR_TYPE_ID(S, B, E, M),
ActorTypeId_STNE = __ACTOR_TYPE_ID(S, T, N, E),
ActorTypeId_TARU = __ACTOR_TYPE_ID(T, A, R, U),
ActorTypeId_TSBH = __ACTOR_TYPE_ID(T, S, B, H),
ActorTypeId_TSUB = __ACTOR_TYPE_ID(T, S, U, B),
ActorTypeId_VLR0 = __ACTOR_TYPE_ID(V, L, R, 0),
ActorTypeId_BIGR = 'BIGR',
ActorTypeId_BKEY = 'BKEY',
ActorTypeId_BMRN = 'BMRN',
ActorTypeId_BMTY = 'BMTY',
ActorTypeId_BTRF = 'BTRF',
ActorTypeId_CBLS = 'CBLS',
ActorTypeId_FLAL = 'FLAL',
ActorTypeId_FLBM = 'FLBM',
ActorTypeId_FLBT = 'FLBT',
ActorTypeId_FLTB = 'FLTB',
ActorTypeId_FLTM = 'FLTM',
ActorTypeId_FORC = 'FORC',
ActorTypeId_SBEM = 'SBEM',
ActorTypeId_STNE = 'STNE',
ActorTypeId_TARU = 'TARU',
ActorTypeId_TSBH = 'TSBH',
ActorTypeId_TSUB = 'TSUB',
ActorTypeId_VLR0 = 'VLR0',
};
class ActorType_UnkClass {
+30
View File
@@ -0,0 +1,30 @@
#pragma once
#include "global.h"
#include "types.h"
#include "Actor/Actor.hpp"
#include "Actor/ActorType.hpp"
#include "Unknown/UnkStruct_02035064.hpp"
class ActorEventIcon : public Actor {
public:
static ActorType gType;
/* 000 (base) */
/* 158 */ void *mUnk_158;
/* 15c */ u32 mUnk_15c;
/* 160 */ UnkStruct_02035064 mUnk_160;
/* 00 */ virtual ~ActorEventIcon() override;
/* 08 */ virtual bool vfunc_08() override;
/* 14 */ virtual void vfunc_14(u32 param1) override;
/* 18 */ virtual void vfunc_18(u32 param1) override;
/* 1c */ virtual void vfunc_1c(u16 *param1) override;
/* b4 */
static ActorEventIcon *Create();
ActorEventIcon();
u32 func_ov000_02090648(u32 param1);
bool func_ov000_02090774(u32 param1);
};
@@ -0,0 +1,36 @@
#pragma once
#include "global.h"
#include "types.h"
#include "Actor/Actor.hpp"
#include "Actor/ActorType.hpp"
class ActorSwitchObject : public Actor {
public:
static ActorType gType;
/* 000 (base) */
/* 158 */ unk32 mUnk_158;
/* 15c */ unk32 mUnk_15c;
/* 160 */ unk32 mUnk_160;
/* 164 */ unk32 mUnk_164;
/* 168 */ unk32 mUnk_168;
/* 16c */ u32 mUnk_16c;
/* 170 */ ActorRef mUnk_170[5];
/* 198 */
/* 00 */ virtual ~ActorSwitchObject() override;
/* 08 */ virtual bool vfunc_08() override;
/* 0c */ virtual void vfunc_0c() override;
/* 14 */ virtual void vfunc_14(u32 param1) override;
/* 18 */ virtual void vfunc_18(u32 param1) override;
/* b4 */
static ActorSwitchObject *Create();
bool func_ov000_0208fc10(s32 param1);
void func_ov000_0208fc7c();
bool func_ov000_0208fcb4();
void func_ov000_0208fef8();
void func_ov000_0209032c();
};
+113
View File
@@ -0,0 +1,113 @@
#pragma once
#include "global.h"
#include "types.h"
#include "Actor/Actor.hpp"
#include "Player/EquipHammer.hpp"
#include "Render/ModelRender.hpp"
class ActorNaviBase_Unk1 {};
class ActorNaviBase : public Actor {
/* 000 (base) */
/* 158 */ Vec3p mOffsetPos;
/* 164 */ unk32 mUnk_164;
/* 168 */ ModelRender mUnk_168;
/* 1c4 */ unk8 mUnk_1c4[0xc];
/* 1d0 */ void *mUnk_1d0;
/* 1d4 */ unk8 mUnk_1d4[0x30];
/* 214 */ unk16 mUnk_214;
/* 216 */ unk8 mUnk_216[0xc];
/* 222 */ unk16 mUnk_222;
/* 224 */ unk8 mUnk_224[0x18];
/* 24c */ unk32 mUnk_24c;
/* 250 */ unk32 mUnk_250;
/* 254 */ unk32 mUnk_254;
/* 258 */ unk32 mUnk_258;
/* 25c */ unk32 mUnk_25c;
/* 260 */ unk32 mUnk_260;
/* 264 */ unk8 mUnk_264[0x1c];
/* 280 */ unk32 mUnk_280;
/* 284 */ unk32 mUnk_284;
/* 288 */ unk8 mUnk_288[0x2];
/* 28a */ unk16 mUnk_28a;
/* 28c */ unk8 mUnk_28c[0x8];
/* 294 */ ModelRender mUnk_294;
/* 2f0 */ void *mUnk_2f0;
/* 2f4 */ unk8 mUnk_2f4[0x40];
/* 334 */ unk32 mUnk_334;
/* 338 */ unk32 mUnk_338;
/* 33c */ unk32 mUnk_33c;
/* 340 */ unk16 mUnk_340;
/* 342 */ unk8 mUnk_342[0x2];
/* 344 */ unk32 mUnk_344;
/* 348 */ unk32 mUnk_348;
/* 34c */ unk8 mUnk_34c[0x68];
/* 3b4 */ EquipHammer *mHammer;
/* 3b8 */ unk32 mUnk_3b8;
/* 3bc */ unk32 mUnk_3bc;
/* 3c0 */ unk8 mUnk_3c0[0x8];
/* 3c8 */
/* 00 */ virtual ~ActorNaviBase() override;
/* 08 */ virtual bool vfunc_08() override;
/* 10 */ virtual void vfunc_10(u32 param1) override;
/* 14 */ virtual void vfunc_14(u32 param1) override;
/* 18 */ virtual void vfunc_18(u32 param1) override;
/* 20 */ virtual void vfunc_20(bool param1) override;
/* 30 */ virtual unk32 vfunc_30() override;
/* 34 */ virtual void GetOffsetPos(Vec3p *pos) override;
/* 38 */ virtual unk32 vfunc_38() override;
/* 74 */ virtual void vfunc_74() override;
/* 78 */ virtual bool vfunc_78() override;
/* 80 */ virtual void vfunc_80() override;
/* 84 */ virtual void vfunc_84() override;
/* 90 */ virtual bool vfunc_90() override;
/* 94 */ virtual void vfunc_94() override;
/* a0 */ virtual bool TrySetTransform(Transform *transform) override;
/* b0 */ virtual void SetTransform(Transform *transform) override;
/* b4 */ virtual void vfunc_b4() = 0;
/* b8 */ virtual s32 vfunc_b8();
/* bc */ virtual bool vfunc_bc(unk32 param1, unk8 param2, s32 param3);
/* c0 */ virtual bool vfunc_c0(Vec3p *param1);
/* c4 */ virtual void vfunc_c4();
/* c8 */ virtual void vfunc_c8();
/* cc */ virtual bool vfunc_cc(unk32 *param1);
/* d0 */ virtual void vfunc_d0();
/* d4 */ virtual void vfunc_d4();
/* d8 */ virtual void vfunc_d8();
/* dc */ virtual void SetActive(bool active);
/* e0 */ virtual void vfunc_e0();
/* e4 */ virtual void vfunc_e4();
/* e8 */ virtual void vfunc_e8();
/* ec */ virtual void vfunc_ec();
/* f0 */
void func_ov000_020b8c50();
void func_ov000_020b8c98(unk32 param1, unk32 param2, unk32 param3);
void TeleportAboveLink();
void func_ov000_020b9770(s32 param1);
void func_ov000_020b9fdc();
void func_ov000_020b9fe8();
unk32 func_ov000_020ba204(Vec3p *param1, Vec3p *param2, s32 param3);
unk32 func_ov000_020ba3b4();
void func_ov000_020ba414(Vec3p *param1);
bool func_ov000_020ba458();
void func_ov000_020ba4e4();
void func_ov000_020ba53c();
void func_ov000_020baca8(Vec3p *param1, unk32 param2);
void func_ov000_020bad18();
static void func_ov000_020bb0ac();
static void func_ov000_020bb0e0();
ActorNaviBase();
bool func_ov059_0219933c(u32 param1);
void func_ov059_0219a0ac();
void func_ov059_0219aa08();
void func_ov059_0219aba8(u32 param1);
bool func_ov059_0219af14();
bool func_ov059_0219afc4();
void func_ov059_0219b020();
};
+63
View File
@@ -0,0 +1,63 @@
#pragma once
#include "global.h"
#include "nds/math.h"
#include "types.h"
#include "Actor/Actor.hpp"
#include "Actor/ActorType.hpp"
#include "Player/EquipRope.hpp"
class ActorArrow : public Actor {
public:
static ActorType gType;
/* 000 (base) */
/* 158 */ Vec3p mUnk_158;
/* 164 */ ActorRef mUnk_164;
/* 16c */ unk32 mUnk_16c;
/* 170 */ unk8 mUnk_170[0x14];
/* 184 */ void *mUnk_184;
/* 188 */ unk8 mUnk_188[0x4];
/* 18c */ s32 mUnk_18c;
/* 190 */ s32 mUnk_190;
/* 194 */ s32 mUnk_194;
/* 198 */ s32 mUnk_198;
/* 19c */ unk32 mUnk_19c;
/* 1a0 */ unk32 mSpeed;
/* 1a4 */ unk32 mUnk_1a4;
/* 1a8 */ s32 mUnk_1a8;
/* 1ac */ unk16 mUnk_1ac;
/* 1ae */ s16 mUnk_1ae;
/* 1b0 */ s16 mUnk_1b0;
/* 1b2 */ unk16 mUnk_1b2;
/* 1b4 */ unk8 mUnk_1b4[0x3];
/* 1b7 */ bool mUnk_1b7;
/* 1b8 */
/* 00 */ virtual ~ActorArrow() override;
/* 08 */ virtual bool vfunc_08() override;
/* 10 */ virtual void vfunc_10(u32 param1) override;
/* 14 */ virtual void vfunc_14(u32 param1) override;
/* 18 */ virtual void vfunc_18(u32 param1) override;
/* 20 */ virtual void vfunc_20(bool param1) override;
/* 44 */ virtual bool CollidesWith(Actor *other) override;
/* 48 */ virtual bool vfunc_48(Knockback *param1) override;
/* b4 */
static ActorArrow *Create();
static void func_ov014_0211fd80(unk32 param1);
static void func_ov014_0211fd90();
ActorArrow();
void func_ov014_021200d4();
void func_ov014_02120118();
bool func_ov014_02120180();
static EquipRope *GetEquipRope();
void func_ov014_021207b8(ActorRef *ref, s32 param2, s32 param3);
void func_ov014_02120998(ActorRef *ref, q20 x, q20 y, q20 z, s16 param5);
void func_ov014_02120ac4(unk32 param1, bool param2);
void func_ov014_02120c98(Vec3p *param1);
void func_ov014_02120d58();
void func_ov014_02120da8();
bool func_ov014_02120dec(unk32 param1);
};
+59
View File
@@ -0,0 +1,59 @@
#pragma once
#include "global.h"
#include "nds/math.h"
#include "types.h"
#include "Actor/Actor.hpp"
#include "Actor/ActorType.hpp"
#include "Unknown/UnkStruct_ov000_020beba8.hpp"
class ActorBlast : public Actor {
public:
static ActorType gType;
/* 000 (base) */
/* 158 */ unk8 mUnk_158[0x4];
/* 15c */ s32 mUnk_15c;
/* 160 */ s32 mUnk_160;
/* 164 */
/* 00 */ virtual ~ActorBlast() override;
/* 08 */ virtual bool vfunc_08() override;
/* 14 */ virtual void vfunc_14(u32 param1) override;
/* 18 */ virtual void vfunc_18(u32 param1) override;
/* b4 */
static ActorBlast *Create();
ActorBlast();
};
class ActorBlast_Unk1 : public UnkStruct_ov000_020beba8 {
/* 00 (base) */
/* 0c */ ActorBlast *mBlast;
/* 10 */ Vec3p mUnk_10;
/* 1c */ unk8 mUnk_1c[0x18];
/* 34 */ unk16 mUnk_34;
/* 36 */ unk16 mUnk_36;
/* 38 */ unk16 mUnk_38;
/* 3a */ unk16 mUnk_3a;
/* 3c */ unk16 mUnk_3c;
/* 3e */ unk8 mUnk_3e[0x20];
/* 5e */ unk8 mUnk_5e;
/* 5f */ unk8 mUnk_5f;
/* 60 */ unk8 mUnk_60;
/* 61 */ unk8 mUnk_61;
/* 62 */ unk8 mUnk_62[0x6];
/* 68 */ unk8 mUnk_68;
/* 69 */ unk8 mUnk_69;
/* 6a */ unk8 mUnk_6a;
/* 6b */ unk8 mUnk_6b;
/* 6c */ unk8 mUnk_6c;
/* 6d */ unk8 mUnk_6d;
/* 6e */ unk8 mUnk_6e[0x2];
/* 70 */
/* 00 */ virtual ~ActorBlast_Unk1();
/* 10 */ virtual void vfunc_10(s32 *param1);
/* 18 */
};
+73
View File
@@ -0,0 +1,73 @@
#pragma once
#include "global.h"
#include "nds/math.h"
#include "types.h"
#include "Actor/Actor.hpp"
#include "Actor/ActorType.hpp"
#include "Unknown/UnkStruct_ov000_020beba8.hpp"
class ActorBomb_Unk1 : public UnkStruct_ov000_020beba8 {
public:
/* 00 (base) */
/* 0c */ unk32 mUnk_0c;
/* 10 */
/* 00 */ virtual ~ActorBomb_Unk1() override;
/* 08 */ virtual void vfunc_0c(unk16 *param1) override;
/* 0c */ virtual void vfunc_10(s32 *param1) override;
/* 18 */
};
class ActorBomb_Unk2 {
/* 0 */ unk32 mUnk_0;
/* 4 */ unk32 mUnk_4;
/* 8 */ unk32 mUnk_8;
/* c */
ActorBomb_Unk2();
~ActorBomb_Unk2();
};
class ActorBomb : public Actor {
public:
static ActorType gType;
/* 000 (base) */
/* 158 */ unk8 mUnk_158[0x7c];
/* 1c4 */ unk32 mUnk_1c4;
/* 1c8 */ void *mUnk_1c8;
/* 1cc */ unk8 mUnk_1cc[0x24];
/* 230 */ unk32 mUnk_230;
/* 234 */ unk32 mUnk_234;
/* 238 */ unk8 mUnk_238[0x4];
/* 23c */ unk32 mUnk_23c;
/* 240 */ unk32 mUnk_240;
/* 244 */ unk32 mUnk_244;
/* 248 */ unk8 mUnk_248[0xc];
/* 254 */ unk32 mUnk_254;
/* 258 */ unk32 mUnk_258;
/* 25c */ unk32 mUnk_25c;
/* 260 */ unk32 mUnk_260;
/* 264 */ unk8 mUnk_264[0x8];
/* 26c */
/* 00 */ virtual ~ActorBomb() override;
/* 08 */ virtual bool vfunc_08() override;
/* 14 */ virtual void vfunc_14(u32 param1) override;
/* 18 */ virtual void vfunc_18(u32 param1) override;
/* 20 */ virtual void vfunc_20(bool param1) override;
/* 54 */ virtual void vfunc_54() override;
/* 5c */ virtual bool SetVelocity(Vec3p *vel) override;
/* b4 */
static ActorBomb *Create();
ActorBomb();
bool func_ov014_02122bb8(s32 param1);
bool func_ov014_02122e48(unk32 *param1);
bool func_ov014_02122e7c();
bool func_ov014_02122e98();
bool func_ov014_02122eb8();
bool func_ov014_02122ed4();
};
+71
View File
@@ -0,0 +1,71 @@
#pragma once
#include "global.h"
#include "nds/math.h"
#include "types.h"
#include "Actor/Actor.hpp"
#include "Actor/ActorType.hpp"
#include "Unknown/UnkStruct_ov000_020beba8.hpp"
class ActorRope_Unk_0219a3b0 : public UnkStruct_ov000_020beba8 {
public:
/* 0 (base) */
/* c */
/* 00 */ virtual ~ActorRope_Unk_0219a3b0() override;
/* 08 */ virtual void vfunc_08(unk16 *param1) override;
/* 10 */ virtual void vfunc_10(s32 *param1) override;
/* 1c */
inline ActorRope_Unk_0219a3b0() :
UnkStruct_ov000_020beba8(6) {}
};
class ActorRope : public Actor {
public:
static ActorType gType;
/* 000 (base) */
/* 158 */ unk8 mUnk_158[0xc];
/* 164 */ unk16 mUnk_164;
/* 166 */ unk16 mUnk_166;
/* 168 */ s16 mUnk_168;
/* 16a */ unk8 mUnk_16a;
/* 16b */ unk8 mUnk_16b;
/* 16c */ unk8 mUnk_16c;
/* 16d */ unk8 mUnk_16d;
/* 16e */ unk16 mUnk_16e;
/* 170 */ u16 mUnk_170;
/* 172 */ unk8 mUnk_172[0x2];
/* 174 */ Vec3p mUnk_174;
/* 180 */ Vec3p mUnk_180;
/* 18c */ unk8 mUnk_18c[0x4];
/* 190 */ Vec3p mUnk_190;
/* 19c */ u32 mUnk_19c;
/* 1a0 */
/* 00 */ virtual ~ActorRope() override;
/* 08 */ virtual bool vfunc_08() override;
/* 10 */ virtual void vfunc_10(u32 param1) override;
/* 14 */ virtual void vfunc_14(u32 param1) override;
/* 18 */ virtual void vfunc_18(u32 param1) override;
/* 20 */ virtual void vfunc_20(bool param1) override;
/* b4 */
static ActorRope *Create();
static void func_ov014_0212382c(Vec4p *vec);
static q20 func_ov014_0212384c();
s32 func_ov014_021238f0();
void func_ov014_02123904();
bool func_ov014_02123960();
void func_ov014_02123c54(s32 param1);
bool func_ov014_02123cd0(Vec3p *param1, s32 param2);
bool func_ov014_02123e1c();
bool func_ov014_02123e48(unk32 param1);
ActorRope();
q20 func_ov057_0219a5ac();
void func_ov057_0219a6b8();
void func_ov057_0219a850();
};
+60 -1
View File
@@ -3,4 +3,63 @@
#include "global.h"
#include "types.h"
class CutsceneHandler;
#include <nds/math.h>
#include "Render/FadeControl.hpp"
class CutsceneHandler {
public:
/* 00 */ u32 mFlags1;
/* 04 */ u32 mFlags2;
/* 08 */ bool mCutsceneActive;
/* 09 */ bool mSkipping;
/* 0a */ bool mUnk_0a;
/* 0b */ unk8 mUnk_0b;
/* 0c */ unk32 mCutsceneTimer1;
/* 10 */ unk32 mCutsceneTimer2;
/* 14 */ unk32 mCutsceneEnd;
/* 18 */ unk32 mFreeze;
/* 1c */ u32 mUnk_1c;
/* 20 */ unk8 mUnk_20;
/* 21 */ char mUnk_21;
/* 22 */ unk8 mUnk_22;
/* 23 */ unk8 mUnk_23;
/* 24 */ unk16 mUnk_24;
/* 26 */ unk8 mUnk_26[0x2];
/* 28 */ s32 mUnk_28;
/* 2c */ s32 mUnk_2c;
/* 30 */ unk32 mUnk_30;
/* 34 */ unk32 mUnk_34;
/* 38 */ unk32 mUnk_38;
/* 3c */ unk32 mUnk_3c;
/* 40 */ unk32 mUnk_40;
/* 44 */ unk32 mUnk_44;
/* 48 */ unk16 mUnk_48;
/* 4a */ unk8 mUnk_4a[0x2];
/* 4c */ Mat4x3p mUnk_4c;
/* 7c */ FadeControl *mFadeControl;
/* 80 */ s32 **mUnk_80;
/* 84 */ s32 *mUnk_84;
/* 88 */ s32 mUnk_88;
/* 8c */
s32 func_ov000_020980fc(unk32 param1, unk32 param2, void **param3);
bool func_ov000_02098114();
bool SkipCutscene(s32 param1);
unk32 func_ov000_020981b8(unk32 *param1);
void func_ov000_020985c0();
void func_ov000_020985c4();
void func_ov000_02098618(s32 param1, unk32 param2, void **param3);
void func_ov000_02098658();
bool func_ov000_02098694(unk32 param1);
bool func_ov000_020987c4(unk32 param1, unk16 param2, unk32 param3, unk32 param4, bool param5);
bool func_ov000_02098834();
bool func_ov000_02098860();
unk32 func_ov000_02098890(unk32 param1, s32 param2);
static unk32 func_ov000_02098920(unk32 param1);
CutsceneHandler();
~CutsceneHandler();
void func_ov004_0210f3e4(s32 param1);
void func_ov004_0210f46c();
};
+9
View File
@@ -8,6 +8,15 @@ struct UnkStruct_027e05f8 {
/* 2 */ unk16 mUnk_2;
/* 4 */ unk16 mUnk_4;
/* 6 */
void func_0202adf4(unk32 param1, s32 param2);
~UnkStruct_027e05f8();
// Big gap to next TU
UnkStruct_027e05f8();
void func_02037458(u16 param1);
void func_02037480();
static unk32 func_02037490(unk32 param1);
};
extern UnkStruct_027e05f8 data_027e05f8;
+3
View File
@@ -9,6 +9,9 @@ struct UnkStruct_027e077c {
/* 8 */ unk16 mUnk_8;
/* a */ unk8 mUnk_a;
/* b */
UnkStruct_027e077c(unk32 param1);
bool func_0202e740(unk32 param1);
};
extern UnkStruct_027e077c data_027e077c;
+2
View File
@@ -23,6 +23,8 @@ struct UnkStruct_027e0d38 {
/* 2c */
s32 func_ov000_02078b40();
unk8 func_ov000_02078b64();
bool func_ov000_02078b88();
};
extern UnkStruct_027e0d38 *data_027e0d38;
+130
View File
@@ -0,0 +1,130 @@
#pragma once
#include "global.h"
#include "types.h"
#include "Actor/Actor.hpp"
#include "Physics/Cylinder.hpp"
#include "Unknown/UnkStruct_ov000_020b1528.hpp"
class UnkStruct_027e0fd4_Unk1 {
public:
/* 00 (vtable) */
/* 04 */ unk8 mUnk_04;
/* 08 */ Vec3p mUnk_08;
/* 14 */
/* 00 */ virtual ~UnkStruct_027e0fd4_Unk1();
/* 08 */ virtual void vfunc_08(u16 *param1, unk32 param2, u32 param3);
/* 0c */ virtual unk32 vfunc_0c();
/* 10 */ virtual bool vfunc_10(s32 *param1);
/* 14 */ virtual bool vfunc_14();
/* 18 */
};
class UnkStruct_027e0fd4 : public UnkStruct_ov000_020b1528 {
public:
/* 000 (base) */
/* 01c */ unk8 mUnk_018[0x4];
/* 020 */ Cylinder mUnk_020;
/* 030 */ s32 mUnk_030;
/* 034 */ s32 mUnk_034;
/* 038 */ s32 mUnk_038;
/* 03c */ s32 mUnk_03c;
/* 040 */ s32 mUnk_040;
/* 044 */ Vec3p mUnk_044;
/* 050 */ s32 mUnk_050;
/* 054 */ unk8 mUnk_054[0x6];
/* 05a */ unk16 mUnk_05a;
/* 05c */ unk16 mUnk_05c;
/* 05e */ unk16 mUnk_05e;
/* 060 */ unk16 mUnk_060;
/* 062 */ unk8 mUnk_062[0x2];
/* 064 */ s32 mUnk_064;
/* 068 */ s32 mUnk_068;
/* 06c */ s32 mUnk_06c;
/* 070 */ unk32 mUnk_070;
/* 074 */ unk32 mUnk_074;
/* 078 */ unk8 mUnk_078[0x18];
/* 090 */ unk32 mUnk_090;
/* 094 */ u32 mUnk_094;
/* 098 */ s32 mUnk_098;
/* 09c */ unk32 mUnk_09c;
/* 0a0 */ u16 mUnk_0a0;
/* 0a2 */ s16 mUnk_0a2;
/* 0a4 */ unk16 mUnk_0a4;
/* 0a6 */ unk16 mUnk_0a6;
/* 0a8 */ unk16 mUnk_0a8;
/* 0aa */ unk8 mUnk_0aa[0x2];
/* 0ac */ unk32 mUnk_0ac;
/* 0b0 */ unk32 mUnk_0b0;
/* 0b4 */ unk32 mUnk_0b4;
/* 0b8 */ unk8 mUnk_0b8;
/* 0b9 */ bool mUnk_0b9;
/* 0ba */ bool mUnk_0ba;
/* 0bb */ unk8 mUnk_0bb[0x5];
/* 0c0 */ unk32 mUnk_0c0;
/* 0c4 */ u8 mUnk_0c4;
/* 0c5 */ u8 mUnk_0c5;
/* 0c6 */ s16 mUnk_0c6;
/* 0c8 */ unk16 mUnk_0c8;
/* 0ca */ u16 mUnk_0ca;
/* 0cc */ u8 mUnk_0cc;
/* 0cd */ bool mUnk_0cd;
/* 0ce */ u8 mUnk_0ce;
/* 0cf */ unk8 mUnk_0cf;
/* 0d0 */ u32 mUnk_0d0;
/* 0d4 */ s32 mUnk_0d4;
/* 0d8 */ s32 mUnk_0d8;
/* 0dc */ s32 mUnk_0dc;
/* 0e0 */ Actor *mUnk_0e0;
/* 0e4 */ unk32 mUnk_0e4;
/* 0e8 */ unk32 mUnk_0e8;
/* 0ec */ unk32 mUnk_0ec;
/* 0f0 */ unk32 mUnk_0f0;
/* 0f4 */ unk32 mUnk_0f4;
/* 0f8 */ unk32 mUnk_0f8;
/* 0fc */ s32 mUnk_0fc;
/* 100 */ s32 mUnk_100;
/* 104 */ s32 mUnk_104;
/* 108 */ unk32 mUnk_108;
/* 10c */ unk32 mUnk_10c;
/* 110 */ unk32 mUnk_110;
/* 114 */ unk32 mUnk_114;
/* 118 */ unk32 mUnk_118;
/* 11c */ s32 mUnk_11c;
/* 120 */ Vec3p mUnk_120;
/* 12c */
/* 00 */ virtual ~UnkStruct_027e0fd4() override;
/* 08 */ virtual bool vfunc_08() override;
/* 0c */ virtual bool vfunc_0c() override;
/* 10 */ virtual bool vfunc_10(s32 *param1) override;
/* 14 */ virtual bool vfunc_14(u16 *index, unk32 param2) override;
/* 18 */ virtual void Clear() override;
/* 1c */ virtual void vfunc_1c();
/* 20 */
UnkStruct_027e0fd4();
s32 func_Ov000_020b4c2c();
void func_ov000_020b4c4c(Vec3p *param1, s32 size);
void func_ov000_020b4d00();
unk32 func_ov000_020b4d28(u32 *param1, s32 *param2, s32 *param3);
unk32 func_ov000_020b5034(Vec3p *param1);
bool func_ov000_020b50e0();
bool func_ov000_020b50f8();
unk32 func_ov000_020b510c();
void func_ov000_020b5160(u32 *param1, u32 param2);
bool func_ov000_020b5268(unk32 param1, Vec3p *param2, unk32 param3);
u32 func_ov000_020b5360(s32 param1, s32 param2);
void func_ov000_020b53c4(unk32 *param1);
bool func_ov000_020b53f4(unk32 param1, unk32 param2, u32 param3);
static void func_ov000_020b5420(unk32 *param1, UnkStruct_027e0fd4 *param2);
void func_ov000_020b542c(u32 param1);
void func_ov000_020b54c8();
void func_ov000_020b5514(Vec3p *param1, Vec3p *param2);
void func_ov000_020b5cb4(Vec3p *param1, Vec3p *param2, s32 *param3, s32 *param4);
s32 func_ov000_020b6af0(unk32 *param1);
void func_ov000_020b6ba4(s32 param1, s32 param2);
bool func_ov000_020b6e70();
};
+13
View File
@@ -0,0 +1,13 @@
#pragma once
#include "global.h"
#include "types.h"
struct UnkStruct_027e0fe0 {
// TODO: Add fields
void Init();
void Dispose();
void func_0202ea50(unk32 param1, unk32 param2, unk32 param3);
void func_0202ea98();
};
+114 -1
View File
@@ -16,13 +16,126 @@ struct UnkStruct_027e103c {
/* 20 */ unk16 mUnk_20;
/* 22 */ s16 mUnk_22;
/* 24 */ u8 mUnk_24;
/* 25 */ unk8 mUnk_25[5];
/* 25 */ unk8 mUnk_25[0x5];
/* 2a */ unk8 mUnk_2a;
/* 2b */ unk8 mUnk_2b;
/* 2c */
void *func_ov000_020cef9c();
unk32 func_ov000_020cefbc();
unk32 func_ov000_020cefdc();
unk32 func_ov000_020ceffc();
unk32 func_ov000_020cf01c();
unk32 func_ov000_020cf03c();
unk32 func_ov000_020cf05c();
unk32 func_ov000_020cf07c();
unk32 func_ov000_020cf09c();
unk32 func_ov000_020cf0bc();
unk32 func_ov000_020cf0dc();
unk32 func_ov000_020cf0fc();
unk32 func_ov000_020cf11c();
void func_ov000_020cf13c(s32 param1);
void func_ov000_020cf1b8();
void func_ov000_020cf1d4(unk32 param1);
void func_ov000_020cf20c();
void func_ov000_020cf224(unk32 param1);
void func_ov000_020cf238(unk32 param1, unk32 param2);
bool func_ov000_020cf270(u16 param1);
void func_ov000_020cf284(u16 param1, s32 param2);
void func_ov000_020cf2a0(u32 param1);
void func_ov000_020cf2b8();
void func_ov000_020cf2d8();
void func_ov000_020cf2f8();
void func_ov000_020cf330();
void func_ov000_020cf348();
s32 func_ov000_020cf374(bool param1);
void func_ov000_020cf384();
void func_ov000_020cf398();
void func_ov000_020cf3b8();
void func_ov000_020cf3c8();
void func_ov000_020cf3dc();
void func_ov000_020cf3f0();
void func_ov000_020cf404();
void func_ov000_020cf414();
void func_ov000_020cf42c();
bool func_ov000_020cf444();
bool func_ov000_020cf488();
bool func_ov000_020cf4bc();
bool func_ov000_020cf4d8();
bool func_ov000_020cf4f4();
bool func_ov000_020cf518();
bool func_ov000_020cf534();
bool func_ov000_020cf550();
bool func_ov000_020cf678();
bool func_ov000_020cf750();
bool func_ov000_020cf7c4();
void func_ov000_020cf7e8();
u32 func_ov000_020cf864(u32 param1);
bool func_ov000_020cf8fc(u32 param1);
bool func_ov000_020cf948();
void func_ov000_020cf9dc(s32 param1, s32 param2);
void func_ov000_020cfa24(s32 param1, s32 param2);
unk8 func_ov000_020cfa64();
void func_ov000_020cfa70(s32 param1, s32 param2);
unk8 func_ov000_020cfab0();
void func_ov000_020cfabc(s32 param1, s32 param2);
void func_ov000_020cfae8(s32 param1, s32 param2);
void func_ov000_020cfb20(unk32 param1);
void func_ov000_020cfb38();
void func_ov000_020cfb48();
void func_ov000_020cfb58();
void func_ov000_020cfb68();
void func_ov000_020cfb84();
void func_ov000_020cfb94();
unk32 func_ov000_020cfbb0();
void func_ov000_020cfbd8(unk8 param1);
void func_ov000_020cfbf0(unk32 param1, unk32 param2, unk32 param3);
void func_ov000_020cfc20();
void func_ov000_020cfc44(unk32 param1);
void func_ov000_020cfc70(unk32 param1);
void func_ov000_020cfc9c(unk32 param1, unk32 param2);
void func_ov000_020cfcec();
bool func_ov000_020cfcf8();
void func_ov000_020cfde4(unk32 param1);
void func_ov000_020cfe10(unk8 param1);
void func_ov000_020cfe40(unk8 param1, unk32 param2);
void func_ov000_020cfe74(unk32 param1, unk32 param2);
unk32 func_ov000_020cfea8();
UnkStruct_027e103c();
~UnkStruct_027e103c();
static void Create();
static void Destroy();
void func_ov004_02104d68();
static bool func_ov004_02104f5c();
void func_ov004_02104f78();
void func_ov004_02104fa8();
void func_ov004_02104fb8();
void func_ov004_02104ffc(unk32 param1, unk32 param2);
void func_ov004_0210504c();
void func_ov005_02103f20();
void func_ov005_02103f3c();
bool func_ov005_02103f4c();
void func_ov005_02103f70();
void func_ov005_02103f80(unk8 param1);
void func_ov005_02103f8c(char *param1);
void func_ov005_02103fb4();
void func_ov005_02103fc8(unk8 param1);
void func_ov005_02103fd8();
void func_ov005_02103ff0();
void WalletFull();
void func_ov005_02104104();
void func_ov005_02104028(bool param1);
void func_ov005_02104058();
void func_ov005_02104070();
void func_ov005_02104088(unk32 param1);
void func_ov005_021040c8();
bool func_ov005_021040ec();
void func_ov005_02104114();
void func_ov005_0210413c();
void func_ov005_02104160();
void func_Ov005_0210418c(char param1);
};
extern UnkStruct_027e103c *data_027e103c;
+2 -10
View File
@@ -10,14 +10,6 @@ public:
/* 00 (base) */
/* 08 */
/* 00 */ virtual void vfunc_00();
/* 04 */ virtual void vfunc_04();
/* 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();
/* 1c */ virtual void vfunc_1c();
/* 20 */ virtual void vfunc_20(unk32 param1, const char *param2, unk32 param3, unk32 param4, unk32 param5, unk32 param6);
/* 24 */
/* 00 */ virtual ~DebugHierarchy() override;
/* 40 */
};
+22
View File
@@ -3,10 +3,32 @@
#include "global.h"
#include "types.h"
#include "Debug/DebugHierarchyNode.hpp"
#include "System/SysNew.hpp"
class DebugHierarchyBase : public SysObject {
public:
/* 00 (vtable) */
/* 04 */ void *mNodes;
/* 08 */
/* 00 */ virtual ~DebugHierarchyBase();
/* 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();
/* 1c */ virtual void vfunc_1c();
/* 20 */ virtual void vfunc_20(unk32 param1, const char *param2, unk32 param3, unk32 param4, unk32 param5, unk32 param6);
/* 24 */ virtual void vfunc_24();
/* 28 */ virtual void vfunc_28();
/* 2c */ virtual void vfunc_2c();
/* 30 */ virtual void vfunc_30();
/* 34 */ virtual bool GetChildNode(unk32 param1, const char *description, u32 parent, s32 *param4);
/* 38 */ virtual void vfunc_38();
/* 3c */ virtual void vfunc_3c();
/* 40 */
DebugHierarchyBase();
DebugHierarchyNode *FindNode(u32 id);
};
+11
View File
@@ -0,0 +1,11 @@
#pragma once
#include "global.h"
#include "types.h"
class DebugHierarchyChild {
public:
/* 00 */ char mUnk_00[0xc];
/* 0c */ s32 mUnk_0c;
/* 10 */
};
+19
View File
@@ -0,0 +1,19 @@
#pragma once
#include "global.h"
#include "types.h"
#include "Debug/DebugHierarchyChild.hpp"
class DebugHierarchyNode {
public:
/* 00 */ u32 mNodeId;
/* 04 */ u32 mUnk_04;
/* 08 */ u32 mUnk_08;
/* 0c */ unk8 mUnk_0c[0x4];
/* 10 */ u32 mId;
/* 14 */ s32 mUnk_14;
/* 18 */ unk8 mUnk_18[0x8];
/* 20 */ DebugHierarchyChild mChildren;
/* 30 */
};
+73
View File
@@ -2,6 +2,8 @@
#include "types.h"
#define MAX_POTIONS 2
typedef s32 ItemFlag;
enum ItemFlag_ {
ItemFlag_None = -1,
@@ -233,6 +235,77 @@ enum ItemId_ {
/* 0x88 */ ItemId_Unk_136 = 136,
};
enum Gem {
Gem_Courage,
Gem_Power,
Gem_Wisdom,
Gem_COUNT,
};
typedef u32 ShipPart;
enum ShipPart_ {
ShipPart_Anchor,
ShipPart_Prow,
ShipPart_Hull,
ShipPart_Cannon,
ShipPart_Handrail,
ShipPart_Wheel,
ShipPart_Chimney,
ShipPart_Bridge,
ShipPart_COUNT,
};
typedef u32 ShipType;
enum ShipType_ {
ShipType_Linebeck,
ShipType_Bright,
ShipType_Iron,
ShipType_Stone,
ShipType_Vintage,
ShipType_Demon,
ShipType_Tropical,
ShipType_Dignified,
ShipType_Golden,
ShipType_COUNT,
};
typedef u32 ShipItem;
#define SHIP_ITEM(part, ship) (ShipPart_##part * ShipPart_COUNT + ShipType_##type)
#define ShipItem_COUNT (ShipPart_COUNT * ShipType_COUNT)
typedef u32 Treasure;
enum Treasure_ {
Treasure_PinkCoral,
Treasure_WhitePearlLoop,
Treasure_DarkPearlLoop,
Treasure_ZoraScale,
Treasure_GoronAmber,
Treasure_RutoCrown,
Treasure_HelmarocPlume,
Treasure_RegalRing,
Treasure_COUNT,
};
typedef u8 Potion;
enum Potion_ {
Potion_None,
Potion_Red,
Potion_Purple,
Potion_Yellow,
Potion_COUNT,
};
struct ItemFlags {
/* 00 */ u32 flags[CEIL_DIV(ItemFlag_COUNT, 32)];
/* 10 */
};
struct ShipPartPricesShown {
/* 0 */ u32 flags[CEIL_DIV(ShipItem_COUNT, 32)];
/* c */
};
namespace Item {
bool func_ov00_020ad020(ItemId item);
bool func_ov00_020ad068(ItemId item);
+10 -109
View File
@@ -5,25 +5,20 @@ extern "C" {
}
#include "global.h"
#include "lib/math.h"
#include "nds/math.h"
#include "types.h"
#include "Actor/ActorNaviBase.hpp"
#include "DTCM/UnkStruct_027e0f78.hpp"
#include "Actor/Navi/ActorNaviBase.hpp"
#include "Item/Item.hpp"
#include "Map/MapManager.hpp"
#include "Player/EquipItem.hpp"
#include "Player/HealthManager.hpp"
#include "Render/ModelRender.hpp"
#include "Save/AdventureFlags.hpp"
#include "Save/SaveItemManager.hpp"
#include "Sound/Sfx.hpp"
#include "System/OverlayManager.hpp"
#include "System/SysNew.hpp"
#define MAX_HOURGLASS_SECONDS 1500 // 25 minutes
#define MAX_AMMO_UPGRADE 2
#define MAX_UNK_0BA 9
#define MAX_POTIONS 2
typedef s32 FairyId;
enum FairyId_ {
@@ -34,78 +29,6 @@ enum FairyId_ {
FairyId_COUNT = 3,
};
enum Gem {
Gem_Courage,
Gem_Power,
Gem_Wisdom,
Gem_COUNT,
};
typedef u32 ShipPart;
enum ShipPart_ {
ShipPart_Anchor,
ShipPart_Prow,
ShipPart_Hull,
ShipPart_Cannon,
ShipPart_Handrail,
ShipPart_Wheel,
ShipPart_Chimney,
ShipPart_Bridge,
ShipPart_COUNT,
};
typedef u32 ShipType;
enum ShipType_ {
ShipType_Linebeck,
ShipType_Bright,
ShipType_Iron,
ShipType_Stone,
ShipType_Vintage,
ShipType_Demon,
ShipType_Tropical,
ShipType_Dignified,
ShipType_Golden,
ShipType_COUNT,
};
typedef u32 ShipItem;
#define SHIP_ITEM(part, ship) (ShipPart_##part * ShipPart_COUNT + ShipType_##type)
#define ShipItem_COUNT (ShipPart_COUNT * ShipType_COUNT)
typedef u32 Treasure;
enum Treasure_ {
Treasure_PinkCoral,
Treasure_WhitePearlLoop,
Treasure_DarkPearlLoop,
Treasure_ZoraScale,
Treasure_GoronAmber,
Treasure_RutoCrown,
Treasure_HelmarocPlume,
Treasure_RegalRing,
Treasure_COUNT,
};
#define NUM_POTIONS 2
typedef u8 Potion;
enum Potion_ {
Potion_None,
Potion_Red,
Potion_Purple,
Potion_Yellow,
Potion_COUNT,
};
struct ItemFlags {
/* 00 */ u32 flags[CEIL_DIV(ItemFlag_COUNT, 32)];
/* 10 */
};
struct ShipPartPricesShown {
/* 0 */ u32 flags[CEIL_DIV(ShipItem_COUNT, 32)];
/* c */
};
typedef u32 ItemModelId;
enum ItemModelId_ {
ItemModelId_OshusSword, // swA
@@ -136,35 +59,6 @@ enum DungeonItemModelId_ {
DungeonItemModelId_COUNT,
};
struct SaveItemManager {
/* 00 */ ItemFlags itemFlags;
/* 10 */ u32 salvagedTreasureFlags;
/* 14 */ ShipPartPricesShown shipPartPricesShown;
/* 20 */ u32 treasurePriceShownFlags[CEIL_DIV(Treasure_COUNT, 32)];
/* 24 */ u8 equippedShipParts[ShipPart_COUNT];
/* 2c */ s8 shipParts[ShipPart_COUNT][ShipType_COUNT];
/* 74 */ s8 treasure[Treasure_COUNT];
/* 7c */ unk8 unk_7c[4];
/* 80 */ u16 hourglassSeconds;
/* 82 */ u16 unk_82[6];
/* 8e */ u16 numRupees;
/* 90 */ unk8 unk_90;
/* 91 */ unk8 unk_91;
/* 92 */ unk8 unk_92;
/* 93 */ u8 numBombs;
/* 94 */ u8 numBombchus;
/* 95 */ u8 numArrows;
/* 96 */ s8 equippedItem;
/* 97 */ Potion potions[NUM_POTIONS];
/* 99 */ u8 numGems[Gem_COUNT];
/* 9c */ u8 quiverSize;
/* 9d */ u8 bombBagSize;
/* 9e */ u8 bombchuBagSize;
/* 9f */ u8 unk_9f[6];
/* a5 */ u8 equippedFairy;
/* a6 */
};
class ItemManager : public SysObject {
public:
/* 000 */ ItemFlag mEquippedItem;
@@ -211,6 +105,7 @@ public:
static void Destroy();
ItemManager();
~ItemManager();
void Init();
// Save/load
void Save(SaveItemManager *save);
@@ -221,6 +116,7 @@ public:
ActorNaviBase *GetFairy(FairyId id) const;
u32 GetActiveFairyLevel(FairyId id) const;
u32 GetFairyLevel(FairyId id) const;
void SpawnFairies();
// Equip item
void ClearPrevEquippedItem();
@@ -239,6 +135,11 @@ public:
bool ClearForcedEquipItem();
void UpdateSwordShieldInUse();
static EquipItem *GetEquipItemUnchecked(ItemFlag equipId);
void InitEquipItems();
void func_ov004_02107648();
void func_ov004_02107650();
void func_ov004_02107698();
void func_ov004_021076bc();
// Ammo
u16 GetAmmo(ItemFlag equipId) const;
+29
View File
@@ -0,0 +1,29 @@
#pragma once
#include "global.h"
#include "types.h"
class ItemModelLoader {
public:
/* 00 */ unk32 mItems;
/* 04 */ unk32 mDungeonItems;
/* 08 */ unk32 mUnk_08;
/* 0c */ unk8 mUnk_0c[0x14];
/* 20 */
ItemModelLoader();
ItemModelLoader *func_ov000_020bb2ec();
unk32 func_ov000_020bb34c();
void func_ov000_020bb378(s32 param1);
unk32 func_ov000_020bb390(s32 equipId);
unk32 func_ov000_020bb3a8(s32 param1);
s32 func_ov000_020bb3b4(s32 param1, char *param2);
unk32 func_ov000_020bb3d4(s32 param1, unk32 param2);
void func_ov000_020bb3f4(char *param2);
void func_ov000_020bb414(unk32 param1);
void func_ov000_020bb420(unk32 param1);
void func_ov000_020bb42c(unk32 param1);
static void Create();
static void Destroy();
};
+1 -1
View File
@@ -3,7 +3,7 @@
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "nds/math.h"
#include "System/SysNew.hpp"
+9
View File
@@ -111,4 +111,13 @@ class Course : public SysObject {
bool GetMapDataFlag4(unk32 param_2);
MapData *FindMapData(u32 map);
MapData *FindCurrentMapData();
Course();
~Course();
bool func_ov004_0210ee84(char *param1);
unk32 func_ov004_0210ef90(unk32 param1);
void func_ov004_0210f010();
void LoadMapData(u8 *map, s32 x, s32 y, char param4, unk32 param5);
bool func_ov004_0210f0fc(unk32 param1, unk16 *param2, s32 param3);
void func_ov004_0210f140(s32 param1);
};
+1 -1
View File
@@ -3,7 +3,7 @@
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "nds/math.h"
#include "System/SysNew.hpp"
+9 -1
View File
@@ -5,7 +5,7 @@
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "nds/math.h"
#include "Map/CameraViewpoint.hpp"
#include "Map/Course.hpp"
@@ -25,6 +25,7 @@ struct MapBase_Unk_180 {
/* 4 */
~MapBase_Unk_180();
MapBase_Unk_180();
};
struct MapBase_Unk1 {
@@ -234,4 +235,11 @@ public:
void func_ov00_02080de4();
unk8 func_ov00_02080de8(unk32 param_2);
void func_ov00_02080edc();
MapBase(u32 param1, u32 param2);
void func_ov004_0210c118();
void func_ov004_0210cb1c();
void func_ov004_0210cb38();
void func_ov004_0210cc20(Course *course);
void func_ov004_0210cc58(Course *course, u32 map);
};
+21 -5
View File
@@ -3,7 +3,7 @@
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "nds/math.h"
#include "System/SysNew.hpp"
@@ -16,13 +16,29 @@ public:
/* 06 */ unk8 mUnk_06[2];
/* 08 */ unk32 mUnk_08;
/* 0c */ unk32 mUnk_0c;
/* 10 */ unk8 mUnk_10[4];
/* 10 */ unk8 mGridX;
/* 11 */ unk8 mGridY;
/* 12 */ unk8 mUnk_12[2];
/* 14 */ Vec3p mCenter;
/* 20 */ unk32 mFlags0[1];
/* 24 */ unk32 mFlags1[8];
/* 44 */ unk32 mFlags2[2];
/* 4c */ unk32 mFlags3[1];
/* 50 */ unk32 mUnk_50;
/* 54 */ unk32 mUnk_54;
/* 4c */ unk32 mFlags3[2];
/* 54 */ unk32 mFlags4[1];
/* 58 */
MapData(u8 *map, unk8 x, unk8 y, unk32 param4, unk32 param5);
~MapData();
void func_ov000_020972e4(u16 *param1, unk32 *param2, bool param3);
void func_ov000_02097354();
void SetFlag0(u32 index, bool value);
bool GetFlag0(u32 index);
void SetFlag1(u32 index, bool value);
bool GetFlag1(u32 index);
void SetFlag2(u32 index, bool value);
bool GetFlag2(u32 index);
void SetFlag3(u32 index, bool value);
bool GetFlag3(u32 index);
void SetFlag4(u32 index, bool value);
bool GetFlag4(u32 index);
};
+17 -2
View File
@@ -3,7 +3,7 @@
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "nds/math.h"
#include "Map/Course.hpp"
#include "Map/MapBase.hpp"
@@ -40,6 +40,11 @@ public:
/* 0f */ unk8 mUnk_0f;
/* 10 */
bool func_01ffbe78(Vec3p *param1, Vec3p *param2, Vec3p *param3, Vec4p *param4);
bool func_01ffbf5c(s32 param1, Vec3p *param2, Vec3p *param3, s32 length);
bool func_01ffc118(s32 *param1, Vec3p *param2, Vec3p *param3, s32 param4, s32 *param5, u32 param6, s32 *param7);
bool func_01ffd1e0(s32 *param1, Vec3p *param2, Vec3p *param3, s32 param4, s32 *param5, u32 param6, s32 *param7);
void func_ov00_020820ec(unk32 *param_2);
void func_ov00_020820fc(s32 param_2, unk32 param_3, unk32 param_4);
unk8 func_ov00_0208210c(unk32 param_2, unk32 param_3);
@@ -172,7 +177,7 @@ public:
unk8 MapData_vfunc_6c();
unk8 MapData_vfunc_70();
static unk8 func_ov00_02083fb0(u32 *param_1, MapManager *param_2, Vec3p *param_3);
void func_ov00_02084024(unk32 param_2, AABB *param_3);
void GetTileWorldBounds(Vec2b *tile, AABB *tileBounds);
unk8 MapData_vfunc_54();
unk8 func_ov00_020840a0(unk8 param_2, unk8 param_3, unk32 param_4);
unk8 MapData_vfunc_78();
@@ -240,6 +245,16 @@ public:
Vec3p *param_8);
bool func_ov00_02086a84(s32 *param_2, Vec3p *param_3, Vec3p *param_4, s32 param_5, s32 param_6, unk32 param_7,
Vec3p *param_8, Vec3p *param_9);
MapManager();
~MapManager();
static void Create();
static void Destroy();
static void LoadMapTexSprites(s32 param1);
void func_ov004_02102260();
void func_ov004_02102264(unk32 *param1, char *param2);
void func_ov004_021024c4(s32 param1, unk32 param2, unk32 param3);
void func_ov004_021025d8();
};
extern MapManager *gMapManager;
+9
View File
@@ -7,7 +7,16 @@
#include "Physics/AABB.hpp"
class TriggerAABB : public TriggerBase {
public:
/* 00 (base) */
/* 14 */ AABB mAABB;
/* 2c */
/* 00 */ virtual ~TriggerAABB() override;
/* 14 */ virtual bool Overlaps(Vec3p *point) override;
/* 18 */ virtual bool GetBoundingBox(AABB *bbox) override;
/* 1c */
TriggerAABB(TriggerParams *params);
TriggerAABB(u8 id, u32 param2, u32 param3, u32 param4);
};
+7
View File
@@ -6,6 +6,7 @@
#include "Map/TriggerAABB.hpp"
class TriggerAABB_Unk1 : public TriggerAABB {
public:
/* 00 (base) */
/* 2c */ unk8 mUnk_2c;
/* 2d */ unk8 mUnk_2d[3];
@@ -17,4 +18,10 @@ class TriggerAABB_Unk1 : public TriggerAABB {
/* 3c */ unk32 mUnk_3c;
/* 40 */ unk32 mUnk_40;
/* 44 */
/* 00 */ virtual ~TriggerAABB_Unk1() override;
/* 08 */ virtual void vfunc_08() override;
/* 1c */
TriggerAABB_Unk1(TriggerParams *params);
};
+38 -1
View File
@@ -4,10 +4,47 @@
#include "types.h"
#include "Map/TriggerAABB.hpp"
#include "Unknown/UnkStruct_ov000_020e2f04.hpp"
class TriggerAABB_Unk2_Unk1 : public UnkStruct_ov000_020e2f04 {
public:
/* 00 (base) */
/* 10 */ unk32 mUnk_10;
/* 14 */ AABB mUnk_14;
/* 2c */
/* 00 */ virtual ~TriggerAABB_Unk2_Unk1() override;
/* 08 */ virtual unk32 vfunc_08() override;
/* 14 */ virtual void vfunc_14(AABB *param1, unk32 param2, unk32 param3, unk32 param4) override;
/* 20 */ virtual void SetBoundingBox(AABB *param1) override;
/* 2c */ virtual void GetBoundingBox(AABB *bbox) override;
/* 30 */ virtual void SetPosition(Vec3p *pos) override;
/* 34 */ virtual void vfunc_34() override;
/* 38 */ virtual void vfunc_38() override;
/* 3c */ virtual void GetPosition(Vec3p *pos) override;
/* 40 */ virtual q20 GetSizeXZ() override;
/* 44 */ virtual q20 GetHeight() override;
/* 48 */ virtual bool ContainsInXZ(Vec3p *pos) override;
/* 4c */ virtual bool Contains(Vec3p *pos) override;
/* 50 */ virtual bool IntersectsCube(Cube *cube) override;
/* 54 */ virtual void vfunc_54(Cube *param1, Vec3p *param2, u32 *param3) override;
/* 5c */
TriggerAABB_Unk2_Unk1();
};
class TriggerAABB_Unk2 : public TriggerAABB {
public:
/* 00 (base) */
/* 2c */ unk32 mUnk_2c;
/* 30 */ unk8 mUnk_30[0x2c][4]; // non-documented class which inherits from base class
/* 30 */ TriggerAABB_Unk2_Unk1 mUnk_30[4];
/* e0 */
/* 00 */ virtual ~TriggerAABB_Unk2() override;
/* 08 */ virtual void vfunc_08() override;
/* 0c */ virtual unk32 vfunc_0c() override;
/* 10 */ virtual unk32 vfunc_10() override;
/* 1c */
TriggerAABB_Unk2(TriggerParams *params);
};
+12 -5
View File
@@ -3,6 +3,9 @@
#include "global.h"
#include "types.h"
#include "nds/math.h"
#include "Physics/AABB.hpp"
#include "System/SysNew.hpp"
struct TriggerParams {
@@ -21,6 +24,7 @@ struct TriggerParams {
};
class TriggerBase : public SysObject {
public:
/* 00 (vtable) */
/* 04 */ unk8 mUnk_04;
/* 05 */ u8 mId;
@@ -31,10 +35,13 @@ class TriggerBase : public SysObject {
/* 14 */
/* 00 */ virtual ~TriggerBase();
/* 08 */ void vfunc_08();
/* 0c */ unk32 vfunc_0c();
/* 10 */ unk32 vfunc_10();
/* 14 */ bool Overlaps();
/* 18 */ bool GetBoundingBox();
/* 08 */ virtual void vfunc_08();
/* 0c */ virtual unk32 vfunc_0c();
/* 10 */ virtual unk32 vfunc_10();
/* 14 */ virtual bool Overlaps(Vec3p *point);
/* 18 */ virtual bool GetBoundingBox(AABB *bbox);
/* 1c */
TriggerBase(TriggerParams *params);
TriggerBase(u8 id, u32 param2, u32 param3, u32 param4);
};
+8
View File
@@ -11,4 +11,12 @@ class TriggerSphere : public TriggerBase {
/* 14 */ Sphere mSphere;
/* 24 */ s32 mHeight;
/* 28 */
/* 00 */ virtual ~TriggerSphere() override;
/* 14 */ virtual bool Overlaps(Vec3p *point) override;
/* 18 */ virtual bool GetBoundingBox(AABB *bbox) override;
/* 1c */
TriggerSphere(TriggerParams *params);
TriggerSphere(u8 id, u32 param2, u32 param3, u32 param4);
};
+14 -1
View File
@@ -3,12 +3,25 @@
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "nds/math.h"
#include "Physics/Cube.hpp"
struct AABB {
Vec3p min;
Vec3p max;
bool func_ov000_0208e680();
void GetCenter(Vec3p *center);
q20 GetSizeX();
q20 GetSizeZ();
q20 GetSizeY();
bool Contains(Vec3p *vec);
bool ContainsInXZ(Vec3p *vec);
bool ContainsInXY(Vec3p *vec);
bool IntersectsCube(Cube *cube);
bool func_ov000_0208e87c(Cube *cube, Vec3p *vec, u32 *out);
void GrowToPoint(Vec3p *point);
void Grow(Vec3p *dimensions);
void GrowScalar(q20 amount);
};
+11
View File
@@ -0,0 +1,11 @@
#pragma once
#include "global.h"
#include "types.h"
#include "nds/math.h"
struct Cube {
Vec3p center;
q20 size;
};
+1 -1
View File
@@ -3,7 +3,7 @@
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "nds/math.h"
struct Cylinder {
Vec3p pos;
+1 -1
View File
@@ -3,7 +3,7 @@
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "nds/math.h"
struct Sphere {
Vec3p pos;
+1 -1
View File
@@ -3,7 +3,7 @@
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "nds/math.h"
struct Transform {
Vec3p pos;
@@ -0,0 +1,51 @@
#pragma once
#include "global.h"
#include "types.h"
#include "Item/ItemModelLoader.hpp"
#include "Player/PlayerControlData.hpp"
#include "Unknown/UnkStruct_02035064.hpp"
class PlayerBattleLinkControlData : public PlayerControlData {
public:
/* 000 (base) */
/* 1a0 */ s32 mUnk_1a0;
/* 1a4 */ unk32 mUnk_1a4;
/* 1a8 */ UnkStruct_02035064 mUnk_1a8;
/* 230 */ unk32 mUnk_230;
/* 234 */ unk32 mUnk_234;
/* 238 */ ItemModelLoader *mUnk_238;
/* 23c */ unk32 mUnk_23c;
/* 240 */ unk32 mUnk_240;
/* 244 */ u8 mUnk_244;
/* 245 */ u8 mUnk_245;
/* 246 */ u8 mUnk_246;
/* 247 */ unk8 mUnk_247;
/* 248 */
/* 04 */ virtual ~PlayerBattleLinkControlData() override;
/* 10 */ virtual unk32 GetCharacterId() override;
/* 14 */ virtual void vfunc_14(s32 param1) override;
/* 18 */ virtual void vfunc_18() override;
/* 20 */ virtual void vfunc_20() override;
/* 2c */ virtual void vfunc_2c() override;
/* 30 */ virtual void vfunc_30() override;
/* 38 */ virtual void vfunc_38(s32 param1, s32 param2) override;
/* 3c */ virtual void vfunc_3c(s32 param1, s32 param2) override;
/* 40 */ virtual void vfunc_40(u16 *param1, Vec3p *param2, unk32 param3, char param4) override;
/* 44 */ virtual void vfunc_44(unk32 param1, unk32 *param2, unk32 param3, unk16 param4) override;
/* 4c */ virtual void vfunc_4c(unk32 param1, Vec3p *param2) override;
/* 60 */ virtual void vfunc_60(unk32 param1, unk32 param2, s32 param3) override;
/* 64 */ virtual void vfunc_64(u32 param1) override;
/* 68 */ virtual void vfunc_68(unk32 param1, unk32 param2) override;
/* 6c */ virtual void vfunc_6c(s32 param1, Vec3p *param2) override;
/* 70 */ virtual void vfunc_70(s32 param1) override;
/* 80 */ virtual void vfunc_80(s32 param1) override;
/* 84 */
PlayerBattleLinkControlData();
void func_ov012_0211af70();
bool func_ov012_0211b9c4(s32 param1, Vec3p *param2);
void func_ov012_0211bb08(s32 param1);
};
+18 -15
View File
@@ -2,32 +2,35 @@
#include "types.h"
#include "Actor/Actor.hpp"
#include "Actor/ActorRef.hpp"
#include "Player/EquipItem.hpp"
#include "Render/ModelRender.hpp"
#define MAX_BOMB_ACTORS 3
class LinkStateItem;
class EquipBomb : public EquipItem {
private:
public:
static ModelRender gModelRender;
/* 00 (base) */
/* 09 */ unk8 mUnk_09[3];
/* 0c */ unk32 mUnk_0c;
/* 10 */ unk8 mUnk_10[0x14];
/* 09 */ unk8 mUnk_09[0x3];
/* 0c */ ActorRef mBombs[MAX_BOMB_ACTORS];
/* 24 */
public:
EquipBomb();
/* 00 */ virtual void vfunc_00() override; // func_ov55_02198d00
/* 00 */ virtual void vfunc_00() override;
/* 04 */ virtual ~EquipBomb() override;
/* 0c */ virtual ItemFlag GetId() const override;
/* 14 */ virtual bool IsUsable(unk32 param1) const override;
/* 18 */ virtual void vfunc_18() override; // func_ov55_02198d8c
/* 30 */ virtual void vfunc_30() override; // func_ov55_02198da4
/* 38 */ virtual void vfunc_38(unk32 param1) override; // func_ov55_2198df8
/* 50 */ virtual void vfunc_50(); // func_ov14_0213d228
/* 18 */ virtual void vfunc_18() override;
/* 30 */ virtual void vfunc_30() override;
/* 38 */ virtual void vfunc_38(unk32 param1) override;
/* 50 */ virtual unk32 vfunc_50();
/* 54 */
static void StopUsing(LinkStateItem *param1, unk32 param2);
EquipBomb();
Actor *func_ov055_02198e60();
};
+60 -19
View File
@@ -2,22 +2,51 @@
#include "types.h"
#include "Actor/Actor.hpp"
#include "Player/EquipItem.hpp"
#include "Render/ModelRender.hpp"
#include "Unknown/UnkStruct_ov000_020beba8.hpp"
struct EquipBombchu_Unk1 {
/* 0 */ unk8 mUnk_0;
/* 1 */ unk8 mUnk_1;
/* 2 */
EquipBombchu_Unk1();
};
class EquipBombchu_Unk_02198d00 : public UnkStruct_ov000_020beba8 {
public:
/* 0 (base) */
/* c */
/* 00 */ virtual ~EquipBombchu_Unk_02198d00() override;
/* 08 */ virtual void vfunc_08(unk16 *param1) override;
/* 0c */ virtual void vfunc_0c(unk16 *param1) override;
/* 10 */ virtual void vfunc_10(s32 *param1) override;
/* 14 */ virtual void vfunc_14(u16 *param1) override;
/* 1c */
inline EquipBombchu_Unk_02198d00() :
UnkStruct_ov000_020beba8(3) {}
};
class EquipBombchu : public EquipItem {
private:
public:
static ModelRender gModelRenderBombchu;
static ModelRender gModelRenderBombchuPt;
/* 00 (base) */
/* 09 */ u8 mUnk_09[3];
/* 0c */ u8 mUnk_0c[0x0c];
/* 0c */ ActorRef mUnk_0c;
/* 0c */ u8 mUnk_14[0x4];
/* 18 */ u32 mUnk_18;
/* 1c */ void *mUnk_1c;
/* 20 */ void *mUnk_20;
/* 24 */ u32 mUnk_24;
/* 28 */ u32 mUnk_28;
/* 1c */ EquipBombchu_Unk1 *mUnk_1c;
/* 20 */ Vec3p mUnk_20;
/* 2c */ void *mUnk_2c;
/* 30 */ u32 mUnk_30;
/* 34 */ u32 mUnk_34;
/* 38 */ u8 mUnk_38[0xc];
/* 38 */ Vec3p mUnk_38;
/* 44 */ u16 mUnk_44;
/* 46 */ u8 mUnk_46;
/* 47 */ char mUnk_47;
@@ -25,22 +54,34 @@ private:
/* 49 */ unk8 mUnk_49[3];
/* 4c */
public:
EquipBombchu();
/* 00 */ virtual void vfunc_00() override; // func_ov58_02198fc0
/* 00 */ virtual void vfunc_00() override;
/* 04 */ virtual ~EquipBombchu() override;
/* 0c */ virtual ItemFlag GetId() const override;
bool CheckUsable(unk32 param1) const;
/* 14 */ virtual bool IsUsable(unk32 param1) const override;
/* 18 */ virtual void vfunc_18() override; // func_ov58_0219903c
/* 1c */ virtual void vfunc_1c() override; // func_ov58_02199060
/* 30 */ virtual void vfunc_30() override; // func_ov58_0219906c
/* 34 */ virtual void vfunc_34(unk16 *param1) override; // func_ov58_0213ecb4
/* 38 */ virtual void vfunc_38(unk32 param1) override; // func_ov58_02199170
/* 18 */ virtual void vfunc_18() override;
/* 1c */ virtual void vfunc_1c() override;
/* 30 */ virtual void vfunc_30() override;
/* 34 */ virtual void vfunc_34(unk16 *param1) override;
/* 38 */ virtual void vfunc_38(unk32 param1) override;
/* 50 */
EquipBombchu();
void func_ov014_0213eba4();
void func_ov014_0213ec40();
void func_ov014_0213ec64();
Actor *func_ov014_0213ed74();
void *func_ov014_0213ed94(s32 param1);
void func_ov014_0213eda0();
void func_ov058_02199220();
void func_ov058_02199228();
void func_ov058_02199264();
void func_ov058_0219926c();
bool CheckUsable(unk32 param1) const;
Actor *func_ov058_02199400();
bool func_ov058_02199498(Vec3p *vec);
void func_ov058_02199ef0(unk16 param1);
void func_ov058_02199fd8(u32 param1);
unk32 func_ov058_0219a084(unk16 param1);
bool func_ov058_0219a3b4(unk16 param1);
};
+22 -7
View File
@@ -25,15 +25,30 @@ private:
public:
/* 04 */ virtual ~EquipBoomerang() override;
/* 0c */ virtual ItemFlag GetId() const override;
/* 10 */ virtual void vfunc_10() override; // func_ov14_0213d078
/* 10 */ virtual void vfunc_10() override;
/* 14 */ virtual bool IsUsable(unk32 param1) const override;
/* 18 */ virtual void vfunc_18() override; // func_ov53_02199064
/* 1c */ virtual void vfunc_1c() override; // func_ov53_021990d0
/* 30 */ virtual void vfunc_30() override; // func_ov53_0219913c
/* 38 */ virtual void vfunc_38(unk32 param1) override; // func_ov53_02199318
/* 18 */ virtual void vfunc_18() override;
/* 1c */ virtual void vfunc_1c() override;
/* 28 */ virtual bool UpdateInUse(unk32 param1) override;
/* 30 */ virtual void vfunc_30() override;
/* 38 */ virtual void vfunc_38(unk32 param1) override;
/* 50 */
EquipBoomerang();
void func_ov014_0213d098();
void func_ov014_0213d0bc(Vec3p *param1);
Actor *GetActor();
void func_ov014_0213d184();
void func_ov014_0213d1b0();
void func_ov053_02199014();
void func_ov053_02199020();
s32 func_ov053_0219902c(s32 param1);
void func_ov053_02199038();
void func_ov053_021990f0(unk16 param1);
bool func_ov053_02199128(s32 *param1);
void func_ov053_02199168();
void func_ov053_021991ec();
bool func_ov053_02199410(s32 param1);
bool func_ov053_021994cc(Vec3p *param1);
};
+15 -10
View File
@@ -3,9 +3,13 @@
#include "types.h"
#include "Player/EquipItem.hpp"
#include "Render/ModelRender.hpp"
class EquipBow : public EquipItem {
private:
public:
static ModelRender gModelRenderBow;
static ModelRender gModelRenderArrow;
/* 00 (base) */
/* 09 */ unk8 mUnk_09;
/* 0a */ unk8 mUnk_0a;
@@ -14,17 +18,18 @@ private:
/* 0d */ unk8 mUnk_0d[3];
/* 10 */
public:
EquipBow();
/* 00 */ virtual void vfunc_00() override; // func_ov56_02198d00
/* 00 */ virtual void vfunc_00() override;
/* 04 */ virtual ~EquipBow() override;
/* 0c */ virtual ItemFlag GetId() const override;
/* 14 */ virtual bool IsUsable(unk32 param1) const override;
/* 18 */ virtual void vfunc_18() override; // func_ov56_02198d84
/* 30 */ virtual void vfunc_30() override; // func_ov56_02198de4
/* 38 */ virtual void vfunc_38(unk32 param1) override; // func_ov56_02198df8
/* 18 */ virtual void vfunc_18() override;
/* 30 */ virtual void vfunc_30() override;
/* 38 */ virtual void vfunc_38(unk32 param1) override;
/* 50 */
EquipBow();
bool func_ov056_02198ee8();
void func_ov056_02198f48(u16 param1);
bool func_ov056_021992f8();
};
+17 -14
View File
@@ -10,7 +10,7 @@ class EquipHammer : public EquipItem {
private:
/* 00 (base) */
/* 09 */ unk8 mUnk_09[3];
/* 0c */ unk8 mUnk_0c[0xc];
/* 0c */ Vec3p mUnk_0c;
/* 18 */ unk32 mUnk_18;
/* 1c */ unk8 mUnk_1c;
/* 1d */ unk8 mUnk_1d;
@@ -21,22 +21,25 @@ private:
/* 2c */
public:
EquipHammer();
/* 04 */ virtual ~EquipHammer() override;
/* 0c */ virtual ItemFlag GetId() const override;
/* 10 */ virtual void vfunc_10() override; // func_ov14_0213ee04
/* 10 */ virtual void vfunc_10() override;
/* 14 */ virtual bool IsUsable(unk32 param1) const override;
/* 18 */ virtual void vfunc_18() override; // func_ov59_02198e3c
/* 1c */ virtual void vfunc_1c() override; // func_ov59_02198e58
/* 2c */ virtual u32 vfunc_2c() override; // func_ov59_02198fcc
/* 30 */ virtual void vfunc_30() override; // func_ov59_02198e6c
/* 38 */ virtual void vfunc_38(unk32 param1) override; // func_0v59_02198fc8
/* 3c */ virtual bool GetHitbox(Cylinder *hitbox) const override; // func_ov14_0213ee10
/* 4c */ virtual s32 vfunc_4c() const override; // func_ov14_0213eea8
/* 18 */ virtual void vfunc_18() override;
/* 1c */ virtual void vfunc_1c() override;
/* 2c */ virtual u32 vfunc_2c() override;
/* 30 */ virtual void vfunc_30() override;
/* 38 */ virtual void vfunc_38(unk32 param1) override;
/* 3c */ virtual bool GetHitbox(Cylinder *hitbox) const override;
/* 4c */ virtual s32 vfunc_4c() const override;
/* 50 */
static void StopUsing(LinkStateItem *param1);
EquipHammer();
void func_ov059_02198e90();
bool func_ov059_02198ebc();
bool func_ov059_02198ed4();
void func_ov059_02198f10(Vec3p *vec, unk32 param2, s32 param3);
void func_ov059_02198fa8(unk32 param1);
bool func_ov059_02198fe0();
};
+17 -15
View File
@@ -8,36 +8,38 @@
#include "System/SysNew.hpp"
class EquipItem : public SysObject {
private:
public:
/* 0 (vtable) */
/* 4 */ u16 mUnk_00;
/* 6 */ u16 mUnk_04;
/* 8 */ bool mInUse;
/* 9 */
public:
EquipItem();
/* 00 */ virtual void vfunc_00(); // func_ov00_020be8dc
/* 00 */ virtual void vfunc_00();
/* 04 */ virtual ~EquipItem();
/* 0c */ virtual ItemFlag GetId() const = 0;
/* 10 */ virtual void vfunc_10(); // func_ov04_0210ba88
u16 GetAmmo();
/* 10 */ virtual void vfunc_10();
/* 14 */ virtual bool IsUsable(unk32 param1) const;
/* 18 */ virtual void vfunc_18() = 0;
/* 1c */ virtual void vfunc_1c(); // func_ov00_020be8e0
/* 1c */ virtual void vfunc_1c();
/* 20 */ virtual void GiveAmmo(u32 amount);
/* 24 */ virtual bool IsInUse() const;
/* 28 */ virtual bool UpdateInUse(unk32 param1);
/* 2c */ virtual u32 vfunc_2c(); // func_ov00_020be964
/* 2c */ virtual u32 vfunc_2c();
/* 30 */ virtual void vfunc_30() = 0;
/* 34 */ virtual void vfunc_34(unk16 *param1); // func_ov00_020be96c
/* 34 */ virtual void vfunc_34(unk16 *param1);
/* 38 */ virtual void vfunc_38(unk32 param1) = 0;
/* 3c */ virtual bool GetHitbox(Cylinder *hitbox) const; // func_ov00_020beb90
/* 40 */ virtual unk32 vfunc_40() const; // func_ov00_020be970
/* 44 */ virtual unk32 vfunc_44(unk32 param1) const; // func_ov00_020be978
/* 48 */ virtual unk32 vfunc_48(unk32 param1) const; // func_ov00_020be980
/* 4c */ virtual s32 vfunc_4c() const; // func_ov00_020be988
/* 3c */ virtual bool GetHitbox(Cylinder *hitbox) const;
/* 40 */ virtual unk32 vfunc_40() const;
/* 44 */ virtual unk32 vfunc_44(unk32 param1) const;
/* 48 */ virtual unk32 vfunc_48(unk32 param1) const;
/* 4c */ virtual s32 vfunc_4c() const;
/* 50 */
Vec3p *GetPlayerPos();
void func_ov000_020be99c(Vec3p *param1);
void func_ov000_020be9e4(s32 param1, s32 param2, s32 param3, s16 param4);
u16 GetAmmo();
};
+11 -13
View File
@@ -12,34 +12,32 @@ private:
/* 10 */
public:
EquipPotion();
/* 00 */ virtual void vfunc_00() override; // func_ov55_021991a8
/* 00 */ virtual void vfunc_00() override;
/* 04 */ virtual ~EquipPotion() override;
/* 14 */ virtual bool IsUsable(unk32 param1) const override;
/* 18 */ virtual void vfunc_18() override; // func_ov55_021991ac
/* 1c */ virtual void vfunc_1c() override; // func_ov55_021991b0
/* 30 */ virtual void vfunc_30() override; // func_ov55_02199274
/* 38 */ virtual void vfunc_38(unk32 param1) override; // func_0v55_02199278
/* 18 */ virtual void vfunc_18() override;
/* 1c */ virtual void vfunc_1c() override;
/* 30 */ virtual void vfunc_30() override;
/* 38 */ virtual void vfunc_38(unk32 param1) override;
/* 50 */
EquipPotion();
};
class EquipPotionA : public EquipPotion {
public:
EquipPotionA();
/* 04 */ virtual ~EquipPotionA() override;
/* 0c */ virtual ItemFlag GetId() const override;
/* 50 */
EquipPotionA();
};
class EquipPotionB : public EquipPotion {
public:
EquipPotionB();
/* 04 */ virtual ~EquipPotionB() override;
/* 0c */ virtual ItemFlag GetId() const override;
/* 50 */
EquipPotionB();
};
+65 -14
View File
@@ -1,10 +1,11 @@
#pragma once
#include "global.h"
#include "lib/math.h"
#include "nds/math.h"
#include "types.h"
#include "Actor/ActorRef.hpp"
#include "Actor/Player/ActorRope.hpp"
#include "Physics/Cylinder.hpp"
#include "Player/EquipItem.hpp"
@@ -12,6 +13,27 @@ struct EquipRope_Unk_18 {
/* 00 */ Vec3p vec;
/* 0c */ unk8 mUnk_0c[0x10];
/* 1c */
bool func_ov057_02198e80();
void func_ov057_02198fc0(u32 param1);
void func_ov057_02199028(s32 param1);
bool func_ov057_02199104(EquipRope_Unk_18 *other);
};
class EquipRope_Unk_02198dd0 {
public:
/* 0 (vtable) */
/* 4 */ unk32 mUnk_4;
/* 8 */
/* 00 */ virtual ~EquipRope_Unk_02198dd0();
/* 08 */ unk32 vfunc_08();
/* 0c */ unk32 vfunc_0c();
/* 10 */ unk32 vfunc_10(s32 *param1);
/* 14 */ unk32 vfunc_14();
/* 18 */
EquipRope_Unk_02198dd0();
};
class Actor;
@@ -23,7 +45,7 @@ public:
/* 09 */ unk8 mUnk_09;
/* 0a */ unk16 mUnk_0a;
/* 0c */ unk8 mUnk_0c[4];
/* 10 */ ActorRef mRef;
/* 10 */ ActorRef mRopeRef;
/* 18 */ EquipRope_Unk_18 mUnk_18[2];
/* 50 */ unk8 mUnk_50[0x1a];
/* 6a */ bool mUnk_6a;
@@ -37,29 +59,58 @@ public:
/* a0 */ unk32 mUnk_a0;
/* a4 */
EquipRope();
/* 04 */ virtual ~EquipRope() override;
/* 0c */ virtual ItemFlag GetId() const override;
/* 10 */ virtual void vfunc_10() override; // func_ov14_0213d3a0
u16 GetAmmo();
/* 10 */ virtual void vfunc_10() override;
/* 14 */ virtual bool IsUsable(unk32 param1) const override;
/* 18 */ virtual void vfunc_18() override; // func_ov57_021992f4
/* 1c */ virtual void vfunc_1c() override; // func_ov57_0219935c
/* 30 */ virtual void vfunc_30() override; // func_ov57_02199744
/* 38 */ virtual void vfunc_38(unk32 param1) override; // func_ov57_021998f0
/* 18 */ virtual void vfunc_18() override;
/* 1c */ virtual void vfunc_1c() override;
/* 30 */ virtual void vfunc_30() override;
/* 38 */ virtual void vfunc_38(unk32 param1) override;
/* 50 */
Actor *func_ov14_0213d420();
u16 GetAmmo();
EquipRope();
bool func_ov014_0213d3d4(Vec3p *vec);
void func_ov014_0213d404(unk32 *param1);
ActorRope *GetRopeActor();
s32 func_ov14_0213d440(s32 actorId);
s32 func_ov14_0213d480(s32 actorId);
bool func_ov014_0213d4c8();
bool func_ov014_0213d4ec(unk32 *param1, s32 param2);
s32 func_ov014_0213d594(s32 param1);
bool func_ov014_0213d5d0(unk32 *param1, s32 param2);
s32 func_ov014_0213d63c(s32 param1);
bool func_ov014_0213d684();
bool func_ov014_0213d6e0();
bool func_ov014_0213d71c(s32 param1, ActorRef *param2);
bool func_ov014_0213d788(s32 param1);
bool func_ov14_0213d81c(s32 index, Vec3p *vec);
void func_ov14_0213d91c(s32 index);
bool func_ov014_0213d9ac();
bool func_ov14_0213dadc(s32 index, Cylinder *cylinder);
void func_ov014_0213db34();
void func_ov014_0213db60();
void func_ov014_0213dba4(Vec3p *param1);
s32 func_ov014_0213dda0();
s32 func_ov14_0213ddd4(Actor *actor);
bool func_ov14_0213defc(Actor *actor);
bool func_ov014_0213dfbc(Cylinder *cylinder, s32 param2, Vec3p *vec);
void func_ov014_0213e144(Vec3p *param1, Vec3p *param2, s32 param3);
bool func_ov014_0213e20c(s32 param1, Vec3p *param2);
bool func_ov014_0213e328();
static void StopUsing(LinkStateItem *param1);
void func_ov057_021990ec();
void func_ov057_021990f8();
bool func_ov057_0219922c(u32 param1);
void func_ov057_021992b4(s32 param1);
bool func_ov057_0219939c(s32 *param1, s32 param2);
bool func_ov057_02199454(s32 param1);
bool func_ov057_021994c0(unk32 *param1);
s32 func_ov057_021996b0(Vec3p *param1);
void func_ov057_02199ad8();
void func_ov057_02199c78();
void func_ov057_02199d54();
void func_ov057_02199e24();
};
+15 -12
View File
@@ -3,29 +3,32 @@
#include "types.h"
#include "Player/EquipItem.hpp"
#include "Render/ModelRender.hpp"
class LinkStateItem;
class EquipScoop : public EquipItem {
private:
public:
static ModelRender gModelRender;
/* 0 (base) */
/* 9 */ unk8 mUnk_9[3];
/* c */
public:
/* 00 */ virtual void vfunc_00() override; // func_ov54_02198d00
/* 00 */ virtual void vfunc_00() override;
/* 04 */ virtual ~EquipScoop() override;
/* 0c */ virtual ItemFlag GetId() const override;
/* 14 */ virtual bool IsUsable(unk32 param1) const override;
/* 18 */ virtual void vfunc_18() override; // func_0v54_02198d2c
/* 30 */ virtual void vfunc_30() override; // func_ov54_02198e04
/* 38 */ virtual void vfunc_38(unk32 param1) override; // func_ov54_02198e4c
/* 40 */ virtual unk32 vfunc_40() const override; // func_ov54_02198d30
/* 44 */ virtual unk32 vfunc_44(unk32 param1) const override; // func_ov54_02198d38
/* 48 */ virtual unk32 vfunc_48(unk32 param1) const override; // func_ov54_02198d48
/* 18 */ virtual void vfunc_18() override;
/* 30 */ virtual void vfunc_30() override;
/* 38 */ virtual void vfunc_38(unk32 param1) override;
/* 40 */ virtual unk32 vfunc_40() const override;
/* 44 */ virtual unk32 vfunc_44(unk32 param1) const override;
/* 48 */ virtual unk32 vfunc_48(unk32 param1) const override;
/* 50 */
static void StopUsing(LinkStateItem *param1);
EquipScoop();
s32 func_ov054_02198e08(Vec3p *param1);
bool func_ov054_021980e24(Vec3p *param1);
};
+10 -10
View File
@@ -20,17 +20,17 @@ private:
public:
EquipShield();
/* 00 */ virtual void vfunc_00() override; // func_ov00_020c06d4
/* 04 */ virtual ~EquipShield() override; // func_ov04_0210bc94
/* 00 */ virtual void vfunc_00() override;
/* 04 */ virtual ~EquipShield() override;
/* 0c */ virtual ItemFlag GetId() const override;
/* 10 */ virtual void vfunc_10() override; // func_ov00_020c076c
/* 10 */ virtual void vfunc_10() override;
/* 14 */ virtual bool IsUsable(unk32 param1) const override;
/* 18 */ virtual void vfunc_18() override; // func_ov00_020c0770
/* 1c */ virtual void vfunc_1c(); // func_ov00_020c07f8
/* 30 */ virtual void vfunc_30() override; // func_ov00_020c0804
/* 38 */ virtual void vfunc_38(unk32 param1) override; // func_ov00_020c086c
/* 3c */ virtual bool GetHitbox(Cylinder *hitbox) const; // func_ov00_020c0a88
/* 18 */ virtual void vfunc_18() override;
/* 1c */ virtual void vfunc_1c();
/* 30 */ virtual void vfunc_30() override;
/* 38 */ virtual void vfunc_38(unk32 param1) override;
/* 3c */ virtual bool GetHitbox(Cylinder *hitbox) const;
/* 50 */
void func_ov000_020c070c(u32 param1, Vec3p *param2, unk32 param3);
};
+19 -8
View File
@@ -43,20 +43,31 @@ private:
public:
EquipSword();
/* 00 */ virtual void vfunc_00() override; // func_ov00_020beffc
/* 00 */ virtual void vfunc_00() override;
/* 04 */ virtual ~EquipSword() override;
/* 0c */ virtual ItemFlag GetId() const override;
/* 10 */ virtual void vfunc_10() override; // func_ov00_020bf18c
/* 10 */ virtual void vfunc_10() override;
/* 18 */ virtual void vfunc_18() override; // func_ov00_020bf270
/* 1c */ virtual void vfunc_1c() override; // func_ov00_020bf2d8
/* 18 */ virtual void vfunc_18() override;
/* 1c */ virtual void vfunc_1c() override;
/* 28 */ virtual bool UpdateInUse(unk32 param1) override;
/* 2c */ virtual u32 vfunc_2c() override; // func_ov00_020c0674
/* 30 */ virtual void vfunc_30() override; // func_ov00_020bf538
/* 38 */ virtual void vfunc_38(unk32 param1) override; // func_ov00_020bff94
/* 3c */ virtual bool GetHitbox(Cylinder *hitbox) const override; // func_ov00_020c01dc
/* 2c */ virtual u32 vfunc_2c() override;
/* 30 */ virtual void vfunc_30() override;
/* 38 */ virtual void vfunc_38(unk32 param1) override;
/* 3c */ virtual bool GetHitbox(Cylinder *hitbox) const override;
/* 50 */
void func_ov000_020bf008(unk16 param1, unk16 param2);
bool func_ov000_020bf028();
void func_ov000_020bf088();
void func_ov000_020bf330();
bool func_ov000_020bf4f4();
static EquipRope *GetEquipRope();
void func_ov000_020c024c(Vec3p *param1, s32 param2);
void func_ov000_020c0318(Vec3p *param1, s32 param2);
void func_ov000_020c0550(Vec3p *param1, s32 param2);
void func_ov000_020c05ec(s32 param1);
void func_ov000_020c0648();
void func_ov000_020c06b0(s32 param1);
};
-22
View File
@@ -1,22 +0,0 @@
#pragma once
#include "global.h"
#include "types.h"
#include "System/SysNew.hpp"
class HealthManager : public SysObject {
public:
/* 00 */ u16 mMaxHealth;
/* 02 */ u16 mHealth;
/* 04 */ s16 mMaxShipHealth;
/* 06 */ s16 mShipHealth;
/* 08 */ u16 mSalvageArmHealth;
/* 0a */ s16 mFlags;
/* 0c */ unk16 mUnk_0c;
/* 0e */ unk8 mUnk_0e;
/* 0f */ unk8 mUnk_0f;
/* 10 */
};
extern HealthManager *gHealthManager;
+24 -1
View File
@@ -1,7 +1,7 @@
#pragma once
#include "global.h"
#include "lib/math.h"
#include "nds/math.h"
#include "types.h"
#include "Actor/Actor.hpp"
@@ -127,6 +127,29 @@ public:
s32 Get_PlayerLinkBase_Unk38();
DebugHierarchy *GetDebugHierarchy0();
DebugHierarchy *GetDebugHierarchy1();
LinkStateBase(PlayerLinkBase *link);
void func_ov005_0210f768();
void func_ov005_0210f7b8();
u32 func_ov005_0210f808(u32 param1, Vec3p *param2, s32 param3);
void func_ov005_02110228(s32 param1, s32 param2, s32 param3, char param4, char param5);
bool func_ov005_0211058c(s32 param1);
void func_ov005_021107fc();
void func_ov005_0211086c(s32 param1);
void func_ov005_0211097c(unk32 param1, unk8 param2, unk8 param3);
unk32 func_ov005_021109c0();
void func_ov005_02110b40(s32 param1);
void func_ov005_02110bb4();
void func_ov005_02110be8();
void func_ov005_02110e0c(u16 param1, s32 param2);
void func_ov005_02110e28(u16 param1, s32 param2, s32 param3, char param4);
bool func_ov005_02110f50(s32 param1, s32 param2, s32 param3, u32 *param4);
void func_ov005_021112ec();
bool func_ov005_02111358();
bool func_ov005_0211139c();
bool func_ov005_021113b4();
void func_ov005_021113c4(bool param1);
};
LinkStateBase *GetLinkState(s32 index);
+65 -1
View File
@@ -1,11 +1,25 @@
#pragma once
#include "global.h"
#include "lib/math.h"
#include "nds/math.h"
#include "types.h"
#include "Item/Item.hpp"
#include "Player/LinkStateBase.hpp"
#include "Unknown/UnkStruct_02037750.hpp"
class UnkStruct_ov004_0210abb8 : public UnkStruct_02037750 {
public:
/* 00 (base) */
/* 20 */ unk32 mUnk_20;
/* 24 */
/* 00 */ virtual ~UnkStruct_ov004_0210abb8() override;
/* 08 */ virtual void vfunc_08(unk32 param1) override;
/* 24 */ virtual void vfunc_24(unk32 param1) override;
/* 2c */ virtual unk32 vfunc_2c(s32 param1) override;
/* 34 */
};
class LinkStateCutscene : public LinkStateBase {
public:
@@ -58,4 +72,54 @@ public:
/* 38 */ virtual bool vfunc_38() override;
/* 40 */ virtual bool vfunc_40() override;
/* 44 */
bool func_ov000_020b1e98(s32 param1);
bool func_ov000_020b1eb8();
bool func_ov000_020b1eec();
void StopVerticalVelocity();
void func_ov000_020b2568();
void func_ov000_020b2598();
void func_ov000_020b2ba4();
void func_ov000_020b2ce4(unk32 param1, s16 param2);
void func_ov000_020b2cf0();
void func_ov000_020b2d60();
bool func_ov000_020b2d8c();
void func_ov000_020b2e84();
void func_ov000_020b2f48(unk32 param1, unk32 param2);
void func_ov000_020b2f70(unk32 param1, void *param2, unk32 *param3);
void ChangeToMoveState();
bool func_ov000_020b2fac();
void func_ov000_020b3024(Vec3p *param1, unk32 param2);
void func_ov000_020b305c(Vec3p *param1, Vec3p *param2);
void func_ov000_020b309c(Vec3p *param1);
void func_ov000_020b30e4(u32 param1, unk32 param2, unk32 param3);
void func_ov000_020b3278(s32 param1, s32 *param2);
void func_ov000_020b35d8(s32 param1, s32 param2);
void func_ov000_020b38dc(u32 param1, u32 param2);
LinkStateCutscene(PlayerLinkBase *link);
void func_ov005_021089c0();
void func_ov005_021089f4();
void func_ov005_02108d08();
void func_ov005_02108e08();
void func_ov005_02108e8c();
void func_ov005_02108f38();
void func_ov005_02108f98(unk32 param1, unk32 param2, unk32 param3);
void func_ov005_021092bc();
void func_ov005_0210952c();
void func_ov005_02109588();
void func_ov005_0210960c();
void func_ov005_02109650();
bool PlayItemCutscene(unk32 itemId);
bool func_ov005_02109768();
void func_ov005_021097b0(s32 param1);
void func_ov005_021099dc();
bool func_ov005_02109cd0(s32 *param1, s32 param2, unk32 param3);
void func_ov005_02109e84();
void func_ov005_02109f2c();
void func_ov005_02109f88();
void func_ov005_0210a018();
void func_ov005_0210a06c();
bool func_ov005_0210a0c0(unk16 param1);
};
+3 -1
View File
@@ -1,7 +1,7 @@
#pragma once
#include "global.h"
#include "lib/math.h"
#include "nds/math.h"
#include "types.h"
#include "Player/LinkStateBase.hpp"
@@ -48,4 +48,6 @@ class LinkStateDamage : public LinkStateBase {
void func_ov00_020ace90(Vec3p *param1, unk32 param2);
void func_ov00_020acfe8(bool param1);
LinkStateDamage(PlayerLinkBase *link);
};
+13 -1
View File
@@ -1,7 +1,7 @@
#pragma once
#include "global.h"
#include "lib/math.h"
#include "nds/math.h"
#include "types.h"
#include "Actor/Actor.hpp"
@@ -37,4 +37,16 @@ public:
LinkStateCutscene *GetLinkStateCutscene();
bool func_ov00_020a9180(Vec3p *param1);
bool func_ov00_020a9210(Vec3p *param1, Actor *param2);
LinkStateFollow(PlayerLinkBase *link);
static EquipRope *GetEquipRope();
void func_ov005_0210b9c4();
void func_ov005_0210ba98();
void func_ov005_0210babc();
void func_ov005_0210bb50();
void func_ov005_0210bb98();
void func_ov005_0210bd70();
void func_ov005_0210bf50();
void func_ov005_0210ca80(Vec3p *param1, s32 *param2);
};
+12 -1
View File
@@ -1,7 +1,7 @@
#pragma once
#include "global.h"
#include "lib/math.h"
#include "nds/math.h"
#include "types.h"
#include "Actor/Actor.hpp"
@@ -53,4 +53,15 @@ public:
void func_ov00_020abc18(ActorRef *ref);
bool func_ov00_020abc40();
bool func_ov00_020abc78(ActorRef *ref);
LinkStateInteract(PlayerLinkBase *link);
void func_ov005_0210a690();
bool func_ov005_0210a714();
void func_ov005_0210a774();
void func_ov005_0210a7d4();
void func_ov005_0210ab1c();
void func_ov005_0210ad88();
void func_ov005_0210b2a4();
void func_ov005_0210b4f4(Vec3p *vec, Actor *actor);
};
+43
View File
@@ -50,4 +50,47 @@ public:
static EquipBombchu *GetEquipBombchu();
static LinkStateMove *GetLinkStateMove();
bool func_ov00_020abf70();
LinkStateItem(PlayerLinkBase *link);
void func_ov005_02105850();
void func_ov005_02105c28();
void func_ov005_02105d94();
void func_ov005_02105dac();
void func_ov005_02106644();
void func_ov005_02106700(Vec3p *param1, unk8 *param2);
void func_ov005_02106740(s32 *param1, s32 param2);
bool func_ov005_02106894(s32 param1, s32 param2);
void func_ov005_02106980(unk32 param, s32 param2, s32 *param3);
bool func_ov005_02106a50();
bool func_ov005_02106bbc(Vec3p *param1, unk32 param2, u32 param3);
bool func_ov054_02198efc(s32 param1, unk32 param2, u32 param3);
bool func_ov054_021992c8(unk32 param1, unk32 param2, u32 param3);
void StopUsingScoop();
void func_ov054_02198eec();
void func_ov055_02198f78();
void StopUsingBomb(s32 param1);
void func_ov055_02199020();
void func_ov055_021993b8();
void func_ov055_02199654();
void func_ov056_021990c0();
void func_ov056_0219911c();
bool func_ov056_021992f8();
void func_ov057_02199e64();
void func_ov057_02199edc();
void func_ov057_0219a208();
void StopUsingRope();
bool func_ov057_0219a364();
void func_ov058_0219a454();
void func_ov058_0219a47c();
void func_ov059_02198ffc();
void func_ov059_0219907c();
void func_ov059_021990a4();
void StopUsingHammer();
};
+4
View File
@@ -29,4 +29,8 @@ public:
bool func_ov00_020a8f2c();
bool func_ov00_020a8f4c();
LinkStateMove(PlayerLinkBase *link);
void func_ov005_021113d0();
};
+21 -1
View File
@@ -23,7 +23,7 @@ public:
/* 28 */ unk8 mUnk_28[4];
/* 2c */ unk32 mUnk_2c[5];
/* 40 */ unk32 mUnk_40;
/* 44 */ unk32 mUnk_44[0x10];
/* 44 */ ActorRef mUnk_44[0x8];
/* 84 */ void *mUnk_84;
/* 88 */ unk32 mUnk_88;
/* 8c */ unk8 mUnk_8c[0xc];
@@ -43,4 +43,24 @@ public:
void func_ov00_020aee58(s16 param1, u16 param2);
void func_ov00_020aee84();
bool func_ov00_020aeeac();
LinkStateRoll(PlayerLinkBase *link);
s32 func_ov005_02106c80(u32 param1);
void func_ov005_02106cd0();
void func_ov005_02107208(u32 param1);
void func_ov005_02107214();
void func_ov005_021073b8();
void func_ov005_021075bc();
void func_ov005_02107880();
void func_ov005_02107954(unk32 param1, unk32 param2, unk32 param3);
void func_ov005_02107b74(unk32 *param1, unk16 param2, unk16 param3);
bool func_ov005_02107bd4();
bool func_ov005_02107c8c();
bool func_ov005_02107d74();
unk32 func_ov005_02107e80(u32 param1, unk32 *param2, unk16 param3, unk8 *param4);
void func_ov005_02107fc0();
bool func_ov005_02108094();
void func_ov005_02108188();
void func_ov005_021081a8();
};
+3 -1
View File
@@ -32,7 +32,7 @@ public:
/* 18 */ virtual void vfunc_18() = 0;
/* 1c */ virtual void Init() = 0;
/* 20 */ virtual void vfunc_20() = 0;
/* 24 */ virtual void vfunc_24() = 0;
/* 24 */ virtual void UpdatePos() = 0;
/* 28 */ virtual void vfunc_28(s32 param1) = 0;
/* 2c */ virtual void vfunc_2c(s32 param1, unk8 param2) = 0;
/* 30 */ virtual bool vfunc_30(s32 param1, Vec3p *param2, s32 param3) = 0;
@@ -57,6 +57,8 @@ public:
bool EquipCollidesWith(Cylinder *cylinder, ItemFlag equipId);
s32 EquipItem_vfunc_2c();
void SetHealth(s16 health);
PlayerBase();
};
extern PlayerBase *gPlayer;
+10 -3
View File
@@ -1,7 +1,7 @@
#pragma once
#include "global.h"
#include "lib/math.h"
#include "nds/math.h"
#include "types.h"
#include "Actor/Actor.hpp"
@@ -125,12 +125,19 @@ public:
bool IsTappedNow();
bool func_ov00_020b13c4();
// More methods starting from 020b78a0, different TU?
void ResetTouchWorld();
void InitTouchMovement();
void func_ov000_020b7924(s32 param1);
void ApplyTouchWorld(Vec3p *result, q20 scale);
void ApplyTouchWorld(Vec3p *result, unk32 scale);
bool func_ov000_020b7d6c();
PlayerControl();
~PlayerControl();
static void Create();
static void Destroy();
void Init();
void func_ov004_0210b1d0();
static void func_ov004_0210b1f0();
};
extern PlayerControl *gPlayerControl;
+47 -1
View File
@@ -1,7 +1,7 @@
#pragma once
#include "global.h"
#include "lib/math.h"
#include "nds/math.h"
#include "types.h"
#include "System/SysNew.hpp"
@@ -58,4 +58,50 @@ public:
/* 19c */ unk16 mUnk_19c;
/* 19e */ unk16 mUnk_19e;
/* 1a0 */
/* 00 */ virtual void vfunc_00();
/* 04 */ virtual ~PlayerControlData();
/* 0c */ virtual unk32 vfunc_0c();
/* 10 */ virtual unk32 GetCharacterId() = 0;
/* 14 */ virtual void vfunc_14(s32 param1) = 0;
/* 18 */ virtual void vfunc_18();
/* 1c */ virtual void vfunc_1c();
/* 20 */ virtual void vfunc_20();
/* 24 */ virtual void vfunc_24();
/* 28 */ virtual void vfunc_28();
/* 2c */ virtual void vfunc_2c();
/* 30 */ virtual void vfunc_30();
/* 34 */ virtual void vfunc_34();
/* 38 */ virtual void vfunc_38(s32 param1, s32 param2) = 0;
/* 3c */ virtual void vfunc_3c(s32 param1, s32 param2);
/* 40 */ virtual void vfunc_40(u16 *param1, Vec3p *param2, unk32 param3, char param4);
/* 44 */ virtual void vfunc_44(unk32 param1, unk32 *param2, unk32 param3, unk16 param4);
/* 48 */ virtual void vfunc_48(unk32 param1, unk32 param2, unk32 param3, s16 param4);
/* 4c */ virtual void vfunc_4c(unk32 param1, Vec3p *param2);
/* 50 */ virtual void vfunc_50();
/* 54 */ virtual void vfunc_54();
/* 58 */ virtual void vfunc_58();
/* 5c */ virtual void vfunc_5c();
/* 60 */ virtual void vfunc_60(unk32 param1, unk32 param2, s32 param3);
/* 64 */ virtual void vfunc_64(u32 param1);
/* 68 */ virtual void vfunc_68(unk32 param1, unk32 param2);
/* 6c */ virtual void vfunc_6c(s32 param1, Vec3p *param2);
/* 70 */ virtual void vfunc_70(s32 param1);
/* 74 */ virtual unk32 vfunc_74();
/* 78 */ virtual unk32 vfunc_78();
/* 7c */ virtual unk32 vfunc_7c();
/* 80 */
void func_ov000_020b4440();
void func_ov000_020b4460(s32 param1);
void func_ov000_020b44d4(s32 param1, u32 param2);
void func_ov000_020b4558(s32 param1, u32 param2);
void func_ov000_020b45e0();
void func_ov000_020b45f8(unk32 *param1, unk8 param2, unk8 param3);
void func_ov000_020b464c(unk32 *param1, unk8 param2, unk8 param3);
void func_ov000_020b484c(s32 param1, s32 param2, s32 param3);
void func_ov000_020b4944(unk32 param1, u32 param2, s32 param3);
void func_ov000_020b4a00(s32 *param1, s32 *param2, s32 *param3, s32 param4);
PlayerControlData();
};
+65
View File
@@ -0,0 +1,65 @@
#pragma once
#include "global.h"
#include "types.h"
#include "DTCM/UnkStruct_027e0fd4.hpp"
#include "Player/EquipBombchu.hpp"
#include "Player/EquipShield.hpp"
#include "Player/LinkStateCutscene.hpp"
#include "Player/LinkStateFollow.hpp"
#include "Player/PlayerLinkBase.hpp"
class PlayerLink : public PlayerLinkBase {
public:
/* 00 (base) */
/* 70 */ s32 mUnk_70;
/* 74 */ unk8 mUnk_74[0x4];
/* 78 */ unk32 mUnk_78;
/* 7c */ unk32 mUnk_7c;
/* 80 */ char mUnk_80;
/* 81 */ unk8 mUnk_81[0x3];
/* 84 */
/* 00 */ virtual s32 GetMaxHealth() override;
/* 04 */ virtual bool vfunc_04() override;
/* 1c */ virtual void Init() override;
/* 24 */ virtual void UpdatePos() override;
/* 2c */ virtual void vfunc_2c(s32 param1, unk8 param2) override;
/* 40 */ virtual void AddHealth(s16 amount) override;
/* 44 */ virtual void vfunc_44() override;
/* 48 */ virtual void vfunc_48() override;
/* 4c */ virtual void vfunc_4c() override;
/* 50 */ virtual ~PlayerLink() override;
/* 68 */ virtual void vfunc_68() override;
/* 6c */ virtual void vfunc_6c() override;
/* 74 */ virtual void vfunc_74() override;
/* 78 */ virtual unk32 vfunc_78() override;
/* 7c */ virtual void vfunc_7c() override;
/* 80 */ virtual void SetUnk_5e() override;
/* 84 */ virtual void ResetUnk_5e() override;
/* 88 */ virtual void OnDeath(bool param1);
/* 8c */
static PlayerLink *Create();
static PlayerLink *GetInstance();
void func_ov014_0213eef0(s32 param1);
static LinkStateCutscene *GetLinkStateCutscene();
PlayerLink();
void func_ov014_0213f37c();
static LinkStateItem *GetLinkStateItem();
static void func_ov014_0213f734(unk32 *param1, UnkStruct_027e0fd4 *param2);
void func_ov014_0213f740();
void func_ov014_0213f97c();
unk32 func_ov023_02177e7c();
unk32 func_ov023_02177e84();
void func_ov023_02177e90();
bool func_ov023_02178058();
static LinkStateFollow *GetLinkStateFollow();
void func_ov023_02178174();
static EquipBombchu *GetEquipBombchu();
static EquipShield *GetEquipShield();
void GiveControlToLink();
void func_ov023_02178630();
};
+100 -23
View File
@@ -1,13 +1,15 @@
#pragma once
#include "global.h"
#include "lib/math.h"
#include "nds/math.h"
#include "types.h"
#include "Actor/ActorManager.hpp"
#include "Debug/DebugHierarchy.hpp"
#include "Item/ItemManager.hpp"
#include "Player/MotionParams.hpp"
#include "Player/PlayerBase.hpp"
#include "Player/PlayerControlData.hpp"
typedef s32 PlayerCharacter;
enum PlayerCharacter_ {
@@ -43,22 +45,22 @@ public:
/* 6c */ DebugHierarchy *mDebugHierarchy_2;
/* 70 */
/* 00 */ s32 GetMaxHealth() override;
/* 08 */ ItemFlag GetEquipId() override;
/* 0c */ bool CanMove() override;
/* 10 */ void vfunc_10(Cylinder *param1) override;
/* 14 */ void vfunc_14(Cylinder *param1) override;
/* 18 */ void vfunc_18(s32 param1) override;
/* 1c */ void Init() override;
/* 20 */ void vfunc_20() override;
/* 24 */ void vfunc_24() override;
/* 28 */ void vfunc_28(s32 param1) override;
/* 2c */ void vfunc_2c(s32 param1, unk8 param2) override;
/* 30 */ bool vfunc_30(s32 param1, Vec3p *param2, s32 param3) override;
/* 34 */ bool Teleport(Vec3p *pos, s16 angle, unk32 param3, bool param4, bool param5) override;
/* 38 */ bool TeleportToEntrance(unk32 entranceId, bool param2) override;
/* 3c */ bool TeleportToLastEntrance(bool param1) override;
/* 50 */ ~PlayerLinkBase() override;
/* 00 */ virtual s32 GetMaxHealth() override;
/* 08 */ virtual ItemFlag GetEquipId() override;
/* 0c */ virtual bool CanMove() override;
/* 10 */ virtual void vfunc_10(Cylinder *param1) override;
/* 14 */ virtual void vfunc_14(Cylinder *param1) override;
/* 18 */ virtual void vfunc_18(s32 param1) override;
/* 1c */ virtual void Init() override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void UpdatePos() override;
/* 28 */ virtual void vfunc_28(s32 param1) override;
/* 2c */ virtual void vfunc_2c(s32 param1, unk8 param2) override;
/* 30 */ virtual bool vfunc_30(s32 param1, Vec3p *param2, s32 param3) override;
/* 34 */ virtual bool Teleport(Vec3p *pos, s16 angle, unk32 param3, bool param4, bool param5) override;
/* 38 */ virtual bool TeleportToEntrance(unk32 entranceId, bool param2) override;
/* 3c */ virtual bool TeleportToLastEntrance(bool param1) override;
/* 50 */ virtual ~PlayerLinkBase() override;
/* 58 */ virtual bool vfunc_58();
/* 5c */ virtual bool vfunc_5c();
/* 60 */ virtual bool vfunc_60();
@@ -73,13 +75,88 @@ public:
/* 84 */ virtual void ResetUnk_5e();
/* 88 */
bool func_ov00_020bbd80(s32 param1);
void func_ov00_020bc854(Vec3p *param1);
bool func_ov00_020bce48(ItemId cutsceneItemId); // PlayItemCutscene
bool func_ov00_020bd304();
bool GongoronCollidesWith(Cylinder *hitbox);
s32 GetGrabActorId();
void UnequipPotion();
void ChangeLinkState(s32 index);
void SetLinkSubState(s32 index, unk32 substate);
PlayerControlData *GetPlayerControlData(s32 index);
void GetDistanceTo(Vec3p *vec, q20 *yDist, q20 *xzDist);
bool func_ov000_020bb68c(Vec3p *target);
bool func_ov000_020bb6d4();
void func_ov000_020bb810(Vec3p *target, unk32 param2);
void func_ov000_020bb8c4(Vec3p *param1);
void TurnTo(Vec3p *target);
void func_ov000_020bb9b0();
void func_ov000_020bb9c8();
void func_ov000_020bb9e4();
bool func_ov000_020bba00();
bool func_ov000_020bba14();
bool func_ov000_020bba28();
void func_ov000_020bba48();
bool func_ov000_020bbabc();
bool func_ov000_020bbb18();
bool func_ov000_020bbb64();
bool func_ov000_020bbb78();
void func_ov000_020bbbb8();
bool func_ov000_020bbbd0(s32 param1, s32 param2);
bool func_ov000_020bbc68(s32 param1);
bool func_ov000_020bbd40();
bool func_ov000_020bbd60();
bool func_ov000_020bbd80(s32 param1);
unk32 func_ov000_020bbe94();
void func_ov000_020bc088();
ItemManager *GetItemManager();
void func_ov000_020bc1c8(unk32 param1, unk32 param2, unk32 param3);
bool func_ov000_020bc210();
void SetVelocity(Vec3p *velocity, bool setAngle);
void func_ov000_020bc280(unk16 param1);
unk32 func_ov000_020bc2d4(unk32 param1);
unk32 func_ov000_020bc320(unk32 param1, unk32 param2, unk32 param3);
void func_ov000_020bc398(unk32 param1, s32 param2);
PlayerCharacter GetCurrentCharacter();
s32 GetHealth(PlayerCharacter character);
void AddHealth(s16 amount, PlayerCharacter character);
void func_ov000_020bc4ac();
s32 GetStateId();
s32 func_ov000_020bc520(Vec3p *param1);
unk32 Grab();
void func_ov000_020bc7e0(unk32 param1);
s32 GetGrabActorId();
s32 func_ov000_020bc808();
unk32 func_ov000_020bc84c();
void func_ov000_020bc854(Vec3p *param1);
void UpdateTilePos(Vec3p *param1, PlayerCharacter character);
void func_ov000_020bc90c(unk32 *param1, s32 param2);
bool func_ov000_020bc960(unk32 param1, unk32 param2, unk32 param3);
bool GongoronCollidesWith(Cylinder *hitbox);
bool func_ov000_020bcc78();
void func_ov000_020bccc8();
void func_ov000_020bcdb8();
void func_ov000_020bcdec(Vec3p *param1, unk16 param2);
bool PlayItemCutscene(ItemId cutsceneItemId);
bool func_ov000_020bcec8();
bool func_ov000_020bcefc();
bool func_ov000_020bcf2c();
bool func_ov000_020bcf50(Vec3p *param1, unk32 param2);
bool func_ov000_020bcf84(Vec3p *param1, Vec3p *param2);
bool func_ov000_020bcfb8(s32 param1);
bool func_ov000_020bd030(unk32 param1);
bool func_ov000_020bd070(unk32 param1);
bool func_ov000_020bd0a8();
bool func_ov000_020bd0bc(Vec3p *param1, s32 param2);
bool func_ov000_020bd268();
bool func_ov000_020bd2bc();
bool func_ov000_020bd304();
bool func_ov000_020bd318();
void SetPlayerCharacter(PlayerCharacter character);
bool func_ov000_020bd3b0(unk32 param1, unk32 param2, unk32 param3, unk16 param4);
void SetPosition(Vec3p *position);
void SetAngle(s16 *angle);
bool func_ov000_020bd510(s32 param1, unk32 *param2);
PlayerLinkBase();
void UpdatePos(unk32 param1);
bool func_ov005_0210eba4();
};
extern PlayerLinkBase *gPlayerLink;
+34
View File
@@ -0,0 +1,34 @@
#pragma once
#include "global.h"
#include "types.h"
#include "Save/SaveItemManager.hpp"
#include "System/SysNew.hpp"
class PlayerManager : public SysObject {
public:
/* 00 */ u16 mMaxHealth;
/* 02 */ u16 mHealth;
/* 04 */ s16 mMaxShipHealth;
/* 06 */ s16 mShipHealth;
/* 08 */ u16 mSalvageArmHealth;
/* 0a */ s16 mFlags;
/* 0c */ unk16 mUnk_0c;
/* 0e */ unk8 mUnk_0e;
/* 0f */ unk8 mUnk_0f;
/* 10 */
void Save(SaveItemManager *save);
void IncreaseMaxHealth(s16 amount);
void UpdateShipMaxHealth();
static void Create();
static void Destroy();
PlayerManager();
~PlayerManager();
void Init(bool param1);
void func_ov004_02108008();
};
extern PlayerManager *gPlayerManager;
+1 -1
View File
@@ -1,8 +1,8 @@
#pragma once
#include "global.h"
#include "lib/math.h"
#include "lib/touch.h"
#include "nds/math.h"
#include "types.h"
typedef u16 TouchFlags;
+29 -1
View File
@@ -1,3 +1,31 @@
#pragma once
struct FadeControl;
#include "global.h"
#include "types.h"
struct FadeControl {
/* 00 */ unk32 mState;
/* 04 */ unk32 mUnk_04;
/* 08 */ s32 mCurrentBright;
/* 0c */ s32 mBrightA;
/* 10 */ s32 mBrightB;
/* 14 */ unk16 mCurrentFadeLength;
/* 16 */ unk16 mUnk_16;
/* 18 */ u16 mUnk_18;
/* 1a */ u16 mFadeLength;
/* 1c */ unk32 mFadeTimer;
/* 20 */ bool mUnk_20;
/* 20 */ bool mUnk_21;
/* 20 */ bool mUnk_22;
/* 23 */ unk8 mUnk_23;
/* 24 */
void Register();
void Unregister();
FadeControl();
void func_0202aba8(s32 fadeLength, unk32 param2, unk32 newState);
bool func_0202abdc(s32 fadeLength, unk32 param2);
bool func_0202abf4(s32 fadeLength, unk32 param2);
bool func_0202ac0c(s32 currentFadeLength, u16 param2, s32 fadeLength, unk32 param4);
void UpdateFade(s32 speed);
};
+33
View File
@@ -0,0 +1,33 @@
#pragma once
#include "global.h"
#include "types.h"
#include "Render/FadeControl.hpp"
#define FADE_CONTROL_COUNT 16
struct FadeControlEntry {
/* 0 */ FadeControl *mControl;
/* 4 */ unk32 mUnk_4;
/* 8 */ unk32 mUnk_8;
/* c */
};
struct FadeController {
/* 00 */ s32 mLength;
/* 04 */ FadeControl (*mList)[FADE_CONTROL_COUNT];
/* 44 */ FadeControl *mCurrent;
/* 48 */
bool Has(FadeControl *control);
static bool Contains(FadeControlEntry *needle, s32 length, FadeControl **haystack);
bool AddIfAbsent(FadeControl *control, unk32 param2, unk32 param3);
static bool Add(FadeControlEntry *entry, s32 maxLength, s32 *length, FadeControl **list, bool allowDuplicates);
void RemoveFadeControl(FadeControl *control);
static bool Remove(FadeControlEntry *entry, s32 *length, FadeControl **list);
bool func_0202d77c(FadeControl *control);
bool func_0202d7ac();
void ProcessFade(s32 param1);
void SetScreenBrightness(s32 param1);
};
+11
View File
@@ -3,6 +3,8 @@
#include "global.h"
#include "types.h"
#include <nds/math.h>
#include "System/SysNew.hpp"
class ItemModel;
@@ -37,4 +39,13 @@ public:
/* 38 */ virtual void vfunc_38();
/* 3c */ virtual void vfunc_3c();
/* 40 */
ModelRender();
void *func_ov000_020a9624(s32 param1);
void func_ov000_020a98e8(unk32 param1);
void func_ov000_020a990c(unk32 param1);
void func_ov000_020a9938(unk32 param1);
void func_ov000_020a9960(unk32 param1);
void func_ov000_020a9998(unk32 param1, unk32 param2);
void func_ov000_020a99c0();
};
+16 -1
View File
@@ -51,6 +51,8 @@ struct FlagsUnk2 {
/* 16 */ unk8 mUnk_16;
/* 17 */ unk8 mUnk_17;
/* 18 */
~FlagsUnk2();
};
struct FlagsUnk {
@@ -69,6 +71,10 @@ struct FlagsUnk {
/* 4a */ unk8 mUnk_4a;
/* 4b */ unk8 mUnk_4b;
/* 4c */
~FlagsUnk();
void func_ov000_020980f8();
};
class AdventureFlags : public SysObject {
@@ -125,7 +131,16 @@ public:
bool func_ov00_0209809c();
bool func_ov00_020980ac();
void func_ov00_020980bc(s32 param1);
void func_ov00_020980d0();
AdventureFlags();
~AdventureFlags();
static void Create();
static void Destroy();
void func_ov004_021044f8(s32 param1);
void func_ov004_0210453c();
bool func_ov004_0210455c(s32 param1);
void func_ov004_021046c8(unk32 param1);
void func_ov004_021046d4();
};
extern AdventureFlags *gAdventureFlags;
+37
View File
@@ -0,0 +1,37 @@
#pragma once
#include "global.h"
#include "types.h"
#include "../Item/Item.hpp"
struct SaveItemManager {
/* 00 */ ItemFlags itemFlags;
/* 10 */ u32 salvagedTreasureFlags;
/* 14 */ ShipPartPricesShown shipPartPricesShown;
/* 20 */ u32 treasurePriceShownFlags[CEIL_DIV(Treasure_COUNT, 32)];
/* 24 */ u8 equippedShipParts[ShipPart_COUNT];
/* 2c */ s8 shipParts[ShipPart_COUNT][ShipType_COUNT];
/* 74 */ s8 treasure[Treasure_COUNT];
/* 7c */ unk8 unk_7c[4];
/* 80 */ u16 hourglassSeconds;
/* 82 */ u16 unk_82[6];
/* 8e */ u16 numRupees;
/* 90 */ unk8 unk_90;
/* 91 */ unk8 unk_91;
/* 92 */ unk8 unk_92;
/* 93 */ u8 numBombs;
/* 94 */ u8 numBombchus;
/* 95 */ u8 numArrows;
/* 96 */ s8 equippedItem;
/* 97 */ Potion potions[MAX_POTIONS];
/* 99 */ u8 numGems[Gem_COUNT];
/* 9c */ u8 quiverSize;
/* 9d */ u8 bombBagSize;
/* 9e */ u8 bombchuBagSize;
/* 9f */ u8 unk_9f[6];
/* a5 */ u8 equippedFairy;
/* a6 */
SaveItemManager();
};
+4 -1
View File
@@ -92,9 +92,12 @@ class OverlayManager {
public:
OverlayId mLoadedOverlays[OverlayIndex_COUNT];
void Unload(OverlayIndex index);
void Load(OverlayIndex index, OverlayId id);
void LoadIfNotLoaded(OverlayIndex index, OverlayId id);
void Unload(OverlayIndex index);
void LoadOverlaySetup(s32 index);
void UnloadOverlaySetup();
void LoadEquipItem(ItemFlag equipId);
};
+13
View File
@@ -2,8 +2,21 @@
#include "types.h"
struct UnkStruct_0202e894 {
/* 00 */ u32 mId;
/* 04 */ unk8 mUnk_04[0x28];
/* 2c */
};
void *SysNew(UnkStruct_0202e894 *param1, s32 length, s32 param3);
void SysDelete(void *ptr);
void *func_0202e99c(s32 length);
void *func_0202e9bc(s32 length);
class SysObject {
public:
static void *operator new(unsigned long length, u32 *id, u32 idLength);
static void *operator new[](unsigned long length, u32 *id, u32 idLength);
static void operator delete(void *ptr);
static void operator delete[](void *ptr);
};
+24
View File
@@ -0,0 +1,24 @@
#pragma once
#include "global.h"
#include "types.h"
struct UnkStruct_0202e1a0 {
/* 00 */ unk16 mUnk_00;
/* 02 */ unk16 mUnk_02;
/* 04 */ s32 mUnk_04;
/* 08 */ u32 mUnk_08;
/* 0c */ s32 mUnk_0c;
/* 10 */ s32 mUnk_10;
/* 14 */ s32 mUnk_14;
/* 18 */
UnkStruct_0202e1a0();
void func_0202e1c4();
void func_0202e1e8();
bool func_0202e310(s32 param1);
unk32 func_0202e544();
unk32 func_0202e58c();
void func_0202e5cc();
void func_0202e670();
};
+78
View File
@@ -0,0 +1,78 @@
#pragma once
#include "global.h"
#include "types.h"
class UnkStruct_02032e7c {
public:
/* 00 (vtable) */
/* 04 */ unk32 mUnk_04;
/* 08 */ unk16 mUnk_08;
/* 0a */ unk16 mUnk_0a;
/* 0c */ unk16 mUnk_0c;
/* 0e */ unk16 mUnk_0e;
/* 10 */ unk32 mUnk_10;
/* 14 */
/* 0 */ virtual ~UnkStruct_02032e7c();
/* 8 */
UnkStruct_02032e7c();
};
class UnkStruct_02032f0c {
public:
/* 00 (vtable) */
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0c */ u16 *mUnk_0c;
/* 10 */ unk32 mUnk_10[6];
/* 28 */ unk32 mUnk_28;
/* 2c */ s32 **mUnk_2c;
/* 30 */ s32 mUnk_30;
/* 34 */ s32 mUnk_34;
/* 38 */ unk32 mUnk_38;
/* 3c */ unk16 mUnk_3c;
/* 3e */ unk16 mUnk_3e[6];
/* 4a */ u16 mUnk_4a;
/* 4c */ u8 mUnk_4c;
/* 4d */ bool mUnk_4d;
/* 4e */ u8 mUnk_4e;
/* 4f */ u8 mUnk_4f;
/* 50 */ u8 mUnk_50;
/* 51 */ u8 mUnk_51;
/* 52 */
/* 00 */ virtual ~UnkStruct_02032f0c();
/* 08 */ virtual void vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4);
/* 0c */ virtual void vfunc_0c(unk32 param1, unk32 param2, unk32 param3, unk32 param4);
/* 10 */ virtual void vfunc_10(u32 param1, unk32 param2);
/* 14 */ virtual bool vfunc_14(s32 param1, s32 param2);
/* 18 */ virtual unk32 vfunc_18(s32 param1);
/* 1c */ virtual unk32 vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4);
/* 20 */ virtual unk32 vfunc_20(s32 param1, s32 *param2);
/* 24 */ virtual bool vfunc_24(s16 **param1);
/* 28 */
UnkStruct_02032f0c();
void func_02032f94();
u16 **SetUnk_0c(u16 *value);
u8 func_02032fa4();
s32 func_02032fb4();
void func_02033214(unk32 param1, unk32 param2, unk32 param3, u8 param4, unk32 param5);
void func_020334b4(u32 param1, s32 param2, s32 param3, s32 param4);
void func_02033628(unk32 param1, u16 *param2);
u32 func_0203369c(u16 *param1, s32 param2);
void func_02033780(s32 param1);
s32 func_020337d8(s32 param1);
s32 func_020337fc(s16 *param1, s32 param2);
void func_020338a8(s32 param1, unk32 param2);
void func_020338d0(unk32 *param1, unk32 param2);
s32 func_02033904(unk32 param1, unk32 param2);
s32 func_02033938(unk32 param1);
s32 func_0203396c(u16 *param1);
u16 *func_02033b0c(s32 param1);
bool func_02033c6c();
unk32 func_02033c88(u32 param1);
s32 func_02033cbc(s16 *param1);
};
+44
View File
@@ -0,0 +1,44 @@
#pragma once
#include "global.h"
#include "types.h"
#include "Unknown/UnkStruct_0202e1a0.hpp"
class UnkStruct_02035064 {
public:
/* 00 (vtable) */
/* 04 */ unk32 mUnk_04;
/* 08 */ unk8 mUnk_08[0xc];
/* 14 */ u32 mUnk_14;
/* 18 */ unk8 mUnk_18[0x4];
/* 1c */ unk32 mUnk_1c;
/* 20 */ u32 mUnk_20;
/* 24 */ unk8 mUnk_24[0x28];
/* 4c */ s16 mUnk_4c;
/* 4e */ s16 mUnk_4e;
/* 50 */ unk8 mUnk_50[0xc];
/* 5c */ UnkStruct_0202e1a0 mUnk_5c;
/* 74 */ u16 *mUnk_74;
/* 78 */ s32 mUnk_78;
/* 7c */ u32 mUnk_7c;
/* 80 */ u16 mUnk_80;
/* 82 */ unk16 mUnk_82;
/* 84 */ unk16 mUnk_84;
/* 86 */ bool mUnk_86;
/* 87 */ unk8 mUnk_87;
/* 88 */
/* 0 */ virtual s32 vfunc_0();
/* 4 */ virtual s32 vfunc_4();
/* 8 */
UnkStruct_02035064();
~UnkStruct_02035064();
void func_020350b0();
void func_020350b4(s32 param1, unk32 param2, unk8 param3, unk16 param4, unk16 param5);
void func_0203516c();
void func_020351b8(bool param1, bool param2, bool param3, bool param4);
void func_020352d8();
};
+53
View File
@@ -0,0 +1,53 @@
#pragma once
#include "global.h"
#include "types.h"
#include "Player/LinkStateInteract.hpp"
class UnkStruct_02037750 {
public:
/* 00 (vtable) */
/* 04 */ unk32 mUnk_04[0x4];
/* 14 */ unk32 mUnk_14;
/* 18 */ unk32 mUnk_18;
/* 1c */ u8 mUnk_1c;
/* 1d */ unk8 mUnk_1d;
/* 1e */ u16 mUnk_1e;
/* 20 */
/* 00 */ virtual ~UnkStruct_02037750();
/* 08 */ virtual void vfunc_08(unk32 param1);
/* 0c */ virtual void vfunc_0c(s32 param1);
/* 10 */ virtual void vfunc_10();
/* 14 */ virtual void vfunc_14();
/* 18 */ virtual void vfunc_18();
/* 1c */ virtual unk32 vfunc_1c();
/* 20 */ virtual void vfunc_20();
/* 24 */ virtual void vfunc_24(unk32 param1);
/* 28 */ virtual void vfunc_28(s32 param1);
/* 2c */ virtual unk32 vfunc_2c(s32 param1);
/* 30 */ virtual unk32 vfunc_30();
/* 34 */
UnkStruct_02037750(unk32 param1, unk32 param2);
LinkStateInteract *GetLinkStateInteract();
void func_020385d0(s32 param1, unk32 *param2);
};
class UnkStruct_020386d8 : public UnkStruct_02037750 {
public:
/* 00 (base) */
/* 20 */ unk8 mUnk_20;
/* 21 */ unk8 mUnk_21[0x3];
/* 24 */ unk32 mUnk_24;
/* 28 */
UnkStruct_020386d8();
/* 00 */ virtual ~UnkStruct_020386d8();
/* 08 */ virtual void vfunc_08(unk32 param1);
/* 24 */ virtual void vfunc_24(unk32 param1);
/* 28 */ virtual void vfunc_28();
/* 30 */ virtual unk32 vfunc_30();
/* 34 */
};
+88
View File
@@ -0,0 +1,88 @@
#pragma once
#include "global.h"
#include "types.h"
#include "Unknown/UnkStruct_0203dae0.hpp"
class UnkStruct_02038aa0;
class UnkStruct_0203881c : public UnkStruct_02032e7c {
public:
/* 00 (base) */
/* 14 */ unk32 mUnk_14;
/* 18 */ unk32 mUnk_18;
/* 1c */ unk32 mUnk_1c;
/* 20 */ unk32 mUnk_20;
/* 24 */ unk32 mUnk_24;
/* 28 */
/* 0 */ virtual ~UnkStruct_0203881c();
/* 8 */
UnkStruct_0203881c();
void func_02038858(unk32 param1);
void func_02038888();
void func_02038950(UnkStruct_02038aa0 *param1, s32 param2);
void func_02038a80(s32 param1);
};
class UnkStruct_02038aa0 : public UnkStruct_0203dae0 {
public:
/* 000 (base) */
/* 123 */ unk8 mUnk_123;
/* 124 */ unk32 mUnk_124;
/* 128 */ unk32 mUnk_128;
/* 12c */ unk32 mUnk_12c;
/* 130 */ unk8 mUnk_130[0x20];
/* 150 */ unk8 mUnk_150;
/* 151 */ unk8 mUnk_151;
/* 152 */ unk8 mUnk_152;
/* 153 */ unk8 mUnk_153;
/* 154 */ unk32 mUnk_154;
/* 158 */ unk8 mUnk_158[0x2];
/* 15a */ unk16 mUnk_15a;
/* 15c */ unk16 mUnk_15c;
/* 15e */ u8 mUnk_15e;
/* 15f */ u8 mUnk_15f;
/* 160 */ u8 mUnk_160;
/* 161 */
/* 00 */ virtual ~UnkStruct_02038aa0();
/* 08 */ virtual void vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4);
/* 10 */ virtual void vfunc_10(unk32 param1);
/* 1c */ virtual unk32 vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4);
/* 20 */ virtual unk32 vfunc_20(s32 param1, s32 *param2);
/* 2c */ virtual void vfunc_2c();
/* 30 */ virtual void vfunc_30();
/* 34 */ virtual unk32 vfunc_34(s32 param1);
/* 38 */ virtual unk32 vfunc_38();
/* 3c */ virtual void vfunc_3c() = 0;
/* 40 */ virtual void vfunc_40() = 0;
/* 44 */ virtual void vfunc_44();
/* 48 */ virtual void vfunc_48();
/* 4c */ virtual void vfunc_4c();
/* 50 */ virtual void vfunc_50(unk32 param1, unk32 param2, s32 param3, unk32 param4);
/* 54 */ virtual void vfunc_54();
/* 58 */ virtual void vfunc_58();
/* 5c */ virtual void vfunc_5c();
/* 60 */ virtual void vfunc_60();
/* 64 */ virtual void vfunc_64();
/* 68 */ virtual s32 vfunc_68(unk32 param1);
/* 6c */ virtual void vfunc_6c(s32 *param1, s32 *param2);
/* 70 */ virtual void vfunc_70(s32 *param1, s32 *param2);
/* 74 */
UnkStruct_02038aa0(u8 param1, u8 param2);
void func_02038b34(u32 param1, unk32 param2);
void func_02038b40();
bool func_02038b78();
s32 func_02038cb8(s32 param1);
s32 func_02038cf4();
s32 func_02038d10();
bool func_02038ef4(s32 param1, s32 param2);
void func_02039208(unk16 param1);
unk32 func_02039250();
void func_02039440(unk32 param1, unk32 param2);
bool func_0203951c();
};
+96
View File
@@ -0,0 +1,96 @@
#pragma once
#include "global.h"
#include "types.h"
#include "Unknown/UnkStruct_02035064.hpp"
#include "Unknown/UnkStruct_02038aa0.hpp"
class UnkStruct_020397f8 : public UnkStruct_02038aa0 {
public:
/* 000 (base) */
/* 161 */ unk8 mUnk_161[0x3];
/* 164 */ unk32 mUnk_164;
/* 168 */ UnkStruct_02035064 mUnk_168;
/* 1f0 */ UnkStruct_02035064 mUnk_1f0;
/* 278 */ UnkStruct_02035064 mUnk_278;
/* 300 */ UnkStruct_02035064 mUnk_300;
/* 388 */ UnkStruct_02035064 mUnk_388;
/* 410 */ unk32 *mUnk_410;
/* 414 */ unk32 mUnk_414;
/* 418 */ unk32 mUnk_418;
/* 41c */ unk16 mUnk_41c;
/* 41e */ unk16 mUnk_41e;
/* 420 */ unk16 mUnk_420;
/* 422 */ unk8 mUnk_422[0x2];
/* 424 */ unk32 *mUnk_424;
/* 428 */ unk32 mUnk_428;
/* 42c */ unk8 mUnk_42c[0x124];
/* 550 */ unk32 mUnk_550;
/* 554 */ unk32 mUnk_554;
/* 558 */ unk8 mUnk_558[0x4];
/* 55c */ unk32 mUnk_55c;
/* 560 */ unk32 mUnk_560;
/* 564 */ unk8 mUnk_564[0x8];
/* 56c */ unk16 mUnk_56c;
/* 56e */ unk16 mUnk_56e;
/* 570 */ unk16 mUnk_570;
/* 572 */ unk16 mUnk_572;
/* 574 */ unk16 mUnk_574;
/* 576 */ unk16 mUnk_576;
/* 578 */ unk16 mUnk_578;
/* 57a */ u8 mUnk_57a;
/* 57b */ u8 mUnk_57b;
/* 57c */ u8 mUnk_57c;
/* 57d */ u8 mUnk_57d;
/* 57e */ u8 mUnk_57e;
/* 57f */ u8 mUnk_57f;
/* 580 */ u8 mUnk_580;
/* 581 */ u8 mUnk_581;
/* 582 */ u8 mUnk_582;
/* 583 */ u8 mUnk_583;
/* 584 */ unk8 mUnk_584;
/* 585 */ u8 mUnk_585;
/* 586 */ u8 mUnk_586;
/* 587 */ unk8 mUnk_587;
/* 588 */ unk32 mUnk_588;
/* 58c */
UnkStruct_020397f8();
/* 4c */ virtual void vfunc_4c();
/* 2c */ virtual void vfunc_2c();
void func_02039ca8();
/* 3c */ virtual void vfunc_3c();
/* 40 */ virtual void vfunc_40(s32 param1, s32 param2);
void func_0203a188(s32 param1, s32 param2);
bool func_0203a2c0();
unk32 func_0203a30c();
/* 48 */ virtual void vfunc_48();
void func_0203a35c();
bool func_0203a3e0();
/* 44 */ virtual void vfunc_44(s32 param1, s32 param2);
bool func_0203a6d0(unk32 param1);
/* 50 */ virtual void vfunc_50(unk32 param1, unk32 param2, s32 param3, unk32 param4);
/* 54 */ virtual void vfunc_54();
/* 5c */ virtual void vfunc_5c();
/* 58 */ virtual void vfunc_58();
bool func_0203b0bc();
s32 func_0203b0ec(u32 param1);
/* 18 */ virtual unk32 vfunc_18(s32 param1);
/* 1c */ virtual unk32 vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4);
/* 60 */ virtual void vfunc_60(s32 param1);
/* 64 */ virtual void vfunc_64(unk32 param1);
void func_0203b764();
/* 20 */ virtual unk32 vfunc_20(s32 param1, s32 *param2);
void func_0203bd8c(s32 param1);
/* 6c */ virtual void vfunc_6c(s32 *param1, s32 *param2);
void func_0203be08();
void func_0203be64();
bool func_0203c084();
bool func_0203c13c();
bool func_0203c1a0();
bool func_0203c25c();
/* 00 */ virtual ~UnkStruct_020397f8();
/* 38 */ virtual unk32 vfunc_38();
/* 74 */
};
+49
View File
@@ -0,0 +1,49 @@
#pragma once
#include "global.h"
#include "types.h"
#include "Unknown/UnkStruct_02032f0c.hpp"
class UnkStruct_0203dae0 : public UnkStruct_02032f0c {
public:
/* 000 (base) */
/* 052 */ unk8 mUnk_052[0x2];
/* 054 */ unk32 mUnk_054[0x30];
/* 114 */ void *mUnk_114;
/* 118 */ unk32 mUnk_118;
/* 11c */ unk16 mUnk_11c;
/* 11e */ u8 mUnk_11e;
/* 11f */ u8 mUnk_11f;
/* 120 */ u8 mUnk_120;
/* 121 */ u8 mUnk_121;
/* 122 */ u8 mUnk_122;
/* 123 */
/* 00 */ virtual ~UnkStruct_0203dae0();
/* 08 */ virtual void vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4);
/* 0c */ virtual void vfunc_0c(unk32 param1, unk32 param2, unk32 param3, unk32 param4);
/* 10 */ virtual void vfunc_10(u32 param1, unk32 param2);
/* 14 */ virtual bool vfunc_14(s32 param1, s32 param2);
/* 18 */ virtual unk32 vfunc_18(s32 param1);
/* 28 */ virtual bool vfunc_28();
/* 2c */ virtual void vfunc_2c();
/* 30 */ virtual void vfunc_30();
/* 34 */
UnkStruct_0203dae0(u8 param1);
void func_0203dc10(s32 param1);
bool func_0203dc74(s32 param1, s32 param2);
void func_0203dcfc(u8 param1, unk32 param2, unk32 param3, s32 param4);
void func_0203ddec();
void func_0203ddfc();
void func_0203de14();
s32 func_0203de24();
bool func_0203de58(s32 param1);
bool func_0203e0f8(unk32 param1, s32 param2);
bool func_0203e1b0(unk32 param1, unk32 param2, s32 param3);
void func_0203e2e8(s32 param1, s32 param2, unk32 param3, u32 param4);
void func_0203e510(s32 *param1, s32 param2, s32 param3);
void func_0203e62c(s32 *param1, s32 param2);
bool func_0203e6e4(u32 param1, u32 param2, s32 param3);
};
@@ -0,0 +1,27 @@
#pragma once
#include "global.h"
#include "types.h"
#include <nds/math.h>
class UnkStruct_ov000_020b1528 {
public:
/* 00 (vtable) */
/* 04 */ unk16 mUnk_04;
/* 06 */ unk8 mUnk_06[0x2];
/* 08 */ Vec3p mUnk_08;
/* 14 */ u32 mUnk_14;
/* 18 */ unk32 mUnk_18;
/* 1c */
/* 00 */ virtual ~UnkStruct_ov000_020b1528();
/* 08 */ virtual bool vfunc_08();
/* 0c */ virtual bool vfunc_0c();
/* 10 */ virtual bool vfunc_10(s32 *param1);
/* 14 */ virtual bool vfunc_14(u16 *index, unk32 param2);
/* 18 */ virtual void Clear();
/* 1c */
UnkStruct_ov000_020b1528();
};
@@ -0,0 +1,22 @@
#pragma once
#include "global.h"
#include "types.h"
class UnkStruct_ov000_020beba8 {
public:
/* 0 (vtable) */
/* 4 */ unk32 mUnk_4;
/* 8 */ unk32 mUnk_8;
/* c */
/* 00 */ virtual ~UnkStruct_ov000_020beba8();
/* 08 */ virtual void vfunc_08(unk16 *param1);
/* 0c */ virtual void vfunc_0c(unk16 *param1);
/* 10 */ virtual void vfunc_10(s32 *param1);
/* 14 */ virtual void vfunc_14(u16 *param1);
/* 18 */ virtual void vfunc_18(s32 *param1);
/* 1c */
UnkStruct_ov000_020beba8(unk32 param1);
};
@@ -0,0 +1,48 @@
#pragma once
#include <nds/math.H>
#include "Physics/AABB.hpp"
#include "global.h"
#include "types.h"
class UnkStruct_ov000_020e2f04 {
public:
/* 00 (vtable) */
/* 04 */ unk8 mUnk_04;
/* 05 */ unk8 mUnk_05;
/* 06 */ unk8 mUnk_06[0x2];
/* 08 */ unk32 mUnk_08;
/* 0c */ unk32 mUnk_0c;
/* 10 */
/* 00 */ virtual ~UnkStruct_ov000_020e2f04();
/* 08 */ virtual unk32 vfunc_08() = 0;
/* 0c */ virtual void vfunc_0c();
/* 10 */ virtual void vfunc_10();
/* 14 */ virtual void vfunc_14(AABB *param1, unk32 param2, unk32 param3, unk32 param4);
/* 18 */ virtual void vfunc_18();
/* 1c */ virtual void vfunc_1c();
/* 20 */ virtual void SetBoundingBox(AABB *param1);
/* 24 */ virtual void vfunc_24();
/* 28 */ virtual void vfunc_28();
/* 2c */ virtual void GetBoundingBox(AABB *bbox);
/* 30 */ virtual void SetPosition(Vec3p *pos) = 0;
/* 34 */ virtual void vfunc_34() = 0;
/* 38 */ virtual void vfunc_38() = 0;
/* 3c */ virtual void GetPosition(Vec3p *pos) = 0;
/* 40 */ virtual q20 GetSizeXZ() = 0;
/* 44 */ virtual q20 GetHeight() = 0;
/* 48 */ virtual bool ContainsInXZ(Vec3p *pos) = 0;
/* 4c */ virtual bool Contains(Vec3p *pos) = 0;
/* 50 */ virtual bool IntersectsCube(Cube *cube) = 0;
/* 54 */ virtual void vfunc_54(Cube *param1, Vec3p *param2, u32 *param3) = 0;
/* 58 */ virtual void vfunc_58(unk32 param1, unk32 param2, s32 param3);
/* 5c */
inline UnkStruct_ov000_020e2f04() :
mUnk_04(1),
mUnk_05(0),
mUnk_08(0),
mUnk_0c(0) {}
};
-2
View File
@@ -1,8 +1,6 @@
#ifndef PH_GLOBAL_H
#define PH_GLOBAL_H
#define NULL 0
#define GET_FLAG(arr, pos) (((1 << ((pos) & 0x1f)) & (arr)[((u32) (pos)) >> 5]) != 0)
#define SET_FLAG(arr, pos) ((arr)[((u32) (pos)) >> 5] |= 1 << ((pos) & 0x1f))
#define RESET_FLAG(arr, pos) ((arr)[((u32) (pos)) >> 5] &= ~(1 << ((pos) & 0x1f)))
-95
View File
@@ -1,95 +0,0 @@
#pragma once
#include "global.h"
#include "types.h"
// Q20.12 fixed point number
typedef s32 q20;
// Q4.12 fixed point number
typedef s16 q4;
#define INT_TO_Q20(n) ((s32) ((n) << 12))
#define FLOAT_TO_Q21(n) ((s32) (((n) * 8192 + 1) / 4))
#define FLOAT_TO_Q20(n) ((s32) (((n) * 8192 + 1) / 2))
#define FLOAT_TO_Q19(n) ((s32) (((n) * 8192 + 1)))
#define ROUND_Q20(n) (((s32) (n) + 0x800) >> 12)
#define MUL_Q20(a, b) (q20)((((s64) (a)) * ((s64) (b)) + 0x800) >> 12)
#define DEG_TO_ANG(n) ((n) * 0x10000 / 360)
#define SIN(n) (gSinCosTable[2 * ((n) >> 4)])
#define COS(n) (gSinCosTable[2 * ((n) >> 4) + 1])
extern "C" s32 Atan2(s32 x, s32 y);
extern q4 gSinCosTable[];
typedef struct {
/* 0 */ s8 x;
/* 1 */ s8 y;
/* 2 */
} Vec2b;
typedef struct {
/* 0 */ s16 x;
/* 1 */ s16 y;
/* 2 */
} Vec2s;
typedef struct {
/* 0 */ q20 x;
/* 4 */ q20 y;
/* 8 */ q20 z;
/* c */
} Vec3p;
extern const Vec3p gVec3p_ZERO;
extern "C" void Vec3p_Add(Vec3p *a, Vec3p *b, Vec3p *out);
extern "C" void Vec3p_Sub(Vec3p *a, Vec3p *b, Vec3p *out);
extern "C" q20 Vec3p_Dot(Vec3p *a, Vec3p *b);
extern "C" void Vec3p_Cross(Vec3p *a, Vec3p *b, Vec3p *out);
extern "C" q20 Vec3p_Length(Vec3p *a);
extern "C" void Vec3p_Normalize(Vec3p *vec, Vec3p *out);
extern "C" void Vec3p_Axpy(q20 a, Vec3p *x, Vec3p *y, Vec3p *out);
extern "C" q20 Vec3p_Distance(Vec3p *a, Vec3p *b);
inline void Vec3p_Rotate(Vec3p *vec, q20 sin, q20 cos, Vec3p *out) {
out->x += MUL_Q20(vec->z, sin);
out->z += MUL_Q20(vec->z, cos);
out->x += MUL_Q20(vec->x, cos);
out->z += MUL_Q20(vec->x, -sin);
}
inline void Vec3p_CopyXZ(Vec3p *vec, Vec3p *out) {
q20 z = vec->z;
q20 x = vec->x;
out->x = x;
out->y = 0;
out->z = z;
}
inline void Vec3p_Copy(Vec3p *vec, Vec3p *out) {
out->x = vec->x;
out->y = vec->y;
out->z = vec->z;
}
typedef struct {
/* 00 */ q20 x;
/* 04 */ q20 y;
/* 08 */ q20 z;
/* 0c */ q20 w;
/* 10 */
} Vec4p;
typedef struct {
/* 00 */ Vec3p xColumn;
/* 0c */ Vec3p yColumn;
/* 18 */ Vec3p zColumn;
/* 24 */
} Mat3p;
extern "C" u32 FastDivide(u32 a, u32 b);
extern "C" u32 Divide(u32 a, u32 b);
extern "C" bool Approach(unk32 *src, unk32 dest, unk32 step);
extern "C" bool Approach_thunk(unk32 *src, unk32 dest, unk32 step);
+6
View File
@@ -1,6 +1,8 @@
#ifndef PH_TYPES_H
#define PH_TYPES_H
#include <stddef.h>
typedef unsigned long long u64;
typedef unsigned int u32;
typedef unsigned short u16;
@@ -15,6 +17,10 @@ typedef s8 unk8;
typedef s16 unk16;
typedef s32 unk32;
#ifndef __cplusplus
typedef s32 bool;
#endif
#define CEIL_DIV(a, b) (((a) + (b) - 1) / (b))
#endif