Changeset - r23699:dd8e59969b49
projects/openttd_vs140.vcxproj
Show inline comments
 
@@ -1092,6 +1092,7 @@
 
    <ClInclude Include="..\src\script\api\script_rail.hpp" />
 
    <ClInclude Include="..\src\script\api\script_railtypelist.hpp" />
 
    <ClInclude Include="..\src\script\api\script_road.hpp" />
 
    <ClInclude Include="..\src\script\api\script_roadtypelist.hpp" />
 
    <ClInclude Include="..\src\script\api\script_sign.hpp" />
 
    <ClInclude Include="..\src\script\api\script_signlist.hpp" />
 
    <ClInclude Include="..\src\script\api\script_station.hpp" />
 
@@ -1158,6 +1159,7 @@
 
    <ClCompile Include="..\src\script\api\script_rail.cpp" />
 
    <ClCompile Include="..\src\script\api\script_railtypelist.cpp" />
 
    <ClCompile Include="..\src\script\api\script_road.cpp" />
 
    <ClCompile Include="..\src\script\api\script_roadtypelist.cpp" />
 
    <ClCompile Include="..\src\script\api\script_sign.cpp" />
 
    <ClCompile Include="..\src\script\api\script_signlist.cpp" />
 
    <ClCompile Include="..\src\script\api\script_station.cpp" />
projects/openttd_vs140.vcxproj.filters
Show inline comments
 
@@ -2364,6 +2364,9 @@
 
    <ClInclude Include="..\src\script\api\script_road.hpp">
 
      <Filter>Script API</Filter>
 
    </ClInclude>
 
    <ClInclude Include="..\src\script\api\script_roadtypelist.hpp">
 
      <Filter>Script API</Filter>
 
    </ClInclude>
 
    <ClInclude Include="..\src\script\api\script_sign.hpp">
 
      <Filter>Script API</Filter>
 
    </ClInclude>
 
@@ -2562,6 +2565,9 @@
 
    <ClCompile Include="..\src\script\api\script_road.cpp">
 
      <Filter>Script API Implementation</Filter>
 
    </ClCompile>
 
    <ClCompile Include="..\src\script\api\script_roadtypelist.cpp">
 
      <Filter>Script API Implementation</Filter>
 
    </ClCompile>
 
    <ClCompile Include="..\src\script\api\script_sign.cpp">
 
      <Filter>Script API Implementation</Filter>
 
    </ClCompile>
projects/openttd_vs141.vcxproj
Show inline comments
 
@@ -1092,6 +1092,7 @@
 
    <ClInclude Include="..\src\script\api\script_rail.hpp" />
 
    <ClInclude Include="..\src\script\api\script_railtypelist.hpp" />
 
    <ClInclude Include="..\src\script\api\script_road.hpp" />
 
    <ClInclude Include="..\src\script\api\script_roadtypelist.hpp" />
 
    <ClInclude Include="..\src\script\api\script_sign.hpp" />
 
    <ClInclude Include="..\src\script\api\script_signlist.hpp" />
 
    <ClInclude Include="..\src\script\api\script_station.hpp" />
 
@@ -1158,6 +1159,7 @@
 
    <ClCompile Include="..\src\script\api\script_rail.cpp" />
 
    <ClCompile Include="..\src\script\api\script_railtypelist.cpp" />
 
    <ClCompile Include="..\src\script\api\script_road.cpp" />
 
    <ClCompile Include="..\src\script\api\script_roadtypelist.cpp" />
 
    <ClCompile Include="..\src\script\api\script_sign.cpp" />
 
    <ClCompile Include="..\src\script\api\script_signlist.cpp" />
 
    <ClCompile Include="..\src\script\api\script_station.cpp" />
projects/openttd_vs141.vcxproj.filters
Show inline comments
 
@@ -2364,6 +2364,9 @@
 
    <ClInclude Include="..\src\script\api\script_road.hpp">
 
      <Filter>Script API</Filter>
 
    </ClInclude>
 
    <ClInclude Include="..\src\script\api\script_roadtypelist.hpp">
 
      <Filter>Script API</Filter>
 
    </ClInclude>
 
    <ClInclude Include="..\src\script\api\script_sign.hpp">
 
      <Filter>Script API</Filter>
 
    </ClInclude>
 
@@ -2562,6 +2565,9 @@
 
    <ClCompile Include="..\src\script\api\script_road.cpp">
 
      <Filter>Script API Implementation</Filter>
 
    </ClCompile>
 
    <ClCompile Include="..\src\script\api\script_roadtypelist.cpp">
 
      <Filter>Script API Implementation</Filter>
 
    </ClCompile>
 
    <ClCompile Include="..\src\script\api\script_sign.cpp">
 
      <Filter>Script API Implementation</Filter>
 
    </ClCompile>
projects/openttd_vs142.vcxproj
Show inline comments
 
@@ -1092,6 +1092,7 @@
 
    <ClInclude Include="..\src\script\api\script_rail.hpp" />
 
    <ClInclude Include="..\src\script\api\script_railtypelist.hpp" />
 
    <ClInclude Include="..\src\script\api\script_road.hpp" />
 
    <ClInclude Include="..\src\script\api\script_roadtypelist.hpp" />
 
    <ClInclude Include="..\src\script\api\script_sign.hpp" />
 
    <ClInclude Include="..\src\script\api\script_signlist.hpp" />
 
    <ClInclude Include="..\src\script\api\script_station.hpp" />
 
@@ -1158,6 +1159,7 @@
 
    <ClCompile Include="..\src\script\api\script_rail.cpp" />
 
    <ClCompile Include="..\src\script\api\script_railtypelist.cpp" />
 
    <ClCompile Include="..\src\script\api\script_road.cpp" />
 
    <ClCompile Include="..\src\script\api\script_roadtypelist.cpp" />
 
    <ClCompile Include="..\src\script\api\script_sign.cpp" />
 
    <ClCompile Include="..\src\script\api\script_signlist.cpp" />
 
    <ClCompile Include="..\src\script\api\script_station.cpp" />
projects/openttd_vs142.vcxproj.filters
Show inline comments
 
@@ -2364,6 +2364,9 @@
 
    <ClInclude Include="..\src\script\api\script_road.hpp">
 
      <Filter>Script API</Filter>
 
    </ClInclude>
 
    <ClInclude Include="..\src\script\api\script_roadtypelist.hpp">
 
      <Filter>Script API</Filter>
 
    </ClInclude>
 
    <ClInclude Include="..\src\script\api\script_sign.hpp">
 
      <Filter>Script API</Filter>
 
    </ClInclude>
 
@@ -2562,6 +2565,9 @@
 
    <ClCompile Include="..\src\script\api\script_road.cpp">
 
      <Filter>Script API Implementation</Filter>
 
    </ClCompile>
 
    <ClCompile Include="..\src\script\api\script_roadtypelist.cpp">
 
      <Filter>Script API Implementation</Filter>
 
    </ClCompile>
 
    <ClCompile Include="..\src\script\api\script_sign.cpp">
 
      <Filter>Script API Implementation</Filter>
 
    </ClCompile>
source.list
Show inline comments
 
@@ -825,6 +825,7 @@ script/api/script_order.hpp
 
script/api/script_rail.hpp
 
script/api/script_railtypelist.hpp
 
script/api/script_road.hpp
 
script/api/script_roadtypelist.hpp
 
script/api/script_sign.hpp
 
script/api/script_signlist.hpp
 
script/api/script_station.hpp
 
@@ -893,6 +894,7 @@ script/api/script_order.cpp
 
script/api/script_rail.cpp
 
script/api/script_railtypelist.cpp
 
script/api/script_road.cpp
 
script/api/script_roadtypelist.cpp
 
script/api/script_sign.cpp
 
script/api/script_signlist.cpp
 
script/api/script_station.cpp
src/ai/ai_instance.cpp
Show inline comments
 
@@ -62,6 +62,7 @@
 
#include "../script/api/ai/ai_rail.hpp.sq"
 
#include "../script/api/ai/ai_railtypelist.hpp.sq"
 
#include "../script/api/ai/ai_road.hpp.sq"
 
#include "../script/api/ai/ai_roadtypelist.hpp.sq"
 
#include "../script/api/ai/ai_sign.hpp.sq"
 
#include "../script/api/ai/ai_signlist.hpp.sq"
 
#include "../script/api/ai/ai_station.hpp.sq"
 
@@ -167,6 +168,7 @@ void AIInstance::RegisterAPI()
 
	SQAIRail_Register(this->engine);
 
	SQAIRailTypeList_Register(this->engine);
 
	SQAIRoad_Register(this->engine);
 
	SQAIRoadTypeList_Register(this->engine);
 
	SQAISign_Register(this->engine);
 
	SQAISignList_Register(this->engine);
 
	SQAIStation_Register(this->engine);
src/game/game_instance.cpp
Show inline comments
 
@@ -64,6 +64,7 @@
 
#include "../script/api/game/game_rail.hpp.sq"
 
#include "../script/api/game/game_railtypelist.hpp.sq"
 
#include "../script/api/game/game_road.hpp.sq"
 
#include "../script/api/game/game_roadtypelist.hpp.sq"
 
#include "../script/api/game/game_sign.hpp.sq"
 
#include "../script/api/game/game_signlist.hpp.sq"
 
#include "../script/api/game/game_station.hpp.sq"
 
@@ -174,6 +175,7 @@ void GameInstance::RegisterAPI()
 
	SQGSRail_Register(this->engine);
 
	SQGSRailTypeList_Register(this->engine);
 
	SQGSRoad_Register(this->engine);
 
	SQGSRoadTypeList_Register(this->engine);
 
	SQGSSign_Register(this->engine);
 
	SQGSSignList_Register(this->engine);
 
	SQGSStation_Register(this->engine);
src/script/api/ai/ai_engine.hpp.sq
Show inline comments
 
@@ -41,6 +41,8 @@ void SQAIEngine_Register(Squirrel *engin
 
	SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::IsWagon,                 "IsWagon",                 2, ".i");
 
	SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::CanRunOnRail,            "CanRunOnRail",            3, ".ii");
 
	SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::HasPowerOnRail,          "HasPowerOnRail",          3, ".ii");
 
	SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::CanRunOnRoad,            "CanRunOnRoad",            3, ".ii");
 
	SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::HasPowerOnRoad,          "HasPowerOnRoad",          3, ".ii");
 
	SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::GetRoadType,             "GetRoadType",             2, ".i");
 
	SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::GetRailType,             "GetRailType",             2, ".i");
 
	SQAIEngine.DefSQStaticMethod(engine, &ScriptEngine::IsArticulated,           "IsArticulated",           2, ".i");
src/script/api/ai/ai_road.hpp.sq
Show inline comments
 
@@ -31,6 +31,8 @@ void SQAIRoad_Register(Squirrel *engine)
 
	SQAIRoad.DefSQConst(engine, ScriptRoad::ROADTYPE_ROAD,                                "ROADTYPE_ROAD");
 
	SQAIRoad.DefSQConst(engine, ScriptRoad::ROADTYPE_TRAM,                                "ROADTYPE_TRAM");
 
	SQAIRoad.DefSQConst(engine, ScriptRoad::ROADTYPE_INVALID,                             "ROADTYPE_INVALID");
 
	SQAIRoad.DefSQConst(engine, ScriptRoad::ROADTRAMTYPES_ROAD,                           "ROADTRAMTYPES_ROAD");
 
	SQAIRoad.DefSQConst(engine, ScriptRoad::ROADTRAMTYPES_TRAM,                           "ROADTRAMTYPES_TRAM");
 
	SQAIRoad.DefSQConst(engine, ScriptRoad::ROADVEHTYPE_BUS,                              "ROADVEHTYPE_BUS");
 
	SQAIRoad.DefSQConst(engine, ScriptRoad::ROADVEHTYPE_TRUCK,                            "ROADVEHTYPE_TRUCK");
 
	SQAIRoad.DefSQConst(engine, ScriptRoad::BT_ROAD,                                      "BT_ROAD");
 
@@ -86,6 +88,7 @@ void SQAIRoad_Register(Squirrel *engine)
 
	SQAIRoad.DefSQStaticMethod(engine, &ScriptRoad::RemoveRoadDepot,                "RemoveRoadDepot",                2, ".i");
 
	SQAIRoad.DefSQStaticMethod(engine, &ScriptRoad::RemoveRoadStation,              "RemoveRoadStation",              2, ".i");
 
	SQAIRoad.DefSQStaticMethod(engine, &ScriptRoad::GetBuildCost,                   "GetBuildCost",                   3, ".ii");
 
	SQAIRoad.DefSQStaticMethod(engine, &ScriptRoad::GetRoadTramType,                "GetRoadTramType",                2, ".i");
 
	SQAIRoad.DefSQStaticMethod(engine, &ScriptRoad::GetMaxSpeed,                    "GetMaxSpeed",                    2, ".i");
 
	SQAIRoad.DefSQStaticMethod(engine, &ScriptRoad::GetMaintenanceCostFactor,       "GetMaintenanceCostFactor",       2, ".i");
 

	
src/script/api/ai/ai_roadtypelist.hpp.sq
Show inline comments
 
new file 100644
 
/* $Id$ */
 

	
 
/*
 
 * This file is part of OpenTTD.
 
 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
 
 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
 
 */
 

	
 
/* THIS FILE IS AUTO-GENERATED; PLEASE DO NOT ALTER MANUALLY */
 

	
 
#include "../script_roadtypelist.hpp"
 
#include "../template/template_roadtypelist.hpp.sq"
 

	
 

	
 
template <> const char *GetClassName<ScriptRoadTypeList, ST_AI>() { return "AIRoadTypeList"; }
 

	
 
void SQAIRoadTypeList_Register(Squirrel *engine)
 
{
 
	DefSQClass<ScriptRoadTypeList, ST_AI> SQAIRoadTypeList("AIRoadTypeList");
 
	SQAIRoadTypeList.PreRegister(engine, "AIList");
 
	SQAIRoadTypeList.AddConstructor<void (ScriptRoadTypeList::*)(ScriptRoad::RoadTramTypes rtts), 2>(engine, "xi");
 

	
 
	SQAIRoadTypeList.PostRegister(engine);
 
}
src/script/api/ai_changelog.hpp
Show inline comments
 
@@ -31,6 +31,9 @@
 
 * \li AIRoad::RoadVehHasPowerOnRoad
 
 * \li AIRoad::ConvertRoadType
 
 * \li AIRoad::GetMaxSpeed
 
 * \li AIEngine::CanRunOnRoad
 
 * \li AIEngine::HasPowerOnRoad
 
 * \li AIRoadTypeList::RoadTypeList
 
 *
 
 * \b 1.9.0
 
 *
src/script/api/game/game_engine.hpp.sq
Show inline comments
 
@@ -41,6 +41,8 @@ void SQGSEngine_Register(Squirrel *engin
 
	SQGSEngine.DefSQStaticMethod(engine, &ScriptEngine::IsWagon,                 "IsWagon",                 2, ".i");
 
	SQGSEngine.DefSQStaticMethod(engine, &ScriptEngine::CanRunOnRail,            "CanRunOnRail",            3, ".ii");
 
	SQGSEngine.DefSQStaticMethod(engine, &ScriptEngine::HasPowerOnRail,          "HasPowerOnRail",          3, ".ii");
 
	SQGSEngine.DefSQStaticMethod(engine, &ScriptEngine::CanRunOnRoad,            "CanRunOnRoad",            3, ".ii");
 
	SQGSEngine.DefSQStaticMethod(engine, &ScriptEngine::HasPowerOnRoad,          "HasPowerOnRoad",          3, ".ii");
 
	SQGSEngine.DefSQStaticMethod(engine, &ScriptEngine::GetRoadType,             "GetRoadType",             2, ".i");
 
	SQGSEngine.DefSQStaticMethod(engine, &ScriptEngine::GetRailType,             "GetRailType",             2, ".i");
 
	SQGSEngine.DefSQStaticMethod(engine, &ScriptEngine::IsArticulated,           "IsArticulated",           2, ".i");
src/script/api/game/game_road.hpp.sq
Show inline comments
 
@@ -31,6 +31,8 @@ void SQGSRoad_Register(Squirrel *engine)
 
	SQGSRoad.DefSQConst(engine, ScriptRoad::ROADTYPE_ROAD,                                "ROADTYPE_ROAD");
 
	SQGSRoad.DefSQConst(engine, ScriptRoad::ROADTYPE_TRAM,                                "ROADTYPE_TRAM");
 
	SQGSRoad.DefSQConst(engine, ScriptRoad::ROADTYPE_INVALID,                             "ROADTYPE_INVALID");
 
	SQGSRoad.DefSQConst(engine, ScriptRoad::ROADTRAMTYPES_ROAD,                           "ROADTRAMTYPES_ROAD");
 
	SQGSRoad.DefSQConst(engine, ScriptRoad::ROADTRAMTYPES_TRAM,                           "ROADTRAMTYPES_TRAM");
 
	SQGSRoad.DefSQConst(engine, ScriptRoad::ROADVEHTYPE_BUS,                              "ROADVEHTYPE_BUS");
 
	SQGSRoad.DefSQConst(engine, ScriptRoad::ROADVEHTYPE_TRUCK,                            "ROADVEHTYPE_TRUCK");
 
	SQGSRoad.DefSQConst(engine, ScriptRoad::BT_ROAD,                                      "BT_ROAD");
 
@@ -86,6 +88,7 @@ void SQGSRoad_Register(Squirrel *engine)
 
	SQGSRoad.DefSQStaticMethod(engine, &ScriptRoad::RemoveRoadDepot,                "RemoveRoadDepot",                2, ".i");
 
	SQGSRoad.DefSQStaticMethod(engine, &ScriptRoad::RemoveRoadStation,              "RemoveRoadStation",              2, ".i");
 
	SQGSRoad.DefSQStaticMethod(engine, &ScriptRoad::GetBuildCost,                   "GetBuildCost",                   3, ".ii");
 
	SQGSRoad.DefSQStaticMethod(engine, &ScriptRoad::GetRoadTramType,                "GetRoadTramType",                2, ".i");
 
	SQGSRoad.DefSQStaticMethod(engine, &ScriptRoad::GetMaxSpeed,                    "GetMaxSpeed",                    2, ".i");
 
	SQGSRoad.DefSQStaticMethod(engine, &ScriptRoad::GetMaintenanceCostFactor,       "GetMaintenanceCostFactor",       2, ".i");
 

	
src/script/api/game/game_roadtypelist.hpp.sq
Show inline comments
 
new file 100644
 
/* $Id$ */
 

	
 
/*
 
 * This file is part of OpenTTD.
 
 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
 
 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
 
 */
 

	
 
/* THIS FILE IS AUTO-GENERATED; PLEASE DO NOT ALTER MANUALLY */
 

	
 
#include "../script_roadtypelist.hpp"
 
#include "../template/template_roadtypelist.hpp.sq"
 

	
 

	
 
template <> const char *GetClassName<ScriptRoadTypeList, ST_GS>() { return "GSRoadTypeList"; }
 

	
 
void SQGSRoadTypeList_Register(Squirrel *engine)
 
{
 
	DefSQClass<ScriptRoadTypeList, ST_GS> SQGSRoadTypeList("GSRoadTypeList");
 
	SQGSRoadTypeList.PreRegister(engine, "GSList");
 
	SQGSRoadTypeList.AddConstructor<void (ScriptRoadTypeList::*)(ScriptRoad::RoadTramTypes rtts), 2>(engine, "xi");
 

	
 
	SQGSRoadTypeList.PostRegister(engine);
 
}
src/script/api/script_engine.cpp
Show inline comments
 
@@ -15,6 +15,7 @@
 
#include "../../company_base.h"
 
#include "../../strings_func.h"
 
#include "../../rail.h"
 
#include "../../road.h"
 
#include "../../engine_base.h"
 
#include "../../engine_func.h"
 
#include "../../articulated_vehicles.h"
 
@@ -219,6 +220,20 @@
 
	return ::HasPowerOnRail((::RailType)::RailVehInfo(engine_id)->railtype, (::RailType)track_rail_type);
 
}
 

	
 
/* static */ bool ScriptEngine::CanRunOnRoad(EngineID engine_id, ScriptRoad::RoadType road_type)
 
{
 
	return HasPowerOnRoad(engine_id, road_type);
 
}
 

	
 
/* static */ bool ScriptEngine::HasPowerOnRoad(EngineID engine_id, ScriptRoad::RoadType road_type)
 
{
 
	if (!IsValidEngine(engine_id)) return false;
 
	if (GetVehicleType(engine_id) != ScriptVehicle::VT_ROAD) return false;
 
	if (!ScriptRoad::IsRoadTypeAvailable(road_type)) return false;
 

	
 
	return ::HasPowerOnRoad((::RoadType)::RoadVehInfo(engine_id)->roadtype, (::RoadType)road_type);
 
}
 

	
 
/* static */ ScriptRoad::RoadType ScriptEngine::GetRoadType(EngineID engine_id)
 
{
 
	if (!IsValidEngine(engine_id)) return ScriptRoad::ROADTYPE_INVALID;
src/script/api/script_engine.hpp
Show inline comments
 
@@ -218,6 +218,28 @@ public:
 
	static bool HasPowerOnRail(EngineID engine_id, ScriptRail::RailType track_rail_type);
 

	
 
	/**
 
	 * Check if a road vehicle can run on a RoadType.
 
	 * @param engine_id The engine to check.
 
	 * @param road_type Another RoadType.
 
	 * @pre IsValidEngine(engine_id).
 
	 * @pre GetVehicleType(engine_id) == ScriptVehicle::VT_ROAD.
 
	 * @pre ScriptRoad::IsRoadTypeAvailable(road_type).
 
	 * @return Whether an engine of type 'engine_id' can run on 'road_type'.
 
	 */
 
	static bool CanRunOnRoad(EngineID engine_id, ScriptRoad::RoadType road_type);
 

	
 
	/**
 
	 * Check if a road vehicle has power on a RoadType.
 
	 * @param engine_id The engine to check.
 
	 * @param road_type Another RoadType.
 
	 * @pre IsValidEngine(engine_id).
 
	 * @pre GetVehicleType(engine_id) == ScriptVehicle::VT_ROAD.
 
	 * @pre ScriptRoad::IsRoadTypeAvailable(road_type).
 
	 * @return Whether an engine of type 'engine_id' has power on 'road_type'.
 
	 */
 
	static bool HasPowerOnRoad(EngineID engine_id, ScriptRoad::RoadType road_type);
 

	
 
	/**
 
	 * Get the RoadType of the engine.
 
	 * @param engine_id The engine to get the RoadType of.
 
	 * @pre IsValidEngine(engine_id).
src/script/api/script_road.cpp
Show inline comments
 
@@ -97,7 +97,7 @@
 
{
 
	if (!ScriptMap::IsValidTile(tile)) return false;
 
	if (!IsRoadTypeAvailable(road_type)) return false;
 
	return ::GetAnyRoadBits(tile, GetRoadTramType((::RoadType)road_type), false) != ROAD_NONE;
 
	return ::GetAnyRoadBits(tile, ::GetRoadTramType((::RoadType)road_type), false) != ROAD_NONE;
 
}
 

	
 
/* static */ bool ScriptRoad::AreRoadTilesConnected(TileIndex t1, TileIndex t2)
 
@@ -109,7 +109,7 @@
 
	/* Tiles not neighbouring */
 
	if ((abs((int)::TileX(t1) - (int)::TileX(t2)) + abs((int)::TileY(t1) - (int)::TileY(t2))) != 1) return false;
 

	
 
	RoadTramType rtt = GetRoadTramType(ScriptObject::GetRoadType());
 
	RoadTramType rtt = ::GetRoadTramType(ScriptObject::GetRoadType());
 
	RoadBits r1 = ::GetAnyRoadBits(t1, rtt); // TODO
 
	RoadBits r2 = ::GetAnyRoadBits(t2, rtt); // TODO
 

	
 
@@ -627,6 +627,11 @@ static bool NeighbourHasReachableRoad(::
 
	}
 
}
 

	
 
/* static */ ScriptRoad::RoadTramTypes ScriptRoad::GetRoadTramType(RoadType roadtype)
 
{
 
	return (RoadTramTypes)(1 << ::GetRoadTramType((::RoadType)roadtype));
 
}
 

	
 
/* static */ int32 ScriptRoad::GetMaxSpeed(RoadType road_type)
 
{
 
	if (!ScriptRoad::IsRoadTypeAvailable(road_type)) return 0;
src/script/api/script_road.hpp
Show inline comments
 
@@ -13,6 +13,7 @@
 
#define SCRIPT_ROAD_HPP
 

	
 
#include "script_tile.hpp"
 
#include "../../../road.h"
 

	
 
/**
 
 * Class that handles all road related functions.
 
@@ -59,6 +60,14 @@ public:
 
	};
 

	
 
	/**
 
	 * Road/tram types
 
	 */
 
	enum RoadTramTypes {
 
		ROADTRAMTYPES_ROAD = ::RTTB_ROAD, ///< Road road types.
 
		ROADTRAMTYPES_TRAM = ::RTTB_TRAM, ///< Tram road types.
 
	};
 

	
 
	/**
 
	 * Type of road station.
 
	 */
 
	enum RoadVehicleType {
 
@@ -538,6 +547,13 @@ public:
 
	static Money GetBuildCost(RoadType roadtype, BuildType build_type);
 

	
 
	/**
 
	 * Test if a road type is for road or trams.
 
	 * @param roadtype the roadtype to test.
 
	 * @return RoadTramTypes of the road types.
 
	 */
 
	static RoadTramTypes GetRoadTramType(RoadType roadtype);
 

	
 
	/**
 
	 * Get the maximum speed of road vehicles running on this roadtype.
 
	 * @param road_type The roadtype to get the maximum speed of.
 
	 * @pre IsRoadTypeAvailable(road_type)
src/script/api/script_roadtypelist.cpp
Show inline comments
 
new file 100644
 
/* $Id$ */
 

	
 
/*
 
 * This file is part of OpenTTD.
 
 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
 
 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
 
 */
 

	
 
/** @file script_roadtypelist.cpp Implementation of ScriptRoadTypeList and friends. */
 

	
 
#include "../../stdafx.h"
 
#include "script_roadtypelist.hpp"
 
#include "../../road_func.h"
 

	
 
#include "../../safeguards.h"
 

	
 
ScriptRoadTypeList::ScriptRoadTypeList(ScriptRoad::RoadTramTypes rtts)
 
{
 
	for (RoadType rt = ROADTYPE_BEGIN; rt != ROADTYPE_END; rt++) {
 
		if (!HasBit(rtts, GetRoadTramType(rt))) continue;
 
		if (ScriptObject::GetCompany() == OWNER_DEITY || ::HasRoadTypeAvail(ScriptObject::GetCompany(), rt)) this->AddItem(rt);
 
	}
 
}
src/script/api/script_roadtypelist.hpp
Show inline comments
 
new file 100644
 
/* $Id$ */
 

	
 
/*
 
 * This file is part of OpenTTD.
 
 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
 
 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
 
 */
 

	
 
/** @file script_roadtypelist.hpp List all available roadtypes. */
 

	
 
#ifndef SCRIPT_ROADTYPELIST_HPP
 
#define SCRIPT_ROADTYPELIST_HPP
 

	
 
#include "script_list.hpp"
 
#include "script_road.hpp"
 

	
 
/**
 
 * Creates a list of all available roadtypes.
 
 * @api ai game
 
 * @ingroup ScriptList
 
 */
 
class ScriptRoadTypeList : public ScriptList {
 
public:
 
	/**
 
	 * @param rtts Bitmask of road/tram types to list.
 
	 */
 
	ScriptRoadTypeList(ScriptRoad::RoadTramTypes rtts);
 
};
 

	
 
#endif /* SCRIPT_ROADTYPELIST_HPP */
src/script/api/template/template_road.hpp.sq
Show inline comments
 
@@ -17,6 +17,8 @@ namespace SQConvert {
 
	template <> inline int Return<ScriptRoad::ErrorMessages>(HSQUIRRELVM vm, ScriptRoad::ErrorMessages res) { sq_pushinteger(vm, (int32)res); return 1; }
 
	template <> inline ScriptRoad::RoadType GetParam(ForceType<ScriptRoad::RoadType>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptRoad::RoadType)tmp; }
 
	template <> inline int Return<ScriptRoad::RoadType>(HSQUIRRELVM vm, ScriptRoad::RoadType res) { sq_pushinteger(vm, (int32)res); return 1; }
 
	template <> inline ScriptRoad::RoadTramTypes GetParam(ForceType<ScriptRoad::RoadTramTypes>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptRoad::RoadTramTypes)tmp; }
 
	template <> inline int Return<ScriptRoad::RoadTramTypes>(HSQUIRRELVM vm, ScriptRoad::RoadTramTypes res) { sq_pushinteger(vm, (int32)res); return 1; }
 
	template <> inline ScriptRoad::RoadVehicleType GetParam(ForceType<ScriptRoad::RoadVehicleType>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptRoad::RoadVehicleType)tmp; }
 
	template <> inline int Return<ScriptRoad::RoadVehicleType>(HSQUIRRELVM vm, ScriptRoad::RoadVehicleType res) { sq_pushinteger(vm, (int32)res); return 1; }
 
	template <> inline ScriptRoad::BuildType GetParam(ForceType<ScriptRoad::BuildType>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptRoad::BuildType)tmp; }
src/script/api/template/template_roadtypelist.hpp.sq
Show inline comments
 
new file 100644
 
/* $Id$ */
 

	
 
/*
 
 * This file is part of OpenTTD.
 
 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2.
 
 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>.
 
 */
 

	
 
/* THIS FILE IS AUTO-GENERATED; PLEASE DO NOT ALTER MANUALLY */
 

	
 
#include "../script_roadtypelist.hpp"
 

	
 
namespace SQConvert {
 
	/* Allow ScriptRoadTypeList to be used as Squirrel parameter */
 
	template <> inline ScriptRoadTypeList *GetParam(ForceType<ScriptRoadTypeList *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return  (ScriptRoadTypeList *)instance; }
 
	template <> inline ScriptRoadTypeList &GetParam(ForceType<ScriptRoadTypeList &>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(ScriptRoadTypeList *)instance; }
 
	template <> inline const ScriptRoadTypeList *GetParam(ForceType<const ScriptRoadTypeList *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return  (ScriptRoadTypeList *)instance; }
 
	template <> inline const ScriptRoadTypeList &GetParam(ForceType<const ScriptRoadTypeList &>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return *(ScriptRoadTypeList *)instance; }
 
	template <> inline int Return<ScriptRoadTypeList *>(HSQUIRRELVM vm, ScriptRoadTypeList *res) { if (res == nullptr) { sq_pushnull(vm); return 1; } res->AddRef(); Squirrel::CreateClassInstanceVM(vm, "RoadTypeList", res, nullptr, DefSQDestructorCallback<ScriptRoadTypeList>, true); return 1; }
 
} // namespace SQConvert
0 comments (0 inline, 0 general)