mirror of
https://github.com/zeldaret/ph
synced 2026-05-24 15:20:55 -04:00
Move ov000 documentation from Ghidra
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
struct UnkStruct_027e0d38 {
|
||||
/* 00 */ unk8 mUnk_00;
|
||||
/* 01 */ unk8 mUnk_01[3]; // padding?
|
||||
/* 04 */ unk32 mUnk_04;
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 0c */ unk32 mUnk_0c;
|
||||
/* 10 */ unk32 mUnk_10;
|
||||
/* 14 */ unk32 mUnk_14;
|
||||
/* 18 */ unk32 mUnk_18;
|
||||
/* 1c */ unk16 mUnk_1c;
|
||||
/* 1e */ unk8 mUnk_1e;
|
||||
/* 1f */ unk8 mUnk_1f;
|
||||
/* 20 */ unk8 mUnk_20;
|
||||
/* 21 */ unk8 mUnk_21;
|
||||
/* 22 */ unk8 mUnk_22[2]; // padding?
|
||||
/* 24 */ void *mUnk_24;
|
||||
/* 28 */ void *mUnk_28;
|
||||
/* 2c */
|
||||
|
||||
unk32 func_ov000_02078b40();
|
||||
unk8 func_ov000_02078b64();
|
||||
bool func_ov000_02078b88();
|
||||
};
|
||||
|
||||
extern UnkStruct_027e0d38 *data_027e0d38;
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#define MAX_POTIONS 2
|
||||
|
||||
typedef s32 ItemFlag;
|
||||
enum ItemFlag_ {
|
||||
ItemFlag_None = -1,
|
||||
@@ -233,6 +235,77 @@ enum ItemId_ {
|
||||
/* 0x88 */ ItemId_Unk_136 = 136,
|
||||
};
|
||||
|
||||
enum Gem {
|
||||
Gem_Courage,
|
||||
Gem_Power,
|
||||
Gem_Wisdom,
|
||||
Gem_COUNT,
|
||||
};
|
||||
|
||||
typedef u32 ShipPart;
|
||||
enum ShipPart_ {
|
||||
ShipPart_Anchor,
|
||||
ShipPart_Prow,
|
||||
ShipPart_Hull,
|
||||
ShipPart_Cannon,
|
||||
ShipPart_Handrail,
|
||||
ShipPart_Wheel,
|
||||
ShipPart_Chimney,
|
||||
ShipPart_Bridge,
|
||||
ShipPart_COUNT,
|
||||
};
|
||||
|
||||
typedef u32 ShipType;
|
||||
enum ShipType_ {
|
||||
ShipType_Linebeck,
|
||||
ShipType_Bright,
|
||||
ShipType_Iron,
|
||||
ShipType_Stone,
|
||||
ShipType_Vintage,
|
||||
ShipType_Demon,
|
||||
ShipType_Tropical,
|
||||
ShipType_Dignified,
|
||||
ShipType_Golden,
|
||||
ShipType_COUNT,
|
||||
};
|
||||
|
||||
typedef u32 ShipItem;
|
||||
#define SHIP_ITEM(part, ship) (ShipPart_##part * ShipPart_COUNT + ShipType_##type)
|
||||
#define ShipItem_COUNT (ShipPart_COUNT * ShipType_COUNT)
|
||||
|
||||
typedef u32 Treasure;
|
||||
enum Treasure_ {
|
||||
Treasure_PinkCoral,
|
||||
Treasure_WhitePearlLoop,
|
||||
Treasure_DarkPearlLoop,
|
||||
Treasure_ZoraScale,
|
||||
Treasure_GoronAmber,
|
||||
Treasure_RutoCrown,
|
||||
Treasure_HelmarocPlume,
|
||||
Treasure_RegalRing,
|
||||
|
||||
Treasure_COUNT,
|
||||
};
|
||||
|
||||
typedef u8 Potion;
|
||||
enum Potion_ {
|
||||
Potion_None,
|
||||
Potion_Red,
|
||||
Potion_Purple,
|
||||
Potion_Yellow,
|
||||
Potion_COUNT,
|
||||
};
|
||||
|
||||
struct ItemFlags {
|
||||
/* 00 */ u32 flags[CEIL_DIV(ItemFlag_COUNT, 32)];
|
||||
/* 10 */
|
||||
};
|
||||
|
||||
struct ShipPartPricesShown {
|
||||
/* 0 */ u32 flags[CEIL_DIV(ShipItem_COUNT, 32)];
|
||||
/* c */
|
||||
};
|
||||
|
||||
namespace Item {
|
||||
bool func_ov00_020ad020(ItemId item);
|
||||
bool func_ov00_020ad068(ItemId item);
|
||||
|
||||
@@ -9,21 +9,16 @@ extern "C" {
|
||||
#include "types.h"
|
||||
|
||||
#include "Actor/ActorNavi.hpp"
|
||||
#include "DTCM/UnkStruct_027e0f78.hpp"
|
||||
#include "Item/Item.hpp"
|
||||
#include "Map/MapManager.hpp"
|
||||
#include "Player/EquipItem.hpp"
|
||||
#include "Player/HealthManager.hpp"
|
||||
#include "Render/ModelRender.hpp"
|
||||
#include "Save/AdventureFlags.hpp"
|
||||
#include "Save/SaveItemManager.hpp"
|
||||
#include "Sound/Sfx.hpp"
|
||||
#include "System/OverlayManager.hpp"
|
||||
#include "System/SysNew.hpp"
|
||||
|
||||
#define MAX_HOURGLASS_SECONDS 1500 // 25 minutes
|
||||
#define MAX_AMMO_UPGRADE 2
|
||||
#define MAX_UNK_0BA 9
|
||||
#define MAX_POTIONS 2
|
||||
|
||||
typedef s32 FairyId;
|
||||
enum FairyId_ {
|
||||
@@ -34,98 +29,6 @@ enum FairyId_ {
|
||||
FairyId_COUNT = 3,
|
||||
};
|
||||
|
||||
enum Gem {
|
||||
Gem_Courage,
|
||||
Gem_Power,
|
||||
Gem_Wisdom,
|
||||
Gem_COUNT,
|
||||
};
|
||||
|
||||
typedef u32 ShipPart;
|
||||
enum ShipPart_ {
|
||||
ShipPart_Anchor,
|
||||
ShipPart_Prow,
|
||||
ShipPart_Hull,
|
||||
ShipPart_Cannon,
|
||||
ShipPart_Handrail,
|
||||
ShipPart_Wheel,
|
||||
ShipPart_Chimney,
|
||||
ShipPart_Bridge,
|
||||
ShipPart_COUNT,
|
||||
};
|
||||
|
||||
typedef u32 ShipType;
|
||||
enum ShipType_ {
|
||||
ShipType_Linebeck,
|
||||
ShipType_Bright,
|
||||
ShipType_Iron,
|
||||
ShipType_Stone,
|
||||
ShipType_Vintage,
|
||||
ShipType_Demon,
|
||||
ShipType_Tropical,
|
||||
ShipType_Dignified,
|
||||
ShipType_Golden,
|
||||
ShipType_COUNT,
|
||||
};
|
||||
|
||||
typedef u32 ShipItem;
|
||||
#define SHIP_ITEM(part, ship) (ShipPart_##part * ShipPart_COUNT + ShipType_##type)
|
||||
#define ShipItem_COUNT (ShipPart_COUNT * ShipType_COUNT)
|
||||
|
||||
typedef u32 Treasure;
|
||||
enum Treasure_ {
|
||||
Treasure_PinkCoral,
|
||||
Treasure_WhitePearlLoop,
|
||||
Treasure_DarkPearlLoop,
|
||||
Treasure_ZoraScale,
|
||||
Treasure_GoronAmber,
|
||||
Treasure_RutoCrown,
|
||||
Treasure_HelmarocPlume,
|
||||
Treasure_RegalRing,
|
||||
|
||||
Treasure_COUNT,
|
||||
};
|
||||
|
||||
#define NUM_POTIONS 2
|
||||
typedef u8 Potion;
|
||||
enum Potion_ {
|
||||
Potion_None,
|
||||
Potion_Red,
|
||||
Potion_Purple,
|
||||
Potion_Yellow,
|
||||
Potion_COUNT,
|
||||
};
|
||||
|
||||
struct ItemFlags {
|
||||
/* 00 */ u32 flags[CEIL_DIV(ItemFlag_COUNT, 32)];
|
||||
/* 10 */
|
||||
};
|
||||
|
||||
struct ShipPartPricesShown {
|
||||
/* 0 */ u32 flags[CEIL_DIV(ShipItem_COUNT, 32)];
|
||||
/* c */
|
||||
};
|
||||
|
||||
struct UnkStruct_027e0d38 {
|
||||
/* 00 */ unk8 mUnk_00;
|
||||
/* 01 */ unk8 mUnk_01[3]; // padding?
|
||||
/* 04 */ unk32 mUnk_04;
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 0c */ unk32 mUnk_0c;
|
||||
/* 10 */ unk32 mUnk_10;
|
||||
/* 14 */ unk32 mUnk_14;
|
||||
/* 18 */ unk32 mUnk_18;
|
||||
/* 1c */ unk16 mUnk_1c;
|
||||
/* 1e */ unk8 mUnk_1e;
|
||||
/* 1f */ unk8 mUnk_1f;
|
||||
/* 20 */ unk8 mUnk_20;
|
||||
/* 21 */ unk8 mUnk_21;
|
||||
/* 22 */ unk8 mUnk_22[2]; // padding?
|
||||
/* 24 */ void *mUnk_24;
|
||||
/* 28 */ void *mUnk_28;
|
||||
/* 2c */
|
||||
};
|
||||
|
||||
typedef u32 ItemModelId;
|
||||
enum ItemModelId_ {
|
||||
ItemModelId_OshusSword, // swA
|
||||
@@ -156,35 +59,6 @@ enum DungeonItemModelId_ {
|
||||
DungeonItemModelId_COUNT,
|
||||
};
|
||||
|
||||
struct SaveItemManager {
|
||||
/* 00 */ ItemFlags itemFlags;
|
||||
/* 10 */ u32 salvagedTreasureFlags;
|
||||
/* 14 */ ShipPartPricesShown shipPartPricesShown;
|
||||
/* 20 */ u32 treasurePriceShownFlags[CEIL_DIV(Treasure_COUNT, 32)];
|
||||
/* 24 */ u8 equippedShipParts[ShipPart_COUNT];
|
||||
/* 2c */ s8 shipParts[ShipPart_COUNT][ShipType_COUNT];
|
||||
/* 74 */ s8 treasure[Treasure_COUNT];
|
||||
/* 7c */ unk8 unk_7c[4];
|
||||
/* 80 */ u16 hourglassSeconds;
|
||||
/* 82 */ u16 unk_82[6];
|
||||
/* 8e */ u16 numRupees;
|
||||
/* 90 */ unk8 unk_90;
|
||||
/* 91 */ unk8 unk_91;
|
||||
/* 92 */ unk8 unk_92;
|
||||
/* 93 */ u8 numBombs;
|
||||
/* 94 */ u8 numBombchus;
|
||||
/* 95 */ u8 numArrows;
|
||||
/* 96 */ s8 equippedItem;
|
||||
/* 97 */ Potion potions[NUM_POTIONS];
|
||||
/* 99 */ u8 numGems[Gem_COUNT];
|
||||
/* 9c */ u8 quiverSize;
|
||||
/* 9d */ u8 bombBagSize;
|
||||
/* 9e */ u8 bombchuBagSize;
|
||||
/* 9f */ u8 unk_9f[6];
|
||||
/* a5 */ u8 equippedFairy;
|
||||
/* a6 */
|
||||
};
|
||||
|
||||
class ItemManager : public SysObject {
|
||||
private:
|
||||
/* 000 */ ItemFlag mEquippedItem;
|
||||
|
||||
@@ -177,7 +177,7 @@ public:
|
||||
unk8 MapData_vfunc_6c();
|
||||
unk8 MapData_vfunc_70();
|
||||
static unk8 func_ov00_02083fb0(u32 *param_1, MapManager *param_2, Vec3p *param_3);
|
||||
void func_ov00_02084024(unk32 param_2, AABB *param_3);
|
||||
void GetTileWorldBounds(Vec2b *tile, AABB *tileBounds);
|
||||
unk8 MapData_vfunc_54();
|
||||
unk8 func_ov00_020840a0(unk8 param_2, unk8 param_3, unk32 param_4);
|
||||
unk8 MapData_vfunc_78();
|
||||
|
||||
@@ -5,10 +5,23 @@
|
||||
|
||||
#include "nds/math.h"
|
||||
|
||||
#include "Physics/Cube.hpp"
|
||||
|
||||
struct AABB {
|
||||
Vec3p min;
|
||||
Vec3p max;
|
||||
|
||||
bool func_ov000_0208e680();
|
||||
void GetCenter(Vec3p *center);
|
||||
q20 GetSizeX();
|
||||
q20 GetSizeZ();
|
||||
q20 GetSizeY();
|
||||
bool Contains(Vec3p *vec);
|
||||
bool ContainsInXZ(Vec3p *vec);
|
||||
bool ContainsInXY(Vec3p *vec);
|
||||
bool IntersectsCube(Cube *cube);
|
||||
bool func_ov000_0208e87c(Cube *cube, Vec3p *vec, u32 *out);
|
||||
void GrowToPoint(Vec3p *point);
|
||||
void Grow(Vec3p *dimensions);
|
||||
void GrowScalar(q20 amount);
|
||||
};
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
#include "nds/math.h"
|
||||
|
||||
struct Cube {
|
||||
Vec3p center;
|
||||
q20 size;
|
||||
};
|
||||
@@ -0,0 +1,37 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
#include "../Item/Item.hpp"
|
||||
|
||||
struct SaveItemManager {
|
||||
/* 00 */ ItemFlags itemFlags;
|
||||
/* 10 */ u32 salvagedTreasureFlags;
|
||||
/* 14 */ ShipPartPricesShown shipPartPricesShown;
|
||||
/* 20 */ u32 treasurePriceShownFlags[CEIL_DIV(Treasure_COUNT, 32)];
|
||||
/* 24 */ u8 equippedShipParts[ShipPart_COUNT];
|
||||
/* 2c */ s8 shipParts[ShipPart_COUNT][ShipType_COUNT];
|
||||
/* 74 */ s8 treasure[Treasure_COUNT];
|
||||
/* 7c */ unk8 unk_7c[4];
|
||||
/* 80 */ u16 hourglassSeconds;
|
||||
/* 82 */ u16 unk_82[6];
|
||||
/* 8e */ u16 numRupees;
|
||||
/* 90 */ unk8 unk_90;
|
||||
/* 91 */ unk8 unk_91;
|
||||
/* 92 */ unk8 unk_92;
|
||||
/* 93 */ u8 numBombs;
|
||||
/* 94 */ u8 numBombchus;
|
||||
/* 95 */ u8 numArrows;
|
||||
/* 96 */ s8 equippedItem;
|
||||
/* 97 */ Potion potions[MAX_POTIONS];
|
||||
/* 99 */ u8 numGems[Gem_COUNT];
|
||||
/* 9c */ u8 quiverSize;
|
||||
/* 9d */ u8 bombBagSize;
|
||||
/* 9e */ u8 bombchuBagSize;
|
||||
/* 9f */ u8 unk_9f[6];
|
||||
/* a5 */ u8 equippedFairy;
|
||||
/* a6 */
|
||||
|
||||
SaveItemManager();
|
||||
};
|
||||
@@ -1,8 +1,6 @@
|
||||
#ifndef PH_GLOBAL_H
|
||||
#define PH_GLOBAL_H
|
||||
|
||||
#define NULL 0
|
||||
|
||||
#define GET_FLAG(arr, pos) (((1 << ((pos) & 0x1f)) & (arr)[((u32) (pos)) >> 5]) != 0)
|
||||
#define SET_FLAG(arr, pos) ((arr)[((u32) (pos)) >> 5] |= 1 << ((pos) & 0x1f))
|
||||
#define RESET_FLAG(arr, pos) ((arr)[((u32) (pos)) >> 5] &= ~(1 << ((pos) & 0x1f)))
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
#ifndef PH_TYPES_H
|
||||
#define PH_TYPES_H
|
||||
|
||||
#include <stddef.h>
|
||||
|
||||
typedef unsigned long long u64;
|
||||
typedef unsigned int u32;
|
||||
typedef unsigned short u16;
|
||||
|
||||
Reference in New Issue
Block a user