diff options
author | Charles Pigott <charlespigott@googlemail.com> | 2021-01-08 10:16:18 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-08 11:16:18 +0100 |
commit | 9b800a96ed32720ff60b74e498a0e0a6351004f9 (patch) | |
tree | 3f287d339e15c4902ee415556475fd9b2918d33c /src | |
parent | c1fddb9a6ae5c3af6865461a7295788a341011a2 (diff) | |
download | openttd-9b800a96ed32720ff60b74e498a0e0a6351004f9.tar.xz |
Codechange: Remove min/max functions in favour of STL variants (#8502)
Diffstat (limited to 'src')
181 files changed, 902 insertions, 956 deletions
diff --git a/src/3rdparty/squirrel/squirrel/sqbaselib.cpp b/src/3rdparty/squirrel/squirrel/sqbaselib.cpp index e5de01a63..232c27d2b 100644 --- a/src/3rdparty/squirrel/squirrel/sqbaselib.cpp +++ b/src/3rdparty/squirrel/squirrel/sqbaselib.cpp @@ -1,14 +1,9 @@ /* * see copyright notice in squirrel.h */ -/* - * Needs to be first due to a squirrel header defining type() and type() - * being used in some versions of the headers included by algorithm. - */ #include "../../../stdafx.h" -#include <algorithm> #include "sqpcheader.h" #include "sqvm.h" #include "sqstring.h" diff --git a/src/ai/ai_config.cpp b/src/ai/ai_config.cpp index 2afa69d39..98618feb2 100644 --- a/src/ai/ai_config.cpp +++ b/src/ai/ai_config.cpp @@ -39,7 +39,7 @@ AIConfig::AIConfig(const AIConfig *config) : ScriptConfig(config) * This is necessary because the ScriptConfig constructor will instead call * ScriptConfig::AddRandomDeviation(). */ int start_date = config->GetSetting("start_date"); - this->SetSetting("start_date", start_date != 0 ? max(1, this->GetSetting("start_date")) : 0); + this->SetSetting("start_date", start_date != 0 ? std::max(1, this->GetSetting("start_date")) : 0); } /* static */ AIConfig *AIConfig::GetConfig(CompanyID company, ScriptSettingSource source) @@ -134,5 +134,5 @@ void AIConfig::AddRandomDeviation() /* start_date = 0 is a special case, where random deviation does not occur. * If start_date was not already 0, then a minimum value of 1 must apply. */ - this->SetSetting("start_date", start_date != 0 ? max(1, this->GetSetting("start_date")) : 0); + this->SetSetting("start_date", start_date != 0 ? std::max(1, this->GetSetting("start_date")) : 0); } diff --git a/src/ai/ai_gui.cpp b/src/ai/ai_gui.cpp index 9e16ec3ec..30edc9940 100644 --- a/src/ai/ai_gui.cpp +++ b/src/ai/ai_gui.cpp @@ -236,7 +236,7 @@ struct AIListWindow : public Window { this->vscroll->SetCount((int)this->info_list->size() + 1); /* selected goes from -1 .. length of ai list - 1. */ - this->selected = min(this->selected, this->vscroll->GetCount() - 2); + this->selected = std::min(this->selected, this->vscroll->GetCount() - 2); } }; @@ -349,7 +349,7 @@ struct AISettingsWindow : public Window { void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) override { if (widget == WID_AIS_BACKGROUND) { - this->line_height = max(SETTING_BUTTON_HEIGHT, FONT_HEIGHT_NORMAL) + WD_MATRIX_TOP + WD_MATRIX_BOTTOM; + this->line_height = std::max(SETTING_BUTTON_HEIGHT, FONT_HEIGHT_NORMAL) + WD_MATRIX_TOP + WD_MATRIX_BOTTOM; resize->width = 1; resize->height = this->line_height; @@ -879,9 +879,9 @@ struct AIConfigWindow : public Window { case WID_AIC_INCREASE: { int new_value; if (widget == WID_AIC_DECREASE) { - new_value = max(0, GetGameSettings().difficulty.max_no_competitors - 1); + new_value = std::max(0, GetGameSettings().difficulty.max_no_competitors - 1); } else { - new_value = min(MAX_COMPANIES - 1, GetGameSettings().difficulty.max_no_competitors + 1); + new_value = std::min(MAX_COMPANIES - 1, GetGameSettings().difficulty.max_no_competitors + 1); } IConsoleSetSetting("difficulty.max_no_competitors", new_value); break; @@ -1176,7 +1176,7 @@ struct AIDebugWindow : public Window { this->autoscroll = this->vscroll->GetPosition() >= log->used - this->vscroll->GetCapacity(); } if (this->autoscroll) { - int scroll_pos = max(0, log->used - this->vscroll->GetCapacity()); + int scroll_pos = std::max(0, log->used - this->vscroll->GetCapacity()); if (scroll_pos != this->vscroll->GetPosition()) { this->vscroll->SetPosition(scroll_pos); diff --git a/src/aircraft_cmd.cpp b/src/aircraft_cmd.cpp index 63252f5a3..475bd7b12 100644 --- a/src/aircraft_cmd.cpp +++ b/src/aircraft_cmd.cpp @@ -652,7 +652,7 @@ static int UpdateAircraftSpeed(Aircraft *v, uint speed_limit = SPEED_LIMIT_NONE, /* adjust speed for broken vehicles */ if (v->vehstatus & VS_AIRCRAFT_BROKEN) { if (SPEED_LIMIT_BROKEN < speed_limit) hard_limit = false; - speed_limit = min(speed_limit, SPEED_LIMIT_BROKEN); + speed_limit = std::min<uint>(speed_limit, SPEED_LIMIT_BROKEN); } if (v->vcache.cached_max_speed < speed_limit) { @@ -669,10 +669,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) { @@ -737,7 +737,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; @@ -929,7 +929,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; @@ -975,9 +975,9 @@ static bool AircraftController(Aircraft *v) 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)); } } } @@ -1125,7 +1125,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 */ diff --git a/src/airport_gui.cpp b/src/airport_gui.cpp index 464be03db..8760e1f2a 100644 --- a/src/airport_gui.cpp +++ b/src/airport_gui.cpp @@ -314,7 +314,7 @@ public: const AirportSpec *as = AirportSpec::Get(i); if (!as->enabled) continue; - size->width = max(size->width, GetStringBoundingBox(as->name).width); + size->width = std::max(size->width, GetStringBoundingBox(as->name).width); } this->line_height = FONT_HEIGHT_NORMAL + WD_MATRIX_TOP + WD_MATRIX_BOTTOM; diff --git a/src/autoreplace_cmd.cpp b/src/autoreplace_cmd.cpp index e3639742f..313de99cf 100644 --- a/src/autoreplace_cmd.cpp +++ b/src/autoreplace_cmd.cpp @@ -115,7 +115,7 @@ void CheckCargoCapacity(Vehicle *v) assert(dest->cargo.TotalCount() == dest->cargo.ActionCount(VehicleCargoList::MTA_KEEP)); if (dest->cargo.TotalCount() >= dest->cargo_cap || dest->cargo_type != src->cargo_type) continue; - uint amount = min(to_spread, dest->cargo_cap - dest->cargo.TotalCount()); + uint amount = std::min(to_spread, dest->cargo_cap - dest->cargo.TotalCount()); src->cargo.Shift(amount, &dest->cargo); to_spread -= amount; } @@ -157,7 +157,7 @@ static void TransferCargo(Vehicle *old_veh, Vehicle *new_head, bool part_of_chai } if (dest->cargo_type != src->cargo_type) continue; - uint amount = min(src->cargo.TotalCount(), dest->cargo_cap - dest->cargo.TotalCount()); + uint amount = std::min(src->cargo.TotalCount(), dest->cargo_cap - dest->cargo.TotalCount()); if (amount <= 0) continue; src->cargo.Shift(amount, &dest->cargo); diff --git a/src/autoreplace_gui.cpp b/src/autoreplace_gui.cpp index 19df0f1d8..e952dcf19 100644 --- a/src/autoreplace_gui.cpp +++ b/src/autoreplace_gui.cpp @@ -416,8 +416,8 @@ public: case WID_RV_LEFT_MATRIX: case WID_RV_RIGHT_MATRIX: { int side = (widget == WID_RV_LEFT_MATRIX) ? 0 : 1; - EngineID start = this->vscroll[side]->GetPosition(); // what is the offset for the start (scrolling) - EngineID end = min(this->vscroll[side]->GetCapacity() + start, (uint)this->engines[side].size()); + EngineID start = static_cast<EngineID>(this->vscroll[side]->GetPosition()); // what is the offset for the start (scrolling) + EngineID end = static_cast<EngineID>(std::min<size_t>(this->vscroll[side]->GetCapacity() + start, this->engines[side].size())); /* Do the actual drawing */ DrawEngineList((VehicleType)this->window_number, r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, r.top + WD_FRAMERECT_TOP, @@ -475,7 +475,7 @@ public: NWidgetBase *nwi = this->GetWidget<NWidgetBase>(side == 0 ? WID_RV_LEFT_DETAILS : WID_RV_RIGHT_DETAILS); int text_end = DrawVehiclePurchaseInfo(nwi->pos_x + WD_FRAMETEXT_LEFT, nwi->pos_x + nwi->current_x - WD_FRAMETEXT_RIGHT, nwi->pos_y + WD_FRAMERECT_TOP, this->sel_engine[side], ted); - needed_height = max(needed_height, text_end - (int)nwi->pos_y + WD_FRAMERECT_BOTTOM); + needed_height = std::max(needed_height, text_end - (int)nwi->pos_y + WD_FRAMERECT_BOTTOM); } } if (needed_height != this->details_height) { // Details window are not high enough, enlarge them. diff --git a/src/blitter/32bpp_anim.cpp b/src/blitter/32bpp_anim.cpp index a5228bc32..c24f14bd9 100644 --- a/src/blitter/32bpp_anim.cpp +++ b/src/blitter/32bpp_anim.cpp @@ -74,7 +74,7 @@ inline void Blitter_32bppAnim::Draw(const Blitter::BlitterParams *bp, ZoomLevel dst = dst_end - bp->skip_left; dst_end = dst + bp->width; - n = min<uint>(n - d, (uint)bp->width); + n = std::min(n - d, (uint)bp->width); goto draw; } dst += n; @@ -89,7 +89,7 @@ inline void Blitter_32bppAnim::Draw(const Blitter::BlitterParams *bp, ZoomLevel dst_end += bp->width; while (dst < dst_end) { - n = min<uint>(*src_n++, (uint)(dst_end - dst)); + n = std::min<uint>(*src_n++, dst_end - dst); if (src_px->a == 0) { anim += n; diff --git a/src/blitter/32bpp_anim_sse2.cpp b/src/blitter/32bpp_anim_sse2.cpp index 5596d91af..ee243cc21 100644 --- a/src/blitter/32bpp_anim_sse2.cpp +++ b/src/blitter/32bpp_anim_sse2.cpp @@ -58,7 +58,7 @@ void Blitter_32bppSSE2_Anim::PaletteAnimate(const Palette &palette) if (x < 8 || colour_cmp_result != 0xFFFF || _mm_movemask_epi8(_mm_cmpeq_epi16(_mm_srli_epi16(data, 8), brightness_cmp)) != 0xFFFF) { /* slow path: < 8 pixels left or unexpected brightnesses */ - for (int z = min<int>(x, 8); z != 0 ; z--) { + for (int z = std::min<int>(x, 8); z != 0 ; z--) { int value = _mm_extract_epi16(data, 0); uint8 colour = GB(value, 0, 8); if (colour >= PALETTE_ANIM_START) { diff --git a/src/blitter/32bpp_base.cpp b/src/blitter/32bpp_base.cpp index 6fe11c235..0678fce38 100644 --- a/src/blitter/32bpp_base.cpp +++ b/src/blitter/32bpp_base.cpp @@ -174,9 +174,9 @@ Colour Blitter_32bppBase::ReallyAdjustBrightness(Colour colour, uint8 brightness /* Reduce overbright strength */ ob /= 2; return Colour( - r >= 255 ? 255 : min(r + ob * (255 - r) / 256, 255), - g >= 255 ? 255 : min(g + ob * (255 - g) / 256, 255), - b >= 255 ? 255 : min(b + ob * (255 - b) / 256, 255), + r >= 255 ? 255 : std::min(r + ob * (255 - r) / 256, 255), + g >= 255 ? 255 : std::min(g + ob * (255 - g) / 256, 255), + b >= 255 ? 255 : std::min(b + ob * (255 - b) / 256, 255), colour.a); } diff --git a/src/blitter/32bpp_optimized.cpp b/src/blitter/32bpp_optimized.cpp index 59b857254..ad15b8f81 100644 --- a/src/blitter/32bpp_optimized.cpp +++ b/src/blitter/32bpp_optimized.cpp @@ -83,7 +83,7 @@ inline void Blitter_32bppOptimized::Draw(const Blitter::BlitterParams *bp, ZoomL dst = dst_end - bp->skip_left; dst_end = dst + bp->width; - n = min<uint>(n - d, (uint)bp->width); + n = std::min(n - d, (uint)bp->width); goto draw; } dst += n; @@ -98,7 +98,7 @@ inline void Blitter_32bppOptimized::Draw(const Blitter::BlitterParams *bp, ZoomL dst_end += bp->width; while (dst < dst_end) { - n = min<uint>(*src_n++, (uint)(dst_end - dst)); + n = std::min<uint>(*src_n++, dst_end - dst); if (src_px->a == 0) { dst += n; @@ -324,7 +324,7 @@ Sprite *Blitter_32bppOptimized::Encode(const SpriteLoader::Sprite *sprite, Alloc *dst_n = src->m; if (src->m != 0) { /* Get brightest value */ - uint8 rgb_max = max(src->r, max(src->g, src->b)); + uint8 rgb_max = std::max({src->r, src->g, src->b}); /* Black pixel (8bpp or old 32bpp image), so use default value */ if (rgb_max == 0) rgb_max = DEFAULT_BRIGHTNESS; diff --git a/src/blitter/32bpp_simple.cpp b/src/blitter/32bpp_simple.cpp index 7e7ef1453..a8096d801 100644 --- a/src/blitter/32bpp_simple.cpp +++ b/src/blitter/32bpp_simple.cpp @@ -132,7 +132,7 @@ Sprite *Blitter_32bppSimple::Encode(const SpriteLoader::Sprite *sprite, Allocato dst[i].v = 0; } else { /* Get brightest value */ - uint8 rgb_max = max(src->r, max(src->g, src->b)); + uint8 rgb_max = std::max({src->r, src->g, src->b}); /* Black pixel (8bpp or old 32bpp image), so use default value */ if (rgb_max == 0) rgb_max = DEFAULT_BRIGHTNESS; diff --git a/src/blitter/32bpp_sse2.cpp b/src/blitter/32bpp_sse2.cpp index 2e5d32d65..f36716176 100644 --- a/src/blitter/32bpp_sse2.cpp +++ b/src/blitter/32bpp_sse2.cpp @@ -80,7 +80,7 @@ Sprite *Blitter_32bppSSE_Base::Encode(const SpriteLoader::Sprite *sprite, Alloca if (src->m >= PALETTE_ANIM_START) has_anim = true; /* Get brightest value (or default brightness if it's a black pixel). */ - const uint8 rgb_max = max(src->r, max(src->g, src->b)); + const uint8 rgb_max = std::max({src->r, src->g, src->b}); dst_mv->v = (rgb_max == 0) ? Blitter_32bppBase::DEFAULT_BRIGHTNESS : rgb_max; /* Pre-convert the mapping channel to a RGB value. */ diff --git a/src/blitter/8bpp_optimized.cpp b/src/blitter/8bpp_optimized.cpp index 5c34bf067..2e7c14279 100644 --- a/src/blitter/8bpp_optimized.cpp +++ b/src/blitter/8bpp_optimized.cpp @@ -80,7 +80,7 @@ void Blitter_8bppOptimized::Draw(Blitter::BlitterParams *bp, BlitterMode mode, Z dst += trans; width -= trans; if (width <= 0 || pixels == 0) continue; - pixels = min<uint>(pixels, (uint)width); + pixels = std::min<uint>(pixels, width); width -= pixels; switch (mode) { diff --git a/src/blitter/common.hpp b/src/blitter/common.hpp index b5040b127..aaf63cd6a 100644 --- a/src/blitter/common.hpp +++ b/src/blitter/common.hpp @@ -45,7 +45,7 @@ void Blitter::DrawLineGeneric(int x, int y, int x2, int y2, int screen_width, in return; } - int frac_diff = width * max(dx, dy); + int frac_diff = width * std::max(dx, dy); if (width > 1) { /* compute frac_diff = width * sqrt(dx*dx + dy*dy) * Start interval: diff --git a/src/bridge_gui.cpp b/src/bridge_gui.cpp index a69ed7448..c240fa878 100644 --- a/src/bridge_gui.cpp +++ b/src/bridge_gui.cpp @@ -197,7 +197,7 @@ public: } sprite_dim.height++; // Sprite is rendered one pixel down in the matrix field. text_dim.height++; // Allowing the bottom row pixels to be rendered on the edge of the matrix field. - resize->height = max(sprite_dim.height, text_dim.height) + 2; // Max of both sizes + account for matrix edges. + resize->height = std::max(sprite_dim.height, text_dim.height) + 2; // Max of both sizes + account for matrix edges. this->bridgetext_offset = WD_MATRIX_LEFT + sprite_dim.width + 1; // Left edge of text, 1 pixel distance from the sprite. size->width = this->bridgetext_offset + text_dim.width + WD_MATRIX_RIGHT; diff --git a/src/build_vehicle_gui.cpp b/src/build_vehicle_gui.cpp index a761e9b13..2a986c4a5 100644 --- a/src/build_vehicle_gui.cpp +++ b/src/build_vehicle_gui.cpp @@ -44,7 +44,7 @@ */ uint GetEngineListHeight(VehicleType type) { - return max<uint>(FONT_HEIGHT_NORMAL + WD_MATRIX_TOP + WD_MATRIX_BOTTOM, GetVehicleImageCellSize(type, EIT_PURCHASE).height); + return std::max<uint>(FONT_HEIGHT_NORMAL + WD_MATRIX_TOP + WD_MATRIX_BOTTOM, GetVehicleImageCellSize(type, EIT_PURCHASE).height); } static const NWidgetPart _nested_build_vehicle_widgets[] = { @@ -1537,7 +1537,7 @@ struct BuildVehicleWindow : Window { case WID_BV_LIST: resize->height = GetEngineListHeight(this->vehicle_type); size->height = 3 * resize->height; - size->width = max(size->width, GetVehicleImageCellSize(this->vehicle_type, EIT_PURCHASE).extend_left + GetVehicleImageCellSize(this->vehicle_type, EIT_PURCHASE).extend_right + 165); + size->width = std::max(size->width, GetVehicleImageCellSize(this->vehicle_type, EIT_PURCHASE).extend_left + GetVehicleImageCellSize(this->vehicle_type, EIT_PURCHASE).extend_right + 165); break; case WID_BV_PANEL: @@ -1572,7 +1572,18 @@ struct BuildVehicleWindow : Window { { switch (widget) { case WID_BV_LIST: - DrawEngineList(this->vehicle_type, r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, r.top + WD_FRAMERECT_TOP, &this->eng_list, this->vscroll->GetPosition(), min(this->vscroll->GetPosition() + this->vscroll->GetCapacity(), (uint)this->eng_list.size()), this->sel_engine, false, DEFAULT_GROUP); + DrawEngineList( + this->vehicle_type, + r.left + WD_FRAMERECT_LEFT, + r.right - WD_FRAMERECT_RIGHT, + r.top + WD_FRAMERECT_TOP, + &this->eng_list, + this->vscroll->GetPosition(), + static_cast<uint16>(std::min<size_t>(this->vscroll->GetPosition() + this->vscroll->GetCapacity(), this->eng_list.size())), + this->sel_engine, + false, + DEFAULT_GROUP + ); break; case WID_BV_SORT_ASCENDING_DESCENDING: @@ -1597,7 +1608,7 @@ struct BuildVehicleWindow : Window { NWidgetBase *nwi = this->GetWidget<NWidgetBase>(WID_BV_PANEL); int text_end = DrawVehiclePurchaseInfo(nwi->pos_x + WD_FRAMETEXT_LEFT, nwi->pos_x + nwi->current_x - WD_FRAMETEXT_RIGHT, nwi->pos_y + WD_FRAMERECT_TOP, this->sel_engine, this->te); - needed_height = max(needed_height, text_end - (int)nwi->pos_y + WD_FRAMERECT_BOTTOM); + needed_height = std::max(needed_height, text_end - (int)nwi->pos_y + WD_FRAMERECT_BOTTOM); } if (needed_height != this->details_height) { // Details window are not high enough, enlarge them. int resize = needed_height - this->details_height; diff --git a/src/cargopacket.cpp b/src/cargopacket.cpp index eafab6880..86bba0261 100644 --- a/src/cargopacket.cpp +++ b/src/cargopacket.cpp @@ -558,7 +558,7 @@ uint VehicleCargoList::Reassign(uint max_move, TileOrStationID) { static_assert(Tfrom != MTA_TRANSFER && Tto != MTA_TRANSFER); static_assert(Tfrom - Tto == 1 || Tto - Tfrom == 1); - max_move = min(this->action_counts[Tfrom], max_move); + max_move = std::min(this->action_counts[Tfrom], max_move); this->action_counts[Tfrom] -= max_move; this->action_counts[Tto] += max_move; return max_move; @@ -574,7 +574,7 @@ uint VehicleCargoList::Reassign(uint max_move, TileOrStationID) template<> uint VehicleCargoList::Reassign<VehicleCargoList::MTA_DELIVER, VehicleCargoList::MTA_TRANSFER>(uint max_move, TileOrStationID next_station) { - max_move = min(this->action_counts[MTA_DELIVER], max_move); + max_move = std::min(this->action_counts[MTA_DELIVER], max_move); uint sum = 0; for (Iterator it(this->packets.begin()); sum < this->action_counts[MTA_TRANSFER] + max_move;) { @@ -603,7 +603,7 @@ uint VehicleCargoList::Reassign<VehicleCargoList::MTA_DELIVER, VehicleCargoList: */ uint VehicleCargoList::Return(uint max_move, StationCargoList *dest, StationID next) { - max_move = min(this->action_counts[MTA_LOAD], max_move); + max_move = std::min(this->action_counts[MTA_LOAD], max_move); this->PopCargo(CargoReturn(this, dest, max_move, next)); return max_move; } @@ -616,7 +616,7 @@ uint VehicleCargoList::Return(uint max_move, StationCargoList *dest, StationID n */ uint VehicleCargoList::Shift(uint max_move, VehicleCargoList *dest) { - max_move = min(this->count, max_move); + max_move = std::min(this->count, max_move); this->PopCargo(CargoShift(this, dest, max_move)); return max_move; } @@ -633,12 +633,12 @@ uint VehicleCargoList::Unload(uint max_move, StationCargoList *dest, CargoPaymen { uint moved = 0; if (this->action_counts[MTA_TRANSFER] > 0) { - uint move = min(this->action_counts[MTA_TRANSFER], max_move); + uint move = std::min(this->action_counts[MTA_TRANSFER], max_move); this->ShiftCargo(CargoTransfer(this, dest, move)); moved += move; } if (this->action_counts[MTA_TRANSFER] == 0 && this->action_counts[MTA_DELIVER] > 0 && moved < max_move) { - uint move = min(this->action_counts[MTA_DELIVER], max_move - moved); + uint move = std::min(this->action_counts[MTA_DELIVER], max_move - moved); this->ShiftCargo(CargoDelivery(this, move, payment)); moved += move; } @@ -653,7 +653,7 @@ uint VehicleCargoList::Unload(uint max_move, StationCargoList *dest, CargoPaymen */ uint VehicleCargoList::Truncate(uint max_move) { - max_move = min(this->count, max_move); + max_move = std::min(this->count, max_move); this->PopCargo(CargoRemoval<VehicleCargoList>(this, max_move)); return max_move; } @@ -668,7 +668,7 @@ uint VehicleCargoList::Truncate(uint max_move) */ uint VehicleCargoList::Reroute(uint max_move, VehicleCargoList *dest, StationID avoid, StationID avoid2, const GoodsEntry *ge) { - max_move = min(this->action_counts[MTA_TRANSFER], max_move); + max_move = std::min(this->action_counts[MTA_TRANSFER], max_move); this->ShiftCargo(VehicleCargoReroute(this, dest, max_move, avoid, avoid2, ge)); return max_move; } @@ -768,7 +768,7 @@ uint StationCargoList::ShiftCargo(Taction action, StationIDStack next, bool incl */ uint StationCargoList::Truncate(uint max_move, StationCargoAmountMap *cargo_per_source) { - max_move = min(max_move, this->count); + max_move = std::min(max_move, this->count); uint prev_count = this->count; uint moved = 0; uint loop = 0; @@ -839,7 +839,7 @@ uint StationCargoList::Reserve(uint max_move, VehicleCargoList *dest, TileIndex */ uint StationCargoList::Load(uint max_move, VehicleCargoList *dest, TileIndex load_place, StationIDStack next_station) { - uint move = min(dest->ActionCount(VehicleCargoList::MTA_LOAD), max_move); + uint move = std::min(dest->ActionCount(VehicleCargoList::MTA_LOAD), max_move); if (move > 0) { this->reserved_count -= move; dest->Reassign<VehicleCargoList::MTA_LOAD, VehicleCargoList::MTA_KEEP>(move); diff --git a/src/cargotype.cpp b/src/cargotype.cpp index 8421c482e..e30b9899f 100644 --- a/src/cargotype.cpp +++ b/src/cargotype.cpp @@ -12,7 +12,6 @@ #include "newgrf_cargo.h" #include "string_func.h" #include "strings_func.h" -#include <algorithm> #include "table/sprites.h" #include "table/strings.h" diff --git a/src/cheat_gui.cpp b/src/cheat_gui.cpp index 344e15e63..d83cd3996 100644 --- a/src/cheat_gui.cpp +++ b/src/cheat_gui.cpp @@ -291,9 +291,9 @@ struct CheatWindow : Window { switch (ce->type) { case SLE_BOOL: SetDParam(0, STR_CONFIG_SETTING_ON); - width = max(width, GetStringBoundingBox(ce->str).width); + width = std::max(width, GetStringBoundingBox(ce->str).width); SetDParam(0, STR_CONFIG_SETTING_OFF); - width = max(width, GetStringBoundingBox(ce->str).width); + width = std::max(width, GetStringBoundingBox(ce->str).width); break; default: @@ -301,27 +301,27 @@ struct CheatWindow : Window { /* Display date for change date cheat */ case STR_CHEAT_CHANGE_DATE: SetDParam(0, ConvertYMDToDate(MAX_YEAR, 11, 31)); - width = max(width, GetStringBoundingBox(ce->str).width); + width = std::max(width, GetStringBoundingBox(ce->str).width); break; /* Draw coloured flag for change company cheat */ case STR_CHEAT_CHANGE_COMPANY: SetDParamMaxValue(0, MAX_COMPANIES); - width = max(width, GetStringBoundingBox(ce->str).width + 10 + 10); + width = std::max(width, GetStringBoundingBox(ce->str).width + 10 + 10); break; default: SetDParam(0, INT64_MAX); - width = max(width, GetStringBoundingBox(ce->str).width); + width = std::max(width, GetStringBoundingBox(ce->str).width); break; } break; } } - this->line_height = max(GetSpriteSize(SPR_BOX_CHECKED).height, GetSpriteSize(SPR_BOX_EMPTY).height); - this->line_height = max<uint>(this->line_height, SETTING_BUTTON_HEIGHT); - this->line_height = max<uint>(this->line_height, FONT_HEIGHT_NORMAL) + WD_PAR_VSEP_NORMAL; + this->line_height = std::max(GetSpriteSize(SPR_BOX_CHECKED).height, GetSpriteSize(SPR_BOX_EMPTY).height); + this->line_height = std::max<uint>(this->line_height, SETTING_BUTTON_HEIGHT); + this->line_height = std::max<uint>(this->line_height, FONT_HEIGHT_NORMAL) + WD_PAR_VSEP_NORMAL; size->width = width + 20 + this->box_width + SETTING_BUTTON_WIDTH /* stuff on the left */ + 10 /* extra spacing on right */; this->header_height = GetStringHeight(STR_CHEATS_WARNING, size->width - WD_FRAMERECT_LEFT - WD_FRAMERECT_RIGHT) + WD_PAR_VSEP_WIDE; diff --git a/src/clear_cmd.cpp b/src/clear_cmd.cpp index 06953884e..6d3167e5a 100644 --- a/src/clear_cmd.cpp +++ b/src/clear_cmd.cpp @@ -191,7 +191,7 @@ static void TileLoopClearAlps(TileIndex tile) } /* Update snow density. */ uint current_density = GetClearDensity(tile); - uint req_density = (k < 0) ? 0u : min((uint)k, 3); + uint req_density = (k < 0) ? 0u : std::min<uint>(k, 3u); if (current_density < req_density) { AddClearDensity(tile, 1); diff --git a/src/company_cmd.cpp b/src/company_cmd.cpp index 1ecdaf89a..5a6a114e7 100644 --- a/src/company_cmd.cpp +++ b/src/company_cmd.cpp @@ -265,9 +265,9 @@ void SubtractMoneyFromCompanyFract(CompanyID company, const CommandCost &cst) void UpdateLandscapingLimits() { for (Company *c : Company::Iterate()) { - c->terraform_limit = min(c->terraform_limit + _settings_game.construction.terraform_per_64k_frames, (uint32)_settings_game.construction.terraform_frame_burst << 16); - c->clear_limit = min(c->clear_limit + _settings_game.construction.clear_per_64k_frames, (uint32)_settings_game.construction.clear_frame_burst << 16); - c->tree_limit = min(c->tree_limit + _settings_game.construction.tree_per_64k_frames, (uint32)_settings_game.construction.tree_frame_burst << 16); + c->terraform_limit = std::min<uint32>(c->terraform_limit + _settings_game.construction.terraform_per_64k_frames, _settings_game.construction.terraform_frame_burst << 16); + c->clear_limit = std::min<uint32>(c->clear_limit + _settings_game.construction.clear_per_64k_frames, _settings_game.construction.clear_frame_burst << 16); + c->tree_limit = std::min<uint32>(c->tree_limit + _settings_game.construction.tree_per_64k_frames, _settings_game.construction.tree_frame_burst << 16); } } @@ -554,7 +554,7 @@ Company *DoStartupNewCompany(bool is_ai, CompanyID company = INVALID_COMPANY) ResetCompanyLivery(c); _company_colours[c->index] = (Colours)c->colour; - c->money = c->current_loan = (min(INITIAL_LOAN, _economy.max_loan) * _economy.inflation_prices >> 16) / 50000 * 50000; + c->money = c->current_loan = (std::min<int64>(INITIAL_LOAN, _economy.max_loan) * _economy.inflation_prices >> 16) / 50000 * 50000; c->share_owners[0] = c->share_owners[1] = c->share_owners[2] = c->share_owners[3] = INVALID_OWNER; @@ -708,7 +708,7 @@ void OnTick_Companies() if (_next_competitor_start == 0) { /* AI::GetStartNextTime() can return 0. */ - _next_competitor_start = max(1, AI::GetStartNextTime() * DAY_TICKS); + _next_competitor_start = std::max(1, AI::GetStartNextTime() * DAY_TICKS); } if (_game_mode != GM_MENU && AI::CanStartNew() && --_next_competitor_start == 0) { @@ -1198,7 +1198,7 @@ CommandCost CmdGiveMoney(TileIndex tile, DoCommandFlag flags, uint32 p1, uint32 if (!_settings_game.economy.give_money) return CMD_ERROR; const Company *c = Company::Get(_current_company); - CommandCost amount(EXPENSES_OTHER, min((Money)p1, (Money)20000000LL)); + CommandCost amount(EXPENSES_OTHER, std::min<Money>(p1, 20000000LL)); CompanyID dest_company = (CompanyID)p2; /* You can only transfer funds that is in excess of your loan */ diff --git a/src/company_gui.cpp b/src/company_gui.cpp index 7102c7662..29701b514 100644 --- a/src/company_gui.cpp +++ b/src/company_gui.cpp @@ -112,11 +112,11 @@ struct ExpensesList { ExpensesType et = this->et[i]; if (et == INVALID_EXPENSES) { if (!invalid_expenses_measured) { - width = max(width, GetStringBoundingBox(STR_FINANCES_TOTAL_CAPTION).width); + width = std::max(width, GetStringBoundingBox(STR_FINANCES_TOTAL_CAPTION).width); invalid_expenses_measured = true; } } else { - width = max(width, GetStringBoundingBox(STR_FINANCES_SECTION_CONSTRUCTION + et).width); + width = std::max(width, GetStringBoundingBox(STR_FINANCES_SECTION_CONSTRUCTION + et).width); } } return width; @@ -322,7 +322,7 @@ struct CompanyFinancesWindow : Window { case WID_CF_LOAN_VALUE: case WID_CF_TOTAL_VALUE: SetDParamMaxValue(0, CompanyFinancesWindow::max_money); - size->width = max(GetStringBoundingBox(STR_FINANCES_NEGATIVE_INCOME).width, GetStringBoundingBox(STR_FINANCES_POSITIVE_INCOME).width) + padding.width; + size->width = std::max(GetStringBoundingBox(STR_FINANCES_NEGATIVE_INCOME).width, GetStringBoundingBox(STR_FINANCES_POSITIVE_INCOME).width) + padding.width; break; case WID_CF_MAXLOAN_GAP: @@ -342,7 +342,7 @@ struct CompanyFinancesWindow : Window { case WID_CF_EXPS_PRICE2: case WID_CF_EXPS_PRICE3: { const Company *c = Company::Get((CompanyID)this->window_number); - int age = min(_cur_year - c->inaugurated_year, 2); + int age = std::min(_cur_year - c->inaugurated_year, 2); int wid_offset = widget - WID_CF_EXPS_PRICE1; if (wid_offset <= age) { DrawYearColumn(r, _cur_year - (age - wid_offset), c->yearly_expenses + (age - wid_offset)); @@ -455,7 +455,7 @@ struct CompanyFinancesWindow : Window { { const Company *c = Company::Get((CompanyID)this->window_number); if (c->money > CompanyFinancesWindow::max_money) { - CompanyFinancesWindow::max_money = max(c->money * 2, CompanyFinancesWindow::max_money * 4); + CompanyFinancesWindow::max_money = std::max(c->money * 2, CompanyFinancesWindow::max_money * 4); this->SetupWidgets(); this->ReInit(); } @@ -526,7 +526,7 @@ public: uint Height(uint width) const override { - return max(FONT_HEIGHT_NORMAL, ScaleGUITrad(12) + 2); + return std::max(FONT_HEIGHT_NORMAL, ScaleGUITrad(12) + 2); } bool Selectable() const override @@ -731,7 +731,7 @@ public: /* Position scrollbar to selected group */ for (uint i = 0; i < this->rows; i++) { if (this->groups[i]->index == sel) { - this->vscroll->SetPosition(Clamp(i - this->vscroll->GetCapacity() / 2, 0, max(this->vscroll->GetCount() - this->vscroll->GetCapacity(), 0))); + this->vscroll->SetPosition(Clamp(i - this->vscroll->GetCapacity() / 2, 0, std::max(this->vscroll->GetCount() - this->vscroll->GetCapacity(), 0))); break; } } @@ -755,14 +755,14 @@ public: } } - size->width = max(size->width, 5 + d.width + WD_FRAMERECT_RIGHT); + size->width = std::max(size->width, 5 + d.width + WD_FRAMERECT_RIGHT); break; } case WID_SCL_MATRIX: { /* 11 items in the default rail class */ this->square = GetSpriteSize(SPR_SQUARE); - this->line_height = max(this->square.height, (uint)FONT_HEIGHT_NORMAL) + 4; + this->line_height = std::max(this->square.height, (uint)FONT_HEIGHT_NORMAL) + 4; size->height = 11 * this->line_height; resize->width = 1; @@ -781,9 +781,9 @@ public: this->square = GetSpriteSize(SPR_SQUARE); int padding = this->square.width + NWidgetScrollbar::GetVerticalDimension().width + 10; for (const StringID *id = _colour_dropdown; id != endof(_colour_dropdown); id++) { - size->width = max(size->width, GetStringBoundingBox(*id).width + padding); + size->width = std::max(size->width, GetStringBoundingBox(*id).width + padding); } - size->width = max(size->width, GetStringBoundingBox(STR_COLOUR_DEFAULT).width + padding); + size->width = std::max(size->width, GetStringBoundingBox(STR_COLOUR_DEFAULT).width + padding); break; } } @@ -898,7 +898,7 @@ public: } } } else { - uint max = min(this->vscroll->GetPosition() + this->vscroll->GetCapacity(), (uint)this->groups.size()); + uint max = static_cast<uint>(std::min<size_t>(this->vscroll->GetPosition() + this->vscroll->GetCapacity(), this->groups.size())); for (uint i = this->vscroll->GetPosition(); i < max; ++i) { const Group *g = this->groups[i]; SetDParam(0, g->index); @@ -1380,7 +1380,7 @@ public: number_dim.width += WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT + arrows_width; number_dim.height += WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM; /* Compute width of both buttons. */ - yesno_dim.width = max(yesno_dim.width, number_dim.width); + yesno_dim.width = std::max(yesno_dim.width, number_dim.width); number_dim.width = yesno_dim.width - arrows_width; this->yesno_dim = yesno_dim; @@ -1392,8 +1392,8 @@ public: switch (widget) { case WID_SCMF_FACE: { Dimension face_size = GetSpriteSize(SPR_GRADIENT); - size->width = max(size->width, face_size.width); - size->height = max(size->height, face_size.height); + size->width = std::max(size->width, face_size.width); + size->height = std::max(size->height, face_size.height); break; } @@ -1885,22 +1885,22 @@ struct CompanyInfrastructureWindow : Window case WID_CI_RAIL_DESC: { uint lines = 1; // Starts at 1 because a line is also required for the section title - size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT).width); + size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_RAIL_SECT).width); RailType rt; FOR_ALL_SORTED_RAILTYPES(rt) { if (HasBit(this->railtypes, rt)) { lines++; SetDParam(0, GetRailTypeInfo(rt)->strings.name); - size->width = max(size->width, GetStringBoundingBox(STR_WHITE_STRING).width + WD_FRAMERECT_LEFT); + size->width = std::max(size->width, GetStringBoundingBox(STR_WHITE_STRING).width + WD_FRAMERECT_LEFT); } } if (this->railtypes != RAILTYPES_NONE) { lines++; - size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_SIGNALS).width + WD_FRAMERECT_LEFT); + size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_SIGNALS).width + WD_FRAMERECT_LEFT); } - size->height = max(size->height, lines * FONT_HEIGHT_NORMAL); + size->height = std::max(size->height, lines * FONT_HEIGHT_NORMAL); break; } @@ -1908,30 +1908,30 @@ struct CompanyInfrastructureWindow : Window case WID_CI_TRAM_DESC: { uint lines = 1; // Starts at 1 because a line is also required for the section title - size->width = max(size->width, GetStringBoundingBox(widget == WID_CI_ROAD_DESC ? STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT : STR_COMPANY_INFRASTRUCTURE_VIEW_TRAM_SECT).width); + size->width = std::max(size->width, GetStringBoundingBox(widget == WID_CI_ROAD_DESC ? STR_COMPANY_INFRASTRUCTURE_VIEW_ROAD_SECT : STR_COMPANY_INFRASTRUCTURE_VIEW_TRAM_SECT).width); RoadType rt; FOR_ALL_SORTED_ROADTYPES(rt) { if (HasBit(this->roadtypes, rt) && RoadTypeIsRoad(rt) == (widget == WID_CI_ROAD_DESC)) { lines++; SetDParam(0, GetRoadTypeInfo(rt)->strings.name); - size->width = max(size->width, GetStringBoundingBox(STR_WHITE_STRING).width + WD_FRAMERECT_LEFT); + size->width = std::max(size->width, GetStringBoundingBox(STR_WHITE_STRING).width + WD_FRAMERECT_LEFT); } } - size->height = max(size->height, lines * FONT_HEIGHT_NORMAL); + size->height = std::max(size->height, lines * FONT_HEIGHT_NORMAL); break; } case WID_CI_WATER_DESC: - size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT).width); - size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_CANALS).width + WD_FRAMERECT_LEFT); + size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT).width); + size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_CANALS).width + WD_FRAMERECT_LEFT); break; case WID_CI_STATION_DESC: - size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT).width); - size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_STATIONS).width + WD_FRAMERECT_LEFT); - size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_AIRPORTS).width + WD_FRAMERECT_LEFT); + size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT).width); + size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_STATIONS).width + WD_FRAMERECT_LEFT); + size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_AIRPORTS).width + WD_FRAMERECT_LEFT); break; case WID_CI_RAIL_COUNT: @@ -1945,24 +1945,24 @@ struct CompanyInfrastructureWindow : Window Money max_cost = 10000; // Some random number to reserve enough space. uint32 rail_total = c->infrastructure.GetRailTotal(); for (RailType rt = RAILTYPE_BEGIN; rt < RAILTYPE_END; rt++) { - max_val = max(max_val, c->infrastructure.rail[rt]); - max_cost = max(max_cost, RailMaintenanceCost(rt, c->infrastructure.rail[rt], rail_total)); + max_val = std::max(max_val, c->infrastructure.rail[rt]); + max_cost = std::max(max_cost, RailMaintenanceCost(rt, c->infrastructure.rail[rt], rail_total)); } - max_val = max(max_val, c->infrastructure.signal); - max_cost = max(max_cost, SignalMaintenanceCost(c->infrastructure.signal)); + max_val = std::max(max_val, c->infrastructure.signal); + max_cost = std::max(max_cost, SignalMaintenanceCost(c->infrastructure.signal)); uint32 road_total = c->infrastructure.GetRoadTotal(); uint32 tram_total = c->infrastructure.GetTramTotal(); for (RoadType rt = ROADTYPE_BEGIN; rt < ROADTYPE_END; rt++) { - max_val = max(max_val, c->infrastructure.road[rt]); - max_cost = max(max_cost, RoadMaintenanceCost(rt, c->infrastructure.road[rt], RoadTypeIsRoad(rt) ? road_total : tram_total)); + max_val = std::max(max_val, c->infrastructure.road[rt]); + max_cost = std::max(max_cost, RoadMaintenanceCost(rt, c->infrastructure.road[rt], RoadTypeIsRoad(rt) ? road_total : tram_total)); } - max_val = max(max_val, c->infrastructure.water); - max_cost = max(max_cost, CanalMaintenanceCost(c->infrastructure.water)); - max_val = max(max_val, c->infrastructure.station); - max_cost = max(max_cost, StationMaintenanceCost(c->infrastructure.station)); - max_val = max(max_val, c->infrastructure.airport); - max_cost = max(max_cost, AirportMaintenanceCost(c->index)); + max_val = std::max(max_val, c->infrastructure.water); + max_cost = std::max(max_cost, CanalMaintenanceCost(c->infrastructure.water)); + max_val = std::max(max_val, c->infrastructure.station); + max_cost = std::max(max_cost, StationMaintenanceCost(c->infrastructure.station)); + max_val = std::max(max_val, c->infrastructure.airport); + max_cost = std::max(max_cost, AirportMaintenanceCost(c->index)); SetDParamMaxValue(0, max_val); uint count_width = GetStringBoundingBox(STR_WHITE_COMMA).width + 20; // Reserve some wiggle room @@ -1970,17 +1970,17 @@ struct CompanyInfrastructureWindow : Window if (_settings_game.economy.infrastructure_maintenance) { SetDParamMaxValue(0, this->GetTotalMaintenanceCost() * 12); // Convert to per year this->total_width = GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL).width + 20; - size->width = max(size->width, this->total_width); + size->width = std::max(size->width, this->total_width); SetDParamMaxValue(0, max_cost * 12); // Convert to per year - count_width += max(this->total_width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL).width); + count_width += std::max(this->total_width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL).width); } - size->width = max(size->width, count_width); + size->width = std::max(size->width, count_width); /* Set height of the total line. */ if (widget == WID_CI_TOTAL) { - size->height = _settings_game.economy.infrastructure_maintenance ? max(size->height, EXP_LINESPACE + FONT_HEIGHT_NORMAL) : 0; + size->height = _settings_game.economy.infrastructure_maintenance ? std::max(size->height, EXP_LINESPACE + FONT_HEIGHT_NORMAL) : 0; } break; } @@ -2367,8 +2367,8 @@ struct CompanyWindow : Window switch (widget) { case WID_C_FACE: { Dimension face_size = GetSpriteSize(SPR_GRADIENT); - size->width = max(size->width, face_size.width); - size->height = max(size->height, face_size.height); + size->width = std::max(size->width, face_size.width); + size->height = std::max(size->height, face_size.height); break; } @@ -2389,18 +2389,18 @@ struct CompanyWindow : Window case WID_C_DESC_VEHICLE_COUNTS: SetDParamMaxValue(0, 5000); // Maximum number of vehicles for (uint i = 0; i < lengthof(_company_view_vehicle_count_strings); i++) { - size->width = max(size->width, GetStringBoundingBox(_company_view_vehicle_count_strings[i]).width); + size->width = std::max(size->width, GetStringBoundingBox(_company_view_vehicle_count_strings[i]).width); } break; case WID_C_DESC_INFRASTRUCTURE_COUNTS: SetDParamMaxValue(0, UINT_MAX); - size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL).width); - size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD).width); - size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_WATER).width); - size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_STATION).width); - size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_AIRPORT).width); - size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_NONE).width); + size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL).width); + size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD).width); + size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_WATER).width); + size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_STATION).width); + size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_AIRPORT).width); + size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_NONE).width); break; case WID_C_DESC_OWNERS: { @@ -2408,7 +2408,7 @@ struct CompanyWindow : Window SetDParamMaxValue(0, 75); SetDParam(1, c2->index); - size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_SHARES_OWNED_BY).width); + size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_SHARES_OWNED_BY).width); } break; } @@ -2420,13 +2420,13 @@ struct CompanyWindow : Window case WID_C_GIVE_MONEY: case WID_C_COMPANY_PASSWORD: case WID_C_COMPANY_JOIN: - size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_VIEW_HQ_BUTTON).width); - size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_BUILD_HQ_BUTTON).width); - size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_RELOCATE_HQ).width); - size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_BUTTON).width); - size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_GIVE_MONEY_BUTTON).width); - size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_PASSWORD).width); - size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_JOIN).width); + size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_VIEW_HQ_BUTTON).width); + size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_BUILD_HQ_BUTTON).width); + size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_RELOCATE_HQ).width); + size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_BUTTON).width); + size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_GIVE_MONEY_BUTTON).width); + size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_PASSWORD).width); + size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_JOIN).width); break; case WID_C_HAS_PASSWORD: diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index d2066df2b..356cfc7ab 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -2015,7 +2015,7 @@ DEF_CONSOLE_CMD(ConNewGRFProfile) if (started > 0) { IConsolePrintF(CC_DEBUG, "Started profiling for GRFID%s %s", (started > 1) ? "s" : "", grfids.c_str()); if (argc >= 3) { - int days = max(atoi(argv[2]), 1); + int days = std::max(atoi(argv[2]), 1); _newgrf_profile_end_date = _date + days; char datestrbuf[32]{ 0 }; diff --git a/src/console_gui.cpp b/src/console_gui.cpp index 3841a5954..c8ad5fbdb 100644 --- a/src/console_gui.cpp +++ b/src/console_gui.cpp @@ -194,7 +194,7 @@ struct IConsoleWindow : Window */ void Scroll(int amount) { - int max_scroll = max<int>(0, IConsoleLine::size + 1 - this->height / this->line_height); + int max_scroll = std::max(0, IConsoleLine::size + 1 - this->height / this->line_height); IConsoleWindow::scroll = Clamp<int>(IConsoleWindow::scroll + amount, 0, max_scroll); this->SetDirty(); } @@ -231,7 +231,7 @@ struct IConsoleWindow : Window { if (IConsoleLine::Truncate() && (IConsoleWindow::scroll > IConsoleLine::size)) { - IConsoleWindow::scroll = max(0, IConsoleLine::size - (this->height / this->line_height) + 1); + IConsoleWindow::scroll = std::max(0, IConsoleLine::size - (this->height / this->line_height) + 1); this->SetDirty(); } } @@ -341,7 +341,7 @@ struct IConsoleWindow : Window Point GetCaretPosition() const override { - int delta = min(this->width - this->line_offset - _iconsole_cmdline.pixels - ICON_RIGHT_BORDERWIDTH, 0); + int delta = std::min<int>(this->width - this->line_offset - _iconsole_cmdline.pixels - ICON_RIGHT_BORDERWIDTH, 0); Point pt = {this->line_offset + delta + _iconsole_cmdline.caretxoffs, this->height - this->line_height}; return pt; @@ -349,7 +349,7 @@ struct IConsoleWindow : Window Rect GetTextBoundingRect(const char *from, const char *to) const override { - int delta = min(this->width - this->line_offset - _iconsole_cmdline.pixels - ICON_RIGHT_BORDERWIDTH, 0); + int delta = std::min<int>(this->width - this->line_offset - _iconsole_cmdline.pixels - ICON_RIGHT_BORDERWIDTH, 0); Point p1 = GetCharPosInString(_iconsole_cmdline.buf, from, FS_NORMAL); Point p2 = from != to ? GetCharPosInString(_iconsole_cmdline.buf, from) : p1; @@ -360,7 +360,7 @@ struct IConsoleWindow : Window const char *GetTextCharacterAtPosition(const Point &pt) const override { - int delta = min(this->width - this->line_offset - _iconsole_cmdline.pixels - ICON_RIGHT_BORDERWIDTH, 0); + int delta = std::min<int>(this->width - this->line_offset - _iconsole_cmdline.pixels - ICON_RIGHT_BORDERWIDTH, 0); if (!IsInsideMM(pt.y, this->height - this->line_height, this->height)) return nullptr; diff --git a/src/core/geometry_func.cpp b/src/core/geometry_func.cpp index 162f2eae5..89e70fb5b 100644 --- a/src/core/geometry_func.cpp +++ b/src/core/geometry_func.cpp @@ -22,7 +22,7 @@ Dimension maxdim(const Dimension &d1, const Dimension &d2) { Dimension d; - d.width = max(d1.width, d2.width); - d.height = max(d1.height, d2.height); + d.width = std::max(d1.width, d2.width); + d.height = std::max(d1.height, d2.height); return d; } diff --git a/src/core/kdtree.hpp b/src/core/kdtree.hpp index c37ab8eea..392e31b8e 100644 --- a/src/core/kdtree.hpp +++ b/src/core/kdtree.hpp @@ -12,7 +12,6 @@ #include "../stdafx.h" #include <vector> -#include <algorithm> #include <limits> /** @@ -261,7 +260,7 @@ class Kdtree { best = SelectNearestNodeDistance(best, this->FindNearestRecursive(xy, next, level + 1)); } - limit = min(best.second, limit); + limit = std::min(best.second, limit); /* Check if the distance from current best is worse than distance from target to splitting line, * if it is we also need to check the other side of the split. */ diff --git a/src/core/math_func.hpp b/src/core/math_func.hpp index 55061066a..222b4120e 100644 --- a/src/core/math_func.hpp +++ b/src/core/math_func.hpp @@ -11,66 +11,6 @@ #define MATH_FUNC_HPP /** - * Returns the maximum of two values. - * - * This function returns the greater value of two given values. - * If they are equal the value of a is returned. - * - * @param a The first value - * @param b The second value - * @return The greater value or a if equals - */ -template <typename T> -static inline T max(const T a, const T b) -{ - return (a >= b) ? a : b; -} - -/** - * Returns the minimum of two values. - * - * This function returns the smaller value of two given values. - * If they are equal the value of b is returned. - * - * @param a The first value - * @param b The second value - * @return The smaller value or b if equals - */ -template <typename T> -static inline T min(const T a, const T b) -{ - return (a < b) ? a : b; -} - -/** - * Returns the minimum of two integer. - * - * This function returns the smaller value of two given integers. - * - * @param a The first integer - * @param b The second integer - * @return The smaller value - */ -static inline int min(const int a, const int b) -{ - return min<int>(a, b); -} - -/** - * Returns the minimum of two unsigned integers. - * - * This function returns the smaller value of two given unsigned integers. - * - * @param a The first unsigned integer - * @param b The second unsigned integer - * @return The smaller value - */ -static inline uint minu(const uint a, const uint b) -{ - return min<uint>(a, b); -} - -/** * Returns the absolute value of (scalar) variable. * * @note assumes variable to be signed @@ -216,7 +156,7 @@ static inline uint16 ClampToU16(const uint64 a) * match for min(uint64, uint) than uint64 min(uint64, uint64). As such we * need to cast the UINT16_MAX to prevent MSVC from displaying its * infinite loads of warnings. */ - return static_cast<uint16>(min<uint64>(a, static_cast<uint64>(UINT16_MAX))); + return static_cast<uint16>(std::min(a, static_cast<uint64>(UINT16_MAX))); } /** diff --git a/src/core/pool_func.hpp b/src/core/pool_func.hpp index db79ab285..dea108f08 100644 --- a/src/core/pool_func.hpp +++ b/src/core/pool_func.hpp @@ -52,7 +52,7 @@ DEFINE_POOL_METHOD(inline void)::ResizeFor(size_t index) assert(index >= this->size); assert(index < Tmax_size); - size_t new_size = min(Tmax_size, Align(index + 1, Tgrowth_step)); + size_t new_size = std::min(Tmax_size, Align(index + 1, Tgrowth_step)); this->data = ReallocT(this->data, new_size); MemSetT(this->data + this->size, 0, new_size - this->size); @@ -100,7 +100,7 @@ DEFINE_POOL_METHOD(inline void *)::AllocateItem(size_t size, size_t index) { assert(this->data[index] == nullptr); - this->first_unused = max(this->first_unused, index + 1); + this->first_unused = std::max(this->first_unused, index + 1); this->items++; Titem *item; @@ -187,7 +187,7 @@ DEFINE_POOL_METHOD(void)::FreeItem(size_t index) free(this->data[index]); } this->data[index] = nullptr; - this->first_free = min(this->first_free, index); + this->first_free = std::min(this->first_free, index); this->items--; if (!this->cleaning) Titem::PostDestructor(index); } diff --git a/src/core/smallmatrix_type.hpp b/src/core/smallmatrix_type.hpp index 0aeac10e1..03fd1b790 100644 --- a/src/core/smallmatrix_type.hpp +++ b/src/core/smallmatrix_type.hpp @@ -234,7 +234,7 @@ public: if (x * new_height > new_capacity) continue; (*copy)(new_data + (x - 1) * new_height, this->data + (x - 1) * this->height, - min(this->height, new_height)); + std::min(this->height, new_height)); } } else { /* If matrix is shrinking copy from the front. */ @@ -242,7 +242,7 @@ public: if ((x + 1) * new_height > new_capacity) break; (*copy)(new_data + x * new_height, this->data + x * this->height, - min(this->height, new_height)); + std::min(this->height, new_height)); } } } diff --git a/src/core/smallstack_type.hpp b/src/core/smallstack_type.hpp index bf44f00c8..c05454b8a 100644 --- a/src/core/smallstack_type.hpp +++ b/src/core/smallstack_type.hpp @@ -46,7 +46,7 @@ public: if (index < Tmax_size) { this->data[index].valid = true; this->first_free = index + 1; - this->first_unused = max(this->first_unused, this->first_free); + this->first_unused = std::max(this->first_unused, this->first_free); } return index; } @@ -58,7 +58,7 @@ public: inline void Destroy(Tindex index) { this->data[index].valid = false; - this->first_free = min(this->first_free, index); + this->first_free = std::min(this->first_free, index); } private: diff --git a/src/core/smallvec_type.hpp b/src/core/smallvec_type.hpp index 2f65f0292..92fd938be 100644 --- a/src/core/smallvec_type.hpp +++ b/src/core/smallvec_type.hpp @@ -13,7 +13,6 @@ #include "alloc_func.hpp" #include "mem_func.hpp" #include <vector> -#include <algorithm> /** * Helper function to append an item to a vector if it is not already contained diff --git a/src/date_gui.cpp b/src/date_gui.cpp index 4d8ff2a89..8feb3f8ad 100644 --- a/src/date_gui.cpp +++ b/src/date_gui.cpp @@ -41,8 +41,8 @@ struct SetDateWindow : Window { SetDateWindow(WindowDesc *desc, WindowNumber window_number, Window *parent, Date initial_date, Year min_year, Year max_year, SetDateCallback *callback) : Window(desc), callback(callback), - min_year(max(MIN_YEAR, min_year)), - max_year(min(MAX_YEAR, max_year)) + min_year(std::max(MIN_YEAR, min_year)), + max_year(std::min(MAX_YEAR, max_year)) { assert(this->min_year <= this->max_year); this->parent = parent; diff --git a/src/depot_gui.cpp b/src/depot_gui.cpp index e4663c602..026382b28 100644 --- a/src/depot_gui.cpp +++ b/src/depot_gui.cpp @@ -194,12 +194,12 @@ static void InitBlocksizeForVehicles(VehicleType type, EngineImageType image_typ switch (image_type) { case EIT_IN_DEPOT: - _base_block_sizes_depot[type].height = max<uint>(ScaleGUITrad(GetVehicleHeight(type)), max_height); + _base_block_sizes_depot[type].height = std::max<uint>(ScaleGUITrad(GetVehicleHeight(type)), max_height); _base_block_sizes_depot[type].extend_left = Clamp(max_extend_left, min_extend, max_extend); _base_block_sizes_depot[type].extend_right = Clamp(max_extend_right, min_extend, max_extend); break; case EIT_PURCHASE: - _base_block_sizes_purchase[type].height = max<uint>(ScaleGUITrad(GetVehicleHeight(type)), max_height); + _base_block_sizes_purchase[type].height = std::max<uint>(ScaleGUITrad(GetVehicleHeight(type)), max_height); _base_block_sizes_purchase[type].extend_left = Clamp(max_extend_left, min_extend, max_extend); _base_block_sizes_purchase[type].extend_right = Clamp(max_extend_right, min_extend, max_extend); break; @@ -395,7 +395,7 @@ struct DepotWindow : Window { uint16 rows_in_display = wid->current_y / wid->resize_y; uint16 num = this->vscroll->GetPosition() * this->num_columns; - int maxval = min((uint)this->vehicle_list.size(), num + (rows_in_display * this->num_columns)); + uint maxval = static_cast<uint>(std::min<size_t>(this->vehicle_list.size(), num + (rows_in_display * this->num_columns))); int y; for (y = r.top + 1; num < maxval; y += this->resize.step_height) { // Draw the rows for (byte i = 0; i < this->num_columns && num < maxval; i++, num++) { @@ -410,7 +410,7 @@ struct DepotWindow : Window { } } - maxval = min((uint)this->vehicle_list.size() + (uint)this->wagon_list.size(), (this->vscroll->GetPosition() * this->num_columns) + (rows_in_display * this->num_columns)); + maxval = static_cast<uint>(std::min<size_t>(this->vehicle_list.size() + this->wagon_list.size(), (this->vscroll->GetPosition() * this->num_columns) + (rows_in_display * this->num_columns))); /* Draw the train wagons without an engine in front. */ for (; num < maxval; num++, y += this->resize.step_height) { @@ -668,15 +668,15 @@ struct DepotWindow : Window { this->flag_height = UnScaleGUI(spr->height); if (this->type == VEH_TRAIN || this->type == VEH_ROAD) { - min_height = max<uint>(unumber.height + WD_MATRIX_TOP, UnScaleGUI(spr->height)); + min_height = std::max<uint>(unumber.height + WD_MATRIX_TOP, UnScaleGUI(spr->height)); this->header_width = unumber.width + this->flag_width + WD_FRAMERECT_LEFT; } else { min_height = unumber.height + UnScaleGUI(spr->height) + WD_MATRIX_TOP + WD_PAR_VSEP_NORMAL + WD_MATRIX_BOTTOM; - this->header_width = max<uint>(unumber.width, this->flag_width) + WD_FRAMERECT_RIGHT; + this->header_width = std::max<uint>(unumber.width, this->flag_width) + WD_FRAMERECT_RIGHT; } int base_width = this->count_width + this->header_width; - resize->height = max<uint>(GetVehicleImageCellSize(this->type, EIT_IN_DEPOT).height, min_height); + resize->height = std::max<uint>(GetVehicleImageCellSize(this->type, EIT_IN_DEPOT).height, min_height); if (this->type == VEH_TRAIN) { resize->width = 1; size->width = base_width + 2 * ScaleGUITrad(29); // about 2 parts @@ -728,7 +728,7 @@ struct DepotWindow : Window { for (const Train *v = Train::From(this->vehicle_list[num]); v != nullptr; v = v->Next()) { width += v->GetDisplayImageWidth(); } - max_width = max(max_width, width); + max_width = std::max(max_width, width); } /* Always have 1 empty row, so people can change the setting of the train */ this->vscroll->SetCount((uint)this->vehicle_list.size() + (uint)this->wagon_list.size() + 1); diff --git a/src/disaster_vehicle.cpp b/src/disaster_vehicle.cpp index 12217bb61..c5d76877c 100644 --- a/src/disaster_vehicle.cpp +++ b/src/disaster_vehicle.cpp @@ -193,7 +193,7 @@ void DisasterVehicle::UpdatePosition(int x, int y, int z) int safe_y = Clamp(y - 1, 0, MapMaxY() * TILE_SIZE); u->x_pos = x; - u->y_pos = y - 1 - (max(z - GetSlopePixelZ(safe_x, safe_y), 0) >> 3); + u->y_pos = y - 1 - (std::max(z - GetSlopePixelZ(safe_x, safe_y), 0) >> 3); safe_y = Clamp(u->y_pos, 0, MapMaxY() * TILE_SIZE); u->z_pos = GetSlopePixelZ(safe_x, safe_y); u->direction = this->direction; diff --git a/src/dock_gui.cpp b/src/dock_gui.cpp index 07c072d35..30a60e74f 100644 --- a/src/dock_gui.cpp +++ b/src/dock_gui.cpp @@ -72,7 +72,7 @@ static TileIndex GetOtherAqueductEnd(TileIndex tile_from, TileIndex *tile_to = n /* Direction the aqueduct is built to. */ TileIndexDiff offset = TileOffsByDiagDir(ReverseDiagDir(dir)); /* The maximum length of the aqueduct. */ - int max_length = min(_settings_game.construction.max_bridge_length, DistanceFromEdgeDir(tile_from, ReverseDiagDir(dir)) - 1); + int max_length = std::min<int>(_settings_game.construction.max_bridge_length, DistanceFromEdgeDir(tile_from, ReverseDiagDir(dir)) - 1); TileIndex endtile = tile_from; for (int length = 0; IsValidTile(endtile) && TileX(endtile) != 0 && TileY(endtile) != 0; length++) { diff --git a/src/economy.cpp b/src/economy.cpp index c73012096..d5c7797d5 100644 --- a/src/economy.cpp +++ b/src/economy.cpp @@ -135,7 +135,7 @@ Money CalculateCompanyValue(const Company *c, bool including_loan) if (including_loan) value -= c->current_loan; value += c->money; - return max(value, (Money)1); + return std::max<Money>(value, 1); } /** @@ -194,15 +194,15 @@ int UpdateCompanyRatingAndValue(Company *c, bool update) /* Generate statistics depending on recent income statistics */ { - int numec = min(c->num_valid_stat_ent, 12); + int numec = std::min<uint>(c->num_valid_stat_ent, 12u); if (numec != 0) { const CompanyEconomyEntry *cee = c->old_economy; Money min_income = cee->income + cee->expenses; Money max_income = cee->income + cee->expenses; do { - min_income = min(min_income, cee->income + cee->expenses); - max_income = max(max_income, cee->income + cee->expenses); + min_income = std::min(min_income, cee->income + cee->expenses); + max_income = std::max(max_income, cee->income + cee->expenses); } while (++cee, --numec); if (min_income > 0) { @@ -215,7 +215,7 @@ int UpdateCompanyRatingAndValue(Company *c, bool update) /* Generate score depending on amount of transported cargo */ { - int numec = min(c->num_valid_stat_ent, 4); + int numec = std::min<uint>(c->num_valid_stat_ent, 4u); if (numec != 0) { const CompanyEconomyEntry *cee = c->old_economy; OverflowSafeInt64 total_delivered = 0; @@ -361,7 +361,7 @@ void ChangeOwnershipOfCompanyItems(Owner old_owner, Owner new_owner) if (HasBit(t->have_ratings, old_owner)) { if (HasBit(t->have_ratings, new_owner)) { /* use max of the two ratings. */ - t->ratings[new_owner] = max(t->ratings[new_owner], t->ratings[old_owner]); + t->ratings[new_owner] = std::max(t->ratings[new_owner], t->ratings[old_owner]); } else { SetBit(t->have_ratings, new_owner); t->ratings[new_owner] = t->ratings[old_owner]; @@ -911,12 +911,12 @@ void StartupEconomy() { _economy.interest_rate = _settings_game.difficulty.initial_interest; _economy.infl_amount = _settings_game.difficulty.initial_interest; - _economy.infl_amount_pr = max(0, _settings_game.difficulty.initial_interest - 1); + _economy.infl_amount_pr = std::max(0, _settings_game.difficulty.initial_interest - 1); _economy.fluct = GB(Random(), 0, 8) + 168; if (_settings_game.economy.inflation) { /* Apply inflation that happened before our game start year. */ - int months = (min(_cur_year, ORIGINAL_MAX_YEAR) - ORIGINAL_BASE_YEAR) * 12; + int months = (std::min(_cur_year, ORIGINAL_MAX_YEAR) - ORIGINAL_BASE_YEAR) * 12; for (int i = 0; i < months; i++) { AddInflation(false); } @@ -973,7 +973,7 @@ Money GetTransportedGoodsIncome(uint num_pieces, uint dist, byte transit_days, C /* Use callback to calculate cargo profit, if available */ if (HasBit(cs->callback_mask, CBM_CARGO_PROFIT_CALC)) { - uint32 var18 = min(dist, 0xFFFF) | (min(num_pieces, 0xFF) << 16) | (transit_days << 24); + uint32 var18 = std::min(dist, 0xFFFFu) | (std::min(num_pieces, 0xFFu) << 16) | (transit_days << 24); uint16 callback = GetCargoCallback(CBID_CARGO_PROFIT_CALC, 0, var18, cs); if (callback != CALLBACK_FAILED) { int result = GB(callback, 0, 14); @@ -993,8 +993,8 @@ Money GetTransportedGoodsIncome(uint num_pieces, uint dist, byte transit_days, C const int days1 = cs->transit_days[0]; const int days2 = cs->transit_days[1]; - const int days_over_days1 = max( transit_days - days1, 0); - const int days_over_days2 = max(days_over_days1 - days2, 0); + const int days_over_days1 = std::max( transit_days - days1, 0); + const int days_over_days2 = std::max(days_over_days1 - days2, 0); /* * The time factor is calculated based on the time it took @@ -1006,7 +1006,7 @@ Money GetTransportedGoodsIncome(uint num_pieces, uint dist, byte transit_days, C * - linear decreasing with time with a slope of -2 for slow transports * */ - const int time_factor = max(MAX_TIME_FACTOR - days_over_days1 - days_over_days2, MIN_TIME_FACTOR); + const int time_factor = std::max(MAX_TIME_FACTOR - days_over_days1 - days_over_days2, MIN_TIME_FACTOR); return BigMulS(dist * time_factor * num_pieces, cs->current_payment, 21); } @@ -1055,7 +1055,7 @@ static uint DeliverGoodsToIndustry(const Station *st, CargoID cargo_type, uint n /* Insert the industry into _cargo_delivery_destinations, if not yet contained */ include(_cargo_delivery_destinations, ind); - uint amount = min(num_pieces, 0xFFFFU - ind->incoming_cargo_waiting[cargo_index]); + uint amount = std::min(num_pieces, 0xFFFFu - ind->incoming_cargo_waiting[cargo_index]); ind->incoming_cargo_waiting[cargo_index] += amount; ind->last_cargo_accepted_at[cargo_index] = _date; num_pieces -= amount; @@ -1150,7 +1150,7 @@ static void TriggerIndustryProduction(Industry *i) if (cargo_waiting == 0) continue; for (uint ci_out = 0; ci_out < lengthof(i->produced_cargo_waiting); ci_out++) { - i->produced_cargo_waiting[ci_out] = min(i->produced_cargo_waiting[ci_out] + (cargo_waiting * indspec->input_cargo_multiplier[ci_in][ci_out] / 256), 0xFFFF); + i->produced_cargo_waiting[ci_out] = std::min(i->produced_cargo_waiting[ci_out] + (cargo_waiting * indspec->input_cargo_multiplier[ci_in][ci_out] / 256), 0xFFFFu); } i->incoming_cargo_waiting[ci_in] = 0; @@ -1317,7 +1317,7 @@ static uint GetLoadAmount(Vehicle *v) if (HasBit(e->info.misc_flags, EF_NO_DEFAULT_CARGO_MULTIPLIER) && !air_mail) load_amount = CeilDiv(load_amount * CargoSpec::Get(v->cargo_type)->multiplier, 0x100); /* Zero load amount breaks a lot of things. */ - return max(1u, load_amount); + return std::max(1u, load_amount); } /** @@ -1596,7 +1596,7 @@ static void UpdateLoadUnloadTicks(Vehicle *front, const Station *st, int ticks) } } /* Always wait at least 1, otherwise we'll wait 'infinitively' long. */ - front->load_unload_ticks = max(1, ticks); + front->load_unload_ticks = std::max(1, ticks); } /** @@ -1657,7 +1657,7 @@ static void LoadUnloadVehicle(Vehicle *front) if (HasBit(v->vehicle_flags, VF_CARGO_UNLOADING) && (front->current_order.GetUnloadType() & OUFB_NO_UNLOAD) == 0) { uint cargo_count = v->cargo.UnloadCount(); - uint amount_unloaded = _settings_game.order.gradual_loading ? min(cargo_count, GetLoadAmount(v)) : cargo_count; + uint amount_unloaded = _settings_game.order.gradual_loading ? std::min(cargo_count, GetLoadAmount(v)) : cargo_count; bool remaining = false; // Are there cargo entities in this vehicle that can still be unloaded here? assert(payment != nullptr); @@ -1753,8 +1753,8 @@ static void LoadUnloadVehicle(Vehicle *front) } /* if last speed is 0, we treat that as if no vehicle has ever visited the station. */ - ge->last_speed = min(t, 255); - ge->last_age = min(_cur_year - front->build_year, 255); + ge->last_speed = std::min(t, 255); + ge->last_age = std::min(_cur_year - front->build_year, 255); assert(v->cargo_cap >= v->cargo.StoredCount()); /* Capacity available for loading more cargo. */ @@ -1768,7 +1768,7 @@ static void LoadUnloadVehicle(Vehicle *front) * has capacity for it, load it on the vehicle. */ if ((v->cargo.ActionCount(VehicleCargoList::MTA_LOAD) > 0 || ge->cargo.AvailableCount() > 0) && MayLoadUnderExclusiveRights(st, v)) { if (v->cargo.StoredCount() == 0) TriggerVehicle(v, VEHICLE_TRIGGER_NEW_CARGO); - if (_settings_game.order.gradual_loading) cap_left = min(cap_left, GetLoadAmount(v)); + if (_settings_game.order.gradual_loading) cap_left = std::min(cap_left, GetLoadAmount(v)); uint loaded = ge->cargo.Load(cap_left, &v->cargo, st->xy, next_station); if (v->cargo.ActionCount(VehicleCargoList::MTA_LOAD) > 0) { @@ -1842,7 +1842,7 @@ static void LoadUnloadVehicle(Vehicle *front) /* We loaded less cargo than possible for all cargo types and it's not full * load and we're not supposed to wait any longer: stop loading. */ if (!anything_unloaded && full_load_amount == 0 && reservation_left == 0 && !(front->current_order.GetLoadType() & OLFB_FULL_LOAD) && - front->current_order_time >= (uint)max(front->current_order.GetTimetabledWait() - front->lateness_counter, 0)) { + front->current_order_time >= (uint)std::max(front->current_order.GetTimetabledWait() - front->lateness_counter, 0)) { SetBit(front->vehicle_flags, VF_STOP_LOADING); } diff --git a/src/elrail.cpp b/src/elrail.cpp index 1e35978af..5d8f2b8f3 100644 --- a/src/elrail.cpp +++ b/src/elrail.cpp @@ -229,7 +229,8 @@ static int GetPCPElevation(TileIndex tile, DiagDirection PCPpos) * Also note that the result of GetSlopePixelZ() is very special on bridge-ramps. */ - int z = GetSlopePixelZ(TileX(tile) * TILE_SIZE + min(x_pcp_offsets[PCPpos], TILE_SIZE - 1), TileY(tile) * TILE_SIZE + min(y_pcp_offsets[PCPpos], TILE_SIZE - 1)); + int z = GetSlopePixelZ(TileX(tile) * TILE_SIZE + std::min<int8>(x_pcp_offsets[PCPpos], TILE_SIZE - 1), + TileY(tile) * TILE_SIZE + std::min<int8>(y_pcp_offsets[PCPpos], TILE_SIZE - 1)); return (z + 2) & ~3; // this means z = (z + TILE_HEIGHT / 4) / (TILE_HEIGHT / 2) * (TILE_HEIGHT / 2); } diff --git a/src/engine.cpp b/src/engine.cpp index 72da8702f..2681b8fa6 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -578,7 +578,7 @@ static void CalcEngineReliability(Engine *e) /* Check for early retirement */ if (e->company_avail != 0 && !_settings_game.vehicle.never_expire_vehicles && e->info.base_life != 0xFF) { int retire_early = e->info.retire_early; - uint retire_early_max_age = max(0, e->duration_phase_1 + e->duration_phase_2 - retire_early * 12); + uint retire_early_max_age = std::max(0, e->duration_phase_1 + e->duration_phase_2 - retire_early * 12); if (retire_early != 0 && age >= retire_early_max_age) { /* Early retirement is enabled and we're past the date... */ e->company_avail = 0; @@ -625,7 +625,7 @@ void SetYearEngineAgingStops() YearMonthDay ymd; ConvertDateToYMD(ei->base_intro + (ei->lifelength * DAYS_IN_LEAP_YEAR) / 2, &ymd); - _year_engine_aging_stops = max(_year_engine_aging_stops, ymd.year); + _year_engine_aging_stops = std::max(_year_engine_aging_stops, ymd.year); } } @@ -693,7 +693,7 @@ void StartupOneEngine(Engine *e, Date aging_date) void StartupEngines() { /* Aging of vehicles stops, so account for that when starting late */ - const Date aging_date = min(_date, ConvertYMDToDate(_year_engine_aging_stops, 0, 1)); + const Date aging_date = std::min(_date, ConvertYMDToDate(_year_engine_aging_stops, 0, 1)); for (Engine *e : Engine::Iterate()) { StartupOneEngine(e, aging_date); @@ -1196,7 +1196,7 @@ void CheckEngines() if ((e->flags & ENGINE_AVAILABLE) != 0 && e->company_avail != 0) return; /* Okay, try to find the earliest date. */ - min_date = min(min_date, e->info.base_intro); + min_date = std::min(min_date, e->info.base_intro); } if (min_date < INT32_MAX) { diff --git a/src/engine_gui.cpp b/src/engine_gui.cpp index b71fa7a6b..77ce95413 100644 --- a/src/engine_gui.cpp +++ b/src/engine_gui.cpp @@ -93,9 +93,9 @@ struct EnginePreviewWindow : Window { case VEH_SHIP: GetShipSpriteSize( engine, x, y, x_offs, y_offs, image_type); break; case VEH_AIRCRAFT: GetAircraftSpriteSize(engine, x, y, x_offs, y_offs, image_type); break; } - this->vehicle_space = max<int>(40, y - y_offs); + this->vehicle_space = std::max<int>(40, y - y_offs); - size->width = max(size->width, x - x_offs); + size->width = std::max(size->width, x - x_offs); SetDParam(0, GetEngineCategoryName(engine)); size->height = GetStringHeight(STR_ENGINE_PREVIEW_MESSAGE, size->width) + WD_PAR_VSEP_WIDE + FONT_HEIGHT_NORMAL + this->vehicle_space; SetDParam(0, engine); diff --git a/src/error_gui.cpp b/src/error_gui.cpp index 381d67a96..f9d88a199 100644 --- a/src/error_gui.cpp +++ b/src/error_gui.cpp @@ -189,7 +189,7 @@ public: CopyInDParam(0, this->decode_params, lengthof(this->decode_params)); if (this->textref_stack_size > 0) StartTextRefStackUsage(this->textref_stack_grffile, this->textref_stack_size, this->textref_stack); - int text_width = max(0, (int)size->width - WD_FRAMETEXT_LEFT - WD_FRAMETEXT_RIGHT); + int text_width = std::max(0, (int)size->width - WD_FRAMETEXT_LEFT - WD_FRAMETEXT_RIGHT); this->height_summary = GetStringHeight(this->summary_msg, text_width); this->height_detailed = (this->detailed_msg == INVALID_STRING_ID) ? 0 : GetStringHeight(this->detailed_msg, text_width); @@ -198,13 +198,13 @@ public: uint panel_height = WD_FRAMERECT_TOP + this->height_summary + WD_FRAMERECT_BOTTOM; if (this->detailed_msg != INVALID_STRING_ID) panel_height += this->height_detailed + WD_PAR_VSEP_WIDE; - size->height = max(size->height, panel_height); + size->height = std::max(size->height, panel_height); break; } case WID_EM_FACE: { Dimension face_size = GetSpriteSize(SPR_GRADIENT); - size->width = max(size->width, face_size.width); - size->height = max(size->height, face_size.height); + size->width = std::max(size->width, face_size.width); + size->height = std::max(size->height, face_size.height); break; } } diff --git a/src/fileio.cpp b/src/fileio.cpp index e49cee58d..d6dee0a3f 100644 --- a/src/fileio.cpp +++ b/src/fileio.cpp @@ -24,7 +24,6 @@ #include <pwd.h> #endif #include <sys/stat.h> -#include <algorithm> #include <array> #include <sstream> @@ -125,7 +124,7 @@ byte FioReadByte() void FioSkipBytes(int n) { for (;;) { - int m = min(_fio.buffer_end - _fio.buffer, n); + int m = std::min<int>(_fio.buffer_end - _fio.buffer, n); _fio.buffer += m; n -= m; if (n == 0) break; @@ -892,7 +891,7 @@ bool ExtractTar(const std::string &tar_filename, Subdirectory subdir) char buffer[4096]; size_t read; for (; to_copy != 0; to_copy -= read) { - read = fread(buffer, 1, min(to_copy, lengthof(buffer)), in.get()); + read = fread(buffer, 1, std::min(to_copy, lengthof(buffer)), in.get()); if (read <= 0 || fwrite(buffer, 1, read, out.get()) != read) break; } diff --git a/src/fontcache.cpp b/src/fontcache.cpp index 4a34a48d4..ec336612a 100644 --- a/src/fontcache.cpp +++ b/src/fontcache.cpp @@ -492,7 +492,7 @@ void FreeTypeFontCache::SetFontSize(FontSize fs, FT_Face face, int pixels) /* Font height is minimum height plus the difference between the default * height for this font size and the small size. */ int diff = scaled_height - ScaleFontTrad(_default_font_height[FS_SMALL]); - pixels = Clamp(min(head->Lowest_Rec_PPEM, 20) + diff, scaled_height, MAX_FONT_SIZE); + pixels = Clamp(std::min<uint>(head->Lowest_Rec_PPEM, 20u) + diff, scaled_height, MAX_FONT_SIZE); } } else { pixels = ScaleFontTrad(pixels); @@ -656,8 +656,8 @@ const Sprite *FreeTypeFontCache::InternalGetGlyph(GlyphID key, bool aa) aa = (slot->bitmap.pixel_mode == FT_PIXEL_MODE_GRAY); /* Add 1 pixel for the shadow on the medium font. Our sprite must be at least 1x1 pixel */ - uint width = max(1U, (uint)slot->bitmap.width + (this->fs == FS_NORMAL)); - uint height = max(1U, (uint)slot->bitmap.rows + (this->fs == FS_NORMAL)); + uint width = std::max(1U, (uint)slot->bitmap.width + (this->fs == FS_NORMAL)); + uint height = std::max(1U, (uint)slot->bitmap.rows + (this->fs == FS_NORMAL)); /* Limit glyph size to prevent overflows later on. */ if (width > 256 || height > 256) usererror("Font glyph is too large"); @@ -797,7 +797,7 @@ void Win32FontCache::SetFontSize(FontSize fs, int pixels) /* Font height is minimum height plus the difference between the default * height for this font size and the small size. */ int diff = scaled_height - ScaleFontTrad(_default_font_height[FS_SMALL]); - pixels = Clamp(min(otm->otmusMinimumPPEM, 20) + diff, scaled_height, MAX_FONT_SIZE); + pixels = Clamp(std::min(otm->otmusMinimumPPEM, 20u) + diff, scaled_height, MAX_FONT_SIZE); SelectObject(dc, old); DeleteObject(temp); @@ -851,7 +851,7 @@ void Win32FontCache::ClearFontCache() MAT2 mat = { {0, 1}, {0, 0}, {0, 0}, {0, 1} }; /* Make a guess for the needed memory size. */ - DWORD size = this->glyph_size.cy * Align(aa ? this->glyph_size.cx : max(this->glyph_size.cx / 8l, 1l), 4); // Bitmap data is DWORD-aligned rows. + DWORD size = this->glyph_size.cy * Align(aa ? this->glyph_size.cx : std::max(this->glyph_size.cx / 8l, 1l), 4); // Bitmap data is DWORD-aligned rows. byte *bmp = AllocaM(byte, size); size = GetGlyphOutline(this->dc, key, GGO_GLYPH_INDEX | (aa ? GGO_GRAY8_BITMAP : GGO_BITMAP), &gm, size, bmp, &mat); @@ -868,8 +868,8 @@ void Win32FontCache::ClearFontCache() } /* Add 1 pixel for the shadow on the medium font. Our sprite must be at least 1x1 pixel. */ - uint width = max(1U, (uint)gm.gmBlackBoxX + (this->fs == FS_NORMAL)); - uint height = max(1U, (uint)gm.gmBlackBoxY + (this->fs == FS_NORMAL)); + uint width = std::max(1U, (uint)gm.gmBlackBoxX + (this->fs == FS_NORMAL)); + uint height = std::max(1U, (uint)gm.gmBlackBoxY + (this->fs == FS_NORMAL)); /* Limit glyph size to prevent overflows later on. */ if (width > 256 || height > 256) usererror("Font glyph is too large"); @@ -889,7 +889,7 @@ void Win32FontCache::ClearFontCache() * For anti-aliased rendering, GDI uses the strange value range of 0 to 64, * inclusively. To map this to 0 to 255, we shift left by two and then * subtract one. */ - uint pitch = Align(aa ? gm.gmBlackBoxX : max(gm.gmBlackBoxX / 8u, 1u), 4); + uint pitch = Align(aa ? gm.gmBlackBoxX : std::max(gm.gmBlackBoxX / 8u, 1u), 4); /* Draw shadow for medium size. */ if (this->fs == FS_NORMAL && !aa) { diff --git a/src/fontdetection.cpp b/src/fontdetection.cpp index 1b1f9d689..fd48bd801 100644 --- a/src/fontdetection.cpp +++ b/src/fontdetection.cpp @@ -222,7 +222,7 @@ static const char *GetEnglishFontName(const ENUMLOGFONTEX *logfont) offset += buf[pos++]; /* Don't buffer overflow */ - length = min(length, MAX_PATH - 1); + length = std::min(length, MAX_PATH - 1); for (uint j = 0; j < length; j++) font_name[j] = buf[stringOffset + offset + j]; font_name[length] = '\0'; diff --git a/src/framerate_gui.cpp b/src/framerate_gui.cpp index d34f59e09..c324fde2e 100644 --- a/src/framerate_gui.cpp +++ b/src/framerate_gui.cpp @@ -76,7 +76,7 @@ namespace { this->prev_index = this->next_index; this->next_index += 1; if (this->next_index >= NUM_FRAMERATE_POINTS) this->next_index = 0; - this->num_valid = min(NUM_FRAMERATE_POINTS, this->num_valid + 1); + this->num_valid = std::min(NUM_FRAMERATE_POINTS, this->num_valid + 1); } /** Begin an accumulation of multiple measurements into a single value, from a given start time */ @@ -87,7 +87,7 @@ namespace { this->prev_index = this->next_index; this->next_index += 1; if (this->next_index >= NUM_FRAMERATE_POINTS) this->next_index = 0; - this->num_valid = min(NUM_FRAMERATE_POINTS, this->num_valid + 1); + this->num_valid = std::min(NUM_FRAMERATE_POINTS, this->num_valid + 1); this->acc_duration = 0; this->acc_timestamp = start_time; @@ -115,7 +115,7 @@ namespace { /** Get average cycle processing time over a number of data points */ double GetAverageDurationMilliseconds(int count) { - count = min(count, this->num_valid); + count = std::min(count, this->num_valid); int first_point = this->prev_index - count; if (first_point < 0) first_point += NUM_FRAMERATE_POINTS; @@ -395,7 +395,7 @@ struct FramerateWindow : Window { { const double threshold_good = target * 0.95; const double threshold_bad = target * 2 / 3; - value = min(9999.99, value); + value = std::min(9999.99, value); this->value = (uint32)(value * 100); this->strid = (value > threshold_good) ? STR_FRAMERATE_FPS_GOOD : (value < threshold_bad) ? STR_FRAMERATE_FPS_BAD : STR_FRAMERATE_FPS_WARN; } @@ -404,7 +404,7 @@ struct FramerateWindow : Window { { const double threshold_good = target / 3; const double threshold_bad = target; - value = min(9999.99, value); + value = std::min(9999.99, value); this->value = (uint32)(value * 100); this->strid = (value < threshold_good) ? STR_FRAMERATE_MS_GOOD : (value > threshold_bad) ? STR_FRAMERATE_MS_BAD : STR_FRAMERATE_MS_WARN; } @@ -422,8 +422,8 @@ struct FramerateWindow : Window { CachedDecimal times_shortterm[PFE_MAX]; ///< cached short term average times CachedDecimal times_longterm[PFE_MAX]; ///< cached long term average times - static const int VSPACING = 3; ///< space between column heading and values - static const int MIN_ELEMENTS = 5; ///< smallest number of elements to display + static constexpr int VSPACING = 3; ///< space between column heading and values + static constexpr int MIN_ELEMENTS = 5; ///< smallest number of elements to display FramerateWindow(WindowDesc *desc, WindowNumber number) : Window(desc) { @@ -435,7 +435,7 @@ struct FramerateWindow : Window { this->next_update.SetInterval(100); /* Window is always initialised to MIN_ELEMENTS height, resize to contain num_displayed */ - ResizeWindow(this, 0, (max(MIN_ELEMENTS, this->num_displayed) - MIN_ELEMENTS) * FONT_HEIGHT_NORMAL); + ResizeWindow(this, 0, (std::max(MIN_ELEMENTS, this->num_displayed) - MIN_ELEMENTS) * FONT_HEIGHT_NORMAL); } void OnRealtimeTick(uint delta_ms) override @@ -486,7 +486,7 @@ struct FramerateWindow : Window { this->num_active = new_active; Scrollbar *sb = this->GetScrollbar(WID_FRW_SCROLLBAR); sb->SetCount(this->num_active); - sb->SetCapacity(min(this->num_displayed, this->num_active)); + sb->SetCapacity(std::min(this->num_displayed, this->num_active)); this->ReInit(); } } @@ -555,7 +555,7 @@ struct FramerateWindow : Window { SetDParamStr(1, GetAIName(e - PFE_AI0)); line_size = GetStringBoundingBox(STR_FRAMERATE_AI); } - size->width = max(size->width, line_size.width); + size->width = std::max(size->width, line_size.width); } break; } @@ -567,7 +567,7 @@ struct FramerateWindow : Window { SetDParam(0, 999999); SetDParam(1, 2); Dimension item_size = GetStringBoundingBox(STR_FRAMERATE_MS_GOOD); - size->width = max(size->width, item_size.width); + size->width = std::max(size->width, item_size.width); size->height += FONT_HEIGHT_NORMAL * MIN_ELEMENTS + VSPACING; resize->width = 0; resize->height = FONT_HEIGHT_NORMAL; @@ -769,7 +769,7 @@ struct FrametimeGraphWindow : Window { Dimension size_s_label = GetStringBoundingBox(STR_FRAMERATE_GRAPH_SECONDS); /* Size graph in height to fit at least 10 vertical labels with space between, or at least 100 pixels */ - graph_size.height = max<uint>(100, 10 * (size_ms_label.height + 1)); + graph_size.height = std::max(100u, 10 * (size_ms_label.height + 1)); /* Always 2:1 graph area */ graph_size.width = 2 * graph_size.height; *size = graph_size; @@ -980,7 +980,7 @@ struct FrametimeGraphWindow : Window { TextColour tc_peak = (TextColour)(TC_IS_PALETTE_COLOUR | c_peak); GfxFillRect(peak_point.x - 1, peak_point.y - 1, peak_point.x + 1, peak_point.y + 1, c_peak); SetDParam(0, peak_value * 1000 / TIMESTAMP_PRECISION); - int label_y = max(y_max, peak_point.y - FONT_HEIGHT_SMALL); + int label_y = std::max(y_max, peak_point.y - FONT_HEIGHT_SMALL); if (peak_point.x - x_zero > (int)this->graph_size.width / 2) { DrawString(x_zero, peak_point.x - 2, label_y, STR_FRAMERATE_GRAPH_MILLISECONDS, tc_peak, SA_RIGHT | SA_FORCE, false, FS_SMALL); } else { diff --git a/src/gamelog.cpp b/src/gamelog.cpp index d1a9ab038..1a4998e40 100644 --- a/src/gamelog.cpp +++ b/src/gamelog.cpp @@ -814,7 +814,7 @@ void GamelogInfo(LoggedAction *gamelog_action, uint gamelog_actions, uint32 *las case GLCT_REVISION: *last_ottd_rev = lc->revision.newgrf; - *ever_modified = max(*ever_modified, lc->revision.modified); + *ever_modified = std::max(*ever_modified, lc->revision.modified); break; case GLCT_GRFREM: diff --git a/src/genworld_gui.cpp b/src/genworld_gui.cpp index 37f3962ec..54ca0bc86 100644 --- a/src/genworld_gui.cpp +++ b/src/genworld_gui.cpp @@ -513,7 +513,7 @@ struct GenerateLandscapeWindow : public Window { } } size->width += padding.width; - size->height = max(size->height, (uint)(FONT_HEIGHT_NORMAL + WD_DROPDOWNTEXT_TOP + WD_DROPDOWNTEXT_BOTTOM)); + size->height = std::max(size->height, (uint)(FONT_HEIGHT_NORMAL + WD_DROPDOWNTEXT_TOP + WD_DROPDOWNTEXT_BOTTOM)); } void DrawWidget(const Rect &r, int widget) const override @@ -1214,7 +1214,7 @@ struct GenerateProgressWindow : public Window { case WID_GP_PROGRESS_TEXT: for (uint i = 0; i < GWP_CLASS_COUNT; i++) { - size->width = max(size->width, GetStringBoundingBox(_generation_class_table[i]).width); + size->width = std::max(size->width, GetStringBoundingBox(_generation_class_table[i]).width); } size->height = FONT_HEIGHT_NORMAL * 2 + WD_PAR_VSEP_NORMAL; break; diff --git a/src/gfx.cpp b/src/gfx.cpp index c0a2efc31..54851d375 100644 --- a/src/gfx.cpp +++ b/src/gfx.cpp @@ -263,8 +263,8 @@ void GfxFillPolygon(const std::vector<Point> &shape, int colour, FillRectMode mo std::sort(intersections.begin(), intersections.end()); for (size_t i = 1; i < intersections.size(); i += 2) { /* Check clipping. */ - const int x1 = max(0, intersections[i - 1]); - const int x2 = min(intersections[i], dpi->width); + const int x1 = std::max(0, intersections[i - 1]); + const int x2 = std::min(intersections[i], dpi->width); if (x2 < 0) continue; if (x1 >= dpi->width) continue; @@ -327,7 +327,7 @@ static inline void GfxDoDrawLine(void *video, int x, int y, int x2, int y2, int /* prevent integer overflows. */ int margin = 1; - while (INT_MAX / abs(grade_y) < max(abs(clip.left - x), abs(clip.right - x))) { + while (INT_MAX / abs(grade_y) < std::max(abs(clip.left - x), abs(clip.right - x))) { grade_y /= 2; grade_x /= 2; margin *= 2; // account for rounding errors @@ -636,7 +636,7 @@ static int DrawLayoutLine(const ParagraphLayouter::Line &line, int y, int left, int DrawString(int left, int right, int top, const char *str, TextColour colour, StringAlignment align, bool underline, FontSize fontsize) { /* The string may contain control chars to change the font, just use the biggest font for clipping. */ - int max_height = max(max(FONT_HEIGHT_SMALL, FONT_HEIGHT_NORMAL), max(FONT_HEIGHT_LARGE, FONT_HEIGHT_MONO)); + int max_height = std::max({FONT_HEIGHT_SMALL, FONT_HEIGHT_NORMAL, FONT_HEIGHT_LARGE, FONT_HEIGHT_MONO}); /* Funny glyphs may extent outside the usual bounds, so relax the clipping somewhat. */ int extra = max_height / 2; @@ -916,8 +916,8 @@ Dimension GetSpriteSize(SpriteID sprid, Point *offset, ZoomLevel zoom) } Dimension d; - d.width = max<int>(0, UnScaleByZoom(sprite->x_offs + sprite->width, zoom)); - d.height = max<int>(0, UnScaleByZoom(sprite->y_offs + sprite->height, zoom)); + d.width = std::max<int>(0, UnScaleByZoom(sprite->x_offs + sprite->width, zoom)); + d.height = std::max<int>(0, UnScaleByZoom(sprite->y_offs + sprite->height, zoom)); return d; } @@ -1024,10 +1024,10 @@ static void GfxBlitter(const Sprite * const sprite, int x, int y, BlitterMode mo bp.height = UnScaleByZoom(sprite->height, zoom); } else { /* Amount of pixels to clip from the source sprite */ - int clip_left = max(0, -sprite->x_offs + sub->left * ZOOM_BASE ); - int clip_top = max(0, -sprite->y_offs + sub->top * ZOOM_BASE ); - int clip_right = max(0, sprite->width - (-sprite->x_offs + (sub->right + 1) * ZOOM_BASE)); - int clip_bottom = max(0, sprite->height - (-sprite->y_offs + (sub->bottom + 1) * ZOOM_BASE)); + int clip_left = std::max(0, -sprite->x_offs + sub->left * ZOOM_BASE ); + int clip_top = std::max(0, -sprite->y_offs + sub->top * ZOOM_BASE ); + int clip_right = std::max(0, sprite->width - (-sprite->x_offs + (sub->right + 1) * ZOOM_BASE)); + int clip_bottom = std::max(0, sprite->height - (-sprite->y_offs + (sub->bottom + 1) * ZOOM_BASE)); if (clip_left + clip_right >= sprite->width) return; if (clip_top + clip_bottom >= sprite->height) return; @@ -1305,7 +1305,7 @@ byte GetDigitWidth(FontSize size) { byte width = 0; for (char c = '0'; c <= '9'; c++) { - width = max(GetCharacterWidth(size, c), width); + width = std::max(GetCharacterWidth(size, c), width); } return width; } @@ -1695,8 +1695,8 @@ void UpdateCursorSize() _cursor.total_offs = offs; _cursor.total_size = size; } else { - int right = max(_cursor.total_offs.x + _cursor.total_size.x, offs.x + size.x); - int bottom = max(_cursor.total_offs.y + _cursor.total_size.y, offs.y + size.y); + int right = std::max(_cursor.total_offs.x + _cursor.total_size.x, offs.x + size.x); + int bottom = std::max(_cursor.total_offs.y + _cursor.total_size.y, offs.y + size.y); if (offs.x < _cursor.total_offs.x) _cursor.total_offs.x = offs.x; if (offs.y < _cursor.total_offs.y) _cursor.total_offs.y = offs.y; _cursor.total_size.x = right - _cursor.total_offs.x; diff --git a/src/gfx_layout.cpp b/src/gfx_layout.cpp index ebd1afaa8..9f1f2742a 100644 --- a/src/gfx_layout.cpp +++ b/src/gfx_layout.cpp @@ -431,7 +431,7 @@ int FallbackParagraphLayout::FallbackLine::GetLeading() const { int leading = 0; for (const auto &run : *this) { - leading = max(leading, run.GetLeading()); + leading = std::max(leading, run.GetLeading()); } return leading; @@ -747,7 +747,7 @@ Dimension Layouter::GetBounds() { Dimension d = { 0, 0 }; for (const auto &l : *this) { - d.width = max<uint>(d.width, l->GetWidth()); + d.width = std::max<uint>(d.width, l->GetWidth()); d.height += l->GetLeading(); } return d; diff --git a/src/gfxinit.cpp b/src/gfxinit.cpp index f4d1a7b03..7c4b49cdf 100644 --- a/src/gfxinit.cpp +++ b/src/gfxinit.cpp @@ -405,7 +405,7 @@ MD5File::ChecksumResult MD5File::CheckMD5(Subdirectory subdir, size_t max_size) if (f == nullptr) return CR_NO_FILE; - size = min(size, max_size); + size = std::min(size, max_size); Md5 checksum; uint8 buffer[1024]; diff --git a/src/goal_gui.cpp b/src/goal_gui.cpp index 554ac5630..b51c488a1 100644 --- a/src/goal_gui.cpp +++ b/src/goal_gui.cpp @@ -291,7 +291,7 @@ struct GoalListWindow : public Window { } NWidgetBase *wid = this->GetWidget<NWidgetBase>(WID_GOAL_LIST); - uint progress_col_width = min(max_width, wid->current_x); + uint progress_col_width = std::min(max_width, wid->current_x); /* Draw goal list. */ this->DrawListColumn(GC_PROGRESS, wid, progress_col_width); diff --git a/src/graph_gui.cpp b/src/graph_gui.cpp index 3d6d2a3a3..2578c73f3 100644 --- a/src/graph_gui.cpp +++ b/src/graph_gui.cpp @@ -110,7 +110,7 @@ struct GraphLegendWindow : Window { static NWidgetBase *MakeNWidgetCompanyLines(int *biggest_index) { NWidgetVertical *vert = new NWidgetVertical(); - uint line_height = max<uint>(GetSpriteSize(SPR_COMPANY_ICON).height, FONT_HEIGHT_NORMAL) + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM; + uint line_height = std::max<uint>(GetSpriteSize(SPR_COMPANY_ICON).height, FONT_HEIGHT_NORMAL) + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM; for (int widnum = WID_GL_FIRST_COMPANY; widnum <= WID_GL_LAST_COMPANY; widnum++) { NWidgetBackground *panel = new NWidgetBackground(WWT_PANEL, COLOUR_GREY, widnum); @@ -212,8 +212,8 @@ protected: OverflowSafeInt64 datapoint = this->cost[i][j]; if (datapoint != INVALID_DATAPOINT) { - current_interval.highest = max(current_interval.highest, datapoint); - current_interval.lowest = min(current_interval.lowest, datapoint); + current_interval.highest = std::max(current_interval.highest, datapoint); + current_interval.lowest = std::min(current_interval.lowest, datapoint); } } } @@ -240,7 +240,7 @@ protected: /* Get the required grid size for each side and use the maximum one. */ int64 grid_size_higher = (abs_higher > 0) ? ((int64)abs_higher + num_pos_grids - 1) / num_pos_grids : 0; int64 grid_size_lower = (abs_lower > 0) ? ((int64)abs_lower + num_hori_lines - num_pos_grids - 1) / (num_hori_lines - num_pos_grids) : 0; - grid_size = max(grid_size_higher, grid_size_lower); + grid_size = std::max(grid_size_higher, grid_size_lower); } else { /* If both values are zero, show an empty graph. */ num_pos_grids = num_hori_lines / 2; @@ -435,7 +435,7 @@ protected: * least significant bits are removed. */ int mult_range = FindLastBit(x_axis_offset) + FindLastBit(abs(datapoint)); - int reduce_range = max(mult_range - 31, 0); + int reduce_range = std::max(mult_range - 31, 0); /* Handle negative values differently (don't shift sign) */ if (datapoint < 0) { @@ -496,7 +496,7 @@ public: SetDParam(0, month + STR_MONTH_ABBREV_JAN); SetDParam(1, month + STR_MONTH_ABBREV_JAN + 2); SetDParam(2, year); - x_label_width = max(x_label_width, GetStringBoundingBox(month == 0 ? STR_GRAPH_X_LABEL_MONTH_YEAR : STR_GRAPH_X_LABEL_MONTH).width); + x_label_width = std::max(x_label_width, GetStringBoundingBox(month == 0 ? STR_GRAPH_X_LABEL_MONTH_YEAR : STR_GRAPH_X_LABEL_MONTH).width); month += 3; if (month >= 12) { @@ -514,9 +514,9 @@ public: SetDParam(1, INT64_MAX); uint y_label_width = GetStringBoundingBox(STR_GRAPH_Y_LABEL).width; - size->width = max<uint>(size->width, 5 + y_label_width + this->num_on_x_axis * (x_label_width + 5) + 9); - size->height = max<uint>(size->height, 5 + (1 + MIN_GRAPH_NUM_LINES_Y * 2 + (this->month != 0xFF ? 3 : 1)) * FONT_HEIGHT_SMALL + 4); - size->height = max<uint>(size->height, size->width / 3); + size->width = std::max<uint>(size->width, 5 + y_label_width + this->num_on_x_axis * (x_label_width + 5) + 9); + size->height = std::max<uint>(size->height, 5 + (1 + MIN_GRAPH_NUM_LINES_Y * 2 + (this->month != 0xFF ? 3 : 1)) * FONT_HEIGHT_SMALL + 4); + size->height = std::max<uint>(size->height, size->width / 3); } void DrawWidget(const Rect &r, int widget) const override @@ -568,7 +568,7 @@ public: byte nums = 0; for (const Company *c : Company::Iterate()) { - nums = min(this->num_vert_lines, max(nums, c->num_valid_stat_ent)); + nums = std::min(this->num_vert_lines, std::max(nums, c->num_valid_stat_ent)); } int mo = (_cur_month / 3 - nums) * 3; @@ -1115,7 +1115,7 @@ static const StringID _performance_titles[] = { static inline StringID GetPerformanceTitleFromValue(uint value) { - return _performance_titles[minu(value, 1000) >> 6]; + return _performance_titles[std::min(value, 1000u) >> 6]; } class CompanyLeagueWindow : public Window { @@ -1199,7 +1199,7 @@ public: this->ordinal_width = 0; for (uint i = 0; i < MAX_COMPANIES; i++) { - this->ordinal_width = max(this->ordinal_width, GetStringBoundingBox(STR_ORDINAL_NUMBER_1ST + i).width); + this->ordinal_width = std::max(this->ordinal_width, GetStringBoundingBox(STR_ORDINAL_NUMBER_1ST + i).width); } this->ordinal_width += 5; // Keep some extra spacing @@ -1215,13 +1215,13 @@ public: Dimension d = GetSpriteSize(SPR_COMPANY_ICON); this->icon_width = d.width + 2; - this->line_height = max<int>(d.height + 2, FONT_HEIGHT_NORMAL); + this->line_height = std::max<int>(d.height + 2, FONT_HEIGHT_NORMAL); for (const Company *c : Company::Iterate()) { SetDParam(0, c->index); SetDParam(1, c->index); SetDParam(2, _performance_titles[widest_title]); - widest_width = max(widest_width, GetStringBoundingBox(STR_COMPANY_LEAGUE_COMPANY_NAME).width); + widest_width = std::max(widest_width, GetStringBoundingBox(STR_COMPANY_LEAGUE_COMPANY_NAME).width); } this->text_width = widest_width + 30; // Keep some extra spacing @@ -1321,7 +1321,7 @@ struct PerformanceRatingDetailWindow : Window { uint score_info_width = 0; for (uint i = SCORE_BEGIN; i < SCORE_END; i++) { - score_info_width = max(score_info_width, GetStringBoundingBox(STR_PERFORMANCE_DETAIL_VEHICLES + i).width); + score_info_width = std::max(score_info_width, GetStringBoundingBox(STR_PERFORMANCE_DETAIL_VEHICLES + i).width); } SetDParamMaxValue(0, 1000); score_info_width += GetStringBoundingBox(STR_BLACK_COMMA).width + WD_FRAMERECT_LEFT; diff --git a/src/ground_vehicle.cpp b/src/ground_vehicle.cpp index 0f1915c96..f6e44c2e2 100644 --- a/src/ground_vehicle.cpp +++ b/src/ground_vehicle.cpp @@ -38,7 +38,7 @@ void GroundVehicle<T, Type>::PowerChanged() /* Get minimum max speed for this track. */ uint16 track_speed = u->GetMaxTrackSpeed(); - if (track_speed > 0) max_track_speed = min(max_track_speed, track_speed); + if (track_speed > 0) max_track_speed = std::min(max_track_speed, track_speed); } byte air_drag; @@ -48,7 +48,7 @@ void GroundVehicle<T, Type>::PowerChanged() if (air_drag_value == 0) { uint16 max_speed = v->GetDisplayMaxSpeed(); /* Simplification of the method used in TTDPatch. It uses <= 10 to change more steadily from 128 to 196. */ - air_drag = (max_speed <= 10) ? 192 : max(2048 / max_speed, 1); + air_drag = (max_speed <= 10) ? 192 : std::max(2048 / max_speed, 1); } else { /* According to the specs, a value of 0x01 in the air drag property means "no air drag". */ air_drag = (air_drag_value == 1) ? 0 : air_drag_value; @@ -89,7 +89,7 @@ void GroundVehicle<T, Type>::CargoChanged() } /* Store consist weight in cache. */ - this->gcache.cached_weight = max<uint32>(1, weight); + this->gcache.cached_weight = std::max(1u, weight); /* Friction in bearings and other mechanical parts is 0.1% of the weight (result in N). */ this->gcache.cached_axle_resistance = 10 * weight; @@ -162,8 +162,8 @@ int GroundVehicle<T, Type>::GetAcceleration() const } } else { /* "Kickoff" acceleration. */ - force = (mode == AS_ACCEL && !maglev) ? min(max_te, power) : power; - force = max(force, (mass * 8) + resistance); + force = (mode == AS_ACCEL && !maglev) ? std::min<int>(max_te, power) : power; + force = std::max(force, (mass * 8) + resistance); } if (mode == AS_ACCEL) { @@ -176,9 +176,9 @@ int GroundVehicle<T, Type>::GetAcceleration() const * a hill will never speed up enough to (eventually) get back to the * same (maximum) speed. */ int accel = ClampToI32((force - resistance) / (mass * 4)); - return force < resistance ? min(-1, accel) : max(1, accel); + return force < resistance ? std::min(-1, accel) : std::max(1, accel); } else { - return ClampToI32(min(-force - resistance, -10000) / mass); + return ClampToI32(std::min<int64>(-force - resistance, -10000) / mass); } } diff --git a/src/ground_vehicle.hpp b/src/ground_vehicle.hpp index af6e25c80..15aac1f36 100644 --- a/src/ground_vehicle.hpp +++ b/src/ground_vehicle.hpp @@ -369,7 +369,7 @@ protected: * somewhat gradually. But never lower than the maximum speed. */ int tempmax = max_speed; if (this->cur_speed > max_speed) { - tempmax = max(this->cur_speed - (this->cur_speed / 10) - 1, max_speed); + tempmax = std::max(this->cur_speed - (this->cur_speed / 10) - 1, max_speed); } /* Enforce a maximum and minimum speed. Normally we would use something like @@ -377,7 +377,7 @@ protected: * threshold for some reason. That makes acceleration fail and assertions * happen in Clamp. So make it explicit that min_speed overrules the maximum * speed by explicit ordering of min and max. */ - this->cur_speed = spd = max(min(this->cur_speed + ((int)spd >> 8), tempmax), min_speed); + this->cur_speed = spd = std::max(std::min(this->cur_speed + ((int)spd >> 8), tempmax), min_speed); int scaled_spd = this->GetAdvanceSpeed(spd); diff --git a/src/group_gui.cpp b/src/group_gui.cpp index 8ef6a2a1b..2ab2a5b51 100644 --- a/src/group_gui.cpp +++ b/src/group_gui.cpp @@ -205,14 +205,14 @@ private: this->tiny_step_height = this->column_size[VGC_FOLD].height; this->column_size[VGC_NAME] = maxdim(GetStringBoundingBox(STR_GROUP_DEFAULT_TRAINS + this->vli.vtype), GetStringBoundingBox(STR_GROUP_ALL_TRAINS + this->vli.vtype)); - this->column_size[VGC_NAME].width = max(170u, this->column_size[VGC_NAME].width); - this->tiny_step_height = max(this->tiny_step_height, this->column_size[VGC_NAME].height); + this->column_size[VGC_NAME].width = std::max(170u, this->column_size[VGC_NAME].width); + this->tiny_step_height = std::max(this->tiny_step_height, this->column_size[VGC_NAME].height); this->column_size[VGC_PROTECT] = GetSpriteSize(SPR_GROUP_REPLACE_PROTECT); - this->tiny_step_height = max(this->tiny_step_height, this->column_size[VGC_PROTECT].height); + this->tiny_step_height = std::max(this->tiny_step_height, this->column_size[VGC_PROTECT].height); this->column_size[VGC_AUTOREPLACE] = GetSpriteSize(SPR_GROUP_REPLACE_ACTIVE); - this->tiny_step_height = max(this->tiny_step_height, this->column_size[VGC_AUTOREPLACE].height); + this->tiny_step_height = std::max(this->tiny_step_height, this->column_size[VGC_AUTOREPLACE].height); this->column_size[VGC_PROFIT].width = 0; this->column_size[VGC_PROFIT].height = 0; @@ -221,13 +221,13 @@ private: Dimension d = GetSpriteSize(profit_sprites[i]); this->column_size[VGC_PROFIT] = maxdim(this->column_size[VGC_PROFIT], d); } - this->tiny_step_height = max(this->tiny_step_height, this->column_size[VGC_PROFIT].height); + this->tiny_step_height = std::max(this->tiny_step_height, this->column_size[VGC_PROFIT].height); int num_vehicle = GetGroupNumVehicle(this->vli.company, ALL_GROUP, this->vli.vtype); SetDParamMaxValue(0, num_vehicle, 3, FS_SMALL); SetDParamMaxValue(1, num_vehicle, 3, FS_SMALL); this->column_size[VGC_NUMBER] = GetStringBoundingBox(STR_GROUP_COUNT_WITH_SUBGROUP); - this->tiny_step_height = max(this->tiny_step_height, this->column_size[VGC_NUMBER].height); + this->tiny_step_height = std::max(this->tiny_step_height, this->column_size[VGC_NUMBER].height); this->tiny_step_height += WD_MATRIX_TOP; @@ -390,9 +390,9 @@ public: /* ... minus the buttons at the bottom ... */ uint max_icon_height = GetSpriteSize(this->GetWidget<NWidgetCore>(WID_GL_CREATE_GROUP)->widget_data).height; - max_icon_height = max(max_icon_height, GetSpriteSize(this->GetWidget<NWidgetCore>(WID_GL_RENAME_GROUP)->widget_data).height); - max_icon_height = max(max_icon_height, GetSpriteSize(this->GetWidget<NWidgetCore>(WID_GL_DELETE_GROUP)->widget_data).height); - max_icon_height = max(max_icon_height, GetSpriteSize(this->GetWidget<NWidgetCore>(WID_GL_REPLACE_PROTECTION)->widget_data).height); + max_icon_height = std::max(max_icon_height, GetSpriteSize(this->GetWidget<NWidgetCore>(WID_GL_RENAME_GROUP)->widget_data).height); + max_icon_height = std::max(max_icon_height, GetSpriteSize(this->GetWidget<NWidgetCore>(WID_GL_DELETE_GROUP)->widget_data).height); + max_icon_height = std::max(max_icon_height, GetSpriteSize(this->GetWidget<NWidgetCore>(WID_GL_REPLACE_PROTECTION)->widget_data).height); /* ... minus the height of the group info ... */ max_icon_height += (FONT_HEIGHT_NORMAL * 3) + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM; @@ -601,7 +601,7 @@ public: case WID_GL_LIST_GROUP: { int y1 = r.top + WD_FRAMERECT_TOP; - int max = min(this->group_sb->GetPosition() + this->group_sb->GetCapacity(), (uint)this->groups.size()); + int max = std::min<size_t>(this->group_sb->GetPosition() + this->group_sb->GetCapacity(), this->groups.size()); for (int i = this->group_sb->GetPosition(); i < max; ++i) { const Group *g = this->groups[i]; @@ -625,7 +625,7 @@ public: if (this->vli.index != ALL_GROUP && this->grouping == GB_NONE) { /* Mark vehicles which are in sub-groups (only if we are not using shared order coalescing) */ int y = r.top; - uint max = min(this->vscroll->GetPosition() + this->vscroll->GetCapacity(), static_cast<uint>(this->vehgroups.size())); + uint max = static_cast<uint>(std::min<size_t>(this->vscroll->GetPosition() + this->vscroll->GetCapacity(), this->vehgroups.size())); for (uint i = this->vscroll->GetPosition(); i < max; ++i) { const Vehicle *v = this->vehgroups[i].GetSingleVehicle(); if (v->group_id != this->vli.index) { diff --git a/src/highscore.cpp b/src/highscore.cpp index 187df028b..4c5b6b1aa 100644 --- a/src/highscore.cpp +++ b/src/highscore.cpp @@ -43,7 +43,7 @@ static const StringID _endgame_perf_titles[] = { StringID EndGameGetPerformanceTitleFromValue(uint value) { - value = minu(value / 64, lengthof(_endgame_perf_titles) - 1); + value = std::min<uint>(value / 64, lengthof(_endgame_perf_titles) - 1); return _endgame_perf_titles[value]; } @@ -132,7 +132,7 @@ void SaveToHighScore() for (i = 0; i < SP_SAVED_HIGHSCORE_END; i++) { for (hs = _highscore_table[i]; hs != endof(_highscore_table[i]); hs++) { /* First character is a command character, so strlen will fail on that */ - byte length = min(sizeof(hs->company), StrEmpty(hs->company) ? 0 : (int)strlen(&hs->company[1]) + 1); + byte length = std::min(sizeof(hs->company), StrEmpty(hs->company) ? 0 : strlen(&hs->company[1]) + 1); if (fwrite(&length, sizeof(length), 1, fp) != 1 || // write away string length fwrite(hs->company, length, 1, fp) > 1 || // Yes... could be 0 bytes too @@ -163,7 +163,7 @@ void LoadFromHighScore() for (hs = _highscore_table[i]; hs != endof(_highscore_table[i]); hs++) { byte length; if (fread(&length, sizeof(length), 1, fp) != 1 || - fread(hs->company, min<int>(lengthof(hs->company), length), 1, fp) > 1 || // Yes... could be 0 bytes too + fread(hs->company, std::min<int>(lengthof(hs->company), length), 1, fp) > 1 || // Yes... could be 0 bytes too fread(&hs->score, sizeof(hs->score), 1, fp) != 1 || fseek(fp, 2, SEEK_CUR) == -1) { // XXX - placeholder for hs->title, not saved anymore; compatibility DEBUG(misc, 1, "Highscore corrupted"); diff --git a/src/highscore_gui.cpp b/src/highscore_gui.cpp index 68b823966..cc27501af 100644 --- a/src/highscore_gui.cpp +++ b/src/highscore_gui.cpp @@ -58,7 +58,7 @@ struct EndGameHighScoreBaseWindow : Window { /** Return the coordinate of the screen such that a window of 640x480 is centered at the screen. */ Point GetTopLeft(int x, int y) { - Point pt = {max(0, (_screen.width / 2) - (x / 2)), max(0, (_screen.height / 2) - (y / 2))}; + Point pt = {std::max(0, (_screen.width / 2) - (x / 2)), std::max(0, (_screen.height / 2) - (y / 2))}; return pt; } diff --git a/src/industry.h b/src/industry.h index ea4d704a8..401051d5a 100644 --- a/src/industry.h +++ b/src/industry.h @@ -10,7 +10,6 @@ #ifndef INDUSTRY_H #define INDUSTRY_H -#include <algorithm> #include "newgrf_storage.h" #include "subsidy_type.h" #include "industry_map.h" diff --git a/src/industry_cmd.cpp b/src/industry_cmd.cpp index 816146212..8696e3440 100644 --- a/src/industry_cmd.cpp +++ b/src/industry_cmd.cpp @@ -531,7 +531,7 @@ static bool TransportIndustryGoods(TileIndex tile) bool moved_cargo = false; for (uint j = 0; j < lengthof(i->produced_cargo_waiting); j++) { - uint cw = min(i->produced_cargo_waiting[j], 255); + uint cw = std::min<uint>(i->produced_cargo_waiting[j], 255u); if (cw > indspec->minimal_cargo && i->produced_cargo[j] != CT_INVALID) { i->produced_cargo_waiting[j] -= cw; @@ -1032,7 +1032,7 @@ static void PlantFarmField(TileIndex tile, IndustryID industry) uint size_x = GB(r, 0, 8); uint size_y = GB(r, 8, 8); - TileArea ta(tile - TileDiffXY(min(TileX(tile), size_x / 2), min(TileY(tile), size_y / 2)), size_x, size_y); + TileArea ta(tile - TileDiffXY(std::min(TileX(tile), size_x / 2), std::min(TileY(tile), size_y / 2)), size_x, size_y); ta.ClampToMap(); if (ta.w == 0 || ta.h == 0) return; @@ -1121,7 +1121,7 @@ static void ChopLumberMillTrees(Industry *i) TileIndex tile = i->location.tile; if (CircularTileSearch(&tile, 40, SearchLumberMillTrees, nullptr)) { // 40x40 tiles to search. - i->produced_cargo_waiting[0] = min(0xffff, i->produced_cargo_waiting[0] + 45); // Found a tree, add according value to waiting cargo. + i->produced_cargo_waiting[0] = std::min(0xffff, i->produced_cargo_waiting[0] + 45); // Found a tree, add according value to waiting cargo. } } @@ -1153,7 +1153,7 @@ static void ProduceIndustryGoods(Industry *i) IndustryBehaviour indbehav = indsp->behaviour; for (size_t j = 0; j < lengthof(i->produced_cargo_waiting); j++) { - i->produced_cargo_waiting[j] = min(0xffff, i->produced_cargo_waiting[j] + i->production_rate[j]); + i->produced_cargo_waiting[j] = std::min(0xffff, i->produced_cargo_waiting[j] + i->production_rate[j]); } if ((indbehav & INDUSTRYBEH_PLANT_FIELDS) != 0) { @@ -1743,7 +1743,7 @@ static void DoCreateNewIndustry(Industry *i, TileIndex tile, IndustryType type, /* Randomize inital production if non-original economy is used and there are no production related callbacks. */ if (!indspec->UsesOriginalEconomy()) { for (size_t ci = 0; ci < lengthof(i->production_rate); ci++) { - i->production_rate[ci] = min((RandomRange(256) + 128) * i->production_rate[ci] >> 8, 255); + i->production_rate[ci] = std::min((RandomRange(256) + 128) * i->production_rate[ci] >> 8, 255u); } } @@ -2208,7 +2208,7 @@ static uint GetNumberOfIndustries() assert(lengthof(numof_industry_table) == ID_END); uint difficulty = (_game_mode != GM_EDITOR) ? _settings_game.difficulty.industry_density : (uint)ID_VERY_LOW; - return min(IndustryPool::MAX_SIZE, ScaleByMapSize(numof_industry_table[difficulty])); + return std::min<uint>(IndustryPool::MAX_SIZE, ScaleByMapSize(numof_industry_table[difficulty])); } /** @@ -2284,7 +2284,7 @@ void IndustryBuildData::MonthlyLoop() /* To prevent running out of unused industries for the player to connect, * add a fraction of new industries each month, but only if the manager can keep up. */ - uint max_behind = 1 + min(99u, ScaleByMapSize(3)); // At most 2 industries for small maps, and 100 at the biggest map (about 6 months industry build attempts). + uint max_behind = 1 + std::min(99u, ScaleByMapSize(3)); // At most 2 industries for small maps, and 100 at the biggest map (about 6 months industry build attempts). if (GetCurrentTotalNumberOfIndustries() + max_behind >= (this->wanted_inds >> 16)) { this->wanted_inds += ScaleByMapSize(NEWINDS_PER_MONTH); } @@ -2352,7 +2352,7 @@ static void UpdateIndustryStatistics(Industry *i) byte pct = 0; if (i->this_month_production[j] != 0) { i->last_prod_year = _cur_year; - pct = min(i->this_month_transported[j] * 256 / i->this_month_production[j], 255); + pct = std::min(i->this_month_transported[j] * 256 / i->this_month_production[j], 255); } i->last_month_pct_transported[j] = pct; @@ -2376,7 +2376,7 @@ void Industry::RecomputeProductionMultipliers() /* Rates are rounded up, so e.g. oilrig always produces some passengers */ for (size_t i = 0; i < lengthof(this->production_rate); i++) { - this->production_rate[i] = min(CeilDiv(indspec->production_rate[i] * this->prod_level, PRODLEVEL_DEFAULT), 0xFF); + this->production_rate[i] = std::min(CeilDiv(indspec->production_rate[i] * this->prod_level, PRODLEVEL_DEFAULT), 0xFFu); } } @@ -2509,10 +2509,10 @@ void IndustryBuildData::TryBuildNewIndustry() const Industry *ind = PlaceIndustry(it, IACT_RANDOMCREATION, false); if (ind == nullptr) { this->builddata[it].wait_count = this->builddata[it].max_wait + 1; // Compensate for decrementing below. - this->builddata[it].max_wait = min(1000, this->builddata[it].max_wait + 2); + this->builddata[it].max_wait = std::min(1000, this->builddata[it].max_wait + 2); } else { AdvertiseIndustryOpening(ind); - this->builddata[it].max_wait = max(this->builddata[it].max_wait / 2, 1); // Reduce waiting time of the industry type. + this->builddata[it].max_wait = std::max(this->builddata[it].max_wait / 2, 1); // Reduce waiting time of the industry type. } } @@ -2749,7 +2749,7 @@ static void ChangeIndustryProduction(Industry *i, bool monthly) /* 4.5% chance for 3-23% (or 1 unit for very low productions) production change, * determined by mult value. If mult = 1 prod. increases, else (-1) it decreases. */ if (Chance16I(1, 22, r >> 16)) { - new_prod += mult * (max(((RandomRange(50) + 10) * old_prod) >> 8, 1U)); + new_prod += mult * (std::max(((RandomRange(50) + 10) * old_prod) >> 8, 1U)); } /* Prevent production to overflow or Oil Rig passengers to be over-"produced" */ @@ -2794,7 +2794,7 @@ static void ChangeIndustryProduction(Industry *i, bool monthly) /* Increase if needed */ while (mul-- != 0 && i->prod_level < PRODLEVEL_MAXIMUM) { - i->prod_level = min(i->prod_level * 2, PRODLEVEL_MAXIMUM); + i->prod_level = std::min<int>(i->prod_level * 2, PRODLEVEL_MAXIMUM); recalculate_multipliers = true; if (str == STR_NULL) str = indspec->production_up_text; } @@ -2805,7 +2805,7 @@ static void ChangeIndustryProduction(Industry *i, bool monthly) closeit = true; break; } else { - i->prod_level = max(i->prod_level / 2, (int)PRODLEVEL_MINIMUM); // typecast to int required to please MSVC + i->prod_level = std::max<int>(i->prod_level / 2, PRODLEVEL_MINIMUM); recalculate_multipliers = true; if (str == STR_NULL) str = indspec->production_down_text; } @@ -2897,7 +2897,7 @@ void IndustryDailyLoop() uint perc = 3; // Between 3% and 9% chance of creating a new industry. if ((_industry_builder.wanted_inds >> 16) > GetCurrentTotalNumberOfIndustries()) { - perc = min(9u, perc + (_industry_builder.wanted_inds >> 16) - GetCurrentTotalNumberOfIndustries()); + perc = std::min(9u, perc + (_industry_builder.wanted_inds >> 16) - GetCurrentTotalNumberOfIndustries()); } for (uint16 j = 0; j < change_loop; j++) { if (Chance16(perc, 100)) { diff --git a/src/industry_gui.cpp b/src/industry_gui.cpp index ed770ed04..4c59105b3 100644 --- a/src/industry_gui.cpp +++ b/src/industry_gui.cpp @@ -434,7 +434,7 @@ public: std::string cargostring = this->MakeCargoListString(indsp->accepts_cargo, cargo_suffix, lengthof(indsp->accepts_cargo), STR_INDUSTRY_VIEW_REQUIRES_N_CARGO); Dimension strdim = GetStringBoundingBox(cargostring.c_str()); if (strdim.width > max_minwidth) { - extra_lines_req = max(extra_lines_req, strdim.width / max_minwidth + 1); + extra_lines_req = std::max(extra_lines_req, strdim.width / max_minwidth + 1); strdim.width = max_minwidth; } d = maxdim(d, strdim); @@ -444,7 +444,7 @@ public: cargostring = this->MakeCargoListString(indsp->produced_cargo, cargo_suffix, lengthof(indsp->produced_cargo), STR_INDUSTRY_VIEW_PRODUCES_N_CARGO); strdim = GetStringBoundingBox(cargostring.c_str()); if (strdim.width > max_minwidth) { - extra_lines_prd = max(extra_lines_prd, strdim.width / max_minwidth + 1); + extra_lines_prd = std::max(extra_lines_prd, strdim.width / max_minwidth + 1); strdim.width = max_minwidth; } d = maxdim(d, strdim); @@ -966,22 +966,22 @@ public: case EA_MULTIPLIER: if (button == 1) { if (i->prod_level <= PRODLEVEL_MINIMUM) return; - i->prod_level = max<uint>(i->prod_level / 2, PRODLEVEL_MINIMUM); + i->prod_level = std::max<uint>(i->prod_level / 2, PRODLEVEL_MINIMUM); } else { if (i->prod_level >= PRODLEVEL_MAXIMUM) return; - i->prod_level = minu(i->prod_level * 2, PRODLEVEL_MAXIMUM); + i->prod_level = std::min<uint>(i->prod_level * 2, PRODLEVEL_MAXIMUM); } break; case EA_RATE: if (button == 1) { if (i->production_rate[line - IL_RATE1] <= 0) return; - i->production_rate[line - IL_RATE1] = max(i->production_rate[line - IL_RATE1] / 2, 0); + i->production_rate[line - IL_RATE1] = std::max(i->production_rate[line - IL_RATE1] / 2, 0); } else { if (i->production_rate[line - IL_RATE1] >= 255) return; /* a zero production industry is unlikely to give anything but zero, so push it a little bit */ int new_prod = i->production_rate[line - IL_RATE1] == 0 ? 1 : i->production_rate[line - IL_RATE1] * 2; - i->production_rate[line - IL_RATE1] = minu(new_prod, 255); + i->production_rate[line - IL_RATE1] = std::min<uint>(new_prod, 255); } break; @@ -1468,7 +1468,7 @@ protected: } /* Display first 3 cargos */ - for (size_t j = 0; j < min<size_t>(3, cargos.size()); j++) { + for (size_t j = 0; j < std::min<size_t>(3, cargos.size()); j++) { CargoInfo ci = cargos[j]; SetDParam(p++, STR_INDUSTRY_DIRECTORY_ITEM_INFO); SetDParam(p++, std::get<0>(ci)); @@ -2399,10 +2399,10 @@ struct IndustryCargoesWindow : public Window { const IndustrySpec *indsp = GetIndustrySpec(it); if (!indsp->enabled) continue; this->ind_textsize = maxdim(this->ind_textsize, GetStringBoundingBox(indsp->name)); - CargoesField::max_cargoes = max<uint>(CargoesField::max_cargoes, std::count_if(indsp->accepts_cargo, endof(indsp->accepts_cargo), IsCargoIDValid)); - CargoesField::max_cargoes = max<uint>(CargoesField::max_cargoes, std::count_if(indsp->produced_cargo, endof(indsp->produced_cargo), IsCargoIDValid)); + CargoesField::max_cargoes = std::max<uint>(CargoesField::max_cargoes, std::count_if(indsp->accepts_cargo, endof(indsp->accepts_cargo), IsCargoIDValid)); + CargoesField::max_cargoes = std::max<uint>(CargoesField::max_cargoes, std::count_if(indsp->produced_cargo, endof(indsp->produced_cargo), IsCargoIDValid)); } - d.width = max(d.width, this->ind_textsize.width); + d.width = std::max(d.width, this->ind_textsize.width); d.height = this->ind_textsize.height; this->ind_textsize = maxdim(this->ind_textsize, GetStringBoundingBox(STR_INDUSTRY_CARGOES_SELECT_INDUSTRY)); @@ -2420,7 +2420,7 @@ struct IndustryCargoesWindow : public Window { d.width += 2 * HOR_TEXT_PADDING; /* Ensure the height is enough for the industry type text, for the horizontal connections, and for the cargo labels. */ uint min_ind_height = CargoesField::VERT_CARGO_EDGE * 2 + CargoesField::max_cargoes * FONT_HEIGHT_NORMAL + (CargoesField::max_cargoes - 1) * CargoesField::VERT_CARGO_SPACE; - d.height = max(d.height + 2 * VERT_TEXT_PADDING, min_ind_height); + d.height = std::max(d.height + 2 * VERT_TEXT_PADDING, min_ind_height); CargoesField::industry_width = d.width; CargoesField::normal_height = d.height + CargoesField::VERT_INTER_INDUSTRY_SPACE; @@ -2437,11 +2437,11 @@ struct IndustryCargoesWindow : public Window { break; case WID_IC_IND_DROPDOWN: - size->width = max(size->width, this->ind_textsize.width + padding.width); + size->width = std::max(size->width, this->ind_textsize.width + padding.width); break; case WID_IC_CARGO_DROPDOWN: - size->width = max(size->width, this->cargo_textsize.width + padding.width); + size->width = std::max(size->width, this->cargo_textsize.width + padding.width); break; } } @@ -2638,7 +2638,7 @@ struct IndustryCargoesWindow : public Window { /* Make a field consisting of two cargo columns. */ int num_supp = CountMatchingProducingIndustries(central_sp->accepts_cargo, lengthof(central_sp->accepts_cargo)) + houses_supply; int num_cust = CountMatchingAcceptingIndustries(central_sp->produced_cargo, lengthof(central_sp->produced_cargo)) + houses_accept; - int num_indrows = max(3, max(num_supp, num_cust)); // One is needed for the 'it' industry, and 2 for the cargo labels. + int num_indrows = std::max(3, std::max(num_supp, num_cust)); // One is needed for the 'it' industry, and 2 for the cargo labels. for (int i = 0; i < num_indrows; i++) { CargoesRow &row = this->fields.emplace_back(); row.columns[0].MakeEmpty(CFT_EMPTY); @@ -2714,7 +2714,7 @@ struct IndustryCargoesWindow : public Window { bool houses_accept = HousesCanAccept(&cid, 1); int num_supp = CountMatchingProducingIndustries(&cid, 1) + houses_supply + 1; // Ensure room for the cargo label. int num_cust = CountMatchingAcceptingIndustries(&cid, 1) + houses_accept; - int num_indrows = max(num_supp, num_cust); + int num_indrows = std::max(num_supp, num_cust); for (int i = 0; i < num_indrows; i++) { CargoesRow &row = this->fields.emplace_back(); row.columns[0].MakeEmpty(CFT_EMPTY); diff --git a/src/ini_load.cpp b/src/ini_load.cpp index 022e2bf18..5c208548f 100644 --- a/src/ini_load.cpp +++ b/src/ini_load.cpp @@ -226,7 +226,7 @@ void IniLoadFile::LoadFromDisk(const std::string &filename, Subdirectory subdir) uint a = comment_alloc; /* add to comment */ if (ns > a) { - a = max(a, 128U); + a = std::max(a, 128U); do a *= 2; while (a < ns); comment = ReallocT(comment, comment_alloc = a); } diff --git a/src/landscape.cpp b/src/landscape.cpp index 9f4116a23..80ba516ac 100644 --- a/src/landscape.cpp +++ b/src/landscape.cpp @@ -130,12 +130,12 @@ Point InverseRemapCoords2(int x, int y, bool clamp_to_map, bool *clamped) * So give it a z-malus of 4 in the first iterations. */ int z = 0; if (clamp_to_map) { - for (int i = 0; i < 5; i++) z = GetSlopePixelZ(Clamp(pt.x + max(z, 4) - 4, min_coord, max_x), Clamp(pt.y + max(z, 4) - 4, min_coord, max_y)) / 2; - for (int m = 3; m > 0; m--) z = GetSlopePixelZ(Clamp(pt.x + max(z, m) - m, min_coord, max_x), Clamp(pt.y + max(z, m) - m, min_coord, max_y)) / 2; + for (int i = 0; i < 5; i++) z = GetSlopePixelZ(Clamp(pt.x + std::max(z, 4) - 4, min_coord, max_x), Clamp(pt.y + std::max(z, 4) - 4, min_coord, max_y)) / 2; + for (int m = 3; m > 0; m--) z = GetSlopePixelZ(Clamp(pt.x + std::max(z, m) - m, min_coord, max_x), Clamp(pt.y + std::max(z, m) - m, min_coord, max_y)) / 2; for (int i = 0; i < 5; i++) z = GetSlopePixelZ(Clamp(pt.x + z, min_coord, max_x), Clamp(pt.y + z, min_coord, max_y)) / 2; } else { - for (int i = 0; i < 5; i++) z = GetSlopePixelZOutsideMap(pt.x + max(z, 4) - 4, pt.y + max(z, 4) - 4) / 2; - for (int m = 3; m > 0; m--) z = GetSlopePixelZOutsideMap(pt.x + max(z, m) - m, pt.y + max(z, m) - m) / 2; + for (int i = 0; i < 5; i++) z = GetSlopePixelZOutsideMap(pt.x + std::max(z, 4) - 4, pt.y + std::max(z, 4) - 4) / 2; + for (int m = 3; m > 0; m--) z = GetSlopePixelZOutsideMap(pt.x + std::max(z, m) - m, pt.y + std::max(z, m) - m) / 2; for (int i = 0; i < 5; i++) z = GetSlopePixelZOutsideMap(pt.x + z, pt.y + z ) / 2; } @@ -630,8 +630,8 @@ void SetSnowLine(byte table[SNOW_LINE_MONTHS][SNOW_LINE_DAYS]) for (uint i = 0; i < SNOW_LINE_MONTHS; i++) { for (uint j = 0; j < SNOW_LINE_DAYS; j++) { - _snow_line->highest_value = max(_snow_line->highest_value, table[i][j]); - _snow_line->lowest_value = min(_snow_line->lowest_value, table[i][j]); + _snow_line->highest_value = std::max(_snow_line->highest_value, table[i][j]); + _snow_line->lowest_value = std::min(_snow_line->lowest_value, table[i][j]); } } } diff --git a/src/linkgraph/demands.cpp b/src/linkgraph/demands.cpp index f1b714820..c31e8896f 100644 --- a/src/linkgraph/demands.cpp +++ b/src/linkgraph/demands.cpp @@ -45,7 +45,7 @@ public: */ inline void SetDemandPerNode(uint num_demands) { - this->demand_per_node = max(this->supply_sum / num_demands, 1U); + this->demand_per_node = std::max(this->supply_sum / num_demands, 1U); } /** @@ -57,7 +57,7 @@ public: */ inline uint EffectiveSupply(const Node &from, const Node &to) { - return max(from.Supply() * max(1U, to.Supply()) * this->mod_size / 100 / this->demand_per_node, 1U); + return std::max(from.Supply() * std::max(1U, to.Supply()) * this->mod_size / 100 / this->demand_per_node, 1U); } /** @@ -134,7 +134,7 @@ void SymmetricScaler::SetDemands(LinkGraphJob &job, NodeID from_id, NodeID to_id uint undelivered = job[to_id].UndeliveredSupply(); if (demand_back > undelivered) { demand_back = undelivered; - demand_forw = max(1U, demand_back * 100 / this->mod_size); + demand_forw = std::max(1U, demand_back * 100 / this->mod_size); } this->Scaler::SetDemands(job, to_id, from_id, demand_back); } @@ -230,7 +230,7 @@ void DemandCalculator::CalcDemand(LinkGraphJob &job, Tscaler scaler) demand_forw = 1; } - demand_forw = min(demand_forw, job[from_id].UndeliveredSupply()); + demand_forw = std::min(demand_forw, job[from_id].UndeliveredSupply()); scaler.SetDemands(job, from_id, to_id, demand_forw); diff --git a/src/linkgraph/linkgraph.cpp b/src/linkgraph/linkgraph.cpp index 5185d07b7..93af907fc 100644 --- a/src/linkgraph/linkgraph.cpp +++ b/src/linkgraph/linkgraph.cpp @@ -71,7 +71,7 @@ void LinkGraph::Compress() for (NodeID node2 = 0; node2 < this->Size(); ++node2) { BaseEdge &edge = this->edges[node1][node2]; if (edge.capacity > 0) { - edge.capacity = max(1U, edge.capacity / 2); + edge.capacity = std::max(1U, edge.capacity / 2); edge.usage /= 2; } } @@ -163,8 +163,7 @@ NodeID LinkGraph::AddNode(const Station *st) this->nodes.emplace_back(); /* Avoid reducing the height of the matrix as that is expensive and we * most likely will increase it again later which is again expensive. */ - this->edges.Resize(new_node + 1U, - max(new_node + 1U, this->edges.Height())); + this->edges.Resize(new_node + 1U, std::max(new_node + 1U, this->edges.Height())); this->nodes[new_node].Init(st->xy, st->index, HasBit(good.status, GoodsEntry::GES_ACCEPTANCE)); @@ -266,8 +265,8 @@ void LinkGraph::Edge::Update(uint capacity, uint usage, EdgeUpdateMode mode) this->edge.capacity += capacity; this->edge.usage += usage; } else if (mode & EUM_REFRESH) { - this->edge.capacity = max(this->edge.capacity, capacity); - this->edge.usage = max(this->edge.usage, usage); + this->edge.capacity = std::max(this->edge.capacity, capacity); + this->edge.usage = std::max(this->edge.usage, usage); } if (mode & EUM_UNRESTRICTED) this->edge.last_unrestricted_update = _date; if (mode & EUM_RESTRICTED) this->edge.last_restricted_update = _date; diff --git a/src/linkgraph/linkgraph.h b/src/linkgraph/linkgraph.h index 7362b7d56..99348daa1 100644 --- a/src/linkgraph/linkgraph.h +++ b/src/linkgraph/linkgraph.h @@ -113,7 +113,7 @@ public: * Get the date of the last update to any part of the edge's capacity. * @return Last update. */ - Date LastUpdate() const { return max(this->edge.last_unrestricted_update, this->edge.last_restricted_update); } + Date LastUpdate() const { return std::max(this->edge.last_unrestricted_update, this->edge.last_restricted_update); } }; /** @@ -453,7 +453,7 @@ public: */ inline static uint Scale(uint val, uint target_age, uint orig_age) { - return val > 0 ? max(1U, val * target_age / orig_age) : 0; + return val > 0 ? std::max(1U, val * target_age / orig_age) : 0; } /** Bare constructor, only for save/load. */ diff --git a/src/linkgraph/linkgraph_gui.cpp b/src/linkgraph/linkgraph_gui.cpp index fa4002e2b..efdf425da 100644 --- a/src/linkgraph/linkgraph_gui.cpp +++ b/src/linkgraph/linkgraph_gui.cpp @@ -224,7 +224,7 @@ void LinkGraphOverlay::AddLinks(const Station *from, const Station *to) { /* multiply the numbers by 32 in order to avoid comparing to 0 too often. */ if (cargo.capacity == 0 || - max(cargo.usage, cargo.planned) * 32 / (cargo.capacity + 1) < max(new_usg, new_plan) * 32 / (new_cap + 1)) { + std::max(cargo.usage, cargo.planned) * 32 / (cargo.capacity + 1) < std::max(new_usg, new_plan) * 32 / (new_cap + 1)) { cargo.capacity = new_cap; cargo.usage = new_usg; cargo.planned = new_plan; @@ -272,7 +272,7 @@ void LinkGraphOverlay::DrawLinks(const DrawPixelInfo *dpi) const */ void LinkGraphOverlay::DrawContent(Point pta, Point ptb, const LinkProperties &cargo) const { - uint usage_or_plan = min(cargo.capacity * 2 + 1, max(cargo.usage, cargo.planned)); + uint usage_or_plan = std::min(cargo.capacity * 2 + 1, std::max(cargo.usage, cargo.planned)); int colour = LinkGraphOverlay::LINK_COLOURS[usage_or_plan * lengthof(LinkGraphOverlay::LINK_COLOURS) / (cargo.capacity * 2 + 2)]; int dash = cargo.shared ? this->scale * 4 : 0; @@ -302,7 +302,7 @@ void LinkGraphOverlay::DrawStationDots(const DrawPixelInfo *dpi) const Point pt = this->GetStationMiddle(st); if (!this->IsPointVisible(pt, dpi, 3 * this->scale)) continue; - uint r = this->scale * 2 + this->scale * 2 * min(200, i->second) / 200; + uint r = this->scale * 2 + this->scale * 2 * std::min(200U, i->second) / 200; LinkGraphOverlay::DrawVertex(pt.x, pt.y, r, _colour_gradient[st->owner != OWNER_NONE ? diff --git a/src/linkgraph/linkgraphjob.cpp b/src/linkgraph/linkgraphjob.cpp index e23c23b47..5e69dbeba 100644 --- a/src/linkgraph/linkgraphjob.cpp +++ b/src/linkgraph/linkgraphjob.cpp @@ -223,8 +223,8 @@ void LinkGraphJob::NodeAnnotation::Init(uint supply) */ void Path::Fork(Path *base, uint cap, int free_cap, uint dist) { - this->capacity = min(base->capacity, cap); - this->free_capacity = min(base->free_capacity, free_cap); + this->capacity = std::min(base->capacity, cap); + this->free_capacity = std::min(base->free_capacity, free_cap); this->distance = base->distance + dist; assert(this->distance > 0); if (this->parent != base) { @@ -250,7 +250,7 @@ uint Path::AddFlow(uint new_flow, LinkGraphJob &job, uint max_saturation) if (max_saturation != UINT_MAX) { uint usable_cap = edge.Capacity() * max_saturation / 100; if (usable_cap > edge.Flow()) { - new_flow = min(new_flow, usable_cap - edge.Flow()); + new_flow = std::min(new_flow, usable_cap - edge.Flow()); } else { return 0; } diff --git a/src/linkgraph/linkgraphjob.h b/src/linkgraph/linkgraphjob.h index 764365921..caeacd19d 100644 --- a/src/linkgraph/linkgraphjob.h +++ b/src/linkgraph/linkgraphjob.h @@ -392,7 +392,7 @@ public: */ inline static int GetCapacityRatio(int free, uint total) { - return Clamp(free, PATH_CAP_MIN_FREE, PATH_CAP_MAX_FREE) * PATH_CAP_MULTIPLIER / max(total, 1U); + return Clamp(free, PATH_CAP_MIN_FREE, PATH_CAP_MAX_FREE) * PATH_CAP_MULTIPLIER / std::max(total, 1U); } /** diff --git a/src/linkgraph/mcf.cpp b/src/linkgraph/mcf.cpp index ea1040941..003412850 100644 --- a/src/linkgraph/mcf.cpp +++ b/src/linkgraph/mcf.cpp @@ -235,7 +235,7 @@ bool DistanceAnnotation::IsBetter(const DistanceAnnotation *base, uint cap, bool CapacityAnnotation::IsBetter(const CapacityAnnotation *base, uint cap, int free_cap, uint dist) const { - int min_cap = Path::GetCapacityRatio(min(base->free_capacity, free_cap), min(base->capacity, cap)); + int min_cap = Path::GetCapacityRatio(std::min(base->free_capacity, free_cap), std::min(base->capacity, cap)); int this_cap = this->GetCapacityRatio(); if (min_cap == this_cap) { /* If the capacities are the same and the other path isn't disconnected @@ -354,7 +354,7 @@ uint MCF1stPass::FindCycleFlow(const PathVector &path, const Path *cycle_begin) uint flow = UINT_MAX; const Path *cycle_end = cycle_begin; do { - flow = min(flow, cycle_begin->GetFlow()); + flow = std::min(flow, cycle_begin->GetFlow()); cycle_begin = path[cycle_begin->GetNode()]; } while (cycle_begin != cycle_end); return flow; diff --git a/src/map.cpp b/src/map.cpp index 679c445ee..47b89983e 100644 --- a/src/map.cpp +++ b/src/map.cpp @@ -190,7 +190,7 @@ uint DistanceMax(TileIndex t0, TileIndex t1) { const uint dx = Delta(TileX(t0), TileX(t1)); const uint dy = Delta(TileY(t0), TileY(t1)); - return max(dx, dy); + return std::max(dx, dy); } @@ -220,9 +220,9 @@ uint DistanceFromEdge(TileIndex tile) const uint yl = TileY(tile); const uint xh = MapSizeX() - 1 - xl; const uint yh = MapSizeY() - 1 - yl; - const uint minl = min(xl, yl); - const uint minh = min(xh, yh); - return min(minl, minh); + const uint minl = std::min(xl, yl); + const uint minh = std::min(xh, yh); + return std::min(minl, minh); } /** diff --git a/src/misc/str.hpp b/src/misc/str.hpp index 9555681df..05a79786b 100644 --- a/src/misc/str.hpp +++ b/src/misc/str.hpp @@ -92,7 +92,7 @@ struct CStrA : public CBlobT<char> /** Add formatted string (like vsprintf) at the end of existing contents. */ int AddFormatL(const char *format, va_list args) WARN_FORMAT(2, 0) { - size_t addSize = max<size_t>(strlen(format), 16); + size_t addSize = std::max<size_t>(strlen(format), 16); addSize += addSize / 2; int ret; int err = 0; diff --git a/src/misc_cmd.cpp b/src/misc_cmd.cpp index 42f800351..c943a2027 100644 --- a/src/misc_cmd.cpp +++ b/src/misc_cmd.cpp @@ -98,10 +98,10 @@ CommandCost CmdDecreaseLoan(TileIndex tile, DoCommandFlag flags, uint32 p1, uint switch (p2 & 3) { default: return CMD_ERROR; // Invalid method case 0: // Pay back one step - loan = min(c->current_loan, (Money)LOAN_INTERVAL); + loan = std::min(c->current_loan, (Money)LOAN_INTERVAL); break; case 1: // Pay back as much as possible - loan = max(min(c->current_loan, c->money), (Money)LOAN_INTERVAL); + loan = std::max(std::min(c->current_loan, c->money), (Money)LOAN_INTERVAL); loan -= loan % LOAN_INTERVAL; break; case 2: // Repay the given amount of loan diff --git a/src/misc_gui.cpp b/src/misc_gui.cpp index c78bd05ef..1c7b768bd 100644 --- a/src/misc_gui.cpp +++ b/src/misc_gui.cpp @@ -99,7 +99,7 @@ public: if (StrEmpty(this->landinfo_data[i])) break; uint width = GetStringBoundingBox(this->landinfo_data[i]).width + WD_FRAMETEXT_LEFT + WD_FRAMETEXT_RIGHT; - size->width = max(size->width, width); + size->width = std::max(size->width, width); size->height += FONT_HEIGHT_NORMAL + WD_PAR_VSEP_NORMAL; if (i == 0) size->height += 4; @@ -107,7 +107,7 @@ public: if (!StrEmpty(this->landinfo_data[LAND_INFO_MULTICENTER_LINE])) { uint width = GetStringBoundingBox(this->landinfo_data[LAND_INFO_MULTICENTER_LINE]).width + WD_FRAMETEXT_LEFT + WD_FRAMETEXT_RIGHT; - size->width = max(size->width, min(300u, width)); + size->width = std::max(size->width, std::min(300u, width)); SetDParamStr(0, this->landinfo_data[LAND_INFO_MULTICENTER_LINE]); size->height += GetStringHeight(STR_JUST_RAW_STRING, size->width - WD_FRAMETEXT_LEFT - WD_FRAMETEXT_RIGHT); } @@ -510,7 +510,7 @@ struct AboutWindow : public Window { d.width = 0; for (uint i = 0; i < lengthof(_credits); i++) { - d.width = max(d.width, GetStringBoundingBox(_credits[i]).width); + d.width = std::max(d.width, GetStringBoundingBox(_credits[i]).width); } *size = maxdim(*size, d); } @@ -706,7 +706,7 @@ struct TooltipsWindow : public Window * Clamp value to below main toolbar and above statusbar. If tooltip would * go below window, flip it so it is shown above the cursor */ pt.y = Clamp(_cursor.pos.y + _cursor.total_size.y + _cursor.total_offs.y + 5, scr_top, scr_bot); - if (pt.y + sm_height > scr_bot) pt.y = min(_cursor.pos.y + _cursor.total_offs.y - 5, scr_bot) - sm_height; + if (pt.y + sm_height > scr_bot) pt.y = std::min(_cursor.pos.y + _cursor.total_offs.y - 5, scr_bot) - sm_height; pt.x = sm_width >= _screen.width ? 0 : Clamp(_cursor.pos.x - (sm_width >> 1), 0, _screen.width - sm_width); return pt; @@ -717,7 +717,7 @@ struct TooltipsWindow : public Window /* There is only one widget. */ for (uint i = 0; i != this->paramcount; i++) SetDParam(i, this->params[i]); - size->width = min(GetStringBoundingBox(this->string_id).width, ScaleGUITrad(194)); + size->width = std::min<uint>(GetStringBoundingBox(this->string_id).width, ScaleGUITrad(194)); size->height = GetStringHeight(this->string_id, size->width); /* Increase slightly to have some space around the box. */ @@ -817,7 +817,7 @@ void QueryString::DrawEditBox(const Window *w, int wid) const /* We will take the current widget length as maximum width, with a small * space reserved at the end for the caret to show */ const Textbuf *tb = &this->text; - int delta = min(0, (right - left) - tb->pixels - 10); + int delta = std::min(0, (right - left) - tb->pixels - 10); if (tb->caretxoffs + delta < 0) delta = -tb->caretxoffs; @@ -855,7 +855,7 @@ Point QueryString::GetCaretPosition(const Window *w, int wid) const /* Clamp caret position to be inside out current width. */ const Textbuf *tb = &this->text; - int delta = min(0, (right - left) - tb->pixels - 10); + int delta = std::min(0, (right - left) - tb->pixels - 10); if (tb->caretxoffs + delta < 0) delta = -tb->caretxoffs; Point pt = {left + WD_FRAMERECT_LEFT + tb->caretxoffs + delta, (int)wi->pos_y + WD_FRAMERECT_TOP}; @@ -888,7 +888,7 @@ Rect QueryString::GetBoundingRect(const Window *w, int wid, const char *from, co /* Clamp caret position to be inside our current width. */ const Textbuf *tb = &this->text; - int delta = min(0, (right - left) - tb->pixels - 10); + int delta = std::min(0, (right - left) - tb->pixels - 10); if (tb->caretxoffs + delta < 0) delta = -tb->caretxoffs; /* Get location of first and last character. */ @@ -927,7 +927,7 @@ const char *QueryString::GetCharAtPosition(const Window *w, int wid, const Point /* Clamp caret position to be inside our current width. */ const Textbuf *tb = &this->text; - int delta = min(0, (right - left) - tb->pixels - 10); + int delta = std::min(0, (right - left) - tb->pixels - 10); if (tb->caretxoffs + delta < 0) delta = -tb->caretxoffs; return ::GetCharAtPosition(tb->buf, pt.x - delta - left); diff --git a/src/music/dmusic.cpp b/src/music/dmusic.cpp index e8b095225..3843f4df1 100644 --- a/src/music/dmusic.cpp +++ b/src/music/dmusic.cpp @@ -25,7 +25,6 @@ #include <windows.h> #include <dmksctrl.h> #include <dmusicc.h> -#include <algorithm> #include <mutex> #include "../safeguards.h" diff --git a/src/music/midifile.cpp b/src/music/midifile.cpp index 59cc2a631..4bdd3e4e3 100644 --- a/src/music/midifile.cpp +++ b/src/music/midifile.cpp @@ -14,7 +14,6 @@ #include "../core/endian_func.hpp" #include "../base_media_base.h" #include "midi.h" -#include <algorithm> #include "../console_func.h" #include "../console_internal.h" diff --git a/src/music/win32_m.cpp b/src/music/win32_m.cpp index 249fc5b6d..792cff5af 100644 --- a/src/music/win32_m.cpp +++ b/src/music/win32_m.cpp @@ -407,7 +407,7 @@ const char *MusicDriver_Win32::Start(const StringList &parm) /* prepare multimedia timer */ TIMECAPS timecaps; if (timeGetDevCaps(&timecaps, sizeof(timecaps)) == MMSYSERR_NOERROR) { - _midi.time_period = min(max((UINT)resolution, timecaps.wPeriodMin), timecaps.wPeriodMax); + _midi.time_period = std::min(std::max((UINT)resolution, timecaps.wPeriodMin), timecaps.wPeriodMax); if (timeBeginPeriod(_midi.time_period) == MMSYSERR_NOERROR) { /* success */ DEBUG(driver, 2, "Win32-MIDI: Start: timer resolution is %d", (int)_midi.time_period); diff --git a/src/music_gui.cpp b/src/music_gui.cpp index dad5c2ba7..7e2aaac1d 100644 --- a/src/music_gui.cpp +++ b/src/music_gui.cpp @@ -505,7 +505,7 @@ struct MusicTrackSelectionWindow : public Window { SetDParam(1, 2); SetDParamStr(2, song->songname); Dimension d2 = GetStringBoundingBox(STR_PLAYLIST_TRACK_NAME); - d.width = max(d.width, d2.width); + d.width = std::max(d.width, d2.width); d.height += d2.height; } d.width += padding.width; diff --git a/src/network/core/tcp_http.cpp b/src/network/core/tcp_http.cpp index b2a6b0c04..be5a2c39a 100644 --- a/src/network/core/tcp_http.cpp +++ b/src/network/core/tcp_http.cpp @@ -250,8 +250,8 @@ int NetworkHTTPSocketHandler::Receive() /* Wait till we read the end-of-header identifier */ if (this->recv_length == 0) { - int read = this->recv_pos + res; - int end = min(read, lengthof(this->recv_buffer) - 1); + ssize_t read = this->recv_pos + res; + ssize_t end = std::min<ssize_t>(read, lengthof(this->recv_buffer) - 1); /* Do a 'safe' search for the end of the header. */ char prev = this->recv_buffer[end]; @@ -272,7 +272,7 @@ int NetworkHTTPSocketHandler::Receive() this->recv_length = ret; end_of_header += strlen(END_OF_HEADER); - int len = min(read - (end_of_header - this->recv_buffer), res); + int len = std::min(read - (end_of_header - this->recv_buffer), res); if (len != 0) { this->callback->OnReceiveData(end_of_header, len); this->recv_length -= len; @@ -281,7 +281,7 @@ int NetworkHTTPSocketHandler::Receive() this->recv_pos = 0; } } else { - res = min(this->recv_length, res); + res = std::min<ssize_t>(this->recv_length, res); /* Receive whatever we're expecting. */ this->callback->OnReceiveData(this->recv_buffer, res); this->recv_length -= res; diff --git a/src/network/network_admin.cpp b/src/network/network_admin.cpp index 007722ec6..20bd25f8f 100644 --- a/src/network/network_admin.cpp +++ b/src/network/network_admin.cpp @@ -413,13 +413,13 @@ NetworkRecvStatus ServerNetworkAdminSocketHandler::SendCompanyEconomy() p->Send_uint64(company->money); p->Send_uint64(company->current_loan); p->Send_uint64(income); - p->Send_uint16(min(UINT16_MAX, company->cur_economy.delivered_cargo.GetSum<OverflowSafeInt64>())); + p->Send_uint16(static_cast<uint16>(std::min<uint64>(UINT16_MAX, company->cur_economy.delivered_cargo.GetSum<OverflowSafeInt64>()))); /* Send stats for the last 2 quarters. */ for (uint i = 0; i < 2; i++) { p->Send_uint64(company->old_economy[i].company_value); p->Send_uint16(company->old_economy[i].performance_history); - p->Send_uint16(min(UINT16_MAX, company->old_economy[i].delivered_cargo.GetSum<OverflowSafeInt64>())); + p->Send_uint16(static_cast<uint16>(std::min<uint64>(UINT16_MAX, company->old_economy[i].delivered_cargo.GetSum<OverflowSafeInt64>()))); } this->SendPacket(p); diff --git a/src/network/network_chat_gui.cpp b/src/network/network_chat_gui.cpp index e0f3bf57c..83824e126 100644 --- a/src/network/network_chat_gui.cpp +++ b/src/network/network_chat_gui.cpp @@ -154,7 +154,7 @@ void NetworkUndrawChatMessage() int width = _chatmsg_box.width; int height = _chatmsg_box.height; if (y < 0) { - height = max(height + y, min(_chatmsg_box.height, _screen.height)); + height = std::max(height + y, std::min(_chatmsg_box.height, _screen.height)); y = 0; } if (x + width >= _screen.width) { @@ -214,7 +214,7 @@ void NetworkDrawChatMessage() int width = _chatmsg_box.width; int height = _chatmsg_box.height; if (y < 0) { - height = max(height + y, min(_chatmsg_box.height, _screen.height)); + height = std::max(height + y, std::min(_chatmsg_box.height, _screen.height)); y = 0; } if (x + width >= _screen.width) { @@ -235,7 +235,7 @@ void NetworkDrawChatMessage() string_height += GetStringLineCount(STR_JUST_RAW_STRING, width - 1) * FONT_HEIGHT_NORMAL + NETWORK_CHAT_LINE_SPACING; } - string_height = min(string_height, MAX_CHAT_MESSAGES * (FONT_HEIGHT_NORMAL + NETWORK_CHAT_LINE_SPACING)); + string_height = std::min<uint>(string_height, MAX_CHAT_MESSAGES * (FONT_HEIGHT_NORMAL + NETWORK_CHAT_LINE_SPACING)); int top = _screen.height - _chatmsg_box.y - string_height - 2; int bottom = _screen.height - _chatmsg_box.y - 2; diff --git a/src/network/network_client.cpp b/src/network/network_client.cpp index 343f71eb7..7a7ec9f21 100644 --- a/src/network/network_client.cpp +++ b/src/network/network_client.cpp @@ -68,7 +68,7 @@ struct PacketReader : LoadFilter { assert(this->read_bytes == 0); size_t in_packet = p->size - p->pos; - size_t to_write = min((size_t)(this->bufe - this->buf), in_packet); + size_t to_write = std::min<size_t>(this->bufe - this->buf, in_packet); const byte *pbuf = p->buffer + p->pos; this->written_bytes += in_packet; @@ -93,7 +93,7 @@ struct PacketReader : LoadFilter { size_t Read(byte *rbuf, size_t size) override { /* Limit the amount to read to whatever we still have. */ - size_t ret_size = size = min(this->written_bytes - this->read_bytes, size); + size_t ret_size = size = std::min(this->written_bytes - this->read_bytes, size); this->read_bytes += ret_size; const byte *rbufe = rbuf + ret_size; @@ -103,7 +103,7 @@ struct PacketReader : LoadFilter { this->bufe = this->buf + CHUNK; } - size_t to_write = min(this->bufe - this->buf, rbufe - rbuf); + size_t to_write = std::min(this->bufe - this->buf, rbufe - rbuf); memcpy(rbuf, this->buf, to_write); rbuf += to_write; this->buf += to_write; diff --git a/src/network/network_content.cpp b/src/network/network_content.cpp index 46e371e6f..1c19a2b52 100644 --- a/src/network/network_content.cpp +++ b/src/network/network_content.cpp @@ -221,7 +221,7 @@ void ClientNetworkContentSocketHandler::RequestContentList(uint count, const Con * A packet begins with the packet size and a byte for the type. * Then this packet adds a uint16 for the count in this packet. * The rest of the packet can be used for the IDs. */ - uint p_count = min(count, (SEND_MTU - sizeof(PacketSize) - sizeof(byte) - sizeof(uint16)) / sizeof(uint32)); + uint p_count = std::min<uint>(count, (SEND_MTU - sizeof(PacketSize) - sizeof(byte) - sizeof(uint16)) / sizeof(uint32)); Packet *p = new Packet(PACKET_CONTENT_CLIENT_INFO_ID); p->Send_uint16(p_count); @@ -363,7 +363,7 @@ void ClientNetworkContentSocketHandler::DownloadSelectedContentFallback(const Co * A packet begins with the packet size and a byte for the type. * Then this packet adds a uint16 for the count in this packet. * The rest of the packet can be used for the IDs. */ - uint p_count = min(count, (SEND_MTU - sizeof(PacketSize) - sizeof(byte) - sizeof(uint16)) / sizeof(uint32)); + uint p_count = std::min<uint>(count, (SEND_MTU - sizeof(PacketSize) - sizeof(byte) - sizeof(uint16)) / sizeof(uint32)); Packet *p = new Packet(PACKET_CONTENT_CLIENT_CONTENT); p->Send_uint16(p_count); diff --git a/src/network/network_content_gui.cpp b/src/network/network_content_gui.cpp index dd87a4948..06e57a2ac 100644 --- a/src/network/network_content_gui.cpp +++ b/src/network/network_content_gui.cpp @@ -575,7 +575,7 @@ public: } case WID_NCL_MATRIX: - resize->height = max(this->checkbox_size.height, (uint)FONT_HEIGHT_NORMAL) + WD_MATRIX_TOP + WD_MATRIX_BOTTOM; + resize->height = std::max(this->checkbox_size.height, (uint)FONT_HEIGHT_NORMAL) + WD_MATRIX_TOP + WD_MATRIX_BOTTOM; size->height = 10 * resize->height; break; } @@ -626,7 +626,7 @@ public: const NWidgetBase *nwi_name = this->GetWidget<NWidgetBase>(WID_NCL_NAME); const NWidgetBase *nwi_type = this->GetWidget<NWidgetBase>(WID_NCL_TYPE); - int line_height = max(this->checkbox_size.height, (uint)FONT_HEIGHT_NORMAL); + int line_height = std::max(this->checkbox_size.height, (uint)FONT_HEIGHT_NORMAL); /* Fill the matrix with the information */ int sprite_y_offset = WD_MATRIX_TOP + (line_height - this->checkbox_size.height) / 2 - 1; @@ -877,7 +877,7 @@ public: break; case WKC_PAGEDOWN: /* scroll down a page */ - this->list_pos = min(this->list_pos + this->vscroll->GetCapacity(), (int)this->content.size() - 1); + this->list_pos = std::min(this->list_pos + this->vscroll->GetCapacity(), (int)this->content.size() - 1); break; case WKC_HOME: /* jump to beginning */ diff --git a/src/network/network_gui.cpp b/src/network/network_gui.cpp index 13e6fbe8f..a2c2cac19 100644 --- a/src/network/network_gui.cpp +++ b/src/network/network_gui.cpp @@ -123,7 +123,7 @@ public: /* First initialise some variables... */ for (NWidgetBase *child_wid = this->head; child_wid != nullptr; child_wid = child_wid->next) { child_wid->SetupSmallestSize(w, init_array); - this->smallest_y = max(this->smallest_y, child_wid->smallest_y + child_wid->padding_top + child_wid->padding_bottom); + this->smallest_y = std::max(this->smallest_y, child_wid->smallest_y + child_wid->padding_top + child_wid->padding_bottom); } /* ... then in a second pass make sure the 'current' sizes are set. Won't change for most widgets. */ @@ -498,12 +498,12 @@ public: { switch (widget) { case WID_NG_MATRIX: - resize->height = WD_MATRIX_TOP + max(GetSpriteSize(SPR_BLOT).height, (uint)FONT_HEIGHT_NORMAL) + WD_MATRIX_BOTTOM; + resize->height = WD_MATRIX_TOP + std::max(GetSpriteSize(SPR_BLOT).height, (uint)FONT_HEIGHT_NORMAL) + WD_MATRIX_BOTTOM; size->height = 12 * resize->height; break; case WID_NG_LASTJOINED: - size->height = WD_MATRIX_TOP + max(GetSpriteSize(SPR_BLOT).height, (uint)FONT_HEIGHT_NORMAL) + WD_MATRIX_BOTTOM; + size->height = WD_MATRIX_TOP + std::max(GetSpriteSize(SPR_BLOT).height, (uint)FONT_HEIGHT_NORMAL) + WD_MATRIX_BOTTOM; break; case WID_NG_LASTJOINED_SPACER: @@ -545,7 +545,7 @@ public: case WID_NG_MATRIX: { uint16 y = r.top; - const int max = min(this->vscroll->GetPosition() + this->vscroll->GetCapacity(), (int)this->servers.size()); + const int max = std::min(this->vscroll->GetPosition() + this->vscroll->GetCapacity(), (int)this->servers.size()); for (int i = this->vscroll->GetPosition(); i < max; ++i) { const NetworkGameList *ngl = this->servers[i]; @@ -812,7 +812,7 @@ public: case WKC_PAGEDOWN: /* scroll down a page */ if (this->list_pos == SLP_INVALID) return ES_HANDLED; - this->list_pos = min(this->list_pos + this->vscroll->GetCapacity(), (int)this->servers.size() - 1); + this->list_pos = std::min(this->list_pos + this->vscroll->GetCapacity(), (int)this->servers.size() - 1); break; case WKC_HOME: /* jump to beginning */ @@ -904,7 +904,7 @@ GUIGameServerList::FilterFunction * const NetworkGameWindow::filter_funcs[] = { static NWidgetBase *MakeResizableHeader(int *biggest_index) { - *biggest_index = max<int>(*biggest_index, WID_NG_INFO); + *biggest_index = std::max<int>(*biggest_index, WID_NG_INFO); return new NWidgetServerListHeader(); } @@ -1861,13 +1861,13 @@ struct NetworkClientListWindow : Window { { if (widget != WID_CL_PANEL) return; - this->server_client_width = max(GetStringBoundingBox(STR_NETWORK_SERVER).width, GetStringBoundingBox(STR_NETWORK_CLIENT).width) + WD_FRAMERECT_RIGHT; + this->server_client_width = std::max(GetStringBoundingBox(STR_NETWORK_SERVER).width, GetStringBoundingBox(STR_NETWORK_CLIENT).width) + WD_FRAMERECT_RIGHT; this->icon_size = GetSpriteSize(SPR_COMPANY_ICON); - this->line_height = max(this->icon_size.height + 2U, (uint)FONT_HEIGHT_NORMAL); + this->line_height = std::max(this->icon_size.height + 2U, (uint)FONT_HEIGHT_NORMAL); uint width = 100; // Default width for (const NetworkClientInfo *ci : NetworkClientInfo::Iterate()) { - width = max(width, GetStringBoundingBox(ci->client_name).width); + width = std::max(width, GetStringBoundingBox(ci->client_name).width); } size->width = WD_FRAMERECT_LEFT + this->server_client_width + this->icon_size.width + WD_FRAMERECT_LEFT + width + WD_FRAMERECT_RIGHT; @@ -2028,18 +2028,18 @@ struct NetworkJoinStatusWindow : Window { /* Account for the statuses */ uint width = 0; for (uint i = 0; i < NETWORK_JOIN_STATUS_END; i++) { - width = max(width, GetStringBoundingBox(STR_NETWORK_CONNECTING_1 + i).width); + width = std::max(width, GetStringBoundingBox(STR_NETWORK_CONNECTING_1 + i).width); } /* For the number of waiting (other) players */ SetDParamMaxValue(0, MAX_CLIENTS); - width = max(width, GetStringBoundingBox(STR_NETWORK_CONNECTING_WAITING).width); + width = std::max(width, GetStringBoundingBox(STR_NETWORK_CONNECTING_WAITING).width); /* Account for downloading ~ 10 MiB */ SetDParamMaxDigits(0, 8); SetDParamMaxDigits(1, 8); - width = max(width, GetStringBoundingBox(STR_NETWORK_CONNECTING_DOWNLOADING_1).width); - width = max(width, GetStringBoundingBox(STR_NETWORK_CONNECTING_DOWNLOADING_2).width); + width = std::max(width, GetStringBoundingBox(STR_NETWORK_CONNECTING_DOWNLOADING_1).width); + width = std::max(width, GetStringBoundingBox(STR_NETWORK_CONNECTING_DOWNLOADING_2).width); /* Give a bit more clearing for the widest strings than strictly needed */ size->width = width + WD_FRAMERECT_LEFT + WD_FRAMERECT_BOTTOM + 10; diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp index 067ffd09d..6ae8e7cdc 100644 --- a/src/network/network_server.cpp +++ b/src/network/network_server.cpp @@ -174,7 +174,7 @@ struct PacketWriter : SaveFilter { byte *bufe = buf + size; while (buf != bufe) { - size_t to_write = min(SEND_MTU - this->current->size, bufe - buf); + size_t to_write = std::min<size_t>(SEND_MTU - this->current->size, bufe - buf); memcpy(this->current->buffer + this->current->size, buf, to_write); this->current->size += (PacketSize)to_write; buf += to_write; @@ -1807,7 +1807,7 @@ void NetworkServer_Tick(bool send_frame) for (NetworkClientSocket *cs : NetworkClientSocket::Iterate()) { /* We allow a number of bytes per frame, but only to the burst amount * to be available for packet receiving at any particular time. */ - cs->receive_limit = min(cs->receive_limit + _settings_client.network.bytes_per_frame, + cs->receive_limit = std::min<int>(cs->receive_limit + _settings_client.network.bytes_per_frame, _settings_client.network.bytes_per_frame_burst); /* Check if the speed of the client is what we can expect from a client */ diff --git a/src/network/network_udp.cpp b/src/network/network_udp.cpp index 0fd20b5f4..771f51fbe 100644 --- a/src/network/network_udp.cpp +++ b/src/network/network_udp.cpp @@ -263,7 +263,7 @@ void ServerNetworkUDPSocketHandler::Receive_CLIENT_GET_NEWGRFS(Packet *p, Networ * the current list and do not send the other data. * The name could be an empty string, if so take the filename. */ packet_len += sizeof(c.grfid) + sizeof(c.md5sum) + - min(strlen(f->GetName()) + 1, (size_t)NETWORK_GRF_NAME_LENGTH); + std::min(strlen(f->GetName()) + 1, (size_t)NETWORK_GRF_NAME_LENGTH); if (packet_len > SEND_MTU - 4) { // 4 is 3 byte header + grf count in reply break; } diff --git a/src/newgrf.cpp b/src/newgrf.cpp index 2663a3470..b854c2801 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -10,7 +10,6 @@ #include "stdafx.h" #include <stdarg.h> -#include <algorithm> #include "debug.h" #include "fileio_func.h" @@ -663,7 +662,7 @@ static Engine *GetNewEngine(const GRFFile *file, VehicleType type, uint16 intern scope_grfid, // Note: this is INVALID_GRFID if dynamic_engines is disabled, so no reservation internal_id, type, - static_cast<uint8>(min(internal_id, _engine_counts[type])) // substitute_id == _engine_counts[subtype] means "no substitute" + std::min<uint8>(internal_id, _engine_counts[type]) // substitute_id == _engine_counts[subtype] means "no substitute" }); if (engine_pool_size != Engine::GetPoolSize()) { @@ -2460,7 +2459,7 @@ static ChangeInfoResult TownHouseChangeInfo(uint hid, int numinfo, int prop, Byt } case 0x16: // Periodic refresh multiplier - housespec->processing_time = min(buf->ReadByte(), 63); + housespec->processing_time = std::min<byte>(buf->ReadByte(), 63u); break; case 0x17: // Four random colours to use @@ -2642,7 +2641,7 @@ static ChangeInfoResult GlobalVarChangeInfo(uint gvid, int numinfo, int prop, By uint price = gvid + i; if (price < PR_END) { - _cur.grffile->price_base_multipliers[price] = min<int>(factor - 8, MAX_PRICE_MODIFIER); + _cur.grffile->price_base_multipliers[price] = std::min<int>(factor - 8, MAX_PRICE_MODIFIER); } else { grfmsg(1, "GlobalVarChangeInfo: Price %d out of range, ignoring", price); } @@ -3029,7 +3028,7 @@ static ChangeInfoResult CargoChangeInfo(uint cid, int numinfo, int prop, ByteRea break; case 0x1D: // Vehicle capacity muliplier - cs->multiplier = max<uint16>(1u, buf->ReadWord()); + cs->multiplier = std::max<uint16>(1u, buf->ReadWord()); break; default: @@ -3911,11 +3910,11 @@ static ChangeInfoResult AirportChangeInfo(uint airport, int numinfo, int prop, B } if (as->rotation[j] == DIR_E || as->rotation[j] == DIR_W) { - as->size_x = max<byte>(as->size_x, att[k].ti.y + 1); - as->size_y = max<byte>(as->size_y, att[k].ti.x + 1); + as->size_x = std::max<byte>(as->size_x, att[k].ti.y + 1); + as->size_y = std::max<byte>(as->size_y, att[k].ti.x + 1); } else { - as->size_x = max<byte>(as->size_x, att[k].ti.x + 1); - as->size_y = max<byte>(as->size_y, att[k].ti.y + 1); + as->size_x = std::max<byte>(as->size_x, att[k].ti.x + 1); + as->size_y = std::max<byte>(as->size_y, att[k].ti.y + 1); } } tile_table[j] = CallocT<AirportTileTable>(size); @@ -5197,7 +5196,7 @@ static void NewSpriteGroup(ByteReader *buf) case GSF_AIRPORTTILES: case GSF_OBJECTS: case GSF_INDUSTRYTILES: { - byte num_building_sprites = max((uint8)1, type); + byte num_building_sprites = std::max((uint8)1, type); assert(TileLayoutSpriteGroup::CanAllocateItem()); TileLayoutSpriteGroup *group = new TileLayoutSpriteGroup(); @@ -6072,7 +6071,7 @@ static uint16 SanitizeSpriteOffset(uint16& num, uint16 offset, int max_sprites, if (offset + num > max_sprites) { grfmsg(4, "GraphicsNew: %s sprite overflow, truncating...", name); uint orig_num = num; - num = max(max_sprites - offset, 0); + num = std::max(max_sprites - offset, 0); return orig_num - num; } @@ -6233,7 +6232,7 @@ bool GetGlobalVariable(byte param, uint32 *value, const GRFFile *grffile) { switch (param) { case 0x00: // current date - *value = max(_date - DAYS_TILL_ORIGINAL_BASE_YEAR, 0); + *value = std::max(_date - DAYS_TILL_ORIGINAL_BASE_YEAR, 0); return true; case 0x01: // current year @@ -6954,7 +6953,7 @@ static uint32 GetPatchVariable(uint8 param) { switch (param) { /* start year - 1920 */ - case 0x0B: return max(_settings_game.game_creation.starting_year, ORIGINAL_BASE_YEAR) - ORIGINAL_BASE_YEAR; + case 0x0B: return std::max(_settings_game.game_creation.starting_year, ORIGINAL_BASE_YEAR) - ORIGINAL_BASE_YEAR; /* freight trains weight factor */ case 0x0E: return _settings_game.vehicle.freight_trains; @@ -6993,7 +6992,7 @@ static uint32 GetPatchVariable(uint8 param) byte map_bits = 0; byte log_X = MapLogX() - 6; // subtraction is required to make the minimal size (64) zero based byte log_Y = MapLogY() - 6; - byte max_edge = max(log_X, log_Y); + byte max_edge = std::max(log_X, log_Y); if (log_X == log_Y) { // we have a squared map, since both edges are identical SetBit(map_bits, 0); @@ -7001,7 +7000,7 @@ static uint32 GetPatchVariable(uint8 param) if (max_edge == log_Y) SetBit(map_bits, 1); // edge Y been the biggest, mark it } - return (map_bits << 24) | (min(log_X, log_Y) << 20) | (max_edge << 16) | + return (map_bits << 24) | (std::min(log_X, log_Y) << 20) | (max_edge << 16) | (log_X << 12) | (log_Y << 8) | (log_X + log_Y); } @@ -7825,7 +7824,7 @@ static bool ChangeGRFNumUsedParams(size_t len, ByteReader *buf) grfmsg(2, "StaticGRFInfo: expected only 1 byte for 'INFO'->'NPAR' but got " PRINTF_SIZE ", ignoring this field", len); buf->Skip(len); } else { - _cur.grfconfig->num_valid_params = min(buf->ReadByte(), lengthof(_cur.grfconfig->param)); + _cur.grfconfig->num_valid_params = std::min<byte>(buf->ReadByte(), lengthof(_cur.grfconfig->param)); } return true; } @@ -7979,8 +7978,8 @@ static bool ChangeGRFParamMask(size_t len, ByteReader *buf) buf->Skip(len - 1); } else { _cur_parameter->param_nr = param_nr; - if (len >= 2) _cur_parameter->first_bit = min(buf->ReadByte(), 31); - if (len >= 3) _cur_parameter->num_bit = min(buf->ReadByte(), 32 - _cur_parameter->first_bit); + if (len >= 2) _cur_parameter->first_bit = std::min<byte>(buf->ReadByte(), 31); + if (len >= 3) _cur_parameter->num_bit = std::min<byte>(buf->ReadByte(), 32 - _cur_parameter->first_bit); } } diff --git a/src/newgrf_config.cpp b/src/newgrf_config.cpp index 5ba54f26c..cd95a4b8a 100644 --- a/src/newgrf_config.cpp +++ b/src/newgrf_config.cpp @@ -260,7 +260,7 @@ void GRFParameterInfo::SetValue(struct GRFConfig *config, uint32 value) } else { SB(config->param[this->param_nr], this->first_bit, this->num_bit, value); } - config->num_params = max<uint>(config->num_params, this->param_nr + 1); + config->num_params = std::max<uint>(config->num_params, this->param_nr + 1); SetWindowDirty(WC_GAME_OPTIONS, WN_GAME_OPTIONS_NEWGRF_STATE); } @@ -339,7 +339,7 @@ static bool CalcGRFMD5Sum(GRFConfig *config, Subdirectory subdir) if (f == nullptr) return false; long start = ftell(f); - size = min(size, GRFGetSizeOfDataSection(f)); + size = std::min(size, GRFGetSizeOfDataSection(f)); if (start < 0 || fseek(f, start, SEEK_SET) < 0) { FioFCloseFile(f); diff --git a/src/newgrf_debug_gui.cpp b/src/newgrf_debug_gui.cpp index 511436b27..da3ddff0a 100644 --- a/src/newgrf_debug_gui.cpp +++ b/src/newgrf_debug_gui.cpp @@ -374,12 +374,12 @@ struct NewGRFInspectWindow : Window { case WID_NGRFI_VEH_CHAIN: { assert(this->HasChainIndex()); GrfSpecFeature f = GetFeatureNum(this->window_number); - size->height = max(size->height, GetVehicleImageCellSize((VehicleType)(VEH_TRAIN + (f - GSF_TRAINS)), EIT_IN_DEPOT).height + 2 + WD_BEVEL_TOP + WD_BEVEL_BOTTOM); + size->height = std::max(size->height, GetVehicleImageCellSize((VehicleType)(VEH_TRAIN + (f - GSF_TRAINS)), EIT_IN_DEPOT).height + 2 + WD_BEVEL_TOP + WD_BEVEL_BOTTOM); break; } case WID_NGRFI_MAINPANEL: - resize->height = max(11, FONT_HEIGHT_NORMAL + 1); + resize->height = std::max(11, FONT_HEIGHT_NORMAL + 1); resize->width = 1; size->height = 5 * resize->height + TOP_OFFSET + BOTTOM_OFFSET; @@ -430,7 +430,7 @@ struct NewGRFInspectWindow : Window { int skip = 0; if (total_width > width) { int sel_center = (sel_start + sel_end) / 2; - if (sel_center > width / 2) skip = min(total_width - width, sel_center - width / 2); + if (sel_center > width / 2) skip = std::min(total_width - width, sel_center - width / 2); } GrfSpecFeature f = GetFeatureNum(this->window_number); @@ -861,7 +861,7 @@ struct SpriteAlignerWindow : Window { size->height = ScaleGUITrad(200); break; case WID_SA_LIST: - resize->height = max(11, FONT_HEIGHT_NORMAL + 1); + resize->height = std::max(11, FONT_HEIGHT_NORMAL + 1); resize->width = 1; break; default: @@ -897,7 +897,7 @@ struct SpriteAlignerWindow : Window { int step_size = nwid->resize_y; std::vector<SpriteID> &list = _newgrf_debug_sprite_picker.sprites; - int max = min<int>(this->vscroll->GetPosition() + this->vscroll->GetCapacity(), (uint)list.size()); + int max = std::min<int>(this->vscroll->GetPosition() + this->vscroll->GetCapacity(), (uint)list.size()); int y = r.top + WD_FRAMERECT_TOP; for (int i = this->vscroll->GetPosition(); i < max; i++) { diff --git a/src/newgrf_engine.cpp b/src/newgrf_engine.cpp index efc9873af..8066ea432 100644 --- a/src/newgrf_engine.cpp +++ b/src/newgrf_engine.cpp @@ -940,8 +940,8 @@ static uint32 VehicleGetVariable(Vehicle *v, const VehicleScopeResolver *object, if (totalsets == 0) return nullptr; - uint set = (v->cargo.StoredCount() * totalsets) / max((uint16)1, v->cargo_cap); - set = min(set, totalsets - 1); + uint set = (v->cargo.StoredCount() * totalsets) / std::max<uint16>(1u, v->cargo_cap); + set = std::min(set, totalsets - 1); return in_motion ? group->loaded[set] : group->loading[set]; } diff --git a/src/newgrf_gui.cpp b/src/newgrf_gui.cpp index 284e5737e..9e340654c 100644 --- a/src/newgrf_gui.cpp +++ b/src/newgrf_gui.cpp @@ -193,8 +193,8 @@ struct NewGRFParametersWindow : public Window { switch (widget) { case WID_NP_NUMPAR_DEC: case WID_NP_NUMPAR_INC: { - size->width = max(SETTING_BUTTON_WIDTH / 2, FONT_HEIGHT_NORMAL); - size->height = max(SETTING_BUTTON_HEIGHT, FONT_HEIGHT_NORMAL); + size->width = std::max(SETTING_BUTTON_WIDTH / 2, FONT_HEIGHT_NORMAL); + size->height = std::max(SETTING_BUTTON_HEIGHT, FONT_HEIGHT_NORMAL); break; } @@ -208,7 +208,7 @@ struct NewGRFParametersWindow : public Window { } case WID_NP_BACKGROUND: - this->line_height = max(SETTING_BUTTON_HEIGHT, FONT_HEIGHT_NORMAL) + WD_MATRIX_TOP + WD_MATRIX_BOTTOM; + this->line_height = std::max(SETTING_BUTTON_HEIGHT, FONT_HEIGHT_NORMAL) + WD_MATRIX_TOP + WD_MATRIX_BOTTOM; resize->width = 1; resize->height = this->line_height; @@ -721,25 +721,25 @@ struct NewGRFWindow : public Window, NewGRFScanCallback { case WID_NS_FILE_LIST: { Dimension d = maxdim(GetSpriteSize(SPR_SQUARE), GetSpriteSize(SPR_WARNING_SIGN)); - resize->height = max(d.height + 2U, FONT_HEIGHT_NORMAL + 2U); - size->height = max(size->height, WD_FRAMERECT_TOP + 6 * resize->height + WD_FRAMERECT_BOTTOM); + resize->height = std::max(d.height + 2U, FONT_HEIGHT_NORMAL + 2U); + size->height = std::max(size->height, WD_FRAMERECT_TOP + 6 * resize->height + WD_FRAMERECT_BOTTOM); break; } case WID_NS_AVAIL_LIST: - resize->height = max(12, FONT_HEIGHT_NORMAL + 2); - size->height = max(size->height, WD_FRAMERECT_TOP + 8 * resize->height + WD_FRAMERECT_BOTTOM); + resize->height = std::max(12, FONT_HEIGHT_NORMAL + 2); + size->height = std::max(size->height, WD_FRAMERECT_TOP + 8 * resize->height + WD_FRAMERECT_BOTTOM); break; case WID_NS_NEWGRF_INFO_TITLE: { Dimension dim = GetStringBoundingBox(STR_NEWGRF_SETTINGS_INFO_TITLE); - size->height = max(size->height, dim.height + WD_FRAMETEXT_TOP + WD_FRAMETEXT_BOTTOM); - size->width = max(size->width, dim.width + WD_FRAMETEXT_LEFT + WD_FRAMETEXT_RIGHT); + size->height = std::max(size->height, dim.height + WD_FRAMETEXT_TOP + WD_FRAMETEXT_BOTTOM); + size->width = std::max(size->width, dim.width + WD_FRAMETEXT_LEFT + WD_FRAMETEXT_RIGHT); break; } case WID_NS_NEWGRF_INFO: - size->height = max(size->height, WD_FRAMERECT_TOP + 10 * FONT_HEIGHT_NORMAL + WD_FRAMERECT_BOTTOM + padding.height + 2); + size->height = std::max(size->height, WD_FRAMERECT_TOP + 10 * FONT_HEIGHT_NORMAL + WD_FRAMERECT_BOTTOM + padding.height + 2); break; case WID_NS_PRESET_LIST: { @@ -877,7 +877,7 @@ struct NewGRFWindow : public Window, NewGRFScanCallback { int offset_y = (step_height - FONT_HEIGHT_NORMAL) / 2; uint y = r.top + WD_FRAMERECT_TOP; uint min_index = this->vscroll2->GetPosition(); - uint max_index = min(min_index + this->vscroll2->GetCapacity(), (uint)this->avails.size()); + uint max_index = std::min(min_index + this->vscroll2->GetCapacity(), (uint)this->avails.size()); for (uint i = min_index; i < max_index; i++) { const GRFConfig *c = this->avails[i]; @@ -1311,7 +1311,7 @@ struct NewGRFWindow : public Window, NewGRFScanCallback { case WKC_PAGEDOWN: /* scroll down a page */ - this->avail_pos = min(this->avail_pos + this->vscroll2->GetCapacity(), (int)this->avails.size() - 1); + this->avail_pos = std::min(this->avail_pos + this->vscroll2->GetCapacity(), (int)this->avails.size() - 1); break; case WKC_HOME: @@ -1363,7 +1363,7 @@ struct NewGRFWindow : public Window, NewGRFScanCallback { for (from_prev = &this->actives; *from_prev != this->active_sel; from_prev = &(*from_prev)->next, from_pos++) {} /* Gets the drag-and-drop destination offset. Ignore the last dummy line. */ - int to_pos = min(this->vscroll->GetScrolledRowFromWidget(pt.y, this, WID_NS_FILE_LIST), this->vscroll->GetCount() - 2); + int to_pos = std::min(this->vscroll->GetScrolledRowFromWidget(pt.y, this, WID_NS_FILE_LIST), this->vscroll->GetCount() - 2); if (to_pos != from_pos) { // Don't move NewGRF file over itself. /* Get pointer to destination position. */ GRFConfig **to_prev = &this->actives; @@ -1381,7 +1381,7 @@ struct NewGRFWindow : public Window, NewGRFScanCallback { this->InvalidateData(); } } else if (this->avail_sel != nullptr) { - int to_pos = min(this->vscroll->GetScrolledRowFromWidget(pt.y, this, WID_NS_FILE_LIST), this->vscroll->GetCount() - 1); + int to_pos = std::min(this->vscroll->GetScrolledRowFromWidget(pt.y, this, WID_NS_FILE_LIST), this->vscroll->GetCount() - 1); this->AddGRFToActive(to_pos); } } else if (widget == WID_NS_AVAIL_LIST && this->active_sel != nullptr) { @@ -1407,7 +1407,7 @@ struct NewGRFWindow : public Window, NewGRFScanCallback { /* An NewGRF file is dragged over the active list. */ int to_pos = this->vscroll->GetScrolledRowFromWidget(pt.y, this, WID_NS_FILE_LIST); /* Skip the last dummy line if the source is from the active list. */ - to_pos = min(to_pos, this->vscroll->GetCount() - (this->active_sel != nullptr ? 2 : 1)); + to_pos = std::min(to_pos, this->vscroll->GetCount() - (this->active_sel != nullptr ? 2 : 1)); if (to_pos != this->active_over) { this->active_over = to_pos; @@ -1620,8 +1620,8 @@ public: uint min_inf_height = this->inf->smallest_y + this->inf->padding_top + this->inf->padding_bottom; /* Smallest window is in two column mode. */ - this->smallest_x = max(min_avs_width, min_acs_width) + INTER_COLUMN_SPACING + min_inf_width; - this->smallest_y = max(min_inf_height, min_acs_height + INTER_LIST_SPACING + min_avs_height); + this->smallest_x = std::max(min_avs_width, min_acs_width) + INTER_COLUMN_SPACING + min_inf_width; + this->smallest_y = std::max(min_inf_height, min_acs_height + INTER_LIST_SPACING + min_avs_height); /* Filling. */ this->fill_x = LeastCommonMultiple(this->avs->fill_x, this->acs->fill_x); @@ -1651,7 +1651,7 @@ public: uint min_acs_width = this->acs->smallest_x + this->acs->padding_left + this->acs->padding_right; uint min_inf_width = this->inf->smallest_x + this->inf->padding_left + this->inf->padding_right; - uint min_list_width = max(min_avs_width, min_acs_width); // Smallest width of the lists such that they have equal width (incl padding). + uint min_list_width = std::max(min_avs_width, min_acs_width); // Smallest width of the lists such that they have equal width (incl padding). uint avs_extra_width = min_list_width - min_avs_width; // Additional width needed for avs to reach min_list_width. uint acs_extra_width = min_list_width - min_acs_width; // Additional width needed for acs to reach min_list_width. @@ -1664,10 +1664,10 @@ public: uint extra_width, inf_width; if (use_three_columns) { extra_width = given_width - min_three_columns; - inf_width = min(MAX_EXTRA_INFO_WIDTH, extra_width / 2); + inf_width = std::min(MAX_EXTRA_INFO_WIDTH, extra_width / 2); } else { extra_width = given_width - min_two_columns; - inf_width = min(MAX_EXTRA_INFO_WIDTH, extra_width / 2); + inf_width = std::min(MAX_EXTRA_INFO_WIDTH, extra_width / 2); } inf_width = ComputeMaxSize(this->inf->smallest_x, this->inf->smallest_x + inf_width, this->inf->GetHorizontalStepSize(sizing)); extra_width -= inf_width - this->inf->smallest_x; @@ -1677,9 +1677,9 @@ public: if (use_three_columns) { /* Three column display, first make both lists equally wide, then divide whatever is left between both lists. * Only keep track of what avs gets, all other space goes to acs. */ - uint avs_width = min(avs_extra_width, extra_width); + uint avs_width = std::min(avs_extra_width, extra_width); extra_width -= avs_width; - extra_width -= min(acs_extra_width, extra_width); + extra_width -= std::min(acs_extra_width, extra_width); avs_width += extra_width / 2; avs_width = ComputeMaxSize(this->avs->smallest_x, this->avs->smallest_x + avs_width, this->avs->GetHorizontalStepSize(sizing)); @@ -1754,7 +1754,7 @@ public: } uint dx = this->acs->current_x + this->acs->padding_left + this->acs->padding_right; if (this->editable) { - dx = max(dx, this->avs->current_x + this->avs->padding_left + this->avs->padding_right); + dx = std::max(dx, this->avs->current_x + this->avs->padding_left + this->avs->padding_right); } x += dx + INTER_COLUMN_SPACING + this->inf->padding_left; this->inf->AssignSizePosition(sizing, x, y + this->inf->padding_top, inf_width, inf_height, rtl); @@ -1914,10 +1914,10 @@ NWidgetBase* NewGRFDisplay(int *biggest_index) int biggest2; NWidgetBase *acs = MakeNWidgets(_nested_newgrf_actives_widgets, lengthof(_nested_newgrf_actives_widgets), &biggest2, nullptr); - *biggest_index = max(*biggest_index, biggest2); + *biggest_index = std::max(*biggest_index, biggest2); NWidgetBase *inf = MakeNWidgets(_nested_newgrf_infopanel_widgets, lengthof(_nested_newgrf_infopanel_widgets), &biggest2, nullptr); - *biggest_index = max(*biggest_index, biggest2); + *biggest_index = std::max(*biggest_index, biggest2); return new NWidgetNewGRFDisplay(avs, acs, inf); } @@ -2077,8 +2077,8 @@ struct SavePresetWindow : public Window { size->height = 0; for (uint i = 0; i < this->presets.size(); i++) { Dimension d = GetStringBoundingBox(this->presets[i].c_str()); - size->width = max(size->width, d.width + WD_FRAMETEXT_LEFT + WD_FRAMETEXT_RIGHT); - resize->height = max(resize->height, d.height); + size->width = std::max(size->width, d.width + WD_FRAMETEXT_LEFT + WD_FRAMETEXT_RIGHT); + resize->height = std::max(resize->height, d.height); } size->height = ClampU((uint)this->presets.size(), 5, 20) * resize->height + 1; break; @@ -2096,7 +2096,7 @@ struct SavePresetWindow : public Window { int offset_y = (step_height - FONT_HEIGHT_NORMAL) / 2; uint y = r.top + WD_FRAMERECT_TOP; uint min_index = this->vscroll->GetPosition(); - uint max_index = min(min_index + this->vscroll->GetCapacity(), (uint)this->presets.size()); + uint max_index = std::min(min_index + this->vscroll->GetCapacity(), (uint)this->presets.size()); for (uint i = min_index; i < max_index; i++) { if ((int)i == this->selected) GfxFillRect(r.left + 1, y, r.right - 1, y + step_height - 2, PC_DARK_BLUE); @@ -2209,7 +2209,7 @@ struct ScanProgressWindow : public Window { SetDParamMaxDigits(1, 4); /* We really don't know the width. We could determine it by scanning the NewGRFs, * but this is the status window for scanning them... */ - size->width = max(400U, GetStringBoundingBox(STR_NEWGRF_SCAN_STATUS).width); + size->width = std::max(400U, GetStringBoundingBox(STR_NEWGRF_SCAN_STATUS).width); size->height = FONT_HEIGHT_NORMAL * 2 + WD_PAR_VSEP_NORMAL; break; } @@ -2221,7 +2221,7 @@ struct ScanProgressWindow : public Window { case WID_SP_PROGRESS_BAR: { /* Draw the % complete with a bar and a text */ DrawFrameRect(r.left, r.top, r.right, r.bottom, COLOUR_GREY, FR_BORDERONLY); - uint percent = scanned * 100 / max(1U, _settings_client.gui.last_newgrf_count); + uint percent = scanned * 100 / std::max(1U, _settings_client.gui.last_newgrf_count); DrawFrameRect(r.left + 1, r.top + 1, (int)((r.right - r.left - 2) * percent / 100) + r.left + 1, r.bottom - 1, COLOUR_MAUVE, FR_NONE); SetDParam(0, percent); DrawString(r.left, r.right, r.top + 5, STR_GENERATION_PROGRESS, TC_FROMSTRING, SA_HOR_CENTER); diff --git a/src/newgrf_industries.cpp b/src/newgrf_industries.cpp index 2dbe907de..6579c5b09 100644 --- a/src/newgrf_industries.cpp +++ b/src/newgrf_industries.cpp @@ -94,7 +94,7 @@ static uint32 GetClosestIndustry(TileIndex tile, IndustryType type, const Indust for (const Industry *i : Industry::Iterate()) { if (i->type != type || i == current) continue; - best_dist = min(best_dist, DistanceManhattan(tile, i->location.tile)); + best_dist = std::min(best_dist, DistanceManhattan(tile, i->location.tile)); } return best_dist; @@ -140,13 +140,13 @@ static uint32 GetCountAndDistanceOfClosestInstance(byte param_setID, byte layout /* If the filter is 0, it could be because none was specified as well as being really a 0. * In either case, just do the regular var67 */ closest_dist = GetClosestIndustry(current->location.tile, ind_index, current); - count = min(Industry::GetIndustryTypeCount(ind_index), UINT8_MAX); // clamp to 8 bit + count = std::min<uint>(Industry::GetIndustryTypeCount(ind_index), UINT8_MAX); // clamp to 8 bit } else { /* Count only those who match the same industry type and layout filter * Unfortunately, we have to do it manually */ for (const Industry *i : Industry::Iterate()) { if (i->type == ind_index && i != current && (i->selected_layout == layout_filter || layout_filter == 0) && (!town_filter || i->town == current->town)) { - closest_dist = min(closest_dist, DistanceManhattan(current->location.tile, i->location.tile)); + closest_dist = std::min(closest_dist, DistanceManhattan(current->location.tile, i->location.tile)); count++; } } @@ -180,7 +180,7 @@ static uint32 GetCountAndDistanceOfClosestInstance(byte param_setID, byte layout case 0x88: return GetTownRadiusGroup(this->industry->town, this->tile); /* Manhattan distance of the closest town */ - case 0x89: return min(DistanceManhattan(this->industry->town->xy, this->tile), 255); + case 0x89: return std::min(DistanceManhattan(this->industry->town->xy, this->tile), 255u); /* Lowest height of the tile */ case 0x8A: return Clamp(GetTileZ(this->tile) * (this->ro.grffile->grf_version >= 8 ? 1 : TILE_HEIGHT), 0, 0xFF); @@ -189,7 +189,7 @@ static uint32 GetCountAndDistanceOfClosestInstance(byte param_setID, byte layout case 0x8B: return GetClosestWaterDistance(this->tile, (GetIndustrySpec(this->industry->type)->behaviour & INDUSTRYBEH_BUILT_ONWATER) == 0); /* Square of Euclidian distance from town */ - case 0x8D: return min(DistanceSquare(this->industry->town->xy, this->tile), 65535); + case 0x8D: return std::min(DistanceSquare(this->industry->town->xy, this->tile), 65535u); /* 32 random bits */ case 0x8F: return this->random_bits; @@ -213,9 +213,9 @@ static uint32 GetCountAndDistanceOfClosestInstance(byte param_setID, byte layout if (HasBit(callback, CBM_IND_PRODUCTION_CARGO_ARRIVAL) || HasBit(callback, CBM_IND_PRODUCTION_256_TICKS)) { if ((indspec->behaviour & INDUSTRYBEH_PROD_MULTI_HNDLING) != 0) { if (this->industry->prod_level == 0) return 0; - return min(this->industry->incoming_cargo_waiting[variable - 0x40] / this->industry->prod_level, (uint16)0xFFFF); + return std::min<uint16>(this->industry->incoming_cargo_waiting[variable - 0x40] / this->industry->prod_level, 0xFFFFu); } else { - return min(this->industry->incoming_cargo_waiting[variable - 0x40], (uint16)0xFFFF); + return std::min<uint16>(this->industry->incoming_cargo_waiting[variable - 0x40], 0xFFFFu); } } else { return 0; @@ -283,11 +283,11 @@ static uint32 GetCountAndDistanceOfClosestInstance(byte param_setID, byte layout /* Get town zone and Manhattan distance of closest town */ case 0x65: if (this->tile == INVALID_TILE) break; - return GetTownRadiusGroup(this->industry->town, this->tile) << 16 | min(DistanceManhattan(this->tile, this->industry->town->xy), 0xFFFF); + return GetTownRadiusGroup(this->industry->town, this->tile) << 16 | std::min(DistanceManhattan(this->tile, this->industry->town->xy), 0xFFFFu); /* Get square of Euclidian distance of closes town */ case 0x66: if (this->tile == INVALID_TILE) break; - return GetTownRadiusGroup(this->industry->town, this->tile) << 16 | min(DistanceSquare(this->tile, this->industry->town->xy), 0xFFFF); + return GetTownRadiusGroup(this->industry->town, this->tile) << 16 | std::min(DistanceSquare(this->tile, this->industry->town->xy), 0xFFFFu); /* Count of industry, distance of closest instance * 68 is the same as 67, but with a filtering on selected layout */ @@ -639,7 +639,7 @@ void IndustryProductionCallback(Industry *ind, int reason) ind->incoming_cargo_waiting[i] = Clamp(ind->incoming_cargo_waiting[i] - DerefIndProd(group->subtract_input[i], deref) * multiplier, 0, 0xFFFF); } for (uint i = 0; i < group->num_output; i++) { - ind->produced_cargo_waiting[i] = Clamp(ind->produced_cargo_waiting[i] + max(DerefIndProd(group->add_output[i], deref), 0) * multiplier, 0, 0xFFFF); + ind->produced_cargo_waiting[i] = Clamp(ind->produced_cargo_waiting[i] + std::max(DerefIndProd(group->add_output[i], deref), 0) * multiplier, 0, 0xFFFF); } } else { /* Callback receives list of cargos to apply for, which need to have their cargo slots in industry looked up */ @@ -651,7 +651,7 @@ void IndustryProductionCallback(Industry *ind, int reason) for (uint i = 0; i < group->num_output; i++) { int cargo_index = ind->GetCargoProducedIndex(group->cargo_output[i]); if (cargo_index < 0) continue; - ind->produced_cargo_waiting[cargo_index] = Clamp(ind->produced_cargo_waiting[cargo_index] + max(DerefIndProd(group->add_output[i], deref), 0) * multiplier, 0, 0xFFFF); + ind->produced_cargo_waiting[cargo_index] = Clamp(ind->produced_cargo_waiting[cargo_index] + std::max(DerefIndProd(group->add_output[i], deref), 0) * multiplier, 0, 0xFFFF); } } diff --git a/src/newgrf_object.cpp b/src/newgrf_object.cpp index 8827245d3..649a4b58a 100644 --- a/src/newgrf_object.cpp +++ b/src/newgrf_object.cpp @@ -189,7 +189,7 @@ static uint32 GetClosestObject(TileIndex tile, ObjectType type, const Object *cu for (const Object *o : Object::Iterate()) { if (o->type != type || o == current) continue; - best_dist = min(best_dist, DistanceManhattan(tile, o->location.tile)); + best_dist = std::min(best_dist, DistanceManhattan(tile, o->location.tile)); } return best_dist; @@ -226,7 +226,7 @@ static uint32 GetCountAndDistanceOfClosestInstance(byte local_id, uint32 grfid, /* If the object type is invalid, there is none and the closest is far away. */ if (idx >= NUM_OBJECTS) return 0 | 0xFFFF; - return Object::GetTypeCount(idx) << 16 | min(GetClosestObject(tile, idx, current), 0xFFFF); + return Object::GetTypeCount(idx) << 16 | std::min(GetClosestObject(tile, idx, current), 0xFFFFu); } /** Used by the resolver to get values for feature 0F deterministic spritegroups. */ @@ -301,10 +301,10 @@ static uint32 GetCountAndDistanceOfClosestInstance(byte local_id, uint32 grfid, case 0x44: return GetTileOwner(this->tile); /* Get town zone and Manhattan distance of closest town */ - case 0x45: return GetTownRadiusGroup(t, this->tile) << 16 | min(DistanceManhattan(this->tile, t->xy), 0xFFFF); + case 0x45: return GetTownRadiusGroup(t, this->tile) << 16 | std::min(DistanceManhattan(this->tile, t->xy), 0xFFFFu); /* Get square of Euclidian distance of closes town */ - case 0x46: return GetTownRadiusGroup(t, this->tile) << 16 | min(DistanceSquare(this->tile, t->xy), 0xFFFF); + case 0x46: return GetTownRadiusGroup(t, this->tile) << 16 | std::min(DistanceSquare(this->tile, t->xy), 0xFFFFu); /* Object colour */ case 0x47: return this->obj->colour; diff --git a/src/newgrf_profiling.cpp b/src/newgrf_profiling.cpp index b7848fa67..8ec8cff54 100644 --- a/src/newgrf_profiling.cpp +++ b/src/newgrf_profiling.cpp @@ -148,7 +148,7 @@ uint32 NewGRFProfiler::FinishAll() for (NewGRFProfiler &pr : _newgrf_profilers) { if (pr.active) { total_microseconds += pr.Finish(); - max_ticks = max(max_ticks, _tick_counter - pr.start_tick); + max_ticks = std::max(max_ticks, _tick_counter - pr.start_tick); } } diff --git a/src/newgrf_spritegroup.cpp b/src/newgrf_spritegroup.cpp index 824ba0439..871108ec4 100644 --- a/src/newgrf_spritegroup.cpp +++ b/src/newgrf_spritegroup.cpp @@ -8,7 +8,6 @@ /** @file newgrf_spritegroup.cpp Handling of primarily NewGRF action 2. */ #include "stdafx.h" -#include <algorithm> #include "debug.h" #include "newgrf_spritegroup.h" #include "newgrf_profiling.h" @@ -173,10 +172,10 @@ static U EvalAdjustT(const DeterministicSpriteGroupAdjust *adjust, ScopeResolver switch (adjust->operation) { case DSGA_OP_ADD: return last_value + value; case DSGA_OP_SUB: return last_value - value; - case DSGA_OP_SMIN: return min((S)last_value, (S)value); - case DSGA_OP_SMAX: return max((S)last_value, (S)value); - case DSGA_OP_UMIN: return min((U)last_value, (U)value); - case DSGA_OP_UMAX: return max((U)last_value, (U)value); + case DSGA_OP_SMIN: return std::min<S>(last_value, value); + case DSGA_OP_SMAX: return std::max<S>(last_value, value); + case DSGA_OP_UMIN: return std::min<U>(last_value, value); + case DSGA_OP_UMAX: return std::max<U>(last_value, value); case DSGA_OP_SDIV: return value == 0 ? (S)last_value : (S)last_value / (S)value; case DSGA_OP_SMOD: return value == 0 ? (S)last_value : (S)last_value % (S)value; case DSGA_OP_UDIV: return value == 0 ? (U)last_value : (U)last_value / (U)value; diff --git a/src/newgrf_station.cpp b/src/newgrf_station.cpp index d607f8bd0..a127d54c9 100644 --- a/src/newgrf_station.cpp +++ b/src/newgrf_station.cpp @@ -119,13 +119,13 @@ uint32 GetPlatformInfo(Axis axis, byte tile, int platforms, int length, int x, i SB(retval, 0, 4, y & 0xF); SB(retval, 4, 4, x & 0xF); } else { - SB(retval, 0, 4, min(15, y)); - SB(retval, 4, 4, min(15, length - y - 1)); - SB(retval, 8, 4, min(15, x)); - SB(retval, 12, 4, min(15, platforms - x - 1)); + SB(retval, 0, 4, std::min(15, y)); + SB(retval, 4, 4, std::min(15, length - y - 1)); + SB(retval, 8, 4, std::min(15, x)); + SB(retval, 12, 4, std::min(15, platforms - x - 1)); } - SB(retval, 16, 4, min(15, length)); - SB(retval, 20, 4, min(15, platforms)); + SB(retval, 16, 4, std::min(15, length)); + SB(retval, 20, 4, std::min(15, platforms)); SB(retval, 24, 4, tile); return retval; @@ -424,7 +424,7 @@ uint32 Station::GetNewGRFVariable(const ResolverObject &object, byte variable, b const GoodsEntry *ge = &this->goods[c]; switch (variable) { - case 0x60: return min(ge->cargo.TotalCount(), 4095); + case 0x60: return std::min(ge->cargo.TotalCount(), 4095u); case 0x61: return ge->HasVehicleEverTriedLoading() ? ge->time_since_pickup : 0; case 0x62: return ge->HasRating() ? ge->rating : 0xFFFFFFFF; case 0x63: return ge->cargo.DaysInTransit(); @@ -444,7 +444,7 @@ uint32 Station::GetNewGRFVariable(const ResolverObject &object, byte variable, b const GoodsEntry *g = &this->goods[GB(variable - 0x8C, 3, 4)]; switch (GB(variable - 0x8C, 0, 3)) { case 0: return g->cargo.TotalCount(); - case 1: return GB(min(g->cargo.TotalCount(), 4095), 0, 4) | (GB(g->status, GoodsEntry::GES_ACCEPTANCE, 1) << 7); + case 1: return GB(std::min(g->cargo.TotalCount(), 4095u), 0, 4) | (GB(g->status, GoodsEntry::GES_ACCEPTANCE, 1) << 7); case 2: return g->time_since_pickup; case 3: return g->rating; case 4: return g->cargo.Source(); @@ -520,7 +520,7 @@ uint32 Waypoint::GetNewGRFVariable(const ResolverObject &object, byte variable, } if (HasBit(this->station_scope.statspec->flags, SSF_DIV_BY_STATION_SIZE)) cargo /= (st->train_station.w + st->train_station.h); - cargo = min(0xfff, cargo); + cargo = std::min(0xfffu, cargo); if (cargo > this->station_scope.statspec->cargo_threshold) { if (group->num_loading > 0) { diff --git a/src/newgrf_text.cpp b/src/newgrf_text.cpp index b6a0e4891..fcbca12b6 100644 --- a/src/newgrf_text.cpp +++ b/src/newgrf_text.cpp @@ -17,7 +17,6 @@ #include "stdafx.h" -#include <algorithm> #include <array> #include "newgrf.h" @@ -179,7 +178,7 @@ struct UnmappedChoiceList { *d++ = i + 1; /* "<LENn>": Limit the length of the string to 0xFFFE to leave space for the '\0'. */ - size_t len = min<size_t>(0xFFFE, str.size()); + size_t len = std::min<size_t>(0xFFFE, str.size()); *d++ = GB(len + 1, 8, 8); *d++ = GB(len + 1, 0, 8); @@ -222,7 +221,7 @@ struct UnmappedChoiceList { const auto &str = this->strings[this->strings.find(idx) != this->strings.end() ? idx : 0].str(); /* Limit the length of the string we copy to 0xFE. The length is written above * as a byte and we need room for the final '\0'. */ - size_t len = min<size_t>(0xFE, str.size()); + size_t len = std::min<size_t>(0xFE, str.size()); dest.write(str.c_str(), len); *d++ = '\0'; } @@ -936,7 +935,7 @@ uint RemapNewGRFStringControlCode(uint scc, char *buf_start, char **buff, const case SCC_NEWGRF_ROTATE_TOP_4_WORDS: _newgrf_textrefstack.RotateTop4Words(); break; case SCC_NEWGRF_PUSH_WORD: _newgrf_textrefstack.PushWord(Utf8Consume(str)); break; - case SCC_NEWGRF_UNPRINT: *buff = max(*buff - Utf8Consume(str), buf_start); break; + case SCC_NEWGRF_UNPRINT: *buff = std::max(*buff - Utf8Consume(str), buf_start); break; case SCC_NEWGRF_PRINT_WORD_CARGO_LONG: case SCC_NEWGRF_PRINT_WORD_CARGO_SHORT: diff --git a/src/news_gui.cpp b/src/news_gui.cpp index e98f76da9..639c07574 100644 --- a/src/news_gui.cpp +++ b/src/news_gui.cpp @@ -538,7 +538,7 @@ struct NewsWindow : Window { int count = this->timer.CountElapsed(delta_ms); if (count > 0) { /* Scroll up newsmessages from the bottom */ - int newtop = max(this->top - 2 * count, _screen.height - this->height - this->status_height - this->chat_height); + int newtop = std::max(this->top - 2 * count, _screen.height - this->height - this->status_height - this->chat_height); this->SetWindowTop(newtop); } @@ -556,8 +556,8 @@ private: { if (this->top == newtop) return; - int mintop = min(newtop, this->top); - int maxtop = max(newtop, this->top); + int mintop = std::min(newtop, this->top); + int maxtop = std::max(newtop, this->top); if (this->viewport != nullptr) this->viewport->top += newtop - this->top; this->top = newtop; @@ -1148,7 +1148,7 @@ struct MessageHistoryWindow : Window { this->date_width = GetStringBoundingBox(STR_SHORT_DATE).width; size->height = 4 * resize->height + this->top_spacing + this->bottom_spacing; // At least 4 lines are visible. - size->width = max(200u, size->width); // At least 200 pixels wide. + size->width = std::max(200u, size->width); // At least 200 pixels wide. } } diff --git a/src/object_cmd.cpp b/src/object_cmd.cpp index 479f3b0d1..943d89322 100644 --- a/src/object_cmd.cpp +++ b/src/object_cmd.cpp @@ -552,14 +552,14 @@ static void AddAcceptedCargo_Object(TileIndex tile, CargoArray &acceptance, Carg /* Top town building generates 10, so to make HQ interesting, the top * type makes 20. */ - acceptance[CT_PASSENGERS] += max(1U, level); + acceptance[CT_PASSENGERS] += std::max(1U, level); SetBit(*always_accepted, CT_PASSENGERS); /* Top town building generates 4, HQ can make up to 8. The * proportion passengers:mail is different because such a huge * commercial building generates unusually high amount of mail * correspondence per physical visitor. */ - acceptance[CT_MAIL] += max(1U, level / 2); + acceptance[CT_MAIL] += std::max(1U, level / 2); SetBit(*always_accepted, CT_MAIL); } diff --git a/src/object_gui.cpp b/src/object_gui.cpp index bbd224fea..09e9ba53c 100644 --- a/src/object_gui.cpp +++ b/src/object_gui.cpp @@ -125,7 +125,7 @@ public: for (uint i = 0; i < ObjectClass::GetClassCount(); i++) { ObjectClass *objclass = ObjectClass::Get((ObjectClassID)i); if (objclass->GetUISpecCount() == 0) continue; - size->width = max(size->width, GetStringBoundingBox(objclass->name).width); + size->width = std::max(size->width, GetStringBoundingBox(objclass->name).width); } size->width += padding.width; this->line_height = FONT_HEIGHT_NORMAL + WD_MATRIX_TOP + WD_MATRIX_BOTTOM; @@ -161,7 +161,7 @@ public: const ObjectSpec *spec = ObjectSpec::Get(i); if (!spec->IsEverAvailable()) continue; two_wide |= spec->views >= 2; - height[spec->views / 4] = max<int>(ObjectSpec::Get(i)->height, height[spec->views / 4]); + height[spec->views / 4] = std::max<int>(ObjectSpec::Get(i)->height, height[spec->views / 4]); } /* Determine the pixel heights. */ @@ -174,7 +174,7 @@ public: * we want these columns to be slightly less wide. When there are two rows, then * determine the size of the widgets based on the maximum size for a single row * of widgets, or just the twice the widget height of the two row ones. */ - size->height = max(height[0], height[1] * 2 + 2); + size->height = std::max(height[0], height[1] * 2 + 2); if (two_wide) { size->width = (3 * ScaleGUITrad(TILE_PIXELS) + 2 * OBJECT_MARGIN) * 2 + 2; } else { @@ -274,7 +274,7 @@ public: DrawOrigTileSeqInGUI((r.right - r.left) / 2 - 1, r.bottom - r.top - OBJECT_MARGIN - ScaleGUITrad(TILE_PIXELS), dts, PAL_NONE); } else { DrawNewObjectTileInGUI((r.right - r.left) / 2 - 1, r.bottom - r.top - OBJECT_MARGIN - ScaleGUITrad(TILE_PIXELS), spec, - min(_selected_object_view, spec->views - 1)); + std::min<int>(_selected_object_view, spec->views - 1)); } _cur_dpi = old_dpi; } @@ -332,7 +332,7 @@ public: _selected_object_index = object_index; if (_selected_object_index != -1) { const ObjectSpec *spec = ObjectClass::Get(_selected_object_class)->GetSpec(_selected_object_index); - _selected_object_view = min(_selected_object_view, spec->views - 1); + _selected_object_view = std::min<int>(_selected_object_view, spec->views - 1); this->ReInit(); } else { _selected_object_view = 0; diff --git a/src/openttd.cpp b/src/openttd.cpp index 6315b8fa1..41900933a 100644 --- a/src/openttd.cpp +++ b/src/openttd.cpp @@ -290,8 +290,8 @@ static void ParseResolution(Dimension *res, const char *s) return; } - res->width = max(strtoul(s, nullptr, 0), 64UL); - res->height = max(strtoul(t + 1, nullptr, 0), 64UL); + res->width = std::max(strtoul(s, nullptr, 0), 64UL); + res->height = std::max(strtoul(t + 1, nullptr, 0), 64UL); } diff --git a/src/order_cmd.cpp b/src/order_cmd.cpp index b8ba7ab90..082ec1ae3 100644 --- a/src/order_cmd.cpp +++ b/src/order_cmd.cpp @@ -713,7 +713,7 @@ uint GetOrderDistance(const Order *prev, const Order *cur, const Vehicle *v, int int dist1 = GetOrderDistance(prev, v->GetOrder(cur->GetConditionSkipToOrder()), v, conditional_depth); int dist2 = GetOrderDistance(prev, cur->next == nullptr ? v->orders.list->GetFirstOrder() : cur->next, v, conditional_depth); - return max(dist1, dist2); + return std::max(dist1, dist2); } TileIndex prev_tile = prev->GetLocation(v, true); @@ -1093,7 +1093,7 @@ void DeleteOrder(Vehicle *v, VehicleOrderID sel_ord) if (order->IsType(OT_CONDITIONAL)) { VehicleOrderID order_id = order->GetConditionSkipToOrder(); if (order_id >= sel_ord) { - order_id = max(order_id - 1, 0); + order_id = std::max(order_id - 1, 0); } if (order_id == cur_order_id) { order_id = (order_id + 1) % v->GetNumOrders(); @@ -1985,7 +1985,7 @@ VehicleOrderID ProcessConditionalOrder(const Order *order, const Vehicle *v) case OCV_AGE: skip_order = OrderConditionCompare(occ, v->age / DAYS_IN_LEAP_YEAR, value); break; case OCV_REQUIRES_SERVICE: skip_order = OrderConditionCompare(occ, v->NeedsServicing(), value); break; case OCV_UNCONDITIONALLY: skip_order = true; break; - case OCV_REMAINING_LIFETIME: skip_order = OrderConditionCompare(occ, max(v->max_age - v->age + DAYS_IN_LEAP_YEAR - 1, 0) / DAYS_IN_LEAP_YEAR, value); break; + case OCV_REMAINING_LIFETIME: skip_order = OrderConditionCompare(occ, std::max(v->max_age - v->age + DAYS_IN_LEAP_YEAR - 1, 0) / DAYS_IN_LEAP_YEAR, value); break; default: NOT_REACHED(); } diff --git a/src/order_gui.cpp b/src/order_gui.cpp index 5529a8331..d26d00278 100644 --- a/src/order_gui.cpp +++ b/src/order_gui.cpp @@ -1107,8 +1107,8 @@ public: if (i != this->selected_order && i == this->order_over) { /* Highlight dragged order destination. */ int top = (this->order_over < this->selected_order ? y : y + line_height) - WD_FRAMERECT_TOP; - int bottom = min(top + 2, r.bottom - WD_FRAMERECT_BOTTOM); - top = max(top - 3, r.top + WD_FRAMERECT_TOP); + int bottom = std::min(top + 2, r.bottom - WD_FRAMERECT_BOTTOM); + top = std::max(top - 3, r.top + WD_FRAMERECT_TOP); GfxFillRect(r.left + WD_FRAMETEXT_LEFT, top, r.right - WD_FRAMETEXT_RIGHT, bottom, _colour_gradient[COLOUR_GREY][7]); break; } diff --git a/src/os/macosx/string_osx.cpp b/src/os/macosx/string_osx.cpp index a36bed6be..12440e1e1 100644 --- a/src/os/macosx/string_osx.cpp +++ b/src/os/macosx/string_osx.cpp @@ -260,7 +260,7 @@ int CoreTextParagraphLayout::CoreTextLine::GetLeading() const { int leading = 0; for (const auto &run : *this) { - leading = max(leading, run.GetLeading()); + leading = std::max(leading, run.GetLeading()); } return leading; diff --git a/src/os/windows/crashlog_win.cpp b/src/os/windows/crashlog_win.cpp index c96c4cf7c..872e472d5 100644 --- a/src/os/windows/crashlog_win.cpp +++ b/src/os/windows/crashlog_win.cpp @@ -219,7 +219,7 @@ static char *PrintModuleInfo(char *output, const char *last, HMODULE mod) res = EnumProcessModules(proc, modules, sizeof(modules), &needed); CloseHandle(proc); if (res) { - size_t count = min(needed / sizeof(HMODULE), lengthof(modules)); + size_t count = std::min<DWORD>(needed / sizeof(HMODULE), lengthof(modules)); for (size_t i = 0; i != count; i++) output = PrintModuleInfo(output, last, modules[i]); return output + seprintf(output, last, "\n"); diff --git a/src/os/windows/string_uniscribe.cpp b/src/os/windows/string_uniscribe.cpp index 42a003ae1..ad3754866 100644 --- a/src/os/windows/string_uniscribe.cpp +++ b/src/os/windows/string_uniscribe.cpp @@ -302,7 +302,7 @@ static std::vector<SCRIPT_ITEM> UniscribeItemizeString(UniscribeParagraphLayoutF for (auto const &i : fontMapping) { while (cur_pos < i.first && cur_item != items.end() - 1) { /* Add a range that spans the intersection of the remaining item and font run. */ - int stop_pos = min(i.first, (cur_item + 1)->iCharPos); + int stop_pos = std::min(i.first, (cur_item + 1)->iCharPos); assert(stop_pos - cur_pos > 0); ranges.push_back(UniscribeRun(cur_pos, stop_pos - cur_pos, i.second, cur_item->a)); @@ -452,7 +452,7 @@ int UniscribeParagraphLayout::UniscribeLine::GetLeading() const { int leading = 0; for (const auto &run : *this) { - leading = max(leading, run.GetLeading()); + leading = std::max(leading, run.GetLeading()); } return leading; diff --git a/src/osk_gui.cpp b/src/osk_gui.cpp index 2fca3feec..45ff2d238 100644 --- a/src/osk_gui.cpp +++ b/src/osk_gui.cpp @@ -243,7 +243,7 @@ static void AddKey(NWidgetHorizontal *hor, int height, int num_half, WidgetType hor->Add(leaf); } - *biggest_index = max(*biggest_index, widnum); + *biggest_index = std::max(*biggest_index, widnum); } /** Construct the top row keys (cancel, ok, backspace). */ diff --git a/src/pathfinder/follow_track.hpp b/src/pathfinder/follow_track.hpp index 2cfe4d9e4..5bc9ab03c 100644 --- a/src/pathfinder/follow_track.hpp +++ b/src/pathfinder/follow_track.hpp @@ -471,7 +471,7 @@ public: /* Check for speed limit imposed by railtype */ if (IsRailTT()) { uint16 rail_speed = GetRailTypeInfo(GetRailType(m_old_tile))->max_speed; - if (rail_speed > 0) max_speed = min(max_speed, rail_speed); + if (rail_speed > 0) max_speed = std::min<int>(max_speed, rail_speed); } /* if min speed was requested, return it */ diff --git a/src/pathfinder/npf/npf.cpp b/src/pathfinder/npf/npf.cpp index 34b85791b..5a5ff927e 100644 --- a/src/pathfinder/npf/npf.cpp +++ b/src/pathfinder/npf/npf.cpp @@ -117,7 +117,7 @@ static uint NPFDistanceTrack(TileIndex t0, TileIndex t1) const uint dx = Delta(TileX(t0), TileX(t1)); const uint dy = Delta(TileY(t0), TileY(t1)); - const uint straightTracks = 2 * min(dx, dy); // The number of straight (not full length) tracks + const uint straightTracks = 2 * std::min(dx, dy); // The number of straight (not full length) tracks /* OPTIMISATION: * Original: diagTracks = max(dx, dy) - min(dx,dy); * Proof: diff --git a/src/pathfinder/yapf/yapf_common.hpp b/src/pathfinder/yapf/yapf_common.hpp index c6f7e6e5f..e0e43c468 100644 --- a/src/pathfinder/yapf/yapf_common.hpp +++ b/src/pathfinder/yapf/yapf_common.hpp @@ -164,7 +164,7 @@ public: int y2 = 2 * TileY(m_destTile); int dx = abs(x1 - x2); int dy = abs(y1 - y2); - int dmin = min(dx, dy); + int dmin = std::min(dx, dy); int dxy = abs(dx - dy); int d = dmin * YAPF_TILE_CORNER_LENGTH + (dxy - 1) * (YAPF_TILE_LENGTH / 2); n.m_estimate = n.m_cost + d; diff --git a/src/pathfinder/yapf/yapf_destrail.hpp b/src/pathfinder/yapf/yapf_destrail.hpp index 05a123577..7f89639bf 100644 --- a/src/pathfinder/yapf/yapf_destrail.hpp +++ b/src/pathfinder/yapf/yapf_destrail.hpp @@ -194,7 +194,7 @@ public: int y2 = 2 * TileY(m_destTile); int dx = abs(x1 - x2); int dy = abs(y1 - y2); - int dmin = min(dx, dy); + int dmin = std::min(dx, dy); int dxy = abs(dx - dy); int d = dmin * YAPF_TILE_CORNER_LENGTH + (dxy - 1) * (YAPF_TILE_LENGTH / 2); n.m_estimate = n.m_cost + d; diff --git a/src/pathfinder/yapf/yapf_road.cpp b/src/pathfinder/yapf/yapf_road.cpp index 1b85c8d4e..9d42f622d 100644 --- a/src/pathfinder/yapf/yapf_road.cpp +++ b/src/pathfinder/yapf/yapf_road.cpp @@ -303,7 +303,7 @@ public: int y2 = 2 * TileY(m_destTile); int dx = abs(x1 - x2); int dy = abs(y1 - y2); - int dmin = min(dx, dy); + int dmin = std::min(dx, dy); int dxy = abs(dx - dy); int d = dmin * YAPF_TILE_CORNER_LENGTH + (dxy - 1) * (YAPF_TILE_LENGTH / 2); n.m_estimate = n.m_cost + d; diff --git a/src/pathfinder/yapf/yapf_ship.cpp b/src/pathfinder/yapf/yapf_ship.cpp index 2f2ed7e44..ec4348e83 100644 --- a/src/pathfinder/yapf/yapf_ship.cpp +++ b/src/pathfinder/yapf/yapf_ship.cpp @@ -89,7 +89,7 @@ public: int y2 = 2 * TileY(m_destTile); int dx = abs(x1 - x2); int dy = abs(y1 - y2); - int dmin = min(dx, dy); + int dmin = std::min(dx, dy); int dxy = abs(dx - dy); int d = dmin * YAPF_TILE_CORNER_LENGTH + (dxy - 1) * (YAPF_TILE_LENGTH / 2); n.m_estimate = n.m_cost + d; diff --git a/src/rail.h b/src/rail.h index d9121d545..c5775b946 100644 --- a/src/rail.h +++ b/src/rail.h @@ -388,7 +388,7 @@ static inline Money RailClearCost(RailType railtype) * cost. */ assert(railtype < RAILTYPE_END); - return max(_price[PR_CLEAR_RAIL], -RailBuildCost(railtype) * 3 / 4); + return std::max(_price[PR_CLEAR_RAIL], -RailBuildCost(railtype) * 3 / 4); } /** @@ -408,8 +408,8 @@ static inline Money RailConvertCost(RailType from, RailType to) * build costs, if the target type is more expensive (material upgrade costs). * Upgrade can never be more expensive than re-building. */ if (HasPowerOnRail(from, to) || HasPowerOnRail(to, from)) { - Money upgradecost = RailBuildCost(to) / 8 + max((Money)0, RailBuildCost(to) - RailBuildCost(from)); - return min(upgradecost, rebuildcost); + Money upgradecost = RailBuildCost(to) / 8 + std::max((Money)0, RailBuildCost(to) - RailBuildCost(from)); + return std::min(upgradecost, rebuildcost); } /* make the price the same as remove + build new type for rail types diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp index 8af7871fc..133f59643 100644 --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -2885,7 +2885,7 @@ static void GetTileDesc_Track(TileIndex tile, TileDesc *td) td->str = STR_LAI_RAIL_DESCRIPTION_TRAIN_DEPOT; if (_settings_game.vehicle.train_acceleration_model != AM_ORIGINAL) { if (td->rail_speed > 0) { - td->rail_speed = min(td->rail_speed, 61); + td->rail_speed = std::min<uint16>(td->rail_speed, 61); } else { td->rail_speed = 61; } diff --git a/src/rail_gui.cpp b/src/rail_gui.cpp index 7529efcec..177f72acc 100644 --- a/src/rail_gui.cpp +++ b/src/rail_gui.cpp @@ -977,7 +977,7 @@ public: } if (newstation) { _railstation.station_count = StationClass::Get(_railstation.station_class)->GetSpecCount(); - _railstation.station_type = min(_railstation.station_type, _railstation.station_count - 1); + _railstation.station_type = std::min<int>(_railstation.station_type, _railstation.station_count - 1); int count = 0; for (uint i = 0; i < StationClass::GetClassCount(); i++) { @@ -985,7 +985,7 @@ public: count++; } this->vscroll->SetCount(count); - this->vscroll->SetPosition(Clamp(_railstation.station_class - 2, 0, max(this->vscroll->GetCount() - this->vscroll->GetCapacity(), 0))); + this->vscroll->SetPosition(Clamp(_railstation.station_class - 2, 0, std::max(this->vscroll->GetCount() - this->vscroll->GetCapacity(), 0))); NWidgetMatrix *matrix = this->GetWidget<NWidgetMatrix>(WID_BRAS_MATRIX); matrix->SetScrollbar(this->vscroll2); @@ -1059,7 +1059,7 @@ public: if (i == STAT_CLASS_WAYP) continue; d = maxdim(d, GetStringBoundingBox(StationClass::Get((StationClassID)i)->name)); } - size->width = max(size->width, d.width + padding.width); + size->width = std::max(size->width, d.width + padding.width); this->line_height = FONT_HEIGHT_NORMAL + WD_MATRIX_TOP + WD_MATRIX_BOTTOM; size->height = 5 * this->line_height; resize->height = this->line_height; @@ -1085,7 +1085,7 @@ public: d = maxdim(d, GetStringBoundingBox(str)); } } - size->width = max(size->width, d.width + padding.width); + size->width = std::max(size->width, d.width + padding.width); break; } @@ -1334,7 +1334,7 @@ public: _railstation.station_class = (StationClassID)i; StationClass *stclass = StationClass::Get(_railstation.station_class); _railstation.station_count = stclass->GetSpecCount(); - _railstation.station_type = min((int)_railstation.station_type, max(0, (int)_railstation.station_count - 1)); + _railstation.station_type = std::min((int)_railstation.station_type, std::max(0, (int)_railstation.station_count - 1)); this->CheckSelectedSize(stclass->GetSpec(_railstation.station_type)); @@ -1539,9 +1539,9 @@ public: for (uint lowered = 0; lowered < 2; lowered++) { Point offset; Dimension sprite_size = GetSpriteSize(rti->gui_sprites.signals[type][variant][lowered], &offset); - this->sig_sprite_bottom_offset = max<int>(this->sig_sprite_bottom_offset, sprite_size.height); - this->sig_sprite_size.width = max<int>(this->sig_sprite_size.width, sprite_size.width - offset.x); - this->sig_sprite_size.height = max<int>(this->sig_sprite_size.height, sprite_size.height - offset.y); + this->sig_sprite_bottom_offset = std::max<int>(this->sig_sprite_bottom_offset, sprite_size.height); + this->sig_sprite_size.width = std::max<int>(this->sig_sprite_size.width, sprite_size.width - offset.x); + this->sig_sprite_size.height = std::max<int>(this->sig_sprite_size.height, sprite_size.height - offset.y); } } } @@ -1551,10 +1551,10 @@ public: { if (widget == WID_BS_DRAG_SIGNALS_DENSITY_LABEL) { /* Two digits for signals density. */ - size->width = max(size->width, 2 * GetDigitWidth() + padding.width + WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT); + size->width = std::max(size->width, 2 * GetDigitWidth() + padding.width + WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT); } else if (IsInsideMM(widget, WID_BS_SEMAPHORE_NORM, WID_BS_ELECTRIC_PBS_OWAY + 1)) { - size->width = max(size->width, this->sig_sprite_size.width + WD_IMGBTN_LEFT + WD_IMGBTN_RIGHT); - size->height = max(size->height, this->sig_sprite_size.height + WD_IMGBTN_TOP + WD_IMGBTN_BOTTOM); + size->width = std::max(size->width, this->sig_sprite_size.width + WD_IMGBTN_LEFT + WD_IMGBTN_RIGHT); + size->height = std::max(size->height, this->sig_sprite_size.height + WD_IMGBTN_TOP + WD_IMGBTN_BOTTOM); } } diff --git a/src/roadveh_cmd.cpp b/src/roadveh_cmd.cpp index 14fa8d79d..17c9c39e9 100644 --- a/src/roadveh_cmd.cpp +++ b/src/roadveh_cmd.cpp @@ -453,11 +453,11 @@ inline int RoadVehicle::GetCurrentMaxSpeed() const /* Vehicle is on the middle part of a bridge. */ if (u->state == RVSB_WORMHOLE && !(u->vehstatus & VS_HIDDEN)) { - max_speed = min(max_speed, GetBridgeSpec(GetBridgeType(u->tile))->speed * 2); + max_speed = std::min(max_speed, GetBridgeSpec(GetBridgeType(u->tile))->speed * 2); } } - return min(max_speed, this->current_order.GetMaxSpeed() * 2); + return std::min(max_speed, this->current_order.GetMaxSpeed() * 2); } /** diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index 329152ab2..c3aef307b 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -599,8 +599,8 @@ bool AfterLoadGame() int dx = TileX(t) - TileX(st->train_station.tile); int dy = TileY(t) - TileY(st->train_station.tile); assert(dx >= 0 && dy >= 0); - st->train_station.w = max<uint>(st->train_station.w, dx + 1); - st->train_station.h = max<uint>(st->train_station.h, dy + 1); + st->train_station.w = std::max<uint>(st->train_station.w, dx + 1); + st->train_station.h = std::max<uint>(st->train_station.h, dy + 1); } } @@ -2457,7 +2457,7 @@ bool AfterLoadGame() uint per_proc = _me[t].m7; _me[t].m7 = GB(_me[t].m6, 2, 6) | (GB(_m[t].m3, 5, 1) << 6); SB(_m[t].m3, 5, 1, 0); - SB(_me[t].m6, 2, 6, min(per_proc, 63)); + SB(_me[t].m6, 2, 6, std::min(per_proc, 63U)); } break; @@ -2713,7 +2713,7 @@ bool AfterLoadGame() _settings_game.pf.reverse_at_signals = IsSavegameVersionBefore(SLV_100) || (_settings_game.pf.wait_oneway_signal != 255 && _settings_game.pf.wait_twoway_signal != 255 && _settings_game.pf.wait_for_pbs_path != 255); for (Train *t : Train::Iterate()) { - _settings_game.vehicle.max_train_length = max<uint8>(_settings_game.vehicle.max_train_length, CeilDiv(t->gcache.cached_total_length, TILE_SIZE)); + _settings_game.vehicle.max_train_length = std::max<uint8>(_settings_game.vehicle.max_train_length, CeilDiv(t->gcache.cached_total_length, TILE_SIZE)); } } diff --git a/src/saveload/company_sl.cpp b/src/saveload/company_sl.cpp index 6f98c7afa..fb2742a18 100644 --- a/src/saveload/company_sl.cpp +++ b/src/saveload/company_sl.cpp @@ -61,7 +61,7 @@ CompanyManagerFace ConvertFromOldCompanyManagerFace(uint32 face) uint lips = GB(face, 10, 4); if (!HasBit(ge, GENDER_FEMALE) && lips < 4) { SetCompanyManagerFaceBits(cmf, CMFV_HAS_MOUSTACHE, ge, true); - SetCompanyManagerFaceBits(cmf, CMFV_MOUSTACHE, ge, max(lips, 1U) - 1); + SetCompanyManagerFaceBits(cmf, CMFV_MOUSTACHE, ge, std::max(lips, 1U) - 1); } else { if (!HasBit(ge, GENDER_FEMALE)) { lips = lips * 15 / 16; diff --git a/src/saveload/misc_sl.cpp b/src/saveload/misc_sl.cpp index f17883eb4..0d760c9d5 100644 --- a/src/saveload/misc_sl.cpp +++ b/src/saveload/misc_sl.cpp @@ -51,7 +51,7 @@ void ResetViewportAfterLoadGame() w->viewport->dest_scrollpos_y = _saved_scrollpos_y; Viewport *vp = w->viewport; - vp->zoom = (ZoomLevel)min(_saved_scrollpos_zoom, ZOOM_LVL_MAX); + vp->zoom = std::min(_saved_scrollpos_zoom, ZOOM_LVL_MAX); vp->virtual_width = ScaleByZoom(vp->width, vp->zoom); vp->virtual_height = ScaleByZoom(vp->height, vp->zoom); diff --git a/src/saveload/oldloader_sl.cpp b/src/saveload/oldloader_sl.cpp index ff4e6191e..d9926aa60 100644 --- a/src/saveload/oldloader_sl.cpp +++ b/src/saveload/oldloader_sl.cpp @@ -392,7 +392,7 @@ static bool FixTTOEngines() for (uint i = 0; i < lengthof(_orig_ship_vehicle_info); i++, j++) new (GetTempDataEngine(j)) Engine(VEH_SHIP, i); for (uint i = 0; i < lengthof(_orig_aircraft_vehicle_info); i++, j++) new (GetTempDataEngine(j)) Engine(VEH_AIRCRAFT, i); - Date aging_date = min(_date + DAYS_TILL_ORIGINAL_BASE_YEAR, ConvertYMDToDate(2050, 0, 1)); + Date aging_date = std::min(_date + DAYS_TILL_ORIGINAL_BASE_YEAR, ConvertYMDToDate(2050, 0, 1)); for (EngineID i = 0; i < 256; i++) { int oi = ttd_to_tto[i]; @@ -1823,7 +1823,7 @@ bool LoadTTOMain(LoadgameState *ls) * "increase them to compensate for the faster time advance in TTD compared to TTO * which otherwise would cause much less income while the annual running costs of * the vehicles stay the same" */ - _economy.inflation_payment = min(_economy.inflation_payment * 124 / 74, MAX_INFLATION); + _economy.inflation_payment = std::min(_economy.inflation_payment * 124 / 74, MAX_INFLATION); DEBUG(oldloader, 3, "Finished converting game data"); DEBUG(oldloader, 1, "TTO savegame successfully converted"); diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index 1b79ad926..18f7a17b1 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -170,7 +170,7 @@ struct MemoryDumper { size_t t = this->GetSize(); while (t > 0) { - size_t to_write = min(MEMORY_CHUNK_SIZE, t); + size_t to_write = std::min(MEMORY_CHUNK_SIZE, t); writer->Write(this->blocks[i++], to_write); t -= to_write; @@ -856,7 +856,7 @@ static void SlSaveLoadConv(void *ptr, VarType conv) static inline size_t SlCalcNetStringLen(const char *ptr, size_t length) { if (ptr == nullptr) return 0; - return min(strlen(ptr), length - 1); + return std::min(strlen(ptr), length - 1); } /** diff --git a/src/screenshot.cpp b/src/screenshot.cpp index 1274a4c50..ef76b9f0e 100644 --- a/src/screenshot.cpp +++ b/src/screenshot.cpp @@ -182,7 +182,7 @@ static bool MakeBMPImage(const char *name, ScreenshotCallback *callb, void *user /* Start at the bottom, since bitmaps are stored bottom up */ do { - uint n = min(h, maxlines); + uint n = std::min(h, maxlines); h -= n; /* Render the pixels */ @@ -375,7 +375,7 @@ static bool MakePNGImage(const char *name, ScreenshotCallback *callb, void *user y = 0; do { /* determine # lines to write */ - n = min(h - y, maxlines); + n = std::min(h - y, maxlines); /* render the pixels into the buffer */ callb(userdata, buff, y, w, n); @@ -482,7 +482,7 @@ static bool MakePCXImage(const char *name, ScreenshotCallback *callb, void *user y = 0; do { /* determine # lines to write */ - uint n = min(h - y, maxlines); + uint n = std::min(h - y, maxlines); uint i; /* render the pixels into the buffer */ @@ -640,7 +640,7 @@ static void LargeWorldCallback(void *userdata, void *buf, uint y, uint pitch, ui /* Render viewport in blocks of 1600 pixels width */ left = 0; while (vp->width - left != 0) { - wx = min(vp->width - left, 1600); + wx = std::min(vp->width - left, 1600); left += wx; ViewportDoDraw(vp, diff --git a/src/script/api/script_bridge.cpp b/src/script/api/script_bridge.cpp index 0a7c18552..4d685ca21 100644 --- a/src/script/api/script_bridge.cpp +++ b/src/script/api/script_bridge.cpp @@ -160,7 +160,7 @@ static void _DoCommandReturnBuildBridge1(class ScriptInstance *instance) { if (!IsValidBridge(bridge_id)) return -1; - return min(::GetBridgeSpec(bridge_id)->max_length, _settings_game.construction.max_bridge_length) + 2; + return std::min(::GetBridgeSpec(bridge_id)->max_length, _settings_game.construction.max_bridge_length) + 2; } /* static */ int32 ScriptBridge::GetMinLength(BridgeID bridge_id) diff --git a/src/script/api/script_priorityqueue.cpp b/src/script/api/script_priorityqueue.cpp index 313008412..fda452096 100644 --- a/src/script/api/script_priorityqueue.cpp +++ b/src/script/api/script_priorityqueue.cpp @@ -13,7 +13,6 @@ #include "../squirrel_helper.hpp" #include "../script_instance.hpp" #include "../../debug.h" -#include <algorithm> #include "../../safeguards.h" diff --git a/src/script/api/script_rail.cpp b/src/script/api/script_rail.cpp index aedb4a364..01916c8c5 100644 --- a/src/script/api/script_rail.cpp +++ b/src/script/api/script_rail.cpp @@ -178,7 +178,18 @@ if (station_id != ScriptStation::STATION_JOIN_ADJACENT) p1 |= (1 << 24); const GRFFile *file; - uint16 res = GetAiPurchaseCallbackResult(GSF_STATIONS, cargo_id, 0, source_industry, goal_industry, min(255, distance / 2), AICE_STATION_GET_STATION_ID, source_station ? 0 : 1, min(15, num_platforms) << 4 | min(15, platform_length), &file); + uint16 res = GetAiPurchaseCallbackResult( + GSF_STATIONS, + cargo_id, + 0, + source_industry, + goal_industry, + std::min(255, distance / 2), + AICE_STATION_GET_STATION_ID, + source_station ? 0 : 1, + std::min(15u, num_platforms) << 4 | std::min(15u, platform_length), + &file + ); uint32 p2 = (ScriptStation::IsValidStation(station_id) ? station_id : INVALID_STATION) << 16; if (res != CALLBACK_FAILED) { int index = 0; diff --git a/src/script/api/script_town.cpp b/src/script/api/script_town.cpp index afe561456..161cf74fd 100644 --- a/src/script/api/script_town.cpp +++ b/src/script/api/script_town.cpp @@ -172,7 +172,7 @@ default: EnforcePrecondition(false, (days_between_town_growth * DAY_TICKS / TOWN_GROWTH_TICKS) <= MAX_TOWN_GROWTH_TICKS); /* Don't use growth_rate 0 as it means GROWTH_NORMAL */ - growth_rate = max(days_between_town_growth * DAY_TICKS, 2u) - 1; + growth_rate = std::max(days_between_town_growth * DAY_TICKS, 2u) - 1; break; } @@ -376,7 +376,7 @@ for (const Station *st : Station::Iterate()) { if (st->town == t && (st->facilities & FACIL_AIRPORT) && st->airport.type != AT_OILRIG) num++; } - return max(0, 2 - num); + return std::max(0, 2 - num); } /* static */ ScriptTown::RoadLayout ScriptTown::GetRoadLayout(TownID town_id) diff --git a/src/script/squirrel_std.cpp b/src/script/squirrel_std.cpp index 9a01dc5d6..502721f36 100644 --- a/src/script/squirrel_std.cpp +++ b/src/script/squirrel_std.cpp @@ -25,7 +25,7 @@ SQInteger SquirrelStd::min(HSQUIRRELVM vm) sq_getinteger(vm, 2, &tmp1); sq_getinteger(vm, 3, &tmp2); - sq_pushinteger(vm, ::min(tmp1, tmp2)); + sq_pushinteger(vm, std::min(tmp1, tmp2)); return 1; } @@ -35,7 +35,7 @@ SQInteger SquirrelStd::max(HSQUIRRELVM vm) sq_getinteger(vm, 2, &tmp1); sq_getinteger(vm, 3, &tmp2); - sq_pushinteger(vm, ::max(tmp1, tmp2)); + sq_pushinteger(vm, std::max(tmp1, tmp2)); return 1; } diff --git a/src/settings_gui.cpp b/src/settings_gui.cpp index 751cf1a7d..f0d9b7f3b 100644 --- a/src/settings_gui.cpp +++ b/src/settings_gui.cpp @@ -370,7 +370,7 @@ struct GameOptionsWindow : Window { /* Find the biggest description for the default size. */ for (int i = 0; i < BaseGraphics::GetNumSets(); i++) { SetDParamStr(0, BaseGraphics::GetSet(i)->GetDescription(GetCurrentLanguageIsoCode())); - size->height = max(size->height, (uint)GetStringHeight(STR_BLACK_RAW_STRING, size->width)); + size->height = std::max(size->height, (uint)GetStringHeight(STR_BLACK_RAW_STRING, size->width)); } break; @@ -389,7 +389,7 @@ struct GameOptionsWindow : Window { /* Find the biggest description for the default size. */ for (int i = 0; i < BaseSounds::GetNumSets(); i++) { SetDParamStr(0, BaseSounds::GetSet(i)->GetDescription(GetCurrentLanguageIsoCode())); - size->height = max(size->height, (uint)GetStringHeight(STR_BLACK_RAW_STRING, size->width)); + size->height = std::max(size->height, (uint)GetStringHeight(STR_BLACK_RAW_STRING, size->width)); } break; @@ -397,7 +397,7 @@ struct GameOptionsWindow : Window { /* Find the biggest description for the default size. */ for (int i = 0; i < BaseMusic::GetNumSets(); i++) { SetDParamStr(0, BaseMusic::GetSet(i)->GetDescription(GetCurrentLanguageIsoCode())); - size->height = max(size->height, (uint)GetStringHeight(STR_BLACK_RAW_STRING, size->width)); + size->height = std::max(size->height, (uint)GetStringHeight(STR_BLACK_RAW_STRING, size->width)); } break; @@ -1273,7 +1273,7 @@ uint SettingsContainer::GetMaxHelpHeight(int maxw) { uint biggest = 0; for (EntryVector::const_iterator it = this->entries.begin(); it != this->entries.end(); ++it) { - biggest = max(biggest, (*it)->GetMaxHelpHeight(maxw)); + biggest = std::max(biggest, (*it)->GetMaxHelpHeight(maxw)); } return biggest; } @@ -1852,7 +1852,7 @@ struct GameSettingsWindow : Window { { switch (widget) { case WID_GS_OPTIONSPANEL: - resize->height = SETTING_HEIGHT = max(max<int>(_circle_size.height, SETTING_BUTTON_HEIGHT), FONT_HEIGHT_NORMAL) + 1; + resize->height = SETTING_HEIGHT = std::max({(int)_circle_size.height, SETTING_BUTTON_HEIGHT, FONT_HEIGHT_NORMAL}) + 1; resize->width = 1; size->height = 5 * resize->height + SETTINGTREE_TOP_OFFSET + SETTINGTREE_BOTTOM_OFFSET; @@ -1866,16 +1866,16 @@ struct GameSettingsWindow : Window { }; for (uint i = 0; i < lengthof(setting_types); i++) { SetDParam(0, setting_types[i]); - size->width = max(size->width, GetStringBoundingBox(STR_CONFIG_SETTING_TYPE).width); + size->width = std::max(size->width, GetStringBoundingBox(STR_CONFIG_SETTING_TYPE).width); } size->height = 2 * FONT_HEIGHT_NORMAL + WD_PAR_VSEP_NORMAL + - max(size->height, GetSettingsTree().GetMaxHelpHeight(size->width)); + std::max(size->height, GetSettingsTree().GetMaxHelpHeight(size->width)); break; } case WID_GS_RESTRICT_CATEGORY: case WID_GS_RESTRICT_TYPE: - size->width = max(GetStringBoundingBox(STR_CONFIG_SETTING_RESTRICT_CATEGORY).width, GetStringBoundingBox(STR_CONFIG_SETTING_RESTRICT_TYPE).width); + size->width = std::max(GetStringBoundingBox(STR_CONFIG_SETTING_RESTRICT_CATEGORY).width, GetStringBoundingBox(STR_CONFIG_SETTING_RESTRICT_TYPE).width); break; default: @@ -2631,7 +2631,7 @@ struct CustomCurrencyWindow : Window { case WID_CC_YEAR: { // Year to switch to euro int val = atoi(str); - _custom_currency.to_euro = (val < 2000 ? CF_NOEURO : min(val, MAX_YEAR)); + _custom_currency.to_euro = (val < 2000 ? CF_NOEURO : std::min(val, MAX_YEAR)); break; } } diff --git a/src/settingsgen/settingsgen.cpp b/src/settingsgen/settingsgen.cpp index 513b4c754..ac3a2a85a 100644 --- a/src/settingsgen/settingsgen.cpp +++ b/src/settingsgen/settingsgen.cpp @@ -58,7 +58,7 @@ public: */ size_t Add(const char *text, size_t length) { - size_t store_size = min(length, OUTPUT_BLOCK_SIZE - this->size); + size_t store_size = std::min(length, OUTPUT_BLOCK_SIZE - this->size); assert(store_size <= OUTPUT_BLOCK_SIZE); MemCpyT(this->data + this->size, text, store_size); this->size += store_size; diff --git a/src/ship.h b/src/ship.h index f3e56c39f..b5578d1af 100644 --- a/src/ship.h +++ b/src/ship.h @@ -43,7 +43,7 @@ struct Ship FINAL : public SpecializedVehicle<Ship, VEH_SHIP> { void GetImage(Direction direction, EngineImageType image_type, VehicleSpriteSeq *result) const; int GetDisplaySpeed() const { return this->cur_speed / 2; } int GetDisplayMaxSpeed() const { return this->vcache.cached_max_speed / 2; } - int GetCurrentMaxSpeed() const { return min(this->vcache.cached_max_speed, this->current_order.GetMaxSpeed() * 2); } + int GetCurrentMaxSpeed() const { return std::min<int>(this->vcache.cached_max_speed, this->current_order.GetMaxSpeed() * 2); } Money GetRunningCost() const; bool IsInDepot() const { return this->state == TRACK_BIT_DEPOT; } bool Tick(); diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp index f50772470..e839941cf 100644 --- a/src/ship_cmd.cpp +++ b/src/ship_cmd.cpp @@ -405,8 +405,8 @@ static bool ShipAccelerate(Vehicle *v) uint spd; byte t; - spd = min(v->cur_speed + 1, v->vcache.cached_max_speed); - spd = min(spd, v->current_order.GetMaxSpeed() * 2); + spd = std::min<uint>(v->cur_speed + 1, v->vcache.cached_max_speed); + spd = std::min<uint>(spd, v->current_order.GetMaxSpeed() * 2); /* updates statusbar only if speed have changed to save CPU time */ if (spd != v->cur_speed) { diff --git a/src/signs_gui.cpp b/src/signs_gui.cpp index 0bb1a0909..39f209a36 100644 --- a/src/signs_gui.cpp +++ b/src/signs_gui.cpp @@ -263,7 +263,7 @@ struct SignListWindow : Window, SignList { case WID_SIL_LIST: { Dimension spr_dim = GetSpriteSize(SPR_COMPANY_ICON); this->text_offset = WD_FRAMETEXT_LEFT + spr_dim.width + 2; // 2 pixels space between icon and the sign text. - resize->height = max<uint>(FONT_HEIGHT_NORMAL, spr_dim.height); + resize->height = std::max<uint>(FONT_HEIGHT_NORMAL, spr_dim.height); Dimension d = {(uint)(this->text_offset + WD_FRAMETEXT_RIGHT), WD_FRAMERECT_TOP + 5 * resize->height + WD_FRAMERECT_BOTTOM}; *size = maxdim(*size, d); break; diff --git a/src/smallmap_gui.cpp b/src/smallmap_gui.cpp index 61b8bfd6a..8ece48d93 100644 --- a/src/smallmap_gui.cpp +++ b/src/smallmap_gui.cpp @@ -845,7 +845,7 @@ void SmallMapWindow::DrawSmallMapColumn(void *dst, uint xc, uint yc, int pitch, if (min_xy == 1 && (xc == 0 || yc == 0)) { if (this->zoom == 1) continue; // The tile area is empty, don't draw anything. - ta = TileArea(TileXY(max(min_xy, xc), max(min_xy, yc)), this->zoom - (xc == 0), this->zoom - (yc == 0)); + ta = TileArea(TileXY(std::max(min_xy, xc), std::max(min_xy, yc)), this->zoom - (xc == 0), this->zoom - (yc == 0)); } else { ta = TileArea(TileXY(xc, yc), this->zoom, this->zoom); } @@ -853,8 +853,8 @@ void SmallMapWindow::DrawSmallMapColumn(void *dst, uint xc, uint yc, int pitch, uint32 val = this->GetTileColours(ta); uint8 *val8 = (uint8 *)&val; - int idx = max(0, -start_pos); - for (int pos = max(0, start_pos); pos < end_pos; pos++) { + int idx = std::max(0, -start_pos); + for (int pos = std::max(0, start_pos); pos < end_pos; pos++) { blitter->SetPixel(dst, idx, 0, val8[idx]); idx++; } @@ -986,7 +986,7 @@ void SmallMapWindow::DrawSmallMap(DrawPixelInfo *dpi) const if (x >= -3) { if (x >= dpi->width) break; // Exit the loop. - int end_pos = min(dpi->width, x + 4); + int end_pos = std::min(dpi->width, x + 4); int reps = (dpi->height - y + 1) / 2; // Number of lines. if (reps > 0) { this->DrawSmallMapColumn(ptr, tile_x, tile_y, dpi->pitch * 2, reps, x, end_pos, blitter); @@ -1159,17 +1159,17 @@ void SmallMapWindow::RebuildColourIndexIfNecessary() } } else { if (tbl->col_break) { - this->min_number_of_fixed_rows = max(this->min_number_of_fixed_rows, height); + this->min_number_of_fixed_rows = std::max(this->min_number_of_fixed_rows, height); height = 0; num_columns++; } height++; str = tbl->legend; } - min_width = max(GetStringBoundingBox(str).width, min_width); + min_width = std::max(GetStringBoundingBox(str).width, min_width); } - this->min_number_of_fixed_rows = max(this->min_number_of_fixed_rows, height); - this->min_number_of_columns = max(this->min_number_of_columns, num_columns); + this->min_number_of_fixed_rows = std::max(this->min_number_of_fixed_rows, height); + this->min_number_of_columns = std::max(this->min_number_of_columns, num_columns); } /* The width of a column is the minimum width of all texts + the size of the blob + some spacing */ @@ -1317,8 +1317,8 @@ inline uint SmallMapWindow::GetNumberRowsLegend(uint columns) const { /* Reserve one column for link colours */ uint num_rows_linkstats = CeilDiv(_smallmap_cargo_count, columns - 1); - uint num_rows_others = CeilDiv(max(_smallmap_industry_count, _smallmap_company_count), columns); - return max(this->min_number_of_fixed_rows, max(num_rows_linkstats, num_rows_others)); + uint num_rows_others = CeilDiv(std::max(_smallmap_industry_count, _smallmap_company_count), columns); + return std::max({this->min_number_of_fixed_rows, num_rows_linkstats, num_rows_others}); } /** @@ -1652,7 +1652,7 @@ void SmallMapWindow::SmallMapCenterOnCurrentPos() int sub; const NWidgetBase *wid = this->GetWidget<NWidgetBase>(WID_SM_MAP); Point sxy = this->ComputeScroll(viewport_center.x / (int)TILE_SIZE, viewport_center.y / (int)TILE_SIZE, - max(0, (int)wid->current_x / 2 - 2), wid->current_y / 2, &sub); + std::max(0, (int)wid->current_x / 2 - 2), wid->current_y / 2, &sub); this->SetNewScroll(sxy.x, sxy.y, sub); this->SetDirty(); } @@ -1705,12 +1705,12 @@ public: this->smallmap_window = dynamic_cast<SmallMapWindow *>(w); assert(this->smallmap_window != nullptr); - this->smallest_x = max(display->smallest_x, bar->smallest_x + smallmap_window->GetMinLegendWidth()); - this->smallest_y = display->smallest_y + max(bar->smallest_y, smallmap_window->GetLegendHeight(smallmap_window->min_number_of_columns)); - this->fill_x = max(display->fill_x, bar->fill_x); - this->fill_y = (display->fill_y == 0 && bar->fill_y == 0) ? 0 : min(display->fill_y, bar->fill_y); - this->resize_x = max(display->resize_x, bar->resize_x); - this->resize_y = min(display->resize_y, bar->resize_y); + this->smallest_x = std::max(display->smallest_x, bar->smallest_x + smallmap_window->GetMinLegendWidth()); + this->smallest_y = display->smallest_y + std::max(bar->smallest_y, smallmap_window->GetLegendHeight(smallmap_window->min_number_of_columns)); + this->fill_x = std::max(display->fill_x, bar->fill_x); + this->fill_y = (display->fill_y == 0 && bar->fill_y == 0) ? 0 : std::min(display->fill_y, bar->fill_y); + this->resize_x = std::max(display->resize_x, bar->resize_x); + this->resize_y = std::min(display->resize_y, bar->resize_y); } void AssignSizePosition(SizingType sizing, uint x, uint y, uint given_width, uint given_height, bool rtl) override @@ -1731,7 +1731,7 @@ public: bar->AssignSizePosition(ST_SMALLEST, x, y + display->smallest_y, bar->smallest_x, bar->smallest_y, rtl); } - uint bar_height = max(bar->smallest_y, this->smallmap_window->GetLegendHeight(this->smallmap_window->GetNumberColumnsLegend(given_width - bar->smallest_x))); + uint bar_height = std::max(bar->smallest_y, this->smallmap_window->GetLegendHeight(this->smallmap_window->GetNumberColumnsLegend(given_width - bar->smallest_x))); uint display_height = given_height - bar_height; display->AssignSizePosition(ST_RESIZE, x, y, given_width, display_height, rtl); bar->AssignSizePosition(ST_RESIZE, x, y + display_height, given_width, bar_height, rtl); diff --git a/src/sound.cpp b/src/sound.cpp index 73c0b22e3..e6c1cb07c 100644 --- a/src/sound.cpp +++ b/src/sound.cpp @@ -262,8 +262,8 @@ static void SndPlayScreenCoordFx(SoundID sound, int left, int right, int top, in void SndPlayTileFx(SoundID sound, TileIndex tile) { /* emits sound from center of the tile */ - int x = min(MapMaxX() - 1, TileX(tile)) * TILE_SIZE + TILE_SIZE / 2; - int y = min(MapMaxY() - 1, TileY(tile)) * TILE_SIZE - TILE_SIZE / 2; + int x = std::min(MapMaxX() - 1, TileX(tile)) * TILE_SIZE + TILE_SIZE / 2; + int y = std::min(MapMaxY() - 1, TileY(tile)) * TILE_SIZE - TILE_SIZE / 2; int z = (y < 0 ? 0 : GetSlopePixelZ(x, y)); Point pt = RemapCoords(x, y, z); y += 2 * TILE_SIZE; diff --git a/src/sound/win32_s.cpp b/src/sound/win32_s.cpp index 4551778bd..0e6ce6681 100644 --- a/src/sound/win32_s.cpp +++ b/src/sound/win32_s.cpp @@ -70,7 +70,7 @@ const char *SoundDriver_Win32::Start(const StringList &parm) /* Limit buffer size to prevent overflows. */ _bufsize = GetDriverParamInt(parm, "bufsize", (GB(GetVersion(), 0, 8) > 5) ? 8192 : 4096); - _bufsize = min(_bufsize, UINT16_MAX); + _bufsize = std::min<int>(_bufsize, UINT16_MAX); try { if (nullptr == (_event = CreateEvent(nullptr, FALSE, FALSE, nullptr))) throw "Failed to create event"; diff --git a/src/sound/xaudio2_s.cpp b/src/sound/xaudio2_s.cpp index bd47b2065..e08b917a8 100644 --- a/src/sound/xaudio2_s.cpp +++ b/src/sound/xaudio2_s.cpp @@ -193,7 +193,7 @@ const char *SoundDriver_XAudio2::Start(const StringList &parm) // Limit buffer size to prevent overflows int bufsize = GetDriverParamInt(parm, "bufsize", 8192); - bufsize = min(bufsize, UINT16_MAX); + bufsize = std::min<int>(bufsize, UINT16_MAX); _voice_context = new StreamingVoiceContext(bufsize * 4); diff --git a/src/spritecache.cpp b/src/spritecache.cpp index 3eceb38de..3029a0253 100644 --- a/src/spritecache.cpp +++ b/src/spritecache.cpp @@ -302,8 +302,8 @@ static bool PadSprites(SpriteLoader::Sprite *sprite, uint8 sprite_avail) int min_yoffs = INT32_MAX; for (ZoomLevel zoom = ZOOM_LVL_BEGIN; zoom != ZOOM_LVL_END; zoom++) { if (HasBit(sprite_avail, zoom)) { - min_xoffs = min(min_xoffs, ScaleByZoom(sprite[zoom].x_offs, zoom)); - min_yoffs = min(min_yoffs, ScaleByZoom(sprite[zoom].y_offs, zoom)); + min_xoffs = std::min(min_xoffs, ScaleByZoom(sprite[zoom].x_offs, zoom)); + min_yoffs = std::min(min_yoffs, ScaleByZoom(sprite[zoom].y_offs, zoom)); } } @@ -312,8 +312,8 @@ static bool PadSprites(SpriteLoader::Sprite *sprite, uint8 sprite_avail) int max_height = INT32_MIN; for (ZoomLevel zoom = ZOOM_LVL_BEGIN; zoom != ZOOM_LVL_END; zoom++) { if (HasBit(sprite_avail, zoom)) { - max_width = max(max_width, ScaleByZoom(sprite[zoom].width + sprite[zoom].x_offs - UnScaleByZoom(min_xoffs, zoom), zoom)); - max_height = max(max_height, ScaleByZoom(sprite[zoom].height + sprite[zoom].y_offs - UnScaleByZoom(min_yoffs, zoom), zoom)); + max_width = std::max(max_width, ScaleByZoom(sprite[zoom].width + sprite[zoom].x_offs - UnScaleByZoom(min_xoffs, zoom), zoom)); + max_height = std::max(max_height, ScaleByZoom(sprite[zoom].height + sprite[zoom].y_offs - UnScaleByZoom(min_yoffs, zoom), zoom)); } } @@ -322,10 +322,10 @@ static bool PadSprites(SpriteLoader::Sprite *sprite, uint8 sprite_avail) if (HasBit(sprite_avail, zoom)) { /* Scaling the sprite dimensions in the blitter is done with rounding up, * so a negative padding here is not an error. */ - int pad_left = max(0, sprite[zoom].x_offs - UnScaleByZoom(min_xoffs, zoom)); - int pad_top = max(0, sprite[zoom].y_offs - UnScaleByZoom(min_yoffs, zoom)); - int pad_right = max(0, UnScaleByZoom(max_width, zoom) - sprite[zoom].width - pad_left); - int pad_bottom = max(0, UnScaleByZoom(max_height, zoom) - sprite[zoom].height - pad_top); + int pad_left = std::max(0, sprite[zoom].x_offs - UnScaleByZoom(min_xoffs, zoom)); + int pad_top = std::max(0, sprite[zoom].y_offs - UnScaleByZoom(min_yoffs, zoom)); + int pad_right = std::max(0, UnScaleByZoom(max_width, zoom) - sprite[zoom].width - pad_left); + int pad_bottom = std::max(0, UnScaleByZoom(max_height, zoom) - sprite[zoom].height - pad_top); if (pad_left > 0 || pad_right > 0 || pad_top > 0 || pad_bottom > 0) { if (!PadSingleSprite(&sprite[zoom], zoom, pad_left, pad_top, pad_right, pad_bottom)) return false; @@ -378,10 +378,10 @@ static void *ReadRecolourSprite(uint16 file_slot, uint num) * GRFs which are the same as 257 byte recolour sprites, but with the last * 240 bytes zeroed. */ static const uint RECOLOUR_SPRITE_SIZE = 257; - byte *dest = (byte *)AllocSprite(max(RECOLOUR_SPRITE_SIZE, num)); + byte *dest = (byte *)AllocSprite(std::max(RECOLOUR_SPRITE_SIZE, num)); if (_palette_remap_grf[file_slot]) { - byte *dest_tmp = AllocaM(byte, max(RECOLOUR_SPRITE_SIZE, num)); + byte *dest_tmp = AllocaM(byte, std::max(RECOLOUR_SPRITE_SIZE, num)); /* Only a few recolour sprites are less than 257 bytes */ if (num < RECOLOUR_SPRITE_SIZE) memset(dest_tmp, 0, RECOLOUR_SPRITE_SIZE); diff --git a/src/spriteloader/grf.cpp b/src/spriteloader/grf.cpp index 058193c34..5e540450d 100644 --- a/src/spriteloader/grf.cpp +++ b/src/spriteloader/grf.cpp @@ -164,7 +164,7 @@ bool DecodeSingleSprite(SpriteLoader::Sprite *sprite, uint8 file_slot, size_t fi if (colour_fmt & SCC_PAL) { switch (sprite_type) { case ST_NORMAL: data->m = _palette_remap_grf[file_slot] ? _palmap_w2d[*dest] : *dest; break; - case ST_FONT: data->m = min(*dest, 2u); break; + case ST_FONT: data->m = std::min<uint>(*dest, 2u); break; default: data->m = *dest; break; } /* Magic blue. */ @@ -200,7 +200,7 @@ bool DecodeSingleSprite(SpriteLoader::Sprite *sprite, uint8 file_slot, size_t fi if (colour_fmt & SCC_PAL) { switch (sprite_type) { case ST_NORMAL: sprite->data[i].m = _palette_remap_grf[file_slot] ? _palmap_w2d[*pixel] : *pixel; break; - case ST_FONT: sprite->data[i].m = min(*pixel, 2u); break; + case ST_FONT: sprite->data[i].m = std::min<uint>(*pixel, 2u); break; default: sprite->data[i].m = *pixel; break; } /* Magic blue. */ diff --git a/src/station.cpp b/src/station.cpp index 6f55574ac..f859495d1 100644 --- a/src/station.cpp +++ b/src/station.cpp @@ -320,11 +320,11 @@ uint Station::GetCatchmentRadius() const uint ret = CA_NONE; if (_settings_game.station.modified_catchment) { - if (this->bus_stops != nullptr) ret = max<uint>(ret, CA_BUS); - if (this->truck_stops != nullptr) ret = max<uint>(ret, CA_TRUCK); - if (this->train_station.tile != INVALID_TILE) ret = max<uint>(ret, CA_TRAIN); - if (this->ship_station.tile != INVALID_TILE) ret = max<uint>(ret, CA_DOCK); - if (this->airport.tile != INVALID_TILE) ret = max<uint>(ret, this->airport.GetSpec()->catchment); + if (this->bus_stops != nullptr) ret = std::max<uint>(ret, CA_BUS); + if (this->truck_stops != nullptr) ret = std::max<uint>(ret, CA_TRUCK); + if (this->train_station.tile != INVALID_TILE) ret = std::max<uint>(ret, CA_TRAIN); + if (this->ship_station.tile != INVALID_TILE) ret = std::max<uint>(ret, CA_DOCK); + if (this->airport.tile != INVALID_TILE) ret = std::max<uint>(ret, this->airport.GetSpec()->catchment); } else { if (this->bus_stops != nullptr || this->truck_stops != nullptr || this->train_station.tile != INVALID_TILE || this->ship_station.tile != INVALID_TILE || this->airport.tile != INVALID_TILE) { ret = CA_UNMODIFIED; @@ -346,10 +346,10 @@ Rect Station::GetCatchmentRect() const int catchment_radius = this->GetCatchmentRadius(); Rect ret = { - max<int>(this->rect.left - catchment_radius, 0), - max<int>(this->rect.top - catchment_radius, 0), - min<int>(this->rect.right + catchment_radius, MapMaxX()), - min<int>(this->rect.bottom + catchment_radius, MapMaxY()) + std::max<int>(this->rect.left - catchment_radius, 0), + std::max<int>(this->rect.top - catchment_radius, 0), + std::min<int>(this->rect.right + catchment_radius, MapMaxX()), + std::min<int>(this->rect.bottom + catchment_radius, MapMaxY()) }; return ret; @@ -523,7 +523,7 @@ CommandCost StationRect::BeforeAddTile(TileIndex tile, StationRectMode mode) } else if (!this->PtInExtendedRect(x, y)) { /* current rect is not empty and new point is outside this rect * make new spread-out rectangle */ - Rect new_rect = {min(x, this->left), min(y, this->top), max(x, this->right), max(y, this->bottom)}; + Rect new_rect = {std::min(x, this->left), std::min(y, this->top), std::max(x, this->right), std::max(y, this->bottom)}; /* check new rect dimensions against preset max */ int w = new_rect.right - new_rect.left + 1; diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index 5a4d13c47..7bd124f06 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -1069,10 +1069,10 @@ CommandCost CanExpandRailStation(const BaseStation *st, TileArea &new_ta, Axis a TileArea cur_ta = st->train_station; /* determine new size of train station region.. */ - int x = min(TileX(cur_ta.tile), TileX(new_ta.tile)); - int y = min(TileY(cur_ta.tile), TileY(new_ta.tile)); - new_ta.w = max(TileX(cur_ta.tile) + cur_ta.w, TileX(new_ta.tile) + new_ta.w) - x; - new_ta.h = max(TileY(cur_ta.tile) + cur_ta.h, TileY(new_ta.tile) + new_ta.h) - y; + int x = std::min(TileX(cur_ta.tile), TileX(new_ta.tile)); + int y = std::min(TileY(cur_ta.tile), TileY(new_ta.tile)); + new_ta.w = std::max(TileX(cur_ta.tile) + cur_ta.w, TileX(new_ta.tile) + new_ta.w) - x; + new_ta.h = std::max(TileY(cur_ta.tile) + cur_ta.h, TileY(new_ta.tile) + new_ta.h) - y; new_ta.tile = TileXY(x, y); /* make sure the final size is not too big. */ @@ -1325,7 +1325,7 @@ CommandCost CmdBuildRailStation(TileIndex tile_org, DoCommandFlag flags, uint32 /* Perform NewStation checks */ /* Check if the station size is permitted */ - if (HasBit(statspec->disallowed_platforms, min(numtracks - 1, 7)) || HasBit(statspec->disallowed_lengths, min(plat_len - 1, 7))) { + if (HasBit(statspec->disallowed_platforms, std::min(numtracks - 1, 7)) || HasBit(statspec->disallowed_lengths, std::min(plat_len - 1, 7))) { return CMD_ERROR; } @@ -3364,7 +3364,7 @@ static VehicleEnterTileStatus VehicleEnter_Station(Vehicle *v, TileIndex tile, i return VETSB_ENTERED_STATION | (VehicleEnterTileStatus)(station_id << VETS_STATION_ID_OFFSET); // enter station } else if (x < stop) { v->vehstatus |= VS_TRAIN_SLOWING; - uint16 spd = max(0, (stop - x) * 20 - 15); + uint16 spd = std::max(0, (stop - x) * 20 - 15); if (spd < v->cur_speed) v->cur_speed = spd; } } @@ -3456,7 +3456,7 @@ static void TruncateCargo(const CargoSpec *cs, GoodsEntry *ge, uint amount = UIN if (source_station == nullptr) continue; GoodsEntry &source_ge = source_station->goods[cs->Index()]; - source_ge.max_waiting_cargo = max(source_ge.max_waiting_cargo, i->second); + source_ge.max_waiting_cargo = std::max(source_ge.max_waiting_cargo, i->second); } } @@ -3512,7 +3512,9 @@ static void UpdateStationRating(Station *st) /* NewGRFs expect last speed to be 0xFF when no vehicle has arrived yet. */ uint last_speed = ge->HasVehicleEverTriedLoading() ? ge->last_speed : 0xFF; - uint32 var18 = min(ge->time_since_pickup, 0xFF) | (min(ge->max_waiting_cargo, 0xFFFF) << 8) | (min(last_speed, 0xFF) << 24); + uint32 var18 = std::min<uint>(ge->time_since_pickup, 0xFFu) + | (std::min<uint>(ge->max_waiting_cargo, 0xFFFFu) << 8) + | (std::min<uint>(last_speed, 0xFFu) << 24); /* Convert to the 'old' vehicle types */ uint32 var10 = (st->last_vehicle_type == VEH_INVALID) ? 0x0 : (st->last_vehicle_type + 0x10); uint16 callback = GetCargoCallback(CBID_CARGO_STATION_RATING_CALC, var10, var18, cs); @@ -3571,7 +3573,7 @@ static void UpdateStationRating(Station *st) uint32 r = Random(); if (rating <= (int)GB(r, 0, 7)) { /* Need to have int, otherwise it will just overflow etc. */ - waiting = max((int)waiting - (int)((GB(r, 8, 2) - 1) * num_dests), 0); + waiting = std::max((int)waiting - (int)((GB(r, 8, 2) - 1) * num_dests), 0); waiting_changed = true; } } @@ -3587,7 +3589,7 @@ static void UpdateStationRating(Station *st) uint difference = waiting - WAITING_CARGO_THRESHOLD; waiting -= (difference / WAITING_CARGO_CUT_FACTOR); - waiting = min(waiting, MAX_WAITING_CARGO); + waiting = std::min(waiting, MAX_WAITING_CARGO); waiting_changed = true; } @@ -3801,7 +3803,7 @@ void IncreaseStats(Station *st, const Vehicle *front, StationID next_station_id) * As usage is not such an important figure anyway we just * ignore the additional cargo then.*/ IncreaseStats(st, v->cargo_type, next_station_id, v->refit_cap, - min(v->refit_cap, v->cargo.StoredCount()), EUM_INCREASE); + std::min<uint>(v->refit_cap, v->cargo.StoredCount()), EUM_INCREASE); } } } @@ -4113,11 +4115,11 @@ void UpdateStationDockingTiles(Station *st) /* Expand the area by a tile on each side while * making sure that we remain inside the map. */ - int x2 = min(x + area->w + 1, MapSizeX()); - int x1 = max(x - 1, 0); + int x2 = std::min<int>(x + area->w + 1, MapSizeX()); + int x1 = std::max<int>(x - 1, 0); - int y2 = min(y + area->h + 1, MapSizeY()); - int y1 = max(y - 1, 0); + int y2 = std::min<int>(y + area->h + 1, MapSizeY()); + int y1 = std::max<int>(y - 1, 0); TileArea ta(TileXY(x1, y1), TileXY(x2 - 1, y2 - 1)); TILE_AREA_LOOP(tile, ta) { @@ -4586,7 +4588,7 @@ void FlowStat::ScaleToMonthly(uint runtime) SharesMap new_shares; uint share = 0; for (SharesMap::iterator i = this->shares.begin(); i != this->shares.end(); ++i) { - share = max(share + 1, i->first * 30 / runtime); + share = std::max(share + 1, i->first * 30 / runtime); new_shares[share] = i->second; if (this->unrestricted == i->first) this->unrestricted = share; } diff --git a/src/station_gui.cpp b/src/station_gui.cpp index 3cd4a4291..b4507a9fc 100644 --- a/src/station_gui.cpp +++ b/src/station_gui.cpp @@ -98,7 +98,7 @@ static void FindStationsAroundSelection() uint y = TileY(location.tile); int max_c = 1; - TileArea ta(TileXY(max<int>(0, x - max_c), max<int>(0, y - max_c)), TileXY(min<int>(MapMaxX(), x + location.w + max_c), min<int>(MapMaxY(), y + location.h + max_c))); + TileArea ta(TileXY(std::max<int>(0, x - max_c), std::max<int>(0, y - max_c)), TileXY(std::min<int>(MapMaxX(), x + location.w + max_c), std::min<int>(MapMaxY(), y + location.h + max_c))); Station *adjacent = nullptr; @@ -167,7 +167,7 @@ static void StationsWndShowStationRating(int left, int right, int y, CargoID typ int colour = cs->rating_colour; TextColour tc = GetContrastColour(colour); - uint w = (minu(amount, units_full) + 5) / 36; + uint w = (std::min(amount, units_full) + 5) / 36; int height = GetCharacterHeight(FS_SMALL); @@ -189,7 +189,7 @@ static void StationsWndShowStationRating(int left, int right, int y, CargoID typ /* Draw green/red ratings bar (fits into 14 pixels) */ y += height + 2; GfxFillRect(left + 1, y, left + 14, y, PC_RED); - rating = minu(rating, rating_full) / 16; + rating = std::min<uint>(rating, rating_full) / 16; if (rating != 0) GfxFillRect(left + 1, y, left + rating, y, PC_GREEN); } @@ -303,8 +303,8 @@ protected: CargoID j; FOR_EACH_SET_CARGO_ID(j, cargo_filter) { - if (a->goods[j].HasRating()) maxr1 = max(maxr1, a->goods[j].rating); - if (b->goods[j].HasRating()) maxr2 = max(maxr2, b->goods[j].rating); + if (a->goods[j].HasRating()) maxr1 = std::max(maxr1, a->goods[j].rating); + if (b->goods[j].HasRating()) maxr2 = std::max(maxr2, b->goods[j].rating); } return maxr1 < maxr2; @@ -318,8 +318,8 @@ protected: for (CargoID j = 0; j < NUM_CARGO; j++) { if (!HasBit(cargo_filter, j)) continue; - if (a->goods[j].HasRating()) minr1 = min(minr1, a->goods[j].rating); - if (b->goods[j].HasRating()) minr2 = min(minr2, b->goods[j].rating); + if (a->goods[j].HasRating()) minr1 = std::min(minr1, a->goods[j].rating); + if (b->goods[j].HasRating()) minr2 = std::min(minr2, b->goods[j].rating); } return minr1 > minr2; @@ -401,7 +401,7 @@ public: case WID_STL_BUS: case WID_STL_AIRPLANE: case WID_STL_SHIP: - size->height = max<uint>(FONT_HEIGHT_SMALL, 10) + padding.height; + size->height = std::max<uint>(FONT_HEIGHT_SMALL, 10) + padding.height; break; case WID_STL_CARGOALL: @@ -443,7 +443,7 @@ public: case WID_STL_LIST: { bool rtl = _current_text_dir == TD_RTL; - int max = min(this->vscroll->GetPosition() + this->vscroll->GetCapacity(), (uint)this->stations.size()); + int max = std::min<size_t>(this->vscroll->GetPosition() + this->vscroll->GetCapacity(), this->stations.size()); int y = r.top + WD_FRAMERECT_TOP; for (int i = this->vscroll->GetPosition(); i < max; ++i) { // do until max number of stations of owner const Station *st = this->stations[i]; @@ -837,7 +837,7 @@ static const NWidgetPart _nested_station_view_widgets[] = { static void DrawCargoIcons(CargoID i, uint waiting, int left, int right, int y) { int width = ScaleGUITrad(10); - uint num = min((waiting + (width / 2)) / width, (right - left) / width); // maximum is width / 10 icons so it won't overflow + uint num = std::min<uint>((waiting + (width / 2)) / width, (right - left) / width); // maximum is width / 10 icons so it won't overflow if (num == 0) return; SpriteID sprite = CargoSpec::Get(i)->GetCargoIcon(); @@ -1393,7 +1393,7 @@ struct StationViewWindow : public Window { case WID_SV_WAITING: resize->height = FONT_HEIGHT_NORMAL; size->height = WD_FRAMERECT_TOP + 4 * resize->height + WD_FRAMERECT_BOTTOM; - this->expand_shrink_width = max(GetStringBoundingBox("-").width, GetStringBoundingBox("+").width) + WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT; + this->expand_shrink_width = std::max(GetStringBoundingBox("-").width, GetStringBoundingBox("+").width) + WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT; break; case WID_SV_ACCEPT_RATING_LIST: @@ -2219,7 +2219,7 @@ static const T *FindStationsNearby(TileArea ta, bool distant_join) for (const BaseStation *st : BaseStation::Iterate()) { if (T::IsExpected(st) && !st->IsInUse() && st->owner == _local_company) { /* Include only within station spread (yes, it is strictly less than) */ - if (max(DistanceMax(ta.tile, st->xy), DistanceMax(TILE_ADDXY(ta.tile, ta.w - 1, ta.h - 1), st->xy)) < _settings_game.station.station_spread) { + if (std::max(DistanceMax(ta.tile, st->xy), DistanceMax(TILE_ADDXY(ta.tile, ta.w - 1, ta.h - 1), st->xy)) < _settings_game.station.station_spread) { _deleted_stations_nearby.push_back({st->xy, st->index}); /* Add the station when it's within where we're going to build */ @@ -2234,8 +2234,8 @@ static const T *FindStationsNearby(TileArea ta, bool distant_join) /* Only search tiles where we have a chance to stay within the station spread. * The complete check needs to be done in the callback as we don't know the * extent of the found station, yet. */ - if (distant_join && min(ta.w, ta.h) >= _settings_game.station.station_spread) return nullptr; - uint max_dist = distant_join ? _settings_game.station.station_spread - min(ta.w, ta.h) : 1; + if (distant_join && std::min(ta.w, ta.h) >= _settings_game.station.station_spread) return nullptr; + uint max_dist = distant_join ? _settings_game.station.station_spread - std::min(ta.w, ta.h) : 1; TileIndex tile = TileAddByDir(ctx.tile, DIR_N); CircularTileSearch(&tile, max_dist, ta.w, ta.h, AddNearbyStation<T>, &ctx); @@ -2319,7 +2319,7 @@ struct SelectStationWindow : Window { y += this->resize.step_height; } - for (uint i = max<uint>(1, this->vscroll->GetPosition()); i <= _stations_nearby_list.size(); ++i, y += this->resize.step_height) { + for (uint i = std::max<uint>(1, this->vscroll->GetPosition()); i <= _stations_nearby_list.size(); ++i, y += this->resize.step_height) { /* Don't draw anything if it extends past the end of the window. */ if (i - this->vscroll->GetPosition() >= this->vscroll->GetCapacity()) break; diff --git a/src/station_kdtree.h b/src/station_kdtree.h index 321bbacc6..1c91ed3d2 100644 --- a/src/station_kdtree.h +++ b/src/station_kdtree.h @@ -29,10 +29,10 @@ template <typename Func> void ForAllStationsRadius(TileIndex center, uint radius, Func func) { uint16 x1, y1, x2, y2; - x1 = (uint16)max<int>(0, TileX(center) - radius); - x2 = (uint16)min<int>(TileX(center) + radius + 1, MapSizeX()); - y1 = (uint16)max<int>(0, TileY(center) - radius); - y2 = (uint16)min<int>(TileY(center) + radius + 1, MapSizeY()); + x1 = (uint16)std::max<int>(0, TileX(center) - radius); + x2 = (uint16)std::min<int>(TileX(center) + radius + 1, MapSizeX()); + y1 = (uint16)std::max<int>(0, TileY(center) - radius); + y2 = (uint16)std::min<int>(TileY(center) + radius + 1, MapSizeY()); _station_kdtree.FindContained(x1, y1, x2, y2, [&](StationID id) { func(Station::Get(id)); diff --git a/src/statusbar_gui.cpp b/src/statusbar_gui.cpp index f97d0d431..52b972086 100644 --- a/src/statusbar_gui.cpp +++ b/src/statusbar_gui.cpp @@ -120,7 +120,7 @@ struct StatusBarWindow : Window { case WID_S_RIGHT: { int64 max_money = UINT32_MAX; - for (const Company *c : Company::Iterate()) max_money = max<int64>(c->money, max_money); + for (const Company *c : Company::Iterate()) max_money = std::max<int64>(c->money, max_money); SetDParam(0, 100LL * max_money); d = GetStringBoundingBox(STR_COMPANY_MONEY); break; @@ -137,7 +137,7 @@ struct StatusBarWindow : Window { void DrawWidget(const Rect &r, int widget) const override { - int text_offset = max(0, ((int)(r.bottom - r.top + 1) - FONT_HEIGHT_NORMAL) / 2); // Offset for rendering the text vertically centered + int text_offset = std::max(0, ((int)(r.bottom - r.top + 1) - FONT_HEIGHT_NORMAL) / 2); // Offset for rendering the text vertically centered int text_top = r.top + text_offset; switch (widget) { case WID_S_LEFT: @@ -185,7 +185,7 @@ struct StatusBarWindow : Window { if (!this->reminder_timeout.HasElapsed()) { Dimension icon_size = GetSpriteSize(SPR_UNREAD_NEWS); - DrawSprite(SPR_UNREAD_NEWS, PAL_NONE, r.right - WD_FRAMERECT_RIGHT - icon_size.width, r.top + max(0, ((int)(r.bottom - r.top + 1) - (int)icon_size.height) / 2)); + DrawSprite(SPR_UNREAD_NEWS, PAL_NONE, r.right - WD_FRAMERECT_RIGHT - icon_size.width, r.top + std::max(0, ((int)(r.bottom - r.top + 1) - (int)icon_size.height) / 2)); } break; } diff --git a/src/stdafx.h b/src/stdafx.h index 7d5a8754f..0244e567d 100644 --- a/src/stdafx.h +++ b/src/stdafx.h @@ -85,6 +85,7 @@ # define INT8_MIN (-INT8_MAX - 1) #endif +#include <algorithm> #include <cstdio> #include <cstddef> #include <cstring> diff --git a/src/story_gui.cpp b/src/story_gui.cpp index 21429994c..0ed39ba04 100644 --- a/src/story_gui.cpp +++ b/src/story_gui.cpp @@ -437,8 +437,8 @@ protected: int right_offset = (right_width == 0) ? 0 : (right_width + element_dist); if (left_offset + right_offset + min_required_width >= max_width) { /* Width of floats leave too little for main content, push down */ - main_y = max(main_y, left_y); - main_y = max(main_y, right_y); + main_y = std::max(main_y, left_y); + main_y = std::max(main_y, right_y); left_width = right_width = 0; left_offset = right_offset = 0; /* Do not add element_dist here, to keep together elements which were supposed to float besides each other. */ @@ -469,7 +469,7 @@ protected: main_y += element_dist; /* Clear all floats */ left_width = right_width = 0; - left_y = right_y = main_y = max(main_y, max(left_y, right_y)); + left_y = right_y = main_y = std::max({main_y, left_y, right_y}); left_floats.clear(); right_floats.clear(); } else { @@ -478,7 +478,7 @@ protected: int &cur_y = (fl == ElementFloat::Left) ? left_y : right_y; std::vector<size_t> &cur_floats = (fl == ElementFloat::Left) ? left_floats : right_floats; /* Position element */ - cur_width = max(cur_width, this->GetPageElementFloatWidth(*pe)); + cur_width = std::max(cur_width, this->GetPageElementFloatWidth(*pe)); LayoutCacheElement ce{ pe, {} }; ce.bounds.left = (fl == ElementFloat::Left) ? 0 : (max_width - cur_width); ce.bounds.right = (fl == ElementFloat::Left) ? cur_width : max_width; @@ -507,7 +507,7 @@ protected: this->EnsureStoryPageElementLayout(); /* The largest bottom coordinate of any element is the height of the content */ - uint max_y = std::accumulate(this->layout_cache.begin(), this->layout_cache.end(), 0, [](uint max_y, const LayoutCacheElement &ce) -> uint { return max<uint>(max_y, ce.bounds.bottom); }); + uint max_y = std::accumulate(this->layout_cache.begin(), this->layout_cache.end(), 0, [](uint max_y, const LayoutCacheElement &ce) -> uint { return std::max<uint>(max_y, ce.bounds.bottom); }); return max_y; } @@ -526,7 +526,7 @@ protected: void DrawActionElement(int &y_offset, int width, int line_height, SpriteID action_sprite, StringID string_id = STR_JUST_RAW_STRING) const { Dimension sprite_dim = GetSpriteSize(action_sprite); - uint element_height = max(sprite_dim.height, (uint)line_height); + uint element_height = std::max(sprite_dim.height, (uint)line_height); uint sprite_top = y_offset + (element_height - sprite_dim.height) / 2; uint text_top = y_offset + (element_height - line_height) / 2; diff --git a/src/strgen/strgen.cpp b/src/strgen/strgen.cpp index 87bac5ab6..9377e6362 100644 --- a/src/strgen/strgen.cpp +++ b/src/strgen/strgen.cpp @@ -304,7 +304,7 @@ struct HeaderFileWriter : HeaderWriter, FileWriter { /* Find the plural form with the most amount of cases. */ int max_plural_forms = 0; for (uint i = 0; i < lengthof(_plural_forms); i++) { - max_plural_forms = max(max_plural_forms, _plural_forms[i].plural_count); + max_plural_forms = std::max(max_plural_forms, _plural_forms[i].plural_count); } fprintf(this->fh, diff --git a/src/strgen/strgen_base.cpp b/src/strgen/strgen_base.cpp index 7e43471b2..60e27e752 100644 --- a/src/strgen/strgen_base.cpp +++ b/src/strgen/strgen_base.cpp @@ -388,7 +388,7 @@ void EmitPlural(Buffer *buffer, char *buf, int value) int argidx = _cur_argidx; int offset = -1; int expected = _plural_forms[_lang.plural_form].plural_count; - const char **words = AllocaM(const char *, max(expected, MAX_PLURALS)); + const char **words = AllocaM(const char *, std::max(expected, MAX_PLURALS)); int nw = 0; /* Parse out the number, if one exists. Otherwise default to prev arg. */ @@ -489,7 +489,7 @@ static uint ResolveCaseName(const char *str, size_t len) { /* First get a clean copy of only the case name, then resolve it. */ char case_str[CASE_GENDER_LEN]; - len = min(lengthof(case_str) - 1, len); + len = std::min(lengthof(case_str) - 1, len); memcpy(case_str, str, len); case_str[len] = '\0'; diff --git a/src/string.cpp b/src/string.cpp index 91c1aa147..adc757b87 100644 --- a/src/string.cpp +++ b/src/string.cpp @@ -62,7 +62,7 @@ int CDECL vseprintf(char *str, const char *last, const char *format, va_list ap) { ptrdiff_t diff = last - str; if (diff < 0) return 0; - return min((int)diff, vsnprintf(str, diff + 1, format, ap)); + return std::min(static_cast<int>(diff), vsnprintf(str, diff + 1, format, ap)); } /** diff --git a/src/strings.cpp b/src/strings.cpp index adb874ba1..0f270ca8b 100644 --- a/src/strings.cpp +++ b/src/strings.cpp @@ -108,7 +108,7 @@ void SetDParamMaxValue(uint n, uint64 max_value, uint min_count, FontSize size) num_digits++; max_value /= 10; } - SetDParamMaxDigits(n, max(min_count, num_digits), size); + SetDParamMaxDigits(n, std::max(min_count, num_digits), size); } /** @@ -1663,7 +1663,7 @@ static char *GetSpecialNameString(char *buff, int ind, StringParameters *args, c { switch (ind) { case 1: // not used - return strecpy(buff, _silly_company_names[min(args->GetInt32() & 0xFFFF, lengthof(_silly_company_names) - 1)], last); + return strecpy(buff, _silly_company_names[std::min<uint>(args->GetInt32() & 0xFFFF, lengthof(_silly_company_names) - 1)], last); case 2: // used for Foobar & Co company names return GenAndCoName(buff, args->GetInt32(), last); diff --git a/src/terraform_cmd.cpp b/src/terraform_cmd.cpp index 85edb7312..1bc4cb1e2 100644 --- a/src/terraform_cmd.cpp +++ b/src/terraform_cmd.cpp @@ -240,8 +240,8 @@ CommandCost CmdTerraformLand(TileIndex tile, DoCommandFlag flags, uint32 p1, uin int z_E = TerraformGetHeightOfTile(&ts, tile + TileDiffXY(0, 1)); /* Find min and max height of tile */ - int z_min = min(min(z_N, z_W), min(z_S, z_E)); - int z_max = max(max(z_N, z_W), max(z_S, z_E)); + int z_min = std::min({z_N, z_W, z_S, z_E}); + int z_max = std::max({z_N, z_W, z_S, z_E}); /* Compute tile slope */ Slope tileh = (z_max > z_min + 1 ? SLOPE_STEEP : SLOPE_FLAT); diff --git a/src/terraform_gui.cpp b/src/terraform_gui.cpp index 9f727ce72..2f017e6b1 100644 --- a/src/terraform_gui.cpp +++ b/src/terraform_gui.cpp @@ -409,13 +409,13 @@ static void CommonRaiseLowerBigLand(TileIndex tile, int mode) /* Raise land */ h = MAX_TILE_HEIGHT; TILE_AREA_LOOP(tile2, ta) { - h = min(h, TileHeight(tile2)); + h = std::min(h, TileHeight(tile2)); } } else { /* Lower land */ h = 0; TILE_AREA_LOOP(tile2, ta) { - h = max(h, TileHeight(tile2)); + h = std::max(h, TileHeight(tile2)); } } @@ -547,8 +547,8 @@ struct ScenarioEditorLandscapeGenerationWindow : Window { { if (widget != WID_ETT_DOTS) return; - size->width = max<uint>(size->width, ScaleGUITrad(59)); - size->height = max<uint>(size->height, ScaleGUITrad(31)); + size->width = std::max<uint>(size->width, ScaleGUITrad(59)); + size->height = std::max<uint>(size->height, ScaleGUITrad(31)); } void DrawWidget(const Rect &r, int widget) const override diff --git a/src/textfile_gui.cpp b/src/textfile_gui.cpp index 7b728e9b2..b83e38187 100644 --- a/src/textfile_gui.cpp +++ b/src/textfile_gui.cpp @@ -98,7 +98,7 @@ uint TextfileWindow::GetContentHeight() resize->height = 1; size->height = 4 * resize->height + TOP_SPACING + BOTTOM_SPACING; // At least 4 lines are visible. - size->width = max(200u, size->width); // At least 200 pixels wide. + size->width = std::max(200u, size->width); // At least 200 pixels wide. break; } } @@ -112,7 +112,7 @@ void TextfileWindow::SetupScrollbars() } else { uint max_length = 0; for (uint i = 0; i < this->lines.size(); i++) { - max_length = max(max_length, GetStringBoundingBox(this->lines[i], FS_MONO).width); + max_length = std::max(max_length, GetStringBoundingBox(this->lines[i], FS_MONO).width); } this->vscroll->SetCount((uint)this->lines.size() * FONT_HEIGHT_MONO); this->hscroll->SetCount(max_length + WD_FRAMETEXT_LEFT + WD_FRAMETEXT_RIGHT); diff --git a/src/tgp.cpp b/src/tgp.cpp index fb5c69cf7..f6d902255 100644 --- a/src/tgp.cpp +++ b/src/tgp.cpp @@ -234,8 +234,8 @@ static height_t TGPGetMaxHeight() { 12, 19, 25, 31, 67, 75, 87 }, ///< Alpinist }; - int max_height_from_table = max_height[_settings_game.difficulty.terrain_type][min(MapLogX(), MapLogY()) - MIN_MAP_SIZE_BITS]; - return I2H(min(max_height_from_table, _settings_game.construction.max_heightlevel)); + int max_height_from_table = max_height[_settings_game.difficulty.terrain_type][std::min(MapLogX(), MapLogY()) - MIN_MAP_SIZE_BITS]; + return I2H(std::min<uint>(max_height_from_table, _settings_game.construction.max_heightlevel)); } /** @@ -270,7 +270,7 @@ static amplitude_t GetAmplitude(int frequency) /* Get the table index, and return that value if possible. */ int index = frequency - MAX_TGP_FREQUENCIES + lengthof(amplitudes[smoothness]); - amplitude_t amplitude = amplitudes[smoothness][max(0, index)]; + amplitude_t amplitude = amplitudes[smoothness][std::max(0, index)]; if (index >= 0) return amplitude; /* We need to extrapolate the amplitude. */ @@ -349,7 +349,7 @@ static void HeightMapGenerate() /* Trying to apply noise to uninitialized height map */ assert(_height_map.h != nullptr); - int start = max(MAX_TGP_FREQUENCIES - (int)min(MapLogX(), MapLogY()), 0); + int start = std::max(MAX_TGP_FREQUENCIES - (int)std::min(MapLogX(), MapLogY()), 0); bool first = true; for (int frequency = start; frequency < MAX_TGP_FREQUENCIES; frequency++) { @@ -725,7 +725,7 @@ static double perlin_coast_noise_2D(const double x, const double y, const double */ static void HeightMapCoastLines(uint8 water_borders) { - int smallest_size = min(_settings_game.game_creation.map_x, _settings_game.game_creation.map_y); + int smallest_size = std::min(_settings_game.game_creation.map_x, _settings_game.game_creation.map_y); const int margin = 4; int y, x; double max_x; @@ -736,7 +736,7 @@ static void HeightMapCoastLines(uint8 water_borders) if (HasBit(water_borders, BORDER_NE)) { /* Top right */ max_x = abs((perlin_coast_noise_2D(_height_map.size_y - y, y, 0.9, 53) + 0.25) * 5 + (perlin_coast_noise_2D(y, y, 0.35, 179) + 1) * 12); - max_x = max((smallest_size * smallest_size / 64) + max_x, (smallest_size * smallest_size / 64) + margin - max_x); + max_x = std::max((smallest_size * smallest_size / 64) + max_x, (smallest_size * smallest_size / 64) + margin - max_x); if (smallest_size < 8 && max_x > 5) max_x /= 1.5; for (x = 0; x < max_x; x++) { _height_map.height(x, y) = 0; @@ -746,7 +746,7 @@ static void HeightMapCoastLines(uint8 water_borders) if (HasBit(water_borders, BORDER_SW)) { /* Bottom left */ max_x = abs((perlin_coast_noise_2D(_height_map.size_y - y, y, 0.85, 101) + 0.3) * 6 + (perlin_coast_noise_2D(y, y, 0.45, 67) + 0.75) * 8); - max_x = max((smallest_size * smallest_size / 64) + max_x, (smallest_size * smallest_size / 64) + margin - max_x); + max_x = std::max((smallest_size * smallest_size / 64) + max_x, (smallest_size * smallest_size / 64) + margin - max_x); if (smallest_size < 8 && max_x > 5) max_x /= 1.5; for (x = _height_map.size_x; x > (_height_map.size_x - 1 - max_x); x--) { _height_map.height(x, y) = 0; @@ -759,7 +759,7 @@ static void HeightMapCoastLines(uint8 water_borders) if (HasBit(water_borders, BORDER_NW)) { /* Top left */ max_y = abs((perlin_coast_noise_2D(x, _height_map.size_y / 2, 0.9, 167) + 0.4) * 5 + (perlin_coast_noise_2D(x, _height_map.size_y / 3, 0.4, 211) + 0.7) * 9); - max_y = max((smallest_size * smallest_size / 64) + max_y, (smallest_size * smallest_size / 64) + margin - max_y); + max_y = std::max((smallest_size * smallest_size / 64) + max_y, (smallest_size * smallest_size / 64) + margin - max_y); if (smallest_size < 8 && max_y > 5) max_y /= 1.5; for (y = 0; y < max_y; y++) { _height_map.height(x, y) = 0; @@ -769,7 +769,7 @@ static void HeightMapCoastLines(uint8 water_borders) if (HasBit(water_borders, BORDER_SE)) { /* Bottom right */ max_y = abs((perlin_coast_noise_2D(x, _height_map.size_y / 3, 0.85, 71) + 0.25) * 6 + (perlin_coast_noise_2D(x, _height_map.size_y / 3, 0.35, 193) + 0.75) * 12); - max_y = max((smallest_size * smallest_size / 64) + max_y, (smallest_size * smallest_size / 64) + margin - max_y); + max_y = std::max((smallest_size * smallest_size / 64) + max_y, (smallest_size * smallest_size / 64) + margin - max_y); if (smallest_size < 8 && max_y > 5) max_y /= 1.5; for (y = _height_map.size_y; y > (_height_map.size_y - 1 - max_y); y--) { _height_map.height(x, y) = 0; @@ -809,7 +809,7 @@ static void HeightMapSmoothCoastInDirection(int org_x, int org_y, int dir_x, int * Soften the coast slope */ for (depth = 0; IsValidXY(x, y) && depth <= max_coast_Smooth_depth; depth++, x += dir_x, y += dir_y) { h = _height_map.height(x, y); - h = min(h, h_prev + (4 + depth)); // coast softening formula + h = std::min<uint>(h, h_prev + (4 + depth)); // coast softening formula _height_map.height(x, y) = h; h_prev = h; } @@ -842,13 +842,13 @@ static void HeightMapSmoothSlopes(height_t dh_max) { for (int y = 0; y <= (int)_height_map.size_y; y++) { for (int x = 0; x <= (int)_height_map.size_x; x++) { - height_t h_max = min(_height_map.height(x > 0 ? x - 1 : x, y), _height_map.height(x, y > 0 ? y - 1 : y)) + dh_max; + height_t h_max = std::min(_height_map.height(x > 0 ? x - 1 : x, y), _height_map.height(x, y > 0 ? y - 1 : y)) + dh_max; if (_height_map.height(x, y) > h_max) _height_map.height(x, y) = h_max; } } for (int y = _height_map.size_y; y >= 0; y--) { for (int x = _height_map.size_x; x >= 0; x--) { - height_t h_max = min(_height_map.height(x < _height_map.size_x ? x + 1 : x, y), _height_map.height(x, y < _height_map.size_y ? y + 1 : y)) + dh_max; + height_t h_max = std::min(_height_map.height(x < _height_map.size_x ? x + 1 : x, y), _height_map.height(x, y < _height_map.size_y ? y + 1 : y)) + dh_max; if (_height_map.height(x, y) > h_max) _height_map.height(x, y) = h_max; } } diff --git a/src/tile_map.cpp b/src/tile_map.cpp index 0b5c8e070..2b8db5e24 100644 --- a/src/tile_map.cpp +++ b/src/tile_map.cpp @@ -28,15 +28,15 @@ static Slope GetTileSlopeGivenHeight(int hnorth, int hwest, int heast, int hsout * * Also, there is at most 1 corner with height difference of 2. */ - int hminnw = min(hnorth, hwest); - int hmines = min(heast, hsouth); - int hmin = min(hminnw, hmines); + int hminnw = std::min(hnorth, hwest); + int hmines = std::min(heast, hsouth); + int hmin = std::min(hminnw, hmines); if (h != nullptr) *h = hmin; - int hmaxnw = max(hnorth, hwest); - int hmaxes = max(heast, hsouth); - int hmax = max(hmaxnw, hmaxes); + int hmaxnw = std::max(hnorth, hwest); + int hmaxes = std::max(heast, hsouth); + int hmax = std::max(hmaxnw, hmaxes); Slope r = SLOPE_FLAT; @@ -60,8 +60,8 @@ Slope GetTileSlope(TileIndex tile, int *h) { uint x1 = TileX(tile); uint y1 = TileY(tile); - uint x2 = min(x1 + 1, MapMaxX()); - uint y2 = min(y1 + 1, MapMaxY()); + uint x2 = std::min(x1 + 1, MapMaxX()); + uint y2 = std::min(y1 + 1, MapMaxY()); int hnorth = TileHeight(tile); // Height of the North corner. int hwest = TileHeight(TileXY(x2, y1)); // Height of the West corner. @@ -101,8 +101,8 @@ bool IsTileFlat(TileIndex tile, int *h) { uint x1 = TileX(tile); uint y1 = TileY(tile); - uint x2 = min(x1 + 1, MapMaxX()); - uint y2 = min(y1 + 1, MapMaxY()); + uint x2 = std::min(x1 + 1, MapMaxX()); + uint y2 = std::min(y1 + 1, MapMaxY()); uint z = TileHeight(tile); if (TileHeight(TileXY(x2, y1)) != z) return false; @@ -122,15 +122,15 @@ int GetTileZ(TileIndex tile) { uint x1 = TileX(tile); uint y1 = TileY(tile); - uint x2 = min(x1 + 1, MapMaxX()); - uint y2 = min(y1 + 1, MapMaxY()); - - int h = TileHeight(tile); // N corner - h = min(h, TileHeight(TileXY(x2, y1))); // W corner - h = min(h, TileHeight(TileXY(x1, y2))); // E corner - h = min(h, TileHeight(TileXY(x2, y2))); // S corner - - return h; + uint x2 = std::min(x1 + 1, MapMaxX()); + uint y2 = std::min(y1 + 1, MapMaxY()); + + return std::min({ + TileHeight(tile), // N corner + TileHeight(TileXY(x2, y1)), // W corner + TileHeight(TileXY(x1, y2)), // E corner + TileHeight(TileXY(x2, y2)), // S corner + }); } /** @@ -142,13 +142,13 @@ int GetTileMaxZ(TileIndex t) { uint x1 = TileX(t); uint y1 = TileY(t); - uint x2 = min(x1 + 1, MapMaxX()); - uint y2 = min(y1 + 1, MapMaxY()); - - int h = TileHeight(t); // N corner - h = max<int>(h, TileHeight(TileXY(x2, y1))); // W corner - h = max<int>(h, TileHeight(TileXY(x1, y2))); // E corner - h = max<int>(h, TileHeight(TileXY(x2, y2))); // S corner - - return h; + uint x2 = std::min(x1 + 1, MapMaxX()); + uint y2 = std::min(y1 + 1, MapMaxY()); + + return std::max({ + TileHeight(t), // N corner + TileHeight(TileXY(x2, y1)), // W corner + TileHeight(TileXY(x1, y2)), // E corner + TileHeight(TileXY(x2, y2)), // S corner + }); } diff --git a/src/tilearea.cpp b/src/tilearea.cpp index 3f240feb4..84ac7a90f 100644 --- a/src/tilearea.cpp +++ b/src/tilearea.cpp @@ -57,10 +57,10 @@ void OrthogonalTileArea::Add(TileIndex to_add) uint ax = TileX(to_add); uint ay = TileY(to_add); - sx = min(ax, sx); - sy = min(ay, sy); - ex = max(ax, ex); - ey = max(ay, ey); + sx = std::min(ax, sx); + sy = std::min(ay, sy); + ex = std::max(ax, ex); + ey = std::max(ay, ey); this->tile = TileXY(sx, sy); this->w = ex - sx + 1; @@ -125,10 +125,10 @@ OrthogonalTileArea &OrthogonalTileArea::Expand(int rad) int x = TileX(this->tile); int y = TileY(this->tile); - int sx = max(x - rad, 0); - int sy = max(y - rad, 0); - int ex = min(x + this->w + rad, MapSizeX()); - int ey = min(y + this->h + rad, MapSizeY()); + int sx = std::max<int>(x - rad, 0); + int sy = std::max<int>(y - rad, 0); + int ex = std::min<int>(x + this->w + rad, MapSizeX()); + int ey = std::min<int>(y + this->h + rad, MapSizeY()); this->tile = TileXY(sx, sy); this->w = ex - sx; @@ -142,8 +142,8 @@ OrthogonalTileArea &OrthogonalTileArea::Expand(int rad) void OrthogonalTileArea::ClampToMap() { assert(this->tile < MapSize()); - this->w = min(this->w, MapSizeX() - TileX(this->tile)); - this->h = min(this->h, MapSizeY() - TileY(this->tile)); + this->w = std::min<int>(this->w, MapSizeX() - TileX(this->tile)); + this->h = std::min<int>(this->h, MapSizeY() - TileY(this->tile)); } /** @@ -225,9 +225,9 @@ TileIterator &DiagonalTileIterator::operator++() /* Special case: Every second column has zero length, skip them completely */ this->a_cur = 0; if (this->b_max > 0) { - this->b_cur = min(this->b_cur + 2, this->b_max); + this->b_cur = std::min(this->b_cur + 2, this->b_max); } else { - this->b_cur = max(this->b_cur - 2, this->b_max); + this->b_cur = std::max(this->b_cur - 2, this->b_max); } } else { /* Every column has at least one tile to process */ diff --git a/src/tilematrix_type.hpp b/src/tilematrix_type.hpp index 118c994cd..2ca165dc0 100644 --- a/src/tilematrix_type.hpp +++ b/src/tilematrix_type.hpp @@ -95,14 +95,14 @@ public: uint tile_y = (TileY(tile) / N) * N; uint w = N, h = N; - w += min(extend * N, tile_x); - h += min(extend * N, tile_y); + w += std::min(extend * N, tile_x); + h += std::min(extend * N, tile_y); - tile_x -= min(extend * N, tile_x); - tile_y -= min(extend * N, tile_y); + tile_x -= std::min(extend * N, tile_x); + tile_y -= std::min(extend * N, tile_y); - w += min(extend * N, MapSizeX() - tile_x - w); - h += min(extend * N, MapSizeY() - tile_y - h); + w += std::min(extend * N, MapSizeX() - tile_x - w); + h += std::min(extend * N, MapSizeY() - tile_y - h); return TileArea(TileXY(tile_x, tile_y), w, h); } diff --git a/src/timetable_cmd.cpp b/src/timetable_cmd.cpp index 58cf8d46b..76f8d3d2f 100644 --- a/src/timetable_cmd.cpp +++ b/src/timetable_cmd.cpp @@ -430,7 +430,7 @@ void UpdateVehicleTimetable(Vehicle *v, bool travelling) * the timetable entry like is done for road vehicles/ships. * Thus always make sure at least one tick is used between the * processing of different orders when filling the timetable. */ - uint time_to_set = CeilDiv(max(time_taken, 1U), DAY_TICKS) * DAY_TICKS; + uint time_to_set = CeilDiv(std::max(time_taken, 1U), DAY_TICKS) * DAY_TICKS; if (travelling && (autofilling || !real_current_order->IsTravelTimetabled())) { ChangeTimetable(v, v->cur_real_order_index, time_to_set, MTF_TRAVEL_TIME, autofilling); diff --git a/src/timetable_gui.cpp b/src/timetable_gui.cpp index 9e23ebabc..af90adc44 100644 --- a/src/timetable_gui.cpp +++ b/src/timetable_gui.cpp @@ -193,7 +193,7 @@ struct TimetableWindow : Window { case WID_VT_ARRIVAL_DEPARTURE_PANEL: SetDParamMaxValue(0, MAX_YEAR * DAYS_IN_YEAR, 0, FS_SMALL); this->deparr_time_width = GetStringBoundingBox(STR_JUST_DATE_TINY).width; - this->deparr_abbr_width = max(GetStringBoundingBox(STR_TIMETABLE_ARRIVAL_ABBREVIATION).width, GetStringBoundingBox(STR_TIMETABLE_DEPARTURE_ABBREVIATION).width); + this->deparr_abbr_width = std::max(GetStringBoundingBox(STR_TIMETABLE_ARRIVAL_ABBREVIATION).width, GetStringBoundingBox(STR_TIMETABLE_DEPARTURE_ABBREVIATION).width); size->width = WD_FRAMERECT_LEFT + this->deparr_abbr_width + 10 + this->deparr_time_width + WD_FRAMERECT_RIGHT; FALLTHROUGH; @@ -627,7 +627,7 @@ struct TimetableWindow : Window { if (!_settings_client.gui.timetable_in_ticks) val *= DAY_TICKS; } - uint32 p2 = minu(val, UINT16_MAX); + uint32 p2 = std::min<uint32>(val, UINT16_MAX); DoCommandP(0, p1, p2, CMD_CHANGE_TIMETABLE | CMD_MSG(STR_ERROR_CAN_T_TIMETABLE_VEHICLE)); } diff --git a/src/toolbar_gui.cpp b/src/toolbar_gui.cpp index 632025ddb..224c8ccdb 100644 --- a/src/toolbar_gui.cpp +++ b/src/toolbar_gui.cpp @@ -141,7 +141,7 @@ public: uint Height(uint width) const override { - return max(max(this->icon_size.height, this->lock_size.height) + 2U, (uint)FONT_HEIGHT_NORMAL); + return std::max(std::max(this->icon_size.height, this->lock_size.height) + 2U, (uint)FONT_HEIGHT_NORMAL); } void Draw(int left, int right, int top, int bottom, bool sel, Colours bg_colour) const override @@ -1356,10 +1356,10 @@ public: /* First initialise some variables... */ for (NWidgetBase *child_wid = this->head; child_wid != nullptr; child_wid = child_wid->next) { child_wid->SetupSmallestSize(w, init_array); - this->smallest_y = max(this->smallest_y, child_wid->smallest_y + child_wid->padding_top + child_wid->padding_bottom); + this->smallest_y = std::max(this->smallest_y, child_wid->smallest_y + child_wid->padding_top + child_wid->padding_bottom); if (this->IsButton(child_wid->type)) { nbuttons++; - this->smallest_x = max(this->smallest_x, child_wid->smallest_x + child_wid->padding_left + child_wid->padding_right); + this->smallest_x = std::max(this->smallest_x, child_wid->smallest_x + child_wid->padding_left + child_wid->padding_right); } else if (child_wid->type == NWID_SPACER) { this->spacers++; } @@ -1401,7 +1401,7 @@ public: /* Now assign the widgets to their rightful place */ uint position = 0; // Place to put next child relative to origin of the container. - uint spacer_space = max(0, (int)given_width - (int)(button_count * this->smallest_x)); // Remaining spacing for 'spacer' widgets + uint spacer_space = std::max(0, (int)given_width - (int)(button_count * this->smallest_x)); // Remaining spacing for 'spacer' widgets uint button_space = given_width - spacer_space; // Remaining spacing for the buttons uint spacer_i = 0; uint button_i = 0; @@ -1784,7 +1784,7 @@ class NWidgetMainToolbarContainer : public NWidgetToolbarContainer { }; /* If at least BIGGEST_ARRANGEMENT fit, just spread all the buttons nicely */ - uint full_buttons = max(CeilDiv(width, this->smallest_x), SMALLEST_ARRANGEMENT); + uint full_buttons = std::max(CeilDiv(width, this->smallest_x), SMALLEST_ARRANGEMENT); if (full_buttons > BIGGEST_ARRANGEMENT) { button_count = arrangable_count = lengthof(arrange_all); spacer_count = this->spacers; @@ -2266,7 +2266,7 @@ static NWidgetBase *MakeMainToolbar(int *biggest_index) hor->Add(new NWidgetLeaf(i == WID_TN_SAVE ? WWT_IMGBTN_2 : WWT_IMGBTN, COLOUR_GREY, i, toolbar_button_sprites[i], STR_TOOLBAR_TOOLTIP_PAUSE_GAME + i)); } - *biggest_index = max<int>(*biggest_index, WID_TN_SWITCH_BAR); + *biggest_index = std::max<int>(*biggest_index, WID_TN_SWITCH_BAR); return hor; } @@ -2418,13 +2418,13 @@ struct ScenarioEditorToolbarWindow : Window { { switch (widget) { case WID_TE_SPACER: - size->width = max(GetStringBoundingBox(STR_SCENEDIT_TOOLBAR_OPENTTD).width, GetStringBoundingBox(STR_SCENEDIT_TOOLBAR_SCENARIO_EDITOR).width) + WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT; + size->width = std::max(GetStringBoundingBox(STR_SCENEDIT_TOOLBAR_OPENTTD).width, GetStringBoundingBox(STR_SCENEDIT_TOOLBAR_SCENARIO_EDITOR).width) + WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT; break; case WID_TE_DATE: SetDParam(0, ConvertYMDToDate(MAX_YEAR, 0, 1)); *size = GetStringBoundingBox(STR_WHITE_DATE_LONG); - size->height = max(size->height, GetSpriteSize(SPR_IMG_SAVE).height + WD_IMGBTN_TOP + WD_IMGBTN_BOTTOM); + size->height = std::max(size->height, GetSpriteSize(SPR_IMG_SAVE).height + WD_IMGBTN_TOP + WD_IMGBTN_BOTTOM); break; } } diff --git a/src/town.h b/src/town.h index 3bb9e10d6..e186951e6 100644 --- a/src/town.h +++ b/src/town.h @@ -299,7 +299,7 @@ void MakeDefaultName(T *obj) * tick 0 is a valid tick so actual amount is one more than the counter value. */ static inline uint16 TownTicksToGameTicks(uint16 ticks) { - return (min(ticks, MAX_TOWN_GROWTH_TICKS) + 1) * TOWN_GROWTH_TICKS - 1; + return (std::min(ticks, MAX_TOWN_GROWTH_TICKS) + 1) * TOWN_GROWTH_TICKS - 1; } diff --git a/src/town_cmd.cpp b/src/town_cmd.cpp index ea13ff061..6bd78ff0d 100644 --- a/src/town_cmd.cpp +++ b/src/town_cmd.cpp @@ -813,7 +813,7 @@ static void TownTickHandler(Town *t) i = t->growth_rate; } else { /* If growth failed wait a bit before retrying */ - i = min(t->growth_rate, TOWN_GROWTH_TICKS - 1); + i = std::min<uint16>(t->growth_rate, TOWN_GROWTH_TICKS - 1); } } t->grow_counter = i; @@ -2136,7 +2136,7 @@ bool GenerateTowns(TownLayout layout) uint current_number = 0; uint difficulty = (_game_mode != GM_EDITOR) ? _settings_game.difficulty.number_towns : 0; uint total = (difficulty == (uint)CUSTOM_TOWN_NUMBER_DIFFICULTY) ? _settings_game.game_creation.custom_town_number : ScaleByMapSize(_num_initial_towns[difficulty] + (Random() & 7)); - total = min(TownPool::MAX_SIZE, total); + total = std::min<uint>(TownPool::MAX_SIZE, total); uint32 townnameparts; TownNames town_names; @@ -3143,7 +3143,7 @@ static CommandCost TownActionFundBuildings(Town *t, DoCommandFlag flags) * tick-perfect and gives player some time window where he can * spam funding with the exact same efficiency. */ - t->grow_counter = min(t->grow_counter, 2 * TOWN_GROWTH_TICKS - (t->growth_rate - t->grow_counter) % TOWN_GROWTH_TICKS); + t->grow_counter = std::min<uint16>(t->grow_counter, 2 * TOWN_GROWTH_TICKS - (t->growth_rate - t->grow_counter) % TOWN_GROWTH_TICKS); SetWindowDirty(WC_TOWN_VIEW, t->index); } @@ -3321,7 +3321,7 @@ static void UpdateTownRating(Town *t) /* Increase company ratings if they're low */ for (const Company *c : Company::Iterate()) { if (t->ratings[c->index] < RATING_GROWTH_MAXIMUM) { - t->ratings[c->index] = min((int)RATING_GROWTH_MAXIMUM, t->ratings[c->index] + RATING_GROWTH_UP_STEP); + t->ratings[c->index] = std::min((int)RATING_GROWTH_MAXIMUM, t->ratings[c->index] + RATING_GROWTH_UP_STEP); } } @@ -3329,12 +3329,12 @@ static void UpdateTownRating(Town *t) if (st->time_since_load <= 20 || st->time_since_unload <= 20) { if (Company::IsValidID(st->owner)) { int new_rating = t->ratings[st->owner] + RATING_STATION_UP_STEP; - t->ratings[st->owner] = min(new_rating, INT16_MAX); // do not let it overflow + t->ratings[st->owner] = std::min<int>(new_rating, INT16_MAX); // do not let it overflow } } else { if (Company::IsValidID(st->owner)) { int new_rating = t->ratings[st->owner] + RATING_STATION_DOWN_STEP; - t->ratings[st->owner] = max(new_rating, INT16_MIN); + t->ratings[st->owner] = std::max(new_rating, INT16_MIN); } } }); @@ -3358,7 +3358,7 @@ static void UpdateTownGrowCounter(Town *t, uint16 prev_growth_rate) { if (t->growth_rate == TOWN_GROWTH_RATE_NONE) return; if (prev_growth_rate == TOWN_GROWTH_RATE_NONE) { - t->grow_counter = min(t->growth_rate, t->grow_counter); + t->grow_counter = std::min<uint16>(t->growth_rate, t->grow_counter); return; } t->grow_counter = RoundDivSU((uint32)t->grow_counter * (t->growth_rate + 1), prev_growth_rate + 1); @@ -3399,7 +3399,7 @@ static uint GetNormalGrowthRate(Town *t) }; int n = CountActiveStations(t); - uint16 m = _grow_count_values[t->fund_buildings_months != 0 ? 0 : 1][min(n, 5)]; + uint16 m = _grow_count_values[t->fund_buildings_months != 0 ? 0 : 1][std::min(n, 5)]; uint growth_multiplier = _settings_game.economy.town_growth_rate != 0 ? _settings_game.economy.town_growth_rate - 1 : 1; diff --git a/src/town_gui.cpp b/src/town_gui.cpp index f199d8a97..0f143701c 100644 --- a/src/town_gui.cpp +++ b/src/town_gui.cpp @@ -245,7 +245,7 @@ public: size->height = WD_FRAMERECT_TOP + 5 * FONT_HEIGHT_NORMAL + WD_FRAMERECT_BOTTOM; size->width = GetStringBoundingBox(STR_LOCAL_AUTHORITY_ACTIONS_TITLE).width; for (uint i = 0; i < TACT_COUNT; i++ ) { - size->width = max(size->width, GetStringBoundingBox(STR_LOCAL_AUTHORITY_ACTION_SMALL_ADVERTISING_CAMPAIGN + i).width); + size->width = std::max(size->width, GetStringBoundingBox(STR_LOCAL_AUTHORITY_ACTION_SMALL_ADVERTISING_CAMPAIGN + i).width); } size->width += WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT; break; @@ -866,7 +866,7 @@ public: } Dimension icon_size = GetSpriteSize(SPR_TOWN_RATING_GOOD); d.width += icon_size.width + 2; - d.height = max(d.height, icon_size.height); + d.height = std::max(d.height, icon_size.height); resize->height = d.height; d.height *= 5; d.width += padding.width + WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT; diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index ae9cb45de..ddd8cafc7 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -78,7 +78,7 @@ void CheckTrainsLengths() for (const Train *u = v, *w = v->Next(); w != nullptr; u = w, w = w->Next()) { if (u->track != TRACK_BIT_DEPOT) { if ((w->track != TRACK_BIT_DEPOT && - max(abs(u->x_pos - w->x_pos), abs(u->y_pos - w->y_pos)) != u->CalcNextVehicleOffset()) || + std::max(abs(u->x_pos - w->x_pos), abs(u->y_pos - w->y_pos)) != u->CalcNextVehicleOffset()) || (w->track == TRACK_BIT_DEPOT && TicksToLeaveDepot(u) <= 0)) { SetDParam(0, v->index); SetDParam(1, v->owner); @@ -181,7 +181,7 @@ void Train::ConsistChanged(ConsistChangeFlags allowed_changes) /* max speed is the minimum of the speed limits of all vehicles in the consist */ if ((rvi_u->railveh_type != RAILVEH_WAGON || _settings_game.vehicle.wagon_speed_limits) && !UsesWagonOverride(u)) { uint16 speed = GetVehicleProperty(u, PROP_TRAIN_SPEED, rvi_u->max_speed); - if (speed != 0) max_speed = min(speed, max_speed); + if (speed != 0) max_speed = std::min(speed, max_speed); } } @@ -189,7 +189,7 @@ void Train::ConsistChanged(ConsistChangeFlags allowed_changes) if (allowed_changes & CCF_CAPACITY) { /* Update vehicle capacity. */ if (u->cargo_cap > new_cap) u->cargo.Truncate(new_cap); - u->refit_cap = min(new_cap, u->refit_cap); + u->refit_cap = std::min(new_cap, u->refit_cap); u->cargo_cap = new_cap; } else { /* Verify capacity hasn't changed. */ @@ -391,26 +391,26 @@ int Train::GetCurrentMaxSpeed() const st_max_speed = this->cur_speed - (delta_v / 10); } - st_max_speed = max(st_max_speed, 25 * distance_to_go); - max_speed = min(max_speed, st_max_speed); + st_max_speed = std::max(st_max_speed, 25 * distance_to_go); + max_speed = std::min(max_speed, st_max_speed); } } } for (const Train *u = this; u != nullptr; u = u->Next()) { if (_settings_game.vehicle.train_acceleration_model == AM_REALISTIC && u->track == TRACK_BIT_DEPOT) { - max_speed = min(max_speed, 61); + max_speed = std::min(max_speed, 61); break; } /* Vehicle is on the middle part of a bridge. */ if (u->track == TRACK_BIT_WORMHOLE && !(u->vehstatus & VS_HIDDEN)) { - max_speed = min(max_speed, GetBridgeSpec(GetBridgeType(u->tile))->speed); + max_speed = std::min<int>(max_speed, GetBridgeSpec(GetBridgeType(u->tile))->speed); } } - max_speed = min(max_speed, this->current_order.GetMaxSpeed()); - return min(max_speed, this->gcache.cached_max_track_speed); + max_speed = std::min<int>(max_speed, this->current_order.GetMaxSpeed()); + return std::min<int>(max_speed, this->gcache.cached_max_track_speed); } /** Update acceleration of the train from the cached power and weight. */ @@ -567,9 +567,9 @@ void GetTrainSpriteSize(EngineID engine, uint &width, uint &height, int &xoffs, /* Calculate values relative to an imaginary center between the two sprites. */ width = ScaleGUITrad(TRAININFO_DEFAULT_VEHICLE_WIDTH) + UnScaleGUI(rect.right) - xoffs; - height = max<uint>(height, UnScaleGUI(rect.bottom - rect.top + 1)); + height = std::max<uint>(height, UnScaleGUI(rect.bottom - rect.top + 1)); xoffs = xoffs - ScaleGUITrad(TRAININFO_DEFAULT_VEHICLE_WIDTH) / 2; - yoffs = min(yoffs, UnScaleGUI(rect.top)); + yoffs = std::min(yoffs, UnScaleGUI(rect.top)); } } diff --git a/src/train_gui.cpp b/src/train_gui.cpp index 476c8f9cd..c8995f9b7 100644 --- a/src/train_gui.cpp +++ b/src/train_gui.cpp @@ -67,9 +67,9 @@ static int HighlightDragPosition(int px, int max_width, VehicleID selection, boo dragged_width += t->GetDisplayImageWidth(nullptr); } - int drag_hlight_left = rtl ? max(px - dragged_width + 1, 0) : px; - int drag_hlight_right = rtl ? px : min(px + dragged_width, max_width) - 1; - int drag_hlight_width = max(drag_hlight_right - drag_hlight_left + 1, 0); + int drag_hlight_left = rtl ? std::max(px - dragged_width + 1, 0) : px; + int drag_hlight_right = rtl ? px : std::min(px + dragged_width, max_width) - 1; + int drag_hlight_width = std::max(drag_hlight_right - drag_hlight_left + 1, 0); if (drag_hlight_width > 0) { GfxFillRect(drag_hlight_left + WD_FRAMERECT_LEFT, WD_FRAMERECT_TOP + 1, @@ -337,7 +337,7 @@ int GetTrainDetailsWndVScroll(VehicleID veh_id, TrainDetailsWindowTabs det_tab) } else { for (const Train *v = Train::Get(veh_id); v != nullptr; v = v->GetNextVehicle()) { GetCargoSummaryOfArticulatedVehicle(v, &_cargo_summary); - num += max(1u, (unsigned)_cargo_summary.size()); + num += std::max(1u, (unsigned)_cargo_summary.size()); uint length = GetLengthOfArticulatedVehicle(v); if (length > TRAIN_DETAILS_MAX_INDENT) num++; @@ -364,7 +364,7 @@ void DrawTrainDetails(const Train *v, int left, int right, int y, int vscroll_po y -= WD_MATRIX_TOP; int sprite_height = ScaleGUITrad(GetVehicleHeight(VEH_TRAIN)); - int line_height = max(sprite_height, WD_MATRIX_TOP + FONT_HEIGHT_NORMAL + WD_MATRIX_BOTTOM); + int line_height = std::max(sprite_height, WD_MATRIX_TOP + FONT_HEIGHT_NORMAL + WD_MATRIX_BOTTOM); int sprite_y_offset = line_height / 2; int text_y_offset = (line_height - FONT_HEIGHT_NORMAL) / 2; @@ -405,9 +405,9 @@ void DrawTrainDetails(const Train *v, int left, int right, int y, int vscroll_po dx = 0; } - uint num_lines = max(1u, (unsigned)_cargo_summary.size()); + uint num_lines = std::max(1u, (unsigned)_cargo_summary.size()); for (uint i = 0; i < num_lines; i++) { - int sprite_width = max<int>(dx, ScaleGUITrad(TRAIN_DETAILS_MIN_INDENT)) + 3; + int sprite_width = std::max<int>(dx, ScaleGUITrad(TRAIN_DETAILS_MIN_INDENT)) + 3; int data_left = left + (rtl ? 0 : sprite_width); int data_right = right - (rtl ? sprite_width : 0); if (vscroll_pos <= 0 && vscroll_pos > -vscroll_cap) { diff --git a/src/tree_cmd.cpp b/src/tree_cmd.cpp index 60eb781f5..f4610b569 100644 --- a/src/tree_cmd.cpp +++ b/src/tree_cmd.cpp @@ -163,7 +163,7 @@ static void PlaceTree(TileIndex tile, uint32 r) TreeType tree = GetRandomTreeType(tile, GB(r, 24, 8)); if (tree != TREE_INVALID) { - PlantTreesOnTile(tile, tree, GB(r, 22, 2), min(GB(r, 16, 3), 6)); + PlantTreesOnTile(tile, tree, GB(r, 22, 2), std::min<byte>(GB(r, 16, 3), 6)); /* Rerandomize ground, if neither snow nor shore */ TreeGround ground = GetTreeGround(tile); @@ -658,7 +658,7 @@ static void TileLoopTreesAlps(TileIndex tile) default: return; } } else { - uint density = min<uint>(k, 3); + uint density = std::min<uint>(k, 3); if (GetTreeGround(tile) != TREE_GROUND_SNOW_DESERT && GetTreeGround(tile) != TREE_GROUND_ROUGH_SNOW) { TreeGround tg = GetTreeGround(tile) == TREE_GROUND_ROUGH ? TREE_GROUND_ROUGH_SNOW : TREE_GROUND_SNOW_DESERT; diff --git a/src/tree_gui.cpp b/src/tree_gui.cpp index ee94c35af..3dab92a20 100644 --- a/src/tree_gui.cpp +++ b/src/tree_gui.cpp @@ -65,8 +65,8 @@ static Dimension GetMaxTreeSpriteSize() for (int i = base; i < base + count; i++) { if (i >= (int)lengthof(tree_sprites)) return size; this_size = GetSpriteSize(tree_sprites[i].sprite, &offset); - size.width = max<int>(size.width, 2 * max<int>(this_size.width, -offset.x)); - size.height = max<int>(size.height, max<int>(this_size.height, -offset.y)); + size.width = std::max<int>(size.width, 2 * std::max<int>(this_size.width, -offset.x)); + size.height = std::max<int>(size.height, std::max<int>(this_size.height, -offset.y)); } return size; diff --git a/src/tunnelbridge_cmd.cpp b/src/tunnelbridge_cmd.cpp index 0423cde1f..e19b64c50 100644 --- a/src/tunnelbridge_cmd.cpp +++ b/src/tunnelbridge_cmd.cpp @@ -206,7 +206,7 @@ CommandCost CheckBridgeAvailability(BridgeType bridge_type, uint bridge_len, DoC const BridgeSpec *b = GetBridgeSpec(bridge_type); if (b->avail_year > _cur_year) return CMD_ERROR; - uint max = min(b->max_length, _settings_game.construction.max_bridge_length); + uint max = std::min(b->max_length, _settings_game.construction.max_bridge_length); if (b->min_length > bridge_len) return CMD_ERROR; if (bridge_len <= max) return CommandCost(); @@ -1079,8 +1079,8 @@ static void DrawBridgePillars(const PalSpriteID *psid, const TileInfo *ti, Axis GetSlopePixelZOnEdge(ti->tileh, ReverseDiagDir(south_dir), &z_front_north, &z_back_north); /* Shared height of pillars */ - int z_front = max(z_front_north, z_front_south); - int z_back = max(z_back_north, z_back_south); + int z_front = std::max(z_front_north, z_front_south); + int z_back = std::max(z_back_north, z_back_south); /* x and y size of bounding-box of pillars */ int w = bounding_box_size[axis]; @@ -1912,7 +1912,7 @@ static VehicleEnterTileStatus VehicleEnter_TunnelBridge(Vehicle *v, TileIndex ti if (v->type == VEH_ROAD) spd *= 2; Vehicle *first = v->First(); - first->cur_speed = min(first->cur_speed, spd); + first->cur_speed = std::min(first->cur_speed, spd); } if (vdir == dir) { diff --git a/src/vehicle.cpp b/src/vehicle.cpp index e35842118..e8901e059 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -973,7 +973,7 @@ void CallVehicleTicks() Vehicle *front = v->First(); if (v->vcache.cached_cargo_age_period != 0) { - v->cargo_age_counter = min(v->cargo_age_counter, v->vcache.cached_cargo_age_period); + v->cargo_age_counter = std::min(v->cargo_age_counter, v->vcache.cached_cargo_age_period); if (--v->cargo_age_counter == 0) { v->cargo.AgeCargo(); v->cargo_age_counter = v->vcache.cached_cargo_age_period; @@ -1213,7 +1213,7 @@ Vehicle *CheckClickOnVehicle(const Viewport *vp, int x, int y) x >= v->coord.left && x <= v->coord.right && y >= v->coord.top && y <= v->coord.bottom) { - dist = max( + dist = std::max( abs(((v->coord.left + v->coord.right) >> 1) - x), abs(((v->coord.top + v->coord.bottom) >> 1) - y) ); @@ -1256,7 +1256,7 @@ void CheckVehicleBreakdown(Vehicle *v) /* decrease reliability */ if (!_settings_game.order.no_servicing_if_no_breakdowns || _settings_game.difficulty.vehicle_breakdowns != 0) { - v->reliability = rel = max((rel_old = v->reliability) - v->reliability_spd_dec, 0); + v->reliability = rel = std::max((rel_old = v->reliability) - v->reliability_spd_dec, 0); if ((rel_old >> 8) != (rel >> 8)) SetWindowDirty(WC_VEHICLE_DETAILS, v->index); } @@ -1271,7 +1271,7 @@ void CheckVehicleBreakdown(Vehicle *v) /* increase chance of failure */ int chance = v->breakdown_chance + 1; if (Chance16I(1, 25, r)) chance += 25; - v->breakdown_chance = min(255, chance); + v->breakdown_chance = std::min(255, chance); /* calculate reliability value to use in comparison */ rel = v->reliability; @@ -1281,7 +1281,7 @@ void CheckVehicleBreakdown(Vehicle *v) if (_settings_game.difficulty.vehicle_breakdowns == 1) rel += 0x6666; /* check if to break down */ - if (_breakdown_chance[(uint)min(rel, 0xffff) >> 10] <= v->breakdown_chance) { + if (_breakdown_chance[(uint)std::min(rel, 0xffff) >> 10] <= v->breakdown_chance) { v->breakdown_ctr = GB(r, 16, 6) + 0x3F; v->breakdown_delay = GB(r, 24, 7) + 0x80; v->breakdown_chance = 0; @@ -1623,10 +1623,10 @@ void Vehicle::UpdateViewport(bool dirty) this->MarkAllViewportsDirty(); } else { ::MarkAllViewportsDirty( - min(old_coord.left, this->coord.left), - min(old_coord.top, this->coord.top), - max(old_coord.right, this->coord.right), - max(old_coord.bottom, this->coord.bottom)); + std::min(old_coord.left, this->coord.left), + std::min(old_coord.top, this->coord.top), + std::max(old_coord.right, this->coord.right), + std::max(old_coord.bottom, this->coord.bottom)); } } } @@ -1724,7 +1724,7 @@ FreeUnitIDGenerator::FreeUnitIDGenerator(VehicleType type, CompanyID owner) : ca /* Find maximum */ for (const Vehicle *v : Vehicle::Iterate()) { if (v->type == type && v->owner == owner) { - this->maxid = max<UnitID>(this->maxid, v->unitnumber); + this->maxid = std::max<UnitID>(this->maxid, v->unitnumber); } } @@ -2279,7 +2279,7 @@ void Vehicle::HandleLoading(bool mode) { switch (this->current_order.GetType()) { case OT_LOADING: { - uint wait_time = max(this->current_order.GetTimetabledWait() - this->lateness_counter, 0); + uint wait_time = std::max(this->current_order.GetTimetabledWait() - this->lateness_counter, 0); /* Not the first call for this tick, or still loading */ if (mode || !HasBit(this->vehicle_flags, VF_LOADING_FINISHED) || this->current_order_time < wait_time) return; diff --git a/src/vehicle_cmd.cpp b/src/vehicle_cmd.cpp index 7e1d3a863..32706837f 100644 --- a/src/vehicle_cmd.cpp +++ b/src/vehicle_cmd.cpp @@ -433,14 +433,14 @@ static CommandCost RefitVehicle(Vehicle *v, bool only_this, uint8 num_vehicles, /* Store the result */ for (RefitResult &result : refit_result) { Vehicle *u = result.v; - u->refit_cap = (u->cargo_type == new_cid) ? min(result.capacity, u->refit_cap) : 0; + u->refit_cap = (u->cargo_type == new_cid) ? std::min<uint16>(result.capacity, u->refit_cap) : 0; if (u->cargo.TotalCount() > u->refit_cap) u->cargo.Truncate(u->cargo.TotalCount() - u->refit_cap); u->cargo_type = new_cid; u->cargo_cap = result.capacity; u->cargo_subtype = result.subtype; if (u->type == VEH_AIRCRAFT) { Vehicle *w = u->Next(); - w->refit_cap = min(w->refit_cap, result.mail_capacity); + w->refit_cap = std::min<uint16>(w->refit_cap, result.mail_capacity); w->cargo_cap = result.mail_capacity; if (w->cargo.TotalCount() > w->refit_cap) w->cargo.Truncate(w->cargo.TotalCount() - w->refit_cap); } diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index 50a011c8e..877767aa5 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -39,8 +39,6 @@ #include "safeguards.h" -#include <algorithm> - BaseVehicleListWindow::GroupBy _grouping[VLT_END][VEH_COMPANY_END]; Sorting _sorting[BaseVehicleListWindow::GB_END]; @@ -168,7 +166,7 @@ uint GetUnitNumberDigits(VehicleList &vehicles) { uint unitnumber = 0; for (const Vehicle *v : vehicles) { - unitnumber = max<uint>(unitnumber, v->unitnumber); + unitnumber = std::max<uint>(unitnumber, v->unitnumber); } return CountDigitsForAllocatingSpace(unitnumber); @@ -189,7 +187,7 @@ void BaseVehicleListWindow::BuildVehicleList() for (auto it = this->vehicles.begin(); it != this->vehicles.end(); ++it) { this->vehgroups.emplace_back(it, it + 1, (*it)->GetDisplayProfitThisYear(), (*it)->GetDisplayProfitLastYear(), (*it)->age); - max_unitnumber = max<uint>(max_unitnumber, (*it)->unitnumber); + max_unitnumber = std::max<uint>(max_unitnumber, (*it)->unitnumber); } this->unitnumber_digits = CountDigitsForAllocatingSpace(max_unitnumber); } else { @@ -213,12 +211,12 @@ void BaseVehicleListWindow::BuildVehicleList() const Vehicle * const v = (*it); display_profit_this_year += v->GetDisplayProfitThisYear(); display_profit_last_year += v->GetDisplayProfitLastYear(); - age = max<Date>(age, v->age); + age = std::max<Date>(age, v->age); } this->vehgroups.emplace_back(begin, end, display_profit_this_year, display_profit_last_year, age); - max_num_vehicles = max<uint>(max_num_vehicles, static_cast<uint>(end - begin)); + max_num_vehicles = std::max<uint>(max_num_vehicles, static_cast<uint>(end - begin)); begin = end; } @@ -428,7 +426,7 @@ static void DrawVehicleRefitWindow(const SubtypeList list[NUM_CARGO], const int uint current = 0; bool rtl = _current_text_dir == TD_RTL; - uint iconwidth = max(GetSpriteSize(SPR_CIRCLE_FOLDED).width, GetSpriteSize(SPR_CIRCLE_UNFOLDED).width); + uint iconwidth = std::max(GetSpriteSize(SPR_CIRCLE_FOLDED).width, GetSpriteSize(SPR_CIRCLE_UNFOLDED).width); uint iconheight = GetSpriteSize(SPR_CIRCLE_FOLDED).height; int linecolour = _colour_gradient[COLOUR_ORANGE][4]; @@ -733,7 +731,7 @@ struct RefitWindow : public Window { /* Calculate sprite position. */ NWidgetCore *vehicle_panel_display = this->GetWidget<NWidgetCore>(WID_VR_VEHICLE_PANEL_DISPLAY); - int sprite_width = max(0, ((int)vehicle_panel_display->current_x - this->vehicle_width) / 2); + int sprite_width = std::max(0, ((int)vehicle_panel_display->current_x - this->vehicle_width) / 2); this->sprite_left = vehicle_panel_display->pos_x; this->sprite_right = vehicle_panel_display->pos_x + vehicle_panel_display->current_x - 1; if (_current_text_dir == TD_RTL) { @@ -853,7 +851,7 @@ struct RefitWindow : public Window { } int right = Clamp(left + width, 0, r.right); - left = max(0, left); + left = std::max(0, left); if (_current_text_dir == TD_RTL) { right = this->GetWidget<NWidgetCore>(WID_VR_VEHICLE_PANEL_DISPLAY)->current_x - left; @@ -926,7 +924,7 @@ struct RefitWindow : public Window { StringID string = this->GetCapacityString(&list[i][j]); if (string != INVALID_STRING_ID) { Dimension dim = GetStringBoundingBox(string); - max_width = max(dim.width, max_width); + max_width = std::max(dim.width, max_width); } } } @@ -960,8 +958,8 @@ struct RefitWindow : public Window { { drag_x = GetClickPosition(drag_x); - int left_x = min(this->click_x, drag_x); - int right_x = max(this->click_x, drag_x); + int left_x = std::min(this->click_x, drag_x); + int right_x = std::max(this->click_x, drag_x); this->num_vehicles = 0; Vehicle *v = Vehicle::Get(this->window_number); @@ -1499,7 +1497,7 @@ uint GetVehicleListHeight(VehicleType type, uint divisor) /* Name + vehicle + profit */ uint base = ScaleGUITrad(GetVehicleHeight(type)) + 2 * FONT_HEIGHT_SMALL; /* Drawing of the 4 small orders + profit*/ - if (type >= VEH_SHIP) base = max(base, 5U * FONT_HEIGHT_SMALL); + if (type >= VEH_SHIP) base = std::max(base, 5U * FONT_HEIGHT_SMALL); if (divisor == 1) return base; @@ -1521,13 +1519,13 @@ void BaseVehicleListWindow::DrawVehicleListItems(VehicleID selected_vehicle, int int width = right - left; bool rtl = _current_text_dir == TD_RTL; - int text_offset = max<int>(GetSpriteSize(SPR_PROFIT_LOT).width, GetDigitWidth() * this->unitnumber_digits) + WD_FRAMERECT_RIGHT; + int text_offset = std::max<int>(GetSpriteSize(SPR_PROFIT_LOT).width, GetDigitWidth() * this->unitnumber_digits) + WD_FRAMERECT_RIGHT; int text_left = left + (rtl ? 0 : text_offset); int text_right = right - (rtl ? text_offset : 0); bool show_orderlist = this->vli.vtype >= VEH_SHIP; - int orderlist_left = left + (rtl ? 0 : max(ScaleGUITrad(100) + text_offset, width / 2)); - int orderlist_right = right - (rtl ? max(ScaleGUITrad(100) + text_offset, width / 2) : 0); + int orderlist_left = left + (rtl ? 0 : std::max(ScaleGUITrad(100) + text_offset, width / 2)); + int orderlist_right = right - (rtl ? std::max(ScaleGUITrad(100) + text_offset, width / 2) : 0); int image_left = (rtl && show_orderlist) ? orderlist_right : text_left; int image_right = (!rtl && show_orderlist) ? orderlist_left : text_right; @@ -1535,7 +1533,7 @@ void BaseVehicleListWindow::DrawVehicleListItems(VehicleID selected_vehicle, int int vehicle_button_x = rtl ? right - GetSpriteSize(SPR_PROFIT_LOT).width : left; int y = r.top; - uint max = min(this->vscroll->GetPosition() + this->vscroll->GetCapacity(), static_cast<uint>(this->vehgroups.size())); + uint max = static_cast<uint>(std::min<size_t>(this->vscroll->GetPosition() + this->vscroll->GetCapacity(), this->vehgroups.size())); for (uint i = this->vscroll->GetPosition(); i < max; ++i) { const GUIVehicleGroup &vehgroup = this->vehgroups[i]; @@ -2200,7 +2198,7 @@ struct VehicleDetailsWindow : Window { } case WID_VD_MATRIX: - resize->height = max(ScaleGUITrad(14), WD_MATRIX_TOP + FONT_HEIGHT_NORMAL + WD_MATRIX_BOTTOM); + resize->height = std::max(ScaleGUITrad(14), WD_MATRIX_TOP + FONT_HEIGHT_NORMAL + WD_MATRIX_BOTTOM); size->height = 4 * resize->height; break; @@ -2217,7 +2215,10 @@ struct VehicleDetailsWindow : Window { case WID_VD_SERVICING_INTERVAL: SetDParamMaxValue(0, MAX_SERVINT_DAYS); // Roughly the maximum interval SetDParamMaxValue(1, MAX_YEAR * DAYS_IN_YEAR); // Roughly the maximum year - size->width = max(GetStringBoundingBox(STR_VEHICLE_DETAILS_SERVICING_INTERVAL_PERCENT).width, GetStringBoundingBox(STR_VEHICLE_DETAILS_SERVICING_INTERVAL_DAYS).width) + WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT; + size->width = std::max( + GetStringBoundingBox(STR_VEHICLE_DETAILS_SERVICING_INTERVAL_PERCENT).width, + GetStringBoundingBox(STR_VEHICLE_DETAILS_SERVICING_INTERVAL_DAYS).width + ) + WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT; size->height = WD_FRAMERECT_TOP + FONT_HEIGHT_NORMAL + WD_FRAMERECT_BOTTOM; break; } @@ -2749,7 +2750,7 @@ public: const Vehicle *v = Vehicle::Get(this->window_number); switch (widget) { case WID_VV_START_STOP: - size->height = max(size->height, max(GetSpriteSize(SPR_FLAG_VEH_STOPPED).height, GetSpriteSize(SPR_FLAG_VEH_RUNNING).height) + WD_IMGBTN_TOP + WD_IMGBTN_BOTTOM); + size->height = std::max(size->height, std::max(GetSpriteSize(SPR_FLAG_VEH_STOPPED).height, GetSpriteSize(SPR_FLAG_VEH_RUNNING).height) + WD_IMGBTN_TOP + WD_IMGBTN_BOTTOM); break; case WID_VV_FORCE_PROCEED: @@ -2882,7 +2883,7 @@ public: /* Draw the flag plus orders. */ bool rtl = (_current_text_dir == TD_RTL); - uint text_offset = max(GetSpriteSize(SPR_FLAG_VEH_STOPPED).width, GetSpriteSize(SPR_FLAG_VEH_RUNNING).width) + WD_IMGBTN_LEFT + WD_IMGBTN_RIGHT; + uint text_offset = std::max(GetSpriteSize(SPR_FLAG_VEH_STOPPED).width, GetSpriteSize(SPR_FLAG_VEH_RUNNING).width) + WD_IMGBTN_LEFT + WD_IMGBTN_RIGHT; int text_left = r.left + (rtl ? (uint)WD_FRAMERECT_LEFT : text_offset); int text_right = r.right - (rtl ? text_offset : (uint)WD_FRAMERECT_RIGHT); int image_left = (rtl ? text_right + 1 : r.left) + WD_IMGBTN_LEFT; diff --git a/src/video/allegro_v.cpp b/src/video/allegro_v.cpp index 9b0bef1ac..9cab0805e 100644 --- a/src/video/allegro_v.cpp +++ b/src/video/allegro_v.cpp @@ -26,7 +26,6 @@ #include "../thread.h" #include "allegro_v.h" #include <allegro.h> -#include <algorithm> #include "../safeguards.h" diff --git a/src/video/sdl2_v.cpp b/src/video/sdl2_v.cpp index ea2a88bb9..dee0ff93d 100644 --- a/src/video/sdl2_v.cpp +++ b/src/video/sdl2_v.cpp @@ -26,7 +26,6 @@ #include <SDL.h> #include <mutex> #include <condition_variable> -#include <algorithm> #ifdef __EMSCRIPTEN__ # include <emscripten.h> # include <emscripten/html5.h> @@ -635,8 +634,8 @@ int VideoDriver_SDL::PollEvent() // Force a redraw of the entire screen. _num_dirty_rects = MAX_DIRTY_RECTS + 1; } else if (ev.window.event == SDL_WINDOWEVENT_SIZE_CHANGED) { - int w = max(ev.window.data1, 64); - int h = max(ev.window.data2, 64); + int w = std::max(ev.window.data1, 64); + int h = std::max(ev.window.data2, 64); CreateMainSurface(w, h, w != ev.window.data1 || h != ev.window.data2); } else if (ev.window.event == SDL_WINDOWEVENT_ENTER) { // mouse entered the window, enable cursor diff --git a/src/video/sdl_v.cpp b/src/video/sdl_v.cpp index 4f5167335..3fae8e69b 100644 --- a/src/video/sdl_v.cpp +++ b/src/video/sdl_v.cpp @@ -25,7 +25,6 @@ #include <SDL.h> #include <mutex> #include <condition_variable> -#include <algorithm> #include "../safeguards.h" @@ -583,8 +582,8 @@ int VideoDriver_SDL::PollEvent() break; case SDL_VIDEORESIZE: { - int w = max(ev.resize.w, 64); - int h = max(ev.resize.h, 64); + int w = std::max(ev.resize.w, 64); + int h = std::max(ev.resize.h, 64); CreateMainSurface(w, h); break; } diff --git a/src/video/win32_v.cpp b/src/video/win32_v.cpp index fa780dd3d..29b85985f 100644 --- a/src/video/win32_v.cpp +++ b/src/video/win32_v.cpp @@ -27,7 +27,6 @@ #include <imm.h> #include <mutex> #include <condition_variable> -#include <algorithm> #include "../safeguards.h" @@ -903,8 +902,8 @@ static LRESULT CALLBACK WndProcGdi(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP w = r->right - r->left - (r2.right - r2.left); h = r->bottom - r->top - (r2.bottom - r2.top); - w = max(w, 64); - h = max(h, 64); + w = std::max(w, 64); + h = std::max(h, 64); SetRect(&r2, 0, 0, w, h); AdjustWindowRect(&r2, GetWindowLong(hwnd, GWL_STYLE), FALSE); @@ -1037,8 +1036,8 @@ static bool AllocateDibSection(int w, int h, bool force) HDC dc; uint bpp = BlitterFactory::GetCurrentBlitter()->GetScreenDepth(); - w = max(w, 64); - h = max(h, 64); + w = std::max(w, 64); + h = std::max(h, 64); if (bpp == 0) usererror("Can't use a blitter that blits 0 bpp for normal visuals"); diff --git a/src/viewport.cpp b/src/viewport.cpp index 7c5fd93b3..8fd6f373f 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -695,10 +695,10 @@ void AddSortableSpriteToDraw(SpriteID image, PaletteID pal, int x, int y, int w, if (_draw_bounding_boxes && (image != SPR_EMPTY_BOUNDING_BOX)) { /* Compute maximal extents of sprite and its bounding box */ - left = min(left , RemapCoords(x + w , y + bb_offset_y, z + bb_offset_z).x); - right = max(right , RemapCoords(x + bb_offset_x, y + h , z + bb_offset_z).x + 1); - top = min(top , RemapCoords(x + bb_offset_x, y + bb_offset_y, z + dz ).y); - bottom = max(bottom, RemapCoords(x + w , y + h , z + bb_offset_z).y + 1); + left = std::min(left , RemapCoords(x + w , y + bb_offset_y, z + bb_offset_z).x); + right = std::max(right , RemapCoords(x + bb_offset_x, y + h , z + bb_offset_z).x + 1); + top = std::min(top , RemapCoords(x + bb_offset_x, y + bb_offset_y, z + dz ).y); + bottom = std::max(bottom, RemapCoords(x + w , y + h , z + bb_offset_z).y + 1); } /* Do not add the sprite to the viewport, if it is outside */ @@ -720,13 +720,13 @@ void AddSortableSpriteToDraw(SpriteID image, PaletteID pal, int x, int y, int w, ps.pal = pal; ps.sub = sub; ps.xmin = x + bb_offset_x; - ps.xmax = x + max(bb_offset_x, w) - 1; + ps.xmax = x + std::max(bb_offset_x, w) - 1; ps.ymin = y + bb_offset_y; - ps.ymax = y + max(bb_offset_y, h) - 1; + ps.ymax = y + std::max(bb_offset_y, h) - 1; ps.zmin = z + bb_offset_z; - ps.zmax = z + max(bb_offset_z, dz) - 1; + ps.zmax = z + std::max(bb_offset_z, dz) - 1; ps.first_child = -1; @@ -1556,7 +1556,7 @@ static void ViewportSortParentSprites(ParentSpriteToSortVector *psdv) * Also min coordinates can be > max so using max(xmin, xmax) + max(ymin, ymax) * to ensure that we iterate the current sprite as we need to remove it from the list. */ - auto ssum = max(s->xmax, s->xmin) + max(s->ymax, s->ymin); + auto ssum = std::max(s->xmax, s->xmin) + std::max(s->ymax, s->ymin); auto prev = sprite_list.before_begin(); auto x = sprite_list.begin(); while (x != sprite_list.end() && ((*x).first <= ssum)) { @@ -1917,11 +1917,11 @@ static void MarkViewportDirty(const Viewport *vp, int left, int top, int right, bottom -= vp->virtual_top; if (bottom <= 0) return; - left = max(0, left - vp->virtual_left); + left = std::max(0, left - vp->virtual_left); if (left >= vp->virtual_width) return; - top = max(0, top - vp->virtual_top); + top = std::max(0, top - vp->virtual_top); if (top >= vp->virtual_height) return; @@ -2222,7 +2222,7 @@ ViewportSignKdtreeItem ViewportSignKdtreeItem::MakeStation(StationID id) item.top = st->sign.top; /* Assume the sign can be a candidate for drawing, so measure its width */ - _viewport_sign_maxwidth = max<int>(_viewport_sign_maxwidth, st->sign.width_normal); + _viewport_sign_maxwidth = std::max<int>(_viewport_sign_maxwidth, st->sign.width_normal); return item; } @@ -2239,7 +2239,7 @@ ViewportSignKdtreeItem ViewportSignKdtreeItem::MakeWaypoint(StationID id) item.top = st->sign.top; /* Assume the sign can be a candidate for drawing, so measure its width */ - _viewport_sign_maxwidth = max<int>(_viewport_sign_maxwidth, st->sign.width_normal); + _viewport_sign_maxwidth = std::max<int>(_viewport_sign_maxwidth, st->sign.width_normal); return item; } @@ -2256,7 +2256,7 @@ ViewportSignKdtreeItem ViewportSignKdtreeItem::MakeTown(TownID id) item.top = town->cache.sign.top; /* Assume the sign can be a candidate for drawing, so measure its width */ - _viewport_sign_maxwidth = max<int>(_viewport_sign_maxwidth, town->cache.sign.width_normal); + _viewport_sign_maxwidth = std::max<int>(_viewport_sign_maxwidth, town->cache.sign.width_normal); return item; } @@ -2273,7 +2273,7 @@ ViewportSignKdtreeItem ViewportSignKdtreeItem::MakeSign(SignID id) item.top = sign->sign.top; /* Assume the sign can be a candidate for drawing, so measure its width */ - _viewport_sign_maxwidth = max<int>(_viewport_sign_maxwidth, sign->sign.width_normal); + _viewport_sign_maxwidth = std::max<int>(_viewport_sign_maxwidth, sign->sign.width_normal); return item; } @@ -2857,7 +2857,7 @@ static int CalcHeightdiff(HighLightStyle style, uint distance, TileIndex start_t assert(style_t < lengthof(heightdiff_line_by_dir) - 13); h0 = TileHeight(TILE_ADD(start_tile, ToTileIndexDiff(heightdiff_line_by_dir[style_t]))); uint ht = TileHeight(TILE_ADD(start_tile, ToTileIndexDiff(heightdiff_line_by_dir[style_t + 1]))); - h0 = max(h0, ht); + h0 = std::max(h0, ht); /* Use lookup table for end-tile based on HighLightStyle direction * flip around side (lower/upper, left/right) based on distance */ @@ -2865,7 +2865,7 @@ static int CalcHeightdiff(HighLightStyle style, uint distance, TileIndex start_t assert(style_t < lengthof(heightdiff_line_by_dir) - 13); h1 = TileHeight(TILE_ADD(end_tile, ToTileIndexDiff(heightdiff_line_by_dir[12 + style_t]))); ht = TileHeight(TILE_ADD(end_tile, ToTileIndexDiff(heightdiff_line_by_dir[12 + style_t + 1]))); - h1 = max(h1, ht); + h1 = std::max(h1, ht); break; } } diff --git a/src/viewport_sprite_sorter_sse4.cpp b/src/viewport_sprite_sorter_sse4.cpp index aac833318..ae5121818 100644 --- a/src/viewport_sprite_sorter_sse4.cpp +++ b/src/viewport_sprite_sorter_sse4.cpp @@ -84,7 +84,7 @@ void ViewportSortParentSpritesSSE41(ParentSpriteToSortVector *psdv) * Also min coordinates can be > max so using max(xmin, xmax) + max(ymin, ymax) * to ensure that we iterate the current sprite as we need to remove it from the list. */ - auto ssum = max(s->xmax, s->xmin) + max(s->ymax, s->ymin); + auto ssum = std::max(s->xmax, s->xmin) + std::max(s->ymax, s->ymin); auto prev = sprite_list.before_begin(); auto x = sprite_list.begin(); while (x != sprite_list.end() && ((*x).first <= ssum)) { diff --git a/src/widget.cpp b/src/widget.cpp index c0844abd0..2be2f2b85 100644 --- a/src/widget.cpp +++ b/src/widget.cpp @@ -235,7 +235,7 @@ static inline void DrawLabel(const Rect &r, WidgetType type, bool clicked, Strin if (str == STR_NULL) return; if ((type & WWT_MASK) == WWT_TEXTBTN_2 && clicked) str++; Dimension d = GetStringBoundingBox(str); - int offset = max(0, ((int)(r.bottom - r.top + 1) - (int)d.height) / 2); // Offset for rendering the text vertically centered + int offset = std::max(0, ((int)(r.bottom - r.top + 1) - (int)d.height) / 2); // Offset for rendering the text vertically centered DrawString(r.left + clicked, r.right + clicked, r.top + offset + clicked, str, TC_FROMSTRING, SA_HOR_CENTER); } @@ -248,7 +248,7 @@ static inline void DrawLabel(const Rect &r, WidgetType type, bool clicked, Strin static inline void DrawText(const Rect &r, TextColour colour, StringID str) { Dimension d = GetStringBoundingBox(str); - int offset = max(0, ((int)(r.bottom - r.top + 1) - (int)d.height) / 2); // Offset for rendering the text vertically centered + int offset = std::max(0, ((int)(r.bottom - r.top + 1) - (int)d.height) / 2); // Offset for rendering the text vertically centered if (str != STR_NULL) DrawString(r.left, r.right, r.top + offset, str, colour); } @@ -548,7 +548,7 @@ void DrawCaption(const Rect &r, Colours colour, Owner owner, StringID str) if (str != STR_NULL) { Dimension d = GetStringBoundingBox(str); - int offset = max(0, ((int)(r.bottom - r.top + 1) - (int)d.height) / 2); // Offset for rendering the text vertically centered + int offset = std::max(0, ((int)(r.bottom - r.top + 1) - (int)d.height) / 2); // Offset for rendering the text vertically centered DrawString(r.left + WD_CAPTIONTEXT_LEFT, r.right - WD_CAPTIONTEXT_RIGHT, r.top + offset, str, TC_FROMSTRING, SA_HOR_CENTER); } } @@ -565,11 +565,11 @@ void DrawCaption(const Rect &r, Colours colour, Owner owner, StringID str) */ static inline void DrawButtonDropdown(const Rect &r, Colours colour, bool clicked_button, bool clicked_dropdown, StringID str) { - int text_offset = max(0, ((int)(r.bottom - r.top + 1) - FONT_HEIGHT_NORMAL) / 2); // Offset for rendering the text vertically centered + int text_offset = std::max(0, ((int)(r.bottom - r.top + 1) - FONT_HEIGHT_NORMAL) / 2); // Offset for rendering the text vertically centered int dd_width = NWidgetLeaf::dropdown_dimension.width; int dd_height = NWidgetLeaf::dropdown_dimension.height; - int image_offset = max(0, ((int)(r.bottom - r.top + 1) - dd_height) / 2); + int image_offset = std::max(0, ((int)(r.bottom - r.top + 1) - dd_height) / 2); if (_current_text_dir == TD_LTR) { DrawFrameRect(r.left, r.top, r.right - dd_width, r.bottom, colour, clicked_button ? FR_LOWERED : FR_NONE); @@ -814,8 +814,8 @@ NWidgetResizeBase::NWidgetResizeBase(WidgetType tp, uint fill_x, uint fill_y) : */ void NWidgetResizeBase::SetMinimalSize(uint min_x, uint min_y) { - this->min_x = max(this->min_x, min_x); - this->min_y = max(this->min_y, min_y); + this->min_x = std::max(this->min_x, min_x); + this->min_y = std::max(this->min_y, min_y); } /** @@ -1011,8 +1011,8 @@ void NWidgetStacked::SetupSmallestSize(Window *w, bool init_array) for (NWidgetBase *child_wid = this->head; child_wid != nullptr; child_wid = child_wid->next) { child_wid->SetupSmallestSize(w, init_array); - this->smallest_x = max(this->smallest_x, child_wid->smallest_x + child_wid->padding_left + child_wid->padding_right); - this->smallest_y = max(this->smallest_y, child_wid->smallest_y + child_wid->padding_top + child_wid->padding_bottom); + this->smallest_x = std::max(this->smallest_x, child_wid->smallest_x + child_wid->padding_left + child_wid->padding_right); + this->smallest_y = std::max(this->smallest_y, child_wid->smallest_y + child_wid->padding_top + child_wid->padding_bottom); this->fill_x = LeastCommonMultiple(this->fill_x, child_wid->fill_x); this->fill_y = LeastCommonMultiple(this->fill_y, child_wid->fill_y); this->resize_x = LeastCommonMultiple(this->resize_x, child_wid->resize_x); @@ -1142,9 +1142,9 @@ void NWidgetHorizontal::SetupSmallestSize(Window *w, bool init_array) uint max_vert_fill = 0; // Biggest vertical fill step. for (NWidgetBase *child_wid = this->head; child_wid != nullptr; child_wid = child_wid->next) { child_wid->SetupSmallestSize(w, init_array); - longest = max(longest, child_wid->smallest_x); - max_vert_fill = max(max_vert_fill, child_wid->GetVerticalStepSize(ST_SMALLEST)); - this->smallest_y = max(this->smallest_y, child_wid->smallest_y + child_wid->padding_top + child_wid->padding_bottom); + longest = std::max(longest, child_wid->smallest_x); + max_vert_fill = std::max(max_vert_fill, child_wid->GetVerticalStepSize(ST_SMALLEST)); + this->smallest_y = std::max(this->smallest_y, child_wid->smallest_y + child_wid->padding_top + child_wid->padding_bottom); } /* 1b. Make the container higher if needed to accommodate all children nicely. */ uint max_smallest = this->smallest_y + 3 * max_vert_fill; // Upper limit to computing smallest height. @@ -1232,7 +1232,7 @@ void NWidgetHorizontal::AssignSizePosition(SizingType sizing, uint x, uint y, ui uint hor_step = child_wid->GetHorizontalStepSize(sizing); if (hor_step > 0) { num_changing_childs++; - biggest_stepsize = max(biggest_stepsize, hor_step); + biggest_stepsize = std::max(biggest_stepsize, hor_step); } else { child_wid->current_x = child_wid->smallest_x; } @@ -1255,7 +1255,7 @@ void NWidgetHorizontal::AssignSizePosition(SizingType sizing, uint x, uint y, ui additional_length -= increment; continue; } - next_biggest_stepsize = max(next_biggest_stepsize, hor_step); + next_biggest_stepsize = std::max(next_biggest_stepsize, hor_step); } biggest_stepsize = next_biggest_stepsize; } @@ -1307,9 +1307,9 @@ void NWidgetVertical::SetupSmallestSize(Window *w, bool init_array) uint max_hor_fill = 0; // Biggest horizontal fill step. for (NWidgetBase *child_wid = this->head; child_wid != nullptr; child_wid = child_wid->next) { child_wid->SetupSmallestSize(w, init_array); - highest = max(highest, child_wid->smallest_y); - max_hor_fill = max(max_hor_fill, child_wid->GetHorizontalStepSize(ST_SMALLEST)); - this->smallest_x = max(this->smallest_x, child_wid->smallest_x + child_wid->padding_left + child_wid->padding_right); + highest = std::max(highest, child_wid->smallest_y); + max_hor_fill = std::max(max_hor_fill, child_wid->GetHorizontalStepSize(ST_SMALLEST)); + this->smallest_x = std::max(this->smallest_x, child_wid->smallest_x + child_wid->padding_left + child_wid->padding_right); } /* 1b. Make the container wider if needed to accommodate all children nicely. */ uint max_smallest = this->smallest_x + 3 * max_hor_fill; // Upper limit to computing smallest height. @@ -1388,7 +1388,7 @@ void NWidgetVertical::AssignSizePosition(SizingType sizing, uint x, uint y, uint uint vert_step = child_wid->GetVerticalStepSize(sizing); if (vert_step > 0) { num_changing_childs++; - biggest_stepsize = max(biggest_stepsize, vert_step); + biggest_stepsize = std::max(biggest_stepsize, vert_step); } else { child_wid->current_y = child_wid->smallest_y; } @@ -1411,7 +1411,7 @@ void NWidgetVertical::AssignSizePosition(SizingType sizing, uint x, uint y, uint additional_length -= increment; continue; } - next_biggest_stepsize = max(next_biggest_stepsize, vert_step); + next_biggest_stepsize = std::max(next_biggest_stepsize, vert_step); } biggest_stepsize = next_biggest_stepsize; } @@ -1772,14 +1772,14 @@ void NWidgetBackground::SetupSmallestSize(Window *w, bool init_array) if (w != nullptr && this->type == WWT_FRAME) { this->child->padding_left = WD_FRAMETEXT_LEFT; this->child->padding_right = WD_FRAMETEXT_RIGHT; - this->child->padding_top = max((int)WD_FRAMETEXT_TOP, this->widget_data != STR_NULL ? FONT_HEIGHT_NORMAL + WD_FRAMETEXT_TOP / 2 : 0); + this->child->padding_top = std::max((int)WD_FRAMETEXT_TOP, this->widget_data != STR_NULL ? FONT_HEIGHT_NORMAL + WD_FRAMETEXT_TOP / 2 : 0); this->child->padding_bottom = WD_FRAMETEXT_BOTTOM; this->smallest_x += this->child->padding_left + this->child->padding_right; this->smallest_y += this->child->padding_top + this->child->padding_bottom; if (this->index >= 0) w->SetStringParameters(this->index); - this->smallest_x = max(this->smallest_x, GetStringBoundingBox(this->widget_data).width + WD_FRAMETEXT_LEFT + WD_FRAMETEXT_RIGHT); + this->smallest_x = std::max(this->smallest_x, GetStringBoundingBox(this->widget_data).width + WD_FRAMETEXT_LEFT + WD_FRAMETEXT_RIGHT); } } else { Dimension d = {this->min_x, this->min_y}; @@ -2283,8 +2283,8 @@ void NWidgetLeaf::SetupSmallestSize(Window *w, bool init_array) } case WWT_EDITBOX: { Dimension sprite_size = GetSpriteSize(_current_text_dir == TD_RTL ? SPR_IMG_DELETE_RIGHT : SPR_IMG_DELETE_LEFT); - size.width = max(size.width, 30 + sprite_size.width); - size.height = max(sprite_size.height, GetStringBoundingBox("_").height + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM); + size.width = std::max(size.width, 30 + sprite_size.width); + size.height = std::max(sprite_size.height, GetStringBoundingBox("_").height + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM); } FALLTHROUGH; case WWT_PUSHBTN: { @@ -2370,7 +2370,7 @@ void NWidgetLeaf::SetupSmallestSize(Window *w, bool init_array) if (this->index >= 0) w->SetStringParameters(this->index); Dimension d2 = GetStringBoundingBox(this->widget_data); d2.width += extra.width; - d2.height = max(d2.height, NWidgetLeaf::dropdown_dimension.height) + extra.height; + d2.height = std::max(d2.height, NWidgetLeaf::dropdown_dimension.height) + extra.height; size = maxdim(size, d2); break; } @@ -2588,7 +2588,7 @@ static int MakeNWidget(const NWidgetPart *parts, int count, NWidgetBase **dest, case WWT_FRAME: if (*dest != nullptr) return num_used; *dest = new NWidgetBackground(parts->type, parts->u.widget.colour, parts->u.widget.index); - *biggest_index = max(*biggest_index, (int)parts->u.widget.index); + *biggest_index = std::max(*biggest_index, (int)parts->u.widget.index); *fill_dest = true; break; @@ -2605,7 +2605,7 @@ static int MakeNWidget(const NWidgetPart *parts, int count, NWidgetBase **dest, *fill_dest = true; nwm->SetIndex(parts->u.widget.index); nwm->SetColour(parts->u.widget.colour); - *biggest_index = max(*biggest_index, (int)parts->u.widget.index); + *biggest_index = std::max(*biggest_index, (int)parts->u.widget.index); break; } @@ -2614,7 +2614,7 @@ static int MakeNWidget(const NWidgetPart *parts, int count, NWidgetBase **dest, /* Ensure proper functioning even when the called code simply writes its largest index. */ int biggest = -1; *dest = parts->u.func_ptr(&biggest); - *biggest_index = max(*biggest_index, biggest); + *biggest_index = std::max(*biggest_index, biggest); *fill_dest = false; break; } @@ -2688,14 +2688,14 @@ static int MakeNWidget(const NWidgetPart *parts, int count, NWidgetBase **dest, case NWID_VIEWPORT: if (*dest != nullptr) return num_used; *dest = new NWidgetViewport(parts->u.widget.index); - *biggest_index = max(*biggest_index, (int)parts->u.widget.index); + *biggest_index = std::max(*biggest_index, (int)parts->u.widget.index); break; case NWID_HSCROLLBAR: case NWID_VSCROLLBAR: if (*dest != nullptr) return num_used; *dest = new NWidgetScrollbar(parts->type, parts->u.widget.colour, parts->u.widget.index); - *biggest_index = max(*biggest_index, (int)parts->u.widget.index); + *biggest_index = std::max(*biggest_index, (int)parts->u.widget.index); break; case NWID_SELECTION: { @@ -2704,7 +2704,7 @@ static int MakeNWidget(const NWidgetPart *parts, int count, NWidgetBase **dest, *dest = nws; *fill_dest = true; nws->SetIndex(parts->u.widget.index); - *biggest_index = max(*biggest_index, (int)parts->u.widget.index); + *biggest_index = std::max(*biggest_index, (int)parts->u.widget.index); break; } @@ -2712,7 +2712,7 @@ static int MakeNWidget(const NWidgetPart *parts, int count, NWidgetBase **dest, if (*dest != nullptr) return num_used; assert((parts->type & WWT_MASK) < WWT_LAST || (parts->type & WWT_MASK) == NWID_BUTTON_DROPDOWN); *dest = new NWidgetLeaf(parts->type, parts->u.widget.colour, parts->u.widget.index, 0x0, STR_NULL); - *biggest_index = max(*biggest_index, (int)parts->u.widget.index); + *biggest_index = std::max(*biggest_index, (int)parts->u.widget.index); break; } num_used++; @@ -2845,7 +2845,7 @@ NWidgetContainer *MakeWindowNWidgetTree(const NWidgetPart *parts, int count, int int biggest2 = -1; MakeNWidgets(parts, count, &biggest2, body); - *biggest_index = max(*biggest_index, biggest2); + *biggest_index = std::max(*biggest_index, biggest2); return root; } diff --git a/src/widget_type.h b/src/widget_type.h index 3a36d9aad..1b1677039 100644 --- a/src/widget_type.h +++ b/src/widget_type.h @@ -687,7 +687,7 @@ public: assert(capacity <= MAX_UVALUE(uint16)); this->cap = capacity; - if (this->cap + this->pos > this->count) this->pos = max(0, this->count - this->cap); + if (this->cap + this->pos > this->count) this->pos = std::max(0, this->count - this->cap); } void SetCapacityFromWidget(Window *w, int widget, int padding = 0); @@ -717,7 +717,7 @@ public: case SS_BIG: difference *= this->cap; break; default: break; } - this->SetPosition(Clamp(this->pos + difference, 0, max(this->count - this->cap, 0))); + this->SetPosition(Clamp(this->pos + difference, 0, std::max(this->count - this->cap, 0))); } /** diff --git a/src/widgets/dropdown.cpp b/src/widgets/dropdown.cpp index c450dc7b8..97c755e4b 100644 --- a/src/widgets/dropdown.cpp +++ b/src/widgets/dropdown.cpp @@ -83,7 +83,7 @@ DropDownListIconItem::DropDownListIconItem(SpriteID sprite, PaletteID pal, Strin uint DropDownListIconItem::Height(uint width) const { - return max(this->dim.height, (uint)FONT_HEIGHT_NORMAL); + return std::max(this->dim.height, (uint)FONT_HEIGHT_NORMAL); } uint DropDownListIconItem::Width() const @@ -381,7 +381,7 @@ void ShowDropDownListAt(Window *w, DropDownList &&list, int selected, int button for (const auto &item : list) { height += item->Height(width); - if (auto_width) max_item_width = max(max_item_width, item->Width() + 5); + if (auto_width) max_item_width = std::max(max_item_width, item->Width() + 5); } /* Scrollbar needed? */ @@ -391,12 +391,12 @@ void ShowDropDownListAt(Window *w, DropDownList &&list, int selected, int button bool above = false; /* Available height below (or above, if the dropdown is placed above the widget). */ - uint available_height = (uint)max(GetMainViewBottom() - top - 4, 0); + uint available_height = std::max(GetMainViewBottom() - top - 4, 0); /* If the dropdown doesn't fully fit below the widget... */ if (height > available_height) { - uint available_height_above = (uint)max(w->top + wi_rect.top - GetMainViewTop() - 4, 0); + uint available_height_above = std::max(w->top + wi_rect.top - GetMainViewTop() - 4, 0); /* Put the dropdown above if there is more available space. */ if (available_height_above > available_height) { @@ -426,7 +426,7 @@ void ShowDropDownListAt(Window *w, DropDownList &&list, int selected, int button } } - if (auto_width) width = max(width, max_item_width); + if (auto_width) width = std::max(width, max_item_width); Point dw_pos = { w->left + (_current_text_dir == TD_RTL ? wi_rect.right + 1 - (int)width : wi_rect.left), top}; Dimension dw_size = {width, height}; diff --git a/src/window.cpp b/src/window.cpp index feabbfdd2..f67cda90f 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -726,8 +726,8 @@ static void DispatchLeftClickEvent(Window *w, int x, int y, int click_count) w->window_desc->pref_width = w->width; w->window_desc->pref_height = w->height; } else { - int16 def_width = max<int16>(min(w->window_desc->GetDefaultWidth(), _screen.width), w->nested_root->smallest_x); - int16 def_height = max<int16>(min(w->window_desc->GetDefaultHeight(), _screen.height - 50), w->nested_root->smallest_y); + int16 def_width = std::max<int16>(std::min<int16>(w->window_desc->GetDefaultWidth(), _screen.width), w->nested_root->smallest_x); + int16 def_height = std::max<int16>(std::min<int16>(w->window_desc->GetDefaultHeight(), _screen.height - 50), w->nested_root->smallest_y); int dx = (w->resize.step_width == 0) ? 0 : def_width - w->width; int dy = (w->resize.step_height == 0) ? 0 : def_height - w->height; @@ -971,7 +971,7 @@ void DrawOverlappedWindowForAll(int left, int top, int right, int bottom) left < w->left + w->width && top < w->top + w->height) { /* Window w intersects with the rectangle => needs repaint */ - DrawOverlappedWindow(w, max(left, w->left), max(top, w->top), min(right, w->left + w->width), min(bottom, w->top + w->height)); + DrawOverlappedWindow(w, std::max(left, w->left), std::max(top, w->top), std::min(right, w->left + w->width), std::min(bottom, w->top + w->height)); } } _cur_dpi = old_dpi; @@ -1010,8 +1010,8 @@ void Window::ReInit(int rx, int ry) this->resize.step_height = this->nested_root->resize_y; /* Resize as close to the original size + requested resize as possible. */ - window_width = max(window_width + rx, this->width); - window_height = max(window_height + ry, this->height); + window_width = std::max(window_width + rx, this->width); + window_height = std::max(window_height + ry, this->height); int dx = (this->resize.step_width == 0) ? 0 : window_width - this->width; int dy = (this->resize.step_height == 0) ? 0 : window_height - this->height; /* dx and dy has to go by step.. calculate it. @@ -1525,8 +1525,8 @@ void Window::InitializePositionSize(int x, int y, int sm_width, int sm_height) */ void Window::FindWindowPlacementAndResize(int def_width, int def_height) { - def_width = max(def_width, this->width); // Don't allow default size to be smaller than smallest size - def_height = max(def_height, this->height); + def_width = std::max(def_width, this->width); // Don't allow default size to be smaller than smallest size + def_height = std::max(def_height, this->height); /* Try to make windows smaller when our window is too small. * w->(width|height) is normally the same as min_(width|height), * but this way the GUIs can be made a little more dynamic; @@ -1540,8 +1540,8 @@ void Window::FindWindowPlacementAndResize(int def_width, int def_height) wt = FindWindowById(WC_MAIN_TOOLBAR, 0); if (wt != nullptr) free_height -= wt->height; - int enlarge_x = max(min(def_width - this->width, _screen.width - this->width), 0); - int enlarge_y = max(min(def_height - this->height, free_height - this->height), 0); + int enlarge_x = std::max(std::min(def_width - this->width, _screen.width - this->width), 0); + int enlarge_y = std::max(std::min(def_height - this->height, free_height - this->height), 0); /* X and Y has to go by step.. calculate it. * The cast to int is necessary else x/y are implicitly casted to @@ -1562,8 +1562,8 @@ void Window::FindWindowPlacementAndResize(int def_width, int def_height) if (nx + this->width > _screen.width) nx -= (nx + this->width - _screen.width); const Window *wt = FindWindowById(WC_MAIN_TOOLBAR, 0); - ny = max(ny, (wt == nullptr || this == wt || this->top == 0) ? 0 : wt->height); - nx = max(nx, 0); + ny = std::max(ny, (wt == nullptr || this == wt || this->top == 0) ? 0 : wt->height); + nx = std::max(nx, 0); if (this->viewport != nullptr) { this->viewport->left += nx - this->left; @@ -1711,7 +1711,7 @@ static Point GetAutoPlacePosition(int width, int height) */ int left = rtl ? _screen.width - width : 0, top = toolbar_y; int offset_x = rtl ? -(int)NWidgetLeaf::closebox_dimension.width : (int)NWidgetLeaf::closebox_dimension.width; - int offset_y = max<int>(NWidgetLeaf::closebox_dimension.height, FONT_HEIGHT_NORMAL + WD_CAPTIONTEXT_TOP + WD_CAPTIONTEXT_BOTTOM); + int offset_y = std::max<int>(NWidgetLeaf::closebox_dimension.height, FONT_HEIGHT_NORMAL + WD_CAPTIONTEXT_TOP + WD_CAPTIONTEXT_BOTTOM); restart: FOR_ALL_WINDOWS_FROM_BACK(w) { @@ -1763,8 +1763,8 @@ static Point LocalGetWindowPlacement(const WindowDesc *desc, int16 sm_width, int Point pt; const Window *w; - int16 default_width = max(desc->GetDefaultWidth(), sm_width); - int16 default_height = max(desc->GetDefaultHeight(), sm_height); + int16 default_width = std::max(desc->GetDefaultWidth(), sm_width); + int16 default_height = std::max(desc->GetDefaultHeight(), sm_height); if (desc->parent_cls != WC_NONE && (w = FindWindowById(desc->parent_cls, window_number)) != nullptr) { bool rtl = _current_text_dir == TD_RTL; @@ -1777,16 +1777,16 @@ static Point LocalGetWindowPlacement(const WindowDesc *desc, int16 sm_width, int * - Y position: closebox of parent + closebox of child + statusbar * - X position: closebox on left/right, resizebox on right/left (depending on ltr/rtl) */ - int indent_y = max<int>(NWidgetLeaf::closebox_dimension.height, FONT_HEIGHT_NORMAL + WD_CAPTIONTEXT_TOP + WD_CAPTIONTEXT_BOTTOM); + int indent_y = std::max<int>(NWidgetLeaf::closebox_dimension.height, FONT_HEIGHT_NORMAL + WD_CAPTIONTEXT_TOP + WD_CAPTIONTEXT_BOTTOM); if (w->top + 3 * indent_y < _screen.height) { pt.y = w->top + indent_y; int indent_close = NWidgetLeaf::closebox_dimension.width; int indent_resize = NWidgetLeaf::resizebox_dimension.width; if (_current_text_dir == TD_RTL) { - pt.x = max(w->left + w->width - default_width - indent_close, 0); + pt.x = std::max(w->left + w->width - default_width - indent_close, 0); if (pt.x + default_width >= indent_close && pt.x + indent_resize <= _screen.width) return pt; } else { - pt.x = min(w->left + indent_close, _screen.width - default_width); + pt.x = std::min(w->left + indent_close, _screen.width - default_width); if (pt.x + default_width >= indent_resize && pt.x + indent_close <= _screen.width) return pt; } } @@ -2151,14 +2151,14 @@ void ResizeWindow(Window *w, int delta_x, int delta_y, bool clamp_to_screen) * the resolution clamp it in such a manner that it stays within the bounds. */ int new_right = w->left + w->width + delta_x; int new_bottom = w->top + w->height + delta_y; - if (new_right >= (int)_cur_resolution.width) delta_x -= Ceil(new_right - _cur_resolution.width, max(1U, w->nested_root->resize_x)); - if (new_bottom >= (int)_cur_resolution.height) delta_y -= Ceil(new_bottom - _cur_resolution.height, max(1U, w->nested_root->resize_y)); + if (new_right >= (int)_cur_resolution.width) delta_x -= Ceil(new_right - _cur_resolution.width, std::max(1U, w->nested_root->resize_x)); + if (new_bottom >= (int)_cur_resolution.height) delta_y -= Ceil(new_bottom - _cur_resolution.height, std::max(1U, w->nested_root->resize_y)); } w->SetDirty(); - uint new_xinc = max(0, (w->nested_root->resize_x == 0) ? 0 : (int)(w->nested_root->current_x - w->nested_root->smallest_x) + delta_x); - uint new_yinc = max(0, (w->nested_root->resize_y == 0) ? 0 : (int)(w->nested_root->current_y - w->nested_root->smallest_y) + delta_y); + uint new_xinc = std::max(0, (w->nested_root->resize_x == 0) ? 0 : (int)(w->nested_root->current_x - w->nested_root->smallest_x) + delta_x); + uint new_yinc = std::max(0, (w->nested_root->resize_y == 0) ? 0 : (int)(w->nested_root->current_y - w->nested_root->smallest_y) + delta_y); assert(w->nested_root->resize_x == 0 || new_xinc % w->nested_root->resize_x == 0); assert(w->nested_root->resize_y == 0 || new_yinc % w->nested_root->resize_y == 0); @@ -2434,8 +2434,8 @@ static void HandleScrollbarScrolling(Window *w) } /* Find the item we want to move to and make sure it's inside bounds. */ - int pos = min(RoundDivSU(max(0, i + _scrollbar_start_pos) * sb->GetCount(), _scrollbar_size), max(0, sb->GetCount() - sb->GetCapacity())); - if (rtl) pos = max(0, sb->GetCount() - sb->GetCapacity() - pos); + int pos = std::min(RoundDivSU(std::max(0, i + _scrollbar_start_pos) * sb->GetCount(), _scrollbar_size), std::max(0, sb->GetCount() - sb->GetCapacity())); + if (rtl) pos = std::max(0, sb->GetCount() - sb->GetCapacity() - pos); if (pos != sb->GetPosition()) { sb->SetPosition(pos); w->SetDirty(); @@ -3581,7 +3581,7 @@ void RelocateAllWindows(int neww, int newh) continue; case WC_MAIN_TOOLBAR: - ResizeWindow(w, min(neww, _toolbar_width) - w->width, 0, false); + ResizeWindow(w, std::min<uint>(neww, _toolbar_width) - w->width, 0, false); top = w->top; left = PositionMainToolbar(w); // changes toolbar orientation @@ -3593,14 +3593,14 @@ void RelocateAllWindows(int neww, int newh) break; case WC_STATUS_BAR: - ResizeWindow(w, min(neww, _toolbar_width) - w->width, 0, false); + ResizeWindow(w, std::min<uint>(neww, _toolbar_width) - w->width, 0, false); top = newh - w->height; left = PositionStatusbar(w); break; case WC_SEND_NETWORK_MSG: - ResizeWindow(w, min(neww, _toolbar_width) - w->width, 0, false); + ResizeWindow(w, std::min<uint>(neww, _toolbar_width) - w->width, 0, false); top = newh - w->height - FindWindowById(WC_STATUS_BAR, 0)->height; left = PositionNetworkChatWindow(w); |