diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2025-05-28 04:04:30 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-28 14:04:30 +0300 |
| commit | e8e36445ba150456fc590c5e1a727e6c4dabc280 (patch) | |
| tree | 8ab207655d0673ffd2aca94ef92c5b78f07aa29a /src/JSystem/JMessage/resource.cpp | |
| parent | 9a98863aff1abdfb4cd48a26a8dc0a2819b1fe47 (diff) | |
cleanup d_meter2_info / little JMessage work (#2460)
* d_meter2_info cleanup
* parseBlock_next matching
Diffstat (limited to 'src/JSystem/JMessage/resource.cpp')
| -rw-r--r-- | src/JSystem/JMessage/resource.cpp | 70 |
1 files changed, 68 insertions, 2 deletions
diff --git a/src/JSystem/JMessage/resource.cpp b/src/JSystem/JMessage/resource.cpp index 8de8effe4c..0b0faafe99 100644 --- a/src/JSystem/JMessage/resource.cpp +++ b/src/JSystem/JMessage/resource.cpp @@ -5,6 +5,7 @@ #include "JSystem/JMessage/resource.h" #include "JSystem/JGadget/search.h" +#include "JSystem/JGadget/define.h" #include <algorithm.h> #include "string.h" @@ -205,8 +206,73 @@ bool JMessage::TParse::parseHeader_next(void const** ppData_inout, u32* puBlock_ /* 802A92F4-802A9490 2A3C34 019C+00 1/0 0/0 0/0 .text * parseBlock_next__Q28JMessage6TParseFPPCvPUlUl */ -bool JMessage::TParse::parseBlock_next(void const** param_0, u32* param_1, u32 param_2) { - // NONMATCHING +bool JMessage::TParse::parseBlock_next(void const** ppData_inout, u32* puData_out, u32 param_2) { + JUT_ASSERT(401, ppData_inout!=0); + JUT_ASSERT(402, puData_out!=0); + + const void* pData = *ppData_inout; + JUT_ASSERT(404, pData!=0); + + data::TParse_TBlock sp34(pData); + + *ppData_inout = sp34.getNext(); + *puData_out = sp34.get_size(); + + TResourceContainer::TCResource& rcResource = pContainer_->resContainer_; + JUT_ASSERT(412, pResource_==&*--(rcResource.end())); + + u32 sp30 = sp34.get_type(); + switch (sp30) { + case 'INF1': + pResource_->setData_block_info(pData); + break; + case 'FLI1': + break; + case 'FLW1': + break; + case 'DAT1': + pResource_->setData_block_messageText(pData); + u16 temp_r26 = pResource_->getGroupID(); + + if (param_2 & 0x80) { + JGadget::TLinkList<JMessage::TResource, 0>::iterator sp2C(rcResource.begin()); + JMessage::TResource* sp28; + while ((sp28 = &*sp2C) != pResource_) { + if ((u16)temp_r26 != sp28->getGroupID()) { + ++sp2C; + } else { + sp2C = rcResource.Erase_destroy(sp28); + } + } + } else { + #ifdef DEBUG + JMessage::TResource* sp24 = rcResource.Get_groupID(temp_r26); + if (sp24 != pResource_) { + JGadget_outMessage sp148(JGadget_outMessage::warning, __FILE__, 444); + sp148 << "group-ID already exist : " << temp_r26; + } + #endif + } + break; + case 'STR1': + pResource_->setData_block_stringAttribute(pData); + break; + case 'MID1': + pResource_->setData_block_messageID(pData); + break; + default: + #ifdef DEBUG + JGadget_outMessage sp148(JGadget_outMessage::warning, __FILE__, 463); + sp148 << "unknown block : " << sp30; + #endif + + if (!(param_2 & 0x40)) { + return 0; + } + break; + } + + return 1; } /* 802A9490-802A94A8 2A3DD0 0018+00 1/0 0/0 0/0 .text |
