summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rail_cmd.cpp36
-rw-r--r--src/rail_map.h4
-rw-r--r--src/table/sprites.h10
3 files changed, 36 insertions, 14 deletions
diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp
index b0cecc0fc..e2f3eb6d1 100644
--- a/src/rail_cmd.cpp
+++ b/src/rail_cmd.cpp
@@ -1225,16 +1225,16 @@ static uint32 _drawtile_track_palette;
static void DrawTrackFence_NW(const TileInfo *ti)
{
- SpriteID image = 0x515;
- if (ti->tileh != SLOPE_FLAT) image = (ti->tileh & SLOPE_S) ? 0x519 : 0x51B;
+ SpriteID image = SPR_TRACK_FENCE_FLAT_X;
+ if (ti->tileh != SLOPE_FLAT) image = (ti->tileh & SLOPE_S) ? SPR_TRACK_FENCE_SLOPE_SW : SPR_TRACK_FENCE_SLOPE_NE;
AddSortableSpriteToDraw(image, _drawtile_track_palette,
ti->x, ti->y + 1, 16, 1, 4, ti->z);
}
static void DrawTrackFence_SE(const TileInfo *ti)
{
- SpriteID image = 0x515;
- if (ti->tileh != SLOPE_FLAT) image = (ti->tileh & SLOPE_S) ? 0x519 : 0x51B;
+ SpriteID image = SPR_TRACK_FENCE_FLAT_X;
+ if (ti->tileh != SLOPE_FLAT) image = (ti->tileh & SLOPE_S) ? SPR_TRACK_FENCE_SLOPE_SW : SPR_TRACK_FENCE_SLOPE_NE;
AddSortableSpriteToDraw(image, _drawtile_track_palette,
ti->x, ti->y + TILE_SIZE - 1, 16, 1, 4, ti->z);
}
@@ -1247,16 +1247,16 @@ static void DrawTrackFence_NW_SE(const TileInfo *ti)
static void DrawTrackFence_NE(const TileInfo *ti)
{
- SpriteID image = 0x516;
- if (ti->tileh != SLOPE_FLAT) image = (ti->tileh & SLOPE_S) ? 0x51A : 0x51C;
+ SpriteID image = SPR_TRACK_FENCE_FLAT_Y;
+ if (ti->tileh != SLOPE_FLAT) image = (ti->tileh & SLOPE_S) ? SPR_TRACK_FENCE_SLOPE_SE : SPR_TRACK_FENCE_SLOPE_NW;
AddSortableSpriteToDraw(image, _drawtile_track_palette,
ti->x + 1, ti->y, 1, 16, 4, ti->z);
}
static void DrawTrackFence_SW(const TileInfo *ti)
{
- SpriteID image = 0x516;
- if (ti->tileh != SLOPE_FLAT) image = (ti->tileh & SLOPE_S) ? 0x51A : 0x51C;
+ SpriteID image = SPR_TRACK_FENCE_FLAT_Y;
+ if (ti->tileh != SLOPE_FLAT) image = (ti->tileh & SLOPE_S) ? SPR_TRACK_FENCE_SLOPE_SE : SPR_TRACK_FENCE_SLOPE_NW;
AddSortableSpriteToDraw(image, _drawtile_track_palette,
ti->x + TILE_SIZE - 1, ti->y, 1, 16, 4, ti->z);
}
@@ -1267,35 +1267,47 @@ static void DrawTrackFence_NE_SW(const TileInfo *ti)
DrawTrackFence_SW(ti);
}
+/**
+ * Draw fence at eastern side of track.
+ */
static void DrawTrackFence_NS_1(const TileInfo *ti)
{
int z = ti->z;
if (ti->tileh & SLOPE_W) z += TILE_HEIGHT;
- AddSortableSpriteToDraw(0x517, _drawtile_track_palette,
+ AddSortableSpriteToDraw(SPR_TRACK_FENCE_FLAT_VERT, _drawtile_track_palette,
ti->x + TILE_SIZE / 2, ti->y + TILE_SIZE / 2, 1, 1, 4, z);
}
+/**
+ * Draw fence at western side of track.
+ */
static void DrawTrackFence_NS_2(const TileInfo *ti)
{
int z = ti->z;
if (ti->tileh & SLOPE_E) z += TILE_HEIGHT;
- AddSortableSpriteToDraw(0x517, _drawtile_track_palette,
+ AddSortableSpriteToDraw(SPR_TRACK_FENCE_FLAT_VERT, _drawtile_track_palette,
ti->x + TILE_SIZE / 2, ti->y + TILE_SIZE / 2, 1, 1, 4, z);
}
+/**
+ * Draw fence at southern side of track.
+ */
static void DrawTrackFence_WE_1(const TileInfo *ti)
{
int z = ti->z;
if (ti->tileh & SLOPE_N) z += TILE_HEIGHT;
- AddSortableSpriteToDraw(0x518, _drawtile_track_palette,
+ AddSortableSpriteToDraw(SPR_TRACK_FENCE_FLAT_HORZ, _drawtile_track_palette,
ti->x + TILE_SIZE / 2, ti->y + TILE_SIZE / 2, 1, 1, 4, z);
}
+/**
+ * Draw fence at northern side of track.
+ */
static void DrawTrackFence_WE_2(const TileInfo *ti)
{
int z = ti->z;
if (ti->tileh & SLOPE_S) z += TILE_HEIGHT;
- AddSortableSpriteToDraw(0x518, _drawtile_track_palette,
+ AddSortableSpriteToDraw(SPR_TRACK_FENCE_FLAT_HORZ, _drawtile_track_palette,
ti->x + TILE_SIZE / 2, ti->y + TILE_SIZE / 2, 1, 1, 4, z);
}
diff --git a/src/rail_map.h b/src/rail_map.h
index ff938d846..b20230dcd 100644
--- a/src/rail_map.h
+++ b/src/rail_map.h
@@ -389,8 +389,8 @@ enum RailGroundType {
RAIL_GROUND_FENCE_NE = 5, ///< Grass with a fence at the NE edge
RAIL_GROUND_FENCE_SW = 6, ///< Grass with a fence at the SW edge
RAIL_GROUND_FENCE_NESW = 7, ///< Grass with a fence at the NE and SW edges
- RAIL_GROUND_FENCE_VERT1 = 8, ///< Grass with a fence at the western side
- RAIL_GROUND_FENCE_VERT2 = 9, ///< Grass with a fence at the eastern side
+ RAIL_GROUND_FENCE_VERT1 = 8, ///< Grass with a fence at the eastern side
+ RAIL_GROUND_FENCE_VERT2 = 9, ///< Grass with a fence at the western side
RAIL_GROUND_FENCE_HORIZ1 = 10, ///< Grass with a fence at the southern side
RAIL_GROUND_FENCE_HORIZ2 = 11, ///< Grass with a fence at the northern side
RAIL_GROUND_ICE_DESERT = 12, ///< Icy or sandy
diff --git a/src/table/sprites.h b/src/table/sprites.h
index 777cb4261..486f935e1 100644
--- a/src/table/sprites.h
+++ b/src/table/sprites.h
@@ -303,6 +303,16 @@ enum Sprites {
OFFSET_TILEH_13 = 19,
OFFSET_TILEH_14 = 16,
+ /* Track fences */
+ SPR_TRACK_FENCE_FLAT_X = 1301,
+ SPR_TRACK_FENCE_FLAT_Y = 1302,
+ SPR_TRACK_FENCE_FLAT_VERT = 1303,
+ SPR_TRACK_FENCE_FLAT_HORZ = 1304,
+ SPR_TRACK_FENCE_SLOPE_SW = 1305,
+ SPR_TRACK_FENCE_SLOPE_SE = 1306,
+ SPR_TRACK_FENCE_SLOPE_NE = 1307,
+ SPR_TRACK_FENCE_SLOPE_NW = 1308,
+
/* Elrail stuff */
/* Wires. First identifier is the direction of the track, second is the required placement of the pylon.
* "short" denotes a wire that requires a pylon on each end. Third identifier is the direction of the slope