Commit 9c58caa0 authored by fallenstardust's avatar fallenstardust

btn ann number

parent 5216e5c6
......@@ -1071,7 +1071,7 @@ void Game::ShowElement(irr::gui::IGUIElement * win, int autoframe) {
FadingUnit fu;
fu.fadingSize = win->getRelativePosition();
for(auto fit = fadingList.begin(); fit != fadingList.end(); ++fit)
if(win == fit->guiFading && win != wOptions) // the size of wOptions is always setted by ClientField::ShowSelectOption before showing it
if(win == fit->guiFading && win != wOptions && win != wANNumber) // the size of wOptions is always setted by ClientField::ShowSelectOption before showing it
fu.fadingSize = fit->fadingSize;
irr::core::position2di center = fu.fadingSize.getCenter();
fu.fadingDiff.X = fu.fadingSize.getWidth() / 10;
......
......@@ -3575,12 +3575,44 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
int count = BufferIO::ReadInt8(pbuf);
mainGame->gMutex.lock();
mainGame->cbANNumber->clear();
bool quickmode = count <= 12;
if(quickmode) {
for(int i = 0; i < 12; ++i) {
mainGame->btnANNumber[i]->setEnabled(false);
mainGame->btnANNumber[i]->setPressed(false);
mainGame->btnANNumber[i]->setVisible(true);
}
}
for (int i = 0; i < count; ++i) {
int value = BufferIO::ReadInt32(pbuf);
myswprintf(textBuffer, L" % d", value);
mainGame->cbANNumber->addItem(textBuffer, value);
if(quickmode) {
if((value > 12 || value <= 0)) {
quickmode = false;
} else {
mainGame->btnANNumber[value - 1]->setEnabled(true);
}
}
}
mainGame->cbANNumber->setSelected(0);
if(quickmode) {
mainGame->cbANNumber->setVisible(false);
mainGame->btnANNumberOK->setRelativePosition(rect<s32>(20, 195, 210, 230));
mainGame->btnANNumberOK->setEnabled(false);
recti pos = mainGame->wANNumber->getRelativePosition();
pos.LowerRightCorner.Y = pos.UpperLeftCorner.Y + 250;
mainGame->wANNumber->setRelativePosition(pos);
} else {
for(int i = 0; i < 12; ++i) {
mainGame->btnANNumber[i]->setVisible(false);
}
mainGame->cbANNumber->setVisible(true);
mainGame->btnANNumberOK->setRelativePosition(rect<s32>(80, 60, 150, 85));
recti pos = mainGame->wANNumber->getRelativePosition();
pos.LowerRightCorner.Y = pos.UpperLeftCorner.Y + 95;
mainGame->wANNumber->setRelativePosition(pos);
}
if(select_hint)
myswprintf(textBuffer, L"%ls", dataManager.GetDesc(select_hint));
else myswprintf(textBuffer, dataManager.GetSysString(565));
......
......@@ -329,6 +329,31 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
SetResponseSelectedOption();
break;
}
case BUTTON_ANNUMBER_1:
case BUTTON_ANNUMBER_2:
case BUTTON_ANNUMBER_3:
case BUTTON_ANNUMBER_4:
case BUTTON_ANNUMBER_5:
case BUTTON_ANNUMBER_6:
case BUTTON_ANNUMBER_7:
case BUTTON_ANNUMBER_8:
case BUTTON_ANNUMBER_9:
case BUTTON_ANNUMBER_10:
case BUTTON_ANNUMBER_11:
case BUTTON_ANNUMBER_12: {
mainGame->soundManager->PlaySoundEffect(SoundManager::SFX::BUTTON);
for(int i = 0; i < mainGame->cbANNumber->getItemCount(); ++i) {
if(id - BUTTON_ANNUMBER_1 + 1 == mainGame->cbANNumber->getItemData(i)) {
mainGame->cbANNumber->setSelected(i);
break;
}
}
for(int i = 0; i < 12; ++i) {
mainGame->btnANNumber[i]->setPressed(event.GUIEvent.Caller == mainGame->btnANNumber[i]);
}
mainGame->btnANNumberOK->setEnabled(true);
break;
}
case BUTTON_ANNUMBER_OK: {
mainGame->soundManager->PlaySoundEffect(SoundManager::SFX::BUTTON);
DuelClient::SetResponseI(mainGame->cbANNumber->getSelected());
......
......@@ -610,14 +610,17 @@ bool Game::Initialize() {
btnDisplayOK = env->addButton(rect<s32>(300 * xScale, 265 * yScale, 380 * xScale, 290 * yScale), wCardDisplay, BUTTON_CARD_DISP_OK, dataManager.GetSysString(1211));
#endif
//announce number
wANNumber = env->addWindow(rect<s32>(550 * xScale, 200 * yScale, 780 * xScale, 355 * yScale), false, L"");
wANNumber = env->addWindow(rect<s32>(550 * xScale, 200 * yScale, 780 * xScale, 450 * yScale), false, L"");
wANNumber->getCloseButton()->setVisible(false);
wANNumber->setVisible(false);
#ifdef _IRR_ANDROID_PLATFORM_
cbANNumber = CAndroidGUIComboBox::addAndroidComboBox(env, rect<s32>(40 * xScale, 30 * yScale, 190 * xScale, 65 * yScale), wANNumber, -1);
#endif
cbANNumber->setTextAlignment(irr::gui::EGUIA_CENTER, irr::gui::EGUIA_CENTER);
btnANNumberOK = env->addButton(rect<s32>(70 * xScale, 95 * yScale, 160 * xScale, 145 * yScale), wANNumber, BUTTON_ANNUMBER_OK, dataManager.GetSysString(1211));
for(int i = 0; i < 12; ++i) {
myswprintf(strbuf, L"%d", i + 1);
btnANNumber[i] = env->addButton(rect<s32>((20 + 50 * (i % 4)) * xScale, (40 + 50 * (i / 4)) * yScale, (60 + 50 * (i % 4)) * xScale, (80 + 50 * (i / 4)) * yScale), wANNumber, BUTTON_ANNUMBER_1 + i, strbuf);
btnANNumber[i]->setIsPushButton(true);
}
btnANNumberOK = env->addButton(rect<s32>(600 * xScale, 60 * yScale, 730 * xScale, 100 * yScale), wANNumber, BUTTON_ANNUMBER_OK, dataManager.GetSysString(1211));
//announce card
wANCard = env->addWindow(rect<s32>(400 * xScale, 100 * yScale, 800 * xScale, 400 * yScale), false, L"");
wANCard->getCloseButton()->setVisible(false);
......
......@@ -411,6 +411,7 @@ public:
//announce number
irr::gui::IGUIWindow* wANNumber;
irr::gui::IGUIComboBox* cbANNumber;
irr::gui::IGUIButton* btnANNumber[12];
irr::gui::IGUIButton* btnANNumberOK;
//announce card
irr::gui::IGUIWindow* wANCard;
......@@ -718,9 +719,18 @@ private:
#define BUTTON_CHAIN_WHENAVAIL 266
#define BUTTON_CANCEL_OR_FINISH 267
#define BUTTON_PHASE 268
#define BUTTON_CLEAR_LOG 270
#define LISTBOX_LOG 271
#define SCROLL_CARDTEXT 280
#define BUTTON_ANNUMBER_1 270
#define BUTTON_ANNUMBER_2 271
#define BUTTON_ANNUMBER_3 272
#define BUTTON_ANNUMBER_4 273
#define BUTTON_ANNUMBER_5 274
#define BUTTON_ANNUMBER_6 275
#define BUTTON_ANNUMBER_7 276
#define BUTTON_ANNUMBER_8 277
#define BUTTON_ANNUMBER_9 278
#define BUTTON_ANNUMBER_10 279
#define BUTTON_ANNUMBER_11 280
#define BUTTON_ANNUMBER_12 281
#define BUTTON_DISPLAY_0 290
#define BUTTON_DISPLAY_1 291
#define BUTTON_DISPLAY_2 292
......@@ -771,7 +781,9 @@ private:
#define BUTTON_DM_CANCEL 342
#define BUTTON_CLOSE_DECKMANAGER 343
#define COMBOBOX_LFLIST 349
#define BUTTON_CLEAR_LOG 350
#define LISTBOX_LOG 351
#define SCROLL_CARDTEXT 352
#define CHECKBOX_AUTO_SEARCH 360
#define CHECKBOX_DRAW_FIELD_SPELL 361
#define CHECKBOX_MULTI_KEYWORDS 372
......
......@@ -528,8 +528,7 @@ int TagDuel::Analyze(char* msgbuffer, unsigned int len) {
case 1:
case 2:
case 3:
case 5:
case 10: {
case 5: {
NetServer::SendBufferToPlayer(cur_player[player], STOC_GAME_MSG, offset, pbuf - offset);
break;
}
......@@ -545,6 +544,13 @@ int TagDuel::Analyze(char* msgbuffer, unsigned int len) {
NetServer::ReSendToPlayer(*oit);
break;
}
case 10: {
for(int i = 0; i < 4; ++i)
NetServer::SendBufferToPlayer(players[i], STOC_GAME_MSG, offset, pbuf - offset);
for(auto oit = observers.begin(); oit != observers.end(); ++oit)
NetServer::ReSendToPlayer(*oit);
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