Commit 2401731f authored by fallenstardust's avatar fallenstardust

复刻相应刷新分类的函数供调用

parent 3d16e6c4
...@@ -474,6 +474,8 @@ bool Game::Initialize(ANDROID_APP app, android::InitOptions *options) { ...@@ -474,6 +474,8 @@ bool Game::Initialize(ANDROID_APP app, android::InitOptions *options) {
ChangeToIGUIImageButton(btnHostPrepStart, imageManager.tButton_S, imageManager.tButton_S_pressed); ChangeToIGUIImageButton(btnHostPrepStart, imageManager.tButton_S, imageManager.tButton_S_pressed);
btnHostPrepCancel = env->addButton(rect<s32>(440 * xScale, 350 * yScale, 550 * xScale, 390 * yScale), wHostPrepare, BUTTON_HP_CANCEL, dataManager.GetSysString(1210)); btnHostPrepCancel = env->addButton(rect<s32>(440 * xScale, 350 * yScale, 550 * xScale, 390 * yScale), wHostPrepare, BUTTON_HP_CANCEL, dataManager.GetSysString(1210));
ChangeToIGUIImageButton(btnHostPrepCancel, imageManager.tButton_S, imageManager.tButton_S_pressed); ChangeToIGUIImageButton(btnHostPrepCancel, imageManager.tButton_S, imageManager.tButton_S_pressed);
btnHostDeckSelect = env->addButton(rect<s32>(300 * xScale, 300 * yScale, 410 * xScale, 340 * yScale), wHostPrepare, BUTTON_HP_DECK_SELECT, L"");
ChangeToIGUIImageButton(btnHostDeckSelect, imageManager.tButton_S, imageManager.tButton_S_pressed);
//img always use *yScale to keep proportion //img always use *yScale to keep proportion
wCardImg = env->addStaticText(L"",rect<s32>(1 * yScale, 1 * yScale, ( 2 + CARD_IMG_WIDTH) * yScale, (2 + CARD_IMG_HEIGHT) * yScale), true, false, 0, -1, true); wCardImg = env->addStaticText(L"",rect<s32>(1 * yScale, 1 * yScale, ( 2 + CARD_IMG_WIDTH) * yScale, (2 + CARD_IMG_HEIGHT) * yScale), true, false, 0, -1, true);
......
...@@ -397,6 +397,7 @@ public: ...@@ -397,6 +397,7 @@ public:
irr::gui::IGUIButton* btnHostPrepNotReady; irr::gui::IGUIButton* btnHostPrepNotReady;
irr::gui::IGUIButton* btnHostPrepStart; irr::gui::IGUIButton* btnHostPrepStart;
irr::gui::IGUIButton* btnHostPrepCancel; irr::gui::IGUIButton* btnHostPrepCancel;
irr::gui::IGUIButton* btnHostDeckSelect;
//replay //replay
irr::gui::IGUIWindow* wReplay; irr::gui::IGUIWindow* wReplay;
irr::gui::IGUIImage* bgReplay; irr::gui::IGUIImage* bgReplay;
...@@ -752,7 +753,7 @@ extern Game* mainGame; ...@@ -752,7 +753,7 @@ extern Game* mainGame;
#define BUTTON_HP_READY 126 #define BUTTON_HP_READY 126
#define BUTTON_HP_NOTREADY 127 #define BUTTON_HP_NOTREADY 127
#define COMBOBOX_HP_CATEGORY 128 #define COMBOBOX_HP_CATEGORY 128
#define COMBOBOX_HP_DECK 129 #define BUTTON_HP_DECK_SELECT 129
#define LISTBOX_REPLAY_LIST 130 #define LISTBOX_REPLAY_LIST 130
#define BUTTON_LOAD_REPLAY 131 #define BUTTON_LOAD_REPLAY 131
#define BUTTON_CANCEL_REPLAY 132 #define BUTTON_CANCEL_REPLAY 132
......
...@@ -33,6 +33,40 @@ void UpdateDeck() { ...@@ -33,6 +33,40 @@ void UpdateDeck() {
BufferIO::WriteInt32(pdeck, deckManager.current_deck.side[i]->first); BufferIO::WriteInt32(pdeck, deckManager.current_deck.side[i]->first);
DuelClient::SendBufferToServer(CTOS_UPDATE_DECK, deckbuf, pdeck - deckbuf); DuelClient::SendBufferToServer(CTOS_UPDATE_DECK, deckbuf, pdeck - deckbuf);
} }
void ShowHostPrepareDeckManage() {
mainGame->RefreshCategoryDeck(mainGame->cbCategorySelect, mainGame->cbDeckSelect, false);
mainGame->cbCategorySelect->setSelected(mainGame->deckBuilder.prev_category);
mainGame->RefreshDeck(mainGame->cbCategorySelect, mainGame->cbDeckSelect);
mainGame->cbDeckSelect->setSelected(mainGame->deckBuilder.prev_deck);
irr::gui::IGUIListBox* lstCategories = mainGame->lstCategories;
lstCategories->clear();
lstCategories->addItem(dataManager.GetSysString(1450));
lstCategories->addItem(dataManager.GetSysString(1451));
lstCategories->addItem(dataManager.GetSysString(1452));
lstCategories->addItem(dataManager.GetSysString(1453));
FileSystem::TraversalDir(L"./deck", [lstCategories](const wchar_t* name, bool isdir) {
if(isdir) {
lstCategories->addItem(name);
}
});
lstCategories->setSelected(mainGame->deckBuilder.prev_category);
mainGame->deckBuilder.RefreshDeckList();
mainGame->deckBuilder.RefreshReadonly(mainGame->deckBuilder.prev_category);
mainGame->lstDecks->setSelected(mainGame->deckBuilder.prev_deck);
mainGame->PopupElement(mainGame->wDeckManage);
}
void ChangeHostPrepareDeckCategory(int catesel) {
mainGame->RefreshDeck(mainGame->cbCategorySelect, mainGame->cbDeckSelect);
mainGame->cbDeckSelect->setSelected(0);
mainGame->deckBuilder.RefreshReadonly(catesel);
deckManager.LoadDeck(mainGame->cbCategorySelect, mainGame->cbDeckSelect);
mainGame->deckBuilder.is_modified = false;
mainGame->deckBuilder.prev_category = catesel;
mainGame->deckBuilder.prev_deck = 0;
}
bool MenuHandler::OnEvent(const irr::SEvent& event) { bool MenuHandler::OnEvent(const irr::SEvent& event) {
if(mainGame->dField.OnCommonEvent(event)) if(mainGame->dField.OnCommonEvent(event))
return false; return false;
...@@ -61,10 +95,16 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) { ...@@ -61,10 +95,16 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
else else
mainGame->soundManager->PlaySoundEffect(SoundManager::SFX::BUTTON); mainGame->soundManager->PlaySoundEffect(SoundManager::SFX::BUTTON);
switch(id) { switch(id) {
case BUTTON_CLOSE_DECKMANAGER: { case BUTTON_HP_DECK_SELECT: {
mainGame->HideElement(mainGame->wDeckManage); if (!mainGame->wQuery->isVisible()) {
break; ShowHostPrepareDeckManage();
} }
break;
}
case BUTTON_CLOSE_DECKMANAGER: {
mainGame->HideElement(mainGame->wDeckManage);
break;
}
case BUTTON_MODE_EXIT: { case BUTTON_MODE_EXIT: {
mainGame->soundManager->StopBGM(); mainGame->soundManager->StopBGM();
mainGame->SaveConfig(); mainGame->SaveConfig();
...@@ -556,35 +596,36 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) { ...@@ -556,35 +596,36 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
case irr::gui::EGET_LISTBOX_CHANGED: { case irr::gui::EGET_LISTBOX_CHANGED: {
switch(id) { switch(id) {
case LISTBOX_CATEGORIES: { case LISTBOX_CATEGORIES: {
if(mainGame->wDMQuery->isVisible()) { if(mainGame->wDMQuery->isVisible()) {
mainGame->lstCategories->setSelected(mainGame->deckBuilder.prev_category); mainGame->lstCategories->setSelected(mainGame->deckBuilder.prev_category);
break; break;
} }
int catesel = mainGame->lstCategories->getSelected(); int catesel = mainGame->lstCategories->getSelected();
if(catesel == 3) { if(catesel == 3) {
catesel = 2; catesel = 2;
mainGame->lstCategories->setSelected(catesel); mainGame->lstCategories->setSelected(catesel);
if(mainGame->deckBuilder.prev_category == catesel) if(mainGame->deckBuilder.prev_category == catesel)
break; break;
} }
mainGame->deckBuilder.RefreshDeckList(); mainGame->deckBuilder.RefreshDeckList();
mainGame->lstDecks->setSelected(0); mainGame->lstDecks->setSelected(0);
mainGame->cbCategorySelect->setSelected(catesel); mainGame->cbCategorySelect->setSelected(catesel);
mainGame->deckBuilder.ChangeCategory(catesel); ChangeHostPrepareDeckCategory(catesel);
break; break;
} }
case LISTBOX_DECKS: { case LISTBOX_DECKS: {
if(mainGame->wDMQuery->isVisible()) { if(mainGame->wDMQuery->isVisible()) {
mainGame->lstDecks->setSelected(mainGame->deckBuilder.prev_deck); mainGame->lstDecks->setSelected(mainGame->deckBuilder.prev_deck);
break; break;
} }
int decksel = mainGame->lstDecks->getSelected(); int decksel = mainGame->lstDecks->getSelected();
if(decksel == -1)
break;
mainGame->cbDeckSelect->setSelected(decksel); mainGame->cbDeckSelect->setSelected(decksel);
mainGame->deckBuilder.RefreshPackListScroll(); if(decksel == -1)
mainGame->deckBuilder.prev_deck = decksel; break;
break; mainGame->btnHostDeckSelect->setText(mainGame->lstDecks->getListItem(mainGame->lstDecks->getSelected()));
mainGame->deckBuilder.RefreshPackListScroll();
mainGame->deckBuilder.prev_deck = decksel;
break;
} }
case LISTBOX_LAN_HOST: { case LISTBOX_LAN_HOST: {
int sel = mainGame->lstHostList->getSelected(); int sel = mainGame->lstHostList->getSelected();
...@@ -729,12 +770,7 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) { ...@@ -729,12 +770,7 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
mainGame->RefreshBot(); mainGame->RefreshBot();
break; break;
} }
case COMBOBOX_HP_DECK:
case COMBOBOX_HP_CATEGORY: { case COMBOBOX_HP_CATEGORY: {
if (!mainGame->wQuery->isVisible()) {
mainGame->deckBuilder.ShowDeckManage();
}
/*
int catesel = mainGame->cbCategorySelect->getSelected(); int catesel = mainGame->cbCategorySelect->getSelected();
if(catesel == 3) { if(catesel == 3) {
catesel = 2; catesel = 2;
...@@ -743,7 +779,7 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) { ...@@ -743,7 +779,7 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
if(catesel >= 0) { if(catesel >= 0) {
mainGame->RefreshDeck(mainGame->cbCategorySelect, mainGame->cbDeckSelect); mainGame->RefreshDeck(mainGame->cbCategorySelect, mainGame->cbDeckSelect);
mainGame->cbDeckSelect->setSelected(0); mainGame->cbDeckSelect->setSelected(0);
}*/ }
break; break;
} }
case COMBOBOX_BOT_DECKCATEGORY: { case COMBOBOX_BOT_DECKCATEGORY: {
......
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