Merge branch 'main' into match_actor_rupee

This commit is contained in:
Aetias
2024-05-03 19:08:07 +02:00
192 changed files with 31571 additions and 30544 deletions
+15
View File
@@ -0,0 +1,15 @@
#pragma once
#include "global.h"
#include "types.h"
struct UnkStruct_027e0f78 {
/* 00 */ unk8 mUnk_00[0x18];
/* 18 */ u16 mUnk_18;
/* 1a */ u16 mUnk_1a;
/* 1c */ u16 mUnk_1c;
/* 1e */ u16 mUnk_1e;
/* 20 */
};
extern UnkStruct_027e0f78 *data_027e0f78;
+86 -40
View File
@@ -5,78 +5,122 @@
typedef s32 ItemFlag;
enum ItemFlag_ {
ItemFlag_None = -1,
ItemFlag_OshusSword = 0,
ItemFlag_WoodenShield = 1,
ItemFlag_Boomerang = 2,
ItemFlag_Shovel = 3,
ItemFlag_BombBag = 4,
ItemFlag_Bow = 5,
ItemFlag_GrapplingHook = 6,
ItemFlag_BombchuBag = 7,
ItemFlag_Hammer = 8,
ItemFlag_PotionA = 9,
ItemFlag_PotionB = 10,
/* 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_SpiritOfCourage = 20,
ItemFlag_SpiritOfPower = 21,
ItemFlag_SpiritOfWisdom = 22,
ItemFlag_CourageLv1 = 23,
ItemFlag_PowerLv1 = 24,
ItemFlag_WisdomLv1 = 25,
/* 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,
ItemFlag_CourageLv2 = 26,
ItemFlag_PowerLv2 = 27,
ItemFlag_WisdomLv2 = 28,
/* 0x1a */ ItemFlag_CourageLv2 = 26,
/* 0x1b */ ItemFlag_PowerLv2 = 27,
/* 0x1c */ ItemFlag_WisdomLv2 = 28,
ItemFlag_FAIRY_LV2 = ItemFlag_CourageLv2,
ItemFlag_Hourglass = 32,
ItemFlag_SeaChartSW = 33,
ItemFlag_SeaChartNW = 34,
ItemFlag_SeaChartSE = 35,
ItemFlag_SeaChartNE = 36,
ItemFlag_PhantomSword = 37,
ItemFlag_SunKey = 38,
/* 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,
ItemFlag_KingsKey = 42,
ItemFlag_GhostKey = 43,
/* 0x2d */ ItemFlag_SwordsmansScroll = 45,
/* 0x2e */ ItemFlag_CycloneSlate = 46,
/* 0x2f */ ItemFlag_Unk_47 = 47,
ItemFlag_SwordsmansScroll = 45,
/* 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,
ItemFlag_COUNT = 128,
};
typedef s32 ItemId;
enum ItemId_ {
/* -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,
@@ -85,7 +129,7 @@ enum ItemId_ {
/* 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,
@@ -178,12 +222,14 @@ enum ItemId_ {
/* 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,
};
+27 -13
View File
@@ -1,17 +1,29 @@
#pragma once
extern "C" {
#include <string.h>
}
#include "global.h"
#include "types.h"
#include "lib/math.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"
#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_ {
@@ -79,7 +91,7 @@ typedef u8 Potion;
enum Potion_ {
Potion_None,
Potion_Red,
Potion_Blue,
Potion_Purple,
Potion_Yellow,
Potion_COUNT,
};
@@ -197,23 +209,23 @@ private:
/* 0b4 */ u16 mQuiverSize;
/* 0b6 */ u16 mBombBagSize;
/* 0b8 */ u16 mBombchuBagSize;
/* 0ba */ unk16 mUnk_0ba; // only between 0 and 9
/* 0bc */ Potion mPotions[2];
/* 0ba */ u16 mUnk_0ba; // only between 0 and 9
/* 0bc */ Potion mPotions[MAX_POTIONS];
/* 0be */ unk8 mUnk_0be[2]; // padding?
/* 0c0 */ ItemModel *mItemModels[ItemModelId_COUNT];
/* 100 */ ItemModel *mDungeonItemModels[DungeonItemModelId_COUNT]; // non-null in dungeons/caves
/* 114 */ ModelRender *mUnk_114;
/* 118 */ ItemId mFanfareItem;
/* 11c */ unk32 mUnk_11c;
/* 11c */ SfxId mFanfareSfx;
/* 120 */ void *mFanfareItemModel;
/* 124 */ void *mUnk_124;
/* 128 */ ItemFlags mItemFlags;
/* 138 */ u32 mSalvagedTreasureFlags;
/* 13c */ ShipPartPricesShown mShipPartPricesShown;
/* 148 */ u32 mTreasurePriceShownFlags[CEIL_DIV(Treasure_COUNT, 32)];
/* 14c */ unk8 mUnk_14c;
/* 14c */ bool mMuteNextFanfare;
/* 14d */ u8 mUnk_14d;
/* 14e */ unk8 mUnk_14e[0x2];
/* 14e */ unk8 mUnk_14e[0x2]; // padding?
/* 150 */
public:
@@ -267,6 +279,7 @@ public:
void LoadFanfareItem(ItemId id);
bool GetFanfareItemScale(Vec3p *pScale) const;
void LoadDungeonItemModels();
static void PlayItemFanfareSfx(ItemId item);
// Ship
ShipType GetEquippedShipPart(ShipPart part) const;
@@ -296,12 +309,12 @@ public:
bool HasItem(ItemFlag item) const;
void AddItem(ItemFlag item);
void RemoveItem(ItemFlag item);
void GiveItem(ItemId id, unk32 param2, unk32 param3);
void GiveItem(ItemId id);
void GiveEquipItem(ItemFlag item, u16 ammo);
// Rupees
u32 GetMaxRupees() const;
void GiveRupees(u16 amount, unk32 param2);
s32 GetMaxRupees() const;
void GiveRupees(s16 amount, bool param2);
// Potion
void SetPotion(u32 index, Potion potion);
@@ -310,11 +323,12 @@ public:
bool HasPurplePotion() const;
void UnequipPotion();
// Unknown
void func_ov00_020ae350() const;
// Keys
unk32 GetNumKeys() const;
void GiveKeys(u32 amount);
void func_ov00_020ae4dc(unk32 param1); // sets mUnk_0ba
void func_ov00_020ae648(unk32 param1, unk32 param2, unk32 param3);
// Unknown
void func_ov00_020ae4dc(s32 param1);
};
extern ItemManager *gItemManager;
+19
View File
@@ -0,0 +1,19 @@
#pragma once
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "System/SysNew.hpp"
class CameraViewpoint : public SysObject {
/* 00 */ unk32 mUnk_00;
/* 04 */ unk8 mUnk_04;
/* 05 */ unk8 mUnk_05[3];
/* 08 */ Vec3p mPos;
/* 14 */ unk16 mUnk_14;
/* 16 */ unk16 mUnk_16;
/* 18 */ unk16 mUnk_18[2];
/* 1c */
};
+114
View File
@@ -0,0 +1,114 @@
#pragma once
#include "global.h"
#include "types.h"
#include "Map/Course_Unk_c8.hpp"
#include "Map/MapData.hpp"
#include "Physics/AABB.hpp"
#include "System/SysNew.hpp"
#define MAX_KEYS 8
typedef unk32 CourseType;
enum CourseType_ {
CourseType_Normal = 0,
CourseType_Dungeon = 1,
CourseType_Sea = 2,
CourseType_TempleOfTheOceanKing = 3,
CourseType_Battle = 4,
};
struct CourseProgress {
/* 0 */ unk32 flags;
/* 4 */ s8 numKeys;
/* 5 */ bool blueWarpOpen;
/* 6 */
};
class Course : public SysObject {
/* 000 */ unk32 mIndex;
/* 004 */ CourseType mType;
/* 008 */ unk32 mUnk_008;
/* 00c */ char mName[0x10];
/* 01c */ Vec2b mCurrMapPos; // position in the map grid
/* 01e */ unk8 mUnk_01e;
/* 01f */ unk8 mUnk_01f;
/* 020 */ unk8 mMapGrid[10][10];
/* 084 */ Vec2b mMainGrid; // part of the grid where you can walk off screen to another map
/* 086 */ Vec2b mMainGridSize;
/* 088 */ s32 mScreenMapOffsetX;
/* 08c */ s32 mScreenMapOffsetY;
/* 090 */ unk32 mUnk_090;
/* 094 */ unk32 mUnk_094;
/* 098 */ AABB mBounds;
/* 0b0 */ s8 mNumMaps;
/* 0b1 */ unk8 mUnk_0b1;
/* 0b2 */ unk8 mUnk_0b2;
/* 0b3 */ unk8 mUnk_0b3;
/* 0b4 */ unk32 mUnk_0b4;
/* 0b8 */ unk32 mUnk_0b8;
/* 0bc */ unk32 mUnk_0bc;
/* 0c0 */ unk32 mUnk_0c0;
/* 0c4 */ unk32 mUnk_0c4;
/* 0c8 */ Course_Unk_c8 *mUnk_0c8;
/* 0cc */ MapData *mMapData[100];
/* 25c */ bool mUnk_25c;
/* 25d */ bool mBlueWarpOpen;
/* 25e */ unk8 mUnk_25e;
/* 25f */ unk8 mUnk_25f;
/* 260 */ unk32 mNumKeys;
/* 260 */ unk32 mFlags0[1];
/* 268 */ unk32 mFlags1[1]; // knows which doors are open in a dungeon
/* 26c */
void GetDungeonProgress(CourseProgress *param_2);
void func_ov00_0207ca28(s32 param_2, unk32 param_3, unk32 param_4);
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);
void func_ov00_0207cbe8(s32 param_2);
unk8 func_ov00_0207cc24(s32 param_2);
unk32 FindMapData_Unk_08(unk32 map);
void GetMCSFilePath(unk32 buf, s32 fileIndex, unk32 fileType);
void GetMRCFilePath(unk32 param_2, unk32 buf, unk32 param_4);
void func_ov00_0207ce20(unk32 param_2, unk32 param_3, char *param_4, unk32 param_5);
void func_ov00_0207ce4c(s32 param_2, s32 param_3, unk32 param_4, char *param_5, unk32 param_6);
bool func_ov00_0207d404(s32 param_2, unk32 param_3, unk32 param_4);
bool IsCurrentMapInMainGrid();
bool IsInMainGrid(s32 x, s32 y);
bool IsMapInMainGrid(u32 map);
bool GetMapScreenPos(s32 map, s32 *x, s32 *y);
u32 GetScreenMapCellSizeX();
u32 GetScreenMapCellSizeY();
unk32 Get_Unk_c8_00();
unk32 Get_Unk_c8_04();
bool IsAdjacentMapOnMainGrid(unk32 dir);
bool HasGridMap(s32 x, s32 y);
unk8 GetAdjacentMap(unk32 dir);
u32 GetAdjacentMapX(s32 ir);
u32 GetAdjacentMapY(s32 dir);
u16 FindCurrentMapData_Unk_04();
u32 FindMapData_Unk_04(unk32 param_2);
unk32 FindMapData_Unk_0c(unk32 map);
void func_ov00_0207d7bc();
void SetFlag0(u32 index, bool value);
bool GetFlag0(u32 index);
void SetFlag1(u32 index, bool value);
bool SetFlag1(u32 index);
void SetMapDataFlag0(unk32 index, bool value);
bool GetMapDataFlag0(unk32 param_2);
void SetMapDataFlag1(unk32 param_2, bool param_3);
bool GetMapDataFlag1(unk32 param_2);
void SetMapDataFlag2(unk32 param_2, bool param_3);
bool GetMapDataFlag2(unk32 param_2);
void SetMapDataFlag3(unk32 param_2, bool param_3);
bool GetMapDataFlag3(unk32 param_2);
void SetMapDataFlag4(unk32 param_2, unk32 param_3);
bool GetMapDataFlag4(unk32 param_2);
MapData* FindMapData(u32 map);
MapData* FindCurrentMapData();
};
+19
View File
@@ -0,0 +1,19 @@
#pragma once
#include "global.h"
#include "types.h"
#include "System/SysNew.hpp"
class Course_Unk_c8 : public SysObject {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0c */ unk8 mUnk_0c;
/* 0d */ unk8 mUnk_0d[3];
/* 10 */ void *mUnk_10;
/* 14 */ s32 mUnk_14;
/* 18 */ u32 mUnk_18;
/* 1c */
};
+17
View File
@@ -0,0 +1,17 @@
#pragma once
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "System/SysNew.hpp"
class Entrance : public SysObject {
/* 00 */ Vec3p mPos;
/* 0c */ unk16 mAngle;
/* 0e */ s8 mUnk_0e;
/* 0f */ unk8 mUnk_0f;
/* 10 */ s32 mUnk_10;
/* 14 */
};
+21
View File
@@ -0,0 +1,21 @@
#pragma once
#include "global.h"
#include "types.h"
#include "System/SysNew.hpp"
class Exit : public SysObject {
/* 00 */ unk32 mDestCourse;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0c */ unk32 mUnk_0c;
/* 10 */ unk16 mUnk_10;
/* 12 */ unk8 mDestMap;
/* 13 */ unk8 mDestEntrance;
/* 14 */ unk8 mUnk_14;
/* 15 */ unk8 mUnk_15;
/* 16 */ unk8 mUnk_16;
/* 17 */ unk8 mUnk_17;
/* 18 */
};
+237
View File
@@ -0,0 +1,237 @@
#pragma once
#include <vector>
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "Map/Course.hpp"
#include "Map/Entrance.hpp"
#include "Map/TriggerBase.hpp"
#include "Map/Exit.hpp"
#include "Map/CameraViewpoint.hpp"
#include "System/SysNew.hpp"
#define MAX_ENTRANCES 0x40
#define MAX_TRIGGERS 0x40
#define MAX_EXITS 0x40
#define MAX_VIEWPOINTS 8
#define MAX_MAP_UNK_130 0x20
struct MapBase_Unk_180 {
/* 0 */ unk32 mUnk_0;
/* 4 */
~MapBase_Unk_180();
};
struct MapBase_Unk1 {
/* 00 */ s32 mUnk_00;
/* 04 */ Exit mExit_04;
/* 1c */ Exit mExit_1c;
/* 34 */
void func_ov00_02080324(s32 param_2, s32 param_3, s32 param_4);
};
struct MapBase_Unk2 {
/* 00 */ TriggerBase **mTrigger;
/* 04 */ Vec3p mVec;
/* 10 */
void func_ov00_02080ad0(TriggerBase **param_2, TriggerBase **param_3);
};
class MapBase : public SysObject {
public:
/* 000 (vtable) */
/* 004 */ unk8 mUnk_004;
/* 005 */ unk8 mUnk_005;
/* 006 */ unk8 mUnk_006;
/* 007 */ unk8 mUnk_007;
/* 008 */ unk8 mUnk_008;
/* 009 */ unk8 mUnk_009;
/* 00a */ unk8 mUnk_00a;
/* 00b */ unk8 mUnk_00b;
/* 00c */ unk8 mUnk_00c;
/* 00d */ unk8 mUnk_00d;
/* 00e */ unk8 mUnk_00e;
/* 00f */ unk8 mUnk_00f;
/* 010 */ unk8 mUnk_010;
/* 011 */ unk8 mUnk_011;
/* 012 */ unk8 mUnk_012;
/* 013 */ unk8 mUnk_013;
/* 014 */ unk8 mUnk_014;
/* 015 */ unk8 mUnk_015;
/* 016 */ unk8 mUnk_016[2];
/* 018 */ unk8 mUnk_018[2];
/* 01a */ unk8 mUnk_01a;
/* 01b */ unk8 mUnk_01b;
/* 01c */ unk8 mUnk_01c;
/* 01d */ unk8 mUnk_01d;
/* 01e */ unk8 mUnk_01e;
/* 01f */ unk8 mUnk_01f;
/* 020 */ unk32 mUnk_020;
/* 024 */ unk32 mUnk_024;
/* 028 */ s16 mUnk_028;
/* 02a */ s16 mUnk_02a;
/* 02c */ unk16 mUnk_02c;
/* 02e */ unk16 mUnk_02e;
/* 030 */ s16 mUnk_030;
/* 032 */ unk8 mUnk_032[2];
/* 034 */ unk32 mUnk_034;
/* 038 */ unk32 mUnk_038;
/* 03c */ unk32 mUnk_03c;
/* 040 */ unk32 mUnk_040;
/* 044 */ unk32 mUnk_044;
/* 048 */ u32 mUnk_048;
/* 04c */ unk32 mUnk_04c;
/* 050 */ unk8 mUnk_050[0x80];
/* 0d0 */ Vec3p mUnk_0d0;
/* 0dc */ Vec3p mUnk_0dc;
/* 0e8 */ Vec3p mUnk_0e8;
/* 0f4 */ Vec3p mUnk_0f4;
/* 100 */ std::vector<Entrance> mEntrances;
/* 10c */ std::vector<TriggerBase*> mTriggers;
/* 118 */ std::vector<Exit> mExits;
/* 124 */ std::vector<CameraViewpoint> mViewpoints;
/* 130 */ std::vector<TriggerBase*> mUnk_130;
/* 13c */ unk32 mUnk_13c;
/* 140 */ unk32 mUnk_140;
/* 144 */ void *mUnk_144;
/* 148 */ s32 mUnk_148;
/* 14c */ s32 mUnk_14c;
/* 150 */ unk32 mUnk_150;
/* 154 */ unk32 mUnk_154;
/* 158 */ unk8 mUnk_158[8];
/* 160 */ unk32 mUnk_160;
/* 164 */ unk8 mUnk_164[0x1c];
/* 180 */ MapBase_Unk_180 mUnk_180[2];
/* 188 */ unk8 mUnk_188[0x14];
/* 19c */ unk32 mUnk_19c;
/* 1a0 */ unk8 mUnk_1a0[0xc];
/* 1ac */ s16 mUnk_1ac;
/* 1ae */ unk8 mUnk_1ae[2];
/* 1b0 */
/* 00 */ virtual ~MapBase();
/* 08 */ virtual void vfunc_08(u32 param_2, u32 param_3, Course *param_4);
/* 0c */ virtual void vfunc_0c(Course *param_2);
/* 10 */ virtual void vfunc_10();
/* 14 */ virtual void vfunc_14();
/* 18 */ virtual void vfunc_18();
/* 1c */ virtual void vfunc_1c(bool param_2);
/* 20 */ virtual void vfunc_20(s32 param_2);
/* 24 */ virtual void vfunc_24();
/* 28 */ virtual void vfunc_28(s32 param_2);
/* 2c */ virtual void vfunc_2c();
/* 30 */ virtual void vfunc_30(s32 param_2);
/* 34 */ virtual bool vfunc_34(char *param_2);
/* 38 */ virtual void vfunc_38();
/* 3c */ virtual void vfunc_3c();
/* 40 */ virtual void vfunc_40();
/* 44 */ virtual void vfunc_44();
/* 48 */ virtual void vfunc_48();
/* 4c */ virtual void vfunc_4c() = 0;
/* 50 */ virtual unk32 vfunc_50();
/* 54 */ virtual unk32 vfunc_54();
/* 58 */ virtual unk32 vfunc_58();
/* 5c */ virtual unk32 vfunc_5c();
/* 60 */ virtual unk32 vfunc_60();
/* 64 */ virtual unk32 vfunc_64();
/* 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);
/* 78 */ virtual unk32 vfunc_78();
/* 7c */ virtual unk32 vfunc_7c();
/* 80 */ virtual unk32 vfunc_80();
/* 84 */ virtual void vfunc_84(unk32 param_2);
/* 88 */ virtual unk32 vfunc_88();
/* 8c */ virtual unk32 vfunc_8c();
/* 90 */ virtual unk8 vfunc_90(unk32 param_2, unk32 param_3, unk32 param_4);
/* 94 */ virtual void vfunc_94();
/* 98 */ virtual void vfunc_98();
/* 9c */ virtual void vfunc_9c();
/* a0 */ virtual void vfunc_a0();
/* a4 */ virtual unk32 vfunc_a4();
/* a8 */ virtual void vfunc_a8();
/* ac */ virtual void vfunc_ac();
/* b0 */ virtual unk8 vfunc_b0(unk32 param_2, unk32 param_3);
/* b4 */ virtual void vfunc_b4();
/* b8 */ virtual unk32 vfunc_b8();
/* bc */ virtual void vfunc_bc();
/* c0 */ virtual void vfunc_c0();
/* c4 */
void SetBounds(unk32 map, unk32 course);
void GetMapFilePath(char *courseName, unk32 num1, unk32 buf);
void func_ov00_0207ddf8(bool param_2);
void func_ov00_0207de68(unk32 param_2);
void func_ov00_0207de88();
void func_ov00_0207dea0(bool param_2);
bool func_ov00_0207e08c(unk32 param_2, unk32 param_3);
s32 func_ov00_0207e0f0(unk32 param_2);
s32 func_ov00_0207e28c(unk32 param_2);
static unk8 func_ov00_0207e940(unk8 *param_1);
static unk8 func_ov00_0207e968();
static unk8 func_ov00_0207e96c();
static unk8 func_ov00_0207f100();
bool func_ov00_0207f104(unk32 param_2, unk32 param_3);
unk32 func_ov00_0207f1f4(Vec3p *param_2, unk32 *param_3);
unk8 func_ov00_0207f38c(unk32 param_2);
void func_ov00_0207f4a4(Vec2s *param_2, unk32 param_3);
static void func_ov00_0207f53c(Vec2s *param_1, MapBase *param_2, Vec3p *param_3);
static void func_ov00_0207f588(Vec2s *param_1, MapBase *param_2, Vec2b *param_3, unk32 param_4);
void func_ov00_0207f630(Vec2s *param_2, Vec3p *param_3);
unk8 GetTileStartX(unk32 x);
unk8 GetTileStartZ(unk32 z);
s32 GetTileEndX(unk32 x);
s32 GetTileEndZ(unk32 z);
void GetTileBounds(Vec2b *tilePos, AABB *bounds);
unk8 GetClampedTileX(unk32 worldX);
unk8 GetClampedTileY(unk32 worldZ);
unk8 GetTileX(unk32 worldX);
unk8 GetTileY(unk32 worldZ);
bool IsInBounds(Vec3p *tileWorldPos);
s32 AddEntrance(Entrance *param_2);
unk8 FindEntrance(unk32 id);
unk8 func_ov00_0207f924(unk32 param_2);
unk8 func_ov00_0207f934();
unk8 func_ov00_0207f948(unk32 param_2);
void AddTrigger(TriggerParams *param_2);
s32 GetTriggerBoundingBox(unk32 param_2, AABB *param_3);
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);
bool IsTriggerTypeOverlapped(unk32 type, Vec3p *param_3);
bool AnyTrigger_func_0c(unk32 type);
unk8 Trigger_vfunc_08();
bool AddTrigger(unk32 param_2);
bool func_ov00_0207ff88(unk32 param_2);
void func_ov00_0208005c(s32 param_2, s32 param_3, unk32 param_4);
void func_ov00_0208006c(unk32 param_2, s32 param_3);
void func_ov00_0208007c(s32 param_2, s32 param_3);
void func_ov00_0208008c(u32 param_2);
unk8 AddExit(Exit *param_2);
unk8 func_ov00_02080140(Exit *param_2);
bool FindExit(unk32 param_2, Exit *param_3);
unk8 AddCameraViewpoint(CameraViewpoint *param_2);
bool FindViewpoint_Unk_4(unk8 id, CameraViewpoint *param_3);
bool FindViewpoint_Unk_0(unk32 param_2, CameraViewpoint *param_3);
void GetCurrentViewpoint(CameraViewpoint *param_2, unk32 param_3);
unk8 GetCurrentViewpoint_Unk_00(s32 param_2);
bool func_ov00_02080824(unk32 param_2, unk32 param_3);
bool AddUnk_130(unk32 param_2);
bool func_ov00_020809b8(unk32 param_2);
unk8 func_ov00_02080a78(Vec3p *param_2);
unk8 func_ov00_02080b24(Vec2b *param_2);
void func_ov00_02080d08(unk32 param_2);
bool TriggerOfType_vfunc_10(unk32 type);
void func_ov00_02080de4();
unk8 func_ov00_02080de8(unk32 param_2);
void func_ov00_02080edc();
};
+28
View File
@@ -0,0 +1,28 @@
#pragma once
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "System/SysNew.hpp"
class MapData : public SysObject {
public:
/* 00 */ char mUnk_00;
/* 01 */ s8 mMap;
/* 02 */ unk16 mUnk_02;
/* 04 */ u16 mUnk_04;
/* 06 */ unk8 mUnk_06[2];
/* 08 */ unk32 mUnk_08;
/* 0c */ unk32 mUnk_0c;
/* 10 */ unk8 mUnk_10[4];
/* 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;
/* 58 */
};
+243
View File
@@ -0,0 +1,243 @@
#pragma once
#include "global.h"
#include "types.h"
#include "lib/math.h"
#include "Map/Course.hpp"
#include "Map/MapBase.hpp"
#include "Physics/AABB.hpp"
#include "System/SysNew.hpp"
struct MapManager_Unk1 {
/* 0 */ unk32 mUnk_0;
/* 4 */ unk32 mUnk_4;
/* 8 */
~MapManager_Unk1();
};
struct MapManager_Unk2 {
/* 0 */ unk32 mUnk_0;
/* 4 */ unk32 mUnk_4;
/* 8 */
~MapManager_Unk2();
};
class MapManager : public SysObject {
public:
/* 00 */ Course *mCourse;
/* 04 */ MapBase *mMap;
/* 08 */ unk8 mUnk_08;
/* 09 */ unk8 mUnk_09;
/* 0a */ unk8 mUnk_0a;
/* 0b */ unk8 mUnk_0b;
/* 0c */ unk8 mUnk_0c;
/* 0d */ unk8 mUnk_0d;
/* 0e */ unk8 mUnk_0e;
/* 0f */ unk8 mUnk_0f;
/* 10 */
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);
unk8 func_ov00_0208230c(unk32 param_2);
unk8 func_ov00_02082348(unk32 param_2);
void func_ov00_020823a4(unk32 param_2);
unk8 func_ov00_020823b4();
bool func_ov00_020823c4(unk32 *param_2, s32 param_3);
s32 func_ov00_020823d4(s32 param_2);
s32 func_ov00_020823e4(s32 param_2);
unk8 MapData_vfunc_b4();
unk8 MapData_vfunc_9c();
s32 func_ov00_02082424();
unk8 func_ov00_02082454(unk32 param_2, unk32 param_3);
unk8 func_ov00_02082494(unk32 param_2);
unk8 func_ov00_020824cc(unk32 param_2);
unk8 func_ov00_02082504();
unk8 * func_ov00_02082538();
void func_ov00_02082594();
void func_ov00_020825ac();
s32 GetCourseFilePath(char *courseName, char *buf);
unk8 func_ov00_020825e4(unk32 param_2, unk32 param_3);
unk8 func_ov00_02082614(unk32 param_2, unk32 param_3);
unk8 MapData_vfunc_b0();
void func_ov00_02082650(s32 param_2, s32 param_3, unk32 param_4);
void func_ov00_02082660(s32 param_2, s32 param_3);
void func_ov00_02082670(unk32 param_2, s32 param_3);
void func_ov00_02082680(unk32 param_2, unk32 param_3);
unk8 func_ov00_020826a0(unk32 param_2, unk32 param_3, unk32 param_4);
unk8 CreateMap(unk32 mapType, unk32 param_3, unk32 param_4);
unk8 DestroyMap();
unk8 MapData_vfunc_44();
static unk8 func_ov00_02082808();
unk8 MapData_vfunc_7c();
unk8 MapData_vfunc_84();
bool func_ov00_020828f8(s32 *param_2);
unk8 GetCourseData_Unk_b0();
s32 func_ov00_02082914(unk32 param_2);
unk8 func_ov00_02082acc();
unk32 * func_ov00_02082adc();
unk8 func_ov00_02082af4();
bool func_ov00_02082b3c(s32 param_2);
unk8 func_ov00_02082d08();
unk8 GetCourseData_Unk_1c();
unk8 GetCourseData_Unk_1d();
unk8 func_ov00_02082d40();
u32 func_ov00_02082d74(unk32 param_2);
static unk8 func_ov00_02082d84();
bool func_ov00_02082e1c(s32 *param_2, s32 *param_3);
static unk8 func_ov00_0208306c();
void func_ov00_0208315c(s32 *param_2, s32 *param_3);
void func_ov00_02083244(u32 param_2, s32 *param_3, s32 *param_4, s32 *param_5);
void func_ov00_02083298(u32 param_2, s32 *param_3, s32 *param_4, s32 *param_5);
unk8 GetCourseData_Unk_25c();
bool func_ov00_02083318(unk32 param_2);
static unk8 func_ov00_02083328();
unk8 GetCourseData_Unk_86();
unk8 GetCourseData_Unk_87();
unk8 Get_MapData_Unk28();
unk8 Get_MapData_Unk2a();
static unk8 func_ov00_02083374();
static unk8 func_ov00_02083384();
unk8 GetCourseMinX();
unk8 GetCourseMinZ();
unk8 GetCourseMaxX();
unk8 GetCourseMaxZ();
unk8 func_ov00_020833c4();
unk8 func_ov00_020833d0();
unk8 func_ov00_020833dc();
unk8 func_ov00_020833e8();
unk8 Get_MapData_Unk_d0();
unk8 Get_MapData_Unk_d8();
unk8 GetMapData_Unk_dc(Vec3p *param_2);
unk8 GetMapData_Unk_e8(Vec3p *param_2);
unk8 GetMapData_Unk_d0(Vec3p *param_2);
unk8 func_ov00_0208346c(AABB *param_2);
unk8 func_ov00_020834bc(Vec3p *param_2, unk32 param_3, unk32 param_4);
unk8 func_ov00_02083524(Vec3p *param_2, unk32 param_3, unk32 param_4);
static void func_ov00_02083560(unk32 param_1, MapManager *param_2, u32 param_3);
unk8 func_ov00_02083570(unk32 param_2, unk32 param_3);
unk32 func_ov00_02083588();
unk32 func_ov00_020835a4();
unk32 func_ov00_020835b4();
unk8 func_ov00_020835c4(unk32 param_2, unk32 param_3);
bool func_ov00_020835e4(s32 param_2, unk32 *param_3, unk32 *param_4);
unk32 func_ov00_020835f4(s32 param_2);
void func_ov00_02083604(s32 param_2);
unk8 func_ov00_02083614(s32 param_2);
bool GetEntrancePos(Vec3p *param_2, unk32 entranceId);
bool func_ov00_02083664(Vec3p *param_2, unk32 entranceId);
s32 func_ov00_020836bc(u32 param_2, unk32 *param_3);
u32 func_ov00_020836cc(u32 param_2, AABB *param_3, u32 param_4);
unk8 func_ov00_020836dc(unk32 param_2, unk32 param_3);
bool func_ov00_02083770(u32 param_2, unk32 param_3);
bool func_ov00_02083780(unk32 param_2);
bool func_ov00_02083790(unk32 param_2);
unk8 func_ov00_02083840(unk32 param_2);
bool func_ov00_020838c8(s32 param_2);
bool func_ov00_020838d8(s32 param_2);
bool func_ov00_020838e8(u32 param_2, unk32 *param_3);
char func_ov00_020838f8(unk32 *param_2);
bool func_ov00_02083908(char param_2, unk32 *param_3);
void func_ov00_02083918(s32 param_2, s32 *param_3);
void func_ov00_02083928(unk8 *param_2, s32 param_3);
unk32 func_ov00_02083938(s32 param_2);
unk8 Set_MapData_Unk_16(unk8 value, unk32 index);
void func_ov00_02083958(s32 param_2);
void func_ov00_02083968(u32 param_2, unk8 *param_3);
bool func_ov00_02083978(unk32 param_2, Vec3p *param_3);
bool func_ov00_020839b4(s32 param_2);
bool func_ov00_020839c4(s32 param_2);
static unk8 func_ov00_020839d4();
static unk8 func_ov00_020839f8();
static void func_ov00_02083a1c(unk32 param_1, MapManager *param_2, Vec3p *param_3);
static unk8 func_ov00_02083a54(unk32 param_1, MapManager *param_2, unk32 param_3, unk32 param_4, unk32 param_5);
static unk8 func_ov00_02083b84();
static unk8 func_ov00_02083bac();
static unk8 func_ov00_02083bd4();
static unk8 func_ov00_02083bfc();
unk8 func_ov00_02083c24(unk32 param_2);
unk8 func_ov00_02083c50(unk32 param_2);
unk8 func_ov00_02083c7c(Vec3p *param_2, unk32 param_3);
static unk8 func_ov00_02083ce8(unk8 param_1, unk8 param_2, unk8 param_3, unk8 param_4, unk32 param_5);
unk8 func_ov00_02083e34(unk8 param_2, unk8 param_3, unk32 param_4);
unk8 MapData_vfunc_60();
static unk8 func_ov00_02083e70();
unk8 MapData_vfunc_68();
void func_ov00_02083ef8(Vec3p *param_2, Vec3p *param_3);
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);
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);
unk8 MapData_vfunc_78();
static unk8 func_ov00_020840dc();
static unk8 func_ov00_02084100(unk32 param_1, MapManager *param_2);
unk8 GetMapData_Unk_48();
unk8 GetMapData_Unk_4c();
unk32 func_ov00_0208412c();
void func_ov00_0208413c(unk32 param_2);
unk8 MapData_vfunc_58();
static unk8 func_ov00_02084164();
unk8 GetMapData_Unk_0a();
unk8 GetMapData_Unk_0b();
unk8 MapData_vfunc_a4();
unk8 func_ov00_0208433c(Vec3p *param_2, unk32 param_3);
static unk8 func_ov00_0208439c();
void func_ov00_020843ec(s32 *param_2);
unk8 GetMapData_Unk_38();
unk8 func_ov00_020846a4();
static unk8 func_ov00_02084700();
unk8 func_ov00_02084740();
unk8 func_ov00_020847e0();
unk8 func_ov00_020847f0();
bool func_ov00_02084838();
bool func_ov00_020848b8();
void func_ov00_02084924(u32 param_2);
static unk8 func_ov00_02084934();
unk8 GetMapData_Unk_06();
unk8 GetMapData_Unk_07();
unk8 func_ov00_0208499c();
unk8 func_ov00_020849c0();
unk8 func_ov00_020849dc();
static bool func_ov00_020849f8(unk32 param_1);
unk8 func_ov00_02084a50();
void SpawnNPC(Vec3p *param_2, unk32 param_3, unk32 param_4);
bool func_ov00_02084ac4(u32 actorId);
unk8 SetNumKeys(unk32 keys);
unk8 GetNumKeys();
unk8 SetCourseData_Unk_25c(unk8 param_2);
unk8 GetCourseData_Unk_25d();
unk8 func_ov00_02084b38(unk32 param_2, unk32 param_3, unk32 param_4);
bool func_ov00_02084be0(unk32 param_2, unk32 param_3);
void func_ov00_02084c5c(unk32 param_2, unk32 param_3);
bool func_ov00_02084c6c(unk32 param_2);
unk8 func_ov00_02084c7c(unk32 param_2);
unk8 func_ov00_02084c94(unk32 param_2);
unk8 func_ov00_02084cb0(unk32 param_2);
unk8 func_ov00_02084cc8(unk32 param_2);
unk8 func_ov00_02084ce4(unk32 param_2);
unk8 func_ov00_02084cfc(unk32 param_2);
unk8 GetMapData_Unk_09();
unk8 func_ov00_02084d24(unk8 param_2, unk8 param_3, unk32 param_4);
s32 func_ov00_02084d4c(unk32 param_2, unk32 param_3, Vec3p *param_4);
unk8 func_ov00_02084ebc(unk32 param_2);
s32 func_ov00_02085108(s32 *param_2);
static unk8 func_ov00_0208527c();
static unk8 func_ov00_020853fc();
static unk8 func_ov00_02085594();
static void func_ov00_0208583c(unk32 param_1, Vec3p *param_2, unk32 param_3);
static unk8 func_ov00_020858b0();
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);
};
extern MapManager *gMapManager;
+13
View File
@@ -0,0 +1,13 @@
#pragma once
#include "global.h"
#include "types.h"
#include "Physics/AABB.hpp"
#include "Map/TriggerBase.hpp"
class TriggerAABB : public TriggerBase {
/* 00 (base) */
/* 14 */ AABB mAABB;
/* 2c */
};
+20
View File
@@ -0,0 +1,20 @@
#pragma once
#include "global.h"
#include "types.h"
#include "Map/TriggerAABB.hpp"
class TriggerAABB_Unk1 : public TriggerAABB {
/* 00 (base) */
/* 2c */ unk8 mUnk_2c;
/* 2d */ unk8 mUnk_2d[3];
/* 30 */ void *mUnk_30;
/* 34 */ unk8 mUnk_34;
/* 35 */ unk8 mUnk_35;
/* 36 */ unk8 mUnk_36[2];
/* 38 */ unk32 mUnk_38;
/* 3c */ unk32 mUnk_3c;
/* 40 */ unk32 mUnk_40;
/* 44 */
};
+13
View File
@@ -0,0 +1,13 @@
#pragma once
#include "global.h"
#include "types.h"
#include "Map/TriggerAABB.hpp"
class TriggerAABB_Unk2 : public TriggerAABB {
/* 00 (base) */
/* 2c */ unk32 mUnk_2c;
/* 30 */ unk8 mUnk_30[0x2c][4]; // non-documented class which inherits from base class
/* e0 */
};
+40
View File
@@ -0,0 +1,40 @@
#pragma once
#include "global.h"
#include "types.h"
#include "System/SysNew.hpp"
struct TriggerParams {
/* 0 */ s8 id;
/* 1 */ unk8 zMin;
/* 2 */ unk8 zMax;
/* 3 */ unk8 xMin;
/* 4 */ unk8 xMax;
/* 5 */ bool isAABB_Unk1;
/* 6 */ s8 mUnk_6;
/* 7 */ s8 mUnk_7;
/* 8 */ s8 mUnk_8;
/* 9 */ bool isAABB_Unk2;
/* a */ bool isSphere;
/* b */
};
class TriggerBase : public SysObject {
/* 00 (vtable) */
/* 04 */ unk8 mUnk_04;
/* 05 */ u8 mId;
/* 06 */ unk8 mUnk_06[2];
/* 08 */ u32 mUnk_08;
/* 0c */ u32 mUnk_0c;
/* 10 */ u32 mUnk_10;
/* 14 */
/* 00 */ virtual ~TriggerBase();
/* 08 */ void vfunc_08();
/* 0c */ unk32 vfunc_0c();
/* 10 */ unk32 vfunc_10();
/* 14 */ bool Overlaps();
/* 18 */ bool GetBoundingBox();
/* 1c */
};
+14
View File
@@ -0,0 +1,14 @@
#pragma once
#include "global.h"
#include "types.h"
#include "Physics/Sphere.hpp"
#include "Map/TriggerBase.hpp"
class TriggerSphere : public TriggerBase {
/* 00 (base) */
/* 14 */ Sphere mSphere;
/* 24 */ s32 mHeight;
/* 28 */
};
+22
View File
@@ -0,0 +1,22 @@
#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;
+1
View File
@@ -42,4 +42,5 @@ public:
bool func_ov00_0207aeac();
void UpdateConditionally(TouchState *state, u16 speed);
void func_ov00_0207af38(u16 speed, bool param2);
~TouchControl();
};
+28 -1
View File
@@ -9,7 +9,33 @@
typedef u32 AdventureFlag;
enum AdventureFlag_ {
AdventureFlag_COUNT = 391,
/* 0x09 */ AdventureFlag_SWSeaChart = 9,
/* 0x0a */ AdventureFlag_NWSeaChart = 10,
/* 0x0b */ AdventureFlag_SESeaChart = 11,
/* 0x0c */ AdventureFlag_NESeaChart = 12,
/* 0x13 */ AdventureFlag_Hourglass = 19,
/* 0x16 */ AdventureFlag_SunKey = 22,
/* 0x17 */ AdventureFlag_Unk_23 = 23,
/* 0x2b */ AdventureFlag_FishingRod = 43,
/* 0x30 */ AdventureFlag_Cannon = 48,
/* 0x7d */ AdventureFlag_Azurine = 125,
/* 0x7e */ AdventureFlag_Crimsonine = 126,
/* 0x7f */ AdventureFlag_Aquanine = 127,
/* 0x80 */ AdventureFlag_Unk_128 = 128,
/* 0x8c */ AdventureFlag_SalvageArm = 140,
/* 0x126 */ AdventureFlag_ReceivedGoldenChimney = 294,
/* 0x127 */ AdventureFlag_ReceivedGoldenHandrail = 295,
/* 0x128 */ AdventureFlag_ReceivedGoldenCannon = 296,
/* 0x129 */ AdventureFlag_ReceivedGoldenHull = 297,
/* 0x187 */ AdventureFlag_COUNT = 391,
};
struct FlagsUnk2 {
@@ -46,6 +72,7 @@ struct FlagsUnk {
};
class AdventureFlags : public SysObject {
public:
/* 00 */ unk32 mFlags[16];
/* 40 */ CutsceneHandler *mCutsceneHandler;
/* 44 */ void *mUnk_44;
+221
View File
@@ -0,0 +1,221 @@
#pragma once
#include "global.h"
#include "types.h"
typedef u32 SfxId;
enum SfxId_ {
SfxId_None = 0x0,
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_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_MagicInTheAir_4 = 0x15,
SfxId_Music_Credits = 0x16,
SfxId_Music_DarkMemories = 0x18,
SfxId_Music_TheSandsOfTime_3 = 0x19,
SfxId_Fanfare_Discovery_3 = 0x1a,
SfxId_Fanfare_Nothing_1 = 0x1c,
SfxId_Music_TheSandsOfTime_4 = 0x1d,
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_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_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_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_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_MercayIsland_6 = 0x61,
SfxId_Music_MercayIsland_7 = 0x62,
SfxId_Music_MercayIsland_8 = 0x63,
SfxId_Music_UnchartedTerritory_13 = 0x64,
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_InTheDarkDungeon_4 = 0x72,
SfxId_Music_InTheDarkDungeon_5 = 0x75,
SfxId_Music_InTheDarkDungeon_6 = 0x78,
SfxId_Music_InTheDarkDungeon_7 = 0x79,
SfxId_Music_InTheDarkDungeon_8 = 0x7a,
SfxId_Music_InTheDarkDungeon_9 = 0x7b,
SfxId_Music_TheDarkCaves_2 = 0x7c,
SfxId_Music_InTheDarkDungeon_10 = 0x7f,
SfxId_Music_TheDarkCaves_3 = 0x80,
SfxId_Music_InTheDarkDungeon_11 = 0x83,
SfxId_Music_TheDarkCaves_4 = 0x84,
SfxId_Music_InTheDarkDungeon_12 = 0x87,
SfxId_Music_TheDarkCaves_5 = 0x88,
SfxId_Music_InTheDarkDungeon_13 = 0x89,
SfxId_Music_InTheDarkDungeon_14 = 0x8b,
SfxId_Music_InTheDarkDungeon_15 = 0x8c,
SfxId_Music_InTheDarkDungeon_16 = 0x8d,
SfxId_Music_InTheDarkDungeon_17 = 0x8e,
SfxId_Music_InTheDarkDungeon_18 = 0x8f,
SfxId_Music_InTheDarkDungeon_19 = 0x90,
SfxId_Music_InTheDarkDungeon_20 = 0x91,
SfxId_Music_InTheDarkDungeon_21 = 0x92,
SfxId_Music_InTheDarkDungeon_22 = 0x93,
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_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_InTheDarkDungeon_29 = 0xa3,
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_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_Music_SpinSpinSpin_1 = 0xcf,
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_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,
};
+6
View File
@@ -15,6 +15,9 @@
#define NONMATCH(name) asm name
#endif
// KILL(name) causes a function to be excluded from the output ROM, see elfkill.cpp
#define KILL(name)
// Prevent the IDE from reporting errors that the compiler/linker won't report
#ifdef __INTELLISENSE__
#endif
@@ -28,4 +31,7 @@
// Define .sbss variables by using #pragma section sbss begin|end
#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"
#endif
+12
View File
@@ -13,6 +13,18 @@ typedef s16 q4;
#define ROUND_Q20(n) (((s32)(n) + 0x800) >> 12)
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;