(svn r3730) Multistop modifications:

-Codechange: Completely rewritten the slot assignment system. It now consumes less CPU cycles and memory
-Codechange: Increased maximum number of roadstops to 16.
-Fix: Several conditions where a slot becomes unliked from a vehicle
-Codechange: ClearSlot now only takes one parameter, the vehicle
-Feature: Console command 'clearslots' to clear ALL currently assinged slots. debug usage only
-Feature: vehicles that cannot get a slot now wait on the road instead of planlessly blocking stops or circling around
-Codechange: Adjusted debug levels
TODO: Make the slot finder compatible with (a) pathfinder(s).
This commit is contained in:
celestar
2006-03-02 08:55:12 +00:00
parent 841e6ab121
commit 9d54e51ef9
6 changed files with 134 additions and 85 deletions

View File

@@ -29,7 +29,7 @@ typedef enum RoadStopType {
enum {
INVALID_STATION = 0xFFFF,
NUM_SLOTS = 2,
ROAD_STOP_LIMIT = 8,
ROAD_STOP_LIMIT = 16,
};
typedef uint16 StationID;
@@ -202,8 +202,9 @@ static inline RoadStopType GetRoadStopType(TileIndex tile)
}
RoadStop * GetPrimaryRoadStop(const Station *st, RoadStopType type);
uint GetNumRoadStops(const Station* st, RoadStopType type);
RoadStop * AllocateRoadStop( void );
void ClearSlot(Vehicle *v, RoadStop *rs);
void ClearSlot(Vehicle *v);
static inline bool IsTrainStationTile(TileIndex tile)
{