diff --git a/src/command.cpp b/src/command.cpp index 642e14dc86..a052b0b3f3 100644 --- a/src/command.cpp +++ b/src/command.cpp @@ -577,7 +577,7 @@ static void DumpSubCommandLog(char *&buffer, const char *last, const CommandLog if (log_index > 0) { log_index--; } else { - log_index = cmd_log.log.size() - 1; + log_index = (uint)cmd_log.log.size() - 1; } const CommandLogEntry &entry = cmd_log.log[log_index]; diff --git a/src/console_cmds.cpp b/src/console_cmds.cpp index bf924d702d..8830cda3de 100644 --- a/src/console_cmds.cpp +++ b/src/console_cmds.cpp @@ -2912,7 +2912,7 @@ DEF_CONSOLE_CMD(ConBankruptCompany) c->bankrupt_value = 42; c->bankrupt_asked = 1 << c->index; // Don't ask the owner c->bankrupt_timeout = 0; - c->money = -(UINT64_MAX >> 2); + c->money = INT64_MIN / 2; IConsolePrint(CC_DEFAULT, "Company marked as bankrupt."); return true; diff --git a/src/debug.cpp b/src/debug.cpp index c2c4f9aaf2..e9a433061c 100644 --- a/src/debug.cpp +++ b/src/debug.cpp @@ -345,8 +345,8 @@ struct DesyncMsgLog { { if (!this->count) return buffer; - const unsigned int count = std::min(this->count, this->log.size()); - unsigned int log_index = (this->next + this->log.size() - count) % this->log.size(); + const unsigned int count = std::min(this->count, (uint)this->log.size()); + unsigned int log_index = (this->next + (uint)this->log.size() - count) % (uint)this->log.size(); unsigned int display_num = this->count - count; buffer += seprintf(buffer, last, "%s:\n Showing most recent %u of %u messages\n", prefix, count, this->count); diff --git a/src/departures.cpp b/src/departures.cpp index 220d643b4c..b72d414a6d 100644 --- a/src/departures.cpp +++ b/src/departures.cpp @@ -577,8 +577,8 @@ DepartureList* MakeDepartureList(StationID station, const std::vectorsize() - 1; ++i) { Departure *d_first = (*result)[i]; - uint k = d_first->calling_at.size() - 2; - for (uint j = d->calling_at.size(); j > 0; --j) { + uint k = (uint)d_first->calling_at.size() - 2; + for (uint j = (uint)d->calling_at.size(); j > 0; --j) { CallAt c = CallAt(d->calling_at[j - 1]); if (d_first->terminus >= c && d_first->calling_at.size() >= 2) { diff --git a/src/departures_gui.cpp b/src/departures_gui.cpp index cbc39a1c21..f4f1733e81 100644 --- a/src/departures_gui.cpp +++ b/src/departures_gui.cpp @@ -491,7 +491,7 @@ public: this->EnableWidget(WID_DB_SHOW_DEPS); } - this->vscroll->SetCount(std::min(_settings_client.gui.max_departures, this->departures->size() + this->arrivals->size())); + this->vscroll->SetCount(std::min(_settings_client.gui.max_departures, (uint)this->departures->size() + (uint)this->arrivals->size())); this->DrawWidgets(); } @@ -623,7 +623,7 @@ void DeparturesWindow::DrawDeparturesListItems(const Rect &r) const int text_right = right - (rtl ? text_offset : 0); int y = r.top + 1; - uint max_departures = std::min(this->vscroll->GetPosition() + this->vscroll->GetCapacity(), this->departures->size() + this->arrivals->size()); + uint max_departures = std::min(this->vscroll->GetPosition() + this->vscroll->GetCapacity(), (uint)this->departures->size() + (uint)this->arrivals->size()); if (max_departures > _settings_client.gui.max_departures) { max_departures = _settings_client.gui.max_departures; diff --git a/src/ground_vehicle.cpp b/src/ground_vehicle.cpp index 107112d938..688b14cb0e 100644 --- a/src/ground_vehicle.cpp +++ b/src/ground_vehicle.cpp @@ -261,7 +261,7 @@ GroundVehicleAcceleration GroundVehicle::GetAcceleration() breakdown_factor /= (Train::From(this)->tcache.cached_num_engines + 2); } /* breakdown_chance is at least 5 (5 / 128 = ~4% of the normal chance) */ - this->breakdown_chance_factor = std::max(breakdown_factor >> 16, (uint64)5); + this->breakdown_chance_factor = Clamp(breakdown_factor >> 16, 5, 255); } int braking_accel; diff --git a/src/group_gui.cpp b/src/group_gui.cpp index 2a62bdc120..5da1d41934 100644 --- a/src/group_gui.cpp +++ b/src/group_gui.cpp @@ -390,7 +390,7 @@ private: Money this_year = 0; Money last_year = 0; uint32 occupancy = 0; - size_t vehicle_count = this->vehicles.size(); + uint vehicle_count = (uint)this->vehicles.size(); for (uint i = 0; i < vehicle_count; i++) { const Vehicle *v = this->vehicles[i]; diff --git a/src/linkgraph/demands.cpp b/src/linkgraph/demands.cpp index 27b179b177..4008a33523 100644 --- a/src/linkgraph/demands.cpp +++ b/src/linkgraph/demands.cpp @@ -161,7 +161,7 @@ public: */ inline void AdjustDemandNodes(LinkGraphJob &job, const std::vector &demands) { - const uint count = std::min(demands.size(), this->missing_supply); + const uint count = std::min((uint)demands.size(), this->missing_supply); this->missing_supply = 0; for (uint i = 0; i < count; i++) { job[demands[i]].ReceiveDemand(1); @@ -371,7 +371,7 @@ void DemandCalculator::CalcMinimisedDistanceDemand(LinkGraphJob &job, const std: if (supplies.empty() || demands.empty()) return; - scaler.SetDemandPerNode(demands.size()); + scaler.SetDemandPerNode((uint)demands.size()); scaler.AdjustDemandNodes(job, demands); struct EdgeCandidate { diff --git a/src/linkgraph/linkgraph_gui.cpp b/src/linkgraph/linkgraph_gui.cpp index 7d282747fd..0507b9f570 100644 --- a/src/linkgraph/linkgraph_gui.cpp +++ b/src/linkgraph/linkgraph_gui.cpp @@ -62,7 +62,7 @@ const uint8 LinkGraphOverlay::LINK_COLOURS[][12] = { void LinkGraphOverlay::GetWidgetDpi(DrawPixelInfo *dpi, uint margin) const { const NWidgetBase *wi = this->window->GetWidget(this->widget_id); - dpi->left = dpi->top = -margin; + dpi->left = dpi->top = -(int)margin; dpi->width = wi->current_x + 2 * margin; dpi->height = wi->current_y + 2 * margin; } diff --git a/src/network/core/packet.cpp b/src/network/core/packet.cpp index c5d149fe2f..aeff6e1acd 100644 --- a/src/network/core/packet.cpp +++ b/src/network/core/packet.cpp @@ -425,7 +425,7 @@ void Packet::Recv_string(std::string &buffer, StringValidationSettings settings) size_t length = ttd_strnlen((const char *)(this->buffer.data() + this->pos), this->Size() - this->pos - 1); buffer.assign((const char *)(this->buffer.data() + this->pos), length); - this->pos += length + 1; + this->pos += (uint)length + 1; str_validate_inplace(buffer, settings); } diff --git a/src/network/core/udp.cpp b/src/network/core/udp.cpp index ccb69538ba..198cfc1279 100644 --- a/src/network/core/udp.cpp +++ b/src/network/core/udp.cpp @@ -95,13 +95,13 @@ void NetworkUDPSocketHandler::SendPacket(Packet *p, NetworkAddress *recv, bool a const uint PAYLOAD_MTU = MTU - (1 + 2 + 8 + 1 + 1 + 2); const size_t packet_size = p->Size(); - const uint8 frag_count = (packet_size + PAYLOAD_MTU - 1) / PAYLOAD_MTU; + const uint8 frag_count = (uint8)((packet_size + PAYLOAD_MTU - 1) / PAYLOAD_MTU); Packet frag(PACKET_UDP_EX_MULTI); uint8 current_frag = 0; uint16 offset = 0; while (offset < packet_size) { - uint16 payload_size = std::min(PAYLOAD_MTU, packet_size - offset); + uint16 payload_size = (uint16)std::min(PAYLOAD_MTU, packet_size - offset); frag.Send_uint64(token); frag.Send_uint8 (current_frag); frag.Send_uint8 (frag_count); @@ -501,7 +501,7 @@ void NetworkUDPSocketHandler::Receive_EX_MULTI(Packet *p, NetworkAddress *client for (auto &frag : fs.fragments) { if (!frag.size()) return; - total_payload += frag.size(); + total_payload += (uint)frag.size(); } DEBUG(net, 6, "[udp] merged multi-part packet from %s: " OTTD_PRINTFHEX64 ", %u bytes", diff --git a/src/network/network_client.cpp b/src/network/network_client.cpp index 5fc12703dc..1e76424559 100644 --- a/src/network/network_client.cpp +++ b/src/network/network_client.cpp @@ -565,7 +565,7 @@ NetworkRecvStatus ClientNetworkGameSocketHandler::SendDesyncLog(const std::strin for (size_t offset = 0; offset < log.size();) { Packet *p = new Packet(PACKET_CLIENT_DESYNC_LOG, SHRT_MAX); size_t size = std::min(log.size() - offset, SHRT_MAX - 2 - p->Size()); - p->Send_uint16(size); + p->Send_uint16((uint16)size); p->Send_binary(log.data() + offset, size); my_client->SendPacket(p); diff --git a/src/network/network_content.cpp b/src/network/network_content.cpp index bc43d94bde..b299294356 100644 --- a/src/network/network_content.cpp +++ b/src/network/network_content.cpp @@ -254,7 +254,7 @@ void ClientNetworkContentSocketHandler::RequestContentList(ContentVector *cv, bo while (cv->size() > offset) { Packet *p = new Packet(send_md5sum ? PACKET_CONTENT_CLIENT_INFO_EXTID_MD5 : PACKET_CONTENT_CLIENT_INFO_EXTID, TCP_MTU); - const uint to_send = std::min(cv->size() - offset, max_per_packet); + const uint to_send = (uint)std::min(cv->size() - offset, max_per_packet); p->Send_uint8(to_send); for (uint i = 0; i < to_send; i++) { diff --git a/src/os/windows/crashlog_win.cpp b/src/os/windows/crashlog_win.cpp index 9f1189e92e..50e6c9596d 100644 --- a/src/os/windows/crashlog_win.cpp +++ b/src/os/windows/crashlog_win.cpp @@ -634,7 +634,7 @@ static LONG WINAPI ExceptionHandler(EXCEPTION_POINTERS *ep) if (abort_reason != nullptr) { wchar_t _emergency_crash[512]; _snwprintf(_emergency_crash, lengthof(_emergency_crash), - L"A serious fault condition occurred in the game. The game will shut down. (%s)\n", OTTD2FS(abort_reason)); + L"A serious fault condition occurred in the game. The game will shut down. (%s)\n", OTTD2FS(abort_reason).c_str()); MessageBox(nullptr, _emergency_crash, L"Fatal Application Failure", MB_ICONERROR); ExitProcess(3); } diff --git a/src/pbs.cpp b/src/pbs.cpp index f6f9b6e79b..e165112da3 100644 --- a/src/pbs.cpp +++ b/src/pbs.cpp @@ -342,9 +342,9 @@ static void CheckCurveLookAhead(const Train *v, TrainReservationLookAhead *looka static int LookaheadTileHeightForChunnel(int length, int offset) { if (offset == 0) return 0; - if (offset < 3) return -1 * TILE_HEIGHT; - if (offset < length - 3) return -2 * TILE_HEIGHT; - if (offset < length) return -1 * TILE_HEIGHT; + if (offset < 3) return -1 * (int)TILE_HEIGHT; + if (offset < length - 3) return -2 * (int)TILE_HEIGHT; + if (offset < length) return -1 * (int)TILE_HEIGHT; return 0; } @@ -861,7 +861,7 @@ void TryCreateLookAheadForTrainInTunnelBridge(Train *t) int z = IsBridge(t->tile) ? GetBridgeHeight(t->tile) : GetTilePixelZ(t->tile); /* Middle signals */ - int offset = -TILE_SIZE; + int offset = -(int)TILE_SIZE; for (int i = 0; i < signals; i++) { offset += TILE_SIZE * spacing; t->lookahead->AddSignal(signal_speed, offset, HasBit(t->lookahead->flags, TRLF_CHUNNEL) ? LookaheadTileHeightForChunnel(length, i * spacing) : z); diff --git a/src/programmable_signals.cpp b/src/programmable_signals.cpp index fc018cda56..f036ec56ab 100644 --- a/src/programmable_signals.cpp +++ b/src/programmable_signals.cpp @@ -205,8 +205,8 @@ void SignalSlotCondition::SetSlot(TraceRestrictSlotID slot_id) const TraceRestrictSlot *slot = TraceRestrictSlot::Get(this->slot_id); switch (this->cond_code) { - case PSC_SLOT_OCC: return this->EvaluateComparable(slot->occupants.size()); - case PSC_SLOT_OCC_REM: return this->EvaluateComparable(slot->max_occupancy > slot->occupants.size() ? slot->max_occupancy - slot->occupants.size() : 0); + case PSC_SLOT_OCC: return this->EvaluateComparable((uint)slot->occupants.size()); + case PSC_SLOT_OCC_REM: return this->EvaluateComparable(slot->max_occupancy > (uint)slot->occupants.size() ? slot->max_occupancy - (uint)slot->occupants.size() : 0); default: NOT_REACHED(); } } diff --git a/src/programmable_signals_gui.cpp b/src/programmable_signals_gui.cpp index 1747c6d8db..5e1a94deed 100644 --- a/src/programmable_signals_gui.cpp +++ b/src/programmable_signals_gui.cpp @@ -711,7 +711,7 @@ private: void RebuildInstructionList() { - uint old_len = this->instructions.size(); + uint old_len = (uint)this->instructions.size(); this->instructions.clear(); SignalInstruction *insn = program->first_instruction; uint indent = 0; @@ -774,7 +774,7 @@ private: } } while (insn); - this->vscroll->SetCount(this->instructions.size()); + this->vscroll->SetCount((uint)this->instructions.size()); if (this->instructions.size() != old_len) selected_instruction = -1; UpdateButtonState(); diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index 589f20e0a8..86cee206ce 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -3005,7 +3005,7 @@ CommandCost CmdConvertRoad(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3 if (!IsRoadStopTile(tile) && owner == _current_company) { ConvertRoadTypeOwner(tile, num_pieces, owner, from_type, to_type); } else { - UpdateCompanyRoadInfrastructure(from_type, owner, -num_pieces); + UpdateCompanyRoadInfrastructure(from_type, owner, -(int)num_pieces); UpdateCompanyRoadInfrastructure(to_type, owner, num_pieces); } @@ -3080,7 +3080,7 @@ CommandCost CmdConvertRoad(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3 SetTunnelBridgeOwner(tile, endtile, _current_company); } } else { - UpdateCompanyRoadInfrastructure(from_type, owner, -(tile_pieces + end_pieces)); + UpdateCompanyRoadInfrastructure(from_type, owner, -(int)(tile_pieces + end_pieces)); UpdateCompanyRoadInfrastructure(to_type, owner, tile_pieces + end_pieces); } diff --git a/src/roadveh_cmd.cpp b/src/roadveh_cmd.cpp index 1b4d6ae6c8..10db05c257 100644 --- a/src/roadveh_cmd.cpp +++ b/src/roadveh_cmd.cpp @@ -1529,7 +1529,7 @@ static void RoadVehCheckFinishOvertake(RoadVehicle *v) check_tile = TileAddWrap(check_tile, -ti.x, -ti.y); } - if (check_ahead > 0) { + if (check_ahead) { TileIndex ahead_tile = TileAddWrap(check_tile, ti.x, ti.y); if (ahead_tile != INVALID_TILE) { if (HasVehicleOnPos(ahead_tile, VEH_ROAD, &od, EnumFindVehBlockingFinishOvertake)) return; diff --git a/src/saveload/bridge_signal_sl.cpp b/src/saveload/bridge_signal_sl.cpp index f0a8e2de50..596194d2f3 100644 --- a/src/saveload/bridge_signal_sl.cpp +++ b/src/saveload/bridge_signal_sl.cpp @@ -37,7 +37,7 @@ static void Load_XBSS() static void RealSave_XBSS(const LongBridgeSignalStorage *lbss) { LongBridgeSignalStorageStub stub; - stub.length = lbss->signal_red_bits.size(); + stub.length = (uint32)lbss->signal_red_bits.size(); SlObject(&stub, _long_bridge_signal_storage_stub_desc); SlArray(const_cast(&(lbss->signal_red_bits[0])), stub.length, SLE_UINT64); } diff --git a/src/saveload/cheat_sl.cpp b/src/saveload/cheat_sl.cpp index e2402638fd..f73937a1c9 100644 --- a/src/saveload/cheat_sl.cpp +++ b/src/saveload/cheat_sl.cpp @@ -126,8 +126,8 @@ static void Save_CHTX() }; SlAutolength([](void *) { - SlWriteUint32(0); // flags - SlWriteUint32(lengthof(_extra_cheat_descs) + _unknown_cheats.size()); // cheat count + SlWriteUint32(0); // flags + SlWriteUint32((uint32)(lengthof(_extra_cheat_descs) + _unknown_cheats.size())); // cheat count for (uint j = 0; j < lengthof(_extra_cheat_descs); j++) { CheatsExtSave save = { _extra_cheat_descs[j].name, *(_extra_cheat_descs[j].cht) }; diff --git a/src/saveload/extended_ver_sl.cpp b/src/saveload/extended_ver_sl.cpp index d0959e8dff..ec53a3fde9 100644 --- a/src/saveload/extended_ver_sl.cpp +++ b/src/saveload/extended_ver_sl.cpp @@ -473,7 +473,7 @@ static void Save_SLXI() if (_sl_xv_feature_versions[info->index] > 0) { item_count++; length += 6; - length += SlCalcObjLength(info, _xlsi_sub_chunk_desc); + length += (uint32)SlCalcObjLength(info, _xlsi_sub_chunk_desc); if (info->save_proc) { uint32 extra_data_length = info->save_proc(info, true); if (extra_data_length) { @@ -644,7 +644,7 @@ static void loadVL(const SlxiSubChunkInfo *info, uint32 length) static uint32 saveVL(const SlxiSubChunkInfo *info, bool dry_run) { - uint32 length = strlen(_openttd_revision); + size_t length = strlen(_openttd_revision); if (!dry_run) MemoryDumper::GetCurrent()->CopyBytes(reinterpret_cast(_openttd_revision), length); return length; } diff --git a/src/saveload/labelmaps_sl.cpp b/src/saveload/labelmaps_sl.cpp index 292816faa7..ac7cb1b793 100644 --- a/src/saveload/labelmaps_sl.cpp +++ b/src/saveload/labelmaps_sl.cpp @@ -49,7 +49,7 @@ void AfterLoadLabelMaps() railtype_conversion_map[i] = r; } - for (uint i = _railtype_list.size(); i < RAILTYPE_END; i++) { + for (uint i = (uint)_railtype_list.size(); i < RAILTYPE_END; i++) { railtype_conversion_map[i] = RAILTYPE_RAIL; } diff --git a/src/saveload/plans_sl.cpp b/src/saveload/plans_sl.cpp index 43fc8087e5..a7e33d90fb 100644 --- a/src/saveload/plans_sl.cpp +++ b/src/saveload/plans_sl.cpp @@ -28,10 +28,10 @@ static const SaveLoad _plan_desc[] = { static void RealSave_PLAN(Plan *p) { SlObject(p, _plan_desc); - SlWriteUint32(p->lines.size()); + SlWriteUint32((uint32)p->lines.size()); for (size_t i = 0; i < p->lines.size(); i++) { PlanLine *pl = p->lines[i]; - SlWriteUint32(pl->tiles.size()); + SlWriteUint32((uint32)pl->tiles.size()); SlArray(&pl->tiles[0], pl->tiles.size(), SLE_UINT32); } } diff --git a/src/saveload/saveload.cpp b/src/saveload/saveload.cpp index 800aa62699..e28f8b0b76 100644 --- a/src/saveload/saveload.cpp +++ b/src/saveload/saveload.cpp @@ -171,8 +171,8 @@ void MemoryDumper::Flush(SaveFilter *writer) { this->FinaliseBlock(); - uint block_count = this->blocks.size(); - for (uint i = 0; i < block_count; i++) { + size_t block_count = this->blocks.size(); + for (size_t i = 0; i < block_count; i++) { writer->Write(this->blocks[i].data, this->blocks[i].size); } diff --git a/src/saveload/signal_sl.cpp b/src/saveload/signal_sl.cpp index 241229b5d5..b23e78e6bd 100644 --- a/src/saveload/signal_sl.cpp +++ b/src/saveload/signal_sl.cpp @@ -146,14 +146,14 @@ static void Save_SPRG() // OK, we can now write out our programs Buffer b; - WriteVLI(b, _signal_programs.size()); + WriteVLI(b, (uint)_signal_programs.size()); for(ProgramList::iterator i = _signal_programs.begin(), e = _signal_programs.end(); i != e; ++i) { SignalProgram *prog = i->second; WriteVLI(b, prog->tile); WriteVLI(b, prog->track); - WriteVLI(b, prog->instructions.size()); + WriteVLI(b, (uint)prog->instructions.size()); for (SignalInstruction *insn : prog->instructions) { WriteVLI(b, insn->Opcode()); if(insn->Opcode() != PSO_FIRST) @@ -195,7 +195,7 @@ static void Save_SPRG() } } - uint size = b.size(); + uint size = (uint)b.size(); SlSetLength(size); for(uint i = 0; i < size; i++) { SlWriteByte(b[i]); // TODO Gotta be a better way @@ -223,14 +223,14 @@ typedef std::vector FixupList; template static void MakeFixup(FixupList &l, T *&ir, uint id, SignalOpcode op = PSO_INVALID) { - ir = reinterpret_cast(id); + ir = reinterpret_cast((size_t)id); l.emplace_back(reinterpret_cast(&ir), op); } static void DoFixups(FixupList &l, InstructionList &il) { for (Fixup &i : l) { - uint id = reinterpret_cast(*(i.ptr)); + uint id = (uint)reinterpret_cast(*(i.ptr)); if (id >= il.size()) NOT_REACHED(); diff --git a/src/saveload/station_sl.cpp b/src/saveload/station_sl.cpp index 987be23127..4a6a63787b 100644 --- a/src/saveload/station_sl.cpp +++ b/src/saveload/station_sl.cpp @@ -517,7 +517,7 @@ static void RealSave_STNN(BaseStation *bst) Station *st = Station::From(bst); for (CargoID i = 0; i < NUM_CARGO; i++) { _num_dests = (uint32)st->goods[i].cargo.Packets()->MapSize(); - _num_flows = st->goods[i].flows.size(); + _num_flows = (uint32)st->goods[i].flows.size(); SlObjectSaveFiltered(&st->goods[i], _filtered_goods_desc.data()); for (FlowStatMap::const_iterator outer_it(st->goods[i].flows.begin()); outer_it != st->goods[i].flows.end(); ++outer_it) { uint32 sum_shares = 0; @@ -525,7 +525,7 @@ static void RealSave_STNN(BaseStation *bst) flow.source = outer_it->GetOrigin(); dumper->CheckBytes(2 + 4); dumper->RawWriteUint16(flow.source); - dumper->RawWriteUint32(outer_it->size()); + dumper->RawWriteUint32((uint32)outer_it->size()); FlowStat::const_iterator inner_it(outer_it->begin()); const FlowStat::const_iterator end(outer_it->end()); for (; inner_it != end; ++inner_it) { diff --git a/src/saveload/tracerestrict_sl.cpp b/src/saveload/tracerestrict_sl.cpp index 98ef076603..e8fcaee444 100644 --- a/src/saveload/tracerestrict_sl.cpp +++ b/src/saveload/tracerestrict_sl.cpp @@ -97,7 +97,7 @@ static void Load_TRRP() static void RealSave_TRRP(TraceRestrictProgram *prog) { TraceRestrictProgramStub stub; - stub.length = prog->items.size(); + stub.length = (uint32)prog->items.size(); SlObject(&stub, _trace_restrict_program_stub_desc); SlArray(&(prog->items[0]), stub.length, SLE_UINT32); } @@ -154,7 +154,7 @@ static void RealSave_TRRS(TraceRestrictSlot *slot) { SlObject(slot, _trace_restrict_slot_desc); TraceRestrictSlotStub stub; - stub.length = slot->occupants.size(); + stub.length = (uint32)slot->occupants.size(); SlObject(&stub, _trace_restrict_slot_stub_desc); if (stub.length) SlArray(&(slot->occupants[0]), stub.length, SLE_UINT32); } diff --git a/src/saveload/vehicle_sl.cpp b/src/saveload/vehicle_sl.cpp index 9ea1660cfc..7583249a7b 100644 --- a/src/saveload/vehicle_sl.cpp +++ b/src/saveload/vehicle_sl.cpp @@ -1434,11 +1434,11 @@ const SaveLoad *GetVehicleLookAheadCurveDescription() static void RealSave_VLKA(TrainReservationLookAhead *lookahead) { SlObject(lookahead, GetVehicleLookAheadDescription()); - SlWriteUint32(lookahead->items.size()); + SlWriteUint32((uint32)lookahead->items.size()); for (TrainReservationLookAheadItem &item : lookahead->items) { SlObject(&item, GetVehicleLookAheadItemDescription()); } - SlWriteUint32(lookahead->curves.size()); + SlWriteUint32((uint32)lookahead->curves.size()); for (TrainReservationLookAheadCurve &curve : lookahead->curves) { SlObject(&curve, GetVehicleLookAheadCurveDescription()); } diff --git a/src/schdispatch_gui.cpp b/src/schdispatch_gui.cpp index 428f1bedf2..5f6a27b763 100644 --- a/src/schdispatch_gui.cpp +++ b/src/schdispatch_gui.cpp @@ -219,7 +219,7 @@ struct SchdispatchWindow : Window { { this->item_count = 0; if (this->vehicle->orders.list != nullptr) { - this->item_count = this->vehicle->orders.list->GetScheduledDispatch().size(); + this->item_count = (uint)this->vehicle->orders.list->GetScheduledDispatch().size(); } } diff --git a/src/settings.cpp b/src/settings.cpp index da23129f1f..6cb94f5a7f 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -2915,7 +2915,7 @@ static void SaveSettingsPatx(const SettingDesc *sd, void *object) size_t length = 8; for (const SettingDesc *desc = sd; desc->save.cmd != SL_END; desc++) { if (desc->patx_name == nullptr) continue; - uint32 setting_length = SlCalcObjMemberLength(object, &desc->save); + uint32 setting_length = (uint32)SlCalcObjMemberLength(object, &desc->save); if (!setting_length) continue; current_setting.name = desc->patx_name; @@ -2932,8 +2932,8 @@ static void SaveSettingsPatx(const SettingDesc *sd, void *object) } SlSetLength(length); - SlWriteUint32(0); // flags - SlWriteUint32(settings_to_add.size()); // settings count + SlWriteUint32(0); // flags + SlWriteUint32((uint32)settings_to_add.size()); // settings count for (size_t i = 0; i < settings_to_add.size(); i++) { const SettingDesc *desc = settings_to_add[i].setting; @@ -3060,7 +3060,7 @@ void SaveSettingsPlyx() uint32 setting_count = 0; for (const SettingDesc *desc = _company_settings; desc->save.cmd != SL_END; desc++) { if (desc->patx_name == nullptr) continue; - uint32 setting_length = SlCalcObjMemberLength(&(c->settings), &desc->save); + uint32 setting_length = (uint32)SlCalcObjMemberLength(&(c->settings), &desc->save); if (!setting_length) continue; current_setting.name = desc->patx_name; @@ -3091,7 +3091,7 @@ void SaveSettingsPlyx() for (const SettingDesc *desc = _company_settings; desc->save.cmd != SL_END; desc++) { if (desc->patx_name == nullptr) continue; - uint32 setting_length = SlCalcObjMemberLength(&(c->settings), &desc->save); + uint32 setting_length = (uint32)SlCalcObjMemberLength(&(c->settings), &desc->save); if (!setting_length) continue; current_setting.flags = 0; diff --git a/src/signal.cpp b/src/signal.cpp index 5549564be3..fc9b89c19a 100644 --- a/src/signal.cpp +++ b/src/signal.cpp @@ -435,8 +435,8 @@ static SigInfo ExploreSegment(Owner owner) if (enterdir == INVALID_DIAGDIR) { // incoming from the wormhole, onto signal if (!(info.flags & SF_TRAIN) && IsTunnelBridgeSignalSimulationExit(tile)) { // tunnel entrance is ignored - if (HasVehicleOnPos(GetOtherTunnelBridgeEnd(tile), VEH_TRAIN, reinterpret_cast(tile), &TrainInWormholeTileEnum)) info.flags |= SF_TRAIN; - if (!(info.flags & SF_TRAIN) && HasVehicleOnPos(tile, VEH_TRAIN, reinterpret_cast(tile), &TrainInWormholeTileEnum)) info.flags |= SF_TRAIN; + if (HasVehicleOnPos(GetOtherTunnelBridgeEnd(tile), VEH_TRAIN, reinterpret_cast((uintptr_t)tile), &TrainInWormholeTileEnum)) info.flags |= SF_TRAIN; + if (!(info.flags & SF_TRAIN) && HasVehicleOnPos(tile, VEH_TRAIN, reinterpret_cast((uintptr_t)tile), &TrainInWormholeTileEnum)) info.flags |= SF_TRAIN; } if (IsTunnelBridgeSignalSimulationExit(tile) && !_tbuset.Add(tile, INVALID_TRACKDIR)) { info.flags |= SF_FULL; @@ -458,9 +458,9 @@ static SigInfo ExploreSegment(Owner owner) } } if (!(info.flags & SF_TRAIN)) { - if (HasVehicleOnPos(tile, VEH_TRAIN, reinterpret_cast(tile), &TrainInWormholeTileEnum)) info.flags |= SF_TRAIN; + if (HasVehicleOnPos(tile, VEH_TRAIN, reinterpret_cast((uintptr_t)tile), &TrainInWormholeTileEnum)) info.flags |= SF_TRAIN; if (!(info.flags & SF_TRAIN) && IsTunnelBridgeSignalSimulationExit(tile)) { - if (HasVehicleOnPos(GetOtherTunnelBridgeEnd(tile), VEH_TRAIN, reinterpret_cast(tile), &TrainInWormholeTileEnum)) info.flags |= SF_TRAIN; + if (HasVehicleOnPos(GetOtherTunnelBridgeEnd(tile), VEH_TRAIN, reinterpret_cast((uintptr_t)tile), &TrainInWormholeTileEnum)) info.flags |= SF_TRAIN; } } continue; diff --git a/src/spritecache.cpp b/src/spritecache.cpp index c58d39eb18..7623c8c47e 100644 --- a/src/spritecache.cpp +++ b/src/spritecache.cpp @@ -273,7 +273,7 @@ uint GetSpriteCountForFile(const std::string &filename, SpriteID begin, SpriteID */ uint GetMaxSpriteID() { - return _spritecache.size(); + return (uint)_spritecache.size(); } static bool ResizeSpriteIn(SpriteLoader::Sprite *sprite, ZoomLevel src, ZoomLevel tgt) @@ -849,7 +849,7 @@ void IncreaseSpriteLRU() static void *AllocSprite(size_t mem_req) { assert(_last_sprite_allocation.GetPtr() == nullptr); - _last_sprite_allocation.Allocate(mem_req); + _last_sprite_allocation.Allocate((uint32)mem_req); return _last_sprite_allocation.GetPtr(); } diff --git a/src/station_base.h b/src/station_base.h index 89fe243ba0..dc011231a6 100644 --- a/src/station_base.h +++ b/src/station_base.h @@ -452,7 +452,7 @@ public: std::pair insert(FlowStat flow_stat) { StationID st = flow_stat.GetOrigin(); - auto res = this->flows_index.insert(std::pair(st, this->flows_storage.size())); + auto res = this->flows_index.insert(std::pair(st, (uint16)this->flows_storage.size())); if (res.second) { this->flows_storage.push_back(std::move(flow_stat)); } @@ -461,7 +461,7 @@ public: iterator insert(iterator hint, FlowStat flow_stat) { - auto res = this->flows_index.insert(hint.current, std::pair(flow_stat.GetOrigin(), this->flows_storage.size())); + auto res = this->flows_index.insert(hint.current, std::pair(flow_stat.GetOrigin(), (uint16)this->flows_storage.size())); if (res->second == this->flows_storage.size()) { this->flows_storage.push_back(std::move(flow_stat)); } diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index 8f96ad420f..1f23d69e92 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -4451,7 +4451,7 @@ uint MoveGoodsToStation(CargoID type, uint amount, SourceType source_type, Sourc }); uint to_deliver = amount - moving; - uint step_size = CeilDivT(to_deliver, used_stations.size()); + uint step_size = CeilDivT(to_deliver, (uint)used_stations.size()); for (uint i = 0; i < used_stations.size() && to_deliver > 0; i++) { uint delivery = std::min(to_deliver, step_size); used_stations[i].second += delivery; diff --git a/src/tbtr_template_gui_main.cpp b/src/tbtr_template_gui_main.cpp index f08dbc61ca..eda053bb19 100644 --- a/src/tbtr_template_gui_main.cpp +++ b/src/tbtr_template_gui_main.cpp @@ -578,7 +578,7 @@ public: this->groups.shrink_to_fit(); this->groups.RebuildDone(); - this->vscroll[0]->SetCount(groups.size()); + this->vscroll[0]->SetCount((uint)groups.size()); } void BuildTemplateGuiList() @@ -593,7 +593,7 @@ public: int left = r.left + WD_MATRIX_LEFT; int right = r.right - WD_MATRIX_RIGHT; int y = r.top; - int max = std::min(this->vscroll[0]->GetPosition() + this->vscroll[0]->GetCapacity(), this->groups.size()); + int max = std::min(this->vscroll[0]->GetPosition() + this->vscroll[0]->GetCapacity(), (int)this->groups.size()); /* Then treat all groups defined by/for the current company */ for (int i = this->vscroll[0]->GetPosition(); i < max; ++i) { @@ -651,7 +651,7 @@ public: int y = r.top; Scrollbar *draw_vscroll = vscroll[1]; - uint max = std::min(draw_vscroll->GetPosition() + draw_vscroll->GetCapacity(), this->templates.size()); + uint max = std::min(draw_vscroll->GetPosition() + draw_vscroll->GetCapacity(), (uint)this->templates.size()); const TemplateVehicle *v; for (uint i = draw_vscroll->GetPosition(); i < max; ++i) { diff --git a/src/tbtr_template_vehicle_func.cpp b/src/tbtr_template_vehicle_func.cpp index 97539dfae3..731d095394 100644 --- a/src/tbtr_template_vehicle_func.cpp +++ b/src/tbtr_template_vehicle_func.cpp @@ -97,7 +97,7 @@ void BuildTemplateGuiList(GUITemplateList *list, Scrollbar *vscroll, Owner oid, } list->RebuildDone(); - if (vscroll) vscroll->SetCount(list->size()); + if (vscroll) vscroll->SetCount((uint)list->size()); } Money CalculateOverallTemplateCost(const TemplateVehicle *tv) diff --git a/src/timetable_cmd.cpp b/src/timetable_cmd.cpp index 1dcad44542..58dec5f279 100644 --- a/src/timetable_cmd.cpp +++ b/src/timetable_cmd.cpp @@ -688,7 +688,7 @@ void UpdateSeparationOrder(Vehicle *v_start) const uint duration = v_start->orders.list->GetTotalDuration(); Vehicle *v = Vehicle::Get(progress_array.back().id); Vehicle *v_ahead = Vehicle::Get(progress_array.front().id); - uint behind_index = progress_array.size() - 1; + uint behind_index = (uint)progress_array.size() - 1; for (uint i = 0; i < progress_array.size(); i++) { const TimetableProgress &info_behind = progress_array[behind_index]; behind_index = i; diff --git a/src/timetable_gui.cpp b/src/timetable_gui.cpp index 981e105cd5..4bd0a5d7e5 100644 --- a/src/timetable_gui.cpp +++ b/src/timetable_gui.cpp @@ -284,7 +284,7 @@ struct TimetableWindow : Window { assert(HasBit(v->vehicle_flags, VF_TIMETABLE_STARTED)); bool travelling = (!(v->current_order.IsAnyLoadingType() || v->current_order.IsType(OT_WAITING)) || v->current_order.GetNonStopType() == ONSF_STOP_EVERYWHERE); - Ticks start_time = -v->current_order_time; + Ticks start_time = -(Ticks)v->current_order_time; if (v->cur_timetable_order_index != INVALID_VEH_ORDER_ID && v->cur_timetable_order_index != v->cur_real_order_index) { /* vehicle is taking a conditional order branch, adjust start time to compensate */ const Order *real_current_order = v->GetOrder(v->cur_real_order_index); diff --git a/src/town_gui.cpp b/src/town_gui.cpp index 61964c27f0..0406abe80a 100644 --- a/src/town_gui.cpp +++ b/src/town_gui.cpp @@ -1303,7 +1303,7 @@ public: uint NumHouseSets() const { - return this->house_sets.size() - 1; // last item is a terminator + return (uint)this->house_sets.size() - 1; // last item is a terminator } uint NumHousesInHouseSet(uint house_set) const @@ -1388,7 +1388,7 @@ public: } } /* put a terminator on the list to make counting easier */ - this->house_sets.push_back(this->size()); + this->house_sets.push_back((uint)this->size()); } }; @@ -1854,7 +1854,7 @@ struct SelectTownWindow : Window { { this->CreateNestedTree(); this->vscroll = this->GetScrollbar(WID_ST_SCROLLBAR); - this->vscroll->SetCount(this->towns.size()); + this->vscroll->SetCount((uint)this->towns.size()); this->FinishInitNested(); } diff --git a/src/tracerestrict.cpp b/src/tracerestrict.cpp index 47d25ecc81..50a9cd393b 100644 --- a/src/tracerestrict.cpp +++ b/src/tracerestrict.cpp @@ -381,11 +381,11 @@ void TraceRestrictProgram::Execute(const Train* v, const TraceRestrictProgramInp const TraceRestrictSlot *slot = TraceRestrictSlot::GetIfValid(GetTraceRestrictValue(item)); switch (static_cast(GetTraceRestrictAuxField(item))) { case TRSOCAF_OCCUPANTS: - result = TestCondition(slot != nullptr ? slot->occupants.size() : 0, condop, value); + result = TestCondition(slot != nullptr ? (uint)slot->occupants.size() : 0, condop, value); break; case TRSOCAF_REMAINING: - result = TestCondition(slot != nullptr ? slot->max_occupancy - slot->occupants.size() : 0, condop, value); + result = TestCondition(slot != nullptr ? slot->max_occupancy - (uint)slot->occupants.size() : 0, condop, value); break; default: @@ -1455,7 +1455,7 @@ CommandCost CmdProgramSignalTraceRestrict(TileIndex tile, DoCommandFlag flags, u } uint32 offset_limit_exclusive = ((type == TRDCT_INSERT_ITEM) ? 1 : 0); - if (prog) offset_limit_exclusive += prog->items.size(); + if (prog) offset_limit_exclusive += (uint)prog->items.size(); if (offset >= offset_limit_exclusive) { return_cmd_error(STR_TRACE_RESTRICT_ERROR_OFFSET_TOO_LARGE); diff --git a/src/tracerestrict_gui.cpp b/src/tracerestrict_gui.cpp index 42d2cd6804..45506cbb13 100644 --- a/src/tracerestrict_gui.cpp +++ b/src/tracerestrict_gui.cpp @@ -2370,7 +2370,7 @@ private: int GetItemCount(const TraceRestrictProgram *prog) const { if (prog) { - return 2 + prog->GetInstructionCount(); + return 2 + (int)prog->GetInstructionCount(); } else { return 2; } @@ -2987,7 +2987,7 @@ private: if (offset >= (TraceRestrictProgram::GetInstructionCount(items) + (replace ? 0 : 1))) return false; // off the end of the program - uint array_offset = TraceRestrictProgram::InstructionOffsetToArrayOffset(items, offset); + uint array_offset = (uint)TraceRestrictProgram::InstructionOffsetToArrayOffset(items, offset); if (replace) { items[array_offset] = item; } else { @@ -3010,7 +3010,7 @@ private: } /** - * Run GenericElseInsertionDryRun with an elif instruction + * Run GenericElseInsertionDr;yRun with an elif instruction */ bool ElseIfInsertionDryRun(bool replace) { @@ -3456,8 +3456,8 @@ public: this->BuildSlotList(this->owner); - this->slot_sb->SetCount(this->slots.size()); - this->vscroll->SetCount(this->vehgroups.size()); + this->slot_sb->SetCount((uint)this->slots.size()); + this->vscroll->SetCount((uint)this->vehgroups.size()); /* Disable the slot specific function when we select all vehicles */ this->SetWidgetsDisabledState(this->vli.index == ALL_TRAINS_TRACE_RESTRICT_SLOT_ID || _local_company != this->vli.company, @@ -3493,7 +3493,7 @@ public: case WID_TRSL_LIST_SLOTS: { int y1 = r.top + WD_FRAMERECT_TOP; - int max = std::min(this->slot_sb->GetPosition() + this->slot_sb->GetCapacity(), this->slots.size()); + int max = std::min(this->slot_sb->GetPosition() + this->slot_sb->GetCapacity(), (int)this->slots.size()); for (int i = this->slot_sb->GetPosition(); i < max; ++i) { const TraceRestrictSlot *slot = this->slots[i]; @@ -3997,7 +3997,7 @@ public: { this->BuildCounterList(); - this->sb->SetCount(this->ctrs.size()); + this->sb->SetCount((uint)this->ctrs.size()); /* Disable the counter specific functions when no counter is selected */ this->SetWidgetsDisabledState(this->selected == INVALID_TRACE_RESTRICT_COUNTER_ID || _local_company != this->ctr_company, @@ -4024,7 +4024,7 @@ public: switch (widget) { case WID_TRCL_LIST_COUNTERS: { int y1 = r.top + WD_FRAMERECT_TOP; - int max = std::min(this->sb->GetPosition() + this->sb->GetCapacity(), this->ctrs.size()); + int max = std::min(this->sb->GetPosition() + this->sb->GetCapacity(), (int)this->ctrs.size()); for (int i = this->sb->GetPosition(); i < max; ++i) { const TraceRestrictCounter *ctr = this->ctrs[i]; diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index da8c226bd7..2e0a813910 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -2472,12 +2472,12 @@ static bool TrainApproachingCrossing(TileIndex tile) DiagDirection dir = AxisToDiagDir(GetCrossingRailAxis(tile)); TileIndex tile_from = tile + TileOffsByDiagDir(dir); - if (HasVehicleOnPos(tile_from, VEH_TRAIN, reinterpret_cast(tile), &TrainApproachingCrossingEnum)) return true; + if (HasVehicleOnPos(tile_from, VEH_TRAIN, reinterpret_cast((uintptr_t)tile), &TrainApproachingCrossingEnum)) return true; dir = ReverseDiagDir(dir); tile_from = tile + TileOffsByDiagDir(dir); - return HasVehicleOnPos(tile_from, VEH_TRAIN, reinterpret_cast(tile), &TrainApproachingCrossingEnum); + return HasVehicleOnPos(tile_from, VEH_TRAIN, reinterpret_cast((uintptr_t)tile), &TrainApproachingCrossingEnum); } /** Check if the crossing should be closed @@ -2829,7 +2829,7 @@ void ReverseTrainDirection(Train *v) * Prevent setting the wrong signals by making wait_counter a non-integer multiple of TILE_SIZE. * Use a huge value so that the train will reverse again if there is another vehicle coming the other way. */ - t->wait_counter = static_cast(-(TILE_SIZE / 2)); + t->wait_counter = static_cast(-((int)TILE_SIZE / 2)); t->tunnel_bridge_signal_num = 0; } }; @@ -3264,7 +3264,7 @@ static int GetAndClearLastBridgeEntranceSetSignalIndex(TileIndex bridge_entrance auto it = _long_bridge_signal_sim_map.find(bridge_entrance); if (it != _long_bridge_signal_sim_map.end()) { LongBridgeSignalStorage &lbss = it->second; - size_t slot = lbss.signal_red_bits.size(); + uint slot = (uint)lbss.signal_red_bits.size(); while (slot > 0) { slot--; uint64 &slot_bits = lbss.signal_red_bits[slot]; diff --git a/src/tunnelbridge_cmd.cpp b/src/tunnelbridge_cmd.cpp index 1f1f37903a..9c498e2907 100644 --- a/src/tunnelbridge_cmd.cpp +++ b/src/tunnelbridge_cmd.cpp @@ -1803,7 +1803,7 @@ static void DrawBridgeSignalOnMiddlePart(const TileInfo *ti, TileIndex bridge_st sprite += SPR_ORIGINAL_SIGNALS_BASE + (position << 1); } else { /* All other signals are picked from add on sprites. */ - sprite += SPR_SIGNALS_BASE + (SIGTYPE_NORMAL - 1) * 16 + variant * 64 + (position << 1); + sprite += SPR_SIGNALS_BASE + ((int)SIGTYPE_NORMAL - 1) * 16 + variant * 64 + (position << 1); } AddSortableSpriteToDraw(sprite, PAL_NONE, x, y, 1, 1, TILE_HEIGHT, z, false, 0, 0, BB_Z_SEPARATOR); diff --git a/src/vehicle.cpp b/src/vehicle.cpp index fdd62d8ad3..995a6e0410 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -768,10 +768,10 @@ int GetAvailableFreeTilesInSignalledTunnelBridge(TileIndex entrance, TileIndex e checker.lowest_seen = INT_MAX; switch (checker.direction) { default: NOT_REACHED(); - case DIAGDIR_NE: checker.pos = -(TileX(tile) * TILE_SIZE); break; - case DIAGDIR_SE: checker.pos = (TileY(tile) * TILE_SIZE); break; - case DIAGDIR_SW: checker.pos = (TileX(tile) * TILE_SIZE); break; - case DIAGDIR_NW: checker.pos = -(TileY(tile) * TILE_SIZE); break; + case DIAGDIR_NE: checker.pos = -(int)(TileX(tile) * TILE_SIZE); break; + case DIAGDIR_SE: checker.pos = (TileY(tile) * TILE_SIZE); break; + case DIAGDIR_SW: checker.pos = (TileX(tile) * TILE_SIZE); break; + case DIAGDIR_NW: checker.pos = -(int)(TileY(tile) * TILE_SIZE); break; } FindVehicleOnPos(entrance, VEH_TRAIN, &checker, &GetAvailableFreeTilesInSignalledTunnelBridgeEnum); diff --git a/src/viewport.cpp b/src/viewport.cpp index 940e8b54dc..cec773c44a 100644 --- a/src/viewport.cpp +++ b/src/viewport.cpp @@ -1104,7 +1104,7 @@ void AddSortableSpriteToDraw(SpriteID image, PaletteID pal, int x, int y, int w, if (_vd.combine_sprites == SPRITE_COMBINE_PENDING) { _vd.combine_sprites = SPRITE_COMBINE_ACTIVE; - _vd.combine_psd_index = _vd.parent_sprites_to_draw.size() - 1; + _vd.combine_psd_index = (uint)_vd.parent_sprites_to_draw.size() - 1; _vd.combine_left = tmp_left; _vd.combine_right = right; _vd.combine_top = tmp_top; @@ -2337,7 +2337,7 @@ static void ViewportMapDrawVehicleRoute(const Viewport *vp) static inline void DrawRouteStep(const Viewport * const vp, const TileIndex tile, const RankOrderTypeList list) { if (tile == INVALID_TILE) return; - const uint step_count = list.size() > max_rank_order_type_count ? 1 : list.size(); + const uint step_count = list.size() > max_rank_order_type_count ? 1 : (uint)list.size(); const int x_pos = TileX(tile) * TILE_SIZE + TILE_SIZE / 2; const int y_pos = TileY(tile) * TILE_SIZE + TILE_SIZE / 2; Point pt = RemapCoords(x_pos, y_pos, 0); @@ -3648,7 +3648,7 @@ void MarkAllViewportsDirty(int left, int top, int right, int bottom, ViewportMar static void MarkRouteStepDirty(RouteStepsMap::const_iterator cit) { - const uint size = cit->second.size() > max_rank_order_type_count ? 1 : cit->second.size(); + const uint size = cit->second.size() > max_rank_order_type_count ? 1 : (uint)cit->second.size(); MarkRouteStepDirty(cit->first, size); } @@ -5342,10 +5342,10 @@ static HighLightStyle CalcPolyrailDrawstyle(Point pt, bool dragging) if (_current_snap_lock.x != -1) { snap_point = FindBestPolyline(pt, &_current_snap_lock, 1, &line); } else if (snap_mode == RSM_SNAP_TO_TILE) { - snap_point = FindBestPolyline(pt, _tile_snap_points.data(), _tile_snap_points.size(), &line); + snap_point = FindBestPolyline(pt, _tile_snap_points.data(), (uint)_tile_snap_points.size(), &line); } else { assert(snap_mode == RSM_SNAP_TO_RAIL); - snap_point = FindBestPolyline(pt, _rail_snap_points.data(), _rail_snap_points.size(), &line); + snap_point = FindBestPolyline(pt, _rail_snap_points.data(), (uint)_rail_snap_points.size(), &line); } if (snap_point == nullptr) {