Commit 11cf6384 authored by nanahira's avatar nanahira

Merge branch 'setseed' into server

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