Files
dusklight/include/JSystem/JHostIO/JORReflexible.h
T
Huitzi 726e27cf98 d_event_debug equivalent & modifications to dEvLib_callback_c (#2359)
* WIP d_event_debug
* Implemented most functions close to matching
* Removed erroneous comment in d_com_inf_game.h
* Implemented getEventP in dEvDtBase_c
* Retyped dEvLib_callback_c function returns from BOOL to bool
* Implemented getHeader, getEventList, and setDbgData in dEvent_manager_c
* Moved relevant dEvDb_* classes from d_event.h to d_event_debug.h and changed to structs
* Extended JORFile mFilename character array from 8 to 256 characters
* Implemented combo boxes and update slider functionalities in JORMContext
* Named field_0xC of JORProperyEvent as id, based on use of field in d_event_debug.cpp
* Corrected debug event tables and created missing table
* Debug tables explicitly pasted in d_event_debug.cpp to circumvent ShiftJIS not properly encoding tables via #include directive

* Change return types for implemented virtual functions of actors that inherit from dEvLib_callback_c

* Add const modifier to several d_com_inf_game functions called in d_event_debug, and change respective fields in dEvDb_bit & reg_c to be const

* d_event_debug Equivalent
* Changed configure.py entry to equivalent instead of matching
* Preliminary documentation

* Remove debug tables from d_event.cpp
2025-03-30 20:11:50 -07:00

58 lines
1.2 KiB
C++

#ifndef JORREFLEXIBLE_H
#define JORREFLEXIBLE_H
#include <dolphin/types.h>
class JORReflexible;
struct JOREvent {};
struct JORPropertyEvent : JOREvent {
enum EKind {
EKind_HasListener = (1 << 30),
EKind_ValueID = (1 << 29),
EKind_FloatValue = (1 << 9),
};
/* 0x00 */ u8 field_0x0[0x4 - 0x0];
/* 0x04 */ u32 type;
/* 0x08 */ u32 kind;
/* 0x0C */ char* id; // id?
/* 0x10 */ JORReflexible* field_0x10; // ?
/* 0x14 */ u32 field_0x14;
union {
u32 U32;
u16 U16[2];
}
/* 0x18 */ field_0x18;
};
struct JORGenEvent : JOREvent {};
struct JORNodeEvent : JOREvent {};
struct JORMContext;
struct JORServer;
class JOREventListener {
public:
#ifdef DEBUG
virtual void listenPropertyEvent(const JORPropertyEvent*) = 0;
#endif
};
class JORReflexible : public JOREventListener {
public:
#ifdef DEBUG
JORReflexible();
static JORServer* getJORServer();
virtual void listenPropertyEvent(const JORPropertyEvent*);
virtual void listen(u32, const JOREvent*);
virtual void genObjectInfo(const JORGenEvent*);
virtual void genMessage(JORMContext*) = 0;
virtual void listenNodeEvent(const JORNodeEvent*);
#endif
};
#endif /* JORREFLEXIBLE_H */