Various Matches, J2DTextBoxEx and J2DTevs OK (#2025)

* Work on src/d/bg

* misc work

* J2dTextBoxEx OK

* J2DTevs OK

* Better return values for bool
This commit is contained in:
hatal175
2024-01-08 12:10:05 +02:00
committed by GitHub
parent dea6243c35
commit a8a159ae2c
31 changed files with 328 additions and 1386 deletions
@@ -1,99 +0,0 @@
lbl_802E9EBC:
/* 802E9EBC 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 802E9EC0 7C 08 02 A6 */ mflr r0
/* 802E9EC4 90 01 00 34 */ stw r0, 0x34(r1)
/* 802E9EC8 DB E1 00 20 */ stfd f31, 0x20(r1)
/* 802E9ECC F3 E1 00 28 */ psq_st f31, 40(r1), 0, 0 /* qr0 */
/* 802E9ED0 DB C1 00 10 */ stfd f30, 0x10(r1)
/* 802E9ED4 F3 C1 00 18 */ psq_st f30, 24(r1), 0, 0 /* qr0 */
/* 802E9ED8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802E9EDC 93 C1 00 08 */ stw r30, 8(r1)
/* 802E9EE0 7C 9E 23 78 */ mr r30, r4
/* 802E9EE4 7C BF 2B 78 */ mr r31, r5
/* 802E9EE8 C0 22 C7 68 */ lfs f1, lit_1488(r2)
/* 802E9EEC C0 04 00 08 */ lfs f0, 8(r4)
/* 802E9EF0 EC 21 00 32 */ fmuls f1, f1, f0
/* 802E9EF4 C0 02 C7 6C */ lfs f0, lit_1489(r2)
/* 802E9EF8 EF E1 00 24 */ fdivs f31, f1, f0
/* 802E9EFC FC 20 F8 90 */ fmr f1, f31
/* 802E9F00 48 08 21 29 */ bl cos
/* 802E9F04 FC 20 08 18 */ frsp f1, f1
/* 802E9F08 C0 1E 00 00 */ lfs f0, 0(r30)
/* 802E9F0C EC 00 00 72 */ fmuls f0, f0, f1
/* 802E9F10 D0 1F 00 00 */ stfs f0, 0(r31)
/* 802E9F14 FC 20 F8 90 */ fmr f1, f31
/* 802E9F18 48 08 26 79 */ bl sin
/* 802E9F1C FC 20 08 18 */ frsp f1, f1
/* 802E9F20 C0 1E 00 04 */ lfs f0, 4(r30)
/* 802E9F24 EC 00 00 72 */ fmuls f0, f0, f1
/* 802E9F28 D0 1F 00 04 */ stfs f0, 4(r31)
/* 802E9F2C C0 02 C7 70 */ lfs f0, lit_1490(r2)
/* 802E9F30 D0 1F 00 08 */ stfs f0, 8(r31)
/* 802E9F34 FC 20 F8 90 */ fmr f1, f31
/* 802E9F38 48 08 26 59 */ bl sin
/* 802E9F3C FF C0 08 18 */ frsp f30, f1
/* 802E9F40 FC 20 F8 90 */ fmr f1, f31
/* 802E9F44 48 08 20 E5 */ bl cos
/* 802E9F48 FC 20 08 18 */ frsp f1, f1
/* 802E9F4C C0 62 C7 78 */ lfs f3, lit_1507(r2)
/* 802E9F50 C0 1E 00 0C */ lfs f0, 0xc(r30)
/* 802E9F54 EC 00 18 28 */ fsubs f0, f0, f3
/* 802E9F58 EC 40 00 72 */ fmuls f2, f0, f1
/* 802E9F5C C0 1E 00 10 */ lfs f0, 0x10(r30)
/* 802E9F60 EC 20 18 28 */ fsubs f1, f0, f3
/* 802E9F64 C0 1E 00 04 */ lfs f0, 4(r30)
/* 802E9F68 EC 01 00 2A */ fadds f0, f1, f0
/* 802E9F6C EC 00 07 B2 */ fmuls f0, f0, f30
/* 802E9F70 EC 02 00 28 */ fsubs f0, f2, f0
/* 802E9F74 EC 03 00 2A */ fadds f0, f3, f0
/* 802E9F78 D0 1F 00 0C */ stfs f0, 0xc(r31)
/* 802E9F7C FC 20 F8 90 */ fmr f1, f31
/* 802E9F80 48 08 26 11 */ bl sin
/* 802E9F84 FC 20 08 18 */ frsp f1, f1
/* 802E9F88 C0 1E 00 00 */ lfs f0, 0(r30)
/* 802E9F8C FC 00 00 50 */ fneg f0, f0
/* 802E9F90 EC 00 00 72 */ fmuls f0, f0, f1
/* 802E9F94 D0 1F 00 10 */ stfs f0, 0x10(r31)
/* 802E9F98 FC 20 F8 90 */ fmr f1, f31
/* 802E9F9C 48 08 20 8D */ bl cos
/* 802E9FA0 FC 20 08 18 */ frsp f1, f1
/* 802E9FA4 C0 1E 00 04 */ lfs f0, 4(r30)
/* 802E9FA8 EC 00 00 72 */ fmuls f0, f0, f1
/* 802E9FAC D0 1F 00 14 */ stfs f0, 0x14(r31)
/* 802E9FB0 C0 02 C7 70 */ lfs f0, lit_1490(r2)
/* 802E9FB4 D0 1F 00 18 */ stfs f0, 0x18(r31)
/* 802E9FB8 FC 20 F8 90 */ fmr f1, f31
/* 802E9FBC 48 08 20 6D */ bl cos
/* 802E9FC0 FF C0 08 18 */ frsp f30, f1
/* 802E9FC4 FC 20 F8 90 */ fmr f1, f31
/* 802E9FC8 48 08 25 C9 */ bl sin
/* 802E9FCC FC 20 08 18 */ frsp f1, f1
/* 802E9FD0 C0 62 C7 78 */ lfs f3, lit_1507(r2)
/* 802E9FD4 C0 1E 00 0C */ lfs f0, 0xc(r30)
/* 802E9FD8 EC 00 18 28 */ fsubs f0, f0, f3
/* 802E9FDC FC 00 00 50 */ fneg f0, f0
/* 802E9FE0 EC 40 00 72 */ fmuls f2, f0, f1
/* 802E9FE4 C0 1E 00 10 */ lfs f0, 0x10(r30)
/* 802E9FE8 EC 20 18 28 */ fsubs f1, f0, f3
/* 802E9FEC C0 1E 00 04 */ lfs f0, 4(r30)
/* 802E9FF0 EC 01 00 2A */ fadds f0, f1, f0
/* 802E9FF4 EC 00 07 B2 */ fmuls f0, f0, f30
/* 802E9FF8 EC 02 00 28 */ fsubs f0, f2, f0
/* 802E9FFC EC 03 00 2A */ fadds f0, f3, f0
/* 802EA000 D0 1F 00 1C */ stfs f0, 0x1c(r31)
/* 802EA004 C0 22 C7 70 */ lfs f1, lit_1490(r2)
/* 802EA008 D0 3F 00 20 */ stfs f1, 0x20(r31)
/* 802EA00C D0 3F 00 24 */ stfs f1, 0x24(r31)
/* 802EA010 C0 02 C7 74 */ lfs f0, lit_1491(r2)
/* 802EA014 D0 1F 00 28 */ stfs f0, 0x28(r31)
/* 802EA018 D0 3F 00 2C */ stfs f1, 0x2c(r31)
/* 802EA01C E3 E1 00 28 */ psq_l f31, 40(r1), 0, 0 /* qr0 */
/* 802EA020 CB E1 00 20 */ lfd f31, 0x20(r1)
/* 802EA024 E3 C1 00 18 */ psq_l f30, 24(r1), 0, 0 /* qr0 */
/* 802EA028 CB C1 00 10 */ lfd f30, 0x10(r1)
/* 802EA02C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802EA030 83 C1 00 08 */ lwz r30, 8(r1)
/* 802EA034 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802EA038 7C 08 03 A6 */ mtlr r0
/* 802EA03C 38 21 00 30 */ addi r1, r1, 0x30
/* 802EA040 4E 80 00 20 */ blr
@@ -1,101 +0,0 @@
lbl_802E9D2C:
/* 802E9D2C 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 802E9D30 7C 08 02 A6 */ mflr r0
/* 802E9D34 90 01 00 44 */ stw r0, 0x44(r1)
/* 802E9D38 DB E1 00 30 */ stfd f31, 0x30(r1)
/* 802E9D3C F3 E1 00 38 */ psq_st f31, 56(r1), 0, 0 /* qr0 */
/* 802E9D40 DB C1 00 20 */ stfd f30, 0x20(r1)
/* 802E9D44 F3 C1 00 28 */ psq_st f30, 40(r1), 0, 0 /* qr0 */
/* 802E9D48 39 61 00 20 */ addi r11, r1, 0x20
/* 802E9D4C 48 07 84 91 */ bl _savegpr_29
/* 802E9D50 7C 9D 23 78 */ mr r29, r4
/* 802E9D54 7C BE 2B 78 */ mr r30, r5
/* 802E9D58 7C DF 33 78 */ mr r31, r6
/* 802E9D5C C0 22 C7 68 */ lfs f1, lit_1488(r2)
/* 802E9D60 C0 04 00 08 */ lfs f0, 8(r4)
/* 802E9D64 EC 21 00 32 */ fmuls f1, f1, f0
/* 802E9D68 C0 02 C7 6C */ lfs f0, lit_1489(r2)
/* 802E9D6C EF E1 00 24 */ fdivs f31, f1, f0
/* 802E9D70 FC 20 F8 90 */ fmr f1, f31
/* 802E9D74 48 08 22 B5 */ bl cos
/* 802E9D78 FC 20 08 18 */ frsp f1, f1
/* 802E9D7C C0 1D 00 00 */ lfs f0, 0(r29)
/* 802E9D80 EC 00 00 72 */ fmuls f0, f0, f1
/* 802E9D84 D0 1F 00 00 */ stfs f0, 0(r31)
/* 802E9D88 FC 20 F8 90 */ fmr f1, f31
/* 802E9D8C 48 08 28 05 */ bl sin
/* 802E9D90 FC 20 08 18 */ frsp f1, f1
/* 802E9D94 C0 1D 00 00 */ lfs f0, 0(r29)
/* 802E9D98 FC 00 00 50 */ fneg f0, f0
/* 802E9D9C EC 00 00 72 */ fmuls f0, f0, f1
/* 802E9DA0 D0 1F 00 04 */ stfs f0, 4(r31)
/* 802E9DA4 C0 02 C7 70 */ lfs f0, lit_1490(r2)
/* 802E9DA8 D0 1F 00 08 */ stfs f0, 8(r31)
/* 802E9DAC FC 20 F8 90 */ fmr f1, f31
/* 802E9DB0 48 08 27 E1 */ bl sin
/* 802E9DB4 FF C0 08 18 */ frsp f30, f1
/* 802E9DB8 FC 20 F8 90 */ fmr f1, f31
/* 802E9DBC 48 08 22 6D */ bl cos
/* 802E9DC0 FC 20 08 18 */ frsp f1, f1
/* 802E9DC4 C0 7D 00 0C */ lfs f3, 0xc(r29)
/* 802E9DC8 C0 BE 00 00 */ lfs f5, 0(r30)
/* 802E9DCC C0 9D 00 00 */ lfs f4, 0(r29)
/* 802E9DD0 FC 00 20 50 */ fneg f0, f4
/* 802E9DD4 EC 00 00 72 */ fmuls f0, f0, f1
/* 802E9DD8 EC 45 00 32 */ fmuls f2, f5, f0
/* 802E9DDC C0 3E 00 04 */ lfs f1, 4(r30)
/* 802E9DE0 EC 04 07 B2 */ fmuls f0, f4, f30
/* 802E9DE4 EC 01 00 32 */ fmuls f0, f1, f0
/* 802E9DE8 EC 02 00 2A */ fadds f0, f2, f0
/* 802E9DEC EC 05 00 2A */ fadds f0, f5, f0
/* 802E9DF0 EC 03 00 2A */ fadds f0, f3, f0
/* 802E9DF4 D0 1F 00 0C */ stfs f0, 0xc(r31)
/* 802E9DF8 FC 20 F8 90 */ fmr f1, f31
/* 802E9DFC 48 08 27 95 */ bl sin
/* 802E9E00 FC 20 08 18 */ frsp f1, f1
/* 802E9E04 C0 1D 00 04 */ lfs f0, 4(r29)
/* 802E9E08 EC 00 00 72 */ fmuls f0, f0, f1
/* 802E9E0C D0 1F 00 10 */ stfs f0, 0x10(r31)
/* 802E9E10 FC 20 F8 90 */ fmr f1, f31
/* 802E9E14 48 08 22 15 */ bl cos
/* 802E9E18 FC 20 08 18 */ frsp f1, f1
/* 802E9E1C C0 1D 00 04 */ lfs f0, 4(r29)
/* 802E9E20 EC 00 00 72 */ fmuls f0, f0, f1
/* 802E9E24 D0 1F 00 14 */ stfs f0, 0x14(r31)
/* 802E9E28 C0 02 C7 70 */ lfs f0, lit_1490(r2)
/* 802E9E2C D0 1F 00 18 */ stfs f0, 0x18(r31)
/* 802E9E30 FC 20 F8 90 */ fmr f1, f31
/* 802E9E34 48 08 21 F5 */ bl cos
/* 802E9E38 FF C0 08 18 */ frsp f30, f1
/* 802E9E3C FC 20 F8 90 */ fmr f1, f31
/* 802E9E40 48 08 27 51 */ bl sin
/* 802E9E44 FC 60 08 18 */ frsp f3, f1
/* 802E9E48 C0 5D 00 10 */ lfs f2, 0x10(r29)
/* 802E9E4C C0 BE 00 04 */ lfs f5, 4(r30)
/* 802E9E50 C0 9D 00 04 */ lfs f4, 4(r29)
/* 802E9E54 C0 3E 00 00 */ lfs f1, 0(r30)
/* 802E9E58 FC 00 20 50 */ fneg f0, f4
/* 802E9E5C EC 00 00 F2 */ fmuls f0, f0, f3
/* 802E9E60 EC 21 00 32 */ fmuls f1, f1, f0
/* 802E9E64 EC 04 07 B2 */ fmuls f0, f4, f30
/* 802E9E68 EC 05 00 32 */ fmuls f0, f5, f0
/* 802E9E6C EC 01 00 28 */ fsubs f0, f1, f0
/* 802E9E70 EC 05 00 2A */ fadds f0, f5, f0
/* 802E9E74 EC 02 00 2A */ fadds f0, f2, f0
/* 802E9E78 D0 1F 00 1C */ stfs f0, 0x1c(r31)
/* 802E9E7C C0 22 C7 70 */ lfs f1, lit_1490(r2)
/* 802E9E80 D0 3F 00 20 */ stfs f1, 0x20(r31)
/* 802E9E84 D0 3F 00 24 */ stfs f1, 0x24(r31)
/* 802E9E88 C0 02 C7 74 */ lfs f0, lit_1491(r2)
/* 802E9E8C D0 1F 00 28 */ stfs f0, 0x28(r31)
/* 802E9E90 D0 3F 00 2C */ stfs f1, 0x2c(r31)
/* 802E9E94 E3 E1 00 38 */ psq_l f31, 56(r1), 0, 0 /* qr0 */
/* 802E9E98 CB E1 00 30 */ lfd f31, 0x30(r1)
/* 802E9E9C E3 C1 00 28 */ psq_l f30, 40(r1), 0, 0 /* qr0 */
/* 802E9EA0 CB C1 00 20 */ lfd f30, 0x20(r1)
/* 802E9EA4 39 61 00 20 */ addi r11, r1, 0x20
/* 802E9EA8 48 07 83 81 */ bl _restgpr_29
/* 802E9EAC 80 01 00 44 */ lwz r0, 0x44(r1)
/* 802E9EB0 7C 08 03 A6 */ mtlr r0
/* 802E9EB4 38 21 00 40 */ addi r1, r1, 0x40
/* 802E9EB8 4E 80 00 20 */ blr
@@ -1,175 +0,0 @@
lbl_80307F94:
/* 80307F94 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 80307F98 3C 60 80 3A */ lis r3, lit_1953@ha /* 0x803A1DB8@ha */
/* 80307F9C 38 C3 1D B8 */ addi r6, r3, lit_1953@l /* 0x803A1DB8@l */
/* 80307FA0 80 66 00 00 */ lwz r3, 0(r6)
/* 80307FA4 80 06 00 04 */ lwz r0, 4(r6)
/* 80307FA8 90 61 00 34 */ stw r3, 0x34(r1)
/* 80307FAC 90 01 00 38 */ stw r0, 0x38(r1)
/* 80307FB0 80 06 00 08 */ lwz r0, 8(r6)
/* 80307FB4 90 01 00 3C */ stw r0, 0x3c(r1)
/* 80307FB8 80 66 00 0C */ lwz r3, 0xc(r6)
/* 80307FBC 80 06 00 10 */ lwz r0, 0x10(r6)
/* 80307FC0 90 61 00 28 */ stw r3, 0x28(r1)
/* 80307FC4 90 01 00 2C */ stw r0, 0x2c(r1)
/* 80307FC8 80 06 00 14 */ lwz r0, 0x14(r6)
/* 80307FCC 90 01 00 30 */ stw r0, 0x30(r1)
/* 80307FD0 80 66 00 18 */ lwz r3, 0x18(r6)
/* 80307FD4 80 06 00 1C */ lwz r0, 0x1c(r6)
/* 80307FD8 90 61 00 18 */ stw r3, 0x18(r1)
/* 80307FDC 90 01 00 1C */ stw r0, 0x1c(r1)
/* 80307FE0 80 06 00 20 */ lwz r0, 0x20(r6)
/* 80307FE4 90 01 00 20 */ stw r0, 0x20(r1)
/* 80307FE8 A0 06 00 24 */ lhz r0, 0x24(r6)
/* 80307FEC B0 01 00 24 */ sth r0, 0x24(r1)
/* 80307FF0 88 06 00 26 */ lbz r0, 0x26(r6)
/* 80307FF4 98 01 00 26 */ stb r0, 0x26(r1)
/* 80307FF8 80 66 00 28 */ lwz r3, 0x28(r6)
/* 80307FFC 80 06 00 2C */ lwz r0, 0x2c(r6)
/* 80308000 90 61 00 08 */ stw r3, 8(r1)
/* 80308004 90 01 00 0C */ stw r0, 0xc(r1)
/* 80308008 80 06 00 30 */ lwz r0, 0x30(r6)
/* 8030800C 90 01 00 10 */ stw r0, 0x10(r1)
/* 80308010 A0 06 00 34 */ lhz r0, 0x34(r6)
/* 80308014 B0 01 00 14 */ sth r0, 0x14(r1)
/* 80308018 88 06 00 36 */ lbz r0, 0x36(r6)
/* 8030801C 98 01 00 16 */ stb r0, 0x16(r1)
/* 80308020 54 A6 10 3A */ slwi r6, r5, 2
/* 80308024 38 61 00 34 */ addi r3, r1, 0x34
/* 80308028 7C 03 30 AE */ lbzx r0, r3, r6
/* 8030802C 54 07 25 36 */ rlwinm r7, r0, 4, 0x14, 0x1b
/* 80308030 38 61 00 35 */ addi r3, r1, 0x35
/* 80308034 7C 03 30 AE */ lbzx r0, r3, r6
/* 80308038 7C E0 03 78 */ or r0, r7, r0
/* 8030803C 98 04 00 02 */ stb r0, 2(r4)
/* 80308040 38 61 00 36 */ addi r3, r1, 0x36
/* 80308044 7C 03 30 AE */ lbzx r0, r3, r6
/* 80308048 54 07 25 36 */ rlwinm r7, r0, 4, 0x14, 0x1b
/* 8030804C 38 61 00 37 */ addi r3, r1, 0x37
/* 80308050 7C 03 30 AE */ lbzx r0, r3, r6
/* 80308054 7C E0 03 78 */ or r0, r7, r0
/* 80308058 98 04 00 03 */ stb r0, 3(r4)
/* 8030805C 1C A5 00 05 */ mulli r5, r5, 5
/* 80308060 38 61 00 1C */ addi r3, r1, 0x1c
/* 80308064 7C 63 28 AE */ lbzx r3, r3, r5
/* 80308068 38 E1 00 1B */ addi r7, r1, 0x1b
/* 8030806C 7C 07 28 AE */ lbzx r0, r7, r5
/* 80308070 38 E1 00 1A */ addi r7, r1, 0x1a
/* 80308074 7D 67 28 AE */ lbzx r11, r7, r5
/* 80308078 38 E1 00 19 */ addi r7, r1, 0x19
/* 8030807C 7D 47 28 AE */ lbzx r10, r7, r5
/* 80308080 38 E1 00 18 */ addi r7, r1, 0x18
/* 80308084 7D 27 28 AE */ lbzx r9, r7, r5
/* 80308088 88 E4 00 01 */ lbz r7, 1(r4)
/* 8030808C 54 E8 07 B8 */ rlwinm r8, r7, 0, 0x1e, 0x1c
/* 80308090 55 27 10 3A */ slwi r7, r9, 2
/* 80308094 7D 07 3B 78 */ or r7, r8, r7
/* 80308098 98 E4 00 01 */ stb r7, 1(r4)
/* 8030809C 28 09 00 01 */ cmplwi r9, 1
/* 803080A0 41 81 00 2C */ bgt lbl_803080CC
/* 803080A4 88 E4 00 01 */ lbz r7, 1(r4)
/* 803080A8 54 E8 07 32 */ rlwinm r8, r7, 0, 0x1c, 0x19
/* 803080AC 55 67 25 36 */ rlwinm r7, r11, 4, 0x14, 0x1b
/* 803080B0 7D 07 3B 78 */ or r7, r8, r7
/* 803080B4 98 E4 00 01 */ stb r7, 1(r4)
/* 803080B8 88 E4 00 01 */ lbz r7, 1(r4)
/* 803080BC 54 E7 00 3A */ rlwinm r7, r7, 0, 0, 0x1d
/* 803080C0 7C E7 53 78 */ or r7, r7, r10
/* 803080C4 98 E4 00 01 */ stb r7, 1(r4)
/* 803080C8 48 00 00 20 */ b lbl_803080E8
lbl_803080CC:
/* 803080CC 88 E4 00 01 */ lbz r7, 1(r4)
/* 803080D0 51 27 1E B6 */ rlwimi r7, r9, 3, 0x1a, 0x1b
/* 803080D4 98 E4 00 01 */ stb r7, 1(r4)
/* 803080D8 88 E4 00 01 */ lbz r7, 1(r4)
/* 803080DC 54 E7 00 3A */ rlwinm r7, r7, 0, 0, 0x1d
/* 803080E0 60 E7 00 03 */ ori r7, r7, 3
/* 803080E4 98 E4 00 01 */ stb r7, 1(r4)
lbl_803080E8:
/* 803080E8 88 E4 00 01 */ lbz r7, 1(r4)
/* 803080EC 54 E7 07 76 */ rlwinm r7, r7, 0, 0x1d, 0x1b
/* 803080F0 54 00 1D 78 */ rlwinm r0, r0, 3, 0x15, 0x1c
/* 803080F4 7C E0 03 78 */ or r0, r7, r0
/* 803080F8 98 04 00 01 */ stb r0, 1(r4)
/* 803080FC 88 E4 00 01 */ lbz r7, 1(r4)
/* 80308100 54 60 34 B2 */ rlwinm r0, r3, 6, 0x12, 0x19
/* 80308104 50 E0 06 BE */ rlwimi r0, r7, 0, 0x1a, 0x1f
/* 80308108 98 04 00 01 */ stb r0, 1(r4)
/* 8030810C 38 61 00 2B */ addi r3, r1, 0x2b
/* 80308110 7D 43 30 AE */ lbzx r10, r3, r6
/* 80308114 38 61 00 2A */ addi r3, r1, 0x2a
/* 80308118 7D 23 30 AE */ lbzx r9, r3, r6
/* 8030811C 38 61 00 29 */ addi r3, r1, 0x29
/* 80308120 7D 03 30 AE */ lbzx r8, r3, r6
/* 80308124 88 E4 00 06 */ lbz r7, 6(r4)
/* 80308128 38 61 00 28 */ addi r3, r1, 0x28
/* 8030812C 7C 03 30 AE */ lbzx r0, r3, r6
/* 80308130 54 00 2C F4 */ rlwinm r0, r0, 5, 0x13, 0x1a
/* 80308134 50 E0 06 FE */ rlwimi r0, r7, 0, 0x1b, 0x1f
/* 80308138 98 04 00 06 */ stb r0, 6(r4)
/* 8030813C 88 04 00 06 */ lbz r0, 6(r4)
/* 80308140 54 03 07 B4 */ rlwinm r3, r0, 0, 0x1e, 0x1a
/* 80308144 55 00 10 3A */ slwi r0, r8, 2
/* 80308148 7C 60 03 78 */ or r0, r3, r0
/* 8030814C 98 04 00 06 */ stb r0, 6(r4)
/* 80308150 88 04 00 06 */ lbz r0, 6(r4)
/* 80308154 54 03 00 3A */ rlwinm r3, r0, 0, 0, 0x1d
/* 80308158 7D 20 0E 70 */ srawi r0, r9, 1
/* 8030815C 7C 60 03 78 */ or r0, r3, r0
/* 80308160 98 04 00 06 */ stb r0, 6(r4)
/* 80308164 88 64 00 07 */ lbz r3, 7(r4)
/* 80308168 55 20 38 30 */ slwi r0, r9, 7
/* 8030816C 50 60 06 7E */ rlwimi r0, r3, 0, 0x19, 0x1f
/* 80308170 98 04 00 07 */ stb r0, 7(r4)
/* 80308174 88 04 00 07 */ lbz r0, 7(r4)
/* 80308178 54 03 07 30 */ rlwinm r3, r0, 0, 0x1c, 0x18
/* 8030817C 55 40 20 36 */ slwi r0, r10, 4
/* 80308180 7C 60 03 78 */ or r0, r3, r0
/* 80308184 98 04 00 07 */ stb r0, 7(r4)
/* 80308188 38 61 00 0C */ addi r3, r1, 0xc
/* 8030818C 7C 03 28 AE */ lbzx r0, r3, r5
/* 80308190 38 61 00 0B */ addi r3, r1, 0xb
/* 80308194 7D 23 28 AE */ lbzx r9, r3, r5
/* 80308198 38 61 00 0A */ addi r3, r1, 0xa
/* 8030819C 7D 03 28 AE */ lbzx r8, r3, r5
/* 803081A0 38 61 00 09 */ addi r3, r1, 9
/* 803081A4 7C E3 28 AE */ lbzx r7, r3, r5
/* 803081A8 38 61 00 08 */ addi r3, r1, 8
/* 803081AC 7C C3 28 AE */ lbzx r6, r3, r5
/* 803081B0 88 64 00 05 */ lbz r3, 5(r4)
/* 803081B4 54 65 07 B8 */ rlwinm r5, r3, 0, 0x1e, 0x1c
/* 803081B8 54 C3 10 3A */ slwi r3, r6, 2
/* 803081BC 7C A3 1B 78 */ or r3, r5, r3
/* 803081C0 98 64 00 05 */ stb r3, 5(r4)
/* 803081C4 28 06 00 01 */ cmplwi r6, 1
/* 803081C8 41 81 00 2C */ bgt lbl_803081F4
/* 803081CC 88 64 00 05 */ lbz r3, 5(r4)
/* 803081D0 54 63 00 3A */ rlwinm r3, r3, 0, 0, 0x1d
/* 803081D4 7C 63 3B 78 */ or r3, r3, r7
/* 803081D8 98 64 00 05 */ stb r3, 5(r4)
/* 803081DC 88 64 00 05 */ lbz r3, 5(r4)
/* 803081E0 54 65 07 32 */ rlwinm r5, r3, 0, 0x1c, 0x19
/* 803081E4 55 03 25 36 */ rlwinm r3, r8, 4, 0x14, 0x1b
/* 803081E8 7C A3 1B 78 */ or r3, r5, r3
/* 803081EC 98 64 00 05 */ stb r3, 5(r4)
/* 803081F0 48 00 00 20 */ b lbl_80308210
lbl_803081F4:
/* 803081F4 88 64 00 05 */ lbz r3, 5(r4)
/* 803081F8 50 C3 1E B6 */ rlwimi r3, r6, 3, 0x1a, 0x1b
/* 803081FC 98 64 00 05 */ stb r3, 5(r4)
/* 80308200 88 64 00 05 */ lbz r3, 5(r4)
/* 80308204 54 63 00 3A */ rlwinm r3, r3, 0, 0, 0x1d
/* 80308208 60 63 00 03 */ ori r3, r3, 3
/* 8030820C 98 64 00 05 */ stb r3, 5(r4)
lbl_80308210:
/* 80308210 88 64 00 05 */ lbz r3, 5(r4)
/* 80308214 54 65 07 76 */ rlwinm r5, r3, 0, 0x1d, 0x1b
/* 80308218 55 23 1D 78 */ rlwinm r3, r9, 3, 0x15, 0x1c
/* 8030821C 7C A3 1B 78 */ or r3, r5, r3
/* 80308220 98 64 00 05 */ stb r3, 5(r4)
/* 80308224 88 64 00 05 */ lbz r3, 5(r4)
/* 80308228 54 00 34 B2 */ rlwinm r0, r0, 6, 0x12, 0x19
/* 8030822C 50 60 06 BE */ rlwimi r0, r3, 0, 0x1a, 0x1f
/* 80308230 98 04 00 05 */ stb r0, 5(r4)
/* 80308234 38 21 00 40 */ addi r1, r1, 0x40
/* 80308238 4E 80 00 20 */ blr
@@ -1,63 +0,0 @@
lbl_80307E0C:
/* 80307E0C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80307E10 7C 08 02 A6 */ mflr r0
/* 80307E14 90 01 00 24 */ stw r0, 0x24(r1)
/* 80307E18 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 80307E1C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 80307E20 7C 7F 1B 78 */ mr r31, r3
/* 80307E24 54 80 06 3F */ clrlwi. r0, r4, 0x18
/* 80307E28 40 82 00 1C */ bne lbl_80307E44
/* 80307E2C 38 00 00 04 */ li r0, 4
/* 80307E30 B0 01 00 10 */ sth r0, 0x10(r1)
/* 80307E34 3C 60 00 01 */ lis r3, 0x0001 /* 0x0000FFFF@ha */
/* 80307E38 38 03 FF FF */ addi r0, r3, 0xFFFF /* 0x0000FFFF@l */
/* 80307E3C B0 01 00 12 */ sth r0, 0x12(r1)
/* 80307E40 48 00 00 18 */ b lbl_80307E58
lbl_80307E44:
/* 80307E44 38 00 00 FF */ li r0, 0xff
/* 80307E48 B0 01 00 10 */ sth r0, 0x10(r1)
/* 80307E4C 3C 60 00 01 */ lis r3, 0x0001 /* 0x0000FF04@ha */
/* 80307E50 38 03 FF 04 */ addi r0, r3, 0xFF04 /* 0x0000FF04@l */
/* 80307E54 B0 01 00 12 */ sth r0, 0x12(r1)
lbl_80307E58:
/* 80307E58 3B C0 00 00 */ li r30, 0
/* 80307E5C 48 00 00 70 */ b lbl_80307ECC
lbl_80307E60:
/* 80307E60 80 7F 01 38 */ lwz r3, 0x138(r31)
/* 80307E64 80 63 00 70 */ lwz r3, 0x70(r3)
/* 80307E68 81 83 00 00 */ lwz r12, 0(r3)
/* 80307E6C 81 8C 00 18 */ lwz r12, 0x18(r12)
/* 80307E70 7D 89 03 A6 */ mtctr r12
/* 80307E74 4E 80 04 21 */ bctrl
/* 80307E78 54 60 06 3E */ clrlwi r0, r3, 0x18
/* 80307E7C 57 C4 06 3E */ clrlwi r4, r30, 0x18
/* 80307E80 7C 00 20 40 */ cmplw r0, r4
/* 80307E84 40 81 00 44 */ ble lbl_80307EC8
/* 80307E88 57 C0 0D FC */ rlwinm r0, r30, 1, 0x17, 0x1e
/* 80307E8C 38 61 00 10 */ addi r3, r1, 0x10
/* 80307E90 7C 63 02 2E */ lhzx r3, r3, r0
/* 80307E94 7C 60 46 70 */ srawi r0, r3, 8
/* 80307E98 98 01 00 0C */ stb r0, 0xc(r1)
/* 80307E9C 98 01 00 0D */ stb r0, 0xd(r1)
/* 80307EA0 98 61 00 0E */ stb r3, 0xe(r1)
/* 80307EA4 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80307EA8 90 01 00 08 */ stw r0, 8(r1)
/* 80307EAC 80 7F 01 38 */ lwz r3, 0x138(r31)
/* 80307EB0 80 63 00 70 */ lwz r3, 0x70(r3)
/* 80307EB4 38 A1 00 08 */ addi r5, r1, 8
/* 80307EB8 81 83 00 00 */ lwz r12, 0(r3)
/* 80307EBC 81 8C 00 2C */ lwz r12, 0x2c(r12)
/* 80307EC0 7D 89 03 A6 */ mtctr r12
/* 80307EC4 4E 80 04 21 */ bctrl
lbl_80307EC8:
/* 80307EC8 3B DE 00 01 */ addi r30, r30, 1
lbl_80307ECC:
/* 80307ECC 57 C0 06 3E */ clrlwi r0, r30, 0x18
/* 80307ED0 28 00 00 02 */ cmplwi r0, 2
/* 80307ED4 41 80 FF 8C */ blt lbl_80307E60
/* 80307ED8 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 80307EDC 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 80307EE0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80307EE4 7C 08 03 A6 */ mtlr r0
/* 80307EE8 38 21 00 20 */ addi r1, r1, 0x20
/* 80307EEC 4E 80 00 20 */ blr
@@ -1,58 +0,0 @@
lbl_80269D64:
/* 80269D64 C1 21 00 08 */ lfs f9, 8(r1)
/* 80269D68 FC 01 18 40 */ fcmpo cr0, f1, f3
/* 80269D6C 40 80 00 0C */ bge lbl_80269D78
/* 80269D70 FC 00 08 90 */ fmr f0, f1
/* 80269D74 48 00 00 0C */ b lbl_80269D80
lbl_80269D78:
/* 80269D78 FC 00 18 90 */ fmr f0, f3
/* 80269D7C FC 60 08 90 */ fmr f3, f1
lbl_80269D80:
/* 80269D80 FC 00 28 40 */ fcmpo cr0, f0, f5
/* 80269D84 40 81 00 0C */ ble lbl_80269D90
/* 80269D88 FC 00 28 90 */ fmr f0, f5
/* 80269D8C 48 00 00 10 */ b lbl_80269D9C
lbl_80269D90:
/* 80269D90 FC 03 28 40 */ fcmpo cr0, f3, f5
/* 80269D94 40 80 00 08 */ bge lbl_80269D9C
/* 80269D98 FC 60 28 90 */ fmr f3, f5
lbl_80269D9C:
/* 80269D9C EC 00 48 28 */ fsubs f0, f0, f9
/* 80269DA0 FC 00 38 40 */ fcmpo cr0, f0, f7
/* 80269DA4 41 81 00 10 */ bgt lbl_80269DB4
/* 80269DA8 EC 03 48 2A */ fadds f0, f3, f9
/* 80269DAC FC 00 38 40 */ fcmpo cr0, f0, f7
/* 80269DB0 40 80 00 0C */ bge lbl_80269DBC
lbl_80269DB4:
/* 80269DB4 38 60 00 00 */ li r3, 0
/* 80269DB8 4E 80 00 20 */ blr
lbl_80269DBC:
/* 80269DBC FC 02 20 40 */ fcmpo cr0, f2, f4
/* 80269DC0 40 80 00 0C */ bge lbl_80269DCC
/* 80269DC4 FC 00 10 90 */ fmr f0, f2
/* 80269DC8 48 00 00 0C */ b lbl_80269DD4
lbl_80269DCC:
/* 80269DCC FC 00 20 90 */ fmr f0, f4
/* 80269DD0 FC 80 10 90 */ fmr f4, f2
lbl_80269DD4:
/* 80269DD4 FC 00 30 40 */ fcmpo cr0, f0, f6
/* 80269DD8 40 81 00 0C */ ble lbl_80269DE4
/* 80269DDC FC 00 30 90 */ fmr f0, f6
/* 80269DE0 48 00 00 10 */ b lbl_80269DF0
lbl_80269DE4:
/* 80269DE4 FC 04 30 40 */ fcmpo cr0, f4, f6
/* 80269DE8 40 80 00 08 */ bge lbl_80269DF0
/* 80269DEC FC 80 30 90 */ fmr f4, f6
lbl_80269DF0:
/* 80269DF0 EC 00 48 28 */ fsubs f0, f0, f9
/* 80269DF4 FC 00 40 40 */ fcmpo cr0, f0, f8
/* 80269DF8 41 81 00 10 */ bgt lbl_80269E08
/* 80269DFC EC 04 48 2A */ fadds f0, f4, f9
/* 80269E00 FC 00 40 40 */ fcmpo cr0, f0, f8
/* 80269E04 40 80 00 0C */ bge lbl_80269E10
lbl_80269E08:
/* 80269E08 38 60 00 00 */ li r3, 0
/* 80269E0C 4E 80 00 20 */ blr
lbl_80269E10:
/* 80269E10 38 60 00 01 */ li r3, 1
/* 80269E14 4E 80 00 20 */ blr
@@ -1,7 +0,0 @@
lbl_800740C4:
/* 800740C4 80 63 00 00 */ lwz r3, 0(r3)
/* 800740C8 38 63 00 08 */ addi r3, r3, 8
/* 800740CC 1C 04 00 14 */ mulli r0, r4, 0x14
/* 800740D0 7C 63 02 14 */ add r3, r3, r0
/* 800740D4 90 65 00 00 */ stw r3, 0(r5)
/* 800740D8 4E 80 00 20 */ blr
@@ -1,7 +0,0 @@
lbl_800740DC:
/* 800740DC 80 63 00 00 */ lwz r3, 0(r3)
/* 800740E0 38 63 00 08 */ addi r3, r3, 8
/* 800740E4 1C 04 00 14 */ mulli r0, r4, 0x14
/* 800740E8 7C 63 02 14 */ add r3, r3, r0
/* 800740EC 80 63 00 10 */ lwz r3, 0x10(r3)
/* 800740F0 4E 80 00 20 */ blr
@@ -1,26 +0,0 @@
lbl_80077BC4:
/* 80077BC4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80077BC8 7C 08 02 A6 */ mflr r0
/* 80077BCC 90 01 00 14 */ stw r0, 0x14(r1)
/* 80077BD0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80077BD4 7C 7F 1B 79 */ or. r31, r3, r3
/* 80077BD8 41 82 00 30 */ beq lbl_80077C08
/* 80077BDC 3C 60 80 3B */ lis r3, __vt__15dBgS_GrpPassChk@ha /* 0x803AB7A8@ha */
/* 80077BE0 38 03 B7 A8 */ addi r0, r3, __vt__15dBgS_GrpPassChk@l /* 0x803AB7A8@l */
/* 80077BE4 90 1F 00 00 */ stw r0, 0(r31)
/* 80077BE8 41 82 00 10 */ beq lbl_80077BF8
/* 80077BEC 3C 60 80 3B */ lis r3, __vt__15cBgS_GrpPassChk@ha /* 0x803AB7B4@ha */
/* 80077BF0 38 03 B7 B4 */ addi r0, r3, __vt__15cBgS_GrpPassChk@l /* 0x803AB7B4@l */
/* 80077BF4 90 1F 00 00 */ stw r0, 0(r31)
lbl_80077BF8:
/* 80077BF8 7C 80 07 35 */ extsh. r0, r4
/* 80077BFC 40 81 00 0C */ ble lbl_80077C08
/* 80077C00 7F E3 FB 78 */ mr r3, r31
/* 80077C04 48 25 71 39 */ bl __dl__FPv
lbl_80077C08:
/* 80077C08 7F E3 FB 78 */ mr r3, r31
/* 80077C0C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80077C10 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80077C14 7C 08 03 A6 */ mtlr r0
/* 80077C18 38 21 00 10 */ addi r1, r1, 0x10
/* 80077C1C 4E 80 00 20 */ blr
@@ -1,89 +0,0 @@
lbl_8007E9D4:
/* 8007E9D4 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 8007E9D8 7C 08 02 A6 */ mflr r0
/* 8007E9DC 90 01 00 44 */ stw r0, 0x44(r1)
/* 8007E9E0 39 61 00 40 */ addi r11, r1, 0x40
/* 8007E9E4 48 2E 37 E9 */ bl _savegpr_25
/* 8007E9E8 7C 9C 23 78 */ mr r28, r4
/* 8007E9EC 7C BD 2B 78 */ mr r29, r5
/* 8007E9F0 7C DE 33 78 */ mr r30, r6
/* 8007E9F4 7C FF 3B 78 */ mr r31, r7
/* 8007E9F8 80 83 00 18 */ lwz r4, 0x18(r3)
/* 8007E9FC 80 64 00 00 */ lwz r3, 0(r4)
/* 8007EA00 A0 1C 00 04 */ lhz r0, 4(r28)
/* 8007EA04 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8007EA08 7C 63 02 14 */ add r3, r3, r0
/* 8007EA0C C0 03 00 00 */ lfs f0, 0(r3)
/* 8007EA10 D0 05 00 00 */ stfs f0, 0(r5)
/* 8007EA14 C0 03 00 04 */ lfs f0, 4(r3)
/* 8007EA18 D0 05 00 04 */ stfs f0, 4(r5)
/* 8007EA1C C0 03 00 08 */ lfs f0, 8(r3)
/* 8007EA20 D0 05 00 08 */ stfs f0, 8(r5)
/* 8007EA24 80 84 00 04 */ lwz r4, 4(r4)
/* 8007EA28 A0 1C 00 06 */ lhz r0, 6(r28)
/* 8007EA2C 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8007EA30 7F 64 02 14 */ add r27, r4, r0
/* 8007EA34 A0 1C 00 0A */ lhz r0, 0xa(r28)
/* 8007EA38 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8007EA3C 7F 44 02 14 */ add r26, r4, r0
/* 8007EA40 A0 1C 00 0C */ lhz r0, 0xc(r28)
/* 8007EA44 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8007EA48 7F 24 02 14 */ add r25, r4, r0
/* 8007EA4C 7F 63 DB 78 */ mr r3, r27
/* 8007EA50 A0 1C 00 08 */ lhz r0, 8(r28)
/* 8007EA54 1C 00 00 0C */ mulli r0, r0, 0xc
/* 8007EA58 7C 84 02 14 */ add r4, r4, r0
/* 8007EA5C 38 A1 00 14 */ addi r5, r1, 0x14
/* 8007EA60 48 2C 87 55 */ bl PSVECCrossProduct
/* 8007EA64 7F 43 D3 78 */ mr r3, r26
/* 8007EA68 7F 64 DB 78 */ mr r4, r27
/* 8007EA6C 38 A1 00 08 */ addi r5, r1, 8
/* 8007EA70 48 2C 87 45 */ bl PSVECCrossProduct
/* 8007EA74 38 61 00 14 */ addi r3, r1, 0x14
/* 8007EA78 7F 24 CB 78 */ mr r4, r25
/* 8007EA7C 48 2C 87 19 */ bl PSVECDotProduct
/* 8007EA80 FC 00 0A 10 */ fabs f0, f1
/* 8007EA84 FC 40 00 18 */ frsp f2, f0
/* 8007EA88 C0 0D 8C 00 */ lfs f0, G_CM3D_F_ABS_MIN(r13)
/* 8007EA8C FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8007EA90 40 80 00 0C */ bge lbl_8007EA9C
/* 8007EA94 38 60 00 00 */ li r3, 0
/* 8007EA98 48 00 00 78 */ b lbl_8007EB10
lbl_8007EA9C:
/* 8007EA9C C0 1C 00 00 */ lfs f0, 0(r28)
/* 8007EAA0 EC 20 08 24 */ fdivs f1, f0, f1
/* 8007EAA4 38 61 00 14 */ addi r3, r1, 0x14
/* 8007EAA8 7C 64 1B 78 */ mr r4, r3
/* 8007EAAC 48 2C 86 2D */ bl PSVECScale
/* 8007EAB0 38 61 00 14 */ addi r3, r1, 0x14
/* 8007EAB4 7F A4 EB 78 */ mr r4, r29
/* 8007EAB8 7F E5 FB 78 */ mr r5, r31
/* 8007EABC 48 2C 85 D5 */ bl PSVECAdd
/* 8007EAC0 38 61 00 08 */ addi r3, r1, 8
/* 8007EAC4 7F 24 CB 78 */ mr r4, r25
/* 8007EAC8 48 2C 86 CD */ bl PSVECDotProduct
/* 8007EACC FC 00 0A 10 */ fabs f0, f1
/* 8007EAD0 FC 40 00 18 */ frsp f2, f0
/* 8007EAD4 C0 0D 8C 00 */ lfs f0, G_CM3D_F_ABS_MIN(r13)
/* 8007EAD8 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8007EADC 40 80 00 0C */ bge lbl_8007EAE8
/* 8007EAE0 38 60 00 00 */ li r3, 0
/* 8007EAE4 48 00 00 2C */ b lbl_8007EB10
lbl_8007EAE8:
/* 8007EAE8 C0 1C 00 00 */ lfs f0, 0(r28)
/* 8007EAEC EC 20 08 24 */ fdivs f1, f0, f1
/* 8007EAF0 38 61 00 08 */ addi r3, r1, 8
/* 8007EAF4 7C 64 1B 78 */ mr r4, r3
/* 8007EAF8 48 2C 85 E1 */ bl PSVECScale
/* 8007EAFC 38 61 00 08 */ addi r3, r1, 8
/* 8007EB00 7F A4 EB 78 */ mr r4, r29
/* 8007EB04 7F C5 F3 78 */ mr r5, r30
/* 8007EB08 48 2C 85 89 */ bl PSVECAdd
/* 8007EB0C 38 60 00 01 */ li r3, 1
lbl_8007EB10:
/* 8007EB10 39 61 00 40 */ addi r11, r1, 0x40
/* 8007EB14 48 2E 37 05 */ bl _restgpr_25
/* 8007EB18 80 01 00 44 */ lwz r0, 0x44(r1)
/* 8007EB1C 7C 08 03 A6 */ mtlr r0
/* 8007EB20 38 21 00 40 */ addi r1, r1, 0x40
/* 8007EB24 4E 80 00 20 */ blr
@@ -1,175 +0,0 @@
lbl_8007EBC4:
/* 8007EBC4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8007EBC8 7C 08 02 A6 */ mflr r0
/* 8007EBCC 90 01 00 24 */ stw r0, 0x24(r1)
/* 8007EBD0 39 61 00 20 */ addi r11, r1, 0x20
/* 8007EBD4 48 2E 36 09 */ bl _savegpr_29
/* 8007EBD8 7C 9D 23 78 */ mr r29, r4
/* 8007EBDC 7C FE 3B 78 */ mr r30, r7
/* 8007EBE0 28 06 00 00 */ cmplwi r6, 0
/* 8007EBE4 41 82 00 3C */ beq lbl_8007EC20
/* 8007EBE8 80 1D 00 10 */ lwz r0, 0x10(r29)
/* 8007EBEC 54 00 05 EF */ rlwinm. r0, r0, 0, 0x17, 0x17
/* 8007EBF0 40 82 00 18 */ bne lbl_8007EC08
/* 8007EBF4 80 06 00 04 */ lwz r0, 4(r6)
/* 8007EBF8 54 00 07 FF */ clrlwi. r0, r0, 0x1f
/* 8007EBFC 40 82 00 24 */ bne lbl_8007EC20
/* 8007EC00 38 60 00 01 */ li r3, 1
/* 8007EC04 48 00 02 18 */ b lbl_8007EE1C
lbl_8007EC08:
/* 8007EC08 41 82 00 18 */ beq lbl_8007EC20
/* 8007EC0C 80 06 00 04 */ lwz r0, 4(r6)
/* 8007EC10 54 00 07 BD */ rlwinm. r0, r0, 0, 0x1e, 0x1e
/* 8007EC14 40 82 00 0C */ bne lbl_8007EC20
/* 8007EC18 38 60 00 01 */ li r3, 1
/* 8007EC1C 48 00 02 00 */ b lbl_8007EE1C
lbl_8007EC20:
/* 8007EC20 28 05 00 00 */ cmplwi r5, 0
/* 8007EC24 41 82 01 F4 */ beq lbl_8007EE18
/* 8007EC28 7C BF 2B 78 */ mr r31, r5
/* 8007EC2C 88 05 00 04 */ lbz r0, 4(r5)
/* 8007EC30 28 00 00 00 */ cmplwi r0, 0
/* 8007EC34 41 82 00 18 */ beq lbl_8007EC4C
/* 8007EC38 80 1D 00 00 */ lwz r0, 0(r29)
/* 8007EC3C 54 00 04 63 */ rlwinm. r0, r0, 0, 0x11, 0x11
/* 8007EC40 41 82 00 0C */ beq lbl_8007EC4C
/* 8007EC44 38 60 00 01 */ li r3, 1
/* 8007EC48 48 00 01 D4 */ b lbl_8007EE1C
lbl_8007EC4C:
/* 8007EC4C 88 1F 00 05 */ lbz r0, 5(r31)
/* 8007EC50 28 00 00 00 */ cmplwi r0, 0
/* 8007EC54 41 82 00 18 */ beq lbl_8007EC6C
/* 8007EC58 80 1D 00 00 */ lwz r0, 0(r29)
/* 8007EC5C 54 00 04 21 */ rlwinm. r0, r0, 0, 0x10, 0x10
/* 8007EC60 41 82 00 0C */ beq lbl_8007EC6C
/* 8007EC64 38 60 00 01 */ li r3, 1
/* 8007EC68 48 00 01 B4 */ b lbl_8007EE1C
lbl_8007EC6C:
/* 8007EC6C 88 1F 00 06 */ lbz r0, 6(r31)
/* 8007EC70 28 00 00 00 */ cmplwi r0, 0
/* 8007EC74 41 82 00 10 */ beq lbl_8007EC84
/* 8007EC78 80 1D 00 00 */ lwz r0, 0(r29)
/* 8007EC7C 54 00 03 DF */ rlwinm. r0, r0, 0, 0xf, 0xf
/* 8007EC80 40 82 00 1C */ bne lbl_8007EC9C
lbl_8007EC84:
/* 8007EC84 88 1F 00 0C */ lbz r0, 0xc(r31)
/* 8007EC88 28 00 00 00 */ cmplwi r0, 0
/* 8007EC8C 41 82 00 18 */ beq lbl_8007ECA4
/* 8007EC90 80 1D 00 00 */ lwz r0, 0(r29)
/* 8007EC94 54 00 03 DF */ rlwinm. r0, r0, 0, 0xf, 0xf
/* 8007EC98 41 82 00 0C */ beq lbl_8007ECA4
lbl_8007EC9C:
/* 8007EC9C 38 60 00 01 */ li r3, 1
/* 8007ECA0 48 00 01 7C */ b lbl_8007EE1C
lbl_8007ECA4:
/* 8007ECA4 88 1F 00 07 */ lbz r0, 7(r31)
/* 8007ECA8 28 00 00 00 */ cmplwi r0, 0
/* 8007ECAC 41 82 00 18 */ beq lbl_8007ECC4
/* 8007ECB0 80 1D 00 00 */ lwz r0, 0(r29)
/* 8007ECB4 54 00 03 9D */ rlwinm. r0, r0, 0, 0xe, 0xe
/* 8007ECB8 41 82 00 0C */ beq lbl_8007ECC4
/* 8007ECBC 38 60 00 01 */ li r3, 1
/* 8007ECC0 48 00 01 5C */ b lbl_8007EE1C
lbl_8007ECC4:
/* 8007ECC4 88 1F 00 08 */ lbz r0, 8(r31)
/* 8007ECC8 28 00 00 00 */ cmplwi r0, 0
/* 8007ECCC 41 82 00 18 */ beq lbl_8007ECE4
/* 8007ECD0 80 1D 00 00 */ lwz r0, 0(r29)
/* 8007ECD4 54 00 02 11 */ rlwinm. r0, r0, 0, 8, 8
/* 8007ECD8 41 82 00 0C */ beq lbl_8007ECE4
/* 8007ECDC 38 60 00 01 */ li r3, 1
/* 8007ECE0 48 00 01 3C */ b lbl_8007EE1C
lbl_8007ECE4:
/* 8007ECE4 88 1F 00 09 */ lbz r0, 9(r31)
/* 8007ECE8 28 00 00 00 */ cmplwi r0, 0
/* 8007ECEC 41 82 00 18 */ beq lbl_8007ED04
/* 8007ECF0 80 1D 00 00 */ lwz r0, 0(r29)
/* 8007ECF4 54 00 03 19 */ rlwinm. r0, r0, 0, 0xc, 0xc
/* 8007ECF8 41 82 00 0C */ beq lbl_8007ED04
/* 8007ECFC 38 60 00 01 */ li r3, 1
/* 8007ED00 48 00 01 1C */ b lbl_8007EE1C
lbl_8007ED04:
/* 8007ED04 88 1F 00 0A */ lbz r0, 0xa(r31)
/* 8007ED08 28 00 00 00 */ cmplwi r0, 0
/* 8007ED0C 41 82 00 18 */ beq lbl_8007ED24
/* 8007ED10 80 1D 00 00 */ lwz r0, 0(r29)
/* 8007ED14 54 00 02 D7 */ rlwinm. r0, r0, 0, 0xb, 0xb
/* 8007ED18 41 82 00 0C */ beq lbl_8007ED24
/* 8007ED1C 38 60 00 01 */ li r3, 1
/* 8007ED20 48 00 00 FC */ b lbl_8007EE1C
lbl_8007ED24:
/* 8007ED24 88 1F 00 0B */ lbz r0, 0xb(r31)
/* 8007ED28 28 00 00 00 */ cmplwi r0, 0
/* 8007ED2C 41 82 00 18 */ beq lbl_8007ED44
/* 8007ED30 80 1D 00 00 */ lwz r0, 0(r29)
/* 8007ED34 54 00 00 43 */ rlwinm. r0, r0, 0, 1, 1
/* 8007ED38 41 82 00 0C */ beq lbl_8007ED44
/* 8007ED3C 38 60 00 01 */ li r3, 1
/* 8007ED40 48 00 00 DC */ b lbl_8007EE1C
lbl_8007ED44:
/* 8007ED44 80 1D 00 04 */ lwz r0, 4(r29)
/* 8007ED48 54 00 C7 3E */ rlwinm r0, r0, 0x18, 0x1c, 0x1f
/* 8007ED4C 2C 00 00 08 */ cmpwi r0, 8
/* 8007ED50 40 82 00 1C */ bne lbl_8007ED6C
/* 8007ED54 7F E3 FB 78 */ mr r3, r31
/* 8007ED58 4B FF A1 AD */ bl ChkNoHorse__16dBgS_PolyPassChkFv
/* 8007ED5C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8007ED60 41 82 00 0C */ beq lbl_8007ED6C
/* 8007ED64 38 60 00 01 */ li r3, 1
/* 8007ED68 48 00 00 B4 */ b lbl_8007EE1C
lbl_8007ED6C:
/* 8007ED6C 80 1D 00 04 */ lwz r0, 4(r29)
/* 8007ED70 54 00 C7 3E */ rlwinm r0, r0, 0x18, 0x1c, 0x1f
/* 8007ED74 2C 00 00 09 */ cmpwi r0, 9
/* 8007ED78 40 82 00 5C */ bne lbl_8007EDD4
/* 8007ED7C 7F E3 FB 78 */ mr r3, r31
/* 8007ED80 4B FF A1 85 */ bl ChkNoHorse__16dBgS_PolyPassChkFv
/* 8007ED84 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8007ED88 41 82 00 0C */ beq lbl_8007ED94
/* 8007ED8C 38 60 00 01 */ li r3, 1
/* 8007ED90 48 00 00 8C */ b lbl_8007EE1C
lbl_8007ED94:
/* 8007ED94 88 1F 00 0C */ lbz r0, 0xc(r31)
/* 8007ED98 28 00 00 00 */ cmplwi r0, 0
/* 8007ED9C 41 82 00 38 */ beq lbl_8007EDD4
/* 8007EDA0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8007EDA4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8007EDA8 80 63 5D B8 */ lwz r3, 0x5db8(r3)
/* 8007EDAC 28 03 00 00 */ cmplwi r3, 0
/* 8007EDB0 41 82 00 24 */ beq lbl_8007EDD4
/* 8007EDB4 7F C4 F3 78 */ mr r4, r30
/* 8007EDB8 39 83 18 B0 */ addi r12, r3, 0x18b0
/* 8007EDBC 48 2E 32 C9 */ bl __ptmf_scall
/* 8007EDC0 60 00 00 00 */ nop
/* 8007EDC4 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8007EDC8 40 82 00 0C */ bne lbl_8007EDD4
/* 8007EDCC 38 60 00 01 */ li r3, 1
/* 8007EDD0 48 00 00 4C */ b lbl_8007EE1C
lbl_8007EDD4:
/* 8007EDD4 88 1F 00 0D */ lbz r0, 0xd(r31)
/* 8007EDD8 28 00 00 00 */ cmplwi r0, 0
/* 8007EDDC 41 82 00 1C */ beq lbl_8007EDF8
/* 8007EDE0 80 1D 00 00 */ lwz r0, 0(r29)
/* 8007EDE4 54 00 47 3E */ rlwinm r0, r0, 8, 0x1c, 0x1f
/* 8007EDE8 2C 00 00 07 */ cmpwi r0, 7
/* 8007EDEC 40 82 00 0C */ bne lbl_8007EDF8
/* 8007EDF0 38 60 00 01 */ li r3, 1
/* 8007EDF4 48 00 00 28 */ b lbl_8007EE1C
lbl_8007EDF8:
/* 8007EDF8 88 1F 00 0E */ lbz r0, 0xe(r31)
/* 8007EDFC 28 00 00 00 */ cmplwi r0, 0
/* 8007EE00 41 82 00 18 */ beq lbl_8007EE18
/* 8007EE04 80 1D 00 04 */ lwz r0, 4(r29)
/* 8007EE08 54 00 01 CF */ rlwinm. r0, r0, 0, 7, 7
/* 8007EE0C 41 82 00 0C */ beq lbl_8007EE18
/* 8007EE10 38 60 00 01 */ li r3, 1
/* 8007EE14 48 00 00 08 */ b lbl_8007EE1C
lbl_8007EE18:
/* 8007EE18 38 60 00 00 */ li r3, 0
lbl_8007EE1C:
/* 8007EE1C 39 61 00 20 */ addi r11, r1, 0x20
/* 8007EE20 48 2E 34 09 */ bl _restgpr_29
/* 8007EE24 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8007EE28 7C 08 03 A6 */ mtlr r0
/* 8007EE2C 38 21 00 20 */ addi r1, r1, 0x20
/* 8007EE30 4E 80 00 20 */ blr
@@ -1,79 +0,0 @@
lbl_8001BCFC:
/* 8001BCFC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8001BD00 7C 08 02 A6 */ mflr r0
/* 8001BD04 90 01 00 24 */ stw r0, 0x24(r1)
/* 8001BD08 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8001BD0C 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8001BD10 7C 7E 1B 78 */ mr r30, r3
/* 8001BD14 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8001BD18 38 C4 61 C0 */ addi r6, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8001BD1C 83 E6 5F 54 */ lwz r31, 0x5f54(r6)
/* 8001BD20 54 65 06 3E */ clrlwi r5, r3, 0x18
/* 8001BD24 28 05 00 FF */ cmplwi r5, 0xff
/* 8001BD28 40 82 00 08 */ bne lbl_8001BD30
/* 8001BD2C 48 00 00 D0 */ b lbl_8001BDFC
lbl_8001BD30:
/* 8001BD30 A0 86 00 00 */ lhz r4, 0(r6)
/* 8001BD34 A0 06 00 02 */ lhz r0, 2(r6)
/* 8001BD38 1C 60 00 64 */ mulli r3, r0, 0x64
/* 8001BD3C 38 00 00 05 */ li r0, 5
/* 8001BD40 7C 04 03 D6 */ divw r0, r4, r0
/* 8001BD44 54 00 16 3A */ rlwinm r0, r0, 2, 0x18, 0x1d
/* 8001BD48 7C 03 03 D6 */ divw r0, r3, r0
/* 8001BD4C 54 00 06 3E */ clrlwi r0, r0, 0x18
/* 8001BD50 2C 05 00 AA */ cmpwi r5, 0xaa
/* 8001BD54 41 82 00 38 */ beq lbl_8001BD8C
/* 8001BD58 40 80 00 1C */ bge lbl_8001BD74
/* 8001BD5C 2C 05 00 A0 */ cmpwi r5, 0xa0
/* 8001BD60 41 82 00 2C */ beq lbl_8001BD8C
/* 8001BD64 40 80 00 74 */ bge lbl_8001BDD8
/* 8001BD68 2C 05 00 96 */ cmpwi r5, 0x96
/* 8001BD6C 41 82 00 20 */ beq lbl_8001BD8C
/* 8001BD70 48 00 00 68 */ b lbl_8001BDD8
lbl_8001BD74:
/* 8001BD74 2C 05 00 BE */ cmpwi r5, 0xbe
/* 8001BD78 41 82 00 14 */ beq lbl_8001BD8C
/* 8001BD7C 40 80 00 5C */ bge lbl_8001BDD8
/* 8001BD80 2C 05 00 B4 */ cmpwi r5, 0xb4
/* 8001BD84 41 82 00 08 */ beq lbl_8001BD8C
/* 8001BD88 48 00 00 50 */ b lbl_8001BDD8
lbl_8001BD8C:
/* 8001BD8C 28 00 00 50 */ cmplwi r0, 0x50
/* 8001BD90 40 80 00 48 */ bge lbl_8001BDD8
/* 8001BD94 28 00 00 3C */ cmplwi r0, 0x3c
/* 8001BD98 41 80 00 10 */ blt lbl_8001BDA8
/* 8001BD9C 38 05 00 01 */ addi r0, r5, 1
/* 8001BDA0 54 1E 06 3E */ clrlwi r30, r0, 0x18
/* 8001BDA4 48 00 00 34 */ b lbl_8001BDD8
lbl_8001BDA8:
/* 8001BDA8 28 00 00 28 */ cmplwi r0, 0x28
/* 8001BDAC 41 80 00 10 */ blt lbl_8001BDBC
/* 8001BDB0 38 05 00 02 */ addi r0, r5, 2
/* 8001BDB4 54 1E 06 3E */ clrlwi r30, r0, 0x18
/* 8001BDB8 48 00 00 20 */ b lbl_8001BDD8
lbl_8001BDBC:
/* 8001BDBC 28 00 00 14 */ cmplwi r0, 0x14
/* 8001BDC0 41 80 00 10 */ blt lbl_8001BDD0
/* 8001BDC4 38 05 00 03 */ addi r0, r5, 3
/* 8001BDC8 54 1E 06 3E */ clrlwi r30, r0, 0x18
/* 8001BDCC 48 00 00 0C */ b lbl_8001BDD8
lbl_8001BDD0:
/* 8001BDD0 38 05 00 04 */ addi r0, r5, 4
/* 8001BDD4 54 1E 06 3E */ clrlwi r30, r0, 0x18
lbl_8001BDD8:
/* 8001BDD8 C0 22 82 28 */ lfs f1, lit_5584(r2)
/* 8001BDDC 48 24 BB 79 */ bl cM_rndF__Ff
/* 8001BDE0 FC 00 08 1E */ fctiwz f0, f1
/* 8001BDE4 D8 01 00 08 */ stfd f0, 8(r1)
/* 8001BDE8 80 61 00 0C */ lwz r3, 0xc(r1)
/* 8001BDEC 57 C0 25 36 */ rlwinm r0, r30, 4, 0x14, 0x1b
/* 8001BDF0 7C 1F 02 14 */ add r0, r31, r0
/* 8001BDF4 7C 60 1A 14 */ add r3, r0, r3
/* 8001BDF8 88 63 00 10 */ lbz r3, 0x10(r3)
lbl_8001BDFC:
/* 8001BDFC 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8001BE00 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8001BE04 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8001BE08 7C 08 03 A6 */ mtlr r0
/* 8001BE0C 38 21 00 20 */ addi r1, r1, 0x20
/* 8001BE10 4E 80 00 20 */ blr
@@ -1,22 +0,0 @@
lbl_8001DC68:
/* 8001DC68 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8001DC6C 7C 08 02 A6 */ mflr r0
/* 8001DC70 90 01 00 14 */ stw r0, 0x14(r1)
/* 8001DC74 7C 67 1B 78 */ mr r7, r3
/* 8001DC78 7C 80 23 78 */ mr r0, r4
/* 8001DC7C 7C A6 2B 78 */ mr r6, r5
/* 8001DC80 3C 60 80 3F */ lis r3, mLineCheck__11fopAcM_lc_c@ha /* 0x803F1C48@ha */
/* 8001DC84 38 63 1C 48 */ addi r3, r3, mLineCheck__11fopAcM_lc_c@l /* 0x803F1C48@l */
/* 8001DC88 7C E4 3B 78 */ mr r4, r7
/* 8001DC8C 7C 05 03 78 */ mr r5, r0
/* 8001DC90 48 05 A0 D5 */ bl Set__11dBgS_LinChkFPC4cXyzPC4cXyzPC10fopAc_ac_c
/* 8001DC94 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8001DC98 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 8001DC9C 38 63 0F 38 */ addi r3, r3, 0xf38
/* 8001DCA0 3C 80 80 3F */ lis r4, mLineCheck__11fopAcM_lc_c@ha /* 0x803F1C48@ha */
/* 8001DCA4 38 84 1C 48 */ addi r4, r4, mLineCheck__11fopAcM_lc_c@l /* 0x803F1C48@l */
/* 8001DCA8 48 05 67 0D */ bl LineCross__4cBgSFP11cBgS_LinChk
/* 8001DCAC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8001DCB0 7C 08 03 A6 */ mtlr r0
/* 8001DCB4 38 21 00 10 */ addi r1, r1, 0x10
/* 8001DCB8 4E 80 00 20 */ blr
+2 -4
View File
@@ -444,8 +444,6 @@ struct J2DAlphaCompInfo {
/* 0x7 */ u8 field_0x7;
};
extern u16 j2dDefaultAlphaCmp;
inline u16 J2DCalcAlphaCmp(s32 param_1, u32 param_2, u32 param_3) {
return ((param_1) << 5) | ((param_2 & 0xff) << 3) | (param_3 & 0xff);
}
@@ -486,7 +484,7 @@ struct J2DBlendInfo {
/* 0x3 */ u8 mOp;
};
extern J2DBlendInfo j2dDefaultBlendInfo;
extern const J2DBlendInfo j2dDefaultBlendInfo;
struct J2DBlend {
J2DBlend() { mBlendInfo = j2dDefaultBlendInfo; }
@@ -595,7 +593,7 @@ struct J2DColorChanInfo {
};
inline u8 J2DCalcColorChanID(u8 param_1) { return param_1; }
extern J2DColorChanInfo j2dDefaultColorChanInfo;
extern const J2DColorChanInfo j2dDefaultColorChanInfo;
class J2DColorChan {
public:
+12 -1
View File
@@ -2,6 +2,7 @@
#define J2DTEVS_H
#include "dolphin/gx/GXEnum.h"
#include "dolphin/gx/GXStruct.h"
#include "dolphin/mtx/mtxvec.h"
struct J2DTextureSRTInfo {
@@ -244,7 +245,7 @@ struct J2DTevOrderInfo {
}
};
extern J2DTevOrderInfo j2dDefaultTevOrderInfoNull;
extern const J2DTevOrderInfo j2dDefaultTevOrderInfoNull;
class J2DTevOrder {
public:
@@ -294,6 +295,8 @@ struct J2DTevSwapModeInfo {
/* 0x3 */ u8 field_0x3;
};
extern const J2DTevSwapModeInfo j2dDefaultTevSwapMode;
class J2DTevStage {
public:
/* 802F4110 */ J2DTevStage(J2DTevStageInfo const&);
@@ -455,4 +458,12 @@ private:
/* 0x0 */ u8 field_0x0;
};
extern const GXColor j2dDefaultColInfo;
extern const GXColorS10 j2dDefaultTevColor;
extern const GXColor j2dDefaultTevKColor;
extern const J2DTevOrderInfo j2dDefaultTevOrderInfoNull;
extern const u8 j2dDefaultPEBlockDither;
extern const u8 data_804561AC;
extern const u16 j2dDefaultAlphaCmp;
#endif /* J2DTEVS_H */
+1 -1
View File
@@ -7,7 +7,7 @@ struct cBgD_Vtx_t : public Vec {};
class cBgS_GrpPassChk {
public:
virtual ~cBgS_GrpPassChk();
virtual ~cBgS_GrpPassChk() {}
};
class cBgS_PolyPassChk;
@@ -38,6 +38,7 @@ public:
bool GetPreWallChk() const { return mPreWallChk; }
bool GetPreGroundChk() const { return mPreGroundChk; }
bool GetPreRoofChk() const { return mPreRoofChk; }
cXyz* GetStartP() { return &mLin.GetStartP(); }
};
#endif /* C_BG_S_LIN_CHK_H */
+1
View File
@@ -26,6 +26,7 @@ public:
bool Cross(cM3dGCyl const* cyl, cXyz* xyz) const { return cM3d_Cross_CpsCyl(*this, *cyl, xyz); }
bool Cross(cM3dGSph const* sph, cXyz* xyz) const { return cM3d_Cross_CpsSph(*this, *sph, xyz); }
void SetR(f32 r) { mRadius = r; }
f32 GetR() const { return mRadius; }
}; // Size = 0x20
+9 -3
View File
@@ -32,10 +32,10 @@ public:
void setCode(sBgPc&);
u32 getHorseNoEntry() const { return m_code.code0 >> 0x15 & 1; }
u32 getSpl() const { return m_code.code0 >> 0x18 & 0xF; }
s32 getSpl() const { return m_code.code0 >> 0x18 & 0xF; }
u32 getMagnet() const { return m_code.code0 >> 0x1C & 0x3; }
u32 getMonkeyBars() const { return m_code.code0 >> 0x1F; }
u32 getWallCode() const { return m_code.code1 >> 0x8 & 0xF; }
s32 getWallCode() const { return m_code.code1 >> 0x8 & 0xF; }
u32 getAtt0Code() const { return m_code.code1 >> 0xC & 0xF; }
u32 getAtt1Code() const { return m_code.code1 >> 0x10 & 0x7; }
u32 getGroundCode() const { return m_code.code1 >> 0x13 & 0x1F; }
@@ -61,8 +61,14 @@ public:
u8 getRoomPathPnt() const { return m_code.code2 >> 0x18; }
u8 getRoomInf() const { return m_code.code4; }
u8 getSnd() const { return m_code.code4 >> 0xB; }
u32 maskNrm() { return m_code.code4 & 0x100; }
// BUG: Seems like this uses the same mask as maskNrm
u32 getWtr() { return m_code.code4 & 0x100; }
u32 getObjThrough() { return m_code.code0 & 0x4000; }
u32 getCamThrough() { return m_code.code0 & 0x8000; }
u32 getLinkThrough() { return m_code.code0 & 0x10000; }
private:
/* 0x0 */ sBgPc m_code;
};
+4 -5
View File
@@ -2,8 +2,7 @@
#define D_BG_D_BG_PLC_H
#include "dolphin/types.h"
struct sBgPc;
#include "d/bg/d_bg_pc.h"
enum {
/* 0x14 */ ZELDA_CODE_SIZE = 0x14
@@ -13,7 +12,7 @@ struct PLC {
/* 0x0 */ u32 magic;
/* 0x4 */ u16 m_code_size;
/* 0x6 */ u16 m_num;
/* 0x8 */ sBgPc* field_0x8;
/* 0x8 */ sBgPc field_0x8[0];
};
class dBgPlc {
@@ -21,11 +20,11 @@ public:
/* 80074074 */ dBgPlc();
/* 80074080 */ ~dBgPlc();
/* 800740BC */ void setBase(void*);
/* 800740C4 */ void getCode(int, sBgPc**) const;
/* 800740C4 */ sBgPc* getCode(int, sBgPc**) const;
/* 800740DC */ u32 getGrpCode(int) const;
private:
/* 0x00 */ void* m_base;
/* 0x00 */ PLC* m_base;
};
#endif /* D_BG_D_BG_PLC_H */
+1 -1
View File
@@ -11,7 +11,7 @@ struct dBgPc;
struct dBgS_CaptPoly;
struct KC_PrismData {
/* 0x0 */ u16 field_0x0[2];
/* 0x0 */ f32 field_0x0;
/* 0x4 */ u16 field_0x4;
/* 0x6 */ u16 field_0x6;
/* 0x8 */ u16 field_0x8;
+2 -2
View File
@@ -171,7 +171,7 @@ public:
void offStateFlg0(daHorse_FLG0 flag) { mStateFlg0 &= ~flag; }
void onEndResetStateFlg0(daHorse_ERFLG0 i_flag) { mEndResetStateFlg0 |= i_flag;}
void offNoDrawWait() { offStateFlg0(NO_DRAW_WAIT); }
int checkSpecialWallHit(const cXyz& param_0) { return (this->*mpCheckSpecialWallHitFn)(param_0); }
bool checkSpecialWallHit(const cXyz& param_0) { return (this->*mpCheckSpecialWallHitFn)(param_0); }
MtxP getSaddleMtx() { return field_0x570->i_getAnmMtx(21); }
MtxP getRootMtx() { return field_0x570->i_getAnmMtx(0); }
f32 getAnmFrameMax(int i_idx) const { return field_0x5b0[i_idx].getEnd(); }
@@ -279,7 +279,7 @@ public:
/* 0x17C4 */ cXyz mDemoPos0;
/* 0x17D0 */ u8 field_0x17d0[0x18A4 - 0x17D0];
/* 0x18A4 */ int (daHorse_c::*mpProcFn)();
/* 0x18B0 */ int (daHorse_c::*mpCheckSpecialWallHitFn)(const cXyz&);
/* 0x18B0 */ bool (daHorse_c::*mpCheckSpecialWallHitFn)(const cXyz&);
/* 0x18BC */ void (daHorse_c::*mpSetReinPosHandFn)(int);
/* 0x18C8 */ void (daHorse_c::*mpSetReinPosNormalFn)();
/* 0x18D4 */ int (daHorse_c::*mpCallHorseFn)(const cXyz*);
+1 -9
View File
@@ -353,14 +353,6 @@ extern "C" extern J2DTexCoordInfo const j2dDefaultTexCoordInfo[8];
extern "C" extern J2DTevStageInfo const j2dDefaultTevStageInfo;
extern "C" extern J2DIndTevStageInfo const j2dDefaultIndTevStageInfo;
extern "C" extern void* __vt__11J2DIndBlock[14];
extern "C" extern GXColor j2dDefaultColInfo;
extern "C" extern J2DTevOrderInfo j2dDefaultTevOrderInfoNull;
extern "C" extern J2DGXColorS10 j2dDefaultTevColor;
extern "C" extern GXColor j2dDefaultTevKColor;
extern "C" extern J2DTevSwapModeInfo j2dDefaultTevSwapMode;
extern "C" extern u8 data_804561A4;
extern "C" extern J2DColorChanInfo j2dDefaultColorChanInfo;
extern "C" extern u8 data_804561AC;
//
// Declarations:
@@ -2566,7 +2558,7 @@ void J2DIndBlockFull::setGX() {
void J2DPEBlock::initialize() {
mAlphaComp = J2DAlphaComp();
mBlend.setBlendInfo(j2dDefaultBlendInfo);
mDither = data_804561A4;
mDither = j2dDefaultPEBlockDither;
}
/* 802F1840-802F18A0 2EC180 0060+00 0/0 1/1 0/0 .text setGX__10J2DPEBlockFv */
@@ -82,7 +82,6 @@ extern "C" void _savegpr_29();
extern "C" void _restgpr_19();
extern "C" void _restgpr_29();
extern "C" u8 mDataManage__9J2DScreen[4 + 4 /* padding */];
extern "C" extern u8 j2dDefaultTevSwapMode[4];
//
// Declarations:
+28 -141
View File
@@ -1,66 +1,13 @@
//
// Generated By: dol2asm
// Translation Unit: J2DTevs
// J2DTevs
//
#include "JSystem/J2DGraph/J2DTevs.h"
#include "JSystem/J2DGraph/J2DMatBlock.h"
#include "JSystem/JUtility/TColor.h"
#include "math.h"
#include "dol2asm.h"
#include "dolphin/gx/GX.h"
//
// Forward References:
//
extern "C" void load__9J2DTexMtxFUl();
extern "C" void calc__9J2DTexMtxFv();
extern "C" void getTextureMtx__9J2DTexMtxFRC17J2DTextureSRTInfo3VecPA4_f();
extern "C" void getTextureMtxMaya__9J2DTexMtxFRC17J2DTextureSRTInfoPA4_f();
extern "C" void load__14J2DIndTevStageFUc();
extern "C" void load__12J2DIndTexMtxFUc();
extern "C" void load__19J2DIndTexCoordScaleFUc();
extern "C" void load__14J2DIndTexOrderFUc();
extern "C" bool getTevSwapModeTable__11J2DTevBlockFUl();
extern "C" bool getTevStage__11J2DTevBlockFUl();
extern "C" bool getTevColor__11J2DTevBlockFUl();
extern "C" bool getTevOrder__11J2DTevBlockFUl();
extern "C" bool getTevKAlphaSel__11J2DTevBlockFUl();
extern "C" bool getTevKColorSel__11J2DTevBlockFUl();
extern "C" bool getTevKColor__11J2DTevBlockFUl();
extern "C" void getFontNo__11J2DTevBlockCFv();
extern "C" void getTexNo__11J2DTevBlockCFUl();
extern "C" bool getTevStageNum__11J2DTevBlockCFv();
extern "C" bool getIndTevStage__11J2DTevBlockFUl();
extern "C" bool getIndTexCoordScale__11J2DIndBlockFUl();
extern "C" bool getIndTexMtx__11J2DIndBlockFUl();
extern "C" bool getIndTexOrder__11J2DIndBlockFUl();
extern "C" bool getIndTexStageNum__11J2DIndBlockCFv();
extern "C" extern J2DTexCoordInfo const j2dDefaultTexCoordInfo[8];
extern "C" extern J2DTexMtxInfo const j2dDefaultTexMtxInfo;
extern "C" extern J2DIndTexMtxInfo const j2dDefaultIndTexMtxInfo;
extern "C" extern J2DTevStageInfo const j2dDefaultTevStageInfo;
extern "C" extern GXColor j2dDefaultColInfo;
extern "C" extern GXColorS10 j2dDefaultTevColor;
extern "C" extern GXColor j2dDefaultTevKColor;
extern "C" extern J2DTevSwapModeInfo j2dDefaultTevSwapMode;
extern "C" extern J2DBlendInfo j2dDefaultBlendInfo;
extern "C" extern u8 data_804561A4[4];
extern "C" extern J2DColorChanInfo j2dDefaultColorChanInfo;
extern "C" extern u8 data_804561AC;
//
// External References:
//
extern "C" void _savegpr_29();
extern "C" void _restgpr_29();
//
// Declarations:
//
/* 802E9C90-802E9CC4 2E45D0 0034+00 0/0 1/1 0/0 .text load__9J2DTexMtxFUl */
void J2DTexMtx::load(u32 mtxIdx) {
GXLoadTexMtxImm(mTexMtx, mtxIdx * 3 + GX_TEXMTX0, mInfo.getTexMtxType());
@@ -75,99 +22,45 @@ void J2DTexMtx::calc() {
}
}
/* ############################################################################################## */
/* 80456168-8045616C 004768 0004+00 2/2 0/0 0/0 .sdata2 @1488 */
SECTION_SDATA2 static f32 lit_1488 = 3.1415927410125732f;
/* 8045616C-80456170 00476C 0004+00 2/2 0/0 0/0 .sdata2 @1489 */
SECTION_SDATA2 static f32 lit_1489 = 180.0f;
/* 80456170-80456174 004770 0004+00 2/2 0/0 0/0 .sdata2 @1490 */
SECTION_SDATA2 static u8 lit_1490[4] = {
0x00,
0x00,
0x00,
0x00,
};
/* 80456174-80456178 004774 0004+00 2/2 0/0 0/0 .sdata2 @1491 */
SECTION_SDATA2 static f32 lit_1491 = 1.0f;
/* 802E9D2C-802E9EBC 2E466C 0190+00 1/1 0/0 0/0 .text
* getTextureMtx__9J2DTexMtxFRC17J2DTextureSRTInfo3VecPA4_f */
// regalloc
#ifdef NONMATCHING
void J2DTexMtx::getTextureMtx(J2DTextureSRTInfo const& param_0, Vec param_1, Mtx param_2) {
float f31 = (param_0.field_0x8 * M_PI) / 180.0f;
param_2[0][0] = param_0.field_0x0 * i_cosf(f31);
param_2[0][1] = -param_0.field_0x0 * i_sinf(f31);
param_2[0][2] = 0.0f;
float f30 = i_sinf(f31);
float tmp = i_cosf(f31);
param_2[0][3] = -param_0.field_0x0 * tmp * param_1.x + param_1.y * (param_0.field_0x0 * f30) +
param_0.field_0xc + param_1.x;
param_2[0][3] = -param_0.field_0x0 * i_cosf(f31) * param_1.x + param_1.y * (param_0.field_0x0 * i_sinf(f31)) +
param_1.x + param_0.field_0xc;
param_2[1][0] = param_0.field_0x4 * i_sinf(f31);
param_2[1][1] = param_0.field_0x4 * i_cosf(f31);
param_2[1][2] = 0.0f;
f30 = i_cosf(f31);
tmp = i_sinf(f31);
param_2[1][3] = -param_0.field_0x4 * tmp * param_1.x - param_1.y * (param_0.field_0x4 * f30) +
param_0.field_0x10 + param_1.y;
param_2[1][3] = -param_0.field_0x4 * i_sinf(f31) * param_1.x - param_1.y * (param_0.field_0x4 * i_cosf(f31)) +
param_1.y + param_0.field_0x10;
param_2[2][0] = 0.0f;
param_2[2][1] = 0.0f;
param_2[2][2] = 1.0f;
param_2[2][3] = 0.0f;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J2DTexMtx::getTextureMtx(J2DTextureSRTInfo const& param_0, Vec param_1, Mtx param_2) {
nofralloc
#include "asm/JSystem/J2DGraph/J2DTevs/getTextureMtx__9J2DTexMtxFRC17J2DTextureSRTInfo3VecPA4_f.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 80456178-8045617C 004778 0004+00 1/1 0/0 0/0 .sdata2 @1507 */
SECTION_SDATA2 static f32 lit_1507 = 0.5f;
/* 802E9EBC-802EA044 2E47FC 0188+00 1/1 0/0 0/0 .text
* getTextureMtxMaya__9J2DTexMtxFRC17J2DTextureSRTInfoPA4_f */
// regswap
#ifdef NONMATCHING
void J2DTexMtx::getTextureMtxMaya(J2DTextureSRTInfo const& param_0, Mtx param_1) {
float f31 = (param_0.field_0x8 * M_PI) / 180.0f;
param_1[0][0] = param_0.field_0x0 * i_cosf(f31);
param_1[0][1] = param_0.field_0x4 * i_sinf(f31);
param_1[0][2] = 0.0f;
float f30 = i_sinf(f31);
float tmp = i_cosf(f31);
param_1[0][3] = (param_0.field_0xc - 0.5f) * tmp -
(param_0.field_0x10 - 0.5f + param_0.field_0x4) * f30 + 0.5f;
param_1[0][3] = (param_0.field_0xc - 0.5f) * i_cosf(f31) -
(param_0.field_0x10 - 0.5f + param_0.field_0x4) * i_sinf(f31) + 0.5f;
param_1[1][0] = -param_0.field_0x0 * i_sinf(f31);
param_1[1][1] = param_0.field_0x4 * i_cosf(f31);
param_1[1][2] = 0.0f;
f30 = i_cosf(f31);
tmp = i_sinf(f31);
param_1[1][3] = -(param_0.field_0xc - 0.5f) * tmp -
(param_0.field_0x10 - 0.5f + param_0.field_0x4) * f30 + 0.5f;
param_1[1][3] = -(param_0.field_0xc - 0.5f) * i_sinf(f31) -
(param_0.field_0x10 - 0.5f + param_0.field_0x4) * i_cosf(f31) + 0.5f;
param_1[2][0] = 0.0f;
param_1[2][1] = 0.0f;
param_1[2][2] = 1.0f;
param_1[2][3] = 0.0f;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J2DTexMtx::getTextureMtxMaya(J2DTextureSRTInfo const& param_0, Mtx param_1) {
nofralloc
#include "asm/JSystem/J2DGraph/J2DTevs/getTextureMtxMaya__9J2DTexMtxFRC17J2DTextureSRTInfoPA4_f.s"
}
#pragma pop
#endif
/* 802EA044-802EA098 2E4984 0054+00 0/0 5/5 0/0 .text load__14J2DIndTevStageFUc */
void J2DIndTevStage::load(u8 tevStage) {
@@ -271,7 +164,7 @@ u8 J2DIndBlock::getIndTexStageNum() const {
/* ############################################################################################## */
/* 803A1B80-803A1BA0 02E1E0 0020+00 0/0 3/3 0/0 .rodata j2dDefaultTexCoordInfo */
extern J2DTexCoordInfo const j2dDefaultTexCoordInfo[8] = {
J2DTexCoordInfo const j2dDefaultTexCoordInfo[8] = {
{GX_TG_MTX2x4, GX_TG_TEX0, GX_IDENTITY, 0}, {GX_TG_MTX2x4, GX_TG_TEX1, GX_IDENTITY, 0},
{GX_TG_MTX2x4, GX_TG_TEX2, GX_IDENTITY, 0}, {GX_TG_MTX2x4, GX_TG_TEX3, GX_IDENTITY, 0},
{GX_TG_MTX2x4, GX_TG_TEX4, GX_IDENTITY, 0}, {GX_TG_MTX2x4, GX_TG_TEX5, GX_IDENTITY, 0},
@@ -279,11 +172,11 @@ extern J2DTexCoordInfo const j2dDefaultTexCoordInfo[8] = {
};
/* 803A1BA0-803A1BC4 02E200 0024+00 0/0 3/3 0/0 .rodata j2dDefaultTexMtxInfo */
extern J2DTexMtxInfo const j2dDefaultTexMtxInfo = {1, 1, 255, 255, 0.5f, 0.5f,
0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f};
J2DTexMtxInfo const j2dDefaultTexMtxInfo = {1, 1, 255, 255, 0.5f, 0.5f,
0.0f, 1.0f, 1.0f, 0.0f, 0.0f, 0.0f};
/* 803A1BC4-803A1BE0 02E224 001C+00 0/0 3/3 0/0 .rodata j2dDefaultIndTexMtxInfo */
extern J2DIndTexMtxInfo const j2dDefaultIndTexMtxInfo = {{0.5f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f}, 1};
J2DIndTexMtxInfo const j2dDefaultIndTexMtxInfo = {{0.5f, 0.0f, 0.0f, 0.0f, 0.5f, 0.0f}, 1};
/* 803A1BE0-803A1BF4 02E240 0014+00 0/0 1/1 0/0 .rodata j2dDefaultTevStageInfo */
extern J2DTevStageInfo const j2dDefaultTevStageInfo = {
@@ -293,61 +186,55 @@ extern J2DTevStageInfo const j2dDefaultTevStageInfo = {
GX_TEVPREV};
/* 803A1BF4-803A1C00 02E254 000C+00 0/0 7/7 0/0 .rodata j2dDefaultIndTevStageInfo */
SECTION_RODATA extern const J2DIndTevStageInfo j2dDefaultIndTevStageInfo = {
extern const J2DIndTevStageInfo j2dDefaultIndTevStageInfo = {
GX_INDTEXSTAGE0, GX_ITB_NONE, GX_ITB_NONE, GX_ITM_OFF, GX_ITW_OFF,
GX_ITW_OFF, 0, 0, GX_ITBA_OFF,
};
COMPILER_STRIP_GATE(0x803A1BF4, &j2dDefaultIndTevStageInfo);
/* 8045617C-80456180 00477C 0004+00 0/0 1/1 0/0 .sdata2 j2dDefaultColInfo */
SECTION_SDATA2 extern GXColor j2dDefaultColInfo = {255, 255, 255, 255};
extern const GXColor j2dDefaultColInfo = {255, 255, 255, 255};
/* 80456180-80456184 004780 0004+00 0/0 7/7 0/0 .sdata2 j2dDefaultTevOrderInfoNull */
SECTION_SDATA2 extern J2DTevOrderInfo j2dDefaultTevOrderInfoNull = {
extern const J2DTevOrderInfo j2dDefaultTevOrderInfoNull = {
GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL, 0};
/* 80456184-80456188 004784 0002+02 0/0 3/3 0/0 .sdata2 j2dDefaultIndTexOrderNull */
SECTION_SDATA2 extern const J2DIndTexOrderInfo j2dDefaultIndTexOrderNull = {
extern const J2DIndTexOrderInfo j2dDefaultIndTexOrderNull = {
GX_TEXCOORD_NULL,
GX_TEXMAP_NULL,
};
/* 80456188-80456190 004788 0008+00 0/0 5/5 0/0 .sdata2 j2dDefaultTevColor */
SECTION_SDATA2 extern GXColorS10 j2dDefaultTevColor = {255, 255, 255, 255};
extern const GXColorS10 j2dDefaultTevColor = {255, 255, 255, 255};
/* 80456190-80456194 004790 0002+02 0/0 3/3 0/0 .sdata2 j2dDefaultIndTexCoordScaleInfo */
SECTION_SDATA2 extern const J2DIndTexCoordScaleInfo j2dDefaultIndTexCoordScaleInfo = {
extern const J2DIndTexCoordScaleInfo j2dDefaultIndTexCoordScaleInfo = {
GX_ITS_1,
GX_ITS_1,
};
/* 80456194-80456198 004794 0004+00 0/0 5/5 0/0 .sdata2 j2dDefaultTevKColor */
SECTION_SDATA2 extern GXColor j2dDefaultTevKColor = {255, 255, 255, 255};
extern const GXColor j2dDefaultTevKColor = {255, 255, 255, 255};
/* 80456198-8045619C 004798 0004+00 0/0 2/2 0/0 .sdata2 j2dDefaultTevSwapMode */
SECTION_SDATA2 extern J2DTevSwapModeInfo j2dDefaultTevSwapMode = {GX_TEV_SWAP0, GX_TEV_SWAP0, 0, 0};
extern const J2DTevSwapModeInfo j2dDefaultTevSwapMode = {GX_TEV_SWAP0, GX_TEV_SWAP0, 0, 0};
/* 8045619C-804561A0 00479C 0004+00 0/0 6/6 0/0 .sdata2 j2dDefaultTevSwapModeTable */
SECTION_SDATA2 extern const J2DTevSwapModeTableInfo j2dDefaultTevSwapModeTable = {
extern const J2DTevSwapModeTableInfo j2dDefaultTevSwapModeTable = {
GX_CH_RED, GX_CH_GREEN, GX_CH_BLUE, GX_CH_ALPHA};
/* 804561A0-804561A4 0047A0 0004+00 0/0 3/3 0/0 .sdata2 j2dDefaultBlendInfo */
SECTION_SDATA2 extern J2DBlendInfo j2dDefaultBlendInfo = {GX_BM_BLEND, GX_BL_SRC_ALPHA,
GX_BL_INV_SRC_ALPHA, GX_LO_NOOP};
extern const J2DBlendInfo j2dDefaultBlendInfo = {GX_BM_BLEND, GX_BL_SRC_ALPHA, GX_BL_INV_SRC_ALPHA,
GX_LO_NOOP};
/* 804561A4-804561A8 0047A4 0004+00 0/0 1/1 0/0 .sdata2 None */
SECTION_SDATA2 extern u8 data_804561A4[4] = {
0x00,
0x00,
0x00,
0x00,
};
extern const u8 j2dDefaultPEBlockDither = 0;
/* 804561A8-804561AC 0047A8 0004+00 0/0 3/3 0/0 .sdata2 j2dDefaultColorChanInfo */
SECTION_SDATA2 extern J2DColorChanInfo j2dDefaultColorChanInfo = {0, 3, 0, 0};
extern const J2DColorChanInfo j2dDefaultColorChanInfo = {0, 3, 0, 0};
/* 804561AC-804561AE 0047AC 0002+00 0/0 1/1 0/0 .sdata2 None */
SECTION_SDATA2 extern u8 data_804561AC = 0x1B;
extern const u8 data_804561AC = 0x1B;
/* 804561AE-804561B0 0047AE 0002+00 0/0 3/3 0/0 .sdata2 j2dDefaultAlphaCmp */
SECTION_SDATA2 extern u16 j2dDefaultAlphaCmp = 0x00E7;
extern const u16 j2dDefaultAlphaCmp = 0x00E7;
+31 -184
View File
@@ -1,110 +1,13 @@
//
// Generated By: dol2asm
// Translation Unit: J2DTextBoxEx
// J2DTextBoxEx
//
#include "JSystem/J2DGraph/J2DTextBoxEx.h"
#include "JSystem/J2DGraph/J2DPrint.h"
#include "JSystem/JSupport/JSURandomInputStream.h"
#include "JSystem/JUtility/JUTResFont.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Forward References:
//
extern "C" void __ct__12J2DTextBoxExFP7J2DPaneP20JSURandomInputStreamUlP11J2DMaterial();
extern "C" void __dt__12J2DTextBoxExFv();
extern "C" void drawSelf__12J2DTextBoxExFffPA3_A4_f();
extern "C" void draw__12J2DTextBoxExFff();
extern "C" void draw__12J2DTextBoxExFfff18J2DTextBoxHBinding();
extern "C" void setFont__12J2DTextBoxExFP7JUTFont();
extern "C" void getFont__12J2DTextBoxExCFv();
extern "C" void setTevOrder__12J2DTextBoxExFb();
extern "C" void setTevStage__12J2DTextBoxExFb();
extern "C" void setStage__12J2DTextBoxExFP11J2DTevStageQ212J2DTextBoxEx10stage_enum();
extern "C" void setBlack__12J2DTextBoxExFQ28JUtility6TColor();
extern "C" void setWhite__12J2DTextBoxExFQ28JUtility6TColor();
extern "C" void setBlackWhite__12J2DTextBoxExFQ28JUtility6TColorQ28JUtility6TColor();
extern "C" void getBlackWhite__12J2DTextBoxExCFPQ28JUtility6TColorPQ28JUtility6TColor();
extern "C" void isSetBlackWhite__12J2DTextBoxExCFQ28JUtility6TColorQ28JUtility6TColor();
extern "C" void getBlack__12J2DTextBoxExCFv();
extern "C" void getWhite__12J2DTextBoxExCFv();
extern "C" void setAlpha__12J2DTextBoxExFUc();
extern "C" void setCullBack__12J2DTextBoxExF11_GXCullMode();
extern "C" void rewriteAlpha__12J2DTextBoxExFv();
extern "C" void isUsed__12J2DTextBoxExFPC7ResFONT();
extern "C" void setAnimation__12J2DTextBoxExFP11J2DAnmColor();
extern "C" void setAnimation__12J2DTextBoxExFP19J2DAnmTextureSRTKey();
extern "C" void setAnimation__12J2DTextBoxExFP16J2DAnmTexPattern();
extern "C" void setAnimation__12J2DTextBoxExFP15J2DAnmTevRegKey();
extern "C" void setAnimation__12J2DTextBoxExFP20J2DAnmVisibilityFull();
extern "C" void animationPane__12J2DTextBoxExFPC15J2DAnmTransform();
extern "C" void setCullBack__12J2DTextBoxExFb();
extern "C" void isUsed__12J2DTextBoxExFPC7ResTIMG();
extern "C" void setAnimation__12J2DTextBoxExFP14J2DAnmVtxColor();
extern "C" void setAnimation__12J2DTextBoxExFP10J2DAnmBase();
extern "C" extern char const* const J2DTextBoxEx__stringBase0;
//
// External References:
//
extern "C" void calcMtx__7J2DPaneFv();
extern "C" void makeMatrix__7J2DPaneFff();
extern "C" void getMaterial__12J2DTextBoxExCFv();
extern "C" void setAnimation__12J2DTextBoxExFP15J2DAnmTransform();
extern "C" void* __nwa__FUl();
extern "C" void __dl__FPv();
extern "C" void read__14JSUInputStreamFPvl();
extern "C" void peek__20JSURandomInputStreamFPvl();
extern "C" void seek__20JSURandomInputStreamFl17JSUStreamSeekFrom();
extern "C" void setGX__11J2DMaterialFv();
extern "C" void setAnimation__11J2DMaterialFP11J2DAnmColor();
extern "C" void setAnimation__11J2DMaterialFP19J2DAnmTextureSRTKey();
extern "C" void setAnimation__11J2DMaterialFP16J2DAnmTexPattern();
extern "C" void setAnimation__11J2DMaterialFP15J2DAnmTevRegKey();
extern "C" void
__ct__8J2DPrintFP7JUTFontffQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColorQ28JUtility6TColor();
extern "C" void __dt__8J2DPrintFv();
extern "C" void locate__8J2DPrintFff();
extern "C" void print__8J2DPrintFffUcPCce();
extern "C" void printReturn__8J2DPrintFPCcff18J2DTextBoxHBinding18J2DTextBoxVBindingffUc();
extern "C" void move__7J2DPaneFff();
extern "C" void add__7J2DPaneFff();
extern "C" void search__7J2DPaneFUx();
extern "C" void searchUserInfo__7J2DPaneFUx();
extern "C" void isUsed__7J2DPaneFPC7ResTIMG();
extern "C" void isUsed__7J2DPaneFPC7ResFONT();
extern "C" void makeMatrix__7J2DPaneFffff();
extern "C" void setCullBack__7J2DPaneF11_GXCullMode();
extern "C" void makePaneExStream__7J2DPaneFP7J2DPaneP20JSURandomInputStream();
extern "C" void setAnimation__7J2DPaneFP10J2DAnmBase();
extern "C" void clearAnmTransform__7J2DPaneFv();
extern "C" void animationTransform__7J2DPaneFPC15J2DAnmTransform();
extern "C" void setVisibileAnimation__7J2DPaneFP20J2DAnmVisibilityFull();
extern "C" void setVtxColorAnimation__7J2DPaneFP14J2DAnmVtxColor();
extern "C" void animationPane__7J2DPaneFPC15J2DAnmTransform();
extern "C" void setAnimationVF__7J2DPaneFP20J2DAnmVisibilityFull();
extern "C" void setAnimationVC__7J2DPaneFP14J2DAnmVtxColor();
extern "C" void update__7J2DPaneFv();
extern "C" void __ct__10J2DTextBoxFv();
extern "C" void __dt__10J2DTextBoxFv();
extern "C" void setConnectParent__10J2DTextBoxFb();
extern "C" void drawSelf__10J2DTextBoxFff();
extern "C" void resize__10J2DTextBoxFff();
extern "C" s32 getTypeID__10J2DTextBoxCFv();
extern "C" void getVisibility__20J2DAnmVisibilityFullCFUsPUc();
extern "C" void _savegpr_25();
extern "C" void _savegpr_28();
extern "C" void _restgpr_25();
extern "C" void _restgpr_28();
//
// Declarations:
//
/* 803071E4-8030751C 301B24 0338+00 0/0 1/1 0/0 .text
* __ct__12J2DTextBoxExFP7J2DPaneP20JSURandomInputStreamUlP11J2DMaterial */
J2DTextBoxEx::J2DTextBoxEx(J2DPane* p_pane, JSURandomInputStream* p_stream, u32 param_2,
@@ -371,8 +274,6 @@ JUTFont* J2DTextBoxEx::getFont() const {
}
/* 80307E0C-80307EF0 30274C 00E4+00 1/1 0/0 0/0 .text setTevOrder__12J2DTextBoxExFb */
// Stack issue
#ifdef NONMATCHING
void J2DTextBoxEx::setTevOrder(bool param_0) {
u16 local_18[2];
if (!param_0) {
@@ -388,20 +289,11 @@ void J2DTextBoxEx::setTevOrder(bool param_0) {
info.mTexCoord = (local_18[i]) >> 8;
info.mTexMap = (local_18[i]) >> 8;
info.mColor = local_18[i] & 0xff;
mMaterial->getTevBlock()->setTevOrder(i, J2DTevOrder(info));
J2DTevOrder tevOrder = info;
mMaterial->getTevBlock()->setTevOrder(i, tevOrder);
}
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J2DTextBoxEx::setTevOrder(bool param_0) {
nofralloc
#include "asm/JSystem/J2DGraph/J2DTextBoxEx/setTevOrder__12J2DTextBoxExFb.s"
}
#pragma pop
#endif
/* 80307EF0-80307F94 302830 00A4+00 1/1 0/0 0/0 .text setTevStage__12J2DTextBoxExFb */
void J2DTextBoxEx::setTevStage(bool param_0) {
@@ -415,82 +307,37 @@ void J2DTextBoxEx::setTevStage(bool param_0) {
}
}
/* ############################################################################################## */
/* 803A1DB8-803A1DC4 02E418 000C+00 1/1 0/0 0/0 .rodata @1953 */
SECTION_RODATA static u8 const lit_1953[12] = {
0x0F, 0x08, 0x0A, 0x0F, 0x02, 0x04, 0x08, 0x0F, 0x0F, 0x0A, 0x00, 0x0F,
};
COMPILER_STRIP_GATE(0x803A1DB8, &lit_1953);
/* 803A1DC4-803A1DD0 02E424 000C+00 0/1 0/0 0/0 .rodata @1954 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_1954[12] = {
0x07, 0x04, 0x05, 0x07, 0x01, 0x02, 0x04, 0x07, 0x07, 0x05, 0x00, 0x07,
};
COMPILER_STRIP_GATE(0x803A1DC4, &lit_1954);
#pragma pop
/* 803A1DD0-803A1DE0 02E430 000F+01 0/1 0/0 0/0 .rodata @1955 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_1955[15 + 1 /* padding */] = {
0x00,
0x00,
0x00,
0x01,
0x00,
0x00,
0x00,
0x00,
0x01,
0x00,
0x00,
0x00,
0x00,
0x01,
0x00,
/* padding */
0x00,
};
COMPILER_STRIP_GATE(0x803A1DD0, &lit_1955);
#pragma pop
/* 803A1DE0-803A1DF0 02E440 000F+01 0/1 0/0 0/0 .rodata @1956 */
#pragma push
#pragma force_active on
SECTION_RODATA static u8 const lit_1956[15 + 1 /* padding */] = {
0x00,
0x00,
0x00,
0x01,
0x00,
0x00,
0x00,
0x00,
0x01,
0x00,
0x00,
0x00,
0x00,
0x01,
0x00,
/* padding */
0x00,
};
COMPILER_STRIP_GATE(0x803A1DE0, &lit_1956);
#pragma pop
/* 80307F94-8030823C 3028D4 02A8+00 1/1 0/0 0/0 .text
* setStage__12J2DTextBoxExFP11J2DTevStageQ212J2DTextBoxEx10stage_enum */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void J2DTextBoxEx::setStage(J2DTevStage* param_0, J2DTextBoxEx::stage_enum param_1) {
nofralloc
#include "asm/JSystem/J2DGraph/J2DTextBoxEx/setStage__12J2DTextBoxExFP11J2DTevStageQ212J2DTextBoxEx10stage_enum.s"
void J2DTextBoxEx::setStage(J2DTevStage* param_0, J2DTextBoxEx::stage_enum param_1) {
const u8 tevColors[3][4] = {
{0x0F, 0x08, 0x0A, 0x0F}, {0x02, 0x04, 0x08, 0x0F}, {0x0F, 0x0A, 0x00, 0x0F},
};
const u8 tevAlpha[3][4] = {
{0x07, 0x04, 0x05, 0x07}, {0x01, 0x02, 0x04, 0x07}, {0x07, 0x05, 0x00, 0x07},
};
const u8 tevColorOps[3][5] = {
{0x00, 0x00, 0x00, 0x01, 0x00},
{0x00, 0x00, 0x00, 0x01, 0x00},
{0x00, 0x00, 0x00, 0x01, 0x00},
};
const u8 tevAlphaOps[3][5] = {
{0x00, 0x00, 0x00, 0x01, 0x00},
{0x00, 0x00, 0x00, 0x01, 0x00},
{0x00, 0x00, 0x00, 0x01, 0x00},
};
param_0->setTevColorAB(tevColors[param_1][0], tevColors[param_1][1]);
param_0->setTevColorCD(tevColors[param_1][2], tevColors[param_1][3]);
param_0->setTevColorOp(
tevColorOps[param_1][0], tevColorOps[param_1][1], tevColorOps[param_1][2], tevColorOps[param_1][3], tevColorOps[param_1][4]);
param_0->setAlphaABCD(
tevAlpha[param_1][0], tevAlpha[param_1][1], tevAlpha[param_1][2], tevAlpha[param_1][3]);
param_0->setTevAlphaOp(
tevAlphaOps[param_1][0], tevAlphaOps[param_1][1], tevAlphaOps[param_1][2], tevAlphaOps[param_1][3], tevAlphaOps[param_1][4]);
}
#pragma pop
/* 8030823C-803082C4 302B7C 0088+00 1/0 0/0 0/0 .text setBlack__12J2DTextBoxExFQ28JUtility6TColor
*/
+107 -9
View File
@@ -10,7 +10,9 @@
#include "SSystem/SComponent/c_m3d_g_lin.h"
#include "SSystem/SComponent/c_m3d_g_sph.h"
#include "SSystem/SComponent/c_m3d_g_tri.h"
#include "SSystem/SComponent/c_m3d_g_cps.h"
#include "SSystem/SComponent/c_math.h"
#include "SSystem/SComponent/c_sxyz.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "global.h"
@@ -611,16 +613,48 @@ bool cM3d_InclusionCheckPosIn3PosBox3d(const Vec* pVecA, const Vec* pVecB, const
/* 80269D64-80269E18 2646A4 00B4+00 11/11 0/0 0/0 .text
* cM3d_InclusionCheckPosIn3PosBox2d__Ffffffffff */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm bool cM3d_InclusionCheckPosIn3PosBox2d(f32 param_0, f32 param_1, f32 param_2,
f32 param_3, f32 param_4, f32 param_5,
f32 param_6, f32 param_7, f32 param_8) {
nofralloc
#include "asm/SSystem/SComponent/c_m3d/cM3d_InclusionCheckPosIn3PosBox2d__Ffffffffff.s"
static bool cM3d_InclusionCheckPosIn3PosBox2d(f32 param_1, f32 param_2, f32 param_3,
f32 param_4, f32 param_5, f32 param_6,
f32 param_7, f32 param_8, f32 param_9) {
f32 dVar6 = param_9;
f32 dVar7;
if (param_1 < param_3) {
dVar7 = param_1;
} else {
dVar7 = param_3;
param_3 = param_1;
}
if (dVar7 > param_5) {
dVar7 = param_5;
} else if (param_3 < param_5) {
param_3 = param_5;
}
if (dVar7 - dVar6 > param_7 || param_3 + dVar6 < param_7) {
return false;
}
f32 fVar1;
if (param_2 < param_4) {
fVar1 = param_2;
} else {
fVar1 = param_4;
param_4 = param_2;
}
if (fVar1 > param_6) {
fVar1 = param_6;
} else if (param_4 < param_6) {
param_4 = param_6;
}
if (fVar1 - dVar6 > param_8 || param_4 + dVar6 < param_8)
{
return false;
}
return true;
}
#pragma pop
/* ############################################################################################## */
/* 804551AC-804551B0 0037AC 0004+00 11/11 0/0 0/0 .sdata2 @3205 */
@@ -1036,6 +1070,36 @@ asm bool cM3d_Cross_CpsCyl(cM3dGCps const& param_0, cM3dGCyl const& param_1, Vec
/* 8026DAE0-8026DC3C 268420 015C+00 1/1 0/0 0/0 .text
* cM3d_Cross_CpsSph_CrossPos__FRC8cM3dGCpsRC8cM3dGSphRC3VecP3Vec */
// Matches with literals
#ifdef NONMATCHING
static bool cM3d_Cross_CpsSph_CrossPos(cM3dGCps const& param_1, cM3dGSph const& param_2,
Vec const& param_3, Vec* param_4) {
Vec aVStack_70;
Vec VStack_7c;
int iVar5 = cM3d_Cross_LinSph_CrossPos(param_2, param_1, &aVStack_70, &VStack_7c);
if (iVar5 == 1) {
*param_4 = aVStack_70;
} else if (iVar5 == 2) {
f32 dVar8 = VECSquareDistance(&aVStack_70, &param_1.GetStartP());
f32 dVar9 = VECSquareDistance(&VStack_7c, &param_1.GetStartP());
if (dVar8 < dVar9) {
*param_4 = aVStack_70;
} else {
*param_4 = VStack_7c;
}
} else {
f32 dVar8 = param_1.GetR() + param_2.GetR();
*param_4 = param_3;
if (cM3d_IsZero(dVar8)) {
*param_4 = param_3;
}
Vec auStack_88;
VECSubtract(&param_3, param_2.GetCP(), &auStack_88);
VECScale(&auStack_88, &auStack_88, 0.5f);
VECAdd(param_4, &auStack_88, param_4);
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1045,9 +1109,33 @@ static asm bool cM3d_Cross_CpsSph_CrossPos(cM3dGCps const& param_0, cM3dGSph con
#include "asm/SSystem/SComponent/c_m3d/cM3d_Cross_CpsSph_CrossPos__FRC8cM3dGCpsRC8cM3dGSphRC3VecP3Vec.s"
}
#pragma pop
#endif
/* 8026DC3C-8026DE2C 26857C 01F0+00 0/0 4/4 0/0 .text
* cM3d_Cross_CpsSph__FRC8cM3dGCpsRC8cM3dGSphP3Vec */
// Matches with literals
#ifdef NONMATCHING
bool cM3d_Cross_CpsSph(cM3dGCps const& param_1, cM3dGSph const& param_2, Vec* param_3) {
f32 local_38 = VECDistance(&param_1.GetStartP(), param_2.GetCP());
if (local_38 < param_1.GetR() + param_2.GetR()) {
cM3d_Cross_CpsSph_CrossPos(param_1, param_2, param_1.GetStartP(), param_3);
return true;
}
local_38 = VECDistance(&param_1.GetEndP(), param_2.GetCP());
if (local_38 < param_1.GetR() + param_2.GetR()) {
cM3d_Cross_CpsSph_CrossPos(param_1, param_2, param_1.GetEndP(), param_3);
return true;
}
Vec auStack_34;
if (cM3d_Len3dSqPntAndSegLine(&param_1, param_2.GetCP(), &auStack_34, &local_38) != 0) {
if (sqrtf(local_38) < param_1.GetR() + param_2.GetR()) {
cM3d_Cross_CpsSph_CrossPos(param_1, param_2, auStack_34, param_3);
return true;
}
}
return false;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1056,6 +1144,7 @@ asm bool cM3d_Cross_CpsSph(cM3dGCps const& param_0, cM3dGSph const& param_1, Vec
#include "asm/SSystem/SComponent/c_m3d/cM3d_Cross_CpsSph__FRC8cM3dGCpsRC8cM3dGSphP3Vec.s"
}
#pragma pop
#endif
/* 8026DE2C-8026E12C 26876C 0300+00 0/0 1/1 0/0 .text
* cM3d_Cross_TriTri__FRC8cM3dGTriRC8cM3dGTriP3Vec */
@@ -1096,6 +1185,14 @@ void cM3d_CalcVecAngle(const Vec& pVec, s16* pOutA, s16* pOutB) {
/* 8026E570-8026E6C4 268EB0 0154+00 0/0 1/1 0/0 .text cM3d_CalcVecZAngle__FRC3VecP5csXyz
*/
// Matches with literals
#ifdef NONMATCHING
void cM3d_CalcVecZAngle(Vec const& param_0, csXyz* param_1) {
param_1->x = -cM_atan2s(param_0.y, sqrtf(param_0.x * param_0.x + param_0.z * param_0.z));;
param_1->y = cM_atan2s(param_0.x, param_0.z);
param_1->z = 0;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -1104,6 +1201,7 @@ asm void cM3d_CalcVecZAngle(Vec const& param_0, csXyz* param_1) {
#include "asm/SSystem/SComponent/c_m3d/cM3d_CalcVecZAngle__FRC3VecP5csXyz.s"
}
#pragma pop
#endif
/* 8026E6C4-8026E6F0 269004 002C+00 1/1 0/0 0/0 .text cM3d_PlaneCrossLineProcWork__FfffffffPfPf */
void cM3d_PlaneCrossLineProcWork(f32 f1, f32 f2, f32 f3, f32 f4, f32 f5, f32 f6, f32 f7, f32* pF1,
+2
View File
@@ -1052,3 +1052,5 @@ O_FILES_SYM_ON := \
$(BUILD_DIR)/src/DynamicLink.o \
$(BUILD_DIR)/src/d/meter/d_meter_HIO.o \
$(BUILD_DIR)/libs/JSystem/JUtility/JUTResFont.o \
$(BUILD_DIR)/src/d/bg/d_bg_s_grp_pass_chk.o \
+17 -36
View File
@@ -1,30 +1,10 @@
//
// Generated By: dol2asm
// Translation Unit: d/bg/d_bg_plc
//
#include "d/bg/d_bg_plc.h"
#include "dolphin/types.h"
//
// Forward References:
//
extern "C" void __ct__6dBgPlcFv();
extern "C" void __dt__6dBgPlcFv();
extern "C" void setBase__6dBgPlcFPv();
extern "C" void getCode__6dBgPlcCFiPP5sBgPc();
extern "C" void getGrpCode__6dBgPlcCFi();
//
// External References:
//
extern "C" void __dl__FPv();
//
// Declarations:
//
#include "JSystem/JUtility/JUTAssert.h"
/* 80074074-80074080 06E9B4 000C+00 0/0 1/1 0/0 .text __ct__6dBgPlcFv */
dBgPlc::dBgPlc() {
@@ -36,25 +16,26 @@ dBgPlc::~dBgPlc() {}
/* 800740BC-800740C4 -00001 0008+00 0/0 0/0 0/0 .text setBase__6dBgPlcFPv */
void dBgPlc::setBase(void* p_base) {
m_base = p_base;
m_base = (PLC*)p_base;
}
/* 800740C4-800740DC 06EA04 0018+00 0/0 1/1 0/0 .text getCode__6dBgPlcCFiPP5sBgPc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dBgPlc::getCode(int param_0, sBgPc** param_1) const {
nofralloc
#include "asm/d/bg/d_bg_plc/getCode__6dBgPlcCFiPP5sBgPc.s"
sBgPc* dBgPlc::getCode(int index, sBgPc** param_1) const {
JUT_ASSERT(45, m_base != 0);
JUT_ASSERT(46, m_base->m_code_size == ZELDA_CODE_SIZE);
JUT_ASSERT(47, index >= 0 && index< m_base->m_num);
sBgPc* rv = m_base->field_0x8;
rv += index;
*param_1 = rv;
return rv;
}
#pragma pop
/* 800740DC-800740F4 06EA1C 0018+00 0/0 1/1 0/0 .text getGrpCode__6dBgPlcCFi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm u32 dBgPlc::getGrpCode(int param_0) const {
nofralloc
#include "asm/d/bg/d_bg_plc/getGrpCode__6dBgPlcCFi.s"
u32 dBgPlc::getGrpCode(int index) const {
JUT_ASSERT(62, m_base != 0);
JUT_ASSERT(63, m_base->m_code_size == ZELDA_CODE_SIZE);
JUT_ASSERT(64, 0 <= index && index < m_base->m_num);
sBgPc* rv = m_base->field_0x8;
rv += index;
return rv->code4;
}
#pragma pop
+2 -48
View File
@@ -1,43 +1,8 @@
//
// Generated By: dol2asm
// Translation Unit: d/bg/d_bg_s_grp_pass_chk
// d/bg/d_bg_s_grp_pass_chk.cpp
//
#include "d/bg/d_bg_s_grp_pass_chk.h"
#include "dol2asm.h"
//
// Forward References:
//
extern "C" void __ct__15dBgS_GrpPassChkFv();
extern "C" void __dt__15dBgS_GrpPassChkFv();
extern "C" void __dt__15cBgS_GrpPassChkFv();
//
// External References:
//
extern "C" void __dl__FPv();
//
// Declarations:
//
/* ############################################################################################## */
/* 803AB7A8-803AB7B4 0088C8 000C+00 2/2 0/0 0/0 .data __vt__15dBgS_GrpPassChk */
SECTION_DATA extern void* __vt__15dBgS_GrpPassChk[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__15dBgS_GrpPassChkFv,
};
/* 803AB7B4-803AB7C0 0088D4 000C+00 3/3 0/0 0/0 .data __vt__15cBgS_GrpPassChk */
SECTION_DATA extern void* __vt__15cBgS_GrpPassChk[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__15cBgS_GrpPassChkFv,
};
/* 80077BA0-80077BC4 0724E0 0024+00 0/0 1/1 0/0 .text __ct__15dBgS_GrpPassChkFv */
dBgS_GrpPassChk::dBgS_GrpPassChk() {
@@ -45,15 +10,4 @@ dBgS_GrpPassChk::dBgS_GrpPassChk() {
}
/* 80077BC4-80077C20 072504 005C+00 1/0 1/1 0/0 .text __dt__15dBgS_GrpPassChkFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm dBgS_GrpPassChk::~dBgS_GrpPassChk() {
extern "C" asm void __dt__15dBgS_GrpPassChkFv() {
nofralloc
#include "asm/d/bg/d_bg_s_grp_pass_chk/__dt__15dBgS_GrpPassChkFv.s"
}
#pragma pop
/* 80077C20-80077C68 072560 0048+00 1/0 0/0 0/0 .text __dt__15cBgS_GrpPassChkFv */
cBgS_GrpPassChk::~cBgS_GrpPassChk() {}
dBgS_GrpPassChk::~dBgS_GrpPassChk() {}
+93 -16
View File
@@ -7,6 +7,7 @@
#include "d/bg/d_bg_pc.h"
#include "d/com/d_com_inf_game.h"
#include "dol2asm.h"
#include "rel/d/a/d_a_horse/d_a_horse.h"
//
// Forward References:
@@ -222,15 +223,34 @@ bool dBgWKCol::GetTriPnt(int poly_index, Vec* param_1, Vec* param_2, Vec* param_
/* 8007E9D4-8007EB28 079314 0154+00 3/3 0/0 0/0 .text
* GetTriPnt__8dBgWKColCFPC12KC_PrismDataP3VecP3VecP3Vec */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm bool dBgWKCol::GetTriPnt(KC_PrismData const* param_0, Vec* param_1, Vec* param_2,
Vec* param_3) const {
nofralloc
#include "asm/d/bg/d_bg_w_kcol/GetTriPnt__8dBgWKColCFPC12KC_PrismDataP3VecP3VecP3Vec.s"
bool dBgWKCol::GetTriPnt(KC_PrismData const* param_1, Vec* param_2, Vec* param_3,
Vec* param_4) const {
pkcdata* pkcData = m_pkc_head;
*param_2 = pkcData->field_0x0[param_1->field_0x4];
Vec* vec6 = &pkcData->field_0x4[param_1->field_0x6];
Vec* veca = &pkcData->field_0x4[param_1->field_0xa];
Vec* vecc = &pkcData->field_0x4[param_1->field_0xc];
Vec auStack_64;
VECCrossProduct(vec6, &pkcData->field_0x4[param_1->field_0x8], &auStack_64);
Vec auStack_70;
VECCrossProduct(veca, vec6, &auStack_70);
f32 dVar11 = VECDotProduct(&auStack_64,vecc);
if (cM3d_IsZero(dVar11)) {
return false;
}
dVar11 = param_1->field_0x0 / dVar11;
VECScale(&auStack_64, &auStack_64, dVar11);
VECAdd(&auStack_64, param_2, param_4);
dVar11 = VECDotProduct(&auStack_70,vecc);
if (cM3d_IsZero(dVar11)) {
return false;
}
dVar11 = param_1->field_0x0 / dVar11;
VECScale(&auStack_70, &auStack_70, dVar11);
VECAdd(&auStack_70, param_2, param_3);
return true;
}
#pragma pop
/* 8007EB28-8007EB30 079468 0008+00 1/0 0/0 0/0 .text GetBnd__8dBgWKColCFv */
cM3dGAab* dBgWKCol::GetBnd() const {
@@ -260,15 +280,72 @@ void dBgWKCol::getPolyCode(int poly_index, dBgPc* pbgpc) const {
/* 8007EBC4-8007EE34 079504 0270+00 8/8 0/0 0/0 .text
* chkPolyThrough__8dBgWKColCFP5dBgPcP16cBgS_PolyPassChkP15cBgS_GrpPassChkR4cXyz */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm bool dBgWKCol::chkPolyThrough(dBgPc* param_0, cBgS_PolyPassChk* param_1,
cBgS_GrpPassChk* param_2, cXyz& param_3) const {
nofralloc
#include "asm/d/bg/d_bg_w_kcol/chkPolyThrough__8dBgWKColCFP5dBgPcP16cBgS_PolyPassChkP15cBgS_GrpPassChkR4cXyz.s"
bool dBgWKCol::chkPolyThrough(dBgPc* ppoly, cBgS_PolyPassChk* param_2,
cBgS_GrpPassChk* param_3, cXyz& param_4) const {
JUT_ASSERT(279, ppoly != 0);
if (param_3 != NULL) {
if (ppoly->maskNrm() == 0) {
if (((dBgS_GrpPassChk*)param_3)->MaskNormalGrp() == 0) {
return true;
}
} else if (ppoly->getWtr() != 0 &&
(((dBgS_GrpPassChk*)param_3)->MaskWaterGrp() == 0))
{
return true;
}
}
if (param_2 != NULL) {
dBgS_PolyPassChk* polypass = (dBgS_PolyPassChk*)param_2;
if (polypass->ChkObj() && ppoly->getObjThrough() != 0) {
return true;
}
if (polypass->ChkCam() && ppoly->getCamThrough() != 0) {
return true;
}
if ((polypass->ChkLink() && ppoly->getLinkThrough() != 0) ||
(polypass->ChkHorse() && ppoly->getLinkThrough() != 0))
{
return true;
}
if (polypass->ChkArrow() && ppoly->getArrowThrough() != 0) {
return true;
}
if (polypass->ChkBomb() && ppoly->getBombThrough() != 0) {
return true;
}
if (polypass->ChkBoomerang() && ppoly->getBoomerangThrough() != 0) {
return true;
}
if (polypass->ChkRope() && ppoly->getRopeThrough() != 0) {
return true;
}
if (polypass->ChkUnderwaterRoof() && ppoly->getUnderwaterRoof() != 0) {
return true;
}
if (ppoly->getWallCode() == 8 && polypass->ChkNoHorse())
{
return true;
}
if (ppoly->getWallCode() == 9) {
if (polypass->ChkNoHorse()) {
return true;
}
if (polypass->ChkHorse() && i_dComIfGp_getHorseActor() != NULL) {
if (!i_dComIfGp_getHorseActor()->checkSpecialWallHit(param_4)) {
return true;
}
}
}
if (polypass->ChkStatue() && ppoly->getSpl() == 7) {
return true;
}
if (polypass->ChkIronBall() && ppoly->getIronBallThrough() != 0) {
return true;
}
}
return false;
}
#pragma pop
/* ############################################################################################## */
/* 80452718-8045271C 000D18 0004+00 5/5 0/0 0/0 .sdata2 @4187 */
+14 -24
View File
@@ -1474,10 +1474,6 @@ s32 fopAcM_createItemForTrBoxDemo(cXyz const* i_pos, int i_itemNo, int i_itemBit
}
}
/* ############################################################################################## */
/* 80451C28-80451C2C 000228 0004+00 1/1 0/0 0/0 .sdata2 @5584 */
SECTION_SDATA2 static f32 lit_5584 = 15.999899864196777f;
struct ItemTableList {
/* 0x00 */ char mListName[11];
/* 0x0B */ u8 mTableNum;
@@ -1487,7 +1483,6 @@ struct ItemTableList {
/* 8001BCFC-8001BE14 01663C 0118+00 2/2 0/0 0/0 .text fopAcM_getItemNoFromTableNo__FUc */
// out of order instructions / regalloc
#ifdef NONMATCHING
u8 fopAcM_getItemNoFromTableNo(u8 i_tableNo) {
u8 tableNo = i_tableNo;
ItemTableList* tableList = (ItemTableList*)dComIfGp_getItemTable();
@@ -1518,18 +1513,8 @@ u8 fopAcM_getItemNoFromTableNo(u8 i_tableNo) {
break;
}
return tableList->mTables[tableNo][(int)cM_rndF(15.999f)];
return tableList->mTables[tableNo][(int)cM_rndF(15.999899864196777f)];
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm u8 fopAcM_getItemNoFromTableNo(u8 param_0) {
nofralloc
#include "asm/f_op/f_op_actor_mng/fopAcM_getItemNoFromTableNo__FUc.s"
}
#pragma pop
#endif
struct EnemyTableList {
/* 0x0 */ u32 mTag;
@@ -1687,7 +1672,7 @@ inline u32 maskShift(int val, int bits, int shift) {
return (val & ((1 << bits) - 1)) << shift;
}
inline u32 makeItemParams(int iNo, int p8, int unk, int p9) {
inline u32 makeItemParams(u32 iNo, u32 p8, u32 unk, u32 p9) {
return maskShift(p8, 8, 0x8) | maskShift(iNo, 8, 0) | maskShift(unk, 8, 0x10) |
maskShift(p9, 4, 0x18);
}
@@ -2536,17 +2521,21 @@ asm s16 fopAcM_getPolygonAngle(cM3dGPla const* param_0, s16 param_1) {
/* 8001DC68-8001DCBC 0185A8 0054+00 0/0 5/5 21/21 .text
* lineCheck__11fopAcM_lc_cFPC4cXyzPC4cXyzPC10fopAc_ac_c */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm bool fopAcM_lc_c::lineCheck(cXyz const* param_0, cXyz const* param_1,
bool fopAcM_lc_c::lineCheck(cXyz const* param_0, cXyz const* param_1,
fopAc_ac_c const* param_2) {
nofralloc
#include "asm/f_op/f_op_actor_mng/lineCheck__11fopAcM_lc_cFPC4cXyzPC4cXyzPC10fopAc_ac_c.s"
((dBgS_LinChk*)mLineCheck)->Set(param_0, param_1, param_2);
dComIfG_Bgsp().LineCross((cBgS_LinChk*)mLineCheck);
}
#pragma pop
/* 8001DCBC-8001DD1C 0185FC 0060+00 1/1 10/10 108/108 .text gndCheck__11fopAcM_gc_cFPC4cXyz */
// return value calculation
#ifdef NONMATCHING
bool fopAcM_gc_c::gndCheck(cXyz const* param_0) {
((cBgS_GndChk*)mGndCheck)->SetPos(param_0);
mGroundY = dComIfG_Bgsp().GroundCross((cBgS_GndChk*)mGndCheck);
return -1000000000.0f > mGroundY;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@@ -2555,6 +2544,7 @@ asm bool fopAcM_gc_c::gndCheck(cXyz const* param_0) {
#include "asm/f_op/f_op_actor_mng/gndCheck__11fopAcM_gc_cFPC4cXyz.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 80451C5C-80451C60 00025C 0004+00 1/1 0/0 0/0 .sdata2 @6517 */