From cb95bdb96a20a3024a6f3de23627fe670a9ec0fe Mon Sep 17 00:00:00 2001 From: theo3 Date: Mon, 20 Dec 2021 23:11:22 -0800 Subject: [PATCH] framestate, ezlo hint --- asm/code_08077B98.s | 2 +- asm/code_08078778.s | 4 +- asm/macros/entity.inc | 16 +++ asm/object6A.s | 2 +- asm/object91.s | 2 +- data/map/entity_headers.s | 237 +++++++++++++++++---------------- include/area.h | 2 +- include/flags.h | 4 +- include/functions.h | 2 +- include/manager.h | 26 ++-- include/player.h | 36 ++++- include/room.h | 5 +- src/enemy/beetle.c | 4 +- src/enemy/vaatiWrath.c | 4 +- src/interrupts.c | 6 +- src/item/itemGustJar.c | 2 +- src/item/itemSword.c | 2 +- src/item/itemTryPickupObject.c | 2 +- src/manager/manager15.c | 6 +- src/manager/manager3.c | 6 +- src/manager/manager33.c | 2 +- src/manager/managerA.c | 154 +++++++++++---------- src/manager/managerF.c | 2 +- src/npc/guardWithSpear.c | 2 +- src/npc/kid.c | 2 +- src/object/warpPoint.c | 4 +- src/overworld.c | 8 +- src/player.c | 41 +++--- src/playerItemUtils.c | 2 +- src/projectile/spiderWeb.c | 2 +- src/script.c | 8 +- 31 files changed, 326 insertions(+), 271 deletions(-) diff --git a/asm/code_08077B98.s b/asm/code_08077B98.s index 6d889d80..8f480ce5 100644 --- a/asm/code_08077B98.s +++ b/asm/code_08077B98.s @@ -555,7 +555,7 @@ _08078414: .4byte 0x0000012B _08078418: ldr r0, _08078428 @ =0x00000B65 movs r1, #0 - bl sub_08078AA8 + bl CreateEzloHint _08078420: movs r0, #0x13 bl sub_08078160 diff --git a/asm/code_08078778.s b/asm/code_08078778.s index 52fad31a..d6955113 100644 --- a/asm/code_08078778.s +++ b/asm/code_08078778.s @@ -305,8 +305,8 @@ _08078AA2: .align 2, 0 _08078AA4: .4byte gPlayerState - thumb_func_start sub_08078AA8 -sub_08078AA8: @ 0x08078AA8 + thumb_func_start CreateEzloHint +CreateEzloHint: @ 0x08078AA8 ldr r3, _08078AB8 @ =gPlayerState movs r2, #0x16 strb r2, [r3, #0xc] diff --git a/asm/macros/entity.inc b/asm/macros/entity.inc index e55c90da..0c70833c 100755 --- a/asm/macros/entity.inc +++ b/asm/macros/entity.inc @@ -75,6 +75,22 @@ .4byte \paramC .endm + .macro ezlo_hint type=0 x:req, y:req, rx:req, ry:req, msg:req, flag:req, msg_y=0, flag2=0 + .byte 9 + .byte 0 + .byte 10 + .byte \type + .byte 0 + .byte \msg_y + .2byte \msg + .byte \x >> 1 /* normalize to same coordinates */ + .byte \y >> 1 + .byte \rx + .byte \ry + .2byte \flag + .2byte \flag2 + .endm + .macro manager subtype:req, collision=0, unknown=0xf, paramA=0, paramB=0, x=0, y=0, paramC=0 entity_raw type=9, subtype=\subtype, collision=\collision, unknown=\unknown, paramA=\paramA, paramB=\paramB, x=\x, y=\y, paramC=\paramC .endm diff --git a/asm/object6A.s b/asm/object6A.s index 086fa52d..2b6fd5f4 100644 --- a/asm/object6A.s +++ b/asm/object6A.s @@ -967,7 +967,7 @@ _080950C8: bl sub_080788E0 ldr r0, _080950EC @ =0x00001F1F movs r1, #0 - bl sub_08078AA8 + bl CreateEzloHint b _0809510A .align 2, 0 _080950EC: .4byte 0x00001F1F diff --git a/asm/object91.s b/asm/object91.s index 1df7bfef..5a32bd05 100644 --- a/asm/object91.s +++ b/asm/object91.s @@ -998,7 +998,7 @@ sub_0809CB4C: @ 0x0809CB4C bne _0809CB66 ldr r0, _0809CB6C @ =0x00000B44 movs r1, #0 - bl sub_08078AA8 + bl CreateEzloHint bl DeleteThisEntity _0809CB66: pop {pc} diff --git a/data/map/entity_headers.s b/data/map/entity_headers.s index 677e2b4e..ed4e3308 100644 --- a/data/map/entity_headers.s +++ b/data/map/entity_headers.s @@ -4,6 +4,13 @@ .section .rodata .align 2 +#define local_flag(idx) (idx & 0x3fff) | (0 << 14) +#define local_flags(idx, length) (idx & 0x3fff) | (0 << 14) | (((length - 1) & 0xf) << 6) +#define global_flag(idx) (idx & 0x3fff) | (1 << 14) +#define global_flags(idx, length) (idx & 0x3fff) | (1 << 14) | (((length - 1) & 0xf) << 6) +#define room_flag(idx) (idx & 0x3fff) | (2 << 14) +#define room_flags(idx, length) (idx & 0x3fff) | (2 << 14) | (((length - 1) & 0xf) << 6) + @ define helper constants .ifdef JP EU_JP: @@ -1673,7 +1680,7 @@ Room_CrenelMinishPaths_CrenelWater:: @ 080D5AA8 .4byte sub_StateChange_CrenelMinishPaths_CrenelWater Entities_CrenelMinishPaths_Rainfall_0:: @ 080D5AC8 - manager subtype=0xa, x=0x204, y=0x903, unknown=0x0, paramB=0xb1c0000, paramC=0xc1 + ezlo_hint x=8, y=4, rx=3, ry=9, msg=0xb1c, flag=0xc1 entity_list_end Entities_CrenelMinishPaths_Rainfall_1:: @ 080D5AE8 @@ -1907,7 +1914,7 @@ Entities_HouseInteriors1_Mayor_0:: @ 080D61C0 npc_raw subtype=0x4b, x=0x88, y=0x60, script=script_0800EA54 object_raw subtype=0x4c, x=0x7c, y=0x48, collision=1 object_raw subtype=0x4c, x=0x94, y=0x48, collision=1 - manager subtype=0xa, x=0x905, y=0x103, unknown=0x0, paramB=0xb550000, paramC=0xc4 + ezlo_hint x=0xa, y=0x12, rx=0x3, ry=0x1, msg=0xb55, flag=0xc4 entity_list_end Entities_HouseInteriors1_Mayor_080D6210:: @ 080D6210 @@ -2019,7 +2026,7 @@ Room_HouseInteriors1_PostOffice:: @ 080D6518 .4byte sub_StateChange_HouseInteriors1_PostOffice Entities_HouseInteriors1_Library2F_0:: @ 080D6538 - manager subtype=0xa, x=0x70b, y=0x201, unknown=0x0, paramB=0xb570000, paramC=0xc5 + ezlo_hint x=0x16, y=0xe, rx=0x1, ry=0x2, msg=0xb57, flag=0xc5 entity_list_end gUnk_080D6558:: @ 080D6558 @@ -3553,9 +3560,9 @@ Entities_RoyalValley_Main_0:: @ 080D8FB8 object_raw subtype=0x19, x=0x1a0, y=0x1a2, unknown=0x4f, collision=1, paramA=0x1, paramB=0x3, paramC=script_08009698 npc_raw subtype=0x21, x=0x88, y=0x118, script=script_08009740 .ifdef EU_JP - manager subtype=0xa, x=0x251c, y=0x401, unknown=0x0, paramB=0xb1d0000, paramC=0x58 + ezlo_hint x=0x38, y=0x4a, rx=0x1, ry=0x4, msg=0xb1d, flag=0x58 .else - manager subtype=0xa, x=0x251c, y=0x401, unknown=0x0, paramB=0xb1d0000, paramC=0x5a + ezlo_hint x=0x38, y=0x4a, rx=0x1, ry=0x4, msg=0xb1d, flag=0x5a .endif entity_list_end @@ -3910,12 +3917,12 @@ Entities_CastorWilds_Main_0:: @ 080D9AD8 manager subtype=0x4 manager subtype=0x20, x=0x2b8, y=0x148, paramB=0x12b82e00, paramC=0x1f1158 manager subtype=0xe, unknown=0x1f, paramA=0x10, paramC=0xc0000 - manager subtype=0xa, x=0x1b39, y=0xa02, unknown=0x0, paramB=0xb2e0000, paramC=0x1b - manager subtype=0xa, x=0x153a, y=0x504, unknown=0x0, paramB=0xb2f0000, paramC=0x1d - manager subtype=0xa, x=0x2a15, y=0x204, unknown=0x0, paramB=0xb2f0000, paramC=0x1d - manager subtype=0xa, x=0x3726, y=0x304, unknown=0x0, paramB=0xb2f0000, paramC=0x1d + ezlo_hint x=0x72, y=0x36, rx=0x2, ry=0xa, msg=0xb2e, flag=0x1b + ezlo_hint x=0x74, y=0x2a, rx=0x4, ry=0x5, msg=0xb2f, flag=0x1d + ezlo_hint x=0x2a, y=0x54, rx=0x4, ry=0x2, msg=0xb2f, flag=0x1d + ezlo_hint x=0x4c, y=0x6e, rx=0x4, ry=0x3, msg=0xb2f, flag=0x1d .ifndef EU - manager subtype=0xa, x=0x918, y=0x403, unknown=0x0, paramB=0xb2f0000, paramC=0x1d + ezlo_hint x=0x30, y=0x12, rx=0x3, ry=0x4, msg=0xb2f, flag=0x1d .endif object_raw subtype=0x0, x=0x3d8, y=0x268, collision=1, paramA=0x5c, paramB=0x86e, paramC=0x220000 object_raw subtype=0x0, x=0x3d8, y=0x288, collision=1, paramA=0x5c, paramB=0x86f, paramC=0x230000 @@ -3932,11 +3939,11 @@ Entities_CastorWilds_Main_0:: @ 080D9AD8 manager subtype=0x4 manager subtype=0x20, x=0x2b8, y=0x148, paramB=0x12b82e00, paramC=0x1e1158 manager subtype=0xe, unknown=0x1f, paramA=0x10, paramC=0x230000 - manager subtype=0xa, x=0x1b39, y=0xa02, unknown=0x0, paramB=0xb2e0000, paramC=0x1a - manager subtype=0xa, x=0x153a, y=0x504, unknown=0x0, paramB=0xb2f0000, paramC=0x1c - manager subtype=0xa, x=0x2a15, y=0x204, unknown=0x0, paramB=0xb2f0000, paramC=0x1c - manager subtype=0xa, x=0x3726, y=0x304, unknown=0x0, paramB=0xb2f0000, paramC=0x1c - manager subtype=0xa, x=0x918, y=0x403, unknown=0x0, paramB=0xb2f0000, paramC=0x1c + ezlo_hint x=0x72, y=0x36, rx=0x2, ry=0xa, msg=0xb2e, flag=0x1a + ezlo_hint x=0x74, y=0x2a, rx=0x4, ry=0x5, msg=0xb2f, flag=0x1c + ezlo_hint x=0x2a, y=0x54, rx=0x4, ry=0x2, msg=0xb2f, flag=0x1c + ezlo_hint x=0x4c, y=0x6e, rx=0x4, ry=0x3, msg=0xb2f, flag=0x1c + ezlo_hint x=0x30, y=0x12, rx=0x3, ry=0x4, msg=0xb2f, flag=0x1c object_raw subtype=0x0, x=0x3d8, y=0x268, collision=1, paramA=0x5c, paramB=0x86e, paramC=0x200000 object_raw subtype=0x0, x=0x3d8, y=0x288, collision=1, paramA=0x5c, paramB=0x86f, paramC=0x210000 object_raw subtype=0x0, x=0x3d8, y=0x2a8, collision=1, paramA=0x5c, paramB=0x870, paramC=0x220000 @@ -3954,9 +3961,9 @@ gUnk_080D9C38:: @ 080D9C38 gUnk_additional_13_CastorWilds_Main:: @ 080D9CA8 .ifdef EU_JP - manager subtype=0xa, x=0x1e38, y=0x705, unknown=0x0, paramB=0xb660000, paramC=0x1c + ezlo_hint x=0x70, y=0x3c, rx=0x5, ry=0x7, msg=0xb66, flag=0x1c .else - manager subtype=0xa, x=0x1e38, y=0x705, unknown=0x0, paramB=0xb660000, paramC=0x1b + ezlo_hint x=0x70, y=0x3c, rx=0x5, ry=0x7, msg=0xb66, flag=0x1b .endif entity_list_end @@ -4196,7 +4203,7 @@ gUnk_080DA230:: @ 080DA230 gUnk_080DA260:: @ 080DA260 object_raw subtype=0x8, x=0x88, y=0xb8, paramA=0x12, paramC=0x39ffff manager subtype=0xb, unknown=0x0, paramB=0x8, paramC=0x398000 - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb100000, paramC=0x80000039 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb10, flag=0x39, flag2=0x8000 entity_list_end Entities_CastorDarknut_Main_1:: @ 080DA2A0 @@ -6236,9 +6243,9 @@ Room_MelarisMine_Main:: @ 080DD31C Entities_CloudTops_House_0:: @ 080DD344 .ifdef EU_JP - manager subtype=0xa, x=0x171c, y=0x205, unknown=0x0, paramB=0xb220000, paramC=0xd9 + ezlo_hint x=0x38, y=0x2e, rx=0x5, ry=0x2, msg=0xb22, flag=0xd9 .else - manager subtype=0xa, x=0x171c, y=0x205, unknown=0x0, paramB=0xb220000, paramC=0xdc + ezlo_hint x=0x38, y=0x2e, rx=0x5, ry=0x2, msg=0xb22, flag=0xdc .endif entity_list_end @@ -6278,7 +6285,7 @@ Entities_CloudTops_Middle_0:: @ 080DD40C object_raw subtype=0x0, x=0x28, y=0x388, collision=1, paramA=0x5c, paramB=0x775, paramC=0xe60000 object_raw subtype=0x0, x=0x2e8, y=0x388, collision=1, paramA=0x5c, paramB=0x76e, paramC=0xe70000 object_raw subtype=0x0, x=0x3a8, y=0x378, collision=1, paramA=0x5c, paramB=0x772, paramC=0xe80000 - manager subtype=0xa, x=0x1715, y=0x210, unknown=0x0, paramB=0xb220000, paramC=0xda + ezlo_hint x=0x2a, y=0x2e, rx=0x10, ry=0x2, msg=0xb22, flag=0xda .else object_raw subtype=0x0, x=0x38, y=0x28, collision=1, paramA=0x5c, paramB=0x773, paramC=0xe50000 object_raw subtype=0x0, x=0x3c8, y=0x38, collision=1, paramA=0x5c, paramB=0x76f, paramC=0xe60000 @@ -6287,7 +6294,7 @@ Entities_CloudTops_Middle_0:: @ 080DD40C object_raw subtype=0x0, x=0x28, y=0x388, collision=1, paramA=0x5c, paramB=0x775, paramC=0xe90000 object_raw subtype=0x0, x=0x2e8, y=0x388, collision=1, paramA=0x5c, paramB=0x76e, paramC=0xea0000 object_raw subtype=0x0, x=0x3a8, y=0x378, collision=1, paramA=0x5c, paramB=0x772, paramC=0xeb0000 - manager subtype=0xa, x=0x1715, y=0x210, unknown=0x0, paramB=0xb220000, paramC=0xdd + ezlo_hint x=0x2a, y=0x2e, rx=0x10, ry=0x2, msg=0xb22, flag=0xdd .endif entity_list_end @@ -6378,11 +6385,11 @@ Entities_CloudTops_Bottom_0:: @ 080DD790 .ifdef EU_JP manager subtype=0x17, x=0x208, y=0x38, paramA=0x5c, paramB=0x10466, paramC=0xf000f1 manager subtype=0x17, x=0x238, y=0x2e8, paramA=0x5c, paramB=0x10466, paramC=0xf200f3 - manager subtype=0xa, x=0x1d18, y=0x302, unknown=0x0, paramB=0xb210000, paramC=0xea + ezlo_hint x=0x30, y=0x3a, rx=0x2, ry=0x3, msg=0xb21, flag=0xea .else manager subtype=0x17, x=0x208, y=0x38, paramA=0x5c, paramB=0x10466, paramC=0xf300f4 manager subtype=0x17, x=0x238, y=0x2e8, paramA=0x5c, paramB=0x10466, paramC=0xf500f6 - manager subtype=0xa, x=0x1d18, y=0x302, unknown=0x0, paramB=0xb210000, paramC=0xed + ezlo_hint x=0x30, y=0x3a, rx=0x2, ry=0x3, msg=0xb21, flag=0xed .endif entity_list_end @@ -6887,7 +6894,7 @@ gUnk_additional_8_DeepwoodShrine_Madderpillar:: @ 080DE4E8 enemy_raw subtype=0x18, x=0x98, y=0x88 manager subtype=0x2e, x=0x2d, unknown=0x0, paramB=0x100, paramC=0x80000000 object_raw subtype=0x8, x=0xe8, y=0x58, paramA=0x5, paramC=0x8000ffff - manager subtype=0xa, x=0x404, y=0x70a, unknown=0x0, paramA=0x3, paramB=0xb000000, paramC=0x80000017 + ezlo_hint type=0x3, x=0x8, y=0x8, rx=0xa, ry=0x7, msg=0xb00, flag=0x17, flag2=0x8000 entity_list_end TileEntities_DeepwoodShrine_Madderpillar:: @ 080DE538 @@ -7011,7 +7018,7 @@ Entities_DeepwoodShrine_PotBridge_0:: @ 080DE8D0 manager subtype=0x20, x=0x48, y=0x48, paramB=0x10c80500, paramC=0x261048 object_raw subtype=0x3, x=0xc8, y=0x48, paramA=0x1, paramC=0x80000000 manager subtype=0x5, x=0xa, y=0x6, paramB=0x12, paramC=0x80000001 - manager subtype=0xa, x=0x407, y=0x103, unknown=0x0, paramB=0xb360000, paramC=0x25 + ezlo_hint x=0xe, y=0x8, rx=0x3, ry=0x1, msg=0xb36, flag=0x25 manager subtype=0x1e, x=0x70, y=0xb0, paramB=0x100030, paramC=0x510000 entity_list_end @@ -7036,7 +7043,7 @@ Room_DeepwoodShrine_PotBridge:: @ 080DE980 .4byte sub_StateChange_DeepwoodShrine_PotBridge Entities_DeepwoodShrine_DoubleStatue_0:: @ 080DE9A0 - manager subtype=0xa, x=0x503, y=0x10b, unknown=0x0, paramB=0xb330000, paramC=0x50 + ezlo_hint x=0x6, y=0xa, rx=0xb, ry=0x1, msg=0xb33, flag=0x50 object_raw subtype=0x3, x=0x68, y=0x68, paramA=0x1, paramC=0x80000000 object_raw subtype=0x3, x=0xa8, y=0x68, paramA=0x1, paramC=0x80010000 object_raw subtype=0xc, x=0x88, y=0x58, paramA=0x1, paramC=0x84000000 @@ -7095,7 +7102,7 @@ Entities_DeepwoodShrine_Barrel_0:: @ 080DEB30 object_raw subtype=0x8, x=0x1b8, y=0x48, paramA=0x9, paramC=0x2affff object_raw subtype=0x8, x=0xe8, y=0x28, paramC=0x1c object_raw subtype=0x25, x=0xe8, y=0xc8 - manager subtype=0xa, x=0xc02, y=0x219, unknown=0x0, paramB=0xb340000, paramC=0x2c + ezlo_hint x=0x4, y=0x18, rx=0x19, ry=0x2, msg=0xb34, flag=0x2c object_raw subtype=0x3, x=0x28, y=0xb8, paramA=0x1, paramC=0x80000000 object_raw subtype=0x3, x=0x28, y=0xd8, paramA=0x1, paramC=0x80010000 manager subtype=0x11, paramC=0x84000015 @@ -7230,7 +7237,7 @@ Entities_DeepwoodShrine_Lever_0:: @ 080DEF80 object_raw subtype=0x54, x=0x108, y=0x24, paramB=0x200000, paramC=0x80000000 manager subtype=0x11, paramC=0x80000032 manager subtype=0x5, x=0xf, y=0x8, paramB=0x8b, paramC=0x320001 - manager subtype=0xa, x=0x30f, y=0x203, unknown=0x0, paramB=0xb320000, paramC=0x33 + ezlo_hint x=0x1e, y=0x6, rx=0x3, ry=0x2, msg=0xb32, flag=0x33 object_raw subtype=0x32, x=0x88, y=0x88 object_raw subtype=0x5, x=0x118, y=0xd8, collision=1 object_raw subtype=0x5, x=0x38, y=0xc8, collision=1 @@ -7261,7 +7268,7 @@ Room_DeepwoodShrine_Lever:: @ 080DF090 .4byte sub_StateChange_DeepwoodShrine_Lever Entities_DeepwoodShrine_Entrance_0:: @ 080DF0B0 - manager subtype=0xa, x=0xb03, y=0x30f, unknown=0x0, paramB=0xb120000, paramC=0x37 + ezlo_hint x=0x6, y=0x16, rx=0xf, ry=0x3, msg=0xb12, flag=0x37 projectile_raw subtype=0x15, x=0x48, y=0x68, unknown=0xf, paramC=0x340000 projectile_raw subtype=0x15, x=0x108, y=0x68, unknown=0xf, paramC=0x350000 object_raw subtype=0x34, x=0x98, y=0x88, paramB=0x148, paramC=0x36014e @@ -7298,7 +7305,7 @@ Room_DeepwoodShrine_Entrance:: @ 080DF1B0 Entities_DeepwoodShrine_Torch_0:: @ 080DF1D4 object_raw subtype=0x8, x=0xa8, y=0x28, paramA=0x8, paramC=0x3c0000 - manager subtype=0xa, x=0x309, y=0x103, unknown=0x0, paramB=0xb6b0000, paramC=0x55 + ezlo_hint x=0x12, y=0x6, rx=0x3, ry=0x1, msg=0xb6b, flag=0x55 object_raw subtype=0x3, x=0x68, y=0x68, paramC=0x380000 object_raw subtype=0x3, x=0x68, y=0xa8, paramC=0x390000 object_raw subtype=0x3, x=0xe8, y=0x68, paramC=0x3a0000 @@ -7387,7 +7394,7 @@ Entities_DeepwoodShrine_Compass_0:: @ 080DF48C object_raw subtype=0x14, x=0xa8, y=0x88, paramA=0x1, paramB=0x40 manager subtype=0x1e, x=0xf0, y=0xd0, paramB=0x200040, paramC=0x440000 .ifdef DEMO_JP - manager subtype=0xa, x=0x30a, y=0x403, unknown=0x0, paramB=0xb6f0000, paramC=0x430056 + ezlo_hint x=0x14, y=0x6, rx=0x3, ry=0x4, msg=0xb6f, flag=0x56, flag2=0x43 .endif entity_list_end .else @@ -7404,7 +7411,7 @@ Entities_DeepwoodShrine_Compass_0:: @ 080DF48C object_raw subtype=0xc, x=0x100, y=0x38, paramA=0x4, paramB=0x42 object_raw subtype=0x14, x=0xa8, y=0x88, paramA=0x1, paramB=0x40 manager subtype=0x1e, x=0xf0, y=0xd0, paramB=0x200040, paramC=0x440000 - manager subtype=0xa, x=0x30a, y=0x403, unknown=0x0, paramB=0xb6f0000, paramC=0x430056 + ezlo_hint x=0x14, y=0x6, rx=0x3, ry=0x4, msg=0xb6f, flag=0x56, flag2=0x43 entity_list_end .endif @@ -7452,7 +7459,7 @@ Room_DeepwoodShrine_13:: @ 080DF62C Entities_DeepwoodShrine_LilyPadWest_0:: @ 080DF64C object_raw subtype=0x8, x=0x48, y=0x28, paramA=0x8, paramC=0x45ffff - manager subtype=0xa, x=0xa0b, y=0x501, unknown=0x0, paramB=0xb370000, paramC=0x46 + ezlo_hint x=0x16, y=0x14, rx=0x1, ry=0x5, msg=0xb37, flag=0x46 object_raw subtype=0x14, x=0x78, y=0xc8, paramA=0xff entity_list_end @@ -7541,7 +7548,7 @@ Entities_DeepwoodShrineBoss_Main_0:: @ 080DF88C object_raw subtype=0x39, x=0x88, y=0xc8, paramA=0x6, paramC=0xffff manager subtype=0xb, unknown=0x0, paramB=0x8, paramC=0x40020000 manager subtype=0xe, y=0x3c, paramA=0x9, paramB=0x1, paramC=0x40020000 - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb010000, paramC=0x4002 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb01, flag=0x4002 object_raw subtype=0x5, x=0x38, y=0x38, paramA=0x5f object_raw subtype=0x5, x=0xd8, y=0x38, paramA=0x5f object_raw subtype=0x5, x=0x38, y=0xb8, paramA=0x5f @@ -7615,7 +7622,7 @@ Entities_DeepwoodShrine_InsideBarrel_0:: @ 080DFA90 object_raw subtype=0x26, x=0x78, y=0x50, paramA=0x4 object_raw subtype=0x26, x=0xa0, y=0x50, paramA=0x5 manager subtype=0x1a, unknown=0x8 - manager subtype=0xa, x=0x502, y=0x10c, unknown=0x0, paramB=0xb350000, paramC=0x415004e + ezlo_hint x=0x4, y=0xa, rx=0xc, ry=0x1, msg=0xb35, flag=0x4e, flag2=0x415 entity_list_end Enemies_DeepwoodShrine_InsideBarrel:: @ 080DFB30 @@ -7666,7 +7673,7 @@ Entities_CaveOfFlames_AfterCane_0:: @ 080DFBD0 object_raw subtype=0x5, x=0x118, y=0x48, paramA=0x5f object_raw subtype=0x5, x=0x118, y=0x98, paramA=0x5f manager subtype=0x1e, x=0x50, y=0xc0, paramB=0x200070, paramC=0x3b0000 - manager subtype=0xa, x=0x705, y=0x404, unknown=0x0, paramB=0xb680000, paramC=0x43 + ezlo_hint x=0xa, y=0xe, rx=0x4, ry=0x4, msg=0xb68, flag=0x43 entity_list_end Entities_CaveOfFlames_AfterCane_1:: @ 080DFC70 @@ -7702,7 +7709,7 @@ Entities_CaveOfFlames_SpinyChus_0:: @ 080DFD14 manager subtype=0x1e, x=0x70, y=0x60, paramB=0x300020, paramC=0x80000000 manager subtype=0xb, unknown=0x0, paramB=0x8, paramC=0x168000 object_raw subtype=0xc, x=0x80, y=0x78, paramA=0x2, paramB=0x19, paramC=0x160000 - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb020000, paramC=0x80000016 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb02, flag=0x16, flag2=0x8000 object_raw subtype=0x8, x=0x38, y=0x78, paramA=0x3, paramC=0x160000 entity_list_end @@ -7788,7 +7795,7 @@ Room_CaveOfFlames_CartToSpinyChus:: @ 080E0048 .4byte sub_StateChange_CaveOfFlames_CartToSpinyChus Entities_CaveOfFlames_Entrance_0:: @ 080E0068 - manager subtype=0xa, x=0x803, y=0x30b, unknown=0x0, paramB=0xb130000, paramC=0x1b + ezlo_hint x=0x6, y=0x10, rx=0xb, ry=0x3, msg=0xb13, flag=0x1b object_raw subtype=0x5, x=0x38, y=0xa8, paramA=0x5f object_raw subtype=0x5, x=0x48, y=0xa8, paramA=0x5f object_raw subtype=0x5, x=0xc8, y=0xa8, paramA=0x5f @@ -7828,7 +7835,7 @@ Entities_CaveOfFlames_MainCart_0:: @ 080E01AC object_raw subtype=0x8, x=0x258, y=0x38, paramA=0x9, paramC=0x1dffff object_raw subtype=0x8, x=0x2a8, y=0x38, paramA=0xb, paramC=0x1dffff object_raw subtype=0x55, x=0x2f8, y=0x68, paramA=0x2, paramB=0x100 - manager subtype=0xa, x=0x62b, y=0x20a, unknown=0x0, paramB=0xb380000, paramC=0x1e + ezlo_hint x=0x56, y=0xc, rx=0xa, ry=0x2, msg=0xb38, flag=0x1e object_raw subtype=0x6c, x=0x28, y=0x38, paramA=0x3 object_raw subtype=0x6c, x=0x28, y=0xd8, paramA=0x3 object_raw subtype=0x2f, x=0x178, y=0x58, paramC=0x1c0000 @@ -7917,7 +7924,7 @@ Entities_CaveOfFlames_CartWest_0:: @ 080E04D0 object_raw subtype=0x6c, x=0x288, y=0x38, paramA=0x1 object_raw subtype=0x6c, x=0x288, y=0xd8, paramA=0x1 object_raw subtype=0x55, x=0x238, y=0xd8, paramA=0x2, paramB=0x100 - manager subtype=0xa, x=0xb20, y=0x401, unknown=0x0, paramB=0xb390000, paramC=0x21 + ezlo_hint x=0x40, y=0x16, rx=0x1, ry=0x4, msg=0xb39, flag=0x21 object_raw subtype=0x8, x=0xb8, y=0xf8, paramA=0x2, paramC=0x24ffff object_raw subtype=0x8, x=0xb8, y=0xf8, paramA=0x12, paramC=0xffff object_raw subtype=0x5, x=0x168, y=0xc8 @@ -7977,7 +7984,7 @@ Entities_CaveOfFlames_Helmasaur_0:: @ 080E0790 manager subtype=0xb, unknown=0x0, paramB=0x8, paramC=0x220000 object_raw subtype=0x74, x=0x78, y=0x88, collision=2, paramC=0x220000 manager subtype=0x3, x=0x78, y=0x88, unknown=0x0, paramA=0x3, paramB=0x200 - manager subtype=0xa, x=0x303, y=0xb09, unknown=0x0, paramB=0xb3b0000, paramC=0x40630023 + ezlo_hint x=0x6, y=0x6, rx=0x9, ry=0xb, msg=0xb3b, flag=0x23, flag2=0x4063 entity_list_end Entities_CaveOfFlames_Helmasaur_1:: @ 080E07E0 @@ -8065,7 +8072,7 @@ Entities_CaveOfFlames_MinishLava_0:: @ 080E0A44 object_raw subtype=0x3, x=0x58, y=0x138, paramC=0x280000 object_raw subtype=0x8, x=0x48, y=0x178, paramA=0x3, paramC=0x280000 object_raw subtype=0x59, paramB=0x8 - manager subtype=0xa, x=0x1205, y=0x20f, unknown=0x0, paramB=0xb3a0000, paramC=0x44 + ezlo_hint x=0xa, y=0x24, rx=0xf, ry=0x2, msg=0xb3a, flag=0x44 object_raw subtype=0x5, x=0xe8, y=0x138 object_raw subtype=0x5, x=0xf8, y=0x138 object_raw subtype=0x5, x=0xe8, y=0x148 @@ -8293,7 +8300,7 @@ Room_CaveOfFlames_PathBossKey2:: @ 080E11F0 Entities_CaveOfFlames_Compass_0:: @ 080E1218 manager subtype=0xb, unknown=0x0, paramB=0x8, paramC=0x310000 - manager subtype=0xa, x=0x503, y=0x209, unknown=0x0, paramB=0xb270000, paramC=0x33 + ezlo_hint x=0x6, y=0xa, rx=0x9, ry=0x2, msg=0xb27, flag=0x33 object_raw subtype=0xc, x=0x78, y=0x68, paramA=0x2, paramB=0x32, paramC=0x310000 object_raw subtype=0x8, x=0x28, y=0x58, paramA=0x3, paramC=0x31ffff entity_list_end @@ -8468,7 +8475,7 @@ Room_CaveOfFlames_18:: @ 080E1784 Entities_CaveOfFlamesBoss_Main_0:: @ 080E17A4 manager subtype=0xb, unknown=0x0, paramB=0x8, paramC=0x40030000 manager subtype=0xe, y=0x168, paramA=0x9, paramB=0x1, paramC=0x40030000 - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb030000, paramC=0x4003 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb03, flag=0x4003 entity_list_end gUnk_additional_9_CaveOfFlamesBoss_Main:: @ 080E17E4 @@ -8588,7 +8595,7 @@ Entities_FortressOfWinds_EastKeyLever_0:: @ 080E1AEC manager subtype=0x11, paramC=0x80020020 manager subtype=0xf, x=0xa8, y=0x148, paramA=0x2, paramC=0x200000 manager subtype=0x2e, unknown=0x0, paramB=0x1e00, paramC=0x20001f - manager subtype=0xa, x=0x1006, y=0x704, unknown=0x0, paramB=0xb3d0000, paramC=0x1f0046 + ezlo_hint x=0xc, y=0x20, rx=0x4, ry=0x7, msg=0xb3d, flag=0x46, flag2=0x1f enemy_raw subtype=0x43, x=0x1d8, y=0x108 enemy_raw subtype=0x43, x=0x1d8, y=0x118 enemy_raw subtype=0x43, x=0x218, y=0x108 @@ -8693,7 +8700,7 @@ Entities_FortressOfWinds_WestKeyLever_0:: @ 080E1F74 manager subtype=0x11, paramC=0x80000024 manager subtype=0xf, x=0x98, y=0x68, paramA=0x1, paramC=0x240000 manager subtype=0x2e, unknown=0x0, paramB=0x1e00, paramC=0x240023 - manager subtype=0xa, x=0x30c, y=0x503, unknown=0x0, paramB=0xb3d0000, paramC=0x230046 + ezlo_hint x=0x18, y=0x6, rx=0x3, ry=0x5, msg=0xb3d, flag=0x46, flag2=0x23 enemy_raw subtype=0x43, x=0x48, y=0x48 enemy_raw subtype=0x43, x=0x38, y=0x88 enemy_raw subtype=0x43, x=0x48, y=0x88 @@ -8744,7 +8751,7 @@ Entities_FortressOfWinds_Darknut_0:: @ 080E2158 manager subtype=0xb, unknown=0x0, paramB=0x8, paramC=0x278000 manager subtype=0x2e, unknown=0x0, paramB=0x3c00, paramC=0x270048 object_raw subtype=0x34, x=0x88, y=0x68, paramB=0x2158, paramC=0x480186 - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb040000, paramC=0x80000027 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb04, flag=0x27, flag2=0x8000 enemy_raw subtype=0x43, x=0x48, y=0x28 enemy_raw subtype=0x43, x=0x38, y=0x38 enemy_raw subtype=0x43, x=0xc8, y=0x28 @@ -8830,7 +8837,7 @@ Entities_FortressOfWinds_Pit_0:: @ 080E2444 object_raw subtype=0x54, x=0xc8, y=0x17c, paramB=0x200002, paramC=0x80000000 manager subtype=0x5, x=0xa, y=0x7, paramB=0x2a, paramC=0x80000001 manager subtype=0x5, x=0xb, y=0x7, paramB=0x2a, paramC=0x80000001 - manager subtype=0xa, x=0x409, y=0x204, unknown=0x0, paramB=0xb3c0000, paramC=0x29 + ezlo_hint x=0x12, y=0x8, rx=0x4, ry=0x2, msg=0xb3c, flag=0x29 object_raw subtype=0xae, x=0x58, y=0x78 object_raw subtype=0xae, x=0x78, y=0x78 object_raw subtype=0xae, x=0x68, y=0xa8 @@ -9014,7 +9021,7 @@ Entities_FortressOfWinds_Mazaal_0:: @ 080E2AD8 manager subtype=0x3, x=0x138, y=0x38, unknown=0x0, paramA=0x3, paramB=0x102 object_raw subtype=0x8, x=0xb8, y=0xb8, paramA=0x12, paramC=0x8000ffff object_raw subtype=0x8, x=0xb8, y=0x18, paramC=0x31ffff - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb050000, paramC=0x31 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb05, flag=0x31 entity_list_end Enemies_FortressOfWinds_Mazaal:: @ 080E2BA8 @@ -9296,7 +9303,7 @@ Room_FortressOfWinds_EastStairs2F:: @ 080E33DC .4byte sub_StateChange_Dojos_Waveblade5 Entities_FortressOfWinds_WestStairs1F_0:: @ 080E33FC - manager subtype=0xa, x=0x802, y=0x308, unknown=0x0, paramB=0xb140000, paramC=0x40 + ezlo_hint x=0x4, y=0x10, rx=0x8, ry=0x3, msg=0xb14, flag=0x40 manager subtype=0x17, x=0x68, y=0x68, paramA=0x53, paramB=0x10400, paramC=0x24003f enemy_raw subtype=0x43, x=0x28, y=0x68, paramB=0x5f enemy_raw subtype=0x43, x=0x28, y=0x78, paramB=0x5f @@ -9323,7 +9330,7 @@ Room_FortressOfWinds_WestStairs1F:: @ 080E347C .4byte sub_StateChange_Dojos_Waveblade6 Entities_FortressOfWinds_CenterStairs1F_0:: @ 080E349C - manager subtype=0xa, x=0x803, y=0x309, unknown=0x0, paramB=0xb140000, paramC=0x40 + ezlo_hint x=0x6, y=0x10, rx=0x9, ry=0x3, msg=0xb14, flag=0x40 object_raw subtype=0x34, x=0x68, y=0x68, paramB=0x1058, paramC=0x80000188 object_raw subtype=0x34, x=0x88, y=0x68, paramA=0x1, paramB=0x458, paramC=0x80010199 enemy_raw subtype=0x43, x=0x38, y=0xa8, paramB=0x5f @@ -9348,7 +9355,7 @@ Room_FortressOfWinds_CenterStairs1F:: @ 080E351C .4byte sub_StateChange_Dojos_Waveblade7 Entities_FortressOfWinds_EastStairs1F_0:: @ 080E353C - manager subtype=0xa, x=0x803, y=0x308, unknown=0x0, paramB=0xb140000, paramC=0x40 + ezlo_hint x=0x6, y=0x10, rx=0x8, ry=0x3, msg=0xb14, flag=0x40 manager subtype=0x17, x=0x68, y=0x68, paramA=0x53, paramB=0x10400, paramC=0x200041 entity_list_end @@ -9429,7 +9436,7 @@ Room_FortressOfWinds_HeartPiece:: @ 080E3728 .4byte sub_StateChange_Dojos_70 Entities_InnerMazaal_Main_0:: @ 080E3748 - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb050000, paramC=0x31 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb05, flag=0x31 entity_list_end Enemies_InnerMazaal_Main:: @ 080E3768 @@ -9574,9 +9581,9 @@ Room_TempleOfDroplets_EastHole:: @ 080E3B40 .4byte sub_StateChange_TempleOfDroplets_EastHole Entities_TempleOfDroplets_Entrance_0:: @ 080E3B60 - manager subtype=0xa, x=0xd0c, y=0x309, unknown=0x0, paramB=0xb170000, paramC=0x2b - manager subtype=0xa, x=0x130a, y=0x501, unknown=0x0, paramB=0xb3e0000, paramC=0x7f - manager subtype=0xa, x=0x1316, y=0x501, unknown=0x0, paramB=0xb3e0000, paramC=0x7f + ezlo_hint x=0x18, y=0x1a, rx=0x9, ry=0x3, msg=0xb17, flag=0x2b + ezlo_hint x=0x14, y=0x26, rx=0x1, ry=0x5, msg=0xb3e, flag=0x7f + ezlo_hint x=0x2c, y=0x26, rx=0x1, ry=0x5, msg=0xb3e, flag=0x7f object_raw subtype=0x84, x=0x78, y=0xb8 object_raw subtype=0x84, x=0x98, y=0xb8 object_raw subtype=0x84, x=0x88, y=0xc8 @@ -9741,12 +9748,12 @@ Room_TempleOfDroplets_WaterfallNortheast:: @ 080E4054 .4byte sub_StateChange_TempleOfDroplets_WaterfallNortheast Entities_TempleOfDroplets_Element_0:: @ 080E4074 - manager subtype=0xa, x=0xa0a, y=0x20d, unknown=0x0, paramB=0xb410000, paramC=0x80 + ezlo_hint x=0x14, y=0x14, rx=0xd, ry=0x2, msg=0xb41, flag=0x80 manager subtype=0x15, x=0x108, y=0x118, unknown=0x8, paramA=0x4, paramB=0xff78, paramC=0x340000 object_raw subtype=0x8f, x=0x108, y=0xd8 object_raw subtype=0x83, x=0x58, y=0x58, paramC=0x360000 object_raw subtype=0x83, x=0x1b8, y=0x58, paramC=0x340000 - manager subtype=0xa, x=0x319, y=0x505, unknown=0x0, paramB=0xb420000, paramC=0x80640081 + ezlo_hint x=0x32, y=0x6, rx=0x5, ry=0x5, msg=0xb42, flag=0x81, flag2=0x8064 object_raw subtype=0x85, x=0x160, y=0x120, paramB=0x8, paramC=0x310000 object_raw subtype=0x5, x=0xc8, y=0x38 object_raw subtype=0x5, x=0x148, y=0x38 @@ -10017,7 +10024,7 @@ Entities_TempleOfDroplets_BigOcto_0:: @ 080E4944 object_raw subtype=0x33, x=0x108, y=0x18, paramA=0x4, paramB=0x1, paramC=0x80010000 object_raw subtype=0x33, x=0x118, y=0x18, paramA=0x4, paramB=0x1, paramC=0x80010000 manager subtype=0xe, y=0x3c, paramA=0x9, paramB=0x1, paramC=0x40050000 - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb070000, paramC=0x4005 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb07, flag=0x4005 entity_list_end gUnk_additional_9_TempleOfDroplets_BigOcto:: @ 080E49C4 @@ -10191,8 +10198,8 @@ Entities_TempleOfDroplets_NorthSmallKey_0:: @ 080E4E30 manager subtype=0x2e, unknown=0x0, paramB=0x1e00, paramC=0x510050 manager subtype=0x15, x=0x88, y=0x68, unknown=0x8, paramA=0x2, paramB=0xfff8, paramC=0x5100a3 object_raw subtype=0x84, x=0x48, y=0x48, paramA=0x1, paramB=0x8, paramC=0x520000 - manager subtype=0xa, x=0x30b, y=0x503, unknown=0x0, paramB=0xb400000, paramC=0x500053 - manager subtype=0xa, x=0x303, y=0x504, unknown=0x0, paramB=0xb3f0000, paramC=0x84 + ezlo_hint x=0x16, y=0x6, rx=0x3, ry=0x5, msg=0xb40, flag=0x53, flag2=0x50 + ezlo_hint x=0x6, y=0x6, rx=0x4, ry=0x5, msg=0xb3f, flag=0x84 entity_list_end Enemies_TempleOfDroplets_NorthSmallKey:: @ 080E4EA0 @@ -10485,7 +10492,7 @@ Room_TempleOfDroplets_LilypadIceBlocks:: @ 080E5730 .4byte sub_StateChange_TempleOfDroplets_LilypadIceBlocks Entities_TempleOfDroplets_Pit_0:: @ 080E5750 - manager subtype=0xa, x=0x502, y=0x302, unknown=0x0, paramB=0xb450000, paramC=0x5c + ezlo_hint x=0x4, y=0xa, rx=0x2, ry=0x3, msg=0xb45, flag=0x5c object_raw subtype=0x5, x=0x48, y=0x28 object_raw subtype=0x5, x=0x48, y=0x38 object_raw subtype=0x5, x=0x48, y=0x88 @@ -11270,7 +11277,7 @@ Room_RoyalCrypt_MushroomPit:: @ 080E714C .4byte sub_StateChange_RoyalCrypt_MushroomPit Entities_RoyalCrypt_Entrance_0:: @ 080E716C - manager subtype=0xa, x=0x707, y=0x103, unknown=0x0, paramB=0xb180000, paramC=0xc0 + ezlo_hint x=0xe, y=0xe, rx=0x3, ry=0x1, msg=0xb18, flag=0xc0 entity_list_end gUnk_080E718C:: @ 080E718C @@ -11639,7 +11646,7 @@ Entities_PalaceOfWinds_10_0:: @ 080E7CA4 enemy_raw subtype=0x43, x=0xa8, y=0x38, paramB=0x5f enemy_raw subtype=0x43, x=0x58, y=0x38, paramB=0x5f enemy_raw subtype=0x43, x=0x98, y=0x38, paramB=0x5f - manager subtype=0xa, x=0x803, y=0x209, unknown=0x0, paramB=0xb6a0000, paramC=0x7f + ezlo_hint x=0x6, y=0x10, rx=0x9, ry=0x2, msg=0xb6a, flag=0x7f entity_list_end Enemies_PalaceOfWinds_10:: @ 080E7D24 @@ -12364,7 +12371,7 @@ Entities_PalaceOfWinds_33_0:: @ 080E9330 object_raw subtype=0x29, x=0x80, y=0xe0, paramA=0x8 object_raw subtype=0x29, x=0x140, y=0xe0, paramA=0x80 manager subtype=0x2c, x=0x80, paramB=0x4011670, paramC=0x500080 - manager subtype=0xa, x=0x1721, y=0x307, unknown=0x0, paramB=0xb480000, paramC=0x65 + ezlo_hint x=0x42, y=0x2e, rx=0x7, ry=0x3, msg=0xb48, flag=0x65 object_raw subtype=0x16, x=0x60, y=0x180, collision=1, paramA=0x3, paramB=0x8 entity_list_end @@ -12432,7 +12439,7 @@ Entities_PalaceOfWinds_34_0:: @ 080E9544 object_raw subtype=0x9f, x=0x108, y=0x110, paramA=0x3, paramB=0x3c100f01, paramC=0x67 object_raw subtype=0x9f, x=0x108, y=0x1a0, paramA=0x3, paramB=0x3c100f01, paramC=0x67 object_raw subtype=0x9f, x=0x108, y=0x1c0, paramA=0x3, paramB=0x3c100f01, paramC=0x67 - manager subtype=0xa, x=0x1311, y=0x302, unknown=0x0, paramB=0xb490000, paramC=0x68 + ezlo_hint x=0x22, y=0x26, rx=0x2, ry=0x3, msg=0xb49, flag=0x68 entity_list_end Enemies_PalaceOfWinds_34:: @ 080E9684 @@ -12750,7 +12757,7 @@ Entities_PalaceOfWinds_44_0:: @ 080E9F4C object_raw subtype=0xc, x=0x78, y=0xd8, paramA=0x2, paramB=0x74, paramC=0x700000 object_raw subtype=0x29, x=0x140, y=0xe0, paramA=0x8 manager subtype=0x2c, x=0x140, paramB=0x4012170, paramC=0xe00140 - manager subtype=0xa, x=0xd13, y=0x404, unknown=0x0, paramB=0xb470000, paramC=0x75 + ezlo_hint x=0x26, y=0x1a, rx=0x4, ry=0x4, msg=0xb47, flag=0x75 .else object_raw subtype=0x29, x=0x140, y=0xe0, paramA=0x8 manager subtype=0x2c, x=0x140, paramB=0x4012170, paramC=0xe00140 @@ -12763,7 +12770,7 @@ Entities_PalaceOfWinds_44_0:: @ 080E9F4C object_raw subtype=0x33, x=0x78, y=0x118, paramA=0x5, paramB=0x1, paramC=0x80000000 object_raw subtype=0x33, x=0x88, y=0x118, paramA=0x5, paramB=0x1, paramC=0x80000000 object_raw subtype=0xc, x=0x78, y=0xd8, paramA=0x2, paramB=0x74, paramC=0x700000 - manager subtype=0xa, x=0xd13, y=0x404, unknown=0x0, paramB=0xb470000, paramC=0x75 + ezlo_hint x=0x26, y=0x1a, rx=0x4, ry=0x4, msg=0xb47, flag=0x75 .endif object_raw subtype=0x5, x=0x168, y=0xb8 object_raw subtype=0x5, x=0x178, y=0xb8, paramA=0x5e @@ -12969,7 +12976,7 @@ Room_PalaceOfWinds_48:: @ 080EA6E8 .4byte sub_StateChange_PalaceOfWinds_48 Entities_PalaceOfWinds_49_0:: @ 080EA708 - manager subtype=0xa, x=0x222, y=0x703, unknown=0x0, paramB=0xb190000, paramC=0x77 + ezlo_hint x=0x44, y=0x4, rx=0x3, ry=0x7, msg=0xb19, flag=0x77 manager subtype=0x1a, unknown=0x8, paramA=0x32 object_raw subtype=0x34, x=0x208, y=0x58, paramB=0xc70, paramC=0x840207 object_raw subtype=0x34, x=0x1d8, y=0x58, paramA=0x1, paramB=0x1570, paramC=0x860128 @@ -12998,7 +13005,7 @@ Room_PalaceOfWinds_49:: @ 080EA7C8 .4byte sub_StateChange_PalaceOfWinds_49 Entities_PalaceOfWinds_50_0:: @ 080EA7E8 - manager subtype=0xa, x=0xf14, y=0x305, unknown=0x0, paramB=0xb1a0000, paramC=0x78 + ezlo_hint x=0x28, y=0x1e, rx=0x5, ry=0x3, msg=0xb1a, flag=0x78 object_raw subtype=0xa1, x=0x168, y=0x128, paramB=0x1 object_raw subtype=0xc, x=0x218, y=0x98, paramA=0x4, paramB=0x79 enemy_raw subtype=0x43, x=0x198, y=0xb8, paramB=0x5f @@ -13049,7 +13056,7 @@ Room_PalaceOfWinds_50:: @ 080EA9E0 Entities_PalaceOfWindsBoss_Main_0:: @ 080EAA00 object_raw subtype=0xba - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb090000 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb09, flag=0x0 entity_list_end Entities_PalaceOfWindsBoss_Main_1:: @ 080EAA30 @@ -13074,7 +13081,7 @@ Room_PalaceOfWindsBoss_Main:: @ 080EAA58 Entities_Vaati2_Main_0:: @ 080EAA78 object_raw subtype=0x69, unknown=0x4f, paramC=script_0800DFE4 npc_raw subtype=0x3b, x=0xb0, y=0x88, unknown=0xf, script=0x0 - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb0c0000, paramC=0x7b + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb0c, flag=0x7b entity_list_end Entities_Vaati2_Main_1:: @ 080EAAB8 @@ -13104,7 +13111,7 @@ Entities_Vaati3_Main_0:: @ 080EAB20 npc_raw subtype=0x4e, script=script_0800A0FC object_raw subtype=0x74, x=0xb0, y=0x28, collision=1, paramC=0xffff0000 manager subtype=0x3, x=0xb0, y=0x28, unknown=0x0, paramA=0x3, paramB=0x102 - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb0d0000, paramC=0x4051 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb0d, flag=0x4051 entity_list_end Enemies_Vaati3_Main:: @ 080EAB90 @@ -13152,7 +13159,7 @@ Room_DarkHyruleCastleBridge_Main:: @ 080EAC40 Entities_VaatisArms_First_0:: @ 080EAC60 enemy_raw subtype=0x25, x=0x98, y=0x68 .ifdef USA_DEMOS - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb0d0000 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb0d, flag=0x0 .endif entity_list_end @@ -13175,7 +13182,7 @@ Room_VaatisArms_First:: @ 080EACA8 Entities_VaatisArms_Second_0:: @ 080EACC8 enemy_raw subtype=0x25, x=0x98, y=0x68 .ifdef USA_DEMOS - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb0d0000 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb0d, flag=0x0 .endif entity_list_end @@ -13242,7 +13249,7 @@ gUnk_080EAE60:: @ 080EAE60 npc_raw subtype=0x25, x=0xb8, y=0x138, script=script_0800E0BC npc_raw subtype=0x15, x=0x68, y=0x118, paramB=0x24, script=script_0800E154 npc_raw subtype=0x15, x=0x88, y=0x180, paramB=0x25, script=script_0800E200 - manager subtype=0xa, x=0xf02, y=0x90d, unknown=0x0, paramB=0xb250000, paramC=0x85 + ezlo_hint x=0x4, y=0x1e, rx=0xd, ry=0x9, msg=0xb25, flag=0x85 .ifndef EU manager subtype=0xf, paramA=0xe .endif @@ -13695,7 +13702,7 @@ Enemies_DarkHyruleCastle_6:: @ 080EBB34 object_raw subtype=0x5, x=0x38, y=0xc8, paramA=0x5e object_raw subtype=0x5, x=0x118, y=0xc8, paramA=0x60 .endif - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb0b0000 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb0b, flag=0x0 entity_list_end TileEntities_DarkHyruleCastle_6:: @ 080EBBA4 @@ -13839,7 +13846,7 @@ gUnk_additional_8_DarkHyruleCastle_10:: @ 080EBFD8 object_raw subtype=0x8, x=0x88, y=0xa8, paramA=0x12, paramC=0x86ffff object_raw subtype=0x39, x=0x88, y=0x28, paramA=0x4, paramC=0x86ffff object_raw subtype=0x69, unknown=0x4f, paramC=script_0800E5C4 - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb0a0000, paramC=0x86 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb0a, flag=0x86 entity_list_end Room_DarkHyruleCastle_10:: @ 080EC038 @@ -13967,7 +13974,7 @@ gUnk_additional_8_DarkHyruleCastle_14:: @ 080EC374 enemy_raw subtype=0x5, x=0x88, y=0x68, paramA=0x2 object_raw subtype=0x8, x=0x88, y=0xa8, paramA=0x12, paramC=0x4cffff object_raw subtype=0x8, x=0xe8, y=0x68, paramA=0x11, paramC=0x4cffff - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb0f0000, paramC=0x4c + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb0f, flag=0x4c entity_list_end Room_DarkHyruleCastle_14:: @ 080EC3C4 @@ -14038,7 +14045,7 @@ gUnk_additional_8_DarkHyruleCastle_16:: @ 080EC590 manager subtype=0x28, unknown=0x3, paramB=0x8 object_raw subtype=0x8, x=0x88, y=0xa8, paramA=0x12, paramC=0x4dffff object_raw subtype=0x8, x=0x28, y=0x68, paramA=0x13, paramC=0x4dffff - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb0f0000, paramC=0x4d + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb0f, flag=0x4d entity_list_end Room_DarkHyruleCastle_16:: @ 080EC600 @@ -14140,7 +14147,7 @@ gUnk_additional_8_DarkHyruleCastle_19:: @ 080EC8C8 manager subtype=0x28, unknown=0x3, paramB=0x8 object_raw subtype=0x8, x=0x88, y=0x28, paramA=0x10, paramC=0x53ffff object_raw subtype=0x8, x=0xe8, y=0x68, paramA=0x11, paramC=0x53ffff - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb0f0000, paramC=0x53 + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb0f, flag=0x53 entity_list_end Room_DarkHyruleCastle_19:: @ 080EC938 @@ -14211,7 +14218,7 @@ gUnk_additional_8_DarkHyruleCastle_21:: @ 080ECB00 enemy_raw subtype=0x5, x=0x88, y=0x68, paramA=0x2 object_raw subtype=0x8, x=0x88, y=0x28, paramA=0x10, paramC=0x56ffff object_raw subtype=0x8, x=0x28, y=0x68, paramA=0x13, paramC=0x56ffff - manager subtype=0xa, y=0x3f3f, unknown=0x0, paramA=0x3, paramB=0xb0f0000, paramC=0x4c + ezlo_hint type=0x3, x=0x0, y=0x0, rx=0x3f, ry=0x3f, msg=0xb0f, flag=0x4c entity_list_end Room_DarkHyruleCastle_21:: @ 080ECB50 @@ -14387,7 +14394,7 @@ Room_DarkHyruleCastle_27:: @ 080ECF6C .4byte sub_StateChange_Dojos_ToGreatblade8 Entities_DarkHyruleCastle_28_0:: @ 080ECF8C - manager subtype=0xa, x=0x300, y=0x811, unknown=0x0, paramB=0xb1b0000, paramC=0x5c + ezlo_hint x=0x0, y=0x6, rx=0x11, ry=0x8, msg=0xb1b, flag=0x5c entity_list_end Enemies_DarkHyruleCastle_28:: @ 080ECFAC @@ -14685,7 +14692,7 @@ Entities_DarkHyruleCastle_38_0:: @ 080ED668 object_raw subtype=0x33, x=0x88, y=0x58, paramA=0x5, paramC=0x620000 object_raw subtype=0x33, x=0x98, y=0x58, paramA=0x5, paramC=0x620000 object_raw subtype=0x33, x=0xa8, y=0x58, paramA=0x5, paramC=0x620000 - manager subtype=0xa, x=0x608, y=0x501, unknown=0x0, paramB=0xb4a0000, paramC=0x63 + ezlo_hint x=0x10, y=0xc, rx=0x1, ry=0x5, msg=0xb4a, flag=0x63 entity_list_end Enemies_DarkHyruleCastle_38:: @ 080ED6E8 @@ -15932,7 +15939,7 @@ Room_HyruleTown_8:: @ 080EFCC0 .4byte sub_StateChange_HyruleTown_0 Entities_HyruleTownMinishCaves_Entrance_0:: @ 080EFCE0 - manager subtype=0xa, x=0xe0e, y=0x105, unknown=0x0, paramB=0xb150000, paramC=0xbe + ezlo_hint x=0x1c, y=0x1c, rx=0x5, ry=0x1, msg=0xb15, flag=0xbe object_raw subtype=0x5, x=0x48, y=0x78 object_raw subtype=0x5, x=0x58, y=0x78 object_raw subtype=0x5, x=0x68, y=0x78 @@ -16091,7 +16098,7 @@ Entities_HyruleTownMinishCaves_Flippers_0:: @ 080F0114 manager subtype=0xb, unknown=0x0, paramB=0x8, paramC=0x120011 object_raw subtype=0xc, x=0xd8, y=0x28, paramA=0x2, paramB=0x14, paramC=0x120000 .ifndef EU - manager subtype=0xa, x=0x509, y=0x409, unknown=0x0, paramB=0xb6d0000, paramC=0x1400c7 + ezlo_hint x=0x12, y=0xa, rx=0x9, ry=0x4, msg=0xb6d, flag=0xc7, flag2=0x14 .endif object_raw subtype=0x0, x=0x60, y=0x28, collision=1, paramA=0x57, paramB=0x800, paramC=0x130000 entity_list_end @@ -16123,7 +16130,7 @@ Entities_HyruleTownMinishCaves_Librari_0:: @ 080F01F8 entity_list_end Enemies_HyruleTownMinishCaves_Librari:: @ 080F0208 - manager subtype=0xa, x=0x20a, y=0x305, unknown=0x0, paramB=0xb160000, paramC=0xbf + ezlo_hint x=0x14, y=0x4, rx=0x5, ry=0x3, msg=0xb16, flag=0xbf entity_list_end TileEntities_HyruleTownMinishCaves_Librari:: @ 080F0228 @@ -16293,9 +16300,9 @@ Room_HyruleTownUnderground_Well:: @ 080F0610 Entities_CastleGarden_Main_0:: @ 080F0630 .ifdef EU_JP - manager subtype=0xa, x=0x31e, y=0x103, unknown=0x0, paramB=0xb580000, paramC=0x14 + ezlo_hint x=0x3c, y=0x6, rx=0x3, ry=0x1, msg=0xb58, flag=0x14 .else - manager subtype=0xa, x=0x31e, y=0x103, unknown=0x0, paramB=0xb580000, paramC=0x13 + ezlo_hint x=0x3c, y=0x6, rx=0x3, ry=0x1, msg=0xb58, flag=0x13 .endif entity_list_end @@ -16863,7 +16870,7 @@ Room_HouseInteriors2_DrLeft:: @ 080F22F4 Entities_HouseInteriors2_Romio_0:: @ 080F232C npc_raw subtype=0x35, x=0x48, y=0x68, unknown=0xf, paramA=0x3, paramB=0x3, script=0x0 object_raw subtype=0x8d, x=0x98, y=0x28, paramC=0x850000 - manager subtype=0xa, x=0x50b, y=0x202, unknown=0x0, paramA=0x2, paramB=0xb240000, paramC=0xc3 + ezlo_hint type=0x2, x=0x16, y=0xa, rx=0x2, ry=0x2, msg=0xb24, flag=0xc3 entity_list_end gUnk_additional_c_HouseInteriors2_Romio:: @ 080F236C @@ -16932,8 +16939,8 @@ Entities_HouseInteriors2_Julietta_0:: @ 080F2510 npc_raw subtype=0x2c, x=0x38, y=0x78, unknown=0xf, collision=1, paramA=0x4, paramB=0x4000, script=0x0 manager subtype=0x26, paramA=0xa, paramB=0x28ff object_raw subtype=0x8b, x=0x68, y=0x48, collision=1, paramB=0x1, paramC=0x3e0000 - manager subtype=0xa, x=0x608, y=0x105, unknown=0x0, paramA=0x2, paramB=0xb5a0000, paramC=0xc6 - manager subtype=0xa, x=0x403, y=0x102, unknown=0x0, paramA=0x2, paramB=0xb5b0000, paramC=0xc7 + ezlo_hint type=0x2, x=0x10, y=0xc, rx=0x5, ry=0x1, msg=0xb5a, flag=0xc6 + ezlo_hint type=0x2, x=0x6, y=0x8, rx=0x2, ry=0x1, msg=0xb5b, flag=0xc7 entity_list_end gUnk_080F2570:: @ 080F2570 @@ -16948,7 +16955,7 @@ gUnk_080F2590:: @ 080F2590 gUnk_080F25C0:: @ 080F25C0 object_raw subtype=0x8c, x=0x6c, y=0x36, collision=1, paramC=0x6c0000 object_raw subtype=0x5a, x=0xb0, y=0x80, collision=1, paramA=0x2, paramB=0x1 - manager subtype=0xa, x=0x402, y=0x406, unknown=0x0, paramB=0xb600000, paramC=0xcc + ezlo_hint x=0x4, y=0x8, rx=0x6, ry=0x4, msg=0xb60, flag=0xcc entity_list_end gUnk_080F2600:: @ 080F2600 @@ -17223,7 +17230,7 @@ Room_HouseInteriors2_Cucco:: @ 080F2D7C .4byte gUnk_additional_b_HouseInteriors2_Cucco Entities_HouseInteriors2_LinksHouseEntrance_0:: @ 080F2DAC - manager subtype=0xa, x=0x706, y=0x103, unknown=0x0, paramB=0xb510000, paramC=0xc8 + ezlo_hint x=0xc, y=0xe, rx=0x3, ry=0x1, msg=0xb51, flag=0xc8 entity_list_end Entities_HouseInteriors2_LinksHouseEntrance_1:: @ 080F2DCC @@ -17365,9 +17372,9 @@ Room_HouseInteriors2_Stockwell:: @ 080F3174 .4byte gUnk_additional_8_HouseInteriors2_Stockwell Entities_HouseInteriors2_LinksHouseBedroom_0:: @ 080F3198 - manager subtype=0xa, x=0x302, y=0x107, unknown=0x0, paramB=0xb520000, paramC=0xc9 - manager subtype=0xa, x=0x206, y=0x101, unknown=0x0, paramB=0xb520000, paramC=0xc9 - manager subtype=0xa, x=0x702, y=0x101, unknown=0x0, paramB=0xb530000, paramC=0xca + ezlo_hint x=0x4, y=0x6, rx=0x7, ry=0x1, msg=0xb52, flag=0xc9 + ezlo_hint x=0xc, y=0x4, rx=0x1, ry=0x1, msg=0xb52, flag=0xc9 + ezlo_hint x=0x4, y=0xe, rx=0x1, ry=0x1, msg=0xb53, flag=0xca entity_list_end gUnk_080F31D8:: @ 080F31D8 @@ -18668,7 +18675,7 @@ Entities_HouseInteriors3_Cafe_0:: @ 080F5958 npc_raw subtype=0x6, x=0x40, y=0x50, paramA=0x5, paramB=0x400, script=script_0800EC8C npc_raw subtype=0x53, x=0x28, y=0x78, script=script_08010BB4 manager subtype=0x26, paramA=0xb, paramB=0x28ff - manager subtype=0xa, x=0xa0b, y=0x202, unknown=0x0, paramA=0x2, paramB=0xb240000, paramC=0xc3 + ezlo_hint type=0x2, x=0x16, y=0x14, rx=0x2, ry=0x2, msg=0xb24, flag=0xc3 entity_list_end Entities_HouseInteriors3_Cafe_1:: @ 080F59E8 @@ -18716,12 +18723,12 @@ Room_HouseInteriors3_Cafe:: @ 080F5ADC Entities_HouseInteriors3_RemShoeShop_0:: @ 080F5B0C npc_raw subtype=0x37, x=0x68, y=0x41, unknown=0xf, script=0x0 - manager subtype=0xa, x=0x402, y=0x202, unknown=0x0, paramA=0x2, paramB=0xb240000, paramC=0xc3 + ezlo_hint type=0x2, x=0x4, y=0x8, rx=0x2, ry=0x2, msg=0xb24, flag=0xc3 entity_list_end gUnk_080F5B3C:: @ 080F5B3C .ifndef EU - manager subtype=0xa, x=0x108, y=0x802, unknown=0x0, paramB=0xb6e0000, paramC=0xce + ezlo_hint x=0x10, y=0x2, rx=0x2, ry=0x8, msg=0xb6e, flag=0xce entity_list_end .endif @@ -18768,7 +18775,7 @@ Room_HouseInteriors3_RemShoeShop:: @ 080F5BE8 Entities_HouseInteriors3_Bakery_0:: @ 080F5C10 npc_raw subtype=0xd, x=0xa8, y=0x5c, script=script_08010674 npc_raw subtype=0xe, x=0x30, y=0x56, script=script_080106AC - manager subtype=0xa, x=0x702, y=0x107, unknown=0x0, paramB=0xb560000, paramC=0xcb + ezlo_hint x=0x4, y=0xe, rx=0x7, ry=0x1, msg=0xb56, flag=0xcb entity_list_end npc_raw subtype=0x6, x=0x68, y=0x90, paramA=0x7, paramB=0x400, script=script_0800EBDC entity_list_end @@ -19783,11 +19790,11 @@ Entities_HyruleField_LonLonRanch_0:: @ 080F7720 .ifdef EU_JP object_raw subtype=0x0, x=0x218, y=0x74, collision=1, paramA=0x63, paramB=0x400, paramC=0x7c0000 object_raw subtype=0x0, x=0x138, y=0x108, collision=1, paramA=0x57, paramB=0x700, paramC=0x7d0000 - manager subtype=0xa, x=0x1b16, y=0x203, unknown=0x0, paramB=0xb590000, paramC=0x7e + ezlo_hint x=0x2c, y=0x36, rx=0x3, ry=0x2, msg=0xb59, flag=0x7e .else object_raw subtype=0x0, x=0x218, y=0x74, collision=1, paramA=0x63, paramB=0x400, paramC=0x7e0000 object_raw subtype=0x0, x=0x138, y=0x108, collision=1, paramA=0x57, paramB=0x700, paramC=0x7f0000 - manager subtype=0xa, x=0x1b16, y=0x203, unknown=0x0, paramB=0xb590000, paramC=0x80 + ezlo_hint x=0x2c, y=0x36, rx=0x3, ry=0x2, msg=0xb59, flag=0x80 .endif entity_list_end @@ -20920,7 +20927,7 @@ Entities_VeilFalls_Main_0:: @ 080F9264 object_raw subtype=0x0, x=0x178, y=0x278, collision=1, paramA=0x56, paramB=0x400, paramC=0xa40000 object_raw subtype=0x0, x=0x148, y=0xb8, collision=1, paramA=0x57, paramB=0x700, paramC=0xa70000 object_raw subtype=0x0, x=0x138, y=0x308, collision=1, paramA=0x57, paramB=0x700, paramC=0xf70000 - manager subtype=0xa, x=0x2002, y=0x303, unknown=0x0, paramB=0xb1e0000, paramC=0xa5 + ezlo_hint x=0x4, y=0x40, rx=0x3, ry=0x3, msg=0xb1e, flag=0xa5 entity_list_end .else manager subtype=0x4 @@ -20931,7 +20938,7 @@ Entities_VeilFalls_Main_0:: @ 080F9264 object_raw subtype=0x0, x=0x178, y=0x278, collision=1, paramA=0x56, paramB=0x400, paramC=0xa50000 object_raw subtype=0x0, x=0x148, y=0xb8, collision=1, paramA=0x57, paramB=0x700, paramC=0xa80000 object_raw subtype=0x0, x=0x138, y=0x308, collision=1, paramA=0x57, paramB=0x700, paramC=0xaa0000 - manager subtype=0xa, x=0x2002, y=0x303, unknown=0x0, paramB=0xb1e0000, paramC=0xa6 + ezlo_hint x=0x4, y=0x40, rx=0x3, ry=0x3, msg=0xb1e, flag=0xa6 entity_list_end .endif @@ -21259,12 +21266,12 @@ Entities_VeilFallsTop_Main_0:: @ 080F9B78 gUnk_080F9BF8:: @ 080F9BF8 .ifdef EU_JP - manager subtype=0xa, x=0x307, y=0x202, unknown=0x0, paramB=0xb200000, paramC=0xaa + ezlo_hint x=0xe, y=0x6, rx=0x2, ry=0x2, msg=0xb20, flag=0xaa object_raw subtype=0x82, x=0x58, y=0x38, paramB=0x1 npc_raw subtype=0x4c, x=0x140, y=0xf8, script=script_08009320 entity_list_end .else - manager subtype=0xa, x=0x307, y=0x202, unknown=0x0, paramB=0xb200000, paramC=0xac + ezlo_hint x=0xe, y=0x6, rx=0x2, ry=0x2, msg=0xb20, flag=0xac object_raw subtype=0x82, x=0x58, y=0x38, paramB=0x1 npc_raw subtype=0x4c, x=0x140, y=0xf8, script=script_08009320 entity_list_end @@ -22381,9 +22388,9 @@ Entities_MtCrenel_Entrance_0:: @ 080FB480 object_raw subtype=0x5e, x=0x178, y=0x178 object_raw subtype=0x5e, x=0x128, y=0x160 object_raw subtype=0x0, x=0x318, y=0x164, collision=1, paramA=0x56, paramB=0x400, paramC=0x490000 - manager subtype=0xa, x=0x1316, y=0x204, unknown=0x0, paramB=0xb2a0000, paramC=0x48 - manager subtype=0xa, x=0xd11, y=0x202, unknown=0x0, paramA=0x2, paramB=0xb230000, paramC=0xf8 - manager subtype=0xa, x=0xe2e, y=0x202, unknown=0x0, paramA=0x2, paramB=0xb230000, paramC=0xf8 + ezlo_hint x=0x2c, y=0x26, rx=0x4, ry=0x2, msg=0xb2a, flag=0x48 + ezlo_hint type=0x2, x=0x22, y=0x1a, rx=0x2, ry=0x2, msg=0xb23, flag=0xf8 + ezlo_hint type=0x2, x=0x5c, y=0x1c, rx=0x2, ry=0x2, msg=0xb23, flag=0xf8 entity_list_end .else object_raw subtype=0x6b, x=0x118, y=0x28, paramB=0x4e @@ -22403,9 +22410,9 @@ Entities_MtCrenel_Entrance_0:: @ 080FB480 object_raw subtype=0x5e, x=0x178, y=0x178 object_raw subtype=0x5e, x=0x128, y=0x160 object_raw subtype=0x0, x=0x318, y=0x164, collision=1, paramA=0x56, paramB=0x400, paramC=0x4b0000 - manager subtype=0xa, x=0x1316, y=0x204, unknown=0x0, paramB=0xb2a0000, paramC=0x49 - manager subtype=0xa, x=0xd11, y=0x202, unknown=0x0, paramA=0x2, paramB=0xb230000, paramC=0x4a - manager subtype=0xa, x=0xe2e, y=0x202, unknown=0x0, paramA=0x2, paramB=0xb230000, paramC=0x4a + ezlo_hint x=0x2c, y=0x26, rx=0x4, ry=0x2, msg=0xb2a, flag=0x49 + ezlo_hint type=0x2, x=0x22, y=0x1a, rx=0x2, ry=0x2, msg=0xb23, flag=0x4a + ezlo_hint type=0x2, x=0x5c, y=0x1c, rx=0x2, ry=0x2, msg=0xb23, flag=0x4a entity_list_end .endif @@ -22784,7 +22791,7 @@ Entities_CrenelCaves_HelmasaurHallway_0:: @ 080FBF3C object_raw subtype=0x5, x=0x198, y=0x38, collision=1 object_raw subtype=0x5, x=0x208, y=0x48, collision=1 object_raw subtype=0x5, x=0x208, y=0x58, collision=1 - manager subtype=0xa, x=0x404, y=0x508, unknown=0x0, paramB=0xb260000, paramC=0x86 + ezlo_hint x=0x8, y=0x8, rx=0x8, ry=0x5, msg=0xb26, flag=0x86 entity_list_end Entities_CrenelCaves_HelmasaurHallway_1:: @ 080FBFFC diff --git a/include/area.h b/include/area.h index c8d10a53..3f1c0421 100644 --- a/include/area.h +++ b/include/area.h @@ -38,7 +38,7 @@ typedef struct { bool8 playShrinkSeq; u8 unk1A; u8 filler2[13]; - u8 field_0x28; + u8 inventoryGfxIdx; u8 filler4[0x13]; RoomResInfo roomResInfos[MAX_ROOMS]; RoomResInfo currentRoomInfo; diff --git a/include/flags.h b/include/flags.h index e7219f3a..1d3080ae 100644 --- a/include/flags.h +++ b/include/flags.h @@ -648,8 +648,8 @@ typedef enum { BILL_02_CAP_0, MHOUSE_07_CAP_0, MHOUSE_07_CAP_1, - MHOUSE_10_CAP_0, - MHOUSE_15_CAP_0, + MHOUSE_10_CAP_0, // links house entrance + MHOUSE_15_CAP_0, // links bedroom MHOUSE_15_CAP_1, SHOP_03_CAP_0, MHOUSE_07_CAP_2, diff --git a/include/functions.h b/include/functions.h index cc90e57f..31402827 100644 --- a/include/functions.h +++ b/include/functions.h @@ -188,7 +188,7 @@ extern void sub_0801DFB4(Entity*, u32, u32, u32); extern void sub_0801E00C(); extern void sub_08078790(Entity*, u32); extern void sub_080788E0(Entity*); -extern void sub_08078AA8(u32, u32); +extern void CreateEzloHint(u32, u32); extern void sub_08078B48(void); extern void sub_0807919C(); extern void sub_0807CAA0(u32, u32); diff --git a/include/manager.h b/include/manager.h index e18c51e8..44852146 100644 --- a/include/manager.h +++ b/include/manager.h @@ -63,19 +63,19 @@ typedef struct { typedef struct { Manager manager; - u16 unk_20; - u16 unk_22; - u16 unk_24; - u16 unk_26; - u8 unk_28[0x0D]; - u8 unk_35; - u16 unk_36; - u8 unk_38; - u8 unk_39; - u8 unk_3a; - u8 unk_3b; - u16 unk_3c; - u16 unk_3e; + u16 x; + u16 y; + u16 rx; + u16 ry; + u8 unk_28[13]; + u8 msg_height; + u16 msg_idx; + u8 x_raw; + u8 y_raw; + u8 rx_raw; + u8 ry_raw; + u16 flag1; + u16 flag2; } ManagerA; typedef struct { diff --git a/include/player.h b/include/player.h index 8512db67..be0e0987 100644 --- a/include/player.h +++ b/include/player.h @@ -39,6 +39,38 @@ enum PlayerActions { PLAYER_PARACHUTE, }; +enum PlayerFrameState { + PL_STATE_IDLE, + PL_STATE_WALK, + PL_STATE_SWORD, + PL_STATE_GUSTJAR, + PL_STATE_HOLD, + PL_STATE_THROW, + PL_STATE_6, + PL_STATE_SWIM, + PL_STATE_PARACHUTE, + PL_STATE_ROLL, + PL_STATE_FALL, + PL_STATE_JUMP, + PL_STATE_C, + PL_STATE_D, + PL_STATE_USEPORTAL, + PL_STATE_F, + PL_STATE_TRAPPED, + PL_STATE_11, + PL_STATE_DIE, + PL_STATE_TALKEZLO, + PL_STATE_CAPE, + PL_STATE_ITEMGET, + PL_STATE_DROWN, + PL_STATE_HOLE, + PL_STATE_CLIMB, + PL_STATE_PUSH, + PL_STATE_PULL, + PL_STATE_1B, + PL_STATE_STAIRS, +}; + enum PlayerSpawnType { PL_SPAWN_DEFAULT, PL_SPAWN_MINISH, @@ -137,8 +169,8 @@ typedef struct { /*0x9a*/ u16 field_0x9a; /*0x9c*/ u32 field_0x9c; /*0xa0*/ u8 field_0xa0[8]; - /*0xa8*/ u8 field_0xa8; - /*0xa9*/ u8 field_0xa9; + /*0xa8*/ u8 framestate; + /*0xa9*/ u8 framestate_last; /*0xaa*/ u8 field_0xaa; /*0xab*/ u8 field_0xab; /*0xac*/ u16 field_0xac; diff --git a/include/room.h b/include/room.h index efaed68b..8a837b91 100644 --- a/include/room.h +++ b/include/room.h @@ -121,8 +121,9 @@ typedef struct { u8 transitionType; // transition when changing areas u16 stairs_idx; // seems to be a tile type PlayerWorldStatus player_status; - u8 field_0x2c[0xa]; - u16 field_0x36; + u8 field_0x2c[0x9]; + u8 hint_height; + u16 hint_idx; u8 field_0x38; u8 field_0x39; u8 field_0x3a; diff --git a/src/enemy/beetle.c b/src/enemy/beetle.c index 997f4faf..205e149e 100644 --- a/src/enemy/beetle.c +++ b/src/enemy/beetle.c @@ -25,7 +25,7 @@ void sub_08021768(Entity* this) { void sub_08021780(Entity* this) { switch (this->bitfield) { case 0x80: - if (gPlayerState.field_0xa8 == 24) { + if (gPlayerState.framestate == PL_STATE_CLIMB) { sub_08021768(this); } else { this->action = 5; @@ -219,7 +219,7 @@ void sub_08021B64(Entity* this) { InitializeAnimation(this, 2); } else { int iVar4 = 1; - if (gPlayerState.field_0xa8 != 11 && gPlayerState.field_0xa8 != 20) { + if (gPlayerState.framestate != PL_STATE_JUMP && gPlayerState.framestate != PL_STATE_CAPE) { if (sub_0807953C()) iVar4 = this->type * 3 + 8; diff --git a/src/enemy/vaatiWrath.c b/src/enemy/vaatiWrath.c index a8843ae8..1b2f96e2 100644 --- a/src/enemy/vaatiWrath.c +++ b/src/enemy/vaatiWrath.c @@ -998,13 +998,13 @@ void VaatiWrathType0PreAction(Entity* this) { if (gSave.unk48C[3] != 0) { gSave.unk48C[3]--; } else { - temp = gPlayerState.field_0xa9; + temp = gPlayerState.framestate_last; if (temp < 2) { if (temp >= 0) { if (gPlayerState.field_0x2c == NULL) { if (gPlayerEntity.field_0x7a.HWORD == 0) { if ((gPlayerEntity.z.HALF.HI & 0x8000U) == 0 || (gPlayerState.field_0xa != 0)) { - sub_08078AA8(0xb70, 0); + CreateEzloHint(0xb70, 0); gScreenTransition.field_0x38 |= 2; } } diff --git a/src/interrupts.c b/src/interrupts.c index f7252e64..0e42d94d 100644 --- a/src/interrupts.c +++ b/src/interrupts.c @@ -195,7 +195,7 @@ void PlayerUpdate(Entity* this) { COLLISION_ON(this); } else { COLLISION_OFF(this); - gPlayerState.field_0xa8 = 0xf; + gPlayerState.framestate = PL_STATE_F; } } HandlePlayerLife(this); @@ -235,8 +235,8 @@ void HandlePlayerLife(Entity* this) { if (gPlayerState.field_0x27[0] != 0) gPlayerState.field_0x27[0]--; - gPlayerState.field_0xa9 = gPlayerState.field_0xa8; - gPlayerState.field_0xa8 = 0; + gPlayerState.framestate_last = gPlayerState.framestate; + gPlayerState.framestate = PL_STATE_IDLE; if (gPlayerState.hurtType[0x4a] != 0) { gPlayerState.hurtType[0x4a]--; return; diff --git a/src/item/itemGustJar.c b/src/item/itemGustJar.c index 12410354..bef6e091 100644 --- a/src/item/itemGustJar.c +++ b/src/item/itemGustJar.c @@ -6,7 +6,7 @@ extern void (*const gUnk_0811BDF4[])(ItemBehavior* beh, u32); void ItemGustJar(ItemBehavior* this, u32 arg1) { - gPlayerState.field_0xa8 = 3; + gPlayerState.framestate = PL_STATE_GUSTJAR; gUnk_0811BDF4[this->stateID](this, arg1); } diff --git a/src/item/itemSword.c b/src/item/itemSword.c index 50abf71a..47dc95ba 100644 --- a/src/item/itemSword.c +++ b/src/item/itemSword.c @@ -11,7 +11,7 @@ extern u32 sub_08077EC8(ItemBehavior*); void sub_08075694(ItemBehavior* this, u32 arg1); void ItemSword(ItemBehavior* this, u32 arg1) { - gPlayerState.field_0xa8 = 0x02; + gPlayerState.framestate = PL_STATE_SWORD; gUnk_0811BD44[this->stateID](this, arg1); } diff --git a/src/item/itemTryPickupObject.c b/src/item/itemTryPickupObject.c index 80d8565d..a8d59830 100644 --- a/src/item/itemTryPickupObject.c +++ b/src/item/itemTryPickupObject.c @@ -42,7 +42,7 @@ void sub_08076488(ItemBehavior* this, u32 arg1) { } else { this->field_0x5[2] -= 1; } - gPlayerState.field_0xa8 = 4; + gPlayerState.framestate = PL_STATE_HOLD; } ASM_FUNC("asm/non_matching/itemTryPickupObject/sub_08076518.inc", void sub_08076518(ItemBehavior* this, u32 arg1)) diff --git a/src/manager/manager15.c b/src/manager/manager15.c index 15f336c4..5289a511 100644 --- a/src/manager/manager15.c +++ b/src/manager/manager15.c @@ -297,9 +297,9 @@ void sub_0805A758(Manager15* this) { void sub_0805A76C(Manager15* this) { if ((gPlayerEntity.health != 0) && (gPlayerEntity.z.HALF.HI == 0) && (!gPlayerState.field_0x2c)) { - switch (gPlayerState.field_0xa9) { - case 1: - case 0: + switch (gPlayerState.framestate_last) { + case PL_STATE_IDLE: + case PL_STATE_WALK: if (sub_0805A73C(this)) { this->manager.action++; sub_08004168(&gPlayerEntity); diff --git a/src/manager/manager3.c b/src/manager/manager3.c index e485f8b0..308de277 100644 --- a/src/manager/manager3.c +++ b/src/manager/manager3.c @@ -96,9 +96,9 @@ void CreateMagicSparkles(u32 baseX, u32 baseY, u32 layer) { u32 sub_08057810(void) { if ((gPlayerState.flags & PL_MINISH) && !gPlayerState.field_0xaa && (gArea.curPortalType != 0x6) && (gPlayerState.heldObject == 0)) { - switch (gPlayerState.field_0xa8) { - case 0: - case 1: + switch (gPlayerState.framestate) { + case PL_STATE_IDLE: + case PL_STATE_WALK: return 1; } } diff --git a/src/manager/manager33.c b/src/manager/manager33.c index 7dbf75b4..b0c7fa29 100644 --- a/src/manager/manager33.c +++ b/src/manager/manager33.c @@ -11,7 +11,7 @@ void Manager33_Main(Manager* this) { u32 b = roomControls->roomOriginY + 0x140; u32 y = (b - gPlayerEntity.y.HALF.HI) + 0x10; if (this->action == 0) { - if (x < 0x20 && y < 0x20 && gPlayerEntity.z.HALF.HI < -0x18 && gPlayerState.field_0xa8 == 0x14) { + if (x < 0x20 && y < 0x20 && gPlayerEntity.z.HALF.HI < -0x18 && gPlayerState.framestate == PL_STATE_CAPE) { this->action += 1; this->unk_0e = 0x5a; SoundReq(SFX_10A); diff --git a/src/manager/managerA.c b/src/manager/managerA.c index 564c1cac..fbaf30ff 100644 --- a/src/manager/managerA.c +++ b/src/manager/managerA.c @@ -6,53 +6,54 @@ #include "area.h" #include "functions.h" -void sub_08058398(ManagerA*); -void sub_080583EC(ManagerA*); -void sub_08058408(ManagerA*); -void sub_08058514(ManagerA*); -void sub_080585B0(ManagerA*); +static void sub_08058398(ManagerA*); +static void sub_080583EC(ManagerA*); +static void sub_08058408(ManagerA*); +static void sub_08058514(ManagerA*); +static void sub_080585B0(ManagerA*); -void (*const gUnk_081081F4[])(ManagerA*) = { sub_08058398, sub_080583EC, sub_08058408, sub_08058514, sub_080585B0 }; +static u32 PlayerStateValid(ManagerA*); +static void sub_080585DC(ManagerA*); +extern void sub_0801855C(void); + +/** + * Ezlo hint manager + */ void ManagerA_Main(ManagerA* this) { - gUnk_081081F4[this->manager.action](this); + static void (*const sActions[])(ManagerA*) = { sub_08058398, sub_080583EC, sub_08058408, sub_08058514, + sub_080585B0 }; + + sActions[this->manager.action](this); } -void sub_08058398(ManagerA* this) { - - if (CheckFlags(this->unk_3c) != 0) { +static void sub_08058398(ManagerA* this) { + if (CheckFlags(this->flag1) != 0) { DeleteThisEntity(); } - this->unk_24 = this->unk_3a << 3; - this->unk_26 = this->unk_3b << 3; - this->unk_20 = this->unk_24 + (this->unk_38 << 4); - this->unk_22 = this->unk_26 + (this->unk_39 << 4); - SetDefaultPriority((Entity*)&this->manager, 0x06); - if (this->unk_3e == 0) { + this->rx = this->rx_raw << 3; + this->ry = this->ry_raw << 3; + this->x = this->rx + (this->x_raw << 4); + this->y = this->ry + (this->y_raw << 4); + SetDefaultPriority((Entity*)&this->manager, PRIO_PLAYER_EVENT); + if (this->flag2 == 0) { this->manager.action = 2; } else { this->manager.action = 1; } } -void sub_080583EC(ManagerA* this) { - if (CheckFlags(this->unk_3e) != 0) { +static void sub_080583EC(ManagerA* this) { + if (CheckFlags(this->flag2)) { this->manager.action = 2; sub_08058408(this); } } -extern void SetPlayerEventPriority(void); - -u32 sub_0805848C(ManagerA*); -void sub_080585DC(ManagerA*); - -void sub_08058408(ManagerA* this) { - u32 tmp2; - tmp2 = (gPlayerState.flags & 0x08); - if (tmp2 != 0) +static void sub_08058408(ManagerA* this) { + if (gPlayerState.flags & PL_NO_CAP) return; - if (!CheckPlayerInRegion(this->unk_20, this->unk_22, this->unk_24, this->unk_26)) + if (!CheckPlayerInRegion(this->x, this->y, this->rx, this->ry)) return; switch (this->manager.unk_0a) { case 1: @@ -64,101 +65,98 @@ void sub_08058408(ManagerA* this) { case 0: default: sub_080585DC(this); - if (sub_0805848C(this) == 0) + if (!PlayerStateValid(this)) return; SetPlayerControl(3); sub_08078B48(); SetPlayerEventPriority(); this->manager.action = 3; this->manager.unk_0d = 0; - this->manager.unk_0e = 0x1e; + this->manager.unk_0e = 30; return; case 3: this->manager.action = 4; - this->manager.unk_0d = tmp2; - sub_080186C0(this->unk_36); + this->manager.unk_0d = 0; + sub_080186C0(this->msg_idx); return; } } -u32 sub_0805848C(ManagerA* this) { - switch (gPlayerState.field_0xa8 - 5) { - case 0: - case 2: - case 3: - case 5: - case 6: - case 7: - case 8: - case 9: - case 10: - case 11: - case 12: - case 13: - case 14: - case 15: - case 16: - case 17: - case 18: - case 19: - case 22: - case 23: +static u32 PlayerStateValid(ManagerA* this) { + switch (gPlayerState.framestate) { + case PL_STATE_THROW: + case PL_STATE_SWIM: + case PL_STATE_PARACHUTE: + case PL_STATE_FALL: + case PL_STATE_JUMP: + case PL_STATE_C: + case PL_STATE_D: + case PL_STATE_USEPORTAL: + case PL_STATE_F: + case PL_STATE_TRAPPED: + case PL_STATE_11: + case PL_STATE_DIE: + case PL_STATE_TALKEZLO: + case PL_STATE_CAPE: + case PL_STATE_ITEMGET: + case PL_STATE_DROWN: + case PL_STATE_HOLE: + case PL_STATE_CLIMB: + case PL_STATE_1B: + case PL_STATE_STAIRS: return 0; - case 1: - case 4: - case 20: - case 21: + case PL_STATE_6: + case PL_STATE_ROLL: + case PL_STATE_PUSH: + case PL_STATE_PULL: default: return 1; } } -extern void ResetPlayerEventPriority(void); - -void sub_08058514(ManagerA* this) { +static void sub_08058514(ManagerA* this) { switch (this->manager.unk_0d) { case 1: - if ((gPlayerState.flags & 0x1235) != 0) + if (gPlayerState.flags & (PL_BUSY | PL_DROWNING | PL_USE_PORTAL | 0x1210)) return; if (gPlayerEntity.z.HALF.HI != 0) return; gPlayerState.jumpStatus = 0; - sub_08078AA8(this->unk_36, this->unk_35); + CreateEzloHint(this->msg_idx, this->msg_height); this->manager.unk_0d++; - this->manager.unk_0e = 0x1E; + this->manager.unk_0e = 30; return; case 0: case 2: - if (((--this->manager.unk_0e) << 0x18) == 0) { + if (--this->manager.unk_0e == 0) { this->manager.unk_0d++; } return; case 3: - if (gPlayerEntity.action != 1 && gPlayerEntity.action != 9) - return; - gPlayerState.controlMode = 1; - ResetPlayerEventPriority(); - SetFlag(this->unk_3c); - DeleteThisEntity(); + /* wait for player to finish talking */ + if (gPlayerEntity.action == PLAYER_NORMAL || gPlayerEntity.action == PLAYER_MINISH) { + gPlayerState.controlMode = 1; + ResetPlayerEventPriority(); + SetFlag(this->flag1); + DeleteThisEntity(); + } return; default: return; } } -extern void sub_0801855C(void); - -void sub_080585B0(ManagerA* this) { - if (gArea.field_0x28 != 0xFF) { +static void sub_080585B0(ManagerA* this) { + if (gArea.inventoryGfxIdx != 0xFF) { DeleteThisEntity(); } - if (CheckFlags(this->unk_3c)) { + if (CheckFlags(this->flag1)) { sub_0801855C(); DeleteThisEntity(); } } -void sub_080585DC(ManagerA* this) { - if (CheckFlags(this->unk_3c)) { +static void sub_080585DC(ManagerA* this) { + if (CheckFlags(this->flag1)) { DeleteThisEntity(); } } diff --git a/src/manager/managerF.c b/src/manager/managerF.c index a010f2ca..cc7b7692 100644 --- a/src/manager/managerF.c +++ b/src/manager/managerF.c @@ -414,7 +414,7 @@ void sub_080594DC(ManagerF* this) { break; case 2: default: - if (gArea.field_0x28 != 0xFF) { + if (gArea.inventoryGfxIdx != 0xFF) { DeleteThisEntity(); } if (CheckLocalFlagByBank(0x8c0, 0x85)) { diff --git a/src/npc/guardWithSpear.c b/src/npc/guardWithSpear.c index 0332ce5f..ddb8ffde 100644 --- a/src/npc/guardWithSpear.c +++ b/src/npc/guardWithSpear.c @@ -29,7 +29,7 @@ void sub_08064470(Entity* this, ScriptExecutionContext* context) { } void sub_08064488(void) { - if (gPlayerState.field_0xa8 != 2) { + if (gPlayerState.framestate != PL_STATE_SWORD) { gPlayerState.field_0xab = 0; } } diff --git a/src/npc/kid.c b/src/npc/kid.c index 41bebb98..c109baae 100644 --- a/src/npc/kid.c +++ b/src/npc/kid.c @@ -170,7 +170,7 @@ NONMATCH("asm/non_matching/kid/sub_0806252C.inc", void sub_0806252C(Entity* this s32 iVar10; s32 iVar11; - uVar4 = gPlayerState.field_0xa8; + uVar4 = gPlayerState.framestate; uVar3 = gPlayerEntity.z.HALF.HI; sVar2 = gPlayerEntity.y.HALF.HI; sVar1 = gPlayerEntity.x.HALF.HI; diff --git a/src/object/warpPoint.c b/src/object/warpPoint.c index b238e897..df5a9ba2 100644 --- a/src/object/warpPoint.c +++ b/src/object/warpPoint.c @@ -209,9 +209,9 @@ void sub_0808B73C(Entity* this) { } u32 sub_0808B7C8(Entity* this) { - if (!(gPlayerState.flags & PL_MINISH) && gPlayerState.field_0xa8 != 0x12 && gPlayerEntity.health != 0 && + if (!(gPlayerState.flags & PL_MINISH) && gPlayerState.framestate != PL_STATE_DIE && gPlayerEntity.health != 0 && sub_08079F8C() && EntityInRectRadius(this, &gPlayerEntity, 5, 5) && gPlayerEntity.z.HALF.HI == 0) { - if (this->actionDelay == 0 && gPlayerEntity.action == 0x1b) { + if (this->actionDelay == 0 && gPlayerEntity.action == PLAYER_08072C9C) { sub_080791D0(); } return 1; diff --git a/src/overworld.c b/src/overworld.c index f33a2584..c087776c 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -554,7 +554,7 @@ void RoomExitCallback(void) { } u32 HandleRoomExit(void) { - if (gScreenTransition.transitioningOut && gSave.stats.health != 0 && gPlayerState.field_0xa8 != 18) { + if (gScreenTransition.transitioningOut && gSave.stats.health != 0 && gPlayerState.framestate != PL_STATE_DIE) { if (StairsAreValid()) { gScreenTransition.transitioningOut = 0; return 0; @@ -660,13 +660,13 @@ static void HandleRoomEnter(void) { } u32 sub_08052B24(void) { - s32 tmp = 1; + s32 tmp = PL_STATE_WALK; if (!(gInput.heldKeys & SELECT_BUTTON) || gPlayerState.controlMode != CONTROL_ENABLED || gUnk_02034490[0] || gUnk_0200AF00.filler0[1]) return 0; - if ((gPlayerState.flags & 0x118) || (gPlayerState.field_0xa9 > tmp) || gPlayerState.field_0x2c || + if ((gPlayerState.flags & 0x118) || (gPlayerState.framestate_last > tmp) || gPlayerState.field_0x2c || gPlayerEntity.field_0x7a.HWORD) return 0; @@ -693,7 +693,7 @@ void DisplayEzloMessage(void) { } else { height = gScreenTransition.player_status.field_0x24[idx]; } - MessageAtHeight(gScreenTransition.field_0x36, height); + MessageAtHeight(gScreenTransition.hint_idx, height); } #if defined(USA) || defined(DEMO_USA) || defined(DEMO_JP) diff --git a/src/player.c b/src/player.c index b0bedf4d..2b3f8371 100644 --- a/src/player.c +++ b/src/player.c @@ -6,6 +6,7 @@ #include "textbox.h" #include "utils.h" #include "area.h" +#include "item.h" #include "save.h" #include "object.h" #include "functions.h" @@ -271,7 +272,7 @@ static void PlayerInit(Entity* this) { sub_08016A30(this); } - if (IsItemEquipped(0x10) != 2) { + if (IsItemEquipped(ITEM_LANTERN_ON) != 2) { sub_08077728(); } sub_0807A108(); @@ -284,7 +285,7 @@ static void PlayerInit(Entity* this) { Entity* ent; gPlayerState.swimState = 1; sub_08079938(); - gPlayerState.field_0xa8 = 7; + gPlayerState.framestate = PL_STATE_SWIM; sub_0807ACCC(this); ent = FindEntity(0x6, 0xf, 0x6, 0xb, 0x0); if (ent != NULL) { @@ -315,7 +316,7 @@ static void PlayerFall(Entity* this) { gPlayerState.field_0xd = 0xFF; gPlayerState.pushedObject = 0x80; - gPlayerState.field_0xa8 = 10; + gPlayerState.framestate = PL_STATE_FALL; sPlayerFallStates[this->subAction](this); } @@ -454,7 +455,7 @@ static void sub_08070E9C(Entity* this) { MessageClose(); } else { gPlayerState.field_0x27[0] = 4; - gPlayerState.field_0xa8 = 0x13; + gPlayerState.framestate = PL_STATE_TALKEZLO; sub_0807A1B8(); gUnk_0811BA74[this->subAction](this); } @@ -490,7 +491,7 @@ static void PlayerItemGet(Entity* this) { Entity* child; u8* temp; - gPlayerState.field_0xa8 = 0x15; + gPlayerState.framestate = PL_STATE_ITEMGET; COLLISION_OFF(this); sPlayerItemGetStates[this->subAction](this); @@ -561,7 +562,7 @@ static void PlayerJump(Entity* this) { sub_08071208, }; - gPlayerState.field_0xa8 = 0xb; + gPlayerState.framestate = PL_STATE_JUMP; sPlayerJumpStates[this->subAction](this); } @@ -675,7 +676,7 @@ static void PlayerDrown(Entity* this) { sub_080712F0, }; - gPlayerState.field_0xa8 = 0x16; + gPlayerState.framestate = PL_STATE_DROWN; gPlayerState.flags |= PL_DROWNING; COLLISION_OFF(this); sPlayerDrownStates[this->subAction](this); @@ -737,7 +738,7 @@ static void PlayerUsePortal(Entity* this) { PortalShrinkInit, PortalShrinkUpdate, PortalEnterUpdate, PortalUnknownUpdate, }; - gPlayerState.field_0xa8 = 0xe; + gPlayerState.framestate = PL_STATE_USEPORTAL; sPlayerUsePortalStates[this->subAction](this); // probably a switch @@ -813,7 +814,7 @@ static void PortalStandUpdate(Entity* this) { this->animationState = Direction8ToAnimationState(this->direction); this->zVelocity = 0x20000; this->speed = 256; - this->action = 9; + this->action = PLAYER_MINISH; this->subAction = 7; this->field_0xf = 0; gPlayerState.animation = (gPlayerState.flags & PL_NO_CAP) ? 0x41C : 0x80C; @@ -866,7 +867,7 @@ static void PortalShrinkInit(Entity* this) { *(u32*)&this->cutsceneBeh = 0x100; sub_0805EC9C(this, 0x100, 0x100, 0); gPlayerState.animation = 0x2c3; - gPlayerState.flags |= 0x80; + gPlayerState.flags |= PL_MINISH; SoundReq(SFX_PLY_SHRINKING); } @@ -943,7 +944,7 @@ static void PlayerTalkEzlo(Entity* this) { MessageClose(); ResetPlayerPriority(); } else { - gPlayerState.field_0xa8 = 0x13; + gPlayerState.framestate = PL_STATE_TALKEZLO; COLLISION_OFF(this); sPlayerTalkEzloStates[this->subAction](this); } @@ -1057,7 +1058,7 @@ static void PlayerPush(Entity* this) { sub_08071B60, }; - gPlayerState.field_0xa8 = 0x19; + gPlayerState.framestate = PL_STATE_PUSH; sPlayerPushStates[this->subAction](this); } @@ -1132,7 +1133,7 @@ static void PlayerMinishDie(Entity* this) { COLLISION_OFF(this); sPlayerMinishDieStates[this->subAction](this); - gPlayerState.field_0xa8 = 0x12; + gPlayerState.framestate = PL_STATE_DIE; } static void sub_08071BDC(Entity* this) { @@ -1477,7 +1478,7 @@ static void PlayerPull(Entity* this) { sub_08072260, }; - gPlayerState.field_0xa8 = 0x1a; + gPlayerState.framestate = PL_STATE_PULL; sPlayerPullStates[this->subAction](this); gUnk_0200AF00.filler25[9] = 8; } @@ -1520,7 +1521,7 @@ static void PlayerLava(Entity* this) { sub_0807240C, }; - gPlayerState.field_0xa8 = 10; + gPlayerState.framestate = PL_STATE_FALL; sPlayerLavaStates[this->subAction](this); } @@ -1677,7 +1678,7 @@ static void PlayerRoll(Entity* this) { sub_080726F4, }; - gPlayerState.field_0xa8 = 9; + gPlayerState.framestate = PL_STATE_ROLL; sPlayerRollStates[this->subAction](this); } @@ -1815,7 +1816,7 @@ static void PlayerInHole(Entity* this) { sub_08072970, sub_08072A60, sub_08072ACC, sub_08072B5C, sub_08072C48, }; - gPlayerState.field_0xa8 = 0x17; + gPlayerState.framestate = PL_STATE_HOLE; sPlayerInHoleStates[this->subAction](this); } @@ -1948,7 +1949,7 @@ static void sub_08072C9C(Entity* this) { sub_08072D54, sub_08072F14, }; - gPlayerState.field_0xa8 = 0x11; + gPlayerState.framestate = 0x11; gUnk_0811BBAC[this->subAction](this); } @@ -2095,7 +2096,7 @@ static void sub_08072F34(Entity* this) { }; if (!sub_08078EFC()) { - gPlayerState.field_0xa8 = 0x18; + gPlayerState.framestate = PL_STATE_CLIMB; gPlayerState.field_0x10[2] = GetSurfaceCalcType(this, 0, 0); gUnk_0811BBE4[this->subAction](this); if (this->knockbackDuration != 0) { @@ -2221,7 +2222,7 @@ static void PlayerUseEntrance(Entity* this) { sub_080733BC, }; - gPlayerState.field_0xa8 = 0x1c; + gPlayerState.framestate = PL_STATE_STAIRS; RequestPriorityDuration(NULL, 8); sPlayerUseEntranceStates[this->subAction](this); } diff --git a/src/playerItemUtils.c b/src/playerItemUtils.c index 9871639a..de1d4989 100644 --- a/src/playerItemUtils.c +++ b/src/playerItemUtils.c @@ -101,7 +101,7 @@ u32 sub_080A7CFC(u32 a1) { void sub_080A7D44(u32 msg, u32 isTileEntity6) { if (isTileEntity6) - sub_08078AA8(msg, 0); + CreateEzloHint(msg, 0); else // Read sign text MessageFromTarget(msg); diff --git a/src/projectile/spiderWeb.c b/src/projectile/spiderWeb.c index fe98e9fb..7323ae0a 100644 --- a/src/projectile/spiderWeb.c +++ b/src/projectile/spiderWeb.c @@ -143,7 +143,7 @@ void SpiderWeb_SubAction0(Entity* this) { this->field_0xf = 2; InitAnimationForceUpdate(this, this->type + 4); } - if ((entity->animationState >> 1 == this->type) && (gPlayerState.field_0xa8 == 0x1a) && + if ((entity->animationState >> 1 == this->type) && (gPlayerState.framestate == PL_STATE_PULL) && ((gPlayerState.heldObject & 2) != 0) && ((gPlayerEntity.frame & 2) != 0) && ((this->frame & 0x80) == 0)) { UpdateAnimationSingleFrame(this); if ((this->frame & 1) != 0) { diff --git a/src/script.c b/src/script.c index 6d7203eb..a05c3629 100644 --- a/src/script.c +++ b/src/script.c @@ -1228,7 +1228,7 @@ void ScriptCommand_MessageNoOverlapVar(Entity* entity, ScriptExecutionContext* c } void ScriptCommand_0807EB28(Entity* entity, ScriptExecutionContext* context) { - sub_08078AA8(context->scriptInstructionPointer[1], 0); + CreateEzloHint(context->scriptInstructionPointer[1], 0); } void ScriptCommand_0807EB38(Entity* entity, ScriptExecutionContext* context) { @@ -1789,7 +1789,7 @@ void sub_0807F584(Entity* entity, ScriptExecutionContext* context) { } void sub_0807F594(Entity* entity, ScriptExecutionContext* context) { - if (gPlayerState.field_0xa8) + if (gPlayerState.framestate) gActiveScriptInfo.commandSize = 0; } @@ -2011,7 +2011,7 @@ void sub_0807F994(Entity* entity, ScriptExecutionContext* context) { } void sub_0807F9A4(Entity* entity, ScriptExecutionContext* context) { - switch (gPlayerState.field_0xa8) { + switch (gPlayerState.framestate) { case 5: case 7: case 8: @@ -2041,7 +2041,7 @@ void sub_0807F9A4(Entity* entity, ScriptExecutionContext* context) { } void sub_0807FA40(Entity* entity, ScriptExecutionContext* context) { - switch (gPlayerState.field_0xa8) { + switch (gPlayerState.framestate) { case 5: case 7: case 8: