From 546b19db31dcc7fbac20a186468733eed37bad9e Mon Sep 17 00:00:00 2001 From: MaxMotis Date: Mon, 9 Mar 2026 21:55:09 +0100 Subject: [PATCH 1/5] d_t_event_f OK not yet looked into proper member variable names --- config/SOUE01/splits.txt | 1 + config/SOUE01/symbols.txt | 52 +++++++++++++------------- include/d/t/d_t_event_f.h | 33 +++++++++++++++++ src/d/tg/d_t_event_f.cpp | 77 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 137 insertions(+), 26 deletions(-) create mode 100644 include/d/t/d_t_event_f.h create mode 100644 src/d/tg/d_t_event_f.cpp diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt index 3a847b06..be914da8 100644 --- a/config/SOUE01/splits.txt +++ b/config/SOUE01/splits.txt @@ -1571,6 +1571,7 @@ d/tg/d_t_event.cpp: d/tg/d_t_event_f.cpp: .text start:0x8027A740 end:0x8027AB30 align:16 .data start:0x805367A0 end:0x80536828 + .sdata2 start:0x8057C650 end:0x8057C658 d/tg/d_tk_event.cpp: .text start:0x8027AB30 end:0x8027B408 align:16 diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index f4afdda4..300ca246 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -628,7 +628,7 @@ create3__Q23d3d13AnmMdlWrapperFR9dAcBase_cPvPCcPCcPQ33m3d5mdl_c13mdlCallback_cUl setAnm__Q23d3d13AnmMdlWrapperFPCcQ23m3d10playMode_e = .text:0x80019D50; // type:function size:0x14 __dt__Q23d3d14AnmMdlWrapper2Fv = .text:0x80019D70; // type:function size:0x58 __dt__Q23d3d7XluProcFv = .text:0x80019DD0; // type:function size:0x5C -__sinit_\d_d3d_cpp = .text:0x80019E30; // type:function size:0x44 +__sinit_\d_d3d_cpp = .text:0x80019E30; // type:function size:0x44 scope:local ExecCallback_CALC_MAT__14dScnCallback_cFQ44nw4r3g3d6ScnObj6TimingPQ34nw4r3g3d6ScnObjUlPv = .text:0x80019E80; // type:function size:0x3A8 attach__14dScnCallback_cFRQ23m3d9scnLeaf_c = .text:0x8001A230; // type:function size:0x50 setPCAMPos2__FPC4PCAM = .text:0x8001A280; // type:function size:0x144 @@ -2626,7 +2626,7 @@ set0x43DE__17daPlayerActBase_cFv = .text:0x8005CE00; // type:function size:0x4 set0x439F__17daPlayerActBase_cFP9dAcBase_ci = .text:0x8005CE10; // type:function size:0x4 vt_0x084__17daPlayerActBase_cFP9dAcBase_ci = .text:0x8005CE20; // type:function size:0x8 IfCurrentActionToActor__17daPlayerActBase_cFP9dAcBase_ci = .text:0x8005CE30; // type:function size:0x8 -__sinit_\d_player_act_cpp = .text:0x8005CE40; // type:function size:0x4C +__sinit_\d_player_act_cpp = .text:0x8005CE40; // type:function size:0x4C scope:local ExecCallback_DRAW_OPA__24daPlBaseScnObjCallback_cFQ44nw4r3g3d6ScnObj6TimingPQ34nw4r3g3d6ScnObjUlPv = .text:0x8005CE90; // type:function size:0x134 ExecCallback_CALC_MAT__24daPlBaseScnObjCallback_cFQ44nw4r3g3d6ScnObj6TimingPQ34nw4r3g3d6ScnObjUlPv = .text:0x8005CFD0; // type:function size:0x10 ExecCallbackA__21daPlBaseMdlCallback_cFPQ34nw4r3g3d12ChrAnmResultQ34nw4r3g3d6ResMdlPQ34nw4r3g3d16FuncObjCalcWorld = .text:0x8005CFE0; // type:function size:0x134 @@ -7498,7 +7498,7 @@ fn_8012D800 = .text:0x8012D800; // type:function size:0xEC finalizeState__31sFStateID_c<16dLytMapCapture_c>CFR16dLytMapCapture_c = .text:0x8012D8F0; // type:function size:0x30 executeState__31sFStateID_c<16dLytMapCapture_c>CFR16dLytMapCapture_c = .text:0x8012D920; // type:function size:0x30 initializeState__31sFStateID_c<16dLytMapCapture_c>CFR16dLytMapCapture_c = .text:0x8012D950; // type:function size:0x30 -__sinit_\d_lyt_map_capture_cpp = .text:0x8012D980; // type:function size:0x1C0 +__sinit_\d_lyt_map_capture_cpp = .text:0x8012D980; // type:function size:0x1C0 scope:local __dt__31sFStateID_c<16dLytMapCapture_c>Fv = .text:0x8012DB40; // type:function size:0x58 isSameName__31sFStateID_c<16dLytMapCapture_c>CFPCc = .text:0x8012DBA0; // type:function size:0x88 __ct__13dLytMap_HIO_cFv = .text:0x8012DC30; // type:function size:0xEC @@ -14163,7 +14163,7 @@ getOldStateID__83sStateMgr_c<14dAcBoomerang_c,20sStateMethodUsr_FI_c,12sFStateFc finalizeState__29sFStateID_c<14dAcBoomerang_c>CFR14dAcBoomerang_c = .text:0x80265080; // type:function size:0x30 executeState__29sFStateID_c<14dAcBoomerang_c>CFR14dAcBoomerang_c = .text:0x802650B0; // type:function size:0x30 initializeState__29sFStateID_c<14dAcBoomerang_c>CFR14dAcBoomerang_c = .text:0x802650E0; // type:function size:0x30 -__sinit_\d_a_obj_boomerang_cpp = .text:0x80265110; // type:function size:0x41C +__sinit_\d_a_obj_boomerang_cpp = .text:0x80265110; // type:function size:0x41C scope:local __dt__29sFStateID_c<14dAcBoomerang_c>Fv = .text:0x80265530; // type:function size:0x58 isSameName__29sFStateID_c<14dAcBoomerang_c>CFPCc = .text:0x80265590; // type:function size:0x88 dAcOFairy_c_classInit__Fv = .text:0x80265620; // type:function size:0x144 @@ -14622,17 +14622,17 @@ actorExecute__10dTgEvent_cFv = .text:0x8027A460; // type:function size:0x150 actorExecuteInEvent__10dTgEvent_cFv = .text:0x8027A5B0; // type:function size:0x108 draw__10dTgEvent_cFv = .text:0x8027A6C0; // type:function size:0x8 __dt__10dTgEvent_cFv = .text:0x8027A6D0; // type:function size:0x70 -TgEventF__ctor = .text:0x8027A740; // type:function size:0x5C -TgEventF__init = .text:0x8027A7A0; // type:function size:0x9C -fn_8027A840 = .text:0x8027A840; // type:function size:0x8 -checkStoryflagValid = .text:0x8027A850; // type:function size:0x14 -TgEventF__checkUncommitedStoryFlagValue = .text:0x8027A870; // type:function size:0x48 -TgEventF__setStoryFlag = .text:0x8027A8C0; // type:function size:0x1C -TgEventF__unsetStoryFlag = .text:0x8027A8E0; // type:function size:0x1C -TgEventF__update = .text:0x8027A900; // type:function size:0xFC -TgEventF__updateInEvent = .text:0x8027AA00; // type:function size:0xB0 -fn_8027AAB0 = .text:0x8027AAB0; // type:function size:0x8 -TgEventF__dtor = .text:0x8027AAC0; // type:function size:0x70 +dTgEventF_c_classInit__Fv = .text:0x8027A740; // type:function size:0x5C +create__11dTgEventF_cFv = .text:0x8027A7A0; // type:function size:0x9C +doDelete__11dTgEventF_cFv = .text:0x8027A840; // type:function size:0x8 +checkStoryflagValid__11dTgEventF_cFUl = .text:0x8027A850; // type:function size:0x14 +checkUncommitedStoryFlagValue__11dTgEventF_cFUl = .text:0x8027A870; // type:function size:0x48 +setStoryFlag__11dTgEventF_cF12StoryFlags_e = .text:0x8027A8C0; // type:function size:0x1C +unsetStoryFlag__11dTgEventF_cF12StoryFlags_e = .text:0x8027A8E0; // type:function size:0x1C +actorExecute__11dTgEventF_cFv = .text:0x8027A900; // type:function size:0xFC +actorExecuteInEvent__11dTgEventF_cFv = .text:0x8027AA00; // type:function size:0xB0 +draw__11dTgEventF_cFv = .text:0x8027AAB0; // type:function size:0x8 +__dt__11dTgEventF_cFv = .text:0x8027AAC0; // type:function size:0x70 TgTkEvnt__ctor = .text:0x8027AB30; // type:function size:0xB8 fn_8027ABF0 = .text:0x8027ABF0; // type:function size:0x58 fn_8027AC50 = .text:0x8027AC50; // type:function size:0x6C @@ -15010,7 +15010,7 @@ initializeState__29sFStateID_c<14dLytGameOver_c>CFR14dLytGameOver_c = .text:0x80 finalizeState__32sFStateID_c<17dLytGameOverMgr_c>CFR17dLytGameOverMgr_c = .text:0x802847C0; // type:function size:0x30 executeState__32sFStateID_c<17dLytGameOverMgr_c>CFR17dLytGameOverMgr_c = .text:0x802847F0; // type:function size:0x30 initializeState__32sFStateID_c<17dLytGameOverMgr_c>CFR17dLytGameOverMgr_c = .text:0x80284820; // type:function size:0x30 -__sinit_\d_lyt_game_over_cpp = .text:0x80284850; // type:function size:0x578 +__sinit_\d_lyt_game_over_cpp = .text:0x80284850; // type:function size:0x578 scope:local __dt__29sFStateID_c<14dLytGameOver_c>Fv = .text:0x80284DD0; // type:function size:0x58 __dt__32sFStateID_c<17dLytGameOverMgr_c>Fv = .text:0x80284E30; // type:function size:0x58 isSameName__32sFStateID_c<17dLytGameOverMgr_c>CFPCc = .text:0x80284E90; // type:function size:0x88 @@ -15823,7 +15823,7 @@ getOldStateID__86sStateMgr_c<17dLytDemoDowsing_c,20sStateMethodUsr_FI_c,12sFStat finalizeState__32sFStateID_c<17dLytDemoDowsing_c>CFR17dLytDemoDowsing_c = .text:0x802A1490; // type:function size:0x30 executeState__32sFStateID_c<17dLytDemoDowsing_c>CFR17dLytDemoDowsing_c = .text:0x802A14C0; // type:function size:0x30 initializeState__32sFStateID_c<17dLytDemoDowsing_c>CFR17dLytDemoDowsing_c = .text:0x802A14F0; // type:function size:0x30 -__sinit_\d_lyt_demo_dowsing_cpp = .text:0x802A1520; // type:function size:0x1C0 +__sinit_\d_lyt_demo_dowsing_cpp = .text:0x802A1520; // type:function size:0x1C0 scope:local __dt__32sFStateID_c<17dLytDemoDowsing_c>Fv = .text:0x802A16E0; // type:function size:0x58 isSameName__32sFStateID_c<17dLytDemoDowsing_c>CFPCc = .text:0x802A1740; // type:function size:0x88 initializeState_ModeNone__14dLytShopMain_cFv = .text:0x802A17D0; // type:function size:0x4 @@ -15961,7 +15961,7 @@ initializeState__29sFStateID_c<14dLytShopMain_c>CFR14dLytShopMain_c = .text:0x80 finalizeState__25sFStateID_c<10dLytShop_c>CFR10dLytShop_c = .text:0x802A70A0; // type:function size:0x30 executeState__25sFStateID_c<10dLytShop_c>CFR10dLytShop_c = .text:0x802A70D0; // type:function size:0x30 initializeState__25sFStateID_c<10dLytShop_c>CFR10dLytShop_c = .text:0x802A7100; // type:function size:0x30 -__sinit_\d_lyt_shop_cpp = .text:0x802A7130; // type:function size:0xCD0 +__sinit_\d_lyt_shop_cpp = .text:0x802A7130; // type:function size:0xCD0 scope:local __dt__29sFStateID_c<14dLytShopMain_c>Fv = .text:0x802A7E00; // type:function size:0x58 __dt__25sFStateID_c<10dLytShop_c>Fv = .text:0x802A7E60; // type:function size:0x58 isSameName__25sFStateID_c<10dLytShop_c>CFPCc = .text:0x802A7EC0; // type:function size:0x88 @@ -17869,7 +17869,7 @@ normalizeRS__7mVec3_cFv = .text:0x802F2BF0; // type:function size:0x84 rotX__7mVec3_cFRC4mAng = .text:0x802F2C80; // type:function size:0xA8 rotY__7mVec3_cFRC4mAng = .text:0x802F2D30; // type:function size:0xAC rotZ__7mVec3_cFRC4mAng = .text:0x802F2DE0; // type:function size:0xA8 -__sinit_\m_vec_cpp = .text:0x802F2E90; // type:function size:0x78 +__sinit_\m_vec_cpp = .text:0x802F2E90; // type:function size:0x78 scope:local init__Q210homebutton15FrameControllerFifff = .text:0x802F2F10; // type:function size:0x38 initFrame__Q210homebutton15FrameControllerFv = .text:0x802F2F50; // type:function size:0x20 calc__Q210homebutton15FrameControllerFv = .text:0x802F2F70; // type:function size:0x14C @@ -20025,7 +20025,7 @@ setStageEffectsVolume__22dSndControlPlayerMgr_cFfl = .text:0x80360A60; // type:f setStageEffectsMuteVolume__22dSndControlPlayerMgr_cFf = .text:0x80360AD0; // type:function size:0x5C setEnemyMuteVolume__22dSndControlPlayerMgr_cFf = .text:0x80360B30; // type:function size:0x5C setObjectMuteVolume__22dSndControlPlayerMgr_cFf = .text:0x80360B90; // type:function size:0x64 -__sinit_\d_snd_control_player_mgr_cpp = .text:0x80360C00; // type:function size:0x28 +__sinit_\d_snd_control_player_mgr_cpp = .text:0x80360C00; // type:function size:0x28 scope:local __dt__33SndMgrDisposer<15dSnd3DManager_c>Fv = .text:0x80360C30; // type:function size:0x78 scope:weak create__33SndMgrDisposer<15dSnd3DManager_c>Fv = .text:0x80360CB0; // type:function size:0x48 scope:weak remove__33SndMgrDisposer<15dSnd3DManager_c>Fv = .text:0x80360D00; // type:function size:0x10 scope:weak @@ -27099,7 +27099,7 @@ __dt__Q27JStudio13TObject_lightFv = .text:0x804BF750; // type:function size:0x58 __dt__Q27JStudio15TObject_messageFv = .text:0x804BF7B0; // type:function size:0x58 __dt__Q27JStudio16TObject_particleFv = .text:0x804BF810; // type:function size:0x58 __dt__Q27JStudio13TObject_soundFv = .text:0x804BF870; // type:function size:0x58 -__sinit_\jstudio-object_cpp = .text:0x804BF8D0; // type:function size:0x300 +__sinit_\jstudio-object_cpp = .text:0x804BF8D0; // type:function size:0x300 scope:local __dt__Q37JStudio28@unnamed@jstudio_object_cpp@54TOutputVariableValue_BOOL_Fv = .text:0x804BFBD0; // type:function size:0x58 __dt__Q37JStudio28@unnamed@jstudio_object_cpp@55TOutputVariableValue_BOOL_Fv = .text:0x804BFC30; // type:function size:0x58 __dt__Q37JStudio28@unnamed@jstudio_object_cpp@54TOutputVariableValue_BOOL_Fv = .text:0x804BFC90; // type:function size:0x58 @@ -27198,7 +27198,7 @@ setJSG_SRT___Q214JStudio_JStage14TAdaptor_actorFPCQ27JStudio8TControl = .text:0x getJSG_SRT___Q214JStudio_JStage14TAdaptor_actorFPCQ27JStudio8TControl = .text:0x804C22E0; // type:function size:0x1A8 __cl__Q314JStudio_JStage14TAdaptor_actor26TVVOutput_ANIMATION_FRAME_CFfPQ27JStudio8TAdaptor = .text:0x804C2490; // type:function size:0xE8 __dt__Q314JStudio_JStage14TAdaptor_actor26TVVOutput_ANIMATION_FRAME_Fv = .text:0x804C2580; // type:function size:0x58 -__sinit_\object-actor_cpp = .text:0x804C25E0; // type:function size:0x250 +__sinit_\object-actor_cpp = .text:0x804C25E0; // type:function size:0x250 scope:local __dt__Q214JStudio_JStage81TVariableValueOutput_object_Fv = .text:0x804C2830; // type:function size:0x58 __cl__Q214JStudio_JStage81TVariableValueOutput_object_CFfPQ27JStudio8TAdaptor = .text:0x804C2890; // type:function size:0x30 fn_804C28C0 = .text:0x804C28C0; // type:function size:0x10 @@ -27219,7 +27219,7 @@ adaptor_do_TARGET_PARENT_NODE__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4da adaptor_do_TARGET_PARENT_ENABLE__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl = .text:0x804C2E30; // type:function size:0x24 setJSG_position___Q214JStudio_JStage15TAdaptor_cameraFPCQ27JStudio8TControl = .text:0x804C2E60; // type:function size:0x10C getJSG_position___Q214JStudio_JStage15TAdaptor_cameraFPCQ27JStudio8TControl = .text:0x804C2F70; // type:function size:0x118 -__sinit_\object-camera_cpp = .text:0x804C3090; // type:function size:0x228 +__sinit_\object-camera_cpp = .text:0x804C3090; // type:function size:0x228 scope:local __dt__Q214JStudio_JStage83TVariableValueOutput_object_Fv = .text:0x804C32C0; // type:function size:0x58 __cl__Q214JStudio_JStage83TVariableValueOutput_object_CFfPQ27JStudio8TAdaptor = .text:0x804C3320; // type:function size:0x30 __ct__Q214JStudio_JStage14TAdaptor_lightFPCQ26JStage7TSystemPQ26JStage6TLight = .text:0x804C3350; // type:function size:0x154 @@ -27360,7 +27360,7 @@ fn_804C6150 = .text:0x804C6150; // type:function size:0x98 fn_804C61F0 = .text:0x804C61F0; // type:function size:0x8 fn_804C6200 = .text:0x804C6200; // type:function size:0x134 __dt__Q315JStudio_JAudio214TAdaptor_sound13TVVOSetValue_Fv = .text:0x804C6340; // type:function size:0x58 -__sinit_\object-sound_cpp = .text:0x804C63A0; // type:function size:0x13C +__sinit_\object-sound_cpp = .text:0x804C63A0; // type:function size:0x13C scope:local strlen = .text:0x804C64DC; // type:function size:0x1C scope:weak __va_arg = .text:0x804C64F8; // type:function size:0xC8 scope:global __register_global_object = .text:0x804C65C0; // type:function size:0x18 scope:global @@ -36477,7 +36477,7 @@ lbl_805366A0 = .data:0x805366A0; // type:object size:0x78 g_profile_EVENT_TAG = .data:0x80536718; // type:object size:0x10 __vt__10dTgEvent_c = .data:0x80536728; // type:object size:0x78 g_profile_EVENTF_TAG = .data:0x805367A0; // type:object size:0x10 -TgEventF__vtable = .data:0x805367B0; // type:object size:0x78 +__vt__11dTgEventF_c = .data:0x805367B0; // type:object size:0x78 g_profile_TAG_TKEVNT = .data:0x80536828; // type:object size:0x10 TgTkEvnt__vtable = .data:0x80536838; // type:object size:0x78 lbl_805368B0 = .data:0x805368B0; // type:object size:0x30 @@ -48517,7 +48517,7 @@ lbl_8057C634 = .sdata2:0x8057C634; // type:object size:0x4 align:4 data:float lbl_8057C638 = .sdata2:0x8057C638; // type:object size:0x4 align:4 data:float lbl_8057C640 = .sdata2:0x8057C640; // type:object size:0x4 align:4 data:float @23574 = .sdata2:0x8057C648; // type:object size:0x4 scope:local align:4 data:float -lbl_8057C650 = .sdata2:0x8057C650; // type:object size:0x4 align:4 data:float +@23557 = .sdata2:0x8057C650; // type:object size:0x4 align:4 data:float lbl_8057C658 = .sdata2:0x8057C658; // type:object size:0x4 align:4 data:float lbl_8057C65C = .sdata2:0x8057C65C; // type:object size:0x4 align:4 data:float lbl_8057C660 = .sdata2:0x8057C660; // type:object size:0x4 align:4 data:float diff --git a/include/d/t/d_t_event_f.h b/include/d/t/d_t_event_f.h new file mode 100644 index 00000000..4cb092c0 --- /dev/null +++ b/include/d/t/d_t_event_f.h @@ -0,0 +1,33 @@ +#ifndef D_T_EVENT_F_H +#define D_T_EVENT_F_H + +#include "common.h" +#include "d/flag/storyflag_manager.h" +#include "d/t/d_tg.h" +#include "m/m_mtx.h" +#include "toBeSorted/actor_event.h" + +class dTgEventF_c : public dTg_c { +public: + dTgEventF_c() : mActorEvent(*this, nullptr) {} + virtual ~dTgEventF_c() {} + + virtual int create() override; + virtual int doDelete() override; + static int checkStoryflagValid(u32); + static bool checkUncommitedStoryFlagValue(u32); + static void setStoryFlag(StoryFlags_e); + static void unsetStoryFlag(StoryFlags_e); + virtual int actorExecute() override; + virtual int actorExecuteInEvent() override; + virtual int draw() override; + +private: + /* 0x0FC */ ActorEventRelated mActorEvent; + /* 0x14C */ mMtx_c mMatrix; + /* 0x17C */ u32 mEventId; + /* 0x180 */ u32 p1_s8_0x7FF; + /* 0x184 */ u32 p1_s19_0x7FF; + /* 0x188 */ u32 p1_s30_0x3; +}; +#endif diff --git a/src/d/tg/d_t_event_f.cpp b/src/d/tg/d_t_event_f.cpp new file mode 100644 index 00000000..e5b81f52 --- /dev/null +++ b/src/d/tg/d_t_event_f.cpp @@ -0,0 +1,77 @@ +#include "d/t/d_t_event_f.h" + +#include "d/a/d_a_player.h" +#include "d/flag/storyflag_manager.h" +#include "f/f_base.h" +#include "toBeSorted/area_math.h" + +SPECIAL_ACTOR_PROFILE(EVENTF_TAG, dTgEventF_c, fProfile::EVENTF_TAG, 0X14, 0, 0); + +int dTgEventF_c::create() { + matrixCreateFromPosRotYScale(mMatrix, mPosition, mRotation.y, mScale, 0x0, 0.0f); + mEventId = getFromParams(0, 0xFF); + p1_s8_0x7FF = getFromParams(8, 0x7FF); + if ((s32)p1_s8_0x7FF == 0x3FF) { + p1_s8_0x7FF = 0xFFFFFFFF; + } + p1_s19_0x7FF = getFromParams(19, 0x7FF); + if ((s32)p1_s19_0x7FF == 0x3FF) { + p1_s19_0x7FF = 0xFFFFFFFF; + } + p1_s30_0x3 = getFromParams(30, 0x3); + return SUCCEEDED; +} + +int dTgEventF_c::doDelete() { + return SUCCEEDED; +} + +int dTgEventF_c::checkStoryflagValid(u32 counterIdx) { + return StoryflagManager::sInstance->checkFlagValid(counterIdx); +} + +bool dTgEventF_c::checkUncommitedStoryFlagValue(u32 flag) { + return StoryflagManager::sInstance->getUncommittedValue(flag); +} + +void dTgEventF_c::setStoryFlag(StoryFlags_e flag) { + StoryflagManager::sInstance->setFlag(flag); + return; +} + +void dTgEventF_c::unsetStoryFlag(StoryFlags_e flag) { + StoryflagManager::sInstance->unsetFlag(flag); + return; +} + +int dTgEventF_c::actorExecute() { + if ((!checkStoryflagValid(p1_s19_0x7FF) || checkUncommitedStoryFlagValue(p1_s19_0x7FF))) { + if ((p1_s30_0x3 != 0 && !(checkStoryflagValid(p1_s8_0x7FF) && checkUncommitedStoryFlagValue(p1_s8_0x7FF))) || + (p1_s30_0x3 == 0 && checkStoryflagValid(p1_s8_0x7FF) && checkUncommitedStoryFlagValue(p1_s8_0x7FF))) { + if (checkIfVec3fInMatrix(mMatrix, dAcPy_c::LINK->mPosition)) { + Event EStack_48 = Event(mEventId, (int)mRoomID, 0x100001, 0, 0); + mActorEvent.scheduleEvent(EStack_48, 0); + } + } + } + return SUCCEEDED; +} +int dTgEventF_c::actorExecuteInEvent() { + int iVar1; + + // iVar1 = mActorEvent.isThisActorInEvent(); + if (mActorEvent.isThisActorInEvent()) { + mActorEvent.advanceNext(); + if (!(p1_s30_0x3 == 0 || !checkStoryflagValid(p1_s8_0x7FF) || checkUncommitedStoryFlagValue(p1_s8_0x7FF))) { + setStoryFlag((StoryFlags_e)p1_s8_0x7FF); + } else if ((p1_s30_0x3 == 0 && checkStoryflagValid(p1_s8_0x7FF)) && + checkUncommitedStoryFlagValue(p1_s8_0x7FF)) { + unsetStoryFlag((StoryFlags_e)p1_s8_0x7FF); + } + } + return SUCCEEDED; +} + +int dTgEventF_c::draw() { + return SUCCEEDED; +} From 238a9e26a0ff6a88bcf2a61cc4f83339f47a0803 Mon Sep 17 00:00:00 2001 From: MaxMotis Date: Mon, 9 Mar 2026 22:04:50 +0100 Subject: [PATCH 2/5] Revert "d_t_event_f OK" This reverts commit 5adbfc7713d3415d5d239fc417829910ed94c8e8. --- config/SOUE01/splits.txt | 1 - config/SOUE01/symbols.txt | 52 +++++++++++++------------- include/d/t/d_t_event_f.h | 33 ----------------- src/d/tg/d_t_event_f.cpp | 77 --------------------------------------- 4 files changed, 26 insertions(+), 137 deletions(-) delete mode 100644 include/d/t/d_t_event_f.h delete mode 100644 src/d/tg/d_t_event_f.cpp diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt index be914da8..3a847b06 100644 --- a/config/SOUE01/splits.txt +++ b/config/SOUE01/splits.txt @@ -1571,7 +1571,6 @@ d/tg/d_t_event.cpp: d/tg/d_t_event_f.cpp: .text start:0x8027A740 end:0x8027AB30 align:16 .data start:0x805367A0 end:0x80536828 - .sdata2 start:0x8057C650 end:0x8057C658 d/tg/d_tk_event.cpp: .text start:0x8027AB30 end:0x8027B408 align:16 diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index 300ca246..f4afdda4 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -628,7 +628,7 @@ create3__Q23d3d13AnmMdlWrapperFR9dAcBase_cPvPCcPCcPQ33m3d5mdl_c13mdlCallback_cUl setAnm__Q23d3d13AnmMdlWrapperFPCcQ23m3d10playMode_e = .text:0x80019D50; // type:function size:0x14 __dt__Q23d3d14AnmMdlWrapper2Fv = .text:0x80019D70; // type:function size:0x58 __dt__Q23d3d7XluProcFv = .text:0x80019DD0; // type:function size:0x5C -__sinit_\d_d3d_cpp = .text:0x80019E30; // type:function size:0x44 scope:local +__sinit_\d_d3d_cpp = .text:0x80019E30; // type:function size:0x44 ExecCallback_CALC_MAT__14dScnCallback_cFQ44nw4r3g3d6ScnObj6TimingPQ34nw4r3g3d6ScnObjUlPv = .text:0x80019E80; // type:function size:0x3A8 attach__14dScnCallback_cFRQ23m3d9scnLeaf_c = .text:0x8001A230; // type:function size:0x50 setPCAMPos2__FPC4PCAM = .text:0x8001A280; // type:function size:0x144 @@ -2626,7 +2626,7 @@ set0x43DE__17daPlayerActBase_cFv = .text:0x8005CE00; // type:function size:0x4 set0x439F__17daPlayerActBase_cFP9dAcBase_ci = .text:0x8005CE10; // type:function size:0x4 vt_0x084__17daPlayerActBase_cFP9dAcBase_ci = .text:0x8005CE20; // type:function size:0x8 IfCurrentActionToActor__17daPlayerActBase_cFP9dAcBase_ci = .text:0x8005CE30; // type:function size:0x8 -__sinit_\d_player_act_cpp = .text:0x8005CE40; // type:function size:0x4C scope:local +__sinit_\d_player_act_cpp = .text:0x8005CE40; // type:function size:0x4C ExecCallback_DRAW_OPA__24daPlBaseScnObjCallback_cFQ44nw4r3g3d6ScnObj6TimingPQ34nw4r3g3d6ScnObjUlPv = .text:0x8005CE90; // type:function size:0x134 ExecCallback_CALC_MAT__24daPlBaseScnObjCallback_cFQ44nw4r3g3d6ScnObj6TimingPQ34nw4r3g3d6ScnObjUlPv = .text:0x8005CFD0; // type:function size:0x10 ExecCallbackA__21daPlBaseMdlCallback_cFPQ34nw4r3g3d12ChrAnmResultQ34nw4r3g3d6ResMdlPQ34nw4r3g3d16FuncObjCalcWorld = .text:0x8005CFE0; // type:function size:0x134 @@ -7498,7 +7498,7 @@ fn_8012D800 = .text:0x8012D800; // type:function size:0xEC finalizeState__31sFStateID_c<16dLytMapCapture_c>CFR16dLytMapCapture_c = .text:0x8012D8F0; // type:function size:0x30 executeState__31sFStateID_c<16dLytMapCapture_c>CFR16dLytMapCapture_c = .text:0x8012D920; // type:function size:0x30 initializeState__31sFStateID_c<16dLytMapCapture_c>CFR16dLytMapCapture_c = .text:0x8012D950; // type:function size:0x30 -__sinit_\d_lyt_map_capture_cpp = .text:0x8012D980; // type:function size:0x1C0 scope:local +__sinit_\d_lyt_map_capture_cpp = .text:0x8012D980; // type:function size:0x1C0 __dt__31sFStateID_c<16dLytMapCapture_c>Fv = .text:0x8012DB40; // type:function size:0x58 isSameName__31sFStateID_c<16dLytMapCapture_c>CFPCc = .text:0x8012DBA0; // type:function size:0x88 __ct__13dLytMap_HIO_cFv = .text:0x8012DC30; // type:function size:0xEC @@ -14163,7 +14163,7 @@ getOldStateID__83sStateMgr_c<14dAcBoomerang_c,20sStateMethodUsr_FI_c,12sFStateFc finalizeState__29sFStateID_c<14dAcBoomerang_c>CFR14dAcBoomerang_c = .text:0x80265080; // type:function size:0x30 executeState__29sFStateID_c<14dAcBoomerang_c>CFR14dAcBoomerang_c = .text:0x802650B0; // type:function size:0x30 initializeState__29sFStateID_c<14dAcBoomerang_c>CFR14dAcBoomerang_c = .text:0x802650E0; // type:function size:0x30 -__sinit_\d_a_obj_boomerang_cpp = .text:0x80265110; // type:function size:0x41C scope:local +__sinit_\d_a_obj_boomerang_cpp = .text:0x80265110; // type:function size:0x41C __dt__29sFStateID_c<14dAcBoomerang_c>Fv = .text:0x80265530; // type:function size:0x58 isSameName__29sFStateID_c<14dAcBoomerang_c>CFPCc = .text:0x80265590; // type:function size:0x88 dAcOFairy_c_classInit__Fv = .text:0x80265620; // type:function size:0x144 @@ -14622,17 +14622,17 @@ actorExecute__10dTgEvent_cFv = .text:0x8027A460; // type:function size:0x150 actorExecuteInEvent__10dTgEvent_cFv = .text:0x8027A5B0; // type:function size:0x108 draw__10dTgEvent_cFv = .text:0x8027A6C0; // type:function size:0x8 __dt__10dTgEvent_cFv = .text:0x8027A6D0; // type:function size:0x70 -dTgEventF_c_classInit__Fv = .text:0x8027A740; // type:function size:0x5C -create__11dTgEventF_cFv = .text:0x8027A7A0; // type:function size:0x9C -doDelete__11dTgEventF_cFv = .text:0x8027A840; // type:function size:0x8 -checkStoryflagValid__11dTgEventF_cFUl = .text:0x8027A850; // type:function size:0x14 -checkUncommitedStoryFlagValue__11dTgEventF_cFUl = .text:0x8027A870; // type:function size:0x48 -setStoryFlag__11dTgEventF_cF12StoryFlags_e = .text:0x8027A8C0; // type:function size:0x1C -unsetStoryFlag__11dTgEventF_cF12StoryFlags_e = .text:0x8027A8E0; // type:function size:0x1C -actorExecute__11dTgEventF_cFv = .text:0x8027A900; // type:function size:0xFC -actorExecuteInEvent__11dTgEventF_cFv = .text:0x8027AA00; // type:function size:0xB0 -draw__11dTgEventF_cFv = .text:0x8027AAB0; // type:function size:0x8 -__dt__11dTgEventF_cFv = .text:0x8027AAC0; // type:function size:0x70 +TgEventF__ctor = .text:0x8027A740; // type:function size:0x5C +TgEventF__init = .text:0x8027A7A0; // type:function size:0x9C +fn_8027A840 = .text:0x8027A840; // type:function size:0x8 +checkStoryflagValid = .text:0x8027A850; // type:function size:0x14 +TgEventF__checkUncommitedStoryFlagValue = .text:0x8027A870; // type:function size:0x48 +TgEventF__setStoryFlag = .text:0x8027A8C0; // type:function size:0x1C +TgEventF__unsetStoryFlag = .text:0x8027A8E0; // type:function size:0x1C +TgEventF__update = .text:0x8027A900; // type:function size:0xFC +TgEventF__updateInEvent = .text:0x8027AA00; // type:function size:0xB0 +fn_8027AAB0 = .text:0x8027AAB0; // type:function size:0x8 +TgEventF__dtor = .text:0x8027AAC0; // type:function size:0x70 TgTkEvnt__ctor = .text:0x8027AB30; // type:function size:0xB8 fn_8027ABF0 = .text:0x8027ABF0; // type:function size:0x58 fn_8027AC50 = .text:0x8027AC50; // type:function size:0x6C @@ -15010,7 +15010,7 @@ initializeState__29sFStateID_c<14dLytGameOver_c>CFR14dLytGameOver_c = .text:0x80 finalizeState__32sFStateID_c<17dLytGameOverMgr_c>CFR17dLytGameOverMgr_c = .text:0x802847C0; // type:function size:0x30 executeState__32sFStateID_c<17dLytGameOverMgr_c>CFR17dLytGameOverMgr_c = .text:0x802847F0; // type:function size:0x30 initializeState__32sFStateID_c<17dLytGameOverMgr_c>CFR17dLytGameOverMgr_c = .text:0x80284820; // type:function size:0x30 -__sinit_\d_lyt_game_over_cpp = .text:0x80284850; // type:function size:0x578 scope:local +__sinit_\d_lyt_game_over_cpp = .text:0x80284850; // type:function size:0x578 __dt__29sFStateID_c<14dLytGameOver_c>Fv = .text:0x80284DD0; // type:function size:0x58 __dt__32sFStateID_c<17dLytGameOverMgr_c>Fv = .text:0x80284E30; // type:function size:0x58 isSameName__32sFStateID_c<17dLytGameOverMgr_c>CFPCc = .text:0x80284E90; // type:function size:0x88 @@ -15823,7 +15823,7 @@ getOldStateID__86sStateMgr_c<17dLytDemoDowsing_c,20sStateMethodUsr_FI_c,12sFStat finalizeState__32sFStateID_c<17dLytDemoDowsing_c>CFR17dLytDemoDowsing_c = .text:0x802A1490; // type:function size:0x30 executeState__32sFStateID_c<17dLytDemoDowsing_c>CFR17dLytDemoDowsing_c = .text:0x802A14C0; // type:function size:0x30 initializeState__32sFStateID_c<17dLytDemoDowsing_c>CFR17dLytDemoDowsing_c = .text:0x802A14F0; // type:function size:0x30 -__sinit_\d_lyt_demo_dowsing_cpp = .text:0x802A1520; // type:function size:0x1C0 scope:local +__sinit_\d_lyt_demo_dowsing_cpp = .text:0x802A1520; // type:function size:0x1C0 __dt__32sFStateID_c<17dLytDemoDowsing_c>Fv = .text:0x802A16E0; // type:function size:0x58 isSameName__32sFStateID_c<17dLytDemoDowsing_c>CFPCc = .text:0x802A1740; // type:function size:0x88 initializeState_ModeNone__14dLytShopMain_cFv = .text:0x802A17D0; // type:function size:0x4 @@ -15961,7 +15961,7 @@ initializeState__29sFStateID_c<14dLytShopMain_c>CFR14dLytShopMain_c = .text:0x80 finalizeState__25sFStateID_c<10dLytShop_c>CFR10dLytShop_c = .text:0x802A70A0; // type:function size:0x30 executeState__25sFStateID_c<10dLytShop_c>CFR10dLytShop_c = .text:0x802A70D0; // type:function size:0x30 initializeState__25sFStateID_c<10dLytShop_c>CFR10dLytShop_c = .text:0x802A7100; // type:function size:0x30 -__sinit_\d_lyt_shop_cpp = .text:0x802A7130; // type:function size:0xCD0 scope:local +__sinit_\d_lyt_shop_cpp = .text:0x802A7130; // type:function size:0xCD0 __dt__29sFStateID_c<14dLytShopMain_c>Fv = .text:0x802A7E00; // type:function size:0x58 __dt__25sFStateID_c<10dLytShop_c>Fv = .text:0x802A7E60; // type:function size:0x58 isSameName__25sFStateID_c<10dLytShop_c>CFPCc = .text:0x802A7EC0; // type:function size:0x88 @@ -17869,7 +17869,7 @@ normalizeRS__7mVec3_cFv = .text:0x802F2BF0; // type:function size:0x84 rotX__7mVec3_cFRC4mAng = .text:0x802F2C80; // type:function size:0xA8 rotY__7mVec3_cFRC4mAng = .text:0x802F2D30; // type:function size:0xAC rotZ__7mVec3_cFRC4mAng = .text:0x802F2DE0; // type:function size:0xA8 -__sinit_\m_vec_cpp = .text:0x802F2E90; // type:function size:0x78 scope:local +__sinit_\m_vec_cpp = .text:0x802F2E90; // type:function size:0x78 init__Q210homebutton15FrameControllerFifff = .text:0x802F2F10; // type:function size:0x38 initFrame__Q210homebutton15FrameControllerFv = .text:0x802F2F50; // type:function size:0x20 calc__Q210homebutton15FrameControllerFv = .text:0x802F2F70; // type:function size:0x14C @@ -20025,7 +20025,7 @@ setStageEffectsVolume__22dSndControlPlayerMgr_cFfl = .text:0x80360A60; // type:f setStageEffectsMuteVolume__22dSndControlPlayerMgr_cFf = .text:0x80360AD0; // type:function size:0x5C setEnemyMuteVolume__22dSndControlPlayerMgr_cFf = .text:0x80360B30; // type:function size:0x5C setObjectMuteVolume__22dSndControlPlayerMgr_cFf = .text:0x80360B90; // type:function size:0x64 -__sinit_\d_snd_control_player_mgr_cpp = .text:0x80360C00; // type:function size:0x28 scope:local +__sinit_\d_snd_control_player_mgr_cpp = .text:0x80360C00; // type:function size:0x28 __dt__33SndMgrDisposer<15dSnd3DManager_c>Fv = .text:0x80360C30; // type:function size:0x78 scope:weak create__33SndMgrDisposer<15dSnd3DManager_c>Fv = .text:0x80360CB0; // type:function size:0x48 scope:weak remove__33SndMgrDisposer<15dSnd3DManager_c>Fv = .text:0x80360D00; // type:function size:0x10 scope:weak @@ -27099,7 +27099,7 @@ __dt__Q27JStudio13TObject_lightFv = .text:0x804BF750; // type:function size:0x58 __dt__Q27JStudio15TObject_messageFv = .text:0x804BF7B0; // type:function size:0x58 __dt__Q27JStudio16TObject_particleFv = .text:0x804BF810; // type:function size:0x58 __dt__Q27JStudio13TObject_soundFv = .text:0x804BF870; // type:function size:0x58 -__sinit_\jstudio-object_cpp = .text:0x804BF8D0; // type:function size:0x300 scope:local +__sinit_\jstudio-object_cpp = .text:0x804BF8D0; // type:function size:0x300 __dt__Q37JStudio28@unnamed@jstudio_object_cpp@54TOutputVariableValue_BOOL_Fv = .text:0x804BFBD0; // type:function size:0x58 __dt__Q37JStudio28@unnamed@jstudio_object_cpp@55TOutputVariableValue_BOOL_Fv = .text:0x804BFC30; // type:function size:0x58 __dt__Q37JStudio28@unnamed@jstudio_object_cpp@54TOutputVariableValue_BOOL_Fv = .text:0x804BFC90; // type:function size:0x58 @@ -27198,7 +27198,7 @@ setJSG_SRT___Q214JStudio_JStage14TAdaptor_actorFPCQ27JStudio8TControl = .text:0x getJSG_SRT___Q214JStudio_JStage14TAdaptor_actorFPCQ27JStudio8TControl = .text:0x804C22E0; // type:function size:0x1A8 __cl__Q314JStudio_JStage14TAdaptor_actor26TVVOutput_ANIMATION_FRAME_CFfPQ27JStudio8TAdaptor = .text:0x804C2490; // type:function size:0xE8 __dt__Q314JStudio_JStage14TAdaptor_actor26TVVOutput_ANIMATION_FRAME_Fv = .text:0x804C2580; // type:function size:0x58 -__sinit_\object-actor_cpp = .text:0x804C25E0; // type:function size:0x250 scope:local +__sinit_\object-actor_cpp = .text:0x804C25E0; // type:function size:0x250 __dt__Q214JStudio_JStage81TVariableValueOutput_object_Fv = .text:0x804C2830; // type:function size:0x58 __cl__Q214JStudio_JStage81TVariableValueOutput_object_CFfPQ27JStudio8TAdaptor = .text:0x804C2890; // type:function size:0x30 fn_804C28C0 = .text:0x804C28C0; // type:function size:0x10 @@ -27219,7 +27219,7 @@ adaptor_do_TARGET_PARENT_NODE__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4da adaptor_do_TARGET_PARENT_ENABLE__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl = .text:0x804C2E30; // type:function size:0x24 setJSG_position___Q214JStudio_JStage15TAdaptor_cameraFPCQ27JStudio8TControl = .text:0x804C2E60; // type:function size:0x10C getJSG_position___Q214JStudio_JStage15TAdaptor_cameraFPCQ27JStudio8TControl = .text:0x804C2F70; // type:function size:0x118 -__sinit_\object-camera_cpp = .text:0x804C3090; // type:function size:0x228 scope:local +__sinit_\object-camera_cpp = .text:0x804C3090; // type:function size:0x228 __dt__Q214JStudio_JStage83TVariableValueOutput_object_Fv = .text:0x804C32C0; // type:function size:0x58 __cl__Q214JStudio_JStage83TVariableValueOutput_object_CFfPQ27JStudio8TAdaptor = .text:0x804C3320; // type:function size:0x30 __ct__Q214JStudio_JStage14TAdaptor_lightFPCQ26JStage7TSystemPQ26JStage6TLight = .text:0x804C3350; // type:function size:0x154 @@ -27360,7 +27360,7 @@ fn_804C6150 = .text:0x804C6150; // type:function size:0x98 fn_804C61F0 = .text:0x804C61F0; // type:function size:0x8 fn_804C6200 = .text:0x804C6200; // type:function size:0x134 __dt__Q315JStudio_JAudio214TAdaptor_sound13TVVOSetValue_Fv = .text:0x804C6340; // type:function size:0x58 -__sinit_\object-sound_cpp = .text:0x804C63A0; // type:function size:0x13C scope:local +__sinit_\object-sound_cpp = .text:0x804C63A0; // type:function size:0x13C strlen = .text:0x804C64DC; // type:function size:0x1C scope:weak __va_arg = .text:0x804C64F8; // type:function size:0xC8 scope:global __register_global_object = .text:0x804C65C0; // type:function size:0x18 scope:global @@ -36477,7 +36477,7 @@ lbl_805366A0 = .data:0x805366A0; // type:object size:0x78 g_profile_EVENT_TAG = .data:0x80536718; // type:object size:0x10 __vt__10dTgEvent_c = .data:0x80536728; // type:object size:0x78 g_profile_EVENTF_TAG = .data:0x805367A0; // type:object size:0x10 -__vt__11dTgEventF_c = .data:0x805367B0; // type:object size:0x78 +TgEventF__vtable = .data:0x805367B0; // type:object size:0x78 g_profile_TAG_TKEVNT = .data:0x80536828; // type:object size:0x10 TgTkEvnt__vtable = .data:0x80536838; // type:object size:0x78 lbl_805368B0 = .data:0x805368B0; // type:object size:0x30 @@ -48517,7 +48517,7 @@ lbl_8057C634 = .sdata2:0x8057C634; // type:object size:0x4 align:4 data:float lbl_8057C638 = .sdata2:0x8057C638; // type:object size:0x4 align:4 data:float lbl_8057C640 = .sdata2:0x8057C640; // type:object size:0x4 align:4 data:float @23574 = .sdata2:0x8057C648; // type:object size:0x4 scope:local align:4 data:float -@23557 = .sdata2:0x8057C650; // type:object size:0x4 align:4 data:float +lbl_8057C650 = .sdata2:0x8057C650; // type:object size:0x4 align:4 data:float lbl_8057C658 = .sdata2:0x8057C658; // type:object size:0x4 align:4 data:float lbl_8057C65C = .sdata2:0x8057C65C; // type:object size:0x4 align:4 data:float lbl_8057C660 = .sdata2:0x8057C660; // type:object size:0x4 align:4 data:float diff --git a/include/d/t/d_t_event_f.h b/include/d/t/d_t_event_f.h deleted file mode 100644 index 4cb092c0..00000000 --- a/include/d/t/d_t_event_f.h +++ /dev/null @@ -1,33 +0,0 @@ -#ifndef D_T_EVENT_F_H -#define D_T_EVENT_F_H - -#include "common.h" -#include "d/flag/storyflag_manager.h" -#include "d/t/d_tg.h" -#include "m/m_mtx.h" -#include "toBeSorted/actor_event.h" - -class dTgEventF_c : public dTg_c { -public: - dTgEventF_c() : mActorEvent(*this, nullptr) {} - virtual ~dTgEventF_c() {} - - virtual int create() override; - virtual int doDelete() override; - static int checkStoryflagValid(u32); - static bool checkUncommitedStoryFlagValue(u32); - static void setStoryFlag(StoryFlags_e); - static void unsetStoryFlag(StoryFlags_e); - virtual int actorExecute() override; - virtual int actorExecuteInEvent() override; - virtual int draw() override; - -private: - /* 0x0FC */ ActorEventRelated mActorEvent; - /* 0x14C */ mMtx_c mMatrix; - /* 0x17C */ u32 mEventId; - /* 0x180 */ u32 p1_s8_0x7FF; - /* 0x184 */ u32 p1_s19_0x7FF; - /* 0x188 */ u32 p1_s30_0x3; -}; -#endif diff --git a/src/d/tg/d_t_event_f.cpp b/src/d/tg/d_t_event_f.cpp deleted file mode 100644 index e5b81f52..00000000 --- a/src/d/tg/d_t_event_f.cpp +++ /dev/null @@ -1,77 +0,0 @@ -#include "d/t/d_t_event_f.h" - -#include "d/a/d_a_player.h" -#include "d/flag/storyflag_manager.h" -#include "f/f_base.h" -#include "toBeSorted/area_math.h" - -SPECIAL_ACTOR_PROFILE(EVENTF_TAG, dTgEventF_c, fProfile::EVENTF_TAG, 0X14, 0, 0); - -int dTgEventF_c::create() { - matrixCreateFromPosRotYScale(mMatrix, mPosition, mRotation.y, mScale, 0x0, 0.0f); - mEventId = getFromParams(0, 0xFF); - p1_s8_0x7FF = getFromParams(8, 0x7FF); - if ((s32)p1_s8_0x7FF == 0x3FF) { - p1_s8_0x7FF = 0xFFFFFFFF; - } - p1_s19_0x7FF = getFromParams(19, 0x7FF); - if ((s32)p1_s19_0x7FF == 0x3FF) { - p1_s19_0x7FF = 0xFFFFFFFF; - } - p1_s30_0x3 = getFromParams(30, 0x3); - return SUCCEEDED; -} - -int dTgEventF_c::doDelete() { - return SUCCEEDED; -} - -int dTgEventF_c::checkStoryflagValid(u32 counterIdx) { - return StoryflagManager::sInstance->checkFlagValid(counterIdx); -} - -bool dTgEventF_c::checkUncommitedStoryFlagValue(u32 flag) { - return StoryflagManager::sInstance->getUncommittedValue(flag); -} - -void dTgEventF_c::setStoryFlag(StoryFlags_e flag) { - StoryflagManager::sInstance->setFlag(flag); - return; -} - -void dTgEventF_c::unsetStoryFlag(StoryFlags_e flag) { - StoryflagManager::sInstance->unsetFlag(flag); - return; -} - -int dTgEventF_c::actorExecute() { - if ((!checkStoryflagValid(p1_s19_0x7FF) || checkUncommitedStoryFlagValue(p1_s19_0x7FF))) { - if ((p1_s30_0x3 != 0 && !(checkStoryflagValid(p1_s8_0x7FF) && checkUncommitedStoryFlagValue(p1_s8_0x7FF))) || - (p1_s30_0x3 == 0 && checkStoryflagValid(p1_s8_0x7FF) && checkUncommitedStoryFlagValue(p1_s8_0x7FF))) { - if (checkIfVec3fInMatrix(mMatrix, dAcPy_c::LINK->mPosition)) { - Event EStack_48 = Event(mEventId, (int)mRoomID, 0x100001, 0, 0); - mActorEvent.scheduleEvent(EStack_48, 0); - } - } - } - return SUCCEEDED; -} -int dTgEventF_c::actorExecuteInEvent() { - int iVar1; - - // iVar1 = mActorEvent.isThisActorInEvent(); - if (mActorEvent.isThisActorInEvent()) { - mActorEvent.advanceNext(); - if (!(p1_s30_0x3 == 0 || !checkStoryflagValid(p1_s8_0x7FF) || checkUncommitedStoryFlagValue(p1_s8_0x7FF))) { - setStoryFlag((StoryFlags_e)p1_s8_0x7FF); - } else if ((p1_s30_0x3 == 0 && checkStoryflagValid(p1_s8_0x7FF)) && - checkUncommitedStoryFlagValue(p1_s8_0x7FF)) { - unsetStoryFlag((StoryFlags_e)p1_s8_0x7FF); - } - } - return SUCCEEDED; -} - -int dTgEventF_c::draw() { - return SUCCEEDED; -} From ec39e212dbce31a94721d9ea09fe0837665e7b08 Mon Sep 17 00:00:00 2001 From: MaxMotis Date: Mon, 9 Mar 2026 22:38:16 +0100 Subject: [PATCH 3/5] d_t_event_f OK fixed symbols.txt and staged configure.py --- config/SOUE01/splits.txt | 1 + config/SOUE01/symbols.txt | 26 ++++++------- configure.py | 2 +- include/d/t/d_t_event_f.h | 33 +++++++++++++++++ src/d/tg/d_t_event_f.cpp | 77 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 125 insertions(+), 14 deletions(-) create mode 100644 include/d/t/d_t_event_f.h create mode 100644 src/d/tg/d_t_event_f.cpp diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt index 3a847b06..be914da8 100644 --- a/config/SOUE01/splits.txt +++ b/config/SOUE01/splits.txt @@ -1571,6 +1571,7 @@ d/tg/d_t_event.cpp: d/tg/d_t_event_f.cpp: .text start:0x8027A740 end:0x8027AB30 align:16 .data start:0x805367A0 end:0x80536828 + .sdata2 start:0x8057C650 end:0x8057C658 d/tg/d_tk_event.cpp: .text start:0x8027AB30 end:0x8027B408 align:16 diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index f4afdda4..19e43777 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -14622,17 +14622,17 @@ actorExecute__10dTgEvent_cFv = .text:0x8027A460; // type:function size:0x150 actorExecuteInEvent__10dTgEvent_cFv = .text:0x8027A5B0; // type:function size:0x108 draw__10dTgEvent_cFv = .text:0x8027A6C0; // type:function size:0x8 __dt__10dTgEvent_cFv = .text:0x8027A6D0; // type:function size:0x70 -TgEventF__ctor = .text:0x8027A740; // type:function size:0x5C -TgEventF__init = .text:0x8027A7A0; // type:function size:0x9C -fn_8027A840 = .text:0x8027A840; // type:function size:0x8 -checkStoryflagValid = .text:0x8027A850; // type:function size:0x14 -TgEventF__checkUncommitedStoryFlagValue = .text:0x8027A870; // type:function size:0x48 -TgEventF__setStoryFlag = .text:0x8027A8C0; // type:function size:0x1C -TgEventF__unsetStoryFlag = .text:0x8027A8E0; // type:function size:0x1C -TgEventF__update = .text:0x8027A900; // type:function size:0xFC -TgEventF__updateInEvent = .text:0x8027AA00; // type:function size:0xB0 -fn_8027AAB0 = .text:0x8027AAB0; // type:function size:0x8 -TgEventF__dtor = .text:0x8027AAC0; // type:function size:0x70 +dTgEventF_c_classInit__Fv = .text:0x8027A740; // type:function size:0x5C +create__11dTgEventF_cFv = .text:0x8027A7A0; // type:function size:0x9C +doDelete__11dTgEventF_cFv = .text:0x8027A840; // type:function size:0x8 +checkStoryflagValid__11dTgEventF_cFUl = .text:0x8027A850; // type:function size:0x14 +checkUncommitedStoryFlagValue__11dTgEventF_cFUl = .text:0x8027A870; // type:function size:0x48 +setStoryFlag__11dTgEventF_cF12StoryFlags_e = .text:0x8027A8C0; // type:function size:0x1C +unsetStoryFlag__11dTgEventF_cF12StoryFlags_e = .text:0x8027A8E0; // type:function size:0x1C +actorExecute__11dTgEventF_cFv = .text:0x8027A900; // type:function size:0xFC +actorExecuteInEvent__11dTgEventF_cFv = .text:0x8027AA00; // type:function size:0xB0 +draw__11dTgEventF_cFv = .text:0x8027AAB0; // type:function size:0x8 +__dt__11dTgEventF_cFv = .text:0x8027AAC0; // type:function size:0x70 TgTkEvnt__ctor = .text:0x8027AB30; // type:function size:0xB8 fn_8027ABF0 = .text:0x8027ABF0; // type:function size:0x58 fn_8027AC50 = .text:0x8027AC50; // type:function size:0x6C @@ -36477,7 +36477,7 @@ lbl_805366A0 = .data:0x805366A0; // type:object size:0x78 g_profile_EVENT_TAG = .data:0x80536718; // type:object size:0x10 __vt__10dTgEvent_c = .data:0x80536728; // type:object size:0x78 g_profile_EVENTF_TAG = .data:0x805367A0; // type:object size:0x10 -TgEventF__vtable = .data:0x805367B0; // type:object size:0x78 +__vt__11dTgEventF_c = .data:0x805367B0; // type:object size:0x78 g_profile_TAG_TKEVNT = .data:0x80536828; // type:object size:0x10 TgTkEvnt__vtable = .data:0x80536838; // type:object size:0x78 lbl_805368B0 = .data:0x805368B0; // type:object size:0x30 @@ -48517,7 +48517,7 @@ lbl_8057C634 = .sdata2:0x8057C634; // type:object size:0x4 align:4 data:float lbl_8057C638 = .sdata2:0x8057C638; // type:object size:0x4 align:4 data:float lbl_8057C640 = .sdata2:0x8057C640; // type:object size:0x4 align:4 data:float @23574 = .sdata2:0x8057C648; // type:object size:0x4 scope:local align:4 data:float -lbl_8057C650 = .sdata2:0x8057C650; // type:object size:0x4 align:4 data:float +@23549 = .sdata2:0x8057C650; // type:object size:0x4 align:4 data:float lbl_8057C658 = .sdata2:0x8057C658; // type:object size:0x4 align:4 data:float lbl_8057C65C = .sdata2:0x8057C65C; // type:object size:0x4 align:4 data:float lbl_8057C660 = .sdata2:0x8057C660; // type:object size:0x4 align:4 data:float diff --git a/configure.py b/configure.py index 1598adae..4421ea35 100644 --- a/configure.py +++ b/configure.py @@ -646,7 +646,7 @@ config.libs = [ Object(NonMatching, "d/tg/d_t_mass_object.cpp"), Object(NonMatching, "d/tg/d_t_camera.cpp"), Object(Matching, "d/tg/d_t_event.cpp"), - Object(NonMatching, "d/tg/d_t_event_f.cpp"), + Object(Matching, "d/tg/d_t_event_f.cpp"), Object(NonMatching, "d/tg/d_tk_event.cpp"), Object(NonMatching, "toBeSorted/d_a_npc_inv.cpp"), Object(NonMatching, "toBeSorted/d_a_npc_tke.cpp"), diff --git a/include/d/t/d_t_event_f.h b/include/d/t/d_t_event_f.h new file mode 100644 index 00000000..4cb092c0 --- /dev/null +++ b/include/d/t/d_t_event_f.h @@ -0,0 +1,33 @@ +#ifndef D_T_EVENT_F_H +#define D_T_EVENT_F_H + +#include "common.h" +#include "d/flag/storyflag_manager.h" +#include "d/t/d_tg.h" +#include "m/m_mtx.h" +#include "toBeSorted/actor_event.h" + +class dTgEventF_c : public dTg_c { +public: + dTgEventF_c() : mActorEvent(*this, nullptr) {} + virtual ~dTgEventF_c() {} + + virtual int create() override; + virtual int doDelete() override; + static int checkStoryflagValid(u32); + static bool checkUncommitedStoryFlagValue(u32); + static void setStoryFlag(StoryFlags_e); + static void unsetStoryFlag(StoryFlags_e); + virtual int actorExecute() override; + virtual int actorExecuteInEvent() override; + virtual int draw() override; + +private: + /* 0x0FC */ ActorEventRelated mActorEvent; + /* 0x14C */ mMtx_c mMatrix; + /* 0x17C */ u32 mEventId; + /* 0x180 */ u32 p1_s8_0x7FF; + /* 0x184 */ u32 p1_s19_0x7FF; + /* 0x188 */ u32 p1_s30_0x3; +}; +#endif diff --git a/src/d/tg/d_t_event_f.cpp b/src/d/tg/d_t_event_f.cpp new file mode 100644 index 00000000..e5b81f52 --- /dev/null +++ b/src/d/tg/d_t_event_f.cpp @@ -0,0 +1,77 @@ +#include "d/t/d_t_event_f.h" + +#include "d/a/d_a_player.h" +#include "d/flag/storyflag_manager.h" +#include "f/f_base.h" +#include "toBeSorted/area_math.h" + +SPECIAL_ACTOR_PROFILE(EVENTF_TAG, dTgEventF_c, fProfile::EVENTF_TAG, 0X14, 0, 0); + +int dTgEventF_c::create() { + matrixCreateFromPosRotYScale(mMatrix, mPosition, mRotation.y, mScale, 0x0, 0.0f); + mEventId = getFromParams(0, 0xFF); + p1_s8_0x7FF = getFromParams(8, 0x7FF); + if ((s32)p1_s8_0x7FF == 0x3FF) { + p1_s8_0x7FF = 0xFFFFFFFF; + } + p1_s19_0x7FF = getFromParams(19, 0x7FF); + if ((s32)p1_s19_0x7FF == 0x3FF) { + p1_s19_0x7FF = 0xFFFFFFFF; + } + p1_s30_0x3 = getFromParams(30, 0x3); + return SUCCEEDED; +} + +int dTgEventF_c::doDelete() { + return SUCCEEDED; +} + +int dTgEventF_c::checkStoryflagValid(u32 counterIdx) { + return StoryflagManager::sInstance->checkFlagValid(counterIdx); +} + +bool dTgEventF_c::checkUncommitedStoryFlagValue(u32 flag) { + return StoryflagManager::sInstance->getUncommittedValue(flag); +} + +void dTgEventF_c::setStoryFlag(StoryFlags_e flag) { + StoryflagManager::sInstance->setFlag(flag); + return; +} + +void dTgEventF_c::unsetStoryFlag(StoryFlags_e flag) { + StoryflagManager::sInstance->unsetFlag(flag); + return; +} + +int dTgEventF_c::actorExecute() { + if ((!checkStoryflagValid(p1_s19_0x7FF) || checkUncommitedStoryFlagValue(p1_s19_0x7FF))) { + if ((p1_s30_0x3 != 0 && !(checkStoryflagValid(p1_s8_0x7FF) && checkUncommitedStoryFlagValue(p1_s8_0x7FF))) || + (p1_s30_0x3 == 0 && checkStoryflagValid(p1_s8_0x7FF) && checkUncommitedStoryFlagValue(p1_s8_0x7FF))) { + if (checkIfVec3fInMatrix(mMatrix, dAcPy_c::LINK->mPosition)) { + Event EStack_48 = Event(mEventId, (int)mRoomID, 0x100001, 0, 0); + mActorEvent.scheduleEvent(EStack_48, 0); + } + } + } + return SUCCEEDED; +} +int dTgEventF_c::actorExecuteInEvent() { + int iVar1; + + // iVar1 = mActorEvent.isThisActorInEvent(); + if (mActorEvent.isThisActorInEvent()) { + mActorEvent.advanceNext(); + if (!(p1_s30_0x3 == 0 || !checkStoryflagValid(p1_s8_0x7FF) || checkUncommitedStoryFlagValue(p1_s8_0x7FF))) { + setStoryFlag((StoryFlags_e)p1_s8_0x7FF); + } else if ((p1_s30_0x3 == 0 && checkStoryflagValid(p1_s8_0x7FF)) && + checkUncommitedStoryFlagValue(p1_s8_0x7FF)) { + unsetStoryFlag((StoryFlags_e)p1_s8_0x7FF); + } + } + return SUCCEEDED; +} + +int dTgEventF_c::draw() { + return SUCCEEDED; +} From e854c82919d8395a17e2f3ade3b3114a2ad98904 Mon Sep 17 00:00:00 2001 From: MaxMotis Date: Mon, 9 Mar 2026 23:34:34 +0100 Subject: [PATCH 4/5] d_t_event_f OK --- include/d/t/d_t_event_f.h | 6 +++--- src/d/tg/d_t_event_f.cpp | 32 ++++++++++++++++---------------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/include/d/t/d_t_event_f.h b/include/d/t/d_t_event_f.h index 4cb092c0..024b29be 100644 --- a/include/d/t/d_t_event_f.h +++ b/include/d/t/d_t_event_f.h @@ -26,8 +26,8 @@ private: /* 0x0FC */ ActorEventRelated mActorEvent; /* 0x14C */ mMtx_c mMatrix; /* 0x17C */ u32 mEventId; - /* 0x180 */ u32 p1_s8_0x7FF; - /* 0x184 */ u32 p1_s19_0x7FF; - /* 0x188 */ u32 p1_s30_0x3; + /* 0x180 */ u32 mSetStoryflag; + /* 0x184 */ u32 mTrigStoryflag; + /* 0x188 */ u32 mSubtype; }; #endif diff --git a/src/d/tg/d_t_event_f.cpp b/src/d/tg/d_t_event_f.cpp index e5b81f52..c5840162 100644 --- a/src/d/tg/d_t_event_f.cpp +++ b/src/d/tg/d_t_event_f.cpp @@ -10,15 +10,15 @@ SPECIAL_ACTOR_PROFILE(EVENTF_TAG, dTgEventF_c, fProfile::EVENTF_TAG, 0X14, 0, 0) int dTgEventF_c::create() { matrixCreateFromPosRotYScale(mMatrix, mPosition, mRotation.y, mScale, 0x0, 0.0f); mEventId = getFromParams(0, 0xFF); - p1_s8_0x7FF = getFromParams(8, 0x7FF); - if ((s32)p1_s8_0x7FF == 0x3FF) { - p1_s8_0x7FF = 0xFFFFFFFF; + mSetStoryflag = getFromParams(8, 0x7FF); + if ((s32)mSetStoryflag == 0x3FF) { + mSetStoryflag = 0xFFFFFFFF; } - p1_s19_0x7FF = getFromParams(19, 0x7FF); - if ((s32)p1_s19_0x7FF == 0x3FF) { - p1_s19_0x7FF = 0xFFFFFFFF; + mTrigStoryflag = getFromParams(19, 0x7FF); + if ((s32)mTrigStoryflag == 0x3FF) { + mTrigStoryflag = 0xFFFFFFFF; } - p1_s30_0x3 = getFromParams(30, 0x3); + mSubtype = getFromParams(30, 0x3); return SUCCEEDED; } @@ -45,10 +45,10 @@ void dTgEventF_c::unsetStoryFlag(StoryFlags_e flag) { } int dTgEventF_c::actorExecute() { - if ((!checkStoryflagValid(p1_s19_0x7FF) || checkUncommitedStoryFlagValue(p1_s19_0x7FF))) { - if ((p1_s30_0x3 != 0 && !(checkStoryflagValid(p1_s8_0x7FF) && checkUncommitedStoryFlagValue(p1_s8_0x7FF))) || - (p1_s30_0x3 == 0 && checkStoryflagValid(p1_s8_0x7FF) && checkUncommitedStoryFlagValue(p1_s8_0x7FF))) { - if (checkIfVec3fInMatrix(mMatrix, dAcPy_c::LINK->mPosition)) { + if ((!checkStoryflagValid(mTrigStoryflag) || checkUncommitedStoryFlagValue(mTrigStoryflag))) { + if ((mSubtype != 0 && !(checkStoryflagValid(mSetStoryflag) && checkUncommitedStoryFlagValue(mSetStoryflag))) || + (mSubtype == 0 && checkStoryflagValid(mSetStoryflag) && checkUncommitedStoryFlagValue(mSetStoryflag))) { + if (checkAreaBox(mMatrix, dAcPy_c::LINK->mPosition)) { Event EStack_48 = Event(mEventId, (int)mRoomID, 0x100001, 0, 0); mActorEvent.scheduleEvent(EStack_48, 0); } @@ -62,11 +62,11 @@ int dTgEventF_c::actorExecuteInEvent() { // iVar1 = mActorEvent.isThisActorInEvent(); if (mActorEvent.isThisActorInEvent()) { mActorEvent.advanceNext(); - if (!(p1_s30_0x3 == 0 || !checkStoryflagValid(p1_s8_0x7FF) || checkUncommitedStoryFlagValue(p1_s8_0x7FF))) { - setStoryFlag((StoryFlags_e)p1_s8_0x7FF); - } else if ((p1_s30_0x3 == 0 && checkStoryflagValid(p1_s8_0x7FF)) && - checkUncommitedStoryFlagValue(p1_s8_0x7FF)) { - unsetStoryFlag((StoryFlags_e)p1_s8_0x7FF); + if (!(mSubtype == 0 || !checkStoryflagValid(mSetStoryflag) || checkUncommitedStoryFlagValue(mSetStoryflag))) { + setStoryFlag((StoryFlags_e)mSetStoryflag); + } else if ((mSubtype == 0 && checkStoryflagValid(mSetStoryflag)) && + checkUncommitedStoryFlagValue(mSetStoryflag)) { + unsetStoryFlag((StoryFlags_e)mSetStoryflag); } } return SUCCEEDED; From 8ed64a6656ae19a28f5f37f5828a3cf794325544 Mon Sep 17 00:00:00 2001 From: MaxMotis Date: Fri, 13 Mar 2026 11:18:13 +0100 Subject: [PATCH 5/5] cleanup remove unnecessary lines of code --- src/d/tg/d_t_event_f.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/d/tg/d_t_event_f.cpp b/src/d/tg/d_t_event_f.cpp index c5840162..3300eda0 100644 --- a/src/d/tg/d_t_event_f.cpp +++ b/src/d/tg/d_t_event_f.cpp @@ -5,7 +5,7 @@ #include "f/f_base.h" #include "toBeSorted/area_math.h" -SPECIAL_ACTOR_PROFILE(EVENTF_TAG, dTgEventF_c, fProfile::EVENTF_TAG, 0X14, 0, 0); +SPECIAL_ACTOR_PROFILE(EVENTF_TAG, dTgEventF_c, fProfile::EVENTF_TAG, 0x14, 0, 0); int dTgEventF_c::create() { matrixCreateFromPosRotYScale(mMatrix, mPosition, mRotation.y, mScale, 0x0, 0.0f); @@ -36,12 +36,10 @@ bool dTgEventF_c::checkUncommitedStoryFlagValue(u32 flag) { void dTgEventF_c::setStoryFlag(StoryFlags_e flag) { StoryflagManager::sInstance->setFlag(flag); - return; } void dTgEventF_c::unsetStoryFlag(StoryFlags_e flag) { StoryflagManager::sInstance->unsetFlag(flag); - return; } int dTgEventF_c::actorExecute() { @@ -57,9 +55,6 @@ int dTgEventF_c::actorExecute() { return SUCCEEDED; } int dTgEventF_c::actorExecuteInEvent() { - int iVar1; - - // iVar1 = mActorEvent.isThisActorInEvent(); if (mActorEvent.isThisActorInEvent()) { mActorEvent.advanceNext(); if (!(mSubtype == 0 || !checkStoryflagValid(mSetStoryflag) || checkUncommitedStoryFlagValue(mSetStoryflag))) {