Merge branch 'departure-boards' into jgrpp
VehicleListIdentifier API changes. # Conflicts: # src/departures.cpp # src/vehicle_gui.cpp
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
@@ -407,7 +407,7 @@ uint DeparturesWindow<Twaypoint>::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<Twaypoint>::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;
|
||||
}
|
||||
|
@@ -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)
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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ţă
|
||||
|
@@ -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" },
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
|
@@ -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 */
|
||||
|
@@ -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)) {
|
||||
|
@@ -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[] = {
|
||||
* <li>Position of the Pylon relative to the track</li>
|
||||
* <li>Position of the Pylon inside the tile</li></ol>
|
||||
*/
|
||||
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},
|
||||
|
@@ -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);
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
|
@@ -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;
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@@ -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. */
|
||||
|
Reference in New Issue
Block a user