diff options
| author | hatal175 <hatal175@users.noreply.github.com> | 2023-05-28 10:21:28 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-05-28 00:21:28 -0700 |
| commit | fcb6ae541fa4773b2db436e85daa9cdbb9ae45a5 (patch) | |
| tree | d5a67cd217fa0d593f714d766c3b9dee8ca754c2 /src/d/msg | |
| parent | 2baa07dbf6452e8dc5d241c6d5982be1df354e61 (diff) | |
setFadeColor fix, some d_msg_flow functions (#339)
Diffstat (limited to 'src/d/msg')
| -rw-r--r-- | src/d/msg/d_msg_flow.cpp | 121 |
1 files changed, 84 insertions, 37 deletions
diff --git a/src/d/msg/d_msg_flow.cpp b/src/d/msg/d_msg_flow.cpp index ae8ddbd6ab..0cc028b4e3 100644 --- a/src/d/msg/d_msg_flow.cpp +++ b/src/d/msg/d_msg_flow.cpp @@ -18,6 +18,7 @@ #include "f_op/f_op_actor_mng.h" #include "f_op/f_op_msg_mng.h" #include "m_Do/m_Do_audio.h" +#include "m_Do/m_Do_graphic.h" // // Forward References: @@ -1559,36 +1560,50 @@ int dMsgFlow_c::query038(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, in /* 8024BDB0-8024BE4C 2466F0 009C+00 1/0 0/0 0/0 .text * query039__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dMsgFlow_c::query039(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { - nofralloc -#include "asm/d/msg/d_msg_flow/query039__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" +int dMsgFlow_c::query039(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { + u16 uVar2 = *(u16*)param_0->params; + u8 iVar4 = dComIfGs_getTmpReg(0xfbff); + u8 bombNum = dComIfGs_getBombNum(iVar4 - 1); + return dComIfGs_getBombMax(NORMAL_BOMB) >= bombNum + uVar2; } -#pragma pop /* 8024BE4C-8024BF50 24678C 0104+00 1/0 0/0 0/0 .text * query040__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dMsgFlow_c::query040(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { - nofralloc -#include "asm/d/msg/d_msg_flow/query040__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" +int dMsgFlow_c::query040(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { + s32 uVar7 = *(u16*)param_0->params; + u8 unaff_r30; + if (uVar7 >= 1 && uVar7 < 4) { + unaff_r30 = uVar7 - 1; + } else if (uVar7 == 4) { + if (dMeter2Info_getRentalBombBag() != 0xff) { + unaff_r30 = dMeter2Info_getRentalBombBag(); + } + } else { + unaff_r30 = dComIfGs_getTmpReg(0xfbff) - 1; + } + + u8 bombNum = dComIfGs_getBombNum(unaff_r30); + u8 uVar4 = dComIfGs_getItem((u8)(unaff_r30 + SLOT_15), 0); + u8 bombMax = dComIfGs_getBombMax(uVar4); + u8 rv; + if (bombNum == 0) { + rv = 0; + } else if (bombNum >= bombMax) { + rv = 2; + } else { + rv = 1; + } + return rv; } -#pragma pop /* 8024BF50-8024BFEC 246890 009C+00 1/0 0/0 0/0 .text * query041__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dMsgFlow_c::query041(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { - nofralloc -#include "asm/d/msg/d_msg_flow/query041__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" +int dMsgFlow_c::query041(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { + u16 uVar2 = *(u16*)param_0->params; + u8 iVar4 = dComIfGs_getTmpReg(0xfbff); + u8 bombNum = dComIfGs_getBombNum(iVar4 - 1); + return dComIfGs_getBombMax(WATER_BOMB) >= bombNum + uVar2; } -#pragma pop /* 8024BFEC-8024C0A8 24692C 00BC+00 1/0 0/0 0/0 .text * query042__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ @@ -1627,14 +1642,23 @@ int dMsgFlow_c::query044(mesg_flow_node_branch*, fopAc_ac_c*, int) { /* 8024C18C-8024C218 246ACC 008C+00 1/0 0/0 0/0 .text * query045__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm int dMsgFlow_c::query045(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { - nofralloc -#include "asm/d/msg/d_msg_flow/query045__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci.s" +int dMsgFlow_c::query045(mesg_flow_node_branch* param_0, fopAc_ac_c* param_1, int param_2) { + u8 insectNum = dComIfGs_checkGetInsectNum(); + u8 rv = 0; + if (insectNum == 0) { + rv = 0; + } else if (insectNum >= 1 && insectNum <= 11) { + rv = 1; + } else if (insectNum >= 12 && insectNum <= 22) { + rv = 2; + } else if (insectNum == 23) { + rv = 3; + } else if (insectNum == 24) { + rv = 4; + } + + return rv; } -#pragma pop /* 8024C218-8024C248 246B58 0030+00 1/0 0/0 0/0 .text * query046__10dMsgFlow_cFP21mesg_flow_node_branchP10fopAc_ac_ci */ @@ -2094,6 +2118,12 @@ int dMsgFlow_c::event020(mesg_flow_node_event* flow_node, fopAc_ac_c* actor) { /* 8024CD84-8024CDAC 2476C4 0028+00 1/0 0/0 0/0 .text * event021__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ +#ifndef NONMATCHING +int dMsgFlow_c::event021(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { + cLib_calcTimer(&field_0x3c); + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2102,6 +2132,7 @@ asm int dMsgFlow_c::event021(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) #include "asm/d/msg/d_msg_flow/event021__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" } #pragma pop +#endif /* ############################################################################################## */ /* 80454DA8-80454DAC 0033A8 0004+00 1/1 0/0 0/0 .sdata2 @6273 */ @@ -2401,7 +2432,7 @@ SECTION_SDATA2 static f32 lit_6613 = 1.0f; /* 8024D5EC-8024D6BC 247F2C 00D0+00 1/0 0/0 0/0 .text * event032__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ #ifdef NONMATCHING -// Matches with literals and cLib_calcTimer implementation in the end +// Matches with literals int dMsgFlow_c::event032(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { u16 uVar1; u16 uVar2; @@ -2435,6 +2466,29 @@ asm int dMsgFlow_c::event032(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) /* 8024D6BC-8024D788 247FFC 00CC+00 1/0 0/0 0/0 .text * event033__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ +#ifdef NONMATCHING +// Matches with literals +int dMsgFlow_c::event033(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) { + u16 uVar1; + u16 uVar2; + GXColor color; + + getParam(&uVar2, &uVar1, param_0->params); + if (uVar1 + 1 == field_0x3c) { + if (uVar2 == 0) { + color.r = 0; + color.g = 0; + color.b = 0; + color.a = 0; + } else { + color = g_saftyWhiteColor; + } + mDoGph_gInf_c::fadeOut(1.0f / uVar1, color); + } + cLib_calcTimer(&field_0x3c); + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -2443,6 +2497,7 @@ asm int dMsgFlow_c::event033(mesg_flow_node_event* param_0, fopAc_ac_c* param_1) #include "asm/d/msg/d_msg_flow/event033__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c.s" } #pragma pop +#endif /* 8024D788-8024D7C8 2480C8 0040+00 1/0 0/0 0/0 .text * event034__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ @@ -2566,13 +2621,5 @@ int dMsgFlow_c::event042(mesg_flow_node_event*, fopAc_ac_c*) { } /* 8024DAB0-8024DACC 2483F0 001C+00 3/3 0/0 0/0 .text cLib_calcTimer<l>__FPl */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -extern "C" asm void func_8024DAB0(void* _this, s32* param_0) { - nofralloc -#include "asm/d/msg/d_msg_flow/func_8024DAB0.s" -} -#pragma pop /* 80399CB0-80399CB0 026310 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ |
