diff -r 68a692eacf22 -r 67db0d431d5e src/roadveh_cmd.cpp --- a/src/roadveh_cmd.cpp Mon May 26 20:45:25 2008 +0000 +++ b/src/roadveh_cmd.cpp Tue May 27 00:50:55 2008 +0000 @@ -205,7 +205,7 @@ /* find the first free roadveh id */ unit_num = HasBit(p2, 0) ? 0 : GetFreeUnitNumber(VEH_ROAD); - if (unit_num > _patches.max_roadveh) + if (unit_num > _settings.vehicle.max_roadveh) return_cmd_error(STR_00E1_TOO_MANY_VEHICLES_IN_GAME); if (flags & DC_EXEC) { @@ -257,7 +257,7 @@ v->name = NULL; - v->service_interval = _patches.servint_roadveh; + v->service_interval = _settings.vehicle.servint_roadveh; v->date_of_last_service = _date; v->build_year = _cur_year; @@ -280,7 +280,7 @@ VehiclePositionChanged(v); InvalidateWindowData(WC_VEHICLE_DEPOT, v->tile); - RebuildVehicleLists(); + InvalidateWindowClassesData(WC_ROADVEH_LIST, 0); InvalidateWindow(WC_COMPANY, v->owner); if (IsLocalPlayer()) InvalidateAutoreplaceWindow(v->engine_type, v->group_id); // updates the replace Road window @@ -381,7 +381,7 @@ if (flags & DC_EXEC) { // Invalidate depot InvalidateWindow(WC_VEHICLE_DEPOT, v->tile); - RebuildVehicleLists(); + InvalidateWindowClassesData(WC_ROADVEH_LIST, 0); InvalidateWindow(WC_COMPANY, v->owner); DeleteWindowById(WC_VEHICLE_VIEW, v->index); DeleteDepotHighlightOfVehicle(v); @@ -419,7 +419,7 @@ static const Depot* FindClosestRoadDepot(const Vehicle* v) { - switch (_patches.pathfinder_for_roadvehs) { + switch (_settings.pf.pathfinder_for_roadvehs) { case VPF_YAPF: /* YAPF */ return YapfFindNearestRoadDepot(v); @@ -574,7 +574,7 @@ DeleteWindowById(WC_VEHICLE_VIEW, v->index); - RebuildVehicleLists(); + InvalidateWindowClassesData(WC_ROADVEH_LIST, 0); InvalidateWindow(WC_COMPANY, v->owner); if (IsTileType(v->tile, MP_STATION)) ClearCrashedStation(v); @@ -702,7 +702,7 @@ InvalidateWindow(WC_VEHICLE_DETAILS, v->index); if (!PlayVehicleSound(v, VSE_BREAKDOWN)) { - SndPlayVehicleFx((_opt.landscape != LT_TOYLAND) ? + SndPlayVehicleFx((_settings.game_creation.landscape != LT_TOYLAND) ? SND_0F_VEHICLE_BREAKDOWN : SND_35_COMEDY_BREAKDOWN, v); } @@ -863,7 +863,7 @@ /* updates statusbar only if speed have changed to save CPU time */ if (spd != v->cur_speed) { v->cur_speed = spd; - if (_patches.vehicle_speed) { + if (_settings.gui.vehicle_speed) { InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, VVW_WIDGET_START_STOP_VEH); } } @@ -1085,7 +1085,7 @@ trackdirs = TRACKDIR_BIT_NONE; } else { /* Proper station type, check if there is free loading bay */ - if (!_patches.roadveh_queue && IsStandardRoadStopTile(tile) && + if (!_settings.pf.roadveh_queue && IsStandardRoadStopTile(tile) && !GetRoadStopByTile(tile, rstype)->HasFreeBay()) { /* Station is full and RV queuing is off */ trackdirs = TRACKDIR_BIT_NONE; @@ -1124,7 +1124,7 @@ return_track(FindFirstBit2x64(trackdirs)); } - switch (_patches.pathfinder_for_roadvehs) { + switch (_settings.pf.pathfinder_for_roadvehs) { case VPF_YAPF: { /* YAPF */ Trackdir trackdir = YapfChooseRoadTrack(v, tile, enterdir); if (trackdir != INVALID_TRACKDIR) return_track(trackdir); @@ -1211,7 +1211,7 @@ static uint RoadFindPathToStop(const Vehicle *v, TileIndex tile) { - if (_patches.pathfinder_for_roadvehs == VPF_YAPF) { + if (_settings.pf.pathfinder_for_roadvehs == VPF_YAPF) { /* use YAPF */ return YapfRoadVehDistanceToTile(v, tile); } @@ -1273,7 +1273,7 @@ v->direction = DiagDirToDir(dir); Trackdir tdir = _roadveh_depot_exit_trackdir[dir]; - const RoadDriveEntry *rdp = _road_drive_data[v->u.road.roadtype][(_opt.road_side << RVS_DRIVE_SIDE) + tdir]; + const RoadDriveEntry *rdp = _road_drive_data[v->u.road.roadtype][(_settings.vehicle.road_side << RVS_DRIVE_SIDE) + tdir]; int x = TileX(v->tile) * TILE_SIZE + (rdp[RVC_DEPOT_START_FRAME].x & 0xF); int y = TileY(v->tile) * TILE_SIZE + (rdp[RVC_DEPOT_START_FRAME].y & 0xF); @@ -1451,7 +1451,7 @@ * In this case v->u.road.state is masked to give the road stop entry direction. */ rd = _road_drive_data[v->u.road.roadtype][( (HasBit(v->u.road.state, RVS_IN_DT_ROAD_STOP) ? v->u.road.state & RVSB_ROAD_STOP_TRACKDIR_MASK : v->u.road.state) + - (_opt.road_side << RVS_DRIVE_SIDE)) ^ v->u.road.overtaking][v->u.road.frame + 1]; + (_settings.vehicle.road_side << RVS_DRIVE_SIDE)) ^ v->u.road.overtaking][v->u.road.frame + 1]; if (rd.x & RDE_NEXT_TILE) { TileIndex tile = v->tile + TileOffsByDiagDir((DiagDirection)(rd.x & 3)); @@ -1529,7 +1529,7 @@ } /* Get position data for first frame on the new tile */ - rdp = _road_drive_data[v->u.road.roadtype][(dir + (_opt.road_side << RVS_DRIVE_SIDE)) ^ v->u.road.overtaking]; + rdp = _road_drive_data[v->u.road.roadtype][(dir + (_settings.vehicle.road_side << RVS_DRIVE_SIDE)) ^ v->u.road.overtaking]; x = TileX(tile) * TILE_SIZE + rdp[start_frame].x; y = TileY(tile) * TILE_SIZE + rdp[start_frame].y; @@ -1632,7 +1632,7 @@ return false; } - rdp = _road_drive_data[v->u.road.roadtype][(_opt.road_side << RVS_DRIVE_SIDE) + dir]; + rdp = _road_drive_data[v->u.road.roadtype][(_settings.vehicle.road_side << RVS_DRIVE_SIDE) + dir]; x = TileX(v->tile) * TILE_SIZE + rdp[turn_around_start_frame].x; y = TileY(v->tile) * TILE_SIZE + rdp[turn_around_start_frame].y; @@ -1711,7 +1711,7 @@ * (the station test and stop type test ensure that other vehicles, using the road stop as * a through route, do not stop) */ if (IsRoadVehFront(v) && ((IsInsideMM(v->u.road.state, RVSB_IN_ROAD_STOP, RVSB_IN_ROAD_STOP_END) && - _road_veh_data_1[v->u.road.state - RVSB_IN_ROAD_STOP + (_opt.road_side << RVS_DRIVE_SIDE)] == v->u.road.frame) || + _road_veh_data_1[v->u.road.state - RVSB_IN_ROAD_STOP + (_settings.vehicle.road_side << RVS_DRIVE_SIDE)] == v->u.road.frame) || (IsInsideMM(v->u.road.state, RVSB_IN_DT_ROAD_STOP, RVSB_IN_DT_ROAD_STOP_END) && v->current_order.ShouldStopAtStation(v, GetStationIndex(v->tile)) && GetRoadStopType(v->tile) == (IsCargoInClass(v->cargo_type, CC_PASSENGERS) ? ROADSTOP_BUS : ROADSTOP_TRUCK) && @@ -1887,7 +1887,7 @@ static void CheckIfRoadVehNeedsService(Vehicle *v) { /* If we already got a slot at a stop, use that FIRST, and go to a depot later */ - if (v->u.road.slot != NULL || _patches.servint_roadveh == 0 || !v->NeedsAutomaticServicing()) return; + if (v->u.road.slot != NULL || _settings.vehicle.servint_roadveh == 0 || !v->NeedsAutomaticServicing()) return; if (v->IsInDepot()) { VehicleServiceInDepot(v); return; @@ -2116,7 +2116,7 @@ v->cargo_subtype = new_subtype; InvalidateWindow(WC_VEHICLE_DETAILS, v->index); InvalidateWindow(WC_VEHICLE_DEPOT, v->tile); - RebuildVehicleLists(); + InvalidateWindowClassesData(WC_ROADVEH_LIST, 0); } if (only_this) break;