Merge branch 'main' into actor-manager

This commit is contained in:
Aetias
2024-10-21 20:36:15 +02:00
686 changed files with 383930 additions and 1775946 deletions
+36 -18
View File
@@ -13,8 +13,25 @@
#include "Player/EquipBoomerang.hpp"
#include "System/SysNew.hpp"
struct Actor_UnkStruct_012 {
/* 00 */ u16 mUnk_00;
/* 02 */ u8 mUnk_02;
/* 03 */ u8 mUnk_03;
/* 04 */ u32 mUnk_04;
/* 08 */ u32 mUnk_08;
/* 0c */ u32 mUnk_0c;
/* 10 */ u8 mUnk_10;
/* 11 */ u8 mUnk_11;
/* 12 */ u8 mUnk_12[0x2];
/* 14 */ u32 mUnk_14;
/* 18 */ u32 mUnk_18;
/* 1c */
Actor_UnkStruct_012();
};
struct Actor_UnkStruct_020 {
/* 00 */ unk16 mUnk_00[4];
/* 00 */ u16 mUnk_00[4];
/* 08 */ u8 mUnk_08[2];
/* 0a */ u8 mUnk_0a[2];
/* 0c */ unk8 mUnk_0c;
@@ -28,7 +45,7 @@ struct Actor_UnkStruct_020 {
};
struct Actor_UnkStruct_09c {
/* 0 */ unk16 mUnk_0;
/* 0 */ u16 mUnk_0;
/* 2 */ unk8 mUnk_2;
/* 3 */ unk8 mUnk_3;
/* 4 */ unk32 mUnk_4;
@@ -40,8 +57,8 @@ struct Actor_UnkStruct_09c {
struct Actor_UnkStruct_0a4 {
/* 00 */ bool mUnk_00;
/* 01 */ bool mUnk_01;
/* 01 */ bool mUnk_02;
/* 01 */ bool mUnk_03;
/* 02 */ bool mUnk_02;
/* 03 */ bool mUnk_03;
/* 04 */ Vec3p mUnk_04;
/* 10 */ s32 mUnk_10;
/* 14 */
@@ -49,10 +66,10 @@ struct Actor_UnkStruct_0a4 {
Actor_UnkStruct_0a4(q20 x, q20 y, q20 z, s32 unk_10);
};
class KillPickupsFilter: FilterActorReturn, public FilterActorBase {
class KillPickupsFilter : FilterActorReturn, public FilterActorBase {
public:
/* 00 (base) */
/* 04 */
/* 04 */
/* 0 */ virtual bool Filter(Actor *actor) override;
/* 4 */
@@ -60,11 +77,13 @@ public:
typedef u32 PlayerCollide;
enum PlayerCollide_ {
PlayerCollide_Player = 0x1,
PlayerCollide_Sword = 0x2,
PlayerCollide_Shield = 0x4,
PlayerCollide_Player = 0x1,
PlayerCollide_Sword = 0x2,
PlayerCollide_Shield = 0x4,
PlayerCollide_Gongoron = 0x8,
PlayerCollide_Hammer = 0x10,
PlayerCollide_Hammer = 0x10,
PlayerCollide_PickupFlags = PlayerCollide_Hammer | PlayerCollide_Gongoron | PlayerCollide_Sword | PlayerCollide_Player,
};
struct Knockback {
@@ -73,11 +92,10 @@ struct Knockback {
/* 10 */ unk32 mUnk_10;
/* 14 */ Actor *actor;
inline Knockback():
inline Knockback() :
mUnk_00(0),
mUnk_10(0xb),
actor(NULL)
{}
actor(NULL) {}
};
class Actor : public SysObject {
@@ -119,7 +137,7 @@ public:
/* 109 */ unk8 mUnk_109;
/* 10a */ unk8 mUnk_10a[0x6];
/* 110 */ unk8 mUnk_110;
/* 111 */ unk8 mUnk_111;
/* 111 */ bool mUnk_111;
/* 112 */ unk8 mUnk_112;
/* 113 */ unk8 mUnk_113;
/* 114 */ unk8 mUnk_114;
@@ -160,7 +178,7 @@ public:
/* 14 */ virtual void vfunc_14(u32 param1);
/* 18 */ virtual void vfunc_18(u32 param1);
/* 1c */ virtual void vfunc_1c(u16 *param1);
/* 20 */ virtual void vfunc_20(s32 param1);
/* 20 */ virtual void vfunc_20(bool param1);
/* 24 */ virtual void vfunc_24();
/* 28 */ virtual void vfunc_28();
/* 2c */ virtual s32 vfunc_2c();
@@ -172,7 +190,7 @@ public:
/* 44 */ virtual bool CollidesWith(Actor *other);
/* 48 */ virtual bool vfunc_48(Knockback *param1);
/* 4c */ virtual bool vfunc_4c(unk32 *param1);
/* 50 */ virtual Vec3p* GetPos();
/* 50 */ virtual Vec3p *GetPos();
/* 54 */ virtual void vfunc_54();
/* 58 */ virtual bool SetUnk_11b();
/* 5c */ virtual bool SetVelocity(Vec3p *vel);
@@ -198,7 +216,7 @@ public:
/* ac */ virtual void vfunc_ac();
/* b0 */ virtual void vfunc_b0();
/* b4 */
Actor();
bool func_01fffd04(s32 param1);
@@ -241,7 +259,7 @@ public:
void IncreaseActiveFrames();
bool func_ov00_020c2c0c();
bool func_ov00_020c2c70();
EquipBoomerang* GetEquipBoomerang();
EquipBoomerang *GetEquipBoomerang();
bool func_ov00_020c2d54();
bool func_ov00_020c2de4();
bool func_ov00_020c2e7c();
+4 -4
View File
@@ -80,19 +80,19 @@ public:
void DeleteActor(u32 index, bool param2);
static void func_ov00_020c3484(ActorRef *ref, Actor *actor, unk32 param3);
void Actor_vfunc_10(u32 param1);
Actor* FindActorById(s32 id);
Actor* GetActor(ActorRef *ref);
Actor *FindActorById(s32 id);
Actor *GetActor(ActorRef *ref);
s32 FilterActors(FilterActorBase *filter, ActorList *filteredActors);
static void FindActorByType(ActorRef *ref, ActorManager *manager, ActorTypeId type);
static void FindNearestActorOfType(ActorRef *ref, ActorManager *manager, ActorTypeId type, Vec3p *pos);
bool func_ov00_020c398c(u32 index);
void func_ov00_020c399c(u32 index, Cylinder *cylinder);
Actor* func_ov00_020c39ac(u32 index, const ActorTypeId *actorTypes, bool param3);
Actor *func_ov00_020c39ac(u32 index, const ActorTypeId *actorTypes, bool param3);
s32 func_ov00_020c3b2c(s32 *param1);
s32 func_ov00_020c3bb0(unk32 param1, s32 *param2);
void func_ov00_020c3ce8(unk32 param1, unk32 param2);
void Actor_vfunc_28();
static bool ActorTypeIsOneOf(char *type,char **types);
static bool ActorTypeIsOneOf(char *type, char **types);
};
extern ActorManager *gActorManager;
+3 -4
View File
@@ -9,13 +9,12 @@ struct ActorRef {
/* 8 */
inline ActorRef() {}
inline ActorRef(s32 id, s32 index):
inline ActorRef(s32 id, s32 index) :
id(id),
index(index)
{}
index(index) {}
inline void Reset() {
id = -1;
id = -1;
index = -1;
}
};
+7 -6
View File
@@ -1,12 +1,13 @@
#pragma once
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "types.h"
#include "Actor/Actor.hpp"
#include "Actor/ActorType.hpp"
#include "Item/Item.hpp"
#include "Item/ItemManager.hpp"
#include "Player/PlayerLinkBase.hpp"
typedef u32 RupeeId;
enum RupeeId_ {
@@ -27,7 +28,7 @@ public:
/* 000 (base) */
/* 158 */ RupeeId mRupeeId;
/* 15c */ unk16 mUnk_15c;
/* 15c */ u16 mUnk_15c;
/* 15e */ unk16 mUnk_15e;
/* 160 */
@@ -35,18 +36,18 @@ public:
/* 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(s32 param1) override;
/* 20 */ virtual void vfunc_20(bool param1) override;
/* 60 */ virtual bool vfunc_60() override;
/* 64 */ virtual void vfunc_64() override;
/* b4 */
static ActorRupee* Create();
static ActorRupee *Create();
ActorRupee();
void Move();
ItemId GetRupeeCutsceneItemId();
void func_ov14_0213b204(unk32 param1);
void Update(bool param1);
static void func_ov14_0213b5f4(RupeeId id, unk32 param2, Vec3p *param3, bool param4);
static void func_ov14_0213b6a4(RupeeId id, void *param2);
static void func_ov14_0213b6a4(RupeeId id, Actor_UnkStruct_012 *param2);
static bool func_ov14_0213b70c(RupeeId id);
};
+85 -76
View File
@@ -39,98 +39,107 @@
#define __ACTOR_TYPE_7 '7'
#define __ACTOR_TYPE_8 '8'
#define __ACTOR_TYPE_9 '9'
#define __CONCAT(a,b) a ## b
#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))) \
)
#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 = __ACTOR_TYPE_ID(N, U, L, L),
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 = __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_TreasureMap = __ACTOR_TYPE_ID(T,M,A,P),
ActorTypeId_DigSpot = __ACTOR_TYPE_ID(D,G,T,G),
ActorTypeId_TreasureMap = __ACTOR_TYPE_ID(T, M, A, P),
ActorTypeId_DigSpot = __ACTOR_TYPE_ID(D, G, T, G),
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 = __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_Heart = __ACTOR_TYPE_ID(H,A,R,T),
ActorTypeId_Rupee = __ACTOR_TYPE_ID(R,U,P,Y),
ActorTypeId_Heart = __ACTOR_TYPE_ID(H, A, R, T),
ActorTypeId_Rupee = __ACTOR_TYPE_ID(R, U, P, Y),
ActorTypeId_Bomb = __ACTOR_TYPE_ID(B,O,M,B),
ActorTypeId_Arrow = __ACTOR_TYPE_ID(A,R,R,W),
ActorTypeId_Bomb = __ACTOR_TYPE_ID(B, O, M, B),
ActorTypeId_Arrow = __ACTOR_TYPE_ID(A, R, R, W),
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 = __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_SmallKey = __ACTOR_TYPE_ID(N,K,E,Y),
ActorTypeId_SmallKey = __ACTOR_TYPE_ID(N, K, E, Y),
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 = __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_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 = __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_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 = __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),
};
class ActorType_UnkClass {
public:
u32 unk_00;
u32 unk_04;
u32 unk_08;
u32 unk_0C;
u32 unk_10;
ActorType_UnkClass(u32 unk_00, u32 unk_04) :
unk_00(unk_00),
unk_04(unk_04) {}
};
class Actor;
typedef Actor* (*ActorCreateFunc)();
typedef Actor *(*ActorCreateFunc)();
struct ActorType {
/* 00 */ ActorTypeId id;
@@ -146,7 +155,7 @@ struct ActorType {
unk32 func_0203e7c8();
void Register();
void Unregister();
static ActorType* Find(ActorTypeId id);
static ActorType *Find(ActorTypeId id);
};
struct ActorTypeList {
+1 -1
View File
@@ -5,7 +5,7 @@
struct UnkStruct_027e105c {
/* 0 */ const char **unk_0;
/* 4 */
unk32 LoadTreasureItemFanfare(Treasure);
};
+208 -207
View File
@@ -4,235 +4,236 @@
typedef s32 ItemFlag;
enum ItemFlag_ {
ItemFlag_None = -1,
/* 0x00 */ ItemFlag_OshusSword = 0,
/* 0x01 */ ItemFlag_WoodenShield = 1,
/* 0x02 */ ItemFlag_Boomerang = 2,
/* 0x03 */ ItemFlag_Shovel = 3,
/* 0x04 */ ItemFlag_BombBag = 4,
/* 0x05 */ ItemFlag_Bow = 5,
/* 0x06 */ ItemFlag_GrapplingHook = 6,
/* 0x07 */ ItemFlag_BombchuBag = 7,
/* 0x08 */ ItemFlag_Hammer = 8,
/* 0x09 */ ItemFlag_PotionA = 9,
/* 0x0a */ ItemFlag_PotionB = 10,
ItemFlag_EQUIP_START = ItemFlag_OshusSword,
ItemFlag_EQUIP_END = ItemFlag_PotionB + 1,
ItemFlag_EQUIP_COUNT = ItemFlag_EQUIP_END - ItemFlag_EQUIP_START,
ItemFlag_None = -1,
/* 0x00 */ ItemFlag_OshusSword = 0,
/* 0x01 */ ItemFlag_WoodenShield = 1,
/* 0x02 */ ItemFlag_Boomerang = 2,
/* 0x03 */ ItemFlag_Shovel = 3,
/* 0x04 */ ItemFlag_BombBag = 4,
/* 0x05 */ ItemFlag_Bow = 5,
/* 0x06 */ ItemFlag_GrapplingHook = 6,
/* 0x07 */ ItemFlag_BombchuBag = 7,
/* 0x08 */ ItemFlag_Hammer = 8,
/* 0x09 */ ItemFlag_PotionA = 9,
/* 0x0a */ ItemFlag_PotionB = 10,
ItemFlag_EQUIP_START = ItemFlag_OshusSword,
ItemFlag_EQUIP_END = ItemFlag_PotionB + 1,
ItemFlag_EQUIP_COUNT = ItemFlag_EQUIP_END - ItemFlag_EQUIP_START,
/* 0x14 */ ItemFlag_SpiritOfCourage = 20,
/* 0x15 */ ItemFlag_SpiritOfPower = 21,
/* 0x16 */ ItemFlag_SpiritOfWisdom = 22,
/* 0x17 */ ItemFlag_CourageLv1 = 23,
/* 0x18 */ ItemFlag_PowerLv1 = 24,
/* 0x19 */ ItemFlag_WisdomLv1 = 25,
ItemFlag_FAIRY_LV1 = ItemFlag_CourageLv1,
/* 0x1a */ ItemFlag_CourageLv2 = 26,
/* 0x1b */ ItemFlag_PowerLv2 = 27,
/* 0x1c */ ItemFlag_WisdomLv2 = 28,
ItemFlag_FAIRY_LV2 = ItemFlag_CourageLv2,
/* 0x14 */ ItemFlag_SpiritOfCourage = 20,
/* 0x15 */ ItemFlag_SpiritOfPower = 21,
/* 0x16 */ ItemFlag_SpiritOfWisdom = 22,
/* 0x17 */ ItemFlag_CourageLv1 = 23,
/* 0x18 */ ItemFlag_PowerLv1 = 24,
/* 0x19 */ ItemFlag_WisdomLv1 = 25,
ItemFlag_FAIRY_LV1 = ItemFlag_CourageLv1,
/* 0x1a */ ItemFlag_CourageLv2 = 26,
/* 0x1b */ ItemFlag_PowerLv2 = 27,
/* 0x1c */ ItemFlag_WisdomLv2 = 28,
ItemFlag_FAIRY_LV2 = ItemFlag_CourageLv2,
/* 0x20 */ ItemFlag_Hourglass = 32,
/* 0x21 */ ItemFlag_SeaChartSW = 33,
/* 0x22 */ ItemFlag_SeaChartNW = 34,
/* 0x23 */ ItemFlag_SeaChartSE = 35,
/* 0x24 */ ItemFlag_SeaChartNE = 36,
/* 0x25 */ ItemFlag_PhantomSword = 37,
/* 0x26 */ ItemFlag_SunKey = 38,
/* 0x27 */ ItemFlag_Unk_39 = 39,
/* 0x28 */ ItemFlag_FishingRod = 40,
/* 0x29 */ ItemFlag_Cannon = 41,
/* 0x2a */ ItemFlag_KingsKey = 42,
/* 0x2b */ ItemFlag_GhostKey = 43,
/* 0x2c */ ItemFlag_SalvageArm = 44,
/* 0x20 */ ItemFlag_Hourglass = 32,
/* 0x21 */ ItemFlag_SeaChartSW = 33,
/* 0x22 */ ItemFlag_SeaChartNW = 34,
/* 0x23 */ ItemFlag_SeaChartSE = 35,
/* 0x24 */ ItemFlag_SeaChartNE = 36,
/* 0x25 */ ItemFlag_PhantomSword = 37,
/* 0x26 */ ItemFlag_SunKey = 38,
/* 0x27 */ ItemFlag_Unk_39 = 39,
/* 0x28 */ ItemFlag_FishingRod = 40,
/* 0x29 */ ItemFlag_Cannon = 41,
/* 0x2a */ ItemFlag_KingsKey = 42,
/* 0x2b */ ItemFlag_GhostKey = 43,
/* 0x2c */ ItemFlag_SalvageArm = 44,
/* 0x2d */ ItemFlag_SwordsmansScroll = 45,
/* 0x2e */ ItemFlag_CycloneSlate = 46,
/* 0x2f */ ItemFlag_Unk_47 = 47,
/* 0x60 */ ItemFlag_TreasureChart1 = 96,
/* 0x61 */ ItemFlag_TreasureChart2 = 97,
/* 0x62 */ ItemFlag_TreasureChart3 = 98,
/* 0x63 */ ItemFlag_TreasureChart4 = 99,
/* 0x64 */ ItemFlag_TreasureChart5 = 100,
/* 0x65 */ ItemFlag_TreasureChart6 = 101,
/* 0x66 */ ItemFlag_TreasureChart7 = 102,
/* 0x67 */ ItemFlag_TreasureChart8 = 103,
/* 0x68 */ ItemFlag_TreasureChart9 = 104,
/* 0x69 */ ItemFlag_TreasureChart10 = 105,
/* 0x6a */ ItemFlag_TreasureChart11 = 106,
/* 0x6b */ ItemFlag_TreasureChart12 = 107,
/* 0x6c */ ItemFlag_TreasureChart13 = 108,
/* 0x6d */ ItemFlag_TreasureChart14 = 109,
/* 0x6e */ ItemFlag_TreasureChart15 = 110,
/* 0x6f */ ItemFlag_TreasureChart16 = 111,
/* 0x70 */ ItemFlag_TreasureChart17 = 112,
/* 0x71 */ ItemFlag_TreasureChart18 = 113,
/* 0x72 */ ItemFlag_TreasureChart19 = 114,
/* 0x73 */ ItemFlag_TreasureChart20 = 115,
/* 0x74 */ ItemFlag_TreasureChart21 = 116,
/* 0x75 */ ItemFlag_TreasureChart22 = 117,
/* 0x76 */ ItemFlag_TreasureChart23 = 118,
/* 0x77 */ ItemFlag_TreasureChart24 = 119,
/* 0x78 */ ItemFlag_TreasureChart25 = 120,
/* 0x79 */ ItemFlag_TreasureChart26 = 121,
/* 0x7a */ ItemFlag_TreasureChart27 = 122,
/* 0x7b */ ItemFlag_TreasureChart28 = 123,
/* 0x7c */ ItemFlag_TreasureChart29 = 124,
/* 0x7d */ ItemFlag_TreasureChart30 = 125,
/* 0x7e */ ItemFlag_TreasureChart31 = 126,
/* 0x7f */ ItemFlag_TreasureChart32 = 127,
ItemFlag_TREASURE_CHART_START = ItemFlag_TreasureChart1,
/* 0x60 */ ItemFlag_TreasureChart1 = 96,
/* 0x61 */ ItemFlag_TreasureChart2 = 97,
/* 0x62 */ ItemFlag_TreasureChart3 = 98,
/* 0x63 */ ItemFlag_TreasureChart4 = 99,
/* 0x64 */ ItemFlag_TreasureChart5 = 100,
/* 0x65 */ ItemFlag_TreasureChart6 = 101,
/* 0x66 */ ItemFlag_TreasureChart7 = 102,
/* 0x67 */ ItemFlag_TreasureChart8 = 103,
/* 0x68 */ ItemFlag_TreasureChart9 = 104,
/* 0x69 */ ItemFlag_TreasureChart10 = 105,
/* 0x6a */ ItemFlag_TreasureChart11 = 106,
/* 0x6b */ ItemFlag_TreasureChart12 = 107,
/* 0x6c */ ItemFlag_TreasureChart13 = 108,
/* 0x6d */ ItemFlag_TreasureChart14 = 109,
/* 0x6e */ ItemFlag_TreasureChart15 = 110,
/* 0x6f */ ItemFlag_TreasureChart16 = 111,
/* 0x70 */ ItemFlag_TreasureChart17 = 112,
/* 0x71 */ ItemFlag_TreasureChart18 = 113,
/* 0x72 */ ItemFlag_TreasureChart19 = 114,
/* 0x73 */ ItemFlag_TreasureChart20 = 115,
/* 0x74 */ ItemFlag_TreasureChart21 = 116,
/* 0x75 */ ItemFlag_TreasureChart22 = 117,
/* 0x76 */ ItemFlag_TreasureChart23 = 118,
/* 0x77 */ ItemFlag_TreasureChart24 = 119,
/* 0x78 */ ItemFlag_TreasureChart25 = 120,
/* 0x79 */ ItemFlag_TreasureChart26 = 121,
/* 0x7a */ ItemFlag_TreasureChart27 = 122,
/* 0x7b */ ItemFlag_TreasureChart28 = 123,
/* 0x7c */ ItemFlag_TreasureChart29 = 124,
/* 0x7d */ ItemFlag_TreasureChart30 = 125,
/* 0x7e */ ItemFlag_TreasureChart31 = 126,
/* 0x7f */ ItemFlag_TreasureChart32 = 127,
ItemFlag_TREASURE_CHART_START = ItemFlag_TreasureChart1,
ItemFlag_COUNT = 128,
};
typedef s32 ItemId;
enum ItemId_ {
/* 0x00 */ ItemId_None = 0,
/* 0x01 */ ItemId_SmallKey = 1,
/* 0x02 */ ItemId_GreenRupee = 2,
/* 0x03 */ ItemId_OshusSword = 3,
/* 0x04 */ ItemId_WoodenShield = 4,
/* 0x05 */ ItemId_Unk_5 = 5,
/* 0x06 */ ItemId_Unk_6 = 6,
/* 0x07 */ ItemId_BombBag = 7,
/* 0x08 */ ItemId_Bow = 8,
/* 0x09 */ ItemId_BigGreenRupee = 9,
/* 0x0a */ ItemId_HeartContainer = 10,
/* 0x0b */ ItemId_Unk_11 = 11,
/* 0x0c */ ItemId_Boomerang = 12,
/* 0x0d */ ItemId_Scoop = 13,
/* 0x0e */ ItemId_BombchuBag = 14,
/* 0x0f */ ItemId_BossKey = 15,
/* 0x10 */ ItemId_Unk_16 = 16,
/* 0x11 */ ItemId_Unk_17 = 17,
/* 0x12 */ ItemId_PhantomHourglass = 18,
/* 0x13 */ ItemId_SWSeaChart = 19,
/* 0x14 */ ItemId_NWSeaChart = 20,
/* 0x15 */ ItemId_SESeaChart = 21,
/* 0x16 */ ItemId_NESeaChart = 22,
/* 0x17 */ ItemId_Unk_23 = 23,
/* 0x18 */ ItemId_BlueRupee = 24,
/* 0x19 */ ItemId_RedRupee = 25,
/* 0x1a */ ItemId_BigRedRupee = 26,
/* 0x1b */ ItemId_GoldRupee = 27,
/* 0x1c */ ItemId_Unk_28 = 28,
/* 0x1d */ ItemId_Unk_29 = 29,
/* 0x1e */ ItemId_Unk_30 = 30,
/* 0x1f */ ItemId_Hammer = 31,
/* 0x20 */ ItemId_Rope = 32,
/* 0x21 */ ItemId_SquareCrystal = 33,
/* 0x22 */ ItemId_RoundCrystal = 34,
/* 0x23 */ ItemId_TriangleCrystal = 35,
/* 0x24 */ ItemId_FishingRod = 36,
/* 0x25 */ ItemId_Cannon = 37,
/* 0x26 */ ItemId_SunKey = 38,
/* 0x27 */ ItemId_Unk_39 = 39,
/* 0x28 */ ItemId_Quiver = 40,
/* 0x29 */ ItemId_BigBombBag = 41,
/* 0x2a */ ItemId_BigBombchuBag = 42,
/* 0x2b */ ItemId_Unk_43 = 43,
/* 0x2c */ ItemId_KingsKey = 44,
/* 0x2d */ ItemId_PowerGem = 45,
/* 0x2e */ ItemId_WisdomGem = 46,
/* 0x2f */ ItemId_CourageGem = 47,
/* 0x30 */ ItemId_PinkCoral = 48,
/* 0x31 */ ItemId_WhitePearlLoop = 49,
/* 0x32 */ ItemId_DarkPearlLoop = 50,
/* 0x33 */ ItemId_ZoraScale = 51,
/* 0x34 */ ItemId_GoronAmber = 52,
/* 0x35 */ ItemId_RutoCrown = 53,
/* 0x36 */ ItemId_HelmarocPlume = 54,
/* 0x37 */ ItemId_RegalRing = 55,
ItemId_TREASURE_START = ItemId_PinkCoral,
ItemId_TREASURE_END = ItemId_RegalRing,
/* 0x38 */ ItemId_GhostKey = 56,
/* 0x39 */ ItemId_FreebieCard = 57,
/* 0x3a */ ItemId_ComplimentCard = 58,
/* -1 */ ItemId_None = -1,
/* 0x00 */ ItemId_Nothing = 0,
/* 0x01 */ ItemId_SmallKey = 1,
/* 0x02 */ ItemId_GreenRupee = 2,
/* 0x03 */ ItemId_OshusSword = 3,
/* 0x04 */ ItemId_WoodenShield = 4,
/* 0x05 */ ItemId_Unk_5 = 5,
/* 0x06 */ ItemId_Unk_6 = 6,
/* 0x07 */ ItemId_BombBag = 7,
/* 0x08 */ ItemId_Bow = 8,
/* 0x09 */ ItemId_BigGreenRupee = 9,
/* 0x0a */ ItemId_HeartContainer = 10,
/* 0x0b */ ItemId_Unk_11 = 11,
/* 0x0c */ ItemId_Boomerang = 12,
/* 0x0d */ ItemId_Scoop = 13,
/* 0x0e */ ItemId_BombchuBag = 14,
/* 0x0f */ ItemId_BossKey = 15,
/* 0x10 */ ItemId_Unk_16 = 16,
/* 0x11 */ ItemId_Unk_17 = 17,
/* 0x12 */ ItemId_PhantomHourglass = 18,
/* 0x13 */ ItemId_SWSeaChart = 19,
/* 0x14 */ ItemId_NWSeaChart = 20,
/* 0x15 */ ItemId_SESeaChart = 21,
/* 0x16 */ ItemId_NESeaChart = 22,
/* 0x17 */ ItemId_Unk_23 = 23,
/* 0x18 */ ItemId_BlueRupee = 24,
/* 0x19 */ ItemId_RedRupee = 25,
/* 0x1a */ ItemId_BigRedRupee = 26,
/* 0x1b */ ItemId_GoldRupee = 27,
/* 0x1c */ ItemId_Unk_28 = 28,
/* 0x1d */ ItemId_Unk_29 = 29,
/* 0x1e */ ItemId_Unk_30 = 30,
/* 0x1f */ ItemId_Hammer = 31,
/* 0x20 */ ItemId_Rope = 32,
/* 0x21 */ ItemId_SquareCrystal = 33,
/* 0x22 */ ItemId_RoundCrystal = 34,
/* 0x23 */ ItemId_TriangleCrystal = 35,
/* 0x24 */ ItemId_FishingRod = 36,
/* 0x25 */ ItemId_Cannon = 37,
/* 0x26 */ ItemId_SunKey = 38,
/* 0x27 */ ItemId_Unk_39 = 39,
/* 0x28 */ ItemId_Quiver = 40,
/* 0x29 */ ItemId_BigBombBag = 41,
/* 0x2a */ ItemId_BigBombchuBag = 42,
/* 0x2b */ ItemId_Unk_43 = 43,
/* 0x2c */ ItemId_KingsKey = 44,
/* 0x2d */ ItemId_PowerGem = 45,
/* 0x2e */ ItemId_WisdomGem = 46,
/* 0x2f */ ItemId_CourageGem = 47,
/* 0x30 */ ItemId_PinkCoral = 48,
/* 0x31 */ ItemId_WhitePearlLoop = 49,
/* 0x32 */ ItemId_DarkPearlLoop = 50,
/* 0x33 */ ItemId_ZoraScale = 51,
/* 0x34 */ ItemId_GoronAmber = 52,
/* 0x35 */ ItemId_RutoCrown = 53,
/* 0x36 */ ItemId_HelmarocPlume = 54,
/* 0x37 */ ItemId_RegalRing = 55,
ItemId_TREASURE_START = ItemId_PinkCoral,
ItemId_TREASURE_END = ItemId_RegalRing,
/* 0x38 */ ItemId_GhostKey = 56,
/* 0x39 */ ItemId_FreebieCard = 57,
/* 0x3a */ ItemId_ComplimentCard = 58,
/* 0x3b */ ItemId_ComplimentaryCard = 59,
/* 0x3c */ ItemId_RegalNecklace = 60,
/* 0x3d */ ItemId_SalvageArm = 61,
/* 0x3e */ ItemId_HerosNewClothes = 62,
/* 0x3f */ ItemId_Kaleidoscope = 63,
/* 0x40 */ ItemId_GuardNotebook = 64,
/* 0x41 */ ItemId_JolenesLetter = 65,
/* 0x42 */ ItemId_PrizePostcard = 66,
/* 0x43 */ ItemId_WoodHeart = 67,
/* 0x3c */ ItemId_RegalNecklace = 60,
/* 0x3d */ ItemId_SalvageArm = 61,
/* 0x3e */ ItemId_HerosNewClothes = 62,
/* 0x3f */ ItemId_Kaleidoscope = 63,
/* 0x40 */ ItemId_GuardNotebook = 64,
/* 0x41 */ ItemId_JolenesLetter = 65,
/* 0x42 */ ItemId_PrizePostcard = 66,
/* 0x43 */ ItemId_WoodHeart = 67,
/* 0x44 */ ItemId_PhantomSwordBlade = 68,
/* 0x45 */ ItemId_PhantomSword = 69,
/* 0x46 */ ItemId_Unk_70 = 70,
/* 0x45 */ ItemId_PhantomSword = 69,
/* 0x46 */ ItemId_Unk_70 = 70,
/* 0x4b */ ItemId_TreasureChart1 = 75,
/* 0x4c */ ItemId_TreasureChart2 = 76,
/* 0x4d */ ItemId_TreasureChart3 = 77,
/* 0x4e */ ItemId_TreasureChart4 = 78,
/* 0x4f */ ItemId_TreasureChart5 = 79,
/* 0x50 */ ItemId_TreasureChart6 = 80,
/* 0x51 */ ItemId_TreasureChart7 = 81,
/* 0x52 */ ItemId_TreasureChart8 = 82,
/* 0x53 */ ItemId_TreasureChart9 = 83,
/* 0x54 */ ItemId_TreasureChart10 = 84,
/* 0x55 */ ItemId_TreasureChart11 = 85,
/* 0x56 */ ItemId_TreasureChart12 = 86,
/* 0x57 */ ItemId_TreasureChart13 = 87,
/* 0x58 */ ItemId_TreasureChart14 = 88,
/* 0x59 */ ItemId_TreasureChart15 = 89,
/* 0x5a */ ItemId_TreasureChart16 = 90,
/* 0x5b */ ItemId_TreasureChart17 = 91,
/* 0x5c */ ItemId_TreasureChart18 = 92,
/* 0x5d */ ItemId_TreasureChart19 = 93,
/* 0x5e */ ItemId_TreasureChart20 = 94,
/* 0x5f */ ItemId_TreasureChart21 = 95,
/* 0x60 */ ItemId_TreasureChart22 = 96,
/* 0x61 */ ItemId_TreasureChart23 = 97,
/* 0x62 */ ItemId_TreasureChart24 = 98,
/* 0x63 */ ItemId_TreasureChart25 = 99,
/* 0x64 */ ItemId_TreasureChart26 = 100,
/* 0x65 */ ItemId_TreasureChart27 = 101,
/* 0x66 */ ItemId_TreasureChart28 = 102,
/* 0x67 */ ItemId_TreasureChart29 = 103,
/* 0x68 */ ItemId_TreasureChart30 = 104,
/* 0x69 */ ItemId_TreasureChart31 = 105,
/* 0x6a */ ItemId_TreasureChart32 = 106,
ItemId_TREASURE_CHART_START = ItemId_TreasureChart1,
ItemId_TREASURE_CHART_END = ItemId_TreasureChart32,
/* 0x6b */ ItemId_SpiritOfPowerUpgradeLvl1 = 107,
/* 0x6c */ ItemId_SpiritOfWisdomUpgradeLvl1 = 108,
/* 0x4b */ ItemId_TreasureChart1 = 75,
/* 0x4c */ ItemId_TreasureChart2 = 76,
/* 0x4d */ ItemId_TreasureChart3 = 77,
/* 0x4e */ ItemId_TreasureChart4 = 78,
/* 0x4f */ ItemId_TreasureChart5 = 79,
/* 0x50 */ ItemId_TreasureChart6 = 80,
/* 0x51 */ ItemId_TreasureChart7 = 81,
/* 0x52 */ ItemId_TreasureChart8 = 82,
/* 0x53 */ ItemId_TreasureChart9 = 83,
/* 0x54 */ ItemId_TreasureChart10 = 84,
/* 0x55 */ ItemId_TreasureChart11 = 85,
/* 0x56 */ ItemId_TreasureChart12 = 86,
/* 0x57 */ ItemId_TreasureChart13 = 87,
/* 0x58 */ ItemId_TreasureChart14 = 88,
/* 0x59 */ ItemId_TreasureChart15 = 89,
/* 0x5a */ ItemId_TreasureChart16 = 90,
/* 0x5b */ ItemId_TreasureChart17 = 91,
/* 0x5c */ ItemId_TreasureChart18 = 92,
/* 0x5d */ ItemId_TreasureChart19 = 93,
/* 0x5e */ ItemId_TreasureChart20 = 94,
/* 0x5f */ ItemId_TreasureChart21 = 95,
/* 0x60 */ ItemId_TreasureChart22 = 96,
/* 0x61 */ ItemId_TreasureChart23 = 97,
/* 0x62 */ ItemId_TreasureChart24 = 98,
/* 0x63 */ ItemId_TreasureChart25 = 99,
/* 0x64 */ ItemId_TreasureChart26 = 100,
/* 0x65 */ ItemId_TreasureChart27 = 101,
/* 0x66 */ ItemId_TreasureChart28 = 102,
/* 0x67 */ ItemId_TreasureChart29 = 103,
/* 0x68 */ ItemId_TreasureChart30 = 104,
/* 0x69 */ ItemId_TreasureChart31 = 105,
/* 0x6a */ ItemId_TreasureChart32 = 106,
ItemId_TREASURE_CHART_START = ItemId_TreasureChart1,
ItemId_TREASURE_CHART_END = ItemId_TreasureChart32,
/* 0x6b */ ItemId_SpiritOfPowerUpgradeLvl1 = 107,
/* 0x6c */ ItemId_SpiritOfWisdomUpgradeLvl1 = 108,
/* 0x6d */ ItemId_SpiritOfCourageUpgradeLvl1 = 109,
/* 0x6e */ ItemId_SpiritOfPowerUpgradeLvl2 = 110,
/* 0x6f */ ItemId_SpiritOfWisdomUpgradeLvl2 = 111,
/* 0x6e */ ItemId_SpiritOfPowerUpgradeLvl2 = 110,
/* 0x6f */ ItemId_SpiritOfWisdomUpgradeLvl2 = 111,
/* 0x70 */ ItemId_SpiritOfCourageUpgradeLvl2 = 112,
/* 0x71 */ ItemId_SwordsmanScroll = 113,
/* 0x72 */ ItemId_Crimsonine = 114,
/* 0x73 */ ItemId_Azurine = 115,
/* 0x74 */ ItemId_Aquanine = 116,
/* 0x75 */ ItemId_RedPotion = 117,
/* 0x76 */ ItemId_PurplePotion = 118,
/* 0x77 */ ItemId_YellowPotion = 119,
/* 0x78 */ ItemId_SandOfHours = 120,
/* 0x79 */ ItemId_GoldenChimney = 121,
/* 0x7a */ ItemId_GoldenHandrail = 122,
/* 0x7b */ ItemId_GoldenCannon = 123,
/* 0x7c */ ItemId_GoldenHull = 124,
ItemId_GOLDEN_SHIP_START = ItemId_GoldenChimney,
ItemId_GOLDEN_SHIP_END = ItemId_GoldenHull,
/* 0x71 */ ItemId_SwordsmanScroll = 113,
/* 0x72 */ ItemId_Crimsonine = 114,
/* 0x73 */ ItemId_Azurine = 115,
/* 0x74 */ ItemId_Aquanine = 116,
/* 0x75 */ ItemId_RedPotion = 117,
/* 0x76 */ ItemId_PurplePotion = 118,
/* 0x77 */ ItemId_YellowPotion = 119,
/* 0x78 */ ItemId_SandOfHours = 120,
/* 0x79 */ ItemId_GoldenChimney = 121,
/* 0x7a */ ItemId_GoldenHandrail = 122,
/* 0x7b */ ItemId_GoldenCannon = 123,
/* 0x7c */ ItemId_GoldenHull = 124,
ItemId_GOLDEN_SHIP_START = ItemId_GoldenChimney,
ItemId_GOLDEN_SHIP_END = ItemId_GoldenHull,
/* 0x7d */ ItemId_Unk_125 = 125,
/* 0x7e */ ItemId_Unk_126 = 126,
/* 0x7d */ ItemId_Unk_125 = 125,
/* 0x7e */ ItemId_Unk_126 = 126,
/* 0x7f */ ItemId_CycloneSlate = 127,
/* 0x80 */ ItemId_Unk_128 = 128,
/* 0x81 */ ItemId_Rupoor10 = 129,
/* 0x82 */ ItemId_Rupoor50 = 130,
/* 0x83 */ ItemId_Unk_131 = 131,
/* 0x84 */ ItemId_Unk_132 = 132,
/* 0x85 */ ItemId_Unk_133 = 133,
/* 0x86 */ ItemId_Unk_134 = 134,
/* 0x87 */ ItemId_Unk_135 = 135,
/* 0x88 */ ItemId_Unk_136 = 136,
/* 0x80 */ ItemId_Unk_128 = 128,
/* 0x81 */ ItemId_Rupoor10 = 129,
/* 0x82 */ ItemId_Rupoor50 = 130,
/* 0x83 */ ItemId_Unk_131 = 131,
/* 0x84 */ ItemId_Unk_132 = 132,
/* 0x85 */ ItemId_Unk_133 = 133,
/* 0x86 */ ItemId_Unk_134 = 134,
/* 0x87 */ ItemId_Unk_135 = 135,
/* 0x88 */ ItemId_Unk_136 = 136,
};
namespace Item {
bool func_ov00_020ad020(ItemId item);
bool func_ov00_020ad068(ItemId item);
}
} // namespace Item
+16 -17
View File
@@ -1,24 +1,24 @@
#pragma once
extern "C" {
#include <string.h>
#include <string.h>
}
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "types.h"
#include "Actor/ActorNavi.hpp"
#include "DTCM/UnkStruct_027e0f78.hpp"
#include "Save/AdventureFlags.hpp"
#include "Item/Item.hpp"
#include "Map/MapManager.hpp"
#include "Player/EquipItem.hpp"
#include "Player/HealthManager.hpp"
#include "Sound/Sfx.hpp"
#include "System/SysNew.hpp"
#include "System/OverlayManager.hpp"
#include "Render/ModelRender.hpp"
#include "Save/AdventureFlags.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
@@ -69,7 +69,7 @@ enum ShipType_ {
};
typedef u32 ShipItem;
#define SHIP_ITEM(part, ship) (ShipPart_ ## part * ShipPart_COUNT + ShipType_ ## type)
#define SHIP_ITEM(part, ship) (ShipPart_##part * ShipPart_COUNT + ShipType_##type)
#define ShipItem_COUNT (ShipPart_COUNT * ShipType_COUNT)
typedef u32 Treasure;
@@ -96,7 +96,6 @@ enum Potion_ {
Potion_COUNT,
};
struct ItemFlags {
/* 00 */ u32 flags[CEIL_DIV(ItemFlag_COUNT, 32)];
/* 10 */
@@ -229,7 +228,7 @@ private:
/* 150 */
public:
static ItemManager* Create();
static ItemManager *Create();
static void Destroy();
ItemManager();
~ItemManager();
@@ -240,7 +239,7 @@ public:
// Fairy
FairyId GetEquippedFairy() const;
ActorNavi* GetFairy(FairyId id) const;
ActorNavi *GetFairy(FairyId id) const;
u32 GetActiveFairyLevel(FairyId id) const;
u32 GetFairyLevel(FairyId id) const;
@@ -253,15 +252,15 @@ public:
void EquipItem_vfunc_38(unk32 param1);
bool EquipCollidesWith(Cylinder *cylinder, ItemFlag equipId);
s32 EquipItem_vfunc_2c(ItemFlag equipId);
EquipItem* GetEquipItem(ItemFlag equipId);
EquipItem *GetEquipItem(ItemFlag equipId);
bool func_ov00_020ad790(unk32 param1);
bool SetEquippedItem(ItemFlag equipId);
void EquipPreviousItem();
void ForceEquipItem(ItemFlag equipId);
bool ClearForcedEquipItem();
void UpdateSwordShieldInUse();
static EquipItem* GetEquipItemUnchecked(ItemFlag equipId);
static EquipItem *GetEquipItemUnchecked(ItemFlag equipId);
// Ammo
u16 GetAmmo(ItemFlag equipId) const;
void GiveAmmo(ItemFlag equipId, u16 amount);
@@ -272,10 +271,10 @@ public:
// Item model
void func_ov00_020ad528();
ItemModel* GetItemModel(ItemModelId id);
ItemModel *GetItemModel(ItemModelId id);
void func_ov00_020ad538(unk32 param1) const;
void func_ov00_020ad560(unk32 param1) const;
ItemModel* GetDungeonItemModel(DungeonItemModelId id);
ItemModel *GetDungeonItemModel(DungeonItemModelId id);
void func_ov00_020ad594(unk32 param1) const;
void LoadFanfareItem(ItemId id);
bool GetFanfareItemScale(Vec3p *pScale) const;
@@ -299,7 +298,7 @@ public:
bool IsTreasureSalvaged(u32 index) const;
void SetTreasureSalvaged(u32 index);
u8 GetMaxTreasureCount() const;
// mUnk_098, mUnk_09e
u8 GetUnk_098(u32 index) const;
u16 GetUnk_09e(u32 index) const;
@@ -315,7 +314,7 @@ public:
// Rupees
s32 GetMaxRupees() const;
void GiveRupees(s16 amount, bool param2);
void GiveRupees(s32 amount, bool param2);
// Potion
void SetPotion(u32 index, Potion potion);
+8 -8
View File
@@ -12,11 +12,11 @@
typedef unk32 CourseType;
enum CourseType_ {
CourseType_Normal = 0,
CourseType_Dungeon = 1,
CourseType_Sea = 2,
CourseType_Normal = 0,
CourseType_Dungeon = 1,
CourseType_Sea = 2,
CourseType_TempleOfTheOceanKing = 3,
CourseType_Battle = 4,
CourseType_Battle = 4,
};
struct CourseProgress {
@@ -64,12 +64,12 @@ class Course : public SysObject {
void GetDungeonProgress(CourseProgress *param_2);
void func_ov00_0207ca28(s32 param_2, unk32 param_3, unk32 param_4);
char* SetCourseName(char *src);
char *SetCourseName(char *src);
void func_ov00_0207ca78(unk32 param_2, unk8 param_3, unk32 param_4);
bool func_ov00_0207caa8(s32 param_2, unk32 *param_3, unk8 *param_4);
unk32 func_ov00_0207cb30(s32 param_2);
static void FindMapGridPos(Vec2b *pos, Course *param_2, u32 map);
Vec3p* FindMapCenter(unk32 map);
Vec3p *FindMapCenter(unk32 map);
void func_ov00_0207cbe8(s32 param_2);
unk8 func_ov00_0207cc24(s32 param_2);
unk32 FindMapData_Unk_08(unk32 map);
@@ -109,6 +109,6 @@ class Course : public SysObject {
bool GetMapDataFlag3(unk32 param_2);
void SetMapDataFlag4(unk32 param_2, unk32 param_3);
bool GetMapDataFlag4(unk32 param_2);
MapData* FindMapData(u32 map);
MapData* FindCurrentMapData();
MapData *FindMapData(u32 map);
MapData *FindCurrentMapData();
};
+6 -6
View File
@@ -7,11 +7,11 @@
#include "lib/math.h"
#include "Map/CameraViewpoint.hpp"
#include "Map/Course.hpp"
#include "Map/Entrance.hpp"
#include "Map/TriggerBase.hpp"
#include "Map/Exit.hpp"
#include "Map/CameraViewpoint.hpp"
#include "Map/TriggerBase.hpp"
#include "System/SysNew.hpp"
#define MAX_ENTRANCES 0x40
@@ -94,10 +94,10 @@ public:
/* 0e8 */ Vec3p mUnk_0e8;
/* 0f4 */ Vec3p mUnk_0f4;
/* 100 */ std::vector<Entrance> mEntrances;
/* 10c */ std::vector<TriggerBase*> mTriggers;
/* 10c */ std::vector<TriggerBase *> mTriggers;
/* 118 */ std::vector<Exit> mExits;
/* 124 */ std::vector<CameraViewpoint> mViewpoints;
/* 130 */ std::vector<TriggerBase*> mUnk_130;
/* 130 */ std::vector<TriggerBase *> mUnk_130;
/* 13c */ unk32 mUnk_13c;
/* 140 */ unk32 mUnk_140;
/* 144 */ void *mUnk_144;
@@ -144,7 +144,7 @@ public:
/* 68 */ virtual unk8 vfunc_68(unk32 param_2, unk32 param_3);
/* 6c */ virtual unk8 vfunc_6c(unk32 param_2, unk32 param_3, unk32 param_4);
/* 70 */ virtual unk32 vfunc_70(Vec3p *param_2);
/* 74 */ virtual s32* vfunc_74(Vec3p *param_2);
/* 74 */ virtual s32 *vfunc_74(Vec3p *param_2);
/* 78 */ virtual unk32 vfunc_78();
/* 7c */ virtual unk32 vfunc_7c();
/* 80 */ virtual unk32 vfunc_80();
@@ -206,7 +206,7 @@ public:
unk8 GetTriggerBoundingBoxes(unk32 param_2, AABB *param_3, unk32 param_4);
unk32 GetOverlappingTrigger(Vec3p *param_2);
unk8 FindTrigger(unk32 type);
unk8 GetOverlappingTriggers(Vec3p *param_2, TriggerBase * *triggers, unk32 capacity);
unk8 GetOverlappingTriggers(Vec3p *param_2, TriggerBase **triggers, unk32 capacity);
bool IsTriggerTypeOverlapped(unk32 type, Vec3p *param_3);
bool AnyTrigger_func_0c(unk32 type);
unk8 Trigger_vfunc_08();
+7 -5
View File
@@ -57,7 +57,7 @@ public:
unk8 func_ov00_02082494(unk32 param_2);
unk8 func_ov00_020824cc(unk32 param_2);
unk8 func_ov00_02082504();
unk8 * func_ov00_02082538();
unk8 *func_ov00_02082538();
void func_ov00_02082594();
void func_ov00_020825ac();
s32 GetCourseFilePath(char *courseName, char *buf);
@@ -79,7 +79,7 @@ public:
unk8 GetCourseData_Unk_b0();
s32 func_ov00_02082914(unk32 param_2);
unk8 func_ov00_02082acc();
unk32 * func_ov00_02082adc();
unk32 *func_ov00_02082adc();
unk8 func_ov00_02082af4();
bool func_ov00_02082b3c(s32 param_2);
unk8 func_ov00_02082d08();
@@ -171,7 +171,7 @@ public:
void func_ov00_02083f44(Vec3p *param_2);
unk8 MapData_vfunc_6c();
unk8 MapData_vfunc_70();
static unk8 func_ov00_02083fb0(unk32 param_1, MapManager *param_2, unk32 param_3);
static unk8 func_ov00_02083fb0(u32 *param_1, MapManager *param_2, Vec3p *param_3);
void func_ov00_02084024(unk32 param_2, AABB *param_3);
unk8 MapData_vfunc_54();
unk8 func_ov00_020840a0(unk8 param_2, unk8 param_3, unk32 param_4);
@@ -236,8 +236,10 @@ public:
s32 func_ov00_02085a34(unk32 param_2, unk32 param_3);
unk8 func_ov00_02085c60(unk32 param_2, unk32 param_3, unk32 param_4, unk32 param_5);
unk8 func_ov00_02086044(unk32 param_2, unk32 param_3, unk32 param_4);
bool func_ov00_02086284(s32 *param_2, Vec3p *param_3, Vec3p *param_4, s32 param_5, u16 param_6, Vec3p *param_7, 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);
bool func_ov00_02086284(s32 *param_2, Vec3p *param_3, Vec3p *param_4, s32 param_5, u16 param_6, Vec3p *param_7,
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);
};
extern MapManager *gMapManager;
+1 -1
View File
@@ -3,8 +3,8 @@
#include "global.h"
#include "types.h"
#include "Physics/AABB.hpp"
#include "Map/TriggerBase.hpp"
#include "Physics/AABB.hpp"
class TriggerAABB : public TriggerBase {
/* 00 (base) */
+1 -1
View File
@@ -3,8 +3,8 @@
#include "global.h"
#include "types.h"
#include "Physics/Sphere.hpp"
#include "Map/TriggerBase.hpp"
#include "Physics/Sphere.hpp"
class TriggerSphere : public TriggerBase {
/* 00 (base) */
+1
View File
@@ -14,6 +14,7 @@ struct Cylinder {
pos.x = 0;
pos.y = size;
pos.z = 0;
this->size = size;
}
+2 -1
View File
@@ -1,6 +1,7 @@
#pragma once
#include "types.h"
#include "Player/EquipItem.hpp"
class EquipBomb : public EquipItem {
@@ -9,7 +10,7 @@ private:
/* 09 */ unk8 mUnk_09[3];
/* 0c */ unk32 mUnk_0c;
/* 10 */ unk8 mUnk_10[0x14];
/* 24 */
/* 24 */
public:
EquipBomb();
+1
View File
@@ -1,6 +1,7 @@
#pragma once
#include "types.h"
#include "Player/EquipItem.hpp"
class EquipBombchu : public EquipItem {
+1 -1
View File
@@ -35,5 +35,5 @@ public:
/* 38 */ virtual void vfunc_38(unk32 param1) override; // func_ov53_02199318
/* 50 */
Actor* GetActor();
Actor *GetActor();
};
+1
View File
@@ -1,6 +1,7 @@
#pragma once
#include "types.h"
#include "Player/EquipItem.hpp"
class EquipBow : public EquipItem {
+1
View File
@@ -1,6 +1,7 @@
#pragma once
#include "types.h"
#include "Player/EquipItem.hpp"
class EquipHammer : public EquipItem {
+1 -1
View File
@@ -1,7 +1,7 @@
#pragma once
#include "types.h"
#include "global.h"
#include "types.h"
#include "Item/Item.hpp"
#include "Physics/Cylinder.hpp"
+1
View File
@@ -1,6 +1,7 @@
#pragma once
#include "types.h"
#include "Player/EquipItem.hpp"
class EquipPotion : public EquipItem {
+3 -3
View File
@@ -1,8 +1,8 @@
#pragma once
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "types.h"
#include "Actor/ActorRef.hpp"
#include "Physics/Cylinder.hpp"
@@ -45,13 +45,13 @@ public:
u16 GetAmmo();
/* 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
/* 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
/* 50 */
Actor* func_ov14_0213d420();
Actor *func_ov14_0213d420();
s32 func_ov14_0213d440(s32 actorId);
s32 func_ov14_0213d480(s32 actorId);
bool func_ov14_0213d81c(s32 index, Vec3p *vec);
+1 -1
View File
@@ -1,6 +1,7 @@
#pragma once
#include "types.h"
#include "Player/EquipItem.hpp"
class EquipScoop : public EquipItem {
@@ -24,4 +25,3 @@ public:
/* 48 */ virtual unk32 vfunc_48(unk32 param1) const override; // func_ov54_02198d48
/* 50 */
};
+1
View File
@@ -1,6 +1,7 @@
#pragma once
#include "types.h"
#include "Player/EquipItem.hpp"
class EquipShield {
+2 -1
View File
@@ -1,6 +1,7 @@
#pragma once
#include "types.h"
#include "Player/EquipItem.hpp"
#include "Player/EquipRope.hpp"
@@ -57,5 +58,5 @@ public:
/* 3c */ virtual bool GetHitbox(Cylinder *hitbox) const override; // func_ov00_020c01dc
/* 50 */
static EquipRope* GetEquipRope();
static EquipRope *GetEquipRope();
};
+24 -25
View File
@@ -1,26 +1,25 @@
#pragma once
#include "global.h"
#include "lib/math.h"
#include "types.h"
#include "lib/math.h"
#include "System/SysNew.hpp"
#include "Player/PlayerLinkBase.hpp"
#include "Player/PlayerControlData.hpp"
#include "Actor/Actor.hpp"
#include "Actor/ActorManager.hpp"
#include "Player/EquipItem.hpp"
#include "Debug/DebugHierarchy.hpp"
#include "Player/EquipItem.hpp"
#include "Player/PlayerControlData.hpp"
#include "Player/PlayerLinkBase.hpp"
#include "System/SysNew.hpp"
typedef unk32 LinkStateId;
enum LinkStateId_ {
LinkStateId_Move = 0,
LinkStateId_Item = 1,
LinkStateId_Grab = 2,
LinkStateId_Unk3 = 3,
LinkStateId_Unk4 = 4,
LinkStateId_Damage = 5,
LinkStateId_Move = 0,
LinkStateId_Item = 1,
LinkStateId_Grab = 2,
LinkStateId_Unk3 = 3,
LinkStateId_Unk4 = 4,
LinkStateId_Damage = 5,
LinkStateId_ItemGet = 6,
LinkStateId_COUNT
};
@@ -59,7 +58,7 @@ public:
void EquipItem_vfunc_28();
void UpdateSwordShieldInUse();
void func_ov00_020a81b8(unk32 param1, unk32 param2);
LinkStateItem* GetLinkItemState();
LinkStateItem *GetLinkItemState();
void LookAt(Vec3p *target);
void func_ov00_020a81fc();
void AddHealth(s16 amount);
@@ -102,30 +101,30 @@ public:
unk8 Get_PlayerLinkBase_Unk5e();
unk32 Get_PlayerControlData_Unk004();
PlayerCharacter GetCurrentCharacter();
PlayerControlData* GetPlayerControlData();
PlayerControlData *GetPlayerControlData();
LinkStateId GetStateId();
s32 GetHealth();
s32 GetCurrentCharacterHealth();
bool func_ov00_020a8c34();
Vec3p* GetPlayerPos();
Vec3p* GetPlayerVel();
unk8* func_ov00_020a8c64();
s16* GetPlayerAngle();
void* GetPlayer_Unk18();
Vec3p *GetPlayerPos();
Vec3p *GetPlayerVel();
unk8 *func_ov00_020a8c64();
s16 *GetPlayerAngle();
void *GetPlayer_Unk18();
s32 Get_PlayerControlData_Unk32();
Actor* GetGrabActor();
ActorRef* GetGrabActorRef();
Actor *GetGrabActor();
ActorRef *GetGrabActorRef();
unk32 Grab();
s32 Get_PlayerLinkBase_Unk44();
bool IsEquipBeingUsed(ItemFlag id);
EquipItem* GetEquipItem(ItemFlag id);
void* func_ov00_020a8d40();
EquipItem *GetEquipItem(ItemFlag id);
void *func_ov00_020a8d40();
unk32 func_ov00_020a8d50();
unk32 func_ov00_020a8d6c();
s32 PlayerControlData_vfunc_14(s32 param1);
unk32 Get_PlayerControlData_Unk100();
unk32 Get_PlayerControlData_Unk120();
s32 Get_PlayerLinkBase_Unk38();
DebugHierarchy* GetDebugHierarchy0();
DebugHierarchy* GetDebugHierarchy1();
DebugHierarchy *GetDebugHierarchy0();
DebugHierarchy *GetDebugHierarchy1();
};
+2 -3
View File
@@ -1,12 +1,11 @@
#pragma once
#include "global.h"
#include "lib/math.h"
#include "types.h"
#include "lib/math.h"
#include "Player/LinkStateBase.hpp"
#include "Item/Item.hpp"
#include "Player/LinkStateBase.hpp"
class LinkStateCutscene : public LinkStateBase {
public:
+1 -2
View File
@@ -1,9 +1,8 @@
#pragma once
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "types.h"
#include "Player/LinkStateBase.hpp"
#include "Render/ModelRender.hpp"
+2 -3
View File
@@ -1,9 +1,8 @@
#pragma once
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "types.h"
#include "Actor/Actor.hpp"
#include "Player/LinkStateBase.hpp"
@@ -35,7 +34,7 @@ public:
/* 44 */
void MoveTowardTarget();
LinkStateCutscene* GetLinkStateCutscene();
LinkStateCutscene *GetLinkStateCutscene();
bool func_ov00_020a9180(Vec3p *param1);
bool func_ov00_020a9210(Vec3p *param1, Actor *param2);
};
+4 -5
View File
@@ -1,14 +1,13 @@
#pragma once
#include "global.h"
#include "lib/math.h"
#include "types.h"
#include "lib/math.h"
#include "Actor/Actor.hpp"
#include "Actor/ActorManager.hpp"
#include "Player/LinkStateBase.hpp"
#include "Player/LinkStateRoll.hpp"
#include "Actor/ActorManager.hpp"
#include "Actor/Actor.hpp"
class LinkStateInteract : public LinkStateBase {
public:
@@ -37,7 +36,7 @@ public:
s32 GetGrabActorId();
bool func_ov00_020aa818();
void func_ov00_020aa844(Actor *param1);
LinkStateRoll* GetLinkStateRoll();
LinkStateRoll *GetLinkStateRoll();
void SetGrabActorVelocity(Vec3p *velocity);
void SetBombVelocity(Vec3p *velocity);
void func_ov00_020ab6c8();
+4 -4
View File
@@ -3,10 +3,10 @@
#include "global.h"
#include "types.h"
#include "Item/Item.hpp"
#include "Player/EquipBombchu.hpp"
#include "Player/LinkStateBase.hpp"
#include "Player/LinkStateMove.hpp"
#include "Player/EquipBombchu.hpp"
#include "Item/Item.hpp"
class LinkStateItem : public LinkStateBase {
public:
@@ -47,7 +47,7 @@ public:
/* 44 */
s32 IsHammerEquipped(); // returns 0 if hammer is equipped, otherwise -1
EquipBombchu* GetEquipBombchu();
LinkStateMove* GetLinkStateMove();
EquipBombchu *GetEquipBombchu();
LinkStateMove *GetLinkStateMove();
bool func_ov00_020abf70();
};
+1 -1
View File
@@ -1,8 +1,8 @@
#pragma once
#include "global.h"
#include "types.h"
#include "lib/files.h"
#include "types.h"
struct MotionParams {
/* 00 */ FileEntry motionBhio; // motion.bhio
+12 -13
View File
@@ -4,10 +4,9 @@
#include "types.h"
#include "Item/Item.hpp"
#include "Player/EquipSword.hpp"
#include "Player/EquipShield.hpp"
#include "Physics/Cylinder.hpp"
#include "Player/EquipShield.hpp"
#include "Player/EquipSword.hpp"
#include "Render/FadeControl.hpp"
#include "System/SysNew.hpp"
@@ -28,14 +27,14 @@ public:
/* 04 */ virtual bool vfunc_04();
/* 08 */ virtual ItemFlag GetEquipId();
/* 0c */ virtual bool CanMove();
/* 10 */ virtual void vfunc_10(Cylinder *param1) = 0;
/* 14 */ virtual void vfunc_14(Cylinder *param1) = 0;
/* 18 */ virtual void vfunc_18() = 0;
/* 1c */ virtual void Init() = 0;
/* 20 */ virtual void vfunc_20() = 0;
/* 24 */ virtual void vfunc_24() = 0;
/* 28 */ virtual void vfunc_28(s32 param1) = 0;
/* 2c */ virtual void vfunc_2c(s32 param1, unk8 param2) = 0;
/* 10 */ virtual void vfunc_10(Cylinder *param1) = 0;
/* 14 */ virtual void vfunc_14(Cylinder *param1) = 0;
/* 18 */ virtual void vfunc_18() = 0;
/* 1c */ virtual void Init() = 0;
/* 20 */ virtual void vfunc_20() = 0;
/* 24 */ virtual void vfunc_24() = 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;
/* 34 */ virtual bool Teleport(Vec3p *pos, s16 angle, unk32 param3, bool param4, bool param5);
/* 38 */ virtual bool TeleportToEntrance(unk32 entranceId, bool param2);
@@ -49,8 +48,8 @@ public:
void SetUpdatePos(bool updatePos);
void SetVisible(bool visible);
EquipSword* GetEquipSword();
EquipShield* GetEquipShield();
EquipSword *GetEquipSword();
EquipShield *GetEquipShield();
void LookAt(Vec3p *target);
bool func_ov00_020a7c00(s32 param1);
bool CollidesWith(Cylinder *cylinder);
+8 -9
View File
@@ -1,23 +1,22 @@
#pragma once
#include "global.h"
#include "lib/math.h"
#include "types.h"
#include "lib/math.h"
#include "Player/TouchControl.hpp"
#include "Player/TouchGesture.hpp"
#include "Actor/ActorManager.hpp"
#include "Actor/Actor.hpp"
#include "Actor/ActorManager.hpp"
#include "Debug/DebugHierarchy.hpp"
#include "Item/Item.hpp"
#include "Player/TouchControl.hpp"
#include "Player/TouchGesture.hpp"
typedef u16 TouchEdge;
enum TouchEdge_ {
TouchEdge_Right = 0,
TouchEdge_Left = 1,
TouchEdge_Right = 0,
TouchEdge_Left = 1,
TouchEdge_Bottom = 2,
TouchEdge_Top = 3,
TouchEdge_Top = 3,
TouchEdge_Middle = 4
};
@@ -79,7 +78,7 @@ public:
void func_ov00_020aeef8();
void func_ov00_020aef30();
void UpdateAim();
Actor* GetFollowActor();
Actor *GetFollowActor();
bool func_ov00_020af01c(unk8 *param1);
void SetUnk_80();
void StopFollowing();
+1 -2
View File
@@ -1,9 +1,8 @@
#pragma once
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "types.h"
#include "System/SysNew.hpp"
+8 -9
View File
@@ -1,24 +1,22 @@
#pragma once
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "Player/PlayerBase.hpp"
#include "Player/MotionParams.hpp"
#include "types.h"
#include "Actor/ActorManager.hpp"
#include "Debug/DebugHierarchy.hpp"
#include "Player/MotionParams.hpp"
#include "Player/PlayerBase.hpp"
typedef s32 PlayerCharacter;
enum PlayerCharacter_ {
PlayerCharacter_Link = 0,
PlayerCharacter_Link = 0,
PlayerCharacter_Gongoron = 1,
PlayerCharacter_COUNT = 2,
PlayerCharacter_COUNT = 2,
};
class PlayerLinkBase: public PlayerBase {
class PlayerLinkBase : public PlayerBase {
public:
/* 00 (base) */
/* 14 */ Vec3p mPos;
@@ -44,7 +42,7 @@ public:
/* 68 */ DebugHierarchy *mDebugHierarchy_1;
/* 6c */ DebugHierarchy *mDebugHierarchy_2;
/* 70 */
/* 00 */ s32 GetMaxHealth() override;
/* 08 */ ItemFlag GetEquipId() override;
/* 0c */ bool CanMove() override;
@@ -77,6 +75,7 @@ public:
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();
+4 -4
View File
@@ -1,15 +1,15 @@
#pragma once
#include "global.h"
#include "types.h"
#include "lib/touch.h"
#include "lib/math.h"
#include "lib/touch.h"
#include "types.h"
typedef u16 TouchFlags;
enum TouchFlag_ {
TouchFlag_TouchedNow = 0x0001,
TouchFlag_TouchedNow = 0x0001,
TouchFlag_UntouchedNow = 0x0002,
TouchFlag_Repeat = 0x0004,
TouchFlag_Repeat = 0x0004,
};
class TouchControl {
+1 -1
View File
@@ -29,7 +29,7 @@ public:
/* 2c */ u16 mTouchX[GESTURE_BUFFER_LENGTH];
/* 48 */ u16 mTouchY[GESTURE_BUFFER_LENGTH];
/* 64 */
/* 00 */ virtual ~TouchGesture() override;
/* 08 */ virtual void ResetTouchHistory() override;
/* 0c */ virtual void Update(void *param1) override;
+1 -1
View File
@@ -22,7 +22,7 @@ public:
/* 5c */
/* 00 */ virtual ~ModelRender();
/* 08 */ virtual void* GetLcdcAddress();
/* 08 */ virtual void *GetLcdcAddress();
/* 0c */ virtual void vfunc_0c(ItemModel *model);
/* 10 */ virtual void SetTransform(Vec3p *scale, Mat3p *rotation, Vec3p *translation);
/* 14 */ virtual void SetRotationTranslation(Mat3p *rotation, Vec3p *translation);
+10 -10
View File
@@ -23,17 +23,17 @@ enum AdventureFlag_ {
/* 0x30 */ AdventureFlag_Cannon = 48,
/* 0x7d */ AdventureFlag_Azurine = 125,
/* 0x7d */ AdventureFlag_Azurine = 125,
/* 0x7e */ AdventureFlag_Crimsonine = 126,
/* 0x7f */ AdventureFlag_Aquanine = 127,
/* 0x80 */ AdventureFlag_Unk_128 = 128,
/* 0x7f */ AdventureFlag_Aquanine = 127,
/* 0x80 */ AdventureFlag_Unk_128 = 128,
/* 0x8c */ AdventureFlag_SalvageArm = 140,
/* 0x126 */ AdventureFlag_ReceivedGoldenChimney = 294,
/* 0x126 */ AdventureFlag_ReceivedGoldenChimney = 294,
/* 0x127 */ AdventureFlag_ReceivedGoldenHandrail = 295,
/* 0x128 */ AdventureFlag_ReceivedGoldenCannon = 296,
/* 0x129 */ AdventureFlag_ReceivedGoldenHull = 297,
/* 0x128 */ AdventureFlag_ReceivedGoldenCannon = 296,
/* 0x129 */ AdventureFlag_ReceivedGoldenHull = 297,
/* 0x187 */ AdventureFlag_COUNT = 391,
};
@@ -110,14 +110,14 @@ public:
static unk32 Get_FlagsUnk_30(int index);
static bool Get_FlagsUnk_00(int index, FlagsUnk2 *result);
bool Get_FlagsUnk_18(int index, FlagsUnk2 *result);
FlagsUnk* Get_FlagsUnk(int index);
FlagsUnk *Get_FlagsUnk(int index);
bool func_ov00_02097e6c();
bool func_ov00_02097e7c();
bool func_ov00_02097ea4();
static unk32 func_ov00_02097ecc();
void* func_ov00_02097f8c();
void* func_ov00_02097fac();
void* func_ov00_02097fd0();
void *func_ov00_02097f8c();
void *func_ov00_02097fac();
void *func_ov00_02097fd0();
void func_ov00_02097ff4(bool param1, bool param2);
unk32 func_ov00_02098058();
bool func_ov00_02098064(unk32 param1);
+138 -138
View File
@@ -7,111 +7,111 @@ typedef u32 SfxId;
enum SfxId_ {
SfxId_None = 0x0,
SfxId_Music_StoryIntro = 0x2,
SfxId_Music_StoryOutsetIsland = 0x3,
SfxId_Music_StoryIntro = 0x2,
SfxId_Music_StoryOutsetIsland = 0x3,
SfxId_Music_StoryZeldasLullaby = 0x4,
SfxId_Music_DarkKingGanon = 0x5,
SfxId_Music_TheHeroOfTheWinds = 0x6,
SfxId_Music_OffToTheSeas = 0x7,
SfxId_Music_ThePirateShip_1 = 0x8,
SfxId_Music_DarkKingGanon = 0x5,
SfxId_Music_TheHeroOfTheWinds = 0x6,
SfxId_Music_OffToTheSeas = 0x7,
SfxId_Music_ThePirateShip_1 = 0x8,
SfxId_Music_TheKingOfTheOceans = 0x9,
SfxId_Music_InTheDarkDungeon_1 = 0xa,
SfxId_Music_LinebecksTheme = 0xb,
SfxId_Fanfare_KeyDizzy = 0xc,
SfxId_Music_MagicInTheAir_1 = 0xd,
SfxId_Music_TheSandsOfTime_1 = 0xe,
SfxId_Fanfare_Discovery_1 = 0xf,
SfxId_Music_MagicInTheAir_2 = 0x10,
SfxId_Music_TheSandsOfTime_2 = 0x11,
SfxId_Fanfare_Discovery_2 = 0x12,
SfxId_Music_MagicInTheAir_3 = 0x13,
SfxId_Music_LinebecksTheme = 0xb,
SfxId_Fanfare_KeyDizzy = 0xc,
SfxId_Music_MagicInTheAir_1 = 0xd,
SfxId_Music_TheSandsOfTime_1 = 0xe,
SfxId_Fanfare_Discovery_1 = 0xf,
SfxId_Music_MagicInTheAir_2 = 0x10,
SfxId_Music_TheSandsOfTime_2 = 0x11,
SfxId_Fanfare_Discovery_2 = 0x12,
SfxId_Music_MagicInTheAir_3 = 0x13,
SfxId_Music_MagicInTheAir_4 = 0x15,
SfxId_Music_Credits = 0x16,
SfxId_Music_Credits = 0x16,
SfxId_Music_DarkMemories = 0x18,
SfxId_Music_DarkMemories = 0x18,
SfxId_Music_TheSandsOfTime_3 = 0x19,
SfxId_Fanfare_Discovery_3 = 0x1a,
SfxId_Fanfare_Discovery_3 = 0x1a,
SfxId_Fanfare_Nothing_1 = 0x1c,
SfxId_Fanfare_Nothing_1 = 0x1c,
SfxId_Music_TheSandsOfTime_4 = 0x1d,
SfxId_Music_ZeldasLullaby = 0x1e,
SfxId_Music_ZeldasLullaby = 0x1e,
SfxId_Music_BellumLoop = 0x21,
SfxId_Music_ThePirateShip_2 = 0x25,
SfxId_Music_FairyFountain = 0x27,
SfxId_Fanfare_Treasure = 0x28,
SfxId_Fanfare_Rupee = 0x29,
SfxId_Fanfare_GoldRupee = 0x2a,
SfxId_Fanfare_Rupoor = 0x2b,
SfxId_Fanfare_Nothing_2 = 0x2c,
SfxId_Music_FairyFountain = 0x27,
SfxId_Fanfare_Treasure = 0x28,
SfxId_Fanfare_Rupee = 0x29,
SfxId_Fanfare_GoldRupee = 0x2a,
SfxId_Fanfare_Rupoor = 0x2b,
SfxId_Fanfare_Nothing_2 = 0x2c,
SfxId_Fanfare_HeartContainer = 0x2d,
SfxId_Fanfare_Gem = 0x2e,
SfxId_Fanfare_Discovery_4 = 0x2f,
SfxId_Music_Indoors_1 = 0x30,
SfxId_Music_Indoors_2 = 0x31,
SfxId_Music_Lithoroves = 0x32,
SfxId_Music_Indoors_3 = 0x33,
SfxId_Music_AstridsTheme = 0x34,
SfxId_Fanfare_Gem = 0x2e,
SfxId_Fanfare_Discovery_4 = 0x2f,
SfxId_Music_Indoors_1 = 0x30,
SfxId_Music_Indoors_2 = 0x31,
SfxId_Music_Lithoroves = 0x32,
SfxId_Music_Indoors_3 = 0x33,
SfxId_Music_AstridsTheme = 0x34,
SfxId_Music_Indoors_4 = 0x38,
SfxId_Music_Indoors_5 = 0x39,
SfxId_Music_Indoors_6 = 0x3a,
SfxId_Music_Indoors_7 = 0x3b,
SfxId_Music_Indoors_8 = 0x3c,
SfxId_Music_ThePirateShip_3 = 0x3e,
SfxId_Music_ThePirateShip_3 = 0x3e,
SfxId_Music_BeedlesShopShip_1 = 0x3f,
SfxId_Music_BeedlesShopShip_2 = 0x40,
SfxId_Music_Indoors_9 = 0x42,
SfxId_Music_Indoors_10 = 0x43,
SfxId_Music_Indoors_11 = 0x44,
SfxId_Music_Indoors_12 = 0x45,
SfxId_Music_Indoors_13 = 0x46,
SfxId_Music_Indoors_9 = 0x42,
SfxId_Music_Indoors_10 = 0x43,
SfxId_Music_Indoors_11 = 0x44,
SfxId_Music_Indoors_12 = 0x45,
SfxId_Music_Indoors_13 = 0x46,
SfxId_Music_DangerInTheGreatBlueSea_1 = 0x47,
SfxId_Music_DangerInTheGreatBlueSea_2 = 0x48,
SfxId_Music_TheDarkCaves_1 = 0x49,
SfxId_Fanfare_OhNo = 0x4a,
SfxId_Music_GameOver = 0x4b,
SfxId_Fanfare_TempleOfTheOceanKing = 0x4c,
SfxId_Music_EnemyBattle_1 = 0x4d,
SfxId_Music_MercayIsland_1 = 0x4e,
SfxId_Music_UnchartedTerritory_1 = 0x4f,
SfxId_Music_MercayIsland_2 = 0x50,
SfxId_Music_UnchartedTerritory_2 = 0x51,
SfxId_Music_MercayIsland_3 = 0x52,
SfxId_Music_UnchartedTerritory_3 = 0x53,
SfxId_Music_UnchartedTerritory_4 = 0x54,
SfxId_Music_UnchartedTerritory_5 = 0x55,
SfxId_Music_MercayIsland_4 = 0x56,
SfxId_Music_UnchartedTerritory_6 = 0x57,
SfxId_Music_TheGorons = 0x58,
SfxId_Music_UnchartedTerritory_7 = 0x59,
SfxId_Music_UnchartedTerritory_8 = 0x5a,
SfxId_Music_UnchartedTerritory_9 = 0x5b,
SfxId_Music_UnchartedTerritory_10 = 0x5c,
SfxId_Music_MercayIsland_5 = 0x5d,
SfxId_Music_UnchartedTerritory_11 = 0x5e,
SfxId_Music_UnchartedTerritory_12 = 0x5f,
SfxId_Music_TheDarkCaves_1 = 0x49,
SfxId_Fanfare_OhNo = 0x4a,
SfxId_Music_GameOver = 0x4b,
SfxId_Fanfare_TempleOfTheOceanKing = 0x4c,
SfxId_Music_EnemyBattle_1 = 0x4d,
SfxId_Music_MercayIsland_1 = 0x4e,
SfxId_Music_UnchartedTerritory_1 = 0x4f,
SfxId_Music_MercayIsland_2 = 0x50,
SfxId_Music_UnchartedTerritory_2 = 0x51,
SfxId_Music_MercayIsland_3 = 0x52,
SfxId_Music_UnchartedTerritory_3 = 0x53,
SfxId_Music_UnchartedTerritory_4 = 0x54,
SfxId_Music_UnchartedTerritory_5 = 0x55,
SfxId_Music_MercayIsland_4 = 0x56,
SfxId_Music_UnchartedTerritory_6 = 0x57,
SfxId_Music_TheGorons = 0x58,
SfxId_Music_UnchartedTerritory_7 = 0x59,
SfxId_Music_UnchartedTerritory_8 = 0x5a,
SfxId_Music_UnchartedTerritory_9 = 0x5b,
SfxId_Music_UnchartedTerritory_10 = 0x5c,
SfxId_Music_MercayIsland_5 = 0x5d,
SfxId_Music_UnchartedTerritory_11 = 0x5e,
SfxId_Music_UnchartedTerritory_12 = 0x5f,
SfxId_Music_MercayIsland_6 = 0x61,
SfxId_Music_MercayIsland_7 = 0x62,
SfxId_Music_MercayIsland_8 = 0x63,
SfxId_Music_MercayIsland_6 = 0x61,
SfxId_Music_MercayIsland_7 = 0x62,
SfxId_Music_MercayIsland_8 = 0x63,
SfxId_Music_UnchartedTerritory_13 = 0x64,
SfxId_Music_GhostShip = 0x66,
SfxId_Music_GhostShip = 0x66,
SfxId_Music_ChasingTheGhostShip = 0x67,
SfxId_Music_EnemyBattle_2 = 0x68,
SfxId_Music_JoleneAppears = 0x69,
SfxId_Music_JoleneAppearsLoop = 0x6a,
SfxId_Music_JoleneVsLink_1 = 0x6b,
SfxId_Music_JoleneVsLink_2 = 0x6c,
SfxId_Music_JoleneVsLinkEnd = 0x6d,
SfxId_Music_InTheDarkDungeon_2 = 0x6e,
SfxId_Music_InTheDarkDungeon_3 = 0x6f,
SfxId_Music_EnemyBattle_2 = 0x68,
SfxId_Music_JoleneAppears = 0x69,
SfxId_Music_JoleneAppearsLoop = 0x6a,
SfxId_Music_JoleneVsLink_1 = 0x6b,
SfxId_Music_JoleneVsLink_2 = 0x6c,
SfxId_Music_JoleneVsLinkEnd = 0x6d,
SfxId_Music_InTheDarkDungeon_2 = 0x6e,
SfxId_Music_InTheDarkDungeon_3 = 0x6f,
SfxId_Music_InTheDarkDungeon_4 = 0x72,
@@ -121,16 +121,16 @@ enum SfxId_ {
SfxId_Music_InTheDarkDungeon_7 = 0x79,
SfxId_Music_InTheDarkDungeon_8 = 0x7a,
SfxId_Music_InTheDarkDungeon_9 = 0x7b,
SfxId_Music_TheDarkCaves_2 = 0x7c,
SfxId_Music_TheDarkCaves_2 = 0x7c,
SfxId_Music_InTheDarkDungeon_10 = 0x7f,
SfxId_Music_TheDarkCaves_3 = 0x80,
SfxId_Music_TheDarkCaves_3 = 0x80,
SfxId_Music_InTheDarkDungeon_11 = 0x83,
SfxId_Music_TheDarkCaves_4 = 0x84,
SfxId_Music_TheDarkCaves_4 = 0x84,
SfxId_Music_InTheDarkDungeon_12 = 0x87,
SfxId_Music_TheDarkCaves_5 = 0x88,
SfxId_Music_TheDarkCaves_5 = 0x88,
SfxId_Music_InTheDarkDungeon_13 = 0x89,
SfxId_Music_InTheDarkDungeon_14 = 0x8b,
SfxId_Music_InTheDarkDungeon_15 = 0x8c,
@@ -144,78 +144,78 @@ enum SfxId_ {
SfxId_Music_InTheDarkDungeon_23 = 0x94,
SfxId_Music_InTheDarkDungeon_24 = 0x95,
SfxId_Music_InTheDarkDungeon_25 = 0x96,
SfxId_Music_TheDarkCaves_6 = 0x97,
SfxId_Music_TheDarkCaves_7 = 0x98,
SfxId_Music_TheDarkCaves_8 = 0x99,
SfxId_Music_TheDarkCaves_9 = 0x9a,
SfxId_Music_TheDarkCaves_10 = 0x9b,
SfxId_Music_TheDarkCaves_6 = 0x97,
SfxId_Music_TheDarkCaves_7 = 0x98,
SfxId_Music_TheDarkCaves_8 = 0x99,
SfxId_Music_TheDarkCaves_9 = 0x9a,
SfxId_Music_TheDarkCaves_10 = 0x9b,
SfxId_Music_InTheDarkDungeon_26 = 0x9e,
SfxId_Music_InTheDarkDungeon_27 = 0x9f,
SfxId_Music_InTheDarkDungeon_28 = 0xa0,
SfxId_Music_TheDarkCaves_11 = 0xa1,
SfxId_Music_TheDarkCaves_12 = 0xa2,
SfxId_Music_TheDarkCaves_11 = 0xa1,
SfxId_Music_TheDarkCaves_12 = 0xa2,
SfxId_Music_InTheDarkDungeon_29 = 0xa3,
SfxId_Music_TheDarkCaves_13 = 0xa4,
SfxId_Music_TheDarkCaves_14 = 0xa5,
SfxId_Music_TheDarkCaves_13 = 0xa4,
SfxId_Music_TheDarkCaves_14 = 0xa5,
SfxId_Music_PhantomChase_1 = 0xa7,
SfxId_Music_FencingPractice_1 = 0xa8,
SfxId_Music_FencingPractice_2 = 0xa9,
SfxId_Music_FencingPractice_3 = 0xaa,
SfxId_Music_FencingPractice_4 = 0xab,
SfxId_Music_FencingPractice_5 = 0xac,
SfxId_Music_FencingPractice_6 = 0xad,
SfxId_Music_FencingPractice_7 = 0xae,
SfxId_Music_FencingPractice_8 = 0xaf,
SfxId_Music_FencingPractice_9 = 0xb0,
SfxId_Music_PhantomChase_1 = 0xa7,
SfxId_Music_FencingPractice_1 = 0xa8,
SfxId_Music_FencingPractice_2 = 0xa9,
SfxId_Music_FencingPractice_3 = 0xaa,
SfxId_Music_FencingPractice_4 = 0xab,
SfxId_Music_FencingPractice_5 = 0xac,
SfxId_Music_FencingPractice_6 = 0xad,
SfxId_Music_FencingPractice_7 = 0xae,
SfxId_Music_FencingPractice_8 = 0xaf,
SfxId_Music_FencingPractice_9 = 0xb0,
SfxId_Music_FencingPractice_10 = 0xb1,
SfxId_Music_FencingPractice_11 = 0xb2,
SfxId_Music_FencingPractice_12 = 0xb3,
SfxId_Mandolin_Chord_1 = 0xb4,
SfxId_Mandolin_Chord_2 = 0xb5,
SfxId_Mandolin_Chord_3 = 0xb6,
SfxId_Mandolin_Chord_4 = 0xb7,
SfxId_Mandolin_Chord_5 = 0xb8,
SfxId_Mandolin_Chord_6 = 0xb9,
SfxId_Mandolin_Chord_7 = 0xba,
SfxId_Mandolin_Chord_8 = 0xbb,
SfxId_Music_BeginContactMode = 0xbc,
SfxId_Fanfare_Checkpoint_1 = 0xbd,
SfxId_Fanfare_Checkpoint_2 = 0xbe,
SfxId_Fanfare_Checkpoint_3 = 0xbf,
SfxId_Fanfare_Checkpoint_4 = 0xc0,
SfxId_Fanfare_Checkpoint_5 = 0xc1,
SfxId_Fanfare_Victory = 0xc2,
SfxId_Drumroll = 0xc3,
SfxId_Fanfare_Stumble = 0xc4,
SfxId_Music_BossBattle_1 = 0xc5,
SfxId_Music_BossBattle_2 = 0xc6,
SfxId_Music_BossBattle_3 = 0xc7,
SfxId_Music_BossBattle_4 = 0xc8,
SfxId_Music_BossBattle_5 = 0xc9,
SfxId_Music_BossBattle_6 = 0xca,
SfxId_Music_BossBattle_7 = 0xcb,
SfxId_Mandolin_Chord_1 = 0xb4,
SfxId_Mandolin_Chord_2 = 0xb5,
SfxId_Mandolin_Chord_3 = 0xb6,
SfxId_Mandolin_Chord_4 = 0xb7,
SfxId_Mandolin_Chord_5 = 0xb8,
SfxId_Mandolin_Chord_6 = 0xb9,
SfxId_Mandolin_Chord_7 = 0xba,
SfxId_Mandolin_Chord_8 = 0xbb,
SfxId_Music_BeginContactMode = 0xbc,
SfxId_Fanfare_Checkpoint_1 = 0xbd,
SfxId_Fanfare_Checkpoint_2 = 0xbe,
SfxId_Fanfare_Checkpoint_3 = 0xbf,
SfxId_Fanfare_Checkpoint_4 = 0xc0,
SfxId_Fanfare_Checkpoint_5 = 0xc1,
SfxId_Fanfare_Victory = 0xc2,
SfxId_Drumroll = 0xc3,
SfxId_Fanfare_Stumble = 0xc4,
SfxId_Music_BossBattle_1 = 0xc5,
SfxId_Music_BossBattle_2 = 0xc6,
SfxId_Music_BossBattle_3 = 0xc7,
SfxId_Music_BossBattle_4 = 0xc8,
SfxId_Music_BossBattle_5 = 0xc9,
SfxId_Music_BossBattle_6 = 0xca,
SfxId_Music_BossBattle_7 = 0xcb,
SfxId_Music_SpinSpinSpin_1 = 0xcf,
SfxId_Music_SpinSpinSpin_2 = 0xd2,
SfxId_Music_FencingPractice_13 = 0xd3,
SfxId_Music_FencingPracticeStart = 0xd4,
SfxId_Music_SpinSpinSpin_2 = 0xd2,
SfxId_Music_FencingPractice_13 = 0xd3,
SfxId_Music_FencingPracticeStart = 0xd4,
SfxId_Music_BattleStageSelection_1 = 0xd5,
SfxId_Music_FencingPractice_14 = 0xd6,
SfxId_Music_FencingPractice_15 = 0xd7,
SfxId_Music_FencingPractice_16 = 0xd8,
SfxId_Music_FencingPractice_17 = 0xd9,
SfxId_Music_IntoTheCrystalBall = 0xe0,
SfxId_Music_FencingPractice_14 = 0xd6,
SfxId_Music_FencingPractice_15 = 0xd7,
SfxId_Music_FencingPractice_16 = 0xd8,
SfxId_Music_FencingPractice_17 = 0xd9,
SfxId_Music_IntoTheCrystalBall = 0xe0,
SfxId_Music_PhantomChase_2 = 0xe2,
SfxId_Fanfare_GreatLoss = 0xe3,
SfxId_Fanfare_Incoming = 0xe4,
SfxId_Fanfare_GoalReached = 0xe5,
SfxId_Fanfare_LostGame_1 = 0xe6,
SfxId_Fanfare_LostGame_2 = 0xe7,
SfxId_Fanfare_BattleStart = 0xe8,
SfxId_Music_BattleEnd = 0xe9,
SfxId_Music_PhantomChase_2 = 0xe2,
SfxId_Fanfare_GreatLoss = 0xe3,
SfxId_Fanfare_Incoming = 0xe4,
SfxId_Fanfare_GoalReached = 0xe5,
SfxId_Fanfare_LostGame_1 = 0xe6,
SfxId_Fanfare_LostGame_2 = 0xe7,
SfxId_Fanfare_BattleStart = 0xe8,
SfxId_Music_BattleEnd = 0xe9,
SfxId_Music_BattleStageSelection_2 = 0xea,
};
+22
View File
@@ -0,0 +1,22 @@
#pragma once
#include "global.h"
#include "types.h"
struct Random {
/* 00 */ u64 mRandomValue;
/* 08 */ u64 mFactor;
/* 10 */ u64 mAddend;
/* 18 */
/**
* Generate a random number from 0 (inclusive) to `max` (exclusive)
*/
inline u32 Next(u32 max) {
mRandomValue = mAddend + mFactor * mRandomValue;
u64 result = (mRandomValue >> 32) * max;
return result >> 32;
}
};
extern Random *gRandom;
+7 -16
View File
@@ -3,20 +3,9 @@
#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)))
// NONMATCH(name) marks the function `name` as nonmatching
// The reason for the macro is to easily detect it in progress.py
#ifdef NONMATCHING
#define NONMATCH(name) name
#else
#define NONMATCH(name) asm name
#endif
// KILL(name) causes a function to be excluded from the output ROM, see elfkill.cpp
#define KILL(name)
#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)))
// Prevent the IDE from reporting errors that the compiler/linker won't report
#ifdef __INTELLISENSE__
@@ -29,9 +18,11 @@
#define override
// Define .sbss variables by using #pragma section sbss begin|end
#pragma define_section sbss ".data" ".sbss"
#pragma define_section sbss ".data" \
".sbss"
// Force variables to be in .data by using #pragma section force_data begin|end
#pragma define_section force_data ".data" ".data"
#pragma define_section force_data ".data" \
".data"
#endif
-1
View File
@@ -10,4 +10,3 @@ struct FileEntry {
/* 0c */ unk32 mUnk_0c;
/* 10 */
};
+7 -4
View File
@@ -8,10 +8,12 @@ typedef s32 q20;
// Q4.12 fixed point number
typedef s16 q4;
#define INT_TO_Q20(n) ((s32)((n) << 12))
#define FLOAT_TO_Q20(n) ((s32)(((n) * 8192 + 1) / 2))
#define ROUND_Q20(n) (((s32)(n) + 0x800) >> 12)
#define MUL_Q20(a,b) (q20)((((s64)(a)) * ((s64)(b)) + 0x800) >> 12)
#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)])
@@ -60,6 +62,7 @@ inline void Vec3p_Rotate(Vec3p *vec, q20 sin, q20 cos, Vec3p *out) {
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;