(svn r3750) Use INVALID_STATION instead of -1 in NPF
This commit is contained in:
		
							
								
								
									
										8
									
								
								npf.c
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								npf.c
									
									
									
									
									
								
							@@ -117,7 +117,7 @@ static int32 NPFCalcStationOrTileHeuristic(AyStar* as, AyStarNode* current, Open
 | 
				
			|||||||
	uint dist;
 | 
						uint dist;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// for train-stations, we are going to aim for the closest station tile
 | 
						// for train-stations, we are going to aim for the closest station tile
 | 
				
			||||||
	if (as->user_data[NPF_TYPE] == TRANSPORT_RAIL && fstd->station_index != -1)
 | 
						if (as->user_data[NPF_TYPE] == TRANSPORT_RAIL && fstd->station_index != INVALID_STATION)
 | 
				
			||||||
		to = CalcClosestStationTile(fstd->station_index, from);
 | 
							to = CalcClosestStationTile(fstd->station_index, from);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (as->user_data[NPF_TYPE] == TRANSPORT_ROAD) {
 | 
						if (as->user_data[NPF_TYPE] == TRANSPORT_ROAD) {
 | 
				
			||||||
@@ -420,7 +420,7 @@ static int32 NPFFindStationOrTile(AyStar* as, OpenListNode *current)
 | 
				
			|||||||
	/* If GetNeighbours said we could get here, we assume the station type
 | 
						/* If GetNeighbours said we could get here, we assume the station type
 | 
				
			||||||
	 * is correct */
 | 
						 * is correct */
 | 
				
			||||||
	if (
 | 
						if (
 | 
				
			||||||
		(fstd->station_index == -1 && tile == fstd->dest_coords) || /* We've found the tile, or */
 | 
							(fstd->station_index == INVALID_STATION && tile == fstd->dest_coords) || /* We've found the tile, or */
 | 
				
			||||||
		(IsTileType(tile, MP_STATION) && _m[tile].m2 == fstd->station_index) /* the station */
 | 
							(IsTileType(tile, MP_STATION) && _m[tile].m2 == fstd->station_index) /* the station */
 | 
				
			||||||
	) {
 | 
						) {
 | 
				
			||||||
		return AYSTAR_FOUND_END_NODE;
 | 
							return AYSTAR_FOUND_END_NODE;
 | 
				
			||||||
@@ -800,7 +800,7 @@ NPFFoundTargetData NPFRouteToDepotTrialError(TileIndex tile, Trackdir trackdir,
 | 
				
			|||||||
		assert(0);
 | 
							assert(0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Initialize target */
 | 
						/* Initialize target */
 | 
				
			||||||
	target.station_index = -1; /* We will initialize dest_coords inside the loop below */
 | 
						target.station_index = INVALID_STATION; /* We will initialize dest_coords inside the loop below */
 | 
				
			||||||
	_npf_aystar.user_target = ⌖
 | 
						_npf_aystar.user_target = ⌖
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/* Initialize user_data */
 | 
						/* Initialize user_data */
 | 
				
			||||||
@@ -879,6 +879,6 @@ void NPFFillWithOrderData(NPFFindStationOrTileData* fstd, Vehicle* v)
 | 
				
			|||||||
		fstd->dest_coords = CalcClosestStationTile(v->current_order.station, v->tile);
 | 
							fstd->dest_coords = CalcClosestStationTile(v->current_order.station, v->tile);
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		fstd->dest_coords = v->dest_tile;
 | 
							fstd->dest_coords = v->dest_tile;
 | 
				
			||||||
		fstd->station_index = -1;
 | 
							fstd->station_index = INVALID_STATION;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										3
									
								
								npf.h
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								npf.h
									
									
									
									
									
								
							@@ -5,6 +5,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#include "openttd.h"
 | 
					#include "openttd.h"
 | 
				
			||||||
#include "aystar.h"
 | 
					#include "aystar.h"
 | 
				
			||||||
 | 
					#include "station.h"
 | 
				
			||||||
#include "vehicle.h"
 | 
					#include "vehicle.h"
 | 
				
			||||||
#include "tile.h"
 | 
					#include "tile.h"
 | 
				
			||||||
#include "variables.h"
 | 
					#include "variables.h"
 | 
				
			||||||
@@ -31,7 +32,7 @@ enum {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
typedef struct NPFFindStationOrTileData { /* Meant to be stored in AyStar.targetdata */
 | 
					typedef struct NPFFindStationOrTileData { /* Meant to be stored in AyStar.targetdata */
 | 
				
			||||||
	TileIndex dest_coords; /* An indication of where the station is, for heuristic purposes, or the target tile */
 | 
						TileIndex dest_coords; /* An indication of where the station is, for heuristic purposes, or the target tile */
 | 
				
			||||||
	int station_index; /* station index we're heading for, or -1 when we're heading for a tile */
 | 
						StationID station_index; /* station index we're heading for, or INVALID_STATION when we're heading for a tile */
 | 
				
			||||||
} NPFFindStationOrTileData;
 | 
					} NPFFindStationOrTileData;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
enum { /* Indices into AyStar.userdata[] */
 | 
					enum { /* Indices into AyStar.userdata[] */
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1111,7 +1111,7 @@ static uint RoadFindPathToStop(const Vehicle *v, TileIndex tile)
 | 
				
			|||||||
	assert(trackdir != 0xFF);
 | 
						assert(trackdir != 0xFF);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	fstd.dest_coords = tile;
 | 
						fstd.dest_coords = tile;
 | 
				
			||||||
	fstd.station_index = -1;	// indicates that the destination is a tile, not a station
 | 
						fstd.station_index = INVALID_STAION; // indicates that the destination is a tile, not a station
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return NPFRouteToStationOrTile(v->tile, trackdir, &fstd, TRANSPORT_ROAD, v->owner, INVALID_RAILTYPE).best_path_dist;
 | 
						return NPFRouteToStationOrTile(v->tile, trackdir, &fstd, TRANSPORT_ROAD, v->owner, INVALID_RAILTYPE).best_path_dist;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user