Go to the first, previous, next, last section, table of contents.

Imaging

Imaging is the process of drawing pictorial representations. Not every interface needs it. For instance the curses interface is limited to drawing two ASCII characters for each cell, and its imaging code just has to choose which two to draw. However, full-color bitmapped displays need more attention to the process of getting an image onscreen.

No graphical icon should be drawn smaller than about 8x8, unless it's a text character drawn in two contrasting colors.

Interfaces should cache optimal displays for each mag, not search for best image each time.

Could allow 1-n "display variants" for all images, and for each orientation of border and connection.

Imaging variations can be randomly selected by UI, but must be maintained so redraws are consistent.

Allow the 64 bord/conn combos as single images, also advantage that all will be drawn at once.

Draw partial cells around edges of a window, to indicate that the world continues on in that direction.

Interface needs to draw only the terrain (but including connections and borders) in edge cells.

Could draw grid by blitting large light pattern over world, do by inverting so is easy to turn on/off. Do grids by changing hex size only in unpatterned color?

Draw large hexagon or rect in unseen-color after clearing window to bg stipple (if unseen-color different). Polygon should be inside area covered by edge hexes, so unseen area more obvious. Make large unseen-pattern that includes question marks?

If picture not defined for a game, use some sort of nondescript image instead of leaving blank. (small "no picture available" for instance, like in yearbooks)

To display night, could invert everything (b/w) or do 25/50% black (color) (let game set, so some games could be all-black at night, nothing visible) (have day/night coverage for each utype?) World is totally lit if dimensions < half of world circumference and all six corners of hexagon have same lighting. If world totally dark, can draw darkening mask once for entire map.

To display elevation, use deep blue -> light gray -> dark brown progression, maybe also contour lines? To draw contour lines, for each hex, look at each adj hex. If on other side of contour's elev, compute interpolated point (in pixels) and save or draw a line to (one or both of the two) adj hex borders if they also have the contour line pass through. Guaranteed that line is part of overall contour line. Cheaper approach doesn't interpolate, just draws to midpoint of hex border (probably OK for small mags). Could maybe save contour lines once calculated (at each mag, lots of mem).

If multiple connection or border types, the interface should draw them offset slightly from each other.


Go to the first, previous, next, last section, table of contents.