Adjust types in EnumCheckRoadVehClose
This commit is contained in:
@@ -679,19 +679,20 @@ static void StartRoadVehSound(const RoadVehicle *v)
|
||||
struct RoadVehFindData {
|
||||
int x;
|
||||
int y;
|
||||
const Vehicle *veh;
|
||||
Vehicle *best;
|
||||
const RoadVehicle *veh;
|
||||
RoadVehicle *best;
|
||||
uint best_diff;
|
||||
Direction dir;
|
||||
RoadTypeCollisionMode collision_mode;
|
||||
};
|
||||
|
||||
static Vehicle *EnumCheckRoadVehClose(Vehicle *v, void *data)
|
||||
static Vehicle *EnumCheckRoadVehClose(Vehicle *veh, void *data)
|
||||
{
|
||||
static const int8 dist_x[] = { -4, -8, -4, -1, 4, 8, 4, 1 };
|
||||
static const int8 dist_y[] = { -4, -1, 4, 8, 4, 1, -4, -8 };
|
||||
|
||||
RoadVehFindData *rvf = (RoadVehFindData*)data;
|
||||
RoadVehicle *v = RoadVehicle::From(veh);
|
||||
|
||||
short x_diff = v->x_pos - rvf->x;
|
||||
short y_diff = v->y_pos - rvf->y;
|
||||
@@ -700,7 +701,7 @@ static Vehicle *EnumCheckRoadVehClose(Vehicle *v, void *data)
|
||||
abs(v->z_pos - rvf->veh->z_pos) < 6 &&
|
||||
v->direction == rvf->dir &&
|
||||
rvf->veh->First() != v->First() &&
|
||||
HasBit(_collision_mode_roadtypes[rvf->collision_mode], RoadVehicle::From(v)->roadtype) &&
|
||||
HasBit(_collision_mode_roadtypes[rvf->collision_mode], v->roadtype) &&
|
||||
(dist_x[v->direction] >= 0 || (x_diff > dist_x[v->direction] && x_diff <= 0)) &&
|
||||
(dist_x[v->direction] <= 0 || (x_diff < dist_x[v->direction] && x_diff >= 0)) &&
|
||||
(dist_y[v->direction] >= 0 || (y_diff > dist_y[v->direction] && y_diff <= 0)) &&
|
||||
@@ -750,7 +751,7 @@ static RoadVehicle *RoadVehFindCloseTo(RoadVehicle *v, int x, int y, Direction d
|
||||
|
||||
if (update_blocked_ctr && ++front->blocked_ctr > 1480 && (!_settings_game.vehicle.roadveh_cant_quantum_tunnel)) return nullptr;
|
||||
|
||||
RoadVehicle *rv = RoadVehicle::From(rvf.best);
|
||||
RoadVehicle *rv = rvf.best;
|
||||
if (rv != nullptr && front->IsRoadVehicleOnLevelCrossing() && (rv->First()->cur_speed == 0 || rv->First()->IsRoadVehicleStopped())) return nullptr;
|
||||
|
||||
return rv;
|
||||
|
Reference in New Issue
Block a user