Commit eab6d184 authored by fallenstardust's avatar fallenstardust

添加判断,避免对应窗体未初始化时调用其combox闪退

P2卡组选择隐藏combobox只用按钮进入
parent 9bf1fe89
...@@ -1141,13 +1141,13 @@ bool Game::Initialize(ANDROID_APP app, android::InitOptions *options) { ...@@ -1141,13 +1141,13 @@ bool Game::Initialize(ANDROID_APP app, android::InitOptions *options) {
ChangeToIGUIImageButton(btnBotCancel, imageManager.tButton_S, imageManager.tButton_S_pressed); ChangeToIGUIImageButton(btnBotCancel, imageManager.tButton_S, imageManager.tButton_S_pressed);
env->addStaticText(dataManager.GetSysString(1382), rect<s32>(310 * xScale, 10 * yScale, 500 * xScale, 30 * yScale), false, true, tabBot); env->addStaticText(dataManager.GetSysString(1382), rect<s32>(310 * xScale, 10 * yScale, 500 * xScale, 30 * yScale), false, true, tabBot);
stBotInfo = env->addStaticText(L"", rect<s32>(310 * xScale, 40 * yScale, 560 * xScale, 160 * yScale), false, true, tabBot); stBotInfo = env->addStaticText(L"", rect<s32>(310 * xScale, 40 * yScale, 560 * xScale, 160 * yScale), false, true, tabBot);
cbBotDeckCategory = CAndroidGUIComboBox::addAndroidComboBox(env, rect<s32>(310 * xScale, 90 * yScale, 530 * xScale, 120 * yScale), tabBot, COMBOBOX_BOT_DECKCATEGORY); cbBotDeckCategory = env->addComboBox(rect<s32>(0, 0, 0, 0), tabBot, COMBOBOX_BOT_DECKCATEGORY);
cbBotDeckCategory->setVisible(false); cbBotDeckCategory->setVisible(false);
cbBotDeck = CAndroidGUIComboBox::addAndroidComboBox(env, rect<s32>(310 * xScale, 130 * yScale, 530 * xScale, 160 * yScale), tabBot); cbBotDeck = env->addComboBox(rect<s32>(0, 0, 0, 0), tabBot);
cbBotDeck->setVisible(false); cbBotDeck->setVisible(false);
btnBotDeckSelect = env->addButton(rect<s32>(310 * xScale, 40 * yScale, 530 * xScale, 80 * yScale), tabBot, BUTTON_BOT_DECK_SELECT, L""); btnBotDeckSelect = env->addButton(rect<s32>(310 * xScale, 110 * yScale, 530 * xScale, 150 * yScale), tabBot, BUTTON_BOT_DECK_SELECT, L"");
btnBotDeckSelect->setVisible(false); btnBotDeckSelect->setVisible(false);
cbBotRule = CAndroidGUIComboBox::addAndroidComboBox(env, rect<s32>(310 * xScale, 170 * yScale, 530 * xScale, 200 * yScale), tabBot, COMBOBOX_BOT_RULE); cbBotRule = CAndroidGUIComboBox::addAndroidComboBox(env, rect<s32>(310 * xScale, 160 * yScale, 530 * xScale, 200 * yScale), tabBot, COMBOBOX_BOT_RULE);
cbBotRule->addItem(dataManager.GetSysString(1262)); cbBotRule->addItem(dataManager.GetSysString(1262));
cbBotRule->addItem(dataManager.GetSysString(1263)); cbBotRule->addItem(dataManager.GetSysString(1263));
cbBotRule->addItem(dataManager.GetSysString(1264)); cbBotRule->addItem(dataManager.GetSysString(1264));
...@@ -1755,7 +1755,7 @@ void Game::RefreshBot() { ...@@ -1755,7 +1755,7 @@ void Game::RefreshBot() {
} else { } else {
myswprintf(cate_deck, L"%ls%ls", cate, dataManager.GetSysString(1301)); myswprintf(cate_deck, L"%ls%ls", cate, dataManager.GetSysString(1301));
} }
mainGame->btnHostDeckSelect->setText(cate_deck); mainGame->btnBotDeckSelect->setText(cate_deck);
} }
} }
void Game::LoadConfig() { void Game::LoadConfig() {
......
...@@ -420,7 +420,7 @@ public: ...@@ -420,7 +420,7 @@ public:
irr::gui::IGUIButton* btnBotCancel; irr::gui::IGUIButton* btnBotCancel;
irr::gui::IGUIComboBox* cbBotDeckCategory; irr::gui::IGUIComboBox* cbBotDeckCategory;
irr::gui::IGUIComboBox* cbBotDeck; irr::gui::IGUIComboBox* cbBotDeck;
irr::gui::IGUIButton* btnBotDeckSelect; irr::gui::IGUIButton* btnBotDeckSelect;//
irr::gui::IGUIComboBox* cbBotRule; irr::gui::IGUIComboBox* cbBotRule;
irr::gui::IGUICheckBox* chkBotHand; irr::gui::IGUICheckBox* chkBotHand;
irr::gui::IGUICheckBox* chkBotNoCheckDeck; irr::gui::IGUICheckBox* chkBotNoCheckDeck;
......
...@@ -65,10 +65,14 @@ void ShowHostPrepareDeckManage(irr::gui::IGUIComboBox* cbCategory, irr::gui::IGU ...@@ -65,10 +65,14 @@ void ShowHostPrepareDeckManage(irr::gui::IGUIComboBox* cbCategory, irr::gui::IGU
void ChangeHostPrepareDeckCategory(int catesel) { void ChangeHostPrepareDeckCategory(int catesel) {
mainGame->RefreshDeck(mainGame->cbCategorySelect, mainGame->cbDeckSelect); if (mainGame->wHostPrepare->isVisible()) {
mainGame->RefreshDeck(mainGame->cbBotDeckCategory, mainGame->cbBotDeck); mainGame->RefreshDeck(mainGame->cbCategorySelect, mainGame->cbDeckSelect);
mainGame->cbDeckSelect->setSelected(0); mainGame->cbDeckSelect->setSelected(0);
mainGame->cbBotDeck->setSelected(0); }
if (mainGame->wSinglePlay->isVisible()) {
mainGame->RefreshDeck(mainGame->cbBotDeckCategory, mainGame->cbBotDeck);
mainGame->cbBotDeck->setSelected(0);
}
mainGame->deckBuilder.is_modified = false; mainGame->deckBuilder.is_modified = false;
mainGame->deckBuilder.prev_category = catesel; mainGame->deckBuilder.prev_category = catesel;
mainGame->deckBuilder.prev_deck = 0; mainGame->deckBuilder.prev_deck = 0;
...@@ -577,9 +581,13 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) { ...@@ -577,9 +581,13 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
mainGame->lstDecks->setSelected(0); mainGame->lstDecks->setSelected(0);
mainGame->cbCategorySelect->setSelected(catesel); mainGame->cbCategorySelect->setSelected(catesel);
mainGame->cbBotDeckCategory->setSelected(catesel); mainGame->cbBotDeckCategory->setSelected(catesel);
ChangeHostPrepareDeckCategory(catesel); ChangeHostPrepareDeckCategory(catesel);
reSetCategoryDeckNameOnButton(mainGame->btnHostDeckSelect, L"|"); if (mainGame->wSinglePlay->isVisible()) {
reSetCategoryDeckNameOnButton(mainGame->btnBotDeckSelect, L"|"); reSetCategoryDeckNameOnButton(mainGame->btnBotDeckSelect, L"|");
}
if (mainGame->wHostPrepare->isVisible()) {
reSetCategoryDeckNameOnButton(mainGame->btnHostDeckSelect, L"|");
}
break; break;
} }
case LISTBOX_DECKS: { case LISTBOX_DECKS: {
...@@ -588,13 +596,16 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) { ...@@ -588,13 +596,16 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
break; break;
} }
int decksel = mainGame->lstDecks->getSelected(); int decksel = mainGame->lstDecks->getSelected();
mainGame->cbDeckSelect->setSelected(decksel); if (mainGame->wSinglePlay->isVisible()) {
mainGame->cbBotDeck->setSelected(decksel); reSetCategoryDeckNameOnButton(mainGame->btnBotDeckSelect, L"|");
mainGame->cbBotDeck->setSelected(decksel);
}
if (mainGame->wHostPrepare->isVisible()) {
reSetCategoryDeckNameOnButton(mainGame->btnHostDeckSelect, L"|");
mainGame->cbDeckSelect->setSelected(decksel);
}
if(decksel == -1) if(decksel == -1)
break; break;
reSetCategoryDeckNameOnButton(mainGame->btnHostDeckSelect, L"|");
reSetCategoryDeckNameOnButton(mainGame->btnBotDeckSelect, L"|");
mainGame->deckBuilder.RefreshPackListScroll(); mainGame->deckBuilder.RefreshPackListScroll();
mainGame->deckBuilder.prev_deck = decksel; mainGame->deckBuilder.prev_deck = decksel;
break; break;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment