From 09ee1fd068fe37af2555c9337b2293731fc2f1cd Mon Sep 17 00:00:00 2001 From: Pheenoh Date: Wed, 18 Jan 2023 21:38:34 -0700 Subject: [PATCH] message --- include/rel/d/a/d_a_do/d_a_do.h | 5 +++- rel/d/a/d_a_do/d_a_do.cpp | 44 +++++++++++++++++++-------------- 2 files changed, 30 insertions(+), 19 deletions(-) diff --git a/include/rel/d/a/d_a_do/d_a_do.h b/include/rel/d/a/d_a_do/d_a_do.h index 940ce4b907d..ee57e260b93 100644 --- a/include/rel/d/a/d_a_do/d_a_do.h +++ b/include/rel/d/a/d_a_do/d_a_do.h @@ -80,7 +80,10 @@ public: /* 0xA48 */ dCcD_GObjInf mCcD_GObjInf2; /* 0xB4C */ u8 field_0xb4c[152]; /* 0xBE4 */ Z2SoundObjSimple mSound; - /* 0xC04 */ u8 field_0xc04[8]; + /* 0xC04 */ u8 field_0xc04; + /* 0xC05 */ s8 field_0xc05; + /* 0xC06 */ s16 field_0xc06; + /* 0xC08 */ s16 field_0xc08; /* 0xC0C */ dMsgFlow_c mMsg; /* 0xC58 */ u8 field_0xc58[104]; /* 0xCC0 */ u8 field_0xcc0; diff --git a/rel/d/a/d_a_do/d_a_do.cpp b/rel/d/a/d_a_do/d_a_do.cpp index 76569a2ef4f..ca94a6bb38e 100644 --- a/rel/d/a/d_a_do/d_a_do.cpp +++ b/rel/d/a/d_a_do/d_a_do.cpp @@ -5,6 +5,7 @@ #include "rel/d/a/d_a_do/d_a_do.h" #include "JSystem/JMath/JMath.h" +#include "d/a/d_a_player.h" #include "d/com/d_com_inf_game.h" #include "dol2asm.h" #include "dolphin/types.h" @@ -1825,7 +1826,6 @@ static asm void do_carry(do_class* i_dogP) { #pragma pop /* 8066CDEC-8066CEC4 00518C 00D8+00 1/1 0/0 0/0 .text do_message__FP8do_class */ -#ifndef NONMATCHING static void do_message(do_class* i_dogP) { i_dogP->field_0x648 = FLOAT_LABEL(lit_4191); @@ -1850,16 +1850,6 @@ static void do_message(do_class* i_dogP) { } } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void do_message(do_class* i_dogP) { - nofralloc -#include "asm/rel/d/a/d_a_do/d_a_do/do_message__FP8do_class.s" -} -#pragma pop -#endif /* ############################################################################################## */ /* 8066EF70-8066EF74 000188 0004+00 0/2 0/0 0/0 .rodata @5948 */ @@ -1880,14 +1870,32 @@ static asm void action(do_class* i_dogP) { #pragma pop /* 8066DD48-8066DE64 0060E8 011C+00 1/1 0/0 0/0 .text message__FP8do_class */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -static asm void message(do_class* i_dogP) { - nofralloc -#include "asm/rel/d/a/d_a_do/d_a_do/message__FP8do_class.s" +static void message(do_class* i_dogP) { + if (i_dogP->field_0xc06 != 0) { + i_dogP->field_0x604 = 10; + + if (i_dogP->mMsg.doFlow(i_dogP,0,0)) { + i_dComIfGp_event_reset(); + i_dogP->field_0xc06 = 0; + } + + } else { + if (i_dComIfGp_event_runCheck() && i_dogP->mEvtInfo.checkCommandTalk()) { + i_dogP->mMsg.init(i_dogP,i_dogP->field_0xc08,0,0); + i_dogP->field_0xc06 = 1; + } + + if (i_dogP->field_0xc05 == 2 && i_dogP->field_0xc08 != -1 && daPy_py_c::i_checkNowWolf()) { + fopAcM_OnStatus(i_dogP,0); + cLib_onBit(i_dogP->mAttentionInfo.mFlags,10); + i_dogP->mEvtInfo.i_onCondition(1); + } else { + fopAcM_OffStatus(i_dogP,0); + cLib_offBit(i_dogP->mAttentionInfo.mFlags,10); + } + + } } -#pragma pop /* ############################################################################################## */ /* 8066EF74-8066EF78 00018C 0004+00 0/0 0/0 0/0 .rodata @5949 */