Those help to find out what request the random numbers and if you know that then you know where the differences are between turn master and non turn master. --- src/ai/ai_shoot_module.cpp | 2 ++ src/graphic/polygon.cpp | 10 ++++++++-- src/network/randomsync.cpp | 7 +++---- src/object/physical_obj.cpp | 12 ++++++++---- src/team/teams_list.cpp | 1 + 5 files changed, 22 insertions(+), 10 deletions(-)
diff --git a/src/ai/ai_shoot_module.cpp b/src/ai/ai_shoot_module.cpp index a8778c6..c14fe58 100644 --- a/src/ai/ai_shoot_module.cpp +++ b/src/ai/ai_shoot_module.cpp @@ -210,6 +210,7 @@ bool AIShootModule::SelectFiringWeapon(double /*shoot_angle*/) const // randomly choose a good one // TODO: in the future add logic to discriminate between weapons + MSG_DEBUG("random.get", "AIShootModule::SelectFiringWeapon(...)"); uint selected = RandomSync().GetUint(0, count-1); ActiveTeam().SetWeapon(usable_weapons.at(selected)); @@ -502,6 +503,7 @@ void AIShootModule::BeginTurn() SetStrategy(NO_STRATEGY); // Choose random direction for the moment + MSG_DEBUG("random.get", "AIShootModule::BeginTurn(...)"); ActiveCharacter().SetDirection( RandomSync().GetBool()?DIRECTION_LEFT:DIRECTION_RIGHT ); } diff --git a/src/graphic/polygon.cpp b/src/graphic/polygon.cpp index 196be21..283a218 100644 --- a/src/graphic/polygon.cpp +++ b/src/graphic/polygon.cpp @@ -474,6 +474,7 @@ Point2d Polygon::GetRandomUpperPoint() std::vector<Point2d>::iterator point = transformed_shape.begin(); Point2d tmp, previous; tmp = *point; + MSG_DEBUG("random.get", "Polygon::GetRandomUpperPoint()"); int start = RandomSync().GetInt(0, GetNbOfPoint()); int i; for(i = 0; i < start; i++) @@ -526,8 +527,11 @@ void Polygon::AddRandomCurve(const Point2d& start, const Point2d& end, if(add_first_point) AddPoint(start); for (int i = 1; i < num_steps - 1; i++) { - AddPoint(start + (step * i) + Point2d(RandomSync().GetDouble(-x_random_offset, x_random_offset), - RandomSync().GetDouble(-y_random_offset, y_random_offset))); + MSG_DEBUG("random.get", "Polygon::AddRandomCurve(...)"); + double x = RandomSync().GetDouble(-x_random_offset, x_random_offset); + MSG_DEBUG("random.get", "Polygon::AddRandomCurve(...)"); + double y = RandomSync().GetDouble(-y_random_offset, y_random_offset); + AddPoint(start + (step * i) + Point2d(x,y)); } if(add_last_point) AddPoint(end); @@ -562,8 +566,10 @@ Polygon * Polygon::GetBezierInterpolation(double smooth_value, int num_steps, do // Randomization if(rand != 0.0) { + MSG_DEBUG("random.get", "Polygon::GetBezierInterpolation(...)"); trans.SetRotation(RandomSync().GetDouble(-rand, rand)); v1 = trans * v1; + MSG_DEBUG("random.get", "Polygon::GetBezierInterpolation(...)"); trans.SetRotation(RandomSync().GetDouble(-rand, rand)); v2 = trans * v2; } diff --git a/src/network/randomsync.cpp b/src/network/randomsync.cpp index 25e0201..e86f8df 100644 --- a/src/network/randomsync.cpp +++ b/src/network/randomsync.cpp @@ -30,10 +30,6 @@ void RandomSyncGen::InitRandom() { MSG_DEBUG("random", "Initialization..."); -#ifdef DEBUG - nb_get = 0; -#endif - if (Network::GetInstance()->IsLocal()) { int seed = time(NULL); SetRand(seed); @@ -64,6 +60,9 @@ uint RandomSyncGen::GetRand() void RandomSyncGen::SetRand(uint seed) { +#ifdef DEBUG + nb_get = 0; +#endif RandomGenerator::SetRand(seed); } diff --git a/src/object/physical_obj.cpp b/src/object/physical_obj.cpp index 5ff1f56..f1885da 100644 --- a/src/object/physical_obj.cpp +++ b/src/object/physical_obj.cpp @@ -770,16 +770,20 @@ bool PhysicalObj::PutRandomly(bool on_top_of_world, double min_dst_with_characte if (on_top_of_world) { // Give a random position for x - if(net_sync) + if(net_sync) { + MSG_DEBUG("random.get", "PhysicalObj::PutRandomly(...)"); position.x = RandomSync().GetLong(0, GetWorld().GetWidth() - GetWidth()); - else + } else { position.x = RandomLocal().GetLong(0, GetWorld().GetWidth() - GetWidth()); + } position.y = -GetHeight()+1; } else { - if(net_sync) + if(net_sync) { + MSG_DEBUG("random.get", "PhysicalObj::PutRandomly(...)"); position = RandomSync().GetPoint(GetWorld().GetSize() - GetSize() + 1); - else + } else { position = RandomLocal().GetPoint(GetWorld().GetSize() - GetSize() + 1); + } } SetXY(position); MSG_DEBUG("physic.position", "%s (try %u/%u) - Test in %d, %d", diff --git a/src/team/teams_list.cpp b/src/team/teams_list.cpp index 286930c..98b1457 100644 --- a/src/team/teams_list.cpp +++ b/src/team/teams_list.cpp @@ -206,6 +206,7 @@ void TeamsList::LoadGamingData() void TeamsList::RandomizeFirstPlayer() { active_team = playing_list.begin(); + MSG_DEBUG("random.get", "TeamList::RandomizeFirstPlayer()"); int skip = RandomSync().GetLong(0, playing_list.size() - 1); for(int i = 0; i < skip; i++) active_team++; -- 1.6.0.4 _______________________________________________ Wormux-dev mailing list Wormux-dev@gna.org https://mail.gna.org/listinfo/wormux-dev