[messages] [Feature Requests] Re: ADC2 to VASSAL Coversion

Thomas Russ tar at isi.edu
Tue Oct 5 11:02:50 MST 2010


On Oct 5, 2010, at 10:33 AM, Joel Uckelman wrote:

> Thus spake Joel Uckelman:
>> Thus spake Thomas Russ:
>>>
>>> It looks like the native Vassal module includes custom code for
>>> handling the oblique hex grid numbering system.  [Is that planned to
>>> migrate into the main Vassal trunk, or are there too few classic
>>> Avalon Hill games to make it worthwhile?]
>>>
>>
>> It's something which people ask for enough that it should become a  
>> standard
>> part of VASSAL eventually.
>>
>> A good time to do that would be when the hex grid code is next  
>> reworked.
>> It's an awful mess presently---it contains a lot of cut-and-paste  
>> code
>> and dodgy math---but it's also rather self-contained, so wouldn't  
>> be that
>> big of a job for somebody who wanted to do it.
>>
>> The code needs to be sepearated into more parts:
>>
>> * An interface for hex grid numberings
>> * Concrete implementations of hex grid numberings
>> * An interface for classes which draw hex grid numberings
>> * A class for hex grids
>> * An interface for classes which draw hex grids
>> * Concrete implementations of classes which draw hex grids
>>
>> Essentially what I'm envisioning is that you'd implement the  
>> HexGridNumbering
>> interface for each different numbering scheme you wanted, and then  
>> a HexGrid
>> would have a HexGridNumbering as a member. A good start would be to  
>> do just
>> this part. I don't have time for it right now myself, but this  
>> would be a
>> great small project for someone who would like to contribute.
>>
>
> Thinking about this a bit more:
>
> CoordinateSystem should have something like the following methods:
>
>  Coordinate toCoordinate(Point p)
>
>  Point toPoint(Coordinate c)
>
> where the first translates a point in the plane to *numeric* hex
> coordinates, and the second translates numeric hex coordinates to
> the center point of that hex. I'm unsure what Cooordinate should be
> like, since we might want to support a 3-axis coordinate system.

And how does this all interact with the named regions or irregular  
grid items?  Is there some unification possible for that?



More information about the messages mailing list