working with parameters to turn on and off now, still haven't fixed the articulated vehicles exception though

pull/603/head
reldred 7 months ago
parent 8a146e2136
commit dec7a3fc11

@ -1525,6 +1525,9 @@ STR_CONFIG_SETTING_ROAD_SIDE_HELPTEXT :Choose the driv
STR_CONFIG_SETTING_ROAD_SIDE_LEFT :Drive on left
STR_CONFIG_SETTING_ROAD_SIDE_RIGHT :Drive on right
STR_CONFIG_SETTING_DIAGONAL_ROADS :Diagonal Roads: {STRING2}
STR_CONFIG_SETTING_DIAGONAL_ROADS_HELPTEXT :Choose whether to turn smooth corners into diagonal roads
STR_CONFIG_SETTING_HEIGHTMAP_ROTATION :Heightmap rotation: {STRING2}
###length 2
STR_CONFIG_SETTING_HEIGHTMAP_ROTATION_COUNTER_CLOCKWISE :Counter clockwise

@ -1315,7 +1315,7 @@ static bool RoadVehLeaveDepot(RoadVehicle *v, bool first)
v->direction = DiagDirToDir(dir);
Trackdir tdir = DiagDirToDiagTrackdir(dir);
const RoadDriveEntry *rdp = _road_drive_data[GetRoadTramType(v->roadtype)][(_settings_game.vehicle.road_side << RVS_DRIVE_SIDE) + tdir];
const RoadDriveEntry *rdp = _road_drive_data[GetRoadTramType(v->roadtype) + (_settings_game.vehicle.diagonal_roads * 2)][(_settings_game.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);
@ -1713,7 +1713,7 @@ bool IndividualRoadVehicleController(RoadVehicle *v, const RoadVehicle *prev)
/* Get move position data for next frame.
* For a drive-through road stop use 'straight road' move data.
* In this case v->state is masked to give the road stop entry direction. */
RoadDriveEntry rd = _road_drive_data[GetRoadTramType(v->roadtype)][(
RoadDriveEntry rd = _road_drive_data[GetRoadTramType(v->roadtype) + (_settings_game.vehicle.diagonal_roads * 2)][(
(HasBit(v->state, RVS_IN_DT_ROAD_STOP) ? v->state & RVSB_ROAD_STOP_TRACKDIR_MASK : v->state) +
(_settings_game.vehicle.road_side << RVS_DRIVE_SIDE)) ^ v->overtaking][v->frame + 1];
@ -1812,7 +1812,7 @@ again:
}
/* Get position data for first frame on the new tile */
const RoadDriveEntry *rdp = _road_drive_data[GetRoadTramType(v->roadtype)][(dir + (_settings_game.vehicle.road_side << RVS_DRIVE_SIDE)) ^ v->overtaking];
const RoadDriveEntry *rdp = _road_drive_data[GetRoadTramType(v->roadtype) + (_settings_game.vehicle.diagonal_roads * 2)][(dir + (_settings_game.vehicle.road_side << RVS_DRIVE_SIDE)) ^ v->overtaking];
int x = TileX(tile) * TILE_SIZE + rdp[start_frame].x;
int y = TileY(tile) * TILE_SIZE + rdp[start_frame].y;
@ -1928,7 +1928,7 @@ again:
return false;
}
const RoadDriveEntry *rdp = _road_drive_data[GetRoadTramType(v->roadtype)][(_settings_game.vehicle.road_side << RVS_DRIVE_SIDE) + dir];
const RoadDriveEntry *rdp = _road_drive_data[GetRoadTramType(v->roadtype) + (_settings_game.vehicle.diagonal_roads * 2)][(_settings_game.vehicle.road_side << RVS_DRIVE_SIDE) + dir];
int x = TileX(v->tile) * TILE_SIZE + rdp[turn_around_start_frame].x;
int y = TileY(v->tile) * TILE_SIZE + rdp[turn_around_start_frame].y;

@ -2355,6 +2355,7 @@ static SettingsContainer &GetSettingsTree()
genworld->Add(new SettingEntry("game_creation.height_affects_rocks"));
genworld->Add(new SettingEntry("game_creation.tree_placer"));
genworld->Add(new SettingEntry("vehicle.road_side"));
genworld->Add(new SettingEntry("vehicle.diagonal_roads"));
genworld->Add(new SettingEntry("economy.larger_towns"));
genworld->Add(new SettingEntry("economy.initial_city_size"));
genworld->Add(new SettingEntry("economy.town_layout"));

@ -665,6 +665,7 @@ struct VehicleSettings {
Year no_introduce_vehicles_after; ///< do not introduce vehicles after this year
byte extend_vehicle_life; ///< extend vehicle life by this many years
byte road_side; ///< the side of the road vehicles drive on
bool diagonal_roads; ///< whether road corners are turned into diagonals
uint8 plane_crashes; ///< number of plane crashes, 0 = none, 1 = reduced, 2 = normal
bool adjacent_crossings; ///< enable closing of adjacent level crossings
bool safer_crossings; ///< enable safer level crossings

@ -625,6 +625,14 @@ pre_cb = CheckRoadSide
post_cb = RoadSideChanged
cat = SC_BASIC
[SDT_BOOL]
var = vehicle.diagonal_roads
flags = SF_NO_NETWORK
def = false
str = STR_CONFIG_SETTING_DIAGONAL_ROADS
strhelp = STR_CONFIG_SETTING_DIAGONAL_ROADS_HELPTEXT
cat = SC_EXPERT
; Construction
[SDT_VAR]

Loading…
Cancel
Save