Commit 50bc82ef authored by fallenstardust's avatar fallenstardust

为P2bot设置选择卡组按钮

parent 0346d28f
...@@ -1145,6 +1145,7 @@ bool Game::Initialize(ANDROID_APP app, android::InitOptions *options) { ...@@ -1145,6 +1145,7 @@ bool Game::Initialize(ANDROID_APP app, android::InitOptions *options) {
cbBotDeckCategory->setVisible(false); cbBotDeckCategory->setVisible(false);
cbBotDeck = CAndroidGUIComboBox::addAndroidComboBox(env, rect<s32>(310 * xScale, 130 * yScale, 530 * xScale, 160 * yScale), tabBot); cbBotDeck = CAndroidGUIComboBox::addAndroidComboBox(env, rect<s32>(310 * xScale, 130 * yScale, 530 * xScale, 160 * yScale), 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"");
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, 170 * 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));
......
...@@ -420,6 +420,7 @@ public: ...@@ -420,6 +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::IGUIComboBox* cbBotRule; irr::gui::IGUIComboBox* cbBotRule;
irr::gui::IGUICheckBox* chkBotHand; irr::gui::IGUICheckBox* chkBotHand;
irr::gui::IGUICheckBox* chkBotNoCheckDeck; irr::gui::IGUICheckBox* chkBotNoCheckDeck;
...@@ -776,6 +777,7 @@ extern Game* mainGame; ...@@ -776,6 +777,7 @@ extern Game* mainGame;
#define BUTTON_BOT_START 154 #define BUTTON_BOT_START 154
#define COMBOBOX_BOT_RULE 155 #define COMBOBOX_BOT_RULE 155
#define COMBOBOX_BOT_DECKCATEGORY 156 #define COMBOBOX_BOT_DECKCATEGORY 156
#define BUTTON_BOT_DECK_SELECT 157
#define EDITBOX_CHAT 199 #define EDITBOX_CHAT 199
#define BUTTON_MSG_OK 200 #define BUTTON_MSG_OK 200
......
...@@ -34,11 +34,11 @@ void UpdateDeck() { ...@@ -34,11 +34,11 @@ void UpdateDeck() {
DuelClient::SendBufferToServer(CTOS_UPDATE_DECK, deckbuf, pdeck - deckbuf); DuelClient::SendBufferToServer(CTOS_UPDATE_DECK, deckbuf, pdeck - deckbuf);
} }
void ShowHostPrepareDeckManage() { void ShowHostPrepareDeckManage(irr::gui::IGUIComboBox* cbCategory, irr::gui::IGUIComboBox* cbDecks) {
mainGame->RefreshCategoryDeck(mainGame->cbCategorySelect, mainGame->cbDeckSelect, false); mainGame->RefreshCategoryDeck(cbCategory, cbDecks, false);
mainGame->cbCategorySelect->setSelected(mainGame->deckBuilder.prev_category); cbCategory->setSelected(mainGame->deckBuilder.prev_category);
mainGame->RefreshDeck(mainGame->cbCategorySelect, mainGame->cbDeckSelect); mainGame->RefreshDeck(cbCategory, cbDecks);
mainGame->cbDeckSelect->setSelected(mainGame->deckBuilder.prev_deck); cbDecks->setSelected(mainGame->deckBuilder.prev_deck);
irr::gui::IGUIListBox* lstCategories = mainGame->lstCategories; irr::gui::IGUIListBox* lstCategories = mainGame->lstCategories;
lstCategories->clear(); lstCategories->clear();
lstCategories->addItem(dataManager.GetSysString(1451)); lstCategories->addItem(dataManager.GetSysString(1451));
...@@ -114,7 +114,7 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) { ...@@ -114,7 +114,7 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
switch(id) { switch(id) {
case BUTTON_HP_DECK_SELECT: { case BUTTON_HP_DECK_SELECT: {
if (!mainGame->wQuery->isVisible()) { if (!mainGame->wQuery->isVisible()) {
ShowHostPrepareDeckManage(); ShowHostPrepareDeckManage(mainGame->cbCategorySelect, mainGame->cbDeckSelect);
} }
break; break;
} }
...@@ -434,46 +434,16 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) { ...@@ -434,46 +434,16 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
mainGame->PopupElement(mainGame->wACMessage, 20); mainGame->PopupElement(mainGame->wACMessage, 20);
break; break;
} }
case BUTTON_BOT_DECK_SELECT: {
ShowHostPrepareDeckManage(mainGame->cbBotDeckCategory, mainGame->cbBotDeck);
break;
}
case BUTTON_BOT_START: { case BUTTON_BOT_START: {
int sel = mainGame->lstBotList->getSelected(); int sel = mainGame->lstBotList->getSelected();
if(sel == -1) if(sel == -1)
break; break;
bot_mode = true; bot_mode = true;
#ifdef _WIN32 #ifdef _IRR_ANDROID_PLATFORM_
if(!NetServer::StartServer(mainGame->gameConf.serverport)) {
mainGame->soundManager->PlaySoundEffect(SoundManager::SFX::INFO);
mainGame->env->addMessageBox(L"", dataManager.GetSysString(1402));
break;
}
if(!DuelClient::StartClient(0x7f000001, mainGame->gameConf.serverport)) {
NetServer::StopServer();
mainGame->soundManager->PlaySoundEffect(SoundManager::SFX::INFO);
mainGame->env->addMessageBox(L"", dataManager.GetSysString(1402));
break;
}
STARTUPINFOW si;
PROCESS_INFORMATION pi;
ZeroMemory(&si, sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi));
wchar_t cmd[MAX_PATH];
wchar_t arg1[512];
if(mainGame->botInfo[sel].select_deckfile) {
wchar_t botdeck[256];
deckManager.GetDeckFile(botdeck, mainGame->cbBotDeckCategory, mainGame->cbBotDeck);
myswprintf(arg1, L"%ls DeckFile='%ls'", mainGame->botInfo[sel].command, botdeck);
}
else
myswprintf(arg1, L"%ls", mainGame->botInfo[sel].command);
int flag = 0;
flag += (mainGame->chkBotHand->isChecked() ? 0x1 : 0);
myswprintf(cmd, L"Bot.exe \"%ls\" %d %d", arg1, flag, mainGame->gameConf.serverport);
if(!CreateProcessW(NULL, cmd, NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi))
{
NetServer::StopServer();
break;
}
#elif defined(_IRR_ANDROID_PLATFORM_)
char args[512]; char args[512];
wchar_t warg1[512]; wchar_t warg1[512];
if(mainGame->botInfo[sel].select_deckfile) { if(mainGame->botInfo[sel].select_deckfile) {
...@@ -504,40 +474,6 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) { ...@@ -504,40 +474,6 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
mainGame->env->addMessageBox(L"", dataManager.GetSysString(1402)); mainGame->env->addMessageBox(L"", dataManager.GetSysString(1402));
break; break;
} }
#else
if(fork() == 0) {
usleep(100000);
wchar_t warg1[512];
if(mainGame->botInfo[sel].select_deckfile) {
wchar_t botdeck[256];
deckManager.GetDeckFile(botdeck, mainGame->cbBotDeckCategory, mainGame->cbBotDeck);
myswprintf(warg1, L"%ls DeckFile='%ls'", mainGame->botInfo[sel].command, botdeck);
}
else
myswprintf(warg1, L"%ls", mainGame->botInfo[sel].command);
char arg1[512];
BufferIO::EncodeUTF8(warg1, arg1);
int flag = 0;
flag += (mainGame->chkBotHand->isChecked() ? 0x1 : 0);
char arg2[8];
sprintf(arg2, "%d", flag);
char arg3[8];
sprintf(arg3, "%d", mainGame->gameConf.serverport);
execl("./bot", "bot", arg1, arg2, arg3, NULL);
exit(0);
} else {
if(!NetServer::StartServer(mainGame->gameConf.serverport)) {
mainGame->soundManager->PlaySoundEffect(SoundManager::SFX::INFO);
mainGame->env->addMessageBox(L"", dataManager.GetSysString(1402));
break;
}
if(!DuelClient::StartClient(0x7f000001, mainGame->gameConf.serverport)) {
NetServer::StopServer();
mainGame->soundManager->PlaySoundEffect(SoundManager::SFX::INFO);
mainGame->env->addMessageBox(L"", dataManager.GetSysString(1402));
break;
}
}
#endif #endif
mainGame->btnStartBot->setEnabled(false); mainGame->btnStartBot->setEnabled(false);
mainGame->btnBotCancel->setEnabled(false); mainGame->btnBotCancel->setEnabled(false);
......
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