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

Joel Uckelman uckelman at nomic.net
Tue Oct 5 10:33:41 MST 2010

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.


More information about the messages mailing list