diff --git a/Progress.md b/Progress.md index 44532d4a124..dc3f1e630c4 100644 --- a/Progress.md +++ b/Progress.md @@ -7,22 +7,22 @@ Section | Percentage | Decompiled (bytes) | Total (bytes) .init | 97.972973% | 9280 | 9472 .extab | 100.000000% | 96 | 96 .extabindex | 100.000000% | 96 | 96 -.text | 30.962168% | 1113568 | 3596544 +.text | 30.963614% | 1113620 | 3596544 .ctors | 100.000000% | 448 | 448 .dtors | 100.000000% | 32 | 32 .rodata | 100.000000% | 193856 | 193856 .data | 100.000000% | 197632 | 197632 .sdata | 100.000000% | 1408 | 1408 .sdata2 | 100.000000% | 20832 | 20832 -Total | 38.239976% | 1537504 | 4020672 +Total | 38.241269% | 1537556 | 4020672 ## Total Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- -main.dol | 38.239976% | 1537504 | 4020672 -RELs | 34.121230% | 3924052 | 11500324 -Total | 35.188180% | 5461556 | 15520996 +main.dol | 38.241269% | 1537556 | 4020672 +RELs | 34.213471% | 3934660 | 11500324 +Total | 35.256861% | 5472216 | 15520996 ## RELs @@ -59,7 +59,7 @@ d_a_b_zant_sima | 40.995025% | 1648 | 4020 d_a_balloon_2D | 29.886212% | 3572 | 11952 d_a_bd | 31.115418% | 5780 | 18576 d_a_bg | 41.505376% | 3860 | 9300 -d_a_bg_obj | 32.434657% | 6304 | 19436 +d_a_bg_obj | 69.911504% | 13588 | 19436 d_a_boomerang | 43.861338% | 10932 | 24924 d_a_bullet | 42.660550% | 2604 | 6104 d_a_canoe | 28.479263% | 4944 | 17360 @@ -200,9 +200,9 @@ d_a_kytag05 | 100.000000% | 816 | 816 d_a_kytag06 | 100.000000% | 14140 | 14140 d_a_kytag07 | 100.000000% | 1272 | 1272 d_a_kytag08 | 35.590421% | 1724 | 4844 -d_a_kytag09 | 49.936948% | 1584 | 3172 +d_a_kytag09 | 100.000000% | 3172 | 3172 d_a_kytag10 | 43.413978% | 1292 | 2976 -d_a_kytag11 | 52.643172% | 956 | 1816 +d_a_kytag11 | 100.000000% | 1816 | 1816 d_a_kytag12 | 20.217129% | 3352 | 16580 d_a_kytag13 | 30.696576% | 2080 | 6776 d_a_kytag14 | 100.000000% | 1408 | 1408 @@ -211,7 +211,7 @@ d_a_kytag16 | 100.000000% | 2296 | 2296 d_a_kytag17 | 100.000000% | 752 | 752 d_a_mant | 86.020312% | 40316 | 46868 d_a_mg_fish | 26.024167% | 17660 | 67860 -d_a_mg_fshop | 36.363636% | 9360 | 25740 +d_a_mg_fshop | 36.658897% | 9436 | 25740 d_a_mg_rod | 24.484345% | 23836 | 97352 d_a_midna | 22.953368% | 12404 | 54040 d_a_mirror | 48.001631% | 4708 | 9808 @@ -242,7 +242,7 @@ d_a_npc_du | 35.940410% | 3860 | 10740 d_a_npc_fairy | 39.344262% | 19776 | 50264 d_a_npc_fairy_seirei | 42.302956% | 5496 | 12992 d_a_npc_fguard | 42.375887% | 2868 | 6768 -d_a_npc_fish | 79.939819% | 3188 | 3988 +d_a_npc_fish | 100.000000% | 3988 | 3988 d_a_npc_gnd | 36.965399% | 6880 | 18612 d_a_npc_gra | 30.387241% | 20120 | 66212 d_a_npc_grc | 32.984636% | 8072 | 24472 @@ -785,4 +785,4 @@ d_a_vrbox2 | 34.977578% | 2184 | 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.121230% | 3924052 | 11500324 +Total | 34.213471% | 3934660 | 11500324 diff --git a/asm/rel/d/a/npc/d_a_npc_fish/d_a_npc_fish/daNpc_Fish_Create__FP10fopAc_ac_c.s b/asm/rel/d/a/npc/d_a_npc_fish/d_a_npc_fish/daNpc_Fish_Create__FP10fopAc_ac_c.s deleted file mode 100644 index ef9fb2aa8c2..00000000000 --- a/asm/rel/d/a/npc/d_a_npc_fish/d_a_npc_fish/daNpc_Fish_Create__FP10fopAc_ac_c.s +++ /dev/null @@ -1,166 +0,0 @@ -lbl_80542254: -/* 80542254 94 21 FF 80 */ stwu r1, -0x80(r1) -/* 80542258 7C 08 02 A6 */ mflr r0 -/* 8054225C 90 01 00 84 */ stw r0, 0x84(r1) -/* 80542260 DB E1 00 70 */ stfd f31, 0x70(r1) -/* 80542264 F3 E1 00 78 */ psq_st f31, 120(r1), 0, 0 /* qr0 */ -/* 80542268 DB C1 00 60 */ stfd f30, 0x60(r1) -/* 8054226C F3 C1 00 68 */ psq_st f30, 104(r1), 0, 0 /* qr0 */ -/* 80542270 DB A1 00 50 */ stfd f29, 0x50(r1) -/* 80542274 F3 A1 00 58 */ psq_st f29, 88(r1), 0, 0 /* qr0 */ -/* 80542278 DB 81 00 40 */ stfd f28, 0x40(r1) -/* 8054227C F3 81 00 48 */ psq_st f28, 72(r1), 0, 0 /* qr0 */ -/* 80542280 39 61 00 40 */ addi r11, r1, 0x40 -/* 80542284 4B E1 FF 51 */ bl _savegpr_27 -/* 80542288 7C 7D 1B 78 */ mr r29, r3 -/* 8054228C 3C 80 80 54 */ lis r4, cNullVec__6Z2Calc@ha /* 0x805424E4@ha */ -/* 80542290 3B C4 24 E4 */ addi r30, r4, cNullVec__6Z2Calc@l /* 0x805424E4@l */ -/* 80542294 3C 80 80 54 */ lis r4, lit_3787@ha /* 0x805424C0@ha */ -/* 80542298 3B E4 24 C0 */ addi r31, r4, lit_3787@l /* 0x805424C0@l */ -/* 8054229C 80 03 04 A0 */ lwz r0, 0x4a0(r3) -/* 805422A0 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c -/* 805422A4 40 82 00 1C */ bne lbl_805422C0 -/* 805422A8 28 1D 00 00 */ cmplwi r29, 0 -/* 805422AC 41 82 00 08 */ beq lbl_805422B4 -/* 805422B0 4B AD 68 B5 */ bl __ct__10fopAc_ac_cFv -lbl_805422B4: -/* 805422B4 80 1D 04 A0 */ lwz r0, 0x4a0(r29) -/* 805422B8 60 00 00 08 */ ori r0, r0, 8 -/* 805422BC 90 1D 04 A0 */ stw r0, 0x4a0(r29) -lbl_805422C0: -/* 805422C0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805422C4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805422C8 38 63 4E 00 */ addi r3, r3, 0x4e00 -/* 805422CC 3C 80 80 54 */ lis r4, d_a_npc_fish__stringBase0@ha /* 0x805424DC@ha */ -/* 805422D0 38 84 24 DC */ addi r4, r4, d_a_npc_fish__stringBase0@l /* 0x805424DC@l */ -/* 805422D4 4B E2 66 C1 */ bl strcmp -/* 805422D8 2C 03 00 00 */ cmpwi r3, 0 -/* 805422DC 41 82 00 0C */ beq lbl_805422E8 -/* 805422E0 38 60 00 05 */ li r3, 5 -/* 805422E4 48 00 01 9C */ b lbl_80542480 -lbl_805422E8: -/* 805422E8 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 805422EC 3B 83 CA 54 */ addi r28, r3, g_env_light@l /* 0x8042CA54@l */ -/* 805422F0 38 80 00 00 */ li r4, 0 -/* 805422F4 88 1C 12 FE */ lbz r0, 0x12fe(r28) -/* 805422F8 28 00 00 02 */ cmplwi r0, 2 -/* 805422FC 40 82 00 0C */ bne lbl_80542308 -/* 80542300 38 80 00 A0 */ li r4, 0xa0 -/* 80542304 48 00 00 10 */ b lbl_80542314 -lbl_80542308: -/* 80542308 28 00 00 03 */ cmplwi r0, 3 -/* 8054230C 40 82 00 08 */ bne lbl_80542314 -/* 80542310 38 80 00 40 */ li r4, 0x40 -lbl_80542314: -/* 80542314 2C 04 00 00 */ cmpwi r4, 0 -/* 80542318 41 82 00 44 */ beq lbl_8054235C -/* 8054231C C0 1F 00 00 */ lfs f0, 0(r31) -/* 80542320 D0 01 00 10 */ stfs f0, 0x10(r1) -/* 80542324 C0 1F 00 04 */ lfs f0, 4(r31) -/* 80542328 D0 01 00 14 */ stfs f0, 0x14(r1) -/* 8054232C C0 1F 00 08 */ lfs f0, 8(r31) -/* 80542330 D0 01 00 18 */ stfs f0, 0x18(r1) -/* 80542334 38 60 01 16 */ li r3, 0x116 -/* 80542338 64 84 FF 01 */ oris r4, r4, 0xff01 -/* 8054233C 60 84 0E 00 */ ori r4, r4, 0xe00 -/* 80542340 38 A1 00 10 */ addi r5, r1, 0x10 -/* 80542344 88 1D 04 E2 */ lbz r0, 0x4e2(r29) -/* 80542348 7C 06 07 74 */ extsb r6, r0 -/* 8054234C 38 E0 00 00 */ li r7, 0 -/* 80542350 39 00 00 00 */ li r8, 0 -/* 80542354 39 20 FF FF */ li r9, -1 -/* 80542358 4B AD 7A 41 */ bl fopAcM_create__FsUlPC4cXyziPC5csXyzPC4cXyzSc -lbl_8054235C: -/* 8054235C 88 1C 12 FE */ lbz r0, 0x12fe(r28) -/* 80542360 28 00 00 02 */ cmplwi r0, 2 -/* 80542364 40 82 00 7C */ bne lbl_805423E0 -/* 80542368 3B 80 00 00 */ li r28, 0 -/* 8054236C C3 BF 00 0C */ lfs f29, 0xc(r31) -/* 80542370 C3 DF 00 14 */ lfs f30, 0x14(r31) -/* 80542374 C3 FF 00 04 */ lfs f31, 4(r31) -lbl_80542378: -/* 80542378 C0 3F 00 10 */ lfs f1, 0x10(r31) -/* 8054237C 4B D2 56 11 */ bl cM_rndFX__Ff -/* 80542380 EF 9D 08 2A */ fadds f28, f29, f1 -/* 80542384 C0 3F 00 10 */ lfs f1, 0x10(r31) -/* 80542388 4B D2 56 05 */ bl cM_rndFX__Ff -/* 8054238C EC 1E 08 2A */ fadds f0, f30, f1 -/* 80542390 D0 01 00 10 */ stfs f0, 0x10(r1) -/* 80542394 D3 E1 00 14 */ stfs f31, 0x14(r1) -/* 80542398 D3 81 00 18 */ stfs f28, 0x18(r1) -/* 8054239C 38 61 00 08 */ addi r3, r1, 8 -/* 805423A0 38 80 00 00 */ li r4, 0 -/* 805423A4 38 A0 00 00 */ li r5, 0 -/* 805423A8 38 C0 FF FF */ li r6, -1 -/* 805423AC 4B D2 50 49 */ bl __ct__5csXyzFsss -/* 805423B0 38 60 02 E2 */ li r3, 0x2e2 -/* 805423B4 38 80 00 00 */ li r4, 0 -/* 805423B8 38 A1 00 10 */ addi r5, r1, 0x10 -/* 805423BC 88 1D 04 E2 */ lbz r0, 0x4e2(r29) -/* 805423C0 7C 06 07 74 */ extsb r6, r0 -/* 805423C4 38 E1 00 08 */ addi r7, r1, 8 -/* 805423C8 39 00 00 00 */ li r8, 0 -/* 805423CC 39 20 FF FF */ li r9, -1 -/* 805423D0 4B AD 79 C9 */ bl fopAcM_create__FsUlPC4cXyziPC5csXyzPC4cXyzSc -/* 805423D4 3B 9C 00 01 */ addi r28, r28, 1 -/* 805423D8 2C 1C 00 04 */ cmpwi r28, 4 -/* 805423DC 41 80 FF 9C */ blt lbl_80542378 -lbl_805423E0: -/* 805423E0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 805423E4 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 805423E8 38 63 07 F0 */ addi r3, r3, 0x7f0 -/* 805423EC 3C 80 80 3A */ lis r4, saveBitLabels__16dSv_event_flag_c@ha /* 0x803A7288@ha */ -/* 805423F0 38 84 72 88 */ addi r4, r4, saveBitLabels__16dSv_event_flag_c@l /* 0x803A7288@l */ -/* 805423F4 A0 84 03 9E */ lhz r4, 0x39e(r4) -/* 805423F8 4B AF 25 C5 */ bl isEventBit__11dSv_event_cCFUs -/* 805423FC 2C 03 00 00 */ cmpwi r3, 0 -/* 80542400 41 82 00 14 */ beq lbl_80542414 -/* 80542404 7F A3 EB 78 */ mr r3, r29 -/* 80542408 38 9E 03 F4 */ addi r4, r30, 0x3f4 -/* 8054240C 4B FF FD 8D */ bl fish_set__FP10fopAc_ac_cP11fish_data_s -/* 80542410 48 00 00 6C */ b lbl_8054247C -lbl_80542414: -/* 80542414 7F A3 EB 78 */ mr r3, r29 -/* 80542418 38 9E 00 20 */ addi r4, r30, 0x20 -/* 8054241C 4B FF FD 7D */ bl fish_set__FP10fopAc_ac_cP11fish_data_s -/* 80542420 3B 60 00 00 */ li r27, 0 -/* 80542424 3B 80 00 00 */ li r28, 0 -/* 80542428 C3 FF 00 18 */ lfs f31, 0x18(r31) -lbl_8054242C: -/* 8054242C 38 9E 08 54 */ addi r4, r30, 0x854 -/* 80542430 7C 84 E2 14 */ add r4, r4, r28 -/* 80542434 C0 04 00 04 */ lfs f0, 4(r4) -/* 80542438 D0 01 00 10 */ stfs f0, 0x10(r1) -/* 8054243C D3 E1 00 14 */ stfs f31, 0x14(r1) -/* 80542440 C0 04 00 08 */ lfs f0, 8(r4) -/* 80542444 D0 01 00 18 */ stfs f0, 0x18(r1) -/* 80542448 38 60 01 0F */ li r3, 0x10f -/* 8054244C 88 84 00 00 */ lbz r4, 0(r4) -/* 80542450 38 A1 00 10 */ addi r5, r1, 0x10 -/* 80542454 88 1D 04 E2 */ lbz r0, 0x4e2(r29) -/* 80542458 7C 06 07 74 */ extsb r6, r0 -/* 8054245C 38 E0 00 00 */ li r7, 0 -/* 80542460 39 00 00 00 */ li r8, 0 -/* 80542464 39 20 FF FF */ li r9, -1 -/* 80542468 4B AD 79 31 */ bl fopAcM_create__FsUlPC4cXyziPC5csXyzPC4cXyzSc -/* 8054246C 3B 7B 00 01 */ addi r27, r27, 1 -/* 80542470 2C 1B 00 0C */ cmpwi r27, 0xc -/* 80542474 3B 9C 00 0C */ addi r28, r28, 0xc -/* 80542478 41 80 FF B4 */ blt lbl_8054242C -lbl_8054247C: -/* 8054247C 38 60 00 05 */ li r3, 5 -lbl_80542480: -/* 80542480 E3 E1 00 78 */ psq_l f31, 120(r1), 0, 0 /* qr0 */ -/* 80542484 CB E1 00 70 */ lfd f31, 0x70(r1) -/* 80542488 E3 C1 00 68 */ psq_l f30, 104(r1), 0, 0 /* qr0 */ -/* 8054248C CB C1 00 60 */ lfd f30, 0x60(r1) -/* 80542490 E3 A1 00 58 */ psq_l f29, 88(r1), 0, 0 /* qr0 */ -/* 80542494 CB A1 00 50 */ lfd f29, 0x50(r1) -/* 80542498 E3 81 00 48 */ psq_l f28, 72(r1), 0, 0 /* qr0 */ -/* 8054249C CB 81 00 40 */ lfd f28, 0x40(r1) -/* 805424A0 39 61 00 40 */ addi r11, r1, 0x40 -/* 805424A4 4B E1 FD 7D */ bl _restgpr_27 -/* 805424A8 80 01 00 84 */ lwz r0, 0x84(r1) -/* 805424AC 7C 08 03 A6 */ mtlr r0 -/* 805424B0 38 21 00 80 */ addi r1, r1, 0x80 -/* 805424B4 4E 80 00 20 */ blr diff --git a/asm/rel/d/a/npc/d_a_npc_fish/d_a_npc_fish/fish_set__FP10fopAc_ac_cP11fish_data_s.s b/asm/rel/d/a/npc/d_a_npc_fish/d_a_npc_fish/fish_set__FP10fopAc_ac_cP11fish_data_s.s deleted file mode 100644 index e76f6d27606..00000000000 --- a/asm/rel/d/a/npc/d_a_npc_fish/d_a_npc_fish/fish_set__FP10fopAc_ac_cP11fish_data_s.s +++ /dev/null @@ -1,51 +0,0 @@ -lbl_80542198: -/* 80542198 94 21 FF D0 */ stwu r1, -0x30(r1) -/* 8054219C 7C 08 02 A6 */ mflr r0 -/* 805421A0 90 01 00 34 */ stw r0, 0x34(r1) -/* 805421A4 39 61 00 30 */ addi r11, r1, 0x30 -/* 805421A8 4B E2 00 31 */ bl _savegpr_28 -/* 805421AC 7C 7C 1B 78 */ mr r28, r3 -/* 805421B0 7C 9D 23 78 */ mr r29, r4 -/* 805421B4 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 805421B8 3B E3 CA 54 */ addi r31, r3, g_env_light@l /* 0x8042CA54@l */ -/* 805421BC 3B C0 00 00 */ li r30, 0 -lbl_805421C0: -/* 805421C0 80 1D 00 00 */ lwz r0, 0(r29) -/* 805421C4 2C 00 00 00 */ cmpwi r0, 0 -/* 805421C8 41 80 00 74 */ blt lbl_8054223C -/* 805421CC 7C 04 03 78 */ mr r4, r0 -/* 805421D0 C0 1D 00 04 */ lfs f0, 4(r29) -/* 805421D4 D0 01 00 08 */ stfs f0, 8(r1) -/* 805421D8 C0 1D 00 08 */ lfs f0, 8(r29) -/* 805421DC D0 01 00 0C */ stfs f0, 0xc(r1) -/* 805421E0 C0 1D 00 0C */ lfs f0, 0xc(r29) -/* 805421E4 D0 01 00 10 */ stfs f0, 0x10(r1) -/* 805421E8 28 00 00 01 */ cmplwi r0, 1 -/* 805421EC 40 82 00 14 */ bne lbl_80542200 -/* 805421F0 88 1F 12 FE */ lbz r0, 0x12fe(r31) -/* 805421F4 28 00 00 02 */ cmplwi r0, 2 -/* 805421F8 41 82 00 08 */ beq lbl_80542200 -/* 805421FC 38 80 00 02 */ li r4, 2 -lbl_80542200: -/* 80542200 88 1D 00 10 */ lbz r0, 0x10(r29) -/* 80542204 54 00 40 2E */ slwi r0, r0, 8 -/* 80542208 7C 84 03 78 */ or r4, r4, r0 -/* 8054220C 38 60 01 36 */ li r3, 0x136 -/* 80542210 38 A1 00 08 */ addi r5, r1, 8 -/* 80542214 88 1C 04 E2 */ lbz r0, 0x4e2(r28) -/* 80542218 7C 06 07 74 */ extsb r6, r0 -/* 8054221C 38 E0 00 00 */ li r7, 0 -/* 80542220 39 00 00 00 */ li r8, 0 -/* 80542224 39 20 FF FF */ li r9, -1 -/* 80542228 4B AD 7B 71 */ bl fopAcM_create__FsUlPC4cXyziPC5csXyzPC4cXyzSc -/* 8054222C 3B DE 00 01 */ addi r30, r30, 1 -/* 80542230 2C 1E 00 64 */ cmpwi r30, 0x64 -/* 80542234 3B BD 00 14 */ addi r29, r29, 0x14 -/* 80542238 41 80 FF 88 */ blt lbl_805421C0 -lbl_8054223C: -/* 8054223C 39 61 00 30 */ addi r11, r1, 0x30 -/* 80542240 4B E1 FF E5 */ bl _restgpr_28 -/* 80542244 80 01 00 34 */ lwz r0, 0x34(r1) -/* 80542248 7C 08 03 A6 */ mtlr r0 -/* 8054224C 38 21 00 30 */ addi r1, r1, 0x30 -/* 80542250 4E 80 00 20 */ blr diff --git a/include/rel/d/a/npc/d_a_npc_fish/d_a_npc_fish.h b/include/rel/d/a/npc/d_a_npc_fish/d_a_npc_fish.h index 409eae95084..b6967cfc028 100644 --- a/include/rel/d/a/npc/d_a_npc_fish/d_a_npc_fish.h +++ b/include/rel/d/a/npc/d_a_npc_fish/d_a_npc_fish.h @@ -2,5 +2,16 @@ #define D_A_NPC_FISH_H #include "dolphin/types.h" +#include "f_op/f_op_actor_mng.h" + +class npc_fish_class : public fopAc_ac_c { + /* 0x568 */ u8 field_0x568[0x5b4 - 0x568]; // unused in TU, unsure of type +}; + +struct fish_data_s { + /* 0x00 */ int param; + /* 0x04 */ Vec pos; + /* 0x10 */ u8 field_0x10; +}; #endif /* D_A_NPC_FISH_H */ diff --git a/rel/d/a/npc/d_a_npc_fish/d_a_npc_fish.cpp b/rel/d/a/npc/d_a_npc_fish/d_a_npc_fish.cpp index bcd0ca23824..2bad1485124 100644 --- a/rel/d/a/npc/d_a_npc_fish/d_a_npc_fish.cpp +++ b/rel/d/a/npc/d_a_npc_fish/d_a_npc_fish.cpp @@ -1,163 +1,50 @@ -// -// Generated By: dol2asm // Translation Unit: d_a_npc_fish -// #include "rel/d/a/npc/d_a_npc_fish/d_a_npc_fish.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "SSystem/SComponent/c_math.h" +#include "d/com/d_com_inf_game.h" +#include "d/d_procname.h" #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct npc_fish_class {}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); -}; - -struct fish_data_s {}; - -struct dSv_event_flag_c { - static u8 saveBitLabels[1644 + 4 /* padding */]; -}; - -struct dSv_event_c { - /* 800349BC */ void isEventBit(u16) const; -}; - -struct csXyz { - /* 802673F4 */ csXyz(s16, s16, s16); -}; - -struct cXyz {}; - -// -// Forward References: -// - -extern "C" static bool daNpc_Fish_Draw__FP14npc_fish_class(); -extern "C" static bool daNpc_Fish_Execute__FP14npc_fish_class(); -extern "C" static bool daNpc_Fish_IsDelete__FP14npc_fish_class(); -extern "C" static bool daNpc_Fish_Delete__FP14npc_fish_class(); -extern "C" static void fish_set__FP10fopAc_ac_cP11fish_data_s(); -extern "C" static void daNpc_Fish_Create__FP10fopAc_ac_c(); -extern "C" extern char const* const d_a_npc_fish__stringBase0; -extern "C" extern void* g_profile_NPC_FISH[12]; - -// -// External References: -// - -extern "C" void __ct__10fopAc_ac_cFv(); -extern "C" void fopAcM_create__FsUlPC4cXyziPC5csXyzPC4cXyzSc(); -extern "C" void isEventBit__11dSv_event_cCFUs(); -extern "C" void __ct__5csXyzFsss(); -extern "C" void cM_rndFX__Ff(); -extern "C" void _savegpr_27(); -extern "C" void _savegpr_28(); -extern "C" void _restgpr_27(); -extern "C" void _restgpr_28(); -extern "C" void strcmp(); -extern "C" extern void* g_fopAc_Method[8]; -extern "C" extern void* g_fpcLf_Method[5 + 1 /* padding */]; -extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; -extern "C" extern u8 g_env_light[4880]; - -// -// Declarations: -// - -/* 80542178-80542180 000078 0008+00 1/0 0/0 0/0 .text daNpc_Fish_Draw__FP14npc_fish_class - */ -static bool daNpc_Fish_Draw(npc_fish_class* param_0) { - return true; +/* 80542178-80542180 000078 0008+00 1/0 0/0 0/0 .text daNpc_Fish_Draw__FP14npc_fish_class */ +static int daNpc_Fish_Draw(npc_fish_class* i_this) { + return 1; } /* 80542180-80542188 000080 0008+00 1/0 0/0 0/0 .text daNpc_Fish_Execute__FP14npc_fish_class */ -static bool daNpc_Fish_Execute(npc_fish_class* param_0) { - return true; +static int daNpc_Fish_Execute(npc_fish_class* i_this) { + return 1; } /* 80542188-80542190 000088 0008+00 1/0 0/0 0/0 .text daNpc_Fish_IsDelete__FP14npc_fish_class */ -static bool daNpc_Fish_IsDelete(npc_fish_class* param_0) { - return true; +static int daNpc_Fish_IsDelete(npc_fish_class* i_this) { + return 1; } /* 80542190-80542198 000090 0008+00 1/0 0/0 0/0 .text daNpc_Fish_Delete__FP14npc_fish_class */ -static bool daNpc_Fish_Delete(npc_fish_class* param_0) { - return true; +static int daNpc_Fish_Delete(npc_fish_class* i_this) { + return 1; } /* 80542198-80542254 000098 00BC+00 1/1 0/0 0/0 .text fish_set__FP10fopAc_ac_cP11fish_data_s */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void fish_set(fopAc_ac_c* param_0, fish_data_s* param_1) { - nofralloc -#include "asm/rel/d/a/npc/d_a_npc_fish/d_a_npc_fish/fish_set__FP10fopAc_ac_cP11fish_data_s.s" +static void fish_set(fopAc_ac_c* i_this, fish_data_s* data) { + dScnKy_env_light_c* envLight = i_dKy_getEnvlight(); + cXyz pos; + for (int i = 0; i < 100; i++, data++) { + if (data->param < 0) { + return; + } + u32 param = data->param; + pos = data->pos; + if ((param == 1u) && envLight->field_0x12fe != 2) { + param = 2; + } + param |= data->field_0x10 << 8; + fopAcM_create(PROC_MG_FISH, param, &pos, fopAcM_GetRoomNo(i_this), NULL, NULL, -1); + } } -#pragma pop - -/* ############################################################################################## */ -/* 805424C0-805424C4 000000 0004+00 1/1 0/0 0/0 .rodata @3787 */ -SECTION_RODATA static f32 const lit_3787 = -3382.0f; -COMPILER_STRIP_GATE(0x805424C0, &lit_3787); - -/* 805424C4-805424C8 000004 0004+00 0/1 0/0 0/0 .rodata @3788 */ -#pragma push -#pragma force_active on -SECTION_RODATA static u8 const lit_3788[4] = { - 0x00, - 0x00, - 0x00, - 0x00, -}; -COMPILER_STRIP_GATE(0x805424C4, &lit_3788); -#pragma pop - -/* 805424C8-805424CC 000008 0004+00 0/1 0/0 0/0 .rodata @3789 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3789 = -7473.0f; -COMPILER_STRIP_GATE(0x805424C8, &lit_3789); -#pragma pop - -/* 805424CC-805424D0 00000C 0004+00 0/1 0/0 0/0 .rodata @3790 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3790 = -7865.0f; -COMPILER_STRIP_GATE(0x805424CC, &lit_3790); -#pragma pop - -/* 805424D0-805424D4 000010 0004+00 0/1 0/0 0/0 .rodata @3791 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3791 = 700.0f; -COMPILER_STRIP_GATE(0x805424D0, &lit_3791); -#pragma pop - -/* 805424D4-805424D8 000014 0004+00 0/1 0/0 0/0 .rodata @3792 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3792 = -2936.0f; -COMPILER_STRIP_GATE(0x805424D4, &lit_3792); -#pragma pop - -/* 805424D8-805424DC 000018 0004+00 0/1 0/0 0/0 .rodata @3793 */ -#pragma push -#pragma force_active on -SECTION_RODATA static f32 const lit_3793 = -180.0f; -COMPILER_STRIP_GATE(0x805424D8, &lit_3793); -#pragma pop - -/* 805424DC-805424DC 00001C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ -#pragma push -#pragma force_active on -SECTION_DEAD static char const* const stringBase_805424DC = "F_SP127"; -#pragma pop /* 805424E4-805424F0 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */ SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { @@ -178,199 +65,145 @@ SECTION_DATA static u32 lit_1787[1 + 4 /* padding */] = { #pragma pop /* 80542504-805428D8 000020 03D4+00 0/1 0/0 0/0 .data fish_d127_S */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 fish_d127_S[980] = { - 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, - 0x45, 0xBD, 0x80, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0x44, 0x8E, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x06, 0x45, 0xC0, 0x98, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0x44, 0x63, 0xC0, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x45, 0xC3, 0x70, 0x00, 0xC2, 0xA0, 0x00, 0x00, - 0x44, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x45, 0xC7, 0x08, 0x00, - 0xC2, 0xA0, 0x00, 0x00, 0x44, 0x18, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, - 0x45, 0xC9, 0xE0, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0x43, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x09, 0x45, 0xC5, 0x60, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0x43, 0x18, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x45, 0xBD, 0x18, 0x00, 0xC2, 0xA0, 0x00, 0x00, - 0x43, 0x26, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x45, 0xB6, 0xE8, 0x00, - 0xC2, 0xA0, 0x00, 0x00, 0x43, 0x8A, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, - 0x45, 0xB3, 0xF8, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0x43, 0xFD, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x05, 0x45, 0xAC, 0x90, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0x44, 0x05, 0x40, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xC5, 0x75, 0xB0, 0x00, 0xC2, 0xA0, 0x00, 0x00, - 0x45, 0x3C, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xC5, 0x53, 0x50, 0x00, - 0xC2, 0xA0, 0x00, 0x00, 0x45, 0x59, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, - 0xC5, 0x3B, 0x70, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0x45, 0x61, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x06, 0xC5, 0x26, 0xC0, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0x45, 0x7F, 0x80, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xC5, 0x1E, 0x00, 0x00, 0xC2, 0xA0, 0x00, 0x00, - 0x45, 0x91, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xC5, 0x13, 0xB0, 0x00, - 0xC2, 0xA0, 0x00, 0x00, 0x45, 0x9A, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, - 0xC4, 0xEB, 0x20, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0x45, 0xA1, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x05, 0xC4, 0xA8, 0x00, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0x45, 0xA1, 0x50, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xC4, 0x3E, 0x00, 0x00, 0xC2, 0xA0, 0x00, 0x00, - 0x45, 0x9E, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xC2, 0x5C, 0x00, 0x00, - 0xC2, 0xA0, 0x00, 0x00, 0x45, 0x9E, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, - 0x44, 0x2E, 0x40, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0x45, 0x9A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x05, 0x45, 0x92, 0xB0, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0x44, 0xE7, 0x80, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x45, 0x85, 0xA0, 0x00, 0xC2, 0xA0, 0x00, 0x00, - 0x44, 0xBB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x45, 0x8E, 0x40, 0x00, - 0xC2, 0xA0, 0x00, 0x00, 0x44, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, - 0x45, 0x9B, 0x98, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0x43, 0xB7, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x05, 0x44, 0x89, 0x00, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0x45, 0x95, 0x28, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x44, 0xD2, 0x20, 0x00, 0xC2, 0xA0, 0x00, 0x00, - 0x45, 0x93, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x45, 0x1C, 0x20, 0x00, - 0xC2, 0xA0, 0x00, 0x00, 0x45, 0x97, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, - 0x45, 0x81, 0x58, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0x45, 0xA1, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x05, 0x45, 0x8C, 0x08, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0x45, 0x02, 0xA0, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x45, 0x80, 0x48, 0x00, 0xC2, 0xA0, 0x00, 0x00, - 0x44, 0xCB, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x45, 0x61, 0xF0, 0x00, - 0xC2, 0xA0, 0x00, 0x00, 0x44, 0x84, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, - 0x45, 0x46, 0x50, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0xC3, 0x57, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x06, 0x45, 0x14, 0x80, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0xC4, 0x2B, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x44, 0xEE, 0xE0, 0x00, 0xC2, 0xA0, 0x00, 0x00, - 0xC4, 0x67, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x44, 0xBA, 0x20, 0x00, - 0xC2, 0xA0, 0x00, 0x00, 0xC4, 0xF2, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, - 0x44, 0xC4, 0x20, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0xC5, 0x2B, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x08, 0x44, 0xF4, 0x40, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0xC5, 0x66, 0xA0, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x45, 0x3C, 0x30, 0x00, 0xC2, 0xA0, 0x00, 0x00, - 0xC5, 0x8D, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0xC5, 0x8F, 0xC0, 0x00, - 0xC2, 0xA0, 0x00, 0x00, 0x45, 0x41, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, - 0x45, 0x62, 0x00, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0xC5, 0x94, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, +static fish_data_s fish_d127_S[49] = { + {20, {0.f, 0.f, 0.f}, 0}, {22, {0.f, 0.f, 0.f}, 0}, + {21, {0.f, 0.f, 0.f}, 0}, {24, {0.f, 0.f, 0.f}, 0}, + {25, {0.f, 0.f, 0.f}, 0}, {26, {0.f, 0.f, 0.f}, 0}, + {27, {0.f, 0.f, 0.f}, 0}, {6, {6064.f, -80.0f, 1138.f}, 0}, + {6, {6163.f, -80.f, 911.f}, 0}, {6, {6254.f, -80.f, 769.f}, 0}, + {9, {6369.f, -80.f, 611.f}, 0}, {9, {6460.f, -80.f, 372.f}, 0}, + {9, {6316.f, -80.f, 152.f}, 0}, {8, {6051.f, -80.f, 166.f}, 0}, + {5, {5853.f, -80.f, 277.f}, 0}, {5, {5759.f, -80.f, 506.f}, 0}, + {5, {5522.f, -80.f, 533.f}, 0}, {6, {-3931.f, -80.f, 3020.f}, 0}, + {5, {-3381.f, -80.f, 3473.f}, 0}, {5, {-2999.f, -80.f, 3608.f}, 0}, + {6, {-2668.f, -80.f, 4088.f}, 0}, {5, {-2528.f, -80.f, 4649.f}, 0}, + {5, {-2363.f, -80.f, 4953.f}, 0}, {6, {-1881.f, -80.f, 5180.f}, 0}, + {5, {-1344.f, -80.f, 5162.f}, 0}, {5, {-760.f, -80.f, 5062.f}, 0}, + {6, {-55.f, -80.f, 5064.f}, 0}, {5, {697.f, -80.f, 4958.f}, 0}, + {5, {4694.f, -80.f, 1852.f}, 0}, {5, {4276.f, -80.f, 1496.f}, 0}, + {5, {4552.f, -80.f, 1848.f}, 0}, {6, {4979.f, -80.f, 367.f}, 0}, + {5, {1096.f, -80.f, 4773.f}, 0}, {6, {1681.f, -80.f, 4705.f}, 0}, + {8, {2498.f, -80.f, 4834.f}, 0}, {5, {4139.f, -80.f, 5178.f}, 0}, + {5, {4481.f, -80.f, 2090.f}, 0}, {6, {4105.f, -80.f, 1628.f}, 0}, + {5, {3615.f, -80.f, 1058.f}, 0}, {8, {3173.f, -80.f, -215.f}, 0}, + {6, {2376.f, -80.f, -684.f}, 0}, {5, {1911.f, -80.f, -927.f}, 0}, + {6, {1489.f, -80.f, -1940.f}, 0}, {9, {1569.f, -80.f, -2745.f}, 0}, + {8, {1954.f, -80.f, -3690.f}, 0}, {9, {3011.f, -80.f, -4520.f}, 0}, + {8, {-4600.f, -80.f, 3100.f}, 0}, {7, {3616.f, -80.f, -4739.f}, 0}, + {-1, {0.f, 0.f, 0.f}, 0}, }; -#pragma pop /* 805428D8-80542D38 0003F4 0460+00 0/1 0/0 0/0 .data fish_d127 */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 fish_d127[1120] = { - 0x00, 0x00, 0x00, 0x00, 0xC5, 0x8F, 0xE8, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0x45, 0x5C, 0x60, 0x00, - 0x2D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC5, 0xA5, 0xA0, 0x00, 0xC2, 0xA0, 0x00, 0x00, - 0x45, 0x33, 0xB0, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC5, 0xDF, 0xD8, 0x00, - 0xC2, 0xA0, 0x00, 0x00, 0x45, 0x81, 0x60, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xC5, 0xFF, 0x08, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0x45, 0x84, 0x58, 0x00, 0x2C, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xC6, 0x11, 0xE8, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0x45, 0x20, 0xD0, 0x00, - 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0x0B, 0xD4, 0x00, 0xC2, 0xA0, 0x00, 0x00, - 0xC4, 0x89, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC5, 0xDF, 0x88, 0x00, - 0xC2, 0xA0, 0x00, 0x00, 0xC4, 0x74, 0xC0, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xC5, 0xE7, 0x70, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0xC4, 0x5C, 0x40, 0x00, 0x33, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xC5, 0xBF, 0xD0, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0xC3, 0x98, 0x80, 0x00, - 0x2D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC5, 0xBE, 0xA0, 0x00, 0xC2, 0xA0, 0x00, 0x00, - 0xC5, 0x34, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC5, 0xAD, 0x28, 0x00, - 0xC2, 0xA0, 0x00, 0x00, 0xC4, 0x23, 0xC0, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xC5, 0xA9, 0x68, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0xC4, 0xA5, 0xC0, 0x00, 0x2E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xC5, 0x78, 0xE0, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0xC5, 0x30, 0xA0, 0x00, - 0x2B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xC5, 0x5E, 0xF0, 0x00, 0xC2, 0xA0, 0x00, 0x00, - 0xC5, 0x96, 0xE0, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC5, 0x85, 0xF0, 0x00, - 0xC2, 0xA0, 0x00, 0x00, 0xC5, 0xCB, 0x60, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, - 0xC5, 0x80, 0xF0, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0xC6, 0x00, 0xCC, 0x00, 0x47, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xC5, 0x29, 0xD0, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0xC5, 0xFA, 0x28, 0x00, - 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x87, 0x80, 0x00, 0xC2, 0xA0, 0x00, 0x00, - 0xC5, 0xF9, 0x18, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xC5, 0x05, 0x60, 0x00, - 0xC2, 0xA0, 0x00, 0x00, 0xC6, 0x03, 0xB8, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, - 0xC4, 0x85, 0x00, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0xC5, 0xBE, 0x30, 0x00, 0x3E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x02, 0x43, 0xA4, 0x80, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0xC5, 0xAB, 0xE0, 0x00, - 0x42, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0xD4, 0x40, 0x00, 0xC2, 0xA0, 0x00, 0x00, - 0xC5, 0xC0, 0xB0, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x45, 0x1E, 0x60, 0x00, - 0xC2, 0xA0, 0x00, 0x00, 0xC5, 0x80, 0x48, 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x44, 0xE5, 0x80, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0xC5, 0x47, 0xB0, 0x00, 0x2E, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x44, 0xD0, 0x80, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0xC5, 0x00, 0xD0, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0xFE, 0xC0, 0x00, 0xC2, 0xA0, 0x00, 0x00, - 0xC4, 0x77, 0x40, 0x00, 0x2D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x58, 0xD0, 0x00, - 0xC2, 0xA0, 0x00, 0x00, 0xC3, 0x18, 0x00, 0x00, 0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xC4, 0x5D, 0x40, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0x44, 0xAF, 0x40, 0x00, 0x2B, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xC3, 0x69, 0x00, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0x44, 0xBC, 0x00, 0x00, - 0x2D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x0D, 0x00, 0x00, 0xC2, 0xA0, 0x00, 0x00, - 0x44, 0xB0, 0xE0, 0x00, 0x2C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC2, 0xAA, 0x00, 0x00, - 0xC2, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, - 0xC3, 0xFA, 0x00, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0xC3, 0x48, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xC4, 0x6D, 0x80, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0x43, 0xE1, 0x00, 0x00, - 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0xED, 0x40, 0x00, 0xC2, 0xA0, 0x00, 0x00, - 0x43, 0xEB, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0xA0, 0xA0, 0x00, - 0xC2, 0xA0, 0x00, 0x00, 0xC3, 0x53, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, - 0xC4, 0x8F, 0x40, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0xC4, 0x65, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xC5, 0x23, 0x40, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0xC4, 0x9B, 0x60, 0x00, - 0x2F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC5, 0x27, 0xC0, 0x00, 0xC2, 0xA0, 0x00, 0x00, - 0xC2, 0xE8, 0x00, 0x00, 0x2E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC5, 0x1A, 0xF0, 0x00, - 0xC2, 0xA0, 0x00, 0x00, 0x45, 0xA5, 0xC0, 0x00, 0x27, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xC4, 0xDA, 0x00, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0x45, 0xAC, 0x28, 0x00, 0x26, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xC4, 0x56, 0xC0, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0x45, 0xAA, 0xF0, 0x00, - 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x72, 0xC0, 0x00, 0xC2, 0xA0, 0x00, 0x00, - 0x45, 0xA9, 0x68, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0xEA, 0xA0, 0x00, - 0xC2, 0xA0, 0x00, 0x00, 0x45, 0x98, 0x70, 0x00, 0x2A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x45, 0x6C, 0x80, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0x45, 0xAE, 0x50, 0x00, 0x27, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x45, 0xA8, 0x98, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0x45, 0x0C, 0x70, 0x00, - 0x25, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x83, 0x88, 0x00, 0xC2, 0xA0, 0x00, 0x00, - 0x44, 0x78, 0x80, 0x00, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xC5, 0x43, 0x90, 0x00, - 0xC2, 0xA0, 0x00, 0x00, 0x44, 0xC1, 0x80, 0x00, 0x3D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, - 0xC5, 0x85, 0xD0, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0xC4, 0xAC, 0xA0, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x03, 0xC4, 0xA4, 0xA0, 0x00, 0xC2, 0xA0, 0x00, 0x00, 0x45, 0x1D, 0x30, 0x00, - 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0x12, 0xBC, 0x00, 0xC4, 0x1F, 0x40, 0x00, - 0x43, 0xC1, 0x00, 0x00, 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC6, 0x0D, 0x84, 0x00, - 0xC4, 0x28, 0xC0, 0x00, 0xC4, 0x40, 0x80, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xC5, 0xAD, 0xD0, 0x00, 0xC4, 0x28, 0xC0, 0x00, 0xC5, 0x04, 0x30, 0x00, 0x35, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xC5, 0x6F, 0xD0, 0x00, 0xC4, 0x08, 0x80, 0x00, 0xC5, 0x33, 0x70, 0x00, - 0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC3, 0xA4, 0x00, 0x00, 0xC4, 0x6E, 0xC0, 0x00, - 0x44, 0xC8, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC5, 0x28, 0x10, 0x00, - 0xC4, 0x61, 0x40, 0x00, 0xC2, 0xFC, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +static fish_data_s fish_d127[56] = { + {0, {-4605.0f, -80.f, 3526.f}, 45}, {0, {-5300.0f, -80.0f, 2875.0f}, 46}, + {0, {-7163.0f, -80.0f, 4140.0f}, 47}, {0, {-8161.0f, -80.0f, 4235.0f}, 44}, + {0, {-9338.0f, -80.0f, 2573.0f}, 43}, {0, {-8949.0f, -80.0f, -1096.0f}, 50}, + {0, {-7153.0f, -80.0f, -979.0f}, 52}, {0, {-7406.0f, -80.0f, -881.0f}, 51}, + {0, {-6138.0f, -80.0f, -305.0f}, 45}, {0, {-6100.0f, -80.0f, -2880.0f}, 53}, + {0, {-5541.0f, -80.0f, -655.0f}, 51}, {0, {-5421.0f, -80.0f, -1326.0f}, 46}, + {0, {-3982.0f, -80.0f, -2826.0f}, 43}, {2, {-3567.0f, -80.0f, -4828.0f}, 64}, + {0, {-4286.0f, -80.0f, -6508.0f}, 47}, {1, {-4126.0f, -80.0f, -8243.0f}, 71}, + {0, {-2717.0f, -80.0f, -8005.0f}, 49}, {0, {-1084.0f, -80.0f, -7971.0f}, 52}, + {2, {-2134.0f, -80.0f, -8430.0f}, 63}, {2, {-1064.0f, -80.0f, -6086.0f}, 62}, + {2, {329.0f, -80.0f, -5500.0f}, 66}, {0, {1698.0f, -80.0f, -6166.0f}, 46}, + {2, {2534.0f, -80.0f, -4105.0f}, 65}, {0, {1836.0f, -80.0f, -3195.0f}, 46}, + {0, {1668.0f, -80.0f, -2061.0f}, 48}, {0, {2038.0f, -80.0f, -989.0f}, 45}, + {0, {3469.0f, -80.0f, -152.0f}, 49}, {0, {-885.0f, -80.0f, 1402.0f}, 43}, + {0, {-233.0f, -80.0f, 1504.0f}, 45}, {0, {564.0f, -80.0f, 1415.0f}, 44}, + {0, {-85.0f, -80.0f, 0.0f}, 46}, {2, {-500.0f, -80.0f, -200.0f}, 63}, + {0, {-950.0f, -80.0f, 450.0f}, 48}, {0, {-1898.0f, -80.0f, 470.0f}, 46}, + {0, {-1285.0f, -80.0f, -211.0f}, 46}, {2, {-1146.0f, -80.0f, -916.0f}, 59}, + {0, {-2612.0f, -80.0f, -1243.0f}, 47}, {0, {-2684.0f, -80.0f, -116.0f}, 46}, + {0, {-2479.0f, -80.0f, 5304.0f}, 39}, {0, {-1744.0f, -80.0f, 5509.0f}, 38}, + {0, {-859.0f, -80.0f, 5470.0f}, 41}, {0, {971.0f, -80.0f, 5421.0f}, 37}, + {0, {1877.0f, -80.0f, 4878.0f}, 42}, {0, {3784.0f, -80.0f, 5578.0f}, 39}, + {0, {5395.0f, -80.0f, 2247.0f}, 37}, {0, {4209.0f, -80.0f, 994.0f}, 41}, + {3, {-3129.0f, -80.0f, 1548.0f}, 61}, {3, {-4282.0f, -80.0f, -1381.0f}, 65}, + {3, {-1317.0f, -80.0f, 2515.0f}, 63}, {0, {-9391.0f, -637.0f, 386.0f}, 51}, + {0, {-9057.0f, -675.0f, -770.0f}, 52}, {0, {-5562.0f, -675.0f, -2115.0f}, 53}, + {0, {-3837.0f, -546.0f, -2871.0f}, 51}, {0, {-328.0f, -955.0f, 1600.0f}, 52}, + {0, {-2689.0f, -901.0f, -126.0f}, 53}, {-1, {0.0f, 0.0f, 0.0f}, 0}}; + +struct fish_pos { + u8 param; + f32 pos_x; + f32 pos_z; }; -#pragma pop /* 80542D38-80542DC8 000854 0090+00 0/1 0/0 0/0 .data lf_pos */ -#pragma push -#pragma force_active on -SECTION_DATA static u8 lf_pos[144] = { - 0x0A, 0x00, 0x00, 0x00, 0xC5, 0x22, 0xA0, 0x00, 0x45, 0x9C, 0x40, 0x00, 0x0A, 0x00, 0x00, 0x00, - 0xC4, 0x57, 0xC0, 0x00, 0x45, 0x9F, 0x38, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x44, 0x0D, 0x80, 0x00, - 0x45, 0x9C, 0xB8, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x45, 0x60, 0xA0, 0x00, 0x45, 0x93, 0xE0, 0x00, - 0x0A, 0x00, 0x00, 0x00, 0x45, 0xBC, 0x20, 0x00, 0x43, 0xD5, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, - 0x45, 0x30, 0x90, 0x00, 0x42, 0x9A, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x45, 0x54, 0x40, 0x00, - 0x45, 0x9D, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x44, 0xF5, 0x40, 0x00, 0xC5, 0xB4, 0xE8, 0x00, - 0x10, 0x00, 0x00, 0x00, 0xC4, 0xBB, 0x80, 0x00, 0x44, 0x26, 0x40, 0x00, 0x10, 0x00, 0x00, 0x00, - 0xC5, 0xBA, 0x00, 0x00, 0xC5, 0x2C, 0x80, 0x00, 0x10, 0x00, 0x00, 0x00, 0xC5, 0xE3, 0x08, 0x00, - 0xC4, 0x2F, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0xC6, 0x0B, 0x84, 0x00, 0xC4, 0x1D, 0x80, 0x00, +static fish_pos lf_pos[12] = { + {10, -2602.f, 5000.f}, {10, -863.f, 5095.f}, {10, 566.f, 5015.f}, {10, 3594.f, 4732.f}, + {10, 6020.f, 426.f}, {10, 2825.f, 77.f}, {10, 3396.f, 5024.f}, {10, 1962.f, -5789.f}, + {16, -1500.f, 665.f}, {16, -5952.f, -2760.f}, {16, -7265.f, -700.f}, {16, -8929.f, -630.f}, }; -#pragma pop -/* 80542254-805424B8 000154 0264+00 1/0 0/0 0/0 .text daNpc_Fish_Create__FP10fopAc_ac_c - */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void daNpc_Fish_Create(fopAc_ac_c* param_0) { - nofralloc -#include "asm/rel/d/a/npc/d_a_npc_fish/d_a_npc_fish/daNpc_Fish_Create__FP10fopAc_ac_c.s" +/* 80542254-805424B8 000154 0264+00 1/0 0/0 0/0 .text daNpc_Fish_Create__FP10fopAc_ac_c */ +static int daNpc_Fish_Create(fopAc_ac_c* i_this) { + cXyz pos; + if (!fopAcM_CheckCondition(i_this, 8)) { + new (i_this) npc_fish_class(); + fopAcM_OnCondition(i_this, 8); + } + if (strcmp(dComIfGp_getStartStageName(), "F_SP127")) { + return 5; + } else { + dScnKy_env_light_c* envLight = i_dKy_getEnvlight(); + s32 param = 0; + if (envLight->field_0x12fe == 2) { + param = 160; + } else if (envLight->field_0x12fe == 3) { + param = 64; + } + if (param != 0) { + pos.set(-3382.0f, 0.0f, -7473.0f); + fopAcM_create(PROC_OBJ_LP, 0xFF010E00 | param, &pos, fopAcM_GetRoomNo(i_this), NULL, + NULL, -1); + } + } + if (g_env_light.field_0x12fe == 2) { + for (int i = 0; i < 4; i++) { + pos.set(cM_rndFX(700.0f) + -2936.0f, 0.0f, cM_rndFX(700.0f) + -7865.0f); + csXyz angle(0, 0, -1); + fopAcM_create(PROC_FR, 0, &pos, fopAcM_GetRoomNo(i_this), &angle, NULL, -1); + } + } + if (i_dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[463])) { + fish_set(i_this, fish_d127); + } else { + fish_set(i_this, fish_d127_S); + for (int i = 0; i < 12; i++) { + pos.set(lf_pos[i].pos_x, -180.0f, lf_pos[i].pos_z); + fopAcM_create(PROC_NPC_LF, lf_pos[i].param, &pos, fopAcM_GetRoomNo(i_this), NULL, NULL, + -1); + } + } + return 5; } -#pragma pop /* ############################################################################################## */ /* 80542DC8-80542DE8 -00001 0020+00 1/0 0/0 0/0 .data l_daNpc_Fish_Method */ -SECTION_DATA static void* l_daNpc_Fish_Method[8] = { - (void*)daNpc_Fish_Create__FP10fopAc_ac_c, - (void*)daNpc_Fish_Delete__FP14npc_fish_class, - (void*)daNpc_Fish_Execute__FP14npc_fish_class, - (void*)daNpc_Fish_IsDelete__FP14npc_fish_class, - (void*)daNpc_Fish_Draw__FP14npc_fish_class, - (void*)NULL, - (void*)NULL, - (void*)NULL, +static actor_method_class l_daNpc_Fish_Method = { + (process_method_func)daNpc_Fish_Create, (process_method_func)daNpc_Fish_Delete, + (process_method_func)daNpc_Fish_Execute, (process_method_func)daNpc_Fish_IsDelete, + (process_method_func)daNpc_Fish_Draw, }; /* 80542DE8-80542E18 -00001 0030+00 0/0 0/0 1/0 .data g_profile_NPC_FISH */ -SECTION_DATA extern void* g_profile_NPC_FISH[12] = { - (void*)0xFFFFFFFD, (void*)0x0007FFFD, - (void*)0x01350000, (void*)&g_fpcLf_Method, - (void*)0x000005B4, (void*)NULL, - (void*)NULL, (void*)&g_fopAc_Method, - (void*)0x02CF0000, (void*)&l_daNpc_Fish_Method, - (void*)0x00040100, (void*)0x00060000, +extern actor_process_profile_definition g_profile_NPC_FISH = { + -3, + 7, + -3, + PROC_NPC_FISH, + &g_fpcLf_Method.mBase, + sizeof(npc_fish_class), + 0, + 0, + &g_fopAc_Method.base, + 719, + &l_daNpc_Fish_Method, + 0x40100, + 0, + 6, }; /* 805424DC-805424DC 00001C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */