Codechange: Remove min/max functions in favour of STL variants (#8502)

This commit is contained in:
Charles Pigott 2021-01-08 10:16:18 +00:00 committed by GitHub
parent c1fddb9a6a
commit 9b800a96ed
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
181 changed files with 900 additions and 954 deletions

View File

@ -1,14 +1,9 @@
/* /*
* see copyright notice in squirrel.h * 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 "../../../stdafx.h"
#include <algorithm>
#include "sqpcheader.h" #include "sqpcheader.h"
#include "sqvm.h" #include "sqvm.h"
#include "sqstring.h" #include "sqstring.h"

View File

@ -39,7 +39,7 @@ AIConfig::AIConfig(const AIConfig *config) : ScriptConfig(config)
* This is necessary because the ScriptConfig constructor will instead call * This is necessary because the ScriptConfig constructor will instead call
* ScriptConfig::AddRandomDeviation(). */ * ScriptConfig::AddRandomDeviation(). */
int start_date = config->GetSetting("start_date"); 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) /* 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. /* 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. */ * 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);
} }

View File

@ -236,7 +236,7 @@ struct AIListWindow : public Window {
this->vscroll->SetCount((int)this->info_list->size() + 1); this->vscroll->SetCount((int)this->info_list->size() + 1);
/* selected goes from -1 .. length of ai list - 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 void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) override
{ {
if (widget == WID_AIS_BACKGROUND) { 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->width = 1;
resize->height = this->line_height; resize->height = this->line_height;
@ -879,9 +879,9 @@ struct AIConfigWindow : public Window {
case WID_AIC_INCREASE: { case WID_AIC_INCREASE: {
int new_value; int new_value;
if (widget == WID_AIC_DECREASE) { 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 { } 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); IConsoleSetSetting("difficulty.max_no_competitors", new_value);
break; break;
@ -1176,7 +1176,7 @@ struct AIDebugWindow : public Window {
this->autoscroll = this->vscroll->GetPosition() >= log->used - this->vscroll->GetCapacity(); this->autoscroll = this->vscroll->GetPosition() >= log->used - this->vscroll->GetCapacity();
} }
if (this->autoscroll) { 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()) { if (scroll_pos != this->vscroll->GetPosition()) {
this->vscroll->SetPosition(scroll_pos); this->vscroll->SetPosition(scroll_pos);

View File

@ -652,7 +652,7 @@ static int UpdateAircraftSpeed(Aircraft *v, uint speed_limit = SPEED_LIMIT_NONE,
/* adjust speed for broken vehicles */ /* adjust speed for broken vehicles */
if (v->vehstatus & VS_AIRCRAFT_BROKEN) { if (v->vehstatus & VS_AIRCRAFT_BROKEN) {
if (SPEED_LIMIT_BROKEN < speed_limit) hard_limit = false; 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) { 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 * speeds to that aircraft do not get to taxi speed straight after
* touchdown. */ * touchdown. */
if (!hard_limit && v->cur_speed > speed_limit) { 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 */ /* updates statusbar only if speed have changed to save CPU time */
if (spd != v->cur_speed) { 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 */ /* 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 (min_level != nullptr) *min_level = base_altitude + AIRCRAFT_MIN_FLYING_ALTITUDE;
if (max_level != nullptr) *max_level = base_altitude + AIRCRAFT_MAX_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; v->cur_speed = 0;
return true; 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; return false;
@ -975,9 +975,9 @@ static bool AircraftController(Aircraft *v)
count = UpdateAircraftSpeed(v); count = UpdateAircraftSpeed(v);
if (count > 0) { if (count > 0) {
if (v->z_pos > z) { 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 { } 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? */ /* We're not flying below our destination, right? */
assert(airport_z <= z); assert(airport_z <= z);
int t = max(1U, dist - 4); int t = std::max(1U, dist - 4);
int delta = z - airport_z; int delta = z - airport_z;
/* Only start lowering when we're sufficiently close for a 1:1 glide */ /* Only start lowering when we're sufficiently close for a 1:1 glide */

View File

@ -314,7 +314,7 @@ public:
const AirportSpec *as = AirportSpec::Get(i); const AirportSpec *as = AirportSpec::Get(i);
if (!as->enabled) continue; 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; this->line_height = FONT_HEIGHT_NORMAL + WD_MATRIX_TOP + WD_MATRIX_BOTTOM;

View File

@ -115,7 +115,7 @@ void CheckCargoCapacity(Vehicle *v)
assert(dest->cargo.TotalCount() == dest->cargo.ActionCount(VehicleCargoList::MTA_KEEP)); assert(dest->cargo.TotalCount() == dest->cargo.ActionCount(VehicleCargoList::MTA_KEEP));
if (dest->cargo.TotalCount() >= dest->cargo_cap || dest->cargo_type != src->cargo_type) continue; 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); src->cargo.Shift(amount, &dest->cargo);
to_spread -= amount; 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; 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; if (amount <= 0) continue;
src->cargo.Shift(amount, &dest->cargo); src->cargo.Shift(amount, &dest->cargo);

View File

@ -416,8 +416,8 @@ public:
case WID_RV_LEFT_MATRIX: case WID_RV_LEFT_MATRIX:
case WID_RV_RIGHT_MATRIX: { case WID_RV_RIGHT_MATRIX: {
int side = (widget == WID_RV_LEFT_MATRIX) ? 0 : 1; int side = (widget == WID_RV_LEFT_MATRIX) ? 0 : 1;
EngineID start = this->vscroll[side]->GetPosition(); // what is the offset for the start (scrolling) EngineID start = static_cast<EngineID>(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 end = static_cast<EngineID>(std::min<size_t>(this->vscroll[side]->GetCapacity() + start, this->engines[side].size()));
/* Do the actual drawing */ /* Do the actual drawing */
DrawEngineList((VehicleType)this->window_number, r.left + WD_FRAMERECT_LEFT, r.right - WD_FRAMERECT_RIGHT, r.top + WD_FRAMERECT_TOP, 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); 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, 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); 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. if (needed_height != this->details_height) { // Details window are not high enough, enlarge them.

View File

@ -74,7 +74,7 @@ inline void Blitter_32bppAnim::Draw(const Blitter::BlitterParams *bp, ZoomLevel
dst = dst_end - bp->skip_left; dst = dst_end - bp->skip_left;
dst_end = dst + bp->width; dst_end = dst + bp->width;
n = min<uint>(n - d, (uint)bp->width); n = std::min(n - d, (uint)bp->width);
goto draw; goto draw;
} }
dst += n; dst += n;
@ -89,7 +89,7 @@ inline void Blitter_32bppAnim::Draw(const Blitter::BlitterParams *bp, ZoomLevel
dst_end += bp->width; dst_end += bp->width;
while (dst < dst_end) { 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) { if (src_px->a == 0) {
anim += n; anim += n;

View File

@ -58,7 +58,7 @@ void Blitter_32bppSSE2_Anim::PaletteAnimate(const Palette &palette)
if (x < 8 || colour_cmp_result != 0xFFFF || if (x < 8 || colour_cmp_result != 0xFFFF ||
_mm_movemask_epi8(_mm_cmpeq_epi16(_mm_srli_epi16(data, 8), brightness_cmp)) != 0xFFFF) { _mm_movemask_epi8(_mm_cmpeq_epi16(_mm_srli_epi16(data, 8), brightness_cmp)) != 0xFFFF) {
/* slow path: < 8 pixels left or unexpected brightnesses */ /* 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); int value = _mm_extract_epi16(data, 0);
uint8 colour = GB(value, 0, 8); uint8 colour = GB(value, 0, 8);
if (colour >= PALETTE_ANIM_START) { if (colour >= PALETTE_ANIM_START) {

View File

@ -174,9 +174,9 @@ Colour Blitter_32bppBase::ReallyAdjustBrightness(Colour colour, uint8 brightness
/* Reduce overbright strength */ /* Reduce overbright strength */
ob /= 2; ob /= 2;
return Colour( return Colour(
r >= 255 ? 255 : min(r + ob * (255 - r) / 256, 255), r >= 255 ? 255 : std::min(r + ob * (255 - r) / 256, 255),
g >= 255 ? 255 : min(g + ob * (255 - g) / 256, 255), g >= 255 ? 255 : std::min(g + ob * (255 - g) / 256, 255),
b >= 255 ? 255 : min(b + ob * (255 - b) / 256, 255), b >= 255 ? 255 : std::min(b + ob * (255 - b) / 256, 255),
colour.a); colour.a);
} }

View File

@ -83,7 +83,7 @@ inline void Blitter_32bppOptimized::Draw(const Blitter::BlitterParams *bp, ZoomL
dst = dst_end - bp->skip_left; dst = dst_end - bp->skip_left;
dst_end = dst + bp->width; dst_end = dst + bp->width;
n = min<uint>(n - d, (uint)bp->width); n = std::min(n - d, (uint)bp->width);
goto draw; goto draw;
} }
dst += n; dst += n;
@ -98,7 +98,7 @@ inline void Blitter_32bppOptimized::Draw(const Blitter::BlitterParams *bp, ZoomL
dst_end += bp->width; dst_end += bp->width;
while (dst < dst_end) { 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) { if (src_px->a == 0) {
dst += n; dst += n;
@ -324,7 +324,7 @@ Sprite *Blitter_32bppOptimized::Encode(const SpriteLoader::Sprite *sprite, Alloc
*dst_n = src->m; *dst_n = src->m;
if (src->m != 0) { if (src->m != 0) {
/* Get brightest value */ /* 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 */ /* Black pixel (8bpp or old 32bpp image), so use default value */
if (rgb_max == 0) rgb_max = DEFAULT_BRIGHTNESS; if (rgb_max == 0) rgb_max = DEFAULT_BRIGHTNESS;

View File

@ -132,7 +132,7 @@ Sprite *Blitter_32bppSimple::Encode(const SpriteLoader::Sprite *sprite, Allocato
dst[i].v = 0; dst[i].v = 0;
} else { } else {
/* Get brightest value */ /* 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 */ /* Black pixel (8bpp or old 32bpp image), so use default value */
if (rgb_max == 0) rgb_max = DEFAULT_BRIGHTNESS; if (rgb_max == 0) rgb_max = DEFAULT_BRIGHTNESS;

View File

@ -80,7 +80,7 @@ Sprite *Blitter_32bppSSE_Base::Encode(const SpriteLoader::Sprite *sprite, Alloca
if (src->m >= PALETTE_ANIM_START) has_anim = true; if (src->m >= PALETTE_ANIM_START) has_anim = true;
/* Get brightest value (or default brightness if it's a black pixel). */ /* 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; dst_mv->v = (rgb_max == 0) ? Blitter_32bppBase::DEFAULT_BRIGHTNESS : rgb_max;
/* Pre-convert the mapping channel to a RGB value. */ /* Pre-convert the mapping channel to a RGB value. */

View File

@ -80,7 +80,7 @@ void Blitter_8bppOptimized::Draw(Blitter::BlitterParams *bp, BlitterMode mode, Z
dst += trans; dst += trans;
width -= trans; width -= trans;
if (width <= 0 || pixels == 0) continue; if (width <= 0 || pixels == 0) continue;
pixels = min<uint>(pixels, (uint)width); pixels = std::min<uint>(pixels, width);
width -= pixels; width -= pixels;
switch (mode) { switch (mode) {

View File

@ -45,7 +45,7 @@ void Blitter::DrawLineGeneric(int x, int y, int x2, int y2, int screen_width, in
return; return;
} }
int frac_diff = width * max(dx, dy); int frac_diff = width * std::max(dx, dy);
if (width > 1) { if (width > 1) {
/* compute frac_diff = width * sqrt(dx*dx + dy*dy) /* compute frac_diff = width * sqrt(dx*dx + dy*dy)
* Start interval: * Start interval:

View File

@ -197,7 +197,7 @@ public:
} }
sprite_dim.height++; // Sprite is rendered one pixel down in the matrix field. 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. 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. 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; size->width = this->bridgetext_offset + text_dim.width + WD_MATRIX_RIGHT;

View File

@ -44,7 +44,7 @@
*/ */
uint GetEngineListHeight(VehicleType type) 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[] = { static const NWidgetPart _nested_build_vehicle_widgets[] = {
@ -1537,7 +1537,7 @@ struct BuildVehicleWindow : Window {
case WID_BV_LIST: case WID_BV_LIST:
resize->height = GetEngineListHeight(this->vehicle_type); resize->height = GetEngineListHeight(this->vehicle_type);
size->height = 3 * resize->height; 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; break;
case WID_BV_PANEL: case WID_BV_PANEL:
@ -1572,7 +1572,18 @@ struct BuildVehicleWindow : Window {
{ {
switch (widget) { switch (widget) {
case WID_BV_LIST: 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; break;
case WID_BV_SORT_ASCENDING_DESCENDING: case WID_BV_SORT_ASCENDING_DESCENDING:
@ -1597,7 +1608,7 @@ struct BuildVehicleWindow : Window {
NWidgetBase *nwi = this->GetWidget<NWidgetBase>(WID_BV_PANEL); 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, 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); 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. if (needed_height != this->details_height) { // Details window are not high enough, enlarge them.
int resize = needed_height - this->details_height; int resize = needed_height - this->details_height;

View File

@ -558,7 +558,7 @@ uint VehicleCargoList::Reassign(uint max_move, TileOrStationID)
{ {
static_assert(Tfrom != MTA_TRANSFER && Tto != MTA_TRANSFER); static_assert(Tfrom != MTA_TRANSFER && Tto != MTA_TRANSFER);
static_assert(Tfrom - Tto == 1 || Tto - Tfrom == 1); 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[Tfrom] -= max_move;
this->action_counts[Tto] += max_move; this->action_counts[Tto] += max_move;
return max_move; return max_move;
@ -574,7 +574,7 @@ uint VehicleCargoList::Reassign(uint max_move, TileOrStationID)
template<> template<>
uint VehicleCargoList::Reassign<VehicleCargoList::MTA_DELIVER, VehicleCargoList::MTA_TRANSFER>(uint max_move, TileOrStationID next_station) 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; uint sum = 0;
for (Iterator it(this->packets.begin()); sum < this->action_counts[MTA_TRANSFER] + max_move;) { 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) 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)); this->PopCargo(CargoReturn(this, dest, max_move, next));
return max_move; 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) 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)); this->PopCargo(CargoShift(this, dest, max_move));
return max_move; return max_move;
} }
@ -633,12 +633,12 @@ uint VehicleCargoList::Unload(uint max_move, StationCargoList *dest, CargoPaymen
{ {
uint moved = 0; uint moved = 0;
if (this->action_counts[MTA_TRANSFER] > 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)); this->ShiftCargo(CargoTransfer(this, dest, move));
moved += move; moved += move;
} }
if (this->action_counts[MTA_TRANSFER] == 0 && this->action_counts[MTA_DELIVER] > 0 && moved < max_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)); this->ShiftCargo(CargoDelivery(this, move, payment));
moved += move; moved += move;
} }
@ -653,7 +653,7 @@ uint VehicleCargoList::Unload(uint max_move, StationCargoList *dest, CargoPaymen
*/ */
uint VehicleCargoList::Truncate(uint max_move) 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)); this->PopCargo(CargoRemoval<VehicleCargoList>(this, max_move));
return 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) 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)); this->ShiftCargo(VehicleCargoReroute(this, dest, max_move, avoid, avoid2, ge));
return max_move; 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) 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 prev_count = this->count;
uint moved = 0; uint moved = 0;
uint loop = 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 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) { if (move > 0) {
this->reserved_count -= move; this->reserved_count -= move;
dest->Reassign<VehicleCargoList::MTA_LOAD, VehicleCargoList::MTA_KEEP>(move); dest->Reassign<VehicleCargoList::MTA_LOAD, VehicleCargoList::MTA_KEEP>(move);

View File

@ -12,7 +12,6 @@
#include "newgrf_cargo.h" #include "newgrf_cargo.h"
#include "string_func.h" #include "string_func.h"
#include "strings_func.h" #include "strings_func.h"
#include <algorithm>
#include "table/sprites.h" #include "table/sprites.h"
#include "table/strings.h" #include "table/strings.h"

View File

@ -291,9 +291,9 @@ struct CheatWindow : Window {
switch (ce->type) { switch (ce->type) {
case SLE_BOOL: case SLE_BOOL:
SetDParam(0, STR_CONFIG_SETTING_ON); 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); SetDParam(0, STR_CONFIG_SETTING_OFF);
width = max(width, GetStringBoundingBox(ce->str).width); width = std::max(width, GetStringBoundingBox(ce->str).width);
break; break;
default: default:
@ -301,27 +301,27 @@ struct CheatWindow : Window {
/* Display date for change date cheat */ /* Display date for change date cheat */
case STR_CHEAT_CHANGE_DATE: case STR_CHEAT_CHANGE_DATE:
SetDParam(0, ConvertYMDToDate(MAX_YEAR, 11, 31)); SetDParam(0, ConvertYMDToDate(MAX_YEAR, 11, 31));
width = max(width, GetStringBoundingBox(ce->str).width); width = std::max(width, GetStringBoundingBox(ce->str).width);
break; break;
/* Draw coloured flag for change company cheat */ /* Draw coloured flag for change company cheat */
case STR_CHEAT_CHANGE_COMPANY: case STR_CHEAT_CHANGE_COMPANY:
SetDParamMaxValue(0, MAX_COMPANIES); SetDParamMaxValue(0, MAX_COMPANIES);
width = max(width, GetStringBoundingBox(ce->str).width + 10 + 10); width = std::max(width, GetStringBoundingBox(ce->str).width + 10 + 10);
break; break;
default: default:
SetDParam(0, INT64_MAX); SetDParam(0, INT64_MAX);
width = max(width, GetStringBoundingBox(ce->str).width); width = std::max(width, GetStringBoundingBox(ce->str).width);
break; break;
} }
break; break;
} }
} }
this->line_height = max(GetSpriteSize(SPR_BOX_CHECKED).height, GetSpriteSize(SPR_BOX_EMPTY).height); this->line_height = std::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 = std::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<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 */; 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; this->header_height = GetStringHeight(STR_CHEATS_WARNING, size->width - WD_FRAMERECT_LEFT - WD_FRAMERECT_RIGHT) + WD_PAR_VSEP_WIDE;

View File

@ -191,7 +191,7 @@ static void TileLoopClearAlps(TileIndex tile)
} }
/* Update snow density. */ /* Update snow density. */
uint current_density = GetClearDensity(tile); 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) { if (current_density < req_density) {
AddClearDensity(tile, 1); AddClearDensity(tile, 1);

View File

@ -265,9 +265,9 @@ void SubtractMoneyFromCompanyFract(CompanyID company, const CommandCost &cst)
void UpdateLandscapingLimits() void UpdateLandscapingLimits()
{ {
for (Company *c : Company::Iterate()) { 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->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 = min(c->clear_limit + _settings_game.construction.clear_per_64k_frames, (uint32)_settings_game.construction.clear_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 = min(c->tree_limit + _settings_game.construction.tree_per_64k_frames, (uint32)_settings_game.construction.tree_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); ResetCompanyLivery(c);
_company_colours[c->index] = (Colours)c->colour; _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; 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) { if (_next_competitor_start == 0) {
/* AI::GetStartNextTime() can return 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) { 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; if (!_settings_game.economy.give_money) return CMD_ERROR;
const Company *c = Company::Get(_current_company); 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; CompanyID dest_company = (CompanyID)p2;
/* You can only transfer funds that is in excess of your loan */ /* You can only transfer funds that is in excess of your loan */

View File

@ -112,11 +112,11 @@ struct ExpensesList {
ExpensesType et = this->et[i]; ExpensesType et = this->et[i];
if (et == INVALID_EXPENSES) { if (et == INVALID_EXPENSES) {
if (!invalid_expenses_measured) { 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; invalid_expenses_measured = true;
} }
} else { } else {
width = max(width, GetStringBoundingBox(STR_FINANCES_SECTION_CONSTRUCTION + et).width); width = std::max(width, GetStringBoundingBox(STR_FINANCES_SECTION_CONSTRUCTION + et).width);
} }
} }
return width; return width;
@ -322,7 +322,7 @@ struct CompanyFinancesWindow : Window {
case WID_CF_LOAN_VALUE: case WID_CF_LOAN_VALUE:
case WID_CF_TOTAL_VALUE: case WID_CF_TOTAL_VALUE:
SetDParamMaxValue(0, CompanyFinancesWindow::max_money); 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; break;
case WID_CF_MAXLOAN_GAP: case WID_CF_MAXLOAN_GAP:
@ -342,7 +342,7 @@ struct CompanyFinancesWindow : Window {
case WID_CF_EXPS_PRICE2: case WID_CF_EXPS_PRICE2:
case WID_CF_EXPS_PRICE3: { case WID_CF_EXPS_PRICE3: {
const Company *c = Company::Get((CompanyID)this->window_number); 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; int wid_offset = widget - WID_CF_EXPS_PRICE1;
if (wid_offset <= age) { if (wid_offset <= age) {
DrawYearColumn(r, _cur_year - (age - wid_offset), c->yearly_expenses + (age - wid_offset)); 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); const Company *c = Company::Get((CompanyID)this->window_number);
if (c->money > CompanyFinancesWindow::max_money) { 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->SetupWidgets();
this->ReInit(); this->ReInit();
} }
@ -526,7 +526,7 @@ public:
uint Height(uint width) const override 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 bool Selectable() const override
@ -731,7 +731,7 @@ public:
/* Position scrollbar to selected group */ /* Position scrollbar to selected group */
for (uint i = 0; i < this->rows; i++) { for (uint i = 0; i < this->rows; i++) {
if (this->groups[i]->index == sel) { 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; 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; break;
} }
case WID_SCL_MATRIX: { case WID_SCL_MATRIX: {
/* 11 items in the default rail class */ /* 11 items in the default rail class */
this->square = GetSpriteSize(SPR_SQUARE); 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; size->height = 11 * this->line_height;
resize->width = 1; resize->width = 1;
@ -781,9 +781,9 @@ public:
this->square = GetSpriteSize(SPR_SQUARE); this->square = GetSpriteSize(SPR_SQUARE);
int padding = this->square.width + NWidgetScrollbar::GetVerticalDimension().width + 10; int padding = this->square.width + NWidgetScrollbar::GetVerticalDimension().width + 10;
for (const StringID *id = _colour_dropdown; id != endof(_colour_dropdown); id++) { 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; break;
} }
} }
@ -898,7 +898,7 @@ public:
} }
} }
} else { } 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) { for (uint i = this->vscroll->GetPosition(); i < max; ++i) {
const Group *g = this->groups[i]; const Group *g = this->groups[i];
SetDParam(0, g->index); SetDParam(0, g->index);
@ -1380,7 +1380,7 @@ public:
number_dim.width += WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT + arrows_width; number_dim.width += WD_FRAMERECT_LEFT + WD_FRAMERECT_RIGHT + arrows_width;
number_dim.height += WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM; number_dim.height += WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM;
/* Compute width of both buttons. */ /* 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; number_dim.width = yesno_dim.width - arrows_width;
this->yesno_dim = yesno_dim; this->yesno_dim = yesno_dim;
@ -1392,8 +1392,8 @@ public:
switch (widget) { switch (widget) {
case WID_SCMF_FACE: { case WID_SCMF_FACE: {
Dimension face_size = GetSpriteSize(SPR_GRADIENT); Dimension face_size = GetSpriteSize(SPR_GRADIENT);
size->width = max(size->width, face_size.width); size->width = std::max(size->width, face_size.width);
size->height = max(size->height, face_size.height); size->height = std::max(size->height, face_size.height);
break; break;
} }
@ -1885,22 +1885,22 @@ struct CompanyInfrastructureWindow : Window
case WID_CI_RAIL_DESC: { case WID_CI_RAIL_DESC: {
uint lines = 1; // Starts at 1 because a line is also required for the section title 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; RailType rt;
FOR_ALL_SORTED_RAILTYPES(rt) { FOR_ALL_SORTED_RAILTYPES(rt) {
if (HasBit(this->railtypes, rt)) { if (HasBit(this->railtypes, rt)) {
lines++; lines++;
SetDParam(0, GetRailTypeInfo(rt)->strings.name); 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) { if (this->railtypes != RAILTYPES_NONE) {
lines++; 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; break;
} }
@ -1908,30 +1908,30 @@ struct CompanyInfrastructureWindow : Window
case WID_CI_TRAM_DESC: { case WID_CI_TRAM_DESC: {
uint lines = 1; // Starts at 1 because a line is also required for the section title 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; RoadType rt;
FOR_ALL_SORTED_ROADTYPES(rt) { FOR_ALL_SORTED_ROADTYPES(rt) {
if (HasBit(this->roadtypes, rt) && RoadTypeIsRoad(rt) == (widget == WID_CI_ROAD_DESC)) { if (HasBit(this->roadtypes, rt) && RoadTypeIsRoad(rt) == (widget == WID_CI_ROAD_DESC)) {
lines++; lines++;
SetDParam(0, GetRoadTypeInfo(rt)->strings.name); 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; break;
} }
case WID_CI_WATER_DESC: case WID_CI_WATER_DESC:
size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_WATER_SECT).width); size->width = std::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_CANALS).width + WD_FRAMERECT_LEFT);
break; break;
case WID_CI_STATION_DESC: case WID_CI_STATION_DESC:
size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_STATION_SECT).width); size->width = std::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 = std::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_AIRPORTS).width + WD_FRAMERECT_LEFT);
break; break;
case WID_CI_RAIL_COUNT: case WID_CI_RAIL_COUNT:
@ -1945,24 +1945,24 @@ struct CompanyInfrastructureWindow : Window
Money max_cost = 10000; // Some random number to reserve enough space. Money max_cost = 10000; // Some random number to reserve enough space.
uint32 rail_total = c->infrastructure.GetRailTotal(); uint32 rail_total = c->infrastructure.GetRailTotal();
for (RailType rt = RAILTYPE_BEGIN; rt < RAILTYPE_END; rt++) { for (RailType rt = RAILTYPE_BEGIN; rt < RAILTYPE_END; rt++) {
max_val = max(max_val, c->infrastructure.rail[rt]); max_val = std::max(max_val, c->infrastructure.rail[rt]);
max_cost = max(max_cost, RailMaintenanceCost(rt, c->infrastructure.rail[rt], rail_total)); max_cost = std::max(max_cost, RailMaintenanceCost(rt, c->infrastructure.rail[rt], rail_total));
} }
max_val = max(max_val, c->infrastructure.signal); max_val = std::max(max_val, c->infrastructure.signal);
max_cost = max(max_cost, SignalMaintenanceCost(c->infrastructure.signal)); max_cost = std::max(max_cost, SignalMaintenanceCost(c->infrastructure.signal));
uint32 road_total = c->infrastructure.GetRoadTotal(); uint32 road_total = c->infrastructure.GetRoadTotal();
uint32 tram_total = c->infrastructure.GetTramTotal(); uint32 tram_total = c->infrastructure.GetTramTotal();
for (RoadType rt = ROADTYPE_BEGIN; rt < ROADTYPE_END; rt++) { for (RoadType rt = ROADTYPE_BEGIN; rt < ROADTYPE_END; rt++) {
max_val = max(max_val, c->infrastructure.road[rt]); max_val = std::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_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_val = std::max(max_val, c->infrastructure.water);
max_cost = max(max_cost, CanalMaintenanceCost(c->infrastructure.water)); max_cost = std::max(max_cost, CanalMaintenanceCost(c->infrastructure.water));
max_val = max(max_val, c->infrastructure.station); max_val = std::max(max_val, c->infrastructure.station);
max_cost = max(max_cost, StationMaintenanceCost(c->infrastructure.station)); max_cost = std::max(max_cost, StationMaintenanceCost(c->infrastructure.station));
max_val = max(max_val, c->infrastructure.airport); max_val = std::max(max_val, c->infrastructure.airport);
max_cost = max(max_cost, AirportMaintenanceCost(c->index)); max_cost = std::max(max_cost, AirportMaintenanceCost(c->index));
SetDParamMaxValue(0, max_val); SetDParamMaxValue(0, max_val);
uint count_width = GetStringBoundingBox(STR_WHITE_COMMA).width + 20; // Reserve some wiggle room 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) { if (_settings_game.economy.infrastructure_maintenance) {
SetDParamMaxValue(0, this->GetTotalMaintenanceCost() * 12); // Convert to per year SetDParamMaxValue(0, this->GetTotalMaintenanceCost() * 12); // Convert to per year
this->total_width = GetStringBoundingBox(STR_COMPANY_INFRASTRUCTURE_VIEW_TOTAL).width + 20; 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 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. */ /* Set height of the total line. */
if (widget == WID_CI_TOTAL) { 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; break;
} }
@ -2367,8 +2367,8 @@ struct CompanyWindow : Window
switch (widget) { switch (widget) {
case WID_C_FACE: { case WID_C_FACE: {
Dimension face_size = GetSpriteSize(SPR_GRADIENT); Dimension face_size = GetSpriteSize(SPR_GRADIENT);
size->width = max(size->width, face_size.width); size->width = std::max(size->width, face_size.width);
size->height = max(size->height, face_size.height); size->height = std::max(size->height, face_size.height);
break; break;
} }
@ -2389,18 +2389,18 @@ struct CompanyWindow : Window
case WID_C_DESC_VEHICLE_COUNTS: case WID_C_DESC_VEHICLE_COUNTS:
SetDParamMaxValue(0, 5000); // Maximum number of vehicles SetDParamMaxValue(0, 5000); // Maximum number of vehicles
for (uint i = 0; i < lengthof(_company_view_vehicle_count_strings); i++) { 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; break;
case WID_C_DESC_INFRASTRUCTURE_COUNTS: case WID_C_DESC_INFRASTRUCTURE_COUNTS:
SetDParamMaxValue(0, UINT_MAX); SetDParamMaxValue(0, UINT_MAX);
size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL).width); size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_RAIL).width);
size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD).width); size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_ROAD).width);
size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_WATER).width); size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_WATER).width);
size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_STATION).width); size->width = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_STATION).width);
size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_AIRPORT).width); size->width = std::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_NONE).width);
break; break;
case WID_C_DESC_OWNERS: { case WID_C_DESC_OWNERS: {
@ -2408,7 +2408,7 @@ struct CompanyWindow : Window
SetDParamMaxValue(0, 75); SetDParamMaxValue(0, 75);
SetDParam(1, c2->index); 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; break;
} }
@ -2420,13 +2420,13 @@ struct CompanyWindow : Window
case WID_C_GIVE_MONEY: case WID_C_GIVE_MONEY:
case WID_C_COMPANY_PASSWORD: case WID_C_COMPANY_PASSWORD:
case WID_C_COMPANY_JOIN: case WID_C_COMPANY_JOIN:
size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_VIEW_HQ_BUTTON).width); size->width = std::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 = std::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 = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_RELOCATE_HQ).width);
size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_INFRASTRUCTURE_BUTTON).width); size->width = std::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 = std::max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_GIVE_MONEY_BUTTON).width);
size->width = max(size->width, GetStringBoundingBox(STR_COMPANY_VIEW_PASSWORD).width); size->width = std::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_JOIN).width);
break; break;
case WID_C_HAS_PASSWORD: case WID_C_HAS_PASSWORD:

View File

@ -2015,7 +2015,7 @@ DEF_CONSOLE_CMD(ConNewGRFProfile)
if (started > 0) { if (started > 0) {
IConsolePrintF(CC_DEBUG, "Started profiling for GRFID%s %s", (started > 1) ? "s" : "", grfids.c_str()); IConsolePrintF(CC_DEBUG, "Started profiling for GRFID%s %s", (started > 1) ? "s" : "", grfids.c_str());
if (argc >= 3) { if (argc >= 3) {
int days = max(atoi(argv[2]), 1); int days = std::max(atoi(argv[2]), 1);
_newgrf_profile_end_date = _date + days; _newgrf_profile_end_date = _date + days;
char datestrbuf[32]{ 0 }; char datestrbuf[32]{ 0 };

View File

@ -194,7 +194,7 @@ struct IConsoleWindow : Window
*/ */
void Scroll(int amount) 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); IConsoleWindow::scroll = Clamp<int>(IConsoleWindow::scroll + amount, 0, max_scroll);
this->SetDirty(); this->SetDirty();
} }
@ -231,7 +231,7 @@ struct IConsoleWindow : Window
{ {
if (IConsoleLine::Truncate() && if (IConsoleLine::Truncate() &&
(IConsoleWindow::scroll > IConsoleLine::size)) { (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(); this->SetDirty();
} }
} }
@ -341,7 +341,7 @@ struct IConsoleWindow : Window
Point GetCaretPosition() const override 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}; Point pt = {this->line_offset + delta + _iconsole_cmdline.caretxoffs, this->height - this->line_height};
return pt; return pt;
@ -349,7 +349,7 @@ struct IConsoleWindow : Window
Rect GetTextBoundingRect(const char *from, const char *to) const override 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 p1 = GetCharPosInString(_iconsole_cmdline.buf, from, FS_NORMAL);
Point p2 = from != to ? GetCharPosInString(_iconsole_cmdline.buf, from) : p1; 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 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; if (!IsInsideMM(pt.y, this->height - this->line_height, this->height)) return nullptr;

View File

@ -22,7 +22,7 @@
Dimension maxdim(const Dimension &d1, const Dimension &d2) Dimension maxdim(const Dimension &d1, const Dimension &d2)
{ {
Dimension d; Dimension d;
d.width = max(d1.width, d2.width); d.width = std::max(d1.width, d2.width);
d.height = max(d1.height, d2.height); d.height = std::max(d1.height, d2.height);
return d; return d;
} }

View File

@ -12,7 +12,6 @@
#include "../stdafx.h" #include "../stdafx.h"
#include <vector> #include <vector>
#include <algorithm>
#include <limits> #include <limits>
/** /**
@ -261,7 +260,7 @@ class Kdtree {
best = SelectNearestNodeDistance(best, this->FindNearestRecursive(xy, next, level + 1)); 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, /* 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. */ * if it is we also need to check the other side of the split. */

View File

@ -10,66 +10,6 @@
#ifndef MATH_FUNC_HPP #ifndef MATH_FUNC_HPP
#define MATH_FUNC_HPP #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. * Returns the absolute value of (scalar) variable.
* *
@ -216,7 +156,7 @@ static inline uint16 ClampToU16(const uint64 a)
* match for min(uint64, uint) than uint64 min(uint64, uint64). As such we * 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 * need to cast the UINT16_MAX to prevent MSVC from displaying its
* infinite loads of warnings. */ * 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)));
} }
/** /**

View File

@ -52,7 +52,7 @@ DEFINE_POOL_METHOD(inline void)::ResizeFor(size_t index)
assert(index >= this->size); assert(index >= this->size);
assert(index < Tmax_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); this->data = ReallocT(this->data, new_size);
MemSetT(this->data + this->size, 0, new_size - this->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); 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++; this->items++;
Titem *item; Titem *item;
@ -187,7 +187,7 @@ DEFINE_POOL_METHOD(void)::FreeItem(size_t index)
free(this->data[index]); free(this->data[index]);
} }
this->data[index] = nullptr; this->data[index] = nullptr;
this->first_free = min(this->first_free, index); this->first_free = std::min(this->first_free, index);
this->items--; this->items--;
if (!this->cleaning) Titem::PostDestructor(index); if (!this->cleaning) Titem::PostDestructor(index);
} }

View File

@ -234,7 +234,7 @@ public:
if (x * new_height > new_capacity) continue; if (x * new_height > new_capacity) continue;
(*copy)(new_data + (x - 1) * new_height, (*copy)(new_data + (x - 1) * new_height,
this->data + (x - 1) * this->height, this->data + (x - 1) * this->height,
min(this->height, new_height)); std::min(this->height, new_height));
} }
} else { } else {
/* If matrix is shrinking copy from the front. */ /* If matrix is shrinking copy from the front. */
@ -242,7 +242,7 @@ public:
if ((x + 1) * new_height > new_capacity) break; if ((x + 1) * new_height > new_capacity) break;
(*copy)(new_data + x * new_height, (*copy)(new_data + x * new_height,
this->data + x * this->height, this->data + x * this->height,
min(this->height, new_height)); std::min(this->height, new_height));
} }
} }
} }

View File

@ -46,7 +46,7 @@ public:
if (index < Tmax_size) { if (index < Tmax_size) {
this->data[index].valid = true; this->data[index].valid = true;
this->first_free = index + 1; 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; return index;
} }
@ -58,7 +58,7 @@ public:
inline void Destroy(Tindex index) inline void Destroy(Tindex index)
{ {
this->data[index].valid = false; this->data[index].valid = false;
this->first_free = min(this->first_free, index); this->first_free = std::min(this->first_free, index);
} }
private: private:

View File

@ -13,7 +13,6 @@
#include "alloc_func.hpp" #include "alloc_func.hpp"
#include "mem_func.hpp" #include "mem_func.hpp"
#include <vector> #include <vector>
#include <algorithm>
/** /**
* Helper function to append an item to a vector if it is not already contained * Helper function to append an item to a vector if it is not already contained

View File

@ -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) : SetDateWindow(WindowDesc *desc, WindowNumber window_number, Window *parent, Date initial_date, Year min_year, Year max_year, SetDateCallback *callback) :
Window(desc), Window(desc),
callback(callback), callback(callback),
min_year(max(MIN_YEAR, min_year)), min_year(std::max(MIN_YEAR, min_year)),
max_year(min(MAX_YEAR, max_year)) max_year(std::min(MAX_YEAR, max_year))
{ {
assert(this->min_year <= this->max_year); assert(this->min_year <= this->max_year);
this->parent = parent; this->parent = parent;

View File

@ -194,12 +194,12 @@ static void InitBlocksizeForVehicles(VehicleType type, EngineImageType image_typ
switch (image_type) { switch (image_type) {
case EIT_IN_DEPOT: 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_left = Clamp(max_extend_left, min_extend, max_extend);
_base_block_sizes_depot[type].extend_right = Clamp(max_extend_right, min_extend, max_extend); _base_block_sizes_depot[type].extend_right = Clamp(max_extend_right, min_extend, max_extend);
break; break;
case EIT_PURCHASE: 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_left = Clamp(max_extend_left, min_extend, max_extend);
_base_block_sizes_purchase[type].extend_right = Clamp(max_extend_right, min_extend, max_extend); _base_block_sizes_purchase[type].extend_right = Clamp(max_extend_right, min_extend, max_extend);
break; break;
@ -395,7 +395,7 @@ struct DepotWindow : Window {
uint16 rows_in_display = wid->current_y / wid->resize_y; uint16 rows_in_display = wid->current_y / wid->resize_y;
uint16 num = this->vscroll->GetPosition() * this->num_columns; 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; int y;
for (y = r.top + 1; num < maxval; y += this->resize.step_height) { // Draw the rows 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++) { 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. */ /* Draw the train wagons without an engine in front. */
for (; num < maxval; num++, y += this->resize.step_height) { for (; num < maxval; num++, y += this->resize.step_height) {
@ -668,15 +668,15 @@ struct DepotWindow : Window {
this->flag_height = UnScaleGUI(spr->height); this->flag_height = UnScaleGUI(spr->height);
if (this->type == VEH_TRAIN || this->type == VEH_ROAD) { 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; this->header_width = unumber.width + this->flag_width + WD_FRAMERECT_LEFT;
} else { } else {
min_height = unumber.height + UnScaleGUI(spr->height) + WD_MATRIX_TOP + WD_PAR_VSEP_NORMAL + WD_MATRIX_BOTTOM; 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; 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) { if (this->type == VEH_TRAIN) {
resize->width = 1; resize->width = 1;
size->width = base_width + 2 * ScaleGUITrad(29); // about 2 parts 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()) { for (const Train *v = Train::From(this->vehicle_list[num]); v != nullptr; v = v->Next()) {
width += v->GetDisplayImageWidth(); 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 */ /* 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); this->vscroll->SetCount((uint)this->vehicle_list.size() + (uint)this->wagon_list.size() + 1);

View File

@ -193,7 +193,7 @@ void DisasterVehicle::UpdatePosition(int x, int y, int z)
int safe_y = Clamp(y - 1, 0, MapMaxY() * TILE_SIZE); int safe_y = Clamp(y - 1, 0, MapMaxY() * TILE_SIZE);
u->x_pos = x; 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); safe_y = Clamp(u->y_pos, 0, MapMaxY() * TILE_SIZE);
u->z_pos = GetSlopePixelZ(safe_x, safe_y); u->z_pos = GetSlopePixelZ(safe_x, safe_y);
u->direction = this->direction; u->direction = this->direction;

View File

@ -72,7 +72,7 @@ static TileIndex GetOtherAqueductEnd(TileIndex tile_from, TileIndex *tile_to = n
/* Direction the aqueduct is built to. */ /* Direction the aqueduct is built to. */
TileIndexDiff offset = TileOffsByDiagDir(ReverseDiagDir(dir)); TileIndexDiff offset = TileOffsByDiagDir(ReverseDiagDir(dir));
/* The maximum length of the aqueduct. */ /* 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; TileIndex endtile = tile_from;
for (int length = 0; IsValidTile(endtile) && TileX(endtile) != 0 && TileY(endtile) != 0; length++) { for (int length = 0; IsValidTile(endtile) && TileX(endtile) != 0 && TileY(endtile) != 0; length++) {

View File

@ -135,7 +135,7 @@ Money CalculateCompanyValue(const Company *c, bool including_loan)
if (including_loan) value -= c->current_loan; if (including_loan) value -= c->current_loan;
value += c->money; 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 */ /* 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) { if (numec != 0) {
const CompanyEconomyEntry *cee = c->old_economy; const CompanyEconomyEntry *cee = c->old_economy;
Money min_income = cee->income + cee->expenses; Money min_income = cee->income + cee->expenses;
Money max_income = cee->income + cee->expenses; Money max_income = cee->income + cee->expenses;
do { do {
min_income = min(min_income, cee->income + cee->expenses); min_income = std::min(min_income, cee->income + cee->expenses);
max_income = max(max_income, cee->income + cee->expenses); max_income = std::max(max_income, cee->income + cee->expenses);
} while (++cee, --numec); } while (++cee, --numec);
if (min_income > 0) { if (min_income > 0) {
@ -215,7 +215,7 @@ int UpdateCompanyRatingAndValue(Company *c, bool update)
/* Generate score depending on amount of transported cargo */ /* 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) { if (numec != 0) {
const CompanyEconomyEntry *cee = c->old_economy; const CompanyEconomyEntry *cee = c->old_economy;
OverflowSafeInt64 total_delivered = 0; 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, old_owner)) {
if (HasBit(t->have_ratings, new_owner)) { if (HasBit(t->have_ratings, new_owner)) {
/* use max of the two ratings. */ /* 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 { } else {
SetBit(t->have_ratings, new_owner); SetBit(t->have_ratings, new_owner);
t->ratings[new_owner] = t->ratings[old_owner]; t->ratings[new_owner] = t->ratings[old_owner];
@ -911,12 +911,12 @@ void StartupEconomy()
{ {
_economy.interest_rate = _settings_game.difficulty.initial_interest; _economy.interest_rate = _settings_game.difficulty.initial_interest;
_economy.infl_amount = _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; _economy.fluct = GB(Random(), 0, 8) + 168;
if (_settings_game.economy.inflation) { if (_settings_game.economy.inflation) {
/* Apply inflation that happened before our game start year. */ /* 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++) { for (int i = 0; i < months; i++) {
AddInflation(false); 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 */ /* Use callback to calculate cargo profit, if available */
if (HasBit(cs->callback_mask, CBM_CARGO_PROFIT_CALC)) { 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); uint16 callback = GetCargoCallback(CBID_CARGO_PROFIT_CALC, 0, var18, cs);
if (callback != CALLBACK_FAILED) { if (callback != CALLBACK_FAILED) {
int result = GB(callback, 0, 14); 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 days1 = cs->transit_days[0];
const int days2 = cs->transit_days[1]; const int days2 = cs->transit_days[1];
const int days_over_days1 = max( transit_days - days1, 0); const int days_over_days1 = std::max( transit_days - days1, 0);
const int days_over_days2 = max(days_over_days1 - days2, 0); const int days_over_days2 = std::max(days_over_days1 - days2, 0);
/* /*
* The time factor is calculated based on the time it took * 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 * - 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); 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 */ /* Insert the industry into _cargo_delivery_destinations, if not yet contained */
include(_cargo_delivery_destinations, ind); 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->incoming_cargo_waiting[cargo_index] += amount;
ind->last_cargo_accepted_at[cargo_index] = _date; ind->last_cargo_accepted_at[cargo_index] = _date;
num_pieces -= amount; num_pieces -= amount;
@ -1150,7 +1150,7 @@ static void TriggerIndustryProduction(Industry *i)
if (cargo_waiting == 0) continue; if (cargo_waiting == 0) continue;
for (uint ci_out = 0; ci_out < lengthof(i->produced_cargo_waiting); ci_out++) { 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; 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); 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. */ /* 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. */ /* 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) { if (HasBit(v->vehicle_flags, VF_CARGO_UNLOADING) && (front->current_order.GetUnloadType() & OUFB_NO_UNLOAD) == 0) {
uint cargo_count = v->cargo.UnloadCount(); 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? bool remaining = false; // Are there cargo entities in this vehicle that can still be unloaded here?
assert(payment != nullptr); 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. */ /* 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_speed = std::min(t, 255);
ge->last_age = min(_cur_year - front->build_year, 255); ge->last_age = std::min(_cur_year - front->build_year, 255);
assert(v->cargo_cap >= v->cargo.StoredCount()); assert(v->cargo_cap >= v->cargo.StoredCount());
/* Capacity available for loading more cargo. */ /* Capacity available for loading more cargo. */
@ -1768,7 +1768,7 @@ static void LoadUnloadVehicle(Vehicle *front)
* has capacity for it, load it on the vehicle. */ * 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.ActionCount(VehicleCargoList::MTA_LOAD) > 0 || ge->cargo.AvailableCount() > 0) && MayLoadUnderExclusiveRights(st, v)) {
if (v->cargo.StoredCount() == 0) TriggerVehicle(v, VEHICLE_TRIGGER_NEW_CARGO); 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); uint loaded = ge->cargo.Load(cap_left, &v->cargo, st->xy, next_station);
if (v->cargo.ActionCount(VehicleCargoList::MTA_LOAD) > 0) { 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 /* 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. */ * 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) && 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); SetBit(front->vehicle_flags, VF_STOP_LOADING);
} }

View File

@ -229,7 +229,8 @@ static int GetPCPElevation(TileIndex tile, DiagDirection PCPpos)
* Also note that the result of GetSlopePixelZ() is very special on bridge-ramps. * 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); return (z + 2) & ~3; // this means z = (z + TILE_HEIGHT / 4) / (TILE_HEIGHT / 2) * (TILE_HEIGHT / 2);
} }

View File

@ -578,7 +578,7 @@ static void CalcEngineReliability(Engine *e)
/* Check for early retirement */ /* Check for early retirement */
if (e->company_avail != 0 && !_settings_game.vehicle.never_expire_vehicles && e->info.base_life != 0xFF) { if (e->company_avail != 0 && !_settings_game.vehicle.never_expire_vehicles && e->info.base_life != 0xFF) {
int retire_early = e->info.retire_early; 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) { if (retire_early != 0 && age >= retire_early_max_age) {
/* Early retirement is enabled and we're past the date... */ /* Early retirement is enabled and we're past the date... */
e->company_avail = 0; e->company_avail = 0;
@ -625,7 +625,7 @@ void SetYearEngineAgingStops()
YearMonthDay ymd; YearMonthDay ymd;
ConvertDateToYMD(ei->base_intro + (ei->lifelength * DAYS_IN_LEAP_YEAR) / 2, &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() void StartupEngines()
{ {
/* Aging of vehicles stops, so account for that when starting late */ /* 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()) { for (Engine *e : Engine::Iterate()) {
StartupOneEngine(e, aging_date); StartupOneEngine(e, aging_date);
@ -1196,7 +1196,7 @@ void CheckEngines()
if ((e->flags & ENGINE_AVAILABLE) != 0 && e->company_avail != 0) return; if ((e->flags & ENGINE_AVAILABLE) != 0 && e->company_avail != 0) return;
/* Okay, try to find the earliest date. */ /* 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) { if (min_date < INT32_MAX) {

View File

@ -93,9 +93,9 @@ struct EnginePreviewWindow : Window {
case VEH_SHIP: GetShipSpriteSize( engine, x, y, x_offs, y_offs, image_type); break; 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; 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)); SetDParam(0, GetEngineCategoryName(engine));
size->height = GetStringHeight(STR_ENGINE_PREVIEW_MESSAGE, size->width) + WD_PAR_VSEP_WIDE + FONT_HEIGHT_NORMAL + this->vehicle_space; size->height = GetStringHeight(STR_ENGINE_PREVIEW_MESSAGE, size->width) + WD_PAR_VSEP_WIDE + FONT_HEIGHT_NORMAL + this->vehicle_space;
SetDParam(0, engine); SetDParam(0, engine);

View File

@ -189,7 +189,7 @@ public:
CopyInDParam(0, this->decode_params, lengthof(this->decode_params)); 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); 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_summary = GetStringHeight(this->summary_msg, text_width);
this->height_detailed = (this->detailed_msg == INVALID_STRING_ID) ? 0 : GetStringHeight(this->detailed_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; 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; 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; break;
} }
case WID_EM_FACE: { case WID_EM_FACE: {
Dimension face_size = GetSpriteSize(SPR_GRADIENT); Dimension face_size = GetSpriteSize(SPR_GRADIENT);
size->width = max(size->width, face_size.width); size->width = std::max(size->width, face_size.width);
size->height = max(size->height, face_size.height); size->height = std::max(size->height, face_size.height);
break; break;
} }
} }

View File

@ -24,7 +24,6 @@
#include <pwd.h> #include <pwd.h>
#endif #endif
#include <sys/stat.h> #include <sys/stat.h>
#include <algorithm>
#include <array> #include <array>
#include <sstream> #include <sstream>
@ -125,7 +124,7 @@ byte FioReadByte()
void FioSkipBytes(int n) void FioSkipBytes(int n)
{ {
for (;;) { for (;;) {
int m = min(_fio.buffer_end - _fio.buffer, n); int m = std::min<int>(_fio.buffer_end - _fio.buffer, n);
_fio.buffer += m; _fio.buffer += m;
n -= m; n -= m;
if (n == 0) break; if (n == 0) break;
@ -892,7 +891,7 @@ bool ExtractTar(const std::string &tar_filename, Subdirectory subdir)
char buffer[4096]; char buffer[4096];
size_t read; size_t read;
for (; to_copy != 0; to_copy -= 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; if (read <= 0 || fwrite(buffer, 1, read, out.get()) != read) break;
} }

View File

@ -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 /* Font height is minimum height plus the difference between the default
* height for this font size and the small size. */ * height for this font size and the small size. */
int diff = scaled_height - ScaleFontTrad(_default_font_height[FS_SMALL]); 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 { } else {
pixels = ScaleFontTrad(pixels); pixels = ScaleFontTrad(pixels);
@ -656,8 +656,8 @@ const Sprite *FreeTypeFontCache::InternalGetGlyph(GlyphID key, bool aa)
aa = (slot->bitmap.pixel_mode == FT_PIXEL_MODE_GRAY); 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 */ /* 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 width = std::max(1U, (uint)slot->bitmap.width + (this->fs == FS_NORMAL));
uint height = max(1U, (uint)slot->bitmap.rows + (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. */ /* Limit glyph size to prevent overflows later on. */
if (width > 256 || height > 256) usererror("Font glyph is too large"); 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 /* Font height is minimum height plus the difference between the default
* height for this font size and the small size. */ * height for this font size and the small size. */
int diff = scaled_height - ScaleFontTrad(_default_font_height[FS_SMALL]); 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); SelectObject(dc, old);
DeleteObject(temp); DeleteObject(temp);
@ -851,7 +851,7 @@ void Win32FontCache::ClearFontCache()
MAT2 mat = { {0, 1}, {0, 0}, {0, 0}, {0, 1} }; MAT2 mat = { {0, 1}, {0, 0}, {0, 0}, {0, 1} };
/* Make a guess for the needed memory size. */ /* 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); byte *bmp = AllocaM(byte, size);
size = GetGlyphOutline(this->dc, key, GGO_GLYPH_INDEX | (aa ? GGO_GRAY8_BITMAP : GGO_BITMAP), &gm, size, bmp, &mat); 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. */ /* 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 width = std::max(1U, (uint)gm.gmBlackBoxX + (this->fs == FS_NORMAL));
uint height = max(1U, (uint)gm.gmBlackBoxY + (this->fs == FS_NORMAL)); uint height = std::max(1U, (uint)gm.gmBlackBoxY + (this->fs == FS_NORMAL));
/* Limit glyph size to prevent overflows later on. */ /* Limit glyph size to prevent overflows later on. */
if (width > 256 || height > 256) usererror("Font glyph is too large"); 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, * 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 * inclusively. To map this to 0 to 255, we shift left by two and then
* subtract one. */ * 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. */ /* Draw shadow for medium size. */
if (this->fs == FS_NORMAL && !aa) { if (this->fs == FS_NORMAL && !aa) {

View File

@ -222,7 +222,7 @@ static const char *GetEnglishFontName(const ENUMLOGFONTEX *logfont)
offset += buf[pos++]; offset += buf[pos++];
/* Don't buffer overflow */ /* 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]; for (uint j = 0; j < length; j++) font_name[j] = buf[stringOffset + offset + j];
font_name[length] = '\0'; font_name[length] = '\0';

View File

@ -76,7 +76,7 @@ namespace {
this->prev_index = this->next_index; this->prev_index = this->next_index;
this->next_index += 1; this->next_index += 1;
if (this->next_index >= NUM_FRAMERATE_POINTS) this->next_index = 0; 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 */ /** 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->prev_index = this->next_index;
this->next_index += 1; this->next_index += 1;
if (this->next_index >= NUM_FRAMERATE_POINTS) this->next_index = 0; 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_duration = 0;
this->acc_timestamp = start_time; this->acc_timestamp = start_time;
@ -115,7 +115,7 @@ namespace {
/** Get average cycle processing time over a number of data points */ /** Get average cycle processing time over a number of data points */
double GetAverageDurationMilliseconds(int count) double GetAverageDurationMilliseconds(int count)
{ {
count = min(count, this->num_valid); count = std::min(count, this->num_valid);
int first_point = this->prev_index - count; int first_point = this->prev_index - count;
if (first_point < 0) first_point += NUM_FRAMERATE_POINTS; 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_good = target * 0.95;
const double threshold_bad = target * 2 / 3; const double threshold_bad = target * 2 / 3;
value = min(9999.99, value); value = std::min(9999.99, value);
this->value = (uint32)(value * 100); 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; 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_good = target / 3;
const double threshold_bad = target; const double threshold_bad = target;
value = min(9999.99, value); value = std::min(9999.99, value);
this->value = (uint32)(value * 100); 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; 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_shortterm[PFE_MAX]; ///< cached short term average times
CachedDecimal times_longterm[PFE_MAX]; ///< cached long 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 constexpr int VSPACING = 3; ///< space between column heading and values
static const int MIN_ELEMENTS = 5; ///< smallest number of elements to display static constexpr int MIN_ELEMENTS = 5; ///< smallest number of elements to display
FramerateWindow(WindowDesc *desc, WindowNumber number) : Window(desc) FramerateWindow(WindowDesc *desc, WindowNumber number) : Window(desc)
{ {
@ -435,7 +435,7 @@ struct FramerateWindow : Window {
this->next_update.SetInterval(100); this->next_update.SetInterval(100);
/* Window is always initialised to MIN_ELEMENTS height, resize to contain num_displayed */ /* 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 void OnRealtimeTick(uint delta_ms) override
@ -486,7 +486,7 @@ struct FramerateWindow : Window {
this->num_active = new_active; this->num_active = new_active;
Scrollbar *sb = this->GetScrollbar(WID_FRW_SCROLLBAR); Scrollbar *sb = this->GetScrollbar(WID_FRW_SCROLLBAR);
sb->SetCount(this->num_active); 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(); this->ReInit();
} }
} }
@ -555,7 +555,7 @@ struct FramerateWindow : Window {
SetDParamStr(1, GetAIName(e - PFE_AI0)); SetDParamStr(1, GetAIName(e - PFE_AI0));
line_size = GetStringBoundingBox(STR_FRAMERATE_AI); line_size = GetStringBoundingBox(STR_FRAMERATE_AI);
} }
size->width = max(size->width, line_size.width); size->width = std::max(size->width, line_size.width);
} }
break; break;
} }
@ -567,7 +567,7 @@ struct FramerateWindow : Window {
SetDParam(0, 999999); SetDParam(0, 999999);
SetDParam(1, 2); SetDParam(1, 2);
Dimension item_size = GetStringBoundingBox(STR_FRAMERATE_MS_GOOD); 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; size->height += FONT_HEIGHT_NORMAL * MIN_ELEMENTS + VSPACING;
resize->width = 0; resize->width = 0;
resize->height = FONT_HEIGHT_NORMAL; resize->height = FONT_HEIGHT_NORMAL;
@ -769,7 +769,7 @@ struct FrametimeGraphWindow : Window {
Dimension size_s_label = GetStringBoundingBox(STR_FRAMERATE_GRAPH_SECONDS); 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 */ /* 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 */ /* Always 2:1 graph area */
graph_size.width = 2 * graph_size.height; graph_size.width = 2 * graph_size.height;
*size = graph_size; *size = graph_size;
@ -980,7 +980,7 @@ struct FrametimeGraphWindow : Window {
TextColour tc_peak = (TextColour)(TC_IS_PALETTE_COLOUR | c_peak); 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); 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); 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) { 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); DrawString(x_zero, peak_point.x - 2, label_y, STR_FRAMERATE_GRAPH_MILLISECONDS, tc_peak, SA_RIGHT | SA_FORCE, false, FS_SMALL);
} else { } else {

View File

@ -814,7 +814,7 @@ void GamelogInfo(LoggedAction *gamelog_action, uint gamelog_actions, uint32 *las
case GLCT_REVISION: case GLCT_REVISION:
*last_ottd_rev = lc->revision.newgrf; *last_ottd_rev = lc->revision.newgrf;
*ever_modified = max(*ever_modified, lc->revision.modified); *ever_modified = std::max(*ever_modified, lc->revision.modified);
break; break;
case GLCT_GRFREM: case GLCT_GRFREM:

View File

@ -513,7 +513,7 @@ struct GenerateLandscapeWindow : public Window {
} }
} }
size->width += padding.width; 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 void DrawWidget(const Rect &r, int widget) const override
@ -1214,7 +1214,7 @@ struct GenerateProgressWindow : public Window {
case WID_GP_PROGRESS_TEXT: case WID_GP_PROGRESS_TEXT:
for (uint i = 0; i < GWP_CLASS_COUNT; i++) { 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; size->height = FONT_HEIGHT_NORMAL * 2 + WD_PAR_VSEP_NORMAL;
break; break;

View File

@ -263,8 +263,8 @@ void GfxFillPolygon(const std::vector<Point> &shape, int colour, FillRectMode mo
std::sort(intersections.begin(), intersections.end()); std::sort(intersections.begin(), intersections.end());
for (size_t i = 1; i < intersections.size(); i += 2) { for (size_t i = 1; i < intersections.size(); i += 2) {
/* Check clipping. */ /* Check clipping. */
const int x1 = max(0, intersections[i - 1]); const int x1 = std::max(0, intersections[i - 1]);
const int x2 = min(intersections[i], dpi->width); const int x2 = std::min(intersections[i], dpi->width);
if (x2 < 0) continue; if (x2 < 0) continue;
if (x1 >= dpi->width) 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. */ /* prevent integer overflows. */
int margin = 1; 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_y /= 2;
grade_x /= 2; grade_x /= 2;
margin *= 2; // account for rounding errors 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) 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. */ /* 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. */ /* Funny glyphs may extent outside the usual bounds, so relax the clipping somewhat. */
int extra = max_height / 2; int extra = max_height / 2;
@ -916,8 +916,8 @@ Dimension GetSpriteSize(SpriteID sprid, Point *offset, ZoomLevel zoom)
} }
Dimension d; Dimension d;
d.width = max<int>(0, UnScaleByZoom(sprite->x_offs + sprite->width, zoom)); d.width = std::max<int>(0, UnScaleByZoom(sprite->x_offs + sprite->width, zoom));
d.height = max<int>(0, UnScaleByZoom(sprite->y_offs + sprite->height, zoom)); d.height = std::max<int>(0, UnScaleByZoom(sprite->y_offs + sprite->height, zoom));
return d; 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); bp.height = UnScaleByZoom(sprite->height, zoom);
} else { } else {
/* Amount of pixels to clip from the source sprite */ /* Amount of pixels to clip from the source sprite */
int clip_left = max(0, -sprite->x_offs + sub->left * ZOOM_BASE ); int clip_left = std::max(0, -sprite->x_offs + sub->left * ZOOM_BASE );
int clip_top = max(0, -sprite->y_offs + sub->top * ZOOM_BASE ); int clip_top = std::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_right = std::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_bottom = std::max(0, sprite->height - (-sprite->y_offs + (sub->bottom + 1) * ZOOM_BASE));
if (clip_left + clip_right >= sprite->width) return; if (clip_left + clip_right >= sprite->width) return;
if (clip_top + clip_bottom >= sprite->height) return; if (clip_top + clip_bottom >= sprite->height) return;
@ -1305,7 +1305,7 @@ byte GetDigitWidth(FontSize size)
{ {
byte width = 0; byte width = 0;
for (char c = '0'; c <= '9'; c++) { for (char c = '0'; c <= '9'; c++) {
width = max(GetCharacterWidth(size, c), width); width = std::max(GetCharacterWidth(size, c), width);
} }
return width; return width;
} }
@ -1695,8 +1695,8 @@ void UpdateCursorSize()
_cursor.total_offs = offs; _cursor.total_offs = offs;
_cursor.total_size = size; _cursor.total_size = size;
} else { } else {
int right = max(_cursor.total_offs.x + _cursor.total_size.x, offs.x + size.x); int right = std::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 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.x < _cursor.total_offs.x) _cursor.total_offs.x = offs.x;
if (offs.y < _cursor.total_offs.y) _cursor.total_offs.y = offs.y; if (offs.y < _cursor.total_offs.y) _cursor.total_offs.y = offs.y;
_cursor.total_size.x = right - _cursor.total_offs.x; _cursor.total_size.x = right - _cursor.total_offs.x;

View File

@ -431,7 +431,7 @@ int FallbackParagraphLayout::FallbackLine::GetLeading() const
{ {
int leading = 0; int leading = 0;
for (const auto &run : *this) { for (const auto &run : *this) {
leading = max(leading, run.GetLeading()); leading = std::max(leading, run.GetLeading());
} }
return leading; return leading;
@ -747,7 +747,7 @@ Dimension Layouter::GetBounds()
{ {
Dimension d = { 0, 0 }; Dimension d = { 0, 0 };
for (const auto &l : *this) { 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(); d.height += l->GetLeading();
} }
return d; return d;

View File

@ -405,7 +405,7 @@ MD5File::ChecksumResult MD5File::CheckMD5(Subdirectory subdir, size_t max_size)
if (f == nullptr) return CR_NO_FILE; if (f == nullptr) return CR_NO_FILE;
size = min(size, max_size); size = std::min(size, max_size);
Md5 checksum; Md5 checksum;
uint8 buffer[1024]; uint8 buffer[1024];

View File

@ -291,7 +291,7 @@ struct GoalListWindow : public Window {
} }
NWidgetBase *wid = this->GetWidget<NWidgetBase>(WID_GOAL_LIST); 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. */ /* Draw goal list. */
this->DrawListColumn(GC_PROGRESS, wid, progress_col_width); this->DrawListColumn(GC_PROGRESS, wid, progress_col_width);

View File

@ -110,7 +110,7 @@ struct GraphLegendWindow : Window {
static NWidgetBase *MakeNWidgetCompanyLines(int *biggest_index) static NWidgetBase *MakeNWidgetCompanyLines(int *biggest_index)
{ {
NWidgetVertical *vert = new NWidgetVertical(); 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++) { for (int widnum = WID_GL_FIRST_COMPANY; widnum <= WID_GL_LAST_COMPANY; widnum++) {
NWidgetBackground *panel = new NWidgetBackground(WWT_PANEL, COLOUR_GREY, widnum); NWidgetBackground *panel = new NWidgetBackground(WWT_PANEL, COLOUR_GREY, widnum);
@ -212,8 +212,8 @@ protected:
OverflowSafeInt64 datapoint = this->cost[i][j]; OverflowSafeInt64 datapoint = this->cost[i][j];
if (datapoint != INVALID_DATAPOINT) { if (datapoint != INVALID_DATAPOINT) {
current_interval.highest = max(current_interval.highest, datapoint); current_interval.highest = std::max(current_interval.highest, datapoint);
current_interval.lowest = min(current_interval.lowest, 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. */ /* 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_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; 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 { } else {
/* If both values are zero, show an empty graph. */ /* If both values are zero, show an empty graph. */
num_pos_grids = num_hori_lines / 2; num_pos_grids = num_hori_lines / 2;
@ -435,7 +435,7 @@ protected:
* least significant bits are removed. * least significant bits are removed.
*/ */
int mult_range = FindLastBit(x_axis_offset) + FindLastBit(abs(datapoint)); 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) */ /* Handle negative values differently (don't shift sign) */
if (datapoint < 0) { if (datapoint < 0) {
@ -496,7 +496,7 @@ public:
SetDParam(0, month + STR_MONTH_ABBREV_JAN); SetDParam(0, month + STR_MONTH_ABBREV_JAN);
SetDParam(1, month + STR_MONTH_ABBREV_JAN + 2); SetDParam(1, month + STR_MONTH_ABBREV_JAN + 2);
SetDParam(2, year); 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; month += 3;
if (month >= 12) { if (month >= 12) {
@ -514,9 +514,9 @@ public:
SetDParam(1, INT64_MAX); SetDParam(1, INT64_MAX);
uint y_label_width = GetStringBoundingBox(STR_GRAPH_Y_LABEL).width; 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->width = std::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 = std::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->height = std::max<uint>(size->height, size->width / 3);
} }
void DrawWidget(const Rect &r, int widget) const override void DrawWidget(const Rect &r, int widget) const override
@ -568,7 +568,7 @@ public:
byte nums = 0; byte nums = 0;
for (const Company *c : Company::Iterate()) { 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; int mo = (_cur_month / 3 - nums) * 3;
@ -1115,7 +1115,7 @@ static const StringID _performance_titles[] = {
static inline StringID GetPerformanceTitleFromValue(uint value) 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 { class CompanyLeagueWindow : public Window {
@ -1199,7 +1199,7 @@ public:
this->ordinal_width = 0; this->ordinal_width = 0;
for (uint i = 0; i < MAX_COMPANIES; i++) { 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 this->ordinal_width += 5; // Keep some extra spacing
@ -1215,13 +1215,13 @@ public:
Dimension d = GetSpriteSize(SPR_COMPANY_ICON); Dimension d = GetSpriteSize(SPR_COMPANY_ICON);
this->icon_width = d.width + 2; 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()) { for (const Company *c : Company::Iterate()) {
SetDParam(0, c->index); SetDParam(0, c->index);
SetDParam(1, c->index); SetDParam(1, c->index);
SetDParam(2, _performance_titles[widest_title]); 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 this->text_width = widest_width + 30; // Keep some extra spacing
@ -1321,7 +1321,7 @@ struct PerformanceRatingDetailWindow : Window {
uint score_info_width = 0; uint score_info_width = 0;
for (uint i = SCORE_BEGIN; i < SCORE_END; i++) { 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); SetDParamMaxValue(0, 1000);
score_info_width += GetStringBoundingBox(STR_BLACK_COMMA).width + WD_FRAMERECT_LEFT; score_info_width += GetStringBoundingBox(STR_BLACK_COMMA).width + WD_FRAMERECT_LEFT;

View File

@ -38,7 +38,7 @@ void GroundVehicle<T, Type>::PowerChanged()
/* Get minimum max speed for this track. */ /* Get minimum max speed for this track. */
uint16 track_speed = u->GetMaxTrackSpeed(); 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; byte air_drag;
@ -48,7 +48,7 @@ void GroundVehicle<T, Type>::PowerChanged()
if (air_drag_value == 0) { if (air_drag_value == 0) {
uint16 max_speed = v->GetDisplayMaxSpeed(); uint16 max_speed = v->GetDisplayMaxSpeed();
/* Simplification of the method used in TTDPatch. It uses <= 10 to change more steadily from 128 to 196. */ /* 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 { } else {
/* According to the specs, a value of 0x01 in the air drag property means "no air drag". */ /* 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; air_drag = (air_drag_value == 1) ? 0 : air_drag_value;
@ -89,7 +89,7 @@ void GroundVehicle<T, Type>::CargoChanged()
} }
/* Store consist weight in cache. */ /* 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). */ /* Friction in bearings and other mechanical parts is 0.1% of the weight (result in N). */
this->gcache.cached_axle_resistance = 10 * weight; this->gcache.cached_axle_resistance = 10 * weight;
@ -162,8 +162,8 @@ int GroundVehicle<T, Type>::GetAcceleration() const
} }
} else { } else {
/* "Kickoff" acceleration. */ /* "Kickoff" acceleration. */
force = (mode == AS_ACCEL && !maglev) ? min(max_te, power) : power; force = (mode == AS_ACCEL && !maglev) ? std::min<int>(max_te, power) : power;
force = max(force, (mass * 8) + resistance); force = std::max(force, (mass * 8) + resistance);
} }
if (mode == AS_ACCEL) { 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 * a hill will never speed up enough to (eventually) get back to the
* same (maximum) speed. */ * same (maximum) speed. */
int accel = ClampToI32((force - resistance) / (mass * 4)); 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 { } else {
return ClampToI32(min(-force - resistance, -10000) / mass); return ClampToI32(std::min<int64>(-force - resistance, -10000) / mass);
} }
} }

View File

@ -369,7 +369,7 @@ protected:
* somewhat gradually. But never lower than the maximum speed. */ * somewhat gradually. But never lower than the maximum speed. */
int tempmax = max_speed; int tempmax = max_speed;
if (this->cur_speed > 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 /* 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 * threshold for some reason. That makes acceleration fail and assertions
* happen in Clamp. So make it explicit that min_speed overrules the maximum * happen in Clamp. So make it explicit that min_speed overrules the maximum
* speed by explicit ordering of min and max. */ * 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); int scaled_spd = this->GetAdvanceSpeed(spd);

View File

@ -205,14 +205,14 @@ private:
this->tiny_step_height = this->column_size[VGC_FOLD].height; 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] = 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->column_size[VGC_NAME].width = std::max(170u, this->column_size[VGC_NAME].width);
this->tiny_step_height = max(this->tiny_step_height, this->column_size[VGC_NAME].height); 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->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->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].width = 0;
this->column_size[VGC_PROFIT].height = 0; this->column_size[VGC_PROFIT].height = 0;
@ -221,13 +221,13 @@ private:
Dimension d = GetSpriteSize(profit_sprites[i]); Dimension d = GetSpriteSize(profit_sprites[i]);
this->column_size[VGC_PROFIT] = maxdim(this->column_size[VGC_PROFIT], d); 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); int num_vehicle = GetGroupNumVehicle(this->vli.company, ALL_GROUP, this->vli.vtype);
SetDParamMaxValue(0, num_vehicle, 3, FS_SMALL); SetDParamMaxValue(0, num_vehicle, 3, FS_SMALL);
SetDParamMaxValue(1, num_vehicle, 3, FS_SMALL); SetDParamMaxValue(1, num_vehicle, 3, FS_SMALL);
this->column_size[VGC_NUMBER] = GetStringBoundingBox(STR_GROUP_COUNT_WITH_SUBGROUP); 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; this->tiny_step_height += WD_MATRIX_TOP;
@ -390,9 +390,9 @@ public:
/* ... minus the buttons at the bottom ... */ /* ... minus the buttons at the bottom ... */
uint max_icon_height = GetSpriteSize(this->GetWidget<NWidgetCore>(WID_GL_CREATE_GROUP)->widget_data).height; 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 = std::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 = std::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_REPLACE_PROTECTION)->widget_data).height);
/* ... minus the height of the group info ... */ /* ... minus the height of the group info ... */
max_icon_height += (FONT_HEIGHT_NORMAL * 3) + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM; max_icon_height += (FONT_HEIGHT_NORMAL * 3) + WD_FRAMERECT_TOP + WD_FRAMERECT_BOTTOM;
@ -601,7 +601,7 @@ public:
case WID_GL_LIST_GROUP: { case WID_GL_LIST_GROUP: {
int y1 = r.top + WD_FRAMERECT_TOP; 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) { for (int i = this->group_sb->GetPosition(); i < max; ++i) {
const Group *g = this->groups[i]; const Group *g = this->groups[i];
@ -625,7 +625,7 @@ public:
if (this->vli.index != ALL_GROUP && this->grouping == GB_NONE) { 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) */ /* Mark vehicles which are in sub-groups (only if we are not using shared order coalescing) */
int y = r.top; 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) { for (uint i = this->vscroll->GetPosition(); i < max; ++i) {
const Vehicle *v = this->vehgroups[i].GetSingleVehicle(); const Vehicle *v = this->vehgroups[i].GetSingleVehicle();
if (v->group_id != this->vli.index) { if (v->group_id != this->vli.index) {

View File

@ -43,7 +43,7 @@ static const StringID _endgame_perf_titles[] = {
StringID EndGameGetPerformanceTitleFromValue(uint value) 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]; return _endgame_perf_titles[value];
} }
@ -132,7 +132,7 @@ void SaveToHighScore()
for (i = 0; i < SP_SAVED_HIGHSCORE_END; i++) { for (i = 0; i < SP_SAVED_HIGHSCORE_END; i++) {
for (hs = _highscore_table[i]; hs != endof(_highscore_table[i]); hs++) { for (hs = _highscore_table[i]; hs != endof(_highscore_table[i]); hs++) {
/* First character is a command character, so strlen will fail on that */ /* 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 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 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++) { for (hs = _highscore_table[i]; hs != endof(_highscore_table[i]); hs++) {
byte length; byte length;
if (fread(&length, sizeof(length), 1, fp) != 1 || 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 || fread(&hs->score, sizeof(hs->score), 1, fp) != 1 ||
fseek(fp, 2, SEEK_CUR) == -1) { // XXX - placeholder for hs->title, not saved anymore; compatibility fseek(fp, 2, SEEK_CUR) == -1) { // XXX - placeholder for hs->title, not saved anymore; compatibility
DEBUG(misc, 1, "Highscore corrupted"); DEBUG(misc, 1, "Highscore corrupted");

View File

@ -58,7 +58,7 @@ struct EndGameHighScoreBaseWindow : Window {
/** Return the coordinate of the screen such that a window of 640x480 is centered at the screen. */ /** Return the coordinate of the screen such that a window of 640x480 is centered at the screen. */
Point GetTopLeft(int x, int y) 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; return pt;
} }

View File

@ -10,7 +10,6 @@
#ifndef INDUSTRY_H #ifndef INDUSTRY_H
#define INDUSTRY_H #define INDUSTRY_H
#include <algorithm>
#include "newgrf_storage.h" #include "newgrf_storage.h"
#include "subsidy_type.h" #include "subsidy_type.h"
#include "industry_map.h" #include "industry_map.h"

View File

@ -531,7 +531,7 @@ static bool TransportIndustryGoods(TileIndex tile)
bool moved_cargo = false; bool moved_cargo = false;
for (uint j = 0; j < lengthof(i->produced_cargo_waiting); j++) { 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) { if (cw > indspec->minimal_cargo && i->produced_cargo[j] != CT_INVALID) {
i->produced_cargo_waiting[j] -= cw; 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_x = GB(r, 0, 8);
uint size_y = GB(r, 8, 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(); ta.ClampToMap();
if (ta.w == 0 || ta.h == 0) return; if (ta.w == 0 || ta.h == 0) return;
@ -1121,7 +1121,7 @@ static void ChopLumberMillTrees(Industry *i)
TileIndex tile = i->location.tile; TileIndex tile = i->location.tile;
if (CircularTileSearch(&tile, 40, SearchLumberMillTrees, nullptr)) { // 40x40 tiles to search. 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; IndustryBehaviour indbehav = indsp->behaviour;
for (size_t j = 0; j < lengthof(i->produced_cargo_waiting); j++) { 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) { 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. */ /* Randomize inital production if non-original economy is used and there are no production related callbacks. */
if (!indspec->UsesOriginalEconomy()) { if (!indspec->UsesOriginalEconomy()) {
for (size_t ci = 0; ci < lengthof(i->production_rate); ci++) { 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); assert(lengthof(numof_industry_table) == ID_END);
uint difficulty = (_game_mode != GM_EDITOR) ? _settings_game.difficulty.industry_density : (uint)ID_VERY_LOW; 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, /* 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. */ * 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)) { if (GetCurrentTotalNumberOfIndustries() + max_behind >= (this->wanted_inds >> 16)) {
this->wanted_inds += ScaleByMapSize(NEWINDS_PER_MONTH); this->wanted_inds += ScaleByMapSize(NEWINDS_PER_MONTH);
} }
@ -2352,7 +2352,7 @@ static void UpdateIndustryStatistics(Industry *i)
byte pct = 0; byte pct = 0;
if (i->this_month_production[j] != 0) { if (i->this_month_production[j] != 0) {
i->last_prod_year = _cur_year; 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; 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 */ /* Rates are rounded up, so e.g. oilrig always produces some passengers */
for (size_t i = 0; i < lengthof(this->production_rate); i++) { 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); const Industry *ind = PlaceIndustry(it, IACT_RANDOMCREATION, false);
if (ind == nullptr) { if (ind == nullptr) {
this->builddata[it].wait_count = this->builddata[it].max_wait + 1; // Compensate for decrementing below. 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 { } else {
AdvertiseIndustryOpening(ind); 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, /* 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. */ * determined by mult value. If mult = 1 prod. increases, else (-1) it decreases. */
if (Chance16I(1, 22, r >> 16)) { 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" */ /* 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 */ /* Increase if needed */
while (mul-- != 0 && i->prod_level < PRODLEVEL_MAXIMUM) { 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; recalculate_multipliers = true;
if (str == STR_NULL) str = indspec->production_up_text; if (str == STR_NULL) str = indspec->production_up_text;
} }
@ -2805,7 +2805,7 @@ static void ChangeIndustryProduction(Industry *i, bool monthly)
closeit = true; closeit = true;
break; break;
} else { } 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; recalculate_multipliers = true;
if (str == STR_NULL) str = indspec->production_down_text; 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. uint perc = 3; // Between 3% and 9% chance of creating a new industry.
if ((_industry_builder.wanted_inds >> 16) > GetCurrentTotalNumberOfIndustries()) { 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++) { for (uint16 j = 0; j < change_loop; j++) {
if (Chance16(perc, 100)) { if (Chance16(perc, 100)) {

View File

@ -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); 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()); Dimension strdim = GetStringBoundingBox(cargostring.c_str());
if (strdim.width > max_minwidth) { 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; strdim.width = max_minwidth;
} }
d = maxdim(d, strdim); 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); cargostring = this->MakeCargoListString(indsp->produced_cargo, cargo_suffix, lengthof(indsp->produced_cargo), STR_INDUSTRY_VIEW_PRODUCES_N_CARGO);
strdim = GetStringBoundingBox(cargostring.c_str()); strdim = GetStringBoundingBox(cargostring.c_str());
if (strdim.width > max_minwidth) { 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; strdim.width = max_minwidth;
} }
d = maxdim(d, strdim); d = maxdim(d, strdim);
@ -966,22 +966,22 @@ public:
case EA_MULTIPLIER: case EA_MULTIPLIER:
if (button == 1) { if (button == 1) {
if (i->prod_level <= PRODLEVEL_MINIMUM) return; 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 { } else {
if (i->prod_level >= PRODLEVEL_MAXIMUM) return; 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; break;
case EA_RATE: case EA_RATE:
if (button == 1) { if (button == 1) {
if (i->production_rate[line - IL_RATE1] <= 0) return; 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 { } else {
if (i->production_rate[line - IL_RATE1] >= 255) return; 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 */ /* 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; 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; break;
@ -1468,7 +1468,7 @@ protected:
} }
/* Display first 3 cargos */ /* 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]; CargoInfo ci = cargos[j];
SetDParam(p++, STR_INDUSTRY_DIRECTORY_ITEM_INFO); SetDParam(p++, STR_INDUSTRY_DIRECTORY_ITEM_INFO);
SetDParam(p++, std::get<0>(ci)); SetDParam(p++, std::get<0>(ci));
@ -2399,10 +2399,10 @@ struct IndustryCargoesWindow : public Window {
const IndustrySpec *indsp = GetIndustrySpec(it); const IndustrySpec *indsp = GetIndustrySpec(it);
if (!indsp->enabled) continue; if (!indsp->enabled) continue;
this->ind_textsize = maxdim(this->ind_textsize, GetStringBoundingBox(indsp->name)); 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 = std::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->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; d.height = this->ind_textsize.height;
this->ind_textsize = maxdim(this->ind_textsize, GetStringBoundingBox(STR_INDUSTRY_CARGOES_SELECT_INDUSTRY)); 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; 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. */ /* 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; 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::industry_width = d.width;
CargoesField::normal_height = d.height + CargoesField::VERT_INTER_INDUSTRY_SPACE; CargoesField::normal_height = d.height + CargoesField::VERT_INTER_INDUSTRY_SPACE;
@ -2437,11 +2437,11 @@ struct IndustryCargoesWindow : public Window {
break; break;
case WID_IC_IND_DROPDOWN: 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; break;
case WID_IC_CARGO_DROPDOWN: 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; break;
} }
} }
@ -2638,7 +2638,7 @@ struct IndustryCargoesWindow : public Window {
/* Make a field consisting of two cargo columns. */ /* 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_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_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++) { for (int i = 0; i < num_indrows; i++) {
CargoesRow &row = this->fields.emplace_back(); CargoesRow &row = this->fields.emplace_back();
row.columns[0].MakeEmpty(CFT_EMPTY); row.columns[0].MakeEmpty(CFT_EMPTY);
@ -2714,7 +2714,7 @@ struct IndustryCargoesWindow : public Window {
bool houses_accept = HousesCanAccept(&cid, 1); bool houses_accept = HousesCanAccept(&cid, 1);
int num_supp = CountMatchingProducingIndustries(&cid, 1) + houses_supply + 1; // Ensure room for the cargo label. 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_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++) { for (int i = 0; i < num_indrows; i++) {
CargoesRow &row = this->fields.emplace_back(); CargoesRow &row = this->fields.emplace_back();
row.columns[0].MakeEmpty(CFT_EMPTY); row.columns[0].MakeEmpty(CFT_EMPTY);

View File

@ -226,7 +226,7 @@ void IniLoadFile::LoadFromDisk(const std::string &filename, Subdirectory subdir)
uint a = comment_alloc; uint a = comment_alloc;
/* add to comment */ /* add to comment */
if (ns > a) { if (ns > a) {
a = max(a, 128U); a = std::max(a, 128U);
do a *= 2; while (a < ns); do a *= 2; while (a < ns);
comment = ReallocT(comment, comment_alloc = a); comment = ReallocT(comment, comment_alloc = a);
} }

View File

@ -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. */ * So give it a z-malus of 4 in the first iterations. */
int z = 0; int z = 0;
if (clamp_to_map) { 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 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 + max(z, m) - m, min_coord, max_x), Clamp(pt.y + max(z, m) - m, 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; 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 { } 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 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 + max(z, m) - m, pt.y + max(z, m) - m) / 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; 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 i = 0; i < SNOW_LINE_MONTHS; i++) {
for (uint j = 0; j < SNOW_LINE_DAYS; j++) { for (uint j = 0; j < SNOW_LINE_DAYS; j++) {
_snow_line->highest_value = max(_snow_line->highest_value, table[i][j]); _snow_line->highest_value = std::max(_snow_line->highest_value, table[i][j]);
_snow_line->lowest_value = min(_snow_line->lowest_value, table[i][j]); _snow_line->lowest_value = std::min(_snow_line->lowest_value, table[i][j]);
} }
} }
} }

View File

@ -45,7 +45,7 @@ public:
*/ */
inline void SetDemandPerNode(uint num_demands) 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) 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(); uint undelivered = job[to_id].UndeliveredSupply();
if (demand_back > undelivered) { if (demand_back > undelivered) {
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); 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 = 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); scaler.SetDemands(job, from_id, to_id, demand_forw);

View File

@ -71,7 +71,7 @@ void LinkGraph::Compress()
for (NodeID node2 = 0; node2 < this->Size(); ++node2) { for (NodeID node2 = 0; node2 < this->Size(); ++node2) {
BaseEdge &edge = this->edges[node1][node2]; BaseEdge &edge = this->edges[node1][node2];
if (edge.capacity > 0) { if (edge.capacity > 0) {
edge.capacity = max(1U, edge.capacity / 2); edge.capacity = std::max(1U, edge.capacity / 2);
edge.usage /= 2; edge.usage /= 2;
} }
} }
@ -163,8 +163,7 @@ NodeID LinkGraph::AddNode(const Station *st)
this->nodes.emplace_back(); this->nodes.emplace_back();
/* Avoid reducing the height of the matrix as that is expensive and we /* Avoid reducing the height of the matrix as that is expensive and we
* most likely will increase it again later which is again expensive. */ * most likely will increase it again later which is again expensive. */
this->edges.Resize(new_node + 1U, this->edges.Resize(new_node + 1U, std::max(new_node + 1U, this->edges.Height()));
max(new_node + 1U, this->edges.Height()));
this->nodes[new_node].Init(st->xy, st->index, this->nodes[new_node].Init(st->xy, st->index,
HasBit(good.status, GoodsEntry::GES_ACCEPTANCE)); 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.capacity += capacity;
this->edge.usage += usage; this->edge.usage += usage;
} else if (mode & EUM_REFRESH) { } else if (mode & EUM_REFRESH) {
this->edge.capacity = max(this->edge.capacity, capacity); this->edge.capacity = std::max(this->edge.capacity, capacity);
this->edge.usage = max(this->edge.usage, usage); this->edge.usage = std::max(this->edge.usage, usage);
} }
if (mode & EUM_UNRESTRICTED) this->edge.last_unrestricted_update = _date; if (mode & EUM_UNRESTRICTED) this->edge.last_unrestricted_update = _date;
if (mode & EUM_RESTRICTED) this->edge.last_restricted_update = _date; if (mode & EUM_RESTRICTED) this->edge.last_restricted_update = _date;

View File

@ -113,7 +113,7 @@ public:
* Get the date of the last update to any part of the edge's capacity. * Get the date of the last update to any part of the edge's capacity.
* @return Last update. * @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) 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. */ /** Bare constructor, only for save/load. */

View File

@ -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. */ /* multiply the numbers by 32 in order to avoid comparing to 0 too often. */
if (cargo.capacity == 0 || 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.capacity = new_cap;
cargo.usage = new_usg; cargo.usage = new_usg;
cargo.planned = new_plan; 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 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 colour = LinkGraphOverlay::LINK_COLOURS[usage_or_plan * lengthof(LinkGraphOverlay::LINK_COLOURS) / (cargo.capacity * 2 + 2)];
int dash = cargo.shared ? this->scale * 4 : 0; int dash = cargo.shared ? this->scale * 4 : 0;
@ -302,7 +302,7 @@ void LinkGraphOverlay::DrawStationDots(const DrawPixelInfo *dpi) const
Point pt = this->GetStationMiddle(st); Point pt = this->GetStationMiddle(st);
if (!this->IsPointVisible(pt, dpi, 3 * this->scale)) continue; 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, LinkGraphOverlay::DrawVertex(pt.x, pt.y, r,
_colour_gradient[st->owner != OWNER_NONE ? _colour_gradient[st->owner != OWNER_NONE ?

View File

@ -223,8 +223,8 @@ void LinkGraphJob::NodeAnnotation::Init(uint supply)
*/ */
void Path::Fork(Path *base, uint cap, int free_cap, uint dist) void Path::Fork(Path *base, uint cap, int free_cap, uint dist)
{ {
this->capacity = min(base->capacity, cap); this->capacity = std::min(base->capacity, cap);
this->free_capacity = min(base->free_capacity, free_cap); this->free_capacity = std::min(base->free_capacity, free_cap);
this->distance = base->distance + dist; this->distance = base->distance + dist;
assert(this->distance > 0); assert(this->distance > 0);
if (this->parent != base) { if (this->parent != base) {
@ -250,7 +250,7 @@ uint Path::AddFlow(uint new_flow, LinkGraphJob &job, uint max_saturation)
if (max_saturation != UINT_MAX) { if (max_saturation != UINT_MAX) {
uint usable_cap = edge.Capacity() * max_saturation / 100; uint usable_cap = edge.Capacity() * max_saturation / 100;
if (usable_cap > edge.Flow()) { 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 { } else {
return 0; return 0;
} }

View File

@ -392,7 +392,7 @@ public:
*/ */
inline static int GetCapacityRatio(int free, uint total) 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);
} }
/** /**

View File

@ -235,7 +235,7 @@ bool DistanceAnnotation::IsBetter(const DistanceAnnotation *base, uint cap,
bool CapacityAnnotation::IsBetter(const CapacityAnnotation *base, uint cap, bool CapacityAnnotation::IsBetter(const CapacityAnnotation *base, uint cap,
int free_cap, uint dist) const 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(); int this_cap = this->GetCapacityRatio();
if (min_cap == this_cap) { if (min_cap == this_cap) {
/* If the capacities are the same and the other path isn't disconnected /* 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; uint flow = UINT_MAX;
const Path *cycle_end = cycle_begin; const Path *cycle_end = cycle_begin;
do { do {
flow = min(flow, cycle_begin->GetFlow()); flow = std::min(flow, cycle_begin->GetFlow());
cycle_begin = path[cycle_begin->GetNode()]; cycle_begin = path[cycle_begin->GetNode()];
} while (cycle_begin != cycle_end); } while (cycle_begin != cycle_end);
return flow; return flow;

View File

@ -190,7 +190,7 @@ uint DistanceMax(TileIndex t0, TileIndex t1)
{ {
const uint dx = Delta(TileX(t0), TileX(t1)); const uint dx = Delta(TileX(t0), TileX(t1));
const uint dy = Delta(TileY(t0), TileY(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 yl = TileY(tile);
const uint xh = MapSizeX() - 1 - xl; const uint xh = MapSizeX() - 1 - xl;
const uint yh = MapSizeY() - 1 - yl; const uint yh = MapSizeY() - 1 - yl;
const uint minl = min(xl, yl); const uint minl = std::min(xl, yl);
const uint minh = min(xh, yh); const uint minh = std::min(xh, yh);
return min(minl, minh); return std::min(minl, minh);
} }
/** /**

View File

@ -92,7 +92,7 @@ struct CStrA : public CBlobT<char>
/** Add formatted string (like vsprintf) at the end of existing contents. */ /** Add formatted string (like vsprintf) at the end of existing contents. */
int AddFormatL(const char *format, va_list args) WARN_FORMAT(2, 0) 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; addSize += addSize / 2;
int ret; int ret;
int err = 0; int err = 0;

View File

@ -98,10 +98,10 @@ CommandCost CmdDecreaseLoan(TileIndex tile, DoCommandFlag flags, uint32 p1, uint
switch (p2 & 3) { switch (p2 & 3) {
default: return CMD_ERROR; // Invalid method default: return CMD_ERROR; // Invalid method
case 0: // Pay back one step case 0: // Pay back one step
loan = min(c->current_loan, (Money)LOAN_INTERVAL); loan = std::min(c->current_loan, (Money)LOAN_INTERVAL);
break; break;
case 1: // Pay back as much as possible 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; loan -= loan % LOAN_INTERVAL;
break; break;
case 2: // Repay the given amount of loan case 2: // Repay the given amount of loan

View File

@ -99,7 +99,7 @@ public:
if (StrEmpty(this->landinfo_data[i])) break; if (StrEmpty(this->landinfo_data[i])) break;
uint width = GetStringBoundingBox(this->landinfo_data[i]).width + WD_FRAMETEXT_LEFT + WD_FRAMETEXT_RIGHT; 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; size->height += FONT_HEIGHT_NORMAL + WD_PAR_VSEP_NORMAL;
if (i == 0) size->height += 4; if (i == 0) size->height += 4;
@ -107,7 +107,7 @@ public:
if (!StrEmpty(this->landinfo_data[LAND_INFO_MULTICENTER_LINE])) { 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; 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]); SetDParamStr(0, this->landinfo_data[LAND_INFO_MULTICENTER_LINE]);
size->height += GetStringHeight(STR_JUST_RAW_STRING, size->width - WD_FRAMETEXT_LEFT - WD_FRAMETEXT_RIGHT); 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; d.width = 0;
for (uint i = 0; i < lengthof(_credits); i++) { 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); *size = maxdim(*size, d);
} }
@ -706,7 +706,7 @@ struct TooltipsWindow : public Window
* Clamp value to below main toolbar and above statusbar. If tooltip would * Clamp value to below main toolbar and above statusbar. If tooltip would
* go below window, flip it so it is shown above the cursor */ * 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); 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); pt.x = sm_width >= _screen.width ? 0 : Clamp(_cursor.pos.x - (sm_width >> 1), 0, _screen.width - sm_width);
return pt; return pt;
@ -717,7 +717,7 @@ struct TooltipsWindow : public Window
/* There is only one widget. */ /* There is only one widget. */
for (uint i = 0; i != this->paramcount; i++) SetDParam(i, this->params[i]); 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); size->height = GetStringHeight(this->string_id, size->width);
/* Increase slightly to have some space around the box. */ /* 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 /* We will take the current widget length as maximum width, with a small
* space reserved at the end for the caret to show */ * space reserved at the end for the caret to show */
const Textbuf *tb = &this->text; 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; 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. */ /* Clamp caret position to be inside out current width. */
const Textbuf *tb = &this->text; 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; if (tb->caretxoffs + delta < 0) delta = -tb->caretxoffs;
Point pt = {left + WD_FRAMERECT_LEFT + tb->caretxoffs + delta, (int)wi->pos_y + WD_FRAMERECT_TOP}; 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. */ /* Clamp caret position to be inside our current width. */
const Textbuf *tb = &this->text; 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; if (tb->caretxoffs + delta < 0) delta = -tb->caretxoffs;
/* Get location of first and last character. */ /* 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. */ /* Clamp caret position to be inside our current width. */
const Textbuf *tb = &this->text; 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; if (tb->caretxoffs + delta < 0) delta = -tb->caretxoffs;
return ::GetCharAtPosition(tb->buf, pt.x - delta - left); return ::GetCharAtPosition(tb->buf, pt.x - delta - left);

View File

@ -25,7 +25,6 @@
#include <windows.h> #include <windows.h>
#include <dmksctrl.h> #include <dmksctrl.h>
#include <dmusicc.h> #include <dmusicc.h>
#include <algorithm>
#include <mutex> #include <mutex>
#include "../safeguards.h" #include "../safeguards.h"

View File

@ -14,7 +14,6 @@
#include "../core/endian_func.hpp" #include "../core/endian_func.hpp"
#include "../base_media_base.h" #include "../base_media_base.h"
#include "midi.h" #include "midi.h"
#include <algorithm>
#include "../console_func.h" #include "../console_func.h"
#include "../console_internal.h" #include "../console_internal.h"

View File

@ -407,7 +407,7 @@ const char *MusicDriver_Win32::Start(const StringList &parm)
/* prepare multimedia timer */ /* prepare multimedia timer */
TIMECAPS timecaps; TIMECAPS timecaps;
if (timeGetDevCaps(&timecaps, sizeof(timecaps)) == MMSYSERR_NOERROR) { 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) { if (timeBeginPeriod(_midi.time_period) == MMSYSERR_NOERROR) {
/* success */ /* success */
DEBUG(driver, 2, "Win32-MIDI: Start: timer resolution is %d", (int)_midi.time_period); DEBUG(driver, 2, "Win32-MIDI: Start: timer resolution is %d", (int)_midi.time_period);

View File

@ -505,7 +505,7 @@ struct MusicTrackSelectionWindow : public Window {
SetDParam(1, 2); SetDParam(1, 2);
SetDParamStr(2, song->songname); SetDParamStr(2, song->songname);
Dimension d2 = GetStringBoundingBox(STR_PLAYLIST_TRACK_NAME); 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.height += d2.height;
} }
d.width += padding.width; d.width += padding.width;

View File

@ -250,8 +250,8 @@ int NetworkHTTPSocketHandler::Receive()
/* Wait till we read the end-of-header identifier */ /* Wait till we read the end-of-header identifier */
if (this->recv_length == 0) { if (this->recv_length == 0) {
int read = this->recv_pos + res; ssize_t read = this->recv_pos + res;
int end = min(read, lengthof(this->recv_buffer) - 1); ssize_t end = std::min<ssize_t>(read, lengthof(this->recv_buffer) - 1);
/* Do a 'safe' search for the end of the header. */ /* Do a 'safe' search for the end of the header. */
char prev = this->recv_buffer[end]; char prev = this->recv_buffer[end];
@ -272,7 +272,7 @@ int NetworkHTTPSocketHandler::Receive()
this->recv_length = ret; this->recv_length = ret;
end_of_header += strlen(END_OF_HEADER); 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) { if (len != 0) {
this->callback->OnReceiveData(end_of_header, len); this->callback->OnReceiveData(end_of_header, len);
this->recv_length -= len; this->recv_length -= len;
@ -281,7 +281,7 @@ int NetworkHTTPSocketHandler::Receive()
this->recv_pos = 0; this->recv_pos = 0;
} }
} else { } else {
res = min(this->recv_length, res); res = std::min<ssize_t>(this->recv_length, res);
/* Receive whatever we're expecting. */ /* Receive whatever we're expecting. */
this->callback->OnReceiveData(this->recv_buffer, res); this->callback->OnReceiveData(this->recv_buffer, res);
this->recv_length -= res; this->recv_length -= res;

View File

@ -413,13 +413,13 @@ NetworkRecvStatus ServerNetworkAdminSocketHandler::SendCompanyEconomy()
p->Send_uint64(company->money); p->Send_uint64(company->money);
p->Send_uint64(company->current_loan); p->Send_uint64(company->current_loan);
p->Send_uint64(income); 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. */ /* Send stats for the last 2 quarters. */
for (uint i = 0; i < 2; i++) { for (uint i = 0; i < 2; i++) {
p->Send_uint64(company->old_economy[i].company_value); p->Send_uint64(company->old_economy[i].company_value);
p->Send_uint16(company->old_economy[i].performance_history); 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); this->SendPacket(p);

View File

@ -154,7 +154,7 @@ void NetworkUndrawChatMessage()
int width = _chatmsg_box.width; int width = _chatmsg_box.width;
int height = _chatmsg_box.height; int height = _chatmsg_box.height;
if (y < 0) { 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; y = 0;
} }
if (x + width >= _screen.width) { if (x + width >= _screen.width) {
@ -214,7 +214,7 @@ void NetworkDrawChatMessage()
int width = _chatmsg_box.width; int width = _chatmsg_box.width;
int height = _chatmsg_box.height; int height = _chatmsg_box.height;
if (y < 0) { 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; y = 0;
} }
if (x + width >= _screen.width) { 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 += 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 top = _screen.height - _chatmsg_box.y - string_height - 2;
int bottom = _screen.height - _chatmsg_box.y - 2; int bottom = _screen.height - _chatmsg_box.y - 2;

View File

@ -68,7 +68,7 @@ struct PacketReader : LoadFilter {
assert(this->read_bytes == 0); assert(this->read_bytes == 0);
size_t in_packet = p->size - p->pos; 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; const byte *pbuf = p->buffer + p->pos;
this->written_bytes += in_packet; this->written_bytes += in_packet;
@ -93,7 +93,7 @@ struct PacketReader : LoadFilter {
size_t Read(byte *rbuf, size_t size) override size_t Read(byte *rbuf, size_t size) override
{ {
/* Limit the amount to read to whatever we still have. */ /* 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; this->read_bytes += ret_size;
const byte *rbufe = rbuf + ret_size; const byte *rbufe = rbuf + ret_size;
@ -103,7 +103,7 @@ struct PacketReader : LoadFilter {
this->bufe = this->buf + CHUNK; 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); memcpy(rbuf, this->buf, to_write);
rbuf += to_write; rbuf += to_write;
this->buf += to_write; this->buf += to_write;

View File

@ -221,7 +221,7 @@ void ClientNetworkContentSocketHandler::RequestContentList(uint count, const Con
* A packet begins with the packet size and a byte for the type. * 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. * Then this packet adds a uint16 for the count in this packet.
* The rest of the packet can be used for the IDs. */ * 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); Packet *p = new Packet(PACKET_CONTENT_CLIENT_INFO_ID);
p->Send_uint16(p_count); 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. * 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. * Then this packet adds a uint16 for the count in this packet.
* The rest of the packet can be used for the IDs. */ * 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); Packet *p = new Packet(PACKET_CONTENT_CLIENT_CONTENT);
p->Send_uint16(p_count); p->Send_uint16(p_count);

View File

@ -575,7 +575,7 @@ public:
} }
case WID_NCL_MATRIX: 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; size->height = 10 * resize->height;
break; break;
} }
@ -626,7 +626,7 @@ public:
const NWidgetBase *nwi_name = this->GetWidget<NWidgetBase>(WID_NCL_NAME); const NWidgetBase *nwi_name = this->GetWidget<NWidgetBase>(WID_NCL_NAME);
const NWidgetBase *nwi_type = this->GetWidget<NWidgetBase>(WID_NCL_TYPE); 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 */ /* Fill the matrix with the information */
int sprite_y_offset = WD_MATRIX_TOP + (line_height - this->checkbox_size.height) / 2 - 1; int sprite_y_offset = WD_MATRIX_TOP + (line_height - this->checkbox_size.height) / 2 - 1;
@ -877,7 +877,7 @@ public:
break; break;
case WKC_PAGEDOWN: case WKC_PAGEDOWN:
/* scroll down a page */ /* 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; break;
case WKC_HOME: case WKC_HOME:
/* jump to beginning */ /* jump to beginning */

View File

@ -123,7 +123,7 @@ public:
/* First initialise some variables... */ /* First initialise some variables... */
for (NWidgetBase *child_wid = this->head; child_wid != nullptr; child_wid = child_wid->next) { for (NWidgetBase *child_wid = this->head; child_wid != nullptr; child_wid = child_wid->next) {
child_wid->SetupSmallestSize(w, init_array); 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. */ /* ... 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) { switch (widget) {
case WID_NG_MATRIX: 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; size->height = 12 * resize->height;
break; break;
case WID_NG_LASTJOINED: 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; break;
case WID_NG_LASTJOINED_SPACER: case WID_NG_LASTJOINED_SPACER:
@ -545,7 +545,7 @@ public:
case WID_NG_MATRIX: { case WID_NG_MATRIX: {
uint16 y = r.top; 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) { for (int i = this->vscroll->GetPosition(); i < max; ++i) {
const NetworkGameList *ngl = this->servers[i]; const NetworkGameList *ngl = this->servers[i];
@ -812,7 +812,7 @@ public:
case WKC_PAGEDOWN: case WKC_PAGEDOWN:
/* scroll down a page */ /* scroll down a page */
if (this->list_pos == SLP_INVALID) return ES_HANDLED; 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; break;
case WKC_HOME: case WKC_HOME:
/* jump to beginning */ /* jump to beginning */
@ -904,7 +904,7 @@ GUIGameServerList::FilterFunction * const NetworkGameWindow::filter_funcs[] = {
static NWidgetBase *MakeResizableHeader(int *biggest_index) 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(); return new NWidgetServerListHeader();
} }
@ -1861,13 +1861,13 @@ struct NetworkClientListWindow : Window {
{ {
if (widget != WID_CL_PANEL) return; 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->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 uint width = 100; // Default width
for (const NetworkClientInfo *ci : NetworkClientInfo::Iterate()) { 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; 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 */ /* Account for the statuses */
uint width = 0; uint width = 0;
for (uint i = 0; i < NETWORK_JOIN_STATUS_END; i++) { 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 */ /* For the number of waiting (other) players */
SetDParamMaxValue(0, MAX_CLIENTS); 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 */ /* Account for downloading ~ 10 MiB */
SetDParamMaxDigits(0, 8); SetDParamMaxDigits(0, 8);
SetDParamMaxDigits(1, 8); SetDParamMaxDigits(1, 8);
width = max(width, GetStringBoundingBox(STR_NETWORK_CONNECTING_DOWNLOADING_1).width); width = std::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_2).width);
/* Give a bit more clearing for the widest strings than strictly needed */ /* Give a bit more clearing for the widest strings than strictly needed */
size->width = width + WD_FRAMERECT_LEFT + WD_FRAMERECT_BOTTOM + 10; size->width = width + WD_FRAMERECT_LEFT + WD_FRAMERECT_BOTTOM + 10;

View File

@ -174,7 +174,7 @@ struct PacketWriter : SaveFilter {
byte *bufe = buf + size; byte *bufe = buf + size;
while (buf != bufe) { 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); memcpy(this->current->buffer + this->current->size, buf, to_write);
this->current->size += (PacketSize)to_write; this->current->size += (PacketSize)to_write;
buf += to_write; buf += to_write;
@ -1807,7 +1807,7 @@ void NetworkServer_Tick(bool send_frame)
for (NetworkClientSocket *cs : NetworkClientSocket::Iterate()) { for (NetworkClientSocket *cs : NetworkClientSocket::Iterate()) {
/* We allow a number of bytes per frame, but only to the burst amount /* We allow a number of bytes per frame, but only to the burst amount
* to be available for packet receiving at any particular time. */ * 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); _settings_client.network.bytes_per_frame_burst);
/* Check if the speed of the client is what we can expect from a client */ /* Check if the speed of the client is what we can expect from a client */

View File

@ -263,7 +263,7 @@ void ServerNetworkUDPSocketHandler::Receive_CLIENT_GET_NEWGRFS(Packet *p, Networ
* the current list and do not send the other data. * the current list and do not send the other data.
* The name could be an empty string, if so take the filename. */ * The name could be an empty string, if so take the filename. */
packet_len += sizeof(c.grfid) + sizeof(c.md5sum) + 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 if (packet_len > SEND_MTU - 4) { // 4 is 3 byte header + grf count in reply
break; break;
} }

View File

@ -10,7 +10,6 @@
#include "stdafx.h" #include "stdafx.h"
#include <stdarg.h> #include <stdarg.h>
#include <algorithm>
#include "debug.h" #include "debug.h"
#include "fileio_func.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 scope_grfid, // Note: this is INVALID_GRFID if dynamic_engines is disabled, so no reservation
internal_id, internal_id,
type, 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()) { 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 case 0x16: // Periodic refresh multiplier
housespec->processing_time = min(buf->ReadByte(), 63); housespec->processing_time = std::min<byte>(buf->ReadByte(), 63u);
break; break;
case 0x17: // Four random colours to use 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; uint price = gvid + i;
if (price < PR_END) { 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 { } else {
grfmsg(1, "GlobalVarChangeInfo: Price %d out of range, ignoring", price); 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; break;
case 0x1D: // Vehicle capacity muliplier case 0x1D: // Vehicle capacity muliplier
cs->multiplier = max<uint16>(1u, buf->ReadWord()); cs->multiplier = std::max<uint16>(1u, buf->ReadWord());
break; break;
default: 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) { 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_x = std::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_y = std::max<byte>(as->size_y, att[k].ti.x + 1);
} else { } else {
as->size_x = max<byte>(as->size_x, att[k].ti.x + 1); as->size_x = std::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_y = std::max<byte>(as->size_y, att[k].ti.y + 1);
} }
} }
tile_table[j] = CallocT<AirportTileTable>(size); tile_table[j] = CallocT<AirportTileTable>(size);
@ -5197,7 +5196,7 @@ static void NewSpriteGroup(ByteReader *buf)
case GSF_AIRPORTTILES: case GSF_AIRPORTTILES:
case GSF_OBJECTS: case GSF_OBJECTS:
case GSF_INDUSTRYTILES: { case GSF_INDUSTRYTILES: {
byte num_building_sprites = max((uint8)1, type); byte num_building_sprites = std::max((uint8)1, type);
assert(TileLayoutSpriteGroup::CanAllocateItem()); assert(TileLayoutSpriteGroup::CanAllocateItem());
TileLayoutSpriteGroup *group = new TileLayoutSpriteGroup(); TileLayoutSpriteGroup *group = new TileLayoutSpriteGroup();
@ -6072,7 +6071,7 @@ static uint16 SanitizeSpriteOffset(uint16& num, uint16 offset, int max_sprites,
if (offset + num > max_sprites) { if (offset + num > max_sprites) {
grfmsg(4, "GraphicsNew: %s sprite overflow, truncating...", name); grfmsg(4, "GraphicsNew: %s sprite overflow, truncating...", name);
uint orig_num = num; uint orig_num = num;
num = max(max_sprites - offset, 0); num = std::max(max_sprites - offset, 0);
return orig_num - num; return orig_num - num;
} }
@ -6233,7 +6232,7 @@ bool GetGlobalVariable(byte param, uint32 *value, const GRFFile *grffile)
{ {
switch (param) { switch (param) {
case 0x00: // current date 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; return true;
case 0x01: // current year case 0x01: // current year
@ -6954,7 +6953,7 @@ static uint32 GetPatchVariable(uint8 param)
{ {
switch (param) { switch (param) {
/* start year - 1920 */ /* 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 */ /* freight trains weight factor */
case 0x0E: return _settings_game.vehicle.freight_trains; case 0x0E: return _settings_game.vehicle.freight_trains;
@ -6993,7 +6992,7 @@ static uint32 GetPatchVariable(uint8 param)
byte map_bits = 0; byte map_bits = 0;
byte log_X = MapLogX() - 6; // subtraction is required to make the minimal size (64) zero based byte log_X = MapLogX() - 6; // subtraction is required to make the minimal size (64) zero based
byte log_Y = MapLogY() - 6; 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 if (log_X == log_Y) { // we have a squared map, since both edges are identical
SetBit(map_bits, 0); 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 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); (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); grfmsg(2, "StaticGRFInfo: expected only 1 byte for 'INFO'->'NPAR' but got " PRINTF_SIZE ", ignoring this field", len);
buf->Skip(len); buf->Skip(len);
} else { } 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; return true;
} }
@ -7979,8 +7978,8 @@ static bool ChangeGRFParamMask(size_t len, ByteReader *buf)
buf->Skip(len - 1); buf->Skip(len - 1);
} else { } else {
_cur_parameter->param_nr = param_nr; _cur_parameter->param_nr = param_nr;
if (len >= 2) _cur_parameter->first_bit = min(buf->ReadByte(), 31); if (len >= 2) _cur_parameter->first_bit = std::min<byte>(buf->ReadByte(), 31);
if (len >= 3) _cur_parameter->num_bit = min(buf->ReadByte(), 32 - _cur_parameter->first_bit); if (len >= 3) _cur_parameter->num_bit = std::min<byte>(buf->ReadByte(), 32 - _cur_parameter->first_bit);
} }
} }

View File

@ -260,7 +260,7 @@ void GRFParameterInfo::SetValue(struct GRFConfig *config, uint32 value)
} else { } else {
SB(config->param[this->param_nr], this->first_bit, this->num_bit, value); 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); 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; if (f == nullptr) return false;
long start = ftell(f); long start = ftell(f);
size = min(size, GRFGetSizeOfDataSection(f)); size = std::min(size, GRFGetSizeOfDataSection(f));
if (start < 0 || fseek(f, start, SEEK_SET) < 0) { if (start < 0 || fseek(f, start, SEEK_SET) < 0) {
FioFCloseFile(f); FioFCloseFile(f);

View File

@ -374,12 +374,12 @@ struct NewGRFInspectWindow : Window {
case WID_NGRFI_VEH_CHAIN: { case WID_NGRFI_VEH_CHAIN: {
assert(this->HasChainIndex()); assert(this->HasChainIndex());
GrfSpecFeature f = GetFeatureNum(this->window_number); 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; break;
} }
case WID_NGRFI_MAINPANEL: case WID_NGRFI_MAINPANEL:
resize->height = max(11, FONT_HEIGHT_NORMAL + 1); resize->height = std::max(11, FONT_HEIGHT_NORMAL + 1);
resize->width = 1; resize->width = 1;
size->height = 5 * resize->height + TOP_OFFSET + BOTTOM_OFFSET; size->height = 5 * resize->height + TOP_OFFSET + BOTTOM_OFFSET;
@ -430,7 +430,7 @@ struct NewGRFInspectWindow : Window {
int skip = 0; int skip = 0;
if (total_width > width) { if (total_width > width) {
int sel_center = (sel_start + sel_end) / 2; 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); GrfSpecFeature f = GetFeatureNum(this->window_number);
@ -861,7 +861,7 @@ struct SpriteAlignerWindow : Window {
size->height = ScaleGUITrad(200); size->height = ScaleGUITrad(200);
break; break;
case WID_SA_LIST: case WID_SA_LIST:
resize->height = max(11, FONT_HEIGHT_NORMAL + 1); resize->height = std::max(11, FONT_HEIGHT_NORMAL + 1);
resize->width = 1; resize->width = 1;
break; break;
default: default:
@ -897,7 +897,7 @@ struct SpriteAlignerWindow : Window {
int step_size = nwid->resize_y; int step_size = nwid->resize_y;
std::vector<SpriteID> &list = _newgrf_debug_sprite_picker.sprites; 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; int y = r.top + WD_FRAMERECT_TOP;
for (int i = this->vscroll->GetPosition(); i < max; i++) { for (int i = this->vscroll->GetPosition(); i < max; i++) {

View File

@ -940,8 +940,8 @@ static uint32 VehicleGetVariable(Vehicle *v, const VehicleScopeResolver *object,
if (totalsets == 0) return nullptr; if (totalsets == 0) return nullptr;
uint set = (v->cargo.StoredCount() * totalsets) / max((uint16)1, v->cargo_cap); uint set = (v->cargo.StoredCount() * totalsets) / std::max<uint16>(1u, v->cargo_cap);
set = min(set, totalsets - 1); set = std::min(set, totalsets - 1);
return in_motion ? group->loaded[set] : group->loading[set]; return in_motion ? group->loaded[set] : group->loading[set];
} }

View File

@ -193,8 +193,8 @@ struct NewGRFParametersWindow : public Window {
switch (widget) { switch (widget) {
case WID_NP_NUMPAR_DEC: case WID_NP_NUMPAR_DEC:
case WID_NP_NUMPAR_INC: { case WID_NP_NUMPAR_INC: {
size->width = max(SETTING_BUTTON_WIDTH / 2, FONT_HEIGHT_NORMAL); size->width = std::max(SETTING_BUTTON_WIDTH / 2, FONT_HEIGHT_NORMAL);
size->height = max(SETTING_BUTTON_HEIGHT, FONT_HEIGHT_NORMAL); size->height = std::max(SETTING_BUTTON_HEIGHT, FONT_HEIGHT_NORMAL);
break; break;
} }
@ -208,7 +208,7 @@ struct NewGRFParametersWindow : public Window {
} }
case WID_NP_BACKGROUND: 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->width = 1;
resize->height = this->line_height; resize->height = this->line_height;
@ -721,25 +721,25 @@ struct NewGRFWindow : public Window, NewGRFScanCallback {
case WID_NS_FILE_LIST: case WID_NS_FILE_LIST:
{ {
Dimension d = maxdim(GetSpriteSize(SPR_SQUARE), GetSpriteSize(SPR_WARNING_SIGN)); Dimension d = maxdim(GetSpriteSize(SPR_SQUARE), GetSpriteSize(SPR_WARNING_SIGN));
resize->height = max(d.height + 2U, FONT_HEIGHT_NORMAL + 2U); resize->height = std::max(d.height + 2U, FONT_HEIGHT_NORMAL + 2U);
size->height = max(size->height, WD_FRAMERECT_TOP + 6 * resize->height + WD_FRAMERECT_BOTTOM); size->height = std::max(size->height, WD_FRAMERECT_TOP + 6 * resize->height + WD_FRAMERECT_BOTTOM);
break; break;
} }
case WID_NS_AVAIL_LIST: case WID_NS_AVAIL_LIST:
resize->height = max(12, FONT_HEIGHT_NORMAL + 2); resize->height = std::max(12, FONT_HEIGHT_NORMAL + 2);
size->height = max(size->height, WD_FRAMERECT_TOP + 8 * resize->height + WD_FRAMERECT_BOTTOM); size->height = std::max(size->height, WD_FRAMERECT_TOP + 8 * resize->height + WD_FRAMERECT_BOTTOM);
break; break;
case WID_NS_NEWGRF_INFO_TITLE: { case WID_NS_NEWGRF_INFO_TITLE: {
Dimension dim = GetStringBoundingBox(STR_NEWGRF_SETTINGS_INFO_TITLE); Dimension dim = GetStringBoundingBox(STR_NEWGRF_SETTINGS_INFO_TITLE);
size->height = max(size->height, dim.height + WD_FRAMETEXT_TOP + WD_FRAMETEXT_BOTTOM); size->height = std::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->width = std::max(size->width, dim.width + WD_FRAMETEXT_LEFT + WD_FRAMETEXT_RIGHT);
break; break;
} }
case WID_NS_NEWGRF_INFO: 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; break;
case WID_NS_PRESET_LIST: { case WID_NS_PRESET_LIST: {
@ -877,7 +877,7 @@ struct NewGRFWindow : public Window, NewGRFScanCallback {
int offset_y = (step_height - FONT_HEIGHT_NORMAL) / 2; int offset_y = (step_height - FONT_HEIGHT_NORMAL) / 2;
uint y = r.top + WD_FRAMERECT_TOP; uint y = r.top + WD_FRAMERECT_TOP;
uint min_index = this->vscroll2->GetPosition(); 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++) { for (uint i = min_index; i < max_index; i++) {
const GRFConfig *c = this->avails[i]; const GRFConfig *c = this->avails[i];
@ -1311,7 +1311,7 @@ struct NewGRFWindow : public Window, NewGRFScanCallback {
case WKC_PAGEDOWN: case WKC_PAGEDOWN:
/* scroll down a page */ /* 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; break;
case WKC_HOME: 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++) {} 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. */ /* 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. if (to_pos != from_pos) { // Don't move NewGRF file over itself.
/* Get pointer to destination position. */ /* Get pointer to destination position. */
GRFConfig **to_prev = &this->actives; GRFConfig **to_prev = &this->actives;
@ -1381,7 +1381,7 @@ struct NewGRFWindow : public Window, NewGRFScanCallback {
this->InvalidateData(); this->InvalidateData();
} }
} else if (this->avail_sel != nullptr) { } 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); this->AddGRFToActive(to_pos);
} }
} else if (widget == WID_NS_AVAIL_LIST && this->active_sel != nullptr) { } 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. */ /* An NewGRF file is dragged over the active list. */
int to_pos = this->vscroll->GetScrolledRowFromWidget(pt.y, this, WID_NS_FILE_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. */ /* 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) { if (to_pos != this->active_over) {
this->active_over = to_pos; 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; uint min_inf_height = this->inf->smallest_y + this->inf->padding_top + this->inf->padding_bottom;
/* Smallest window is in two column mode. */ /* 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_x = std::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_y = std::max(min_inf_height, min_acs_height + INTER_LIST_SPACING + min_avs_height);
/* Filling. */ /* Filling. */
this->fill_x = LeastCommonMultiple(this->avs->fill_x, this->acs->fill_x); 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_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_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 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. 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; uint extra_width, inf_width;
if (use_three_columns) { if (use_three_columns) {
extra_width = given_width - min_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 { } else {
extra_width = given_width - min_two_columns; 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)); 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; extra_width -= inf_width - this->inf->smallest_x;
@ -1677,9 +1677,9 @@ public:
if (use_three_columns) { if (use_three_columns) {
/* Three column display, first make both lists equally wide, then divide whatever is left between both lists. /* 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. */ * 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 -= 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 += extra_width / 2;
avs_width = ComputeMaxSize(this->avs->smallest_x, this->avs->smallest_x + avs_width, this->avs->GetHorizontalStepSize(sizing)); 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; uint dx = this->acs->current_x + this->acs->padding_left + this->acs->padding_right;
if (this->editable) { 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; x += dx + INTER_COLUMN_SPACING + this->inf->padding_left;
this->inf->AssignSizePosition(sizing, x, y + this->inf->padding_top, inf_width, inf_height, rtl); 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; int biggest2;
NWidgetBase *acs = MakeNWidgets(_nested_newgrf_actives_widgets, lengthof(_nested_newgrf_actives_widgets), &biggest2, nullptr); 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); 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); return new NWidgetNewGRFDisplay(avs, acs, inf);
} }
@ -2077,8 +2077,8 @@ struct SavePresetWindow : public Window {
size->height = 0; size->height = 0;
for (uint i = 0; i < this->presets.size(); i++) { for (uint i = 0; i < this->presets.size(); i++) {
Dimension d = GetStringBoundingBox(this->presets[i].c_str()); Dimension d = GetStringBoundingBox(this->presets[i].c_str());
size->width = max(size->width, d.width + WD_FRAMETEXT_LEFT + WD_FRAMETEXT_RIGHT); size->width = std::max(size->width, d.width + WD_FRAMETEXT_LEFT + WD_FRAMETEXT_RIGHT);
resize->height = max(resize->height, d.height); resize->height = std::max(resize->height, d.height);
} }
size->height = ClampU((uint)this->presets.size(), 5, 20) * resize->height + 1; size->height = ClampU((uint)this->presets.size(), 5, 20) * resize->height + 1;
break; break;
@ -2096,7 +2096,7 @@ struct SavePresetWindow : public Window {
int offset_y = (step_height - FONT_HEIGHT_NORMAL) / 2; int offset_y = (step_height - FONT_HEIGHT_NORMAL) / 2;
uint y = r.top + WD_FRAMERECT_TOP; uint y = r.top + WD_FRAMERECT_TOP;
uint min_index = this->vscroll->GetPosition(); 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++) { 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); 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); SetDParamMaxDigits(1, 4);
/* We really don't know the width. We could determine it by scanning the NewGRFs, /* We really don't know the width. We could determine it by scanning the NewGRFs,
* but this is the status window for scanning them... */ * 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; size->height = FONT_HEIGHT_NORMAL * 2 + WD_PAR_VSEP_NORMAL;
break; break;
} }
@ -2221,7 +2221,7 @@ struct ScanProgressWindow : public Window {
case WID_SP_PROGRESS_BAR: { case WID_SP_PROGRESS_BAR: {
/* Draw the % complete with a bar and a text */ /* Draw the % complete with a bar and a text */
DrawFrameRect(r.left, r.top, r.right, r.bottom, COLOUR_GREY, FR_BORDERONLY); 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); 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); SetDParam(0, percent);
DrawString(r.left, r.right, r.top + 5, STR_GENERATION_PROGRESS, TC_FROMSTRING, SA_HOR_CENTER); DrawString(r.left, r.right, r.top + 5, STR_GENERATION_PROGRESS, TC_FROMSTRING, SA_HOR_CENTER);

View File

@ -94,7 +94,7 @@ static uint32 GetClosestIndustry(TileIndex tile, IndustryType type, const Indust
for (const Industry *i : Industry::Iterate()) { for (const Industry *i : Industry::Iterate()) {
if (i->type != type || i == current) continue; 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; 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. /* 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 */ * In either case, just do the regular var67 */
closest_dist = GetClosestIndustry(current->location.tile, ind_index, current); 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 { } else {
/* Count only those who match the same industry type and layout filter /* Count only those who match the same industry type and layout filter
* Unfortunately, we have to do it manually */ * Unfortunately, we have to do it manually */
for (const Industry *i : Industry::Iterate()) { 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)) { 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++; count++;
} }
} }
@ -180,7 +180,7 @@ static uint32 GetCountAndDistanceOfClosestInstance(byte param_setID, byte layout
case 0x88: return GetTownRadiusGroup(this->industry->town, this->tile); case 0x88: return GetTownRadiusGroup(this->industry->town, this->tile);
/* Manhattan distance of the closest town */ /* 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 */ /* Lowest height of the tile */
case 0x8A: return Clamp(GetTileZ(this->tile) * (this->ro.grffile->grf_version >= 8 ? 1 : TILE_HEIGHT), 0, 0xFF); 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); case 0x8B: return GetClosestWaterDistance(this->tile, (GetIndustrySpec(this->industry->type)->behaviour & INDUSTRYBEH_BUILT_ONWATER) == 0);
/* Square of Euclidian distance from town */ /* 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 */ /* 32 random bits */
case 0x8F: return this->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 (HasBit(callback, CBM_IND_PRODUCTION_CARGO_ARRIVAL) || HasBit(callback, CBM_IND_PRODUCTION_256_TICKS)) {
if ((indspec->behaviour & INDUSTRYBEH_PROD_MULTI_HNDLING) != 0) { if ((indspec->behaviour & INDUSTRYBEH_PROD_MULTI_HNDLING) != 0) {
if (this->industry->prod_level == 0) return 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 { } 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 { } else {
return 0; return 0;
@ -283,11 +283,11 @@ static uint32 GetCountAndDistanceOfClosestInstance(byte param_setID, byte layout
/* Get town zone and Manhattan distance of closest town */ /* Get town zone and Manhattan distance of closest town */
case 0x65: case 0x65:
if (this->tile == INVALID_TILE) break; 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 */ /* Get square of Euclidian distance of closes town */
case 0x66: case 0x66:
if (this->tile == INVALID_TILE) break; 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 /* Count of industry, distance of closest instance
* 68 is the same as 67, but with a filtering on selected layout */ * 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); 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++) { 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 { } else {
/* Callback receives list of cargos to apply for, which need to have their cargo slots in industry looked up */ /* 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++) { for (uint i = 0; i < group->num_output; i++) {
int cargo_index = ind->GetCargoProducedIndex(group->cargo_output[i]); int cargo_index = ind->GetCargoProducedIndex(group->cargo_output[i]);
if (cargo_index < 0) continue; 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);
} }
} }

View File

@ -189,7 +189,7 @@ static uint32 GetClosestObject(TileIndex tile, ObjectType type, const Object *cu
for (const Object *o : Object::Iterate()) { for (const Object *o : Object::Iterate()) {
if (o->type != type || o == current) continue; 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; 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 the object type is invalid, there is none and the closest is far away. */
if (idx >= NUM_OBJECTS) return 0 | 0xFFFF; 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. */ /** 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); case 0x44: return GetTileOwner(this->tile);
/* Get town zone and Manhattan distance of closest town */ /* 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 */ /* 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 */ /* Object colour */
case 0x47: return this->obj->colour; case 0x47: return this->obj->colour;

View File

@ -148,7 +148,7 @@ uint32 NewGRFProfiler::FinishAll()
for (NewGRFProfiler &pr : _newgrf_profilers) { for (NewGRFProfiler &pr : _newgrf_profilers) {
if (pr.active) { if (pr.active) {
total_microseconds += pr.Finish(); 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);
} }
} }

View File

@ -8,7 +8,6 @@
/** @file newgrf_spritegroup.cpp Handling of primarily NewGRF action 2. */ /** @file newgrf_spritegroup.cpp Handling of primarily NewGRF action 2. */
#include "stdafx.h" #include "stdafx.h"
#include <algorithm>
#include "debug.h" #include "debug.h"
#include "newgrf_spritegroup.h" #include "newgrf_spritegroup.h"
#include "newgrf_profiling.h" #include "newgrf_profiling.h"
@ -173,10 +172,10 @@ static U EvalAdjustT(const DeterministicSpriteGroupAdjust *adjust, ScopeResolver
switch (adjust->operation) { switch (adjust->operation) {
case DSGA_OP_ADD: return last_value + value; case DSGA_OP_ADD: return last_value + value;
case DSGA_OP_SUB: 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_SMIN: return std::min<S>(last_value, value);
case DSGA_OP_SMAX: return max((S)last_value, (S)value); case DSGA_OP_SMAX: return std::max<S>(last_value, value);
case DSGA_OP_UMIN: return min((U)last_value, (U)value); case DSGA_OP_UMIN: return std::min<U>(last_value, value);
case DSGA_OP_UMAX: return max((U)last_value, (U)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_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_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; case DSGA_OP_UDIV: return value == 0 ? (U)last_value : (U)last_value / (U)value;

View File

@ -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, 0, 4, y & 0xF);
SB(retval, 4, 4, x & 0xF); SB(retval, 4, 4, x & 0xF);
} else { } else {
SB(retval, 0, 4, min(15, y)); SB(retval, 0, 4, std::min(15, y));
SB(retval, 4, 4, min(15, length - y - 1)); SB(retval, 4, 4, std::min(15, length - y - 1));
SB(retval, 8, 4, min(15, x)); SB(retval, 8, 4, std::min(15, x));
SB(retval, 12, 4, min(15, platforms - x - 1)); SB(retval, 12, 4, std::min(15, platforms - x - 1));
} }
SB(retval, 16, 4, min(15, length)); SB(retval, 16, 4, std::min(15, length));
SB(retval, 20, 4, min(15, platforms)); SB(retval, 20, 4, std::min(15, platforms));
SB(retval, 24, 4, tile); SB(retval, 24, 4, tile);
return retval; return retval;
@ -424,7 +424,7 @@ uint32 Station::GetNewGRFVariable(const ResolverObject &object, byte variable, b
const GoodsEntry *ge = &this->goods[c]; const GoodsEntry *ge = &this->goods[c];
switch (variable) { 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 0x61: return ge->HasVehicleEverTriedLoading() ? ge->time_since_pickup : 0;
case 0x62: return ge->HasRating() ? ge->rating : 0xFFFFFFFF; case 0x62: return ge->HasRating() ? ge->rating : 0xFFFFFFFF;
case 0x63: return ge->cargo.DaysInTransit(); 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)]; const GoodsEntry *g = &this->goods[GB(variable - 0x8C, 3, 4)];
switch (GB(variable - 0x8C, 0, 3)) { switch (GB(variable - 0x8C, 0, 3)) {
case 0: return g->cargo.TotalCount(); 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 2: return g->time_since_pickup;
case 3: return g->rating; case 3: return g->rating;
case 4: return g->cargo.Source(); 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); 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 (cargo > this->station_scope.statspec->cargo_threshold) {
if (group->num_loading > 0) { if (group->num_loading > 0) {

View File

@ -17,7 +17,6 @@
#include "stdafx.h" #include "stdafx.h"
#include <algorithm>
#include <array> #include <array>
#include "newgrf.h" #include "newgrf.h"
@ -179,7 +178,7 @@ struct UnmappedChoiceList {
*d++ = i + 1; *d++ = i + 1;
/* "<LENn>": Limit the length of the string to 0xFFFE to leave space for the '\0'. */ /* "<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, 8, 8);
*d++ = GB(len + 1, 0, 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(); 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 /* 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'. */ * 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); dest.write(str.c_str(), len);
*d++ = '\0'; *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_ROTATE_TOP_4_WORDS: _newgrf_textrefstack.RotateTop4Words(); break;
case SCC_NEWGRF_PUSH_WORD: _newgrf_textrefstack.PushWord(Utf8Consume(str)); 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_LONG:
case SCC_NEWGRF_PRINT_WORD_CARGO_SHORT: case SCC_NEWGRF_PRINT_WORD_CARGO_SHORT:

View File

@ -538,7 +538,7 @@ struct NewsWindow : Window {
int count = this->timer.CountElapsed(delta_ms); int count = this->timer.CountElapsed(delta_ms);
if (count > 0) { if (count > 0) {
/* Scroll up newsmessages from the bottom */ /* 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); this->SetWindowTop(newtop);
} }
@ -556,8 +556,8 @@ private:
{ {
if (this->top == newtop) return; if (this->top == newtop) return;
int mintop = min(newtop, this->top); int mintop = std::min(newtop, this->top);
int maxtop = max(newtop, this->top); int maxtop = std::max(newtop, this->top);
if (this->viewport != nullptr) this->viewport->top += newtop - this->top; if (this->viewport != nullptr) this->viewport->top += newtop - this->top;
this->top = newtop; this->top = newtop;
@ -1148,7 +1148,7 @@ struct MessageHistoryWindow : Window {
this->date_width = GetStringBoundingBox(STR_SHORT_DATE).width; 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->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.
} }
} }

View File

@ -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 /* Top town building generates 10, so to make HQ interesting, the top
* type makes 20. */ * type makes 20. */
acceptance[CT_PASSENGERS] += max(1U, level); acceptance[CT_PASSENGERS] += std::max(1U, level);
SetBit(*always_accepted, CT_PASSENGERS); SetBit(*always_accepted, CT_PASSENGERS);
/* Top town building generates 4, HQ can make up to 8. The /* Top town building generates 4, HQ can make up to 8. The
* proportion passengers:mail is different because such a huge * proportion passengers:mail is different because such a huge
* commercial building generates unusually high amount of mail * commercial building generates unusually high amount of mail
* correspondence per physical visitor. */ * correspondence per physical visitor. */
acceptance[CT_MAIL] += max(1U, level / 2); acceptance[CT_MAIL] += std::max(1U, level / 2);
SetBit(*always_accepted, CT_MAIL); SetBit(*always_accepted, CT_MAIL);
} }

View File

@ -125,7 +125,7 @@ public:
for (uint i = 0; i < ObjectClass::GetClassCount(); i++) { for (uint i = 0; i < ObjectClass::GetClassCount(); i++) {
ObjectClass *objclass = ObjectClass::Get((ObjectClassID)i); ObjectClass *objclass = ObjectClass::Get((ObjectClassID)i);
if (objclass->GetUISpecCount() == 0) continue; 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; size->width += padding.width;
this->line_height = FONT_HEIGHT_NORMAL + WD_MATRIX_TOP + WD_MATRIX_BOTTOM; this->line_height = FONT_HEIGHT_NORMAL + WD_MATRIX_TOP + WD_MATRIX_BOTTOM;
@ -161,7 +161,7 @@ public:
const ObjectSpec *spec = ObjectSpec::Get(i); const ObjectSpec *spec = ObjectSpec::Get(i);
if (!spec->IsEverAvailable()) continue; if (!spec->IsEverAvailable()) continue;
two_wide |= spec->views >= 2; 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. */ /* Determine the pixel heights. */
@ -174,7 +174,7 @@ public:
* we want these columns to be slightly less wide. When there are two rows, then * 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 * 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. */ * 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) { if (two_wide) {
size->width = (3 * ScaleGUITrad(TILE_PIXELS) + 2 * OBJECT_MARGIN) * 2 + 2; size->width = (3 * ScaleGUITrad(TILE_PIXELS) + 2 * OBJECT_MARGIN) * 2 + 2;
} else { } 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); DrawOrigTileSeqInGUI((r.right - r.left) / 2 - 1, r.bottom - r.top - OBJECT_MARGIN - ScaleGUITrad(TILE_PIXELS), dts, PAL_NONE);
} else { } else {
DrawNewObjectTileInGUI((r.right - r.left) / 2 - 1, r.bottom - r.top - OBJECT_MARGIN - ScaleGUITrad(TILE_PIXELS), spec, 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; _cur_dpi = old_dpi;
} }
@ -332,7 +332,7 @@ public:
_selected_object_index = object_index; _selected_object_index = object_index;
if (_selected_object_index != -1) { if (_selected_object_index != -1) {
const ObjectSpec *spec = ObjectClass::Get(_selected_object_class)->GetSpec(_selected_object_index); 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(); this->ReInit();
} else { } else {
_selected_object_view = 0; _selected_object_view = 0;

Some files were not shown because too many files have changed in this diff Show More