Commit 46887220 authored by edo9300's avatar edo9300

Fix host parameters for cross platform duels

parent f3bb7c02
...@@ -119,29 +119,31 @@ void DuelClient::ClientEvent(bufferevent *bev, short events, void *ctx) { ...@@ -119,29 +119,31 @@ void DuelClient::ClientEvent(bufferevent *bev, short events, void *ctx) {
cscg.info.draw_count = _wtoi(mainGame->ebDrawCount->getText()); cscg.info.draw_count = _wtoi(mainGame->ebDrawCount->getText());
cscg.info.time_limit = _wtoi(mainGame->ebTimeLimit->getText()); cscg.info.time_limit = _wtoi(mainGame->ebTimeLimit->getText());
cscg.info.lflist = mainGame->cbLFlist->getItemData(mainGame->cbLFlist->getSelected()); cscg.info.lflist = mainGame->cbLFlist->getItemData(mainGame->cbLFlist->getSelected());
cscg.info.destiny_draw = mainGame->chkDrawDestiny->isChecked();
cscg.info.sealed = mainGame->chkRules[0]->isChecked();
cscg.info.booster = mainGame->chkRules[1]->isChecked();
cscg.info.action = mainGame->chkRules[2]->isChecked();
cscg.info.speed = mainGame->chkRules[3]->isChecked();
cscg.info.concentration = mainGame->chkRules[4]->isChecked();
cscg.info.boss = mainGame->chkRules[5]->isChecked();
cscg.info.city = mainGame->chkRules[6]->isChecked();
cscg.info.kingdom = mainGame->chkRules[7]->isChecked();
cscg.info.rose = mainGame->chkRules[8]->isChecked();
cscg.info.turbo1 = mainGame->chkRules[9]->isChecked();
cscg.info.turbo2 = mainGame->chkRules[10]->isChecked();
cscg.info.doubled = mainGame->chkRules[11]->isChecked();
cscg.info.command = mainGame->chkRules[12]->isChecked();
cscg.info.master = mainGame->chkRules[13]->isChecked();
cscg.info.rule_count = 0;
for (int i = 0; i < 14; ++i) {
if (mainGame->chkRules[i]->isChecked() && i!=11)
++cscg.info.rule_count;
}
cscg.info.duel_rule = mainGame->cbDuelRule->getSelected(); cscg.info.duel_rule = mainGame->cbDuelRule->getSelected();
cscg.info.no_check_deck = mainGame->chkNoCheckDeck->isChecked(); cscg.info.no_check_deck = mainGame->chkNoCheckDeck->isChecked();
cscg.info.no_shuffle_deck = mainGame->chkNoShuffleDeck->isChecked(); cscg.info.no_shuffle_deck = mainGame->chkNoShuffleDeck->isChecked();
cscg.info.destiny_draw = mainGame->chkDrawDestiny->isChecked() ? 2 : 0;
cscg.info.sealed = mainGame->chkRules[0]->isChecked() ? 2 : 0;
cscg.info.booster = mainGame->chkRules[1]->isChecked() ? 2 : 0;
cscg.info.action = mainGame->chkRules[2]->isChecked() ? 2 : 0;
cscg.info.speed = mainGame->chkRules[3]->isChecked() ? 2 : 0;
cscg.info.concentration = mainGame->chkRules[4]->isChecked() ? 2 : 0;
cscg.info.boss = mainGame->chkRules[5]->isChecked() ? 2 : 0;
cscg.info.city = mainGame->chkRules[6]->isChecked() ? 2 : 0;
cscg.info.kingdom = mainGame->chkRules[7]->isChecked() ? 2 : 0;
cscg.info.rose = mainGame->chkRules[8]->isChecked() ? 2 : 0;
cscg.info.turbo1 = mainGame->chkRules[9]->isChecked() ? 2 : 0;
cscg.info.turbo2 = mainGame->chkRules[10]->isChecked() ? 2 : 0;
cscg.info.doubled = mainGame->chkRules[11]->isChecked() ? 2 : 0;
cscg.info.command = mainGame->chkRules[12]->isChecked() ? 2 : 0;
cscg.info.master = mainGame->chkRules[13]->isChecked() ? 2 : 0;
cscg.info.rule_count = 0;
for (int i = 0; i < 14; ++i) {
if (mainGame->chkRules[i]->isChecked() && i != 11) {
cscg.info.rule_count = 2;
break;
}
}
SendPacketToServer(CTOS_CREATE_GAME, cscg); SendPacketToServer(CTOS_CREATE_GAME, cscg);
} else { } else {
CTOS_JoinGame csjg; CTOS_JoinGame csjg;
...@@ -356,7 +358,7 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) { ...@@ -356,7 +358,7 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1260 + pkt->info.duel_rule)); myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1260 + pkt->info.duel_rule));
str.append(msgbuf); str.append(msgbuf);
} }
if(pkt->info.destiny_draw) { if(pkt->info.destiny_draw==2) {
myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1626)); myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1626));
str.append(msgbuf); str.append(msgbuf);
} }
...@@ -368,59 +370,59 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) { ...@@ -368,59 +370,59 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1230)); myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1230));
str.append(msgbuf); str.append(msgbuf);
} }
if(pkt->info.sealed) { if(pkt->info.sealed == 2) {
myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1132)); myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1132));
str2.append(msgbuf); str2.append(msgbuf);
} }
if(pkt->info.booster) { if(pkt->info.booster == 2) {
myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1133)); myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1133));
str2.append(msgbuf); str2.append(msgbuf);
} }
if(pkt->info.action) { if(pkt->info.action == 2) {
myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1134)); myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1134));
str2.append(msgbuf); str2.append(msgbuf);
} }
if(pkt->info.speed) { if(pkt->info.speed == 2) {
myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1135)); myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1135));
str2.append(msgbuf); str2.append(msgbuf);
} }
if(pkt->info.concentration) { if(pkt->info.concentration == 2) {
myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1136)); myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1136));
str2.append(msgbuf); str2.append(msgbuf);
} }
if(pkt->info.boss) { if(pkt->info.boss == 2) {
myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1137)); myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1137));
str2.append(msgbuf); str2.append(msgbuf);
} }
if(pkt->info.city) { if(pkt->info.city == 2) {
myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1138)); myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1138));
str2.append(msgbuf); str2.append(msgbuf);
} }
if(pkt->info.kingdom) { if(pkt->info.kingdom == 2) {
myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1139)); myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1139));
str2.append(msgbuf); str2.append(msgbuf);
} }
if(pkt->info.rose) { if(pkt->info.rose == 2) {
myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1140)); myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1140));
str2.append(msgbuf); str2.append(msgbuf);
} }
if(pkt->info.turbo1) { if(pkt->info.turbo1 == 2) {
myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1141)); myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1141));
str2.append(msgbuf); str2.append(msgbuf);
} }
if(pkt->info.turbo2) { if(pkt->info.turbo2 == 2) {
myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1142)); myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1142));
str2.append(msgbuf); str2.append(msgbuf);
} }
if(pkt->info.doubled) { if(pkt->info.doubled == 2) {
myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1143)); myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1143));
str2.append(msgbuf); str2.append(msgbuf);
} }
if(pkt->info.command) { if(pkt->info.command == 2) {
myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1144)); myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1144));
str2.append(msgbuf); str2.append(msgbuf);
} }
if(pkt->info.master) { if(pkt->info.master == 2) {
myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1145)); myswprintf(msgbuf, L"*%ls\n", dataManager.GetSysString(1145));
str2.append(msgbuf); str2.append(msgbuf);
} }
...@@ -459,7 +461,7 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) { ...@@ -459,7 +461,7 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
mainGame->RefreshDeck(mainGame->cbDeckSelect); mainGame->RefreshDeck(mainGame->cbDeckSelect);
mainGame->RefreshDeck(mainGame->cbDeckSelect2); mainGame->RefreshDeck(mainGame->cbDeckSelect2);
mainGame->cbDeckSelect->setEnabled(true); mainGame->cbDeckSelect->setEnabled(true);
if (pkt->info.doubled) { if (pkt->info.doubled == 2) {
mainGame->cbDeckSelect2->setVisible(true); mainGame->cbDeckSelect2->setVisible(true);
mainGame->cbDeckSelect2->setEnabled(true); mainGame->cbDeckSelect2->setEnabled(true);
}else{ }else{
...@@ -471,7 +473,7 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) { ...@@ -471,7 +473,7 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
else if (mainGame->wLanWindow->isVisible()) else if (mainGame->wLanWindow->isVisible())
mainGame->HideElement(mainGame->wLanWindow); mainGame->HideElement(mainGame->wLanWindow);
mainGame->ShowElement(mainGame->wHostPrepare); mainGame->ShowElement(mainGame->wHostPrepare);
if(pkt->info.rule_count > 0) if(pkt->info.rule_count == 2)
mainGame->ShowElement(mainGame->wHostPrepare2); mainGame->ShowElement(mainGame->wHostPrepare2);
mainGame->wChat->setVisible(true); mainGame->wChat->setVisible(true);
mainGame->gMutex.Unlock(); mainGame->gMutex.Unlock();
......
...@@ -15,22 +15,6 @@ struct HostInfo { ...@@ -15,22 +15,6 @@ struct HostInfo {
unsigned int lflist; unsigned int lflist;
unsigned char rule; unsigned char rule;
unsigned char mode; unsigned char mode;
bool destiny_draw;
bool sealed;
bool booster;
bool action;
bool speed;
bool concentration;
bool boss;
bool city;
bool kingdom;
bool rose;
bool turbo1;
bool turbo2;
bool doubled;
bool command;
bool master;
unsigned int rule_count;
unsigned char duel_rule; unsigned char duel_rule;
bool no_check_deck; bool no_check_deck;
bool no_shuffle_deck; bool no_shuffle_deck;
...@@ -38,6 +22,22 @@ struct HostInfo { ...@@ -38,6 +22,22 @@ struct HostInfo {
unsigned char start_hand; unsigned char start_hand;
unsigned char draw_count; unsigned char draw_count;
unsigned short time_limit; unsigned short time_limit;
int destiny_draw;
int sealed;
int booster;
int action;
int speed;
int concentration;
int boss;
int city;
int kingdom;
int rose;
int turbo1;
int turbo2;
int doubled;
int command;
int master;
int rule_count;
}; };
struct HostPacket { struct HostPacket {
unsigned short identifier; unsigned short identifier;
......
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