diff --git a/asm/Z2AudioLib/Z2EnvSeMgr/initStrongWindSe__10Z2EnvSeMgrFv.s b/asm/Z2AudioLib/Z2EnvSeMgr/initStrongWindSe__10Z2EnvSeMgrFv.s deleted file mode 100644 index bf3d9c612d9..00000000000 --- a/asm/Z2AudioLib/Z2EnvSeMgr/initStrongWindSe__10Z2EnvSeMgrFv.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_802C7FBC: -/* 802C7FBC 38 00 00 03 */ li r0, 3 -/* 802C7FC0 98 03 01 60 */ stb r0, 0x160(r3) -/* 802C7FC4 4E 80 00 20 */ blr diff --git a/asm/Z2AudioLib/Z2EnvSeMgr/registEtcSePos__10Z2EnvSeMgrFP3Vec.s b/asm/Z2AudioLib/Z2EnvSeMgr/registEtcSePos__10Z2EnvSeMgrFP3Vec.s deleted file mode 100644 index 0f30937d017..00000000000 --- a/asm/Z2AudioLib/Z2EnvSeMgr/registEtcSePos__10Z2EnvSeMgrFP3Vec.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_802C8C24: -/* 802C8C24 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802C8C28 7C 08 02 A6 */ mflr r0 -/* 802C8C2C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802C8C30 38 63 01 F0 */ addi r3, r3, 0x1f0 -/* 802C8C34 4B FE 5F 3D */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802C8C38 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802C8C3C 7C 08 03 A6 */ mtlr r0 -/* 802C8C40 38 21 00 10 */ addi r1, r1, 0x10 -/* 802C8C44 4E 80 00 20 */ blr diff --git a/asm/Z2AudioLib/Z2EnvSeMgr/registFallSePos__10Z2EnvSeMgrFP3Vec.s b/asm/Z2AudioLib/Z2EnvSeMgr/registFallSePos__10Z2EnvSeMgrFP3Vec.s deleted file mode 100644 index aa276a6a675..00000000000 --- a/asm/Z2AudioLib/Z2EnvSeMgr/registFallSePos__10Z2EnvSeMgrFP3Vec.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_802C886C: -/* 802C886C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802C8870 7C 08 02 A6 */ mflr r0 -/* 802C8874 90 01 00 14 */ stw r0, 0x14(r1) -/* 802C8878 38 63 01 BC */ addi r3, r3, 0x1bc -/* 802C887C 4B FE 62 F5 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802C8880 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802C8884 7C 08 03 A6 */ mtlr r0 -/* 802C8888 38 21 00 10 */ addi r1, r1, 0x10 -/* 802C888C 4E 80 00 20 */ blr diff --git a/asm/Z2AudioLib/Z2EnvSeMgr/registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec.s b/asm/Z2AudioLib/Z2EnvSeMgr/registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec.s deleted file mode 100644 index 356f09d1f0d..00000000000 --- a/asm/Z2AudioLib/Z2EnvSeMgr/registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec.s +++ /dev/null @@ -1,560 +0,0 @@ -lbl_802C9F58: -/* 802C9F58 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802C9F5C 7C 08 02 A6 */ mflr r0 -/* 802C9F60 90 01 00 24 */ stw r0, 0x24(r1) -/* 802C9F64 39 61 00 20 */ addi r11, r1, 0x20 -/* 802C9F68 48 09 82 71 */ bl _savegpr_28 -/* 802C9F6C 7C 7D 1B 78 */ mr r29, r3 -/* 802C9F70 7C 9E 23 78 */ mr r30, r4 -/* 802C9F74 7C BF 2B 78 */ mr r31, r5 -/* 802C9F78 54 83 06 3E */ clrlwi r3, r4, 0x18 -/* 802C9F7C 38 03 FF 92 */ addi r0, r3, -110 -/* 802C9F80 28 00 00 09 */ cmplwi r0, 9 -/* 802C9F84 41 81 00 4C */ bgt lbl_802C9FD0 -/* 802C9F88 3C 60 80 3D */ lis r3, lit_5258@ha /* 0x803CBC28@ha */ -/* 802C9F8C 38 63 BC 28 */ addi r3, r3, lit_5258@l /* 0x803CBC28@l */ -/* 802C9F90 54 00 10 3A */ slwi r0, r0, 2 -/* 802C9F94 7C 03 00 2E */ lwzx r0, r3, r0 -/* 802C9F98 7C 09 03 A6 */ mtctr r0 -/* 802C9F9C 4E 80 04 20 */ bctr -/* 802C9FA0 38 7D 02 24 */ addi r3, r29, 0x224 -/* 802C9FA4 7F E4 FB 78 */ mr r4, r31 -/* 802C9FA8 4B FE 4B C9 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802C9FAC 48 00 07 D0 */ b lbl_802CA77C -/* 802C9FB0 38 7D 02 58 */ addi r3, r29, 0x258 -/* 802C9FB4 7F E4 FB 78 */ mr r4, r31 -/* 802C9FB8 4B FE 4B B9 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802C9FBC 48 00 07 C0 */ b lbl_802CA77C -/* 802C9FC0 38 7D 02 8C */ addi r3, r29, 0x28c -/* 802C9FC4 7F E4 FB 78 */ mr r4, r31 -/* 802C9FC8 4B FE 4B A9 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802C9FCC 48 00 07 B0 */ b lbl_802CA77C -lbl_802C9FD0: -/* 802C9FD0 80 6D 86 00 */ lwz r3, __OSReport_disable-0x18(r13) -/* 802C9FD4 88 03 00 0C */ lbz r0, 0xc(r3) -/* 802C9FD8 7C 00 07 74 */ extsb r0, r0 -/* 802C9FDC 28 00 00 0D */ cmplwi r0, 0xd -/* 802C9FE0 41 81 07 9C */ bgt lbl_802CA77C -/* 802C9FE4 3C 60 80 3D */ lis r3, lit_5259@ha /* 0x803CBBF0@ha */ -/* 802C9FE8 38 63 BB F0 */ addi r3, r3, lit_5259@l /* 0x803CBBF0@l */ -/* 802C9FEC 54 00 10 3A */ slwi r0, r0, 2 -/* 802C9FF0 7C 03 00 2E */ lwzx r0, r3, r0 -/* 802C9FF4 7C 09 03 A6 */ mtctr r0 -/* 802C9FF8 4E 80 04 20 */ bctr -/* 802C9FFC 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 802CA000 28 00 00 6B */ cmplwi r0, 0x6b -/* 802CA004 40 82 00 10 */ bne lbl_802CA014 -/* 802CA008 38 7D 01 BC */ addi r3, r29, 0x1bc -/* 802CA00C 7F E4 FB 78 */ mr r4, r31 -/* 802CA010 4B FE 4B 61 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -lbl_802CA014: -/* 802CA014 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 802CA018 28 00 00 64 */ cmplwi r0, 0x64 -/* 802CA01C 40 82 07 60 */ bne lbl_802CA77C -/* 802CA020 38 7D 01 F0 */ addi r3, r29, 0x1f0 -/* 802CA024 7F E4 FB 78 */ mr r4, r31 -/* 802CA028 4B FE 4B 49 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA02C 48 00 07 50 */ b lbl_802CA77C -/* 802CA030 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 802CA034 28 00 00 64 */ cmplwi r0, 0x64 -/* 802CA038 40 82 00 14 */ bne lbl_802CA04C -/* 802CA03C 38 7D 01 F0 */ addi r3, r29, 0x1f0 -/* 802CA040 7F E4 FB 78 */ mr r4, r31 -/* 802CA044 4B FE 4B 2D */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA048 48 00 07 34 */ b lbl_802CA77C -lbl_802CA04C: -/* 802CA04C 28 00 00 67 */ cmplwi r0, 0x67 -/* 802CA050 40 82 00 30 */ bne lbl_802CA080 -/* 802CA054 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 802CA058 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 802CA05C 38 63 09 58 */ addi r3, r3, 0x958 -/* 802CA060 38 80 00 08 */ li r4, 8 -/* 802CA064 4B D6 A7 FD */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA068 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA06C 41 82 00 14 */ beq lbl_802CA080 -/* 802CA070 38 7D 02 24 */ addi r3, r29, 0x224 -/* 802CA074 7F E4 FB 78 */ mr r4, r31 -/* 802CA078 4B FE 4A F9 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA07C 48 00 07 00 */ b lbl_802CA77C -lbl_802CA080: -/* 802CA080 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 802CA084 28 00 00 68 */ cmplwi r0, 0x68 -/* 802CA088 40 82 00 30 */ bne lbl_802CA0B8 -/* 802CA08C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 802CA090 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 802CA094 38 63 09 58 */ addi r3, r3, 0x958 -/* 802CA098 38 80 00 09 */ li r4, 9 -/* 802CA09C 4B D6 A7 C5 */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA0A0 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA0A4 41 82 00 14 */ beq lbl_802CA0B8 -/* 802CA0A8 38 7D 02 24 */ addi r3, r29, 0x224 -/* 802CA0AC 7F E4 FB 78 */ mr r4, r31 -/* 802CA0B0 4B FE 4A C1 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA0B4 48 00 06 C8 */ b lbl_802CA77C -lbl_802CA0B8: -/* 802CA0B8 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 802CA0BC 28 00 00 69 */ cmplwi r0, 0x69 -/* 802CA0C0 40 82 00 48 */ bne lbl_802CA108 -/* 802CA0C4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 802CA0C8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 802CA0CC 3B 83 09 58 */ addi r28, r3, 0x958 -/* 802CA0D0 7F 83 E3 78 */ mr r3, r28 -/* 802CA0D4 38 80 00 08 */ li r4, 8 -/* 802CA0D8 4B D6 A7 89 */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA0DC 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA0E0 41 82 00 28 */ beq lbl_802CA108 -/* 802CA0E4 7F 83 E3 78 */ mr r3, r28 -/* 802CA0E8 38 80 00 03 */ li r4, 3 -/* 802CA0EC 4B D6 A7 75 */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA0F0 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA0F4 41 82 00 14 */ beq lbl_802CA108 -/* 802CA0F8 38 7D 02 24 */ addi r3, r29, 0x224 -/* 802CA0FC 7F E4 FB 78 */ mr r4, r31 -/* 802CA100 4B FE 4A 71 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA104 48 00 06 78 */ b lbl_802CA77C -lbl_802CA108: -/* 802CA108 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 802CA10C 28 00 00 6A */ cmplwi r0, 0x6a -/* 802CA110 40 82 06 6C */ bne lbl_802CA77C -/* 802CA114 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 802CA118 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 802CA11C 3B 83 09 58 */ addi r28, r3, 0x958 -/* 802CA120 7F 83 E3 78 */ mr r3, r28 -/* 802CA124 38 80 00 09 */ li r4, 9 -/* 802CA128 4B D6 A7 39 */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA12C 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA130 41 82 06 4C */ beq lbl_802CA77C -/* 802CA134 7F 83 E3 78 */ mr r3, r28 -/* 802CA138 38 80 00 01 */ li r4, 1 -/* 802CA13C 4B D6 A7 25 */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA140 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA144 41 82 06 38 */ beq lbl_802CA77C -/* 802CA148 38 7D 02 24 */ addi r3, r29, 0x224 -/* 802CA14C 7F E4 FB 78 */ mr r4, r31 -/* 802CA150 4B FE 4A 21 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA154 48 00 06 28 */ b lbl_802CA77C -/* 802CA158 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 802CA15C 28 00 00 64 */ cmplwi r0, 0x64 -/* 802CA160 40 82 00 48 */ bne lbl_802CA1A8 -/* 802CA164 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 802CA168 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 802CA16C 3B 83 09 58 */ addi r28, r3, 0x958 -/* 802CA170 7F 83 E3 78 */ mr r3, r28 -/* 802CA174 38 80 00 08 */ li r4, 8 -/* 802CA178 4B D6 A6 E9 */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA17C 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA180 40 82 00 28 */ bne lbl_802CA1A8 -/* 802CA184 7F 83 E3 78 */ mr r3, r28 -/* 802CA188 38 80 00 09 */ li r4, 9 -/* 802CA18C 4B D6 A6 D5 */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA190 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA194 40 82 00 14 */ bne lbl_802CA1A8 -/* 802CA198 38 7D 01 F0 */ addi r3, r29, 0x1f0 -/* 802CA19C 7F E4 FB 78 */ mr r4, r31 -/* 802CA1A0 4B FE 49 D1 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA1A4 48 00 00 C8 */ b lbl_802CA26C -lbl_802CA1A8: -/* 802CA1A8 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 802CA1AC 28 00 00 65 */ cmplwi r0, 0x65 -/* 802CA1B0 40 82 00 38 */ bne lbl_802CA1E8 -/* 802CA1B4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 802CA1B8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 802CA1BC 3B 83 09 58 */ addi r28, r3, 0x958 -/* 802CA1C0 7F 83 E3 78 */ mr r3, r28 -/* 802CA1C4 38 80 00 08 */ li r4, 8 -/* 802CA1C8 4B D6 A6 99 */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA1CC 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA1D0 41 82 00 18 */ beq lbl_802CA1E8 -/* 802CA1D4 7F 83 E3 78 */ mr r3, r28 -/* 802CA1D8 38 80 00 09 */ li r4, 9 -/* 802CA1DC 4B D6 A6 85 */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA1E0 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA1E4 41 82 00 38 */ beq lbl_802CA21C -lbl_802CA1E8: -/* 802CA1E8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 802CA1EC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 802CA1F0 3B 83 09 58 */ addi r28, r3, 0x958 -/* 802CA1F4 7F 83 E3 78 */ mr r3, r28 -/* 802CA1F8 38 80 00 08 */ li r4, 8 -/* 802CA1FC 4B D6 A6 65 */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA200 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA204 40 82 00 28 */ bne lbl_802CA22C -/* 802CA208 7F 83 E3 78 */ mr r3, r28 -/* 802CA20C 38 80 00 09 */ li r4, 9 -/* 802CA210 4B D6 A6 51 */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA214 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA218 41 82 00 14 */ beq lbl_802CA22C -lbl_802CA21C: -/* 802CA21C 38 7D 01 F0 */ addi r3, r29, 0x1f0 -/* 802CA220 7F E4 FB 78 */ mr r4, r31 -/* 802CA224 4B FE 49 4D */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA228 48 00 00 44 */ b lbl_802CA26C -lbl_802CA22C: -/* 802CA22C 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 802CA230 28 00 00 66 */ cmplwi r0, 0x66 -/* 802CA234 40 82 00 38 */ bne lbl_802CA26C -/* 802CA238 7F 83 E3 78 */ mr r3, r28 -/* 802CA23C 38 80 00 08 */ li r4, 8 -/* 802CA240 4B D6 A6 21 */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA244 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA248 41 82 00 24 */ beq lbl_802CA26C -/* 802CA24C 7F 83 E3 78 */ mr r3, r28 -/* 802CA250 38 80 00 09 */ li r4, 9 -/* 802CA254 4B D6 A6 0D */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA258 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA25C 41 82 00 10 */ beq lbl_802CA26C -/* 802CA260 38 7D 01 F0 */ addi r3, r29, 0x1f0 -/* 802CA264 7F E4 FB 78 */ mr r4, r31 -/* 802CA268 4B FE 49 09 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -lbl_802CA26C: -/* 802CA26C 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 802CA270 28 00 00 67 */ cmplwi r0, 0x67 -/* 802CA274 40 82 00 2C */ bne lbl_802CA2A0 -/* 802CA278 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 802CA27C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 802CA280 38 63 09 58 */ addi r3, r3, 0x958 -/* 802CA284 38 80 00 08 */ li r4, 8 -/* 802CA288 4B D6 A5 D9 */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA28C 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA290 41 82 00 10 */ beq lbl_802CA2A0 -/* 802CA294 38 7D 02 24 */ addi r3, r29, 0x224 -/* 802CA298 7F E4 FB 78 */ mr r4, r31 -/* 802CA29C 4B FE 48 D5 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -lbl_802CA2A0: -/* 802CA2A0 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 802CA2A4 28 00 00 68 */ cmplwi r0, 0x68 -/* 802CA2A8 40 82 00 2C */ bne lbl_802CA2D4 -/* 802CA2AC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 802CA2B0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 802CA2B4 38 63 09 58 */ addi r3, r3, 0x958 -/* 802CA2B8 38 80 00 09 */ li r4, 9 -/* 802CA2BC 4B D6 A5 A5 */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA2C0 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA2C4 41 82 00 10 */ beq lbl_802CA2D4 -/* 802CA2C8 38 7D 02 24 */ addi r3, r29, 0x224 -/* 802CA2CC 7F E4 FB 78 */ mr r4, r31 -/* 802CA2D0 4B FE 48 A1 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -lbl_802CA2D4: -/* 802CA2D4 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 802CA2D8 28 00 00 69 */ cmplwi r0, 0x69 -/* 802CA2DC 40 82 00 48 */ bne lbl_802CA324 -/* 802CA2E0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 802CA2E4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 802CA2E8 3B 83 09 58 */ addi r28, r3, 0x958 -/* 802CA2EC 7F 83 E3 78 */ mr r3, r28 -/* 802CA2F0 38 80 00 08 */ li r4, 8 -/* 802CA2F4 4B D6 A5 6D */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA2F8 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA2FC 41 82 00 28 */ beq lbl_802CA324 -/* 802CA300 7F 83 E3 78 */ mr r3, r28 -/* 802CA304 38 80 00 03 */ li r4, 3 -/* 802CA308 4B D6 A5 59 */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA30C 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA310 41 82 00 14 */ beq lbl_802CA324 -/* 802CA314 38 7D 02 8C */ addi r3, r29, 0x28c -/* 802CA318 7F E4 FB 78 */ mr r4, r31 -/* 802CA31C 4B FE 48 55 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA320 48 00 00 50 */ b lbl_802CA370 -lbl_802CA324: -/* 802CA324 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 802CA328 28 00 00 6B */ cmplwi r0, 0x6b -/* 802CA32C 40 82 00 44 */ bne lbl_802CA370 -/* 802CA330 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 802CA334 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 802CA338 3B 83 09 58 */ addi r28, r3, 0x958 -/* 802CA33C 7F 83 E3 78 */ mr r3, r28 -/* 802CA340 38 80 00 08 */ li r4, 8 -/* 802CA344 4B D6 A5 1D */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA348 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA34C 41 82 00 24 */ beq lbl_802CA370 -/* 802CA350 7F 83 E3 78 */ mr r3, r28 -/* 802CA354 38 80 00 03 */ li r4, 3 -/* 802CA358 4B D6 A5 09 */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA35C 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA360 40 82 00 10 */ bne lbl_802CA370 -/* 802CA364 38 7D 02 58 */ addi r3, r29, 0x258 -/* 802CA368 7F E4 FB 78 */ mr r4, r31 -/* 802CA36C 4B FE 48 05 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -lbl_802CA370: -/* 802CA370 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 802CA374 28 00 00 6A */ cmplwi r0, 0x6a -/* 802CA378 40 82 00 48 */ bne lbl_802CA3C0 -/* 802CA37C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 802CA380 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 802CA384 3B 83 09 58 */ addi r28, r3, 0x958 -/* 802CA388 7F 83 E3 78 */ mr r3, r28 -/* 802CA38C 38 80 00 09 */ li r4, 9 -/* 802CA390 4B D6 A4 D1 */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA394 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA398 41 82 00 28 */ beq lbl_802CA3C0 -/* 802CA39C 7F 83 E3 78 */ mr r3, r28 -/* 802CA3A0 38 80 00 01 */ li r4, 1 -/* 802CA3A4 4B D6 A4 BD */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA3A8 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA3AC 41 82 00 14 */ beq lbl_802CA3C0 -/* 802CA3B0 38 7D 02 8C */ addi r3, r29, 0x28c -/* 802CA3B4 7F E4 FB 78 */ mr r4, r31 -/* 802CA3B8 4B FE 47 B9 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA3BC 48 00 03 C0 */ b lbl_802CA77C -lbl_802CA3C0: -/* 802CA3C0 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 802CA3C4 28 00 00 6C */ cmplwi r0, 0x6c -/* 802CA3C8 40 82 03 B4 */ bne lbl_802CA77C -/* 802CA3CC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 802CA3D0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 802CA3D4 3B 83 09 58 */ addi r28, r3, 0x958 -/* 802CA3D8 7F 83 E3 78 */ mr r3, r28 -/* 802CA3DC 38 80 00 09 */ li r4, 9 -/* 802CA3E0 4B D6 A4 81 */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA3E4 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA3E8 41 82 03 94 */ beq lbl_802CA77C -/* 802CA3EC 7F 83 E3 78 */ mr r3, r28 -/* 802CA3F0 38 80 00 01 */ li r4, 1 -/* 802CA3F4 4B D6 A4 6D */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA3F8 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA3FC 40 82 03 80 */ bne lbl_802CA77C -/* 802CA400 38 7D 02 58 */ addi r3, r29, 0x258 -/* 802CA404 7F E4 FB 78 */ mr r4, r31 -/* 802CA408 4B FE 47 69 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA40C 48 00 03 70 */ b lbl_802CA77C -/* 802CA410 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 802CA414 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 802CA418 38 63 09 58 */ addi r3, r3, 0x958 -/* 802CA41C 38 80 00 08 */ li r4, 8 -/* 802CA420 4B D6 A4 41 */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA424 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA428 41 82 03 54 */ beq lbl_802CA77C -/* 802CA42C 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 802CA430 28 00 00 67 */ cmplwi r0, 0x67 -/* 802CA434 40 82 00 14 */ bne lbl_802CA448 -/* 802CA438 38 7D 02 24 */ addi r3, r29, 0x224 -/* 802CA43C 7F E4 FB 78 */ mr r4, r31 -/* 802CA440 4B FE 47 31 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA444 48 00 03 38 */ b lbl_802CA77C -lbl_802CA448: -/* 802CA448 28 00 00 6B */ cmplwi r0, 0x6b -/* 802CA44C 40 82 03 30 */ bne lbl_802CA77C -/* 802CA450 38 7D 01 BC */ addi r3, r29, 0x1bc -/* 802CA454 7F E4 FB 78 */ mr r4, r31 -/* 802CA458 4B FE 47 19 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA45C 48 00 03 20 */ b lbl_802CA77C -/* 802CA460 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 802CA464 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 802CA468 3B 83 09 58 */ addi r28, r3, 0x958 -/* 802CA46C 7F 83 E3 78 */ mr r3, r28 -/* 802CA470 38 80 00 09 */ li r4, 9 -/* 802CA474 4B D6 A3 ED */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA478 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA47C 41 82 00 64 */ beq lbl_802CA4E0 -/* 802CA480 7F 83 E3 78 */ mr r3, r28 -/* 802CA484 38 80 00 01 */ li r4, 1 -/* 802CA488 4B D6 A3 D9 */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA48C 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA490 41 82 00 50 */ beq lbl_802CA4E0 -/* 802CA494 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 802CA498 28 00 00 65 */ cmplwi r0, 0x65 -/* 802CA49C 40 82 00 14 */ bne lbl_802CA4B0 -/* 802CA4A0 38 7D 01 F0 */ addi r3, r29, 0x1f0 -/* 802CA4A4 7F E4 FB 78 */ mr r4, r31 -/* 802CA4A8 4B FE 46 C9 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA4AC 48 00 02 D0 */ b lbl_802CA77C -lbl_802CA4B0: -/* 802CA4B0 28 00 00 67 */ cmplwi r0, 0x67 -/* 802CA4B4 40 82 00 14 */ bne lbl_802CA4C8 -/* 802CA4B8 38 7D 02 24 */ addi r3, r29, 0x224 -/* 802CA4BC 7F E4 FB 78 */ mr r4, r31 -/* 802CA4C0 4B FE 46 B1 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA4C4 48 00 02 B8 */ b lbl_802CA77C -lbl_802CA4C8: -/* 802CA4C8 28 00 00 6B */ cmplwi r0, 0x6b -/* 802CA4CC 40 82 02 B0 */ bne lbl_802CA77C -/* 802CA4D0 38 7D 02 58 */ addi r3, r29, 0x258 -/* 802CA4D4 7F E4 FB 78 */ mr r4, r31 -/* 802CA4D8 4B FE 46 99 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA4DC 48 00 02 A0 */ b lbl_802CA77C -lbl_802CA4E0: -/* 802CA4E0 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 802CA4E4 28 00 00 64 */ cmplwi r0, 0x64 -/* 802CA4E8 40 82 02 94 */ bne lbl_802CA77C -/* 802CA4EC 38 7D 01 F0 */ addi r3, r29, 0x1f0 -/* 802CA4F0 7F E4 FB 78 */ mr r4, r31 -/* 802CA4F4 4B FE 46 7D */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA4F8 48 00 02 84 */ b lbl_802CA77C -/* 802CA4FC 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 802CA500 28 00 00 64 */ cmplwi r0, 0x64 -/* 802CA504 40 82 00 30 */ bne lbl_802CA534 -/* 802CA508 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 802CA50C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 802CA510 38 63 09 58 */ addi r3, r3, 0x958 -/* 802CA514 38 80 00 31 */ li r4, 0x31 -/* 802CA518 4B D6 A3 49 */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA51C 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA520 41 82 00 14 */ beq lbl_802CA534 -/* 802CA524 38 7D 01 F0 */ addi r3, r29, 0x1f0 -/* 802CA528 7F E4 FB 78 */ mr r4, r31 -/* 802CA52C 4B FE 46 45 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA530 48 00 02 4C */ b lbl_802CA77C -lbl_802CA534: -/* 802CA534 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 802CA538 28 00 00 67 */ cmplwi r0, 0x67 -/* 802CA53C 40 82 00 30 */ bne lbl_802CA56C -/* 802CA540 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 802CA544 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 802CA548 38 63 09 58 */ addi r3, r3, 0x958 -/* 802CA54C 38 80 00 31 */ li r4, 0x31 -/* 802CA550 4B D6 A3 11 */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA554 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA558 41 82 00 14 */ beq lbl_802CA56C -/* 802CA55C 38 7D 02 8C */ addi r3, r29, 0x28c -/* 802CA560 7F E4 FB 78 */ mr r4, r31 -/* 802CA564 4B FE 46 0D */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA568 48 00 02 14 */ b lbl_802CA77C -lbl_802CA56C: -/* 802CA56C 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 802CA570 28 00 00 68 */ cmplwi r0, 0x68 -/* 802CA574 40 82 00 30 */ bne lbl_802CA5A4 -/* 802CA578 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 802CA57C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 802CA580 38 63 09 58 */ addi r3, r3, 0x958 -/* 802CA584 38 80 00 08 */ li r4, 8 -/* 802CA588 4B D6 A2 D9 */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA58C 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA590 41 82 00 14 */ beq lbl_802CA5A4 -/* 802CA594 38 7D 02 58 */ addi r3, r29, 0x258 -/* 802CA598 7F E4 FB 78 */ mr r4, r31 -/* 802CA59C 4B FE 45 D5 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA5A0 48 00 01 DC */ b lbl_802CA77C -lbl_802CA5A4: -/* 802CA5A4 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 802CA5A8 28 00 00 6B */ cmplwi r0, 0x6b -/* 802CA5AC 40 82 01 D0 */ bne lbl_802CA77C -/* 802CA5B0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 802CA5B4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 802CA5B8 38 63 09 58 */ addi r3, r3, 0x958 -/* 802CA5BC 38 80 00 31 */ li r4, 0x31 -/* 802CA5C0 4B D6 A2 A1 */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA5C4 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA5C8 41 82 01 B4 */ beq lbl_802CA77C -/* 802CA5CC 38 7D 01 BC */ addi r3, r29, 0x1bc -/* 802CA5D0 7F E4 FB 78 */ mr r4, r31 -/* 802CA5D4 4B FE 45 9D */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA5D8 48 00 01 A4 */ b lbl_802CA77C -/* 802CA5DC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 802CA5E0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 802CA5E4 38 63 09 58 */ addi r3, r3, 0x958 -/* 802CA5E8 38 80 00 09 */ li r4, 9 -/* 802CA5EC 4B D6 A2 75 */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA5F0 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA5F4 41 82 00 50 */ beq lbl_802CA644 -/* 802CA5F8 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 802CA5FC 28 00 00 65 */ cmplwi r0, 0x65 -/* 802CA600 40 82 00 14 */ bne lbl_802CA614 -/* 802CA604 38 7D 01 F0 */ addi r3, r29, 0x1f0 -/* 802CA608 7F E4 FB 78 */ mr r4, r31 -/* 802CA60C 4B FE 45 65 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA610 48 00 01 6C */ b lbl_802CA77C -lbl_802CA614: -/* 802CA614 28 00 00 67 */ cmplwi r0, 0x67 -/* 802CA618 40 82 00 14 */ bne lbl_802CA62C -/* 802CA61C 38 7D 02 24 */ addi r3, r29, 0x224 -/* 802CA620 7F E4 FB 78 */ mr r4, r31 -/* 802CA624 4B FE 45 4D */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA628 48 00 01 54 */ b lbl_802CA77C -lbl_802CA62C: -/* 802CA62C 28 00 00 6B */ cmplwi r0, 0x6b -/* 802CA630 40 82 01 4C */ bne lbl_802CA77C -/* 802CA634 38 7D 01 BC */ addi r3, r29, 0x1bc -/* 802CA638 7F E4 FB 78 */ mr r4, r31 -/* 802CA63C 4B FE 45 35 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA640 48 00 01 3C */ b lbl_802CA77C -lbl_802CA644: -/* 802CA644 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 802CA648 28 00 00 64 */ cmplwi r0, 0x64 -/* 802CA64C 40 82 01 30 */ bne lbl_802CA77C -/* 802CA650 38 7D 01 F0 */ addi r3, r29, 0x1f0 -/* 802CA654 7F E4 FB 78 */ mr r4, r31 -/* 802CA658 4B FE 45 19 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA65C 48 00 01 20 */ b lbl_802CA77C -/* 802CA660 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 802CA664 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 802CA668 3B 83 09 58 */ addi r28, r3, 0x958 -/* 802CA66C 7F 83 E3 78 */ mr r3, r28 -/* 802CA670 38 80 00 08 */ li r4, 8 -/* 802CA674 4B D6 A1 ED */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA678 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA67C 41 82 01 00 */ beq lbl_802CA77C -/* 802CA680 7F 83 E3 78 */ mr r3, r28 -/* 802CA684 38 80 00 03 */ li r4, 3 -/* 802CA688 4B D6 A1 D9 */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA68C 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA690 41 82 00 EC */ beq lbl_802CA77C -/* 802CA694 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 802CA698 28 00 00 67 */ cmplwi r0, 0x67 -/* 802CA69C 40 82 00 14 */ bne lbl_802CA6B0 -/* 802CA6A0 38 7D 02 24 */ addi r3, r29, 0x224 -/* 802CA6A4 7F E4 FB 78 */ mr r4, r31 -/* 802CA6A8 4B FE 44 C9 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA6AC 48 00 00 D0 */ b lbl_802CA77C -lbl_802CA6B0: -/* 802CA6B0 28 00 00 6B */ cmplwi r0, 0x6b -/* 802CA6B4 40 82 00 C8 */ bne lbl_802CA77C -/* 802CA6B8 38 7D 02 58 */ addi r3, r29, 0x258 -/* 802CA6BC 7F E4 FB 78 */ mr r4, r31 -/* 802CA6C0 4B FE 44 B1 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA6C4 48 00 00 B8 */ b lbl_802CA77C -/* 802CA6C8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 802CA6CC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 802CA6D0 3B 83 09 58 */ addi r28, r3, 0x958 -/* 802CA6D4 7F 83 E3 78 */ mr r3, r28 -/* 802CA6D8 38 80 00 30 */ li r4, 0x30 -/* 802CA6DC 4B D6 A1 85 */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA6E0 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA6E4 41 82 00 80 */ beq lbl_802CA764 -/* 802CA6E8 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 802CA6EC 28 00 00 65 */ cmplwi r0, 0x65 -/* 802CA6F0 40 82 00 14 */ bne lbl_802CA704 -/* 802CA6F4 38 7D 01 F0 */ addi r3, r29, 0x1f0 -/* 802CA6F8 7F E4 FB 78 */ mr r4, r31 -/* 802CA6FC 4B FE 44 75 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA700 48 00 00 7C */ b lbl_802CA77C -lbl_802CA704: -/* 802CA704 28 00 00 67 */ cmplwi r0, 0x67 -/* 802CA708 40 82 00 14 */ bne lbl_802CA71C -/* 802CA70C 38 7D 02 8C */ addi r3, r29, 0x28c -/* 802CA710 7F E4 FB 78 */ mr r4, r31 -/* 802CA714 4B FE 44 5D */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA718 48 00 00 64 */ b lbl_802CA77C -lbl_802CA71C: -/* 802CA71C 28 00 00 68 */ cmplwi r0, 0x68 -/* 802CA720 40 82 00 28 */ bne lbl_802CA748 -/* 802CA724 7F 83 E3 78 */ mr r3, r28 -/* 802CA728 38 80 00 09 */ li r4, 9 -/* 802CA72C 4B D6 A1 35 */ bl isSwitch__12dSv_memBit_cCFi -/* 802CA730 2C 03 00 00 */ cmpwi r3, 0 -/* 802CA734 41 82 00 14 */ beq lbl_802CA748 -/* 802CA738 38 7D 02 58 */ addi r3, r29, 0x258 -/* 802CA73C 7F E4 FB 78 */ mr r4, r31 -/* 802CA740 4B FE 44 31 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA744 48 00 00 38 */ b lbl_802CA77C -lbl_802CA748: -/* 802CA748 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 802CA74C 28 00 00 6B */ cmplwi r0, 0x6b -/* 802CA750 40 82 00 2C */ bne lbl_802CA77C -/* 802CA754 38 7D 01 BC */ addi r3, r29, 0x1bc -/* 802CA758 7F E4 FB 78 */ mr r4, r31 -/* 802CA75C 4B FE 44 15 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802CA760 48 00 00 1C */ b lbl_802CA77C -lbl_802CA764: -/* 802CA764 57 C0 06 3E */ clrlwi r0, r30, 0x18 -/* 802CA768 28 00 00 64 */ cmplwi r0, 0x64 -/* 802CA76C 40 82 00 10 */ bne lbl_802CA77C -/* 802CA770 38 7D 01 F0 */ addi r3, r29, 0x1f0 -/* 802CA774 7F E4 FB 78 */ mr r4, r31 -/* 802CA778 4B FE 43 F9 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -lbl_802CA77C: -/* 802CA77C 39 61 00 20 */ addi r11, r1, 0x20 -/* 802CA780 48 09 7A A5 */ bl _restgpr_28 -/* 802CA784 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802CA788 7C 08 03 A6 */ mtlr r0 -/* 802CA78C 38 21 00 20 */ addi r1, r1, 0x20 -/* 802CA790 4E 80 00 20 */ blr diff --git a/asm/Z2AudioLib/Z2EnvSeMgr/registRiverSePos__10Z2EnvSeMgrFP3Vec.s b/asm/Z2AudioLib/Z2EnvSeMgr/registRiverSePos__10Z2EnvSeMgrFP3Vec.s deleted file mode 100644 index ea451eb2baf..00000000000 --- a/asm/Z2AudioLib/Z2EnvSeMgr/registRiverSePos__10Z2EnvSeMgrFP3Vec.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_802C8234: -/* 802C8234 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802C8238 7C 08 02 A6 */ mflr r0 -/* 802C823C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802C8240 38 63 01 64 */ addi r3, r3, 0x164 -/* 802C8244 4B FE 69 2D */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802C8248 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802C824C 7C 08 03 A6 */ mtlr r0 -/* 802C8250 38 21 00 10 */ addi r1, r1, 0x10 -/* 802C8254 4E 80 00 20 */ blr diff --git a/asm/Z2AudioLib/Z2EnvSeMgr/registWindowPos__10Z2EnvSeMgrFP3Vec.s b/asm/Z2AudioLib/Z2EnvSeMgr/registWindowPos__10Z2EnvSeMgrFP3Vec.s deleted file mode 100644 index a96fc3aa495..00000000000 --- a/asm/Z2AudioLib/Z2EnvSeMgr/registWindowPos__10Z2EnvSeMgrFP3Vec.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_802C780C: -/* 802C780C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802C7810 7C 08 02 A6 */ mflr r0 -/* 802C7814 90 01 00 14 */ stw r0, 0x14(r1) -/* 802C7818 38 63 00 64 */ addi r3, r3, 0x64 -/* 802C781C 4B FE 73 55 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802C7820 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802C7824 7C 08 03 A6 */ mtlr r0 -/* 802C7828 38 21 00 10 */ addi r1, r1, 0x10 -/* 802C782C 4E 80 00 20 */ blr diff --git a/asm/Z2AudioLib/Z2EnvSeMgr/registWolfSmellSePos__10Z2EnvSeMgrFP3Vec.s b/asm/Z2AudioLib/Z2EnvSeMgr/registWolfSmellSePos__10Z2EnvSeMgrFP3Vec.s deleted file mode 100644 index c58083cb792..00000000000 --- a/asm/Z2AudioLib/Z2EnvSeMgr/registWolfSmellSePos__10Z2EnvSeMgrFP3Vec.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_802C92C8: -/* 802C92C8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802C92CC 7C 08 02 A6 */ mflr r0 -/* 802C92D0 90 01 00 14 */ stw r0, 0x14(r1) -/* 802C92D4 38 63 02 C0 */ addi r3, r3, 0x2c0 -/* 802C92D8 4B FE 58 99 */ bl registMultiSePos__12Z2MultiSeMgrFP3Vec -/* 802C92DC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802C92E0 7C 08 03 A6 */ mtlr r0 -/* 802C92E4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802C92E8 4E 80 00 20 */ blr diff --git a/asm/Z2AudioLib/Z2EnvSeMgr/setPanParam__14Z2EnvSeAutoPanFffbbff.s b/asm/Z2AudioLib/Z2EnvSeMgr/setPanParam__14Z2EnvSeAutoPanFffbbff.s deleted file mode 100644 index 5320b20363f..00000000000 --- a/asm/Z2AudioLib/Z2EnvSeMgr/setPanParam__14Z2EnvSeAutoPanFffbbff.s +++ /dev/null @@ -1,8 +0,0 @@ -lbl_802C5F7C: -/* 802C5F7C D0 23 00 08 */ stfs f1, 8(r3) -/* 802C5F80 D0 43 00 0C */ stfs f2, 0xc(r3) -/* 802C5F84 D0 63 00 10 */ stfs f3, 0x10(r3) -/* 802C5F88 D0 83 00 14 */ stfs f4, 0x14(r3) -/* 802C5F8C 98 83 00 18 */ stb r4, 0x18(r3) -/* 802C5F90 98 A3 00 19 */ stb r5, 0x19(r3) -/* 802C5F94 4E 80 00 20 */ blr diff --git a/asm/Z2AudioLib/Z2EnvSeMgr/setWindDirection__10Z2EnvSeMgrFP3Vec.s b/asm/Z2AudioLib/Z2EnvSeMgr/setWindDirection__10Z2EnvSeMgrFP3Vec.s deleted file mode 100644 index f2c2cad2c42..00000000000 --- a/asm/Z2AudioLib/Z2EnvSeMgr/setWindDirection__10Z2EnvSeMgrFP3Vec.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_802C7FC8: -/* 802C7FC8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802C7FCC 7C 08 02 A6 */ mflr r0 -/* 802C7FD0 90 01 00 14 */ stw r0, 0x14(r1) -/* 802C7FD4 88 03 01 60 */ lbz r0, 0x160(r3) -/* 802C7FD8 28 00 00 03 */ cmplwi r0, 3 -/* 802C7FDC 40 82 00 18 */ bne lbl_802C7FF4 -/* 802C7FE0 38 63 01 44 */ addi r3, r3, 0x144 -/* 802C7FE4 3C 80 80 3A */ lis r4, cNullVec__6Z2Calc@ha /* 0x8039C250@ha */ -/* 802C7FE8 38 84 C2 50 */ addi r4, r4, cNullVec__6Z2Calc@l /* 0x8039C250@l */ -/* 802C7FEC 4B FF DD 85 */ bl setPanDir__10Z2EnvSeDirFP3Vec -/* 802C7FF0 48 00 00 0C */ b lbl_802C7FFC -lbl_802C7FF4: -/* 802C7FF4 38 63 01 44 */ addi r3, r3, 0x144 -/* 802C7FF8 4B FF DD 79 */ bl setPanDir__10Z2EnvSeDirFP3Vec -lbl_802C7FFC: -/* 802C7FFC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802C8000 7C 08 03 A6 */ mtlr r0 -/* 802C8004 38 21 00 10 */ addi r1, r1, 0x10 -/* 802C8008 4E 80 00 20 */ blr diff --git a/asm/Z2AudioLib/Z2EnvSeMgr/startEnvSeAutoPanLevel__14Z2EnvSeAutoPanF10JAISoundIDfff.s b/asm/Z2AudioLib/Z2EnvSeMgr/startEnvSeAutoPanLevel__14Z2EnvSeAutoPanF10JAISoundIDfff.s deleted file mode 100644 index 544b5c0f3ef..00000000000 --- a/asm/Z2AudioLib/Z2EnvSeMgr/startEnvSeAutoPanLevel__14Z2EnvSeAutoPanF10JAISoundIDfff.s +++ /dev/null @@ -1,16 +0,0 @@ -lbl_802C60E0: -/* 802C60E0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802C60E4 7C 08 02 A6 */ mflr r0 -/* 802C60E8 90 01 00 14 */ stw r0, 0x14(r1) -/* 802C60EC FC A0 18 90 */ fmr f5, f3 -/* 802C60F0 80 04 00 00 */ lwz r0, 0(r4) -/* 802C60F4 90 01 00 08 */ stw r0, 8(r1) -/* 802C60F8 38 81 00 08 */ addi r4, r1, 8 -/* 802C60FC C0 63 00 08 */ lfs f3, 8(r3) -/* 802C6100 C0 83 00 0C */ lfs f4, 0xc(r3) -/* 802C6104 38 A0 00 00 */ li r5, 0 -/* 802C6108 4B FF F9 AD */ bl startEnvSeLevel__11Z2EnvSeBaseF10JAISoundIDfffffUl -/* 802C610C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802C6110 7C 08 03 A6 */ mtlr r0 -/* 802C6114 38 21 00 10 */ addi r1, r1, 0x10 -/* 802C6118 4E 80 00 20 */ blr diff --git a/include/JSystem/JAudio2/JAISound.h b/include/JSystem/JAudio2/JAISound.h index a71bb983282..5b34ebe1fdf 100644 --- a/include/JSystem/JAudio2/JAISound.h +++ b/include/JSystem/JAudio2/JAISound.h @@ -257,7 +257,7 @@ public: } void updateLifeTime(u32 param_0) { - if (lifeTime < param_0) { + if (param_0 > lifeTime) { lifeTime = param_0; } } diff --git a/include/JSystem/JMath/JMath.h b/include/JSystem/JMath/JMath.h index 2ce474db6aa..42f9f8fa8e7 100644 --- a/include/JSystem/JMath/JMath.h +++ b/include/JSystem/JMath/JMath.h @@ -6,6 +6,7 @@ void JMAMTXApplyScale(const Mtx, Mtx, f32, f32, f32); void JMAEulerToQuat(s16 param_0, s16 param_1, s16 param_2, Quaternion* param_3); void JMAQuatLerp(const Quaternion*, const Quaternion*, f32, Quaternion*); +void JMAFastVECNormalize(register const Vec* src, register Vec* dst); inline f32 JMAFastReciprocal(f32 value) { return __fres(value); diff --git a/include/Z2AudioLib/Z2Creature.h b/include/Z2AudioLib/Z2Creature.h index 00506ac0ddf..b787cb89acb 100644 --- a/include/Z2AudioLib/Z2Creature.h +++ b/include/Z2AudioLib/Z2Creature.h @@ -82,6 +82,7 @@ public: Z2SoundObjSimple& getKantera() { return mKantera; } u8 getLinkHp() const { return mLinkHp; } u8 getMovingTime() { return mMovingTime; } + u8 isWolfSmellOpen() const { return mWolfEyeOpen; } static Z2CreatureLink* mLinkPtr; diff --git a/include/Z2AudioLib/Z2EnvSeMgr.h b/include/Z2AudioLib/Z2EnvSeMgr.h index 9b65c8acf3e..46efbcdfbb3 100644 --- a/include/Z2AudioLib/Z2EnvSeMgr.h +++ b/include/Z2AudioLib/Z2EnvSeMgr.h @@ -5,11 +5,21 @@ #include "Z2AudioLib/Z2SeMgr.h" #include "global.h" +enum WindType { + WIND_TYPE_0, + WIND_TYPE_1, + WIND_TYPE_2, + WIND_TYPE_3, +}; + struct Z2EnvSeBase { /* 802C589C */ Z2EnvSeBase(Vec* param_0 = NULL); /* 802C58AC */ ~Z2EnvSeBase(); - /* 802C5908 */ void startEnvSe(JAISoundID, f32, f32, f32, f32, f32, u32); - /* 802C5AB4 */ void startEnvSeLevel(JAISoundID, f32, f32, f32, f32, f32, u32); + /* 802C5908 */ bool startEnvSe(JAISoundID, f32, f32, f32, f32, f32, u32); + /* 802C5AB4 */ bool startEnvSeLevel(JAISoundID, f32, f32, f32, f32, f32, u32); + + JAISoundHandle* getHandle() { return &mHandle; } + void setPos(Vec* pos) { mPos = pos; } /* 0x0 */ Vec* mPos; /* 0x4 */ JAISoundHandle mHandle; @@ -20,7 +30,7 @@ struct Z2EnvSeAutoPan : public Z2EnvSeBase { /* 802C5F28 */ ~Z2EnvSeAutoPan(); /* 802C5F7C */ void setPanParam(f32, f32, bool, bool, f32, f32); /* 802C5F98 */ void calcPan(); - /* 802C60E0 */ void startEnvSeAutoPanLevel(JAISoundID, f32, f32, f32); + /* 802C60E0 */ bool startEnvSeAutoPanLevel(JAISoundID, f32, f32, f32); /* 0x08 */ f32 field_0x8; /* 0x0C */ f32 field_0xc; @@ -35,7 +45,7 @@ struct Z2EnvSeDir : public Z2EnvSeBase { /* 802C5D1C */ ~Z2EnvSeDir(); /* 802C5D70 */ void setPanDir(Vec*); /* 802C5D9C */ void calcPan(f32); - /* 802C5E90 */ void startEnvSeDirLevel(JAISoundID, f32, f32); + /* 802C5E90 */ bool startEnvSeDirLevel(JAISoundID, f32, f32); /* 0x08 */ f32 field_0x8; /* 0x0C */ f32 field_0xc; @@ -51,30 +61,30 @@ struct Z2EnvSeMgr : public JASGlobalInstance { /* 802C6AC0 */ void initSceneEnvSe(s32, s8, f32); /* 802C6C1C */ void playSceneEnvSe(); /* 802C6C84 */ void initStaticEnvSe(u8, u8, u8, u8, Vec*); - /* 802C70C8 */ void startStaticEnvSe(s8); + /* 802C70C8 */ bool startStaticEnvSe(s8); /* 802C780C */ void registWindowPos(Vec*); - /* 802C7830 */ void startRainSe(s32, s8); + /* 802C7830 */ bool startRainSe(s32, s8); /* 802C7CF4 */ void startNearThunderSe(s8); /* 802C7E68 */ void startFarThunderSe(Vec*, s8); /* 802C7FB4 */ void setSnowPower(s8); /* 802C7FBC */ void initStrongWindSe(); /* 802C7FC8 */ void setWindDirection(Vec*); - /* 802C800C */ void startStrongWindSe(s8); + /* 802C800C */ bool startStrongWindSe(s8); /* 802C80F8 */ void initRiverSe(u8, u8, u8, u8); /* 802C8234 */ void registRiverSePos(Vec*); /* 802C8258 */ void setHyrulSewerOpen(bool); - /* 802C8300 */ void startRiverSe(s8); + /* 802C8300 */ bool startRiverSe(s8); /* 802C8730 */ void initFallSe(u8, u8, u8, u8); /* 802C886C */ void registFallSePos(Vec*); - /* 802C8890 */ void startFallSe(s8); + /* 802C8890 */ bool startFallSe(s8); /* 802C8A90 */ void initEtcSe(u8, u8, u8, u8); /* 802C8C24 */ void registEtcSePos(Vec*); - /* 802C8C48 */ void startEtcSe(s8); + /* 802C8C48 */ bool startEtcSe(s8); /* 802C92C8 */ void registWolfSmellSePos(Vec*); - /* 802C92EC */ void startFogWipeTrigger(Vec*); + /* 802C92EC */ bool startFogWipeTrigger(Vec*); /* 802C93A0 */ void setFogWipeWidth(f32); /* 802C93E4 */ f32 getFogDensity(); - /* 802C9400 */ void startFogSe(); + /* 802C9400 */ bool startFogSe(); /* 802C950C */ void initLv3WaterSe(u8, u8, u8, u8); /* 802C9F58 */ void registLv3WaterSePos(u8, Vec*); /* 802CA794 */ void startLv3WaterSe(s8); @@ -90,9 +100,7 @@ struct Z2EnvSeMgr : public JASGlobalInstance { /* 0x01C */ Z2EnvSeAutoPan field_0x1c; /* 0x038 */ u8 field_0x38; /* 0x039 */ u8 field_0x39; - /* 0x03C */ f32 field_0x3c; - /* 0x040 */ f32 field_0x40; - /* 0x044 */ f32 field_0x44; + /* 0x03C */ Vec field_0x3c; /* 0x048 */ f32 field_0x48; /* 0x04C */ f32 field_0x4c; /* 0x050 */ f32 field_0x50; @@ -115,11 +123,11 @@ struct Z2EnvSeMgr : public JASGlobalInstance { /* 0x118 */ Z2EnvSeBase field_0x118; /* 0x120 */ Z2Calc::FNoise1f field_0x120; /* 0x130 */ Z2Calc::FNoise1f field_0x130; - /* 0x140 */ u8 field_0x140; - /* 0x141 */ u8 mSnowPower; + /* 0x140 */ s8 field_0x140; + /* 0x141 */ s8 mSnowPower; /* 0x144 */ Z2EnvSeDir field_0x144; /* 0x160 */ u8 mWindType; - /* 0x164 */ Z2MultiSeMgr field_0x164; + /* 0x164 */ Z2MultiSeMgr mRiverSeMgr; /* 0x180 */ Z2EnvSeBase field_0x180; /* 0x188 */ u8 field_0x188; /* 0x18C */ Z2Calc::FNoise1f field_0x18c; @@ -127,14 +135,14 @@ struct Z2EnvSeMgr : public JASGlobalInstance { /* 0x1AC */ f32 field_0x1ac; /* 0x1B0 */ f32 field_0x1b0; /* 0x1B4 */ f32 field_0x1b4; - /* 0x1B8 */ u8 field_0x1b8; - /* 0x1BC */ Z2MultiSeMgr field_0x1bc; + /* 0x1B8 */ s8 field_0x1b8; + /* 0x1BC */ Z2MultiSeMgr mFallSeMgr; /* 0x1D8 */ Z2EnvSeBase field_0x1d8; /* 0x1E0 */ u8 field_0x1e0; /* 0x1E4 */ f32 field_0x1e4; /* 0x1E8 */ f32 field_0x1e8; /* 0x1EC */ f32 field_0x1ec; - /* 0x1F0 */ Z2MultiSeMgr field_0x1f0; + /* 0x1F0 */ Z2MultiSeMgr mEtcSeMgr; /* 0x20C */ Z2EnvSeBase field_0x20c; /* 0x214 */ u8 field_0x214; /* 0x218 */ f32 field_0x218; @@ -158,7 +166,7 @@ struct Z2EnvSeMgr : public JASGlobalInstance { /* 0x2B4 */ f32 field_0x2b4; /* 0x2B8 */ f32 field_0x2b8; /* 0x2BC */ f32 field_0x2bc; - /* 0x2C0 */ Z2MultiSeMgr field_0x2c0; + /* 0x2C0 */ Z2MultiSeMgr mWolfSmellSeMgr; /* 0x2DC */ Z2EnvSeBase field_0x2dc; /* 0x2E4 */ u8 field_0x2e4; /* 0x2E8 */ Z2Calc::FNoise1f field_0x2e8; diff --git a/include/Z2AudioLib/Z2SeMgr.h b/include/Z2AudioLib/Z2SeMgr.h index 3760af1fa55..fb8c218c655 100644 --- a/include/Z2AudioLib/Z2SeMgr.h +++ b/include/Z2AudioLib/Z2SeMgr.h @@ -26,45 +26,23 @@ struct Z2MultiSeMgr { } f32 getMaxPowR() { - if (mMaxPowR > 1.0f) { - return 1.0f; - } else if (mMaxPowR < 0.0f) { - return 0.0f; - } else { - return mMaxPowR; - } + return (mMaxPowR > 1.0f) ? 1.0f : (mMaxPowR < 0.0f ? 0.0f : mMaxPowR); } f32 getMaxPowL() { - if (mMaxPowL > 1.0f) { - return 1.0f; - } else if (mMaxPowL < 0.0f) { - return 0.0f; - } else { - return mMaxPowL; - } + return (mMaxPowL > 1.0f) ? 1.0f : (mMaxPowL < 0.0f ? 0.0f : mMaxPowL); } f32 getMaxPowB() { - if (mMaxPowB > 1.0f) { - return 1.0f; - } else if (mMaxPowB < 0.0f) { - return 0.0f; - } else { - return mMaxPowB; - } + return (mMaxPowB > 1.0f) ? 1.0f : (mMaxPowB < 0.0f ? 0.0f : mMaxPowB); } f32 getMaxPowF() { - if (mMaxPowF > 1.0f) { - return 1.0f; - } else if (mMaxPowF < 0.0f) { - return 0.0f; - } else { - return mMaxPowF; - } + return (mMaxPowF > 1.0f) ? 1.0f : (mMaxPowF < 0.0f ? 0.0f : mMaxPowF); } + s8 getPosCount() { return mPosCount; } + /* 0x00 */ float mVolumeScale; /* 0x04 */ float mMaxVolume; /* 0x08 */ float mMaxPowL; diff --git a/libs/Z2AudioLib/Z2EnvSeMgr.cpp b/libs/Z2AudioLib/Z2EnvSeMgr.cpp index 58e18f4b9a7..5a797dce241 100644 --- a/libs/Z2AudioLib/Z2EnvSeMgr.cpp +++ b/libs/Z2AudioLib/Z2EnvSeMgr.cpp @@ -4,51 +4,18 @@ // #include "Z2AudioLib/Z2EnvSeMgr.h" +#include "Z2AudioLib/Z2SoundStarter.h" +#include "Z2AudioLib/Z2SoundMgr.h" +#include "Z2AudioLib/Z2StatusMgr.h" +#include "Z2AudioLib/Z2Creature.h" +#include "Z2AudioLib/Z2Audience.h" +#include "Z2AudioLib/Z2SceneMgr.h" +#include "Z2AudioLib/Z2Calc.h" +#include "JSystem/JAudio2/JASCalc.h" +#include "d/save/d_save.h" +#include "d/com/d_com_inf_game.h" #include "dol2asm.h" -// -// Types: -// - -struct dSv_memBit_c { - /* 80034860 */ void isSwitch(int) const; -}; - -struct dSv_event_flag_c { - static u8 saveBitLabels[1644 + 4 /* padding */]; -}; - -struct dSv_event_c { - /* 800349BC */ void isEventBit(u16) const; -}; - -struct Z2SoundStarter { - /* 802AAEDC */ void setPortData(JAISoundHandle*, u32, u16, s8); -}; - -struct Z2SoundMgr { - /* 802AA270 */ void setIIR(JAISound*, s16 const*); -}; - -struct Z2CreatureLink { - static u8 mLinkPtr[4 + 4 /* padding */]; -}; - -struct Z2Audience { - /* 802BD92C */ void convertAbsToRel(Vec&, Vec*, int); - /* 802BD95C */ void calcRelPosVolume(Vec const&, f32, int); - /* 802BDA44 */ void calcRelPosPan(Vec const&, int); - /* 802BDB44 */ void calcRelPosDolby(Vec const&, int); -}; - -struct JASCalc { - static u8 const CUTOFF_TO_IIR_TABLE[1024]; -}; - -struct JAISoundStarter { - /* 802A2FEC */ void startLevelSound(JAISoundID, JAISoundHandle*, JGeometry::TVec3 const*); -}; - // // Forward References: // @@ -148,7 +115,6 @@ extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); extern "C" u8 const CUTOFF_TO_IIR_TABLE__7JASCalc[1024]; extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; extern "C" extern u8 data_80450B44[4]; extern "C" extern u8 data_80450B60[4]; extern "C" extern u8 data_80450B74[4]; @@ -173,7 +139,7 @@ Z2EnvSeBase::~Z2EnvSeBase() {} /* ############################################################################################## */ /* 80455D40-80455D44 004340 0004+00 2/2 0/0 0/0 .sdata2 @3501 */ -SECTION_SDATA2 static f32 lit_3501 = 33.0f / 100.0f; +SECTION_SDATA2 static f32 lit_3501 = 0.33f; /* 80455D44-80455D48 004344 0004+00 24/24 0/0 0/0 .sdata2 @3502 */ SECTION_SDATA2 static f32 lit_3502 = 1.0f; @@ -201,28 +167,91 @@ SECTION_SDATA2 static f64 lit_3508 = 4503599627370496.0 /* cast u32 to float */; /* 802C5908-802C5AB4 2C0248 01AC+00 2/2 0/0 0/0 .text * startEnvSe__11Z2EnvSeBaseF10JAISoundIDfffffUl */ +// Matches with literals +#ifdef NONMATCHING +bool Z2EnvSeBase::startEnvSe(JAISoundID param_1, f32 param_2, f32 param_3, f32 param_4, f32 param_5, + f32 param_6, u32 param_7) { + if (Z2GetStatusMgr()->isPaused()) { + param_3 *= 0.33f; + } + f32 dVar16 = 1.0f; + bool uStack_44 = Z2GetStatusMgr()->getCameraInWaterDepth() > 0.0f; + f32 fVar1 = uStack_44; + if (fVar1) { + dVar16 = Z2Calc::getParamByExp( + fVar1, 1500.0f, 0.0f, + 0.1f, 0.0f, + dVar16, Z2Calc::CURVE_SIGN_0); + param_3 *= dVar16; + } + bool rv = Z2GetSoundStarter()->startSound(param_1, &mHandle, (JGeometry::TVec3*)mPos, 0, param_2, param_6, param_3, param_4, param_5, param_7); + if (mHandle) { + if (dVar16 < 1.0f) { + Z2GetSoundMgr()->setIIR(mHandle.getSound(), JASCalc::CUTOFF_TO_IIR_TABLE[64]); + } else { + Z2GetSoundMgr()->setIIR(mHandle.getSound(), JASCalc::CUTOFF_TO_IIR_TABLE[127]); + } + } + return rv; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void Z2EnvSeBase::startEnvSe(JAISoundID param_0, f32 param_1, f32 param_2, f32 param_3, +asm bool Z2EnvSeBase::startEnvSe(JAISoundID param_0, f32 param_1, f32 param_2, f32 param_3, f32 param_4, f32 param_5, u32 param_6) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/startEnvSe__11Z2EnvSeBaseF10JAISoundIDfffffUl.s" } #pragma pop +#endif /* 802C5AB4-802C5C9C 2C03F4 01E8+00 9/9 0/0 0/0 .text * startEnvSeLevel__11Z2EnvSeBaseF10JAISoundIDfffffUl */ +// Matches with literals +#ifdef NONMATCHING +bool Z2EnvSeBase::startEnvSeLevel(JAISoundID param_1, f32 param_2, f32 param_3, f32 param_4, + f32 param_5, f32 param_6, u32 param_7) { + if (Z2GetStatusMgr()->isPaused()) { + param_3 *= 0.33f; + } + f32 dVar16 = 1.0f; + bool uStack_44 = Z2GetStatusMgr()->getCameraInWaterDepth() > 0.0f; + f32 fVar1 = uStack_44; + if (fVar1) { + dVar16 = Z2Calc::getParamByExp( + fVar1, 1500.0f, 0.0f, + 0.1f, 0.0f, + dVar16, Z2Calc::CURVE_SIGN_0); + param_3 *= dVar16; + } + bool rv = Z2GetSoundStarter()->startLevelSound(param_1, &mHandle, (JGeometry::TVec3*)mPos); + if (mHandle) { + if (dVar16 < 1.0f) { + Z2GetSoundMgr()->setIIR(mHandle.getSound(), JASCalc::CUTOFF_TO_IIR_TABLE[64]); + } else { + Z2GetSoundMgr()->setIIR(mHandle.getSound(), JASCalc::CUTOFF_TO_IIR_TABLE[127]); + } + + mHandle->getAuxiliary().moveVolume(param_3, param_7); + mHandle->getAuxiliary().movePan(param_4, param_7); + mHandle->getAuxiliary().moveDolby(param_5, param_7); + mHandle->getAuxiliary().moveFxMix(param_2, param_7); + mHandle->getAuxiliary().movePitch(param_6, param_7); + } + return rv; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void Z2EnvSeBase::startEnvSeLevel(JAISoundID param_0, f32 param_1, f32 param_2, f32 param_3, +asm bool Z2EnvSeBase::startEnvSeLevel(JAISoundID param_0, f32 param_1, f32 param_2, f32 param_3, f32 param_4, f32 param_5, u32 param_6) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/startEnvSeLevel__11Z2EnvSeBaseF10JAISoundIDfffffUl.s" } #pragma pop - +#endif /* ############################################################################################## */ /* 8039C250-8039C260 0288B0 000C+04 2/2 0/0 0/0 .rodata cNullVec__6Z2Calc */ SECTION_RODATA static Vec const cNullVec__6Z2Calc = {0.0f, 0.0f, 0.0f}; @@ -281,6 +310,24 @@ asm void Z2EnvSeDir::setPanDir(Vec* param_0) { #endif /* 802C5D9C-802C5E90 2C06DC 00F4+00 1/1 0/0 0/0 .text calcPan__10Z2EnvSeDirFf */ +// Matches with literals +#ifdef NONMATCHING +void Z2EnvSeDir::calcPan(f32 param_0) { + if (*getHandle()) { + if (0.0f == mPanDir.x && 0.0f == mPanDir.y && 0.0f == mPanDir.z) { + (*getHandle())->getAuxiliary().movePan(0.5f, 0); + (*getHandle())->getAuxiliary().moveDolby(0.5f, 0); + } else { + Z2GetAudience()->convertAbsToRel(mPanDir, &mPanDir, 0); + JMAFastVECNormalize(&mPanDir, &mPanDir); + field_0x8 = Z2GetAudience()->calcRelPosPan(mPanDir, 0); + field_0xc = Z2GetAudience()->calcRelPosDolby(mPanDir, 0); + (*getHandle())->getAuxiliary().movePan(field_0x8, 0); + (*getHandle())->getAuxiliary().moveDolby(field_0xc, 0); + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -289,17 +336,25 @@ asm void Z2EnvSeDir::calcPan(f32 param_0) { #include "asm/Z2AudioLib/Z2EnvSeMgr/calcPan__10Z2EnvSeDirFf.s" } #pragma pop +#endif /* 802C5E90-802C5ECC 2C07D0 003C+00 1/1 0/0 0/0 .text * startEnvSeDirLevel__10Z2EnvSeDirF10JAISoundIDff */ +// Matches with literals +#ifdef NONMATCHING +bool Z2EnvSeDir::startEnvSeDirLevel(JAISoundID param_1, f32 param_2, f32 param_3) { + return Z2EnvSeBase::startEnvSeLevel(param_1, param_2, param_3, field_0x8, field_0xc, 1.0f, 0); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void Z2EnvSeDir::startEnvSeDirLevel(JAISoundID param_0, f32 param_1, f32 param_2) { +asm bool Z2EnvSeDir::startEnvSeDirLevel(JAISoundID param_0, f32 param_1, f32 param_2) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/startEnvSeDirLevel__10Z2EnvSeDirF10JAISoundIDff.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80455D68-80455D6C 004368 0004+00 3/3 0/0 0/0 .sdata2 @3654 */ @@ -334,15 +389,15 @@ asm Z2EnvSeAutoPan::Z2EnvSeAutoPan() { Z2EnvSeAutoPan::~Z2EnvSeAutoPan() {} /* 802C5F7C-802C5F98 2C08BC 001C+00 2/2 0/0 0/0 .text setPanParam__14Z2EnvSeAutoPanFffbbff */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void Z2EnvSeAutoPan::setPanParam(f32 param_0, f32 param_1, bool param_2, bool param_3, - f32 param_4, f32 param_5) { - nofralloc -#include "asm/Z2AudioLib/Z2EnvSeMgr/setPanParam__14Z2EnvSeAutoPanFffbbff.s" +void Z2EnvSeAutoPan::setPanParam(f32 param_1, f32 param_2, bool param_3, bool param_4, f32 param_5, + f32 param_6) { + field_0x8 = param_1; + field_0xc = param_2; + field_0x10 = param_5; + field_0x14 = param_6; + field_0x18 = param_3; + field_0x19 = param_4; } -#pragma pop /* ############################################################################################## */ /* 80455D70-80455D74 004370 0004+00 4/4 0/0 0/0 .sdata2 @3704 */ @@ -352,6 +407,41 @@ SECTION_SDATA2 static f32 lit_3704 = 2.0f; SECTION_SDATA2 static f32 lit_3705 = -1.0f; /* 802C5F98-802C60E0 2C08D8 0148+00 2/2 0/0 0/0 .text calcPan__14Z2EnvSeAutoPanFv */ +// Matches with literals +#ifdef NONMATCHING +void Z2EnvSeAutoPan::calcPan() { + if (field_0x18) { + field_0x8 += field_0x10; + if (field_0x8 > 1.0f) { + field_0x8 = 2.0f - field_0x8; + field_0x18 = false; + } + } else { + field_0x8 = field_0x8 - field_0x10; + if (field_0x8 < 0.0f) { + field_0x8 *= -1.0f; + field_0x18 = true; + } + } + if (field_0x19) { + field_0xc = field_0xc + field_0x14; + if (field_0xc > 1.0f) { + field_0xc = 2.0f - field_0xc; + field_0x19 = false; + } + } else { + field_0xc = field_0xc - field_0x14; + if (field_0xc < 0.0f) { + field_0xc *= -1.0f; + field_0x19 = true; + } + } + if (*getHandle()) { + (*getHandle())->getAuxiliary().movePan(field_0x8, 0); + (*getHandle())->getAuxiliary().moveDolby(field_0xc, 0); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -360,18 +450,15 @@ asm void Z2EnvSeAutoPan::calcPan() { #include "asm/Z2AudioLib/Z2EnvSeMgr/calcPan__14Z2EnvSeAutoPanFv.s" } #pragma pop +#endif /* 802C60E0-802C611C 2C0A20 003C+00 2/2 0/0 0/0 .text * startEnvSeAutoPanLevel__14Z2EnvSeAutoPanF10JAISoundIDfff */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void Z2EnvSeAutoPan::startEnvSeAutoPanLevel(JAISoundID param_0, f32 param_1, f32 param_2, - f32 param_3) { - nofralloc -#include "asm/Z2AudioLib/Z2EnvSeMgr/startEnvSeAutoPanLevel__14Z2EnvSeAutoPanF10JAISoundIDfff.s" +bool Z2EnvSeAutoPan::startEnvSeAutoPanLevel(JAISoundID param_1, f32 param_2, f32 param_3, + f32 param_4) { + return Z2EnvSeBase::startEnvSeLevel(param_1, param_2, param_3, field_0x8, field_0xc, param_4, + 0); } -#pragma pop /* ############################################################################################## */ /* 80455D78-80455D7C 004378 0004+00 8/8 0/0 0/0 .sdata2 @3749 */ @@ -472,9 +559,9 @@ Z2EnvSeMgr::Z2EnvSeMgr() field_0x220(1.0f), field_0x248(), field_0x24c(1.0f), field_0x250(1.0f), field_0x254(1.0f), field_0x27c(), field_0x280(1.0f), field_0x284(1.0f), field_0x288(1.0f), field_0x2b0(), field_0x2b4(1.0f), field_0x2b8(1.0f), field_0x2bc(1.0f), field_0x2e4(), mFogDensity() { - field_0x3c = 0.0f; - field_0x40 = 0.0f; - field_0x44 = 0.0f; + field_0x3c.x = 0.0f; + field_0x3c.y = 0.0f; + field_0x3c.z = 0.0f; field_0x54 = 0.0f; field_0x58 = 0.0f; field_0x5c = 0.0f; @@ -515,6 +602,74 @@ Z2EnvSeMgr::~Z2EnvSeMgr() {} SECTION_SDATA2 static f32 lit_3928 = 30.0f; /* 802C66B0-802C6998 2C0FF0 02E8+00 0/0 1/1 0/0 .text framework__10Z2EnvSeMgrFv */ +// Matches with literals +#ifdef NONMATCHING +void Z2EnvSeMgr::framework() { + int sceneNum = Z2GetSceneMgr()->getCurrentSceneNum(); + if (field_0x64.getPosCount() >= 0) { + if (field_0x214 == 0x12 || + (i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[104]) && !i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[250]))) + { + int lVar12 = 0; + if (sceneNum == 0x17 || sceneNum == 0x18 || (sceneNum == 0x19)) { + lVar12 = 1; + } + startRainSe(lVar12, 100); + } + field_0x64.resetMultiSePos(); + } + if (sceneNum == 0x2e) { + startLv3WaterSe(-1); + field_0x140 = 0; + } + if (Z2GetSceneMgr()->isSceneExist()) { + playSceneEnvSe(); + if (field_0x140 > 0 && mSnowPower == 0) { + JAISoundHandle* pJVar8 = field_0x80.getHandle(); + if (*pJVar8) { + (*pJVar8)->updateLifeTime(field_0x140); + } + pJVar8 = field_0x88.getHandle(); + if (*pJVar8) { + (*pJVar8)->updateLifeTime(field_0x140); + } + field_0x140 = 0; + } + } + if (mFogDensity > 0.0f) + { + mFogDensity -= 0.01f; + if (mFogDensity < 0.0f) { + mFogDensity = 0.0f; + } + } + if (field_0x1b8 > 0 && field_0x1b8 < 100) { + field_0x1b8++; + } else if (field_0x1b8 < 0 && field_0x1b8 > -100) { + field_0x1b8--; + } + if (mSnowPower > 0) { + mSnowPower--; + } + if (Z2GetLink() != NULL) { + if (Z2GetLink()->isWolfSmellOpen() != 0) { + if (field_0x2e4 < 0x1e) { + field_0x2e4++; + } + if (field_0x2c0.getPosCount() >= 0) { + f32 maxVolume = field_0x2c0.getMaxVolume(); + field_0x2dc.startEnvSeLevel(Z2SE_ENV_SCENT_GRAVE, 0.0f, + (field_0x2e4 / 30.0f) * maxVolume, field_0x2c0.getPanPower(), field_0x2c0.getDolbyPower(), 1.0f, 0); + field_0x2c0.resetMultiSePos(); + } + return; + } + } + if (field_0x2e4 != 0) { + field_0x2e4--; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -523,6 +678,7 @@ asm void Z2EnvSeMgr::framework() { #include "asm/Z2AudioLib/Z2EnvSeMgr/framework__10Z2EnvSeMgrFv.s" } #pragma pop +#endif /* 802C6998-802C699C 2C12D8 0004+00 0/0 1/1 0/0 .text resetScene__10Z2EnvSeMgrFv */ void Z2EnvSeMgr::resetScene() { @@ -530,6 +686,58 @@ void Z2EnvSeMgr::resetScene() { } /* 802C699C-802C6AC0 2C12DC 0124+00 0/0 1/1 0/0 .text resetSceneInner__10Z2EnvSeMgrFv */ +#ifdef NONMATCHING +void Z2EnvSeMgr::resetSceneInner() { + if (-1.0f == field_0x60) { + field_0x38 = 0; + field_0x48 = 1.0f; + field_0x4c = 1.0f; + field_0x50 = 1.0f; + field_0x54 = 0.0f; + field_0x58 = 0.0f; + field_0x5c = 0.0f; + field_0x39 = 0; + field_0x3c = 0.0f; + field_0x40 = 0.0f; + field_0x44 = 0.0f; + } + field_0x140 = 0; + mWindType = WIND_TYPE_0; + field_0x188 = 0; + field_0x1e0 = 0; + field_0x214 = 0; + field_0x248 = 0; + field_0x27c = 0; + field_0x2b0 = 0; + field_0x1b8 = 0; + field_0x1ac = 1.0f; + field_0x1b0 = 1.0f; + field_0x1b4 = 1.0f; + field_0x1e4 = 1.0f; + field_0x1e8 = 1.0f; + field_0x1ec = 1.0f; + field_0x218 = 1.0f; + field_0x21c = 1.0f; + field_0x220 = 1.0f; + field_0x24c = 1.0f; + field_0x250 = 1.0f; + field_0x254 = 1.0f; + field_0x280 = 1.0f; + field_0x284 = 1.0f; + field_0x288 = 1.0f; + field_0x2b4 = 1.0f; + field_0x2b8 = 1.0f; + field_0x2bc = 1.0f; + mRiverSeMgr.resetMultiSePos(); + mFallSeMgr.resetMultiSePos(); + mEtcSeMgr.resetMultiSePos(); + field_0x224.resetMultiSePos(); + field_0x258.resetMultiSePos(); + field_0x28c.resetMultiSePos(); + mWolfSmellSeMgr.resetMultiSePos(); + field_0x64.resetMultiSePos(); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -538,6 +746,7 @@ asm void Z2EnvSeMgr::resetSceneInner() { #include "asm/Z2AudioLib/Z2EnvSeMgr/resetSceneInner__10Z2EnvSeMgrFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80455DF0-80455DF4 0043F0 0004+00 2/2 0/0 0/0 .sdata2 @3963 */ @@ -545,6 +754,60 @@ SECTION_SDATA2 static f32 lit_3963 = 100.0f; /* 802C6AC0-802C6C1C 2C1400 015C+00 0/0 1/1 0/0 .text initSceneEnvSe__10Z2EnvSeMgrFlScf */ +// Matches with literals +#ifdef NONMATCHING +void Z2EnvSeMgr::initSceneEnvSe(s32 param_1, s8 param_2, f32 param_3) { + field_0x60 = -1.0f; + if (-1.0f == param_3) { + return; + } + u8 r6 = 100.0f * param_3; + u8 uVar3 = 0; + switch(param_1) { + case 0x1e: + switch(param_2) { + case 0xd: + uVar3 = 10; + break; + case 7: + case 9: + case 0xb: + case 0xc: + uVar3 = 2; + break; + case 8: + case 0xa: + default: + uVar3 = 6; + break; + } + break; + case 0x1f: + switch(param_2) { + case 8: + case 0x10: + uVar3 = 6; + break; + case 0x11: + uVar3 = 10; + break; + } + break; + case 0x20: + uVar3 = 10; + break; + case 0x22: + uVar3 = 6; + break; + case 0x45: + uVar3 = 7; + break; + } + + initStaticEnvSe(uVar3, r6, 0xff, 0xff, NULL); + field_0x60 = param_3; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -553,8 +816,20 @@ asm void Z2EnvSeMgr::initSceneEnvSe(s32 param_0, s8 param_1, f32 param_2) { #include "asm/Z2AudioLib/Z2EnvSeMgr/initSceneEnvSe__10Z2EnvSeMgrFlScf.s" } #pragma pop +#endif /* 802C6C1C-802C6C84 2C155C 0068+00 1/1 0/0 0/0 .text playSceneEnvSe__10Z2EnvSeMgrFv */ +// Matches with literals +#ifdef NONMATCHING +void Z2EnvSeMgr::playSceneEnvSe() { + if (-1.0f != field_0x60) { + if (field_0x1b8 != 100) { + startStaticEnvSe(Z2GetSceneMgr()->getRoomReverb()); + } + field_0x1b8 = 0; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -563,6 +838,7 @@ asm void Z2EnvSeMgr::playSceneEnvSe() { #include "asm/Z2AudioLib/Z2EnvSeMgr/playSceneEnvSe__10Z2EnvSeMgrFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 803CB9C8-803CB9F8 -00001 0030+00 1/1 0/0 0/0 .data @4025 */ @@ -583,6 +859,148 @@ SECTION_DATA static void* lit_4025[12] = { /* 802C6C84-802C70C8 2C15C4 0444+00 2/1 1/1 0/0 .text initStaticEnvSe__10Z2EnvSeMgrFUcUcUcUcP3Vec */ +// Matches with literals +#ifdef NONMATCHING +void Z2EnvSeMgr::initStaticEnvSe(u8 param_1, u8 param_2, u8 param_3, u8 param_4, Vec* param_5) { + f32 dVar7; + f32 dVar6; + f32 fVar1; + if (-1.0f == field_0x60) { + if (param_2 >= 100) { + dVar7 = 1.0f; + } else { + dVar7 = 0.01f * param_2; + } + if (param_3 == 0xff) { + dVar6 = 1.0f; + } else { + dVar6 = 0.01f * param_3; + } + if (param_4 == 0xff) { + fVar1 = 0.0f; + } else { + field_0x3c = *param_5; + fVar1 = 0.1f * param_4; + } + if (field_0x38 != 0 && field_0x38 == param_1) { + field_0x39 = 100; + if (dVar7 != field_0x48) { + field_0x54 = + (dVar7 - field_0x48) / 100.0f; + } else { + field_0x48 = dVar7; + field_0x54 = 0.0f; + } + if (dVar6 != field_0x4c) { + field_0x58 = + (dVar6 - field_0x4c) / 100.0f; + } else { + field_0x4c = dVar6; + field_0x58 = 0.0f; + } + if (fVar1 != field_0x50) { + field_0x5c = + (fVar1 - field_0x50) / 100.0f; + } else { + field_0x50 = fVar1; + field_0x5c = 0.0f; + } + } else { + field_0x48 = dVar7; + field_0x4c = dVar6; + field_0x50 = fVar1; + field_0x54 = 0.0f; + field_0x58 = 0.0f; + field_0x5c = 0.0f; + } + switch (param_1) { + case 1: + field_0x0.setPanParam( + 1.0f, 0.0f, + true, false, 0.0018554000416770577f, 0.0008553999941796064f); + field_0x1c.setPanParam( + 0.0f, + 1.0f, false, true, 0.0018554000416770577f, + 0.0008553999941796064f); + break; + case 2: + field_0x0.setPanParam( + 1.0f, 0.0f, + true, false, 0.0018554000416770577f, 0.0008553999941796064f); + field_0x1c.setPanParam( + 0.0f, + 1.0f, false, true, 0.0018554000416770577f, + 0.0008553999941796064f); + break; + case 3: + field_0x0.setPanParam( + 1.0f, 0.0f, + true, false, 0.0018554000416770577f, 0.0008553999941796064f); + field_0x1c.setPanParam( + 0.0f, + 1.0f, false, true, 0.0018554000416770577f, + 0.0008553999941796064f); + break; + case 4: + field_0x0.setPanParam( + 1.0f, 0.0f, + true, false, 0.0018554000416770577f, 0.0008553999941796064f); + field_0x1c.setPanParam( + 0.0f, + 1.0f, false, true, 0.0018554000416770577f, + 0.0008553999941796064f); + break; + case 5: + case 11: + field_0x0.setPanParam( + 1.0f, 0.0f, + true, false, 0.0018554000416770577f, 0.0008553999941796064f); + field_0x1c.setPanParam( + 0.0f, + 1.0f, false, true, 0.0018554000416770577f, + 0.0008553999941796064f); + break; + case 6: + case 10: + field_0x0.setPanParam( + 1.0f, 0.0f, + true, false, 0.0018554000416770577f, 0.0008553999941796064f); + field_0x1c.setPanParam( + 0.0f, + 1.0f, false, true, 0.0018554000416770577f, + 0.0008553999941796064f); + break; + case 7: + field_0x0.setPanParam( + 1.0f, 0.0f, + true, false, 0.0018554000416770577f, 0.0008553999941796064f); + field_0x1c.setPanParam( + 0.0f, + 1.0f, false, true, 0.0018554000416770577f, + 0.0008553999941796064f); + break; + case 8: + field_0x0.setPanParam( + 1.0f, 0.0f, + true, false, 0.0018554000416770577f, 0.0008553999941796064f); + field_0x1c.setPanParam( + 0.0f, + 1.0f, false, true, 0.0018554000416770577f, + 0.0008553999941796064f); + break; + case 9: + field_0x0.setPanParam( + 1.0f, 0.0f, + true, false, 0.0018554000416770577f, 0.0008553999941796064f); + field_0x1c.setPanParam( + 0.0f, + 1.0f, false, true, 0.0018554000416770577f, + 0.0008553999941796064f); + } + field_0x38 = param_1; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -591,6 +1009,7 @@ asm void Z2EnvSeMgr::initStaticEnvSe(u8 param_0, u8 param_1, u8 param_2, u8 para #include "asm/Z2AudioLib/Z2EnvSeMgr/initStaticEnvSe__10Z2EnvSeMgrFUcUcUcUcP3Vec.s" } #pragma pop +#endif /* ############################################################################################## */ /* 803CB9F8-803CBA28 -00001 0030+00 1/1 0/0 0/0 .data @4272 */ @@ -648,39 +1067,316 @@ SECTION_SDATA2 static f64 lit_4271 = 4503601774854144.0 /* cast s32 to float */; /* 802C70C8-802C780C 2C1A08 0744+00 2/1 1/1 0/0 .text startStaticEnvSe__10Z2EnvSeMgrFSc */ +// Matches with literals +#ifdef NONMATCHING +bool Z2EnvSeMgr::startStaticEnvSe(s8 param_1) { + field_0x1b8 = 100; + f32 local_90 = param_1 / 127.0f; + if (field_0x39 != 0) { + field_0x48 += field_0x54; + field_0x4c += field_0x58; + field_0x50 += field_0x5c; + field_0x39--; + if (field_0x39 == 0) { + field_0x54 = 0.0f; + field_0x58 = 0.0f; + field_0x5c = 0.0f; + } + } + field_0x0.calcPan(); + field_0x1c.calcPan(); + JAISoundID aJStack_94; + JAISoundID aJStack_98 = 0xffffffff; + f32 local_9c = 1.0f; + if (0.0f != field_0x50) { + Vec VStack_8c; + Z2GetAudience()->convertAbsToRel(field_0x3c, &VStack_8c, 0); + local_9c = Z2GetAudience()->calcRelPosVolume(VStack_8c, field_0x50, 0); + } + f32 dVar22 = field_0x48 * local_9c; + f32 dVar21 = field_0x48 * local_9c; + f32 dVar20 = field_0x4c; + f32 dVar18 = field_0x4c; + u8 bVar15 = Z2GetStatusMgr()->getHour(); + switch (field_0x38) { + case 0: + return false; + case 1: + if (bVar15 >= 6 && bVar15 <= 18) { + aJStack_94 = Z2SE_ENV_FOREST_DAY; + aJStack_98 = Z2SE_ENV_FORESTWIND; + dVar21 *= 0.7f; + } else { + aJStack_94 = Z2SE_ENV_FORESTWIND; + aJStack_98 = Z2SE_ENV_FORESTWIND; + } + break; + case 2: + if (bVar15 >= 6 && bVar15 <= 18) { + dVar22 *= 0.7f; + dVar21 *= 0.7f; + } + aJStack_94 = JA_SE_ATM_WIND_HOT; + aJStack_98 = JA_SE_ATM_WIND_HOT; + dVar20 = 2.0f; + dVar18 = 2.1f; + break; + case 3: + aJStack_94 = JA_SE_ATM_WIND_HOT; + aJStack_98 = JA_SE_ATM_WIND_HOT; + break; + case 4: + aJStack_94 = Z2SE_ENV_SNOW_MT_WIND_L; + aJStack_98 = Z2SE_ENV_SNOW_MT_WIND_R; + if (mSnowPower > 64) { + dVar22 *= Z2Calc::getParamByExp(mSnowPower, + 64.0f, 127.0f, + 0.4f, 0.35f, + 1.0f, Z2Calc::CURVE_SIGN_1); + dVar20 *= Z2Calc::getParamByExp(mSnowPower, + 64.0f, 127.0f, + 0.4f, 1.15f, + 1.6f, Z2Calc::CURVE_SIGN_1); + dVar21 *= Z2Calc::getParamByExp(mSnowPower, + 64.0f, 127.0f, + 0.3f, 0.2f, + 1.0f, Z2Calc::CURVE_SIGN_1); + dVar18 *= Z2Calc::getParamByExp(mSnowPower, + 127.0f, 64.0f, + 0.4f, 0.65f, + 0.9f, Z2Calc::CURVE_SIGN_0); + } else { + dVar22 *= Z2Calc::getParamByExp(mSnowPower, + 0.0f, 64.0f, + 0.4f, 0.2f, + 0.35f, Z2Calc::CURVE_SIGN_0); + dVar20 *= Z2Calc::getParamByExp(mSnowPower, + 0.0f, 64.0f, + 0.3f, 1.0f, + 1.15f, Z2Calc::CURVE_SIGN_0); + dVar21 *= Z2Calc::getParamByExp(mSnowPower, + 0.0f, 64.0f, + 0.3f, 0.1f, + 0.2f, Z2Calc::CURVE_SIGN_0); + dVar18 *= ::Z2Calc::getParamByExp(mSnowPower, + 64.0f, 0.0f, + 0.4f, 0.9f, + 1.0f, Z2Calc::CURVE_SIGN_1); + } + break; + case 11: + dVar22 = 0.5f; + dVar21 = 0.6f; + case 5: + aJStack_94 = Z2SE_ENV_WINDTAG_STRONG; + aJStack_98 = Z2SE_ENV_WINDTAG_SLOW; + break; + case 6: + if (bVar15 >= 6 && bVar15 <= 18) { + dVar22 *= 0.1f; + dVar21 *= 0.12f; + } else { + dVar22 *= 0.2f; + dVar21 *= 0.2f; + } + aJStack_94 = Z2SE_ENV_FIELD_WIND_L; + aJStack_98 = Z2SE_ENV_FIELD_WIND_R; + break; + case 10: + if (bVar15 >= 6 && bVar15 <= 18) { + dVar22 *= 0.1f; + dVar21 *= 0.6f; + } else { + dVar22 *= 0.2f; + } + aJStack_94 = Z2SE_ENV_FIELD_WIND_L; + aJStack_98 = Z2SE_ENV_VALLEY_WIND; + break; + case 7: + dVar22 *= 0.85f; + dVar21 *= 0.6f; + aJStack_94 = Z2SE_ENV_WINDTAG_STRONG; + aJStack_98 = Z2SE_ENV_WINDTAG_SLOW; + break; + case 8: + aJStack_94 = Z2SE_ENV_ICED_VILLAGE_L; + aJStack_98 = Z2SE_ENV_ICED_VILLAGE_R; + break; + case 9: + aJStack_94 = Z2SE_ENV_OUGI_FIELD_L; + aJStack_98 = Z2SE_ENV_OUGI_FIELD_R; + break; + default: + return false; + } + dVar22 *= 1.0f - getFogDensity(); + dVar21 *= 1.0f - getFogDensity(); + if (Z2GetSceneMgr()->isInDarkness()) { + dVar22 *= 0.75f; + dVar21 *= 0.75f; + } + JAISoundHandle* pJVar10 = field_0x0.getHandle(); + if (*pJVar10) { + if ((u32)(*pJVar10)->getID() != (u32)aJStack_94) { + (*pJVar10)->stop(0x1e); + (*pJVar10)->releaseHandle(); + } + } + pJVar10 = field_0x1c.getHandle(); + if (*pJVar10) { + if ((u32)(*pJVar10)->getID() != (u32)aJStack_98) { + (*pJVar10)->stop(0x1e); + (*pJVar10)->releaseHandle(); + } + } + bool iVar9 = field_0x0.startEnvSeAutoPanLevel(aJStack_94, local_90, + dVar22, dVar20); + bool iVar11 = field_0x1c.startEnvSeAutoPanLevel(aJStack_98, + local_90, dVar21, dVar18); + if (field_0x38 == 4) { + JAISoundHandle* pJVar10 = field_0x0.getHandle(); + JAISoundHandle* this_02 = field_0x1c.getHandle(); + if (*pJVar10) { + Z2GetSoundStarter()->setPortData(pJVar10, 6, mSnowPower, -1); + } + if (*this_02) { + Z2GetSoundStarter()->setPortData(this_02, 6, mSnowPower, -1); + } + } + bool rv = 0; + if (iVar9 && iVar11) { + rv = 1; + } + return rv; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void Z2EnvSeMgr::startStaticEnvSe(s8 param_0) { +asm bool Z2EnvSeMgr::startStaticEnvSe(s8 param_0) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/startStaticEnvSe__10Z2EnvSeMgrFSc.s" } #pragma pop +#endif /* 802C780C-802C7830 2C214C 0024+00 0/0 1/1 0/0 .text registWindowPos__10Z2EnvSeMgrFP3Vec */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void Z2EnvSeMgr::registWindowPos(Vec* param_0) { - nofralloc -#include "asm/Z2AudioLib/Z2EnvSeMgr/registWindowPos__10Z2EnvSeMgrFP3Vec.s" +void Z2EnvSeMgr::registWindowPos(Vec* param_0) { + field_0x64.registMultiSePos(param_0); } -#pragma pop /* ############################################################################################## */ /* 80455E28-80455E2C 004428 0004+00 3/3 0/0 0/0 .sdata2 @4400 */ SECTION_SDATA2 static f32 lit_4400 = 11.0f / 10.0f; /* 802C7830-802C7CF4 2C2170 04C4+00 1/1 1/1 0/0 .text startRainSe__10Z2EnvSeMgrFlSc */ +// Matches with literals +#ifdef NONMATCHING +bool Z2EnvSeMgr::startRainSe(s32 param_1, s8 param_2) { + if (mSnowPower > 0) { + return false; + } + mSnowPower = 1; + JAISoundID aJStack_118 = 0xffffffff; + JAISoundID aJStack_11c = 0xffffffff; + JAISoundID aJStack_120 = 0xffffffff; + f32 dVar21 = param_2 / 127.0f; + s8 unaff_r29; + switch (param_1) { + case 0: + aJStack_118 = Z2SE_ENV_RAIN_NORMAL_L; + aJStack_11c = Z2SE_ENV_RAIN_NORMAL_R; + aJStack_120 = Z2SE_ENV_RAIN_ROOM; + unaff_r29 = 100; + break; + case 1: + aJStack_118 = Z2SE_ENV_RAIN_HARD_L; + aJStack_11c = Z2SE_ENV_RAIN_HARD_R; + aJStack_120 = Z2SE_ENV_RAIN_HARD_ROOM; + unaff_r29 = 50; + break; + } + + if (field_0x140 < unaff_r29) { + field_0x140++; + } else if (field_0x140 > unaff_r29) { + field_0x140 = unaff_r29; + } + + if (field_0x64.getPosCount() < 0) { + f32 dVar13 = + Z2Calc::linearTransform(field_0x90.calcNoise1f(), 0.0f, 1.0f, 0.7f, 1.0f, true); + f32 dVar14 = + Z2Calc::linearTransform(field_0xa0.calcNoise1f(), 0.0f, 1.0f, 0.7f, 1.0f, true); + f32 dVar15 = + Z2Calc::linearTransform(field_0xd0.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.1f, true); + f32 dVar16 = + Z2Calc::linearTransform(field_0xe0.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.1f, true); + f32 dVar17 = Z2Calc::getParamByExp(field_0xb0.calcNoise1f(), 0.0f, 1.0f, 0.3f, 0.0f, 0.3f, + Z2Calc::CURVE_SIGN_1); + f32 dVar18 = Z2Calc::getParamByExp(field_0xc0.calcNoise1f(), 0.0f, 1.0f, 0.3f, 1.0f, 0.7f, + Z2Calc::CURVE_SIGN_1); + f32 dVar19 = Z2Calc::getParamByExp(field_0xf0.calcNoise1f(), 0.0f, 1.0f, 0.3f, 0.0f, 1.0f, + Z2Calc::CURVE_SIGN_1); + f32 dVar20 = Z2Calc::getParamByExp(field_0x100.calcNoise1f(), 0.0f, 1.0f, 0.3f, 0.0f, 1.0f, + Z2Calc::CURVE_SIGN_1); + if (Z2GetSceneMgr()->isInDarkness()) { + dVar13 *= 0.5f; + dVar14 *= 0.5f; + } + JAISoundHandle* pJVar8 = field_0x80.getHandle(); + if (*pJVar8) { + if ((*pJVar8)->getID() != (u32)aJStack_118) { + (*pJVar8)->stop(0x1e); + (*pJVar8)->releaseHandle(); + } + } + pJVar8 = field_0x88.getHandle(); + if (*pJVar8) { + if ((*pJVar8)->getID() != (u32)aJStack_11c) { + (*pJVar8)->stop(0x1e); + (*pJVar8)->releaseHandle(); + } + } + + bool iVar7 = + field_0x80.startEnvSeLevel(aJStack_118, dVar21, dVar13, dVar17, dVar19, dVar15, 0); + bool iVar9 = + field_0x88.startEnvSeLevel(aJStack_11c, dVar21, dVar14, dVar18, dVar20, dVar16, 0); + bool uVar5 = 0; + if (iVar7 && iVar9) { + uVar5 = 1; + } + return uVar5; + } + + f32 dVar13 = Z2Calc::linearTransform(field_0x90.calcNoise1f(), 0.0f, 1.0f, 0.7f, 1.0f, true); + f32 dVar14 = Z2Calc::linearTransform(field_0xd0.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.1f, true); + + JAISoundHandle* pJVar8 = field_0x80.getHandle(); + if (*pJVar8) { + if ((*pJVar8)->getID() != (u32)aJStack_120) { + (*pJVar8)->stop(0x1e); + (*pJVar8)->releaseHandle(); + } + } + + f32 maxVolume = field_0x64.getMaxVolume(); + return field_0x80.startEnvSeLevel(aJStack_120, dVar21, dVar13 * maxVolume, + field_0x64.getPanPower(), field_0x64.getDolbyPower(), dVar14, + 0); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void Z2EnvSeMgr::startRainSe(s32 param_0, s8 param_1) { +asm bool Z2EnvSeMgr::startRainSe(s32 param_0, s8 param_1) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/startRainSe__10Z2EnvSeMgrFlSc.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80455E2C-80455E30 00442C 0004+00 1/1 0/0 0/0 .sdata2 @4422 */ @@ -688,6 +1384,23 @@ SECTION_SDATA2 static f32 lit_4422 = 0.25f; /* 802C7CF4-802C7E68 2C2634 0174+00 0/0 1/1 0/0 .text startNearThunderSe__10Z2EnvSeMgrFSc */ +// Matches with literals +#ifdef NONMATCHING +void Z2EnvSeMgr::startNearThunderSe(s8 param_1) { + if (field_0x64.getPosCount() < 0) { + f32 dVar10 = Z2Calc::getRandom(0.25f, Z2Calc::cEqualCSlope, Z2Calc::cEqualPSlope); + dVar10 += 0.5f; + f32 dVar8 = Z2Calc::getRandom(0.25f, Z2Calc::cEqualCSlope, Z2Calc::cEqualPSlope); + dVar8 += 0.5f; + field_0x118.startEnvSe(Z2SE_ENV_THUNDER_NEAR, param_1 / 127.0f, 1.0f, dVar10, dVar8, 1.0f, + 0); + } else { + f32 maxVolume = field_0x64.getMaxVolume(); + field_0x118.startEnvSe(Z2SE_ENV_THUND_NEAR_WIN, param_1 / 127.0f, maxVolume, + field_0x64.getPanPower(), field_0x64.getDolbyPower(), 1.0f, 0); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -696,8 +1409,22 @@ asm void Z2EnvSeMgr::startNearThunderSe(s8 param_0) { #include "asm/Z2AudioLib/Z2EnvSeMgr/startNearThunderSe__10Z2EnvSeMgrFSc.s" } #pragma pop +#endif /* 802C7E68-802C7FB4 2C27A8 014C+00 0/0 2/2 0/0 .text startFarThunderSe__10Z2EnvSeMgrFP3VecSc */ +// Matches with literals +#ifdef NONMATCHING +void Z2EnvSeMgr::startFarThunderSe(Vec* param_1, s8 param_2) { + if (field_0x64.getPosCount() < 0) { + field_0x110.setPos(param_1); + field_0x110.startEnvSe(Z2SE_ENV_THUNDER_FAR, param_2 / 127.0f, 1.0f, 0.5f, 0.0f, 1.0f, 0); + } else { + f32 maxVolume = field_0x64.getMaxVolume(); + field_0x110.startEnvSe(Z2SE_ENV_THUND_FAR_WIN, param_2 / 127.0f, maxVolume, + field_0x64.getPanPower(), field_0x64.getDolbyPower(), 1.0f, 0); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -706,42 +1433,60 @@ asm void Z2EnvSeMgr::startFarThunderSe(Vec* param_0, s8 param_1) { #include "asm/Z2AudioLib/Z2EnvSeMgr/startFarThunderSe__10Z2EnvSeMgrFP3VecSc.s" } #pragma pop +#endif /* 802C7FB4-802C7FBC -00001 0008+00 0/0 0/0 0/0 .text setSnowPower__10Z2EnvSeMgrFSc */ void Z2EnvSeMgr::setSnowPower(s8 param_0) { - *(u8*)(((u8*)this) + 321) /* this->field_0x141 */ = (u8)(param_0); + mSnowPower = param_0; } /* 802C7FBC-802C7FC8 2C28FC 000C+00 0/0 1/1 1/1 .text initStrongWindSe__10Z2EnvSeMgrFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void Z2EnvSeMgr::initStrongWindSe() { - nofralloc -#include "asm/Z2AudioLib/Z2EnvSeMgr/initStrongWindSe__10Z2EnvSeMgrFv.s" +void Z2EnvSeMgr::initStrongWindSe() { + mWindType = WIND_TYPE_3; } -#pragma pop /* 802C7FC8-802C800C 2C2908 0044+00 0/0 1/1 1/1 .text setWindDirection__10Z2EnvSeMgrFP3Vec */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void Z2EnvSeMgr::setWindDirection(Vec* param_0) { - nofralloc -#include "asm/Z2AudioLib/Z2EnvSeMgr/setWindDirection__10Z2EnvSeMgrFP3Vec.s" +void Z2EnvSeMgr::setWindDirection(Vec* param_0) { + if (mWindType == WIND_TYPE_3) { + field_0x144.setPanDir((Vec*)&cNullVec__6Z2Calc); + } else { + field_0x144.setPanDir(param_0); + } } -#pragma pop /* 802C800C-802C80F8 2C294C 00EC+00 0/0 1/1 1/1 .text startStrongWindSe__10Z2EnvSeMgrFSc */ +// Matches with literals +#ifdef NONMATCHING +bool Z2EnvSeMgr::startStrongWindSe(s8 param_1) { + field_0x144.calcPan(1.0f); + JAISoundID aJStack_24 = 0xffffffff; + switch (mWindType) { + case WIND_TYPE_1: + aJStack_24 = Z2SE_ENV_WINDTAG_STRONG; + break; + case WIND_TYPE_2: + aJStack_24 = Z2SE_ENV_WINDTAG_SLOW; + break; + case WIND_TYPE_3: + aJStack_24 = Z2SE_ENV_WINDTAG_CEASE; + break; + default: + return false; + } + + return field_0x144.startEnvSeDirLevel(aJStack_24, param_1 / 127.0f, 1.0f); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void Z2EnvSeMgr::startStrongWindSe(s8 param_0) { +asm bool Z2EnvSeMgr::startStrongWindSe(s8 param_0) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/startStrongWindSe__10Z2EnvSeMgrFSc.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80455E30-80455E34 004430 0004+00 3/3 0/0 0/0 .sdata2 @4510 */ @@ -752,6 +1497,41 @@ SECTION_SDATA2 static f32 lit_4511 = 3.0f; /* 802C80F8-802C8234 2C2A38 013C+00 0/0 1/1 0/0 .text initRiverSe__10Z2EnvSeMgrFUcUcUcUc */ +// Matches with literals +#ifdef NONMATCHING +void Z2EnvSeMgr::initRiverSe(u8 param_1, u8 param_2, u8 param_3, u8 param_4) { + field_0x188 = param_1; + if (param_2 >= 100) { + field_0x1ac = 1.0f; + } else { + field_0x1ac = 0.01f * param_2; + } + if (param_3 == 0xff) { + field_0x1b0 = 1.0f; + } else { + field_0x1b0 = 0.01f * param_3; + } + if (param_4 == 0xff) { + field_0x1b4 = 1.0f; + } else { + field_0x1b4 = 0.1f * param_4; + } + switch (param_1) { + case 1: + mRiverSeMgr.setVolumeScale(1.5f * field_0x1b4); + break; + case 2: + mRiverSeMgr.setVolumeScale(3.0f * field_0x1b4); + break; + case 3: + mRiverSeMgr.setVolumeScale(0.5f * field_0x1b4); + break; + case 5: + mRiverSeMgr.setVolumeScale(1.5f * field_0x1b4); + break; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -760,19 +1540,27 @@ asm void Z2EnvSeMgr::initRiverSe(u8 param_0, u8 param_1, u8 param_2, u8 param_3) #include "asm/Z2AudioLib/Z2EnvSeMgr/initRiverSe__10Z2EnvSeMgrFUcUcUcUc.s" } #pragma pop +#endif /* 802C8234-802C8258 2C2B74 0024+00 1/1 1/1 0/0 .text registRiverSePos__10Z2EnvSeMgrFP3Vec */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void Z2EnvSeMgr::registRiverSePos(Vec* param_0) { - nofralloc -#include "asm/Z2AudioLib/Z2EnvSeMgr/registRiverSePos__10Z2EnvSeMgrFP3Vec.s" +void Z2EnvSeMgr::registRiverSePos(Vec* param_0) { + mRiverSeMgr.registMultiSePos(param_0); } -#pragma pop /* 802C8258-802C8300 2C2B98 00A8+00 0/0 0/0 1/1 .text setHyrulSewerOpen__10Z2EnvSeMgrFb */ +// Matches with literals +#ifdef NONMATCHING +void Z2EnvSeMgr::setHyrulSewerOpen(bool param_0) { + if (param_0) { + field_0x1b8 = 1; + Z2GetSeMgr()->seStart(Z2SE_ENV_SEWER_FILL, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + } else { + field_0x1b8 = 0xff; + Z2GetSeMgr()->seStart(Z2SE_ENV_SEWER_OUT, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -781,6 +1569,7 @@ asm void Z2EnvSeMgr::setHyrulSewerOpen(bool param_0) { #include "asm/Z2AudioLib/Z2EnvSeMgr/setHyrulSewerOpen__10Z2EnvSeMgrFb.s" } #pragma pop +#endif /* ############################################################################################## */ /* 803CBA28-803CBAD0 -00001 00A8+00 1/1 0/0 0/0 .data @4622 */ @@ -836,17 +1625,137 @@ SECTION_SDATA2 static f32 lit_4619 = -14500.0f; SECTION_SDATA2 static f32 lit_4621 = 150.0f; /* 802C8300-802C8730 2C2C40 0430+00 2/1 1/1 0/0 .text startRiverSe__10Z2EnvSeMgrFSc */ +// missing branch and JAISound stack issues +#ifdef NONMATCHING +bool Z2EnvSeMgr::startRiverSe(s8 param_1) { + if (Z2GetStatusMgr()->mCameraMapInfo == 6) { + switch (Z2GetSceneMgr()->getCurrentSceneNum()) { + case 5: + if (Z2GetSceneMgr()->getCurrentRoomNum() != 1) { + break; + } + case 0x10: + if (Z2GetStatusMgr()->mPolygonPosition.y < 14500.0f) { + break; + } + case 8: + default: + registRiverSePos(&Z2GetStatusMgr()->mPolygonPosition); + break; + case 0x15: + case 0x1e: + case 0x1f: + case 0x2e: + break; + } + } + if (mRiverSeMgr.getPosCount() < 0) { + return false; + } + JAISoundID aJStack_742 = 0xffffffff; + bool uVar8 = false; + f32 dVar16 = param_1 / 127.0f; + f32 dVar18 = field_0x1ac * mRiverSeMgr.getMaxVolume(); + f32 dVar13 = mRiverSeMgr.getPanPower(); + f32 dVar14 = mRiverSeMgr.getDolbyPower(); + f32 dVar17 = field_0x1b0; + + switch (field_0x188) { + case 0: + return false; + case 1: + aJStack_742 = Z2SE_ENV_RIVER_SMALL; + dVar18 *= Z2Calc::linearTransform(field_0x18c.calcNoise1f(), 0.0f, 1.0f, 0.7f, 1.0f, + true); + dVar17 *= Z2Calc::linearTransform(field_0x19c.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.1f, + true); + uVar8 = field_0x180.startEnvSeLevel(aJStack_742, dVar16, dVar18, dVar13, dVar14, dVar17, 0); + break; + case 2: + aJStack_742 = Z2SE_ENV_RIVER_NORMAL; + mRiverSeMgr.getMaxPowL(); + mRiverSeMgr.getMaxPowR(); + mRiverSeMgr.getDolbyPower(); + uVar8 = field_0x180.startEnvSeLevel(aJStack_742, dVar16, dVar18, dVar13, dVar14, dVar17, 0); + break; + case 3: + if (field_0x1b8 > 0) { + dVar18 *= (field_0x1b8 + 50) / 150.0f; + } else { + if (field_0x1b8 < 0) { + dVar18 *= (field_0x1b8 + 150) / 150.0f; + } else { + dVar18 *= 0.3f; + } + } + aJStack_742 = Z2SE_ENV_SEWER; + dVar18 *= linearTransform(field_0x18c.calcNoise1f(), 0.0f, 1.0f, 0.6f, 1.0f, + true); + dVar17 *= Z2Calc::linearTransform(field_0x19c.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.0f, + true); + uVar8 = field_0x180.startEnvSeLevel(aJStack_742, dVar16, dVar18, dVar13, dVar14, dVar17, 0); + break; + case 5: + aJStack_742 = Z2SE_ENV_SPIRIT_FOUNTAIN; + dVar18 *= Z2Calc::linearTransform(field_0x18c.calcNoise1f(), 0.0f, 1.0f, 0.6f, 1.0f, + true); + dVar17 *= Z2Calc::linearTransform(field_0x19c.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.0f, + true); + uVar8 = field_0x180.startEnvSeLevel(aJStack_742, dVar16, dVar18, dVar13, dVar14, dVar17, 0); + break; + } + + mRiverSeMgr.resetMultiSePos(); + return uVar8; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void Z2EnvSeMgr::startRiverSe(s8 param_0) { +asm bool Z2EnvSeMgr::startRiverSe(s8 param_1) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/startRiverSe__10Z2EnvSeMgrFSc.s" } #pragma pop +#endif /* 802C8730-802C886C 2C3070 013C+00 1/1 1/1 0/0 .text initFallSe__10Z2EnvSeMgrFUcUcUcUc */ +// Matches with literals +#ifdef NONMATCHING +void Z2EnvSeMgr::initFallSe(u8 param_1, u8 param_2, u8 param_3, u8 param_4) { + field_0x1e0 = param_1; + if (param_2 >= 100) { + field_0x1e4 = 1.0f; + } else { + field_0x1e4 = 0.01f * param_2; + } + if (param_3 == 0xff) { + field_0x1e8 = 1.0f; + } else { + field_0x1e8 = 0.01f * param_3; + } + if (param_4 == 0xff) { + field_0x1ec = 1.0f; + } else { + field_0x1ec = 0.1f * param_4; + } + switch (param_1) { + case 8: + mFallSeMgr.setVolumeScale(3.0f * field_0x1ec); + break; + case 9: + mFallSeMgr.setVolumeScale(3.0f * field_0x1ec); + break; + case 10: + mFallSeMgr.setVolumeScale(1.5f * field_0x1ec); + break; + case 11: + mFallSeMgr.setVolumeScale(1.5f * field_0x1ec); + break; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -855,27 +1764,59 @@ asm void Z2EnvSeMgr::initFallSe(u8 param_0, u8 param_1, u8 param_2, u8 param_3) #include "asm/Z2AudioLib/Z2EnvSeMgr/initFallSe__10Z2EnvSeMgrFUcUcUcUc.s" } #pragma pop +#endif /* 802C886C-802C8890 2C31AC 0024+00 0/0 1/1 0/0 .text registFallSePos__10Z2EnvSeMgrFP3Vec */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void Z2EnvSeMgr::registFallSePos(Vec* param_0) { - nofralloc -#include "asm/Z2AudioLib/Z2EnvSeMgr/registFallSePos__10Z2EnvSeMgrFP3Vec.s" +void Z2EnvSeMgr::registFallSePos(Vec* param_0) { + mFallSeMgr.registMultiSePos(param_0); } -#pragma pop /* 802C8890-802C8A90 2C31D0 0200+00 1/1 1/1 0/0 .text startFallSe__10Z2EnvSeMgrFSc */ +// Matches with literals +#ifdef NONMATCHING +bool Z2EnvSeMgr::startFallSe(s8 param_1) { + if (mFallSeMgr.getPosCount() < 0) { + return false; + } + JAISoundID aJStack_80 = 0xffffffff; + f32 dVar14 = param_1 / 127.0f; + f32 dVar13 = ((field_0x1e4 * mFallSeMgr.getMaxVolume()) * + Z2Calc::linearTransform(field_0x90.calcNoise1f(), 0.0f, 1.0f, 0.7f, 1.0f, true)); + f32 dVar15 = (field_0x1e8 * + Z2Calc::linearTransform(field_0xd0.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.1f, true)); + f32 dVar11 = mFallSeMgr.getPanPower(); + f32 dVar12 = mFallSeMgr.getDolbyPower(); + switch (field_0x1e0) { + case 8: + aJStack_80 = Z2SE_ENV_WATERFALL_NORMAL; + break; + case 9: + aJStack_80 = Z2SE_ENV_FALL_LV1BOSS; + break; + case 10: + aJStack_80 = Z2SE_ENV_SPIRIT_FALL; + dVar15 *= 0.75f; + break; + case 11: + aJStack_80 = Z2SE_ENV_SAND_FALL; + break; + } + + bool rv = field_0x1d8.startEnvSeLevel(aJStack_80, dVar14, dVar13, dVar11, dVar12, dVar15, 0); + mFallSeMgr.resetMultiSePos(); + return rv; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void Z2EnvSeMgr::startFallSe(s8 param_0) { +asm bool Z2EnvSeMgr::startFallSe(s8 param_0) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/startFallSe__10Z2EnvSeMgrFSc.s" } #pragma pop +#endif /* ############################################################################################## */ /* 803CBAD0-803CBB10 -00001 0040+00 1/1 0/0 0/0 .data @4734 */ @@ -902,6 +1843,52 @@ SECTION_DATA static void* lit_4734[16] = { SECTION_SDATA2 static f32 lit_4732 = 4.0f; /* 802C8A90-802C8C24 2C33D0 0194+00 2/1 1/1 0/0 .text initEtcSe__10Z2EnvSeMgrFUcUcUcUc */ +// Matches with literals +#ifdef NONMATCHING +void Z2EnvSeMgr::initEtcSe(u8 param_1, u8 param_2, u8 param_3, u8 param_4) { + field_0x214 = param_1; + if (param_2 >= 100) { + field_0x218 = 1.0f; + } else { + field_0x218 = 0.01f * param_2; + } + if (param_3 == 0xff) { + field_0x21c = 1.0f; + } else { + field_0x21c = 0.01f * param_3; + } + if (param_4 == 0xff) { + field_0x220 = 1.0f; + } else { + field_0x220 = 0.1f * param_4; + } + switch (param_1) { + case 17: + mEtcSeMgr.setVolumeScale(2.0f * field_0x220); + break; + case 18: + mEtcSeMgr.setVolumeScale(0.7f * field_0x220); + break; + case 25: + field_0x1c.setPanParam(0.0f, 1.0f, false, + true, 0.0018554000416770577f, 0.0008553999941796064f); + case 26: + case 30: + case 31: + mEtcSeMgr.setVolumeScale(2.0f * field_0x220); + break; + case 20: + mEtcSeMgr.setVolumeScale(field_0x220); + break; + case 16: + mEtcSeMgr.setVolumeScale(2.0f * field_0x220); + break; + case 24: + mEtcSeMgr.setVolumeScale(4.0f * field_0x1b4); + break; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -910,17 +1897,13 @@ asm void Z2EnvSeMgr::initEtcSe(u8 param_0, u8 param_1, u8 param_2, u8 param_3) { #include "asm/Z2AudioLib/Z2EnvSeMgr/initEtcSe__10Z2EnvSeMgrFUcUcUcUc.s" } #pragma pop +#endif /* 802C8C24-802C8C48 2C3564 0024+00 1/1 1/1 0/0 .text registEtcSePos__10Z2EnvSeMgrFP3Vec */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void Z2EnvSeMgr::registEtcSePos(Vec* param_0) { - nofralloc -#include "asm/Z2AudioLib/Z2EnvSeMgr/registEtcSePos__10Z2EnvSeMgrFP3Vec.s" +void Z2EnvSeMgr::registEtcSePos(Vec* param_0) { + mEtcSeMgr.registMultiSePos(param_0); } -#pragma pop /* ############################################################################################## */ /* 803CBB10-803CBB90 -00001 0080+00 1/1 0/0 0/0 .data @4839 */ @@ -969,46 +1952,174 @@ SECTION_SDATA2 static f32 lit_4834 = 13.0f / 10.0f; SECTION_SDATA2 static f32 lit_4835 = 89.0f / 100.0f; /* 80455E50-80455E54 004450 0004+00 2/2 0/0 0/0 .sdata2 @4836 */ -SECTION_SDATA2 static f32 lit_4836 = 0.3319999873638153f; +SECTION_SDATA2 static f32 lit_4836 = 0.332f; /* 80455E54-80455E58 004454 0004+00 2/2 0/0 0/0 .sdata2 @4837 */ -SECTION_SDATA2 static f32 lit_4837 = 0.6679999828338623f; +SECTION_SDATA2 static f32 lit_4837 = 0.668f; /* 802C8C48-802C92C8 2C3588 0680+00 2/1 1/1 0/0 .text startEtcSe__10Z2EnvSeMgrFSc */ +// Matches with literals +#ifdef NONMATCHING +bool Z2EnvSeMgr::startEtcSe(s8 param_1) { + f32 dVar17 = param_1 / 127.0f; + f32 dVar19 = (field_0x218 * mEtcSeMgr.getMaxVolume()); + f32 dVar14 = mEtcSeMgr.getPanPower(); + f32 dVar15 = mEtcSeMgr.getDolbyPower(); + bool rv = false; + f32 dVar18 = field_0x21c; + f32 local_90; + switch (field_0x214) { + case 0x11: + local_90 = Z2Calc::linearTransform(field_0x120.calcNoise1f(), 0.0f, 1.0f, 0.01f, 1.0f, + true); + dVar18 *= Z2Calc::linearTransform(field_0x130.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.2f, + true); + bool iVar8 = field_0x20c.startEnvSeLevel(Z2SE_OBJ_RANCH_WOODPLATE, dVar17, + (dVar19 * local_90), dVar14, dVar15, dVar18, 0); + local_90 = Z2Calc::linearTransform(local_90, 0.0f, 1.0f, 0.3f, 1.0f, true); + field_0x0.calcPan(); + field_0x1c.calcPan(); + bool iVar6 = field_0x0.startEnvSeAutoPanLevel(JA_SE_ATM_WIND_1, dVar17, local_90, dVar18); + bool iVar7 = field_0x1c.startEnvSeAutoPanLevel(JA_SE_ATM_WIND_1, dVar17, 0.7f * local_90, + (0.8f * dVar18)); + bool iVar5 = false; + if (iVar8 && iVar6 && iVar7) { + iVar5 = true; + } + rv = iVar5; + break; + case 0x12: + local_90 = ::Z2Calc::linearTransform(field_0x120.calcNoise1f(), 0.0f, 1.0f, 0.4f, 0.8f, + true); + dVar18 *= ::Z2Calc::linearTransform(field_0x130.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.3f, + true); + rv = field_0x20c.startEnvSeLevel(JA_SE_OBJ_WIND_TAG, dVar17, (dVar19 * local_90), dVar14, + dVar15, dVar18, 0); + break; + case 0x18: + if (mEtcSeMgr.getPosCount() < 0) { + return false; + } + rv = field_0x20c.startEnvSeLevel(JA_SE_MAGMA_L, dVar17, dVar19, dVar14, dVar15, dVar18, 0); + break; + case 0x1a: + case 0x1e: + if (mEtcSeMgr.getPosCount() < 0) { + return false; + } + rv = field_0x20c.startEnvSeLevel(Z2SE_ENV_WATER_SURFACE, dVar17, dVar19, dVar14, dVar15, + dVar18, 0); + break; + case 0x1f: + if (mEtcSeMgr.getPosCount() < 0) { + return false; + } + rv = field_0x20c.startEnvSeLevel(Z2SE_ENV_RIVER_NORMAL, dVar17, dVar19, dVar14, dVar15, + 0.89f * dVar18, 0); + break; + case 0x19: + if (Z2GetStatusMgr()->mCameraMapInfo == 6 && + (Z2GetSceneMgr()->getCurrentSceneNum() != 0x10 || + Z2GetStatusMgr()->mPolygonPosition.y < -14500.0f)) + { + f32 local_94 = (1.0f - dVar19); + registEtcSePos(&Z2GetStatusMgr()->mPolygonPosition); + dVar14 = mEtcSeMgr.getMaxVolume(); + dVar19 = field_0x218 * dVar14; + dVar14 = mEtcSeMgr.getPanPower(); + dVar15 = mEtcSeMgr.getDolbyPower(); + if (Z2GetSceneMgr()->isInDarkness()) { + dVar19 *= 0.75f; + } + local_94 *= dVar19; + field_0x1c.calcPan(); + field_0x1c.startEnvSeAutoPanLevel(Z2SE_ENV_LAKE_OFFSHORE, dVar17, local_94, 1.0f); + } else if (Z2GetSceneMgr()->isInDarkness()) { + dVar19 *= 0.75f; + } + rv = field_0x20c.startEnvSeLevel(Z2SE_ENV_LAKEWATER, dVar17, dVar19, dVar14, dVar15, dVar18, + 0); + break; + case 0x14: + local_90 = ::Z2Calc::linearTransform(field_0x120.calcNoise1f(), 0.0f, 1.0f, 0.4f, 0.8f, + true); + dVar18 *= ::Z2Calc::linearTransform(field_0x130.calcNoise1f(), 0.0f, 1.0f, 0.8f, 1.3f, + true); + rv = field_0x20c.startEnvSeLevel(Z2SE_ENV_SNOW_MT_WIND_ROOM, dVar17, (dVar19 * local_90), + dVar14, dVar15, dVar18, 0); + break; + case 0x0: + break; + case 0x10: + f32 local_98 = Z2Calc::getParamByExp(getFogDensity(), 0.4f, 1.0f, 0.2f, 0.2f, 1.0f, + Z2Calc::CURVE_SIGN_0); + f32 local_9c = Z2Calc::getParamByExp(getFogDensity(), 0.4f, 1.0f, 0.2f, 0.75f, 1.0f, + Z2Calc::CURVE_SIGN_0); + f32 local_a0 = field_0x2e8.calcNoise1f(); + rv = field_0x240.startEnvSeLevel(Z2SE_ENV_PUPPET_FOG_L, 0.3f, + (dVar19 * ((0.332f + 0.668f * local_a0) * local_98)), + dVar14, dVar15, 0.8f + 0.2f * local_a0, 0); + local_a0 = field_0x2f8.calcNoise1f(); + field_0x274.startEnvSeLevel(Z2SE_ENV_PUPPET_FOG_R, 0.3f, + local_98 * (dVar19 * (0.332f + 0.668f * local_a0)), dVar14, + dVar15, 0.8f + 0.2f * local_a0, 0); + break; + default: + return false; + } + mEtcSeMgr.resetMultiSePos(); + return rv; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void Z2EnvSeMgr::startEtcSe(s8 param_0) { +asm bool Z2EnvSeMgr::startEtcSe(s8 param_0) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/startEtcSe__10Z2EnvSeMgrFSc.s" } #pragma pop +#endif /* 802C92C8-802C92EC 2C3C08 0024+00 0/0 0/0 1/1 .text registWolfSmellSePos__10Z2EnvSeMgrFP3Vec */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void Z2EnvSeMgr::registWolfSmellSePos(Vec* param_0) { - nofralloc -#include "asm/Z2AudioLib/Z2EnvSeMgr/registWolfSmellSePos__10Z2EnvSeMgrFP3Vec.s" +void Z2EnvSeMgr::registWolfSmellSePos(Vec* param_0) { + mWolfSmellSeMgr.registMultiSePos(param_0); } -#pragma pop /* ############################################################################################## */ /* 80455E58-80455E5C 004458 0004+00 1/1 0/0 0/0 .sdata2 @4856 */ SECTION_SDATA2 static f32 lit_4856 = 340.0f; /* 802C92EC-802C93A0 2C3C2C 00B4+00 0/0 0/0 1/1 .text startFogWipeTrigger__10Z2EnvSeMgrFP3Vec */ +// Matches with literals +#ifdef NONMATCHING +bool Z2EnvSeMgr::startFogWipeTrigger(Vec* param_0) { + if (*field_0x240.getHandle()) { + f32 fogDensity = getFogDensity(); + u32 fogDensity2 = 340.0f * getFogDensity(); + return Z2GetSoundStarter()->startSound(Z2SE_ENV_FOG_WIPE, field_0x20c.getHandle(), + (JGeometry::TVec3*)param_0, fogDensity2, 0.3f, + 1.0f, fogDensity, -1.0f, -1.0f, 0); + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void Z2EnvSeMgr::startFogWipeTrigger(Vec* param_0) { +asm bool Z2EnvSeMgr::startFogWipeTrigger(Vec* param_0) { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/startFogWipeTrigger__10Z2EnvSeMgrFP3Vec.s" } #pragma pop +#endif /* 802C93A0-802C93E4 2C3CE0 0044+00 0/0 0/0 1/1 .text setFogWipeWidth__10Z2EnvSeMgrFf */ +// Matches with literals +#ifdef NONMATCHING +void Z2EnvSeMgr::setFogWipeWidth(f32 param_0) { + mFogDensity = Z2Calc::linearTransform(param_0, 0.0f, 1.0f, 1.0f, 0.4f, true); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1017,8 +2128,18 @@ asm void Z2EnvSeMgr::setFogWipeWidth(f32 param_0) { #include "asm/Z2AudioLib/Z2EnvSeMgr/setFogWipeWidth__10Z2EnvSeMgrFf.s" } #pragma pop +#endif /* 802C93E4-802C9400 2C3D24 001C+00 3/3 2/2 0/0 .text getFogDensity__10Z2EnvSeMgrFv */ +// Matches with literals +#ifdef NONMATCHING +f32 Z2EnvSeMgr::getFogDensity() { + if (field_0x214 == 0x10) { + return mFogDensity; + } + return 0.0f; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1027,20 +2148,44 @@ asm f32 Z2EnvSeMgr::getFogDensity() { #include "asm/Z2AudioLib/Z2EnvSeMgr/getFogDensity__10Z2EnvSeMgrFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80455E5C-80455E60 00445C 0004+00 1/1 0/0 0/0 .sdata2 @4879 */ SECTION_SDATA2 static f32 lit_4879 = 20.0f; /* 802C9400-802C950C 2C3D40 010C+00 0/0 0/0 1/1 .text startFogSe__10Z2EnvSeMgrFv */ +// fmuls reg order +#ifdef NONMATCHING +bool Z2EnvSeMgr::startFogSe() { + f32 dVar10 = field_0x2e8.calcNoise1f(); + f32 dVar14 = 0.332f + (0.668f * dVar10); + f32 dVar13 = 0.8f + (dVar10 * 0.2f); + f32 dVar12 = 0.5f - (dVar10 * 0.4f) / 2; + bool iVar5 = + field_0x240.startEnvSeLevel(Z2SE_ENV_PUPPET_FOG_L, 20.0f, dVar14, dVar12, 0.5f, dVar13, 0); + dVar10 = field_0x2f8.calcNoise1f(); + dVar14 = (0.332f + (0.668f * dVar10)); + dVar13 = (0.8f + (0.2f * dVar10)); + dVar12 = (0.5f + ( 0.4f * dVar10) / 2); + bool iVar6 = field_0x274.startEnvSeLevel(Z2SE_ENV_PUPPET_FOG_R, 20.0f, dVar14, dVar12, 0.5f, + dVar13, 0); + bool uVar8 = false; + if (iVar5 && iVar6) { + uVar8 = 1; + } + return uVar8; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void Z2EnvSeMgr::startFogSe() { +asm bool Z2EnvSeMgr::startFogSe() { nofralloc #include "asm/Z2AudioLib/Z2EnvSeMgr/startFogSe__10Z2EnvSeMgrFv.s" } #pragma pop +#endif /* ############################################################################################## */ /* 803CBB90-803CBBC8 -00001 0038+00 1/1 0/0 0/0 .data @5076 */ @@ -1076,6 +2221,240 @@ SECTION_DATA static void* lit_5074[10] = { }; /* 802C950C-802C9F58 2C3E4C 0A4C+00 2/0 1/1 0/0 .text initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc */ +// Matches with literals +#ifdef NONMATCHING +void Z2EnvSeMgr::initLv3WaterSe(u8 param_1, u8 param_2, u8 param_3, u8 param_4) { + switch (param_1) { + case 110: + field_0x248 = param_1; + if (param_2 >= 100) { + field_0x24c = 1.0f; + } else { + field_0x24c = 0.01f * param_2; + } + + if (param_3 == 0xff) { + field_0x250 = 1.0f; + } else { + field_0x250 = 0.01f * param_3; + } + + if (param_4 == 0xff) { + field_0x254 = 1.0f; + } else { + field_0x254 = 0.1f * param_4; + } + field_0x224.setVolumeScale(2.0f * field_0x254); + break; + case 115: + field_0x248 = param_1; + if (param_2 >= 100) { + field_0x24c = 1.0f; + } else { + field_0x24c = 0.01f * param_2; + } + if (param_3 == 0xff) { + field_0x250 = 1.0f; + } else { + field_0x250 = 0.01f * param_3; + } + if (param_4 == 0xff) { + field_0x254 = 1.0f; + } else { + field_0x254 = 0.1f * param_4; + } + field_0x224.setVolumeScale(1.5f * field_0x254); + break; + case 111: + field_0x27c = param_1; + if (param_2 >= 100) { + field_0x280 = 1.0f; + } else { + field_0x280 = 0.01f * param_2; + } + if (param_3 == 0xff) { + field_0x284 = 1.0f; + } else { + field_0x284 = 0.01f * param_3; + } + if (param_4 == 0xff) { + field_0x288 = 1.0f; + } else { + field_0x288 = 0.1f * param_4; + } + field_0x258.setVolumeScale(2.0f * field_0x288); + break; + case 116: + field_0x27c = param_1; + if (param_2 >= 100) { + field_0x280 = 1.0f; + } else { + field_0x280 = 0.01f * param_2; + } + if (param_3 == 0xff) { + field_0x284 = 1.0f; + } else { + field_0x284 = 0.01f * param_3; + } + if (param_4 == 0xff) { + field_0x288 = 1.0f; + } else { + field_0x288 = 0.1f * param_4; + } + field_0x258.setVolumeScale(1.5f * field_0x288); + break; + case 112: + field_0x2b0 = param_1; + if (param_2 >= 100) { + field_0x2b4 = 1.0f; + } else { + field_0x2b4 = 0.01f *param_2; + } + if (param_3 == 0xff) { + field_0x2b8 = 1.0f; + } else { + field_0x2b8 = 0.01f * param_3; + } + if (param_4 == 0xff) { + field_0x2bc = 1.0f; + } else { + field_0x2bc = 0.1f * param_4; + } + field_0x28c.setVolumeScale(2.0f * field_0x2bc); + break; + case 117: + field_0x2b0 = param_1; + if (param_2 >= 100) { + field_0x2b4 = 1.0f; + } else { + field_0x2b4 = 0.01f * param_2; + } + if (param_3 == 0xff) { + field_0x2b8 = 1.0f; + } else { + field_0x2b8 = 0.01f * param_3; + } + if (param_4 == 0xff) { + field_0x2bc = 1.0f; + } else { + field_0x2bc = 0.1f * param_4; + } + field_0x28c.setVolumeScale(1.5f * field_0x2bc); + break; + case 'w': + field_0x2b0 = param_1; + if (param_2 >= 100) { + field_0x2b4 = 1.0f; + } else { + field_0x2b4 = 0.01f * param_2; + } + if (param_3 == 0xff) { + field_0x2b8 = 1.0f; + } else { + field_0x2b8 = 0.01f * param_3; + } + if (param_4 == 0xff) { + field_0x2bc = 1.0f; + } else { + field_0x2bc = 0.1f * param_4; + } + field_0x28c.setVolumeScale(3.0f * field_0x2bc); + break; + default: + if (Z2GetSceneMgr()->getCurrentSceneNum() == 46) { + switch (Z2GetSceneMgr()->getCurrentRoomNum()) { + case 1: + if (param_1 == 107) { + initFallSe(9, param_2, 0x82, 5); + } + case 0: + case 5: + case 6: + case 9: + if (param_1 == 100) { + initEtcSe(0x1e, param_2, param_3, param_4); + } + break; + case 2: + if (param_1 == 100) { + initEtcSe(0x1f, param_2, param_3, 20); + } else if ((((param_1 == 103) || (param_1 == 104)) || (param_1 == 105)) || + (param_1 == 106)) + { + initLv3WaterSe(115, param_2, param_3, param_4); + } + break; + case 3: + if (((param_1 == 100) || (param_1 == 101)) || (param_1 == 102)) { + initEtcSe(0x1e, param_2, param_3, param_4); + } else if ((param_1 == 103) || (param_1 == 104)) { + initLv3WaterSe(115, param_2, param_3, param_4); + } else if ((param_1 == 105) || (param_1 == 106)) { + initLv3WaterSe(117, param_2, param_3, param_4); + } else if ((param_1 == 107) || (param_1 == 108)) { + initLv3WaterSe(111, param_2, param_3, 15); + } + break; + case 7: + if (param_1 == 103) { + initLv3WaterSe(115, param_2, param_3, param_4); + } else if (param_1 == 107) { + initFallSe(9, param_2, 0x82, param_4); + } + break; + case 8: + if ((param_1 == 100) || (param_1 == 101)) { + initEtcSe(0x1e, param_2, param_3, param_4); + } else if (param_1 == 103) { + initLv3WaterSe(115, param_2, param_3, param_4); + } else if (param_1 == 107) { + initLv3WaterSe(111, param_2, param_3, param_4); + } + break; + case 10: + if (param_1 == 100) { + initEtcSe(0x1e, param_2, param_3, param_4); + } else if (param_1 == 103) { + initLv3WaterSe(117, param_2, param_3, param_4); + } else if (param_1 == 104) { + initLv3WaterSe(116, param_2, param_3, param_4); + } else if (param_1 == 107) { + initFallSe(9, param_2, 0xa0, param_4); + } + break; + case 0xb: + if (param_1 == 100 || param_1 == 101) { + initEtcSe(0x1e, param_2, param_3, param_4); + } else if (param_1 == 103) { + initLv3WaterSe(115, param_2, param_3, param_4); + } else if (param_1 == 107) { + initFallSe(9, param_2, 0x82, param_4); + } + break; + case 0xc: + if (param_1 == 103) { + initLv3WaterSe(115, param_2, param_3, param_4); + } else if (param_1 == 107) { + initLv3WaterSe(111, param_2, 0x82, param_4); + } + break; + case 0xd: + if ((param_1 == 100) || (param_1 == 101)) { + initEtcSe(0x1e, param_2, param_3, param_4); + } else if (param_1 == 103) { + initLv3WaterSe(117, param_2, param_3, param_4); + } else if (param_1 == 104) { + initLv3WaterSe(116, param_2, param_3, param_4); + } else if (param_1 == 107) { + initFallSe(9, param_2, 0xa0, param_4); + } + break; + } + } + break; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1084,51 +2463,217 @@ asm void Z2EnvSeMgr::initLv3WaterSe(u8 param_0, u8 param_1, u8 param_2, u8 param #include "asm/Z2AudioLib/Z2EnvSeMgr/initLv3WaterSe__10Z2EnvSeMgrFUcUcUcUc.s" } #pragma pop - -/* ############################################################################################## */ -/* 803CBBF0-803CBC28 -00001 0038+00 1/1 0/0 0/0 .data @5259 */ -SECTION_DATA static void* lit_5259[14] = { - (void*)(((char*)registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec) + 0xBC), - (void*)(((char*)registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec) + 0xA4), - (void*)(((char*)registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec) + 0xD8), - (void*)(((char*)registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec) + 0x200), - (void*)(((char*)registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec) + 0x824), - (void*)(((char*)registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec) + 0xBC), - (void*)(((char*)registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec) + 0xBC), - (void*)(((char*)registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec) + 0x4B8), - (void*)(((char*)registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec) + 0x508), - (void*)(((char*)registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec) + 0xBC), - (void*)(((char*)registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec) + 0x5A4), - (void*)(((char*)registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec) + 0x684), - (void*)(((char*)registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec) + 0x708), - (void*)(((char*)registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec) + 0x770), -}; - -/* 803CBC28-803CBC50 -00001 0028+00 1/1 0/0 0/0 .data @5258 */ -SECTION_DATA static void* lit_5258[10] = { - (void*)(((char*)registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec) + 0x48), - (void*)(((char*)registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec) + 0x58), - (void*)(((char*)registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec) + 0x68), - (void*)(((char*)registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec) + 0x78), - (void*)(((char*)registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec) + 0x78), - (void*)(((char*)registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec) + 0x48), - (void*)(((char*)registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec) + 0x58), - (void*)(((char*)registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec) + 0x68), - (void*)(((char*)registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec) + 0x78), - (void*)(((char*)registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec) + 0x68), -}; +#endif /* 802C9F58-802CA794 2C4898 083C+00 2/0 1/1 0/0 .text registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void Z2EnvSeMgr::registLv3WaterSePos(u8 param_0, Vec* param_1) { - nofralloc -#include "asm/Z2AudioLib/Z2EnvSeMgr/registLv3WaterSePos__10Z2EnvSeMgrFUcP3Vec.s" +void Z2EnvSeMgr::registLv3WaterSePos(u8 param_1, Vec* param_2) { + switch (param_1) { + case 110: + case 115: + field_0x224.registMultiSePos(param_2); + break; + case 111: + case 116: + field_0x258.registMultiSePos(param_2); + break; + case 112: + case 117: + case 119: + field_0x28c.registMultiSePos(param_2); + break; + default: + switch (Z2GetSceneMgr()->getCurrentRoomNum()) { + case 1: + if (param_1 == 107) { + mFallSeMgr.registMultiSePos(param_2); + } + case 0: + case 5: + case 6: + case 9: + if (param_1 == 100) { + mEtcSeMgr.registMultiSePos(param_2); + } + break; + case 2: + if (param_1 == 100) { + mEtcSeMgr.registMultiSePos(param_2); + } else if (param_1 == 103 && dComIfGs_isSaveSwitch(8)) { + field_0x224.registMultiSePos(param_2); + } else if (param_1 == 104 && dComIfGs_isSaveSwitch(9)) { + field_0x224.registMultiSePos(param_2); + } else if (param_1 == 105 && dComIfGs_isSaveSwitch(8) && dComIfGs_isSaveSwitch(3)) { + field_0x224.registMultiSePos(param_2); + } else if (param_1 == 106 && dComIfGs_isSaveSwitch(9) && dComIfGs_isSaveSwitch(1)) { + field_0x224.registMultiSePos(param_2); + } + break; + case 3: + if (param_1 == 100 && !dComIfGs_isSaveSwitch(8) && !dComIfGs_isSaveSwitch(9)) { + mEtcSeMgr.registMultiSePos(param_2); + } else if ((param_1 == 101 && dComIfGs_isSaveSwitch(8) && + (!dComIfGs_isSaveSwitch(9))) || + (!dComIfGs_isSaveSwitch(8) && dComIfGs_isSaveSwitch(9))) + { + mEtcSeMgr.registMultiSePos(param_2); + } else if (param_1 == 102 && dComIfGs_isSaveSwitch(8) && dComIfGs_isSaveSwitch(9)) { + mEtcSeMgr.registMultiSePos(param_2); + } + if (param_1 == 103 && dComIfGs_isSaveSwitch(8)) { + field_0x224.registMultiSePos(param_2); + } + if (param_1 == 104 && dComIfGs_isSaveSwitch(9)) { + field_0x224.registMultiSePos(param_2); + } + if (param_1 == 105 && dComIfGs_isSaveSwitch(8) && dComIfGs_isSaveSwitch(3)) { + field_0x28c.registMultiSePos(param_2); + } else if (param_1 == 107 && dComIfGs_isSaveSwitch(8) && !dComIfGs_isSaveSwitch(3)) { + field_0x258.registMultiSePos(param_2); + } + if (param_1 == 106 && dComIfGs_isSaveSwitch(9) && dComIfGs_isSaveSwitch(1)) { + field_0x28c.registMultiSePos(param_2); + } else if (param_1 == 108 && dComIfGs_isSaveSwitch(9) && !dComIfGs_isSaveSwitch(1)) { + field_0x258.registMultiSePos(param_2); + } + break; + case 7: + if (dComIfGs_isSaveSwitch(8)) { + if (param_1 == 103) { + field_0x224.registMultiSePos(param_2); + } else if (param_1 == 107) { + mFallSeMgr.registMultiSePos(param_2); + } + } + break; + case 8: + if (dComIfGs_isSaveSwitch(9) && dComIfGs_isSaveSwitch(1)) { + if (param_1 == 101) { + mEtcSeMgr.registMultiSePos(param_2); + } else if (param_1 == 103) { + field_0x224.registMultiSePos(param_2); + } else if (param_1 == 107) { + field_0x258.registMultiSePos(param_2); + } + } else if (param_1 == 100) { + mEtcSeMgr.registMultiSePos(param_2); + } + break; + case 10: + if ((param_1 == 100) && dComIfGs_isSaveSwitch(0x31)) { + mEtcSeMgr.registMultiSePos(param_2); + } else if (param_1 == 103 && dComIfGs_isSaveSwitch(0x31)) { + field_0x28c.registMultiSePos(param_2); + } else if (param_1 == 104 && (dComIfGs_isSaveSwitch(8))) { + field_0x258.registMultiSePos(param_2); + } else if (param_1 == 107 && dComIfGs_isSaveSwitch(0x31)) { + mFallSeMgr.registMultiSePos(param_2); + } + break; + case 11: + if (dComIfGs_isSaveSwitch(9)) { + if (param_1 == 101) { + mEtcSeMgr.registMultiSePos(param_2); + } else if (param_1 == 103) { + field_0x224.registMultiSePos(param_2); + } else if (param_1 == 107) { + mFallSeMgr.registMultiSePos(param_2); + } + } else if (param_1 == 100) { + mEtcSeMgr.registMultiSePos(param_2); + } + break; + case 12: + if (dComIfGs_isSaveSwitch(8) && dComIfGs_isSaveSwitch(3)) { + if (param_1 == 103) { + field_0x224.registMultiSePos(param_2); + } else if (param_1 == 107) { + field_0x258.registMultiSePos(param_2); + } + } + break; + case 13: + if (dComIfGs_isSaveSwitch(0x30)) { + if (param_1 == 101) { + mEtcSeMgr.registMultiSePos(param_2); + } else if (param_1 == 103) { + field_0x28c.registMultiSePos(param_2); + } else if ((param_1 == 104) && (dComIfGs_isSaveSwitch(9))) { + field_0x258.registMultiSePos(param_2); + } else if (param_1 == 107) { + mFallSeMgr.registMultiSePos(param_2); + } + } else if (param_1 == 100) { + mEtcSeMgr.registMultiSePos(param_2); + } + } + } } -#pragma pop /* 802CA794-802CAAC0 2C50D4 032C+00 1/1 1/1 0/0 .text startLv3WaterSe__10Z2EnvSeMgrFSc */ +// Matches with literals +#ifdef NONMATCHING +void Z2EnvSeMgr::startLv3WaterSe(s8 param_1) { + if (Z2GetSceneMgr()->getCurrentSceneNum() == 0x2e) { + if (param_1 >= 0) { + field_0x140 = param_1; + return; + } + param_1 = field_0x140; + } + JAISoundID aJStack_60 = 0xffffffff; + f32 dVar12 = param_1 / 127.0f; + f32 maxVolume; + f32 panPower; + f32 dolbyPower; + if (field_0x224.getPosCount() >= 0) { + if (field_0x248 == 0x73) { + aJStack_60 = Z2SE_ENV_WATER_WAY; + } else if (field_0x248 == 0x6e) { + aJStack_60 = Z2SE_ENV_WATERFALL_CALM; + } + maxVolume = field_0x24c * field_0x224.getMaxVolume(); + panPower = field_0x224.getPanPower(); + dolbyPower = field_0x224.getDolbyPower(); + field_0x240.startEnvSeLevel(aJStack_60, dVar12, + maxVolume, panPower, dolbyPower, + field_0x250, 0); + field_0x224.resetMultiSePos(); + } + if (field_0x258.getPosCount() >= 0) { + if (field_0x27c == 0x74) { + aJStack_60 = Z2SE_ENV_WATER_WAY; + } else if (field_0x27c == 0x6f) { + aJStack_60 = Z2SE_ENV_WATERFALL_CALM; + } + maxVolume = field_0x280 * field_0x258.getMaxVolume(); + panPower = field_0x258.getPanPower(); + dolbyPower = field_0x258.getDolbyPower(); + field_0x274.startEnvSeLevel(aJStack_60, dVar12, + maxVolume, panPower, dolbyPower, + field_0x284, 0); + field_0x258.resetMultiSePos(); + } + if (field_0x28c.getPosCount() >= 0) { + if (field_0x2b0 == 0x75) { + aJStack_60 = Z2SE_ENV_WATER_WAY_L; + } else if (field_0x2b0 == 0x70) { + aJStack_60 = Z2SE_ENV_WATERFALL_CALM; + } else if (field_0x2b0 == 0x77) { + aJStack_60 = Z2SE_ENV_VALLEY_WIND; + } + maxVolume = field_0x2b4 * field_0x28c.getMaxVolume(); + panPower = field_0x28c.getPanPower(); + dolbyPower = field_0x28c.getDolbyPower(); + field_0x2a8.startEnvSeLevel(aJStack_60, dVar12, + maxVolume, panPower, dolbyPower, + field_0x2b8, 0); + field_0x28c.resetMultiSePos(); + } + startRiverSe(param_1); + startFallSe(param_1); + startEtcSe(param_1); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1137,3 +2682,4 @@ asm void Z2EnvSeMgr::startLv3WaterSe(s8 param_0) { #include "asm/Z2AudioLib/Z2EnvSeMgr/startLv3WaterSe__10Z2EnvSeMgrFSc.s" } #pragma pop +#endif diff --git a/libs/Z2AudioLib/Z2SeMgr.cpp b/libs/Z2AudioLib/Z2SeMgr.cpp index c9d0ce61ac4..12b28740f90 100644 --- a/libs/Z2AudioLib/Z2SeMgr.cpp +++ b/libs/Z2AudioLib/Z2SeMgr.cpp @@ -1338,7 +1338,7 @@ void Z2MultiSeMgr::resetMultiSePos(void) { /* 802AECE0-802AEDC0 2A9620 00E0+00 1/1 8/8 0/0 .text getPanPower__12Z2MultiSeMgrFv */ #ifdef NONMATCHING -// regalloc +// Matches with literals f32 Z2MultiSeMgr::getPanPower() { f32 pow_r = getMaxPowR(); f32 pow_l = getMaxPowL(); @@ -1363,7 +1363,7 @@ asm f32 Z2MultiSeMgr::getPanPower() { /* 802AEDC0-802AEEA0 2A9700 00E0+00 1/1 8/8 0/0 .text getDolbyPower__12Z2MultiSeMgrFv */ #ifdef NONMATCHING -// regalloc +// Matches with literals f32 Z2MultiSeMgr::getDolbyPower() { f32 pow_b = getMaxPowB(); f32 pow_f = getMaxPowF(); diff --git a/libs/Z2AudioLib/Z2SeqMgr.cpp b/libs/Z2AudioLib/Z2SeqMgr.cpp index 6df0cb42bb2..2c3db4c8660 100644 --- a/libs/Z2AudioLib/Z2SeqMgr.cpp +++ b/libs/Z2AudioLib/Z2SeqMgr.cpp @@ -1087,11 +1087,11 @@ asm void Z2SeqMgr::subBgmStopInner() { #endif /* 802AFB94-802AFDEC 2AA4D4 0258+00 1/1 3/3 46/46 .text bgmStreamPrepare__8Z2SeqMgrFUl */ +// Matches with literals #ifdef NONMATCHING -// regalloc void Z2SeqMgr::bgmStreamPrepare(u32 i_bgmID) { if (mStreamBgmHandle) { - mStreamBgmHandle->stop(0); + bgmStreamStop(0); } Z2GetSoundMgr()->startSound(i_bgmID, &mStreamBgmHandle, NULL); mStreamBgmHandle->lockWhenPrepared(); @@ -2864,6 +2864,7 @@ asm void Z2SeqMgr::battleBgmFramework() { #endif /* 802B4EB0-802B5204 2AF7F0 0354+00 1/1 0/0 0/0 .text startBattleBgm__8Z2SeqMgrFb */ +// Matches with literals #ifdef NONMATCHING void Z2SeqMgr::startBattleBgm(bool i_fade) { if (!mFlags.mBattleBgmOff && Z2GetSceneMgr()->isSceneExist() @@ -2873,7 +2874,8 @@ void Z2SeqMgr::startBattleBgm(bool i_fade) { if (Z2GetSceneMgr()->isInDarkness() || Z2GetSoundObjMgr()->isTwilightBattle()) { bgm_id = Z2BGM_BATTLE_TWILIGHT; } - if (getSubBgmID() != bgm_id) { + u32 subBgmID = getSubBgmID(); + if (subBgmID != bgm_id) { mBattleSeqState = 1; if (Z2GetSoundMgr()->startSound(bgm_id, &mSubBgmHandle, NULL)) { Z2GetSoundObjMgr()->setBattleInit(); @@ -3099,6 +3101,7 @@ SECTION_DATA static void* lit_6877[21] = { }; /* 802B594C-802B5E80 2B028C 0534+00 2/1 0/0 0/0 .text fieldBgmFramework__8Z2SeqMgrFv */ +// Switch table needs to be verified #ifdef NONMATCHING void Z2SeqMgr::fieldBgmFramework() { if (Z2GetSceneMgr()->isSceneExist() && !Z2GetSceneMgr()->isInDarkness() @@ -3158,6 +3161,12 @@ void Z2SeqMgr::fieldBgmFramework() { case 4: changeBgmStatus(5); break; + case 0: + case 1: + case 5: + case 7: + case 19: + case 20: default: changeBgmStatus(4); break;