[Freeciv-Dev] Re: (PR#5568) add I_DEMOLISHED Impr_Status
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
On Fri, 29 Aug 2003, Mike Kaufman wrote:
> The problem comes on city destruction. What happens if a building confers a
> global effect that survives and then its city is destroyed. We still want
> that effect active (Apollo and Manhattan are examples). Where is the effect
> stored in a savegame? Currently we have a destroyed_wonders field which can
> be transformed into a global_improvements field: a array of B_LAST elements
> that counts the total number of improvments for everybody. But we would
> also need such an array for each player (Player range) and each island
> (Island range). Unless we restrict .survives in some way, I don't see
> another way.
I dislike the idea of free-floating effects. Effects should IMHO be
grounded in a game basic element like global, city, unit, player or
government. An island is not a game basic element, it is a data property,
and therefore to assign an effect to an island seems wrong to me.
A quick suggestion: It is only cities that can have these ghost effects.
So perhaps we can ground ghost effects in ghost cities? Every city that is
destroyed is moved over to a pplayer->destroyed_cities genlist of cities,
which for now can have the sole use of being a storage container for city
effects. (Bonus: Clients can use this genlist to implement city ruins as a
visual effect.)
This avoids the problem of commensurability of effects. Can a city effect
always be translated into a player/global effect? What if the city effect
is dependent on the (x, y) position, or some other property, of the city?
> Maybe it's time to think hard about breaking forward compatibility for
> savegames (i.e. 1.14 servers won't be able to load [correctly] games saved
> with 1.15 servers).
This is fine with me. 1.14.0 and 1.15.0 will be incompatible in so many
ways anyway.
- Per
- [Freeciv-Dev] Re: (PR#5568) add I_DEMOLISHED Impr_Status,
Per I. Mathisen <=
|
|