Commit 48219da9 authored by 神楽坂玲奈's avatar 神楽坂玲奈

command line support

parent 652b6d75
......@@ -62,5 +62,6 @@ using namespace gui;
extern const unsigned short PRO_VERSION;
extern bool enable_log;
extern bool exit_on_return;
#endif
......@@ -71,7 +71,9 @@ bool DeckBuilder::OnEvent(const irr::SEvent& event) {
mainGame->scrFilter->setVisible(false);
if(mainGame->cbDBDecks->getSelected() != -1) {
BufferIO::CopyWStr(mainGame->cbDBDecks->getItem(mainGame->cbDBDecks->getSelected()), mainGame->gameConf.lastdeck, 64);
}
}
if(exit_on_return)
mainGame->device->closeDevice();
break;
}
case BUTTON_EFFECT_FILTER: {
......
......@@ -432,6 +432,8 @@ void DuelClient::HandleSTOCPacketLan(char* data, unsigned int len) {
mainGame->ShowElement(mainGame->wLanWindow);
mainGame->gMutex.Unlock();
event_base_loopbreak(client_base);
if(exit_on_return)
mainGame->device->closeDevice();
break;
}
case STOC_REPLAY: {
......
......@@ -3,6 +3,7 @@
#include <event2/thread.h>
bool enable_log = false;
bool exit_on_return = false;
int main(int argc, char* argv[]) {
#ifdef _WIN32
......@@ -18,8 +19,34 @@ int main(int argc, char* argv[]) {
ygo::mainGame = &_game;
if(!ygo::mainGame->Initialize())
return 0;
if(argc >= 2 && !strcmp(argv[1], "-debug"))
enable_log = true;
if(argc >= 2)
if(!strcmp(argv[1], "-debug"))
enable_log = true;
/*command line args:
* -j: join host (host info from system.conf)
* -d: deck edit
* -r: replay */
else if(!strcmp(argv[1], "-j") or !strcmp(argv[1], "-d") or !strcmp(argv[1], "-r")){
exit_on_return = true;
irr::SEvent event;
event.EventType = irr::EET_GUI_EVENT;
event.GUIEvent.EventType = irr::gui::EGET_BUTTON_CLICKED;
if(!strcmp(argv[1], "-j")){
event.GUIEvent.Caller = ygo::mainGame->btnLanMode;
ygo::mainGame->device->postEventFromUser(event);
event.GUIEvent.Caller = ygo::mainGame->btnJoinHost;
ygo::mainGame->device->postEventFromUser(event);
}else if(!strcmp(argv[1], "-d")){
event.GUIEvent.Caller = ygo::mainGame->btnDeckEdit;
ygo::mainGame->device->postEventFromUser(event);
}else if(!strcmp(argv[1], "-r")){
event.GUIEvent.Caller = ygo::mainGame->btnReplayMode;
ygo::mainGame->device->postEventFromUser(event);
ygo::mainGame->lstReplayList->setSelected(0);
event.GUIEvent.Caller = ygo::mainGame->btnLoadReplay;
}
}
ygo::mainGame->MainLoop();
#ifdef _WIN32
WSACleanup();
......
......@@ -115,6 +115,8 @@ bool MenuHandler::OnEvent(const irr::SEvent& event) {
mainGame->btnJoinCancel->setEnabled(true);
mainGame->HideElement(mainGame->wHostSingle);
mainGame->ShowElement(mainGame->wLanWindow);
if(exit_on_return)
mainGame->device->closeDevice();
break;
}
case BUTTON_REPLAY_MODE: {
......
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