Complete.Org: Mailing Lists: Archives: freeciv-dev: April 2003:
[Freeciv-Dev] Re: (PR#3936) introducing native coordinates
Home

[Freeciv-Dev] Re: (PR#3936) introducing native coordinates

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
Cc: freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: (PR#3936) introducing native coordinates
From: Jason Dorje Short <vze49r5w@xxxxxxxxxxx>
Date: Fri, 11 Apr 2003 17:20:29 -0500
Reply-to: jdorje@xxxxxxxxxxxxxxxxxxxxx

Raimar Falke wrote:
On Fri, Apr 11, 2003 at 04:11:14AM -0500, Jason Dorje Short wrote:

This makes some sense. But please try to distinguish which map you are representing, and which coordinate system you are using. For instance is a


    THERE IS ONLY ONE COORDINATE SYSTEM. EACH TILE HAS EXACTLY ONE
    PAIR (x,y).

This is different to your idea but I think it makes it easier to
understand. At least for me.

Ahh, well that explains part of the confusion [1]. The problem is, it doesn't work. Your proposal is that we only use native coordinates, but square_iterate and other local functions cannot be implemented in these coordinates. Similarly, global operations cannot be done in map coordinates.

The solution Ross and I have arrived at (over the past 2 years) is to have different coordinate systems. Map coordinates remain unchanged from the way they are now. Native coordinates are only used locally (in the code), for operations that they are better suited for. Index coordinates are a 1-dimensional projection of native coordinates; their use remains unchanged. Before you try to redefine the system we have agreed on, you should try to solve some of the problems it was originally designed to address. This should probably include providing a working implementation (you may want to look at Ross's corecleanups patch, or the gen-topologies patch in freeciv-test to see how some of the other issues can be handled).

[1] The term "representation" and "coordinate system" are logically synonymous IMO. When you show three different "representations" of the map, what you're really doing is showing three sets of tiles in the same representation. This corresponds to the properties "real", "normal", etc., that apply to individual tiles (in any representation). To achive masking we simply need a new property to distinguish masked from non-masked tiles; this is independent from the isometric-map issues that bring about the native/map coordinate split.

jason



[Prev in Thread] Current Thread [Next in Thread]