From: <geo...@us...> - 2010-12-26 00:52:23
|
Revision: 3923 http://freeorion.svn.sourceforge.net/freeorion/revision/?rev=3923&view=rev Author: geoffthemedio Date: 2010-12-26 00:52:17 +0000 (Sun, 26 Dec 2010) Log Message: ----------- -Modified Empire serialization to send fleet and resource supply availability, transport and obstruction information, since clients don't always have enough information to reliably predict this, and it can otherwise lead to situations where fleets appear to be in supply, but really aren't due to a hidden obstruction, leading to them appearing to have fuel to move, but having the orders be silently ignored each turn. -Modified MapWnd to not recalculate the client's player's supply information that is not sent as part of Empire during turn initialization. Other empires similar info is still recalculated, though. Modified Paths: -------------- trunk/FreeOrion/UI/MapWnd.cpp trunk/FreeOrion/util/SerializeEmpire.cpp Modified: trunk/FreeOrion/UI/MapWnd.cpp =================================================================== --- trunk/FreeOrion/UI/MapWnd.cpp 2010-12-26 00:49:46 UTC (rev 3922) +++ trunk/FreeOrion/UI/MapWnd.cpp 2010-12-26 00:52:17 UTC (rev 3923) @@ -1696,6 +1696,9 @@ timer.restart(); // determine sytems where fleets can deliver supply, and groups of systems that can exchange resources for (EmpireManager::iterator it = manager.begin(); it != manager.end(); ++it) { + if (it->first == this_client_empire->EmpireID()) + continue; + Empire* empire2 = it->second; // use systems this client's player's empire has explored for all empires, so that this client's Modified: trunk/FreeOrion/util/SerializeEmpire.cpp =================================================================== --- trunk/FreeOrion/util/SerializeEmpire.cpp 2010-12-26 00:49:46 UTC (rev 3922) +++ trunk/FreeOrion/util/SerializeEmpire.cpp 2010-12-26 00:52:17 UTC (rev 3923) @@ -83,7 +83,8 @@ & BOOST_SERIALIZATION_NVP(m_color); if (Universe::ALL_OBJECTS_VISIBLE || - Universe::s_encoding_empire == ALL_EMPIRES || m_id == Universe::s_encoding_empire) + Universe::s_encoding_empire == ALL_EMPIRES || + m_id == Universe::s_encoding_empire) { ar & BOOST_SERIALIZATION_NVP(m_capitol_id) & BOOST_SERIALIZATION_NVP(m_techs) @@ -96,6 +97,16 @@ & BOOST_SERIALIZATION_NVP(m_available_part_types) & BOOST_SERIALIZATION_NVP(m_available_hull_types) & BOOST_SERIALIZATION_NVP(m_explored_systems) + + & BOOST_SERIALIZATION_NVP(m_fleet_supplyable_system_ids) + & BOOST_SERIALIZATION_NVP(m_fleet_supply_starlane_traversals) + & BOOST_SERIALIZATION_NVP(m_fleet_supply_system_ranges) + & BOOST_SERIALIZATION_NVP(m_resource_supply_groups) + & BOOST_SERIALIZATION_NVP(m_resource_supply_starlane_traversals) + & BOOST_SERIALIZATION_NVP(m_resource_supply_obstructed_starlane_traversals) + & BOOST_SERIALIZATION_NVP(m_resource_supply_system_ranges) + & BOOST_SERIALIZATION_NVP(m_supply_unobstructed_systems) + & BOOST_SERIALIZATION_NVP(m_ship_designs) & BOOST_SERIALIZATION_NVP(m_sitrep_entries) & BOOST_SERIALIZATION_NVP(m_resource_pools) |