From a77f48f177772412d28ef9d80d79dbab9acdaa73 Mon Sep 17 00:00:00 2001 From: Kristopher Early <1191258+MrPolymorph@users.noreply.github.com> Date: Mon, 18 Sep 2023 17:02:30 +0100 Subject: [PATCH 1/3] 98% complete --- .../CMakeFiles/clion-Debug-log.txt | 1 + include/d/d_com_inf_game.h | 4 + include/d/d_kankyo.h | 1 + src/d/actor/d_a_kytag06.cpp | 94 ++++++++++++++++--- src/d/d_event_manager.cpp | 3 +- 5 files changed, 91 insertions(+), 12 deletions(-) create mode 100644 cmake-build-debug/CMakeFiles/clion-Debug-log.txt diff --git a/cmake-build-debug/CMakeFiles/clion-Debug-log.txt b/cmake-build-debug/CMakeFiles/clion-Debug-log.txt new file mode 100644 index 000000000..e9a1f7f0b --- /dev/null +++ b/cmake-build-debug/CMakeFiles/clion-Debug-log.txt @@ -0,0 +1 @@ +CMakeLists.txt not found in /home/kris/Documents/GitHub/tww Select CMakeLists.txt diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h index 4a3b0cb67..2d0060d69 100644 --- a/include/d/d_com_inf_game.h +++ b/include/d/d_com_inf_game.h @@ -1246,6 +1246,10 @@ inline char* dComIfGp_evmng_getMyStringP(int staffIdx, const char* name) { return reinterpret_cast(dComIfGp_getEventManager().getMySubstanceP(staffIdx, name, 4)); //type 4 is string } +inline BOOL dComIfGp_evmng_startCheck(char* eventID) { + return dComIfGp_getEventManager().startCheckOld(eventID); +} + inline BOOL dComIfGp_evmng_endCheck(s16 eventID) { return dComIfGp_getEventManager().endCheck(eventID); } diff --git a/include/d/d_kankyo.h b/include/d/d_kankyo.h index b710fa477..697a7b207 100644 --- a/include/d/d_kankyo.h +++ b/include/d/d_kankyo.h @@ -402,6 +402,7 @@ void dKy_vrbox_addcol_set(s16, s16, s16, f32); BOOL dKy_daynight_check(); void dKy_tevstr_init(dKy_tevstr_c*, s8, u8); void dKy_Sound_init(); +void dKy_change_colpat(u8 param_0); u8 dKy_pship_existense_chk(); void dKy_Itemgetcol_chg_move(); void dKy_arrowcol_chg_move(); diff --git a/src/d/actor/d_a_kytag06.cpp b/src/d/actor/d_a_kytag06.cpp index 2a7637549..a54685bcd 100644 --- a/src/d/actor/d_a_kytag06.cpp +++ b/src/d/actor/d_a_kytag06.cpp @@ -3,31 +3,103 @@ // Translation Unit: d_a_kytag06.cpp // -#include "d_a_kytag06.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "f_op/f_op_actor.h" +#include "f_op/f_op_actor_mng.h" +#include "d/d_com_inf_game.h" +#include "d/d_kankyo.h" +#include "d/d_kankyo_wether.h" +#include "d/d_npc.h" +#include "d/d_procname.h" #include "dolphin/types.h" +struct kytag06_class : fopAc_ac_c { +public: + /* 0x290 */ int field_0x290; + /* 0x294 */ float field_0x294; +}; + +const float mfloat_4090 = 21.12f; + /* 00000078-00000080 .text daKytag06_Draw__FP13kytag06_class */ -void daKytag06_Draw(kytag06_class*) { - /* Nonmatching */ +static bool daKytag06_Draw(kytag06_class*) { + return true; } /* 00000080-00000194 .text daKytag06_Execute__FP13kytag06_class */ -void daKytag06_Execute(kytag06_class*) { - /* Nonmatching */ +BOOL daKytag06_Execute(kytag06_class* i_this) { + int iVar1 = 1; + + if (g_dComIfG_gameInfo.play.mEvtCtrl.mMode == 0) { + return 1; + } + if(dComIfGp_evmng_startCheck("ARRIVAL_BRK") == 0) { + return 1; + } + u16 date = dComIfGs_getDate(); + if (90.0f >= dComIfGs_getTime() && dComIfGs_getTime() < 342.0f) { + dComIfGs_setTime(dComIfGs_getTime() + 0.05f); + dComIfGs_setDate(date); + } + + dKy_change_colpat(iVar1); + iVar1 = i_this->field_0x294 * 250.0f; + if (iVar1 > g_env_light.mRainCount) { + dKyw_rain_set(iVar1); + } + g_env_light.mThunderEff.mMode = 1; + cLib_addCalc(&i_this->field_0x294, 1.0f, 0.1f, 0.001f, 0.0001); + return 1; } /* 00000194-0000019C .text daKytag06_IsDelete__FP13kytag06_class */ -void daKytag06_IsDelete(kytag06_class*) { - /* Nonmatching */ +static bool daKytag06_IsDelete(kytag06_class*) { + return true; } /* 0000019C-000001A4 .text daKytag06_Delete__FP13kytag06_class */ -void daKytag06_Delete(kytag06_class*) { - /* Nonmatching */ +static bool daKytag06_Delete(kytag06_class*) { + return true; } /* 000001A4-00000224 .text daKytag06_Create__FP10fopAc_ac_c */ -void daKytag06_Create(fopAc_ac_c*) { - /* Nonmatching */ +static int daKytag06_Create(fopAc_ac_c* i_this) { + kytag06_class* tag = (kytag06_class*)i_this; + int var; + + fopAcM_SetupActor(tag, kytag06_class); + + if(dComIfGs_isSymbol(0) != 0) { + var = 5; + } else { + tag->field_0x294 = 0; + var = 4; + } + + return var; } +static actor_method_class l_kytag06__Method = { + (process_method_func)daKytag06_Execute, + (process_method_func)daKytag06_Draw, + (process_method_func)daKytag06_IsDelete, + (process_method_func)daKytag06_Delete, + (process_method_func)daKytag06_Create, +}; + +extern actor_process_profile_definition g_profile_RECTANGLE = { + fpcLy_CURRENT_e, + 7, + fpcLy_CURRENT_e, + PROC_KYTAG06, + &g_fpcLf_Method.mBase, + sizeof(kytag06_class), + 0, + 0, + &g_fopAc_Method.base, + 0xA6, + &l_kytag06__Method, + 0x00044000, + fopAc_ACTOR_e, + fopAc_CULLBOX_0_e, +}; \ No newline at end of file diff --git a/src/d/d_event_manager.cpp b/src/d/d_event_manager.cpp index b98ab9763..f0f0caf97 100644 --- a/src/d/d_event_manager.cpp +++ b/src/d/d_event_manager.cpp @@ -109,10 +109,11 @@ void dEvent_manager_c::order(short) { /* 800744E8-80074528 .text startCheck__16dEvent_manager_cFs */ void dEvent_manager_c::startCheck(short) { /* Nonmatching */ + startCheckOld() } /* 80074528-80074564 .text startCheckOld__16dEvent_manager_cFPCc */ -void dEvent_manager_c::startCheckOld(const char*) { +int dEvent_manager_c::startCheckOld(const char*) { /* Nonmatching */ } From 93613400edea6e09f364bc2195f9e004fbe8b9ae Mon Sep 17 00:00:00 2001 From: Kristopher Early <1191258+MrPolymorph@users.noreply.github.com> Date: Mon, 25 Sep 2023 20:04:01 +0100 Subject: [PATCH 2/3] add non matching tag --- src/d/actor/d_a_kytag06.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/d/actor/d_a_kytag06.cpp b/src/d/actor/d_a_kytag06.cpp index a54685bcd..f79138b7c 100644 --- a/src/d/actor/d_a_kytag06.cpp +++ b/src/d/actor/d_a_kytag06.cpp @@ -28,6 +28,7 @@ static bool daKytag06_Draw(kytag06_class*) { /* 00000080-00000194 .text daKytag06_Execute__FP13kytag06_class */ BOOL daKytag06_Execute(kytag06_class* i_this) { + /* Nonmatching */ int iVar1 = 1; if (g_dComIfG_gameInfo.play.mEvtCtrl.mMode == 0) { From 95367a34a3efa0a3059304f0cd6165f59d0f9f2e Mon Sep 17 00:00:00 2001 From: Kristopher Early <1191258+MrPolymorph@users.noreply.github.com> Date: Mon, 25 Sep 2023 20:07:17 +0100 Subject: [PATCH 3/3] Delete clion-Debug-log.txt --- cmake-build-debug/CMakeFiles/clion-Debug-log.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 cmake-build-debug/CMakeFiles/clion-Debug-log.txt diff --git a/cmake-build-debug/CMakeFiles/clion-Debug-log.txt b/cmake-build-debug/CMakeFiles/clion-Debug-log.txt deleted file mode 100644 index e9a1f7f0b..000000000 --- a/cmake-build-debug/CMakeFiles/clion-Debug-log.txt +++ /dev/null @@ -1 +0,0 @@ -CMakeLists.txt not found in /home/kris/Documents/GitHub/tww Select CMakeLists.txt