Complete.Org: Mailing Lists: Archives: freeciv-dev: November 2003:
[Freeciv-Dev] Re: (PR#6721) A Quincuncial topology
Home

[Freeciv-Dev] Re: (PR#6721) A Quincuncial topology

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: mburda@xxxxxxxxx, rt-guest@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: (PR#6721) A Quincuncial topology
From: "Jason Short" <rt@xxxxxxxxxxx>
Date: Thu, 6 Nov 2003 08:57:16 -0800

rt@xxxxxxxxxxx wrote:
> My first question is: what is a quincuncial topology?  A little research
> turns up
> http://www.mapleapps.com/categories/data_analysis_stats/maplemaps/html/pierce1.html
> but I don't think that's what you're talking about (since it involves no
> wrapping).

OK, after re-reading the doc several more times I think I have it.

This change is not just a matter of making a few changes to map.[ch]. 
It will take substantial changes throughout the code.

That said, I'm not opposed to this kind of change and I've had it in 
mind all along (although IIRC Gaute had dismissed it as infeasible). 
Some time ago we discussed having a mobius strip or a klein bottle for a 
topology, and this requires many of the same concepts.

The main concept is that _directions_ (and vectors) have to be 
normalized, just like map positions.  For instance with an 80x40 
quinciux (as you describe it) going north from (0,0) puts you at (0,-1) 
which normalizes to (79,0).  But the reverse of the direction must also 
be normalized along the way so that you normalize (0,-1,SOUTH) to 
(79,0,NORTH).  Basically we'd need a normalize_map_dir(x,y,dir) and more 
generally a normalize_map_vector(x,y,dx,dy).  Quite a bit of work.

Other changes may be required in a few places, e.g., things that 
currently use map_distance_vector.  Not sure about that.

I'd suggest you try to get a fully working implementation patch (so 
you'll run into all the problems along the way and we can work them 
out).  Make sure it applies to HEAD cvs, not 1.14.  Or have you already 
done this, and I just haven't seen it?

jason




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