(svn r16869) -Codechange: make drawing waypoints a tiny bit more like drawing stations

This commit is contained in:
rubidium 2009-07-18 10:01:31 +00:00
parent 8c17c6cb2b
commit 861a2163f6
7 changed files with 24 additions and 30 deletions

View File

@ -222,7 +222,6 @@ static inline Money RailConvertCost(RailType from, RailType to)
Vehicle *UpdateTrainPowerProc(Vehicle *v, void *data);
void DrawTrainDepotSprite(int x, int y, int image, RailType railtype);
void DrawDefaultWaypointSprite(int x, int y, RailType railtype);
Vehicle *EnsureNoTrainOnTrackProc(Vehicle *v, void *data);
int TicksToLeaveDepot(const Train *v);

View File

@ -1973,7 +1973,7 @@ static void DrawTile_Track(TileInfo *ti)
} else {
default_waypoint:
/* There is no custom layout, fall back to the default graphics */
dts = &_waypoint_gfx_table[GetWaypointAxis(ti->tile)];
dts = GetStationTileLayout(STATION_WAYPOINT, GetWaypointAxis(ti->tile));
relocation = 0;
image = dts->ground.sprite + rti->total_offset;
if (IsSnowRailGround(ti->tile)) image += rti->snow_offset;
@ -2049,14 +2049,6 @@ void DrawTrainDepotSprite(int x, int y, int dir, RailType railtype)
DrawTileSequence(x + 33, y + 17, image, dts->seq, offset);
}
void DrawDefaultWaypointSprite(int x, int y, RailType railtype)
{
uint32 offset = GetRailTypeInfo(railtype)->total_offset;
const DrawTileSprites *dts = &_waypoint_gfx_table[AXIS_X];
DrawTileSequence(x, y, dts->ground.sprite + offset, dts->seq, 0);
}
static uint GetSlopeZ_Track(TileIndex tile, uint x, uint y)
{
uint z;

View File

@ -3081,6 +3081,7 @@ static CommandCost ClearTile_Station(TileIndex tile, DoCommandFlag flags)
{
if (flags & DC_AUTO) {
switch (GetStationType(tile)) {
default: break;
case STATION_RAIL: return_cmd_error(STR_ERROR_MUST_DEMOLISH_RAILROAD);
case STATION_AIRPORT: return_cmd_error(STR_ERROR_MUST_DEMOLISH_AIRPORT_FIRST);
case STATION_TRUCK: return_cmd_error(HasTileRoadType(tile, ROADTYPE_TRAM) ? STR_ERROR_MUST_DEMOLISH_CARGO_TRAM_STATION_FIRST : STR_ERROR_MUST_DEMOLISH_TRUCK_STATION_FIRST);

View File

@ -26,7 +26,8 @@ enum StationType {
STATION_BUS,
STATION_OILRIG,
STATION_DOCK,
STATION_BUOY
STATION_BUOY,
STATION_WAYPOINT,
};
/** Types of RoadStops */

View File

@ -737,6 +737,18 @@ static const DrawTileSeqStruct _station_display_datas_0171[] = {
TILE_SEQ_END()
};
static const DrawTileSeqStruct _station_display_datas_waypoint_X[] = {
TILE_SEQ_LINE( 0, 0, 0, 16, 5, 23, SPR_WAYPOINT_X_1 | (1 << PALETTE_MODIFIER_COLOUR))
TILE_SEQ_LINE( 0, 11, 0, 16, 5, 23, SPR_WAYPOINT_X_2 | (1 << PALETTE_MODIFIER_COLOUR))
TILE_SEQ_END()
};
static const DrawTileSeqStruct _station_display_datas_waypoint_Y[] = {
TILE_SEQ_LINE( 0, 0, 0, 5, 16, 23, SPR_WAYPOINT_Y_1 | (1 << PALETTE_MODIFIER_COLOUR))
TILE_SEQ_LINE(11, 0, 0, 5, 16, 23, SPR_WAYPOINT_Y_2 | (1 << PALETTE_MODIFIER_COLOUR))
TILE_SEQ_END()
};
#undef TILE_SEQ_END
#undef TILE_SEQ_LINE
#undef TILE_SEQ_LINE_PAL
@ -941,6 +953,11 @@ static const DrawTileSprites _station_display_datas_buoy[] = {
TILE_SPRITE_LINE(SPR_FLAT_WATER_TILE, _station_display_datas_82)
};
static const DrawTileSprites _station_display_datas_waypoint[] = {
TILE_SPRITE_LINE(SPR_RAIL_TRACK_X, _station_display_datas_waypoint_X)
TILE_SPRITE_LINE(SPR_RAIL_TRACK_Y, _station_display_datas_waypoint_Y)
};
#undef TILE_SPRITE_LINE
static const DrawTileSprites *_station_display_datas[] = {
@ -951,4 +968,5 @@ static const DrawTileSprites *_station_display_datas[] = {
_station_display_datas_oilrig,
_station_display_datas_dock,
_station_display_datas_buoy,
_station_display_datas_waypoint,
};

View File

@ -1,6 +1,6 @@
/* $Id$ */
/** @file track_land.h Sprites to use and how to display them for train depot/waypoint tiles. */
/** @file track_land.h Sprites to use and how to display them for train depot tiles. */
#define TILE_SEQ_LINE(img, dx, dy, sx, sy) { dx, dy, 0, sx, sy, 23, {img, PAL_NONE} },
#define TILE_SEQ_END() { (int8)0x80, 0, 0, 0, 0, 0, {0, 0} }
@ -42,23 +42,6 @@ static const DrawTileSprites _depot_invisible_gfx_table[] = {
{ {SPR_RAIL_TRACK_Y, PAL_NONE}, _depot_gfx_NW }
};
static const DrawTileSeqStruct _waypoint_gfx_X[] = {
TILE_SEQ_LINE((1 << PALETTE_MODIFIER_COLOUR) | SPR_WAYPOINT_X_1, 0, 0, 16, 5)
TILE_SEQ_LINE((1 << PALETTE_MODIFIER_COLOUR) | SPR_WAYPOINT_X_2, 0, 11, 16, 5)
TILE_SEQ_END()
};
static const DrawTileSeqStruct _waypoint_gfx_Y[] = {
TILE_SEQ_LINE((1 << PALETTE_MODIFIER_COLOUR) | SPR_WAYPOINT_Y_1, 0, 0, 5, 16)
TILE_SEQ_LINE((1 << PALETTE_MODIFIER_COLOUR) | SPR_WAYPOINT_Y_2, 11, 0, 5, 16)
TILE_SEQ_END()
};
static const DrawTileSprites _waypoint_gfx_table[] = {
{ {SPR_RAIL_TRACK_X, PAL_NONE}, _waypoint_gfx_X },
{ {SPR_RAIL_TRACK_Y, PAL_NONE}, _waypoint_gfx_Y }
};
#undef TILE_SEQ_LINE
#undef TILE_SEQ_END

View File

@ -43,7 +43,7 @@ void DrawWaypointSprite(int x, int y, int stat_id, RailType railtype)
y += 17;
if (!DrawStationTile(x, y, railtype, AXIS_X, STAT_CLASS_WAYP, stat_id)) {
DrawDefaultWaypointSprite(x, y, railtype);
StationPickerDrawSprite(x, y, STATION_WAYPOINT, railtype, INVALID_ROADTYPE, AXIS_X);
}
}