|
@@ -270,26 +270,28 @@ CommandCost CmdBuildRoadVehicle(TileInde
|
|
|
int x = TileX(tile) * TILE_SIZE + TILE_SIZE / 2;
|
|
|
int y = TileY(tile) * TILE_SIZE + TILE_SIZE / 2;
|
|
|
v->x_pos = x;
|
|
|
v->y_pos = y;
|
|
|
v->z_pos = GetSlopePixelZ(x, y);
|
|
|
|
|
|
v->state = RVSB_IN_DEPOT;
|
|
|
v->vehstatus = VS_HIDDEN | VS_STOPPED | VS_DEFPAL;
|
|
|
|
|
|
v->spritenum = rvi->image_index;
|
|
|
v->cargo_type = e->GetDefaultCargoType();
|
|
|
v->cargo_cap = rvi->capacity;
|
|
|
v->refit_cap = 0;
|
|
|
|
|
|
v->last_station_visited = INVALID_STATION;
|
|
|
v->last_loading_station = INVALID_STATION;
|
|
|
v->engine_type = e->index;
|
|
|
v->gcache.first_engine = INVALID_ENGINE; // needs to be set before first callback
|
|
|
|
|
|
v->reliability = e->reliability;
|
|
|
v->reliability_spd_dec = e->reliability_spd_dec;
|
|
|
v->max_age = e->GetLifeLengthInDays();
|
|
|
_new_vehicle_id = v->index;
|
|
|
|
|
|
v->SetServiceInterval(Company::Get(v->owner)->settings.vehicle.servint_roadveh);
|
|
|
|
|
|
v->date_of_last_service = _date;
|
|
|
v->build_year = _cur_year;
|
|
@@ -302,24 +304,25 @@ CommandCost CmdBuildRoadVehicle(TileInde
|
|
|
v->compatible_roadtypes = RoadTypeToRoadTypes(v->roadtype);
|
|
|
v->gcache.cached_veh_length = VEHICLE_LENGTH;
|
|
|
|
|
|
if (e->flags & ENGINE_EXCLUSIVE_PREVIEW) SetBit(v->vehicle_flags, VF_BUILT_AS_PROTOTYPE);
|
|
|
v->SetServiceIntervalIsPercent(Company::Get(_current_company)->settings.vehicle.servint_ispercent);
|
|
|
|
|
|
AddArticulatedParts(v);
|
|
|
v->InvalidateNewGRFCacheOfChain();
|
|
|
|
|
|
/* Call various callbacks after the whole consist has been constructed */
|
|
|
for (RoadVehicle *u = v; u != NULL; u = u->Next()) {
|
|
|
u->cargo_cap = u->GetEngine()->DetermineCapacity(u);
|
|
|
u->refit_cap = 0;
|
|
|
v->InvalidateNewGRFCache();
|
|
|
u->InvalidateNewGRFCache();
|
|
|
}
|
|
|
RoadVehUpdateCache(v);
|
|
|
/* Initialize cached values for realistic acceleration. */
|
|
|
if (_settings_game.vehicle.roadveh_acceleration_model != AM_ORIGINAL) v->CargoChanged();
|
|
|
|
|
|
VehicleUpdatePosition(v);
|
|
|
|
|
|
CheckConsistencyOfArticulatedVehicle(v);
|
|
|
}
|
|
|
|