Author: cazfi Date: Wed Aug 17 09:26:31 2016 New Revision: 33633 URL: http://svn.gna.org/viewcvs/freeciv?rev=33633&view=rev Log: Added server setting to adjust how world size affects distance based trade bonuses.
Requested by Jacob Nevins <jtn> See patch #6884 Modified: trunk/common/game.h trunk/common/networking/packets.def trunk/common/traderoutes.c trunk/fc_version trunk/server/settings.c Modified: trunk/common/game.h URL: http://svn.gna.org/viewcvs/freeciv/trunk/common/game.h?rev=33633&r1=33632&r2=33633&view=diff ============================================================================== --- trunk/common/game.h (original) +++ trunk/common/game.h Wed Aug 17 09:26:31 2016 @@ -561,6 +561,10 @@ #define GAME_MIN_NOTRADESIZE 0 #define GAME_MAX_NOTRADESIZE 49 +#define GAME_DEFAULT_TRADEWORLDRELPCT 50 +#define GAME_MIN_TRADEWORLDRELPCT 0 +#define GAME_MAX_TRADEWORLDRELPCT 100 + #define GAME_DEFAULT_FULLTRADESIZE 1 #define GAME_MIN_FULLTRADESIZE 1 #define GAME_MAX_FULLTRADESIZE 50 Modified: trunk/common/networking/packets.def URL: http://svn.gna.org/viewcvs/freeciv/trunk/common/networking/packets.def?rev=33633&r1=33632&r2=33633&view=diff ============================================================================== --- trunk/common/networking/packets.def (original) +++ trunk/common/networking/packets.def Wed Aug 17 09:26:31 2016 @@ -483,6 +483,7 @@ UINT8 forced_luxury; UINT8 forced_science; UINT8 fulltradesize; + UINT8 trade_world_rel_pct; /* True if at least one civilization has researched a tech */ UINT16 global_advance_count; BOOL global_advances[A_LAST]; diff Modified: trunk/common/traderoutes.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/common/traderoutes.c?rev=33633&r1=33632&r2=33633&view=diff ============================================================================== --- trunk/common/traderoutes.c (original) +++ trunk/common/traderoutes.c Wed Aug 17 09:26:31 2016 @@ -324,8 +324,12 @@ if (NULL != pc1 && NULL != pc1->tile && NULL != pc2 && NULL != pc2->tile) { - - bonus = real_map_distance(pc1->tile, pc2->tile) + int real_dist = real_map_distance(pc1->tile, pc2->tile); + int weighted_distance + = (100 - game.info.trade_world_rel_pct) * real_dist + + game.info.trade_world_rel_pct * (real_dist * 40 / MAX(wld.map.xsize, wld.map.ysize)); + + bonus = weighted_distance + city_size_get(pc1) + city_size_get(pc2); bonus = bonus * trade_route_type_trade_pct(cities_trade_route_type(pc1, pc2)) / 100; Modified: trunk/fc_version URL: http://svn.gna.org/viewcvs/freeciv/trunk/fc_version?rev=33633&r1=33632&r2=33633&view=diff ============================================================================== --- trunk/fc_version (original) +++ trunk/fc_version Wed Aug 17 09:26:31 2016 @@ -56,7 +56,7 @@ # - Avoid adding a new mandatory capability to the development branch for # as long as possible. We want to maintain network compatibility with # the stable branch for as long as possible. -NETWORK_CAPSTRING_MANDATORY="+Freeciv.Devel-3.0-2016.Aug.16b" +NETWORK_CAPSTRING_MANDATORY="+Freeciv.Devel-3.0-2016.Aug.17" NETWORK_CAPSTRING_OPTIONAL="" FREECIV_DISTRIBUTOR="" Modified: trunk/server/settings.c URL: http://svn.gna.org/viewcvs/freeciv/trunk/server/settings.c?rev=33633&r1=33632&r2=33633&view=diff ============================================================================== --- trunk/server/settings.c (original) +++ trunk/server/settings.c Wed Aug 17 09:26:31 2016 @@ -1999,6 +1999,20 @@ NULL, NULL, NULL, GAME_MIN_NOTRADESIZE, GAME_MAX_NOTRADESIZE, GAME_DEFAULT_NOTRADESIZE) + + GEN_INT("tradeworldrelpct", game.info.trade_world_rel_pct, + SSET_RULES, SSET_ECONOMICS, SSET_RARE, ALLOW_NONE, ALLOW_BASIC, + N_("How largely trade distance is relative to world size"), + /* TRANS: The strings between single quotes are setting names and + * shouldn't be translated. */ + N_("When determining trade between cities, the distance factor " + "can be partly or fully relative to world size. This setting " + "determines how big percentage of the bonus calculation is " + "relative to world size, and how much only absolute distance " + "matters."), + NULL, NULL, NULL, + GAME_MIN_TRADEWORLDRELPCT, GAME_MAX_TRADEWORLDRELPCT, + GAME_DEFAULT_TRADEWORLDRELPCT) GEN_INT("citymindist", game.info.citymindist, SSET_RULES, SSET_SOCIOLOGY, SSET_SITUATIONAL, _______________________________________________ Freeciv-commits mailing list Freeciv-commits@gna.org https://mail.gna.org/listinfo/freeciv-commits