diff options
| author | LagoLunatic <LagoLunatic@users.noreply.github.com> | 2024-03-04 18:28:09 -0500 |
|---|---|---|
| committer | LagoLunatic <LagoLunatic@users.noreply.github.com> | 2024-03-04 18:28:09 -0500 |
| commit | cddc3efdcd2d199732caa275584e0ef714fe41f7 (patch) | |
| tree | 06d0bbb005673ee826678f546bad8c7422c461d2 /src/JSystem/JStudio/JStudio_JMessage/control.cpp | |
| parent | 47f60f27333873609a15e5e60cf112da4d0a1559 (diff) | |
Started copying JStudio progress from pikmin2
Diffstat (limited to 'src/JSystem/JStudio/JStudio_JMessage/control.cpp')
| -rw-r--r-- | src/JSystem/JStudio/JStudio_JMessage/control.cpp | 67 |
1 files changed, 56 insertions, 11 deletions
diff --git a/src/JSystem/JStudio/JStudio_JMessage/control.cpp b/src/JSystem/JStudio/JStudio_JMessage/control.cpp index 12d7277c..eab317f3 100644 --- a/src/JSystem/JStudio/JStudio_JMessage/control.cpp +++ b/src/JSystem/JStudio/JStudio_JMessage/control.cpp @@ -3,27 +3,72 @@ // Translation Unit: control.cpp // -#include "control.h" +#include "JSystem/JStudio/JStudio_JMessage/control.h" #include "dolphin/types.h" +namespace JStudio_JMessage { -/* 8027A4A8-8027A508 .text __dt__Q216JStudio_JMessage18TCreateObject_baseFv */ -JStudio_JMessage::TCreateObject_base::~TCreateObject_base() { - /* Nonmatching */ +namespace { + +// Fake inline. +// TODO: supposed to use JStudio::TObject::createFromAdaptor instead of this somehow +inline JStudio::TObject_message* message_creator(const JStudio::stb::data::TParse_TBlock_object& data, + TAdaptor_message* adaptor) +{ + JStudio::TObject_message* object = new JStudio::TObject_message(data, adaptor); + + if (!object) { + return NULL; + } + if (object->mpAdaptor) { + object->mpAdaptor->adaptor_do_prepare(object); + } + return object; } +/* 8027A3F4-8027A4A8 .text createObject_MESSAGE_JMS___Q216JStudio_JMessage21@unnamed@control_cpp@FRCQ47JStudio3stb4data20TParse_TBlock_objectPQ28JMessage8TControl */ +JStudio::TObject_message* createObject_MESSAGE_JMS_(const JStudio::stb::data::TParse_TBlock_object& data, JMessage::TControl* system) +{ + TAdaptor_message* adaptor = new TAdaptor_message(system); + if (!adaptor) { + return NULL; + } + + return message_creator(data, adaptor); +} + +} // namespace + +/* 8027A4A8-8027A508 .text __dt__Q216JStudio_JMessage18TCreateObject_baseFv */ +TCreateObject_base::~TCreateObject_base() {} + /* 8027A508-8027A5AC .text create__Q216JStudio_JMessage18TCreateObject_baseFPPQ27JStudio7TObjectRCQ47JStudio3stb4data20TParse_TBlock_object */ -void JStudio_JMessage::TCreateObject_base::create(JStudio::TObject**, const JStudio::stb::data::TParse_TBlock_object&) { - /* Nonmatching */ +bool TCreateObject_base::create(JStudio::TObject** newObject, const JStudio::stb::data::TParse_TBlock_object& data) { + JStudio::TObject_message* (*func)(const JStudio::stb::data::TParse_TBlock_object&, JMessage::TControl*); + switch (data.get()->type) { + case 'JMSG': + func = &createObject_MESSAGE_JMS_; + break; + default: + return false; + } + + JMessage::TControl* system = find(data); + + if (!system) { + return false; + } + + *newObject = func(data, system); + return true; } /* 8027A5AC-8027A60C .text __dt__Q216JStudio_JMessage13TCreateObjectFv */ -JStudio_JMessage::TCreateObject::~TCreateObject() { - /* Nonmatching */ -} +TCreateObject::~TCreateObject() {} /* 8027A60C-8027A614 .text find__Q216JStudio_JMessage13TCreateObjectFRCQ47JStudio3stb4data20TParse_TBlock_object */ -void JStudio_JMessage::TCreateObject::find(const JStudio::stb::data::TParse_TBlock_object&) { - /* Nonmatching */ +JMessage::TControl* TCreateObject::find(const JStudio::stb::data::TParse_TBlock_object&) { + return mControl; } +} // namespace JStudio_JMessage |
