|
From: <mp...@us...> - 2009-04-27 03:57:13
|
Revision: 5346
http://freecol.svn.sourceforge.net/freecol/?rev=5346&view=rev
Author: mpope
Date: 2009-04-27 03:57:04 +0000 (Mon, 27 Apr 2009)
Log Message:
-----------
Several things that should be transferred when colony ownership changes.
Modified Paths:
--------------
freecol/trunk/src/net/sf/freecol/common/model/Colony.java
freecol/trunk/src/net/sf/freecol/common/model/Settlement.java
freecol/trunk/src/net/sf/freecol/common/model/Unit.java
Modified: freecol/trunk/src/net/sf/freecol/common/model/Colony.java
===================================================================
--- freecol/trunk/src/net/sf/freecol/common/model/Colony.java 2009-04-25 13:44:53 UTC (rev 5345)
+++ freecol/trunk/src/net/sf/freecol/common/model/Colony.java 2009-04-27 03:57:04 UTC (rev 5346)
@@ -339,7 +339,6 @@
public void setOwner(Player owner) {
// TODO: Erik - this only works if called on the server!
super.setOwner(owner);
- tile.setOwner(owner);
for (Unit unit : getUnitList()) {
unit.setOwner(owner);
if (unit.getLocation() instanceof ColonyTile) {
Modified: freecol/trunk/src/net/sf/freecol/common/model/Settlement.java
===================================================================
--- freecol/trunk/src/net/sf/freecol/common/model/Settlement.java 2009-04-25 13:44:53 UTC (rev 5345)
+++ freecol/trunk/src/net/sf/freecol/common/model/Settlement.java 2009-04-27 03:57:04 UTC (rev 5346)
@@ -273,11 +273,22 @@
oldOwner.invalidateCanSeeTiles();
+ getTile().setOwner(owner);
+ Map map = getGame().getMap();
+ Position position = getTile().getPosition();
+ Iterator<Position> positionIterator = map.getCircleIterator(position, true, getRadius());
+ while (positionIterator.hasNext()) {
+ Tile tile = map.getTile(positionIterator.next());
+ if (tile.getOwner() == oldOwner) {
+ tile.setOwner(owner);
+ }
+ }
+
owner.setExplored(getTile());
- Iterator<Position> positionIterator = getGame().getMap().getCircleIterator(getTile().getPosition(), true, getLineOfSight());
+ positionIterator = map.getCircleIterator(position, true, getLineOfSight());
while (positionIterator.hasNext()) {
- Map.Position p = positionIterator.next();
- owner.setExplored(getGame().getMap().getTile(p));
+ Tile tile = map.getTile(positionIterator.next());
+ owner.setExplored(tile);
}
if (getGame().getFreeColGameObjectListener() != null) {
Modified: freecol/trunk/src/net/sf/freecol/common/model/Unit.java
===================================================================
--- freecol/trunk/src/net/sf/freecol/common/model/Unit.java 2009-04-25 13:44:53 UTC (rev 5345)
+++ freecol/trunk/src/net/sf/freecol/common/model/Unit.java 2009-04-27 03:57:04 UTC (rev 5346)
@@ -2410,6 +2410,9 @@
owner.setUnit(this);
owner.modifyScore(getType().getScoreValue());
+ for (Unit unit : getUnitList()) {
+ unit.setOwner(owner);
+ }
this.owner = owner;
oldOwner.invalidateCanSeeTiles();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|