Commit 74e9bd13 authored by nanahira's avatar nanahira

Merge branch 'patch-deck-category' of github.com:mercury233/ygopro

parents 3795bc66 54435733
......@@ -79,22 +79,23 @@ inline void refreshDeckList() {
});
}
inline void refreshReadonly(int catesel) {
bool hasDeck = mainGame->cbDBDecks->getItemCount() != 0;
mainGame->deckBuilder.readonly = catesel < 2;
mainGame->btnSaveDeck->setEnabled(!mainGame->deckBuilder.readonly);
mainGame->btnDeleteDeck->setEnabled(!mainGame->deckBuilder.readonly);
mainGame->btnDeleteDeck->setEnabled(hasDeck && !mainGame->deckBuilder.readonly);
mainGame->btnRenameCategory->setEnabled(catesel > 3);
mainGame->btnDeleteCategory->setEnabled(catesel > 3);
mainGame->btnNewDeck->setEnabled(!mainGame->deckBuilder.readonly);
mainGame->btnRenameDeck->setEnabled(!mainGame->deckBuilder.readonly);
mainGame->btnDMDeleteDeck->setEnabled(!mainGame->deckBuilder.readonly);
mainGame->btnMoveDeck->setEnabled(!mainGame->deckBuilder.readonly);
mainGame->btnCopyDeck->setEnabled(!mainGame->deckBuilder.readonly);
mainGame->btnRenameDeck->setEnabled(hasDeck && !mainGame->deckBuilder.readonly);
mainGame->btnDMDeleteDeck->setEnabled(hasDeck && !mainGame->deckBuilder.readonly);
mainGame->btnMoveDeck->setEnabled(hasDeck && !mainGame->deckBuilder.readonly);
mainGame->btnCopyDeck->setEnabled(hasDeck);
}
inline void changeCategory(int catesel) {
refreshReadonly(catesel);
mainGame->RefreshDeck(mainGame->cbDBCategory, mainGame->cbDBDecks);
mainGame->cbDBDecks->setSelected(0);
deckManager.LoadDeck(mainGame->cbDBCategory, mainGame->cbDBDecks);
refreshReadonly(catesel);
mainGame->deckBuilder.is_modified = false;
mainGame->deckBuilder.prev_category = catesel;
mainGame->deckBuilder.prev_deck = 0;
......@@ -116,8 +117,8 @@ inline void showDeckManage() {
}
});
lstCategories->setSelected(mainGame->deckBuilder.prev_category);
refreshReadonly(mainGame->deckBuilder.prev_category);
refreshDeckList();
refreshReadonly(mainGame->deckBuilder.prev_category);
mainGame->lstDecks->setSelected(mainGame->deckBuilder.prev_deck);
mainGame->PopupElement(mainGame->wDeckManage);
}
......@@ -626,6 +627,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
mainGame->cbDBDecks->setSelected(decksel);
deckManager.LoadDeck(mainGame->cbDBCategory, mainGame->cbDBDecks);
}
refreshReadonly(prev_category);
prev_deck = decksel;
} else {
mainGame->stACMessage->setText(dataManager.GetSysString(1476));
......
......@@ -214,9 +214,15 @@ void DeckManager::GetCategoryPath(wchar_t* ret, int index, const wchar_t* text)
void DeckManager::GetDeckFile(wchar_t* ret, irr::gui::IGUIComboBox* cbCategory, irr::gui::IGUIComboBox* cbDeck) {
wchar_t filepath[256];
wchar_t catepath[256];
wchar_t* deckname = (wchar_t*)cbDeck->getItem(cbDeck->getSelected());
if(deckname != NULL) {
GetCategoryPath(catepath, cbCategory->getSelected(), cbCategory->getText());
myswprintf(filepath, L"%ls/%ls.ydk", catepath, cbDeck->getItem(cbDeck->getSelected()));
myswprintf(filepath, L"%ls/%ls.ydk", catepath, deckname);
BufferIO::CopyWStr(filepath, ret, 256);
}
else {
BufferIO::CopyWStr(L"", ret, 256);
}
}
bool DeckManager::LoadDeck(irr::gui::IGUIComboBox* cbCategory, irr::gui::IGUIComboBox* cbDeck) {
wchar_t filepath[256];
......
......@@ -774,7 +774,6 @@ extern Game* mainGame;
#define BUTTON_MARKS_FILTER 322
#define BUTTON_MARKERS_OK 323
#define COMBOBOX_SORTTYPE 324
#define WINDOW_DECK_MANAGE 330
#define BUTTON_NEW_CATEGORY 331
#define BUTTON_RENAME_CATEGORY 332
......
......@@ -566,23 +566,6 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
}
break;
}
case irr::gui::EGET_COMBO_BOX_CHANGED: {
switch(id) {
case COMBOBOX_HP_CATEGORY: {
int catesel = mainGame->cbCategorySelect->getSelected();
if(catesel == 3) {
catesel = 2;
mainGame->cbCategorySelect->setSelected(2);
}
if(catesel >= 0) {
mainGame->RefreshDeck(mainGame->cbCategorySelect, mainGame->cbDeckSelect);
mainGame->cbDeckSelect->setSelected(0);
}
break;
}
}
break;
}
case irr::gui::EGET_CHECKBOX_CHANGED: {
switch(id) {
case CHECKBOX_HP_READY: {
......@@ -615,6 +598,18 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
mainGame->RefreshBot();
break;
}
case COMBOBOX_HP_CATEGORY: {
int catesel = mainGame->cbCategorySelect->getSelected();
if(catesel == 3) {
catesel = 2;
mainGame->cbCategorySelect->setSelected(2);
}
if(catesel >= 0) {
mainGame->RefreshDeck(mainGame->cbCategorySelect, mainGame->cbDeckSelect);
mainGame->cbDeckSelect->setSelected(0);
}
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