diff --git a/src/departures.cpp b/src/departures.cpp index 8e9975fe03..133ea4e9d1 100644 --- a/src/departures.cpp +++ b/src/departures.cpp @@ -115,7 +115,7 @@ DepartureList* MakeDepartureList(StationID station, bool show_vehicle_types[5], } /* MAX_COMPANIES is probably the wrong thing to put here, but it works. GenerateVehicleSortList doesn't check the company when the type of list is VL_STATION_LIST (r20801). */ - if (!GenerateVehicleSortList(&vehicles, VehicleListIdentifier(VL_STATION_LIST, (VehicleType)(VEH_TRAIN + i), MAX_COMPANIES, station).Pack())) { + if (!GenerateVehicleSortList(&vehicles, VehicleListIdentifier(VL_STATION_LIST, (VehicleType)(VEH_TRAIN + i), MAX_COMPANIES, station))) { /* Something went wrong: panic! */ return result; } diff --git a/src/departures_gui.cpp b/src/departures_gui.cpp index 1bf83a6f43..c4ac0c5e4a 100644 --- a/src/departures_gui.cpp +++ b/src/departures_gui.cpp @@ -407,7 +407,7 @@ uint DeparturesWindow::GetMinWidth() const VehicleList vehicles; /* MAX_COMPANIES is probably the wrong thing to put here, but it works. GenerateVehicleSortList doesn't check the company when the type of list is VL_STATION_LIST (r20801). */ - if (!GenerateVehicleSortList(&vehicles, VehicleListIdentifier(VL_STATION_LIST, (VehicleType)(VEH_TRAIN + i), MAX_COMPANIES, station).Pack())) { + if (!GenerateVehicleSortList(&vehicles, VehicleListIdentifier(VL_STATION_LIST, (VehicleType)(VEH_TRAIN + i), MAX_COMPANIES, station))) { /* Something went wrong: panic! */ continue; } @@ -540,7 +540,7 @@ void DeparturesWindow::DrawDeparturesListItems(const Rect &r) const VehicleList vehicles; /* MAX_COMPANIES is probably the wrong thing to put here, but it works. GenerateVehicleSortList doesn't check the company when the type of list is VL_STATION_LIST (r20801). */ - if (!GenerateVehicleSortList(&vehicles, VehicleListIdentifier(VL_STATION_LIST, (VehicleType)(VEH_TRAIN + i), MAX_COMPANIES, station).Pack())) { + if (!GenerateVehicleSortList(&vehicles, VehicleListIdentifier(VL_STATION_LIST, (VehicleType)(VEH_TRAIN + i), MAX_COMPANIES, station))) { /* Something went wrong: panic! */ continue; } diff --git a/src/elrail.cpp b/src/elrail.cpp index 1927be03e5..ac36161617 100644 --- a/src/elrail.cpp +++ b/src/elrail.cpp @@ -89,7 +89,7 @@ static TrackBits GetRailTrackBitsUniversal(TileIndex t, byte *override) { switch (GetTileType(t)) { case MP_RAILWAY: - if (!HasCatenary(GetRailType(t))) return TRACK_BIT_NONE; + if (!HasRailCatenary(GetRailType(t))) return TRACK_BIT_NONE; switch (GetRailTileType(t)) { case RAIL_TILE_NORMAL: case RAIL_TILE_SIGNALS: return GetTrackBits(t); @@ -99,7 +99,7 @@ static TrackBits GetRailTrackBitsUniversal(TileIndex t, byte *override) break; case MP_TUNNELBRIDGE: - if (!HasCatenary(GetRailType(t))) return TRACK_BIT_NONE; + if (!HasRailCatenary(GetRailType(t))) return TRACK_BIT_NONE; if (override != NULL && (IsTunnel(t) || GetTunnelBridgeLength(t, GetOtherBridgeEnd(t)) > 0)) { *override = 1 << GetTunnelBridgeDirection(t); } @@ -107,12 +107,12 @@ static TrackBits GetRailTrackBitsUniversal(TileIndex t, byte *override) case MP_ROAD: if (!IsLevelCrossing(t)) return TRACK_BIT_NONE; - if (!HasCatenary(GetRailType(t))) return TRACK_BIT_NONE; + if (!HasRailCatenary(GetRailType(t))) return TRACK_BIT_NONE; return GetCrossingRailBits(t); case MP_STATION: if (!HasStationRail(t)) return TRACK_BIT_NONE; - if (!HasCatenary(GetRailType(t))) return TRACK_BIT_NONE; + if (!HasRailCatenary(GetRailType(t))) return TRACK_BIT_NONE; return TrackToTrackBits(GetRailStationTrack(t)); default: @@ -135,7 +135,7 @@ static TrackBits MaskWireBits(TileIndex t, TrackBits tracks) * axis that still display wires to preserve visual continuity. */ TileIndex next_tile = TileAddByDiagDir(t, d); RailType rt = GetTileRailType(next_tile); - if (rt == INVALID_RAILTYPE || !HasCatenary(rt) || + if (rt == INVALID_RAILTYPE || !HasRailCatenary(rt) || ((TrackStatusToTrackBits(GetTileTrackStatus(next_tile, TRANSPORT_RAIL, 0)) & DiagdirReachesTracks(d)) == TRACK_BIT_NONE && (!HasStationTileRail(next_tile) || GetRailStationAxis(next_tile) != DiagDirToAxis(d) || !CanStationTileHaveWires(next_tile)))) { neighbour_tdb |= DiagdirReachesTrackdirs(ReverseDiagDir(d)); @@ -241,7 +241,7 @@ static int GetPCPElevation(TileIndex tile, DiagDirection PCPpos) * * @param ti The Tileinfo to draw the tile for */ -void DrawCatenaryOnTunnel(const TileInfo *ti) +void DrawRailCatenaryOnTunnel(const TileInfo *ti) { /* xmin, ymin, xmax + 1, ymax + 1 of BB */ static const int _tunnel_wire_BB[4][4] = { @@ -255,7 +255,7 @@ void DrawCatenaryOnTunnel(const TileInfo *ti) SpriteID wire_base = GetWireBase(ti->tile); - const SortableSpriteStruct *sss = &CatenarySpriteData_Tunnel[dir]; + const SortableSpriteStruct *sss = &RailCatenarySpriteData_Tunnel[dir]; const int *BB_data = _tunnel_wire_BB[dir]; AddSortableSpriteToDraw( wire_base + sss->image_offset, PAL_NONE, ti->x + sss->x_offset, ti->y + sss->y_offset, @@ -270,7 +270,7 @@ void DrawCatenaryOnTunnel(const TileInfo *ti) * Draws wires and, if required, pylons on a given tile * @param ti The Tileinfo to draw the tile for */ -static void DrawCatenaryRailway(const TileInfo *ti) +static void DrawRailCatenaryRailway(const TileInfo *ti) { /* Pylons are placed on a tile edge, so we need to take into account * the track configuration of 2 adjacent tiles. trackconfig[0] stores the @@ -379,7 +379,7 @@ static void DrawCatenaryRailway(const TileInfo *ti) if (IsTileType(neighbour, MP_STATION) || IsTileType(neighbour, MP_ROAD)) tileh[TS_NEIGHBOUR] = SLOPE_FLAT; /* Read the foundations if they are present, and adjust the tileh */ - if (trackconfig[TS_NEIGHBOUR] != TRACK_BIT_NONE && IsTileType(neighbour, MP_RAILWAY) && HasCatenary(GetRailType(neighbour))) foundation = GetRailFoundation(tileh[TS_NEIGHBOUR], trackconfig[TS_NEIGHBOUR]); + if (trackconfig[TS_NEIGHBOUR] != TRACK_BIT_NONE && IsTileType(neighbour, MP_RAILWAY) && HasRailCatenary(GetRailType(neighbour))) foundation = GetRailFoundation(tileh[TS_NEIGHBOUR], trackconfig[TS_NEIGHBOUR]); if (IsBridgeTile(neighbour)) { foundation = GetBridgeFoundation(tileh[TS_NEIGHBOUR], DiagDirToAxis(GetTunnelBridgeDirection(neighbour))); } @@ -442,7 +442,7 @@ static void DrawCatenaryRailway(const TileInfo *ti) } } - /* The wire above the tunnel is drawn together with the tunnel-roof (see DrawCatenaryOnTunnel()) */ + /* The wire above the tunnel is drawn together with the tunnel-roof (see DrawRailCatenaryOnTunnel()) */ if (IsTunnelTile(ti->tile)) return; /* Don't draw a wire under a low bridge */ @@ -478,7 +478,7 @@ static void DrawCatenaryRailway(const TileInfo *ti) assert(PCPconfig != 0); // We have a pylon on neither end of the wire, that doesn't work (since we have no sprites for that) assert(!IsSteepSlope(tileh[TS_HOME])); - sss = &CatenarySpriteData[Wires[tileh_selector][t][PCPconfig]]; + sss = &RailCatenarySpriteData[Wires[tileh_selector][t][PCPconfig]]; /* * The "wire"-sprite position is inside the tile, i.e. 0 <= sss->?_offset < TILE_SIZE. @@ -498,7 +498,7 @@ static void DrawCatenaryRailway(const TileInfo *ti) * * @param ti The Tileinfo to draw the tile for */ -void DrawCatenaryOnBridge(const TileInfo *ti) +void DrawRailCatenaryOnBridge(const TileInfo *ti) { TileIndex end = GetSouthernBridgeEnd(ti->tile); TileIndex start = GetOtherBridgeEnd(end); @@ -511,15 +511,15 @@ void DrawCatenaryOnBridge(const TileInfo *ti) Axis axis = GetBridgeAxis(ti->tile); TLG tlg = GetTLG(ti->tile); - CatenarySprite offset = (CatenarySprite)(axis == AXIS_X ? 0 : WIRE_Y_FLAT_BOTH - WIRE_X_FLAT_BOTH); + RailCatenarySprite offset = (RailCatenarySprite)(axis == AXIS_X ? 0 : WIRE_Y_FLAT_BOTH - WIRE_X_FLAT_BOTH); if ((length % 2) && num == length) { /* Draw the "short" wire on the southern end of the bridge * only needed if the length of the bridge is odd */ - sss = &CatenarySpriteData[WIRE_X_FLAT_BOTH + offset]; + sss = &RailCatenarySpriteData[WIRE_X_FLAT_BOTH + offset]; } else { /* Draw "long" wires on all other tiles of the bridge (one pylon every two tiles) */ - sss = &CatenarySpriteData[WIRE_X_FLAT_SW + (num % 2) + offset]; + sss = &RailCatenarySpriteData[WIRE_X_FLAT_SW + (num % 2) + offset]; } height = GetBridgePixelHeight(end); @@ -558,14 +558,14 @@ void DrawCatenaryOnBridge(const TileInfo *ti) /** * Draws overhead wires and pylons for electric railways. * @param ti The TileInfo struct of the tile being drawn - * @see DrawCatenaryRailway + * @see DrawRailCatenaryRailway */ -void DrawCatenary(const TileInfo *ti) +void DrawRailCatenary(const TileInfo *ti) { switch (GetTileType(ti->tile)) { case MP_RAILWAY: if (IsRailDepot(ti->tile)) { - const SortableSpriteStruct *sss = &CatenarySpriteData_Depot[GetRailDepotDirection(ti->tile)]; + const SortableSpriteStruct *sss = &RailCatenarySpriteData_Depot[GetRailDepotDirection(ti->tile)]; SpriteID wire_base = GetWireBase(ti->tile); @@ -587,7 +587,7 @@ void DrawCatenary(const TileInfo *ti) default: return; } - DrawCatenaryRailway(ti); + DrawRailCatenaryRailway(ti); } bool SettingsDisableElrail(int32 p1) diff --git a/src/elrail_func.h b/src/elrail_func.h index 60cb782bbf..5cdae20c54 100644 --- a/src/elrail_func.h +++ b/src/elrail_func.h @@ -20,7 +20,7 @@ * Test if a rail type has catenary * @param rt Rail type to test */ -static inline bool HasCatenary(RailType rt) +static inline bool HasRailCatenary(RailType rt) { return HasBit(GetRailTypeInfo(rt)->flags, RTF_CATENARY); } @@ -29,14 +29,14 @@ static inline bool HasCatenary(RailType rt) * Test if we should draw rail catenary * @param rt Rail type to test */ -static inline bool HasCatenaryDrawn(RailType rt) +static inline bool HasRailCatenaryDrawn(RailType rt) { - return HasCatenary(rt) && !IsInvisibilitySet(TO_CATENARY) && !_settings_game.vehicle.disable_elrails; + return HasRailCatenary(rt) && !IsInvisibilitySet(TO_CATENARY) && !_settings_game.vehicle.disable_elrails; } -void DrawCatenary(const TileInfo *ti); -void DrawCatenaryOnTunnel(const TileInfo *ti); -void DrawCatenaryOnBridge(const TileInfo *ti); +void DrawRailCatenary(const TileInfo *ti); +void DrawRailCatenaryOnTunnel(const TileInfo *ti); +void DrawRailCatenaryOnBridge(const TileInfo *ti); bool SettingsDisableElrail(int32 p1); ///< _settings_game.disable_elrail callback diff --git a/src/group_cmd.cpp b/src/group_cmd.cpp index a3f1975555..5f09c1c1fe 100644 --- a/src/group_cmd.cpp +++ b/src/group_cmd.cpp @@ -447,7 +447,7 @@ CommandCost CmdCreateGroupFromList(TileIndex tile, DoCommandFlag flags, uint32 p { VehicleListIdentifier vli; VehicleList list; - if (!vli.Unpack(p1)) return CMD_ERROR; + if (!vli.UnpackIfValid(p1)) return CMD_ERROR; if (!IsCompanyBuildableVehicleType(vli.vtype)) return CMD_ERROR; if (!GenerateVehicleSortList(&list, vli)) return CMD_ERROR; diff --git a/src/lang/romanian.txt b/src/lang/romanian.txt index 632787d2af..71366d444d 100644 --- a/src/lang/romanian.txt +++ b/src/lang/romanian.txt @@ -1281,19 +1281,25 @@ STR_CONFIG_SETTING_POPULATION_IN_LABEL_HELPTEXT :Afișează popu STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS :Grosimea liniilor din grafice: {STRING} STR_CONFIG_SETTING_GRAPH_LINE_THICKNESS_HELPTEXT :Grosimea liniilor din grafice. O linie subțire este mai informativă, o linie mai groasă este mai ușor de văzut și are culorile mai usor de distins +STR_CONFIG_SETTING_LANDSCAPE :Peisaj: {STRING} +STR_CONFIG_SETTING_LANDSCAPE_HELPTEXT :Peisajele definesc scenariile de bază a jocului cu cerințe diferite pentru încărcături și dezvoltare a orașelor. NewGRF și scripturile de joc permit un control mai fin STR_CONFIG_SETTING_LAND_GENERATOR :Generator teren: {STRING} STR_CONFIG_SETTING_LAND_GENERATOR_ORIGINAL :Original STR_CONFIG_SETTING_LAND_GENERATOR_TERRA_GENESIS :TerraGenesis STR_CONFIG_SETTING_TERRAIN_TYPE :Tip teren: {STRING} +STR_CONFIG_SETTING_INDUSTRY_DENSITY :Densitatea industriei: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE :Distanța maximă de la marginea hărții pentru rafinării: {STRING} STR_CONFIG_SETTING_OIL_REF_EDGE_DISTANCE_HELPTEXT :Rafinăriile de petrol vor fi construite doar la marginea hărţii, sau pe coastă, în cazul harţilor insulare STR_CONFIG_SETTING_SNOWLINE_HEIGHT :Grosimea stratului de zăpadă: {STRING} STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN :Duritatea terenului (doar pt TerraGenesis) : {STRING} +STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_HELPTEXT :(Doar TerraGenesis) Alegeți frecvența dealurilor: Peisajele line au dealuri mai puține și mai întinse. Peisajele dure au multe dealuri și pot arăta repetitiv STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_SMOOTH :Foarte fin STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_SMOOTH :Fin STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_ROUGH :Dur STR_CONFIG_SETTING_ROUGHNESS_OF_TERRAIN_VERY_ROUGH :Foarte dur +STR_CONFIG_SETTING_VARIETY :Distribuția varietății: {STRING} STR_CONFIG_SETTING_TREE_PLACER :Algoritm amplasare arbori: {STRING} +STR_CONFIG_SETTING_TREE_PLACER_HELPTEXT :Alegeți distribuția copacilor pe hartă: 'Original' plantează copacii dispersați uniform, 'Îmbunătățit' îi plantează grupat STR_CONFIG_SETTING_TREE_PLACER_NONE :Niciunul STR_CONFIG_SETTING_TREE_PLACER_ORIGINAL :Original STR_CONFIG_SETTING_TREE_PLACER_IMPROVED :Îmbunătăţit @@ -1554,6 +1560,7 @@ STR_CONFIG_SETTING_SOFT_LIMIT :Numărul maxim STR_CONFIG_SETTING_SOFT_LIMIT_VALUE :{COMMA} STR_CONFIG_SETTING_SOFT_LIMIT_DISABLED :dezactivat STR_CONFIG_SETTING_ZOOM_MIN :Nivelul maxim de apropiere imagine: {STRING} +STR_CONFIG_SETTING_ZOOM_MIN_HELPTEXT :Nivelul maxim de apropiere a câmpului vizual. Luați aminte că nivelele înalte ridică necesarul de memorie STR_CONFIG_SETTING_ZOOM_MAX :Nivelul maxim de îndepărtare imagine: {STRING} STR_CONFIG_SETTING_ZOOM_LVL_MIN :x4 STR_CONFIG_SETTING_ZOOM_LVL_IN_2X :x2 @@ -1581,7 +1588,9 @@ STR_CONFIG_SETTING_DISTRIBUTION_MANUAL :manual STR_CONFIG_SETTING_DISTRIBUTION_ASYMMETRIC :asimetric STR_CONFIG_SETTING_DISTRIBUTION_SYMMETRIC :simetric STR_CONFIG_SETTING_DISTRIBUTION_PAX :Modalitatea de distribuire a pasagerilor: {STRING} +STR_CONFIG_SETTING_DISTRIBUTION_PAX_HELPTEXT :"simetric" înseamnă că aproximativ același număr de pasageri va fi transportat din stația A spre stația B, precum de la B la A. "asimetric" presupune transportul unui număr arbitrar de pasageri în fiecare direcție. "manual" înseamnă că repartizarea pasagerilor nu va fi automatizată. STR_CONFIG_SETTING_DISTRIBUTION_MAIL :Modalitatea de distribuire a poştei: {STRING} +STR_CONFIG_SETTING_DISTRIBUTION_MAIL_HELPTEXT :"simetric" înseamnă că aproximativ aceeași cantitate de poștă va fi expediată din stația A spre stația B, precum de la B la A. "asimetric" presupune expedierea de cantități arbitrare de poștă în fiecare direcție. "manual" înseamnă că repartizarea poștei nu va fi automatizată. STR_CONFIG_SETTING_DISTRIBUTION_ARMOURED :Modalitatea de distribuire pentru clasa de cargo BLINDAT: {STRING} STR_CONFIG_SETTING_DISTRIBUTION_DEFAULT :Modalitatea de distribuire pentru alte clase de cargo: {STRING} STR_CONFIG_SETTING_LINKGRAPH_ACCURACY :Acurateţea distribuţiei: {STRING} @@ -1628,9 +1637,15 @@ STR_CONFIG_SETTING_LOCALISATION_UNITS_HEIGHT_SI :SI (m) STR_CONFIG_SETTING_LOCALISATION :{ORANGE}Localizare STR_CONFIG_SETTING_SOUND :{ORANGE}Efecte sonore STR_CONFIG_SETTING_INTERFACE :{ORANGE}Interfaţă +STR_CONFIG_SETTING_INTERFACE_VIEWPORTS :{ORANGE}Câmpuri vizuale STR_CONFIG_SETTING_INTERFACE_CONSTRUCTION :{ORANGE}Construcţie +STR_CONFIG_SETTING_ADVISORS :{ORANGE}Știri / Consilieri +STR_CONFIG_SETTING_COMPANY :{ORANGE}Companie STR_CONFIG_SETTING_VEHICLES :{ORANGE}Vehicule STR_CONFIG_SETTING_VEHICLES_ROUTING :{ORANGE}Direcţionare +STR_CONFIG_SETTING_ACCIDENTS :{ORANGE}Dezastre / Accidente +STR_CONFIG_SETTING_GENWORLD :{ORANGE}Generare lume +STR_CONFIG_SETTING_ENVIRONMENT :{ORANGE}Mediu STR_CONFIG_SETTING_ENVIRONMENT_TOWNS :{ORANGE}Oraşe STR_CONFIG_SETTING_ENVIRONMENT_INDUSTRIES :{ORANGE}Industrii STR_CONFIG_SETTING_ENVIRONMENT_CARGODIST :{ORANGE}Distribuţie cargo @@ -2539,6 +2554,7 @@ STR_LAND_AREA_INFORMATION_NEWGRF_NAME :{BLACK}NewGRF: STR_LAND_AREA_INFORMATION_CARGO_ACCEPTED :{BLACK}Încărcături acceptate: {LTBLUE} STR_LAND_AREA_INFORMATION_CARGO_EIGHTS :({COMMA}/8 {STRING}) STR_LANG_AREA_INFORMATION_RAIL_SPEED_LIMIT :{BLACK}Limită viteză pe calea ferată: {LTBLUE}{VELOCITY} +STR_LANG_AREA_INFORMATION_ROAD_SPEED_LIMIT :{BLACK}Viteza limită a drumului: {LTBLUE}{VELOCITY} # Description of land area of different tiles STR_LAI_CLEAR_DESCRIPTION_ROCKS :Stânci @@ -2654,6 +2670,7 @@ STR_SAVELOAD_SAVE_BUTTON :{BLACK}Salveaz STR_SAVELOAD_SAVE_TOOLTIP :{BLACK}Salvează cu numele selectat jocul curent STR_SAVELOAD_LOAD_BUTTON :{BLACK}Încarcă STR_SAVELOAD_LOAD_TOOLTIP :{BLACK}Încarcă salvarea selectată +STR_SAVELOAD_LOAD_HEIGHTMAP_TOOLTIP :{BLACK}Încarcă harta selectată STR_SAVELOAD_DETAIL_CAPTION :{BLACK}Detalii joc STR_SAVELOAD_DETAIL_NOT_AVAILABLE :{BLACK}Nicio informaţie disponibilă STR_SAVELOAD_DETAIL_COMPANY_INDEX :{SILVER}{COMMA}: {WHITE}{STRING} @@ -2756,6 +2773,8 @@ STR_NEWGRF_SETTINGS_MOVEUP :{BLACK}Mută î STR_NEWGRF_SETTINGS_MOVEUP_TOOLTIP :{BLACK}Mută fişierul NewGRF selectat mai sus în listă STR_NEWGRF_SETTINGS_MOVEDOWN :{BLACK}Mută în jos STR_NEWGRF_SETTINGS_MOVEDOWN_TOOLTIP :{BLACK}Mută fişierul NewGRF selectat mai jos în listă +STR_NEWGRF_SETTINGS_UPGRADE :{BLACK}Upgrade +STR_NEWGRF_SETTINGS_UPGRADE_TOOLTIP :{BLACK}Actualizați fișierele NewGRF pentru care aveți o versiune mai nouă instalată STR_NEWGRF_SETTINGS_FILE_TOOLTIP :{BLACK}O listă a fişierelor NewGRF instalate STR_NEWGRF_SETTINGS_SET_PARAMETERS :{BLACK}Setează parametri @@ -2781,6 +2800,9 @@ STR_NEWGRF_SETTINGS_DISABLED :{RED}Dezactivat STR_NEWGRF_SETTINGS_INCOMPATIBLE :{RED}Incompatibil cu această versiune de OpenTTD # NewGRF save preset window +STR_SAVE_PRESET_CANCEL :{BLACK}Anulează +STR_SAVE_PRESET_CANCEL_TOOLTIP :{BLACK}Nu schimba setarea implicită +STR_SAVE_PRESET_SAVE_TOOLTIP :{BLACK}Salvează setarea pe numele selectat # NewGRF parameters window STR_NEWGRF_PARAMETERS_CAPTION :{WHITE}Schimbă parametrii NewGRF @@ -2811,7 +2833,7 @@ STR_SPRITE_ALIGNER_GOTO_TOOLTIP :{BLACK}Mergi la STR_SPRITE_ALIGNER_PREVIOUS_BUTTON :{BLACK}Imaginea precedentă STR_SPRITE_ALIGNER_PREVIOUS_TOOLTIP :{BLACK}Mergi la precedenta imagine normală, sărind peste pseudo-imagini, recolorări sau fonturi şi reporneşte când s-a ajuns la sfârşit STR_SPRITE_ALIGNER_SPRITE_TOOLTIP :{BLACK}Reprezentarea imaginii curente. Aliniamentul este ignorat -STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Mişcă imaginea schimbând distanţele pe axele X şi Y +STR_SPRITE_ALIGNER_MOVE_TOOLTIP :{BLACK}Mișcă imaginea schimbând distanțele pe axele X şi Y. Ctrl+Clic pentru mutarea imaginii câte opt unități la un pas STR_SPRITE_ALIGNER_RESET_BUTTON :{BLACK}Resetează relativele STR_SPRITE_ALIGNER_RESET_TOOLTIP :{BLACK}Resetază limitele relative actuale STR_SPRITE_ALIGNER_OFFSETS_ABS :{BLACK}Limita X: {NUM}, Limita Y: {NUM} (Absolut) @@ -3827,11 +3849,14 @@ STR_TIMETABLE_ORDER_VIEW_TOOLTIP :{BLACK}Schimba STR_TIMETABLE_TOOLTIP :{BLACK}Orar - click pe un ordin pentru a-l selecta STR_TIMETABLE_NO_TRAVEL :NU este calatorie -STR_TIMETABLE_NOT_TIMETABLEABLE :Călătorie (automat; orar generat de următorul ordin manual) +STR_TIMETABLE_NOT_TIMETABLEABLE :Călătorie (automat; programată după următoarea comandă manuală) STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Calatorie (fara orar) -STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Mergi cu maxim {2:VELOCITY} (fără planificare) +STR_TIMETABLE_TRAVEL_NOT_TIMETABLED_SPEED :Călătoriți (neplanificat) cu maxim {2:VELOCITY} STR_TIMETABLE_TRAVEL_FOR :Calatorii pentru {STRING} STR_TIMETABLE_TRAVEL_FOR_SPEED :Mergi către {STRING} cu maxim {VELOCITY} +STR_TIMETABLE_TRAVEL_FOR_ESTIMATED :Călătorie (pentru {STRING}, neplanificată) +STR_TIMETABLE_TRAVEL_FOR_SPEED_ESTIMATED :Călătoriți (pentru {STRING}, neprogramat) cu cel mult {VELOCITY} +STR_TIMETABLE_AND_TRAVEL_FOR_ESTIMATED :(călătorie pentru {STRING}, neprogramată) STR_TIMETABLE_STAY_FOR :şi opreşte pentru {STRING} STR_TIMETABLE_AND_TRAVEL_FOR :şi călătoreşte pentru {STRING} STR_TIMETABLE_DAYS :{COMMA} zi{P "" le} @@ -3960,6 +3985,8 @@ STR_AI_SETTINGS_START_DELAY :Perioada (în z STR_TEXTFILE_README_CAPTION :{WHITE}{STRING}, fișier readme al {STRING} STR_TEXTFILE_CHANGELOG_CAPTION :{WHITE}{STRING}, lista de modificări a {STRING} STR_TEXTFILE_LICENCE_CAPTION :{WHITE}{STRING}, licența fișierului {STRING} +STR_TEXTFILE_WRAP_TEXT :{WHITE}Încadrează textul +STR_TEXTFILE_WRAP_TEXT_TOOLTIP :{BLACK}Încadrează textul ferestrei ca să fie vizibil integral, fără derulare STR_TEXTFILE_VIEW_README :{BLACK}Vezi fișierul readme STR_TEXTFILE_VIEW_CHANGELOG :{BLACK}Listă modificări STR_TEXTFILE_VIEW_LICENCE :{BLACK}Licenţă diff --git a/src/newgrf.cpp b/src/newgrf.cpp index ce1c6ff079..5352ae82ab 100644 --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -5587,7 +5587,7 @@ static const Action5Type _action5_types[] = { /* 0x02 */ { A5BLOCK_INVALID, 0, 0, 0, "Type 0x02" }, /* 0x03 */ { A5BLOCK_INVALID, 0, 0, 0, "Type 0x03" }, /* 0x04 */ { A5BLOCK_ALLOW_OFFSET, SPR_SIGNALS_BASE, 1, PRESIGNAL_SEMAPHORE_AND_PBS_SPRITE_COUNT, "Signal graphics" }, - /* 0x05 */ { A5BLOCK_ALLOW_OFFSET, SPR_ELRAIL_BASE, 1, ELRAIL_SPRITE_COUNT, "Catenary graphics" }, + /* 0x05 */ { A5BLOCK_ALLOW_OFFSET, SPR_ELRAIL_BASE, 1, ELRAIL_SPRITE_COUNT, "Rail catenary graphics" }, /* 0x06 */ { A5BLOCK_ALLOW_OFFSET, SPR_SLOPES_BASE, 1, NORMAL_AND_HALFTILE_FOUNDATION_SPRITE_COUNT, "Foundation graphics" }, /* 0x07 */ { A5BLOCK_INVALID, 0, 75, 0, "TTDP GUI graphics" }, // Not used by OTTD. /* 0x08 */ { A5BLOCK_ALLOW_OFFSET, SPR_CANALS_BASE, 1, CANALS_SPRITE_COUNT, "Canal graphics" }, diff --git a/src/rail_cmd.cpp b/src/rail_cmd.cpp index 3982141ee9..84fea28f9a 100644 --- a/src/rail_cmd.cpp +++ b/src/rail_cmd.cpp @@ -2609,7 +2609,7 @@ static void DrawTile_Track(TileInfo *ti) if (HasBit(_display_opt, DO_FULL_DETAIL)) DrawTrackDetails(ti, rti); - if (HasCatenaryDrawn(GetRailType(ti->tile))) DrawCatenary(ti); + if (HasRailCatenaryDrawn(GetRailType(ti->tile))) DrawRailCatenary(ti); if (HasSignals(ti->tile)) DrawSignals(ti->tile, rails, rti); } else { @@ -2684,7 +2684,7 @@ static void DrawTile_Track(TileInfo *ti) int depot_sprite = GetCustomRailSprite(rti, ti->tile, RTSG_DEPOT); relocation = depot_sprite != 0 ? depot_sprite - SPR_RAIL_DEPOT_SE_1 : rti->GetRailtypeSpriteOffset(); - if (HasCatenaryDrawn(GetRailType(ti->tile))) DrawCatenary(ti); + if (HasRailCatenaryDrawn(GetRailType(ti->tile))) DrawRailCatenary(ti); DrawRailTileSeq(ti, dts, TO_BUILDINGS, relocation, 0, _drawtile_track_palette); } diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index 2e14cda517..f2642fdbdb 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -1191,7 +1191,7 @@ static bool DrawRoadAsSnowDesert(TileIndex tile, Roadside roadside) * @param ti information about the tile (slopes, height etc) * @param tram the roadbits for the tram */ -void DrawTramCatenary(const TileInfo *ti, RoadBits tram) +void DrawRoadCatenary(const TileInfo *ti, RoadBits tram) { /* Do not draw catenary if it is invisible */ if (IsInvisibilitySet(TO_CATENARY)) return; @@ -1298,7 +1298,7 @@ static void DrawRoadBits(TileInfo *ti) return; } - if (tram != ROAD_NONE) DrawTramCatenary(ti, tram); + if (tram != ROAD_NONE) DrawRoadCatenary(ti, tram); /* Return if full detail is disabled, or we are zoomed fully out. */ if (!HasBit(_display_opt, DO_FULL_DETAIL) || _cur_dpi->zoom > ZOOM_LVL_DETAIL) return; @@ -1388,9 +1388,9 @@ static void DrawTile_Road(TileInfo *ti) if (HasTileRoadType(ti->tile, ROADTYPE_TRAM)) { DrawGroundSprite(SPR_TRAMWAY_OVERLAY + (GetCrossingRoadAxis(ti->tile) ^ 1), pal); - DrawTramCatenary(ti, GetCrossingRoadBits(ti->tile)); + DrawRoadCatenary(ti, GetCrossingRoadBits(ti->tile)); } - if (HasCatenaryDrawn(GetRailType(ti->tile))) DrawCatenary(ti); + if (HasRailCatenaryDrawn(GetRailType(ti->tile))) DrawRailCatenary(ti); break; } diff --git a/src/road_internal.h b/src/road_internal.h index c8cae84224..8da909e94a 100644 --- a/src/road_internal.h +++ b/src/road_internal.h @@ -19,6 +19,6 @@ RoadBits CleanUpRoadBits(const TileIndex tile, RoadBits org_rb); CommandCost CheckAllowRemoveRoad(TileIndex tile, RoadBits remove, Owner owner, RoadType rt, DoCommandFlag flags, bool town_check = true); -void DrawTramCatenary(const TileInfo *ti, RoadBits tram); +void DrawRoadCatenary(const TileInfo *ti, RoadBits tram); #endif /* ROAD_INTERNAL_H */ diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp index a3f62fedbe..1d878d2ee8 100644 --- a/src/station_cmd.cpp +++ b/src/station_cmd.cpp @@ -3024,12 +3024,12 @@ draw_default_foundation: } } - if (HasStationRail(ti->tile) && HasCatenaryDrawn(GetRailType(ti->tile))) DrawCatenary(ti); + if (HasStationRail(ti->tile) && HasRailCatenaryDrawn(GetRailType(ti->tile))) DrawRailCatenary(ti); if (HasBit(roadtypes, ROADTYPE_TRAM)) { Axis axis = GetRoadStopDir(ti->tile) == DIAGDIR_NE ? AXIS_X : AXIS_Y; DrawGroundSprite((HasBit(roadtypes, ROADTYPE_ROAD) ? SPR_TRAMWAY_OVERLAY : SPR_TRAMWAY_TRAM) + (axis ^ 1), PAL_NONE); - DrawTramCatenary(ti, axis == AXIS_X ? ROAD_X : ROAD_Y); + DrawRoadCatenary(ti, axis == AXIS_X ? ROAD_X : ROAD_Y); } if (IsRailWaypoint(ti->tile)) { diff --git a/src/table/elrail_data.h b/src/table/elrail_data.h index 156f0e9413..102ad42644 100644 --- a/src/table/elrail_data.h +++ b/src/table/elrail_data.h @@ -331,7 +331,7 @@ static const uint ELRAIL_ELEVATION = 10; /** Wires that a draw one level higher than the north corner. */ static const uint ELRAIL_ELEVRAISE = ELRAIL_ELEVATION + TILE_HEIGHT; -static const SortableSpriteStruct CatenarySpriteData[] = { +static const SortableSpriteStruct RailCatenarySpriteData[] = { /* X direction * Flat tiles: * Wires */ @@ -392,14 +392,14 @@ static const SortableSpriteStruct CatenarySpriteData[] = { { WSO_EW_E, 15, 8, 3, 3, 1, ELRAIL_ELEVATION } //!33: LOWER trackbit wire, pylon on both ends }; -static const SortableSpriteStruct CatenarySpriteData_Depot[] = { +static const SortableSpriteStruct RailCatenarySpriteData_Depot[] = { { WSO_ENTRANCE_NE, 0, 7, 15, 1, 1, ELRAIL_ELEVATION }, //! Wire for NE depot exit { WSO_ENTRANCE_SE, 7, 0, 1, 15, 1, ELRAIL_ELEVATION }, //! Wire for SE depot exit { WSO_ENTRANCE_SW, 0, 7, 15, 1, 1, ELRAIL_ELEVATION }, //! Wire for SW depot exit { WSO_ENTRANCE_NW, 7, 0, 1, 15, 1, ELRAIL_ELEVATION } //! Wire for NW depot exit }; -static const SortableSpriteStruct CatenarySpriteData_Tunnel[] = { +static const SortableSpriteStruct RailCatenarySpriteData_Tunnel[] = { { WSO_ENTRANCE_NE, 0, 7, 15, 1, 1, ELRAIL_ELEVATION }, //! Wire for NE tunnel exit { WSO_ENTRANCE_SE, 7, 0, 1, 15, 1, ELRAIL_ELEVATION }, //! Wire for SE tunnel exit { WSO_ENTRANCE_SW, 0, 7, 15, 1, 1, ELRAIL_ELEVATION }, //! Wire for SW tunnel exit @@ -419,7 +419,7 @@ static const SortableSpriteStruct CatenarySpriteData_Tunnel[] = { *
  • Position of the Pylon relative to the track
  • *
  • Position of the Pylon inside the tile
  • */ -enum CatenarySprite { +enum RailCatenarySprite { WIRE_X_FLAT_SW, WIRE_X_FLAT_NE, WIRE_X_FLAT_BOTH, @@ -471,7 +471,7 @@ enum CatenarySprite { * c) the second * d) both * PCP exists.*/ -static const CatenarySprite Wires[5][TRACK_END][4] = { +static const RailCatenarySprite Wires[5][TRACK_END][4] = { { // Tileh == 0 {INVALID_CATENARY, WIRE_X_FLAT_NE, WIRE_X_FLAT_SW, WIRE_X_FLAT_BOTH}, {INVALID_CATENARY, WIRE_Y_FLAT_SE, WIRE_Y_FLAT_NW, WIRE_Y_FLAT_BOTH}, diff --git a/src/tunnelbridge_cmd.cpp b/src/tunnelbridge_cmd.cpp index dec05a34fb..9c8feb8ec5 100644 --- a/src/tunnelbridge_cmd.cpp +++ b/src/tunnelbridge_cmd.cpp @@ -1357,14 +1357,14 @@ static void DrawTile_TunnelBridge(TileInfo *ti) } } - if (HasCatenaryDrawn(GetRailType(ti->tile))) { + if (HasRailCatenaryDrawn(GetRailType(ti->tile))) { /* Maybe draw pylons on the entry side */ - DrawCatenary(ti); + DrawRailCatenary(ti); catenary = true; StartSpriteCombine(); /* Draw wire above the ramp */ - DrawCatenaryOnTunnel(ti); + DrawRailCatenaryOnTunnel(ti); } } @@ -1485,8 +1485,8 @@ static void DrawTile_TunnelBridge(TileInfo *ti) } EndSpriteCombine(); - if (HasCatenaryDrawn(GetRailType(ti->tile))) { - DrawCatenary(ti); + if (HasRailCatenaryDrawn(GetRailType(ti->tile))) { + DrawRailCatenary(ti); } } @@ -1539,7 +1539,7 @@ void DrawBridgeMiddle(const TileInfo *ti) { /* Sectional view of bridge bounding boxes: * - * 1 2 1,2 = SpriteCombine of Bridge front/(back&floor) and TramCatenary + * 1 2 1,2 = SpriteCombine of Bridge front/(back&floor) and RoadCatenary * 1 2 3 = empty helper BB * 1 7 2 4,5 = pillars under higher bridges * 1 6 88888 6 2 6 = elrail-pylons @@ -1639,8 +1639,8 @@ void DrawBridgeMiddle(const TileInfo *ti) EndSpriteCombine(); - if (HasCatenaryDrawn(GetRailType(rampsouth))) { - DrawCatenaryOnBridge(ti); + if (HasRailCatenaryDrawn(GetRailType(rampsouth))) { + DrawRailCatenaryOnBridge(ti); } if (IsTunnelBridgeWithSignalSimulation(rampsouth)) { IsTunnelBridgeSignalSimulationExit(rampsouth) ? DrawBrigeSignalOnMiddlePart(ti, rampnorth, z): DrawBrigeSignalOnMiddlePart(ti, rampsouth, z); diff --git a/src/vehicle_cmd.cpp b/src/vehicle_cmd.cpp index fbf17639d4..476cdbd66a 100644 --- a/src/vehicle_cmd.cpp +++ b/src/vehicle_cmd.cpp @@ -663,7 +663,7 @@ CommandCost CmdMassStartStopVehicle(TileIndex tile, DoCommandFlag flags, uint32 bool vehicle_list_window = HasBit(p1, 1); VehicleListIdentifier vli; - if (!vli.Unpack(p2)) return CMD_ERROR; + if (!vli.UnpackIfValid(p2)) return CMD_ERROR; if (!IsCompanyBuildableVehicleType(vli.vtype)) return CMD_ERROR; if (vehicle_list_window) { @@ -1531,7 +1531,7 @@ CommandCost CmdSendVehicleToDepot(TileIndex tile, DoCommandFlag flags, uint32 p1 if (p1 & DEPOT_MASS_SEND) { /* Mass goto depot requested */ VehicleListIdentifier vli; - if (!vli.Unpack(p2)) return CMD_ERROR; + if (!vli.UnpackIfValid(p2)) return CMD_ERROR; return SendAllVehiclesToDepot(flags, (p1 & DEPOT_SERVICE) != 0, vli); } diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index da16986513..ab49326859 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -1553,9 +1553,9 @@ private: StringID GetChangeOrderStringID() const { - if (VehicleListIdentifier(this->window_number).type == VL_STATION_LIST) { + if (VehicleListIdentifier::UnPack(this->window_number).type == VL_STATION_LIST) { return (Station::Get(this->vli.index)->facilities & FACIL_WAYPOINT) ? STR_VEHICLE_LIST_CHANGE_ORDER_WAYPOINT : STR_VEHICLE_LIST_CHANGE_ORDER_STATION; - } else if (VehicleListIdentifier(this->window_number).type == VL_DEPOT_LIST) { + } else if (VehicleListIdentifier::UnPack(this->window_number).type == VL_DEPOT_LIST) { return STR_VEHICLE_LIST_CHANGE_ORDER_TRAIN_DEPOT + this->vli.vtype; } else { return 0; @@ -1758,7 +1758,7 @@ public: break; case WID_VL_MANAGE_VEHICLES_DROPDOWN: { - DropDownList *list = this->BuildActionDropdownList(VehicleListIdentifier(this->window_number).type == VL_STANDARD, false, + DropDownList *list = this->BuildActionDropdownList(VehicleListIdentifier::UnPack(this->window_number).type == VL_STANDARD, false, this->vli.vtype == VEH_TRAIN, this->GetChangeOrderStringID(), true); ShowDropDownList(this, list, 0, WID_VL_MANAGE_VEHICLES_DROPDOWN); break; diff --git a/src/vehicle_gui_base.h b/src/vehicle_gui_base.h index e0151f0c3b..24a2543a2d 100644 --- a/src/vehicle_gui_base.h +++ b/src/vehicle_gui_base.h @@ -41,7 +41,7 @@ struct BaseVehicleListWindow : public Window { static const StringID vehicle_sorter_names[]; static GUIVehicleList::SortFunction * const vehicle_sorter_funcs[]; - BaseVehicleListWindow(WindowDesc *desc, WindowNumber wno) : Window(desc), vli(wno) + BaseVehicleListWindow(WindowDesc *desc, WindowNumber wno) : Window(desc), vli(VehicleListIdentifier::UnPack(wno)) { this->vehicles.SetSortFuncs(this->vehicle_sorter_funcs); } diff --git a/src/vehiclelist.cpp b/src/vehiclelist.cpp index c063ae5698..1880463013 100644 --- a/src/vehiclelist.cpp +++ b/src/vehiclelist.cpp @@ -37,7 +37,7 @@ uint32 VehicleListIdentifier::Pack() const * @param data The data to unpack. * @return true iff the data was valid (enough). */ -bool VehicleListIdentifier::Unpack(uint32 data) +bool VehicleListIdentifier::UnpackIfValid(uint32 data) { byte c = GB(data, 28, 4); this->company = c == 0xF ? OWNER_NONE : (CompanyID)c; @@ -52,10 +52,12 @@ bool VehicleListIdentifier::Unpack(uint32 data) * Decode a packed vehicle list identifier into a new one. * @param data The data to unpack. */ -VehicleListIdentifier::VehicleListIdentifier(uint32 data) +/* static */ VehicleListIdentifier VehicleListIdentifier::UnPack(uint32 data) { - bool ret = this->Unpack(data); + VehicleListIdentifier result; + bool ret = result.UnpackIfValid(data); assert(ret); + return result; } /** diff --git a/src/vehiclelist.h b/src/vehiclelist.h index c96fb692ae..996c8c007f 100644 --- a/src/vehiclelist.h +++ b/src/vehiclelist.h @@ -35,7 +35,8 @@ struct VehicleListIdentifier { uint32 index; ///< A vehicle list type specific index. uint32 Pack() const; - bool Unpack(uint32 data); + bool UnpackIfValid(uint32 data); + static VehicleListIdentifier UnPack(uint32 data); /** * Create a simple vehicle list. @@ -47,7 +48,7 @@ struct VehicleListIdentifier { VehicleListIdentifier(VehicleListType type, VehicleType vtype, CompanyID company, uint index = 0) : type(type), vtype(vtype), company(company), index(index) {} - VehicleListIdentifier(uint32 data = 0); + VehicleListIdentifier() : type(), vtype(), company(), index() {} }; /** A list of vehicles. */