Merge branch 'master' into jgrpp

# Conflicts:
#	cmake/CompileFlags.cmake
#	src/aircraft_cmd.cpp
#	src/blitter/32bpp_anim.cpp
#	src/cargopacket.cpp
#	src/cheat_gui.cpp
#	src/company_cmd.cpp
#	src/company_gui.cpp
#	src/core/pool_func.hpp
#	src/date.cpp
#	src/economy.cpp
#	src/error_gui.cpp
#	src/ground_vehicle.cpp
#	src/ground_vehicle.hpp
#	src/group_gui.cpp
#	src/industry_cmd.cpp
#	src/lang/dutch.txt
#	src/lang/french.txt
#	src/lang/german.txt
#	src/linkgraph/linkgraph_gui.cpp
#	src/linkgraph/mcf.cpp
#	src/network/network_content.cpp
#	src/network/network_server.cpp
#	src/network/network_udp.cpp
#	src/newgrf_engine.cpp
#	src/newgrf_station.cpp
#	src/order_cmd.cpp
#	src/order_gui.cpp
#	src/pathfinder/follow_track.hpp
#	src/pathfinder/yapf/yapf_common.hpp
#	src/saveload/saveload.cpp
#	src/settings_gui.cpp
#	src/station_cmd.cpp
#	src/station_kdtree.h
#	src/string_func.h
#	src/table/settings.ini
#	src/tgp.cpp
#	src/timetable_cmd.cpp
#	src/timetable_gui.cpp
#	src/toolbar_gui.cpp
#	src/town_cmd.cpp
#	src/train_cmd.cpp
#	src/train_gui.cpp
#	src/tree_gui.cpp
#	src/tunnelbridge_cmd.cpp
#	src/vehicle.cpp
#	src/vehicle_gui.cpp
#	src/video/sdl2_v.cpp
#	src/video/sdl_v.cpp
#	src/video/win32_v.cpp
#	src/viewport.cpp
#	src/viewport_sprite_sorter_sse4.cpp
#	src/window.cpp
This commit is contained in:
Jonathan G Rennison
2021-02-01 17:07:34 +00:00
290 changed files with 2135 additions and 1577 deletions

View File

@@ -668,7 +668,7 @@ static int UpdateAircraftSpeed(Aircraft *v, uint speed_limit = SPEED_LIMIT_NONE,
if (v->breakdown_ctr == 1 && v->breakdown_type == BREAKDOWN_AIRCRAFT_SPEED) {
const uint broken_speed = v->breakdown_severity << 3;
if (broken_speed < speed_limit) hard_limit = false;
speed_limit = min(speed_limit, broken_speed);
speed_limit = std::min(speed_limit, broken_speed);
}
if (v->vcache.cached_max_speed < speed_limit) {
@@ -685,10 +685,10 @@ static int UpdateAircraftSpeed(Aircraft *v, uint speed_limit = SPEED_LIMIT_NONE,
* speeds to that aircraft do not get to taxi speed straight after
* touchdown. */
if (!hard_limit && v->cur_speed > speed_limit) {
speed_limit = v->cur_speed - max(1, ((v->cur_speed * v->cur_speed) / 16384) / _settings_game.vehicle.plane_speed);
speed_limit = v->cur_speed - std::max(1, ((v->cur_speed * v->cur_speed) / 16384) / _settings_game.vehicle.plane_speed);
}
spd = min(v->cur_speed + (spd >> 8) + (v->subspeed < t), speed_limit);
spd = std::min(v->cur_speed + (spd >> 8) + (v->subspeed < t), speed_limit);
/* updates statusbar only if speed have changed to save CPU time */
if (spd != v->cur_speed) {
@@ -751,7 +751,7 @@ void GetAircraftFlightLevelBounds(const Vehicle *v, int *min_level, int *max_lev
}
/* Make faster planes fly higher so that they can overtake slower ones */
base_altitude += min(20 * (v->vcache.cached_max_speed / 200) - 90, 0);
base_altitude += std::min(20 * (v->vcache.cached_max_speed / 200) - 90, 0);
if (min_level != nullptr) *min_level = base_altitude + AIRCRAFT_MIN_FLYING_ALTITUDE;
if (max_level != nullptr) *max_level = base_altitude + AIRCRAFT_MAX_FLYING_ALTITUDE;
@@ -870,8 +870,6 @@ static void MaybeCrashAirplane(Aircraft *v);
*/
static bool AircraftController(Aircraft *v)
{
int count;
/* nullptr if station is invalid */
const Station *st = Station::GetIfValid(v->targetairport);
/* INVALID_TILE if there is no station */
@@ -931,7 +929,7 @@ static bool AircraftController(Aircraft *v)
}
} else {
u->cur_speed = 32;
count = UpdateAircraftSpeed(v);
int count = UpdateAircraftSpeed(v);
if (count > 0) {
v->tile = 0;
@@ -943,7 +941,7 @@ static bool AircraftController(Aircraft *v)
v->cur_speed = 0;
return true;
}
SetAircraftPosition(v, v->x_pos, v->y_pos, min(v->z_pos + count, z_dest));
SetAircraftPosition(v, v->x_pos, v->y_pos, std::min(v->z_pos + count, z_dest));
}
}
return false;
@@ -989,12 +987,12 @@ static bool AircraftController(Aircraft *v)
}
u->cur_speed += 4;
} else {
count = UpdateAircraftSpeed(v);
int count = UpdateAircraftSpeed(v);
if (count > 0) {
if (v->z_pos > z) {
SetAircraftPosition(v, v->x_pos, v->y_pos, max(v->z_pos - count, z));
SetAircraftPosition(v, v->x_pos, v->y_pos, std::max(v->z_pos - count, z));
} else {
SetAircraftPosition(v, v->x_pos, v->y_pos, min(v->z_pos + count, z));
SetAircraftPosition(v, v->x_pos, v->y_pos, std::min(v->z_pos + count, z));
}
} else {
v->UpdatePosition();
@@ -1042,16 +1040,23 @@ static bool AircraftController(Aircraft *v)
if (amd.flag & AMED_LAND) { speed_limit = SPEED_LIMIT_APPROACH; hard_limit = false; }
if (amd.flag & AMED_BRAKE) { speed_limit = SPEED_LIMIT_TAXI; hard_limit = false; }
count = UpdateAircraftSpeed(v, speed_limit, hard_limit);
int count = UpdateAircraftSpeed(v, speed_limit, hard_limit);
if (count == 0) return false;
/* If the plane will be a few subpixels away from the destination after
* this movement loop, start nudging him towards the exact position for
* the whole loop. Otherwise, heavily depending on the speed of the plane,
* it is possible we totally overshoot the target, causing the plane to
* make a loop, and trying again, and again, and again .. */
bool nudge_towards_target = static_cast<uint>(count) + 3 > dist;
if (v->turn_counter != 0) v->turn_counter--;
do {
GetNewVehiclePosResult gp;
if (dist < 4 || (amd.flag & AMED_LAND)) {
if (nudge_towards_target || (amd.flag & AMED_LAND)) {
/* move vehicle one pixel towards target */
gp.x = (v->x_pos != (x + amd.x)) ?
v->x_pos + ((x + amd.x > v->x_pos) ? 1 : -1) :
@@ -1144,7 +1149,7 @@ static bool AircraftController(Aircraft *v)
/* We're not flying below our destination, right? */
assert(airport_z <= z);
int t = max(1U, dist - 4);
int t = std::max(1U, dist - 4);
int delta = z - airport_z;
/* Only start lowering when we're sufficiently close for a 1:1 glide */
@@ -1428,7 +1433,7 @@ static void MaybeCrashAirplane(Aircraft *v)
}
if (_settings_game.vehicle.improved_breakdowns && v->breakdown_ctr == 1 && v->breakdown_type == BREAKDOWN_AIRCRAFT_EM_LANDING) {
/* Airplanes that are attempting an emergency landing have a 2% chance to crash */
prob = max<uint32>(prob, 0x10000 / 50);
prob = std::max<uint32>(prob, 0x10000 / 50);
}
if (GB(Random(), 0, 22) > prob) return;