ksys: Start adding MessageTransceiver

This commit is contained in:
Léo Lam
2021-01-29 18:57:38 +01:00
parent da6709ab83
commit 2e4ecb41cf
8 changed files with 108 additions and 34 deletions
+1 -1
View File
@@ -9,7 +9,7 @@
#include "KingSystem/ActorSystem/actAiClassDef.h"
#include "KingSystem/ActorSystem/actBaseProcLink.h"
#include "KingSystem/Utils/Thread/MessageTransceiver.h"
#include "KingSystem/Utils/Thread/MessageTransceiverId.h"
#include "KingSystem/Utils/Types.h"
namespace ksys {
+3
View File
@@ -9,7 +9,10 @@ target_sources(uking PRIVATE
Thread/ManagedTaskHandle.h
Thread/MessageDispatcherBase.cpp
Thread/MessageDispatcherBase.h
Thread/MessageTransceiver.cpp
Thread/MessageTransceiver.h
Thread/MessageTransceiverId.cpp
Thread/MessageTransceiverId.h
Thread/Task.cpp
Thread/Task.h
Thread/TaskData.h
@@ -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
@@ -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
@@ -2,34 +2,31 @@
#include <basis/seadTypes.h>
#include "KingSystem/Utils/Types.h"
namespace ksys {
struct MesTransceiverId {
MesTransceiverId() { reset(); }
~MesTransceiverId() { reset(); }
class MessageDispatcherBase;
struct MesTransceiverId;
void reset() {
_0 = -1;
_4 = -1;
_8 = nullptr;
_10 = nullptr;
}
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();
MesTransceiverId& operator=(const MesTransceiverId& other) {
_0 = other._0;
_4 = other._4;
_8 = other._8;
_10 = other._10;
return *this;
}
static void setGlobalDispatcher(MessageDispatcherBase* dispatcher);
s32 _0{};
s32 _4{};
void* _8{};
void* _10{};
private:
static MessageDispatcherBase* sDispatcher;
MessageDispatcherBase* mDispatcher = sDispatcher;
MesTransceiverId* mId{};
};
KSYS_CHECK_SIZE_NX150(MesTransceiverId, 0x18);
} // namespace ksys
@@ -0,0 +1 @@
#include "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