diff --git a/assets/assets.json b/assets/assets.json index f9017dbd..d77119a5 100644 --- a/assets/assets.json +++ b/assets/assets.json @@ -32288,120 +32288,6 @@ "JP": -828 } }, - { - "path": "manager12/gUnk_08108398.bin", - "start": 1082264, - "size": 22 - }, - { - "path": "manager12/gUnk_081083AE.bin", - "start": 1082286, - "size": 22 - }, - { - "path": "manager12/gUnk_081083C4.bin", - "start": 1082308, - "size": 22 - }, - { - "path": "manager12/gUnk_081083DA.bin", - "start": 1082330, - "size": 24 - }, - { - "path": "manager12/gUnk_081083F2.bin", - "start": 1082354, - "size": 22 - }, - { - "path": "manager12/gUnk_08108408_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 1080156 - }, - "size": 60 - }, - { - "path": "manager12/gUnk_08108408_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 1082376, - "size": 60 - }, - { - "path": "manager12/gUnk_08108408_2_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 1080216 - }, - "size": 36 - }, - { - "path": "manager12/gUnk_08108408_3_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 1082436, - "size": 36 - }, - { - "path": "manager12/gUnk_08108468_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 1080252 - }, - "size": 38 - }, - { - "path": "manager12/gUnk_08108468_1_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 1082472, - "size": 38 - }, - { - "path": "manager12/gUnk_08108468_2_EU.bin", - "variants": [ - "EU" - ], - "starts": { - "EU": 1080290 - }, - "size": 53 - }, - { - "path": "manager12/gUnk_08108468_3_USA-JP-DEMO_USA-DEMO_JP.bin", - "variants": [ - "USA", - "JP", - "DEMO_USA", - "DEMO_JP" - ], - "start": 1082510, - "size": 53 - }, - { - "path": "manager12/gUnk_08108468_4.bin", - "start": 1082563, - "size": 5 - }, { "path": "manager13/gUnk_081084C8.bin", "start": 1082568, diff --git a/data/const/manager/manager12.s b/data/const/manager/manager12.s deleted file mode 100644 index b25916f7..00000000 --- a/data/const/manager/manager12.s +++ /dev/null @@ -1,49 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - .align 2 - -gUnk_08108398:: @ 08108398 - .incbin "manager12/gUnk_08108398.bin" - -gUnk_081083AE:: @ 081083AE - .incbin "manager12/gUnk_081083AE.bin" - -gUnk_081083C4:: @ 081083C4 - .incbin "manager12/gUnk_081083C4.bin" - -gUnk_081083DA:: @ 081083DA - .incbin "manager12/gUnk_081083DA.bin" - -gUnk_081083F2:: @ 081083F2 - .incbin "manager12/gUnk_081083F2.bin" - -gUnk_08108408:: @ 08108408 -.ifdef EU - @ TODO only small differences - .incbin "manager12/gUnk_08108408_EU.bin" -.else - .incbin "manager12/gUnk_08108408_1_USA-JP-DEMO_USA-DEMO_JP.bin" -.endif -.ifdef EU - @ TODO only small differences - .incbin "manager12/gUnk_08108408_2_EU.bin" -.else - .incbin "manager12/gUnk_08108408_3_USA-JP-DEMO_USA-DEMO_JP.bin" -.endif - -gUnk_08108468:: @ 08108468 -.ifdef EU - @ TODO only small differences - .incbin "manager12/gUnk_08108468_EU.bin" -.else - .incbin "manager12/gUnk_08108468_1_USA-JP-DEMO_USA-DEMO_JP.bin" -.endif -.ifdef EU - @ TODO only small differences - .incbin "manager12/gUnk_08108468_2_EU.bin" -.else - .incbin "manager12/gUnk_08108468_3_USA-JP-DEMO_USA-DEMO_JP.bin" -.endif - .incbin "manager12/gUnk_08108468_4.bin" diff --git a/linker.ld b/linker.ld index 305e9e45..0423a30b 100644 --- a/linker.ld +++ b/linker.ld @@ -1119,7 +1119,7 @@ SECTIONS { src/manager/managerD.o(.rodata); src/manager/managerF.o(.rodata); src/manager/manager10.o(.rodata); - data/const/manager/manager12.o(.rodata); + src/manager/manager12.o(.rodata); data/const/manager/manager13.o(.rodata); src/manager/manager14.o(.rodata); data/const/manager/manager15.o(.rodata); diff --git a/src/main.c b/src/main.c index b05555a5..1fa74dcd 100644 --- a/src/main.c +++ b/src/main.c @@ -279,8 +279,8 @@ u32 CheckRegionOnScreen(u32 x0, u32 y0, u32 x1, u32 y1) { } // Iterate over array of AABBs and check if any fit on screen -u16 CheckRegionsOnScreen(u16* arr) { - u16* i; +u16 CheckRegionsOnScreen(const u16* arr) { + const u16* i; for (i = arr; *i != 0xff; i += 5) { if (CheckRegionOnScreen(i[1], i[2], i[3], i[4])) return *i; diff --git a/src/manager/manager12.c b/src/manager/manager12.c index 9bc1eb23..0f947039 100644 --- a/src/manager/manager12.c +++ b/src/manager/manager12.c @@ -13,20 +13,19 @@ typedef struct { } Manager12; void sub_08059A58(Manager12*); - void sub_08059A2C(Manager12*); +u32 CheckRegionsOnScreen(const u16* arr); -u32 CheckRegionsOnScreen(u16* arr); -extern u16 gUnk_081083DA; -extern u16 gUnk_081083F2; -extern u16 gUnk_08108398; -extern u16 gUnk_081083AE; -extern u16 gUnk_081083C4; +static const u16 gUnk_08108398[] = { 0x0, 0x0, 0x0, 0x3f0, 0x200, 0x1, 0x0, 0x280, 0x3f0, 0x140, 0xff }; +static const u16 gUnk_081083AE[] = { 0x2, 0x0, 0x0, 0x180, 0x3c0, 0x3, 0x280, 0x0, 0x170, 0x3c0, 0xff }; +static const u16 gUnk_081083C4[] = { 0x5, 0x130, 0x1b0, 0x190, 0x140, 0x4, 0x0, 0x0, 0x3f0, 0x3c0, 0xff }; +static const u16 gUnk_081083DA[] = { 0x0, 0x0, 0x0, 0x190, 0x1d0, 0x1, 0x0, 0x2a0, 0x190, 0x120, 0xff, 0xff }; +static const u16 gUnk_081083F2[] = { 0x5, 0x0, 0x1b0, 0x190, 0x140, 0x4, 0x0, 0x0, 0x190, 0x3c0, 0xff }; void sub_08059CC0(u32, u32); void sub_08059B18(void); -bool32 sub_08059C8C(Manager12*, u32, u8*, u16*); +bool32 sub_08059C8C(Manager12*, u32, u8*, const u16*); extern u32 gUnk_086E8460; @@ -37,8 +36,28 @@ typedef struct { u32 field_0xc; } Unknown; -extern Unknown gUnk_08108468[]; -extern Unknown gUnk_08108408[]; +static const Unknown gUnk_08108408[] = { +#ifdef EU + { 0x139860, 0x6000000, 0x13f860, 0x6008000 }, { 0x13c860, 0x6000000, 0x142860, 0x6008000 }, + { 0x13a860, 0x6001000, 0x140860, 0x6009000 }, { 0x13d860, 0x6001000, 0x143860, 0x6009000 }, + { 0x13b860, 0x6002000, 0x141860, 0x600a000 }, { 0x13e860, 0x6002000, 0x144860, 0x600a000 } +#else + { 0x1395e0, 0x6000000, 0x13f5e0, 0x6008000 }, { 0x13c5e0, 0x6000000, 0x1425e0, 0x6008000 }, + { 0x13a5e0, 0x6001000, 0x1405e0, 0x6009000 }, { 0x13d5e0, 0x6001000, 0x1435e0, 0x6009000 }, + { 0x13b5e0, 0x6002000, 0x1415e0, 0x600a000 }, { 0x13e5e0, 0x6002000, 0x1445e0, 0x600a000 } +#endif +}; +static const Unknown gUnk_08108468[] = { +#ifdef EU + { 0x146060, 0x6000000, 0x14c060, 0x6008000 }, { 0x149060, 0x6000000, 0x14f060, 0x6008000 }, + { 0x147060, 0x6001000, 0x14d060, 0x6009000 }, { 0x14a060, 0x6001000, 0x150060, 0x6009000 }, + { 0x148060, 0x6002000, 0x14e060, 0x600a000 }, { 0x14b060, 0x6002000, 0x151060, 0x600a000 }, +#else + { 0x145de0, 0x6000000, 0x14bde0, 0x6008000 }, { 0x148de0, 0x6000000, 0x14ede0, 0x6008000 }, + { 0x146de0, 0x6001000, 0x14cde0, 0x6009000 }, { 0x149de0, 0x6001000, 0x14fde0, 0x6009000 }, + { 0x147de0, 0x6002000, 0x14dde0, 0x600a000 }, { 0x14ade0, 0x6002000, 0x150de0, 0x600a000 }, +#endif +}; extern const u8 gGlobalGfxAndPalettes[]; void Manager12_Main(Manager12* this) { @@ -65,23 +84,23 @@ void sub_08059A2C(Manager12* this) { void sub_08059A58(Manager12* this) { if (gRoomControls.area != AREA_FESTIVAL_TOWN) { - if (sub_08059C8C(this, 0, &this->field_0x20, &gUnk_08108398) != 0) { + if (sub_08059C8C(this, 0, &this->field_0x20, gUnk_08108398) != 0) { sub_08059CC0(0, (u32)this->field_0x20); } - if (sub_08059C8C(this, 1, &this->field_0x21, &gUnk_081083AE) != 0) { + if (sub_08059C8C(this, 1, &this->field_0x21, gUnk_081083AE) != 0) { sub_08059CC0(1, this->field_0x21); if (this->field_0x21 == 2) { sub_08059B18(); } } - if (sub_08059C8C(this, 2, &this->field_0x22, &gUnk_081083C4) != 0) { + if (sub_08059C8C(this, 2, &this->field_0x22, gUnk_081083C4) != 0) { sub_08059CC0(2, (u32)this->field_0x22); } } else { - if (sub_08059C8C(this, 0, &this->field_0x20, &gUnk_081083DA) != 0) { + if (sub_08059C8C(this, 0, &this->field_0x20, gUnk_081083DA) != 0) { sub_08059CC0(0, (u32)this->field_0x20); } - if (sub_08059C8C(this, 2, &this->field_0x22, &gUnk_081083F2) != 0) { + if (sub_08059C8C(this, 2, &this->field_0x22, gUnk_081083F2) != 0) { sub_08059CC0(2, (u32)this->field_0x22); } } @@ -125,7 +144,7 @@ void sub_08059B18(void) { } } -bool32 sub_08059C8C(Manager12* this, u32 param_2, u8* param_3, u16* param_4) { +bool32 sub_08059C8C(Manager12* this, u32 param_2, u8* param_3, const u16* param_4) { bool32 bVar2; *param_3 = CheckRegionsOnScreen(param_4); @@ -138,7 +157,7 @@ bool32 sub_08059C8C(Manager12* this, u32 param_2, u8* param_3, u16* param_4) { } void sub_08059CC0(u32 param_1, u32 param_2) { - Unknown* unknown; + const Unknown* unknown; gRoomVars.unk_10[param_1] = param_2; if (gRoomControls.area != AREA_FESTIVAL_TOWN) { @@ -154,24 +173,24 @@ void TryLoadPrologueHyruleTown(void) { u32 tmp; if (gRoomControls.area != AREA_FESTIVAL_TOWN) { - tmp = CheckRegionsOnScreen(&gUnk_08108398); + tmp = CheckRegionsOnScreen(gUnk_08108398); if (tmp != 0xff) { sub_08059CC0(0, tmp); } - tmp = CheckRegionsOnScreen(&gUnk_081083AE); + tmp = CheckRegionsOnScreen(gUnk_081083AE); if ((tmp != 0xff) && (sub_08059CC0(1, tmp), tmp == 2)) { sub_08059B18(); } - tmp = CheckRegionsOnScreen(&gUnk_081083C4); + tmp = CheckRegionsOnScreen(gUnk_081083C4); if (tmp != 0xff) { sub_08059CC0(2, tmp); } } else { - tmp = CheckRegionsOnScreen(&gUnk_081083DA); + tmp = CheckRegionsOnScreen(gUnk_081083DA); if (tmp != 0xff) { sub_08059CC0(0, tmp); } - tmp = CheckRegionsOnScreen(&gUnk_081083F2); + tmp = CheckRegionsOnScreen(gUnk_081083F2); if (tmp != 0xff) { sub_08059CC0(2, tmp); }