Work on d_a_myna (#1974)

This commit is contained in:
Jacob Patzer 2023-11-02 20:05:51 -07:00 committed by GitHub
parent fadcd7bcdf
commit b344f3b796
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 416 additions and 583 deletions

View File

@ -21,8 +21,8 @@ Total | 41.463716% | 1667120 | 4020672
Section | Percentage | Decompiled (bytes) | Total (bytes)
---|---|---|---
main.dol | 41.463716% | 1667120 | 4020672
RELs | 34.646328% | 3984440 | 11500324
Total | 36.412354% | 5651560 | 15520996
RELs | 34.707231% | 3991444 | 11500324
Total | 36.457480% | 5658564 | 15520996
## RELs
@ -77,7 +77,7 @@ d_a_do | 37.666220% | 14616 | 38804
d_a_door_boss | 40.856890% | 3700 | 9056
d_a_door_bossL1 | 39.355114% | 7372 | 18732
d_a_door_bossL5 | 39.221790% | 4032 | 10280
d_a_door_dbdoor00 | 40.734908% | 3104 | 7620
d_a_door_dbdoor00 | 100.000000% | 7620 | 7620
d_a_door_knob00 | 37.500000% | 4608 | 12288
d_a_door_mbossL1 | 34.467633% | 10372 | 30092
d_a_door_push | 100.000000% | 7032 | 7032
@ -216,7 +216,7 @@ d_a_mg_rod | 24.484345% | 23836 | 97352
d_a_midna | 22.953368% | 12404 | 54040
d_a_mirror | 48.001631% | 4708 | 9808
d_a_movie_player | 23.696790% | 8328 | 35144
d_a_myna | 31.637701% | 9976 | 31532
d_a_myna | 36.077635% | 11376 | 31532
d_a_nbomb | 28.739233% | 8808 | 30648
d_a_ni | 27.299309% | 8216 | 30096
d_a_npc_aru | 34.812103% | 12932 | 37148
@ -350,7 +350,7 @@ d_a_obj_avalanche | 41.881443% | 2600 | 6208
d_a_obj_balloon | 42.722710% | 2724 | 6376
d_a_obj_barDesk | 49.477072% | 2460 | 4972
d_a_obj_batta | 31.886560% | 5172 | 16220
d_a_obj_bbox | 48.606466% | 1744 | 3588
d_a_obj_bbox | 78.929766% | 2832 | 3588
d_a_obj_bed | 42.310889% | 2036 | 4812
d_a_obj_bemos | 32.943081% | 10580 | 32116
d_a_obj_bhashi | 31.443815% | 3772 | 11996
@ -785,4 +785,4 @@ d_a_vrbox2 | 44.907111% | 2804 | 6244
d_a_warp_bug | 100.000000% | 2024 | 2024
d_a_ykgr | 44.400631% | 2252 | 5072
f_pc_profile_lst | 100.000000% | 28156 | 28156
Total | 34.646328% | 3984440 | 11500324
Total | 34.707231% | 3991444 | 11500324

View File

@ -1,9 +0,0 @@
lbl_80945C6C:
/* 80945C6C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80945C70 7C 08 02 A6 */ mflr r0
/* 80945C74 90 01 00 14 */ stw r0, 0x14(r1)
/* 80945C78 48 00 0A 61 */ bl createHeap__8daMyna_cFv
/* 80945C7C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80945C80 7C 08 03 A6 */ mtlr r0
/* 80945C84 38 21 00 10 */ addi r1, r1, 0x10
/* 80945C88 4E 80 00 20 */ blr

View File

@ -1,30 +0,0 @@
lbl_80945D9C:
/* 80945D9C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80945DA0 7C 08 02 A6 */ mflr r0
/* 80945DA4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80945DA8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80945DAC 93 C1 00 08 */ stw r30, 8(r1)
/* 80945DB0 7C 7E 1B 78 */ mr r30, r3
/* 80945DB4 7C 9F 23 78 */ mr r31, r4
/* 80945DB8 4B 6D 2F 29 */ bl fopAc_IsActor__FPv
/* 80945DBC 2C 03 00 00 */ cmpwi r3, 0
/* 80945DC0 41 82 00 30 */ beq lbl_80945DF0
/* 80945DC4 A8 1E 00 08 */ lha r0, 8(r30)
/* 80945DC8 2C 00 01 25 */ cmpwi r0, 0x125
/* 80945DCC 40 82 00 24 */ bne lbl_80945DF0
/* 80945DD0 80 1F 00 B0 */ lwz r0, 0xb0(r31)
/* 80945DD4 54 03 00 06 */ rlwinm r3, r0, 0, 0, 3
/* 80945DD8 80 1E 00 B0 */ lwz r0, 0xb0(r30)
/* 80945DDC 54 00 00 06 */ rlwinm r0, r0, 0, 0, 3
/* 80945DE0 7C 03 00 40 */ cmplw r3, r0
/* 80945DE4 40 82 00 0C */ bne lbl_80945DF0
/* 80945DE8 3C 60 80 95 */ lis r3, daMyna_LightActor@ha /* 0x8094BAC0@ha */
/* 80945DEC 93 C3 BA C0 */ stw r30, daMyna_LightActor@l(r3) /* 0x8094BAC0@l */
lbl_80945DF0:
/* 80945DF0 38 60 00 00 */ li r3, 0
/* 80945DF4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80945DF8 83 C1 00 08 */ lwz r30, 8(r1)
/* 80945DFC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80945E00 7C 08 03 A6 */ mtlr r0
/* 80945E04 38 21 00 10 */ addi r1, r1, 0x10
/* 80945E08 4E 80 00 20 */ blr

View File

@ -1,8 +0,0 @@
lbl_80949128:
/* 80949128 38 00 FF FF */ li r0, -1
/* 8094912C 54 84 20 36 */ slwi r4, r4, 4
/* 80949130 7C 63 22 14 */ add r3, r3, r4
/* 80949134 90 03 08 68 */ stw r0, 0x868(r3)
/* 80949138 38 00 00 04 */ li r0, 4
/* 8094913C 98 03 08 75 */ stb r0, 0x875(r3)
/* 80949140 4E 80 00 20 */ blr

View File

@ -1,51 +0,0 @@
lbl_8094640C:
/* 8094640C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80946410 7C 08 02 A6 */ mflr r0
/* 80946414 90 01 00 24 */ stw r0, 0x24(r1)
/* 80946418 39 61 00 20 */ addi r11, r1, 0x20
/* 8094641C 4B A1 BD C1 */ bl _savegpr_29
/* 80946420 7C 7D 1B 78 */ mr r29, r3
/* 80946424 80 63 05 74 */ lwz r3, 0x574(r3)
/* 80946428 83 E3 00 04 */ lwz r31, 4(r3)
/* 8094642C 83 DF 00 04 */ lwz r30, 4(r31)
/* 80946430 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */
/* 80946434 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */
/* 80946438 38 80 00 00 */ li r4, 0
/* 8094643C 38 BD 04 D0 */ addi r5, r29, 0x4d0
/* 80946440 38 DD 01 0C */ addi r6, r29, 0x10c
/* 80946444 4B 85 D3 81 */ bl settingTevStruct__18dScnKy_env_light_cFiP4cXyzP12dKy_tevstr_c
/* 80946448 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */
/* 8094644C 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */
/* 80946450 80 9F 00 04 */ lwz r4, 4(r31)
/* 80946454 38 BD 01 0C */ addi r5, r29, 0x10c
/* 80946458 4B 85 E9 49 */ bl setLightTevColorType_MAJI__18dScnKy_env_light_cFP12J3DModelDataP12dKy_tevstr_c
/* 8094645C A0 1D 09 14 */ lhz r0, 0x914(r29)
/* 80946460 54 00 06 73 */ rlwinm. r0, r0, 0, 0x19, 0x19
/* 80946464 41 82 00 20 */ beq lbl_80946484
/* 80946468 38 7D 05 78 */ addi r3, r29, 0x578
/* 8094646C 38 9E 00 58 */ addi r4, r30, 0x58
/* 80946470 C0 1D 05 88 */ lfs f0, 0x588(r29)
/* 80946474 FC 00 00 1E */ fctiwz f0, f0
/* 80946478 D8 01 00 08 */ stfd f0, 8(r1)
/* 8094647C 80 A1 00 0C */ lwz r5, 0xc(r1)
/* 80946480 4B 6C 71 69 */ bl entry__13mDoExt_btpAnmFP16J3DMaterialTables
lbl_80946484:
/* 80946484 7F A3 EB 78 */ mr r3, r29
/* 80946488 7F C4 F3 78 */ mr r4, r30
/* 8094648C 4B 6D 6F A1 */ bl fopAcM_setEffectMtx__FPC10fopAc_ac_cPC12J3DModelData
/* 80946490 80 7D 05 74 */ lwz r3, 0x574(r29)
/* 80946494 4B 6C AD 2D */ bl entryDL__16mDoExt_McaMorfSOFv
/* 80946498 A0 1D 09 14 */ lhz r0, 0x914(r29)
/* 8094649C 54 00 06 73 */ rlwinm. r0, r0, 0, 0x19, 0x19
/* 809464A0 41 82 00 10 */ beq lbl_809464B0
/* 809464A4 38 7E 00 58 */ addi r3, r30, 0x58
/* 809464A8 80 9D 05 8C */ lwz r4, 0x58c(r29)
/* 809464AC 4B 9E 92 4D */ bl removeTexNoAnimator__16J3DMaterialTableFP16J3DAnmTexPattern
lbl_809464B0:
/* 809464B0 38 60 00 01 */ li r3, 1
/* 809464B4 39 61 00 20 */ addi r11, r1, 0x20
/* 809464B8 4B A1 BD 71 */ bl _restgpr_29
/* 809464BC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 809464C0 7C 08 03 A6 */ mtlr r0
/* 809464C4 38 21 00 20 */ addi r1, r1, 0x20
/* 809464C8 4E 80 00 20 */ blr

View File

@ -1,18 +0,0 @@
lbl_80949C0C:
/* 80949C0C A8 03 04 B4 */ lha r0, 0x4b4(r3)
/* 80949C10 54 03 04 3E */ clrlwi r3, r0, 0x10
/* 80949C14 38 00 00 00 */ li r0, 0
/* 80949C18 28 03 FF FF */ cmplwi r3, 0xffff
/* 80949C1C 41 82 00 0C */ beq lbl_80949C28
/* 80949C20 28 03 00 00 */ cmplwi r3, 0
/* 80949C24 40 82 00 08 */ bne lbl_80949C2C
lbl_80949C28:
/* 80949C28 38 00 00 01 */ li r0, 1
lbl_80949C2C:
/* 80949C2C 54 00 06 3F */ clrlwi. r0, r0, 0x18
/* 80949C30 38 00 FF FF */ li r0, -1
/* 80949C34 40 82 00 08 */ bne lbl_80949C3C
/* 80949C38 7C 60 1B 78 */ mr r0, r3
lbl_80949C3C:
/* 80949C3C 54 03 04 3E */ clrlwi r3, r0, 0x10
/* 80949C40 4E 80 00 20 */ blr

View File

@ -1,4 +0,0 @@
lbl_80949AD4:
/* 80949AD4 80 03 00 B0 */ lwz r0, 0xb0(r3)
/* 80949AD8 54 03 47 3E */ rlwinm r3, r0, 8, 0x1c, 0x1f
/* 80949ADC 4E 80 00 20 */ blr

View File

@ -1,96 +0,0 @@
lbl_80949AE0:
/* 80949AE0 38 60 00 0F */ li r3, 0xf
/* 80949AE4 80 04 00 B0 */ lwz r0, 0xb0(r4)
/* 80949AE8 54 00 06 3E */ clrlwi r0, r0, 0x18
/* 80949AEC A8 84 00 08 */ lha r4, 8(r4)
/* 80949AF0 2C 04 01 21 */ cmpwi r4, 0x121
/* 80949AF4 40 82 00 40 */ bne lbl_80949B34
/* 80949AF8 2C 00 00 01 */ cmpwi r0, 1
/* 80949AFC 41 82 00 28 */ beq lbl_80949B24
/* 80949B00 40 80 00 10 */ bge lbl_80949B10
/* 80949B04 2C 00 00 00 */ cmpwi r0, 0
/* 80949B08 40 80 00 14 */ bge lbl_80949B1C
/* 80949B0C 4E 80 00 20 */ blr
lbl_80949B10:
/* 80949B10 2C 00 00 03 */ cmpwi r0, 3
/* 80949B14 4C 80 00 20 */ bgelr
/* 80949B18 48 00 00 14 */ b lbl_80949B2C
lbl_80949B1C:
/* 80949B1C 38 60 00 01 */ li r3, 1
/* 80949B20 4E 80 00 20 */ blr
lbl_80949B24:
/* 80949B24 38 60 00 02 */ li r3, 2
/* 80949B28 4E 80 00 20 */ blr
lbl_80949B2C:
/* 80949B2C 38 60 00 00 */ li r3, 0
/* 80949B30 4E 80 00 20 */ blr
lbl_80949B34:
/* 80949B34 2C 04 01 20 */ cmpwi r4, 0x120
/* 80949B38 40 82 00 68 */ bne lbl_80949BA0
/* 80949B3C 2C 00 00 03 */ cmpwi r0, 3
/* 80949B40 41 82 00 48 */ beq lbl_80949B88
/* 80949B44 40 80 00 1C */ bge lbl_80949B60
/* 80949B48 2C 00 00 01 */ cmpwi r0, 1
/* 80949B4C 41 82 00 2C */ beq lbl_80949B78
/* 80949B50 40 80 00 30 */ bge lbl_80949B80
/* 80949B54 2C 00 00 00 */ cmpwi r0, 0
/* 80949B58 40 80 00 18 */ bge lbl_80949B70
/* 80949B5C 4E 80 00 20 */ blr
lbl_80949B60:
/* 80949B60 2C 00 00 05 */ cmpwi r0, 5
/* 80949B64 41 82 00 34 */ beq lbl_80949B98
/* 80949B68 4C 80 00 20 */ bgelr
/* 80949B6C 48 00 00 24 */ b lbl_80949B90
lbl_80949B70:
/* 80949B70 38 60 00 03 */ li r3, 3
/* 80949B74 4E 80 00 20 */ blr
lbl_80949B78:
/* 80949B78 38 60 00 04 */ li r3, 4
/* 80949B7C 4E 80 00 20 */ blr
lbl_80949B80:
/* 80949B80 38 60 00 05 */ li r3, 5
/* 80949B84 4E 80 00 20 */ blr
lbl_80949B88:
/* 80949B88 38 60 00 06 */ li r3, 6
/* 80949B8C 4E 80 00 20 */ blr
lbl_80949B90:
/* 80949B90 38 60 00 07 */ li r3, 7
/* 80949B94 4E 80 00 20 */ blr
lbl_80949B98:
/* 80949B98 38 60 00 08 */ li r3, 8
/* 80949B9C 4E 80 00 20 */ blr
lbl_80949BA0:
/* 80949BA0 2C 04 01 22 */ cmpwi r4, 0x122
/* 80949BA4 4C 82 00 20 */ bnelr
/* 80949BA8 2C 00 00 03 */ cmpwi r0, 3
/* 80949BAC 41 82 00 48 */ beq lbl_80949BF4
/* 80949BB0 40 80 00 1C */ bge lbl_80949BCC
/* 80949BB4 2C 00 00 01 */ cmpwi r0, 1
/* 80949BB8 41 82 00 2C */ beq lbl_80949BE4
/* 80949BBC 40 80 00 30 */ bge lbl_80949BEC
/* 80949BC0 2C 00 00 00 */ cmpwi r0, 0
/* 80949BC4 40 80 00 18 */ bge lbl_80949BDC
/* 80949BC8 4E 80 00 20 */ blr
lbl_80949BCC:
/* 80949BCC 2C 00 00 05 */ cmpwi r0, 5
/* 80949BD0 41 82 00 34 */ beq lbl_80949C04
/* 80949BD4 4C 80 00 20 */ bgelr
/* 80949BD8 48 00 00 24 */ b lbl_80949BFC
lbl_80949BDC:
/* 80949BDC 38 60 00 09 */ li r3, 9
/* 80949BE0 4E 80 00 20 */ blr
lbl_80949BE4:
/* 80949BE4 38 60 00 0A */ li r3, 0xa
/* 80949BE8 4E 80 00 20 */ blr
lbl_80949BEC:
/* 80949BEC 38 60 00 0B */ li r3, 0xb
/* 80949BF0 4E 80 00 20 */ blr
lbl_80949BF4:
/* 80949BF4 38 60 00 0C */ li r3, 0xc
/* 80949BF8 4E 80 00 20 */ blr
lbl_80949BFC:
/* 80949BFC 38 60 00 0D */ li r3, 0xd
/* 80949C00 4E 80 00 20 */ blr
lbl_80949C04:
/* 80949C04 38 60 00 0E */ li r3, 0xe
/* 80949C08 4E 80 00 20 */ blr

View File

@ -1,23 +0,0 @@
lbl_80949948:
/* 80949948 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8094994C 7C 08 02 A6 */ mflr r0
/* 80949950 90 01 00 14 */ stw r0, 0x14(r1)
/* 80949954 28 04 00 00 */ cmplwi r4, 0
/* 80949958 41 82 00 2C */ beq lbl_80949984
/* 8094995C 3C 60 80 95 */ lis r3, d_a_myna__stringBase0@ha /* 0x8094B24C@ha */
/* 80949960 38 63 B2 4C */ addi r3, r3, d_a_myna__stringBase0@l /* 0x8094B24C@l */
/* 80949964 38 63 01 00 */ addi r3, r3, 0x100
/* 80949968 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8094996C 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 80949970 3C A5 00 02 */ addis r5, r5, 2
/* 80949974 38 C0 00 80 */ li r6, 0x80
/* 80949978 38 A5 C2 F8 */ addi r5, r5, -15624
/* 8094997C 4B 6F 2A 01 */ bl getRes__14dRes_control_cFPCcPCcP11dRes_info_ci
/* 80949980 48 00 00 08 */ b lbl_80949988
lbl_80949984:
/* 80949984 38 60 00 00 */ li r3, 0
lbl_80949988:
/* 80949988 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8094998C 7C 08 03 A6 */ mtlr r0
/* 80949990 38 21 00 10 */ addi r1, r1, 0x10
/* 80949994 4E 80 00 20 */ blr

View File

@ -1,23 +0,0 @@
lbl_809498F8:
/* 809498F8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 809498FC 7C 08 02 A6 */ mflr r0
/* 80949900 90 01 00 14 */ stw r0, 0x14(r1)
/* 80949904 28 04 00 00 */ cmplwi r4, 0
/* 80949908 41 82 00 2C */ beq lbl_80949934
/* 8094990C 3C 60 80 95 */ lis r3, d_a_myna__stringBase0@ha /* 0x8094B24C@ha */
/* 80949910 38 63 B2 4C */ addi r3, r3, d_a_myna__stringBase0@l /* 0x8094B24C@l */
/* 80949914 38 63 01 00 */ addi r3, r3, 0x100
/* 80949918 3C A0 80 40 */ lis r5, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8094991C 38 A5 61 C0 */ addi r5, r5, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 80949920 3C A5 00 02 */ addis r5, r5, 2
/* 80949924 38 C0 00 80 */ li r6, 0x80
/* 80949928 38 A5 C2 F8 */ addi r5, r5, -15624
/* 8094992C 4B 6F 2A 51 */ bl getRes__14dRes_control_cFPCcPCcP11dRes_info_ci
/* 80949930 48 00 00 08 */ b lbl_80949938
lbl_80949934:
/* 80949934 38 60 00 00 */ li r3, 0
lbl_80949938:
/* 80949938 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8094993C 7C 08 03 A6 */ mtlr r0
/* 80949940 38 21 00 10 */ addi r1, r1, 0x10
/* 80949944 4E 80 00 20 */ blr

View File

@ -1,33 +0,0 @@
lbl_8094686C:
/* 8094686C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80946870 7C 08 02 A6 */ mflr r0
/* 80946874 90 01 00 14 */ stw r0, 0x14(r1)
/* 80946878 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8094687C 93 C1 00 08 */ stw r30, 8(r1)
/* 80946880 7C BE 2B 78 */ mr r30, r5
/* 80946884 A0 84 00 14 */ lhz r4, 0x14(r4)
/* 80946888 80 65 00 84 */ lwz r3, 0x84(r5)
/* 8094688C 80 03 00 0C */ lwz r0, 0xc(r3)
/* 80946890 1F E4 00 30 */ mulli r31, r4, 0x30
/* 80946894 7C 60 FA 14 */ add r3, r0, r31
/* 80946898 3C 80 80 3E */ lis r4, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
/* 8094689C 38 84 D4 70 */ addi r4, r4, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
/* 809468A0 4B 9F FC 11 */ bl PSMTXCopy
/* 809468A4 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
/* 809468A8 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
/* 809468AC 80 9E 00 84 */ lwz r4, 0x84(r30)
/* 809468B0 80 04 00 0C */ lwz r0, 0xc(r4)
/* 809468B4 7C 80 FA 14 */ add r4, r0, r31
/* 809468B8 4B 9F FB F9 */ bl PSMTXCopy
/* 809468BC 3C 60 80 3E */ lis r3, now__14mDoMtx_stack_c@ha /* 0x803DD470@ha */
/* 809468C0 38 63 D4 70 */ addi r3, r3, now__14mDoMtx_stack_c@l /* 0x803DD470@l */
/* 809468C4 3C 80 80 43 */ lis r4, mCurrentMtx__6J3DSys@ha /* 0x80434BE4@ha */
/* 809468C8 38 84 4B E4 */ addi r4, r4, mCurrentMtx__6J3DSys@l /* 0x80434BE4@l */
/* 809468CC 4B 9F FB E5 */ bl PSMTXCopy
/* 809468D0 38 60 00 01 */ li r3, 1
/* 809468D4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 809468D8 83 C1 00 08 */ lwz r30, 8(r1)
/* 809468DC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 809468E0 7C 08 03 A6 */ mtlr r0
/* 809468E4 38 21 00 10 */ addi r1, r1, 0x10
/* 809468E8 4E 80 00 20 */ blr

View File

@ -1,21 +0,0 @@
lbl_80945C8C:
/* 80945C8C 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80945C90 7C 08 02 A6 */ mflr r0
/* 80945C94 90 01 00 14 */ stw r0, 0x14(r1)
/* 80945C98 7C 60 1B 78 */ mr r0, r3
/* 80945C9C 2C 04 00 00 */ cmpwi r4, 0
/* 80945CA0 40 82 00 24 */ bne lbl_80945CC4
/* 80945CA4 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
/* 80945CA8 38 63 4A C8 */ addi r3, r3, j3dSys@l /* 0x80434AC8@l */
/* 80945CAC 80 A3 00 38 */ lwz r5, 0x38(r3)
/* 80945CB0 80 65 00 14 */ lwz r3, 0x14(r5)
/* 80945CB4 28 03 00 00 */ cmplwi r3, 0
/* 80945CB8 41 82 00 0C */ beq lbl_80945CC4
/* 80945CBC 7C 04 03 78 */ mr r4, r0
/* 80945CC0 48 00 0B AD */ bl jntNodeCB__8daMyna_cFP8J3DJointP8J3DModel
lbl_80945CC4:
/* 80945CC4 38 60 00 01 */ li r3, 1
/* 80945CC8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80945CCC 7C 08 03 A6 */ mtlr r0
/* 80945CD0 38 21 00 10 */ addi r1, r1, 0x10
/* 80945CD4 4E 80 00 20 */ blr

View File

@ -1,32 +0,0 @@
lbl_809490B8:
/* 809490B8 3C 80 80 40 */ lis r4, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 809490BC 38 84 61 C0 */ addi r4, r4, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 809490C0 80 84 5D B4 */ lwz r4, 0x5db4(r4)
/* 809490C4 80 04 05 74 */ lwz r0, 0x574(r4)
/* 809490C8 54 00 01 8D */ rlwinm. r0, r0, 0, 6, 6
/* 809490CC 41 82 00 54 */ beq lbl_80949120
/* 809490D0 88 03 09 2C */ lbz r0, 0x92c(r3)
/* 809490D4 28 00 00 0F */ cmplwi r0, 0xf
/* 809490D8 41 81 00 24 */ bgt lbl_809490FC
/* 809490DC 3C 80 80 95 */ lis r4, lit_5409@ha /* 0x8094B8B8@ha */
/* 809490E0 38 84 B8 B8 */ addi r4, r4, lit_5409@l /* 0x8094B8B8@l */
/* 809490E4 54 00 10 3A */ slwi r0, r0, 2
/* 809490E8 7C 04 00 2E */ lwzx r0, r4, r0
/* 809490EC 7C 09 03 A6 */ mtctr r0
/* 809490F0 4E 80 04 20 */ bctr
lbl_809490F4:
/* 809490F4 38 00 00 0A */ li r0, 0xa
/* 809490F8 90 03 05 5C */ stw r0, 0x55c(r3)
lbl_809490FC:
/* 809490FC 80 03 05 5C */ lwz r0, 0x55c(r3)
/* 80949100 28 00 00 0A */ cmplwi r0, 0xa
/* 80949104 40 82 00 1C */ bne lbl_80949120
/* 80949108 38 00 00 8B */ li r0, 0x8b
/* 8094910C 98 03 05 45 */ stb r0, 0x545(r3)
/* 80949110 98 03 05 47 */ stb r0, 0x547(r3)
/* 80949114 A0 03 00 FA */ lhz r0, 0xfa(r3)
/* 80949118 60 00 00 01 */ ori r0, r0, 1
/* 8094911C B0 03 00 FA */ sth r0, 0xfa(r3)
lbl_80949120:
/* 80949120 38 60 00 01 */ li r3, 1
/* 80949124 4E 80 00 20 */ blr

View File

@ -1,17 +0,0 @@
lbl_809498B8:
/* 809498B8 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 809498BC 7C 08 02 A6 */ mflr r0
/* 809498C0 90 01 00 14 */ stw r0, 0x14(r1)
/* 809498C4 7C 80 23 78 */ mr r0, r4
/* 809498C8 7C C7 33 78 */ mr r7, r6
/* 809498CC 38 85 00 58 */ addi r4, r5, 0x58
/* 809498D0 7C 05 03 78 */ mr r5, r0
/* 809498D4 38 C0 00 01 */ li r6, 1
/* 809498D8 39 00 00 00 */ li r8, 0
/* 809498DC 39 20 FF FF */ li r9, -1
/* 809498E0 38 63 05 78 */ addi r3, r3, 0x578
/* 809498E4 4B 6C 3C 69 */ bl init__13mDoExt_btpAnmFP16J3DMaterialTableP16J3DAnmTexPatterniifss
/* 809498E8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 809498EC 7C 08 03 A6 */ mtlr r0
/* 809498F0 38 21 00 10 */ addi r1, r1, 0x10
/* 809498F4 4E 80 00 20 */ blr

View File

@ -1,18 +0,0 @@
lbl_80949544:
/* 80949544 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80949548 7C 08 02 A6 */ mflr r0
/* 8094954C 90 01 00 14 */ stw r0, 0x14(r1)
/* 80949550 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80949554 7C 7F 1B 78 */ mr r31, r3
/* 80949558 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */
/* 8094955C 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */
/* 80949560 38 63 0F 38 */ addi r3, r3, 0xf38
/* 80949564 38 9F 06 80 */ addi r4, r31, 0x680
/* 80949568 4B 72 BB 99 */ bl GetRoomId__4dBgSFRC13cBgS_PolyInfo
/* 8094956C 98 7F 04 E2 */ stb r3, 0x4e2(r31)
/* 80949570 98 7F 06 CA */ stb r3, 0x6ca(r31)
/* 80949574 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80949578 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8094957C 7C 08 03 A6 */ mtlr r0
/* 80949580 38 21 00 10 */ addi r1, r1, 0x10
/* 80949584 4E 80 00 20 */ blr

View File

@ -1,19 +0,0 @@
lbl_809487EC:
/* 809487EC 39 00 00 00 */ li r8, 0
/* 809487F0 38 A0 00 00 */ li r5, 0
/* 809487F4 38 C0 00 03 */ li r6, 3
/* 809487F8 48 00 00 20 */ b lbl_80948818
lbl_809487FC:
/* 809487FC 7C E3 2A 14 */ add r7, r3, r5
/* 80948800 80 07 08 68 */ lwz r0, 0x868(r7)
/* 80948804 7C 04 00 40 */ cmplw r4, r0
/* 80948808 40 82 00 08 */ bne lbl_80948810
/* 8094880C 98 C7 08 75 */ stb r6, 0x875(r7)
lbl_80948810:
/* 80948810 39 08 00 01 */ addi r8, r8, 1
/* 80948814 38 A5 00 10 */ addi r5, r5, 0x10
lbl_80948818:
/* 80948818 88 03 09 30 */ lbz r0, 0x930(r3)
/* 8094881C 7C 08 00 00 */ cmpw r8, r0
/* 80948820 41 80 FF DC */ blt lbl_809487FC
/* 80948824 4E 80 00 20 */ blr

View File

@ -17,7 +17,7 @@ struct ShopItem {
/* 0x8 */ u16 mFlowNodeNum;
/* 0xA */ u16 mValueNum;
/* 0xC */ u8 mItemType;
/* 0xE */ u8 mItemStatus;
/* 0xD */ u8 mItemStatus;
};
STATIC_ASSERT(sizeof(ShopItem) == 0x10);
@ -34,8 +34,8 @@ public:
/* 809463B8 */ int destroy();
/* 8094640C */ int draw();
/* 809464CC */ int execute();
/* 809466D8 */ void createHeap();
/* 8094686C */ void jntNodeCB(J3DJoint*, J3DModel*);
/* 809466D8 */ int createHeap();
/* 8094686C */ int jntNodeCB(J3DJoint*, J3DModel*);
/* 809468EC */ void attack_wait_init();
/* 8094692C */ void attack_wait_move();
/* 80946AEC */ void attack_before_talk_init();
@ -85,8 +85,8 @@ public:
/* 80948ADC */ void fly_return_move();
/* 80948DFC */ void fly_body_wave();
/* 80948E84 */ void talkAnime(msg_class*);
/* 80948FAC */ void chkEvent();
/* 809490B8 */ void orderEvent();
/* 80948FAC */ int chkEvent();
/* 809490B8 */ int orderEvent();
/* 80949128 */ void deleteItem(int);
/* 80949144 */ void deleteItem(unsigned int);
/* 80949190 */ void initiate();
@ -95,17 +95,17 @@ public:
/* 80949588 */ void setCollision();
/* 809495E0 */ void set_mtx();
/* 80949744 */ void animePlay();
/* 8094983C */ void setMcaMorfAnm(J3DAnmTransformKey*, f32, f32, int, int, int);
/* 8094983C */ int setMcaMorfAnm(J3DAnmTransformKey*, f32, f32, int, int, int);
/* 809498B8 */ void setBtpAnm(J3DAnmTexPattern*, J3DModelData*, f32, int);
/* 809498F8 */ J3DAnmTransformKey* getTrnsfrmKeyAnm(char*);
/* 80949948 */ void getTexPtrnAnm(char*);
/* 80949948 */ J3DAnmTexPattern* getTexPtrnAnm(char*);
/* 80949A70 */ int checkEndAnm(J3DFrameCtrl*);
/* 80949998 */ int checkEndAnm(f32);
/* 80949AD4 */ int getItemNumMax();
/* 80949AE0 */ void getItemType(void*);
/* 80949C0C */ void getFlowNodeNum();
/* 80949AE0 */ int getItemType(void*);
/* 80949C0C */ u16 getFlowNodeNum();
/* 80949C44 */ void checkDead();
/* 80949D54 */ void chkPlayerInEvtArea(fopAc_ac_c*, cXyz);
/* 80949D54 */ int chkPlayerInEvtArea(fopAc_ac_c*, cXyz);
/* 80949EE8 */ void animeControl();
/* 8094A054 */ void setAnimeType(u8, f32);
/* 8094A098 */ void playDefaultWaitAnime();
@ -114,9 +114,7 @@ public:
daMyna_c(){};
void onEventFlag(u8 flag) {
field_0x92F |= (1 << flag);
}
void onEventFlag(u8 flag) { field_0x92F |= (1 << flag); }
typedef void (daMyna_c::*ProcFunc)();
typedef int (daMyna_c::*BaseMotionFunc)(int);

View File

@ -5,29 +5,23 @@
#include "rel/d/a/d_a_myna/d_a_myna.h"
#include "JSystem/JKernel/JKRHeap.h"
#include "SSystem/SComponent/c_math.h"
#include "d/a/d_a_player.h"
#include "d/com/d_com_inf_game.h"
#include "d/d_procname.h"
#include "d/kankyo/d_kankyo.h"
#include "d/msg/d_msg_object.h"
#include "dol2asm.h"
#include "rel/d/a/tag/d_a_tag_myna_light/d_a_tag_myna_light.h"
//
// Types:
//
struct msg_class {};
struct daTag_MynaLight_c {
/* 80D5CE40 */ void setTurnOnOffChange();
};
struct daObj_SSItem_c {
/* 80CE77F8 */ void getExchangeItemPtr();
};
struct dMsgObject_c {
/* 8023822C */ void getStatus();
};
//
// Forward References:
//
@ -266,24 +260,19 @@ extern "C" void setTurnOnOffChange__17daTag_MynaLight_cFv();
/* 80945C6C-80945C8C 0000EC 0020+00 1/1 0/0 0/0 .text createHeapCallBack__FP10fopAc_ac_c
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void createHeapCallBack(fopAc_ac_c* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_myna/d_a_myna/createHeapCallBack__FP10fopAc_ac_c.s"
static void createHeapCallBack(fopAc_ac_c* i_this) {
static_cast<daMyna_c*>(i_this)->createHeap();
}
#pragma pop
/* 80945C8C-80945CD8 00010C 004C+00 1/1 0/0 0/0 .text jntNodeCallBack__FP8J3DJointi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void jntNodeCallBack(J3DJoint* param_0, int param_1) {
nofralloc
#include "asm/rel/d/a/d_a_myna/d_a_myna/jntNodeCallBack__FP8J3DJointi.s"
static int jntNodeCallBack(J3DJoint* i_jnt, int param_1) {
if (param_1 == 0) {
if (j3dSys.getModel()->getUserArea() != 0) {
((daMyna_c*)j3dSys.getModel()->getUserArea())->jntNodeCB(i_jnt, j3dSys.getModel());
}
}
return 1;
}
#pragma pop
/* ############################################################################################## */
/* 8094B9F0-8094B9F4 000008 0001+03 2/2 0/0 0/0 .bss @1109 */
@ -403,7 +392,7 @@ static u8 daMyna_subActor[40];
#pragma pop
/* 8094BAC0-8094BAC4 0000D8 0004+00 7/7 0/0 0/0 .bss daMyna_LightActor */
static u8 daMyna_LightActor[4];
static daTag_MynaLight_c* daMyna_LightActor;
/* 8094BAC4-8094BAC8 0000DC 0004+00 0/2 0/0 0/0 .bss daMyna_actor_count */
#pragma push
@ -422,14 +411,18 @@ static asm void daMyna_searchSSItem(void* param_0, void* param_1) {
#pragma pop
/* 80945D9C-80945E0C 00021C 0070+00 1/1 0/0 0/0 .text daMyna_searchLight__FPvPv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void daMyna_searchLight(void* param_0, void* param_1) {
nofralloc
#include "asm/rel/d/a/d_a_myna/d_a_myna/daMyna_searchLight__FPvPv.s"
static void* daMyna_searchLight(void* i_mynaLightTagActor, void* param_1) {
if (fopAcM_IsActor(i_mynaLightTagActor) &&
fopAcM_GetName(i_mynaLightTagActor) == PROC_TAG_MNLIGHT)
{
u32 uVar1 = fopAcM_GetParam(param_1) & 0xF0000000;
u32 uVar2 = fopAcM_GetParam(i_mynaLightTagActor) & 0xF0000000;
if (uVar1 == uVar2) {
daMyna_LightActor = static_cast<daTag_MynaLight_c*>(i_mynaLightTagActor);
}
}
return 0;
}
#pragma pop
/* ############################################################################################## */
/* 8094BAC8-8094BACC 0000E0 0004+00 8/9 0/0 0/0 .bss daMyna_evtTagActor0 */
@ -1211,7 +1204,7 @@ static char* l_bckFileNameTBL[] = {
};
/* 8094B7DC-8094B7E0 -00001 0004+00 2/2 0/0 0/0 .data l_btpFileNameTBL */
static char* l_btpFileNameTBL = "MYNA.btp";
static char* l_btpFileNameTBL[] = {"MYNA.btp"};
/* 8094B7E0-8094B810 000480 0030+00 1/1 0/0 0/0 .data aParam$localstatic3$__ct__12daMyna_HIO_cFv
*/
@ -1341,45 +1334,6 @@ SECTION_DATA u8 daMyna_c::mBaseMotionTBL[84] = {
};
#endif
/* 8094B8B8-8094B8F8 -00001 0040+00 1/1 0/0 0/0 .data @5409 */
SECTION_DATA static void* lit_5409[16] = {
(void*)(((char*)orderEvent__8daMyna_cFv) + 0x3C),
(void*)(((char*)orderEvent__8daMyna_cFv) + 0x44),
(void*)(((char*)orderEvent__8daMyna_cFv) + 0x44),
(void*)(((char*)orderEvent__8daMyna_cFv) + 0x44),
(void*)(((char*)orderEvent__8daMyna_cFv) + 0x44),
(void*)(((char*)orderEvent__8daMyna_cFv) + 0x3C),
(void*)(((char*)orderEvent__8daMyna_cFv) + 0x44),
(void*)(((char*)orderEvent__8daMyna_cFv) + 0x3C),
(void*)(((char*)orderEvent__8daMyna_cFv) + 0x44),
(void*)(((char*)orderEvent__8daMyna_cFv) + 0x44),
(void*)(((char*)orderEvent__8daMyna_cFv) + 0x44),
(void*)(((char*)orderEvent__8daMyna_cFv) + 0x3C),
(void*)(((char*)orderEvent__8daMyna_cFv) + 0x3C),
(void*)(((char*)orderEvent__8daMyna_cFv) + 0x3C),
(void*)(((char*)orderEvent__8daMyna_cFv) + 0x3C),
(void*)(((char*)orderEvent__8daMyna_cFv) + 0x3C),
};
/* 8094B8F8-8094B934 -00001 003C+00 1/1 0/0 0/0 .data @5890 */
SECTION_DATA static void* lit_5890[15] = {
(void*)(((char*)animeControl__8daMyna_cFv) + 0xB0),
(void*)(((char*)animeControl__8daMyna_cFv) + 0x5C),
(void*)(((char*)animeControl__8daMyna_cFv) + 0x74),
(void*)(((char*)animeControl__8daMyna_cFv) + 0x7C),
(void*)(((char*)animeControl__8daMyna_cFv) + 0x84),
(void*)(((char*)animeControl__8daMyna_cFv) + 0xB0),
(void*)(((char*)animeControl__8daMyna_cFv) + 0xB0),
(void*)(((char*)animeControl__8daMyna_cFv) + 0x94),
(void*)(((char*)animeControl__8daMyna_cFv) + 0xA4),
(void*)(((char*)animeControl__8daMyna_cFv) + 0xB0),
(void*)(((char*)animeControl__8daMyna_cFv) + 0xB0),
(void*)(((char*)animeControl__8daMyna_cFv) + 0xB0),
(void*)(((char*)animeControl__8daMyna_cFv) + 0xB0),
(void*)(((char*)animeControl__8daMyna_cFv) + 0xAC),
(void*)(((char*)animeControl__8daMyna_cFv) + 0xB0),
};
/* 809460A0-80946284 000520 01E4+00 1/1 0/0 0/0 .text create__8daMyna_cFv */
// Matches with incorrect weak function ordering
#ifdef NONMATCHING
@ -1468,14 +1422,21 @@ int daMyna_c::destroy() {
}
/* 8094640C-809464CC 00088C 00C0+00 1/1 0/0 0/0 .text draw__8daMyna_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm int daMyna_c::draw() {
nofralloc
#include "asm/rel/d/a/d_a_myna/d_a_myna/draw__8daMyna_cFv.s"
int daMyna_c::draw() {
J3DModel* model = mpMorf->getModel();
J3DModelData* modelData = model->getModelData();
g_env_light.settingTevStruct(0, &current.pos, &mTevStr);
g_env_light.setLightTevColorType_MAJI(model->getModelData(), &mTevStr);
if (cLib_checkBit(field_0x914, 0x40)) {
mBtpAnm.entry(modelData);
}
fopAcM_setEffectMtx(this, modelData);
mpMorf->entryDL();
if (cLib_checkBit(field_0x914, 0x40)) {
mBtpAnm.remove(modelData);
}
return 1;
}
#pragma pop
/* ############################################################################################## */
/* 8094B1F4-8094B1F8 000044 0004+00 1/1 0/0 0/0 .rodata @4207 */
@ -1487,6 +1448,54 @@ SECTION_RODATA static f32 const lit_4208 = 100.0f;
COMPILER_STRIP_GATE(0x8094B1F8, &lit_4208);
/* 809464CC-809466D8 00094C 020C+00 2/2 0/0 0/0 .text execute__8daMyna_cFv */
// Matches with literals
#ifdef NONMATCHING
int daMyna_c::execute() {
u8 uVar1 = field_0x92C;
u8 uVar2 = field_0x935;
bool isTalkNow = dMsgObject_isTalkNowCheck();
setItemInfo();
int iVar1 = chkEvent();
if (daMyna_LightActor == NULL) {
i_fpcM_Search(daMyna_searchLight, this);
}
setRoomNo();
mAttentionInfo.mPosition.set(current.pos.x, current.pos.y + 40.0f, current.pos.z);
mEyePos.set(mAttentionInfo.mPosition);
if (field_0x926 > 0) {
field_0x926--;
}
if (isTalkNow) {
talkAnime(mMsgFlow.getMsg());
} else if (field_0x824 != 0) {
field_0x824 = 0;
}
if (iVar1 != 0) {
(this->*move_proc[field_0x92C])();
orderEvent();
}
if (!isTalkNow) {
playDefaultWaitAnime();
setDefaultWaitAnime(uVar2);
}
if (uVar1 != field_0x92C) {
(this->*init_proc[field_0x92C])();
}
if (uVar2 != field_0x935) {
if (field_0x935 == 1) {
field_0x924 = cM_rndF(100.0f) + 100.0f;
}
animeControl();
}
animePlay();
set_mtx();
shape_angle = current.angle;
shape_angle.y = -current.angle.y;
setCollision();
checkDead();
return 1;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -1495,6 +1504,7 @@ asm int daMyna_c::execute() {
#include "asm/rel/d/a/d_a_myna/d_a_myna/execute__8daMyna_cFv.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 8094B1FC-8094B200 00004C 0004+00 11/12 0/0 0/0 .rodata @4270 */
@ -1508,24 +1518,55 @@ SECTION_DEAD static char const* const stringBase_8094B355 = "MYNA.bmd";
#pragma pop
/* 809466D8-8094686C 000B58 0194+00 1/1 0/0 0/0 .text createHeap__8daMyna_cFv */
// Matches with literals
#ifdef NONMATCHING
int daMyna_c::createHeap() {
J3DModelData* modelData =
static_cast<J3DModelData*>(dComIfG_getObjectRes("Npc_myna", "MYNA.bmd"));
mpMorf = new mDoExt_McaMorfSO(modelData, NULL, NULL, NULL, -1, 1.0f, 0, -1, &mCreature, 0x80000,
0x11020084);
if (mpMorf != NULL && mpMorf->getModel() == NULL) {
mpMorf->stopZelAnime();
mpMorf = NULL;
}
if (mpMorf == NULL) {
return 0;
} else {
for (u16 i = 0; i < modelData->getJointNum(); i++) {
modelData->getJointNodePointer(i)->setCallBack(jntNodeCallBack);
}
field_0x916 = 7;
field_0x914 = 0;
field_0x918 = 0;
field_0x91A = 0;
field_0x936 = 0;
J3DAnmTexPattern* anmTexPattern = getTexPtrnAnm(l_btpFileNameTBL[field_0x936]);
if (anmTexPattern != NULL) {
setBtpAnm(anmTexPattern, mpMorf->getModel()->getModelData(), 1.0f, 2);
cLib_onBit(field_0x914, 0x44);
}
return 1;
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daMyna_c::createHeap() {
asm int daMyna_c::createHeap() {
nofralloc
#include "asm/rel/d/a/d_a_myna/d_a_myna/createHeap__8daMyna_cFv.s"
}
#pragma pop
#endif
/* 8094686C-809468EC 000CEC 0080+00 1/1 0/0 0/0 .text jntNodeCB__8daMyna_cFP8J3DJointP8J3DModel */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daMyna_c::jntNodeCB(J3DJoint* param_0, J3DModel* param_1) {
nofralloc
#include "asm/rel/d/a/d_a_myna/d_a_myna/jntNodeCB__8daMyna_cFP8J3DJointP8J3DModel.s"
int daMyna_c::jntNodeCB(J3DJoint* i_jnt, J3DModel* i_model) {
u16 jntNo = i_jnt->getJntNo();
mDoMtx_stack_c::copy(i_model->i_getAnmMtx(jntNo));
i_model->setAnmMtx(jntNo, mDoMtx_stack_c::get());
cMtx_copy(mDoMtx_stack_c::get(), J3DSys::mCurrentMtx);
return 1;
}
#pragma pop
/* 809468EC-8094692C 000D6C 0040+00 1/0 0/0 0/0 .text attack_wait_init__8daMyna_cFv */
#pragma push
@ -2014,14 +2055,13 @@ asm void daMyna_c::attack2_talk_move() {
#pragma pop
/* 809487EC-80948828 002C6C 003C+00 0/0 0/0 2/2 .text soldoutItem__8daMyna_cFUi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daMyna_c::soldoutItem(unsigned int param_0) {
nofralloc
#include "asm/rel/d/a/d_a_myna/d_a_myna/soldoutItem__8daMyna_cFUi.s"
void daMyna_c::soldoutItem(unsigned int i_itemId) {
for (int i = 0; i < mNumShopItems; i++) {
if (i_itemId == mShopItems[i].mTargetActorID) {
mShopItems[i].mItemStatus = 3;
}
}
}
#pragma pop
/* ############################################################################################## */
/* 8094B228-8094B22C 000078 0004+00 1/2 0/0 0/0 .rodata @5221 */
@ -2078,6 +2118,17 @@ SECTION_RODATA static u8 const lit_5332[8] = {
COMPILER_STRIP_GATE(0x8094B238, &lit_5332);
/* 80948DFC-80948E84 00327C 0088+00 2/2 0/0 0/0 .text fly_body_wave__8daMyna_cFv */
// Matches with literals
#ifdef NONMATCHING
void daMyna_c::fly_body_wave() {
if (field_0x935 == 0) {
field_0x91A = field_0x91A + l_HOSTIO.field_0x2E;
f32 fVar1 = cM_scos(field_0x91A) * l_HOSTIO.field_0x2C;
current.pos.y += fVar1;
field_0x85C.y += fVar1;
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -2086,6 +2137,7 @@ asm void daMyna_c::fly_body_wave() {
#include "asm/rel/d/a/d_a_myna/d_a_myna/fly_body_wave__8daMyna_cFv.s"
}
#pragma pop
#endif
/* 80948E84-80948FAC 003304 0128+00 1/1 0/0 0/0 .text talkAnime__8daMyna_cFP9msg_class */
#pragma push
@ -2098,36 +2150,101 @@ asm void daMyna_c::talkAnime(msg_class* param_0) {
#pragma pop
/* 80948FAC-809490B8 00342C 010C+00 1/1 0/0 0/0 .text chkEvent__8daMyna_cFv */
// Matches with literals
#ifdef NONMATCHING
int daMyna_c::chkEvent() {
int retVal = 1;
if (daPy_py_c::i_checkNowWolf()) {
if (!i_dComIfGp_getEvent().i_isOrderOK()) {
retVal = 0;
if (mEvtInfo.checkCommandTalk()) {
if (field_0x92C == 0x10) {
(this->*move_proc[field_0x92C])();
retVal = 0;
} else {
if (dComIfGp_event_chkTalkXY() == 0 || dComIfGp_evmng_ChkPresentEnd()) {
field_0x92E = field_0x92C;
field_0x92C = 0x10;
retVal = 0;
}
}
return retVal;
}
}
}
return retVal;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daMyna_c::chkEvent() {
asm int daMyna_c::chkEvent() {
nofralloc
#include "asm/rel/d/a/d_a_myna/d_a_myna/chkEvent__8daMyna_cFv.s"
}
#pragma pop
#endif
/* 809490B8-80949128 003538 0070+00 2/1 0/0 0/0 .text orderEvent__8daMyna_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daMyna_c::orderEvent() {
nofralloc
#include "asm/rel/d/a/d_a_myna/d_a_myna/orderEvent__8daMyna_cFv.s"
int daMyna_c::orderEvent() {
if (daPy_py_c::i_checkNowWolf()) {
switch (field_0x92C) {
case 0:
case 5:
case 7:
case 11:
case 12:
case 13:
case 14:
case 15:
mAttentionInfo.mFlags = 10;
}
if (mAttentionInfo.mFlags == 10) {
mAttentionInfo.field_0x0[1] = 0x8B;
mAttentionInfo.field_0x0[3] = 0x8B;
mEvtInfo.i_onCondition(1);
}
}
return 1;
}
#pragma pop
/* 8094B8F8-8094B934 -00001 003C+00 1/1 0/0 0/0 .data @5890 */
SECTION_DATA static void* lit_5890[15] = {
(void*)(((char*)animeControl__8daMyna_cFv) + 0xB0),
(void*)(((char*)animeControl__8daMyna_cFv) + 0x5C),
(void*)(((char*)animeControl__8daMyna_cFv) + 0x74),
(void*)(((char*)animeControl__8daMyna_cFv) + 0x7C),
(void*)(((char*)animeControl__8daMyna_cFv) + 0x84),
(void*)(((char*)animeControl__8daMyna_cFv) + 0xB0),
(void*)(((char*)animeControl__8daMyna_cFv) + 0xB0),
(void*)(((char*)animeControl__8daMyna_cFv) + 0x94),
(void*)(((char*)animeControl__8daMyna_cFv) + 0xA4),
(void*)(((char*)animeControl__8daMyna_cFv) + 0xB0),
(void*)(((char*)animeControl__8daMyna_cFv) + 0xB0),
(void*)(((char*)animeControl__8daMyna_cFv) + 0xB0),
(void*)(((char*)animeControl__8daMyna_cFv) + 0xB0),
(void*)(((char*)animeControl__8daMyna_cFv) + 0xAC),
(void*)(((char*)animeControl__8daMyna_cFv) + 0xB0),
};
/* 80949128-80949144 0035A8 001C+00 1/1 0/0 0/0 .text deleteItem__8daMyna_cFi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daMyna_c::deleteItem(int param_0) {
nofralloc
#include "asm/rel/d/a/d_a_myna/d_a_myna/deleteItem__8daMyna_cFi.s"
void daMyna_c::deleteItem(int i_itemIndex) {
mShopItems[i_itemIndex].mTargetActorID = -1;
mShopItems[i_itemIndex].mItemStatus = 4;
}
#pragma pop
/* 80949144-80949190 0035C4 004C+00 0/0 0/0 0/0 .text deleteItem__8daMyna_cFUi */
// Nonmatching, no clue what's going on here
#ifdef NONMATCHING
void daMyna_c::deleteItem(unsigned int i_itemId) {
for (int i = 0; i < mNumShopItems; i++) {
if (i_itemId == mShopItems[i].mTargetActorID) {
mShopItems[i].mTargetActorID = -1;
mShopItems[i].mItemStatus = 4;
}
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -2136,6 +2253,7 @@ asm void daMyna_c::deleteItem(unsigned int param_0) {
#include "asm/rel/d/a/d_a_myna/d_a_myna/deleteItem__8daMyna_cFUi.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 8094B240-8094B244 000090 0004+00 0/1 0/0 0/0 .rodata @5455 */
@ -2230,16 +2348,21 @@ asm void daMyna_c::setItemInfo() {
#pragma pop
/* 80949544-80949588 0039C4 0044+00 2/2 0/0 0/0 .text setRoomNo__8daMyna_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daMyna_c::setRoomNo() {
nofralloc
#include "asm/rel/d/a/d_a_myna/d_a_myna/setRoomNo__8daMyna_cFv.s"
void daMyna_c::setRoomNo() {
s32 roomId = dComIfG_Bgsp().GetRoomId(mGndChk);
fopAcM_SetRoomNo(this, roomId);
mStatus.SetRoomId(roomId);
}
#pragma pop
/* 80949588-809495E0 003A08 0058+00 1/1 0/0 0/0 .text setCollision__8daMyna_cFv */
// Matches with literals
#ifdef NONMATCHING
void daMyna_c::setCollision() {
mSph.SetC(field_0x85C);
mSph.SetR(15.0f);
dComIfG_Ccsp()->Set(&mSph);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -2248,6 +2371,7 @@ asm void daMyna_c::setCollision() {
#include "asm/rel/d/a/d_a_myna/d_a_myna/setCollision__8daMyna_cFv.s"
}
#pragma pop
#endif
/* 809495E0-80949744 003A60 0164+00 1/1 0/0 0/0 .text set_mtx__8daMyna_cFv */
// Matches when l_HOSTIO is the correct type
@ -2321,47 +2445,54 @@ asm void daMyna_c::animePlay() {
/* 8094983C-809498B8 003CBC 007C+00 2/2 0/0 0/0 .text
* setMcaMorfAnm__8daMyna_cFP18J3DAnmTransformKeyffiii */
// Matches with literals
#ifdef NONMATCHING
int daMyna_c::setMcaMorfAnm(J3DAnmTransformKey* i_anm, f32 i_rate, f32 i_morf, int i_attr,
int i_start, int i_end) {
mpMorf->setAnm(i_anm, i_attr, i_morf, i_rate, i_start, i_end);
field_0x91E = 0;
return 1;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daMyna_c::setMcaMorfAnm(J3DAnmTransformKey* param_0, f32 param_1, f32 param_2, int param_3,
int param_4, int param_5) {
asm int daMyna_c::setMcaMorfAnm(J3DAnmTransformKey* param_0, f32 param_1, f32 param_2, int param_3,
int param_4, int param_5) {
nofralloc
#include "asm/rel/d/a/d_a_myna/d_a_myna/setMcaMorfAnm__8daMyna_cFP18J3DAnmTransformKeyffiii.s"
}
#pragma pop
#endif
/* 809498B8-809498F8 003D38 0040+00 2/2 0/0 0/0 .text
* setBtpAnm__8daMyna_cFP16J3DAnmTexPatternP12J3DModelDatafi */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daMyna_c::setBtpAnm(J3DAnmTexPattern* param_0, J3DModelData* param_1, f32 param_2,
int param_3) {
nofralloc
#include "asm/rel/d/a/d_a_myna/d_a_myna/setBtpAnm__8daMyna_cFP16J3DAnmTexPatternP12J3DModelDatafi.s"
void daMyna_c::setBtpAnm(J3DAnmTexPattern* i_btk, J3DModelData* param_1, f32 i_rate,
int i_attribute) {
mBtpAnm.init(&param_1->getMaterialTable(), i_btk, 1, i_attribute, i_rate, 0, -1);
}
#pragma pop
/* 809498F8-80949948 003D78 0050+00 2/2 0/0 0/0 .text getTrnsfrmKeyAnm__8daMyna_cFPc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm J3DAnmTransformKey* daMyna_c::getTrnsfrmKeyAnm(char* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_myna/d_a_myna/getTrnsfrmKeyAnm__8daMyna_cFPc.s"
J3DAnmTransformKey* daMyna_c::getTrnsfrmKeyAnm(char* i_resName) {
J3DAnmTransformKey* key;
if (i_resName != NULL) {
key = static_cast<J3DAnmTransformKey*>(dComIfG_getObjectRes("Npc_myna", i_resName));
} else {
key = NULL;
}
return key;
}
#pragma pop
/* 80949948-80949998 003DC8 0050+00 2/2 0/0 0/0 .text getTexPtrnAnm__8daMyna_cFPc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daMyna_c::getTexPtrnAnm(char* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_myna/d_a_myna/getTexPtrnAnm__8daMyna_cFPc.s"
J3DAnmTexPattern* daMyna_c::getTexPtrnAnm(char* i_resName) {
J3DAnmTexPattern* pattern;
if (i_resName != NULL) {
pattern = static_cast<J3DAnmTexPattern*>(dComIfG_getObjectRes("Npc_myna", i_resName));
} else {
pattern = NULL;
}
return pattern;
}
#pragma pop
/* 80949998-80949A70 003E18 00D8+00 1/1 0/0 0/0 .text checkEndAnm__8daMyna_cFf */
#pragma push
@ -2374,6 +2505,25 @@ asm int daMyna_c::checkEndAnm(f32 param_0) {
#pragma pop
/* 80949A70-80949AD4 003EF0 0064+00 1/1 0/0 0/0 .text checkEndAnm__8daMyna_cFP12J3DFrameCtrl */
// Matches with literals
#ifdef NONMATCHING
int daMyna_c::checkEndAnm(J3DFrameCtrl* param_0) {
switch (param_0->getAttribute()) {
case 2:
return param_0->checkState(2);
case 0:
case 1:
u8 retVal = 1;
if (param_0->checkState(1) == 0 && param_0->getRate() != 0.0f) {
retVal = 0;
}
return retVal;
case 3:
default:
return 0;
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
@ -2382,36 +2532,94 @@ asm int daMyna_c::checkEndAnm(J3DFrameCtrl* param_0) {
#include "asm/rel/d/a/d_a_myna/d_a_myna/checkEndAnm__8daMyna_cFP12J3DFrameCtrl.s"
}
#pragma pop
#endif
/* 80949AD4-80949AE0 003F54 000C+00 1/1 0/0 0/0 .text getItemNumMax__8daMyna_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm int daMyna_c::getItemNumMax() {
nofralloc
#include "asm/rel/d/a/d_a_myna/d_a_myna/getItemNumMax__8daMyna_cFv.s"
int daMyna_c::getItemNumMax() {
return (fopAcM_GetParam(this) >> 0x18) & 0xF;
}
#pragma pop
/* 80949AE0-80949C0C 003F60 012C+00 1/1 0/0 0/0 .text getItemType__8daMyna_cFPv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daMyna_c::getItemType(void* param_0) {
nofralloc
#include "asm/rel/d/a/d_a_myna/d_a_myna/getItemType__8daMyna_cFPv.s"
int daMyna_c::getItemType(void* param_0) {
int itemType = 0xF;
u8 uVar1 = fopAcM_GetParam(param_0) & 0xFF;
if (fopAcM_GetName(param_0) == PROC_OBJ_SSITEM) {
switch (uVar1) {
case 0:
itemType = 1;
break;
case 1:
itemType = 2;
break;
case 2:
itemType = 0;
break;
}
} else if (fopAcM_GetName(param_0) == PROC_OBJ_SSDRINK) {
switch (uVar1) {
case 0:
itemType = 3;
break;
case 1:
itemType = 4;
break;
case 2:
itemType = 5;
break;
case 3:
itemType = 6;
break;
case 4:
itemType = 7;
break;
case 5:
itemType = 8;
break;
}
} else if (fopAcM_GetName(param_0) == PROC_TAG_SSDRINK) {
switch (uVar1) {
case 0:
itemType = 9;
break;
case 1:
itemType = 10;
break;
case 2:
itemType = 11;
break;
case 3:
itemType = 12;
break;
case 4:
itemType = 13;
break;
case 5:
itemType = 14;
break;
}
}
return itemType;
}
#pragma pop
/* 80949C0C-80949C44 00408C 0038+00 3/3 0/0 0/0 .text getFlowNodeNum__8daMyna_cFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daMyna_c::getFlowNodeNum() {
nofralloc
#include "asm/rel/d/a/d_a_myna/d_a_myna/getFlowNodeNum__8daMyna_cFv.s"
u16 daMyna_c::getFlowNodeNum() {
u16 num = orig.angle.x;
bool bVar1 = false;
if (num == 0xFFFF || num == 0) {
bVar1 = true;
}
int num2;
if (!bVar1) {
num2 = num;
} else {
num2 = -1;
}
return num2;
}
#pragma pop
/* 80949C44-80949D54 0040C4 0110+00 1/1 0/0 0/0 .text checkDead__8daMyna_cFv */
#pragma push
@ -2425,14 +2633,43 @@ asm void daMyna_c::checkDead() {
/* 80949D54-80949EE8 0041D4 0194+00 7/7 0/0 0/0 .text
* chkPlayerInEvtArea__8daMyna_cFP10fopAc_ac_c4cXyz */
// Matches with literals
#ifdef NONMATCHING
int daMyna_c::chkPlayerInEvtArea(fopAc_ac_c* param_0, cXyz param_1) {
int retVal = 0;
cXyz local_60;
cXyz local_6c;
if (param_0 != NULL) {
mDoMtx_stack_c::YrotS(-param_0->current.angle.y);
mDoMtx_stack_c::transM(-param_0->current.pos.x, -param_0->current.pos.y,
-param_0->current.pos.z);
mDoMtx_stack_c::multVec(&daPy_getPlayerActorClass()->current.pos, &local_6c);
f32 fVar1 = fabsf(param_0->mScale.x + param_1.x);
f32 fVar2 = fabsf(param_0->mScale.z + param_1.z);
f32 fVar3 = fabsf(local_6c.x);
f32 fVar4 = fabsf(local_6c.z);
local_60 = param_0->current.pos - daPy_getPlayerActorClass()->current.pos;
if ((fVar3 * fVar3) / (fVar1 * fVar1) + (fVar4 * fVar4) / (fVar2 * fVar2) <= 1.0f &&
-(param_0->mScale.y + param_1.y) < local_60.y &&
local_60.y < (param_0->mScale.y + param_1.y))
{
retVal = 1;
}
}
return retVal;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void daMyna_c::chkPlayerInEvtArea(fopAc_ac_c* param_0, cXyz param_1) {
asm int daMyna_c::chkPlayerInEvtArea(fopAc_ac_c* param_0, cXyz param_1) {
nofralloc
#include "asm/rel/d/a/d_a_myna/d_a_myna/chkPlayerInEvtArea__8daMyna_cFP10fopAc_ac_c4cXyz.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 8094B244-8094B248 000094 0004+00 2/3 0/0 0/0 .rodata @5889 */