Merge branch 'master' into jgrpp

# Conflicts:
#	.github/workflows/release-linux.yml
#	.github/workflows/release-macos.yml
#	src/industry_cmd.cpp
#	src/industry_cmd.h
#	src/network/core/http_curl.cpp
#	src/network/core/tcp_http.cpp
#	src/network/core/tcp_http.h
#	src/network/network_content.h
#	src/script/api/script_goal.cpp
#	src/script/api/script_industry.cpp
#	src/script/api/script_league.cpp
#	src/script/api/script_story_page.cpp
#	src/script/api/script_town.cpp
#	src/train.h
#	src/train_cmd.cpp
This commit is contained in:
Jonathan G Rennison
2023-03-04 01:11:51 +00:00
77 changed files with 1197 additions and 761 deletions

View File

@@ -2592,6 +2592,19 @@ static Vehicle *TrainOnTileEnum(Vehicle *v, void *)
return v;
}
/**
* Check if a level crossing tile has a train on it
* @param tile tile to test
* @return true if a train is on the crossing
* @pre tile is a level crossing
*/
bool TrainOnCrossing(TileIndex tile)
{
assert(IsLevelCrossingTile(tile));
return HasVehicleOnPos(tile, VEH_TRAIN, nullptr, &TrainOnTileEnum);
}
/**
* Checks if a train is approaching a rail-road crossing
@@ -2641,7 +2654,7 @@ static bool TrainApproachingCrossing(TileIndex tile)
static inline bool CheckLevelCrossing(TileIndex tile)
{
/* reserved || train on crossing || train approaching crossing */
return HasCrossingReservation(tile) || HasVehicleOnPos(tile, VEH_TRAIN, nullptr, &TrainOnTileEnum) || TrainApproachingCrossing(tile);
return HasCrossingReservation(tile) || TrainOnCrossing(tile) || TrainApproachingCrossing(tile);
}
/**