diff options
author | frosch <frosch@openttd.org> | 2008-02-06 16:12:23 +0000 |
---|---|---|
committer | frosch <frosch@openttd.org> | 2008-02-06 16:12:23 +0000 |
commit | 7860d8d18a41600bac17facad083db8b8a9b8aed (patch) | |
tree | 424c0effec495435001f65997bc895e2bb70ed9c /src/station_cmd.cpp | |
parent | e95e8877721a35b5e9c6761f4c40a8a0396a9168 (diff) | |
download | openttd-7860d8d18a41600bac17facad083db8b8a9b8aed.tar.xz |
(svn r12071) -Feature(ette): Draw river- and canal-edges under docks and shipdepots.
Diffstat (limited to 'src/station_cmd.cpp')
-rw-r--r-- | src/station_cmd.cpp | 42 |
1 files changed, 23 insertions, 19 deletions
diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index 538c68b72..8a60d740c 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -2140,18 +2140,31 @@ static void DrawTile_Station(TileInfo *ti) if (t == NULL || t->seq == NULL) t = &_station_display_datas[GetStationType(ti->tile)][GetStationGfx(ti->tile)]; - SpriteID image = t->ground_sprite; - if (HasBit(image, SPRITE_MODIFIER_USE_OFFSET)) { - image += GetCustomStationGroundRelocation(statspec, st, ti->tile); - image += custom_ground_offset; + + if (IsBuoy(ti->tile) || IsDock(ti->tile)) { + if (ti->tileh == SLOPE_FLAT) { + DrawWaterClassGround(ti); + } else { + assert(IsDock(ti->tile)); + TileIndex water_tile = ti->tile + TileOffsByDiagDir(GetDockDirection(ti->tile)); + WaterClass wc = GetWaterClass(water_tile); + if (wc == WATER_CLASS_SEA) { + DrawShoreTile(ti->tileh); + } else { + DrawClearLandTile(ti, 3); + } + } } else { - image += total_offset; + SpriteID image = t->ground_sprite; + if (HasBit(image, SPRITE_MODIFIER_USE_OFFSET)) { + image += GetCustomStationGroundRelocation(statspec, st, ti->tile); + image += custom_ground_offset; + } else { + image += total_offset; + } + DrawGroundSprite(image, HasBit(image, PALETTE_MODIFIER_COLOR) ? palette : PAL_NONE); } - /* station_land array has been increased from 82 elements to 114 - * but this is something else. If AI builds station with 114 it looks all weird */ - DrawGroundSprite(image, HasBit(image, PALETTE_MODIFIER_COLOR) ? palette : PAL_NONE); - if (GetRailType(ti->tile) == RAILTYPE_ELECTRIC && IsStationTileElectrifiable(ti->tile)) DrawCatenary(ti); if (HasBit(roadtypes, ROADTYPE_TRAM)) { @@ -2160,18 +2173,9 @@ static void DrawTile_Station(TileInfo *ti) DrawTramCatenary(ti, axis == AXIS_X ? ROAD_X : ROAD_Y); } - if (IsBuoy(ti->tile)) { - /* Draw appropriate water edges */ - switch (GetWaterClass(ti->tile)) { - case WATER_CLASS_SEA: break; - case WATER_CLASS_CANAL: DrawCanalWater(ti->tile, false); break; - case WATER_CLASS_RIVER: DrawRiverWater(ti, false); break; - } - } - const DrawTileSeqStruct *dtss; foreach_draw_tile_seq(dtss, t->seq) { - image = dtss->image; + SpriteID image = dtss->image; if (relocation == 0 || HasBit(image, SPRITE_MODIFIER_USE_OFFSET)) { image += total_offset; } else { |