Commit dfce1705 authored by argon.sun's avatar argon.sun

fix

parent 2304847f
This diff is collapsed.
......@@ -139,26 +139,24 @@ bool Game::Initialize() {
btnHostConfirm = env->addButton(rect<s32>(260, 355, 370, 380), wCreateHost, BUTTON_HOST_CONFIRM, dataManager.GetSysString(1211));
btnHostCancel = env->addButton(rect<s32>(260, 385, 370, 410), wCreateHost, BUTTON_HOST_CANCEL, dataManager.GetSysString(1212));
//host(single)
wHostSingle = env->addWindow(rect<s32>(270, 120, 750, 420), false, dataManager.GetSysString(1250));
wHostSingle->getCloseButton()->setVisible(false);
wHostSingle->setVisible(false);
btnHostSingleDuelist = env->addButton(rect<s32>(10, 30, 110, 55), wHostSingle, BUTTON_HS_DUELIST, dataManager.GetSysString(1251));
stHostSingleDuelist[0] = env->addStaticText(L"", rect<s32>(40, 65, 240, 85), true, false, wHostSingle);
btnHostSingleKick[0] = env->addButton(rect<s32>(10, 65, 30, 85), wHostSingle, BUTTON_HS_KICK, L"X");
chkHostSingleReady[0] = env->addCheckBox(false, rect<s32>(250, 65, 270, 85), wHostSingle, CHECKBOX_HS_READY, L"");
chkHostSingleReady[0]->setEnabled(false);
stHostSingleDuelist[1] = env->addStaticText(L"", rect<s32>(40, 90, 240, 110), true, false, wHostSingle);
btnHostSingleKick[1] = env->addButton(rect<s32>(10, 90, 30, 110), wHostSingle, BUTTON_HS_KICK, L"X");
chkHostSingleReady[1] = env->addCheckBox(false, rect<s32>(250, 90, 270, 110), wHostSingle, CHECKBOX_HS_READY, L"");
chkHostSingleReady[1]->setEnabled(false);
btnHostSingleOB = env->addButton(rect<s32>(10, 120, 110, 145), wHostSingle, BUTTON_HS_OBSERVER, dataManager.GetSysString(1252));
wHostPrepare = env->addWindow(rect<s32>(270, 120, 750, 440), false, dataManager.GetSysString(1250));
wHostPrepare->getCloseButton()->setVisible(false);
wHostPrepare->setVisible(false);
btnHostPrepDuelist = env->addButton(rect<s32>(10, 30, 110, 55), wHostPrepare, BUTTON_HP_DUELIST, dataManager.GetSysString(1251));
for(int i = 0; i < 4; ++i) {
stHostPrepDuelist[i] = env->addStaticText(L"", rect<s32>(40, 65 + i * 25, 240, 85 + i * 25), true, false, wHostPrepare);
btnHostPrepKick[i] = env->addButton(rect<s32>(10, 65 + i * 25, 30, 85 + i * 25), wHostPrepare, BUTTON_HP_KICK, L"X");
chkHostPrepReady[i] = env->addCheckBox(false, rect<s32>(250, 65 + i * 25, 270, 85 + i * 25), wHostPrepare, CHECKBOX_HP_READY, L"");
chkHostPrepReady[i]->setEnabled(false);
}
btnHostPrepOB = env->addButton(rect<s32>(10, 170, 110, 195), wHostPrepare, BUTTON_HP_OBSERVER, dataManager.GetSysString(1252));
myswprintf(dataManager.strBuffer, L"%ls%d", dataManager.GetSysString(1253), 0);
stHostSingleOB = env->addStaticText(dataManager.strBuffer, rect<s32>(10, 150, 270, 170), false, false, wHostSingle);
stHostSingleRule = env->addStaticText(L"", rect<s32>(280, 30, 460, 230), false, true, wHostSingle);
env->addStaticText(dataManager.GetSysString(1254), rect<s32>(10, 185, 110, 205), false, false, wHostSingle);
cbDeckSelect = env->addComboBox(rect<s32>(120, 180, 270, 205), wHostSingle);
btnHostSingleStart = env->addButton(rect<s32>(230, 260, 340, 285), wHostSingle, BUTTON_HS_START, dataManager.GetSysString(1215));
btnHostSingleCancel = env->addButton(rect<s32>(350, 260, 460, 285), wHostSingle, BUTTON_HS_CANCEL, dataManager.GetSysString(1212));
stHostPrepOB = env->addStaticText(dataManager.strBuffer, rect<s32>(10, 200, 270, 220), false, false, wHostPrepare);
stHostPrepRule = env->addStaticText(L"", rect<s32>(280, 30, 460, 230), false, true, wHostPrepare);
env->addStaticText(dataManager.GetSysString(1254), rect<s32>(10, 235, 110, 255), false, false, wHostPrepare);
cbDeckSelect = env->addComboBox(rect<s32>(120, 230, 270, 255), wHostPrepare);
btnHostPrepStart = env->addButton(rect<s32>(230, 280, 340, 305), wHostPrepare, BUTTON_HP_START, dataManager.GetSysString(1215));
btnHostPrepCancel = env->addButton(rect<s32>(350, 280, 460, 305), wHostPrepare, BUTTON_HP_CANCEL, dataManager.GetSysString(1212));
//img
wCardImg = env->addStaticText(L"", rect<s32>(1, 1, 199, 273), true, false, 0, -1, true);
wCardImg->setBackgroundColor(0xc0c0c0c0);
......@@ -782,6 +780,14 @@ void Game::AddChatMsg(wchar_t* msg, int player) {
chatMsg[0].append(dInfo.clientname);
chatMsg[0].append(L": ");
break;
case 2: //host tag
chatMsg[0].append(dInfo.hostname_tag);
chatMsg[0].append(L": ");
break;
case 3: //client tag
chatMsg[0].append(dInfo.clientname_tag);
chatMsg[0].append(L": ");
break;
case 8: //system custom message, no prefix.
chatMsg[0].append(L"[System]: ");
break;
......
......@@ -32,11 +32,15 @@ struct DuelInfo {
bool isObserver;
bool isFirst;
bool is_shuffling;
bool is_tag;
bool tag_player[2];
int lp[2];
int turn;
short curMsg;
wchar_t hostname[20];
wchar_t clientname[20];
wchar_t hostname_tag[20];
wchar_t clientname_tag[20];
wchar_t strLP[2][16];
wchar_t strTurn[8];
wchar_t* vic_string;
......@@ -195,18 +199,18 @@ public:
irr::gui::IGUICheckBox* chkNoShuffleDeck;
irr::gui::IGUIButton* btnHostConfirm;
irr::gui::IGUIButton* btnHostCancel;
//host(single)
irr::gui::IGUIWindow* wHostSingle;
irr::gui::IGUIButton* btnHostSingleDuelist;
irr::gui::IGUIButton* btnHostSingleOB;
irr::gui::IGUIStaticText* stHostSingleDuelist[2];
irr::gui::IGUICheckBox* chkHostSingleReady[2];
irr::gui::IGUIButton* btnHostSingleKick[2];
//host panel
irr::gui::IGUIWindow* wHostPrepare;
irr::gui::IGUIButton* btnHostPrepDuelist;
irr::gui::IGUIButton* btnHostPrepOB;
irr::gui::IGUIStaticText* stHostPrepDuelist[4];
irr::gui::IGUICheckBox* chkHostPrepReady[4];
irr::gui::IGUIButton* btnHostPrepKick[4];
irr::gui::IGUIComboBox* cbDeckSelect;
irr::gui::IGUIStaticText* stHostSingleRule;
irr::gui::IGUIStaticText* stHostSingleOB;
irr::gui::IGUIButton* btnHostSingleStart;
irr::gui::IGUIButton* btnHostSingleCancel;
irr::gui::IGUIStaticText* stHostPrepRule;
irr::gui::IGUIStaticText* stHostPrepOB;
irr::gui::IGUIButton* btnHostPrepStart;
irr::gui::IGUIButton* btnHostPrepCancel;
//replay
irr::gui::IGUIWindow* wReplay;
irr::gui::IGUIListBox* lstReplayList;
......@@ -365,12 +369,12 @@ extern Game* mainGame;
#define BUTTON_HOST_CONFIRM 114
#define BUTTON_HOST_CANCEL 115
#define BUTTON_LAN_REFRESH 116
#define BUTTON_HS_DUELIST 120
#define BUTTON_HS_OBSERVER 121
#define BUTTON_HS_START 122
#define BUTTON_HS_CANCEL 123
#define BUTTON_HS_KICK 124
#define CHECKBOX_HS_READY 125
#define BUTTON_HP_DUELIST 120
#define BUTTON_HP_OBSERVER 121
#define BUTTON_HP_START 122
#define BUTTON_HP_CANCEL 123
#define BUTTON_HP_KICK 124
#define CHECKBOX_HP_READY 125
#define LISTBOX_REPLAY_LIST 130
#define BUTTON_LOAD_REPLAY 131
#define BUTTON_CANCEL_REPLAY 132
......
......@@ -84,16 +84,16 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
mainGame->ShowElement(mainGame->wLanWindow);
break;
}
case BUTTON_HS_DUELIST: {
case BUTTON_HP_DUELIST: {
DuelClient::SendPacketToServer(CTOS_HS_TODUELIST);
break;
}
case BUTTON_HS_OBSERVER: {
case BUTTON_HP_OBSERVER: {
DuelClient::SendPacketToServer(CTOS_HS_TOOBSERVER);
break;
}
case BUTTON_HS_KICK: {
int id = caller - static_cast<IGUIElement*>(mainGame->btnHostSingleKick[0]);
case BUTTON_HP_KICK: {
int id = caller - static_cast<IGUIElement*>(mainGame->btnHostPrepKick[0]);
CTOS_Kick csk;
if(id == 0)
csk.pos = 0;
......@@ -101,19 +101,19 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
DuelClient::SendPacketToServer(CTOS_HS_KICK, csk);
break;
}
case BUTTON_HS_START: {
if(!mainGame->chkHostSingleReady[0]->isChecked()
|| !mainGame->chkHostSingleReady[0]->isChecked())
case BUTTON_HP_START: {
if(!mainGame->chkHostPrepReady[0]->isChecked()
|| !mainGame->chkHostPrepReady[1]->isChecked())
break;
DuelClient::SendPacketToServer(CTOS_HS_START);
break;
}
case BUTTON_HS_CANCEL: {
case BUTTON_HP_CANCEL: {
DuelClient::StopClient();
mainGame->btnCreateHost->setEnabled(true);
mainGame->btnJoinHost->setEnabled(true);
mainGame->btnJoinCancel->setEnabled(true);
mainGame->HideElement(mainGame->wHostSingle);
mainGame->HideElement(mainGame->wHostPrepare);
mainGame->ShowElement(mainGame->wLanWindow);
if(exit_on_return)
mainGame->device->closeDevice();
......@@ -234,10 +234,10 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
}
case irr::gui::EGET_CHECKBOX_CHANGED: {
switch(id) {
case CHECKBOX_HS_READY: {
case CHECKBOX_HP_READY: {
if(!caller->isEnabled())
break;
mainGame->env->setFocus(mainGame->wHostSingle);
mainGame->env->setFocus(mainGame->wHostPrepare);
if(static_cast<irr::gui::IGUICheckBox*>(caller)->isChecked()) {
if(mainGame->cbDeckSelect->getSelected() == -1 ||
!deckManager.LoadDeck(mainGame->cbDeckSelect->getItem(mainGame->cbDeckSelect->getSelected()))) {
......
......@@ -95,17 +95,6 @@ struct STOC_HS_PlayerChange {
struct STOC_HS_WatchChange {
unsigned short watch_count;
};
struct STOC_HT_PlayerEnter {
unsigned short name[20];
unsigned char pos;
};
struct STOC_HT_PlayerChange {
//pos<<4 | state
unsigned char status;
};
struct STOC_HT_WatchChange {
unsigned short watch_count;
};
class DuelMode;
......@@ -186,12 +175,6 @@ public:
#define CTOS_HS_NOTREADY 0x23
#define CTOS_HS_KICK 0x24
#define CTOS_HS_START 0x25
#define CTOS_HT_TODUELIST 0x30
#define CTOS_HT_TOOBSERVER 0x31
#define CTOS_HT_READY 0x32
#define CTOS_HT_NOTREADY 0x33
#define CTOS_HT_KICK 0x34
#define CTOS_HT_START 0x35
#define STOC_GAME_MSG 0x1
#define STOC_ERROR_MSG 0x2
......@@ -213,9 +196,6 @@ public:
#define STOC_HS_PLAYER_ENTER 0x20
#define STOC_HS_PLAYER_CHANGE 0x21
#define STOC_HS_WATCH_CHANGE 0x22
#define STOC_HT_PLAYER_ENTER 0x30
#define STOC_HT_PLAYER_CHANGE 0x31
#define STOC_HT_WATCH_CHANGE 0x32
#define PLAYERCHANGE_READY 0x1
#define PLAYERCHANGE_NOTREADY 0x2
......
This diff is collapsed.
......@@ -3519,6 +3519,8 @@ int32 field::process_turn(uint16 step, uint8 turn_player) {
(*rit)->recharge();
infos.turn_id++;
infos.turn_player = turn_player;
if(core.duel_options & DUEL_TAG_MODE)
tag_swap(turn_player);
pduel->write_buffer8(MSG_NEW_TURN);
pduel->write_buffer8(turn_player);
if(is_player_affected_by_effect(infos.turn_player, EFFECT_SKIP_TURN)) {
......
......@@ -309,9 +309,9 @@
!system 1349 录像信息:
!system 1350 离开
!system 1351 投降
!system 1390 等待对方行动中...
!system 1391 等待对方行动中....
!system 1392 等待对方行动中.....
!system 1390 等待行动中...
!system 1391 等待行动中....
!system 1392 等待行动中.....
!system 1400 无法连接到主机。
!system 1401 连接已断开。
!system 1402 网络传输发生错误。
......
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