Complete.Org: Mailing Lists: Archives: freeciv-dev: December 2002:
[Freeciv-Dev] (PR#2408) Problem with diagonal roads and rails
Home

[Freeciv-Dev] (PR#2408) Problem with diagonal roads and rails

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: freeciv@xxxxxxxxxxxxxxxxxxxxx
Cc: freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] (PR#2408) Problem with diagonal roads and rails
From: "Jason Short via RT" <rt@xxxxxxxxxxxxxx>
Date: Wed, 11 Dec 2002 10:56:50 -0800
Reply-to: rt@xxxxxxxxxxxxxx

[guest - Wed Dec 11 13:19:25 2002]:

> The proposed patch looks good for overhead, but isn't really needed for
> isometric.  REmember thaat isometric tiles aren't simply diamonds, but
> container the are above them:
> +---+
> |   |
> |   |
> \   /
>  \ /
>   V
> This allows northeast/southwest rails to proceed normally, just slightly
> raised up.  Admittedly, there is a small interruption in
> northwest/southeast railst, but it is only one pixel for rails 6 pixels
> wide, and I think we can ignore that.
> 
> It's a good move for overhead, though.

I don't think it follows that this change is not needed for iso view. 
You can do the same thing already in both iso- and non-iso view, but
because of the order in which freeciv draws the sprites it will not come
out right.

In the case you describe, the rail for the given tile may end up
overwriting a unit or city sprite for the tile above it.  And although
the rail sprite can draw connecting rails to left and right, this will
also overwrite (or get overwritten by) sprites that are drawn on the
adjacent tiles.

civ3 does draw a railroad (and road) sprite as extending beyond the
boundary of its tile, so that it covers the corners of the adjacent
tiles.  I assume they either do their drawing differently (per-layer,
THEN per-tile instead of the other way around as we do it), or they have
some mask magic to only draw the correct portions of the tile.  (Note,
they also do the same thing with the underlying terrain graphics.)

For now, simply drawing the missing corners is the easiest way to fix
this for us.

jason



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