1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
/**
* JMessage/control.cpp
* JMessage Controller
*/
#include "JSystem/JSystem.h" // IWYU pragma: keep
#include "JSystem/JMessage/control.h"
JMessage::TControl::TControl()
: pSequenceProcessor_(NULL),
pRenderingProcessor_(NULL),
uMessageGroupID_(0xFFFF),
uMessageID_(0xFFFF),
pResourceCache_(NULL),
pEntry_(NULL),
pMessageText_begin_(NULL),
pszText_update_current_(NULL),
pMessageText_current_(NULL)
{}
JMessage::TControl::~TControl() {}
void JMessage::TControl::reset() {
pEntry_ = NULL;
pMessageText_begin_ = NULL;
pszText_update_current_ = NULL;
pMessageText_current_ = NULL;
oStack_renderingProcessor_.clear();
if (pSequenceProcessor_ != NULL) {
pSequenceProcessor_->reset();
}
if (pRenderingProcessor_ != NULL) {
pRenderingProcessor_->reset();
}
}
int JMessage::TControl::update() {
if (!isReady_update_()) {
return 0;
}
pszText_update_current_ = pSequenceProcessor_->process(NULL);
if (pszText_update_current_ == NULL) {
pMessageText_begin_ = 0;
return 0;
}
return 1;
}
void JMessage::TControl::render() {
if (isReady_render_()) {
pRenderingProcessor_->setBegin_messageEntryText(pResourceCache_, pEntry_, pMessageText_current_);
pRenderingProcessor_->oStack_ = oStack_renderingProcessor_;
pRenderingProcessor_->process(pszText_update_current_);
}
}
int JMessage::TControl::setMessageCode(u16 u16GroupID, u16 u16Index) {
TProcessor* pProcessor = getProcessor();
JUT_ASSERT(120, pProcessor!=NULL);
return setMessageCode_inReset_(pProcessor, u16GroupID, u16Index);
}
int JMessage::TControl::setMessageID(u32 uMsgID, u32 param_1, bool* pbValid) {
TProcessor* pProcessor = getProcessor();
JUT_ASSERT(132, pProcessor!=NULL);
u32 uCode = pProcessor->toMessageCode_messageID(uMsgID, param_1, pbValid);
if (uCode == 0xFFFFFFFF) {
return 0;
}
return setMessageCode_inReset_(pProcessor, uCode >> 16, uCode & 0xFFFF);
}
bool JMessage::TControl::setMessageCode_inSequence_(JMessage::TProcessor const* pProcessor, u16 u16GroupID, u16 u16Index) {
pEntry_ = pProcessor->getMessageEntry_messageCode(u16GroupID, u16Index);
if (pEntry_ == NULL) {
return false;
}
uMessageGroupID_ = u16GroupID;
uMessageID_ = u16Index;
pResourceCache_ = pProcessor->getResourceCache();
JUT_ASSERT(155, pResourceCache_!=NULL);
pMessageText_begin_ = pResourceCache_->getMessageText_messageEntry(pEntry_);
pMessageText_current_ = pMessageText_begin_;
oStack_renderingProcessor_.clear();
return true;
}
|