Commit a67a3605 authored by fallenstardust's avatar fallenstardust Committed by GitHub

Merge pull request #51 from mercury233/patch-wSysMessage

add wSysMessage
parents 2aa3ac7b 74f139f0
......@@ -711,7 +711,7 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
|| deckManager.current_deck.extra.size() != pre_extrac
|| deckManager.current_deck.side.size() != pre_sidec) {
mainGame->soundManager->PlaySoundEffect(SoundManager::SFX::INFO);
mainGame->env->addMessageBox(L"", dataManager.GetSysString(1410));
mainGame->addMessageBox(L"", dataManager.GetSysString(1410));
break;
}
mainGame->ClearCardInfo();
......
......@@ -84,7 +84,7 @@ void DuelClient::ConnectTimeout(evutil_socket_t fd, short events, void* arg) {
else if(!bot_mode && !mainGame->wLanWindow->isVisible())
mainGame->ShowElement(mainGame->wLanWindow);
mainGame->soundManager->PlaySoundEffect(SoundManager::SFX::INFO);
mainGame->env->addMessageBox(L"", dataManager.GetSysString(1400));
mainGame->addMessageBox(L"", dataManager.GetSysString(1400));
mainGame->gMutex.unlock();
}
event_base_loopbreak(client_base);
......@@ -115,7 +115,6 @@ void DuelClient::ClientRead(bufferevent* bev, void* ctx) {
}
}
void DuelClient::ClientEvent(bufferevent *bev, short events, void *ctx) {
wchar_t textBuffer[256];
if (events & BEV_EVENT_CONNECTED) {
bool create_game = (size_t)ctx != 0;
CTOS_PlayerInfo cspi;
......@@ -176,7 +175,7 @@ void DuelClient::ClientEvent(bufferevent *bev, short events, void *ctx) {
else if(!bot_mode && !mainGame->wLanWindow->isVisible())
mainGame->ShowElement(mainGame->wLanWindow);
mainGame->soundManager->PlaySoundEffect(SoundManager::SFX::INFO);
mainGame->env->addMessageBox(L"", dataManager.GetSysString(1400));
mainGame->addMessageBox(L"", dataManager.GetSysString(1400));
mainGame->gMutex.unlock();
} else if(connect_state == 0x7) {
if(!mainGame->dInfo.isStarted && !mainGame->is_building) {
......@@ -194,17 +193,13 @@ void DuelClient::ClientEvent(bufferevent *bev, short events, void *ctx) {
mainGame->wChat->setVisible(false);
mainGame->soundManager->PlaySoundEffect(SoundManager::SFX::INFO);
if(events & BEV_EVENT_EOF)
myswprintf(textBuffer, L"%ls\n%ls", event_string, dataManager.GetSysString(1401));
else myswprintf(textBuffer, L"%ls\n%ls", event_string, dataManager.GetSysString(1402));
mainGame->SetStaticText(mainGame->stMessage, 370 * mainGame->xScale, mainGame->textFont, textBuffer);
mainGame->PopupElement(mainGame->wMessage);
mainGame->addMessageBox(L"", dataManager.GetSysString(1401));
else mainGame->addMessageBox(L"", dataManager.GetSysString(1402));
mainGame->gMutex.unlock();
} else {
mainGame->gMutex.lock();
mainGame->soundManager->PlaySoundEffect(SoundManager::SFX::INFO);
myswprintf(textBuffer, L"%ls\n%ls", event_string, dataManager.GetSysString(1502));
mainGame->SetStaticText(mainGame->stMessage, 370 * mainGame->xScale, mainGame->textFont, textBuffer);
mainGame->PopupElement(mainGame->wMessage);
mainGame->addMessageBox(L"", dataManager.GetSysString(1502));
mainGame->btnCreateHost->setEnabled(true);
mainGame->btnJoinHost->setEnabled(true);
mainGame->btnJoinCancel->setEnabled(true);
......@@ -260,11 +255,11 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
mainGame->gMutex.lock();
mainGame->soundManager->PlaySoundEffect(SoundManager::SFX::INFO);
if(pkt->code == 0)
mainGame->env->addMessageBox(L"", dataManager.GetSysString(1403));
mainGame->addMessageBox(L"", dataManager.GetSysString(1403));
else if(pkt->code == 1)
mainGame->env->addMessageBox(L"", dataManager.GetSysString(1404));
mainGame->addMessageBox(L"", dataManager.GetSysString(1404));
else if(pkt->code == 2)
mainGame->env->addMessageBox(L"", dataManager.GetSysString(1405));
mainGame->addMessageBox(L"", dataManager.GetSysString(1405));
mainGame->gMutex.unlock();
event_base_loopbreak(client_base);
break;
......@@ -317,8 +312,7 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
}
}
mainGame->soundManager->PlaySoundEffect(SoundManager::SFX::INFO);
mainGame->SetStaticText(mainGame->stMessage, 370 * mainGame->xScale, mainGame->textFont, msgbuf);
mainGame->PopupElement(mainGame->wMessage);
mainGame->addMessageBox(L"", msgbuf);
mainGame->cbCategorySelect->setEnabled(true);
mainGame->cbDeckSelect->setEnabled(true);
mainGame->gMutex.unlock();
......@@ -327,7 +321,7 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
case ERRMSG_SIDEERROR: {
mainGame->gMutex.lock();
mainGame->soundManager->PlaySoundEffect(SoundManager::SFX::INFO);
mainGame->env->addMessageBox(L"", dataManager.GetSysString(1408));
mainGame->addMessageBox(L"", dataManager.GetSysString(1408));
mainGame->gMutex.unlock();
break;
}
......@@ -341,7 +335,7 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
wchar_t msgbuf[256];
myswprintf(msgbuf, dataManager.GetSysString(1411), pkt->code >> 12, (pkt->code >> 4) & 0xff, pkt->code & 0xf);
mainGame->soundManager->PlaySoundEffect(SoundManager::SFX::INFO);
mainGame->env->addMessageBox(L"", msgbuf);
mainGame->addMessageBox(L"", msgbuf);
mainGame->gMutex.unlock();
event_base_loopbreak(client_base);
break;
......
......@@ -1933,6 +1933,12 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
switch(event.EventType) {
case irr::EET_GUI_EVENT: {
s32 id = event.GUIEvent.Caller->getID();
if(mainGame->wSysMessage->isVisible() && id != BUTTON_SYS_MSG_OK) {
mainGame->wSysMessage->getParent()->bringToFront(mainGame->wSysMessage);
//mainGame->env->setFocus(mainGame->wSysMessage);
return true;
break;
}
switch(event.GUIEvent.EventType) {
//dont merge these cases
case irr::gui::EGET_BUTTON_CLICKED: {
......@@ -1944,6 +1950,12 @@ bool ClientField::OnCommonEvent(const irr::SEvent& event) {
return true;
break;
}
case BUTTON_SYS_MSG_OK: {
mainGame->soundManager->PlaySoundEffect(SoundManager::SFX::BUTTON);
mainGame->HideElement(mainGame->wSysMessage);
return true;
break;
}
}
break;
}
......
......@@ -578,6 +578,15 @@ bool Game::Initialize(ANDROID_APP app) {
stMessage->setTextAlignment(irr::gui::EGUIA_UPPERLEFT, irr::gui::EGUIA_CENTER);
btnMsgOK = env->addButton(rect<s32>(130 * xScale, 120 * yScale, 260 * xScale, 170 * yScale), wMessage, BUTTON_MSG_OK, dataManager.GetSysString(1211));
ChangeToIGUIImageButton(btnMsgOK, imageManager.tButton_S, imageManager.tButton_S_pressed);
//system message (370)
wSysMessage = env->addWindow(rect<s32>(470 * xScale, 180 * yScale, 860 * xScale, 360 * yScale), false, dataManager.GetSysString(1216));
wSysMessage->getCloseButton()->setVisible(false);
wSysMessage->setVisible(false);
ChangeToIGUIImageWindow(wSysMessage, bgSysMessage, imageManager.tDialog_L);
stSysMessage = env->addStaticText(L"", rect<s32>(20 * xScale, 20 * yScale, 370 * xScale, 100 * yScale), false, true, wSysMessage, -1, false);
stSysMessage->setTextAlignment(irr::gui::EGUIA_UPPERLEFT, irr::gui::EGUIA_CENTER);
btnSysMsgOK = env->addButton(rect<s32>(130 * xScale, 120 * yScale, 260 * xScale, 170 * yScale), wSysMessage, BUTTON_SYS_MSG_OK, dataManager.GetSysString(1211));
ChangeToIGUIImageButton(btnSysMsgOK, imageManager.tButton_S, imageManager.tButton_S_pressed);
//auto fade message (370)
wACMessage = env->addWindow(rect<s32>(490 * xScale, 240 * yScale, 840 * xScale, 300 * yScale), false, L"");
wACMessage->getCloseButton()->setVisible(false);
......@@ -1909,6 +1918,12 @@ void Game::ErrorLog(const char* msg) {
fprintf(fp, "[%s]%s\n", timebuf, msg);
fclose(fp);
}
void Game::addMessageBox(const wchar_t* caption, const wchar_t* text) {
SetStaticText(stSysMessage, 370 * xScale, textFont, text);
wSysMessage->setVisible(true);
wSysMessage->getParent()->bringToFront(wSysMessage);
//env->setFocus(wSysMessage);
}
void Game::ClearTextures() {
matManager.mCard.setTexture(0, 0);
imgCard->setImage(imageManager.tCover[0]);
......
......@@ -166,6 +166,7 @@ public:
void ClearChatMsg();
void AddDebugMsg(const char* msgbuf);
void ErrorLog(const char* msgbuf);
void addMessageBox(const wchar_t* caption, const wchar_t* text);
void initUtils();
void ClearTextures();
void CloseGameButtons();
......@@ -415,6 +416,11 @@ public:
irr::gui::IGUIImage* bgMessage;
irr::gui::IGUIStaticText* stMessage;
irr::gui::IGUIButton* btnMsgOK;//
//system message
irr::gui::IGUIWindow* wSysMessage;
irr::gui::IGUIImage* bgSysMessage;
irr::gui::IGUIStaticText* stSysMessage;
irr::gui::IGUIButton* btnSysMsgOK;
//auto close message
irr::gui::IGUIWindow* wACMessage;
irr::gui::IGUIStaticText* stACMessage;
......@@ -745,6 +751,7 @@ private:
#define BUTTON_MSG_OK 200
#define BUTTON_YES 201
#define BUTTON_NO 202
#define BUTTON_SYS_MSG_OK 203
#define BUTTON_HAND1 205
#define BUTTON_HAND2 206
#define BUTTON_HAND3 207
......
......@@ -42,7 +42,6 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
}
#endif
switch(event.EventType) {
wchar_t textBuffer[256];
case irr::EET_GUI_EVENT: {
irr::gui::IGUIElement* caller = event.GUIEvent.Caller;
s32 id = caller->getID();
......@@ -61,11 +60,6 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
else
mainGame->soundManager->PlaySoundEffect(SoundManager::SFX::BUTTON);
switch(id) {
case BUTTON_MSG_OK: {
mainGame->soundManager->PlaySoundEffect(SoundManager::SFX::BUTTON);
mainGame->HideElement(mainGame->wMessage);
break;
}
case BUTTON_MODE_EXIT: {
mainGame->soundManager->StopBGM();
mainGame->SaveConfig();
......@@ -104,9 +98,7 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
if(status != 0) {
mainGame->gMutex.lock();
mainGame->soundManager->PlaySoundEffect(SoundManager::SFX::INFO);
myswprintf(textBuffer, L"%ls\n%ls", dataManager.GetSysString(1412));
mainGame->SetStaticText(mainGame->stMessage, 370 * mainGame->xScale, mainGame->textFont, textBuffer);
mainGame->PopupElement(mainGame->wMessage);
mainGame->addMessageBox(L"", dataManager.GetSysString(1412));
mainGame->gMutex.unlock();
break;
} else {
......@@ -482,7 +474,7 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
if(Replay::RenameReplay(mainGame->lstReplayList->getListItem(prev_sel), newname)) {
mainGame->lstReplayList->setItem(prev_sel, newname, -1);
} else {
mainGame->env->addMessageBox(L"", dataManager.GetSysString(1365));
mainGame->addMessageBox(L"", dataManager.GetSysString(1365));
}
}
prev_operation = 0;
......
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