mirror of
https://github.com/zeldaret/tp
synced 2026-05-23 06:54:28 -04:00
obj_master_sword wip, fmobj mostly done, obj_usaku OK, some BG doc (#1897)
* obj_master_sword work, fix tag_chgrestart * fmobj mostly done * some bg documentation * d_a_obj_usaku OK * remove asm
This commit is contained in:
@@ -1,21 +0,0 @@
|
||||
lbl_8057CC8C:
|
||||
/* 8057CC8C 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 8057CC90 7C 08 02 A6 */ mflr r0
|
||||
/* 8057CC94 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 8057CC98 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 8057CC9C 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 8057CCA0 38 7F 05 68 */ addi r3, r31, 0x568
|
||||
/* 8057CCA4 3C 80 80 58 */ lis r4, d_a_obj_fmobj__stringBase0@ha /* 0x8057CF74@ha */
|
||||
/* 8057CCA8 38 84 CF 74 */ addi r4, r4, d_a_obj_fmobj__stringBase0@l /* 0x8057CF74@l */
|
||||
/* 8057CCAC 4B AB 03 5D */ bl dComIfG_resDelete__FP30request_of_phase_process_classPCc
|
||||
/* 8057CCB0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
|
||||
/* 8057CCB4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
|
||||
/* 8057CCB8 38 63 0F 38 */ addi r3, r3, 0xf38
|
||||
/* 8057CCBC 80 9F 05 B8 */ lwz r4, 0x5b8(r31)
|
||||
/* 8057CCC0 4B AF 75 91 */ bl Release__4cBgSFP9dBgW_Base
|
||||
/* 8057CCC4 38 60 00 01 */ li r3, 1
|
||||
/* 8057CCC8 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 8057CCCC 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 8057CCD0 7C 08 03 A6 */ mtlr r0
|
||||
/* 8057CCD4 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 8057CCD8 4E 80 00 20 */ blr
|
||||
@@ -1,28 +0,0 @@
|
||||
lbl_8057CBD8:
|
||||
/* 8057CBD8 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 8057CBDC 7C 08 02 A6 */ mflr r0
|
||||
/* 8057CBE0 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 8057CBE4 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 8057CBE8 93 C1 00 08 */ stw r30, 8(r1)
|
||||
/* 8057CBEC 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 8057CBF0 83 E3 05 74 */ lwz r31, 0x574(r3)
|
||||
/* 8057CBF4 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */
|
||||
/* 8057CBF8 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */
|
||||
/* 8057CBFC 38 80 00 40 */ li r4, 0x40
|
||||
/* 8057CC00 38 BE 04 D0 */ addi r5, r30, 0x4d0
|
||||
/* 8057CC04 38 DE 01 0C */ addi r6, r30, 0x10c
|
||||
/* 8057CC08 4B C2 6B BD */ bl settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c
|
||||
/* 8057CC0C 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */
|
||||
/* 8057CC10 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */
|
||||
/* 8057CC14 80 9F 00 04 */ lwz r4, 4(r31)
|
||||
/* 8057CC18 38 BE 01 0C */ addi r5, r30, 0x10c
|
||||
/* 8057CC1C 4B C2 81 85 */ bl setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c
|
||||
/* 8057CC20 7F E3 FB 78 */ mr r3, r31
|
||||
/* 8057CC24 4B A9 10 A1 */ bl mDoExt_modelUpdateDL__FP8J3DModel
|
||||
/* 8057CC28 38 60 00 01 */ li r3, 1
|
||||
/* 8057CC2C 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 8057CC30 83 C1 00 08 */ lwz r30, 8(r1)
|
||||
/* 8057CC34 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 8057CC38 7C 08 03 A6 */ mtlr r0
|
||||
/* 8057CC3C 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 8057CC40 4E 80 00 20 */ blr
|
||||
-19
@@ -1,19 +0,0 @@
|
||||
lbl_8057CC44:
|
||||
/* 8057CC44 A8 83 05 78 */ lha r4, 0x578(r3)
|
||||
/* 8057CC48 38 04 00 01 */ addi r0, r4, 1
|
||||
/* 8057CC4C B0 03 05 78 */ sth r0, 0x578(r3)
|
||||
/* 8057CC50 38 80 00 00 */ li r4, 0
|
||||
/* 8057CC54 38 00 00 02 */ li r0, 2
|
||||
/* 8057CC58 7C 09 03 A6 */ mtctr r0
|
||||
lbl_8057CC5C:
|
||||
/* 8057CC5C 38 C4 05 7E */ addi r6, r4, 0x57e
|
||||
/* 8057CC60 7C A3 32 AE */ lhax r5, r3, r6
|
||||
/* 8057CC64 2C 05 00 00 */ cmpwi r5, 0
|
||||
/* 8057CC68 41 82 00 0C */ beq lbl_8057CC74
|
||||
/* 8057CC6C 38 05 FF FF */ addi r0, r5, -1
|
||||
/* 8057CC70 7C 03 33 2E */ sthx r0, r3, r6
|
||||
lbl_8057CC74:
|
||||
/* 8057CC74 38 84 00 02 */ addi r4, r4, 2
|
||||
/* 8057CC78 42 00 FF E4 */ bdnz lbl_8057CC5C
|
||||
/* 8057CC7C 38 60 00 01 */ li r3, 1
|
||||
/* 8057CC80 4E 80 00 20 */ blr
|
||||
@@ -1,71 +0,0 @@
|
||||
lbl_8057CCDC:
|
||||
/* 8057CCDC 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 8057CCE0 7C 08 02 A6 */ mflr r0
|
||||
/* 8057CCE4 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 8057CCE8 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 8057CCEC 93 C1 00 08 */ stw r30, 8(r1)
|
||||
/* 8057CCF0 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 8057CCF4 3C 60 80 58 */ lis r3, d_a_obj_fmobj__stringBase0@ha /* 0x8057CF74@ha */
|
||||
/* 8057CCF8 38 63 CF 74 */ addi r3, r3, d_a_obj_fmobj__stringBase0@l /* 0x8057CF74@l */
|
||||
/* 8057CCFC 38 80 00 04 */ li r4, 4
|
||||
/* 8057CD00 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
|
||||
/* 8057CD04 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l /* 0x804061C0@l */
|
||||
/* 8057CD08 3F C5 00 02 */ addis r30, r5, 2
|
||||
/* 8057CD0C 3B DE C2 F8 */ addi r30, r30, -15624
|
||||
/* 8057CD10 7F C5 F3 78 */ mr r5, r30
|
||||
/* 8057CD14 38 C0 00 80 */ li r6, 0x80
|
||||
/* 8057CD18 4B AB F5 D5 */ bl getRes__14dRes_control_cFPCclP11dRes_info_ci
|
||||
/* 8057CD1C 3C 80 00 08 */ lis r4, 8
|
||||
/* 8057CD20 3C A0 11 00 */ lis r5, 0x1100 /* 0x11000084@ha */
|
||||
/* 8057CD24 38 A5 00 84 */ addi r5, r5, 0x0084 /* 0x11000084@l */
|
||||
/* 8057CD28 4B A9 7F 2D */ bl mDoExt_J3DModel__create__FP12J3DModelDataUlUl
|
||||
/* 8057CD2C 90 7F 05 74 */ stw r3, 0x574(r31)
|
||||
/* 8057CD30 80 1F 05 74 */ lwz r0, 0x574(r31)
|
||||
/* 8057CD34 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8057CD38 40 82 00 0C */ bne lbl_8057CD44
|
||||
/* 8057CD3C 38 60 00 00 */ li r3, 0
|
||||
/* 8057CD40 48 00 00 88 */ b lbl_8057CDC8
|
||||
lbl_8057CD44:
|
||||
/* 8057CD44 38 60 00 C0 */ li r3, 0xc0
|
||||
/* 8057CD48 4B D5 1F 05 */ bl __nw__FUl
|
||||
/* 8057CD4C 7C 60 1B 79 */ or. r0, r3, r3
|
||||
/* 8057CD50 41 82 00 0C */ beq lbl_8057CD5C
|
||||
/* 8057CD54 4B AF EC 1D */ bl __ct__4dBgWFv
|
||||
/* 8057CD58 7C 60 1B 78 */ mr r0, r3
|
||||
lbl_8057CD5C:
|
||||
/* 8057CD5C 90 1F 05 B8 */ stw r0, 0x5b8(r31)
|
||||
/* 8057CD60 80 1F 05 B8 */ lwz r0, 0x5b8(r31)
|
||||
/* 8057CD64 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 8057CD68 40 82 00 0C */ bne lbl_8057CD74
|
||||
/* 8057CD6C 38 60 00 00 */ li r3, 0
|
||||
/* 8057CD70 48 00 00 58 */ b lbl_8057CDC8
|
||||
lbl_8057CD74:
|
||||
/* 8057CD74 3C 60 80 58 */ lis r3, d_a_obj_fmobj__stringBase0@ha /* 0x8057CF74@ha */
|
||||
/* 8057CD78 38 63 CF 74 */ addi r3, r3, d_a_obj_fmobj__stringBase0@l /* 0x8057CF74@l */
|
||||
/* 8057CD7C 38 80 00 07 */ li r4, 7
|
||||
/* 8057CD80 7F C5 F3 78 */ mr r5, r30
|
||||
/* 8057CD84 38 C0 00 80 */ li r6, 0x80
|
||||
/* 8057CD88 4B AB F5 65 */ bl getRes__14dRes_control_cFPCclP11dRes_info_ci
|
||||
/* 8057CD8C 7C 64 1B 78 */ mr r4, r3
|
||||
/* 8057CD90 80 7F 05 B8 */ lwz r3, 0x5b8(r31)
|
||||
/* 8057CD94 38 A0 00 01 */ li r5, 1
|
||||
/* 8057CD98 38 DF 05 88 */ addi r6, r31, 0x588
|
||||
/* 8057CD9C 4B AF D1 9D */ bl Set__4cBgWFP6cBgD_tUlPA3_A4_f
|
||||
/* 8057CDA0 54 60 06 3E */ clrlwi r0, r3, 0x18
|
||||
/* 8057CDA4 28 00 00 01 */ cmplwi r0, 1
|
||||
/* 8057CDA8 40 82 00 0C */ bne lbl_8057CDB4
|
||||
/* 8057CDAC 38 60 00 00 */ li r3, 0
|
||||
/* 8057CDB0 48 00 00 18 */ b lbl_8057CDC8
|
||||
lbl_8057CDB4:
|
||||
/* 8057CDB4 3C 60 80 07 */ lis r3, dBgS_MoveBGProc_Typical__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz@ha /* 0x80075A24@ha */
|
||||
/* 8057CDB8 38 03 5A 24 */ addi r0, r3, dBgS_MoveBGProc_Typical__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz@l /* 0x80075A24@l */
|
||||
/* 8057CDBC 80 7F 05 B8 */ lwz r3, 0x5b8(r31)
|
||||
/* 8057CDC0 90 03 00 B0 */ stw r0, 0xb0(r3)
|
||||
/* 8057CDC4 38 60 00 01 */ li r3, 1
|
||||
lbl_8057CDC8:
|
||||
/* 8057CDC8 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 8057CDCC 83 C1 00 08 */ lwz r30, 8(r1)
|
||||
/* 8057CDD0 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 8057CDD4 7C 08 03 A6 */ mtlr r0
|
||||
/* 8057CDD8 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 8057CDDC 4E 80 00 20 */ blr
|
||||
-78
@@ -1,78 +0,0 @@
|
||||
lbl_80C90C70:
|
||||
/* 80C90C70 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 80C90C74 7C 08 02 A6 */ mflr r0
|
||||
/* 80C90C78 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
/* 80C90C7C 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 80C90C80 4B 6D 15 5D */ bl _savegpr_29
|
||||
/* 80C90C84 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 80C90C88 3C 60 80 C9 */ lis r3, l_arcName@ha /* 0x80C9199C@ha */
|
||||
/* 80C90C8C 38 63 19 9C */ addi r3, r3, l_arcName@l /* 0x80C9199C@l */
|
||||
/* 80C90C90 80 63 00 00 */ lwz r3, 0(r3)
|
||||
/* 80C90C94 38 80 00 05 */ li r4, 5
|
||||
/* 80C90C98 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
|
||||
/* 80C90C9C 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l /* 0x804061C0@l */
|
||||
/* 80C90CA0 3F A5 00 02 */ addis r29, r5, 2
|
||||
/* 80C90CA4 3B BD C2 F8 */ addi r29, r29, -15624
|
||||
/* 80C90CA8 7F A5 EB 78 */ mr r5, r29
|
||||
/* 80C90CAC 38 C0 00 80 */ li r6, 0x80
|
||||
/* 80C90CB0 4B 3A B6 3D */ bl getRes__14dRes_control_cFPCclP11dRes_info_ci
|
||||
/* 80C90CB4 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 80C90CB8 3C 80 00 08 */ lis r4, 8
|
||||
/* 80C90CBC 3C A0 11 00 */ lis r5, 0x1100 /* 0x11000284@ha */
|
||||
/* 80C90CC0 38 A5 02 84 */ addi r5, r5, 0x0284 /* 0x11000284@l */
|
||||
/* 80C90CC4 4B 38 3F 91 */ bl mDoExt_J3DModel__create__FP12J3DModelDataUlUl
|
||||
/* 80C90CC8 90 7F 05 68 */ stw r3, 0x568(r31)
|
||||
/* 80C90CCC 80 1F 05 68 */ lwz r0, 0x568(r31)
|
||||
/* 80C90CD0 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80C90CD4 40 82 00 0C */ bne lbl_80C90CE0
|
||||
/* 80C90CD8 38 60 00 00 */ li r3, 0
|
||||
/* 80C90CDC 48 00 00 A4 */ b lbl_80C90D80
|
||||
lbl_80C90CE0:
|
||||
/* 80C90CE0 3C 60 80 C9 */ lis r3, l_arcName@ha /* 0x80C9199C@ha */
|
||||
/* 80C90CE4 38 63 19 9C */ addi r3, r3, l_arcName@l /* 0x80C9199C@l */
|
||||
/* 80C90CE8 80 63 00 00 */ lwz r3, 0(r3)
|
||||
/* 80C90CEC 38 80 00 0B */ li r4, 0xb
|
||||
/* 80C90CF0 7F A5 EB 78 */ mr r5, r29
|
||||
/* 80C90CF4 38 C0 00 80 */ li r6, 0x80
|
||||
/* 80C90CF8 4B 3A B5 F5 */ bl getRes__14dRes_control_cFPCclP11dRes_info_ci
|
||||
/* 80C90CFC 7C 65 1B 78 */ mr r5, r3
|
||||
/* 80C90D00 38 7F 05 74 */ addi r3, r31, 0x574
|
||||
/* 80C90D04 38 9E 00 58 */ addi r4, r30, 0x58
|
||||
/* 80C90D08 38 C0 00 01 */ li r6, 1
|
||||
/* 80C90D0C 38 E0 00 02 */ li r7, 2
|
||||
/* 80C90D10 3D 00 80 C9 */ lis r8, lit_3759@ha /* 0x80C91950@ha */
|
||||
/* 80C90D14 C0 28 19 50 */ lfs f1, lit_3759@l(r8) /* 0x80C91950@l */
|
||||
/* 80C90D18 39 00 00 00 */ li r8, 0
|
||||
/* 80C90D1C 39 20 FF FF */ li r9, -1
|
||||
/* 80C90D20 4B 37 C9 1D */ bl init__13mDoExt_btkAnmFP16J3DMaterialTableP19J3DAnmTextureSRTKeyiifss
|
||||
/* 80C90D24 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80C90D28 40 82 00 0C */ bne lbl_80C90D34
|
||||
/* 80C90D2C 38 60 00 00 */ li r3, 0
|
||||
/* 80C90D30 48 00 00 50 */ b lbl_80C90D80
|
||||
lbl_80C90D34:
|
||||
/* 80C90D34 3C 60 80 C9 */ lis r3, l_arcName@ha /* 0x80C9199C@ha */
|
||||
/* 80C90D38 38 63 19 9C */ addi r3, r3, l_arcName@l /* 0x80C9199C@l */
|
||||
/* 80C90D3C 80 63 00 00 */ lwz r3, 0(r3)
|
||||
/* 80C90D40 38 80 00 08 */ li r4, 8
|
||||
/* 80C90D44 7F A5 EB 78 */ mr r5, r29
|
||||
/* 80C90D48 38 C0 00 80 */ li r6, 0x80
|
||||
/* 80C90D4C 4B 3A B5 A1 */ bl getRes__14dRes_control_cFPCclP11dRes_info_ci
|
||||
/* 80C90D50 7C 65 1B 78 */ mr r5, r3
|
||||
/* 80C90D54 38 7F 05 8C */ addi r3, r31, 0x58c
|
||||
/* 80C90D58 38 9E 00 58 */ addi r4, r30, 0x58
|
||||
/* 80C90D5C 38 C0 00 01 */ li r6, 1
|
||||
/* 80C90D60 38 E0 00 02 */ li r7, 2
|
||||
/* 80C90D64 3D 00 80 C9 */ lis r8, lit_3759@ha /* 0x80C91950@ha */
|
||||
/* 80C90D68 C0 28 19 50 */ lfs f1, lit_3759@l(r8) /* 0x80C91950@l */
|
||||
/* 80C90D6C 39 00 00 00 */ li r8, 0
|
||||
/* 80C90D70 39 20 FF FF */ li r9, -1
|
||||
/* 80C90D74 4B 37 C9 99 */ bl init__13mDoExt_brkAnmFP16J3DMaterialTableP15J3DAnmTevRegKeyiifss
|
||||
/* 80C90D78 30 03 FF FF */ addic r0, r3, -1
|
||||
/* 80C90D7C 7C 60 19 10 */ subfe r3, r0, r3
|
||||
lbl_80C90D80:
|
||||
/* 80C90D80 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 80C90D84 4B 6D 14 A5 */ bl _restgpr_29
|
||||
/* 80C90D88 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 80C90D8C 7C 08 03 A6 */ mtlr r0
|
||||
/* 80C90D90 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 80C90D94 4E 80 00 20 */ blr
|
||||
-9
@@ -1,9 +0,0 @@
|
||||
lbl_80C90C50:
|
||||
/* 80C90C50 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80C90C54 7C 08 02 A6 */ mflr r0
|
||||
/* 80C90C58 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80C90C5C 48 00 00 15 */ bl CreateHeap__18daObjMasterSword_cFv
|
||||
/* 80C90C60 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 80C90C64 7C 08 03 A6 */ mtlr r0
|
||||
/* 80C90C68 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80C90C6C 4E 80 00 20 */ blr
|
||||
-9
@@ -1,9 +0,0 @@
|
||||
lbl_80C90D98:
|
||||
/* 80C90D98 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80C90D9C 7C 08 02 A6 */ mflr r0
|
||||
/* 80C90DA0 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80C90DA4 48 00 00 15 */ bl create__18daObjMasterSword_cFv
|
||||
/* 80C90DA8 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 80C90DAC 7C 08 03 A6 */ mtlr r0
|
||||
/* 80C90DB0 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80C90DB4 4E 80 00 20 */ blr
|
||||
-11
@@ -1,11 +0,0 @@
|
||||
lbl_80C91420:
|
||||
/* 80C91420 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80C91424 7C 08 02 A6 */ mflr r0
|
||||
/* 80C91428 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80C9142C 38 80 FF FF */ li r4, -1
|
||||
/* 80C91430 48 00 00 19 */ bl __dt__18daObjMasterSword_cFv
|
||||
/* 80C91434 38 60 00 01 */ li r3, 1
|
||||
/* 80C91438 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 80C9143C 7C 08 03 A6 */ mtlr r0
|
||||
/* 80C91440 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80C91444 4E 80 00 20 */ blr
|
||||
-9
@@ -1,9 +0,0 @@
|
||||
lbl_80C916F4:
|
||||
/* 80C916F4 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80C916F8 7C 08 02 A6 */ mflr r0
|
||||
/* 80C916FC 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80C91700 48 00 00 15 */ bl draw__18daObjMasterSword_cFv
|
||||
/* 80C91704 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 80C91708 7C 08 03 A6 */ mtlr r0
|
||||
/* 80C9170C 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80C91710 4E 80 00 20 */ blr
|
||||
-69
@@ -1,69 +0,0 @@
|
||||
lbl_80C915E8:
|
||||
/* 80C915E8 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 80C915EC 7C 08 02 A6 */ mflr r0
|
||||
/* 80C915F0 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
/* 80C915F4 93 E1 00 1C */ stw r31, 0x1c(r1)
|
||||
/* 80C915F8 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 80C915FC 80 83 07 1C */ lwz r4, 0x71c(r3)
|
||||
/* 80C91600 39 84 00 0C */ addi r12, r4, 0xc
|
||||
/* 80C91604 4B 6D 0A 81 */ bl __ptmf_scall
|
||||
/* 80C91608 60 00 00 00 */ nop
|
||||
/* 80C9160C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
|
||||
/* 80C91610 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
|
||||
/* 80C91614 38 63 23 3C */ addi r3, r3, 0x233c
|
||||
/* 80C91618 38 9F 05 E0 */ addi r4, r31, 0x5e0
|
||||
/* 80C9161C 4B 5D 35 8D */ bl Set__4cCcSFP8cCcD_Obj
|
||||
/* 80C91620 38 7F 05 74 */ addi r3, r31, 0x574
|
||||
/* 80C91624 4B 37 BE 05 */ bl play__14mDoExt_baseAnmFv
|
||||
/* 80C91628 38 7F 05 8C */ addi r3, r31, 0x58c
|
||||
/* 80C9162C 4B 37 BD FD */ bl play__14mDoExt_baseAnmFv
|
||||
/* 80C91630 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
|
||||
/* 80C91634 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
|
||||
/* 80C91638 38 63 0D D8 */ addi r3, r3, 0xdd8
|
||||
/* 80C9163C 3C 80 80 38 */ lis r4, tempBitLabels__20dSv_event_tmp_flag_c@ha /* 0x803790C0@ha */
|
||||
/* 80C91640 38 84 90 C0 */ addi r4, r4, tempBitLabels__20dSv_event_tmp_flag_c@l /* 0x803790C0@l */
|
||||
/* 80C91644 A0 84 00 92 */ lhz r4, 0x92(r4)
|
||||
/* 80C91648 4B 3A 33 75 */ bl isEventBit__11dSv_event_cCFUs
|
||||
/* 80C9164C 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80C91650 41 82 00 8C */ beq lbl_80C916DC
|
||||
/* 80C91654 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
|
||||
/* 80C91658 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
|
||||
/* 80C9165C 38 63 00 CC */ addi r3, r3, 0xcc
|
||||
/* 80C91660 38 80 00 29 */ li r4, 0x29
|
||||
/* 80C91664 4B 3A 27 FD */ bl onFirstBit__21dSv_player_get_item_cFUc
|
||||
/* 80C91668 38 60 00 29 */ li r3, 0x29
|
||||
/* 80C9166C 38 80 00 00 */ li r4, 0
|
||||
/* 80C91670 4B 58 CE C1 */ bl dMeter2Info_setSword__FUcb
|
||||
/* 80C91674 38 60 00 29 */ li r3, 0x29
|
||||
/* 80C91678 4B 39 D8 49 */ bl dComIfGs_setSelectEquipSword__FUc
|
||||
/* 80C9167C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
|
||||
/* 80C91680 38 83 61 C0 */ addi r4, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
|
||||
/* 80C91684 A0 04 00 00 */ lhz r0, 0(r4)
|
||||
/* 80C91688 C0 44 5D C0 */ lfs f2, 0x5dc0(r4)
|
||||
/* 80C9168C 3C 60 80 C9 */ lis r3, lit_4030@ha /* 0x80C91960@ha */
|
||||
/* 80C91690 C8 23 19 60 */ lfd f1, lit_4030@l(r3) /* 0x80C91960@l */
|
||||
/* 80C91694 90 01 00 0C */ stw r0, 0xc(r1)
|
||||
/* 80C91698 3C 00 43 30 */ lis r0, 0x4330
|
||||
/* 80C9169C 90 01 00 08 */ stw r0, 8(r1)
|
||||
/* 80C916A0 C8 01 00 08 */ lfd f0, 8(r1)
|
||||
/* 80C916A4 EC 00 08 28 */ fsubs f0, f0, f1
|
||||
/* 80C916A8 EC 02 00 2A */ fadds f0, f2, f0
|
||||
/* 80C916AC D0 04 5D C0 */ stfs f0, 0x5dc0(r4)
|
||||
/* 80C916B0 38 00 00 00 */ li r0, 0
|
||||
/* 80C916B4 98 04 5E B6 */ stb r0, 0x5eb6(r4)
|
||||
/* 80C916B8 38 64 07 F0 */ addi r3, r4, 0x7f0
|
||||
/* 80C916BC 80 1F 00 B0 */ lwz r0, 0xb0(r31)
|
||||
/* 80C916C0 54 00 0B FC */ rlwinm r0, r0, 1, 0xf, 0x1e
|
||||
/* 80C916C4 3C 80 80 3A */ lis r4, saveBitLabels__16dSv_event_flag_c@ha /* 0x803A7288@ha */
|
||||
/* 80C916C8 38 84 72 88 */ addi r4, r4, saveBitLabels__16dSv_event_flag_c@l /* 0x803A7288@l */
|
||||
/* 80C916CC 7C 84 02 2E */ lhzx r4, r4, r0
|
||||
/* 80C916D0 4B 3A 32 BD */ bl onEventBit__11dSv_event_cFUs
|
||||
/* 80C916D4 7F E3 FB 78 */ mr r3, r31
|
||||
/* 80C916D8 4B 38 85 A5 */ bl fopAcM_delete__FP10fopAc_ac_c
|
||||
lbl_80C916DC:
|
||||
/* 80C916DC 38 60 00 01 */ li r3, 1
|
||||
/* 80C916E0 83 E1 00 1C */ lwz r31, 0x1c(r1)
|
||||
/* 80C916E4 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 80C916E8 7C 08 03 A6 */ mtlr r0
|
||||
/* 80C916EC 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 80C916F0 4E 80 00 20 */ blr
|
||||
-70
@@ -1,70 +0,0 @@
|
||||
lbl_80C90B50:
|
||||
/* 80C90B50 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 80C90B54 7C 08 02 A6 */ mflr r0
|
||||
/* 80C90B58 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
/* 80C90B5C 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 80C90B60 4B 6D 16 71 */ bl _savegpr_26
|
||||
/* 80C90B64 7C 7A 1B 78 */ mr r26, r3
|
||||
/* 80C90B68 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
|
||||
/* 80C90B6C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
|
||||
/* 80C90B70 80 63 5D AC */ lwz r3, 0x5dac(r3)
|
||||
/* 80C90B74 7F 44 D3 78 */ mr r4, r26
|
||||
/* 80C90B78 81 83 06 28 */ lwz r12, 0x628(r3)
|
||||
/* 80C90B7C 81 8C 01 D8 */ lwz r12, 0x1d8(r12)
|
||||
/* 80C90B80 7D 89 03 A6 */ mtctr r12
|
||||
/* 80C90B84 4E 80 04 21 */ bctrl
|
||||
/* 80C90B88 54 60 06 3F */ clrlwi. r0, r3, 0x18
|
||||
/* 80C90B8C 41 82 00 70 */ beq lbl_80C90BFC
|
||||
/* 80C90B90 3B 60 00 00 */ li r27, 0
|
||||
/* 80C90B94 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
|
||||
/* 80C90B98 3B A3 61 C0 */ addi r29, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
|
||||
/* 80C90B9C 3B 9D 56 B8 */ addi r28, r29, 0x56b8
|
||||
/* 80C90BA0 3B C0 00 08 */ li r30, 8
|
||||
/* 80C90BA4 3B E0 00 00 */ li r31, 0
|
||||
/* 80C90BA8 48 00 00 48 */ b lbl_80C90BF0
|
||||
lbl_80C90BAC:
|
||||
/* 80C90BAC 7F 83 E3 78 */ mr r3, r28
|
||||
/* 80C90BB0 7F 64 DB 78 */ mr r4, r27
|
||||
/* 80C90BB4 4B 3E 2B 81 */ bl ActionTarget__12dAttention_cFl
|
||||
/* 80C90BB8 7C 03 D0 40 */ cmplw r3, r26
|
||||
/* 80C90BBC 40 82 00 30 */ bne lbl_80C90BEC
|
||||
/* 80C90BC0 7F 83 E3 78 */ mr r3, r28
|
||||
/* 80C90BC4 4B 3D FC BD */ bl getActionBtnB__12dAttention_cFv
|
||||
/* 80C90BC8 28 03 00 00 */ cmplwi r3, 0
|
||||
/* 80C90BCC 41 82 00 20 */ beq lbl_80C90BEC
|
||||
/* 80C90BD0 7F 83 E3 78 */ mr r3, r28
|
||||
/* 80C90BD4 4B 3D FC AD */ bl getActionBtnB__12dAttention_cFv
|
||||
/* 80C90BD8 80 03 00 0C */ lwz r0, 0xc(r3)
|
||||
/* 80C90BDC 28 00 00 04 */ cmplwi r0, 4
|
||||
/* 80C90BE0 40 82 00 0C */ bne lbl_80C90BEC
|
||||
/* 80C90BE4 9B DD 5E 3C */ stb r30, 0x5e3c(r29)
|
||||
/* 80C90BE8 9B FD 5E 57 */ stb r31, 0x5e57(r29)
|
||||
lbl_80C90BEC:
|
||||
/* 80C90BEC 3B 7B 00 01 */ addi r27, r27, 1
|
||||
lbl_80C90BF0:
|
||||
/* 80C90BF0 80 1C 04 30 */ lwz r0, 0x430(r28)
|
||||
/* 80C90BF4 7C 1B 00 00 */ cmpw r27, r0
|
||||
/* 80C90BF8 41 80 FF B4 */ blt lbl_80C90BAC
|
||||
lbl_80C90BFC:
|
||||
/* 80C90BFC 80 1A 04 9C */ lwz r0, 0x49c(r26)
|
||||
/* 80C90C00 54 00 04 A5 */ rlwinm. r0, r0, 0, 0x12, 0x12
|
||||
/* 80C90C04 41 82 00 34 */ beq lbl_80C90C38
|
||||
/* 80C90C08 38 60 00 2F */ li r3, 0x2f
|
||||
/* 80C90C0C 38 80 00 00 */ li r4, 0
|
||||
/* 80C90C10 4B 58 D8 A1 */ bl dMeter2Info_setCloth__FUcb
|
||||
/* 80C90C14 7F 43 D3 78 */ mr r3, r26
|
||||
/* 80C90C18 80 1A 00 B0 */ lwz r0, 0xb0(r26)
|
||||
/* 80C90C1C 54 04 86 3E */ rlwinm r4, r0, 0x10, 0x18, 0x1f
|
||||
/* 80C90C20 38 A0 00 FF */ li r5, 0xff
|
||||
/* 80C90C24 3C C0 00 01 */ lis r6, 0x0001 /* 0x0000FFFF@ha */
|
||||
/* 80C90C28 38 C6 FF FF */ addi r6, r6, 0xFFFF /* 0x0000FFFF@l */
|
||||
/* 80C90C2C 38 E0 00 01 */ li r7, 1
|
||||
/* 80C90C30 39 00 00 00 */ li r8, 0
|
||||
/* 80C90C34 4B 38 AB 81 */ bl fopAcM_orderMapToolEvent__FP10fopAc_ac_cUcsUsUsUs
|
||||
lbl_80C90C38:
|
||||
/* 80C90C38 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 80C90C3C 4B 6D 15 E1 */ bl _restgpr_26
|
||||
/* 80C90C40 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 80C90C44 7C 08 03 A6 */ mtlr r0
|
||||
/* 80C90C48 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 80C90C4C 4E 80 00 20 */ blr
|
||||
-23
@@ -1,23 +0,0 @@
|
||||
lbl_80C90AF8:
|
||||
/* 80C90AF8 80 03 05 5C */ lwz r0, 0x55c(r3)
|
||||
/* 80C90AFC 60 00 00 10 */ ori r0, r0, 0x10
|
||||
/* 80C90B00 90 03 05 5C */ stw r0, 0x55c(r3)
|
||||
/* 80C90B04 C0 03 04 A8 */ lfs f0, 0x4a8(r3)
|
||||
/* 80C90B08 D0 03 04 D0 */ stfs f0, 0x4d0(r3)
|
||||
/* 80C90B0C C0 03 04 AC */ lfs f0, 0x4ac(r3)
|
||||
/* 80C90B10 D0 03 04 D4 */ stfs f0, 0x4d4(r3)
|
||||
/* 80C90B14 C0 03 04 B0 */ lfs f0, 0x4b0(r3)
|
||||
/* 80C90B18 D0 03 04 D8 */ stfs f0, 0x4d8(r3)
|
||||
/* 80C90B1C A8 03 04 B4 */ lha r0, 0x4b4(r3)
|
||||
/* 80C90B20 B0 03 04 DC */ sth r0, 0x4dc(r3)
|
||||
/* 80C90B24 A8 03 04 B6 */ lha r0, 0x4b6(r3)
|
||||
/* 80C90B28 B0 03 04 DE */ sth r0, 0x4de(r3)
|
||||
/* 80C90B2C A8 03 04 B8 */ lha r0, 0x4b8(r3)
|
||||
/* 80C90B30 B0 03 04 E0 */ sth r0, 0x4e0(r3)
|
||||
/* 80C90B34 A8 03 04 B4 */ lha r0, 0x4b4(r3)
|
||||
/* 80C90B38 B0 03 04 E4 */ sth r0, 0x4e4(r3)
|
||||
/* 80C90B3C A8 03 04 B6 */ lha r0, 0x4b6(r3)
|
||||
/* 80C90B40 B0 03 04 E6 */ sth r0, 0x4e6(r3)
|
||||
/* 80C90B44 A8 03 04 B8 */ lha r0, 0x4b8(r3)
|
||||
/* 80C90B48 B0 03 04 E8 */ sth r0, 0x4e8(r3)
|
||||
/* 80C90B4C 4E 80 00 20 */ blr
|
||||
@@ -1,82 +0,0 @@
|
||||
lbl_80D211AC:
|
||||
/* 80D211AC 94 21 FF E0 */ stwu r1, -0x20(r1)
|
||||
/* 80D211B0 7C 08 02 A6 */ mflr r0
|
||||
/* 80D211B4 90 01 00 24 */ stw r0, 0x24(r1)
|
||||
/* 80D211B8 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 80D211BC 4B 64 10 21 */ bl _savegpr_29
|
||||
/* 80D211C0 7C 7E 1B 78 */ mr r30, r3
|
||||
/* 80D211C4 3C 80 80 D2 */ lis r4, lit_3744@ha /* 0x80D212DC@ha */
|
||||
/* 80D211C8 3B E4 12 DC */ addi r31, r4, lit_3744@l /* 0x80D212DC@l */
|
||||
/* 80D211CC 80 03 04 A0 */ lwz r0, 0x4a0(r3)
|
||||
/* 80D211D0 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
|
||||
/* 80D211D4 40 82 00 1C */ bne lbl_80D211F0
|
||||
/* 80D211D8 28 1E 00 00 */ cmplwi r30, 0
|
||||
/* 80D211DC 41 82 00 08 */ beq lbl_80D211E4
|
||||
/* 80D211E0 4B 2F 79 85 */ bl __ct__10fopAc_ac_cFv
|
||||
lbl_80D211E4:
|
||||
/* 80D211E4 80 1E 04 A0 */ lwz r0, 0x4a0(r30)
|
||||
/* 80D211E8 60 00 00 08 */ ori r0, r0, 8
|
||||
/* 80D211EC 90 1E 04 A0 */ stw r0, 0x4a0(r30)
|
||||
lbl_80D211F0:
|
||||
/* 80D211F0 38 7E 05 68 */ addi r3, r30, 0x568
|
||||
/* 80D211F4 3C 80 80 D2 */ lis r4, d_a_obj_usaku__stringBase0@ha /* 0x80D212EC@ha */
|
||||
/* 80D211F8 38 84 12 EC */ addi r4, r4, d_a_obj_usaku__stringBase0@l /* 0x80D212EC@l */
|
||||
/* 80D211FC 4B 30 BC C1 */ bl dComIfG_resLoad__FP30request_of_phase_process_classPCc
|
||||
/* 80D21200 7C 7D 1B 78 */ mr r29, r3
|
||||
/* 80D21204 2C 1D 00 04 */ cmpwi r29, 4
|
||||
/* 80D21208 40 82 00 B0 */ bne lbl_80D212B8
|
||||
/* 80D2120C 80 1E 00 B0 */ lwz r0, 0xb0(r30)
|
||||
/* 80D21210 98 1E 05 70 */ stb r0, 0x570(r30)
|
||||
/* 80D21214 88 1E 05 70 */ lbz r0, 0x570(r30)
|
||||
/* 80D21218 28 00 00 FF */ cmplwi r0, 0xff
|
||||
/* 80D2121C 40 82 00 0C */ bne lbl_80D21228
|
||||
/* 80D21220 38 00 00 00 */ li r0, 0
|
||||
/* 80D21224 98 1E 05 70 */ stb r0, 0x570(r30)
|
||||
lbl_80D21228:
|
||||
/* 80D21228 7F C3 F3 78 */ mr r3, r30
|
||||
/* 80D2122C 3C 80 80 D2 */ lis r4, useHeapInit__FP10fopAc_ac_c@ha /* 0x80D210A8@ha */
|
||||
/* 80D21230 38 84 10 A8 */ addi r4, r4, useHeapInit__FP10fopAc_ac_c@l /* 0x80D210A8@l */
|
||||
/* 80D21234 38 A0 0C 60 */ li r5, 0xc60
|
||||
/* 80D21238 4B 2F 92 79 */ bl fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl
|
||||
/* 80D2123C 54 60 06 3F */ clrlwi. r0, r3, 0x18
|
||||
/* 80D21240 40 82 00 0C */ bne lbl_80D2124C
|
||||
/* 80D21244 38 60 00 05 */ li r3, 5
|
||||
/* 80D21248 48 00 00 74 */ b lbl_80D212BC
|
||||
lbl_80D2124C:
|
||||
/* 80D2124C 80 9E 05 B0 */ lwz r4, 0x5b0(r30)
|
||||
/* 80D21250 28 04 00 00 */ cmplwi r4, 0
|
||||
/* 80D21254 41 82 00 28 */ beq lbl_80D2127C
|
||||
/* 80D21258 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
|
||||
/* 80D2125C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
|
||||
/* 80D21260 38 63 0F 38 */ addi r3, r3, 0xf38
|
||||
/* 80D21264 7F C5 F3 78 */ mr r5, r30
|
||||
/* 80D21268 4B 35 37 A1 */ bl Regist__4dBgSFP9dBgW_BaseP10fopAc_ac_c
|
||||
/* 80D2126C 54 60 06 3F */ clrlwi. r0, r3, 0x18
|
||||
/* 80D21270 41 82 00 0C */ beq lbl_80D2127C
|
||||
/* 80D21274 38 60 00 05 */ li r3, 5
|
||||
/* 80D21278 48 00 00 44 */ b lbl_80D212BC
|
||||
lbl_80D2127C:
|
||||
/* 80D2127C 80 7E 05 74 */ lwz r3, 0x574(r30)
|
||||
/* 80D21280 38 03 00 24 */ addi r0, r3, 0x24
|
||||
/* 80D21284 90 1E 05 04 */ stw r0, 0x504(r30)
|
||||
/* 80D21288 7F C3 F3 78 */ mr r3, r30
|
||||
/* 80D2128C C0 3F 00 00 */ lfs f1, 0(r31)
|
||||
/* 80D21290 C0 5F 00 04 */ lfs f2, 4(r31)
|
||||
/* 80D21294 FC 60 08 90 */ fmr f3, f1
|
||||
/* 80D21298 4B 2F 92 91 */ bl fopAcM_SetMin__FP10fopAc_ac_cfff
|
||||
/* 80D2129C 7F C3 F3 78 */ mr r3, r30
|
||||
/* 80D212A0 C0 3F 00 08 */ lfs f1, 8(r31)
|
||||
/* 80D212A4 C0 5F 00 0C */ lfs f2, 0xc(r31)
|
||||
/* 80D212A8 FC 60 08 90 */ fmr f3, f1
|
||||
/* 80D212AC 4B 2F 92 8D */ bl fopAcM_SetMax__FP10fopAc_ac_cfff
|
||||
/* 80D212B0 7F C3 F3 78 */ mr r3, r30
|
||||
/* 80D212B4 4B FF FD 09 */ bl daObj_Usaku_Execute__FP15obj_usaku_class
|
||||
lbl_80D212B8:
|
||||
/* 80D212B8 7F A3 EB 78 */ mr r3, r29
|
||||
lbl_80D212BC:
|
||||
/* 80D212BC 39 61 00 20 */ addi r11, r1, 0x20
|
||||
/* 80D212C0 4B 64 0F 69 */ bl _restgpr_29
|
||||
/* 80D212C4 80 01 00 24 */ lwz r0, 0x24(r1)
|
||||
/* 80D212C8 7C 08 03 A6 */ mtlr r0
|
||||
/* 80D212CC 38 21 00 20 */ addi r1, r1, 0x20
|
||||
/* 80D212D0 4E 80 00 20 */ blr
|
||||
@@ -1,24 +0,0 @@
|
||||
lbl_80D21050:
|
||||
/* 80D21050 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80D21054 7C 08 02 A6 */ mflr r0
|
||||
/* 80D21058 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80D2105C 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 80D21060 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 80D21064 38 7F 05 68 */ addi r3, r31, 0x568
|
||||
/* 80D21068 3C 80 80 D2 */ lis r4, d_a_obj_usaku__stringBase0@ha /* 0x80D212EC@ha */
|
||||
/* 80D2106C 38 84 12 EC */ addi r4, r4, d_a_obj_usaku__stringBase0@l /* 0x80D212EC@l */
|
||||
/* 80D21070 4B 30 BF 99 */ bl dComIfG_resDelete__FP30request_of_phase_process_classPCc
|
||||
/* 80D21074 80 9F 05 B0 */ lwz r4, 0x5b0(r31)
|
||||
/* 80D21078 28 04 00 00 */ cmplwi r4, 0
|
||||
/* 80D2107C 41 82 00 14 */ beq lbl_80D21090
|
||||
/* 80D21080 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
|
||||
/* 80D21084 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
|
||||
/* 80D21088 38 63 0F 38 */ addi r3, r3, 0xf38
|
||||
/* 80D2108C 4B 35 31 C5 */ bl Release__4cBgSFP9dBgW_Base
|
||||
lbl_80D21090:
|
||||
/* 80D21090 38 60 00 01 */ li r3, 1
|
||||
/* 80D21094 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 80D21098 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 80D2109C 7C 08 03 A6 */ mtlr r0
|
||||
/* 80D210A0 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80D210A4 4E 80 00 20 */ blr
|
||||
@@ -1,26 +0,0 @@
|
||||
lbl_80D20F58:
|
||||
/* 80D20F58 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80D20F5C 7C 08 02 A6 */ mflr r0
|
||||
/* 80D20F60 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80D20F64 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 80D20F68 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 80D20F6C 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */
|
||||
/* 80D20F70 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */
|
||||
/* 80D20F74 38 80 00 10 */ li r4, 0x10
|
||||
/* 80D20F78 38 BF 04 D0 */ addi r5, r31, 0x4d0
|
||||
/* 80D20F7C 38 DF 01 0C */ addi r6, r31, 0x10c
|
||||
/* 80D20F80 4B 48 28 45 */ bl settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c
|
||||
/* 80D20F84 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */
|
||||
/* 80D20F88 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */
|
||||
/* 80D20F8C 80 9F 05 74 */ lwz r4, 0x574(r31)
|
||||
/* 80D20F90 80 84 00 04 */ lwz r4, 4(r4)
|
||||
/* 80D20F94 38 BF 01 0C */ addi r5, r31, 0x10c
|
||||
/* 80D20F98 4B 48 3E 09 */ bl setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c
|
||||
/* 80D20F9C 80 7F 05 74 */ lwz r3, 0x574(r31)
|
||||
/* 80D20FA0 4B 2E CD 25 */ bl mDoExt_modelUpdateDL__FP8J3DModel
|
||||
/* 80D20FA4 38 60 00 01 */ li r3, 1
|
||||
/* 80D20FA8 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 80D20FAC 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 80D20FB0 7C 08 03 A6 */ mtlr r0
|
||||
/* 80D20FB4 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80D20FB8 4E 80 00 20 */ blr
|
||||
-37
@@ -1,37 +0,0 @@
|
||||
lbl_80D20FBC:
|
||||
/* 80D20FBC 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80D20FC0 7C 08 02 A6 */ mflr r0
|
||||
/* 80D20FC4 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80D20FC8 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 80D20FCC 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 80D20FD0 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
|
||||
/* 80D20FD4 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
|
||||
/* 80D20FD8 C0 3F 04 D0 */ lfs f1, 0x4d0(r31)
|
||||
/* 80D20FDC C0 5F 04 D4 */ lfs f2, 0x4d4(r31)
|
||||
/* 80D20FE0 C0 7F 04 D8 */ lfs f3, 0x4d8(r31)
|
||||
/* 80D20FE4 4B 62 59 05 */ bl PSMTXTrans
|
||||
/* 80D20FE8 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
|
||||
/* 80D20FEC 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
|
||||
/* 80D20FF0 A8 9F 04 E6 */ lha r4, 0x4e6(r31)
|
||||
/* 80D20FF4 4B 2E B4 41 */ bl mDoMtx_YrotM__FPA4_fs
|
||||
/* 80D20FF8 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
|
||||
/* 80D20FFC 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
|
||||
/* 80D21000 80 9F 05 74 */ lwz r4, 0x574(r31)
|
||||
/* 80D21004 38 84 00 24 */ addi r4, r4, 0x24
|
||||
/* 80D21008 4B 62 54 A9 */ bl PSMTXCopy
|
||||
/* 80D2100C 80 1F 05 B0 */ lwz r0, 0x5b0(r31)
|
||||
/* 80D21010 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80D21014 41 82 00 1C */ beq lbl_80D21030
|
||||
/* 80D21018 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
|
||||
/* 80D2101C 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
|
||||
/* 80D21020 38 9F 05 80 */ addi r4, r31, 0x580
|
||||
/* 80D21024 4B 62 54 8D */ bl PSMTXCopy
|
||||
/* 80D21028 80 7F 05 B0 */ lwz r3, 0x5b0(r31)
|
||||
/* 80D2102C 4B 35 A9 95 */ bl Move__4dBgWFv
|
||||
lbl_80D21030:
|
||||
/* 80D21030 38 60 00 01 */ li r3, 1
|
||||
/* 80D21034 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 80D21038 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 80D2103C 7C 08 03 A6 */ mtlr r0
|
||||
/* 80D21040 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80D21044 4E 80 00 20 */ blr
|
||||
@@ -1,71 +0,0 @@
|
||||
lbl_80D210A8:
|
||||
/* 80D210A8 94 21 FF F0 */ stwu r1, -0x10(r1)
|
||||
/* 80D210AC 7C 08 02 A6 */ mflr r0
|
||||
/* 80D210B0 90 01 00 14 */ stw r0, 0x14(r1)
|
||||
/* 80D210B4 93 E1 00 0C */ stw r31, 0xc(r1)
|
||||
/* 80D210B8 93 C1 00 08 */ stw r30, 8(r1)
|
||||
/* 80D210BC 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 80D210C0 3C 60 80 D2 */ lis r3, d_a_obj_usaku__stringBase0@ha /* 0x80D212EC@ha */
|
||||
/* 80D210C4 38 63 12 EC */ addi r3, r3, d_a_obj_usaku__stringBase0@l /* 0x80D212EC@l */
|
||||
/* 80D210C8 38 80 00 04 */ li r4, 4
|
||||
/* 80D210CC 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
|
||||
/* 80D210D0 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l /* 0x804061C0@l */
|
||||
/* 80D210D4 3F C5 00 02 */ addis r30, r5, 2
|
||||
/* 80D210D8 3B DE C2 F8 */ addi r30, r30, -15624
|
||||
/* 80D210DC 7F C5 F3 78 */ mr r5, r30
|
||||
/* 80D210E0 38 C0 00 80 */ li r6, 0x80
|
||||
/* 80D210E4 4B 31 B2 09 */ bl getRes__14dRes_control_cFPCclP11dRes_info_ci
|
||||
/* 80D210E8 3C 80 00 08 */ lis r4, 8
|
||||
/* 80D210EC 3C A0 11 00 */ lis r5, 0x1100 /* 0x11000084@ha */
|
||||
/* 80D210F0 38 A5 00 84 */ addi r5, r5, 0x0084 /* 0x11000084@l */
|
||||
/* 80D210F4 4B 2F 3B 61 */ bl mDoExt_J3DModel__create__FP12J3DModelDataUlUl
|
||||
/* 80D210F8 90 7F 05 74 */ stw r3, 0x574(r31)
|
||||
/* 80D210FC 80 1F 05 74 */ lwz r0, 0x574(r31)
|
||||
/* 80D21100 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80D21104 40 82 00 0C */ bne lbl_80D21110
|
||||
/* 80D21108 38 60 00 00 */ li r3, 0
|
||||
/* 80D2110C 48 00 00 88 */ b lbl_80D21194
|
||||
lbl_80D21110:
|
||||
/* 80D21110 38 60 00 C0 */ li r3, 0xc0
|
||||
/* 80D21114 4B 5A DB 39 */ bl __nw__FUl
|
||||
/* 80D21118 7C 60 1B 79 */ or. r0, r3, r3
|
||||
/* 80D2111C 41 82 00 0C */ beq lbl_80D21128
|
||||
/* 80D21120 4B 35 A8 51 */ bl __ct__4dBgWFv
|
||||
/* 80D21124 7C 60 1B 78 */ mr r0, r3
|
||||
lbl_80D21128:
|
||||
/* 80D21128 90 1F 05 B0 */ stw r0, 0x5b0(r31)
|
||||
/* 80D2112C 80 1F 05 B0 */ lwz r0, 0x5b0(r31)
|
||||
/* 80D21130 28 00 00 00 */ cmplwi r0, 0
|
||||
/* 80D21134 40 82 00 0C */ bne lbl_80D21140
|
||||
/* 80D21138 38 60 00 00 */ li r3, 0
|
||||
/* 80D2113C 48 00 00 58 */ b lbl_80D21194
|
||||
lbl_80D21140:
|
||||
/* 80D21140 3C 60 80 D2 */ lis r3, d_a_obj_usaku__stringBase0@ha /* 0x80D212EC@ha */
|
||||
/* 80D21144 38 63 12 EC */ addi r3, r3, d_a_obj_usaku__stringBase0@l /* 0x80D212EC@l */
|
||||
/* 80D21148 38 80 00 07 */ li r4, 7
|
||||
/* 80D2114C 7F C5 F3 78 */ mr r5, r30
|
||||
/* 80D21150 38 C0 00 80 */ li r6, 0x80
|
||||
/* 80D21154 4B 31 B1 99 */ bl getRes__14dRes_control_cFPCclP11dRes_info_ci
|
||||
/* 80D21158 7C 64 1B 78 */ mr r4, r3
|
||||
/* 80D2115C 80 7F 05 B0 */ lwz r3, 0x5b0(r31)
|
||||
/* 80D21160 38 A0 00 01 */ li r5, 1
|
||||
/* 80D21164 38 DF 05 80 */ addi r6, r31, 0x580
|
||||
/* 80D21168 4B 35 8D D1 */ bl Set__4cBgWFP6cBgD_tUlPA3_A4_f
|
||||
/* 80D2116C 54 60 06 3E */ clrlwi r0, r3, 0x18
|
||||
/* 80D21170 28 00 00 01 */ cmplwi r0, 1
|
||||
/* 80D21174 40 82 00 0C */ bne lbl_80D21180
|
||||
/* 80D21178 38 60 00 00 */ li r3, 0
|
||||
/* 80D2117C 48 00 00 18 */ b lbl_80D21194
|
||||
lbl_80D21180:
|
||||
/* 80D21180 3C 60 80 07 */ lis r3, dBgS_MoveBGProc_Typical__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz@ha /* 0x80075A24@ha */
|
||||
/* 80D21184 38 03 5A 24 */ addi r0, r3, dBgS_MoveBGProc_Typical__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz@l /* 0x80075A24@l */
|
||||
/* 80D21188 80 7F 05 B0 */ lwz r3, 0x5b0(r31)
|
||||
/* 80D2118C 90 03 00 B0 */ stw r0, 0xb0(r3)
|
||||
/* 80D21190 38 60 00 01 */ li r3, 1
|
||||
lbl_80D21194:
|
||||
/* 80D21194 83 E1 00 0C */ lwz r31, 0xc(r1)
|
||||
/* 80D21198 83 C1 00 08 */ lwz r30, 8(r1)
|
||||
/* 80D2119C 80 01 00 14 */ lwz r0, 0x14(r1)
|
||||
/* 80D211A0 7C 08 03 A6 */ mtlr r0
|
||||
/* 80D211A4 38 21 00 10 */ addi r1, r1, 0x10
|
||||
/* 80D211A8 4E 80 00 20 */ blr
|
||||
-122
@@ -1,122 +0,0 @@
|
||||
lbl_80D568B8:
|
||||
/* 80D568B8 94 21 FF D0 */ stwu r1, -0x30(r1)
|
||||
/* 80D568BC 7C 08 02 A6 */ mflr r0
|
||||
/* 80D568C0 90 01 00 34 */ stw r0, 0x34(r1)
|
||||
/* 80D568C4 39 61 00 30 */ addi r11, r1, 0x30
|
||||
/* 80D568C8 4B 60 B9 15 */ bl _savegpr_29
|
||||
/* 80D568CC 7C 7F 1B 78 */ mr r31, r3
|
||||
/* 80D568D0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
|
||||
/* 80D568D4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
|
||||
/* 80D568D8 80 1F 00 B0 */ lwz r0, 0xb0(r31)
|
||||
/* 80D568DC 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f
|
||||
/* 80D568E0 88 1F 04 BA */ lbz r0, 0x4ba(r31)
|
||||
/* 80D568E4 7C 05 07 74 */ extsb r5, r0
|
||||
/* 80D568E8 4B 2D EA 79 */ bl isSwitch__10dSv_info_cCFii
|
||||
/* 80D568EC 2C 03 00 00 */ cmpwi r3, 0
|
||||
/* 80D568F0 41 82 00 0C */ beq lbl_80D568FC
|
||||
/* 80D568F4 38 60 00 01 */ li r3, 1
|
||||
/* 80D568F8 48 00 01 74 */ b lbl_80D56A6C
|
||||
lbl_80D568FC:
|
||||
/* 80D568FC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
|
||||
/* 80D56900 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
|
||||
/* 80D56904 83 C3 5D AC */ lwz r30, 0x5dac(r3)
|
||||
/* 80D56908 C0 1E 04 D0 */ lfs f0, 0x4d0(r30)
|
||||
/* 80D5690C D0 01 00 14 */ stfs f0, 0x14(r1)
|
||||
/* 80D56910 C0 1E 04 D4 */ lfs f0, 0x4d4(r30)
|
||||
/* 80D56914 D0 01 00 18 */ stfs f0, 0x18(r1)
|
||||
/* 80D56918 C0 1E 04 D8 */ lfs f0, 0x4d8(r30)
|
||||
/* 80D5691C D0 01 00 1C */ stfs f0, 0x1c(r1)
|
||||
/* 80D56920 38 61 00 14 */ addi r3, r1, 0x14
|
||||
/* 80D56924 38 9F 04 A8 */ addi r4, r31, 0x4a8
|
||||
/* 80D56928 7C 65 1B 78 */ mr r5, r3
|
||||
/* 80D5692C 4B 5F 07 89 */ bl PSVECSubtract
|
||||
/* 80D56930 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
|
||||
/* 80D56934 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
|
||||
/* 80D56938 A8 1F 04 DE */ lha r0, 0x4de(r31)
|
||||
/* 80D5693C 7C 00 00 D0 */ neg r0, r0
|
||||
/* 80D56940 7C 04 07 34 */ extsh r4, r0
|
||||
/* 80D56944 4B 2B 5A 99 */ bl mDoMtx_YrotS__FPA4_fs
|
||||
/* 80D56948 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
|
||||
/* 80D5694C 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
|
||||
/* 80D56950 38 81 00 14 */ addi r4, r1, 0x14
|
||||
/* 80D56954 7C 85 23 78 */ mr r5, r4
|
||||
/* 80D56958 4B 5F 04 15 */ bl PSMTXMultVec
|
||||
/* 80D5695C C0 1F 05 68 */ lfs f0, 0x568(r31)
|
||||
/* 80D56960 C0 21 00 14 */ lfs f1, 0x14(r1)
|
||||
/* 80D56964 FC 00 08 40 */ fcmpo cr0, f0, f1
|
||||
/* 80D56968 40 80 01 00 */ bge lbl_80D56A68
|
||||
/* 80D5696C C0 1F 05 70 */ lfs f0, 0x570(r31)
|
||||
/* 80D56970 C0 41 00 1C */ lfs f2, 0x1c(r1)
|
||||
/* 80D56974 FC 00 10 40 */ fcmpo cr0, f0, f2
|
||||
/* 80D56978 40 80 00 F0 */ bge lbl_80D56A68
|
||||
/* 80D5697C C0 1F 05 80 */ lfs f0, 0x580(r31)
|
||||
/* 80D56980 FC 00 08 40 */ fcmpo cr0, f0, f1
|
||||
/* 80D56984 40 81 00 E4 */ ble lbl_80D56A68
|
||||
/* 80D56988 C0 1F 05 88 */ lfs f0, 0x588(r31)
|
||||
/* 80D5698C FC 00 10 40 */ fcmpo cr0, f0, f2
|
||||
/* 80D56990 40 81 00 D8 */ ble lbl_80D56A68
|
||||
/* 80D56994 C0 1F 04 A8 */ lfs f0, 0x4a8(r31)
|
||||
/* 80D56998 D0 01 00 08 */ stfs f0, 8(r1)
|
||||
/* 80D5699C C0 1F 04 AC */ lfs f0, 0x4ac(r31)
|
||||
/* 80D569A0 D0 01 00 0C */ stfs f0, 0xc(r1)
|
||||
/* 80D569A4 C0 1F 04 B0 */ lfs f0, 0x4b0(r31)
|
||||
/* 80D569A8 D0 01 00 10 */ stfs f0, 0x10(r1)
|
||||
/* 80D569AC A8 BF 04 B6 */ lha r5, 0x4b6(r31)
|
||||
/* 80D569B0 80 1F 00 B0 */ lwz r0, 0xb0(r31)
|
||||
/* 80D569B4 54 1D 06 3E */ clrlwi r29, r0, 0x18
|
||||
/* 80D569B8 28 1D 00 FF */ cmplwi r29, 0xff
|
||||
/* 80D569BC 41 82 00 74 */ beq lbl_80D56A30
|
||||
/* 80D569C0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
|
||||
/* 80D569C4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
|
||||
/* 80D569C8 38 63 4E C4 */ addi r3, r3, 0x4ec4
|
||||
/* 80D569CC 88 1F 04 E2 */ lbz r0, 0x4e2(r31)
|
||||
/* 80D569D0 7C 04 07 74 */ extsb r4, r0
|
||||
/* 80D569D4 4B 2C D9 B1 */ bl getStatusRoomDt__20dStage_roomControl_cFi
|
||||
/* 80D569D8 81 83 00 00 */ lwz r12, 0(r3)
|
||||
/* 80D569DC 81 8C 00 20 */ lwz r12, 0x20(r12)
|
||||
/* 80D569E0 7D 89 03 A6 */ mtctr r12
|
||||
/* 80D569E4 4E 80 04 21 */ bctrl
|
||||
/* 80D569E8 80 83 00 04 */ lwz r4, 4(r3)
|
||||
/* 80D569EC 80 03 00 00 */ lwz r0, 0(r3)
|
||||
/* 80D569F0 7C 09 03 A6 */ mtctr r0
|
||||
/* 80D569F4 2C 00 00 00 */ cmpwi r0, 0
|
||||
/* 80D569F8 40 81 00 1C */ ble lbl_80D56A14
|
||||
lbl_80D569FC:
|
||||
/* 80D569FC A8 04 00 1C */ lha r0, 0x1c(r4)
|
||||
/* 80D56A00 54 00 06 3E */ clrlwi r0, r0, 0x18
|
||||
/* 80D56A04 7C 00 E8 00 */ cmpw r0, r29
|
||||
/* 80D56A08 41 82 00 0C */ beq lbl_80D56A14
|
||||
/* 80D56A0C 38 84 00 20 */ addi r4, r4, 0x20
|
||||
/* 80D56A10 42 00 FF EC */ bdnz lbl_80D569FC
|
||||
lbl_80D56A14:
|
||||
/* 80D56A14 C0 04 00 0C */ lfs f0, 0xc(r4)
|
||||
/* 80D56A18 D0 01 00 08 */ stfs f0, 8(r1)
|
||||
/* 80D56A1C C0 04 00 10 */ lfs f0, 0x10(r4)
|
||||
/* 80D56A20 D0 01 00 0C */ stfs f0, 0xc(r1)
|
||||
/* 80D56A24 C0 04 00 14 */ lfs f0, 0x14(r4)
|
||||
/* 80D56A28 D0 01 00 10 */ stfs f0, 0x10(r1)
|
||||
/* 80D56A2C A8 A4 00 1A */ lha r5, 0x1a(r4)
|
||||
lbl_80D56A30:
|
||||
/* 80D56A30 88 1E 04 E2 */ lbz r0, 0x4e2(r30)
|
||||
/* 80D56A34 7C 06 07 74 */ extsb r6, r0
|
||||
/* 80D56A38 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
|
||||
/* 80D56A3C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
|
||||
/* 80D56A40 38 63 0D B4 */ addi r3, r3, 0xdb4
|
||||
/* 80D56A44 38 81 00 08 */ addi r4, r1, 8
|
||||
/* 80D56A48 4B 2D E5 39 */ bl setRoom__13dSv_restart_cFRC4cXyzsSc
|
||||
/* 80D56A4C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
|
||||
/* 80D56A50 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
|
||||
/* 80D56A54 80 1F 00 B0 */ lwz r0, 0xb0(r31)
|
||||
/* 80D56A58 54 04 C6 3E */ rlwinm r4, r0, 0x18, 0x18, 0x1f
|
||||
/* 80D56A5C 88 1F 04 BA */ lbz r0, 0x4ba(r31)
|
||||
/* 80D56A60 7C 05 07 74 */ extsb r5, r0
|
||||
/* 80D56A64 4B 2D E7 9D */ bl onSwitch__10dSv_info_cFii
|
||||
lbl_80D56A68:
|
||||
/* 80D56A68 38 60 00 01 */ li r3, 1
|
||||
lbl_80D56A6C:
|
||||
/* 80D56A6C 39 61 00 30 */ addi r11, r1, 0x30
|
||||
/* 80D56A70 4B 60 B7 B9 */ bl _restgpr_29
|
||||
/* 80D56A74 80 01 00 34 */ lwz r0, 0x34(r1)
|
||||
/* 80D56A78 7C 08 03 A6 */ mtlr r0
|
||||
/* 80D56A7C 38 21 00 30 */ addi r1, r1, 0x30
|
||||
/* 80D56A80 4E 80 00 20 */ blr
|
||||
@@ -9,12 +9,13 @@ typedef void (*MoveBGActor_SetFunc)(dBgW*, void*, cBgS_PolyInfo const&, bool, cX
|
||||
|
||||
class dBgS_MoveBgActor : public fopAc_ac_c {
|
||||
public:
|
||||
/* 0x568 */ dBgW* field_0x568;
|
||||
/* 0x56C */ Mtx field_0x56c;
|
||||
/* 0x568 */ dBgW* mpBgW;
|
||||
/* 0x56C */ Mtx mBgMtx;
|
||||
|
||||
/* 80078624 */ dBgS_MoveBgActor();
|
||||
/* 800786C8 */ int MoveBGCreateHeap();
|
||||
/* 800787BC */ int MoveBGCreate(char const*, int, MoveBGActor_SetFunc, u32, Mtx*);
|
||||
/* 800787BC */ int MoveBGCreate(char const* i_arcName, int i_dzb_id,
|
||||
MoveBGActor_SetFunc i_setFunc, u32 i_heapSize, Mtx* i_bgMtx);
|
||||
/* 800788DC */ int MoveBGDelete();
|
||||
/* 80078950 */ int MoveBGExecute();
|
||||
|
||||
|
||||
+59
-45
@@ -2,6 +2,8 @@
|
||||
#define D_BG_D_BG_W_H
|
||||
|
||||
#include "SSystem/SComponent/c_m3d_g_aab.h"
|
||||
#include "SSystem/SComponent/c_xyz.h"
|
||||
#include "SSystem/SComponent/c_sxyz.h"
|
||||
#include "d/bg/d_bg_w_base.h"
|
||||
#include "dolphin/mtx/mtx.h"
|
||||
#include "dolphin/types.h"
|
||||
@@ -24,7 +26,7 @@ public:
|
||||
|
||||
class cBgW_RwgElm {
|
||||
public:
|
||||
/* 0x0 */ u16 field_0x0;
|
||||
/* 0x0 */ u16 m_next;
|
||||
|
||||
/* 800791C4 */ cBgW_RwgElm();
|
||||
/* 800791D4 */ virtual ~cBgW_RwgElm();
|
||||
@@ -46,66 +48,78 @@ public:
|
||||
/* 0x4 */ cM3dGAab m_aab;
|
||||
};
|
||||
|
||||
struct cBgW_unk_b_data {
|
||||
/* 0x0 */ u16 field_0x0;
|
||||
/* 0x2 */ u16 field_0x2;
|
||||
/* 0x4 */ u16 field_0x4;
|
||||
struct cBgW_BlkElm {
|
||||
/* 0x0 */ u16 m_roof_idx;
|
||||
/* 0x2 */ u16 m_wall_idx;
|
||||
/* 0x4 */ u16 m_gnd_idx;
|
||||
}; // Size: 0x6
|
||||
|
||||
struct dzb_tri_data {
|
||||
/* 0x0 */ u16 field_0x0;
|
||||
/* 0x2 */ u16 field_0x2;
|
||||
/* 0x4 */ u16 field_0x4;
|
||||
struct cBgD_Tri_t {
|
||||
/* 0x0 */ u16 m_vtx_idx0;
|
||||
/* 0x2 */ u16 m_vtx_idx1;
|
||||
/* 0x4 */ u16 m_vtx_idx2;
|
||||
/* 0x6 */ u16 m_id;
|
||||
/* 0x8 */ u16 m_grp;
|
||||
}; // Size: 0xA
|
||||
|
||||
struct dzb_ti_data {
|
||||
struct cBgD_Ti_t {
|
||||
/* 0x0 */ u32 m_info0;
|
||||
/* 0x4 */ u32 m_info1;
|
||||
/* 0x8 */ u32 m_info2;
|
||||
/* 0xC */ u8 field_0xc[0x10 - 0xC];
|
||||
/* 0xC */ u32 m_passFlag;
|
||||
};
|
||||
|
||||
struct dzb_b_data {
|
||||
struct cBgD_Blk_t {
|
||||
/* 0x0 */ u16 field_0x0;
|
||||
};
|
||||
|
||||
struct dzb_tree_data {
|
||||
/* 0x0 */ u16 field_0x0;
|
||||
/* 0x2 */ u16 field_0x2;
|
||||
struct cBgD_Tree_t {
|
||||
/* 0x0 */ u16 m_flag;
|
||||
/* 0x2 */ u16 m_parent_id;
|
||||
/* 0x4 */ u16 m_id[8];
|
||||
}; // Size: 0x14
|
||||
|
||||
struct dzb_g_data {
|
||||
/* 0x00 */ u8 field_0x0[0x24 - 0x0];
|
||||
/* 0x24 */ u16 field_0x24;
|
||||
/* 0x26 */ u16 field_0x26;
|
||||
/* 0x28 */ u16 field_0x28;
|
||||
/* 0x2A */ u16 field_0x2a;
|
||||
/* 0x2C */ u8 field_0x2c[0x2E - 0x2C];
|
||||
/* 0x2E */ u16 field_0x2e;
|
||||
struct cBgD_Grp_t {
|
||||
/* 0x00 */ char* m_name;
|
||||
/* 0x04 */ cXyz m_scale;
|
||||
/* 0x10 */ csXyz m_rotation;
|
||||
/* 0x18 */ cXyz m_translation;
|
||||
/* 0x24 */ u16 m_parent;
|
||||
/* 0x26 */ u16 m_next_sibling;
|
||||
/* 0x28 */ u16 m_first_child;
|
||||
/* 0x2A */ u16 m_room_id;
|
||||
/* 0x2C */ u16 m_first_vtx_idx;
|
||||
/* 0x2E */ u16 m_tree_idx;
|
||||
/* 0x30 */ u32 m_info;
|
||||
}; // Size: 0x34
|
||||
|
||||
struct cBgD_t {
|
||||
/* 0x00 */ int m_v_num; // vertex num
|
||||
/* 0x04 */ Vec* m_v_tbl; // vertex table
|
||||
/* 0x04 */ cBgD_Vtx_t* m_v_tbl; // vertex table
|
||||
/* 0x08 */ int m_t_num; // triangle num
|
||||
/* 0x0C */ dzb_tri_data* m_t_tbl; // triangle table
|
||||
/* 0x10 */ int m_b_num; // spatial?
|
||||
/* 0x14 */ dzb_b_data* m_b_tbl;
|
||||
/* 0x18 */ int m_tree_num; // face group?
|
||||
/* 0x1C */ dzb_tree_data* m_tree_tbl;
|
||||
/* 0x20 */ int m_g_num; // string group?
|
||||
/* 0x24 */ dzb_g_data* m_g_tbl;
|
||||
/* 0x28 */ int m_ti_num; // surface property?
|
||||
/* 0x2C */ dzb_ti_data* m_ti_tbl;
|
||||
/* 0x30 */ int field_0x30;
|
||||
/* 0x0C */ cBgD_Tri_t* m_t_tbl; // triangle table
|
||||
/* 0x10 */ int m_b_num;
|
||||
/* 0x14 */ cBgD_Blk_t* m_b_tbl;
|
||||
/* 0x18 */ int m_tree_num;
|
||||
/* 0x1C */ cBgD_Tree_t* m_tree_tbl;
|
||||
/* 0x20 */ int m_g_num;
|
||||
/* 0x24 */ cBgD_Grp_t* m_g_tbl;
|
||||
/* 0x28 */ int m_ti_num;
|
||||
/* 0x2C */ cBgD_Ti_t* m_ti_tbl;
|
||||
/* 0x30 */ int mFlags;
|
||||
};
|
||||
|
||||
class cBgW : public dBgW_Base {
|
||||
public:
|
||||
enum Flags_e {
|
||||
MOVE_BG_e = 0x1,
|
||||
NO_CALC_VTX_e = 0x2,
|
||||
NO_VTX_TBL_e = 0x10,
|
||||
GLOBAL_e = 0x20,
|
||||
CBGW_UNK_FLAG_40 = 0x40,
|
||||
LOCK_e = 0x80,
|
||||
};
|
||||
|
||||
/* 80079294 */ cBgW();
|
||||
/* 800793A4 */ void FreeArea();
|
||||
/* 800793C4 */ void GlobalVtx();
|
||||
@@ -118,7 +132,7 @@ public:
|
||||
/* 80079BDC */ void MakeNodeTreeRp(int);
|
||||
/* 80079CC4 */ void MakeNodeTreeGrpRp(int);
|
||||
/* 80079DF0 */ void MakeNodeTree();
|
||||
/* 80079F38 */ bool Set(cBgD_t*, u32, f32 (*)[3][4]);
|
||||
/* 80079F38 */ bool Set(cBgD_t* pdzb, u32 flags, Mtx* pbase_mtx);
|
||||
/* 8007A200 */ bool RwgLineCheck(u16, cBgS_LinChk*);
|
||||
/* 8007A3A0 */ bool LineCheckRp(cBgS_LinChk*, int);
|
||||
/* 8007A52C */ bool LineCheckGrpRp(cBgS_LinChk*, int, int);
|
||||
@@ -204,27 +218,27 @@ public:
|
||||
|
||||
u32 GetOldInvMtx(Mtx m) { return PSMTXInverse(m_inv_mtx, m); }
|
||||
MtxP GetBaseMtxP() { return pm_base; }
|
||||
bool ChkNoCalcVtx() { return field_0x88 & 2; }
|
||||
bool ChkNoCalcVtx() { return mFlags & NO_CALC_VTX_e; }
|
||||
bool ChkFlush() { return field_0x91 & 8; }
|
||||
void SetLock() { field_0x88 |= 0x80; }
|
||||
void SetLock() { mFlags |= LOCK_e; }
|
||||
bool ChkRoofRegist() { return field_0x91 & 4;}
|
||||
|
||||
public:
|
||||
/* 0x18 */ MtxP pm_base;
|
||||
/* 0x18 */ MtxP pm_base; // Model Matrix
|
||||
/* 0x1C */ Mtx m_inv_mtx;
|
||||
/* 0x4C */ Mtx field_0x4c;
|
||||
/* 0x7C */ cXyz field_0x7c;
|
||||
/* 0x88 */ u8 field_0x88;
|
||||
/* 0x89 */ u8 field_0x89;
|
||||
/* 0x4C */ Mtx m_mtx;
|
||||
/* 0x7C */ cXyz mTransVel;
|
||||
/* 0x88 */ u8 mFlags;
|
||||
/* 0x89 */ u8 mNeedsFullTransform;
|
||||
/* 0x8A */ u8 field_0x8a[6];
|
||||
/* 0x90 */ u8 field_0x90;
|
||||
/* 0x90 */ u8 mMoveCounter;
|
||||
/* 0x91 */ u8 field_0x91;
|
||||
/* 0x92 */ u16 field_0x92;
|
||||
/* 0x92 */ u16 m_rootGrpIdx;
|
||||
/* 0x94 */ cBgW_TriElm* pm_tri;
|
||||
/* 0x98 */ cBgW_RwgElm* pm_rwg;
|
||||
/* 0x9C */ cBgD_Vtx_t* pm_vtx_tbl;
|
||||
/* 0xA0 */ cBgD_t* pm_bgd;
|
||||
/* 0xA4 */ cBgW_unk_b_data* field_0xa4;
|
||||
/* 0xA4 */ cBgW_BlkElm* pm_blk;
|
||||
/* 0xA8 */ cBgW_GrpElm* pm_grp;
|
||||
/* 0xAC */ cBgW_NodeTree* pm_node_tree;
|
||||
};
|
||||
|
||||
@@ -140,6 +140,7 @@ enum fopAcM_CARRY {
|
||||
/* 0x04 */ fopAcM_CARRY_SIDE = 4,
|
||||
/* 0x08 */ fopAcM_CARRY_TYPE_8 = 8,
|
||||
/* 0x10 */ fopAcM_CARRY_LIGHT = 16, // guess based on context
|
||||
/* 0x30 */ fopAcM_CARRY_UNK_30 = 0x30,
|
||||
};
|
||||
|
||||
inline u32 fopAcM_CheckCarryType(fopAc_ac_c* actor, fopAcM_CARRY type) {
|
||||
|
||||
@@ -90,7 +90,7 @@ public:
|
||||
/* 0x5A8 */ J3DModel* field_0x5a8[2][2];
|
||||
/* 0x5B8 */ mDoExt_btkAnm* field_0x5b8[2][2];
|
||||
/* 0x5C8 */ mDoExt_brkAnm* field_0x5c8[2][2];
|
||||
/* 0x5D8 */ dBgW* mpBgW;
|
||||
/* 0x5D8 */ dBgW* mpBgW2;
|
||||
/* 0x5DC */ dCcD_Stts mStts;
|
||||
/* 0x618 */ dCcD_Tri mTris[4];
|
||||
/* 0xB88 */ dCcD_Cyl mCyl;
|
||||
|
||||
@@ -1,6 +1,21 @@
|
||||
#ifndef D_A_OBJ_FMOBJ_H
|
||||
#define D_A_OBJ_FMOBJ_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
class dBgW;
|
||||
|
||||
class obj_fmobj_class : public fopAc_ac_c {
|
||||
public:
|
||||
/* 0x568 */ request_of_phase_process_class mPhase;
|
||||
/* 0x570 */ u8 field_0x570;
|
||||
/* 0x574 */ J3DModel* mpModel;
|
||||
/* 0x578 */ s16 field_0x578;
|
||||
/* 0x57A */ u8 field_0x57A[0x57E - 0x57A];
|
||||
/* 0x57E */ s16 field_0x57e[2];
|
||||
/* 0x582 */ u8 field_0x582[0x588 - 0x582];
|
||||
/* 0x588 */ Mtx mBgMtx;
|
||||
/* 0x5B8 */ dBgW* mpBgW;
|
||||
};
|
||||
|
||||
#endif /* D_A_OBJ_FMOBJ_H */
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#ifndef D_A_OBJ_MASTER_SWORD_H
|
||||
#define D_A_OBJ_MASTER_SWORD_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
#endif /* D_A_OBJ_MASTER_SWORD_H */
|
||||
|
||||
@@ -1,6 +1,18 @@
|
||||
#ifndef D_A_OBJ_USAKU_H
|
||||
#define D_A_OBJ_USAKU_H
|
||||
|
||||
#include "dolphin/types.h"
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
|
||||
class dBgW;
|
||||
|
||||
class obj_usaku_class : public fopAc_ac_c {
|
||||
public:
|
||||
/* 0x568 */ request_of_phase_process_class mPhase;
|
||||
/* 0x570 */ u8 field_0x570;
|
||||
/* 0x574 */ J3DModel* mpModel;
|
||||
/* 0x578 */ u8 field_0x578[0x580 - 0x578];
|
||||
/* 0x580 */ Mtx mBgMtx;
|
||||
/* 0x5B0 */ dBgW* mpBgW;
|
||||
};
|
||||
|
||||
#endif /* D_A_OBJ_USAKU_H */
|
||||
|
||||
@@ -12,7 +12,7 @@ public:
|
||||
/* 80D568B8 */ s32 execute();
|
||||
/* 80D56A84 */ s32 _delete();
|
||||
|
||||
/* 0x0568 */ cXyz field_0x568[4];
|
||||
/* 0x0568 */ cXyz mVertices[4];
|
||||
};
|
||||
STATIC_ASSERT(sizeof(daTagChgRestart_c) == 0x598);
|
||||
|
||||
|
||||
@@ -647,7 +647,7 @@ int daBg_c::createHeap() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (mpBgW->Set(dzb, 0x20, NULL)) {
|
||||
if (mpBgW->Set(dzb, cBgW::GLOBAL_e, NULL)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -508,7 +508,7 @@ asm void daBgObj_c::setAttentionInfo(fopAc_ac_c* param_0) {
|
||||
void daBgObj_c::initBaseMtx() {
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), field_0x56c);
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), mBgMtx);
|
||||
setBaseMtx();
|
||||
}
|
||||
|
||||
@@ -516,7 +516,7 @@ void daBgObj_c::initBaseMtx() {
|
||||
void daBgObj_c::setBaseMtx() {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
if (field_0x5a8[field_0xcc8][i] != NULL) {
|
||||
field_0x5a8[field_0xcc8][i]->i_setBaseTRMtx(field_0x56c);
|
||||
field_0x5a8[field_0xcc8][i]->i_setBaseTRMtx(mBgMtx);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -584,8 +584,8 @@ int daBgObj_c::CreateInitType0() {
|
||||
int daBgObj_c::CreateInitType1() {
|
||||
if (i_fopAcM_isSwitch(this, daBgObj_prm::getSwBit(this))) {
|
||||
field_0xcc8 = 1;
|
||||
release(field_0x568);
|
||||
regist(mpBgW);
|
||||
release(mpBgW);
|
||||
regist(mpBgW2);
|
||||
mAction = 3;
|
||||
} else {
|
||||
field_0xcc8 = 0;
|
||||
@@ -613,8 +613,8 @@ int daBgObj_c::CreateInitType1() {
|
||||
|
||||
mEventIdx = i_dComIfGp_getEventManager().getEventIdx(this, daBgObj_prm::getEvId(this));
|
||||
|
||||
if (mpBgW != NULL) {
|
||||
mpBgW->Move();
|
||||
if (mpBgW2 != NULL) {
|
||||
mpBgW2->Move();
|
||||
}
|
||||
|
||||
initAtt();
|
||||
@@ -801,9 +801,9 @@ int daBgObj_c::CreateHeapType1() {
|
||||
|
||||
cBgD_t* dzb = (cBgD_t*)dComIfG_getObjectRes(daSetBgObj_c::getArcName(this), getDzbName(1));
|
||||
if (dzb != NULL) {
|
||||
mpBgW = new dBgW();
|
||||
if (mpBgW == NULL || mpBgW->Set(dzb, 1, &field_0x56c)) {
|
||||
mpBgW = NULL;
|
||||
mpBgW2 = new dBgW();
|
||||
if (mpBgW2 == NULL || mpBgW2->Set(dzb, cBgW::MOVE_BG_e, &mBgMtx)) {
|
||||
mpBgW2 = NULL;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
@@ -1270,8 +1270,8 @@ int daBgObj_c::actionOrder() {
|
||||
if (!i_fopAcM_isSwitch(this, daBgObj_prm::getSwBit(this)) || field_0xd00 != 0 ||
|
||||
field_0xcc8 == 0)
|
||||
{
|
||||
release(field_0x568);
|
||||
regist(mpBgW);
|
||||
release(mpBgW);
|
||||
regist(mpBgW2);
|
||||
field_0xcc8 = 1;
|
||||
|
||||
settingCullSizeBoxForCull(field_0xcc8);
|
||||
@@ -1323,21 +1323,21 @@ int daBgObj_c::ExecuteType0() {
|
||||
if (arg0 == 0xFF) {
|
||||
if (i_fopAcM_isSwitch(this, swBit)) {
|
||||
if (field_0xcc8 == 1) {
|
||||
regist(field_0x568);
|
||||
regist(mpBgW);
|
||||
field_0xcc8 = 0;
|
||||
}
|
||||
} else if (field_0xcc8 == 0) {
|
||||
release(field_0x568);
|
||||
release(mpBgW);
|
||||
field_0xcc8 = 1;
|
||||
}
|
||||
} else if (arg0 == 0) {
|
||||
if (i_fopAcM_isSwitch(this, swBit)) {
|
||||
if (field_0xcc8 == 0) {
|
||||
release(field_0x568);
|
||||
release(mpBgW);
|
||||
field_0xcc8 = 1;
|
||||
}
|
||||
} else if (field_0xcc8 == 1) {
|
||||
regist(field_0x568);
|
||||
regist(mpBgW);
|
||||
field_0xcc8 = 0;
|
||||
}
|
||||
}
|
||||
@@ -1374,7 +1374,7 @@ int daBgObj_c::Execute(f32 (**param_0)[3][4]) {
|
||||
}
|
||||
}
|
||||
|
||||
*param_0 = &field_0x56c;
|
||||
*param_0 = &mBgMtx;
|
||||
setBaseMtx();
|
||||
return 1;
|
||||
}
|
||||
@@ -1439,7 +1439,7 @@ void daBgObj_c::indirectProc(J3DModel* i_model) {
|
||||
|
||||
/* 8045C2E8-8045C330 002D08 0048+00 1/0 0/0 0/0 .text Delete__9daBgObj_cFv */
|
||||
int daBgObj_c::Delete() {
|
||||
release(mpBgW);
|
||||
release(mpBgW2);
|
||||
dComIfG_resDelete(&mPhase, daSetBgObj_c::getArcName(this));
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -179,7 +179,7 @@ int daDsh_c::Draw() {
|
||||
int daDsh_c::Execute(f32 (**param_0)[3][4]) {
|
||||
callExecute();
|
||||
setMtx();
|
||||
*param_0 = &field_0x56c;
|
||||
*param_0 = &mBgMtx;
|
||||
func_80467DF8(&mTiltTime);
|
||||
return 1;
|
||||
}
|
||||
@@ -190,7 +190,7 @@ void daDsh_c::setMtx() {
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
|
||||
mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), field_0x56c);
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), mBgMtx);
|
||||
}
|
||||
|
||||
/* 80467708-8046772C 0002E8 0024+00 5/5 0/0 0/0 .text setAction__7daDsh_cFPQ27daDsh_c8action_c */
|
||||
|
||||
@@ -15,7 +15,7 @@ void daIzumiGate_c::initBaseMtx() {
|
||||
/* 808490B8-8084910C 000098 0054+00 2/2 0/0 0/0 .text setBaseMtx__13daIzumiGate_cFv */
|
||||
void daIzumiGate_c::setBaseMtx() {
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
PSMTXCopy(mDoMtx_stack_c::now, field_0x56c);
|
||||
PSMTXCopy(mDoMtx_stack_c::now, mBgMtx);
|
||||
PSMTXCopy(mDoMtx_stack_c::now, mpModel->mBaseTransformMtx);
|
||||
}
|
||||
|
||||
@@ -55,7 +55,7 @@ int daIzumiGate_c::create() {
|
||||
if (phase == cPhs_ERROR_e) {
|
||||
return phase;
|
||||
}
|
||||
fopAcM_SetMtx(this, field_0x56c);
|
||||
fopAcM_SetMtx(this, mBgMtx);
|
||||
}
|
||||
return phase;
|
||||
}
|
||||
@@ -80,7 +80,7 @@ int daIzumiGate_c::Create() {
|
||||
/* 808492FC-80849328 0002DC 002C+00 1/0 0/0 0/0 .text Execute__13daIzumiGate_cFPPA3_A4_f
|
||||
*/
|
||||
int daIzumiGate_c::Execute(Mtx** i_mtx) {
|
||||
*i_mtx = &field_0x56c;
|
||||
*i_mtx = &mBgMtx;
|
||||
setBaseMtx();
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@ void daObjBoard_c::setBaseMtx() {
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::ZXYrotM(shape_angle);
|
||||
mDoMtx_stack_c::scaleM(mScale);
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), field_0x56c);
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), mBgMtx);
|
||||
}
|
||||
|
||||
/* 8057BE20-8057BE24 -00001 0004+00 2/2 0/0 0/0 .data l_arcName */
|
||||
@@ -102,12 +102,12 @@ int daObjBoard_c::Execute(Mtx** param_0) {
|
||||
case 7:
|
||||
case 15:
|
||||
if (i_fopAcM_isSwitch(this, getSwNo())) {
|
||||
if (!field_0x568->ChkUsed()) {
|
||||
dComIfG_Bgsp().Regist(field_0x568, this);
|
||||
if (!mpBgW->ChkUsed()) {
|
||||
dComIfG_Bgsp().Regist(mpBgW, this);
|
||||
}
|
||||
} else {
|
||||
if (field_0x568->ChkUsed()) {
|
||||
dComIfG_Bgsp().Release(field_0x568);
|
||||
if (mpBgW->ChkUsed()) {
|
||||
dComIfG_Bgsp().Release(mpBgW);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -117,18 +117,18 @@ int daObjBoard_c::Execute(Mtx** param_0) {
|
||||
case 6:
|
||||
case 8:
|
||||
if (i_fopAcM_isSwitch(this, getSwNo())) {
|
||||
if (field_0x568->ChkUsed()) {
|
||||
dComIfG_Bgsp().Release(field_0x568);
|
||||
if (mpBgW->ChkUsed()) {
|
||||
dComIfG_Bgsp().Release(mpBgW);
|
||||
}
|
||||
} else {
|
||||
if (!field_0x568->ChkUsed()) {
|
||||
dComIfG_Bgsp().Regist(field_0x568, this);
|
||||
if (!mpBgW->ChkUsed()) {
|
||||
dComIfG_Bgsp().Regist(mpBgW, this);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
*param_0 = &field_0x56c;
|
||||
*param_0 = &mBgMtx;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ void daCowdoor_c::setBaseMtx() {
|
||||
PSMTXTrans(mDoMtx_stack_c::now, current.pos.x, current.pos.y, current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
PSMTXCopy(mDoMtx_stack_c::now, field_0x5a8->mBaseTransformMtx);
|
||||
PSMTXCopy(mDoMtx_stack_c::now, field_0x56c);
|
||||
PSMTXCopy(mDoMtx_stack_c::now, mBgMtx);
|
||||
}
|
||||
|
||||
/* 80BCC86C-80BCC8C4 0000EC 0058+00 1/0 0/0 0/0 .text Create__11daCowdoor_cFv */
|
||||
@@ -57,7 +57,7 @@ int daCowdoor_c::create() {
|
||||
|
||||
/* 80BCCA1C-80BCCA48 00029C 002C+00 1/0 0/0 0/0 .text Execute__11daCowdoor_cFPPA3_A4_f */
|
||||
int daCowdoor_c::Execute(f32 (**param_0)[3][4]) {
|
||||
*param_0 = &field_0x56c;
|
||||
*param_0 = &mBgMtx;
|
||||
setBaseMtx();
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -4,74 +4,13 @@
|
||||
//
|
||||
|
||||
#include "rel/d/a/obj/d_a_obj_fmobj/d_a_obj_fmobj.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "SSystem/SComponent/c_math.h"
|
||||
#include "d/bg/d_bg_w.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct request_of_phase_process_class {};
|
||||
|
||||
struct obj_fmobj_class {};
|
||||
|
||||
struct mDoMtx_stack_c {
|
||||
/* 8000CD9C */ void transM(f32, f32, f32);
|
||||
|
||||
static u8 now[48];
|
||||
};
|
||||
|
||||
struct fopAc_ac_c {
|
||||
/* 80018B64 */ fopAc_ac_c();
|
||||
};
|
||||
|
||||
struct dSv_memBit_c {
|
||||
/* 80034934 */ void isDungeonItem(int) const;
|
||||
};
|
||||
|
||||
struct dKy_tevstr_c {};
|
||||
|
||||
struct J3DModelData {};
|
||||
|
||||
struct cXyz {};
|
||||
|
||||
struct dScnKy_env_light_c {
|
||||
/* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*);
|
||||
/* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*);
|
||||
};
|
||||
|
||||
struct dRes_info_c {};
|
||||
|
||||
struct dRes_control_c {
|
||||
/* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int);
|
||||
};
|
||||
|
||||
struct dBgW_Base {};
|
||||
|
||||
struct dBgW {
|
||||
/* 8007B970 */ dBgW();
|
||||
/* 8007B9C0 */ void Move();
|
||||
};
|
||||
|
||||
struct dBgS {
|
||||
/* 80074A08 */ void Regist(dBgW_Base*, fopAc_ac_c*);
|
||||
};
|
||||
|
||||
struct csXyz {};
|
||||
|
||||
struct cBgD_t {};
|
||||
|
||||
struct cBgW {
|
||||
/* 80079F38 */ void Set(cBgD_t*, u32, f32 (*)[3][4]);
|
||||
};
|
||||
|
||||
struct cBgS_PolyInfo {};
|
||||
|
||||
struct cBgS {
|
||||
/* 80074250 */ void Release(dBgW_Base*);
|
||||
};
|
||||
|
||||
struct J3DModel {};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
@@ -83,7 +22,6 @@ extern "C" static void daObj_Fmobj_Delete__FP15obj_fmobj_class();
|
||||
extern "C" static void useHeapInit__FP10fopAc_ac_c();
|
||||
extern "C" static void daObj_Fmobj_Create__FP10fopAc_ac_c();
|
||||
extern "C" extern char const* const d_a_obj_fmobj__stringBase0;
|
||||
extern "C" extern void* g_profile_OBJ_FMOBJ[12];
|
||||
|
||||
//
|
||||
// External References:
|
||||
@@ -109,71 +47,72 @@ extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
|
||||
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
|
||||
extern "C" void cM_rndF__Ff();
|
||||
extern "C" void* __nw__FUl();
|
||||
extern "C" void PSMTXCopy();
|
||||
extern "C" void PSMTXTrans();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern void* g_fopAc_Method[8];
|
||||
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u8 g_env_light[4880];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 8057CBD8-8057CC44 000078 006C+00 1/0 0/0 0/0 .text daObj_Fmobj_Draw__FP15obj_fmobj_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObj_Fmobj_Draw(obj_fmobj_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_fmobj/d_a_obj_fmobj/daObj_Fmobj_Draw__FP15obj_fmobj_class.s"
|
||||
static int daObj_Fmobj_Draw(obj_fmobj_class* i_this) {
|
||||
J3DModel* model_p = i_this->mpModel;
|
||||
|
||||
g_env_light.settingTevStruct(0x40, &i_this->current.pos, &i_this->mTevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(model_p, &i_this->mTevStr);
|
||||
mDoExt_modelUpdateDL(model_p);
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8057CC44-8057CC84 0000E4 0040+00 1/0 0/0 0/0 .text daObj_Fmobj_Execute__FP15obj_fmobj_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObj_Fmobj_Execute(obj_fmobj_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_fmobj/d_a_obj_fmobj/daObj_Fmobj_Execute__FP15obj_fmobj_class.s"
|
||||
static int daObj_Fmobj_Execute(obj_fmobj_class* i_this) {
|
||||
i_this->field_0x578++;
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
if (i_this->field_0x57e[i] != 0) {
|
||||
i_this->field_0x57e[i]--;
|
||||
}
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8057CC84-8057CC8C 000124 0008+00 1/0 0/0 0/0 .text daObj_Fmobj_IsDelete__FP15obj_fmobj_class */
|
||||
static bool daObj_Fmobj_IsDelete(obj_fmobj_class* param_0) {
|
||||
return true;
|
||||
static int daObj_Fmobj_IsDelete(obj_fmobj_class* i_this) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8057CF74-8057CF74 00000C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_8057CF74 = "Obj_Fmobj";
|
||||
#pragma pop
|
||||
|
||||
/* 8057CC8C-8057CCDC 00012C 0050+00 1/0 0/0 0/0 .text daObj_Fmobj_Delete__FP15obj_fmobj_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObj_Fmobj_Delete(obj_fmobj_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_fmobj/d_a_obj_fmobj/daObj_Fmobj_Delete__FP15obj_fmobj_class.s"
|
||||
static int daObj_Fmobj_Delete(obj_fmobj_class* i_this) {
|
||||
dComIfG_resDelete(&i_this->mPhase, "Obj_Fmobj");
|
||||
dComIfG_Bgsp().Release(i_this->mpBgW);
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 8057CCDC-8057CDE0 00017C 0104+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void useHeapInit(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_fmobj/d_a_obj_fmobj/useHeapInit__FP10fopAc_ac_c.s"
|
||||
static int useHeapInit(fopAc_ac_c* i_this) {
|
||||
obj_fmobj_class* a_this = (obj_fmobj_class*)i_this;
|
||||
|
||||
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("Obj_Fmobj", 4);
|
||||
a_this->mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
|
||||
if (a_this->mpModel == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
a_this->mpBgW = new dBgW();
|
||||
if (a_this->mpBgW == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
cBgD_t* pdzb = (cBgD_t*)dComIfG_getObjectRes("Obj_Fmobj", 7);
|
||||
if (a_this->mpBgW->Set(pdzb, cBgW::MOVE_BG_e, &a_this->mBgMtx) == 1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
a_this->mpBgW->SetCrrFunc(dBgS_MoveBGProc_Typical);
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8057CF68-8057CF6C 000000 0004+00 1/1 0/0 0/0 .rodata @3743 */
|
||||
@@ -201,36 +140,76 @@ COMPILER_STRIP_GATE(0x8057CF70, &lit_3745);
|
||||
|
||||
/* 8057CDE0-8057CF60 000280 0180+00 1/0 0/0 0/0 .text daObj_Fmobj_Create__FP10fopAc_ac_c
|
||||
*/
|
||||
// reg alloc
|
||||
#ifdef NONMATCHING
|
||||
static int daObj_Fmobj_Create(fopAc_ac_c* i_this) {
|
||||
obj_fmobj_class* a_this = (obj_fmobj_class*)i_this;
|
||||
fopAcM_SetupActor(a_this, obj_fmobj_class);
|
||||
|
||||
int phase = dComIfG_resLoad(&a_this->mPhase, "Obj_Fmobj");
|
||||
if (phase == cPhs_COMPLEATE_e) {
|
||||
a_this->field_0x570 = fopAcM_GetParam(a_this) & 0xFF;
|
||||
|
||||
if (dComIfGs_isStageBossEnemy()) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
if (!fopAcM_entrySolidHeap(a_this, useHeapInit, 0x4B000)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
if (dComIfG_Bgsp().Regist(a_this->mpBgW, a_this)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
fopAcM_SetMtx(a_this, a_this->mpModel->getBaseTRMtx());
|
||||
a_this->shape_angle.y = cM_rndF(65536.0f);
|
||||
|
||||
mDoMtx_stack_c::transS(a_this->current.pos.x, a_this->current.pos.y, a_this->current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(a_this->shape_angle.y);
|
||||
a_this->mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
|
||||
mDoMtx_stack_c::transM(0.0f, -30.0f, 0.0f);
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), a_this->mDzbMtx);
|
||||
|
||||
a_this->mpBgW->Move();
|
||||
}
|
||||
|
||||
return phase;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObj_Fmobj_Create(fopAc_ac_c* param_0) {
|
||||
static asm int daObj_Fmobj_Create(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_fmobj/d_a_obj_fmobj/daObj_Fmobj_Create__FP10fopAc_ac_c.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 8057CF80-8057CFA0 -00001 0020+00 1/0 0/0 0/0 .data l_daObj_Fmobj_Method */
|
||||
SECTION_DATA static void* l_daObj_Fmobj_Method[8] = {
|
||||
(void*)daObj_Fmobj_Create__FP10fopAc_ac_c,
|
||||
(void*)daObj_Fmobj_Delete__FP15obj_fmobj_class,
|
||||
(void*)daObj_Fmobj_Execute__FP15obj_fmobj_class,
|
||||
(void*)daObj_Fmobj_IsDelete__FP15obj_fmobj_class,
|
||||
(void*)daObj_Fmobj_Draw__FP15obj_fmobj_class,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
static actor_method_class l_daObj_Fmobj_Method = {
|
||||
(process_method_func)daObj_Fmobj_Create, (process_method_func)daObj_Fmobj_Delete,
|
||||
(process_method_func)daObj_Fmobj_Execute, (process_method_func)daObj_Fmobj_IsDelete,
|
||||
(process_method_func)daObj_Fmobj_Draw,
|
||||
};
|
||||
|
||||
/* 8057CFA0-8057CFD0 -00001 0030+00 0/0 0/0 1/0 .data g_profile_OBJ_FMOBJ */
|
||||
SECTION_DATA extern void* g_profile_OBJ_FMOBJ[12] = {
|
||||
(void*)0xFFFFFFFD, (void*)0x0003FFFD,
|
||||
(void*)0x00260000, (void*)&g_fpcLf_Method,
|
||||
(void*)0x000005BC, (void*)NULL,
|
||||
(void*)NULL, (void*)&g_fopAc_Method,
|
||||
(void*)0x00280000, (void*)&l_daObj_Fmobj_Method,
|
||||
(void*)0x00040100, (void*)0x00070000,
|
||||
extern actor_process_profile_definition g_profile_OBJ_FMOBJ = {
|
||||
-3,
|
||||
3,
|
||||
-3,
|
||||
PROC_OBJ_FMOBJ,
|
||||
&g_fpcLf_Method.mBase,
|
||||
sizeof(obj_fmobj_class),
|
||||
0,
|
||||
0,
|
||||
&g_fopAc_Method.base,
|
||||
40,
|
||||
&l_daObj_Fmobj_Method,
|
||||
0x40100,
|
||||
0,
|
||||
7,
|
||||
};
|
||||
|
||||
/* 8057CF74-8057CF74 00000C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
@@ -66,8 +66,8 @@ static const Vec l_cull_box[4] = {
|
||||
int daObjKJgjs_c::Create() {
|
||||
fopAcM_SetMtx(this, mMtx[1]);
|
||||
PSMTXCopy(mMtx[1], mpModel->mBaseTransformMtx);
|
||||
dBgW* mpBgW = field_0x568;
|
||||
mpBgW->field_0x91 |= 4;
|
||||
dBgW* bgw_p = mpBgW;
|
||||
bgw_p->field_0x91 |= 4;
|
||||
if (!field_0x60c) {
|
||||
fopAcM_setCullSizeBox(this, l_cull_box[0].x, l_cull_box[0].y, l_cull_box[0].z,
|
||||
l_cull_box[1].x, l_cull_box[1].y, l_cull_box[1].z);
|
||||
|
||||
@@ -20,7 +20,7 @@ void daObjLv4Floor_c::setBaseMtx() {
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
|
||||
mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), field_0x56c);
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), mBgMtx);
|
||||
}
|
||||
|
||||
/* 80C678B0-80C678D4 000130 0024+00 1/0 0/0 0/0 .text Create__15daObjLv4Floor_cFv */
|
||||
@@ -84,7 +84,7 @@ int daObjLv4Floor_c::create1st() {
|
||||
/* 80C679E4-80C67A30 000264 004C+00 1/0 0/0 0/0 .text Execute__15daObjLv4Floor_cFPPA3_A4_f */
|
||||
int daObjLv4Floor_c::Execute(Mtx** param_0) {
|
||||
action();
|
||||
*param_0 = &field_0x56c;
|
||||
*param_0 = &mBgMtx;
|
||||
setBaseMtx();
|
||||
|
||||
return 1;
|
||||
|
||||
@@ -424,7 +424,7 @@ void daMagLiftRot_c::setBaseMtx() {
|
||||
mpModel->setBaseScale(cXyz(1.0f, 1.0f, 1.0f));
|
||||
|
||||
mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), field_0x56c);
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), mBgMtx);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
@@ -547,8 +547,8 @@ int daMagLiftRot_c::create() {
|
||||
fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
|
||||
fopAcM_setCullSizeBox2(this, mpModel->getModelData());
|
||||
|
||||
field_0x568->onStickWall();
|
||||
field_0x568->onStickRoof();
|
||||
mpBgW->onStickWall();
|
||||
mpBgW->onStickRoof();
|
||||
|
||||
field_0x5e1 = fopAcM_GetParam(this) & 0xFF;
|
||||
field_0x5e2 = -0x8000;
|
||||
|
||||
@@ -4,184 +4,63 @@
|
||||
//
|
||||
|
||||
#include "rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "d/a/d_a_player.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/d_procname.h"
|
||||
#include "d/meter/d_meter2_info.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct request_of_phase_process_class {};
|
||||
class daObjMasterSword_c;
|
||||
typedef void (daObjMasterSword_c::*actionFunc)();
|
||||
|
||||
struct cXyz {};
|
||||
class daObjMasterSword_c : public fopAc_ac_c {
|
||||
public:
|
||||
enum Mode_e {
|
||||
MODE_0_e,
|
||||
};
|
||||
|
||||
struct mDoMtx_stack_c {
|
||||
/* 8000CD64 */ void transS(cXyz const&);
|
||||
|
||||
static u8 now[48];
|
||||
};
|
||||
|
||||
struct J3DAnmTextureSRTKey {};
|
||||
|
||||
struct J3DAnmTevRegKey {};
|
||||
|
||||
struct J3DMaterialTable {
|
||||
/* 8032F7B4 */ void removeTexMtxAnimator(J3DAnmTextureSRTKey*);
|
||||
/* 8032F880 */ void removeTevRegAnimator(J3DAnmTevRegKey*);
|
||||
};
|
||||
|
||||
struct mDoExt_btkAnm {
|
||||
/* 8000D63C */ void init(J3DMaterialTable*, J3DAnmTextureSRTKey*, int, int, f32, s16, s16);
|
||||
/* 8000D6D8 */ void entry(J3DMaterialTable*, f32);
|
||||
};
|
||||
|
||||
struct mDoExt_brkAnm {
|
||||
/* 8000D70C */ void init(J3DMaterialTable*, J3DAnmTevRegKey*, int, int, f32, s16, s16);
|
||||
/* 8000D7A8 */ void entry(J3DMaterialTable*, f32);
|
||||
};
|
||||
|
||||
struct mDoExt_baseAnm {
|
||||
/* 8000D428 */ void play();
|
||||
};
|
||||
|
||||
struct fopAc_ac_c {
|
||||
/* 80018B64 */ fopAc_ac_c();
|
||||
/* 80018C8C */ ~fopAc_ac_c();
|
||||
};
|
||||
|
||||
struct daObjMasterSword_c {
|
||||
/* 80C90AF8 */ void initWait();
|
||||
/* 80C90B50 */ void executeWait();
|
||||
/* 80C90C50 */ void createHeapCallBack(fopAc_ac_c*);
|
||||
/* 80C90C70 */ void CreateHeap();
|
||||
/* 80C90DB8 */ void create();
|
||||
/* 80C90C50 */ static int createHeapCallBack(fopAc_ac_c* i_this);
|
||||
/* 80C90C70 */ int CreateHeap();
|
||||
/* 80C90DB8 */ int create();
|
||||
/* 80C90F6C */ void create_init();
|
||||
/* 80C91448 */ ~daObjMasterSword_c();
|
||||
/* 80C91714 */ void draw();
|
||||
/* 80C91714 */ int draw();
|
||||
|
||||
inline void initCollision();
|
||||
inline void setCollision();
|
||||
inline void initBaseMtx();
|
||||
inline void setAction(Mode_e i_mode);
|
||||
inline void callInit();
|
||||
inline void callExecute();
|
||||
inline int execute();
|
||||
|
||||
f32 attr() const { return mAttr; }
|
||||
|
||||
u8 getEventID() { return (fopAcM_GetParam(this) >> 0x10) & 0xFF; }
|
||||
u16 getFlagNo() { return fopAcM_GetParam(this) & 0xFFFF; }
|
||||
|
||||
static f32 const mAttr;
|
||||
// static actionFunc ActionTable[];
|
||||
static u8 ActionTable[24];
|
||||
};
|
||||
|
||||
struct dSv_player_get_item_c {
|
||||
/* 80033E60 */ void onFirstBit(u8);
|
||||
};
|
||||
|
||||
struct dSv_event_tmp_flag_c {
|
||||
static u8 const tempBitLabels[370 + 2 /* padding */];
|
||||
};
|
||||
|
||||
struct dSv_event_flag_c {
|
||||
static u8 saveBitLabels[1644 + 4 /* padding */];
|
||||
};
|
||||
|
||||
struct dSv_event_c {
|
||||
/* 8003498C */ void onEventBit(u16);
|
||||
/* 800349BC */ void isEventBit(u16) const;
|
||||
};
|
||||
|
||||
struct dKy_tevstr_c {};
|
||||
|
||||
struct J3DModelData {};
|
||||
|
||||
struct dScnKy_env_light_c {
|
||||
/* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*);
|
||||
/* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*);
|
||||
};
|
||||
|
||||
struct dRes_info_c {};
|
||||
|
||||
struct dRes_control_c {
|
||||
/* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int);
|
||||
};
|
||||
|
||||
struct dDlst_shadowControl_c {
|
||||
static u8 mSimpleTexObj[32];
|
||||
};
|
||||
|
||||
struct dCcD_Stts {
|
||||
/* 80083860 */ void Init(int, int, fopAc_ac_c*);
|
||||
};
|
||||
|
||||
struct dCcD_SrcCyl {};
|
||||
|
||||
struct dCcD_GStts {
|
||||
/* 80083760 */ dCcD_GStts();
|
||||
/* 80C9137C */ ~dCcD_GStts();
|
||||
};
|
||||
|
||||
struct dCcD_GObjInf {
|
||||
/* 80083A28 */ dCcD_GObjInf();
|
||||
/* 800840E4 */ ~dCcD_GObjInf();
|
||||
};
|
||||
|
||||
struct dCcD_Cyl {
|
||||
/* 800848B4 */ void Set(dCcD_SrcCyl const&);
|
||||
};
|
||||
|
||||
struct dBgS_PolyPassChk {
|
||||
/* 80078E68 */ void SetObj();
|
||||
};
|
||||
|
||||
struct dBgS_ObjAcch {
|
||||
/* 80C9120C */ ~dBgS_ObjAcch();
|
||||
};
|
||||
|
||||
struct dBgS_AcchCir {
|
||||
/* 80075EAC */ dBgS_AcchCir();
|
||||
/* 80075F58 */ void SetWall(f32, f32);
|
||||
/* 80C9127C */ ~dBgS_AcchCir();
|
||||
};
|
||||
|
||||
struct csXyz {};
|
||||
|
||||
struct dBgS {};
|
||||
|
||||
struct dBgS_Acch {
|
||||
/* 80075F94 */ ~dBgS_Acch();
|
||||
/* 800760A0 */ dBgS_Acch();
|
||||
/* 80076248 */ void Set(cXyz*, cXyz*, fopAc_ac_c*, int, dBgS_AcchCir*, cXyz*, csXyz*, csXyz*);
|
||||
/* 80076AAC */ void CrrPos(dBgS&);
|
||||
};
|
||||
|
||||
struct dAttention_c {
|
||||
/* 80070880 */ void getActionBtnB();
|
||||
/* 80073734 */ void ActionTarget(s32);
|
||||
};
|
||||
|
||||
struct cM3dGCyl {
|
||||
/* 80C912EC */ ~cM3dGCyl();
|
||||
};
|
||||
|
||||
struct cM3dGCir {
|
||||
/* 8026EF18 */ ~cM3dGCir();
|
||||
};
|
||||
|
||||
struct cM3dGAab {
|
||||
/* 80C91334 */ ~cM3dGAab();
|
||||
};
|
||||
|
||||
struct cCcD_Obj {};
|
||||
|
||||
struct cCcS {
|
||||
/* 80264BA8 */ void Set(cCcD_Obj*);
|
||||
};
|
||||
|
||||
struct cCcD_GStts {
|
||||
/* 80C9189C */ ~cCcD_GStts();
|
||||
};
|
||||
|
||||
struct cBgS_PolyInfo {
|
||||
/* 80268074 */ cBgS_PolyInfo();
|
||||
/* 802680B0 */ ~cBgS_PolyInfo();
|
||||
};
|
||||
|
||||
struct _GXTexObj {};
|
||||
|
||||
struct J3DModel {};
|
||||
|
||||
struct J3DFrameCtrl {
|
||||
/* 803283FC */ void init(s16);
|
||||
/* 80C913D8 */ ~J3DFrameCtrl();
|
||||
/* 0x568 */ J3DModel* mpModel;
|
||||
/* 0x56C */ request_of_phase_process_class mPhase;
|
||||
/* 0x574 */ mDoExt_btkAnm mBtk;
|
||||
/* 0x58C */ mDoExt_brkAnm mBrk;
|
||||
/* 0x5A4 */ dCcD_Stts mCcStts;
|
||||
/* 0x5E0 */ dCcD_Cyl mCyl;
|
||||
/* 0x71C */ actionFunc* mActionFunc;
|
||||
/* 0x720 */ Mode_e mMode;
|
||||
/* 0x724 */ u32 mShadowKey;
|
||||
/* 0x728 */ cBgS_PolyInfo field_0x728;
|
||||
/* 0x738 */ f32 field_0x738;
|
||||
};
|
||||
|
||||
//
|
||||
@@ -269,7 +148,6 @@ extern "C" void __dl__FPv();
|
||||
extern "C" void init__12J3DFrameCtrlFs();
|
||||
extern "C" void removeTexMtxAnimator__16J3DMaterialTableFP19J3DAnmTextureSRTKey();
|
||||
extern "C" void removeTevRegAnimator__16J3DMaterialTableFP15J3DAnmTevRegKey();
|
||||
extern "C" void PSMTXCopy();
|
||||
extern "C" void __ptmf_scall();
|
||||
extern "C" void _savegpr_26();
|
||||
extern "C" void _savegpr_27();
|
||||
@@ -280,8 +158,6 @@ extern "C" void _restgpr_27();
|
||||
extern "C" void _restgpr_28();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" u8 const tempBitLabels__20dSv_event_tmp_flag_c[370 + 2 /* padding */];
|
||||
extern "C" extern void* g_fopAc_Method[8];
|
||||
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
|
||||
extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */];
|
||||
extern "C" extern void* __vt__8dCcD_Cyl[36];
|
||||
extern "C" extern void* __vt__9dCcD_Stts[11];
|
||||
@@ -289,10 +165,7 @@ extern "C" extern void* __vt__12cCcD_CylAttr[25];
|
||||
extern "C" extern void* __vt__14cCcD_ShapeAttr[22];
|
||||
extern "C" extern void* __vt__9cCcD_Stts[8];
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" u8 mSimpleTexObj__21dDlst_shadowControl_c[32];
|
||||
extern "C" extern u8 g_env_light[4880];
|
||||
extern "C" extern u8 j3dSys[284];
|
||||
extern "C" extern u8 data_80C91AD0[4];
|
||||
|
||||
//
|
||||
@@ -300,36 +173,39 @@ extern "C" extern u8 data_80C91AD0[4];
|
||||
//
|
||||
|
||||
/* 80C90AF8-80C90B50 000078 0058+00 1/0 0/0 0/0 .text initWait__18daObjMasterSword_cFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjMasterSword_c::initWait() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/initWait__18daObjMasterSword_cFv.s"
|
||||
void daObjMasterSword_c::initWait() {
|
||||
cLib_onBit(mAttentionInfo.mFlags, 0x10);
|
||||
current.pos = orig.pos;
|
||||
current.angle = orig.angle;
|
||||
shape_angle = orig.angle;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80C90B50-80C90C50 0000D0 0100+00 1/0 0/0 0/0 .text executeWait__18daObjMasterSword_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjMasterSword_c::executeWait() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/executeWait__18daObjMasterSword_cFv.s"
|
||||
void daObjMasterSword_c::executeWait() {
|
||||
if (daPy_getPlayerActorClass()->checkPriActorOwn(this)) {
|
||||
for (int i = 0; i < dComIfGp_getAttention().GetActionCount(); i++) {
|
||||
if (dComIfGp_getAttention().ActionTarget(i) == this) {
|
||||
if (dComIfGp_getAttention().getActionBtnB() != NULL &&
|
||||
dComIfGp_getAttention().getActionBtnB()->mType == 4)
|
||||
{
|
||||
dComIfGp_setDoStatusForce(8, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (fopAcM_checkCarryNow(this)) {
|
||||
dMeter2Info_setCloth(WEAR_KOKIRI, false);
|
||||
fopAcM_orderMapToolEvent(this, getEventID(), 0xFF, 0xFFFF, 1, 0);
|
||||
}
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80C90C50-80C90C70 0001D0 0020+00 1/1 0/0 0/0 .text
|
||||
* createHeapCallBack__18daObjMasterSword_cFP10fopAc_ac_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjMasterSword_c::createHeapCallBack(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/createHeapCallBack__18daObjMasterSword_cFP10fopAc_ac_c.s"
|
||||
int daObjMasterSword_c::createHeapCallBack(fopAc_ac_c* i_this) {
|
||||
return static_cast<daObjMasterSword_c*>(i_this)->CreateHeap();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C91940-80C91944 000000 0004+00 2/2 0/0 0/0 .rodata mAttr__18daObjMasterSword_c */
|
||||
@@ -374,28 +250,34 @@ SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = {
|
||||
#pragma pop
|
||||
|
||||
/* 80C9199C-80C919A0 -00001 0004+00 3/3 0/0 0/0 .data l_arcName */
|
||||
SECTION_DATA static void* l_arcName = (void*)&d_a_obj_master_sword__stringBase0;
|
||||
SECTION_DATA static char* l_arcName = "MstrSword";
|
||||
|
||||
/* 80C90C70-80C90D98 0001F0 0128+00 1/1 0/0 0/0 .text CreateHeap__18daObjMasterSword_cFv
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjMasterSword_c::CreateHeap() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/CreateHeap__18daObjMasterSword_cFv.s"
|
||||
int daObjMasterSword_c::CreateHeap() {
|
||||
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 5);
|
||||
mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000284);
|
||||
if (mpModel == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
J3DAnmTextureSRTKey* pbtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes(l_arcName, 11);
|
||||
if (!mBtk.init(modelData, pbtk, TRUE, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
J3DAnmTevRegKey* pbrk = (J3DAnmTevRegKey*)dComIfG_getObjectRes(l_arcName, 8);
|
||||
if (!mBrk.init(modelData, pbrk, TRUE, J3DFrameCtrl::LOOP_REPEAT_e, 1.0f, 0, -1)) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80C90D98-80C90DB8 000318 0020+00 1/0 0/0 0/0 .text daObjMasterSword_Create__FP10fopAc_ac_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObjMasterSword_Create(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/daObjMasterSword_Create__FP10fopAc_ac_c.s"
|
||||
static int daObjMasterSword_Create(fopAc_ac_c* i_this) {
|
||||
return static_cast<daObjMasterSword_c*>(i_this)->create();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C919A0-80C919AC -00001 000C+00 0/1 0/0 0/0 .data @3655 */
|
||||
@@ -425,6 +307,10 @@ SECTION_DATA u8 daObjMasterSword_c::ActionTable[24] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
};
|
||||
|
||||
/* static actionFunc daObjMasterSword_c::ActionTable[] = {
|
||||
&daObjMasterSword_c::initWait, &daObjMasterSword_c::executeWait,
|
||||
}; */
|
||||
|
||||
/* 80C919D0-80C91A14 000054 0044+00 1/1 0/0 0/0 .data
|
||||
* ccCylSrc$localstatic3$initCollision__18daObjMasterSword_cFv */
|
||||
SECTION_DATA static u8 data_80C919D0[68] = {
|
||||
@@ -513,14 +399,36 @@ SECTION_DATA extern void* __vt__12J3DFrameCtrl[3] = {
|
||||
};
|
||||
|
||||
/* 80C90DB8-80C90F6C 000338 01B4+00 1/1 0/0 0/0 .text create__18daObjMasterSword_cFv */
|
||||
// matches with weak funcs
|
||||
#ifdef NONMATCHING
|
||||
int daObjMasterSword_c::create() {
|
||||
fopAcM_SetupActor(this, daObjMasterSword_c);
|
||||
|
||||
if (i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[getFlagNo()])) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
int phase = dComIfG_resLoad(&mPhase, l_arcName);
|
||||
if (phase == cPhs_COMPLEATE_e) {
|
||||
if (!fopAcM_entrySolidHeap(this, daObjMasterSword_c::createHeapCallBack, 0x1830)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
create_init();
|
||||
}
|
||||
|
||||
return phase;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjMasterSword_c::create() {
|
||||
asm int daObjMasterSword_c::create() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/create__18daObjMasterSword_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C91954-80C91958 000014 0004+00 0/1 0/0 0/0 .rodata @3861 */
|
||||
@@ -544,8 +452,78 @@ SECTION_RODATA static f32 const lit_3863 = 30.0f;
|
||||
COMPILER_STRIP_GATE(0x80C9195C, &lit_3863);
|
||||
#pragma pop
|
||||
|
||||
void daObjMasterSword_c::initCollision() {
|
||||
static dCcD_SrcCyl ccCylSrc = {
|
||||
{
|
||||
{0, {{0, 0, 0}, {0, 0}, 0x79}}, // mObj
|
||||
{dCcD_SE_NONE, 0, 0, 0, 0}, // mGObjAt
|
||||
{dCcD_SE_NONE, 0, 0, 0, 4}, // mGObjTg
|
||||
{0}, // mGObjCo
|
||||
}, // mObjInf
|
||||
{
|
||||
{current.pos.x, current.pos.y, current.pos.z}, // mCenter
|
||||
18.0f, // mRadius
|
||||
180.0f // mHeight
|
||||
} // mCyl
|
||||
};
|
||||
|
||||
mCcStts.Init(0xFF, 0xFF, this);
|
||||
mCyl.Set(ccCylSrc);
|
||||
mCyl.SetStts(&mCcStts);
|
||||
}
|
||||
|
||||
void daObjMasterSword_c::initBaseMtx() {
|
||||
fopAcM_SetMtx(this, mpModel->getBaseTRMtx());
|
||||
|
||||
Vec scale = {attr(), attr(), attr()};
|
||||
mpModel->setBaseScale(scale);
|
||||
|
||||
mDoMtx_stack_c::transS(current.pos);
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
|
||||
mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
}
|
||||
|
||||
void daObjMasterSword_c::callInit() {
|
||||
(this->**mActionFunc)();
|
||||
}
|
||||
|
||||
void daObjMasterSword_c::setAction(daObjMasterSword_c::Mode_e i_mode) {
|
||||
mMode = i_mode;
|
||||
// mActionFunc = &ActionTable[mMode];
|
||||
callInit();
|
||||
}
|
||||
|
||||
/* 80C90F6C-80C9120C 0004EC 02A0+00 1/1 0/0 0/0 .text create_init__18daObjMasterSword_cFv
|
||||
*/
|
||||
// matches, but weak function emission is hella weird. cant be linked til its fixed
|
||||
#ifdef NONMATCHING
|
||||
void daObjMasterSword_c::create_init() {
|
||||
fopAcM_setCullSizeBox2(this, mpModel->getModelData());
|
||||
initCollision();
|
||||
initBaseMtx();
|
||||
|
||||
fopAcM_OnCarryType(this, fopAcM_CARRY_UNK_30);
|
||||
cLib_onBit(mAttentionInfo.mFlags, 0x10);
|
||||
mAttentionInfo.field_0x0[4] = 74;
|
||||
mAttentionInfo.mPosition = current.pos;
|
||||
mAttentionInfo.mPosition.y += 100.0f;
|
||||
mEyePos = mAttentionInfo.mPosition;
|
||||
|
||||
dBgS_AcchCir cir_check;
|
||||
dBgS_ObjAcch obj_check;
|
||||
|
||||
cir_check.SetWall(10.0f, 30.0f);
|
||||
obj_check.Set(&fopAcM_GetPosition_p(this), &fopAcM_GetOldPosition_p(this), this, 1, &cir_check,
|
||||
&fopAcM_GetSpeed_p(this), NULL, NULL);
|
||||
obj_check.CrrPos(dComIfG_Bgsp());
|
||||
|
||||
field_0x738 = obj_check.GetGroundH();
|
||||
field_0x728 = obj_check.m_gnd;
|
||||
|
||||
setAction(MODE_0_e);
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
@@ -554,12 +532,14 @@ asm void daObjMasterSword_c::create_init() {
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/create_init__18daObjMasterSword_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80C9120C-80C9127C 00078C 0070+00 3/2 0/0 0/0 .text __dt__12dBgS_ObjAcchFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dBgS_ObjAcch::~dBgS_ObjAcch() {
|
||||
// asm dBgS_ObjAcch::~dBgS_ObjAcch() {
|
||||
extern "C" asm void __dt__12dBgS_ObjAcchFv() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/__dt__12dBgS_ObjAcchFv.s"
|
||||
}
|
||||
@@ -569,7 +549,8 @@ asm dBgS_ObjAcch::~dBgS_ObjAcch() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dBgS_AcchCir::~dBgS_AcchCir() {
|
||||
// asm dBgS_AcchCir::~dBgS_AcchCir() {
|
||||
extern "C" asm void __dt__12dBgS_AcchCirFv() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/__dt__12dBgS_AcchCirFv.s"
|
||||
}
|
||||
@@ -579,7 +560,8 @@ asm dBgS_AcchCir::~dBgS_AcchCir() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm cM3dGCyl::~cM3dGCyl() {
|
||||
// asm cM3dGCyl::~cM3dGCyl() {
|
||||
extern "C" asm void __dt__8cM3dGCylFv() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/__dt__8cM3dGCylFv.s"
|
||||
}
|
||||
@@ -589,7 +571,8 @@ asm cM3dGCyl::~cM3dGCyl() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm cM3dGAab::~cM3dGAab() {
|
||||
// asm cM3dGAab::~cM3dGAab() {
|
||||
extern "C" asm void __dt__8cM3dGAabFv() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/__dt__8cM3dGAabFv.s"
|
||||
}
|
||||
@@ -599,7 +582,8 @@ asm cM3dGAab::~cM3dGAab() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm dCcD_GStts::~dCcD_GStts() {
|
||||
// asm dCcD_GStts::~dCcD_GStts() {
|
||||
extern "C" asm void __dt__10dCcD_GSttsFv() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/__dt__10dCcD_GSttsFv.s"
|
||||
}
|
||||
@@ -609,7 +593,8 @@ asm dCcD_GStts::~dCcD_GStts() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm J3DFrameCtrl::~J3DFrameCtrl() {
|
||||
// asm J3DFrameCtrl::~J3DFrameCtrl() {
|
||||
extern "C" asm void __dt__12J3DFrameCtrlFv() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/__dt__12J3DFrameCtrlFv.s"
|
||||
}
|
||||
@@ -617,14 +602,10 @@ asm J3DFrameCtrl::~J3DFrameCtrl() {
|
||||
|
||||
/* 80C91420-80C91448 0009A0 0028+00 1/0 0/0 0/0 .text
|
||||
* daObjMasterSword_Delete__FP18daObjMasterSword_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObjMasterSword_Delete(daObjMasterSword_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/daObjMasterSword_Delete__FP18daObjMasterSword_c.s"
|
||||
static int daObjMasterSword_Delete(daObjMasterSword_c* i_this) {
|
||||
i_this->~daObjMasterSword_c();
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80C91448-80C915E8 0009C8 01A0+00 1/1 0/0 0/0 .text __dt__18daObjMasterSword_cFv */
|
||||
#pragma push
|
||||
@@ -643,27 +624,45 @@ SECTION_RODATA static u8 const lit_4030[8] = {
|
||||
};
|
||||
COMPILER_STRIP_GATE(0x80C91960, &lit_4030);
|
||||
|
||||
void daObjMasterSword_c::callExecute() {
|
||||
(this->*mActionFunc[1])();
|
||||
}
|
||||
|
||||
void daObjMasterSword_c::setCollision() {
|
||||
dComIfG_Ccsp()->Set(&mCyl);
|
||||
}
|
||||
|
||||
int daObjMasterSword_c::execute() {
|
||||
callExecute();
|
||||
setCollision();
|
||||
|
||||
mBtk.play();
|
||||
mBrk.play();
|
||||
|
||||
if (dComIfGs_isTmpBit(dSv_event_tmp_flag_c::tempBitLabels[73])) {
|
||||
dComIfGs_onItemFirstBit(MASTER_SWORD);
|
||||
dMeter2Info_setSword(MASTER_SWORD, false);
|
||||
dComIfGs_setSelectEquipSword(MASTER_SWORD);
|
||||
|
||||
i_dComIfGp_setItemLifeCount(dComIfGs_getMaxLife(), 0);
|
||||
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[getFlagNo()]);
|
||||
fopAcM_delete(this);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C915E8-80C916F4 000B68 010C+00 1/0 0/0 0/0 .text
|
||||
* daObjMasterSword_Execute__FP18daObjMasterSword_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObjMasterSword_Execute(daObjMasterSword_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/daObjMasterSword_Execute__FP18daObjMasterSword_c.s"
|
||||
static int daObjMasterSword_Execute(daObjMasterSword_c* i_this) {
|
||||
return i_this->execute();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80C916F4-80C91714 000C74 0020+00 1/0 0/0 0/0 .text
|
||||
* daObjMasterSword_Draw__FP18daObjMasterSword_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObjMasterSword_Draw(daObjMasterSword_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/daObjMasterSword_Draw__FP18daObjMasterSword_c.s"
|
||||
static int daObjMasterSword_Draw(daObjMasterSword_c* i_this) {
|
||||
return i_this->draw();
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80C91968-80C9196C 000028 0004+00 0/1 0/0 0/0 .rodata @4091 */
|
||||
@@ -681,26 +680,56 @@ COMPILER_STRIP_GATE(0x80C9196C, &lit_4092);
|
||||
#pragma pop
|
||||
|
||||
/* 80C91714-80C91894 000C94 0180+00 1/1 0/0 0/0 .text draw__18daObjMasterSword_cFv */
|
||||
// weird cXyz stuff
|
||||
#ifdef NONMATCHING
|
||||
int daObjMasterSword_c::draw() {
|
||||
if (dComIfGs_isTmpBit(dSv_event_tmp_flag_c::tempBitLabels[73])) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
J3DModelData* modelData = mpModel->getModelData();
|
||||
g_env_light.settingTevStruct(0x10, ¤t.pos, &mTevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(mpModel, &mTevStr);
|
||||
|
||||
dComIfGd_setListBG();
|
||||
mBtk.entry(modelData);
|
||||
mBrk.entry(modelData);
|
||||
mDoExt_modelUpdateDL(mpModel);
|
||||
|
||||
mBtk.remove(modelData);
|
||||
mBrk.remove(modelData);
|
||||
dComIfGd_setList();
|
||||
|
||||
cXyz sp14, sp8 = cXyz(current.pos.x, current.pos.y + 50.0f, current.pos.z);
|
||||
mShadowKey =
|
||||
dComIfGd_setShadow(mShadowKey, 1, mpModel, &sp14, 200.0f, 10.0f, current.pos.y, field_0x738,
|
||||
field_0x728, &mTevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex());
|
||||
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void daObjMasterSword_c::draw() {
|
||||
asm int daObjMasterSword_c::draw() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/draw__18daObjMasterSword_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80C91894-80C9189C 000E14 0008+00 1/0 0/0 0/0 .text
|
||||
* daObjMasterSword_IsDelete__FP18daObjMasterSword_c */
|
||||
static bool daObjMasterSword_IsDelete(daObjMasterSword_c* param_0) {
|
||||
return true;
|
||||
static int daObjMasterSword_IsDelete(daObjMasterSword_c* param_0) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80C9189C-80C918E4 000E1C 0048+00 1/0 0/0 0/0 .text __dt__10cCcD_GSttsFv */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm cCcD_GStts::~cCcD_GStts() {
|
||||
// asm cCcD_GStts::~cCcD_GStts() {
|
||||
extern "C" asm void __dt__10cCcD_GSttsFv() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/__dt__10cCcD_GSttsFv.s"
|
||||
}
|
||||
@@ -710,8 +739,7 @@ asm cCcD_GStts::~cCcD_GStts() {
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm void __sinit_d_a_obj_master_sword_cpp() {
|
||||
nofralloc
|
||||
asm void __sinit_d_a_obj_master_sword_cpp(){nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_master_sword/d_a_obj_master_sword/__sinit_d_a_obj_master_sword_cpp.s"
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
@@ -58,7 +58,7 @@ void daObjMGate_c::setBaseMtx() {
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
mDoMtx_stack_c::ZXYrotM(mGateAngle.x, mGateAngle.y, mGateAngle.z);
|
||||
mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), field_0x56c);
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), mBgMtx);
|
||||
|
||||
if (mpKeyModel != NULL) {
|
||||
cXyz key_offset(l_key_offset[mKind]);
|
||||
@@ -223,7 +223,7 @@ int daObjMGate_c::Execute(Mtx** param_0) {
|
||||
}
|
||||
}
|
||||
|
||||
*param_0 = &field_0x56c;
|
||||
*param_0 = &mBgMtx;
|
||||
setBaseMtx();
|
||||
|
||||
mGateAngle.y = mGateSwingMultiplier * cM_ssin(mCounter * 4000);
|
||||
|
||||
@@ -20,7 +20,7 @@ void daObjOnsen_c::setBaseMtx() {
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
PSMTXCopy(mDoMtx_stack_c::now, mpModel[0]->mBaseTransformMtx);
|
||||
PSMTXCopy(mDoMtx_stack_c::now, mpModel[1]->mBaseTransformMtx);
|
||||
PSMTXCopy(mDoMtx_stack_c::now, field_0x56c);
|
||||
PSMTXCopy(mDoMtx_stack_c::now, mBgMtx);
|
||||
}
|
||||
|
||||
/* 80CA7C28-80CA7C74 000148 004C+00 1/0 0/0 0/0 .text Create__12daObjOnsen_cFv */
|
||||
@@ -92,7 +92,7 @@ int daObjOnsen_c::create1st() {
|
||||
/* 80CA7EEC-80CA7F1C 00040C 0030+00 1/0 0/0 0/0 .text Execute__12daObjOnsen_cFPPA3_A4_f
|
||||
*/
|
||||
int daObjOnsen_c::Execute(Mtx** i_mtx) {
|
||||
*i_mtx = &field_0x56c;
|
||||
*i_mtx = &mBgMtx;
|
||||
mpBtk->play();
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ void daObjGake_c::setBaseMtx() {
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
|
||||
mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), field_0x56c);
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), mBgMtx);
|
||||
}
|
||||
|
||||
/* 80D0BCB8-80D0BD30 000118 0078+00 1/0 0/0 0/0 .text Create__11daObjGake_cFv */
|
||||
@@ -72,8 +72,8 @@ int daObjGake_c::Execute(Mtx** param_0) {
|
||||
(mEventBit1 != 0x3FF &&
|
||||
!i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[mEventBit1])))
|
||||
{
|
||||
if (field_0x568 != NULL && field_0x568->ChkUsed()) {
|
||||
dComIfG_Bgsp().Release(field_0x568);
|
||||
if (mpBgW != NULL && mpBgW->ChkUsed()) {
|
||||
dComIfG_Bgsp().Release(mpBgW);
|
||||
}
|
||||
|
||||
mHide = true;
|
||||
@@ -81,15 +81,15 @@ int daObjGake_c::Execute(Mtx** param_0) {
|
||||
}
|
||||
|
||||
if (mEventBit1 != 0x3FF && i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[mEventBit1])) {
|
||||
if (field_0x568 != NULL && !field_0x568->ChkUsed()) {
|
||||
dComIfG_Bgsp().Regist(field_0x568, this);
|
||||
if (mpBgW != NULL && !mpBgW->ChkUsed()) {
|
||||
dComIfG_Bgsp().Regist(mpBgW, this);
|
||||
}
|
||||
|
||||
mHide = false;
|
||||
return 1;
|
||||
}
|
||||
|
||||
*param_0 = &field_0x56c;
|
||||
*param_0 = &mBgMtx;
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,231 +1,128 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: d_a_obj_usaku
|
||||
//
|
||||
/**
|
||||
* d_a_obj_usaku.cpp
|
||||
* Horse Fence
|
||||
*/
|
||||
|
||||
#include "rel/d/a/obj/d_a_obj_usaku/d_a_obj_usaku.h"
|
||||
#include "dol2asm.h"
|
||||
|
||||
//
|
||||
// Types:
|
||||
//
|
||||
|
||||
struct request_of_phase_process_class {};
|
||||
|
||||
struct obj_usaku_class {};
|
||||
|
||||
struct mDoMtx_stack_c {
|
||||
static u8 now[48];
|
||||
};
|
||||
|
||||
struct fopAc_ac_c {
|
||||
/* 80018B64 */ fopAc_ac_c();
|
||||
};
|
||||
|
||||
struct dKy_tevstr_c {};
|
||||
|
||||
struct J3DModelData {};
|
||||
|
||||
struct cXyz {};
|
||||
|
||||
struct dScnKy_env_light_c {
|
||||
/* 801A37C4 */ void settingTevStruct(int, cXyz*, dKy_tevstr_c*);
|
||||
/* 801A4DA0 */ void setLightTevColorType_MAJI(J3DModelData*, dKy_tevstr_c*);
|
||||
};
|
||||
|
||||
struct dRes_info_c {};
|
||||
|
||||
struct dRes_control_c {
|
||||
/* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int);
|
||||
};
|
||||
|
||||
struct dBgW_Base {};
|
||||
|
||||
struct dBgW {
|
||||
/* 8007B970 */ dBgW();
|
||||
/* 8007B9C0 */ void Move();
|
||||
};
|
||||
|
||||
struct dBgS {
|
||||
/* 80074A08 */ void Regist(dBgW_Base*, fopAc_ac_c*);
|
||||
};
|
||||
|
||||
struct csXyz {};
|
||||
|
||||
struct cBgD_t {};
|
||||
|
||||
struct cBgW {
|
||||
/* 80079F38 */ void Set(cBgD_t*, u32, f32 (*)[3][4]);
|
||||
};
|
||||
|
||||
struct cBgS_PolyInfo {};
|
||||
|
||||
struct cBgS {
|
||||
/* 80074250 */ void Release(dBgW_Base*);
|
||||
};
|
||||
|
||||
struct J3DModel {};
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
extern "C" static void daObj_Usaku_Draw__FP15obj_usaku_class();
|
||||
extern "C" static void daObj_Usaku_Execute__FP15obj_usaku_class();
|
||||
extern "C" static bool daObj_Usaku_IsDelete__FP15obj_usaku_class();
|
||||
extern "C" static void daObj_Usaku_Delete__FP15obj_usaku_class();
|
||||
extern "C" static void useHeapInit__FP10fopAc_ac_c();
|
||||
extern "C" static void daObj_Usaku_Create__FP10fopAc_ac_c();
|
||||
extern "C" extern char const* const d_a_obj_usaku__stringBase0;
|
||||
extern "C" extern void* g_profile_OBJ_USAKU[12];
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoMtx_YrotM__FPA4_fs();
|
||||
extern "C" void mDoExt_modelUpdateDL__FP8J3DModel();
|
||||
extern "C" void mDoExt_J3DModel__create__FP12J3DModelDataUlUl();
|
||||
extern "C" void __ct__10fopAc_ac_cFv();
|
||||
extern "C" void fopAcM_entrySolidHeap__FP10fopAc_ac_cPFP10fopAc_ac_c_iUl();
|
||||
extern "C" void fopAcM_SetMin__FP10fopAc_ac_cfff();
|
||||
extern "C" void fopAcM_SetMax__FP10fopAc_ac_cfff();
|
||||
extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc();
|
||||
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
|
||||
extern "C" void Release__4cBgSFP9dBgW_Base();
|
||||
extern "C" void Regist__4dBgSFP9dBgW_BaseP10fopAc_ac_c();
|
||||
extern "C" void dBgS_MoveBGProc_Typical__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz();
|
||||
extern "C" void Set__4cBgWFP6cBgD_tUlPA3_A4_f();
|
||||
extern "C" void __ct__4dBgWFv();
|
||||
extern "C" void Move__4dBgWFv();
|
||||
extern "C" void settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c();
|
||||
extern "C" void setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c();
|
||||
extern "C" void* __nw__FUl();
|
||||
extern "C" void PSMTXCopy();
|
||||
extern "C" void PSMTXTrans();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" extern void* g_fopAc_Method[8];
|
||||
extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */];
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
extern "C" extern u8 g_dComIfG_gameInfo[122384];
|
||||
extern "C" extern u8 g_env_light[4880];
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "d/bg/d_bg_w.h"
|
||||
#include "d/com/d_com_inf_game.h"
|
||||
#include "d/d_procname.h"
|
||||
|
||||
/* 80D20F58-80D20FBC 000078 0064+00 1/0 0/0 0/0 .text daObj_Usaku_Draw__FP15obj_usaku_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObj_Usaku_Draw(obj_usaku_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_usaku/d_a_obj_usaku/daObj_Usaku_Draw__FP15obj_usaku_class.s"
|
||||
static int daObj_Usaku_Draw(obj_usaku_class* i_this) {
|
||||
g_env_light.settingTevStruct(0x10, &i_this->current.pos, &i_this->mTevStr);
|
||||
g_env_light.setLightTevColorType_MAJI(i_this->mpModel, &i_this->mTevStr);
|
||||
mDoExt_modelUpdateDL(i_this->mpModel);
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D20FBC-80D21048 0000DC 008C+00 2/1 0/0 0/0 .text daObj_Usaku_Execute__FP15obj_usaku_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObj_Usaku_Execute(obj_usaku_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_usaku/d_a_obj_usaku/daObj_Usaku_Execute__FP15obj_usaku_class.s"
|
||||
static int daObj_Usaku_Execute(obj_usaku_class* i_this) {
|
||||
mDoMtx_stack_c::transS(i_this->current.pos.x, i_this->current.pos.y, i_this->current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(i_this->shape_angle.y);
|
||||
|
||||
i_this->mpModel->i_setBaseTRMtx(mDoMtx_stack_c::get());
|
||||
if (i_this->mpBgW != NULL) {
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), i_this->mBgMtx);
|
||||
i_this->mpBgW->Move();
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D21048-80D21050 000168 0008+00 1/0 0/0 0/0 .text daObj_Usaku_IsDelete__FP15obj_usaku_class */
|
||||
static bool daObj_Usaku_IsDelete(obj_usaku_class* param_0) {
|
||||
return true;
|
||||
static int daObj_Usaku_IsDelete(obj_usaku_class* i_this) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80D212EC-80D212EC 000010 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_DEAD static char const* const stringBase_80D212EC = "Obj_usaku";
|
||||
#pragma pop
|
||||
|
||||
/* 80D21050-80D210A8 000170 0058+00 1/0 0/0 0/0 .text daObj_Usaku_Delete__FP15obj_usaku_class */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObj_Usaku_Delete(obj_usaku_class* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_usaku/d_a_obj_usaku/daObj_Usaku_Delete__FP15obj_usaku_class.s"
|
||||
static int daObj_Usaku_Delete(obj_usaku_class* i_this) {
|
||||
dComIfG_resDelete(&i_this->mPhase, "Obj_usaku");
|
||||
|
||||
if (i_this->mpBgW != NULL) {
|
||||
dComIfG_Bgsp().Release(i_this->mpBgW);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* 80D210A8-80D211AC 0001C8 0104+00 1/1 0/0 0/0 .text useHeapInit__FP10fopAc_ac_c */
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void useHeapInit(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_usaku/d_a_obj_usaku/useHeapInit__FP10fopAc_ac_c.s"
|
||||
static int useHeapInit(fopAc_ac_c* i_this) {
|
||||
obj_usaku_class* a_this = (obj_usaku_class*)i_this;
|
||||
|
||||
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("Obj_usaku", 4);
|
||||
a_this->mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
|
||||
if (a_this->mpModel == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
a_this->mpBgW = new dBgW();
|
||||
if (a_this->mpBgW == NULL) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
cBgD_t* pdzb = (cBgD_t*)dComIfG_getObjectRes("Obj_usaku", 7);
|
||||
if (a_this->mpBgW->Set(pdzb, cBgW::MOVE_BG_e, &a_this->mBgMtx) == 1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
a_this->mpBgW->SetCrrFunc(dBgS_MoveBGProc_Typical);
|
||||
return 1;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80D212DC-80D212E0 000000 0004+00 1/1 0/0 0/0 .rodata @3744 */
|
||||
SECTION_RODATA static f32 const lit_3744 = -300.0f;
|
||||
COMPILER_STRIP_GATE(0x80D212DC, &lit_3744);
|
||||
|
||||
/* 80D212E0-80D212E4 000004 0004+00 0/1 0/0 0/0 .rodata @3745 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3745 = -600.0f;
|
||||
COMPILER_STRIP_GATE(0x80D212E0, &lit_3745);
|
||||
#pragma pop
|
||||
|
||||
/* 80D212E4-80D212E8 000008 0004+00 0/1 0/0 0/0 .rodata @3746 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3746 = 300.0f;
|
||||
COMPILER_STRIP_GATE(0x80D212E4, &lit_3746);
|
||||
#pragma pop
|
||||
|
||||
/* 80D212E8-80D212EC 00000C 0004+00 0/1 0/0 0/0 .rodata @3747 */
|
||||
#pragma push
|
||||
#pragma force_active on
|
||||
SECTION_RODATA static f32 const lit_3747 = 600.0f;
|
||||
COMPILER_STRIP_GATE(0x80D212E8, &lit_3747);
|
||||
#pragma pop
|
||||
|
||||
/* 80D211AC-80D212D4 0002CC 0128+00 1/0 0/0 0/0 .text daObj_Usaku_Create__FP10fopAc_ac_c
|
||||
*/
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
static asm void daObj_Usaku_Create(fopAc_ac_c* param_0) {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/obj/d_a_obj_usaku/d_a_obj_usaku/daObj_Usaku_Create__FP10fopAc_ac_c.s"
|
||||
static int daObj_Usaku_Create(fopAc_ac_c* i_this) {
|
||||
fopAcM_SetupActor(i_this, obj_usaku_class);
|
||||
obj_usaku_class* a_this = (obj_usaku_class*)i_this;
|
||||
|
||||
int phase = dComIfG_resLoad(&a_this->mPhase, "Obj_usaku");
|
||||
if (phase == cPhs_COMPLEATE_e) {
|
||||
a_this->field_0x570 = fopAcM_GetParam(a_this) & 0xFF;
|
||||
if (a_this->field_0x570 == 0xFF) {
|
||||
a_this->field_0x570 = 0;
|
||||
}
|
||||
|
||||
if (!fopAcM_entrySolidHeap(a_this, useHeapInit, 0xC60)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
if (a_this->mpBgW != NULL && dComIfG_Bgsp().Regist(a_this->mpBgW, a_this)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
a_this->mCullMtx = a_this->mpModel->getBaseTRMtx();
|
||||
fopAcM_SetMin(a_this, -300.0f, -600.0f, -300.0f);
|
||||
fopAcM_SetMax(a_this, 300.0f, 600.0f, 300.0f);
|
||||
daObj_Usaku_Execute(a_this);
|
||||
}
|
||||
|
||||
return phase;
|
||||
}
|
||||
#pragma pop
|
||||
|
||||
/* ############################################################################################## */
|
||||
/* 80D212F8-80D21318 -00001 0020+00 1/0 0/0 0/0 .data l_daObj_Usaku_Method */
|
||||
SECTION_DATA static void* l_daObj_Usaku_Method[8] = {
|
||||
(void*)daObj_Usaku_Create__FP10fopAc_ac_c,
|
||||
(void*)daObj_Usaku_Delete__FP15obj_usaku_class,
|
||||
(void*)daObj_Usaku_Execute__FP15obj_usaku_class,
|
||||
(void*)daObj_Usaku_IsDelete__FP15obj_usaku_class,
|
||||
(void*)daObj_Usaku_Draw__FP15obj_usaku_class,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
(void*)NULL,
|
||||
static actor_method_class l_daObj_Usaku_Method = {
|
||||
(process_method_func)daObj_Usaku_Create, (process_method_func)daObj_Usaku_Delete,
|
||||
(process_method_func)daObj_Usaku_Execute, (process_method_func)daObj_Usaku_IsDelete,
|
||||
(process_method_func)daObj_Usaku_Draw,
|
||||
};
|
||||
|
||||
/* 80D21318-80D21348 -00001 0030+00 0/0 0/0 1/0 .data g_profile_OBJ_USAKU */
|
||||
SECTION_DATA extern void* g_profile_OBJ_USAKU[12] = {
|
||||
(void*)0xFFFFFFFD, (void*)0x0007FFFD,
|
||||
(void*)0x012A0000, (void*)&g_fpcLf_Method,
|
||||
(void*)0x000005B4, (void*)NULL,
|
||||
(void*)NULL, (void*)&g_fopAc_Method,
|
||||
(void*)0x004E0000, (void*)&l_daObj_Usaku_Method,
|
||||
(void*)0x00040100, (void*)0x000E0000,
|
||||
extern actor_process_profile_definition g_profile_OBJ_USAKU = {
|
||||
-3,
|
||||
7,
|
||||
-3,
|
||||
PROC_OBJ_USAKU,
|
||||
&g_fpcLf_Method.mBase,
|
||||
sizeof(obj_usaku_class),
|
||||
0,
|
||||
0,
|
||||
&g_fopAc_Method.base,
|
||||
78,
|
||||
&l_daObj_Usaku_Method,
|
||||
0x40100,
|
||||
0,
|
||||
14,
|
||||
};
|
||||
|
||||
/* 80D212EC-80D212EC 000010 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
|
||||
|
||||
@@ -238,7 +238,7 @@ static int useHeapInit(fopAc_ac_c* i_this) {
|
||||
}
|
||||
|
||||
cBgD_t* dzb = (cBgD_t*)dComIfG_getObjectRes("Obj_web1", 11);
|
||||
if (_this->mpBgW->Set(dzb, 1, &_this->mMtx) == 1) {
|
||||
if (_this->mpBgW->Set(dzb, cBgW::MOVE_BG_e, &_this->mMtx) == 1) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,51 +1,38 @@
|
||||
/**
|
||||
* d_a_tag_chgrestart.cpp
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
#include "rel/d/a/tag/d_a_tag_chgrestart/d_a_tag_chgrestart.h"
|
||||
#include "JSystem/JKernel/JKRHeap.h"
|
||||
#include "d/d_procname.h"
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
extern "C" void mDoMtx_YrotS__FPA4_fs();
|
||||
extern "C" void getStatusRoomDt__20dStage_roomControl_cFi();
|
||||
extern "C" void setRoom__13dSv_restart_cFRC4cXyzsSc();
|
||||
extern "C" void onSwitch__10dSv_info_cFii();
|
||||
extern "C" void isSwitch__10dSv_info_cCFii();
|
||||
extern "C" void _savegpr_29();
|
||||
extern "C" void _restgpr_29();
|
||||
extern "C" u8 now__14mDoMtx_stack_c[48];
|
||||
|
||||
/* 80D56758-80D567E4 000078 008C+00 1/1 0/0 0/0 .text Create__17daTagChgRestart_cFv */
|
||||
s32 daTagChgRestart_c::Create() {
|
||||
field_0x568[0].x = -100.0f * mScale.x;
|
||||
field_0x568[0].z = -100.0f * mScale.z;
|
||||
mVertices[0].x = -100.0f * mScale.x;
|
||||
mVertices[0].z = -100.0f * mScale.z;
|
||||
|
||||
field_0x568[1].x = 100.0f * mScale.x;
|
||||
field_0x568[1].z = -100.0f * mScale.z;
|
||||
mVertices[1].x = 100.0f * mScale.x;
|
||||
mVertices[1].z = -100.0f * mScale.z;
|
||||
|
||||
field_0x568[2].x = 100.0f * mScale.x;
|
||||
field_0x568[2].z = 100.0f * mScale.z;
|
||||
mVertices[2].x = 100.0f * mScale.x;
|
||||
mVertices[2].z = 100.0f * mScale.z;
|
||||
|
||||
field_0x568[3].x = -100.0f * mScale.x;
|
||||
field_0x568[3].z = 100.0f * mScale.z;
|
||||
mVertices[3].x = -100.0f * mScale.x;
|
||||
mVertices[3].z = 100.0f * mScale.z;
|
||||
|
||||
field_0x568[3].y = 0.0f;
|
||||
field_0x568[2].y = 0.0f;
|
||||
field_0x568[1].y = 0.0f;
|
||||
field_0x568[0].y = 0.0f;
|
||||
mVertices[3].y = 0.0f;
|
||||
mVertices[2].y = 0.0f;
|
||||
mVertices[1].y = 0.0f;
|
||||
mVertices[0].y = 0.0f;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 80D567E4-80D56878 000104 0094+00 1/1 0/0 0/0 .text create__17daTagChgRestart_cFv */
|
||||
s32 daTagChgRestart_c::create() {
|
||||
s32 daTagChgRestart_c::create() {
|
||||
fopAcM_SetupActor(this, daTagChgRestart_c);
|
||||
|
||||
|
||||
if (!Create()) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
@@ -54,10 +41,8 @@ s32 daTagChgRestart_c::create() {
|
||||
}
|
||||
|
||||
/* 80D568B8-80D56A84 0001D8 01CC+00 1/1 0/0 0/0 .text execute__17daTagChgRestart_cFv */
|
||||
#ifdef NONMATCHING
|
||||
// do-while loop is wrong
|
||||
s32 daTagChgRestart_c::execute() {
|
||||
if (i_fopAcM_isSwitch(this,daTagChgRestart_prm::getSwNo(this))) {
|
||||
if (i_fopAcM_isSwitch(this, daTagChgRestart_prm::getSwNo(this))) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -66,46 +51,40 @@ s32 daTagChgRestart_c::execute() {
|
||||
pos -= orig.pos;
|
||||
|
||||
mDoMtx_stack_c::YrotS(-current.angle.y);
|
||||
mDoMtx_stack_c::multVec(&pos,&pos);
|
||||
mDoMtx_stack_c::multVec(&pos, &pos);
|
||||
|
||||
if (mVertices[0].x < pos.x && mVertices[0].z < pos.z && mVertices[2].x > pos.x &&
|
||||
mVertices[2].z > pos.z)
|
||||
{
|
||||
cXyz restart_pos = orig.pos;
|
||||
s16 restart_angle = orig.angle.y;
|
||||
|
||||
if (field_0x568[0].x < pos.x && field_0x568[0].z < pos.z &&
|
||||
field_0x568[2].x > pos.x && field_0x568[2].z > pos.z) {
|
||||
cXyz l_restartPos = orig.pos;
|
||||
s16 l_restartAngle = orig.angle.y;
|
||||
|
||||
u8 playerNo = daTagChgRestart_prm::getPlayerNo(this);
|
||||
if (playerNo != 0xFF) {
|
||||
dStage_roomStatus_c* roomStatusDt = dComIfGp_roomControl_getStatusRoomDt(fopAcM_GetRoomNo(this));
|
||||
stage_actor_class* actor = roomStatusDt->mRoomDt.getPlayer();
|
||||
stage_actor_data_class* actor_data = actor->mEntries;
|
||||
int entryNum = actor->mEntryNum;
|
||||
dStage_roomStatus_c* roomStatusDt =
|
||||
dComIfGp_roomControl_getStatusRoomDt(fopAcM_GetRoomNo(this));
|
||||
stage_actor_class* player_data = roomStatusDt->mRoomDt.getPlayer();
|
||||
|
||||
do {
|
||||
actor_data++;
|
||||
stage_actor_data_class* entry_p = player_data->mEntries;
|
||||
for (int i = 0; i < player_data->mEntryNum; i++) {
|
||||
if ((entry_p->mAngle.z & 0xFF) == playerNo) {
|
||||
break;
|
||||
}
|
||||
|
||||
entry_p++;
|
||||
}
|
||||
while (entryNum > 0 && actor->mEntryNum > playerNo && actor_data != 0);
|
||||
|
||||
l_restartPos = actor_data->mSpawnPos;
|
||||
l_restartAngle = actor_data->mAngle.y;
|
||||
|
||||
restart_pos = entry_p->mSpawnPos;
|
||||
restart_angle = entry_p->mAngle.y;
|
||||
}
|
||||
|
||||
|
||||
s32 l_roomNo = fopAcM_GetRoomNo(player);
|
||||
dComIfGs_setRestartRoom(l_restartPos,l_restartAngle,l_roomNo);
|
||||
i_fopAcM_onSwitch(this,daTagChgRestart_prm::getSwNo(this));
|
||||
dComIfGs_setRestartRoom(restart_pos, restart_angle, l_roomNo);
|
||||
i_fopAcM_onSwitch(this, daTagChgRestart_prm::getSwNo(this));
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
#else
|
||||
#pragma push
|
||||
#pragma optimization_level 0
|
||||
#pragma optimizewithasm off
|
||||
asm s32 daTagChgRestart_c::execute() {
|
||||
nofralloc
|
||||
#include "asm/rel/d/a/tag/d_a_tag_chgrestart/d_a_tag_chgrestart/execute__17daTagChgRestart_cFv.s"
|
||||
}
|
||||
#pragma pop
|
||||
#endif
|
||||
|
||||
/* 80D56A84-80D56A8C 0003A4 0008+00 1/1 0/0 0/0 .text _delete__17daTagChgRestart_cFv */
|
||||
s32 daTagChgRestart_c::_delete() {
|
||||
@@ -125,8 +104,8 @@ static s32 daTagChgRestart_Delete(daTagChgRestart_c* i_this) {
|
||||
}
|
||||
|
||||
/* 80D56ACC-80D56AEC 0003EC 0020+00 1/0 0/0 0/0 .text daTagChgRestart_Create__FP10fopAc_ac_c */
|
||||
static s32 daTagChgRestart_Create(fopAc_ac_c* param_0) {
|
||||
return static_cast<daTagChgRestart_c*>(param_0)->create();
|
||||
static s32 daTagChgRestart_Create(fopAc_ac_c* i_this) {
|
||||
return static_cast<daTagChgRestart_c*>(i_this)->create();
|
||||
}
|
||||
|
||||
/* ############################################################################################## */
|
||||
@@ -134,7 +113,7 @@ static s32 daTagChgRestart_Create(fopAc_ac_c* param_0) {
|
||||
static actor_method_class l_daTagChgRestart_Method = {
|
||||
(process_method_func)daTagChgRestart_Create,
|
||||
(process_method_func)daTagChgRestart_Delete,
|
||||
(process_method_func)daTagChgRestart_Execute
|
||||
(process_method_func)daTagChgRestart_Execute,
|
||||
};
|
||||
|
||||
/* 80D56B20-80D56B50 -00001 0030+00 0/0 0/0 1/0 .data g_profile_Tag_ChgRestart */
|
||||
|
||||
@@ -55,7 +55,7 @@ int daTagHjump_c::create() {
|
||||
mDoMtx_stack_c::get()[1][3] -= 100.0f;
|
||||
current.pos.y -= 100.0f;
|
||||
|
||||
field_0x568->SetLock();
|
||||
mpBgW->SetLock();
|
||||
mScale.x = 250.0f;
|
||||
mScale.y = 350.0f;
|
||||
mScale.z = 400.0f;
|
||||
|
||||
+76
-66
@@ -130,7 +130,8 @@ bool cBgS::LineCross(cBgS_LinChk* p_line) {
|
||||
cBgS_ChkElm* elm = m_chk_element;
|
||||
for (int i = 0; i < 0x100; i++) {
|
||||
if (elm->ChkUsed() && !elm->m_bgw_base_ptr->ChkNotReady() &&
|
||||
!p_line->ChkSameActorPid(elm->m_actor_id) && elm->m_bgw_base_ptr->LineCheck(p_line)) {
|
||||
!p_line->ChkSameActorPid(elm->m_actor_id) && elm->m_bgw_base_ptr->LineCheck(p_line))
|
||||
{
|
||||
p_line->SetActorInfo(i, elm->m_bgw_base_ptr, elm->m_actor_id);
|
||||
p_line->SetHit();
|
||||
}
|
||||
@@ -149,7 +150,8 @@ f32 cBgS::GroundCross(cBgS_GndChk* p_gnd) {
|
||||
cBgS_ChkElm* elm = m_chk_element;
|
||||
for (int i = 0; i < 0x100; i++) {
|
||||
if (elm->ChkUsed() && !elm->m_bgw_base_ptr->ChkNotReady() &&
|
||||
!p_gnd->ChkSameActorPid(elm->m_actor_id) && elm->m_bgw_base_ptr->GroundCross(p_gnd)) {
|
||||
!p_gnd->ChkSameActorPid(elm->m_actor_id) && elm->m_bgw_base_ptr->GroundCross(p_gnd))
|
||||
{
|
||||
p_gnd->SetActorInfo(i, elm->m_bgw_base_ptr, elm->m_actor_id);
|
||||
}
|
||||
elm++;
|
||||
@@ -212,7 +214,8 @@ void* cBgS::ConvDzb(void* p_dzb) {
|
||||
pbgd->m_ti_tbl += (u32)p_dzb;
|
||||
|
||||
for (int i = 0; i < pbgd->m_g_num; i++) {
|
||||
((cBgS_dzb_strgroup*)pbgd->m_g_tbl)[i].strOffset = (u32)p_dzb + ((cBgS_dzb_strgroup*)pbgd->m_g_tbl)[i].strOffset;
|
||||
((cBgS_dzb_strgroup*)pbgd->m_g_tbl)[i].strOffset =
|
||||
(u32)p_dzb + ((cBgS_dzb_strgroup*)pbgd->m_g_tbl)[i].strOffset;
|
||||
}
|
||||
|
||||
return p_dzb;
|
||||
@@ -726,107 +729,113 @@ bool dBgS::SphChk(dBgS_SphChk* p_sph, void* param_1) {
|
||||
|
||||
/* 80075774-80075880 0700B4 010C+00 0/0 3/3 0/0 .text
|
||||
* MoveBgCrrPos__4dBgSFRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyzbb */
|
||||
void dBgS::MoveBgCrrPos(cBgS_PolyInfo const& poly, bool param_1, cXyz* param_2, csXyz* param_3,
|
||||
csXyz* param_4, bool param_5, bool param_6) {
|
||||
if (!param_1 || !poly.ChkBgIndex()) {
|
||||
void dBgS::MoveBgCrrPos(cBgS_PolyInfo const& i_poly, bool param_1, cXyz* i_pos, csXyz* i_angle,
|
||||
csXyz* i_shapeAngle, bool param_5, bool param_6) {
|
||||
if (!param_1 || !i_poly.ChkBgIndex()) {
|
||||
return;
|
||||
} else {
|
||||
int bg_index = poly.GetBgIndex();
|
||||
if (m_chk_element[bg_index].ChkUsed()) {
|
||||
dBgW_Base* base = m_chk_element[bg_index].m_bgw_base_ptr;
|
||||
if ((!param_5 || base->chkStickWall()) && (!param_6 || base->chkStickRoof()) &&
|
||||
base->ChkMoveFlag() && ChkPolySafe(poly)) {
|
||||
base->CrrPos(poly, m_chk_element[bg_index].m_actor_ptr, param_1, param_2, param_3,
|
||||
param_4);
|
||||
}
|
||||
}
|
||||
|
||||
int bg_index = i_poly.GetBgIndex();
|
||||
if (m_chk_element[bg_index].ChkUsed()) {
|
||||
dBgW_Base* bgw_p = m_chk_element[bg_index].m_bgw_base_ptr;
|
||||
|
||||
if ((!param_5 || bgw_p->chkStickWall()) && (!param_6 || bgw_p->chkStickRoof()) &&
|
||||
bgw_p->ChkMoveFlag() && ChkPolySafe(i_poly))
|
||||
{
|
||||
bgw_p->CrrPos(i_poly, m_chk_element[bg_index].m_actor_ptr, param_1, i_pos, i_angle,
|
||||
i_shapeAngle);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 80075880-8007595C 0701C0 00DC+00 0/0 7/7 2/2 .text
|
||||
* MoveBgTransPos__4dBgSFRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz */
|
||||
void dBgS::MoveBgTransPos(cBgS_PolyInfo const& poly, bool param_1, cXyz* param_2, csXyz* param_3,
|
||||
csXyz* param_4) {
|
||||
if (!param_1 || !poly.ChkBgIndex()) {
|
||||
void dBgS::MoveBgTransPos(cBgS_PolyInfo const& i_poly, bool param_1, cXyz* i_pos, csXyz* i_angle,
|
||||
csXyz* i_shapeAngle) {
|
||||
if (!param_1 || !i_poly.ChkBgIndex()) {
|
||||
return;
|
||||
} else {
|
||||
int bg_index = poly.GetBgIndex();
|
||||
if (m_chk_element[bg_index].ChkUsed()) {
|
||||
dBgW_Base* base = m_chk_element[bg_index].m_bgw_base_ptr;
|
||||
if (base->ChkMoveFlag() && ChkPolySafe(poly)) {
|
||||
base->TransPos(poly, m_chk_element[bg_index].m_actor_ptr, param_1, param_2, param_3,
|
||||
param_4);
|
||||
}
|
||||
}
|
||||
|
||||
int bg_index = i_poly.GetBgIndex();
|
||||
if (m_chk_element[bg_index].ChkUsed()) {
|
||||
dBgW_Base* bgw_p = m_chk_element[bg_index].m_bgw_base_ptr;
|
||||
|
||||
if (bgw_p->ChkMoveFlag() && ChkPolySafe(i_poly)) {
|
||||
bgw_p->TransPos(i_poly, m_chk_element[bg_index].m_actor_ptr, param_1, i_pos, i_angle,
|
||||
i_shapeAngle);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 8007595C-80075A24 07029C 00C8+00 0/0 6/6 0/0 .text
|
||||
* MoveBgMatrixCrrPos__4dBgSFRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz */
|
||||
void dBgS::MoveBgMatrixCrrPos(cBgS_PolyInfo const& poly, bool param_1, cXyz* param_2,
|
||||
csXyz* param_3, csXyz* param_4) {
|
||||
if (!param_1 || !poly.ChkBgIndex()) {
|
||||
void dBgS::MoveBgMatrixCrrPos(cBgS_PolyInfo const& i_poly, bool param_1, cXyz* i_pos,
|
||||
csXyz* i_angle, csXyz* i_shapeAngle) {
|
||||
if (!param_1 || !i_poly.ChkBgIndex()) {
|
||||
return;
|
||||
} else {
|
||||
int bg_index = poly.GetBgIndex();
|
||||
if (m_chk_element[bg_index].ChkUsed()) {
|
||||
dBgW_Base* base = m_chk_element[bg_index].m_bgw_base_ptr;
|
||||
if (base->ChkMoveFlag()) {
|
||||
base->MatrixCrrPos(poly, m_chk_element[bg_index].m_actor_ptr, param_1, param_2,
|
||||
param_3, param_4);
|
||||
}
|
||||
}
|
||||
|
||||
int bg_index = i_poly.GetBgIndex();
|
||||
if (m_chk_element[bg_index].ChkUsed()) {
|
||||
dBgW_Base* bgw_p = m_chk_element[bg_index].m_bgw_base_ptr;
|
||||
|
||||
if (bgw_p->ChkMoveFlag()) {
|
||||
bgw_p->MatrixCrrPos(i_poly, m_chk_element[bg_index].m_actor_ptr, param_1, i_pos,
|
||||
i_angle, i_shapeAngle);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 80075A24-80075AA4 070364 0080+00 1/1 0/0 46/46 .text
|
||||
* dBgS_MoveBGProc_Typical__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz */
|
||||
void dBgS_MoveBGProc_Typical(dBgW* param_0, void* param_1, cBgS_PolyInfo const& param_2,
|
||||
bool param_3, cXyz* param_4, csXyz* param_5, csXyz* param_6) {
|
||||
Mtx tmp;
|
||||
if (param_0->GetOldInvMtx(tmp) != 0) {
|
||||
cXyz tmp2;
|
||||
PSMTXMultVec(tmp, param_4, &tmp2);
|
||||
void dBgS_MoveBGProc_Typical(dBgW* i_bgw, void* i_actor_ptr, cBgS_PolyInfo const& i_poly,
|
||||
bool param_3, cXyz* i_pos, csXyz* i_angle, csXyz* i_shapeAngle) {
|
||||
Mtx m;
|
||||
if (i_bgw->GetOldInvMtx(m) != NULL) {
|
||||
cXyz move_old;
|
||||
PSMTXMultVec(m, i_pos, &move_old);
|
||||
|
||||
cXyz tmp3;
|
||||
PSMTXMultVec(param_0->GetBaseMtxP(), &tmp2, &tmp3);
|
||||
param_4->x = tmp3.x;
|
||||
param_4->y = tmp3.y;
|
||||
param_4->z = tmp3.z;
|
||||
cXyz move_pos;
|
||||
PSMTXMultVec(i_bgw->GetBaseMtxP(), &move_old, &move_pos);
|
||||
i_pos->x = move_pos.x;
|
||||
i_pos->y = move_pos.y;
|
||||
i_pos->z = move_pos.z;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80075AA4-80075AD8 0703E4 0034+00 1/1 0/0 0/0 .text
|
||||
* dBgS_MoveBGProc_RotY__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz */
|
||||
static void dBgS_MoveBGProc_RotY(dBgW* param_0, void* param_1, cBgS_PolyInfo const& param_2,
|
||||
bool param_3, cXyz* param_4, csXyz* param_5, csXyz* param_6) {
|
||||
if (param_6 != NULL) {
|
||||
s16 y = param_0->GetDiffShapeAngleY();
|
||||
if (param_6 != NULL) {
|
||||
param_6->y += y;
|
||||
static void dBgS_MoveBGProc_RotY(dBgW* i_bgw, void* i_actor_ptr, cBgS_PolyInfo const& i_poly,
|
||||
bool param_3, cXyz* i_pos, csXyz* i_angle, csXyz* i_shapeAngle) {
|
||||
if (i_shapeAngle != NULL) {
|
||||
s16 y = i_bgw->GetDiffShapeAngleY();
|
||||
|
||||
if (i_shapeAngle != NULL) {
|
||||
i_shapeAngle->y += y;
|
||||
}
|
||||
if (param_5 != NULL) {
|
||||
param_5->y += y;
|
||||
|
||||
if (i_angle != NULL) {
|
||||
i_angle->y += y;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 80075AD8-80075B44 070418 006C+00 0/0 0/0 124/124 .text
|
||||
* dBgS_MoveBGProc_TypicalRotY__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz */
|
||||
void dBgS_MoveBGProc_TypicalRotY(dBgW* param_0, void* param_1, cBgS_PolyInfo const& param_2,
|
||||
bool param_3, cXyz* param_4, csXyz* param_5, csXyz* param_6) {
|
||||
dBgS_MoveBGProc_Typical(param_0, param_1, param_2, param_3, param_4, param_5, param_6);
|
||||
dBgS_MoveBGProc_RotY(param_0, param_1, param_2, param_3, param_4, param_5, param_6);
|
||||
void dBgS_MoveBGProc_TypicalRotY(dBgW* i_bgw, void* i_actor_ptr, cBgS_PolyInfo const& i_poly,
|
||||
bool param_3, cXyz* i_pos, csXyz* i_angle, csXyz* i_shapeAngle) {
|
||||
dBgS_MoveBGProc_Typical(i_bgw, i_actor_ptr, i_poly, param_3, i_pos, i_angle, i_shapeAngle);
|
||||
dBgS_MoveBGProc_RotY(i_bgw, i_actor_ptr, i_poly, param_3, i_pos, i_angle, i_shapeAngle);
|
||||
}
|
||||
|
||||
/* 80075B44-80075B84 070484 0040+00 0/0 0/0 10/10 .text
|
||||
* dBgS_MoveBGProc_Trans__FP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz */
|
||||
void dBgS_MoveBGProc_Trans(dBgW* param_0, void* param_1, cBgS_PolyInfo const& param_2, bool param_3,
|
||||
cXyz* param_4, csXyz* param_5, csXyz* param_6) {
|
||||
cXyz xyz;
|
||||
param_0->GetTrans(&xyz);
|
||||
void dBgS_MoveBGProc_Trans(dBgW* i_bgw, void* i_actor_ptr, cBgS_PolyInfo const& i_poly,
|
||||
bool param_3, cXyz* i_pos, csXyz* i_angle, csXyz* i_shapeAngle) {
|
||||
cXyz trans;
|
||||
i_bgw->GetTrans(&trans);
|
||||
|
||||
PSVECAdd(param_4, &xyz, param_4);
|
||||
PSVECAdd(i_pos, &trans, i_pos);
|
||||
}
|
||||
|
||||
/* 80075B84-80075BF4 0704C4 0070+00 0/0 1/1 2/2 .text
|
||||
@@ -867,7 +876,8 @@ bool dBgS::PushPullCallBack(cBgS_PolyInfo const& param_0, fopAc_ac_c* param_1, s
|
||||
return false;
|
||||
}
|
||||
|
||||
return base->GetPushPullCallback()(m_chk_element[bg_index].m_actor_ptr, param_1, param_2, param_3);
|
||||
return base->GetPushPullCallback()(m_chk_element[bg_index].m_actor_ptr, param_1, param_2,
|
||||
param_3);
|
||||
}
|
||||
|
||||
/* 80075D0C-80075D7C 07064C 0070+00 0/0 8/8 1/1 .text dBgS_CheckBWallPoly__FRC13cBgS_PolyInfo */
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// Generated By: dol2asm
|
||||
// Translation Unit: d/bg/d_bg_s_movebg_actor
|
||||
//
|
||||
/**
|
||||
* d_bg_s_movebg_actor.cpp
|
||||
* Non-static BG actor base
|
||||
*/
|
||||
|
||||
#include "d/bg/d_bg_s_movebg_actor.h"
|
||||
#include "d/bg/d_bg_w.h"
|
||||
@@ -9,21 +9,9 @@
|
||||
#include "f_op/f_op_actor_mng.h"
|
||||
#include "m_Do/m_Do_mtx.h"
|
||||
|
||||
//
|
||||
// Forward References:
|
||||
//
|
||||
|
||||
//
|
||||
// External References:
|
||||
//
|
||||
|
||||
//
|
||||
// Declarations:
|
||||
//
|
||||
|
||||
/* 80078624-80078668 072F64 0044+00 0/0 0/0 173/173 .text __ct__16dBgS_MoveBgActorFv */
|
||||
dBgS_MoveBgActor::dBgS_MoveBgActor() {
|
||||
field_0x568 = NULL;
|
||||
mpBgW = NULL;
|
||||
}
|
||||
|
||||
/* 80078668-80078688 072FA8 0020+00 1/1 0/0 0/0 .text CheckCreateHeap__FP10fopAc_ac_c */
|
||||
@@ -88,85 +76,86 @@ int dBgS_MoveBgActor::MoveBGCreateHeap() {
|
||||
}
|
||||
|
||||
if (m_dzb_id == -1) {
|
||||
field_0x568 = NULL;
|
||||
return 1;
|
||||
} else {
|
||||
field_0x568 = new dBgW();
|
||||
if (field_0x568 != NULL) {
|
||||
cBgD_t* res = (cBgD_t*)dComIfG_getObjectRes(m_name, m_dzb_id);
|
||||
if (!field_0x568->Set(res, 1, &field_0x56c)) {
|
||||
if (m_set_func != NULL) {
|
||||
field_0x568->SetCrrFunc(m_set_func);
|
||||
}
|
||||
} else {
|
||||
goto RET; // probably fake match, clean up later
|
||||
}
|
||||
} else {
|
||||
RET:
|
||||
field_0x568 = NULL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
mpBgW = NULL;
|
||||
return 1;
|
||||
}
|
||||
|
||||
mpBgW = new dBgW();
|
||||
if (mpBgW != NULL) {
|
||||
cBgD_t* res = (cBgD_t*)dComIfG_getObjectRes(m_name, m_dzb_id);
|
||||
if (!mpBgW->Set(res, cBgW::MOVE_BG_e, &mBgMtx)) {
|
||||
if (m_set_func != NULL) {
|
||||
mpBgW->SetCrrFunc(m_set_func);
|
||||
}
|
||||
} else {
|
||||
goto RET; // probably fake match, clean up later
|
||||
}
|
||||
} else {
|
||||
RET:
|
||||
mpBgW = NULL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* 800787BC-800788DC 0730FC 0120+00 0/0 0/0 169/169 .text
|
||||
* MoveBGCreate__16dBgS_MoveBgActorFPCciPFP4dBgWPvRC13cBgS_PolyInfobP4cXyzP5csXyzP5csXyz_vUlPA3_A4_f
|
||||
*/
|
||||
// close
|
||||
int dBgS_MoveBgActor::MoveBGCreate(char const* p_name, int dzb_id, MoveBGActor_SetFunc set_func,
|
||||
u32 param_3, Mtx* param_4) {
|
||||
if (param_4 == NULL) {
|
||||
int dBgS_MoveBgActor::MoveBGCreate(char const* i_arcName, int i_dzb_id,
|
||||
MoveBGActor_SetFunc i_setFunc, u32 i_heapSize, Mtx* i_bgMtx) {
|
||||
if (i_bgMtx == NULL) {
|
||||
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
mDoMtx_stack_c::scaleM(mScale.x, mScale.y, mScale.z);
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), field_0x56c);
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), mBgMtx);
|
||||
} else {
|
||||
PSMTXCopy(*param_4, field_0x56c);
|
||||
PSMTXCopy(*i_bgMtx, mBgMtx);
|
||||
}
|
||||
|
||||
m_name = p_name;
|
||||
m_dzb_id = dzb_id;
|
||||
m_set_func = set_func;
|
||||
m_name = i_arcName;
|
||||
m_dzb_id = i_dzb_id;
|
||||
m_set_func = i_setFunc;
|
||||
|
||||
if (!fopAcM_entrySolidHeap(this, CheckCreateHeap, param_3)) {
|
||||
return 5;
|
||||
} else {
|
||||
if (field_0x568 != NULL && dComIfG_Bgsp().Regist(field_0x568, this)) {
|
||||
return 5;
|
||||
} else {
|
||||
return Create() ? 4 : 5;
|
||||
}
|
||||
if (!fopAcM_entrySolidHeap(this, CheckCreateHeap, i_heapSize)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
if (mpBgW != NULL && dComIfG_Bgsp().Regist(mpBgW, this)) {
|
||||
return cPhs_ERROR_e;
|
||||
}
|
||||
|
||||
// return Create() ? cPhs_COMPLEATE_e : cPhs_ERROR_e; // using enums here changes code gen
|
||||
return Create() ? 4 : 5;
|
||||
}
|
||||
|
||||
/* 800788DC-80078950 07321C 0074+00 0/0 0/0 169/169 .text MoveBGDelete__16dBgS_MoveBgActorFv */
|
||||
int dBgS_MoveBgActor::MoveBGDelete() {
|
||||
int ret = Delete();
|
||||
|
||||
if (field_0x568 != NULL && field_0x568->ChkUsed()) {
|
||||
dComIfG_Bgsp().Release(field_0x568);
|
||||
if (mpBgW != NULL && mpBgW->ChkUsed()) {
|
||||
dComIfG_Bgsp().Release(mpBgW);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 80078950-80078A14 073290 00C4+00 0/0 0/0 183/183 .text MoveBGExecute__16dBgS_MoveBgActorFv */
|
||||
int dBgS_MoveBgActor::MoveBGExecute() {
|
||||
Mtx* tmp = NULL;
|
||||
Mtx* new_mtx = NULL;
|
||||
|
||||
int ret = Execute(&tmp);
|
||||
if (tmp == NULL) {
|
||||
int ret = Execute(&new_mtx);
|
||||
if (new_mtx == NULL) {
|
||||
mDoMtx_stack_c::transS(current.pos.x, current.pos.y, current.pos.z);
|
||||
mDoMtx_stack_c::YrotM(shape_angle.y);
|
||||
mDoMtx_stack_c::scaleM(mScale.x, mScale.y, mScale.z);
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), field_0x56c);
|
||||
PSMTXCopy(mDoMtx_stack_c::get(), mBgMtx);
|
||||
} else {
|
||||
PSMTXCopy(*tmp, field_0x56c);
|
||||
PSMTXCopy(*new_mtx, mBgMtx);
|
||||
}
|
||||
|
||||
if (field_0x568 != NULL) {
|
||||
field_0x568->Move();
|
||||
if (mpBgW != NULL) {
|
||||
mpBgW->Move();
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
+418
-407
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user