diff options
Diffstat (limited to 'viewport.h')
-rw-r--r-- | viewport.h | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/viewport.h b/viewport.h index 85652efa8..beba02b40 100644 --- a/viewport.h +++ b/viewport.h @@ -54,16 +54,39 @@ enum { VPM_RAILDIRS = 3, VPM_X_AND_Y = 4, VPM_X_AND_Y_LIMITED = 5, - VPM_SIGNALDIRS = 6, + VPM_SIGNALDIRS = 6 +}; + +// viewport highlight mode (for highlighting tiles below cursor) +enum { + VHM_NONE = 0, // default + VHM_RECT = 1, // rectangle (stations, depots, ...) + VHM_POINT = 2, // point (lower land, raise land, level land, ...) + VHM_SPECIAL = 3, // special mode used for highlighting while dragging (and for tunnels/docks) + VHM_DRAG = 4, // dragging items in the depot windows + VHM_RAIL = 5, // rail pieces }; void VpSelectTilesWithMethod(int x, int y, int method); +// highlighting draw styles enum { HT_NONE = 0, HT_RECT = 0x80, HT_POINT = 0x40, - HT_LINE = 0x20, + HT_LINE = 0x20, /* used for autorail highlighting (longer streches) + * (uses lower bits to indicate direction) */ + HT_RAIL = 0x10, /* autorail (one piece) + * (uses lower bits to indicate direction) */ + + /* lower bits (used with HT_LINE and HT_RAIL): + * (see ASCII art in autorail.h for a visual interpretation) */ + HT_DIR_X = 0, // X direction + HT_DIR_Y = 1, // Y direction + HT_DIR_HU = 2, // horizontal upper + HT_DIR_HL = 3, // horizontal lower + HT_DIR_VL = 4, // vertical left + HT_DIR_VR = 5, // vertical right }; typedef struct TileHighlightData { @@ -81,9 +104,9 @@ typedef struct TileHighlightData { byte dirty; byte sizelimit; - byte drawstyle; - byte new_drawstyle; - byte next_drawstyle; + byte drawstyle; // lower bits 0-3 are reserved for detailed highlight information information + byte new_drawstyle; // only used in UpdateTileSelection() to as a buffer to compare if there was a change between old and new + byte next_drawstyle; // queued, but not yet drawn style byte place_mode; bool make_square_red; |