diff options
| author | Léo Lam <leo@leolam.fr> | 2021-01-29 18:57:38 +0100 |
|---|---|---|
| committer | Léo Lam <leo@leolam.fr> | 2021-01-29 19:20:48 +0100 |
| commit | 2e4ecb41cf244b1e07c78831be8b1cebeac9ac91 (patch) | |
| tree | 2440762f764a4c57437b7a9417af2add5061b045 /src/KingSystem/Utils/Thread | |
| parent | da6709ab83988b5f79f3d0995ed6c5eeaf2c8087 (diff) | |
ksys: Start adding MessageTransceiver
Diffstat (limited to 'src/KingSystem/Utils/Thread')
5 files changed, 97 insertions, 26 deletions
diff --git a/src/KingSystem/Utils/Thread/MessageDispatcherBase.cpp b/src/KingSystem/Utils/Thread/MessageDispatcherBase.cpp index 838e2a51..f5c8aa41 100644 --- a/src/KingSystem/Utils/Thread/MessageDispatcherBase.cpp +++ b/src/KingSystem/Utils/Thread/MessageDispatcherBase.cpp @@ -1,4 +1,5 @@ #include "KingSystem/Utils/Thread/MessageDispatcherBase.h" +#include "KingSystem/Utils/Thread/MessageTransceiver.h" namespace ksys { @@ -6,4 +7,8 @@ MessageDispatcherBase::MessageDispatcherBase() = default; MessageDispatcherBase::~MessageDispatcherBase() = default; +void MessageDispatcherBase::setAsGlobalInstance() { + MessageTransceiver::setGlobalDispatcher(this); +} + } // namespace ksys diff --git a/src/KingSystem/Utils/Thread/MessageTransceiver.cpp b/src/KingSystem/Utils/Thread/MessageTransceiver.cpp new file mode 100644 index 00000000..e5643150 --- /dev/null +++ b/src/KingSystem/Utils/Thread/MessageTransceiver.cpp @@ -0,0 +1,33 @@ +#include "KingSystem/Utils/Thread/MessageTransceiver.h" + +namespace ksys { + +MessageTransceiver::MessageTransceiver() = default; + +MessageTransceiver::~MessageTransceiver() = default; + +bool MessageTransceiver::m2() { + return false; +} + +bool MessageTransceiver::m3() { + return false; +} + +bool MessageTransceiver::m4() { + return false; +} + +bool MessageTransceiver::m5() { + return false; +} + +MessageDispatcherBase* MessageTransceiver::getDispatcher() { + return mDispatcher; +} + +void MessageTransceiver::setGlobalDispatcher(MessageDispatcherBase* dispatcher) { + sDispatcher = dispatcher; +} + +} // namespace ksys diff --git a/src/KingSystem/Utils/Thread/MessageTransceiver.h b/src/KingSystem/Utils/Thread/MessageTransceiver.h index f071483e..6d130120 100644 --- a/src/KingSystem/Utils/Thread/MessageTransceiver.h +++ b/src/KingSystem/Utils/Thread/MessageTransceiver.h @@ -2,34 +2,31 @@ #include <basis/seadTypes.h> -#include "KingSystem/Utils/Types.h" - namespace ksys { -struct MesTransceiverId { - MesTransceiverId() { reset(); } - ~MesTransceiverId() { reset(); } - - void reset() { - _0 = -1; - _4 = -1; - _8 = nullptr; - _10 = nullptr; - } - - MesTransceiverId& operator=(const MesTransceiverId& other) { - _0 = other._0; - _4 = other._4; - _8 = other._8; - _10 = other._10; - return *this; - } - - s32 _0{}; - s32 _4{}; - void* _8{}; - void* _10{}; +class MessageDispatcherBase; +struct MesTransceiverId; + +class MessageTransceiver { +public: + MessageTransceiver(); + virtual ~MessageTransceiver(); + bool checkX(); + bool checkY(); + virtual bool m2(); + virtual bool m3(); + virtual bool m4(); + virtual bool m5(); + virtual void* getSomePtr() = 0; + MessageDispatcherBase* getDispatcher(); + + static void setGlobalDispatcher(MessageDispatcherBase* dispatcher); + +private: + static MessageDispatcherBase* sDispatcher; + + MessageDispatcherBase* mDispatcher = sDispatcher; + MesTransceiverId* mId{}; }; -KSYS_CHECK_SIZE_NX150(MesTransceiverId, 0x18); } // namespace ksys diff --git a/src/KingSystem/Utils/Thread/MessageTransceiverId.cpp b/src/KingSystem/Utils/Thread/MessageTransceiverId.cpp new file mode 100644 index 00000000..0d768e1f --- /dev/null +++ b/src/KingSystem/Utils/Thread/MessageTransceiverId.cpp @@ -0,0 +1 @@ +#include "KingSystem/Utils/Thread/MessageTransceiverId.h" diff --git a/src/KingSystem/Utils/Thread/MessageTransceiverId.h b/src/KingSystem/Utils/Thread/MessageTransceiverId.h new file mode 100644 index 00000000..f071483e --- /dev/null +++ b/src/KingSystem/Utils/Thread/MessageTransceiverId.h @@ -0,0 +1,35 @@ +#pragma once + +#include <basis/seadTypes.h> + +#include "KingSystem/Utils/Types.h" + +namespace ksys { + +struct MesTransceiverId { + MesTransceiverId() { reset(); } + ~MesTransceiverId() { reset(); } + + void reset() { + _0 = -1; + _4 = -1; + _8 = nullptr; + _10 = nullptr; + } + + MesTransceiverId& operator=(const MesTransceiverId& other) { + _0 = other._0; + _4 = other._4; + _8 = other._8; + _10 = other._10; + return *this; + } + + s32 _0{}; + s32 _4{}; + void* _8{}; + void* _10{}; +}; +KSYS_CHECK_SIZE_NX150(MesTransceiverId, 0x18); + +} // namespace ksys |
