Merge pull request #250 from robojumper/select-btn

d_lyt_msg_window_select_btn mostly OK
This commit is contained in:
robojumper
2025-10-02 05:14:40 +02:00
committed by GitHub
28 changed files with 1282 additions and 372 deletions
+11 -11
View File
@@ -142,7 +142,7 @@ bool dLytMsgWindow_c::build() {
field_0x81C = 0;
field_0x81D = 0;
field_0x824 = 0;
mNumOptions = 0;
field_0x820 = 0;
field_0x81E = 0;
@@ -161,7 +161,7 @@ bool dLytMsgWindow_c::remove() {
mpTagProcessor = nullptr;
mSelectBtn.remove();
removeSubMsgManagers();
field_0x824 = 0;
mNumOptions = 0;
mResAcc1.detach();
mResAcc2.detach();
return true;
@@ -494,36 +494,36 @@ static wchar_t *sBufs[4];
void dLytMsgWindow_c::initializeState_WaitKeySelectQuestion() {
// TODO regswaps
field_0x824 = mpTagProcessor->getField_0x90E();
mNumOptions = mpTagProcessor->getField_0x90E();
mSelectBtn.setField_0x9B8(mpTagProcessor->getField_0x82C());
s32 tmp = mpTagProcessor->getField_0x828();
mSelectBtn.setField_0x9BC(tmp);
s32 tmp = mpTagProcessor->getCancelBtnIdx();
mSelectBtn.setCancelBtnIdx(tmp);
mSelectBtn.setField_0x990(tmp);
mSelectBtn.setTagProcessor(mpTagProcessor);
for (s32 i = 0; i < 4; i++) {
sBufs[i] = mpTagProcessor->getBuf(i);
sBufs[i] = mpTagProcessor->getOptionString(i);
}
mSelectBtn.fn_8011E5D0(field_0x824, true);
mSelectBtn.requestIn(mNumOptions, true);
for (s32 i = 0, option = 0; i < field_0x824; option++, i++) {
for (s32 i = 0, option = 0; i < mNumOptions; option++, i++) {
for (s32 j = 0; j < 2; j++) {
mSelectBtn.getSelectTextBox(option, j)->setTextWithGlobalTextProcessor(sBufs[i]);
}
}
}
void dLytMsgWindow_c::executeState_WaitKeySelectQuestion() {
s32 selection = mSelectBtn.getField_0x9B4();
s32 selection = mSelectBtn.getDecidedBtnIdx();
if (selection >= 0) {
if (mSelectBtn.isStateWait()) {
bool doFiThing = false;
mpTagProcessor->setField_0x90E(0);
mpTagProcessor->setField_0x82C(-1);
mpTagProcessor->setField_0x828(-1);
mpTagProcessor->setCancelBtnIdx(-1);
mSelectBtn.setTagProcessor(nullptr);
field_0x824 = 0;
mNumOptions = 0;
mTextOptionSelection = selection;
field_0x1220 = 0;
if (FiContext::GetInstance() != nullptr) {
@@ -54,7 +54,7 @@ bool dLytMsgWindowDemo_c::build(d2d::ResAccIf_c *resAcc1, d2d::ResAccIf_c *resAc
mpTextboxes[i] = mLyt.getTextBox(sTextBoxes[i]);
}
mpTextboxes[1]->set0x1F6(1);
mpTextboxes[1]->setIsShadow(1);
mpTagProcessor = tagProcessor;
@@ -64,7 +64,7 @@ bool dLytMsgWindowGet_c::build(d2d::ResAccIf_c *resAcc1, d2d::ResAccIf_c *resAcc
mpTextboxes[i]->SetTextPositionV(0);
}
mpTextboxes[1]->set0x1F6(1);
mpTextboxes[1]->setIsShadow(1);
for (int i = 0; i < 1; i++) {
mNodes[i].mpLytPane = &mBtn;
@@ -68,7 +68,7 @@ bool dLytMsgWindowLink_c::build(d2d::ResAccIf_c *resAcc1, d2d::ResAccIf_c *resAc
mpTextboxes[i]->SetTextPositionV(0);
}
mpTextboxes[1]->set0x1F6(1);
mpTextboxes[1]->setIsShadow(1);
for (int i = 0; i < 1; i++) {
mNodes[i].mpLytPane = &mBtn;
File diff suppressed because it is too large Load Diff
@@ -65,8 +65,8 @@ bool dLytMsgWindowStone_c::build(d2d::ResAccIf_c *resAcc1, d2d::ResAccIf_c *resA
mpTextboxes[i]->SetTextPositionV(0);
}
mpTextboxes[1]->set0x1F6(1);
mpTextboxes[2]->set0x1F6(1);
mpTextboxes[1]->setIsShadow(1);
mpTextboxes[2]->setIsShadow(1);
for (int i = 0; i < 1; i++) {
mNodes[i].mpLytPane = &mBtn;
@@ -79,7 +79,7 @@ bool dLytMsgWindowSword_c::build(d2d::ResAccIf_c *resAcc1, d2d::ResAccIf_c *resA
mpTextboxes[i]->SetTextPositionV(0);
}
mpTextboxes[1]->set0x1F6(1);
mpTextboxes[1]->setIsShadow(1);
for (int i = 0; i < 1; i++) {
mNodes[i].mpLytPane = &mBtn;
@@ -68,7 +68,7 @@ bool dLytMsgWindowTalk_c::build(d2d::ResAccIf_c *resAcc1, d2d::ResAccIf_c *resAc
mpTextboxes[i]->SetTextPositionV(0);
}
mpTextboxes[1]->set0x1F6(1);
mpTextboxes[1]->setIsShadow(1);
for (int i = 0; i < 1; i++) {
mNodes[i].mpLytPane = &mBtn;
@@ -64,7 +64,7 @@ bool dLytMsgWindowWood_c::build(d2d::ResAccIf_c *resAcc1, d2d::ResAccIf_c *resAc
mpTextboxes[i]->SetTextPositionV(0);
}
mpTextboxes[1]->set0x1F6(1);
mpTextboxes[1]->setIsShadow(1);
for (int i = 0; i < 1; i++) {
mNodes[i].mpLytPane = &mBtn;