From 419097a1923e49258c1586d47dc2c76ba1a2c54d Mon Sep 17 00:00:00 2001 From: robojumper Date: Sat, 25 May 2024 14:04:37 +0200 Subject: [PATCH] Event RAII --- config/SOUE01/splits.txt | 2 +- config/SOUE01/symbols.txt | 6 +++--- include/toBeSorted/event.h | 2 ++ src/d/a/d_a_base.cpp | 5 ++--- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt index 12e7156d..ba439c09 100644 --- a/config/SOUE01/splits.txt +++ b/config/SOUE01/splits.txt @@ -29,7 +29,7 @@ toBeSorted/save_manager.cpp: d/a/d_a_base.cpp: .text start:0x8002C3A0 end:0x8002DE40 - .data start:0x80501544 end:0x805015B8 + .data start:0x80501538 end:0x805015B8 .sdata start:0x80571920 end:0x80571930 .sbss start:0x80575080 end:0x80575098 .sdata2 start:0x80576C88 end:0x80576C8C diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index dfe6eb41..66176267 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -3562,7 +3562,7 @@ fn_8009EB10 = .text:0x8009EB10; // type:function size:0xC fn_8009EB20 = .text:0x8009EB20; // type:function size:0x8 fn_8009EB30 = .text:0x8009EB30; // type:function size:0x36C fn_8009EEA0 = .text:0x8009EEA0; // type:function size:0x53C -fn_8009F3E0 = .text:0x8009F3E0; // type:function size:0x470 +alsoSetAsCurrentEvent = .text:0x8009F3E0; // type:function size:0x470 fn_8009F850 = .text:0x8009F850; // type:function size:0x134 fn_8009F990 = .text:0x8009F990; // type:function size:0x80 fn_8009FA10 = .text:0x8009FA10; // type:function size:0x8 @@ -3596,11 +3596,11 @@ fn_800A09B0 = .text:0x800A09B0; // type:function size:0x1D0 fn_800A0B80 = .text:0x800A0B80; // type:function size:0x10 fn_800A0B90 = .text:0x800A0B90; // type:function size:0x10 fn_800A0BA0 = .text:0x800A0BA0; // type:function size:0x94 -fn_800A0C40 = .text:0x800A0C40; // type:function size:0xEC +__ct__5EventFPcUlUlPvPv = .text:0x800A0C40; // type:function size:0xEC fn_800A0D30 = .text:0x800A0D30; // type:function size:0xEC fn_800A0E20 = .text:0x800A0E20; // type:function size:0x208 fn_800A1030 = .text:0x800A1030; // type:function size:0x208 -fn_800A1240 = .text:0x800A1240; // type:function size:0x40 +__dt__5EventFv = .text:0x800A1240; // type:function size:0x40 fn_800A1280 = .text:0x800A1280; // type:function size:0x2E4 fn_800A1570 = .text:0x800A1570; // type:function size:0x84 fn_800A1600 = .text:0x800A1600; // type:function size:0x5C diff --git a/include/toBeSorted/event.h b/include/toBeSorted/event.h index 0260693c..e87958a2 100644 --- a/include/toBeSorted/event.h +++ b/include/toBeSorted/event.h @@ -15,7 +15,9 @@ public: void *callback2; public: + /** 0x800A0C40 */ Event(char *eventName, u32 unk, u32 eventFlags, void *callback1, void *callback2); + /** 0x800A1240 */ virtual ~Event(); }; diff --git a/src/d/a/d_a_base.cpp b/src/d/a/d_a_base.cpp index 51e2096f..2f74cb93 100644 --- a/src/d/a/d_a_base.cpp +++ b/src/d/a/d_a_base.cpp @@ -552,9 +552,8 @@ void dAcBase_c::unkVirtFunc_0x6C() {} // 8002dba0 void dAcBase_c::doInteraction(s32 param) { if (param == 4 || param == 5 || param == 12) { - Event *event = &Event("DefaultTalk", 400, 0x100001, nullptr, nullptr); - alsoSetAsCurrentEvent(this, event, nullptr); - event->~Event(); + Event event = Event("DefaultTalk", 400, 0x100001, nullptr, nullptr); + alsoSetAsCurrentEvent(this, &event, nullptr); } }