Files
tp/include/JSystem/JMessage/control.h
T

95 lines
2.9 KiB
C++
Raw Normal View History

#ifndef JMESSAGE_CONTROL_H
#define JMESSAGE_CONTROL_H
2021-03-28 22:49:05 +02:00
#include "JSystem/JMessage/processor.h"
2021-03-28 22:49:05 +02:00
2022-03-15 02:25:25 -07:00
namespace JMessage {
2024-04-12 00:10:30 -06:00
/**
* @ingroup jsystem-jmessage
*
*/
2022-03-15 02:35:30 -07:00
struct TControl {
/* 802A7548 */ TControl();
/* 802A758C */ virtual ~TControl();
2022-03-15 02:35:30 -07:00
/* 802A75D4 */ void reset();
2023-02-19 09:40:57 -08:00
/* 802A7634 */ int update();
2022-03-15 02:35:30 -07:00
/* 802A76BC */ void render();
2023-02-19 09:40:57 -08:00
/* 802A77E8 */ int setMessageCode(u16, u16);
/* 802A78F4 */ int setMessageID(u32, u32, bool*);
/* 802A7A20 */ bool setMessageCode_inSequence_(JMessage::TProcessor const*, u16, u16);
bool isReady_update_() const { return pMessageText_begin_ != 0 && pSequenceProcessor_ != NULL; }
bool isReady_render_() const { return field_0x20 != 0 && pRenderingProcessor_ != NULL; }
TProcessor* getProcessor() const {
return pSequenceProcessor_ != NULL ? (TProcessor*)pSequenceProcessor_ :
(TProcessor*)pRenderingProcessor_;
}
2024-08-07 13:18:30 +03:00
int setMessageCode(u32 code) {
return setMessageCode(code >> 16, code);
}
2023-02-19 09:40:57 -08:00
int setMessageCode_inReset_(TProcessor* pProcessor, u16 param_1, u16 param_2) {
if (!setMessageCode_inSequence_(pProcessor, param_1, param_2)) {
return 0;
}
if (isReady_update_()) {
pSequenceProcessor_->setBegin_messageEntryText(pResourceCache_, pEntry_,
pMessageText_begin_);
}
return 1;
}
const char* getMessageText_begin() const { return pMessageText_begin_; }
void* getMessageEntry() const { return pEntry_; }
2024-01-03 05:37:15 +02:00
void setSequenceProcessor(TSequenceProcessor* processor) { pSequenceProcessor_ = processor; }
void setRenderingProcessor(TRenderingProcessor* processor) { pRenderingProcessor_ = processor; }
void resetResourceCache() {
if (pSequenceProcessor_ != NULL) {
pSequenceProcessor_->resetResourceCache();
}
if (pRenderingProcessor_ != NULL) {
pRenderingProcessor_->resetResourceCache();
}
pResourceCache_ = NULL;
}
2024-08-07 13:18:30 +03:00
void render_synchronize() {
if (isReady_render_()) {
field_0x20 = pszText_update_current_;
oStack_renderingProcessor_ = pRenderingProcessor_->oStack_;
}
}
/* 0x04 */ TSequenceProcessor* pSequenceProcessor_;
/* 0x08 */ TRenderingProcessor* pRenderingProcessor_;
/* 0x0C */ u16 messageCode_;
/* 0x0E */ u16 field_0xe;
2023-02-19 09:40:57 -08:00
/* 0x10 */ const TResource* pResourceCache_;
/* 0x14 */ void* pEntry_;
2023-02-19 09:40:57 -08:00
/* 0x18 */ const char* pMessageText_begin_;
/* 0x1C */ const char* pszText_update_current_;
/* 0x20 */ const char* field_0x20;
/* 0x24 */ TProcessor::TStack_ oStack_renderingProcessor_;
2022-03-15 02:25:25 -07:00
};
2022-03-15 02:35:30 -07:00
}; // namespace JMessage
2022-03-15 02:25:25 -07:00
2024-04-12 00:10:30 -06:00
/**
* @ingroup jsystem-jmessage
*
*/
struct jmessage_tControl : public JMessage::TControl {
/* 802299EC */ jmessage_tControl();
/* 80039B0C */ virtual ~jmessage_tControl();
};
2022-03-15 02:25:25 -07:00
#endif /* JMESSAGE_CONTROL_H */