Commit 2047b1ec authored by nanahira's avatar nanahira

add test script

parent d4006081
...@@ -58,6 +58,13 @@ void Game::MainServerLoop() { ...@@ -58,6 +58,13 @@ void Game::MainServerLoop() {
#endif #endif
} }
} }
void Game::MainTestLoop(int code) {
LoadBetaDB();
LoadExpansionDB();
dataManager.LoadDB("cards.cdb");
fflush(stdout);
NetServer::InitTestCard(code);
}
void Game::LoadBetaDB() { void Game::LoadBetaDB() {
#ifdef _WIN32 #ifdef _WIN32
char fpath[1000]; char fpath[1000];
...@@ -1625,11 +1632,10 @@ void Game::ClearChatMsg() { ...@@ -1625,11 +1632,10 @@ void Game::ClearChatMsg() {
void Game::AddDebugMsg(char* msg) void Game::AddDebugMsg(char* msg)
{ {
#ifdef YGOPRO_SERVER_MODE #ifdef YGOPRO_SERVER_MODE
#ifdef YGOPRO_TEST_REDTEXT if(aServerPort < 0)
fprintf(stdout, "%s\n", msg); fprintf(stdout, "%s\n", msg);
#else else
fprintf(stderr, "%s\n", msg); fprintf(stderr, "%s\n", msg);
#endif //YGOPRO_TEST_REDTEXT
#else #else
if (enable_log & 0x1) { if (enable_log & 0x1) {
wchar_t wbuf[1024]; wchar_t wbuf[1024];
......
...@@ -120,6 +120,7 @@ public: ...@@ -120,6 +120,7 @@ public:
bool Initialize(); bool Initialize();
#ifdef YGOPRO_SERVER_MODE #ifdef YGOPRO_SERVER_MODE
void MainServerLoop(); void MainServerLoop();
void MainTestLoop(int code);
void LoadExpansionDB(); void LoadExpansionDB();
void LoadBetaDB(); void LoadBetaDB();
void AddDebugMsg(char* msgbuf); void AddDebugMsg(char* msgbuf);
......
...@@ -84,7 +84,14 @@ int main(int argc, char* argv[]) { ...@@ -84,7 +84,14 @@ int main(int argc, char* argv[]) {
ygo::game_info.no_shuffle_deck = false; ygo::game_info.no_shuffle_deck = false;
ygo::game_info.duel_rule = DEFAULT_DUEL_RULE; ygo::game_info.duel_rule = DEFAULT_DUEL_RULE;
ygo::game_info.time_limit = 180; ygo::game_info.time_limit = 180;
if(argc > 1) { if (argc == 2) {
ygo::aServerPort = -1;
int code = atoi(argv[1]);
ygo::mainGame = &_game;
ygo::mainGame->MainTestLoop(code);
return 0;
} else
if(argc > 2) {
ygo::aServerPort = atoi(argv[1]); ygo::aServerPort = atoi(argv[1]);
int lflist = atoi(argv[2]); int lflist = atoi(argv[2]);
if(lflist < 0) if(lflist < 0)
......
...@@ -54,6 +54,10 @@ void NetServer::InitDuel() ...@@ -54,6 +54,10 @@ void NetServer::InitDuel()
BufferIO::CopyWStr(pkt->name, duel_mode->name, 20); BufferIO::CopyWStr(pkt->name, duel_mode->name, 20);
BufferIO::CopyWStr(pkt->pass, duel_mode->pass, 20); BufferIO::CopyWStr(pkt->pass, duel_mode->pass, 20);
} }
void NetServer::InitTestCard(int code) {
DuelMode* test_duel = new SingleDuel(false);
test_duel->TestCard(code);
}
unsigned short NetServer::StartServer(unsigned short port) { unsigned short NetServer::StartServer(unsigned short port) {
#else #else
......
...@@ -28,6 +28,7 @@ public: ...@@ -28,6 +28,7 @@ public:
#ifdef YGOPRO_SERVER_MODE #ifdef YGOPRO_SERVER_MODE
static event_base* net_evbase; static event_base* net_evbase;
static void InitDuel(); static void InitDuel();
static void InitTestCard(int code);
static unsigned short StartServer(unsigned short port); static unsigned short StartServer(unsigned short port);
#else #else
static bool StartServer(unsigned short port); static bool StartServer(unsigned short port);
......
...@@ -135,6 +135,9 @@ public: ...@@ -135,6 +135,9 @@ public:
virtual void GetResponse(DuelPlayer* dp, void* pdata, unsigned int len) {} virtual void GetResponse(DuelPlayer* dp, void* pdata, unsigned int len) {}
virtual void TimeConfirm(DuelPlayer* dp) {} virtual void TimeConfirm(DuelPlayer* dp) {}
virtual void EndDuel() {}; virtual void EndDuel() {};
#ifdef YGOPRO_SERVER_MODE
virtual void TestCard(int code) {};
#endif
public: public:
event* etimer; event* etimer;
......
...@@ -4,7 +4,6 @@ project "ygopro" ...@@ -4,7 +4,6 @@ project "ygopro"
kind "ConsoleApp" kind "ConsoleApp"
defines { "YGOPRO_SERVER_MODE" } defines { "YGOPRO_SERVER_MODE" }
if os.getenv("YGOPRO_TEST_REDTEXT") then defines { "YGOPRO_TEST_REDTEXT" } end
files { "gframe.cpp", "config.h", files { "gframe.cpp", "config.h",
"game.cpp", "game.h", "game.cpp", "game.h",
......
...@@ -1935,5 +1935,21 @@ void SingleDuel::SingleTimer(evutil_socket_t fd, short events, void* arg) { ...@@ -1935,5 +1935,21 @@ void SingleDuel::SingleTimer(evutil_socket_t fd, short events, void* arg) {
event_del(sd->etimer); event_del(sd->etimer);
} }
} }
#ifdef YGOPRO_SERVER_MODE
void SingleDuel::TestCard(int code) {
time_t seed = time(0);
mtrandom rnd;
rnd.reset(seed);
set_script_reader(default_script_reader);
set_card_reader((card_reader)DataManager::CardReader);
set_message_handler((message_handler)SingleDuel::MessageHandler);
rnd.reset(seed);
unsigned long tduel = create_duel(rnd.rand());
set_player_info(tduel, 0, 8000, 5, 1);
set_player_info(tduel, 1, 8000, 5, 1);
new_card(tduel, code, 0, 0, LOCATION_DECK, 0, POS_FACEUP_ATTACK);
end_duel(tduel);
}
#endif
} }
...@@ -28,6 +28,9 @@ public: ...@@ -28,6 +28,9 @@ public:
virtual void GetResponse(DuelPlayer* dp, void* pdata, unsigned int len); virtual void GetResponse(DuelPlayer* dp, void* pdata, unsigned int len);
virtual void TimeConfirm(DuelPlayer* dp); virtual void TimeConfirm(DuelPlayer* dp);
virtual void EndDuel(); virtual void EndDuel();
#ifdef YGOPRO_SERVER_MODE
virtual void TestCard(int code);
#endif
void DuelEndProc(); void DuelEndProc();
void WaitforResponse(int playerid); void WaitforResponse(int playerid);
...@@ -41,6 +44,7 @@ public: ...@@ -41,6 +44,7 @@ public:
static int MessageHandler(long fduel, int type); static int MessageHandler(long fduel, int type);
static void SingleTimer(evutil_socket_t fd, short events, void* arg); static void SingleTimer(evutil_socket_t fd, short events, void* arg);
protected: protected:
DuelPlayer* players[2]; DuelPlayer* players[2];
DuelPlayer* pplayer[2]; DuelPlayer* pplayer[2];
......
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