summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakaRikka <takarikka@outlook.com>2023-06-30 21:01:00 -0700
committerTakaRikka <takarikka@outlook.com>2023-06-30 21:01:00 -0700
commit67ddd2b2f9c310f14e43b601d3ea970d548dafc6 (patch)
tree0197242dc51eb1cbe7b0f9e295dfd93d577290ea
parent9365b01809d8709f135209820cd9887c6f1e93c8 (diff)
d_a_obj_crystal OK
-rw-r--r--asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/CheckCreateHeap__FP10fopAc_ac_c.s9
-rw-r--r--asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/CreateHeap__14daObjCrystal_cFv.s49
-rw-r--r--asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/Create__14daObjCrystal_cFv.s85
-rw-r--r--asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/_delete__14daObjCrystal_cFv.s29
-rw-r--r--asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Create__FP14daObjCrystal_c.s9
-rw-r--r--asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Delete__FP14daObjCrystal_c.s9
-rw-r--r--asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Draw__FP14daObjCrystal_c.s9
-rw-r--r--asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Execute__FP14daObjCrystal_c.s9
-rw-r--r--asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/draw__14daObjCrystal_cFv.s37
-rw-r--r--asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/execute__14daObjCrystal_cFv.s10
-rw-r--r--asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/func_80BD6664.s51
-rw-r--r--asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/initBaseMtx__14daObjCrystal_cFv.s23
-rw-r--r--asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/setBaseMtx__14daObjCrystal_cFv.s25
-rw-r--r--include/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal.h19
-rw-r--r--rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal.cpp406
15 files changed, 141 insertions, 638 deletions
diff --git a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/CheckCreateHeap__FP10fopAc_ac_c.s b/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/CheckCreateHeap__FP10fopAc_ac_c.s
deleted file mode 100644
index 63d15acfce..0000000000
--- a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/CheckCreateHeap__FP10fopAc_ac_c.s
+++ /dev/null
@@ -1,9 +0,0 @@
-lbl_80BD6398:
-/* 80BD6398 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80BD639C 7C 08 02 A6 */ mflr r0
-/* 80BD63A0 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80BD63A4 48 00 02 0D */ bl CreateHeap__14daObjCrystal_cFv
-/* 80BD63A8 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80BD63AC 7C 08 03 A6 */ mtlr r0
-/* 80BD63B0 38 21 00 10 */ addi r1, r1, 0x10
-/* 80BD63B4 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/CreateHeap__14daObjCrystal_cFv.s b/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/CreateHeap__14daObjCrystal_cFv.s
deleted file mode 100644
index ea22b227e7..0000000000
--- a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/CreateHeap__14daObjCrystal_cFv.s
+++ /dev/null
@@ -1,49 +0,0 @@
-lbl_80BD65B0:
-/* 80BD65B0 94 21 FF D0 */ stwu r1, -0x30(r1)
-/* 80BD65B4 7C 08 02 A6 */ mflr r0
-/* 80BD65B8 90 01 00 34 */ stw r0, 0x34(r1)
-/* 80BD65BC 39 61 00 30 */ addi r11, r1, 0x30
-/* 80BD65C0 4B 78 BC 09 */ bl _savegpr_24
-/* 80BD65C4 7C 78 1B 78 */ mr r24, r3
-/* 80BD65C8 3C 60 80 BD */ lis r3, lit_3693@ha /* 0x80BD68BC@ha */
-/* 80BD65CC 38 83 68 BC */ addi r4, r3, lit_3693@l /* 0x80BD68BC@l */
-/* 80BD65D0 3B 20 00 00 */ li r25, 0
-/* 80BD65D4 3B E0 00 00 */ li r31, 0
-/* 80BD65D8 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80BD65DC 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 80BD65E0 3F 43 00 02 */ addis r26, r3, 2
-/* 80BD65E4 3C 60 80 BD */ lis r3, l_arcName@ha /* 0x80BD68F0@ha */
-/* 80BD65E8 3B 63 68 F0 */ addi r27, r3, l_arcName@l /* 0x80BD68F0@l */
-/* 80BD65EC 3B 84 00 04 */ addi r28, r4, 4
-/* 80BD65F0 3B A4 00 0C */ addi r29, r4, 0xc
-/* 80BD65F4 3B C4 00 14 */ addi r30, r4, 0x14
-/* 80BD65F8 3B 5A C2 F8 */ addi r26, r26, -15624
-lbl_80BD65FC:
-/* 80BD65FC 80 7B 00 00 */ lwz r3, 0(r27)
-/* 80BD6600 7C 9C F8 2E */ lwzx r4, r28, r31
-/* 80BD6604 7F 45 D3 78 */ mr r5, r26
-/* 80BD6608 38 C0 00 80 */ li r6, 0x80
-/* 80BD660C 4B 46 5C E1 */ bl getRes__14dRes_control_cFPCclP11dRes_info_ci
-/* 80BD6610 7C 9D F8 2E */ lwzx r4, r29, r31
-/* 80BD6614 7C BE F8 2E */ lwzx r5, r30, r31
-/* 80BD6618 4B 43 E6 3D */ bl mDoExt_J3DModel__create__FP12J3DModelDataUlUl
-/* 80BD661C 38 1F 05 70 */ addi r0, r31, 0x570
-/* 80BD6620 7C 78 01 2E */ stwx r3, r24, r0
-/* 80BD6624 7C 18 00 2E */ lwzx r0, r24, r0
-/* 80BD6628 28 00 00 00 */ cmplwi r0, 0
-/* 80BD662C 40 82 00 0C */ bne lbl_80BD6638
-/* 80BD6630 38 60 00 00 */ li r3, 0
-/* 80BD6634 48 00 00 18 */ b lbl_80BD664C
-lbl_80BD6638:
-/* 80BD6638 3B 39 00 01 */ addi r25, r25, 1
-/* 80BD663C 2C 19 00 02 */ cmpwi r25, 2
-/* 80BD6640 3B FF 00 04 */ addi r31, r31, 4
-/* 80BD6644 41 80 FF B8 */ blt lbl_80BD65FC
-/* 80BD6648 38 60 00 01 */ li r3, 1
-lbl_80BD664C:
-/* 80BD664C 39 61 00 30 */ addi r11, r1, 0x30
-/* 80BD6650 4B 78 BB C5 */ bl _restgpr_24
-/* 80BD6654 80 01 00 34 */ lwz r0, 0x34(r1)
-/* 80BD6658 7C 08 03 A6 */ mtlr r0
-/* 80BD665C 38 21 00 30 */ addi r1, r1, 0x30
-/* 80BD6660 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/Create__14daObjCrystal_cFv.s b/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/Create__14daObjCrystal_cFv.s
deleted file mode 100644
index 23d746c98a..0000000000
--- a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/Create__14daObjCrystal_cFv.s
+++ /dev/null
@@ -1,85 +0,0 @@
-lbl_80BD6470:
-/* 80BD6470 94 21 FF D0 */ stwu r1, -0x30(r1)
-/* 80BD6474 7C 08 02 A6 */ mflr r0
-/* 80BD6478 90 01 00 34 */ stw r0, 0x34(r1)
-/* 80BD647C 39 61 00 30 */ addi r11, r1, 0x30
-/* 80BD6480 4B 78 BD 59 */ bl _savegpr_28
-/* 80BD6484 7C 7F 1B 78 */ mr r31, r3
-/* 80BD6488 4B FF FF 31 */ bl initBaseMtx__14daObjCrystal_cFv
-/* 80BD648C 80 7F 05 70 */ lwz r3, 0x570(r31)
-/* 80BD6490 38 03 00 24 */ addi r0, r3, 0x24
-/* 80BD6494 90 1F 05 04 */ stw r0, 0x504(r31)
-/* 80BD6498 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
-/* 80BD649C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
-/* 80BD64A0 80 63 5D 3C */ lwz r3, 0x5d3c(r3)
-/* 80BD64A4 38 80 00 00 */ li r4, 0
-/* 80BD64A8 90 81 00 08 */ stw r4, 8(r1)
-/* 80BD64AC 38 00 FF FF */ li r0, -1
-/* 80BD64B0 90 01 00 0C */ stw r0, 0xc(r1)
-/* 80BD64B4 90 81 00 10 */ stw r4, 0x10(r1)
-/* 80BD64B8 90 81 00 14 */ stw r4, 0x14(r1)
-/* 80BD64BC 90 81 00 18 */ stw r4, 0x18(r1)
-/* 80BD64C0 38 80 00 00 */ li r4, 0
-/* 80BD64C4 3C A0 00 01 */ lis r5, 0x0001 /* 0x00008BED@ha */
-/* 80BD64C8 38 A5 8B ED */ addi r5, r5, 0x8BED /* 0x00008BED@l */
-/* 80BD64CC 38 DF 04 D0 */ addi r6, r31, 0x4d0
-/* 80BD64D0 38 E0 00 00 */ li r7, 0
-/* 80BD64D4 39 1F 04 B4 */ addi r8, r31, 0x4b4
-/* 80BD64D8 39 3F 04 EC */ addi r9, r31, 0x4ec
-/* 80BD64DC 39 40 00 FF */ li r10, 0xff
-/* 80BD64E0 3D 60 80 BD */ lis r11, lit_3693@ha /* 0x80BD68BC@ha */
-/* 80BD64E4 C0 2B 68 BC */ lfs f1, lit_3693@l(r11) /* 0x80BD68BC@l */
-/* 80BD64E8 4B 47 65 A9 */ bl set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf
-/* 80BD64EC 90 7F 05 78 */ stw r3, 0x578(r31)
-/* 80BD64F0 3C 60 00 01 */ lis r3, 0x0001 /* 0x0000FFFF@ha */
-/* 80BD64F4 38 03 FF FF */ addi r0, r3, 0xFFFF /* 0x0000FFFF@l */
-/* 80BD64F8 B0 1F 05 7C */ sth r0, 0x57c(r31)
-/* 80BD64FC 80 7F 05 70 */ lwz r3, 0x570(r31)
-/* 80BD6500 80 63 00 04 */ lwz r3, 4(r3)
-/* 80BD6504 83 A3 00 54 */ lwz r29, 0x54(r3)
-/* 80BD6508 3B 80 00 00 */ li r28, 0
-/* 80BD650C 3C 60 80 BD */ lis r3, d_a_obj_crystal__stringBase0@ha /* 0x80BD68D8@ha */
-/* 80BD6510 3B C3 68 D8 */ addi r30, r3, d_a_obj_crystal__stringBase0@l /* 0x80BD68D8@l */
-/* 80BD6514 48 00 00 28 */ b lbl_80BD653C
-lbl_80BD6518:
-/* 80BD6518 7F A3 EB 78 */ mr r3, r29
-/* 80BD651C 7F 84 E3 78 */ mr r4, r28
-/* 80BD6520 4B 70 85 D9 */ bl getName__10JUTNameTabCFUs
-/* 80BD6524 38 9E 00 09 */ addi r4, r30, 9
-/* 80BD6528 4B 79 24 6D */ bl strcmp
-/* 80BD652C 2C 03 00 00 */ cmpwi r3, 0
-/* 80BD6530 40 82 00 08 */ bne lbl_80BD6538
-/* 80BD6534 B3 9F 05 7C */ sth r28, 0x57c(r31)
-lbl_80BD6538:
-/* 80BD6538 3B 9C 00 01 */ addi r28, r28, 1
-lbl_80BD653C:
-/* 80BD653C 80 7F 05 70 */ lwz r3, 0x570(r31)
-/* 80BD6540 80 83 00 04 */ lwz r4, 4(r3)
-/* 80BD6544 A0 84 00 2C */ lhz r4, 0x2c(r4)
-/* 80BD6548 57 80 04 3E */ clrlwi r0, r28, 0x10
-/* 80BD654C 7C 00 20 40 */ cmplw r0, r4
-/* 80BD6550 41 80 FF C8 */ blt lbl_80BD6518
-/* 80BD6554 81 83 00 00 */ lwz r12, 0(r3)
-/* 80BD6558 81 8C 00 10 */ lwz r12, 0x10(r12)
-/* 80BD655C 7D 89 03 A6 */ mtctr r12
-/* 80BD6560 4E 80 04 21 */ bctrl
-/* 80BD6564 80 BF 05 78 */ lwz r5, 0x578(r31)
-/* 80BD6568 28 05 00 00 */ cmplwi r5, 0
-/* 80BD656C 41 82 00 28 */ beq lbl_80BD6594
-/* 80BD6570 80 7F 05 70 */ lwz r3, 0x570(r31)
-/* 80BD6574 80 63 00 84 */ lwz r3, 0x84(r3)
-/* 80BD6578 80 63 00 0C */ lwz r3, 0xc(r3)
-/* 80BD657C A0 1F 05 7C */ lhz r0, 0x57c(r31)
-/* 80BD6580 1C 00 00 30 */ mulli r0, r0, 0x30
-/* 80BD6584 7C 63 02 14 */ add r3, r3, r0
-/* 80BD6588 38 85 00 68 */ addi r4, r5, 0x68
-/* 80BD658C 38 A5 00 A4 */ addi r5, r5, 0xa4
-/* 80BD6590 4B 6A A2 51 */ bl func_802807E0
-lbl_80BD6594:
-/* 80BD6594 38 60 00 01 */ li r3, 1
-/* 80BD6598 39 61 00 30 */ addi r11, r1, 0x30
-/* 80BD659C 4B 78 BC 89 */ bl _restgpr_28
-/* 80BD65A0 80 01 00 34 */ lwz r0, 0x34(r1)
-/* 80BD65A4 7C 08 03 A6 */ mtlr r0
-/* 80BD65A8 38 21 00 30 */ addi r1, r1, 0x30
-/* 80BD65AC 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/_delete__14daObjCrystal_cFv.s b/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/_delete__14daObjCrystal_cFv.s
deleted file mode 100644
index 1b88d936b9..0000000000
--- a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/_delete__14daObjCrystal_cFv.s
+++ /dev/null
@@ -1,29 +0,0 @@
-lbl_80BD67C8:
-/* 80BD67C8 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80BD67CC 7C 08 02 A6 */ mflr r0
-/* 80BD67D0 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80BD67D4 80 83 05 78 */ lwz r4, 0x578(r3)
-/* 80BD67D8 28 04 00 00 */ cmplwi r4, 0
-/* 80BD67DC 41 82 00 30 */ beq lbl_80BD680C
-/* 80BD67E0 80 04 00 F4 */ lwz r0, 0xf4(r4)
-/* 80BD67E4 60 00 00 01 */ ori r0, r0, 1
-/* 80BD67E8 90 04 00 F4 */ stw r0, 0xf4(r4)
-/* 80BD67EC 38 00 00 01 */ li r0, 1
-/* 80BD67F0 90 04 00 24 */ stw r0, 0x24(r4)
-/* 80BD67F4 80 83 05 78 */ lwz r4, 0x578(r3)
-/* 80BD67F8 80 04 00 F4 */ lwz r0, 0xf4(r4)
-/* 80BD67FC 54 00 06 B0 */ rlwinm r0, r0, 0, 0x1a, 0x18
-/* 80BD6800 90 04 00 F4 */ stw r0, 0xf4(r4)
-/* 80BD6804 38 00 00 00 */ li r0, 0
-/* 80BD6808 90 03 05 78 */ stw r0, 0x578(r3)
-lbl_80BD680C:
-/* 80BD680C 38 63 05 68 */ addi r3, r3, 0x568
-/* 80BD6810 3C 80 80 BD */ lis r4, l_arcName@ha /* 0x80BD68F0@ha */
-/* 80BD6814 38 84 68 F0 */ addi r4, r4, l_arcName@l /* 0x80BD68F0@l */
-/* 80BD6818 80 84 00 00 */ lwz r4, 0(r4)
-/* 80BD681C 4B 45 67 ED */ bl dComIfG_resDelete__FP30request_of_phase_process_classPCc
-/* 80BD6820 38 60 00 01 */ li r3, 1
-/* 80BD6824 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80BD6828 7C 08 03 A6 */ mtlr r0
-/* 80BD682C 38 21 00 10 */ addi r1, r1, 0x10
-/* 80BD6830 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Create__FP14daObjCrystal_c.s b/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Create__FP14daObjCrystal_c.s
deleted file mode 100644
index e39e13a358..0000000000
--- a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Create__FP14daObjCrystal_c.s
+++ /dev/null
@@ -1,9 +0,0 @@
-lbl_80BD6894:
-/* 80BD6894 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80BD6898 7C 08 02 A6 */ mflr r0
-/* 80BD689C 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80BD68A0 4B FF FD C5 */ bl create__14daObjCrystal_cFv
-/* 80BD68A4 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80BD68A8 7C 08 03 A6 */ mtlr r0
-/* 80BD68AC 38 21 00 10 */ addi r1, r1, 0x10
-/* 80BD68B0 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Delete__FP14daObjCrystal_c.s b/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Delete__FP14daObjCrystal_c.s
deleted file mode 100644
index 77478d6dd8..0000000000
--- a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Delete__FP14daObjCrystal_c.s
+++ /dev/null
@@ -1,9 +0,0 @@
-lbl_80BD6874:
-/* 80BD6874 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80BD6878 7C 08 02 A6 */ mflr r0
-/* 80BD687C 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80BD6880 4B FF FF 49 */ bl _delete__14daObjCrystal_cFv
-/* 80BD6884 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80BD6888 7C 08 03 A6 */ mtlr r0
-/* 80BD688C 38 21 00 10 */ addi r1, r1, 0x10
-/* 80BD6890 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Draw__FP14daObjCrystal_c.s b/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Draw__FP14daObjCrystal_c.s
deleted file mode 100644
index 1038aa6dc8..0000000000
--- a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Draw__FP14daObjCrystal_c.s
+++ /dev/null
@@ -1,9 +0,0 @@
-lbl_80BD6834:
-/* 80BD6834 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80BD6838 7C 08 02 A6 */ mflr r0
-/* 80BD683C 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80BD6840 4B FF FE FD */ bl draw__14daObjCrystal_cFv
-/* 80BD6844 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80BD6848 7C 08 03 A6 */ mtlr r0
-/* 80BD684C 38 21 00 10 */ addi r1, r1, 0x10
-/* 80BD6850 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Execute__FP14daObjCrystal_c.s b/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Execute__FP14daObjCrystal_c.s
deleted file mode 100644
index adeaf027fc..0000000000
--- a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Execute__FP14daObjCrystal_c.s
+++ /dev/null
@@ -1,9 +0,0 @@
-lbl_80BD6854:
-/* 80BD6854 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80BD6858 7C 08 02 A6 */ mflr r0
-/* 80BD685C 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80BD6860 4B FF FE B9 */ bl execute__14daObjCrystal_cFv
-/* 80BD6864 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80BD6868 7C 08 03 A6 */ mtlr r0
-/* 80BD686C 38 21 00 10 */ addi r1, r1, 0x10
-/* 80BD6870 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/draw__14daObjCrystal_cFv.s b/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/draw__14daObjCrystal_cFv.s
deleted file mode 100644
index 673b985e4d..0000000000
--- a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/draw__14daObjCrystal_cFv.s
+++ /dev/null
@@ -1,37 +0,0 @@
-lbl_80BD673C:
-/* 80BD673C 94 21 FF E0 */ stwu r1, -0x20(r1)
-/* 80BD6740 7C 08 02 A6 */ mflr r0
-/* 80BD6744 90 01 00 24 */ stw r0, 0x24(r1)
-/* 80BD6748 39 61 00 20 */ addi r11, r1, 0x20
-/* 80BD674C 4B 78 BA 89 */ bl _savegpr_27
-/* 80BD6750 7C 7B 1B 78 */ mr r27, r3
-/* 80BD6754 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */
-/* 80BD6758 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */
-/* 80BD675C 38 80 00 10 */ li r4, 0x10
-/* 80BD6760 38 BB 04 D0 */ addi r5, r27, 0x4d0
-/* 80BD6764 38 DB 01 0C */ addi r6, r27, 0x10c
-/* 80BD6768 4B 5C D0 5D */ bl settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c
-/* 80BD676C 3B 80 00 00 */ li r28, 0
-/* 80BD6770 3B E0 00 00 */ li r31, 0
-/* 80BD6774 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */
-/* 80BD6778 3B C3 CA 54 */ addi r30, r3, g_env_light@l /* 0x8042CA54@l */
-lbl_80BD677C:
-/* 80BD677C 7F C3 F3 78 */ mr r3, r30
-/* 80BD6780 3B BF 05 70 */ addi r29, r31, 0x570
-/* 80BD6784 7C 9B E8 2E */ lwzx r4, r27, r29
-/* 80BD6788 80 84 00 04 */ lwz r4, 4(r4)
-/* 80BD678C 38 BB 01 0C */ addi r5, r27, 0x10c
-/* 80BD6790 4B 5C E6 11 */ bl setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c
-/* 80BD6794 7C 7B E8 2E */ lwzx r3, r27, r29
-/* 80BD6798 4B 43 75 2D */ bl mDoExt_modelUpdateDL__FP8J3DModel
-/* 80BD679C 3B 9C 00 01 */ addi r28, r28, 1
-/* 80BD67A0 2C 1C 00 02 */ cmpwi r28, 2
-/* 80BD67A4 3B FF 00 04 */ addi r31, r31, 4
-/* 80BD67A8 41 80 FF D4 */ blt lbl_80BD677C
-/* 80BD67AC 38 60 00 01 */ li r3, 1
-/* 80BD67B0 39 61 00 20 */ addi r11, r1, 0x20
-/* 80BD67B4 4B 78 BA 6D */ bl _restgpr_27
-/* 80BD67B8 80 01 00 24 */ lwz r0, 0x24(r1)
-/* 80BD67BC 7C 08 03 A6 */ mtlr r0
-/* 80BD67C0 38 21 00 20 */ addi r1, r1, 0x20
-/* 80BD67C4 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/execute__14daObjCrystal_cFv.s b/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/execute__14daObjCrystal_cFv.s
deleted file mode 100644
index b9bbc67b81..0000000000
--- a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/execute__14daObjCrystal_cFv.s
+++ /dev/null
@@ -1,10 +0,0 @@
-lbl_80BD6718:
-/* 80BD6718 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80BD671C 7C 08 02 A6 */ mflr r0
-/* 80BD6720 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80BD6724 4B FF FC ED */ bl setBaseMtx__14daObjCrystal_cFv
-/* 80BD6728 38 60 00 01 */ li r3, 1
-/* 80BD672C 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80BD6730 7C 08 03 A6 */ mtlr r0
-/* 80BD6734 38 21 00 10 */ addi r1, r1, 0x10
-/* 80BD6738 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/func_80BD6664.s b/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/func_80BD6664.s
deleted file mode 100644
index 7c7669c1f0..0000000000
--- a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/func_80BD6664.s
+++ /dev/null
@@ -1,51 +0,0 @@
-lbl_80BD6664:
-/* 80BD6664 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80BD6668 7C 08 02 A6 */ mflr r0
-/* 80BD666C 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80BD6670 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 80BD6674 93 C1 00 08 */ stw r30, 8(r1)
-/* 80BD6678 7C 7E 1B 78 */ mr r30, r3
-/* 80BD667C 80 03 04 A0 */ lwz r0, 0x4a0(r3)
-/* 80BD6680 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
-/* 80BD6684 40 82 00 1C */ bne lbl_80BD66A0
-/* 80BD6688 28 1E 00 00 */ cmplwi r30, 0
-/* 80BD668C 41 82 00 08 */ beq lbl_80BD6694
-/* 80BD6690 4B 44 24 D5 */ bl __ct__10fopAc_ac_cFv
-lbl_80BD6694:
-/* 80BD6694 80 1E 04 A0 */ lwz r0, 0x4a0(r30)
-/* 80BD6698 60 00 00 08 */ ori r0, r0, 8
-/* 80BD669C 90 1E 04 A0 */ stw r0, 0x4a0(r30)
-lbl_80BD66A0:
-/* 80BD66A0 38 7E 05 68 */ addi r3, r30, 0x568
-/* 80BD66A4 3C 80 80 BD */ lis r4, l_arcName@ha /* 0x80BD68F0@ha */
-/* 80BD66A8 38 84 68 F0 */ addi r4, r4, l_arcName@l /* 0x80BD68F0@l */
-/* 80BD66AC 80 84 00 00 */ lwz r4, 0(r4)
-/* 80BD66B0 4B 45 68 0D */ bl dComIfG_resLoad__FP30request_of_phase_process_classPCc
-/* 80BD66B4 7C 7F 1B 78 */ mr r31, r3
-/* 80BD66B8 2C 1F 00 04 */ cmpwi r31, 4
-/* 80BD66BC 40 82 00 40 */ bne lbl_80BD66FC
-/* 80BD66C0 7F C3 F3 78 */ mr r3, r30
-/* 80BD66C4 3C 80 80 BD */ lis r4, CheckCreateHeap__FP10fopAc_ac_c@ha /* 0x80BD6398@ha */
-/* 80BD66C8 38 84 63 98 */ addi r4, r4, CheckCreateHeap__FP10fopAc_ac_c@l /* 0x80BD6398@l */
-/* 80BD66CC 38 A0 40 00 */ li r5, 0x4000
-/* 80BD66D0 4B 44 3D E1 */ bl fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl
-/* 80BD66D4 54 60 06 3F */ clrlwi. r0, r3, 0x18
-/* 80BD66D8 40 82 00 0C */ bne lbl_80BD66E4
-/* 80BD66DC 38 60 00 05 */ li r3, 5
-/* 80BD66E0 48 00 00 20 */ b lbl_80BD6700
-lbl_80BD66E4:
-/* 80BD66E4 7F C3 F3 78 */ mr r3, r30
-/* 80BD66E8 4B FF FD 89 */ bl Create__14daObjCrystal_cFv
-/* 80BD66EC 2C 03 00 00 */ cmpwi r3, 0
-/* 80BD66F0 40 82 00 0C */ bne lbl_80BD66FC
-/* 80BD66F4 38 60 00 05 */ li r3, 5
-/* 80BD66F8 48 00 00 08 */ b lbl_80BD6700
-lbl_80BD66FC:
-/* 80BD66FC 7F E3 FB 78 */ mr r3, r31
-lbl_80BD6700:
-/* 80BD6700 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 80BD6704 83 C1 00 08 */ lwz r30, 8(r1)
-/* 80BD6708 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80BD670C 7C 08 03 A6 */ mtlr r0
-/* 80BD6710 38 21 00 10 */ addi r1, r1, 0x10
-/* 80BD6714 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/initBaseMtx__14daObjCrystal_cFv.s b/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/initBaseMtx__14daObjCrystal_cFv.s
deleted file mode 100644
index 7f5fb8bdf8..0000000000
--- a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/initBaseMtx__14daObjCrystal_cFv.s
+++ /dev/null
@@ -1,23 +0,0 @@
-lbl_80BD63B8:
-/* 80BD63B8 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80BD63BC 7C 08 02 A6 */ mflr r0
-/* 80BD63C0 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80BD63C4 80 83 05 70 */ lwz r4, 0x570(r3)
-/* 80BD63C8 C0 03 04 EC */ lfs f0, 0x4ec(r3)
-/* 80BD63CC D0 04 00 18 */ stfs f0, 0x18(r4)
-/* 80BD63D0 C0 03 04 F0 */ lfs f0, 0x4f0(r3)
-/* 80BD63D4 D0 04 00 1C */ stfs f0, 0x1c(r4)
-/* 80BD63D8 C0 03 04 F4 */ lfs f0, 0x4f4(r3)
-/* 80BD63DC D0 04 00 20 */ stfs f0, 0x20(r4)
-/* 80BD63E0 80 83 05 74 */ lwz r4, 0x574(r3)
-/* 80BD63E4 C0 03 04 EC */ lfs f0, 0x4ec(r3)
-/* 80BD63E8 D0 04 00 18 */ stfs f0, 0x18(r4)
-/* 80BD63EC C0 03 04 F0 */ lfs f0, 0x4f0(r3)
-/* 80BD63F0 D0 04 00 1C */ stfs f0, 0x1c(r4)
-/* 80BD63F4 C0 03 04 F4 */ lfs f0, 0x4f4(r3)
-/* 80BD63F8 D0 04 00 20 */ stfs f0, 0x20(r4)
-/* 80BD63FC 48 00 00 15 */ bl setBaseMtx__14daObjCrystal_cFv
-/* 80BD6400 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80BD6404 7C 08 03 A6 */ mtlr r0
-/* 80BD6408 38 21 00 10 */ addi r1, r1, 0x10
-/* 80BD640C 4E 80 00 20 */ blr
diff --git a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/setBaseMtx__14daObjCrystal_cFv.s b/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/setBaseMtx__14daObjCrystal_cFv.s
deleted file mode 100644
index 1146dae633..0000000000
--- a/asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/setBaseMtx__14daObjCrystal_cFv.s
+++ /dev/null
@@ -1,25 +0,0 @@
-lbl_80BD6410:
-/* 80BD6410 94 21 FF F0 */ stwu r1, -0x10(r1)
-/* 80BD6414 7C 08 02 A6 */ mflr r0
-/* 80BD6418 90 01 00 14 */ stw r0, 0x14(r1)
-/* 80BD641C 93 E1 00 0C */ stw r31, 0xc(r1)
-/* 80BD6420 7C 7F 1B 78 */ mr r31, r3
-/* 80BD6424 38 7F 04 D0 */ addi r3, r31, 0x4d0
-/* 80BD6428 4B 43 69 3D */ bl transS__14mDoMtx_stack_cFRC4cXyz
-/* 80BD642C 38 7F 04 E4 */ addi r3, r31, 0x4e4
-/* 80BD6430 4B 43 6B 15 */ bl ZXYrotM__14mDoMtx_stack_cFRC5csXyz
-/* 80BD6434 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
-/* 80BD6438 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
-/* 80BD643C 80 9F 05 70 */ lwz r4, 0x570(r31)
-/* 80BD6440 38 84 00 24 */ addi r4, r4, 0x24
-/* 80BD6444 4B 77 00 6D */ bl PSMTXCopy
-/* 80BD6448 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
-/* 80BD644C 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
-/* 80BD6450 80 9F 05 74 */ lwz r4, 0x574(r31)
-/* 80BD6454 38 84 00 24 */ addi r4, r4, 0x24
-/* 80BD6458 4B 77 00 59 */ bl PSMTXCopy
-/* 80BD645C 83 E1 00 0C */ lwz r31, 0xc(r1)
-/* 80BD6460 80 01 00 14 */ lwz r0, 0x14(r1)
-/* 80BD6464 7C 08 03 A6 */ mtlr r0
-/* 80BD6468 38 21 00 10 */ addi r1, r1, 0x10
-/* 80BD646C 4E 80 00 20 */ blr
diff --git a/include/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal.h b/include/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal.h
index cef101df22..ec42e9c70a 100644
--- a/include/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal.h
+++ b/include/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal.h
@@ -1,6 +1,23 @@
#ifndef D_A_OBJ_CRYSTAL_H
#define D_A_OBJ_CRYSTAL_H
-#include "dolphin/types.h"
+#include "f_op/f_op_actor_mng.h"
+
+class daObjCrystal_c : public fopAc_ac_c {
+public:
+ /* 80BD63B8 */ void initBaseMtx();
+ /* 80BD6410 */ void setBaseMtx();
+ /* 80BD6470 */ int Create();
+ /* 80BD65B0 */ int CreateHeap();
+ /* 80BD6664 */ int create();
+ /* 80BD6718 */ int execute();
+ /* 80BD673C */ int draw();
+ /* 80BD67C8 */ int _delete();
+
+ /* 0x568 */ request_of_phase_process_class mPhase;
+ /* 0x570 */ J3DModel* mpModel[2];
+ /* 0x578 */ JPABaseEmitter* mpEmitter;
+ /* 0x57C */ u16 mJointID;
+};
#endif /* D_A_OBJ_CRYSTAL_H */
diff --git a/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal.cpp b/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal.cpp
index b8354cabaa..dffc11f020 100644
--- a/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal.cpp
+++ b/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal.cpp
@@ -1,333 +1,173 @@
-//
-// Generated By: dol2asm
-// Translation Unit: d_a_obj_crystal
-//
+/**
+ * d_a_obj_crystal.cpp
+ *
+ */
#include "rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal.h"
-#include "dol2asm.h"
-#include "dolphin/types.h"
-
-//
-// Types:
-//
-
-struct request_of_phase_process_class {};
-
-struct csXyz {};
-
-struct cXyz {};
-
-struct mDoMtx_stack_c {
- /* 8000CD64 */ void transS(cXyz const&);
- /* 8000CF44 */ void ZXYrotM(csXyz const&);
-
- static u8 now[48];
-};
-
-struct fopAc_ac_c {
- /* 80018B64 */ fopAc_ac_c();
-};
-
-struct daObjCrystal_c {
- /* 80BD63B8 */ void initBaseMtx();
- /* 80BD6410 */ void setBaseMtx();
- /* 80BD6470 */ void Create();
- /* 80BD65B0 */ void CreateHeap();
- /* 80BD6664 */ void create();
- /* 80BD6718 */ void execute();
- /* 80BD673C */ void draw();
- /* 80BD67C8 */ void _delete();
-};
-
-struct dKy_tevstr_c {};
-
-struct J3DModelData {};
-
-struct dScnKy_env_light_c {
- /* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*);
- /* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*);
-};
-
-struct dRes_info_c {};
-
-struct dRes_control_c {
- /* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int);
-};
-
-struct dPa_levelEcallBack {};
-
-struct _GXColor {};
-
-struct dPa_control_c {
- /* 8004CA90 */ void set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*,
- u8, dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*,
- cXyz const*, f32);
-};
-
-struct JUTNameTab {
- /* 802DEAF8 */ void getName(u16) const;
-};
-
-struct JGeometry {
- template <typename A1>
- struct TVec3 {};
- /* TVec3<f32> */
- struct TVec3__template0 {};
-};
-
-struct J3DModel {};
-
-//
-// Forward References:
-//
-
-extern "C" static void CheckCreateHeap__FP10fopAc_ac_c();
-extern "C" void initBaseMtx__14daObjCrystal_cFv();
-extern "C" void setBaseMtx__14daObjCrystal_cFv();
-extern "C" void Create__14daObjCrystal_cFv();
-extern "C" void CreateHeap__14daObjCrystal_cFv();
-extern "C" void create__14daObjCrystal_cFv();
-extern "C" void execute__14daObjCrystal_cFv();
-extern "C" void draw__14daObjCrystal_cFv();
-extern "C" void _delete__14daObjCrystal_cFv();
-extern "C" static void daObjCrystal_Draw__FP14daObjCrystal_c();
-extern "C" static void daObjCrystal_Execute__FP14daObjCrystal_c();
-extern "C" static void daObjCrystal_Delete__FP14daObjCrystal_c();
-extern "C" static void daObjCrystal_Create__FP14daObjCrystal_c();
-extern "C" extern char const* const d_a_obj_crystal__stringBase0;
-extern "C" extern void* g_profile_Obj_Crystal[12];
-
-//
-// External References:
-//
-
-extern "C" void transS__14mDoMtx_stack_cFRC4cXyz();
-extern "C" void ZXYrotM__14mDoMtx_stack_cFRC5csXyz();
-extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
-extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
-extern "C" void __ct__10fopAc_ac_cFv();
-extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
-extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
-extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
-extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
-extern "C" void
-set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
-extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
-extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
-extern "C" void func_802807E0();
-extern "C" void getName__10JUTNameTabCFUs();
-extern "C" void PSMTXCopy();
-extern "C" void _savegpr_24();
-extern "C" void _savegpr_27();
-extern "C" void _savegpr_28();
-extern "C" void _restgpr_24();
-extern "C" void _restgpr_27();
-extern "C" void _restgpr_28();
-extern "C" void strcmp();
-extern "C" extern void* g_fopAc_Method[8];
-extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
-extern "C" u8 now__14mDoMtx_stack_c[48];
-extern "C" extern u8 g_dComIfG_gameInfo[122384];
-extern "C" extern u8 g_env_light[4880];
-
-//
-// Declarations:
-//
+#include "JSystem/JKernel/JKRHeap.h"
+#include "d/com/d_com_inf_game.h"
+#include "d/d_procname.h"
/* 80BD6398-80BD63B8 000078 0020+00 1/1 0/0 0/0 .text CheckCreateHeap__FP10fopAc_ac_c */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void CheckCreateHeap(fopAc_ac_c* param_0) {
- nofralloc
-#include "asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/CheckCreateHeap__FP10fopAc_ac_c.s"
+static int CheckCreateHeap(fopAc_ac_c* i_this) {
+ return static_cast<daObjCrystal_c*>(i_this)->CreateHeap();
}
-#pragma pop
/* 80BD63B8-80BD6410 000098 0058+00 1/1 0/0 0/0 .text initBaseMtx__14daObjCrystal_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daObjCrystal_c::initBaseMtx() {
- nofralloc
-#include "asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/initBaseMtx__14daObjCrystal_cFv.s"
+void daObjCrystal_c::initBaseMtx() {
+ mpModel[0]->setBaseScale(mScale);
+ mpModel[1]->setBaseScale(mScale);
+ setBaseMtx();
}
-#pragma pop
/* 80BD6410-80BD6470 0000F0 0060+00 2/2 0/0 0/0 .text setBaseMtx__14daObjCrystal_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daObjCrystal_c::setBaseMtx() {
- nofralloc
-#include "asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/setBaseMtx__14daObjCrystal_cFv.s"
-}
-#pragma pop
+void daObjCrystal_c::setBaseMtx() {
+ mDoMtx_stack_c::transS(current.pos);
+ mDoMtx_stack_c::ZXYrotM(shape_angle);
-/* ############################################################################################## */
-/* 80BD68BC-80BD68C0 000000 0004+00 2/2 0/0 0/0 .rodata @3693 */
-SECTION_RODATA static f32 const lit_3693 = 1.0f;
-COMPILER_STRIP_GATE(0x80BD68BC, &lit_3693);
+ mpModel[0]->i_setBaseTRMtx(mDoMtx_stack_c::get());
+ mpModel[1]->i_setBaseTRMtx(mDoMtx_stack_c::get());
+}
-/* 80BD68D8-80BD68D8 00001C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
-#pragma push
-#pragma force_active on
-SECTION_DEAD static char const* const stringBase_80BD68D8 = "H_Suisho";
-SECTION_DEAD static char const* const stringBase_80BD68E1 = "polySurface1";
-#pragma pop
+/* 80BD68F0-80BD68F4 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
+static char* l_arcName = "H_Suisho";
/* 80BD6470-80BD65B0 000150 0140+00 1/1 0/0 0/0 .text Create__14daObjCrystal_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daObjCrystal_c::Create() {
- nofralloc
-#include "asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/Create__14daObjCrystal_cFv.s"
-}
-#pragma pop
+int daObjCrystal_c::Create() {
+ initBaseMtx();
+ fopAcM_SetMtx(this, mpModel[0]->getBaseTRMtx());
-/* ############################################################################################## */
-/* 80BD68C0-80BD68C8 000004 0008+00 0/1 0/0 0/0 .rodata l_bmd$3697 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const l_bmd[8] = {
- 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x07,
-};
-COMPILER_STRIP_GATE(0x80BD68C0, &l_bmd);
-#pragma pop
-
-/* 80BD68C8-80BD68D0 00000C 0008+00 0/1 0/0 0/0 .rodata l_diff_flag$3698 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const l_diff_flag[8] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00,
-};
-COMPILER_STRIP_GATE(0x80BD68C8, &l_diff_flag);
-#pragma pop
-
-/* 80BD68D0-80BD68D8 000014 0008+00 0/1 0/0 0/0 .rodata l_flag$3699 */
-#pragma push
-#pragma force_active on
-SECTION_RODATA static u8 const l_flag[8] = {
- 0x19, 0x00, 0x00, 0x84, 0x11, 0x00, 0x00, 0x84,
-};
-COMPILER_STRIP_GATE(0x80BD68D0, &l_flag);
-#pragma pop
+ mpEmitter = dComIfGp_particle_set(0x8BED, &current.pos, &orig.angle, &mScale, 255, NULL, -1,
+ NULL, NULL, NULL);
+ mJointID = 0xFFFF;
-/* 80BD68F0-80BD68F4 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
-SECTION_DATA static void* l_arcName = (void*)&d_a_obj_crystal__stringBase0;
+ JUTNameTab* joint_name = mpModel[0]->getModelData()->getJointTree().getJointName();
+ for (u16 i = 0; i < mpModel[0]->getModelData()->getJointNum(); i++) {
+ if (strcmp(joint_name->getName(i), "polySurface1") == 0) {
+ mJointID = i;
+ }
+ }
+
+ mpModel[0]->calc();
+
+ if (mpEmitter != NULL) {
+ mpEmitter->setGlobalRTMatrix(mpModel[0]->i_getAnmMtx(mJointID));
+ }
+
+ return 1;
+}
/* 80BD65B0-80BD6664 000290 00B4+00 1/1 0/0 0/0 .text CreateHeap__14daObjCrystal_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daObjCrystal_c::CreateHeap() {
- nofralloc
-#include "asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/CreateHeap__14daObjCrystal_cFv.s"
+int daObjCrystal_c::CreateHeap() {
+ static int const l_bmd[] = {4, 7};
+ static u32 const l_diff_flag[] = {0, 0x80000};
+ static u32 const l_flag[] = {0x19000084, 0x11000084};
+
+ for (int i = 0; i < 2; i++) {
+ J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, l_bmd[i]);
+
+ mpModel[i] = mDoExt_J3DModel__create(modelData, l_diff_flag[i], l_flag[i]);
+ if (mpModel[i] == NULL) {
+ return 0;
+ }
+ }
+
+ return 1;
}
-#pragma pop
/* 80BD6664-80BD6718 000344 00B4+00 1/1 0/0 0/0 .text create__14daObjCrystal_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daObjCrystal_c::create() {
- nofralloc
-#include "asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/func_80BD6664.s"
+int daObjCrystal_c::create() {
+ if (!fopAcM_CheckCondition(this, 8)) {
+ new (this) daObjCrystal_c();
+ fopAcM_OnCondition(this, 8);
+ }
+
+ int phase = dComIfG_resLoad(&mPhase, l_arcName);
+ if (phase == cPhs_COMPLEATE_e) {
+ if (!fopAcM_entrySolidHeap(this, CheckCreateHeap, 0x4000)) {
+ return cPhs_ERROR_e;
+ }
+
+ if (!Create()) {
+ return cPhs_ERROR_e;
+ }
+ }
+
+ return phase;
}
-#pragma pop
/* 80BD6718-80BD673C 0003F8 0024+00 1/1 0/0 0/0 .text execute__14daObjCrystal_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daObjCrystal_c::execute() {
- nofralloc
-#include "asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/execute__14daObjCrystal_cFv.s"
+int daObjCrystal_c::execute() {
+ setBaseMtx();
+ return 1;
}
-#pragma pop
/* 80BD673C-80BD67C8 00041C 008C+00 1/1 0/0 0/0 .text draw__14daObjCrystal_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daObjCrystal_c::draw() {
- nofralloc
-#include "asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/draw__14daObjCrystal_cFv.s"
+int daObjCrystal_c::draw() {
+ g_env_light.settingTevStruct(0x10, &current.pos, &mTevStr);
+
+ for (int i = 0; i < 2; i++) {
+ g_env_light.setLightTevColorType_MAJI(mpModel[i], &mTevStr);
+ mDoExt_modelUpdateDL(mpModel[i]);
+ }
+
+ return 1;
}
-#pragma pop
/* 80BD67C8-80BD6834 0004A8 006C+00 1/1 0/0 0/0 .text _delete__14daObjCrystal_cFv */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-asm void daObjCrystal_c::_delete() {
- nofralloc
-#include "asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/_delete__14daObjCrystal_cFv.s"
+int daObjCrystal_c::_delete() {
+ if (mpEmitter != NULL) {
+ mpEmitter->becomeInvalidEmitter();
+ mpEmitter->quitImmortalEmitter();
+ mpEmitter = NULL;
+ }
+
+ dComIfG_resDelete(&mPhase, l_arcName);
+ return 1;
}
-#pragma pop
/* 80BD6834-80BD6854 000514 0020+00 1/0 0/0 0/0 .text daObjCrystal_Draw__FP14daObjCrystal_c */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void daObjCrystal_Draw(daObjCrystal_c* param_0) {
- nofralloc
-#include "asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Draw__FP14daObjCrystal_c.s"
+static int daObjCrystal_Draw(daObjCrystal_c* i_this) {
+ return i_this->draw();
}
-#pragma pop
/* 80BD6854-80BD6874 000534 0020+00 1/0 0/0 0/0 .text daObjCrystal_Execute__FP14daObjCrystal_c */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void daObjCrystal_Execute(daObjCrystal_c* param_0) {
- nofralloc
-#include "asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Execute__FP14daObjCrystal_c.s"
+static int daObjCrystal_Execute(daObjCrystal_c* i_this) {
+ return i_this->execute();
}
-#pragma pop
/* 80BD6874-80BD6894 000554 0020+00 1/0 0/0 0/0 .text daObjCrystal_Delete__FP14daObjCrystal_c */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void daObjCrystal_Delete(daObjCrystal_c* param_0) {
- nofralloc
-#include "asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Delete__FP14daObjCrystal_c.s"
+static int daObjCrystal_Delete(daObjCrystal_c* i_this) {
+ return i_this->_delete();
}
-#pragma pop
/* 80BD6894-80BD68B4 000574 0020+00 1/0 0/0 0/0 .text daObjCrystal_Create__FP14daObjCrystal_c */
-#pragma push
-#pragma optimization_level 0
-#pragma optimizewithasm off
-static asm void daObjCrystal_Create(daObjCrystal_c* param_0) {
- nofralloc
-#include "asm/rel/d/a/obj/d_a_obj_crystal/d_a_obj_crystal/daObjCrystal_Create__FP14daObjCrystal_c.s"
+static int daObjCrystal_Create(daObjCrystal_c* i_this) {
+ return i_this->create();
}
-#pragma pop
/* ############################################################################################## */
/* 80BD68F4-80BD6914 -00001 0020+00 1/0 0/0 0/0 .data l_daObjCrystal_Method */
-SECTION_DATA static void* l_daObjCrystal_Method[8] = {
- (void*)daObjCrystal_Create__FP14daObjCrystal_c,
- (void*)daObjCrystal_Delete__FP14daObjCrystal_c,
- (void*)daObjCrystal_Execute__FP14daObjCrystal_c,
- (void*)NULL,
- (void*)daObjCrystal_Draw__FP14daObjCrystal_c,
- (void*)NULL,
- (void*)NULL,
- (void*)NULL,
+static actor_method_class l_daObjCrystal_Method = {
+ (process_method_func)daObjCrystal_Create, (process_method_func)daObjCrystal_Delete,
+ (process_method_func)daObjCrystal_Execute, (process_method_func)NULL,
+ (process_method_func)daObjCrystal_Draw,
};
/* 80BD6914-80BD6944 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Obj_Crystal */
-SECTION_DATA extern void* g_profile_Obj_Crystal[12] = {
- (void*)0xFFFFFFFD, (void*)0x0007FFFD,
- (void*)0x01A40000, (void*)&g_fpcLf_Method,
- (void*)0x00000580, (void*)NULL,
- (void*)NULL, (void*)&g_fopAc_Method,
- (void*)0x02430000, (void*)&l_daObjCrystal_Method,
- (void*)0x00040000, (void*)0x000E0000,
+extern actor_process_profile_definition g_profile_Obj_Crystal = {
+ -3,
+ 7,
+ -3,
+ PROC_Obj_Crystal,
+ &g_fpcLf_Method.mBase,
+ sizeof(daObjCrystal_c),
+ 0,
+ 0,
+ &g_fopAc_Method.base,
+ 579,
+ &l_daObjCrystal_Method,
+ 0x40000,
+ 0,
+ 14,
};
-
-/* 80BD68D8-80BD68D8 00001C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */