Merge branch 'master' into transitions

This commit is contained in:
Henny022p
2022-03-23 22:43:39 +01:00
369 changed files with 5173 additions and 10141 deletions
+5 -2
View File
@@ -7,13 +7,16 @@
s16 FixedMul(s16 r0, s16 r1);
s16 FixedDiv(s16 r0, s16 r1);
void* AllocMutableHitbox(Entity*);
void UnloadHitbox(Entity*);
void CopyPosition(Entity*, Entity*);
void PositionEntityOnTop(Entity*, Entity*);
void PositionRelative(Entity*, Entity*, s32, s32);
void CopyPositionAndSpriteOffset(Entity* param_1, Entity* param_2);
void sub_0806FA90(Entity*, Entity*, s32, s32);
void SortEntityAbove(Entity*, Entity*);
void SortEntityBelow(Entity*, Entity*);
void SortEntityAbove(Entity* below_ent, Entity* above_ent);
void SortEntityBelow(Entity* above_ent, Entity* below_ent);
u32 sub_0806F5A4(u32 idx);
bool32 sub_0806F3E4(Entity*);
+5 -2
View File
@@ -106,7 +106,7 @@ typedef struct {
} Hitbox3D;
typedef struct {
u8 b0 : 3; // 1-4
u8 b0 : 3; // 1-4 /**< set to is 4 in entity init (default/lowest?)
u8 b1 : 3; // 8
u8 b2 : 1; // 0x40
u8 b3 : 1; // 0x80
@@ -504,6 +504,8 @@ extern u8 gManagerCount;
#define COLLISION_OFF(entity) ((entity)->flags &= ~ENT_COLLIDE)
#define COLLISION_ON(entity) ((entity)->flags |= ENT_COLLIDE)
#define ANIM_DONE (1 << 7) /* invalid frame index */
/** @name Tile Macros */ /// @{
#define TILE(x, y) (((((x)-gRoomControls.origin_x) >> 4) & 0x3F) | ((((y)-gRoomControls.origin_y) >> 4) & 0x3F) << 6)
#define TILE_POS(x, y) (x + (y << 6))
@@ -512,7 +514,8 @@ extern u8 gManagerCount;
/// @}
/** @name Animation State Macros */ ///@{
#define AnimationStateTurnAround(expr) ((expr) ^ 0x4)
#define AnimationStateFlip90(expr) ((expr) ^ 0x2)
#define AnimationStateFlip180(expr) ((expr) ^ 0x4)
#define AnimationStateIdle(expr) ((expr)&0x6)
#define AnimationStateWalk(expr) ((expr)&0xe)
///@}
+16 -20
View File
@@ -23,21 +23,16 @@ static_assert(sizeof(ChooseFileState) == 0x30);
// TODO: This occupies the same memory region as gMenu
extern ChooseFileState gChooseFileState;
typedef struct {
u8 filler0[0x1];
u8 unk1;
u8 charColor;
u8 bgColor;
u16 unk4;
u16 unk6;
u8* unk8;
} struct_02036540;
typedef struct {
u8 filler0[0x10];
u16 unk10;
u8 filler12[0x6];
} struct_080FC844;
// typedef struct {
// u8 unk00 : 4;
// u8 unk04 : 4;
// u8 unk1;
// u8 charColor;
// u8 bgColor;
// u16 unk4;
// u16 unk6;
// u8* unk8;
// } struct_02036540;
extern struct_020227E8 gUnk_020227E8[];
@@ -57,18 +52,19 @@ extern struct_02019EE0 gMapDataBottomSpecial;
// TODO size: 0x8000 from ClearTilemaps?
extern void sub_08056FEC(u32, struct_020227E8*);
extern void sub_0805F46C(u32, void*);
extern u32 sub_0805F46C(u32, Font*);
extern void RecoverUI(u32 bottomPt, u32 topPt);
extern void ClearTilemaps(void);
extern void sub_0805194C(u32);
extern struct_02036540* sub_0805F2C8(void);
extern void sub_0805F7DC(u32, struct_02036540*);
extern void sub_0805F300(struct_02036540*);
extern WStruct* sub_0805F2C8(void);
extern u32 sub_0805F7DC(u32, WStruct*);
extern void sub_0805F300(WStruct*);
extern void sub_08050A64(u32);
extern void sub_08050AFC(u32);
extern void sub_08050384();
extern void CreateDialogBox(u32, u32);
extern const struct_080FC844 gUnk_080FC844;
extern const Font gUnk_080FC844;
extern const u16 gUnk_080FC85C[][3];
extern void (*const gUnk_080FC908[])(void);
extern const u8 gGlobalGfxAndPalettes[];
+15 -14
View File
@@ -24,7 +24,7 @@ extern void CreateItemOnGround(Entity*);
extern Entity* CreateLargeWaterTrace(Entity*);
extern void CreateMagicSparkles(u32, u32, u32);
extern void CreateMinishEntrance(u32 tile);
extern Entity* CreatePlayerBomb(ItemBehavior*, u32);
extern Entity* CreatePlayerItemWithParent(ItemBehavior*, u32);
extern u32 CreateRandomItemDrop(Entity*, u32);
extern void CreateSparkle(Entity*);
extern void DoPlayerAction(Entity*);
@@ -52,7 +52,7 @@ extern void LoadResources(void);
extern bool32 LoadSwapGFX(Entity*, u16, u32);
extern void MenuFadeIn(u32, u32);
extern void ModBombs(s32);
extern u32 PlayerInRange(Entity*, u32, u32);
extern bool32 PlayerInRange(Entity*, u32, s32);
extern bool32 ProcessMovement1(Entity*);
extern bool32 ProcessMovement12(Entity*);
extern bool32 ProcessMovement2(Entity*);
@@ -85,7 +85,7 @@ extern void sub_08000148(u32, u32, u32);
extern u32 sub_080B1A0C(Entity*, s32, s32);
extern u32 sub_080B1A48(u32, u32, u32);
extern u32 sub_080B1A8C(Entity*, u32, u32);
extern u32 sub_080B1AA8(Entity*);
extern u32 GetTileUnderEntity(Entity*);
extern u32 sub_080B1AE0(u16, u8);
extern u32 sub_080B1AF0(Entity*, s32, s32);
extern u32 sub_080B1B18(s32, s32, u32);
@@ -130,15 +130,16 @@ extern void sub_0803C0AC(Entity*);
extern void sub_08049CF4(Entity*);
extern Entity* sub_08049DF4(u32);
extern u32 sub_08049EE4(Entity*);
extern u32 sub_08049F1C(Entity*, Entity*, u32);
extern u32 sub_08049F84(Entity*, u32);
extern u32 sub_08049FA0(Entity*);
extern u32 sub_08049FDC(Entity*, u32);
extern bool32 sub_08049F1C(Entity*, Entity*, s32);
extern bool32 sub_08049F84(Entity*, s32);
extern bool32 sub_08049FA0(Entity*);
extern bool32 sub_08049FDC(Entity*, u32);
extern u32 sub_0804A024(Entity*, u32, u32);
extern u32 sub_0804A044(Entity*, Entity*, u32);
extern void sub_0804A4E4(Entity*, Entity*);
extern void sub_0804A720(Entity*);
extern void sub_0804AA1C(Entity*);
extern void sub_0804C128();
extern void sub_0804C128(void);
extern u32 sub_080542AC(u32);
extern void sub_08054564();
extern void sub_08054570(void);
@@ -152,8 +153,8 @@ extern void sub_08059278(void);
extern void sub_0805B4D0(u32);
extern void sub_0805BC4C(void);
extern void sub_0805EC60(Entity*);
extern void sub_0805EC9C(Entity*, u32, u32, u32);
extern void sub_0805ED14(u32*);
extern void SetAffineInfo(Entity*, u32, u32, u32);
extern void InitPlayerMacro(u32*);
extern u32* sub_0805F25C(u32);
extern u32 sub_0805F7A0(u32);
extern void sub_0805F8E4(u32 r0, WStruct* r1);
@@ -163,7 +164,7 @@ extern void sub_08060158(Entity*);
extern void sub_0806D02C(Entity*);
extern void sub_0806D0B0(Entity*);
extern void sub_0806F4E8(Entity*);
extern u32 sub_0806F520();
extern bool32 sub_0806F520(Entity*);
extern u32 sub_0806F5B0(u32);
extern u32 sub_0806F824(Entity*, Entity*, s32, s32);
extern u32 sub_0806F948(Entity*);
@@ -182,7 +183,7 @@ extern void sub_08077D38(ItemBehavior*, u32);
extern void sub_08077DF4(ItemBehavior*, u32);
extern void sub_08077E3C(ItemBehavior*, u32);
extern void sub_08077E54(ItemBehavior*);
extern void sub_08077E78(ItemBehavior*, u32);
extern void DeletePlayerItem(ItemBehavior*, u32);
extern bool32 sub_08077EC8(ItemBehavior*);
extern bool32 sub_08077EFC(ItemBehavior*);
extern bool32 sub_08077F10(ItemBehavior*);
@@ -198,8 +199,8 @@ extern void sub_08078850(Entity*, u32, u32, void*);
extern s32 sub_0807887C(Entity*, u32, u32);
extern void sub_080788E0(Entity*);
extern s32 sub_08078904();
extern void sub_08078930(Entity*);
extern void sub_08078954(Entity*);
extern void RegisterCarryEntity(Entity*);
extern void FreeCarryEntity(Entity*);
extern void sub_08078AC0(u32, u32, u32);
extern void sub_08078B48(void);
extern void sub_08078E84(Entity*, Entity*);
+1 -1
View File
@@ -141,7 +141,7 @@ typedef struct {
DiggingCaveEntrance* unk_00;
u16 unk_04;
u16 unk_06;
u8 unk_08;
u8 isDiggingCave;
u8 unk_09;
u8 unk_0a;
u8 unk_0b;
+6 -3
View File
@@ -17,7 +17,7 @@ typedef struct {
u16 textIndex;
u16 unk2; // HI?
u32 field_0xc;
u32 field_0x10;
u32 rupees;
u32 field_0x14;
u32 field_0x18;
u32 field_0x1c;
@@ -25,14 +25,17 @@ typedef struct {
extern Message gMessage;
typedef struct {
u8 flags;
u8 unk00 : 1;
u8 unk01 : 4;
u8 unk05 : 2;
u8 unk06 : 1;
u8 code; // first byte read
u16 param; // second byte read
u16 extended; // ascii adjusted for jp chars
u16 _6;
u16 textIndex;
void* _c;
u8 buf[32];
const u8* buf[8];
} Token;
typedef struct {
+1 -1
View File
@@ -215,7 +215,7 @@ typedef enum {
OBJECT_B6,
WELL,
WIND_TRIBE_TELEPORTER,
OBJECT_B9,
CUCCO_MINIGAME,
GYORG_BOSS_OBJECT,
WINDCREST,
LIT_AREA,
+3 -3
View File
@@ -109,7 +109,7 @@ enum PlayerFlags {
PL_FROZEN = 0x800,
PL_IN_MINECART = 0x1000,
PL_DRUGGED = 0x4000,
PL_FLAGS8000 = 0x8000,
PL_PIT_IS_EXIT = 0x8000,
PL_FLAGS10000 = 0x10000,
PL_FLAGS20000 = 0x20000,
PL_ROLLING = 0x40000,
@@ -204,7 +204,7 @@ typedef struct {
/*0x02*/ u8 jump_status;
/*0x03*/ u8 field_0x3[2];
/*0x05*/ u8 heldObject;
/*0x06*/ u8 pushedObject;
/*0x06*/ u8 pushedObject; // hi bit is special, rest is used as a timer
/*0x07*/ u8 field_0x7;
/*0x08*/ u16 animation;
/*0x0a*/ u8 field_0xa;
@@ -224,7 +224,7 @@ typedef struct {
/*0x1a*/ u8 mobility;
/*0x1b*/ u8 sword_state;
/*0x1c*/ u8 field_0x1c;
/*0x1d*/ u8 field_0x1d;
/*0x1d*/ u8 gustJarSpeed;
/*0x1e*/ u8 dash_state;
/*0x1f*/ u8 field_0x1f[3];
/*0x22*/ u16 field_0x22[2];
+16 -5
View File
@@ -83,6 +83,16 @@ typedef struct {
static_assert(sizeof(RoomVars) == 0xCC);
extern RoomVars gRoomVars;
typedef struct {
u8 area;
u8 room;
u16 unk_02;
u32 unk_04;
} RoomMemory;
extern RoomMemory* gUnk_020354B0;
extern RoomMemory gRoomMemory[];
// Packets used to store which entities to load in a room
typedef struct {
u8 kind;
@@ -96,10 +106,10 @@ typedef struct {
} EntityData;
typedef struct {
u16 field_0x0;
u16 tilePos;
u16 field_0x2;
u8 field_0x4;
u8 field_0x5;
u8 room;
u8 animationState;
u8 field_0x6;
u8 field_0x7;
} struct_030010EC;
@@ -128,7 +138,7 @@ typedef struct {
/* 0x12 */ u16 dungeon_map_y;
/* 0x14 */ u16 overworld_map_x;
/* 0x16 */ u16 overworld_map_y;
/* 0x18 */ u8 field_0x24[0x8];
/* 0x18 */ u8 field_0x24[8];
} PlayerRoomStatus;
static_assert(sizeof(PlayerRoomStatus) == 0x20);
@@ -140,7 +150,8 @@ typedef struct {
/* 0x09 */ u8 type; // transition when changing areas
/* 0x0a */ u16 stairs_idx; // seems to be a tile type
/* 0x0c */ PlayerRoomStatus player_status;
/* 0x2c */ u8 field_0x2c[0x9];
/* 0x2c */ u8 entity_update_type; // differentiates entity priority on kinstone menu?
/* 0x2d */ u8 field_0x2c[0x8];
/* 0x35 */ u8 hint_height;
/* 0x36 */ u16 hint_idx;
/* 0x38 */ u8 field_0x38;
+25 -3
View File
@@ -222,15 +222,19 @@ extern struct {
static_assert(sizeof(gUnk_02034490) == 0x18);
typedef struct {
u8 unk0;
u8 unk00 : 1;
u8 unk01 : 3;
u8 unk04 : 4;
u8 unk1;
u8 unk2;
u8 unk3;
u8 charColor;
u8 bgColor;
u16 unk4;
u16 unk6;
void* unk8;
} WStruct;
static_assert(sizeof(WStruct) == 12);
typedef struct {
u8 unk0;
u8 unk1;
@@ -296,4 +300,22 @@ typedef struct {
extern SpritePtr gSpritePtrs[];
typedef struct {
u16* dest;
void* gfx_dest;
void* buffer_loc;
u32 _c;
u16 gfx_src;
u8 width;
u8 right_align : 1;
u8 sm_border : 1;
u8 unused : 1;
u8 draw_border : 1;
u8 border_type : 4;
u8 fill_type;
u8 _15;
u8 _16;
u8 stylized;
} Font;
#endif