changeset 6098:bad21330ae92 draft

(svn r8833) -Fix -Codechange: Split MakeRoadStop() into MakeRoadStop() and MakeDriveThroughRoadStop() for more clarity and less possibilities to use it incorrect
author tron <tron@openttd.org>
date Wed, 21 Feb 2007 19:46:37 +0000
parents 0a7a812e54ea
children 071282ee25fa
files src/station_cmd.cpp src/station_map.h
diffstat 2 files changed, 14 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/src/station_cmd.cpp
+++ b/src/station_cmd.cpp
@@ -1258,8 +1258,12 @@
 
 		st->rect.BeforeAddTile(tile, StationRect::ADD_TRY);
 
-		MakeRoadStop(tile, st->owner, st->index, type ? RoadStop::TRUCK : RoadStop::BUS, is_drive_through, (DiagDirection)p1);
-		if (town_owned_road) SetStopBuiltOnTownRoad(tile);
+		RoadStop::Type rs_type = type ? RoadStop::TRUCK : RoadStop::BUS;
+		if (is_drive_through) {
+			MakeDriveThroughRoadStop(tile, st->owner, st->index, rs_type, (Axis)p1, town_owned_road);
+		} else {
+			MakeRoadStop(tile, st->owner, st->index, rs_type, (DiagDirection)p1);
+		}
 
 		UpdateStationVirtCoordDirty(st);
 		UpdateStationAcceptance(st, false);
--- a/src/station_map.h
+++ b/src/station_map.h
@@ -169,11 +169,6 @@
 	return HASBIT(_m[t].m6, 3);
 }
 
-static inline void SetStopBuiltOnTownRoad(TileIndex t)
-{
-	assert(IsDriveThroughStopTile(t));
-	SETBIT(_m[t].m6, 3);
-}
 
 /**
  * Gets the direction the road stop entrance points towards.
@@ -312,13 +307,15 @@
 	SetRailType(t, rt);
 }
 
-static inline void MakeRoadStop(TileIndex t, Owner o, StationID sid, RoadStop::Type rst, bool is_drive_through, DiagDirection d)
+static inline void MakeRoadStop(TileIndex t, Owner o, StationID sid, RoadStop::Type rst, DiagDirection d)
 {
-	if (is_drive_through) {
-		MakeStation(t, o, sid, (rst == RoadStop::BUS ? GFX_BUS_BASE_EXT : GFX_TRUCK_BASE_EXT) + d);
-	} else {
-		MakeStation(t, o, sid, (rst == RoadStop::BUS ? GFX_BUS_BASE : GFX_TRUCK_BASE) + d);
-	}
+	MakeStation(t, o, sid, (rst == RoadStop::BUS ? GFX_BUS_BASE : GFX_TRUCK_BASE) + d);
+}
+
+static inline void MakeDriveThroughRoadStop(TileIndex t, Owner o, StationID sid, RoadStop::Type rst, Axis a, bool on_town_road)
+{
+	MakeStation(t, o, sid, (rst == RoadStop::BUS ? GFX_BUS_BASE_EXT : GFX_TRUCK_BASE_EXT) + a);
+	SB(_m[t].m6, 3, 1, on_town_road);
 }
 
 static inline void MakeAirport(TileIndex t, Owner o, StationID sid, byte section)