mirror of https://github.com/zeldaret/tp.git
Merge pull request #233 from magcius/fop
Couple more J3DModel matches, d_kyeff/d_kyeff2 cleanups
This commit is contained in:
commit
b95aed1512
|
|
@ -1,70 +0,0 @@
|
|||
lbl_803281B4:
|
||||
/* 803281B4 94 21 FF D0 */ stwu r1, -0x30(r1)
|
||||
/* 803281B8 7C 08 02 A6 */ mflr r0
|
||||
/* 803281BC 90 01 00 34 */ stw r0, 0x34(r1)
|
||||
/* 803281C0 39 61 00 30 */ addi r11, r1, 0x30
|
||||
/* 803281C4 48 03 A0 09 */ bl _savegpr_25
|
||||
/* 803281C8 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 803281CC 80 63 00 04 */ lwz r3, 4(r3)
|
||||
/* 803281D0 A0 03 00 0C */ lhz r0, 0xc(r3)
|
||||
/* 803281D4 28 00 00 01 */ cmplwi r0, 1
|
||||
/* 803281D8 40 82 00 C8 */ bne lbl_803282A0
|
||||
/* 803281DC 3B A0 00 00 */ li r29, 0
|
||||
/* 803281E0 A3 83 00 5C */ lhz r28, 0x5c(r3)
|
||||
/* 803281E4 3B E0 00 00 */ li r31, 0
|
||||
/* 803281E8 48 00 00 AC */ b lbl_80328294
|
||||
lbl_803281EC:
|
||||
/* 803281EC 80 7E 00 04 */ lwz r3, 4(r30)
|
||||
/* 803281F0 80 63 00 60 */ lwz r3, 0x60(r3)
|
||||
/* 803281F4 57 E0 13 BA */ rlwinm r0, r31, 2, 0xe, 0x1d
|
||||
/* 803281F8 7F 63 00 2E */ lwzx r27, r3, r0
|
||||
/* 803281FC 80 7B 00 28 */ lwz r3, 0x28(r27)
|
||||
/* 80328200 81 83 00 00 */ lwz r12, 0(r3)
|
||||
/* 80328204 81 8C 00 5C */ lwz r12, 0x5c(r12)
|
||||
/* 80328208 7D 89 03 A6 */ mtctr r12
|
||||
/* 8032820C 4E 80 04 21 */ bctrl
|
||||
/* 80328210 88 03 00 00 */ lbz r0, 0(r3)
|
||||
/* 80328214 28 00 00 01 */ cmplwi r0, 1
|
||||
/* 80328218 40 82 00 78 */ bne lbl_80328290
|
||||
/* 8032821C 80 9E 00 84 */ lwz r4, 0x84(r30)
|
||||
/* 80328220 80 64 00 28 */ lwz r3, 0x28(r4)
|
||||
/* 80328224 7C 63 E8 2E */ lwzx r3, r3, r29
|
||||
/* 80328228 80 04 00 30 */ lwz r0, 0x30(r4)
|
||||
/* 8032822C 54 00 10 3A */ slwi r0, r0, 2
|
||||
/* 80328230 7F 43 00 2E */ lwzx r26, r3, r0
|
||||
/* 80328234 80 64 00 20 */ lwz r3, 0x20(r4)
|
||||
/* 80328238 7F 23 00 2E */ lwzx r25, r3, r0
|
||||
/* 8032823C 80 7B 00 28 */ lwz r3, 0x28(r27)
|
||||
/* 80328240 81 83 00 00 */ lwz r12, 0(r3)
|
||||
/* 80328244 81 8C 00 5C */ lwz r12, 0x5c(r12)
|
||||
/* 80328248 7D 89 03 A6 */ mtctr r12
|
||||
/* 8032824C 4E 80 04 21 */ bctrl
|
||||
/* 80328250 38 83 00 04 */ addi r4, r3, 4
|
||||
/* 80328254 80 7B 00 08 */ lwz r3, 8(r27)
|
||||
/* 80328258 7F 25 CB 78 */ mr r5, r25
|
||||
/* 8032825C 7F 46 D3 78 */ mr r6, r26
|
||||
/* 80328260 4B FE CB 49 */ bl calcNBTScale__8J3DShapeFRC3VecPA3_A3_fPA3_A3_f
|
||||
/* 80328264 80 7E 00 04 */ lwz r3, 4(r30)
|
||||
/* 80328268 A0 83 00 44 */ lhz r4, 0x44(r3)
|
||||
/* 8032826C 80 BE 00 84 */ lwz r5, 0x84(r30)
|
||||
/* 80328270 80 65 00 28 */ lwz r3, 0x28(r5)
|
||||
/* 80328274 7C 63 E8 2E */ lwzx r3, r3, r29
|
||||
/* 80328278 80 05 00 30 */ lwz r0, 0x30(r5)
|
||||
/* 8032827C 54 00 10 3A */ slwi r0, r0, 2
|
||||
/* 80328280 7C 63 00 2E */ lwzx r3, r3, r0
|
||||
/* 80328284 1C 84 00 24 */ mulli r4, r4, 0x24
|
||||
/* 80328288 48 01 33 55 */ bl DCStoreRange
|
||||
/* 8032828C 3B BD 00 04 */ addi r29, r29, 4
|
||||
lbl_80328290:
|
||||
/* 80328290 3B FF 00 01 */ addi r31, r31, 1
|
||||
lbl_80328294:
|
||||
/* 80328294 57 E0 04 3E */ clrlwi r0, r31, 0x10
|
||||
/* 80328298 7C 00 E0 40 */ cmplw r0, r28
|
||||
/* 8032829C 41 80 FF 50 */ blt lbl_803281EC
|
||||
lbl_803282A0:
|
||||
/* 803282A0 39 61 00 30 */ addi r11, r1, 0x30
|
||||
/* 803282A4 48 03 9F 75 */ bl _restgpr_25
|
||||
/* 803282A8 80 01 00 34 */ lwz r0, 0x34(r1)
|
||||
/* 803282AC 7C 08 03 A6 */ mtlr r0
|
||||
/* 803282B0 38 21 00 30 */ addi r1, r1, 0x30
|
||||
/* 803282B4 4E 80 00 20 */ blr
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
lbl_803275FC:
|
||||
/* 803275FC 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 80327600 7C 08 02 A6 */ mflr r0
|
||||
/* 80327604 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
/* 80327608 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 8032760C 48 03 AB CD */ bl _savegpr_28
|
||||
/* 80327610 7C 7C 1B 78 */ mr r28, r3
|
||||
/* 80327614 7C 9D 23 78 */ mr r29, r4
|
||||
/* 80327618 93 A3 00 0C */ stw r29, 0xc(r3)
|
||||
/* 8032761C 80 63 00 04 */ lwz r3, 4(r3)
|
||||
/* 80327620 A3 E3 00 7C */ lhz r31, 0x7c(r3)
|
||||
/* 80327624 3B C0 00 00 */ li r30, 0
|
||||
/* 80327628 48 00 00 2C */ b lbl_80327654
|
||||
lbl_8032762C:
|
||||
/* 8032762C 80 7C 00 C4 */ lwz r3, 0xc4(r28)
|
||||
/* 80327630 57 C0 04 3E */ clrlwi r0, r30, 0x10
|
||||
/* 80327634 1C 00 00 3C */ mulli r0, r0, 0x3c
|
||||
/* 80327638 7C 63 02 14 */ add r3, r3, r0
|
||||
/* 8032763C 7F A4 EB 78 */ mr r4, r29
|
||||
/* 80327640 4B FE B7 7D */ bl newDifferedDisplayList__14J3DShapePacketFUl
|
||||
/* 80327644 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80327648 41 82 00 08 */ beq lbl_80327650
|
||||
/* 8032764C 48 00 00 18 */ b lbl_80327664
|
||||
lbl_80327650:
|
||||
/* 80327650 3B DE 00 01 */ addi r30, r30, 1
|
||||
lbl_80327654:
|
||||
/* 80327654 57 C0 04 3E */ clrlwi r0, r30, 0x10
|
||||
/* 80327658 7C 00 F8 40 */ cmplw r0, r31
|
||||
/* 8032765C 41 80 FF D0 */ blt lbl_8032762C
|
||||
/* 80327660 38 60 00 00 */ li r3, 0
|
||||
lbl_80327664:
|
||||
/* 80327664 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 80327668 48 03 AB BD */ bl _restgpr_28
|
||||
/* 8032766C 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 80327670 7C 08 03 A6 */ mtlr r0
|
||||
/* 80327674 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 80327678 4E 80 00 20 */ blr
|
||||
|
|
@ -1,51 +0,0 @@
|
|||
lbl_80325E14:
|
||||
/* 80325E14 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 80325E18 7C 08 02 A6 */ mflr r0
|
||||
/* 80325E1C 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
/* 80325E20 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 80325E24 48 03 C3 B1 */ bl _savegpr_27
|
||||
/* 80325E28 7C 7B 1B 78 */ mr r27, r3
|
||||
/* 80325E2C A3 E3 00 5C */ lhz r31, 0x5c(r3)
|
||||
/* 80325E30 3B 80 00 00 */ li r28, 0
|
||||
/* 80325E34 54 9E 03 5A */ rlwinm r30, r4, 0, 0xd, 0xd
|
||||
/* 80325E38 48 00 00 68 */ b lbl_80325EA0
|
||||
lbl_80325E3C:
|
||||
/* 80325E3C 28 1E 00 00 */ cmplwi r30, 0
|
||||
/* 80325E40 41 82 00 30 */ beq lbl_80325E70
|
||||
/* 80325E44 80 7B 00 60 */ lwz r3, 0x60(r27)
|
||||
/* 80325E48 57 80 13 BA */ rlwinm r0, r28, 2, 0xe, 0x1d
|
||||
/* 80325E4C 7F A3 00 2E */ lwzx r29, r3, r0
|
||||
/* 80325E50 7F A3 EB 78 */ mr r3, r29
|
||||
/* 80325E54 4B FF 04 3D */ bl countDLSize__11J3DMaterialFv
|
||||
/* 80325E58 7C 64 1B 78 */ mr r4, r3
|
||||
/* 80325E5C 7F A3 EB 78 */ mr r3, r29
|
||||
/* 80325E60 4B FF 10 C5 */ bl newSingleSharedDisplayList__11J3DMaterialFUl
|
||||
/* 80325E64 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80325E68 41 82 00 34 */ beq lbl_80325E9C
|
||||
/* 80325E6C 48 00 00 44 */ b lbl_80325EB0
|
||||
lbl_80325E70:
|
||||
/* 80325E70 80 7B 00 60 */ lwz r3, 0x60(r27)
|
||||
/* 80325E74 57 80 13 BA */ rlwinm r0, r28, 2, 0xe, 0x1d
|
||||
/* 80325E78 7F A3 00 2E */ lwzx r29, r3, r0
|
||||
/* 80325E7C 7F A3 EB 78 */ mr r3, r29
|
||||
/* 80325E80 4B FF 04 11 */ bl countDLSize__11J3DMaterialFv
|
||||
/* 80325E84 7C 64 1B 78 */ mr r4, r3
|
||||
/* 80325E88 7F A3 EB 78 */ mr r3, r29
|
||||
/* 80325E8C 4B FF 10 05 */ bl newSharedDisplayList__11J3DMaterialFUl
|
||||
/* 80325E90 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80325E94 41 82 00 08 */ beq lbl_80325E9C
|
||||
/* 80325E98 48 00 00 18 */ b lbl_80325EB0
|
||||
lbl_80325E9C:
|
||||
/* 80325E9C 3B 9C 00 01 */ addi r28, r28, 1
|
||||
lbl_80325EA0:
|
||||
/* 80325EA0 57 80 04 3E */ clrlwi r0, r28, 0x10
|
||||
/* 80325EA4 7C 00 F8 40 */ cmplw r0, r31
|
||||
/* 80325EA8 41 80 FF 94 */ blt lbl_80325E3C
|
||||
/* 80325EAC 38 60 00 00 */ li r3, 0
|
||||
lbl_80325EB0:
|
||||
/* 80325EB0 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 80325EB4 48 03 C3 6D */ bl _restgpr_27
|
||||
/* 80325EB8 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 80325EBC 7C 08 03 A6 */ mtlr r0
|
||||
/* 80325EC0 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 80325EC4 4E 80 00 20 */ blr
|
||||
|
|
@ -1,47 +0,0 @@
|
|||
lbl_80327048:
|
||||
/* 80327048 94 21 FF C0 */ stwu r1, -0x40(r1)
|
||||
/* 8032704C 7C 08 02 A6 */ mflr r0
|
||||
/* 80327050 90 01 00 44 */ stw r0, 0x44(r1)
|
||||
/* 80327054 C0 05 00 00 */ lfs f0, 0(r5)
|
||||
/* 80327058 C0 64 00 00 */ lfs f3, 0(r4)
|
||||
/* 8032705C EC 00 00 F2 */ fmuls f0, f0, f3
|
||||
/* 80327060 D0 01 00 08 */ stfs f0, 8(r1)
|
||||
/* 80327064 C0 05 00 04 */ lfs f0, 4(r5)
|
||||
/* 80327068 C0 44 00 04 */ lfs f2, 4(r4)
|
||||
/* 8032706C EC 00 00 B2 */ fmuls f0, f0, f2
|
||||
/* 80327070 D0 01 00 0C */ stfs f0, 0xc(r1)
|
||||
/* 80327074 C0 05 00 08 */ lfs f0, 8(r5)
|
||||
/* 80327078 C0 24 00 08 */ lfs f1, 8(r4)
|
||||
/* 8032707C EC 00 00 72 */ fmuls f0, f0, f1
|
||||
/* 80327080 D0 01 00 10 */ stfs f0, 0x10(r1)
|
||||
/* 80327084 C0 05 00 0C */ lfs f0, 0xc(r5)
|
||||
/* 80327088 D0 01 00 14 */ stfs f0, 0x14(r1)
|
||||
/* 8032708C C0 05 00 10 */ lfs f0, 0x10(r5)
|
||||
/* 80327090 EC 00 00 F2 */ fmuls f0, f0, f3
|
||||
/* 80327094 D0 01 00 18 */ stfs f0, 0x18(r1)
|
||||
/* 80327098 C0 05 00 14 */ lfs f0, 0x14(r5)
|
||||
/* 8032709C EC 00 00 B2 */ fmuls f0, f0, f2
|
||||
/* 803270A0 D0 01 00 1C */ stfs f0, 0x1c(r1)
|
||||
/* 803270A4 C0 05 00 18 */ lfs f0, 0x18(r5)
|
||||
/* 803270A8 EC 00 00 72 */ fmuls f0, f0, f1
|
||||
/* 803270AC D0 01 00 20 */ stfs f0, 0x20(r1)
|
||||
/* 803270B0 C0 05 00 1C */ lfs f0, 0x1c(r5)
|
||||
/* 803270B4 D0 01 00 24 */ stfs f0, 0x24(r1)
|
||||
/* 803270B8 C0 05 00 20 */ lfs f0, 0x20(r5)
|
||||
/* 803270BC EC 00 00 F2 */ fmuls f0, f0, f3
|
||||
/* 803270C0 D0 01 00 28 */ stfs f0, 0x28(r1)
|
||||
/* 803270C4 C0 05 00 24 */ lfs f0, 0x24(r5)
|
||||
/* 803270C8 EC 00 00 B2 */ fmuls f0, f0, f2
|
||||
/* 803270CC D0 01 00 2C */ stfs f0, 0x2c(r1)
|
||||
/* 803270D0 C0 05 00 28 */ lfs f0, 0x28(r5)
|
||||
/* 803270D4 EC 00 00 72 */ fmuls f0, f0, f1
|
||||
/* 803270D8 D0 01 00 30 */ stfs f0, 0x30(r1)
|
||||
/* 803270DC C0 05 00 2C */ lfs f0, 0x2c(r5)
|
||||
/* 803270E0 D0 01 00 34 */ stfs f0, 0x34(r1)
|
||||
/* 803270E4 38 81 00 08 */ addi r4, r1, 8
|
||||
/* 803270E8 7C C5 33 78 */ mr r5, r6
|
||||
/* 803270EC 48 01 F3 F9 */ bl PSMTXConcat
|
||||
/* 803270F0 80 01 00 44 */ lwz r0, 0x44(r1)
|
||||
/* 803270F4 7C 08 03 A6 */ mtlr r0
|
||||
/* 803270F8 38 21 00 40 */ addi r1, r1, 0x40
|
||||
/* 803270FC 4E 80 00 20 */ blr
|
||||
|
|
@ -1,39 +0,0 @@
|
|||
lbl_80326364:
|
||||
/* 80326364 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80326368 7C 08 02 A6 */ mflr r0
|
||||
/* 8032636C 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80326370 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 80326374 93 C1 00 08 */ stw r30, 8(r1)
|
||||
/* 80326378 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 8032637C 7C 9F 23 78 */ mr r31, r4
|
||||
/* 80326380 A0 04 00 2C */ lhz r0, 0x2c(r4)
|
||||
/* 80326384 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80326388 41 82 00 28 */ beq lbl_803263B0
|
||||
/* 8032638C 54 03 04 3E */ clrlwi r3, r0, 0x10
|
||||
/* 80326390 4B FA 89 35 */ bl __nwa__FUl
|
||||
/* 80326394 90 7E 00 04 */ stw r3, 4(r30)
|
||||
/* 80326398 A0 1F 00 2C */ lhz r0, 0x2c(r31)
|
||||
/* 8032639C 1C 60 00 30 */ mulli r3, r0, 0x30
|
||||
/* 803263A0 4B FA 89 25 */ bl __nwa__FUl
|
||||
/* 803263A4 90 7E 00 0C */ stw r3, 0xc(r30)
|
||||
/* 803263A8 80 1E 00 0C */ lwz r0, 0xc(r30)
|
||||
/* 803263AC 90 1E 00 34 */ stw r0, 0x34(r30)
|
||||
lbl_803263B0:
|
||||
/* 803263B0 80 1E 00 04 */ lwz r0, 4(r30)
|
||||
/* 803263B4 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 803263B8 40 82 00 0C */ bne lbl_803263C4
|
||||
/* 803263BC 38 60 00 04 */ li r3, 4
|
||||
/* 803263C0 48 00 00 18 */ b lbl_803263D8
|
||||
lbl_803263C4:
|
||||
/* 803263C4 80 1E 00 0C */ lwz r0, 0xc(r30)
|
||||
/* 803263C8 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 803263CC 38 60 00 00 */ li r3, 0
|
||||
/* 803263D0 40 82 00 08 */ bne lbl_803263D8
|
||||
/* 803263D4 38 60 00 04 */ li r3, 4
|
||||
lbl_803263D8:
|
||||
/* 803263D8 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 803263DC 83 C1 00 08 */ lwz r30, 8(r1)
|
||||
/* 803263E0 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 803263E4 7C 08 03 A6 */ mtlr r0
|
||||
/* 803263E8 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 803263EC 4E 80 00 20 */ blr
|
||||
|
|
@ -1,124 +0,0 @@
|
|||
lbl_803264B8:
|
||||
/* 803264B8 94 21 FF D0 */ stwu r1, -0x30(r1)
|
||||
/* 803264BC 7C 08 02 A6 */ mflr r0
|
||||
/* 803264C0 90 01 00 34 */ stw r0, 0x34(r1)
|
||||
/* 803264C4 39 61 00 30 */ addi r11, r1, 0x30
|
||||
/* 803264C8 48 03 BD 01 */ bl _savegpr_24
|
||||
/* 803264CC 7C 7D 1B 78 */ mr r29, r3
|
||||
/* 803264D0 7C 9E 23 78 */ mr r30, r4
|
||||
/* 803264D4 7C BF 2B 79 */ or. r31, r5, r5
|
||||
/* 803264D8 41 82 00 44 */ beq lbl_8032651C
|
||||
/* 803264DC 3B 00 00 00 */ li r24, 0
|
||||
/* 803264E0 3B 60 00 00 */ li r27, 0
|
||||
/* 803264E4 57 FA 10 3A */ slwi r26, r31, 2
|
||||
/* 803264E8 7F 7C DB 78 */ mr r28, r27
|
||||
lbl_803264EC:
|
||||
/* 803264EC 7F 43 D3 78 */ mr r3, r26
|
||||
/* 803264F0 4B FA 87 D5 */ bl __nwa__FUl
|
||||
/* 803264F4 7F 3D DA 14 */ add r25, r29, r27
|
||||
/* 803264F8 90 79 00 14 */ stw r3, 0x14(r25)
|
||||
/* 803264FC 7F 43 D3 78 */ mr r3, r26
|
||||
/* 80326500 4B FA 87 C5 */ bl __nwa__FUl
|
||||
/* 80326504 90 79 00 1C */ stw r3, 0x1c(r25)
|
||||
/* 80326508 93 99 00 24 */ stw r28, 0x24(r25)
|
||||
/* 8032650C 3B 18 00 01 */ addi r24, r24, 1
|
||||
/* 80326510 2C 18 00 02 */ cmpwi r24, 2
|
||||
/* 80326514 3B 7B 00 04 */ addi r27, r27, 4
|
||||
/* 80326518 41 80 FF D4 */ blt lbl_803264EC
|
||||
lbl_8032651C:
|
||||
/* 8032651C 28 1F 00 00 */ cmplwi r31, 0
|
||||
/* 80326520 41 82 00 44 */ beq lbl_80326564
|
||||
/* 80326524 38 60 00 00 */ li r3, 0
|
||||
/* 80326528 38 00 00 02 */ li r0, 2
|
||||
/* 8032652C 7C 09 03 A6 */ mtctr r0
|
||||
lbl_80326530:
|
||||
/* 80326530 7C 9D 1A 14 */ add r4, r29, r3
|
||||
/* 80326534 80 04 00 14 */ lwz r0, 0x14(r4)
|
||||
/* 80326538 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8032653C 40 82 00 0C */ bne lbl_80326548
|
||||
/* 80326540 38 60 00 04 */ li r3, 4
|
||||
/* 80326544 48 00 01 08 */ b lbl_8032664C
|
||||
lbl_80326548:
|
||||
/* 80326548 80 04 00 1C */ lwz r0, 0x1c(r4)
|
||||
/* 8032654C 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80326550 40 82 00 0C */ bne lbl_8032655C
|
||||
/* 80326554 38 60 00 04 */ li r3, 4
|
||||
/* 80326558 48 00 00 F4 */ b lbl_8032664C
|
||||
lbl_8032655C:
|
||||
/* 8032655C 38 63 00 04 */ addi r3, r3, 4
|
||||
/* 80326560 42 00 FF D0 */ bdnz lbl_80326530
|
||||
lbl_80326564:
|
||||
/* 80326564 3B 00 00 00 */ li r24, 0
|
||||
/* 80326568 3B 80 00 00 */ li r28, 0
|
||||
lbl_8032656C:
|
||||
/* 8032656C 3B 40 00 00 */ li r26, 0
|
||||
/* 80326570 3B 60 00 00 */ li r27, 0
|
||||
/* 80326574 7F 3D E2 14 */ add r25, r29, r28
|
||||
/* 80326578 48 00 00 48 */ b lbl_803265C0
|
||||
lbl_8032657C:
|
||||
/* 8032657C A0 1E 00 44 */ lhz r0, 0x44(r30)
|
||||
/* 80326580 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80326584 41 82 00 34 */ beq lbl_803265B8
|
||||
/* 80326588 54 00 04 3E */ clrlwi r0, r0, 0x10
|
||||
/* 8032658C 1C 60 00 30 */ mulli r3, r0, 0x30
|
||||
/* 80326590 38 80 00 20 */ li r4, 0x20
|
||||
/* 80326594 4B FA 87 59 */ bl __nwa__FUli
|
||||
/* 80326598 80 99 00 14 */ lwz r4, 0x14(r25)
|
||||
/* 8032659C 7C 64 D9 2E */ stwx r3, r4, r27
|
||||
/* 803265A0 A0 1E 00 44 */ lhz r0, 0x44(r30)
|
||||
/* 803265A4 1C 60 00 24 */ mulli r3, r0, 0x24
|
||||
/* 803265A8 38 80 00 20 */ li r4, 0x20
|
||||
/* 803265AC 4B FA 87 41 */ bl __nwa__FUli
|
||||
/* 803265B0 80 99 00 1C */ lwz r4, 0x1c(r25)
|
||||
/* 803265B4 7C 64 D9 2E */ stwx r3, r4, r27
|
||||
lbl_803265B8:
|
||||
/* 803265B8 3B 5A 00 01 */ addi r26, r26, 1
|
||||
/* 803265BC 3B 7B 00 04 */ addi r27, r27, 4
|
||||
lbl_803265C0:
|
||||
/* 803265C0 7C 1A F8 40 */ cmplw r26, r31
|
||||
/* 803265C4 41 80 FF B8 */ blt lbl_8032657C
|
||||
/* 803265C8 3B 18 00 01 */ addi r24, r24, 1
|
||||
/* 803265CC 2C 18 00 02 */ cmpwi r24, 2
|
||||
/* 803265D0 3B 9C 00 04 */ addi r28, r28, 4
|
||||
/* 803265D4 41 80 FF 98 */ blt lbl_8032656C
|
||||
/* 803265D8 38 E0 00 00 */ li r7, 0
|
||||
/* 803265DC 38 60 00 00 */ li r3, 0
|
||||
lbl_803265E0:
|
||||
/* 803265E0 38 80 00 00 */ li r4, 0
|
||||
/* 803265E4 7C DD 1A 14 */ add r6, r29, r3
|
||||
/* 803265E8 7F E9 03 A6 */ mtctr r31
|
||||
/* 803265EC 28 1F 00 00 */ cmplwi r31, 0
|
||||
/* 803265F0 40 81 00 48 */ ble lbl_80326638
|
||||
lbl_803265F4:
|
||||
/* 803265F4 A0 1E 00 44 */ lhz r0, 0x44(r30)
|
||||
/* 803265F8 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 803265FC 41 82 00 34 */ beq lbl_80326630
|
||||
/* 80326600 80 A6 00 14 */ lwz r5, 0x14(r6)
|
||||
/* 80326604 7C 05 20 2E */ lwzx r0, r5, r4
|
||||
/* 80326608 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8032660C 40 82 00 0C */ bne lbl_80326618
|
||||
/* 80326610 38 60 00 04 */ li r3, 4
|
||||
/* 80326614 48 00 00 38 */ b lbl_8032664C
|
||||
lbl_80326618:
|
||||
/* 80326618 80 A6 00 1C */ lwz r5, 0x1c(r6)
|
||||
/* 8032661C 7C 05 20 2E */ lwzx r0, r5, r4
|
||||
/* 80326620 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80326624 40 82 00 0C */ bne lbl_80326630
|
||||
/* 80326628 38 60 00 04 */ li r3, 4
|
||||
/* 8032662C 48 00 00 20 */ b lbl_8032664C
|
||||
lbl_80326630:
|
||||
/* 80326630 38 84 00 04 */ addi r4, r4, 4
|
||||
/* 80326634 42 00 FF C0 */ bdnz lbl_803265F4
|
||||
lbl_80326638:
|
||||
/* 80326638 38 E7 00 01 */ addi r7, r7, 1
|
||||
/* 8032663C 2C 07 00 02 */ cmpwi r7, 2
|
||||
/* 80326640 38 63 00 04 */ addi r3, r3, 4
|
||||
/* 80326644 41 80 FF 9C */ blt lbl_803265E0
|
||||
/* 80326648 38 60 00 00 */ li r3, 0
|
||||
lbl_8032664C:
|
||||
/* 8032664C 39 61 00 30 */ addi r11, r1, 0x30
|
||||
/* 80326650 48 03 BB C5 */ bl _restgpr_24
|
||||
/* 80326654 80 01 00 34 */ lwz r0, 0x34(r1)
|
||||
/* 80326658 7C 08 03 A6 */ mtlr r0
|
||||
/* 8032665C 38 21 00 30 */ addi r1, r1, 0x30
|
||||
/* 80326660 4E 80 00 20 */ blr
|
||||
|
|
@ -1,78 +0,0 @@
|
|||
lbl_80326258:
|
||||
/* 80326258 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 8032625C 7C 08 02 A6 */ mflr r0
|
||||
/* 80326260 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
/* 80326264 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 80326268 48 03 BF 71 */ bl _savegpr_28
|
||||
/* 8032626C 7C 7C 1B 78 */ mr r28, r3
|
||||
/* 80326270 7C 9D 23 78 */ mr r29, r4
|
||||
/* 80326274 7C BE 2B 78 */ mr r30, r5
|
||||
/* 80326278 93 C3 00 2C */ stw r30, 0x2c(r3)
|
||||
/* 8032627C 38 1D 00 10 */ addi r0, r29, 0x10
|
||||
/* 80326280 90 03 00 00 */ stw r0, 0(r3)
|
||||
/* 80326284 48 00 00 E1 */ bl createAnmMtx__12J3DMtxBufferFP12J3DModelData
|
||||
/* 80326288 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 8032628C 41 82 00 08 */ beq lbl_80326294
|
||||
/* 80326290 48 00 00 BC */ b lbl_8032634C
|
||||
lbl_80326294:
|
||||
/* 80326294 7F 83 E3 78 */ mr r3, r28
|
||||
/* 80326298 7F A4 EB 78 */ mr r4, r29
|
||||
/* 8032629C 48 00 01 55 */ bl createWeightEnvelopeMtx__12J3DMtxBufferFP12J3DModelData
|
||||
/* 803262A0 7C 7F 1B 79 */ or. r31, r3, r3
|
||||
/* 803262A4 41 82 00 08 */ beq lbl_803262AC
|
||||
/* 803262A8 48 00 00 A4 */ b lbl_8032634C
|
||||
lbl_803262AC:
|
||||
/* 803262AC 80 7D 00 08 */ lwz r3, 8(r29)
|
||||
/* 803262B0 54 60 C7 FF */ rlwinm. r0, r3, 0x18, 0x1f, 0x1f
|
||||
/* 803262B4 41 82 00 10 */ beq lbl_803262C4
|
||||
/* 803262B8 7F 83 E3 78 */ mr r3, r28
|
||||
/* 803262BC 48 00 01 D1 */ bl setNoUseDrawMtx__12J3DMtxBufferFv
|
||||
/* 803262C0 48 00 00 44 */ b lbl_80326304
|
||||
lbl_803262C4:
|
||||
/* 803262C4 54 60 06 F6 */ rlwinm r0, r3, 0, 0x1b, 0x1b
|
||||
/* 803262C8 2C 00 00 10 */ cmpwi r0, 0x10
|
||||
/* 803262CC 41 82 00 14 */ beq lbl_803262E0
|
||||
/* 803262D0 40 80 00 20 */ bge lbl_803262F0
|
||||
/* 803262D4 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 803262D8 41 82 00 18 */ beq lbl_803262F0
|
||||
/* 803262DC 48 00 00 14 */ b lbl_803262F0
|
||||
lbl_803262E0:
|
||||
/* 803262E0 7F 83 E3 78 */ mr r3, r28
|
||||
/* 803262E4 48 00 01 A9 */ bl setNoUseDrawMtx__12J3DMtxBufferFv
|
||||
/* 803262E8 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 803262EC 48 00 00 18 */ b lbl_80326304
|
||||
lbl_803262F0:
|
||||
/* 803262F0 7F 83 E3 78 */ mr r3, r28
|
||||
/* 803262F4 7F A4 EB 78 */ mr r4, r29
|
||||
/* 803262F8 7F C5 F3 78 */ mr r5, r30
|
||||
/* 803262FC 48 00 01 BD */ bl createDoubleDrawMtx__12J3DMtxBufferFP12J3DModelDataUl
|
||||
/* 80326300 7C 7F 1B 78 */ mr r31, r3
|
||||
lbl_80326304:
|
||||
/* 80326304 2C 1F 00 00 */ cmpwi r31, 0
|
||||
/* 80326308 41 82 00 0C */ beq lbl_80326314
|
||||
/* 8032630C 7F E3 FB 78 */ mr r3, r31
|
||||
/* 80326310 48 00 00 3C */ b lbl_8032634C
|
||||
lbl_80326314:
|
||||
/* 80326314 80 1D 00 08 */ lwz r0, 8(r29)
|
||||
/* 80326318 54 00 06 F7 */ rlwinm. r0, r0, 0, 0x1b, 0x1b
|
||||
/* 8032631C 41 82 00 10 */ beq lbl_8032632C
|
||||
/* 80326320 38 00 00 00 */ li r0, 0
|
||||
/* 80326324 B0 1D 00 0C */ sth r0, 0xc(r29)
|
||||
/* 80326328 48 00 00 20 */ b lbl_80326348
|
||||
lbl_8032632C:
|
||||
/* 8032632C 7F 83 E3 78 */ mr r3, r28
|
||||
/* 80326330 7F A4 EB 78 */ mr r4, r29
|
||||
/* 80326334 7F C5 F3 78 */ mr r5, r30
|
||||
/* 80326338 48 00 03 2D */ bl createBumpMtxArray__12J3DMtxBufferFP12J3DModelDataUl
|
||||
/* 8032633C 7C 7F 1B 79 */ or. r31, r3, r3
|
||||
/* 80326340 41 82 00 08 */ beq lbl_80326348
|
||||
/* 80326344 48 00 00 08 */ b lbl_8032634C
|
||||
lbl_80326348:
|
||||
/* 80326348 7F E3 FB 78 */ mr r3, r31
|
||||
lbl_8032634C:
|
||||
/* 8032634C 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 80326350 48 03 BE D5 */ bl _restgpr_28
|
||||
/* 80326354 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 80326358 7C 08 03 A6 */ mtlr r0
|
||||
/* 8032635C 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 80326360 4E 80 00 20 */ blr
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
lbl_80326214:
|
||||
/* 80326214 38 80 00 00 */ li r4, 0
|
||||
/* 80326218 90 83 00 00 */ stw r4, 0(r3)
|
||||
/* 8032621C 90 83 00 04 */ stw r4, 4(r3)
|
||||
/* 80326220 90 83 00 08 */ stw r4, 8(r3)
|
||||
/* 80326224 90 83 00 0C */ stw r4, 0xc(r3)
|
||||
/* 80326228 90 83 00 10 */ stw r4, 0x10(r3)
|
||||
/* 8032622C 90 83 00 14 */ stw r4, 0x14(r3)
|
||||
/* 80326230 90 83 00 18 */ stw r4, 0x18(r3)
|
||||
/* 80326234 90 83 00 1C */ stw r4, 0x1c(r3)
|
||||
/* 80326238 90 83 00 20 */ stw r4, 0x20(r3)
|
||||
/* 8032623C 90 83 00 24 */ stw r4, 0x24(r3)
|
||||
/* 80326240 90 83 00 28 */ stw r4, 0x28(r3)
|
||||
/* 80326244 38 00 00 01 */ li r0, 1
|
||||
/* 80326248 90 03 00 2C */ stw r0, 0x2c(r3)
|
||||
/* 8032624C 90 83 00 30 */ stw r4, 0x30(r3)
|
||||
/* 80326250 90 83 00 34 */ stw r4, 0x34(r3)
|
||||
/* 80326254 4E 80 00 20 */ blr
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
lbl_8032648C:
|
||||
/* 8032648C 38 0D 83 F0 */ la r0, sNoUseDrawMtxPtr__12J3DMtxBuffer(r13) /* 80450970-_SDA_BASE_ */
|
||||
/* 80326490 90 03 00 18 */ stw r0, 0x18(r3)
|
||||
/* 80326494 90 03 00 14 */ stw r0, 0x14(r3)
|
||||
/* 80326498 38 0D 83 F4 */ la r0, sNoUseNrmMtxPtr__12J3DMtxBuffer(r13) /* 80450974-_SDA_BASE_ */
|
||||
/* 8032649C 90 03 00 20 */ stw r0, 0x20(r3)
|
||||
/* 803264A0 90 03 00 1C */ stw r0, 0x1c(r3)
|
||||
/* 803264A4 38 00 00 00 */ li r0, 0
|
||||
/* 803264A8 90 03 00 28 */ stw r0, 0x28(r3)
|
||||
/* 803264AC 90 03 00 24 */ stw r0, 0x24(r3)
|
||||
/* 803264B0 38 60 00 00 */ li r3, 0
|
||||
/* 803264B4 4E 80 00 20 */ blr
|
||||
|
|
@ -43,11 +43,14 @@ public:
|
|||
u16 getDrawFullWgtMtxNum() const { return mDrawMtxData.mDrawFullWgtMtxNum; }
|
||||
u16 getJointNum() const { return mJointNum; }
|
||||
u16 getDrawMtxNum() const { return mDrawMtxData.mEntryNum; }
|
||||
u8 getDrawMtxFlag(u16 idx) const { return mDrawMtxData.mDrawMtxFlag[idx]; }
|
||||
u8 getDrawMtxIndex(u16 idx) const { return mDrawMtxData.mDrawMtxIndex[idx]; }
|
||||
JUTNameTab* getJointName() const { return mJointName; }
|
||||
J3DJoint* getRootNode() { return mRootNode; }
|
||||
J3DJoint* getJointNodePointer(u16 idx) const { return mJointNodePointer[idx]; }
|
||||
J3DMtxCalc* getBasicMtxCalc() const { return mBasicMtxCalc; }
|
||||
Mtx& getInvJointMtx(s32 idx) const { return mInvJointMtx[idx]; }
|
||||
u32 getModelDataType() const { return mModelDataType; }
|
||||
|
||||
private:
|
||||
/* 0x04 */ J3DModelHierarchy* mHierarchy;
|
||||
|
|
|
|||
|
|
@ -71,6 +71,7 @@ public:
|
|||
void i_setBaseTRMtx(Mtx m) { PSMTXCopy(m, mBaseTransformMtx); }
|
||||
u32 getMtxCalcMode() const { return mFlags & 0x03; }
|
||||
J3DVertexBuffer* getVertexBuffer() const { return (J3DVertexBuffer*)&mVertexBuffer; }
|
||||
J3DMatPacket* getMatPacket(u16 idx) const { return &mMatPacket[idx]; }
|
||||
J3DShapePacket* getShapePacket(u16 idx) const { return &mShapePacket[idx]; }
|
||||
Mtx33* getBumpMtxPtr(int idx) const { return mMtxBuffer->getBumpMtxPtr(idx); }
|
||||
Mtx33* getNrmMtxPtr() const { return mMtxBuffer->getNrmMtxPtr(); }
|
||||
|
|
|
|||
|
|
@ -38,11 +38,14 @@ public:
|
|||
J3DTexture* getTexture() const { return mMaterialTable.getTexture(); }
|
||||
JUTNameTab* getTextureName() const { return mMaterialTable.getTextureName(); }
|
||||
u16 getWEvlpMtxNum() const { return mJointTree.getWEvlpMtxNum(); }
|
||||
u32 getModelDataType() const { return mJointTree.getModelDataType(); }
|
||||
void* getVtxPosArray() const { return mVertexData.getVtxPosArray(); }
|
||||
void* getVtxNrmArray() const { return mVertexData.getVtxNrmArray(); }
|
||||
GXColor* getVtxColorArray(u8 idx) const { return mVertexData.getVtxColorArray(idx); }
|
||||
bool checkFlag(u32 flag) const { return !!(mFlags & flag); }
|
||||
bool checkBumpFlag() const { return mbHasBumpArray; }
|
||||
bool checkFlag(u32 flag) const { return (mFlags & flag) ? true : false; }
|
||||
u32 getFlag() const { return mFlags; }
|
||||
u16 checkBumpFlag() const { return mbHasBumpArray; }
|
||||
void setBumpFlag(u32 flag) { mbHasBumpArray = flag; }
|
||||
bool checkBBoardFlag() const { return mbHasBillboard == 1; }
|
||||
bool isLocked() { return mMaterialTable.isLocked(); }
|
||||
void entryTexMtxAnimator(J3DAnmTextureSRTKey* anm) { mMaterialTable.entryTexMtxAnimator(anm); }
|
||||
|
|
|
|||
|
|
@ -14,11 +14,11 @@ public:
|
|||
|
||||
/* 80326214 */ void initialize();
|
||||
/* 80326258 */ s32 create(J3DModelData*, u32);
|
||||
/* 80326364 */ void createAnmMtx(J3DModelData*);
|
||||
/* 803263F0 */ void createWeightEnvelopeMtx(J3DModelData*);
|
||||
/* 8032648C */ void setNoUseDrawMtx();
|
||||
/* 803264B8 */ void createDoubleDrawMtx(J3DModelData*, u32);
|
||||
/* 80326664 */ void createBumpMtxArray(J3DModelData*, u32);
|
||||
/* 80326364 */ s32 createAnmMtx(J3DModelData*);
|
||||
/* 803263F0 */ s32 createWeightEnvelopeMtx(J3DModelData*);
|
||||
/* 8032648C */ s32 setNoUseDrawMtx();
|
||||
/* 803264B8 */ s32 createDoubleDrawMtx(J3DModelData*, u32);
|
||||
/* 80326664 */ s32 createBumpMtxArray(J3DModelData*, u32);
|
||||
/* 803268D4 */ void calcWeightEnvelopeMtx();
|
||||
/* 80326ACC */ void calcDrawMtx(u32, Vec const&, f32 const (&)[3][4]);
|
||||
/* 80326D3C */ void calcNrmMtx();
|
||||
|
|
@ -26,26 +26,29 @@ public:
|
|||
|
||||
MtxP getAnmMtx(int idx) const { return mpAnmMtx[idx]; }
|
||||
|
||||
void setScaleFlag(int idx, u8 flag) { mScaleFlagArray[idx] = flag; }
|
||||
void setScaleFlag(int idx, u8 flag) { mpScaleFlagArr[idx] = flag; }
|
||||
u32* getCurrentViewNoPtr() { return &mCurrentViewNo; }
|
||||
u8* getScaleFlagArray() const { return mScaleFlagArray; }
|
||||
Mtx** getDrawMtxPtrPtr() const { return mpDrawMtxArr; }
|
||||
Mtx* getDrawMtxPtr() const { return mpDrawMtxArr[mCurrentViewNo]; }
|
||||
Mtx33** getNrmMtxPtrPtr() const { return mpNrmMtxArr; }
|
||||
Mtx33* getNrmMtxPtr() const { return mpNrmMtxArr[mCurrentViewNo]; }
|
||||
Mtx33** getBumpMtxPtrPtr() const { return mpBumpMtxArr; }
|
||||
Mtx33* getBumpMtxPtr(int idx) const { return mpBumpMtxArr[idx]; }
|
||||
u8* getScaleFlagArray() const { return mpScaleFlagArr; }
|
||||
u8 getScaleFlag(u16 idx) const { return mpScaleFlagArr[idx]; }
|
||||
Mtx** getDrawMtxPtrPtr() const { return mpDrawMtxArr[1]; }
|
||||
Mtx* getDrawMtxPtr() const { return mpDrawMtxArr[1][mCurrentViewNo]; }
|
||||
Mtx* getDrawMtx(u16 idx) const { return &mpDrawMtxArr[1][mCurrentViewNo][idx]; }
|
||||
Mtx33** getNrmMtxPtrPtr() const { return mpNrmMtxArr[1]; }
|
||||
Mtx33* getNrmMtxPtr() const { return mpNrmMtxArr[1][mCurrentViewNo]; }
|
||||
Mtx33* getNrmMtx(u16 idx) const { return &mpNrmMtxArr[1][mCurrentViewNo][idx]; }
|
||||
Mtx33*** getBumpMtxPtrPtr() const { return mpBumpMtxArr[1]; }
|
||||
Mtx33* getBumpMtxPtr(int idx) const { return mpBumpMtxArr[1][idx][mCurrentViewNo]; }
|
||||
|
||||
void swapDrawMtx() {
|
||||
Mtx* tmp = mpOldDrawMtxArr[mCurrentViewNo];
|
||||
mpOldDrawMtxArr[mCurrentViewNo] = mpDrawMtxArr[mCurrentViewNo];
|
||||
mpDrawMtxArr[mCurrentViewNo] = tmp;
|
||||
Mtx* tmp = mpDrawMtxArr[0][mCurrentViewNo];
|
||||
mpDrawMtxArr[0][mCurrentViewNo] = mpDrawMtxArr[1][mCurrentViewNo];
|
||||
mpDrawMtxArr[1][mCurrentViewNo] = tmp;
|
||||
}
|
||||
|
||||
void swapNrmMtx() {
|
||||
Mtx33* tmp = mpOldNrmMtxArr[mCurrentViewNo];
|
||||
mpOldNrmMtxArr[mCurrentViewNo] = mpNrmMtxArr[mCurrentViewNo];
|
||||
mpNrmMtxArr[mCurrentViewNo] = tmp;
|
||||
Mtx33* tmp = mpNrmMtxArr[0][mCurrentViewNo];
|
||||
mpNrmMtxArr[0][mCurrentViewNo] = mpNrmMtxArr[1][mCurrentViewNo];
|
||||
mpNrmMtxArr[1][mCurrentViewNo] = tmp;
|
||||
}
|
||||
|
||||
static Mtx sNoUseDrawMtx;
|
||||
|
|
@ -55,19 +58,16 @@ public:
|
|||
|
||||
private:
|
||||
/* 0x00 */ J3DJointTree* mJointTree;
|
||||
/* 0x04 */ u8* mScaleFlagArray;
|
||||
/* 0x08 */ u8* mEnvScaleFlag;
|
||||
/* 0x04 */ u8* mpScaleFlagArr;
|
||||
/* 0x08 */ u8* mpEvlpScaleFlagArr;
|
||||
/* 0x0C */ Mtx* mpAnmMtx;
|
||||
/* 0x10 */ Mtx* mpWeightEnvMtx;
|
||||
/* 0x14 */ Mtx** mpOldDrawMtxArr;
|
||||
/* 0x18 */ Mtx** mpDrawMtxArr;
|
||||
/* 0x1C */ Mtx33** mpOldNrmMtxArr;
|
||||
/* 0x20 */ Mtx33** mpNrmMtxArr;
|
||||
/* 0x24 */ u32 field_0x24;
|
||||
/* 0x28 */ Mtx33** mpBumpMtxArr;
|
||||
/* 0x10 */ Mtx* mpWeightEvlpMtx;
|
||||
/* 0x14 */ Mtx** mpDrawMtxArr[2];
|
||||
/* 0x1C */ Mtx33** mpNrmMtxArr[2];
|
||||
/* 0x28 */ Mtx33*** mpBumpMtxArr[2];
|
||||
/* 0x2C */ u32 mFlags;
|
||||
/* 0x30 */ u32 mCurrentViewNo;
|
||||
/* 0x34 */ Mtx** mUserAnmMtx;
|
||||
/* 0x34 */ Mtx* mpUserAnmMtx;
|
||||
|
||||
public:
|
||||
/* 803283B4 */ virtual ~J3DMtxBuffer();
|
||||
|
|
|
|||
|
|
@ -71,7 +71,7 @@ public:
|
|||
/* 0x14 */ u16 mIndex;
|
||||
/* 0x18 */ u32 mInvalid;
|
||||
/* 0x1C */ u32 field_0x1c;
|
||||
/* 0x20 */ u32 field_0x20;
|
||||
/* 0x20 */ u32 mDiffFlag;
|
||||
/* 0x24 */ J3DColorBlock* mColorBlock;
|
||||
/* 0x28 */ J3DTexGenBlock* mTexGenBlock;
|
||||
/* 0x2C */ J3DTevBlock* mTevBlock;
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ class J3DModel;
|
|||
class J3DMtxBuffer;
|
||||
class J3DShape;
|
||||
class J3DTexMtx;
|
||||
class J3DTexMtxObj;
|
||||
class J3DTexture;
|
||||
|
||||
class J3DDisplayListObj {
|
||||
|
|
@ -100,13 +101,13 @@ public:
|
|||
void offFlag(u32 flag) { mFlags &= ~flag; }
|
||||
void lock() { onFlag(LOCKED); }
|
||||
void unlock() { offFlag(LOCKED); }
|
||||
J3DTexMtx* getTexMtxObj() const { return mpTexMtx; }
|
||||
J3DTexMtxObj* getTexMtxObj() const { return mpTexMtxObj; }
|
||||
|
||||
public:
|
||||
/* 0x10 */ u32 mFlags;
|
||||
/* 0x14 */ char mPad0[0x0C]; // unk
|
||||
/* 0x20 */ J3DDisplayListObj* mpDisplayListObj;
|
||||
/* 0x24 */ J3DTexMtx* mpTexMtx;
|
||||
/* 0x24 */ J3DTexMtxObj* mpTexMtxObj;
|
||||
}; // Size: 0x28
|
||||
|
||||
class J3DShapePacket : public J3DDrawPacket {
|
||||
|
|
|
|||
|
|
@ -101,6 +101,7 @@ public:
|
|||
u32 getBumpMtxOffset() const { return mBumpMtxOffset; }
|
||||
|
||||
inline J3DMaterial* getMaterial() const { return mMaterial; }
|
||||
inline u32 getIndex() const { return mIndex; }
|
||||
inline u32 getPipeline() const { return (mFlags >> 2) & 0x07; }
|
||||
inline u32 getTexMtxLoadType() const { return mFlags & 0xF000; }
|
||||
inline u32 getMtxGroupNum() const { return mMtxGroupNum; }
|
||||
|
|
|
|||
|
|
@ -7,6 +7,14 @@
|
|||
class J3DTexMtx;
|
||||
class J3DTexGenBlock;
|
||||
|
||||
class J3DTexMtxObj {
|
||||
public:
|
||||
Mtx& getMtx(u16 idx) { return mpTexMtx[idx]; }
|
||||
|
||||
private:
|
||||
/* 0x00 */ Mtx *mpTexMtx;
|
||||
};
|
||||
|
||||
class J3DDifferedTexMtx {
|
||||
public:
|
||||
/* 8031322C */ static void loadExecute(f32 const (*)[4]);
|
||||
|
|
@ -17,7 +25,7 @@ public:
|
|||
}
|
||||
|
||||
static J3DTexGenBlock* sTexGenBlock;
|
||||
static J3DTexMtx* sTexMtxObj;
|
||||
static J3DTexMtxObj* sTexMtxObj;
|
||||
};
|
||||
|
||||
extern u8 struct_804515B0[4];
|
||||
|
|
|
|||
|
|
@ -54,6 +54,7 @@ public:
|
|||
/* 803243BC */ void loadPostTexMtx(u32) const;
|
||||
|
||||
J3DTexMtxInfo& getTexMtxInfo() { return mTexMtxInfo; }
|
||||
Mtx& getMtx() { return mMtx; }
|
||||
|
||||
private:
|
||||
/* 0x00 */ J3DTexMtxInfo mTexMtxInfo;
|
||||
|
|
|
|||
|
|
@ -206,7 +206,6 @@ s32 J3DModel::entryModelData(J3DModelData* p_modelData, u32 param_1, u32 param_2
|
|||
|
||||
/* 80327300-803273CC 321C40 00CC+00 1/1 0/0 0/0 .text createShapePacket__8J3DModelFP12J3DModelData
|
||||
*/
|
||||
// probably some wrong member types
|
||||
s32 J3DModel::createShapePacket(J3DModelData* p_modelData) {
|
||||
if (p_modelData->getShapeNum() != 0) {
|
||||
u16 shapeNum = p_modelData->getShapeNum();
|
||||
|
|
@ -229,6 +228,87 @@ s32 J3DModel::createShapePacket(J3DModelData* p_modelData) {
|
|||
|
||||
/* 803273CC-803275FC 321D0C 0230+00 1/1 0/0 0/0 .text createMatPacket__8J3DModelFP12J3DModelDataUl
|
||||
*/
|
||||
#if defined NON_MATCHING
|
||||
s32 J3DModel::createMatPacket(J3DModelData* p_modelData, u32 flag) {
|
||||
// regalloc
|
||||
if (p_modelData->getMaterialNum() != 0) {
|
||||
mMatPacket = new J3DMatPacket[p_modelData->getMaterialNum()];
|
||||
|
||||
if (mMatPacket == NULL) {
|
||||
return kJ3DError_Alloc;
|
||||
}
|
||||
}
|
||||
|
||||
s32 ret;
|
||||
u16 matNum = p_modelData->getMaterialNum();
|
||||
u16 i = 0;
|
||||
|
||||
u32 singleDLFlag = flag & 0x40000;
|
||||
for (; i < matNum; i++) {
|
||||
J3DMaterial* materialNode = p_modelData->getMaterialNodePointer(i);
|
||||
J3DMatPacket* pkt = getMatPacket(i);
|
||||
u16 shapeIndex = materialNode->getShape()->getIndex();
|
||||
J3DShapePacket* shapePacket = getShapePacket(shapeIndex);
|
||||
pkt->mpMaterial = materialNode;
|
||||
pkt->mpInitShapePacket = shapePacket;
|
||||
pkt->addShapePacket(shapePacket);
|
||||
pkt->mpTexture = p_modelData->getMaterialTable().getTexture();
|
||||
pkt->mDiffFlag = materialNode->mDiffFlag;
|
||||
|
||||
if (p_modelData->getModelDataType() == 1) {
|
||||
pkt->mFlags |= 0x01;
|
||||
}
|
||||
|
||||
if (!!(flag & 0x80000)) {
|
||||
pkt->mpDisplayListObj = materialNode->getSharedDisplayListObj();
|
||||
} else {
|
||||
if (p_modelData->getModelDataType() == 1) {
|
||||
if (!!(flag & 0x40000)) {
|
||||
pkt->mpDisplayListObj = materialNode->getSharedDisplayListObj();
|
||||
} else {
|
||||
J3DDisplayListObj* sharedDL = materialNode->getSharedDisplayListObj();
|
||||
ret = sharedDL->single_To_Double();
|
||||
if (ret != kJ3DError_Success)
|
||||
return ret;
|
||||
|
||||
pkt->mpDisplayListObj = sharedDL;
|
||||
}
|
||||
} else if (!!(flag & 0x20000)) {
|
||||
if (!!(flag & 0x40000)) {
|
||||
ret = materialNode->newSingleSharedDisplayList(materialNode->countDLSize());
|
||||
if (ret != kJ3DError_Success)
|
||||
return ret;
|
||||
|
||||
pkt->mpDisplayListObj = materialNode->getSharedDisplayListObj();
|
||||
} else {
|
||||
ret = materialNode->newSharedDisplayList(materialNode->countDLSize());
|
||||
if (ret != kJ3DError_Success)
|
||||
return ret;
|
||||
|
||||
J3DDisplayListObj* sharedDL = materialNode->getSharedDisplayListObj();
|
||||
ret = sharedDL->single_To_Double();
|
||||
if (ret != kJ3DError_Success)
|
||||
return ret;
|
||||
|
||||
pkt->mpDisplayListObj = sharedDL;
|
||||
}
|
||||
} else {
|
||||
if (!!(flag & 0x40000)) {
|
||||
ret = pkt->newSingleDisplayList(materialNode->countDLSize());
|
||||
if (ret != kJ3DError_Success)
|
||||
return ret;
|
||||
} else {
|
||||
ret = pkt->newDisplayList(materialNode->countDLSize());
|
||||
if (ret != kJ3DError_Success)
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return kJ3DError_Success;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -237,16 +317,19 @@ asm s32 J3DModel::createMatPacket(J3DModelData* param_0, u32 param_1) {
|
|||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/createMatPacket__8J3DModelFP12J3DModelDataUl.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 803275FC-8032767C 321F3C 0080+00 0/0 1/1 0/0 .text newDifferedDisplayList__8J3DModelFUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 J3DModel::newDifferedDisplayList(u32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/newDifferedDisplayList__8J3DModelFUl.s"
|
||||
s32 J3DModel::newDifferedDisplayList(u32 flag) {
|
||||
mDiffFlag = flag;
|
||||
u16 shapeNum = getModelData()->getShapeNum();
|
||||
for (u16 i = 0; i < shapeNum; i++) {
|
||||
s32 ret = mShapePacket[i].newDifferedDisplayList(flag);
|
||||
if (ret != kJ3DError_Success)
|
||||
return ret;
|
||||
}
|
||||
return kJ3DError_Success;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8032767C-803276B4 321FBC 0038+00 0/0 4/4 0/0 .text lock__8J3DModelFv */
|
||||
void J3DModel::lock() {
|
||||
|
|
@ -300,6 +383,33 @@ void J3DModel::calcMaterial() {
|
|||
}
|
||||
|
||||
/* 80327858-803279A0 322198 0148+00 1/0 0/0 0/0 .text calcDiffTexMtx__8J3DModelFv */
|
||||
#if defined NON_MATCHING
|
||||
void J3DModel::calcDiffTexMtx() {
|
||||
// regalloc
|
||||
j3dSys.setModel(this);
|
||||
|
||||
u16 num;
|
||||
num = getModelData()->getMaterialNum();
|
||||
for (u16 i = 0; i < num; i++) {
|
||||
j3dSys.setMatPacket(getMatPacket(i));
|
||||
J3DMaterial* materialNode = getModelData()->getMaterialNodePointer(i);
|
||||
materialNode->calcDiffTexMtx(i_getAnmMtx(materialNode->getJoint()->getJntNo()));
|
||||
}
|
||||
|
||||
num = getModelData()->getShapeNum();
|
||||
for (u16 i = 0; i < num; i++) {
|
||||
J3DShapePacket* shapePacket = getShapePacket(i);
|
||||
J3DTexGenBlock* texGenBlock = getModelData()->getShapeNodePointer(i)->getMaterial()->getTexGenBlock();
|
||||
for (u16 j = 0; (int)j < 8; j++) {
|
||||
J3DTexMtx* texMtxNode = texGenBlock->getTexMtx(j);
|
||||
J3DTexMtxObj* texMtxObj = shapePacket->getTexMtxObj();
|
||||
if (texMtxNode != NULL && texMtxObj != NULL) {
|
||||
PSMTXCopy(texMtxNode->getMtx(), texMtxObj->getMtx(j));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
|
|
@ -308,6 +418,7 @@ asm void J3DModel::calcDiffTexMtx() {
|
|||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/calcDiffTexMtx__8J3DModelFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 803279A0-80327A2C 3222E0 008C+00 0/0 2/2 0/0 .text diff__8J3DModelFv */
|
||||
void J3DModel::diff() {
|
||||
|
|
@ -350,7 +461,7 @@ s32 J3DModel::setSkinDeform(J3DSkinDeform* p_skinDeform, u32 flags) {
|
|||
mSkinDeform->initMtxIndexArray(mModelData);
|
||||
|
||||
ret = mModelData->checkFlag(0x100);
|
||||
if (ret != 0) {
|
||||
if (ret != kJ3DError_Success) {
|
||||
mSkinDeform->changeFastSkinDL(mModelData);
|
||||
flags &= ~2;
|
||||
flags &= ~4;
|
||||
|
|
@ -540,33 +651,22 @@ void J3DModel::calcNrmMtx() {
|
|||
}
|
||||
|
||||
/* 803281B4-803282B8 322AF4 0104+00 1/1 0/0 0/0 .text calcBumpMtx__8J3DModelFv */
|
||||
#ifdef NONMATCHING
|
||||
void J3DModel::calcBumpMtx() {
|
||||
// comparison (might be b/c of bool rather than u8?)
|
||||
if (!getModelData()->checkBumpFlag())
|
||||
return;
|
||||
if (getModelData()->checkBumpFlag() == 1) {
|
||||
u32 bumpMtxIdx = 0;
|
||||
u16 materialNum = getModelData()->getMaterialNum();
|
||||
u16 i = 0;
|
||||
|
||||
// loop is a bit different
|
||||
for (u16 n = getModelData()->getMaterialNum(), i = 0; i < n; i++) {
|
||||
J3DMaterial* material = getModelData()->getMaterialNodePointer(i);
|
||||
if (!material->getNBTScale()->mbHasScale)
|
||||
continue;
|
||||
|
||||
material->getShape()->calcNBTScale(*material->getNBTScale()->getScale(), getNrmMtxPtr(),
|
||||
getBumpMtxPtr(i));
|
||||
DCStoreRange(getBumpMtxPtr(i), getModelData()->getDrawMtxNum() * 0x24);
|
||||
for (; i < materialNum; i++) {
|
||||
J3DMaterial* material = getModelData()->getMaterialNodePointer(i);
|
||||
if (material->getNBTScale()->mbHasScale == 1) {
|
||||
material->getShape()->calcNBTScale(*material->getNBTScale()->getScale(), getNrmMtxPtr(), getBumpMtxPtr(bumpMtxIdx));
|
||||
DCStoreRange(getBumpMtxPtr(bumpMtxIdx), getModelData()->getDrawMtxNum() * 0x24);
|
||||
bumpMtxIdx++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DModel::calcBumpMtx() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModel/calcBumpMtx__8J3DModelFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 803282B8-803282EC 322BF8 0034+00 1/1 0/0 0/0 .text calcBBoardMtx__8J3DModelFv */
|
||||
void J3DModel::calcBBoardMtx() {
|
||||
|
|
@ -576,9 +676,11 @@ void J3DModel::calcBBoardMtx() {
|
|||
}
|
||||
|
||||
/* 803282EC-80328350 322C2C 0064+00 2/2 0/0 0/0 .text prepareShapePackets__8J3DModelFv */
|
||||
#ifdef NONMATCHING
|
||||
#if defined NONMATCHING
|
||||
void J3DModel::prepareShapePackets() {
|
||||
for (u16 n = getModelData()->getShapeNum(), i = 0; i < n; i++) {
|
||||
u16 shapeNum = getModelData()->getShapeNum();
|
||||
|
||||
for (u16 i = 0; i < shapeNum; i++) {
|
||||
// two swapped instructions right around here when calling getShapePacket
|
||||
J3DShapePacket* pkt = getShapePacket(i);
|
||||
pkt->setMtxBuffer(mMtxBuffer);
|
||||
|
|
|
|||
|
|
@ -76,41 +76,23 @@ J3DModelData::J3DModelData() {
|
|||
}
|
||||
|
||||
/* 80325E14-80325EC8 320754 00B4+00 0/0 2/2 0/0 .text newSharedDisplayList__12J3DModelDataFUl */
|
||||
#ifdef NONMATCHING
|
||||
s32 J3DModelData::newSharedDisplayList(u32 param_0) {
|
||||
s32 J3DModelData::newSharedDisplayList(u32 flag) {
|
||||
u16 matNum = getMaterialNum();
|
||||
|
||||
for (u16 i = 0; i < matNum; i++) {
|
||||
if ((param_0 & 0x40000)) {
|
||||
J3DMaterial* matNode = getMaterialNodePointer(i);
|
||||
u32 dl_size = matNode->countDLSize();
|
||||
switch (matNode->newSingleSharedDisplayList(dl_size)) {
|
||||
case 0:
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
if (!!(flag & 0x40000)) {
|
||||
s32 ret = getMaterialNodePointer(i)->newSingleSharedDisplayList(getMaterialNodePointer(i)->countDLSize());
|
||||
if (ret != kJ3DError_Success)
|
||||
return ret;
|
||||
} else {
|
||||
J3DMaterial* matNode = getMaterialNodePointer(i);
|
||||
u32 dl_size = matNode->countDLSize();
|
||||
switch (matNode->newSharedDisplayList(dl_size)) {
|
||||
case 0:
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
s32 ret = getMaterialNodePointer(i)->newSharedDisplayList(getMaterialNodePointer(i)->countDLSize());
|
||||
if (ret != kJ3DError_Success)
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
|
||||
return kJ3DError_Success;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 J3DModelData::newSharedDisplayList(u32 param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DModelData/newSharedDisplayList__12J3DModelDataFUl.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804515E8-804515EC 000AE8 0004+00 1/1 0/0 0/0 .sbss sInterruptFlag$965 */
|
||||
|
|
|
|||
|
|
@ -4,8 +4,10 @@
|
|||
//
|
||||
|
||||
#include "JSystem/J3DGraphAnimator/J3DMtxBuffer.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
#include "mtx/mtx.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
|
|
@ -55,46 +57,106 @@ extern "C" void _restgpr_29();
|
|||
//
|
||||
|
||||
/* 80326214-80326258 320B54 0044+00 0/0 1/1 0/0 .text initialize__12J3DMtxBufferFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMtxBuffer::initialize() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DMtxBuffer/initialize__12J3DMtxBufferFv.s"
|
||||
void J3DMtxBuffer::initialize() {
|
||||
mJointTree = NULL;
|
||||
mpScaleFlagArr = NULL;
|
||||
mpEvlpScaleFlagArr = NULL;
|
||||
mpAnmMtx = NULL;
|
||||
mpWeightEvlpMtx = NULL;
|
||||
mpDrawMtxArr[0] = NULL;
|
||||
mpDrawMtxArr[1] = NULL;
|
||||
mpNrmMtxArr[0] = NULL;
|
||||
mpNrmMtxArr[1] = NULL;
|
||||
mpBumpMtxArr[0] = NULL;
|
||||
mpBumpMtxArr[1] = NULL;
|
||||
mFlags = 1;
|
||||
mCurrentViewNo = 0;
|
||||
mpUserAnmMtx = NULL;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80326258-80326364 320B98 010C+00 0/0 1/1 0/0 .text create__12J3DMtxBufferFP12J3DModelDataUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 J3DMtxBuffer::create(J3DModelData* param_0, u32 param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DMtxBuffer/create__12J3DMtxBufferFP12J3DModelDataUl.s"
|
||||
enum {
|
||||
J3DMdlDataFlag_ConcatView = 0x10,
|
||||
J3DMdlDataFlag_NoAnimation = 0x100,
|
||||
};
|
||||
|
||||
static inline u32 getMdlDataFlag_MtxLoadType(u32 flag) {
|
||||
return flag & 0x10;
|
||||
}
|
||||
|
||||
s32 J3DMtxBuffer::create(J3DModelData* p_modelData, u32 flag) {
|
||||
s32 ret;
|
||||
|
||||
mFlags = flag;
|
||||
mJointTree = &p_modelData->getJointTree();
|
||||
|
||||
ret = createAnmMtx(p_modelData);
|
||||
if (ret != kJ3DError_Success)
|
||||
return ret;
|
||||
|
||||
ret = createWeightEnvelopeMtx(p_modelData);
|
||||
if (ret != kJ3DError_Success)
|
||||
return ret;
|
||||
|
||||
if (p_modelData->checkFlag(J3DMdlDataFlag_NoAnimation)) {
|
||||
setNoUseDrawMtx();
|
||||
} else {
|
||||
switch (getMdlDataFlag_MtxLoadType(p_modelData->getFlag())) {
|
||||
case J3DMdlDataFlag_ConcatView:
|
||||
ret = setNoUseDrawMtx();
|
||||
break;
|
||||
case 0:
|
||||
default:
|
||||
ret = createDoubleDrawMtx(p_modelData, flag);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (ret != kJ3DError_Success)
|
||||
return ret;
|
||||
|
||||
if (p_modelData->getFlag() & J3DMdlDataFlag_ConcatView) {
|
||||
p_modelData->setBumpFlag(0);
|
||||
} else {
|
||||
ret = createBumpMtxArray(p_modelData, flag);
|
||||
|
||||
if (ret != kJ3DError_Success)
|
||||
return ret;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80326364-803263F0 320CA4 008C+00 1/1 0/0 0/0 .text createAnmMtx__12J3DMtxBufferFP12J3DModelData
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMtxBuffer::createAnmMtx(J3DModelData* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DMtxBuffer/createAnmMtx__12J3DMtxBufferFP12J3DModelData.s"
|
||||
s32 J3DMtxBuffer::createAnmMtx(J3DModelData* p_modelData) {
|
||||
if (p_modelData->getJointNum() != 0) {
|
||||
mpScaleFlagArr = new u8[p_modelData->getJointNum()];
|
||||
mpAnmMtx = new Mtx[p_modelData->getJointNum()];
|
||||
mpUserAnmMtx = mpAnmMtx;
|
||||
}
|
||||
|
||||
if (mpScaleFlagArr == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
|
||||
return mpAnmMtx == NULL ? kJ3DError_Alloc : kJ3DError_Success;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803263F0-8032648C 320D30 009C+00 1/1 0/0 0/0 .text
|
||||
* createWeightEnvelopeMtx__12J3DMtxBufferFP12J3DModelData */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMtxBuffer::createWeightEnvelopeMtx(J3DModelData* param_0) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DMtxBuffer/createWeightEnvelopeMtx__12J3DMtxBufferFP12J3DModelData.s"
|
||||
s32 J3DMtxBuffer::createWeightEnvelopeMtx(J3DModelData* p_modelData) {
|
||||
if (p_modelData->getWEvlpMtxNum() != 0) {
|
||||
mpEvlpScaleFlagArr = new u8[p_modelData->getWEvlpMtxNum()];
|
||||
mpWeightEvlpMtx = new Mtx[p_modelData->getWEvlpMtxNum()];
|
||||
}
|
||||
|
||||
if (p_modelData->getWEvlpMtxNum() != 0 && mpEvlpScaleFlagArr == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
if (p_modelData->getWEvlpMtxNum() != 0 && mpWeightEvlpMtx == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
|
||||
return kJ3DError_Success;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 804371C0-804371F0 063EE0 0030+00 1/0 0/0 0/0 .bss sNoUseDrawMtx__12J3DMtxBuffer */
|
||||
|
|
@ -111,32 +173,65 @@ Mtx33* J3DMtxBuffer::sNoUseNrmMtxPtr = &J3DMtxBuffer::sNoUseNrmMtx;
|
|||
|
||||
/* 8032648C-803264B8 320DCC 002C+00 1/1 0/0 0/0 .text setNoUseDrawMtx__12J3DMtxBufferFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMtxBuffer::setNoUseDrawMtx() {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DMtxBuffer/setNoUseDrawMtx__12J3DMtxBufferFv.s"
|
||||
s32 J3DMtxBuffer::setNoUseDrawMtx() {
|
||||
mpDrawMtxArr[1] = &sNoUseDrawMtxPtr;
|
||||
mpDrawMtxArr[0] = &sNoUseDrawMtxPtr;
|
||||
mpNrmMtxArr[1] = &sNoUseNrmMtxPtr;
|
||||
mpNrmMtxArr[0] = &sNoUseNrmMtxPtr;
|
||||
mpBumpMtxArr[1] = NULL;
|
||||
mpBumpMtxArr[0] = NULL;
|
||||
return kJ3DError_Success;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 803264B8-80326664 320DF8 01AC+00 1/1 0/0 0/0 .text
|
||||
* createDoubleDrawMtx__12J3DMtxBufferFP12J3DModelDataUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMtxBuffer::createDoubleDrawMtx(J3DModelData* param_0, u32 param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DMtxBuffer/createDoubleDrawMtx__12J3DMtxBufferFP12J3DModelDataUl.s"
|
||||
s32 J3DMtxBuffer::createDoubleDrawMtx(J3DModelData* p_modelData, u32 num) {
|
||||
if (num != 0) {
|
||||
for (s32 i = 0; i < 2; i++) {
|
||||
mpDrawMtxArr[i] = new Mtx*[num];
|
||||
mpNrmMtxArr[i] = new Mtx33*[num];
|
||||
mpBumpMtxArr[i] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
if (num != 0) {
|
||||
for (u32 i = 0; i < 2; i++) {
|
||||
if (mpDrawMtxArr[i] == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
if (mpNrmMtxArr[i] == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
}
|
||||
}
|
||||
|
||||
for (s32 i = 0; i < 2; i++) {
|
||||
for (u32 j = 0; j < num; j++) {
|
||||
if (p_modelData->getDrawMtxNum() != 0) {
|
||||
mpDrawMtxArr[i][j] = new (0x20) Mtx[p_modelData->getDrawMtxNum()];
|
||||
mpNrmMtxArr[i][j] = new (0x20) Mtx33[p_modelData->getDrawMtxNum()];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (s32 i = 0; i < 2; i++) {
|
||||
for (u32 j = 0; j < num; j++) {
|
||||
if (p_modelData->getDrawMtxNum() != 0) {
|
||||
if (mpDrawMtxArr[i][j] == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
if (mpNrmMtxArr[i][j] == NULL)
|
||||
return kJ3DError_Alloc;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return kJ3DError_Success;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80326664-803268D4 320FA4 0270+00 1/1 0/0 0/0 .text
|
||||
* createBumpMtxArray__12J3DMtxBufferFP12J3DModelDataUl */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DMtxBuffer::createBumpMtxArray(J3DModelData* param_0, u32 param_1) {
|
||||
asm s32 J3DMtxBuffer::createBumpMtxArray(J3DModelData* param_0, u32 param_1) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DMtxBuffer/createBumpMtxArray__12J3DMtxBufferFP12J3DModelDataUl.s"
|
||||
}
|
||||
|
|
@ -169,6 +264,8 @@ asm void J3DMtxBuffer::calcDrawMtx(u32 param_0, Vec const& param_1, f32 const (&
|
|||
}
|
||||
#pragma pop
|
||||
|
||||
extern void J3DPSCalcInverseTranspose(Mtx p1, Mtx33 p2);
|
||||
|
||||
/* 80326D3C-80326EF0 32167C 01B4+00 0/0 1/1 0/0 .text calcNrmMtx__12J3DMtxBufferFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
|
|
@ -203,12 +300,23 @@ asm void J3DMtxBuffer::calcBBoardMtx() {
|
|||
|
||||
/* 80327048-80327100 321988 00B8+00 1/1 1/1 0/0 .text
|
||||
* J3DCalcViewBaseMtx__FPA4_fRC3VecRA3_A4_CfPA4_f */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void J3DCalcViewBaseMtx(f32 (*param_0)[4], Vec const& param_1, f32 const (¶m_2)[3][4],
|
||||
f32 (*param_3)[4]) {
|
||||
nofralloc
|
||||
#include "asm/JSystem/J3DGraphAnimator/J3DMtxBuffer/J3DCalcViewBaseMtx__FPA4_fRC3VecRA3_A4_CfPA4_f.s"
|
||||
void J3DCalcViewBaseMtx(Mtx view, Vec const& scale, const Mtx& base, Mtx dst) {
|
||||
Mtx m;
|
||||
|
||||
m[0][0] = base[0][0] * scale.x;
|
||||
m[0][1] = base[0][1] * scale.y;
|
||||
m[0][2] = base[0][2] * scale.z;
|
||||
m[0][3] = base[0][3];
|
||||
|
||||
m[1][0] = base[1][0] * scale.x;
|
||||
m[1][1] = base[1][1] * scale.y;
|
||||
m[1][2] = base[1][2] * scale.z;
|
||||
m[1][3] = base[1][3];
|
||||
|
||||
m[2][0] = base[2][0] * scale.x;
|
||||
m[2][1] = base[2][1] * scale.y;
|
||||
m[2][2] = base[2][2] * scale.z;
|
||||
m[2][3] = base[2][3];
|
||||
|
||||
PSMTXConcat(view, m, dst);
|
||||
}
|
||||
#pragma pop
|
||||
|
|
|
|||
|
|
@ -209,7 +209,7 @@ SECTION_DATA static s32 sSizeOfDiffered[8] = {
|
|||
J3DDrawPacket::J3DDrawPacket() {
|
||||
mFlags = 0;
|
||||
mpDisplayListObj = NULL;
|
||||
mpTexMtx = NULL;
|
||||
mpTexMtxObj = NULL;
|
||||
}
|
||||
|
||||
/* 803127B0-8031280C 30D0F0 005C+00 3/2 0/0 0/0 .text __dt__13J3DDrawPacketFv */
|
||||
|
|
@ -348,7 +348,7 @@ J3DError J3DShapePacket::newDifferedDisplayList(u32 flag) {
|
|||
}
|
||||
|
||||
/* 80312E08-80312F24 30D748 011C+00 2/2 0/0 0/0 .text prepareDraw__14J3DShapePacketCFv */
|
||||
#ifdef NONMATCHING
|
||||
#if defined NONMATCHING
|
||||
void J3DShapePacket::prepareDraw() const {
|
||||
mpModel->getVertexBuffer()->setArray();
|
||||
j3dSys.setModel(mpModel);
|
||||
|
|
@ -376,7 +376,7 @@ void J3DShapePacket::prepareDraw() const {
|
|||
if (!mpShape->getNBTFlag()) {
|
||||
mpShape->setNrmMtx(mpMtxBuffer->getNrmMtxPtrPtr());
|
||||
} else {
|
||||
mpShape->setNrmMtx(mpMtxBuffer->getBumpMtxPtrPtr() + mpShape->getBumpMtxOffset());
|
||||
mpShape->setNrmMtx(mpMtxBuffer->getBumpMtxPtrPtr()[mpShape->getBumpMtxOffset()]);
|
||||
}
|
||||
|
||||
mpModel->getModelData()->syncJ3DSysFlags();
|
||||
|
|
@ -397,7 +397,7 @@ void J3DShapePacket::draw() {
|
|||
if (!checkFlag(J3DShpFlag_Hidden) && mpShape != NULL) {
|
||||
prepareDraw();
|
||||
|
||||
if (mpTexMtx != NULL) {
|
||||
if (mpTexMtxObj != NULL) {
|
||||
J3DMaterial* material = mpShape->getMaterial();
|
||||
J3DDifferedTexMtx::sTexGenBlock = material->getTexGenBlock();
|
||||
J3DDifferedTexMtx::sTexMtxObj = getTexMtxObj();
|
||||
|
|
@ -418,7 +418,7 @@ void J3DShapePacket::drawFast() {
|
|||
if (!checkFlag(J3DShpFlag_Hidden) && mpShape != NULL) {
|
||||
prepareDraw();
|
||||
|
||||
if (mpTexMtx != NULL) {
|
||||
if (mpTexMtxObj != NULL) {
|
||||
J3DMaterial* material = mpShape->getMaterial();
|
||||
J3DDifferedTexMtx::sTexGenBlock = material->getTexGenBlock();
|
||||
J3DDifferedTexMtx::sTexMtxObj = getTexMtxObj();
|
||||
|
|
|
|||
|
|
@ -370,7 +370,7 @@ u8 J3DShapeMtxConcatView::sMtxPtrTbl[8];
|
|||
J3DTexGenBlock* J3DDifferedTexMtx::sTexGenBlock;
|
||||
|
||||
/* 804515C4-804515C8 000AC4 0004+00 1/1 2/2 0/0 .sbss sTexMtxObj__17J3DDifferedTexMtx */
|
||||
J3DTexMtx* J3DDifferedTexMtx::sTexMtxObj;
|
||||
J3DTexMtxObj* J3DDifferedTexMtx::sTexMtxObj;
|
||||
|
||||
/* 80456398-8045639C 004998 0004+00 2/2 0/0 0/0 .sdata2 @1032 */
|
||||
SECTION_SDATA2 static u8 lit_1032[4] = {
|
||||
|
|
|
|||
|
|
@ -4,18 +4,17 @@
|
|||
//
|
||||
|
||||
#include "d/d_kyeff.h"
|
||||
|
||||
#include "Z2AudioLib/Z2EnvSeMgr.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "f_op/f_op_actor.h"
|
||||
#include "f_op/f_op_kankyo.h"
|
||||
#include "OS/OSTime.h"
|
||||
#include "d/kankyo/d_kankyo.h"
|
||||
#include "d/kankyo/d_kankyo_wether.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct kankyo_class {};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
|
@ -131,12 +130,16 @@ static asm int dKyeff_Create(kankyo_class* param_0) {
|
|||
|
||||
/* ############################################################################################## */
|
||||
/* 803BC158-803BC16C -00001 0014+00 1/0 0/0 0/0 .data l_dKyeff_Method */
|
||||
SECTION_DATA static void* l_dKyeff_Method[5] = {
|
||||
(void*)dKyeff_Create__FP12kankyo_class, (void*)dKyeff_Delete__FP8dKyeff_c,
|
||||
(void*)dKyeff_Execute__FP8dKyeff_c, (void*)dKyeff_IsDelete__FP8dKyeff_c,
|
||||
(void*)dKyeff_Draw__FP8dKyeff_c,
|
||||
static leafdraw_method_class l_dKyeff_Method = {
|
||||
(process_method_func)dKyeff_Create,
|
||||
(process_method_func)dKyeff_Delete,
|
||||
(process_method_func)dKyeff_Execute,
|
||||
(process_method_func)dKyeff_IsDelete,
|
||||
(process_method_func)dKyeff_Draw,
|
||||
};
|
||||
|
||||
extern "C" extern void* g_fopKy_Method[5 + 1 /* padding */];
|
||||
|
||||
/* 803BC16C-803BC198 -00001 0028+04 0/0 0/0 1/0 .data g_profile_KYEFF */
|
||||
SECTION_DATA extern void* g_profile_KYEFF[10 + 1 /* padding */] = {
|
||||
(void*)0xFFFFFFFD,
|
||||
|
|
|
|||
|
|
@ -4,43 +4,11 @@
|
|||
//
|
||||
|
||||
#include "d/d_kyeff2.h"
|
||||
#include "f_op/f_op_kankyo.h"
|
||||
#include "d/kankyo/d_kankyo_wether.h"
|
||||
#include "dol2asm.h"
|
||||
#include "dolphin/types.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct kankyo_class {};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" static void dKyeff2_Draw__FP9dKyeff2_c();
|
||||
extern "C" void execute__9dKyeff2_cFv();
|
||||
extern "C" static void dKyeff2_Execute__FP9dKyeff2_c();
|
||||
extern "C" static bool dKyeff2_IsDelete__FP9dKyeff2_c();
|
||||
extern "C" static void dKyeff2_Delete__FP9dKyeff2_c();
|
||||
extern "C" static void dKyeff2_Create__FP12kankyo_class();
|
||||
extern "C" extern void* g_profile_KYEFF2[10 + 1 /* padding */];
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void dKyw_wether_init2__Fv();
|
||||
extern "C" void dKyw_wether_delete2__Fv();
|
||||
extern "C" void dKyw_wether_move_draw2__Fv();
|
||||
extern "C" void dKyw_wether_draw2__Fv();
|
||||
extern "C" extern void* g_fopKy_Method[5 + 1 /* padding */];
|
||||
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
static bool dKyeff2_Draw(dKyeff2_c* ptr) {
|
||||
dKyw_wether_draw2();
|
||||
return true;
|
||||
|
|
@ -71,12 +39,16 @@ static int dKyeff2_Create(kankyo_class* ptr) {
|
|||
|
||||
/* ############################################################################################## */
|
||||
/* 803BC198-803BC1AC -00001 0014+00 1/0 0/0 0/0 .data l_dKyeff2_Method */
|
||||
SECTION_DATA static void* l_dKyeff2_Method[5] = {
|
||||
(void*)dKyeff2_Create__FP12kankyo_class, (void*)dKyeff2_Delete__FP9dKyeff2_c,
|
||||
(void*)dKyeff2_Execute__FP9dKyeff2_c, (void*)dKyeff2_IsDelete__FP9dKyeff2_c,
|
||||
(void*)dKyeff2_Draw__FP9dKyeff2_c,
|
||||
static leafdraw_method_class l_dKyeff2_Method = {
|
||||
(process_method_func)dKyeff2_Create,
|
||||
(process_method_func)dKyeff2_Delete,
|
||||
(process_method_func)dKyeff2_Execute,
|
||||
(process_method_func)dKyeff2_IsDelete,
|
||||
(process_method_func)dKyeff2_Draw,
|
||||
};
|
||||
|
||||
extern "C" extern void* g_fopKy_Method[5 + 1 /* padding */];
|
||||
|
||||
/* 803BC1AC-803BC1D8 -00001 0028+04 0/0 0/0 1/0 .data g_profile_KYEFF2 */
|
||||
SECTION_DATA extern void* g_profile_KYEFF2[10 + 1 /* padding */] = {
|
||||
(void*)0xFFFFFFFD,
|
||||
|
|
|
|||
Loading…
Reference in New Issue