Commit 11cf6384 authored by nanahira's avatar nanahira

Merge branch 'setseed' into server

parents a7b92d5e cdf9f488
...@@ -27,6 +27,7 @@ Game* mainGame; ...@@ -27,6 +27,7 @@ Game* mainGame;
#ifdef YGOPRO_SERVER_MODE #ifdef YGOPRO_SERVER_MODE
unsigned short aServerPort; unsigned short aServerPort;
unsigned short replay_mode; unsigned short replay_mode;
time_t pre_seed[3];
HostInfo game_info; HostInfo game_info;
void Game::MainServerLoop() { void Game::MainServerLoop() {
......
...@@ -627,8 +627,8 @@ extern Game* mainGame; ...@@ -627,8 +627,8 @@ extern Game* mainGame;
extern unsigned short aServerPort; extern unsigned short aServerPort;
extern unsigned short replay_mode; extern unsigned short replay_mode;
extern HostInfo game_info; extern HostInfo game_info;
extern time_t pre_seed[3];
#endif #endif
} }
#define CARD_IMG_WIDTH 177 #define CARD_IMG_WIDTH 177
......
...@@ -74,6 +74,8 @@ int main(int argc, char* argv[]) { ...@@ -74,6 +74,8 @@ 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;
for (int i = 0; i < 3; ++i)
ygo::pre_seed[i] = (time_t)0;
if (argc == 2) { if (argc == 2) {
int code = atoi(argv[1]); int code = atoi(argv[1]);
ygo::mainGame = &_game; ygo::mainGame = &_game;
...@@ -115,6 +117,10 @@ int main(int argc, char* argv[]) { ...@@ -115,6 +117,10 @@ int main(int argc, char* argv[]) {
ygo::game_info.draw_count = atoi(argv[10]); ygo::game_info.draw_count = atoi(argv[10]);
ygo::game_info.time_limit = atoi(argv[11]); ygo::game_info.time_limit = atoi(argv[11]);
ygo::replay_mode = atoi(argv[12]); ygo::replay_mode = atoi(argv[12]);
for (int i = 13; (i < argc && i <= 15) ; ++i)
{
ygo::pre_seed[i - 13] = (time_t)atoi(argv[i]);
}
} }
ygo::mainGame = &_game; ygo::mainGame = &_game;
ygo::mainGame->MainServerLoop(); ygo::mainGame->MainServerLoop();
......
...@@ -537,6 +537,11 @@ void SingleDuel::TPResult(DuelPlayer* dp, unsigned char tp) { ...@@ -537,6 +537,11 @@ void SingleDuel::TPResult(DuelPlayer* dp, unsigned char tp) {
rh.version = PRO_VERSION; rh.version = PRO_VERSION;
rh.flag = 0; rh.flag = 0;
time_t seed = time(0); time_t seed = time(0);
#ifdef YGOPRO_SERVER_MODE
if(pre_seed[duel_count] > 0) {
seed = pre_seed[duel_count];
}
#endif
rh.seed = seed; rh.seed = seed;
last_replay.BeginRecord(); last_replay.BeginRecord();
last_replay.WriteHeader(rh); last_replay.WriteHeader(rh);
......
...@@ -506,6 +506,11 @@ void TagDuel::TPResult(DuelPlayer* dp, unsigned char tp) { ...@@ -506,6 +506,11 @@ void TagDuel::TPResult(DuelPlayer* dp, unsigned char tp) {
rh.flag = REPLAY_TAG; rh.flag = REPLAY_TAG;
time_t seed = time(0); time_t seed = time(0);
rh.seed = seed; rh.seed = seed;
#ifdef YGOPRO_SERVER_MODE
if(pre_seed[0] > 0) {
seed = pre_seed[0];
}
#endif
last_replay.BeginRecord(); last_replay.BeginRecord();
last_replay.WriteHeader(rh); last_replay.WriteHeader(rh);
rnd.reset(seed); rnd.reset(seed);
......
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