Commit 2047b1ec authored by nanahira's avatar nanahira

add test script

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