From 016a5e683ba58e542b9f10d55d5c4f46beabb071 Mon Sep 17 00:00:00 2001 From: TakaRikka <38417346+TakaRikka@users.noreply.github.com> Date: Sat, 30 Sep 2023 20:53:18 -0700 Subject: [PATCH] d_kankyo work / d_particle_copoly OK (#1953) * d_kankyo work / d_particle_copoly OK * remove asm --- .../c_dylink/__dt__20DynamicModuleControlFv.s | 26 - .../d_kankyo/bgparts_activelight_init__Fv.s | 10 - asm/d/kankyo/d_kankyo/func_801A0340.s | 52 - .../__sinit_d_particle_copoly_cpp.s | 104 - ...Po_cFP4cXyzPC4cXyzPC12dKy_tevstr_cUlScff.s | 118 -- .../clearFourAllID__8dPaPoF_cFv.s | 20 - .../clearID__7dPaPo_cFPUlPUc.s | 10 - .../clearTwoAllID__8dPaPoT_cFv.s | 22 - .../d_particle_copoly/func_8005115C.s | 82 - .../d_particle_copoly/func_800512E8.s | 83 - .../getBackLeftEffType__8dPaPoF_cCFi.s | 4 - .../getBackLeftEmitter__8dPaPoF_cFii.s | 19 - .../getBackRightEffType__8dPaPoF_cCFi.s | 4 - .../getBackRightEmitter__8dPaPoF_cFii.s | 19 - .../getCenterEffType__7dPaPo_cCFi.s | 4 - .../getCenterEmitter__7dPaPo_cFii.s | 19 - .../getLeftEffType__8dPaPoT_cCFi.s | 4 - .../getLeftEmitter__8dPaPoT_cFii.s | 19 - .../getRightEffType__8dPaPoT_cCFi.s | 4 - .../getRightEmitter__8dPaPoT_cFii.s | 19 - .../init__7dPaPo_cFP9dBgS_Acchff.s | 11 - ...r_cPC4cXyzUlUlPC4cXyzPC5csXyzPC4cXyzScff.s | 81 - ...vstr_cPC4cXyzUlUlPC4cXyzPC5csXyzScPUcPUc.s | 110 - include/MSL_C/math.h | 1 + include/d/com/d_com_inf_game.h | 38 +- include/d/d_stage.h | 3 +- include/d/kankyo/d_kankyo.h | 46 +- include/d/kankyo/d_kankyo_data.h | 4 +- include/d/particle/d_particle_copoly.h | 79 +- include/m_Do/m_Do_graphic.h | 7 + rel/d/a/kytag/d_a_kytag06/d_a_kytag06.cpp | 18 +- src/d/a/d_a_alink.cpp | 10 - src/d/kankyo/d_kankyo.cpp | 1782 +++++++++++++---- src/d/kankyo/d_kankyo_data.cpp | 4 +- src/d/kankyo/d_kankyo_wether.cpp | 109 + src/d/particle/d_particle.cpp | 8 +- src/d/particle/d_particle_copoly.cpp | 767 +++---- src/d/particle/d_particle_name.cpp | 11 +- 38 files changed, 1885 insertions(+), 1846 deletions(-) delete mode 100644 asm/c/c_dylink/__dt__20DynamicModuleControlFv.s delete mode 100644 asm/d/kankyo/d_kankyo/bgparts_activelight_init__Fv.s delete mode 100644 asm/d/kankyo/d_kankyo/func_801A0340.s delete mode 100644 asm/d/particle/d_particle_copoly/__sinit_d_particle_copoly_cpp.s delete mode 100644 asm/d/particle/d_particle_copoly/checkWaterIn__7dPaPo_cFP4cXyzPC4cXyzPC12dKy_tevstr_cUlScff.s delete mode 100644 asm/d/particle/d_particle_copoly/clearFourAllID__8dPaPoF_cFv.s delete mode 100644 asm/d/particle/d_particle_copoly/clearID__7dPaPo_cFPUlPUc.s delete mode 100644 asm/d/particle/d_particle_copoly/clearTwoAllID__8dPaPoT_cFv.s delete mode 100644 asm/d/particle/d_particle_copoly/func_8005115C.s delete mode 100644 asm/d/particle/d_particle_copoly/func_800512E8.s delete mode 100644 asm/d/particle/d_particle_copoly/getBackLeftEffType__8dPaPoF_cCFi.s delete mode 100644 asm/d/particle/d_particle_copoly/getBackLeftEmitter__8dPaPoF_cFii.s delete mode 100644 asm/d/particle/d_particle_copoly/getBackRightEffType__8dPaPoF_cCFi.s delete mode 100644 asm/d/particle/d_particle_copoly/getBackRightEmitter__8dPaPoF_cFii.s delete mode 100644 asm/d/particle/d_particle_copoly/getCenterEffType__7dPaPo_cCFi.s delete mode 100644 asm/d/particle/d_particle_copoly/getCenterEmitter__7dPaPo_cFii.s delete mode 100644 asm/d/particle/d_particle_copoly/getLeftEffType__8dPaPoT_cCFi.s delete mode 100644 asm/d/particle/d_particle_copoly/getLeftEmitter__8dPaPoT_cFii.s delete mode 100644 asm/d/particle/d_particle_copoly/getRightEffType__8dPaPoT_cCFi.s delete mode 100644 asm/d/particle/d_particle_copoly/getRightEmitter__8dPaPoT_cFii.s delete mode 100644 asm/d/particle/d_particle_copoly/init__7dPaPo_cFP9dBgS_Acchff.s delete mode 100644 asm/d/particle/d_particle_copoly/setEffectCenter__7dPaPo_cFPC12dKy_tevstr_cPC4cXyzUlUlPC4cXyzPC5csXyzPC4cXyzScff.s delete mode 100644 asm/d/particle/d_particle_copoly/setEffect__7dPaPo_cFPUliPC12dKy_tevstr_cPC4cXyzUlUlPC4cXyzPC5csXyzScPUcPUc.s diff --git a/asm/c/c_dylink/__dt__20DynamicModuleControlFv.s b/asm/c/c_dylink/__dt__20DynamicModuleControlFv.s deleted file mode 100644 index e7503c3b12a..00000000000 --- a/asm/c/c_dylink/__dt__20DynamicModuleControlFv.s +++ /dev/null @@ -1,26 +0,0 @@ -lbl_800188E4: -/* 800188E4 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800188E8 7C 08 02 A6 */ mflr r0 -/* 800188EC 90 01 00 14 */ stw r0, 0x14(r1) -/* 800188F0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800188F4 93 C1 00 08 */ stw r30, 8(r1) -/* 800188F8 7C 7E 1B 79 */ or. r30, r3, r3 -/* 800188FC 7C 9F 23 78 */ mr r31, r4 -/* 80018900 41 82 00 28 */ beq lbl_80018928 -/* 80018904 3C 80 80 3C */ lis r4, __vt__20DynamicModuleControl@ha /* 0x803C34C0@ha */ -/* 80018908 38 04 34 C0 */ addi r0, r4, __vt__20DynamicModuleControl@l /* 0x803C34C0@l */ -/* 8001890C 90 1E 00 0C */ stw r0, 0xc(r30) -/* 80018910 38 80 00 00 */ li r4, 0 -/* 80018914 48 24 98 B9 */ bl __dt__24DynamicModuleControlBaseFv -/* 80018918 7F E0 07 35 */ extsh. r0, r31 -/* 8001891C 40 81 00 0C */ ble lbl_80018928 -/* 80018920 7F C3 F3 78 */ mr r3, r30 -/* 80018924 48 2B 64 19 */ bl __dl__FPv -lbl_80018928: -/* 80018928 7F C3 F3 78 */ mr r3, r30 -/* 8001892C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80018930 83 C1 00 08 */ lwz r30, 8(r1) -/* 80018934 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80018938 7C 08 03 A6 */ mtlr r0 -/* 8001893C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80018940 4E 80 00 20 */ blr diff --git a/asm/d/kankyo/d_kankyo/bgparts_activelight_init__Fv.s b/asm/d/kankyo/d_kankyo/bgparts_activelight_init__Fv.s deleted file mode 100644 index 0b6aa74f93f..00000000000 --- a/asm/d/kankyo/d_kankyo/bgparts_activelight_init__Fv.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8019E854: -/* 8019E854 3C 60 80 43 */ lis r3, g_env_light@ha /* 0x8042CA54@ha */ -/* 8019E858 38 63 CA 54 */ addi r3, r3, g_env_light@l /* 0x8042CA54@l */ -/* 8019E85C 38 00 00 02 */ li r0, 2 -/* 8019E860 7C 09 03 A6 */ mtctr r0 -lbl_8019E864: -/* 8019E864 38 00 00 00 */ li r0, 0 -/* 8019E868 42 00 FF FC */ bdnz lbl_8019E864 -/* 8019E86C 90 03 07 80 */ stw r0, 0x780(r3) -/* 8019E870 4E 80 00 20 */ blr diff --git a/asm/d/kankyo/d_kankyo/func_801A0340.s b/asm/d/kankyo/d_kankyo/func_801A0340.s deleted file mode 100644 index d4f0a4dc1c1..00000000000 --- a/asm/d/kankyo/d_kankyo/func_801A0340.s +++ /dev/null @@ -1,52 +0,0 @@ -lbl_801A0340: -/* 801A0340 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 801A0344 7C 08 02 A6 */ mflr r0 -/* 801A0348 90 01 00 44 */ stw r0, 0x44(r1) -/* 801A034C 39 61 00 40 */ addi r11, r1, 0x40 -/* 801A0350 48 1C 1D F5 */ bl _savefpr_29 -/* 801A0354 39 61 00 28 */ addi r11, r1, 0x28 -/* 801A0358 48 1C 1E 79 */ bl _savegpr_26 -/* 801A035C 7C 7A 1B 78 */ mr r26, r3 -/* 801A0360 7C 9B 23 78 */ mr r27, r4 -/* 801A0364 7C BC 2B 78 */ mr r28, r5 -/* 801A0368 7C DD 33 78 */ mr r29, r6 -/* 801A036C 7C FE 3B 78 */ mr r30, r7 -/* 801A0370 FF A0 08 90 */ fmr f29, f1 -/* 801A0374 FF C0 10 90 */ fmr f30, f2 -/* 801A0378 7D 1F 43 78 */ mr r31, r8 -/* 801A037C FF E0 18 90 */ fmr f31, f3 -/* 801A0380 88 64 00 00 */ lbz r3, 0(r4) -/* 801A0384 88 86 00 00 */ lbz r4, 0(r6) -/* 801A0388 88 A5 00 00 */ lbz r5, 0(r5) -/* 801A038C 88 C7 00 00 */ lbz r6, 0(r7) -/* 801A0390 A8 E8 00 00 */ lha r7, 0(r8) -/* 801A0394 4B FF D2 F9 */ bl kankyo_color_ratio_set__FUcUcfUcUcfsf -/* 801A0398 B0 7A 00 00 */ sth r3, 0(r26) -/* 801A039C 88 7B 00 01 */ lbz r3, 1(r27) -/* 801A03A0 88 9D 00 01 */ lbz r4, 1(r29) -/* 801A03A4 FC 20 E8 90 */ fmr f1, f29 -/* 801A03A8 88 BC 00 01 */ lbz r5, 1(r28) -/* 801A03AC 88 DE 00 01 */ lbz r6, 1(r30) -/* 801A03B0 FC 40 F0 90 */ fmr f2, f30 -/* 801A03B4 A8 FF 00 02 */ lha r7, 2(r31) -/* 801A03B8 FC 60 F8 90 */ fmr f3, f31 -/* 801A03BC 4B FF D2 D1 */ bl kankyo_color_ratio_set__FUcUcfUcUcfsf -/* 801A03C0 B0 7A 00 02 */ sth r3, 2(r26) -/* 801A03C4 88 7B 00 02 */ lbz r3, 2(r27) -/* 801A03C8 88 9D 00 02 */ lbz r4, 2(r29) -/* 801A03CC FC 20 E8 90 */ fmr f1, f29 -/* 801A03D0 88 BC 00 02 */ lbz r5, 2(r28) -/* 801A03D4 88 DE 00 02 */ lbz r6, 2(r30) -/* 801A03D8 FC 40 F0 90 */ fmr f2, f30 -/* 801A03DC A8 FF 00 04 */ lha r7, 4(r31) -/* 801A03E0 FC 60 F8 90 */ fmr f3, f31 -/* 801A03E4 4B FF D2 A9 */ bl kankyo_color_ratio_set__FUcUcfUcUcfsf -/* 801A03E8 B0 7A 00 04 */ sth r3, 4(r26) -/* 801A03EC 39 61 00 40 */ addi r11, r1, 0x40 -/* 801A03F0 48 1C 1D A1 */ bl _restfpr_29 -/* 801A03F4 39 61 00 28 */ addi r11, r1, 0x28 -/* 801A03F8 48 1C 1E 25 */ bl _restgpr_26 -/* 801A03FC 80 01 00 44 */ lwz r0, 0x44(r1) -/* 801A0400 7C 08 03 A6 */ mtlr r0 -/* 801A0404 38 21 00 40 */ addi r1, r1, 0x40 -/* 801A0408 4E 80 00 20 */ blr diff --git a/asm/d/particle/d_particle_copoly/__sinit_d_particle_copoly_cpp.s b/asm/d/particle/d_particle_copoly/__sinit_d_particle_copoly_cpp.s deleted file mode 100644 index 1cb341c6db6..00000000000 --- a/asm/d/particle/d_particle_copoly/__sinit_d_particle_copoly_cpp.s +++ /dev/null @@ -1,104 +0,0 @@ -lbl_80051614: -/* 80051614 3C 60 80 3B */ lis r3, cNullVec__6Z2Calc@ha /* 0x803A85F8@ha */ -/* 80051618 38 63 85 F8 */ addi r3, r3, cNullVec__6Z2Calc@l /* 0x803A85F8@l */ -/* 8005161C 80 83 00 0C */ lwz r4, 0xc(r3) -/* 80051620 80 03 00 10 */ lwz r0, 0x10(r3) -/* 80051624 90 83 00 30 */ stw r4, 0x30(r3) -/* 80051628 90 03 00 34 */ stw r0, 0x34(r3) -/* 8005162C 80 03 00 14 */ lwz r0, 0x14(r3) -/* 80051630 90 03 00 38 */ stw r0, 0x38(r3) -/* 80051634 38 A3 00 30 */ addi r5, r3, 0x30 -/* 80051638 80 83 00 18 */ lwz r4, 0x18(r3) -/* 8005163C 80 03 00 1C */ lwz r0, 0x1c(r3) -/* 80051640 90 85 00 0C */ stw r4, 0xc(r5) -/* 80051644 90 05 00 10 */ stw r0, 0x10(r5) -/* 80051648 80 03 00 20 */ lwz r0, 0x20(r3) -/* 8005164C 90 05 00 14 */ stw r0, 0x14(r5) -/* 80051650 80 83 00 24 */ lwz r4, 0x24(r3) -/* 80051654 80 03 00 28 */ lwz r0, 0x28(r3) -/* 80051658 90 85 00 18 */ stw r4, 0x18(r5) -/* 8005165C 90 05 00 1C */ stw r0, 0x1c(r5) -/* 80051660 80 03 00 2C */ lwz r0, 0x2c(r3) -/* 80051664 90 05 00 20 */ stw r0, 0x20(r5) -/* 80051668 80 83 00 54 */ lwz r4, 0x54(r3) -/* 8005166C 80 03 00 58 */ lwz r0, 0x58(r3) -/* 80051670 90 83 00 78 */ stw r4, 0x78(r3) -/* 80051674 90 03 00 7C */ stw r0, 0x7c(r3) -/* 80051678 80 03 00 5C */ lwz r0, 0x5c(r3) -/* 8005167C 90 03 00 80 */ stw r0, 0x80(r3) -/* 80051680 38 A3 00 78 */ addi r5, r3, 0x78 -/* 80051684 80 83 00 60 */ lwz r4, 0x60(r3) -/* 80051688 80 03 00 64 */ lwz r0, 0x64(r3) -/* 8005168C 90 85 00 0C */ stw r4, 0xc(r5) -/* 80051690 90 05 00 10 */ stw r0, 0x10(r5) -/* 80051694 80 03 00 68 */ lwz r0, 0x68(r3) -/* 80051698 90 05 00 14 */ stw r0, 0x14(r5) -/* 8005169C 80 83 00 6C */ lwz r4, 0x6c(r3) -/* 800516A0 80 03 00 70 */ lwz r0, 0x70(r3) -/* 800516A4 90 85 00 18 */ stw r4, 0x18(r5) -/* 800516A8 90 05 00 1C */ stw r0, 0x1c(r5) -/* 800516AC 80 03 00 74 */ lwz r0, 0x74(r3) -/* 800516B0 90 05 00 20 */ stw r0, 0x20(r5) -/* 800516B4 80 83 00 9C */ lwz r4, 0x9c(r3) -/* 800516B8 80 03 00 A0 */ lwz r0, 0xa0(r3) -/* 800516BC 90 83 00 D8 */ stw r4, 0xd8(r3) -/* 800516C0 90 03 00 DC */ stw r0, 0xdc(r3) -/* 800516C4 80 03 00 A4 */ lwz r0, 0xa4(r3) -/* 800516C8 90 03 00 E0 */ stw r0, 0xe0(r3) -/* 800516CC 38 A3 00 D8 */ addi r5, r3, 0xd8 -/* 800516D0 80 83 00 A8 */ lwz r4, 0xa8(r3) -/* 800516D4 80 03 00 AC */ lwz r0, 0xac(r3) -/* 800516D8 90 85 00 0C */ stw r4, 0xc(r5) -/* 800516DC 90 05 00 10 */ stw r0, 0x10(r5) -/* 800516E0 80 03 00 B0 */ lwz r0, 0xb0(r3) -/* 800516E4 90 05 00 14 */ stw r0, 0x14(r5) -/* 800516E8 80 83 00 B4 */ lwz r4, 0xb4(r3) -/* 800516EC 80 03 00 B8 */ lwz r0, 0xb8(r3) -/* 800516F0 90 85 00 18 */ stw r4, 0x18(r5) -/* 800516F4 90 05 00 1C */ stw r0, 0x1c(r5) -/* 800516F8 80 03 00 BC */ lwz r0, 0xbc(r3) -/* 800516FC 90 05 00 20 */ stw r0, 0x20(r5) -/* 80051700 80 83 00 C0 */ lwz r4, 0xc0(r3) -/* 80051704 80 03 00 C4 */ lwz r0, 0xc4(r3) -/* 80051708 90 85 00 24 */ stw r4, 0x24(r5) -/* 8005170C 90 05 00 28 */ stw r0, 0x28(r5) -/* 80051710 80 03 00 C8 */ lwz r0, 0xc8(r3) -/* 80051714 90 05 00 2C */ stw r0, 0x2c(r5) -/* 80051718 80 83 00 CC */ lwz r4, 0xcc(r3) -/* 8005171C 80 03 00 D0 */ lwz r0, 0xd0(r3) -/* 80051720 90 85 00 30 */ stw r4, 0x30(r5) -/* 80051724 90 05 00 34 */ stw r0, 0x34(r5) -/* 80051728 80 03 00 D4 */ lwz r0, 0xd4(r3) -/* 8005172C 90 05 00 38 */ stw r0, 0x38(r5) -/* 80051730 80 83 01 14 */ lwz r4, 0x114(r3) -/* 80051734 80 03 01 18 */ lwz r0, 0x118(r3) -/* 80051738 90 83 01 50 */ stw r4, 0x150(r3) -/* 8005173C 90 03 01 54 */ stw r0, 0x154(r3) -/* 80051740 80 03 01 1C */ lwz r0, 0x11c(r3) -/* 80051744 90 03 01 58 */ stw r0, 0x158(r3) -/* 80051748 38 A3 01 50 */ addi r5, r3, 0x150 -/* 8005174C 80 83 01 20 */ lwz r4, 0x120(r3) -/* 80051750 80 03 01 24 */ lwz r0, 0x124(r3) -/* 80051754 90 85 00 0C */ stw r4, 0xc(r5) -/* 80051758 90 05 00 10 */ stw r0, 0x10(r5) -/* 8005175C 80 03 01 28 */ lwz r0, 0x128(r3) -/* 80051760 90 05 00 14 */ stw r0, 0x14(r5) -/* 80051764 80 83 01 2C */ lwz r4, 0x12c(r3) -/* 80051768 80 03 01 30 */ lwz r0, 0x130(r3) -/* 8005176C 90 85 00 18 */ stw r4, 0x18(r5) -/* 80051770 90 05 00 1C */ stw r0, 0x1c(r5) -/* 80051774 80 03 01 34 */ lwz r0, 0x134(r3) -/* 80051778 90 05 00 20 */ stw r0, 0x20(r5) -/* 8005177C 80 83 01 38 */ lwz r4, 0x138(r3) -/* 80051780 80 03 01 3C */ lwz r0, 0x13c(r3) -/* 80051784 90 85 00 24 */ stw r4, 0x24(r5) -/* 80051788 90 05 00 28 */ stw r0, 0x28(r5) -/* 8005178C 80 03 01 40 */ lwz r0, 0x140(r3) -/* 80051790 90 05 00 2C */ stw r0, 0x2c(r5) -/* 80051794 80 83 01 44 */ lwz r4, 0x144(r3) -/* 80051798 80 03 01 48 */ lwz r0, 0x148(r3) -/* 8005179C 90 85 00 30 */ stw r4, 0x30(r5) -/* 800517A0 90 05 00 34 */ stw r0, 0x34(r5) -/* 800517A4 80 03 01 4C */ lwz r0, 0x14c(r3) -/* 800517A8 90 05 00 38 */ stw r0, 0x38(r5) -/* 800517AC 4E 80 00 20 */ blr diff --git a/asm/d/particle/d_particle_copoly/checkWaterIn__7dPaPo_cFP4cXyzPC4cXyzPC12dKy_tevstr_cUlScff.s b/asm/d/particle/d_particle_copoly/checkWaterIn__7dPaPo_cFP4cXyzPC4cXyzPC12dKy_tevstr_cUlScff.s deleted file mode 100644 index 1ebe6a70f78..00000000000 --- a/asm/d/particle/d_particle_copoly/checkWaterIn__7dPaPo_cFP4cXyzPC4cXyzPC12dKy_tevstr_cUlScff.s +++ /dev/null @@ -1,118 +0,0 @@ -lbl_80050CC4: -/* 80050CC4 94 21 FF A0 */ stwu r1, -0x60(r1) -/* 80050CC8 7C 08 02 A6 */ mflr r0 -/* 80050CCC 90 01 00 64 */ stw r0, 0x64(r1) -/* 80050CD0 DB E1 00 50 */ stfd f31, 0x50(r1) -/* 80050CD4 F3 E1 00 58 */ psq_st f31, 88(r1), 0, 0 /* qr0 */ -/* 80050CD8 DB C1 00 40 */ stfd f30, 0x40(r1) -/* 80050CDC F3 C1 00 48 */ psq_st f30, 72(r1), 0, 0 /* qr0 */ -/* 80050CE0 DB A1 00 30 */ stfd f29, 0x30(r1) -/* 80050CE4 F3 A1 00 38 */ psq_st f29, 56(r1), 0, 0 /* qr0 */ -/* 80050CE8 39 61 00 30 */ addi r11, r1, 0x30 -/* 80050CEC 48 31 14 E1 */ bl _savegpr_25 -/* 80050CF0 7C 7A 1B 78 */ mr r26, r3 -/* 80050CF4 7C 9B 23 78 */ mr r27, r4 -/* 80050CF8 7C BC 2B 78 */ mr r28, r5 -/* 80050CFC 7C DD 33 78 */ mr r29, r6 -/* 80050D00 7C FE 3B 78 */ mr r30, r7 -/* 80050D04 7D 1F 43 78 */ mr r31, r8 -/* 80050D08 FF A0 08 90 */ fmr f29, f1 -/* 80050D0C FF C0 10 90 */ fmr f30, f2 -/* 80050D10 80 83 00 28 */ lwz r4, 0x28(r3) -/* 80050D14 80 04 00 2C */ lwz r0, 0x2c(r4) -/* 80050D18 54 00 05 29 */ rlwinm. r0, r0, 0, 0x14, 0x14 -/* 80050D1C 41 82 01 24 */ beq lbl_80050E40 -/* 80050D20 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80050D24 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80050D28 3B 23 0F 38 */ addi r25, r3, 0xf38 -/* 80050D2C 7F 23 CB 78 */ mr r3, r25 -/* 80050D30 38 84 01 80 */ addi r4, r4, 0x180 -/* 80050D34 48 02 39 2D */ bl ChkPolySafe__4cBgSFRC13cBgS_PolyInfo -/* 80050D38 54 60 06 3F */ clrlwi. r0, r3, 0x18 -/* 80050D3C 41 82 01 04 */ beq lbl_80050E40 -/* 80050D40 7F 23 CB 78 */ mr r3, r25 -/* 80050D44 80 9A 00 28 */ lwz r4, 0x28(r26) -/* 80050D48 38 84 01 80 */ addi r4, r4, 0x180 -/* 80050D4C 48 02 41 05 */ bl GetPolyAtt0__4dBgSFRC13cBgS_PolyInfo -/* 80050D50 2C 03 00 06 */ cmpwi r3, 6 -/* 80050D54 41 82 00 EC */ beq lbl_80050E40 -/* 80050D58 80 7A 00 28 */ lwz r3, 0x28(r26) -/* 80050D5C C0 23 01 CC */ lfs f1, 0x1cc(r3) -/* 80050D60 C0 1B 00 04 */ lfs f0, 4(r27) -/* 80050D64 EF E1 00 28 */ fsubs f31, f1, f0 -/* 80050D68 C0 02 85 F8 */ lfs f0, lit_3672(r2) -/* 80050D6C FC 1F 00 40 */ fcmpo cr0, f31, f0 -/* 80050D70 4C 41 13 82 */ cror 2, 1, 2 -/* 80050D74 40 82 00 C0 */ bne lbl_80050E34 -/* 80050D78 D0 3B 00 04 */ stfs f1, 4(r27) -/* 80050D7C 88 1A 00 37 */ lbz r0, 0x37(r26) -/* 80050D80 28 00 00 00 */ cmplwi r0, 0 -/* 80050D84 40 82 00 44 */ bne lbl_80050DC8 -/* 80050D88 38 00 00 01 */ li r0, 1 -/* 80050D8C 98 1A 00 37 */ stb r0, 0x37(r26) -/* 80050D90 57 C0 03 5B */ rlwinm. r0, r30, 0, 0xd, 0xd -/* 80050D94 40 82 00 34 */ bne lbl_80050DC8 -/* 80050D98 80 7A 00 28 */ lwz r3, 0x28(r26) -/* 80050D9C C0 03 00 98 */ lfs f0, 0x98(r3) -/* 80050DA0 C0 23 01 CC */ lfs f1, 0x1cc(r3) -/* 80050DA4 EC 21 00 28 */ fsubs f1, f1, f0 -/* 80050DA8 C0 1A 00 2C */ lfs f0, 0x2c(r26) -/* 80050DAC FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80050DB0 4C 41 13 82 */ cror 2, 1, 2 -/* 80050DB4 40 82 00 14 */ bne lbl_80050DC8 -/* 80050DB8 7F 63 DB 78 */ mr r3, r27 -/* 80050DBC FC 20 E8 90 */ fmr f1, f29 -/* 80050DC0 38 80 00 00 */ li r4, 0 -/* 80050DC4 4B FC EA B9 */ bl fopKyM_createWpillar__FPC4cXyzfi -lbl_80050DC8: -/* 80050DC8 C0 1A 00 30 */ lfs f0, 0x30(r26) -/* 80050DCC FC 1F 00 40 */ fcmpo cr0, f31, f0 -/* 80050DD0 40 80 00 3C */ bge lbl_80050E0C -/* 80050DD4 57 C0 03 9D */ rlwinm. r0, r30, 0, 0xe, 0xe -/* 80050DD8 40 82 00 34 */ bne lbl_80050E0C -/* 80050DDC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80050DE0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80050DE4 80 63 5D 3C */ lwz r3, 0x5d3c(r3) -/* 80050DE8 7F 44 D3 78 */ mr r4, r26 -/* 80050DEC 80 BA 00 28 */ lwz r5, 0x28(r26) -/* 80050DF0 38 A5 01 80 */ addi r5, r5, 0x180 -/* 80050DF4 7F 66 DB 78 */ mr r6, r27 -/* 80050DF8 FC 20 F0 90 */ fmr f1, f30 -/* 80050DFC 7F A7 EB 78 */ mr r7, r29 -/* 80050E00 7F 88 E3 78 */ mr r8, r28 -/* 80050E04 7F E9 FB 78 */ mr r9, r31 -/* 80050E08 4B FF BA 31 */ bl setWaterRipple__13dPa_control_cFPUlR13cBgS_PolyInfoPC4cXyzfPC12dKy_tevstr_cPC4cXyzSc -lbl_80050E0C: -/* 80050E0C C0 1A 00 2C */ lfs f0, 0x2c(r26) -/* 80050E10 FC 1F 00 40 */ fcmpo cr0, f31, f0 -/* 80050E14 40 80 00 0C */ bge lbl_80050E20 -/* 80050E18 38 60 00 01 */ li r3, 1 -/* 80050E1C 48 00 00 30 */ b lbl_80050E4C -lbl_80050E20: -/* 80050E20 C0 1B 00 04 */ lfs f0, 4(r27) -/* 80050E24 EC 00 F8 28 */ fsubs f0, f0, f31 -/* 80050E28 D0 1B 00 04 */ stfs f0, 4(r27) -/* 80050E2C 38 60 00 02 */ li r3, 2 -/* 80050E30 48 00 00 1C */ b lbl_80050E4C -lbl_80050E34: -/* 80050E34 38 00 00 00 */ li r0, 0 -/* 80050E38 98 1A 00 37 */ stb r0, 0x37(r26) -/* 80050E3C 48 00 00 0C */ b lbl_80050E48 -lbl_80050E40: -/* 80050E40 38 00 00 00 */ li r0, 0 -/* 80050E44 98 1A 00 37 */ stb r0, 0x37(r26) -lbl_80050E48: -/* 80050E48 38 60 00 00 */ li r3, 0 -lbl_80050E4C: -/* 80050E4C E3 E1 00 58 */ psq_l f31, 88(r1), 0, 0 /* qr0 */ -/* 80050E50 CB E1 00 50 */ lfd f31, 0x50(r1) -/* 80050E54 E3 C1 00 48 */ psq_l f30, 72(r1), 0, 0 /* qr0 */ -/* 80050E58 CB C1 00 40 */ lfd f30, 0x40(r1) -/* 80050E5C E3 A1 00 38 */ psq_l f29, 56(r1), 0, 0 /* qr0 */ -/* 80050E60 CB A1 00 30 */ lfd f29, 0x30(r1) -/* 80050E64 39 61 00 30 */ addi r11, r1, 0x30 -/* 80050E68 48 31 13 B1 */ bl _restgpr_25 -/* 80050E6C 80 01 00 64 */ lwz r0, 0x64(r1) -/* 80050E70 7C 08 03 A6 */ mtlr r0 -/* 80050E74 38 21 00 60 */ addi r1, r1, 0x60 -/* 80050E78 4E 80 00 20 */ blr diff --git a/asm/d/particle/d_particle_copoly/clearFourAllID__8dPaPoF_cFv.s b/asm/d/particle/d_particle_copoly/clearFourAllID__8dPaPoF_cFv.s deleted file mode 100644 index 649c7f7e516..00000000000 --- a/asm/d/particle/d_particle_copoly/clearFourAllID__8dPaPoF_cFv.s +++ /dev/null @@ -1,20 +0,0 @@ -lbl_80051424: -/* 80051424 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80051428 7C 08 02 A6 */ mflr r0 -/* 8005142C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80051430 93 E1 00 0C */ stw r31, 0xc(r1) -/* 80051434 7C 7F 1B 78 */ mr r31, r3 -/* 80051438 38 9F 00 80 */ addi r4, r31, 0x80 -/* 8005143C 38 BF 00 C4 */ addi r5, r31, 0xc4 -/* 80051440 4B FF FC FD */ bl clearID__7dPaPo_cFPUlPUc -/* 80051444 7F E3 FB 78 */ mr r3, r31 -/* 80051448 38 9F 00 A0 */ addi r4, r31, 0xa0 -/* 8005144C 38 BF 00 C5 */ addi r5, r31, 0xc5 -/* 80051450 4B FF FC ED */ bl clearID__7dPaPo_cFPUlPUc -/* 80051454 7F E3 FB 78 */ mr r3, r31 -/* 80051458 4B FF FE 3D */ bl clearTwoAllID__8dPaPoT_cFv -/* 8005145C 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 80051460 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80051464 7C 08 03 A6 */ mtlr r0 -/* 80051468 38 21 00 10 */ addi r1, r1, 0x10 -/* 8005146C 4E 80 00 20 */ blr diff --git a/asm/d/particle/d_particle_copoly/clearID__7dPaPo_cFPUlPUc.s b/asm/d/particle/d_particle_copoly/clearID__7dPaPo_cFPUlPUc.s deleted file mode 100644 index f48b47fbb6a..00000000000 --- a/asm/d/particle/d_particle_copoly/clearID__7dPaPo_cFPUlPUc.s +++ /dev/null @@ -1,10 +0,0 @@ -lbl_8005113C: -/* 8005113C 38 60 00 00 */ li r3, 0 -/* 80051140 98 65 00 00 */ stb r3, 0(r5) -/* 80051144 38 00 00 08 */ li r0, 8 -/* 80051148 7C 09 03 A6 */ mtctr r0 -lbl_8005114C: -/* 8005114C 90 64 00 00 */ stw r3, 0(r4) -/* 80051150 38 84 00 04 */ addi r4, r4, 4 -/* 80051154 42 00 FF F8 */ bdnz lbl_8005114C -/* 80051158 4E 80 00 20 */ blr diff --git a/asm/d/particle/d_particle_copoly/clearTwoAllID__8dPaPoT_cFv.s b/asm/d/particle/d_particle_copoly/clearTwoAllID__8dPaPoT_cFv.s deleted file mode 100644 index b8b58d1e37b..00000000000 --- a/asm/d/particle/d_particle_copoly/clearTwoAllID__8dPaPoT_cFv.s +++ /dev/null @@ -1,22 +0,0 @@ -lbl_80051294: -/* 80051294 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80051298 7C 08 02 A6 */ mflr r0 -/* 8005129C 90 01 00 14 */ stw r0, 0x14(r1) -/* 800512A0 93 E1 00 0C */ stw r31, 0xc(r1) -/* 800512A4 7C 7F 1B 78 */ mr r31, r3 -/* 800512A8 38 9F 00 38 */ addi r4, r31, 0x38 -/* 800512AC 38 BF 00 7C */ addi r5, r31, 0x7c -/* 800512B0 4B FF FE 8D */ bl clearID__7dPaPo_cFPUlPUc -/* 800512B4 7F E3 FB 78 */ mr r3, r31 -/* 800512B8 38 9F 00 58 */ addi r4, r31, 0x58 -/* 800512BC 38 BF 00 7D */ addi r5, r31, 0x7d -/* 800512C0 4B FF FE 7D */ bl clearID__7dPaPo_cFPUlPUc -/* 800512C4 7F E3 FB 78 */ mr r3, r31 -/* 800512C8 38 9F 00 08 */ addi r4, r31, 8 -/* 800512CC 38 BF 00 36 */ addi r5, r31, 0x36 -/* 800512D0 4B FF FE 6D */ bl clearID__7dPaPo_cFPUlPUc -/* 800512D4 83 E1 00 0C */ lwz r31, 0xc(r1) -/* 800512D8 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800512DC 7C 08 03 A6 */ mtlr r0 -/* 800512E0 38 21 00 10 */ addi r1, r1, 0x10 -/* 800512E4 4E 80 00 20 */ blr diff --git a/asm/d/particle/d_particle_copoly/func_8005115C.s b/asm/d/particle/d_particle_copoly/func_8005115C.s deleted file mode 100644 index aa049a57d60..00000000000 --- a/asm/d/particle/d_particle_copoly/func_8005115C.s +++ /dev/null @@ -1,82 +0,0 @@ -lbl_8005115C: -/* 8005115C 94 21 FF B0 */ stwu r1, -0x50(r1) -/* 80051160 7C 08 02 A6 */ mflr r0 -/* 80051164 90 01 00 54 */ stw r0, 0x54(r1) -/* 80051168 39 61 00 50 */ addi r11, r1, 0x50 -/* 8005116C 48 31 10 55 */ bl _savegpr_22 -/* 80051170 7C 7C 1B 78 */ mr r28, r3 -/* 80051174 7C 9D 23 78 */ mr r29, r4 -/* 80051178 7C B6 2B 78 */ mr r22, r5 -/* 8005117C 7C DE 33 78 */ mr r30, r6 -/* 80051180 7C FF 3B 78 */ mr r31, r7 -/* 80051184 7D 37 4B 78 */ mr r23, r9 -/* 80051188 7D 58 53 78 */ mr r24, r10 -/* 8005118C 83 21 00 58 */ lwz r25, 0x58(r1) -/* 80051190 81 41 00 5C */ lwz r10, 0x5c(r1) -/* 80051194 8B 41 00 63 */ lbz r26, 0x63(r1) -/* 80051198 38 00 00 FF */ li r0, 0xff -/* 8005119C 98 03 00 78 */ stb r0, 0x78(r3) -/* 800511A0 98 03 00 79 */ stb r0, 0x79(r3) -/* 800511A4 98 03 00 7A */ stb r0, 0x7a(r3) -/* 800511A8 98 03 00 7B */ stb r0, 0x7b(r3) -/* 800511AC 93 41 00 08 */ stw r26, 8(r1) -/* 800511B0 7F 29 CB 78 */ mr r9, r25 -/* 800511B4 4B FF FE 55 */ bl setEffectCenter__7dPaPo_cFPC12dKy_tevstr_cPC4cXyzUlUlPC4cXyzPC5csXyzPC4cXyzScff -/* 800511B8 7C 7B 1B 78 */ mr r27, r3 -/* 800511BC 2C 1B 00 03 */ cmpwi r27, 3 -/* 800511C0 41 82 00 AC */ beq lbl_8005126C -/* 800511C4 C0 16 00 00 */ lfs f0, 0(r22) -/* 800511C8 D0 01 00 18 */ stfs f0, 0x18(r1) -/* 800511CC C0 16 00 04 */ lfs f0, 4(r22) -/* 800511D0 D0 01 00 1C */ stfs f0, 0x1c(r1) -/* 800511D4 C0 16 00 08 */ lfs f0, 8(r22) -/* 800511D8 D0 01 00 20 */ stfs f0, 0x20(r1) -/* 800511DC 2C 1B 00 01 */ cmpwi r27, 1 -/* 800511E0 40 82 00 10 */ bne lbl_800511F0 -/* 800511E4 80 7C 00 28 */ lwz r3, 0x28(r28) -/* 800511E8 C0 03 01 CC */ lfs f0, 0x1cc(r3) -/* 800511EC D0 01 00 1C */ stfs f0, 0x1c(r1) -lbl_800511F0: -/* 800511F0 93 21 00 08 */ stw r25, 8(r1) -/* 800511F4 93 41 00 0C */ stw r26, 0xc(r1) -/* 800511F8 38 1C 00 78 */ addi r0, r28, 0x78 -/* 800511FC 90 01 00 10 */ stw r0, 0x10(r1) -/* 80051200 38 1C 00 7C */ addi r0, r28, 0x7c -/* 80051204 90 01 00 14 */ stw r0, 0x14(r1) -/* 80051208 7F 83 E3 78 */ mr r3, r28 -/* 8005120C 38 9C 00 38 */ addi r4, r28, 0x38 -/* 80051210 7F 65 DB 78 */ mr r5, r27 -/* 80051214 7F A6 EB 78 */ mr r6, r29 -/* 80051218 38 E1 00 18 */ addi r7, r1, 0x18 -/* 8005121C 7F C8 F3 78 */ mr r8, r30 -/* 80051220 7F E9 FB 78 */ mr r9, r31 -/* 80051224 7E EA BB 78 */ mr r10, r23 -/* 80051228 4B FF FC 55 */ bl setEffect__7dPaPo_cFPUliPC12dKy_tevstr_cPC4cXyzUlUlPC4cXyzPC5csXyzScPUcPUc -/* 8005122C 93 21 00 08 */ stw r25, 8(r1) -/* 80051230 93 41 00 0C */ stw r26, 0xc(r1) -/* 80051234 38 1C 00 7A */ addi r0, r28, 0x7a -/* 80051238 90 01 00 10 */ stw r0, 0x10(r1) -/* 8005123C 38 1C 00 7D */ addi r0, r28, 0x7d -/* 80051240 90 01 00 14 */ stw r0, 0x14(r1) -/* 80051244 7F 83 E3 78 */ mr r3, r28 -/* 80051248 38 9C 00 58 */ addi r4, r28, 0x58 -/* 8005124C 7F 65 DB 78 */ mr r5, r27 -/* 80051250 7F A6 EB 78 */ mr r6, r29 -/* 80051254 38 E1 00 18 */ addi r7, r1, 0x18 -/* 80051258 7F C8 F3 78 */ mr r8, r30 -/* 8005125C 7F E9 FB 78 */ mr r9, r31 -/* 80051260 7F 0A C3 78 */ mr r10, r24 -/* 80051264 4B FF FC 19 */ bl setEffect__7dPaPo_cFPUliPC12dKy_tevstr_cPC4cXyzUlUlPC4cXyzPC5csXyzScPUcPUc -/* 80051268 48 00 00 10 */ b lbl_80051278 -lbl_8005126C: -/* 8005126C 38 00 00 00 */ li r0, 0 -/* 80051270 98 1C 00 7C */ stb r0, 0x7c(r28) -/* 80051274 98 1C 00 7D */ stb r0, 0x7d(r28) -lbl_80051278: -/* 80051278 7F 63 DB 78 */ mr r3, r27 -/* 8005127C 39 61 00 50 */ addi r11, r1, 0x50 -/* 80051280 48 31 0F 8D */ bl _restgpr_22 -/* 80051284 80 01 00 54 */ lwz r0, 0x54(r1) -/* 80051288 7C 08 03 A6 */ mtlr r0 -/* 8005128C 38 21 00 50 */ addi r1, r1, 0x50 -/* 80051290 4E 80 00 20 */ blr diff --git a/asm/d/particle/d_particle_copoly/func_800512E8.s b/asm/d/particle/d_particle_copoly/func_800512E8.s deleted file mode 100644 index d7509ce6443..00000000000 --- a/asm/d/particle/d_particle_copoly/func_800512E8.s +++ /dev/null @@ -1,83 +0,0 @@ -lbl_800512E8: -/* 800512E8 94 21 FF B0 */ stwu r1, -0x50(r1) -/* 800512EC 7C 08 02 A6 */ mflr r0 -/* 800512F0 90 01 00 54 */ stw r0, 0x54(r1) -/* 800512F4 39 61 00 50 */ addi r11, r1, 0x50 -/* 800512F8 48 31 0E C9 */ bl _savegpr_22 -/* 800512FC 7C 7C 1B 78 */ mr r28, r3 -/* 80051300 7C 9D 23 78 */ mr r29, r4 -/* 80051304 7C B6 2B 78 */ mr r22, r5 -/* 80051308 7C DE 33 78 */ mr r30, r6 -/* 8005130C 7C FF 3B 78 */ mr r31, r7 -/* 80051310 82 E1 00 58 */ lwz r23, 0x58(r1) -/* 80051314 83 01 00 5C */ lwz r24, 0x5c(r1) -/* 80051318 83 21 00 60 */ lwz r25, 0x60(r1) -/* 8005131C 81 61 00 64 */ lwz r11, 0x64(r1) -/* 80051320 8B 41 00 6B */ lbz r26, 0x6b(r1) -/* 80051324 38 00 00 FF */ li r0, 0xff -/* 80051328 98 03 00 C0 */ stb r0, 0xc0(r3) -/* 8005132C 98 03 00 C1 */ stb r0, 0xc1(r3) -/* 80051330 98 03 00 C2 */ stb r0, 0xc2(r3) -/* 80051334 98 03 00 C3 */ stb r0, 0xc3(r3) -/* 80051338 93 21 00 08 */ stw r25, 8(r1) -/* 8005133C 91 61 00 0C */ stw r11, 0xc(r1) -/* 80051340 93 41 00 10 */ stw r26, 0x10(r1) -/* 80051344 4B FF FE 19 */ bl setEffectTwo__8dPaPoT_cFPC12dKy_tevstr_cPC4cXyzUlUlPC4cXyzPC4cXyzPC4cXyzPC5csXyzPC4cXyzScff -/* 80051348 7C 7B 1B 78 */ mr r27, r3 -/* 8005134C 2C 1B 00 03 */ cmpwi r27, 3 -/* 80051350 41 82 00 AC */ beq lbl_800513FC -/* 80051354 C0 16 00 00 */ lfs f0, 0(r22) -/* 80051358 D0 01 00 18 */ stfs f0, 0x18(r1) -/* 8005135C C0 16 00 04 */ lfs f0, 4(r22) -/* 80051360 D0 01 00 1C */ stfs f0, 0x1c(r1) -/* 80051364 C0 16 00 08 */ lfs f0, 8(r22) -/* 80051368 D0 01 00 20 */ stfs f0, 0x20(r1) -/* 8005136C 2C 1B 00 01 */ cmpwi r27, 1 -/* 80051370 40 82 00 10 */ bne lbl_80051380 -/* 80051374 80 7C 00 28 */ lwz r3, 0x28(r28) -/* 80051378 C0 03 01 CC */ lfs f0, 0x1cc(r3) -/* 8005137C D0 01 00 1C */ stfs f0, 0x1c(r1) -lbl_80051380: -/* 80051380 93 21 00 08 */ stw r25, 8(r1) -/* 80051384 93 41 00 0C */ stw r26, 0xc(r1) -/* 80051388 38 1C 00 C0 */ addi r0, r28, 0xc0 -/* 8005138C 90 01 00 10 */ stw r0, 0x10(r1) -/* 80051390 38 1C 00 C4 */ addi r0, r28, 0xc4 -/* 80051394 90 01 00 14 */ stw r0, 0x14(r1) -/* 80051398 7F 83 E3 78 */ mr r3, r28 -/* 8005139C 38 9C 00 80 */ addi r4, r28, 0x80 -/* 800513A0 7F 65 DB 78 */ mr r5, r27 -/* 800513A4 7F A6 EB 78 */ mr r6, r29 -/* 800513A8 38 E1 00 18 */ addi r7, r1, 0x18 -/* 800513AC 7F C8 F3 78 */ mr r8, r30 -/* 800513B0 7F E9 FB 78 */ mr r9, r31 -/* 800513B4 7E EA BB 78 */ mr r10, r23 -/* 800513B8 4B FF FA C5 */ bl setEffect__7dPaPo_cFPUliPC12dKy_tevstr_cPC4cXyzUlUlPC4cXyzPC5csXyzScPUcPUc -/* 800513BC 93 21 00 08 */ stw r25, 8(r1) -/* 800513C0 93 41 00 0C */ stw r26, 0xc(r1) -/* 800513C4 38 1C 00 C2 */ addi r0, r28, 0xc2 -/* 800513C8 90 01 00 10 */ stw r0, 0x10(r1) -/* 800513CC 38 1C 00 C5 */ addi r0, r28, 0xc5 -/* 800513D0 90 01 00 14 */ stw r0, 0x14(r1) -/* 800513D4 7F 83 E3 78 */ mr r3, r28 -/* 800513D8 38 9C 00 A0 */ addi r4, r28, 0xa0 -/* 800513DC 7F 65 DB 78 */ mr r5, r27 -/* 800513E0 7F A6 EB 78 */ mr r6, r29 -/* 800513E4 38 E1 00 18 */ addi r7, r1, 0x18 -/* 800513E8 7F C8 F3 78 */ mr r8, r30 -/* 800513EC 7F E9 FB 78 */ mr r9, r31 -/* 800513F0 7F 0A C3 78 */ mr r10, r24 -/* 800513F4 4B FF FA 89 */ bl setEffect__7dPaPo_cFPUliPC12dKy_tevstr_cPC4cXyzUlUlPC4cXyzPC5csXyzScPUcPUc -/* 800513F8 48 00 00 10 */ b lbl_80051408 -lbl_800513FC: -/* 800513FC 38 00 00 00 */ li r0, 0 -/* 80051400 98 1C 00 C4 */ stb r0, 0xc4(r28) -/* 80051404 98 1C 00 C5 */ stb r0, 0xc5(r28) -lbl_80051408: -/* 80051408 7F 63 DB 78 */ mr r3, r27 -/* 8005140C 39 61 00 50 */ addi r11, r1, 0x50 -/* 80051410 48 31 0D FD */ bl _restgpr_22 -/* 80051414 80 01 00 54 */ lwz r0, 0x54(r1) -/* 80051418 7C 08 03 A6 */ mtlr r0 -/* 8005141C 38 21 00 50 */ addi r1, r1, 0x50 -/* 80051420 4E 80 00 20 */ blr diff --git a/asm/d/particle/d_particle_copoly/getBackLeftEffType__8dPaPoF_cCFi.s b/asm/d/particle/d_particle_copoly/getBackLeftEffType__8dPaPoF_cCFi.s deleted file mode 100644 index 8d077c5f998..00000000000 --- a/asm/d/particle/d_particle_copoly/getBackLeftEffType__8dPaPoF_cCFi.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80051578: -/* 80051578 7C 63 22 14 */ add r3, r3, r4 -/* 8005157C 88 63 00 C0 */ lbz r3, 0xc0(r3) -/* 80051580 4E 80 00 20 */ blr diff --git a/asm/d/particle/d_particle_copoly/getBackLeftEmitter__8dPaPoF_cFii.s b/asm/d/particle/d_particle_copoly/getBackLeftEmitter__8dPaPoF_cFii.s deleted file mode 100644 index e9de4e43568..00000000000 --- a/asm/d/particle/d_particle_copoly/getBackLeftEmitter__8dPaPoF_cFii.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_800515CC: -/* 800515CC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800515D0 7C 08 02 A6 */ mflr r0 -/* 800515D4 90 01 00 14 */ stw r0, 0x14(r1) -/* 800515D8 7C 66 1B 78 */ mr r6, r3 -/* 800515DC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800515E0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800515E4 80 63 5D 3C */ lwz r3, 0x5d3c(r3) -/* 800515E8 38 63 02 10 */ addi r3, r3, 0x210 -/* 800515EC 54 80 20 36 */ slwi r0, r4, 4 -/* 800515F0 7C 86 02 14 */ add r4, r6, r0 -/* 800515F4 54 A0 10 3A */ slwi r0, r5, 2 -/* 800515F8 7C 84 02 14 */ add r4, r4, r0 -/* 800515FC 80 84 00 80 */ lwz r4, 0x80(r4) -/* 80051600 4B FF A3 19 */ bl getEmitter__Q213dPa_control_c7level_cFUl -/* 80051604 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80051608 7C 08 03 A6 */ mtlr r0 -/* 8005160C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80051610 4E 80 00 20 */ blr diff --git a/asm/d/particle/d_particle_copoly/getBackRightEffType__8dPaPoF_cCFi.s b/asm/d/particle/d_particle_copoly/getBackRightEffType__8dPaPoF_cCFi.s deleted file mode 100644 index b37a08e5fdd..00000000000 --- a/asm/d/particle/d_particle_copoly/getBackRightEffType__8dPaPoF_cCFi.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_8005156C: -/* 8005156C 7C 63 22 14 */ add r3, r3, r4 -/* 80051570 88 63 00 C2 */ lbz r3, 0xc2(r3) -/* 80051574 4E 80 00 20 */ blr diff --git a/asm/d/particle/d_particle_copoly/getBackRightEmitter__8dPaPoF_cFii.s b/asm/d/particle/d_particle_copoly/getBackRightEmitter__8dPaPoF_cFii.s deleted file mode 100644 index 9a92550f806..00000000000 --- a/asm/d/particle/d_particle_copoly/getBackRightEmitter__8dPaPoF_cFii.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_80051584: -/* 80051584 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80051588 7C 08 02 A6 */ mflr r0 -/* 8005158C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80051590 7C 66 1B 78 */ mr r6, r3 -/* 80051594 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80051598 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8005159C 80 63 5D 3C */ lwz r3, 0x5d3c(r3) -/* 800515A0 38 63 02 10 */ addi r3, r3, 0x210 -/* 800515A4 54 80 20 36 */ slwi r0, r4, 4 -/* 800515A8 7C 86 02 14 */ add r4, r6, r0 -/* 800515AC 54 A0 10 3A */ slwi r0, r5, 2 -/* 800515B0 7C 84 02 14 */ add r4, r4, r0 -/* 800515B4 80 84 00 A0 */ lwz r4, 0xa0(r4) -/* 800515B8 4B FF A3 61 */ bl getEmitter__Q213dPa_control_c7level_cFUl -/* 800515BC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800515C0 7C 08 03 A6 */ mtlr r0 -/* 800515C4 38 21 00 10 */ addi r1, r1, 0x10 -/* 800515C8 4E 80 00 20 */ blr diff --git a/asm/d/particle/d_particle_copoly/getCenterEffType__7dPaPo_cCFi.s b/asm/d/particle/d_particle_copoly/getCenterEffType__7dPaPo_cCFi.s deleted file mode 100644 index efbee830855..00000000000 --- a/asm/d/particle/d_particle_copoly/getCenterEffType__7dPaPo_cCFi.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80051488: -/* 80051488 7C 63 22 14 */ add r3, r3, r4 -/* 8005148C 88 63 00 34 */ lbz r3, 0x34(r3) -/* 80051490 4E 80 00 20 */ blr diff --git a/asm/d/particle/d_particle_copoly/getCenterEmitter__7dPaPo_cFii.s b/asm/d/particle/d_particle_copoly/getCenterEmitter__7dPaPo_cFii.s deleted file mode 100644 index 05b49acd538..00000000000 --- a/asm/d/particle/d_particle_copoly/getCenterEmitter__7dPaPo_cFii.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_80051524: -/* 80051524 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80051528 7C 08 02 A6 */ mflr r0 -/* 8005152C 90 01 00 14 */ stw r0, 0x14(r1) -/* 80051530 7C 66 1B 78 */ mr r6, r3 -/* 80051534 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80051538 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 8005153C 80 63 5D 3C */ lwz r3, 0x5d3c(r3) -/* 80051540 38 63 02 10 */ addi r3, r3, 0x210 -/* 80051544 54 80 20 36 */ slwi r0, r4, 4 -/* 80051548 7C 86 02 14 */ add r4, r6, r0 -/* 8005154C 54 A0 10 3A */ slwi r0, r5, 2 -/* 80051550 7C 84 02 14 */ add r4, r4, r0 -/* 80051554 80 84 00 08 */ lwz r4, 8(r4) -/* 80051558 4B FF A3 C1 */ bl getEmitter__Q213dPa_control_c7level_cFUl -/* 8005155C 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80051560 7C 08 03 A6 */ mtlr r0 -/* 80051564 38 21 00 10 */ addi r1, r1, 0x10 -/* 80051568 4E 80 00 20 */ blr diff --git a/asm/d/particle/d_particle_copoly/getLeftEffType__8dPaPoT_cCFi.s b/asm/d/particle/d_particle_copoly/getLeftEffType__8dPaPoT_cCFi.s deleted file mode 100644 index 72aa8328ce9..00000000000 --- a/asm/d/particle/d_particle_copoly/getLeftEffType__8dPaPoT_cCFi.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_8005147C: -/* 8005147C 7C 63 22 14 */ add r3, r3, r4 -/* 80051480 88 63 00 78 */ lbz r3, 0x78(r3) -/* 80051484 4E 80 00 20 */ blr diff --git a/asm/d/particle/d_particle_copoly/getLeftEmitter__8dPaPoT_cFii.s b/asm/d/particle/d_particle_copoly/getLeftEmitter__8dPaPoT_cFii.s deleted file mode 100644 index ddf16ea3982..00000000000 --- a/asm/d/particle/d_particle_copoly/getLeftEmitter__8dPaPoT_cFii.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_800514DC: -/* 800514DC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 800514E0 7C 08 02 A6 */ mflr r0 -/* 800514E4 90 01 00 14 */ stw r0, 0x14(r1) -/* 800514E8 7C 66 1B 78 */ mr r6, r3 -/* 800514EC 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800514F0 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800514F4 80 63 5D 3C */ lwz r3, 0x5d3c(r3) -/* 800514F8 38 63 02 10 */ addi r3, r3, 0x210 -/* 800514FC 54 80 20 36 */ slwi r0, r4, 4 -/* 80051500 7C 86 02 14 */ add r4, r6, r0 -/* 80051504 54 A0 10 3A */ slwi r0, r5, 2 -/* 80051508 7C 84 02 14 */ add r4, r4, r0 -/* 8005150C 80 84 00 38 */ lwz r4, 0x38(r4) -/* 80051510 4B FF A4 09 */ bl getEmitter__Q213dPa_control_c7level_cFUl -/* 80051514 80 01 00 14 */ lwz r0, 0x14(r1) -/* 80051518 7C 08 03 A6 */ mtlr r0 -/* 8005151C 38 21 00 10 */ addi r1, r1, 0x10 -/* 80051520 4E 80 00 20 */ blr diff --git a/asm/d/particle/d_particle_copoly/getRightEffType__8dPaPoT_cCFi.s b/asm/d/particle/d_particle_copoly/getRightEffType__8dPaPoT_cCFi.s deleted file mode 100644 index a00782e895c..00000000000 --- a/asm/d/particle/d_particle_copoly/getRightEffType__8dPaPoT_cCFi.s +++ /dev/null @@ -1,4 +0,0 @@ -lbl_80051470: -/* 80051470 7C 63 22 14 */ add r3, r3, r4 -/* 80051474 88 63 00 7A */ lbz r3, 0x7a(r3) -/* 80051478 4E 80 00 20 */ blr diff --git a/asm/d/particle/d_particle_copoly/getRightEmitter__8dPaPoT_cFii.s b/asm/d/particle/d_particle_copoly/getRightEmitter__8dPaPoT_cFii.s deleted file mode 100644 index cc67199664a..00000000000 --- a/asm/d/particle/d_particle_copoly/getRightEmitter__8dPaPoT_cFii.s +++ /dev/null @@ -1,19 +0,0 @@ -lbl_80051494: -/* 80051494 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80051498 7C 08 02 A6 */ mflr r0 -/* 8005149C 90 01 00 14 */ stw r0, 0x14(r1) -/* 800514A0 7C 66 1B 78 */ mr r6, r3 -/* 800514A4 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 800514A8 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 800514AC 80 63 5D 3C */ lwz r3, 0x5d3c(r3) -/* 800514B0 38 63 02 10 */ addi r3, r3, 0x210 -/* 800514B4 54 80 20 36 */ slwi r0, r4, 4 -/* 800514B8 7C 86 02 14 */ add r4, r6, r0 -/* 800514BC 54 A0 10 3A */ slwi r0, r5, 2 -/* 800514C0 7C 84 02 14 */ add r4, r4, r0 -/* 800514C4 80 84 00 58 */ lwz r4, 0x58(r4) -/* 800514C8 4B FF A4 51 */ bl getEmitter__Q213dPa_control_c7level_cFUl -/* 800514CC 80 01 00 14 */ lwz r0, 0x14(r1) -/* 800514D0 7C 08 03 A6 */ mtlr r0 -/* 800514D4 38 21 00 10 */ addi r1, r1, 0x10 -/* 800514D8 4E 80 00 20 */ blr diff --git a/asm/d/particle/d_particle_copoly/init__7dPaPo_cFP9dBgS_Acchff.s b/asm/d/particle/d_particle_copoly/init__7dPaPo_cFP9dBgS_Acchff.s deleted file mode 100644 index c605a5dfa30..00000000000 --- a/asm/d/particle/d_particle_copoly/init__7dPaPo_cFP9dBgS_Acchff.s +++ /dev/null @@ -1,11 +0,0 @@ -lbl_80050C9C: -/* 80050C9C 90 83 00 28 */ stw r4, 0x28(r3) -/* 80050CA0 D0 23 00 2C */ stfs f1, 0x2c(r3) -/* 80050CA4 D0 43 00 30 */ stfs f2, 0x30(r3) -/* 80050CA8 80 83 00 28 */ lwz r4, 0x28(r3) -/* 80050CAC 80 04 00 2C */ lwz r0, 0x2c(r4) -/* 80050CB0 54 00 05 A8 */ rlwinm r0, r0, 0, 0x16, 0x14 -/* 80050CB4 90 04 00 2C */ stw r0, 0x2c(r4) -/* 80050CB8 38 00 00 01 */ li r0, 1 -/* 80050CBC 98 03 00 37 */ stb r0, 0x37(r3) -/* 80050CC0 4E 80 00 20 */ blr diff --git a/asm/d/particle/d_particle_copoly/setEffectCenter__7dPaPo_cFPC12dKy_tevstr_cPC4cXyzUlUlPC4cXyzPC5csXyzPC4cXyzScff.s b/asm/d/particle/d_particle_copoly/setEffectCenter__7dPaPo_cFPC12dKy_tevstr_cPC4cXyzUlUlPC4cXyzPC5csXyzPC4cXyzScff.s deleted file mode 100644 index 76db20afb38..00000000000 --- a/asm/d/particle/d_particle_copoly/setEffectCenter__7dPaPo_cFPC12dKy_tevstr_cPC4cXyzUlUlPC4cXyzPC5csXyzPC4cXyzScff.s +++ /dev/null @@ -1,81 +0,0 @@ -lbl_80051008: -/* 80051008 94 21 FF B0 */ stwu r1, -0x50(r1) -/* 8005100C 7C 08 02 A6 */ mflr r0 -/* 80051010 90 01 00 54 */ stw r0, 0x54(r1) -/* 80051014 39 61 00 50 */ addi r11, r1, 0x50 -/* 80051018 48 31 11 B1 */ bl _savegpr_24 -/* 8005101C 7C 7F 1B 78 */ mr r31, r3 -/* 80051020 7C 98 23 78 */ mr r24, r4 -/* 80051024 7C D9 33 78 */ mr r25, r6 -/* 80051028 7C FA 3B 78 */ mr r26, r7 -/* 8005102C 7D 1B 43 78 */ mr r27, r8 -/* 80051030 7D 3C 4B 78 */ mr r28, r9 -/* 80051034 8B A1 00 5B */ lbz r29, 0x5b(r1) -/* 80051038 C0 05 00 00 */ lfs f0, 0(r5) -/* 8005103C D0 01 00 18 */ stfs f0, 0x18(r1) -/* 80051040 C0 05 00 04 */ lfs f0, 4(r5) -/* 80051044 D0 01 00 1C */ stfs f0, 0x1c(r1) -/* 80051048 C0 05 00 08 */ lfs f0, 8(r5) -/* 8005104C D0 01 00 20 */ stfs f0, 0x20(r1) -/* 80051050 38 81 00 18 */ addi r4, r1, 0x18 -/* 80051054 7D 45 53 78 */ mr r5, r10 -/* 80051058 7F 06 C3 78 */ mr r6, r24 -/* 8005105C 7F A8 EB 78 */ mr r8, r29 -/* 80051060 4B FF FC 65 */ bl checkWaterIn__7dPaPo_cFP4cXyzPC4cXyzPC12dKy_tevstr_cUlScff -/* 80051064 7C 7E 1B 78 */ mr r30, r3 -/* 80051068 38 00 00 FF */ li r0, 0xff -/* 8005106C 98 1F 00 34 */ stb r0, 0x34(r31) -/* 80051070 98 1F 00 35 */ stb r0, 0x35(r31) -/* 80051074 2C 1E 00 01 */ cmpwi r30, 1 -/* 80051078 40 82 00 6C */ bne lbl_800510E4 -/* 8005107C 57 40 03 DF */ rlwinm. r0, r26, 0, 0xf, 0xf -/* 80051080 41 82 00 64 */ beq lbl_800510E4 -/* 80051084 93 81 00 08 */ stw r28, 8(r1) -/* 80051088 93 A1 00 0C */ stw r29, 0xc(r1) -/* 8005108C 38 1F 00 34 */ addi r0, r31, 0x34 -/* 80051090 90 01 00 10 */ stw r0, 0x10(r1) -/* 80051094 38 1F 00 36 */ addi r0, r31, 0x36 -/* 80051098 90 01 00 14 */ stw r0, 0x14(r1) -/* 8005109C 7F E3 FB 78 */ mr r3, r31 -/* 800510A0 38 9F 00 08 */ addi r4, r31, 8 -/* 800510A4 7F C5 F3 78 */ mr r5, r30 -/* 800510A8 7F 06 C3 78 */ mr r6, r24 -/* 800510AC 38 E1 00 18 */ addi r7, r1, 0x18 -/* 800510B0 7F 28 CB 78 */ mr r8, r25 -/* 800510B4 7F 49 D3 78 */ mr r9, r26 -/* 800510B8 7C EA 3B 78 */ mr r10, r7 -/* 800510BC 4B FF FD C1 */ bl setEffect__7dPaPo_cFPUliPC12dKy_tevstr_cPC4cXyzUlUlPC4cXyzPC5csXyzScPUcPUc -/* 800510C0 88 1F 00 34 */ lbz r0, 0x34(r31) -/* 800510C4 28 00 00 02 */ cmplwi r0, 2 -/* 800510C8 40 82 00 14 */ bne lbl_800510DC -/* 800510CC 38 00 00 10 */ li r0, 0x10 -/* 800510D0 98 1F 00 34 */ stb r0, 0x34(r31) -/* 800510D4 38 00 00 14 */ li r0, 0x14 -/* 800510D8 98 1F 00 36 */ stb r0, 0x36(r31) -lbl_800510DC: -/* 800510DC 38 60 00 03 */ li r3, 3 -/* 800510E0 48 00 00 44 */ b lbl_80051124 -lbl_800510E4: -/* 800510E4 93 81 00 08 */ stw r28, 8(r1) -/* 800510E8 93 A1 00 0C */ stw r29, 0xc(r1) -/* 800510EC 38 1F 00 34 */ addi r0, r31, 0x34 -/* 800510F0 90 01 00 10 */ stw r0, 0x10(r1) -/* 800510F4 38 1F 00 36 */ addi r0, r31, 0x36 -/* 800510F8 90 01 00 14 */ stw r0, 0x14(r1) -/* 800510FC 7F E3 FB 78 */ mr r3, r31 -/* 80051100 38 9F 00 08 */ addi r4, r31, 8 -/* 80051104 7F C5 F3 78 */ mr r5, r30 -/* 80051108 7F 06 C3 78 */ mr r6, r24 -/* 8005110C 38 E1 00 18 */ addi r7, r1, 0x18 -/* 80051110 7F 28 CB 78 */ mr r8, r25 -/* 80051114 7F 49 D3 78 */ mr r9, r26 -/* 80051118 7F 6A DB 78 */ mr r10, r27 -/* 8005111C 4B FF FD 61 */ bl setEffect__7dPaPo_cFPUliPC12dKy_tevstr_cPC4cXyzUlUlPC4cXyzPC5csXyzScPUcPUc -/* 80051120 7F C3 F3 78 */ mr r3, r30 -lbl_80051124: -/* 80051124 39 61 00 50 */ addi r11, r1, 0x50 -/* 80051128 48 31 10 ED */ bl _restgpr_24 -/* 8005112C 80 01 00 54 */ lwz r0, 0x54(r1) -/* 80051130 7C 08 03 A6 */ mtlr r0 -/* 80051134 38 21 00 50 */ addi r1, r1, 0x50 -/* 80051138 4E 80 00 20 */ blr diff --git a/asm/d/particle/d_particle_copoly/setEffect__7dPaPo_cFPUliPC12dKy_tevstr_cPC4cXyzUlUlPC4cXyzPC5csXyzScPUcPUc.s b/asm/d/particle/d_particle_copoly/setEffect__7dPaPo_cFPUliPC12dKy_tevstr_cPC4cXyzUlUlPC4cXyzPC5csXyzScPUcPUc.s deleted file mode 100644 index ee537d6595d..00000000000 --- a/asm/d/particle/d_particle_copoly/setEffect__7dPaPo_cFPUliPC12dKy_tevstr_cPC4cXyzUlUlPC4cXyzPC5csXyzScPUcPUc.s +++ /dev/null @@ -1,110 +0,0 @@ -lbl_80050E7C: -/* 80050E7C 94 21 FF C0 */ stwu r1, -0x40(r1) -/* 80050E80 7C 08 02 A6 */ mflr r0 -/* 80050E84 90 01 00 44 */ stw r0, 0x44(r1) -/* 80050E88 39 61 00 40 */ addi r11, r1, 0x40 -/* 80050E8C 48 31 13 51 */ bl _savegpr_29 -/* 80050E90 7C CC 33 78 */ mr r12, r6 -/* 80050E94 7D 1E 43 78 */ mr r30, r8 -/* 80050E98 7D 2B 4B 78 */ mr r11, r9 -/* 80050E9C 80 01 00 48 */ lwz r0, 0x48(r1) -/* 80050EA0 88 C1 00 4F */ lbz r6, 0x4f(r1) -/* 80050EA4 83 A1 00 50 */ lwz r29, 0x50(r1) -/* 80050EA8 83 E1 00 54 */ lwz r31, 0x54(r1) -/* 80050EAC 28 0A 00 00 */ cmplwi r10, 0 -/* 80050EB0 41 82 00 F4 */ beq lbl_80050FA4 -/* 80050EB4 C0 0A 00 00 */ lfs f0, 0(r10) -/* 80050EB8 D0 01 00 18 */ stfs f0, 0x18(r1) -/* 80050EBC C0 0A 00 04 */ lfs f0, 4(r10) -/* 80050EC0 D0 01 00 1C */ stfs f0, 0x1c(r1) -/* 80050EC4 C0 0A 00 08 */ lfs f0, 8(r10) -/* 80050EC8 D0 01 00 20 */ stfs f0, 0x20(r1) -/* 80050ECC 2C 05 00 01 */ cmpwi r5, 1 -/* 80050ED0 40 82 00 18 */ bne lbl_80050EE8 -/* 80050ED4 80 63 00 28 */ lwz r3, 0x28(r3) -/* 80050ED8 C0 03 01 CC */ lfs f0, 0x1cc(r3) -/* 80050EDC D0 01 00 1C */ stfs f0, 0x1c(r1) -/* 80050EE0 38 A3 01 80 */ addi r5, r3, 0x180 -/* 80050EE4 48 00 00 18 */ b lbl_80050EFC -lbl_80050EE8: -/* 80050EE8 2C 05 00 02 */ cmpwi r5, 2 -/* 80050EEC 40 82 00 08 */ bne lbl_80050EF4 -/* 80050EF0 65 6B 80 00 */ oris r11, r11, 0x8000 -lbl_80050EF4: -/* 80050EF4 80 63 00 28 */ lwz r3, 0x28(r3) -/* 80050EF8 38 A3 00 F0 */ addi r5, r3, 0xf0 -lbl_80050EFC: -/* 80050EFC 90 01 00 08 */ stw r0, 8(r1) -/* 80050F00 38 00 00 00 */ li r0, 0 -/* 80050F04 90 01 00 0C */ stw r0, 0xc(r1) -/* 80050F08 90 C1 00 10 */ stw r6, 0x10(r1) -/* 80050F0C 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80050F10 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -/* 80050F14 80 63 5D 3C */ lwz r3, 0x5d3c(r3) -/* 80050F18 7C E6 3B 78 */ mr r6, r7 -/* 80050F1C 38 E1 00 18 */ addi r7, r1, 0x18 -/* 80050F20 7D 88 63 78 */ mr r8, r12 -/* 80050F24 7F C9 F3 78 */ mr r9, r30 -/* 80050F28 7D 6A 5B 78 */ mr r10, r11 -/* 80050F2C 4B FF CA 5D */ bl setCommonPoly__13dPa_control_cFPUlP13cBgS_PolyInfoPC4cXyzPC4cXyzPC12dKy_tevstr_cUlUlPC5csXyzPC4cXyzSc -/* 80050F30 98 7D 00 00 */ stb r3, 0(r29) -/* 80050F34 54 60 C6 3E */ rlwinm r0, r3, 0x18, 0x18, 0x1f -/* 80050F38 98 1D 00 01 */ stb r0, 1(r29) -/* 80050F3C 88 7D 00 00 */ lbz r3, 0(r29) -/* 80050F40 28 03 00 FF */ cmplwi r3, 0xff -/* 80050F44 41 82 00 2C */ beq lbl_80050F70 -/* 80050F48 38 00 00 01 */ li r0, 1 -/* 80050F4C 7C 00 18 30 */ slw r0, r0, r3 -/* 80050F50 7F C0 00 39 */ and. r0, r30, r0 -/* 80050F54 41 82 00 10 */ beq lbl_80050F64 -/* 80050F58 38 00 00 00 */ li r0, 0 -/* 80050F5C 98 1F 00 00 */ stb r0, 0(r31) -/* 80050F60 48 00 00 90 */ b lbl_80050FF0 -lbl_80050F64: -/* 80050F64 38 00 00 14 */ li r0, 0x14 -/* 80050F68 98 1F 00 00 */ stb r0, 0(r31) -/* 80050F6C 48 00 00 84 */ b lbl_80050FF0 -lbl_80050F70: -/* 80050F70 88 7D 00 01 */ lbz r3, 1(r29) -/* 80050F74 28 03 00 FF */ cmplwi r3, 0xff -/* 80050F78 41 82 00 78 */ beq lbl_80050FF0 -/* 80050F7C 38 00 00 01 */ li r0, 1 -/* 80050F80 7C 00 18 30 */ slw r0, r0, r3 -/* 80050F84 7F C0 00 39 */ and. r0, r30, r0 -/* 80050F88 41 82 00 10 */ beq lbl_80050F98 -/* 80050F8C 38 00 00 00 */ li r0, 0 -/* 80050F90 98 1F 00 00 */ stb r0, 0(r31) -/* 80050F94 48 00 00 5C */ b lbl_80050FF0 -lbl_80050F98: -/* 80050F98 38 00 00 14 */ li r0, 0x14 -/* 80050F9C 98 1F 00 00 */ stb r0, 0(r31) -/* 80050FA0 48 00 00 50 */ b lbl_80050FF0 -lbl_80050FA4: -/* 80050FA4 88 7F 00 00 */ lbz r3, 0(r31) -/* 80050FA8 28 03 00 00 */ cmplwi r3, 0 -/* 80050FAC 41 82 00 44 */ beq lbl_80050FF0 -/* 80050FB0 38 03 FF FF */ addi r0, r3, -1 -/* 80050FB4 98 1F 00 00 */ stb r0, 0(r31) -/* 80050FB8 7C 9F 23 78 */ mr r31, r4 -/* 80050FBC 3B A0 00 00 */ li r29, 0 -/* 80050FC0 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha /* 0x804061C0@ha */ -/* 80050FC4 3B C3 61 C0 */ addi r30, r3, g_dComIfG_gameInfo@l /* 0x804061C0@l */ -lbl_80050FC8: -/* 80050FC8 80 9F 00 00 */ lwz r4, 0(r31) -/* 80050FCC 28 04 00 00 */ cmplwi r4, 0 -/* 80050FD0 41 82 00 10 */ beq lbl_80050FE0 -/* 80050FD4 80 7E 5D 3C */ lwz r3, 0x5d3c(r30) -/* 80050FD8 4B FF C7 99 */ bl setStopContinue__13dPa_control_cFUl -/* 80050FDC 90 7F 00 00 */ stw r3, 0(r31) -lbl_80050FE0: -/* 80050FE0 3B BD 00 01 */ addi r29, r29, 1 -/* 80050FE4 2C 1D 00 08 */ cmpwi r29, 8 -/* 80050FE8 3B FF 00 04 */ addi r31, r31, 4 -/* 80050FEC 41 80 FF DC */ blt lbl_80050FC8 -lbl_80050FF0: -/* 80050FF0 39 61 00 40 */ addi r11, r1, 0x40 -/* 80050FF4 48 31 12 35 */ bl _restgpr_29 -/* 80050FF8 80 01 00 44 */ lwz r0, 0x44(r1) -/* 80050FFC 7C 08 03 A6 */ mtlr r0 -/* 80051000 38 21 00 40 */ addi r1, r1, 0x40 -/* 80051004 4E 80 00 20 */ blr diff --git a/include/MSL_C/math.h b/include/MSL_C/math.h index 366ee88dec9..eeae13b1309 100644 --- a/include/MSL_C/math.h +++ b/include/MSL_C/math.h @@ -9,6 +9,7 @@ #define M_PI 3.14159265358979323846f #define DEG_TO_RAD(degrees) (degrees * (M_PI / 180.0f)) +#define RAD_TO_DEG(radians) (radians / (180.0f / M_PI)) #ifdef __cplusplus extern "C" { diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index e93a5b9f1e9..fc30720ddce 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -1848,7 +1848,7 @@ inline u8 dComIfGp_att_getCatchChgItem() { return dComIfGp_getAttention().getCatchChgItem(); } -inline int dComIfGp_att_ZHintRequest(fopAc_ac_c *param_1, int param_2) { +inline int dComIfGp_att_ZHintRequest(fopAc_ac_c* param_1, int param_2) { return dComIfGp_getAttention().ZHintRequest(param_1, param_2); } @@ -1858,10 +1858,10 @@ inline void dComIfGp_att_LookRequest(fopAc_ac_c* param_0, f32 i_horizontalDist, param_5); } -inline void dComIfGp_att_CatchRequest(fopAc_ac_c* param_0, u8 param_1, f32 i_horizontalDist, f32 i_upDist, - f32 i_downDist, s16 i_angle, int param_5) { - dComIfGp_getAttention().getCatghTarget().request(param_0, param_1, i_horizontalDist, i_upDist, i_downDist, i_angle, - param_5); +inline void dComIfGp_att_CatchRequest(fopAc_ac_c* param_0, u8 param_1, f32 i_horizontalDist, + f32 i_upDist, f32 i_downDist, s16 i_angle, int param_5) { + dComIfGp_getAttention().getCatghTarget().request(param_0, param_1, i_horizontalDist, i_upDist, + i_downDist, i_angle, param_5); } inline J2DGrafContext* dComIfGp_getCurrentGrafPort() { @@ -2392,6 +2392,14 @@ inline stage_vrbox_info_class* dComIfGp_getStageVrboxcolInfo() { return g_dComIfG_gameInfo.play.getStage().getVrboxInfo(); } +inline stage_plight_info_class* dComIfGp_getStagePlightInfo() { + return g_dComIfG_gameInfo.play.getStage().getPlightInfo(); +} + +inline int dComIfGp_getStagePlightNumInfo() { + return g_dComIfG_gameInfo.play.getStage().getPlightNumInfo(); +} + inline u8 dComIfGp_isHeapLockFlag() { return g_dComIfG_gameInfo.play.isHeapLockFlag(); } @@ -3246,6 +3254,26 @@ inline void dComIfGp_particle_draw2DmenuBack(JPADrawInfo* i_drawInfo) { } } +inline void dComIfGp_particle_setWaterRipple(u32* param_0, cBgS_PolyInfo& param_1, + const cXyz* param_2, f32 param_3, + const dKy_tevstr_c* param_4, const cXyz* param_5, + s8 param_6) { + g_dComIfG_gameInfo.play.getParticle()->setWaterRipple(param_0, param_1, param_2, param_3, + param_4, param_5, param_6); +} + +inline u16 dComIfGp_particle_setCommonPoly(u32* param_0, cBgS_PolyInfo* param_1, + const cXyz* param_2, const cXyz* param_3, + const dKy_tevstr_c* param_4, u32 param_5, u32 param_6, + const csXyz* param_7, const cXyz* param_8, s8 param_9) { + return g_dComIfG_gameInfo.play.getParticle()->setCommonPoly( + param_0, param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8, param_9); +} + +inline u32 dComIfGp_particle_setStopContinue(u32 param_0) { + return g_dComIfG_gameInfo.play.getParticle()->setStopContinue(param_0); +} + inline int dComIfG_getTimerNowTimeMs() { return g_dComIfG_gameInfo.play.getTimerNowTimeMs(); } diff --git a/include/d/d_stage.h b/include/d/d_stage.h index b7ff0a72ada..b91709d5ae8 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -108,7 +108,8 @@ struct stage_plight_info_class { /* 0x00 */ Vec m_position; /* 0x0C */ f32 m_radius; /* 0x10 */ u8 field_0x10[0x18 - 0x10]; - /* 0x18 */ GXColor m_color; + /* 0x18 */ color_RGB_class m_color; + /* 0x1B */ u8 m_fluctuation; }; // Size: 0x1C // PALE diff --git a/include/d/kankyo/d_kankyo.h b/include/d/kankyo/d_kankyo.h index f0375fad915..017558f1e10 100644 --- a/include/d/kankyo/d_kankyo.h +++ b/include/d/kankyo/d_kankyo.h @@ -52,9 +52,6 @@ void dKy_shadow_mode_set(u8 mode); void dKy_shadow_mode_reset(u8 mode); struct LIGHT_INFLUENCE { - /* 800CFC7C */ ~LIGHT_INFLUENCE() {} - /* 8019F4F8 */ LIGHT_INFLUENCE() {} - /* 0x00 */ cXyz mPosition; /* 0x0C */ GXColorS10 mColor; /* 0x14 */ f32 mPow; @@ -74,9 +71,6 @@ struct WIND_INFLUENCE { }; struct WIND_INF_ENTITY { - /* 8019F4B8 */ ~WIND_INF_ENTITY(); - /* 8019F4F4 */ WIND_INF_ENTITY(); - /* 0x00 */ u8 mInUse; /* 0x04 */ f32 mMinRadius; /* 0x08 */ f32 mSpeed; @@ -105,35 +99,29 @@ struct DALKMIST_INFLUENCE { }; struct DUNGEON_LIGHT { - /* 8019F478 */ ~DUNGEON_LIGHT(); - /* 8019F4B4 */ DUNGEON_LIGHT(); - /* 0x00 */ cXyz mPosition; /* 0x0C */ GXColor mColor; /* 0x10 */ f32 mRefDistance; - /* 0x14 */ u8 field_0x14[4]; + /* 0x14 */ f32 field_0x14; /* 0x18 */ f32 mCutoffAngle; /* 0x1C */ f32 mAngleX; /* 0x20 */ f32 mAngleY; /* 0x24 */ u8 mAngleAttenuation; /* 0x25 */ u8 mDistAttenuation; /* 0x26 */ u8 field_0x26[6]; - /* 0x2C */ LIGHT_INFLUENCE field_0x2c; + /* 0x2C */ LIGHT_INFLUENCE mInfluence; }; // Size: 0x4C struct BOSS_LIGHT { - /* 8019F438 */ ~BOSS_LIGHT(); - /* 8019F474 */ BOSS_LIGHT(); - /* 0x00 */ cXyz mPos; /* 0x0C */ GXColor mColor; - /* 0x10 */ f32 field_0x10; + /* 0x10 */ f32 mRefDistance; /* 0x14 */ f32 field_0x14; - /* 0x18 */ f32 field_0x18; - /* 0x1C */ f32 field_0x1c; - /* 0x20 */ f32 field_0x20; - /* 0x24 */ u8 field_0x24; - /* 0x25 */ u8 field_0x25; + /* 0x18 */ f32 mCutoffAngle; + /* 0x1C */ f32 mAngleX; + /* 0x20 */ f32 mAngleY; + /* 0x24 */ u8 mAngleAttenuation; + /* 0x25 */ u8 mDistAttenuation; /* 0x26 */ u8 field_0x26; }; // Size: 0x28 @@ -159,8 +147,6 @@ struct EF_THUNDER { }; struct GB_MAPLE_COL_CHANGE { - /* 8019F400 */ GB_MAPLE_COL_CHANGE(); - /* 0x00 */ J3DLightObj field_0x0; }; // Size: 0x74 @@ -369,9 +355,9 @@ public: /* 0x0F24 */ int field_0xf24; /* 0x0F28 */ dKankyo_odour_Packet* mpOdourPacket; /* 0x0F2C */ u8 field_0xf2c; - /* 0x0F30 */ J3DModel* field_0xf30; + /* 0x0F30 */ J3DModel* mpUndwaterEfModel; /* 0x0F34 */ f32 field_0xf34; - /* 0x0F38 */ JKRSolidHeap* field_0xf38; + /* 0x0F38 */ JKRSolidHeap* mpUndwaterEfHeap; /* 0x0F3C */ u8 field_0xf3c; /* 0x0F3D */ u8 field_0xf3d; /* 0x0F40 */ f32 field_0xf40; @@ -389,7 +375,7 @@ public: /* 0x1051 */ u8 field_0x1051; /* 0x1054 */ int field_0x1054; /* 0x1058 */ dKankyo_evil_Packet* mpEvilPacket; - /* 0x105C */ mDoExt_btkAnm* field_0x105c; + /* 0x105C */ mDoExt_btkAnm* mpUndwaterBtk; /* 0x1060 */ kytag08_class* field_0x1060; /* 0x1064 */ Vec field_0x1064; /* 0x1070 */ cXyz mSunPos2; @@ -407,12 +393,8 @@ public: /* 0x10F0 */ GXColorS10 field_0x10f0; /* 0x10F8 */ GXColorS10 field_0x10f8; /* 0x1100 */ GXColorS10 mActorAmbience; - /* 0x1108 */ GXColorS10 mTerrainAmbienceBG0; - /* 0x1110 */ GXColorS10 mTerrainAmbienceBG1; - /* 0x1118 */ GXColorS10 mTerrainAmbienceBG2; - /* 0x1120 */ GXColorS10 mTerrainAmbienceBG3; - /* 0x1128 */ GXColorS10 field_0x1128; - /* 0x1130 */ u8 field_0x1130[0x28]; + /* 0x1108 */ GXColorS10 mTerrainAmbienceBG[4]; + /* 0x1128 */ GXColorS10 field_0x1128[6]; /* 0x1158 */ GXColorS10 mFogColor; /* 0x1160 */ GXColorS10 mActorAddColAmb; /* 0x1168 */ u8 field_0x1168[8]; @@ -608,5 +590,7 @@ void dKy_ParticleColor_get_bg(cXyz* param_0, dKy_tevstr_c* param_1, _GXColor* pa _GXColor* param_3, _GXColor* param_4, _GXColor* param_5, f32 param_6); _GXColor dKy_light_influence_col(_GXColor* param_0, f32 param_1); +static void dKy_WaterIn_Light_set(); + #endif /* D_KANKYO_D_KANKYO_H */ diff --git a/include/d/kankyo/d_kankyo_data.h b/include/d/kankyo/d_kankyo_data.h index 77bac704135..47d94c53ea3 100644 --- a/include/d/kankyo/d_kankyo_data.h +++ b/include/d/kankyo/d_kankyo_data.h @@ -53,7 +53,7 @@ enum BloomType { }; #define BLOOMINFO_MAX 64 -class dKydata_BloomInfo_c { +class dkydata_bloomInfo_info_class { public: /* 0x0 */ u8 mType; /* 0x1 */ u8 mThreshold; @@ -80,6 +80,6 @@ void* dKyd_maple_col_getp(); dKydata_darkworldInfo_c* dKyd_darkworld_tbl_getp(); dKydata_lightsizeInfo_c* dKyd_light_size_tbl_getp(); dKydata_lightsizeInfo_c* dKyd_light_tw_size_tbl_getp(); -dKydata_BloomInfo_c* dKyd_BloomInf_tbl_getp(int); +dkydata_bloomInfo_info_class* dKyd_BloomInf_tbl_getp(int); #endif /* D_KANKYO_D_KANKYO_DATA_H */ diff --git a/include/d/particle/d_particle_copoly.h b/include/d/particle/d_particle_copoly.h index aee43e0c063..85f3bb1ef2f 100644 --- a/include/d/particle/d_particle_copoly.h +++ b/include/d/particle/d_particle_copoly.h @@ -6,43 +6,86 @@ class dBgS_Acch; class dKy_tevstr_c; +class JPABaseEmitter; class dPaPo_c { public: /* 80050C9C */ void init(dBgS_Acch*, f32, f32); - /* 80050CC4 */ void checkWaterIn(cXyz*, cXyz const*, dKy_tevstr_c const*, u32, s8, f32, f32); + /* 80050CC4 */ int checkWaterIn(cXyz*, cXyz const*, dKy_tevstr_c const*, u32, s8, f32, f32); /* 80050E7C */ void setEffect(u32*, int, dKy_tevstr_c const*, cXyz const*, u32, u32, cXyz const*, csXyz const*, s8, u8*, u8*); - /* 80051008 */ void setEffectCenter(dKy_tevstr_c const*, cXyz const*, u32, u32, cXyz const*, + /* 80051008 */ int setEffectCenter(dKy_tevstr_c const*, cXyz const*, u32, u32, cXyz const*, csXyz const*, cXyz const*, s8, f32, f32); /* 8005113C */ void clearID(u32*, u8*); - /* 80051488 */ void getCenterEffType(int) const; - /* 80051524 */ void getCenterEmitter(int, int); + /* 80051488 */ u8 getCenterEffType(int) const; + /* 80051524 */ JPABaseEmitter* getCenterEmitter(int, int); - /* 0x00 */ u8 field_0x00[0x28]; + void clearCenterID() { clearID(field_0x8[0], &field_0x36); } + + /* 0x00 */ u32 field_0x0[2]; + /* 0x08 */ u32 field_0x8[2][4]; /* 0x28 */ dBgS_Acch* field_0x28; - /* 0x2C */ float field_0x2c; - /* 0x30 */ float field_0x30; - /* 0x34 */ u8 field_0x34; - /* 0x35 */ u8 field_0x35; + /* 0x2C */ f32 mWaterOffset; + /* 0x30 */ f32 mRippleOffset; + /* 0x34 */ u8 mCenterEffType[2]; /* 0x36 */ u8 field_0x36; /* 0x37 */ u8 field_0x37; }; -struct dPaPoT_c { - /* 8005115C */ void setEffectTwo(dKy_tevstr_c const*, cXyz const*, u32, u32, cXyz const*, +class dPaPoT_c : public dPaPo_c { +public: + /* 8005115C */ int setEffectTwo(dKy_tevstr_c const*, cXyz const*, u32, u32, cXyz const*, cXyz const*, cXyz const*, csXyz const*, cXyz const*, s8, f32, f32); /* 80051294 */ void clearTwoAllID(); - /* 80051470 */ void getRightEffType(int) const; - /* 8005147C */ void getLeftEffType(int) const; - /* 80051494 */ void getRightEmitter(int, int); - /* 800514DC */ void getLeftEmitter(int, int); + /* 80051470 */ u8 getRightEffType(int) const; + /* 8005147C */ u8 getLeftEffType(int) const; + /* 80051494 */ JPABaseEmitter* getRightEmitter(int, int); + /* 800514DC */ JPABaseEmitter* getLeftEmitter(int, int); - static u8 m_typeTwoData[36]; - static u8 m_emitterTwoData[36]; + void clearLeftID() { clearID(mLeftEmitter[0], &field_0x7c); } + void clearRightID() { clearID(mRightEmitter[0], &field_0x7d); } - u8 field_0x0[0x80]; + typedef u8 (dPaPoT_c::*effTypeFunc)(int) const; + typedef JPABaseEmitter* (dPaPoT_c::*emitterFunc)(int, int); + + static effTypeFunc m_typeTwoData[]; + static emitterFunc m_emitterTwoData[]; + + /* 0x38 */ u32 mLeftEmitter[2][4]; + /* 0x58 */ u32 mRightEmitter[2][4]; + /* 0x78 */ u8 mLeftEffType[2]; + /* 0x7A */ u8 mRightEffType[2]; + /* 0x7C */ u8 field_0x7c; + /* 0x7D */ u8 field_0x7d; +}; + +class dPaPoF_c : public dPaPoT_c { +public: + /* 800512E8 */ int setEffectFour(dKy_tevstr_c const*, cXyz const*, u32, u32, cXyz const*, + cXyz const*, cXyz const*, cXyz const*, cXyz const*, + csXyz const*, cXyz const*, s8, f32, f32); + /* 80051424 */ void clearFourAllID(); + /* 8005156C */ u8 getBackRightEffType(int) const; + /* 80051578 */ u8 getBackLeftEffType(int) const; + /* 80051584 */ JPABaseEmitter* getBackRightEmitter(int, int); + /* 800515CC */ JPABaseEmitter* getBackLeftEmitter(int, int); + + void clearBLeftID() { clearID(mBackLeftEmitter[0], &field_0xc4); } + void clearBRightID() { clearID(mBackRightEmitter[0], &field_0xc5); } + + typedef u8 (dPaPoF_c::*effTypeFunc)(int) const; + typedef JPABaseEmitter* (dPaPoF_c::*emitterFunc)(int, int); + + static effTypeFunc m_typeFourData[]; + static emitterFunc m_emitterFourData[]; + + /* 0x80 */ u32 mBackLeftEmitter[2][4]; + /* 0xA0 */ u32 mBackRightEmitter[2][4]; + /* 0xC0 */ u8 mBackLeftEffType[2]; + /* 0xC2 */ u8 mBackRightEffType[2]; + /* 0xC4 */ u8 field_0xc4; + /* 0xC5 */ u8 field_0xc5; }; #endif /* D_PARTICLE_D_PARTICLE_COPOLY_H */ diff --git a/include/m_Do/m_Do_graphic.h b/include/m_Do/m_Do_graphic.h index c924bb1e8e5..d9ea12edd07 100644 --- a/include/m_Do/m_Do_graphic.h +++ b/include/m_Do/m_Do_graphic.h @@ -24,7 +24,14 @@ public: /* 80009650 */ void draw(); u8 getEnable() { return mEnable; } + void setEnable(u8 i_enable) { mEnable = i_enable; } GXColor* getMonoColor() { return &mMonoColor; } + void setPoint(u8 i_point) { mPoint = i_point; } + void setBlureSize(u8 i_size) { mBlureSize = i_size; } + void setBlureRatio(u8 i_ratio) { mBlureRatio = i_ratio; } + void setBlendColor(GXColor i_color) { mBlendColor = i_color; } + void setMonoColor(GXColor i_color) { mMonoColor = i_color; } + void setMode(u8 i_mode) { mMode = i_mode; } /* 0x00 */ GXColor mBlendColor; /* 0x04 */ GXColor mMonoColor; diff --git a/rel/d/a/kytag/d_a_kytag06/d_a_kytag06.cpp b/rel/d/a/kytag/d_a_kytag06/d_a_kytag06.cpp index 2404dca01c9..0bbd675a6f6 100644 --- a/rel/d/a/kytag/d_a_kytag06/d_a_kytag06.cpp +++ b/rel/d/a/kytag/d_a_kytag06/d_a_kytag06.cpp @@ -609,13 +609,13 @@ static void daKytag06_type_07_Execute(kytag06_class* i_this) { if (camera != NULL) { if (camera->mLookat.mEye.y > 0.0f) { dKy_BossLight_set(&spX, &color, i_this->mWindPower * 2.0f, 0); - g_env_light.mTerrainAmbienceBG3.r = (u8)(i_this->mWindPower * 230.0f + 25.0f); - g_env_light.mTerrainAmbienceBG3.g = (u8)(i_this->mWindPower * 215.0f + 30.0f); - g_env_light.mTerrainAmbienceBG3.b = (u8)(i_this->mWindPower * 155.0f + 25.0f); + g_env_light.mTerrainAmbienceBG[3].r = (u8)(i_this->mWindPower * 230.0f + 25.0f); + g_env_light.mTerrainAmbienceBG[3].g = (u8)(i_this->mWindPower * 215.0f + 30.0f); + g_env_light.mTerrainAmbienceBG[3].b = (u8)(i_this->mWindPower * 155.0f + 25.0f); } else { - g_env_light.mTerrainAmbienceBG3.r = 0; - g_env_light.mTerrainAmbienceBG3.g = 0; - g_env_light.mTerrainAmbienceBG3.b = 0; + g_env_light.mTerrainAmbienceBG[3].r = 0; + g_env_light.mTerrainAmbienceBG[3].g = 0; + g_env_light.mTerrainAmbienceBG[3].b = 0; g_env_light.mThunderEff.mMode = 0; } } @@ -777,9 +777,9 @@ static void daKytag06_type_06_Execute(kytag06_class* i_this) { break; } - g_env_light.mTerrainAmbienceBG3.r = (u8)(i_this->mWindPower * 245.0f + 10.0f); - g_env_light.mTerrainAmbienceBG3.g = (u8)(i_this->mWindPower * 185.0f + 15.0f); - g_env_light.mTerrainAmbienceBG3.b = (u8)(i_this->mWindPower * 130.0f + 20.0f); + g_env_light.mTerrainAmbienceBG[3].r = (u8)(i_this->mWindPower * 245.0f + 10.0f); + g_env_light.mTerrainAmbienceBG[3].g = (u8)(i_this->mWindPower * 185.0f + 15.0f); + g_env_light.mTerrainAmbienceBG[3].b = (u8)(i_this->mWindPower * 130.0f + 20.0f); static cXyz c_pos(0.0f, 0.0f, 0.0f); diff --git a/src/d/a/d_a_alink.cpp b/src/d/a/d_a_alink.cpp index 0d512c054b0..3155fbd7553 100644 --- a/src/d/a/d_a_alink.cpp +++ b/src/d/a/d_a_alink.cpp @@ -54,16 +54,6 @@ struct daNpcT_ActorMngr_c { /* 80145708 */ void getActorP(); }; -struct dPaPoF_c { - /* 800512E8 */ void setEffectFour(dKy_tevstr_c const*, cXyz const*, u32, u32, cXyz const*, - cXyz const*, cXyz const*, cXyz const*, cXyz const*, - csXyz const*, cXyz const*, s8, f32, f32); - /* 80051424 */ void clearFourAllID(); - - static u8 m_typeFourData[60]; - static u8 m_emitterFourData[60 + 28 /* padding */]; -}; - struct JAISeq { /* 802A0A8C */ JAISeq(JAISeqMgr*, JAISoundStrategyMgr*); }; diff --git a/src/d/kankyo/d_kankyo.cpp b/src/d/kankyo/d_kankyo.cpp index 34d65459aaa..e4b4cdb173f 100644 --- a/src/d/kankyo/d_kankyo.cpp +++ b/src/d/kankyo/d_kankyo.cpp @@ -6,13 +6,14 @@ #include "d/kankyo/d_kankyo.h" #include "JSystem/J3DGraphBase/J3DMaterial.h" #include "SSystem/SComponent/c_counter.h" +#include "SSystem/SComponent/c_math.h" +#include "d/a/d_a_player.h" +#include "d/kankyo/d_kankyo_rain.h" #include "d/meter/d_meter2_info.h" #include "d/msg/d_msg_object.h" #include "dol2asm.h" -#include "dolphin/os/OS.h" -#include "dolphin/types.h" -#include "global.h" #include "m_Do/m_Do_audio.h" +#include "m_Do/m_Do_graphic.h" #include "rel/d/a/kytag/d_a_kytag08/d_a_kytag08.h" // @@ -345,6 +346,16 @@ extern "C" u8 mStatus__20dStage_roomControl_c[65792]; extern "C" u8 sincosTable___5JMath[65536]; extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; +// setSunpos calls these functions as inlines somehow +// these need to be moved to MSL_C once an appropriate solution is found +inline float sinf(float x) { + return sin(x); +} + +inline float cosf(float x) { + return cos(x); +} + // // Declarations: // @@ -857,6 +868,49 @@ SECTION_SDATA2 static f32 lit_4442 = 90.0f; SECTION_SDATA2 static f64 lit_4444 = 4503601774854144.0 /* cast s32 to float */; /* 8019CFE4-8019D1A0 197924 01BC+00 4/4 0/0 0/0 .text dKy_twi_wolflight_set__Fi */ +// matches with literals +#ifdef NONMATCHING +static void dKy_twi_wolflight_set(int i_lightIdx) { + dScnKy_env_light_c* env_light = i_dKy_getEnvlight(); + camera_class* camera_p = dComIfGp_getCamera(0); + cXyz vectle; + + if (camera_p == NULL) { + return; + } + + s16 spA; + s16 sp8; + dKy_pos2_get_angle(&camera_p->mLookat.mCenter, &camera_p->mLookat.mEye, &spA, &sp8); + dKyr_get_vectle_calc(&camera_p->mLookat.mCenter, &camera_p->mLookat.mEye, &vectle); + + env_light->field_0x0c18[i_lightIdx].mPos.x = camera_p->mLookat.mEye.x + vectle.x * 300.0f; + env_light->field_0x0c18[i_lightIdx].mPos.y = camera_p->mLookat.mEye.y + vectle.y * 300.0f; + env_light->field_0x0c18[i_lightIdx].mPos.z = camera_p->mLookat.mEye.z + vectle.z * 300.0f; + + switch (g_env_light.field_0x1309) { + case 0: + env_light->field_0x0c18[i_lightIdx].mPos.y += 1500.0f; + break; + case 1: + env_light->field_0x0c18[i_lightIdx].mPos.y += 500.0f; + break; + case 2: + env_light->field_0x0c18[i_lightIdx].mPos.y += 1000.0f; + break; + case 3: + env_light->field_0x0c18[i_lightIdx].mPos.y += 1500.0f; + break; + default: + env_light->field_0x0c18[i_lightIdx].mPos.y += 500.0f; + break; + } + + spA += 6000; + env_light->field_0x0c18[i_lightIdx].field_0x1c = cM_sht2d(-spA); + env_light->field_0x0c18[i_lightIdx].field_0x20 = cM_sht2d(-sp8) + 90.0f; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -865,12 +919,35 @@ static asm void dKy_twi_wolflight_set(int param_0) { #include "asm/d/kankyo/d_kankyo/dKy_twi_wolflight_set__Fi.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80453C38-80453C3C 002238 0004+00 1/1 0/0 0/0 .sdata2 @4477 */ SECTION_SDATA2 static f32 lit_4477 = 57.2957763671875f; /* 8019D1A0-8019D2C4 197AE0 0124+00 3/3 0/0 0/0 .text dKy_lightdir_set__FffP3Vec */ +// matches with literals +#ifdef NONMATCHING +static void dKy_lightdir_set(f32 param_0, f32 param_1, Vec* param_2) { + MtxP view_mtx = j3dSys.getViewMtx(); + Mtx sp20; + Vec sp14; + cXyz sp8; + + f32 deg0 = RAD_TO_DEG(param_0); + f32 deg1 = RAD_TO_DEG(param_1); + sp8.x = cM_fcos(deg0) * cM_fcos(deg1); + sp8.y = cM_fsin(deg0); + sp8.z = cM_fcos(deg0) * cM_fsin(deg1); + + mDoMtx_inverseTranspose(view_mtx, sp20); + cMtx_multVec(sp20, &sp8, &sp14); + + param_2->x = sp14.x; + param_2->y = sp14.y; + param_2->z = sp14.z; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -879,6 +956,7 @@ static asm void dKy_lightdir_set(f32 param_0, f32 param_1, Vec* param_2) { #include "asm/d/kankyo/d_kankyo/dKy_lightdir_set__FffP3Vec.s" } #pragma pop +#endif /* ############################################################################################## */ /* 803BBF3C-803BBF58 -00001 001C+00 1/1 0/0 0/0 .data @4511 */ @@ -920,6 +998,62 @@ SECTION_SDATA2 static f32 lit_4509 = 4.0f; SECTION_SDATA2 static f32 lit_4510 = -2.0f; /* 8019D2C4-8019D44C 197C04 0188+00 3/2 0/0 0/0 .text dKy_GXInitLightSpot__FP12J3DLightInfofUc */ +// should be equivalent, but storing floats in psq registers? +#ifdef NONMATCHING +static void dKy_GXInitLightSpot(J3DLightInfo* param_0, f32 param_1, u8 param_2) { + if (param_1 <= 0.0f || param_1 > 90.0f) { + param_2 = 0; + } + + f32 var_f4 = cosf((param_1 * M_PI) / 180.0f); + Vec var_f6; + + switch (param_2) { + case 1: + var_f6.x = var_f4 * -1000.0f; + var_f6.y = 1000.0f; + var_f6.z = 0.0f; + break; + case 2: + var_f6.x = -var_f4 / (1.0f - var_f4); + var_f6.y = 1.0f / (1.0f - var_f4); + var_f6.z = 0.0f; + break; + case 3: + var_f6.x = 0.0f; + var_f6.y = -var_f4 / (1.0f - var_f4); + var_f6.z = 1.0f / (1.0f - var_f4); + break; + case 4: + f32 temp_f1 = ((1.0f - var_f4) * (1.0f - var_f4)); + var_f6.x = (var_f4 * (var_f4 - 2.0f)) / temp_f1; + var_f6.y = 2.0f / temp_f1; + var_f6.z = -1.0f / temp_f1; + break; + case 5: + f32 temp_f1_2 = ((1.0f - var_f4) * (1.0f - var_f4)); + var_f6.x = (var_f4 * -4.0f) / temp_f1_2; + var_f6.y = ((var_f4 + 1.0f) * 4.0f) / temp_f1_2; + var_f6.z = -4.0f / temp_f1_2; + break; + case 6: + f32 temp_f1_3 = ((1.0f - var_f4) * (1.0f - var_f4)); + var_f6.x = 1.0f - (var_f4 * 2.0f * var_f4) / temp_f1_3; + var_f6.y = (var_f4 * 4.0f) / temp_f1_3; + var_f6.z = -2.0f / temp_f1_3; + break; + case 0: + var_f6.x = 1.0f; + var_f6.y = 0.0f; + var_f6.z = 0.0f; + break; + } + + param_0->mCosAtten.x = var_f6.x; + param_0->mCosAtten.y = var_f6.y; + param_0->mCosAtten.z = var_f6.z; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -928,6 +1062,7 @@ static asm void dKy_GXInitLightSpot(J3DLightInfo* param_0, f32 param_1, u8 param #include "asm/d/kankyo/d_kankyo/dKy_GXInitLightSpot__FP12J3DLightInfofUc.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80453C60-80453C64 002260 0004+00 8/8 0/0 0/0 .sdata2 @4529 */ @@ -1065,15 +1200,37 @@ static void kankyo_color_ratio_calc(GXColor* o_color, GXColorS10 param_1, f32 pa } /* 8019D68C-8019D790 197FCC 0104+00 2/2 0/0 0/0 .text kankyo_color_ratio_set__FUcUcfUcUcfsf */ +// one wrong reg +#ifdef NONMATCHING +static s16 kankyo_color_ratio_set(u8 i_b0A, u8 i_b0B, f32 i_blendAB0, u8 i_b1A, u8 i_b1B, + f32 i_blendAB1, s16 i_add, f32 i_mul) { + s16 a = s16_data_ratio_set(i_b0A, i_b0B, i_blendAB0); + s16 b = s16_data_ratio_set(i_b1A, i_b1B, i_blendAB0); + s16 tmp = s16_data_ratio_set(a, b, i_blendAB1); + s16 rt = tmp + i_add; + + rt *= g_env_light.mColAllcolRatio * i_mul; + if (rt < 0) { + rt = 0; + } + + if (rt > 0xFF) { + rt = 0xFF; + } + + return rt; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void kankyo_color_ratio_set(u8 param_0, u8 param_1, f32 param_2, u8 param_3, u8 param_4, - f32 param_5, s16 param_6, f32 param_7) { +static asm s16 kankyo_color_ratio_set(u8 param_0, u8 param_1, f32 param_2, u8 param_3, u8 param_4, + f32 param_5, s16 param_6, f32 param_7) { nofralloc #include "asm/d/kankyo/d_kankyo/kankyo_color_ratio_set__FUcUcfUcUcfsf.s" } #pragma pop +#endif /* 8019D790-8019D7A0 1980D0 0010+00 1/1 0/0 0/0 .text fl_data_ratio_set__Ffff */ static f32 fl_data_ratio_set(f32 param_0, f32 param_1, f32 param_2) { @@ -1135,6 +1292,106 @@ SECTION_SDATA2 static f32 lit_4732 = 255.0f; /* 8019D8CC-8019DD4C 19820C 0480+00 1/1 0/0 0/0 .text dKy_FiveSenses_fullthrottle_dark_static1__Fv */ +// matches with literals +#ifdef NONMATCHING +static void dKy_FiveSenses_fullthrottle_dark_static1() { + dScnKy_env_light_c* env_light = i_dKy_getEnvlight(); + int temp_r30 = 0; + + cXyz sp18; + cXyz spC; + + sp18.x = 0.0f; + sp18.y = 0.0f; + sp18.z = 0.0f; + spC.x = 1.0f; + spC.y = 1.0f; + spC.z = 1.0f; + + if (daPy_py_c::checkNowWolfPowerUp()) { + env_light->field_0xf3d = 1; + temp_r30 = 1; + + if (env_light->field_0xf40 <= 0.0f) { + dComIfGp_particle_set(0x1E3, &sp18, NULL, NULL, &spC); + } + + cLib_addCalc(&env_light->field_0xf40, 1.0f, 0.5f, 0.1f, 0.01f); + } else if (env_light->field_0xf40 > 0.0f) { + if (env_light->field_0xf40 >= 1.0f) { + dComIfGp_particle_set(0x46A, &sp18, NULL, NULL, &spC); + } + + cLib_addCalc(&env_light->field_0xf40, 0.0f, 0.5f, 0.1f, 0.01f); + temp_r30 = 1; + } + + switch (env_light->field_0xf3c) { + case 0: + if (temp_r30 == 1) { + env_light->field_0xf44 = NULL; + env_light->field_0xf48 = NULL; + env_light->field_0xf4c = NULL; + + env_light->field_0xf44 = dComIfGp_particle_set(0x1F2, &sp18, NULL, NULL); + env_light->field_0xf48 = dComIfGp_particle_set(0x1F3, &sp18, NULL, NULL, &spC); + env_light->field_0xf4c = dComIfGp_particle_set(0x1F4, &sp18, NULL, NULL, &spC); + env_light->field_0xf3c += 1; + case 1: + if (temp_r30 == 1) { + if (env_light->field_0xf44 != NULL) { + env_light->field_0xf44->setGlobalTranslation(sp18.x, sp18.y, sp18.z); + env_light->field_0xf44->setGlobalAlpha(env_light->field_0xf40 * 255.0f); + } + + if (env_light->field_0xf48 != NULL) { + env_light->field_0xf48->setGlobalTranslation(sp18.x, sp18.y, sp18.z); + env_light->field_0xf48->setGlobalAlpha(env_light->field_0xf40 * 255.0f); + } + + if (env_light->field_0xf4c != NULL) { + env_light->field_0xf4c->setGlobalTranslation(sp18.x, sp18.y, sp18.z); + + env_light->field_0xf4c->setGlobalEnvColor( + 255.0f * (1.0f - env_light->field_0xf40), + 255.0f * (1.0f - env_light->field_0xf40), + 255.0f * (1.0f - env_light->field_0xf40)); + } + } else { + env_light->field_0xf3c += 1; + } + } + break; + case 2: + if (env_light->field_0xf44 != NULL) { + env_light->field_0xf44->deleteAllParticle(); + env_light->field_0xf44->becomeInvalidEmitter(); + env_light->field_0xf44->quitImmortalEmitter(); + env_light->field_0xf44->setEmitterCallBackPtr(NULL); + env_light->field_0xf44 = NULL; + } + + if (env_light->field_0xf48 != NULL) { + env_light->field_0xf48->deleteAllParticle(); + env_light->field_0xf48->becomeInvalidEmitter(); + env_light->field_0xf48->quitImmortalEmitter(); + env_light->field_0xf48->setEmitterCallBackPtr(NULL); + env_light->field_0xf48 = NULL; + } + + if (env_light->field_0xf4c != NULL) { + env_light->field_0xf4c->deleteAllParticle(); + env_light->field_0xf4c->becomeInvalidEmitter(); + env_light->field_0xf4c->quitImmortalEmitter(); + env_light->field_0xf4c->setEmitterCallBackPtr(NULL); + env_light->field_0xf4c = NULL; + } + + env_light->field_0xf3c = 0; + break; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1143,6 +1400,7 @@ static asm void dKy_FiveSenses_fullthrottle_dark_static1() { #include "asm/d/kankyo/d_kankyo/dKy_FiveSenses_fullthrottle_dark_static1__Fv.s" } #pragma pop +#endif /* 8019DD4C-8019DD6C 19868C 0020+00 0/0 1/1 0/0 .text dKy_FiveSenses_fullthrottle_dark__Fv */ void dKy_FiveSenses_fullthrottle_dark() { @@ -1174,7 +1432,7 @@ SECTION_SDATA2 static f32 lit_4852[1 + 1 /* padding */] = { #ifdef NONMATCHING static int dKy_light_influence_id(cXyz param_0, int param_1) { f32 var_f31 = 1000000.0f; - + int var_r28 = -1; int var_r27 = -1; int var_r25 = -1; @@ -1186,7 +1444,9 @@ static int dKy_light_influence_id(cXyz param_0, int param_1) { for (int i = 0; i <= param_1; i++) { for (int j = 0; j < 100; j++) { - if (g_env_light.mPointLight[j] != NULL && (i == 0 || j != var_r28) && g_env_light.mPointLight[j]->mPow > 0.01f) { + if (g_env_light.mPointLight[j] != NULL && (i == 0 || j != var_r28) && + g_env_light.mPointLight[j]->mPow > 0.01f) + { if (var_f31 > param_0.abs(g_env_light.mPointLight[j]->mPosition)) { if (g_env_light.mPointLight[j]->mIndex & 0x8000) { if (var_f31 > var_f30) { @@ -1203,7 +1463,9 @@ static int dKy_light_influence_id(cXyz param_0, int param_1) { } else { var_f31 = param_0.abs(g_env_light.mPointLight[j]->mPosition); if (var_f31 < g_env_light.mPointLight[j]->mPow) { - if (strcmp(dComIfGp_getStartStageName(), "D_MN05") == 0 && dComIfGp_roomControl_getStayNo() == 0) { + if (strcmp(dComIfGp_getStartStageName(), "D_MN05") == 0 && + dComIfGp_roomControl_getStayNo() == 0) + { if (var_f31 < g_env_light.mPointLight[j]->mPow * 0.5f) { var_r25 = 99; } @@ -1258,14 +1520,16 @@ static asm int dKy_light_influence_id(cXyz param_0, int param_1) { #ifdef NONMATCHING static int dKy_eflight_influence_id(cXyz param_0, int param_1) { f32 var_f31 = 1000000.0f; - + int var_r28 = -1; int var_r27 = -1; for (int i = 0; i <= param_1; i++) { for (int j = 0; j < 5; j++) { if (g_env_light.mEfPLight[j] != NULL && (i == 0 || j != var_r28)) { - if (var_f31 > param_0.abs(g_env_light.mEfPLight[j]->mPosition) && g_env_light.mEfPLight[j]->mPow > 0.01f) { + if (var_f31 > param_0.abs(g_env_light.mEfPLight[j]->mPosition) && + g_env_light.mEfPLight[j]->mPow > 0.01f) + { var_f31 = param_0.abs(g_env_light.mEfPLight[j]->mPosition); if (i == 0) { @@ -1308,6 +1572,35 @@ static GXColorS10 dKy_light_influence_col(int param_0) { SECTION_SDATA2 static f64 lit_4964 = 4503599627370496.0 /* cast u32 to float */; /* 8019E430-8019E520 198D70 00F0+00 4/4 3/3 0/0 .text dKy_light_influence_col__FP8_GXColorf */ +// matches with literals +#ifdef NONMATCHING +GXColor dKy_light_influence_col(GXColor* i_color, f32 param_1) { + GXColor out_color; + + f32 r = i_color->r * param_1; + if (r <= 255.0f) { + out_color.r = r; + } else { + out_color.r = 255; + } + + f32 g = i_color->g * param_1; + if (g <= 255.0f) { + out_color.g = g; + } else { + out_color.g = 255; + } + + f32 b = i_color->b * param_1; + if (b <= 255.0f) { + out_color.b = b; + } else { + out_color.b = 255; + } + + return out_color; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1316,6 +1609,7 @@ asm GXColor dKy_light_influence_col(_GXColor* param_0, f32 param_1) { #include "asm/d/kankyo/d_kankyo/dKy_light_influence_col__FP8_GXColorf.s" } #pragma pop +#endif /* 8019E520-8019E548 198E60 0028+00 1/1 0/0 0/0 .text dKy_light_influence_power__Fi */ static f32 dKy_light_influence_power(int param_0) { @@ -1330,14 +1624,21 @@ static f32 dKy_light_influence_yuragi(int param_0) { } /* 8019E570-8019E694 198EB0 0124+00 1/1 0/0 0/0 .text dKy_light_influence_distance__F4cXyzi */ +// matches with literals +#ifdef NONMATCHING +static f32 dKy_light_influence_distance(cXyz param_0, int i_lightIdx) { + return param_0.abs(g_env_light.mPointLight[i_lightIdx >= 0 ? i_lightIdx : 0]->mPosition); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void dKy_light_influence_distance(cXyz param_0, int param_1) { +static asm f32 dKy_light_influence_distance(cXyz param_0, int param_1) { nofralloc #include "asm/d/kankyo/d_kankyo/dKy_light_influence_distance__F4cXyzi.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80453C88-80453C8C 002288 0004+00 2/2 0/0 0/0 .sdata2 @5077 */ @@ -1372,6 +1673,35 @@ static void darkmist_init() { SECTION_SDATA2 static f32 lit_5106 = 200.0f; /* 8019E734-8019E854 199074 0120+00 1/1 0/0 0/0 .text plight_set__Fv */ +// matches with literals +#ifdef NONMATCHING +static void plight_set() { + int idx = 0; + + stage_plight_info_class* plight_info = dComIfGp_getStagePlightInfo(); + if (plight_info != NULL) { + g_env_light.stagPlightInfo = plight_info; + + for (int i = 0; i < dComIfGp_getStagePlightNumInfo(); i++) { + if (idx < 30) { + g_env_light.mLightInfluence[idx].mPosition = plight_info[i].m_position; + g_env_light.mLightInfluence[idx].mColor.r = plight_info[i].m_color.r; + g_env_light.mLightInfluence[idx].mColor.g = plight_info[i].m_color.g; + g_env_light.mLightInfluence[idx].mColor.b = plight_info[i].m_color.b; + g_env_light.mLightInfluence[idx].mPow = plight_info[i].m_radius * 200.0f; + g_env_light.mLightInfluence[idx].mFluctuation = plight_info[i].m_fluctuation; + dKy_plight_set(&g_env_light.mLightInfluence[idx]); + idx++; + } else { +#ifdef DEBUG + // "\nToo many Point Lights set!!!" + OSReport_Warning("\nポイントライトマップ配置が多すぎます!!!"); +#endif + } + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1380,42 +1710,27 @@ static asm void plight_set() { #include "asm/d/kankyo/d_kankyo/plight_set__Fv.s" } #pragma pop +#endif /* 8019E854-8019E874 199194 0020+00 1/1 0/0 0/0 .text bgparts_activelight_init__Fv */ -#ifdef NONMATCHING static void bgparts_activelight_init() { - dScnKy_env_light_c* light = i_dKy_getEnvlight(); - - for (int i = 0; i < 2; i++) { + int i = 0; + for (; i < 2; i++) { + g_env_light.mBGpartsActiveLight[0].mIndex = 0; } - light->mBGpartsActiveLight[0].mIndex = 0; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void bgparts_activelight_init() { - nofralloc -#include "asm/d/kankyo/d_kankyo/bgparts_activelight_init__Fv.s" -} -#pragma pop -#endif /* ############################################################################################## */ /* 803BBF58-803BBFB8 019078 0060+00 1/1 0/0 0/0 .data test_pos_tbl$5126 */ -SECTION_DATA static u8 test_pos_tbl[96] = { - 0x00, 0x00, 0x00, 0x00, 0xC7, 0xC3, 0x4F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xC7, 0xC3, 0x4F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC7, 0xC3, 0x4F, 0x80, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC7, 0xC3, 0x4F, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0xC7, 0xC3, 0x4F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xC7, 0xC3, 0x4F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC7, 0xC3, 0x4F, 0x80, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC7, 0xC3, 0x4F, 0x80, 0x00, 0x00, 0x00, 0x00, +static Vec test_pos_tbl[] = { + {0.0f, -99999.0f, 0.0f}, {0.0f, -99999.0f, 0.0f}, {0.0f, -99999.0f, 0.0f}, + {0.0f, -99999.0f, 0.0f}, {0.0f, -99999.0f, 0.0f}, {0.0f, -99999.0f, 0.0f}, + {0.0f, -99999.0f, 0.0f}, {0.0f, -99999.0f, 0.0f}, }; /* 803BBFB8-803BBFD0 0190D8 0018+00 1/1 0/0 0/0 .data test_color_tbl$5127 */ -SECTION_DATA static u8 test_color_tbl[24] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +static color_RGB_class test_color_tbl[] = { + {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, }; /* 80453C90-80453C94 002290 0004+00 5/5 0/0 0/0 .sdata2 @5191 */ @@ -1431,6 +1746,54 @@ SECTION_SDATA2 static f32 lit_5193 = -90.0f; SECTION_SDATA2 static f32 lit_5194 = 0.0010000000474974513f; /* 8019E874-8019EAA0 1991B4 022C+00 1/1 0/0 0/0 .text dungeonlight_init__Fv */ +// matches with literals +#ifdef NONMATCHING +static void dungeonlight_init() { + dScnKy_env_light_c* env_light = i_dKy_getEnvlight(); + + for (int i = 0; i < 8; i++) { + env_light->mDungeonLights[i].mPosition = cXyz(test_pos_tbl[i]); + env_light->mDungeonLights[i].mRefDistance = 1.0f; + env_light->mDungeonLights[i].field_0x14 = 0.99f; + env_light->mDungeonLights[i].mColor.r = test_color_tbl[i].r; + env_light->mDungeonLights[i].mColor.g = test_color_tbl[i].g; + env_light->mDungeonLights[i].mColor.b = test_color_tbl[i].b; + env_light->mDungeonLights[i].mColor.a = 255; + + env_light->mDungeonLights[i].mInfluence.mPosition = env_light->mDungeonLights[i].mPosition; + env_light->mDungeonLights[i].mInfluence.mColor.r = env_light->mDungeonLights[i].mColor.r; + env_light->mDungeonLights[i].mInfluence.mColor.g = env_light->mDungeonLights[i].mColor.g; + env_light->mDungeonLights[i].mInfluence.mColor.b = env_light->mDungeonLights[i].mColor.b; + env_light->mDungeonLights[i].mInfluence.mPow = + env_light->mDungeonLights[i].mRefDistance * 100.0f; + env_light->mDungeonLights[i].mInfluence.mFluctuation = 0.0f; + + env_light->mDungeonLights[i].mCutoffAngle = 90.0f; + env_light->mDungeonLights[i].mAngleX = -90.0f; + env_light->mDungeonLights[i].mAngleY = 0.0f; + env_light->mDungeonLights[i].mAngleAttenuation = 0; + env_light->mDungeonLights[i].mDistAttenuation = 2; + + env_light->field_0x0c18[i].mPos = cXyz(test_pos_tbl[i]); + env_light->field_0x0c18[i].mColor.r = test_color_tbl[i].r; + env_light->field_0x0c18[i].mColor.g = test_color_tbl[i].g; + env_light->field_0x0c18[i].mColor.b = test_color_tbl[i].b; + env_light->field_0x0c18[i].mColor.a = 255; + env_light->field_0x0c18[i].mRefDistance = 0.001f; + env_light->field_0x0c18[i].field_0x14 = 0.99f; + env_light->field_0x0c18[i].field_0x26 = 0; + env_light->field_0x0c18[i].mCutoffAngle = 90.0f; + env_light->field_0x0c18[i].mAngleX = -90.0f; + env_light->field_0x0c18[i].mAngleY = 0.0f; + env_light->field_0x0c18[i].mAngleAttenuation = 0; + env_light->field_0x0c18[i].mDistAttenuation = 2; + + if (i < 6) { + env_light->field_0x0d58[i] = env_light->field_0x0c18[i]; + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -1439,26 +1802,34 @@ static asm void dungeonlight_init() { #include "asm/d/kankyo/d_kankyo/dungeonlight_init__Fv.s" } #pragma pop +#endif /* 8019EAA0-8019EBD0 1993E0 0130+00 1/1 0/0 0/0 .text undwater_init__Fv */ static void undwater_init() { J3DModelData* modelData2 = (J3DModelData*)dComIfG_getObjectRes("Always", 0x1D); - g_env_light.field_0xf38 = mDoExt_createSolidHeapFromGameToCurrent(0x600, 0x20); + JUT_ASSERT(modelData2 != 0); - if (g_env_light.field_0xf38 != NULL) { - g_env_light.field_0xf30 = mDoExt_J3DModel__create(modelData2, 0x80000, 0x11020202); + g_env_light.mpUndwaterEfHeap = mDoExt_createSolidHeapFromGameToCurrent(0x600, 0x20); - if (g_env_light.field_0xf30 != NULL) { - g_env_light.field_0x105c = new mDoExt_btkAnm(); + if (g_env_light.mpUndwaterEfHeap != NULL) { + g_env_light.mpUndwaterEfModel = mDoExt_J3DModel__create(modelData2, 0x80000, 0x11020202); - if (g_env_light.field_0x105c != NULL) { - J3DAnmTextureSRTKey* key = + if (g_env_light.mpUndwaterEfModel != NULL) { + g_env_light.mpUndwaterBtk = new mDoExt_btkAnm(); + + if (g_env_light.mpUndwaterBtk != NULL) { + J3DAnmTextureSRTKey* pbtk = (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("Always", 0x3C); - g_env_light.field_0x105c->init(modelData2, key, 1, 2, lit_4505, 0, -1); + g_env_light.mpUndwaterBtk->init(modelData2, pbtk, TRUE, J3DFrameCtrl::LOOP_REPEAT_e, + lit_4505, 0, -1); + } else { + JUT_ASSERT(0); } } mDoExt_restoreCurrentHeap(); - mDoExt_adjustSolidHeap(g_env_light.field_0xf38); + mDoExt_adjustSolidHeap(g_env_light.mpUndwaterEfHeap); + } else { + JUT_ASSERT(0); } } @@ -1674,9 +2045,9 @@ static void envcolor_init() { g_env_light.field_0x11cc = 1.0f; g_env_light.field_0x11d0 = 1.0f; g_env_light.field_0xf2c = 0; - g_env_light.field_0xf30 = NULL; + g_env_light.mpUndwaterEfModel = NULL; g_env_light.field_0xf34 = 0.0f; - g_env_light.field_0xf38 = NULL; + g_env_light.mpUndwaterEfHeap = NULL; undwater_init(); dComIfGs_PolyDamageOff_Set(0); @@ -1996,38 +2367,6 @@ dScnKy_env_light_c::dScnKy_env_light_c() { dKy_clear_game_init(); } -/* 8019F400-8019F438 199D40 0038+00 1/1 0/0 0/0 .text __ct__19GB_MAPLE_COL_CHANGEFv */ -GB_MAPLE_COL_CHANGE::GB_MAPLE_COL_CHANGE() {} - -/* 8019F438-8019F474 199D78 003C+00 2/2 0/0 0/0 .text __dt__10BOSS_LIGHTFv */ -BOSS_LIGHT::~BOSS_LIGHT() {} - -/* 8019F474-8019F478 199DB4 0004+00 1/1 0/0 0/0 .text __ct__10BOSS_LIGHTFv */ -BOSS_LIGHT::BOSS_LIGHT() { - /* empty function */ -} - -/* 8019F478-8019F4B4 199DB8 003C+00 2/2 0/0 0/0 .text __dt__13DUNGEON_LIGHTFv */ -DUNGEON_LIGHT::~DUNGEON_LIGHT() {} - -/* 8019F4B4-8019F4B8 199DF4 0004+00 1/1 0/0 0/0 .text __ct__13DUNGEON_LIGHTFv */ -DUNGEON_LIGHT::DUNGEON_LIGHT() { - /* empty function */ -} - -/* 8019F4B8-8019F4F4 199DF8 003C+00 2/2 0/0 0/0 .text __dt__15WIND_INF_ENTITYFv */ -WIND_INF_ENTITY::~WIND_INF_ENTITY() {} - -/* 8019F4F4-8019F4F8 199E34 0004+00 1/1 0/0 0/0 .text __ct__15WIND_INF_ENTITYFv */ -WIND_INF_ENTITY::WIND_INF_ENTITY() { - /* empty function */ -} - -/* 8019F4F8-8019F4FC 199E38 0004+00 1/1 0/0 0/0 .text __ct__15LIGHT_INFLUENCEFv */ -extern "C" void __ct__15LIGHT_INFLUENCEFv() { - /* empty function */ -} - /* ############################################################################################## */ /* 80453CBC-80453CC0 0022BC 0004+00 5/5 0/0 0/0 .sdata2 @5554 */ SECTION_SDATA2 static f32 lit_5554 = 60.0f; @@ -2141,16 +2480,6 @@ SECTION_SDATA2 static f32 lit_5617 = 0.01745329238474369f; /* 80453CDC-80453CE0 0022DC 0004+00 1/1 0/0 0/0 .sdata2 @5618 */ SECTION_SDATA2 static f32 lit_5618 = -48000.0f; -// setSunpos calls these functions as inlines somehow -// these need to be moved to MSL_C once an appropriate solution is found -inline float sinf(float x) { - return sin(x); -} - -inline float cosf(float x) { - return cos(x); -} - /* 8019F788-8019FA08 19A0C8 0280+00 1/1 0/0 0/0 .text setSunpos__18dScnKy_env_light_cFv */ // matches with literals @@ -2316,275 +2645,274 @@ SECTION_SDATA2 static f32 lit_5840 = 1.0f / 15.0f; /* 8019FBD4-801A0340 19A514 076C+00 5/3 0/0 0/0 .text * setLight_palno_get__18dScnKy_env_light_cFPUcPUcPUcPUcPUcPUcPUcPUcPfPiPiPfPUc */ -// lots of issues +// problems with the loop. most issues should fix with a loop fix #ifdef NONMATCHING -void dScnKy_env_light_c::setLight_palno_get(u8* param_0, u8* param_1, u8* param_2, u8* param_3, - u8* param_4, u8* param_5, u8* param_6, u8* param_7, - f32* param_8, int* param_9, int* param_10, - f32* param_11, u8* param_12) { - u8 uvar3 = 0; +void dScnKy_env_light_c::setLight_palno_get(u8* i_envrSel0, u8* i_envrSel1, u8* i_pSelIdx0, + u8* i_pSelIdx1, u8* i_palIdx0A, u8* i_palIdx0B, + u8* i_palIdx1A, u8* i_palIdx1B, f32* i_blendPalAB, + int* i_pSelPalIdx0, int* i_pSelPalIdx1, + f32* i_blendPal01, u8* i_initTimer) { + u8 psel_idx = 0; - if (*param_12 != 0) { - *param_12 += 1; + if (*i_initTimer != 0) { + *i_initTimer += 1; - if (*param_12 > 20) { - *param_12 = 0; + if (*i_initTimer > 20) { + *i_initTimer = 0; } if (g_env_light.mColPatMode == 0 && g_env_light.mColPatModeGather == 0) { - *param_11 = g_env_light.mColPatBlend; + *i_blendPal01 = g_env_light.mColPatBlend; - if (*param_11 >= 1.0f) { - *param_0 = *param_1; - *param_2 = *param_3; + if (*i_blendPal01 >= 1.0f) { + *i_envrSel0 = *i_envrSel1; + *i_pSelIdx0 = *i_pSelIdx1; } } } + dKyd_lightSchejule* schedule_p; for (int i = 0; i < 11; i++) { - // dKyd_lightSchejule* schedule_p = &mpSchedule[i]; + schedule_p = &mpSchedule[i]; - if (mDaytime >= mpSchedule->startTime && mDaytime <= mpSchedule->endTime) { - *param_9 = mpSchedule->startTimeLight; - *param_10 = mpSchedule->endTimeLight; - *param_8 = get_parcent(mpSchedule->endTime, mpSchedule->startTime, mDaytime); + if (mDaytime >= schedule_p->startTime && mDaytime <= schedule_p->endTime) { + break; + } + } - stage_envr_info_class* envr_p = &g_env_light.mpDmEnvr[*param_0]; - u32 tmp = *param_2; - switch (tmp) { - case 0: - uvar3 = envr_p->field_0x0[0]; - break; - case 1: - uvar3 = envr_p->field_0x0[1]; - break; - case 2: - uvar3 = envr_p->field_0x0[2]; - break; - case 3: - uvar3 = envr_p->field_0x0[3]; - break; - case 4: - uvar3 = envr_p->field_0x0[4]; - break; - case 5: - uvar3 = envr_p->field_0x0[5]; - break; - case 6: - uvar3 = envr_p->field_0x0[6]; - break; - case 7: - uvar3 = envr_p->field_0x0[7]; - break; - default: - if (tmp > 7 && tmp < 64) { - uvar3 = envr_p->field_0x0[tmp]; - } - break; + *i_pSelPalIdx0 = schedule_p->startTimeLight; + *i_pSelPalIdx1 = schedule_p->endTimeLight; + *i_blendPalAB = get_parcent(schedule_p->endTime, schedule_p->startTime, mDaytime); + + stage_envr_info_class* envr_p = &g_env_light.mpDmEnvr[*i_envrSel0]; + switch (*i_pSelIdx0) { + case 0: + psel_idx = envr_p->m_pselectID[0]; + break; + case 1: + psel_idx = envr_p->m_pselectID[1]; + break; + case 2: + psel_idx = envr_p->m_pselectID[2]; + break; + case 3: + psel_idx = envr_p->m_pselectID[3]; + break; + case 4: + psel_idx = envr_p->m_pselectID[4]; + break; + case 5: + psel_idx = envr_p->m_pselectID[5]; + break; + case 6: + psel_idx = envr_p->m_pselectID[6]; + break; + case 7: + psel_idx = envr_p->m_pselectID[7]; + break; + default: + if (*i_pSelIdx0 > 7 && *i_pSelIdx0 < 64) { + psel_idx = envr_p->m_pselectID[*i_pSelIdx0]; + } + break; + } + + if (g_env_light.mCameraInWater != 0 && strcmp(dComIfGp_getStartStageName(), "D_MN08D") != 0 && + strcmp(dComIfGp_getStartStageName(), "D_MN01A") != 0) + { + if (g_env_light.mColPatCurr == 0) { + psel_idx = envr_p->m_pselectID[8]; + } else { + psel_idx = envr_p->m_pselectID[9]; + } + } else if (strcmp(dComIfGp_getStartStageName(), "R_SP127") == 0) { + camera_class* camera_p = dComIfGp_getCamera(0); + + if (camera_p != NULL && camera_p->mLookat.mEye.y < 0.0f) { + psel_idx = envr_p->m_pselectID[10]; + } + } + + if (psel_idx > 250) { + psel_idx = 0; + } + + stage_pselect_info_class* pselect_p = &g_env_light.mpDmPselect[psel_idx]; + switch (*i_pSelPalIdx0) { + case 0: + *i_palIdx0A = pselect_p->mPalIdx[0]; + break; + case 1: + *i_palIdx0A = pselect_p->mPalIdx[1]; + break; + case 2: + *i_palIdx0A = pselect_p->mPalIdx[2]; + break; + case 3: + *i_palIdx0A = pselect_p->mPalIdx[3]; + break; + case 4: + *i_palIdx0A = pselect_p->mPalIdx[4]; + break; + case 5: + *i_palIdx0A = pselect_p->mPalIdx[5]; + break; + } + + switch (*i_pSelPalIdx1) { + case 0: + *i_palIdx0B = pselect_p->mPalIdx[0]; + break; + case 1: + *i_palIdx0B = pselect_p->mPalIdx[1]; + break; + case 2: + *i_palIdx0B = pselect_p->mPalIdx[2]; + break; + case 3: + *i_palIdx0B = pselect_p->mPalIdx[3]; + break; + case 4: + *i_palIdx0B = pselect_p->mPalIdx[4]; + break; + case 5: + *i_palIdx0B = pselect_p->mPalIdx[5]; + break; + } + + envr_p = &g_env_light.mpDmEnvr[*i_envrSel1]; + switch (*i_pSelIdx1) { + case 0: + psel_idx = envr_p->m_pselectID[0]; + break; + case 1: + psel_idx = envr_p->m_pselectID[1]; + break; + case 2: + psel_idx = envr_p->m_pselectID[2]; + break; + case 3: + psel_idx = envr_p->m_pselectID[3]; + break; + case 4: + psel_idx = envr_p->m_pselectID[4]; + break; + case 5: + psel_idx = envr_p->m_pselectID[5]; + break; + case 6: + psel_idx = envr_p->m_pselectID[6]; + break; + case 7: + psel_idx = envr_p->m_pselectID[7]; + break; + default: + if (*i_pSelIdx1 > 7 && *i_pSelIdx1 < 64) { + psel_idx = envr_p->m_pselectID[*i_pSelIdx1]; + } + break; + } + + if (psel_idx > 250) { + psel_idx = 0; + } + + pselect_p = &g_env_light.mpDmPselect[psel_idx]; + if (*i_envrSel0 != *i_envrSel1 || *i_pSelIdx0 != *i_pSelIdx1) { + if (pselect_p->mChangeRate < 0.033333335f) { + pselect_p->mChangeRate = 0.033333335f; + } + + if (g_env_light.mColPatMode == 0) { + if (pselect_p->mChangeRate > 0.0f) { + *i_blendPal01 += 0.033333335f / pselect_p->mChangeRate; } - if (g_env_light.mCameraInWater != 0 && - strcmp(dComIfGp_getStartStageName(), "D_MN08D") != 0 && - strcmp(dComIfGp_getStartStageName(), "D_MN01A") != 0) + if (strcmp(dComIfGp_getStartStageName(), "F_SP121") == 0 && *i_pSelIdx0 == *i_pSelIdx1) { - if (g_env_light.mColPatCurr == 0) { - uvar3 = envr_p->field_0x0[8]; - } else { - uvar3 = envr_p->field_0x0[9]; - } - } else if (strcmp(dComIfGp_getStartStageName(), "R_SP127") == 0) { - camera_class* camera_p = dComIfGp_getCamera(0); - - if (camera_p != NULL && camera_p->mLookat.mEye.y < 0.0f) { - uvar3 = envr_p->field_0x0[10]; - } + *i_blendPal01 += 0.06666667f; } - if (uvar3 > 250) { - uvar3 = 0; - } - - stage_pselect_info_class* pselect_p = &g_env_light.mpDmPselect[uvar3]; - switch (*param_9) { - case 0: - *param_4 = pselect_p->mPalIdx[0]; - break; - case 1: - *param_4 = pselect_p->mPalIdx[1]; - break; - case 2: - *param_4 = pselect_p->mPalIdx[2]; - break; - case 3: - *param_4 = pselect_p->mPalIdx[3]; - break; - case 4: - *param_4 = pselect_p->mPalIdx[4]; - break; - case 5: - *param_4 = pselect_p->mPalIdx[5]; - break; - } - - switch (*param_10) { - case 0: - *param_5 = pselect_p->mPalIdx[0]; - break; - case 1: - *param_5 = pselect_p->mPalIdx[1]; - break; - case 2: - *param_5 = pselect_p->mPalIdx[2]; - break; - case 3: - *param_5 = pselect_p->mPalIdx[3]; - break; - case 4: - *param_5 = pselect_p->mPalIdx[4]; - break; - case 5: - *param_5 = pselect_p->mPalIdx[5]; - break; - } - - stage_envr_info_class* envr_p2 = &g_env_light.mpDmEnvr[*param_1]; - u32 tmp_2 = *param_2; - switch (tmp_2) { - case 0: - uvar3 = envr_p2->field_0x0[0]; - break; - case 1: - uvar3 = envr_p2->field_0x0[1]; - break; - case 2: - uvar3 = envr_p2->field_0x0[2]; - break; - case 3: - uvar3 = envr_p2->field_0x0[3]; - break; - case 4: - uvar3 = envr_p2->field_0x0[4]; - break; - case 5: - uvar3 = envr_p2->field_0x0[5]; - break; - case 6: - uvar3 = envr_p2->field_0x0[6]; - break; - case 7: - uvar3 = envr_p2->field_0x0[7]; - break; - default: - if (tmp_2 > 7 && tmp_2 < 64) { - uvar3 = envr_p2->field_0x0[tmp_2]; - } - break; - } - - if (uvar3 > 250) { - uvar3 = 0; - } - - stage_pselect_info_class* pselect_p2 = &g_env_light.mpDmPselect[uvar3]; - if (*param_0 != *param_1 || *param_2 != tmp_2) { - if (pselect_p2->mChangeRate < 0.033333335f) { - pselect_p2->mChangeRate = 0.033333335f; - } - - if (g_env_light.mColPatMode == 0) { - if (pselect_p2->mChangeRate > 0.0f) { - *param_11 += 0.033333335f / pselect_p2->mChangeRate; - } - - if (strcmp(dComIfGp_getStartStageName(), "F_SP121") == 0 && - *param_2 == *param_3) - { - *param_11 += 0.06666667f; - } - - if (*param_11 >= 1.0f) { - *param_0 = *param_1; - *param_2 = *param_3; - *param_11 = 1.0f; - } - } - } - - if (g_env_light.mCameraInWater != 0 && - strcmp(dComIfGp_getStartStageName(), "D_MN08D") != 0 && - strcmp(dComIfGp_getStartStageName(), "D_MN01A") != 0) - { - if (g_env_light.mColPatCurr == 0) { - uvar3 = envr_p2->field_0x0[8]; - } else { - uvar3 = envr_p2->field_0x0[9]; - } - } else if (strcmp(dComIfGp_getStartStageName(), "R_SP127") == 0) { - camera_class* camera_p = dComIfGp_getCamera(0); - - if (camera_p != NULL && camera_p->mLookat.mEye.y < 0.0f) { - uvar3 = envr_p2->field_0x0[10]; - } - } - - switch (*param_9) { - case 0: - *param_6 = pselect_p2->mPalIdx[0]; - break; - case 1: - *param_6 = pselect_p2->mPalIdx[1]; - break; - case 2: - *param_6 = pselect_p2->mPalIdx[2]; - break; - case 3: - *param_6 = pselect_p2->mPalIdx[3]; - break; - case 4: - *param_6 = pselect_p2->mPalIdx[4]; - break; - case 5: - *param_6 = pselect_p2->mPalIdx[5]; - break; - } - - switch (*param_10) { - case 0: - *param_7 = pselect_p->mPalIdx[0]; - break; - case 1: - *param_7 = pselect_p->mPalIdx[1]; - break; - case 2: - *param_7 = pselect_p->mPalIdx[2]; - break; - case 3: - *param_7 = pselect_p->mPalIdx[3]; - break; - case 4: - *param_7 = pselect_p->mPalIdx[4]; - break; - case 5: - *param_7 = pselect_p->mPalIdx[5]; - break; + if (*i_blendPal01 >= 1.0f) { + *i_envrSel0 = *i_envrSel1; + *i_pSelIdx0 = *i_pSelIdx1; + *i_blendPal01 = 1.0f; } } } - if (*param_4 > 250) { - *param_4 = 0; + if (g_env_light.mCameraInWater != 0 && strcmp(dComIfGp_getStartStageName(), "D_MN08D") != 0 && + strcmp(dComIfGp_getStartStageName(), "D_MN01A") != 0) + { + if (g_env_light.mColPatCurr == 0) { + pselect_p = &g_env_light.mpDmPselect[envr_p->m_pselectID[8]]; + } else { + pselect_p = &g_env_light.mpDmPselect[envr_p->m_pselectID[9]]; + } + } else if (strcmp(dComIfGp_getStartStageName(), "R_SP127") == 0) { + camera_class* camera_p = dComIfGp_getCamera(0); + + if (camera_p != NULL && camera_p->mLookat.mEye.y < 0.0f) { + pselect_p = &g_env_light.mpDmPselect[envr_p->m_pselectID[10]]; + } } - if (*param_6 > 250) { - *param_6 = 0; + switch (*i_pSelPalIdx0) { + case 0: + *i_palIdx1A = pselect_p->mPalIdx[0]; + break; + case 1: + *i_palIdx1A = pselect_p->mPalIdx[1]; + break; + case 2: + *i_palIdx1A = pselect_p->mPalIdx[2]; + break; + case 3: + *i_palIdx1A = pselect_p->mPalIdx[3]; + break; + case 4: + *i_palIdx1A = pselect_p->mPalIdx[4]; + break; + case 5: + *i_palIdx1A = pselect_p->mPalIdx[5]; + break; } - if (*param_5 > 250) { - *param_5 = 0; + switch (*i_pSelPalIdx1) { + case 0: + *i_palIdx1B = pselect_p->mPalIdx[0]; + break; + case 1: + *i_palIdx1B = pselect_p->mPalIdx[1]; + break; + case 2: + *i_palIdx1B = pselect_p->mPalIdx[2]; + break; + case 3: + *i_palIdx1B = pselect_p->mPalIdx[3]; + break; + case 4: + *i_palIdx1B = pselect_p->mPalIdx[4]; + break; + case 5: + *i_palIdx1B = pselect_p->mPalIdx[5]; + break; } - if (*param_7 > 250) { - *param_7 = 0; + if (*i_palIdx0A > 250) { + *i_palIdx0A = 0; + } + + if (*i_palIdx1A > 250) { + *i_palIdx1A = 0; + } + + if (*i_palIdx0B > 250) { + *i_palIdx0B = 0; + } + + if (*i_palIdx1B > 250) { + *i_palIdx1B = 0; } } #else @@ -2604,17 +2932,17 @@ asm void dScnKy_env_light_c::setLight_palno_get(u8* param_0, u8* param_1, u8* pa /* 801A0340-801A040C 19AC80 00CC+00 3/3 0/0 0/0 .text * dKy_calc_color_set__FP11_GXColorS10P15color_RGB_classP15color_RGB_classP15color_RGB_classP15color_RGB_classff11_GXColorS10f */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void dKy_calc_color_set(_GXColorS10* param_0, color_RGB_class* param_1, - color_RGB_class* param_2, color_RGB_class* param_3, - color_RGB_class* param_4, f32 param_5, f32 param_6, - _GXColorS10 param_7, f32 param_8) { - nofralloc -#include "asm/d/kankyo/d_kankyo/func_801A0340.s" +static void dKy_calc_color_set(GXColorS10* o_calcColor, color_RGB_class* i_col0A, + color_RGB_class* i_col1A, color_RGB_class* i_col0B, + color_RGB_class* i_col1B, f32 i_blendAB0, f32 i_blendAB1, + GXColorS10 i_addCol, f32 i_mul) { + o_calcColor->r = kankyo_color_ratio_set(i_col0A->r, i_col0B->r, i_blendAB0, i_col1A->r, + i_col1B->r, i_blendAB1, i_addCol.r, i_mul); + o_calcColor->g = kankyo_color_ratio_set(i_col0A->g, i_col0B->g, i_blendAB0, i_col1A->g, + i_col1B->g, i_blendAB1, i_addCol.g, i_mul); + o_calcColor->b = kankyo_color_ratio_set(i_col0A->b, i_col0B->b, i_blendAB0, i_col1A->b, + i_col1B->b, i_blendAB1, i_addCol.b, i_mul); } -#pragma pop /* ############################################################################################## */ /* 80451068-80451070 -00001 0008+00 2/2 0/0 0/0 .sbss None */ @@ -2656,7 +2984,440 @@ SECTION_SDATA2 static f32 lit_6041 = 0.004999999888241291f; /* 80453D10-80453D14 002310 0004+00 9/9 0/0 0/0 .sdata2 @6042 */ SECTION_SDATA2 static f32 lit_6042 = 9.999999974752427e-07f; +inline bool checkZoraWearFlg() { + return dComIfGs_getSelectEquipClothes() == WEAR_ZORA; +} + /* 801A040C-801A133C 19AD4C 0F30+00 1/1 0/0 0/0 .text setLight__18dScnKy_env_light_cFv */ +// mostly done, a lot of regalloc but should be equivalent or near? +#ifdef NONMATCHING +void dScnKy_env_light_c::setLight() { + u8* init_timer = &g_env_light.mInitAnmTimer; + camera_class* camera_p = dComIfGp_getCamera(0); + GXColorS10 addCol; + addCol.r = 0; + addCol.g = 0; + addCol.b = 0; + addCol.a = 0; + + if (camera_p != NULL) { + if (g_env_light.mCameraInWater) { + dBgS_CamGndChk_Wtr camchk; + cXyz chkpos; + + if (checkZoraWearFlg() && !daPy_py_c::i_checkNowWolf()) { + dKy_WaterIn_Light_set(); + } + + chkpos = camera_p->mLookat.mEye; + chkpos.y += 100000.0f; + + camchk.SetPos(&chkpos); + dComIfG_Bgsp().GroundCross(&camchk); + cLib_addCalc(&g_env_light.field_0x1258, 1.0f, 0.25f, 0.01f, 0.0000000000001f); + } else { + g_env_light.field_0x1258 = 0.0f; + } + + u8 pale0; + u8 pale2; + u8 pale1; + u8 pale3; + f32 blendAB; + int palIdx0; + int palIdx1; + setLight_palno_get(&g_env_light.mEnvrIdxPrev, &g_env_light.mEnvrIdxCurr, + &g_env_light.mColPatPrev, &g_env_light.mColPatCurr, &pale0, &pale1, + &pale2, &pale3, &blendAB, &palIdx0, &palIdx1, &g_env_light.mColPatBlend, + init_timer); + + if (pale0 == 0xFF) { + mActorAmbience.r = 255; + mActorAmbience.g = 0; + mActorAmbience.b = 0; + + for (int i = 0; i < 4; i++) { + mTerrainAmbienceBG[i].r = 255; + mTerrainAmbienceBG[i].g = 0; + mTerrainAmbienceBG[i].b = 0; + mTerrainAmbienceBG[i].a = 0; + } + } else { + stage_palette_info_class* pale0_p = &g_env_light.mpDmPalet[pale0]; + stage_palette_info_class* pale1_p = &g_env_light.mpDmPalet[pale1]; + stage_palette_info_class* pale2_p = &g_env_light.mpDmPalet[pale2]; + stage_palette_info_class* pale3_p = &g_env_light.mpDmPalet[pale3]; + + dKy_calc_color_set(&mActorAmbience, &pale0_p->mActorAmbColor, &pale2_p->mActorAmbColor, + &pale1_p->mActorAmbColor, &pale3_p->mActorAmbColor, blendAB, + g_env_light.mColPatBlend, addCol, + g_env_light.field_0x1210 * + (g_env_light.mColActColRatio * g_env_light.mColActColRatio)); + + for (int i = 0; i < 4; i++) { + if (i != 3 || (strcmp(dComIfGp_getStartStageName(), "R_SP127") != 0 && + strcmp(dComIfGp_getStartStageName(), "F_SP127") != 0)) + { + dKy_calc_color_set(&mTerrainAmbienceBG[i], &pale0_p->mBgAmbColor[i], + &pale2_p->mBgAmbColor[i], &pale1_p->mBgAmbColor[i], + &pale3_p->mBgAmbColor[i], blendAB, g_env_light.mColPatBlend, + addCol, g_env_light.mColBgColRatio); + } + } + + if (daPy_py_c::checkNowWolfPowerUp()) { + dKy_WolfPowerup_AmbCol(&mActorAmbience); + dKy_WolfPowerup_BgAmbCol(&mTerrainAmbienceBG[0]); + } + + mTerrainAmbienceBG[1].a = (u8)kankyo_color_ratio_set( + pale0_p->mBgAmbColor1A, pale1_p->mBgAmbColor1A, blendAB, pale2_p->mBgAmbColor1A, + pale3_p->mBgAmbColor1A, g_env_light.mColPatBlend, 0, 1.0f); + mTerrainAmbienceBG[2].a = (u8)kankyo_color_ratio_set( + pale0_p->mBgAmbColor2A, pale1_p->mBgAmbColor2A, blendAB, pale2_p->mBgAmbColor2A, + pale3_p->mBgAmbColor2A, g_env_light.mColPatBlend, 0, 1.0f); + mTerrainAmbienceBG[3].a = (u8)kankyo_color_ratio_set( + pale0_p->mBgAmbColor3A, pale1_p->mBgAmbColor3A, blendAB, pale2_p->mBgAmbColor3A, + pale3_p->mBgAmbColor3A, g_env_light.mColPatBlend, 0, 1.0f); + + mPaletteTerrainLightEffect = + kankyo_color_ratio_set( + pale0_p->mTerrainLightInfluence, pale1_p->mTerrainLightInfluence, blendAB, + pale2_p->mTerrainLightInfluence, pale3_p->mTerrainLightInfluence, + g_env_light.mColPatBlend, 0, 1.0f) * + 0.01f; + if (mPaletteTerrainLightEffect > 2.0f) { + mPaletteTerrainLightEffect = 1.0f; + } + + mFogDensity = kankyo_color_ratio_set( + pale0_p->mCloudShadowDensity, pale1_p->mCloudShadowDensity, blendAB, + pale2_p->mCloudShadowDensity, pale3_p->mCloudShadowDensity, + g_env_light.mColPatBlend, 0, 1.0f); + if (daPy_py_c::checkNowWolfPowerUp()) { + mFogDensity = 0xFF; + } + + for (int i = 0; i < 6; i++) { + dKy_calc_color_set(&field_0x1128[i], &pale0_p->mPlightColor[i], + &pale2_p->mPlightColor[i], &pale1_p->mPlightColor[i], + &pale3_p->mPlightColor[i], blendAB, g_env_light.mColPatBlend, + addCol, g_env_light.mColBgColRatio); + + if (daPy_py_c::checkNowWolfPowerUp()) { + field_0x1128[i].r = 0; + field_0x1128[i].g = 0; + field_0x1128[i].b = 0; + } + + g_env_light.mDungeonLights[i].mColor.r = field_0x1128[i].r; + g_env_light.mDungeonLights[i].mColor.g = field_0x1128[i].g; + g_env_light.mDungeonLights[i].mColor.b = field_0x1128[i].b; + } + + dKy_calc_color_set(&mFogColor, &pale0_p->mFogColor, &pale2_p->mFogColor, + &pale1_p->mFogColor, &pale3_p->mFogColor, blendAB, + g_env_light.mColPatBlend, mFogAddCol, g_env_light.mColFogColRatio); + mFogNear = float_kankyo_color_ratio_set( + pale0_p->mFogStartZ, pale1_p->mFogStartZ, blendAB, pale2_p->mFogStartZ, + pale3_p->mFogStartZ, g_env_light.mColPatBlend, g_env_light.field_0x11ec, + g_env_light.field_0x11f4); + mFogFar = float_kankyo_color_ratio_set( + pale0_p->mFogEndZ, pale1_p->mFogEndZ, blendAB, pale2_p->mFogEndZ, pale3_p->mFogEndZ, + g_env_light.mColPatBlend, g_env_light.field_0x11f0, g_env_light.field_0x11f4); + + if (daPy_py_c::checkNowWolfPowerUp()) { + mFogColor.r = 0; + mFogColor.g = 0; + mFogColor.b = 0; + dKy_WolfPowerup_FogNearFar(&mFogNear, &mFogFar); + } + + u8 bloomIdx0 = pale0_p->mBloomTblIdx; + u8 bloomIdx2 = pale2_p->mBloomTblIdx; + u8 bloomIdx1 = pale1_p->mBloomTblIdx; + u8 bloomIdx3 = pale3_p->mBloomTblIdx; + + if (daPy_py_c::checkNowWolfPowerUp()) { + bloomIdx3 = 3; + bloomIdx1 = 3; + bloomIdx2 = 3; + bloomIdx0 = 3; + } + + f32 temp_f31; + if (g_env_light.field_0x12fc >= 0) { + bloomIdx3 = g_env_light.field_0x12fc; + bloomIdx1 = g_env_light.field_0x12fc; + temp_f31 = blendAB; + blendAB = g_env_light.field_0x1278; + } + + dkydata_bloomInfo_info_class* bloomInf0_p; + dkydata_bloomInfo_info_class* bloomInf1_p; + dkydata_bloomInfo_info_class* bloomInf2_p; + dkydata_bloomInfo_info_class* bloomInf3_p; + + bloomInf0_p = dKyd_BloomInf_tbl_getp(bloomIdx0); + bloomInf2_p = dKyd_BloomInf_tbl_getp(bloomIdx2); + bloomInf1_p = dKyd_BloomInf_tbl_getp(bloomIdx1); + bloomInf3_p = dKyd_BloomInf_tbl_getp(bloomIdx3); + + u8 temp_r14 = kankyo_color_ratio_set( + bloomInf0_p->mThreshold, bloomInf1_p->mThreshold, blendAB, bloomInf2_p->mThreshold, + bloomInf3_p->mThreshold, g_env_light.mColPatBlend, 0, 1.0f); + mDoGph_gInf_c::getBloom()->setPoint(temp_r14); + u8 blureSize = (u8)kankyo_color_ratio_set( + bloomInf0_p->mBlurAmount, bloomInf1_p->mBlurAmount, blendAB, + bloomInf2_p->mBlurAmount, bloomInf3_p->mBlurAmount, g_env_light.mColPatBlend, 0, + 1.0f); + + if (dKy_darkworld_check()) { + static s16 S_fuwan_sin; + + f32 sin = cM_ssin(S_fuwan_sin); + S_fuwan_sin += (s16)cM_rndF(2000.0f) + 500; + + blureSize += (u8)(sin * (0.2f * blureSize)); + } + + mDoGph_gInf_c::getBloom()->setBlureSize(blureSize); + mDoGph_gInf_c::getBloom()->setBlureRatio(kankyo_color_ratio_set( + bloomInf0_p->mDensity, bloomInf1_p->mDensity, blendAB, bloomInf2_p->mDensity, + bloomInf3_p->mDensity, g_env_light.mColPatBlend, 0, 1.0f)); + + GXColor blendCol; + blendCol.r = kankyo_color_ratio_set(bloomInf0_p->mColorR, bloomInf1_p->mColorR, blendAB, + bloomInf2_p->mColorR, bloomInf3_p->mColorR, + g_env_light.mColPatBlend, 0, 1.0f); + blendCol.g = kankyo_color_ratio_set(bloomInf0_p->mColorG, bloomInf1_p->mColorG, blendAB, + bloomInf2_p->mColorG, bloomInf3_p->mColorG, + g_env_light.mColPatBlend, 0, 1.0f); + blendCol.b = kankyo_color_ratio_set(bloomInf0_p->mColorB, bloomInf1_p->mColorB, blendAB, + bloomInf2_p->mColorB, bloomInf3_p->mColorB, + g_env_light.mColPatBlend, 0, 1.0f); + blendCol.a = kankyo_color_ratio_set( + bloomInf0_p->mOrigDensity, bloomInf1_p->mOrigDensity, blendAB, + bloomInf2_p->mOrigDensity, bloomInf3_p->mOrigDensity, g_env_light.mColPatBlend, 0, + 1.0f); + mDoGph_gInf_c::getBloom()->setBlendColor(blendCol); + + if (g_env_light.field_0x12fc >= 0) { + blendAB = temp_f31; + } + + GXColor monoCol; + monoCol.r = kankyo_color_ratio_set( + bloomInf0_p->mSaturateSubtractR, bloomInf1_p->mSaturateSubtractR, blendAB, + bloomInf2_p->mSaturateSubtractR, bloomInf3_p->mSaturateSubtractR, + g_env_light.mColPatBlend, 0, 1.0f); + monoCol.g = kankyo_color_ratio_set( + bloomInf0_p->mSaturateSubtractG, bloomInf1_p->mSaturateSubtractG, blendAB, + bloomInf2_p->mSaturateSubtractG, bloomInf3_p->mSaturateSubtractG, + g_env_light.mColPatBlend, 0, 1.0f); + monoCol.b = kankyo_color_ratio_set( + bloomInf0_p->mSaturateSubtractB, bloomInf1_p->mSaturateSubtractB, blendAB, + bloomInf2_p->mSaturateSubtractB, bloomInf3_p->mSaturateSubtractB, + g_env_light.mColPatBlend, 0, 1.0f); + monoCol.a = kankyo_color_ratio_set( + bloomInf0_p->mSaturateSubtractA, bloomInf1_p->mSaturateSubtractA, blendAB, + bloomInf2_p->mSaturateSubtractA, bloomInf3_p->mSaturateSubtractA, + g_env_light.mColPatBlend, 0, 1.0f); + mDoGph_gInf_c::getBloom()->setMonoColor(monoCol); + + if (temp_r14 >= 0xFF) { + mDoGph_gInf_c::getBloom()->setEnable(0); + } else { + u8 mode = 0; + mDoGph_gInf_c::getBloom()->setEnable(1); + + if (bloomIdx0 != 0 && bloomInf0_p->mType != 0) { + mode = 1; + } else if (bloomIdx2 != 0 && bloomInf2_p->mType != 0) { + mode = 1; + } else if (bloomIdx1 != 0 && bloomInf1_p->mType != 0) { + mode = 1; + } else if (bloomIdx3 != 0 && bloomInf3_p->mType != 0) { + mode = 1; + } + + mDoGph_gInf_c::getBloom()->setMode(mode); + } + + f32 var_f30; + if (dKy_Outdoor_check() == true) { + static f32 now_shadow_alpha[] = {0.25f, 0.35f, 0.6f, 0.6f, 0.25f, 0.35f}; + + f32 var_f1; + f32 var_f2; + f32 var_f4; + f32 var_f5; + + if (palIdx0 < 6) { + var_f1 = now_shadow_alpha[palIdx0]; + } else { + var_f1 = 0.25f; + } + + if (palIdx1 < 6) { + var_f2 = now_shadow_alpha[palIdx1]; + } else { + var_f2 = 0.25f; + } + + var_f4 = 0.25f; + var_f5 = 0.25f; + + if (pale0_p == pale2_p) { + var_f4 = var_f1; + var_f5 = var_f2; + } + + var_f30 = float_kankyo_color_ratio_set(var_f1, var_f2, blendAB, var_f4, var_f5, + g_env_light.mColPatBlend, 0.0f, 0.0f); + + field_0x123c = 0.8f; + if (mColpatWeather != 0) { + var_f30 *= 0.4f; + } + } else { + var_f30 = 0.4f; + field_0x123c = 0.65f; + } + + if (dKy_darkworld_check()) { + var_f30 = 0.55f; + field_0x123c = 0.55f; + } + + if (g_env_light.mInitAnmTimer != 0) { + field_0x1238 = var_f30; + } else { + cLib_addCalc(&field_0x1238, var_f30, 0.05f, 0.005f, 0.000001f); + } + + stage_vrbox_info_class* vrbox0_p = &g_env_light.mpDmVrbox[pale0_p->mVirtIdx]; + stage_vrbox_info_class* vrbox1_p = &g_env_light.mpDmVrbox[pale1_p->mVirtIdx]; + stage_vrbox_info_class* vrbox2_p = &g_env_light.mpDmVrbox[pale2_p->mVirtIdx]; + stage_vrbox_info_class* vrbox3_p = &g_env_light.mpDmVrbox[pale3_p->mVirtIdx]; + + mVrSkyCol.r = kankyo_color_ratio_set( + vrbox0_p->field_0x0.r, vrbox1_p->field_0x0.r, blendAB, vrbox2_p->field_0x0.r, + vrbox3_p->field_0x0.r, g_env_light.mColPatBlend, mVrboxAddcolSky0.r, + g_env_light.mColVrboxSoraColRatio * g_env_light.field_0x11c8); + mVrSkyCol.g = kankyo_color_ratio_set( + vrbox0_p->field_0x0.g, vrbox1_p->field_0x0.g, blendAB, vrbox2_p->field_0x0.g, + vrbox3_p->field_0x0.g, g_env_light.mColPatBlend, mVrboxAddcolSky0.g, + g_env_light.mColVrboxSoraColRatio * g_env_light.field_0x11cc); + mVrSkyCol.b = kankyo_color_ratio_set( + vrbox0_p->field_0x0.b, vrbox1_p->field_0x0.b, blendAB, vrbox2_p->field_0x0.b, + vrbox3_p->field_0x0.b, g_env_light.mColPatBlend, mVrboxAddcolSky0.b, + g_env_light.mColVrboxSoraColRatio * g_env_light.field_0x11d0); + mVrSkyCol.a = 255; + + mVrkumoCol.r = kankyo_color_ratio_set( + vrbox0_p->field_0x3.r, vrbox1_p->field_0x3.r, blendAB, vrbox2_p->field_0x3.r, + vrbox3_p->field_0x3.r, g_env_light.mColPatBlend, mVrboxAddcolSky0.r, + g_env_light.mColVrboxKumocolRatio * g_env_light.field_0x11c8); + mVrkumoCol.g = kankyo_color_ratio_set( + vrbox0_p->field_0x3.g, vrbox1_p->field_0x3.g, blendAB, vrbox2_p->field_0x3.g, + vrbox3_p->field_0x3.g, g_env_light.mColPatBlend, mVrboxAddcolSky0.g, + g_env_light.mColVrboxKumocolRatio * g_env_light.field_0x11cc); + mVrkumoCol.b = kankyo_color_ratio_set( + vrbox0_p->field_0x3.b, vrbox1_p->field_0x3.b, blendAB, vrbox2_p->field_0x3.b, + vrbox3_p->field_0x3.b, g_env_light.mColPatBlend, mVrboxAddcolSky0.b, + g_env_light.mColVrboxKumocolRatio * g_env_light.field_0x11d0); + mVrkumoCol.a = kankyo_color_ratio_set( + vrbox0_p->field_0x9.a, vrbox1_p->field_0x9.a, blendAB, vrbox2_p->field_0x9.a, + vrbox3_p->field_0x9.a, g_env_light.mColPatBlend, 0, 1.0f); + + mVrShitaGumoCol.r = kankyo_color_ratio_set( + vrbox0_p->field_0x6.r, vrbox1_p->field_0x6.r, blendAB, vrbox2_p->field_0x6.r, + vrbox3_p->field_0x6.r, g_env_light.mColPatBlend, mVrboxAddcolSky0.r, + g_env_light.mColVrboxKumocolRatio * g_env_light.field_0x11c8); + mVrShitaGumoCol.g = kankyo_color_ratio_set( + vrbox0_p->field_0x6.g, vrbox1_p->field_0x6.g, blendAB, vrbox2_p->field_0x6.g, + vrbox3_p->field_0x6.g, g_env_light.mColPatBlend, mVrboxAddcolSky0.g, + g_env_light.mColVrboxKumocolRatio * g_env_light.field_0x11cc); + mVrShitaGumoCol.b = kankyo_color_ratio_set( + vrbox0_p->field_0x6.b, vrbox1_p->field_0x6.b, blendAB, vrbox2_p->field_0x6.b, + vrbox3_p->field_0x6.b, g_env_light.mColPatBlend, mVrboxAddcolSky0.b, + g_env_light.mColVrboxKumocolRatio * g_env_light.field_0x11d0); + + mVrShitaUneiCol.r = kankyo_color_ratio_set( + vrbox0_p->field_0x9.r, vrbox1_p->field_0x9.r, blendAB, vrbox2_p->field_0x9.r, + vrbox3_p->field_0x9.r, g_env_light.mColPatBlend, mVrboxAddcolSky0.r, + g_env_light.mColVrboxKumocolRatio * g_env_light.field_0x11c8); + mVrShitaUneiCol.g = kankyo_color_ratio_set( + vrbox0_p->field_0x9.g, vrbox1_p->field_0x9.g, blendAB, vrbox2_p->field_0x9.g, + vrbox3_p->field_0x9.g, g_env_light.mColPatBlend, mVrboxAddcolSky0.g, + g_env_light.mColVrboxKumocolRatio * g_env_light.field_0x11cc); + mVrShitaUneiCol.b = kankyo_color_ratio_set( + vrbox0_p->field_0x9.b, vrbox1_p->field_0x9.b, blendAB, vrbox2_p->field_0x9.b, + vrbox3_p->field_0x9.b, g_env_light.mColPatBlend, mVrboxAddcolSky0.b, + g_env_light.mColVrboxKumocolRatio * g_env_light.field_0x11d0); + + mVrKasumiCol.r = kankyo_color_ratio_set( + vrbox0_p->field_0xd.r, vrbox1_p->field_0xd.r, blendAB, vrbox2_p->field_0xd.r, + vrbox3_p->field_0xd.r, g_env_light.mColPatBlend, mVrboxAddcolKasumi.r, + g_env_light.mColVrboxSoraColRatio * g_env_light.field_0x11c8); + mVrKasumiCol.g = kankyo_color_ratio_set( + vrbox0_p->field_0xd.g, vrbox1_p->field_0xd.g, blendAB, vrbox2_p->field_0xd.g, + vrbox3_p->field_0xd.g, g_env_light.mColPatBlend, mVrboxAddcolKasumi.g, + g_env_light.mColVrboxSoraColRatio * g_env_light.field_0x11cc); + mVrKasumiCol.b = kankyo_color_ratio_set( + vrbox0_p->field_0xd.b, vrbox1_p->field_0xd.b, blendAB, vrbox2_p->field_0xd.b, + vrbox3_p->field_0xd.b, g_env_light.mColPatBlend, mVrboxAddcolKasumi.b, + g_env_light.mColVrboxSoraColRatio * g_env_light.field_0x11d0); + mVrKasumiCol.a = kankyo_color_ratio_set( + vrbox0_p->field_0xd.a, vrbox1_p->field_0xd.a, blendAB, vrbox2_p->field_0xd.a, + vrbox3_p->field_0xd.a, g_env_light.mColPatBlend, 0, 1.0f); + + mVrOkuKasumiCol.r = kankyo_color_ratio_set( + vrbox0_p->field_0x11.r, vrbox1_p->field_0x11.r, blendAB, vrbox2_p->field_0x11.r, + vrbox3_p->field_0x11.r, g_env_light.mColPatBlend, mVrboxAddcolKasumi.r, + g_env_light.mColVrboxSoraColRatio * g_env_light.field_0x11c8); + mVrOkuKasumiCol.g = kankyo_color_ratio_set( + vrbox0_p->field_0x11.g, vrbox1_p->field_0x11.g, blendAB, vrbox2_p->field_0x11.g, + vrbox3_p->field_0x11.g, g_env_light.mColPatBlend, mVrboxAddcolKasumi.g, + g_env_light.mColVrboxSoraColRatio * g_env_light.field_0x11cc); + mVrOkuKasumiCol.b = kankyo_color_ratio_set( + vrbox0_p->field_0x11.b, vrbox1_p->field_0x11.b, blendAB, vrbox2_p->field_0x11.b, + vrbox3_p->field_0x11.b, g_env_light.mColPatBlend, mVrboxAddcolKasumi.b, + g_env_light.mColVrboxSoraColRatio * g_env_light.field_0x11d0); + mVrOkuKasumiCol.a = kankyo_color_ratio_set( + vrbox0_p->field_0x11.a, vrbox1_p->field_0x11.a, blendAB, vrbox2_p->field_0x11.a, + vrbox3_p->field_0x11.a, g_env_light.mColPatBlend, 0, 1.0f); + + if (daPy_py_c::checkNowWolfPowerUp()) { + mVrSkyCol.r = 0; + mVrSkyCol.g = 0; + mVrSkyCol.b = 0; + + mVrkumoCol.r = 0; + mVrkumoCol.g = 0; + mVrkumoCol.b = 0; + + mVrShitaGumoCol.r = 0; + mVrShitaGumoCol.g = 0; + mVrShitaGumoCol.b = 0; + + mVrShitaUneiCol.r = 0; + mVrShitaUneiCol.g = 0; + mVrShitaUneiCol.b = 0; + + mVrKasumiCol.r = 0; + mVrKasumiCol.g = 0; + mVrKasumiCol.b = 0; + + mVrOkuKasumiCol.r = 0; + mVrOkuKasumiCol.g = 0; + mVrOkuKasumiCol.b = 0; + } + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2665,13 +3426,14 @@ asm void dScnKy_env_light_c::setLight() { #include "asm/d/kankyo/d_kankyo/setLight__18dScnKy_env_light_cFv.s" } #pragma pop +#endif /* 801A133C-801A16C0 19BC7C 0384+00 2/2 0/0 0/0 .text * setLight_bg__18dScnKy_env_light_cFP12dKy_tevstr_cP11_GXColorS10P11_GXColorS10PfPf */ // regalloc, but equivalent i think #ifdef NONMATCHING -void dScnKy_env_light_c::setLight_bg(dKy_tevstr_c* i_tevstr, _GXColorS10* param_1, - _GXColorS10* param_2, f32* param_3, f32* param_4) { +void dScnKy_env_light_c::setLight_bg(dKy_tevstr_c* i_tevstr, GXColorS10* param_1, + GXColorS10* param_2, f32* i_fogStartZ, f32* i_fogEndZ) { i_tevstr->mColpatPrev = g_env_light.mColPatPrev; i_tevstr->mColpatCurr = g_env_light.mColPatCurr; @@ -2679,32 +3441,32 @@ void dScnKy_env_light_c::setLight_bg(dKy_tevstr_c* i_tevstr, _GXColorS10* param_ i_tevstr->mColpatBlend = g_env_light.mColPatBlend; } - u8 sp23; - u8 sp22; - u8 sp21; - u8 sp20; - f32 sp14; - int sp10; - int spC; + u8 pale0; + u8 pale2; + u8 pale1; + u8 pale3; + f32 blendAB; + int palIdx0; + int palIdx1; setLight_palno_get(&i_tevstr->mEnvrIdxPrev, &i_tevstr->mEnvrIdxCurr, &i_tevstr->mColpatPrev, - &i_tevstr->mColpatCurr, &sp23, &sp21, &sp22, &sp20, &sp14, &sp10, &spC, - &i_tevstr->mColpatBlend, &i_tevstr->mInitTimer); + &i_tevstr->mColpatCurr, &pale0, &pale1, &pale2, &pale3, &blendAB, &palIdx0, + &palIdx1, &i_tevstr->mColpatBlend, &i_tevstr->mInitTimer); - if (sp23 == 0xFF) { + if (pale0 == 0xFF) { for (int i = 0; i < 4; i++) { param_1[i].r = 255; param_1[i].g = 0; param_1[i].b = 0; } } else { - stage_palette_info_class* temp_r27 = &g_env_light.mpDmPalet[sp23]; - stage_palette_info_class* temp_r26 = &g_env_light.mpDmPalet[sp21]; - stage_palette_info_class* temp_r25 = &g_env_light.mpDmPalet[sp22]; - stage_palette_info_class* temp_r24 = &g_env_light.mpDmPalet[sp20]; + stage_palette_info_class* pale0_p = &g_env_light.mpDmPalet[pale0]; + stage_palette_info_class* pale1_p = &g_env_light.mpDmPalet[pale1]; + stage_palette_info_class* pale2_p = &g_env_light.mpDmPalet[pale2]; + stage_palette_info_class* pale3_p = &g_env_light.mpDmPalet[pale3]; for (int i = 0; i < 4; i++) { - dKy_calc_color_set(¶m_1[i], &temp_r27->mActor_K0[i], &temp_r25->mActor_K0[i], - &temp_r26->mActor_K0[i], &temp_r24->mActor_K0[i], sp14, + dKy_calc_color_set(¶m_1[i], &pale0_p->mBgAmbColor[i], &pale2_p->mBgAmbColor[i], + &pale1_p->mBgAmbColor[i], &pale3_p->mBgAmbColor[i], blendAB, i_tevstr->mColpatBlend, mBgAddColAmb, g_env_light.mColBgColRatio); } @@ -2719,8 +3481,8 @@ void dScnKy_env_light_c::setLight_bg(dKy_tevstr_c* i_tevstr, _GXColorS10* param_ GXColorS10 sp50[6]; for (int i = 0; i < 6; i++) { - dKy_calc_color_set(&sp50[i], &temp_r27->mBG1_K0[i], &temp_r25->mBG1_K0[i], - &temp_r26->mBG1_K0[i], &temp_r24->mBG1_K0[i], sp14, + dKy_calc_color_set(&sp50[i], &pale0_p->mPlightColor[i], &pale2_p->mPlightColor[i], + &pale1_p->mPlightColor[i], &pale3_p->mPlightColor[i], blendAB, i_tevstr->mColpatBlend, mBgAddColAmb, g_env_light.mColBgColRatio); if (daPy_py_c::checkNowWolfEyeUp()) { @@ -2729,33 +3491,33 @@ void dScnKy_env_light_c::setLight_bg(dKy_tevstr_c* i_tevstr, _GXColorS10* param_ sp50[i].b = 0; } - J3DLightInfo& temp_r30 = i_tevstr->field_0x074[i].getLightInfo(); + J3DLightInfo& light_info = i_tevstr->mLights[i].getLightInfo(); GXColor sp28; sp28.r = sp50[i].r; sp28.g = sp50[i].g; sp28.b = sp50[i].b; sp28.a = sp50[i].a; - temp_r30.mColor = dKy_light_influence_col(&sp28, i_tevstr->field_0x374); + light_info.mColor = dKy_light_influence_col(&sp28, i_tevstr->field_0x374); } - dKy_calc_color_set(param_2, &temp_r27->field_0x21, &temp_r25->field_0x21, - &temp_r26->field_0x21, &temp_r24->field_0x21, sp14, - i_tevstr->mColpatBlend, mFogAddCol, g_env_light.mColFogColRatio); + dKy_calc_color_set(param_2, &pale0_p->mFogColor, &pale2_p->mFogColor, &pale1_p->mFogColor, + &pale3_p->mFogColor, blendAB, i_tevstr->mColpatBlend, mFogAddCol, + g_env_light.mColFogColRatio); - *param_3 = float_kankyo_color_ratio_set(temp_r27->mFogStartZ, temp_r26->mFogStartZ, sp14, - temp_r25->mFogStartZ, temp_r24->mFogStartZ, - i_tevstr->mColpatBlend, g_env_light.field_0x11ec, - g_env_light.field_0x11f4); - *param_4 = float_kankyo_color_ratio_set( - temp_r27->mFogEndZ, temp_r26->mFogEndZ, sp14, temp_r25->mFogEndZ, temp_r24->mFogEndZ, + *i_fogStartZ = float_kankyo_color_ratio_set( + pale0_p->mFogStartZ, pale1_p->mFogStartZ, blendAB, pale2_p->mFogStartZ, + pale3_p->mFogStartZ, i_tevstr->mColpatBlend, g_env_light.field_0x11ec, + g_env_light.field_0x11f4); + *i_fogEndZ = float_kankyo_color_ratio_set( + pale0_p->mFogEndZ, pale1_p->mFogEndZ, blendAB, pale2_p->mFogEndZ, pale3_p->mFogEndZ, i_tevstr->mColpatBlend, g_env_light.field_0x11f0, g_env_light.field_0x11f4); if (daPy_py_c::checkNowWolfEyeUp()) { param_2->r = 0; param_2->g = 0; param_2->b = 0; - dKy_WolfPowerup_FogNearFar(param_3, param_4); + dKy_WolfPowerup_FogNearFar(i_fogStartZ, i_fogEndZ); } } } @@ -2773,6 +3535,172 @@ asm void dScnKy_env_light_c::setLight_bg(dKy_tevstr_c* param_0, _GXColorS10* par /* 801A16C0-801A1D64 19C000 06A4+00 1/1 0/0 0/0 .text * setLight_actor__18dScnKy_env_light_cFP12dKy_tevstr_cP11_GXColorS10PfPf */ +// mostly done, just regalloc +#ifdef NONMATCHING +void dScnKy_env_light_c::setLight_actor(dKy_tevstr_c* i_tevstr, GXColorS10* i_fogColor, + f32* i_fogStartZ, f32* i_fogEndZ) { + u8 palIdx0A; + u8 palIdx1A; + u8 palIdx0B; + u8 palIdx1B; + f32 blendAB; + int palIdx0; + int palIdx1; + + i_tevstr->mColpatPrev = g_env_light.mColPatPrev; + i_tevstr->mColpatCurr = g_env_light.mColPatCurr; + if (i_tevstr->mColpatPrev != i_tevstr->mColpatCurr) { + i_tevstr->mColpatBlend = g_env_light.mColPatBlend; + } else if (i_tevstr->mEnvrIdxPrev == i_tevstr->mEnvrIdxCurr) { + i_tevstr->mColpatBlend = 0.0f; + } + + setLight_palno_get(&i_tevstr->mEnvrIdxPrev, &i_tevstr->mEnvrIdxCurr, &i_tevstr->mColpatPrev, + &i_tevstr->mColpatCurr, &palIdx0A, &palIdx0B, &palIdx1A, &palIdx1B, &blendAB, + &palIdx0, &palIdx1, &i_tevstr->mColpatBlend, &i_tevstr->mInitTimer); + + if (palIdx0A == 0xFF) { + for (int i = 0; i < 4; i++) { + i_tevstr->mColorC0.r = 255; + i_tevstr->mColorC0.g = 0; + i_tevstr->mColorC0.b = 0; + } + } else { + stage_palette_info_class* pale0_p = &g_env_light.mpDmPalet[palIdx0A]; + stage_palette_info_class* pale1_p = &g_env_light.mpDmPalet[palIdx0B]; + stage_palette_info_class* pale2_p = &g_env_light.mpDmPalet[palIdx1A]; + stage_palette_info_class* pale3_p = &g_env_light.mpDmPalet[palIdx1B]; + + if (i_tevstr->field_0x37a == 10 || i_tevstr->field_0x37a == 9 || i_tevstr->field_0x378 != 0) + { + dKy_calc_color_set(&i_tevstr->mColorC0, &pale0_p->mActorAmbColor, + &pale2_p->mActorAmbColor, &pale1_p->mActorAmbColor, + &pale3_p->mActorAmbColor, blendAB, i_tevstr->mColpatBlend, + mActorAddColAmb, + i_tevstr->field_0x374 * + (g_env_light.mColActColRatio * g_env_light.mColActColRatio)); + } else { + dKy_calc_color_set( + &i_tevstr->mColorC0, &pale0_p->mActorAmbColor, &pale2_p->mActorAmbColor, + &pale1_p->mActorAmbColor, &pale3_p->mActorAmbColor, blendAB, i_tevstr->mColpatBlend, + mActorAddColAmb, + i_tevstr->field_0x374 * (g_env_light.field_0x1210 * (g_env_light.mColActColRatio * + g_env_light.mColActColRatio))); + } + + if (daPy_py_c::checkNowWolfPowerUp()) { + dKy_WolfPowerup_AmbCol(&i_tevstr->mColorC0); + } + + GXColorS10 sp88[6]; + for (int i = 0; i < 6; i++) { + J3DLightInfo& light_info = i_tevstr->mLights[i].getLightInfo(); + + if (i == 0) { + if (i_tevstr->field_0x37a == 10 || i_tevstr->field_0x37a == 9 || + i_tevstr->field_0x378 != 0) + { + dKy_calc_color_set(&sp88[i], &pale0_p->mPlightColor[i], + &pale2_p->mPlightColor[i], &pale1_p->mPlightColor[i], + &pale3_p->mPlightColor[i], blendAB, i_tevstr->mColpatBlend, + mActorAddColAmb, 1.0f); + + if (daPy_py_c::checkNowWolfPowerUp()) { + sp88[i].r = 0; + sp88[i].g = 0; + sp88[i].b = 0; + } + + GXColor sp30; + sp30.r = sp88[i].r; + sp30.g = sp88[i].g; + sp30.b = sp88[i].b; + sp30.a = sp88[i].a; + light_info.mColor = dKy_light_influence_col(&sp30, i_tevstr->field_0x374); + } else { + dKy_calc_color_set(&sp88[i], &pale0_p->mPlightColor[i], + &pale2_p->mPlightColor[i], &pale1_p->mPlightColor[i], + &pale3_p->mPlightColor[i], blendAB, i_tevstr->mColpatBlend, + mActorAddColAmb, g_env_light.field_0x1210); + + if (daPy_py_c::checkNowWolfPowerUp()) { + sp88[i].r = 0; + sp88[i].g = 0; + sp88[i].b = 0; + } + + kankyo_color_ratio_calc(&light_info.mColor, sp88[i], + field_0x1210 * i_tevstr->field_0x374); + } + } else if (i_tevstr->field_0x37a == 10 || i_tevstr->field_0x37a == 9 || + i_tevstr->field_0x378 != 0) + { + dKy_calc_color_set(&sp88[i], &pale0_p->mPlightColor[i], &pale2_p->mPlightColor[i], + &pale1_p->mPlightColor[i], &pale3_p->mPlightColor[i], blendAB, + i_tevstr->mColpatBlend, mActorAddColAmb, + g_env_light.mColActColRatio * g_env_light.mColActColRatio); + + if (daPy_py_c::checkNowWolfPowerUp()) { + sp88[i].r = 0; + sp88[i].g = 0; + sp88[i].b = 0; + } + + GXColor sp30; + sp30.r = sp88[i].r; + sp30.g = sp88[i].g; + sp30.b = sp88[i].b; + sp30.a = sp88[i].a; + light_info.mColor = dKy_light_influence_col(&sp30, i_tevstr->field_0x374); + } else { + dKy_calc_color_set(&sp88[i], &pale0_p->mPlightColor[i], &pale2_p->mPlightColor[i], + &pale1_p->mPlightColor[i], &pale3_p->mPlightColor[i], blendAB, + i_tevstr->mColpatBlend, mActorAddColAmb, + g_env_light.field_0x1210 * + (g_env_light.mColActColRatio * g_env_light.mColActColRatio)); + + if (daPy_py_c::checkNowWolfPowerUp()) { + sp88[i].r = 0; + sp88[i].g = 0; + sp88[i].b = 0; + } + + kankyo_color_ratio_calc(&light_info.mColor, sp88[i], + field_0x1210 * i_tevstr->field_0x374); + } + } + + dKy_calc_color_set(i_fogColor, &pale0_p->mFogColor, &pale2_p->mFogColor, + &pale1_p->mFogColor, &pale3_p->mFogColor, blendAB, + i_tevstr->mColpatBlend, mFogAddCol, g_env_light.mColFogColRatio); + if ((i_tevstr->field_0x37a != 10 && i_tevstr->field_0x37a != 9) || + g_env_light.field_0x1210 == 1.0f) + { + *i_fogStartZ = float_kankyo_color_ratio_set( + pale0_p->mFogStartZ, pale1_p->mFogStartZ, blendAB, pale2_p->mFogStartZ, + pale3_p->mFogStartZ, i_tevstr->mColpatBlend, g_env_light.field_0x11ec, + g_env_light.field_0x11f4); + *i_fogEndZ = float_kankyo_color_ratio_set( + pale0_p->mFogEndZ, pale1_p->mFogEndZ, blendAB, pale2_p->mFogEndZ, pale3_p->mFogEndZ, + i_tevstr->mColpatBlend, g_env_light.field_0x11f0, g_env_light.field_0x11f4); + } else { + *i_fogStartZ = float_kankyo_color_ratio_set( + pale0_p->mFogStartZ, pale1_p->mFogStartZ, blendAB, pale2_p->mFogStartZ, + pale3_p->mFogStartZ, i_tevstr->mColpatBlend, g_env_light.field_0x11ec, 0.0f); + *i_fogEndZ = float_kankyo_color_ratio_set( + pale0_p->mFogEndZ, pale1_p->mFogEndZ, blendAB, pale2_p->mFogEndZ, pale3_p->mFogEndZ, + i_tevstr->mColpatBlend, g_env_light.field_0x11f0, 0.0f); + } + + if (daPy_py_c::checkNowWolfPowerUp()) { + i_fogColor->r = 0; + i_fogColor->g = 0; + i_fogColor->b = 0; + dKy_WolfPowerup_FogNearFar(i_fogStartZ, i_fogEndZ); + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2782,10 +3710,61 @@ asm void dScnKy_env_light_c::setLight_actor(dKy_tevstr_c* param_0, _GXColorS10* #include "asm/d/kankyo/d_kankyo/setLight_actor__18dScnKy_env_light_cFP12dKy_tevstr_cP11_GXColorS10PfPf.s" } #pragma pop +#endif /* 801A1D64-801A1F58 19C6A4 01F4+00 1/1 0/0 0/0 .text * settingTevStruct_colget_actor__18dScnKy_env_light_cFP4cXyzP12dKy_tevstr_cP11_GXColorS10P11_GXColorS10PfPf */ +// matches with literals +#ifdef NONMATCHING +void dScnKy_env_light_c::settingTevStruct_colget_actor(cXyz* param_0, dKy_tevstr_c* i_tevstr, + GXColorS10* i_color, GXColorS10* i_fogColor, + f32* i_fogStartZ, f32* i_fogEndZ) { + if (i_tevstr->mEnvrIdxOverride != 0xFF) { + f32 target = i_tevstr->mEnvrIdxOverride / 100.0f; + + if (g_env_light.mActorLightEffect == 100) { + cLib_addCalc(&i_tevstr->field_0x374, target, 0.25f, 0.05f, 0.000001f); + } + } else if (i_tevstr->mRoomNo >= 0) { + i_tevstr->mEnvrIdxCurr = i_tevstr->mRoomNo; + if (g_env_light.mActorLightEffect == 100) { + cLib_addCalc(&i_tevstr->field_0x374, 1.0f, 0.25f, 0.05f, 0.000001f); + } + } else { + i_tevstr->mEnvrIdxCurr = 0; + } + + if ((i_tevstr->field_0x37a >= 1 && i_tevstr->field_0x37a <= 7) || + (i_tevstr->field_0x37a == 9 && dKy_darkworld_check())) + { + if ((i_tevstr->field_0x37a != 2 && i_tevstr->field_0x37a != 3) || dKy_darkworld_check()) { + i_tevstr->field_0x374 = 0.0f; + } + } + + if (i_tevstr->mEnvrIdxPrev != i_tevstr->mEnvrIdxCurr && + (i_tevstr->mColpatBlend >= 1.0f || i_tevstr->mColpatBlend <= 0.0f)) + { + i_tevstr->mColpatBlend = 0.0f; + } + + if (i_tevstr->field_0x37a != 8) { + setLight_actor(i_tevstr, i_fogColor, i_fogStartZ, i_fogEndZ); + i_color->r = i_tevstr->mColorC0.r; + i_color->g = i_tevstr->mColorC0.g; + i_color->b = i_tevstr->mColorC0.b; + i_color->a = i_tevstr->mColorC0.a; + } else { + GXColorS10 sp8[4]; + setLight_bg(i_tevstr, sp8, i_fogColor, i_fogStartZ, i_fogEndZ); + i_color->r = sp8[0].r; + i_color->g = sp8[0].g; + i_color->b = sp8[0].b; + i_color->a = sp8[0].a; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2797,9 +3776,41 @@ asm void dScnKy_env_light_c::settingTevStruct_colget_actor(cXyz* param_0, dKy_te #include "asm/d/kankyo/d_kankyo/func_801A1D64.s" } #pragma pop +#endif /* 801A1F58-801A2090 19C898 0138+00 1/1 0/0 0/0 .text * settingTevStruct_colget_player__18dScnKy_env_light_cFP12dKy_tevstr_c */ +// matches with literals +#ifdef NONMATCHING +void dScnKy_env_light_c::settingTevStruct_colget_player(dKy_tevstr_c* i_tevstr) { + if (i_tevstr->mEnvrIdxOverride != 0xFF) { + f32 target = i_tevstr->mEnvrIdxOverride / 100.0f; + + if (g_env_light.mActorLightEffect == 100) { + cLib_addCalc(&i_tevstr->field_0x374, target, 0.25f, 0.05f, 0.000001f); + } + } else if (i_tevstr->mRoomNo >= 0) { + i_tevstr->mEnvrIdxCurr = i_tevstr->mRoomNo; + if (g_env_light.mActorLightEffect == 100) { + cLib_addCalc(&i_tevstr->field_0x374, 1.0f, 0.25f, 0.05f, 0.000001f); + } + } + + if (g_env_light.mEnvrIdxCurr != i_tevstr->mEnvrIdxCurr) { + if (i_tevstr->mEnvrIdxCurr == g_env_light.mEnvrIdxPrev) { + g_env_light.mEnvrIdxPrev = g_env_light.mEnvrIdxCurr; + g_env_light.mEnvrIdxCurr = i_tevstr->mEnvrIdxCurr; + g_env_light.mColPatBlend = 1.0f - g_env_light.mColPatBlend; + + i_tevstr->mColpatBlend = 1.0f - g_env_light.mColPatBlend; + } else if (g_env_light.mColPatBlend >= 1.0f || g_env_light.mColPatBlend <= 0.0f) { + g_env_light.mEnvrIdxCurr = i_tevstr->mEnvrIdxCurr; + g_env_light.mColPatBlend = 0.0f; + i_tevstr->mColpatBlend = 0.0f; + } + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2808,8 +3819,30 @@ asm void dScnKy_env_light_c::settingTevStruct_colget_player(dKy_tevstr_c* param_ #include "asm/d/kankyo/d_kankyo/settingTevStruct_colget_player__18dScnKy_env_light_cFP12dKy_tevstr_c.s" } #pragma pop +#endif /* 801A2090-801A2128 19C9D0 0098+00 1/1 0/0 0/0 .text cLib_addCalcU8__FPUcUcss */ +// regalloc / extra clrlwis +#ifdef NONMATCHING +static void cLib_addCalcU8(u8* i_value, u8 param_1, s16 param_2, s16 param_3) { + u8 temp_r30 = *i_value; + + s16 var_r31 = param_1 - *i_value; + if (abs(var_r31) >= param_2) { + var_r31 /= param_2; + } + + if (var_r31 > param_3) { + temp_r30 += param_3; + } else if (var_r31 < -param_3) { + temp_r30 -= param_3; + } else { + temp_r30 += var_r31; + } + + *i_value = temp_r30; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2818,6 +3851,7 @@ static asm void cLib_addCalcU8(u8* param_0, u8 param_1, s16 param_2, s16 param_3 #include "asm/d/kankyo/d_kankyo/cLib_addCalcU8__FPUcUcss.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80453D14-80453D18 002314 0004+00 1/1 0/0 0/0 .sdata2 @6761 */ @@ -3739,8 +4773,8 @@ static int dKy_Delete(sub_kankyo__class* i_this) { plight_init(); mDoAud_mEnvse_resetScene(); - if (g_env_light.field_0xf38 != NULL) { - mDoExt_destroySolidHeap(g_env_light.field_0xf38); + if (g_env_light.mpUndwaterEfHeap != NULL) { + mDoExt_destroySolidHeap(g_env_light.mpUndwaterEfHeap); } return 1; @@ -4723,7 +5757,7 @@ void dKy_ParticleColor_get_actor(cXyz* param_0, dKy_tevstr_c* param_1, _GXColor* void dKy_ParticleColor_get_bg(cXyz* param_0, dKy_tevstr_c* param_1, _GXColor* param_2, _GXColor* param_3, _GXColor* param_4, _GXColor* param_5, f32 param_6) { - *param_2 = NewAmbColGet(&g_env_light.mTerrainAmbienceBG0); + *param_2 = NewAmbColGet(&g_env_light.mTerrainAmbienceBG[0]); dKy_ParticleColor_get_base(param_0, param_1, param_2, param_3, param_4, param_5, param_6); } diff --git a/src/d/kankyo/d_kankyo_data.cpp b/src/d/kankyo/d_kankyo_data.cpp index d7a158d5640..fe533803d61 100644 --- a/src/d/kankyo/d_kankyo_data.cpp +++ b/src/d/kankyo/d_kankyo_data.cpp @@ -26,7 +26,7 @@ struct dKyd_l_vr_box_data_struct { // /* 803A8E98-803A9198 005FB8 0300+00 1/1 0/0 0/0 .data l_kydata_BloomInf_tbl */ -static dKydata_BloomInfo_c l_kydata_BloomInf_tbl[BLOOMINFO_MAX] = { +static dkydata_bloomInfo_info_class l_kydata_BloomInf_tbl[BLOOMINFO_MAX] = { {BLOOM_SOFT, 0xFF, 0x40, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00}, {BLOOM_CLEAR, 0x28, 0x46, 0x87, 0xCF, 0xB1, 0x38, 0xD2, 0xFF, 0xFF, 0xFF, 0x60}, // Twilight {BLOOM_CLEAR, 0x2D, 0x46, 0x73, 0xCF, 0xB1, 0x38, 0xD2, 0xFF, 0xFF, 0xFF, @@ -838,7 +838,7 @@ dKydata_lightsizeInfo_c* dKyd_light_tw_size_tbl_getp() { } /* 80056A94-80056AA8 0513D4 0014+00 0/0 1/1 0/0 .text dKyd_BloomInf_tbl_getp__Fi */ -dKydata_BloomInfo_c* dKyd_BloomInf_tbl_getp(int tblIdx) { +dkydata_bloomInfo_info_class* dKyd_BloomInf_tbl_getp(int tblIdx) { return &l_kydata_BloomInf_tbl[tblIdx]; } diff --git a/src/d/kankyo/d_kankyo_wether.cpp b/src/d/kankyo/d_kankyo_wether.cpp index fd39912d07b..de03ac9807a 100644 --- a/src/d/kankyo/d_kankyo_wether.cpp +++ b/src/d/kankyo/d_kankyo_wether.cpp @@ -1345,6 +1345,115 @@ static asm void wether_move_vrkumo() { } #pragma pop +/* static void wether_move_vrkumo() { + BOOL var_r31 = false; + static cXyz r09o(-180000.0f, 750.0f, -200000.0f); + + if (dComIfGp_checkStatus(1) && !g_env_light.mbVrboxInvisible) { + g_env_light.mVrkumoCount = 6; + + if (memcmp(dComIfGp_getStartStageName(), "D_MN07", 6) == 0 || + strcmp(dComIfGp_getStartStageName(), "F_SP114") == 0 || + (strcmp(dComIfGp_getStartStageName(), "D_MN09B") == 0 && + (g_env_light.field_0x12cc != 0 || i_dComIfGp_event_runCheck()))) + { + cLib_addCalc(&g_env_light.mVrkumoStrength, 1.0f, 0.1f, 0.003f, 0.0000001f); + } else if (strcmp(dComIfGp_getStartStageName(), "F_SP104") == 0 && dComIfG_play_c::getLayerNo(0) > 2) { + if (g_env_light.mColpatCurr > 4) { + cLib_addCalc(&g_env_light.mVrkumoStrength, 1.0f, 0.1f, 0.003f, 0.0000001f); + } else { + cLib_addCalc(&g_env_light.mVrkumoStrength, 0.0f, 0.08f, 0.002f, 0.00000001f); + } + } else if ((g_env_light.mColpatCurr == 1 && g_env_light.mColPatBlend > 0.0f) || + (g_env_light.mColpatPrev == 1 && g_env_light.mColPatBlend < 1.0f) || + (g_env_light.mColpatCurr == 2 && g_env_light.mColPatBlend > 0.0f) || + (g_env_light.mColpatPrev == 2 && g_env_light.mColPatBlend < 1.0f)) + { + cLib_addCalc(&g_env_light.mVrkumoStrength, 1.0f, 0.1f, 0.003f, 0.0000001f); + } else { + cLib_addCalc(&g_env_light.mVrkumoStrength, 0.0f, 0.08f, 0.002f, 0.00000001f); + } + + g_env_light.mVrkumoCount = (s16)(g_env_light.mVrkumoStrength * 56.0f + 6.0f); + } else { + g_env_light.mVrkumoCount = 0; + } + + if (dKy_darkworld_check()) { + g_env_light.mVrkumoCount = 30; + } + + roomRead_class* room_p = dComIfGp_getStageRoom(); + if (room_p != NULL && dComIfGp_roomControl_getStayNo() < room_p->field_0x0) { + var_r31 = dStage_roomRead_dt_c_GetVrboxswitch(room_p->field_0x4[dComIfGp_roomControl_getStayNo()]); + } + + if (strcmp(dComIfGp_getStartStageName(), "F_SP200") == 0) { + g_env_light.mVrkumoCount = 30; + } else if (var_r31 == 0) { + return; + } + + switch (g_env_light.mVrkumoStatus) { + case 0: + if (g_env_light.mVrkumoCount != 0) { + g_env_light.mpVrkumoPacket = new (0x20) dKankyo_vrkumo_Packet(); + if (g_env_light.mpVrkumoPacket == NULL) { + return; + } + + if (dComIfG_getStageRes("Stage", "vr_box.bmd") != NULL || + dComIfG_getStageRes("Stage", "vr_box.bdl")) + { + g_env_light.mpVrkumoPacket->mpCloudTx1 = + (u8*)dComIfG_getStageRes("Stage", "cloud_01.bti"); + g_env_light.mpVrkumoPacket->mpCloudTx2 = + (u8*)dComIfG_getStageRes("Stage", "cloud_02.bti"); + g_env_light.mpVrkumoPacket->mpCloudTx3 = + (u8*)dComIfG_getStageRes("Stage", "cloud_03.bti"); + } else { + g_env_light.mpVrkumoPacket->mpCloudTx1 = + (u8*)dComIfG_getStageRes("Stage", "cloudtx_01.bti"); + g_env_light.mpVrkumoPacket->mpCloudTx2 = + (u8*)dComIfG_getStageRes("Stage", "cloudtx_02.bti"); + g_env_light.mpVrkumoPacket->mpCloudTx3 = + (u8*)dComIfG_getStageRes("Stage", "cloudtx_03.bti"); + } + + if (g_env_light.mpVrkumoPacket->mpCloudTx1 == NULL) { + g_env_light.mVrkumoStatus = 99; + } + + for (int i = 0; i < 100; i++) { + g_env_light.mpVrkumoPacket->mInst[i].mStatus = 0; + } + + vrkumo_move(); + g_env_light.mVrkumoStatus++; + } + break; + case 1: + vrkumo_move(); + dKyw_get_wind_vec(); + + cXyz localE0; + localE0.x = g_env_light.mWind.vec.x; + localE0.y = g_env_light.mWind.vec.y; + localE0.z = g_env_light.mWind.vec.z; + f32 var_f31 = g_env_light.mWind.pow; + + if (strcmp(dComIfGp_getStartStageName(), "R_SP127") == 0) { + pow = 0.3f; + } + + f32 x = JMAFastSqrt(localE0.x * localE0.x + localE0.z * localE0.z); + cM_atan2s(localE0.x, localE0.z); + cM_atan2s(localE0.y, x); + + break; + } +} */ + /* 80059E38-80059F74 054778 013C+00 1/1 0/0 0/0 .text wether_move_mud__Fv */ static void wether_move_mud() { switch (g_env_light.mMudInitialized) { diff --git a/src/d/particle/d_particle.cpp b/src/d/particle/d_particle.cpp index a2a4a99b3d3..4b73afab247 100644 --- a/src/d/particle/d_particle.cpp +++ b/src/d/particle/d_particle.cpp @@ -930,10 +930,10 @@ static void drawSecond_b_light8(JPABaseEmitter* param_0) { local_18.b = envLight->mActorAmbience.b; local_18.a = envLight->mActorAmbience.a; } else { - local_18.r = envLight->mTerrainAmbienceBG0.r;; - local_18.g = envLight->mTerrainAmbienceBG0.g;; - local_18.b = envLight->mTerrainAmbienceBG0.b;; - local_18.a = envLight->mTerrainAmbienceBG0.a;; + local_18.r = envLight->mTerrainAmbienceBG[0].r; + local_18.g = envLight->mTerrainAmbienceBG[0].g; + local_18.b = envLight->mTerrainAmbienceBG[0].b; + local_18.a = envLight->mTerrainAmbienceBG[0].a; } initiate_b_Lighting8(local_18); GXSetNumTevStages(2); diff --git a/src/d/particle/d_particle_copoly.cpp b/src/d/particle/d_particle_copoly.cpp index 5415ccceb40..9915f800854 100644 --- a/src/d/particle/d_particle_copoly.cpp +++ b/src/d/particle/d_particle_copoly.cpp @@ -1,621 +1,314 @@ -// -// Generated By: dol2asm -// Translation Unit: d/particle/d_particle_copoly -// +/** + * d_particle_copoly.cpp + * + */ -#include "SSystem/SComponent/c_bg_s_poly_info.h" #include "d/particle/d_particle_copoly.h" -#include "dol2asm.h" - -// -// Types: -// - -struct dPa_control_c { - struct level_c { - /* 8004B918 */ void getEmitter(u32); - }; - - /* 8004C838 */ void setWaterRipple(u32*, cBgS_PolyInfo&, cXyz const*, f32, dKy_tevstr_c const*, - cXyz const*, s8); - /* 8004D770 */ void setStopContinue(u32); - /* 8004D988 */ void setCommonPoly(u32*, cBgS_PolyInfo*, cXyz const*, cXyz const*, - dKy_tevstr_c const*, u32, u32, csXyz const*, cXyz const*, s8); -}; - -struct dPaPoF_c { - /* 800512E8 */ void setEffectFour(dKy_tevstr_c const*, cXyz const*, u32, u32, cXyz const*, - cXyz const*, cXyz const*, cXyz const*, cXyz const*, - csXyz const*, cXyz const*, s8, f32, f32); - /* 80051424 */ void clearFourAllID(); - /* 8005156C */ void getBackRightEffType(int) const; - /* 80051578 */ void getBackLeftEffType(int) const; - /* 80051584 */ void getBackRightEmitter(int, int); - /* 800515CC */ void getBackLeftEmitter(int, int); - - static u8 m_typeFourData[60]; - static u8 m_emitterFourData[60 + 28 /* padding */]; -}; - -struct dBgS { - /* 80074E50 */ void GetPolyAtt0(cBgS_PolyInfo const&); -}; - -struct cBgS { - /* 80074660 */ void ChkPolySafe(cBgS_PolyInfo const&); -}; - -// -// Forward References: -// - -extern "C" void init__7dPaPo_cFP9dBgS_Acchff(); -extern "C" void checkWaterIn__7dPaPo_cFP4cXyzPC4cXyzPC12dKy_tevstr_cUlScff(); -extern "C" void setEffect__7dPaPo_cFPUliPC12dKy_tevstr_cPC4cXyzUlUlPC4cXyzPC5csXyzScPUcPUc(); -extern "C" void setEffectCenter__7dPaPo_cFPC12dKy_tevstr_cPC4cXyzUlUlPC4cXyzPC5csXyzPC4cXyzScff(); -extern "C" void clearID__7dPaPo_cFPUlPUc(); -extern "C" void -setEffectTwo__8dPaPoT_cFPC12dKy_tevstr_cPC4cXyzUlUlPC4cXyzPC4cXyzPC4cXyzPC5csXyzPC4cXyzScff(); -extern "C" void clearTwoAllID__8dPaPoT_cFv(); -extern "C" void -setEffectFour__8dPaPoF_cFPC12dKy_tevstr_cPC4cXyzUlUlPC4cXyzPC4cXyzPC4cXyzPC4cXyzPC4cXyzPC5csXyzPC4cXyzScff(); -extern "C" void clearFourAllID__8dPaPoF_cFv(); -extern "C" void getRightEffType__8dPaPoT_cCFi(); -extern "C" void getLeftEffType__8dPaPoT_cCFi(); -extern "C" void getCenterEffType__7dPaPo_cCFi(); -extern "C" void getRightEmitter__8dPaPoT_cFii(); -extern "C" void getLeftEmitter__8dPaPoT_cFii(); -extern "C" void getCenterEmitter__7dPaPo_cFii(); -extern "C" void getBackRightEffType__8dPaPoF_cCFi(); -extern "C" void getBackLeftEffType__8dPaPoF_cCFi(); -extern "C" void getBackRightEmitter__8dPaPoF_cFii(); -extern "C" void getBackLeftEmitter__8dPaPoF_cFii(); -extern "C" void __sinit_d_particle_copoly_cpp(); -extern "C" u8 m_typeTwoData__8dPaPoT_c[36]; -extern "C" u8 m_emitterTwoData__8dPaPoT_c[36]; -extern "C" u8 m_typeFourData__8dPaPoF_c[60]; -extern "C" u8 m_emitterFourData__8dPaPoF_c[60 + 28 /* padding */]; - -// -// External References: -// - -extern "C" void fopKyM_createWpillar__FPC4cXyzfi(); -extern "C" void getEmitter__Q213dPa_control_c7level_cFUl(); -extern "C" void -setWaterRipple__13dPa_control_cFPUlR13cBgS_PolyInfoPC4cXyzfPC12dKy_tevstr_cPC4cXyzSc(); -extern "C" void setStopContinue__13dPa_control_cFUl(); -extern "C" void -setCommonPoly__13dPa_control_cFPUlP13cBgS_PolyInfoPC4cXyzPC4cXyzPC12dKy_tevstr_cUlUlPC5csXyzPC4cXyzSc(); -extern "C" void ChkPolySafe__4cBgSFRC13cBgS_PolyInfo(); -extern "C" void GetPolyAtt0__4dBgSFRC13cBgS_PolyInfo(); -extern "C" void _savegpr_22(); -extern "C" void _savegpr_24(); -extern "C" void _savegpr_25(); -extern "C" void _savegpr_29(); -extern "C" void _restgpr_22(); -extern "C" void _restgpr_24(); -extern "C" void _restgpr_25(); -extern "C" void _restgpr_29(); -extern "C" extern u8 g_dComIfG_gameInfo[122384]; - -// -// Declarations: -// +#include "SSystem/SComponent/c_bg_s_poly_info.h" +#include "d/com/d_com_inf_game.h" +#include "f_op/f_op_kankyo_mng.h" /* 80050C9C-80050CC4 04B5DC 0028+00 0/0 2/2 27/27 .text init__7dPaPo_cFP9dBgS_Acchff */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPaPo_c::init(dBgS_Acch* param_0, f32 param_1, f32 param_2) { - nofralloc -#include "asm/d/particle/d_particle_copoly/init__7dPaPo_cFP9dBgS_Acchff.s" -} -#pragma pop +void dPaPo_c::init(dBgS_Acch* param_0, f32 i_waterOffset, f32 i_rippleOffset) { + field_0x28 = param_0; + mWaterOffset = i_waterOffset; + mRippleOffset = i_rippleOffset; -/* ############################################################################################## */ -/* 80451FF8-80452000 0005F8 0004+04 1/1 0/0 0/0 .sdata2 @3672 */ -SECTION_SDATA2 static f32 lit_3672[1 + 1 /* padding */] = { - 0.0f, - /* padding */ - 0.0f, -}; + field_0x28->ClrWaterNone(); + field_0x37 = 1; +} /* 80050CC4-80050E7C 04B604 01B8+00 1/1 0/0 0/0 .text * checkWaterIn__7dPaPo_cFP4cXyzPC4cXyzPC12dKy_tevstr_cUlScff */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPaPo_c::checkWaterIn(cXyz* param_0, cXyz const* param_1, dKy_tevstr_c const* param_2, - u32 param_3, s8 param_4, f32 param_5, f32 param_6) { - nofralloc -#include "asm/d/particle/d_particle_copoly/checkWaterIn__7dPaPo_cFP4cXyzPC4cXyzPC12dKy_tevstr_cUlScff.s" +int dPaPo_c::checkWaterIn(cXyz* param_0, cXyz const* param_1, dKy_tevstr_c const* param_2, + u32 param_3, s8 param_4, f32 param_5, f32 param_6) { + if (field_0x28->ChkWaterHit() && dComIfG_Bgsp().ChkPolySafe(field_0x28->m_wtr) && + dComIfG_Bgsp().GetPolyAtt0(field_0x28->m_wtr) != 6) + { + f32 wtr_height = field_0x28->m_wtr.GetHeight(); + f32 var_f31 = wtr_height - param_0->y; + + if (var_f31 >= 0.0f) { + param_0->y = wtr_height; + if (!field_0x37) { + field_0x37 = 1; + + if (!(param_3 & 0x40000) && + field_0x28->m_wtr.GetHeight() - field_0x28->GetGroundH() >= mWaterOffset) + { + fopKyM_createWpillar(param_0, param_5, 0); + } + } + + if (var_f31 < mRippleOffset && !(param_3 & 0x20000)) { + dComIfGp_particle_setWaterRipple(field_0x0, field_0x28->m_wtr, param_0, param_6, + param_2, param_1, param_4); + } + + if (var_f31 < mWaterOffset) { + return 1; + } + + param_0->y -= var_f31; + return 2; + } + + field_0x37 = 0; + } else { + field_0x37 = 0; + } + + return 0; } -#pragma pop /* 80050E7C-80051008 04B7BC 018C+00 3/3 0/0 0/0 .text * setEffect__7dPaPo_cFPUliPC12dKy_tevstr_cPC4cXyzUlUlPC4cXyzPC5csXyzScPUcPUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPaPo_c::setEffect(u32* param_0, int param_1, dKy_tevstr_c const* param_2, - cXyz const* param_3, u32 param_4, u32 param_5, cXyz const* param_6, - csXyz const* param_7, s8 param_8, u8* param_9, u8* param_10) { - nofralloc -#include "asm/d/particle/d_particle_copoly/setEffect__7dPaPo_cFPUliPC12dKy_tevstr_cPC4cXyzUlUlPC4cXyzPC5csXyzScPUcPUc.s" +void dPaPo_c::setEffect(u32* param_0, int param_1, dKy_tevstr_c const* param_2, cXyz const* param_3, + u32 param_4, u32 param_5, cXyz const* param_6, csXyz const* param_7, + s8 param_8, u8* param_9, u8* param_10) { + if (param_6 != NULL) { + cXyz sp18(*param_6); + + cBgS_PolyInfo* poly_p; + if (param_1 == 1) { + sp18.y = field_0x28->m_wtr.GetHeight(); + poly_p = &field_0x28->m_wtr; + } else { + if (param_1 == 2) { + param_5 |= 0x80000000; + } + poly_p = &field_0x28->m_gnd; + } + + u16 temp_r29 = dComIfGp_particle_setCommonPoly(param_0, poly_p, param_3, &sp18, param_2, + param_4, param_5, param_7, NULL, param_8); + param_9[0] = temp_r29 & 0xFF; + param_9[1] = (temp_r29 >> 8) & 0xFF; + + if (param_9[0] != 0xFF) { + if (param_4 & (1 << param_9[0])) { + *param_10 = 0; + } else { + *param_10 = 20; + } + } else if (param_9[1] != 0xFF) { + if (param_4 & (1 << param_9[1])) { + *param_10 = 0; + } else { + *param_10 = 20; + } + } + } else if (*param_10 != 0) { + *param_10 -= 1; + + u32* var_r31 = param_0; + for (int i = 0; i < 8; i++) { + if (*var_r31 != 0) { + *var_r31 = dComIfGp_particle_setStopContinue(*var_r31); + } + + var_r31++; + } + } } -#pragma pop /* 80051008-8005113C 04B948 0134+00 1/1 1/1 12/12 .text * setEffectCenter__7dPaPo_cFPC12dKy_tevstr_cPC4cXyzUlUlPC4cXyzPC5csXyzPC4cXyzScff */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPaPo_c::setEffectCenter(dKy_tevstr_c const* param_0, cXyz const* param_1, u32 param_2, - u32 param_3, cXyz const* param_4, csXyz const* param_5, - cXyz const* param_6, s8 param_7, f32 param_8, f32 param_9) { - nofralloc -#include "asm/d/particle/d_particle_copoly/setEffectCenter__7dPaPo_cFPC12dKy_tevstr_cPC4cXyzUlUlPC4cXyzPC5csXyzPC4cXyzScff.s" +int dPaPo_c::setEffectCenter(dKy_tevstr_c const* param_0, cXyz const* param_1, u32 param_2, + u32 param_3, cXyz const* param_4, csXyz const* param_5, + cXyz const* param_6, s8 param_7, f32 param_8, f32 param_9) { + cXyz sp18(*param_1); + + int rt = checkWaterIn(&sp18, param_6, param_0, param_3, param_7, param_8, param_9); + mCenterEffType[0] = 0xFF; + mCenterEffType[1] = 0xFF; + + if (rt == 1 && (param_3 & 0x10000)) { + setEffect(field_0x8[0], rt, param_0, &sp18, param_2, param_3, &sp18, param_5, param_7, + &mCenterEffType[0], &field_0x36); + + if (mCenterEffType[0] == 2) { + mCenterEffType[0] = 16; + field_0x36 = 20; + } + + return 3; + } else { + setEffect(field_0x8[0], rt, param_0, &sp18, param_2, param_3, param_4, param_5, param_7, + &mCenterEffType[0], &field_0x36); + } + + return rt; } -#pragma pop /* 8005113C-8005115C 04BA7C 0020+00 2/2 0/0 0/0 .text clearID__7dPaPo_cFPUlPUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPaPo_c::clearID(u32* param_0, u8* param_1) { - nofralloc -#include "asm/d/particle/d_particle_copoly/clearID__7dPaPo_cFPUlPUc.s" +void dPaPo_c::clearID(u32* param_0, u8* param_1) { + *param_1 = 0; + + for (int i = 0; i < 8; i++) { + *param_0 = 0; + param_0++; + } } -#pragma pop /* 8005115C-80051294 04BA9C 0138+00 1/1 1/1 2/2 .text * setEffectTwo__8dPaPoT_cFPC12dKy_tevstr_cPC4cXyzUlUlPC4cXyzPC4cXyzPC4cXyzPC5csXyzPC4cXyzScff */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPaPoT_c::setEffectTwo(dKy_tevstr_c const* param_0, cXyz const* param_1, u32 param_2, - u32 param_3, cXyz const* param_4, cXyz const* param_5, - cXyz const* param_6, csXyz const* param_7, cXyz const* param_8, - s8 param_9, f32 param_10, f32 param_11) { - nofralloc -#include "asm/d/particle/d_particle_copoly/func_8005115C.s" +int dPaPoT_c::setEffectTwo(dKy_tevstr_c const* param_0, cXyz const* param_1, u32 param_2, + u32 param_3, cXyz const* param_4, cXyz const* param_5, + cXyz const* param_6, csXyz const* param_7, cXyz const* param_8, + s8 param_9, f32 param_10, f32 param_11) { + mLeftEffType[0] = 0xFF; + mLeftEffType[1] = 0xFF; + mRightEffType[0] = 0xFF; + mRightEffType[1] = 0xFF; + + int rt = setEffectCenter(param_0, param_1, param_2, param_3, param_4, param_7, param_8, param_9, + param_10, param_11); + if (rt != 3) { + cXyz sp18(*param_1); + if (rt == 1) { + sp18.y = field_0x28->m_wtr.GetHeight(); + } + + setEffect(mLeftEmitter[0], rt, param_0, &sp18, param_2, param_3, param_5, param_7, param_9, + mLeftEffType, &field_0x7c); + setEffect(mRightEmitter[0], rt, param_0, &sp18, param_2, param_3, param_6, param_7, param_9, + mRightEffType, &field_0x7d); + } else { + field_0x7c = 0; + field_0x7d = 0; + } + + return rt; } -#pragma pop /* 80051294-800512E8 04BBD4 0054+00 1/1 0/0 0/0 .text clearTwoAllID__8dPaPoT_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPaPoT_c::clearTwoAllID() { - nofralloc -#include "asm/d/particle/d_particle_copoly/clearTwoAllID__8dPaPoT_cFv.s" +void dPaPoT_c::clearTwoAllID() { + clearLeftID(); + clearRightID(); + clearCenterID(); } -#pragma pop /* 800512E8-80051424 04BC28 013C+00 0/0 1/1 1/1 .text * setEffectFour__8dPaPoF_cFPC12dKy_tevstr_cPC4cXyzUlUlPC4cXyzPC4cXyzPC4cXyzPC4cXyzPC4cXyzPC5csXyzPC4cXyzScff */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPaPoF_c::setEffectFour(dKy_tevstr_c const* param_0, cXyz const* param_1, u32 param_2, - u32 param_3, cXyz const* param_4, cXyz const* param_5, - cXyz const* param_6, cXyz const* param_7, cXyz const* param_8, - csXyz const* param_9, cXyz const* param_10, s8 param_11, - f32 param_12, f32 param_13) { - nofralloc -#include "asm/d/particle/d_particle_copoly/func_800512E8.s" +int dPaPoF_c::setEffectFour(dKy_tevstr_c const* param_0, cXyz const* param_1, u32 param_2, + u32 param_3, cXyz const* param_4, cXyz const* param_5, + cXyz const* param_6, cXyz const* param_7, cXyz const* param_8, + csXyz const* param_9, cXyz const* param_10, s8 param_11, f32 param_12, + f32 param_13) { + mBackLeftEffType[0] = 0xFF; + mBackLeftEffType[1] = 0xFF; + mBackRightEffType[0] = 0xFF; + mBackRightEffType[1] = 0xFF; + + int rt = setEffectTwo(param_0, param_1, param_2, param_3, param_4, param_5, param_6, param_9, + param_10, param_11, param_12, param_13); + if (rt != 3) { + cXyz sp18(*param_1); + if (rt == 1) { + sp18.y = field_0x28->m_wtr.GetHeight(); + } + + setEffect(mBackLeftEmitter[0], rt, param_0, &sp18, param_2, param_3, param_7, param_9, + param_11, mBackLeftEffType, &field_0xc4); + setEffect(mBackRightEmitter[0], rt, param_0, &sp18, param_2, param_3, param_8, param_9, + param_11, mBackRightEffType, &field_0xc5); + } else { + field_0xc4 = 0; + field_0xc5 = 0; + } + + return rt; } -#pragma pop /* 80051424-80051470 04BD64 004C+00 0/0 1/1 0/0 .text clearFourAllID__8dPaPoF_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPaPoF_c::clearFourAllID() { - nofralloc -#include "asm/d/particle/d_particle_copoly/clearFourAllID__8dPaPoF_cFv.s" +void dPaPoF_c::clearFourAllID() { + clearBLeftID(); + clearBRightID(); + clearTwoAllID(); } -#pragma pop /* 80051470-8005147C 04BDB0 000C+00 2/0 0/0 0/0 .text getRightEffType__8dPaPoT_cCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPaPoT_c::getRightEffType(int param_0) const { - nofralloc -#include "asm/d/particle/d_particle_copoly/getRightEffType__8dPaPoT_cCFi.s" +u8 dPaPoT_c::getRightEffType(int i_idx) const { + return mRightEffType[i_idx]; } -#pragma pop /* 8005147C-80051488 04BDBC 000C+00 2/0 0/0 0/0 .text getLeftEffType__8dPaPoT_cCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPaPoT_c::getLeftEffType(int param_0) const { - nofralloc -#include "asm/d/particle/d_particle_copoly/getLeftEffType__8dPaPoT_cCFi.s" +u8 dPaPoT_c::getLeftEffType(int i_idx) const { + return mLeftEffType[i_idx]; } -#pragma pop /* 80051488-80051494 04BDC8 000C+00 2/0 0/0 0/0 .text getCenterEffType__7dPaPo_cCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPaPo_c::getCenterEffType(int param_0) const { - nofralloc -#include "asm/d/particle/d_particle_copoly/getCenterEffType__7dPaPo_cCFi.s" +u8 dPaPo_c::getCenterEffType(int i_idx) const { + return mCenterEffType[i_idx]; } -#pragma pop /* 80051494-800514DC 04BDD4 0048+00 2/0 0/0 0/0 .text getRightEmitter__8dPaPoT_cFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPaPoT_c::getRightEmitter(int param_0, int param_1) { - nofralloc -#include "asm/d/particle/d_particle_copoly/getRightEmitter__8dPaPoT_cFii.s" +JPABaseEmitter* dPaPoT_c::getRightEmitter(int param_0, int param_1) { + return dComIfGp_particle_getEmitter(mRightEmitter[param_0][param_1]); } -#pragma pop /* 800514DC-80051524 04BE1C 0048+00 2/0 0/0 0/0 .text getLeftEmitter__8dPaPoT_cFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPaPoT_c::getLeftEmitter(int param_0, int param_1) { - nofralloc -#include "asm/d/particle/d_particle_copoly/getLeftEmitter__8dPaPoT_cFii.s" +JPABaseEmitter* dPaPoT_c::getLeftEmitter(int param_0, int param_1) { + return dComIfGp_particle_getEmitter(mLeftEmitter[param_0][param_1]); } -#pragma pop /* 80051524-8005156C 04BE64 0048+00 2/0 0/0 0/0 .text getCenterEmitter__7dPaPo_cFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPaPo_c::getCenterEmitter(int param_0, int param_1) { - nofralloc -#include "asm/d/particle/d_particle_copoly/getCenterEmitter__7dPaPo_cFii.s" +JPABaseEmitter* dPaPo_c::getCenterEmitter(int param_0, int param_1) { + return dComIfGp_particle_getEmitter(field_0x8[param_0][param_1]); } -#pragma pop /* 8005156C-80051578 04BEAC 000C+00 1/0 0/0 0/0 .text getBackRightEffType__8dPaPoF_cCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPaPoF_c::getBackRightEffType(int param_0) const { - nofralloc -#include "asm/d/particle/d_particle_copoly/getBackRightEffType__8dPaPoF_cCFi.s" +u8 dPaPoF_c::getBackRightEffType(int i_idx) const { + return mBackRightEffType[i_idx]; } -#pragma pop /* 80051578-80051584 04BEB8 000C+00 1/0 0/0 0/0 .text getBackLeftEffType__8dPaPoF_cCFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPaPoF_c::getBackLeftEffType(int param_0) const { - nofralloc -#include "asm/d/particle/d_particle_copoly/getBackLeftEffType__8dPaPoF_cCFi.s" +u8 dPaPoF_c::getBackLeftEffType(int i_idx) const { + return mBackLeftEffType[i_idx]; } -#pragma pop /* 80051584-800515CC 04BEC4 0048+00 1/0 0/0 0/0 .text getBackRightEmitter__8dPaPoF_cFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPaPoF_c::getBackRightEmitter(int param_0, int param_1) { - nofralloc -#include "asm/d/particle/d_particle_copoly/getBackRightEmitter__8dPaPoF_cFii.s" +JPABaseEmitter* dPaPoF_c::getBackRightEmitter(int param_0, int param_1) { + return dComIfGp_particle_getEmitter(mBackRightEmitter[param_0][param_1]); } -#pragma pop /* 800515CC-80051614 04BF0C 0048+00 1/0 0/0 0/0 .text getBackLeftEmitter__8dPaPoF_cFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dPaPoF_c::getBackLeftEmitter(int param_0, int param_1) { - nofralloc -#include "asm/d/particle/d_particle_copoly/getBackLeftEmitter__8dPaPoF_cFii.s" +JPABaseEmitter* dPaPoF_c::getBackLeftEmitter(int param_0, int param_1) { + return dComIfGp_particle_getEmitter(mBackLeftEmitter[param_0][param_1]); } -#pragma pop /* ############################################################################################## */ /* 803A85F8-803A8604 005718 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */ -SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { +static u8 cNullVec__6Z2Calc[12] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; -/* 803A8604-803A8610 -00001 000C+00 0/1 0/0 0/0 .data @3816 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3816[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)getCenterEffType__7dPaPo_cCFi, -}; -#pragma pop - -/* 803A8610-803A861C -00001 000C+00 0/1 0/0 0/0 .data @3817 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3817[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)getLeftEffType__8dPaPoT_cCFi, -}; -#pragma pop - -/* 803A861C-803A8628 -00001 000C+00 0/1 0/0 0/0 .data @3818 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3818[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)getRightEffType__8dPaPoT_cCFi, -}; -#pragma pop - /* 803A8628-803A864C 005748 0024+00 0/1 0/0 0/0 .data m_typeTwoData__8dPaPoT_c */ -#pragma push -#pragma force_active on -SECTION_DATA u8 dPaPoT_c::m_typeTwoData[36] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +dPaPoT_c::effTypeFunc dPaPoT_c::m_typeTwoData[] = { + &dPaPoT_c::getCenterEffType, + &dPaPoT_c::getLeftEffType, + &dPaPoT_c::getRightEffType, }; -#pragma pop - -/* 803A864C-803A8658 -00001 000C+00 0/1 0/0 0/0 .data @3826 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3826[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)getCenterEmitter__7dPaPo_cFii, -}; -#pragma pop - -/* 803A8658-803A8664 -00001 000C+00 0/1 0/0 0/0 .data @3827 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3827[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)getLeftEmitter__8dPaPoT_cFii, -}; -#pragma pop - -/* 803A8664-803A8670 -00001 000C+00 0/1 0/0 0/0 .data @3828 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3828[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)getRightEmitter__8dPaPoT_cFii, -}; -#pragma pop /* 803A8670-803A8694 005790 0024+00 0/1 0/0 1/1 .data m_emitterTwoData__8dPaPoT_c */ -SECTION_DATA u8 dPaPoT_c::m_emitterTwoData[36] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +dPaPoT_c::emitterFunc dPaPoT_c::m_emitterTwoData[] = { + &dPaPoT_c::getCenterEmitter, + &dPaPoT_c::getLeftEmitter, + &dPaPoT_c::getRightEmitter, }; -/* 803A8694-803A86A0 -00001 000C+00 0/1 0/0 0/0 .data @3841 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3841[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)getCenterEffType__7dPaPo_cCFi, -}; -#pragma pop - -/* 803A86A0-803A86AC -00001 000C+00 0/1 0/0 0/0 .data @3842 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3842[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)getLeftEffType__8dPaPoT_cCFi, -}; -#pragma pop - -/* 803A86AC-803A86B8 -00001 000C+00 0/1 0/0 0/0 .data @3843 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3843[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)getRightEffType__8dPaPoT_cCFi, -}; -#pragma pop - -/* 803A86B8-803A86C4 -00001 000C+00 0/1 0/0 0/0 .data @3844 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3844[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)getBackLeftEffType__8dPaPoF_cCFi, -}; -#pragma pop - -/* 803A86C4-803A86D0 -00001 000C+00 0/1 0/0 0/0 .data @3845 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3845[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)getBackRightEffType__8dPaPoF_cCFi, -}; -#pragma pop - /* 803A86D0-803A870C 0057F0 003C+00 0/1 5/5 1/1 .data m_typeFourData__8dPaPoF_c */ -SECTION_DATA u8 dPaPoF_c::m_typeFourData[60] = { - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +dPaPoF_c::effTypeFunc dPaPoF_c::m_typeFourData[] = { + &dPaPoF_c::getCenterEffType, &dPaPoF_c::getLeftEffType, &dPaPoF_c::getRightEffType, + &dPaPoF_c::getBackLeftEffType, &dPaPoF_c::getBackRightEffType, }; -/* 803A870C-803A8718 -00001 000C+00 0/1 0/0 0/0 .data @3850 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3850[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)getCenterEmitter__7dPaPo_cFii, -}; -#pragma pop - -/* 803A8718-803A8724 -00001 000C+00 0/1 0/0 0/0 .data @3851 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3851[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)getLeftEmitter__8dPaPoT_cFii, -}; -#pragma pop - -/* 803A8724-803A8730 -00001 000C+00 0/1 0/0 0/0 .data @3852 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3852[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)getRightEmitter__8dPaPoT_cFii, -}; -#pragma pop - -/* 803A8730-803A873C -00001 000C+00 0/1 0/0 0/0 .data @3853 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3853[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)getBackLeftEmitter__8dPaPoF_cFii, -}; -#pragma pop - -/* 803A873C-803A8748 -00001 000C+00 0/1 0/0 0/0 .data @3854 */ -#pragma push -#pragma force_active on -SECTION_DATA static void* lit_3854[3] = { - (void*)NULL, - (void*)0xFFFFFFFF, - (void*)getBackRightEmitter__8dPaPoF_cFii, -}; -#pragma pop - /* 803A8748-803A87A0 005868 003C+1C 0/1 5/5 1/1 .data m_emitterFourData__8dPaPoF_c */ -SECTION_DATA u8 dPaPoF_c::m_emitterFourData[60 + 28 /* padding */] = { - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, - 0x00, +dPaPoF_c::emitterFunc dPaPoF_c::m_emitterFourData[] = { + &dPaPoF_c::getCenterEmitter, &dPaPoF_c::getLeftEmitter, &dPaPoF_c::getRightEmitter, + &dPaPoF_c::getBackLeftEmitter, &dPaPoF_c::getBackRightEmitter, }; - -/* 80051614-800517B0 04BF54 019C+00 0/0 1/0 0/0 .text __sinit_d_particle_copoly_cpp */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void __sinit_d_particle_copoly_cpp() { - nofralloc -#include "asm/d/particle/d_particle_copoly/__sinit_d_particle_copoly_cpp.s" -} -#pragma pop - -#pragma push -#pragma force_active on -REGISTER_CTORS(0x80051614, __sinit_d_particle_copoly_cpp); -#pragma pop diff --git a/src/d/particle/d_particle_name.cpp b/src/d/particle/d_particle_name.cpp index f1c5cb5fed1..1f91daf9da4 100644 --- a/src/d/particle/d_particle_name.cpp +++ b/src/d/particle/d_particle_name.cpp @@ -1,19 +1,12 @@ -// -// Generated By: dol2asm -// Translation Unit: d/particle/d_particle_name -// - #include "d/particle/d_particle_name.h" -#include "dol2asm.h" -/* ############################################################################################## */ /* 803A85D0-803A85DC 0056F0 000A+02 0/0 1/1 0/0 .data j_o_id__8dPa_name */ -SECTION_DATA u16 dPa_name::j_o_id[5] = { +u16 dPa_name::j_o_id[5] = { 0x070F, 0x073D, 0x0100, 0x0101, 0x0103, }; /* 803A85DC-803A85F8 0056FC 001C+00 0/0 1/1 0/0 .data s_o_id__8dPa_name */ -SECTION_DATA u16 dPa_name::s_o_id[14] = { +u16 dPa_name::s_o_id[14] = { 0x8110, 0x8111, 0x8112, 0x89D6, 0x89D7, 0x89D8, 0x83A6, 0x83A7, 0x8104, 0x8105, 0x8106, 0x8174, 0x8175, 0x8176, };