Skip to content

Commit ce47b10

Browse files
PistonMinerZephiles
authored andcommitted
Update header and symbols for evtmgr.h
1 parent e58d7ce commit ce47b10

File tree

10 files changed

+194
-109
lines changed

10 files changed

+194
-109
lines changed

ttyd-tools/rel/include/global.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -579,7 +579,7 @@ struct MarioPartnerPositionsStruct
579579

580580
struct SaveAnywhereStruct
581581
{
582-
uint32_t ThreadID;
582+
int32_t ThreadID;
583583
bool ScriptIsRunning;
584584
};
585585

ttyd-tools/rel/include/mod.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#pragma once
22

33
#include <gc/OSModule.h>
4+
#include <ttyd/evtmgr.h>
45
#include <ttyd/dispdrv.h>
56
#include <ttyd/battle_unit.h>
67

@@ -23,7 +24,7 @@ class Mod
2324
int32_t preventMenuSounds(int32_t, uint32_t, uint32_t, uint32_t);
2425
const char *getCustomMessage(const char *);
2526
uint32_t pauseArtAttackTimer();
26-
uint32_t setIndexWarpEntrance(void *, uint32_t);
27+
uint32_t setIndexWarpEntrance(ttyd::evtmgr::EvtEntry *, uint32_t);
2728
int32_t fixMarioKeyOn();
2829
bool performRelPatches(gc::OSModule::OSModuleInfo *, void *);
2930
void *disableBattles(uint32_t, void *);
@@ -42,7 +43,7 @@ class Mod
4243

4344
const char *(*mPFN_msgSearch_trampoline)(const char *) = nullptr;
4445
uint32_t (*mPFN_scissor_timer_main_trampoline)() = nullptr;
45-
uint32_t (*mPFN_evt_bero_get_info_trampoline)(void *, uint32_t) = nullptr;
46+
uint32_t (*mPFN_evt_bero_get_info_trampoline)(ttyd::evtmgr::EvtEntry *, uint32_t) = nullptr;
4647
int32_t (*mPFN_marioKeyOn_trampoline)() = nullptr;
4748
bool (*mPFN_OSLink_trampoline)(gc::OSModule::OSModuleInfo *, void *) = nullptr;
4849
void *(*mPFN_fbatHitCheck_trampoline)(uint32_t, void *) = nullptr;

ttyd-tools/rel/include/ttyd.eu.lst

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -328,31 +328,31 @@
328328
80421A20:smartWorkPointer
329329

330330
// evtmgr.o
331-
// 80035B10:evtGetPtrID
332-
// 80035B70:evtGetPtr
333-
// 80035BAC:evtStartOther
334-
// 80035C34:evtStopOther
335-
// 80035CBC:evtStartAll
336-
// 80035D50:evtStopAll
337-
// 80035DE4:evtStartID
338-
// 80035E84:evtStopID
339-
// 80035F24:evtStart
340-
// 800362F8:evtStop
341-
// 800366CC:evtSetType
342-
// 800366D4:evtSetSpeed
343-
// 800366E4:evtSetPri
331+
80035B10:evtGetPtrID
332+
80035B70:evtGetPtr
333+
80035BAC:evtStartOther
334+
80035C34:evtStopOther
335+
80035CBC:evtStartAll
336+
80035D50:evtStopAll
337+
80035DE4:evtStartID
338+
80035E84:evtStopID
339+
80035F24:evtStart
340+
800362F8:evtStop
341+
800366CC:evtSetType
342+
800366D4:evtSetSpeed
343+
800366E4:evtSetPri
344344
800366EC:evtCheckID
345-
// 8003674C:evtDeleteID
346-
// 800367E8:evtDelete
347-
// 800369B8:evtmgrMain
348-
// 80036BA4:evtRestart
349-
// 80036CEC:evtBrotherEntry
350-
// 80036FD4:evtChildEntry
345+
8003674C:evtDeleteID
346+
800367E8:evtDelete
347+
800369B8:evtmgrMain
348+
80036BA4:evtRestart
349+
80036CEC:evtBrotherEntry
350+
80036FD4:evtChildEntry
351351
80037308:evtEntryType
352352
80037594:evtEntry
353353
// 80037820:evtEntryRunCheck
354-
// 80037898:evtmgrReInit
355-
// 80037904:evtmgrInit
354+
80037898:evtmgrReInit
355+
80037904:evtmgrInit
356356
// 80037A1C:make_pri_table
357357
80037B48:evtGetWork
358358

ttyd-tools/rel/include/ttyd.jp.lst

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -328,31 +328,31 @@
328328
8040F508:smartWorkPointer
329329

330330
// evtmgr.o
331-
// 8003538C:evtGetPtrID
332-
// 800353EC:evtGetPtr
333-
// 80035428:evtStartOther
334-
// 800354B0:evtStopOther
335-
// 80035538:evtStartAll
336-
// 800355CC:evtStopAll
337-
// 80035660:evtStartID
338-
// 80035700:evtStopID
339-
// 800357A0:evtStart
340-
// 80035B74:evtStop
341-
// 80035F48:evtSetType
342-
// 80035F50:evtSetSpeed
343-
// 80035F60:evtSetPri
331+
8003538C:evtGetPtrID
332+
800353EC:evtGetPtr
333+
80035428:evtStartOther
334+
800354B0:evtStopOther
335+
80035538:evtStartAll
336+
800355CC:evtStopAll
337+
80035660:evtStartID
338+
80035700:evtStopID
339+
800357A0:evtStart
340+
80035B74:evtStop
341+
80035F48:evtSetType
342+
80035F50:evtSetSpeed
343+
80035F60:evtSetPri
344344
80035F68:evtCheckID
345-
// 80035FC8:evtDeleteID
346-
// 80036064:evtDelete
347-
// 80036234:evtmgrMain
348-
// 80036420:evtRestart
349-
// 80036568:evtBrotherEntry
350-
// 80036850:evtChildEntry
345+
80035FC8:evtDeleteID
346+
80036064:evtDelete
347+
80036234:evtmgrMain
348+
80036420:evtRestart
349+
80036568:evtBrotherEntry
350+
80036850:evtChildEntry
351351
80036B84:evtEntryType
352352
80036E10:evtEntry
353353
// 8003709C:evtEntryRunCheck
354-
// 80037114:evtmgrReInit
355-
// 80037180:evtmgrInit
354+
80037114:evtmgrReInit
355+
80037180:evtmgrInit
356356
// 80037298:make_pri_table
357357
800373C4:evtGetWork
358358

ttyd-tools/rel/include/ttyd.us.lst

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -328,31 +328,31 @@
328328
804151E0:smartWorkPointer
329329

330330
// evtmgr.o
331-
// 80035A28:evtGetPtrID
332-
// 80035A88:evtGetPtr
333-
// 80035AC4:evtStartOther
334-
// 80035B4C:evtStopOther
335-
// 80035BD4:evtStartAll
336-
// 80035C68:evtStopAll
337-
// 80035CFC:evtStartID
338-
// 80035D9C:evtStopID
339-
// 80035E3C:evtStart
340-
// 80036210:evtStop
341-
// 800365E4:evtSetType
342-
// 800365EC:evtSetSpeed
343-
// 800365FC:evtSetPri
331+
80035A28:evtGetPtrID
332+
80035A88:evtGetPtr
333+
80035AC4:evtStartOther
334+
80035B4C:evtStopOther
335+
80035BD4:evtStartAll
336+
80035C68:evtStopAll
337+
80035CFC:evtStartID
338+
80035D9C:evtStopID
339+
80035E3C:evtStart
340+
80036210:evtStop
341+
800365E4:evtSetType
342+
800365EC:evtSetSpeed
343+
800365FC:evtSetPri
344344
80036604:evtCheckID
345-
// 80036664:evtDeleteID
346-
// 80036700:evtDelete
347-
// 800368D0:evtmgrMain
348-
// 80036ABC:evtRestart
349-
// 80036C04:evtBrotherEntry
350-
// 80036EEC:evtChildEntry
345+
80036664:evtDeleteID
346+
80036700:evtDelete
347+
800368D0:evtmgrMain
348+
80036ABC:evtRestart
349+
80036C04:evtBrotherEntry
350+
80036EEC:evtChildEntry
351351
80037220:evtEntryType
352352
800374AC:evtEntry
353353
// 80037738:evtEntryRunCheck
354-
// 800377B0:evtmgrReInit
355-
// 8003781C:evtmgrInit
354+
800377B0:evtmgrReInit
355+
8003781C:evtmgrInit
356356
// 80037934:make_pri_table
357357
80037A60:evtGetWork
358358

ttyd-tools/rel/include/ttyd/evt_bero.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#pragma once
22

3+
#include <ttyd/evtmgr.h>
4+
35
#include <cstdint>
46

57
namespace ttyd::evt_bero {
@@ -31,7 +33,7 @@ extern "C" {
3133
// evt_bero_id_filter
3234
// evt_bero_read_mario_pera
3335
// evt_bero_get_into_info
34-
uint32_t evt_bero_get_info(void *event, uint32_t waitMode);
36+
uint32_t evt_bero_get_info(ttyd::evtmgr::EvtEntry *evt, uint32_t waitMode);
3537
// evt_bero_get_now_number
3638
// evt_bero_set_now_number
3739
// evt_bero_get_info_nextarea

ttyd-tools/rel/include/ttyd/evt_sub.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
#pragma once
22

3+
#include <ttyd/evtmgr.h>
4+
35
#include <cstdint>
46

57
namespace ttyd::evt_sub {
@@ -8,7 +10,7 @@ extern "C" {
810

911
// mail_evt_gor_04_keyoff_check
1012
// irai_mail_check
11-
uint32_t evt_sub_check_intersect(void *event);
13+
uint32_t evt_sub_check_intersect(ttyd::evtmgr::EvtEntry *evt);
1214
// bgm_start_wait
1315
// get_stop
1416
// set_stop

ttyd-tools/rel/include/ttyd/evtmgr.h

Lines changed: 110 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -4,46 +4,126 @@
44

55
namespace ttyd::evtmgr {
66

7+
struct EvtEntry;
8+
9+
struct EvtEntry
10+
{
11+
int64_t timeSinceStart;
12+
uint8_t flags;
13+
int8_t paramCount;
14+
uint8_t opcode;
15+
int8_t executionOrder;
16+
uint8_t typeMask;
17+
bool sleeping;
18+
uint8_t loopStackIndex;
19+
uint8_t switchStackIndex;
20+
int8_t wNpcEventType;
21+
uint8_t pad_10[3];
22+
int32_t nextCommandPtr;
23+
void *currentCommandArguments;
24+
int8_t labelIdTable[16];
25+
void *labelAddressTable[16];
26+
EvtEntry *waitingEvt;
27+
EvtEntry *waitingOnEvt;
28+
EvtEntry *parentEvt;
29+
int32_t sleepTimeMs;
30+
int64_t sleepStartTime;
31+
int32_t wInterpolationStartedNpcFlag;
32+
int64_t wInterpRelatedTime;
33+
int32_t unk_90;
34+
int32_t unk_94;
35+
int32_t currentSleepingFuncPtr;
36+
int32_t lwData[16];
37+
uint32_t lfData;
38+
int32_t unk_e0;
39+
int32_t unk_e4;
40+
void *loopStartAddressStack[8];
41+
int32_t loopIterationsLeftStack[8];
42+
int8_t switchStateStack[8];
43+
int32_t switchValueStack[8];
44+
void* memoryCmdBase;
45+
void *uwBase;
46+
void *ufBase;
47+
int32_t threadId;
48+
void *wActorThisPtr;
49+
float timescale;
50+
int32_t timeScheduledToRun;
51+
int32_t unk_16c;
52+
void *wThisPtr;
53+
void *wThisObjPtr;
54+
int32_t wActiveMsgWindowId;
55+
int32_t unk_17c;
56+
int32_t unk_180;
57+
int32_t unk_184;
58+
int32_t unk_188;
59+
int32_t unk_18c;
60+
int32_t msgPriority;
61+
int32_t unk_194;
62+
int64_t wInterpolationStartTime2;
63+
void *restartFromLocation;
64+
char *name;
65+
void *wCurrentCommandPtr;
66+
int32_t unk_1ac;
67+
} __attribute__((__packed__));
68+
69+
static_assert(sizeof(EvtEntry) == 0x1B0);
70+
771
struct EvtWork
872
{
9-
uint32_t maxEventCount;
73+
int32_t entryCount;
1074
uint32_t gwData[32];
1175
uint32_t gfData[3]; // 96 flags total
12-
void *pContextBuffer; // EvtContext *pContextBuffer;
13-
uint32_t unk_94;
14-
uint64_t currentEventTime;
76+
EvtEntry *entries;
77+
uint32_t pad_94;
78+
int64_t currentEvtTime;
1579
} __attribute__((__packed__));
1680

81+
static_assert(sizeof(EvtWork) == 0xA0);
82+
1783
extern "C" {
1884

19-
// evtGetPtrID
20-
// evtGetPtr
21-
// evtStartOther
22-
// evtStopOther
23-
// evtStartAll
24-
// evtStopAll
25-
// evtStartID
26-
// evtStopID
27-
// evtStart
28-
// evtStop
29-
// evtSetType
30-
// evtSetSpeed
31-
// evtSetPri
32-
bool evtCheckID(uint32_t threadID);
33-
// evtDeleteID
34-
// evtDelete
35-
// evtmgrMain
36-
// evtRestart
37-
// evtBrotherEntry
38-
// evtChildEntry
39-
void *evtEntryType(void *event, uint8_t priority, uint32_t flags, uint32_t type);
40-
void *evtEntry(void *event, uint8_t priority, uint32_t flags);
41-
// evtEntryRunCheck
42-
// evtmgrReInit
43-
// evtmgrInit
44-
// make_pri_table
85+
void evtmgrInit();
86+
void evtmgrReInit();
87+
void evtmgrMain();
88+
4589
EvtWork *evtGetWork();
4690

91+
EvtEntry *evtEntry(void *evtCode, int32_t executionOrder, uint32_t flags);
92+
EvtEntry *evtEntryType(void *evtCode, int8_t priority, uint32_t flags, uint32_t types);
93+
EvtEntry *evtChildEntry(EvtEntry *parentEvt, void *evtCode, uint32_t flags);
94+
EvtEntry *evtBrotherEntry(EvtEntry *parentEvt, void *evtCode, uint32_t flags);
95+
EvtEntry *evtRestart(EvtEntry *evt);
96+
void evtDelete(EvtEntry *evt);
97+
void evtDeleteID(int32_t threadId);
98+
bool evtCheckID(int32_t threadId);
99+
void evtSetPri(EvtEntry *evt, int32_t priority);
100+
void evtSetSpeed(EvtEntry *evt, float timescale);
101+
void evtSetType(EvtEntry *evt, uint8_t typeMask);
102+
void evtStop(EvtEntry *evt, uint8_t typeMask);
103+
void evtStart(EvtEntry *evt, uint8_t typeMask);
104+
void evtStopID(int32_t threadId);
105+
void evtStartID(int32_t threadId);
106+
void evtStopAll(uint8_t typeMask);
107+
void evtStartAll(uint8_t typeMask);
108+
void evtStopOther(EvtEntry *evt, uint8_t typeMask);
109+
void evtStartOther(EvtEntry *evt, uint8_t typeMask);
110+
EvtEntry *evtGetPtr(int32_t index);
111+
EvtEntry *evtGetPtrID(int32_t threadId);
112+
113+
// Local functions
114+
// void make_pri_table();
115+
// void evtEntryRunCheck(EvtEntry *evt);
116+
47117
}
48118

119+
#define EVT_DECLARE_USER_FUNC(name, parameter_count) \
120+
constexpr int name##_parameter_count = (parameter_count); \
121+
int32_t name(ttyd::evtmgr::EvtEntry *evt, bool isFirstCall);
122+
123+
#define EVT_DEFINE_USER_FUNC(name) \
124+
int32_t name(ttyd::evtmgr::EvtEntry *evt, bool isFirstCall)
125+
126+
#define EVT_DECLARE(name) \
127+
extern const int32_t name[];
128+
49129
}

0 commit comments

Comments
 (0)