update to 1.5.1-RC1

--HG--
branch : openttd
This commit is contained in:
Pavel Stupnikov
2015-05-10 22:35:04 +03:00
parent df183bf405
commit 0a0d7d9546
50 changed files with 2044 additions and 1818 deletions
+23 -22
View File
@@ -1,4 +1,4 @@
/* $Id: rail_cmd.cpp 27157 2015-02-22 14:01:24Z frosch $ */
/* $Id: rail_cmd.cpp 27272 2015-05-08 17:32:57Z frosch $ */
/*
* This file is part of OpenTTD.
@@ -485,31 +485,32 @@ CommandCost CmdBuildSingleRail(TileIndex tile, DoCommandFlag flags, uint32 p1, u
RoadTypes roadtypes = GetRoadTypes(tile);
RoadBits road = GetRoadBits(tile, ROADTYPE_ROAD);
RoadBits tram = GetRoadBits(tile, ROADTYPE_TRAM);
switch (roadtypes) {
default: break;
case ROADTYPES_TRAM:
/* Tram crossings must always have road. */
if (flags & DC_EXEC) {
SetRoadOwner(tile, ROADTYPE_ROAD, _current_company);
Company *c = Company::GetIfValid(_current_company);
if (c != NULL) {
/* A full diagonal tile has two road bits. */
c->infrastructure.road[ROADTYPE_ROAD] += 2;
DirtyCompanyInfrastructureWindows(c->index);
if ((track == TRACK_X && (road | tram) == ROAD_Y) ||
(track == TRACK_Y && (road | tram) == ROAD_X)) {
switch (roadtypes) {
default: break;
case ROADTYPES_TRAM:
/* Tram crossings must always have road. */
if (flags & DC_EXEC) {
SetRoadOwner(tile, ROADTYPE_ROAD, _current_company);
Company *c = Company::GetIfValid(_current_company);
if (c != NULL) {
/* A full diagonal tile has two road bits. */
c->infrastructure.road[ROADTYPE_ROAD] += 2;
DirtyCompanyInfrastructureWindows(c->index);
}
}
}
roadtypes |= ROADTYPES_ROAD;
break;
roadtypes |= ROADTYPES_ROAD;
cost.AddCost(2 * _price[PR_BUILD_ROAD]);
break;
case ROADTYPES_ALL:
if (road != tram) return CMD_ERROR;
break;
}
case ROADTYPES_ALL:
if (road != tram) return CMD_ERROR;
break;
}
road |= tram;
road |= tram;
if ((track == TRACK_X && road == ROAD_Y) ||
(track == TRACK_Y && road == ROAD_X)) {
if (flags & DC_EXEC) {
MakeRoadCrossing(tile, GetRoadOwner(tile, ROADTYPE_ROAD), GetRoadOwner(tile, ROADTYPE_TRAM), _current_company, (track == TRACK_X ? AXIS_Y : AXIS_X), railtype, roadtypes, GetTownIndex(tile));
UpdateLevelCrossing(tile, false);