mirror of https://github.com/OpenTTD/OpenTTD.git
(svn r15860) -Add: AIRoad::GetRoadVehicleTypeForCargo() to tell whether a certain cargo needs a bus- or a truckstop.
This commit is contained in:
parent
19b47c1e89
commit
44351cdc57
|
@ -329,6 +329,7 @@ function Regression::Cargo()
|
|||
print(" GetCargoIncome(10, 10): " + AICargo.GetCargoIncome(i, 10, 10));
|
||||
print(" GetCargoIncome(100, 10): " + AICargo.GetCargoIncome(i, 100, 10));
|
||||
print(" GetCargoIncome(10, 100): " + AICargo.GetCargoIncome(i, 10, 100));
|
||||
print(" GetRoadVehicleTypeForCargo(): " + AIRoad.GetRoadVehicleTypeForCargo(i));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -824,6 +824,7 @@
|
|||
GetCargoIncome(10, 10): -1
|
||||
GetCargoIncome(100, 10): -1
|
||||
GetCargoIncome(10, 100): -1
|
||||
GetRoadVehicleTypeForCargo(): 1
|
||||
Cargo 0
|
||||
IsValidCargo(): true
|
||||
GetCargoLabel(): 'PASS'
|
||||
|
@ -834,6 +835,7 @@
|
|||
GetCargoIncome(10, 10): 3
|
||||
GetCargoIncome(100, 10): 39
|
||||
GetCargoIncome(10, 100): 3
|
||||
GetRoadVehicleTypeForCargo(): 0
|
||||
Cargo 1
|
||||
IsValidCargo(): true
|
||||
GetCargoLabel(): 'COAL'
|
||||
|
@ -844,6 +846,7 @@
|
|||
GetCargoIncome(10, 10): 7
|
||||
GetCargoIncome(100, 10): 75
|
||||
GetCargoIncome(10, 100): 6
|
||||
GetRoadVehicleTypeForCargo(): 1
|
||||
Cargo 2
|
||||
IsValidCargo(): true
|
||||
GetCargoLabel(): 'MAIL'
|
||||
|
@ -854,6 +857,7 @@
|
|||
GetCargoIncome(10, 10): 5
|
||||
GetCargoIncome(100, 10): 58
|
||||
GetCargoIncome(10, 100): 5
|
||||
GetRoadVehicleTypeForCargo(): 1
|
||||
Cargo 3
|
||||
IsValidCargo(): true
|
||||
GetCargoLabel(): 'OIL_'
|
||||
|
@ -864,6 +868,7 @@
|
|||
GetCargoIncome(10, 10): 5
|
||||
GetCargoIncome(100, 10): 56
|
||||
GetCargoIncome(10, 100): 5
|
||||
GetRoadVehicleTypeForCargo(): 1
|
||||
Cargo 4
|
||||
IsValidCargo(): true
|
||||
GetCargoLabel(): 'LVST'
|
||||
|
@ -874,6 +879,7 @@
|
|||
GetCargoIncome(10, 10): 5
|
||||
GetCargoIncome(100, 10): 55
|
||||
GetCargoIncome(10, 100): 4
|
||||
GetRoadVehicleTypeForCargo(): 1
|
||||
Cargo 5
|
||||
IsValidCargo(): true
|
||||
GetCargoLabel(): 'GOOD'
|
||||
|
@ -884,6 +890,7 @@
|
|||
GetCargoIncome(10, 10): 7
|
||||
GetCargoIncome(100, 10): 78
|
||||
GetCargoIncome(10, 100): 6
|
||||
GetRoadVehicleTypeForCargo(): 1
|
||||
Cargo 6
|
||||
IsValidCargo(): true
|
||||
GetCargoLabel(): 'GRAI'
|
||||
|
@ -894,6 +901,7 @@
|
|||
GetCargoIncome(10, 10): 6
|
||||
GetCargoIncome(100, 10): 60
|
||||
GetCargoIncome(10, 100): 5
|
||||
GetRoadVehicleTypeForCargo(): 1
|
||||
Cargo 7
|
||||
IsValidCargo(): true
|
||||
GetCargoLabel(): 'WOOD'
|
||||
|
@ -904,6 +912,7 @@
|
|||
GetCargoIncome(10, 10): 6
|
||||
GetCargoIncome(100, 10): 63
|
||||
GetCargoIncome(10, 100): 5
|
||||
GetRoadVehicleTypeForCargo(): 1
|
||||
Cargo 8
|
||||
IsValidCargo(): true
|
||||
GetCargoLabel(): 'IORE'
|
||||
|
@ -914,6 +923,7 @@
|
|||
GetCargoIncome(10, 10): 6
|
||||
GetCargoIncome(100, 10): 65
|
||||
GetCargoIncome(10, 100): 5
|
||||
GetRoadVehicleTypeForCargo(): 1
|
||||
Cargo 9
|
||||
IsValidCargo(): true
|
||||
GetCargoLabel(): 'STEL'
|
||||
|
@ -924,6 +934,7 @@
|
|||
GetCargoIncome(10, 10): 7
|
||||
GetCargoIncome(100, 10): 72
|
||||
GetCargoIncome(10, 100): 6
|
||||
GetRoadVehicleTypeForCargo(): 1
|
||||
Cargo 10
|
||||
IsValidCargo(): true
|
||||
GetCargoLabel(): 'VALU'
|
||||
|
@ -934,6 +945,7 @@
|
|||
GetCargoIncome(10, 10): 9
|
||||
GetCargoIncome(100, 10): 94
|
||||
GetCargoIncome(10, 100): 7
|
||||
GetRoadVehicleTypeForCargo(): 1
|
||||
Cargo 11
|
||||
IsValidCargo(): false
|
||||
GetCargoLabel(): '(null : 0x00000000)'
|
||||
|
@ -944,6 +956,7 @@
|
|||
GetCargoIncome(10, 10): -1
|
||||
GetCargoIncome(100, 10): -1
|
||||
GetCargoIncome(10, 100): -1
|
||||
GetRoadVehicleTypeForCargo(): 1
|
||||
Cargo 12
|
||||
IsValidCargo(): false
|
||||
GetCargoLabel(): '(null : 0x00000000)'
|
||||
|
@ -954,6 +967,7 @@
|
|||
GetCargoIncome(10, 10): -1
|
||||
GetCargoIncome(100, 10): -1
|
||||
GetCargoIncome(10, 100): -1
|
||||
GetRoadVehicleTypeForCargo(): 1
|
||||
Cargo 13
|
||||
IsValidCargo(): false
|
||||
GetCargoLabel(): '(null : 0x00000000)'
|
||||
|
@ -964,6 +978,7 @@
|
|||
GetCargoIncome(10, 10): -1
|
||||
GetCargoIncome(100, 10): -1
|
||||
GetCargoIncome(10, 100): -1
|
||||
GetRoadVehicleTypeForCargo(): 1
|
||||
Cargo 14
|
||||
IsValidCargo(): false
|
||||
GetCargoLabel(): '(null : 0x00000000)'
|
||||
|
@ -974,6 +989,7 @@
|
|||
GetCargoIncome(10, 10): -1
|
||||
GetCargoIncome(100, 10): -1
|
||||
GetCargoIncome(10, 100): -1
|
||||
GetRoadVehicleTypeForCargo(): 1
|
||||
|
||||
--CargoList--
|
||||
Count(): 11
|
||||
|
|
|
@ -5,12 +5,18 @@
|
|||
#include "ai_road.hpp"
|
||||
#include "ai_map.hpp"
|
||||
#include "ai_station.hpp"
|
||||
#include "ai_cargo.hpp"
|
||||
#include "../../station_map.h"
|
||||
#include "../../command_type.h"
|
||||
#include "../../settings_type.h"
|
||||
#include "../../company_func.h"
|
||||
#include "../../script/squirrel_helper_type.hpp"
|
||||
|
||||
/* static */ AIRoad::RoadVehicleType AIRoad::GetRoadVehicleTypeForCargo(CargoID cargo_type)
|
||||
{
|
||||
return AICargo::HasCargoClass(cargo_type, AICargo::CC_PASSENGERS) ? ROADVEHTYPE_BUS : ROADVEHTYPE_TRUCK;
|
||||
}
|
||||
|
||||
/* static */ bool AIRoad::IsRoadTile(TileIndex tile)
|
||||
{
|
||||
if (!::IsValidTile(tile)) return false;
|
||||
|
|
|
@ -56,6 +56,14 @@ public:
|
|||
ROADVEHTYPE_TRUCK, //!< Build objects useable for trucks and cargo trams
|
||||
};
|
||||
|
||||
/**
|
||||
* Determines whether a busstop or a truckstop is needed to transport a certain cargo.
|
||||
* @param cargo_type The cargo to test.
|
||||
* @pre AICargo::IsValidCargo(cargo_type).
|
||||
* @return The road vehicle type needed to transport the cargo.
|
||||
*/
|
||||
static RoadVehicleType GetRoadVehicleTypeForCargo(CargoID cargo_type);
|
||||
|
||||
/**
|
||||
* Checks whether the given tile is actually a tile with road that can be
|
||||
* used to traverse a tile. This excludes road depots and 'normal' road
|
||||
|
|
|
@ -46,6 +46,7 @@ void SQAIRoad_Register(Squirrel *engine) {
|
|||
AIError::RegisterErrorMapString(AIRoad::ERR_ROAD_CANNOT_BUILD_ON_TOWN_ROAD, "ERR_ROAD_CANNOT_BUILD_ON_TOWN_ROAD");
|
||||
AIError::RegisterErrorMapString(AIRoad::ERR_ROAD_ONE_WAY_ROADS_CANNOT_HAVE_JUNCTIONS, "ERR_ROAD_ONE_WAY_ROADS_CANNOT_HAVE_JUNCTIONS");
|
||||
|
||||
SQAIRoad.DefSQStaticMethod(engine, &AIRoad::GetRoadVehicleTypeForCargo, "GetRoadVehicleTypeForCargo", 2, ".i");
|
||||
SQAIRoad.DefSQStaticMethod(engine, &AIRoad::IsRoadTile, "IsRoadTile", 2, ".i");
|
||||
SQAIRoad.DefSQStaticMethod(engine, &AIRoad::IsRoadDepotTile, "IsRoadDepotTile", 2, ".i");
|
||||
SQAIRoad.DefSQStaticMethod(engine, &AIRoad::IsRoadStationTile, "IsRoadStationTile", 2, ".i");
|
||||
|
|
Loading…
Reference in New Issue