Z2SoundObject, JAUSoundAnimator OK, work on Z2SoundHandles (#1968)

* d_a_tag_evtarea mostly done, work on d_a_npc

* work on d_a_npc_ash

* work on Z2SoundHandles

* Z2SoundObject, JAUSoundAnimator OK

* Update Progress.md

---------

Co-authored-by: randomsalience <randomsalience@gmail.com>
This commit is contained in:
randomsalience 2023-10-26 08:41:03 -04:00 committed by GitHub
parent e2d51bf956
commit b13ff9e3d0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
46 changed files with 672 additions and 2539 deletions

View File

@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes)
.init | 97.972973% | 9280 | 9472
.extab | 100.000000% | 96 | 96
.extabindex | 100.000000% | 96 | 96
.text | 34.328845% | 1234652 | 3596544
.text | 34.566072% | 1243184 | 3596544
.ctors | 100.000000% | 448 | 448
.dtors | 100.000000% | 32 | 32
.rodata | 100.000000% | 193856 | 193856
.data | 100.000000% | 197632 | 197632
.sdata | 100.000000% | 1408 | 1408
.sdata2 | 100.000000% | 20832 | 20832
Total | 41.251512% | 1658588 | 4020672
Total | 41.463716% | 1667120 | 4020672
## Total
Section | Percentage | Decompiled (bytes) | Total (bytes)
---|---|---|---
main.dol | 41.251512% | 1658588 | 4020672
main.dol | 41.463716% | 1667120 | 4020672
RELs | 34.646328% | 3984440 | 11500324
Total | 36.357383% | 5643028 | 15520996
Total | 36.412354% | 5651560 | 15520996
## RELs

View File

@ -1,60 +0,0 @@
lbl_802A7044:
/* 802A7044 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 802A7048 7C 08 02 A6 */ mflr r0
/* 802A704C 90 01 00 34 */ stw r0, 0x34(r1)
/* 802A7050 DB E1 00 20 */ stfd f31, 0x20(r1)
/* 802A7054 F3 E1 00 28 */ psq_st f31, 40(r1), 0, 0 /* qr0 */
/* 802A7058 39 61 00 20 */ addi r11, r1, 0x20
/* 802A705C 48 0B B1 7D */ bl _savegpr_28
/* 802A7060 7C 7C 1B 78 */ mr r28, r3
/* 802A7064 FF E0 08 90 */ fmr f31, f1
/* 802A7068 3B A0 00 00 */ li r29, 0
/* 802A706C 3B E0 00 00 */ li r31, 0
/* 802A7070 83 C3 00 04 */ lwz r30, 4(r3)
/* 802A7074 48 00 00 48 */ b lbl_802A70BC
lbl_802A7078:
/* 802A7078 28 1E 00 00 */ cmplwi r30, 0
/* 802A707C 41 82 00 24 */ beq lbl_802A70A0
/* 802A7080 7F C3 F3 78 */ mr r3, r30
/* 802A7084 7F 84 E3 78 */ mr r4, r28
/* 802A7088 7F A5 EB 78 */ mr r5, r29
/* 802A708C 81 9E 00 00 */ lwz r12, 0(r30)
/* 802A7090 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 802A7094 7D 89 03 A6 */ mtctr r12
/* 802A7098 4E 80 04 21 */ bctrl
/* 802A709C 48 00 00 0C */ b lbl_802A70A8
lbl_802A70A0:
/* 802A70A0 38 7F 00 08 */ addi r3, r31, 8
/* 802A70A4 7C 7C 1A 14 */ add r3, r28, r3
lbl_802A70A8:
/* 802A70A8 C0 03 00 04 */ lfs f0, 4(r3)
/* 802A70AC FC 00 F8 40 */ fcmpo cr0, f0, f31
/* 802A70B0 41 81 00 40 */ bgt lbl_802A70F0
/* 802A70B4 3B BD 00 01 */ addi r29, r29, 1
/* 802A70B8 3B FF 00 20 */ addi r31, r31, 0x20
lbl_802A70BC:
/* 802A70BC 28 1E 00 00 */ cmplwi r30, 0
/* 802A70C0 41 82 00 20 */ beq lbl_802A70E0
/* 802A70C4 7F C3 F3 78 */ mr r3, r30
/* 802A70C8 7F 84 E3 78 */ mr r4, r28
/* 802A70CC 81 9E 00 00 */ lwz r12, 0(r30)
/* 802A70D0 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 802A70D4 7D 89 03 A6 */ mtctr r12
/* 802A70D8 4E 80 04 21 */ bctrl
/* 802A70DC 48 00 00 08 */ b lbl_802A70E4
lbl_802A70E0:
/* 802A70E0 A0 7C 00 00 */ lhz r3, 0(r28)
lbl_802A70E4:
/* 802A70E4 54 60 04 3E */ clrlwi r0, r3, 0x10
/* 802A70E8 7C 1D 00 00 */ cmpw r29, r0
/* 802A70EC 41 80 FF 8C */ blt lbl_802A7078
lbl_802A70F0:
/* 802A70F0 7F A3 EB 78 */ mr r3, r29
/* 802A70F4 E3 E1 00 28 */ psq_l f31, 40(r1), 0, 0 /* qr0 */
/* 802A70F8 CB E1 00 20 */ lfd f31, 0x20(r1)
/* 802A70FC 39 61 00 20 */ addi r11, r1, 0x20
/* 802A7100 48 0B B1 25 */ bl _restgpr_28
/* 802A7104 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802A7108 7C 08 03 A6 */ mtlr r0
/* 802A710C 38 21 00 30 */ addi r1, r1, 0x30
/* 802A7110 4E 80 00 20 */ blr

View File

@ -1,61 +0,0 @@
lbl_802A6F70:
/* 802A6F70 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 802A6F74 7C 08 02 A6 */ mflr r0
/* 802A6F78 90 01 00 34 */ stw r0, 0x34(r1)
/* 802A6F7C DB E1 00 20 */ stfd f31, 0x20(r1)
/* 802A6F80 F3 E1 00 28 */ psq_st f31, 40(r1), 0, 0 /* qr0 */
/* 802A6F84 39 61 00 20 */ addi r11, r1, 0x20
/* 802A6F88 48 0B B2 51 */ bl _savegpr_28
/* 802A6F8C 7C 7C 1B 78 */ mr r28, r3
/* 802A6F90 FF E0 08 90 */ fmr f31, f1
/* 802A6F94 3B A0 00 00 */ li r29, 0
/* 802A6F98 3B E0 00 00 */ li r31, 0
/* 802A6F9C 83 C3 00 04 */ lwz r30, 4(r3)
/* 802A6FA0 48 00 00 4C */ b lbl_802A6FEC
lbl_802A6FA4:
/* 802A6FA4 28 1E 00 00 */ cmplwi r30, 0
/* 802A6FA8 41 82 00 24 */ beq lbl_802A6FCC
/* 802A6FAC 7F C3 F3 78 */ mr r3, r30
/* 802A6FB0 7F 84 E3 78 */ mr r4, r28
/* 802A6FB4 7F A5 EB 78 */ mr r5, r29
/* 802A6FB8 81 9E 00 00 */ lwz r12, 0(r30)
/* 802A6FBC 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 802A6FC0 7D 89 03 A6 */ mtctr r12
/* 802A6FC4 4E 80 04 21 */ bctrl
/* 802A6FC8 48 00 00 0C */ b lbl_802A6FD4
lbl_802A6FCC:
/* 802A6FCC 38 7F 00 08 */ addi r3, r31, 8
/* 802A6FD0 7C 7C 1A 14 */ add r3, r28, r3
lbl_802A6FD4:
/* 802A6FD4 C0 03 00 04 */ lfs f0, 4(r3)
/* 802A6FD8 FC 00 F8 40 */ fcmpo cr0, f0, f31
/* 802A6FDC 4C 41 13 82 */ cror 2, 1, 2
/* 802A6FE0 41 82 00 40 */ beq lbl_802A7020
/* 802A6FE4 3B BD 00 01 */ addi r29, r29, 1
/* 802A6FE8 3B FF 00 20 */ addi r31, r31, 0x20
lbl_802A6FEC:
/* 802A6FEC 28 1E 00 00 */ cmplwi r30, 0
/* 802A6FF0 41 82 00 20 */ beq lbl_802A7010
/* 802A6FF4 7F C3 F3 78 */ mr r3, r30
/* 802A6FF8 7F 84 E3 78 */ mr r4, r28
/* 802A6FFC 81 9E 00 00 */ lwz r12, 0(r30)
/* 802A7000 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 802A7004 7D 89 03 A6 */ mtctr r12
/* 802A7008 4E 80 04 21 */ bctrl
/* 802A700C 48 00 00 08 */ b lbl_802A7014
lbl_802A7010:
/* 802A7010 A0 7C 00 00 */ lhz r3, 0(r28)
lbl_802A7014:
/* 802A7014 54 60 04 3E */ clrlwi r0, r3, 0x10
/* 802A7018 7C 1D 00 00 */ cmpw r29, r0
/* 802A701C 41 80 FF 88 */ blt lbl_802A6FA4
lbl_802A7020:
/* 802A7020 7F A3 EB 78 */ mr r3, r29
/* 802A7024 E3 E1 00 28 */ psq_l f31, 40(r1), 0, 0 /* qr0 */
/* 802A7028 CB E1 00 20 */ lfd f31, 0x20(r1)
/* 802A702C 39 61 00 20 */ addi r11, r1, 0x20
/* 802A7030 48 0B B1 F5 */ bl _restgpr_28
/* 802A7034 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802A7038 7C 08 03 A6 */ mtlr r0
/* 802A703C 38 21 00 30 */ addi r1, r1, 0x30
/* 802A7040 4E 80 00 20 */ blr

View File

@ -1,59 +0,0 @@
lbl_802AB3D0:
/* 802AB3D0 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 802AB3D4 7C 08 02 A6 */ mflr r0
/* 802AB3D8 90 01 00 34 */ stw r0, 0x34(r1)
/* 802AB3DC 39 61 00 30 */ addi r11, r1, 0x30
/* 802AB3E0 48 0B 6D F1 */ bl _savegpr_26
/* 802AB3E4 7C 9A 23 78 */ mr r26, r4
/* 802AB3E8 83 ED 85 DC */ lwz r31, __OSReport_disable-0x3C(r13)
/* 802AB3EC 3C 80 00 01 */ lis r4, 0x0001 /* 0x0000FFFF@ha */
/* 802AB3F0 3B A4 FF FF */ addi r29, r4, 0xFFFF /* 0x0000FFFF@l */
/* 802AB3F4 3B 80 00 00 */ li r28, 0
/* 802AB3F8 83 63 00 00 */ lwz r27, 0(r3)
/* 802AB3FC 48 00 00 50 */ b lbl_802AB44C
lbl_802AB400:
/* 802AB400 83 DB 00 00 */ lwz r30, 0(r27)
/* 802AB404 80 7E 00 00 */ lwz r3, 0(r30)
/* 802AB408 28 03 00 00 */ cmplwi r3, 0
/* 802AB40C 40 82 00 0C */ bne lbl_802AB418
/* 802AB410 7F C3 F3 78 */ mr r3, r30
/* 802AB414 48 00 00 74 */ b lbl_802AB488
lbl_802AB418:
/* 802AB418 80 03 00 18 */ lwz r0, 0x18(r3)
/* 802AB41C 90 01 00 0C */ stw r0, 0xc(r1)
/* 802AB420 7F E3 FB 78 */ mr r3, r31
/* 802AB424 38 81 00 0C */ addi r4, r1, 0xc
/* 802AB428 81 9F 00 00 */ lwz r12, 0(r31)
/* 802AB42C 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 802AB430 7D 89 03 A6 */ mtctr r12
/* 802AB434 4E 80 04 21 */ bctrl
/* 802AB438 7C 03 E8 40 */ cmplw r3, r29
/* 802AB43C 40 80 00 0C */ bge lbl_802AB448
/* 802AB440 7C 7D 1B 78 */ mr r29, r3
/* 802AB444 7F DC F3 78 */ mr r28, r30
lbl_802AB448:
/* 802AB448 83 7B 00 0C */ lwz r27, 0xc(r27)
lbl_802AB44C:
/* 802AB44C 28 1B 00 00 */ cmplwi r27, 0
/* 802AB450 40 82 FF B0 */ bne lbl_802AB400
/* 802AB454 80 1A 00 00 */ lwz r0, 0(r26)
/* 802AB458 90 01 00 08 */ stw r0, 8(r1)
/* 802AB45C 7F E3 FB 78 */ mr r3, r31
/* 802AB460 38 81 00 08 */ addi r4, r1, 8
/* 802AB464 81 9F 00 00 */ lwz r12, 0(r31)
/* 802AB468 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 802AB46C 7D 89 03 A6 */ mtctr r12
/* 802AB470 4E 80 04 21 */ bctrl
/* 802AB474 7C 03 E8 40 */ cmplw r3, r29
/* 802AB478 41 80 00 0C */ blt lbl_802AB484
/* 802AB47C 7F 83 E3 78 */ mr r3, r28
/* 802AB480 48 00 00 08 */ b lbl_802AB488
lbl_802AB484:
/* 802AB484 38 60 00 00 */ li r3, 0
lbl_802AB488:
/* 802AB488 39 61 00 30 */ addi r11, r1, 0x30
/* 802AB48C 48 0B 6D 91 */ bl _restgpr_26
/* 802AB490 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802AB494 7C 08 03 A6 */ mtlr r0
/* 802AB498 38 21 00 30 */ addi r1, r1, 0x30
/* 802AB49C 4E 80 00 20 */ blr

View File

@ -1,19 +0,0 @@
lbl_802BEB94:
/* 802BEB94 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802BEB98 7C 08 02 A6 */ mflr r0
/* 802BEB9C 90 01 00 14 */ stw r0, 0x14(r1)
/* 802BEBA0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802BEBA4 7C 7F 1B 78 */ mr r31, r3
/* 802BEBA8 4B FF F3 49 */ bl __ct__14Z2SoundObjBaseFv
/* 802BEBAC 3C 60 80 3D */ lis r3, __vt__15Z2SoundObjAnime@ha /* 0x803CACD0@ha */
/* 802BEBB0 38 03 AC D0 */ addi r0, r3, __vt__15Z2SoundObjAnime@l /* 0x803CACD0@l */
/* 802BEBB4 90 1F 00 10 */ stw r0, 0x10(r31)
/* 802BEBB8 38 00 00 00 */ li r0, 0
/* 802BEBBC 90 1F 00 20 */ stw r0, 0x20(r31)
/* 802BEBC0 98 1F 00 44 */ stb r0, 0x44(r31)
/* 802BEBC4 7F E3 FB 78 */ mr r3, r31
/* 802BEBC8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802BEBCC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802BEBD0 7C 08 03 A6 */ mtlr r0
/* 802BEBD4 38 21 00 10 */ addi r1, r1, 0x10
/* 802BEBD8 4E 80 00 20 */ blr

View File

@ -1,16 +0,0 @@
lbl_802BEB38:
/* 802BEB38 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802BEB3C 7C 08 02 A6 */ mflr r0
/* 802BEB40 90 01 00 14 */ stw r0, 0x14(r1)
/* 802BEB44 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802BEB48 7C 7F 1B 78 */ mr r31, r3
/* 802BEB4C 4B FF FA 55 */ bl __ct__21Z2DopplerSoundObjBaseFv
/* 802BEB50 3C 60 80 3D */ lis r3, __vt__15Z2SoundObjArrow@ha /* 0x803CACF0@ha */
/* 802BEB54 38 03 AC F0 */ addi r0, r3, __vt__15Z2SoundObjArrow@l /* 0x803CACF0@l */
/* 802BEB58 90 1F 00 10 */ stw r0, 0x10(r31)
/* 802BEB5C 7F E3 FB 78 */ mr r3, r31
/* 802BEB60 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802BEB64 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802BEB68 7C 08 03 A6 */ mtlr r0
/* 802BEB6C 38 21 00 10 */ addi r1, r1, 0x10
/* 802BEB70 4E 80 00 20 */ blr

View File

@ -1,16 +0,0 @@
lbl_802BE844:
/* 802BE844 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802BE848 7C 08 02 A6 */ mflr r0
/* 802BE84C 90 01 00 14 */ stw r0, 0x14(r1)
/* 802BE850 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802BE854 7C 7F 1B 78 */ mr r31, r3
/* 802BE858 4B FF F6 99 */ bl __ct__14Z2SoundObjBaseFv
/* 802BE85C 3C 60 80 3D */ lis r3, __vt__16Z2SoundObjSimple@ha /* 0x803CAD10@ha */
/* 802BE860 38 03 AD 10 */ addi r0, r3, __vt__16Z2SoundObjSimple@l /* 0x803CAD10@l */
/* 802BE864 90 1F 00 10 */ stw r0, 0x10(r31)
/* 802BE868 7F E3 FB 78 */ mr r3, r31
/* 802BE86C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802BE870 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802BE874 7C 08 03 A6 */ mtlr r0
/* 802BE878 38 21 00 10 */ addi r1, r1, 0x10
/* 802BE87C 4E 80 00 20 */ blr

View File

@ -1,24 +0,0 @@
lbl_802BE5A0:
/* 802BE5A0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802BE5A4 7C 08 02 A6 */ mflr r0
/* 802BE5A8 90 01 00 14 */ stw r0, 0x14(r1)
/* 802BE5AC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802BE5B0 7C 7F 1B 78 */ mr r31, r3
/* 802BE5B4 4B FF F9 3D */ bl __ct__14Z2SoundObjBaseFv
/* 802BE5B8 3C 60 80 3D */ lis r3, __vt__21Z2DopplerSoundObjBase@ha /* 0x803CAD30@ha */
/* 802BE5BC 38 03 AD 30 */ addi r0, r3, __vt__21Z2DopplerSoundObjBase@l /* 0x803CAD30@l */
/* 802BE5C0 90 1F 00 10 */ stw r0, 0x10(r31)
/* 802BE5C4 3C 60 80 3A */ lis r3, cNullVec__6Z2Calc@ha /* 0x8039C230@ha */
/* 802BE5C8 38 63 C2 30 */ addi r3, r3, cNullVec__6Z2Calc@l /* 0x8039C230@l */
/* 802BE5CC E0 23 00 00 */ psq_l f1, 0(r3), 0, 0 /* qr0 */
/* 802BE5D0 C0 03 00 08 */ lfs f0, 8(r3)
/* 802BE5D4 F0 3F 00 20 */ psq_st f1, 32(r31), 0, 0 /* qr0 */
/* 802BE5D8 D0 1F 00 28 */ stfs f0, 0x28(r31)
/* 802BE5DC F0 3F 00 2C */ psq_st f1, 44(r31), 0, 0 /* qr0 */
/* 802BE5E0 D0 1F 00 34 */ stfs f0, 0x34(r31)
/* 802BE5E4 7F E3 FB 78 */ mr r3, r31
/* 802BE5E8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802BE5EC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802BE5F0 7C 08 03 A6 */ mtlr r0
/* 802BE5F4 38 21 00 10 */ addi r1, r1, 0x10
/* 802BE5F8 4E 80 00 20 */ blr

View File

@ -1,26 +0,0 @@
lbl_802BE5FC:
/* 802BE5FC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802BE600 7C 08 02 A6 */ mflr r0
/* 802BE604 90 01 00 14 */ stw r0, 0x14(r1)
/* 802BE608 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802BE60C 93 C1 00 08 */ stw r30, 8(r1)
/* 802BE610 7C 7E 1B 79 */ or. r30, r3, r3
/* 802BE614 7C 9F 23 78 */ mr r31, r4
/* 802BE618 41 82 00 28 */ beq lbl_802BE640
/* 802BE61C 3C 80 80 3D */ lis r4, __vt__21Z2DopplerSoundObjBase@ha /* 0x803CAD30@ha */
/* 802BE620 38 04 AD 30 */ addi r0, r4, __vt__21Z2DopplerSoundObjBase@l /* 0x803CAD30@l */
/* 802BE624 90 1E 00 10 */ stw r0, 0x10(r30)
/* 802BE628 38 80 00 00 */ li r4, 0
/* 802BE62C 4B FF F9 1D */ bl __dt__14Z2SoundObjBaseFv
/* 802BE630 7F E0 07 35 */ extsh. r0, r31
/* 802BE634 40 81 00 0C */ ble lbl_802BE640
/* 802BE638 7F C3 F3 78 */ mr r3, r30
/* 802BE63C 48 01 07 01 */ bl __dl__FPv
lbl_802BE640:
/* 802BE640 7F C3 F3 78 */ mr r3, r30
/* 802BE644 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802BE648 83 C1 00 08 */ lwz r30, 8(r1)
/* 802BE64C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802BE650 7C 08 03 A6 */ mtlr r0
/* 802BE654 38 21 00 10 */ addi r1, r1, 0x10
/* 802BE658 4E 80 00 20 */ blr

View File

@ -1,105 +0,0 @@
lbl_802BED68:
/* 802BED68 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802BED6C 7C 08 02 A6 */ mflr r0
/* 802BED70 90 01 00 14 */ stw r0, 0x14(r1)
/* 802BED74 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802BED78 93 C1 00 08 */ stw r30, 8(r1)
/* 802BED7C 7C 7F 1B 78 */ mr r31, r3
/* 802BED80 3B C0 00 00 */ li r30, 0
/* 802BED84 48 00 01 2C */ b lbl_802BEEB0
lbl_802BED88:
/* 802BED88 7F E3 FB 78 */ mr r3, r31
/* 802BED8C 7F C4 F3 78 */ mr r4, r30
/* 802BED90 48 01 D4 7D */ bl getNthLink__10JSUPtrListCFUl
/* 802BED94 28 03 00 00 */ cmplwi r3, 0
/* 802BED98 41 82 00 08 */ beq lbl_802BEDA0
/* 802BED9C 38 63 FF FC */ addi r3, r3, -4
lbl_802BEDA0:
/* 802BEDA0 80 03 00 00 */ lwz r0, 0(r3)
/* 802BEDA4 28 00 00 00 */ cmplwi r0, 0
/* 802BEDA8 41 82 01 04 */ beq lbl_802BEEAC
/* 802BEDAC 7F E3 FB 78 */ mr r3, r31
/* 802BEDB0 7F C4 F3 78 */ mr r4, r30
/* 802BEDB4 48 01 D4 59 */ bl getNthLink__10JSUPtrListCFUl
/* 802BEDB8 28 03 00 00 */ cmplwi r3, 0
/* 802BEDBC 41 82 00 08 */ beq lbl_802BEDC4
/* 802BEDC0 38 63 FF FC */ addi r3, r3, -4
lbl_802BEDC4:
/* 802BEDC4 80 63 00 00 */ lwz r3, 0(r3)
/* 802BEDC8 88 03 00 1F */ lbz r0, 0x1f(r3)
/* 802BEDCC 54 00 E7 BE */ rlwinm r0, r0, 0x1c, 0x1e, 0x1f
/* 802BEDD0 2C 00 00 01 */ cmpwi r0, 1
/* 802BEDD4 41 82 00 10 */ beq lbl_802BEDE4
/* 802BEDD8 40 80 00 D4 */ bge lbl_802BEEAC
/* 802BEDDC 48 00 00 D0 */ b lbl_802BEEAC
/* 802BEDE0 48 00 00 CC */ b lbl_802BEEAC
lbl_802BEDE4:
/* 802BEDE4 7F E3 FB 78 */ mr r3, r31
/* 802BEDE8 7F C4 F3 78 */ mr r4, r30
/* 802BEDEC 48 01 D4 21 */ bl getNthLink__10JSUPtrListCFUl
/* 802BEDF0 28 03 00 00 */ cmplwi r3, 0
/* 802BEDF4 41 82 00 08 */ beq lbl_802BEDFC
/* 802BEDF8 38 63 FF FC */ addi r3, r3, -4
lbl_802BEDFC:
/* 802BEDFC 80 63 00 00 */ lwz r3, 0(r3)
/* 802BEE00 88 03 00 1D */ lbz r0, 0x1d(r3)
/* 802BEE04 54 00 D7 FF */ rlwinm. r0, r0, 0x1a, 0x1f, 0x1f
/* 802BEE08 41 82 00 28 */ beq lbl_802BEE30
/* 802BEE0C 7F E3 FB 78 */ mr r3, r31
/* 802BEE10 7F C4 F3 78 */ mr r4, r30
/* 802BEE14 48 01 D3 F9 */ bl getNthLink__10JSUPtrListCFUl
/* 802BEE18 28 03 00 00 */ cmplwi r3, 0
/* 802BEE1C 41 82 00 08 */ beq lbl_802BEE24
/* 802BEE20 38 63 FF FC */ addi r3, r3, -4
lbl_802BEE24:
/* 802BEE24 80 63 00 00 */ lwz r3, 0(r3)
/* 802BEE28 4B FE 37 71 */ bl stop__8JAISoundFv
/* 802BEE2C 48 00 00 80 */ b lbl_802BEEAC
lbl_802BEE30:
/* 802BEE30 7F E3 FB 78 */ mr r3, r31
/* 802BEE34 7F C4 F3 78 */ mr r4, r30
/* 802BEE38 48 01 D3 D5 */ bl getNthLink__10JSUPtrListCFUl
/* 802BEE3C 28 03 00 00 */ cmplwi r3, 0
/* 802BEE40 41 82 00 08 */ beq lbl_802BEE48
/* 802BEE44 38 63 FF FC */ addi r3, r3, -4
lbl_802BEE48:
/* 802BEE48 80 63 00 00 */ lwz r3, 0(r3)
/* 802BEE4C 80 63 00 20 */ lwz r3, 0x20(r3)
/* 802BEE50 80 03 00 10 */ lwz r0, 0x10(r3)
/* 802BEE54 54 00 07 7B */ rlwinm. r0, r0, 0, 0x1d, 0x1d
/* 802BEE58 41 82 00 28 */ beq lbl_802BEE80
/* 802BEE5C 7F E3 FB 78 */ mr r3, r31
/* 802BEE60 7F C4 F3 78 */ mr r4, r30
/* 802BEE64 48 01 D3 A9 */ bl getNthLink__10JSUPtrListCFUl
/* 802BEE68 28 03 00 00 */ cmplwi r3, 0
/* 802BEE6C 41 82 00 08 */ beq lbl_802BEE74
/* 802BEE70 38 63 FF FC */ addi r3, r3, -4
lbl_802BEE74:
/* 802BEE74 80 63 00 00 */ lwz r3, 0(r3)
/* 802BEE78 4B FE 37 21 */ bl stop__8JAISoundFv
/* 802BEE7C 48 00 00 30 */ b lbl_802BEEAC
lbl_802BEE80:
/* 802BEE80 7F E3 FB 78 */ mr r3, r31
/* 802BEE84 7F C4 F3 78 */ mr r4, r30
/* 802BEE88 48 01 D3 85 */ bl getNthLink__10JSUPtrListCFUl
/* 802BEE8C 28 03 00 00 */ cmplwi r3, 0
/* 802BEE90 41 82 00 08 */ beq lbl_802BEE98
/* 802BEE94 38 63 FF FC */ addi r3, r3, -4
lbl_802BEE98:
/* 802BEE98 80 83 00 00 */ lwz r4, 0(r3)
/* 802BEE9C 38 60 00 02 */ li r3, 2
/* 802BEEA0 88 04 00 1F */ lbz r0, 0x1f(r4)
/* 802BEEA4 50 60 26 B6 */ rlwimi r0, r3, 4, 0x1a, 0x1b
/* 802BEEA8 98 04 00 1F */ stb r0, 0x1f(r4)
lbl_802BEEAC:
/* 802BEEAC 3B DE 00 01 */ addi r30, r30, 1
lbl_802BEEB0:
/* 802BEEB0 80 1F 00 08 */ lwz r0, 8(r31)
/* 802BEEB4 7C 1E 00 00 */ cmpw r30, r0
/* 802BEEB8 41 80 FE D0 */ blt lbl_802BED88
/* 802BEEBC 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802BEEC0 83 C1 00 08 */ lwz r30, 8(r1)
/* 802BEEC4 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802BEEC8 7C 08 03 A6 */ mtlr r0
/* 802BEECC 38 21 00 10 */ addi r1, r1, 0x10
/* 802BEED0 4E 80 00 20 */ blr

View File

@ -1,17 +0,0 @@
lbl_802BDFF8:
/* 802BDFF8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802BDFFC 7C 08 02 A6 */ mflr r0
/* 802BE000 90 01 00 14 */ stw r0, 0x14(r1)
/* 802BE004 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802BE008 7C 7F 1B 78 */ mr r31, r3
/* 802BE00C 81 83 00 10 */ lwz r12, 0x10(r3)
/* 802BE010 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 802BE014 7D 89 03 A6 */ mtctr r12
/* 802BE018 4E 80 04 21 */ bctrl
/* 802BE01C 7F E3 FB 78 */ mr r3, r31
/* 802BE020 4B FE D1 01 */ bl deleteHandlesPool__14Z2SoundHandlesFv
/* 802BE024 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802BE028 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802BE02C 7C 08 03 A6 */ mtlr r0
/* 802BE030 38 21 00 10 */ addi r1, r1, 0x10
/* 802BE034 4E 80 00 20 */ blr

View File

@ -1,42 +0,0 @@
lbl_802BE070:
/* 802BE070 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802BE074 7C 08 02 A6 */ mflr r0
/* 802BE078 90 01 00 24 */ stw r0, 0x24(r1)
/* 802BE07C 39 61 00 20 */ addi r11, r1, 0x20
/* 802BE080 48 0A 41 5D */ bl _savegpr_29
/* 802BE084 7C 7D 1B 78 */ mr r29, r3
/* 802BE088 83 C3 00 00 */ lwz r30, 0(r3)
/* 802BE08C 48 00 00 50 */ b lbl_802BE0DC
lbl_802BE090:
/* 802BE090 83 FE 00 00 */ lwz r31, 0(r30)
/* 802BE094 28 1F 00 00 */ cmplwi r31, 0
/* 802BE098 41 82 00 40 */ beq lbl_802BE0D8
/* 802BE09C 80 7F 00 00 */ lwz r3, 0(r31)
/* 802BE0A0 28 03 00 00 */ cmplwi r3, 0
/* 802BE0A4 41 82 00 34 */ beq lbl_802BE0D8
/* 802BE0A8 80 03 00 18 */ lwz r0, 0x18(r3)
/* 802BE0AC 90 01 00 08 */ stw r0, 8(r1)
/* 802BE0B0 80 6D 85 CC */ lwz r3, __OSReport_disable-0x4C(r13)
/* 802BE0B4 38 81 00 08 */ addi r4, r1, 8
/* 802BE0B8 4B FF DA 11 */ bl getSwBit__11Z2SoundInfoCF10JAISoundID
/* 802BE0BC 54 60 04 21 */ rlwinm. r0, r3, 0, 0x10, 0x10
/* 802BE0C0 41 82 00 10 */ beq lbl_802BE0D0
/* 802BE0C4 7F E3 FB 78 */ mr r3, r31
/* 802BE0C8 4B FE 40 BD */ bl releaseSound__14JAISoundHandleFv
/* 802BE0CC 48 00 00 0C */ b lbl_802BE0D8
lbl_802BE0D0:
/* 802BE0D0 80 7F 00 00 */ lwz r3, 0(r31)
/* 802BE0D4 4B FE 44 C5 */ bl stop__8JAISoundFv
lbl_802BE0D8:
/* 802BE0D8 83 DE 00 0C */ lwz r30, 0xc(r30)
lbl_802BE0DC:
/* 802BE0DC 28 1E 00 00 */ cmplwi r30, 0
/* 802BE0E0 40 82 FF B0 */ bne lbl_802BE090
/* 802BE0E4 38 00 00 00 */ li r0, 0
/* 802BE0E8 98 1D 00 1F */ stb r0, 0x1f(r29)
/* 802BE0EC 39 61 00 20 */ addi r11, r1, 0x20
/* 802BE0F0 48 0A 41 39 */ bl _restgpr_29
/* 802BE0F4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802BE0F8 7C 08 03 A6 */ mtlr r0
/* 802BE0FC 38 21 00 20 */ addi r1, r1, 0x20
/* 802BE100 4E 80 00 20 */ blr

View File

@ -1,25 +0,0 @@
lbl_802BE6B8:
/* 802BE6B8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802BE6BC 7C 08 02 A6 */ mflr r0
/* 802BE6C0 90 01 00 14 */ stw r0, 0x14(r1)
/* 802BE6C4 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802BE6C8 7C 7F 1B 78 */ mr r31, r3
/* 802BE6CC 4B FF F9 6D */ bl framework__14Z2SoundObjBaseFUlSc
/* 802BE6D0 80 1F 00 18 */ lwz r0, 0x18(r31)
/* 802BE6D4 28 00 00 00 */ cmplwi r0, 0
/* 802BE6D8 41 82 00 28 */ beq lbl_802BE700
/* 802BE6DC E0 3F 00 2C */ psq_l f1, 44(r31), 0, 0 /* qr0 */
/* 802BE6E0 C0 1F 00 34 */ lfs f0, 0x34(r31)
/* 802BE6E4 F0 3F 00 20 */ psq_st f1, 32(r31), 0, 0 /* qr0 */
/* 802BE6E8 D0 1F 00 28 */ stfs f0, 0x28(r31)
/* 802BE6EC 80 7F 00 18 */ lwz r3, 0x18(r31)
/* 802BE6F0 E0 23 00 00 */ psq_l f1, 0(r3), 0, 0 /* qr0 */
/* 802BE6F4 C0 03 00 08 */ lfs f0, 8(r3)
/* 802BE6F8 F0 3F 00 2C */ psq_st f1, 44(r31), 0, 0 /* qr0 */
/* 802BE6FC D0 1F 00 34 */ stfs f0, 0x34(r31)
lbl_802BE700:
/* 802BE700 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802BE704 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802BE708 7C 08 03 A6 */ mtlr r0
/* 802BE70C 38 21 00 10 */ addi r1, r1, 0x10
/* 802BE710 4E 80 00 20 */ blr

View File

@ -1,149 +0,0 @@
lbl_802BF660:
/* 802BF660 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 802BF664 7C 08 02 A6 */ mflr r0
/* 802BF668 90 01 00 64 */ stw r0, 0x64(r1)
/* 802BF66C DB E1 00 50 */ stfd f31, 0x50(r1)
/* 802BF670 F3 E1 00 58 */ psq_st f31, 88(r1), 0, 0 /* qr0 */
/* 802BF674 39 61 00 50 */ addi r11, r1, 0x50
/* 802BF678 48 0A 2B 4D */ bl _savegpr_23
/* 802BF67C 7C 78 1B 78 */ mr r24, r3
/* 802BF680 7C 99 23 78 */ mr r25, r4
/* 802BF684 FF E0 08 90 */ fmr f31, f1
/* 802BF688 7C BA 2B 78 */ mr r26, r5
/* 802BF68C 7C DB 33 78 */ mr r27, r6
/* 802BF690 7C FC 3B 78 */ mr r28, r7
/* 802BF694 80 A3 00 40 */ lwz r5, 0x40(r3)
/* 802BF698 80 83 00 20 */ lwz r4, 0x20(r3)
/* 802BF69C 80 64 00 04 */ lwz r3, 4(r4)
/* 802BF6A0 28 03 00 00 */ cmplwi r3, 0
/* 802BF6A4 41 82 00 18 */ beq lbl_802BF6BC
/* 802BF6A8 81 83 00 00 */ lwz r12, 0(r3)
/* 802BF6AC 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 802BF6B0 7D 89 03 A6 */ mtctr r12
/* 802BF6B4 4E 80 04 21 */ bctrl
/* 802BF6B8 48 00 00 10 */ b lbl_802BF6C8
lbl_802BF6BC:
/* 802BF6BC 54 A3 28 34 */ slwi r3, r5, 5
/* 802BF6C0 38 63 00 08 */ addi r3, r3, 8
/* 802BF6C4 7C 64 1A 14 */ add r3, r4, r3
lbl_802BF6C8:
/* 802BF6C8 7C 7F 1B 78 */ mr r31, r3
/* 802BF6CC 7C 7E 1B 78 */ mr r30, r3
/* 802BF6D0 88 18 00 44 */ lbz r0, 0x44(r24)
/* 802BF6D4 28 00 00 00 */ cmplwi r0, 0
/* 802BF6D8 41 82 00 14 */ beq lbl_802BF6EC
/* 802BF6DC 80 78 00 40 */ lwz r3, 0x40(r24)
/* 802BF6E0 38 03 FF FF */ addi r0, r3, -1
/* 802BF6E4 90 18 00 40 */ stw r0, 0x40(r24)
/* 802BF6E8 48 00 00 10 */ b lbl_802BF6F8
lbl_802BF6EC:
/* 802BF6EC 80 78 00 40 */ lwz r3, 0x40(r24)
/* 802BF6F0 38 03 00 01 */ addi r0, r3, 1
/* 802BF6F4 90 18 00 40 */ stw r0, 0x40(r24)
lbl_802BF6F8:
/* 802BF6F8 88 7F 00 1A */ lbz r3, 0x1a(r31)
/* 802BF6FC 7C 60 07 75 */ extsb. r0, r3
/* 802BF700 40 81 00 08 */ ble lbl_802BF708
/* 802BF704 7C 7B 07 74 */ extsb r27, r3
lbl_802BF708:
/* 802BF708 7F 03 C3 78 */ mr r3, r24
/* 802BF70C 7F E4 FB 78 */ mr r4, r31
/* 802BF710 7F 25 CB 78 */ mr r5, r25
/* 802BF714 FC 20 F8 90 */ fmr f1, f31
/* 802BF718 48 00 01 81 */ bl func_802BF898
/* 802BF71C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802BF720 41 82 01 50 */ beq lbl_802BF870
/* 802BF724 7F 03 C3 78 */ mr r3, r24
/* 802BF728 7F E4 FB 78 */ mr r4, r31
/* 802BF72C 7F 25 CB 78 */ mr r5, r25
/* 802BF730 FC 20 F8 90 */ fmr f1, f31
/* 802BF734 48 00 01 5D */ bl func_802BF890
/* 802BF738 7C 77 1B 78 */ mr r23, r3
/* 802BF73C 92 E1 00 0C */ stw r23, 0xc(r1)
/* 802BF740 80 6D 86 08 */ lwz r3, __OSReport_disable-0x10(r13)
/* 802BF744 38 81 00 0C */ addi r4, r1, 0xc
/* 802BF748 4B FE EE 69 */ bl isSoundCulling__7Z2SeMgrF10JAISoundID
/* 802BF74C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802BF750 40 82 01 20 */ bne lbl_802BF870
/* 802BF754 7F 03 C3 78 */ mr r3, r24
/* 802BF758 7F C4 F3 78 */ mr r4, r30
/* 802BF75C 4B FE BB 45 */ bl getHandleUserData__14Z2SoundHandlesFUl
/* 802BF760 7C 7D 1B 79 */ or. r29, r3, r3
/* 802BF764 41 82 00 24 */ beq lbl_802BF788
/* 802BF768 80 7D 00 00 */ lwz r3, 0(r29)
/* 802BF76C 28 03 00 00 */ cmplwi r3, 0
/* 802BF770 41 82 00 18 */ beq lbl_802BF788
/* 802BF774 88 03 00 1F */ lbz r0, 0x1f(r3)
/* 802BF778 54 00 E7 BE */ rlwinm r0, r0, 0x1c, 0x1e, 0x1f
/* 802BF77C 28 00 00 01 */ cmplwi r0, 1
/* 802BF780 41 82 00 08 */ beq lbl_802BF788
/* 802BF784 3B A0 00 00 */ li r29, 0
lbl_802BF788:
/* 802BF788 28 1D 00 00 */ cmplwi r29, 0
/* 802BF78C 40 82 00 10 */ bne lbl_802BF79C
/* 802BF790 7F 03 C3 78 */ mr r3, r24
/* 802BF794 4B FE BB 45 */ bl getFreeHandle__14Z2SoundHandlesFv
/* 802BF798 7C 7D 1B 78 */ mr r29, r3
lbl_802BF79C:
/* 802BF79C 28 1D 00 00 */ cmplwi r29, 0
/* 802BF7A0 41 82 00 D0 */ beq lbl_802BF870
/* 802BF7A4 92 E1 00 08 */ stw r23, 8(r1)
/* 802BF7A8 7F 43 D3 78 */ mr r3, r26
/* 802BF7AC 38 81 00 08 */ addi r4, r1, 8
/* 802BF7B0 7F A5 EB 78 */ mr r5, r29
/* 802BF7B4 7F 26 CB 78 */ mr r6, r25
/* 802BF7B8 7F 67 DB 78 */ mr r7, r27
/* 802BF7BC 7F 80 07 74 */ extsb r0, r28
/* 802BF7C0 C8 22 C1 48 */ lfd f1, lit_3564(r2)
/* 802BF7C4 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 802BF7C8 90 01 00 14 */ stw r0, 0x14(r1)
/* 802BF7CC 3D 00 43 30 */ lis r8, 0x4330
/* 802BF7D0 91 01 00 10 */ stw r8, 0x10(r1)
/* 802BF7D4 C8 01 00 10 */ lfd f0, 0x10(r1)
/* 802BF7D8 EC 00 08 28 */ fsubs f0, f0, f1
/* 802BF7DC C0 82 C1 38 */ lfs f4, lit_3559(r2)
/* 802BF7E0 EC 20 20 24 */ fdivs f1, f0, f4
/* 802BF7E4 C0 5F 00 0C */ lfs f2, 0xc(r31)
/* 802BF7E8 88 1F 00 14 */ lbz r0, 0x14(r31)
/* 802BF7EC C8 62 C1 68 */ lfd f3, lit_3828(r2)
/* 802BF7F0 90 01 00 1C */ stw r0, 0x1c(r1)
/* 802BF7F4 91 01 00 18 */ stw r8, 0x18(r1)
/* 802BF7F8 C8 01 00 18 */ lfd f0, 0x18(r1)
/* 802BF7FC EC 00 18 28 */ fsubs f0, f0, f3
/* 802BF800 EC 60 20 24 */ fdivs f3, f0, f4
/* 802BF804 C0 82 C1 40 */ lfs f4, lit_3561(r2)
/* 802BF808 FC A0 20 90 */ fmr f5, f4
/* 802BF80C 39 00 00 00 */ li r8, 0
/* 802BF810 81 9A 00 00 */ lwz r12, 0(r26)
/* 802BF814 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 802BF818 7D 89 03 A6 */ mtctr r12
/* 802BF81C 4E 80 04 21 */ bctrl
/* 802BF820 80 9D 00 00 */ lwz r4, 0(r29)
/* 802BF824 28 04 00 00 */ cmplwi r4, 0
/* 802BF828 41 82 00 48 */ beq lbl_802BF870
/* 802BF82C 38 60 00 01 */ li r3, 1
/* 802BF830 88 04 00 1F */ lbz r0, 0x1f(r4)
/* 802BF834 50 60 26 B6 */ rlwimi r0, r3, 4, 0x1a, 0x1b
/* 802BF838 98 04 00 1F */ stb r0, 0x1f(r4)
/* 802BF83C 80 9D 00 00 */ lwz r4, 0(r29)
/* 802BF840 93 C4 00 20 */ stw r30, 0x20(r4)
/* 802BF844 80 1F 00 10 */ lwz r0, 0x10(r31)
/* 802BF848 54 00 06 73 */ rlwinm. r0, r0, 0, 0x19, 0x19
/* 802BF84C 41 82 00 24 */ beq lbl_802BF870
/* 802BF850 80 9D 00 00 */ lwz r4, 0(r29)
/* 802BF854 90 64 00 10 */ stw r3, 0x10(r4)
/* 802BF858 88 04 00 1D */ lbz r0, 0x1d(r4)
/* 802BF85C 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 802BF860 98 04 00 1D */ stb r0, 0x1d(r4)
/* 802BF864 88 04 00 1D */ lbz r0, 0x1d(r4)
/* 802BF868 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 802BF86C 98 04 00 1D */ stb r0, 0x1d(r4)
lbl_802BF870:
/* 802BF870 E3 E1 00 58 */ psq_l f31, 88(r1), 0, 0 /* qr0 */
/* 802BF874 CB E1 00 50 */ lfd f31, 0x50(r1)
/* 802BF878 39 61 00 50 */ addi r11, r1, 0x50
/* 802BF87C 48 0A 29 95 */ bl _restgpr_23
/* 802BF880 80 01 00 64 */ lwz r0, 0x64(r1)
/* 802BF884 7C 08 03 A6 */ mtlr r0
/* 802BF888 38 21 00 60 */ addi r1, r1, 0x60
/* 802BF88C 4E 80 00 20 */ blr

View File

@ -1,3 +0,0 @@
lbl_802BF890:
/* 802BF890 80 64 00 00 */ lwz r3, 0(r4)
/* 802BF894 4E 80 00 20 */ blr

View File

@ -1,39 +0,0 @@
lbl_802BF898:
/* 802BF898 80 E4 00 10 */ lwz r7, 0x10(r4)
/* 802BF89C 54 E0 07 39 */ rlwinm. r0, r7, 0, 0x1c, 0x1c
/* 802BF8A0 41 82 00 1C */ beq lbl_802BF8BC
/* 802BF8A4 80 A3 00 3C */ lwz r5, 0x3c(r3)
/* 802BF8A8 88 04 00 16 */ lbz r0, 0x16(r4)
/* 802BF8AC 7C 05 00 00 */ cmpw r5, r0
/* 802BF8B0 41 82 00 3C */ beq lbl_802BF8EC
/* 802BF8B4 38 60 00 00 */ li r3, 0
/* 802BF8B8 4E 80 00 20 */ blr
lbl_802BF8BC:
/* 802BF8BC 54 E0 06 31 */ rlwinm. r0, r7, 0, 0x18, 0x18
/* 802BF8C0 41 82 00 2C */ beq lbl_802BF8EC
/* 802BF8C4 88 C4 00 16 */ lbz r6, 0x16(r4)
/* 802BF8C8 80 A3 00 3C */ lwz r5, 0x3c(r3)
/* 802BF8CC 88 84 00 19 */ lbz r4, 0x19(r4)
/* 802BF8D0 7C 05 23 D6 */ divw r0, r5, r4
/* 802BF8D4 7C 00 21 D6 */ mullw r0, r0, r4
/* 802BF8D8 7C 00 28 50 */ subf r0, r0, r5
/* 802BF8DC 7C 06 00 00 */ cmpw r6, r0
/* 802BF8E0 41 82 00 0C */ beq lbl_802BF8EC
/* 802BF8E4 38 60 00 00 */ li r3, 0
/* 802BF8E8 4E 80 00 20 */ blr
lbl_802BF8EC:
/* 802BF8EC 88 03 00 44 */ lbz r0, 0x44(r3)
/* 802BF8F0 28 00 00 00 */ cmplwi r0, 0
/* 802BF8F4 41 82 00 14 */ beq lbl_802BF908
/* 802BF8F8 54 E0 07 FF */ clrlwi. r0, r7, 0x1f
/* 802BF8FC 41 82 00 1C */ beq lbl_802BF918
/* 802BF900 38 60 00 00 */ li r3, 0
/* 802BF904 4E 80 00 20 */ blr
lbl_802BF908:
/* 802BF908 54 E0 07 BD */ rlwinm. r0, r7, 0, 0x1e, 0x1e
/* 802BF90C 41 82 00 0C */ beq lbl_802BF918
/* 802BF910 38 60 00 00 */ li r3, 0
/* 802BF914 4E 80 00 20 */ blr
lbl_802BF918:
/* 802BF918 38 60 00 01 */ li r3, 1
/* 802BF91C 4E 80 00 20 */ blr

View File

@ -1,97 +0,0 @@
lbl_802BEBFC:
/* 802BEBFC 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 802BEC00 7C 08 02 A6 */ mflr r0
/* 802BEC04 90 01 00 44 */ stw r0, 0x44(r1)
/* 802BEC08 DB E1 00 30 */ stfd f31, 0x30(r1)
/* 802BEC0C F3 E1 00 38 */ psq_st f31, 56(r1), 0, 0 /* qr0 */
/* 802BEC10 DB C1 00 20 */ stfd f30, 0x20(r1)
/* 802BEC14 F3 C1 00 28 */ psq_st f30, 40(r1), 0, 0 /* qr0 */
/* 802BEC18 39 61 00 20 */ addi r11, r1, 0x20
/* 802BEC1C 48 0A 35 C1 */ bl _savegpr_29
/* 802BEC20 7C 7F 1B 78 */ mr r31, r3
/* 802BEC24 7C 9D 23 78 */ mr r29, r4
/* 802BEC28 7C BE 2B 78 */ mr r30, r5
/* 802BEC2C FF C0 08 90 */ fmr f30, f1
/* 802BEC30 FF E0 10 90 */ fmr f31, f2
/* 802BEC34 48 00 01 35 */ bl ageSounds___15Z2SoundObjAnimeFv
/* 802BEC38 93 BF 00 20 */ stw r29, 0x20(r31)
/* 802BEC3C 80 1F 00 20 */ lwz r0, 0x20(r31)
/* 802BEC40 28 00 00 00 */ cmplwi r0, 0
/* 802BEC44 41 82 00 FC */ beq lbl_802BED40
/* 802BEC48 57 C0 06 3E */ clrlwi r0, r30, 0x18
/* 802BEC4C 7C 00 00 34 */ cntlzw r0, r0
/* 802BEC50 54 00 D9 7E */ srwi r0, r0, 5
/* 802BEC54 98 1F 00 44 */ stb r0, 0x44(r31)
/* 802BEC58 38 60 00 00 */ li r3, 0
/* 802BEC5C 90 7F 00 3C */ stw r3, 0x3c(r31)
/* 802BEC60 88 1F 00 44 */ lbz r0, 0x44(r31)
/* 802BEC64 28 00 00 00 */ cmplwi r0, 0
/* 802BEC68 41 82 00 70 */ beq lbl_802BECD8
/* 802BEC6C 80 9F 00 20 */ lwz r4, 0x20(r31)
/* 802BEC70 80 64 00 04 */ lwz r3, 4(r4)
/* 802BEC74 28 03 00 00 */ cmplwi r3, 0
/* 802BEC78 41 82 00 18 */ beq lbl_802BEC90
/* 802BEC7C 81 83 00 00 */ lwz r12, 0(r3)
/* 802BEC80 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 802BEC84 7D 89 03 A6 */ mtctr r12
/* 802BEC88 4E 80 04 21 */ bctrl
/* 802BEC8C 48 00 00 08 */ b lbl_802BEC94
lbl_802BEC90:
/* 802BEC90 A0 64 00 00 */ lhz r3, 0(r4)
lbl_802BEC94:
/* 802BEC94 54 63 04 3E */ clrlwi r3, r3, 0x10
/* 802BEC98 38 03 FF FF */ addi r0, r3, -1
/* 802BEC9C 90 1F 00 40 */ stw r0, 0x40(r31)
/* 802BECA0 3C 60 80 45 */ lis r3, __float_max@ha /* 0x80450AE8@ha */
/* 802BECA4 C0 03 0A E8 */ lfs f0, __float_max@l(r3) /* 0x80450AE8@l */
/* 802BECA8 D0 1F 00 28 */ stfs f0, 0x28(r31)
/* 802BECAC C0 22 C1 50 */ lfs f1, lit_3821(r2)
/* 802BECB0 D0 3F 00 2C */ stfs f1, 0x2c(r31)
/* 802BECB4 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 802BECB8 4B FE 82 B9 */ bl getStartSoundIndex__17JAUSoundAnimationCFf
/* 802BECBC 90 7F 00 34 */ stw r3, 0x34(r31)
/* 802BECC0 D3 DF 00 30 */ stfs f30, 0x30(r31)
/* 802BECC4 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 802BECC8 FC 20 F0 90 */ fmr f1, f30
/* 802BECCC 4B FE 83 79 */ bl getEndSoundIndex__17JAUSoundAnimationCFf
/* 802BECD0 90 7F 00 38 */ stw r3, 0x38(r31)
/* 802BECD4 48 00 00 38 */ b lbl_802BED0C
lbl_802BECD8:
/* 802BECD8 90 7F 00 40 */ stw r3, 0x40(r31)
/* 802BECDC C0 02 C1 50 */ lfs f0, lit_3821(r2)
/* 802BECE0 D0 1F 00 28 */ stfs f0, 0x28(r31)
/* 802BECE4 D3 DF 00 2C */ stfs f30, 0x2c(r31)
/* 802BECE8 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 802BECEC FC 20 F0 90 */ fmr f1, f30
/* 802BECF0 4B FE 82 81 */ bl getStartSoundIndex__17JAUSoundAnimationCFf
/* 802BECF4 90 7F 00 34 */ stw r3, 0x34(r31)
/* 802BECF8 C0 22 C1 50 */ lfs f1, lit_3821(r2)
/* 802BECFC D0 3F 00 30 */ stfs f1, 0x30(r31)
/* 802BED00 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 802BED04 4B FE 83 41 */ bl getEndSoundIndex__17JAUSoundAnimationCFf
/* 802BED08 90 7F 00 38 */ stw r3, 0x38(r31)
lbl_802BED0C:
/* 802BED0C D3 FF 00 28 */ stfs f31, 0x28(r31)
/* 802BED10 80 7F 00 20 */ lwz r3, 0x20(r31)
/* 802BED14 FC 20 F8 90 */ fmr f1, f31
/* 802BED18 4B FE 82 59 */ bl getStartSoundIndex__17JAUSoundAnimationCFf
/* 802BED1C 90 7F 00 40 */ stw r3, 0x40(r31)
/* 802BED20 88 1F 00 44 */ lbz r0, 0x44(r31)
/* 802BED24 28 00 00 00 */ cmplwi r0, 0
/* 802BED28 41 82 00 18 */ beq lbl_802BED40
/* 802BED2C 80 7F 00 40 */ lwz r3, 0x40(r31)
/* 802BED30 2C 03 00 00 */ cmpwi r3, 0
/* 802BED34 40 81 00 0C */ ble lbl_802BED40
/* 802BED38 38 03 FF FF */ addi r0, r3, -1
/* 802BED3C 90 1F 00 40 */ stw r0, 0x40(r31)
lbl_802BED40:
/* 802BED40 E3 E1 00 38 */ psq_l f31, 56(r1), 0, 0 /* qr0 */
/* 802BED44 CB E1 00 30 */ lfd f31, 0x30(r1)
/* 802BED48 E3 C1 00 28 */ psq_l f30, 40(r1), 0, 0 /* qr0 */
/* 802BED4C CB C1 00 20 */ lfd f30, 0x20(r1)
/* 802BED50 39 61 00 20 */ addi r11, r1, 0x20
/* 802BED54 48 0A 34 D5 */ bl _restgpr_29
/* 802BED58 80 01 00 44 */ lwz r0, 0x44(r1)
/* 802BED5C 7C 08 03 A6 */ mtlr r0
/* 802BED60 38 21 00 40 */ addi r1, r1, 0x40
/* 802BED64 4E 80 00 20 */ blr

View File

@ -1,9 +0,0 @@
lbl_802BEBDC:
/* 802BEBDC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802BEBE0 7C 08 02 A6 */ mflr r0
/* 802BEBE4 90 01 00 14 */ stw r0, 0x14(r1)
/* 802BEBE8 4B FF F3 C9 */ bl init__14Z2SoundObjBaseFP3VecUc
/* 802BEBEC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802BEBF0 7C 08 03 A6 */ mtlr r0
/* 802BEBF4 38 21 00 10 */ addi r1, r1, 0x10
/* 802BEBF8 4E 80 00 20 */ blr

View File

@ -1,9 +0,0 @@
lbl_802BEB74:
/* 802BEB74 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802BEB78 7C 08 02 A6 */ mflr r0
/* 802BEB7C 90 01 00 14 */ stw r0, 0x14(r1)
/* 802BEB80 4B FF F4 31 */ bl init__14Z2SoundObjBaseFP3VecUc
/* 802BEB84 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802BEB88 7C 08 03 A6 */ mtlr r0
/* 802BEB8C 38 21 00 10 */ addi r1, r1, 0x10
/* 802BEB90 4E 80 00 20 */ blr

View File

@ -1,25 +0,0 @@
lbl_802BE65C:
/* 802BE65C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802BE660 7C 08 02 A6 */ mflr r0
/* 802BE664 90 01 00 14 */ stw r0, 0x14(r1)
/* 802BE668 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802BE66C 7C 7F 1B 78 */ mr r31, r3
/* 802BE670 4B FF F9 41 */ bl init__14Z2SoundObjBaseFP3VecUc
/* 802BE674 80 7F 00 18 */ lwz r3, 0x18(r31)
/* 802BE678 28 03 00 00 */ cmplwi r3, 0
/* 802BE67C 41 82 00 28 */ beq lbl_802BE6A4
/* 802BE680 E0 23 00 00 */ psq_l f1, 0(r3), 0, 0 /* qr0 */
/* 802BE684 C0 03 00 08 */ lfs f0, 8(r3)
/* 802BE688 F0 3F 00 20 */ psq_st f1, 32(r31), 0, 0 /* qr0 */
/* 802BE68C D0 1F 00 28 */ stfs f0, 0x28(r31)
/* 802BE690 80 7F 00 18 */ lwz r3, 0x18(r31)
/* 802BE694 E0 23 00 00 */ psq_l f1, 0(r3), 0, 0 /* qr0 */
/* 802BE698 C0 03 00 08 */ lfs f0, 8(r3)
/* 802BE69C F0 3F 00 2C */ psq_st f1, 44(r31), 0, 0 /* qr0 */
/* 802BE6A0 D0 1F 00 34 */ stfs f0, 0x34(r31)
lbl_802BE6A4:
/* 802BE6A4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802BE6A8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802BE6AC 7C 08 03 A6 */ mtlr r0
/* 802BE6B0 38 21 00 10 */ addi r1, r1, 0x10
/* 802BE6B4 4E 80 00 20 */ blr

View File

@ -1,70 +0,0 @@
lbl_802BE4A4:
/* 802BE4A4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802BE4A8 7C 08 02 A6 */ mflr r0
/* 802BE4AC 90 01 00 24 */ stw r0, 0x24(r1)
/* 802BE4B0 39 61 00 20 */ addi r11, r1, 0x20
/* 802BE4B4 48 0A 3D 25 */ bl _savegpr_28
/* 802BE4B8 7C 7C 1B 78 */ mr r28, r3
/* 802BE4BC 7C 9D 23 78 */ mr r29, r4
/* 802BE4C0 7C BE 2B 78 */ mr r30, r5
/* 802BE4C4 28 06 00 00 */ cmplwi r6, 0
/* 802BE4C8 41 82 00 14 */ beq lbl_802BE4DC
/* 802BE4CC 7C C3 33 78 */ mr r3, r6
/* 802BE4D0 38 C0 00 00 */ li r6, 0
/* 802BE4D4 4B FF FF D1 */ bl startCollisionSE__14Z2SoundObjBaseFUlUlP14Z2SoundObjBase
/* 802BE4D8 48 00 00 B0 */ b lbl_802BE588
lbl_802BE4DC:
/* 802BE4DC 28 1E 00 35 */ cmplwi r30, 0x35
/* 802BE4E0 40 81 00 08 */ ble lbl_802BE4E8
/* 802BE4E4 3B C0 00 00 */ li r30, 0
lbl_802BE4E8:
/* 802BE4E8 80 6D 85 E0 */ lwz r3, __OSReport_disable-0x38(r13)
/* 802BE4EC 83 E3 02 20 */ lwz r31, 0x220(r3)
/* 802BE4F0 48 00 00 30 */ b lbl_802BE520
lbl_802BE4F4:
/* 802BE4F4 80 7F 00 00 */ lwz r3, 0(r31)
/* 802BE4F8 80 03 00 28 */ lwz r0, 0x28(r3)
/* 802BE4FC 90 01 00 0C */ stw r0, 0xc(r1)
/* 802BE500 7C 1D 00 40 */ cmplw r29, r0
/* 802BE504 40 82 00 18 */ bne lbl_802BE51C
/* 802BE508 80 03 00 30 */ lwz r0, 0x30(r3)
/* 802BE50C 7C 1E 00 40 */ cmplw r30, r0
/* 802BE510 40 82 00 0C */ bne lbl_802BE51C
/* 802BE514 38 63 00 10 */ addi r3, r3, 0x10
/* 802BE518 4B FE 40 81 */ bl stop__8JAISoundFv
lbl_802BE51C:
/* 802BE51C 83 FF 00 0C */ lwz r31, 0xc(r31)
lbl_802BE520:
/* 802BE520 28 1F 00 00 */ cmplwi r31, 0
/* 802BE524 40 82 FF D0 */ bne lbl_802BE4F4
/* 802BE528 93 A1 00 08 */ stw r29, 8(r1)
/* 802BE52C 7F 83 E3 78 */ mr r3, r28
/* 802BE530 38 81 00 08 */ addi r4, r1, 8
/* 802BE534 7F C5 F3 78 */ mr r5, r30
/* 802BE538 38 C0 FF FF */ li r6, -1
/* 802BE53C 4B FF FC 09 */ bl startSound__14Z2SoundObjBaseF10JAISoundIDUlSc
/* 802BE540 28 03 00 00 */ cmplwi r3, 0
/* 802BE544 41 82 00 44 */ beq lbl_802BE588
/* 802BE548 80 83 00 00 */ lwz r4, 0(r3)
/* 802BE54C 28 04 00 00 */ cmplwi r4, 0
/* 802BE550 41 82 00 38 */ beq lbl_802BE588
/* 802BE554 93 C4 00 20 */ stw r30, 0x20(r4)
/* 802BE558 28 1E 00 1E */ cmplwi r30, 0x1e
/* 802BE55C 41 80 00 2C */ blt lbl_802BE588
/* 802BE560 28 1E 00 34 */ cmplwi r30, 0x34
/* 802BE564 41 81 00 24 */ bgt lbl_802BE588
/* 802BE568 80 83 00 00 */ lwz r4, 0(r3)
/* 802BE56C 80 A4 00 08 */ lwz r5, 8(r4)
/* 802BE570 28 05 00 00 */ cmplwi r5, 0
/* 802BE574 41 82 00 14 */ beq lbl_802BE588
/* 802BE578 38 80 00 08 */ li r4, 8
/* 802BE57C 88 05 00 11 */ lbz r0, 0x11(r5)
/* 802BE580 50 80 06 BE */ rlwimi r0, r4, 0, 0x1a, 0x1f
/* 802BE584 98 05 00 11 */ stb r0, 0x11(r5)
lbl_802BE588:
/* 802BE588 39 61 00 20 */ addi r11, r1, 0x20
/* 802BE58C 48 0A 3C 99 */ bl _restgpr_28
/* 802BE590 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802BE594 7C 08 03 A6 */ mtlr r0
/* 802BE598 38 21 00 20 */ addi r1, r1, 0x20
/* 802BE59C 4E 80 00 20 */ blr

View File

@ -1,126 +0,0 @@
lbl_802BE2D4:
/* 802BE2D4 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 802BE2D8 7C 08 02 A6 */ mflr r0
/* 802BE2DC 90 01 00 44 */ stw r0, 0x44(r1)
/* 802BE2E0 DB E1 00 30 */ stfd f31, 0x30(r1)
/* 802BE2E4 F3 E1 00 38 */ psq_st f31, 56(r1), 0, 0 /* qr0 */
/* 802BE2E8 39 61 00 30 */ addi r11, r1, 0x30
/* 802BE2EC 48 0A 3E ED */ bl _savegpr_28
/* 802BE2F0 7C 7E 1B 78 */ mr r30, r3
/* 802BE2F4 7C 9C 23 78 */ mr r28, r4
/* 802BE2F8 7C BF 2B 78 */ mr r31, r5
/* 802BE2FC 88 03 00 1F */ lbz r0, 0x1f(r3)
/* 802BE300 28 00 00 00 */ cmplwi r0, 0
/* 802BE304 40 82 00 0C */ bne lbl_802BE310
/* 802BE308 38 60 00 00 */ li r3, 0
/* 802BE30C 48 00 01 78 */ b lbl_802BE484
lbl_802BE310:
/* 802BE310 28 1F 00 00 */ cmplwi r31, 0
/* 802BE314 40 82 00 08 */ bne lbl_802BE31C
/* 802BE318 A3 FE 00 1C */ lhz r31, 0x1c(r30)
lbl_802BE31C:
/* 802BE31C 7C C0 07 75 */ extsb. r0, r6
/* 802BE320 40 80 00 08 */ bge lbl_802BE328
/* 802BE324 88 DE 00 1E */ lbz r6, 0x1e(r30)
lbl_802BE328:
/* 802BE328 7C C0 07 74 */ extsb r0, r6
/* 802BE32C C8 22 C1 48 */ lfd f1, lit_3564(r2)
/* 802BE330 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 802BE334 90 01 00 1C */ stw r0, 0x1c(r1)
/* 802BE338 3C 00 43 30 */ lis r0, 0x4330
/* 802BE33C 90 01 00 18 */ stw r0, 0x18(r1)
/* 802BE340 C8 01 00 18 */ lfd f0, 0x18(r1)
/* 802BE344 EC 20 08 28 */ fsubs f1, f0, f1
/* 802BE348 C0 02 C1 38 */ lfs f0, lit_3559(r2)
/* 802BE34C EF E1 00 24 */ fdivs f31, f1, f0
/* 802BE350 80 1C 00 00 */ lwz r0, 0(r28)
/* 802BE354 90 01 00 14 */ stw r0, 0x14(r1)
/* 802BE358 7F C3 F3 78 */ mr r3, r30
/* 802BE35C 38 81 00 14 */ addi r4, r1, 0x14
/* 802BE360 4B FE CE F5 */ bl getHandleSoundID__14Z2SoundHandlesF10JAISoundID
/* 802BE364 7C 7D 1B 79 */ or. r29, r3, r3
/* 802BE368 41 82 00 4C */ beq lbl_802BE3B4
/* 802BE36C 80 7D 00 00 */ lwz r3, 0(r29)
/* 802BE370 80 03 00 10 */ lwz r0, 0x10(r3)
/* 802BE374 28 00 00 01 */ cmplwi r0, 1
/* 802BE378 40 80 00 0C */ bge lbl_802BE384
/* 802BE37C 38 00 00 01 */ li r0, 1
/* 802BE380 90 03 00 10 */ stw r0, 0x10(r3)
lbl_802BE384:
/* 802BE384 80 7E 00 14 */ lwz r3, 0x14(r30)
/* 802BE388 7F A4 EB 78 */ mr r4, r29
/* 802BE38C 38 A0 00 06 */ li r5, 6
/* 802BE390 57 E6 04 3E */ clrlwi r6, r31, 0x10
/* 802BE394 38 E0 FF FF */ li r7, -1
/* 802BE398 4B FE CB 45 */ bl setPortData__14Z2SoundStarterFP14JAISoundHandleUlUsSc
/* 802BE39C 80 7D 00 00 */ lwz r3, 0(r29)
/* 802BE3A0 38 63 00 48 */ addi r3, r3, 0x48
/* 802BE3A4 FC 20 F8 90 */ fmr f1, f31
/* 802BE3A8 38 80 00 00 */ li r4, 0
/* 802BE3AC 4B FE 4A B9 */ bl moveFxMix__18JAISoundParamsMoveFfUl
/* 802BE3B0 48 00 00 D0 */ b lbl_802BE480
lbl_802BE3B4:
/* 802BE3B4 80 1C 00 00 */ lwz r0, 0(r28)
/* 802BE3B8 90 01 00 10 */ stw r0, 0x10(r1)
/* 802BE3BC 80 6D 86 08 */ lwz r3, __OSReport_disable-0x10(r13)
/* 802BE3C0 38 81 00 10 */ addi r4, r1, 0x10
/* 802BE3C4 4B FF 01 ED */ bl isSoundCulling__7Z2SeMgrF10JAISoundID
/* 802BE3C8 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802BE3CC 41 82 00 0C */ beq lbl_802BE3D8
/* 802BE3D0 38 60 00 00 */ li r3, 0
/* 802BE3D4 48 00 00 B0 */ b lbl_802BE484
lbl_802BE3D8:
/* 802BE3D8 7F C3 F3 78 */ mr r3, r30
/* 802BE3DC 4B FE CE FD */ bl getFreeHandle__14Z2SoundHandlesFv
/* 802BE3E0 7C 7D 1B 79 */ or. r29, r3, r3
/* 802BE3E4 40 82 00 1C */ bne lbl_802BE400
/* 802BE3E8 80 1C 00 00 */ lwz r0, 0(r28)
/* 802BE3EC 90 01 00 0C */ stw r0, 0xc(r1)
/* 802BE3F0 7F C3 F3 78 */ mr r3, r30
/* 802BE3F4 38 81 00 0C */ addi r4, r1, 0xc
/* 802BE3F8 4B FE CF D9 */ bl getLowPrioSound__14Z2SoundHandlesF10JAISoundID
/* 802BE3FC 7C 7D 1B 78 */ mr r29, r3
lbl_802BE400:
/* 802BE400 28 1D 00 00 */ cmplwi r29, 0
/* 802BE404 41 82 00 7C */ beq lbl_802BE480
/* 802BE408 80 1C 00 00 */ lwz r0, 0(r28)
/* 802BE40C 90 01 00 08 */ stw r0, 8(r1)
/* 802BE410 80 7E 00 14 */ lwz r3, 0x14(r30)
/* 802BE414 38 81 00 08 */ addi r4, r1, 8
/* 802BE418 7F A5 EB 78 */ mr r5, r29
/* 802BE41C 80 DE 00 18 */ lwz r6, 0x18(r30)
/* 802BE420 7F E7 FB 78 */ mr r7, r31
/* 802BE424 FC 20 F8 90 */ fmr f1, f31
/* 802BE428 C0 42 C1 3C */ lfs f2, lit_3560(r2)
/* 802BE42C FC 60 10 90 */ fmr f3, f2
/* 802BE430 C0 82 C1 40 */ lfs f4, lit_3561(r2)
/* 802BE434 FC A0 20 90 */ fmr f5, f4
/* 802BE438 39 00 00 00 */ li r8, 0
/* 802BE43C 81 83 00 00 */ lwz r12, 0(r3)
/* 802BE440 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 802BE444 7D 89 03 A6 */ mtctr r12
/* 802BE448 4E 80 04 21 */ bctrl
/* 802BE44C 28 1D 00 00 */ cmplwi r29, 0
/* 802BE450 41 82 00 30 */ beq lbl_802BE480
/* 802BE454 80 9D 00 00 */ lwz r4, 0(r29)
/* 802BE458 28 04 00 00 */ cmplwi r4, 0
/* 802BE45C 41 82 00 24 */ beq lbl_802BE480
/* 802BE460 38 60 00 01 */ li r3, 1
/* 802BE464 90 64 00 10 */ stw r3, 0x10(r4)
/* 802BE468 88 04 00 1D */ lbz r0, 0x1d(r4)
/* 802BE46C 50 60 3E 30 */ rlwimi r0, r3, 7, 0x18, 0x18
/* 802BE470 98 04 00 1D */ stb r0, 0x1d(r4)
/* 802BE474 88 04 00 1D */ lbz r0, 0x1d(r4)
/* 802BE478 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 802BE47C 98 04 00 1D */ stb r0, 0x1d(r4)
lbl_802BE480:
/* 802BE480 7F A3 EB 78 */ mr r3, r29
lbl_802BE484:
/* 802BE484 E3 E1 00 38 */ psq_l f31, 56(r1), 0, 0 /* qr0 */
/* 802BE488 CB E1 00 30 */ lfd f31, 0x30(r1)
/* 802BE48C 39 61 00 30 */ addi r11, r1, 0x30
/* 802BE490 48 0A 3D 95 */ bl _restgpr_28
/* 802BE494 80 01 00 44 */ lwz r0, 0x44(r1)
/* 802BE498 7C 08 03 A6 */ mtlr r0
/* 802BE49C 38 21 00 40 */ addi r1, r1, 0x40
/* 802BE4A0 4E 80 00 20 */ blr

View File

@ -1,104 +0,0 @@
lbl_802BE9B0:
/* 802BE9B0 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 802BE9B4 7C 08 02 A6 */ mflr r0
/* 802BE9B8 90 01 00 44 */ stw r0, 0x44(r1)
/* 802BE9BC DB E1 00 30 */ stfd f31, 0x30(r1)
/* 802BE9C0 F3 E1 00 38 */ psq_st f31, 56(r1), 0, 0 /* qr0 */
/* 802BE9C4 39 61 00 30 */ addi r11, r1, 0x30
/* 802BE9C8 48 0A 38 15 */ bl _savegpr_29
/* 802BE9CC 7C 9D 23 78 */ mr r29, r4
/* 802BE9D0 7C BE 2B 78 */ mr r30, r5
/* 802BE9D4 80 04 00 00 */ lwz r0, 0(r4)
/* 802BE9D8 90 01 00 08 */ stw r0, 8(r1)
/* 802BE9DC 38 81 00 08 */ addi r4, r1, 8
/* 802BE9E0 4B FF F8 F5 */ bl startLevelSound__14Z2SoundObjBaseF10JAISoundIDUlSc
/* 802BE9E4 7C 7F 1B 79 */ or. r31, r3, r3
/* 802BE9E8 41 82 01 2C */ beq lbl_802BEB14
/* 802BE9EC 80 1F 00 00 */ lwz r0, 0(r31)
/* 802BE9F0 28 00 00 00 */ cmplwi r0, 0
/* 802BE9F4 41 82 01 20 */ beq lbl_802BEB14
/* 802BE9F8 C0 C2 C1 3C */ lfs f6, lit_3560(r2)
/* 802BE9FC FF E0 30 90 */ fmr f31, f6
/* 802BEA00 80 9D 00 00 */ lwz r4, 0(r29)
/* 802BEA04 3C 60 00 08 */ lis r3, 0x0008 /* 0x0008025C@ha */
/* 802BEA08 38 03 02 5C */ addi r0, r3, 0x025C /* 0x0008025C@l */
/* 802BEA0C 7C 04 00 00 */ cmpw r4, r0
/* 802BEA10 41 82 00 8C */ beq lbl_802BEA9C
/* 802BEA14 40 80 00 D8 */ bge lbl_802BEAEC
/* 802BEA18 3C 60 00 02 */ lis r3, 0x0002 /* 0x000200C6@ha */
/* 802BEA1C 38 03 00 C6 */ addi r0, r3, 0x00C6 /* 0x000200C6@l */
/* 802BEA20 7C 04 00 00 */ cmpw r4, r0
/* 802BEA24 41 82 00 08 */ beq lbl_802BEA2C
/* 802BEA28 48 00 00 C4 */ b lbl_802BEAEC
lbl_802BEA2C:
/* 802BEA2C C8 22 C1 68 */ lfd f1, lit_3828(r2)
/* 802BEA30 93 C1 00 14 */ stw r30, 0x14(r1)
/* 802BEA34 3C 00 43 30 */ lis r0, 0x4330
/* 802BEA38 90 01 00 10 */ stw r0, 0x10(r1)
/* 802BEA3C C8 01 00 10 */ lfd f0, 0x10(r1)
/* 802BEA40 EC 20 08 28 */ fsubs f1, f0, f1
/* 802BEA44 C0 42 C1 50 */ lfs f2, lit_3821(r2)
/* 802BEA48 C0 62 C1 38 */ lfs f3, lit_3559(r2)
/* 802BEA4C C0 82 C1 54 */ lfs f4, lit_3822(r2)
/* 802BEA50 C0 A2 C1 58 */ lfs f5, lit_3823(r2)
/* 802BEA54 38 60 00 01 */ li r3, 1
/* 802BEA58 4B FE AC 9D */ bl getParamByExp__6Z2CalcFffffffQ26Z2Calc9CurveSign
/* 802BEA5C FF E0 08 90 */ fmr f31, f1
/* 802BEA60 C8 22 C1 68 */ lfd f1, lit_3828(r2)
/* 802BEA64 93 C1 00 1C */ stw r30, 0x1c(r1)
/* 802BEA68 3C 00 43 30 */ lis r0, 0x4330
/* 802BEA6C 90 01 00 18 */ stw r0, 0x18(r1)
/* 802BEA70 C8 01 00 18 */ lfd f0, 0x18(r1)
/* 802BEA74 EC 20 08 28 */ fsubs f1, f0, f1
/* 802BEA78 C0 42 C1 50 */ lfs f2, lit_3821(r2)
/* 802BEA7C C0 62 C1 38 */ lfs f3, lit_3559(r2)
/* 802BEA80 C0 82 C1 54 */ lfs f4, lit_3822(r2)
/* 802BEA84 C0 A2 C1 5C */ lfs f5, lit_3824(r2)
/* 802BEA88 C0 C2 C1 60 */ lfs f6, lit_3825(r2)
/* 802BEA8C 38 60 00 01 */ li r3, 1
/* 802BEA90 4B FE AC 65 */ bl getParamByExp__6Z2CalcFffffffQ26Z2Calc9CurveSign
/* 802BEA94 FC C0 08 90 */ fmr f6, f1
/* 802BEA98 48 00 00 54 */ b lbl_802BEAEC
lbl_802BEA9C:
/* 802BEA9C 28 1E 00 64 */ cmplwi r30, 0x64
/* 802BEAA0 40 81 00 0C */ ble lbl_802BEAAC
/* 802BEAA4 C0 C2 C1 70 */ lfs f6, lit_3859(r2)
/* 802BEAA8 48 00 00 44 */ b lbl_802BEAEC
lbl_802BEAAC:
/* 802BEAAC 28 1E 00 15 */ cmplwi r30, 0x15
/* 802BEAB0 40 81 00 3C */ ble lbl_802BEAEC
/* 802BEAB4 C8 22 C1 68 */ lfd f1, lit_3828(r2)
/* 802BEAB8 93 C1 00 1C */ stw r30, 0x1c(r1)
/* 802BEABC 3C 00 43 30 */ lis r0, 0x4330
/* 802BEAC0 90 01 00 18 */ stw r0, 0x18(r1)
/* 802BEAC4 C8 01 00 18 */ lfd f0, 0x18(r1)
/* 802BEAC8 EC 20 08 28 */ fsubs f1, f0, f1
/* 802BEACC C0 42 C1 74 */ lfs f2, lit_3860(r2)
/* 802BEAD0 C0 62 C1 78 */ lfs f3, lit_3861(r2)
/* 802BEAD4 C0 82 C1 58 */ lfs f4, lit_3823(r2)
/* 802BEAD8 FC A0 30 90 */ fmr f5, f6
/* 802BEADC C0 C2 C1 7C */ lfs f6, lit_3862(r2)
/* 802BEAE0 38 60 00 00 */ li r3, 0
/* 802BEAE4 4B FE AC 11 */ bl getParamByExp__6Z2CalcFffffffQ26Z2Calc9CurveSign
/* 802BEAE8 FC C0 08 90 */ fmr f6, f1
lbl_802BEAEC:
/* 802BEAEC 80 7F 00 00 */ lwz r3, 0(r31)
/* 802BEAF0 38 63 00 48 */ addi r3, r3, 0x48
/* 802BEAF4 FC 20 30 90 */ fmr f1, f6
/* 802BEAF8 38 80 00 00 */ li r4, 0
/* 802BEAFC 4B FE 43 11 */ bl movePitch__18JAISoundParamsMoveFfUl
/* 802BEB00 80 7F 00 00 */ lwz r3, 0(r31)
/* 802BEB04 38 63 00 48 */ addi r3, r3, 0x48
/* 802BEB08 FC 20 F8 90 */ fmr f1, f31
/* 802BEB0C 38 80 00 00 */ li r4, 0
/* 802BEB10 4B FE 42 A5 */ bl moveVolume__18JAISoundParamsMoveFfUl
lbl_802BEB14:
/* 802BEB14 7F E3 FB 78 */ mr r3, r31
/* 802BEB18 E3 E1 00 38 */ psq_l f31, 56(r1), 0, 0 /* qr0 */
/* 802BEB1C CB E1 00 30 */ lfd f31, 0x30(r1)
/* 802BEB20 39 61 00 30 */ addi r11, r1, 0x30
/* 802BEB24 48 0A 37 05 */ bl _restgpr_29
/* 802BEB28 80 01 00 44 */ lwz r0, 0x44(r1)
/* 802BEB2C 7C 08 03 A6 */ mtlr r0
/* 802BEB30 38 21 00 40 */ addi r1, r1, 0x40
/* 802BEB34 4E 80 00 20 */ blr

View File

@ -1,40 +0,0 @@
lbl_802BE7AC:
/* 802BE7AC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802BE7B0 7C 08 02 A6 */ mflr r0
/* 802BE7B4 90 01 00 24 */ stw r0, 0x24(r1)
/* 802BE7B8 39 61 00 20 */ addi r11, r1, 0x20
/* 802BE7BC 48 0A 3A 21 */ bl _savegpr_29
/* 802BE7C0 7C 7D 1B 78 */ mr r29, r3
/* 802BE7C4 83 E3 00 18 */ lwz r31, 0x18(r3)
/* 802BE7C8 38 00 00 00 */ li r0, 0
/* 802BE7CC 90 03 00 18 */ stw r0, 0x18(r3)
/* 802BE7D0 80 04 00 00 */ lwz r0, 0(r4)
/* 802BE7D4 90 01 00 08 */ stw r0, 8(r1)
/* 802BE7D8 38 81 00 08 */ addi r4, r1, 8
/* 802BE7DC 4B FF FA F9 */ bl startLevelSound__14Z2SoundObjBaseF10JAISoundIDUlSc
/* 802BE7E0 7C 7E 1B 78 */ mr r30, r3
/* 802BE7E4 28 1F 00 00 */ cmplwi r31, 0
/* 802BE7E8 41 82 00 3C */ beq lbl_802BE824
/* 802BE7EC 28 1E 00 00 */ cmplwi r30, 0
/* 802BE7F0 41 82 00 34 */ beq lbl_802BE824
/* 802BE7F4 80 7E 00 00 */ lwz r3, 0(r30)
/* 802BE7F8 28 03 00 00 */ cmplwi r3, 0
/* 802BE7FC 41 82 00 28 */ beq lbl_802BE824
/* 802BE800 4B FE 3C 4D */ bl acceptsNewAudible__8JAISoundCFv
/* 802BE804 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802BE808 41 82 00 1C */ beq lbl_802BE824
/* 802BE80C 80 7E 00 00 */ lwz r3, 0(r30)
/* 802BE810 7F E4 FB 78 */ mr r4, r31
/* 802BE814 38 BD 00 20 */ addi r5, r29, 0x20
/* 802BE818 38 C0 00 00 */ li r6, 0
/* 802BE81C 38 E0 00 00 */ li r7, 0
/* 802BE820 4B FE 3C 55 */ bl func_802A2474
lbl_802BE824:
/* 802BE824 93 FD 00 18 */ stw r31, 0x18(r29)
/* 802BE828 7F C3 F3 78 */ mr r3, r30
/* 802BE82C 39 61 00 20 */ addi r11, r1, 0x20
/* 802BE830 48 0A 39 F9 */ bl _restgpr_29
/* 802BE834 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802BE838 7C 08 03 A6 */ mtlr r0
/* 802BE83C 38 21 00 20 */ addi r1, r1, 0x20
/* 802BE840 4E 80 00 20 */ blr

View File

@ -1,111 +0,0 @@
lbl_802BE144:
/* 802BE144 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 802BE148 7C 08 02 A6 */ mflr r0
/* 802BE14C 90 01 00 54 */ stw r0, 0x54(r1)
/* 802BE150 DB E1 00 40 */ stfd f31, 0x40(r1)
/* 802BE154 F3 E1 00 48 */ psq_st f31, 72(r1), 0, 0 /* qr0 */
/* 802BE158 39 61 00 40 */ addi r11, r1, 0x40
/* 802BE15C 48 0A 40 7D */ bl _savegpr_28
/* 802BE160 7C 7D 1B 78 */ mr r29, r3
/* 802BE164 7C 9E 23 78 */ mr r30, r4
/* 802BE168 7C BF 2B 78 */ mr r31, r5
/* 802BE16C 7C DC 33 78 */ mr r28, r6
/* 802BE170 88 03 00 1F */ lbz r0, 0x1f(r3)
/* 802BE174 28 00 00 00 */ cmplwi r0, 0
/* 802BE178 40 82 00 0C */ bne lbl_802BE184
/* 802BE17C 38 60 00 00 */ li r3, 0
/* 802BE180 48 00 01 34 */ b lbl_802BE2B4
lbl_802BE184:
/* 802BE184 80 1E 00 00 */ lwz r0, 0(r30)
/* 802BE188 90 01 00 18 */ stw r0, 0x18(r1)
/* 802BE18C 80 6D 86 08 */ lwz r3, __OSReport_disable-0x10(r13)
/* 802BE190 38 81 00 18 */ addi r4, r1, 0x18
/* 802BE194 4B FF 04 1D */ bl isSoundCulling__7Z2SeMgrF10JAISoundID
/* 802BE198 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802BE19C 41 82 00 0C */ beq lbl_802BE1A8
/* 802BE1A0 38 60 00 00 */ li r3, 0
/* 802BE1A4 48 00 01 10 */ b lbl_802BE2B4
lbl_802BE1A8:
/* 802BE1A8 28 1F 00 00 */ cmplwi r31, 0
/* 802BE1AC 40 82 00 08 */ bne lbl_802BE1B4
/* 802BE1B0 A3 FD 00 1C */ lhz r31, 0x1c(r29)
lbl_802BE1B4:
/* 802BE1B4 7F 80 07 75 */ extsb. r0, r28
/* 802BE1B8 40 80 00 08 */ bge lbl_802BE1C0
/* 802BE1BC 8B 9D 00 1E */ lbz r28, 0x1e(r29)
lbl_802BE1C0:
/* 802BE1C0 7F 80 07 74 */ extsb r0, r28
/* 802BE1C4 C8 22 C1 48 */ lfd f1, lit_3564(r2)
/* 802BE1C8 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 802BE1CC 90 01 00 24 */ stw r0, 0x24(r1)
/* 802BE1D0 3C 00 43 30 */ lis r0, 0x4330
/* 802BE1D4 90 01 00 20 */ stw r0, 0x20(r1)
/* 802BE1D8 C8 01 00 20 */ lfd f0, 0x20(r1)
/* 802BE1DC EC 20 08 28 */ fsubs f1, f0, f1
/* 802BE1E0 C0 02 C1 38 */ lfs f0, lit_3559(r2)
/* 802BE1E4 EF E1 00 24 */ fdivs f31, f1, f0
/* 802BE1E8 80 1E 00 00 */ lwz r0, 0(r30)
/* 802BE1EC 90 01 00 14 */ stw r0, 0x14(r1)
/* 802BE1F0 7F A3 EB 78 */ mr r3, r29
/* 802BE1F4 38 81 00 14 */ addi r4, r1, 0x14
/* 802BE1F8 4B FE D0 5D */ bl getHandleSoundID__14Z2SoundHandlesF10JAISoundID
/* 802BE1FC 7C 7C 1B 79 */ or. r28, r3, r3
/* 802BE200 41 82 00 30 */ beq lbl_802BE230
/* 802BE204 80 1E 00 00 */ lwz r0, 0(r30)
/* 802BE208 90 01 00 10 */ stw r0, 0x10(r1)
/* 802BE20C 80 6D 85 CC */ lwz r3, __OSReport_disable-0x4C(r13)
/* 802BE210 38 81 00 10 */ addi r4, r1, 0x10
/* 802BE214 4B FF D8 B5 */ bl getSwBit__11Z2SoundInfoCF10JAISoundID
/* 802BE218 54 60 04 63 */ rlwinm. r0, r3, 0, 0x11, 0x11
/* 802BE21C 41 82 00 0C */ beq lbl_802BE228
/* 802BE220 3B 80 00 00 */ li r28, 0
/* 802BE224 48 00 00 0C */ b lbl_802BE230
lbl_802BE228:
/* 802BE228 38 60 00 00 */ li r3, 0
/* 802BE22C 48 00 00 88 */ b lbl_802BE2B4
lbl_802BE230:
/* 802BE230 28 1C 00 00 */ cmplwi r28, 0
/* 802BE234 40 82 00 10 */ bne lbl_802BE244
/* 802BE238 7F A3 EB 78 */ mr r3, r29
/* 802BE23C 4B FE D0 9D */ bl getFreeHandle__14Z2SoundHandlesFv
/* 802BE240 7C 7C 1B 78 */ mr r28, r3
lbl_802BE244:
/* 802BE244 28 1C 00 00 */ cmplwi r28, 0
/* 802BE248 40 82 00 1C */ bne lbl_802BE264
/* 802BE24C 80 1E 00 00 */ lwz r0, 0(r30)
/* 802BE250 90 01 00 0C */ stw r0, 0xc(r1)
/* 802BE254 7F A3 EB 78 */ mr r3, r29
/* 802BE258 38 81 00 0C */ addi r4, r1, 0xc
/* 802BE25C 4B FE D1 75 */ bl getLowPrioSound__14Z2SoundHandlesF10JAISoundID
/* 802BE260 7C 7C 1B 78 */ mr r28, r3
lbl_802BE264:
/* 802BE264 28 1C 00 00 */ cmplwi r28, 0
/* 802BE268 41 82 00 48 */ beq lbl_802BE2B0
/* 802BE26C 80 1E 00 00 */ lwz r0, 0(r30)
/* 802BE270 90 01 00 08 */ stw r0, 8(r1)
/* 802BE274 80 7D 00 14 */ lwz r3, 0x14(r29)
/* 802BE278 38 81 00 08 */ addi r4, r1, 8
/* 802BE27C 7F 85 E3 78 */ mr r5, r28
/* 802BE280 80 DD 00 18 */ lwz r6, 0x18(r29)
/* 802BE284 7F E7 FB 78 */ mr r7, r31
/* 802BE288 FC 20 F8 90 */ fmr f1, f31
/* 802BE28C C0 42 C1 3C */ lfs f2, lit_3560(r2)
/* 802BE290 FC 60 10 90 */ fmr f3, f2
/* 802BE294 C0 82 C1 40 */ lfs f4, lit_3561(r2)
/* 802BE298 FC A0 20 90 */ fmr f5, f4
/* 802BE29C 39 00 00 00 */ li r8, 0
/* 802BE2A0 81 83 00 00 */ lwz r12, 0(r3)
/* 802BE2A4 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 802BE2A8 7D 89 03 A6 */ mtctr r12
/* 802BE2AC 4E 80 04 21 */ bctrl
lbl_802BE2B0:
/* 802BE2B0 7F 83 E3 78 */ mr r3, r28
lbl_802BE2B4:
/* 802BE2B4 E3 E1 00 48 */ psq_l f31, 72(r1), 0, 0 /* qr0 */
/* 802BE2B8 CB E1 00 40 */ lfd f31, 0x40(r1)
/* 802BE2BC 39 61 00 40 */ addi r11, r1, 0x40
/* 802BE2C0 48 0A 3F 65 */ bl _restgpr_28
/* 802BE2C4 80 01 00 54 */ lwz r0, 0x54(r1)
/* 802BE2C8 7C 08 03 A6 */ mtlr r0
/* 802BE2CC 38 21 00 50 */ addi r1, r1, 0x50
/* 802BE2D0 4E 80 00 20 */ blr

View File

@ -1,70 +0,0 @@
lbl_802BE8A0:
/* 802BE8A0 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 802BE8A4 7C 08 02 A6 */ mflr r0
/* 802BE8A8 90 01 00 44 */ stw r0, 0x44(r1)
/* 802BE8AC DB E1 00 30 */ stfd f31, 0x30(r1)
/* 802BE8B0 F3 E1 00 38 */ psq_st f31, 56(r1), 0, 0 /* qr0 */
/* 802BE8B4 39 61 00 30 */ addi r11, r1, 0x30
/* 802BE8B8 48 0A 39 25 */ bl _savegpr_29
/* 802BE8BC 7C 9D 23 78 */ mr r29, r4
/* 802BE8C0 7C BE 2B 78 */ mr r30, r5
/* 802BE8C4 80 04 00 00 */ lwz r0, 0(r4)
/* 802BE8C8 90 01 00 08 */ stw r0, 8(r1)
/* 802BE8CC 38 81 00 08 */ addi r4, r1, 8
/* 802BE8D0 4B FF F8 75 */ bl startSound__14Z2SoundObjBaseF10JAISoundIDUlSc
/* 802BE8D4 7C 7F 1B 78 */ mr r31, r3
/* 802BE8D8 80 7D 00 00 */ lwz r3, 0(r29)
/* 802BE8DC 3C 03 FF FE */ addis r0, r3, 0xfffe
/* 802BE8E0 28 00 00 C7 */ cmplwi r0, 0xc7
/* 802BE8E4 40 82 00 A8 */ bne lbl_802BE98C
/* 802BE8E8 28 1F 00 00 */ cmplwi r31, 0
/* 802BE8EC 41 82 00 A0 */ beq lbl_802BE98C
/* 802BE8F0 80 1F 00 00 */ lwz r0, 0(r31)
/* 802BE8F4 28 00 00 00 */ cmplwi r0, 0
/* 802BE8F8 41 82 00 94 */ beq lbl_802BE98C
/* 802BE8FC C8 22 C1 68 */ lfd f1, lit_3828(r2)
/* 802BE900 93 C1 00 14 */ stw r30, 0x14(r1)
/* 802BE904 3C 00 43 30 */ lis r0, 0x4330
/* 802BE908 90 01 00 10 */ stw r0, 0x10(r1)
/* 802BE90C C8 01 00 10 */ lfd f0, 0x10(r1)
/* 802BE910 EC 20 08 28 */ fsubs f1, f0, f1
/* 802BE914 C0 42 C1 50 */ lfs f2, lit_3821(r2)
/* 802BE918 C0 62 C1 38 */ lfs f3, lit_3559(r2)
/* 802BE91C C0 82 C1 54 */ lfs f4, lit_3822(r2)
/* 802BE920 C0 A2 C1 58 */ lfs f5, lit_3823(r2)
/* 802BE924 C0 C2 C1 3C */ lfs f6, lit_3560(r2)
/* 802BE928 38 60 00 01 */ li r3, 1
/* 802BE92C 4B FE AD C9 */ bl getParamByExp__6Z2CalcFffffffQ26Z2Calc9CurveSign
/* 802BE930 FF E0 08 90 */ fmr f31, f1
/* 802BE934 C8 22 C1 68 */ lfd f1, lit_3828(r2)
/* 802BE938 93 C1 00 1C */ stw r30, 0x1c(r1)
/* 802BE93C 3C 00 43 30 */ lis r0, 0x4330
/* 802BE940 90 01 00 18 */ stw r0, 0x18(r1)
/* 802BE944 C8 01 00 18 */ lfd f0, 0x18(r1)
/* 802BE948 EC 20 08 28 */ fsubs f1, f0, f1
/* 802BE94C C0 42 C1 50 */ lfs f2, lit_3821(r2)
/* 802BE950 C0 62 C1 38 */ lfs f3, lit_3559(r2)
/* 802BE954 C0 82 C1 54 */ lfs f4, lit_3822(r2)
/* 802BE958 C0 A2 C1 5C */ lfs f5, lit_3824(r2)
/* 802BE95C C0 C2 C1 60 */ lfs f6, lit_3825(r2)
/* 802BE960 38 60 00 01 */ li r3, 1
/* 802BE964 4B FE AD 91 */ bl getParamByExp__6Z2CalcFffffffQ26Z2Calc9CurveSign
/* 802BE968 80 7F 00 00 */ lwz r3, 0(r31)
/* 802BE96C 38 63 00 48 */ addi r3, r3, 0x48
/* 802BE970 38 80 00 00 */ li r4, 0
/* 802BE974 4B FE 44 99 */ bl movePitch__18JAISoundParamsMoveFfUl
/* 802BE978 80 7F 00 00 */ lwz r3, 0(r31)
/* 802BE97C 38 63 00 48 */ addi r3, r3, 0x48
/* 802BE980 FC 20 F8 90 */ fmr f1, f31
/* 802BE984 38 80 00 00 */ li r4, 0
/* 802BE988 4B FE 44 2D */ bl moveVolume__18JAISoundParamsMoveFfUl
lbl_802BE98C:
/* 802BE98C 7F E3 FB 78 */ mr r3, r31
/* 802BE990 E3 E1 00 38 */ psq_l f31, 56(r1), 0, 0 /* qr0 */
/* 802BE994 CB E1 00 30 */ lfd f31, 0x30(r1)
/* 802BE998 39 61 00 30 */ addi r11, r1, 0x30
/* 802BE99C 48 0A 38 8D */ bl _restgpr_29
/* 802BE9A0 80 01 00 44 */ lwz r0, 0x44(r1)
/* 802BE9A4 7C 08 03 A6 */ mtlr r0
/* 802BE9A8 38 21 00 40 */ addi r1, r1, 0x40
/* 802BE9AC 4E 80 00 20 */ blr

View File

@ -1,40 +0,0 @@
lbl_802BE714:
/* 802BE714 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802BE718 7C 08 02 A6 */ mflr r0
/* 802BE71C 90 01 00 24 */ stw r0, 0x24(r1)
/* 802BE720 39 61 00 20 */ addi r11, r1, 0x20
/* 802BE724 48 0A 3A B9 */ bl _savegpr_29
/* 802BE728 7C 7D 1B 78 */ mr r29, r3
/* 802BE72C 83 E3 00 18 */ lwz r31, 0x18(r3)
/* 802BE730 38 00 00 00 */ li r0, 0
/* 802BE734 90 03 00 18 */ stw r0, 0x18(r3)
/* 802BE738 80 04 00 00 */ lwz r0, 0(r4)
/* 802BE73C 90 01 00 08 */ stw r0, 8(r1)
/* 802BE740 38 81 00 08 */ addi r4, r1, 8
/* 802BE744 4B FF FA 01 */ bl startSound__14Z2SoundObjBaseF10JAISoundIDUlSc
/* 802BE748 7C 7E 1B 78 */ mr r30, r3
/* 802BE74C 28 1F 00 00 */ cmplwi r31, 0
/* 802BE750 41 82 00 3C */ beq lbl_802BE78C
/* 802BE754 28 1E 00 00 */ cmplwi r30, 0
/* 802BE758 41 82 00 34 */ beq lbl_802BE78C
/* 802BE75C 80 7E 00 00 */ lwz r3, 0(r30)
/* 802BE760 28 03 00 00 */ cmplwi r3, 0
/* 802BE764 41 82 00 28 */ beq lbl_802BE78C
/* 802BE768 4B FE 3C E5 */ bl acceptsNewAudible__8JAISoundCFv
/* 802BE76C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802BE770 41 82 00 1C */ beq lbl_802BE78C
/* 802BE774 80 7E 00 00 */ lwz r3, 0(r30)
/* 802BE778 7F E4 FB 78 */ mr r4, r31
/* 802BE77C 38 BD 00 20 */ addi r5, r29, 0x20
/* 802BE780 38 C0 00 00 */ li r6, 0
/* 802BE784 38 E0 00 00 */ li r7, 0
/* 802BE788 4B FE 3C ED */ bl func_802A2474
lbl_802BE78C:
/* 802BE78C 93 FD 00 18 */ stw r31, 0x18(r29)
/* 802BE790 7F C3 F3 78 */ mr r3, r30
/* 802BE794 39 61 00 20 */ addi r11, r1, 0x20
/* 802BE798 48 0A 3A 91 */ bl _restgpr_29
/* 802BE79C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802BE7A0 7C 08 03 A6 */ mtlr r0
/* 802BE7A4 38 21 00 20 */ addi r1, r1, 0x20
/* 802BE7A8 4E 80 00 20 */ blr

View File

@ -1,17 +0,0 @@
lbl_802BE104:
/* 802BE104 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802BE108 7C 08 02 A6 */ mflr r0
/* 802BE10C 90 01 00 14 */ stw r0, 0x14(r1)
/* 802BE110 80 64 00 00 */ lwz r3, 0(r4)
/* 802BE114 80 03 00 18 */ lwz r0, 0x18(r3)
/* 802BE118 90 01 00 08 */ stw r0, 8(r1)
/* 802BE11C 80 6D 85 CC */ lwz r3, __OSReport_disable-0x4C(r13)
/* 802BE120 38 81 00 08 */ addi r4, r1, 8
/* 802BE124 4B FF D9 A5 */ bl getSwBit__11Z2SoundInfoCF10JAISoundID
/* 802BE128 54 60 04 20 */ rlwinm r0, r3, 0, 0x10, 0x10
/* 802BE12C 7C 00 00 34 */ cntlzw r0, r0
/* 802BE130 54 03 D9 7E */ srwi r3, r0, 5
/* 802BE134 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802BE138 7C 08 03 A6 */ mtlr r0
/* 802BE13C 38 21 00 10 */ addi r1, r1, 0x10
/* 802BE140 4E 80 00 20 */ blr

View File

@ -1,307 +0,0 @@
lbl_802BEED4:
/* 802BEED4 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 802BEED8 7C 08 02 A6 */ mflr r0
/* 802BEEDC 90 01 00 44 */ stw r0, 0x44(r1)
/* 802BEEE0 DB E1 00 30 */ stfd f31, 0x30(r1)
/* 802BEEE4 F3 E1 00 38 */ psq_st f31, 56(r1), 0, 0 /* qr0 */
/* 802BEEE8 DB C1 00 20 */ stfd f30, 0x20(r1)
/* 802BEEEC F3 C1 00 28 */ psq_st f30, 40(r1), 0, 0 /* qr0 */
/* 802BEEF0 39 61 00 20 */ addi r11, r1, 0x20
/* 802BEEF4 48 0A 32 E9 */ bl _savegpr_29
/* 802BEEF8 7C 7F 1B 78 */ mr r31, r3
/* 802BEEFC FF C0 08 90 */ fmr f30, f1
/* 802BEF00 FF E0 10 90 */ fmr f31, f2
/* 802BEF04 3B C0 00 00 */ li r30, 0
/* 802BEF08 48 00 00 98 */ b lbl_802BEFA0
lbl_802BEF0C:
/* 802BEF0C 7F E3 FB 78 */ mr r3, r31
/* 802BEF10 7F C4 F3 78 */ mr r4, r30
/* 802BEF14 48 01 D2 F9 */ bl getNthLink__10JSUPtrListCFUl
/* 802BEF18 28 03 00 00 */ cmplwi r3, 0
/* 802BEF1C 41 82 00 08 */ beq lbl_802BEF24
/* 802BEF20 38 63 FF FC */ addi r3, r3, -4
lbl_802BEF24:
/* 802BEF24 80 03 00 00 */ lwz r0, 0(r3)
/* 802BEF28 28 00 00 00 */ cmplwi r0, 0
/* 802BEF2C 41 82 00 70 */ beq lbl_802BEF9C
/* 802BEF30 7F E3 FB 78 */ mr r3, r31
/* 802BEF34 7F C4 F3 78 */ mr r4, r30
/* 802BEF38 48 01 D2 D5 */ bl getNthLink__10JSUPtrListCFUl
/* 802BEF3C 28 03 00 00 */ cmplwi r3, 0
/* 802BEF40 41 82 00 08 */ beq lbl_802BEF48
/* 802BEF44 38 63 FF FC */ addi r3, r3, -4
lbl_802BEF48:
/* 802BEF48 80 63 00 00 */ lwz r3, 0(r3)
/* 802BEF4C 88 03 00 1F */ lbz r0, 0x1f(r3)
/* 802BEF50 54 00 E7 BF */ rlwinm. r0, r0, 0x1c, 0x1e, 0x1f
/* 802BEF54 41 82 00 48 */ beq lbl_802BEF9C
/* 802BEF58 83 BF 00 18 */ lwz r29, 0x18(r31)
/* 802BEF5C 7F E3 FB 78 */ mr r3, r31
/* 802BEF60 7F C4 F3 78 */ mr r4, r30
/* 802BEF64 48 01 D2 A9 */ bl getNthLink__10JSUPtrListCFUl
/* 802BEF68 28 03 00 00 */ cmplwi r3, 0
/* 802BEF6C 41 82 00 08 */ beq lbl_802BEF74
/* 802BEF70 38 63 FF FC */ addi r3, r3, -4
lbl_802BEF74:
/* 802BEF74 80 63 00 00 */ lwz r3, 0(r3)
/* 802BEF78 80 63 00 08 */ lwz r3, 8(r3)
/* 802BEF7C 28 03 00 00 */ cmplwi r3, 0
/* 802BEF80 41 82 00 1C */ beq lbl_802BEF9C
/* 802BEF84 C0 1D 00 00 */ lfs f0, 0(r29)
/* 802BEF88 D0 03 00 04 */ stfs f0, 4(r3)
/* 802BEF8C C0 1D 00 04 */ lfs f0, 4(r29)
/* 802BEF90 D0 03 00 08 */ stfs f0, 8(r3)
/* 802BEF94 C0 1D 00 08 */ lfs f0, 8(r29)
/* 802BEF98 D0 03 00 0C */ stfs f0, 0xc(r3)
lbl_802BEF9C:
/* 802BEF9C 3B DE 00 01 */ addi r30, r30, 1
lbl_802BEFA0:
/* 802BEFA0 80 1F 00 08 */ lwz r0, 8(r31)
/* 802BEFA4 7C 1E 00 00 */ cmpw r30, r0
/* 802BEFA8 41 80 FF 64 */ blt lbl_802BEF0C
/* 802BEFAC 80 9F 00 20 */ lwz r4, 0x20(r31)
/* 802BEFB0 28 04 00 00 */ cmplwi r4, 0
/* 802BEFB4 41 82 03 28 */ beq lbl_802BF2DC
/* 802BEFB8 80 64 00 04 */ lwz r3, 4(r4)
/* 802BEFBC 28 03 00 00 */ cmplwi r3, 0
/* 802BEFC0 41 82 00 18 */ beq lbl_802BEFD8
/* 802BEFC4 81 83 00 00 */ lwz r12, 0(r3)
/* 802BEFC8 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 802BEFCC 7D 89 03 A6 */ mtctr r12
/* 802BEFD0 4E 80 04 21 */ bctrl
/* 802BEFD4 48 00 00 08 */ b lbl_802BEFDC
lbl_802BEFD8:
/* 802BEFD8 A0 64 00 00 */ lhz r3, 0(r4)
lbl_802BEFDC:
/* 802BEFDC 54 60 04 3F */ clrlwi. r0, r3, 0x10
/* 802BEFE0 40 82 00 08 */ bne lbl_802BEFE8
/* 802BEFE4 48 00 02 F8 */ b lbl_802BF2DC
lbl_802BEFE8:
/* 802BEFE8 88 1F 00 44 */ lbz r0, 0x44(r31)
/* 802BEFEC 28 00 00 00 */ cmplwi r0, 0
/* 802BEFF0 40 82 01 8C */ bne lbl_802BF17C
/* 802BEFF4 C0 1F 00 28 */ lfs f0, 0x28(r31)
/* 802BEFF8 FC 1E 00 40 */ fcmpo cr0, f30, f0
/* 802BEFFC 40 80 00 5C */ bge lbl_802BF058
/* 802BF000 48 00 00 20 */ b lbl_802BF020
lbl_802BF004:
/* 802BF004 7F E3 FB 78 */ mr r3, r31
/* 802BF008 80 9F 00 18 */ lwz r4, 0x18(r31)
/* 802BF00C FC 20 F8 90 */ fmr f1, f31
/* 802BF010 80 BF 00 14 */ lwz r5, 0x14(r31)
/* 802BF014 A0 DF 00 1C */ lhz r6, 0x1c(r31)
/* 802BF018 88 FF 00 1E */ lbz r7, 0x1e(r31)
/* 802BF01C 48 00 06 45 */ bl func_802BF660
lbl_802BF020:
/* 802BF020 80 7F 00 40 */ lwz r3, 0x40(r31)
/* 802BF024 80 1F 00 38 */ lwz r0, 0x38(r31)
/* 802BF028 7C 03 00 00 */ cmpw r3, r0
/* 802BF02C 41 80 FF D8 */ blt lbl_802BF004
/* 802BF030 80 1F 00 34 */ lwz r0, 0x34(r31)
/* 802BF034 90 1F 00 40 */ stw r0, 0x40(r31)
/* 802BF038 D3 DF 00 28 */ stfs f30, 0x28(r31)
/* 802BF03C 80 9F 00 3C */ lwz r4, 0x3c(r31)
/* 802BF040 3C 60 00 01 */ lis r3, 0x0001 /* 0x0000FFFF@ha */
/* 802BF044 38 03 FF FF */ addi r0, r3, 0xFFFF /* 0x0000FFFF@l */
/* 802BF048 7C 04 00 00 */ cmpw r4, r0
/* 802BF04C 40 80 00 0C */ bge lbl_802BF058
/* 802BF050 38 04 00 01 */ addi r0, r4, 1
/* 802BF054 90 1F 00 3C */ stw r0, 0x3c(r31)
lbl_802BF058:
/* 802BF058 7F E3 FB 78 */ mr r3, r31
/* 802BF05C FC 20 F0 90 */ fmr f1, f30
/* 802BF060 FC 40 F8 90 */ fmr f2, f31
/* 802BF064 48 00 02 A1 */ bl updateSoundLifeTime___15Z2SoundObjAnimeFff
/* 802BF068 48 00 00 20 */ b lbl_802BF088
lbl_802BF06C:
/* 802BF06C 7F E3 FB 78 */ mr r3, r31
/* 802BF070 80 9F 00 18 */ lwz r4, 0x18(r31)
/* 802BF074 FC 20 F8 90 */ fmr f1, f31
/* 802BF078 80 BF 00 14 */ lwz r5, 0x14(r31)
/* 802BF07C A0 DF 00 1C */ lhz r6, 0x1c(r31)
/* 802BF080 88 FF 00 1E */ lbz r7, 0x1e(r31)
/* 802BF084 48 00 05 DD */ bl func_802BF660
lbl_802BF088:
/* 802BF088 80 9F 00 20 */ lwz r4, 0x20(r31)
/* 802BF08C 80 64 00 04 */ lwz r3, 4(r4)
/* 802BF090 28 03 00 00 */ cmplwi r3, 0
/* 802BF094 41 82 00 18 */ beq lbl_802BF0AC
/* 802BF098 81 83 00 00 */ lwz r12, 0(r3)
/* 802BF09C 81 8C 00 10 */ lwz r12, 0x10(r12)
/* 802BF0A0 7D 89 03 A6 */ mtctr r12
/* 802BF0A4 4E 80 04 21 */ bctrl
/* 802BF0A8 48 00 00 08 */ b lbl_802BF0B0
lbl_802BF0AC:
/* 802BF0AC A0 64 00 00 */ lhz r3, 0(r4)
lbl_802BF0B0:
/* 802BF0B0 80 BF 00 40 */ lwz r5, 0x40(r31)
/* 802BF0B4 54 60 04 3E */ clrlwi r0, r3, 0x10
/* 802BF0B8 7C 05 00 00 */ cmpw r5, r0
/* 802BF0BC 40 80 02 1C */ bge lbl_802BF2D8
/* 802BF0C0 80 9F 00 20 */ lwz r4, 0x20(r31)
/* 802BF0C4 80 64 00 04 */ lwz r3, 4(r4)
/* 802BF0C8 28 03 00 00 */ cmplwi r3, 0
/* 802BF0CC 41 82 00 18 */ beq lbl_802BF0E4
/* 802BF0D0 81 83 00 00 */ lwz r12, 0(r3)
/* 802BF0D4 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 802BF0D8 7D 89 03 A6 */ mtctr r12
/* 802BF0DC 4E 80 04 21 */ bctrl
/* 802BF0E0 48 00 00 10 */ b lbl_802BF0F0
lbl_802BF0E4:
/* 802BF0E4 54 A3 28 34 */ slwi r3, r5, 5
/* 802BF0E8 38 63 00 08 */ addi r3, r3, 8
/* 802BF0EC 7C 64 1A 14 */ add r3, r4, r3
lbl_802BF0F0:
/* 802BF0F0 80 03 00 10 */ lwz r0, 0x10(r3)
/* 802BF0F4 54 00 06 73 */ rlwinm. r0, r0, 0, 0x19, 0x19
/* 802BF0F8 41 82 00 64 */ beq lbl_802BF15C
/* 802BF0FC C0 23 00 04 */ lfs f1, 4(r3)
/* 802BF100 C0 03 00 08 */ lfs f0, 8(r3)
/* 802BF104 FC 01 00 00 */ fcmpu cr0, f1, f0
/* 802BF108 40 82 00 0C */ bne lbl_802BF114
/* 802BF10C 38 00 00 01 */ li r0, 1
/* 802BF110 48 00 00 60 */ b lbl_802BF170
lbl_802BF114:
/* 802BF114 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 802BF118 40 81 00 20 */ ble lbl_802BF138
/* 802BF11C FC 00 F0 40 */ fcmpo cr0, f0, f30
/* 802BF120 4C 40 13 82 */ cror 2, 0, 2
/* 802BF124 40 82 00 30 */ bne lbl_802BF154
/* 802BF128 FC 1E 08 40 */ fcmpo cr0, f30, f1
/* 802BF12C 40 80 00 28 */ bge lbl_802BF154
/* 802BF130 38 00 00 01 */ li r0, 1
/* 802BF134 48 00 00 3C */ b lbl_802BF170
lbl_802BF138:
/* 802BF138 FC 01 F0 40 */ fcmpo cr0, f1, f30
/* 802BF13C 4C 40 13 82 */ cror 2, 0, 2
/* 802BF140 40 82 00 14 */ bne lbl_802BF154
/* 802BF144 FC 1E 00 40 */ fcmpo cr0, f30, f0
/* 802BF148 40 80 00 0C */ bge lbl_802BF154
/* 802BF14C 38 00 00 01 */ li r0, 1
/* 802BF150 48 00 00 20 */ b lbl_802BF170
lbl_802BF154:
/* 802BF154 38 00 00 00 */ li r0, 0
/* 802BF158 48 00 00 18 */ b lbl_802BF170
lbl_802BF15C:
/* 802BF15C C0 03 00 04 */ lfs f0, 4(r3)
/* 802BF160 FC 1E 00 40 */ fcmpo cr0, f30, f0
/* 802BF164 4C 41 13 82 */ cror 2, 1, 2
/* 802BF168 7C 00 00 26 */ mfcr r0
/* 802BF16C 54 00 1F FE */ rlwinm r0, r0, 3, 0x1f, 0x1f
lbl_802BF170:
/* 802BF170 54 00 06 3F */ clrlwi. r0, r0, 0x18
/* 802BF174 40 82 FE F8 */ bne lbl_802BF06C
/* 802BF178 48 00 01 60 */ b lbl_802BF2D8
lbl_802BF17C:
/* 802BF17C C0 1F 00 28 */ lfs f0, 0x28(r31)
/* 802BF180 FC 1E 00 40 */ fcmpo cr0, f30, f0
/* 802BF184 40 81 00 60 */ ble lbl_802BF1E4
/* 802BF188 48 00 00 20 */ b lbl_802BF1A8
lbl_802BF18C:
/* 802BF18C 7F E3 FB 78 */ mr r3, r31
/* 802BF190 80 9F 00 18 */ lwz r4, 0x18(r31)
/* 802BF194 FC 20 F8 90 */ fmr f1, f31
/* 802BF198 80 BF 00 14 */ lwz r5, 0x14(r31)
/* 802BF19C A0 DF 00 1C */ lhz r6, 0x1c(r31)
/* 802BF1A0 88 FF 00 1E */ lbz r7, 0x1e(r31)
/* 802BF1A4 48 00 04 BD */ bl func_802BF660
lbl_802BF1A8:
/* 802BF1A8 80 7F 00 40 */ lwz r3, 0x40(r31)
/* 802BF1AC 80 1F 00 34 */ lwz r0, 0x34(r31)
/* 802BF1B0 7C 03 00 00 */ cmpw r3, r0
/* 802BF1B4 40 80 FF D8 */ bge lbl_802BF18C
/* 802BF1B8 80 7F 00 38 */ lwz r3, 0x38(r31)
/* 802BF1BC 38 03 FF FF */ addi r0, r3, -1
/* 802BF1C0 90 1F 00 40 */ stw r0, 0x40(r31)
/* 802BF1C4 D3 DF 00 28 */ stfs f30, 0x28(r31)
/* 802BF1C8 80 9F 00 3C */ lwz r4, 0x3c(r31)
/* 802BF1CC 3C 60 00 01 */ lis r3, 0x0001 /* 0x0000FFFF@ha */
/* 802BF1D0 38 03 FF FF */ addi r0, r3, 0xFFFF /* 0x0000FFFF@l */
/* 802BF1D4 7C 04 00 00 */ cmpw r4, r0
/* 802BF1D8 40 80 00 0C */ bge lbl_802BF1E4
/* 802BF1DC 38 04 00 01 */ addi r0, r4, 1
/* 802BF1E0 90 1F 00 3C */ stw r0, 0x3c(r31)
lbl_802BF1E4:
/* 802BF1E4 7F E3 FB 78 */ mr r3, r31
/* 802BF1E8 FC 20 F0 90 */ fmr f1, f30
/* 802BF1EC FC 40 F8 90 */ fmr f2, f31
/* 802BF1F0 48 00 01 15 */ bl updateSoundLifeTime___15Z2SoundObjAnimeFff
/* 802BF1F4 48 00 00 20 */ b lbl_802BF214
lbl_802BF1F8:
/* 802BF1F8 7F E3 FB 78 */ mr r3, r31
/* 802BF1FC 80 9F 00 18 */ lwz r4, 0x18(r31)
/* 802BF200 FC 20 F8 90 */ fmr f1, f31
/* 802BF204 80 BF 00 14 */ lwz r5, 0x14(r31)
/* 802BF208 A0 DF 00 1C */ lhz r6, 0x1c(r31)
/* 802BF20C 88 FF 00 1E */ lbz r7, 0x1e(r31)
/* 802BF210 48 00 04 51 */ bl func_802BF660
lbl_802BF214:
/* 802BF214 80 BF 00 40 */ lwz r5, 0x40(r31)
/* 802BF218 2C 05 00 00 */ cmpwi r5, 0
/* 802BF21C 41 80 00 BC */ blt lbl_802BF2D8
/* 802BF220 80 9F 00 20 */ lwz r4, 0x20(r31)
/* 802BF224 80 64 00 04 */ lwz r3, 4(r4)
/* 802BF228 28 03 00 00 */ cmplwi r3, 0
/* 802BF22C 41 82 00 18 */ beq lbl_802BF244
/* 802BF230 81 83 00 00 */ lwz r12, 0(r3)
/* 802BF234 81 8C 00 0C */ lwz r12, 0xc(r12)
/* 802BF238 7D 89 03 A6 */ mtctr r12
/* 802BF23C 4E 80 04 21 */ bctrl
/* 802BF240 48 00 00 10 */ b lbl_802BF250
lbl_802BF244:
/* 802BF244 54 A3 28 34 */ slwi r3, r5, 5
/* 802BF248 38 63 00 08 */ addi r3, r3, 8
/* 802BF24C 7C 64 1A 14 */ add r3, r4, r3
lbl_802BF250:
/* 802BF250 80 03 00 10 */ lwz r0, 0x10(r3)
/* 802BF254 54 00 06 73 */ rlwinm. r0, r0, 0, 0x19, 0x19
/* 802BF258 41 82 00 64 */ beq lbl_802BF2BC
/* 802BF25C C0 23 00 04 */ lfs f1, 4(r3)
/* 802BF260 C0 03 00 08 */ lfs f0, 8(r3)
/* 802BF264 FC 01 00 00 */ fcmpu cr0, f1, f0
/* 802BF268 40 82 00 0C */ bne lbl_802BF274
/* 802BF26C 38 00 00 01 */ li r0, 1
/* 802BF270 48 00 00 60 */ b lbl_802BF2D0
lbl_802BF274:
/* 802BF274 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 802BF278 40 81 00 20 */ ble lbl_802BF298
/* 802BF27C FC 00 F0 40 */ fcmpo cr0, f0, f30
/* 802BF280 4C 40 13 82 */ cror 2, 0, 2
/* 802BF284 40 82 00 30 */ bne lbl_802BF2B4
/* 802BF288 FC 1E 08 40 */ fcmpo cr0, f30, f1
/* 802BF28C 40 80 00 28 */ bge lbl_802BF2B4
/* 802BF290 38 00 00 01 */ li r0, 1
/* 802BF294 48 00 00 3C */ b lbl_802BF2D0
lbl_802BF298:
/* 802BF298 FC 01 F0 40 */ fcmpo cr0, f1, f30
/* 802BF29C 4C 40 13 82 */ cror 2, 0, 2
/* 802BF2A0 40 82 00 14 */ bne lbl_802BF2B4
/* 802BF2A4 FC 1E 00 40 */ fcmpo cr0, f30, f0
/* 802BF2A8 40 80 00 0C */ bge lbl_802BF2B4
/* 802BF2AC 38 00 00 01 */ li r0, 1
/* 802BF2B0 48 00 00 20 */ b lbl_802BF2D0
lbl_802BF2B4:
/* 802BF2B4 38 00 00 00 */ li r0, 0
/* 802BF2B8 48 00 00 18 */ b lbl_802BF2D0
lbl_802BF2BC:
/* 802BF2BC C0 03 00 04 */ lfs f0, 4(r3)
/* 802BF2C0 FC 1E 00 40 */ fcmpo cr0, f30, f0
/* 802BF2C4 4C 40 13 82 */ cror 2, 0, 2
/* 802BF2C8 7C 00 00 26 */ mfcr r0
/* 802BF2CC 54 00 1F FE */ rlwinm r0, r0, 3, 0x1f, 0x1f
lbl_802BF2D0:
/* 802BF2D0 54 00 06 3F */ clrlwi. r0, r0, 0x18
/* 802BF2D4 40 82 FF 24 */ bne lbl_802BF1F8
lbl_802BF2D8:
/* 802BF2D8 D3 DF 00 28 */ stfs f30, 0x28(r31)
lbl_802BF2DC:
/* 802BF2DC E3 E1 00 38 */ psq_l f31, 56(r1), 0, 0 /* qr0 */
/* 802BF2E0 CB E1 00 30 */ lfd f31, 0x30(r1)
/* 802BF2E4 E3 C1 00 28 */ psq_l f30, 40(r1), 0, 0 /* qr0 */
/* 802BF2E8 CB C1 00 20 */ lfd f30, 0x20(r1)
/* 802BF2EC 39 61 00 20 */ addi r11, r1, 0x20
/* 802BF2F0 48 0A 2F 39 */ bl _restgpr_29
/* 802BF2F4 80 01 00 44 */ lwz r0, 0x44(r1)
/* 802BF2F8 7C 08 03 A6 */ mtlr r0
/* 802BF2FC 38 21 00 40 */ addi r1, r1, 0x40
/* 802BF300 4E 80 00 20 */ blr

View File

@ -1,248 +0,0 @@
lbl_802BF304:
/* 802BF304 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 802BF308 7C 08 02 A6 */ mflr r0
/* 802BF30C 90 01 00 34 */ stw r0, 0x34(r1)
/* 802BF310 DB E1 00 20 */ stfd f31, 0x20(r1)
/* 802BF314 F3 E1 00 28 */ psq_st f31, 40(r1), 0, 0 /* qr0 */
/* 802BF318 DB C1 00 10 */ stfd f30, 0x10(r1)
/* 802BF31C F3 C1 00 18 */ psq_st f30, 24(r1), 0, 0 /* qr0 */
/* 802BF320 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802BF324 93 C1 00 08 */ stw r30, 8(r1)
/* 802BF328 7C 7F 1B 78 */ mr r31, r3
/* 802BF32C FF C0 08 90 */ fmr f30, f1
/* 802BF330 FF E0 10 90 */ fmr f31, f2
/* 802BF334 80 03 00 20 */ lwz r0, 0x20(r3)
/* 802BF338 28 00 00 00 */ cmplwi r0, 0
/* 802BF33C 41 82 02 FC */ beq lbl_802BF638
/* 802BF340 3B C0 00 00 */ li r30, 0
/* 802BF344 48 00 02 E8 */ b lbl_802BF62C
lbl_802BF348:
/* 802BF348 7F E3 FB 78 */ mr r3, r31
/* 802BF34C 7F C4 F3 78 */ mr r4, r30
/* 802BF350 48 01 CE BD */ bl getNthLink__10JSUPtrListCFUl
/* 802BF354 28 03 00 00 */ cmplwi r3, 0
/* 802BF358 41 82 00 08 */ beq lbl_802BF360
/* 802BF35C 38 63 FF FC */ addi r3, r3, -4
lbl_802BF360:
/* 802BF360 80 03 00 00 */ lwz r0, 0(r3)
/* 802BF364 28 00 00 00 */ cmplwi r0, 0
/* 802BF368 41 82 02 C0 */ beq lbl_802BF628
/* 802BF36C 7F E3 FB 78 */ mr r3, r31
/* 802BF370 7F C4 F3 78 */ mr r4, r30
/* 802BF374 48 01 CE 99 */ bl getNthLink__10JSUPtrListCFUl
/* 802BF378 28 03 00 00 */ cmplwi r3, 0
/* 802BF37C 41 82 00 08 */ beq lbl_802BF384
/* 802BF380 38 63 FF FC */ addi r3, r3, -4
lbl_802BF384:
/* 802BF384 80 63 00 00 */ lwz r3, 0(r3)
/* 802BF388 88 03 00 1F */ lbz r0, 0x1f(r3)
/* 802BF38C 54 00 E7 BE */ rlwinm r0, r0, 0x1c, 0x1e, 0x1f
/* 802BF390 2C 00 00 01 */ cmpwi r0, 1
/* 802BF394 41 82 00 10 */ beq lbl_802BF3A4
/* 802BF398 40 80 02 90 */ bge lbl_802BF628
/* 802BF39C 48 00 02 8C */ b lbl_802BF628
/* 802BF3A0 48 00 02 88 */ b lbl_802BF628
lbl_802BF3A4:
/* 802BF3A4 7F E3 FB 78 */ mr r3, r31
/* 802BF3A8 7F C4 F3 78 */ mr r4, r30
/* 802BF3AC 48 01 CE 61 */ bl getNthLink__10JSUPtrListCFUl
/* 802BF3B0 28 03 00 00 */ cmplwi r3, 0
/* 802BF3B4 41 82 00 08 */ beq lbl_802BF3BC
/* 802BF3B8 38 63 FF FC */ addi r3, r3, -4
lbl_802BF3BC:
/* 802BF3BC 80 63 00 00 */ lwz r3, 0(r3)
/* 802BF3C0 80 63 00 20 */ lwz r3, 0x20(r3)
/* 802BF3C4 38 80 00 00 */ li r4, 0
/* 802BF3C8 C0 02 C1 50 */ lfs f0, lit_3821(r2)
/* 802BF3CC FC 00 F8 00 */ fcmpu cr0, f0, f31
/* 802BF3D0 40 82 00 14 */ bne lbl_802BF3E4
/* 802BF3D4 80 03 00 10 */ lwz r0, 0x10(r3)
/* 802BF3D8 54 00 06 B5 */ rlwinm. r0, r0, 0, 0x1a, 0x1a
/* 802BF3DC 41 82 00 08 */ beq lbl_802BF3E4
/* 802BF3E0 38 80 00 01 */ li r4, 1
lbl_802BF3E4:
/* 802BF3E4 80 A3 00 10 */ lwz r5, 0x10(r3)
/* 802BF3E8 54 A6 06 73 */ rlwinm. r6, r5, 0, 0x19, 0x19
/* 802BF3EC 41 82 01 24 */ beq lbl_802BF510
/* 802BF3F0 54 80 06 3F */ clrlwi. r0, r4, 0x18
/* 802BF3F4 41 82 00 34 */ beq lbl_802BF428
/* 802BF3F8 7F E3 FB 78 */ mr r3, r31
/* 802BF3FC 7F C4 F3 78 */ mr r4, r30
/* 802BF400 48 01 CE 0D */ bl getNthLink__10JSUPtrListCFUl
/* 802BF404 28 03 00 00 */ cmplwi r3, 0
/* 802BF408 41 82 00 08 */ beq lbl_802BF410
/* 802BF40C 38 63 FF FC */ addi r3, r3, -4
lbl_802BF410:
/* 802BF410 80 83 00 00 */ lwz r4, 0(r3)
/* 802BF414 38 60 00 01 */ li r3, 1
/* 802BF418 88 04 00 1C */ lbz r0, 0x1c(r4)
/* 802BF41C 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 802BF420 98 04 00 1C */ stb r0, 0x1c(r4)
/* 802BF424 48 00 02 04 */ b lbl_802BF628
lbl_802BF428:
/* 802BF428 C0 23 00 04 */ lfs f1, 4(r3)
/* 802BF42C C0 03 00 08 */ lfs f0, 8(r3)
/* 802BF430 FC 01 00 00 */ fcmpu cr0, f1, f0
/* 802BF434 40 82 00 0C */ bne lbl_802BF440
/* 802BF438 38 00 00 01 */ li r0, 1
/* 802BF43C 48 00 00 48 */ b lbl_802BF484
lbl_802BF440:
/* 802BF440 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 802BF444 40 81 00 20 */ ble lbl_802BF464
/* 802BF448 FC 00 F0 40 */ fcmpo cr0, f0, f30
/* 802BF44C 4C 40 13 82 */ cror 2, 0, 2
/* 802BF450 40 82 00 30 */ bne lbl_802BF480
/* 802BF454 FC 1E 08 40 */ fcmpo cr0, f30, f1
/* 802BF458 40 80 00 28 */ bge lbl_802BF480
/* 802BF45C 38 00 00 01 */ li r0, 1
/* 802BF460 48 00 00 24 */ b lbl_802BF484
lbl_802BF464:
/* 802BF464 FC 01 F0 40 */ fcmpo cr0, f1, f30
/* 802BF468 4C 40 13 82 */ cror 2, 0, 2
/* 802BF46C 40 82 00 14 */ bne lbl_802BF480
/* 802BF470 FC 1E 00 40 */ fcmpo cr0, f30, f0
/* 802BF474 40 80 00 0C */ bge lbl_802BF480
/* 802BF478 38 00 00 01 */ li r0, 1
/* 802BF47C 48 00 00 08 */ b lbl_802BF484
lbl_802BF480:
/* 802BF480 38 00 00 00 */ li r0, 0
lbl_802BF484:
/* 802BF484 54 00 06 3F */ clrlwi. r0, r0, 0x18
/* 802BF488 41 82 00 64 */ beq lbl_802BF4EC
/* 802BF48C 7F E3 FB 78 */ mr r3, r31
/* 802BF490 7F C4 F3 78 */ mr r4, r30
/* 802BF494 48 01 CD 79 */ bl getNthLink__10JSUPtrListCFUl
/* 802BF498 28 03 00 00 */ cmplwi r3, 0
/* 802BF49C 41 82 00 08 */ beq lbl_802BF4A4
/* 802BF4A0 38 63 FF FC */ addi r3, r3, -4
lbl_802BF4A4:
/* 802BF4A4 80 63 00 00 */ lwz r3, 0(r3)
/* 802BF4A8 80 03 00 10 */ lwz r0, 0x10(r3)
/* 802BF4AC 28 00 00 01 */ cmplwi r0, 1
/* 802BF4B0 40 80 00 0C */ bge lbl_802BF4BC
/* 802BF4B4 38 00 00 01 */ li r0, 1
/* 802BF4B8 90 03 00 10 */ stw r0, 0x10(r3)
lbl_802BF4BC:
/* 802BF4BC 7F E3 FB 78 */ mr r3, r31
/* 802BF4C0 7F C4 F3 78 */ mr r4, r30
/* 802BF4C4 48 01 CD 49 */ bl getNthLink__10JSUPtrListCFUl
/* 802BF4C8 28 03 00 00 */ cmplwi r3, 0
/* 802BF4CC 41 82 00 08 */ beq lbl_802BF4D4
/* 802BF4D0 38 63 FF FC */ addi r3, r3, -4
lbl_802BF4D4:
/* 802BF4D4 80 83 00 00 */ lwz r4, 0(r3)
/* 802BF4D8 38 60 00 00 */ li r3, 0
/* 802BF4DC 88 04 00 1C */ lbz r0, 0x1c(r4)
/* 802BF4E0 50 60 36 72 */ rlwimi r0, r3, 6, 0x19, 0x19
/* 802BF4E4 98 04 00 1C */ stb r0, 0x1c(r4)
/* 802BF4E8 48 00 01 40 */ b lbl_802BF628
lbl_802BF4EC:
/* 802BF4EC 7F E3 FB 78 */ mr r3, r31
/* 802BF4F0 7F C4 F3 78 */ mr r4, r30
/* 802BF4F4 48 01 CD 19 */ bl getNthLink__10JSUPtrListCFUl
/* 802BF4F8 28 03 00 00 */ cmplwi r3, 0
/* 802BF4FC 41 82 00 08 */ beq lbl_802BF504
/* 802BF500 38 63 FF FC */ addi r3, r3, -4
lbl_802BF504:
/* 802BF504 80 63 00 00 */ lwz r3, 0(r3)
/* 802BF508 4B FE 30 91 */ bl stop__8JAISoundFv
/* 802BF50C 48 00 01 1C */ b lbl_802BF628
lbl_802BF510:
/* 802BF510 54 80 06 3F */ clrlwi. r0, r4, 0x18
/* 802BF514 41 82 00 28 */ beq lbl_802BF53C
/* 802BF518 7F E3 FB 78 */ mr r3, r31
/* 802BF51C 7F C4 F3 78 */ mr r4, r30
/* 802BF520 48 01 CC ED */ bl getNthLink__10JSUPtrListCFUl
/* 802BF524 28 03 00 00 */ cmplwi r3, 0
/* 802BF528 41 82 00 08 */ beq lbl_802BF530
/* 802BF52C 38 63 FF FC */ addi r3, r3, -4
lbl_802BF530:
/* 802BF530 80 63 00 00 */ lwz r3, 0(r3)
/* 802BF534 4B FE 30 65 */ bl stop__8JAISoundFv
/* 802BF538 48 00 00 F0 */ b lbl_802BF628
lbl_802BF53C:
/* 802BF53C 54 A0 06 F7 */ rlwinm. r0, r5, 0, 0x1b, 0x1b
/* 802BF540 41 82 00 E8 */ beq lbl_802BF628
/* 802BF544 88 1F 00 44 */ lbz r0, 0x44(r31)
/* 802BF548 28 06 00 00 */ cmplwi r6, 0
/* 802BF54C 41 82 00 70 */ beq lbl_802BF5BC
/* 802BF550 C0 23 00 04 */ lfs f1, 4(r3)
/* 802BF554 C0 03 00 08 */ lfs f0, 8(r3)
/* 802BF558 FC 01 00 00 */ fcmpu cr0, f1, f0
/* 802BF55C 40 82 00 0C */ bne lbl_802BF568
/* 802BF560 38 00 00 01 */ li r0, 1
/* 802BF564 48 00 00 48 */ b lbl_802BF5AC
lbl_802BF568:
/* 802BF568 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 802BF56C 40 81 00 20 */ ble lbl_802BF58C
/* 802BF570 FC 00 F0 40 */ fcmpo cr0, f0, f30
/* 802BF574 4C 40 13 82 */ cror 2, 0, 2
/* 802BF578 40 82 00 30 */ bne lbl_802BF5A8
/* 802BF57C FC 1E 08 40 */ fcmpo cr0, f30, f1
/* 802BF580 40 80 00 28 */ bge lbl_802BF5A8
/* 802BF584 38 00 00 01 */ li r0, 1
/* 802BF588 48 00 00 24 */ b lbl_802BF5AC
lbl_802BF58C:
/* 802BF58C FC 01 F0 40 */ fcmpo cr0, f1, f30
/* 802BF590 4C 40 13 82 */ cror 2, 0, 2
/* 802BF594 40 82 00 14 */ bne lbl_802BF5A8
/* 802BF598 FC 1E 00 40 */ fcmpo cr0, f30, f0
/* 802BF59C 40 80 00 0C */ bge lbl_802BF5A8
/* 802BF5A0 38 00 00 01 */ li r0, 1
/* 802BF5A4 48 00 00 08 */ b lbl_802BF5AC
lbl_802BF5A8:
/* 802BF5A8 38 00 00 00 */ li r0, 0
lbl_802BF5AC:
/* 802BF5AC 54 00 06 3E */ clrlwi r0, r0, 0x18
/* 802BF5B0 7C 00 00 34 */ cntlzw r0, r0
/* 802BF5B4 54 00 D9 7E */ srwi r0, r0, 5
/* 802BF5B8 48 00 00 48 */ b lbl_802BF600
lbl_802BF5BC:
/* 802BF5BC C0 03 00 04 */ lfs f0, 4(r3)
/* 802BF5C0 C0 23 00 08 */ lfs f1, 8(r3)
/* 802BF5C4 FC 00 08 00 */ fcmpu cr0, f0, f1
/* 802BF5C8 40 82 00 0C */ bne lbl_802BF5D4
/* 802BF5CC 38 00 00 00 */ li r0, 0
/* 802BF5D0 48 00 00 30 */ b lbl_802BF600
lbl_802BF5D4:
/* 802BF5D4 28 00 00 00 */ cmplwi r0, 0
/* 802BF5D8 41 82 00 18 */ beq lbl_802BF5F0
/* 802BF5DC FC 1E 08 40 */ fcmpo cr0, f30, f1
/* 802BF5E0 4C 40 13 82 */ cror 2, 0, 2
/* 802BF5E4 7C 00 00 26 */ mfcr r0
/* 802BF5E8 54 00 1F FE */ rlwinm r0, r0, 3, 0x1f, 0x1f
/* 802BF5EC 48 00 00 14 */ b lbl_802BF600
lbl_802BF5F0:
/* 802BF5F0 FC 1E 08 40 */ fcmpo cr0, f30, f1
/* 802BF5F4 4C 41 13 82 */ cror 2, 1, 2
/* 802BF5F8 7C 00 00 26 */ mfcr r0
/* 802BF5FC 54 00 1F FE */ rlwinm r0, r0, 3, 0x1f, 0x1f
lbl_802BF600:
/* 802BF600 54 00 06 3F */ clrlwi. r0, r0, 0x18
/* 802BF604 41 82 00 24 */ beq lbl_802BF628
/* 802BF608 7F E3 FB 78 */ mr r3, r31
/* 802BF60C 7F C4 F3 78 */ mr r4, r30
/* 802BF610 48 01 CB FD */ bl getNthLink__10JSUPtrListCFUl
/* 802BF614 28 03 00 00 */ cmplwi r3, 0
/* 802BF618 41 82 00 08 */ beq lbl_802BF620
/* 802BF61C 38 63 FF FC */ addi r3, r3, -4
lbl_802BF620:
/* 802BF620 80 63 00 00 */ lwz r3, 0(r3)
/* 802BF624 4B FE 2F 75 */ bl stop__8JAISoundFv
lbl_802BF628:
/* 802BF628 3B DE 00 01 */ addi r30, r30, 1
lbl_802BF62C:
/* 802BF62C 80 1F 00 08 */ lwz r0, 8(r31)
/* 802BF630 7C 1E 00 00 */ cmpw r30, r0
/* 802BF634 41 80 FD 14 */ blt lbl_802BF348
lbl_802BF638:
/* 802BF638 E3 E1 00 28 */ psq_l f31, 40(r1), 0, 0 /* qr0 */
/* 802BF63C CB E1 00 20 */ lfd f31, 0x20(r1)
/* 802BF640 E3 C1 00 18 */ psq_l f30, 24(r1), 0, 0 /* qr0 */
/* 802BF644 CB C1 00 10 */ lfd f30, 0x10(r1)
/* 802BF648 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802BF64C 83 C1 00 08 */ lwz r30, 8(r1)
/* 802BF650 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802BF654 7C 08 03 A6 */ mtlr r0
/* 802BF658 38 21 00 30 */ addi r1, r1, 0x30
/* 802BF65C 4E 80 00 20 */ blr

View File

@ -48,6 +48,7 @@ public:
int getMaxActiveSe() const { return mMaxActiveSe; }
void setMaxActiveSe(int se) { mMaxActiveSe = se; }
void setMaxInactiveSe(int se) { mMaxInactiveSe = se; }
JSUList<JAISe>* getSeList() { return &mSeList; }
int getNumSe() const { return mSeList.getNumLinks(); }
JAIAudience* getAudience() { return (JAIAudience*)field_0x4.field_0x0; }

View File

@ -90,8 +90,7 @@ struct JAISoundStatus_ {
struct {
u8 flag1 : 1;
u8 flag2 : 1;
u8 flag3 : 1;
u8 flag4 : 1;
u8 animationState : 2;
u8 flag5 : 1;
u8 flag6 : 1;
u8 flag7 : 1;
@ -227,9 +226,16 @@ public:
virtual bool JAISound_tryDie_() = 0;
JAISoundID getID() const;
u8 getAnimationState() const { return status_.state.flags.animationState; }
bool isAnimated() const { return getAnimationState() != 0; }
void setAnimationState(u8 pState) {
status_.state.flags.animationState = pState;
}
u32 getUserData() const { return status_.user_data; }
void setUserData(u32 pUserData) { status_.user_data = pUserData; }
JAIAudible* getAudible() const { return audible_; }
bool isHandleAttached() const { return handle_ != NULL; }
bool hasLifeTime() const { return status_.field_0x1.flags.flag2; }
void removeLifeTime_() { status_.field_0x1.flags.flag1 = false; }
void stop_JAISound_() {
status_.state.flags.flag5 = 0;

View File

@ -21,7 +21,9 @@ struct JAUAudibleParam {
u8 b0_5 : 1;
u8 b0_6 : 1;
u8 b0_7 : 1;
u8 b1;
u8 b1_0 : 1;
u8 b1_1 : 1;
u8 b1_2_7 : 6;
u8 b2;
u8 b3;
} bytes;

View File

@ -1,5 +1,109 @@
#ifndef JAUSOUNDANIMATOR_H
#define JAUSOUNDANIMATOR_H
#include "JSystem/JAudio2/JAISound.h"
#include "dolphin/types.h"
class JAUSoundAnimation;
class JAUSoundAnimationSound {
public:
bool playsOnlyForward() const { return (mFlags & 1) != 0; }
bool playsOnlyReverse() const { return (mFlags & 2) != 0; }
bool stopsWhenAnimationChanges() const { return (mFlags & 4) != 0; }
bool playsOnlyOnce() const { return (mFlags & 8) != 0; }
bool stopsWhenNoteOff() const { return (mFlags & 0x10) != 0; }
bool stopsWhenSpeedIsZero() const { return (mFlags & 0x20) != 0; }
bool setsLifeTime() const { return (mFlags & 0x40) != 0; }
bool playsAtIntervals() const { return (mFlags & 0x80) != 0; }
bool isNoting(f32 param_0) const {
if (field_0x04 == field_0x08) {
return true;
}
if (field_0x04 > field_0x08) {
if (field_0x08 <= param_0 && param_0 < field_0x04) {
return true;
}
} else {
if (field_0x04 <= param_0 && param_0 < field_0x08) {
return true;
}
}
return false;
}
bool isNotingOn(f32 param_0, bool param_1) const {
if (setsLifeTime()) {
return isNoting(param_0);
}
if (param_1) {
return param_0 <= field_0x04;
} else {
return param_0 >= field_0x04;
}
}
bool isNotingOff(f32 param_0, bool param_1) const {
if (setsLifeTime()) {
return !isNoting(param_0);
}
if (field_0x04 == field_0x08) {
return false;
}
if (param_1) {
return param_0 <= field_0x08;
} else {
return param_0 >= field_0x08;
}
}
/* 0x00 */ JAISoundID mSoundId;
/* 0x04 */ f32 field_0x04;
/* 0x08 */ f32 field_0x08;
/* 0x0C */ f32 field_0x0c;
/* 0x10 */ u32 mFlags;
/* 0x14 */ u8 field_0x14;
/* 0x15 */ u8 field_0x15;
/* 0x16 */ u8 field_0x16;
/* 0x17 */ u8 field_0x17;
/* 0x18 */ u8 field_0x18;
/* 0x19 */ u8 field_0x19;
/* 0x1A */ s8 field_0x1a;
/* 0x1B */ u8 unk_0x1b[5];
}; /* size 0x20 */
class JAUSoundAnimationControl {
public:
virtual ~JAUSoundAnimationControl() = 0;
virtual JAUSoundAnimationSound* getSound(const JAUSoundAnimation*, int) = 0;
virtual u16 getNumSounds(const JAUSoundAnimation*) = 0;
};
class JAUSoundAnimation {
public:
/* 802A6F70 */ int getStartSoundIndex(f32) const;
/* 802A7044 */ int getEndSoundIndex(f32) const;
u16 getNumSounds() const {
if (mControl != NULL) {
return mControl->getNumSounds(this);
} else {
return mNumSounds;
}
}
const JAUSoundAnimationSound* getSound(int i_index) const {
if (mControl != NULL) {
return mControl->getSound(this, i_index);
} else {
return &mSounds + i_index;
}
}
/* 0x0 */ u16 mNumSounds;
/* 0x4 */ JAUSoundAnimationControl* mControl;
/* 0x8 */ JAUSoundAnimationSound mSounds; // actually an array
};
#endif /* JAUSOUNDANIMATOR_H */

View File

@ -122,6 +122,16 @@ struct TVec3<f32> {
};
}
inline TVec3<f32>& operator=(const Vec& b) {
setTVec3f(&b.x, &this->x);
return *this;
}
// inline TVec3<f32>& operator=(const TVec3<f32>& b) {
// setTVec3f(&b.x, &this->x);
// return *this;
// }
inline TVec3<f32>& operator+=(const TVec3<f32>& b) {
add(b);
return *this;

View File

@ -97,6 +97,8 @@ public:
JSULink<T>* getLast() const { return (JSULink<T>*)getLastLink(); }
JSULink<T>* getNth(int index) { return (JSULink<T>*)getNthLink(index); }
JSULink<T>* getEnd() const { return NULL; }
u32 getNumLinks() const { return this->JSUPtrList::getNumLinks(); }

View File

@ -53,7 +53,7 @@ public:
/* 802ADFF4 */ void setMultiTriggerSE(u32, Vec*, s8);
/* 802AE184 */ void processSeFramework();
/* 802AE524 */ void isLevelSe(JAISoundID);
/* 802AE5B0 */ void isSoundCulling(JAISoundID);
/* 802AE5B0 */ bool isSoundCulling(JAISoundID);
/* 802B9AC4 */ void resetCrowdSize();
private:

View File

@ -3,9 +3,14 @@
#include "JSystem/JAudio2/JAISoundHandles.h"
#include "JSystem/JSupport/JSUList.h"
#include "JSystem/JAudio2/JASHeapCtrl.h"
#include "dolphin/types.h"
class Z2SoundHandlePool : public JAISoundHandle, JSULink<Z2SoundHandlePool> {};
class Z2SoundHandlePool : public JAISoundHandle, public JSULink<Z2SoundHandlePool> { // , public JASPoolAllocObject<Z2SoundHandlePool> {
public:
Z2SoundHandlePool() : JAISoundHandle(), JSULink<Z2SoundHandlePool>(this) {}
~Z2SoundHandlePool() {}
};
class Z2SoundHandles : protected JSUList<Z2SoundHandlePool> {
public:
@ -14,8 +19,8 @@ public:
void initHandlesPool(u8 pNumHandles);
void deleteHandlesPool();
void getFreeHandle();
void getLowPrioSound(JAISoundID);
JAISoundHandle* getFreeHandle();
JAISoundHandle* getLowPrioSound(JAISoundID pSoundId);
bool isActive() const;
@ -26,7 +31,8 @@ public:
void setPos(const JGeometry::TVec3<f32>& pos);
u32 getNumHandles() const { return this->getNumLinks(); }
int getNumHandles() const { return getNumLinks(); }
JAISoundHandle* getHandle(int index) { return (Z2SoundHandlePool*)getNth(index); }
private:
/* 0xC */ u8 mNumHandles;

View File

@ -2,11 +2,10 @@
#define Z2SOUNDOBJECT_H
#include "Z2AudioLib/Z2SoundHandles.h"
#include "JSystem/JAudio2/JAUSoundAnimator.h"
#include "dolphin/types.h"
struct Z2SoundStarter;
struct JAUSoundAnimationSound {};
class Z2SoundStarter;
class Z2SoundObjBase : protected Z2SoundHandles {
public:
@ -14,7 +13,7 @@ public:
~Z2SoundObjBase();
void deleteObject();
void startCollisionSE(u32, u32, Z2SoundObjBase*);
JAISoundHandle* startCollisionSE(u32, u32, Z2SoundObjBase*);
bool isAlive() const { return mIsInitialized; }
void setSoundStarter(Z2SoundStarter* i_soundStarter) { mSoundStarter = i_soundStarter; }
@ -23,13 +22,13 @@ public:
virtual void dispose();
virtual bool stopOK(Z2SoundHandlePool& pool);
virtual void init(Vec* pSoundPos, u8 pNumHandles);
virtual void startSound(JAISoundID, u32, s8);
virtual void startLevelSound(JAISoundID, u32, s8);
virtual JAISoundHandle* startSound(JAISoundID, u32, s8);
virtual JAISoundHandle* startLevelSound(JAISoundID, u32, s8);
/* 0x14 */ Z2SoundStarter* mSoundStarter;
/* 0x18 */ Vec* mSoundPos;
/* 0x18 */ JGeometry::TVec3<f32>* mSoundPos;
/* 0x1C */ u16 field_0x1c;
/* 0x1E */ u8 field_0x1e;
/* 0x1E */ s8 field_0x1e;
/* 0x1F */ bool mIsInitialized;
};
@ -38,10 +37,9 @@ public:
Z2SoundObjSimple();
~Z2SoundObjSimple();
virtual void temp(); // temp to build OK, remove later
virtual void init(Vec* pSoundPos, u8 pNumHandles);
virtual void startSound(JAISoundID, u32, s8);
virtual void startLevelSound(JAISoundID, u32, s8);
virtual JAISoundHandle* startSound(JAISoundID, u32, s8);
virtual JAISoundHandle* startLevelSound(JAISoundID, u32, s8);
};
class Z2SoundObjAnime : public Z2SoundObjBase {
@ -53,42 +51,49 @@ public:
/* 802BF304 */ void updateSoundLifeTime_(f32, f32);
/* 802BF660 */ void startSoundInner(JGeometry::TVec3<f32> const&, f32, Z2SoundStarter*, u32,
s8);
/* 802BF890 */ void getSoundID(JAUSoundAnimationSound const*, JGeometry::TVec3<f32> const&,
f32);
/* 802BF898 */ void playsSound(JAUSoundAnimationSound const*, JGeometry::TVec3<f32> const&,
/* 802BF890 */ u32 getSoundID(JAUSoundAnimationSound const*,
JGeometry::TVec3<f32> const&, f32);
/* 802BF898 */ bool playsSound(JAUSoundAnimationSound const*, JGeometry::TVec3<f32> const&,
f32);
/* 802BEBDC */ virtual void init(Vec*, u8);
void stopAnime() { animation_ = NULL; }
void stopAnime() { mpAnimation = NULL; }
void setLoopStartFrame(f32 i_frame) {
mStartSoundFrame = i_frame;
mStartSoundIndex = mpAnimation->getStartSoundIndex(i_frame);
}
void setLoopEndFrame(f32 i_frame) {
mEndSoundFrame = i_frame;
mEndSoundIndex = mpAnimation->getEndSoundIndex(i_frame);
}
void setLoopFrame(f32 i_startFrame, f32 i_endFrame) {
setLoopStartFrame(i_startFrame);
setLoopEndFrame(i_endFrame);
}
/* 0x20 */ void* animation_; // JAUSoundAnimation*
/* 0x20 */ JAUSoundAnimation* mpAnimation;
/* 0x24 */ int field_0x24;
/* 0x28 */ float field_0x28;
/* 0x2C */ float field_0x2c;
/* 0x30 */ float field_0x30;
/* 0x34 */ int field_0x34;
/* 0x38 */ int field_0x38;
/* 0x28 */ f32 mCurSoundFrame;
/* 0x2C */ f32 mStartSoundFrame;
/* 0x30 */ f32 mEndSoundFrame;
/* 0x34 */ int mStartSoundIndex;
/* 0x38 */ int mEndSoundIndex;
/* 0x3C */ int field_0x3c;
/* 0x40 */ int curSoundIndex_;
/* 0x44 */ bool field_0x44;
/* 0x40 */ int mCurSoundIndex;
/* 0x44 */ bool mReverse;
};
class Z2DopplerSoundObjBase : public Z2SoundHandles {
class Z2DopplerSoundObjBase : public Z2SoundObjBase {
public:
Z2DopplerSoundObjBase();
~Z2DopplerSoundObjBase();
virtual void framework(u32, s8);
virtual void init(Vec*, u8);
virtual void startSound(JAISoundID, u32, s8);
virtual void startLevelSound(JAISoundID, u32, s8);
virtual JAISoundHandle* startSound(JAISoundID, u32, s8);
virtual JAISoundHandle* startLevelSound(JAISoundID, u32, s8);
/* 0x14 */ Z2SoundStarter* field_0x14;
/* 0x18 */ JGeometry::TVec3<f32>* field_0x18;
/* 0x1C */ u16 field_0x1c;
/* 0x1E */ u8 field_0x1e;
/* 0x1F */ bool field_0x1f;
/* 0x20 */ JGeometry::TVec3<f32> field_0x20;
/* 0x2C */ JGeometry::TVec3<f32> field_0x2c;
};

View File

@ -1,55 +1,28 @@
//
// Generated By: dol2asm
// Translation Unit: JAUSoundAnimator
//
#include "JSystem/JAudio2/JAUSoundAnimator.h"
#include "dolphin/types.h"
//
// Types:
//
struct JAUSoundAnimation {
/* 802A6F70 */ void getStartSoundIndex(f32) const;
/* 802A7044 */ void getEndSoundIndex(f32) const;
};
//
// Forward References:
//
extern "C" void getStartSoundIndex__17JAUSoundAnimationCFf();
extern "C" void getEndSoundIndex__17JAUSoundAnimationCFf();
//
// External References:
//
extern "C" void _savegpr_28();
extern "C" void _restgpr_28();
//
// Declarations:
//
/* 802A6F70-802A7044 2A18B0 00D4+00 0/0 1/1 0/0 .text getStartSoundIndex__17JAUSoundAnimationCFf
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAUSoundAnimation::getStartSoundIndex(f32 param_0) const {
nofralloc
#include "asm/JSystem/JAudio2/JAUSoundAnimator/getStartSoundIndex__17JAUSoundAnimationCFf.s"
int JAUSoundAnimation::getStartSoundIndex(f32 param_0) const {
int i;
for (i = 0; i < getNumSounds(); i++) {
if (getSound(i)->field_0x04 >= param_0) {
break;
}
}
return i;
}
#pragma pop
/* 802A7044-802A7114 2A1984 00D0+00 0/0 1/1 0/0 .text getEndSoundIndex__17JAUSoundAnimationCFf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JAUSoundAnimation::getEndSoundIndex(f32 param_0) const {
nofralloc
#include "asm/JSystem/JAudio2/JAUSoundAnimator/getEndSoundIndex__17JAUSoundAnimationCFf.s"
int JAUSoundAnimation::getEndSoundIndex(f32 param_0) const {
int i;
for (i = 0; i < getNumSounds(); i++) {
if (getSound(i)->field_0x04 > param_0) {
break;
}
}
return i;
}
#pragma pop

View File

@ -1194,20 +1194,20 @@ void Z2Audience::mixChannelOut(JASSoundParams const& param_0, JAIAudible* param_
}
local_60.mVolume = dVar9;
JAUAudibleParam* puVar7 = z2Audible->getAudibleParam();
if ((puVar7->field_0x0.bytes.b1 & 8) && (local_60.mVolume <= 0.2f)) {
if ((puVar7->field_0x0.bytes.b1_2_7 & 8) && (local_60.mVolume <= 0.2f)) {
local_60.mVolume = 0.2f;
}
} else {
local_60.mVolume = 1.0f;
}
if (((z2Audible->getAudibleParam()->field_0x0.bytes.b1 >> 6) & 1) && mNumPlayers == 1) {
if (z2Audible->getAudibleParam()->field_0x0.bytes.b1_1 && mNumPlayers == 1) {
local_60.mDolby = calcRelPosDolby(*(Vec*)&pZVar5->field_0x14.field_0x00, param_2);
} else {
local_60.mDolby = 0.5f;
}
if ((z2Audible->getAudibleParam()->field_0x0.bytes.b1 >> 7) & 1) {
if (z2Audible->getAudibleParam()->field_0x0.bytes.b1_0) {
if (mNumPlayers > 2) {
f32 fVar1;
if (param_2 & 1) {

View File

@ -537,7 +537,7 @@ asm Z2Creature::~Z2Creature() {
/* 802C04E8-802C0530 2BAE28 0048+00 4/2 2/2 0/0 .text deleteObject__10Z2CreatureFv */
void Z2Creature::deleteObject() {
mSoundObjAnime.animation_ = NULL;
mSoundObjAnime.mpAnimation = NULL;
mSoundObjAnime.deleteObject();
mSoundObjSimple1.deleteObject();
mSoundObjSimple2.deleteObject();

View File

@ -651,7 +651,7 @@ asm void Z2SeMgr::isLevelSe(JAISoundID param_0) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2SeMgr::isSoundCulling(JAISoundID param_0) {
asm bool Z2SeMgr::isSoundCulling(JAISoundID param_0) {
nofralloc
#include "asm/Z2AudioLib/Z2SeMgr/isSoundCulling__7Z2SeMgrF10JAISoundID.s"
}

View File

@ -4,47 +4,12 @@
//
#include "Z2AudioLib/Z2SoundHandles.h"
#include "JSystem/JAudio2/JASGadget.h"
#include "JSystem/JAudio2/JAISoundInfo.h"
#include "dolphin/types.h"
#include "dol2asm.h"
//
// Types:
//
template <typename A0>
struct JASMemPool {};
/* JASMemPool<Z2SoundHandlePool> */
struct JASMemPool__template4 {
/* 802AB200 */ void func_802AB200(void* _this);
};
struct JASGenericMemPool {
/* 80290848 */ JASGenericMemPool();
/* 80290860 */ ~JASGenericMemPool();
/* 80290948 */ void alloc(u32);
/* 80290994 */ void free(void*, u32);
};
//
// Forward References:
//
extern "C" void __ct__14Z2SoundHandlesFv();
extern "C" void __dt__14Z2SoundHandlesFv();
extern "C" void initHandlesPool__14Z2SoundHandlesFUc();
extern "C" void deleteHandlesPool__14Z2SoundHandlesFv();
extern "C" void func_802AB200(void* _this);
extern "C" void getHandleSoundID__14Z2SoundHandlesF10JAISoundID();
extern "C" void getHandleUserData__14Z2SoundHandlesFUl();
extern "C" void getFreeHandle__14Z2SoundHandlesFv();
extern "C" void getLowPrioSound__14Z2SoundHandlesF10JAISoundID();
extern "C" void stopAllSounds__14Z2SoundHandlesFUl();
extern "C" void isActive__14Z2SoundHandlesCFv();
extern "C" void func_802AB538();
//
// External References:
//
extern "C" void __ct__17JASGenericMemPoolFv();
extern "C" void __dt__17JASGenericMemPoolFv();
extern "C" void alloc__17JASGenericMemPoolFUl();
@ -63,13 +28,15 @@ extern "C" void _savegpr_26();
extern "C" void _savegpr_28();
extern "C" void _restgpr_26();
extern "C" void _restgpr_28();
extern "C" extern u8 data_80450B5C[4];
extern "C" extern u8 data_80451348[8];
extern "C" extern u8 __OSReport_disable;
//
// Declarations:
//
/* 804341B8-804341C4 060ED8 000C+00 3/3 0/0 0/0 .bss @632 */
static u8 lit_632[12];
/* 804341C4-804341D8 060EE4 0010+04 3/3 1/1 0/0 .bss
* memPool_$localstatic3$getMemPool___39JASPoolAllocObject<17Z2SoundHandlePool>Fv */
extern u8 data_804341C4[16 + 4 /* padding */];
u8 data_804341C4[16 + 4 /* padding */];
// inline JAISoundID::JAISoundID(u32 pId) : mId(pId) {}
@ -89,16 +56,18 @@ void Z2SoundHandles::initHandlesPool(u8 pNumHandles) {
mNumHandles = pNumHandles;
}
/* ############################################################################################## */
/* 804341B8-804341C4 060ED8 000C+00 3/3 0/0 0/0 .bss @632 */
static u8 lit_632[12];
/* 804341C4-804341D8 060EE4 0010+04 3/3 1/1 0/0 .bss
* memPool_$localstatic3$getMemPool___39JASPoolAllocObject<17Z2SoundHandlePool>Fv */
extern u8 data_804341C4[16 + 4 /* padding */];
u8 data_804341C4[16 + 4 /* padding */];
/* 802AB120-802AB200 2A5A60 00E0+00 1/1 1/1 0/0 .text deleteHandlesPool__14Z2SoundHandlesFv */
#ifdef NONMATCHING
void Z2SoundHandles::deleteHandlesPool() {
JSULink<Z2SoundHandlePool>* link;
while (link = getFirst(), link != NULL) {
Z2SoundHandlePool* handle = link->getObject();
remove(handle);
delete handle;
}
mNumHandles = 0;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -107,6 +76,7 @@ asm void Z2SoundHandles::deleteHandlesPool() {
#include "asm/Z2AudioLib/Z2SoundHandles/deleteHandlesPool__14Z2SoundHandlesFv.s"
}
#pragma pop
#endif
/* 802AB200-802AB254 2A5B40 0054+00 3/3 1/1 0/0 .text __dt__31JASMemPool<17Z2SoundHandlePool>Fv */
#pragma push
@ -148,25 +118,62 @@ JAISoundHandle* Z2SoundHandles::getHandleUserData(u32 pUserData) {
/* 802AB2D8-802AB3D0 2A5C18 00F8+00 0/0 3/3 0/0 .text getFreeHandle__14Z2SoundHandlesFv
*/
#ifdef NONMATCHING
JAISoundHandle* Z2SoundHandles::getFreeHandle() {
JSULink<Z2SoundHandlePool>* link;
for (link = getFirst(); link != NULL; link = link->getNext()) {
JAISoundHandle* handle = link->getObject();
if (!handle->isSoundAttached()) {
return handle;
}
}
if (getNumHandles() < mNumHandles)
{
Z2SoundHandlePool* handle = new Z2SoundHandlePool();
if (handle != NULL) {
append(handle);
return handle;
}
}
return NULL;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2SoundHandles::getFreeHandle() {
asm JAISoundHandle* Z2SoundHandles::getFreeHandle() {
nofralloc
#include "asm/Z2AudioLib/Z2SoundHandles/getFreeHandle__14Z2SoundHandlesFv.s"
}
#pragma pop
#endif
/* 802AB3D0-802AB4A0 2A5D10 00D0+00 0/0 2/2 0/0 .text
* getLowPrioSound__14Z2SoundHandlesF10JAISoundID */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2SoundHandles::getLowPrioSound(JAISoundID param_0) {
nofralloc
#include "asm/Z2AudioLib/Z2SoundHandles/getLowPrioSound__14Z2SoundHandlesF10JAISoundID.s"
JAISoundHandle* Z2SoundHandles::getLowPrioSound(JAISoundID pSoundId) {
JAISoundInfo* sound_info = JASGlobalInstance<JAISoundInfo>::getInstance();
JAISoundHandle* handle;
u32 low_prio = 0xffff;
JAISoundHandle* low_prio_handle = NULL;
JSULink<Z2SoundHandlePool>* link;
for (link = getFirst(); link != NULL; link = link->getNext()) {
handle = link->getObject();
if (!handle->isSoundAttached()) {
return handle;
}
u32 prio = sound_info->getPriority(handle->getSound()->getID());
if (prio < low_prio) {
low_prio = prio;
low_prio_handle = handle;
}
}
if (sound_info->getPriority(pSoundId) >= low_prio) {
return low_prio_handle;
}
return NULL;
}
#pragma pop
void Z2SoundHandles::stopAllSounds(u32 fadeout) {
JSULink<Z2SoundHandlePool>* link;
@ -194,6 +201,21 @@ bool Z2SoundHandles::isActive() const {
/* 802AB538-802AB64C 2A5E78 0114+00 0/0 1/1 0/0 .text
* setPos__14Z2SoundHandlesFRCQ29JGeometry8TVec3<f> */
#ifdef NONMATCHING
void Z2SoundHandles::setPos(JGeometry::TVec3<f32> const& param_0) {
JSULink<Z2SoundHandlePool>* link;
for (link = getFirst(); link != NULL; link = link->getNext()) {
Z2SoundHandlePool* handle = link->getObject();
if (handle->isSoundAttached()) {
handle->getSound()->setPos(param_0);
}
else {
remove(handle);
delete handle;
}
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -202,3 +224,4 @@ asm void Z2SoundHandles::setPos(JGeometry::TVec3<f32> const& param_0) {
#include "asm/Z2AudioLib/Z2SoundHandles/func_802AB538.s"
}
#pragma pop
#endif

View File

@ -4,172 +4,18 @@
//
#include "Z2AudioLib/Z2SoundObject.h"
#include "Z2AudioLib/Z2Calc.h"
#include "Z2AudioLib/Z2SeMgr.h"
#include "Z2AudioLib/Z2SoundInfo.h"
#include "Z2AudioLib/Z2SoundMgr.h"
#include "Z2AudioLib/Z2SoundStarter.h"
#include "Z2AudioLib/Z2Audience.h"
#include "JSystem/JAudio2/JASGadget.h"
#include "dol2asm.h"
#include "JSystem/JAudio2/JAUSoundAnimator.h"
//
// Types:
//
struct Z2SoundInfo {
/* 802BBAC8 */ int getSwBit(JAISoundID) const;
};
struct Z2SeMgr {
/* 802AE5B0 */ void isSoundCulling(JAISoundID);
};
struct Z2Calc {
struct CurveSign {};
/* 802A96F4 */ void getParamByExp(f32, f32, f32, f32, f32, f32, Z2Calc::CurveSign);
};
struct JAUSoundAnimation {
/* 802A6F70 */ void getStartSoundIndex(f32) const;
/* 802A7044 */ void getEndSoundIndex(f32) const;
};
//
// Forward References:
//
extern "C" void __ct__14Z2SoundObjBaseFv();
extern "C" void __dt__14Z2SoundObjBaseFv();
extern "C" void init__14Z2SoundObjBaseFP3VecUc();
extern "C" void deleteObject__14Z2SoundObjBaseFv();
extern "C" void framework__14Z2SoundObjBaseFUlSc();
extern "C" void dispose__14Z2SoundObjBaseFv();
extern "C" void stopOK__14Z2SoundObjBaseFR17Z2SoundHandlePool();
extern "C" void startSound__14Z2SoundObjBaseF10JAISoundIDUlSc();
extern "C" void startLevelSound__14Z2SoundObjBaseF10JAISoundIDUlSc();
extern "C" void startCollisionSE__14Z2SoundObjBaseFUlUlP14Z2SoundObjBase();
extern "C" void __ct__21Z2DopplerSoundObjBaseFv();
extern "C" void __dt__21Z2DopplerSoundObjBaseFv();
extern "C" void init__21Z2DopplerSoundObjBaseFP3VecUc();
extern "C" void framework__21Z2DopplerSoundObjBaseFUlSc();
extern "C" void startSound__21Z2DopplerSoundObjBaseF10JAISoundIDUlSc();
extern "C" void startLevelSound__21Z2DopplerSoundObjBaseF10JAISoundIDUlSc();
extern "C" void __ct__16Z2SoundObjSimpleFv();
extern "C" void init__16Z2SoundObjSimpleFP3VecUc();
extern "C" void startSound__16Z2SoundObjSimpleF10JAISoundIDUlSc();
extern "C" void startLevelSound__16Z2SoundObjSimpleF10JAISoundIDUlSc();
extern "C" void __ct__15Z2SoundObjArrowFv();
extern "C" void init__15Z2SoundObjArrowFP3VecUc();
extern "C" void __ct__15Z2SoundObjAnimeFv();
extern "C" void init__15Z2SoundObjAnimeFP3VecUc();
extern "C" void initAnime__15Z2SoundObjAnimeFPvbff();
extern "C" void ageSounds___15Z2SoundObjAnimeFv();
extern "C" void updateAnime__15Z2SoundObjAnimeFff();
extern "C" void updateSoundLifeTime___15Z2SoundObjAnimeFff();
extern "C" void func_802BF660();
extern "C" void func_802BF890();
extern "C" void func_802BF898();
//
// External References:
//
extern "C" void releaseSound__14JAISoundHandleFv();
extern "C" void acceptsNewAudible__8JAISoundCFv();
extern "C" void func_802A2474();
extern "C" void stop__8JAISoundFv();
extern "C" void moveVolume__18JAISoundParamsMoveFfUl();
extern "C" void movePitch__18JAISoundParamsMoveFfUl();
extern "C" void moveFxMix__18JAISoundParamsMoveFfUl();
extern "C" void getStartSoundIndex__17JAUSoundAnimationCFf();
extern "C" void getEndSoundIndex__17JAUSoundAnimationCFf();
extern "C" void getParamByExp__6Z2CalcFffffffQ26Z2Calc9CurveSign();
extern "C" void setPortData__14Z2SoundStarterFP14JAISoundHandleUlUsSc();
extern "C" void __ct__14Z2SoundHandlesFv();
extern "C" void __dt__14Z2SoundHandlesFv();
extern "C" void initHandlesPool__14Z2SoundHandlesFUc();
extern "C" void deleteHandlesPool__14Z2SoundHandlesFv();
extern "C" void getHandleSoundID__14Z2SoundHandlesF10JAISoundID();
extern "C" void getHandleUserData__14Z2SoundHandlesFUl();
extern "C" void getFreeHandle__14Z2SoundHandlesFv();
extern "C" void getLowPrioSound__14Z2SoundHandlesF10JAISoundID();
extern "C" void func_802AB538();
extern "C" void isSoundCulling__7Z2SeMgrF10JAISoundID();
extern "C" void getSwBit__11Z2SoundInfoCF10JAISoundID();
extern "C" void __dl__FPv();
extern "C" void getNthLink__10JSUPtrListCFUl();
extern "C" void _savegpr_23();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_23();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" extern Z2SoundInfo* data_80450B4C;
extern "C" extern u8 data_80450B60[4];
extern "C" extern Z2SoundStarter* data_80450B74;
extern "C" extern u8 data_80450B88[4];
extern "C" extern u8 __OSReport_disable;
//
// Declarations:
//
/* ############################################################################################## */
/* 803CACD0-803CACF0 027DF0 0020+00 1/1 1/1 0/0 .data __vt__15Z2SoundObjAnime */
SECTION_DATA extern void* __vt__15Z2SoundObjAnime[8] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)framework__14Z2SoundObjBaseFUlSc,
(void*)dispose__14Z2SoundObjBaseFv,
(void*)stopOK__14Z2SoundObjBaseFR17Z2SoundHandlePool,
(void*)init__15Z2SoundObjAnimeFP3VecUc,
(void*)startSound__14Z2SoundObjBaseF10JAISoundIDUlSc,
(void*)startLevelSound__14Z2SoundObjBaseF10JAISoundIDUlSc,
};
/* 803CACF0-803CAD10 027E10 0020+00 1/1 0/0 1/1 .data __vt__15Z2SoundObjArrow */
SECTION_DATA extern void* __vt__15Z2SoundObjArrow[8] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)framework__21Z2DopplerSoundObjBaseFUlSc,
(void*)dispose__14Z2SoundObjBaseFv,
(void*)stopOK__14Z2SoundObjBaseFR17Z2SoundHandlePool,
(void*)init__15Z2SoundObjArrowFP3VecUc,
(void*)startSound__21Z2DopplerSoundObjBaseF10JAISoundIDUlSc,
(void*)startLevelSound__21Z2DopplerSoundObjBaseF10JAISoundIDUlSc,
};
/* 803CAD10-803CAD30 027E30 0020+00 1/1 3/3 14/14 .data __vt__16Z2SoundObjSimple */
SECTION_DATA extern void* __vt__16Z2SoundObjSimple[8] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)framework__14Z2SoundObjBaseFUlSc,
(void*)dispose__14Z2SoundObjBaseFv,
(void*)stopOK__14Z2SoundObjBaseFR17Z2SoundHandlePool,
(void*)init__16Z2SoundObjSimpleFP3VecUc,
(void*)startSound__16Z2SoundObjSimpleF10JAISoundIDUlSc,
(void*)startLevelSound__16Z2SoundObjSimpleF10JAISoundIDUlSc,
};
/* 803CAD30-803CAD50 027E50 0020+00 2/2 0/0 0/0 .data __vt__21Z2DopplerSoundObjBase */
SECTION_DATA extern void* __vt__21Z2DopplerSoundObjBase[8] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)framework__21Z2DopplerSoundObjBaseFUlSc,
(void*)dispose__14Z2SoundObjBaseFv,
(void*)stopOK__14Z2SoundObjBaseFR17Z2SoundHandlePool,
(void*)init__21Z2DopplerSoundObjBaseFP3VecUc,
(void*)startSound__21Z2DopplerSoundObjBaseF10JAISoundIDUlSc,
(void*)startLevelSound__21Z2DopplerSoundObjBaseF10JAISoundIDUlSc,
};
/* 803CAD50-803CAD70 027E70 0020+00 2/2 0/0 0/0 .data __vt__14Z2SoundObjBase */
SECTION_DATA extern void* __vt__14Z2SoundObjBase[8] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)framework__14Z2SoundObjBaseFUlSc,
(void*)dispose__14Z2SoundObjBaseFv,
(void*)stopOK__14Z2SoundObjBaseFR17Z2SoundHandlePool,
(void*)init__14Z2SoundObjBaseFP3VecUc,
(void*)startSound__14Z2SoundObjBaseF10JAISoundIDUlSc,
(void*)startLevelSound__14Z2SoundObjBaseF10JAISoundIDUlSc,
};
inline JAISoundID JAISound::getID() const {
return JAISoundID((u32)soundID);
}
Z2SoundObjBase::Z2SoundObjBase() {
//! @note initializer list doesn't work since fields were initialized out of
@ -187,47 +33,33 @@ Z2SoundObjBase::~Z2SoundObjBase() {
void Z2SoundObjBase::init(Vec* pSoundPos, u8 pNumHandles) {
initHandlesPool(pNumHandles);
mSoundPos = pSoundPos;
mSoundPos = (JGeometry::TVec3<f32>*)pSoundPos;
mIsInitialized = true;
}
/* 802BDFF8-802BE038 2B8938 0040+00 1/1 8/8 61/61 .text deleteObject__14Z2SoundObjBaseFv
*/
// issue from using temp virtuals i think
#ifdef NONMATCHING
void Z2SoundObjBase::deleteObject() {
dispose();
deleteHandlesPool();
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2SoundObjBase::deleteObject() {
nofralloc
#include "asm/Z2AudioLib/Z2SoundObject/deleteObject__14Z2SoundObjBaseFv.s"
}
#pragma pop
#endif
void Z2SoundObjBase::framework(u32 p1, s8 p2) {
if (mIsInitialized) {
field_0x1c = p1;
field_0x1e = p2;
setPos(*(JGeometry::TVec3<f32>*)mSoundPos);
setPos(*mSoundPos);
}
}
/* 802BE070-802BE104 2B89B0 0094+00 5/0 3/0 0/0 .text dispose__14Z2SoundObjBaseFv */
// sInstance stuff
#ifdef NONMATCHING
void Z2SoundObjBase::dispose() {
JAISoundHandle* handle;
JSULink<Z2SoundHandlePool>* link;
for (link = getFirst(); link != NULL; link = link->getNext()) {
handle = link->getObject();
if (handle != NULL && (bool)*handle) {
u32 swBit = data_80450B4C->getSwBit((*handle)->getID());
u32 swBit = JASGlobalInstance<Z2SoundInfo>::sInstance->getSwBit((*handle)->getID());
if ((swBit & 0x8000) != 0) {
handle->releaseSound();
} else {
@ -238,366 +70,470 @@ void Z2SoundObjBase::dispose() {
mIsInitialized = false;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2SoundObjBase::dispose() {
nofralloc
#include "asm/Z2AudioLib/Z2SoundObject/dispose__14Z2SoundObjBaseFv.s"
}
#pragma pop
#endif
/* 802BE104-802BE144 2B8A44 0040+00 5/0 3/0 0/0 .text
* stopOK__14Z2SoundObjBaseFR17Z2SoundHandlePool */
// sInstance stuff
#ifdef NONMATCHING
bool Z2SoundObjBase::stopOK(Z2SoundHandlePool& pSoundHandlePool) {
return !(data_80450B4C->getSwBit(pSoundHandlePool->getID()) & 0x8000);
return !(JASGlobalInstance<Z2SoundInfo>::sInstance->
getSwBit(pSoundHandlePool->getID()) & 0x8000);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm bool Z2SoundObjBase::stopOK(Z2SoundHandlePool& param_0) {
nofralloc
#include "asm/Z2AudioLib/Z2SoundObject/stopOK__14Z2SoundObjBaseFR17Z2SoundHandlePool.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 80455B38-80455B3C 004138 0004+00 5/5 0/0 0/0 .sdata2 @3559 */
SECTION_SDATA2 static f32 lit_3559 = 127.0f;
/* 80455B3C-80455B40 00413C 0004+00 4/4 0/0 0/0 .sdata2 @3560 */
SECTION_SDATA2 static f32 lit_3560 = 1.0f;
/* 80455B40-80455B48 004140 0004+04 3/3 0/0 0/0 .sdata2 @3561 */
SECTION_SDATA2 static f32 lit_3561[1 + 1 /* padding */] = {
-1.0f,
/* padding */
0.0f,
};
/* 80455B48-80455B50 004148 0008+00 3/3 0/0 0/0 .sdata2 @3564 */
SECTION_SDATA2 static f64 lit_3564 = 4503601774854144.0 /* cast s32 to float */;
/* 802BE144-802BE2D4 2B8A84 0190+00 5/3 3/1 0/0 .text
* startSound__14Z2SoundObjBaseF10JAISoundIDUlSc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2SoundObjBase::startSound(JAISoundID param_0, u32 param_1, s8 param_2) {
nofralloc
#include "asm/Z2AudioLib/Z2SoundObject/startSound__14Z2SoundObjBaseF10JAISoundIDUlSc.s"
JAISoundHandle* Z2SoundObjBase::startSound(JAISoundID pSoundId, u32 param_1, s8 param_2) {
if (!mIsInitialized) {
return NULL;
}
if (JASGlobalInstance<Z2SeMgr>::getInstance()->isSoundCulling(pSoundId)) {
return NULL;
}
if (param_1 == 0) {
param_1 = (u32)field_0x1c;
}
if (param_2 < 0) {
param_2 = field_0x1e;
}
f32 local_0 = (f32)param_2 / 127.0f;
JAISoundHandle* handle = getHandleSoundID(pSoundId);
if (handle != NULL) {
if ((JASGlobalInstance<Z2SoundInfo>::getInstance()->getSwBit(pSoundId) & 0x4000) != 0) {
handle = NULL;
} else {
return NULL;
}
}
if (handle == NULL) {
handle = getFreeHandle();
}
if (handle == NULL) {
handle = getLowPrioSound(pSoundId);
}
if (handle != NULL) {
mSoundStarter->startSound(pSoundId, handle, mSoundPos, param_1, local_0,
1.0f, 1.0f, -1.0f, -1.0f, 0);
}
return handle;
}
#pragma pop
/* 802BE2D4-802BE4A4 2B8C14 01D0+00 4/2 3/0 0/0 .text
* startLevelSound__14Z2SoundObjBaseF10JAISoundIDUlSc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2SoundObjBase::startLevelSound(JAISoundID param_0, u32 param_1, s8 param_2) {
nofralloc
#include "asm/Z2AudioLib/Z2SoundObject/startLevelSound__14Z2SoundObjBaseF10JAISoundIDUlSc.s"
JAISoundHandle* Z2SoundObjBase::startLevelSound(JAISoundID pSoundId, u32 param_1, s8 param_2) {
if (!mIsInitialized) {
return NULL;
}
if (param_1 == 0) {
param_1 = (u32)field_0x1c;
}
if (param_2 < 0) {
param_2 = field_0x1e;
}
f32 local_0 = (f32)param_2 / 127.0f;
JAISoundHandle* handle = getHandleSoundID(pSoundId);
if (handle != NULL) {
handle->getSound()->updateLifeTime(1);
mSoundStarter->setPortData(handle, 6, (u16)param_1, -1);
handle->getSound()->getAuxiliary().moveFxMix(local_0, 0);
} else {
if (JASGlobalInstance<Z2SeMgr>::getInstance()->isSoundCulling(pSoundId)) {
return NULL;
}
handle = getFreeHandle();
if (handle == NULL) {
handle = getLowPrioSound(pSoundId);
}
if (handle != NULL) {
mSoundStarter->startSound(pSoundId, handle, mSoundPos, param_1, local_0,
1.0f, 1.0f, -1.0f, -1.0f, 0);
if (handle != NULL && handle->getSound() != NULL) {
handle->getSound()->setLifeTime(1, false);
}
}
}
return handle;
}
#pragma pop
/* 802BE4A4-802BE5A0 2B8DE4 00FC+00 0/0 5/5 21/21 .text
* startCollisionSE__14Z2SoundObjBaseFUlUlP14Z2SoundObjBase */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2SoundObjBase::startCollisionSE(u32 param_0, u32 param_1, Z2SoundObjBase* param_2) {
nofralloc
#include "asm/Z2AudioLib/Z2SoundObject/startCollisionSE__14Z2SoundObjBaseFUlUlP14Z2SoundObjBase.s"
JAISoundHandle* Z2SoundObjBase::startCollisionSE(u32 pId, u32 pUserData, Z2SoundObjBase* pOther) {
if (pOther != NULL) {
return pOther->startCollisionSE(pId, pUserData, NULL);
}
if (53 < pUserData) {
pUserData = 0;
}
for (JSULink<JAISe>* link =
Z2GetSoundMgr()->getSeMgr()->getCategory(4)->getSeList()->getFirst();
link != NULL; link = link->getNext()) {
if (pId == link->getObject()->getID() && pUserData == link->getObject()->getUserData()) {
link->getObject()->stop();
}
}
JAISoundHandle* handle = Z2SoundObjBase::startSound(JAISoundID(pId), pUserData, -1);
if (handle != NULL && handle->getSound() != NULL) {
handle->getSound()->setUserData(pUserData);
if (30 <= pUserData && pUserData <= 52) {
Z2Audible* audible = (Z2Audible*)handle->getSound()->getAudible();
if (audible != NULL) {
JAUAudibleParam* param = audible->getAudibleParam();
param->field_0x0.bytes.b1_2_7 = 8;
}
}
}
return handle;
}
#pragma pop
/* ############################################################################################## */
/* 8039C230-8039C240 028890 000C+04 1/1 0/0 0/0 .rodata cNullVec__6Z2Calc */
SECTION_RODATA static u8 const cNullVec__6Z2Calc[12 + 4 /* padding */] = {
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
0x00,
/* padding */
0x00,
0x00,
0x00,
0x00,
};
COMPILER_STRIP_GATE(0x8039C230, &cNullVec__6Z2Calc);
static Vec const cNullVec__6Z2Calc = {0.0f, 0.0f, 0.0f};
/* 802BE5A0-802BE5FC 2B8EE0 005C+00 1/1 0/0 0/0 .text __ct__21Z2DopplerSoundObjBaseFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm Z2DopplerSoundObjBase::Z2DopplerSoundObjBase() {
nofralloc
#include "asm/Z2AudioLib/Z2SoundObject/__ct__21Z2DopplerSoundObjBaseFv.s"
Z2DopplerSoundObjBase::Z2DopplerSoundObjBase() : Z2SoundObjBase() {
field_0x20 = cNullVec__6Z2Calc;
field_0x2c = cNullVec__6Z2Calc;
}
#pragma pop
/* 802BE5FC-802BE65C 2B8F3C 0060+00 0/0 0/0 1/1 .text __dt__21Z2DopplerSoundObjBaseFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm Z2DopplerSoundObjBase::~Z2DopplerSoundObjBase() {
nofralloc
#include "asm/Z2AudioLib/Z2SoundObject/__dt__21Z2DopplerSoundObjBaseFv.s"
}
#pragma pop
Z2DopplerSoundObjBase::~Z2DopplerSoundObjBase() {}
/* 802BE65C-802BE6B8 2B8F9C 005C+00 1/0 0/0 0/0 .text init__21Z2DopplerSoundObjBaseFP3VecUc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2DopplerSoundObjBase::init(Vec* param_0, u8 param_1) {
nofralloc
#include "asm/Z2AudioLib/Z2SoundObject/init__21Z2DopplerSoundObjBaseFP3VecUc.s"
void Z2DopplerSoundObjBase::init(Vec* param_0, u8 param_1) {
Z2SoundObjBase::init(param_0, param_1);
if (mSoundPos != NULL) {
// field_0x20 = *mSoundPos;
JGeometry::setTVec3f(&mSoundPos->x, &field_0x20.x);
// field_0x2c = *mSoundPos;
JGeometry::setTVec3f(&mSoundPos->x, &field_0x2c.x);
}
}
#pragma pop
/* 802BE6B8-802BE714 2B8FF8 005C+00 2/0 0/0 0/0 .text framework__21Z2DopplerSoundObjBaseFUlSc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm void Z2DopplerSoundObjBase::framework(u32 param_0, s8 param_1) {
extern "C" asm void framework__21Z2DopplerSoundObjBaseFUlSc() {
nofralloc
#include "asm/Z2AudioLib/Z2SoundObject/framework__21Z2DopplerSoundObjBaseFUlSc.s"
void Z2DopplerSoundObjBase::framework(u32 param_0, s8 param_1) {
Z2SoundObjBase::framework(param_0, param_1);
if (mSoundPos != NULL) {
// field_0x20 = field_0x2c;
JGeometry::setTVec3f(&field_0x2c.x, &field_0x20.x);
// field_0x2c = *mSoundPos;
JGeometry::setTVec3f(&mSoundPos->x, &field_0x2c.x);
}
}
#pragma pop
/* 802BE714-802BE7AC 2B9054 0098+00 2/0 0/0 0/0 .text
* startSound__21Z2DopplerSoundObjBaseF10JAISoundIDUlSc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2DopplerSoundObjBase::startSound(JAISoundID param_0, u32 param_1, s8 param_2) {
nofralloc
#include "asm/Z2AudioLib/Z2SoundObject/startSound__21Z2DopplerSoundObjBaseF10JAISoundIDUlSc.s"
JAISoundHandle* Z2DopplerSoundObjBase::startSound(JAISoundID pSoundId, u32 param_1, s8 param_2) {
JGeometry::TVec3<f32>* pos = mSoundPos;
mSoundPos = NULL;
JAISoundHandle* handle = Z2SoundObjBase::startSound(pSoundId, param_1, param_2);
if (pos != NULL && handle != NULL && handle->getSound() != NULL) {
if (handle->getSound()->acceptsNewAudible()) {
handle->getSound()->newAudible(*pos, &field_0x20, 0, NULL);
}
}
mSoundPos = pos;
return handle;
}
#pragma pop
/* 802BE7AC-802BE844 2B90EC 0098+00 2/0 0/0 0/0 .text
* startLevelSound__21Z2DopplerSoundObjBaseF10JAISoundIDUlSc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2DopplerSoundObjBase::startLevelSound(JAISoundID param_0, u32 param_1, s8 param_2) {
nofralloc
#include "asm/Z2AudioLib/Z2SoundObject/startLevelSound__21Z2DopplerSoundObjBaseF10JAISoundIDUlSc.s"
JAISoundHandle* Z2DopplerSoundObjBase::startLevelSound(JAISoundID pSoundId,
u32 param_1, s8 param_2) {
JGeometry::TVec3<f32>* pos = mSoundPos;
mSoundPos = NULL;
JAISoundHandle* handle = Z2SoundObjBase::startLevelSound(pSoundId, param_1, param_2);
if (pos != NULL && handle != NULL && handle->getSound() != NULL) {
if (handle->getSound()->acceptsNewAudible()) {
handle->getSound()->newAudible(*pos, &field_0x20, 0, NULL);
}
}
mSoundPos = pos;
return handle;
}
#pragma pop
/* 802BE844-802BE880 2B9184 003C+00 0/0 8/8 65/65 .text __ct__16Z2SoundObjSimpleFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm Z2SoundObjSimple::Z2SoundObjSimple() {
nofralloc
#include "asm/Z2AudioLib/Z2SoundObject/__ct__16Z2SoundObjSimpleFv.s"
}
#pragma pop
Z2SoundObjSimple::Z2SoundObjSimple() : Z2SoundObjBase() {}
void Z2SoundObjSimple::init(Vec* pSoundPos, u8 pNumHandles) {
Z2SoundObjBase::init(pSoundPos, pNumHandles);
}
/* ############################################################################################## */
/* 80455B50-80455B54 004150 0004+00 4/4 0/0 0/0 .sdata2 @3821 */
SECTION_SDATA2 static u8 lit_3821[4] = {
0x00,
0x00,
0x00,
0x00,
};
/* 80455B54-80455B58 004154 0004+00 2/2 0/0 0/0 .sdata2 @3822 */
SECTION_SDATA2 static f32 lit_3822 = 1.0f / 5.0f;
/* 80455B58-80455B5C 004158 0004+00 2/2 0/0 0/0 .sdata2 @3823 */
SECTION_SDATA2 static f32 lit_3823 = 2.0f / 5.0f;
/* 80455B5C-80455B60 00415C 0004+00 2/2 0/0 0/0 .sdata2 @3824 */
SECTION_SDATA2 static f32 lit_3824 = 3.0f / 5.0f;
/* 80455B60-80455B68 004160 0004+04 2/2 0/0 0/0 .sdata2 @3825 */
SECTION_SDATA2 static f32 lit_3825[1 + 1 /* padding */] = {
6.0f / 5.0f,
/* padding */
0.0f,
};
/* 80455B68-80455B70 004168 0008+00 3/3 0/0 0/0 .sdata2 @3828 */
SECTION_SDATA2 static f64 lit_3828 = 4503599627370496.0 /* cast u32 to float */;
/* 802BE8A0-802BE9B0 2B91E0 0110+00 1/0 0/0 0/0 .text
* startSound__16Z2SoundObjSimpleF10JAISoundIDUlSc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2SoundObjSimple::startSound(JAISoundID param_0, u32 param_1, s8 param_2) {
nofralloc
#include "asm/Z2AudioLib/Z2SoundObject/startSound__16Z2SoundObjSimpleF10JAISoundIDUlSc.s"
JAISoundHandle* Z2SoundObjSimple::startSound(JAISoundID pSoundId, u32 param_1, s8 param_2) {
JAISoundHandle* handle = Z2SoundObjBase::startSound(pSoundId, param_1, param_2);
if (pSoundId == 0x200c7 && handle != NULL && handle->getSound() != NULL) {
f32 local_0 = Z2Calc::getParamByExp((f32)param_1, 0.0f, 127.0f, 0.2f, 0.4f, 1.0f,
Z2Calc::CURVE_SIGN_1);
f32 local_1 = Z2Calc::getParamByExp((f32)param_1, 0.0f, 127.0f, 0.2f, 0.6f, 1.2f,
Z2Calc::CURVE_SIGN_1);
handle->getSound()->getAuxiliary().movePitch(local_1, 0);
handle->getSound()->getAuxiliary().moveVolume(local_0, 0);
}
return handle;
}
#pragma pop
/* ############################################################################################## */
/* 80455B70-80455B74 004170 0004+00 1/1 0/0 0/0 .sdata2 @3859 */
SECTION_SDATA2 static f32 lit_3859 = 2.0f;
/* 80455B74-80455B78 004174 0004+00 1/1 0/0 0/0 .sdata2 @3860 */
SECTION_SDATA2 static f32 lit_3860 = 22.0f;
/* 80455B78-80455B7C 004178 0004+00 1/1 0/0 0/0 .sdata2 @3861 */
SECTION_SDATA2 static f32 lit_3861 = 50.0f;
/* 80455B7C-80455B80 00417C 0004+00 1/1 0/0 0/0 .sdata2 @3862 */
SECTION_SDATA2 static f32 lit_3862 = 1.5f;
/* 802BE9B0-802BEB38 2B92F0 0188+00 1/0 0/0 0/0 .text
* startLevelSound__16Z2SoundObjSimpleF10JAISoundIDUlSc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2SoundObjSimple::startLevelSound(JAISoundID param_0, u32 param_1, s8 param_2) {
nofralloc
#include "asm/Z2AudioLib/Z2SoundObject/startLevelSound__16Z2SoundObjSimpleF10JAISoundIDUlSc.s"
JAISoundHandle* Z2SoundObjSimple::startLevelSound(JAISoundID pSoundId, u32 param_1, s8 param_2) {
JAISoundHandle* handle = Z2SoundObjBase::startLevelSound(pSoundId, param_1, param_2);
if (handle != NULL && handle->getSound() != NULL) {
f32 local_0 = 1.0f;
f32 local_1 = 1.0f;
switch (pSoundId) {
case 0x200c6:
local_1 = Z2Calc::getParamByExp((f32)param_1, 0.0f, 127.0f, 0.2f, 0.4f, 1.0f,
Z2Calc::CURVE_SIGN_1);
local_0 = Z2Calc::getParamByExp((f32)param_1, 0.0f, 127.0f, 0.2f, 0.6f, 1.2f,
Z2Calc::CURVE_SIGN_1);
break;
case 0x8025c:
if (param_1 > 100) {
local_0 = 2.0f;
} else if (param_1 > 21) {
local_0 = Z2Calc::getParamByExp((f32)param_1, 22.0f, 50.0f, 0.4f, 1.0f, 1.5f,
Z2Calc::CURVE_SIGN_0);
}
break;
}
handle->getSound()->getAuxiliary().movePitch(local_0, 0);
handle->getSound()->getAuxiliary().moveVolume(local_1, 0);
}
return handle;
}
#pragma pop
/* 802BEB38-802BEB74 2B9478 003C+00 0/0 0/0 2/2 .text __ct__15Z2SoundObjArrowFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm Z2SoundObjArrow::Z2SoundObjArrow() {
nofralloc
#include "asm/Z2AudioLib/Z2SoundObject/__ct__15Z2SoundObjArrowFv.s"
}
#pragma pop
Z2SoundObjArrow::Z2SoundObjArrow() : Z2DopplerSoundObjBase() {}
/* 802BEB74-802BEB94 2B94B4 0020+00 1/0 0/0 0/0 .text init__15Z2SoundObjArrowFP3VecUc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm void Z2SoundObjArrow::init(Vec* param_0, u8 param_1) {
extern "C" asm void init__15Z2SoundObjArrowFP3VecUc() {
nofralloc
#include "asm/Z2AudioLib/Z2SoundObject/init__15Z2SoundObjArrowFP3VecUc.s"
void Z2SoundObjArrow::init(Vec* param_0, u8 param_1) {
Z2SoundObjBase::init(param_0, param_1);
}
#pragma pop
/* 802BEB94-802BEBDC 2B94D4 0048+00 0/0 2/2 0/0 .text __ct__15Z2SoundObjAnimeFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm Z2SoundObjAnime::Z2SoundObjAnime() {
nofralloc
#include "asm/Z2AudioLib/Z2SoundObject/__ct__15Z2SoundObjAnimeFv.s"
Z2SoundObjAnime::Z2SoundObjAnime() : Z2SoundObjBase() {
mpAnimation = NULL;
mReverse = false;
}
#pragma pop
/* 802BEBDC-802BEBFC 2B951C 0020+00 1/0 1/0 0/0 .text init__15Z2SoundObjAnimeFP3VecUc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
extern "C" asm void init__15Z2SoundObjAnimeFP3VecUc() {
// asm void Z2SoundObjAnime::init(Vec* param_0, u8 param_1) {
nofralloc
#include "asm/Z2AudioLib/Z2SoundObject/init__15Z2SoundObjAnimeFP3VecUc.s"
void Z2SoundObjAnime::init(Vec* param_0, u8 param_1) {
Z2SoundObjBase::init(param_0, param_1);
}
#pragma pop
/* 802BEBFC-802BED68 2B953C 016C+00 0/0 2/2 0/0 .text initAnime__15Z2SoundObjAnimeFPvbff
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2SoundObjAnime::initAnime(void* param_0, bool param_1, f32 param_2, f32 param_3) {
nofralloc
#include "asm/Z2AudioLib/Z2SoundObject/initAnime__15Z2SoundObjAnimeFPvbff.s"
void Z2SoundObjAnime::initAnime(void* param_0, bool param_1, f32 param_2, f32 param_3) {
ageSounds_();
mpAnimation = (JAUSoundAnimation*)param_0;
if (mpAnimation != NULL) {
mReverse = !param_1;
field_0x3c = 0;
if (mReverse) {
mCurSoundIndex = mpAnimation->getNumSounds() - 1;
mCurSoundFrame = FLT_MAX;
setLoopFrame(0.0f, param_2);
} else {
mCurSoundIndex = 0;
mCurSoundFrame = 0.0f;
setLoopFrame(param_2, 0.0f);
}
mCurSoundFrame = param_3;
mCurSoundIndex = mpAnimation->getStartSoundIndex(param_3);
if (mReverse && mCurSoundIndex > 0) {
mCurSoundIndex--;
}
}
}
#pragma pop
/* 802BED68-802BEED4 2B96A8 016C+00 1/1 0/0 0/0 .text ageSounds___15Z2SoundObjAnimeFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2SoundObjAnime::ageSounds_() {
nofralloc
#include "asm/Z2AudioLib/Z2SoundObject/ageSounds___15Z2SoundObjAnimeFv.s"
void Z2SoundObjAnime::ageSounds_() {
for (int i = 0; i < getNumHandles(); i++) {
if (getHandle(i)->getSound() != NULL) {
switch (getHandle(i)->getSound()->getAnimationState()) {
case 0:
break;
case 1:
if (getHandle(i)->getSound()->hasLifeTime()) {
getHandle(i)->getSound()->stop();
} else {
JAUSoundAnimationSound* sound =
(JAUSoundAnimationSound*)getHandle(i)->getSound()->getUserData();
if (sound->stopsWhenAnimationChanges()) {
getHandle(i)->getSound()->stop();
} else {
getHandle(i)->getSound()->setAnimationState(2);
}
}
break;
case 2:
break;
}
}
}
}
#pragma pop
/* 802BEED4-802BF304 2B9814 0430+00 0/0 2/2 0/0 .text updateAnime__15Z2SoundObjAnimeFff
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2SoundObjAnime::updateAnime(f32 param_0, f32 param_1) {
nofralloc
#include "asm/Z2AudioLib/Z2SoundObject/updateAnime__15Z2SoundObjAnimeFff.s"
void Z2SoundObjAnime::updateAnime(f32 param_0, f32 param_1) {
for (int i = 0; i < getNumHandles(); i++) {
if (getHandle(i)->getSound() != NULL && getHandle(i)->getSound()->isAnimated()) {
getHandle(i)->getSound()->setPos(*mSoundPos);
}
}
if (mpAnimation == NULL || mpAnimation->getNumSounds() == 0) {
return;
}
if (!mReverse) {
if (param_0 < mCurSoundFrame) {
while (mCurSoundIndex < mEndSoundIndex) {
startSoundInner(*mSoundPos, param_1, mSoundStarter, field_0x1c, field_0x1e);
}
mCurSoundIndex = mStartSoundIndex;
mCurSoundFrame = param_0;
if (field_0x3c < 0xffff) {
field_0x3c++;
}
}
updateSoundLifeTime_(param_0, param_1);
while (mCurSoundIndex < mpAnimation->getNumSounds() &&
mpAnimation->getSound(mCurSoundIndex)->isNotingOn(param_0, false)) {
startSoundInner(*mSoundPos, param_1, mSoundStarter, field_0x1c, field_0x1e);
}
} else {
if (param_0 > mCurSoundFrame) {
while (mCurSoundIndex >= mStartSoundIndex) {
startSoundInner(*mSoundPos, param_1, mSoundStarter, field_0x1c, field_0x1e);
}
mCurSoundIndex = mEndSoundIndex - 1;
mCurSoundFrame = param_0;
if (field_0x3c < 0xffff) {
field_0x3c++;
}
}
updateSoundLifeTime_(param_0, param_1);
while (mCurSoundIndex >= 0 &&
mpAnimation->getSound(mCurSoundIndex)->isNotingOn(param_0, true)) {
startSoundInner(*mSoundPos, param_1, mSoundStarter, field_0x1c, field_0x1e);
}
}
mCurSoundFrame = param_0;
}
#pragma pop
/* 802BF304-802BF660 2B9C44 035C+00 1/1 0/0 0/0 .text updateSoundLifeTime___15Z2SoundObjAnimeFff
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2SoundObjAnime::updateSoundLifeTime_(f32 param_0, f32 param_1) {
nofralloc
#include "asm/Z2AudioLib/Z2SoundObject/updateSoundLifeTime___15Z2SoundObjAnimeFff.s"
void Z2SoundObjAnime::updateSoundLifeTime_(f32 param_0, f32 param_1) {
if (mpAnimation == NULL) {
return;
}
for (int i = 0; i < getNumHandles(); i++) {
if (getHandle(i)->getSound() != NULL) {
switch (getHandle(i)->getSound()->getAnimationState()) {
case 0:
break;
case 1:
JAUSoundAnimationSound* sound =
(JAUSoundAnimationSound*)getHandle(i)->getSound()->getUserData();
bool bvar1 = param_1 == 0.0f && sound->stopsWhenSpeedIsZero();
if (sound->setsLifeTime()) {
if (bvar1) {
getHandle(i)->getSound()->pause(true);
} else {
if (sound->isNoting(param_0)) {
getHandle(i)->getSound()->updateLifeTime(1);
getHandle(i)->getSound()->pause(false);
} else {
getHandle(i)->getSound()->stop();
}
}
} else {
if (bvar1) {
getHandle(i)->getSound()->stop();
} else if (sound->stopsWhenNoteOff() &&
sound->isNotingOff(param_0, mReverse)) {
getHandle(i)->getSound()->stop();
}
}
break;
case 2:
break;
}
}
}
}
#pragma pop
/* 802BF660-802BF890 2B9FA0 0230+00 1/1 0/0 0/0 .text
* startSoundInner__15Z2SoundObjAnimeFRCQ29JGeometry8TVec3<f>fP14Z2SoundStarterUlSc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2SoundObjAnime::startSoundInner(JGeometry::TVec3<f32> const& param_0, f32 param_1,
Z2SoundStarter* param_2, u32 param_3, s8 param_4) {
nofralloc
#include "asm/Z2AudioLib/Z2SoundObject/func_802BF660.s"
void Z2SoundObjAnime::startSoundInner(JGeometry::TVec3<f32> const& param_0, f32 param_1,
Z2SoundStarter* param_2, u32 param_3, s8 param_4) {
const JAUSoundAnimationSound* sound = mpAnimation->getSound(mCurSoundIndex);
u32 user_data = (u32)sound;
if (mReverse) {
mCurSoundIndex--;
} else {
mCurSoundIndex++;
}
if (sound->field_0x1a > 0) {
param_3 = sound->field_0x1a;
}
if (playsSound(sound, param_0, param_1)) {
u32 id = getSoundID(sound, param_0, param_1);
if (!Z2GetSeMgr()->isSoundCulling(id)) {
JAISoundHandle* handle = getHandleUserData(user_data);
if (handle != NULL && handle->getSound() != NULL &&
handle->getSound()->getAnimationState() != 1) {
handle = NULL;
}
if (handle == NULL) {
handle = getFreeHandle();
}
if (handle != NULL) {
param_2->startSound(id, handle, &param_0, param_3, (f32)param_4 / 127.0f,
sound->field_0x0c, (f32)sound->field_0x14 / 127.0f,
-1.0f, -1.0f, 0);
if (handle->getSound() != NULL) {
handle->getSound()->setAnimationState(1);
handle->getSound()->setUserData(user_data);
if (sound->setsLifeTime()) {
handle->getSound()->setLifeTime(1, false);
}
}
}
}
}
}
#pragma pop
/* 802BF890-802BF898 2BA1D0 0008+00 1/1 0/0 0/0 .text
* getSoundID__15Z2SoundObjAnimeFPC22JAUSoundAnimationSoundRCQ29JGeometry8TVec3<f>f */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2SoundObjAnime::getSoundID(JAUSoundAnimationSound const* param_0,
u32 Z2SoundObjAnime::getSoundID(JAUSoundAnimationSound const* i_sound,
JGeometry::TVec3<f32> const& param_1, f32 param_2) {
nofralloc
#include "asm/Z2AudioLib/Z2SoundObject/func_802BF890.s"
return i_sound->mSoundId;
}
#pragma pop
/* 802BF898-802BF920 2BA1D8 0088+00 1/1 0/0 0/0 .text
* playsSound__15Z2SoundObjAnimeFPC22JAUSoundAnimationSoundRCQ29JGeometry8TVec3<f>f */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void Z2SoundObjAnime::playsSound(JAUSoundAnimationSound const* param_0,
JGeometry::TVec3<f32> const& param_1, f32 param_2) {
nofralloc
#include "asm/Z2AudioLib/Z2SoundObject/func_802BF898.s"
bool Z2SoundObjAnime::playsSound(JAUSoundAnimationSound const* i_sound,
JGeometry::TVec3<f32> const& param_1, f32 param_2) {
if (i_sound->playsOnlyOnce()) {
if (field_0x3c != i_sound->field_0x16) {
return false;
}
} else {
if (i_sound->playsAtIntervals() &&
i_sound->field_0x16 != field_0x3c % i_sound->field_0x19) {
return false;
}
}
if (mReverse) {
if (i_sound->playsOnlyForward()) {
return false;
}
} else {
if (i_sound->playsOnlyReverse()) {
return false;
}
}
return true;
}
#pragma pop

View File

@ -5328,7 +5328,6 @@ BOOL daNpcF_c::chkActorInArea(fopAc_ac_c* actor, cXyz center, cXyz box, s16 angY
mDoMtx_stack_c::YrotS(-angY);
mDoMtx_stack_c::transM(-center.x, -center.y, -center.z);
mDoMtx_stack_c::multVec(&actor->current.pos, &relPos);
f32 boxX = fabsf(box.x);
f32 boxZ = fabsf(box.z);
f32 posX = fabsf(relPos.x);