mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r17260) [0.7] -Backport from trunk:
- Fix: Other tunnel end not shown if building rail tunnels and the first railtype is not available yet [FS#3141] (r17251) - Fix: One could, via unselect all, also unselect already installed content; it would not uninstall it though [FS#3137] (r17245) - Change: Make overbuilding the front tile of a road station/depot with road consistent with overbuilding the front tile of tunnels/bridges [FS#2802] (r17239) - Change [NoAI]: Load the API before compiling an AI script so AIs can subclass API classes and use API constants as part of their own constants (r17043)
This commit is contained in:
parent
e492c5928d
commit
ca66a61cc9
|
@ -119,6 +119,9 @@ AIInstance::AIInstance(AIInfo *info) :
|
|||
/* Register the AIController */
|
||||
SQAIController_Register(this->engine);
|
||||
|
||||
/* Register the API functions and classes */
|
||||
this->RegisterAPI();
|
||||
|
||||
/* Load and execute the script for this AI */
|
||||
const char *main_script = info->GetMainScript();
|
||||
if (strcmp(main_script, "%_dummy") == 0) {
|
||||
|
@ -135,9 +138,6 @@ AIInstance::AIInstance(AIInfo *info) :
|
|||
this->Died();
|
||||
return;
|
||||
}
|
||||
|
||||
/* Register the API functions and classes */
|
||||
this->RegisterAPI();
|
||||
}
|
||||
|
||||
AIInstance::~AIInstance()
|
||||
|
|
|
@ -606,7 +606,7 @@ void ClientNetworkContentSocketHandler::UnselectAll()
|
|||
{
|
||||
for (ContentIterator iter = this->infos.Begin(); iter != this->infos.End(); iter++) {
|
||||
ContentInfo *ci = *iter;
|
||||
if (ci->IsSelected()) ci->state = ContentInfo::UNSELECTED;
|
||||
if (ci->IsSelected() && ci->state != ContentInfo::ALREADY_HERE) ci->state = ContentInfo::UNSELECTED;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -752,7 +752,7 @@ struct BuildRailToolbarWindow : Window {
|
|||
|
||||
virtual void OnPlacePresize(Point pt, TileIndex tile)
|
||||
{
|
||||
DoCommand(tile, 0, 0, DC_AUTO, CMD_BUILD_TUNNEL);
|
||||
DoCommand(tile, _cur_railtype, 0, DC_AUTO, CMD_BUILD_TUNNEL);
|
||||
VpSetPresizeRange(tile, _build_tunnel_endtile == 0 ? tile : _build_tunnel_endtile);
|
||||
}
|
||||
|
||||
|
|
|
@ -514,9 +514,11 @@ CommandCost CmdBuildRoad(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32
|
|||
if (HasTileRoadType(tile, rt)) return_cmd_error(STR_1007_ALREADY_BUILT);
|
||||
break;
|
||||
|
||||
default:
|
||||
case ROAD_TILE_DEPOT:
|
||||
if ((GetAnyRoadBits(tile, rt) & pieces) == pieces) return_cmd_error(STR_1007_ALREADY_BUILT);
|
||||
goto do_clear;
|
||||
|
||||
default: NOT_REACHED();
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -563,6 +565,7 @@ CommandCost CmdBuildRoad(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32
|
|||
}
|
||||
|
||||
case MP_STATION: {
|
||||
if ((GetAnyRoadBits(tile, rt) & pieces) == pieces) return_cmd_error(STR_1007_ALREADY_BUILT);
|
||||
if (!IsDriveThroughStopTile(tile)) goto do_clear;
|
||||
|
||||
RoadBits curbits = AxisToRoadBits(DiagDirToAxis(GetRoadStopDir(tile)));
|
||||
|
@ -573,8 +576,8 @@ CommandCost CmdBuildRoad(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32
|
|||
} break;
|
||||
|
||||
case MP_TUNNELBRIDGE:
|
||||
if (GetTunnelBridgeTransportType(tile) != TRANSPORT_ROAD) return CMD_ERROR;
|
||||
if (MirrorRoadBits(DiagDirToRoadBits(GetTunnelBridgeDirection(tile))) != pieces) return CMD_ERROR;
|
||||
if (GetTunnelBridgeTransportType(tile) != TRANSPORT_ROAD) goto do_clear;
|
||||
if (MirrorRoadBits(DiagDirToRoadBits(GetTunnelBridgeDirection(tile))) != pieces) goto do_clear;
|
||||
if (HasTileRoadType(tile, rt)) return_cmd_error(STR_1007_ALREADY_BUILT);
|
||||
/* Don't allow adding roadtype to the bridge/tunnel when vehicles are already driving on it */
|
||||
if (HasVehicleOnTunnelBridge(tile, GetOtherTunnelBridgeEnd(tile))) return CMD_ERROR;
|
||||
|
|
Loading…
Reference in New Issue