Mercurial > hg > openttd
changeset 11514:c28cdd91492b draft
(svn r15875) -Add: AIBridge::GetBridgeID() so AIs can get the type of bridge that are already build.
author | yexo <yexo@openttd.org> |
---|---|
date | Sat, 28 Mar 2009 12:04:38 +0000 |
parents | 060289e229f7 |
children | c724fc176439 |
files | bin/ai/regression/regression.nut bin/ai/regression/regression.txt src/ai/api/ai_bridge.cpp src/ai/api/ai_bridge.hpp src/ai/api/ai_bridge.hpp.sq |
diffstat | 5 files changed, 21 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/bin/ai/regression/regression.nut +++ b/bin/ai/regression/regression.nut @@ -256,12 +256,15 @@ print(" Valid Bridges: " + j); print(" IsBridgeTile(): " + AIBridge.IsBridgeTile(33160)); + print(" GetBridgeID(): " + AIBridge.GetBridgeID(33160)); print(" RemoveBridge(): " + AIBridge.RemoveBridge(33155)); print(" GetLastErrorString(): " + AIError.GetLastErrorString()); print(" GetOtherBridgeEnd(): " + AIBridge.GetOtherBridgeEnd(33160)); print(" BuildBridge(): " + AIBridge.BuildBridge(AIVehicle.VT_ROAD, 5, 33160, 33155)); print(" IsBridgeTile(): " + AIBridge.IsBridgeTile(33160)); + print(" GetBridgeID(): " + AIBridge.GetBridgeID(33160)); print(" IsBridgeTile(): " + AIBridge.IsBridgeTile(33155)); + print(" GetBridgeID(): " + AIBridge.GetBridgeID(33155)); print(" GetOtherBridgeEnd(): " + AIBridge.GetOtherBridgeEnd(33160)); print(" BuildBridge(): " + AIBridge.BuildBridge(AIVehicle.VT_ROAD, 5, 33160, 33155)); print(" GetLastErrorString(): " + AIError.GetLastErrorString());
--- a/bin/ai/regression/regression.txt +++ b/bin/ai/regression/regression.txt @@ -743,12 +743,15 @@ GetMinLength(): -1 Valid Bridges: 10 IsBridgeTile(): false + GetBridgeID(): -1 RemoveBridge(): false GetLastErrorString(): ERR_PRECONDITION_FAILED GetOtherBridgeEnd(): -1 BuildBridge(): true IsBridgeTile(): true + GetBridgeID(): 5 IsBridgeTile(): true + GetBridgeID(): 5 GetOtherBridgeEnd(): 33155 BuildBridge(): false GetLastErrorString(): ERR_ALREADY_BUILT
--- a/src/ai/api/ai_bridge.cpp +++ b/src/ai/api/ai_bridge.cpp @@ -23,6 +23,12 @@ return ::IsBridgeTile(tile); } +/* static */ BridgeID AIBridge::GetBridgeID(TileIndex tile) +{ + if (!IsBridgeTile(tile)) return -1; + return (BridgeID)::GetBridgeType(tile); +} + static void _DoCommandReturnBuildBridge2(class AIInstance *instance) { if (!AIBridge::_BuildBridgeRoad2()) {
--- a/src/ai/api/ai_bridge.hpp +++ b/src/ai/api/ai_bridge.hpp @@ -52,6 +52,14 @@ static bool IsBridgeTile(TileIndex tile); /** + * Get the BridgeID of a bridge at a given tile. + * @param tile The tile to get the BridgeID from. + * @pre IsBridgeTile(tile). + * @return The BridgeID from the bridge at tile 'tile'. + */ + static BridgeID GetBridgeID(TileIndex tile); + + /** * Get the name of a bridge. * @param bridge_id The bridge to get the name of. * @pre IsValidBridge(bridge_id).
--- a/src/ai/api/ai_bridge.hpp.sq +++ b/src/ai/api/ai_bridge.hpp.sq @@ -36,6 +36,7 @@ SQAIBridge.DefSQStaticMethod(engine, &AIBridge::IsValidBridge, "IsValidBridge", 2, ".i"); SQAIBridge.DefSQStaticMethod(engine, &AIBridge::IsBridgeTile, "IsBridgeTile", 2, ".i"); + SQAIBridge.DefSQStaticMethod(engine, &AIBridge::GetBridgeID, "GetBridgeID", 2, ".i"); SQAIBridge.DefSQStaticMethod(engine, &AIBridge::GetName, "GetName", 2, ".i"); SQAIBridge.DefSQStaticMethod(engine, &AIBridge::GetMaxSpeed, "GetMaxSpeed", 2, ".i"); SQAIBridge.DefSQStaticMethod(engine, &AIBridge::GetPrice, "GetPrice", 3, ".ii");