diff --git a/asm/sysdolphin/baselib/jobj.s b/asm/sysdolphin/baselib/jobj.s index 2e69df43b1..372c2e4b5c 100644 --- a/asm/sysdolphin/baselib/jobj.s +++ b/asm/sysdolphin/baselib/jobj.s @@ -2,983 +2,6 @@ .section .text # 0x80005940 - 0x803B7240 -.global JObjResetRST -JObjResetRST: -/* 8036ED3C 0036B91C 7C 08 02 A6 */ mflr r0 -/* 8036ED40 0036B920 90 01 00 04 */ stw r0, 4(r1) -/* 8036ED44 0036B924 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8036ED48 0036B928 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8036ED4C 0036B92C 7C 7F 1B 79 */ or. r31, r3, r3 -/* 8036ED50 0036B930 41 82 00 AC */ beq lbl_8036EDFC -/* 8036ED54 0036B934 28 04 00 00 */ cmplwi r4, 0 -/* 8036ED58 0036B938 40 82 00 08 */ bne lbl_8036ED60 -/* 8036ED5C 0036B93C 48 00 00 A0 */ b lbl_8036EDFC -lbl_8036ED60: -/* 8036ED60 0036B940 C0 04 00 14 */ lfs f0, 0x14(r4) -/* 8036ED64 0036B944 D0 1F 00 1C */ stfs f0, 0x1c(r31) -/* 8036ED68 0036B948 C0 04 00 18 */ lfs f0, 0x18(r4) -/* 8036ED6C 0036B94C D0 1F 00 20 */ stfs f0, 0x20(r31) -/* 8036ED70 0036B950 C0 04 00 1C */ lfs f0, 0x1c(r4) -/* 8036ED74 0036B954 D0 1F 00 24 */ stfs f0, 0x24(r31) -/* 8036ED78 0036B958 80 64 00 20 */ lwz r3, 0x20(r4) -/* 8036ED7C 0036B95C 80 04 00 24 */ lwz r0, 0x24(r4) -/* 8036ED80 0036B960 90 7F 00 2C */ stw r3, 0x2c(r31) -/* 8036ED84 0036B964 90 1F 00 30 */ stw r0, 0x30(r31) -/* 8036ED88 0036B968 80 04 00 28 */ lwz r0, 0x28(r4) -/* 8036ED8C 0036B96C 90 1F 00 34 */ stw r0, 0x34(r31) -/* 8036ED90 0036B970 80 64 00 2C */ lwz r3, 0x2c(r4) -/* 8036ED94 0036B974 80 04 00 30 */ lwz r0, 0x30(r4) -/* 8036ED98 0036B978 90 7F 00 38 */ stw r3, 0x38(r31) -/* 8036ED9C 0036B97C 90 1F 00 3C */ stw r0, 0x3c(r31) -/* 8036EDA0 0036B980 80 04 00 34 */ lwz r0, 0x34(r4) -/* 8036EDA4 0036B984 90 1F 00 40 */ stw r0, 0x40(r31) -/* 8036EDA8 0036B988 80 1F 00 14 */ lwz r0, 0x14(r31) -/* 8036EDAC 0036B98C 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 8036EDB0 0036B990 40 82 00 4C */ bne lbl_8036EDFC -/* 8036EDB4 0036B994 28 1F 00 00 */ cmplwi r31, 0 -/* 8036EDB8 0036B998 41 82 00 44 */ beq lbl_8036EDFC -/* 8036EDBC 0036B99C 40 82 00 14 */ bne lbl_8036EDD0 -/* 8036EDC0 0036B9A0 38 6D A7 00 */ addi r3, r13, lbl_804D5DA0@sda21 -/* 8036EDC4 0036B9A4 38 80 02 34 */ li r4, 0x234 -/* 8036EDC8 0036B9A8 38 AD A7 08 */ addi r5, r13, lbl_804D5DA8@sda21 -/* 8036EDCC 0036B9AC 48 01 94 55 */ bl __assert -lbl_8036EDD0: -/* 8036EDD0 0036B9B0 80 9F 00 14 */ lwz r4, 0x14(r31) -/* 8036EDD4 0036B9B4 38 60 00 00 */ li r3, 0 -/* 8036EDD8 0036B9B8 54 80 02 11 */ rlwinm. r0, r4, 0, 8, 8 -/* 8036EDDC 0036B9BC 40 82 00 10 */ bne lbl_8036EDEC -/* 8036EDE0 0036B9C0 54 80 06 73 */ rlwinm. r0, r4, 0, 0x19, 0x19 -/* 8036EDE4 0036B9C4 41 82 00 08 */ beq lbl_8036EDEC -/* 8036EDE8 0036B9C8 38 60 00 01 */ li r3, 1 -lbl_8036EDEC: -/* 8036EDEC 0036B9CC 2C 03 00 00 */ cmpwi r3, 0 -/* 8036EDF0 0036B9D0 40 82 00 0C */ bne lbl_8036EDFC -/* 8036EDF4 0036B9D4 7F E3 FB 78 */ mr r3, r31 -/* 8036EDF8 0036B9D8 48 00 44 F1 */ bl HSD_JObjSetMtxDirtySub -lbl_8036EDFC: -/* 8036EDFC 0036B9DC 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8036EE00 0036B9E0 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8036EE04 0036B9E4 38 21 00 18 */ addi r1, r1, 0x18 -/* 8036EE08 0036B9E8 7C 08 03 A6 */ mtlr r0 -/* 8036EE0C 0036B9EC 4E 80 00 20 */ blr - -.global HSD_JObjResetRST -HSD_JObjResetRST: -/* 8036EE10 0036B9F0 7C 08 02 A6 */ mflr r0 -/* 8036EE14 0036B9F4 90 01 00 04 */ stw r0, 4(r1) -/* 8036EE18 0036B9F8 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8036EE1C 0036B9FC 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8036EE20 0036BA00 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8036EE24 0036BA04 93 A1 00 14 */ stw r29, 0x14(r1) -/* 8036EE28 0036BA08 7C 7D 1B 79 */ or. r29, r3, r3 -/* 8036EE2C 0036BA0C 93 81 00 10 */ stw r28, 0x10(r1) -/* 8036EE30 0036BA10 3B 84 00 00 */ addi r28, r4, 0 -/* 8036EE34 0036BA14 41 82 01 58 */ beq lbl_8036EF8C -/* 8036EE38 0036BA18 28 1C 00 00 */ cmplwi r28, 0 -/* 8036EE3C 0036BA1C 40 82 00 08 */ bne lbl_8036EE44 -/* 8036EE40 0036BA20 48 00 01 4C */ b lbl_8036EF8C -lbl_8036EE44: -/* 8036EE44 0036BA24 28 1D 00 00 */ cmplwi r29, 0 -/* 8036EE48 0036BA28 41 82 00 A8 */ beq lbl_8036EEF0 -/* 8036EE4C 0036BA2C 28 1C 00 00 */ cmplwi r28, 0 -/* 8036EE50 0036BA30 41 82 00 A0 */ beq lbl_8036EEF0 -/* 8036EE54 0036BA34 C0 1C 00 14 */ lfs f0, 0x14(r28) -/* 8036EE58 0036BA38 D0 1D 00 1C */ stfs f0, 0x1c(r29) -/* 8036EE5C 0036BA3C C0 1C 00 18 */ lfs f0, 0x18(r28) -/* 8036EE60 0036BA40 D0 1D 00 20 */ stfs f0, 0x20(r29) -/* 8036EE64 0036BA44 C0 1C 00 1C */ lfs f0, 0x1c(r28) -/* 8036EE68 0036BA48 D0 1D 00 24 */ stfs f0, 0x24(r29) -/* 8036EE6C 0036BA4C 80 7C 00 20 */ lwz r3, 0x20(r28) -/* 8036EE70 0036BA50 80 1C 00 24 */ lwz r0, 0x24(r28) -/* 8036EE74 0036BA54 90 7D 00 2C */ stw r3, 0x2c(r29) -/* 8036EE78 0036BA58 90 1D 00 30 */ stw r0, 0x30(r29) -/* 8036EE7C 0036BA5C 80 1C 00 28 */ lwz r0, 0x28(r28) -/* 8036EE80 0036BA60 90 1D 00 34 */ stw r0, 0x34(r29) -/* 8036EE84 0036BA64 80 7C 00 2C */ lwz r3, 0x2c(r28) -/* 8036EE88 0036BA68 80 1C 00 30 */ lwz r0, 0x30(r28) -/* 8036EE8C 0036BA6C 90 7D 00 38 */ stw r3, 0x38(r29) -/* 8036EE90 0036BA70 90 1D 00 3C */ stw r0, 0x3c(r29) -/* 8036EE94 0036BA74 80 1C 00 34 */ lwz r0, 0x34(r28) -/* 8036EE98 0036BA78 90 1D 00 40 */ stw r0, 0x40(r29) -/* 8036EE9C 0036BA7C 80 1D 00 14 */ lwz r0, 0x14(r29) -/* 8036EEA0 0036BA80 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6 -/* 8036EEA4 0036BA84 40 82 00 4C */ bne lbl_8036EEF0 -/* 8036EEA8 0036BA88 28 1D 00 00 */ cmplwi r29, 0 -/* 8036EEAC 0036BA8C 41 82 00 44 */ beq lbl_8036EEF0 -/* 8036EEB0 0036BA90 40 82 00 14 */ bne lbl_8036EEC4 -/* 8036EEB4 0036BA94 38 6D A7 00 */ addi r3, r13, lbl_804D5DA0@sda21 -/* 8036EEB8 0036BA98 38 80 02 34 */ li r4, 0x234 -/* 8036EEBC 0036BA9C 38 AD A7 08 */ addi r5, r13, lbl_804D5DA8@sda21 -/* 8036EEC0 0036BAA0 48 01 93 61 */ bl __assert -lbl_8036EEC4: -/* 8036EEC4 0036BAA4 80 9D 00 14 */ lwz r4, 0x14(r29) -/* 8036EEC8 0036BAA8 38 60 00 00 */ li r3, 0 -/* 8036EECC 0036BAAC 54 80 02 11 */ rlwinm. r0, r4, 0, 8, 8 -/* 8036EED0 0036BAB0 40 82 00 10 */ bne lbl_8036EEE0 -/* 8036EED4 0036BAB4 54 80 06 73 */ rlwinm. r0, r4, 0, 0x19, 0x19 -/* 8036EED8 0036BAB8 41 82 00 08 */ beq lbl_8036EEE0 -/* 8036EEDC 0036BABC 38 60 00 01 */ li r3, 1 -lbl_8036EEE0: -/* 8036EEE0 0036BAC0 2C 03 00 00 */ cmpwi r3, 0 -/* 8036EEE4 0036BAC4 40 82 00 0C */ bne lbl_8036EEF0 -/* 8036EEE8 0036BAC8 7F A3 EB 78 */ mr r3, r29 -/* 8036EEEC 0036BACC 48 00 43 FD */ bl HSD_JObjSetMtxDirtySub -lbl_8036EEF0: -/* 8036EEF0 0036BAD0 80 1D 00 14 */ lwz r0, 0x14(r29) -/* 8036EEF4 0036BAD4 54 00 04 E7 */ rlwinm. r0, r0, 0, 0x13, 0x13 -/* 8036EEF8 0036BAD8 40 82 00 94 */ bne lbl_8036EF8C -/* 8036EEFC 0036BADC 83 BD 00 10 */ lwz r29, 0x10(r29) -/* 8036EF00 0036BAE0 83 9C 00 08 */ lwz r28, 8(r28) -/* 8036EF04 0036BAE4 48 00 00 80 */ b lbl_8036EF84 -lbl_8036EF08: -/* 8036EF08 0036BAE8 28 1D 00 00 */ cmplwi r29, 0 -/* 8036EF0C 0036BAEC 41 82 00 5C */ beq lbl_8036EF68 -/* 8036EF10 0036BAF0 28 1C 00 00 */ cmplwi r28, 0 -/* 8036EF14 0036BAF4 41 82 00 54 */ beq lbl_8036EF68 -/* 8036EF18 0036BAF8 38 7D 00 00 */ addi r3, r29, 0 -/* 8036EF1C 0036BAFC 38 9C 00 00 */ addi r4, r28, 0 -/* 8036EF20 0036BB00 4B FF FE 1D */ bl JObjResetRST -/* 8036EF24 0036BB04 80 1D 00 14 */ lwz r0, 0x14(r29) -/* 8036EF28 0036BB08 54 00 04 E7 */ rlwinm. r0, r0, 0, 0x13, 0x13 -/* 8036EF2C 0036BB0C 40 82 00 3C */ bne lbl_8036EF68 -/* 8036EF30 0036BB10 83 FD 00 10 */ lwz r31, 0x10(r29) -/* 8036EF34 0036BB14 83 DC 00 08 */ lwz r30, 8(r28) -/* 8036EF38 0036BB18 48 00 00 28 */ b lbl_8036EF60 -lbl_8036EF3C: -/* 8036EF3C 0036BB1C 38 7F 00 00 */ addi r3, r31, 0 -/* 8036EF40 0036BB20 38 9E 00 00 */ addi r4, r30, 0 -/* 8036EF44 0036BB24 4B FF FE CD */ bl HSD_JObjResetRST -/* 8036EF48 0036BB28 28 1E 00 00 */ cmplwi r30, 0 -/* 8036EF4C 0036BB2C 83 FF 00 08 */ lwz r31, 8(r31) -/* 8036EF50 0036BB30 41 82 00 0C */ beq lbl_8036EF5C -/* 8036EF54 0036BB34 83 DE 00 0C */ lwz r30, 0xc(r30) -/* 8036EF58 0036BB38 48 00 00 08 */ b lbl_8036EF60 -lbl_8036EF5C: -/* 8036EF5C 0036BB3C 3B C0 00 00 */ li r30, 0 -lbl_8036EF60: -/* 8036EF60 0036BB40 28 1F 00 00 */ cmplwi r31, 0 -/* 8036EF64 0036BB44 40 82 FF D8 */ bne lbl_8036EF3C -lbl_8036EF68: -/* 8036EF68 0036BB48 28 1C 00 00 */ cmplwi r28, 0 -/* 8036EF6C 0036BB4C 83 BD 00 08 */ lwz r29, 8(r29) -/* 8036EF70 0036BB50 41 82 00 0C */ beq lbl_8036EF7C -/* 8036EF74 0036BB54 80 1C 00 0C */ lwz r0, 0xc(r28) -/* 8036EF78 0036BB58 48 00 00 08 */ b lbl_8036EF80 -lbl_8036EF7C: -/* 8036EF7C 0036BB5C 38 00 00 00 */ li r0, 0 -lbl_8036EF80: -/* 8036EF80 0036BB60 7C 1C 03 78 */ mr r28, r0 -lbl_8036EF84: -/* 8036EF84 0036BB64 28 1D 00 00 */ cmplwi r29, 0 -/* 8036EF88 0036BB68 40 82 FF 80 */ bne lbl_8036EF08 -lbl_8036EF8C: -/* 8036EF8C 0036BB6C 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8036EF90 0036BB70 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8036EF94 0036BB74 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8036EF98 0036BB78 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 8036EF9C 0036BB7C 83 81 00 10 */ lwz r28, 0x10(r1) -/* 8036EFA0 0036BB80 38 21 00 20 */ addi r1, r1, 0x20 -/* 8036EFA4 0036BB84 7C 08 03 A6 */ mtlr r0 -/* 8036EFA8 0036BB88 4E 80 00 20 */ blr - -.global func_8036EFAC -func_8036EFAC: -/* 8036EFAC 0036BB8C 7C 08 02 A6 */ mflr r0 -/* 8036EFB0 0036BB90 90 01 00 04 */ stw r0, 4(r1) -/* 8036EFB4 0036BB94 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8036EFB8 0036BB98 BF 61 00 1C */ stmw r27, 0x1c(r1) -/* 8036EFBC 0036BB9C 7C 7B 1B 79 */ or. r27, r3, r3 -/* 8036EFC0 0036BBA0 3B C4 00 00 */ addi r30, r4, 0 -/* 8036EFC4 0036BBA4 3B E5 00 00 */ addi r31, r5, 0 -/* 8036EFC8 0036BBA8 41 82 01 14 */ beq lbl_8036F0DC -/* 8036EFCC 0036BBAC 80 1B 00 0C */ lwz r0, 0xc(r27) -/* 8036EFD0 0036BBB0 28 00 00 00 */ cmplwi r0, 0 -/* 8036EFD4 0036BBB4 40 82 00 18 */ bne lbl_8036EFEC -/* 8036EFD8 0036BBB8 3C 60 80 40 */ lis r3, lbl_80406758@ha -/* 8036EFDC 0036BBBC 38 A3 67 58 */ addi r5, r3, lbl_80406758@l -/* 8036EFE0 0036BBC0 38 6D A7 10 */ addi r3, r13, lbl_804D5DB0@sda21 -/* 8036EFE4 0036BBC4 38 80 00 AE */ li r4, 0xae -/* 8036EFE8 0036BBC8 48 01 92 39 */ bl __assert -lbl_8036EFEC: -/* 8036EFEC 0036BBCC 80 7B 00 0C */ lwz r3, 0xc(r27) -/* 8036EFF0 0036BBD0 80 03 00 10 */ lwz r0, 0x10(r3) -/* 8036EFF4 0036BBD4 7C 00 D8 40 */ cmplw r0, r27 -/* 8036EFF8 0036BBD8 40 82 00 0C */ bne lbl_8036F004 -/* 8036EFFC 0036BBDC 38 00 00 01 */ li r0, 1 -/* 8036F000 0036BBE0 48 00 00 08 */ b lbl_8036F008 -lbl_8036F004: -/* 8036F004 0036BBE4 38 00 00 02 */ li r0, 2 -lbl_8036F008: -/* 8036F008 0036BBE8 28 1E 00 00 */ cmplwi r30, 0 -/* 8036F00C 0036BBEC 7C 05 03 78 */ mr r5, r0 -/* 8036F010 0036BBF0 41 82 00 18 */ beq lbl_8036F028 -/* 8036F014 0036BBF4 39 9E 00 00 */ addi r12, r30, 0 -/* 8036F018 0036BBF8 7D 88 03 A6 */ mtlr r12 -/* 8036F01C 0036BBFC 38 7B 00 00 */ addi r3, r27, 0 -/* 8036F020 0036BC00 38 9F 00 00 */ addi r4, r31, 0 -/* 8036F024 0036BC04 4E 80 00 21 */ blrl -lbl_8036F028: -/* 8036F028 0036BC08 80 1B 00 14 */ lwz r0, 0x14(r27) -/* 8036F02C 0036BC0C 54 00 04 E7 */ rlwinm. r0, r0, 0, 0x13, 0x13 -/* 8036F030 0036BC10 40 82 00 AC */ bne lbl_8036F0DC -/* 8036F034 0036BC14 3C 60 80 40 */ lis r3, lbl_80406758@ha -/* 8036F038 0036BC18 83 7B 00 10 */ lwz r27, 0x10(r27) -/* 8036F03C 0036BC1C 3B A3 67 58 */ addi r29, r3, lbl_80406758@l -/* 8036F040 0036BC20 48 00 00 94 */ b lbl_8036F0D4 -lbl_8036F044: -/* 8036F044 0036BC24 28 1B 00 00 */ cmplwi r27, 0 -/* 8036F048 0036BC28 41 82 00 88 */ beq lbl_8036F0D0 -/* 8036F04C 0036BC2C 80 1B 00 0C */ lwz r0, 0xc(r27) -/* 8036F050 0036BC30 28 00 00 00 */ cmplwi r0, 0 -/* 8036F054 0036BC34 40 82 00 14 */ bne lbl_8036F068 -/* 8036F058 0036BC38 38 BD 00 00 */ addi r5, r29, 0 -/* 8036F05C 0036BC3C 38 6D A7 10 */ addi r3, r13, lbl_804D5DB0@sda21 -/* 8036F060 0036BC40 38 80 00 AE */ li r4, 0xae -/* 8036F064 0036BC44 48 01 91 BD */ bl __assert -lbl_8036F068: -/* 8036F068 0036BC48 80 7B 00 0C */ lwz r3, 0xc(r27) -/* 8036F06C 0036BC4C 80 03 00 10 */ lwz r0, 0x10(r3) -/* 8036F070 0036BC50 7C 00 D8 40 */ cmplw r0, r27 -/* 8036F074 0036BC54 40 82 00 0C */ bne lbl_8036F080 -/* 8036F078 0036BC58 38 A0 00 01 */ li r5, 1 -/* 8036F07C 0036BC5C 48 00 00 08 */ b lbl_8036F084 -lbl_8036F080: -/* 8036F080 0036BC60 38 A0 00 02 */ li r5, 2 -lbl_8036F084: -/* 8036F084 0036BC64 28 1E 00 00 */ cmplwi r30, 0 -/* 8036F088 0036BC68 41 82 00 18 */ beq lbl_8036F0A0 -/* 8036F08C 0036BC6C 39 9E 00 00 */ addi r12, r30, 0 -/* 8036F090 0036BC70 7D 88 03 A6 */ mtlr r12 -/* 8036F094 0036BC74 38 7B 00 00 */ addi r3, r27, 0 -/* 8036F098 0036BC78 38 9F 00 00 */ addi r4, r31, 0 -/* 8036F09C 0036BC7C 4E 80 00 21 */ blrl -lbl_8036F0A0: -/* 8036F0A0 0036BC80 80 1B 00 14 */ lwz r0, 0x14(r27) -/* 8036F0A4 0036BC84 54 00 04 E7 */ rlwinm. r0, r0, 0, 0x13, 0x13 -/* 8036F0A8 0036BC88 40 82 00 28 */ bne lbl_8036F0D0 -/* 8036F0AC 0036BC8C 83 9B 00 10 */ lwz r28, 0x10(r27) -/* 8036F0B0 0036BC90 48 00 00 18 */ b lbl_8036F0C8 -lbl_8036F0B4: -/* 8036F0B4 0036BC94 38 7C 00 00 */ addi r3, r28, 0 -/* 8036F0B8 0036BC98 38 9E 00 00 */ addi r4, r30, 0 -/* 8036F0BC 0036BC9C 38 BF 00 00 */ addi r5, r31, 0 -/* 8036F0C0 0036BCA0 4B FF FE ED */ bl func_8036EFAC -/* 8036F0C4 0036BCA4 83 9C 00 08 */ lwz r28, 8(r28) -lbl_8036F0C8: -/* 8036F0C8 0036BCA8 28 1C 00 00 */ cmplwi r28, 0 -/* 8036F0CC 0036BCAC 40 82 FF E8 */ bne lbl_8036F0B4 -lbl_8036F0D0: -/* 8036F0D0 0036BCB0 83 7B 00 08 */ lwz r27, 8(r27) -lbl_8036F0D4: -/* 8036F0D4 0036BCB4 28 1B 00 00 */ cmplwi r27, 0 -/* 8036F0D8 0036BCB8 40 82 FF 6C */ bne lbl_8036F044 -lbl_8036F0DC: -/* 8036F0DC 0036BCBC BB 61 00 1C */ lmw r27, 0x1c(r1) -/* 8036F0E0 0036BCC0 80 01 00 34 */ lwz r0, 0x34(r1) -/* 8036F0E4 0036BCC4 38 21 00 30 */ addi r1, r1, 0x30 -/* 8036F0E8 0036BCC8 7C 08 03 A6 */ mtlr r0 -/* 8036F0EC 0036BCCC 4E 80 00 20 */ blr - -.global func_8036F0F0 -func_8036F0F0: -/* 8036F0F0 0036BCD0 7C 08 02 A6 */ mflr r0 -/* 8036F0F4 0036BCD4 90 01 00 04 */ stw r0, 4(r1) -/* 8036F0F8 0036BCD8 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8036F0FC 0036BCDC BF 61 00 1C */ stmw r27, 0x1c(r1) -/* 8036F100 0036BCE0 7C 7D 1B 79 */ or. r29, r3, r3 -/* 8036F104 0036BCE4 3B 64 00 00 */ addi r27, r4, 0 -/* 8036F108 0036BCE8 3B 85 00 00 */ addi r28, r5, 0 -/* 8036F10C 0036BCEC 41 82 00 D8 */ beq lbl_8036F1E4 -/* 8036F110 0036BCF0 28 1B 00 00 */ cmplwi r27, 0 -/* 8036F114 0036BCF4 41 82 00 1C */ beq lbl_8036F130 -/* 8036F118 0036BCF8 39 9B 00 00 */ addi r12, r27, 0 -/* 8036F11C 0036BCFC 7D 88 03 A6 */ mtlr r12 -/* 8036F120 0036BD00 38 7D 00 00 */ addi r3, r29, 0 -/* 8036F124 0036BD04 38 9C 00 00 */ addi r4, r28, 0 -/* 8036F128 0036BD08 38 A0 00 00 */ li r5, 0 -/* 8036F12C 0036BD0C 4E 80 00 21 */ blrl -lbl_8036F130: -/* 8036F130 0036BD10 80 1D 00 14 */ lwz r0, 0x14(r29) -/* 8036F134 0036BD14 54 00 04 E7 */ rlwinm. r0, r0, 0, 0x13, 0x13 -/* 8036F138 0036BD18 40 82 00 AC */ bne lbl_8036F1E4 -/* 8036F13C 0036BD1C 3C 60 80 40 */ lis r3, lbl_80406758@ha -/* 8036F140 0036BD20 83 BD 00 10 */ lwz r29, 0x10(r29) -/* 8036F144 0036BD24 3B E3 67 58 */ addi r31, r3, lbl_80406758@l -/* 8036F148 0036BD28 48 00 00 94 */ b lbl_8036F1DC -lbl_8036F14C: -/* 8036F14C 0036BD2C 28 1D 00 00 */ cmplwi r29, 0 -/* 8036F150 0036BD30 41 82 00 88 */ beq lbl_8036F1D8 -/* 8036F154 0036BD34 80 1D 00 0C */ lwz r0, 0xc(r29) -/* 8036F158 0036BD38 28 00 00 00 */ cmplwi r0, 0 -/* 8036F15C 0036BD3C 40 82 00 14 */ bne lbl_8036F170 -/* 8036F160 0036BD40 38 BF 00 00 */ addi r5, r31, 0 -/* 8036F164 0036BD44 38 6D A7 10 */ addi r3, r13, lbl_804D5DB0@sda21 -/* 8036F168 0036BD48 38 80 00 AE */ li r4, 0xae -/* 8036F16C 0036BD4C 48 01 90 B5 */ bl __assert -lbl_8036F170: -/* 8036F170 0036BD50 80 7D 00 0C */ lwz r3, 0xc(r29) -/* 8036F174 0036BD54 80 03 00 10 */ lwz r0, 0x10(r3) -/* 8036F178 0036BD58 7C 00 E8 40 */ cmplw r0, r29 -/* 8036F17C 0036BD5C 40 82 00 0C */ bne lbl_8036F188 -/* 8036F180 0036BD60 38 A0 00 01 */ li r5, 1 -/* 8036F184 0036BD64 48 00 00 08 */ b lbl_8036F18C -lbl_8036F188: -/* 8036F188 0036BD68 38 A0 00 02 */ li r5, 2 -lbl_8036F18C: -/* 8036F18C 0036BD6C 28 1B 00 00 */ cmplwi r27, 0 -/* 8036F190 0036BD70 41 82 00 18 */ beq lbl_8036F1A8 -/* 8036F194 0036BD74 39 9B 00 00 */ addi r12, r27, 0 -/* 8036F198 0036BD78 7D 88 03 A6 */ mtlr r12 -/* 8036F19C 0036BD7C 38 7D 00 00 */ addi r3, r29, 0 -/* 8036F1A0 0036BD80 38 9C 00 00 */ addi r4, r28, 0 -/* 8036F1A4 0036BD84 4E 80 00 21 */ blrl -lbl_8036F1A8: -/* 8036F1A8 0036BD88 80 1D 00 14 */ lwz r0, 0x14(r29) -/* 8036F1AC 0036BD8C 54 00 04 E7 */ rlwinm. r0, r0, 0, 0x13, 0x13 -/* 8036F1B0 0036BD90 40 82 00 28 */ bne lbl_8036F1D8 -/* 8036F1B4 0036BD94 83 DD 00 10 */ lwz r30, 0x10(r29) -/* 8036F1B8 0036BD98 48 00 00 18 */ b lbl_8036F1D0 -lbl_8036F1BC: -/* 8036F1BC 0036BD9C 38 7E 00 00 */ addi r3, r30, 0 -/* 8036F1C0 0036BDA0 38 9B 00 00 */ addi r4, r27, 0 -/* 8036F1C4 0036BDA4 38 BC 00 00 */ addi r5, r28, 0 -/* 8036F1C8 0036BDA8 4B FF FD E5 */ bl func_8036EFAC -/* 8036F1CC 0036BDAC 83 DE 00 08 */ lwz r30, 8(r30) -lbl_8036F1D0: -/* 8036F1D0 0036BDB0 28 1E 00 00 */ cmplwi r30, 0 -/* 8036F1D4 0036BDB4 40 82 FF E8 */ bne lbl_8036F1BC -lbl_8036F1D8: -/* 8036F1D8 0036BDB8 83 BD 00 08 */ lwz r29, 8(r29) -lbl_8036F1DC: -/* 8036F1DC 0036BDBC 28 1D 00 00 */ cmplwi r29, 0 -/* 8036F1E0 0036BDC0 40 82 FF 6C */ bne lbl_8036F14C -lbl_8036F1E4: -/* 8036F1E4 0036BDC4 BB 61 00 1C */ lmw r27, 0x1c(r1) -/* 8036F1E8 0036BDC8 80 01 00 34 */ lwz r0, 0x34(r1) -/* 8036F1EC 0036BDCC 38 21 00 30 */ addi r1, r1, 0x30 -/* 8036F1F0 0036BDD0 7C 08 03 A6 */ mtlr r0 -/* 8036F1F4 0036BDD4 4E 80 00 20 */ blr - -.global HSD_JObjMakeMatrix -HSD_JObjMakeMatrix: -/* 8036F1F8 0036BDD8 7C 08 02 A6 */ mflr r0 -/* 8036F1FC 0036BDDC 90 01 00 04 */ stw r0, 4(r1) -/* 8036F200 0036BDE0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8036F204 0036BDE4 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8036F208 0036BDE8 7C 7F 1B 78 */ mr r31, r3 -/* 8036F20C 0036BDEC 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8036F210 0036BDF0 83 C3 00 0C */ lwz r30, 0xc(r3) -/* 8036F214 0036BDF4 28 1E 00 00 */ cmplwi r30, 0 -/* 8036F218 0036BDF8 41 82 00 44 */ beq lbl_8036F25C -/* 8036F21C 0036BDFC 40 82 00 14 */ bne lbl_8036F230 -/* 8036F220 0036BE00 38 6D A7 00 */ addi r3, r13, lbl_804D5DA0@sda21 -/* 8036F224 0036BE04 38 80 02 34 */ li r4, 0x234 -/* 8036F228 0036BE08 38 AD A7 08 */ addi r5, r13, lbl_804D5DA8@sda21 -/* 8036F22C 0036BE0C 48 01 8F F5 */ bl __assert -lbl_8036F230: -/* 8036F230 0036BE10 80 9E 00 14 */ lwz r4, 0x14(r30) -/* 8036F234 0036BE14 38 60 00 00 */ li r3, 0 -/* 8036F238 0036BE18 54 80 02 11 */ rlwinm. r0, r4, 0, 8, 8 -/* 8036F23C 0036BE1C 40 82 00 10 */ bne lbl_8036F24C -/* 8036F240 0036BE20 54 80 06 73 */ rlwinm. r0, r4, 0, 0x19, 0x19 -/* 8036F244 0036BE24 41 82 00 08 */ beq lbl_8036F24C -/* 8036F248 0036BE28 38 60 00 01 */ li r3, 1 -lbl_8036F24C: -/* 8036F24C 0036BE2C 2C 03 00 00 */ cmpwi r3, 0 -/* 8036F250 0036BE30 41 82 00 0C */ beq lbl_8036F25C -/* 8036F254 0036BE34 7F C3 F3 78 */ mr r3, r30 -/* 8036F258 0036BE38 48 00 3E 21 */ bl HSD_JObjSetupMatrixSub -lbl_8036F25C: -/* 8036F25C 0036BE3C 80 1F 00 14 */ lwz r0, 0x14(r31) -/* 8036F260 0036BE40 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 8036F264 0036BE44 41 82 00 74 */ beq lbl_8036F2D8 -/* 8036F268 0036BE48 80 7F 00 0C */ lwz r3, 0xc(r31) -/* 8036F26C 0036BE4C 28 03 00 00 */ cmplwi r3, 0 -/* 8036F270 0036BE50 41 82 00 4C */ beq lbl_8036F2BC -/* 8036F274 0036BE54 80 03 00 74 */ lwz r0, 0x74(r3) -/* 8036F278 0036BE58 28 00 00 00 */ cmplwi r0, 0 -/* 8036F27C 0036BE5C 41 82 00 40 */ beq lbl_8036F2BC -/* 8036F280 0036BE60 80 1F 00 74 */ lwz r0, 0x74(r31) -/* 8036F284 0036BE64 28 00 00 00 */ cmplwi r0, 0 -/* 8036F288 0036BE68 40 82 00 0C */ bne lbl_8036F294 -/* 8036F28C 0036BE6C 48 00 B3 85 */ bl HSD_VecAlloc -/* 8036F290 0036BE70 90 7F 00 74 */ stw r3, 0x74(r31) -lbl_8036F294: -/* 8036F294 0036BE74 80 7F 00 0C */ lwz r3, 0xc(r31) -/* 8036F298 0036BE78 80 9F 00 74 */ lwz r4, 0x74(r31) -/* 8036F29C 0036BE7C 80 A3 00 74 */ lwz r5, 0x74(r3) -/* 8036F2A0 0036BE80 80 65 00 00 */ lwz r3, 0(r5) -/* 8036F2A4 0036BE84 80 05 00 04 */ lwz r0, 4(r5) -/* 8036F2A8 0036BE88 90 64 00 00 */ stw r3, 0(r4) -/* 8036F2AC 0036BE8C 90 04 00 04 */ stw r0, 4(r4) -/* 8036F2B0 0036BE90 80 05 00 08 */ lwz r0, 8(r5) -/* 8036F2B4 0036BE94 90 04 00 08 */ stw r0, 8(r4) -/* 8036F2B8 0036BE98 48 00 00 B8 */ b lbl_8036F370 -lbl_8036F2BC: -/* 8036F2BC 0036BE9C 80 7F 00 74 */ lwz r3, 0x74(r31) -/* 8036F2C0 0036BEA0 28 03 00 00 */ cmplwi r3, 0 -/* 8036F2C4 0036BEA4 41 82 00 AC */ beq lbl_8036F370 -/* 8036F2C8 0036BEA8 48 00 B3 95 */ bl HSD_VecFree -/* 8036F2CC 0036BEAC 38 00 00 00 */ li r0, 0 -/* 8036F2D0 0036BEB0 90 1F 00 74 */ stw r0, 0x74(r31) -/* 8036F2D4 0036BEB4 48 00 00 9C */ b lbl_8036F370 -lbl_8036F2D8: -/* 8036F2D8 0036BEB8 80 1F 00 74 */ lwz r0, 0x74(r31) -/* 8036F2DC 0036BEBC 28 00 00 00 */ cmplwi r0, 0 -/* 8036F2E0 0036BEC0 40 82 00 0C */ bne lbl_8036F2EC -/* 8036F2E4 0036BEC4 48 00 B3 2D */ bl HSD_VecAlloc -/* 8036F2E8 0036BEC8 90 7F 00 74 */ stw r3, 0x74(r31) -lbl_8036F2EC: -/* 8036F2EC 0036BECC 80 7F 00 0C */ lwz r3, 0xc(r31) -/* 8036F2F0 0036BED0 28 03 00 00 */ cmplwi r3, 0 -/* 8036F2F4 0036BED4 41 82 00 60 */ beq lbl_8036F354 -/* 8036F2F8 0036BED8 80 63 00 74 */ lwz r3, 0x74(r3) -/* 8036F2FC 0036BEDC 28 03 00 00 */ cmplwi r3, 0 -/* 8036F300 0036BEE0 41 82 00 54 */ beq lbl_8036F354 -/* 8036F304 0036BEE4 C0 3F 00 2C */ lfs f1, 0x2c(r31) -/* 8036F308 0036BEE8 C0 03 00 00 */ lfs f0, 0(r3) -/* 8036F30C 0036BEEC 80 7F 00 74 */ lwz r3, 0x74(r31) -/* 8036F310 0036BEF0 EC 01 00 32 */ fmuls f0, f1, f0 -/* 8036F314 0036BEF4 D0 03 00 00 */ stfs f0, 0(r3) -/* 8036F318 0036BEF8 80 7F 00 0C */ lwz r3, 0xc(r31) -/* 8036F31C 0036BEFC C0 3F 00 30 */ lfs f1, 0x30(r31) -/* 8036F320 0036BF00 80 83 00 74 */ lwz r4, 0x74(r3) -/* 8036F324 0036BF04 80 7F 00 74 */ lwz r3, 0x74(r31) -/* 8036F328 0036BF08 C0 04 00 04 */ lfs f0, 4(r4) -/* 8036F32C 0036BF0C EC 01 00 32 */ fmuls f0, f1, f0 -/* 8036F330 0036BF10 D0 03 00 04 */ stfs f0, 4(r3) -/* 8036F334 0036BF14 80 7F 00 0C */ lwz r3, 0xc(r31) -/* 8036F338 0036BF18 C0 3F 00 34 */ lfs f1, 0x34(r31) -/* 8036F33C 0036BF1C 80 83 00 74 */ lwz r4, 0x74(r3) -/* 8036F340 0036BF20 80 7F 00 74 */ lwz r3, 0x74(r31) -/* 8036F344 0036BF24 C0 04 00 08 */ lfs f0, 8(r4) -/* 8036F348 0036BF28 EC 01 00 32 */ fmuls f0, f1, f0 -/* 8036F34C 0036BF2C D0 03 00 08 */ stfs f0, 8(r3) -/* 8036F350 0036BF30 48 00 00 20 */ b lbl_8036F370 -lbl_8036F354: -/* 8036F354 0036BF34 80 9F 00 74 */ lwz r4, 0x74(r31) -/* 8036F358 0036BF38 80 7F 00 2C */ lwz r3, 0x2c(r31) -/* 8036F35C 0036BF3C 80 1F 00 30 */ lwz r0, 0x30(r31) -/* 8036F360 0036BF40 90 64 00 00 */ stw r3, 0(r4) -/* 8036F364 0036BF44 90 04 00 04 */ stw r0, 4(r4) -/* 8036F368 0036BF48 80 1F 00 34 */ lwz r0, 0x34(r31) -/* 8036F36C 0036BF4C 90 04 00 08 */ stw r0, 8(r4) -lbl_8036F370: -/* 8036F370 0036BF50 80 1F 00 14 */ lwz r0, 0x14(r31) -/* 8036F374 0036BF54 54 00 03 9D */ rlwinm. r0, r0, 0, 0xe, 0xe -/* 8036F378 0036BF58 41 82 00 50 */ beq lbl_8036F3C8 -/* 8036F37C 0036BF5C 80 9F 00 0C */ lwz r4, 0xc(r31) -/* 8036F380 0036BF60 38 60 00 00 */ li r3, 0 -/* 8036F384 0036BF64 28 04 00 00 */ cmplwi r4, 0 -/* 8036F388 0036BF68 41 82 00 14 */ beq lbl_8036F39C -/* 8036F38C 0036BF6C 80 04 00 74 */ lwz r0, 0x74(r4) -/* 8036F390 0036BF70 28 00 00 00 */ cmplwi r0, 0 -/* 8036F394 0036BF74 41 82 00 08 */ beq lbl_8036F39C -/* 8036F398 0036BF78 38 60 00 01 */ li r3, 1 -lbl_8036F39C: -/* 8036F39C 0036BF7C 2C 03 00 00 */ cmpwi r3, 0 -/* 8036F3A0 0036BF80 41 82 00 0C */ beq lbl_8036F3AC -/* 8036F3A4 0036BF84 80 E4 00 74 */ lwz r7, 0x74(r4) -/* 8036F3A8 0036BF88 48 00 00 08 */ b lbl_8036F3B0 -lbl_8036F3AC: -/* 8036F3AC 0036BF8C 38 E0 00 00 */ li r7, 0 -lbl_8036F3B0: -/* 8036F3B0 0036BF90 38 7F 00 44 */ addi r3, r31, 0x44 -/* 8036F3B4 0036BF94 38 9F 00 2C */ addi r4, r31, 0x2c -/* 8036F3B8 0036BF98 38 BF 00 1C */ addi r5, r31, 0x1c -/* 8036F3BC 0036BF9C 38 DF 00 38 */ addi r6, r31, 0x38 -/* 8036F3C0 0036BFA0 48 00 B0 7D */ bl HSD_MtxSRTQuat -/* 8036F3C4 0036BFA4 48 00 00 4C */ b lbl_8036F410 -lbl_8036F3C8: -/* 8036F3C8 0036BFA8 80 9F 00 0C */ lwz r4, 0xc(r31) -/* 8036F3CC 0036BFAC 38 60 00 00 */ li r3, 0 -/* 8036F3D0 0036BFB0 28 04 00 00 */ cmplwi r4, 0 -/* 8036F3D4 0036BFB4 41 82 00 14 */ beq lbl_8036F3E8 -/* 8036F3D8 0036BFB8 80 04 00 74 */ lwz r0, 0x74(r4) -/* 8036F3DC 0036BFBC 28 00 00 00 */ cmplwi r0, 0 -/* 8036F3E0 0036BFC0 41 82 00 08 */ beq lbl_8036F3E8 -/* 8036F3E4 0036BFC4 38 60 00 01 */ li r3, 1 -lbl_8036F3E8: -/* 8036F3E8 0036BFC8 2C 03 00 00 */ cmpwi r3, 0 -/* 8036F3EC 0036BFCC 41 82 00 0C */ beq lbl_8036F3F8 -/* 8036F3F0 0036BFD0 80 E4 00 74 */ lwz r7, 0x74(r4) -/* 8036F3F4 0036BFD4 48 00 00 08 */ b lbl_8036F3FC -lbl_8036F3F8: -/* 8036F3F8 0036BFD8 38 E0 00 00 */ li r7, 0 -lbl_8036F3FC: -/* 8036F3FC 0036BFDC 38 7F 00 44 */ addi r3, r31, 0x44 -/* 8036F400 0036BFE0 38 9F 00 2C */ addi r4, r31, 0x2c -/* 8036F404 0036BFE4 38 BF 00 1C */ addi r5, r31, 0x1c -/* 8036F408 0036BFE8 38 DF 00 38 */ addi r6, r31, 0x38 -/* 8036F40C 0036BFEC 48 00 AE 45 */ bl HSD_MtxSRT -lbl_8036F410: -/* 8036F410 0036BFF0 80 7F 00 0C */ lwz r3, 0xc(r31) -/* 8036F414 0036BFF4 28 03 00 00 */ cmplwi r3, 0 -/* 8036F418 0036BFF8 41 82 00 14 */ beq lbl_8036F42C -/* 8036F41C 0036BFFC 38 9F 00 44 */ addi r4, r31, 0x44 -/* 8036F420 0036C000 38 A4 00 00 */ addi r5, r4, 0 -/* 8036F424 0036C004 38 63 00 44 */ addi r3, r3, 0x44 -/* 8036F428 0036C008 4B FD 2D DD */ bl PSMTXConcat -lbl_8036F42C: -/* 8036F42C 0036C00C 80 7F 00 7C */ lwz r3, 0x7c(r31) -/* 8036F430 0036C010 28 03 00 00 */ cmplwi r3, 0 -/* 8036F434 0036C014 41 82 00 7C */ beq lbl_8036F4B0 -/* 8036F438 0036C018 83 C3 00 18 */ lwz r30, 0x18(r3) -/* 8036F43C 0036C01C 28 1E 00 00 */ cmplwi r30, 0 -/* 8036F440 0036C020 41 82 00 70 */ beq lbl_8036F4B0 -/* 8036F444 0036C024 41 82 00 44 */ beq lbl_8036F488 -/* 8036F448 0036C028 40 82 00 14 */ bne lbl_8036F45C -/* 8036F44C 0036C02C 38 6D A7 00 */ addi r3, r13, lbl_804D5DA0@sda21 -/* 8036F450 0036C030 38 80 02 34 */ li r4, 0x234 -/* 8036F454 0036C034 38 AD A7 08 */ addi r5, r13, lbl_804D5DA8@sda21 -/* 8036F458 0036C038 48 01 8D C9 */ bl __assert -lbl_8036F45C: -/* 8036F45C 0036C03C 80 9E 00 14 */ lwz r4, 0x14(r30) -/* 8036F460 0036C040 38 60 00 00 */ li r3, 0 -/* 8036F464 0036C044 54 80 02 11 */ rlwinm. r0, r4, 0, 8, 8 -/* 8036F468 0036C048 40 82 00 10 */ bne lbl_8036F478 -/* 8036F46C 0036C04C 54 80 06 73 */ rlwinm. r0, r4, 0, 0x19, 0x19 -/* 8036F470 0036C050 41 82 00 08 */ beq lbl_8036F478 -/* 8036F474 0036C054 38 60 00 01 */ li r3, 1 -lbl_8036F478: -/* 8036F478 0036C058 2C 03 00 00 */ cmpwi r3, 0 -/* 8036F47C 0036C05C 41 82 00 0C */ beq lbl_8036F488 -/* 8036F480 0036C060 7F C3 F3 78 */ mr r3, r30 -/* 8036F484 0036C064 48 00 3B F5 */ bl HSD_JObjSetupMatrixSub -lbl_8036F488: -/* 8036F488 0036C068 38 7E 00 44 */ addi r3, r30, 0x44 -/* 8036F48C 0036C06C 38 9F 00 38 */ addi r4, r31, 0x38 -/* 8036F490 0036C070 38 A1 00 0C */ addi r5, r1, 0xc -/* 8036F494 0036C074 4B FD 36 15 */ bl PSMTXMUltiVec -/* 8036F498 0036C078 C0 01 00 0C */ lfs f0, 0xc(r1) -/* 8036F49C 0036C07C D0 1F 00 50 */ stfs f0, 0x50(r31) -/* 8036F4A0 0036C080 C0 01 00 10 */ lfs f0, 0x10(r1) -/* 8036F4A4 0036C084 D0 1F 00 60 */ stfs f0, 0x60(r31) -/* 8036F4A8 0036C088 C0 01 00 14 */ lfs f0, 0x14(r1) -/* 8036F4AC 0036C08C D0 1F 00 70 */ stfs f0, 0x70(r31) -lbl_8036F4B0: -/* 8036F4B0 0036C090 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8036F4B4 0036C094 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8036F4B8 0036C098 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8036F4BC 0036C09C 38 21 00 20 */ addi r1, r1, 0x20 -/* 8036F4C0 0036C0A0 7C 08 03 A6 */ mtlr r0 -/* 8036F4C4 0036C0A4 4E 80 00 20 */ blr - -.global HSD_JObjRemoveAnimByFlags -HSD_JObjRemoveAnimByFlags: -/* 8036F4C8 0036C0A8 7C 08 02 A6 */ mflr r0 -/* 8036F4CC 0036C0AC 90 01 00 04 */ stw r0, 4(r1) -/* 8036F4D0 0036C0B0 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8036F4D4 0036C0B4 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8036F4D8 0036C0B8 3B E4 00 00 */ addi r31, r4, 0 -/* 8036F4DC 0036C0BC 93 C1 00 10 */ stw r30, 0x10(r1) -/* 8036F4E0 0036C0C0 7C 7E 1B 79 */ or. r30, r3, r3 -/* 8036F4E4 0036C0C4 41 82 00 54 */ beq lbl_8036F538 -/* 8036F4E8 0036C0C8 57 E0 07 FF */ clrlwi. r0, r31, 0x1f -/* 8036F4EC 0036C0CC 41 82 00 14 */ beq lbl_8036F500 -/* 8036F4F0 0036C0D0 80 7E 00 7C */ lwz r3, 0x7c(r30) -/* 8036F4F4 0036C0D4 4B FF 4F D9 */ bl HSD_AObjRemove -/* 8036F4F8 0036C0D8 38 00 00 00 */ li r0, 0 -/* 8036F4FC 0036C0DC 90 1E 00 7C */ stw r0, 0x7c(r30) -lbl_8036F500: -/* 8036F500 0036C0E0 80 1E 00 14 */ lwz r0, 0x14(r30) -/* 8036F504 0036C0E4 70 00 40 20 */ andi. r0, r0, 0x4020 -/* 8036F508 0036C0E8 41 82 00 0C */ beq lbl_8036F514 -/* 8036F50C 0036C0EC 38 00 00 00 */ li r0, 0 -/* 8036F510 0036C0F0 48 00 00 08 */ b lbl_8036F518 -lbl_8036F514: -/* 8036F514 0036C0F4 38 00 00 01 */ li r0, 1 -lbl_8036F518: -/* 8036F518 0036C0F8 2C 00 00 00 */ cmpwi r0, 0 -/* 8036F51C 0036C0FC 41 82 00 10 */ beq lbl_8036F52C -/* 8036F520 0036C100 80 7E 00 18 */ lwz r3, 0x18(r30) -/* 8036F524 0036C104 7F E4 FB 78 */ mr r4, r31 -/* 8036F528 0036C108 4B FE E8 E1 */ bl HSD_DObjRemoveAnimAllByFlags -lbl_8036F52C: -/* 8036F52C 0036C10C 80 7E 00 80 */ lwz r3, 0x80(r30) -/* 8036F530 0036C110 7F E4 FB 78 */ mr r4, r31 -/* 8036F534 0036C114 48 00 BA 8D */ bl HSD_RObjRemoveAnimAllByFlags -lbl_8036F538: -/* 8036F538 0036C118 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8036F53C 0036C11C 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8036F540 0036C120 83 C1 00 10 */ lwz r30, 0x10(r1) -/* 8036F544 0036C124 38 21 00 18 */ addi r1, r1, 0x18 -/* 8036F548 0036C128 7C 08 03 A6 */ mtlr r0 -/* 8036F54C 0036C12C 4E 80 00 20 */ blr - -.global HSD_JObjRemoveAnimAllByFlags -HSD_JObjRemoveAnimAllByFlags: -/* 8036F550 0036C130 7C 08 02 A6 */ mflr r0 -/* 8036F554 0036C134 90 01 00 04 */ stw r0, 4(r1) -/* 8036F558 0036C138 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8036F55C 0036C13C 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8036F560 0036C140 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8036F564 0036C144 7C 7E 1B 79 */ or. r30, r3, r3 -/* 8036F568 0036C148 93 A1 00 14 */ stw r29, 0x14(r1) -/* 8036F56C 0036C14C 3B A4 00 00 */ addi r29, r4, 0 -/* 8036F570 0036C150 41 82 00 B8 */ beq lbl_8036F628 -/* 8036F574 0036C154 41 82 00 54 */ beq lbl_8036F5C8 -/* 8036F578 0036C158 57 A0 07 FF */ clrlwi. r0, r29, 0x1f -/* 8036F57C 0036C15C 41 82 00 14 */ beq lbl_8036F590 -/* 8036F580 0036C160 80 7E 00 7C */ lwz r3, 0x7c(r30) -/* 8036F584 0036C164 4B FF 4F 49 */ bl HSD_AObjRemove -/* 8036F588 0036C168 38 00 00 00 */ li r0, 0 -/* 8036F58C 0036C16C 90 1E 00 7C */ stw r0, 0x7c(r30) -lbl_8036F590: -/* 8036F590 0036C170 80 1E 00 14 */ lwz r0, 0x14(r30) -/* 8036F594 0036C174 70 00 40 20 */ andi. r0, r0, 0x4020 -/* 8036F598 0036C178 41 82 00 0C */ beq lbl_8036F5A4 -/* 8036F59C 0036C17C 38 00 00 00 */ li r0, 0 -/* 8036F5A0 0036C180 48 00 00 08 */ b lbl_8036F5A8 -lbl_8036F5A4: -/* 8036F5A4 0036C184 38 00 00 01 */ li r0, 1 -lbl_8036F5A8: -/* 8036F5A8 0036C188 2C 00 00 00 */ cmpwi r0, 0 -/* 8036F5AC 0036C18C 41 82 00 10 */ beq lbl_8036F5BC -/* 8036F5B0 0036C190 80 7E 00 18 */ lwz r3, 0x18(r30) -/* 8036F5B4 0036C194 7F A4 EB 78 */ mr r4, r29 -/* 8036F5B8 0036C198 4B FE E8 51 */ bl HSD_DObjRemoveAnimAllByFlags -lbl_8036F5BC: -/* 8036F5BC 0036C19C 80 7E 00 80 */ lwz r3, 0x80(r30) -/* 8036F5C0 0036C1A0 7F A4 EB 78 */ mr r4, r29 -/* 8036F5C4 0036C1A4 48 00 B9 FD */ bl HSD_RObjRemoveAnimAllByFlags -lbl_8036F5C8: -/* 8036F5C8 0036C1A8 80 1E 00 14 */ lwz r0, 0x14(r30) -/* 8036F5CC 0036C1AC 54 00 04 E7 */ rlwinm. r0, r0, 0, 0x13, 0x13 -/* 8036F5D0 0036C1B0 40 82 00 58 */ bne lbl_8036F628 -/* 8036F5D4 0036C1B4 83 DE 00 10 */ lwz r30, 0x10(r30) -/* 8036F5D8 0036C1B8 48 00 00 48 */ b lbl_8036F620 -lbl_8036F5DC: -/* 8036F5DC 0036C1BC 28 1E 00 00 */ cmplwi r30, 0 -/* 8036F5E0 0036C1C0 41 82 00 3C */ beq lbl_8036F61C -/* 8036F5E4 0036C1C4 38 7E 00 00 */ addi r3, r30, 0 -/* 8036F5E8 0036C1C8 38 9D 00 00 */ addi r4, r29, 0 -/* 8036F5EC 0036C1CC 4B FF FE DD */ bl HSD_JObjRemoveAnimByFlags -/* 8036F5F0 0036C1D0 80 1E 00 14 */ lwz r0, 0x14(r30) -/* 8036F5F4 0036C1D4 54 00 04 E7 */ rlwinm. r0, r0, 0, 0x13, 0x13 -/* 8036F5F8 0036C1D8 40 82 00 24 */ bne lbl_8036F61C -/* 8036F5FC 0036C1DC 83 FE 00 10 */ lwz r31, 0x10(r30) -/* 8036F600 0036C1E0 48 00 00 14 */ b lbl_8036F614 -lbl_8036F604: -/* 8036F604 0036C1E4 38 7F 00 00 */ addi r3, r31, 0 -/* 8036F608 0036C1E8 38 9D 00 00 */ addi r4, r29, 0 -/* 8036F60C 0036C1EC 4B FF FF 45 */ bl HSD_JObjRemoveAnimAllByFlags -/* 8036F610 0036C1F0 83 FF 00 08 */ lwz r31, 8(r31) -lbl_8036F614: -/* 8036F614 0036C1F4 28 1F 00 00 */ cmplwi r31, 0 -/* 8036F618 0036C1F8 40 82 FF EC */ bne lbl_8036F604 -lbl_8036F61C: -/* 8036F61C 0036C1FC 83 DE 00 08 */ lwz r30, 8(r30) -lbl_8036F620: -/* 8036F620 0036C200 28 1E 00 00 */ cmplwi r30, 0 -/* 8036F624 0036C204 40 82 FF B8 */ bne lbl_8036F5DC -lbl_8036F628: -/* 8036F628 0036C208 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8036F62C 0036C20C 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8036F630 0036C210 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8036F634 0036C214 83 A1 00 14 */ lwz r29, 0x14(r1) -/* 8036F638 0036C218 38 21 00 20 */ addi r1, r1, 0x20 -/* 8036F63C 0036C21C 7C 08 03 A6 */ mtlr r0 -/* 8036F640 0036C220 4E 80 00 20 */ blr - -.global HSD_JObjRemoveAnim -HSD_JObjRemoveAnim: -/* 8036F644 0036C224 7C 08 02 A6 */ mflr r0 -/* 8036F648 0036C228 90 01 00 04 */ stw r0, 4(r1) -/* 8036F64C 0036C22C 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8036F650 0036C230 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8036F654 0036C234 7C 7F 1B 79 */ or. r31, r3, r3 -/* 8036F658 0036C238 41 82 00 48 */ beq lbl_8036F6A0 -/* 8036F65C 0036C23C 80 7F 00 7C */ lwz r3, 0x7c(r31) -/* 8036F660 0036C240 4B FF 4E 6D */ bl HSD_AObjRemove -/* 8036F664 0036C244 38 60 00 00 */ li r3, 0 -/* 8036F668 0036C248 90 7F 00 7C */ stw r3, 0x7c(r31) -/* 8036F66C 0036C24C 80 1F 00 14 */ lwz r0, 0x14(r31) -/* 8036F670 0036C250 70 00 40 20 */ andi. r0, r0, 0x4020 -/* 8036F674 0036C254 41 82 00 08 */ beq lbl_8036F67C -/* 8036F678 0036C258 48 00 00 08 */ b lbl_8036F680 -lbl_8036F67C: -/* 8036F67C 0036C25C 38 60 00 01 */ li r3, 1 -lbl_8036F680: -/* 8036F680 0036C260 2C 03 00 00 */ cmpwi r3, 0 -/* 8036F684 0036C264 41 82 00 10 */ beq lbl_8036F694 -/* 8036F688 0036C268 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 8036F68C 0036C26C 38 80 07 FF */ li r4, 0x7ff -/* 8036F690 0036C270 4B FE E7 79 */ bl HSD_DObjRemoveAnimAllByFlags -lbl_8036F694: -/* 8036F694 0036C274 80 7F 00 80 */ lwz r3, 0x80(r31) -/* 8036F698 0036C278 38 80 07 FF */ li r4, 0x7ff -/* 8036F69C 0036C27C 48 00 B9 25 */ bl HSD_RObjRemoveAnimAllByFlags -lbl_8036F6A0: -/* 8036F6A0 0036C280 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8036F6A4 0036C284 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8036F6A8 0036C288 38 21 00 18 */ addi r1, r1, 0x18 -/* 8036F6AC 0036C28C 7C 08 03 A6 */ mtlr r0 -/* 8036F6B0 0036C290 4E 80 00 20 */ blr - -.global HSD_JObjRemoveAnimAll -HSD_JObjRemoveAnimAll: -/* 8036F6B4 0036C294 7C 08 02 A6 */ mflr r0 -/* 8036F6B8 0036C298 90 01 00 04 */ stw r0, 4(r1) -/* 8036F6BC 0036C29C 94 21 FF E8 */ stwu r1, -0x18(r1) -/* 8036F6C0 0036C2A0 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8036F6C4 0036C2A4 7C 7F 1B 79 */ or. r31, r3, r3 -/* 8036F6C8 0036C2A8 41 82 00 3C */ beq lbl_8036F704 -/* 8036F6CC 0036C2AC 38 7F 00 00 */ addi r3, r31, 0 -/* 8036F6D0 0036C2B0 38 80 07 FF */ li r4, 0x7ff -/* 8036F6D4 0036C2B4 4B FF FD F5 */ bl HSD_JObjRemoveAnimByFlags -/* 8036F6D8 0036C2B8 80 1F 00 14 */ lwz r0, 0x14(r31) -/* 8036F6DC 0036C2BC 54 00 04 E7 */ rlwinm. r0, r0, 0, 0x13, 0x13 -/* 8036F6E0 0036C2C0 40 82 00 24 */ bne lbl_8036F704 -/* 8036F6E4 0036C2C4 83 FF 00 10 */ lwz r31, 0x10(r31) -/* 8036F6E8 0036C2C8 48 00 00 14 */ b lbl_8036F6FC -lbl_8036F6EC: -/* 8036F6EC 0036C2CC 38 7F 00 00 */ addi r3, r31, 0 -/* 8036F6F0 0036C2D0 38 80 07 FF */ li r4, 0x7ff -/* 8036F6F4 0036C2D4 4B FF FE 5D */ bl HSD_JObjRemoveAnimAllByFlags -/* 8036F6F8 0036C2D8 83 FF 00 08 */ lwz r31, 8(r31) -lbl_8036F6FC: -/* 8036F6FC 0036C2DC 28 1F 00 00 */ cmplwi r31, 0 -/* 8036F700 0036C2E0 40 82 FF EC */ bne lbl_8036F6EC -lbl_8036F704: -/* 8036F704 0036C2E4 80 01 00 1C */ lwz r0, 0x1c(r1) -/* 8036F708 0036C2E8 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8036F70C 0036C2EC 38 21 00 18 */ addi r1, r1, 0x18 -/* 8036F710 0036C2F0 7C 08 03 A6 */ mtlr r0 -/* 8036F714 0036C2F4 4E 80 00 20 */ blr - -.global HSD_JObjReqAnimByFlags -HSD_JObjReqAnimByFlags: -/* 8036F718 0036C2F8 7C 08 02 A6 */ mflr r0 -/* 8036F71C 0036C2FC 90 01 00 04 */ stw r0, 4(r1) -/* 8036F720 0036C300 94 21 FF D8 */ stwu r1, -0x28(r1) -/* 8036F724 0036C304 DB E1 00 20 */ stfd f31, 0x20(r1) -/* 8036F728 0036C308 FF E0 08 90 */ fmr f31, f1 -/* 8036F72C 0036C30C 93 E1 00 1C */ stw r31, 0x1c(r1) -/* 8036F730 0036C310 7C 9F 23 78 */ mr r31, r4 -/* 8036F734 0036C314 93 C1 00 18 */ stw r30, 0x18(r1) -/* 8036F738 0036C318 7C 7E 1B 79 */ or. r30, r3, r3 -/* 8036F73C 0036C31C 41 82 00 58 */ beq lbl_8036F794 -/* 8036F740 0036C320 57 E0 07 FF */ clrlwi. r0, r31, 0x1f -/* 8036F744 0036C324 41 82 00 10 */ beq lbl_8036F754 -/* 8036F748 0036C328 80 7E 00 7C */ lwz r3, 0x7c(r30) -/* 8036F74C 0036C32C FC 20 F8 90 */ fmr f1, f31 -/* 8036F750 0036C330 4B FF 49 BD */ bl HSD_AObjReqAnim -lbl_8036F754: -/* 8036F754 0036C334 80 1E 00 14 */ lwz r0, 0x14(r30) -/* 8036F758 0036C338 70 00 40 20 */ andi. r0, r0, 0x4020 -/* 8036F75C 0036C33C 41 82 00 0C */ beq lbl_8036F768 -/* 8036F760 0036C340 38 00 00 00 */ li r0, 0 -/* 8036F764 0036C344 48 00 00 08 */ b lbl_8036F76C -lbl_8036F768: -/* 8036F768 0036C348 38 00 00 01 */ li r0, 1 -lbl_8036F76C: -/* 8036F76C 0036C34C 2C 00 00 00 */ cmpwi r0, 0 -/* 8036F770 0036C350 41 82 00 14 */ beq lbl_8036F784 -/* 8036F774 0036C354 FC 20 F8 90 */ fmr f1, f31 -/* 8036F778 0036C358 80 7E 00 18 */ lwz r3, 0x18(r30) -/* 8036F77C 0036C35C 7F E4 FB 78 */ mr r4, r31 -/* 8036F780 0036C360 4B FE E7 D9 */ bl HSD_DObjReqAnimAllByFlags -lbl_8036F784: -/* 8036F784 0036C364 FC 20 F8 90 */ fmr f1, f31 -/* 8036F788 0036C368 80 7E 00 80 */ lwz r3, 0x80(r30) -/* 8036F78C 0036C36C 7F E4 FB 78 */ mr r4, r31 -/* 8036F790 0036C370 48 00 B9 21 */ bl HSD_RObjReqAnimAllByFlags -lbl_8036F794: -/* 8036F794 0036C374 80 01 00 2C */ lwz r0, 0x2c(r1) -/* 8036F798 0036C378 CB E1 00 20 */ lfd f31, 0x20(r1) -/* 8036F79C 0036C37C 83 E1 00 1C */ lwz r31, 0x1c(r1) -/* 8036F7A0 0036C380 83 C1 00 18 */ lwz r30, 0x18(r1) -/* 8036F7A4 0036C384 38 21 00 28 */ addi r1, r1, 0x28 -/* 8036F7A8 0036C388 7C 08 03 A6 */ mtlr r0 -/* 8036F7AC 0036C38C 4E 80 00 20 */ blr - -.global HSD_JObjReqAnimAllByFlags -HSD_JObjReqAnimAllByFlags: -/* 8036F7B0 0036C390 7C 08 02 A6 */ mflr r0 -/* 8036F7B4 0036C394 90 01 00 04 */ stw r0, 4(r1) -/* 8036F7B8 0036C398 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8036F7BC 0036C39C DB E1 00 28 */ stfd f31, 0x28(r1) -/* 8036F7C0 0036C3A0 FF E0 08 90 */ fmr f31, f1 -/* 8036F7C4 0036C3A4 93 E1 00 24 */ stw r31, 0x24(r1) -/* 8036F7C8 0036C3A8 93 C1 00 20 */ stw r30, 0x20(r1) -/* 8036F7CC 0036C3AC 7C 7E 1B 79 */ or. r30, r3, r3 -/* 8036F7D0 0036C3B0 93 A1 00 1C */ stw r29, 0x1c(r1) -/* 8036F7D4 0036C3B4 7C 9D 23 78 */ mr r29, r4 -/* 8036F7D8 0036C3B8 41 82 00 C4 */ beq lbl_8036F89C -/* 8036F7DC 0036C3BC 41 82 00 58 */ beq lbl_8036F834 -/* 8036F7E0 0036C3C0 57 A0 07 FF */ clrlwi. r0, r29, 0x1f -/* 8036F7E4 0036C3C4 41 82 00 10 */ beq lbl_8036F7F4 -/* 8036F7E8 0036C3C8 80 7E 00 7C */ lwz r3, 0x7c(r30) -/* 8036F7EC 0036C3CC FC 20 F8 90 */ fmr f1, f31 -/* 8036F7F0 0036C3D0 4B FF 49 1D */ bl HSD_AObjReqAnim -lbl_8036F7F4: -/* 8036F7F4 0036C3D4 80 1E 00 14 */ lwz r0, 0x14(r30) -/* 8036F7F8 0036C3D8 70 00 40 20 */ andi. r0, r0, 0x4020 -/* 8036F7FC 0036C3DC 41 82 00 0C */ beq lbl_8036F808 -/* 8036F800 0036C3E0 38 00 00 00 */ li r0, 0 -/* 8036F804 0036C3E4 48 00 00 08 */ b lbl_8036F80C -lbl_8036F808: -/* 8036F808 0036C3E8 38 00 00 01 */ li r0, 1 -lbl_8036F80C: -/* 8036F80C 0036C3EC 2C 00 00 00 */ cmpwi r0, 0 -/* 8036F810 0036C3F0 41 82 00 14 */ beq lbl_8036F824 -/* 8036F814 0036C3F4 FC 20 F8 90 */ fmr f1, f31 -/* 8036F818 0036C3F8 80 7E 00 18 */ lwz r3, 0x18(r30) -/* 8036F81C 0036C3FC 7F A4 EB 78 */ mr r4, r29 -/* 8036F820 0036C400 4B FE E7 39 */ bl HSD_DObjReqAnimAllByFlags -lbl_8036F824: -/* 8036F824 0036C404 FC 20 F8 90 */ fmr f1, f31 -/* 8036F828 0036C408 80 7E 00 80 */ lwz r3, 0x80(r30) -/* 8036F82C 0036C40C 7F A4 EB 78 */ mr r4, r29 -/* 8036F830 0036C410 48 00 B8 81 */ bl HSD_RObjReqAnimAllByFlags -lbl_8036F834: -/* 8036F834 0036C414 80 1E 00 14 */ lwz r0, 0x14(r30) -/* 8036F838 0036C418 54 00 04 E7 */ rlwinm. r0, r0, 0, 0x13, 0x13 -/* 8036F83C 0036C41C 40 82 00 60 */ bne lbl_8036F89C -/* 8036F840 0036C420 83 DE 00 10 */ lwz r30, 0x10(r30) -/* 8036F844 0036C424 48 00 00 50 */ b lbl_8036F894 -lbl_8036F848: -/* 8036F848 0036C428 28 1E 00 00 */ cmplwi r30, 0 -/* 8036F84C 0036C42C 41 82 00 44 */ beq lbl_8036F890 -/* 8036F850 0036C430 FC 20 F8 90 */ fmr f1, f31 -/* 8036F854 0036C434 38 7E 00 00 */ addi r3, r30, 0 -/* 8036F858 0036C438 38 9D 00 00 */ addi r4, r29, 0 -/* 8036F85C 0036C43C 4B FF FE BD */ bl HSD_JObjReqAnimByFlags -/* 8036F860 0036C440 80 1E 00 14 */ lwz r0, 0x14(r30) -/* 8036F864 0036C444 54 00 04 E7 */ rlwinm. r0, r0, 0, 0x13, 0x13 -/* 8036F868 0036C448 40 82 00 28 */ bne lbl_8036F890 -/* 8036F86C 0036C44C 83 FE 00 10 */ lwz r31, 0x10(r30) -/* 8036F870 0036C450 48 00 00 18 */ b lbl_8036F888 -lbl_8036F874: -/* 8036F874 0036C454 FC 20 F8 90 */ fmr f1, f31 -/* 8036F878 0036C458 38 7F 00 00 */ addi r3, r31, 0 -/* 8036F87C 0036C45C 38 9D 00 00 */ addi r4, r29, 0 -/* 8036F880 0036C460 4B FF FF 31 */ bl HSD_JObjReqAnimAllByFlags -/* 8036F884 0036C464 83 FF 00 08 */ lwz r31, 8(r31) -lbl_8036F888: -/* 8036F888 0036C468 28 1F 00 00 */ cmplwi r31, 0 -/* 8036F88C 0036C46C 40 82 FF E8 */ bne lbl_8036F874 -lbl_8036F890: -/* 8036F890 0036C470 83 DE 00 08 */ lwz r30, 8(r30) -lbl_8036F894: -/* 8036F894 0036C474 28 1E 00 00 */ cmplwi r30, 0 -/* 8036F898 0036C478 40 82 FF B0 */ bne lbl_8036F848 -lbl_8036F89C: -/* 8036F89C 0036C47C 80 01 00 34 */ lwz r0, 0x34(r1) -/* 8036F8A0 0036C480 CB E1 00 28 */ lfd f31, 0x28(r1) -/* 8036F8A4 0036C484 83 E1 00 24 */ lwz r31, 0x24(r1) -/* 8036F8A8 0036C488 83 C1 00 20 */ lwz r30, 0x20(r1) -/* 8036F8AC 0036C48C 83 A1 00 1C */ lwz r29, 0x1c(r1) -/* 8036F8B0 0036C490 38 21 00 30 */ addi r1, r1, 0x30 -/* 8036F8B4 0036C494 7C 08 03 A6 */ mtlr r0 -/* 8036F8B8 0036C498 4E 80 00 20 */ blr - -.global HSD_JObjReqAnimAll -HSD_JObjReqAnimAll: -/* 8036F8BC 0036C49C 7C 08 02 A6 */ mflr r0 -/* 8036F8C0 0036C4A0 90 01 00 04 */ stw r0, 4(r1) -/* 8036F8C4 0036C4A4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8036F8C8 0036C4A8 DB E1 00 18 */ stfd f31, 0x18(r1) -/* 8036F8CC 0036C4AC FF E0 08 90 */ fmr f31, f1 -/* 8036F8D0 0036C4B0 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8036F8D4 0036C4B4 7C 7F 1B 79 */ or. r31, r3, r3 -/* 8036F8D8 0036C4B8 41 82 00 44 */ beq lbl_8036F91C -/* 8036F8DC 0036C4BC FC 20 F8 90 */ fmr f1, f31 -/* 8036F8E0 0036C4C0 38 7F 00 00 */ addi r3, r31, 0 -/* 8036F8E4 0036C4C4 38 80 07 FF */ li r4, 0x7ff -/* 8036F8E8 0036C4C8 4B FF FE 31 */ bl HSD_JObjReqAnimByFlags -/* 8036F8EC 0036C4CC 80 1F 00 14 */ lwz r0, 0x14(r31) -/* 8036F8F0 0036C4D0 54 00 04 E7 */ rlwinm. r0, r0, 0, 0x13, 0x13 -/* 8036F8F4 0036C4D4 40 82 00 28 */ bne lbl_8036F91C -/* 8036F8F8 0036C4D8 83 FF 00 10 */ lwz r31, 0x10(r31) -/* 8036F8FC 0036C4DC 48 00 00 18 */ b lbl_8036F914 -lbl_8036F900: -/* 8036F900 0036C4E0 FC 20 F8 90 */ fmr f1, f31 -/* 8036F904 0036C4E4 38 7F 00 00 */ addi r3, r31, 0 -/* 8036F908 0036C4E8 38 80 07 FF */ li r4, 0x7ff -/* 8036F90C 0036C4EC 4B FF FE A5 */ bl HSD_JObjReqAnimAllByFlags -/* 8036F910 0036C4F0 83 FF 00 08 */ lwz r31, 8(r31) -lbl_8036F914: -/* 8036F914 0036C4F4 28 1F 00 00 */ cmplwi r31, 0 -/* 8036F918 0036C4F8 40 82 FF E8 */ bne lbl_8036F900 -lbl_8036F91C: -/* 8036F91C 0036C4FC 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8036F920 0036C500 CB E1 00 18 */ lfd f31, 0x18(r1) -/* 8036F924 0036C504 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8036F928 0036C508 38 21 00 20 */ addi r1, r1, 0x20 -/* 8036F92C 0036C50C 7C 08 03 A6 */ mtlr r0 -/* 8036F930 0036C510 4E 80 00 20 */ blr - -.global HSD_JObjReqAnim -HSD_JObjReqAnim: -/* 8036F934 0036C514 7C 08 02 A6 */ mflr r0 -/* 8036F938 0036C518 90 01 00 04 */ stw r0, 4(r1) -/* 8036F93C 0036C51C 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 8036F940 0036C520 DB E1 00 18 */ stfd f31, 0x18(r1) -/* 8036F944 0036C524 FF E0 08 90 */ fmr f31, f1 -/* 8036F948 0036C528 93 E1 00 14 */ stw r31, 0x14(r1) -/* 8036F94C 0036C52C 7C 7F 1B 79 */ or. r31, r3, r3 -/* 8036F950 0036C530 41 82 00 50 */ beq lbl_8036F9A0 -/* 8036F954 0036C534 80 7F 00 7C */ lwz r3, 0x7c(r31) -/* 8036F958 0036C538 FC 20 F8 90 */ fmr f1, f31 -/* 8036F95C 0036C53C 4B FF 47 B1 */ bl HSD_AObjReqAnim -/* 8036F960 0036C540 80 1F 00 14 */ lwz r0, 0x14(r31) -/* 8036F964 0036C544 70 00 40 20 */ andi. r0, r0, 0x4020 -/* 8036F968 0036C548 41 82 00 0C */ beq lbl_8036F974 -/* 8036F96C 0036C54C 38 00 00 00 */ li r0, 0 -/* 8036F970 0036C550 48 00 00 08 */ b lbl_8036F978 -lbl_8036F974: -/* 8036F974 0036C554 38 00 00 01 */ li r0, 1 -lbl_8036F978: -/* 8036F978 0036C558 2C 00 00 00 */ cmpwi r0, 0 -/* 8036F97C 0036C55C 41 82 00 14 */ beq lbl_8036F990 -/* 8036F980 0036C560 FC 20 F8 90 */ fmr f1, f31 -/* 8036F984 0036C564 80 7F 00 18 */ lwz r3, 0x18(r31) -/* 8036F988 0036C568 38 80 07 FF */ li r4, 0x7ff -/* 8036F98C 0036C56C 4B FE E5 CD */ bl HSD_DObjReqAnimAllByFlags -lbl_8036F990: -/* 8036F990 0036C570 FC 20 F8 90 */ fmr f1, f31 -/* 8036F994 0036C574 80 7F 00 80 */ lwz r3, 0x80(r31) -/* 8036F998 0036C578 38 80 07 FF */ li r4, 0x7ff -/* 8036F99C 0036C57C 48 00 B7 15 */ bl HSD_RObjReqAnimAllByFlags -lbl_8036F9A0: -/* 8036F9A0 0036C580 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8036F9A4 0036C584 CB E1 00 18 */ lfd f31, 0x18(r1) -/* 8036F9A8 0036C588 83 E1 00 14 */ lwz r31, 0x14(r1) -/* 8036F9AC 0036C58C 38 21 00 20 */ addi r1, r1, 0x20 -/* 8036F9B0 0036C590 7C 08 03 A6 */ mtlr r0 -/* 8036F9B4 0036C594 4E 80 00 20 */ blr - -.global JObjSortAnim -JObjSortAnim: -/* 8036F9B8 0036C598 28 03 00 00 */ cmplwi r3, 0 -/* 8036F9BC 0036C59C 4D 82 00 20 */ beqlr -/* 8036F9C0 0036C5A0 80 03 00 14 */ lwz r0, 0x14(r3) -/* 8036F9C4 0036C5A4 28 00 00 00 */ cmplwi r0, 0 -/* 8036F9C8 0036C5A8 40 82 00 08 */ bne lbl_8036F9D0 -/* 8036F9CC 0036C5AC 4E 80 00 20 */ blr -lbl_8036F9D0: -/* 8036F9D0 0036C5B0 38 A3 00 14 */ addi r5, r3, 0x14 -/* 8036F9D4 0036C5B4 48 00 00 2C */ b lbl_8036FA00 -lbl_8036F9D8: -/* 8036F9D8 0036C5B8 88 04 00 13 */ lbz r0, 0x13(r4) -/* 8036F9DC 0036C5BC 28 00 00 0C */ cmplwi r0, 0xc -/* 8036F9E0 0036C5C0 40 82 00 1C */ bne lbl_8036F9FC -/* 8036F9E4 0036C5C4 80 04 00 00 */ lwz r0, 0(r4) -/* 8036F9E8 0036C5C8 90 05 00 00 */ stw r0, 0(r5) -/* 8036F9EC 0036C5CC 80 03 00 14 */ lwz r0, 0x14(r3) -/* 8036F9F0 0036C5D0 90 04 00 00 */ stw r0, 0(r4) -/* 8036F9F4 0036C5D4 90 83 00 14 */ stw r4, 0x14(r3) -/* 8036F9F8 0036C5D8 4E 80 00 20 */ blr -lbl_8036F9FC: -/* 8036F9FC 0036C5DC 7C 85 23 78 */ mr r5, r4 -lbl_8036FA00: -/* 8036FA00 0036C5E0 80 85 00 00 */ lwz r4, 0(r5) -/* 8036FA04 0036C5E4 28 04 00 00 */ cmplwi r4, 0 -/* 8036FA08 0036C5E8 40 82 FF D0 */ bne lbl_8036F9D8 -/* 8036FA0C 0036C5EC 4E 80 00 20 */ blr - .global HSD_JObjAddAnim HSD_JObjAddAnim: /* 8036FA10 0036C5F0 7C 08 02 A6 */ mflr r0 @@ -1273,7 +296,7 @@ lbl_8036FDAC: /* 8036FDB8 0036C998 7C 08 03 A6 */ mtlr r0 /* 8036FDBC 0036C99C 4E 80 00 20 */ blr -lbl_8036FDC0: +JObjUpdateFunc: /* 8036FDC0 0036C9A0 7C 08 02 A6 */ mflr r0 /* 8036FDC4 0036C9A4 90 01 00 04 */ stw r0, 4(r1) /* 8036FDC8 0036C9A8 94 21 FF 60 */ stwu r1, -0xa0(r1) @@ -1293,7 +316,6 @@ lbl_8036FDC0: /* 8036FE00 0036C9E0 7C 03 00 2E */ lwzx r0, r3, r0 /* 8036FE04 0036C9E4 7C 09 03 A6 */ mtctr r0 /* 8036FE08 0036C9E8 4E 80 04 20 */ bctr -.global lbl_8036FE0C lbl_8036FE0C: /* 8036FE0C 0036C9EC C0 3D 00 00 */ lfs f1, 0(r29) /* 8036FE10 0036C9F0 C8 02 EB 48 */ lfd f0, lbl_804DE528@sda21(r2) @@ -1437,7 +459,6 @@ lbl_8036FFF0: /* 8036FFF8 0036CBD8 7F C3 F3 78 */ mr r3, r30 /* 8036FFFC 0036CBDC 48 00 32 ED */ bl HSD_JObjSetMtxDirtySub /* 80370000 0036CBE0 48 00 07 68 */ b lbl_80370768 -.global lbl_80370004 lbl_80370004: /* 80370004 0036CBE4 80 1E 00 14 */ lwz r0, 0x14(r30) /* 80370008 0036CBE8 54 00 02 95 */ rlwinm. r0, r0, 0, 0xa, 0xa @@ -1492,7 +513,6 @@ lbl_803700B0: /* 803700B8 0036CC98 7F C3 F3 78 */ mr r3, r30 /* 803700BC 0036CC9C 48 00 32 2D */ bl HSD_JObjSetMtxDirtySub /* 803700C0 0036CCA0 48 00 06 A8 */ b lbl_80370768 -.global lbl_803700C4 lbl_803700C4: /* 803700C4 0036CCA4 28 1E 00 00 */ cmplwi r30, 0 /* 803700C8 0036CCA8 C3 FD 00 00 */ lfs f31, 0(r29) @@ -1535,7 +555,6 @@ lbl_80370144: /* 8037014C 0036CD2C 7F C3 F3 78 */ mr r3, r30 /* 80370150 0036CD30 48 00 31 99 */ bl HSD_JObjSetMtxDirtySub /* 80370154 0036CD34 48 00 06 14 */ b lbl_80370768 -.global lbl_80370158 lbl_80370158: /* 80370158 0036CD38 28 1E 00 00 */ cmplwi r30, 0 /* 8037015C 0036CD3C C3 FD 00 00 */ lfs f31, 0(r29) @@ -1578,7 +597,6 @@ lbl_803701D8: /* 803701E0 0036CDC0 7F C3 F3 78 */ mr r3, r30 /* 803701E4 0036CDC4 48 00 31 05 */ bl HSD_JObjSetMtxDirtySub /* 803701E8 0036CDC8 48 00 05 80 */ b lbl_80370768 -.global lbl_803701EC lbl_803701EC: /* 803701EC 0036CDCC 28 1E 00 00 */ cmplwi r30, 0 /* 803701F0 0036CDD0 C3 FD 00 00 */ lfs f31, 0(r29) @@ -1613,7 +631,6 @@ lbl_80370250: /* 80370258 0036CE38 7F C3 F3 78 */ mr r3, r30 /* 8037025C 0036CE3C 48 00 30 8D */ bl HSD_JObjSetMtxDirtySub /* 80370260 0036CE40 48 00 05 08 */ b lbl_80370768 -.global lbl_80370264 lbl_80370264: /* 80370264 0036CE44 28 1E 00 00 */ cmplwi r30, 0 /* 80370268 0036CE48 C3 FD 00 00 */ lfs f31, 0(r29) @@ -1648,7 +665,6 @@ lbl_803702C8: /* 803702D0 0036CEB0 7F C3 F3 78 */ mr r3, r30 /* 803702D4 0036CEB4 48 00 30 15 */ bl HSD_JObjSetMtxDirtySub /* 803702D8 0036CEB8 48 00 04 90 */ b lbl_80370768 -.global lbl_803702DC lbl_803702DC: /* 803702DC 0036CEBC 28 1E 00 00 */ cmplwi r30, 0 /* 803702E0 0036CEC0 C3 FD 00 00 */ lfs f31, 0(r29) @@ -1683,7 +699,6 @@ lbl_80370340: /* 80370348 0036CF28 7F C3 F3 78 */ mr r3, r30 /* 8037034C 0036CF2C 48 00 2F 9D */ bl HSD_JObjSetMtxDirtySub /* 80370350 0036CF30 48 00 04 18 */ b lbl_80370768 -.global lbl_80370354 lbl_80370354: /* 80370354 0036CF34 C0 3D 00 00 */ lfs f1, 0(r29) /* 80370358 0036CF38 C0 02 EB 64 */ lfs f0, lbl_804DE544@sda21(r2) @@ -1729,7 +744,6 @@ lbl_803703E0: /* 803703E8 0036CFC8 7F C3 F3 78 */ mr r3, r30 /* 803703EC 0036CFCC 48 00 2E FD */ bl HSD_JObjSetMtxDirtySub /* 803703F0 0036CFD0 48 00 03 78 */ b lbl_80370768 -.global lbl_803703F4 lbl_803703F4: /* 803703F4 0036CFD4 C0 3D 00 00 */ lfs f1, 0(r29) /* 803703F8 0036CFD8 C0 02 EB 64 */ lfs f0, lbl_804DE544@sda21(r2) @@ -1775,7 +789,6 @@ lbl_80370480: /* 80370488 0036D068 7F C3 F3 78 */ mr r3, r30 /* 8037048C 0036D06C 48 00 2E 5D */ bl HSD_JObjSetMtxDirtySub /* 80370490 0036D070 48 00 02 D8 */ b lbl_80370768 -.global lbl_80370494 lbl_80370494: /* 80370494 0036D074 C0 3D 00 00 */ lfs f1, 0(r29) /* 80370498 0036D078 C0 02 EB 64 */ lfs f0, lbl_804DE544@sda21(r2) @@ -1821,7 +834,6 @@ lbl_80370520: /* 80370528 0036D108 7F C3 F3 78 */ mr r3, r30 /* 8037052C 0036D10C 48 00 2D BD */ bl HSD_JObjSetMtxDirtySub /* 80370530 0036D110 48 00 02 38 */ b lbl_80370768 -.global lbl_80370534 lbl_80370534: /* 80370534 0036D114 C0 3D 00 00 */ lfs f1, 0(r29) /* 80370538 0036D118 C8 02 EB 68 */ lfd f0, lbl_804DE548@sda21(r2) @@ -1836,7 +848,6 @@ lbl_80370554: /* 80370558 0036D138 38 80 00 10 */ li r4, 0x10 /* 8037055C 0036D13C 48 00 18 41 */ bl HSD_JObjSetFlagsAll /* 80370560 0036D140 48 00 02 08 */ b lbl_80370768 -.global lbl_80370564 lbl_80370564: /* 80370564 0036D144 C0 3D 00 00 */ lfs f1, 0(r29) /* 80370568 0036D148 C8 02 EB 68 */ lfd f0, lbl_804DE548@sda21(r2) @@ -1851,9 +862,8 @@ lbl_80370584: /* 80370588 0036D168 38 80 00 10 */ li r4, 0x10 /* 8037058C 0036D16C 48 00 17 75 */ bl HSD_JObjSetFlags /* 80370590 0036D170 48 00 01 D8 */ b lbl_80370768 -.global lbl_80370594 lbl_80370594: -/* 80370594 0036D174 83 6D BF E4 */ lwz r27, lbl_804D7684@sda21(r13) +/* 80370594 0036D174 83 6D BF E4 */ lwz r27, ufc_callbacks@sda21(r13) /* 80370598 0036D178 3F E0 43 30 */ lis r31, 0x4330 /* 8037059C 0036D17C CB E2 EB 70 */ lfd f31, lbl_804DE550@sda21(r2) /* 803705A0 0036D180 48 00 00 34 */ b lbl_803705D4 @@ -1874,9 +884,8 @@ lbl_803705D4: /* 803705D4 0036D1B4 28 1B 00 00 */ cmplwi r27, 0 /* 803705D8 0036D1B8 40 82 FF CC */ bne lbl_803705A4 /* 803705DC 0036D1BC 48 00 01 8C */ b lbl_80370768 -.global lbl_803705E0 lbl_803705E0: -/* 803705E0 0036D1C0 83 6D BF E4 */ lwz r27, lbl_804D7684@sda21(r13) +/* 803705E0 0036D1C0 83 6D BF E4 */ lwz r27, ufc_callbacks@sda21(r13) /* 803705E4 0036D1C4 48 00 00 20 */ b lbl_80370604 lbl_803705E8: /* 803705E8 0036D1C8 81 9B 00 04 */ lwz r12, 4(r27) @@ -1890,9 +899,8 @@ lbl_80370604: /* 80370604 0036D1E4 28 1B 00 00 */ cmplwi r27, 0 /* 80370608 0036D1E8 40 82 FF E0 */ bne lbl_803705E8 /* 8037060C 0036D1EC 48 00 01 5C */ b lbl_80370768 -.global lbl_80370610 lbl_80370610: -/* 80370610 0036D1F0 81 8D BF E8 */ lwz r12, lbl_804D7688@sda21(r13) +/* 80370610 0036D1F0 81 8D BF E8 */ lwz r12, dptcl_callback@sda21(r13) /* 80370614 0036D1F4 80 1D 00 00 */ lwz r0, 0(r29) /* 80370618 0036D1F8 28 0C 00 00 */ cmplwi r12, 0 /* 8037061C 0036D1FC 54 04 06 BE */ clrlwi r4, r0, 0x1a @@ -1903,18 +911,16 @@ lbl_80370610: /* 80370630 0036D210 38 60 00 00 */ li r3, 0 /* 80370634 0036D214 4E 80 00 21 */ blrl /* 80370638 0036D218 48 00 01 30 */ b lbl_80370768 -.global lbl_8037063C lbl_8037063C: -/* 8037063C 0036D21C 81 8D BF EC */ lwz r12, lbl_804D768C@sda21(r13) +/* 8037063C 0036D21C 81 8D BF EC */ lwz r12, jsound_callback@sda21(r13) /* 80370640 0036D220 28 0C 00 00 */ cmplwi r12, 0 /* 80370644 0036D224 41 82 01 24 */ beq lbl_80370768 /* 80370648 0036D228 80 7D 00 00 */ lwz r3, 0(r29) /* 8037064C 0036D22C 7D 88 03 A6 */ mtlr r12 /* 80370650 0036D230 4E 80 00 21 */ blrl /* 80370654 0036D234 48 00 01 14 */ b lbl_80370768 -.global lbl_80370658 lbl_80370658: -/* 80370658 0036D238 81 8D BF F0 */ lwz r12, lbl_804D7690@sda21(r13) +/* 80370658 0036D238 81 8D BF F0 */ lwz r12, ptcltgt_callback@sda21(r13) /* 8037065C 0036D23C 28 0C 00 00 */ cmplwi r12, 0 /* 80370660 0036D240 41 82 01 08 */ beq lbl_80370768 /* 80370664 0036D244 80 9D 00 00 */ lwz r4, 0(r29) @@ -1922,7 +928,6 @@ lbl_80370658: /* 8037066C 0036D24C 38 7E 00 00 */ addi r3, r30, 0 /* 80370670 0036D250 4E 80 00 21 */ blrl /* 80370674 0036D254 48 00 00 F4 */ b lbl_80370768 -.global lbl_80370678 lbl_80370678: /* 80370678 0036D258 C0 1D 00 00 */ lfs f0, 0(r29) /* 8037067C 0036D25C D0 1E 00 44 */ stfs f0, 0x44(r30) @@ -1931,7 +936,6 @@ lbl_80370678: /* 80370688 0036D268 C0 1D 00 08 */ lfs f0, 8(r29) /* 8037068C 0036D26C D0 1E 00 64 */ stfs f0, 0x64(r30) /* 80370690 0036D270 48 00 00 D8 */ b lbl_80370768 -.global lbl_80370694 lbl_80370694: /* 80370694 0036D274 C0 1D 00 00 */ lfs f0, 0(r29) /* 80370698 0036D278 D0 1E 00 48 */ stfs f0, 0x48(r30) @@ -1940,7 +944,6 @@ lbl_80370694: /* 803706A4 0036D284 C0 1D 00 08 */ lfs f0, 8(r29) /* 803706A8 0036D288 D0 1E 00 68 */ stfs f0, 0x68(r30) /* 803706AC 0036D28C 48 00 00 BC */ b lbl_80370768 -.global lbl_803706B0 lbl_803706B0: /* 803706B0 0036D290 C0 1D 00 00 */ lfs f0, 0(r29) /* 803706B4 0036D294 D0 1E 00 4C */ stfs f0, 0x4c(r30) @@ -1949,7 +952,6 @@ lbl_803706B0: /* 803706C0 0036D2A0 C0 1D 00 08 */ lfs f0, 8(r29) /* 803706C4 0036D2A4 D0 1E 00 6C */ stfs f0, 0x6c(r30) /* 803706C8 0036D2A8 48 00 00 A0 */ b lbl_80370768 -.global lbl_803706CC lbl_803706CC: /* 803706CC 0036D2AC C0 1D 00 00 */ lfs f0, 0(r29) /* 803706D0 0036D2B0 D0 1E 00 50 */ stfs f0, 0x50(r30) @@ -1958,7 +960,6 @@ lbl_803706CC: /* 803706DC 0036D2BC C0 1D 00 08 */ lfs f0, 8(r29) /* 803706E0 0036D2C0 D0 1E 00 70 */ stfs f0, 0x70(r30) /* 803706E4 0036D2C4 48 00 00 84 */ b lbl_80370768 -.global lbl_803706E8 lbl_803706E8: /* 803706E8 0036D2C8 80 1E 00 0C */ lwz r0, 0xc(r30) /* 803706EC 0036D2CC 28 00 00 00 */ cmplwi r0, 0 @@ -1998,7 +999,6 @@ lbl_8037075C: /* 8037075C 0036D33C 38 61 00 38 */ addi r3, r1, 0x38 /* 80370760 0036D340 38 9E 00 2C */ addi r4, r30, 0x2c /* 80370764 0036D344 48 00 98 25 */ bl func_80379F88 -.global lbl_80370768 lbl_80370768: /* 80370768 0036D348 BB 61 00 84 */ lmw r27, 0x84(r1) /* 8037076C 0036D34C 80 01 00 A4 */ lwz r0, 0xa4(r1) @@ -2017,9 +1017,9 @@ HSD_JObjAnim: /* 80370794 0036D374 41 82 00 50 */ beq lbl_803707E4 /* 80370798 0036D378 7F E3 FB 78 */ mr r3, r31 /* 8037079C 0036D37C 4B FF E4 75 */ bl HSD_JObjCheckDepend -/* 803707A0 0036D380 3C 80 80 37 */ lis r4, lbl_8036FDC0@ha +/* 803707A0 0036D380 3C 80 80 37 */ lis r4, JObjUpdateFunc@ha /* 803707A4 0036D384 80 7F 00 7C */ lwz r3, 0x7c(r31) -/* 803707A8 0036D388 38 A4 FD C0 */ addi r5, r4, lbl_8036FDC0@l +/* 803707A8 0036D388 38 A4 FD C0 */ addi r5, r4, JObjUpdateFunc@l /* 803707AC 0036D38C 38 9F 00 00 */ addi r4, r31, 0 /* 803707B0 0036D390 4B FF 39 E1 */ bl HSD_AObjInterpretAnim /* 803707B4 0036D394 80 7F 00 80 */ lwz r3, 0x80(r31) @@ -2056,9 +1056,9 @@ JObjAnimAll: /* 80370818 0036D3F8 41 82 00 50 */ beq lbl_80370868 /* 8037081C 0036D3FC 7F A3 EB 78 */ mr r3, r29 /* 80370820 0036D400 4B FF E3 F1 */ bl HSD_JObjCheckDepend -/* 80370824 0036D404 3C 80 80 37 */ lis r4, lbl_8036FDC0@ha +/* 80370824 0036D404 3C 80 80 37 */ lis r4, JObjUpdateFunc@ha /* 80370828 0036D408 80 7D 00 7C */ lwz r3, 0x7c(r29) -/* 8037082C 0036D40C 38 A4 FD C0 */ addi r5, r4, lbl_8036FDC0@l +/* 8037082C 0036D40C 38 A4 FD C0 */ addi r5, r4, JObjUpdateFunc@l /* 80370830 0036D410 38 9D 00 00 */ addi r4, r29, 0 /* 80370834 0036D414 4B FF 39 5D */ bl HSD_AObjInterpretAnim /* 80370838 0036D418 80 7D 00 80 */ lwz r3, 0x80(r29) @@ -2079,9 +1079,9 @@ lbl_80370868: /* 80370868 0036D448 80 1D 00 14 */ lwz r0, 0x14(r29) /* 8037086C 0036D44C 54 00 04 E7 */ rlwinm. r0, r0, 0, 0x13, 0x13 /* 80370870 0036D450 40 82 00 9C */ bne lbl_8037090C -/* 80370874 0036D454 3C 60 80 37 */ lis r3, lbl_8036FDC0@ha +/* 80370874 0036D454 3C 60 80 37 */ lis r3, JObjUpdateFunc@ha /* 80370878 0036D458 83 BD 00 10 */ lwz r29, 0x10(r29) -/* 8037087C 0036D45C 3B E3 FD C0 */ addi r31, r3, lbl_8036FDC0@l +/* 8037087C 0036D45C 3B E3 FD C0 */ addi r31, r3, JObjUpdateFunc@l /* 80370880 0036D460 48 00 00 84 */ b lbl_80370904 lbl_80370884: /* 80370884 0036D464 28 1D 00 00 */ cmplwi r29, 0 @@ -2148,9 +1148,9 @@ HSD_JObjAnimAll: /* 8037094C 0036D52C 41 82 00 50 */ beq lbl_8037099C /* 80370950 0036D530 7F E3 FB 78 */ mr r3, r31 /* 80370954 0036D534 4B FF E2 BD */ bl HSD_JObjCheckDepend -/* 80370958 0036D538 3C 80 80 37 */ lis r4, lbl_8036FDC0@ha +/* 80370958 0036D538 3C 80 80 37 */ lis r4, JObjUpdateFunc@ha /* 8037095C 0036D53C 80 7F 00 7C */ lwz r3, 0x7c(r31) -/* 80370960 0036D540 38 A4 FD C0 */ addi r5, r4, lbl_8036FDC0@l +/* 80370960 0036D540 38 A4 FD C0 */ addi r5, r4, JObjUpdateFunc@l /* 80370964 0036D544 38 9F 00 00 */ addi r4, r31, 0 /* 80370968 0036D548 4B FF 38 29 */ bl HSD_AObjInterpretAnim /* 8037096C 0036D54C 80 7F 00 80 */ lwz r3, 0x80(r31) @@ -3994,7 +2994,7 @@ HSD_JObjSetCurrent: /* 803721B4 0036ED94 38 80 00 5D */ li r4, 0x5d /* 803721B8 0036ED98 48 01 60 69 */ bl __assert lbl_803721BC: -/* 803721BC 0036ED9C 83 CD BF F4 */ lwz r30, lbl_804D7694@sda21(r13) +/* 803721BC 0036ED9C 83 CD BF F4 */ lwz r30, current_jobj@sda21(r13) /* 803721C0 0036EDA0 28 1E 00 00 */ cmplwi r30, 0 /* 803721C4 0036EDA4 41 82 01 2C */ beq lbl_803722F0 /* 803721C8 0036EDA8 3C 60 00 01 */ lis r3, 0x0000FFFF@ha @@ -4078,7 +3078,7 @@ lbl_803722B8: /* 803722E8 0036EEC8 7D 88 03 A6 */ mtlr r12 /* 803722EC 0036EECC 4E 80 00 21 */ blrl lbl_803722F0: -/* 803722F0 0036EED0 93 AD BF F4 */ stw r29, lbl_804D7694@sda21(r13) +/* 803722F0 0036EED0 93 AD BF F4 */ stw r29, current_jobj@sda21(r13) /* 803722F4 0036EED4 80 01 00 24 */ lwz r0, 0x24(r1) /* 803722F8 0036EED8 83 E1 00 1C */ lwz r31, 0x1c(r1) /* 803722FC 0036EEDC 83 C1 00 18 */ lwz r30, 0x18(r1) @@ -4090,7 +3090,7 @@ lbl_803722F0: .global HSD_JObjGetCurrent HSD_JObjGetCurrent: -/* 80372314 0036EEF4 80 6D BF F4 */ lwz r3, lbl_804D7694@sda21(r13) +/* 80372314 0036EEF4 80 6D BF F4 */ lwz r3, current_jobj@sda21(r13) /* 80372318 0036EEF8 4E 80 00 20 */ blr .global resolveIKJoint1 @@ -4275,8 +3275,8 @@ lbl_8037255C: /* 80372584 0036F164 80 7D 00 80 */ lwz r3, 0x80(r29) /* 80372588 0036F168 28 03 00 00 */ cmplwi r3, 0 /* 8037258C 0036F16C 41 82 00 70 */ beq lbl_803725FC -/* 80372590 0036F170 3C 80 80 37 */ lis r4, lbl_8036FDC0@ha -/* 80372594 0036F174 38 A4 FD C0 */ addi r5, r4, lbl_8036FDC0@l +/* 80372590 0036F170 3C 80 80 37 */ lis r4, JObjUpdateFunc@ha +/* 80372594 0036F174 38 A4 FD C0 */ addi r5, r4, JObjUpdateFunc@l /* 80372598 0036F178 38 9D 00 00 */ addi r4, r29, 0 /* 8037259C 0036F17C 48 00 9A 15 */ bl HSD_RObjUpdateAll /* 803725A0 0036F180 28 1D 00 00 */ cmplwi r29, 0 @@ -5149,8 +4149,8 @@ lbl_80373234: /* 80373244 0036FE24 41 82 00 78 */ beq lbl_803732BC /* 80373248 0036FE28 28 03 00 00 */ cmplwi r3, 0 /* 8037324C 0036FE2C 41 82 00 70 */ beq lbl_803732BC -/* 80373250 0036FE30 3C 80 80 37 */ lis r4, lbl_8036FDC0@ha -/* 80373254 0036FE34 38 A4 FD C0 */ addi r5, r4, lbl_8036FDC0@l +/* 80373250 0036FE30 3C 80 80 37 */ lis r4, JObjUpdateFunc@ha +/* 80373254 0036FE34 38 A4 FD C0 */ addi r5, r4, JObjUpdateFunc@l /* 80373258 0036FE38 38 9F 00 00 */ addi r4, r31, 0 /* 8037325C 0036FE3C 48 00 8D 55 */ bl HSD_RObjUpdateAll /* 80373260 0036FE40 28 1F 00 00 */ cmplwi r31, 0 @@ -5279,7 +4279,7 @@ lbl_803733EC: .global func_80373404 func_80373404: -/* 80373404 0036FFE4 90 6D BF E8 */ stw r3, lbl_804D7688@sda21(r13) +/* 80373404 0036FFE4 90 6D BF E8 */ stw r3, dptcl_callback@sda21(r13) /* 80373408 0036FFE8 4E 80 00 20 */ blr JObjInit: @@ -5551,8 +4551,8 @@ lbl_803737B0: /* 803737B8 00370398 7C 03 00 40 */ cmplw r3, r0 /* 803737BC 0037039C 40 82 00 10 */ bne lbl_803737CC /* 803737C0 003703A0 38 00 00 00 */ li r0, 0 -/* 803737C4 003703A4 90 0D BF E4 */ stw r0, lbl_804D7684@sda21(r13) -/* 803737C8 003703A8 90 0D BF F4 */ stw r0, lbl_804D7694@sda21(r13) +/* 803737C4 003703A4 90 0D BF E4 */ stw r0, ufc_callbacks@sda21(r13) +/* 803737C8 003703A8 90 0D BF F4 */ stw r0, current_jobj@sda21(r13) lbl_803737CC: /* 803737CC 003703AC 3C 80 80 40 */ lis r4, hsdJObj@ha /* 803737D0 003703B0 38 84 67 08 */ addi r4, r4, hsdJObj@l @@ -5633,28 +4633,6 @@ lbl_803B94D0: .section .data .balign 8 -.global hsdJObj -hsdJObj: - .4byte JObjInfoInit - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL - .4byte NULL .global lbl_80406758 lbl_80406758: .asciz "jobj->parent" @@ -5834,20 +4812,20 @@ lbl_804D5DD0: .global lbl_804D7680 lbl_804D7680: .skip 0x4 -.global lbl_804D7684 -lbl_804D7684: +.global ufc_callbacks +ufc_callbacks: .skip 0x4 -.global lbl_804D7688 -lbl_804D7688: +.global dptcl_callback +dptcl_callback: .skip 0x4 -.global lbl_804D768C -lbl_804D768C: +.global jsound_callback +jsound_callback: .skip 0x4 -.global lbl_804D7690 -lbl_804D7690: +.global ptcltgt_callback +ptcltgt_callback: .skip 0x4 -.global lbl_804D7694 -lbl_804D7694: +.global current_jobj +current_jobj: .skip 0x4 diff --git a/src/sysdolphin/baselib/jobj.c b/src/sysdolphin/baselib/jobj.c index 292c6121ea..ca79e6592f 100644 --- a/src/sysdolphin/baselib/jobj.c +++ b/src/sysdolphin/baselib/jobj.c @@ -1,4 +1,8 @@ #include "sysdolphin/baselib/jobj.h" +#include "sysdolphin/baselib/mtx.h" + +void JObjInfoInit(void); +HSD_JObjInfo hsdJObj = { JObjInfoInit }; void HSD_JObjCheckDepend(HSD_JObj* jobj) { @@ -23,3 +27,250 @@ void HSD_JObjCheckDepend(HSD_JObj* jobj) break; } } + +void JObjResetRST(HSD_JObj* jobj, HSD_Joint* joint) +{ + if (jobj == NULL || joint == NULL) { + return; + } + jobj->rotate.x = joint->rotation.x; + jobj->rotate.y = joint->rotation.y; + jobj->rotate.z = joint->rotation.z; + jobj->scale = joint->scale; + jobj->translate = joint->position; + if (!(jobj->flags & MTX_INDEP_SRT)) { + HSD_JObjSetMtxDirty(jobj); + } +} + +void HSD_JObjResetRST(HSD_JObj* jobj, HSD_Joint* joint) +{ + if (jobj == NULL || joint == NULL) { + return; + } + JObjResetRST(jobj, joint); + if (!(jobj->flags & INSTANCE)) { + HSD_JObj* child_jobj = jobj->child; + HSD_Joint* child_joint = joint->child; + while (child_jobj != NULL) { + HSD_JObjResetRST(child_jobj, child_joint); + child_jobj = child_jobj->next; + child_joint = child_joint != NULL ? child_joint->next : NULL; + } + } +} + +extern char lbl_804D5DB0[8]; +extern char lbl_80406758[0x10]; +void func_8036EFAC(HSD_JObj* jobj, void (*cb)(HSD_JObj*, void*, u32), void* args) +{ + u32 type; + + if (jobj == NULL) { + return; + } + if (jobj->parent == NULL) { + __assert(lbl_804D5DB0, 0xAE, lbl_80406758); + } + type = jobj->parent->child == jobj ? 1 : 2; + if (cb != NULL) { + cb(jobj, args, type); + } + if (!(jobj->flags & INSTANCE)) { + HSD_JObj* child = jobj->child; + while (child != NULL) { + func_8036EFAC(child, cb, args); + child = child->next; + } + } +} + +void func_8036F0F0(HSD_JObj* jobj, void (*cb)(HSD_JObj*, void*, u32), void* args) +{ + if (jobj == NULL) { + return; + } + if (cb != NULL) { + cb(jobj, args, 0); + } + if (!(jobj->flags & INSTANCE)) { + HSD_JObj* child = jobj->child; + while (child != NULL) { + func_8036EFAC(child, cb, args); + child = child->next; + } + } +} + +inline BOOL has_scl(HSD_JObj* jobj) +{ + BOOL result = FALSE; + if (jobj != NULL && jobj->scl != NULL) + result = TRUE; + return result; +} + +void HSD_JObjMakeMatrix(HSD_JObj* jobj) +{ + Vec* scl; + + HSD_JObjSetupMatrix(jobj->parent); + if (jobj->flags & 8) { + if (jobj->parent != NULL && jobj->parent->scl != NULL) { + if (jobj->scl == NULL) { + jobj->scl = HSD_VecAlloc(); + } + *jobj->scl = *jobj->parent->scl; + } else { + if (jobj->scl != NULL) { + HSD_VecFree(jobj->scl); + jobj->scl = NULL; + } + } + } else { + if (jobj->scl == NULL) { + jobj->scl = HSD_VecAlloc(); + } + if (jobj->parent != NULL && jobj->parent->scl != NULL) { + jobj->scl->x = jobj->scale.x * jobj->parent->scl->x; + jobj->scl->y = jobj->scale.y * jobj->parent->scl->y; + jobj->scl->z = jobj->scale.z * jobj->parent->scl->z; + } else { + *jobj->scl = jobj->scale; + } + } + if (jobj->flags & 0x20000) { + if (has_scl(jobj->parent)) { + scl = jobj->parent->scl; + } else { + scl = NULL; + } + HSD_MtxSRTQuat(jobj->mtx, &jobj->scale, &jobj->rotate, &jobj->translate, scl); + } else { + if (has_scl(jobj->parent)) { + scl = jobj->parent->scl; + } else { + scl = NULL; + } + HSD_MtxSRT(jobj->mtx, &jobj->scale, (Vec*) &jobj->rotate, &jobj->translate, scl); + } + if (jobj->parent != NULL) { + PSMTXConcat(jobj->parent->mtx, jobj->mtx, jobj->mtx); + } + if (jobj->aobj != NULL && jobj->aobj->hsd_obj != NULL) { + Vec vec; + HSD_JObj* aobj_jobj = (HSD_JObj*) jobj->aobj->hsd_obj; + HSD_JObjSetupMatrix((HSD_JObj*) jobj->aobj->hsd_obj); + PSMTXMUltiVec(aobj_jobj->mtx, &jobj->translate, &vec); + jobj->mtx[0][3] = vec.x; + jobj->mtx[1][3] = vec.y; + jobj->mtx[2][3] = vec.z; + } +} + +void HSD_JObjRemoveAnimByFlags(HSD_JObj* jobj, u32 flags) +{ + BOOL has_dobj; + if (jobj != NULL) { + if (flags & 1) { + HSD_AObjRemove(jobj->aobj); + jobj->aobj = NULL; + } + if (jobj->flags & 0x4020) { + has_dobj = FALSE; + } else { + has_dobj = TRUE; + } + if (has_dobj) { + HSD_DObjRemoveAnimAllByFlags(jobj->u.dobj, flags); + } + HSD_RObjRemoveAnimAllByFlags(jobj->robj, flags); + } +} + +void HSD_JObjRemoveAnimAllByFlags(HSD_JObj* jobj, u32 flags) +{ + if (jobj != NULL) { + HSD_JObjRemoveAnimByFlags(jobj, flags); + if (!(jobj->flags & INSTANCE)) { + HSD_JObj* child = jobj->child; + while (child != NULL) { + HSD_JObjRemoveAnimAllByFlags(child, flags); + child = child->next; + } + } + } +} + +void HSD_JObjRemoveAnim(HSD_JObj* jobj) +{ + HSD_JObjRemoveAnimByFlags(jobj, 0x7FF); +} + +void HSD_JObjRemoveAnimAll(HSD_JObj* jobj) +{ + HSD_JObjRemoveAnimAllByFlags(jobj, 0x7FF); +} + +void HSD_JObjReqAnimByFlags(HSD_JObj* jobj, u32 flags, f32 frame) +{ + BOOL has_dobj; + if (jobj != NULL) { + if (flags & 1) { + HSD_AObjReqAnim(jobj->aobj, frame); + } + if (jobj->flags & 0x4020) { + has_dobj = FALSE; + } else { + has_dobj = TRUE; + } + if (has_dobj) { + HSD_DObjReqAnimAllByFlags(jobj->u.dobj, frame, flags); + } + HSD_RObjReqAnimAllByFlags(jobj->robj, flags, frame); + } +} + +void HSD_JObjReqAnimAllByFlags(HSD_JObj* jobj, u32 flags, f32 frame) +{ + if (jobj != NULL) { + HSD_JObjReqAnimByFlags(jobj, flags, frame); + if (!(jobj->flags & INSTANCE)) { + HSD_JObj* child = jobj->child; + while (child != NULL) { + HSD_JObjReqAnimAllByFlags(child, flags, frame); + child = child->next; + } + } + } +} + +void HSD_JObjReqAnimAll(HSD_JObj* jobj, f32 frame) +{ + HSD_JObjReqAnimAllByFlags(jobj, 0x7FF, frame); +} + +void HSD_JObjReqAnim(HSD_JObj* jobj, f32 frame) +{ + HSD_JObjReqAnimByFlags(jobj, 0x7FF, frame); +} + +void JObjSortAnim(HSD_AObj* aobj) +{ + HSD_FObj* fobj; + HSD_FObj** fobj_ptr; + + if (aobj == NULL || aobj->fobj == NULL) { + return; + } + fobj_ptr = &aobj->fobj; + while ((fobj = *fobj_ptr) != NULL) { + if (fobj->obj_type == 0xC) { + *fobj_ptr = fobj->next; + fobj->next = aobj->fobj; + aobj->fobj = fobj; + break; + } + fobj_ptr = &fobj->next; + } +}