mirror of
https://github.com/zeldaret/tmc
synced 2026-06-21 16:37:05 -04:00
Merge branch 'master' into transitions
This commit is contained in:
+5
-2
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -215,7 +215,7 @@ typedef enum {
|
||||
OBJECT_B6,
|
||||
WELL,
|
||||
WIND_TRIBE_TELEPORTER,
|
||||
OBJECT_B9,
|
||||
CUCCO_MINIGAME,
|
||||
GYORG_BOSS_OBJECT,
|
||||
WINDCREST,
|
||||
LIT_AREA,
|
||||
|
||||
+3
-3
@@ -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
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user