diff --git a/asm/SComponent/c/c_counter.s b/asm/SComponent/c/c_counter.s deleted file mode 100644 index 527c26c5bd..0000000000 --- a/asm/SComponent/c/c_counter.s +++ /dev/null @@ -1,28 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 80265e1c - - -.global cCt_Counter -cCt_Counter: -/* 80265E1C 00262D5C 2C 03 00 01 */ cmpwi r3, 1 -/* 80265E20 00262D60 40 82 00 18 */ bne lbl_80265E38 -/* 80265E24 00262D64 38 00 00 00 */ li r0, 0 -/* 80265E28 00262D68 3C 60 80 43 */ lis r3, lbl_80430CD8@ha -/* 80265E2C 00262D6C 38 63 0C D8 */ addi r3, r3, lbl_80430CD8@l -/* 80265E30 00262D70 90 03 00 04 */ stw r0, 4(r3) -/* 80265E34 00262D74 48 00 00 18 */ b lbl_80265E4C -lbl_80265E38: -/* 80265E38 00262D78 3C 60 80 43 */ lis r3, lbl_80430CD8@ha -/* 80265E3C 00262D7C 38 83 0C D8 */ addi r4, r3, lbl_80430CD8@l -/* 80265E40 00262D80 80 64 00 04 */ lwz r3, 4(r4) -/* 80265E44 00262D84 38 03 00 01 */ addi r0, r3, 1 -/* 80265E48 00262D88 90 04 00 04 */ stw r0, 4(r4) -lbl_80265E4C: -/* 80265E4C 00262D8C 3C 60 80 43 */ lis r3, lbl_80430CD8@ha -/* 80265E50 00262D90 38 83 0C D8 */ addi r4, r3, lbl_80430CD8@l -/* 80265E54 00262D94 80 64 00 00 */ lwz r3, 0(r4) -/* 80265E58 00262D98 38 03 00 01 */ addi r0, r3, 1 -/* 80265E5C 00262D9C 90 04 00 00 */ stw r0, 0(r4) -/* 80265E60 00262DA0 4E 80 00 20 */ blr - diff --git a/asm/SComponent/c/c_list.s b/asm/SComponent/c/c_list.s deleted file mode 100644 index 549471be66..0000000000 --- a/asm/SComponent/c/c_list.s +++ /dev/null @@ -1,158 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 80265e64 - - -.global cLs_Init -cLs_Init: -/* 80265E64 00262DA4 38 00 00 00 */ li r0, 0 -/* 80265E68 00262DA8 90 03 00 00 */ stw r0, 0(r3) -/* 80265E6C 00262DAC 90 03 00 04 */ stw r0, 4(r3) -/* 80265E70 00262DB0 90 03 00 08 */ stw r0, 8(r3) -/* 80265E74 00262DB4 4E 80 00 20 */ blr - -.global cLs_SingleCut -cLs_SingleCut: -/* 80265E78 00262DB8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80265E7C 00262DBC 7C 08 02 A6 */ mflr r0 -/* 80265E80 00262DC0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80265E84 00262DC4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80265E88 00262DC8 93 C1 00 08 */ stw r30, 8(r1) -/* 80265E8C 00262DCC 7C 7E 1B 78 */ mr r30, r3 -/* 80265E90 00262DD0 83 E3 00 04 */ lwz r31, 4(r3) -/* 80265E94 00262DD4 80 1F 00 00 */ lwz r0, 0(r31) -/* 80265E98 00262DD8 7C 1E 00 40 */ cmplw r30, r0 -/* 80265E9C 00262DDC 40 82 00 0C */ bne lbl_80265EA8 -/* 80265EA0 00262DE0 80 1E 00 08 */ lwz r0, 8(r30) -/* 80265EA4 00262DE4 90 1F 00 00 */ stw r0, 0(r31) -lbl_80265EA8: -/* 80265EA8 00262DE8 80 1F 00 04 */ lwz r0, 4(r31) -/* 80265EAC 00262DEC 7C 1E 00 40 */ cmplw r30, r0 -/* 80265EB0 00262DF0 40 82 00 0C */ bne lbl_80265EBC -/* 80265EB4 00262DF4 80 1E 00 00 */ lwz r0, 0(r30) -/* 80265EB8 00262DF8 90 1F 00 04 */ stw r0, 4(r31) -lbl_80265EBC: -/* 80265EBC 00262DFC 7F C3 F3 78 */ mr r3, r30 -/* 80265EC0 00262E00 48 00 02 FD */ bl cNd_SingleCut -/* 80265EC4 00262E04 7F C3 F3 78 */ mr r3, r30 -/* 80265EC8 00262E08 48 00 04 11 */ bl cNd_ClearObject -/* 80265ECC 00262E0C 80 7F 00 08 */ lwz r3, 8(r31) -/* 80265ED0 00262E10 38 63 FF FF */ addi r3, r3, -1 -/* 80265ED4 00262E14 90 7F 00 08 */ stw r3, 8(r31) -/* 80265ED8 00262E18 7C 03 00 D0 */ neg r0, r3 -/* 80265EDC 00262E1C 7C 00 18 78 */ andc r0, r0, r3 -/* 80265EE0 00262E20 54 03 0F FE */ srwi r3, r0, 0x1f -/* 80265EE4 00262E24 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80265EE8 00262E28 83 C1 00 08 */ lwz r30, 8(r1) -/* 80265EEC 00262E2C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80265EF0 00262E30 7C 08 03 A6 */ mtlr r0 -/* 80265EF4 00262E34 38 21 00 10 */ addi r1, r1, 0x10 -/* 80265EF8 00262E38 4E 80 00 20 */ blr - -.global cLs_Addition -cLs_Addition: -/* 80265EFC 00262E3C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80265F00 00262E40 7C 08 02 A6 */ mflr r0 -/* 80265F04 00262E44 90 01 00 14 */ stw r0, 0x14(r1) -/* 80265F08 00262E48 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80265F0C 00262E4C 93 C1 00 08 */ stw r30, 8(r1) -/* 80265F10 00262E50 7C 7E 1B 78 */ mr r30, r3 -/* 80265F14 00262E54 7C 9F 23 78 */ mr r31, r4 -/* 80265F18 00262E58 80 63 00 04 */ lwz r3, 4(r3) -/* 80265F1C 00262E5C 28 03 00 00 */ cmplwi r3, 0 -/* 80265F20 00262E60 40 82 00 0C */ bne lbl_80265F2C -/* 80265F24 00262E64 93 FE 00 00 */ stw r31, 0(r30) -/* 80265F28 00262E68 48 00 00 08 */ b lbl_80265F30 -lbl_80265F2C: -/* 80265F2C 00262E6C 48 00 02 E5 */ bl cNd_Addition -lbl_80265F30: -/* 80265F30 00262E70 7F E3 FB 78 */ mr r3, r31 -/* 80265F34 00262E74 48 00 02 09 */ bl cNd_Last -/* 80265F38 00262E78 90 7E 00 04 */ stw r3, 4(r30) -/* 80265F3C 00262E7C 7F E3 FB 78 */ mr r3, r31 -/* 80265F40 00262E80 7F C4 F3 78 */ mr r4, r30 -/* 80265F44 00262E84 48 00 03 6D */ bl cNd_SetObject -/* 80265F48 00262E88 80 7E 00 00 */ lwz r3, 0(r30) -/* 80265F4C 00262E8C 48 00 01 91 */ bl cNd_LengthOf -/* 80265F50 00262E90 90 7E 00 08 */ stw r3, 8(r30) -/* 80265F54 00262E94 80 7E 00 08 */ lwz r3, 8(r30) -/* 80265F58 00262E98 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80265F5C 00262E9C 83 C1 00 08 */ lwz r30, 8(r1) -/* 80265F60 00262EA0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80265F64 00262EA4 7C 08 03 A6 */ mtlr r0 -/* 80265F68 00262EA8 38 21 00 10 */ addi r1, r1, 0x10 -/* 80265F6C 00262EAC 4E 80 00 20 */ blr - -.global cLs_Insert -cLs_Insert: -/* 80265F70 00262EB0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80265F74 00262EB4 7C 08 02 A6 */ mflr r0 -/* 80265F78 00262EB8 90 01 00 24 */ stw r0, 0x24(r1) -/* 80265F7C 00262EBC 39 61 00 20 */ addi r11, r1, 0x20 -/* 80265F80 00262EC0 48 0F C2 5D */ bl _savegpr_29 -/* 80265F84 00262EC4 7C 7D 1B 78 */ mr r29, r3 -/* 80265F88 00262EC8 7C BE 2B 78 */ mr r30, r5 -/* 80265F8C 00262ECC 80 63 00 00 */ lwz r3, 0(r3) -/* 80265F90 00262ED0 48 00 01 DD */ bl cNd_Order -/* 80265F94 00262ED4 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80265F98 00262ED8 40 82 00 14 */ bne lbl_80265FAC -/* 80265F9C 00262EDC 7F A3 EB 78 */ mr r3, r29 -/* 80265FA0 00262EE0 7F C4 F3 78 */ mr r4, r30 -/* 80265FA4 00262EE4 4B FF FF 59 */ bl cLs_Addition -/* 80265FA8 00262EE8 48 00 00 38 */ b lbl_80265FE0 -lbl_80265FAC: -/* 80265FAC 00262EEC 7F C3 F3 78 */ mr r3, r30 -/* 80265FB0 00262EF0 7F A4 EB 78 */ mr r4, r29 -/* 80265FB4 00262EF4 48 00 02 FD */ bl cNd_SetObject -/* 80265FB8 00262EF8 7F E3 FB 78 */ mr r3, r31 -/* 80265FBC 00262EFC 7F C4 F3 78 */ mr r4, r30 -/* 80265FC0 00262F00 48 00 02 85 */ bl cNd_Insert -/* 80265FC4 00262F04 7F C3 F3 78 */ mr r3, r30 -/* 80265FC8 00262F08 48 00 01 45 */ bl cNd_First -/* 80265FCC 00262F0C 90 7D 00 00 */ stw r3, 0(r29) -/* 80265FD0 00262F10 80 7D 00 00 */ lwz r3, 0(r29) -/* 80265FD4 00262F14 48 00 01 09 */ bl cNd_LengthOf -/* 80265FD8 00262F18 90 7D 00 08 */ stw r3, 8(r29) -/* 80265FDC 00262F1C 80 7D 00 08 */ lwz r3, 8(r29) -lbl_80265FE0: -/* 80265FE0 00262F20 39 61 00 20 */ addi r11, r1, 0x20 -/* 80265FE4 00262F24 48 0F C2 45 */ bl _restgpr_29 -/* 80265FE8 00262F28 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80265FEC 00262F2C 7C 08 03 A6 */ mtlr r0 -/* 80265FF0 00262F30 38 21 00 20 */ addi r1, r1, 0x20 -/* 80265FF4 00262F34 4E 80 00 20 */ blr - -.global cLs_GetFirst -cLs_GetFirst: -/* 80265FF8 00262F38 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80265FFC 00262F3C 7C 08 02 A6 */ mflr r0 -/* 80266000 00262F40 90 01 00 14 */ stw r0, 0x14(r1) -/* 80266004 00262F44 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80266008 00262F48 80 03 00 08 */ lwz r0, 8(r3) -/* 8026600C 00262F4C 2C 00 00 00 */ cmpwi r0, 0 -/* 80266010 00262F50 41 82 00 18 */ beq lbl_80266028 -/* 80266014 00262F54 83 E3 00 00 */ lwz r31, 0(r3) -/* 80266018 00262F58 7F E3 FB 78 */ mr r3, r31 -/* 8026601C 00262F5C 4B FF FE 5D */ bl cLs_SingleCut -/* 80266020 00262F60 7F E3 FB 78 */ mr r3, r31 -/* 80266024 00262F64 48 00 00 08 */ b lbl_8026602C -lbl_80266028: -/* 80266028 00262F68 38 60 00 00 */ li r3, 0 -lbl_8026602C: -/* 8026602C 00262F6C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80266030 00262F70 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80266034 00262F74 7C 08 03 A6 */ mtlr r0 -/* 80266038 00262F78 38 21 00 10 */ addi r1, r1, 0x10 -/* 8026603C 00262F7C 4E 80 00 20 */ blr - -.global cLs_Create -cLs_Create: -/* 80266040 00262F80 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80266044 00262F84 7C 08 02 A6 */ mflr r0 -/* 80266048 00262F88 90 01 00 14 */ stw r0, 0x14(r1) -/* 8026604C 00262F8C 4B FF FE 19 */ bl cLs_Init -/* 80266050 00262F90 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80266054 00262F94 7C 08 03 A6 */ mtlr r0 -/* 80266058 00262F98 38 21 00 10 */ addi r1, r1, 0x10 -/* 8026605C 00262F9C 4E 80 00 20 */ blr - diff --git a/asm/SComponent/c/c_node.s b/asm/SComponent/c/c_node.s deleted file mode 100644 index 316e0981ad..0000000000 --- a/asm/SComponent/c/c_node.s +++ /dev/null @@ -1,215 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 802660d0 - - -.global cNd_Join -cNd_Join: -/* 802660D0 00263010 90 83 00 08 */ stw r4, 8(r3) -/* 802660D4 00263014 90 64 00 00 */ stw r3, 0(r4) -/* 802660D8 00263018 4E 80 00 20 */ blr - -.global cNd_LengthOf -cNd_LengthOf: -/* 802660DC 0026301C 38 80 00 00 */ li r4, 0 -/* 802660E0 00263020 48 00 00 1C */ b lbl_802660FC -lbl_802660E4: -/* 802660E4 00263024 28 03 00 00 */ cmplwi r3, 0 -/* 802660E8 00263028 38 84 00 01 */ addi r4, r4, 1 -/* 802660EC 0026302C 41 82 00 0C */ beq lbl_802660F8 -/* 802660F0 00263030 80 63 00 08 */ lwz r3, 8(r3) -/* 802660F4 00263034 48 00 00 08 */ b lbl_802660FC -lbl_802660F8: -/* 802660F8 00263038 38 60 00 00 */ li r3, 0 -lbl_802660FC: -/* 802660FC 0026303C 28 03 00 00 */ cmplwi r3, 0 -/* 80266100 00263040 40 82 FF E4 */ bne lbl_802660E4 -/* 80266104 00263044 7C 83 23 78 */ mr r3, r4 -/* 80266108 00263048 4E 80 00 20 */ blr - -.global cNd_First -cNd_First: -/* 8026610C 0026304C 38 00 00 00 */ li r0, 0 -/* 80266110 00263050 48 00 00 1C */ b lbl_8026612C -lbl_80266114: -/* 80266114 00263054 7C 60 1B 78 */ mr r0, r3 -/* 80266118 00263058 28 03 00 00 */ cmplwi r3, 0 -/* 8026611C 0026305C 41 82 00 0C */ beq lbl_80266128 -/* 80266120 00263060 80 63 00 00 */ lwz r3, 0(r3) -/* 80266124 00263064 48 00 00 08 */ b lbl_8026612C -lbl_80266128: -/* 80266128 00263068 38 60 00 00 */ li r3, 0 -lbl_8026612C: -/* 8026612C 0026306C 28 03 00 00 */ cmplwi r3, 0 -/* 80266130 00263070 40 82 FF E4 */ bne lbl_80266114 -/* 80266134 00263074 7C 03 03 78 */ mr r3, r0 -/* 80266138 00263078 4E 80 00 20 */ blr - -.global cNd_Last -cNd_Last: -/* 8026613C 0026307C 38 00 00 00 */ li r0, 0 -/* 80266140 00263080 48 00 00 1C */ b lbl_8026615C -lbl_80266144: -/* 80266144 00263084 7C 60 1B 78 */ mr r0, r3 -/* 80266148 00263088 28 03 00 00 */ cmplwi r3, 0 -/* 8026614C 0026308C 41 82 00 0C */ beq lbl_80266158 -/* 80266150 00263090 80 63 00 08 */ lwz r3, 8(r3) -/* 80266154 00263094 48 00 00 08 */ b lbl_8026615C -lbl_80266158: -/* 80266158 00263098 38 60 00 00 */ li r3, 0 -lbl_8026615C: -/* 8026615C 0026309C 28 03 00 00 */ cmplwi r3, 0 -/* 80266160 002630A0 40 82 FF E4 */ bne lbl_80266144 -/* 80266164 002630A4 7C 03 03 78 */ mr r3, r0 -/* 80266168 002630A8 4E 80 00 20 */ blr - -.global cNd_Order -cNd_Order: -/* 8026616C 002630AC 38 00 00 00 */ li r0, 0 -/* 80266170 002630B0 38 A0 00 00 */ li r5, 0 -/* 80266174 002630B4 48 00 00 20 */ b lbl_80266194 -lbl_80266178: -/* 80266178 002630B8 7C 60 1B 78 */ mr r0, r3 -/* 8026617C 002630BC 28 03 00 00 */ cmplwi r3, 0 -/* 80266180 002630C0 38 A5 00 01 */ addi r5, r5, 1 -/* 80266184 002630C4 41 82 00 0C */ beq lbl_80266190 -/* 80266188 002630C8 80 63 00 08 */ lwz r3, 8(r3) -/* 8026618C 002630CC 48 00 00 08 */ b lbl_80266194 -lbl_80266190: -/* 80266190 002630D0 38 60 00 00 */ li r3, 0 -lbl_80266194: -/* 80266194 002630D4 7C 05 20 00 */ cmpw r5, r4 -/* 80266198 002630D8 40 80 00 0C */ bge lbl_802661A4 -/* 8026619C 002630DC 28 03 00 00 */ cmplwi r3, 0 -/* 802661A0 002630E0 40 82 FF D8 */ bne lbl_80266178 -lbl_802661A4: -/* 802661A4 002630E4 7C 05 20 00 */ cmpw r5, r4 -/* 802661A8 002630E8 40 80 00 0C */ bge lbl_802661B4 -/* 802661AC 002630EC 7C 03 03 78 */ mr r3, r0 -/* 802661B0 002630F0 4E 80 00 20 */ blr -lbl_802661B4: -/* 802661B4 002630F4 38 60 00 00 */ li r3, 0 -/* 802661B8 002630F8 4E 80 00 20 */ blr - -.global cNd_SingleCut -cNd_SingleCut: -/* 802661BC 002630FC 80 A3 00 00 */ lwz r5, 0(r3) -/* 802661C0 00263100 80 83 00 08 */ lwz r4, 8(r3) -/* 802661C4 00263104 28 05 00 00 */ cmplwi r5, 0 -/* 802661C8 00263108 41 82 00 08 */ beq lbl_802661D0 -/* 802661CC 0026310C 90 85 00 08 */ stw r4, 8(r5) -lbl_802661D0: -/* 802661D0 00263110 28 04 00 00 */ cmplwi r4, 0 -/* 802661D4 00263114 41 82 00 0C */ beq lbl_802661E0 -/* 802661D8 00263118 80 03 00 00 */ lwz r0, 0(r3) -/* 802661DC 0026311C 90 04 00 00 */ stw r0, 0(r4) -lbl_802661E0: -/* 802661E0 00263120 38 00 00 00 */ li r0, 0 -/* 802661E4 00263124 90 03 00 00 */ stw r0, 0(r3) -/* 802661E8 00263128 90 03 00 08 */ stw r0, 8(r3) -/* 802661EC 0026312C 4E 80 00 20 */ blr - -.global cNd_Cut -cNd_Cut: -/* 802661F0 00263130 80 83 00 00 */ lwz r4, 0(r3) -/* 802661F4 00263134 28 04 00 00 */ cmplwi r4, 0 -/* 802661F8 00263138 41 82 00 0C */ beq lbl_80266204 -/* 802661FC 0026313C 38 00 00 00 */ li r0, 0 -/* 80266200 00263140 90 04 00 08 */ stw r0, 8(r4) -lbl_80266204: -/* 80266204 00263144 38 00 00 00 */ li r0, 0 -/* 80266208 00263148 90 03 00 00 */ stw r0, 0(r3) -/* 8026620C 0026314C 4E 80 00 20 */ blr - -.global cNd_Addition -cNd_Addition: -/* 80266210 00263150 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80266214 00263154 7C 08 02 A6 */ mflr r0 -/* 80266218 00263158 90 01 00 14 */ stw r0, 0x14(r1) -/* 8026621C 0026315C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80266220 00263160 7C 9F 23 78 */ mr r31, r4 -/* 80266224 00263164 4B FF FF 19 */ bl cNd_Last -/* 80266228 00263168 7F E4 FB 78 */ mr r4, r31 -/* 8026622C 0026316C 4B FF FE A5 */ bl cNd_Join -/* 80266230 00263170 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80266234 00263174 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80266238 00263178 7C 08 03 A6 */ mtlr r0 -/* 8026623C 0026317C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80266240 00263180 4E 80 00 20 */ blr - -.global cNd_Insert -cNd_Insert: -/* 80266244 00263184 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80266248 00263188 7C 08 02 A6 */ mflr r0 -/* 8026624C 0026318C 90 01 00 24 */ stw r0, 0x24(r1) -/* 80266250 00263190 39 61 00 20 */ addi r11, r1, 0x20 -/* 80266254 00263194 48 0F BF 89 */ bl _savegpr_29 -/* 80266258 00263198 7C 7D 1B 78 */ mr r29, r3 -/* 8026625C 0026319C 7C 9E 23 78 */ mr r30, r4 -/* 80266260 002631A0 83 E3 00 00 */ lwz r31, 0(r3) -/* 80266264 002631A4 28 1F 00 00 */ cmplwi r31, 0 -/* 80266268 002631A8 40 82 00 14 */ bne lbl_8026627C -/* 8026626C 002631AC 7F C3 F3 78 */ mr r3, r30 -/* 80266270 002631B0 7F A4 EB 78 */ mr r4, r29 -/* 80266274 002631B4 4B FF FF 9D */ bl cNd_Addition -/* 80266278 002631B8 48 00 00 20 */ b lbl_80266298 -lbl_8026627C: -/* 8026627C 002631BC 4B FF FF 75 */ bl cNd_Cut -/* 80266280 002631C0 7F E3 FB 78 */ mr r3, r31 -/* 80266284 002631C4 7F C4 F3 78 */ mr r4, r30 -/* 80266288 002631C8 4B FF FF 89 */ bl cNd_Addition -/* 8026628C 002631CC 7F C3 F3 78 */ mr r3, r30 -/* 80266290 002631D0 7F A4 EB 78 */ mr r4, r29 -/* 80266294 002631D4 4B FF FF 7D */ bl cNd_Addition -lbl_80266298: -/* 80266298 002631D8 39 61 00 20 */ addi r11, r1, 0x20 -/* 8026629C 002631DC 48 0F BF 8D */ bl _restgpr_29 -/* 802662A0 002631E0 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802662A4 002631E4 7C 08 03 A6 */ mtlr r0 -/* 802662A8 002631E8 38 21 00 20 */ addi r1, r1, 0x20 -/* 802662AC 002631EC 4E 80 00 20 */ blr - -.global cNd_SetObject -cNd_SetObject: -/* 802662B0 002631F0 48 00 00 1C */ b lbl_802662CC -lbl_802662B4: -/* 802662B4 002631F4 90 83 00 04 */ stw r4, 4(r3) -/* 802662B8 002631F8 28 03 00 00 */ cmplwi r3, 0 -/* 802662BC 002631FC 41 82 00 0C */ beq lbl_802662C8 -/* 802662C0 00263200 80 63 00 08 */ lwz r3, 8(r3) -/* 802662C4 00263204 48 00 00 08 */ b lbl_802662CC -lbl_802662C8: -/* 802662C8 00263208 38 60 00 00 */ li r3, 0 -lbl_802662CC: -/* 802662CC 0026320C 28 03 00 00 */ cmplwi r3, 0 -/* 802662D0 00263210 40 82 FF E4 */ bne lbl_802662B4 -/* 802662D4 00263214 4E 80 00 20 */ blr - -.global cNd_ClearObject -cNd_ClearObject: -/* 802662D8 00263218 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802662DC 0026321C 7C 08 02 A6 */ mflr r0 -/* 802662E0 00263220 90 01 00 14 */ stw r0, 0x14(r1) -/* 802662E4 00263224 38 80 00 00 */ li r4, 0 -/* 802662E8 00263228 4B FF FF C9 */ bl cNd_SetObject -/* 802662EC 0026322C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802662F0 00263230 7C 08 03 A6 */ mtlr r0 -/* 802662F4 00263234 38 21 00 10 */ addi r1, r1, 0x10 -/* 802662F8 00263238 4E 80 00 20 */ blr - -.global cNd_ForcedClear -cNd_ForcedClear: -/* 802662FC 0026323C 38 00 00 00 */ li r0, 0 -/* 80266300 00263240 90 03 00 00 */ stw r0, 0(r3) -/* 80266304 00263244 90 03 00 08 */ stw r0, 8(r3) -/* 80266308 00263248 90 03 00 04 */ stw r0, 4(r3) -/* 8026630C 0026324C 4E 80 00 20 */ blr - -.global cNd_Create -cNd_Create: -/* 80266310 00263250 38 00 00 00 */ li r0, 0 -/* 80266314 00263254 90 03 00 00 */ stw r0, 0(r3) -/* 80266318 00263258 90 03 00 08 */ stw r0, 8(r3) -/* 8026631C 0026325C 90 83 00 04 */ stw r4, 4(r3) -/* 80266320 00263260 4E 80 00 20 */ blr - diff --git a/asm/SComponent/c/c_phase.s b/asm/SComponent/c/c_phase.s deleted file mode 100644 index 065ea20822..0000000000 --- a/asm/SComponent/c/c_phase.s +++ /dev/null @@ -1,146 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 80266624 - - -.global cPhs_Reset -cPhs_Reset: -/* 80266624 00263564 38 00 00 00 */ li r0, 0 -/* 80266628 00263568 90 03 00 04 */ stw r0, 4(r3) -/* 8026662C 0026356C 4E 80 00 20 */ blr - -.global cPhs_Set -cPhs_Set: -/* 80266630 00263570 90 83 00 00 */ stw r4, 0(r3) -/* 80266634 00263574 38 00 00 00 */ li r0, 0 -/* 80266638 00263578 90 03 00 04 */ stw r0, 4(r3) -/* 8026663C 0026357C 4E 80 00 20 */ blr - -.global cPhs_UnCompleate -cPhs_UnCompleate: -/* 80266640 00263580 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80266644 00263584 7C 08 02 A6 */ mflr r0 -/* 80266648 00263588 90 01 00 14 */ stw r0, 0x14(r1) -/* 8026664C 0026358C 38 00 00 00 */ li r0, 0 -/* 80266650 00263590 90 03 00 00 */ stw r0, 0(r3) -/* 80266654 00263594 4B FF FF D1 */ bl cPhs_Reset -/* 80266658 00263598 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8026665C 0026359C 7C 08 03 A6 */ mtlr r0 -/* 80266660 002635A0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80266664 002635A4 4E 80 00 20 */ blr - -.global cPhs_Compleate -cPhs_Compleate: -/* 80266668 002635A8 38 00 00 00 */ li r0, 0 -/* 8026666C 002635AC 90 03 00 00 */ stw r0, 0(r3) -/* 80266670 002635B0 38 60 00 04 */ li r3, 4 -/* 80266674 002635B4 4E 80 00 20 */ blr - -.global cPhs_Next -cPhs_Next: -/* 80266678 002635B8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8026667C 002635BC 7C 08 02 A6 */ mflr r0 -/* 80266680 002635C0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80266684 002635C4 80 A3 00 00 */ lwz r5, 0(r3) -/* 80266688 002635C8 28 05 00 00 */ cmplwi r5, 0 -/* 8026668C 002635CC 41 82 00 38 */ beq lbl_802666C4 -/* 80266690 002635D0 80 83 00 04 */ lwz r4, 4(r3) -/* 80266694 002635D4 38 04 00 01 */ addi r0, r4, 1 -/* 80266698 002635D8 90 03 00 04 */ stw r0, 4(r3) -/* 8026669C 002635DC 80 03 00 04 */ lwz r0, 4(r3) -/* 802666A0 002635E0 54 00 10 3A */ slwi r0, r0, 2 -/* 802666A4 002635E4 7C 05 00 2E */ lwzx r0, r5, r0 -/* 802666A8 002635E8 28 00 00 00 */ cmplwi r0, 0 -/* 802666AC 002635EC 41 82 00 08 */ beq lbl_802666B4 -/* 802666B0 002635F0 40 82 00 0C */ bne lbl_802666BC -lbl_802666B4: -/* 802666B4 002635F4 4B FF FF B5 */ bl cPhs_Compleate -/* 802666B8 002635F8 48 00 00 10 */ b lbl_802666C8 -lbl_802666BC: -/* 802666BC 002635FC 38 60 00 01 */ li r3, 1 -/* 802666C0 00263600 48 00 00 08 */ b lbl_802666C8 -lbl_802666C4: -/* 802666C4 00263604 38 60 00 04 */ li r3, 4 -lbl_802666C8: -/* 802666C8 00263608 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802666CC 0026360C 7C 08 03 A6 */ mtlr r0 -/* 802666D0 00263610 38 21 00 10 */ addi r1, r1, 0x10 -/* 802666D4 00263614 4E 80 00 20 */ blr - -.global cPhs_Do -cPhs_Do: -/* 802666D8 00263618 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802666DC 0026361C 7C 08 02 A6 */ mflr r0 -/* 802666E0 00263620 90 01 00 14 */ stw r0, 0x14(r1) -/* 802666E4 00263624 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802666E8 00263628 7C 7F 1B 78 */ mr r31, r3 -/* 802666EC 0026362C 80 A3 00 00 */ lwz r5, 0(r3) -/* 802666F0 00263630 28 05 00 00 */ cmplwi r5, 0 -/* 802666F4 00263634 41 82 00 A0 */ beq lbl_80266794 -/* 802666F8 00263638 80 1F 00 04 */ lwz r0, 4(r31) -/* 802666FC 0026363C 54 00 10 3A */ slwi r0, r0, 2 -/* 80266700 00263640 7C 83 23 78 */ mr r3, r4 -/* 80266704 00263644 7D 85 00 2E */ lwzx r12, r5, r0 -/* 80266708 00263648 7D 89 03 A6 */ mtctr r12 -/* 8026670C 0026364C 4E 80 04 21 */ bctrl -/* 80266710 00263650 2C 03 00 03 */ cmpwi r3, 3 -/* 80266714 00263654 41 82 00 5C */ beq lbl_80266770 -/* 80266718 00263658 40 80 00 14 */ bge lbl_8026672C -/* 8026671C 0026365C 2C 03 00 01 */ cmpwi r3, 1 -/* 80266720 00263660 41 82 00 1C */ beq lbl_8026673C -/* 80266724 00263664 40 80 00 24 */ bge lbl_80266748 -/* 80266728 00263668 48 00 00 70 */ b lbl_80266798 -lbl_8026672C: -/* 8026672C 0026366C 2C 03 00 05 */ cmpwi r3, 5 -/* 80266730 00263670 41 82 00 50 */ beq lbl_80266780 -/* 80266734 00263674 40 80 00 64 */ bge lbl_80266798 -/* 80266738 00263678 48 00 00 2C */ b lbl_80266764 -lbl_8026673C: -/* 8026673C 0026367C 7F E3 FB 78 */ mr r3, r31 -/* 80266740 00263680 4B FF FF 39 */ bl cPhs_Next -/* 80266744 00263684 48 00 00 54 */ b lbl_80266798 -lbl_80266748: -/* 80266748 00263688 7F E3 FB 78 */ mr r3, r31 -/* 8026674C 0026368C 4B FF FF 2D */ bl cPhs_Next -/* 80266750 00263690 2C 03 00 01 */ cmpwi r3, 1 -/* 80266754 00263694 38 60 00 04 */ li r3, 4 -/* 80266758 00263698 40 82 00 40 */ bne lbl_80266798 -/* 8026675C 0026369C 38 60 00 02 */ li r3, 2 -/* 80266760 002636A0 48 00 00 38 */ b lbl_80266798 -lbl_80266764: -/* 80266764 002636A4 7F E3 FB 78 */ mr r3, r31 -/* 80266768 002636A8 4B FF FF 01 */ bl cPhs_Compleate -/* 8026676C 002636AC 48 00 00 2C */ b lbl_80266798 -lbl_80266770: -/* 80266770 002636B0 7F E3 FB 78 */ mr r3, r31 -/* 80266774 002636B4 4B FF FE CD */ bl cPhs_UnCompleate -/* 80266778 002636B8 38 60 00 03 */ li r3, 3 -/* 8026677C 002636BC 48 00 00 1C */ b lbl_80266798 -lbl_80266780: -/* 80266780 002636C0 7F E3 FB 78 */ mr r3, r31 -/* 80266784 002636C4 4B FF FE BD */ bl cPhs_UnCompleate -/* 80266788 002636C8 38 60 00 05 */ li r3, 5 -/* 8026678C 002636CC 48 00 00 0C */ b lbl_80266798 -/* 80266790 002636D0 48 00 00 08 */ b lbl_80266798 -lbl_80266794: -/* 80266794 002636D4 4B FF FE D5 */ bl cPhs_Compleate -lbl_80266798: -/* 80266798 002636D8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8026679C 002636DC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802667A0 002636E0 7C 08 03 A6 */ mtlr r0 -/* 802667A4 002636E4 38 21 00 10 */ addi r1, r1, 0x10 -/* 802667A8 002636E8 4E 80 00 20 */ blr - -.global cPhs_Handler -cPhs_Handler: -/* 802667AC 002636EC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802667B0 002636F0 7C 08 02 A6 */ mflr r0 -/* 802667B4 002636F4 90 01 00 14 */ stw r0, 0x14(r1) -/* 802667B8 002636F8 90 83 00 00 */ stw r4, 0(r3) -/* 802667BC 002636FC 7C A4 2B 78 */ mr r4, r5 -/* 802667C0 00263700 4B FF FF 19 */ bl cPhs_Do -/* 802667C4 00263704 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802667C8 00263708 7C 08 03 A6 */ mtlr r0 -/* 802667CC 0026370C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802667D0 00263710 4E 80 00 20 */ blr - diff --git a/asm/SComponent/c/c_tag.s b/asm/SComponent/c/c_tag.s deleted file mode 100644 index 007c67e3c8..0000000000 --- a/asm/SComponent/c/c_tag.s +++ /dev/null @@ -1,168 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 80266880 - - -.global cTg_IsUse -cTg_IsUse: -/* 80266880 002637C0 88 63 00 10 */ lbz r3, 0x10(r3) -/* 80266884 002637C4 7C 63 07 74 */ extsb r3, r3 -/* 80266888 002637C8 4E 80 00 20 */ blr - -.global cTg_SingleCutFromTree -cTg_SingleCutFromTree: -/* 8026688C 002637CC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80266890 002637D0 7C 08 02 A6 */ mflr r0 -/* 80266894 002637D4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80266898 002637D8 88 03 00 10 */ lbz r0, 0x10(r3) -/* 8026689C 002637DC 2C 00 00 01 */ cmpwi r0, 1 -/* 802668A0 002637E0 40 82 00 18 */ bne lbl_802668B8 -/* 802668A4 002637E4 38 00 00 00 */ li r0, 0 -/* 802668A8 002637E8 98 03 00 10 */ stb r0, 0x10(r3) -/* 802668AC 002637EC 4B FF FB 95 */ bl cTr_SingleCut -/* 802668B0 002637F0 38 60 00 01 */ li r3, 1 -/* 802668B4 002637F4 48 00 00 08 */ b lbl_802668BC -lbl_802668B8: -/* 802668B8 002637F8 38 60 00 00 */ li r3, 0 -lbl_802668BC: -/* 802668BC 002637FC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802668C0 00263800 7C 08 03 A6 */ mtlr r0 -/* 802668C4 00263804 38 21 00 10 */ addi r1, r1, 0x10 -/* 802668C8 00263808 4E 80 00 20 */ blr - -.global cTg_AdditionToTree -cTg_AdditionToTree: -/* 802668CC 0026380C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802668D0 00263810 7C 08 02 A6 */ mflr r0 -/* 802668D4 00263814 90 01 00 14 */ stw r0, 0x14(r1) -/* 802668D8 00263818 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802668DC 0026381C 7C BF 2B 78 */ mr r31, r5 -/* 802668E0 00263820 88 05 00 10 */ lbz r0, 0x10(r5) -/* 802668E4 00263824 7C 00 07 75 */ extsb. r0, r0 -/* 802668E8 00263828 40 82 00 1C */ bne lbl_80266904 -/* 802668EC 0026382C 4B FF FB 75 */ bl cTr_Addition -/* 802668F0 00263830 2C 03 00 00 */ cmpwi r3, 0 -/* 802668F4 00263834 41 82 00 10 */ beq lbl_80266904 -/* 802668F8 00263838 38 00 00 01 */ li r0, 1 -/* 802668FC 0026383C 98 1F 00 10 */ stb r0, 0x10(r31) -/* 80266900 00263840 48 00 00 08 */ b lbl_80266908 -lbl_80266904: -/* 80266904 00263844 38 60 00 00 */ li r3, 0 -lbl_80266908: -/* 80266908 00263848 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8026690C 0026384C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80266910 00263850 7C 08 03 A6 */ mtlr r0 -/* 80266914 00263854 38 21 00 10 */ addi r1, r1, 0x10 -/* 80266918 00263858 4E 80 00 20 */ blr - -.global cTg_InsertToTree -cTg_InsertToTree: -/* 8026691C 0026385C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80266920 00263860 7C 08 02 A6 */ mflr r0 -/* 80266924 00263864 90 01 00 14 */ stw r0, 0x14(r1) -/* 80266928 00263868 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8026692C 0026386C 7C BF 2B 78 */ mr r31, r5 -/* 80266930 00263870 88 05 00 10 */ lbz r0, 0x10(r5) -/* 80266934 00263874 7C 00 07 75 */ extsb. r0, r0 -/* 80266938 00263878 40 82 00 1C */ bne lbl_80266954 -/* 8026693C 0026387C 4B FF FB 69 */ bl cTr_Insert -/* 80266940 00263880 2C 03 00 00 */ cmpwi r3, 0 -/* 80266944 00263884 41 82 00 10 */ beq lbl_80266954 -/* 80266948 00263888 38 00 00 01 */ li r0, 1 -/* 8026694C 0026388C 98 1F 00 10 */ stb r0, 0x10(r31) -/* 80266950 00263890 48 00 00 08 */ b lbl_80266958 -lbl_80266954: -/* 80266954 00263894 38 60 00 00 */ li r3, 0 -lbl_80266958: -/* 80266958 00263898 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8026695C 0026389C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80266960 002638A0 7C 08 03 A6 */ mtlr r0 -/* 80266964 002638A4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80266968 002638A8 4E 80 00 20 */ blr - -.global cTg_GetFirst -cTg_GetFirst: -/* 8026696C 002638AC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80266970 002638B0 7C 08 02 A6 */ mflr r0 -/* 80266974 002638B4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80266978 002638B8 4B FF F6 81 */ bl cLs_GetFirst -/* 8026697C 002638BC 28 03 00 00 */ cmplwi r3, 0 -/* 80266980 002638C0 41 82 00 10 */ beq lbl_80266990 -/* 80266984 002638C4 38 00 00 00 */ li r0, 0 -/* 80266988 002638C8 98 03 00 10 */ stb r0, 0x10(r3) -/* 8026698C 002638CC 48 00 00 08 */ b lbl_80266994 -lbl_80266990: -/* 80266990 002638D0 38 60 00 00 */ li r3, 0 -lbl_80266994: -/* 80266994 002638D4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80266998 002638D8 7C 08 03 A6 */ mtlr r0 -/* 8026699C 002638DC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802669A0 002638E0 4E 80 00 20 */ blr - -.global cTg_SingleCut -cTg_SingleCut: -/* 802669A4 002638E4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802669A8 002638E8 7C 08 02 A6 */ mflr r0 -/* 802669AC 002638EC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802669B0 002638F0 88 03 00 10 */ lbz r0, 0x10(r3) -/* 802669B4 002638F4 2C 00 00 01 */ cmpwi r0, 1 -/* 802669B8 002638F8 40 82 00 18 */ bne lbl_802669D0 -/* 802669BC 002638FC 38 00 00 00 */ li r0, 0 -/* 802669C0 00263900 98 03 00 10 */ stb r0, 0x10(r3) -/* 802669C4 00263904 4B FF F4 B5 */ bl cLs_SingleCut -/* 802669C8 00263908 38 60 00 01 */ li r3, 1 -/* 802669CC 0026390C 48 00 00 08 */ b lbl_802669D4 -lbl_802669D0: -/* 802669D0 00263910 38 60 00 00 */ li r3, 0 -lbl_802669D4: -/* 802669D4 00263914 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802669D8 00263918 7C 08 03 A6 */ mtlr r0 -/* 802669DC 0026391C 38 21 00 10 */ addi r1, r1, 0x10 -/* 802669E0 00263920 4E 80 00 20 */ blr - -.global cTg_Addition -cTg_Addition: -/* 802669E4 00263924 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802669E8 00263928 7C 08 02 A6 */ mflr r0 -/* 802669EC 0026392C 90 01 00 14 */ stw r0, 0x14(r1) -/* 802669F0 00263930 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802669F4 00263934 7C 9F 23 78 */ mr r31, r4 -/* 802669F8 00263938 88 04 00 10 */ lbz r0, 0x10(r4) -/* 802669FC 0026393C 7C 00 07 75 */ extsb. r0, r0 -/* 80266A00 00263940 40 82 00 1C */ bne lbl_80266A1C -/* 80266A04 00263944 4B FF F4 F9 */ bl cLs_Addition -/* 80266A08 00263948 2C 03 00 00 */ cmpwi r3, 0 -/* 80266A0C 0026394C 41 82 00 10 */ beq lbl_80266A1C -/* 80266A10 00263950 38 00 00 01 */ li r0, 1 -/* 80266A14 00263954 98 1F 00 10 */ stb r0, 0x10(r31) -/* 80266A18 00263958 48 00 00 08 */ b lbl_80266A20 -lbl_80266A1C: -/* 80266A1C 0026395C 38 60 00 00 */ li r3, 0 -lbl_80266A20: -/* 80266A20 00263960 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80266A24 00263964 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80266A28 00263968 7C 08 03 A6 */ mtlr r0 -/* 80266A2C 0026396C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80266A30 00263970 4E 80 00 20 */ blr - -.global cTg_Create -cTg_Create: -/* 80266A34 00263974 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80266A38 00263978 7C 08 02 A6 */ mflr r0 -/* 80266A3C 0026397C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80266A40 00263980 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80266A44 00263984 93 C1 00 08 */ stw r30, 8(r1) -/* 80266A48 00263988 7C 7E 1B 78 */ mr r30, r3 -/* 80266A4C 0026398C 7C 9F 23 78 */ mr r31, r4 -/* 80266A50 00263990 38 80 00 00 */ li r4, 0 -/* 80266A54 00263994 4B FF F8 BD */ bl cNd_Create -/* 80266A58 00263998 93 FE 00 0C */ stw r31, 0xc(r30) -/* 80266A5C 0026399C 38 00 00 00 */ li r0, 0 -/* 80266A60 002639A0 98 1E 00 10 */ stb r0, 0x10(r30) -/* 80266A64 002639A4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80266A68 002639A8 83 C1 00 08 */ lwz r30, 8(r1) -/* 80266A6C 002639AC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80266A70 002639B0 7C 08 03 A6 */ mtlr r0 -/* 80266A74 002639B4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80266A78 002639B8 4E 80 00 20 */ blr - diff --git a/asm/SComponent/c/c_tree.s b/asm/SComponent/c/c_tree.s deleted file mode 100644 index a06428afba..0000000000 --- a/asm/SComponent/c/c_tree.s +++ /dev/null @@ -1,87 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 80266440 - - -.global cTr_SingleCut -cTr_SingleCut: -/* 80266440 00263380 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80266444 00263384 7C 08 02 A6 */ mflr r0 -/* 80266448 00263388 90 01 00 14 */ stw r0, 0x14(r1) -/* 8026644C 0026338C 4B FF FA 2D */ bl cLs_SingleCut -/* 80266450 00263390 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80266454 00263394 7C 08 03 A6 */ mtlr r0 -/* 80266458 00263398 38 21 00 10 */ addi r1, r1, 0x10 -/* 8026645C 0026339C 4E 80 00 20 */ blr - -.global cTr_Addition -cTr_Addition: -/* 80266460 002633A0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80266464 002633A4 7C 08 02 A6 */ mflr r0 -/* 80266468 002633A8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8026646C 002633AC 80 03 00 04 */ lwz r0, 4(r3) -/* 80266470 002633B0 7C 04 00 00 */ cmpw r4, r0 -/* 80266474 002633B4 41 80 00 0C */ blt lbl_80266480 -/* 80266478 002633B8 38 60 00 00 */ li r3, 0 -/* 8026647C 002633BC 48 00 00 18 */ b lbl_80266494 -lbl_80266480: -/* 80266480 002633C0 80 63 00 00 */ lwz r3, 0(r3) -/* 80266484 002633C4 1C 04 00 0C */ mulli r0, r4, 0xc -/* 80266488 002633C8 7C 63 02 14 */ add r3, r3, r0 -/* 8026648C 002633CC 7C A4 2B 78 */ mr r4, r5 -/* 80266490 002633D0 4B FF FA 6D */ bl cLs_Addition -lbl_80266494: -/* 80266494 002633D4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80266498 002633D8 7C 08 03 A6 */ mtlr r0 -/* 8026649C 002633DC 38 21 00 10 */ addi r1, r1, 0x10 -/* 802664A0 002633E0 4E 80 00 20 */ blr - -.global cTr_Insert -cTr_Insert: -/* 802664A4 002633E4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802664A8 002633E8 7C 08 02 A6 */ mflr r0 -/* 802664AC 002633EC 90 01 00 14 */ stw r0, 0x14(r1) -/* 802664B0 002633F0 80 03 00 04 */ lwz r0, 4(r3) -/* 802664B4 002633F4 7C 04 00 00 */ cmpw r4, r0 -/* 802664B8 002633F8 41 80 00 0C */ blt lbl_802664C4 -/* 802664BC 002633FC 38 60 00 00 */ li r3, 0 -/* 802664C0 00263400 48 00 00 18 */ b lbl_802664D8 -lbl_802664C4: -/* 802664C4 00263404 80 63 00 00 */ lwz r3, 0(r3) -/* 802664C8 00263408 1C 04 00 0C */ mulli r0, r4, 0xc -/* 802664CC 0026340C 7C 63 02 14 */ add r3, r3, r0 -/* 802664D0 00263410 7C C4 33 78 */ mr r4, r6 -/* 802664D4 00263414 4B FF FA 9D */ bl cLs_Insert -lbl_802664D8: -/* 802664D8 00263418 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802664DC 0026341C 7C 08 03 A6 */ mtlr r0 -/* 802664E0 00263420 38 21 00 10 */ addi r1, r1, 0x10 -/* 802664E4 00263424 4E 80 00 20 */ blr - -.global cTr_Create -cTr_Create: -/* 802664E8 00263428 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 802664EC 0026342C 7C 08 02 A6 */ mflr r0 -/* 802664F0 00263430 90 01 00 14 */ stw r0, 0x14(r1) -/* 802664F4 00263434 93 E1 00 0C */ stw r31, 0xc(r1) -/* 802664F8 00263438 93 C1 00 08 */ stw r30, 8(r1) -/* 802664FC 0026343C 7C 9E 23 78 */ mr r30, r4 -/* 80266500 00263440 7C BF 2B 78 */ mr r31, r5 -/* 80266504 00263444 93 C3 00 00 */ stw r30, 0(r3) -/* 80266508 00263448 93 E3 00 04 */ stw r31, 4(r3) -/* 8026650C 0026344C 48 00 00 10 */ b lbl_8026651C -lbl_80266510: -/* 80266510 00263450 7F C3 F3 78 */ mr r3, r30 -/* 80266514 00263454 3B DE 00 0C */ addi r30, r30, 0xc -/* 80266518 00263458 4B FF FB 29 */ bl cLs_Create -lbl_8026651C: -/* 8026651C 0026345C 2C 1F 00 00 */ cmpwi r31, 0 -/* 80266520 00263460 3B FF FF FF */ addi r31, r31, -1 -/* 80266524 00263464 41 81 FF EC */ bgt lbl_80266510 -/* 80266528 00263468 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 8026652C 0026346C 83 C1 00 08 */ lwz r30, 8(r1) -/* 80266530 00263470 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80266534 00263474 7C 08 03 A6 */ mtlr r0 -/* 80266538 00263478 38 21 00 10 */ addi r1, r1, 0x10 -/* 8026653C 0026347C 4E 80 00 20 */ blr - diff --git a/asm/SComponent/c/list/c_list_iter.s b/asm/SComponent/c/list/c_list_iter.s deleted file mode 100644 index 06abc9280f..0000000000 --- a/asm/SComponent/c/list/c_list_iter.s +++ /dev/null @@ -1,43 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 80266060 - - -.global cLsIt_Method -cLsIt_Method: -/* 80266060 00262FA0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80266064 00262FA4 7C 08 02 A6 */ mflr r0 -/* 80266068 00262FA8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8026606C 00262FAC 80 03 00 08 */ lwz r0, 8(r3) -/* 80266070 00262FB0 2C 00 00 00 */ cmpwi r0, 0 -/* 80266074 00262FB4 40 81 00 10 */ ble lbl_80266084 -/* 80266078 00262FB8 80 63 00 00 */ lwz r3, 0(r3) -/* 8026607C 00262FBC 48 00 02 A9 */ bl cNdIt_Method -/* 80266080 00262FC0 48 00 00 08 */ b lbl_80266088 -lbl_80266084: -/* 80266084 00262FC4 38 60 00 01 */ li r3, 1 -lbl_80266088: -/* 80266088 00262FC8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8026608C 00262FCC 7C 08 03 A6 */ mtlr r0 -/* 80266090 00262FD0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80266094 00262FD4 4E 80 00 20 */ blr - -.global cLsIt_Judge -cLsIt_Judge: -/* 80266098 00262FD8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8026609C 00262FDC 7C 08 02 A6 */ mflr r0 -/* 802660A0 00262FE0 90 01 00 14 */ stw r0, 0x14(r1) -/* 802660A4 00262FE4 80 03 00 08 */ lwz r0, 8(r3) -/* 802660A8 00262FE8 2C 00 00 00 */ cmpwi r0, 0 -/* 802660AC 00262FEC 40 81 00 10 */ ble lbl_802660BC -/* 802660B0 00262FF0 80 63 00 00 */ lwz r3, 0(r3) -/* 802660B4 00262FF4 48 00 03 01 */ bl cNdIt_Judge -/* 802660B8 00262FF8 48 00 00 08 */ b lbl_802660C0 -lbl_802660BC: -/* 802660BC 00262FFC 38 60 00 00 */ li r3, 0 -lbl_802660C0: -/* 802660C0 00263000 80 01 00 14 */ lwz r0, 0x14(r1) -/* 802660C4 00263004 7C 08 03 A6 */ mtlr r0 -/* 802660C8 00263008 38 21 00 10 */ addi r1, r1, 0x10 -/* 802660CC 0026300C 4E 80 00 20 */ blr - diff --git a/asm/SComponent/c/node/c_node_iter.s b/asm/SComponent/c/node/c_node_iter.s deleted file mode 100644 index 4ea882e380..0000000000 --- a/asm/SComponent/c/node/c_node_iter.s +++ /dev/null @@ -1,93 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 80266324 - - -.global cNdIt_Method -cNdIt_Method: -/* 80266324 00263264 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80266328 00263268 7C 08 02 A6 */ mflr r0 -/* 8026632C 0026326C 90 01 00 24 */ stw r0, 0x24(r1) -/* 80266330 00263270 39 61 00 20 */ addi r11, r1, 0x20 -/* 80266334 00263274 48 0F BE A5 */ bl _savegpr_28 -/* 80266338 00263278 7C 9C 23 78 */ mr r28, r4 -/* 8026633C 0026327C 7C BD 2B 78 */ mr r29, r5 -/* 80266340 00263280 3B E0 00 01 */ li r31, 1 -/* 80266344 00263284 28 03 00 00 */ cmplwi r3, 0 -/* 80266348 00263288 41 82 00 0C */ beq lbl_80266354 -/* 8026634C 0026328C 83 C3 00 08 */ lwz r30, 8(r3) -/* 80266350 00263290 48 00 00 40 */ b lbl_80266390 -lbl_80266354: -/* 80266354 00263294 3B C0 00 00 */ li r30, 0 -/* 80266358 00263298 48 00 00 38 */ b lbl_80266390 -lbl_8026635C: -/* 8026635C 0026329C 7F A4 EB 78 */ mr r4, r29 -/* 80266360 002632A0 7F 8C E3 78 */ mr r12, r28 -/* 80266364 002632A4 7D 89 03 A6 */ mtctr r12 -/* 80266368 002632A8 4E 80 04 21 */ bctrl -/* 8026636C 002632AC 2C 03 00 00 */ cmpwi r3, 0 -/* 80266370 002632B0 40 82 00 08 */ bne lbl_80266378 -/* 80266374 002632B4 3B E0 00 00 */ li r31, 0 -lbl_80266378: -/* 80266378 002632B8 7F C3 F3 78 */ mr r3, r30 -/* 8026637C 002632BC 28 1E 00 00 */ cmplwi r30, 0 -/* 80266380 002632C0 41 82 00 0C */ beq lbl_8026638C -/* 80266384 002632C4 83 DE 00 08 */ lwz r30, 8(r30) -/* 80266388 002632C8 48 00 00 08 */ b lbl_80266390 -lbl_8026638C: -/* 8026638C 002632CC 3B C0 00 00 */ li r30, 0 -lbl_80266390: -/* 80266390 002632D0 28 03 00 00 */ cmplwi r3, 0 -/* 80266394 002632D4 40 82 FF C8 */ bne lbl_8026635C -/* 80266398 002632D8 7F E3 FB 78 */ mr r3, r31 -/* 8026639C 002632DC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802663A0 002632E0 48 0F BE 85 */ bl _restgpr_28 -/* 802663A4 002632E4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802663A8 002632E8 7C 08 03 A6 */ mtlr r0 -/* 802663AC 002632EC 38 21 00 20 */ addi r1, r1, 0x20 -/* 802663B0 002632F0 4E 80 00 20 */ blr - -.global cNdIt_Judge -cNdIt_Judge: -/* 802663B4 002632F4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802663B8 002632F8 7C 08 02 A6 */ mflr r0 -/* 802663BC 002632FC 90 01 00 24 */ stw r0, 0x24(r1) -/* 802663C0 00263300 39 61 00 20 */ addi r11, r1, 0x20 -/* 802663C4 00263304 48 0F BE 19 */ bl _savegpr_29 -/* 802663C8 00263308 7C 9D 23 78 */ mr r29, r4 -/* 802663CC 0026330C 7C BE 2B 78 */ mr r30, r5 -/* 802663D0 00263310 28 03 00 00 */ cmplwi r3, 0 -/* 802663D4 00263314 41 82 00 0C */ beq lbl_802663E0 -/* 802663D8 00263318 83 E3 00 08 */ lwz r31, 8(r3) -/* 802663DC 0026331C 48 00 00 40 */ b lbl_8026641C -lbl_802663E0: -/* 802663E0 00263320 3B E0 00 00 */ li r31, 0 -/* 802663E4 00263324 48 00 00 38 */ b lbl_8026641C -lbl_802663E8: -/* 802663E8 00263328 7F C4 F3 78 */ mr r4, r30 -/* 802663EC 0026332C 7F AC EB 78 */ mr r12, r29 -/* 802663F0 00263330 7D 89 03 A6 */ mtctr r12 -/* 802663F4 00263334 4E 80 04 21 */ bctrl -/* 802663F8 00263338 28 03 00 00 */ cmplwi r3, 0 -/* 802663FC 0026333C 41 82 00 08 */ beq lbl_80266404 -/* 80266400 00263340 48 00 00 28 */ b lbl_80266428 -lbl_80266404: -/* 80266404 00263344 7F E3 FB 78 */ mr r3, r31 -/* 80266408 00263348 28 1F 00 00 */ cmplwi r31, 0 -/* 8026640C 0026334C 41 82 00 0C */ beq lbl_80266418 -/* 80266410 00263350 83 FF 00 08 */ lwz r31, 8(r31) -/* 80266414 00263354 48 00 00 08 */ b lbl_8026641C -lbl_80266418: -/* 80266418 00263358 3B E0 00 00 */ li r31, 0 -lbl_8026641C: -/* 8026641C 0026335C 28 03 00 00 */ cmplwi r3, 0 -/* 80266420 00263360 40 82 FF C8 */ bne lbl_802663E8 -/* 80266424 00263364 38 60 00 00 */ li r3, 0 -lbl_80266428: -/* 80266428 00263368 39 61 00 20 */ addi r11, r1, 0x20 -/* 8026642C 0026336C 48 0F BD FD */ bl _restgpr_29 -/* 80266430 00263370 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80266434 00263374 7C 08 03 A6 */ mtlr r0 -/* 80266438 00263378 38 21 00 20 */ addi r1, r1, 0x20 -/* 8026643C 0026337C 4E 80 00 20 */ blr - diff --git a/asm/SComponent/c/tree/c_tree_iter.s b/asm/SComponent/c/tree/c_tree_iter.s deleted file mode 100644 index 86ae9d1ac2..0000000000 --- a/asm/SComponent/c/tree/c_tree_iter.s +++ /dev/null @@ -1,73 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 80266540 - - -.global cTrIt_Method -cTrIt_Method: -/* 80266540 00263480 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80266544 00263484 7C 08 02 A6 */ mflr r0 -/* 80266548 00263488 90 01 00 24 */ stw r0, 0x24(r1) -/* 8026654C 0026348C 39 61 00 20 */ addi r11, r1, 0x20 -/* 80266550 00263490 48 0F BC 85 */ bl _savegpr_27 -/* 80266554 00263494 7C 9B 23 78 */ mr r27, r4 -/* 80266558 00263498 7C BC 2B 78 */ mr r28, r5 -/* 8026655C 0026349C 83 E3 00 00 */ lwz r31, 0(r3) -/* 80266560 002634A0 83 C3 00 04 */ lwz r30, 4(r3) -/* 80266564 002634A4 3B A0 00 01 */ li r29, 1 -/* 80266568 002634A8 48 00 00 24 */ b lbl_8026658C -lbl_8026656C: -/* 8026656C 002634AC 7F E3 FB 78 */ mr r3, r31 -/* 80266570 002634B0 7F 64 DB 78 */ mr r4, r27 -/* 80266574 002634B4 7F 85 E3 78 */ mr r5, r28 -/* 80266578 002634B8 3B FF 00 0C */ addi r31, r31, 0xc -/* 8026657C 002634BC 4B FF FA E5 */ bl cLsIt_Method -/* 80266580 002634C0 2C 03 00 00 */ cmpwi r3, 0 -/* 80266584 002634C4 40 82 00 08 */ bne lbl_8026658C -/* 80266588 002634C8 3B A0 00 00 */ li r29, 0 -lbl_8026658C: -/* 8026658C 002634CC 2C 1E 00 00 */ cmpwi r30, 0 -/* 80266590 002634D0 3B DE FF FF */ addi r30, r30, -1 -/* 80266594 002634D4 41 81 FF D8 */ bgt lbl_8026656C -/* 80266598 002634D8 7F A3 EB 78 */ mr r3, r29 -/* 8026659C 002634DC 39 61 00 20 */ addi r11, r1, 0x20 -/* 802665A0 002634E0 48 0F BC 81 */ bl _restgpr_27 -/* 802665A4 002634E4 80 01 00 24 */ lwz r0, 0x24(r1) -/* 802665A8 002634E8 7C 08 03 A6 */ mtlr r0 -/* 802665AC 002634EC 38 21 00 20 */ addi r1, r1, 0x20 -/* 802665B0 002634F0 4E 80 00 20 */ blr - -.global cTrIt_Judge -cTrIt_Judge: -/* 802665B4 002634F4 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 802665B8 002634F8 7C 08 02 A6 */ mflr r0 -/* 802665BC 002634FC 90 01 00 24 */ stw r0, 0x24(r1) -/* 802665C0 00263500 39 61 00 20 */ addi r11, r1, 0x20 -/* 802665C4 00263504 48 0F BC 15 */ bl _savegpr_28 -/* 802665C8 00263508 7C 9C 23 78 */ mr r28, r4 -/* 802665CC 0026350C 7C BD 2B 78 */ mr r29, r5 -/* 802665D0 00263510 83 E3 00 00 */ lwz r31, 0(r3) -/* 802665D4 00263514 83 C3 00 04 */ lwz r30, 4(r3) -/* 802665D8 00263518 48 00 00 24 */ b lbl_802665FC -lbl_802665DC: -/* 802665DC 0026351C 7F E3 FB 78 */ mr r3, r31 -/* 802665E0 00263520 7F 84 E3 78 */ mr r4, r28 -/* 802665E4 00263524 7F A5 EB 78 */ mr r5, r29 -/* 802665E8 00263528 3B FF 00 0C */ addi r31, r31, 0xc -/* 802665EC 0026352C 4B FF FA AD */ bl cLsIt_Judge -/* 802665F0 00263530 28 03 00 00 */ cmplwi r3, 0 -/* 802665F4 00263534 41 82 00 08 */ beq lbl_802665FC -/* 802665F8 00263538 48 00 00 14 */ b lbl_8026660C -lbl_802665FC: -/* 802665FC 0026353C 2C 1E 00 00 */ cmpwi r30, 0 -/* 80266600 00263540 3B DE FF FF */ addi r30, r30, -1 -/* 80266604 00263544 41 81 FF D8 */ bgt lbl_802665DC -/* 80266608 00263548 38 60 00 00 */ li r3, 0 -lbl_8026660C: -/* 8026660C 0026354C 39 61 00 20 */ addi r11, r1, 0x20 -/* 80266610 00263550 48 0F BC 15 */ bl _restgpr_28 -/* 80266614 00263554 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80266618 00263558 7C 08 03 A6 */ mtlr r0 -/* 8026661C 0026355C 38 21 00 20 */ addi r1, r1, 0x20 -/* 80266620 00263560 4E 80 00 20 */ blr - diff --git a/asm/f/pc/create/f_pc_create_req.s b/asm/f/pc/create/f_pc_create_req.s deleted file mode 100644 index 59d6a5bb20..0000000000 --- a/asm/f/pc/create/f_pc_create_req.s +++ /dev/null @@ -1,273 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 80020acc - - -.global fpcCtRq_isCreatingByID -fpcCtRq_isCreatingByID: -/* 80020ACC 0001DA0C 80 63 00 0C */ lwz r3, 0xc(r3) -/* 80020AD0 0001DA10 80 63 00 3C */ lwz r3, 0x3c(r3) -/* 80020AD4 0001DA14 80 04 00 00 */ lwz r0, 0(r4) -/* 80020AD8 0001DA18 7C 03 00 50 */ subf r0, r3, r0 -/* 80020ADC 0001DA1C 7C 00 00 34 */ cntlzw r0, r0 -/* 80020AE0 0001DA20 54 03 D9 7E */ srwi r3, r0, 5 -/* 80020AE4 0001DA24 4E 80 00 20 */ blr - -.global fpcCtRq_IsCreatingByID -fpcCtRq_IsCreatingByID: -/* 80020AE8 0001DA28 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80020AEC 0001DA2C 7C 08 02 A6 */ mflr r0 -/* 80020AF0 0001DA30 90 01 00 14 */ stw r0, 0x14(r1) -/* 80020AF4 0001DA34 90 61 00 08 */ stw r3, 8(r1) -.global fpcCtRq_isCreatingByID -/* 80020AF8 0001DA38 3C 60 80 02 */ lis r3, fpcCtRq_isCreatingByID@ha -.global fpcCtRq_isCreatingByID -/* 80020AFC 0001DA3C 38 63 0A CC */ addi r3, r3, fpcCtRq_isCreatingByID@l -/* 80020B00 0001DA40 38 81 00 08 */ addi r4, r1, 8 -/* 80020B04 0001DA44 4B FF FF 01 */ bl fpcCtIt_Judge -/* 80020B08 0001DA48 30 03 FF FF */ addic r0, r3, -1 -/* 80020B0C 0001DA4C 7C 60 19 10 */ subfe r3, r0, r3 -/* 80020B10 0001DA50 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80020B14 0001DA54 7C 08 03 A6 */ mtlr r0 -/* 80020B18 0001DA58 38 21 00 10 */ addi r1, r1, 0x10 -/* 80020B1C 0001DA5C 4E 80 00 20 */ blr - -.global fpcCtRq_CreateQTo -fpcCtRq_CreateQTo: -/* 80020B20 0001DA60 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80020B24 0001DA64 7C 08 02 A6 */ mflr r0 -/* 80020B28 0001DA68 90 01 00 14 */ stw r0, 0x14(r1) -/* 80020B2C 0001DA6C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80020B30 0001DA70 7C 7F 1B 78 */ mr r31, r3 -/* 80020B34 0001DA74 48 00 03 31 */ bl fpcCtTg_CreateQTo -/* 80020B38 0001DA78 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 80020B3C 0001DA7C 48 00 0B 89 */ bl fpcLy_CreatedMesg -/* 80020B40 0001DA80 38 7F 00 18 */ addi r3, r31, 0x18 -/* 80020B44 0001DA84 48 00 0A 45 */ bl fpcLy_CancelQTo -/* 80020B48 0001DA88 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80020B4C 0001DA8C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80020B50 0001DA90 7C 08 03 A6 */ mtlr r0 -/* 80020B54 0001DA94 38 21 00 10 */ addi r1, r1, 0x10 -/* 80020B58 0001DA98 4E 80 00 20 */ blr - -.global fpcCtRq_ToCreateQ -fpcCtRq_ToCreateQ: -/* 80020B5C 0001DA9C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80020B60 0001DAA0 7C 08 02 A6 */ mflr r0 -/* 80020B64 0001DAA4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80020B68 0001DAA8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80020B6C 0001DAAC 7C 7F 1B 78 */ mr r31, r3 -/* 80020B70 0001DAB0 80 63 00 44 */ lwz r3, 0x44(r3) -/* 80020B74 0001DAB4 48 00 0B 41 */ bl fpcLy_CreatingMesg -/* 80020B78 0001DAB8 80 7F 00 44 */ lwz r3, 0x44(r31) -/* 80020B7C 0001DABC 38 9F 00 18 */ addi r4, r31, 0x18 -/* 80020B80 0001DAC0 48 00 0A 29 */ bl fpcLy_ToCancelQ -/* 80020B84 0001DAC4 7F E3 FB 78 */ mr r3, r31 -/* 80020B88 0001DAC8 48 00 02 B1 */ bl fpcCtTg_ToCreateQ -/* 80020B8C 0001DACC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80020B90 0001DAD0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80020B94 0001DAD4 7C 08 03 A6 */ mtlr r0 -/* 80020B98 0001DAD8 38 21 00 10 */ addi r1, r1, 0x10 -/* 80020B9C 0001DADC 4E 80 00 20 */ blr - -.global fpcCtRq_Delete -fpcCtRq_Delete: -/* 80020BA0 0001DAE0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80020BA4 0001DAE4 7C 08 02 A6 */ mflr r0 -/* 80020BA8 0001DAE8 90 01 00 14 */ stw r0, 0x14(r1) -/* 80020BAC 0001DAEC 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80020BB0 0001DAF0 7C 7F 1B 78 */ mr r31, r3 -/* 80020BB4 0001DAF4 4B FF FF 6D */ bl fpcCtRq_CreateQTo -/* 80020BB8 0001DAF8 80 7F 00 34 */ lwz r3, 0x34(r31) -/* 80020BBC 0001DAFC 28 03 00 00 */ cmplwi r3, 0 -/* 80020BC0 0001DB00 41 82 00 20 */ beq lbl_80020BE0 -/* 80020BC4 0001DB04 80 63 00 08 */ lwz r3, 8(r3) -/* 80020BC8 0001DB08 7F E4 FB 78 */ mr r4, r31 -/* 80020BCC 0001DB0C 48 00 18 5D */ bl fpcMtd_Method -/* 80020BD0 0001DB10 2C 03 00 00 */ cmpwi r3, 0 -/* 80020BD4 0001DB14 40 82 00 0C */ bne lbl_80020BE0 -/* 80020BD8 0001DB18 38 60 00 00 */ li r3, 0 -/* 80020BDC 0001DB1C 48 00 00 24 */ b lbl_80020C00 -lbl_80020BE0: -/* 80020BE0 0001DB20 80 7F 00 40 */ lwz r3, 0x40(r31) -/* 80020BE4 0001DB24 28 03 00 00 */ cmplwi r3, 0 -/* 80020BE8 0001DB28 41 82 00 0C */ beq lbl_80020BF4 -/* 80020BEC 0001DB2C 38 00 00 00 */ li r0, 0 -/* 80020BF0 0001DB30 90 03 00 14 */ stw r0, 0x14(r3) -lbl_80020BF4: -/* 80020BF4 0001DB34 7F E3 FB 78 */ mr r3, r31 -/* 80020BF8 0001DB38 48 24 26 69 */ bl cMl_NS_free -/* 80020BFC 0001DB3C 38 60 00 01 */ li r3, 1 -lbl_80020C00: -/* 80020C00 0001DB40 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80020C04 0001DB44 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80020C08 0001DB48 7C 08 03 A6 */ mtlr r0 -/* 80020C0C 0001DB4C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80020C10 0001DB50 4E 80 00 20 */ blr - -.global fpcCtRq_Cancel -fpcCtRq_Cancel: -/* 80020C14 0001DB54 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80020C18 0001DB58 7C 08 02 A6 */ mflr r0 -/* 80020C1C 0001DB5C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80020C20 0001DB60 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80020C24 0001DB64 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80020C28 0001DB68 41 82 00 6C */ beq lbl_80020C94 -/* 80020C2C 0001DB6C 88 1F 00 15 */ lbz r0, 0x15(r31) -/* 80020C30 0001DB70 7C 00 07 75 */ extsb. r0, r0 -/* 80020C34 0001DB74 40 82 00 60 */ bne lbl_80020C94 -/* 80020C38 0001DB78 38 00 00 01 */ li r0, 1 -/* 80020C3C 0001DB7C 98 1F 00 15 */ stb r0, 0x15(r31) -/* 80020C40 0001DB80 80 7F 00 40 */ lwz r3, 0x40(r31) -/* 80020C44 0001DB84 28 03 00 00 */ cmplwi r3, 0 -/* 80020C48 0001DB88 41 82 00 18 */ beq lbl_80020C60 -/* 80020C4C 0001DB8C 48 00 06 59 */ bl fpcDt_Delete -/* 80020C50 0001DB90 2C 03 00 00 */ cmpwi r3, 0 -/* 80020C54 0001DB94 40 82 00 0C */ bne lbl_80020C60 -/* 80020C58 0001DB98 38 60 00 00 */ li r3, 0 -/* 80020C5C 0001DB9C 48 00 00 3C */ b lbl_80020C98 -lbl_80020C60: -/* 80020C60 0001DBA0 80 7F 00 34 */ lwz r3, 0x34(r31) -/* 80020C64 0001DBA4 28 03 00 00 */ cmplwi r3, 0 -/* 80020C68 0001DBA8 41 82 00 20 */ beq lbl_80020C88 -/* 80020C6C 0001DBAC 80 63 00 04 */ lwz r3, 4(r3) -/* 80020C70 0001DBB0 7F E4 FB 78 */ mr r4, r31 -/* 80020C74 0001DBB4 48 00 17 B5 */ bl fpcMtd_Method -/* 80020C78 0001DBB8 2C 03 00 00 */ cmpwi r3, 0 -/* 80020C7C 0001DBBC 40 82 00 0C */ bne lbl_80020C88 -/* 80020C80 0001DBC0 38 60 00 00 */ li r3, 0 -/* 80020C84 0001DBC4 48 00 00 14 */ b lbl_80020C98 -lbl_80020C88: -/* 80020C88 0001DBC8 7F E3 FB 78 */ mr r3, r31 -/* 80020C8C 0001DBCC 4B FF FF 15 */ bl fpcCtRq_Delete -/* 80020C90 0001DBD0 48 00 00 08 */ b lbl_80020C98 -lbl_80020C94: -/* 80020C94 0001DBD4 38 60 00 01 */ li r3, 1 -lbl_80020C98: -/* 80020C98 0001DBD8 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80020C9C 0001DBDC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80020CA0 0001DBE0 7C 08 03 A6 */ mtlr r0 -/* 80020CA4 0001DBE4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80020CA8 0001DBE8 4E 80 00 20 */ blr - -.global fpcCtRq_IsDoing -fpcCtRq_IsDoing: -/* 80020CAC 0001DBEC 28 03 00 00 */ cmplwi r3, 0 -/* 80020CB0 0001DBF0 41 82 00 10 */ beq lbl_80020CC0 -/* 80020CB4 0001DBF4 88 63 00 14 */ lbz r3, 0x14(r3) -/* 80020CB8 0001DBF8 7C 63 07 74 */ extsb r3, r3 -/* 80020CBC 0001DBFC 4E 80 00 20 */ blr -lbl_80020CC0: -/* 80020CC0 0001DC00 38 60 00 00 */ li r3, 0 -/* 80020CC4 0001DC04 4E 80 00 20 */ blr -.global fpcCtRq_Do -fpcCtRq_Do: -/* 80020CC8 0001DC08 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80020CCC 0001DC0C 7C 08 02 A6 */ mflr r0 -/* 80020CD0 0001DC10 90 01 00 14 */ stw r0, 0x14(r1) -/* 80020CD4 0001DC14 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80020CD8 0001DC18 7C 7F 1B 78 */ mr r31, r3 -/* 80020CDC 0001DC1C 38 A0 00 04 */ li r5, 4 -/* 80020CE0 0001DC20 80 83 00 34 */ lwz r4, 0x34(r3) -/* 80020CE4 0001DC24 28 04 00 00 */ cmplwi r4, 0 -/* 80020CE8 0001DC28 41 82 00 2C */ beq lbl_80020D14 -/* 80020CEC 0001DC2C 81 84 00 00 */ lwz r12, 0(r4) -/* 80020CF0 0001DC30 28 0C 00 00 */ cmplwi r12, 0 -/* 80020CF4 0001DC34 41 82 00 20 */ beq lbl_80020D14 -/* 80020CF8 0001DC38 38 00 00 01 */ li r0, 1 -/* 80020CFC 0001DC3C 98 1F 00 14 */ stb r0, 0x14(r31) -/* 80020D00 0001DC40 7D 89 03 A6 */ mtctr r12 -/* 80020D04 0001DC44 4E 80 04 21 */ bctrl -/* 80020D08 0001DC48 7C 65 1B 78 */ mr r5, r3 -/* 80020D0C 0001DC4C 38 00 00 00 */ li r0, 0 -/* 80020D10 0001DC50 98 1F 00 14 */ stb r0, 0x14(r31) -lbl_80020D14: -/* 80020D14 0001DC54 2C 05 00 04 */ cmpwi r5, 4 -/* 80020D18 0001DC58 41 82 00 20 */ beq lbl_80020D38 -/* 80020D1C 0001DC5C 40 80 00 10 */ bge lbl_80020D2C -/* 80020D20 0001DC60 2C 05 00 03 */ cmpwi r5, 3 -/* 80020D24 0001DC64 40 80 00 3C */ bge lbl_80020D60 -/* 80020D28 0001DC68 48 00 00 44 */ b lbl_80020D6C -lbl_80020D2C: -/* 80020D2C 0001DC6C 2C 05 00 06 */ cmpwi r5, 6 -/* 80020D30 0001DC70 40 80 00 3C */ bge lbl_80020D6C -/* 80020D34 0001DC74 48 00 00 2C */ b lbl_80020D60 -lbl_80020D38: -/* 80020D38 0001DC78 80 7F 00 40 */ lwz r3, 0x40(r31) -/* 80020D3C 0001DC7C 48 00 07 D5 */ bl fpcEx_ToExecuteQ -/* 80020D40 0001DC80 2C 03 00 00 */ cmpwi r3, 0 -/* 80020D44 0001DC84 40 82 00 10 */ bne lbl_80020D54 -/* 80020D48 0001DC88 7F E3 FB 78 */ mr r3, r31 -/* 80020D4C 0001DC8C 4B FF FE C9 */ bl fpcCtRq_Cancel -/* 80020D50 0001DC90 48 00 00 20 */ b lbl_80020D70 -lbl_80020D54: -/* 80020D54 0001DC94 7F E3 FB 78 */ mr r3, r31 -/* 80020D58 0001DC98 4B FF FE 49 */ bl fpcCtRq_Delete -/* 80020D5C 0001DC9C 48 00 00 14 */ b lbl_80020D70 -lbl_80020D60: -/* 80020D60 0001DCA0 7F E3 FB 78 */ mr r3, r31 -/* 80020D64 0001DCA4 4B FF FE B1 */ bl fpcCtRq_Cancel -/* 80020D68 0001DCA8 48 00 00 08 */ b lbl_80020D70 -lbl_80020D6C: -/* 80020D6C 0001DCAC 38 60 00 01 */ li r3, 1 -lbl_80020D70: -/* 80020D70 0001DCB0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80020D74 0001DCB4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80020D78 0001DCB8 7C 08 03 A6 */ mtlr r0 -/* 80020D7C 0001DCBC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80020D80 0001DCC0 4E 80 00 20 */ blr - -.global fpcCtRq_Handler -fpcCtRq_Handler: -/* 80020D84 0001DCC4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80020D88 0001DCC8 7C 08 02 A6 */ mflr r0 -/* 80020D8C 0001DCCC 90 01 00 14 */ stw r0, 0x14(r1) -.global fpcCtRq_Do -/* 80020D90 0001DCD0 3C 60 80 02 */ lis r3, fpcCtRq_Do@ha -.global fpcCtRq_Do -/* 80020D94 0001DCD4 38 63 0C C8 */ addi r3, r3, fpcCtRq_Do@l -/* 80020D98 0001DCD8 38 80 00 00 */ li r4, 0 -/* 80020D9C 0001DCDC 4B FF FC 2D */ bl fpcCtIt_Method -/* 80020DA0 0001DCE0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80020DA4 0001DCE4 7C 08 03 A6 */ mtlr r0 -/* 80020DA8 0001DCE8 38 21 00 10 */ addi r1, r1, 0x10 -/* 80020DAC 0001DCEC 4E 80 00 20 */ blr - -.global fpcCtRq_Create -fpcCtRq_Create: -/* 80020DB0 0001DCF0 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80020DB4 0001DCF4 7C 08 02 A6 */ mflr r0 -/* 80020DB8 0001DCF8 90 01 00 24 */ stw r0, 0x24(r1) -/* 80020DBC 0001DCFC 39 61 00 20 */ addi r11, r1, 0x20 -/* 80020DC0 0001DD00 48 34 14 1D */ bl _savegpr_29 -/* 80020DC4 0001DD04 7C 7D 1B 78 */ mr r29, r3 -/* 80020DC8 0001DD08 7C BE 2B 78 */ mr r30, r5 -/* 80020DCC 0001DD0C 38 60 FF FC */ li r3, -4 -/* 80020DD0 0001DD10 48 24 24 59 */ bl cMl_NS_memalignB -/* 80020DD4 0001DD14 7C 7F 1B 79 */ or. r31, r3, r3 -/* 80020DD8 0001DD18 41 82 00 44 */ beq lbl_80020E1C -/* 80020DDC 0001DD1C 7F E4 FB 78 */ mr r4, r31 -/* 80020DE0 0001DD20 48 00 00 A5 */ bl fpcCtTg_Init -/* 80020DE4 0001DD24 38 7F 00 18 */ addi r3, r31, 0x18 -/* 80020DE8 0001DD28 3C 80 80 02 */ lis r4, fpcCtRq_Cancel@ha -/* 80020DEC 0001DD2C 38 84 0C 14 */ addi r4, r4, fpcCtRq_Cancel@l -/* 80020DF0 0001DD30 7F E5 FB 78 */ mr r5, r31 -/* 80020DF4 0001DD34 48 00 2A 05 */ bl fpcMtdTg_Init -/* 80020DF8 0001DD38 93 BF 00 44 */ stw r29, 0x44(r31) -/* 80020DFC 0001DD3C 93 DF 00 34 */ stw r30, 0x34(r31) -/* 80020E00 0001DD40 4B FF F8 9D */ bl fpcBs_MakeOfId -/* 80020E04 0001DD44 90 7F 00 3C */ stw r3, 0x3c(r31) -/* 80020E08 0001DD48 38 00 00 00 */ li r0, 0 -/* 80020E0C 0001DD4C 90 1F 00 40 */ stw r0, 0x40(r31) -/* 80020E10 0001DD50 98 1F 00 15 */ stb r0, 0x15(r31) -/* 80020E14 0001DD54 7F E3 FB 78 */ mr r3, r31 -/* 80020E18 0001DD58 4B FF FD 45 */ bl fpcCtRq_ToCreateQ -lbl_80020E1C: -/* 80020E1C 0001DD5C 7F E3 FB 78 */ mr r3, r31 -/* 80020E20 0001DD60 39 61 00 20 */ addi r11, r1, 0x20 -/* 80020E24 0001DD64 48 34 14 05 */ bl _restgpr_29 -/* 80020E28 0001DD68 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80020E2C 0001DD6C 7C 08 03 A6 */ mtlr r0 -/* 80020E30 0001DD70 38 21 00 20 */ addi r1, r1, 0x20 -/* 80020E34 0001DD74 4E 80 00 20 */ blr - diff --git a/asm/f/pc/create/f_pc_create_tag.s b/asm/f/pc/create/f_pc_create_tag.s deleted file mode 100644 index d5897bf225..0000000000 --- a/asm/f/pc/create/f_pc_create_tag.s +++ /dev/null @@ -1,42 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 80020e38 - - -.global fpcCtTg_ToCreateQ -fpcCtTg_ToCreateQ: -/* 80020E38 0001DD78 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80020E3C 0001DD7C 7C 08 02 A6 */ mflr r0 -/* 80020E40 0001DD80 90 01 00 14 */ stw r0, 0x14(r1) -/* 80020E44 0001DD84 7C 64 1B 78 */ mr r4, r3 -/* 80020E48 0001DD88 3C 60 80 3A */ lis r3, lbl_803A3990@ha -/* 80020E4C 0001DD8C 38 63 39 90 */ addi r3, r3, lbl_803A3990@l -/* 80020E50 0001DD90 48 24 5B 95 */ bl cTg_Addition -/* 80020E54 0001DD94 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80020E58 0001DD98 7C 08 03 A6 */ mtlr r0 -/* 80020E5C 0001DD9C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80020E60 0001DDA0 4E 80 00 20 */ blr - -.global fpcCtTg_CreateQTo -fpcCtTg_CreateQTo: -/* 80020E64 0001DDA4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80020E68 0001DDA8 7C 08 02 A6 */ mflr r0 -/* 80020E6C 0001DDAC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80020E70 0001DDB0 48 24 5B 35 */ bl cTg_SingleCut -/* 80020E74 0001DDB4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80020E78 0001DDB8 7C 08 03 A6 */ mtlr r0 -/* 80020E7C 0001DDBC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80020E80 0001DDC0 4E 80 00 20 */ blr - -.global fpcCtTg_Init -fpcCtTg_Init: -/* 80020E84 0001DDC4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80020E88 0001DDC8 7C 08 02 A6 */ mflr r0 -/* 80020E8C 0001DDCC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80020E90 0001DDD0 48 24 5B A5 */ bl cTg_Create -/* 80020E94 0001DDD4 38 60 00 01 */ li r3, 1 -/* 80020E98 0001DDD8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80020E9C 0001DDDC 7C 08 03 A6 */ mtlr r0 -/* 80020EA0 0001DDE0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80020EA4 0001DDE4 4E 80 00 20 */ blr - diff --git a/asm/f/pc/delete/f_pc_delete_tag.s b/asm/f/pc/delete/f_pc_delete_tag.s deleted file mode 100644 index 2c7097a53e..0000000000 --- a/asm/f/pc/delete/f_pc_delete_tag.s +++ /dev/null @@ -1,90 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 80020f30 - - -.global fpcDtTg_IsEmpty -fpcDtTg_IsEmpty: -/* 80020F30 0001DE70 3C 60 80 3A */ lis r3, lbl_803A39A0@ha -/* 80020F34 0001DE74 38 63 39 A0 */ addi r3, r3, lbl_803A39A0@l -/* 80020F38 0001DE78 80 03 00 08 */ lwz r0, 8(r3) -/* 80020F3C 0001DE7C 7C 00 00 34 */ cntlzw r0, r0 -/* 80020F40 0001DE80 54 03 D9 7E */ srwi r3, r0, 5 -/* 80020F44 0001DE84 4E 80 00 20 */ blr - -.global fpcDtTg_ToDeleteQ -fpcDtTg_ToDeleteQ: -/* 80020F48 0001DE88 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80020F4C 0001DE8C 7C 08 02 A6 */ mflr r0 -/* 80020F50 0001DE90 90 01 00 14 */ stw r0, 0x14(r1) -/* 80020F54 0001DE94 7C 64 1B 78 */ mr r4, r3 -/* 80020F58 0001DE98 38 00 00 01 */ li r0, 1 -/* 80020F5C 0001DE9C B0 03 00 18 */ sth r0, 0x18(r3) -/* 80020F60 0001DEA0 3C 60 80 3A */ lis r3, lbl_803A39A0@ha -/* 80020F64 0001DEA4 38 63 39 A0 */ addi r3, r3, lbl_803A39A0@l -/* 80020F68 0001DEA8 48 24 5A 7D */ bl cTg_Addition -/* 80020F6C 0001DEAC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80020F70 0001DEB0 7C 08 03 A6 */ mtlr r0 -/* 80020F74 0001DEB4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80020F78 0001DEB8 4E 80 00 20 */ blr - -.global fpcDtTg_DeleteQTo -fpcDtTg_DeleteQTo: -/* 80020F7C 0001DEBC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80020F80 0001DEC0 7C 08 02 A6 */ mflr r0 -/* 80020F84 0001DEC4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80020F88 0001DEC8 48 24 5A 1D */ bl cTg_SingleCut -/* 80020F8C 0001DECC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80020F90 0001DED0 7C 08 03 A6 */ mtlr r0 -/* 80020F94 0001DED4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80020F98 0001DED8 4E 80 00 20 */ blr -.global fpcDtTg_Do -fpcDtTg_Do: -/* 80020F9C 0001DEDC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80020FA0 0001DEE0 7C 08 02 A6 */ mflr r0 -/* 80020FA4 0001DEE4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80020FA8 0001DEE8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80020FAC 0001DEEC 93 C1 00 08 */ stw r30, 8(r1) -/* 80020FB0 0001DEF0 7C 7E 1B 78 */ mr r30, r3 -/* 80020FB4 0001DEF4 7C 9F 23 78 */ mr r31, r4 -/* 80020FB8 0001DEF8 A8 83 00 18 */ lha r4, 0x18(r3) -/* 80020FBC 0001DEFC 2C 04 00 00 */ cmpwi r4, 0 -/* 80020FC0 0001DF00 41 81 00 38 */ bgt lbl_80020FF8 -/* 80020FC4 0001DF04 4B FF FF B9 */ bl fpcDtTg_DeleteQTo -/* 80020FC8 0001DF08 80 7E 00 0C */ lwz r3, 0xc(r30) -/* 80020FCC 0001DF0C 7F EC FB 78 */ mr r12, r31 -/* 80020FD0 0001DF10 7D 89 03 A6 */ mtctr r12 -/* 80020FD4 0001DF14 4E 80 04 21 */ bctrl -/* 80020FD8 0001DF18 2C 03 00 00 */ cmpwi r3, 0 -/* 80020FDC 0001DF1C 40 82 00 14 */ bne lbl_80020FF0 -/* 80020FE0 0001DF20 7F C3 F3 78 */ mr r3, r30 -/* 80020FE4 0001DF24 4B FF FF 65 */ bl fpcDtTg_ToDeleteQ -/* 80020FE8 0001DF28 38 60 00 00 */ li r3, 0 -/* 80020FEC 0001DF2C 48 00 00 18 */ b lbl_80021004 -lbl_80020FF0: -/* 80020FF0 0001DF30 38 60 00 01 */ li r3, 1 -/* 80020FF4 0001DF34 48 00 00 10 */ b lbl_80021004 -lbl_80020FF8: -/* 80020FF8 0001DF38 38 04 FF FF */ addi r0, r4, -1 -/* 80020FFC 0001DF3C B0 1E 00 18 */ sth r0, 0x18(r30) -/* 80021000 0001DF40 38 60 00 00 */ li r3, 0 -lbl_80021004: -/* 80021004 0001DF44 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80021008 0001DF48 83 C1 00 08 */ lwz r30, 8(r1) -/* 8002100C 0001DF4C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80021010 0001DF50 7C 08 03 A6 */ mtlr r0 -/* 80021014 0001DF54 38 21 00 10 */ addi r1, r1, 0x10 -/* 80021018 0001DF58 4E 80 00 20 */ blr - -.global fpcDtTg_Init -fpcDtTg_Init: -/* 8002101C 0001DF5C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80021020 0001DF60 7C 08 02 A6 */ mflr r0 -/* 80021024 0001DF64 90 01 00 14 */ stw r0, 0x14(r1) -/* 80021028 0001DF68 48 24 5A 0D */ bl cTg_Create -/* 8002102C 0001DF6C 38 60 00 01 */ li r3, 1 -/* 80021030 0001DF70 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80021034 0001DF74 7C 08 03 A6 */ mtlr r0 -/* 80021038 0001DF78 38 21 00 10 */ addi r1, r1, 0x10 -/* 8002103C 0001DF7C 4E 80 00 20 */ blr - diff --git a/asm/f/pc/draw/f_pc_draw_priority.s b/asm/f/pc/draw/f_pc_draw_priority.s deleted file mode 100644 index c4ad904deb..0000000000 --- a/asm/f/pc/draw/f_pc_draw_priority.s +++ /dev/null @@ -1,26 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 80021308 - - -.global fpcDwPi_Get -fpcDwPi_Get: -/* 80021308 0001E248 A8 63 00 00 */ lha r3, 0(r3) -/* 8002130C 0001E24C 4E 80 00 20 */ blr - -.global fpcDwPi_Set -fpcDwPi_Set: -/* 80021310 0001E250 B0 83 00 00 */ sth r4, 0(r3) -/* 80021314 0001E254 4E 80 00 20 */ blr - -.global fpcDwPi_Init -fpcDwPi_Init: -/* 80021318 0001E258 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8002131C 0001E25C 7C 08 02 A6 */ mflr r0 -/* 80021320 0001E260 90 01 00 14 */ stw r0, 0x14(r1) -/* 80021324 0001E264 4B FF FF ED */ bl fpcDwPi_Set -/* 80021328 0001E268 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8002132C 0001E26C 7C 08 03 A6 */ mtlr r0 -/* 80021330 0001E270 38 21 00 10 */ addi r1, r1, 0x10 -/* 80021334 0001E274 4E 80 00 20 */ blr - diff --git a/asm/f/pc/f_pc_creator.s b/asm/f/pc/f_pc_creator.s deleted file mode 100644 index 1c8d3dd7ae..0000000000 --- a/asm/f/pc/f_pc_creator.s +++ /dev/null @@ -1,51 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 80020ea8 - - -.global fpcCt_IsCreatingByID -fpcCt_IsCreatingByID: -/* 80020EA8 0001DDE8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80020EAC 0001DDEC 7C 08 02 A6 */ mflr r0 -/* 80020EB0 0001DDF0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80020EB4 0001DDF4 4B FF FC 35 */ bl fpcCtRq_IsCreatingByID -/* 80020EB8 0001DDF8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80020EBC 0001DDFC 7C 08 03 A6 */ mtlr r0 -/* 80020EC0 0001DE00 38 21 00 10 */ addi r1, r1, 0x10 -/* 80020EC4 0001DE04 4E 80 00 20 */ blr - -.global fpcCt_IsDoing -fpcCt_IsDoing: -/* 80020EC8 0001DE08 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80020ECC 0001DE0C 7C 08 02 A6 */ mflr r0 -/* 80020ED0 0001DE10 90 01 00 14 */ stw r0, 0x14(r1) -/* 80020ED4 0001DE14 80 63 00 14 */ lwz r3, 0x14(r3) -/* 80020ED8 0001DE18 4B FF FD D5 */ bl fpcCtRq_IsDoing -/* 80020EDC 0001DE1C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80020EE0 0001DE20 7C 08 03 A6 */ mtlr r0 -/* 80020EE4 0001DE24 38 21 00 10 */ addi r1, r1, 0x10 -/* 80020EE8 0001DE28 4E 80 00 20 */ blr - -.global fpcCt_Abort -fpcCt_Abort: -/* 80020EEC 0001DE2C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80020EF0 0001DE30 7C 08 02 A6 */ mflr r0 -/* 80020EF4 0001DE34 90 01 00 14 */ stw r0, 0x14(r1) -/* 80020EF8 0001DE38 80 63 00 14 */ lwz r3, 0x14(r3) -/* 80020EFC 0001DE3C 4B FF FD 19 */ bl fpcCtRq_Cancel -/* 80020F00 0001DE40 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80020F04 0001DE44 7C 08 03 A6 */ mtlr r0 -/* 80020F08 0001DE48 38 21 00 10 */ addi r1, r1, 0x10 -/* 80020F0C 0001DE4C 4E 80 00 20 */ blr - -.global fpcCt_Handler -fpcCt_Handler: -/* 80020F10 0001DE50 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80020F14 0001DE54 7C 08 02 A6 */ mflr r0 -/* 80020F18 0001DE58 90 01 00 14 */ stw r0, 0x14(r1) -/* 80020F1C 0001DE5C 4B FF FE 69 */ bl fpcCtRq_Handler -/* 80020F20 0001DE60 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80020F24 0001DE64 7C 08 03 A6 */ mtlr r0 -/* 80020F28 0001DE68 38 21 00 10 */ addi r1, r1, 0x10 -/* 80020F2C 0001DE6C 4E 80 00 20 */ blr - diff --git a/asm/f/pc/f_pc_deletor.s b/asm/f/pc/f_pc_deletor.s index f3b9b10df1..7a6a0f08c3 100644 --- a/asm/f/pc/f_pc_deletor.s +++ b/asm/f/pc/f_pc_deletor.s @@ -187,35 +187,3 @@ lbl_8002128C: /* 8002129C 0001E1DC 38 21 00 10 */ addi r1, r1, 0x10 /* 800212A0 0001E1E0 4E 80 00 20 */ blr -.global fpcDt_Delete -fpcDt_Delete: -/* 800212A4 0001E1E4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800212A8 0001E1E8 7C 08 02 A6 */ mflr r0 -/* 800212AC 0001E1EC 90 01 00 14 */ stw r0, 0x14(r1) -/* 800212B0 0001E1F0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800212B4 0001E1F4 7C 7F 1B 79 */ or. r31, r3, r3 -/* 800212B8 0001E1F8 41 82 00 38 */ beq lbl_800212F0 -/* 800212BC 0001E1FC 4B FF FC 0D */ bl fpcCt_IsDoing -/* 800212C0 0001E200 2C 03 00 01 */ cmpwi r3, 1 -/* 800212C4 0001E204 40 82 00 0C */ bne lbl_800212D0 -/* 800212C8 0001E208 38 60 00 00 */ li r3, 0 -/* 800212CC 0001E20C 48 00 00 28 */ b lbl_800212F4 -lbl_800212D0: -/* 800212D0 0001E210 88 1F 00 0C */ lbz r0, 0xc(r31) -/* 800212D4 0001E214 2C 00 00 03 */ cmpwi r0, 3 -/* 800212D8 0001E218 40 82 00 0C */ bne lbl_800212E4 -/* 800212DC 0001E21C 38 60 00 00 */ li r3, 0 -/* 800212E0 0001E220 48 00 00 14 */ b lbl_800212F4 -lbl_800212E4: -/* 800212E4 0001E224 7F E3 FB 78 */ mr r3, r31 -/* 800212E8 0001E228 4B FF FE A1 */ bl fpcDt_ToDeleteQ -/* 800212EC 0001E22C 48 00 00 08 */ b lbl_800212F4 -lbl_800212F0: -/* 800212F0 0001E230 38 60 00 01 */ li r3, 1 -lbl_800212F4: -/* 800212F4 0001E234 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800212F8 0001E238 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800212FC 0001E23C 7C 08 03 A6 */ mtlr r0 -/* 80021300 0001E240 38 21 00 10 */ addi r1, r1, 0x10 -/* 80021304 0001E244 4E 80 00 20 */ blr - diff --git a/asm/f/pc/f_pc_executor.s b/asm/f/pc/f_pc_executor.s deleted file mode 100644 index dfdae1c2d6..0000000000 --- a/asm/f/pc/f_pc_executor.s +++ /dev/null @@ -1,193 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 80021338 - - -.global fpcEx_Search -fpcEx_Search: -/* 80021338 0001E278 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8002133C 0001E27C 7C 08 02 A6 */ mflr r0 -/* 80021340 0001E280 90 01 00 14 */ stw r0, 0x14(r1) -/* 80021344 0001E284 48 00 09 1D */ bl fpcLyIt_AllJudge -/* 80021348 0001E288 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8002134C 0001E28C 7C 08 03 A6 */ mtlr r0 -/* 80021350 0001E290 38 21 00 10 */ addi r1, r1, 0x10 -/* 80021354 0001E294 4E 80 00 20 */ blr - -.global fpcEx_SearchByID -fpcEx_SearchByID: -/* 80021358 0001E298 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8002135C 0001E29C 7C 08 02 A6 */ mflr r0 -/* 80021360 0001E2A0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80021364 0001E2A4 90 61 00 08 */ stw r3, 8(r1) -/* 80021368 0001E2A8 38 03 00 02 */ addi r0, r3, 2 -/* 8002136C 0001E2AC 28 00 00 01 */ cmplwi r0, 1 -/* 80021370 0001E2B0 41 81 00 0C */ bgt lbl_8002137C -/* 80021374 0001E2B4 38 60 00 00 */ li r3, 0 -/* 80021378 0001E2B8 48 00 00 14 */ b lbl_8002138C -lbl_8002137C: -.global fpcSch_JudgeByID -/* 8002137C 0001E2BC 3C 60 80 02 */ lis r3, fpcSch_JudgeByID@ha -.global fpcSch_JudgeByID -/* 80021380 0001E2C0 38 63 35 90 */ addi r3, r3, fpcSch_JudgeByID@l -/* 80021384 0001E2C4 38 81 00 08 */ addi r4, r1, 8 -/* 80021388 0001E2C8 4B FF FF B1 */ bl fpcEx_Search -lbl_8002138C: -/* 8002138C 0001E2CC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80021390 0001E2D0 7C 08 03 A6 */ mtlr r0 -/* 80021394 0001E2D4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80021398 0001E2D8 4E 80 00 20 */ blr - -.global fpcEx_IsExist -fpcEx_IsExist: -/* 8002139C 0001E2DC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800213A0 0001E2E0 7C 08 02 A6 */ mflr r0 -/* 800213A4 0001E2E4 90 01 00 14 */ stw r0, 0x14(r1) -/* 800213A8 0001E2E8 4B FF FF B1 */ bl fpcEx_SearchByID -/* 800213AC 0001E2EC 30 03 FF FF */ addic r0, r3, -1 -/* 800213B0 0001E2F0 7C 60 19 10 */ subfe r3, r0, r3 -/* 800213B4 0001E2F4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800213B8 0001E2F8 7C 08 03 A6 */ mtlr r0 -/* 800213BC 0001E2FC 38 21 00 10 */ addi r1, r1, 0x10 -/* 800213C0 0001E300 4E 80 00 20 */ blr - -.global fpcEx_Execute -fpcEx_Execute: -/* 800213C4 0001E304 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800213C8 0001E308 7C 08 02 A6 */ mflr r0 -/* 800213CC 0001E30C 90 01 00 14 */ stw r0, 0x14(r1) -/* 800213D0 0001E310 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800213D4 0001E314 7C 7F 1B 78 */ mr r31, r3 -/* 800213D8 0001E318 88 03 00 0C */ lbz r0, 0xc(r3) -/* 800213DC 0001E31C 2C 00 00 02 */ cmpwi r0, 2 -/* 800213E0 0001E320 40 82 00 14 */ bne lbl_800213F4 -/* 800213E4 0001E324 38 80 00 01 */ li r4, 1 -/* 800213E8 0001E328 48 00 24 5D */ bl fpcPause_IsEnable -/* 800213EC 0001E32C 2C 03 00 01 */ cmpwi r3, 1 -/* 800213F0 0001E330 40 82 00 0C */ bne lbl_800213FC -lbl_800213F4: -/* 800213F4 0001E334 38 60 00 00 */ li r3, 0 -/* 800213F8 0001E338 48 00 00 0C */ b lbl_80021404 -lbl_800213FC: -/* 800213FC 0001E33C 7F E3 FB 78 */ mr r3, r31 -/* 80021400 0001E340 4B FF F2 C5 */ bl fpcBs_Execute -lbl_80021404: -/* 80021404 0001E344 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80021408 0001E348 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8002140C 0001E34C 7C 08 03 A6 */ mtlr r0 -/* 80021410 0001E350 38 21 00 10 */ addi r1, r1, 0x10 -/* 80021414 0001E354 4E 80 00 20 */ blr - -.global fpcEx_ToLineQ -fpcEx_ToLineQ: -/* 80021418 0001E358 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8002141C 0001E35C 7C 08 02 A6 */ mflr r0 -/* 80021420 0001E360 90 01 00 14 */ stw r0, 0x14(r1) -/* 80021424 0001E364 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80021428 0001E368 7C 7F 1B 78 */ mr r31, r3 -/* 8002142C 0001E36C 80 63 00 2C */ lwz r3, 0x2c(r3) -/* 80021430 0001E370 80 83 00 18 */ lwz r4, 0x18(r3) -/* 80021434 0001E374 80 03 00 0C */ lwz r0, 0xc(r3) -/* 80021438 0001E378 28 00 00 00 */ cmplwi r0, 0 -/* 8002143C 0001E37C 41 82 00 14 */ beq lbl_80021450 -/* 80021440 0001E380 38 64 00 34 */ addi r3, r4, 0x34 -/* 80021444 0001E384 48 24 54 3D */ bl cTg_IsUse -/* 80021448 0001E388 2C 03 00 01 */ cmpwi r3, 1 -/* 8002144C 0001E38C 40 82 00 60 */ bne lbl_800214AC -lbl_80021450: -/* 80021450 0001E390 38 7F 00 34 */ addi r3, r31, 0x34 -/* 80021454 0001E394 A0 9F 00 A4 */ lhz r4, 0xa4(r31) -/* 80021458 0001E398 48 00 21 DD */ bl fpcLnTg_ToQueue -/* 8002145C 0001E39C 2C 03 00 00 */ cmpwi r3, 0 -/* 80021460 0001E3A0 40 82 00 14 */ bne lbl_80021474 -/* 80021464 0001E3A4 38 7F 00 18 */ addi r3, r31, 0x18 -/* 80021468 0001E3A8 48 00 09 65 */ bl fpcLyTg_QueueTo -/* 8002146C 0001E3AC 38 60 00 00 */ li r3, 0 -/* 80021470 0001E3B0 48 00 00 40 */ b lbl_800214B0 -lbl_80021474: -/* 80021474 0001E3B4 38 00 00 02 */ li r0, 2 -/* 80021478 0001E3B8 98 1F 00 0C */ stb r0, 0xc(r31) -/* 8002147C 0001E3BC 80 6D 87 C0 */ lwz r3, lbl_80450D40-_SDA_BASE_(r13) -/* 80021480 0001E3C0 80 9F 00 B4 */ lwz r4, 0xb4(r31) -/* 80021484 0001E3C4 4B FF F1 C9 */ bl fpcBs_Is_JustOfType -/* 80021488 0001E3C8 2C 03 00 00 */ cmpwi r3, 0 -/* 8002148C 0001E3CC 41 82 00 18 */ beq lbl_800214A4 -/* 80021490 0001E3D0 38 7F 00 BC */ addi r3, r31, 0xbc -/* 80021494 0001E3D4 3C 80 80 02 */ lis r4, fpcEx_ToLineQ@ha -/* 80021498 0001E3D8 38 84 14 18 */ addi r4, r4, fpcEx_ToLineQ@l -/* 8002149C 0001E3DC 7F E5 FB 78 */ mr r5, r31 -/* 800214A0 0001E3E0 48 00 06 E9 */ bl fpcLyIt_OnlyHere -lbl_800214A4: -/* 800214A4 0001E3E4 38 60 00 01 */ li r3, 1 -/* 800214A8 0001E3E8 48 00 00 08 */ b lbl_800214B0 -lbl_800214AC: -/* 800214AC 0001E3EC 38 60 00 00 */ li r3, 0 -lbl_800214B0: -/* 800214B0 0001E3F0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800214B4 0001E3F4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800214B8 0001E3F8 7C 08 03 A6 */ mtlr r0 -/* 800214BC 0001E3FC 38 21 00 10 */ addi r1, r1, 0x10 -/* 800214C0 0001E400 4E 80 00 20 */ blr - -.global fpcEx_ExecuteQTo -fpcEx_ExecuteQTo: -/* 800214C4 0001E404 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800214C8 0001E408 7C 08 02 A6 */ mflr r0 -/* 800214CC 0001E40C 90 01 00 14 */ stw r0, 0x14(r1) -/* 800214D0 0001E410 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800214D4 0001E414 7C 7F 1B 78 */ mr r31, r3 -/* 800214D8 0001E418 38 7F 00 18 */ addi r3, r31, 0x18 -/* 800214DC 0001E41C 48 00 08 F1 */ bl fpcLyTg_QueueTo -/* 800214E0 0001E420 2C 03 00 01 */ cmpwi r3, 1 -/* 800214E4 0001E424 40 82 00 14 */ bne lbl_800214F8 -/* 800214E8 0001E428 38 00 00 03 */ li r0, 3 -/* 800214EC 0001E42C 98 1F 00 0C */ stb r0, 0xc(r31) -/* 800214F0 0001E430 38 60 00 01 */ li r3, 1 -/* 800214F4 0001E434 48 00 00 08 */ b lbl_800214FC -lbl_800214F8: -/* 800214F8 0001E438 38 60 00 00 */ li r3, 0 -lbl_800214FC: -/* 800214FC 0001E43C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80021500 0001E440 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80021504 0001E444 7C 08 03 A6 */ mtlr r0 -/* 80021508 0001E448 38 21 00 10 */ addi r1, r1, 0x10 -/* 8002150C 0001E44C 4E 80 00 20 */ blr - -.global fpcEx_ToExecuteQ -fpcEx_ToExecuteQ: -/* 80021510 0001E450 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80021514 0001E454 7C 08 02 A6 */ mflr r0 -/* 80021518 0001E458 90 01 00 14 */ stw r0, 0x14(r1) -/* 8002151C 0001E45C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80021520 0001E460 7C 7F 1B 78 */ mr r31, r3 -/* 80021524 0001E464 38 7F 00 18 */ addi r3, r31, 0x18 -/* 80021528 0001E468 80 9F 00 A0 */ lwz r4, 0xa0(r31) -/* 8002152C 0001E46C A0 BF 00 A4 */ lhz r5, 0xa4(r31) -/* 80021530 0001E470 A0 DF 00 A6 */ lhz r6, 0xa6(r31) -/* 80021534 0001E474 48 00 07 A1 */ bl fpcLyTg_ToQueue -/* 80021538 0001E478 2C 03 00 01 */ cmpwi r3, 1 -/* 8002153C 0001E47C 40 82 00 14 */ bne lbl_80021550 -/* 80021540 0001E480 7F E3 FB 78 */ mr r3, r31 -/* 80021544 0001E484 4B FF FE D5 */ bl fpcEx_ToLineQ -/* 80021548 0001E488 38 60 00 01 */ li r3, 1 -/* 8002154C 0001E48C 48 00 00 08 */ b lbl_80021554 -lbl_80021550: -/* 80021550 0001E490 38 60 00 00 */ li r3, 0 -lbl_80021554: -/* 80021554 0001E494 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80021558 0001E498 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8002155C 0001E49C 7C 08 03 A6 */ mtlr r0 -/* 80021560 0001E4A0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80021564 0001E4A4 4E 80 00 20 */ blr - -.global fpcEx_Handler -fpcEx_Handler: -/* 80021568 0001E4A8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8002156C 0001E4AC 7C 08 02 A6 */ mflr r0 -/* 80021570 0001E4B0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80021574 0001E4B4 48 00 21 B5 */ bl fpcLnIt_Queue -/* 80021578 0001E4B8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8002157C 0001E4BC 7C 08 03 A6 */ mtlr r0 -/* 80021580 0001E4C0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80021584 0001E4C4 4E 80 00 20 */ blr - diff --git a/asm/f/pc/f_pc_leaf.s b/asm/f/pc/f_pc_leaf.s index 4b30383c1d..f6577a657f 100644 --- a/asm/f/pc/f_pc_leaf.s +++ b/asm/f/pc/f_pc_leaf.s @@ -2,30 +2,8 @@ .section .text, "ax" # 80021a00 - -.global fpcLf_GetPriority -fpcLf_GetPriority: -/* 80021A00 0001E940 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80021A04 0001E944 7C 08 02 A6 */ mflr r0 -/* 80021A08 0001E948 90 01 00 14 */ stw r0, 0x14(r1) -/* 80021A0C 0001E94C 38 63 00 BE */ addi r3, r3, 0xbe -/* 80021A10 0001E950 4B FF F8 F9 */ bl fpcDwPi_Get -/* 80021A14 0001E954 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80021A18 0001E958 7C 08 03 A6 */ mtlr r0 -/* 80021A1C 0001E95C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80021A20 0001E960 4E 80 00 20 */ blr - -.global fpcLf_DrawMethod -fpcLf_DrawMethod: -/* 80021A24 0001E964 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80021A28 0001E968 7C 08 02 A6 */ mflr r0 -/* 80021A2C 0001E96C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80021A30 0001E970 80 63 00 10 */ lwz r3, 0x10(r3) -/* 80021A34 0001E974 48 00 09 F5 */ bl fpcMtd_Method -/* 80021A38 0001E978 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80021A3C 0001E97C 7C 08 03 A6 */ mtlr r0 -/* 80021A40 0001E980 38 21 00 10 */ addi r1, r1, 0x10 -/* 80021A44 0001E984 4E 80 00 20 */ blr +.global fpcLf_Draw +fpcLf_Draw: /* 80021A48 0001E988 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80021A4C 0001E98C 7C 08 02 A6 */ mflr r0 /* 80021A50 0001E990 90 01 00 14 */ stw r0, 0x14(r1) @@ -40,7 +18,10 @@ lbl_80021A70: /* 80021A70 0001E9B0 80 01 00 14 */ lwz r0, 0x14(r1) /* 80021A74 0001E9B4 7C 08 03 A6 */ mtlr r0 /* 80021A78 0001E9B8 38 21 00 10 */ addi r1, r1, 0x10 -/* 80021A7C 0001E9BC 4E 80 00 20 */ blr +/* 80021A7C 0001E9BC 4E 80 00 20 */ blr + +.global fpcLf_Execute +fpcLf_Execute: /* 80021A80 0001E9C0 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80021A84 0001E9C4 7C 08 02 A6 */ mflr r0 /* 80021A88 0001E9C8 90 01 00 14 */ stw r0, 0x14(r1) @@ -50,7 +31,10 @@ lbl_80021A70: /* 80021A98 0001E9D8 80 01 00 14 */ lwz r0, 0x14(r1) /* 80021A9C 0001E9DC 7C 08 03 A6 */ mtlr r0 /* 80021AA0 0001E9E0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80021AA4 0001E9E4 4E 80 00 20 */ blr +/* 80021AA4 0001E9E4 4E 80 00 20 */ blr + +.global fpcLf_IsDelete +fpcLf_IsDelete: /* 80021AA8 0001E9E8 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80021AAC 0001E9EC 7C 08 02 A6 */ mflr r0 /* 80021AB0 0001E9F0 90 01 00 14 */ stw r0, 0x14(r1) @@ -60,7 +44,10 @@ lbl_80021A70: /* 80021AC0 0001EA00 80 01 00 14 */ lwz r0, 0x14(r1) /* 80021AC4 0001EA04 7C 08 03 A6 */ mtlr r0 /* 80021AC8 0001EA08 38 21 00 10 */ addi r1, r1, 0x10 -/* 80021ACC 0001EA0C 4E 80 00 20 */ blr +/* 80021ACC 0001EA0C 4E 80 00 20 */ blr + +.global fpcLf_Delete +fpcLf_Delete: /* 80021AD0 0001EA10 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80021AD4 0001EA14 7C 08 02 A6 */ mflr r0 /* 80021AD8 0001EA18 90 01 00 14 */ stw r0, 0x14(r1) @@ -78,7 +65,10 @@ lbl_80021B00: /* 80021B04 0001EA44 80 01 00 14 */ lwz r0, 0x14(r1) /* 80021B08 0001EA48 7C 08 03 A6 */ mtlr r0 /* 80021B0C 0001EA4C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80021B10 0001EA50 4E 80 00 20 */ blr +/* 80021B10 0001EA50 4E 80 00 20 */ blr + +.global fpcLf_Create +fpcLf_Create: /* 80021B14 0001EA54 94 21 FF F0 */ stwu r1, -0x10(r1) /* 80021B18 0001EA58 7C 08 02 A6 */ mflr r0 /* 80021B1C 0001EA5C 90 01 00 14 */ stw r0, 0x14(r1) diff --git a/asm/f/pc/f_pc_line.s b/asm/f/pc/f_pc_line.s deleted file mode 100644 index 1db7091db8..0000000000 --- a/asm/f/pc/f_pc_line.s +++ /dev/null @@ -1,30 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 80021f64 - - -.global fpcLn_Create -fpcLn_Create: -/* 80021F64 0001EEA4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80021F68 0001EEA8 7C 08 02 A6 */ mflr r0 -/* 80021F6C 0001EEAC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80021F70 0001EEB0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80021F74 0001EEB4 93 C1 00 08 */ stw r30, 8(r1) -/* 80021F78 0001EEB8 3C 60 80 3F */ lis r3, lbl_803F4CF0@ha -/* 80021F7C 0001EEBC 38 03 4C F0 */ addi r0, r3, lbl_803F4CF0@l -/* 80021F80 0001EEC0 7C 1E 03 78 */ mr r30, r0 -/* 80021F84 0001EEC4 3B E0 00 0F */ li r31, 0xf -lbl_80021F88: -/* 80021F88 0001EEC8 7F C3 F3 78 */ mr r3, r30 -/* 80021F8C 0001EECC 3B DE 00 0C */ addi r30, r30, 0xc -/* 80021F90 0001EED0 48 24 40 B1 */ bl cLs_Create -/* 80021F94 0001EED4 2C 1F 00 00 */ cmpwi r31, 0 -/* 80021F98 0001EED8 3B FF FF FF */ addi r31, r31, -1 -/* 80021F9C 0001EEDC 41 81 FF EC */ bgt lbl_80021F88 -/* 80021FA0 0001EEE0 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80021FA4 0001EEE4 83 C1 00 08 */ lwz r30, 8(r1) -/* 80021FA8 0001EEE8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80021FAC 0001EEEC 7C 08 03 A6 */ mtlr r0 -/* 80021FB0 0001EEF0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80021FB4 0001EEF4 4E 80 00 20 */ blr - diff --git a/asm/f/pc/f_pc_load.s b/asm/f/pc/f_pc_load.s deleted file mode 100644 index 42492aa12c..0000000000 --- a/asm/f/pc/f_pc_load.s +++ /dev/null @@ -1,81 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 80021fb8 - - -.global fpcLd_Use -fpcLd_Use: -/* 80021FB8 0001EEF8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80021FBC 0001EEFC 7C 08 02 A6 */ mflr r0 -/* 80021FC0 0001EF00 90 01 00 14 */ stw r0, 0x14(r1) -/* 80021FC4 0001EF04 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80021FC8 0001EF08 7C 7F 1B 78 */ mr r31, r3 -/* 80021FCC 0001EF0C 48 00 00 3D */ bl fpcLd_IsLoaded -/* 80021FD0 0001EF10 2C 03 00 01 */ cmpwi r3, 1 -/* 80021FD4 0001EF14 40 82 00 1C */ bne lbl_80021FF0 -/* 80021FD8 0001EF18 7F E3 FB 78 */ mr r3, r31 -/* 80021FDC 0001EF1C 48 00 00 75 */ bl fpcLd_Load -/* 80021FE0 0001EF20 2C 03 00 04 */ cmpwi r3, 4 -/* 80021FE4 0001EF24 40 82 00 0C */ bne lbl_80021FF0 -/* 80021FE8 0001EF28 38 60 00 01 */ li r3, 1 -/* 80021FEC 0001EF2C 48 00 00 08 */ b lbl_80021FF4 -lbl_80021FF0: -/* 80021FF0 0001EF30 38 60 00 00 */ li r3, 0 -lbl_80021FF4: -/* 80021FF4 0001EF34 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80021FF8 0001EF38 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80021FFC 0001EF3C 7C 08 03 A6 */ mtlr r0 -/* 80022000 0001EF40 38 21 00 10 */ addi r1, r1, 0x10 -/* 80022004 0001EF44 4E 80 00 20 */ blr - -.global fpcLd_IsLoaded -fpcLd_IsLoaded: -/* 80022008 0001EF48 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8002200C 0001EF4C 7C 08 02 A6 */ mflr r0 -/* 80022010 0001EF50 90 01 00 14 */ stw r0, 0x14(r1) -/* 80022014 0001EF54 7C 63 07 34 */ extsh r3, r3 -/* 80022018 0001EF58 4B FF 65 2D */ bl cDyl_IsLinked -/* 8002201C 0001EF5C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80022020 0001EF60 7C 08 03 A6 */ mtlr r0 -/* 80022024 0001EF64 38 21 00 10 */ addi r1, r1, 0x10 -/* 80022028 0001EF68 4E 80 00 20 */ blr - -.global fpcLd_Free -fpcLd_Free: -/* 8002202C 0001EF6C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80022030 0001EF70 7C 08 02 A6 */ mflr r0 -/* 80022034 0001EF74 90 01 00 14 */ stw r0, 0x14(r1) -/* 80022038 0001EF78 7C 63 07 34 */ extsh r3, r3 -/* 8002203C 0001EF7C 4B FF 65 41 */ bl cDyl_Unlink -/* 80022040 0001EF80 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80022044 0001EF84 7C 08 03 A6 */ mtlr r0 -/* 80022048 0001EF88 38 21 00 10 */ addi r1, r1, 0x10 -/* 8002204C 0001EF8C 4E 80 00 20 */ blr - -.global fpcLd_Load -fpcLd_Load: -/* 80022050 0001EF90 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80022054 0001EF94 7C 08 02 A6 */ mflr r0 -/* 80022058 0001EF98 90 01 00 14 */ stw r0, 0x14(r1) -/* 8002205C 0001EF9C 7C 63 07 34 */ extsh r3, r3 -/* 80022060 0001EFA0 4B FF 65 61 */ bl cDyl_LinkASync -/* 80022064 0001EFA4 2C 03 00 04 */ cmpwi r3, 4 -/* 80022068 0001EFA8 41 82 00 14 */ beq lbl_8002207C -/* 8002206C 0001EFAC 40 80 00 20 */ bge lbl_8002208C -/* 80022070 0001EFB0 2C 03 00 00 */ cmpwi r3, 0 -/* 80022074 0001EFB4 41 82 00 10 */ beq lbl_80022084 -/* 80022078 0001EFB8 48 00 00 14 */ b lbl_8002208C -lbl_8002207C: -/* 8002207C 0001EFBC 38 60 00 04 */ li r3, 4 -/* 80022080 0001EFC0 48 00 00 10 */ b lbl_80022090 -lbl_80022084: -/* 80022084 0001EFC4 38 60 00 00 */ li r3, 0 -/* 80022088 0001EFC8 48 00 00 08 */ b lbl_80022090 -lbl_8002208C: -/* 8002208C 0001EFCC 38 60 00 05 */ li r3, 5 -lbl_80022090: -/* 80022090 0001EFD0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80022094 0001EFD4 7C 08 03 A6 */ mtlr r0 -/* 80022098 0001EFD8 38 21 00 10 */ addi r1, r1, 0x10 -/* 8002209C 0001EFDC 4E 80 00 20 */ blr - diff --git a/asm/f/pc/f_pc_method.s b/asm/f/pc/f_pc_method.s deleted file mode 100644 index 0ea98392b4..0000000000 --- a/asm/f/pc/f_pc_method.s +++ /dev/null @@ -1,72 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 80022428 - - -.global fpcMtd_Method -fpcMtd_Method: -/* 80022428 0001F368 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8002242C 0001F36C 7C 08 02 A6 */ mflr r0 -/* 80022430 0001F370 90 01 00 14 */ stw r0, 0x14(r1) -/* 80022434 0001F374 7C 6C 1B 79 */ or. r12, r3, r3 -/* 80022438 0001F378 41 82 00 14 */ beq lbl_8002244C -/* 8002243C 0001F37C 7C 83 23 78 */ mr r3, r4 -/* 80022440 0001F380 7D 89 03 A6 */ mtctr r12 -/* 80022444 0001F384 4E 80 04 21 */ bctrl -/* 80022448 0001F388 48 00 00 08 */ b lbl_80022450 -lbl_8002244C: -/* 8002244C 0001F38C 38 60 00 01 */ li r3, 1 -lbl_80022450: -/* 80022450 0001F390 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80022454 0001F394 7C 08 03 A6 */ mtlr r0 -/* 80022458 0001F398 38 21 00 10 */ addi r1, r1, 0x10 -/* 8002245C 0001F39C 4E 80 00 20 */ blr - -.global fpcMtd_Execute -fpcMtd_Execute: -/* 80022460 0001F3A0 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80022464 0001F3A4 7C 08 02 A6 */ mflr r0 -/* 80022468 0001F3A8 90 01 00 14 */ stw r0, 0x14(r1) -/* 8002246C 0001F3AC 80 63 00 08 */ lwz r3, 8(r3) -/* 80022470 0001F3B0 4B FF FF B9 */ bl fpcMtd_Method -/* 80022474 0001F3B4 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80022478 0001F3B8 7C 08 03 A6 */ mtlr r0 -/* 8002247C 0001F3BC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80022480 0001F3C0 4E 80 00 20 */ blr - -.global fpcMtd_IsDelete -fpcMtd_IsDelete: -/* 80022484 0001F3C4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80022488 0001F3C8 7C 08 02 A6 */ mflr r0 -/* 8002248C 0001F3CC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80022490 0001F3D0 80 63 00 0C */ lwz r3, 0xc(r3) -/* 80022494 0001F3D4 4B FF FF 95 */ bl fpcMtd_Method -/* 80022498 0001F3D8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8002249C 0001F3DC 7C 08 03 A6 */ mtlr r0 -/* 800224A0 0001F3E0 38 21 00 10 */ addi r1, r1, 0x10 -/* 800224A4 0001F3E4 4E 80 00 20 */ blr - -.global fpcMtd_Delete -fpcMtd_Delete: -/* 800224A8 0001F3E8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800224AC 0001F3EC 7C 08 02 A6 */ mflr r0 -/* 800224B0 0001F3F0 90 01 00 14 */ stw r0, 0x14(r1) -/* 800224B4 0001F3F4 80 63 00 04 */ lwz r3, 4(r3) -/* 800224B8 0001F3F8 4B FF FF 71 */ bl fpcMtd_Method -/* 800224BC 0001F3FC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800224C0 0001F400 7C 08 03 A6 */ mtlr r0 -/* 800224C4 0001F404 38 21 00 10 */ addi r1, r1, 0x10 -/* 800224C8 0001F408 4E 80 00 20 */ blr - -.global fpcMtd_Create -fpcMtd_Create: -/* 800224CC 0001F40C 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800224D0 0001F410 7C 08 02 A6 */ mflr r0 -/* 800224D4 0001F414 90 01 00 14 */ stw r0, 0x14(r1) -/* 800224D8 0001F418 80 63 00 00 */ lwz r3, 0(r3) -/* 800224DC 0001F41C 4B FF FF 4D */ bl fpcMtd_Method -/* 800224E0 0001F420 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800224E4 0001F424 7C 08 03 A6 */ mtlr r0 -/* 800224E8 0001F428 38 21 00 10 */ addi r1, r1, 0x10 -/* 800224EC 0001F42C 4E 80 00 20 */ blr - diff --git a/asm/f/pc/f_pc_profile.s b/asm/f/pc/f_pc_profile.s deleted file mode 100644 index 483814503a..0000000000 --- a/asm/f/pc/f_pc_profile.s +++ /dev/null @@ -1,12 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 80023564 - - -.global fpcPf_Get -fpcPf_Get: -/* 80023564 000204A4 80 8D 87 D0 */ lwz r4, lbl_80450D50-_SDA_BASE_(r13) -/* 80023568 000204A8 7C 60 07 34 */ extsh r0, r3 -/* 8002356C 000204AC 54 00 10 3A */ slwi r0, r0, 2 -/* 80023570 000204B0 7C 64 00 2E */ lwzx r3, r4, r0 -/* 80023574 000204B4 4E 80 00 20 */ blr diff --git a/asm/f/pc/f_pc_searcher.s b/asm/f/pc/f_pc_searcher.s deleted file mode 100644 index d7287213ba..0000000000 --- a/asm/f/pc/f_pc_searcher.s +++ /dev/null @@ -1,22 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 80023578 - - -.global fpcSch_JudgeForPName -fpcSch_JudgeForPName: -/* 80023578 000204B8 A8 A3 00 08 */ lha r5, 8(r3) -/* 8002357C 000204BC A8 04 00 00 */ lha r0, 0(r4) -/* 80023580 000204C0 7C 05 00 00 */ cmpw r5, r0 -/* 80023584 000204C4 4D 82 00 20 */ beqlr -/* 80023588 000204C8 38 60 00 00 */ li r3, 0 -/* 8002358C 000204CC 4E 80 00 20 */ blr -.global fpcSch_JudgeByID -fpcSch_JudgeByID: -/* 80023590 000204D0 80 A3 00 04 */ lwz r5, 4(r3) -/* 80023594 000204D4 80 04 00 00 */ lwz r0, 0(r4) -/* 80023598 000204D8 7C 05 00 40 */ cmplw r5, r0 -/* 8002359C 000204DC 4D 82 00 20 */ beqlr -/* 800235A0 000204E0 38 60 00 00 */ li r3, 0 -/* 800235A4 000204E4 4E 80 00 20 */ blr - diff --git a/asm/f/pc/line/f_pc_line_iter.s b/asm/f/pc/line/f_pc_line_iter.s deleted file mode 100644 index 9c2bd734bf..0000000000 --- a/asm/f/pc/line/f_pc_line_iter.s +++ /dev/null @@ -1,54 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 800236c0 - - -.global fpcLnIt_MethodCall -fpcLnIt_MethodCall: -/* 800236C0 00020600 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 800236C4 00020604 7C 08 02 A6 */ mflr r0 -/* 800236C8 00020608 90 01 00 24 */ stw r0, 0x24(r1) -/* 800236CC 0002060C 39 61 00 20 */ addi r11, r1, 0x20 -/* 800236D0 00020610 48 33 EB 09 */ bl _savegpr_28 -/* 800236D4 00020614 7C 7C 1B 78 */ mr r28, r3 -/* 800236D8 00020618 7C 9D 23 78 */ mr r29, r4 -/* 800236DC 0002061C 80 63 00 0C */ lwz r3, 0xc(r3) -/* 800236E0 00020620 83 E3 00 2C */ lwz r31, 0x2c(r3) -/* 800236E4 00020624 4B FF E0 11 */ bl fpcLy_CurrentLayer -/* 800236E8 00020628 7C 7E 1B 78 */ mr r30, r3 -/* 800236EC 0002062C 7F E3 FB 78 */ mr r3, r31 -/* 800236F0 00020630 4B FF DF FD */ bl fpcLy_SetCurrentLayer -/* 800236F4 00020634 7F 83 E3 78 */ mr r3, r28 -/* 800236F8 00020638 7F A4 EB 78 */ mr r4, r29 -/* 800236FC 0002063C 48 24 33 81 */ bl cTgIt_MethodCall -/* 80023700 00020640 7C 7F 1B 78 */ mr r31, r3 -/* 80023704 00020644 7F C3 F3 78 */ mr r3, r30 -/* 80023708 00020648 4B FF DF E5 */ bl fpcLy_SetCurrentLayer -/* 8002370C 0002064C 7F E3 FB 78 */ mr r3, r31 -/* 80023710 00020650 39 61 00 20 */ addi r11, r1, 0x20 -/* 80023714 00020654 48 33 EB 11 */ bl _restgpr_28 -/* 80023718 00020658 80 01 00 24 */ lwz r0, 0x24(r1) -/* 8002371C 0002065C 7C 08 03 A6 */ mtlr r0 -/* 80023720 00020660 38 21 00 20 */ addi r1, r1, 0x20 -/* 80023724 00020664 4E 80 00 20 */ blr - -.global fpcLnIt_Queue -fpcLnIt_Queue: -/* 80023728 00020668 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8002372C 0002066C 7C 08 02 A6 */ mflr r0 -/* 80023730 00020670 90 01 00 14 */ stw r0, 0x14(r1) -/* 80023734 00020674 90 61 00 08 */ stw r3, 8(r1) -/* 80023738 00020678 38 00 00 00 */ li r0, 0 -/* 8002373C 0002067C 90 01 00 0C */ stw r0, 0xc(r1) -/* 80023740 00020680 38 6D 80 58 */ addi r3, r13, lbl_804505D8-_SDA_BASE_ -.global fpcLnIt_MethodCall -/* 80023744 00020684 3C 80 80 02 */ lis r4, fpcLnIt_MethodCall@ha -.global fpcLnIt_MethodCall -/* 80023748 00020688 38 84 36 C0 */ addi r4, r4, fpcLnIt_MethodCall@l -/* 8002374C 0002068C 38 A1 00 08 */ addi r5, r1, 8 -/* 80023750 00020690 48 24 2D F1 */ bl cTrIt_Method -/* 80023754 00020694 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80023758 00020698 7C 08 03 A6 */ mtlr r0 -/* 8002375C 0002069C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80023760 000206A0 4E 80 00 20 */ blr - diff --git a/asm/f/pc/line/f_pc_line_tag.s b/asm/f/pc/line/f_pc_line_tag.s deleted file mode 100644 index 67cd96a846..0000000000 --- a/asm/f/pc/line/f_pc_line_tag.s +++ /dev/null @@ -1,90 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 800235a8 - - -.global fpcLnTg_Move -fpcLnTg_Move: -/* 800235A8 000204E8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800235AC 000204EC 7C 08 02 A6 */ mflr r0 -/* 800235B0 000204F0 90 01 00 14 */ stw r0, 0x14(r1) -/* 800235B4 000204F4 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800235B8 000204F8 93 C1 00 08 */ stw r30, 8(r1) -/* 800235BC 000204FC 7C 7E 1B 78 */ mr r30, r3 -/* 800235C0 00020500 7C 9F 23 78 */ mr r31, r4 -/* 800235C4 00020504 80 03 00 14 */ lwz r0, 0x14(r3) -/* 800235C8 00020508 7C 00 F8 00 */ cmpw r0, r31 -/* 800235CC 0002050C 41 82 00 18 */ beq lbl_800235E4 -/* 800235D0 00020510 48 00 00 31 */ bl fpcLnTg_QueueTo -/* 800235D4 00020514 7F C3 F3 78 */ mr r3, r30 -/* 800235D8 00020518 7F E4 FB 78 */ mr r4, r31 -/* 800235DC 0002051C 48 00 00 59 */ bl fpcLnTg_ToQueue -/* 800235E0 00020520 48 00 00 08 */ b lbl_800235E8 -lbl_800235E4: -/* 800235E4 00020524 38 60 00 01 */ li r3, 1 -lbl_800235E8: -/* 800235E8 00020528 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800235EC 0002052C 83 C1 00 08 */ lwz r30, 8(r1) -/* 800235F0 00020530 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800235F4 00020534 7C 08 03 A6 */ mtlr r0 -/* 800235F8 00020538 38 21 00 10 */ addi r1, r1, 0x10 -/* 800235FC 0002053C 4E 80 00 20 */ blr - -.global fpcLnTg_QueueTo -fpcLnTg_QueueTo: -/* 80023600 00020540 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80023604 00020544 7C 08 02 A6 */ mflr r0 -/* 80023608 00020548 90 01 00 14 */ stw r0, 0x14(r1) -/* 8002360C 0002054C 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80023610 00020550 7C 7F 1B 78 */ mr r31, r3 -/* 80023614 00020554 48 24 32 79 */ bl cTg_SingleCutFromTree -/* 80023618 00020558 38 00 FF FF */ li r0, -1 -/* 8002361C 0002055C 90 1F 00 14 */ stw r0, 0x14(r31) -/* 80023620 00020560 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80023624 00020564 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80023628 00020568 7C 08 03 A6 */ mtlr r0 -/* 8002362C 0002056C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80023630 00020570 4E 80 00 20 */ blr - -.global fpcLnTg_ToQueue -fpcLnTg_ToQueue: -/* 80023634 00020574 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80023638 00020578 7C 08 02 A6 */ mflr r0 -/* 8002363C 0002057C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80023640 00020580 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80023644 00020584 93 C1 00 08 */ stw r30, 8(r1) -/* 80023648 00020588 7C 7E 1B 78 */ mr r30, r3 -/* 8002364C 0002058C 7C 9F 23 78 */ mr r31, r4 -/* 80023650 00020590 38 6D 80 58 */ addi r3, r13, lbl_804505D8-_SDA_BASE_ -/* 80023654 00020594 7F C5 F3 78 */ mr r5, r30 -/* 80023658 00020598 48 24 32 75 */ bl cTg_AdditionToTree -/* 8002365C 0002059C 2C 03 00 00 */ cmpwi r3, 0 -/* 80023660 000205A0 41 82 00 10 */ beq lbl_80023670 -/* 80023664 000205A4 93 FE 00 14 */ stw r31, 0x14(r30) -/* 80023668 000205A8 38 60 00 01 */ li r3, 1 -/* 8002366C 000205AC 48 00 00 08 */ b lbl_80023674 -lbl_80023670: -/* 80023670 000205B0 38 60 00 00 */ li r3, 0 -lbl_80023674: -/* 80023674 000205B4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80023678 000205B8 83 C1 00 08 */ lwz r30, 8(r1) -/* 8002367C 000205BC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80023680 000205C0 7C 08 03 A6 */ mtlr r0 -/* 80023684 000205C4 38 21 00 10 */ addi r1, r1, 0x10 -/* 80023688 000205C8 4E 80 00 20 */ blr - -.global fpcLnTg_Init -fpcLnTg_Init: -/* 8002368C 000205CC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80023690 000205D0 7C 08 02 A6 */ mflr r0 -/* 80023694 000205D4 90 01 00 14 */ stw r0, 0x14(r1) -/* 80023698 000205D8 93 E1 00 0C */ stw r31, 0xc(r1) -/* 8002369C 000205DC 7C 7F 1B 78 */ mr r31, r3 -/* 800236A0 000205E0 48 24 33 95 */ bl cTg_Create -/* 800236A4 000205E4 38 00 FF FF */ li r0, -1 -/* 800236A8 000205E8 90 1F 00 14 */ stw r0, 0x14(r31) -/* 800236AC 000205EC 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800236B0 000205F0 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800236B4 000205F4 7C 08 03 A6 */ mtlr r0 -/* 800236B8 000205F8 38 21 00 10 */ addi r1, r1, 0x10 -/* 800236BC 000205FC 4E 80 00 20 */ blr diff --git a/asm/f/pc/method/f_pc_method_iter.s b/asm/f/pc/method/f_pc_method_iter.s deleted file mode 100644 index 796555df5f..0000000000 --- a/asm/f/pc/method/f_pc_method_iter.s +++ /dev/null @@ -1,17 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 80023764 - - -.global fpcMtdIt_Method -fpcMtdIt_Method: -/* 80023764 000206A4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80023768 000206A8 7C 08 02 A6 */ mflr r0 -/* 8002376C 000206AC 90 01 00 14 */ stw r0, 0x14(r1) -/* 80023770 000206B0 38 A0 00 00 */ li r5, 0 -/* 80023774 000206B4 48 24 28 ED */ bl cLsIt_Method -/* 80023778 000206B8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 8002377C 000206BC 7C 08 03 A6 */ mtlr r0 -/* 80023780 000206C0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80023784 000206C4 4E 80 00 20 */ blr - diff --git a/asm/f/pc/method/f_pc_method_tag.s b/asm/f/pc/method/f_pc_method_tag.s deleted file mode 100644 index c15a2d9b80..0000000000 --- a/asm/f/pc/method/f_pc_method_tag.s +++ /dev/null @@ -1,64 +0,0 @@ -.include "macros.inc" - -.section .text, "ax" # 80023788 - - -.global fpcMtdTg_Do -fpcMtdTg_Do: -/* 80023788 000206C8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 8002378C 000206CC 7C 08 02 A6 */ mflr r0 -/* 80023790 000206D0 90 01 00 14 */ stw r0, 0x14(r1) -/* 80023794 000206D4 7C 64 1B 78 */ mr r4, r3 -/* 80023798 000206D8 80 63 00 18 */ lwz r3, 0x18(r3) -/* 8002379C 000206DC 81 84 00 14 */ lwz r12, 0x14(r4) -/* 800237A0 000206E0 7D 89 03 A6 */ mtctr r12 -/* 800237A4 000206E4 4E 80 04 21 */ bctrl -/* 800237A8 000206E8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800237AC 000206EC 7C 08 03 A6 */ mtlr r0 -/* 800237B0 000206F0 38 21 00 10 */ addi r1, r1, 0x10 -/* 800237B4 000206F4 4E 80 00 20 */ blr - -.global fpcMtdTg_ToMethodQ -fpcMtdTg_ToMethodQ: -/* 800237B8 000206F8 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800237BC 000206FC 7C 08 02 A6 */ mflr r0 -/* 800237C0 00020700 90 01 00 14 */ stw r0, 0x14(r1) -/* 800237C4 00020704 48 24 32 21 */ bl cTg_Addition -/* 800237C8 00020708 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800237CC 0002070C 7C 08 03 A6 */ mtlr r0 -/* 800237D0 00020710 38 21 00 10 */ addi r1, r1, 0x10 -/* 800237D4 00020714 4E 80 00 20 */ blr - -.global fpcMtdTg_MethodQTo -fpcMtdTg_MethodQTo: -/* 800237D8 00020718 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800237DC 0002071C 7C 08 02 A6 */ mflr r0 -/* 800237E0 00020720 90 01 00 14 */ stw r0, 0x14(r1) -/* 800237E4 00020724 48 24 31 C1 */ bl cTg_SingleCut -/* 800237E8 00020728 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800237EC 0002072C 7C 08 03 A6 */ mtlr r0 -/* 800237F0 00020730 38 21 00 10 */ addi r1, r1, 0x10 -/* 800237F4 00020734 4E 80 00 20 */ blr - -.global fpcMtdTg_Init -fpcMtdTg_Init: -/* 800237F8 00020738 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 800237FC 0002073C 7C 08 02 A6 */ mflr r0 -/* 80023800 00020740 90 01 00 24 */ stw r0, 0x24(r1) -/* 80023804 00020744 39 61 00 20 */ addi r11, r1, 0x20 -/* 80023808 00020748 48 33 E9 D5 */ bl _savegpr_29 -/* 8002380C 0002074C 7C 7D 1B 78 */ mr r29, r3 -/* 80023810 00020750 7C 9E 23 78 */ mr r30, r4 -/* 80023814 00020754 7C BF 2B 78 */ mr r31, r5 -/* 80023818 00020758 7F A4 EB 78 */ mr r4, r29 -/* 8002381C 0002075C 48 24 32 19 */ bl cTg_Create -/* 80023820 00020760 93 DD 00 14 */ stw r30, 0x14(r29) -/* 80023824 00020764 93 FD 00 18 */ stw r31, 0x18(r29) -/* 80023828 00020768 38 60 00 01 */ li r3, 1 -/* 8002382C 0002076C 39 61 00 20 */ addi r11, r1, 0x20 -/* 80023830 00020770 48 33 E9 F9 */ bl _restgpr_29 -/* 80023834 00020774 80 01 00 24 */ lwz r0, 0x24(r1) -/* 80023838 00020778 7C 08 03 A6 */ mtlr r0 -/* 8002383C 0002077C 38 21 00 20 */ addi r1, r1, 0x20 -/* 80023840 00020780 4E 80 00 20 */ blr - diff --git a/asmdiff.sh b/asmdiff.sh index 177dbe023b..314e1709eb 100644 --- a/asmdiff.sh +++ b/asmdiff.sh @@ -2,6 +2,7 @@ OBJDUMP="$DEVKITPPC/bin/powerpc-eabi-objdump -D -bbinary -EB -mpowerpc -M gekko" OPTIONS="--start-address=$(($1)) --stop-address=$(($1 + $2))" +echo $OPTIONS $OBJDUMP $OPTIONS baserom.dol > baserom.dump -$OBJDUMP $OPTIONS main.dol > main.dump -diff -u --color=always baserom.dump main.dump \ No newline at end of file +$OBJDUMP $OPTIONS build/dolzel2/main.dol > main.dump +diff -u --color=always baserom.dump main.dump diff --git a/include/SComponent/c_list.h b/include/SComponent/c_list.h new file mode 100644 index 0000000000..7a7e6066c0 --- /dev/null +++ b/include/SComponent/c_list.h @@ -0,0 +1,24 @@ + +#ifndef SCOMPONENT_C_LIST_H +#define SCOMPONENT_C_LIST_H + +#include "SComponent/c_node.h" + +struct node_list_class { + node_class *mpHead; + node_class *mpTail; + int mSize; +}; + +extern "C" { + +void cLs_Init(node_list_class *pList); +int cLs_SingleCut(node_class *pNode); +int cLs_Addition(node_list_class *pList, node_class *pNode); +int cLs_Insert(node_list_class *pList, int idx, node_class *pNode); +node_class * cLs_GetFirst(node_list_class *pList); +void cLs_Create(node_list_class *pList); + +}; + +#endif diff --git a/include/SComponent/c_list_iter.h b/include/SComponent/c_list_iter.h new file mode 100644 index 0000000000..06c06590a9 --- /dev/null +++ b/include/SComponent/c_list_iter.h @@ -0,0 +1,15 @@ + +#ifndef SCOMPONENT_C_LIST_ITER_H +#define SCOMPONENT_C_LIST_ITER_H + +#include "SComponent/c_list.h" +#include "SComponent/c_node_iter.h" + +extern "C" { + +int cLsIt_Method(node_list_class *pList, cNdIt_MethodFunc pMethod, void *pUserData); +void * cLsIt_Judge(node_list_class *pList, cNdIt_JudgeFunc pJudge, void *pUserData); + +}; + +#endif diff --git a/include/SComponent/c_node.h b/include/SComponent/c_node.h new file mode 100644 index 0000000000..73573c0bae --- /dev/null +++ b/include/SComponent/c_node.h @@ -0,0 +1,29 @@ + +#ifndef SCOMPONENT_C_NODE_H +#define SCOMPONENT_C_NODE_H + +struct node_class { + node_class *mpPrevNode; + void *mpData; + node_class *mpNextNode; +}; + +extern "C" { + +void cNd_Join(node_class *pA, node_class *pB); +int cNd_LengthOf(node_class *pNode); +node_class * cNd_First(node_class *pNode); +node_class * cNd_Last(node_class *pNode); +node_class * cNd_Order(node_class *pNode, int idx); +void cNd_SingleCut(node_class *pNode); +void cNd_Cut(node_class *pNode); +void cNd_Addition(node_class *pA, node_class *pB); +void cNd_Insert(node_class *pA, node_class *pB); +void cNd_SetObject(node_class *pNode, void *pData); +void cNd_ClearObject(node_class *pNode); +void cNd_ForcedClear(node_class *pNode); +void cNd_Create(node_class *pNode, void *pData); + +}; + +#endif diff --git a/include/SComponent/c_node_iter.h b/include/SComponent/c_node_iter.h new file mode 100644 index 0000000000..8d76321c05 --- /dev/null +++ b/include/SComponent/c_node_iter.h @@ -0,0 +1,17 @@ + +#ifndef SCOMPONENT_C_NODE_ITER_H +#define SCOMPONENT_C_NODE_ITER_H + +#include "SComponent/c_node.h" + +extern "C" { + +typedef int (*cNdIt_MethodFunc)(node_class *pNode, void *pUserData); +int cNdIt_Method(node_class *pNode, cNdIt_MethodFunc pMethod, void *pUserData); + +typedef void * (*cNdIt_JudgeFunc)(node_class *pNode, void *pUserData); +void * cNdIt_Judge(node_class *pNode, cNdIt_JudgeFunc pJudge, void *pUserData); + +}; + +#endif diff --git a/include/SComponent/c_phase.h b/include/SComponent/c_phase.h new file mode 100644 index 0000000000..c923711dd4 --- /dev/null +++ b/include/SComponent/c_phase.h @@ -0,0 +1,32 @@ + +#ifndef SCOMPONENT_C_PHASE_H +#define SCOMPONENT_C_PHASE_H + +typedef int (*cPhs__Handler)(void *); + +enum cPhs__Step { + cPhs_ZERO_e = 0x00, + // names from Wind Waker debug strings + cPhs_COMPLEATE_e = 0x04, + cPhs_ERROR_e = 0x05, + cPhs_NEXT_e = 0x06, +}; + +struct request_of_phase_process_class { + cPhs__Handler *mpHandlerTable; + int mPhaseStep; +}; + +extern "C" { + +void cPhs_Reset(request_of_phase_process_class *pPhase); +void cPhs_Set(request_of_phase_process_class *pPhase, cPhs__Handler *pHandlerTable); +void cPhs_UnCompleate(request_of_phase_process_class *pPhase); +int cPhs_Compleate(request_of_phase_process_class *pPhase); +int cPhs_Next(request_of_phase_process_class *pPhase); +int cPhs_Do(request_of_phase_process_class *pPhase, void *pUserData); +int cPhs_Handler(request_of_phase_process_class *pPhase, cPhs__Handler *pHandlerTable, void *pUserData); + +}; + +#endif diff --git a/include/SComponent/c_tag.h b/include/SComponent/c_tag.h new file mode 100644 index 0000000000..2c73b3ab10 --- /dev/null +++ b/include/SComponent/c_tag.h @@ -0,0 +1,28 @@ + +#ifndef SCOMPONENT_C_TAG_H +#define SCOMPONENT_C_TAG_H + +#include "global.h" +#include "SComponent/c_node.h" +#include "SComponent/c_list.h" +#include "SComponent/c_tree.h" + +struct create_tag_class : public node_class { + void *mpTagData; + s8 mbIsUse; +}; + +extern "C" { + +int cTg_IsUse(create_tag_class *pTag); +int cTg_SingleCutFromTree(create_tag_class *pTag); +int cTg_AdditionToTree(node_lists_tree_class *pTree, int listIdx, create_tag_class *pTag); +int cTg_InsertToTree(node_lists_tree_class *pTree, int listIdx, create_tag_class *pTag, int idx); +node_class * cTg_GetFirst(node_list_class *pTag); +int cTg_SingleCut(create_tag_class *pTag); +int cTg_Addition(node_list_class *pList, create_tag_class *pTag); +void cTg_Create(create_tag_class *pTag, void *pData); + +}; + +#endif diff --git a/include/SComponent/c_tag_iter.h b/include/SComponent/c_tag_iter.h new file mode 100644 index 0000000000..b750ac9c76 --- /dev/null +++ b/include/SComponent/c_tag_iter.h @@ -0,0 +1,25 @@ + +#ifndef SCOMPONENT_C_TAG_ITER_H +#define SCOMPONENT_C_TAG_ITER_H + +#include "SComponent/c_tag.h" +#include "SComponent/c_node_iter.h" + +struct method_filter { + cNdIt_MethodFunc mpMethodFunc; + void *mpUserData; +}; + +struct judge_filter { + cNdIt_JudgeFunc mpJudgeFunc; + void *mpUserData; +}; + +extern "C" { + +int cTgIt_MethodCall(create_tag_class *pTag, method_filter *pMethodFilter); +void * cTgIt_JudgeFilter(create_tag_class *pTag, judge_filter *pJudgeFilter); + +}; + +#endif diff --git a/include/SComponent/c_tree.h b/include/SComponent/c_tree.h new file mode 100644 index 0000000000..215b5a58e4 --- /dev/null +++ b/include/SComponent/c_tree.h @@ -0,0 +1,23 @@ + +#ifndef SCOMPONENT_C_TREE_H +#define SCOMPONENT_C_TREE_H + +#include "global.h" +#include "SComponent/c_list.h" +#include "SComponent/c_node.h" + +struct node_lists_tree_class { + node_list_class *mpLists; + int mNumLists; +}; + +extern "C" { + +int cTr_SingleCut(node_class *pNode); +int cTr_Addition(node_lists_tree_class *pTree, int listIdx, node_class *pNode); +int cTr_Insert(node_lists_tree_class *pTree, int listIdx, node_class *pNode, int idx); +void cTr_Create(node_lists_tree_class *pTree, node_list_class *pLists, int numLists); + +}; + +#endif diff --git a/include/SComponent/c_tree_iter.h b/include/SComponent/c_tree_iter.h new file mode 100644 index 0000000000..0334500efe --- /dev/null +++ b/include/SComponent/c_tree_iter.h @@ -0,0 +1,15 @@ + +#ifndef SCOMPONENT_C_TREE_ITER_H +#define SCOMPONENT_C_TREE_ITER_H + +#include "SComponent/c_tree.h" +#include "SComponent/c_node_iter.h" + +extern "C" { + +int cTrIt_Method(node_lists_tree_class *pTree, cNdIt_MethodFunc pJudgeFunc, void *pUserData); +void * cTrIt_Judge(node_lists_tree_class *pTree, cNdIt_JudgeFunc pJudgeFunc, void *pUserData); + +}; + +#endif diff --git a/include/dolphin/types.h b/include/dolphin/types.h index c8b061e796..57efce338f 100644 --- a/include/dolphin/types.h +++ b/include/dolphin/types.h @@ -29,6 +29,6 @@ typedef int BOOL; #define TRUE 1 #define FALSE 0 -#define NULL ((void*)0) +#define NULL (0) #endif \ No newline at end of file diff --git a/include/f/f_pc/f_pc_base.h b/include/f/f_pc/f_pc_base.h new file mode 100644 index 0000000000..8892d236f5 --- /dev/null +++ b/include/f/f_pc/f_pc_base.h @@ -0,0 +1,43 @@ + +#ifndef F_PC_BASE_H +#define F_PC_BASE_H + +#include "global.h" +#include "SComponent/c_tag.h" +#include "f/f_pc/f_pc_line_tag.h" +#include "f/f_pc/f_pc_layer_tag.h" +#include "f/f_pc/f_pc_delete_tag.h" +#include "f/f_pc/f_pc_priority.h" + +struct create_request; +struct profile_method_class; + +struct base_process_class { + u32 mBsType; + u32 mBsPcId; + s16 mProcName; + u8 mUnk0; + u8 mUnk1; + s8 mInitState; + u8 mUnk2; + s16 mBsTypeId; + void *mpProf; + create_request *mpCtRq; + layer_management_tag_class mLyTg; + line_tag mLnTg; + delete_tag_class mDtTg; + process_priority_class mPi; + profile_method_class *mpPcMtd; + void *mpUserData; + u32 mParameters; + u32 mSubType; +}; + +extern "C" { + +extern int fpcBs_Is_JustOfType(int a, int b); +extern int fpcBs_Execute(base_process_class *pProc); + +}; + +#endif diff --git a/include/f/f_pc/f_pc_create_iter.h b/include/f/f_pc/f_pc_create_iter.h new file mode 100644 index 0000000000..58f3a998a8 --- /dev/null +++ b/include/f/f_pc/f_pc_create_iter.h @@ -0,0 +1,14 @@ + +#ifndef F_PC_CREATE_ITER_H +#define F_PC_CREATE_ITER_H + +#include "SComponent/c_node_iter.h" + +extern "C" { + +int fpcCtIt_Method(cNdIt_MethodFunc pJudge, void *pUserData); +void * fpcCtIt_Judge(cNdIt_JudgeFunc pJudge, void *pUserData); + +}; + +#endif diff --git a/include/f/f_pc/f_pc_create_req.h b/include/f/f_pc/f_pc_create_req.h new file mode 100644 index 0000000000..289b10123f --- /dev/null +++ b/include/f/f_pc/f_pc_create_req.h @@ -0,0 +1,46 @@ + +#ifndef F_PC_CREATE_REQ_H +#define F_PC_CREATE_REQ_H + +#include "global.h" +#include "SComponent/c_phase.h" +#include "SComponent/c_tag.h" +#include "f/f_pc/f_pc_create_tag.h" +#include "f/f_pc/f_pc_method.h" +#include "f/f_pc/f_pc_method_tag.h" + +struct base_process_class; +struct layer_class; + +struct create_request_method_class { + cPhs__Handler mpHandler; + process_method_func mpCancel; + process_method_func mpDelete; +}; + +struct create_request : public create_tag { + s8 mbIsCreating; + s8 mbIsCancelling; + process_method_tag_class mMtdTg; + create_request_method_class *mpCtRqMtd; + void *mpUnk1; + int mBsPcId; + base_process_class *mpRes; + layer_class *mpLayer; +}; + +extern "C" { + +bool fpcCtRq_isCreatingByID(create_tag *pTag, int *pId); +bool fpcCtRq_IsCreatingByID(unsigned int id); +void fpcCtRq_CreateQTo(create_request *pReq); +void fpcCtRq_ToCreateQ(create_request *pReq); +bool fpcCtRq_Delete(create_request *pReq); +bool fpcCtRq_Cancel(create_request *pReq); +int fpcCtRq_IsDoing(create_request *pReq); +void fpcCtRq_Handler(void); +create_request * fpcCtRq_Create(layer_class *pLayer, unsigned long size, create_request_method_class *pCtRqMtd); + +}; + +#endif diff --git a/include/f/f_pc/f_pc_create_tag.h b/include/f/f_pc/f_pc_create_tag.h new file mode 100644 index 0000000000..d851f02094 --- /dev/null +++ b/include/f/f_pc/f_pc_create_tag.h @@ -0,0 +1,19 @@ + +#ifndef F_PC_CREATE_TAG_H +#define F_PC_CREATE_TAG_H + +#include "global.h" +#include "SComponent/c_tag.h" + +struct create_tag : public create_tag_class { +}; + +extern "C" { + +void fpcCtTg_ToCreateQ(create_tag_class *pTag); +void fpcCtTg_CreateQTo(create_tag_class *pTag); +int fpcCtTg_Init(create_tag *pTag, void *pUserData); + +}; + +#endif diff --git a/include/f/f_pc/f_pc_creator.h b/include/f/f_pc/f_pc_creator.h new file mode 100644 index 0000000000..8a0a171b85 --- /dev/null +++ b/include/f/f_pc/f_pc_creator.h @@ -0,0 +1,18 @@ + +#ifndef F_PC_CREATOR_H +#define F_PC_CREATOR_H + +#include "global.h" + +struct base_process_class; + +extern "C" { + +bool fpcCt_IsCreatingByID(unsigned int id); +int fpcCt_IsDoing(base_process_class *pProc); +void fpcCt_Abort(base_process_class *pProc); +void fpcCt_Handler(void); + +}; + +#endif diff --git a/include/f/f_pc/f_pc_delete_tag.h b/include/f/f_pc/f_pc_delete_tag.h new file mode 100644 index 0000000000..767a8e5cb9 --- /dev/null +++ b/include/f/f_pc/f_pc_delete_tag.h @@ -0,0 +1,27 @@ + +#ifndef F_PC_DELETE_TAG_H +#define F_PC_DELETE_TAG_H + +#include "global.h" +#include "SComponent/c_tag.h" + +struct layer_class; + +typedef int (*delete_tag_func)(void*); + +struct delete_tag_class : public create_tag_class { + layer_class *mpLayer; + s16 mTimer; +}; + +extern "C" { + +bool fpcDtTg_IsEmpty(delete_tag_class *pTag); +void fpcDtTg_ToDeleteQ(delete_tag_class *pTag); +void fpcDtTg_DeleteQTo(delete_tag_class *pTag); +int fpcDtTg_Do(delete_tag_class *pTag, delete_tag_func pFunc); +int fpcDtTg_Init(delete_tag_class *pTag, void *pUserData); + +}; + +#endif diff --git a/include/f/f_pc/f_pc_deletor.h b/include/f/f_pc/f_pc_deletor.h new file mode 100644 index 0000000000..90cf677220 --- /dev/null +++ b/include/f/f_pc/f_pc_deletor.h @@ -0,0 +1,19 @@ + +#ifndef F_PC_DELETOR_H +#define F_PC_DELETOR_H + +#include "global.h" + +struct base_process_class; + +extern "C" { + +bool fpcDt_IsComplete(void); +int fpcDt_ToDeleteQ(base_process_class *pProc); +int fpcDt_ToQueue(base_process_class *pProc); +void fpcDt_Handler(void); +int fpcDt_Delete(base_process_class *pProc); + +}; + +#endif diff --git a/include/f/f_pc/f_pc_draw_priority.h b/include/f/f_pc/f_pc_draw_priority.h new file mode 100644 index 0000000000..fab5b3e711 --- /dev/null +++ b/include/f/f_pc/f_pc_draw_priority.h @@ -0,0 +1,17 @@ + +#ifndef F_PC_DRAW_PRIORITY_H +#define F_PC_DRAW_PRIORITY_H + +struct draw_priority_class { + short mPriority; +}; + +extern "C" { + +int fpcDwPi_Get(draw_priority_class *pDwPi); +void fpcDwPi_Set(draw_priority_class *pDwPi, int p); +void fpcDwPi_Init(draw_priority_class *pDwPi, int p); + +}; + +#endif diff --git a/include/f/f_pc/f_pc_executor.h b/include/f/f_pc/f_pc_executor.h new file mode 100644 index 0000000000..ffffa1b3dd --- /dev/null +++ b/include/f/f_pc/f_pc_executor.h @@ -0,0 +1,18 @@ + +#ifndef F_PC_EXECUTOR_H +#define F_PC_EXECUTOR_H + +#include "SComponent/c_node_iter.h" + +struct base_process_class; + +extern "C" { + +int fpcEx_ToLineQ(base_process_class *pProc); +int fpcEx_ExecuteQTo(base_process_class *pProc); +int fpcEx_ToExecuteQ(base_process_class *pProc); +void fpcEx_Handler(cNdIt_MethodFunc pFunc); + +}; + +#endif diff --git a/include/f/f_pc/f_pc_layer.h b/include/f/f_pc/f_pc_layer.h new file mode 100644 index 0000000000..b9076b441c --- /dev/null +++ b/include/f/f_pc/f_pc_layer.h @@ -0,0 +1,54 @@ + +#ifndef F_PC_LAYER_H +#define F_PC_LAYER_H + +#include "global.h" +#include "SComponent/c_node.h" +#include "SComponent/c_tree.h" +#include "SComponent/c_tag.h" + +struct process_method_tag_class; +struct process_node_class; + +struct layer_class : public node_class { + u32 mLayerID; + node_lists_tree_class mNodeListTree; + process_node_class *mpPcNode; + node_lists_tree_class mCancelListTree; + void *mpUnk0; + short mCreatingCount; + short mDeletingCount; +}; + +extern "C" { + +void fpcLy_SetCurrentLayer(layer_class *pLayer); +layer_class * fpcLy_CurrentLayer(void); +layer_class * fpcLy_RootLayer(void); +layer_class * fpcLy_Layer(unsigned int id); +layer_class * fpcLy_Search(unsigned int id); +void fpcLy_Regist(layer_class *pLayer); + +void fpcLy_CreatedMesg(layer_class *pLayer); +void fpcLy_CreatingMesg(layer_class *pLayer); +void fpcLy_DeletedMesg(layer_class *pLayer); +void fpcLy_DeletingMesg(layer_class *pLayer); +int fpcLy_IsCreatingMesg(layer_class *pLayer); +int fpcLy_IsDeletingMesg(layer_class *pLayer); + +void fpcLy_IntoQueue(layer_class *pLayer, int treeListIdx, create_tag_class *pTag, int idx); +void fpcLy_ToQueue(layer_class *pLayer, int treeListIdx, create_tag_class *pTag); +void fpcLy_QueueTo(layer_class *pLayer, create_tag_class *pTag); + +void fpcLy_Cancel(layer_class *pLayer); +int fpcLy_CancelMethod(layer_class *pLayer); + +void fpcLy_CancelQTo(process_method_tag_class *pMthd); +void fpcLy_ToCancelQ(layer_class *pLayer, process_method_tag_class *pMthd); + +void fpcLy_Create(layer_class *pLayer, void *pPcNode, node_list_class *pLists, int listNum); +void fpcLy_Delete(layer_class *pLayer); + +}; + +#endif diff --git a/include/f/f_pc/f_pc_layer_tag.h b/include/f/f_pc/f_pc_layer_tag.h new file mode 100644 index 0000000000..137deb040c --- /dev/null +++ b/include/f/f_pc/f_pc_layer_tag.h @@ -0,0 +1,16 @@ + +#ifndef F_PC_LAYER_TAG_H +#define F_PC_LAYER_TAG_H + +#include "global.h" +#include "SComponent/c_tag.h" + +struct layer_class; + +struct layer_management_tag_class : public create_tag_class { + layer_class *mpLayer; + s16 mNodeListID; + s16 mNodeListIdx; +}; + +#endif diff --git a/include/f/f_pc/f_pc_leaf.h b/include/f/f_pc/f_pc_leaf.h new file mode 100644 index 0000000000..5d31ecf2cb --- /dev/null +++ b/include/f/f_pc/f_pc_leaf.h @@ -0,0 +1,28 @@ + +#ifndef F_PC_LEAF_H +#define F_PC_LEAF_H + +#include "f/f_pc/f_pc_base.h" +#include "f/f_pc/f_pc_draw_priority.h" +#include "f/f_pc/f_pc_method.h" + +struct leafdraw_method_class : public process_method_class { + process_method_func mpDrawFunc; +}; + +struct leafdraw_class : public base_process_class { + leafdraw_method_class *mpDrawMtd; + u8 mbUnk0; + u8 mbUnk1; + draw_priority_class mDwPi; +}; + +extern "C" { + +int fpcLf_GetPriority(leafdraw_class *pLeaf); +int fpcLf_DrawMethod(leafdraw_method_class *pMthd, void *pUserData); +int fpcLf_Draw(leafdraw_class *pMthd); + +}; + +#endif diff --git a/include/f/f_pc/f_pc_line_iter.h b/include/f/f_pc/f_pc_line_iter.h new file mode 100644 index 0000000000..1373bb3217 --- /dev/null +++ b/include/f/f_pc/f_pc_line_iter.h @@ -0,0 +1,13 @@ + +#ifndef F_PC_LINE_ITER_H +#define F_PC_LINE_ITER_H + +#include "SComponent/c_node_iter.h" + +extern "C" { + +void fpcLnIt_Queue(cNdIt_MethodFunc pFunc); + +}; + +#endif diff --git a/include/f/f_pc/f_pc_line_tag.h b/include/f/f_pc/f_pc_line_tag.h new file mode 100644 index 0000000000..8ee5d49e85 --- /dev/null +++ b/include/f/f_pc/f_pc_line_tag.h @@ -0,0 +1,20 @@ + +#ifndef F_PC_LINE_TAG_H +#define F_PC_LINE_TAG_H + +#include "SComponent/c_tag.h" + +struct line_tag : public create_tag_class { + int mLineListID; +}; + +extern "C" { + +int fpcLnTg_Move(line_tag *pLineTag, int newLineListID); +void fpcLnTg_QueueTo(line_tag *pLineTag); +int fpcLnTg_ToQueue(line_tag *pLineTag, int lineListID); +void fpcLnTg_Init(line_tag *pLineTag, void *pData); + +}; + +#endif diff --git a/include/f/f_pc/f_pc_load.h b/include/f/f_pc/f_pc_load.h new file mode 100644 index 0000000000..8989ff6a01 --- /dev/null +++ b/include/f/f_pc/f_pc_load.h @@ -0,0 +1,16 @@ + +#ifndef F_PC_LOAD_H +#define F_PC_LOAD_H + +#include "global.h" + +extern "C" { + +bool fpcLd_Use(u16 procName); +int fpcLd_IsLoaded(u16 procName); +void fpcLd_Free(u16 procName); +int fpcLd_Load(u16 procName); + +}; + +#endif diff --git a/include/f/f_pc/f_pc_method.h b/include/f/f_pc/f_pc_method.h new file mode 100644 index 0000000000..6ff4ab121c --- /dev/null +++ b/include/f/f_pc/f_pc_method.h @@ -0,0 +1,24 @@ + +#ifndef F_PC_METHOD_H +#define F_PC_METHOD_H + +typedef int (*process_method_func)(void *); + +struct process_method_class { + process_method_func mpCreateFunc; + process_method_func mpDeleteFunc; + process_method_func mpExecuteFunc; + process_method_func mpIsDeleteFunc; +}; + +extern "C" { + +int fpcMtd_Method(process_method_func pFunc, void *pUserData); +int fpcMtd_Execute(process_method_class *pMthd, void *pUserData); +int fpcMtd_IsDelete(process_method_class *pMthd, void *pUserData); +int fpcMtd_Delete(process_method_class *pMthd, void *pUserData); +int fpcMtd_Create(process_method_class *pMthd, void *pUserData); + +}; + +#endif diff --git a/include/f/f_pc/f_pc_method_iter.h b/include/f/f_pc/f_pc_method_iter.h new file mode 100644 index 0000000000..4cabf574da --- /dev/null +++ b/include/f/f_pc/f_pc_method_iter.h @@ -0,0 +1,13 @@ + +#ifndef F_PC_METHOD_ITER_H +#define F_PC_METHOD_ITER_H + +#include "SComponent/c_list_iter.h" + +extern "C" { + +void fpcMtdIt_Method(node_list_class *pList, cNdIt_MethodFunc pMethod); + +}; + +#endif diff --git a/include/f/f_pc/f_pc_method_tag.h b/include/f/f_pc/f_pc_method_tag.h new file mode 100644 index 0000000000..dd979ab33f --- /dev/null +++ b/include/f/f_pc/f_pc_method_tag.h @@ -0,0 +1,21 @@ + +#ifndef F_PC_METHOD_TAG_H +#define F_PC_METHOD_TAG_H + +#include "SComponent/c_tag.h" + +typedef int (*process_method_tag_func)(void *); + +struct process_method_tag_class : public create_tag_class { + process_method_tag_func mpFunc; + void *mpMthdData; +}; + +extern "C" { + +void fpcMtdTg_MethodQTo(process_method_tag_class *pMthd); +int fpcMtdTg_Init(process_method_tag_class *pMthd, process_method_tag_func pFunc, void *pMthdData); + +}; + +#endif diff --git a/include/f/f_pc/f_pc_node.h b/include/f/f_pc/f_pc_node.h new file mode 100644 index 0000000000..9c840127a5 --- /dev/null +++ b/include/f/f_pc/f_pc_node.h @@ -0,0 +1,23 @@ + +#ifndef F_PC_NODE_H +#define F_PC_NODE_H + +#include "f/f_pc/f_pc_base.h" +#include "f/f_pc/f_pc_method.h" +#include "f/f_pc/f_pc_layer.h" + +struct process_node_class : public base_process_class { + process_method_class *mpNodeMtd; + layer_class mLayer; + node_list_class mLayerNodeLists[16]; + u8 mUnk0; +}; + +extern "C" { + +int fpcNd_Create(process_node_class *pNode); +bool fpcNd_IsDeleteTiming(void); + +}; + +#endif diff --git a/include/f/f_pc/f_pc_priority.h b/include/f/f_pc/f_pc_priority.h new file mode 100644 index 0000000000..ce6cf40799 --- /dev/null +++ b/include/f/f_pc/f_pc_priority.h @@ -0,0 +1,32 @@ + +#ifndef F_PC_PRIORITY_H +#define F_PC_PRIORITY_H + +#include "global.h" +#include "SComponent/c_tag.h" +#include "f/f_pc/f_pc_method_tag.h" + +struct process_priority_class : public create_tag_class { + process_method_tag_class mMtdTag; + struct { + u32 mLayer; + u16 mListID; + u16 mListPrio; + } a, b; +}; + +extern "C" { + +int fpcPi_IsInQueue(process_priority_class *pProc); +int fpcPi_QueueTo(process_priority_class *pProc); +int fpcPi_ToQueue(process_priority_class *pProc); +process_priority_class * fpcPi_GetFromQueue(void); +int fpcPi_Delete(process_priority_class *pProc); +int fpcPi_IsNormal(process_priority_class *pProc); +int fpcPi_Change(process_priority_class *pProc, unsigned int layer, unsigned short listID, unsigned short priority); +void fpcPi_Handler(void); +int fpcPi_Init(process_priority_class *pProc, void *pUserData, unsigned int layer, unsigned short listID, unsigned short priority); + +}; + +#endif diff --git a/include/f/f_pc/f_pc_profile.h b/include/f/f_pc/f_pc_profile.h new file mode 100644 index 0000000000..da105bf003 --- /dev/null +++ b/include/f/f_pc/f_pc_profile.h @@ -0,0 +1,13 @@ + +#ifndef F_PC_PROFILE_H +#define F_PC_PROFILE_H + +#include "global.h" + +extern "C" { + +void * fpcPf_Get(s16 profileID); + +}; + +#endif diff --git a/include/f/f_pc/f_pc_searcher.h b/include/f/f_pc/f_pc_searcher.h new file mode 100644 index 0000000000..2362b90244 --- /dev/null +++ b/include/f/f_pc/f_pc_searcher.h @@ -0,0 +1,16 @@ + +#ifndef F_PC_SEARCHER_H +#define F_PC_SEARCHER_H + +#include "global.h" + +struct base_process_class; + +extern "C" { + +void * fpcSch_JudgeForPName(base_process_class *pProc, void *pUserData); +void * fpcSch_JudgeByID(base_process_class *pProc, void *pUserData); + +}; + +#endif diff --git a/include/global.h b/include/global.h index 3e1e96deb1..10e453b8d9 100644 --- a/include/global.h +++ b/include/global.h @@ -1,6 +1,8 @@ #ifndef _global_h_ #define _global_h_ +#define ARRAY_SIZE(o) (sizeof((o)) / sizeof(*(o))) + #include "dolphin/types.h" #include "functions.h" diff --git a/libs/SSystem/SComponent/c_counter.cpp b/libs/SSystem/SComponent/c_counter.cpp index 4bf93c8658..cad95bd1ce 100644 --- a/libs/SSystem/SComponent/c_counter.cpp +++ b/libs/SSystem/SComponent/c_counter.cpp @@ -1 +1,24 @@ -// ok + +struct counter_class { + int mCounter0; + int mCounter1; + int mTimer; +}; + +// g_Counter +extern counter_class lbl_80430CD8; + +extern "C" { + +void cCt_Counter(int resetCounter1) +{ + if (resetCounter1 == 1) { + lbl_80430CD8.mCounter1 = 0; + } else { + lbl_80430CD8.mCounter1++; + } + + lbl_80430CD8.mCounter0++; +} + +}; diff --git a/libs/SSystem/SComponent/c_list.cpp b/libs/SSystem/SComponent/c_list.cpp index 4bf93c8658..22e18ba1c7 100644 --- a/libs/SSystem/SComponent/c_list.cpp +++ b/libs/SSystem/SComponent/c_list.cpp @@ -1 +1,72 @@ -// ok + +#include "global.h" +#include "SComponent/c_list.h" + +extern "C" { + +void cLs_Init(node_list_class *pList) +{ + pList->mpHead = NULL; + pList->mpTail = NULL; + pList->mSize = 0; +} + +int cLs_SingleCut(node_class *pNode) +{ + node_list_class *pList = (node_list_class *) pNode->mpData; + if (pNode == pList->mpHead) + pList->mpHead = pNode->mpNextNode; + if (pNode == pList->mpTail) + pList->mpTail = pNode->mpPrevNode; + cNd_SingleCut(pNode); + cNd_ClearObject(pNode); + int newSize = pList->mSize - 1; + pList->mSize = newSize; + return newSize > 0; +} + +int cLs_Addition(node_list_class *pList, node_class *pNode) +{ + if (pList->mpTail == NULL) { + pList->mpHead = pNode; + } else { + cNd_Addition(pList->mpTail, pNode); + } + + pList->mpTail = cNd_Last(pNode); + cNd_SetObject(pNode, pList); + pList->mSize = cNd_LengthOf(pList->mpHead); + return pList->mSize; +} + +int cLs_Insert(node_list_class *pList, int idx, node_class *pNode) +{ + node_class *pExisting = cNd_Order(pList->mpHead, idx); + if (pExisting == NULL) { + return cLs_Addition(pList, pNode); + } else { + cNd_SetObject(pNode, pList); + cNd_Insert(pExisting, pNode); + pList->mpHead = cNd_First(pNode); + pList->mSize = cNd_LengthOf(pList->mpHead); + return pList->mSize; + } +} + +node_class * cLs_GetFirst(node_list_class *pList) +{ + if (pList->mSize != 0) { + node_class *pHead = pList->mpHead; + cLs_SingleCut(pHead); + return pHead; + } else { + return NULL; + } +} + +void cLs_Create(node_list_class *pList) +{ + cLs_Init(pList); +} + +}; diff --git a/libs/SSystem/SComponent/c_list_iter.cpp b/libs/SSystem/SComponent/c_list_iter.cpp index 4bf93c8658..1ee96ca935 100644 --- a/libs/SSystem/SComponent/c_list_iter.cpp +++ b/libs/SSystem/SComponent/c_list_iter.cpp @@ -1 +1,23 @@ -// ok + +#include "global.h" +#include "SComponent/c_list_iter.h" + +extern "C" { + +int cLsIt_Method(node_list_class *pList, cNdIt_MethodFunc pMethod, void *pUserData) +{ + if (pList->mSize > 0) + return cNdIt_Method(pList->mpHead, pMethod, pUserData); + else + return 1; +} + +void * cLsIt_Judge(node_list_class *pList, cNdIt_JudgeFunc pJudge, void *pUserData) +{ + if (pList->mSize > 0) + return cNdIt_Judge(pList->mpHead, pJudge, pUserData); + else + return NULL; +} + +}; diff --git a/libs/SSystem/SComponent/c_node.cpp b/libs/SSystem/SComponent/c_node.cpp index 4bf93c8658..4fd843d63e 100644 --- a/libs/SSystem/SComponent/c_node.cpp +++ b/libs/SSystem/SComponent/c_node.cpp @@ -1 +1,125 @@ -// ok + +#include "global.h" +#include "SComponent/c_node.h" + +extern "C" { + +#define NODE_GET_PREV(pNode) (pNode ? pNode->mpPrevNode : NULL) +#define NODE_GET_NEXT(pNode) (pNode ? pNode->mpNextNode : NULL) + +void cNd_Join(node_class *pA, node_class *pB) +{ + pA->mpNextNode = pB; + pB->mpPrevNode = pA; +} + +int cNd_LengthOf(node_class *pNode) +{ + int count = 0; + while (pNode) { + count++; + pNode = NODE_GET_NEXT(pNode); + } + return count; +} + +node_class * cNd_First(node_class *pNode) +{ + node_class *pRet = NULL; + while (pNode) { + pRet = pNode; + pNode = NODE_GET_PREV(pNode); + } + return pRet; +} + +node_class * cNd_Last(node_class *pNode) +{ + node_class *pRet = NULL; + while (pNode) { + pRet = pNode; + pNode = NODE_GET_NEXT(pNode); + } + return pRet; +} + +node_class * cNd_Order(node_class *pNode, int idx) +{ + node_class *pRet = NULL; + int i = 0; + while (i < idx && pNode) { + pRet = pNode; + i++; + pNode = NODE_GET_NEXT(pNode); + } + if (i < idx) + return pRet; + return NULL; +} + +void cNd_SingleCut(node_class *pNode) +{ + node_class *pPrev = pNode->mpPrevNode; + node_class *pNext = pNode->mpNextNode; + + if (pPrev) + pPrev->mpNextNode = pNode->mpNextNode; + if (pNext) + pNext->mpPrevNode = pNode->mpPrevNode; + pNode->mpPrevNode = NULL; + pNode->mpNextNode = NULL; +} + +void cNd_Cut(node_class *pNode) +{ + if (pNode->mpPrevNode) + pNode->mpPrevNode->mpNextNode = NULL; + pNode->mpPrevNode = NULL; +} + +void cNd_Addition(node_class *pA, node_class *pB) +{ + node_class *pLast = cNd_Last(pA); + cNd_Join(pLast, pB); +} + +void cNd_Insert(node_class *pA, node_class *pB) +{ + node_class *pPrev = pA->mpPrevNode; + if (pPrev == NULL) { + cNd_Addition(pB, pA); + } else { + cNd_Cut(pA); + cNd_Addition(pPrev, pB); + cNd_Addition(pB, pA); + } +} + +void cNd_SetObject(node_class *pNode, void *pData) +{ + while (pNode) { + pNode->mpData = pData; + pNode = NODE_GET_NEXT(pNode); + } +} + +void cNd_ClearObject(node_class *pNode) +{ + cNd_SetObject(pNode, NULL); +} + +void cNd_ForcedClear(node_class *pNode) +{ + pNode->mpPrevNode = NULL; + pNode->mpNextNode = NULL; + pNode->mpData = NULL; +} + +void cNd_Create(node_class *pNode, void *pData) +{ + pNode->mpPrevNode = NULL; + pNode->mpNextNode = NULL; + pNode->mpData = pData; +} + +}; diff --git a/libs/SSystem/SComponent/c_node_iter.cpp b/libs/SSystem/SComponent/c_node_iter.cpp index 4bf93c8658..0f0a9613fe 100644 --- a/libs/SSystem/SComponent/c_node_iter.cpp +++ b/libs/SSystem/SComponent/c_node_iter.cpp @@ -1 +1,41 @@ -// ok + +#include "global.h" +#include "SComponent/c_node_iter.h" + +extern "C" { + +#define NODE_GET_PREV(pNode) (pNode ? pNode->mpPrevNode : NULL) +#define NODE_GET_NEXT(pNode) (pNode ? pNode->mpNextNode : NULL) + +int cNdIt_Method(node_class *pNode, cNdIt_MethodFunc pMethod, void *pUserData) +{ + int ret = 1; + node_class *pNext = NODE_GET_NEXT(pNode); + + while (pNode) { + int methodRet = pMethod(pNode, pUserData); + if (!methodRet) + ret = 0; + pNode = pNext; + pNext = NODE_GET_NEXT(pNext); + } + + return ret; +} + +void * cNdIt_Judge(node_class *pNode, cNdIt_JudgeFunc pJudge, void *pUserData) +{ + node_class *pNext = NODE_GET_NEXT(pNode); + + while (pNode) { + void *pJudgeRet = pJudge(pNode, pUserData); + if (pJudgeRet != NULL) + return pJudgeRet; + pNode = pNext; + pNext = NODE_GET_NEXT(pNext); + } + + return NULL; +} + +}; diff --git a/libs/SSystem/SComponent/c_phase.cpp b/libs/SSystem/SComponent/c_phase.cpp index 4bf93c8658..28ffa56643 100644 --- a/libs/SSystem/SComponent/c_phase.cpp +++ b/libs/SSystem/SComponent/c_phase.cpp @@ -1 +1,183 @@ -// ok + +#include "global.h" +#include "SComponent/c_phase.h" + +void cPhs_Reset(request_of_phase_process_class *pPhase) +{ + pPhase->mPhaseStep = 0; +} + +void cPhs_Set(request_of_phase_process_class *pPhase, cPhs__Handler *pHandlerTable) +{ + pPhase->mpHandlerTable = pHandlerTable; + pPhase->mPhaseStep = 0; +} + +void cPhs_UnCompleate(request_of_phase_process_class *pPhase) +{ + pPhase->mpHandlerTable = NULL; + cPhs_Reset(pPhase); +} + +int cPhs_Compleate(request_of_phase_process_class *pPhase) +{ + pPhase->mpHandlerTable = NULL; + return cPhs_COMPLEATE_e; +} + +#if NON_MATCHING +int cPhs_Next(request_of_phase_process_class *pPhase) +{ + // flow control + + if (pPhase->mpHandlerTable != NULL) { + pPhase->mPhaseStep++; + cPhs__Handler pHandler = pPhase->mpHandlerTable[pPhase->mPhaseStep]; + if (pHandler == NULL) + return cPhs_Compleate(pPhase); + else if (pHandler != NULL) + return 1; + } + + return cPhs_COMPLEATE_e; +} +#else +asm int cPhs_Next(request_of_phase_process_class *pPhase) +{ + nofralloc + /* 80266678 002635B8 94 21 FF F0 */ stwu r1, -0x10(r1) + /* 8026667C 002635BC 7C 08 02 A6 */ mflr r0 + /* 80266680 002635C0 90 01 00 14 */ stw r0, 0x14(r1) + /* 80266684 002635C4 80 A3 00 00 */ lwz r5, 0(r3) + /* 80266688 002635C8 28 05 00 00 */ cmplwi r5, 0 + /* 8026668C 002635CC 41 82 00 38 */ beq lbl_802666C4 + /* 80266690 002635D0 80 83 00 04 */ lwz r4, 4(r3) + /* 80266694 002635D4 38 04 00 01 */ addi r0, r4, 1 + /* 80266698 002635D8 90 03 00 04 */ stw r0, 4(r3) + /* 8026669C 002635DC 80 03 00 04 */ lwz r0, 4(r3) + /* 802666A0 002635E0 54 00 10 3A */ slwi r0, r0, 2 + /* 802666A4 002635E4 7C 05 00 2E */ lwzx r0, r5, r0 + /* 802666A8 002635E8 28 00 00 00 */ cmplwi r0, 0 + /* 802666AC 002635EC 41 82 00 08 */ beq lbl_802666B4 + /* 802666B0 002635F0 40 82 00 0C */ bne lbl_802666BC + lbl_802666B4: + /* 802666B4 002635F4 4B FF FF B5 */ bl cPhs_Compleate + /* 802666B8 002635F8 48 00 00 10 */ b lbl_802666C8 + lbl_802666BC: + /* 802666BC 002635FC 38 60 00 01 */ li r3, 1 + /* 802666C0 00263600 48 00 00 08 */ b lbl_802666C8 + lbl_802666C4: + /* 802666C4 00263604 38 60 00 04 */ li r3, 4 + lbl_802666C8: + /* 802666C8 00263608 80 01 00 14 */ lwz r0, 0x14(r1) + /* 802666CC 0026360C 7C 08 03 A6 */ mtlr r0 + /* 802666D0 00263610 38 21 00 10 */ addi r1, r1, 0x10 + /* 802666D4 00263614 4E 80 00 20 */ blr +} +#endif + +#if NON_MATCHING +int cPhs_Do(request_of_phase_process_class *pPhase, void *pUserData) +{ + cPhs__Handler *pHandlerTable = pPhase->mpHandlerTable; + if (pHandlerTable != NULL) { + // the load of pUserData seems to be slightly scrambled.. + int step = pPhase->mPhaseStep; + cPhs__Handler pHandler = pHandlerTable[step]; + int newStep = pHandler(pUserData); + switch (newStep) { + case 1: + return cPhs_Next(pPhase); + case 2: { + int step2 = cPhs_Next(pPhase); + return step2 == 1 ? 2 : cPhs_COMPLEATE_e; + } + case 3: { + cPhs_UnCompleate(pPhase); + return 3; + } + case cPhs_COMPLEATE_e: + return cPhs_Compleate(pPhase); + case cPhs_ERROR_e: + cPhs_UnCompleate(pPhase); + return cPhs_ERROR_e; + } + + return newStep; + } else { + return cPhs_Compleate(pPhase); + } +} +#else +asm int cPhs_Do(request_of_phase_process_class *pPhase, void *pUserData) +{ + nofralloc + /* 802666D8 00263618 94 21 FF F0 */ stwu r1, -0x10(r1) + /* 802666DC 0026361C 7C 08 02 A6 */ mflr r0 + /* 802666E0 00263620 90 01 00 14 */ stw r0, 0x14(r1) + /* 802666E4 00263624 93 E1 00 0C */ stw r31, 0xc(r1) + /* 802666E8 00263628 7C 7F 1B 78 */ mr r31, r3 + /* 802666EC 0026362C 80 A3 00 00 */ lwz r5, 0(r3) + /* 802666F0 00263630 28 05 00 00 */ cmplwi r5, 0 + /* 802666F4 00263634 41 82 00 A0 */ beq lbl_80266794 + /* 802666F8 00263638 80 1F 00 04 */ lwz r0, 4(r31) + /* 802666FC 0026363C 54 00 10 3A */ slwi r0, r0, 2 + /* 80266700 00263640 7C 83 23 78 */ mr r3, r4 + /* 80266704 00263644 7D 85 00 2E */ lwzx r12, r5, r0 + /* 80266708 00263648 7D 89 03 A6 */ mtctr r12 + /* 8026670C 0026364C 4E 80 04 21 */ bctrl + /* 80266710 00263650 2C 03 00 03 */ cmpwi r3, 3 + /* 80266714 00263654 41 82 00 5C */ beq lbl_80266770 + /* 80266718 00263658 40 80 00 14 */ bge lbl_8026672C + /* 8026671C 0026365C 2C 03 00 01 */ cmpwi r3, 1 + /* 80266720 00263660 41 82 00 1C */ beq lbl_8026673C + /* 80266724 00263664 40 80 00 24 */ bge lbl_80266748 + /* 80266728 00263668 48 00 00 70 */ b lbl_80266798 + lbl_8026672C: + /* 8026672C 0026366C 2C 03 00 05 */ cmpwi r3, 5 + /* 80266730 00263670 41 82 00 50 */ beq lbl_80266780 + /* 80266734 00263674 40 80 00 64 */ bge lbl_80266798 + /* 80266738 00263678 48 00 00 2C */ b lbl_80266764 + lbl_8026673C: + /* 8026673C 0026367C 7F E3 FB 78 */ mr r3, r31 + /* 80266740 00263680 4B FF FF 39 */ bl cPhs_Next + /* 80266744 00263684 48 00 00 54 */ b lbl_80266798 + lbl_80266748: + /* 80266748 00263688 7F E3 FB 78 */ mr r3, r31 + /* 8026674C 0026368C 4B FF FF 2D */ bl cPhs_Next + /* 80266750 00263690 2C 03 00 01 */ cmpwi r3, 1 + /* 80266754 00263694 38 60 00 04 */ li r3, 4 + /* 80266758 00263698 40 82 00 40 */ bne lbl_80266798 + /* 8026675C 0026369C 38 60 00 02 */ li r3, 2 + /* 80266760 002636A0 48 00 00 38 */ b lbl_80266798 + lbl_80266764: + /* 80266764 002636A4 7F E3 FB 78 */ mr r3, r31 + /* 80266768 002636A8 4B FF FF 01 */ bl cPhs_Compleate + /* 8026676C 002636AC 48 00 00 2C */ b lbl_80266798 + lbl_80266770: + /* 80266770 002636B0 7F E3 FB 78 */ mr r3, r31 + /* 80266774 002636B4 4B FF FE CD */ bl cPhs_UnCompleate + /* 80266778 002636B8 38 60 00 03 */ li r3, 3 + /* 8026677C 002636BC 48 00 00 1C */ b lbl_80266798 + lbl_80266780: + /* 80266780 002636C0 7F E3 FB 78 */ mr r3, r31 + /* 80266784 002636C4 4B FF FE BD */ bl cPhs_UnCompleate + /* 80266788 002636C8 38 60 00 05 */ li r3, 5 + /* 8026678C 002636CC 48 00 00 0C */ b lbl_80266798 + /* 80266790 002636D0 48 00 00 08 */ b lbl_80266798 + lbl_80266794: + /* 80266794 002636D4 4B FF FE D5 */ bl cPhs_Compleate + lbl_80266798: + /* 80266798 002636D8 83 E1 00 0C */ lwz r31, 0xc(r1) + /* 8026679C 002636DC 80 01 00 14 */ lwz r0, 0x14(r1) + /* 802667A0 002636E0 7C 08 03 A6 */ mtlr r0 + /* 802667A4 002636E4 38 21 00 10 */ addi r1, r1, 0x10 + /* 802667A8 002636E8 4E 80 00 20 */ blr +} +#endif + +int cPhs_Handler(request_of_phase_process_class *pPhase, cPhs__Handler *pHandlerTable, void *pUserData) +{ + pPhase->mpHandlerTable = pHandlerTable; + return cPhs_Do(pPhase, pUserData); +} diff --git a/libs/SSystem/SComponent/c_tag.cpp b/libs/SSystem/SComponent/c_tag.cpp index 4bf93c8658..b6d629fbeb 100644 --- a/libs/SSystem/SComponent/c_tag.cpp +++ b/libs/SSystem/SComponent/c_tag.cpp @@ -1 +1,91 @@ -// ok + +#include "SComponent/c_tag.h" +#include "SComponent/c_tree.h" + +extern "C" { + +int cTg_IsUse(create_tag_class *pTag) +{ + return pTag->mbIsUse; +} + +int cTg_SingleCutFromTree(create_tag_class *pTag) +{ + if (pTag->mbIsUse == true) { + pTag->mbIsUse = false; + cTr_SingleCut(pTag); + return true; + } else { + return false; + } +} + +int cTg_AdditionToTree(node_lists_tree_class *pTree, int listIdx, create_tag_class *pTag) +{ + if (!pTag->mbIsUse) { + int ret = cTr_Addition(pTree, listIdx, pTag); + if (ret) { + pTag->mbIsUse = true; + return ret; + } + } + + return 0; +} + +int cTg_InsertToTree(node_lists_tree_class *pTree, int listIdx, create_tag_class *pTag, int idx) +{ + if (!pTag->mbIsUse) { + int ret = cTr_Insert(pTree, listIdx, pTag, idx); + if (ret) { + pTag->mbIsUse = true; + return ret; + } + } + + return 0; +} + +node_class * cTg_GetFirst(node_list_class *pList) +{ + create_tag_class *pTag = (create_tag_class *) cLs_GetFirst(pList); + if (pTag != NULL) { + pTag->mbIsUse = false; + } else { + pTag = NULL; + } + return pTag; +} + +int cTg_SingleCut(create_tag_class *pTag) +{ + if (pTag->mbIsUse == 1) { + pTag->mbIsUse = false; + cLs_SingleCut(pTag); + return 1; + } + + return 0; +} + +int cTg_Addition(node_list_class *pList, create_tag_class *pTag) +{ + if (!pTag->mbIsUse) { + int ret = cLs_Addition(pList, pTag); + if (ret) { + pTag->mbIsUse = true; + return ret; + } + } + + return 0; +} + +void cTg_Create(create_tag_class *pTag, void *pData) +{ + cNd_Create(pTag, NULL); + pTag->mpTagData = pData; + pTag->mbIsUse = false; +} + +}; diff --git a/libs/SSystem/SComponent/c_tag_iter.cpp b/libs/SSystem/SComponent/c_tag_iter.cpp index 4bf93c8658..9748d44da1 100644 --- a/libs/SSystem/SComponent/c_tag_iter.cpp +++ b/libs/SSystem/SComponent/c_tag_iter.cpp @@ -1 +1,17 @@ -// ok + +#include "global.h" +#include "SComponent/c_tag_iter.h" + +extern "C" { + +int cTgIt_MethodCall(create_tag_class *pTag, method_filter *pMethodFilter) +{ + return pMethodFilter->mpMethodFunc((node_class *) pTag->mpTagData, pMethodFilter->mpUserData); +} + +void * cTgIt_JudgeFilter(create_tag_class *pTag, judge_filter *pJudgeFilter) +{ + return pJudgeFilter->mpJudgeFunc((node_class *) pTag->mpTagData, pJudgeFilter->mpUserData); +} + +}; diff --git a/libs/SSystem/SComponent/c_tree.cpp b/libs/SSystem/SComponent/c_tree.cpp index 4bf93c8658..036d871866 100644 --- a/libs/SSystem/SComponent/c_tree.cpp +++ b/libs/SSystem/SComponent/c_tree.cpp @@ -1 +1,37 @@ -// ok + +#include "global.h" +#include "SComponent/c_tree.h" + +extern "C" { + +int cTr_SingleCut(node_class *pNode) +{ + return cLs_SingleCut(pNode); +} + +int cTr_Addition(node_lists_tree_class *pTree, int listIdx, node_class *pNode) +{ + if (listIdx >= pTree->mNumLists) + return 0; + + return cLs_Addition(&pTree->mpLists[listIdx], pNode); +} + +int cTr_Insert(node_lists_tree_class *pTree, int listIdx, node_class *pNode, int idx) +{ + if (listIdx >= pTree->mNumLists) + return 0; + + return cLs_Insert(&pTree->mpLists[listIdx], idx, pNode); +} + +void cTr_Create(node_lists_tree_class *pTree, node_list_class *pLists, int numLists) +{ + pTree->mpLists = pLists; + pTree->mNumLists = numLists; + + while (numLists-- > 0) + cLs_Create(pLists++); +} + +}; diff --git a/libs/SSystem/SComponent/c_tree_iter.cpp b/libs/SSystem/SComponent/c_tree_iter.cpp index 4bf93c8658..cf8ff41c91 100644 --- a/libs/SSystem/SComponent/c_tree_iter.cpp +++ b/libs/SSystem/SComponent/c_tree_iter.cpp @@ -1 +1,33 @@ -// ok + +#include "global.h" +#include "SComponent/c_list_iter.h" +#include "SComponent/c_tree_iter.h" + +extern "C" { + +int cTrIt_Method(node_lists_tree_class *pTree, cNdIt_MethodFunc pMethod, void *pUserData) +{ + node_list_class *pList = pTree->mpLists; + int i = pTree->mNumLists; + int ret = 1; + while (i-- > 0) { + int sub = cLsIt_Method(pList++, pMethod, pUserData); + if (sub == 0) + ret = 0; + } + return ret; +} + +void * cTrIt_Judge(node_lists_tree_class *pTree, cNdIt_JudgeFunc pJudge, void *pUserData) +{ + node_list_class *pList = pTree->mpLists; + int i = pTree->mNumLists; + while (i-- > 0) { + void *pJudgeRet = cLsIt_Judge(pList++, pJudge, pUserData); + if (pJudgeRet != NULL) + return pJudgeRet; + } + return NULL; +} + +}; diff --git a/obj_files.mk b/obj_files.mk index b22b21a0f0..05c5d93c29 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -52,30 +52,32 @@ TEXT_O_FILES := \ $(BUILD_DIR)/asm/f/op/scene/f_op_scene_pause.o \ $(BUILD_DIR)/asm/f/pc/f_pc_base.o \ $(BUILD_DIR)/asm/f/pc/create/f_pc_create_iter.o \ - $(BUILD_DIR)/asm/f/pc/create/f_pc_create_req.o \ - $(BUILD_DIR)/asm/f/pc/create/f_pc_create_tag.o \ - $(BUILD_DIR)/asm/f/pc/f_pc_creator.o \ - $(BUILD_DIR)/asm/f/pc/delete/f_pc_delete_tag.o \ + $(BUILD_DIR)/src/f/f_pc/f_pc_create_req.o \ + $(BUILD_DIR)/src/f/f_pc/f_pc_create_tag.o \ + $(BUILD_DIR)/src/f/f_pc/f_pc_creator.o \ + $(BUILD_DIR)/src/f/f_pc/f_pc_delete_tag.o \ $(BUILD_DIR)/asm/f/pc/f_pc_deletor.o \ - $(BUILD_DIR)/asm/f/pc/draw/f_pc_draw_priority.o \ - $(BUILD_DIR)/asm/f/pc/f_pc_executor.o \ + $(BUILD_DIR)/src/f/f_pc/f_pc_deletor.o \ + $(BUILD_DIR)/src/f/f_pc/f_pc_draw_priority.o \ + $(BUILD_DIR)/src/f/f_pc/f_pc_executor.o \ $(BUILD_DIR)/asm/f/pc/f_pc_layer.o \ + $(BUILD_DIR)/src/f/f_pc/f_pc_leaf.o \ $(BUILD_DIR)/asm/f/pc/f_pc_leaf.o \ $(BUILD_DIR)/asm/f/pc/layer/f_pc_layer_iter.o \ $(BUILD_DIR)/asm/f/pc/layer/f_pc_layer_tag.o \ - $(BUILD_DIR)/asm/f/pc/f_pc_line.o \ - $(BUILD_DIR)/asm/f/pc/f_pc_load.o \ + $(BUILD_DIR)/src/f/f_pc/f_pc_line.o \ + $(BUILD_DIR)/src/f/f_pc/f_pc_load.o \ $(BUILD_DIR)/asm/f/pc/f_pc_manager.o \ - $(BUILD_DIR)/asm/f/pc/f_pc_method.o \ + $(BUILD_DIR)/src/f/f_pc/f_pc_method.o \ $(BUILD_DIR)/asm/f/pc/f_pc_node.o \ $(BUILD_DIR)/asm/f/pc/node/f_pc_node_req.o \ $(BUILD_DIR)/asm/f/pc/f_pc_priority.o \ - $(BUILD_DIR)/asm/f/pc/f_pc_profile.o \ - $(BUILD_DIR)/asm/f/pc/f_pc_searcher.o \ - $(BUILD_DIR)/asm/f/pc/line/f_pc_line_tag.o \ - $(BUILD_DIR)/asm/f/pc/line/f_pc_line_iter.o \ - $(BUILD_DIR)/asm/f/pc/method/f_pc_method_iter.o \ - $(BUILD_DIR)/asm/f/pc/method/f_pc_method_tag.o \ + $(BUILD_DIR)/src/f/f_pc/f_pc_profile.o \ + $(BUILD_DIR)/src/f/f_pc/f_pc_searcher.o \ + $(BUILD_DIR)/src/f/f_pc/f_pc_line_tag.o \ + $(BUILD_DIR)/src/f/f_pc/f_pc_line_iter.o \ + $(BUILD_DIR)/src/f/f_pc/f_pc_method_iter.o \ + $(BUILD_DIR)/src/f/f_pc/f_pc_method_tag.o \ $(BUILD_DIR)/asm/f/pc/f_pc_pause.o \ $(BUILD_DIR)/asm/f/pc/f_pc_draw.o \ $(BUILD_DIR)/asm/f/pc/fstcreate/f_pc_fstcreate_req.o \ @@ -243,17 +245,17 @@ TEXT_O_FILES := \ $(BUILD_DIR)/asm/SComponent/c/API/c_API_graphic.o \ $(BUILD_DIR)/asm/SComponent/c/cc/c_cc_d.o \ $(BUILD_DIR)/asm/SComponent/c/cc/c_cc_s.o \ - $(BUILD_DIR)/asm/SComponent/c/c_counter.o \ - $(BUILD_DIR)/asm/SComponent/c/c_list.o \ - $(BUILD_DIR)/asm/SComponent/c/list/c_list_iter.o \ - $(BUILD_DIR)/asm/SComponent/c/c_node.o \ - $(BUILD_DIR)/asm/SComponent/c/node/c_node_iter.o \ - $(BUILD_DIR)/asm/SComponent/c/c_tree.o \ - $(BUILD_DIR)/asm/SComponent/c/tree/c_tree_iter.o \ - $(BUILD_DIR)/asm/SComponent/c/c_phase.o \ + $(BUILD_DIR)/libs/SSystem/SComponent/c_counter.o \ + $(BUILD_DIR)/libs/SSystem/SComponent/c_list.o \ + $(BUILD_DIR)/libs/SSystem/SComponent/c_list_iter.o \ + $(BUILD_DIR)/libs/SSystem/SComponent/c_node.o \ + $(BUILD_DIR)/libs/SSystem/SComponent/c_node_iter.o \ + $(BUILD_DIR)/libs/SSystem/SComponent/c_tree.o \ + $(BUILD_DIR)/libs/SSystem/SComponent/c_tree_iter.o \ + $(BUILD_DIR)/libs/SSystem/SComponent/c_phase.o \ $(BUILD_DIR)/asm/SComponent/c/c_request.o \ - $(BUILD_DIR)/asm/SComponent/c/c_tag.o \ - $(BUILD_DIR)/asm/SComponent/c/tag/c_tag_iter.o \ + $(BUILD_DIR)/libs/SSystem/SComponent/c_tag.o \ + $(BUILD_DIR)/libs/SSystem/SComponent/c_tag_iter.o \ $(BUILD_DIR)/asm/SComponent/c/c_xyz.o \ $(BUILD_DIR)/asm/SComponent/c/c_sxyz.o \ $(BUILD_DIR)/asm/SComponent/c/c_math.o \ diff --git a/src/f/f_pc/f_pc_create_req.cpp b/src/f/f_pc/f_pc_create_req.cpp index 4bf93c8658..93052366dc 100644 --- a/src/f/f_pc/f_pc_create_req.cpp +++ b/src/f/f_pc/f_pc_create_req.cpp @@ -1 +1,178 @@ -// ok + +#include "f/f_pc/f_pc_create_req.h" + +#include "SComponent/c_phase.h" +#include "f/f_pc/f_pc_base.h" +#include "f/f_pc/f_pc_create_iter.h" +#include "f/f_pc/f_pc_layer.h" +#include "f/f_pc/f_pc_method.h" +#include "f/f_pc/f_pc_executor.h" +#include "f/f_pc/f_pc_deletor.h" + +extern "C" { + +bool fpcCtRq_isCreatingByID(create_tag *pTag, int *pId) +{ + create_request *pReq = (create_request *) (pTag->mpTagData); + return pReq->mBsPcId == *pId; +} + +bool fpcCtRq_IsCreatingByID(unsigned int id) +{ + return fpcCtIt_Judge((cNdIt_JudgeFunc) fpcCtRq_isCreatingByID, &id) != NULL; +} + +void fpcCtRq_CreateQTo(create_request *pReq) +{ + fpcCtTg_CreateQTo(pReq); + fpcLy_CreatedMesg(pReq->mpLayer); + fpcLy_CancelQTo(&pReq->mMtdTg); +} + +void fpcCtRq_ToCreateQ(create_request *pReq) +{ + fpcLy_CreatingMesg(pReq->mpLayer); + fpcLy_ToCancelQ(pReq->mpLayer, &pReq->mMtdTg); + fpcCtTg_ToCreateQ(pReq); +} + +extern void cMl_NS_free(void *pPtr); + +#if NON_MATCHING +bool fpcCtRq_Delete(create_request *pReq) +{ + fpcCtRq_CreateQTo(pReq); + if (pReq->mpCtRqMtd != NULL) { + // flow control + if (fpcMtd_Method(pReq->mpCtRqMtd->mpDelete, pReq) == 0) + return 0; + + if (pReq->mpRes) + pReq->mpRes->mpCtRq = NULL; + cMl_NS_free(pReq); + return 1; + } + + return 0; +} +#else +asm bool fpcCtRq_Delete(create_request *pReq) +{ + nofralloc +/* 80020BA0 0001DAE0 94 21 FF F0 */ stwu r1, -0x10(r1) +/* 80020BA4 0001DAE4 7C 08 02 A6 */ mflr r0 +/* 80020BA8 0001DAE8 90 01 00 14 */ stw r0, 0x14(r1) +/* 80020BAC 0001DAEC 93 E1 00 0C */ stw r31, 0xc(r1) +/* 80020BB0 0001DAF0 7C 7F 1B 78 */ mr r31, r3 +/* 80020BB4 0001DAF4 4B FF FF 6D */ bl fpcCtRq_CreateQTo +/* 80020BB8 0001DAF8 80 7F 00 34 */ lwz r3, 0x34(r31) +/* 80020BBC 0001DAFC 28 03 00 00 */ cmplwi r3, 0 +/* 80020BC0 0001DB00 41 82 00 20 */ beq lbl_80020BE0 +/* 80020BC4 0001DB04 80 63 00 08 */ lwz r3, 8(r3) +/* 80020BC8 0001DB08 7F E4 FB 78 */ mr r4, r31 +/* 80020BCC 0001DB0C 48 00 18 5D */ bl fpcMtd_Method +/* 80020BD0 0001DB10 2C 03 00 00 */ cmpwi r3, 0 +/* 80020BD4 0001DB14 40 82 00 0C */ bne lbl_80020BE0 +/* 80020BD8 0001DB18 38 60 00 00 */ li r3, 0 +/* 80020BDC 0001DB1C 48 00 00 24 */ b lbl_80020C00 +lbl_80020BE0: +/* 80020BE0 0001DB20 80 7F 00 40 */ lwz r3, 0x40(r31) +/* 80020BE4 0001DB24 28 03 00 00 */ cmplwi r3, 0 +/* 80020BE8 0001DB28 41 82 00 0C */ beq lbl_80020BF4 +/* 80020BEC 0001DB2C 38 00 00 00 */ li r0, 0 +/* 80020BF0 0001DB30 90 03 00 14 */ stw r0, 0x14(r3) +lbl_80020BF4: +/* 80020BF4 0001DB34 7F E3 FB 78 */ mr r3, r31 +/* 80020BF8 0001DB38 48 24 26 69 */ bl cMl_NS_free +/* 80020BFC 0001DB3C 38 60 00 01 */ li r3, 1 +lbl_80020C00: +/* 80020C00 0001DB40 83 E1 00 0C */ lwz r31, 0xc(r1) +/* 80020C04 0001DB44 80 01 00 14 */ lwz r0, 0x14(r1) +/* 80020C08 0001DB48 7C 08 03 A6 */ mtlr r0 +/* 80020C0C 0001DB4C 38 21 00 10 */ addi r1, r1, 0x10 +/* 80020C10 0001DB50 4E 80 00 20 */ blr +} +#endif + +bool fpcCtRq_Cancel(create_request *pReq) +{ + if (pReq != NULL && !pReq->mbIsCancelling) { + pReq->mbIsCancelling = true; + base_process_class *pProc = pReq->mpRes; + + if (pProc != NULL && !fpcDt_Delete(pProc)) + return false; + + if (pReq->mpCtRqMtd != NULL && !fpcMtd_Method(pReq->mpCtRqMtd->mpCancel, pReq)) + return false; + + return fpcCtRq_Delete(pReq); + } else { + return true; + } +} + +int fpcCtRq_IsDoing(create_request *pReq) +{ + if (pReq != NULL) + return pReq->mbIsCreating; + else + return false; +} + +static bool fpcCtRq_Do(create_request *pReq) +{ + int ret = cPhs_COMPLEATE_e; + + if (pReq->mpCtRqMtd != NULL) { + cPhs__Handler pHandler = pReq->mpCtRqMtd->mpHandler; + if (pHandler != NULL) { + pReq->mbIsCreating = true; + ret = pHandler(pReq); + pReq->mbIsCreating = false; + } + } + + switch (ret) { + case cPhs_COMPLEATE_e: { + int success = fpcEx_ToExecuteQ(pReq->mpRes); + if (success == 0) + return fpcCtRq_Cancel(pReq); + else + return fpcCtRq_Delete(pReq); + } + case 3: + case cPhs_ERROR_e: + return fpcCtRq_Cancel(pReq); + } + + return 1; +} + +void fpcCtRq_Handler(void) +{ + fpcCtIt_Method((cNdIt_MethodFunc) fpcCtRq_Do, NULL); +} + +extern void * cMl_NS_memalignB(int, unsigned long); +extern int fpcBs_MakeOfId(void); + +create_request * fpcCtRq_Create(layer_class *pLayer, unsigned long size, create_request_method_class *pMthd) +{ + create_request *pReq = (create_request *) cMl_NS_memalignB(-4, size); + + if (pReq != NULL) { + fpcCtTg_Init(pReq, pReq); + fpcMtdTg_Init(&pReq->mMtdTg, (process_method_tag_func) fpcCtRq_Cancel, pReq); + pReq->mpLayer = pLayer; + pReq->mpCtRqMtd = pMthd; + pReq->mBsPcId = fpcBs_MakeOfId(); + pReq->mpRes = NULL; + pReq->mbIsCancelling = false; + fpcCtRq_ToCreateQ(pReq); + } + + return pReq; +} + +}; diff --git a/src/f/f_pc/f_pc_create_tag.cpp b/src/f/f_pc/f_pc_create_tag.cpp index 4bf93c8658..56ec159d0a 100644 --- a/src/f/f_pc/f_pc_create_tag.cpp +++ b/src/f/f_pc/f_pc_create_tag.cpp @@ -1 +1,26 @@ -// ok + +#include "global.h" +#include "f/f_pc/f_pc_create_tag.h" + +// g_fpcCtTg_Queue +extern node_list_class lbl_803A3990; + +extern "C" { + +void fpcCtTg_ToCreateQ(create_tag_class *pTag) +{ + cTg_Addition(&lbl_803A3990, pTag); +} + +void fpcCtTg_CreateQTo(create_tag_class *pTag) +{ + cTg_SingleCut(pTag); +} + +int fpcCtTg_Init(create_tag *pTag, void *pUserData) +{ + cTg_Create(pTag, pUserData); + return 1; +} + +}; diff --git a/src/f/f_pc/f_pc_creator.cpp b/src/f/f_pc/f_pc_creator.cpp index 4bf93c8658..7b75f4cccc 100644 --- a/src/f/f_pc/f_pc_creator.cpp +++ b/src/f/f_pc/f_pc_creator.cpp @@ -1 +1,28 @@ -// ok + +#include "f/f_pc/f_pc_creator.h" +#include "f/f_pc/f_pc_base.h" +#include "f/f_pc/f_pc_create_req.h" + +extern "C" { + +bool fpcCt_IsCreatingByID(unsigned int id) +{ + return fpcCtRq_IsCreatingByID(id); +} + +int fpcCt_IsDoing(base_process_class *pProc) +{ + return fpcCtRq_IsDoing(pProc->mpCtRq); +} + +void fpcCt_Abort(base_process_class *pProc) +{ + fpcCtRq_Cancel(pProc->mpCtRq); +} + +void fpcCt_Handler(void) +{ + fpcCtRq_Handler(); +} + +}; diff --git a/src/f/f_pc/f_pc_delete_tag.cpp b/src/f/f_pc/f_pc_delete_tag.cpp index 4bf93c8658..954eade357 100644 --- a/src/f/f_pc/f_pc_delete_tag.cpp +++ b/src/f/f_pc/f_pc_delete_tag.cpp @@ -1 +1,49 @@ -// ok + +#include "global.h" +#include "f/f_pc/f_pc_delete_tag.h" + +// g_fpcDtTg_Queue +extern node_list_class lbl_803A39A0; + +extern "C" { + +bool fpcDtTg_IsEmpty(delete_tag_class *pTag) +{ + return lbl_803A39A0.mSize == 0; +} + +void fpcDtTg_ToDeleteQ(delete_tag_class *pTag) +{ + pTag->mTimer = 1; + cTg_Addition(&lbl_803A39A0, pTag); +} + +void fpcDtTg_DeleteQTo(delete_tag_class *pTag) +{ + cTg_SingleCut(pTag); +} + +int fpcDtTg_Do(delete_tag_class *pTag, delete_tag_func pFunc) +{ + if (pTag->mTimer <= 0) { + fpcDtTg_DeleteQTo(pTag); + int ret = pFunc(pTag->mpTagData); + if (ret == 0) { + fpcDtTg_ToDeleteQ(pTag); + return 0; + } else { + return 1; + } + } else { + pTag->mTimer--; + return 0; + } +} + +int fpcDtTg_Init(delete_tag_class *pTag, void *pUserData) +{ + cTg_Create(pTag, pUserData); + return 1; +} + +}; diff --git a/src/f/f_pc/f_pc_deletor.cpp b/src/f/f_pc/f_pc_deletor.cpp index 4bf93c8658..90af7ed3ea 100644 --- a/src/f/f_pc/f_pc_deletor.cpp +++ b/src/f/f_pc/f_pc_deletor.cpp @@ -1 +1,23 @@ -// ok + +#include "f/f_pc/f_pc_creator.h" +#include "f/f_pc/f_pc_deletor.h" +#include "f/f_pc/f_pc_base.h" + +extern "C" { + +int fpcDt_Delete(base_process_class *pProc) +{ + if (pProc != NULL) { + if (fpcCt_IsDoing(pProc) == 1) + return 0; + + if (pProc->mInitState == 3) + return 0; + + return fpcDt_ToDeleteQ(pProc); + } else { + return 1; + } +} + +}; diff --git a/src/f/f_pc/f_pc_draw_priority.cpp b/src/f/f_pc/f_pc_draw_priority.cpp index 4bf93c8658..b4e3dc73b5 100644 --- a/src/f/f_pc/f_pc_draw_priority.cpp +++ b/src/f/f_pc/f_pc_draw_priority.cpp @@ -1 +1,22 @@ -// ok + +#include "global.h" +#include "f/f_pc/f_pc_draw_priority.h" + +extern "C" { + +int fpcDwPi_Get(draw_priority_class *pDwPi) +{ + return pDwPi->mPriority; +} + +void fpcDwPi_Set(draw_priority_class *pDwPi, int p) +{ + pDwPi->mPriority = p; +} + +void fpcDwPi_Init(draw_priority_class *pDwPi, int p) +{ + fpcDwPi_Set(pDwPi, p); +} + +}; diff --git a/src/f/f_pc/f_pc_executor.cpp b/src/f/f_pc/f_pc_executor.cpp index 4bf93c8658..ff2e9ebbdf 100644 --- a/src/f/f_pc/f_pc_executor.cpp +++ b/src/f/f_pc/f_pc_executor.cpp @@ -1 +1,98 @@ -// ok + +#include "f/f_pc/f_pc_executor.h" +#include "f/f_pc/f_pc_base.h" +#include "f/f_pc/f_pc_line_iter.h" +#include "f/f_pc/f_pc_layer_tag.h" +#include "f/f_pc/f_pc_layer.h" +#include "f/f_pc/f_pc_node.h" +#include "f/f_pc/f_pc_searcher.h" + +extern "C" { + +extern int fpcLyTg_ToQueue(layer_management_tag_class *pTag, u32 layerID, u16 listID, u16 listPrio); +extern int fpcLyTg_QueueTo(layer_management_tag_class *pTag); +extern int fpcLyIt_OnlyHere(layer_class *pLayer, cNdIt_MethodFunc pFunc, void *pUserData); +extern void * fpcLyIt_AllJudge(void *pFunc, void *pUserData); +extern int fpcPause_IsEnable(base_process_class *pProc, int); + +// g_fpcNd_type +extern int lbl_80450D40; + +base_process_class * fpcEx_Search(void *pFunc, void *pUserData) +{ + return (base_process_class *) fpcLyIt_AllJudge(pFunc, pUserData); +} + +base_process_class * fpcEx_SearchByID(u32 id) +{ + if (id + 2 <= 1) + return NULL; + + return fpcEx_Search(fpcSch_JudgeByID, &id);; +} + +bool fpcEx_IsExist(int id) +{ + return fpcEx_SearchByID(id) != NULL; +} + +int fpcEx_Execute(base_process_class *pProc) +{ + if (pProc->mInitState != 2 || fpcPause_IsEnable(pProc, 1) == 1) + return 0; + fpcBs_Execute(pProc); + // TODO: missing return? +} + +int fpcEx_ToLineQ(base_process_class *pProc) +{ + layer_class *pLayer = pProc->mLyTg.mpLayer; + base_process_class *pLayerPcNode = pLayer->mpPcNode; + + if (pLayer->mLayerID == 0 || cTg_IsUse(&pLayerPcNode->mLnTg) == true) { + int ret = fpcLnTg_ToQueue(&pProc->mLnTg, pProc->mPi.b.mListID); + if (ret == 0) { + fpcLyTg_QueueTo(&pProc->mLyTg); + return 0; + } + + pProc->mInitState = 2; + if (fpcBs_Is_JustOfType(lbl_80450D40, pProc->mSubType)) { + process_node_class *pNode = (process_node_class *) pProc; + fpcLyIt_OnlyHere(&pNode->mLayer, (cNdIt_MethodFunc) fpcEx_ToLineQ, pNode); + } + + return 1; + } + + return 0; +} + +int fpcEx_ExecuteQTo(base_process_class *pProc) +{ + int ret = fpcLyTg_QueueTo(&pProc->mLyTg); + if (ret == 1) { + pProc->mInitState = 3; + return 1; + } else { + return 0; + } +} + +int fpcEx_ToExecuteQ(base_process_class *pProc) +{ + int ret = fpcLyTg_ToQueue(&pProc->mLyTg, pProc->mPi.b.mLayer, pProc->mPi.b.mListID, pProc->mPi.b.mListPrio); + if (ret == 1) { + fpcEx_ToLineQ(pProc); + return 1; + } else { + return 0; + } +} + +void fpcEx_Handler(cNdIt_MethodFunc pFunc) +{ + return fpcLnIt_Queue(pFunc); +} + +}; diff --git a/src/f/f_pc/f_pc_leaf.cpp b/src/f/f_pc/f_pc_leaf.cpp index 4bf93c8658..c3be4a4563 100644 --- a/src/f/f_pc/f_pc_leaf.cpp +++ b/src/f/f_pc/f_pc_leaf.cpp @@ -1 +1,26 @@ -// ok + +#include "f/f_pc/f_pc_leaf.h" + +extern "C" { + +int fpcLf_GetPriority(leafdraw_class *pLeaf) +{ + return fpcDwPi_Get(&pLeaf->mDwPi); +} + +int fpcLf_DrawMethod(leafdraw_method_class *pMthd, void *pUserData) +{ + return fpcMtd_Method(pMthd->mpDrawFunc, pUserData); +} + +#if 0 +int fpcLf_Draw(leafdraw_class *pLeaf) +{ + int ret = 0; + if (pLeaf->mbUnk0 == 0) + ret = fpcLf_DrawMethod(pLeaf->mpDrawMtd, pLeaf); + return ret; +} +#endif + +}; diff --git a/src/f/f_pc/f_pc_line.cpp b/src/f/f_pc/f_pc_line.cpp index 4bf93c8658..7771e47516 100644 --- a/src/f/f_pc/f_pc_line.cpp +++ b/src/f/f_pc/f_pc_line.cpp @@ -1 +1,18 @@ -// ok + +#include "global.h" +#include "SComponent/c_list.h" + +// l_fpcLn_Line +extern node_list_class lbl_803F4CF0[16]; + +extern "C" { + +void fpcLn_Create(void) +{ + int i = ARRAY_SIZE(lbl_803F4CF0); + node_list_class *pLine = lbl_803F4CF0; + while (i-- > 0) + cLs_Create(pLine++); +} + +}; diff --git a/src/f/f_pc/f_pc_line_iter.cpp b/src/f/f_pc/f_pc_line_iter.cpp index 4bf93c8658..984ef68179 100644 --- a/src/f/f_pc/f_pc_line_iter.cpp +++ b/src/f/f_pc/f_pc_line_iter.cpp @@ -1 +1,32 @@ -// ok + +#include "f/f_pc/f_pc_layer.h" +#include "f/f_pc/f_pc_base.h" +#include "SComponent/c_tag_iter.h" +#include "SComponent/c_tree_iter.h" + +// g_fpcLn_Queue +extern node_lists_tree_class lbl_804505D8; + +extern "C" { + +static int fpcLnIt_MethodCall(create_tag_class *pTag, method_filter *pFilter) +{ + layer_class *pLayer = ((base_process_class *) pTag->mpTagData)->mLyTg.mpLayer; + layer_class *pCurLayer = fpcLy_CurrentLayer(); + + fpcLy_SetCurrentLayer(pLayer); + int ret = cTgIt_MethodCall(pTag, pFilter); + fpcLy_SetCurrentLayer(pCurLayer); + + return ret; +} + +void fpcLnIt_Queue(cNdIt_MethodFunc pFunc) +{ + method_filter filter; + filter.mpMethodFunc = pFunc; + filter.mpUserData = NULL; + cTrIt_Method(&lbl_804505D8, (cNdIt_MethodFunc) fpcLnIt_MethodCall, &filter); +} + +}; diff --git a/src/f/f_pc/f_pc_line_tag.cpp b/src/f/f_pc/f_pc_line_tag.cpp index 4bf93c8658..f42449ca7b 100644 --- a/src/f/f_pc/f_pc_line_tag.cpp +++ b/src/f/f_pc/f_pc_line_tag.cpp @@ -1 +1,44 @@ -// ok + +#include "f/f_pc/f_pc_line_tag.h" + +// g_fpcLn_Queue +extern node_lists_tree_class lbl_804505D8; + +extern "C" { + +int fpcLnTg_Move(line_tag *pLineTag, int newLineListID) +{ + if (pLineTag->mLineListID != newLineListID) { + fpcLnTg_QueueTo(pLineTag); + return fpcLnTg_ToQueue(pLineTag, newLineListID); + } + + return 1; +} + +void fpcLnTg_QueueTo(line_tag *pLineTag) +{ + cTg_SingleCutFromTree(pLineTag); + pLineTag->mLineListID = -1; +} + +int fpcLnTg_ToQueue(line_tag *pLineTag, int lineListID) +{ + int ret = cTg_AdditionToTree(&lbl_804505D8, lineListID, pLineTag); + + if (ret) { + pLineTag->mLineListID = lineListID; + return 1; + } else { + return 0; + } +} + +void fpcLnTg_Init(line_tag *pLineTag, void *pData) +{ + cTg_Create(pLineTag, pData); + pLineTag->mLineListID = -1; +} + +}; + diff --git a/src/f/f_pc/f_pc_load.cpp b/src/f/f_pc/f_pc_load.cpp index 4bf93c8658..6afb58e1fb 100644 --- a/src/f/f_pc/f_pc_load.cpp +++ b/src/f/f_pc/f_pc_load.cpp @@ -1 +1,42 @@ -// ok + +#include "SComponent/c_phase.h" +#include "f/f_pc/f_pc_load.h" + +extern "C" { + +extern int cDyl_IsLinked(short procName); +extern int cDyl_Unlink(short procName); +extern int cDyl_LinkASync(short procName); + +bool fpcLd_Use(u16 procName) +{ + if (fpcLd_IsLoaded(procName) == true && fpcLd_Load(procName) == cPhs_COMPLEATE_e) + return true; + return false; +} + +int fpcLd_IsLoaded(u16 procName) +{ + return cDyl_IsLinked(procName); +} + +void fpcLd_Free(u16 procName) +{ + cDyl_Unlink(procName); +} + +int fpcLd_Load(u16 procName) +{ + int phase = cDyl_LinkASync(procName); + + switch (phase) { + case cPhs_COMPLEATE_e: + return cPhs_COMPLEATE_e; + case 0: + return 0; + default: + return cPhs_ERROR_e; + } +} + +}; diff --git a/src/f/f_pc/f_pc_method.cpp b/src/f/f_pc/f_pc_method.cpp index 4bf93c8658..3cf3634f10 100644 --- a/src/f/f_pc/f_pc_method.cpp +++ b/src/f/f_pc/f_pc_method.cpp @@ -1 +1,35 @@ -// ok + +#include "global.h" +#include "f/f_pc/f_pc_method.h" + +extern "C" { + +int fpcMtd_Method(process_method_func pFunc, void *pUserData) +{ + if (pFunc != NULL) + return pFunc(pUserData); + else + return 1; +} + +int fpcMtd_Execute(process_method_class *pMthd, void *pUserData) +{ + return fpcMtd_Method(pMthd->mpExecuteFunc, pUserData); +} + +int fpcMtd_IsDelete(process_method_class *pMthd, void *pUserData) +{ + return fpcMtd_Method(pMthd->mpIsDeleteFunc, pUserData); +} + +int fpcMtd_Delete(process_method_class *pMthd, void *pUserData) +{ + return fpcMtd_Method(pMthd->mpDeleteFunc, pUserData); +} + +int fpcMtd_Create(process_method_class *pMthd, void *pUserData) +{ + return fpcMtd_Method(pMthd->mpCreateFunc, pUserData); +} + +}; diff --git a/src/f/f_pc/f_pc_method_iter.cpp b/src/f/f_pc/f_pc_method_iter.cpp index 4bf93c8658..200a67fa45 100644 --- a/src/f/f_pc/f_pc_method_iter.cpp +++ b/src/f/f_pc/f_pc_method_iter.cpp @@ -1 +1,12 @@ -// ok + +#include "global.h" +#include "f/f_pc/f_pc_method_iter.h" + +extern "C" { + +void fpcMtdIt_Method(node_list_class *pList, cNdIt_MethodFunc pMethod) +{ + cLsIt_Method(pList, pMethod, NULL); +} + +}; diff --git a/src/f/f_pc/f_pc_method_tag.cpp b/src/f/f_pc/f_pc_method_tag.cpp index 4bf93c8658..880d1a6dbe 100644 --- a/src/f/f_pc/f_pc_method_tag.cpp +++ b/src/f/f_pc/f_pc_method_tag.cpp @@ -1 +1,32 @@ -// ok + +#include "f/f_pc/f_pc_method_tag.h" + +// g_fpcLn_Queue +extern node_lists_tree_class lbl_804505D8; + +extern "C" { + +void fpcMtdTg_Do(process_method_tag_class *pMthd) +{ + pMthd->mpFunc(pMthd->mpMthdData); +} + +void fpcMtdTg_ToMethodQ(node_list_class *pList, process_method_tag_class *pMthd) +{ + cTg_Addition(pList, pMthd); +} + +void fpcMtdTg_MethodQTo(process_method_tag_class *pMthd) +{ + cTg_SingleCut(pMthd); +} + +int fpcMtdTg_Init(process_method_tag_class *pMthd, process_method_tag_func pFunc, void *pMthdData) +{ + cTg_Create(pMthd, pMthd); + pMthd->mpFunc = pFunc; + pMthd->mpMthdData = pMthdData; + return 1; +} + +}; diff --git a/src/f/f_pc/f_pc_profile.cpp b/src/f/f_pc/f_pc_profile.cpp index 4bf93c8658..fb3f353342 100644 --- a/src/f/f_pc/f_pc_profile.cpp +++ b/src/f/f_pc/f_pc_profile.cpp @@ -1 +1,14 @@ -// ok + +#include "f/f_pc/f_pc_profile.h" + +// g_fpcPf_ProfileList_p +extern void ** lbl_80450D50; + +extern "C" { + +void * fpcPf_Get(s16 profileID) +{ + return lbl_80450D50[profileID]; +} + +}; diff --git a/src/f/f_pc/f_pc_searcher.cpp b/src/f/f_pc/f_pc_searcher.cpp index 4bf93c8658..4738b299dd 100644 --- a/src/f/f_pc/f_pc_searcher.cpp +++ b/src/f/f_pc/f_pc_searcher.cpp @@ -1 +1,23 @@ -// ok + +#include "f/f_pc/f_pc_searcher.h" +#include "f/f_pc/f_pc_base.h" + +extern "C" { + +void * fpcSch_JudgeForPName(base_process_class *pProc, void *pUserData) +{ + short pname = *(short*)pUserData; + if (pProc->mProcName == pname) + return pProc; + return NULL; +} + +void * fpcSch_JudgeByID(base_process_class *pProc, void *pUserData) +{ + int id = *(int*)pUserData; + if (pProc->mBsPcId == id) + return pProc; + return NULL; +} + +};