(svn r12673) [NoAI] -Sync: with trunk r12596:12672. Note that due to the order rewrite AIOrder.ChangeOrder does currently not work as expected.
--- a/projects/openttd_vs80.vcproj Tue Apr 08 11:54:53 2008 +0000
+++ b/projects/openttd_vs80.vcproj Sat Apr 12 21:38:49 2008 +0000
@@ -1196,6 +1196,10 @@
>
</File>
<File
+ RelativePath=".\..\src\oldpool_func.h"
+ >
+ </File>
+ <File
RelativePath=".\..\src\openttd.h"
>
</File>
--- a/projects/openttd_vs90.vcproj Tue Apr 08 11:54:53 2008 +0000
+++ b/projects/openttd_vs90.vcproj Sat Apr 12 21:38:49 2008 +0000
@@ -1193,6 +1193,10 @@
>
</File>
<File
+ RelativePath=".\..\src\oldpool_func.h"
+ >
+ </File>
+ <File
RelativePath=".\..\src\openttd.h"
>
</File>
--- a/source.list Tue Apr 08 11:54:53 2008 +0000
+++ b/source.list Sat Apr 12 21:38:49 2008 +0000
@@ -220,6 +220,7 @@
sound/null_s.h
video/null_v.h
oldpool.h
+oldpool_func.h
openttd.h
order_base.h
order_func.h
--- a/src/ai/api/ai_order.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/ai/api/ai_order.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -84,16 +84,16 @@
for (uint i = 0; i < order_id; i++) order = order->next;
AIOrderFlags order_flags= AIOF_NONE;
- if (order->GetNonStopType() != OFB_NO_NON_STOP) order_flags |= AIOF_NON_STOP;
+ if (order->GetNonStopType() != ONSF_STOP_EVERYWHERE) order_flags |= AIOF_NON_STOP;
switch (order->GetType()) {
case OT_GOTO_DEPOT:
- if (order->GetDepotOrderType() & OFB_SERVICE_IF_NEEDED) order_flags |= AIOF_SERVICE_IF_NEEDED;
+ if (order->GetDepotOrderType() & ODTFB_SERVICE) order_flags |= AIOF_SERVICE_IF_NEEDED;
break;
case OT_GOTO_STATION:
- if (order->GetLoadType() & OFB_FULL_LOAD) order_flags |= AIOF_FULL_LOAD;
- if (order->GetUnloadType() & OFB_UNLOAD) order_flags |= AIOF_UNLOAD;
- if (order->GetUnloadType() & OFB_TRANSFER) order_flags |= AIOF_TRANSFER;
+ if (order->GetLoadType() & OLFB_FULL_LOAD) order_flags |= AIOF_FULL_LOAD;
+ if (order->GetUnloadType() & OUFB_UNLOAD) order_flags |= AIOF_UNLOAD;
+ if (order->GetUnloadType() & OUFB_TRANSFER) order_flags |= AIOF_TRANSFER;
break;
default: break;
@@ -118,14 +118,14 @@
Order order;
switch (::GetOrderTypeByTile(destination)) {
case OT_GOTO_DEPOT:
- order.MakeGoToDepot(::GetDepotByTile(destination)->index, true);
- if (order_flags & AIOF_SERVICE_IF_NEEDED) order.SetDepotOrderType(OFB_SERVICE_IF_NEEDED);
+ order.MakeGoToDepot(::GetDepotByTile(destination)->index, ODTFB_PART_OF_ORDERS);
+ if (order_flags & AIOF_SERVICE_IF_NEEDED) order.SetDepotOrderType(ODTFB_SERVICE);
break;
case OT_GOTO_STATION:
order.MakeGoToStation(::GetStationIndex(destination));
- if (order_flags & AIOF_FULL_LOAD) order.SetLoadType(OFB_FULL_LOAD);
- order.SetUnloadType(((order_flags & AIOF_TRANSFER) ? OFB_TRANSFER : 0) | ((order_flags & AIOF_UNLOAD) ? OFB_UNLOAD : 0));
+ if (order_flags & AIOF_FULL_LOAD) order.SetLoadType(OLFB_FULL_LOAD);
+ order.SetUnloadType((OrderUnloadFlags)(((order_flags & AIOF_TRANSFER) ? OUFB_TRANSFER : 0) | ((order_flags & AIOF_UNLOAD) ? OUFB_UNLOAD : 0)));
break;
case OT_GOTO_WAYPOINT:
@@ -136,7 +136,7 @@
return false;
}
- if (order_flags & AIOF_NON_STOP) order.SetNonStopType(OFB_NON_STOP);
+ if (order_flags & AIOF_NON_STOP) order.SetNonStopType(ONSF_NO_STOP_AT_DESTINATION_STATION);
return AIObject::DoCommand(0, vehicle_id | (order_id << 16), order.Pack(), CMD_INSERT_ORDER);
}
--- a/src/aircraft.h Tue Apr 08 11:54:53 2008 +0000
+++ b/src/aircraft.h Sat Apr 12 21:38:49 2008 +0000
@@ -127,6 +127,7 @@
void Tick();
void OnNewDay();
TileIndex GetOrderStationLocation(StationID station);
+ bool FindClosestDepot(TileIndex *location, DestinationID *destination, bool *reverse);
};
#endif /* AIRCRAFT_H */
--- a/src/aircraft_cmd.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/aircraft_cmd.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -81,7 +81,7 @@
static bool AirportFindFreeHelipad(Vehicle *v, const AirportFTAClass *apc);
static void CrashAirplane(Vehicle *v);
-static void AircraftNextAirportPos_and_Order(Vehicle *v);
+void AircraftNextAirportPos_and_Order(Vehicle *v);
static byte GetAircraftFlyingAltitude(const Vehicle *v);
static const SpriteID _aircraft_sprite[] = {
@@ -547,6 +547,25 @@
return CommandCost();
}
+bool Aircraft::FindClosestDepot(TileIndex *location, DestinationID *destination, bool *reverse)
+{
+ const Station *st = GetStation(this->u.air.targetairport);
+ /* If the station is not a valid airport or if it has no hangars */
+ if (!st->IsValid() || st->airport_tile == 0 || st->Airport()->nof_depots == 0) {
+ /* the aircraft has to search for a hangar on its own */
+ StationID station = FindNearestHangar(this);
+
+ if (station == INVALID_STATION) return false;
+
+ st = GetStation(station);
+ }
+
+ if (location != NULL) *location = st->xy;
+ if (destination != NULL) *destination = st->index;
+
+ return true;
+}
+
/** Send an aircraft to the hangar.
* @param tile unused
* @param flags for command type
@@ -568,59 +587,9 @@
Vehicle *v = GetVehicle(p1);
- if (v->type != VEH_AIRCRAFT || !CheckOwnership(v->owner) || v->IsInDepot()) return CMD_ERROR;
-
- if (v->current_order.IsType(OT_GOTO_DEPOT) && !(p2 & DEPOT_LOCATE_HANGAR)) {
- bool halt_in_depot = HasBit(v->current_order.GetDepotActionType(), OF_HALT_IN_DEPOT);
- if (!!(p2 & DEPOT_SERVICE) == halt_in_depot) {
- /* We called with a different DEPOT_SERVICE setting.
- * Now we change the setting to apply the new one and let the vehicle head for the same hangar.
- * Note: the if is (true for requesting service == true for ordered to stop in hangar) */
- if (flags & DC_EXEC) {
- v->current_order.SetDepotOrderType(OFB_MANUAL_ORDER);
- v->current_order.SetDepotActionType(halt_in_depot ? OFB_NORMAL_ACTION : OFB_HALT_IN_DEPOT);
- InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, VVW_WIDGET_START_STOP_VEH);
- }
- return CommandCost();
- }
-
- if (p2 & DEPOT_DONT_CANCEL) return CMD_ERROR; // Requested no cancelation of hangar orders
- if (flags & DC_EXEC) {
- /* If the orders to 'goto depot' are in the orders list (forced servicing),
- * then skip to the next order; effectively cancelling this forced service */
- if (v->current_order.GetDepotOrderType() & OFB_PART_OF_ORDERS) v->cur_order_index++;
+ if (v->type != VEH_AIRCRAFT) return CMD_ERROR;
- v->current_order.MakeDummy();
- InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, VVW_WIDGET_START_STOP_VEH);
- }
- } else {
- bool next_airport_has_hangar = true;
- StationID next_airport_index = v->u.air.targetairport;
- const Station *st = GetStation(next_airport_index);
- /* If the station is not a valid airport or if it has no hangars */
- if (!st->IsValid() || st->airport_tile == 0 || st->Airport()->nof_depots == 0) {
- /* the aircraft has to search for a hangar on its own */
- StationID station = FindNearestHangar(v);
-
- next_airport_has_hangar = false;
- if (station == INVALID_STATION) return CMD_ERROR;
- next_airport_index = station;
- }
-
- if (flags & DC_EXEC) {
- if (v->current_order.IsType(OT_LOADING)) v->LeaveStation();
-
- v->current_order.MakeGoToDepot(next_airport_index, false);
- if (!(p2 & DEPOT_SERVICE)) v->current_order.SetDepotActionType(OFB_HALT_IN_DEPOT);
- InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, VVW_WIDGET_START_STOP_VEH);
- if (v->u.air.state == FLYING && !next_airport_has_hangar) {
- /* The aircraft is now heading for a different hangar than the next in the orders */
- AircraftNextAirportPos_and_Order(v);
- }
- }
- }
-
- return CommandCost();
+ return v->SendToDepot(flags, (DepotCommand)(p2 & DEPOT_COMMAND_MASK));
}
@@ -704,7 +673,7 @@
static void CheckIfAircraftNeedsService(Vehicle *v)
{
- if (_patches.servint_aircraft == 0 || !VehicleNeedsService(v)) return;
+ if (_patches.servint_aircraft == 0 || !v->NeedsAutomaticServicing()) return;
if (v->IsInDepot()) {
VehicleServiceInDepot(v);
return;
@@ -715,7 +684,7 @@
if (st->IsValid() && st->airport_tile != 0 && st->Airport()->terminals != NULL) {
// printf("targetairport = %d, st->index = %d\n", v->u.air.targetairport, st->index);
// v->u.air.targetairport = st->index;
- v->current_order.MakeGoToDepot(0, false);
+ v->current_order.MakeGoToDepot(st->index, ODTFB_SERVICE);
InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, VVW_WIDGET_START_STOP_VEH);
} else if (v->current_order.IsType(OT_GOTO_DEPOT)) {
v->current_order.MakeDummy();
@@ -1504,7 +1473,7 @@
/** set the right pos when heading to other airports after takeoff */
-static void AircraftNextAirportPos_and_Order(Vehicle *v)
+void AircraftNextAirportPos_and_Order(Vehicle *v)
{
if (v->current_order.IsType(OT_GOTO_STATION) ||
v->current_order.IsType(OT_GOTO_DEPOT))
--- a/src/airport.h Tue Apr 08 11:54:53 2008 +0000
+++ b/src/airport.h Sat Apr 12 21:38:49 2008 +0000
@@ -13,7 +13,7 @@
enum {MAX_ELEMENTS = 255};
enum {MAX_HEADINGS = 22};
-// Airport types
+/* Airport types */
enum {
AT_SMALL = 0,
AT_LARGE = 1,
@@ -69,7 +69,7 @@
};
/* Movement Blocks on Airports */
-// blocks (eg_airport_flags)
+/* blocks (eg_airport_flags) */
static const uint64
TERM1_block = 1ULL << 0,
TERM2_block = 1ULL << 1,
@@ -96,7 +96,7 @@
TERM_GROUP2_EXIT2_block = 1ULL << 20,
PRE_HELIPAD_block = 1ULL << 21,
-// blocks for new airports
+/* blocks for new airports */
TERM7_block = 1ULL << 22,
TERM8_block = 1ULL << 23,
TERM9_block = 1ULL << 24,
@@ -107,10 +107,10 @@
OUT_WAY2_block = 1ULL << 27,
IN_WAY2_block = 1ULL << 28,
RUNWAY_IN2_block = 1ULL << 29,
- RUNWAY_OUT2_block = 1ULL << 10, // note re-uses TAXIWAY_BUSY
- HELIPAD_GROUP_block = 1ULL << 13, // note re-uses AIRPORT_ENTRANCE
+ RUNWAY_OUT2_block = 1ULL << 10, ///< note re-uses TAXIWAY_BUSY
+ HELIPAD_GROUP_block = 1ULL << 13, ///< note re-uses AIRPORT_ENTRANCE
OUT_WAY_block2 = 1ULL << 31,
-// end of new blocks
+/* end of new blocks */
NOTHING_block = 1ULL << 30;
@@ -123,7 +123,7 @@
struct AirportFTAbuildup;
-// Finite sTate mAchine --> FTA
+/** Finite sTate mAchine --> FTA */
struct AirportFTAClass {
public:
enum Flags {
@@ -157,30 +157,30 @@
}
const AirportMovingData *moving_data;
- struct AirportFTA *layout; // state machine for airport
+ struct AirportFTA *layout; ///< state machine for airport
const byte *terminals;
const byte *helipads;
- const TileIndexDiffC *airport_depots; // gives the position of the depots on the airports
+ const TileIndexDiffC *airport_depots; ///< gives the position of the depots on the airports
Flags flags;
- byte nof_depots; // number of depots this airport has
- byte nofelements; // number of positions the airport consists of
+ byte nof_depots; ///< number of depots this airport has
+ byte nofelements; ///< number of positions the airport consists of
const byte *entry_points; ///< when an airplane arrives at this airport, enter it at position entry_point, index depends on direction
byte size_x;
byte size_y;
- byte delta_z; // Z adjustment for helicopter pads
+ byte delta_z; ///< Z adjustment for helicopter pads
byte catchment;
};
DECLARE_ENUM_AS_BIT_SET(AirportFTAClass::Flags)
-// internal structure used in openttd - Finite sTate mAchine --> FTA
+/** internal structure used in openttd - Finite sTate mAchine --> FTA */
struct AirportFTA {
- AirportFTA *next; // possible extra movement choices from this position
- uint64 block; // 64 bit blocks (st->airport_flags), should be enough for the most complex airports
- byte position; // the position that an airplane is at
- byte next_position; // next position from this position
- byte heading; // heading (current orders), guiding an airplane to its target on an airport
+ AirportFTA *next; ///< possible extra movement choices from this position
+ uint64 block; ///< 64 bit blocks (st->airport_flags), should be enough for the most complex airports
+ byte position; ///< the position that an airplane is at
+ byte next_position; ///< next position from this position
+ byte heading; ///< heading (current orders), guiding an airplane to its target on an airport
};
void InitializeAirports();
--- a/src/airport_gui.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/airport_gui.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -72,48 +72,48 @@
static void BuildAirToolbWndProc(Window *w, WindowEvent *e)
{
switch (e->event) {
- case WE_PAINT:
- DrawWindowWidgets(w);
- break;
-
- case WE_CLICK:
- if (e->we.click.widget - 3 >= 0)
- _build_air_button_proc[e->we.click.widget - 3](w);
- break;
-
- case WE_KEYPRESS: {
- switch (e->we.keypress.keycode) {
- case '1': BuildAirClick_Airport(w); break;
- case '2': BuildAirClick_Demolish(w); break;
- default: return;
- }
- } break;
-
- case WE_PLACE_OBJ:
- _place_proc(e->we.place.tile);
- break;
+ case WE_PAINT:
+ DrawWindowWidgets(w);
+ break;
- case WE_PLACE_DRAG:
- VpSelectTilesWithMethod(e->we.place.pt.x, e->we.place.pt.y, e->we.place.select_method);
- break;
-
- case WE_PLACE_MOUSEUP:
- if (e->we.place.pt.x != -1 && e->we.place.select_proc == DDSP_DEMOLISH_AREA) {
- DoCommandP(e->we.place.tile, e->we.place.starttile, 0, CcPlaySound10, CMD_CLEAR_AREA | CMD_MSG(STR_00B5_CAN_T_CLEAR_THIS_AREA));
- }
- break;
+ case WE_CLICK:
+ if (e->we.click.widget - 3 >= 0)
+ _build_air_button_proc[e->we.click.widget - 3](w);
+ break;
- case WE_ABORT_PLACE_OBJ:
- w->RaiseButtons();
+ case WE_KEYPRESS: {
+ switch (e->we.keypress.keycode) {
+ case '1': BuildAirClick_Airport(w); break;
+ case '2': BuildAirClick_Demolish(w); break;
+ default: return;
+ }
+ } break;
- w = FindWindowById(WC_BUILD_STATION, 0);
- if (w != 0)
- WP(w, def_d).close = true;
- break;
+ case WE_PLACE_OBJ:
+ _place_proc(e->we.place.tile);
+ break;
- case WE_DESTROY:
- if (_patches.link_terraform_toolbar) DeleteWindowById(WC_SCEN_LAND_GEN, 0);
- break;
+ case WE_PLACE_DRAG:
+ VpSelectTilesWithMethod(e->we.place.pt.x, e->we.place.pt.y, e->we.place.select_method);
+ break;
+
+ case WE_PLACE_MOUSEUP:
+ if (e->we.place.pt.x != -1 && e->we.place.select_proc == DDSP_DEMOLISH_AREA) {
+ DoCommandP(e->we.place.tile, e->we.place.starttile, 0, CcPlaySound10, CMD_CLEAR_AREA | CMD_MSG(STR_00B5_CAN_T_CLEAR_THIS_AREA));
+ }
+ break;
+
+ case WE_ABORT_PLACE_OBJ:
+ w->RaiseButtons();
+
+ w = FindWindowById(WC_BUILD_STATION, 0);
+ if (w != 0)
+ WP(w, def_d).close = true;
+ break;
+
+ case WE_DESTROY:
+ if (_patches.link_terraform_toolbar) DeleteWindowById(WC_SCEN_LAND_GEN, 0);
+ break;
}
}
@@ -147,86 +147,86 @@
static void BuildAirportPickerWndProc(Window *w, WindowEvent *e)
{
switch (e->event) {
- case WE_CREATE:
- w->SetWidgetLoweredState(16, !_station_show_coverage);
- w->SetWidgetLoweredState(17, _station_show_coverage);
- w->LowerWidget(_selected_airport_type + 7);
- break;
-
- case WE_PAINT: {
- int i; // airport enabling loop
- uint32 avail_airports;
- const AirportFTAClass *airport;
-
- if (WP(w, def_d).close) return;
-
- avail_airports = GetValidAirports();
-
- w->RaiseWidget(_selected_airport_type + 7);
- if (!HasBit(avail_airports, 0) && _selected_airport_type == AT_SMALL) _selected_airport_type = AT_LARGE;
- if (!HasBit(avail_airports, 1) && _selected_airport_type == AT_LARGE) _selected_airport_type = AT_SMALL;
- w->LowerWidget(_selected_airport_type + 7);
-
- /* 'Country Airport' starts at widget 7, and if its bit is set, it is
- * available, so take its opposite value to set the disabled state.
- * There are 9 buildable airports
- * XXX TODO : all airports should be held in arrays, with all relevant data.
- * This should be part of newgrf-airports, i suppose
- */
- for (i = 0; i < 9; i++) w->SetWidgetDisabledState(i + 7, !HasBit(avail_airports, i));
-
- // select default the coverage area to 'Off' (16)
- airport = GetAirport(_selected_airport_type);
- SetTileSelectSize(airport->size_x, airport->size_y);
-
- int rad = _patches.modified_catchment ? airport->catchment : (uint)CA_UNMODIFIED;
-
- if (_station_show_coverage) SetTileSelectBigSize(-rad, -rad, 2 * rad, 2 * rad);
-
- DrawWindowWidgets(w);
- // strings such as 'Size' and 'Coverage Area'
- // 'Coverage Area'
- int text_end = DrawStationCoverageAreaText(2, 206, SCT_ALL, rad, false);
- text_end = DrawStationCoverageAreaText(2, text_end + 4, SCT_ALL, rad, true) + 4;
- if (text_end != w->widget[6].bottom) {
- SetWindowDirty(w);
- ResizeWindowForWidget(w, 6, 0, text_end - w->widget[6].bottom);
- SetWindowDirty(w);
- }
- break;
- }
-
- case WE_CLICK: {
- switch (e->we.click.widget) {
- case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15:
- w->RaiseWidget(_selected_airport_type + 7);
- _selected_airport_type = e->we.click.widget - 7;
- w->LowerWidget(_selected_airport_type + 7);
- SndPlayFx(SND_15_BEEP);
- SetWindowDirty(w);
- break;
- case 16: case 17:
- _station_show_coverage = (e->we.click.widget != 16);
+ case WE_CREATE:
w->SetWidgetLoweredState(16, !_station_show_coverage);
w->SetWidgetLoweredState(17, _station_show_coverage);
- SndPlayFx(SND_15_BEEP);
- SetWindowDirty(w);
+ w->LowerWidget(_selected_airport_type + 7);
+ break;
+
+ case WE_PAINT: {
+ int i; // airport enabling loop
+ uint32 avail_airports;
+ const AirportFTAClass *airport;
+
+ if (WP(w, def_d).close) return;
+
+ avail_airports = GetValidAirports();
+
+ w->RaiseWidget(_selected_airport_type + 7);
+ if (!HasBit(avail_airports, 0) && _selected_airport_type == AT_SMALL) _selected_airport_type = AT_LARGE;
+ if (!HasBit(avail_airports, 1) && _selected_airport_type == AT_LARGE) _selected_airport_type = AT_SMALL;
+ w->LowerWidget(_selected_airport_type + 7);
+
+ /* 'Country Airport' starts at widget 7, and if its bit is set, it is
+ * available, so take its opposite value to set the disabled state.
+ * There are 9 buildable airports
+ * XXX TODO : all airports should be held in arrays, with all relevant data.
+ * This should be part of newgrf-airports, i suppose
+ */
+ for (i = 0; i < 9; i++) w->SetWidgetDisabledState(i + 7, !HasBit(avail_airports, i));
+
+ /* select default the coverage area to 'Off' (16) */
+ airport = GetAirport(_selected_airport_type);
+ SetTileSelectSize(airport->size_x, airport->size_y);
+
+ int rad = _patches.modified_catchment ? airport->catchment : (uint)CA_UNMODIFIED;
+
+ if (_station_show_coverage) SetTileSelectBigSize(-rad, -rad, 2 * rad, 2 * rad);
+
+ DrawWindowWidgets(w);
+ /* strings such as 'Size' and 'Coverage Area' */
+ int text_end = DrawStationCoverageAreaText(2, 206, SCT_ALL, rad, false);
+ text_end = DrawStationCoverageAreaText(2, text_end + 4, SCT_ALL, rad, true) + 4;
+ if (text_end != w->widget[6].bottom) {
+ SetWindowDirty(w);
+ ResizeWindowForWidget(w, 6, 0, text_end - w->widget[6].bottom);
+ SetWindowDirty(w);
+ }
break;
}
- } break;
- case WE_MOUSELOOP: {
- if (WP(w, def_d).close) {
- DeleteWindow(w);
- return;
- }
+ case WE_CLICK: {
+ switch (e->we.click.widget) {
+ case 7: case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15:
+ w->RaiseWidget(_selected_airport_type + 7);
+ _selected_airport_type = e->we.click.widget - 7;
+ w->LowerWidget(_selected_airport_type + 7);
+ SndPlayFx(SND_15_BEEP);
+ SetWindowDirty(w);
+ break;
- CheckRedrawStationCoverage(w);
- } break;
+ case 16: case 17:
+ _station_show_coverage = (e->we.click.widget != 16);
+ w->SetWidgetLoweredState(16, !_station_show_coverage);
+ w->SetWidgetLoweredState(17, _station_show_coverage);
+ SndPlayFx(SND_15_BEEP);
+ SetWindowDirty(w);
+ break;
+ }
+ } break;
- case WE_DESTROY:
- if (!WP(w, def_d).close) ResetObjectToPlace();
- break;
+ case WE_MOUSELOOP: {
+ if (WP(w, def_d).close) {
+ DeleteWindow(w);
+ return;
+ }
+
+ CheckRedrawStationCoverage(w);
+ } break;
+
+ case WE_DESTROY:
+ if (!WP(w, def_d).close) ResetObjectToPlace();
+ break;
}
}
--- a/src/cargopacket.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/cargopacket.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -7,6 +7,7 @@
#include "station_base.h"
#include "cargopacket.h"
#include "saveload.h"
+#include "oldpool_func.h"
/* Initialize the cargopacket-pool */
DEFINE_OLD_POOL_GENERIC(CargoPacket, CargoPacket)
--- a/src/command.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/command.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -668,3 +668,14 @@
ClearStorageChanges(false);
return false;
}
+
+
+CommandCost CommandCost::AddCost(CommandCost ret)
+{
+ this->AddCost(ret.cost);
+ if (this->success && !ret.success) {
+ this->message = ret.message;
+ this->success = false;
+ }
+ return *this;
+}
--- a/src/command_type.h Tue Apr 08 11:54:53 2008 +0000
+++ b/src/command_type.h Sat Apr 12 21:38:49 2008 +0000
@@ -49,15 +49,7 @@
* @param ret the command to add the cost of.
* @return this class.
*/
- CommandCost AddCost(CommandCost ret)
- {
- this->AddCost(ret.cost);
- if (this->success && !ret.success) {
- this->message = ret.message;
- this->success = false;
- }
- return *this;
- }
+ CommandCost AddCost(CommandCost ret);
/**
* Adds the given cost to the cost of the command.
--- a/src/depot.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/depot.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -9,6 +9,7 @@
#include "saveload.h"
#include "order_func.h"
#include "window_func.h"
+#include "oldpool_func.h"
#include "table/strings.h"
--- a/src/economy.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/economy.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -1476,7 +1476,7 @@
for (Vehicle *v = front_v; v != NULL; v = v->Next()) {
/* No cargo to unload */
- if (v->cargo_cap == 0 || v->cargo.Empty()) continue;
+ if (v->cargo_cap == 0 || v->cargo.Empty() || front_v->current_order.GetUnloadType() & OUFB_NO_UNLOAD) continue;
/* All cargo has already been paid for, no need to pay again */
if (!v->cargo.UnpaidCargo()) {
@@ -1492,7 +1492,7 @@
if (!cp->paid_for &&
cp->source != last_visited &&
HasBit(ge->acceptance_pickup, GoodsEntry::ACCEPTANCE) &&
- (front_v->current_order.GetUnloadType() & OFB_TRANSFER) == 0) {
+ (front_v->current_order.GetUnloadType() & OUFB_TRANSFER) == 0) {
/* Deliver goods to the station */
st->time_since_unload = 0;
@@ -1505,8 +1505,8 @@
result |= 1;
SetBit(v->vehicle_flags, VF_CARGO_UNLOADING);
- } else if (front_v->current_order.GetUnloadType() & (OFB_UNLOAD | OFB_TRANSFER)) {
- if (!cp->paid_for && (front_v->current_order.GetUnloadType() & OFB_TRANSFER) != 0) {
+ } else if (front_v->current_order.GetUnloadType() & (OUFB_UNLOAD | OUFB_TRANSFER)) {
+ if (!cp->paid_for && (front_v->current_order.GetUnloadType() & OUFB_TRANSFER) != 0) {
Money profit = GetTransportedGoodsIncome(
cp->count,
/* pay transfer vehicle for only the part of transfer it has done: ie. cargo_loaded_at_xy to here */
@@ -1559,7 +1559,7 @@
/* We have not waited enough time till the next round of loading/unloading */
if (--v->load_unload_time_rem != 0) {
- if (_patches.improved_load && HasBit(v->current_order.GetLoadType(), OF_FULL_LOAD)) {
+ if (_patches.improved_load && (v->current_order.GetLoadType() & OLFB_FULL_LOAD)) {
/* 'Reserve' this cargo for this vehicle, because we were first. */
for (; v != NULL; v = v->Next()) {
if (v->cargo_cap != 0) cargo_left[v->cargo_type] -= v->cargo_cap - v->cargo.Count();
@@ -1602,17 +1602,17 @@
GoodsEntry *ge = &st->goods[v->cargo_type];
- if (HasBit(v->vehicle_flags, VF_CARGO_UNLOADING)) {
+ if (HasBit(v->vehicle_flags, VF_CARGO_UNLOADING) && (u->current_order.GetUnloadType() & OUFB_NO_UNLOAD) == 0) {
uint cargo_count = v->cargo.Count();
uint amount_unloaded = _patches.gradual_loading ? min(cargo_count, load_amount) : cargo_count;
bool remaining; // Are there cargo entities in this vehicle that can still be unloaded here?
- if (HasBit(ge->acceptance_pickup, GoodsEntry::ACCEPTANCE) && !(u->current_order.GetUnloadType() & OFB_TRANSFER)) {
+ if (HasBit(ge->acceptance_pickup, GoodsEntry::ACCEPTANCE) && !(u->current_order.GetUnloadType() & OUFB_TRANSFER)) {
/* The cargo has reached it's final destination, the packets may now be destroyed */
remaining = v->cargo.MoveTo(NULL, amount_unloaded, CargoList::MTA_FINAL_DELIVERY, last_visited);
result |= 1;
- } else if (u->current_order.GetUnloadType() & (OFB_UNLOAD | OFB_TRANSFER)) {
+ } else if (u->current_order.GetUnloadType() & (OUFB_UNLOAD | OUFB_TRANSFER)) {
remaining = v->cargo.MoveTo(&ge->cargo, amount_unloaded);
SetBit(ge->acceptance_pickup, GoodsEntry::PICKUP);
@@ -1640,8 +1640,8 @@
continue;
}
- /* Do not pick up goods that we unloaded */
- if (u->current_order.GetUnloadType() & OFB_UNLOAD) continue;
+ /* Do not pick up goods when we have no-load set. */
+ if (u->current_order.GetLoadType() & OLFB_NO_LOAD) continue;
/* update stats */
int t;
@@ -1713,7 +1713,7 @@
* all wagons at the same time instead of using the same 'improved'
* loading algorithm for the wagons (only fill wagon when there is
* enough to fill the previous wagons) */
- if (_patches.improved_load && HasBit(u->current_order.GetLoadType(), OF_FULL_LOAD)) {
+ if (_patches.improved_load && (u->current_order.GetLoadType() & OLFB_FULL_LOAD)) {
/* Update left cargo */
for (v = u; v != NULL; v = v->Next()) {
if (v->cargo_cap != 0) cargo_left[v->cargo_type] -= v->cargo_cap - v->cargo.Count();
@@ -1732,8 +1732,8 @@
}
} else {
bool finished_loading = true;
- if (HasBit(v->current_order.GetLoadType(), OF_FULL_LOAD)) {
- if (_patches.full_load_any) {
+ if (v->current_order.GetLoadType() & OLFB_FULL_LOAD) {
+ if (v->current_order.GetLoadType() == OLF_FULL_LOAD_ANY) {
/* if the aircraft carries passengers and is NOT full, then
* continue loading, no matter how much mail is in */
if ((v->type == VEH_AIRCRAFT && IsCargoInClass(v->cargo_type, CC_PASSENGERS) && v->cargo_cap != v->cargo.Count()) ||
--- a/src/engine.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/engine.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -25,6 +25,7 @@
#include "autoreplace_gui.h"
#include "string_func.h"
#include "settings_type.h"
+#include "oldpool_func.h"
#include "table/strings.h"
#include "table/engines.h"
--- a/src/gfx.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/gfx.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -28,10 +28,10 @@
bool _ctrl_pressed; ///< Is Ctrl pressed?
bool _shift_pressed; ///< Is Shift pressed?
byte _fast_forward;
-bool _left_button_down;
-bool _left_button_clicked;
-bool _right_button_down;
-bool _right_button_clicked;
+bool _left_button_down; ///< Is left mouse button pressed?
+bool _left_button_clicked; ///< Is left mouse button clicked?
+bool _right_button_down; ///< Is right mouse button pressed?
+bool _right_button_clicked; ///< Is right mouse button clicked?
DrawPixelInfo _screen;
bool _screen_disable_anim = false; ///< Disable palette animation (important for 32bpp-anim blitter during giant screenshot)
bool _exit_game;
--- a/src/group_cmd.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/group_cmd.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -22,6 +22,7 @@
#include "string_func.h"
#include "player_func.h"
#include "order_func.h"
+#include "oldpool_func.h"
#include "table/strings.h"
--- a/src/industry_cmd.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/industry_cmd.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -37,6 +37,7 @@
#include "vehicle_func.h"
#include "sound_func.h"
#include "station_base.h"
+#include "oldpool_func.h"
#include "table/strings.h"
#include "table/sprites.h"
@@ -1967,13 +1968,13 @@
*/
const Order *o;
FOR_VEHICLE_ORDERS(v, o) {
- if (o->IsType(OT_GOTO_STATION) && !HasBit(o->GetUnloadType(), OF_TRANSFER)) {
+ if (o->IsType(OT_GOTO_STATION) && !(o->GetUnloadType() & OUFB_TRANSFER)) {
/* Vehicle visits a station to load or unload */
Station *st = GetStation(o->GetDestination());
if (!st->IsValid()) continue;
/* Same cargo produced by industry is dropped here => not serviced by vehicle v */
- if (HasBit(o->GetUnloadType(), OF_UNLOAD) && !c_accepts) break;
+ if ((o->GetUnloadType() & OUFB_UNLOAD) && !c_accepts) break;
if (stations.find(st) != stations.end()) {
if (v->owner == _local_player) return 2; // Player services industry
--- a/src/lang/afrikaans.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/afrikaans.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1020,7 +1020,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Ontsper realistiese versnelling vir treine: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Verbied triene en skepe om 90 graad draaie te maak: {ORANGE}{STRING} {LTBLUE} (benodig NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}sluit aan trein stasies gebou naby mekaar: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Verlaat stasie as enige vrag vol is, as 'volle gelaai': {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Gebruik verebeterde laai algoritme: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Laai voertuie geleidelik: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Inflasie: {ORANGE}{STRING}
@@ -2608,26 +2607,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Burgers herdenk . . .{}Eerste trein arriveer by {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Aanwyse)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Trein in die weg
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :Gaan na {STATION}
-STR_GO_TO_TRANSFER :Gaan na {STATION} (Oordrag en vat vrag)
-STR_8807_GO_TO_UNLOAD :Gaan na {STATION} (Aflaai)
-STR_GO_TO_TRANSFER_UNLOAD :Gaan na {STATION} (Oordrag en verlaat leeg)
-STR_8808_GO_TO_LOAD :Gaan na {STATION} (Laai)
-STR_GO_TO_TRANSFER_LOAD :Gaan na {STATION} (Oordrag en wag vir volle lading)
-STR_880A_GO_NON_STOP_TO :Gaan deurgaande na {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Gaan deurgaande na {STATION} (Oordra en neem vrag)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Gaan deurgaande na {STATION} (Aflaai)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Gaan deurgaande na {STATION} (Oordra en verlaat leë)
-STR_880C_GO_NON_STOP_TO_LOAD :Gaan deurgaande na {STATION} (Laai)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Gaan deurgaande na {STATION} (Oordra en wag vir volle lading)
-STR_GO_TO_TRAIN_DEPOT :Gaan na {TOWN} Trein Depot
-STR_SERVICE_AT_TRAIN_DEPOT :Diens by {TOWN} Trein Depot
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Gaan deurgaande na {TOWN} Trein Depot
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Diens deurgaande by {TOWN} Trein Depot
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Reis (Nie gerooster nie)
STR_TIMETABLE_TRAVEL_FOR :Reis vir {STRING}
STR_TIMETABLE_STAY_FOR :en bly vir {STRING}
@@ -2668,10 +2648,7 @@
STR_8820_RENAME :{BLACK}Hernoem
STR_8823_SKIP :{BLACK}Sprong
STR_8824_DELETE :{BLACK}Uit vee
-STR_8825_NON_STOP :{BLACK}Deurgaande
STR_8826_GO_TO :{BLACK}Gaan Na
-STR_8827_FULL_LOAD :{BLACK}Volle Lading
-STR_8828_UNLOAD :{BLACK}Aflaai
STR_REFIT :{BLACK}Herpas
STR_REFIT_TIP :{BLACK}Kies watter vrag tipe te herpas na in die opdraag. CTRL-kliek om herpas instruksie te verwyder
STR_REFIT_ORDER :(Herpas na {STRING})
@@ -2679,7 +2656,6 @@
STR_TIMETABLE_VIEW_TOOLTIP :{BLACK}Skakel na die rooster uitsig
STR_8829_ORDERS :{WHITE}{VEHICLE} (Opdrae)
STR_882A_END_OF_ORDERS :{SETX 10}- - Einde van Opdrae - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Diens
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Kan nie spoorweg voertuig bou nie...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Gebou: {LTBLUE}{NUM}{BLACK} Waarde: {LTBLUE}{CURRENCY}
@@ -2729,10 +2705,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Opdraglys - kliek op 'n opdrag om dit te verlig. CTRL + kliek senter op stasie
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Sprong die huidige opdraag, en begin die volgende. CTRL + kliek sprong na verkieste opdrag
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Vee uit die verlig opdrag
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Maak die verlig opdrag deurgaande
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Invoeg 'n nuwe opdrag voor die verlig opdrag, of byvoeg na einde van lys
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Maak die verlig opdrag forseer die voertuig om vir 'n volle laai te wag
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Maak die verlig opdrag forseer die voertuig te aflaai
STR_TIMETABLE_TOOLTIP :{BLACK}Rooster - kliek op 'n opdrag om dit te verlig
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Verander die bedrag van tyd die verlig opdrag moes vat
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Skoon die totaal van tyd vir die verlig opdrag
@@ -2756,8 +2729,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Kan nie rigting van trein omkeer nie...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Hernoem trein voertuig tipe
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Trein voertuig tipe kan nie hernoem word nie...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Maak die verlig opdrag forseer die voertuig om sy vrag te stort
-STR_TRANSFER :{BLACK}Oordra
STR_CLEAR_TIME :{BLACK}Reinig Tyd
STR_RESET_LATENESS :{BLACK}Herstel Laat Teller
@@ -2844,8 +2815,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Hernoem pad voertuig tipe
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Hernoem pad voertuig tipe
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Pad voertuig tipe kan nie hernoem word nie...
-STR_GO_TO_ROADVEH_DEPOT :Gaan na {TOWN} Pad Voertuig Depot
-STR_SERVICE_AT_ROADVEH_DEPOT :Diens by {TOWN} Pad Voertuig Depot
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Herpas pad voertuig om 'n ander vrag tipe te ontvoer
STR_REFIT_ROAD_VEHICLE :{BLACK}Herpas pad voertuig
@@ -2921,8 +2890,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nuwe kapasiteit: {GOLD}{CARGO}{}{BLACK}Herstelkoste: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Skip kan nie herstel word nie...
STR_9842_REFITTABLE :(herstelbaar)
-STR_GO_TO_SHIP_DEPOT :Gaan na {TOWN} Skip Depot
-SERVICE_AT_SHIP_DEPOT :Diens by {TOWN} Skip Depot
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Lughawe
@@ -2993,8 +2960,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Kies vrag tipe om te ontvoer:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nuwe kapasiteit: {GOLD}{STRING}{}{BLACK}Herstelkoste: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Vliegtuig kan nie herstel word nie...
-STR_GO_TO_AIRPORT_HANGAR :Gaan na {STATION} Hangar
-SERVICE_AT_AIRPORT_HANGAR :Diens by {STATION} Hangar
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Rooster)
--- a/src/lang/brazilian_portuguese.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/brazilian_portuguese.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1027,7 +1027,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Ativar aceleração realista para trens: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Proibir trens e embarcações girar em angulos de 90 graus: {ORANGE}{STRING} {LTBLUE} (requer NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Unir estações ferroviárias construídas juntas: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Deixar a estação quando uma das cargas estiver completa: {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Usar algoritmo de carregamento melhorado: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Carregar veículos gradualmente: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Inflação: {ORANGE}{STRING}
@@ -2653,26 +2652,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Cidadãos celebram . . .{}Primeiro trem chega a {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Detalhes)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Trem no caminho
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :Ir para {STATION}
-STR_GO_TO_TRANSFER :Ir para {STATION} (Transferir e carregar)
-STR_8807_GO_TO_UNLOAD :Ir para {STATION} (Descarregar)
-STR_GO_TO_TRANSFER_UNLOAD :Ir para {STATION} (Transferir e deixar vazio)
-STR_8808_GO_TO_LOAD :Ir para {STATION} (Carregar)
-STR_GO_TO_TRANSFER_LOAD :Ir para {STATION} (Trasferir e aguardar carga total)
-STR_880A_GO_NON_STOP_TO :Ir sem parar para {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Ir sem parar para {STATION} (Transferir e carregar)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Ir sem parar para {STATION} (Descarregar)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Ir sem parar para {STATION} (Transferir e deixar vazio)
-STR_880C_GO_NON_STOP_TO_LOAD :Ir sem parar para {STATION} (Carregar)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Ir sem parar para {STATION} (Trasferir e aguardar carga total)
-STR_GO_TO_TRAIN_DEPOT :Ir para o depósito de {TOWN}
-STR_SERVICE_AT_TRAIN_DEPOT :Manutenção no depósito de {TOWN}
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Ir sem parar para o depósito de {TOWN}
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Manutenção no depósito de {TOWN} sem parar
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Viajar (não progamado)
STR_TIMETABLE_TRAVEL_FOR :Viajar para {STRING}
STR_TIMETABLE_STAY_FOR :e ficar durante {STRING}
@@ -2713,10 +2693,7 @@
STR_8820_RENAME :{BLACK}Renomear
STR_8823_SKIP :{BLACK}Saltar
STR_8824_DELETE :{BLACK}Remover
-STR_8825_NON_STOP :{BLACK}Sem parar
STR_8826_GO_TO :{BLACK}Ir Para
-STR_8827_FULL_LOAD :{BLACK}Carga
-STR_8828_UNLOAD :{BLACK}Descarga
STR_REFIT :{BLACK}Adaptar
STR_REFIT_TIP :{BLACK}Selecionar a adaptação na ordem atual. CTRL + Clique para remover a instrução
STR_REFIT_ORDER :(Adaptar para {STRING})
@@ -2726,7 +2703,6 @@
STR_ORDER_VIEW_TOOLTIP :{BLACK}Alternar para ver as ordens
STR_8829_ORDERS :{WHITE}{VEHICLE} (Ordens)
STR_882A_END_OF_ORDERS :{SETX 10}- - Fim de Ordens - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Manutenção
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Impossível construir veículo ferroviário...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Construído: {LTBLUE}{NUM}{BLACK} Valor: {LTBLUE}{CURRENCY}
@@ -2776,10 +2752,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Lista de ordens - clique numa ordem para a selecionar
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Pula a ordem atual e executa a próxima. CTRL + clique pula a ordem selecionada
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Remover a ordem selecionada
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}A ordem selecionada fará com que o veículo não pare nas estações
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Inserir nova ordem antes da ordem selecionada, ou adicionar no fim da lista
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}A ordem selecionada fará com que o veículo espere carregar completamente
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}A ordem selecionada forçará o veículo a descarregar
STR_TIMETABLE_TOOLTIP :{BLACK}Plano de horário - selecione uma ordem clicando nela
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Mude a quantidade de tempo que a ordem deverá levar
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Reseta a quantidade de tempo para a ordem selecionada
@@ -2803,8 +2776,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Impossível inverter a direção do trem...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Renomear tipo de veículo ferroviário
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Impossível renomear tipo de veículo ferroviário...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Força o veículo a deixar a carga na ordem selecionada
-STR_TRANSFER :{BLACK}Transferir
STR_CLEAR_TIME :{BLACK}Resetar horário
STR_RESET_LATENESS :{BLACK}Resetar contador de atraso
@@ -2892,8 +2863,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Renomear tipo do automóvel
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Renomear tipo do automóvel
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Impossível renomear tipo do automóvel...
-STR_GO_TO_ROADVEH_DEPOT :Ir para a garagem de {TOWN}
-STR_SERVICE_AT_ROADVEH_DEPOT :Manutenção na garagem de {TOWN}
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Adaptar automóvel para carregar tipo de carga diferente
STR_REFIT_ROAD_VEHICLE :{BLACK}Adaptar automóvel
@@ -2969,8 +2938,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nova capacidade: {GOLD}{CARGO}{}{BLACK}Custo da adaptação: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Impossível adaptar embarcação...
STR_9842_REFITTABLE :(adaptável)
-STR_GO_TO_SHIP_DEPOT :Ir para o depósito naval de {TOWN}
-SERVICE_AT_SHIP_DEPOT :Manutenção no depósito naval de {TOWN}
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Aeroportos
@@ -3041,8 +3008,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Selecionar tipo de carga:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nova capacidade: {GOLD}{STRING}{}{BLACK}Custo da adaptação: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Impossível adaptar aeronave...
-STR_GO_TO_AIRPORT_HANGAR :Ir para o hangar de {STATION}
-SERVICE_AT_AIRPORT_HANGAR :Manutenção no hangar de {STATION}
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Timetable)
--- a/src/lang/bulgarian.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/bulgarian.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1028,7 +1028,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Реалистично ускоряване на влаковете: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Забрана на влакове и кораби да правят 90 градусови завои: {ORANGE}{STRING} {LTBLUE} (трябва NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Обединяване на гари построени една до друга: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Напускане на станцията когато някой товар е пълен, при 'пълно зареждане': {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Подобрен алгоритъм за зареждане: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Постепенно зареждане на автомобилите: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Инфлация: {ORANGE}{STRING}
@@ -2653,26 +2652,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Хората празнуват . . .{}Първи влак пристигна на {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Подробности)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Влак на пътя
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :Отиди на {STATION}
-STR_GO_TO_TRANSFER :Отиди на {STATION} (Обмени и вземи товар)
-STR_8807_GO_TO_UNLOAD :Отиди на {STATION} (Разтовари)
-STR_GO_TO_TRANSFER_UNLOAD :Отиди на {STATION} (Обмени и не взимай нов товар)
-STR_8808_GO_TO_LOAD :Отиди на {STATION} (Товари)
-STR_GO_TO_TRANSFER_LOAD :Отиди на {STATION} (Обмени и изчакай до пълен товар)
-STR_880A_GO_NON_STOP_TO :Отиди без да спираш на {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Отиди без да спираш на {STATION} (Обмени и вземи товар)
-STR_880B_GO_NON_STOP_TO_UNLOAD :отиди без да спираш на {STATION} (Разтовари)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Отиди без да спираш на {STATION} (Обмени и не товари)
-STR_880C_GO_NON_STOP_TO_LOAD :Отиди без да спираш на {STATION} (Товари)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Отиди без да спираш на {STATION} (Обмени и изчакай до пълен товар)
-STR_GO_TO_TRAIN_DEPOT :Отиди до Влаковото депо на {TOWN}
-STR_SERVICE_AT_TRAIN_DEPOT :Ремонт в {TOWN} влаково депо
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Отиди без да спираш на {TOWN} Влаково депо
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Ремонт без спиране в {TOWN} влаково депо
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Патувай (без разписание)
STR_TIMETABLE_TRAVEL_FOR :Патувай за {STRING}
STR_TIMETABLE_STAY_FOR :и остани за {STRING}
@@ -2713,10 +2693,7 @@
STR_8820_RENAME :{BLACK}Преименувай
STR_8823_SKIP :{BLACK}Остави
STR_8824_DELETE :{BLACK}Изтрий
-STR_8825_NON_STOP :{BLACK}Без да спира
STR_8826_GO_TO :{BLACK}Отиди на
-STR_8827_FULL_LOAD :{BLACK}Пълен товар
-STR_8828_UNLOAD :{BLACK}Разтовари
STR_REFIT :{BLACK}Преустройство
STR_REFIT_TIP :{BLACK}Избор какво преустройсто да се направи. Щракване със задържан контрол премахва инструкцията
STR_REFIT_ORDER :(Преустройство към {STRING})
@@ -2726,7 +2703,6 @@
STR_ORDER_VIEW_TOOLTIP :{BLACK}Промени сортацията
STR_8829_ORDERS :{WHITE}{VEHICLE} (Заповеди)
STR_882A_END_OF_ORDERS :{SETX 10}- - Край на Заповедите - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Ремонт
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Не може да купиш ЖП машина...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Купи: {LTBLUE}{NUM}{BLACK} Цена: {LTBLUE}{CURRENCY}
@@ -2776,10 +2752,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Пътен лист - натиснете върху назначение за маркиране. CTRL + натискане - центрира върху станцията
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Прескачане на настоящата заповед и започване на цледващата. CTRL + клик прескача до избраната заповед
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Изтриване на избраното назначение
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Преминавай през избраното назначение без спиране
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Добавяне на назначение преди избраната или в края на списъка
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Изчакай на избраното назначение до пълно зареждане с товар
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Разтоварва на избраното назначение целия товар
STR_TIMETABLE_TOOLTIP :{BLACK}Времетаблица - кликни върху заповед за да я маркираш.
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Промени времетраенето на маркираната заповед
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Изчисти времетраенето на маркираната заповед
@@ -2803,8 +2776,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Не може да обърне посоката на влак...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Преименуване на влак
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Не може да се преименува влак...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Изхвърляне на товара при достигане на избраното назначение
-STR_TRANSFER :{BLACK}Транфер
STR_CLEAR_TIME :{BLACK}Изчисти времето
STR_RESET_LATENESS :{BLACK}Преправи закъснялата бройка
@@ -2892,8 +2863,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Преименувай МПС-то
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Преименувай МПС-то
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Не може да преименуваш МПС-то...
-STR_GO_TO_ROADVEH_DEPOT :Отиди в {TOWN} МПС-депото
-STR_SERVICE_AT_ROADVEH_DEPOT :Ремонт в {TOWN} гараж
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Преоборудване автомобила за друг товар
STR_REFIT_ROAD_VEHICLE :{BLACK}Проборудване на автомобила
@@ -2969,8 +2938,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Нов капацитет: {GOLD}{CARGO}{}{BLACK}Цена за преустройство: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Не може да преустрои кораб...
STR_9842_REFITTABLE :(преустроим)
-STR_GO_TO_SHIP_DEPOT :Отиди до Корабното депо до {TOWN}
-SERVICE_AT_SHIP_DEPOT :Сервиз на {TOWN} док
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Летища
@@ -3041,8 +3008,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Избор тип товар за превозване:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Нова вместимост: {GOLD}{STRING}{}{BLACK}Цена на преустройството: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Не може да се преустрои самолета...
-STR_GO_TO_AIRPORT_HANGAR :Отиди до Хангара на летище {STATION}
-SERVICE_AT_AIRPORT_HANGAR :Сервиз в {STATION} хангар
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Разписание)
--- a/src/lang/catalan.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/catalan.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1026,7 +1026,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Activa l'acceleració realista per als trens: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Prohibeix fer girs de 90 graus als trens i vaixells: {ORANGE}{STRING} {LTBLUE} (necessita NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Ajunta estacions de tren fetes al costat d'una altra: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Marxa de l'estació quan un tipus de càrrega estigui ple, si 'càrrega completa': {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Utilitza algorisme millorat de càrrega: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Carrega els vehicles gradualment: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Inflació: {ORANGE}{STRING}
@@ -2652,26 +2651,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Celebració popular . . .{} Arribada del 1er. tren a {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Detalls)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Tren en el camí
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :Ves a {STATION}
-STR_GO_TO_TRANSFER :Ves a {STATION} (Transfereix i agafa càrrega)
-STR_8807_GO_TO_UNLOAD :Ves a {STATION} (Descarrega)
-STR_GO_TO_TRANSFER_UNLOAD :Ves a {STATION} (Transfereix i deixa buit)
-STR_8808_GO_TO_LOAD :Ves a {STATION} (Carrega)
-STR_GO_TO_TRANSFER_LOAD :Ves a {STATION} (Transfereix i espera càrrega completa)
-STR_880A_GO_NON_STOP_TO :Ves sense parar a {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Ves sense parar a {STATION} (Transfereix i agafa càrrega)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Ves sense parar a {STATION} (Descarrega)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Ves sense parar a {STATION} (Transfereix i deixa buit)
-STR_880C_GO_NON_STOP_TO_LOAD :Ves sense parar a {STATION} (Carrega)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Ves sense parar a {STATION} (Transfereix i espera càrrega completa)
-STR_GO_TO_TRAIN_DEPOT :Ves al Diposit {TOWN} de Tren
-STR_SERVICE_AT_TRAIN_DEPOT :Manteniment a cotxeres de {TOWN}.
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Ves sense parar a les cotxeres de {TOWN}.
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Manteniment sense parades a cotxeres de {TOWN}.
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Viatge (fora d'horari)
STR_TIMETABLE_TRAVEL_FOR :Viatge a {STRING}
STR_TIMETABLE_STAY_FOR :i estigues {STRING}
@@ -2712,10 +2692,7 @@
STR_8820_RENAME :{BLACK}Reanomena
STR_8823_SKIP :{BLACK}Salta
STR_8824_DELETE :{BLACK}Esborra
-STR_8825_NON_STOP :{BLACK}No paris
STR_8826_GO_TO :{BLACK}Ves a
-STR_8827_FULL_LOAD :{BLACK}Carrega
-STR_8828_UNLOAD :{BLACK}Descarreg
STR_REFIT :{BLACK}Remodela
STR_REFIT_TIP :{BLACK}Selecciona quin tipus de càrrega vols remodelar en aquesta ordre. Control + Clic per eliminar l'ordre de remodelar
STR_REFIT_ORDER :(Remodela a {STRING})
@@ -2725,7 +2702,6 @@
STR_ORDER_VIEW_TOOLTIP :{BLACK}Commuta l'ordre de la vista
STR_8829_ORDERS :{WHITE}{VEHICLE} (Ordres)
STR_882A_END_OF_ORDERS :{SETX 10}- - Fí d'Ordres - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Servei
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}No es pot construir el vehicle...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Construit: {LTBLUE}{NUM}{BLACK} Valor: {LTBLUE}{CURRENCY}
@@ -2775,10 +2751,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Llista d'ordres - clica en una per seleccionar-la
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Salta l'ordre actual, i comença la següent. CTRL + clic salta l'ordre seleccionada
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Esborra l'ordre seleccionada
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Fer sense parades l'ordre seleccionada
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Afegeix una nova ordre abans de la seleccionada, o afegeix-la al final de la llista
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Fer que en l'ordre seleccionada s'esperi a que l'element tingui càrrega total
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Obliga en l'ordre seleccionada a descarregar l'element
STR_TIMETABLE_TOOLTIP :{BLACK}Horari - clica sobre l'ordre per marcar-la.
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Canvia la quantitat de temps que l'ordre marcada hauria de prendre
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Esborra la quantitat de temps de l'ordre marcada
@@ -2802,8 +2775,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}No es pot invertir la direcció del tren...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Reanomena el tipus d'element del tren
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}No es pot reanomenar el tipus d'element del tren...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Fer que l'ordre marcada forci al vehicle a volcar la càrrega
-STR_TRANSFER :{BLACK}Transf.
STR_CLEAR_TIME :{BLACK}Esborra Temps
STR_RESET_LATENESS :{BLACK}Reset. control de retràs
@@ -2891,8 +2862,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Reanomena tipus d'automòbil
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Reanomena tipus d'automòbil
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}No es pot reanomenar tipus d'automòbil
-STR_GO_TO_ROADVEH_DEPOT :Ves a la cotxera de {TOWN}.
-STR_SERVICE_AT_ROADVEH_DEPOT :Manteniment a la cotxera de {TOWN}.
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Remodela vehicle de carretera per dur un tipus diferent de càrrega
STR_REFIT_ROAD_VEHICLE :{BLACK}Remodela vehicle de carretera
@@ -2968,8 +2937,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nova capacitat: {GOLD}{CARGO}{}{BLACK}Cost de la remodelació: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}No es pot remodelar el vaixell...
STR_9842_REFITTABLE :(remodelable)
-STR_GO_TO_SHIP_DEPOT :Ves a la drassana de {TOWN}.
-SERVICE_AT_SHIP_DEPOT :Manteniment a drassana de {TOWN}.
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Aeroports
@@ -3040,8 +3007,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Selecciona el tipus de càrrega a transportar:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nova capacitat: {GOLD}{STRING}{}{BLACK}Cost de la remodelació: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}No es pot remodelar l'avió...
-STR_GO_TO_AIRPORT_HANGAR :Ves a l'hangar de {STATION}.
-SERVICE_AT_AIRPORT_HANGAR :Manteniment en l'hangar de {STATION}.
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Horari)
--- a/src/lang/croatian.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/croatian.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1026,7 +1026,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Omogući realistično ubrzanje za vlakove: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Zabrani vlakovima i brodovima skretanja pod 90 stupnjeva: {ORANGE}{STRING} {LTBLUE} (requires NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Spoji željezničke stanice koje se izgrade jedna pokraj druge: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Napusti stanicu ako je bilo koji teret u potpunosti natovaren pri 'punom utovaru': {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Koristi unaprijeđen utovarni algoritam: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Postupno utovaruj u vozila: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Inflacija: {ORANGE}{STRING}
@@ -2622,26 +2621,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Građani slave . . .{}Prvi vlak je stigao na {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Detalji)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Vlak na putu
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :Idi do {STATION}
-STR_GO_TO_TRANSFER :Idi do {STATION} (Transferiraj i preuzmi teret)
-STR_8807_GO_TO_UNLOAD :Idi do {STATION} (Istovar)
-STR_GO_TO_TRANSFER_UNLOAD :Go to {STATION} (Transferiraj i otiđi prazan)
-STR_8808_GO_TO_LOAD :Idi do{STATION} (Utovar)
-STR_GO_TO_TRANSFER_LOAD :Idi do {STATION} (Transferiraj i pričekaj puni utovar)
-STR_880A_GO_NON_STOP_TO :Idi neprekidno do {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Idi neprekidno do {STATION} (Transferiraj i preuzmi teret)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Idi neprekidno do {STATION} (Istovar)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Idi neprekidno do {STATION} (Transferiraj i otiđi prazan)
-STR_880C_GO_NON_STOP_TO_LOAD :Idi neprekidno do {STATION} (Utovar)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Idi neprekidno do {STATION} (Transferiraj i pričekaj puni utovar)
-STR_GO_TO_TRAIN_DEPOT :Idi u spremište vlakova grada {TOWN}
-STR_SERVICE_AT_TRAIN_DEPOT :Servisiranje u spremištu vlakova grada {TOWN}
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Idi neprekidno do spremišta vlakova grada {TOWN}
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Servisiraj neprekidno u spremištu vlakova grada {TOWN}
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Putovanje (bez rasporeda)
STR_TIMETABLE_TRAVEL_FOR :Putovanje za {STRING}
STR_TIMETABLE_STAY_FOR :i boravak za {STRING}
@@ -2682,10 +2662,7 @@
STR_8820_RENAME :{BLACK}Preimenuj
STR_8823_SKIP :{BLACK}Preskoči
STR_8824_DELETE :{BLACK}Obriši
-STR_8825_NON_STOP :{BLACK}Neprekidno
STR_8826_GO_TO :{BLACK}Idi do
-STR_8827_FULL_LOAD :{BLACK}Puni utovar
-STR_8828_UNLOAD :{BLACK}Istovar
STR_REFIT :{BLACK}Prenamijeni
STR_REFIT_TIP :{BLACK}Odaberi vrstu tereta za prenamijenu u ovoj naredbi. CTRL+klik kako bi uklonio naputak za prenamjenu
STR_REFIT_ORDER :(Prenamijeni u {STRING})
@@ -2693,7 +2670,6 @@
STR_TIMETABLE_VIEW_TOOLTIP :{BLACK}Prebacivanje na pogled rasporeda
STR_8829_ORDERS :{WHITE}{VEHICLE} (Naredbe)
STR_882A_END_OF_ORDERS :{SETX 10}- - Kraj naredbi - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Servis
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Nije moguće izgraditi željezničko vozilo...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Izgrađen: {LTBLUE}{NUM}{BLACK} Vrijednost: {LTBLUE}{CURRENCY}
@@ -2743,10 +2719,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Popis naredbi - klikni na naredbu kako bi ju označio. CTRL + klik klizi na stanicu
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Preskoči trenutnu naredbu i pokreni slijedeću. CTRL + klik preskače na odabranu naredbu
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Obriši označenu naredbu
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Napravi označenu naredbu da bude non-stop
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Umetni novu naredbu prije odabrane naredbe, ili dodaj na kraj liste
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Napravi da odabrana naredba natjera vozilo da čeka na potpuni utovar
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Napravi da označena naredba natjera vozilo na istovar
STR_TIMETABLE_TOOLTIP :{BLACK}Raspored - klikni na naredbu da ju označiš.
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Promijeni količinu vremena koju bi označena naredba trebala uzeti
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Obriši potrebno vrijeme za označenu naredbu
@@ -2770,8 +2743,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Nije moguće promijeniti smjer vlaka...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Preimenuj vrstu vagona
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Nije moguće preimenovati vrstu vagona...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Napravi da označena naredba prisili vozilo da izbaci teret
-STR_TRANSFER :{BLACK}Transfer
STR_CLEAR_TIME :{BLACK}Obriši vrijeme
STR_RESET_LATENESS :{BLACK}Poništi Brojač Kašnjenja
@@ -2859,8 +2830,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Preimenuj vrstu cestovnog vozila
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Preimenuj vrstu cestovnog vozila
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Nije moguće preimenovati vrstu cestovnog vozila...
-STR_GO_TO_ROADVEH_DEPOT :Idi prema spremištu cestovnih vozila grada {TOWN}
-STR_SERVICE_AT_ROADVEH_DEPOT :Servisiranje u spremištu cestovnih vozila grada {TOWN}
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Prenamijeni cestovno vozilo za prijevoz neke druge vrste tereta
STR_REFIT_ROAD_VEHICLE :{BLACK}Prenamijeni cestovno vozilo
@@ -2936,8 +2905,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nova nosivost: {GOLD}{CARGO}{}{BLACK}Cijena prenamjene: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Nije moguće prenamijeniti brod...
STR_9842_REFITTABLE :(prenamjenjiv)
-STR_GO_TO_SHIP_DEPOT :Idi u spremište brodova grada {TOWN}
-SERVICE_AT_SHIP_DEPOT :Servis u spremištu brodova grada {TOWN}
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Zračne luke
@@ -3008,8 +2975,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Odaberi vrstu tereta za prijevoz:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nova nosivost: {GOLD}{STRING}{}{BLACK}Trošak prenamjene: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Nije moguće prenamijeniti zrakoplov...
-STR_GO_TO_AIRPORT_HANGAR :Idi u hangar stanice {STATION}
-SERVICE_AT_AIRPORT_HANGAR :Servisiranje u hangaru stanice {STATION}
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Raspored)
--- a/src/lang/czech.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/czech.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1084,7 +1084,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Zapnout realistické zrychlování vlaků: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Zakázat vlakům a lodím otáčení o 90 stupňů: {ORANGE}{STRING} {LTBLUE} (vyžaduje NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Spojovat stanice postavené vedle sebe: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Odjet, když je plně naložen jakýkoli náklad při 'naložit': {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Použij vylepšený algoritmus nakládání: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Nakládat vozidla postupně: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Inflace: {ORANGE}{STRING}
@@ -2704,26 +2703,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Obyvatelé oslavují...{}První vlak dorazil do {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Detaily)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}V cestě je vlak
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :Jet do {STATION}
-STR_GO_TO_TRANSFER :Jet do {STATION} (přeložit a naložit jiný náklad)
-STR_8807_GO_TO_UNLOAD :Jet do {STATION} (vyložit)
-STR_GO_TO_TRANSFER_UNLOAD :Jet do {STATION} (přeložit a nenakládat)
-STR_8808_GO_TO_LOAD :Jet do {STATION} (naložit)
-STR_GO_TO_TRANSFER_LOAD :Jet do {STATION} (přeložit a plně naložit jiný náklad)
-STR_880A_GO_NON_STOP_TO :Jet bez zastavení do {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Jet bez zastavení do {STATION} (přeložit a naložit jiný náklad)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Jet bez zastavení do {STATION} (vyložit)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Jet bez zastavení do {STATION} (přeložit a nenakládat)
-STR_880C_GO_NON_STOP_TO_LOAD :Jet bez zastavení do {STATION} (naložit)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Jet bez zastavení do {STATION} (přeložit a plně naložit jiný náklad)
-STR_GO_TO_TRAIN_DEPOT :Jet do železničního depa v {TOWN}
-STR_SERVICE_AT_TRAIN_DEPOT :Údržba v železničním depu {TOWN}
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Jet bez zastavení do železničního depa {TOWN}
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Údržba bez zastavení v železničním depu {TOWN}
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Jet do (mimo jízdní řád)
STR_TIMETABLE_TRAVEL_FOR :Jet do {STRING}
STR_TIMETABLE_STAY_FOR :a zůstat {STRING}
@@ -2764,10 +2744,7 @@
STR_8820_RENAME :{BLACK}Přejmenovat
STR_8823_SKIP :{BLACK}Přeskočit
STR_8824_DELETE :{BLACK}Smazat
-STR_8825_NON_STOP :{BLACK}Nonstop
STR_8826_GO_TO :{BLACK}Jet do
-STR_8827_FULL_LOAD :{BLACK}Naložit
-STR_8828_UNLOAD :{BLACK}Vyložit
STR_REFIT :{BLACK}Přestavět
STR_REFIT_TIP :{BLACK}Vyber, na který druh nákladu přestavět. CTRL-klik odstraní přestavbu z příkazu.
STR_REFIT_ORDER :(Přestavět na {STRING})
@@ -2775,7 +2752,6 @@
STR_TIMETABLE_VIEW_TOOLTIP :{BLACK}Přepnout na jízdní řád
STR_8829_ORDERS :{WHITE}{VEHICLE} (Příkazy)
STR_882A_END_OF_ORDERS :{SETX 10}- - Konec příkazů - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Údržba
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Nemohu koupit vagon nebo lokomotivu...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Koupeno: {LTBLUE}{NUM}{BLACK} Hodnota: {LTBLUE}{CURRENCY}
@@ -2825,10 +2801,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Seznam příkazů - stiskni příkaz pro označení. Kliknutím na příkaz se stisknutým CTRL se nastaví pohled na stanici
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Přeskočit příkaz a jít na další. Pomocí CTRL + kliknutí se přeskočí na vybraný příkaz
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Smazat označený příkaz
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Provést označený příkaz bez zastavení
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Vložit nový příkaz před označený příkaz nebo na konec seznamu
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Označený příkaz provádět do plného naložení
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Označený příkaz vyloží vozidlo
STR_TIMETABLE_TOOLTIP :{BLACK}Jízdní řád - příkaz vybereš kliknutím.
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Změnit čas pro splnění jízdního příkazu
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Zrušit čas pro splnění jízdního příkazu
@@ -2852,8 +2825,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Nelze obrátit vlak...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Přejmenovat typ železničního vozidla
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Nemohu přejmenovat typ železničního vozidla...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}U označeného příkazu vozidlo musí vyložit náklad
-STR_TRANSFER :{BLACK}Překládka
STR_CLEAR_TIME :{BLACK}Smazat čas
STR_RESET_LATENESS :{BLACK}Smazat ukazatel zpoždění
@@ -2941,8 +2912,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Přejmenovat typ silničního vozidla
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Přejmenovat typ silničního vozidla
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Nelze přejmenovat typ silničního vozidla...
-STR_GO_TO_ROADVEH_DEPOT :Jet do garáže {TOWN}
-STR_SERVICE_AT_ROADVEH_DEPOT :Údržba v garáži {TOWN}
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Přestavět silniční vozidlo, aby mohlo vozit jiný druh nákladu
STR_REFIT_ROAD_VEHICLE :{BLACK}Přestavět silniční vozidlo
@@ -3018,8 +2987,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nová kapacita: {GOLD}{CARGO}{}{BLACK}Cena přestavby: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Nelze přestavět loď...
STR_9842_REFITTABLE :(lze přestavět)
-STR_GO_TO_SHIP_DEPOT :Zajet do lodního depa {TOWN}
-SERVICE_AT_SHIP_DEPOT :Údržba v lodním depu {TOWN}
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Letiště
@@ -3090,8 +3057,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Zvolit typ nákladu pro prevážení:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nová kapacita: {GOLD}{STRING}{}{BLACK}Cena přestavby: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Nelze přestavět letadlo...
-STR_GO_TO_AIRPORT_HANGAR :Poslat do hangáru {STATION}
-SERVICE_AT_AIRPORT_HANGAR :Údržba v hangáru {STATION}
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Jízdní řád)
--- a/src/lang/danish.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/danish.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1026,7 +1026,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Aktiver realistisk acceleration af tog: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Forbyd skibe og tog at dreje 90 grader: {ORANGE}{STRING} {LTBLUE} (skal bruge NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Foren togstationer der bygges ved siden af hinanden: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Forlad stationen hvis en slags last bliver fyldt, hvis 'fuld last': {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Brug forbedret indlæsnings algoritme: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Last køretøjer gradvist: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Inflation: {ORANGE}{STRING}
@@ -2639,26 +2638,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Indbyggerne fester . . .{}Første tog ankommer til {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Detaljer)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Tog i vejen
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :Gå til {STATION}
-STR_GO_TO_TRANSFER :Gå til {STATION} (Overfør og tag gods)
-STR_8807_GO_TO_UNLOAD :Gå til {STATION} (Aflæs)
-STR_GO_TO_TRANSFER_UNLOAD :Gå til {STATION} (Overfør og efterlad tom)
-STR_8808_GO_TO_LOAD :Gå til {STATION} (Fuld last)
-STR_GO_TO_TRANSFER_LOAD :Gå til {STATION} (Overfør og vent på fuld last)
-STR_880A_GO_NON_STOP_TO :Gå uden stop til {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Gå uden stop til {STATION} (Overfør og tag gods)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Gå uden stop til {STATION} (Aflæs)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Gå uden stop til {STATION} (Overfør og efterlad tom)
-STR_880C_GO_NON_STOP_TO_LOAD :Gå uden stop til {STATION} (Fuld last)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Gå uden stop til {STATION} (Overfør og vent på fuld last)
-STR_GO_TO_TRAIN_DEPOT :Gå til {TOWN} remise
-STR_SERVICE_AT_TRAIN_DEPOT :Service i {TOWN} remise
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Gå uden stop til {TOWN} remise
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Service uden stop i {TOWN} remise
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Rejs (ikke iflg. køreplan)
STR_TIMETABLE_TRAVEL_FOR :Rejs i {STRING}
STR_TIMETABLE_STAY_FOR :og vent i {STRING}
@@ -2699,10 +2679,7 @@
STR_8820_RENAME :{BLACK}Omdøb
STR_8823_SKIP :{BLACK}Spring over
STR_8824_DELETE :{BLACK}Slet
-STR_8825_NON_STOP :{BLACK}Uden stop
STR_8826_GO_TO :{BLACK}Gå til
-STR_8827_FULL_LOAD :{BLACK}Fuld last
-STR_8828_UNLOAD :{BLACK}Aflæs
STR_REFIT :{BLACK}Ombyg
STR_REFIT_TIP :{BLACK}Vælg hvilken lasttype der skal ombygges til i denne ordre. CTRL-klik for at fjerne ombygningsinstruktion
STR_REFIT_ORDER :(Ombyg til {STRING})
@@ -2710,7 +2687,6 @@
STR_TIMETABLE_VIEW_TOOLTIP :{BLACK}Skift til køreplan-visning
STR_8829_ORDERS :{WHITE}{VEHICLE} (Ordrer)
STR_882A_END_OF_ORDERS :{SETX 10}- - Slut på ordrer - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Service
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Kan ikke bygge jernbanekøretøj...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Bygget: {LTBLUE}{NUM}{BLACK} Værdi: {LTBLUE}{CURRENCY}
@@ -2760,10 +2736,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Ordreliste - klik på en ordre for at markere den. CTRL-klik for at centrere skærmen over stationen
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Spring over nuværende ordre og start næste. CTRL + klik springer til den valgte ordre
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Slet den markerede ordre
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Lav den markerede ordre til en "uden stop" ordre
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Indsæt en ny ordre før den markerede eller ved slutningen af ordrelisten
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Få den markerede ordre til at tvinge toget til at vente på en fuld last
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Få den markerede ordre til at tvinge toget til at aflæsse
STR_TIMETABLE_TOOLTIP :{BLACK}Køreplan - klik på en ordre for at markere den.
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Ændre hvor lang tid den markerede ordre skal tage
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Nulstil tiden for den markerede ordre
@@ -2787,8 +2760,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Kan ikke vende retningen af toget...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Omdøb tog-/togvognstypen
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Kan ikke omdøbe tog-/togvognstypen...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Få den valgte ordre til at tvinge køretøjet til at smide lasten
-STR_TRANSFER :{BLACK}Overfør
STR_CLEAR_TIME :{BLACK}Nulstil tid
STR_RESET_LATENESS :{BLACK}Nulstil forsinkelse
@@ -2876,8 +2847,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Omdøb køretøjstypen
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Omdøb køretøjstypen
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Kan ikke omdøbe køretøjstypen...
-STR_GO_TO_ROADVEH_DEPOT :Gå til {TOWN} værksted
-STR_SERVICE_AT_ROADVEH_DEPOT :Service i {TOWN} værksted
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Ombyg vejkøretøj til at laste en anden type last
STR_REFIT_ROAD_VEHICLE :{BLACK}Ombyg lastbil
@@ -2953,8 +2922,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Ny kapacitet: {GOLD}{CARGO}{}{BLACK}Pris for ombyggelse: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Kan ikke ombygge skib...
STR_9842_REFITTABLE :(kan ombygges)
-STR_GO_TO_SHIP_DEPOT :Sejl til {TOWN} skibsdok
-SERVICE_AT_SHIP_DEPOT :Service i {TOWN} skibsdok
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Lufthavne
@@ -3025,8 +2992,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Vælg den type last der skal flyves med:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Ny kapacitet: {GOLD}{STRING}{}{BLACK}Ombygningspris: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Kan ikke ombygge fly...
-STR_GO_TO_AIRPORT_HANGAR :Flyv til {STATION} hangar
-SERVICE_AT_AIRPORT_HANGAR :Service i {STATION} hangar
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Køreplan)
--- a/src/lang/dutch.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/dutch.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1026,7 +1026,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Realistische acceleratie van treinen: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Verbied schepen en treinen om 90 graden te draaien: {ORANGE}{STRING} {LTBLUE} (Vereist NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Stations samenvoegen als ze naast elkaar worden gebouwd: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Verlaat station wanneer één lading geladen is, met 'vol laden': {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Gebruik verbeterde laad algorithme: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Voertuigen geleidelijk laden: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Inflatie: {ORANGE}{STRING}
@@ -2652,26 +2651,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Inwoners feesten... {}Eerste trein arriveert in {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Details)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Trein in de weg
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :Ga naar {STATION}
-STR_GO_TO_TRANSFER :Ga naar {STATION} (Overladen en neem goederen)
-STR_8807_GO_TO_UNLOAD :Ga naar {STATION} (Uit laden)
-STR_GO_TO_TRANSFER_UNLOAD :Ga naar {STATION} (Overladen en leeg laten)
-STR_8808_GO_TO_LOAD :Ga naar {STATION} (Laden)
-STR_GO_TO_TRANSFER_LOAD :Ga naar {STATION} (Overladen en wacht tot vol geladen)
-STR_880A_GO_NON_STOP_TO :Ga non-stop naar {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Ga non-stop naar {STATION} (Overladen en neem goederen)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Ga non-stop naar {STATION} (Uitladen)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Ga non-stop naar {STATION} (Overladen en leeg laten)
-STR_880C_GO_NON_STOP_TO_LOAD :Ga non-stop naar {STATION} (Laden)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Ga non-stop naar {STATION} (Overladen en wacht tot vol geladen)
-STR_GO_TO_TRAIN_DEPOT :Ga naar {TOWN} Trein Depot
-STR_SERVICE_AT_TRAIN_DEPOT :Reparatie in {TOWN} treindepot
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Ga zonder tussenstop naar {TOWN} Treindepot
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Reparatie zonder tussentop in {TOWN} treindepot
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Reis (geen dienstregeling)
STR_TIMETABLE_TRAVEL_FOR :Reis naar {STRING}
STR_TIMETABLE_STAY_FOR :en blijf voor {STRING}
@@ -2712,10 +2692,7 @@
STR_8820_RENAME :{BLACK}Hernoemen
STR_8823_SKIP :{BLACK}Sla over
STR_8824_DELETE :{BLACK}Verwijder
-STR_8825_NON_STOP :{BLACK}Non-stop
STR_8826_GO_TO :{BLACK}Ga naar
-STR_8827_FULL_LOAD :{BLACK}Vol laden
-STR_8828_UNLOAD :{BLACK}Uitladen
STR_REFIT :{BLACK}Ombouwen
STR_REFIT_TIP :{BLACK}Kies naar welk type vracht ombouwen in deze order. Ctrl-klik om ombouw instructie te verwijderen
STR_REFIT_ORDER :(Ombouwen naar {STRING})
@@ -2725,7 +2702,6 @@
STR_ORDER_VIEW_TOOLTIP :{BLACK}Ga naar het order scherm
STR_8829_ORDERS :{WHITE}{VEHICLE} (Orders)
STR_882A_END_OF_ORDERS :{SETX 10}- - Einde van orders - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Reparatie
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Kan spoorvoertuig niet bouwen...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Gebouwd: {LTBLUE}{NUM}{BLACK} Waarde: {LTBLUE}{CURRENCY}
@@ -2775,10 +2751,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Orderlijst - klik op een order om deze te selecteren. CTRL + klikken gaat naar het station
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Sla huidige order over, en begin met de volgende. CTRL + klik, begin direct met geselecteerde order
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Verwijder de geselecteerde order
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Maak de geselecteerde order non-stop
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Voeg een nieuwe order in voor de geselecteerde order, of voeg het toe aan de eind van de lijst
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Zorg dat de geselecteerde order het voertuig forceert te wachten voor een volledige belading
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Zorg dat de geselecteerde order het voertuig forceert uit te laden
STR_TIMETABLE_TOOLTIP :{BLACK}Dienstregeling - klik op een opdracht om het te selecteren
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Verander de hoeveelheid tijd die de geselecteerde opdracht mag innemen
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Verwijder de hoeveelheid tijd die de geselecteerde opdracht mag innemen
@@ -2802,8 +2775,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Kan de richting van de trein niet omdraaien...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Hernoem trein voertuig type
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Kan het trein voertuig type niet hernoemen...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Forceer het voertuig goederen te dumpen bij geselecteerde order
-STR_TRANSFER :{BLACK}Overladen
STR_CLEAR_TIME :{BLACK}Reset de tijd
STR_RESET_LATENESS :{BLACK}Reset teller
@@ -2891,8 +2862,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Hernoem wegvoertuigtype
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Hernoem wegvoertuigtype
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Kan wegvoertuigtype niet hernoemen...
-STR_GO_TO_ROADVEH_DEPOT :Ga naar {TOWN} Wegvoertuig Depot
-STR_SERVICE_AT_ROADVEH_DEPOT :Repareren in {TOWN} wagendepot
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Verbouw het wegvoertuig om een andere lading the vervoeren
STR_REFIT_ROAD_VEHICLE :{BLACK}Verbouw wegvoertuig
@@ -2968,8 +2937,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nieuwe capaciteit: {GOLD}{CARGO}{}{BLACK}Ombouwkosten: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Kan schip niet ombouwen...
STR_9842_REFITTABLE :(ombouwbaar)
-STR_GO_TO_SHIP_DEPOT :Ga naar {TOWN} Scheepswerf
-SERVICE_AT_SHIP_DEPOT :Reparatie in {TOWN} Scheepswerf
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Vliegvelden
@@ -3040,8 +3007,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Selecteer goederentype om te vervoeren:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nieuwe capaciteit: {GOLD}{STRING}{}{BLACK}Ombouwkosten: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Kan vliegtuig niet ombouwen...
-STR_GO_TO_AIRPORT_HANGAR :Ga naar {STATION} hanger
-SERVICE_AT_AIRPORT_HANGAR :Reparatie bij {STATION} hanger
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Dienstregeling)
--- a/src/lang/english.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/english.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1028,7 +1028,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Enable realistic acceleration for trains: {ORANGE}{STRING1}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Forbid trains and ships to make 90 deg turns: {ORANGE}{STRING1} {LTBLUE} (requires NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Join train stations built next to each other: {ORANGE}{STRING1}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Leave station when any cargo is full, if 'full load': {ORANGE}{STRING1}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Use improved loading algorithm: {ORANGE}{STRING1}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Load vehicles gradually: {ORANGE}{STRING1}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Inflation: {ORANGE}{STRING1}
@@ -2654,26 +2653,78 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Citizens celebrate . . .{}First train arrives at {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Details)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Train in the way
-STR_8804 :{SETX 10}{COMMA}: {STRING1} {STRING1}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING1} {STRING1}
-STR_8806_GO_TO :Go to {STATION}
-STR_GO_TO_TRANSFER :Go to {STATION} (Transfer and take cargo)
-STR_8807_GO_TO_UNLOAD :Go to {STATION} (Unload)
-STR_GO_TO_TRANSFER_UNLOAD :Go to {STATION} (Transfer and leave empty)
-STR_8808_GO_TO_LOAD :Go to {STATION} (Load)
-STR_GO_TO_TRANSFER_LOAD :Go to {STATION} (Transfer and wait for full load)
-STR_880A_GO_NON_STOP_TO :Go non-stop to {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Go non-stop to {STATION} (Transfer and take cargo)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Go non-stop to {STATION} (Unload)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Go non-stop to {STATION} (Transfer and leave empty)
-STR_880C_GO_NON_STOP_TO_LOAD :Go non-stop to {STATION} (Load)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Go non-stop to {STATION} (Transfer and wait for full load)
-STR_GO_TO_TRAIN_DEPOT :Go to {TOWN} Train Depot
-STR_SERVICE_AT_TRAIN_DEPOT :Service at {TOWN} Train Depot
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Go non-stop to {TOWN} Train Depot
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Service non-stop at {TOWN} Train Depot
+STR_8804 :{SETX 10}{COMMA}: {STRING4} {STRING2}
+STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING4} {STRING2}
+STR_ORDER_GO_TO :Go to
+STR_ORDER_GO_NON_STOP_TO :Go non-stop to
+STR_ORDER_GO_VIA :Go via
+STR_ORDER_GO_NON_STOP_VIA :Go non-stop via
+STR_ORDER_DROP_LOAD_IF_POSSIBLE :Load if available
+STR_ORDER_DROP_FULL_LOAD_ALL :Full load all cargo
+STR_ORDER_DROP_FULL_LOAD_ANY :Full load any cargo
+STR_ORDER_DROP_NO_LOADING :No loading
+STR_ORDER_DROP_UNLOAD_IF_ACCEPTED :Unload if accepted
+STR_ORDER_DROP_UNLOAD :Unload all
+STR_ORDER_DROP_TRANSFER :Transfer
+STR_ORDER_DROP_NO_UNLOADING :No unloading
+STR_ORDER_FULL_LOAD :(Full load)
+STR_ORDER_FULL_LOAD_ANY :(Full load any cargo)
+STR_ORDER_NO_LOAD :(No loading)
+STR_ORDER_UNLOAD :(Unload and take cargo)
+STR_ORDER_UNLOAD_FULL_LOAD :(Unload and wait for full load)
+STR_ORDER_UNLOAD_FULL_LOAD_ANY :(Unload and wait for any full load)
+STR_ORDER_UNLOAD_NO_LOAD :(Unload and leave empty)
+STR_ORDER_TRANSFER :(Transfer and take cargo)
+STR_ORDER_TRANSFER_FULL_LOAD :(Transfer and wait for full load)
+STR_ORDER_TRANSFER_FULL_LOAD_ANY :(Transfer and wait for any full load)
+STR_ORDER_TRANSFER_NO_LOAD :(Transfer and leave empty)
+STR_ORDER_NO_UNLOAD :(No unload and take cargo)
+STR_ORDER_NO_UNLOAD_FULL_LOAD :(No unload and wait for full load)
+STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY :(No unload and wait for any full load)
+STR_ORDER_TOOLTIP_NON_STOP :{BLACK}Change the stopping behaviour of the highlighted order
+STR_ORDER_TOOLTIP_FULL_LOAD :{BLACK}Change the loading behaviour of the highlighted order
+STR_ORDER_TOOLTIP_UNLOAD :{BLACK}Change the unloading behaviour of the highlighted order
+STR_GO_TO_STATION :{STRING} {STATION} {STRING}
-STR_TIMETABLE_GO_TO :{STRING1} {STRING2}
+STR_ORDER_GO_TO_DROPDOWN_TOOLTIP :{BLACK}Insert an advanced order
+STR_ORDER_GO_TO_NEAREST_DEPOT :Go to nearest depot
+STR_ORDER_GO_TO_NEAREST_HANGAR :Go to nearest hangar
+STR_ORDER_NEAREST_DEPOT :the nearest
+STR_ORDER_NEAREST_HANGAR :the nearest Hangar
+STR_ORDER_SERVICE_AT :Service at
+STR_ORDER_SERVICE_NON_STOP_AT :Service non-stop at
+STR_ORDER_TRAIN_DEPOT :Train Depot
+STR_ORDER_ROAD_DEPOT :Road Vehicle Depot
+STR_ORDER_SHIP_DEPOT :Ship Depot
+STR_GO_TO_DEPOT :{STRING} {TOWN} {STRING}
+STR_GO_TO_NEAREST_DEPOT :{STRING} {STRING} {STRING}
+STR_GO_TO_HANGAR :{STRING} {STATION} Hangar
+
+STR_ORDER_CONDITIONAL :Conditional order jump
+STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP :{BLACK}Vehicle data to base jumping on
+STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP :{BLACK}How to compare the vehicle data to the given value
+STR_ORDER_CONDITIONAL_VALUE_TOOLTIP :{BLACK}The value to compare the vehicle data against
+STR_ORDER_CONDITIONAL_VALUE_CAPT :{WHITE}Enter value to compare against
+STR_ORDER_CONDITIONAL_LOAD_PERCENTAGE :Load percentage
+STR_ORDER_CONDITIONAL_RELIABILITY :Reliability
+STR_ORDER_CONDITIONAL_MAX_SPEED :Maximum speed
+STR_ORDER_CONDITIONAL_AGE :Vehicle age (years)
+STR_ORDER_CONDITIONAL_REQUIRES_SERVICE :Requires service
+STR_ORDER_CONDITIONAL_UNCONDITIONALLY :Always
+STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS :is equal to
+STR_ORDER_CONDITIONAL_COMPARATOR_NOT_EQUALS :is not equal to
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN :is less than
+STR_ORDER_CONDITIONAL_COMPARATOR_LESS_EQUALS :is less or equal to
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_THAN :is more than
+STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS :is more or equal to
+STR_ORDER_CONDITIONAL_COMPARATOR_IS_TRUE :is true
+STR_ORDER_CONDITIONAL_COMPARATOR_IS_FALSE :is false
+STR_CONDITIONAL_VALUE :{SKIP}{BLACK}{COMMA}
+STR_CONDITIONAL_UNCONDITIONAL :Jump to order {COMMA}
+STR_CONDITIONAL_NUM :Jump to order {COMMA} when {STRING} {STRING} {COMMA}
+STR_CONDITIONAL_TRUE_FALSE :Jump to order {COMMA} when {STRING} {STRING}
+
+STR_TIMETABLE_GO_TO :{STRING4} {STRING2}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Travel (not timetabled)
STR_TIMETABLE_TRAVEL_FOR :Travel for {STRING1}
STR_TIMETABLE_STAY_FOR :and stay for {STRING1}
@@ -2714,10 +2765,7 @@
STR_8820_RENAME :{BLACK}Rename
STR_8823_SKIP :{BLACK}Skip
STR_8824_DELETE :{BLACK}Delete
-STR_8825_NON_STOP :{BLACK}Non-Stop
STR_8826_GO_TO :{BLACK}Go To
-STR_8827_FULL_LOAD :{BLACK}Full Load
-STR_8828_UNLOAD :{BLACK}Unload
STR_REFIT :{BLACK}Refit
STR_REFIT_TIP :{BLACK}Select what cargo type to refit to in this order. Control click to remove refit instruction
STR_REFIT_ORDER :(Refit to {STRING})
@@ -2727,7 +2775,6 @@
STR_ORDER_VIEW_TOOLTIP :{BLACK}Switch to the order view
STR_8829_ORDERS :{WHITE}{VEHICLE} (Orders)
STR_882A_END_OF_ORDERS :{SETX 10}- - End of Orders - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Service
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Can't build railway vehicle...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Built: {LTBLUE}{NUM}{BLACK} Value: {LTBLUE}{CURRENCY}
@@ -2777,10 +2824,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Orders list - click on an order to highlight it. CTRL + click scrolls to the station
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Skip the current order, and start the next. CTRL + click skips to the selected order
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Delete the highlighted order
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Make the highlighted order non-stop
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Insert a new order before the highlighted order, or add to end of list
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Make the highlighted order force the vehicle to wait for a full load
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Make the highlighted order force the vehicle to unload
STR_TIMETABLE_TOOLTIP :{BLACK}Timetable - click on an order to highlight it.
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Change the amount of time that the highlighted order should take
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Clear the amount of time for the highlighted order
@@ -2804,8 +2848,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Can't reverse direction of train...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Rename train vehicle type
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Can't rename train vehicle type...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Make the highlighted order force the vehicle to dump cargo
-STR_TRANSFER :{BLACK}Transfer
STR_CLEAR_TIME :{BLACK}Clear Time
STR_RESET_LATENESS :{BLACK}Reset Late Counter
@@ -2893,8 +2935,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Rename road vehicle type
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Rename road vehicle type
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Can't rename road vehicle type...
-STR_GO_TO_ROADVEH_DEPOT :Go to {TOWN} Road Vehicle Depot
-STR_SERVICE_AT_ROADVEH_DEPOT :Service at {TOWN} Road Vehicle Depot
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Refit road vehicle to carry a different cargo type
STR_REFIT_ROAD_VEHICLE :{BLACK}Refit road vehicle
@@ -2970,8 +3010,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}New capacity: {GOLD}{CARGO}{}{BLACK}Cost of refit: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Can't refit ship...
STR_9842_REFITTABLE :(refittable)
-STR_GO_TO_SHIP_DEPOT :Go to {TOWN} Ship Depot
-SERVICE_AT_SHIP_DEPOT :Service at {TOWN} Ship Depot
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Airports
@@ -3042,8 +3080,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Select cargo type to carry:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}New capacity: {GOLD}{STRING1}{}{BLACK}Cost of refit: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Can't refit aircraft...
-STR_GO_TO_AIRPORT_HANGAR :Go to {STATION} Hangar
-SERVICE_AT_AIRPORT_HANGAR :Service at {STATION} Hangar
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Timetable)
--- a/src/lang/english_US.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/english_US.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1023,7 +1023,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Enable realistic acceleration for trains: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Forbid trains and ships to make 90 deg turns: {ORANGE}{STRING} {LTBLUE} (requires NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Join train stations built next to each other: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Leave station when any cargo is full, if 'full load': {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Use improved loading algorithm: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Load vehicles gradually: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Inflation: {ORANGE}{STRING}
@@ -2619,26 +2618,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Citizens celebrate . . .{}First train arrives at {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Details)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Train in the way
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :Go to {STATION}
-STR_GO_TO_TRANSFER :Go to {STATION} (Transfer and take cargo)
-STR_8807_GO_TO_UNLOAD :Go to {STATION} (Unload)
-STR_GO_TO_TRANSFER_UNLOAD :Go to {STATION} (Transfer and leave empty)
-STR_8808_GO_TO_LOAD :Go to {STATION} (Load)
-STR_GO_TO_TRANSFER_LOAD :Go to {STATION} (Transfer and wait for full load)
-STR_880A_GO_NON_STOP_TO :Go non-stop to {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Go non-stop to {STATION} (Transfer and take cargo)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Go non-stop to {STATION} (Unload)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Go non-stop to {STATION} (Transfer and leave empty)
-STR_880C_GO_NON_STOP_TO_LOAD :Go non-stop to {STATION} (Load)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Go non-stop to {STATION} (Transfer and wait for full load)
-STR_GO_TO_TRAIN_DEPOT :Go to {TOWN} Train Depot
-STR_SERVICE_AT_TRAIN_DEPOT :Service at {TOWN} Train Depot
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Go non-stop to {TOWN} Train Depot
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Service non-stop at {TOWN} Train Depot
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Travel (not timetabled)
STR_TIMETABLE_TRAVEL_FOR :Travel for {STRING}
STR_TIMETABLE_STAY_FOR :and stay for {STRING}
@@ -2679,10 +2659,7 @@
STR_8820_RENAME :{BLACK}Rename
STR_8823_SKIP :{BLACK}Skip
STR_8824_DELETE :{BLACK}Delete
-STR_8825_NON_STOP :{BLACK}Non-Stop
STR_8826_GO_TO :{BLACK}Go To
-STR_8827_FULL_LOAD :{BLACK}Full Load
-STR_8828_UNLOAD :{BLACK}Unload
STR_REFIT :{BLACK}Refit
STR_REFIT_TIP :{BLACK}Select what cargo type to refit to in this order. Control click to remove refit instruction
STR_REFIT_ORDER :(Refit to {STRING})
@@ -2690,7 +2667,6 @@
STR_TIMETABLE_VIEW_TOOLTIP :{BLACK}Switch to the timetable view
STR_8829_ORDERS :{WHITE}{VEHICLE} (Orders)
STR_882A_END_OF_ORDERS :{SETX 10}- - End of Orders - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Service
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Can't build railroad vehicle...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Built: {LTBLUE}{NUM}{BLACK} Value: {LTBLUE}{CURRENCY}
@@ -2740,10 +2716,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Orders list - click on order to highlight it
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Skip the current order, and start the next. CTRL + click skips to the selected order)
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Delete the highlighted order
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Make the highlighted order non-stop
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Insert a new order before the highlighted order, or add to end of list
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Make the highlighted order force the vehicle to wait for a full load
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Make the highlighted order force the vehicle to unload
STR_TIMETABLE_TOOLTIP :{BLACK}Timetable - click on an order to highlight it.
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Change the amount of time that the highlighted order should take
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Clear the amount of time for the highlighted order
@@ -2767,8 +2740,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Can't reverse direction of train...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Rename train vehicle type
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Can't rename train vehicle type...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Make the highlighted order force the vehicle to dump cargo
-STR_TRANSFER :{BLACK}Transfer
STR_CLEAR_TIME :{BLACK}Clear Time
STR_RESET_LATENESS :{BLACK}Reset Late Counter
@@ -2855,8 +2826,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Rename road vehicle type
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Rename road vehicle type
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Can't rename road vehicle type...
-STR_GO_TO_ROADVEH_DEPOT :Go to {TOWN} Road Vehicle Depot
-STR_SERVICE_AT_ROADVEH_DEPOT :Service at {TOWN} Road Vehicle Depot
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Refit road vehicle to carry a different cargo type
STR_REFIT_ROAD_VEHICLE :{BLACK}Refit road vehicle
@@ -2932,8 +2901,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}New capacity: {GOLD}{CARGO}{}{BLACK}Cost of refit: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Can't refit ship...
STR_9842_REFITTABLE :(refittable)
-STR_GO_TO_SHIP_DEPOT :Go to {TOWN} Ship Depot
-SERVICE_AT_SHIP_DEPOT :Service at {TOWN} Ship Depot
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Airports
@@ -3004,8 +2971,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Select cargo type to carry:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}New capacity: {GOLD}{STRING}{}{BLACK}Cost of refit: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Can't refit aircraft...
-STR_GO_TO_AIRPORT_HANGAR :Go to {STATION} Hangar
-SERVICE_AT_AIRPORT_HANGAR :Service at {STATION} Hangar
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Timetable)
--- a/src/lang/esperanto.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/esperanto.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1019,7 +1019,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Permesu realecan rapidigon por trajnoj: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Trajnoj kaj ŝipoj ne ort-turniĝu: {ORANGE}{STRING} {LTBLUE} (bezonas NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Ligu stacidomojn konstruatajn unu apud la alia: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Ĉe 'plene ŝarĝu' ekiru se ajna ŝarĝo estas plena: {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Uzu plibonigitan ŝarĝalgoritmon: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Laŭgrade ŝarĝu veturilojn: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Inflacio: {ORANGE}{STRING}
@@ -2491,24 +2490,6 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Enloĝantoj festas . . .{}Unua trajno alvenas ĉe {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Detaloj)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Trajno okupas la lokon
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :Iru al {STATION}
-STR_GO_TO_TRANSFER :Iru al {STATION} (Transigu kaj prenu ŝarĝon)
-STR_8807_GO_TO_UNLOAD :Iru al {STATION} (Deŝarĝu)
-STR_GO_TO_TRANSFER_UNLOAD :Iru al {STATION} (Transigu kaj lasu malplena)
-STR_8808_GO_TO_LOAD :Iru al {STATION} (Ŝarĝu)
-STR_GO_TO_TRANSFER_LOAD :Iru al {STATION} (Transigu kaj atendu ĝis plena ŝarĝo)
-STR_880A_GO_NON_STOP_TO :Iru senhalte al {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Iru senhalte al {STATION} (Transigu kaj prenu ŝarĝon)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Iru senhalte al {STATION} (Deŝarĝu)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Iru senhalte al {STATION} (Transigu kaj lasu malplena)
-STR_880C_GO_NON_STOP_TO_LOAD :Iru senhalte al {STATION} (Ŝarĝu)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Iru senhalte al {STATION} (Transigu kaj atendu ĝis plena ŝarĝo)
-STR_GO_TO_TRAIN_DEPOT :Iru al {TOWN} Trajndeponejo
-STR_SERVICE_AT_TRAIN_DEPOT :Prizorgo ĉe {TOWN} Trajndeponejo
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Iru senhalte al {TOWN} Trajndeponejo
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Prizorgo senhalte ĉe {TOWN} Trajndeponejo
STR_HEADING_FOR_TRAIN_DEPOT :{ORANGE}Irante al {TOWN} Trajndeponejo
STR_HEADING_FOR_TRAIN_DEPOT_VEL :{ORANGE}Irante al {TOWN} Trajndeponejo, {VELOCITY}
@@ -2544,16 +2525,12 @@
STR_8820_RENAME :{BLACK}Renomu
STR_8823_SKIP :{BLACK}Plusaltu
STR_8824_DELETE :{BLACK}Forviŝu
-STR_8825_NON_STOP :{BLACK}Senhalte
STR_8826_GO_TO :{BLACK}Iru al
-STR_8827_FULL_LOAD :{BLACK}Plenigu
-STR_8828_UNLOAD :{BLACK}Deŝarĝu
STR_REFIT :{BLACK}Transformu
STR_REFIT_TIP :{BLACK}Elektu ŝarĝtipon por transformo en ĉi tiu ordeno. CTRL+klako por forigi instrukcion
STR_REFIT_ORDER :(Transformu al {STRING})
STR_8829_ORDERS :{WHITE}{VEHICLE} (Ordenoj)
STR_882A_END_OF_ORDERS :{SETX 10}- - Fino de Ordenoj - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Prizorgo
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Ne povas krei relan veturilon...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Kreite: {LTBLUE}{NUM}{BLACK} Valoro: {LTBLUE}{CURRENCY}
@@ -2599,10 +2576,7 @@
STR_SHOW_TOTAL_CARGO :{BLACK}Montru tutan kapablon de trajno, dividite laŭ ŝarĝtipo
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Ordena listo - alklaku ordenon por elekti. CTRL + klako skrolas al la stacio
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Forviŝu la elektitan ordenon
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Senhaltigu elektitan ordenon
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Enigu novan ordenon antaŭ la elektita ordeno, aŭ aldonu fine de la listo
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}La elektita ordeno igu la veturilon atendi ĝis plena ŝarĝo
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}La elektita ordeno igu la veturilon deŝarĝi
STR_SERVICE_HINT :{BLACK}Transsaltu ordenon ĝis prizorgo necesos
STR_VEHICLE_INFO_COST_WEIGHT_SPEED_POWER :{BLACK}Kosto: {CURRENCY} Pezo: {WEIGHT_S}{}Rapideco: {VELOCITY} Forto: {POWER}{}Irkosto: po {CURRENCY} jare{}Kapablo: {CARGO}
STR_885C_BROKEN_DOWN :{RED}Rompite
@@ -2622,8 +2596,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Ne povas inversigi direkton de trajno...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Renomu trajnan veturiltipon
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Ne povas renomi trajnan veturiltipon...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}La elektita ordeno igu la veturilon demeti la ŝarĝon
-STR_TRANSFER :{BLACK}Transigu
STR_TRAIN_STOPPING :{RED}Haltiĝas
STR_TRAIN_STOPPING_VEL :{RED}Haltiĝas, {VELOCITY}
@@ -2690,8 +2662,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Renomu vojveturilan tipon
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Renomu vojveturilan tipon
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Ne povas renomi vojveturilan tipon...
-STR_GO_TO_ROADVEH_DEPOT :Iru al {TOWN} Vojveturila Deponejo
-STR_SERVICE_AT_ROADVEH_DEPOT :Prizorgo ĉe {TOWN} Vojveturila Deponejo
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Transformu vojveturilon por porti alian ŝarĝon
STR_REFIT_ROAD_VEHICLE :{BLACK}Transformu vojveturilon
@@ -2767,8 +2737,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nova kapablo: {GOLD}{CARGO}{}{BLACK}Transformkosto: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Ne povas transformi ŝipon...
STR_9842_REFITTABLE :(transformebla)
-STR_GO_TO_SHIP_DEPOT :Iru al {TOWN} Ŝipdeponejo
-SERVICE_AT_SHIP_DEPOT :Prizorgo en la ŝipdeponejo de {TOWN}
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Flughavenoj
@@ -2839,8 +2807,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Elektu ŝarĝtipon por porti:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nova kapablo: {GOLD}{STRING}{}{BLACK}Transformkosto: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Ne povas reformi aviadilon...
-STR_GO_TO_AIRPORT_HANGAR :Iru al {STATION} Hangaro
-SERVICE_AT_AIRPORT_HANGAR :Prizorgo en la hangaro de {STATION}
##id 0xB000
STR_B000_ZEPPELIN_DISASTER_AT :{BLACK}{BIGFONT}Zepelina katastrofo en {STATION}!
--- a/src/lang/estonian.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/estonian.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1126,7 +1126,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Aktiveeri realistlik rongide kiirendamine: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Keela rongidel ja laevadel 90 kraadised pöörded: {ORANGE}{STRING} {LTBLUE} (vajab NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Ühenda üksteise vastu ehitatud jaamad kokku: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Lahku jaamast, kui üks kaupadest on täis laetud: {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Kasuta parandatud laadimisalgoritmi: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Laadi veovahendeid järkjärguliselt: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Inflatsioon: {ORANGE}{STRING}
@@ -2739,26 +2738,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Rahvas rõõmustab. . .{}{STATION} jaama saabus esimene rong!
STR_8802_DETAILS :{WHITE}{VEHICLE} (üksikasjad)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Rong on ees
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :Mine {STATION}
-STR_GO_TO_TRANSFER :Mine {STATION} (laadi ümber ja võta laadung peale)
-STR_8807_GO_TO_UNLOAD :Mine {STATION} (laadi maha)
-STR_GO_TO_TRANSFER_UNLOAD :Mine {STATION} (laadi ümber ja jäta tühjaks)
-STR_8808_GO_TO_LOAD :Mine {STATION} (laadi)
-STR_GO_TO_TRANSFER_LOAD :Mine {STATION} (laadi ümber ja oota täislaadungit)
-STR_880A_GO_NON_STOP_TO :Sõida läbi {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Sõida läbi {STATION} (laadi ümber ja oota täislaadungit)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Sõida läbi {STATION} (laadi maha)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Sõida läbi {STATION} (laadi ümber ja jäta tühjaks)
-STR_880C_GO_NON_STOP_TO_LOAD :Sõida läbi {STATION} (laadi)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Sõida läbi {STATION} (laadi ümber ja oota täislaadungit)
-STR_GO_TO_TRAIN_DEPOT :Mine linna {TOWN} rongidepoosse
-STR_SERVICE_AT_TRAIN_DEPOT :Hoolda linna {TOWN} rongidepoos
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Sõida läbi linna {TOWN} rongidepoo
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Hooldus linna {TOWN} rongidepoost läbisõidul
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Sõitmine (sõiduplaanita)
STR_TIMETABLE_TRAVEL_FOR :Sõida {STRING}
STR_TIMETABLE_STAY_FOR :ja oota {STRING}
@@ -2799,10 +2779,7 @@
STR_8820_RENAME :{BLACK}Nime muutmine
STR_8823_SKIP :{BLACK}Jäta vahele
STR_8824_DELETE :{BLACK}Kustuta
-STR_8825_NON_STOP :{BLACK}Peatusteta
STR_8826_GO_TO :{BLACK}Mine
-STR_8827_FULL_LOAD :{BLACK}Laadi täis
-STR_8828_UNLOAD :{BLACK}Laadi maha
STR_REFIT :{BLACK}Taasseadista
STR_REFIT_TIP :{BLACK}Vali, millist laadungit ümber seadistada selles järjestuses. Ümberseadistuse käsu eemaldamiseks hoia klõpsamise ajal all Control nuppu
STR_REFIT_ORDER :(Taasseadista {STRING})
@@ -2810,7 +2787,6 @@
STR_TIMETABLE_VIEW_TOOLTIP :{BLACK}Näita sõiduplaani
STR_8829_ORDERS :{WHITE}{VEHICLE} (käsud)
STR_882A_END_OF_ORDERS :{SETX 10}- - Sihtpunktide lõpp - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Hooldus
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Rööbassõidukit ei saa ehitada...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Ehitatud: {LTBLUE}{NUM}{BLACK} Väärtus: {LTBLUE}{CURRENCY}
@@ -2860,10 +2836,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Sihtpunktide nimekiri - vajuta käsul et see valida. CTRL + klik kerib jaama juurde
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Jäta praegune järjestus vahele ja alusta järgmisega. CTRL + klõps jätab vahele kuni valitud järjestuseni
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Kustuta valitud käsk
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Muuda valitud käsk peatuseta sihtpunktiks
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Lisa uus käsk nimekirja lõppu, või enne valitud käsku
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Käsi valitud sihtpunktis sõiduk täis laadida
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Käsi valitud sihtpunktis sõiduk tühjaks laadida
STR_TIMETABLE_TOOLTIP :{BLACK}Sõiduplaan - esiletõstmiseks klõpsa sihtpunktil
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Muuda, kaua esile tõstetud sihtpunkti peale aega peaks kuluma
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Tühista esile tõstetud sihtpunkti ajaperiood
@@ -2887,8 +2860,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Ei saa rongi ümber pöörata.
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Muuda rongivaguni tüübinime
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Raudteesõiduki tüübinime ei saa muuta...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Käsi valitud sihtpunktis sõiduki laadung kõrvaldada
-STR_TRANSFER :{BLACK}Laadi ümber
STR_CLEAR_TIME :{BLACK}Tühista aeg
STR_RESET_LATENESS :{BLACK}Tühista hilinemisloendur
@@ -2976,8 +2947,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Muuda mootorsõiduki tüübinime
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Muuda mootorsõiduki tüübinime
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Mootorsõiduki tüübinime ei saa muuta...
-STR_GO_TO_ROADVEH_DEPOT :Mine linna {TOWN} garaaži
-STR_SERVICE_AT_ROADVEH_DEPOT :Hoolda linna {TOWN} mootorsõidukidepoos
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Seadista mootorsõidukit kandmaks teist tüüpi veost
STR_REFIT_ROAD_VEHICLE :{BLACK}Muuda mootorsõiduki seadistust
@@ -3053,8 +3022,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Uus kandevõime: {GOLD}{CARGO}{}{BLACK}Laeva ümberseadistamise hind: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Ei saa laeva ümber seadistada...
STR_9842_REFITTABLE :(ümberseadistatav)
-STR_GO_TO_SHIP_DEPOT :Mine {TOWN} paadikuuri
-SERVICE_AT_SHIP_DEPOT :Hooldus {TOWN} laevaangaaris
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Lennuväljad
@@ -3125,8 +3092,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Vali kaubatüüp, mida kanda:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Uus kandevõime: {GOLD}{STRING}{}{BLACK}Ümberseadistamise hind: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Ei saa lennukit ümber seadistada...
-STR_GO_TO_AIRPORT_HANGAR :Mine {STATION} angaari
-SERVICE_AT_AIRPORT_HANGAR :Hooldus {STATION} angaaris
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Sõiduplaan)
--- a/src/lang/finnish.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/finnish.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1018,7 +1018,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Junat kiihdyttävät realistisesti: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Junat ja laivat: ei 90-asteen käännöksiä: {ORANGE}{STRING} {LTBLUE} (vaatii: NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Yhdistä vierekkäiset rautatieasemat: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Jätä asema, kun mikä tahansa rahti on täysi, jos 'täysi lastaus': {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Käytä kehittyneempää lastausalgoritmia: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Lataa kulkuneuvot vähitellen: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Inflaatio: {ORANGE}{STRING}
@@ -2599,26 +2598,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Kaupunkilaiset juhlivat . . .{}Ensimmäinen juna saapuu asemalle ({STATION})!
STR_8802_DETAILS :{WHITE}{VEHICLE} (yksityiskohdat)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Juna on tiellä.
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :Asemalle {STATION}
-STR_GO_TO_TRANSFER :Mene asemalle {STATION} (Siirrä ja ota rahti)
-STR_8807_GO_TO_UNLOAD :Mene asemalle {STATION} (Pura rahti)
-STR_GO_TO_TRANSFER_UNLOAD :Mene asemalle {STATION} (Siirrä ja jätä tyhjäksi)
-STR_8808_GO_TO_LOAD :Mene asemalle {STATION} (Lastaa)
-STR_GO_TO_TRANSFER_LOAD :Mene asemalle {STATION} (Siirrä ja odota täyttä rahtia)
-STR_880A_GO_NON_STOP_TO :Mene tauotta asemalle {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Mene tauotta asemalle {STATION} (Siirrä ja ota rahti)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Mene tauotta asemalle {STATION} (Pura rahti)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Mene tauotta asemalle {STATION} (Siirrä ja jätä tyhjäksi)
-STR_880C_GO_NON_STOP_TO_LOAD :Mene tauotta asemalle {STATION} (Lastaa)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Mene tauotta asemalle {STATION} (Siirrä ja odota täyttä rahtia)
-STR_GO_TO_TRAIN_DEPOT :Mene kaupungin {TOWN} veturitalliin
-STR_SERVICE_AT_TRAIN_DEPOT :Huolto veturitallilla ({TOWN})
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Mene pysähtymättä veturitalliin ({TOWN})
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Huolto pysähtymättä veturitallilla ({TOWN})
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Kiertävä (ei aikataulua)
STR_TIMETABLE_TRAVEL_FOR :Kulje kohteeseen {STRING}
STR_TIMETABLE_STAY_FOR :ja odota {STRING}
@@ -2659,10 +2639,7 @@
STR_8820_RENAME :{BLACK}Nimeä
STR_8823_SKIP :{BLACK}Ohita
STR_8824_DELETE :{BLACK}Poista
-STR_8825_NON_STOP :{BLACK}Tauotta
STR_8826_GO_TO :{BLACK}Mene
-STR_8827_FULL_LOAD :{BLACK}Täysi lasti
-STR_8828_UNLOAD :{BLACK}Pura lasti
STR_REFIT :{BLACK}Sovita
STR_REFIT_TIP :{BLACK}Valitse rahdin tyyppi jolla tämä käsky uudistetaan. CTRL+klikkaus poistaa uudistuksen
STR_REFIT_ORDER :(Sovita {STRING})
@@ -2670,7 +2647,6 @@
STR_TIMETABLE_VIEW_TOOLTIP :{BLACK}Näytä aikataulu
STR_8829_ORDERS :{WHITE}{VEHICLE} (aikataulu)
STR_882A_END_OF_ORDERS :{SETX 10}- - aikataulun loppu - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Huolto
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Yksikköä ei voi rakentaa...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Rakennettu: {LTBLUE}{NUM}{BLACK} Arvo: {LTBLUE}{CURRENCY}
@@ -2720,10 +2696,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Aikataulu - napsauta määräystä korostaaksesi.
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Ohita nykyinen pysähdys ja aloita seuraava.
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Poista korostettu määräys.
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Tee korostetusta pysäkistä pysähtymätön.
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Lisää uusi pysähdys ennen valittua, tai lisää listan viimeiseksi.
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Aseta korostettu pysähdys pakottamaan ajoneuvon odottamaan täyttä lastausta.
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Aseta korostettu pysähdys pakottamaan ajoneuvo odottamaan purkua.
STR_TIMETABLE_TOOLTIP :{BLACK}Aikataulu - valitse rivi
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Aseta kuinka kauan käskyn tulisi kestää
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Nollaa tämän rivin aika
@@ -2747,8 +2720,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Junan suuntaa ei voi kääntää...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Nimeä juna(vaunu)n tyyppi uudelleen.
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Juna(vaunu)n tyyppiä ei voi uudelleennimetä...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Pakottaa tyhjentämään rahdin valitulla pysäkillä
-STR_TRANSFER :{BLACK}Siirrä
STR_CLEAR_TIME :{BLACK}Nollaa aika
STR_RESET_LATENESS :{BLACK}Nollaa myöhästymislaskuri
@@ -2833,8 +2804,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Nimeä ajoneuvon tyyppi uudelleen
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Nimeä ajoneuvon tyyppi uudelleen
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Ajoneuvotyyppiä ei voi uudelleennimetä...
-STR_GO_TO_ROADVEH_DEPOT :Aseta kohteeksi huoltoasema, {TOWN}
-STR_SERVICE_AT_ROADVEH_DEPOT :Huolto, kohteena huoltoasema, {TOWN}
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Muuta ajoneuvo rahtaamaan muuta rahtityyppiä.
STR_REFIT_ROAD_VEHICLE :{BLACK}Korjaa ajoneuvo.
@@ -2910,8 +2879,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Uusi kapasiteetti: {GOLD}{CARGO}{}{BLACK}Sovituksen kustannus: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Laivaa ei voi sovittaa...
STR_9842_REFITTABLE :(sovitettava)
-STR_GO_TO_SHIP_DEPOT :Aseta kohteeksi telakka, {TOWN}
-SERVICE_AT_SHIP_DEPOT :Huolto, kohteena telakka, {TOWN}
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Lentokentät
@@ -2982,8 +2949,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Valitse kuljetettava rahtityyppi:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Uusi kapasiteetti: {GOLD}{STRING}{}{BLACK}Sovituksen kustannus: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Lentokonetta ei voi sovittaa...
-STR_GO_TO_AIRPORT_HANGAR :Aseta kohteeksi lentokonehalli, {STATION}
-SERVICE_AT_AIRPORT_HANGAR :Huolto, kohteena lentokonehalli, {STATION}
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Aikataulu)
--- a/src/lang/french.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/french.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1027,7 +1027,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Permettre les accélérations réalistes pour les trains: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Interdire aux trains et navires les virages à 90° : {ORANGE}{STRING} {LTBLUE} (Nécessite le NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Joindre les gares juxtaposées: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Pleine cargaison par un seul type, si 'chargement complet': {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Utiliser l'algorithme amélioré de chargement : {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Charger les véhicules graduellement: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Inflation: {ORANGE}{STRING}
@@ -2653,26 +2652,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Les habitants célèbrent{}l'arrivée du premier train à {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Détails)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Train présent
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :Aller à {STATION}
-STR_GO_TO_TRANSFER :Aller à {STATION} (Transférer et charger)
-STR_8807_GO_TO_UNLOAD :Aller à {STATION} (Décharger)
-STR_GO_TO_TRANSFER_UNLOAD :Aller à {STATION} (Transférer et laisser vide)
-STR_8808_GO_TO_LOAD :Aller à {STATION} (Charger)
-STR_GO_TO_TRANSFER_LOAD :Aller à {STATION} (Transférer et attendre pleine charge)
-STR_880A_GO_NON_STOP_TO :Aller sans s'arrêter à {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Aller sans s'arrêter à {STATION} (Transférer et charger)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Aller sans s'arrêter à {STATION} (Décharger)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Aller sans s'arrêter à {STATION} (Transférer et laisser vide)
-STR_880C_GO_NON_STOP_TO_LOAD :Aller sans s'arrêter à {STATION} (Charger)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Aller sans s'arrêter à {STATION} (Transférer et attendre pleine charge)
-STR_GO_TO_TRAIN_DEPOT :Aller au dépot de {TOWN}
-STR_SERVICE_AT_TRAIN_DEPOT :Entretien au dépôt de {TOWN}
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Aller sans s'arrêter au dépôt de {TOWN}
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Aller faire l'entretien sans s'arrêter au dépôt de {TOWN}
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Voyager (sans horaires)
STR_TIMETABLE_TRAVEL_FOR :Voyager pendant {STRING}
STR_TIMETABLE_STAY_FOR :et rester pendant {STRING}
@@ -2713,10 +2693,7 @@
STR_8820_RENAME :{BLACK}Renommer
STR_8823_SKIP :{BLACK}Suivant
STR_8824_DELETE :{BLACK}Supprimer
-STR_8825_NON_STOP :{BLACK}Sans-arrêt
STR_8826_GO_TO :{BLACK}Aller à
-STR_8827_FULL_LOAD :{BLACK}Charger
-STR_8828_UNLOAD :{BLACK}Décharger
STR_REFIT :{BLACK}Réaménager
STR_REFIT_TIP :{BLACK}Choisir pour quelle cargaison réaménager pour cet ordre. Ctrl-clic pour retirer l'instruction de réaménagement
STR_REFIT_ORDER :(Réaménager pour {STRING})
@@ -2726,7 +2703,6 @@
STR_ORDER_VIEW_TOOLTIP :{BLACK}Basculer vers la vue ordres
STR_8829_ORDERS :{WHITE}{VEHICLE} (Ordres)
STR_882A_END_OF_ORDERS :{SETX 10}- - Fin des ordres - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Entretien
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Impossible de construire le véhicule ferroviaire...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Construit en: {LTBLUE}{NUM}{BLACK} Valeur: {LTBLUE}{CURRENCY}
@@ -2776,10 +2752,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Liste des ordres - Cliquer sur un ordre pour le sélectionner. Ctrl-clic pour déplacer la vue sur la station
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Sauter l'ordre courant, et enchaîner sur le suivant. Ctrl-clic pour sauter l'ordre sélectionné
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Supprime l'ordre sélectionné
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Transformer l'ordre sélectionné en Sans-Arrêt
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Insérer un nouvel ordre
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Forcer le véhicule à attendre un chargement complet pour l'ordre sélectionné
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Forcer le véhicule à attendre un déchargement complet pour l'ordre sélectionné
STR_TIMETABLE_TOOLTIP :{BLACK}Horaire - cliquer sur un ordre pour le séléctionner.
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Modifier la durée de l'ordre séléctionné
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Annuler la durée de l'ordre séléctionné
@@ -2803,8 +2776,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Impossible de faire faire demi-tour...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Renommer le type de train
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Impossible de renommer le type de train...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Forcer le véhicule à vider sa cargaison pour l'ordre sélectionné
-STR_TRANSFER :{BLACK}Transfert
STR_CLEAR_TIME :{BLACK}Annuler durée
STR_RESET_LATENESS :{BLACK}RAZ compteur de retard
@@ -2892,8 +2863,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Renommer type de véhicule routier
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Renommer type de véhicule routier
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Impossible de renommer type de véhicule routier...
-STR_GO_TO_ROADVEH_DEPOT :Aller à {TOWN} Dépôt Routier
-STR_SERVICE_AT_ROADVEH_DEPOT :Entretien au dépôt de {TOWN}
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Réaménager le véhicule routier pour transporter une cargaison différente
STR_REFIT_ROAD_VEHICLE :{BLACK}Réaménager le véhicule routier
@@ -2969,8 +2938,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nouvelle capacité: {GOLD}{CARGO}{}{BLACK}Prix du réaménagement: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Impossible de réaménager le navire...
STR_9842_REFITTABLE :(réaménageable)
-STR_GO_TO_SHIP_DEPOT :Aller au dépôt naval de {TOWN}
-SERVICE_AT_SHIP_DEPOT :Entretien au dépôt naval de {TOWN}
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Aéroports
@@ -3041,8 +3008,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Choisir le type de cargaison à transporter:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nouvelle capacité: {GOLD}{STRING}{}{BLACK}Prix du réaménagement: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Impossible de réaménager l'aéronef...
-STR_GO_TO_AIRPORT_HANGAR :Aller au hangar {STATION}
-SERVICE_AT_AIRPORT_HANGAR :Entretien au hangar {STATION}
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Horaire)
--- a/src/lang/galician.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/galician.txt Sat Apr 12 21:38:49 2008 +0000
@@ -994,7 +994,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Habilita-la aceleración realista nos trens: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Prohibir os trens e os barcos facer xiros de 90 graos: {ORANGE}{STRING} {LTBLUE} (require NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Xunta-las estacións construídas xuntas: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Saír se calquera carga está chea,cando 'Carga chea': {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Usa-lo algoritmo de carga mellorado: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Inflación: {ORANGE}{STRING}
STR_CONFIG_PATCHES_SELECTGOODS :{LTBLUE}Descarga-la carga só cando haxa demanda: {ORANGE}{STRING}
@@ -2427,24 +2426,6 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Celebración cidadá . . .{}Chega o primeiro tren a {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Detalles)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Hai un tren no camiño
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :Ir a {STATION}
-STR_GO_TO_TRANSFER :Ir a {STATION} (Transferir e coller carga)
-STR_8807_GO_TO_UNLOAD :Ir a {STATION} (Descargar)
-STR_GO_TO_TRANSFER_UNLOAD :Ir a {STATION} (Transferir e sair valeiro)
-STR_8808_GO_TO_LOAD :Ir a {STATION} (Cargar)
-STR_GO_TO_TRANSFER_LOAD :Ir a {STATION} (Transferir e esperar a cargar)
-STR_880A_GO_NON_STOP_TO :Ir sen parar a {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Ir sen parar a {STATION} (Transferir e coller carga)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Ir sen parar a {STATION} (Descargar)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Ir sen parar a {STATION} (Descargar e saír baleiro)
-STR_880C_GO_NON_STOP_TO_LOAD :Ir sen parar a {STATION} (Cargar)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Ir sen parar a {STATION} (Transferir e esperar a cargar)
-STR_GO_TO_TRAIN_DEPOT :Ir o Depósito De Trens de {TOWN}
-STR_SERVICE_AT_TRAIN_DEPOT :Face-lo servicio no Depósito de Trens de {TOWN}
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Ir sen paradas o Depósito de Trens de {TOWN}
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Face-lo servicio sen paradas no Depósito de Trens de {TOWN}
STR_HEADING_FOR_TRAIN_DEPOT :{ORANGE}En camiño ó Depósito de {TOWN}
@@ -2479,14 +2460,10 @@
STR_8820_RENAME :{BLACK}Renomear
STR_8823_SKIP :{BLACK}Saltar
STR_8824_DELETE :{BLACK}Borrar
-STR_8825_NON_STOP :{BLACK}Non Parar
STR_8826_GO_TO :{BLACK}Ir a
-STR_8827_FULL_LOAD :{BLACK}Cargar
-STR_8828_UNLOAD :{BLACK}Descarga
STR_TIMETABLE_VIEW :{BLACK}Táboa de tempo
STR_8829_ORDERS :{WHITE}{VEHICLE} (Ordes)
STR_882A_END_OF_ORDERS :{SETX 10}- - Fin das Ordes - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Servicio
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}No se pode construí-lo vehículo de ferrocarril...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Construído: {LTBLUE}{NUM}{BLACK} Valor: {LTBLUE}{CURRENCY}
@@ -2531,10 +2508,7 @@
STR_SHOW_TOTAL_CARGO :{BLACK}Mostra-la capacidade total do tren, dividida por tipos de carga
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Lista de Ordes - Pincha nunha orde para seleccionala
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Borra-la orde seleccionada
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Facer que a orde seleccionada sexa de Non Parar
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Insertar unha nova orde despois da seleccionada, o insertar unha nova orde ó final da lista
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}A orde seleccionada forzará o vehículo a esperar ata que a carga estea completa
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}A orde seleccionada forzará o vehículo a descargar
STR_SERVICE_HINT :{BLACK}saltar esta orde a non ser que sexa necesario o servicio
STR_VEHICLE_INFO_COST_WEIGHT_SPEED_POWER :{BLACK}Coste: {CURRENCY} Peso: {WEIGHT_S}{}Velocidade: {VELOCITY} Potencia: {POWER}{}Coste de Mantemento: {CURRENCY}/ano{}Capacidade: {CARGO}
STR_885C_BROKEN_DOWN :{RED}Roto
@@ -2554,7 +2528,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}No se pode cambia-lo sentido do tren...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Renomea-lo tipo de vehículo de ferrocarril
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Non se pode renome-lo tipo de vehículo de ferrocarril...
-STR_TRANSFER :{BLACK}Transferir
STR_TRAIN_STOPPING :{RED}Parando
STR_TRAIN_STOPPING_VEL :{RED}Parando, {VELOCITY}
@@ -2627,8 +2600,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Renomea-lo tipo de vehículo de estrada
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Renomea-lo tipo de vehículo de estrada
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Non se pode renomea-lo tipo de vehículo de estrada...
-STR_GO_TO_ROADVEH_DEPOT :Ir ó Depósito de Vehículos de Estrada de {TOWN}
-STR_SERVICE_AT_ROADVEH_DEPOT :Servicio no Depósito de Vehículos de Estrada de {TOWN}
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Reaxustar vehículo para levar un tipo diferente de carga
STR_REFIT_ROAD_VEHICLE :{BLACK}Reparar vehículo
@@ -2703,8 +2674,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nova Capacidade: {GOLD}{CARGO}{}{BLACK}Coste do reaxuste: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Non se pode reaxusta-lo barco...
STR_9842_REFITTABLE :(reax.)
-STR_GO_TO_SHIP_DEPOT :Ir ó Depósito de Barcos de {TOWN}
-SERVICE_AT_SHIP_DEPOT :Face-lo servicio no Depósito de Barcos de {TOWN}
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Aeroportos
@@ -2775,8 +2744,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Selecciona o tipo de carga a levar:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nova capacidade: {GOLD}{STRING}{}{BLACK}Cose do reaxuste: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Non se pode reaxusta-la aeronave...
-STR_GO_TO_AIRPORT_HANGAR :Ir ó hangar de {STATION}
-SERVICE_AT_AIRPORT_HANGAR :Face-lo servicio no hangar de {STATION}
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Táboa de tempo)
--- a/src/lang/german.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/german.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1027,7 +1027,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Realistische Zugbeschleunigung aktivieren: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Verbiete Zügen und Schiffen 90 Grad Kurven: {ORANGE}{STRING} {LTBLUE} (erfordert NWF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Bahnhöfe vereinigen, die nebeneinander gebaut werden: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Verlasse die Station, wenn eine Fracht vollgeladen ist: {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Verbessertes Beladeverfahren nutzen: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Fahrzeuge schrittweise beladen: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Inflation: {ORANGE}{STRING}
@@ -2640,26 +2639,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Die Einwohner feiern . . .{}Der erste Zug erreicht {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Details)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Zug ist im Weg
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :Fahre nach {STATION}
-STR_GO_TO_TRANSFER :Fahre nach {STATION} (Umladen und beladen)
-STR_8807_GO_TO_UNLOAD :Fahre nach {STATION} (Entladen)
-STR_GO_TO_TRANSFER_UNLOAD :Fahre nach {STATION} (Umladen und leer verlassen)
-STR_8808_GO_TO_LOAD :Fahre nach {STATION} (Beladen)
-STR_GO_TO_TRANSFER_LOAD :Fahre nach {STATION} (Umladen und voll beladen)
-STR_880A_GO_NON_STOP_TO :Fahre ohne Halt nach {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Fahre ohne Halt nach {STATION} (Umladen und beladen)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Fahre ohne Halt nach {STATION} (Entladen)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Fahre nach {STATION} (Umladen und leer verlassen)
-STR_880C_GO_NON_STOP_TO_LOAD :Fahre ohne Halt nach {STATION} (Beladen)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Fahre ohne Halt nach {STATION} (Umladen und voll beladen)
-STR_GO_TO_TRAIN_DEPOT :Fahre zum {TOWN} Zugdepot
-STR_SERVICE_AT_TRAIN_DEPOT :Wartung bei {TOWN} Zugdepot
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Fahre ohne Halt zu {TOWN} Zugdepot
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Wartung (ohne Halt) bei {TOWN} Zugdepot
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Fahren (ohne Fahrplan)
STR_TIMETABLE_TRAVEL_FOR :{STRING} lang fahren
STR_TIMETABLE_STAY_FOR :und {STRING} lang bleiben
@@ -2700,10 +2680,7 @@
STR_8820_RENAME :{BLACK}Umbenennen
STR_8823_SKIP :{BLACK}Überspringen
STR_8824_DELETE :{BLACK}Löschen
-STR_8825_NON_STOP :{BLACK}ohne Halt
STR_8826_GO_TO :{BLACK}Nach
-STR_8827_FULL_LOAD :{BLACK}Beladen
-STR_8828_UNLOAD :{BLACK}Entladen
STR_REFIT :{BLACK}Umrüsten
STR_REFIT_TIP :{BLACK}Frachtart auswählen, auf die umgerüstet werden soll. Strg+Klick, um einen Umrüstungsauftrag wieder zu entfernen
STR_REFIT_ORDER :(umrüsten auf {STRING})
@@ -2711,7 +2688,6 @@
STR_TIMETABLE_VIEW_TOOLTIP :{BLACK}Zur Fahrplanansicht wechseln
STR_8829_ORDERS :{WHITE}{VEHICLE} (Aufträge)
STR_882A_END_OF_ORDERS :{SETX 10}- - Ende der Aufträge - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Wartung
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Schienenfahrzeug kann nicht gebaut werden...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Gebaut: {LTBLUE}{NUM}{BLACK} Wert: {LTBLUE}{CURRENCY}
@@ -2761,10 +2737,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Auftragsliste - zum Markieren hier anklicken
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Übergehe den laufenden Auftrag, und starte den nächsten
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Lösche den markierten Auftrag
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Führe den markierten Auftrag ohne Halt durch
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Füge einen neuen Auftrag vor dem markierten Auftrag ein, oder setze ihn ans Ende der Liste
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Der markierte Auftrag wird nur nach voller Beladung ausgeführt
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Beim markierten Auftrag wird die volle Entladung veranlasst
STR_TIMETABLE_TOOLTIP :{BLACK}Fahrplan - Einträge anklicken um sie zu markieren.
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Zeitrahmen für den markierten Auftrag ändern
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Zeitrahmen für den markierten Auftrag löschen
@@ -2788,8 +2761,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Die Zugbewegung kann nicht umgekehrt werden...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Zugtyp umbenennen
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Zugtyp kann nicht umbenannt werden...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Beim markierten Eintrag wird die Ladung in den Bahnhof entladen (für späteren Weitertransport)
-STR_TRANSFER :{BLACK}Umladen
STR_CLEAR_TIME :{BLACK}Zeit löschen
STR_RESET_LATENESS :{BLACK}Verspätungszähler zurücksetzen
@@ -2877,8 +2848,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Fahrzeug umbenennen
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Fahrzeug umbenennen
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Fahrzeug kann nicht umbenannt werden...
-STR_GO_TO_ROADVEH_DEPOT :Fahre zum Fahrzeugdepot {TOWN}
-STR_SERVICE_AT_ROADVEH_DEPOT :Wartung im Fahrzeugdepot {TOWN}
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Straßenfahrzeug für den Transport anderer Güter umrüsten
STR_REFIT_ROAD_VEHICLE :{BLACK}Straßenfahrzeug erneuern
@@ -2954,8 +2923,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Neue Kapazität: {GOLD}{CARGO}{}{BLACK}Kosten der Umrüstung: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Schiff kann nicht umgerüstet werden...
STR_9842_REFITTABLE :(umrüstbar)
-STR_GO_TO_SHIP_DEPOT :Fahre zu {TOWN} Schiffswerft
-SERVICE_AT_SHIP_DEPOT :Wartung in der {TOWN} Schiffswerft
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Flughäfen
@@ -3026,8 +2993,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Wähle Frachtart für Umrüstung aus:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Neue Kapazität: {GOLD}{STRING}{}{BLACK}Kosten der Umrüstung: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Flugzeug kann nicht umgerüstet werden...
-STR_GO_TO_AIRPORT_HANGAR :Flug zum Hangar von {STATION}
-SERVICE_AT_AIRPORT_HANGAR :Wartung im Hangar von {STATION}
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Fahrplan)
--- a/src/lang/hungarian.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/hungarian.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1091,7 +1091,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Vonatok valósághű gyorsulása: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}A vonatok és a hajók nem tesznek 90 fokos kanyart: {ORANGE}{STRING} {LTBLUE} (csak NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Egymás mellé építhető vonatállomások: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Bármelyik rakomány telipakolása esetén induljon a jármű: {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}A továbbfejlesztett betöltés használata: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Járművek fokozatos rakodása: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Infláció: {ORANGE}{STRING}
@@ -2754,26 +2753,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Az emberek ünnepelnek . . .{}Megérkezett az első vonat {STATION} állomásra!
STR_8802_DETAILS :{WHITE}{VEHICLE} adatai
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Vonat van az útban
-STR_8804 :{SETX 10}{COMMA}: {STRING}{STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING}{STRING}
-STR_8806_GO_TO :Menj {STATION} állomásra
-STR_GO_TO_TRANSFER :Menj {STATION} (odaszállít és felvesz rakományt)
-STR_8807_GO_TO_UNLOAD :Menj {STATION} (lepakol)
-STR_GO_TO_TRANSFER_UNLOAD :Menj {STATION} (odaszállít és üresen továbbmegy)
-STR_8808_GO_TO_LOAD :Menj {STATION} (felpakol)
-STR_GO_TO_TRANSFER_LOAD :Menj {STATION} (odaszállít és teljes rakományra vár)
-STR_880A_GO_NON_STOP_TO :Megállás nélkül menj {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Megállás nélkül menj {STATION} (odaszállít és felvesz rakományt)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Megállás nélkül menj {STATION} (lepakol)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Megállás nélkül menj {STATION} (odaszállít és üresen távozik)
-STR_880C_GO_NON_STOP_TO_LOAD :Megállás nélkül menj {STATION} (felpakol)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Megállás nélkül menj {STATION} (odaszállít és teljes rakományra vár)
-STR_GO_TO_TRAIN_DEPOT :Menj {TOWN} jármütelepre
-STR_SERVICE_AT_TRAIN_DEPOT :Javítsd a vonatot a {TOWN}i járműtelepen
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Menj megállás nélkül {TOWN}i járműtelepre
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Mindig javítsd a vonatot a {TOWN}i járműtelepen
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Útipont (időzítetlen)
STR_TIMETABLE_TRAVEL_FOR :Menjen {STRING} állomásra
STR_TIMETABLE_STAY_FOR :és maradjon {STRING.t}
@@ -2814,10 +2794,7 @@
STR_8820_RENAME :{BLACK}Átnevez
STR_8823_SKIP :{BLACK}Kihagy
STR_8824_DELETE :{BLACK}Töröl
-STR_8825_NON_STOP :{BLACK}Non-stop
STR_8826_GO_TO :{BLACK}Új cél
-STR_8827_FULL_LOAD :{BLACK}Telepakol
-STR_8828_UNLOAD :{BLACK}Lepakol
STR_REFIT :{BLACK}Átalakít
STR_REFIT_TIP :{BLACK}Válaszd ki minek a szállítására álljunk át. Ctrl+kattintással eltávolítod az átalakítási utasítást.
STR_REFIT_ORDER :(Átalakít erre: {STRING})
@@ -2825,7 +2802,6 @@
STR_TIMETABLE_VIEW_TOOLTIP :{BLACK}Átkapcsolás menetrendi nézetre
STR_8829_ORDERS :{WHITE}{VEHICLE} menetrendje
STR_882A_END_OF_ORDERS :{SETX 10}- - Menetrend vége - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Javítás
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Nem veheted meg a vasúti járművet...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Vásárlás éve: {LTBLUE}{NUM}{BLACK} Érték: {LTBLUE}{CURRENCY}
@@ -2875,10 +2851,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Menetrend - kattints egy célpontra a kijelöléséhez
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Jelenlegi úticél átugrása, és a következő aktiválása. CTRL + kattintásra a kiválasztott úticélra ugrik
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}A kijelölt célpont törlése
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}A kijelölt célpont felé megállás nélkül kell haladni
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Új célpont beillesztése a kijelölt elé vagy a lista végére
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}A kijelölt célponton meg kell várni, amíg telerakják a járművet
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}A kijelölt célponton le kell pakolni a rakományt
STR_TIMETABLE_TOOLTIP :{BLACK}Menetrend - kijelöléshez kattints egy elemére
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}A kijelölt menetrend-sor végrehajtási idejét változtatja meg
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}A kijelölt menetrendi sorhoz tartozó végrehajtási idő törlése
@@ -2902,8 +2875,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Nem fordíthatod meg a vonatot...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Márkanév megváltoztatása
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Nem változtathatod meg a márkanevet...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}A kiválasztott állomásnál a jármű a rakományt leteszi
-STR_TRANSFER :{BLACK}Elszállít
STR_CLEAR_TIME :{BLACK}Idő törlése
STR_RESET_LATENESS :{BLACK}Késés nullázása
@@ -2991,8 +2962,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}A közúti jármű márkanevének megváltoztatása
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Márkanév megváltoztatása
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Nem változtathatod meg a márkanevet...
-STR_GO_TO_ROADVEH_DEPOT :Menj a {TOWN}i garázsba
-STR_SERVICE_AT_ROADVEH_DEPOT :Javítsd a járművet a {TOWN}i garázsban
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Teherautó átalakítása hogy mást is tudjon szállítani
STR_REFIT_ROAD_VEHICLE :{BLACK}Teherautó átalakítása
@@ -3068,8 +3037,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Új kapacitás: {GOLD}{CARGO}{}{BLACK}Átalakítás költsége: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Nem alakíthatod át a hajót...
STR_9842_REFITTABLE :(átalakítható)
-STR_GO_TO_SHIP_DEPOT :Menj a {TOWN}i kikötőbe
-SERVICE_AT_SHIP_DEPOT :Javítás a(z) {TOWN} hajókikötőben
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Repterek
@@ -3140,8 +3107,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Átalakítás, hogy szállíthasson:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Új kapacitás: {GOLD}{STRING}{}{BLACK}Átalakítás költsége: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Nem alakíthatod át a repülőgépet...
-STR_GO_TO_AIRPORT_HANGAR :Menj a {STATION} repülőtér hangárjába
-SERVICE_AT_AIRPORT_HANGAR :Javítás a(z) {STATION} hangárban
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Menetrendesítve)
--- a/src/lang/icelandic.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/icelandic.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1027,7 +1027,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Raunveruleg hröðun lesta: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Banna lestum og skipum að taka 90° beygjur: {ORANGE}{STRING} {LTBLUE} (þarfnast NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Sameina lestarstöðvar sem byggðar eru samsíða: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}'Fullferma' á við um frysta farm sem fullfermist: {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Nota endurbættan algóriþma við hleðslu: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Ferma farartæki smám saman: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Verðbólga: {ORANGE}{STRING}
@@ -2652,26 +2651,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Bæjarbúar fagna . . .{}Fyrsta lest kemur við á {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Upplýsingar)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Lest fyrir
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :Fer til {STATION}
-STR_GO_TO_TRANSFER :Fer til {STATION} (Yfirfæra og ferma)
-STR_8807_GO_TO_UNLOAD :Fer til {STATION} (Afferma)
-STR_GO_TO_TRANSFER_UNLOAD :Fer til {STATION} (Yfirfæra og yfirgefa tóm)
-STR_8808_GO_TO_LOAD :Fer til {STATION} (Fullferma)
-STR_GO_TO_TRANSFER_LOAD :Fer til {STATION} (Yfirfæra og fullferma)
-STR_880A_GO_NON_STOP_TO :Fer viðstöðulaust til {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Fer viðstöðulaust til {STATION} (Yfirfæra og ferma)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Fer viðstöðulaust til {STATION} (Afferma)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Fer viðstöðulaust til {STATION} (Yfirfæra og yfirgefa tóm)
-STR_880C_GO_NON_STOP_TO_LOAD :Fer viðstöðulaust til {STATION} (Fullferma)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Fer viðstöðulaust til {STATION} (Yfirfæra og fullferma)
-STR_GO_TO_TRAIN_DEPOT :Fer til {TOWN} Lestaskýli
-STR_SERVICE_AT_TRAIN_DEPOT :Viðgerð í {TOWN} Lestar Byggingu
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Fer viðstöðulaust til {TOWN} Lestar Byggingar
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Viðgerð viðstöðulaust í {TOWN} Lestar Byggingu
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Ferðalag (ekki sett í áætlun)
STR_TIMETABLE_TRAVEL_FOR :Ferðast í {STRING}
STR_TIMETABLE_STAY_FOR :og bíða í {STRING}
@@ -2712,10 +2692,7 @@
STR_8820_RENAME :{BLACK}Endurnefna
STR_8823_SKIP :{BLACK}Sleppa
STR_8824_DELETE :{BLACK}Eyða
-STR_8825_NON_STOP :{BLACK}Viðstöðulaust
STR_8826_GO_TO :{BLACK}Fara að
-STR_8827_FULL_LOAD :{BLACK}Fullferma
-STR_8828_UNLOAD :{BLACK} Afferma
STR_REFIT :{BLACK}Breyta
STR_REFIT_TIP :{BLACK}Veldu farm til að breyta í. CTRL smelltu til að fjarlægja breytiskipun
STR_REFIT_ORDER :(Breyta í {STRING})
@@ -2725,7 +2702,6 @@
STR_ORDER_VIEW_TOOLTIP :{BLACK}Skipta yfir í skipanasýn
STR_8829_ORDERS :{WHITE}{VEHICLE} (Skipanir)
STR_882A_END_OF_ORDERS :{SETX 10}- - Endi skipana - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Skoðun
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Get ekki byggt lest...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Framleitt: {LTBLUE}{NUM}{BLACK} Virði: {LTBLUE}{CURRENCY}
@@ -2775,10 +2751,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Áætlun - smelltu til að velja stöð. CTRL + músartakki færir sjónarhorn að stöðinni
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Sleppa núverandi skipun og fara í þá næstu. CTRL + smella sleppir valdri skipun
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Eyða valdri skipun
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Gera valda skipun viðstöðulausa
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Skeyta inn nýrri skipun á undan valdri skipun, eða bæta við á enda listans
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Neyða lest til að bíða eftir fullum farmi í valdri skipun
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Neyða lest til að afferma sig í valdri skipun
STR_TIMETABLE_TOOLTIP :{BLACK}Áætlun - smelltu á skipun til að velja hana.
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Breyta tímanum sem valin skipun ætti að taka
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Hreinsa tímann fyrir valda skipun
@@ -2802,8 +2775,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Get ekki snúið lest við...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Endurskíra lestargerð
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Get ekki endurskírt lestargerð...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Lætur lestina losa farminn á valinni skipun
-STR_TRANSFER :{BLACK}Yfirfæra
STR_CLEAR_TIME :{BLACK}Hreinsa tíma
STR_RESET_LATENESS :{BLACK}Endurstilla seinkunnarteljara
@@ -2891,8 +2862,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Endurnefna tegund bifreiðar
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Endurnefna tegund bifreiðar
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE} Get ekki endurnefnat tegund bifreiðar...
-STR_GO_TO_ROADVEH_DEPOT :Fara í {TOWN} bifreiðaskýli
-STR_SERVICE_AT_ROADVEH_DEPOT :Skoða í {TOWN} bifreiðaskýli
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Breyta bifreið svo hún flytji annan farm
STR_REFIT_ROAD_VEHICLE :{BLACK}Breyta bifreið
@@ -2968,8 +2937,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Ný burðargeta: {GOLD}{CARGO}{}{BLACK}Breytingarkostnaður: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Get ekki breytt skipi...
STR_9842_REFITTABLE :(breytanlegt)
-STR_GO_TO_SHIP_DEPOT :Fara í {TOWN} Skipaskýli
-SERVICE_AT_SHIP_DEPOT :Skoða í {TOWN} Skipaskýli
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Flugvellir
@@ -3040,8 +3007,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Veldu farm sem á að flytja:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Ný burðargeta: {GOLD}{STRING}{}{BLACK}Breytingarkostnaður: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Get ekki breytt flugvél...
-STR_GO_TO_AIRPORT_HANGAR :Fara í {STATION} flugskýli
-SERVICE_AT_AIRPORT_HANGAR :Skoða í {STATION} flugskýli
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Áætlun)
--- a/src/lang/italian.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/italian.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1028,7 +1028,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Abilita accelerazione realistica per i treni: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Impedisci a treni e navi di curvare a 90°: {ORANGE}{STRING} {LTBLUE} (richiede NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Unisci le stazioni ferroviarie costruite una accanto all'altra: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Lascia stazione quando una qualsiasi merce è a pieno carico: {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Usa l'algoritmo di caricamento migliorato: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Carica i veicoli gradualmente: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Inflazione: {ORANGE}{STRING}
@@ -2654,26 +2653,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}I cittadini festeggiano . . .{}Il primo treno arriva a {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Dettagli)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Treno di mezzo
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :Vai a {STATION}
-STR_GO_TO_TRANSFER :Vai a {STATION} (Trasferisci e carica merce)
-STR_8807_GO_TO_UNLOAD :Vai a {STATION} (Scarica)
-STR_GO_TO_TRANSFER_UNLOAD :Vai a {STATION} (Trasferisci e parti vuoto)
-STR_8808_GO_TO_LOAD :Vai a {STATION} (Carica)
-STR_GO_TO_TRANSFER_LOAD :Vai a {STATION} (Trasferisci e aspetta carico completo)
-STR_880A_GO_NON_STOP_TO :Vai non-stop a {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Vai non-stop a {STATION} (Trasferisci e carica merce)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Vai non-stop a {STATION} (Scarica)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Vai non-stop a {STATION} (Trasferisci e parti vuoto)
-STR_880C_GO_NON_STOP_TO_LOAD :Vai non-stop a {STATION} (Carica)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Vai non-stop a {STATION} (Trasferisci e aspetta carico completo)
-STR_GO_TO_TRAIN_DEPOT :Vai al Deposito ferroviario di {TOWN}
-STR_SERVICE_AT_TRAIN_DEPOT :Manutenzione al Deposito di {TOWN}
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Vai non-stop al Deposito ferroviario di {TOWN}
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Manutenzione non-stop al Deposito di {TOWN}
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Viaggia senza orario
STR_TIMETABLE_TRAVEL_FOR :Viaggia per {STRING}
STR_TIMETABLE_STAY_FOR :e sosta per {STRING}
@@ -2714,10 +2694,7 @@
STR_8820_RENAME :{BLACK}Rinomina
STR_8823_SKIP :{BLACK}Salta
STR_8824_DELETE :{BLACK}Elimina
-STR_8825_NON_STOP :{BLACK}Non-stop
STR_8826_GO_TO :{BLACK}Vai a
-STR_8827_FULL_LOAD :{BLACK}Carica
-STR_8828_UNLOAD :{BLACK}Scarica
STR_REFIT :{BLACK}Riadatta
STR_REFIT_TIP :{BLACK}Selezionare il tipo di carico per il quale riadattare in questo ordine. Premere CTRL+clic per rimuovere l'istruzione di riadattamento
STR_REFIT_ORDER :(Riadatta per {STRING})
@@ -2727,7 +2704,6 @@
STR_ORDER_VIEW_TOOLTIP :{BLACK}Passa alla visualizzazione degli ordini
STR_8829_ORDERS :{WHITE}{VEHICLE} (Ordini)
STR_882A_END_OF_ORDERS :{SETX 10}- - Fine degli ordini - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Manutieni
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Impossibile costruire il veicolo ferroviario...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Costruito nel: {LTBLUE}{NUM}{BLACK} Valore: {LTBLUE}{CURRENCY}
@@ -2777,10 +2753,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Lista degli ordini - fare clic su un ordine per selezionarlo e CTRL+clic per portarsi sulla stazione corrispondente
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Salta l'ordine corrente e inizia il successivo. Tenere premuto CTRL per saltare all'ordine selezionato
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Elimina l'ordine selezionato
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Fa diventare l'ordine selezionato 'non-stop'
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Inserisce un nuovo ordine prima di quello selezionato, o lo aggiunge alla fine della lista
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Fa in modo che l'ordine selezionato forzi il veicolo ad aspettare il carico completo
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Fa in modo che l'ordine selezionato forzi il veicolo a scaricare
STR_TIMETABLE_TOOLTIP :{BLACK}Tabella oraria - fare clic su un ordine per selezionarlo
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Cambia la quantità di tempo che dovrebbe essere impiegata per l'ordine selezionato
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Elimina l'impostazione della quantità di tempo per l'ordine selezionato
@@ -2804,8 +2777,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Impossibile invertire la direzione del treno...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Rinomina tipo di veicolo ferroviario
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Impossibile rinominare il tipo di veicolo ferroviario...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Fa in modo che l'ordine selezionato forzi il veicolo a trasferire il carico
-STR_TRANSFER :{BLACK}Trasferisci
STR_CLEAR_TIME :{BLACK}Elimina tempo
STR_RESET_LATENESS :{BLACK}Azzera ritardo
@@ -2893,8 +2864,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Rinomina il tipo di automezzo
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Rinomina tipo automezzo
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Impossibile rinominare il tipo di automezzo...
-STR_GO_TO_ROADVEH_DEPOT :Vai al Deposito automezzi di {TOWN}
-STR_SERVICE_AT_ROADVEH_DEPOT :Manutenzione al Deposito di {TOWN}
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Riadatta l'automezzo per trasportare un tipo di carico differente
STR_REFIT_ROAD_VEHICLE :{BLACK}Riadatta l'automezzo
@@ -2970,8 +2939,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nuova capacità: {GOLD}{CARGO}{}{BLACK}Costo riadattamento: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Impossibile riadattare la nave...
STR_9842_REFITTABLE :(riadattabile)
-STR_GO_TO_SHIP_DEPOT :Vai al Deposito navale di {TOWN}
-SERVICE_AT_SHIP_DEPOT :Manutenzione al Deposito navale di {TOWN}
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Aeroporti
@@ -3042,8 +3009,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Seleziona il tipo di carico da trasportare:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nuova capacità: {GOLD}{STRING}{}{BLACK}Costo riadattamento: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Impossibile riadattare l'aeromobile...
-STR_GO_TO_AIRPORT_HANGAR :Vai all'Hangar di {STATION}
-SERVICE_AT_AIRPORT_HANGAR :Manutenzione all'Hangar di {STATION}
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Tabella oraria)
--- a/src/lang/japanese.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/japanese.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1026,7 +1026,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}列車の現実的な加速を使用:{ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}列車/船舶が直角で曲げれないようにする:{ORANGE}{STRING}{LTBLUE}(NPF が必要)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}隣接した駅を一つの駅に統合:{ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}全負荷が入の場合、何でもの貨物が「全負荷」となるときに出発:{ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}改良した読み込むアルゴリズムを使用:{ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}車両を次第に読み込む:{ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}インフレ:{ORANGE}{STRING}
@@ -2637,26 +2636,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}町民の祝賀{}初列車が{STATION}駅に到着!
STR_8802_DETAILS :{WHITE}{VEHICLE}(詳細)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}列車があります
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :{STATION}へ行く
-STR_GO_TO_TRANSFER :{STATION}へ行く(運搬して貨物を積む)
-STR_8807_GO_TO_UNLOAD :{STATION}へ行く(貨物を降ろす)
-STR_GO_TO_TRANSFER_UNLOAD :{STATION}へ行く(運搬して空そのまま次へ行く)
-STR_8808_GO_TO_LOAD :{STATION}へ行く(全負荷)
-STR_GO_TO_TRANSFER_LOAD :{STATION}へ行く(運搬して全負荷まで待つ)
-STR_880A_GO_NON_STOP_TO :{STATION}へ直行で行く
-STR_GO_TO_NON_STOP_TRANSFER :{STATION}へ直行で行く(運搬して貨物を積む)
-STR_880B_GO_NON_STOP_TO_UNLOAD :{STATION}へ直行で行く(貨物を降ろす)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :{STATION}へ直行で行く(運搬して空そのまま次へ行く)
-STR_880C_GO_NON_STOP_TO_LOAD :{STATION}へ直行で行く(全負荷)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :{STATION}へ直行で行く(運搬して全負荷まで待つ)
-STR_GO_TO_TRAIN_DEPOT :{TOWN}電車庫へ回送
-STR_SERVICE_AT_TRAIN_DEPOT :{TOWN}電車庫で修理
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :{TOWN}電車庫へ直行で回送
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :{TOWN}電車庫へ直行で回送して修理
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :運行(未計画)
STR_TIMETABLE_TRAVEL_FOR :{STRING}運行
STR_TIMETABLE_STAY_FOR :{STRING}停車
@@ -2697,10 +2677,7 @@
STR_8820_RENAME :{BLACK}名称を変更
STR_8823_SKIP :{BLACK}スキップ
STR_8824_DELETE :{BLACK}削除
-STR_8825_NON_STOP :{BLACK}直行便
STR_8826_GO_TO :{BLACK}駅を選択
-STR_8827_FULL_LOAD :{BLACK}全負荷
-STR_8828_UNLOAD :{BLACK}降ろす
STR_REFIT :{BLACK}再装備
STR_REFIT_TIP :{BLACK}貨物の種類を選択してください。Control+クリックすると、再装備をキャンセルします。
STR_REFIT_ORDER :({STRING}に再装備)
@@ -2708,7 +2685,6 @@
STR_TIMETABLE_VIEW_TOOLTIP :{BLACK}時刻表を表示します
STR_8829_ORDERS :{WHITE}{VEHICLE}(指令)
STR_882A_END_OF_ORDERS :{SETX 10}- - 指令終了 - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}修理
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}鉄道車両が購入できません...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} 購入日付:{LTBLUE}{NUM}{BLACK} 価値:{LTBLUE}{CURRENCY}
@@ -2758,10 +2734,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}指令リスト - 指令を選択するにはクリックします
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}実行中の指令をスキップして、次へ移動します。Control クリックすると、選択した指令へ移動します。
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}選択した指令を削除します
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}選択した指令を「直行便」にします
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}選択した指令の前/リストの終わりに新規指令を挿入します
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}選択した指令に全負荷まで待つことを強制します
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}選択した指令に降ろすことを強制します
STR_TIMETABLE_TOOLTIP :{BLACK}時刻表 - 指令を選択するにはクリックします。
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}選択した指令の実行時間を変更します
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}選択した指令の実行時間を消去します
@@ -2785,8 +2758,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}列車が逆転されられません...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}鉄道車両の名称を変更
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}鉄道車両の名称が変更できません...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}選択した指令に貨物の降ろすことを含みます
-STR_TRANSFER :{BLACK}運搬
STR_CLEAR_TIME :{BLACK}時間を消去
STR_RESET_LATENESS :{BLACK}遅刻回数をリセット
@@ -2874,8 +2845,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}道路車両の名称を変更
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}道路車両の名称を変更
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}道路車両の名称が変更できません...
-STR_GO_TO_ROADVEH_DEPOT :{TOWN}車庫へ回送
-STR_SERVICE_AT_ROADVEH_DEPOT :{TOWN}車庫で修理
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}他の貨物の種類を運送するに道路車両を再装備します
STR_REFIT_ROAD_VEHICLE :{BLACK}道路車両を再装備
@@ -2951,8 +2920,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}再装備後の容量:{GOLD}{CARGO}{}{BLACK}再装備の価格:{GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}船舶が再装備できません...
STR_9842_REFITTABLE :(再装備可)
-STR_GO_TO_SHIP_DEPOT :{TOWN}造船所へ行く
-SERVICE_AT_SHIP_DEPOT :{TOWN}の造船所でサービスします
##id 0xA000
STR_A000_AIRPORTS :{WHITE}空港
@@ -3023,8 +2990,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}運送する貨物種類を選択:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}再装備後の容量:{GOLD}{STRING}{}{BLACK}再装備価格:{GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}飛行機が再装備できません...
-STR_GO_TO_AIRPORT_HANGAR :{STATION}格納庫へ行く
-SERVICE_AT_AIRPORT_HANGAR : {STATION}のハンガーでサービスします
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE}(時刻表)
--- a/src/lang/korean.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/korean.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1027,7 +1027,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}사실감있는 열차 가속 사용 : {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}열차/선박의 90도 회전을 금지함: {ORANGE}{STRING} {LTBLUE} (requires NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}바로 옆에 역이 있으면 그 역의 이름으로 건설 (새로운 이름X) : {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}'전체 싣기'인 경우, 단 하나의 화물이라도 차면 역을 떠남 : {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}향상된 수송 알고리즘 사용 : {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}점차적으로 차량 싣기 : {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}인플레이션 (화폐가치하락) : {ORANGE}{STRING}
@@ -2652,26 +2651,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}{STATION}에 처음으로 기차가 도착했습니다!{}사람들이 환호성을 지릅니다!
STR_8802_DETAILS :{WHITE}{VEHICLE} (상세정보)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}중간에 기차가 있습니다
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :{STATION} 행
-STR_GO_TO_TRANSFER :{STATION} 행 (환승시키고 화물 싣기)
-STR_8807_GO_TO_UNLOAD :{STATION} 행 (모두 내림)
-STR_GO_TO_TRANSFER_UNLOAD :{STATION} 행 (환승시키고 화물을 모두 내림)
-STR_8808_GO_TO_LOAD :{STATION} 행 (모두 싣기)
-STR_GO_TO_TRANSFER_LOAD :{STATION} 행 (환승시키고 화물을 가득 실음)
-STR_880A_GO_NON_STOP_TO :{STATION} 급행
-STR_GO_TO_NON_STOP_TRANSFER :{STATION} 급행 (환승시키고 화물 싣기)
-STR_880B_GO_NON_STOP_TO_UNLOAD :{STATION} 급행 (모두 내림)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :{STATION} 급행 (환승시키고 화물을 모두 내림)
-STR_880C_GO_NON_STOP_TO_LOAD :{STATION} 급행 (모두 싣기)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :{STATION} 급행 (환승시키고 화물을 가득 실음)
-STR_GO_TO_TRAIN_DEPOT :{TOWN} 차량기지행
-STR_SERVICE_AT_TRAIN_DEPOT :{TOWN} 차량기지행 (점검)
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :{TOWN} 차량기지 급행
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :{TOWN} 차량기지 급행 (점검)
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :여행 (시간표 없음)
STR_TIMETABLE_TRAVEL_FOR :{STRING}로 여행
STR_TIMETABLE_STAY_FOR :그리고 {STRING}에 머무름
@@ -2712,10 +2692,7 @@
STR_8820_RENAME :{BLACK}이름
STR_8823_SKIP :{BLACK}건너뛰기
STR_8824_DELETE :{BLACK}삭제
-STR_8825_NON_STOP :{BLACK}급행
STR_8826_GO_TO :{BLACK}행선지
-STR_8827_FULL_LOAD :{BLACK}모두 싣기
-STR_8828_UNLOAD :{BLACK}모두 내리기
STR_REFIT :{BLACK}개조
STR_REFIT_TIP :{BLACK}이 경로에서 어떤 화물을 받을 것인지 선택하십시오. CTRL+클릭은 제거입니다.
STR_REFIT_ORDER :({STRING}(으)로 개조)
@@ -2725,7 +2702,6 @@
STR_ORDER_VIEW_TOOLTIP :{BLACK}순서 보기로 변경
STR_8829_ORDERS :{WHITE}{VEHICLE} (경로)
STR_882A_END_OF_ORDERS :{SETX 10}- - 경로의 끝 - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}점검
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}기차를 생성할 수 없습니다...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} 생산: {LTBLUE}{NUM}{BLACK} 가격: {LTBLUE}{CURRENCY}
@@ -2775,10 +2751,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}이 열차의 경로 - 선택하려면 클릭하세요. CTRL+클릭하시면 그 역이 있는 장소로 이동합니다.
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}현재 경로를 건너 뜁니다, 그리고 다음 경로를 시작합니다. Ctrl + 클릭은 선택된 경로로 건너 뜁니다.
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}선택된 경로를 삭제합니다.
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}선택된 경로를 급행으로 변경합니다.
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}선택된 경로 바로 전이나 목록 맨 끝에 새로운 경로를 삽입합니다.
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}선택된 경로에서 모든 화물을 가득 싣도록 변경합니다.
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}선택된 경로에서 모든 화물을 전부 내리도록 변경합니다.
STR_TIMETABLE_TOOLTIP :{BLACK}시간표 - 경로를 클릭하면 선택합니다.
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}선택한 경로가 대기하고 있을 시간 변경
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}선택한 경로의 시간 초기화
@@ -2802,8 +2775,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}열차를 회차시킬 수 없습니다...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}열차 차량 타입 이름 재지정
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}차량 타입의 이름을 다시 지정할 수 없습니다...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}선택된 경로에서 모든 화물을 내려서 쌓아놓도록 변경합니다.
-STR_TRANSFER :{BLACK}환승
STR_CLEAR_TIME :{BLACK}시간 초기화
STR_RESET_LATENESS :{BLACK}지연 카운터 초기화
@@ -2891,8 +2862,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}자동차 타입의 이름 지정
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}자동차 타입의 이름 지정
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}자동차 타입의 이름을 지정할 수 없습니다...
-STR_GO_TO_ROADVEH_DEPOT :{TOWN} 차고로 가는 중
-STR_SERVICE_AT_ROADVEH_DEPOT :{TOWN} 차고로 점검하러 가는 중
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}자동차가 다른 종류의 화물을 싣도록 개조
STR_REFIT_ROAD_VEHICLE :{BLACK}자동차 개조
@@ -2968,8 +2937,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}새 수송량: {GOLD}{CARGO}{}{BLACK}개조 가격: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}선박을 개조할 수 없습니다...
STR_9842_REFITTABLE :(개조 가능)
-STR_GO_TO_SHIP_DEPOT :{TOWN} 정박소로 가는 중
-SERVICE_AT_SHIP_DEPOT :{TOWN} 정박소로 점검하러 가는 중
##id 0xA000
STR_A000_AIRPORTS :{WHITE}공항
@@ -3040,8 +3007,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}수송할 화물 종류 선택:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}새 수송량: {GOLD}{STRING}{}{BLACK}개조 가격: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}항공기를 개조할 수 없습니다...
-STR_GO_TO_AIRPORT_HANGAR :{STATION}공항 격납고로 가는 중
-SERVICE_AT_AIRPORT_HANGAR :{STATION}공항 격납고로 점검하러 가는 중
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (시간표)
--- a/src/lang/lithuanian.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/lithuanian.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1050,7 +1050,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Realistiska traukiniu akseleracija: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Drausti traukiniams/laivams suktis 90 laips.kampu: {ORANGE}{STRING} {LTBLUE} (reik. NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Leisti sujungti greta pastatytas stoteles: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Palikti stotele, jei nors 1 krovinys pilnai pakrautas: {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Naudoti patobulinta krovimo algoritma: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Pakrauti tr. priemones paeiliui: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Infliacija: {ORANGE}{STRING}
@@ -2499,24 +2498,6 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Gyventojai džiūgauja. . .{}Pirmas traukinys atvažiavo į {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Detales)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Traukinys kelyje
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :Vaziuoja i {STATION}
-STR_GO_TO_TRANSFER :Vykti i {STATION} (Perkelti ir pakrauti krovinius)
-STR_8807_GO_TO_UNLOAD :Vykti i {STATION} (Issikrauti)
-STR_GO_TO_TRANSFER_UNLOAD :Vykti i {STATION} (Perkrauti ir palikti tuscia)
-STR_8808_GO_TO_LOAD :Vykti i {STATION} (Pasikrauti)
-STR_GO_TO_TRANSFER_LOAD :Vykti i {STATION} (Perkrauti ir palaukti pilno pakrovimo)
-STR_880A_GO_NON_STOP_TO :Vykti be sustojimo i {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Vykti be sustojimo i {STATION} (Perkrauti ir paimti krovini)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Vykti be sustojimo i {STATION} (Issikrauti)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Vykti be sustojimo i {STATION} (Perkrauti ir palikti tuscia)
-STR_880C_GO_NON_STOP_TO_LOAD :Vykti be sustojimo i {STATION} (Pasikrauti)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Vykti be sustojimo i {STATION} (Perkrauti ir palaukti pilno pakrovimo)
-STR_GO_TO_TRAIN_DEPOT :Vaziuoti i {TOWN} Traukinio Depa
-STR_SERVICE_AT_TRAIN_DEPOT :Remontas {TOWN} traukiniu depe
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Važiuoti nestojant į {TOWN} traukinių depą
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Remontas nestojant {TOWN} traukiniu depe
STR_HEADING_FOR_TRAIN_DEPOT :{ORANGE}Kursas i {TOWN} depa
@@ -2553,16 +2534,12 @@
STR_8820_RENAME :{BLACK}Pervardinti
STR_8823_SKIP :{BLACK}Praleisti
STR_8824_DELETE :{BLACK}Istrinti
-STR_8825_NON_STOP :{BLACK}Nestoti
STR_8826_GO_TO :{BLACK}Vaziuoti
-STR_8827_FULL_LOAD :{BLACK}Pakrauti
-STR_8828_UNLOAD :{BLACK}Iskrauti
STR_REFIT :{BLACK}Naujinti
STR_REFIT_TIP :{BLACK}Pasirinkite kurį vagonų tipą kuriuo tipu pakeisti (eilės tvarka). Spragtelėjus laikant VALD (CTRL) nurodymas pašalinamas
STR_REFIT_ORDER :(Keisti į {STRING})
STR_8829_ORDERS :{WHITE}{VEHICLE} (Uzduotys)
STR_882A_END_OF_ORDERS :{SETX 10}- - Uzduociu pabaiga- -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Remontas
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Gelezinkelio transporto priemones nupirkti negalima...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Pastatyta: {LTBLUE}{NUM}{BLACK} Verte: {LTBLUE}{CURRENCY}
@@ -2608,10 +2585,7 @@
STR_SHOW_TOTAL_CARGO :{BLACK}Rodyti bendra traukinio talpos informacija pagal kroviniu tipa
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Nurodymų sąrašas - nurodymas pažymimas ant jo spragtelėjus. Spregtelėjimas laikant VALD (CTRL) nukelia į stotį
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Istrinti pazymeta uzduoti
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Nestoti pazymetoje stoteleje
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Iterpti nauja uzduoti pries pazymeta, arba iterpti saraso pabaigoje
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Pazymetoje stoteleje laukti, kol transporto priemone pilnai pasikraus
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Iskrauti krovini pazymetoje stoteleje
STR_SERVICE_HINT :{BLACK}Nevykdyti sios uzduoties iki tol, kol nereikes remonto
STR_VEHICLE_INFO_COST_WEIGHT_SPEED_POWER :{BLACK}Kaina: {CURRENCY} Svoris: {WEIGHT_S}{}Greitis: {VELOCITY} Galia: {POWER}{}Eksplotacijos išlaidos: {CURRENCY}/metus{}Talpa: {CARGO}
STR_885C_BROKEN_DOWN :{RED}Sugedo
@@ -2631,8 +2605,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Traukinio vaziavimo krypties pakeisti negalima...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Pervardinti traukinio tipa
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Neimanoma pervardinti traukinio tipo...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Priversti iškrauti krovinius pažymėta tvarka
-STR_TRANSFER :{BLACK}Perkelti
STR_TRAIN_STOPPING :{RED}Stabdoma
STR_TRAIN_STOPPING_VEL :{RED}Stabdomas, {VELOCITY}
@@ -2698,8 +2670,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Pervardinti automobiliu tipa
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Pervardinti automobiliu tipa
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Negali pervardinti automobliu tipo...
-STR_GO_TO_ROADVEH_DEPOT :Kursas: {TOWN} automobiliu garazas
-STR_SERVICE_AT_ROADVEH_DEPOT :Remontas: {TOWN} garaze
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Perkomplektuoti transporto priemone kad galetu vezti kitoki krovinio tipa
STR_REFIT_ROAD_VEHICLE :{BLACK}Perkomplektuoti
@@ -2775,8 +2745,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nauja talpa: {GOLD}{CARGO}{}{BLACK}Remonto kaina: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Negalima perorientuotilaivo...
STR_9842_REFITTABLE :(perorientuotinas)
-STR_GO_TO_SHIP_DEPOT :Uzduotis: laivu depas {TOWN}
-SERVICE_AT_SHIP_DEPOT :Remontas {TOWN} miesto laivų depe
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Oro uostai
@@ -2847,8 +2815,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Pasirink nauja kroviniu tipa:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nauja talpa: {GOLD}{STRING}{}{BLACK}Pakeitimo kaina: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Negalima pakeisti krovinio tipo...
-STR_GO_TO_AIRPORT_HANGAR :Kursas: {STATION} angaras
-SERVICE_AT_AIRPORT_HANGAR :Remontas {STATION} angare
##id 0xB000
--- a/src/lang/norwegian_bokmal.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/norwegian_bokmal.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1025,7 +1025,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Realistisk akslerasjon for tog: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Forby tog og skip å gjøre 90-graders svinger: {ORANGE}{STRING} {LTBLUE} (trenger NGR)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Slå sammen stasjoner som bygges ved siden av hverandre: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Forlat stasjonen når én type varevogn er full, hvis 'full last' er på: {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Bruk forbedret lastingsalgoritme: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Last kjøretøy gradvis: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Inflasjon: {ORANGE}{STRING}
@@ -2621,26 +2620,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Innbyggerne jubler . . .{}Første tog ankommer {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Detaljer)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Tog i veien
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :Kjør til {STATION}
-STR_GO_TO_TRANSFER :Gå til {STATION} (overfør og ta last)
-STR_8807_GO_TO_UNLOAD :Gå til {STATION} (last av)
-STR_GO_TO_TRANSFER_UNLOAD :Gå til {STATION} (overfør og forlat som tom)
-STR_8808_GO_TO_LOAD :Gå til {STATION} (last)
-STR_GO_TO_TRANSFER_LOAD :Gå til {STATION} (overfør og vent på full last)
-STR_880A_GO_NON_STOP_TO :Gå uten stopp til {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Gå uten stopp til {STATION} (overfør og ta last)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Gå uten stopp til {STATION} (last av)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Gå uten stopp {STATION} (overfør og forlat som tom)
-STR_880C_GO_NON_STOP_TO_LOAD :Gå uten stopp til {STATION} (last)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Gå uten stopp til {STATION} (overfør og vent på full last)
-STR_GO_TO_TRAIN_DEPOT :Gå til {TOWN} togdepot
-STR_SERVICE_AT_TRAIN_DEPOT :Velikehold ved {TOWN} togstall
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Kjør uten å stoppe til {TOWN} togstall
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Vedlikehold (uten å stoppe) ved {TOWN} togstall
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Reise (uten tidstabell)
STR_TIMETABLE_TRAVEL_FOR :Reise for {STRING}
STR_TIMETABLE_STAY_FOR :og bli værende i {STRING}
@@ -2681,10 +2661,7 @@
STR_8820_RENAME :{BLACK}Endre navn
STR_8823_SKIP :{BLACK}Hopp over
STR_8824_DELETE :{BLACK}Slett
-STR_8825_NON_STOP :{BLACK}Uten stopp
STR_8826_GO_TO :{BLACK}Kjør til
-STR_8827_FULL_LOAD :{BLACK}Last fullt
-STR_8828_UNLOAD :{BLACK}Last av
STR_REFIT :{BLACK}Bygg om
STR_REFIT_TIP :{BLACK}Velg varetypen det skal endres til. CTRL-klikk for å omgjøre.
STR_REFIT_ORDER :(Bygg om til {STRING})
@@ -2692,7 +2669,6 @@
STR_TIMETABLE_VIEW_TOOLTIP :{BLACK}Bytt til tidstabellvisning
STR_8829_ORDERS :{WHITE}{VEHICLE} (Ordre)
STR_882A_END_OF_ORDERS :{SETX 10}- - Slutt på ordre - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Vedlikehold
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Kan ikke bygge jernbanekjøretøy...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Bygget: {LTBLUE}{NUM}{BLACK} Verdi: {LTBLUE}{CURRENCY}
@@ -2742,10 +2718,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Ordreliste - trykk på en ordre for å velge den
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Hopp over den nåværende ordren og begynn på neste. CTRL + klikk hopper fram til valgte ordre
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Slett den valgte ordren
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Gjør den valgte ordren om til en
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Sett inn en ordre før den valgte ordren, eller i slutten av listen.
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Fyll alltid kjøretøyet ved valgte stasjon
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Tøm alltid kjøretøyet ved valgte stasjon
STR_TIMETABLE_TOOLTIP :{BLACK}Tidstabell - klikk en ordre for å merke den.
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Endre varigheten for valgte ordre
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Fjern varigheten for valgte ordre
@@ -2769,8 +2742,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Kan ikke snu toget...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Gi tog/vogn nytt navn
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Kan ikke gi tog/vogn nytt navn...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Få den merkede ordren til å tvinge kjøretøyet til å dumpe lasten
-STR_TRANSFER :{BLACK}Overfør
STR_CLEAR_TIME :{BLACK}Nullstill tid
STR_RESET_LATENESS :{BLACK}Nullstill senhetsteller
@@ -2858,8 +2829,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Endre navnet til kjøretøytypen
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Endre navnet til kjøretøytypen
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Kan ikke endre navnet til kjøretøytypen...
-STR_GO_TO_ROADVEH_DEPOT :Kjør til {TOWN} garasje
-STR_SERVICE_AT_ROADVEH_DEPOT :Vedlikehold ved {TOWN} garasje
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Bygg om kjøretøyet til å ta en annen type last
STR_REFIT_ROAD_VEHICLE :{BLACK}Bygg om bil
@@ -2935,8 +2904,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Ny kapasitet: {GOLD}{CARGO}{}{BLACK}Kostnad for ombygging: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Kan ikke bygge om skip...
STR_9842_REFITTABLE :(ombyggbart)
-STR_GO_TO_SHIP_DEPOT :Seil til {TOWN} skipsdepot
-SERVICE_AT_SHIP_DEPOT :Vedlikehold ved {TOWN} skipsdepot
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Flyplasser
@@ -3007,8 +2974,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Velg varetype:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Ny kapasitet: {GOLD}{STRING}{}{BLACK}Kostnad for ombygging: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Kan ikke bygge om flyet...
-STR_GO_TO_AIRPORT_HANGAR :Fly til {STATION} hangar
-SERVICE_AT_AIRPORT_HANGAR :Vedlikehold ved {STATION} hangar
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Tidstabell)
--- a/src/lang/norwegian_nynorsk.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/norwegian_nynorsk.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1024,7 +1024,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Realistisk akslerasjon for tog: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Forby tog og skip mot å gjere 90-graderssvingar: {ORANGE}{STRING} {LTBLUE} (treng NGR)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Slå saman stasjoner som vert bygde på sida av einannan: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Forlat stasjonen når éin type varevogn er full, dersom 'full last' er på: {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Bruk forbetra lastingsalgoritme: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Last køyretøy gradvis: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Inflasjon: {ORANGE}{STRING}
@@ -2620,26 +2619,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Innbyggjarane jublar . . .{}Første tog kjem til {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Detaljar)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Tog i vegen
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :Køyr til {STATION}
-STR_GO_TO_TRANSFER :Køyr til {STATION} (overfør og ta last)
-STR_8807_GO_TO_UNLOAD :Køyr til {STATION} (last av)
-STR_GO_TO_TRANSFER_UNLOAD :Køyr til {STATION} (overfør og forlat som tom)
-STR_8808_GO_TO_LOAD :Køyr til {STATION} (last)
-STR_GO_TO_TRANSFER_LOAD :Køyr til {STATION} (overfør og vent på full last)
-STR_880A_GO_NON_STOP_TO :Køyr utan stopp til {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Køyr utan stopp til {STATION} (overfør og ta last)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Køyr utan stopp til {STATION} (last av)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Køyr utan stopp til {STATION} (overfør og forlat som tom)
-STR_880C_GO_NON_STOP_TO_LOAD :Køyr utan stopp til {STATION} (last)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Køyr utan stopp til {STATION} (overfør og vent på full last)
-STR_GO_TO_TRAIN_DEPOT :Køyr til {TOWN} togstall
-STR_SERVICE_AT_TRAIN_DEPOT :Velikehald ved {TOWN} togstall
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Køyr utan stopp til togstallen i {TOWN}
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Vedlikehald (utan å stoppe) ved {TOWN} togstall
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Reis (ikke på rutetabell)
STR_TIMETABLE_TRAVEL_FOR :Reis i {STRING}
STR_TIMETABLE_STAY_FOR :stå i {STRING}
@@ -2680,10 +2660,7 @@
STR_8820_RENAME :{BLACK}Gje nytt namn
STR_8823_SKIP :{BLACK}Hopp over
STR_8824_DELETE :{BLACK}Slett
-STR_8825_NON_STOP :{BLACK}Utan stopp
STR_8826_GO_TO :{BLACK}Køyr til
-STR_8827_FULL_LOAD :{BLACK}Last fullt
-STR_8828_UNLOAD :{BLACK}Last av
STR_REFIT :{BLACK}Bygg om
STR_REFIT_TIP :{BLACK}Vel varetypen det skal skiftast til. CTRL-klikk for å fjerne ombyggingsinstruksjonar
STR_REFIT_ORDER :(Bygg om til {STRING})
@@ -2691,7 +2668,6 @@
STR_TIMETABLE_VIEW_TOOLTIP :{BLACK}Bytt til rutetabellvinauge
STR_8829_ORDERS :{WHITE}{VEHICLE} (Ordre)
STR_882A_END_OF_ORDERS :{SETX 10}- - Slutt på ordre - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Vedlikehald
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Kan ikkje byggje jernbanekøyretøy...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Bygd: {LTBLUE}{NUM}{BLACK} Verdi: {LTBLUE}{CURRENCY}
@@ -2741,10 +2717,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Ordreliste - trykk på ein ordre for å velje han
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Hopp over gjedande ordre, og start neste. CTRL + klikk hopper til valde ordre
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Slett den valde ordren
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Gjer den valde ordren om til ein
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Sett inn ein ordre før den valde ordren, eller i slutten av lista
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Alltid fyll køyretøyet ved den valde stasjonen
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Alltid tøm køyretøyet ved den valde stasjonen
STR_TIMETABLE_TOOLTIP :{BLACK}Rutetabell - klikk på ei ordre for å merka den
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Bytt tida den merka ordra skal bruke
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Fjern tida den merka ordra skal bruke
@@ -2768,8 +2741,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Kan ikkje snu toget...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Gje tog/vogn nytt namn
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Kan ikkje gje tog/vogn nytt namn...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Få den merka ordren til å tvinge køyretøyet til å dumpe lasta
-STR_TRANSFER :{BLACK}Overfør
STR_CLEAR_TIME :{BLACK}Fjern Tid
STR_RESET_LATENESS :{BLACK}Still attende teljaren for forseining
@@ -2856,8 +2827,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Endre namnet til køyretøytypen
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Endre namnet til køyretøytypen
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Kan ikkje endre namnet til køyretøytypen...
-STR_GO_TO_ROADVEH_DEPOT :Køyr til {TOWN} garasje
-STR_SERVICE_AT_ROADVEH_DEPOT :Vedlikehald ved {TOWN} garasje
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Bygg om køyretøyet til å ta ein annan type last
STR_REFIT_ROAD_VEHICLE :{BLACK}Bygg om bil
@@ -2933,8 +2902,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Ny kapasitet: {GOLD}{CARGO}{}{BLACK}Ombyggingskostnader: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Kan ikkje bygge om skip...
STR_9842_REFITTABLE :(ombyggbart)
-STR_GO_TO_SHIP_DEPOT :Seil til {TOWN} skipsdepot
-SERVICE_AT_SHIP_DEPOT :Vedlikehald ved {TOWN} Skipsdepot
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Flyplassar
@@ -3005,8 +2972,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Vel varetype:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Ny kapasitet: {GOLD}{STRING}{}{BLACK}Ombyggingskostnader: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Kan ikkje byggje om flyet...
-STR_GO_TO_AIRPORT_HANGAR :Fly til {STATION} hangar
-SERVICE_AT_AIRPORT_HANGAR :Service ved {STATION} Hangar.
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Rutetabell)
--- a/src/lang/piglatin.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/piglatin.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1018,7 +1018,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Enableway ealisticray accelerationway orfay ainstray: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Orbidfay ainstray andway ipsshay otay akemay 90 egday urnstay: {ORANGE}{STRING} {LTBLUE} (equiresray NPFay)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Oinjay aintray ationsstay uiltbay extnay otay eachway otherway: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Eavelay ationstay enwhay anyway argocay isway ullfay, ifway 'ullfay oad'lay: {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Useway improvedway oadinglay algorithmway: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Oadlay ehiclesvay aduallygray: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Inflationway: {ORANGE}{STRING}
@@ -2610,26 +2609,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Itizenscay elebratecay . . .{}Irstfay aintray arrivesway atway {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Etailsday)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Aintray inway ethay ayway
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :Ogay otay {STATION}
-STR_GO_TO_TRANSFER :Ogay otay {STATION} (Ansfertray andway aketay argocay)
-STR_8807_GO_TO_UNLOAD :Ogay otay {STATION} (Unloadway)
-STR_GO_TO_TRANSFER_UNLOAD :Ogay otay {STATION} (Ansfertray andway eavelay emptyway)
-STR_8808_GO_TO_LOAD :Ogay otay {STATION} (Oadlay)
-STR_GO_TO_TRANSFER_LOAD :Ogay otay {STATION} (Ansfertray andway aitway orfay ullfay oadlay)
-STR_880A_GO_NON_STOP_TO :Ogay onnay-opstay otay {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Ogay onnay-opstay otay {STATION} (Ansfertray andway aketay argocay)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Ogay onnay-opstay otay {STATION} (Unloadway)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Ogay onnay-opstay otay {STATION} (Ansfertray andway eavelay emptyway)
-STR_880C_GO_NON_STOP_TO_LOAD :Ogay onnay-opstay otay {STATION} (Oadlay)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Ogay onnay-opstay otay {STATION} (Ansfertray andway aitway orfay ullfay oadlay)
-STR_GO_TO_TRAIN_DEPOT :Ogay otay {TOWN} Aintray Epotday
-STR_SERVICE_AT_TRAIN_DEPOT :Ervicesay atway {TOWN} Aintray Epotday
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Ogay onnay-opstay otay {TOWN} Aintray Epotday
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Ervicesay onnay-opstay atway {TOWN} Aintray Epotday
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Aveltray (otnay imetabledtay)
STR_TIMETABLE_TRAVEL_FOR :Aveltray orfay {STRING}
STR_TIMETABLE_STAY_FOR :andway aystay orfay {STRING}
@@ -2670,10 +2650,7 @@
STR_8820_RENAME :{BLACK}Enameray
STR_8823_SKIP :{BLACK}Ipskay
STR_8824_DELETE :{BLACK}Eleteday
-STR_8825_NON_STOP :{BLACK}Onnay-Opstay
STR_8826_GO_TO :{BLACK}Ogay Otay
-STR_8827_FULL_LOAD :{BLACK}Ullfay Oadlay
-STR_8828_UNLOAD :{BLACK}Unloadway
STR_REFIT :{BLACK}Efitray
STR_REFIT_TIP :{BLACK}Electsay atwhay argocay ypetay otay efitray otay inway isthay orderway. Ontrolcay ickclay otay emoveray efitray instructionway
STR_REFIT_ORDER :(Efitray otay {STRING})
@@ -2681,7 +2658,6 @@
STR_TIMETABLE_VIEW_TOOLTIP :{BLACK}Itchsway otay ethay imetabletay iewvay
STR_8829_ORDERS :{WHITE}{VEHICLE} (Ordersway)
STR_882A_END_OF_ORDERS :{SETX 10}- - Endway ofway Ordersway - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Ervicesay
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}An'tcay uildbay ailwayray ehiclevay...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Uiltbay: {LTBLUE}{NUM}{BLACK} Aluevay: {LTBLUE}{CURRENCY}
@@ -2731,10 +2707,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Ordersway istlay - ickclay onway anway orderway otay ighlighthay itway. CTRLay + ickclay ollsscray otay ethay ationstay
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Ipskay ethay urrentcay orderway, andway artstay ethay extnay. CTRLay + ickclay ipsskay otay ethay electedsay orderway
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Eleteday ethay ighlightedhay orderway
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Akemay ethay ighlightedhay orderway onnay-opstay
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Insertway away ewnay orderway eforebay ethay ighlightedhay orderway, orway addway otay endway ofway istlay
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Akemay ethay ighlightedhay orderway orcefay ethay ehiclevay otay aitway orfay away ullfay oadlay
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Akemay ethay ighlightedhay orderway orcefay ethay ehiclevay otay unloadway
STR_TIMETABLE_TOOLTIP :{BLACK}Imetabletay - ickclay onway anway orderway otay ighlighthay itway.
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Angechay ethay amountway ofway imetay atthay ethay ighlightedhay orderway ouldshay aketay
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Earclay ethay amountway ofway imetay orfay ethay ighlightedhay orderway
@@ -2758,8 +2731,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}An'tcay everseray irectionday ofway aintray...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Enameray aintray ehiclevay ypetay
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}An'tcay enameray aintray ehiclevay ypetay...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Akemay ethay ighlightedhay orderway orcefay ethay ehiclevay otay umpday argocay
-STR_TRANSFER :{BLACK}Ansfertray
STR_CLEAR_TIME :{BLACK}Angechay Imetay
STR_RESET_LATENESS :{BLACK}Esetray Atelay Ountercay
@@ -2847,8 +2818,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Enameray oadray ehiclevay ypetay
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Enameray oadray ehiclevay ypetay
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}An'tcay enameray oadray ehiclevay ypetay...
-STR_GO_TO_ROADVEH_DEPOT :Ogay otay {TOWN} Oadray Ehiclevay Epotday
-STR_SERVICE_AT_ROADVEH_DEPOT :Ervicesay atway {TOWN} Oadray Ehiclevay Epotday
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Efitray oadray ehiclevay otay arrycay away ifferentday argocay ypetay
STR_REFIT_ROAD_VEHICLE :{BLACK}Efitray oadray ehiclevay
@@ -2924,8 +2893,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Ewnay apacitycay: {GOLD}{CARGO}{}{BLACK}Ostcay ofway efitray: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}An'tcay efitray ipshay...
STR_9842_REFITTABLE :(efittableray)
-STR_GO_TO_SHIP_DEPOT :Ogay otay {TOWN} Ipshay Epotday
-SERVICE_AT_SHIP_DEPOT :Ervicesay atway {TOWN} Ipshay Epotday
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Airportsway
@@ -2996,8 +2963,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Electsay argocay ypetay otay arrycay:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Ewnay apacitycay: {GOLD}{STRING}{}{BLACK}Ostcay ofway efitray: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}An'tcay efitray aircraftway...
-STR_GO_TO_AIRPORT_HANGAR :Ogay otay {STATION} Angarhay
-SERVICE_AT_AIRPORT_HANGAR :Ervicesay atway {STATION} Angarhay
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Imetabletay)
--- a/src/lang/polish.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/polish.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1110,7 +1110,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Realistyczne przyspieszenie pociągów: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Zabroń pociągom i statkom skręcać o 90st: {ORANGE}{STRING} {LTBLUE} (wymaga NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Połącz stacje budowane jedna obok drugiej: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Opuść stację gdy dowolny ładunek jest pełny, przy 'Załadunku': {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Użyj ulepszonego algorytmu załadunku: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Stopniowy załadunek pojazdów: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Inflacja: {ORANGE}{STRING}
@@ -2748,26 +2747,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Mieszkańcy świętują . . .{}Pierwszy pociąg przybył do {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Szczegóły)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Pociąg na drodze
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :Idź do {STATION}
-STR_GO_TO_TRANSFER :Idź do {STATION} (Przewieź i weź ładunek)
-STR_8807_GO_TO_UNLOAD :Idź do {STATION} (Wyładunek)
-STR_GO_TO_TRANSFER_UNLOAD :Idź do {STATION} (Przewieź i nie bierz ładunku)
-STR_8808_GO_TO_LOAD :Idź do {STATION} (Załadunek)
-STR_GO_TO_TRANSFER_LOAD :Idź do {STATION} (Przewieź i czekaj na pełen załadunek)
-STR_880A_GO_NON_STOP_TO :Idź bez zatrzymywania do {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Idź bez zatrzymywania do {STATION} (Przewieź i weź ładunek)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Idź bez zatrzymywania do {STATION} (Wyładunek)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Idź bez zatrzymywania do {STATION} (Przewieź i nie bierz ładunku)
-STR_880C_GO_NON_STOP_TO_LOAD :Idź bez zatrzymywania do {STATION} (Załadunek)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Idź bez zatrzymywania do {STATION} (Przewieź i czekaj na pełen załadunek)
-STR_GO_TO_TRAIN_DEPOT :Idź do zajezdni w {TOWN}
-STR_SERVICE_AT_TRAIN_DEPOT :Serwisuj w zajezdni w {TOWN}
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Idź bez zatrzymywania do zajezdni w {TOWN}
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Idź bez zatrzymywania do serwisu w zajezdni w {TOWN}
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Przejazd (bez ustalonego czasu)
STR_TIMETABLE_TRAVEL_FOR :Przejazd przez {STRING}
STR_TIMETABLE_STAY_FOR :i zostań tam przez {STRING}
@@ -2808,10 +2788,7 @@
STR_8820_RENAME :{BLACK}Zmień nazwę
STR_8823_SKIP :{BLACK}Pomiń
STR_8824_DELETE :{BLACK}Usuń
-STR_8825_NON_STOP :{BLACK}Non-Stop
STR_8826_GO_TO :{BLACK}Idź do
-STR_8827_FULL_LOAD :{BLACK}Załadunek
-STR_8828_UNLOAD :{BLACK}Wyładunek
STR_REFIT :{BLACK}Przebuduj
STR_REFIT_TIP :{BLACK}Wybierz do przewozu jakiego ładunku przebudować pojazd w tym zadaniu. CTRL+klik usuwa polecenie przebudowy
STR_REFIT_ORDER :(Przebuduj na {STRING})
@@ -2819,7 +2796,6 @@
STR_TIMETABLE_VIEW_TOOLTIP :{BLACK}Otwórz widok rozkładu jazdy
STR_8829_ORDERS :{WHITE}{VEHICLE} (Polecenia)
STR_882A_END_OF_ORDERS :{SETX 10}- - Koniec poleceń - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Serwis
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Nie można wybudować lokomotywy...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Budowa: {LTBLUE}{NUM}{BLACK} Wartość: {LTBLUE}{CURRENCY}
@@ -2869,10 +2845,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Lista poleceń - klik na poleceniu aby zaznaczyć. CTRL + klik przenosi do stacji
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Pomiń obecne zadanie, i rozpocznij kolejne. CTRL + klik pomija aż do zaznaczonego zadania
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Usuń podświetlone polecenie
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Zrób z tego polecenia 'non-stop'
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Wstaw nowe polecenie na końcu listy lub przed zaznaczonym poleceniem
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Spraw aby zaznaczone polecenie zmusiło pojazd do czekania na pełny załadunek
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Spraw aby zaznaczone polecenie zmusiło pojazd do wyładunku
STR_TIMETABLE_TOOLTIP :{BLACK}Rozkład jazdy - kliknij na zadaniu aby je zaznaczyć.
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Zmień ilość czasu którą zaznaczone zadanie powinno zająć
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Usuń ilość czas przeznaczoną na zaznaczone zadanie
@@ -2896,8 +2869,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Nie można odwrócić kierunku jazdy pociągu...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Zmiana nazwy typu pociągu
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Nie można zmienić nazwy typu pojazdu...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Spraw by w zaznaczonym poleceniu pojazd był zmuszony do pozostawienia ładunku dla kolejnego pojazdu
-STR_TRANSFER :{BLACK}Przewieź
STR_CLEAR_TIME :{BLACK}Usuń czas
STR_RESET_LATENESS :{BLACK}Wyzeruj spóźnienia
@@ -2985,8 +2956,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Zmień nazwę typu samochodu
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Zmień nazwę typu samochodu
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Nie można zmienić nazwy typu samochodu...
-STR_GO_TO_ROADVEH_DEPOT :Idź do zajezdni sam. w {TOWN}
-STR_SERVICE_AT_ROADVEH_DEPOT :Serwisuj w zajezdni sam. w {TOWN}
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Przebudowa samochodu do przewozu innego typu ładunku
STR_REFIT_ROAD_VEHICLE :{BLACK}Przebudowa samochodu
@@ -3062,8 +3031,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nowa pojemność: {GOLD}{CARGO}{}{BLACK}Koszt przebudowy: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Nie można przebudować statku...
STR_9842_REFITTABLE :(przebudowalny)
-STR_GO_TO_SHIP_DEPOT :Idź do stoczni w {TOWN}
-SERVICE_AT_SHIP_DEPOT :Serwisuj w stoczni w {TOWN}
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Lotniska
@@ -3134,8 +3101,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Wybierz typ ładunku do przewozu:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nowa pojemność: {GOLD}{STRING}{}{BLACK}Koszt przebudowy: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Nie można przebudować samolotu...
-STR_GO_TO_AIRPORT_HANGAR :Idź do hangaru na {STATION}
-SERVICE_AT_AIRPORT_HANGAR :Serwisuj w hangarze na {STATION}
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Rozkład jazdy)
--- a/src/lang/portuguese.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/portuguese.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1026,7 +1026,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Activar aceleração realista para comboios: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Proibir comboios e barcos de virar a 90 graus: {ORANGE}{STRING} {LTBLUE} (req. NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Juntar estações ferroviárias construídas pegadas: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Deixar estação quando uma das cargas esteja completa: {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Usar algoritmo de carregamento melhorado: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Carregar veículos gradualmente: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Inflação: {ORANGE}{STRING}
@@ -2639,26 +2638,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Cidadãos celebram . . .{}Primeiro comboio chega a {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Detalhes)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Comboio no caminho
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :Ir para {STATION}
-STR_GO_TO_TRANSFER :Ir para {STATION} (Transferir e levar carga)
-STR_8807_GO_TO_UNLOAD :Ir para {STATION} (Descarregar)
-STR_GO_TO_TRANSFER_UNLOAD :Ir para {STATION} (Transferir e deixar vazio)
-STR_8808_GO_TO_LOAD :Ir para {STATION} (Carregar)
-STR_GO_TO_TRANSFER_LOAD :Ir para {STATION} (Transferir e aguardar carga completa)
-STR_880A_GO_NON_STOP_TO :Ir sem parar para {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Ir sem parar para {STATION} (Transfer ir e levar carga)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Ir sem parar para {STATION} (Descarregar)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Ir sem parar para {STATION} (Transferir e deixar vazio)
-STR_880C_GO_NON_STOP_TO_LOAD :Ir sem parar para {STATION} (Carregar)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Ir sem parar para {STATION} (Transferir e aguardar carga completa)
-STR_GO_TO_TRAIN_DEPOT :Ir para o depósito de {TOWN}
-STR_SERVICE_AT_TRAIN_DEPOT :Manutenção no depósito de {TOWN}
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Ir sem parar para o depósito de {TOWN}
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Manutenção no depósito de {TOWN} sem parar
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Viagem (sem programação)
STR_TIMETABLE_TRAVEL_FOR :Viajar durante {STRING}
STR_TIMETABLE_STAY_FOR :e ficar durante {STRING}
@@ -2699,10 +2679,7 @@
STR_8820_RENAME :{BLACK}Renomear
STR_8823_SKIP :{BLACK}Saltar
STR_8824_DELETE :{BLACK}Eliminar
-STR_8825_NON_STOP :{BLACK}Sem parar
STR_8826_GO_TO :{BLACK}Ir Para
-STR_8827_FULL_LOAD :{BLACK}Carga
-STR_8828_UNLOAD :{BLACK}Descarga
STR_REFIT :{BLACK}Converter
STR_REFIT_TIP :{BLACK}Seleccionar o tipo de carga a converter nesta ordem. Pressionar Ctrl e botão-esquerdo do rato para remover instrução de conversão
STR_REFIT_ORDER :(Converter para {STRING})
@@ -2710,7 +2687,6 @@
STR_TIMETABLE_VIEW_TOOLTIP :{BLACK}Mudar para a vista de horário
STR_8829_ORDERS :{WHITE}{VEHICLE} (Ordens)
STR_882A_END_OF_ORDERS :{SETX 10}- - Fim de Ordens - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Manutenção
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Não é possível construir veículo ferroviário...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Construído: {LTBLUE}{NUM}{BLACK} Valor: {LTBLUE}{CURRENCY}
@@ -2760,10 +2736,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Lista de ordens - clique numa ordem para a seleccionar
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Salta a ordem actual, e inicia a próxima. CTRL + clique salta para a ordem seleccionada
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Eliminar a ordem seleccionada
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}A ordem seleccionada fará com que o veículo não para noutras estações pelo caminho
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Inserir nova ordem antes da ordem seleccionada, ou adicionar ao fim da lista
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}A ordem seleccionada fará com que o veículo espere carregar completamente
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}A ordem seleccionada forçará o veículo a descarregar
STR_TIMETABLE_TOOLTIP :{BLACK}Horário - clique numa ordem para a seleccionar.
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Muda o espaço de tempo que a ordem seleccionada deve durar
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Apagar o tempo que dura a ordem seleccionada
@@ -2787,8 +2760,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Não é possível inverter a direcção do comboio...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Renomear tipo de veículo ferroviário
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Não é possível renomear tipo de veículo ferroviário...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}A ordem seleccionada forçará o veículo a largar a carga
-STR_TRANSFER :{BLACK}Transferir
STR_CLEAR_TIME :{BLACK}Apagar Tempo
STR_RESET_LATENESS :{BLACK}Apagar Contad. Atraso
@@ -2876,8 +2847,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Renomear tipo de veículo de estrada
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Renomear tipo de veículo de estrada
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Não é possível renomear tipo de veículo de estrada...
-STR_GO_TO_ROADVEH_DEPOT :Ir para o depósito de {TOWN}
-STR_SERVICE_AT_ROADVEH_DEPOT :Manutenção no depósito de {TOWN}
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Reconverter veículo para transportar outro tipo de carga
STR_REFIT_ROAD_VEHICLE :{BLACK}Reconverter veículo
@@ -2953,8 +2922,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nova capacidade: {GOLD}{CARGO}{}{BLACK}Custo da adaptação: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Não é possível adaptar barco...
STR_9842_REFITTABLE :(adaptável)
-STR_GO_TO_SHIP_DEPOT :Ir para o depósito naval de {TOWN}
-SERVICE_AT_SHIP_DEPOT :Manutenção no estaleiro de {TOWN}
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Aeroportos
@@ -3025,8 +2992,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Seleccionar tipo de carga:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nova capacidade: {GOLD}{STRING}{}{BLACK}Custo da conversão: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Não é possível converter aeronave...
-STR_GO_TO_AIRPORT_HANGAR :Ir para o hangar de {STATION}
-SERVICE_AT_AIRPORT_HANGAR :Manutenção no hangar de {STATION}
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Horário)
--- a/src/lang/romanian.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/romanian.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1024,7 +1024,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Permite acceleratie realisticã pentru trenuri: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Interzice trenurilor si navelor sa faca intoarceri de 90 de grade: {ORANGE}{STRING} {LTBLUE} (necesita NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Uneste gãrile alãturate: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Pãrãseste statia când orice tip de marfã este 'full load': {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Foloseste algoritm incarcare imbunatatit: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Incarca vehiculele gradual: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Inflatia: {ORANGE}{STRING}
@@ -2620,26 +2619,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Cetăţenii sărbătoresc {}sosirea primului tren la {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Detalii)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Tren în drum
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :Mergi la {STATION}
-STR_GO_TO_TRANSFER :Mergi la {STATION} (Preia încărcătura pentru transfer)
-STR_8807_GO_TO_UNLOAD :Mergi la {STATION} (Descarcă)
-STR_GO_TO_TRANSFER_UNLOAD :Mergi la {STATION} (Descarcă încărcătura pentru transfer)
-STR_8808_GO_TO_LOAD :Mergi la {STATION} (Încarcă)
-STR_GO_TO_TRANSFER_LOAD :Mergi la {STATION} (Aşteaptă 100% încărcătură pentru transfer)
-STR_880A_GO_NON_STOP_TO :Mergi fără oprire la {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Mergi fără oprire la {STATION} (Preia încărcătura pentru transfer)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Mergi fără oprire la {STATION} (Descarcă)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Mergi fără oprire la {STATION} (Descarcă încărcătura pentru transfer)
-STR_880C_GO_NON_STOP_TO_LOAD :Mergi fără oprire la {STATION} (Încarcă)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Mergi fără oprire la {STATION} (Aşteaptă 100% încărcătură pentru transfer)
-STR_GO_TO_TRAIN_DEPOT :Mergi la depoul {TOWN}
-STR_SERVICE_AT_TRAIN_DEPOT :Service la Depoul {TOWN}
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Mergi fără oprire la Depoul {TOWN}
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Non-stop pt. service la Depoul {TOWN}
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Calatorie (fara orar)
STR_TIMETABLE_TRAVEL_FOR :Calatorii pentru {STRING}
STR_TIMETABLE_STAY_FOR :si opriri pentru {STRING}
@@ -2680,10 +2660,7 @@
STR_8820_RENAME :{BLACK}Redenumeşte
STR_8823_SKIP :{BLACK}Sãri peste
STR_8824_DELETE :{BLACK}Şterge
-STR_8825_NON_STOP :{BLACK}Fără oprire
STR_8826_GO_TO :{BLACK}Mergi la
-STR_8827_FULL_LOAD :{BLACK}Încarcă 100%
-STR_8828_UNLOAD :{BLACK}Descarcă
STR_REFIT :{BLACK}Rearanjeaza
STR_REFIT_TIP :{BLACK}Alege tipul de marfa pentru rearanjare. Control+click pt a anula rearanjarea
STR_REFIT_ORDER :(Rearanjeaza in {STRING})
@@ -2691,7 +2668,6 @@
STR_TIMETABLE_VIEW_TOOLTIP :{BLACK}Comuta in modul de vizualizare orar
STR_8829_ORDERS :{WHITE}{VEHICLE} (Comenzi)
STR_882A_END_OF_ORDERS :{SETX 10}- - Sfârşitul comenzilor - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Service
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Nu pot construi vehiculul...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Cumpărat: {LTBLUE}{NUM}{BLACK} Valoare: {LTBLUE}{CURRENCY}
@@ -2741,10 +2717,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Lista de comenzi - clic pe comandã pentru a o selecta
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Renunta la comanta acruala si preia-o pe urmatoarea. CTRL + click face salt la comanda selectata
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Sterge comanda selectatã
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Circulă fără oprire până la destinaţia selectată
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Introdu o comandã înaintea celei selectate sau adaugã o comandã la sfârsitul listei
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Forteazã trenul sã astepte la destinatia selectatã pânã la umplerea la capacitate maximã
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Forteazã trenul sã descarce marfa la destinatia selectatã
STR_TIMETABLE_TOOLTIP :{BLACK}Orar - click on an order to highlight it.
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Modifica durata de timp alocata pentru comanda selectata
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Elimina durata de timp pentru comanda selectata
@@ -2768,8 +2741,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Nu pot schimba sensul de mers al trenului...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Redenumeste modelul vehiculului feroviar
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Nu pot redenumi modelul acestui vehicul...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Comanda selectatã forteazã vehiculul sã arunce încãrcãtura
-STR_TRANSFER :{BLACK}Transferă
STR_CLEAR_TIME :{BLACK}Curata timp
STR_RESET_LATENESS :{BLACK}Reinitializeaza contorul de intarziere
@@ -2857,8 +2828,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Redenumeste modelul de autovehicul
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Redenumeste modelul autovehiculului
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Nu pot redenumi modelul acestui autovehicul...
-STR_GO_TO_ROADVEH_DEPOT :Mergi la Autobaza {TOWN}
-STR_SERVICE_AT_ROADVEH_DEPOT :Service la Autobaza {TOWN}
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Adapteaza autovehiculul pentru o incarcatura diferita
STR_REFIT_ROAD_VEHICLE :{BLACK}Adaptare autovehicul
@@ -2934,8 +2903,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Noua capacitate: {GOLD}{CARGO}{}{BLACK}Costul transformãrii: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Nu pot schimba tipul navei...
STR_9842_REFITTABLE :(suportã alte mãrfuri)
-STR_GO_TO_SHIP_DEPOT :Mergi la Santierul Naval {TOWN}
-SERVICE_AT_SHIP_DEPOT :Întreţinere la şantierul naval {TOWN}
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Airoporturi
@@ -3006,8 +2973,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Alege marfa de transportat:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Noua capacitate: {GOLD}{STRING}{}{BLACK}Costul transformãrii: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Nu pot schimba tipul de încãrcãturã...
-STR_GO_TO_AIRPORT_HANGAR :Mergi la Hangarul {STATION}
-SERVICE_AT_AIRPORT_HANGAR :Întreţinere la hangarul {STATION}
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Orar)
--- a/src/lang/russian.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/russian.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1028,7 +1028,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Включить реалистичное ускорение для поездов: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Запретить 90-градусные повороты на ж/д и море: {ORANGE}{STRING} {LTBLUE} (NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Объединять рядом построенные ж/д станции: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Покидать станцию, когда любой груз полностью загружен: {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Использовать улучшенный алгоритм загрузки: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Постепенная загрузка транспорта: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Включить инфляцию: {ORANGE}{STRING}
@@ -2660,26 +2659,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Жители празднуют!{}Первый поезд прибыл на станцию {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Детали)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Поезд мешает
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :Ехать к ст. {STATION}
-STR_GO_TO_TRANSFER :Ехать к ст. {STATION} (Трансфер)
-STR_8807_GO_TO_UNLOAD :Ехать к ст. {STATION} (Не грузиться)
-STR_GO_TO_TRANSFER_UNLOAD :Ехать к ст. {STATION} (Трансфер и не грузиться)
-STR_8808_GO_TO_LOAD :Ехать к ст. {STATION} (Полная загрузка)
-STR_GO_TO_TRANSFER_LOAD :Ехать к ст. {STATION} (Трансфер и полная загрузка)
-STR_880A_GO_NON_STOP_TO :Ехать к ст. {STATION} без остановки
-STR_GO_TO_NON_STOP_TRANSFER :Ехать к ст. {STATION} без остановки (Трансфер)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Ехать к ст. {STATION} без остановки (Не грузиться)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Ехать к ст. {STATION} без остановки (Трансфер и не грузиться)
-STR_880C_GO_NON_STOP_TO_LOAD :Ехать к ст. {STATION} без остановки (Полная загрузка)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Ехать к ст. {STATION} без остановки (Трансфер и полная загрузка)
-STR_GO_TO_TRAIN_DEPOT :Ехать в депо {TOWN}
-STR_SERVICE_AT_TRAIN_DEPOT :Обслужиться в депо {TOWN}
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Ехать в депо {TOWN} без остановки
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Обслужиться в депо {TOWN} без остановки
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Путешествует (не учитывается)
STR_TIMETABLE_TRAVEL_FOR :Идти до {STRING}
STR_TIMETABLE_STAY_FOR :и ждать {STRING}
@@ -2720,10 +2700,7 @@
STR_8820_RENAME :{BLACK}Переимен.
STR_8823_SKIP :{BLACK}Пропуск
STR_8824_DELETE :{BLACK}Удалить
-STR_8825_NON_STOP :{BLACK}Без ост.
STR_8826_GO_TO :{BLACK}Ехать
-STR_8827_FULL_LOAD :{BLACK}Полный
-STR_8828_UNLOAD :{BLACK}Без груза
STR_REFIT :{BLACK}Переоб.
STR_REFIT_TIP :{BLACK}Выберите тип грузов для переоборудования. CTRL+клик - для удаления.
STR_REFIT_ORDER :(Переоборуд. для {STRING})
@@ -2731,7 +2708,6 @@
STR_TIMETABLE_VIEW_TOOLTIP :{BLACK}Просмотр расписания
STR_8829_ORDERS :{WHITE}{VEHICLE} (Задания)
STR_882A_END_OF_ORDERS :{SETX 10}- - Конец заданий - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Обслуж.
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Невозможно построить ж/д транспорт...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Построен: {LTBLUE}{NUM}{BLACK} Стоимость: {LTBLUE}{CURRENCY}
@@ -2781,10 +2757,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Показ списка заданий - щелкните для выделения. Если зажать CTRL - обзор станции.
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Пропустить данное задание и начать следующее. CTRL + клик пропускает выделенное задание.
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Удалить выделенное задание
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Ехать по выбранному заданию без остановок
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Вставить новое задание перед выделенным, или в конец списка
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Задать ожидание полной загрузки
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Задать ожидание полной разгрузки
STR_TIMETABLE_TOOLTIP :{BLACK}Расписание - выберите задание.
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Изменить время для выделенного задания
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Очистить время в выделенном задании
@@ -2808,8 +2781,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Невозможно развернуть поезд...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Переименовать тип вагона
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Невозможно переименовать тип вагона ...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}По выделенному приказу произойдет принудительная разгрузка транспортного средства
-STR_TRANSFER :{BLACK}Трансфер
STR_CLEAR_TIME :{BLACK}Сбросить Время
STR_RESET_LATENESS :{BLACK}Сброс счетчика
@@ -2897,8 +2868,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Переименовать автомобиль
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Переименовать автомобиль
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Невозможно переименовать автомобиль...
-STR_GO_TO_ROADVEH_DEPOT :Ехать в гараж {TOWN}
-STR_SERVICE_AT_ROADVEH_DEPOT :Обслуж. в гараже {TOWN}
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Переоборуд. авто для доставки разных видов грузов.
STR_REFIT_ROAD_VEHICLE :{BLACK}Переоборуд. авто
@@ -2974,8 +2943,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Новая емкость: {GOLD}{CARGO}{}{BLACK}Стоимость переоборудования: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Не могу переоборудовать корабль......
STR_9842_REFITTABLE :(переоб.)
-STR_GO_TO_SHIP_DEPOT :Плыть в Док {TOWN}
-SERVICE_AT_SHIP_DEPOT :Обслуживание в доке {TOWN}
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Аэропорты
@@ -3046,8 +3013,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Выберите тип груза для перевозки:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Новая емкость: {GOLD}{STRING}{}{BLACK}Стоимость переоборуд.: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Невозможно переоборудовать...
-STR_GO_TO_AIRPORT_HANGAR :Лететь в Ангар {STATION}
-SERVICE_AT_AIRPORT_HANGAR :Сервис в ангаре {STATION}
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Расписание)
--- a/src/lang/simplified_chinese.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/simplified_chinese.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1018,7 +1018,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}打开仿真的列车加速模式:{ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}禁止列车和轮船 90 度转弯:{ORANGE}{STRING} {LTBLUE} (需要 NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}将相邻的火车站进行整合:{ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}在“装货”模式时,只要装满任意一种即可:{ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}使用进阶的装货算法:{ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}装货时循序渐进:{ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}通货膨胀:{ORANGE}{STRING}
@@ -2479,26 +2478,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}市民举行庆祝仪式……{}第一列火车抵达 {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (详细信息)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}指定位置有列车
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :前往 {STATION}
-STR_GO_TO_TRANSFER :前往 {STATION} (转运并装货)
-STR_8807_GO_TO_UNLOAD :前往 {STATION} (全部卸货)
-STR_GO_TO_TRANSFER_UNLOAD :前往 {STATION} (转运且不装货)
-STR_8808_GO_TO_LOAD :前往 {STATION} (等待装满)
-STR_GO_TO_TRANSFER_LOAD :前往 {STATION} (转运并等待装满)
-STR_880A_GO_NON_STOP_TO :前往(不停) {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :前往(不停) {STATION} (转运并装货)
-STR_880B_GO_NON_STOP_TO_UNLOAD :前往(不停) {STATION} (全部卸货)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :前往(不停) {STATION} (转运且不装货)
-STR_880C_GO_NON_STOP_TO_LOAD :前往(不停) {STATION} (等待装满)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :前往(不停) {STATION} (转运并等待装满)
-STR_GO_TO_TRAIN_DEPOT :前往 {TOWN} 车库
-STR_SERVICE_AT_TRAIN_DEPOT :在 {TOWN} 车库保养
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :前往(不停) {TOWN} 车库
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :在 {TOWN} 车库保养(不停)
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :旅行 (无时间表)
STR_TIMETABLE_TRAVEL_FOR :前往 {STRING} 旅行
STR_TIMETABLE_STAY_FOR :并且在 {STRING} 停留
@@ -2539,10 +2519,7 @@
STR_8820_RENAME :{BLACK}重命名
STR_8823_SKIP :{BLACK}跳过
STR_8824_DELETE :{BLACK}删除
-STR_8825_NON_STOP :{BLACK}不停
STR_8826_GO_TO :{BLACK}前往
-STR_8827_FULL_LOAD :{BLACK}装货
-STR_8828_UNLOAD :{BLACK}卸货
STR_REFIT :{BLACK}改装
STR_REFIT_TIP :{BLACK}选择要在调度计划中改装的货物类型。CTRL+单击可以去掉说明。
STR_REFIT_ORDER :(改装为 {STRING})
@@ -2550,7 +2527,6 @@
STR_TIMETABLE_VIEW_TOOLTIP :{BLACK}切换到时间表视图
STR_8829_ORDERS :{WHITE}{VEHICLE} (调度计划)
STR_882A_END_OF_ORDERS :{SETX 10}-- 调度计划结束 --
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}保养
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}不能购买列车……
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} 建造时间:{LTBLUE}{NUM}{BLACK} 价值:{LTBLUE}{CURRENCY}
@@ -2600,10 +2576,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}调度列表 - 单击一个调度指令可以使之高亮化. CTRL + 单击可以将视点移动到相应的车站
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}跳过当前命令并执行下一条命令。CTRL并单击可以跳过选定的命令
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}删除高亮的调度命令
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}命令铁车在高亮的指令对应的车站不停车
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}在调度列表的结尾或高亮项目的前面增加一条新指令
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}命令列车在高亮项目对应的车站装满货物
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}命令列车在高亮项目对应的车站卸载货物
STR_TIMETABLE_TOOLTIP :{BLACK}时间表 - 单击一个命令可以使其高亮。
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}改变高亮选择的命令执行的时间
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}清除高亮选择的命令的执行时间
@@ -2627,8 +2600,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}不能命令列车调头...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}重命名车辆的类型
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}不能重命名车辆的类型...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}命令列车在高亮指令对应的车站寄存货物
-STR_TRANSFER :{BLACK}联运
STR_CLEAR_TIME :{BLACK}清除时间
STR_RESET_LATENESS :{BLACK}清除晚点计数器
@@ -2710,8 +2681,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}重命名汽车型号
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}重命名汽车型号
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}不能重命名汽车型号……
-STR_GO_TO_ROADVEH_DEPOT :前往 {TOWN} 车库
-STR_SERVICE_AT_ROADVEH_DEPOT :在 {TOWN} 车库进行保养
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}改装汽车以装载其他货物
STR_REFIT_ROAD_VEHICLE :{BLACK}改装汽车
@@ -2787,8 +2756,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}新的装载能力:{GOLD}{CARGO}{}{BLACK}改装费用:{GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}不能改装船只……
STR_9842_REFITTABLE :(可改装)
-STR_GO_TO_SHIP_DEPOT :前往 {TOWN} 船坞
-SERVICE_AT_SHIP_DEPOT :在 {TOWN} 船坞保养
##id 0xA000
STR_A000_AIRPORTS :{WHITE}机场
@@ -2859,8 +2826,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}选择要运输的货物类型:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}新的装载能力:{GOLD}{STRING}{}{BLACK}改装费用:{GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}不能改装飞机……
-STR_GO_TO_AIRPORT_HANGAR :前往 {STATION} 机库
-SERVICE_AT_AIRPORT_HANGAR :在 {STATION} 机库保养
##id 0xB000
--- a/src/lang/slovak.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/slovak.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1090,7 +1090,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Zapnut realnu akceleraciu vlakov: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Zakázat vlakom a lodiam otácanie o 90 st.: {ORANGE}{STRING} {LTBLUE} (vyžaduje NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Umoznit spajanie stanic: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Opustit stanicu ked jeden z nakladov je plny, pri 'plne naloz': {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Pouzit vylepseny algoritmus nakladania: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Postupné nakladanie vozidiel: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Inflácia: {ORANGE}{STRING}
@@ -2715,26 +2714,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Mesto oslavuje . . .{}Prvy vlak dorazil do stanice {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Detaily)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Vlak v ceste
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :Chod do {STATION}
-STR_GO_TO_TRANSFER :Chod do {STATION} (prelozit a nalozit iny naklad)
-STR_8807_GO_TO_UNLOAD :Chod do {STATION} (vylozit)
-STR_GO_TO_TRANSFER_UNLOAD :Chod do {STATION} (prelozit a nechat prazdne)
-STR_8808_GO_TO_LOAD :Chod do {STATION} (nalozit)
-STR_GO_TO_TRANSFER_LOAD :Chod do {STATION} (prelozit a plne nalozit)
-STR_880A_GO_NON_STOP_TO :Chod bez zastavenia do {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Chod bez zastavenia do {STATION} (prelozit a nalozit iny naklad)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Chod bez zastavenia do {STATION} (vylozit)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Chod bez zastavenia do {STATION} (prelozit a nechat prazdne)
-STR_880C_GO_NON_STOP_TO_LOAD :Chod bez zastavenia do {STATION} (nalozit)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Chod bez zastavenia do {STATION} (prelozit a plne nalozit)
-STR_GO_TO_TRAIN_DEPOT :Chod do depa {TOWN}
-STR_SERVICE_AT_TRAIN_DEPOT :Opravit v {TOWN} Vlakovom Depe
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Chod bez zastavenia do depa {TOWN}
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Opravovat bez zastavenia v depe {TOWN}
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Cesta (neurcený cas)
STR_TIMETABLE_TRAVEL_FOR :Cesta do {STRING}
STR_TIMETABLE_STAY_FOR :prestávka {STRING}
@@ -2775,10 +2755,7 @@
STR_8820_RENAME :{BLACK}Premenovat
STR_8823_SKIP :{BLACK}Preskocit
STR_8824_DELETE :{BLACK}Vynechat
-STR_8825_NON_STOP :{BLACK}Non-Stop
STR_8826_GO_TO :{BLACK}Chod do
-STR_8827_FULL_LOAD :{BLACK}Plne naloz
-STR_8828_UNLOAD :{BLACK}Vylozit
STR_REFIT :{BLACK}Prestavba
STR_REFIT_TIP :{BLACK}Vyberte typ nákladu na prestavbu v tomto poradí. CTRL+klik na odstránenie príkazu prestavby
STR_REFIT_ORDER :(Prestavba na {STRING})
@@ -2788,7 +2765,6 @@
STR_ORDER_VIEW_TOOLTIP :{BLACK}Prepnút na zobrazenie príkazov
STR_8829_ORDERS :{WHITE}{VEHICLE} (Prikazy)
STR_882A_END_OF_ORDERS :{SETX 10}- - Koniec prikazov - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Oprava
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Nemozno kupit vlak...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Vyrobene: {LTBLUE}{NUM}{BLACK} Hodnota: {LTBLUE}{CURRENCY}
@@ -2838,10 +2814,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Zoznam prikazov - kliknut na prikaz pre oznacenie
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Preskocit aktuálny príkaz a zacat další. Podržte CTRL pre skok na oznacený príkaz
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Vymazat oznaceny prikaz
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Oznaceny prikaz bude prevedeny bez zastavenia
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Vlozit novy prikaz pred oznaceny prikaz, alebo na koniec zoznamu
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Na oznacenom prikaze bude vozidlo cakat na plne nalozenie
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Na oznacenom prikaze bude vozidlo uplne vylozene
STR_TIMETABLE_TOOLTIP :{BLACK}Cestovný poriadok - kliknite na príkaz pre jeho oznacenie
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Zmenit dlžku trvania oznaceného príkazu
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Vymazat dlžku trvania oznaceného príkazu
@@ -2865,8 +2838,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Nemozno zmenit smer vlaku ...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Premenovat typ vlaku
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Typ vlaku nemoze byt premenovany ...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}U vyznaceneho prikazu musi vozidlo vylozit naklad
-STR_TRANSFER :{BLACK}Prekladka
STR_CLEAR_TIME :{BLACK}Vymazat cas
STR_RESET_LATENESS :{BLACK}Reset meskania
@@ -2954,8 +2925,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Premenovat typ automobilu
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Premenovat typ automobilu
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Nemozno premenovat typ automobilu ...
-STR_GO_TO_ROADVEH_DEPOT :Chod do {TOWN} garaze
-STR_SERVICE_AT_ROADVEH_DEPOT :Opravit v {TOWN} garazi
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Prestavat vozidlo na prepravu ineho druhu nakladu
STR_REFIT_ROAD_VEHICLE :{BLACK}Prestavat vozidlo
@@ -3031,8 +3000,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nová kapacita: {GOLD}{CARGO}{}{BLACK}Cena prestavby: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Nemozno prestavat lod...
STR_9842_REFITTABLE :(mozna prestavba)
-STR_GO_TO_SHIP_DEPOT :Chod do {TOWN} Lodenice
-SERVICE_AT_SHIP_DEPOT :Opravit v {TOWN} lodenici
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Letiska
@@ -3103,8 +3070,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Vybrat typ noveho nakladu:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nová kapacita: {GOLD}{STRING}{}{BLACK}Náklady na prestavbu: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Nie je mozne prestavat na novy typ nakladu ...
-STR_GO_TO_AIRPORT_HANGAR :Chod do {STATION} Hangaru
-SERVICE_AT_AIRPORT_HANGAR :Opravit v {STATION} hangári
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Cestovný poriadok)
--- a/src/lang/slovenian.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/slovenian.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1068,7 +1068,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Omogoči bolj resnične pospeške vlakov: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Prepreči vlakom in ladjam 90-stopinjske zavoje: {ORANGE}{STRING} {LTBLUE} (potrebuje NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Združi železniške postaje, ki si stojijo blizu: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Zapusti postajo ko je ves tovor napolnjen ob podukazu 'napolni do vrha': {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Uporabi izboljšan algoritem polnjenja: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Postopno polni vozila: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Inflacija: {ORANGE}{STRING}
@@ -2732,26 +2731,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Prebivalci praznujejo . . .{}Prvi vlak je slovesno pripeljal{}na postajo {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Podrobnosti)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Vlak v napoto
-STR_8804 :{SETX 10}{COMMA}: {STRING}{STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING}{STRING}
-STR_8806_GO_TO :Pojdi do {STATION}
-STR_GO_TO_TRANSFER :Pojdi do {STATION} (Pretovori in vzemi tovor)
-STR_8807_GO_TO_UNLOAD :Pojdi do {STATION} (Raztovori)
-STR_GO_TO_TRANSFER_UNLOAD :Pojdi do {STATION} (Pretovori in pusti prazno)
-STR_8808_GO_TO_LOAD :Pojdi do {STATION} (Naloži)
-STR_GO_TO_TRANSFER_LOAD :Pojdi do {STATION} (Prenesi in počakaj na polno breme)
-STR_880A_GO_NON_STOP_TO :Pojdi brez postanka do {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Pojdi brez postanka do {STATION} (Prenesi in vzemi tovor)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Pojdi brez postanka do {STATION} (Raztovori)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Pojdi brez postanka do {STATION} (Pretovori in pusti prazno)
-STR_880C_GO_NON_STOP_TO_LOAD :Pojdi brez postanka do {STATION} (Naloži)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Pojdi brez postanka do {STATION} (Prenesi in počakaj na polno breme)
-STR_GO_TO_TRAIN_DEPOT :Pojdi v {TOWN} železniško garažo
-STR_SERVICE_AT_TRAIN_DEPOT :Na servis v {TOWN} železniško garažo
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Pojdi brez postanka do garaže {TOWN}
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Non stop na servis v {TOWN} železniško garažo
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Potovanje (brez časovnih tabel)
STR_TIMETABLE_TRAVEL_FOR :Potuj za {STRING}
STR_TIMETABLE_STAY_FOR :in ostani za {STRING}
@@ -2792,10 +2772,7 @@
STR_8820_RENAME :{BLACK}Preimenuj
STR_8823_SKIP :{BLACK}Preskoči
STR_8824_DELETE :{BLACK}Izbriši
-STR_8825_NON_STOP :{BLACK}Brez postanka
STR_8826_GO_TO :{BLACK}Pojdi do
-STR_8827_FULL_LOAD :{BLACK}Naloži polno
-STR_8828_UNLOAD :{BLACK}Raztovori
STR_REFIT :{BLACK}Predelaj
STR_REFIT_TIP :{BLACK}Izberi predelavo za vrsto tovora, ki ga želiš. CTRL + klik za odstranitev ukaza predelave
STR_REFIT_ORDER :(Predelaj za {STRING})
@@ -2805,7 +2782,6 @@
STR_ORDER_VIEW_TOOLTIP :{BLACK}Preklop na pogled ukazov
STR_8829_ORDERS :{WHITE}{VEHICLE} (Ukazi)
STR_882A_END_OF_ORDERS :{SETX 10}- - Konec ukazov - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Servis
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Ni mogoče kupiti vozila ...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Zgrajeno: {LTBLUE}{NUM}{BLACK} Vrednost: {LTBLUE}{CURRENCY}
@@ -2855,10 +2831,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Seznam navodil - klikni na ukaz, da ga izbereš. CTRL+klik prikaže postajo
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Preskoči trenutni ukaz in začni naslednjega. CTRL + klik preskoči na izbran ukaz
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Zbriši izbran ukaz
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Označi izbran ukaz kot brez-postanka
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Vstavi nov ukaz pred izbranega ali pa ga dodaj na koncu seznama
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Označi izbran ukaz, naj vozilo čaka na polno obremenitev
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Označi izbran ukaz, naj se vozilo v celoti raztovori
STR_TIMETABLE_TOOLTIP :{BLACK}Časovna tabela - clikni na ukaz za ga označit.
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Spremeni čas, ki naj bi ga označeni ukaz porabil
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Počisti čas za označen ukaz
@@ -2882,8 +2855,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Ni mogoče spremeniti smeri vlaka ...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Preimenuj železniško vozilo
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Ni mogoče preimenovati železniškega vozila ...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Nastavi označen ukaz, naj prisili vozilo, da se raztovori
-STR_TRANSFER :{BLACK}Pretovori
STR_CLEAR_TIME :{BLACK}Počisti čas
STR_RESET_LATENESS :{BLACK}Resetiraj Late Counter
@@ -2971,8 +2942,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Preimenuj cestno vozilo
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Preimenuj cestno vozilo
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Ni mogoče preimenovati cestnega vozila ...
-STR_GO_TO_ROADVEH_DEPOT :Pojdi v garažo v mestu {TOWN}
-STR_SERVICE_AT_ROADVEH_DEPOT :Na servis v {TOWN} cestno garažo
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Predelaj vozilo za prevoz druge vrste tovora
STR_REFIT_ROAD_VEHICLE :{BLACK}Predelaj cestno vozilo
@@ -3048,8 +3017,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nova zmogljivost: {GOLD}{CARGO}{}{BLACK}Cena predelave: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Ni mogoče preurediti ladje ...
STR_9842_REFITTABLE :(spremenljivo)
-STR_GO_TO_SHIP_DEPOT :Pojdi v {TOWN} ladijsko garažo
-SERVICE_AT_SHIP_DEPOT :Na servis v {TOWN} dok
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Letališča
@@ -3120,8 +3087,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Izberi tip tovora:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nova zmogljivost: {GOLD}{STRING}{}{BLACK}Cena predelave: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Ni mogoča predelava letala ...
-STR_GO_TO_AIRPORT_HANGAR :Pojdi v {STATION} hangar
-SERVICE_AT_AIRPORT_HANGAR :Na servisiranje v {STATION} Hangar
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Časovna tabela)
--- a/src/lang/spanish.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/spanish.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1027,7 +1027,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Activar aceleración realista de trenes: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Prohibir a trenes/barcos giros de 90 grados: {ORANGE}{STRING} {LTBLUE} (requiere NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Unir estaciones de tren unas junto a otras: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Abandona est. con alguna carga completa, en 'carga completa': {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Usar algoritmo mejorado de carga: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Cargar vehículos gradualmente: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Inflacción: {ORANGE}{STRING}
@@ -2640,26 +2639,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Los ciudadanos celebran . . .{}¡Primer tren llega a {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Detalles)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Tren en camino
-STR_8804 :{SETX 10}{COMMA}: {STRING}{STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING}{STRING}
-STR_8806_GO_TO :Ir a {STATION}
-STR_GO_TO_TRANSFER :Ir a {STATION} (Transferir y cargar)
-STR_8807_GO_TO_UNLOAD :Ir a {STATION} (Descargar)
-STR_GO_TO_TRANSFER_UNLOAD :Ir a {STATION} (Transferir y dejar vacío)
-STR_8808_GO_TO_LOAD :Ir a {STATION} (Cargar)
-STR_GO_TO_TRANSFER_LOAD :Ir a {STATION} (Transferir y esperar a carga completa)
-STR_880A_GO_NON_STOP_TO :Ir sin paradas a {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Ir sin paradas a {STATION} (Transferir y cargar)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Ir sin paradas a {STATION} (Descargar)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Ir sin paradas a {STATION} (Transferir y dejar vacío)
-STR_880C_GO_NON_STOP_TO_LOAD :Ir sin paradas a {STATION} (Cargar)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Ir sin paradas a {STATION} (Transferir y esperar a carga completa)
-STR_GO_TO_TRAIN_DEPOT :Ir al depósito del tren de {TOWN}
-STR_SERVICE_AT_TRAIN_DEPOT :Ir al depósito de {TOWN} para mantenimiento
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Ir sin parar al depósito de {TOWN}
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Ir sin parar al depósito de {TOWN} para mantenimiento
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Viaje (sin horarios)
STR_TIMETABLE_TRAVEL_FOR :Viaje para {STRING}
STR_TIMETABLE_STAY_FOR :y estancia en {STRING}
@@ -2700,10 +2680,7 @@
STR_8820_RENAME :{BLACK}Renombrar
STR_8823_SKIP :{BLACK}Saltarse
STR_8824_DELETE :{BLACK}Borrar
-STR_8825_NON_STOP :{BLACK}Sin parar
STR_8826_GO_TO :{BLACK}Ir a
-STR_8827_FULL_LOAD :{BLACK}Carga
-STR_8828_UNLOAD :{BLACK}Descarga
STR_REFIT :{BLACK}Recargar
STR_REFIT_TIP :{BLACK}Selecciona el tipo de carga a recargar en esta orden. Control+click para quitar la orden de recargar
STR_REFIT_ORDER :(Recargar en {STRING})
@@ -2711,7 +2688,6 @@
STR_TIMETABLE_VIEW_TOOLTIP :{BLACK}Cambiar a la vista de horarios
STR_8829_ORDERS :{WHITE}{VEHICLE} (Órdenes)
STR_882A_END_OF_ORDERS :{SETX 10}- - Fin de pedidos - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Servicio
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}No se puede construir vehículo...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Construido: {LTBLUE}{NUM}{BLACK} Valor: {LTBLUE}{CURRENCY}
@@ -2761,10 +2737,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Lista de órdenes - click en orden para resaltarla
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Saltar orden actual y comenzar la siguiente
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Borrar orden resaltada
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Hacer la orden resaltada sin parada
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Añadir nueva orden antes de la orden resaltada, o añadirla al final de la lista
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Hacer que en la orden resaltada, el vehículo espere a carga completa
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Hacer que en la orden resaltada, el vehículo espere a descargar completamente
STR_TIMETABLE_TOOLTIP :{BLACK}Horarios - pulse en una orden para marcarla.
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Cambia la cantidad de tiempo que debe tomar una orden marcada
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Limpiar la cantidad de tiempo para la orden seleccionada
@@ -2788,8 +2761,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}No se puede revertir la dirección...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Renombrar tipo de vehículo
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}No se puede renombrar tipo de vehículo...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Hacer que la orden marcada fuerce al vehículo a descargar
-STR_TRANSFER :{BLACK}Transferir
STR_CLEAR_TIME :{BLACK}Limpiar Horario
STR_RESET_LATENESS :{BLACK}Resetear Retrasos
@@ -2877,8 +2848,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Renombrar tipo de vehículo
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Renombrar tipo de vehículo
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}No se puede renombrar tipo de vehículo....
-STR_GO_TO_ROADVEH_DEPOT :Ir al depósito de {TOWN}
-STR_SERVICE_AT_ROADVEH_DEPOT :Ir al depósito de {TOWN} para mantenimiento
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Reparar vehículo de carretera para transportar otro tipo de cargas
STR_REFIT_ROAD_VEHICLE :{BLACK}Reparar vehículo de carretera
@@ -2954,8 +2923,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nueva capacidad: {GOLD}{CARGO}{}{BLACK}Coste de reforma: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}No se puede reformar barco...
STR_9842_REFITTABLE :(reformable)
-STR_GO_TO_SHIP_DEPOT :Ir al astillero de {TOWN}
-SERVICE_AT_SHIP_DEPOT :Ir al astillero de {TOWN} para mantenimiento
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Aeropuertos
@@ -3026,8 +2993,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Elige tipo de carga para llevar:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nueva capacidad: {GOLD}{STRING}{}{BLACK}Coste de reforma: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}No se puede reformar aeronave...
-STR_GO_TO_AIRPORT_HANGAR :Ir al hangar de {STATION}
-SERVICE_AT_AIRPORT_HANGAR :Ir al hangar de {STATION} para mantenimiento
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Horarios)
--- a/src/lang/swedish.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/swedish.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1026,7 +1026,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Aktivera realistisk acceleration för tåg: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Förbjud tåg och skepp att göra 90° svängar: {ORANGE}{STRING} {LTBLUE} (kräver NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Kombinera tågstationer som byggs bredvid varandra: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Lämna stationen när något gods är fullt, om 'full load': {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Använd förbättrad algoritm: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Lasta fordon gradvis: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Inflation: {ORANGE}{STRING}
@@ -2651,26 +2650,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Invånarna firar . . .{}Första tåget ankommer till {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Details)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Tåg i vägen
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :Åk till {STATION}
-STR_GO_TO_TRANSFER :Åk till {STATION} (Lasta om och på)
-STR_8807_GO_TO_UNLOAD :Åk till {STATION} (Lasta av)
-STR_GO_TO_TRANSFER_UNLOAD :Åk till {STATION} (Lasta om men inte på)
-STR_8808_GO_TO_LOAD :Åk till {STATION} (Lasta på)
-STR_GO_TO_TRANSFER_LOAD :Åk till {STATION} (Lasta om och vänta på full last)
-STR_880A_GO_NON_STOP_TO :Åk nonstop till {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Åk nonstop till {STATION} (Lasta om och på)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Åk nonstop till {STATION} (Lasta av)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Åk nonstop till {STATION} (Lasta om men inte på)
-STR_880C_GO_NON_STOP_TO_LOAD :Åk nonstop till {STATION} (Lasta på)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Åk nonstop till {STATION} (Lasta om och vänta på full last)
-STR_GO_TO_TRAIN_DEPOT :Åk till {TOWN}s tågdepå
-STR_SERVICE_AT_TRAIN_DEPOT :Servning vid {TOWN} tågdepå
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Åk non-stop till {TOWN}s tågdepå
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Servning non-stop {TOWN} tågdepå
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Avres (Inte tillagd i tidtabell)
STR_TIMETABLE_TRAVEL_FOR :Res till {STRING}
STR_TIMETABLE_STAY_FOR :och stanna i {STRING}
@@ -2711,10 +2691,7 @@
STR_8820_RENAME :{BLACK}Byt namn på
STR_8823_SKIP :{BLACK}Skippa
STR_8824_DELETE :{BLACK}Ta bort
-STR_8825_NON_STOP :{BLACK}Non-stop
STR_8826_GO_TO :{BLACK}Gå Till
-STR_8827_FULL_LOAD :{BLACK}Lasta
-STR_8828_UNLOAD :{BLACK}Lasta av
STR_REFIT :{BLACK}Anpassa
STR_REFIT_TIP :{BLACK}Välj vilken godstyp anpassningen ska göras i denna order. CTRL+ klicka för att ta bort anpassningsordern
STR_REFIT_ORDER :(Anpassa för {STRING})
@@ -2724,7 +2701,6 @@
STR_ORDER_VIEW_TOOLTIP :{BLACK}Byt till ordervyn
STR_8829_ORDERS :{WHITE}{VEHICLE} (Order)
STR_882A_END_OF_ORDERS :{SETX 10}- - Slut på order - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Servning
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Kan inte bygga järnvägfordon...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Byggt: {LTBLUE}{NUM}{BLACK} Värde: {LTBLUE}{CURRENCY}
@@ -2774,10 +2750,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Orderlista - klicka på order för att markera det
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Hoppa över nuvarande order och starta nästa. CTRL + klick hoppar över till vald order
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Ta bort markerad order
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Gör markerad order non-stop
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Infoga ny order före markerad order, eller lägg till i slutet av listan
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Gör markerad order att tvinga fordonet att vänta på full last
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Gör markerad order att tvinga fordonet att vänta på tom last
STR_TIMETABLE_TOOLTIP :{BLACK}Tidstabell - klicka på en order för att markera den.
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Ändra tid som den markerade ordern bör ta
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Rensa tiden för markerad order
@@ -2801,8 +2774,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Kan inte byta tågets riktning...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Byt namn på tågets fordonstyp
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Kan inte byta namn på tågets fordonstyp...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Gör så att den markerade ordern tvingar fordonet att lasta av
-STR_TRANSFER :{BLACK}Lasta om
STR_CLEAR_TIME :{BLACK}Rensa tid
STR_RESET_LATENESS :{BLACK}Rensa räknaren för sen ankomst
@@ -2890,8 +2861,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Byt namn på vägfordon typ
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Byt namn på vägfordon typ
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Kan inte byta namn på vägfordon typ...
-STR_GO_TO_ROADVEH_DEPOT :Gå till {TOWN} vägfordonsdepå
-STR_SERVICE_AT_ROADVEH_DEPOT :Servning vid {TOWN} vägfordonsdepå Depot
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Anpassa vägfordon till att bära en annan sorts last
STR_REFIT_ROAD_VEHICLE :{BLACK}Anpassa Vägfordon
@@ -2967,8 +2936,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Ny kapacitet: {GOLD}{CARGO}{}{BLACK}Anpassningens kostnad: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Kan inte anpassa skepp...
STR_9842_REFITTABLE :(anpassningsbart)
-STR_GO_TO_SHIP_DEPOT :Åk till {TOWN}s båtdepå
-SERVICE_AT_SHIP_DEPOT :Service vid {TOWN} båtdepå
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Flygplatser
@@ -3039,8 +3006,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Välj godstyp att frakta:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Ny kapacitet: {GOLD}{STRING}{}{BLACK}Kostnad av anpassning: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Kan inte anpassa flygplan...
-STR_GO_TO_AIRPORT_HANGAR :Gå till {STATION}s hangar
-SERVICE_AT_AIRPORT_HANGAR :Service vid {STATION} hangar
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Tidtabell)
--- a/src/lang/traditional_chinese.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/traditional_chinese.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1020,7 +1020,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}真實的列車加速:{ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}禁止列車直角轉向:{ORANGE}{STRING} {LTBLUE} (需要啟用 NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}合併建在一起的車站:{ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}其中一種貨物滿載,列車即可離開車站:{ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}使用改善過的載貨演算法:{ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}逐步載貨:{ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}通貨膨脹:{ORANGE}{STRING}
@@ -2616,26 +2615,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}市民慶賀 . . .{}首輛列車抵達 {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (詳細資料)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}前方有列車
-STR_8804 :{SETX 10}{COMMA}:{STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}:{STRING} {STRING}
-STR_8806_GO_TO :前往 {STATION}
-STR_GO_TO_TRANSFER :前往 {STATION} (轉運,僅載不卸)
-STR_8807_GO_TO_UNLOAD :前往 {STATION} (卸客貨)
-STR_GO_TO_TRANSFER_UNLOAD :前往 {STATION} (轉運,卸客貨清空離站)
-STR_8808_GO_TO_LOAD :前往 {STATION} (滿載)
-STR_GO_TO_TRANSFER_LOAD :前往 {STATION} (轉運,等待滿載)
-STR_880A_GO_NON_STOP_TO :前往 {STATION} 不停靠/中途不停
-STR_GO_TO_NON_STOP_TRANSFER :前往 {STATION} (轉運 [僅載不卸]) 中途不停
-STR_880B_GO_NON_STOP_TO_UNLOAD :前往 {STATION} (卸載) 中途不停
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :前往 {STATION} (轉運 [卸載清空離站]) 中途不停
-STR_880C_GO_NON_STOP_TO_LOAD :前往 {STATION} (滿載) 中途不停
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :前往 {STATION} (轉運 [等待滿載]) 中途不停
-STR_GO_TO_TRAIN_DEPOT :前往 {TOWN} 機廠
-STR_SERVICE_AT_TRAIN_DEPOT :在 {TOWN} 機廠維護
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :前往 {TOWN} 機廠 中途不停
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :在 {TOWN} 機廠維護 中途不停
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :漫遊 (無時刻表)
STR_TIMETABLE_TRAVEL_FOR :通行於 {STRING}
STR_TIMETABLE_STAY_FOR :並等待 {STRING}
@@ -2676,10 +2656,7 @@
STR_8820_RENAME :{BLACK}更名
STR_8823_SKIP :{BLACK}跳過
STR_8824_DELETE :{BLACK}刪除
-STR_8825_NON_STOP :{BLACK}中途不停
STR_8826_GO_TO :{BLACK}前往
-STR_8827_FULL_LOAD :{BLACK}滿載
-STR_8828_UNLOAD :{BLACK}卸載
STR_REFIT :{BLACK}改裝
STR_REFIT_TIP :{BLACK}選擇這個指令要改裝的酬載種類。按住 CTRL 點選可移除改裝指令
STR_REFIT_ORDER :(改裝成 {STRING})
@@ -2687,7 +2664,6 @@
STR_TIMETABLE_VIEW_TOOLTIP :{BLACK}切換至時刻表檢視模式
STR_8829_ORDERS :{WHITE}{VEHICLE} (指令)
STR_882A_END_OF_ORDERS :{SETX 10}- - 指令結束 - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}維護
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}無法購買鐵道車輛...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} 購於:{LTBLUE}{NUM}{BLACK} 價值:{LTBLUE}{CURRENCY}
@@ -2737,10 +2713,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}指令清單 - 點選指令可選擇。按住 CTRL 點選可跳到車站位置
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}跳過目前的命令,從下一個開始。CTRL + 左鍵 可直接跳至所選的命令
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}刪除選定指令
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}使選定的指令中途不停
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}在選定的指令前插入新指令,或在最後新增指令
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}讓列車在選定的指令等待載滿
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}讓列車在選定的指令強制卸載
STR_TIMETABLE_TOOLTIP :{BLACK}時刻表 - 點一個命令來標記它。
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}改變目前選定命令所需花費的時間
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}清除目前選定命令所設定的時間
@@ -2764,8 +2737,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}無法到轉列車方向...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}重新命名鐵道車輛
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}無法修改鐵道車輛名稱...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}讓列車在選定的指令強制卸載
-STR_TRANSFER :{BLACK}轉運
STR_CLEAR_TIME :{BLACK}清除時刻
STR_RESET_LATENESS :{BLACK}歸零誤點/慢分
@@ -2852,8 +2823,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}為車輛類型更名
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}為車輛類型更名
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}無法為車輛類型更名...
-STR_GO_TO_ROADVEH_DEPOT :前往 {TOWN} 車庫
-STR_SERVICE_AT_ROADVEH_DEPOT :在 {TOWN} 車庫維護
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}改裝車輛以運送不同的酬載
STR_REFIT_ROAD_VEHICLE :{BLACK}改裝車輛
@@ -2929,8 +2898,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}新容量:{GOLD}{CARGO}{}{BLACK}改裝費用:{GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}無法改裝船舶...
STR_9842_REFITTABLE :(可改裝)
-STR_GO_TO_SHIP_DEPOT :前往 {TOWN} 船塢
-SERVICE_AT_SHIP_DEPOT :在{TOWN}船塢進行維修
##id 0xA000
STR_A000_AIRPORTS :{WHITE}機場
@@ -3001,8 +2968,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}選擇要運送的酬載種類:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}新容量:{GOLD}{STRING}{}{BLACK}改裝費用:{GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}無法改裝飛機...
-STR_GO_TO_AIRPORT_HANGAR :前往 {STATION} 機棚
-SERVICE_AT_AIRPORT_HANGAR :在{STATION}機棚進行檢修
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (時刻表)
--- a/src/lang/turkish.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/turkish.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1025,7 +1025,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Gerçekçi tren hızlanması: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Tren ve gemilerin 90 derece dönmesini yasakla: {ORANGE}{STRING} {LTBLUE} (NPF gerektirir)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Yan yana yapılan tren istasyonlarını birleştir: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}'tam doldur' etkinse istasyonu tam dolunca terket: {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Geliştirilmiş yükleme algoritması kullan: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Araçlar yavaş yavaş dolsun: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Enflasyon: {ORANGE}{STRING}
@@ -2650,26 +2649,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Kutlama Yapıldı . . .{} {STATION} istasyonuna ilk kez tren geldi!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Detaylar)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Yolda tren var
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8806_GO_TO :Git: {STATION}
-STR_GO_TO_TRANSFER :Aktar: {STATION} (Kargoyu al)
-STR_8807_GO_TO_UNLOAD :Git: {STATION} (Boşalt)
-STR_GO_TO_TRANSFER_UNLOAD :Aktar: {STATION} (Boş dön)
-STR_8808_GO_TO_LOAD :Git: {STATION} (Doldur)
-STR_GO_TO_TRANSFER_LOAD :Aktar: {STATION} (Tam doldur)
-STR_880A_GO_NON_STOP_TO :Durmadan git: {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Durmadan aktar: {STATION} (Kargoyu al)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Durmadan git: {STATION} (Boşalt)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Durmadan aktar: {STATION} (Boş dön)
-STR_880C_GO_NON_STOP_TO_LOAD :Durmadan git: {STATION} (Doldur)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Durmadan aktar: {STATION} (Tam doldur)
-STR_GO_TO_TRAIN_DEPOT :Git: {TOWN} Tren Garı
-STR_SERVICE_AT_TRAIN_DEPOT :Bakıma git: {TOWN} Tren Garı
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Durmadan git: {TOWN} Tren Garı
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Durmadan bakıma git: {TOWN} Tren Garı
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Gezi (zamanlı değil)
STR_TIMETABLE_TRAVEL_FOR :{STRING} için gezi
STR_TIMETABLE_STAY_FOR :{STRING} için bekle
@@ -2710,10 +2690,7 @@
STR_8820_RENAME :{BLACK}Yeni isim
STR_8823_SKIP :{BLACK}Atla
STR_8824_DELETE :{BLACK}Sil
-STR_8825_NON_STOP :{BLACK}Durmadan
STR_8826_GO_TO :{BLACK}Git
-STR_8827_FULL_LOAD :{BLACK}Doldur
-STR_8828_UNLOAD :{BLACK}Boşalt
STR_REFIT :{BLACK}Modifiye
STR_REFIT_TIP :{BLACK}Bu talimatta değiştirilecek kargo türünü seçin. Değiştirmeyi kaldırmak için CTRL ile tıklayın
STR_REFIT_ORDER :(Moifiye ile > {STRING})
@@ -2721,7 +2698,6 @@
STR_TIMETABLE_VIEW_TOOLTIP :{BLACK}Zaman tablosu görünümüne geç
STR_8829_ORDERS :{WHITE}{VEHICLE} (Talimatlar)
STR_882A_END_OF_ORDERS :{SETX 10}- - Talimatların Sonu - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Bakım
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Tren satın alınamaz...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Tarih: {LTBLUE}{NUM}{BLACK} Değeri: {LTBLUE}{CURRENCY}
@@ -2771,10 +2747,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Talimat listesi - seçmek için komutu tıklayın. CTRL + tıklama istasyona kaydırir
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Şimdiki talimatı atla ve sonrakine geç. CTRL ile tıklanırsa seçili talimata geçilir
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Seçili talimatı sil
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Seçili talimatı durmadan yap
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Seçili talimatın önüne ya da listenin sonuna komut ekle
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Seçili talimatı yaparken tren dolana kadar beklesin
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Seçili talimatı yaparken tren mutlaka yükünü boşaltsın
STR_TIMETABLE_TOOLTIP :{BLACK}Zaman çizelgesi - işaretlemek için bir talimata tıklayın.
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Seçili talimatın harcaması gereken süreyi değiştir
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Seçili talimatın harcaması gereken süreyi sil
@@ -2798,8 +2771,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Tren çevrilemez...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Tren yeniden adlandırılamaz
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Tren yeniden adlandırılamaz...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Seçili talimatta aracı kargoyu boşaltmaya zorla
-STR_TRANSFER :{BLACK}Aktar
STR_CLEAR_TIME :{BLACK}Zamanı Temizle
STR_RESET_LATENESS :{BLACK}Gecikme sayacını sıfırla
@@ -2887,8 +2858,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Araç türünü yeniden adlandır
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Araç türünü yeniden adlandır
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Araç türü yeniden adlandırılamıyor...
-STR_GO_TO_ROADVEH_DEPOT :Garaja git: {TOWN}
-STR_SERVICE_AT_ROADVEH_DEPOT :Servise git: {TOWN} Garaji
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Kamyonu başka türde kargo taşıyabilmesi için modifiye et
STR_REFIT_ROAD_VEHICLE :{BLACK}Kamyonu modifiye et
@@ -2964,8 +2933,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Yeni kapasite: {GOLD}{CARGO}{}{BLACK}Modifiye fiyatı: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Modifiye edilemez...
STR_9842_REFITTABLE :(modifiyeli)
-STR_GO_TO_SHIP_DEPOT :Git: {TOWN} Tersanesi
-SERVICE_AT_SHIP_DEPOT :Servis: {TOWN} Tersanesi
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Havalimanları
@@ -3036,8 +3003,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Tasinacak kargoyu seçin:
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Yeni kapasite: {GOLD}{STRING}{}{BLACK}Modifiye fiyatı: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Modifiye edilemez...
-STR_GO_TO_AIRPORT_HANGAR :{STATION} Hangarına git
-SERVICE_AT_AIRPORT_HANGAR :Servis: {STATION} Hangarı
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (Zaman çizelgesi)
--- a/src/lang/ukrainian.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/ukrainian.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1151,7 +1151,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Реалістичне прискорення поїздів: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Поїздам і кораблям не повертати на 90 град.: {ORANGE}{STRING} {LTBLUE} (треба NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Будувати суміжні залізничні станції: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Від'їжджати при повному завантаженні будь-якого вантажу: {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Використовувати покращений алгоритм завантаження: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Завантажувати поступово: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Інфляція: {ORANGE}{STRING}
@@ -2813,26 +2812,7 @@
STR_8801_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Жителі святкують . . .{}Перший поїзд з'явився на {STATION}!
STR_8802_DETAILS :{WHITE}{VEHICLE} (Детально)
STR_8803_TRAIN_IN_THE_WAY :{WHITE}Поїзд на шляху
-STR_8804 :{SETX 10}{COMMA}: {STRING}{STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING}{STRING}
-STR_8806_GO_TO :Прямувати до {STATION}
-STR_GO_TO_TRANSFER :Прямувати до {STATION} (Пересадити і забрати вантаж)
-STR_8807_GO_TO_UNLOAD :Прямувати до {STATION} (розвантажитися)
-STR_GO_TO_TRANSFER_UNLOAD :Прямувати до {STATION} (Пересадити і залишити вантаж)
-STR_8808_GO_TO_LOAD :Прямувати до {STATION} (Завантажитися)
-STR_GO_TO_TRANSFER_LOAD :Прямувати до {STATION} (Пересадити і завантажити повністю)
-STR_880A_GO_NON_STOP_TO :Прямувати без зупинок до {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Прямувати без зупинок до {STATION} (Пересадити і забрати вантаж)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Прямувати без зупинок до {STATION} (розвантажитися)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Прямувати без зупинок до {STATION} (Пересадити і залишити вантаж)
-STR_880C_GO_NON_STOP_TO_LOAD :Прямувати без зупинок до {STATION} (Завантажити)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Прямувати без зупинок до {STATION} (Пересадити і завантажити повністю)
-STR_GO_TO_TRAIN_DEPOT :Прямувати до {TOWN} депо
-STR_SERVICE_AT_TRAIN_DEPOT :Ремонтуватись в {TOWN} депо
-STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT :Прямувати без зупинок до {TOWN} депо
-STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Ремонтуватись без зупинок в {TOWN} депо
-STR_TIMETABLE_GO_TO :{STRING} {STRING}
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Прямує (не за розкладом)
STR_TIMETABLE_TRAVEL_FOR :Прямує до {STRING}
STR_TIMETABLE_STAY_FOR :і стояти {STRING}
@@ -2873,10 +2853,7 @@
STR_8820_RENAME :{BLACK}Назва
STR_8823_SKIP :{BLACK}Пропуск
STR_8824_DELETE :{BLACK}Видалити
-STR_8825_NON_STOP :{BLACK}Беззупн
STR_8826_GO_TO :{BLACK}Прямувати
-STR_8827_FULL_LOAD :{BLACK}Повністю
-STR_8828_UNLOAD :{BLACK}Розвант
STR_REFIT :{BLACK}Переобладнати
STR_REFIT_TIP :{BLACK}Оберіть на який тип вантажу переобладнати це завдання. Control+клік видалити команду переобладнання
STR_REFIT_ORDER :(Переобладнати до {STRING})
@@ -2886,7 +2863,6 @@
STR_ORDER_VIEW_TOOLTIP :{BLACK}Переключитись до вікна завдань
STR_8829_ORDERS :{WHITE}{VEHICLE} (Накази)
STR_882A_END_OF_ORDERS :{SETX 10}- - Кінець наказів - -
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Техогляд
STR_882B_CAN_T_BUILD_RAILROAD_VEHICLE :{WHITE}Неможливо збудувати поїзд...
STR_882C_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Рік випуску: {LTBLUE}{NUM}{BLACK} Ціна: {LTBLUE}{CURRENCY}
@@ -2936,10 +2912,7 @@
STR_8852_ORDERS_LIST_CLICK_ON_ORDER :{BLACK}Маршрутний лист - клікніть на завданні для його вибору. CTRL + клік показати станцію
STR_8853_SKIP_THE_CURRENT_ORDER :{BLACK}Пропустити поточний наказ, і виконувати наступний. CTRL + клік переходить до вибраного наказу
STR_8854_DELETE_THE_HIGHLIGHTED :{BLACK}Видалити виділене завдання
-STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Не зупинятися на відміченій станції
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Вставити новий пункт перед відміченим або додати в кінець
-STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Чекати повного завантаження на цій станції
-STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Лише розвантажитися на цій станції
STR_TIMETABLE_TOOLTIP :{BLACK}Розклад - клікніть на наказі, щоб виділити.
STR_TIMETABLE_WAIT_TIME_TOOLTIP :{BLACK}Змінити час, впродовж якого має виконуватись наказ
STR_TIMETABLE_CLEAR_TIME_TOOLTIP :{BLACK}Очистити час для виділеного наказу
@@ -2963,8 +2936,6 @@
STR_8869_CAN_T_REVERSE_DIRECTION :{WHITE}Неможливо розвернути поїзд...
STR_886A_RENAME_TRAIN_VEHICLE_TYPE :{WHITE}Перейменувати тип поїзду
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Неможливо перейменувати тип поїзду...
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Наказати транспорту примусово відвантажити вантаж
-STR_TRANSFER :{BLACK}Пересадка
STR_CLEAR_TIME :{BLACK}Очистити час
STR_RESET_LATENESS :{BLACK}Очистити лічильник запізнення
@@ -3052,8 +3023,6 @@
STR_9035_RENAME_ROAD_VEHICLE_TYPE :{BLACK}Перейменувати тип авто
STR_9036_RENAME_ROAD_VEHICLE_TYPE :{WHITE}Перейменувати тип авто
STR_9037_CAN_T_RENAME_ROAD_VEHICLE :{WHITE}Неможливо перейменувати тип авто...
-STR_GO_TO_ROADVEH_DEPOT :Їхати в {TOWN} депо
-STR_SERVICE_AT_ROADVEH_DEPOT :Ремонтуватись в {TOWN} депо
STR_REFIT_ROAD_VEHICLE_TO_CARRY :{BLACK}Переобладнати авто для перевезення інших вантажів
STR_REFIT_ROAD_VEHICLE :{BLACK}Переобладнати авто
@@ -3129,8 +3098,6 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Нова місткість: {GOLD}{CARGO}{}{BLACK}Вартість переобладнання: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Неможливо переобладнати корабель...
STR_9842_REFITTABLE :(змінюється)
-STR_GO_TO_SHIP_DEPOT :Пливти в {TOWN} депо
-SERVICE_AT_SHIP_DEPOT :Ремонтуватись в {TOWN} депо
##id 0xA000
STR_A000_AIRPORTS :{WHITE}Аеропорти
@@ -3201,8 +3168,6 @@
STR_A040_SELECT_CARGO_TYPE_TO_CARRY :{GOLD}Виберіть вид вантажу для перевезення:-
STR_A041_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Нова місткість: {GOLD}{STRING}{}{BLACK}Вартість переобладнання: {GOLD}{CURRENCY}
STR_A042_CAN_T_REFIT_AIRCRAFT :{WHITE}Неможливо переобладнати літак...
-STR_GO_TO_AIRPORT_HANGAR :Летіти в {STATION} ангар
-SERVICE_AT_AIRPORT_HANGAR :Ремонтуватись в {STATION} ангарі
STR_TIMETABLE_TITLE :{WHITE}{VEHICLE} (розклад)
--- a/src/lang/unfinished/frisian.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/unfinished/frisian.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1229,11 +1229,9 @@
##id 0x9800
-SERVICE_AT_SHIP_DEPOT :Underhâld yn {TOWN} Skipswerf
##id 0xA000
-SERVICE_AT_AIRPORT_HANGAR :Underhâld yn {STATION} Hangar
##id 0xB000
--- a/src/lang/unfinished/greek.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/unfinished/greek.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1013,7 +1013,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Ενεργοποίηση ρεαλιστικής επιτάχυνσης για τα τρένα: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Απαγόρευση στροφών 90 μοιρών για τρένα και πλοία: {ORANGE}{STRING} {LTBLUE} (απαιτεί NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Σύνδεση σταθμών τρένων χτισμένων κοντά: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Αναχώρηση από το σταθμό όταν οποιοδήποτε φορτίο είναι πλήρες, όταν 'πλήρης φόρτος': {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Χρησιμοποίηση βελτιωμένου αλγόριθμου φόρτωσης: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Φόρτωση οχημάτων σταδιακά: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Πληθωρισμός: {ORANGE}{STRING}
@@ -1943,11 +1942,9 @@
##id 0x9800
-SERVICE_AT_SHIP_DEPOT :Επισκευή στη Λιμεναποθήκη της πόλης {TOWN}
##id 0xA000
-SERVICE_AT_AIRPORT_HANGAR :Επισκευή στο υπόστεγο {STATION}
##id 0xB000
--- a/src/lang/unfinished/latvian.txt Tue Apr 08 11:54:53 2008 +0000
+++ b/src/lang/unfinished/latvian.txt Sat Apr 12 21:38:49 2008 +0000
@@ -1007,7 +1007,6 @@
STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Atl'aut rea'lu vilcienu pa'atrina'jumu: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Aizliedz vilcieniem un kug'iem taisi't 90 gra'du pagriezienus: {ORANGE}{STRING} {LTBLUE} (nepiecies'ams NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Savienot vilciena stacijas kas celtas blakus: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Izbraukt no stacijas ja jebkura krava ir uzpildi'ta un "pilna krava" ir iesle'gta: {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Lietot uzlabotu uzla'de's'anas algoritmu: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Infla'cija: {ORANGE}{STRING}
STR_CONFIG_PATCHES_SELECTGOODS :{LTBLUE}Transporte't kravu uz staciju tikai tad ja ir pieprasijums: {ORANGE}{STRING}
@@ -1773,20 +1772,6 @@
STR_8104_AIRCRAFT :lidmaðîna
##id 0x8800
-STR_8804 :{SETX 10}{COMMA}: {STRING} {STRING}
-STR_8805 :{RIGHTARROW}{SETX 10}{COMMA}: {STRING} {STRING}
-STR_GO_TO_TRANSFER :Uz {STATION} (Pa'rvest un pan'emt kravu)
-STR_8807_GO_TO_UNLOAD :Uz {STATION} (Nokraut)
-STR_GO_TO_TRANSFER_UNLOAD :Uz {STATION} (Pa'rvest un atsta't tuks'u)
-STR_8808_GO_TO_LOAD :Uz {STATION} (Piekraut)
-STR_GO_TO_TRANSFER_LOAD :Go to {STATION} (Pa'rvest un gaidi't pilnu kravu)
-STR_880A_GO_NON_STOP_TO :Bez pieturam uz {STATION}
-STR_GO_TO_NON_STOP_TRANSFER :Bez pieturam uz {STATION} (Pa'rvest un pan'emt kravu)
-STR_880B_GO_NON_STOP_TO_UNLOAD :Bez pieturam uz {STATION} (Nokraut)
-STR_GO_TO_NON_STOP_TRANSFER_UNLOAD :Bez pieturam uz {STATION} (Pa'rvest un atsta't tuks'u)
-STR_880C_GO_NON_STOP_TO_LOAD :Bez pieturam uz {STATION} (Piekraut)
-STR_GO_TO_NON_STOP_TRANSFER_LOAD :Bez pieturam uz {STATION} (Pa'rvest un gaidi't pilnu kravu)
-STR_GO_TO_TRAIN_DEPOT :Uz {TOWN} Vilcienu Depo
@@ -1795,7 +1780,6 @@
STR_8816 :{BLACK}-
-STR_FULLLOAD_OR_SERVICE :{SKIP}{SKIP}{STRING}
STR_SERVICE :{BLACK}Serviss
STR_882E :{WHITE}{VEHICLE}
STR_TRAIN_MUST_BE_STOPPED :{WHITE}Vilciens ja'apsta'dina kad tas ierodas depo
@@ -1803,8 +1787,6 @@
STR_8865_NAME_TRAIN :{WHITE}Nosaukt vilcienu
STR_8867_NAME_TRAIN :{BLACK}Nosaukt vilcienu
-STR_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Uzsve'rtai pa'velei spiest tansportli'dzekl'im nomest kravu
-STR_TRANSFER :{BLACK}Tranzi'ts
@@ -1816,7 +1798,6 @@
STR_902A_COST_SPEED_RUNNING_COST :{BLACK}Cena: {CURRENCY}{}Atrums: {VELOCITY}{}Running Cost: {CURRENCY}/yr{}Capacity: {CARGO}
STR_9034_RENAME :{BLACK}Pârsaukt
-STR_GO_TO_ROADVEH_DEPOT :Dodas uz {TOWN} ceļa mašīnu depo
##id 0x9800
@@ -1838,7 +1819,6 @@
STR_9820_BUILD_NEW_SHIP :{BLACK}Uzbûvet jauno kuìi
STR_9836_RENAME :{BLACK}Pârsaukt
-SERVICE_AT_SHIP_DEPOT :Apkalpošana {TOWN} kuģubūvētavā
##id 0xA000
STR_A00A :{WHITE}{VEHICLE}
@@ -1846,8 +1826,6 @@
STR_PLANE_CRASH_OUT_OF_FUEL :{BLACK}{BIGFONT}Lidmaðînas avârija!{}Lidmaðînai pietrûka degviela, {COMMA} nogalinâti!
STR_A036 :{TINYFONT}{BLACK}{STATION}
STR_A037_RENAME :{BLACK}Pârsaukt
-STR_GO_TO_AIRPORT_HANGAR :Uz {STATION} Angâru
-SERVICE_AT_AIRPORT_HANGAR :Apkalpošana {STATION} angārā
##id 0xB000
--- a/src/main_gui.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/main_gui.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -1216,6 +1216,10 @@
WP(w, def_d).data_1 = -1280;
}
+/**
+ * Size of the application screen changed.
+ * Adapt the game screen-size, re-allocate the open windows, and repaint everything
+ */
void GameSizeChanged()
{
_cur_resolution[0] = _screen.width;
--- a/src/network/core/config.h Tue Apr 08 11:54:53 2008 +0000
+++ b/src/network/core/config.h Sat Apr 12 21:38:49 2008 +0000
@@ -38,14 +38,9 @@
/**
* Maximum number of GRFs that can be sent.
* This value is related to number of handles (files) OpenTTD can open.
- * This is currently 64 and about 10 are currently used when OpenTTD loads
- * without any NewGRFs. Therefore one can only load about 55 NewGRFs, so
- * this is not a limit, but rather a way to easily check whether the limit
- * imposed by the handle count is reached. Secondly it isn't possible to
- * send much more GRF IDs + MD5sums in the PACKET_UDP_SERVER_RESPONSE, due
- * to the limited size of UDP packets.
+ * This is currently 64. Two are used for configuration and sound.
*/
- NETWORK_MAX_GRF_COUNT = 55,
+ NETWORK_MAX_GRF_COUNT = 62,
NETWORK_NUM_LANGUAGES = 36, ///< Number of known languages (to the network protocol) + 1 for 'any'.
/**
--- a/src/network/core/udp.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/network/core/udp.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -221,6 +221,9 @@
uint i;
uint num_grfs = p->Recv_uint8();
+ /* Broken/bad data. It cannot have that many NewGRFs. */
+ if (num_grfs > NETWORK_MAX_GRF_COUNT) return;
+
for (i = 0; i < num_grfs; i++) {
GRFConfig *c = CallocT<GRFConfig>(1);
this->Recv_GRFIdentifier(p, c);
--- a/src/newgrf.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/newgrf.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -5005,8 +5005,8 @@
| (0 << 0x0B) // enhancedgui
| (0 << 0x0C) // newagerating
| ((_patches.build_on_slopes ? 1 : 0) << 0x0D) // buildonslopes
- | ((_patches.full_load_any ? 1 : 0) << 0x0E) // fullloadany
- | (1 << 0x0F) // planespeed - TODO depends on patch when implemented
+ | (1 << 0x0E) // fullloadany
+ | (1 << 0x0F) // planespeed
| (0 << 0x10) // moreindustriesperclimate - obsolete
| (0 << 0x11) // moretoylandfeatures
| (1 << 0x12) // newstations
--- a/src/oldloader.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/oldloader.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -1545,6 +1545,12 @@
fclose(ls.file);
+ /* Some old TTDP savegames could have buoys at tile 0
+ * (without assigned station struct)
+ * MakeWater() can be used as long as sea has the same
+ * format as old savegames (eg. everything is zeroed) */
+ MakeWater(0);
+
_pause_game = 2;
return true;
--- a/src/oldpool.h Tue Apr 08 11:54:53 2008 +0000
+++ b/src/oldpool.h Sat Apr 12 21:38:49 2008 +0000
@@ -260,32 +260,7 @@
}
private:
- /**
- * Allocate a pool item; possibly allocate a new block in the pool.
- * @param first the first pool item to start searching
- * @pre first <= Tpool->GetSize()
- * @return the allocated pool item (or NULL when the pool is full).
- */
- static inline T *AllocateSafeRaw(uint &first)
- {
- uint last_minus_one = Tpool->GetSize() - 1;
-
- for (T *t = Tpool->Get(first); t != NULL; t = (t->index < last_minus_one) ? Tpool->Get(t->index + 1U) : NULL) {
- if (!t->IsValid()) {
- first = t->index;
- Tid index = t->index;
-
- memset(t, 0, Tpool->item_size);
- t->index = index;
- return t;
- }
- }
-
- /* Check if we can add a block to the pool */
- if (Tpool->AddBlockToPool()) return AllocateRaw(first);
-
- return NULL;
- }
+ static T *AllocateSafeRaw(uint &first);
protected:
/**
@@ -346,7 +321,8 @@
#define DEFINE_OLD_POOL_GENERIC(name, type) \
OldMemoryPool<type> _##name##_pool( \
#name, name##_POOL_MAX_BLOCKS, name##_POOL_BLOCK_SIZE_BITS, sizeof(type), \
- PoolNewBlock<type, &_##name##_pool>, PoolCleanBlock<type, &_##name##_pool>);
+ PoolNewBlock<type, &_##name##_pool>, PoolCleanBlock<type, &_##name##_pool>); \
+ template type *PoolItem<type, type##ID, &_##name##_pool>::AllocateSafeRaw(uint &first);
#define STATIC_OLD_POOL(name, type, block_size_bits, max_blocks, new_block_proc, clean_block_proc) \
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/oldpool_func.h Sat Apr 12 21:38:49 2008 +0000
@@ -0,0 +1,34 @@
+/* $Id$ */
+
+#ifndef OLDPOOL_FUNC_H
+
+#include "oldpool.h"
+
+/**
+ * Allocate a pool item; possibly allocate a new block in the pool.
+ * @param first the first pool item to start searching
+ * @pre first <= Tpool->GetSize()
+ * @return the allocated pool item (or NULL when the pool is full).
+ */
+template<typename T, typename Tid, OldMemoryPool<T> *Tpool> T *PoolItem<T, Tid, Tpool>::AllocateSafeRaw(uint &first)
+{
+ uint last_minus_one = Tpool->GetSize() - 1;
+
+ for (T *t = Tpool->Get(first); t != NULL; t = (t->index < last_minus_one) ? Tpool->Get(t->index + 1U) : NULL) {
+ if (!t->IsValid()) {
+ first = t->index;
+ Tid index = t->index;
+
+ memset(t, 0, Tpool->item_size);
+ t->index = index;
+ return t;
+ }
+ }
+
+ /* Check if we can add a block to the pool */
+ if (Tpool->AddBlockToPool()) return AllocateRaw(first);
+
+ return NULL;
+}
+
+#endif /* OLDPOOL_FUNC_H */
--- a/src/openttd.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/openttd.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -2316,8 +2316,8 @@
Order *order;
FOR_ALL_ORDERS(order) {
if (order->IsType(OT_GOTO_STATION) && GetStation(order->GetDestination())->IsBuoy()) {
- order->SetLoadType(0);
- order->SetUnloadType(0);
+ order->SetLoadType(OLF_LOAD_IF_POSSIBLE);
+ order->SetUnloadType(OUF_UNLOAD_IF_POSSIBLE);
}
}
@@ -2455,6 +2455,32 @@
}
}
+ if (CheckSavegameVersion(93)) {
+ /* Rework of orders. */
+ Order *order;
+ FOR_ALL_ORDERS(order) order->ConvertFromOldSavegame();
+
+ Vehicle *v;
+ FOR_ALL_VEHICLES(v) v->current_order.ConvertFromOldSavegame();
+ } else if (CheckSavegameVersion(94)) {
+ /* Unload and transfer are now mutual exclusive. */
+ Order *order;
+ FOR_ALL_ORDERS(order) {
+ if ((order->GetUnloadType() & (OUFB_UNLOAD | OUFB_TRANSFER)) == (OUFB_UNLOAD | OUFB_TRANSFER)) {
+ order->SetUnloadType(OUFB_TRANSFER);
+ order->SetLoadType(OLFB_NO_LOAD);
+ }
+ }
+
+ Vehicle *v;
+ FOR_ALL_VEHICLES(v) {
+ if ((v->current_order.GetUnloadType() & (OUFB_UNLOAD | OUFB_TRANSFER)) == (OUFB_UNLOAD | OUFB_TRANSFER)) {
+ v->current_order.SetUnloadType(OUFB_TRANSFER);
+ v->current_order.SetLoadType(OLFB_NO_LOAD);
+ }
+ }
+ }
+
return InitializeWindowsAndCaches();
}
--- a/src/order_base.h Tue Apr 08 11:54:53 2008 +0000
+++ b/src/order_base.h Sat Apr 12 21:38:49 2008 +0000
@@ -27,8 +27,8 @@
friend void Load_VEHS(); ///< Loading of ancient vehicles.
friend const struct SaveLoad *GetOrderDescription(); ///< Saving and loading of orders.
- OrderTypeByte type; ///< The type of order
- uint8 flags; ///< 'Sub'type of order
+ uint8 type; ///< The type of order + non-stop flags
+ uint8 flags; ///< Load/unload types, depot order/action types.
DestinationID dest; ///< The destination of the order.
CargoID refit_cargo; ///< Refit CargoID
@@ -60,13 +60,13 @@
* @param type the type to check against.
* @return true if the order matches.
*/
- inline bool IsType(OrderType type) const { return this->type == type; }
+ inline bool IsType(OrderType type) const { return this->GetType() == type; }
/**
* Get the type of order of this order.
* @return the order type.
*/
- inline OrderType GetType() const { return this->type; }
+ inline OrderType GetType() const { return (OrderType)GB(this->type, 0, 4); }
/**
* 'Free' the order
@@ -87,7 +87,7 @@
* @param cargo the cargo type to change to.
* @param subtype the subtype to change to.
*/
- void MakeGoToDepot(DepotID destination, bool order, CargoID cargo = CT_NO_REFIT, byte subtype = 0);
+ void MakeGoToDepot(DepotID destination, OrderDepotTypeFlags order, CargoID cargo = CT_NO_REFIT, byte subtype = 0);
/**
* Makes this order a Go To Waypoint order.
@@ -112,6 +112,12 @@
void MakeDummy();
/**
+ * Makes this order an conditional order.
+ * @param order the order to jump to.
+ */
+ void MakeConditional(VehicleOrderID order);
+
+ /**
* Free a complete order chain.
* @note do not use on "current_order" vehicle orders!
*/
@@ -161,26 +167,42 @@
void SetRefit(CargoID cargo, byte subtype = 0);
/** How must the consist be loaded? */
- inline byte GetLoadType() const { return this->flags & OFB_FULL_LOAD; }
+ inline OrderLoadFlags GetLoadType() const { return (OrderLoadFlags)GB(this->flags, 4, 4); }
/** How must the consist be unloaded? */
- inline byte GetUnloadType() const { return GB(this->flags, 0, 2); }
+ inline OrderUnloadFlags GetUnloadType() const { return (OrderUnloadFlags)GB(this->flags, 0, 4); }
/** Where must we stop? */
- inline byte GetNonStopType() const { return this->flags & OFB_NON_STOP; }
+ inline OrderNonStopFlags GetNonStopType() const { return (OrderNonStopFlags)GB(this->type, 6, 2); }
/** What caused us going to the depot? */
- inline byte GetDepotOrderType() const { return this->flags; }
+ inline OrderDepotTypeFlags GetDepotOrderType() const { return (OrderDepotTypeFlags)GB(this->flags, 0, 4); }
/** What are we going to do when in the depot. */
- inline byte GetDepotActionType() const { return this->flags; }
+ inline OrderDepotActionFlags GetDepotActionType() const { return (OrderDepotActionFlags)GB(this->flags, 4, 4); }
+ /** What variable do we have to compare? */
+ inline OrderConditionVariable GetConditionVariable() const { return (OrderConditionVariable)GB(this->dest, 11, 5); }
+ /** What is the comparator to use? */
+ inline OrderConditionComparator GetConditionComparator() const { return (OrderConditionComparator)GB(this->type, 5, 3); }
+ /** Get the order to skip to. */
+ inline VehicleOrderID GetConditionSkipToOrder() const { return this->flags; }
+ /** Get the value to base the skip on. */
+ inline uint16 GetConditionValue() const { return GB(this->dest, 0, 11); }
/** Set how the consist must be loaded. */
- inline void SetLoadType(byte load_type) { SB(this->flags, 2, 1, !!load_type); }
+ inline void SetLoadType(OrderLoadFlags load_type) { SB(this->flags, 4, 4, load_type); }
/** Set how the consist must be unloaded. */
- inline void SetUnloadType(byte unload_type) { SB(this->flags, 0, 2, unload_type); }
+ inline void SetUnloadType(OrderUnloadFlags unload_type) { SB(this->flags, 0, 4, unload_type); }
/** Set whether we must stop at stations or not. */
- inline void SetNonStopType(byte non_stop_type) { SB(this->flags, 3, 1, !!non_stop_type); }
+ inline void SetNonStopType(OrderNonStopFlags non_stop_type) { SB(this->type, 6, 2, non_stop_type); }
/** Set the cause to go to the depot. */
- inline void SetDepotOrderType(byte depot_order_type) { this->flags = depot_order_type; }
+ inline void SetDepotOrderType(OrderDepotTypeFlags depot_order_type) { SB(this->flags, 0, 4, depot_order_type); }
/** Set what we are going to do in the depot. */
- inline void SetDepotActionType(byte depot_service_type) { this->flags = depot_service_type; }
+ inline void SetDepotActionType(OrderDepotActionFlags depot_service_type) { SB(this->flags, 4, 4, depot_service_type); }
+ /** Set variable we have to compare. */
+ inline void SetConditionVariable(OrderConditionVariable condition_variable) { SB(this->dest, 11, 5, condition_variable); }
+ /** Set the comparator to use. */
+ inline void SetConditionComparator(OrderConditionComparator condition_comparator) { SB(this->type, 5, 3, condition_comparator); }
+ /** Get the order to skip to. */
+ inline void SetConditionSkipToOrder(VehicleOrderID order_id) { this->flags = order_id; }
+ /** Set the value to base the skip on. */
+ inline void SetConditionValue(uint16 value) { SB(this->dest, 0, 11, value); }
bool ShouldStopAtStation(const Vehicle *v, StationID station) const;
@@ -204,6 +226,12 @@
* @note unpacking is done in the constructor.
*/
uint32 Pack() const;
+
+ /**
+ * Converts this order from an old savegame's version;
+ * it moves all bits to the new location.
+ */
+ void ConvertFromOldSavegame();
};
static inline VehicleOrderID GetMaxOrderIndex()
--- a/src/order_cmd.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/order_cmd.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -25,6 +25,7 @@
#include "newgrf_cargo.h"
#include "timetable.h"
#include "vehicle_func.h"
+#include "oldpool_func.h"
#include "table/strings.h"
@@ -38,7 +39,7 @@
TileIndex _backup_orders_tile;
BackuppedOrders _backup_orders_data;
-DEFINE_OLD_POOL_GENERIC(Order, Order)
+DEFINE_OLD_POOL_GENERIC(Order, Order);
void Order::Free()
{
@@ -55,10 +56,14 @@
this->dest = destination;
}
-void Order::MakeGoToDepot(DepotID destination, bool order, CargoID cargo, byte subtype)
+void Order::MakeGoToDepot(DepotID destination, OrderDepotTypeFlags order, CargoID cargo, byte subtype)
{
this->type = OT_GOTO_DEPOT;
- this->flags = order ? OFB_PART_OF_ORDERS : OFB_NON_STOP;
+ this->flags = 0;
+ this->SetDepotOrderType(order);
+ if (!(order & ODTFB_PART_OF_ORDERS)) {
+ this->SetNonStopType(ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS);
+ }
this->dest = destination;
this->SetRefit(cargo, subtype);
}
@@ -88,6 +93,13 @@
this->flags = 0;
}
+void Order::MakeConditional(VehicleOrderID order)
+{
+ this->type = OT_CONDITIONAL;
+ this->flags = order;
+ this->dest = 0;
+}
+
void Order::SetRefit(CargoID cargo, byte subtype)
{
this->refit_cargo = cargo;
@@ -131,13 +143,56 @@
this->flags = GB(packed, 8, 8);
this->dest = GB(packed, 16, 16);
this->next = NULL;
- this->index = 0; // avoid compiler warning
this->refit_cargo = CT_NO_REFIT;
this->refit_subtype = 0;
this->wait_time = 0;
this->travel_time = 0;
}
+void Order::ConvertFromOldSavegame()
+{
+ /* First handle non-stop, because those bits are going to be reused. */
+ if (_patches.sg_new_nonstop) {
+ this->SetNonStopType((this->flags & 0x08) ? ONSF_NO_STOP_AT_ANY_STATION : ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS);
+ } else {
+ this->SetNonStopType((this->flags & 0x08) ? ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS : ONSF_STOP_EVERYWHERE);
+ }
+
+ switch (this->GetType()) {
+ /* Only a few types need the other savegame conversions. */
+ case OT_GOTO_DEPOT: case OT_GOTO_STATION: case OT_LOADING: break;
+ default: return;
+ }
+
+ /* Then the load/depot action flags because those bits are going to be reused too
+ * and they reuse the non-stop bits. */
+ if (this->GetType() != OT_GOTO_DEPOT) {
+ if ((this->flags & 4) == 0) {
+ this->SetLoadType(OLF_LOAD_IF_POSSIBLE);
+ } else {
+ this->SetLoadType(_patches.sg_full_load_any ? OLF_FULL_LOAD_ANY : OLFB_FULL_LOAD);
+ }
+ } else {
+ this->SetDepotActionType(((this->flags & 6) == 4) ? ODATFB_HALT : ODATF_SERVICE_ONLY);
+ }
+
+ /* Finally fix the unload/depot type flags. */
+ if (this->GetType() != OT_GOTO_DEPOT) {
+ uint t = ((this->flags & 1) == 0) ? OUF_UNLOAD_IF_POSSIBLE : OUFB_TRANSFER;
+ if ((this->flags & 2) != 0) t |= OUFB_UNLOAD;
+ this->SetUnloadType((OrderUnloadFlags)t);
+
+ if ((this->GetUnloadType() & (OUFB_UNLOAD | OUFB_TRANSFER)) == (OUFB_UNLOAD | OUFB_TRANSFER)) {
+ this->SetUnloadType(OUFB_TRANSFER);
+ this->SetLoadType(OLFB_NO_LOAD);
+ }
+ } else {
+ uint t = ((this->flags & 6) == 6) ? ODTFB_SERVICE : ODTF_MANUAL;
+ if ((this->flags & 2) != 0) t |= ODTFB_PART_OF_ORDERS;
+ this->SetDepotOrderType((OrderDepotTypeFlags)t);
+ }
+}
+
/**
*
* Unpacks a order from savegames with version 4 and lower
@@ -302,73 +357,64 @@
default: return CMD_ERROR;
}
- if (new_order.GetNonStopType() != OFB_NO_NON_STOP && v->type != VEH_TRAIN) return CMD_ERROR;
+ /* Non stop not allowed for non-trains. */
+ if (new_order.GetNonStopType() != ONSF_STOP_EVERYWHERE && v->type != VEH_TRAIN) return CMD_ERROR;
- /* Order flags can be any of the following for stations:
- * [full-load | unload] [+ transfer] [+ non-stop]
- * non-stop orders (if any) are only valid for trains */
- switch (new_order.GetLoadType() | new_order.GetUnloadType()) {
- case 0:
- case OFB_FULL_LOAD:
- case OFB_FULL_LOAD | OFB_TRANSFER:
- case OFB_UNLOAD:
- case OFB_UNLOAD | OFB_TRANSFER:
- case OFB_TRANSFER:
- break;
+ /* Full load and unload are mutual exclusive. */
+ if ((new_order.GetLoadType() & OLFB_FULL_LOAD) && (new_order.GetUnloadType() & OUFB_UNLOAD)) return CMD_ERROR;
+ /* Filter invalid load/unload types. */
+ switch (new_order.GetLoadType()) {
+ case OLF_LOAD_IF_POSSIBLE: case OLFB_FULL_LOAD: case OLF_FULL_LOAD_ANY: break;
default: return CMD_ERROR;
}
+ if (new_order.GetUnloadType() & ~(OUFB_UNLOAD | OUFB_TRANSFER)) return CMD_ERROR;
break;
}
case OT_GOTO_DEPOT: {
- if (v->type == VEH_AIRCRAFT) {
- if (!IsValidStationID(new_order.GetDestination())) return CMD_ERROR;
-
- const Station *st = GetStation(new_order.GetDestination());
+ if (new_order.GetDepotActionType() != ODATFB_NEAREST_DEPOT) {
+ if (v->type == VEH_AIRCRAFT) {
+ if (!IsValidStationID(new_order.GetDestination())) return CMD_ERROR;
- if (!CheckOwnership(st->owner) ||
- !(st->facilities & FACIL_AIRPORT) ||
- st->Airport()->nof_depots == 0 ||
- !CanAircraftUseStation(v->engine_type, st)) {
- return CMD_ERROR;
+ const Station *st = GetStation(new_order.GetDestination());
+
+ if (!CheckOwnership(st->owner) ||
+ !(st->facilities & FACIL_AIRPORT) ||
+ st->Airport()->nof_depots == 0 ||
+ !CanAircraftUseStation(v->engine_type, st)) {
+ return CMD_ERROR;
+ }
+ } else {
+ if (!IsValidDepotID(new_order.GetDestination())) return CMD_ERROR;
+
+ const Depot *dp = GetDepot(new_order.GetDestination());
+
+ if (!CheckOwnership(GetTileOwner(dp->xy))) return CMD_ERROR;
+
+ switch (v->type) {
+ case VEH_TRAIN:
+ if (!IsTileDepotType(dp->xy, TRANSPORT_RAIL)) return CMD_ERROR;
+ break;
+
+ case VEH_ROAD:
+ if (!IsTileDepotType(dp->xy, TRANSPORT_ROAD)) return CMD_ERROR;
+ break;
+
+ case VEH_SHIP:
+ if (!IsTileDepotType(dp->xy, TRANSPORT_WATER)) return CMD_ERROR;
+ break;
+
+ default: return CMD_ERROR;
+ }
}
} else {
- if (!IsValidDepotID(new_order.GetDestination())) return CMD_ERROR;
-
- const Depot *dp = GetDepot(new_order.GetDestination());
-
- if (!CheckOwnership(GetTileOwner(dp->xy))) return CMD_ERROR;
-
- switch (v->type) {
- case VEH_TRAIN:
- if (!IsTileDepotType(dp->xy, TRANSPORT_RAIL)) return CMD_ERROR;
- break;
-
- case VEH_ROAD:
- if (!IsTileDepotType(dp->xy, TRANSPORT_ROAD)) return CMD_ERROR;
- break;
-
- case VEH_SHIP:
- if (!IsTileDepotType(dp->xy, TRANSPORT_WATER)) return CMD_ERROR;
- break;
-
- default: return CMD_ERROR;
- }
+ if (!IsPlayerBuildableVehicleType(v)) return CMD_ERROR;
}
- if (new_order.GetNonStopType() != OFB_NO_NON_STOP && v->type != VEH_TRAIN) return CMD_ERROR;
-
- /* Order flags can be any of the following for depots:
- * order [+ halt] [+ non-stop]
- * non-stop orders (if any) are only valid for trains */
- switch (new_order.GetDepotOrderType() | new_order.GetDepotActionType()) {
- case OFB_PART_OF_ORDERS:
- case OFB_PART_OF_ORDERS | OFB_HALT_IN_DEPOT:
- break;
-
- default: return CMD_ERROR;
- }
+ if (new_order.GetNonStopType() != ONSF_STOP_EVERYWHERE && v->type != VEH_TRAIN) return CMD_ERROR;
+ if (new_order.GetDepotOrderType() & ~ODTFB_PART_OF_ORDERS) return CMD_ERROR;
+ if (new_order.GetDepotActionType() & ~ODATFB_NEAREST_DEPOT) return CMD_ERROR;
break;
}
@@ -384,18 +430,18 @@
/* Order flags can be any of the following for waypoints:
* [non-stop]
* non-stop orders (if any) are only valid for trains */
- switch (new_order.GetNonStopType()) {
- case OFB_NO_NON_STOP: break;
-
- case OFB_NON_STOP:
- if (v->type != VEH_TRAIN) return CMD_ERROR;
- break;
-
- default: return CMD_ERROR;
- }
+ if (new_order.GetNonStopType() != ONSF_STOP_EVERYWHERE && v->type != VEH_TRAIN) return CMD_ERROR;
break;
}
+ case OT_CONDITIONAL: {
+ if (!IsPlayerBuildableVehicleType(v)) return CMD_ERROR;
+
+ VehicleOrderID skip_to = new_order.GetConditionSkipToOrder();
+ if (skip_to >= v->num_orders) return CMD_ERROR;
+ if (new_order.GetNonStopType() != ONSF_STOP_EVERYWHERE) return CMD_ERROR;
+ } break;
+
default: return CMD_ERROR;
}
@@ -481,6 +527,22 @@
InvalidateVehicleOrder(u);
}
+ /* As we insert an order, the order to skip to will be 'wrong'. */
+ VehicleOrderID cur_order_id = 0;
+ Order *order;
+ FOR_VEHICLE_ORDERS(v, order) {
+ if (order->IsType(OT_CONDITIONAL)) {
+ VehicleOrderID order_id = order->GetConditionSkipToOrder();
+ if (order_id >= sel_ord) {
+ order->SetConditionSkipToOrder(order_id + 1);
+ }
+ if (order_id == cur_order_id) {
+ order->SetConditionSkipToOrder((order_id + 1) % v->num_orders);
+ }
+ }
+ cur_order_id++;
+ }
+
/* Make sure to rebuild the whole list */
RebuildVehicleLists();
}
@@ -587,13 +649,28 @@
/* NON-stop flag is misused to see if a train is in a station that is
* on his order list or not */
if (sel_ord == u->cur_order_index && u->current_order.IsType(OT_LOADING)) {
- u->current_order.SetNonStopType(OFB_NO_NON_STOP);
+ u->current_order.SetNonStopType(ONSF_STOP_EVERYWHERE);
}
/* Update any possible open window of the vehicle */
InvalidateVehicleOrder(u);
}
+ /* As we delete an order, the order to skip to will be 'wrong'. */
+ VehicleOrderID cur_order_id = 0;
+ FOR_VEHICLE_ORDERS(v, order) {
+ if (order->IsType(OT_CONDITIONAL)) {
+ VehicleOrderID order_id = order->GetConditionSkipToOrder();
+ if (order_id >= sel_ord) {
+ order->SetConditionSkipToOrder(max(order_id - 1, 0));
+ }
+ if (order_id == cur_order_id) {
+ order->SetConditionSkipToOrder((order_id + 1) % v->num_orders);
+ }
+ }
+ cur_order_id++;
+ }
+
RebuildVehicleLists();
}
@@ -715,6 +792,22 @@
InvalidateVehicleOrder(u);
}
+ /* As we move an order, the order to skip to will be 'wrong'. */
+ Order *order;
+ FOR_VEHICLE_ORDERS(v, order) {
+ if (order->IsType(OT_CONDITIONAL)) {
+ VehicleOrderID order_id = order->GetConditionSkipToOrder();
+ if (order_id == moving_order) {
+ order_id = target_order;
+ } else if(order_id > moving_order && order_id <= target_order) {
+ order_id--;
+ } else if(order_id < moving_order && order_id >= target_order) {
+ order_id++;
+ }
+ order->SetConditionSkipToOrder(order_id);
+ }
+ }
+
/* Make sure to rebuild the whole list */
RebuildVehicleLists();
}
@@ -730,78 +823,186 @@
* - p1 = (bit 16 - 31) - the selected order (if any). If the last order is given,
* the order will be inserted before that one
* only the first 8 bits used currently (bit 16 - 23) (max 255)
- * @param p2 mode to change the order to (always set)
+ * @param p2 various bitstuffed elements
+ * - p2 = (bit 0 - 3) - what data to modify (@see ModifyOrderFlags)
+ * - p2 = (bit 4 - 15) - the data to modify
*/
CommandCost CmdModifyOrder(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
{
- Vehicle *v;
- Order *order;
VehicleOrderID sel_ord = GB(p1, 16, 16); // XXX - automatically truncated to 8 bits.
- VehicleID veh = GB(p1, 0, 16);
+ VehicleID veh = GB(p1, 0, 16);
+ ModifyOrderFlags mof = (ModifyOrderFlags)GB(p2, 0, 4);
+ uint16 data = GB(p2, 4, 11);
+ if (mof >= MOF_END) return CMD_ERROR;
if (!IsValidVehicleID(veh)) return CMD_ERROR;
- if (p2 != OF_FULL_LOAD && p2 != OF_UNLOAD && p2 != OF_NON_STOP && p2 != OF_TRANSFER) return CMD_ERROR;
- v = GetVehicle(veh);
-
+ Vehicle *v = GetVehicle(veh);
if (!CheckOwnership(v->owner)) return CMD_ERROR;
/* Is it a valid order? */
if (sel_ord >= v->num_orders) return CMD_ERROR;
- order = GetVehicleOrder(v, sel_ord);
- if ((!order->IsType(OT_GOTO_STATION) || GetStation(order->GetDestination())->IsBuoy()) &&
- (!order->IsType(OT_GOTO_DEPOT) || p2 == OF_UNLOAD) &&
- (!order->IsType(OT_GOTO_WAYPOINT) || p2 != OF_NON_STOP)) {
- return CMD_ERROR;
+ Order *order = GetVehicleOrder(v, sel_ord);
+ switch (order->GetType()) {
+ case OT_GOTO_STATION:
+ if (mof == MOF_COND_VARIABLE || mof == MOF_COND_COMPARATOR || mof == MOF_DEPOT_ACTION || mof == MOF_COND_VALUE || GetStation(order->GetDestination())->IsBuoy()) return CMD_ERROR;
+ break;
+
+ case OT_GOTO_DEPOT:
+ if (mof != MOF_NON_STOP && mof != MOF_DEPOT_ACTION) return CMD_ERROR;
+ break;
+
+ case OT_GOTO_WAYPOINT:
+ if (mof != MOF_NON_STOP) return CMD_ERROR;
+ break;
+
+ case OT_CONDITIONAL:
+ if (mof != MOF_COND_VARIABLE && mof != MOF_COND_COMPARATOR && mof != MOF_COND_VALUE) return CMD_ERROR;
+ break;
+
+ default:
+ return CMD_ERROR;
+ }
+
+ switch (mof) {
+ default: NOT_REACHED();
+
+ case MOF_NON_STOP:
+ if (data >= ONSF_END) return CMD_ERROR;
+ if (data == order->GetNonStopType()) return CMD_ERROR;
+ break;
+
+ case MOF_UNLOAD:
+ if ((data & ~(OUFB_UNLOAD | OUFB_TRANSFER | OUFB_NO_UNLOAD)) != 0) return CMD_ERROR;
+ /* Unload and no-unload are mutual exclusive and so are transfer and no unload. */
+ if (data != 0 && ((data & (OUFB_UNLOAD | OUFB_TRANSFER)) != 0) == ((data & OUFB_NO_UNLOAD) != 0)) return CMD_ERROR;
+ if (data == order->GetUnloadType()) return CMD_ERROR;
+ break;
+
+ case MOF_LOAD:
+ if (data > OLFB_NO_LOAD || data == 1) return CMD_ERROR;
+ if (data == order->GetLoadType()) return CMD_ERROR;
+ break;
+
+ case MOF_DEPOT_ACTION:
+ if (data != 0) return CMD_ERROR;
+ break;
+
+ case MOF_COND_VARIABLE:
+ if (data >= OCV_END) return CMD_ERROR;
+ break;
+
+ case MOF_COND_COMPARATOR:
+ if (data >= OCC_END) return CMD_ERROR;
+ switch (order->GetConditionVariable()) {
+ case OCV_UNCONDITIONALLY: return CMD_ERROR;
+
+ case OCV_REQUIRES_SERVICE:
+ if (data != OCC_IS_TRUE && data != OCC_IS_FALSE) return CMD_ERROR;
+ break;
+
+ default:
+ if (data == OCC_IS_TRUE || data == OCC_IS_FALSE) return CMD_ERROR;
+ break;
+ }
+ break;
+
+ case MOF_COND_VALUE:
+ switch (order->GetConditionVariable()) {
+ case OCV_UNCONDITIONALLY: return CMD_ERROR;
+
+ case OCV_LOAD_PERCENTAGE:
+ case OCV_RELIABILITY:
+ if (data > 100) return CMD_ERROR;
+ break;
+
+ default:
+ if (data > 2047) return CMD_ERROR;
+ break;
+ }
+ break;
}
if (flags & DC_EXEC) {
- switch (p2) {
- case OF_FULL_LOAD:
- if (order->IsType(OT_GOTO_DEPOT)) {
- order->SetDepotOrderType(order->GetDepotOrderType() ^ OFB_SERVICE_IF_NEEDED);
- } else {
- order->SetLoadType(order->GetUnloadType() ^ OFB_FULL_LOAD);
- order->SetUnloadType(order->GetUnloadType() & ~OFB_UNLOAD);
+ switch (mof) {
+ case MOF_NON_STOP:
+ order->SetNonStopType((OrderNonStopFlags)data);
+ break;
+
+ case MOF_UNLOAD:
+ order->SetUnloadType((OrderUnloadFlags)data);
+ if ((data & OUFB_NO_UNLOAD) != 0 && (order->GetLoadType() & OLFB_NO_LOAD) != 0) {
+ order->SetLoadType((OrderLoadFlags)(order->GetLoadType() & ~OLFB_NO_LOAD));
}
break;
- case OF_UNLOAD:
- order->SetUnloadType(order->GetUnloadType() ^ OFB_UNLOAD);
- order->SetLoadType(0);
+
+ case MOF_LOAD:
+ order->SetLoadType((OrderLoadFlags)data);
+ if ((data & OLFB_NO_LOAD) != 0 && (order->GetUnloadType() & OUFB_NO_UNLOAD) != 0) {
+ /* No load + no unload isn't compatible */
+ order->SetUnloadType((OrderUnloadFlags)(order->GetUnloadType() & ~OUFB_NO_UNLOAD));
+ }
break;
- case OF_NON_STOP:
- order->SetNonStopType(order->GetNonStopType() ^ OFB_NON_STOP);
+
+ case MOF_DEPOT_ACTION:
+ order->SetDepotOrderType((OrderDepotTypeFlags)(order->GetDepotOrderType() ^ ODTFB_SERVICE));
break;
- case OF_TRANSFER:
- order->SetUnloadType(order->GetUnloadType() ^ OFB_TRANSFER);
+
+ case MOF_COND_VARIABLE: {
+ order->SetConditionVariable((OrderConditionVariable)data);
+
+ OrderConditionComparator occ = order->GetConditionComparator();
+ switch (order->GetConditionVariable()) {
+ case OCV_UNCONDITIONALLY:
+ order->SetConditionComparator(OCC_EQUALS);
+ order->SetConditionValue(0);
+ break;
+
+ case OCV_REQUIRES_SERVICE:
+ if (occ != OCC_IS_TRUE && occ != OCC_IS_FALSE) order->SetConditionComparator(OCC_IS_TRUE);
+ break;
+
+ case OCV_LOAD_PERCENTAGE:
+ case OCV_RELIABILITY:
+ if (order->GetConditionValue() > 100) order->SetConditionValue(100);
+ /* FALL THROUGH */
+ default:
+ if (occ == OCC_IS_TRUE || occ == OCC_IS_FALSE) order->SetConditionComparator(OCC_EQUALS);
+ break;
+ }
+ } break;
+
+ case MOF_COND_COMPARATOR:
+ order->SetConditionComparator((OrderConditionComparator)data);
break;
+
+ case MOF_COND_VALUE:
+ order->SetConditionValue(data);
+ break;
+
default: NOT_REACHED();
}
/* Update the windows and full load flags, also for vehicles that share the same order list */
- {
- Vehicle* u;
-
- u = GetFirstVehicleFromSharedList(v);
- DeleteOrderWarnings(u);
- for (; u != NULL; u = u->next_shared) {
- /* Toggle u->current_order "Full load" flag if it changed.
- * However, as the same flag is used for depot orders, check
- * whether we are not going to a depot as there are three
- * cases where the full load flag can be active and only
- * one case where the flag is used for depot orders. In the
- * other cases for the OrderTypeByte the flags are not used,
- * so do not care and those orders should not be active
- * when this function is called.
- */
- if (sel_ord == u->cur_order_index &&
- !u->current_order.IsType(OT_GOTO_DEPOT) &&
- u->current_order.GetLoadType() != order->GetLoadType()) {
- u->current_order.SetLoadType(order->GetLoadType());
- }
- InvalidateVehicleOrder(u);
+ Vehicle *u = GetFirstVehicleFromSharedList(v);
+ DeleteOrderWarnings(u);
+ for (; u != NULL; u = u->next_shared) {
+ /* Toggle u->current_order "Full load" flag if it changed.
+ * However, as the same flag is used for depot orders, check
+ * whether we are not going to a depot as there are three
+ * cases where the full load flag can be active and only
+ * one case where the flag is used for depot orders. In the
+ * other cases for the OrderTypeByte the flags are not used,
+ * so do not care and those orders should not be active
+ * when this function is called.
+ */
+ if (sel_ord == u->cur_order_index &&
+ (u->current_order.IsType(OT_GOTO_STATION) || u->current_order.IsType(OT_LOADING)) &&
+ u->current_order.GetLoadType() != order->GetLoadType()) {
+ u->current_order.SetLoadType(order->GetLoadType());
}
+ InvalidateVehicleOrder(u);
}
}
@@ -979,7 +1180,7 @@
InvalidateVehicleOrder(u);
/* If the vehicle already got the current depot set as current order, then update current order as well */
- if (u->cur_order_index == order_number && HasBit(u->current_order.GetDepotOrderType(), OF_PART_OF_ORDERS)) {
+ if (u->cur_order_index == order_number && u->current_order.GetDepotOrderType() & ODTFB_PART_OF_ORDERS) {
u->current_order.SetRefit(cargo, subtype);
}
}
@@ -1351,6 +1552,24 @@
}
/**
+ * Compare the variable and value based on the given comparator.
+ */
+static bool OrderConditionCompare(OrderConditionComparator occ, int variable, int value)
+{
+ switch (occ) {
+ case OCC_EQUALS: return variable == value;
+ case OCC_NOT_EQUALS: return variable != value;
+ case OCC_LESS_THAN: return variable < value;
+ case OCC_LESS_EQUALS: return variable <= value;
+ case OCC_MORE_THAN: return variable > value;
+ case OCC_MORE_EQUALS: return variable >= value;
+ case OCC_IS_TRUE: return variable != 0;
+ case OCC_IS_FALSE: return variable == 0;
+ default: NOT_REACHED();
+ }
+}
+
+/**
* Handle the orders of a vehicle and determine the next place
* to go to if needed.
* @param v the vehicle to do this for.
@@ -1362,9 +1581,9 @@
switch (v->current_order.GetType()) {
case OT_GOTO_DEPOT:
/* Let a depot order in the orderlist interrupt. */
- if (!(v->current_order.GetDepotOrderType() & OFB_PART_OF_ORDERS)) return false;
+ if (!(v->current_order.GetDepotOrderType() & ODTFB_PART_OF_ORDERS)) return false;
- if ((v->current_order.GetDepotOrderType() & OFB_SERVICE_IF_NEEDED) && !VehicleNeedsService(v)) {
+ if ((v->current_order.GetDepotOrderType() & ODTFB_SERVICE) && !v->NeedsServicing()) {
UpdateVehicleTimetable(v, true);
v->cur_order_index++;
}
@@ -1395,9 +1614,8 @@
v->cur_order_index++;
}
- /* Check if we've reached a non-stop station while TTDPatch nonstop is enabled.. */
- if (_patches.new_nonstop &&
- v->current_order.GetNonStopType() & OFB_NON_STOP &&
+ /* Check if we've reached a non-stop station.. */
+ if ((v->current_order.GetNonStopType() & ONSF_NO_STOP_AT_DESTINATION_STATION) &&
IsTileType(v->tile, MP_STATION) &&
v->current_order.GetDestination() == GetStationIndex(v->tile)) {
v->last_station_visited = v->current_order.GetDestination();
@@ -1455,13 +1673,59 @@
break;
case OT_GOTO_DEPOT:
- if (v->type != VEH_AIRCRAFT) v->dest_tile = GetDepot(order->GetDestination())->xy;
+ if (v->current_order.GetDepotActionType() & ODATFB_NEAREST_DEPOT) {
+ /* We need to search for the nearest depot (hangar). */
+ TileIndex location;
+ DestinationID destination;
+ bool reverse;
+
+ if (v->FindClosestDepot(&location, &destination, &reverse)) {
+ v->dest_tile = location;
+ v->current_order.MakeGoToDepot(destination, ODTFB_PART_OF_ORDERS);
+
+ /* If there is no depot in front, reverse automatically (trains only) */
+ if (v->type == VEH_TRAIN && reverse) DoCommand(v->tile, v->index, 0, DC_EXEC, CMD_REVERSE_TRAIN_DIRECTION);
+
+ if (v->type == VEH_AIRCRAFT && v->u.air.state == FLYING && v->u.air.targetairport != destination) {
+ /* The aircraft is now heading for a different hangar than the next in the orders */
+ extern void AircraftNextAirportPos_and_Order(Vehicle *v);
+ AircraftNextAirportPos_and_Order(v);
+ }
+ } else {
+ UpdateVehicleTimetable(v, true);
+ v->cur_order_index++;
+ }
+ } else if (v->type != VEH_AIRCRAFT) {
+ v->dest_tile = GetDepot(order->GetDestination())->xy;
+ }
break;
case OT_GOTO_WAYPOINT:
v->dest_tile = GetWaypoint(order->GetDestination())->xy;
break;
+ case OT_CONDITIONAL: {
+ bool skip_order = false;
+ OrderConditionComparator occ = order->GetConditionComparator();
+ uint16 value = order->GetConditionValue();
+
+ switch (order->GetConditionVariable()) {
+ case OCV_LOAD_PERCENTAGE: skip_order = OrderConditionCompare(occ, CalcPercentVehicleFilled(v, NULL), value); break;
+ case OCV_RELIABILITY: skip_order = OrderConditionCompare(occ, v->reliability * 100 >> 16, value); break;
+ case OCV_MAX_SPEED: skip_order = OrderConditionCompare(occ, v->GetDisplayMaxSpeed(), value); break;
+ case OCV_AGE: skip_order = OrderConditionCompare(occ, v->age / 366, value); break;
+ case OCV_REQUIRES_SERVICE: skip_order = OrderConditionCompare(occ, v->NeedsServicing(), value); break;
+ case OCV_UNCONDITIONALLY: skip_order = true; break;
+ default: NOT_REACHED();
+ }
+ UpdateVehicleTimetable(v, true);
+ if (skip_order) {
+ v->cur_order_index = order->GetConditionSkipToOrder();
+ } else {
+ v->cur_order_index++;
+ }
+ } return false;
+
default:
v->dest_tile = 0;
return false;
@@ -1481,10 +1745,8 @@
{
return
v->last_station_visited != station && // Do stop only when we've not just been there
- type == OT_GOTO_STATION && // Do stop only when going to a station
- /* Finally do stop when the non-stop flag is not set, or when we should stop at
- * this station according to the new_nonstop setting. */
- (!(this->flags & OFB_NON_STOP) || ((this->dest != station) == _patches.new_nonstop));
+ /* Finally do stop when there is no non-stop flag set for this type of station. */
+ !(this->GetNonStopType() & ((this->dest == station) ? ONSF_NO_STOP_AT_DESTINATION_STATION : ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS));
}
void InitializeOrders()
--- a/src/order_gui.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/order_gui.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -26,6 +26,9 @@
#include "settings_type.h"
#include "player_func.h"
#include "newgrf_cargo.h"
+#include "widgets/dropdown_func.h"
+#include "textbuf_gui.h"
+#include "string_func.h"
#include "table/sprites.h"
#include "table/strings.h"
@@ -40,15 +43,31 @@
ORDER_WIDGET_DELETE,
ORDER_WIDGET_NON_STOP,
ORDER_WIDGET_GOTO,
+ ORDER_WIDGET_GOTO_DROPDOWN,
ORDER_WIDGET_FULL_LOAD,
ORDER_WIDGET_UNLOAD,
ORDER_WIDGET_REFIT,
- ORDER_WIDGET_TRANSFER,
+ ORDER_WIDGET_SERVICE,
+ ORDER_WIDGET_COND_VARIABLE,
+ ORDER_WIDGET_COND_COMPARATOR,
+ ORDER_WIDGET_COND_VALUE,
+ ORDER_WIDGET_RESIZE_BAR,
ORDER_WIDGET_SHARED_ORDER_LIST,
- ORDER_WIDGET_RESIZE_BAR,
ORDER_WIDGET_RESIZE,
};
+/** Under what reason are we using the PlaceObject functionality? */
+enum OrderPlaceObjectState {
+ OPOS_GOTO,
+ OPOS_CONDITIONAL,
+};
+
+struct order_d {
+ int sel;
+ OrderPlaceObjectState goto_type;
+};
+assert_compile(WINDOW_CUSTOM_SIZE >= sizeof(order_d));
+
/**
* Return the memorised selected order.
*
@@ -82,7 +101,7 @@
* 15 = 14 (w->widget[ORDER_WIDGET_ORDER_LIST].top) + 1 (frame-line)
* 10 = order text hight
*/
- int sel = (y - 15) / 10;
+ int sel = (y - w->widget[ORDER_WIDGET_ORDER_LIST].top - 1) / 10;
if ((uint)sel >= w->vscroll.cap) return INVALID_ORDER;
@@ -91,45 +110,125 @@
return (sel <= v->num_orders && sel >= 0) ? sel : INVALID_ORDER;
}
-static StringID _station_order_strings[][7] = {
+/** Order load types that could be given to station orders. */
+static const StringID _station_load_types[][5] = {
{
- STR_8806_GO_TO,
- STR_GO_TO_TRANSFER,
- STR_8807_GO_TO_UNLOAD,
- STR_GO_TO_TRANSFER_UNLOAD,
- STR_8808_GO_TO_LOAD,
- STR_GO_TO_TRANSFER_LOAD
+ STR_EMPTY,
+ INVALID_STRING_ID,
+ STR_ORDER_FULL_LOAD,
+ STR_ORDER_FULL_LOAD_ANY,
+ STR_ORDER_NO_LOAD,
}, {
- STR_880A_GO_NON_STOP_TO,
- STR_GO_TO_NON_STOP_TRANSFER,
- STR_880B_GO_NON_STOP_TO_UNLOAD,
- STR_GO_TO_NON_STOP_TRANSFER_UNLOAD,
- STR_880C_GO_NON_STOP_TO_LOAD,
- STR_GO_TO_NON_STOP_TRANSFER_LOAD
+ STR_ORDER_UNLOAD,
+ INVALID_STRING_ID,
+ STR_ORDER_UNLOAD_FULL_LOAD,
+ STR_ORDER_UNLOAD_FULL_LOAD_ANY,
+ STR_ORDER_UNLOAD_NO_LOAD,
+ }, {
+ STR_ORDER_TRANSFER,
+ INVALID_STRING_ID,
+ STR_ORDER_TRANSFER_FULL_LOAD,
+ STR_ORDER_TRANSFER_FULL_LOAD_ANY,
+ STR_ORDER_TRANSFER_NO_LOAD,
+ }, {
+ /* Unload and transfer do not work together. */
+ INVALID_STRING_ID,
+ INVALID_STRING_ID,
+ INVALID_STRING_ID,
+ INVALID_STRING_ID,
+ }, {
+ STR_ORDER_NO_UNLOAD,
+ INVALID_STRING_ID,
+ STR_ORDER_NO_UNLOAD_FULL_LOAD,
+ STR_ORDER_NO_UNLOAD_FULL_LOAD_ANY,
+ INVALID_STRING_ID,
}
};
+static const StringID _order_non_stop_drowdown[] = {
+ STR_ORDER_GO_TO,
+ STR_ORDER_GO_NON_STOP_TO,
+ STR_ORDER_GO_VIA,
+ STR_ORDER_GO_NON_STOP_VIA,
+ INVALID_STRING_ID
+};
+
+static const StringID _order_full_load_drowdown[] = {
+ STR_ORDER_DROP_LOAD_IF_POSSIBLE,
+ STR_EMPTY,
+ STR_ORDER_DROP_FULL_LOAD_ALL,
+ STR_ORDER_DROP_FULL_LOAD_ANY,
+ STR_ORDER_DROP_NO_LOADING,
+ INVALID_STRING_ID
+};
+
+static const StringID _order_unload_drowdown[] = {
+ STR_ORDER_DROP_UNLOAD_IF_ACCEPTED,
+ STR_ORDER_DROP_UNLOAD,
+ STR_ORDER_DROP_TRANSFER,
+ STR_EMPTY,
+ STR_ORDER_DROP_NO_UNLOADING,
+ INVALID_STRING_ID
+};
+
+static const StringID _order_goto_dropdown[] = {
+ STR_ORDER_GO_TO,
+ STR_ORDER_GO_TO_NEAREST_DEPOT,
+ STR_ORDER_CONDITIONAL,
+ INVALID_STRING_ID
+};
+
+static const StringID _order_goto_dropdown_aircraft[] = {
+ STR_ORDER_GO_TO,
+ STR_ORDER_GO_TO_NEAREST_HANGAR,
+ STR_ORDER_CONDITIONAL,
+ INVALID_STRING_ID
+};
+
+static const StringID _order_conditional_variable[] = {
+ STR_ORDER_CONDITIONAL_LOAD_PERCENTAGE,
+ STR_ORDER_CONDITIONAL_RELIABILITY,
+ STR_ORDER_CONDITIONAL_MAX_SPEED,
+ STR_ORDER_CONDITIONAL_AGE,
+ STR_ORDER_CONDITIONAL_REQUIRES_SERVICE,
+ STR_ORDER_CONDITIONAL_UNCONDITIONALLY,
+ INVALID_STRING_ID,
+};
+
+static const StringID _order_conditional_condition[] = {
+ STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS,
+ STR_ORDER_CONDITIONAL_COMPARATOR_NOT_EQUALS,
+ STR_ORDER_CONDITIONAL_COMPARATOR_LESS_THAN,
+ STR_ORDER_CONDITIONAL_COMPARATOR_LESS_EQUALS,
+ STR_ORDER_CONDITIONAL_COMPARATOR_MORE_THAN,
+ STR_ORDER_CONDITIONAL_COMPARATOR_MORE_EQUALS,
+ STR_ORDER_CONDITIONAL_COMPARATOR_IS_TRUE,
+ STR_ORDER_CONDITIONAL_COMPARATOR_IS_FALSE,
+ INVALID_STRING_ID,
+};
+
+extern uint ConvertSpeedToDisplaySpeed(uint speed);
+extern uint ConvertDisplaySpeedToSpeed(uint speed);
+
+
static void DrawOrdersWindow(Window *w)
{
- const Vehicle *v;
- const Order *order;
- StringID str;
- int sel;
- int y, i;
- bool shared_orders;
-
- v = GetVehicle(w->window_number);
-
- shared_orders = v->IsOrderListShared();
+ const Vehicle *v = GetVehicle(w->window_number);
+ bool shared_orders = v->IsOrderListShared();
SetVScrollCount(w, v->num_orders + 1);
- sel = OrderGetSel(w);
- SetDParam(2, STR_8827_FULL_LOAD);
-
- order = GetVehicleOrder(v, sel);
+ int sel = OrderGetSel(w);
+ const Order *order = GetVehicleOrder(v, sel);
if (v->owner == _local_player) {
+ /* Set the strings for the dropdown boxes. */
+ w->widget[ORDER_WIDGET_NON_STOP].data = _order_non_stop_drowdown[order == NULL ? 0 : order->GetNonStopType()];
+ w->widget[ORDER_WIDGET_FULL_LOAD].data = _order_full_load_drowdown[order == NULL ? 0 : order->GetLoadType()];
+ w->widget[ORDER_WIDGET_UNLOAD].data = _order_unload_drowdown[order == NULL ? 0 : order->GetUnloadType()];
+ w->widget[ORDER_WIDGET_COND_VARIABLE].data = _order_conditional_variable[order == NULL ? 0 : order->GetConditionVariable()];
+ w->widget[ORDER_WIDGET_COND_COMPARATOR].data = _order_conditional_condition[order == NULL ? 0 : order->GetConditionComparator()];
+
/* skip */
w->SetWidgetDisabledState(ORDER_WIDGET_SKIP, v->num_orders <= 1);
@@ -139,18 +238,23 @@
/* non-stop only for trains */
w->SetWidgetDisabledState(ORDER_WIDGET_NON_STOP, v->type != VEH_TRAIN || order == NULL);
- w->SetWidgetDisabledState(ORDER_WIDGET_FULL_LOAD, order == NULL); // full load
- w->SetWidgetDisabledState(ORDER_WIDGET_UNLOAD, order == NULL); // unload
- w->SetWidgetDisabledState(ORDER_WIDGET_TRANSFER, order == NULL); // transfer
+ w->SetWidgetDisabledState(ORDER_WIDGET_FULL_LOAD, order == NULL || (order->GetNonStopType() & ONSF_NO_STOP_AT_DESTINATION_STATION) != 0); // full load
+ w->SetWidgetDisabledState(ORDER_WIDGET_UNLOAD, order == NULL || (order->GetNonStopType() & ONSF_NO_STOP_AT_DESTINATION_STATION) != 0); // unload
/* Disable list of vehicles with the same shared orders if there is no list */
w->SetWidgetDisabledState(ORDER_WIDGET_SHARED_ORDER_LIST, !shared_orders || v->orders == NULL);
w->SetWidgetDisabledState(ORDER_WIDGET_REFIT, order == NULL); // Refit
+ w->SetWidgetDisabledState(ORDER_WIDGET_SERVICE, order == NULL); // Refit
w->HideWidget(ORDER_WIDGET_REFIT); // Refit
- } else {
- w->DisableWidget(ORDER_WIDGET_TRANSFER);
+ w->HideWidget(ORDER_WIDGET_SERVICE); // Service
+
+ w->HideWidget(ORDER_WIDGET_COND_VARIABLE);
+ w->HideWidget(ORDER_WIDGET_COND_COMPARATOR);
+ w->HideWidget(ORDER_WIDGET_COND_VALUE);
}
- w->ShowWidget(ORDER_WIDGET_UNLOAD); // Unload
+ w->ShowWidget(ORDER_WIDGET_NON_STOP);
+ w->ShowWidget(ORDER_WIDGET_UNLOAD);
+ w->ShowWidget(ORDER_WIDGET_FULL_LOAD);
if (order != NULL) {
switch (order->GetType()) {
@@ -161,18 +265,35 @@
case OT_GOTO_WAYPOINT:
w->DisableWidget(ORDER_WIDGET_FULL_LOAD);
w->DisableWidget(ORDER_WIDGET_UNLOAD);
- w->DisableWidget(ORDER_WIDGET_TRANSFER);
break;
case OT_GOTO_DEPOT:
- w->DisableWidget(ORDER_WIDGET_TRANSFER);
+ w->DisableWidget(ORDER_WIDGET_FULL_LOAD);
/* Remove unload and replace it with refit */
w->HideWidget(ORDER_WIDGET_UNLOAD);
w->ShowWidget(ORDER_WIDGET_REFIT);
- SetDParam(2,STR_SERVICE);
+ w->HideWidget(ORDER_WIDGET_FULL_LOAD);
+ w->ShowWidget(ORDER_WIDGET_SERVICE);
break;
+ case OT_CONDITIONAL: {
+ w->HideWidget(ORDER_WIDGET_NON_STOP);
+ w->HideWidget(ORDER_WIDGET_UNLOAD);
+ w->HideWidget(ORDER_WIDGET_FULL_LOAD);
+ w->ShowWidget(ORDER_WIDGET_COND_VARIABLE);
+ w->ShowWidget(ORDER_WIDGET_COND_COMPARATOR);
+ w->ShowWidget(ORDER_WIDGET_COND_VALUE);
+
+ OrderConditionVariable ocv = order->GetConditionVariable();
+ w->SetWidgetDisabledState(ORDER_WIDGET_COND_COMPARATOR, ocv == OCV_UNCONDITIONALLY);
+ w->SetWidgetDisabledState(ORDER_WIDGET_COND_VALUE, ocv == OCV_REQUIRES_SERVICE || ocv == OCV_UNCONDITIONALLY);
+
+ uint value = order->GetConditionValue();
+ if (order->GetConditionVariable() == OCV_MAX_SPEED) value = ConvertSpeedToDisplaySpeed(value);
+ SetDParam(1, value);
+ } break;
+
default: // every other orders
w->DisableWidget(ORDER_WIDGET_NON_STOP);
w->DisableWidget(ORDER_WIDGET_FULL_LOAD);
@@ -183,63 +304,93 @@
SetDParam(0, v->index);
DrawWindowWidgets(w);
- y = 15;
+ int y = 15;
- i = w->vscroll.pos;
+ int i = w->vscroll.pos;
order = GetVehicleOrder(v, i);
+ StringID str;
while (order != NULL) {
str = (v->cur_order_index == i) ? STR_8805 : STR_8804;
- SetDParam(3, STR_EMPTY);
+ SetDParam(6, STR_EMPTY);
if (i - w->vscroll.pos < w->vscroll.cap) {
- SetDParam(1, 6);
-
switch (order->GetType()) {
case OT_DUMMY:
SetDParam(1, STR_INVALID_ORDER);
SetDParam(2, order->GetDestination());
break;
- case OT_GOTO_STATION:
- SetDParam(1, _station_order_strings[!!order->GetNonStopType()][order->GetLoadType() | order->GetUnloadType()]);
+ case OT_GOTO_STATION: {
+ OrderLoadFlags load = order->GetLoadType();
+ OrderUnloadFlags unload = order->GetUnloadType();
+
+ SetDParam(1, STR_GO_TO_STATION);
+ SetDParam(2, STR_ORDER_GO_TO + (v->type == VEH_TRAIN ? order->GetNonStopType() : 0));
+ SetDParam(3, order->GetDestination());
+ SetDParam(4, (order->GetNonStopType() & ONSF_NO_STOP_AT_DESTINATION_STATION) ? STR_EMPTY : _station_load_types[unload][load]);
+ } break;
+
+ case OT_GOTO_DEPOT:
+ if (v->type == VEH_AIRCRAFT) {
+ if (order->GetDepotActionType() & ODATFB_NEAREST_DEPOT) {
+ SetDParam(1, STR_GO_TO_NEAREST_DEPOT);
+ SetDParam(3, STR_ORDER_NEAREST_HANGAR);
+ } else {
+ SetDParam(1, STR_GO_TO_HANGAR);
+ SetDParam(3, order->GetDestination());
+ }
+ SetDParam(4, STR_EMPTY);
+ } else {
+ if (order->GetDepotActionType() & ODATFB_NEAREST_DEPOT) {
+ SetDParam(1, STR_GO_TO_NEAREST_DEPOT);
+ SetDParam(3, STR_ORDER_NEAREST_DEPOT);
+ } else {
+ SetDParam(1, STR_GO_TO_DEPOT);
+ SetDParam(3, GetDepot(order->GetDestination())->town_index);
+ }
+
+ switch (v->type) {
+ case VEH_TRAIN: SetDParam(4, STR_ORDER_TRAIN_DEPOT); break;
+ case VEH_ROAD: SetDParam(4, STR_ORDER_ROAD_DEPOT); break;
+ case VEH_SHIP: SetDParam(4, STR_ORDER_SHIP_DEPOT); break;
+ default: NOT_REACHED();
+ }
+ }
+
+ if (order->GetDepotOrderType() & ODTFB_SERVICE) {
+ SetDParam(2, (order->GetNonStopType() & ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS) ? STR_ORDER_SERVICE_NON_STOP_AT : STR_ORDER_SERVICE_AT);
+ } else {
+ SetDParam(2, (order->GetNonStopType() & ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS) ? STR_ORDER_GO_NON_STOP_TO : STR_ORDER_GO_TO);
+ }
+
+ if (order->IsRefit()) {
+ SetDParam(6, STR_REFIT_ORDER);
+ SetDParam(7, GetCargo(order->GetRefitCargo())->name);
+ }
+ break;
+
+ case OT_GOTO_WAYPOINT:
+ SetDParam(1, (order->GetNonStopType() & ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS) ? STR_GO_NON_STOP_TO_WAYPOINT : STR_GO_TO_WAYPOINT);
SetDParam(2, order->GetDestination());
break;
- case OT_GOTO_DEPOT: {
- StringID s = STR_NULL;
-
- if (v->type == VEH_AIRCRAFT) {
- s = STR_GO_TO_AIRPORT_HANGAR;
- SetDParam(2, order->GetDestination());
+ case OT_CONDITIONAL:
+ SetDParam(2, order->GetConditionSkipToOrder() + 1);
+ if (order->GetConditionVariable() == OCV_UNCONDITIONALLY) {
+ SetDParam(1, STR_CONDITIONAL_UNCONDITIONAL);
} else {
- SetDParam(2, GetDepot(order->GetDestination())->town_index);
+ OrderConditionComparator occ = order->GetConditionComparator();
+ SetDParam(1, (occ == OCC_IS_TRUE || occ == OCC_IS_FALSE) ? STR_CONDITIONAL_TRUE_FALSE : STR_CONDITIONAL_NUM);
+ SetDParam(3, STR_ORDER_CONDITIONAL_LOAD_PERCENTAGE + order->GetConditionVariable());
+ SetDParam(4, STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS + occ);
- switch (v->type) {
- case VEH_TRAIN: s = (order->GetNonStopType() & OFB_NON_STOP) ? STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT : STR_GO_TO_TRAIN_DEPOT; break;
- case VEH_ROAD: s = STR_GO_TO_ROADVEH_DEPOT; break;
- case VEH_SHIP: s = STR_GO_TO_SHIP_DEPOT; break;
- default: break;
- }
- }
-
- if (order->GetDepotOrderType() & OFB_SERVICE_IF_NEEDED) s++; /* service at */
-
- SetDParam(1, s);
- if (order->IsRefit()) {
- SetDParam(3, STR_REFIT_ORDER);
- SetDParam(4, GetCargo(order->GetRefitCargo())->name);
- } else {
- SetDParam(3, STR_EMPTY);
+ uint value = order->GetConditionValue();
+ if (order->GetConditionVariable() == OCV_MAX_SPEED) value = ConvertSpeedToDisplaySpeed(value);
+ SetDParam(5, value);
}
break;
- }
- case OT_GOTO_WAYPOINT:
- SetDParam(1, (order->GetNonStopType() & OFB_NON_STOP) ? STR_GO_NON_STOP_TO_WAYPOINT : STR_GO_TO_WAYPOINT);
- SetDParam(2, order->GetDestination());
- break;
-
- default: break;
+ default: NOT_REACHED();
}
SetDParam(0, i + 1);
@@ -264,49 +415,49 @@
order.next = NULL;
order.index = 0;
- // check depot first
+ /* check depot first */
if (_patches.gotodepot) {
switch (GetTileType(tile)) {
- case MP_RAILWAY:
- if (v->type == VEH_TRAIN && IsTileOwner(tile, _local_player)) {
- if (IsRailDepot(tile)) {
- order.MakeGoToDepot(GetDepotByTile(tile)->index, true);
+ case MP_RAILWAY:
+ if (v->type == VEH_TRAIN && IsTileOwner(tile, _local_player)) {
+ if (IsRailDepot(tile)) {
+ order.MakeGoToDepot(GetDepotByTile(tile)->index, ODTFB_PART_OF_ORDERS);
+ return order;
+ }
+ }
+ break;
+
+ case MP_ROAD:
+ if (IsRoadDepot(tile) && v->type == VEH_ROAD && IsTileOwner(tile, _local_player)) {
+ order.MakeGoToDepot(GetDepotByTile(tile)->index, ODTFB_PART_OF_ORDERS);
return order;
}
- }
- break;
-
- case MP_ROAD:
- if (IsRoadDepot(tile) && v->type == VEH_ROAD && IsTileOwner(tile, _local_player)) {
- order.MakeGoToDepot(GetDepotByTile(tile)->index, true);
- return order;
- }
- break;
+ break;
- case MP_STATION:
- if (v->type != VEH_AIRCRAFT) break;
- if (IsHangar(tile) && IsTileOwner(tile, _local_player)) {
- order.MakeGoToDepot(GetStationIndex(tile), true);
- return order;
- }
- break;
+ case MP_STATION:
+ if (v->type != VEH_AIRCRAFT) break;
+ if (IsHangar(tile) && IsTileOwner(tile, _local_player)) {
+ order.MakeGoToDepot(GetStationIndex(tile), ODTFB_PART_OF_ORDERS);
+ return order;
+ }
+ break;
- case MP_WATER:
- if (v->type != VEH_SHIP) break;
- if (IsTileDepotType(tile, TRANSPORT_WATER) &&
- IsTileOwner(tile, _local_player)) {
- TileIndex tile2 = GetOtherShipDepotTile(tile);
+ case MP_WATER:
+ if (v->type != VEH_SHIP) break;
+ if (IsTileDepotType(tile, TRANSPORT_WATER) &&
+ IsTileOwner(tile, _local_player)) {
+ TileIndex tile2 = GetOtherShipDepotTile(tile);
- order.MakeGoToDepot(GetDepotByTile(tile < tile2 ? tile : tile2)->index, true);
- return order;
- }
+ order.MakeGoToDepot(GetDepotByTile(tile < tile2 ? tile : tile2)->index, ODTFB_PART_OF_ORDERS);
+ return order;
+ }
default:
break;
}
}
- // check waypoint
+ /* check waypoint */
if (IsTileType(tile, MP_RAILWAY) &&
v->type == VEH_TRAIN &&
IsTileOwner(tile, _local_player) &&
@@ -321,19 +472,20 @@
if (st->owner == _current_player || st->owner == OWNER_NONE) {
byte facil;
- (facil=FACIL_DOCK, v->type == VEH_SHIP) ||
- (facil=FACIL_TRAIN, v->type == VEH_TRAIN) ||
- (facil=FACIL_AIRPORT, v->type == VEH_AIRCRAFT) ||
- (facil=FACIL_BUS_STOP, v->type == VEH_ROAD && IsCargoInClass(v->cargo_type, CC_PASSENGERS)) ||
- (facil=FACIL_TRUCK_STOP, 1);
+ (facil = FACIL_DOCK, v->type == VEH_SHIP) ||
+ (facil = FACIL_TRAIN, v->type == VEH_TRAIN) ||
+ (facil = FACIL_AIRPORT, v->type == VEH_AIRCRAFT) ||
+ (facil = FACIL_BUS_STOP, v->type == VEH_ROAD && IsCargoInClass(v->cargo_type, CC_PASSENGERS)) ||
+ (facil = FACIL_TRUCK_STOP, 1);
if (st->facilities & facil) {
order.MakeGoToStation(st_index);
+ if (_patches.new_nonstop && v->type == VEH_TRAIN) order.SetNonStopType(ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS);
return order;
}
}
}
- // not found
+ /* not found */
order.Free();
return order;
}
@@ -347,8 +499,8 @@
if (!u->IsPrimaryVehicle()) return false;
}
- // v is vehicle getting orders. Only copy/clone orders if vehicle doesn't have any orders yet
- // obviously if you press CTRL on a non-empty orders vehicle you know what you are doing
+ /* v is vehicle getting orders. Only copy/clone orders if vehicle doesn't have any orders yet
+ * obviously if you press CTRL on a non-empty orders vehicle you know what you are doing */
if (v->num_orders != 0 && _ctrl_pressed == 0) return false;
if (DoCommandP(v->tile, v->index | (u->index << 16), _ctrl_pressed ? CO_SHARE : CO_COPY, NULL,
@@ -362,14 +514,11 @@
static void OrdersPlaceObj(const Vehicle *v, TileIndex tile, Window *w)
{
- Order cmd;
- const Vehicle *u;
-
- // check if we're clicking on a vehicle first.. clone orders in that case.
- u = CheckMouseOverVehicle();
+ /* check if we're clicking on a vehicle first.. clone orders in that case. */
+ const Vehicle *u = CheckMouseOverVehicle();
if (u != NULL && HandleOrderVehClick(v, u, w)) return;
- cmd = GetOrderCmdFromTile(v, tile);
+ const Order cmd = GetOrderCmdFromTile(v, tile);
if (!cmd.IsValid()) return;
if (DoCommandP(v->tile, v->index + (OrderGetSel(w) << 16), cmd.Pack(), NULL, CMD_INSERT_ORDER | CMD_MSG(STR_8833_CAN_T_INSERT_NEW_ORDER))) {
@@ -384,13 +533,14 @@
* @param w current window
* @param v current vehicle
*/
-static void OrderClick_Goto(Window *w, const Vehicle *v)
+static void OrderClick_Goto(Window *w, const Vehicle *v, int i)
{
w->InvalidateWidget(ORDER_WIDGET_GOTO);
w->ToggleWidgetLoweredState(ORDER_WIDGET_GOTO);
if (w->IsWidgetLowered(ORDER_WIDGET_GOTO)) {
_place_clicked_vehicle = NULL;
SetObjectToPlaceWnd(ANIMCURSOR_PICKSTATION, PAL_NONE, VHM_RECT, w);
+ WP(w, order_d).goto_type = OPOS_GOTO;
} else {
ResetObjectToPlace();
}
@@ -401,10 +551,67 @@
*
* @param w current window
* @param v current vehicle
+ * @param load_type the way to load.
*/
-static void OrderClick_FullLoad(Window *w, const Vehicle *v)
+static void OrderClick_FullLoad(Window *w, const Vehicle *v, int load_type)
{
- DoCommandP(v->tile, v->index + (OrderGetSel(w) << 16), OF_FULL_LOAD, NULL, CMD_MODIFY_ORDER | CMD_MSG(STR_8835_CAN_T_MODIFY_THIS_ORDER));
+ VehicleOrderID sel_ord = OrderGetSel(w);
+ const Order *order = GetVehicleOrder(v, sel_ord);
+
+ if (order->GetLoadType() == load_type) return;
+
+ if (load_type < 0) {
+ switch (order->GetLoadType()) {
+ case OLF_LOAD_IF_POSSIBLE: load_type = OLFB_FULL_LOAD; break;
+ case OLFB_FULL_LOAD: load_type = OLF_FULL_LOAD_ANY; break;
+ case OLF_FULL_LOAD_ANY: load_type = OLFB_NO_LOAD; break;
+ case OLFB_NO_LOAD: load_type = OLF_LOAD_IF_POSSIBLE; break;
+ default: NOT_REACHED();
+ }
+ }
+ DoCommandP(v->tile, v->index + (sel_ord << 16), MOF_LOAD | (load_type << 4), NULL, CMD_MODIFY_ORDER | CMD_MSG(STR_8835_CAN_T_MODIFY_THIS_ORDER));
+}
+
+/**
+ * Handle the click on the service.
+ *
+ * @param w current window
+ * @param v current vehicle
+ */
+static void OrderClick_Service(Window *w, const Vehicle *v, int i)
+{
+ DoCommandP(v->tile, v->index + (OrderGetSel(w) << 16), MOF_DEPOT_ACTION, NULL, CMD_MODIFY_ORDER | CMD_MSG(STR_8835_CAN_T_MODIFY_THIS_ORDER));
+}
+
+/**
+ * Handle the click on the service in nearest depot button.
+ *
+ * @param w current window
+ * @param v current vehicle
+ */
+static void OrderClick_NearestDepot(Window *w, const Vehicle *v, int i)
+{
+ Order order;
+ order.next = NULL;
+ order.index = 0;
+ order.MakeGoToDepot(0, ODTFB_PART_OF_ORDERS);
+ order.SetDepotActionType(ODATFB_NEAREST_DEPOT);
+
+ DoCommandP(v->tile, v->index + (OrderGetSel(w) << 16), order.Pack(), NULL, CMD_INSERT_ORDER | CMD_MSG(STR_8833_CAN_T_INSERT_NEW_ORDER));
+}
+
+/**
+ * Handle the click on the conditional order button.
+ *
+ * @param w current window
+ * @param v current vehicle
+ */
+static void OrderClick_Conditional(Window *w, const Vehicle *v, int i)
+{
+ w->InvalidateWidget(ORDER_WIDGET_GOTO);
+ w->LowerWidget(ORDER_WIDGET_GOTO);
+ SetObjectToPlaceWnd(ANIMCURSOR_PICKSTATION, PAL_NONE, VHM_RECT, w);
+ WP(w, order_d).goto_type = OPOS_CONDITIONAL;
}
/**
@@ -413,9 +620,24 @@
* @param w current window
* @param v current vehicle
*/
-static void OrderClick_Unload(Window *w, const Vehicle *v)
+static void OrderClick_Unload(Window *w, const Vehicle *v, int unload_type)
{
- DoCommandP(v->tile, v->index + (OrderGetSel(w) << 16), OF_UNLOAD, NULL, CMD_MODIFY_ORDER | CMD_MSG(STR_8835_CAN_T_MODIFY_THIS_ORDER));
+ VehicleOrderID sel_ord = OrderGetSel(w);
+ const Order *order = GetVehicleOrder(v, sel_ord);
+
+ if (order->GetUnloadType() == unload_type) return;
+
+ if (unload_type < 0) {
+ switch (order->GetUnloadType()) {
+ case OUF_UNLOAD_IF_POSSIBLE: unload_type = OUFB_UNLOAD; break;
+ case OUFB_UNLOAD: unload_type = OUFB_TRANSFER; break;
+ case OUFB_TRANSFER: unload_type = OUFB_NO_UNLOAD; break;
+ case OUFB_NO_UNLOAD: unload_type = OUF_UNLOAD_IF_POSSIBLE; break;
+ default: NOT_REACHED();
+ }
+ }
+
+ DoCommandP(v->tile, v->index + (sel_ord << 16), MOF_UNLOAD | (unload_type << 4), NULL, CMD_MODIFY_ORDER | CMD_MSG(STR_8835_CAN_T_MODIFY_THIS_ORDER));
}
/**
@@ -423,10 +645,21 @@
*
* @param w current window
* @param v current vehicle
+ * @param non_stop what non-stop type to use; -1 to use the 'next' one.
*/
-static void OrderClick_Nonstop(Window *w, const Vehicle *v)
+static void OrderClick_Nonstop(Window *w, const Vehicle *v, int non_stop)
{
- DoCommandP(v->tile, v->index + (OrderGetSel(w) << 16), OF_NON_STOP, NULL, CMD_MODIFY_ORDER | CMD_MSG(STR_8835_CAN_T_MODIFY_THIS_ORDER));
+ VehicleOrderID sel_ord = OrderGetSel(w);
+ const Order *order = GetVehicleOrder(v, sel_ord);
+
+ if (order->GetNonStopType() == non_stop) return;
+
+ /* Keypress if negative, so 'toggle' to the next */
+ if (non_stop < 0) {
+ non_stop = (order->GetNonStopType() + 1) % ONSF_END;
+ }
+
+ DoCommandP(v->tile, v->index + (sel_ord << 16), MOF_NON_STOP | non_stop << 4, NULL, CMD_MODIFY_ORDER | CMD_MSG(STR_8835_CAN_T_MODIFY_THIS_ORDER));
}
/**
@@ -435,9 +668,12 @@
* @param w current window
* @param v current vehicle
*/
-static void OrderClick_Transfer(Window* w, const Vehicle* v)
+static void OrderClick_Transfer(Window *w, const Vehicle *v, int i)
{
- DoCommandP(v->tile, v->index + (OrderGetSel(w) << 16), OF_TRANSFER, NULL, CMD_MODIFY_ORDER | CMD_MSG(STR_8835_CAN_T_MODIFY_THIS_ORDER));
+ VehicleOrderID sel_ord = OrderGetSel(w);
+ const Order *order = GetVehicleOrder(v, sel_ord);
+
+ DoCommandP(v->tile, v->index + (sel_ord << 16), MOF_UNLOAD | ((order->GetUnloadType() & ~OUFB_NO_UNLOAD) ^ OUFB_TRANSFER) << 4, NULL, CMD_MODIFY_ORDER | CMD_MSG(STR_8835_CAN_T_MODIFY_THIS_ORDER));
}
/**
@@ -448,7 +684,7 @@
* @param w current window
* @param v current vehicle
*/
-static void OrderClick_Skip(Window *w, const Vehicle *v)
+static void OrderClick_Skip(Window *w, const Vehicle *v, int i)
{
/* Don't skip when there's nothing to skip */
if (_ctrl_pressed && v->cur_order_index == OrderGetSel(w)) return;
@@ -463,7 +699,7 @@
* @param w current window
* @param v current vehicle
*/
-static void OrderClick_Delete(Window *w, const Vehicle *v)
+static void OrderClick_Delete(Window *w, const Vehicle *v, int i)
{
DoCommandP(v->tile, v->index, OrderGetSel(w), NULL, CMD_DELETE_ORDER | CMD_MSG(STR_8834_CAN_T_DELETE_THIS_ORDER));
}
@@ -476,7 +712,7 @@
* @param w current window
* @param v current vehicle
*/
-static void OrderClick_Refit(Window *w, const Vehicle *v)
+static void OrderClick_Refit(Window *w, const Vehicle *v, int i)
{
if (_ctrl_pressed) {
/* Cancel refitting */
@@ -486,7 +722,7 @@
}
}
-typedef void OnButtonVehClick(Window *w, const Vehicle *v);
+typedef void OnButtonVehClick(Window *w, const Vehicle *v, int i);
/**
* Keycode function mapping.
@@ -501,7 +737,8 @@
OrderClick_Goto,
OrderClick_FullLoad,
OrderClick_Unload,
- OrderClick_Transfer
+ OrderClick_Transfer,
+ OrderClick_Service,
};
static const uint16 _order_keycodes[] = {
@@ -515,20 +752,10 @@
static void OrdersWndProc(Window *w, WindowEvent *e)
{
+ const Vehicle *v = GetVehicle(w->window_number);
+
switch (e->event) {
case WE_CREATE:
- /* Ensure that the refit and unload buttons always remain at the same location.
- * Only one of them can be active at any one time and takes turns on being disabled.
- * To ensure that they stay at the same location, we also verify that they behave the same
- * when resizing. */
- if (GetVehicle(w->window_number)->owner == _local_player) { // only the vehicle owner got these buttons
- assert(w->widget[ORDER_WIDGET_REFIT].left == w->widget[ORDER_WIDGET_UNLOAD].left);
- assert(w->widget[ORDER_WIDGET_REFIT].right == w->widget[ORDER_WIDGET_UNLOAD].right);
- assert(w->widget[ORDER_WIDGET_REFIT].top == w->widget[ORDER_WIDGET_UNLOAD].top);
- assert(w->widget[ORDER_WIDGET_REFIT].bottom == w->widget[ORDER_WIDGET_UNLOAD].bottom);
- assert(w->widget[ORDER_WIDGET_REFIT].display_flags == w->widget[ORDER_WIDGET_UNLOAD].display_flags);
- }
-
if (_patches.timetabling) {
w->widget[ORDER_WIDGET_CAPTION].right -= 61;
} else {
@@ -537,193 +764,272 @@
break;
- case WE_PAINT:
- DrawOrdersWindow(w);
- break;
+ case WE_PAINT:
+ DrawOrdersWindow(w);
+ break;
- case WE_CLICK: {
- const Vehicle *v = GetVehicle(w->window_number);
- switch (e->we.click.widget) {
- case ORDER_WIDGET_ORDER_LIST: {
- ResetObjectToPlace();
+ case WE_CLICK:
+ if (w->widget[e->we.click.widget].type != WWT_DROPDOWN) HideDropDownMenu(w);
+ switch (e->we.click.widget) {
+ case ORDER_WIDGET_ORDER_LIST: {
+ ResetObjectToPlace();
- int sel = GetOrderFromOrderWndPt(w, e->we.click.pt.y, v);
+ int sel = GetOrderFromOrderWndPt(w, e->we.click.pt.y, v);
- if (sel == INVALID_ORDER) {
- /* This was a click on an empty part of the orders window, so
- * deselect the currently selected order. */
- WP(w, order_d).sel = -1;
- SetWindowDirty(w);
- return;
+ if (sel == INVALID_ORDER) {
+ /* This was a click on an empty part of the orders window, so
+ * deselect the currently selected order. */
+ WP(w, order_d).sel = -1;
+ SetWindowDirty(w);
+ return;
+ }
+
+ if (_ctrl_pressed && sel < v->num_orders) {
+ const Order *ord = GetVehicleOrder(v, sel);
+ TileIndex xy;
+
+ switch (ord->GetType()) {
+ case OT_GOTO_STATION: xy = GetStation(ord->GetDestination())->xy ; break;
+ case OT_GOTO_DEPOT: xy = (v->type == VEH_AIRCRAFT) ? GetStation(ord->GetDestination())->xy : GetDepot(ord->GetDestination())->xy; break;
+ case OT_GOTO_WAYPOINT: xy = GetWaypoint(ord->GetDestination())->xy; break;
+ default: xy = 0; break;
+ }
+
+ if (xy != 0) ScrollMainWindowToTile(xy);
+ return;
+ } else {
+ if (sel == WP(w, order_d).sel) {
+ /* Deselect clicked order */
+ WP(w, order_d).sel = -1;
+ } else {
+ /* Select clicked order */
+ WP(w, order_d).sel = sel;
+
+ if (v->owner == _local_player) {
+ /* Activate drag and drop */
+ SetObjectToPlaceWnd(SPR_CURSOR_MOUSE, PAL_NONE, VHM_DRAG, w);
+ }
+ }
+ }
+
+ SetWindowDirty(w);
+ } break;
+
+ case ORDER_WIDGET_SKIP:
+ OrderClick_Skip(w, v, 0);
+ break;
+
+ case ORDER_WIDGET_DELETE:
+ OrderClick_Delete(w, v, 0);
+ break;
+
+ case ORDER_WIDGET_NON_STOP: {
+ const Order *o = GetVehicleOrder(v, OrderGetSel(w));
+ ShowDropDownMenu(w, _order_non_stop_drowdown, o->GetNonStopType(), ORDER_WIDGET_NON_STOP, 0, o->IsType(OT_GOTO_STATION) ? 0 : (o->IsType(OT_GOTO_WAYPOINT) ? 3 : 12));
+ } break;
+
+ case ORDER_WIDGET_GOTO:
+ OrderClick_Goto(w, v, 0);
+ break;
+
+ case ORDER_WIDGET_GOTO_DROPDOWN:
+ ShowDropDownMenu(w, v->type == VEH_AIRCRAFT ? _order_goto_dropdown_aircraft : _order_goto_dropdown, 0, ORDER_WIDGET_GOTO, 0, 0, w->widget[ORDER_WIDGET_GOTO_DROPDOWN].right - w->widget[ORDER_WIDGET_GOTO].left);
+ break;
+
+ case ORDER_WIDGET_FULL_LOAD:
+ ShowDropDownMenu(w, _order_full_load_drowdown, GetVehicleOrder(v, OrderGetSel(w))->GetLoadType(), ORDER_WIDGET_FULL_LOAD, 0, 2);
+ break;
+
+ case ORDER_WIDGET_UNLOAD:
+ ShowDropDownMenu(w, _order_unload_drowdown, GetVehicleOrder(v, OrderGetSel(w))->GetUnloadType(), ORDER_WIDGET_UNLOAD, 0, 8);
+ break;
+
+ case ORDER_WIDGET_REFIT:
+ OrderClick_Refit(w, v, 0);
+ break;
+
+ case ORDER_WIDGET_SERVICE:
+ OrderClick_Service(w, v, 0);
+ break;
+
+ case ORDER_WIDGET_TIMETABLE_VIEW:
+ ShowTimetableWindow(v);
+ break;
+
+ case ORDER_WIDGET_COND_VARIABLE:
+ ShowDropDownMenu(w, _order_conditional_variable, GetVehicleOrder(v, OrderGetSel(w))->GetConditionVariable(), ORDER_WIDGET_COND_VARIABLE, 0, 0);
+ break;
+
+ case ORDER_WIDGET_COND_COMPARATOR: {
+ const Order *o = GetVehicleOrder(v, OrderGetSel(w));
+ ShowDropDownMenu(w, _order_conditional_condition, o->GetConditionComparator(), ORDER_WIDGET_COND_COMPARATOR, 0, (o->GetConditionVariable() == OCV_REQUIRES_SERVICE) ? 0x3F : 0xC0);
+ } break;
+
+ case ORDER_WIDGET_COND_VALUE: {
+ const Order *order = GetVehicleOrder(v, OrderGetSel(w));
+ uint value = order->GetConditionValue();
+ if (order->GetConditionVariable() == OCV_MAX_SPEED) value = ConvertSpeedToDisplaySpeed(value);
+ SetDParam(0, value);
+ ShowQueryString(STR_CONFIG_PATCHES_INT32, STR_ORDER_CONDITIONAL_VALUE_CAPT, 5, 100, w, CS_NUMERAL);
+ } break;
+
+ case ORDER_WIDGET_SHARED_ORDER_LIST:
+ ShowVehicleListWindow(v);
+ break;
+ }
+ break;
+
+ case WE_ON_EDIT_TEXT:
+ if (!StrEmpty(e->we.edittext.str)) {
+ VehicleOrderID sel = OrderGetSel(w);
+ uint value = atoi(e->we.edittext.str);
+
+ switch (GetVehicleOrder(v, sel)->GetConditionVariable()) {
+ case OCV_MAX_SPEED:
+ value = ConvertDisplaySpeedToSpeed(value);
+ break;
+
+ case OCV_RELIABILITY:
+ case OCV_LOAD_PERCENTAGE:
+ value = Clamp(value, 0, 100);
+
+ default:
+ break;
+ }
+ DoCommandP(v->tile, v->index + (sel << 16), MOF_COND_VALUE | Clamp(value, 0, 2047) << 4, NULL, CMD_MODIFY_ORDER | CMD_MSG(STR_8835_CAN_T_MODIFY_THIS_ORDER));
+ }
+ break;
+
+ case WE_DROPDOWN_SELECT: // we have selected a dropdown item in the list
+ switch (e->we.dropdown.button) {
+ case ORDER_WIDGET_NON_STOP:
+ OrderClick_Nonstop(w, v, e->we.dropdown.index);
+ break;
+
+ case ORDER_WIDGET_FULL_LOAD:
+ OrderClick_FullLoad(w, v, e->we.dropdown.index);
+ break;
+
+ case ORDER_WIDGET_UNLOAD:
+ OrderClick_Unload(w, v, e->we.dropdown.index);
+ break;
+
+ case ORDER_WIDGET_GOTO:
+ switch (e->we.dropdown.index) {
+ case 0:
+ w->ToggleWidgetLoweredState(ORDER_WIDGET_GOTO);
+ OrderClick_Goto(w, v, 0);
+ break;
+
+ case 1: OrderClick_NearestDepot(w, v, 0); break;
+ case 2: OrderClick_Conditional(w, v, 0); break;
+ default: NOT_REACHED();
+ }
+ break;
+
+ case ORDER_WIDGET_COND_VARIABLE:
+ DoCommandP(v->tile, v->index + (OrderGetSel(w) << 16), MOF_COND_VARIABLE | e->we.dropdown.index << 4, NULL, CMD_MODIFY_ORDER | CMD_MSG(STR_8835_CAN_T_MODIFY_THIS_ORDER));
+ break;
+
+ case ORDER_WIDGET_COND_COMPARATOR:
+ DoCommandP(v->tile, v->index + (OrderGetSel(w) << 16), MOF_COND_COMPARATOR | e->we.dropdown.index << 4, NULL, CMD_MODIFY_ORDER | CMD_MSG(STR_8835_CAN_T_MODIFY_THIS_ORDER));
+ break;
+ }
+ break;
+
+ case WE_DRAGDROP:
+ switch (e->we.click.widget) {
+ case ORDER_WIDGET_ORDER_LIST: {
+ int from_order = OrderGetSel(w);
+ int to_order = GetOrderFromOrderWndPt(w, e->we.dragdrop.pt.y, v);
+
+ if (!(from_order == to_order || from_order == INVALID_ORDER || from_order > v->num_orders || to_order == INVALID_ORDER || to_order > v->num_orders) &&
+ DoCommandP(v->tile, v->index, from_order | (to_order << 16), NULL, CMD_MOVE_ORDER | CMD_MSG(STR_CAN_T_MOVE_THIS_ORDER))) {
+ WP(w, order_d).sel = -1;
+ }
+
+ } break;
+
+ case ORDER_WIDGET_DELETE:
+ OrderClick_Delete(w, v, 0);
+ break;
}
- if (_ctrl_pressed && sel < v->num_orders) {
- const Order *ord = GetVehicleOrder(v, sel);
- TileIndex xy;
-
- switch (ord->GetType()) {
- case OT_GOTO_STATION: xy = GetStation(ord->GetDestination())->xy ; break;
- case OT_GOTO_DEPOT: xy = (v->type == VEH_AIRCRAFT) ? GetStation(ord->GetDestination())->xy : GetDepot(ord->GetDestination())->xy; break;
- case OT_GOTO_WAYPOINT: xy = GetWaypoint(ord->GetDestination())->xy; break;
- default: xy = 0; break;
- }
+ ResetObjectToPlace();
+ break;
- if (xy != 0) ScrollMainWindowToTile(xy);
- return;
- } else {
- if (sel == WP(w, order_d).sel) {
- /* Deselect clicked order */
- WP(w, order_d).sel = -1;
- } else {
- /* Select clicked order */
- WP(w, order_d).sel = sel;
+ case WE_KEYPRESS:
+ if (v->owner != _local_player) break;
- if (v->owner == _local_player) {
- /* Activate drag and drop */
- SetObjectToPlaceWnd(SPR_CURSOR_MOUSE, PAL_NONE, VHM_DRAG, w);
+ for (uint i = 0; i < lengthof(_order_keycodes); i++) {
+ if (e->we.keypress.keycode == _order_keycodes[i]) {
+ e->we.keypress.cont = false;
+ /* see if the button is disabled */
+ if (!w->IsWidgetDisabled(i + ORDER_WIDGET_SKIP)) _order_button_proc[i](w, v, -1);
+ break;
+ }
+ }
+ break;
+
+ case WE_PLACE_OBJ:
+ if (WP(w, order_d).goto_type == OPOS_GOTO) {
+ OrdersPlaceObj(GetVehicle(w->window_number), e->we.place.tile, w);
+ }
+ break;
+
+ case WE_ABORT_PLACE_OBJ:
+ if (WP(w, order_d).goto_type == OPOS_CONDITIONAL) {
+ WP(w, order_d).goto_type = OPOS_GOTO;
+ if (_cursor.pos.x >= (w->left + w->widget[ORDER_WIDGET_ORDER_LIST].left) &&
+ _cursor.pos.y >= (w->top + w->widget[ORDER_WIDGET_ORDER_LIST].top) &&
+ _cursor.pos.x <= (w->left + w->widget[ORDER_WIDGET_ORDER_LIST].right) &&
+ _cursor.pos.y <= (w->top + w->widget[ORDER_WIDGET_ORDER_LIST].bottom)) {
+ int order_id = GetOrderFromOrderWndPt(w, _cursor.pos.y - w->top, v);
+ if (order_id != INVALID_ORDER) {
+ Order order;
+ order.next = NULL;
+ order.index = 0;
+ order.MakeConditional(order_id);
+
+ DoCommandP(v->tile, v->index + (OrderGetSel(w) << 16), order.Pack(), NULL, CMD_INSERT_ORDER | CMD_MSG(STR_8833_CAN_T_INSERT_NEW_ORDER));
}
}
}
-
- SetWindowDirty(w);
- } break;
-
- case ORDER_WIDGET_SKIP:
- OrderClick_Skip(w, v);
- break;
-
- case ORDER_WIDGET_DELETE:
- OrderClick_Delete(w, v);
- break;
-
- case ORDER_WIDGET_NON_STOP:
- OrderClick_Nonstop(w, v);
- break;
-
- case ORDER_WIDGET_GOTO:
- OrderClick_Goto(w, v);
- break;
-
- case ORDER_WIDGET_FULL_LOAD:
- OrderClick_FullLoad(w, v);
- break;
-
- case ORDER_WIDGET_UNLOAD:
- OrderClick_Unload(w, v);
- break;
- case ORDER_WIDGET_REFIT:
- OrderClick_Refit(w, v);
- break;
-
- case ORDER_WIDGET_TRANSFER:
- OrderClick_Transfer(w, v);
- break;
-
- case ORDER_WIDGET_TIMETABLE_VIEW:
- ShowTimetableWindow(v);
+ w->RaiseWidget(ORDER_WIDGET_GOTO);
+ w->InvalidateWidget(ORDER_WIDGET_GOTO);
break;
- case ORDER_WIDGET_SHARED_ORDER_LIST:
- ShowVehicleListWindow(v);
- break;
- }
- } break;
-
- case WE_DRAGDROP: {
- const Vehicle *v = GetVehicle(w->window_number);
-
- switch (e->we.click.widget) {
- case ORDER_WIDGET_ORDER_LIST: {
- int from_order = OrderGetSel(w);
- int to_order = GetOrderFromOrderWndPt(w, e->we.dragdrop.pt.y, v);
-
- if (!(from_order == to_order || from_order == INVALID_ORDER || from_order > v->num_orders || to_order == INVALID_ORDER || to_order > v->num_orders) &&
- DoCommandP(v->tile, v->index, from_order | (to_order << 16), NULL, CMD_MOVE_ORDER | CMD_MSG(STR_CAN_T_MOVE_THIS_ORDER))) {
- WP(w, order_d).sel = -1;
- }
-
- break;
+ /* check if a vehicle in a depot was clicked.. */
+ case WE_MOUSELOOP:
+ v = _place_clicked_vehicle;
+ /*
+ * Check if we clicked on a vehicle
+ * and if the GOTO button of this window is pressed
+ * This is because of all open order windows WE_MOUSELOOP is called
+ * and if you have 3 windows open, and this check is not done
+ * the order is copied to the last open window instead of the
+ * one where GOTO is enabled
+ */
+ if (v != NULL && w->IsWidgetLowered(ORDER_WIDGET_GOTO)) {
+ _place_clicked_vehicle = NULL;
+ HandleOrderVehClick(GetVehicle(w->window_number), v, w);
}
-
- case ORDER_WIDGET_DELETE:
- OrderClick_Delete(w, v);
- break;
- }
-
- ResetObjectToPlace();
- break;
- }
-
- case WE_KEYPRESS: {
- Vehicle *v = GetVehicle(w->window_number);
- uint i;
-
- if (v->owner != _local_player) break;
-
- for (i = 0; i < lengthof(_order_keycodes); i++) {
- if (e->we.keypress.keycode == _order_keycodes[i]) {
- e->we.keypress.cont = false;
- //see if the button is disabled
- if (!w->IsWidgetDisabled(i + ORDER_WIDGET_SKIP)) _order_button_proc[i](w, v);
- break;
- }
- }
- break;
- }
+ break;
- case WE_RCLICK: {
- const Vehicle *v = GetVehicle(w->window_number);
- int s = OrderGetSel(w);
-
- if (e->we.click.widget != ORDER_WIDGET_FULL_LOAD) break;
- if (s == v->num_orders || !GetVehicleOrder(v, s)->IsType(OT_GOTO_DEPOT)) {
- GuiShowTooltips(STR_8857_MAKE_THE_HIGHLIGHTED_ORDER);
- } else {
- GuiShowTooltips(STR_SERVICE_HINT);
- }
- } break;
-
- case WE_PLACE_OBJ: {
- OrdersPlaceObj(GetVehicle(w->window_number), e->we.place.tile, w);
- } break;
-
- case WE_ABORT_PLACE_OBJ: {
- w->RaiseWidget(ORDER_WIDGET_GOTO);
- w->InvalidateWidget(ORDER_WIDGET_GOTO);
- } break;
+ case WE_RESIZE:
+ /* Update the scroll + matrix */
+ w->vscroll.cap = (w->widget[ORDER_WIDGET_ORDER_LIST].bottom - w->widget[ORDER_WIDGET_ORDER_LIST].top) / 10;
+ break;
- // check if a vehicle in a depot was clicked..
- case WE_MOUSELOOP: {
- const Vehicle *v = _place_clicked_vehicle;
- /*
- * Check if we clicked on a vehicle
- * and if the GOTO button of this window is pressed
- * This is because of all open order windows WE_MOUSELOOP is called
- * and if you have 3 windows open, and this check is not done
- * the order is copied to the last open window instead of the
- * one where GOTO is enabled
- */
- if (v != NULL && w->IsWidgetLowered(ORDER_WIDGET_GOTO)) {
- _place_clicked_vehicle = NULL;
- HandleOrderVehClick(GetVehicle(w->window_number), v, w);
- }
- } break;
-
- case WE_RESIZE:
- /* Update the scroll + matrix */
- w->vscroll.cap = (w->widget[ORDER_WIDGET_ORDER_LIST].bottom - w->widget[ORDER_WIDGET_ORDER_LIST].top) / 10;
- break;
-
- case WE_TIMEOUT: { // handle button unclick ourselves...
- // unclick all buttons except for the 'goto' button (ORDER_WIDGET_GOTO), which is 'persistent'
- uint i;
- for (i = 0; i < w->widget_count; i++) {
- if (w->IsWidgetLowered(i) && i != ORDER_WIDGET_GOTO) {
- w->RaiseWidget(i);
- w->InvalidateWidget(i);
+ case WE_TIMEOUT: // handle button unclick ourselves...
+ /* unclick all buttons except for the 'goto' button (ORDER_WIDGET_GOTO), which is 'persistent' */
+ for (uint i = 0; i < w->widget_count; i++) {
+ if (w->IsWidgetLowered(i) && i != ORDER_WIDGET_GOTO) {
+ w->RaiseWidget(i);
+ w->InvalidateWidget(i);
+ }
}
- }
- } break;
+ break;
}
}
@@ -732,32 +1038,36 @@
*/
static const Widget _orders_train_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, // ORDER_WIDGET_CLOSEBOX
- { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 398, 0, 13, STR_8829_ORDERS, STR_018C_WINDOW_TITLE_DRAG_THIS}, // ORDER_WIDGET_CAPTION
- { WWT_PUSHTXTBTN, RESIZE_LR, 14, 338, 398, 0, 13, STR_TIMETABLE_VIEW, STR_TIMETABLE_VIEW_TOOLTIP}, // ORDER_WIDGET_TIMETABLE_VIEW
-
- { WWT_PANEL, RESIZE_RB, 14, 0, 386, 14, 75, 0x0, STR_8852_ORDERS_LIST_CLICK_ON_ORDER}, // ORDER_WIDGET_ORDER_LIST
-
- { WWT_SCROLLBAR, RESIZE_LRB, 14, 387, 398, 14, 75, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, // ORDER_WIDGET_SCROLLBAR
+ { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 385, 0, 13, STR_8829_ORDERS, STR_018C_WINDOW_TITLE_DRAG_THIS}, // ORDER_WIDGET_CAPTION
+ { WWT_PUSHTXTBTN, RESIZE_LR, 14, 325, 385, 0, 13, STR_TIMETABLE_VIEW, STR_TIMETABLE_VIEW_TOOLTIP}, // ORDER_WIDGET_TIMETABLE_VIEW
- { WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 52, 76, 87, STR_8823_SKIP, STR_8853_SKIP_THE_CURRENT_ORDER}, // ORDER_WIDGET_SKIP
- { WWT_PUSHTXTBTN, RESIZE_TB, 14, 53, 105, 76, 87, STR_8824_DELETE, STR_8854_DELETE_THE_HIGHLIGHTED}, // ORDER_WIDGET_DELETE
- { WWT_PUSHTXTBTN, RESIZE_TB, 14, 106, 158, 76, 87, STR_8825_NON_STOP, STR_8855_MAKE_THE_HIGHLIGHTED_ORDER}, // ORDER_WIDGET_NON_STOP
- { WWT_TEXTBTN, RESIZE_TB, 14, 159, 211, 76, 87, STR_8826_GO_TO, STR_8856_INSERT_A_NEW_ORDER_BEFORE}, // ORDER_WIDGET_GOTO
- { WWT_PUSHTXTBTN, RESIZE_TB, 14, 212, 264, 76, 87, STR_FULLLOAD_OR_SERVICE, STR_NULL}, // ORDER_WIDGET_FULL_LOAD
- { WWT_PUSHTXTBTN, RESIZE_TB, 14, 265, 319, 76, 87, STR_8828_UNLOAD, STR_8858_MAKE_THE_HIGHLIGHTED_ORDER}, // ORDER_WIDGET_UNLOAD
- { WWT_PUSHTXTBTN, RESIZE_TB, 14, 265, 319, 76, 87, STR_REFIT, STR_REFIT_TIP}, // ORDER_WIDGET_REFIT
- { WWT_PUSHTXTBTN, RESIZE_TB, 14, 320, 372, 76, 87, STR_TRANSFER, STR_MAKE_THE_HIGHLIGHTED_ORDER}, // ORDER_WIDGET_TRANSFER
+ { WWT_PANEL, RESIZE_RB, 14, 0, 373, 14, 75, 0x0, STR_8852_ORDERS_LIST_CLICK_ON_ORDER}, // ORDER_WIDGET_ORDER_LIST
- { WWT_PUSHIMGBTN, RESIZE_TB, 14, 373, 386, 76, 87, SPR_SHARED_ORDERS_ICON, STR_VEH_WITH_SHARED_ORDERS_LIST_TIP}, // ORDER_WIDGET_SHARED_ORDER_LIST
+ { WWT_SCROLLBAR, RESIZE_LRB, 14, 374, 385, 14, 75, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, // ORDER_WIDGET_SCROLLBAR
- { WWT_PANEL, RESIZE_RTB, 14, 387, 386, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_RESIZE_BAR
+ { WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 123, 88, 99, STR_8823_SKIP, STR_8853_SKIP_THE_CURRENT_ORDER}, // ORDER_WIDGET_SKIP
+ { WWT_PUSHTXTBTN, RESIZE_TB, 14, 124, 247, 88, 99, STR_8824_DELETE, STR_8854_DELETE_THE_HIGHLIGHTED}, // ORDER_WIDGET_DELETE
+ { WWT_DROPDOWN, RESIZE_TB, 14, 0, 123, 76, 87, STR_NULL, STR_ORDER_TOOLTIP_NON_STOP}, // ORDER_WIDGET_NON_STOP
+ { WWT_TEXTBTN, RESIZE_TB, 14, 248, 359, 88, 99, STR_8826_GO_TO, STR_8856_INSERT_A_NEW_ORDER_BEFORE}, // ORDER_WIDGET_GOTO
+ { WWT_DROPDOWN, RESIZE_TB, 14, 360, 371, 88, 99, STR_EMPTY, STR_ORDER_GO_TO_DROPDOWN_TOOLTIP}, // ORDER_WIDGET_GOTO_DROPDOWN
+ { WWT_DROPDOWN, RESIZE_TB, 14, 124, 247, 76, 87, STR_NULL, STR_ORDER_TOOLTIP_FULL_LOAD}, // ORDER_WIDGET_FULL_LOAD
+ { WWT_DROPDOWN, RESIZE_TB, 14, 248, 371, 76, 87, STR_NULL, STR_ORDER_TOOLTIP_UNLOAD}, // ORDER_WIDGET_UNLOAD
+ { WWT_PUSHTXTBTN, RESIZE_TB, 14, 124, 247, 76, 87, STR_REFIT, STR_REFIT_TIP}, // ORDER_WIDGET_REFIT
+ { WWT_PUSHTXTBTN, RESIZE_TB, 14, 248, 371, 76, 87, STR_SERVICE, STR_SERVICE_HINT}, // ORDER_WIDGET_SERVICE
- { WWT_RESIZEBOX, RESIZE_LRTB, 14, 387, 398, 76, 87, 0x0, STR_RESIZE_BUTTON}, // ORDER_WIDGET_RESIZE
+ { WWT_DROPDOWN, RESIZE_TB, 14, 0, 123, 76, 87, STR_NULL, STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP}, // ORDER_WIDGET_COND_VARIABLE
+ { WWT_DROPDOWN, RESIZE_TB, 14, 124, 247, 76, 87, STR_NULL, STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP}, // ORDER_WIDGET_COND_COMPARATOR
+ { WWT_PUSHTXTBTN, RESIZE_TB, 14, 248, 371, 76, 87, STR_CONDITIONAL_VALUE, STR_ORDER_CONDITIONAL_VALUE_TOOLTIP}, // ORDER_WIDGET_COND_VALUE
+
+ { WWT_PANEL, RESIZE_RTB, 14, 372, 373, 76, 99, 0x0, STR_NULL}, // ORDER_WIDGET_RESIZE_BAR
+ { WWT_PUSHIMGBTN, RESIZE_LRTB, 14, 372, 385, 76, 87, SPR_SHARED_ORDERS_ICON, STR_VEH_WITH_SHARED_ORDERS_LIST_TIP}, // ORDER_WIDGET_SHARED_ORDER_LIST
+
+ { WWT_RESIZEBOX, RESIZE_LRTB, 14, 374, 385, 88, 99, 0x0, STR_RESIZE_BUTTON}, // ORDER_WIDGET_RESIZE
{ WIDGETS_END},
};
static const WindowDesc _orders_train_desc = {
- WDP_AUTO, WDP_AUTO, 399, 88, 399, 88,
+ WDP_AUTO, WDP_AUTO, 386, 100, 386, 100,
WC_VEHICLE_ORDERS,WC_VEHICLE_VIEW,
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_RESIZABLE,
_orders_train_widgets,
@@ -769,32 +1079,36 @@
*/
static const Widget _orders_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, // ORDER_WIDGET_CLOSEBOX
- { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 409, 0, 13, STR_8829_ORDERS, STR_018C_WINDOW_TITLE_DRAG_THIS}, // ORDER_WIDGET_CAPTION
- { WWT_PUSHTXTBTN, RESIZE_LR, 14, 349, 409, 0, 13, STR_TIMETABLE_VIEW, STR_TIMETABLE_VIEW_TOOLTIP}, // ORDER_WIDGET_TIMETABLE_VIEW
+ { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 385, 0, 13, STR_8829_ORDERS, STR_018C_WINDOW_TITLE_DRAG_THIS}, // ORDER_WIDGET_CAPTION
+ { WWT_PUSHTXTBTN, RESIZE_LR, 14, 325, 385, 0, 13, STR_TIMETABLE_VIEW, STR_TIMETABLE_VIEW_TOOLTIP}, // ORDER_WIDGET_TIMETABLE_VIEW
- { WWT_PANEL, RESIZE_RB, 14, 0, 397, 14, 75, 0x0, STR_8852_ORDERS_LIST_CLICK_ON_ORDER}, // ORDER_WIDGET_ORDER_LIST
+ { WWT_PANEL, RESIZE_RB, 14, 0, 373, 14, 75, 0x0, STR_8852_ORDERS_LIST_CLICK_ON_ORDER}, // ORDER_WIDGET_ORDER_LIST
- { WWT_SCROLLBAR, RESIZE_LRB, 14, 398, 409, 14, 75, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, // ORDER_WIDGET_SCROLLBAR
+ { WWT_SCROLLBAR, RESIZE_LRB, 14, 374, 385, 14, 75, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, // ORDER_WIDGET_SCROLLBAR
- { WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 63, 76, 87, STR_8823_SKIP, STR_8853_SKIP_THE_CURRENT_ORDER}, // ORDER_WIDGET_SKIP
- { WWT_PUSHTXTBTN, RESIZE_TB, 14, 64, 128, 76, 87, STR_8824_DELETE, STR_8854_DELETE_THE_HIGHLIGHTED}, // ORDER_WIDGET_DELETE
+ { WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 123, 88, 99, STR_8823_SKIP, STR_8853_SKIP_THE_CURRENT_ORDER}, // ORDER_WIDGET_SKIP
+ { WWT_PUSHTXTBTN, RESIZE_TB, 14, 124, 247, 88, 99, STR_8824_DELETE, STR_8854_DELETE_THE_HIGHLIGHTED}, // ORDER_WIDGET_DELETE
{ WWT_EMPTY, RESIZE_TB, 14, 0, 0, 76, 87, 0x0, 0x0}, // ORDER_WIDGET_NON_STOP
- { WWT_TEXTBTN, RESIZE_TB, 14, 129, 192, 76, 87, STR_8826_GO_TO, STR_8856_INSERT_A_NEW_ORDER_BEFORE}, // ORDER_WIDGET_GOTO
- { WWT_PUSHTXTBTN, RESIZE_TB, 14, 193, 256, 76, 87, STR_FULLLOAD_OR_SERVICE, STR_NULL}, // ORDER_WIDGET_FULL_LOAD
- { WWT_PUSHTXTBTN, RESIZE_TB, 14, 257, 319, 76, 87, STR_8828_UNLOAD, STR_8858_MAKE_THE_HIGHLIGHTED_ORDER}, // ORDER_WIDGET_UNLOAD
- { WWT_PUSHTXTBTN, RESIZE_TB, 14, 257, 319, 76, 87, STR_REFIT, STR_REFIT_TIP}, // ORDER_WIDGET_REFIT
- { WWT_PUSHTXTBTN, RESIZE_TB, 14, 320, 383, 76, 87, STR_TRANSFER, STR_MAKE_THE_HIGHLIGHTED_ORDER}, // ORDER_WIDGET_TRANSFER
+ { WWT_TEXTBTN, RESIZE_TB, 14, 248, 359, 88, 99, STR_8826_GO_TO, STR_8856_INSERT_A_NEW_ORDER_BEFORE}, // ORDER_WIDGET_GOTO
+ { WWT_DROPDOWN, RESIZE_TB, 14, 360, 371, 88, 99, STR_EMPTY, STR_ORDER_GO_TO_DROPDOWN_TOOLTIP}, // ORDER_WIDGET_GOTO_DROPDOWN
+ { WWT_DROPDOWN, RESIZE_TB, 14, 0, 185, 76, 87, STR_NULL, STR_ORDER_TOOLTIP_FULL_LOAD}, // ORDER_WIDGET_FULL_LOAD
+ { WWT_DROPDOWN, RESIZE_TB, 14, 186, 371, 76, 87, STR_NULL, STR_ORDER_TOOLTIP_UNLOAD}, // ORDER_WIDGET_UNLOAD
+ { WWT_PUSHTXTBTN, RESIZE_TB, 14, 0, 185, 76, 87, STR_REFIT, STR_REFIT_TIP}, // ORDER_WIDGET_REFIT
+ { WWT_PUSHTXTBTN, RESIZE_TB, 14, 186, 371, 76, 87, STR_SERVICE, STR_SERVICE_HINT}, // ORDER_WIDGET_SERVICE
- { WWT_PUSHIMGBTN, RESIZE_TB, 14, 384, 397, 76, 87, SPR_SHARED_ORDERS_ICON, STR_VEH_WITH_SHARED_ORDERS_LIST_TIP}, // ORDER_WIDGET_SHARED_ORDER_LIST
+ { WWT_DROPDOWN, RESIZE_TB, 14, 0, 123, 76, 87, STR_NULL, STR_ORDER_CONDITIONAL_VARIABLE_TOOLTIP}, // ORDER_WIDGET_COND_VARIABLE
+ { WWT_DROPDOWN, RESIZE_TB, 14, 124, 247, 76, 87, STR_NULL, STR_ORDER_CONDITIONAL_COMPARATOR_TOOLTIP}, // ORDER_WIDGET_COND_COMPARATOR
+ { WWT_PUSHTXTBTN, RESIZE_TB, 14, 248, 371, 76, 87, STR_CONDITIONAL_VALUE, STR_ORDER_CONDITIONAL_VALUE_TOOLTIP}, // ORDER_WIDGET_COND_VALUE
- { WWT_PANEL, RESIZE_RTB, 14, 397, 396, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_RESIZE_BAR
+ { WWT_PANEL, RESIZE_RTB, 14, 372, 373, 76, 99, 0x0, STR_NULL}, // ORDER_WIDGET_RESIZE_BAR
+ { WWT_PUSHIMGBTN, RESIZE_LRTB, 14, 372, 385, 76, 87, SPR_SHARED_ORDERS_ICON, STR_VEH_WITH_SHARED_ORDERS_LIST_TIP}, // ORDER_WIDGET_SHARED_ORDER_LIST
- { WWT_RESIZEBOX, RESIZE_LRTB, 14, 398, 409, 76, 87, 0x0, STR_RESIZE_BUTTON}, // ORDER_WIDGET_RESIZE
+ { WWT_RESIZEBOX, RESIZE_LRTB, 14, 374, 385, 88, 99, 0x0, STR_RESIZE_BUTTON}, // ORDER_WIDGET_RESIZE
{ WIDGETS_END},
};
static const WindowDesc _orders_desc = {
- WDP_AUTO, WDP_AUTO, 410, 88, 410, 88,
+ WDP_AUTO, WDP_AUTO, 386, 100, 386, 100,
WC_VEHICLE_ORDERS,WC_VEHICLE_VIEW,
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_RESIZABLE,
_orders_widgets,
@@ -806,32 +1120,36 @@
*/
static const Widget _other_orders_widgets[] = {
{ WWT_CLOSEBOX, RESIZE_NONE, 14, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, // ORDER_WIDGET_CLOSEBOX
- { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 331, 0, 13, STR_A00B_ORDERS, STR_018C_WINDOW_TITLE_DRAG_THIS}, // ORDER_WIDGET_CAPTION
- { WWT_PUSHTXTBTN, RESIZE_LR, 14, 271, 331, 0, 13, STR_TIMETABLE_VIEW, STR_TIMETABLE_VIEW_TOOLTIP}, // ORDER_WIDGET_TIMETABLE_VIEW
-
- { WWT_PANEL, RESIZE_RB, 14, 0, 319, 14, 75, 0x0, STR_8852_ORDERS_LIST_CLICK_ON_ORDER}, // ORDER_WIDGET_ORDER_LIST
-
- { WWT_SCROLLBAR, RESIZE_LRB, 14, 320, 331, 14, 75, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, // ORDER_WIDGET_SCROLLBAR
+ { WWT_CAPTION, RESIZE_RIGHT, 14, 11, 385, 0, 13, STR_8829_ORDERS, STR_018C_WINDOW_TITLE_DRAG_THIS}, // ORDER_WIDGET_CAPTION
+ { WWT_PUSHTXTBTN, RESIZE_LR, 14, 325, 385, 0, 13, STR_TIMETABLE_VIEW, STR_TIMETABLE_VIEW_TOOLTIP}, // ORDER_WIDGET_TIMETABLE_VIEW
- { WWT_EMPTY, RESIZE_NONE, 14, 0, 319, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_SKIP
- { WWT_EMPTY, RESIZE_NONE, 14, 0, 319, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_DELETE
- { WWT_EMPTY, RESIZE_NONE, 14, 0, 319, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_NON_STOP
- { WWT_EMPTY, RESIZE_NONE, 14, 0, 319, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_GOTO
- { WWT_EMPTY, RESIZE_NONE, 14, 0, 319, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_FULL_LOAD
- { WWT_EMPTY, RESIZE_NONE, 14, 0, 319, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_UNLOAD
- { WWT_EMPTY, RESIZE_NONE, 14, 0, 319, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_REFIT
- { WWT_EMPTY, RESIZE_NONE, 14, 0, 319, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_TRANSFER
+ { WWT_PANEL, RESIZE_RB, 14, 0, 373, 14, 75, 0x0, STR_8852_ORDERS_LIST_CLICK_ON_ORDER}, // ORDER_WIDGET_ORDER_LIST
- { WWT_EMPTY, RESIZE_NONE, 14, 0, 319, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_SHARED_ORDER_LIST
+ { WWT_SCROLLBAR, RESIZE_LRB, 14, 374, 385, 14, 75, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, // ORDER_WIDGET_SCROLLBAR
- { WWT_PANEL, RESIZE_RTB, 14, 0, 319, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_RESIZE_BAR
+ { WWT_EMPTY, RESIZE_NONE, 14, 0, 0, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_SKIP
+ { WWT_EMPTY, RESIZE_NONE, 14, 0, 0, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_DELETE
+ { WWT_EMPTY, RESIZE_NONE, 14, 0, 0, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_NON_STOP
+ { WWT_EMPTY, RESIZE_NONE, 14, 0, 0, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_GOTO
+ { WWT_EMPTY, RESIZE_NONE, 14, 0, 0, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_GOTO_DROPDOWN
+ { WWT_EMPTY, RESIZE_NONE, 14, 0, 0, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_FULL_LOAD
+ { WWT_EMPTY, RESIZE_NONE, 14, 0, 0, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_UNLOAD
+ { WWT_EMPTY, RESIZE_NONE, 14, 0, 0, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_REFIT
+ { WWT_EMPTY, RESIZE_NONE, 14, 0, 0, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_SERVICE
- { WWT_RESIZEBOX, RESIZE_LRTB, 14, 320, 331, 76, 87, 0x0, STR_RESIZE_BUTTON}, // ORDER_WIDGET_RESIZE
+ { WWT_EMPTY, RESIZE_NONE, 14, 0, 0, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_COND_VARIABLE
+ { WWT_EMPTY, RESIZE_NONE, 14, 0, 0, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_COND_COMPARATOR
+ { WWT_EMPTY, RESIZE_NONE, 14, 0, 0, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_COND_VALUE
+
+ { WWT_PANEL, RESIZE_RTB, 14, 0, 373, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_RESIZE_BAR
+ { WWT_EMPTY, RESIZE_TB, 14, 0, 0, 76, 87, 0x0, STR_NULL}, // ORDER_WIDGET_SHARED_ORDER_LIST
+
+ { WWT_RESIZEBOX, RESIZE_LRTB, 14, 374, 385, 76, 87, 0x0, STR_RESIZE_BUTTON}, // ORDER_WIDGET_RESIZE
{ WIDGETS_END},
};
static const WindowDesc _other_orders_desc = {
- WDP_AUTO, WDP_AUTO, 332, 88, 332, 88,
+ WDP_AUTO, WDP_AUTO, 386, 88, 386, 88,
WC_VEHICLE_ORDERS,WC_VEHICLE_VIEW,
WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_RESIZABLE,
_other_orders_widgets,
--- a/src/order_type.h Tue Apr 08 11:54:53 2008 +0000
+++ b/src/order_type.h Sat Apr 12 21:38:49 2008 +0000
@@ -27,6 +27,7 @@
OT_LEAVESTATION = 4,
OT_DUMMY = 5,
OT_GOTO_WAYPOINT = 6,
+ OT_CONDITIONAL = 7,
OT_END
};
@@ -36,49 +37,96 @@
typedef TinyEnumT<OrderType> OrderTypeByte;
-/* Order flags -- please use OF instead OF and use HASBIT/SETBIT/CLEARBIT */
-
-/** Order flag masks - these are for direct bit operations */
-enum OrderFlagMasks {
- //Flags for stations:
- /** vehicle will transfer cargo (i. e. not deliver to nearby industry/town even if accepted there) */
- OFB_TRANSFER = 0x1,
- /** If OFB_TRANSFER is not set, drop any cargo loaded. If accepted, deliver, otherwise cargo remains at the station.
- * No new cargo is loaded onto the vehicle whatsoever */
- OFB_UNLOAD = 0x2,
- /** Wait for full load of all vehicles, or of at least one cargo type, depending on patch setting
- * @todo make this two different flags */
- OFB_FULL_LOAD = 0x4,
-
- //Flags for depots:
- /** The current depot-order was initiated because it was in the vehicle's order list */
- OFB_MANUAL_ORDER = 0x0,
- OFB_PART_OF_ORDERS = 0x2,
- /** if OFB_PART_OF_ORDERS is not set, this will cause the vehicle to be stopped in the depot */
- OFB_NORMAL_ACTION = 0x0,
- OFB_HALT_IN_DEPOT = 0x4,
- /** if OFB_PART_OF_ORDERS is set, this will cause the order only be come active if the vehicle needs servicing */
- OFB_SERVICE_IF_NEEDED = 0x4, //used when OFB_PART_OF_ORDERS is set.
-
- //Common flags
- /** This causes the vehicle not to stop at intermediate OR the destination station (depending on patch settings)
- * @todo make this two different flags */
- OFB_NO_NON_STOP = 0x0,
- OFB_NON_STOP = 0x8
+/**
+ * Flags related to the unloading order.
+ */
+enum OrderUnloadFlags {
+ OUF_UNLOAD_IF_POSSIBLE = 0, ///< Unload all cargo that the station accepts.
+ OUFB_UNLOAD = 1 << 0, ///< Force unloading all cargo onto the platform, possibly not getting paid.
+ OUFB_TRANSFER = 1 << 1, ///< Transfer all cargo onto the platform.
+ OUFB_NO_UNLOAD = 1 << 2, ///< Totally no unloading will be done.
};
-/** Order flags bits - these are for the *BIT macros
- * for descrption of flags, see OrderFlagMasks
- * @see OrderFlagMasks
+/**
+ * Flags related to the loading order.
*/
-enum {
- OF_TRANSFER = 0,
- OF_UNLOAD = 1,
- OF_FULL_LOAD = 2,
- OF_PART_OF_ORDERS = 1,
- OF_HALT_IN_DEPOT = 2,
- OF_SERVICE_IF_NEEDED = 2,
- OF_NON_STOP = 3
+enum OrderLoadFlags {
+ OLF_LOAD_IF_POSSIBLE = 0, ///< Load as long as there is cargo that fits in the train.
+ OLFB_FULL_LOAD = 1 << 1, ///< Full load the complete the consist.
+ OLF_FULL_LOAD_ANY = 3, ///< Full load the a single cargo of the consist.
+ OLFB_NO_LOAD = 4, ///< Do not load anything.
+};
+
+/**
+ * Non-stop order flags.
+ */
+enum OrderNonStopFlags {
+ ONSF_STOP_EVERYWHERE = 0, ///< The vehicle will stop at any station it passes and the destination.
+ ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS = 1, ///< The vehicle will not stop at any stations it passes except the destination.
+ ONSF_NO_STOP_AT_DESTINATION_STATION = 2, ///< The vehicle will stop at any station it passes except the destination.
+ ONSF_NO_STOP_AT_ANY_STATION = 3, ///< The vehicle will not stop at any stations it passes including the destination.
+ ONSF_END
+};
+
+/**
+ * Reasons that could cause us to go to the depot.
+ */
+enum OrderDepotTypeFlags {
+ ODTF_MANUAL = 0, ///< The player initiated this order manually.
+ ODTFB_SERVICE = 1 << 0, ///< This depot order is because of the servicing limit.
+ ODTFB_PART_OF_ORDERS = 1 << 1, ///< This depot order is because of a regular order.
+};
+
+/**
+ * Actions that can be performed when the vehicle enters the depot.
+ */
+enum OrderDepotActionFlags {
+ ODATF_SERVICE_ONLY = 0, ///< Only service the vehicle.
+ ODATFB_HALT = 1 << 0, ///< Service the vehicle and then halt it.
+ ODATFB_NEAREST_DEPOT = 1 << 1, ///< Send the vehicle to the nearest depot.
+};
+
+/**
+ * Variables (of a vehicle) to 'cause' skipping on.
+ */
+enum OrderConditionVariable {
+ OCV_LOAD_PERCENTAGE, ///< Skip based on the amount of load
+ OCV_RELIABILITY, ///< Skip based on the reliability
+ OCV_MAX_SPEED, ///< Skip based on the maximum speed
+ OCV_AGE, ///< Skip based on the age
+ OCV_REQUIRES_SERVICE, ///< Skip when the vehicle requires service
+ OCV_UNCONDITIONALLY, ///< Always skip
+ OCV_END
+};
+
+/**
+ * Comparator for the skip reasoning.
+ */
+enum OrderConditionComparator {
+ OCC_EQUALS, ///< Skip if both values are equal
+ OCC_NOT_EQUALS, ///< Skip if both values are not equal
+ OCC_LESS_THAN, ///< Skip if the value is less than the limit
+ OCC_LESS_EQUALS, ///< Skip if the value is less or equal to the limit
+ OCC_MORE_THAN, ///< Skip if the value is more than the limit
+ OCC_MORE_EQUALS, ///< Skip if the value is more or equal to the limit
+ OCC_IS_TRUE, ///< Skip if the variable is true
+ OCC_IS_FALSE, ///< Skip if the variable is false
+ OCC_END
+};
+
+
+/**
+ * Enumeration for the data to set in CmdModifyOrder.
+ */
+enum ModifyOrderFlags {
+ MOF_NON_STOP, ///< Passes a OrderNonStopFlags.
+ MOF_UNLOAD, ///< Passes an OrderUnloadType.
+ MOF_LOAD, ///< Passes an OrderLoadType
+ MOF_DEPOT_ACTION, ///< Toggle the 'service' if needed flag.
+ MOF_COND_VARIABLE, ///< A conditional variable changes.
+ MOF_COND_COMPARATOR, ///< A comparator changes.
+ MOF_COND_VALUE, ///< The value to set the condition to.
+ MOF_END
};
--- a/src/player_gui.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/player_gui.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -40,8 +40,12 @@
};
assert_compile(WINDOW_CUSTOM_SIZE >= sizeof(facesel_d));
-static void DoShowPlayerFinances(PlayerID player, bool show_small, bool show_stickied);
-static void DoSelectPlayerFace(PlayerID player, bool show_big);
+enum {
+ FIRST_GUI_CALL = INT_MAX, ///< default value to specify thuis is the first call of the resizable gui
+};
+
+static void DoShowPlayerFinances(PlayerID player, bool show_small, bool show_stickied, int top = FIRST_GUI_CALL, int left = FIRST_GUI_CALL);
+static void DoSelectPlayerFace(PlayerID player, bool show_big, int top = FIRST_GUI_CALL, int left = FIRST_GUI_CALL);
static void DrawPlayerEconomyStats(const Player *p, byte mode)
{
@@ -153,55 +157,60 @@
static void PlayerFinancesWndProc(Window *w, WindowEvent *e)
{
switch (e->event) {
- case WE_PAINT: {
- PlayerID player = (PlayerID)w->window_number;
- const Player *p = GetPlayer(player);
-
- /* Recheck the size of the window as it might need to be resized due to the local player changing */
- int new_height = ((player != _local_player) ? 0 : 12) + ((WP(w, def_d).data_1 != 0) ? 48 : 204);
- if (w->height != new_height) {
- /* Make window dirty before and after resizing */
- SetWindowDirty(w);
- w->height = new_height;
- SetWindowDirty(w);
-
- w->SetWidgetHiddenState(PFW_WIDGET_INCREASE_LOAN, player != _local_player);
- w->SetWidgetHiddenState(PFW_WIDGET_REPAY_LOAN, player != _local_player);
- }
-
- /* Borrow button only shows when there is any more money to loan */
- w->SetWidgetDisabledState(PFW_WIDGET_INCREASE_LOAN, p->current_loan == _economy.max_loan);
+ case WE_PAINT: {
+ PlayerID player = (PlayerID)w->window_number;
+ const Player *p = GetPlayer(player);
- /* Repay button only shows when there is any more money to repay */
- w->SetWidgetDisabledState(PFW_WIDGET_REPAY_LOAN, player != _local_player || p->current_loan == 0);
-
- SetDParam(0, p->index);
- SetDParam(1, p->index);
- SetDParam(2, LOAN_INTERVAL);
- DrawWindowWidgets(w);
+ /* Recheck the size of the window as it might need to be resized due to the local player changing */
+ int new_height = ((player != _local_player) ? 0 : 12) + ((WP(w, def_d).data_1 != 0) ? 48 : 204);
+ if (w->height != new_height) {
+ /* Make window dirty before and after resizing */
+ SetWindowDirty(w);
+ w->height = new_height;
+ SetWindowDirty(w);
- DrawPlayerEconomyStats(p, (byte)WP(w, def_d).data_1);
- } break;
+ w->SetWidgetHiddenState(PFW_WIDGET_INCREASE_LOAN, player != _local_player);
+ w->SetWidgetHiddenState(PFW_WIDGET_REPAY_LOAN, player != _local_player);
+ }
- case WE_CLICK:
- switch (e->we.click.widget) {
- case PFW_WIDGET_TOGGLE_SIZE: {/* toggle size */
- byte mode = (byte)WP(w, def_d).data_1;
- bool stickied = !!(w->flags4 & WF_STICKY);
- PlayerID player = (PlayerID)w->window_number;
- DeleteWindow(w);
- DoShowPlayerFinances(player, !HasBit(mode, 0), stickied);
+ /* Borrow button only shows when there is any more money to loan */
+ w->SetWidgetDisabledState(PFW_WIDGET_INCREASE_LOAN, p->current_loan == _economy.max_loan);
+
+ /* Repay button only shows when there is any more money to repay */
+ w->SetWidgetDisabledState(PFW_WIDGET_REPAY_LOAN, player != _local_player || p->current_loan == 0);
+
+ SetDParam(0, p->index);
+ SetDParam(1, p->index);
+ SetDParam(2, LOAN_INTERVAL);
+ DrawWindowWidgets(w);
+
+ DrawPlayerEconomyStats(p, (byte)WP(w, def_d).data_1);
} break;
- case PFW_WIDGET_INCREASE_LOAN: /* increase loan */
- DoCommandP(0, 0, _ctrl_pressed, NULL, CMD_INCREASE_LOAN | CMD_MSG(STR_702C_CAN_T_BORROW_ANY_MORE_MONEY));
- break;
+ case WE_CLICK:
+ switch (e->we.click.widget) {
+ case PFW_WIDGET_TOGGLE_SIZE: {/* toggle size */
+ byte mode = (byte)WP(w, def_d).data_1;
+ bool stickied = !!(w->flags4 & WF_STICKY);
+ int oldtop = w->top; ///< current top position of the window before closing it
+ int oldleft = w->left; ///< current left position of the window before closing it
+ PlayerID player = (PlayerID)w->window_number;
- case PFW_WIDGET_REPAY_LOAN: /* repay loan */
- DoCommandP(0, 0, _ctrl_pressed, NULL, CMD_DECREASE_LOAN | CMD_MSG(STR_702F_CAN_T_REPAY_LOAN));
+ DeleteWindow(w);
+ /* Open up the (toggled size) Finance window at the same position as the previous */
+ DoShowPlayerFinances(player, !HasBit(mode, 0), stickied, oldtop, oldleft);
+ }
+ break;
+
+ case PFW_WIDGET_INCREASE_LOAN: /* increase loan */
+ DoCommandP(0, 0, _ctrl_pressed, NULL, CMD_INCREASE_LOAN | CMD_MSG(STR_702C_CAN_T_BORROW_ANY_MORE_MONEY));
+ break;
+
+ case PFW_WIDGET_REPAY_LOAN: /* repay loan */
+ DoCommandP(0, 0, _ctrl_pressed, NULL, CMD_DECREASE_LOAN | CMD_MSG(STR_702F_CAN_T_REPAY_LOAN));
+ break;
+ }
break;
- }
- break;
}
}
@@ -221,7 +230,18 @@
PlayerFinancesWndProc
};
-static void DoShowPlayerFinances(PlayerID player, bool show_small, bool show_stickied)
+/**
+ * Open the small/large finance window of the player
+ *
+ * @param player the player who's finances are requested to be seen
+ * @param show_small show large or small version opf the window
+ * @param show_stickied previous "stickyness" of the window
+ * @param top previous top position of the window
+ * @param left previous left position of the window
+ *
+ * @pre is player a valid player
+ */
+static void DoShowPlayerFinances(PlayerID player, bool show_small, bool show_stickied, int top, int left)
{
if (!IsValidPlayer(player)) return;
@@ -229,7 +249,14 @@
if (w != NULL) {
w->caption_color = w->window_number;
WP(w, def_d).data_1 = show_small;
+
if (show_stickied) w->flags4 |= WF_STICKY;
+
+ /* Check if repositioning from default is required */
+ if (top != FIRST_GUI_CALL && left != FIRST_GUI_CALL) {
+ w->top = top;
+ w->left = left;
+ }
}
}
@@ -811,11 +838,15 @@
switch (e->we.click.widget) {
/* Toggle size, advanced/simple face selection */
case PFW_WIDGET_TOGGLE_LARGE_SMALL:
- case PFW_WIDGET_TOGGLE_LARGE_SMALL_BUTTON:
+ case PFW_WIDGET_TOGGLE_LARGE_SMALL_BUTTON: {
+ int oldtop = w->top; ///< current top position of the window before closing it
+ int oldleft = w->left; ///< current top position of the window before closing it
+
DoCommandP(0, 0, *pf, NULL, CMD_SET_PLAYER_FACE);
DeleteWindow(w);
- DoSelectPlayerFace((PlayerID)w->window_number, !WP(w, facesel_d).advanced);
- break;
+ /* Open up the (toggled size) Face selection window at the same position as the previous */
+ DoSelectPlayerFace((PlayerID)w->window_number, !WP(w, facesel_d).advanced, oldtop, oldleft);
+ } break;
/* Cancel button */
case PFW_WIDGET_CANCEL:
@@ -949,10 +980,12 @@
*
* @param player the player which face shall be edited
* @param adv simple or advanced player face selection window
+ * @param top previous top position of the window
+ * @param left previous left position of the window
*
* @pre is player a valid player
*/
-static void DoSelectPlayerFace(PlayerID player, bool adv)
+static void DoSelectPlayerFace(PlayerID player, bool adv, int top, int left)
{
if (!IsValidPlayer(player)) return;
@@ -962,6 +995,12 @@
w->caption_color = w->window_number;
WP(w, facesel_d).face = GetPlayer((PlayerID)w->window_number)->face;
WP(w, facesel_d).advanced = adv;
+
+ /* Check if repositioning from default is required */
+ if (top != FIRST_GUI_CALL && left != FIRST_GUI_CALL) {
+ w->top = top;
+ w->left = left;
+ }
}
}
@@ -1292,31 +1331,30 @@
static void BuyCompanyWndProc(Window *w, WindowEvent *e)
{
switch (e->event) {
- case WE_PAINT: {
- Player *p = GetPlayer((PlayerID)w->window_number);
- SetDParam(0, STR_COMPANY_NAME);
- SetDParam(1, p->index);
- DrawWindowWidgets(w);
-
- DrawPlayerFace(p->face, p->player_color, 2, 16);
+ case WE_PAINT: {
+ Player *p = GetPlayer((PlayerID)w->window_number);
+ SetDParam(0, STR_COMPANY_NAME);
+ SetDParam(1, p->index);
+ DrawWindowWidgets(w);
- SetDParam(0, p->index);
- SetDParam(1, p->bankrupt_value);
- DrawStringMultiCenter(214, 65, STR_705B_WE_ARE_LOOKING_FOR_A_TRANSPORT, 238);
- break;
- }
+ DrawPlayerFace(p->face, p->player_color, 2, 16);
- case WE_CLICK:
- switch (e->we.click.widget) {
- case 3:
- DeleteWindow(w);
+ SetDParam(0, p->index);
+ SetDParam(1, p->bankrupt_value);
+ DrawStringMultiCenter(214, 65, STR_705B_WE_ARE_LOOKING_FOR_A_TRANSPORT, 238);
+ } break;
+
+ case WE_CLICK:
+ switch (e->we.click.widget) {
+ case 3:
+ DeleteWindow(w);
+ break;
+ case 4: {
+ DoCommandP(0, w->window_number, 0, NULL, CMD_BUY_COMPANY | CMD_MSG(STR_7060_CAN_T_BUY_COMPANY));
+ break;
+ }
+ }
break;
- case 4: {
- DoCommandP(0, w->window_number, 0, NULL, CMD_BUY_COMPANY | CMD_MSG(STR_7060_CAN_T_BUY_COMPANY));
- break;
- }
- }
- break;
}
}
@@ -1370,79 +1408,81 @@
static void EndGameWndProc(Window *w, WindowEvent *e)
{
switch (e->event) {
- case WE_PAINT: {
- const Player *p;
- uint x, y;
-
- SetupHighScoreEndWindow(w, &x, &y);
-
- if (!IsValidPlayer(_local_player)) break;
+ case WE_PAINT: {
+ const Player *p;
+ uint x, y;
- p = GetPlayer(_local_player);
- /* We need to get performance from last year because the image is shown
- * at the start of the new year when these things have already been copied */
- if (WP(w, highscore_d).background_img == SPR_TYCOON_IMG2_BEGIN) { // Tycoon of the century \o/
- SetDParam(0, p->index);
- SetDParam(1, p->index);
- SetDParam(2, EndGameGetPerformanceTitleFromValue(p->old_economy[0].performance_history));
- DrawStringMultiCenter(x + (640 / 2), y + 107, STR_021C_OF_ACHIEVES_STATUS, 640);
- } else {
- SetDParam(0, p->index);
- SetDParam(1, EndGameGetPerformanceTitleFromValue(p->old_economy[0].performance_history));
- DrawStringMultiCenter(x + (640 / 2), y + 157, STR_021B_ACHIEVES_STATUS, 640);
- }
- } break;
- case WE_CLICK: /* Close the window (and show the highscore window) */
- DeleteWindow(w);
- break;
- case WE_DESTROY: /* Show the highscore window when this one is closed */
- if (!_networking) DoCommandP(0, 0, 0, NULL, CMD_PAUSE); // unpause
- ShowHighscoreTable(w->window_number, WP(w, highscore_d).rank);
- break;
+ SetupHighScoreEndWindow(w, &x, &y);
+
+ if (!IsValidPlayer(_local_player)) break;
+
+ p = GetPlayer(_local_player);
+ /* We need to get performance from last year because the image is shown
+ * at the start of the new year when these things have already been copied */
+ if (WP(w, highscore_d).background_img == SPR_TYCOON_IMG2_BEGIN) { // Tycoon of the century \o/
+ SetDParam(0, p->index);
+ SetDParam(1, p->index);
+ SetDParam(2, EndGameGetPerformanceTitleFromValue(p->old_economy[0].performance_history));
+ DrawStringMultiCenter(x + (640 / 2), y + 107, STR_021C_OF_ACHIEVES_STATUS, 640);
+ } else {
+ SetDParam(0, p->index);
+ SetDParam(1, EndGameGetPerformanceTitleFromValue(p->old_economy[0].performance_history));
+ DrawStringMultiCenter(x + (640 / 2), y + 157, STR_021B_ACHIEVES_STATUS, 640);
+ }
+ } break;
+
+ case WE_CLICK: /* Close the window (and show the highscore window) */
+ DeleteWindow(w);
+ break;
+
+ case WE_DESTROY: /* Show the highscore window when this one is closed */
+ if (!_networking) DoCommandP(0, 0, 0, NULL, CMD_PAUSE); // unpause
+ ShowHighscoreTable(w->window_number, WP(w, highscore_d).rank);
+ break;
}
}
static void HighScoreWndProc(Window *w, WindowEvent *e)
{
switch (e->event) {
- case WE_PAINT: {
- const HighScore *hs = _highscore_table[w->window_number];
- uint x, y;
- uint8 i;
-
- SetupHighScoreEndWindow(w, &x, &y);
-
- SetDParam(0, _patches.ending_year);
- SetDParam(1, w->window_number + STR_6801_EASY);
- DrawStringMultiCenter(x + (640 / 2), y + 62, !_networking ? STR_0211_TOP_COMPANIES_WHO_REACHED : STR_TOP_COMPANIES_NETWORK_GAME, 500);
-
- /* Draw Highscore peepz */
- for (i = 0; i < lengthof(_highscore_table[0]); i++) {
- SetDParam(0, i + 1);
- DrawString(x + 40, y + 140 + (i * 55), STR_0212, TC_BLACK);
-
- if (hs[i].company[0] != '\0') {
- TextColour colour = (WP(w, highscore_d).rank == (int8)i) ? TC_RED : TC_BLACK; // draw new highscore in red
+ case WE_PAINT: {
+ const HighScore *hs = _highscore_table[w->window_number];
+ uint x, y;
+ uint8 i;
- DoDrawString(hs[i].company, x + 71, y + 140 + (i * 55), colour);
- SetDParam(0, hs[i].title);
- SetDParam(1, hs[i].score);
- DrawString(x + 71, y + 160 + (i * 55), STR_HIGHSCORE_STATS, colour);
- }
- }
- } break;
+ SetupHighScoreEndWindow(w, &x, &y);
- case WE_CLICK: /* Onclick to close window, and in destroy event handle the rest */
- DeleteWindow(w);
- break;
+ SetDParam(0, _patches.ending_year);
+ SetDParam(1, w->window_number + STR_6801_EASY);
+ DrawStringMultiCenter(x + (640 / 2), y + 62, !_networking ? STR_0211_TOP_COMPANIES_WHO_REACHED : STR_TOP_COMPANIES_NETWORK_GAME, 500);
- case WE_DESTROY: /* Get back all the hidden windows */
- if (_game_mode != GM_MENU) ShowVitalWindows();
+ /* Draw Highscore peepz */
+ for (i = 0; i < lengthof(_highscore_table[0]); i++) {
+ SetDParam(0, i + 1);
+ DrawString(x + 40, y + 140 + (i * 55), STR_0212, TC_BLACK);
- if (!_networking) DoCommandP(0, 0, 0, NULL, CMD_PAUSE); // unpause
- break;
- }
- }
+ if (hs[i].company[0] != '\0') {
+ TextColour colour = (WP(w, highscore_d).rank == (int8)i) ? TC_RED : TC_BLACK; // draw new highscore in red
+
+ DoDrawString(hs[i].company, x + 71, y + 140 + (i * 55), colour);
+ SetDParam(0, hs[i].title);
+ SetDParam(1, hs[i].score);
+ DrawString(x + 71, y + 160 + (i * 55), STR_HIGHSCORE_STATS, colour);
+ }
+ }
+ } break;
+
+ case WE_CLICK: /* Onclick to close window, and in destroy event handle the rest */
+ DeleteWindow(w);
+ break;
+
+ case WE_DESTROY: /* Get back all the hidden windows */
+ if (_game_mode != GM_MENU) ShowVitalWindows();
+
+ if (!_networking) DoCommandP(0, 0, 0, NULL, CMD_PAUSE); // unpause
+ break;
+ }
+}
static const Widget _highscore_widgets[] = {
{ WWT_PANEL, RESIZE_NONE, 16, 0, 640, 0, 480, 0x0, STR_NULL},
--- a/src/rail.h Tue Apr 08 11:54:53 2008 +0000
+++ b/src/rail.h Sat Apr 12 21:38:49 2008 +0000
@@ -13,6 +13,16 @@
#include "economy_func.h"
#include "tile_cmd.h"
+enum RailTypeFlag {
+ RTF_CATENARY = 0, ///< Set if the rail type should have catenary drawn
+};
+
+enum RailTypeFlags {
+ RTFB_NONE = 0,
+ RTFB_CATENARY = 1 << RTF_CATENARY,
+};
+DECLARE_ENUM_AS_BIT_SET(RailTypeFlags);
+
/** This struct contains all the info that is needed to draw and construct tracks.
*/
struct RailtypeInfo {
@@ -93,6 +103,11 @@
* Multiplier for curve maximum speed advantage
*/
byte curve_speed;
+
+ /**
+ * Bit mask of rail type flags
+ */
+ RailTypeFlags flags;
};
@@ -190,7 +205,7 @@
*/
static inline bool HasCatenary(RailType rt)
{
- return rt == RAILTYPE_ELECTRIC;
+ return HasBit(GetRailTypeInfo(rt)->flags, RTF_CATENARY);
}
--- a/src/road_cmd.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/road_cmd.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -874,13 +874,14 @@
/* Must iterate over the roadtypes in a reverse manner because
* tram tracks must be removed before the road bits. */
- for (RoadType rt = ROADTYPE_HWAY; rt >= ROADTYPE_ROAD; rt--) {
+ RoadType rt = ROADTYPE_HWAY;
+ do {
if (HasBit(rts, rt)) {
CommandCost tmp_ret = RemoveRoad(tile, flags, GetCrossingRoadBits(tile), rt, false);
if (CmdFailed(tmp_ret)) return tmp_ret;
ret.AddCost(tmp_ret);
}
- }
+ } while (rt-- != ROADTYPE_ROAD);
if (flags & DC_EXEC) {
DoCommand(tile, 0, 0, flags, CMD_LANDSCAPE_CLEAR);
--- a/src/roadveh.h Tue Apr 08 11:54:53 2008 +0000
+++ b/src/roadveh.h Sat Apr 12 21:38:49 2008 +0000
@@ -47,6 +47,10 @@
void CcBuildRoadVeh(bool success, TileIndex tile, uint32 p1, uint32 p2);
+byte GetRoadVehLength(const Vehicle *v);
+
+void RoadVehUpdateCache(Vehicle *v);
+
/**
* This class 'wraps' Vehicle; you do not actually instantiate this class.
@@ -77,10 +81,7 @@
void Tick();
void OnNewDay();
TileIndex GetOrderStationLocation(StationID station);
+ bool FindClosestDepot(TileIndex *location, DestinationID *destination, bool *reverse);
};
-byte GetRoadVehLength(const Vehicle *v);
-
-void RoadVehUpdateCache(Vehicle *v);
-
#endif /* ROADVEH_H */
--- a/src/roadveh_cmd.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/roadveh_cmd.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -447,6 +447,18 @@
return NULL; /* Target not found */
}
+bool RoadVehicle::FindClosestDepot(TileIndex *location, DestinationID *destination, bool *reverse)
+{
+ const Depot *depot = FindClosestRoadDepot(this);
+
+ if (depot == NULL) return false;
+
+ if (location != NULL) *location = depot->xy;
+ if (destination != NULL) *destination = depot->index;
+
+ return true;
+}
+
/** Send a road vehicle to the depot.
* @param tile unused
* @param flags operation to perform
@@ -457,9 +469,6 @@
*/
CommandCost CmdSendRoadVehToDepot(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
{
- Vehicle *v;
- const Depot *dep;
-
if (p2 & DEPOT_MASS_SEND) {
/* Mass goto depot requested */
if (!ValidVLWFlags(p2 & VLW_MASK)) return CMD_ERROR;
@@ -468,55 +477,11 @@
if (!IsValidVehicleID(p1)) return CMD_ERROR;
- v = GetVehicle(p1);
-
- if (v->type != VEH_ROAD || !CheckOwnership(v->owner)) return CMD_ERROR;
-
- if (v->vehstatus & VS_CRASHED) return CMD_ERROR;
-
- if (v->IsInDepot()) return CMD_ERROR;
-
- /* If the current orders are already goto-depot */
- if (v->current_order.IsType(OT_GOTO_DEPOT)) {
- bool halt_in_depot = HasBit(v->current_order.GetDepotActionType(), OF_HALT_IN_DEPOT);
- if (!!(p2 & DEPOT_SERVICE) == halt_in_depot) {
- /* We called with a different DEPOT_SERVICE setting.
- * Now we change the setting to apply the new one and let the vehicle head for the same depot.
- * Note: the if is (true for requesting service == true for ordered to stop in depot) */
- if (flags & DC_EXEC) {
- v->current_order.SetDepotOrderType(OFB_MANUAL_ORDER);
- v->current_order.SetDepotActionType(halt_in_depot ? OFB_NORMAL_ACTION : OFB_HALT_IN_DEPOT);
- InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, VVW_WIDGET_START_STOP_VEH);
- }
- return CommandCost();
- }
+ Vehicle *v = GetVehicle(p1);
- if (p2 & DEPOT_DONT_CANCEL) return CMD_ERROR; // Requested no cancelation of depot orders
- if (flags & DC_EXEC) {
- /* If the orders to 'goto depot' are in the orders list (forced servicing),
- * then skip to the next order; effectively cancelling this forced service */
- if (v->current_order.GetDepotOrderType() & OFB_PART_OF_ORDERS) v->cur_order_index++;
-
- v->current_order.MakeDummy();
- InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, VVW_WIDGET_START_STOP_VEH);
- }
- return CommandCost();
- }
+ if (v->type != VEH_ROAD) return CMD_ERROR;
- dep = FindClosestRoadDepot(v);
- if (dep == NULL) return_cmd_error(STR_9019_UNABLE_TO_FIND_LOCAL_DEPOT);
-
- if (flags & DC_EXEC) {
- if (v->current_order.IsType(OT_LOADING)) v->LeaveStation();
-
- ClearSlot(v);
- v->current_order.MakeGoToDepot(dep->index, false);
- if (!(p2 & DEPOT_SERVICE)) v->current_order.SetDepotActionType(OFB_HALT_IN_DEPOT);
- v->dest_tile = dep->xy;
- InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, VVW_WIDGET_START_STOP_VEH);
- }
-
- return CommandCost();
+ return v->SendToDepot(flags, (DepotCommand)(p2 & DEPOT_COMMAND_MASK));
}
/** Turn a roadvehicle around.
@@ -1914,7 +1879,7 @@
static void CheckIfRoadVehNeedsService(Vehicle *v)
{
/* If we already got a slot at a stop, use that FIRST, and go to a depot later */
- if (v->u.road.slot != NULL || _patches.servint_roadveh == 0 || !VehicleNeedsService(v)) return;
+ if (v->u.road.slot != NULL || _patches.servint_roadveh == 0 || !v->NeedsAutomaticServicing()) return;
if (v->IsInDepot()) {
VehicleServiceInDepot(v);
return;
@@ -1932,7 +1897,7 @@
}
if (v->current_order.IsType(OT_GOTO_DEPOT) &&
- v->current_order.GetNonStopType() & OFB_NON_STOP &&
+ v->current_order.GetNonStopType() & ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS &&
!Chance16(1, 20)) {
return;
}
@@ -1940,7 +1905,7 @@
if (v->current_order.IsType(OT_LOADING)) v->LeaveStation();
ClearSlot(v);
- v->current_order.MakeGoToDepot(depot->index, false);
+ v->current_order.MakeGoToDepot(depot->index, ODTFB_SERVICE);
v->dest_tile = depot->xy;
InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, VVW_WIDGET_START_STOP_VEH);
}
--- a/src/saveload.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/saveload.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -34,7 +34,7 @@
#include "table/strings.h"
-extern const uint16 SAVEGAME_VERSION = 92;
+extern const uint16 SAVEGAME_VERSION = 93;
uint16 _sl_version; ///< the major savegame version identifier
byte _sl_minor_version; ///< the minor savegame version, DO NOT USE!
--- a/src/settings.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/settings.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -1455,10 +1455,11 @@
/***************************************************************************/
/* Station section of the GUI-configure patches window */
SDT_BOOL(Patches, join_stations, 0, 0, true, STR_CONFIG_PATCHES_JOINSTATIONS, NULL),
- SDT_BOOL(Patches, full_load_any, 0,NN, true, STR_CONFIG_PATCHES_FULLLOADANY, NULL),
+ SDT_CONDBOOL(Patches, sg_full_load_any, 0, 92, 0, 0, true, STR_NULL, NULL),
SDT_BOOL(Patches, improved_load, 0,NN, false, STR_CONFIG_PATCHES_IMPROVEDLOAD, NULL),
SDT_BOOL(Patches, selectgoods, 0, 0, true, STR_CONFIG_PATCHES_SELECTGOODS, NULL),
- SDT_BOOL(Patches, new_nonstop, 0, 0, false, STR_CONFIG_PATCHES_NEW_NONSTOP, NULL),
+ SDT_BOOL(Patches, new_nonstop, S, 0, false, STR_CONFIG_PATCHES_NEW_NONSTOP, NULL),
+ SDT_CONDBOOL(Patches, sg_new_nonstop, 0, 92, 0, 0, false, STR_NULL, NULL),
SDT_BOOL(Patches, nonuniform_stations, 0,NN, true, STR_CONFIG_PATCHES_NONUNIFORM_STATIONS,NULL),
SDT_VAR(Patches, station_spread,SLE_UINT8,0, 0, 12, 4, 64, 0, STR_CONFIG_PATCHES_STATION_SPREAD, InvalidateStationBuildWindow),
SDT_BOOL(Patches, serviceathelipad, 0, 0, true, STR_CONFIG_PATCHES_SERVICEATHELIPAD, NULL),
--- a/src/settings_gui.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/settings_gui.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -748,7 +748,6 @@
static const char *_patches_stations[] = {
"join_stations",
- "full_load_any",
"improved_load",
"selectgoods",
"new_nonstop",
--- a/src/settings_type.h Tue Apr 08 11:54:53 2008 +0000
+++ b/src/settings_type.h Sat Apr 12 21:38:49 2008 +0000
@@ -62,7 +62,7 @@
bool build_on_slopes; ///< allow building on slopes
bool mammoth_trains; ///< allow very long trains
bool join_stations; ///< allow joining of train stations
- bool full_load_any; ///< new full load calculation, any cargo must be full
+ bool sg_full_load_any; ///< new full load calculation, any cargo must be full read from pre v93 savegames
bool improved_load; ///< improved loading algorithm
bool gradual_loading; ///< load vehicles gradually
byte station_spread; ///< amount a station may spread
@@ -79,6 +79,7 @@
bool status_long_date; ///< always show long date in status bar
bool signal_side; ///< show signals on right side
bool show_finances; ///< show finances at end of year
+ bool sg_new_nonstop; ///< ttdpatch compatible nonstop handling read from pre v93 savegames
bool new_nonstop; ///< ttdpatch compatible nonstop handling
bool roadveh_queue; ///< buggy road vehicle queueing
bool autoscroll; ///< scroll when moving mouse to the edge.
--- a/src/ship.h Tue Apr 08 11:54:53 2008 +0000
+++ b/src/ship.h Sat Apr 12 21:38:49 2008 +0000
@@ -43,6 +43,7 @@
void Tick();
void OnNewDay();
TileIndex GetOrderStationLocation(StationID station);
+ bool FindClosestDepot(TileIndex *location, DestinationID *destination, bool *reverse);
};
#endif /* SHIP_H */
--- a/src/ship_cmd.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/ship_cmd.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -144,7 +144,7 @@
static void CheckIfShipNeedsService(Vehicle *v)
{
- if (_patches.servint_ships == 0 || !VehicleNeedsService(v)) return;
+ if (_patches.servint_ships == 0 || !v->NeedsAutomaticServicing()) return;
if (v->IsInDepot()) {
VehicleServiceInDepot(v);
return;
@@ -160,7 +160,7 @@
return;
}
- v->current_order.MakeGoToDepot(depot->index, false);
+ v->current_order.MakeGoToDepot(depot->index, ODTFB_SERVICE);
v->dest_tile = depot->xy;
InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, VVW_WIDGET_START_STOP_VEH);
}
@@ -912,6 +912,18 @@
return CommandCost();
}
+bool Ship::FindClosestDepot(TileIndex *location, DestinationID *destination, bool *reverse)
+{
+ const Depot *depot = FindClosestShipDepot(this);
+
+ if (depot == NULL) return false;
+
+ if (location != NULL) *location = depot->xy;
+ if (destination != NULL) *destination = depot->index;
+
+ return true;
+}
+
/** Send a ship to the depot.
* @param tile unused
* @param flags type of operation
@@ -922,9 +934,6 @@
*/
CommandCost CmdSendShipToDepot(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
{
- Vehicle *v;
- const Depot *dep;
-
if (p2 & DEPOT_MASS_SEND) {
/* Mass goto depot requested */
if (!ValidVLWFlags(p2 & VLW_MASK)) return CMD_ERROR;
@@ -933,54 +942,11 @@
if (!IsValidVehicleID(p1)) return CMD_ERROR;
- v = GetVehicle(p1);
-
- if (v->type != VEH_SHIP || !CheckOwnership(v->owner)) return CMD_ERROR;
-
- if (v->vehstatus & VS_CRASHED) return CMD_ERROR;
-
- if (v->IsInDepot()) return CMD_ERROR;
-
- /* If the current orders are already goto-depot */
- if (v->current_order.IsType(OT_GOTO_DEPOT)) {
- bool halt_in_depot = HasBit(v->current_order.GetDepotActionType(), OF_HALT_IN_DEPOT);
- if (!!(p2 & DEPOT_SERVICE) == halt_in_depot) {
- /* We called with a different DEPOT_SERVICE setting.
- * Now we change the setting to apply the new one and let the vehicle head for the same depot.
- * Note: the if is (true for requesting service == true for ordered to stop in depot) */
- if (flags & DC_EXEC) {
- v->current_order.SetDepotOrderType(OFB_MANUAL_ORDER);
- v->current_order.SetDepotActionType(halt_in_depot ? OFB_NORMAL_ACTION : OFB_HALT_IN_DEPOT);
- InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, VVW_WIDGET_START_STOP_VEH);
- }
- return CommandCost();
- }
+ Vehicle *v = GetVehicle(p1);
- if (p2 & DEPOT_DONT_CANCEL) return CMD_ERROR; // Requested no cancelation of depot orders
- if (flags & DC_EXEC) {
- /* If the orders to 'goto depot' are in the orders list (forced servicing),
- * then skip to the next order; effectively cancelling this forced service */
- if (v->current_order.GetDepotOrderType() & OFB_PART_OF_ORDERS) v->cur_order_index++;
-
- v->current_order.MakeDummy();
- InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, VVW_WIDGET_START_STOP_VEH);
- }
- return CommandCost();
- }
+ if (v->type != VEH_SHIP) return CMD_ERROR;
- dep = FindClosestShipDepot(v);
- if (dep == NULL) return_cmd_error(STR_981A_UNABLE_TO_FIND_LOCAL_DEPOT);
-
- if (flags & DC_EXEC) {
- if (v->current_order.IsType(OT_LOADING)) v->LeaveStation();
-
- v->dest_tile = dep->xy;
- v->current_order.MakeGoToDepot(dep->index, false);
- if (!(p2 & DEPOT_SERVICE)) v->current_order.SetDepotActionType(OFB_HALT_IN_DEPOT);
- InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, VVW_WIDGET_START_STOP_VEH);
- }
-
- return CommandCost();
+ return v->SendToDepot(flags, (DepotCommand)(p2 & DEPOT_COMMAND_MASK));
}
--- a/src/signs.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/signs.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -19,6 +19,7 @@
#include "window_func.h"
#include "map_func.h"
#include "string_func.h"
+#include "oldpool_func.h"
#include "table/strings.h"
--- a/src/sound.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/sound.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -197,9 +197,7 @@
void SndCopyToPool()
{
- uint i;
-
- for (i = 0; i < _file_count; i++) {
+ for (uint i = 0; i < _file_count; i++) {
FileEntry *orig = &_files[_sound_idx[i]];
FileEntry *fe = AllocateFileEntry();
--- a/src/station_cmd.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/station_cmd.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -42,6 +42,7 @@
#include "vehicle_func.h"
#include "string_func.h"
#include "signal_func.h"
+#include "oldpool_func.h"
#include "table/sprites.h"
#include "table/strings.h"
--- a/src/station_gui.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/station_gui.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -388,7 +388,7 @@
assert(st->xy != 0);
- /* Do not do the complex check HasStationInUse here, it may be even false
+ /* Do not do the complex check HasStationInUse here, it may be even false
* when the order had been removed and the station list hasn't been removed yet */
assert(st->owner == owner || (st->owner == OWNER_NONE && !st->IsBuoy()));
--- a/src/strings.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/strings.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -536,6 +536,26 @@
},
};
+/**
+ * Convert the given (internal) speed to the display speed.
+ * @param speed the speed to convert
+ * @return the converted speed.
+ */
+uint ConvertSpeedToDisplaySpeed(uint speed)
+{
+ return (speed * units[_opt_ptr->units].s_m) >> units[_opt_ptr->units].s_s;
+}
+
+/**
+ * Convert the given display speed to the (internal) speed.
+ * @param speed the speed to convert
+ * @return the converted speed.
+ */
+uint ConvertDisplaySpeedToSpeed(uint speed)
+{
+ return ((speed << units[_opt_ptr->units].s_s) + units[_opt_ptr->units].s_m / 2) / units[_opt_ptr->units].s_m;
+}
+
static char* FormatString(char* buff, const char* str, const int64* argv, uint casei, const char* last)
{
extern const char _openttd_revision[];
@@ -581,7 +601,7 @@
case SCC_VELOCITY: {// {VELOCITY}
int64 args[1];
assert(_opt_ptr->units < lengthof(units));
- args[0] = GetInt32(&argv) * units[_opt_ptr->units].s_m >> units[_opt_ptr->units].s_s;
+ args[0] = ConvertSpeedToDisplaySpeed(GetInt32(&argv));
buff = FormatString(buff, GetStringPtr(units[_opt_ptr->units].velocity), args, modifier >> 24, last);
modifier = 0;
break;
--- a/src/subsidy_gui.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/subsidy_gui.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -95,6 +95,8 @@
int width = w->width - 13; // scroll bar = 11 + pixel each side
y = 15;
x = 1;
+
+ /* Section for drawing the offered subisidies */
DrawStringTruncated(x, y, STR_2026_SUBSIDIES_ON_OFFER_FOR, TC_FROMSTRING, width);
y += 10;
num = 0;
@@ -103,9 +105,11 @@
if (s->cargo_type != CT_INVALID && s->age < 12) {
int x2;
+ /* Displays the two offered towns */
SetupSubsidyDecodeParam(s, 1);
x2 = DrawStringTruncated(x + 2, y, STR_2027_FROM_TO, TC_FROMSTRING, width);
+ /* Displays the deadline before voiding the proposal */
SetDParam(0, _date - ymd.day + 384 - s->age * 32);
DrawStringTruncated(x2, y, STR_2028_BY, TC_FROMSTRING, width - x2);
y += 10;
@@ -118,6 +122,7 @@
y += 10;
}
+ /* Section for drawing the already granted subisidies */
DrawStringTruncated(x, y + 1, STR_202B_SERVICES_ALREADY_SUBSIDISED, TC_FROMSTRING, width);
y += 10;
num = 0;
@@ -131,9 +136,11 @@
PlayerID player = GetStation(s->to)->owner;
SetDParam(3, player);
+ /* Displays the two connected stations */
xt = DrawStringTruncated(x + 2, y, STR_202C_FROM_TO, TC_FROMSTRING, width - 2);
- if ((xt > 3) && (width - xt) > 9 ) { // do not draw if it will get on the scrollbar or if last drawing did nothing
+ /* Displays the date where the granted subsidy will end */
+ if ((xt > 3) && (width - xt) > 9 ) { // do not draw if previous drawing failed or if it will overlap on scrollbar
SetDParam(0, _date - ymd.day + 768 - s->age * 32);
DrawStringTruncated(xt, y, STR_202D_UNTIL, TC_FROMSTRING, width - xt);
}
@@ -165,8 +172,8 @@
{ WWT_CAPTION, RESIZE_RIGHT, 13, 11, 307, 0, 13, STR_2025_SUBSIDIES, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_STICKYBOX, RESIZE_LR, 13, 308, 319, 0, 13, STR_NULL, STR_STICKY_BUTTON},
{ WWT_PANEL, RESIZE_RB, 13, 0, 307, 14, 126, 0x0, STR_01FD_CLICK_ON_SERVICE_TO_CENTER},
-{ WWT_SCROLLBAR, RESIZE_LRB, 13, 308, 319, 14, 114, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, // IDW_SCROLLBAR
-{ WWT_RESIZEBOX, RESIZE_LRTB, 13, 308, 319, 115, 126, 0x0, STR_RESIZE_BUTTON}, // IDW_RESIZE
+{ WWT_SCROLLBAR, RESIZE_LRB, 13, 308, 319, 14, 114, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
+{ WWT_RESIZEBOX, RESIZE_LRTB, 13, 308, 319, 115, 126, 0x0, STR_RESIZE_BUTTON},
{ WIDGETS_END},
};
--- a/src/table/railtypes.h Tue Apr 08 11:54:53 2008 +0000
+++ b/src/table/railtypes.h Sat Apr 12 21:38:49 2008 +0000
@@ -60,6 +60,9 @@
/* curve speed advantage (multiplier) */
0,
+
+ /* flags */
+ RTFB_NONE,
},
/** Electrified railway */
@@ -116,6 +119,9 @@
/* curve speed advantage (multiplier) */
0,
+
+ /* flags */
+ RTFB_CATENARY,
},
/** Monorail */
@@ -168,6 +174,9 @@
/* curve speed advantage (multiplier) */
1,
+
+ /* flags */
+ RTFB_NONE,
},
/** Maglev */
@@ -220,6 +229,9 @@
/* curve speed advantage (multiplier) */
2,
+
+ /* flags */
+ RTFB_NONE,
},
};
--- a/src/timetable_cmd.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/timetable_cmd.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -24,7 +24,7 @@
order->wait_time = time;
}
- if (v->cur_order_index == order_number && HasBit(v->current_order.GetDepotOrderType(), OF_PART_OF_ORDERS)) {
+ if (v->cur_order_index == order_number && v->current_order.GetDepotOrderType() & ODTFB_PART_OF_ORDERS) {
if (is_journey) {
v->current_order.travel_time = time;
} else {
@@ -70,7 +70,7 @@
bool is_journey = HasBit(p1, 24) || packed_time;
if (!is_journey) {
if (!order->IsType(OT_GOTO_STATION)) return_cmd_error(STR_TIMETABLE_ONLY_WAIT_AT_STATIONS);
- if (_patches.new_nonstop && (order->GetNonStopType() & OFB_NON_STOP)) return_cmd_error(STR_TIMETABLE_NOT_STOPPING_HERE);
+ if (order->GetNonStopType() & ONSF_NO_STOP_AT_DESTINATION_STATION) return_cmd_error(STR_TIMETABLE_NOT_STOPPING_HERE);
}
if (flags & DC_EXEC) {
--- a/src/timetable_gui.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/timetable_gui.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -36,11 +36,16 @@
TTV_RESIZE,
};
+struct timetable_d {
+ int sel;
+};
+assert_compile(WINDOW_CUSTOM_SIZE >= sizeof(timetable_d));
+
static int GetOrderFromTimetableWndPt(Window *w, int y, const Vehicle *v)
{
/*
* Calculation description:
- * 15 = 14 (w->widget[ORDER_WIDGET_ORDER_LIST].top) + 1 (frame-line)
+ * 15 = 14 (w->widget[TTV_ORDER_VIEW].top) + 1 (frame-line)
* 10 = order text hight
*/
int sel = (y - 15) / 10;
@@ -66,7 +71,7 @@
static void DrawTimetableWindow(Window *w)
{
const Vehicle *v = GetVehicle(w->window_number);
- int selected = WP(w, order_d).sel;
+ int selected = WP(w, timetable_d).sel;
SetVScrollCount(w, v->num_orders * 2);
@@ -79,7 +84,7 @@
w->EnableWidget(TTV_CLEAR_TIME);
} else {
const Order *order = GetVehicleOrder(v, (selected + 1) / 2);
- bool disable = order == NULL || !order->IsType(OT_GOTO_STATION) || (_patches.new_nonstop && (order->GetNonStopType() & OFB_NON_STOP));
+ bool disable = order == NULL || !order->IsType(OT_GOTO_STATION) || (order->GetNonStopType() & ONSF_NO_STOP_AT_DESTINATION_STATION);
w->SetWidgetDisabledState(TTV_CHANGE_TIME, disable);
w->SetWidgetDisabledState(TTV_CLEAR_TIME, disable);
@@ -111,7 +116,7 @@
if (i - w->vscroll.pos >= w->vscroll.cap) break;
if (i % 2 == 0) {
- SetDParam(2, STR_EMPTY);
+ SetDParam(5, STR_EMPTY);
switch (order->GetType()) {
case OT_DUMMY:
@@ -119,43 +124,78 @@
break;
case OT_GOTO_STATION:
- SetDParam(0, (order->GetNonStopType() & OFB_NON_STOP) ? STR_880A_GO_NON_STOP_TO : STR_8806_GO_TO);
- SetDParam(1, order->GetDestination());
+ SetDParam(0, STR_GO_TO_STATION);
+ SetDParam(1, STR_ORDER_GO_TO + order->GetNonStopType());
+ SetDParam(2, order->GetDestination());
+ SetDParam(3, STR_EMPTY);
if (order->wait_time > 0) {
- SetDParam(2, STR_TIMETABLE_STAY_FOR);
- SetTimetableParams(3, 4, order->wait_time);
+ SetDParam(5, STR_TIMETABLE_STAY_FOR);
+ SetTimetableParams(6, 7, order->wait_time);
+ } else {
+ SetDParam(4, STR_EMPTY);
}
break;
- case OT_GOTO_DEPOT: {
- StringID string = STR_EMPTY;
-
+ case OT_GOTO_DEPOT:
+ SetDParam(4, STR_EMPTY);
if (v->type == VEH_AIRCRAFT) {
- string = STR_GO_TO_AIRPORT_HANGAR;
- SetDParam(1, order->GetDestination());
+ if (order->GetDepotActionType() & ODATFB_NEAREST_DEPOT) {
+ SetDParam(0, STR_GO_TO_NEAREST_DEPOT);
+ SetDParam(2, STR_ORDER_NEAREST_HANGAR);
+ } else {
+ SetDParam(0, STR_GO_TO_HANGAR);
+ SetDParam(2, order->GetDestination());
+ }
+ SetDParam(3, STR_EMPTY);
} else {
- SetDParam(1, GetDepot(order->GetDestination())->town_index);
+ if (order->GetDepotActionType() & ODATFB_NEAREST_DEPOT) {
+ SetDParam(0, STR_GO_TO_NEAREST_DEPOT);
+ SetDParam(2, STR_ORDER_NEAREST_DEPOT);
+ } else {
+ SetDParam(0, STR_GO_TO_DEPOT);
+ SetDParam(2, GetDepot(order->GetDestination())->town_index);
+ }
switch (v->type) {
- case VEH_TRAIN: string = (order->GetNonStopType() & OFB_NON_STOP) ? STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT : STR_GO_TO_TRAIN_DEPOT; break;
- case VEH_ROAD: string = STR_GO_TO_ROADVEH_DEPOT; break;
- case VEH_SHIP: string = STR_GO_TO_SHIP_DEPOT; break;
- default: break;
+ case VEH_TRAIN: SetDParam(3, STR_ORDER_TRAIN_DEPOT); break;
+ case VEH_ROAD: SetDParam(3, STR_ORDER_ROAD_DEPOT); break;
+ case VEH_SHIP: SetDParam(3, STR_ORDER_SHIP_DEPOT); break;
+ default: NOT_REACHED();
}
}
- if (order->GetDepotOrderType() & OFB_SERVICE_IF_NEEDED) string++; /* service at */
-
- SetDParam(0, string);
- } break;
+ if (order->GetDepotOrderType() & ODTFB_SERVICE) {
+ SetDParam(1, (order->GetNonStopType() & ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS) ? STR_ORDER_SERVICE_NON_STOP_AT : STR_ORDER_SERVICE_AT);
+ } else {
+ SetDParam(1, (order->GetNonStopType() & ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS) ? STR_ORDER_GO_NON_STOP_TO : STR_ORDER_GO_TO);
+ }
+ break;
case OT_GOTO_WAYPOINT:
- SetDParam(0, (order->GetNonStopType() & OFB_NON_STOP) ? STR_GO_NON_STOP_TO_WAYPOINT : STR_GO_TO_WAYPOINT);
+ SetDParam(0, (order->GetNonStopType() != ONSF_STOP_EVERYWHERE) ? STR_GO_NON_STOP_TO_WAYPOINT : STR_GO_TO_WAYPOINT);
SetDParam(1, order->GetDestination());
break;
+
+ case OT_CONDITIONAL:
+ SetDParam(1, order->GetConditionSkipToOrder() + 1);
+ if (order->GetConditionVariable() == OCV_UNCONDITIONALLY) {
+ SetDParam(0, STR_CONDITIONAL_UNCONDITIONAL);
+ } else {
+ extern uint ConvertSpeedToDisplaySpeed(uint speed);
+ OrderConditionComparator occ = order->GetConditionComparator();
+ SetDParam(0, (occ == OCC_IS_TRUE || occ == OCC_IS_FALSE) ? STR_CONDITIONAL_TRUE_FALSE : STR_CONDITIONAL_NUM);
+ SetDParam(2, STR_ORDER_CONDITIONAL_LOAD_PERCENTAGE + order->GetConditionVariable());
+ SetDParam(3, STR_ORDER_CONDITIONAL_COMPARATOR_EQUALS + occ);
+
+ uint value = order->GetConditionValue();
+ if (order->GetConditionVariable() == OCV_MAX_SPEED) value = ConvertSpeedToDisplaySpeed(value);
+ SetDParam(4, value);
+ }
+ break;
+
default: break;
}
@@ -197,7 +237,7 @@
for (const Order *order = GetVehicleOrder(v, 0); order != NULL; order = order->next) {
total_time += order->travel_time + order->wait_time;
if (order->travel_time == 0) complete = false;
- if (order->wait_time == 0 && order->IsType(OT_GOTO_STATION) && !(_patches.new_nonstop && (order->GetNonStopType() & OFB_NON_STOP))) complete = false;
+ if (order->wait_time == 0 && order->IsType(OT_GOTO_STATION) && !(order->GetNonStopType() & ONSF_NO_STOP_AT_DESTINATION_STATION)) complete = false;
}
if (total_time != 0) {
@@ -243,17 +283,17 @@
case TTV_TIMETABLE_PANEL: { /* Main panel. */
int selected = GetOrderFromTimetableWndPt(w, we->we.click.pt.y, v);
- if (selected == INVALID_ORDER || selected == WP(w, order_d).sel) {
+ if (selected == INVALID_ORDER || selected == WP(w, timetable_d).sel) {
/* Deselect clicked order */
- WP(w, order_d).sel = -1;
+ WP(w, timetable_d).sel = -1;
} else {
/* Select clicked order */
- WP(w, order_d).sel = selected;
+ WP(w, timetable_d).sel = selected;
}
} break;
case TTV_CHANGE_TIME: { /* "Wait For" button. */
- int selected = WP(w, order_d).sel;
+ int selected = WP(w, timetable_d).sel;
VehicleOrderID real = (selected + 1) / 2;
if (real >= v->num_orders) real = 0;
@@ -275,7 +315,7 @@
} break;
case TTV_CLEAR_TIME: { /* Clear waiting time button. */
- uint32 p1 = PackTimetableArgs(v, WP(w, order_d).sel);
+ uint32 p1 = PackTimetableArgs(v, WP(w, timetable_d).sel);
DoCommandP(0, p1, 0, NULL, CMD_CHANGE_TIMETABLE | CMD_MSG(STR_CAN_T_TIMETABLE_VEHICLE));
} break;
@@ -294,7 +334,7 @@
case WE_ON_EDIT_TEXT: {
const Vehicle *v = GetVehicle(w->window_number);
- uint32 p1 = PackTimetableArgs(v, WP(w, order_d).sel);
+ uint32 p1 = PackTimetableArgs(v, WP(w, timetable_d).sel);
uint64 time = StrEmpty(we->we.edittext.str) ? 0 : strtoul(we->we.edittext.str, NULL, 10);
if (!_patches.timetable_in_ticks) time *= DAY_TICKS;
@@ -350,6 +390,6 @@
w->caption_color = v->owner;
w->vscroll.cap = 8;
w->resize.step_height = 10;
- WP(w, order_d).sel = -1;
+ WP(w, timetable_d).sel = -1;
}
}
--- a/src/town_cmd.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/town_cmd.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -40,6 +40,7 @@
#include "window_func.h"
#include "string_func.h"
#include "newgrf_cargo.h"
+#include "oldpool_func.h"
#include "table/strings.h"
#include "table/sprites.h"
--- a/src/train.h Tue Apr 08 11:54:53 2008 +0000
+++ b/src/train.h Sat Apr 12 21:38:49 2008 +0000
@@ -10,12 +10,10 @@
#include "vehicle_base.h"
-/*
- * enum to handle train subtypes
+/** enum to handle train subtypes
* Do not access it directly unless you have to. Use the access functions below
* This is an enum to tell what bit to access as it is a bitmask
*/
-
enum TrainSubtype {
TS_FRONT = 0, ///< Leading engine of a train
TS_ARTICULATED_PART = 1, ///< Articulated part of an engine
@@ -307,6 +305,7 @@
void Tick();
void OnNewDay();
TileIndex GetOrderStationLocation(StationID station);
+ bool FindClosestDepot(TileIndex *location, DestinationID *destination, bool *reverse);
};
#endif /* TRAIN_H */
--- a/src/train_cmd.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/train_cmd.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -97,7 +97,7 @@
* Recalculates the cached total power of a train. Should be called when the consist is changed
* @param v First vehicle of the consist.
*/
-void TrainPowerChanged(Vehicle* v)
+void TrainPowerChanged(Vehicle *v)
{
uint32 total_power = 0;
uint32 max_te = 0;
@@ -143,7 +143,7 @@
* the consist changes.
* @param v First vehicle of the consist.
*/
-static void TrainCargoChanged(Vehicle* v)
+static void TrainCargoChanged(Vehicle *v)
{
uint32 weight = 0;
@@ -181,9 +181,9 @@
* Note: this needs to be called too for 'wagon chains' (in the depot, without an engine)
* @param v First vehicle of the chain.
*/
-void TrainConsistChanged(Vehicle* v)
+void TrainConsistChanged(Vehicle *v)
{
- uint16 max_speed = 0xFFFF;
+ uint16 max_speed = UINT16_MAX;
assert(v->type == VEH_TRAIN);
assert(IsFrontEngine(v) || IsFreeWagon(v));
@@ -306,7 +306,7 @@
/** new acceleration*/
static int GetTrainAcceleration(Vehicle *v, bool mode)
{
- static const int absolute_max_speed = 2000;
+ static const int absolute_max_speed = UINT16_MAX;
int max_speed = absolute_max_speed;
int speed = v->cur_speed * 10 / 16; // km-ish/h -> mp/h
int curvecount[2] = {0, 0};
@@ -453,7 +453,7 @@
}
}
-void UpdateTrainAcceleration(Vehicle* v)
+void UpdateTrainAcceleration(Vehicle *v)
{
assert(IsFrontEngine(v));
@@ -572,7 +572,7 @@
v->u.rail.track = TRACK_BIT_DEPOT;
v->vehstatus = VS_HIDDEN | VS_DEFPAL;
- v->subtype = 0;
+// v->subtype = 0;
SetTrainWagon(v);
if (u != NULL) {
@@ -583,7 +583,7 @@
}
v->cargo_type = rvi->cargo_type;
- v->cargo_subtype = 0;
+// v->cargo_subtype = 0;
v->cargo_cap = rvi->capacity;
v->value = value.GetCost();
// v->day_counter = 0;
@@ -616,9 +616,9 @@
}
/** Move all free vehicles in the depot to the train */
-static void NormalizeTrainVehInDepot(const Vehicle* u)
+static void NormalizeTrainVehInDepot(const Vehicle *u)
{
- const Vehicle* v;
+ const Vehicle *v;
FOR_ALL_VEHICLES(v) {
if (v->type == VEH_TRAIN && IsFreeWagon(v) &&
@@ -631,12 +631,12 @@
}
}
-static CommandCost EstimateTrainCost(EngineID engine, const RailVehicleInfo* rvi)
+static CommandCost EstimateTrainCost(EngineID engine, const RailVehicleInfo *rvi)
{
return CommandCost(EXPENSES_NEW_VEHICLES, GetEngineProperty(engine, 0x17, rvi->base_cost) * (_price.build_railvehicle >> 3) >> 5);
}
-static void AddRearEngineToMultiheadedTrain(Vehicle* v, Vehicle* u, bool building)
+static void AddRearEngineToMultiheadedTrain(Vehicle *v, Vehicle *u, bool building)
{
u = new (u) Train();
u->direction = v->direction;
@@ -647,7 +647,7 @@
u->z_pos = v->z_pos;
u->u.rail.track = TRACK_BIT_DEPOT;
u->vehstatus = v->vehstatus & ~VS_STOPPED;
- u->subtype = 0;
+// u->subtype = 0;
SetMultiheaded(u);
u->spritenum = v->spritenum + 1;
u->cargo_type = v->cargo_type;
@@ -702,8 +702,9 @@
Vehicle **vl = (Vehicle**)alloca(sizeof(*vl) * (num_vehicles + 1));
memset(vl, 0, sizeof(*vl) * (num_vehicles + 1));
- if (!Vehicle::AllocateList(vl, num_vehicles))
+ if (!Vehicle::AllocateList(vl, num_vehicles)) {
return_cmd_error(STR_00E1_TOO_MANY_VEHICLES_IN_GAME);
+ }
Vehicle *v = vl[0];
@@ -724,17 +725,17 @@
v->x_pos = x;
v->y_pos = y;
v->z_pos = GetSlopeZ(x, y);
- v->running_ticks = 0;
+// v->running_ticks = 0;
v->u.rail.track = TRACK_BIT_DEPOT;
v->vehstatus = VS_HIDDEN | VS_STOPPED | VS_DEFPAL;
v->spritenum = rvi->image_index;
v->cargo_type = rvi->cargo_type;
- v->cargo_subtype = 0;
+// v->cargo_subtype = 0;
v->cargo_cap = rvi->capacity;
v->max_speed = rvi->max_speed;
v->value = value.GetCost();
v->last_station_visited = INVALID_STATION;
- v->dest_tile = 0;
+// v->dest_tile = 0;
v->engine_type = p1;
@@ -753,12 +754,12 @@
v->cur_image = 0xAC2;
v->random_bits = VehicleRandomBits();
- v->vehicle_flags = 0;
+// v->vehicle_flags = 0;
if (e->flags & ENGINE_EXCLUSIVE_PREVIEW) SetBit(v->vehicle_flags, VF_BUILT_AS_PROTOTYPE);
v->group_id = DEFAULT_GROUP;
- v->subtype = 0;
+// v->subtype = 0;
SetFrontEngine(v);
SetTrainEngine(v);
@@ -787,8 +788,9 @@
InvalidateWindowData(WC_VEHICLE_DEPOT, v->tile);
RebuildVehicleLists();
InvalidateWindow(WC_COMPANY, v->owner);
- if (IsLocalPlayer())
+ if (IsLocalPlayer()) {
InvalidateAutoreplaceWindow(v->engine_type, v->group_id); // updates the replace Train window
+ }
GetPlayer(_current_player)->num_engines[p1]++;
}
@@ -1171,12 +1173,12 @@
assert(src->orders == NULL);
src->num_orders = 0;
- // Decrease the engines number of the src engine_type
+ /* Decrease the engines number of the src engine_type */
if (!IsDefaultGroupID(src->group_id) && IsValidGroupID(src->group_id)) {
GetGroup(src->group_id)->num_engines[src->engine_type]--;
}
- // If we move an engine to a new line affect it to the DEFAULT_GROUP
+ /* If we move an engine to a new line affect it to the DEFAULT_GROUP */
src->group_id = DEFAULT_GROUP;
}
} else {
@@ -1409,7 +1411,7 @@
delete v;
/* 4 If the second wagon was an engine, update it to front_engine
- * which UnlinkWagon() has changed to TS_Free_Car */
+ * which UnlinkWagon() has changed to TS_Free_Car */
if (switch_engine) SetFrontEngine(first);
/* 5. If the train still exists, update its acceleration, window, etc. */
@@ -1426,10 +1428,10 @@
* Totally braindead cause building a new engine adds all loco-less
* engines to its train anyways */
if (p2 == 2 && HasBit(ori_subtype, TS_FRONT)) {
- Vehicle *tmp;
- for (v = first; v != NULL; v = tmp) {
- tmp = GetNextVehicle(v);
+ for (v = first; v != NULL;) {
+ Vehicle *tmp = GetNextVehicle(v);
DoCommand(v->tile, v->index | INVALID_VEHICLE << 16, 0, DC_EXEC, CMD_MOVE_RAIL_VEHICLE);
+ v = tmp;
}
}
}
@@ -1438,8 +1440,7 @@
/* Start deleting every vehicle after the selected one
* If we encounter a matching rear-engine to a front-engine
* earlier in the chain (before deletion), leave it alone */
- Vehicle *tmp;
- for (; v != NULL; v = tmp) {
+ for (Vehicle *tmp; v != NULL; v = tmp) {
tmp = GetNextVehicle(v);
if (IsMultiheaded(v)) {
@@ -1522,13 +1523,14 @@
EndVehicleMove(v);
}
-static inline void SetLastSpeed(Vehicle* v, int spd)
+static inline void SetLastSpeed(Vehicle *v, int spd)
{
int old = v->u.rail.last_speed;
if (spd != old) {
v->u.rail.last_speed = spd;
- if (_patches.vehicle_speed || (old == 0) != (spd == 0))
+ if (_patches.vehicle_speed || (old == 0) != (spd == 0)) {
InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, VVW_WIDGET_START_STOP_VEH);
+ }
}
}
@@ -1648,14 +1650,14 @@
DiagDirection dir = AxisToDiagDir(GetCrossingRailAxis(tile));
TileIndex tile_from = tile + TileOffsByDiagDir(dir);
- Vehicle *v = (Vehicle *)VehicleFromPos(tile_from, &tile, &TrainApproachingCrossingEnum);
+ Vehicle *v = (Vehicle*)VehicleFromPos(tile_from, &tile, &TrainApproachingCrossingEnum);
if (v != NULL) return v;
dir = ReverseDiagDir(dir);
tile_from = tile + TileOffsByDiagDir(dir);
- return (Vehicle *)VehicleFromPos(tile_from, &tile, &TrainApproachingCrossingEnum);
+ return (Vehicle*)VehicleFromPos(tile_from, &tile, &TrainApproachingCrossingEnum);
}
@@ -1794,8 +1796,7 @@
TileIndex crossing = TrainApproachingCrossingTile(v);
/* count number of vehicles */
- int r = 0; ///< number of vehicles - 1
- for (const Vehicle *u = v; (u = u->Next()) != NULL;) { r++; }
+ int r = CountVehiclesInChain(v) - 1; // number of vehicles - 1
AdvanceWagonsBeforeSwap(v);
@@ -1844,7 +1845,7 @@
if (v->type != VEH_TRAIN || !CheckOwnership(v->owner)) return CMD_ERROR;
- if (p2) {
+ if (p2 != 0) {
/* turn a single unit around */
if (IsMultiheaded(v) || HasBit(EngInfo(v->engine_type)->callbackmask, CBM_VEHICLE_ARTIC_ENGINE)) {
@@ -2049,7 +2050,7 @@
} break;
case VPF_NPF: { /* NPF */
- Vehicle* last = GetLastVehicleInChain(v);
+ const Vehicle *last = GetLastVehicleInChain(v);
Trackdir trackdir = GetVehicleTrackdir(v);
Trackdir trackdir_rev = ReverseTrackdir(GetVehicleTrackdir(last));
@@ -2059,9 +2060,9 @@
/* Found target */
tfdd.tile = ftd.node.tile;
/* Our caller expects a number of tiles, so we just approximate that
- * number by this. It might not be completely what we want, but it will
- * work for now :-) We can possibly change this when the old pathfinder
- * is removed. */
+ * number by this. It might not be completely what we want, but it will
+ * work for now :-) We can possibly change this when the old pathfinder
+ * is removed. */
tfdd.best_length = ftd.best_path_dist / NPF_TILE_LENGTH;
if (NPFGetFlag(&ftd.node, NPF_FLAG_REVERSE)) tfdd.reverse = true;
}
@@ -2084,6 +2085,18 @@
return tfdd;
}
+bool Train::FindClosestDepot(TileIndex *location, DestinationID *destination, bool *reverse)
+{
+ TrainFindDepotData tfdd = FindClosestTrainDepot(this, 0);
+ if (tfdd.best_length == (uint)-1) return false;
+
+ if (location != NULL) *location = tfdd.tile;
+ if (destination != NULL) *destination = GetDepotByTile(tfdd.tile)->index;
+ if (reverse != NULL) *reverse = tfdd.reverse;
+
+ return true;
+}
+
/** Send a train to a depot
* @param tile unused
* @param flags type of operation
@@ -2104,55 +2117,9 @@
Vehicle *v = GetVehicle(p1);
- if (v->type != VEH_TRAIN || !CheckOwnership(v->owner)) return CMD_ERROR;
-
- if (v->vehstatus & VS_CRASHED) return CMD_ERROR;
-
- if (v->current_order.IsType(OT_GOTO_DEPOT)) {
- bool halt_in_depot = HasBit(v->current_order.GetDepotActionType(), OF_HALT_IN_DEPOT);
- if (!!(p2 & DEPOT_SERVICE) == halt_in_depot) {
- /* We called with a different DEPOT_SERVICE setting.
- * Now we change the setting to apply the new one and let the vehicle head for the same depot.
- * Note: the if is (true for requesting service == true for ordered to stop in depot) */
- if (flags & DC_EXEC) {
- v->current_order.SetDepotOrderType(OFB_MANUAL_ORDER);
- v->current_order.SetDepotActionType(halt_in_depot ? OFB_NORMAL_ACTION : OFB_HALT_IN_DEPOT);
- InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, VVW_WIDGET_START_STOP_VEH);
- }
- return CommandCost();
- }
-
- if (p2 & DEPOT_DONT_CANCEL) return CMD_ERROR; // Requested no cancelation of depot orders
- if (flags & DC_EXEC) {
- /* If the orders to 'goto depot' are in the orders list (forced servicing),
- * then skip to the next order; effectively cancelling this forced service */
- if (v->current_order.GetDepotOrderType() & OFB_PART_OF_ORDERS) v->cur_order_index++;
-
- v->current_order.MakeDummy();
- InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, VVW_WIDGET_START_STOP_VEH);
- }
- return CommandCost();
- }
-
- /* check if at a standstill (not stopped only) in a depot
- * the check is down here to make it possible to alter stop/service for trains entering the depot */
- if (IsTileDepotType(v->tile, TRANSPORT_RAIL) && v->cur_speed == 0) return CMD_ERROR;
-
- TrainFindDepotData tfdd = FindClosestTrainDepot(v, 0);
- if (tfdd.best_length == (uint)-1) return_cmd_error(STR_883A_UNABLE_TO_FIND_ROUTE_TO);
-
- if (flags & DC_EXEC) {
- if (v->current_order.IsType(OT_LOADING)) v->LeaveStation();
-
- v->dest_tile = tfdd.tile;
- v->current_order.MakeGoToDepot(GetDepotByTile(tfdd.tile)->index, false);
- if (!(p2 & DEPOT_SERVICE)) v->current_order.SetDepotActionType(OFB_HALT_IN_DEPOT);
- InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, VVW_WIDGET_START_STOP_VEH);
- /* If there is no depot in front, reverse automatically */
- if (tfdd.reverse) DoCommand(v->tile, v->index, 0, DC_EXEC, CMD_REVERSE_TRAIN_DIRECTION);
- }
-
- return CommandCost();
+ if (v->type != VEH_TRAIN) return CMD_ERROR;
+
+ return v->SendToDepot(flags, (DepotCommand)(p2 & DEPOT_COMMAND_MASK));
}
@@ -2165,14 +2132,15 @@
1, 1, 1, 0, -1, -1, -1, 0
};
-static void HandleLocomotiveSmokeCloud(const Vehicle* v)
+static void HandleLocomotiveSmokeCloud(const Vehicle *v)
{
bool sound = false;
- if (v->vehstatus & VS_TRAIN_SLOWING || v->load_unload_time_rem != 0 || v->cur_speed < 2)
+ if (v->vehstatus & VS_TRAIN_SLOWING || v->load_unload_time_rem != 0 || v->cur_speed < 2) {
return;
-
- const Vehicle* u = v;
+ }
+
+ const Vehicle *u = v;
do {
const RailVehicleInfo *rvi = RailVehInfo(v->engine_type);
@@ -2209,29 +2177,32 @@
}
switch (effect_type) {
- case 0:
- /* steam smoke. */
- if (GB(v->tick_counter, 0, 4) == 0) {
- CreateEffectVehicleRel(v, x, y, 10, EV_STEAM_SMOKE);
- sound = true;
- }
- break;
-
- case 1:
- /* diesel smoke */
- if (u->cur_speed <= 40 && Chance16(15, 128)) {
- CreateEffectVehicleRel(v, 0, 0, 10, EV_DIESEL_SMOKE);
- sound = true;
- }
- break;
-
- case 2:
- /* blue spark */
- if (GB(v->tick_counter, 0, 2) == 0 && Chance16(1, 45)) {
- CreateEffectVehicleRel(v, 0, 0, 10, EV_ELECTRIC_SPARK);
- sound = true;
- }
- break;
+ case 0:
+ /* steam smoke. */
+ if (GB(v->tick_counter, 0, 4) == 0) {
+ CreateEffectVehicleRel(v, x, y, 10, EV_STEAM_SMOKE);
+ sound = true;
+ }
+ break;
+
+ case 1:
+ /* diesel smoke */
+ if (u->cur_speed <= 40 && Chance16(15, 128)) {
+ CreateEffectVehicleRel(v, 0, 0, 10, EV_DIESEL_SMOKE);
+ sound = true;
+ }
+ break;
+
+ case 2:
+ /* blue spark */
+ if (GB(v->tick_counter, 0, 2) == 0 && Chance16(1, 45)) {
+ CreateEffectVehicleRel(v, 0, 0, 10, EV_ELECTRIC_SPARK);
+ sound = true;
+ }
+ break;
+
+ default:
+ break;
}
} while ((v = v->Next()) != NULL);
@@ -2302,10 +2273,10 @@
return false;
}
-/* Check for station tiles */
+/** Check for station tiles */
struct TrainTrackFollowerData {
TileIndex dest_coords;
- StationID station_index; // station index we're heading for
+ StationID station_index; ///< station index we're heading for
uint best_bird_dist;
uint best_track_dist;
TrackdirByte best_track;
@@ -2341,7 +2312,7 @@
}
}
-static void FillWithStationData(TrainTrackFollowerData* fd, const Vehicle* v)
+static void FillWithStationData(TrainTrackFollowerData *fd, const Vehicle *v)
{
fd->dest_coords = v->dest_tile;
fd->station_index = v->current_order.IsType(OT_GOTO_STATION) ? v->current_order.GetDestination() : INVALID_STATION;
@@ -2368,7 +2339,7 @@
static const byte _pick_track_table[6] = {1, 3, 2, 2, 0, 0};
/* choose a track */
-static Track ChooseTrainTrack(Vehicle* v, TileIndex tile, DiagDirection enterdir, TrackBits tracks)
+static Track ChooseTrainTrack(Vehicle *v, TileIndex tile, DiagDirection enterdir, TrackBits tracks)
{
Track best_track;
/* pathfinders are able to tell that route was only 'guessed' */
@@ -2490,8 +2461,9 @@
{
if (_opt.diff.line_reverse_mode != 0 ||
v->u.rail.track == TRACK_BIT_DEPOT || v->u.rail.track == TRACK_BIT_WORMHOLE ||
- !(v->direction & 1))
+ !(v->direction & 1)) {
return false;
+ }
TrainTrackFollowerData fd;
FillWithStationData(&fd, v);
@@ -2501,14 +2473,14 @@
assert(v->u.rail.track);
switch (_patches.pathfinder_for_trains) {
- case VPF_YAPF: { /* YAPF */
+ case VPF_YAPF: /* YAPF */
reverse_best = YapfCheckReverseTrain(v);
- } break;
+ break;
case VPF_NPF: { /* NPF */
NPFFindStationOrTileData fstd;
NPFFoundTargetData ftd;
- Vehicle* last = GetLastVehicleInChain(v);
+ Vehicle *last = GetLastVehicleInChain(v);
NPFFillWithOrderData(&fstd, v);
@@ -2756,7 +2728,7 @@
};
/** Modify the speed of the vehicle due to a turn */
-static inline void AffectSpeedByDirChange(Vehicle* v, Direction new_dir)
+static inline void AffectSpeedByDirChange(Vehicle *v, Direction new_dir)
{
if (_patches.realistic_acceleration) return;
@@ -2820,7 +2792,7 @@
if (crossing != INVALID_TILE) UpdateLevelCrossing(crossing);
}
-static uint CountPassengersInTrain(const Vehicle* v)
+static uint CountPassengersInTrain(const Vehicle *v)
{
uint num = 0;
BEGIN_ENUM_WAGONS(v)
@@ -2830,13 +2802,13 @@
}
struct TrainCollideChecker {
- Vehicle *v;
- uint num;
+ Vehicle *v; ///< vehicle we are testing for collision
+ uint num; ///< number of dead if train collided
};
static void *FindTrainCollideEnum(Vehicle *v, void *data)
{
- TrainCollideChecker* tcc = (TrainCollideChecker*)data;
+ TrainCollideChecker *tcc = (TrainCollideChecker*)data;
if (v->type != VEH_TRAIN) return NULL;
@@ -3194,8 +3166,8 @@
v->UpdateDeltaXY(v->direction);
v->cur_image = v->GetImage(v->direction);
/* Refrain from updating the z position of the vehicle when on
- a bridge, because AfterSetTrainPos will put the vehicle under
- the bridge in that case */
+ * a bridge, because AfterSetTrainPos will put the vehicle under
+ * the bridge in that case */
if (v->u.rail.track != TRACK_BIT_WORMHOLE) AfterSetTrainPos(v, false);
}
} while ((v = v->Next()) != NULL);
@@ -3535,11 +3507,11 @@
}
}
-#define MAX_ACCEPTABLE_DEPOT_DIST 16
-
static void CheckIfTrainNeedsService(Vehicle *v)
{
- if (_patches.servint_trains == 0 || !VehicleNeedsService(v)) return;
+ static const uint MAX_ACCEPTABLE_DEPOT_DIST = 16;
+
+ if (_patches.servint_trains == 0 || !v->NeedsAutomaticServicing()) return;
if (v->IsInDepot()) {
VehicleServiceInDepot(v);
return;
@@ -3558,7 +3530,7 @@
return;
}
- const Depot* depot = GetDepotByTile(tfdd.tile);
+ const Depot *depot = GetDepotByTile(tfdd.tile);
if (v->current_order.IsType(OT_GOTO_DEPOT) &&
v->current_order.GetDestination() != depot->index &&
@@ -3566,7 +3538,7 @@
return;
}
- v->current_order.MakeGoToDepot(depot->index, false);
+ v->current_order.MakeGoToDepot(depot->index, ODTFB_SERVICE);
v->dest_tile = tfdd.tile;
InvalidateWindowWidget(WC_VEHICLE_VIEW, v->index, VVW_WIDGET_START_STOP_VEH);
}
--- a/src/train_gui.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/train_gui.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -24,12 +24,11 @@
void CcBuildWagon(bool success, TileIndex tile, uint32 p1, uint32 p2)
{
- Vehicle *v, *found;
-
if (!success) return;
/* find a locomotive in the depot. */
- found = NULL;
+ Vehicle *found = NULL;
+ Vehicle *v;
FOR_ALL_VEHICLES(v) {
if (v->type == VEH_TRAIN && IsFrontEngine(v) &&
v->tile == tile &&
@@ -50,11 +49,9 @@
void CcBuildLoco(bool success, TileIndex tile, uint32 p1, uint32 p2)
{
- const Vehicle *v;
-
if (!success) return;
- v = GetVehicle(_new_vehicle_id);
+ const Vehicle *v = GetVehicle(_new_vehicle_id);
if (tile == _backup_orders_tile) {
_backup_orders_tile = 0;
RestoreVehicleOrders(v);
@@ -197,8 +194,6 @@
for (;;) {
if (--vscroll_pos < 0 && vscroll_pos >= -vscroll_cap) {
int dx = 0;
- int px;
- int py;
u = v;
do {
@@ -208,8 +203,8 @@
u = u->Next();
} while (u != NULL && IsArticulatedPart(u) && u->cargo_cap == 0);
- px = x + WagonLengthToPixels(dx) + 2;
- py = y + 2;
+ int px = x + WagonLengthToPixels(dx) + 2;
+ int py = y + 2;
switch (det_tab) {
default: NOT_REACHED();
case 0: TrainDetailsCargoTab( v, px, py); break;
--- a/src/tunnelbridge_cmd.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/tunnelbridge_cmd.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -791,20 +791,28 @@
/* The sprites under the vehicles are drawn as SpriteCombine. StartSpriteCombine() has already been called
* The bounding boxes here are the same as for bridge front/roof */
if (head || !IsInvisibilitySet(TO_BRIDGES)) {
- AddSortableSpriteToDraw(SPR_TRAMWAY_BASE + tram_offsets[overlay][offset], PAL_NONE, x, y, size_x[offset], size_y[offset], 0x28, z, !head && IsTransparencySet(TO_BRIDGES));
+ AddSortableSpriteToDraw(SPR_TRAMWAY_BASE + tram_offsets[overlay][offset], PAL_NONE,
+ x, y, size_x[offset], size_y[offset], 0x28, z,
+ !head && IsTransparencySet(TO_BRIDGES));
}
/* Do not draw catenary if it is set invisible */
- if (IsInvisibilitySet(TO_CATENARY)) return;
-
- AddSortableSpriteToDraw(SPR_TRAMWAY_BASE + back_offsets[offset], PAL_NONE, x, y, size_x[offset], size_y[offset], 0x28, z, IsTransparencySet(TO_CATENARY));
+ if (!IsInvisibilitySet(TO_CATENARY)) {
+ AddSortableSpriteToDraw(SPR_TRAMWAY_BASE + back_offsets[offset], PAL_NONE,
+ x, y, size_x[offset], size_y[offset], 0x28, z,
+ IsTransparencySet(TO_CATENARY));
+ }
/* Start a new SpriteCombine for the front part */
EndSpriteCombine();
StartSpriteCombine();
/* For sloped sprites the bounding box needs to be higher, as the pylons stop on a higher point */
- AddSortableSpriteToDraw(SPR_TRAMWAY_BASE + front_offsets[offset], PAL_NONE, x, y, size_x[offset] + front_bb_offset_x[offset], size_y[offset] + front_bb_offset_y[offset], 0x28, z, IsTransparencySet(TO_CATENARY), front_bb_offset_x[offset], front_bb_offset_y[offset]);
+ if (!IsInvisibilitySet(TO_CATENARY)) {
+ AddSortableSpriteToDraw(SPR_TRAMWAY_BASE + front_offsets[offset], PAL_NONE,
+ x, y, size_x[offset] + front_bb_offset_x[offset], size_y[offset] + front_bb_offset_y[offset], 0x28, z,
+ IsTransparencySet(TO_CATENARY), front_bb_offset_x[offset], front_bb_offset_y[offset]);
+ }
}
/**
--- a/src/vehicle.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/vehicle.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -46,6 +46,7 @@
#include "autoreplace_gui.h"
#include "string_func.h"
#include "settings_type.h"
+#include "oldpool_func.h"
#include "table/sprites.h"
#include "table/strings.h"
@@ -117,22 +118,27 @@
InvalidateWindow(WC_VEHICLE_DETAILS, v->index); // ensure that last service date and reliability are updated
}
-bool VehicleNeedsService(const Vehicle *v)
+bool Vehicle::NeedsServicing() const
{
- if (v->vehstatus & (VS_STOPPED | VS_CRASHED)) return false;
- if (!v->current_order.IsType(OT_GOTO_DEPOT) || !(v->current_order.GetDepotOrderType() & OFB_PART_OF_ORDERS)) { // Don't interfere with a depot visit by the order list
- if (_patches.gotodepot && VehicleHasDepotOrders(v)) return false;
- if (v->current_order.IsType(OT_LOADING)) return false;
- if (v->current_order.IsType(OT_GOTO_DEPOT) && v->current_order.GetDepotActionType() & OFB_HALT_IN_DEPOT) return false;
- }
+ if (this->vehstatus & (VS_STOPPED | VS_CRASHED)) return false;
if (_patches.no_servicing_if_no_breakdowns && _opt.diff.vehicle_breakdowns == 0) {
- return EngineHasReplacementForPlayer(GetPlayer(v->owner), v->engine_type, v->group_id); /* Vehicles set for autoreplacing needs to go to a depot even if breakdowns are turned off */
+ /* Vehicles set for autoreplacing needs to go to a depot even if breakdowns are turned off.
+ * Note: If servicing is enabled, we postpone replacement till next service. */
+ return EngineHasReplacementForPlayer(GetPlayer(this->owner), this->engine_type, this->group_id);
}
return _patches.servint_ispercent ?
- (v->reliability < GetEngine(v->engine_type)->reliability * (100 - v->service_interval) / 100) :
- (v->date_of_last_service + v->service_interval < _date);
+ (this->reliability < GetEngine(this->engine_type)->reliability * (100 - this->service_interval) / 100) :
+ (this->date_of_last_service + this->service_interval < _date);
+}
+
+bool Vehicle::NeedsAutomaticServicing() const
+{
+ if (_patches.gotodepot && VehicleHasDepotOrders(this)) return false;
+ if (this->current_order.IsType(OT_LOADING)) return false;
+ if (this->current_order.IsType(OT_GOTO_DEPOT) && this->current_order.GetDepotActionType() & ODATFB_HALT) return false;
+ return NeedsServicing();
}
StringID VehicleInTheWayErrMsg(const Vehicle* v)
@@ -216,13 +222,13 @@
}
-static void UpdateVehiclePosHash(Vehicle* v, int x, int y);
+static void UpdateVehiclePosHash(Vehicle *v, int x, int y);
void VehiclePositionChanged(Vehicle *v)
{
int img = v->cur_image;
Point pt = RemapCoords(v->x_pos + v->x_offs, v->y_pos + v->y_offs, v->z_pos);
- const Sprite* spr = GetSprite(img);
+ const Sprite *spr = GetSprite(img);
pt.x += spr->x_offs;
pt.y += spr->y_offs;
@@ -456,7 +462,7 @@
static Vehicle *_vehicle_position_hash[0x1000];
-static void UpdateVehiclePosHash(Vehicle* v, int x, int y)
+static void UpdateVehiclePosHash(Vehicle *v, int x, int y)
{
UpdateNewVehiclePosHash(v, x == INVALID_COORD);
@@ -631,7 +637,7 @@
{
/* We need to set v->leave_depot_instantly as we have no control of it's contents at this time.
* Vehicle should stop in the depot if it was in 'stopping' state - train intered depot while slowing down. */
- if ((HasBit(v->current_order.GetDepotActionType(), OF_HALT_IN_DEPOT) && !HasBit(v->current_order.GetDepotOrderType(), OF_PART_OF_ORDERS) && v->current_order.IsType(OT_GOTO_DEPOT)) ||
+ if (((v->current_order.GetDepotActionType() & ODATFB_HALT) && !(v->current_order.GetDepotOrderType() & ODTFB_PART_OF_ORDERS) && v->current_order.IsType(OT_GOTO_DEPOT)) ||
(v->vehstatus & VS_STOPPED)) {
/* we keep the vehicle in the depot since the user ordered it to stay */
v->leave_depot_instantly = false;
@@ -758,13 +764,9 @@
static void DoDrawVehicle(const Vehicle *v)
{
SpriteID image = v->cur_image;
- SpriteID pal;
-
- if (v->vehstatus & VS_DEFPAL) {
- pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v);
- } else {
- pal = PAL_NONE;
- }
+ SpriteID pal = PAL_NONE;
+
+ if (v->vehstatus & VS_DEFPAL) pal = (v->vehstatus & VS_CRASHED) ? PALETTE_CRASH : GetVehiclePalette(v);
AddSortableSpriteToDraw(image, pal, v->x_pos + v->x_offs, v->y_pos + v->y_offs,
v->x_extent, v->y_extent, v->z_extent, v->z_pos, (v->vehstatus & VS_SHADOW) != 0);
@@ -1292,11 +1294,9 @@
* multiplayer!! (that is: in ToyLand)
*/
uint et;
- const BubbleMovement *b;
v->progress++;
- if ((v->progress & 3) != 0)
- return;
+ if ((v->progress & 3) != 0) return;
BeginVehicleMove(v);
@@ -1317,7 +1317,7 @@
et = v->engine_type + 1;
}
- b = &_bubble_movement[v->spritenum - 1][et];
+ const BubbleMovement *b = &_bubble_movement[v->spritenum - 1][et];
if (b->y == 4 && b->x == 0) {
EndVehicleMove(v);
@@ -1388,9 +1388,7 @@
Vehicle *CreateEffectVehicle(int x, int y, int z, EffectVehicle type)
{
- Vehicle *v;
-
- v = new SpecialVehicle();
+ Vehicle *v = new SpecialVehicle();
if (v != NULL) {
v->subtype = type;
v->x_pos = x;
@@ -1431,9 +1429,7 @@
Vehicle *found = NULL, *v;
uint dist, best_dist = (uint)-1;
- if ( (uint)(x -= vp->left) >= (uint)vp->width ||
- (uint)(y -= vp->top) >= (uint)vp->height)
- return NULL;
+ if ((uint)(x -= vp->left) >= (uint)vp->width || (uint)(y -= vp->top) >= (uint)vp->height) return NULL;
x = ScaleByZoom(x, vp->zoom) + vp->virtual_left;
y = ScaleByZoom(y, vp->zoom) + vp->virtual_top;
@@ -1444,8 +1440,8 @@
y >= v->top_coord && y <= v->bottom_coord) {
dist = max(
- abs( ((v->left_coord + v->right_coord)>>1) - x ),
- abs( ((v->top_coord + v->bottom_coord)>>1) - y )
+ abs(((v->left_coord + v->right_coord) >> 1) - x),
+ abs(((v->top_coord + v->bottom_coord) >> 1) - y)
);
if (dist < best_dist) {
@@ -1488,8 +1484,6 @@
void CheckVehicleBreakdown(Vehicle *v)
{
int rel, rel_old;
- uint32 r;
- int chance;
/* decrease reliability */
v->reliability = rel = max((rel_old = v->reliability) - v->reliability_spd_dec, 0);
@@ -1501,10 +1495,10 @@
return;
}
- r = Random();
+ uint32 r = Random();
/* increase chance of failure */
- chance = v->breakdown_chance + 1;
+ int chance = v->breakdown_chance + 1;
if (Chance16I(1,25,r)) chance += 25;
v->breakdown_chance = min(255, chance);
@@ -1579,7 +1573,6 @@
uint16 engine_list_length = 0;
uint16 engine_count = 0;
CommandCost return_value = CMD_ERROR;
- uint i;
uint stop_command;
VehicleType vehicle_type = (VehicleType)GB(p2, 0, 5);
bool start_stop = HasBit(p2, 5);
@@ -1603,9 +1596,8 @@
BuildDepotVehicleList(vehicle_type, tile, &vl, &engine_list_length, &engine_count, NULL, NULL, NULL);
}
- for (i = 0; i < engine_count; i++) {
+ for (uint i = 0; i < engine_count; i++) {
const Vehicle *v = vl[i];
- CommandCost ret;
if (!!(v->vehstatus & VS_STOPPED) != start_stop) continue;
@@ -1617,7 +1609,7 @@
}
}
- ret = DoCommand(tile, v->index, 0, flags, stop_command);
+ CommandCost ret = DoCommand(tile, v->index, 0, flags, stop_command);
if (CmdSucceeded(ret)) {
return_value = CommandCost();
@@ -1647,7 +1639,7 @@
uint16 wagon_count = 0;
CommandCost cost(EXPENSES_NEW_VEHICLES);
- uint i, sell_command, total_number_vehicles;
+ uint sell_command, total_number_vehicles;
VehicleType vehicle_type = (VehicleType)GB(p1, 0, 8);
switch (vehicle_type) {
@@ -1663,9 +1655,8 @@
&wagons, &wagon_list_length, &wagon_count);
total_number_vehicles = engine_count + wagon_count;
- for (i = 0; i < total_number_vehicles; i++) {
+ for (uint i = 0; i < total_number_vehicles; i++) {
const Vehicle *v;
- CommandCost ret;
if (i < engine_count) {
v = engines[i];
@@ -1673,7 +1664,7 @@
v = wagons[i - engine_count];
}
- ret = DoCommand(tile, v->index, 1, flags, sell_command);
+ CommandCost ret = DoCommand(tile, v->index, 1, flags, sell_command);
if (CmdSucceeded(ret)) cost.AddCost(ret);
}
@@ -1698,7 +1689,6 @@
Vehicle **vl = NULL;
uint16 engine_list_length = 0;
uint16 engine_count = 0;
- uint i;
CommandCost cost = CommandCost(EXPENSES_NEW_VEHICLES);
VehicleType vehicle_type = (VehicleType)GB(p1, 0, 8);
bool all_or_nothing = HasBit(p2, 0);
@@ -1708,11 +1698,9 @@
/* Get the list of vehicles in the depot */
BuildDepotVehicleList(vehicle_type, tile, &vl, &engine_list_length, &engine_count, &vl, &engine_list_length, &engine_count);
-
- for (i = 0; i < engine_count; i++) {
+ for (uint i = 0; i < engine_count; i++) {
Vehicle *v = vl[i];
bool stopped = !(v->vehstatus & VS_STOPPED);
- CommandCost ret;
/* Ensure that the vehicle completely in the depot */
if (!v->IsInDepot()) continue;
@@ -1721,7 +1709,7 @@
v->vehstatus |= VS_STOPPED; // Stop the vehicle
v->leave_depot_instantly = true;
}
- ret = MaybeReplaceVehicle(v, !(flags & DC_EXEC), false);
+ CommandCost ret = MaybeReplaceVehicle(v, !(flags & DC_EXEC), false);
if (CmdSucceeded(ret)) {
cost.AddCost(ret);
@@ -1758,18 +1746,16 @@
*/
CommandCost CmdCloneVehicle(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
{
- Vehicle *v_front, *v;
- Vehicle *w_front, *w, *w_rear;
- CommandCost cost, total_cost(EXPENSES_NEW_VEHICLES);
+ CommandCost total_cost(EXPENSES_NEW_VEHICLES);
uint32 build_argument = 2;
if (!IsValidVehicleID(p1)) return CMD_ERROR;
- v = GetVehicle(p1);
- v_front = v;
- w = NULL;
- w_front = NULL;
- w_rear = NULL;
-
+
+ Vehicle *v = GetVehicle(p1);
+ Vehicle *v_front = v;
+ Vehicle *w = NULL;
+ Vehicle *w_front = NULL;
+ Vehicle *w_rear = NULL;
/*
* v_front is the front engine in the original vehicle
@@ -1803,7 +1789,7 @@
continue;
}
- cost = DoCommand(tile, v->engine_type, build_argument, flags, GetCmdBuildVeh(v));
+ CommandCost cost = DoCommand(tile, v->engine_type, build_argument, flags, GetCmdBuildVeh(v));
build_argument = 3; // ensure that we only assign a number to the first engine
if (CmdFailed(cost)) return cost;
@@ -1864,7 +1850,7 @@
assert(w != NULL);
if (w->cargo_type != v->cargo_type || w->cargo_subtype != v->cargo_subtype) {
- cost = DoCommand(0, w->index, v->cargo_type | (v->cargo_subtype << 8) | 1U << 16 , flags, GetCmdRefitVeh(v));
+ CommandCost cost = DoCommand(0, w->index, v->cargo_type | (v->cargo_subtype << 8) | 1U << 16 , flags, GetCmdRefitVeh(v));
if (CmdSucceeded(cost)) total_cost.AddCost(cost);
}
@@ -2006,21 +1992,21 @@
}
/**
-* @param sort_list list to store the list in. Either NULL or the length length_of_array tells
-* @param length_of_array informs the length allocated for sort_list. This is not the same as the number of vehicles in the list. Needs to be 0 when sort_list is NULL
-* @param type type of vehicle
-* @param owner PlayerID of owner to generate a list for
-* @param index This parameter has different meanings depending on window_type
- <ul>
- <li>VLW_STATION_LIST: index of station to generate a list for</li>
- <li>VLW_SHARED_ORDERS: index of order to generate a list for<li>
- <li>VLW_STANDARD: not used<li>
- <li>VLW_DEPOT_LIST: TileIndex of the depot/hangar to make the list for</li>
- <li>VLW_GROUP_LIST: index of group to generate a list for</li>
- </ul>
-* @param window_type tells what kind of window the list is for. Use the VLW flags in vehicle_gui.h
-* @return the number of vehicles added to the list
-*/
+ * @param sort_list list to store the list in. Either NULL or the length length_of_array tells
+ * @param length_of_array informs the length allocated for sort_list. This is not the same as the number of vehicles in the list. Needs to be 0 when sort_list is NULL
+ * @param type type of vehicle
+ * @param owner PlayerID of owner to generate a list for
+ * @param index This parameter has different meanings depending on window_type
+ * <ul>
+ * <li>VLW_STATION_LIST: index of station to generate a list for</li>
+ * <li>VLW_SHARED_ORDERS: index of order to generate a list for<li>
+ * <li>VLW_STANDARD: not used<li>
+ * <li>VLW_DEPOT_LIST: TileIndex of the depot/hangar to make the list for</li>
+ * <li>VLW_GROUP_LIST: index of group to generate a list for</li>
+ * </ul>
+ * @param window_type tells what kind of window the list is for. Use the VLW flags in vehicle_gui.h
+ * @return the number of vehicles added to the list
+ */
uint GenerateVehicleSortList(const Vehicle ***sort_list, uint16 *length_of_array, VehicleType type, PlayerID owner, uint32 index, uint16 window_type)
{
uint n = 0;
@@ -2064,7 +2050,7 @@
FOR_ALL_VEHICLES(v) {
if (v->type == type && v->owner == owner && v->IsPrimaryVehicle()) {
/* TODO find a better estimate on the total number of vehicles for current player */
- if (n == *length_of_array) ExtendVehicleListSize(sort_list, length_of_array, GetNumVehicles()/4);
+ if (n == *length_of_array) ExtendVehicleListSize(sort_list, length_of_array, GetNumVehicles() / 4);
(*sort_list)[n++] = v;
}
}
@@ -2114,7 +2100,8 @@
return n;
}
-/** send all vehicles of type to depots
+/**
+ * Send all vehicles of type to depots
* @param type type of vehicle
* @param flags the flags used for DoCommand()
* @param service should the vehicles only get service in the depots
@@ -2125,13 +2112,12 @@
CommandCost SendAllVehiclesToDepot(VehicleType type, uint32 flags, bool service, PlayerID owner, uint16 vlw_flag, uint32 id)
{
const Vehicle **sort_list = NULL;
- uint n, i;
uint16 array_length = 0;
- n = GenerateVehicleSortList(&sort_list, &array_length, type, owner, id, vlw_flag);
+ uint n = GenerateVehicleSortList(&sort_list, &array_length, type, owner, id, vlw_flag);
/* Send all the vehicles to a depot */
- for (i = 0; i < n; i++) {
+ for (uint i = 0; i < n; i++) {
const Vehicle *v = sort_list[i];
CommandCost ret = DoCommand(v->tile, v->index, (service ? 1 : 0) | DEPOT_DONT_CANCEL, flags, GetCmdSendToDepot(type));
@@ -2163,25 +2149,29 @@
int unloading = 0;
bool loading = false;
- assert(color != NULL);
-
const Vehicle *u = v;
- const Station *st = GetStation(v->last_station_visited);
+ const Station *st = v->last_station_visited != INVALID_STATION ? GetStation(v->last_station_visited) : NULL;
/* Count up max and used */
for (; v != NULL; v = v->Next()) {
count += v->cargo.Count();
max += v->cargo_cap;
- if (v->cargo_cap != 0) {
+ if (v->cargo_cap != 0 && color != NULL) {
unloading += HasBit(v->vehicle_flags, VF_CARGO_UNLOADING) ? 1 : 0;
- loading |= !HasBit(u->current_order.GetUnloadType(), OF_UNLOAD) && st->goods[v->cargo_type].days_since_pickup != 255;
+ loading |= !(u->current_order.GetUnloadType() & OUFB_UNLOAD) && st->goods[v->cargo_type].days_since_pickup != 255;
cars++;
}
}
- if (unloading == 0 && loading) *color = STR_PERCENT_UP;
- else if (cars == unloading || !loading) *color = STR_PERCENT_DOWN;
- else *color = STR_PERCENT_UP_DOWN;
+ if (color != NULL) {
+ if (unloading == 0 && loading) {
+ *color = STR_PERCENT_UP;
+ } else if (cars == unloading || !loading) {
+ *color = STR_PERCENT_DOWN;
+ } else {
+ *color = STR_PERCENT_UP_DOWN;
+ }
+ }
/* Train without capacity */
if (max == 0) return 100;
@@ -2236,18 +2226,14 @@
TriggerVehicle(v, VEHICLE_TRIGGER_DEPOT);
if (v->current_order.IsType(OT_GOTO_DEPOT)) {
- Order t;
-
InvalidateWindow(WC_VEHICLE_VIEW, v->index);
- t = v->current_order;
+ Order t = v->current_order;
v->current_order.MakeDummy();
if (t.IsRefit()) {
- CommandCost cost;
-
_current_player = v->owner;
- cost = DoCommand(v->tile, v->index, t.GetRefitCargo() | t.GetRefitSubtype() << 8, DC_EXEC, GetCmdRefitVeh(v));
+ CommandCost cost = DoCommand(v->tile, v->index, t.GetRefitCargo() | t.GetRefitSubtype() << 8, DC_EXEC, GetCmdRefitVeh(v));
if (CmdFailed(cost)) {
v->leave_depot_instantly = false; // We ensure that the vehicle stays in the depot
@@ -2262,11 +2248,11 @@
}
}
- if (HasBit(t.GetDepotOrderType(), OF_PART_OF_ORDERS)) {
+ if (t.GetDepotOrderType() & ODTFB_PART_OF_ORDERS) {
/* Part of orders */
UpdateVehicleTimetable(v, true);
v->cur_order_index++;
- } else if (HasBit(t.GetDepotActionType(), OF_HALT_IN_DEPOT)) {
+ } else if (t.GetDepotActionType() & ODATFB_HALT) {
/* Force depot visit */
v->vehstatus |= VS_STOPPED;
if (v->owner == _local_player) {
@@ -2329,11 +2315,9 @@
*/
CommandCost CmdNameVehicle(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
{
- Vehicle *v;
-
if (!IsValidVehicleID(p1) || StrEmpty(_cmd_text)) return CMD_ERROR;
- v = GetVehicle(p1);
+ Vehicle *v = GetVehicle(p1);
if (!CheckOwnership(v->owner)) return CMD_ERROR;
@@ -2358,12 +2342,11 @@
*/
CommandCost CmdChangeServiceInt(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
{
- Vehicle* v;
uint16 serv_int = GetServiceIntervalClamped(p2); /* Double check the service interval from the user-input */
if (serv_int != p2 || !IsValidVehicleID(p1)) return CMD_ERROR;
- v = GetVehicle(p1);
+ Vehicle *v = GetVehicle(p1);
if (!CheckOwnership(v->owner)) return CMD_ERROR;
@@ -2446,15 +2429,13 @@
DIR_E , DIR_SE, DIR_S
};
-Direction GetDirectionTowards(const Vehicle* v, int x, int y)
+Direction GetDirectionTowards(const Vehicle *v, int x, int y)
{
- Direction dir;
- DirDiff dirdiff;
int i = 0;
if (y >= v->y_pos) {
- if (y != v->y_pos) i+=3;
- i+=3;
+ if (y != v->y_pos) i += 3;
+ i += 3;
}
if (x >= v->x_pos) {
@@ -2462,14 +2443,14 @@
i++;
}
- dir = v->direction;
-
- dirdiff = DirDifference(_new_direction_table[i], dir);
+ Direction dir = v->direction;
+
+ DirDiff dirdiff = DirDifference(_new_direction_table[i], dir);
if (dirdiff == DIRDIFF_SAME) return dir;
return ChangeDir(dir, dirdiff > DIRDIFF_REVERSE ? DIRDIFF_45LEFT : DIRDIFF_45RIGHT);
}
-Trackdir GetVehicleTrackdir(const Vehicle* v)
+Trackdir GetVehicleTrackdir(const Vehicle *v)
{
if (v->vehstatus & VS_CRASHED) return INVALID_TRACKDIR;
@@ -2521,7 +2502,7 @@
UnitID GetFreeUnitNumber(VehicleType type)
{
- UnitID unit, max = 0;
+ UnitID max = 0;
const Vehicle *u;
static bool *cache = NULL;
static UnitID gmax = 0;
@@ -2558,7 +2539,8 @@
}
/* Find the first unused unit number */
- for (unit = 1; unit <= max; unit++) {
+ UnitID unit = 1;
+ for (; unit <= max; unit++) {
if (!cache[unit]) break;
}
@@ -2592,7 +2574,6 @@
/* We can build vehicle infrastructure when we may build the vehicle type */
if (max > 0) {
-
/* Can we actually build the vehicle type? */
EngineID e;
FOR_ALL_ENGINEIDS_OF_TYPE(e, type) {
@@ -3097,7 +3078,7 @@
/* Convert the current_order.type (which is a mix of type and flags, because
* in those versions, they both were 4 bits big) to type and flags */
v->current_order.flags = GB(v->current_order.type, 4, 4);
- v->current_order.type.m_val &= 0x0F;
+ v->current_order.type &= 0x0F;
}
/* Advanced vehicle lists got added */
@@ -3132,17 +3113,17 @@
if (this->current_order.IsType(OT_GOTO_STATION) &&
this->current_order.GetDestination() == this->last_station_visited) {
+ current_order.MakeLoading(true);
+ UpdateVehicleTimetable(this, true);
+
/* Furthermore add the Non Stop flag to mark that this station
* is the actual destination of the vehicle, which is (for example)
* necessary to be known for HandleTrainLoading to determine
* whether the train is lost or not; not marking a train lost
* that arrives at random stations is bad. */
- this->current_order.SetNonStopType(OFB_NON_STOP);
-
- current_order.MakeLoading(true);
- UpdateVehicleTimetable(this, true);
+ this->current_order.SetNonStopType(ONSF_NO_STOP_AT_ANY_STATION);
+
} else {
- this->current_order.SetNonStopType(OFB_NO_NON_STOP);
current_order.MakeLoading(false);
}
@@ -3164,7 +3145,7 @@
assert(current_order.IsType(OT_LOADING));
/* Only update the timetable if the vehicle was supposed to stop here. */
- if (current_order.GetNonStopType() != OFB_NO_NON_STOP) UpdateVehicleTimetable(this, false);
+ if (current_order.GetNonStopType() != ONSF_STOP_EVERYWHERE) UpdateVehicleTimetable(this, false);
current_order.MakeLeaveStation();
GetStation(this->last_station_visited)->loading_vehicles.remove(this);
@@ -3186,11 +3167,11 @@
this->PlayLeaveStationSound();
- Order b = this->current_order;
+ bool at_destination_station = this->current_order.GetNonStopType() != ONSF_STOP_EVERYWHERE;
this->LeaveStation();
/* If this was not the final order, don't remove it from the list. */
- if (!(b.GetNonStopType() & OFB_NON_STOP)) return;
+ if (!at_destination_station) return;
break;
}
@@ -3203,6 +3184,70 @@
InvalidateVehicleOrder(this);
}
+CommandCost Vehicle::SendToDepot(uint32 flags, DepotCommand command)
+{
+ if (!CheckOwnership(this->owner)) return CMD_ERROR;
+ if (this->vehstatus & VS_CRASHED) return CMD_ERROR;
+ if (this->IsInDepot()) return CMD_ERROR;
+
+ if (this->current_order.IsType(OT_GOTO_DEPOT)) {
+ bool halt_in_depot = this->current_order.GetDepotActionType() & ODATFB_HALT;
+ if (!!(command & DEPOT_SERVICE) == halt_in_depot) {
+ /* We called with a different DEPOT_SERVICE setting.
+ * Now we change the setting to apply the new one and let the vehicle head for the same depot.
+ * Note: the if is (true for requesting service == true for ordered to stop in depot) */
+ if (flags & DC_EXEC) {
+ this->current_order.SetDepotOrderType(ODTF_MANUAL);
+ this->current_order.SetDepotActionType(halt_in_depot ? ODATF_SERVICE_ONLY : ODATFB_HALT);
+ InvalidateWindowWidget(WC_VEHICLE_VIEW, this->index, VVW_WIDGET_START_STOP_VEH);
+ }
+ return CommandCost();
+ }
+
+ if (command & DEPOT_DONT_CANCEL) return CMD_ERROR; // Requested no cancelation of depot orders
+ if (flags & DC_EXEC) {
+ /* If the orders to 'goto depot' are in the orders list (forced servicing),
+ * then skip to the next order; effectively cancelling this forced service */
+ if (this->current_order.GetDepotOrderType() & ODTFB_PART_OF_ORDERS) this->cur_order_index++;
+
+ this->current_order.MakeDummy();
+ InvalidateWindowWidget(WC_VEHICLE_VIEW, this->index, VVW_WIDGET_START_STOP_VEH);
+ }
+ return CommandCost();
+ }
+
+ /* check if at a standstill (not stopped only) in a depot
+ * the check is down here to make it possible to alter stop/service for trains entering the depot */
+ if (this->type == VEH_TRAIN && IsTileDepotType(this->tile, TRANSPORT_RAIL) && this->cur_speed == 0) return CMD_ERROR;
+
+ TileIndex location;
+ DestinationID destination;
+ bool reverse;
+ static const StringID no_depot[] = {STR_883A_UNABLE_TO_FIND_ROUTE_TO, STR_9019_UNABLE_TO_FIND_LOCAL_DEPOT, STR_981A_UNABLE_TO_FIND_LOCAL_DEPOT, STR_A012_CAN_T_SEND_AIRCRAFT_TO};
+ if (!this->FindClosestDepot(&location, &destination, &reverse)) return_cmd_error(no_depot[this->type]);
+
+ if (flags & DC_EXEC) {
+ if (this->current_order.IsType(OT_LOADING)) this->LeaveStation();
+
+ this->dest_tile = location;
+ this->current_order.MakeGoToDepot(destination, ODTF_MANUAL);
+ if (!(command & DEPOT_SERVICE)) this->current_order.SetDepotActionType(ODATFB_HALT);
+ InvalidateWindowWidget(WC_VEHICLE_VIEW, this->index, VVW_WIDGET_START_STOP_VEH);
+
+ /* If there is no depot in front, reverse automatically (trains only) */
+ if (this->type == VEH_TRAIN && reverse) DoCommand(this->tile, this->index, 0, DC_EXEC, CMD_REVERSE_TRAIN_DIRECTION);
+
+ if (this->type == VEH_AIRCRAFT && this->u.air.state == FLYING && this->u.air.targetairport != destination) {
+ /* The aircraft is now heading for a different hangar than the next in the orders */
+ extern void AircraftNextAirportPos_and_Order(Vehicle *v);
+ AircraftNextAirportPos_and_Order(this);
+ }
+ }
+
+ return CommandCost();
+
+}
+
void Vehicle::SetNext(Vehicle *next)
{
if (this->next != NULL) {
--- a/src/vehicle_base.h Tue Apr 08 11:54:53 2008 +0000
+++ b/src/vehicle_base.h Sat Apr 12 21:38:49 2008 +0000
@@ -490,6 +490,21 @@
bool NeedsAutorenewing(const Player *p) const;
/**
+ * Check if the vehicle needs to go to a depot in near future (if a opportunity presents itself) for service or replacement.
+ *
+ * @see NeedsAutomaticServicing()
+ * @return true if the vehicle should go to a depot if a opportunity presents itself.
+ */
+ bool NeedsServicing() const;
+
+ /**
+ * Checks if the current order should be interupted for a service-in-depot-order.
+ * @see NeedsServicing()
+ * @return true if the current order should be interupted.
+ */
+ bool NeedsAutomaticServicing() const;
+
+ /**
* Determine the location for the station where the vehicle goes to next.
* Things done for example are allocating slots in a road stop or exact
* location of the platform is determined for ships.
@@ -497,6 +512,24 @@
* @return the location (tile) to aim for.
*/
virtual TileIndex GetOrderStationLocation(StationID station) { return INVALID_TILE; }
+
+ /**
+ * Find the closest depot for this vehicle and tell us the location,
+ * DestinationID and whether we should reverse.
+ * @param location where do we go to?
+ * @param destination what hangar do we go to?
+ * @param reverse should the vehicle be reversed?
+ * @return true if a depot could be found.
+ */
+ virtual bool FindClosestDepot(TileIndex *location, DestinationID *destination, bool *reverse) { return false; }
+
+ /**
+ * Send this vehicle to the depot using the given command(s).
+ * @param flags the command flags (like execute and such).
+ * @param command the command to execute.
+ * @return the cost of the depot action.
+ */
+ CommandCost SendToDepot(uint32 flags, DepotCommand command);
};
/**
--- a/src/vehicle_func.h Tue Apr 08 11:54:53 2008 +0000
+++ b/src/vehicle_func.h Sat Apr 12 21:38:49 2008 +0000
@@ -67,8 +67,6 @@
void TrainPowerChanged(Vehicle *v);
Money GetTrainRunningCost(const Vehicle *v);
-bool VehicleNeedsService(const Vehicle *v);
-
uint GenerateVehicleSortList(const Vehicle*** sort_list, uint16 *length_of_array, VehicleType type, PlayerID owner, uint32 index, uint16 window_type);
void BuildDepotVehicleList(VehicleType type, TileIndex tile, Vehicle ***engine_list, uint16 *engine_list_length, uint16 *engine_count, Vehicle ***wagon_list, uint16 *wagon_list_length, uint16 *wagon_count);
CommandCost SendAllVehiclesToDepot(VehicleType type, uint32 flags, bool service, PlayerID owner, uint16 vlw_flag, uint32 id);
@@ -79,14 +77,6 @@
void CcCloneVehicle(bool success, TileIndex tile, uint32 p1, uint32 p2);
-/* Flags to add to p2 for goto depot commands */
-/* Note: bits 8-10 are used for VLW flags */
-enum {
- DEPOT_SERVICE = (1 << 0), // The vehicle will leave the depot right after arrival (serivce only)
- DEPOT_MASS_SEND = (1 << 1), // Tells that it's a mass send to depot command (type in VLW flag)
- DEPOT_DONT_CANCEL = (1 << 2), // Don't cancel current goto depot command if any
- DEPOT_LOCATE_HANGAR = (1 << 3), // Find another airport if the target one lacks a hangar
-};
struct GetNewVehiclePosResult {
int x, y;
--- a/src/vehicle_gui.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/vehicle_gui.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -1969,7 +1969,7 @@
SetDParam(0, depot->town_index);
SetDParam(1, v->GetDisplaySpeed());
}
- if (HasBit(v->current_order.GetDepotActionType(), OF_HALT_IN_DEPOT) && !HasBit(v->current_order.GetDepotOrderType(), OF_PART_OF_ORDERS)) {
+ if ((v->current_order.GetDepotActionType() & ODATFB_HALT) && !(v->current_order.GetDepotOrderType() & ODTFB_PART_OF_ORDERS)) {
str = _heading_for_depot_strings[v->type] + _patches.vehicle_speed;
} else {
str = _heading_for_depot_service_strings[v->type] + _patches.vehicle_speed;
--- a/src/vehicle_type.h Tue Apr 08 11:54:53 2008 +0000
+++ b/src/vehicle_type.h Sat Apr 12 21:38:49 2008 +0000
@@ -60,4 +60,14 @@
VPF_YAPF = 2, ///< Yet Another PathFinder
};
+/* Flags to add to p2 for goto depot commands */
+/* Note: bits 8-10 are used for VLW flags */
+enum DepotCommand {
+ DEPOT_SERVICE = (1 << 0), ///< The vehicle will leave the depot right after arrival (serivce only)
+ DEPOT_MASS_SEND = (1 << 1), ///< Tells that it's a mass send to depot command (type in VLW flag)
+ DEPOT_DONT_CANCEL = (1 << 2), ///< Don't cancel current goto depot command if any
+ DEPOT_LOCATE_HANGAR = (1 << 3), ///< Find another airport if the target one lacks a hangar
+ DEPOT_COMMAND_MASK = 0xF,
+};
+
#endif /* VEHICLE_TYPE_H */
--- a/src/viewport_type.h Tue Apr 08 11:54:53 2008 +0000
+++ b/src/viewport_type.h Sat Apr 12 21:38:49 2008 +0000
@@ -10,12 +10,19 @@
#include "window_type.h"
#include "tile_type.h"
+/**
+ * Data structure for viewport, display of a part of the world
+ */
struct ViewPort {
- int left,top; // screen coordinates for the viewport
- int width, height; // screen width/height for the viewport
+ int left; ///< Screen coordinate left egde of the viewport
+ int top; ///< Screen coordinate top edge of the viewport
+ int width; ///< Screen width of the viewport
+ int height; ///< Screen height of the viewport
- int virtual_left, virtual_top; // virtual coordinates
- int virtual_width, virtual_height; // these are just width << zoom, height << zoom
+ int virtual_left; ///< Virtual left coordinate
+ int virtual_top; ///< Virtual top coordinate
+ int virtual_width; ///< width << zoom
+ int virtual_height; ///< height << zoom
ZoomLevel zoom;
};
@@ -58,7 +65,7 @@
VHM_RAIL = 5, ///< rail pieces
};
-/* highlighting draw styles */
+/** Highlighting draw styles */
enum HighLightStyle {
HT_NONE = 0x00,
HT_RECT = 0x80,
--- a/src/waypoint.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/waypoint.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -32,6 +32,7 @@
#include "player_func.h"
#include "settings_type.h"
#include "newgrf_station.h"
+#include "oldpool_func.h"
#include "table/strings.h"
--- a/src/widget.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/widget.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -186,6 +186,10 @@
}
+/**
+ * Paint all widgets of a window.
+ * @param w Window
+ */
void DrawWindowWidgets(const Window *w)
{
const DrawPixelInfo* dpi = _cur_dpi;
@@ -569,6 +573,7 @@
}
}
+/** Resize a widget and shuffle other widgets around to fit. */
void ResizeWindowForWidget(Window *w, int widget, int delta_x, int delta_y)
{
int right = w->widget[widget].right;
--- a/src/widgets/dropdown.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/widgets/dropdown.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -20,6 +20,11 @@
return STR_NULL;
}
+uint DropDownListItem::Height(uint width) const
+{
+ return 10;
+}
+
StringID DropDownListStringItem::String() const
{
return this->string;
@@ -66,20 +71,25 @@
{
if (GetWidgetFromPos(w, _cursor.pos.x - w->left, _cursor.pos.y - w->top) < 0) return -1;
- int y = _cursor.pos.y - w->top - 2 + w->vscroll.pos * 10;
- if (y < 0) return -1;
+ int y = _cursor.pos.y - w->top - 2;
+ int width = w->widget[0].right - 3;
+ int pos = w->vscroll.pos;
- uint selected_row = y / 10;
const DropDownList *list = WP(w, dropdown_d).list;
- if (selected_row >= list->size()) return -1;
+ for (DropDownList::const_iterator it = list->begin(); it != list->end(); ++it) {
+ /* Skip items that are scrolled up */
+ if (--pos >= 0) continue;
- for (DropDownList::const_iterator it = list->begin(); it != list->end(); ++it, selected_row--) {
- if (selected_row == 0) {
- const DropDownListItem *item = *it;
+ const DropDownListItem *item = *it;
+ int item_height = item->Height(width);
+
+ if (y < item_height) {
if (item->masked || item->String() == STR_NULL) return -1;
return item->result;
}
+
+ y -= item_height;
}
return -1;
@@ -92,24 +102,30 @@
DrawWindowWidgets(w);
int x = 1;
- int y = 2 - w->vscroll.pos * 10;
+ int y = 2;
int sel = WP(w, dropdown_d).selected_index;
int width = w->widget[0].right - 3;
- int height = w->widget[0].bottom - 3;
+ int height = w->widget[0].bottom;
+ int pos = w->vscroll.pos;
DropDownList *list = WP(w, dropdown_d).list;
for (DropDownList::const_iterator it = list->begin(); it != list->end(); ++it) {
- if (y >= 0 && y <= height) {
- const DropDownListItem *item = *it;
+ const DropDownListItem *item = *it;
+ int item_height = item->Height(width);
+
+ /* Skip items that are scrolled up */
+ if (--pos >= 0) continue;
+
+ if (y + item_height < height) {
if (item->String() != STR_NULL) {
- if (sel == item->result) GfxFillRect(x + 1, y, x + width, y + 9, 0);
+ if (sel == item->result) GfxFillRect(x + 1, y, x + width, y + item_height - 1, 0);
DrawStringTruncated(x + 2, y, item->String(), sel == item->result ? TC_WHITE : TC_BLACK, x + width);
if (item->masked) {
- GfxFillRect(x, y, x + width, y + 9,
+ GfxFillRect(x, y, x + width, y + item_height - 1,
(1 << PALETTE_MODIFIER_GREYOUT) | _colour_gradient[w->widget[0].color][5]
);
}
@@ -121,7 +137,7 @@
GfxFillRect(x + 1, y + 4, x + w->width - 5, y + 4, c2);
}
}
- y += 10;
+ y += item_height;
}
} break;
@@ -201,7 +217,7 @@
}
}
-void ShowDropDownList(Window *w, DropDownList *list, int selected, int button)
+void ShowDropDownList(Window *w, DropDownList *list, int selected, int button, uint width)
{
bool is_dropdown_menu_shown = w->IsWidgetLowered(button);
@@ -221,7 +237,17 @@
/* The preferred position is just below the dropdown calling widget */
int top = w->top + wi->bottom + 1;
- int height = list->size() * 10 + 4;
+
+ /* Total length of list */
+ int list_height = 0;
+
+ for (DropDownList::const_iterator it = list->begin(); it != list->end(); ++it) {
+ DropDownListItem *item = *it;
+ list_height += item->Height(width);
+ }
+
+ /* Height of window visible */
+ int height = list_height;
/* Check if the status bar is visible, as we don't want to draw over it */
Window *w3 = FindWindowById(WC_STATUS_BAR, 0);
@@ -230,34 +256,37 @@
bool scroll = false;
/* Check if the dropdown will fully fit below the widget */
- if (top + height >= screen_bottom) {
+ if (top + height + 4 >= screen_bottom) {
w3 = FindWindowById(WC_MAIN_TOOLBAR, 0);
int screen_top = w3 == NULL ? 0 : w3->top + w3->height;
/* If not, check if it will fit above the widget */
if (w->top + wi->top - height > screen_top) {
- top = w->top + wi->top - height;
+ top = w->top + wi->top - height - 4;
} else {
/* ... and lastly if it won't, enable the scroll bar and fit the
* list in below the widget */
- int rows = (screen_bottom - 4 - top) / 10;
- height = rows * 10 + 4;
+ int avg_height = list_height / list->size();
+ int rows = (screen_bottom - 4 - top) / avg_height;
+ height = rows * avg_height;
scroll = true;
}
}
+ if (width == 0) width = wi->right - wi->left + 1;
+
Window *dw = AllocateWindow(
w->left + wi->left,
top,
- wi->right - wi->left + 1,
- height,
+ width,
+ height + 4,
DropDownMenuWndProc,
WC_DROPDOWN_MENU,
_dropdown_menu_widgets);
dw->widget[0].color = wi->color;
- dw->widget[0].right = wi->right - wi->left;
- dw->widget[0].bottom = height - 1;
+ dw->widget[0].right = width - 1;
+ dw->widget[0].bottom = height + 3;
dw->SetWidgetHiddenState(1, !scroll);
@@ -267,10 +296,11 @@
dw->widget[1].color = wi->color;
dw->widget[1].right = dw->widget[0].right;
dw->widget[1].left = dw->widget[1].right - 11;
- dw->widget[1].bottom = height - 1;
+ dw->widget[1].bottom = dw->widget[0].bottom;
dw->widget[0].right -= 12;
- dw->vscroll.cap = (height - 4) / 10;
+ /* Capacity is the average number of items visible */
+ dw->vscroll.cap = height * list->size() / list_height;
dw->vscroll.count = list->size();
}
@@ -286,7 +316,7 @@
WP(dw, dropdown_d).drag_mode = true;
}
-void ShowDropDownMenu(Window *w, const StringID *strings, int selected, int button, uint32 disabled_mask, uint32 hidden_mask)
+void ShowDropDownMenu(Window *w, const StringID *strings, int selected, int button, uint32 disabled_mask, uint32 hidden_mask, uint width)
{
/* Don't create a new list if we're just closing an existing menu */
if (w->IsWidgetLowered(button)) {
@@ -310,9 +340,13 @@
return;
}
- ShowDropDownList(w, list, selected, button);
+ ShowDropDownList(w, list, selected, button, width);
}
+/**
+ * Delete the drop-down menu from window \a pw
+ * @param pw Parent window of the drop-down menu window
+ */
void HideDropDownMenu(Window *pw)
{
Window **wz;
--- a/src/widgets/dropdown_func.h Tue Apr 08 11:54:53 2008 +0000
+++ b/src/widgets/dropdown_func.h Sat Apr 12 21:38:49 2008 +0000
@@ -4,7 +4,7 @@
#define WIDGETS_DROPDOWN_FUNC_H
/* Show drop down menu containing a fixed list of strings */
-void ShowDropDownMenu(Window *w, const StringID *strings, int selected, int button, uint32 disabled_mask, uint32 hidden_mask);
+void ShowDropDownMenu(Window *w, const StringID *strings, int selected, int button, uint32 disabled_mask, uint32 hidden_mask, uint width = 0);
/* Hide drop down menu of a parent window */
void HideDropDownMenu(Window *pw);
--- a/src/widgets/dropdown_type.h Tue Apr 08 11:54:53 2008 +0000
+++ b/src/widgets/dropdown_type.h Sat Apr 12 21:38:49 2008 +0000
@@ -18,6 +18,7 @@
DropDownListItem(int result, bool masked) : result(result), masked(masked) {}
virtual ~DropDownListItem() {}
virtual StringID String() const;
+ virtual uint Height(uint width) const;
};
/**
@@ -60,7 +61,8 @@
* @param selected The initially selected list item.
* @param button The widget within the parent window that is used to determine
* the list's location.
+ * @param width Override the width determined by the selected widget.
*/
-void ShowDropDownList(Window *w, DropDownList *list, int selected, int button);
+void ShowDropDownList(Window *w, DropDownList *list, int selected, int button, uint width = 0);
#endif /* WIDGETS_DROPDOWN_TYPE_H */
--- a/src/window.cpp Tue Apr 08 11:54:53 2008 +0000
+++ b/src/window.cpp Sat Apr 12 21:38:49 2008 +0000
@@ -22,10 +22,16 @@
#include "table/sprites.h"
-/* delta between mouse cursor and upper left corner of dragged window */
+/** delta between mouse cursor and upper left corner of dragged window */
static Point _drag_delta;
static Window _windows[MAX_NUMBER_OF_WINDOWS];
+
+/**
+ * List of windows opened at the screen.
+ * Uppermost window is at _z_windows[_last_z_window - 1],
+ * bottom window is at _z_windows[0]
+ */
Window *_z_windows[lengthof(_windows)];
Window **_last_z_window; ///< always points to the next free space in the z-array
@@ -116,6 +122,13 @@
static void StartWindowDrag(Window *w);
static void StartWindowSizing(Window *w);
+/**
+ * Dispatch left mouse-button (possibly double) click in window.
+ * @param w Window to dispatch event in
+ * @param x X coordinate of the click
+ * @param y Y coordinate of the click
+ * @param double_click Was it a double click?
+ */
static void DispatchLeftClickEvent(Window *w, int x, int y, bool double_click)
{
WindowEvent e;
@@ -175,6 +188,12 @@
w->wndproc(w, &e);
}
+/**
+ * Dispatch right mouse-button click in window.
+ * @param w Window to dispatch event in
+ * @param x X coordinate of the click
+ * @param y Y coordinate of the click
+ */
static void DispatchRightClickEvent(Window *w, int x, int y)
{
WindowEvent e;
@@ -197,9 +216,10 @@
w->wndproc(w, &e);
}
-/** Dispatch the mousewheel-action to the window which will scroll any
- * compatible scrollbars if the mouse is pointed over the bar or its contents
- * @param *w Window
+/**
+ * Dispatch the mousewheel-action to the window.
+ * The window will scroll any compatible scrollbars if the mouse is pointed over the bar or its contents
+ * @param w Window
* @param widget the widget where the scrollwheel was used
* @param wheel scroll up or down
*/
@@ -232,6 +252,14 @@
static void DrawOverlappedWindow(Window* const *wz, int left, int top, int right, int bottom);
+/**
+ * From a rectangle that needs redrawing, find the windows that intersect with the rectangle.
+ * These windows should be re-painted.
+ * @param left Left edge of the rectangle that should be repainted
+ * @param top Top edge of the rectangle that should be repainted
+ * @param right Right edge of the rectangle that should be repainted
+ * @param bottom Bottom edge of the rectangle that should be repainted
+ */
void DrawOverlappedWindowForAll(int left, int top, int right, int bottom)
{
Window* const *wz;
@@ -249,10 +277,23 @@
}
}
+/**
+ * Generate repaint events for the visible part of window *wz within the rectangle.
+ *
+ * The function goes recursively upwards in the window stack, and splits the rectangle
+ * into multiple pieces at the window edges, so obscured parts are not redrawn.
+ *
+ * @param wz Pointer into window stack, pointing at the window that needs to be repainted
+ * @param left Left edge of the rectangle that should be repainted
+ * @param top Top edge of the rectangle that should be repainted
+ * @param right Right edge of the rectangle that should be repainted
+ * @param bottom Bottom edge of the rectangle that should be repainted
+ *
+ * @todo Swap this function to above DrawOverlappedWindowForAll() to eliminate the forward declaration
+ */
static void DrawOverlappedWindow(Window* const *wz, int left, int top, int right, int bottom)
{
Window* const *vz = wz;
- int x;
while (++vz != _last_z_window) {
const Window *v = *vz;
@@ -261,6 +302,9 @@
bottom > v->top &&
left < v->left + v->width &&
top < v->top + v->height) {
+ /* v and rectangle intersect with eeach other */
+ int x;
+
if (left < (x = v->left)) {
DrawOverlappedWindow(wz, left, top, x, bottom);
DrawOverlappedWindow(wz, x, top, right, bottom);
@@ -302,6 +346,12 @@
}
}
+/**
+ * Dispatch an event to a possibly non-existing window.
+ * If the window pointer w is \c NULL, the event is not dispatched
+ * @param w Window to dispatch the event to, may be \c NULL
+ * @param event Event to dispatch
+ */
void CallWindowEventNP(Window *w, int event)
{
WindowEvent e;
@@ -310,6 +360,11 @@
w->wndproc(w, &e);
}
+/**
+ * Mark entire window as dirty (in need of re-paint)
+ * @param w Window to redraw
+ * @ingroup dirty
+ */
void SetWindowDirty(const Window *w)
{
if (w == NULL) return;
@@ -334,12 +389,13 @@
/** Find the z-value of a window. A window must already be open
* or the behaviour is undefined but function should never fail
* @param w window to query Z Position
- * @return the window that matches it */
+ * @return Pointer into the window-list at the position of \a w
+ */
Window **FindWindowZPosition(const Window *w)
{
Window **wz;
- for (wz = _z_windows; wz != _last_z_window; wz++) {
+ FOR_ALL_WINDOWS(wz) {
if (*wz == w) return wz;
}
@@ -348,14 +404,15 @@
return NULL;
}
+/**
+ * Remove window and all its child windows from the window stack
+ */
void DeleteWindow(Window *w)
{
- Window *v;
- Window **wz;
if (w == NULL) return;
/* Delete any children a window might have in a head-recursive manner */
- v = FindChildWindow(w);
+ Window *v = FindChildWindow(w);
if (v != NULL) DeleteWindow(v);
if (_thd.place_mode != VHM_NONE &&
@@ -375,12 +432,18 @@
/* Find the window in the z-array, and effectively remove it
* by moving all windows after it one to the left */
- wz = FindWindowZPosition(w);
+ Window **wz = FindWindowZPosition(w);
if (wz == NULL) return;
memmove(wz, wz + 1, (byte*)_last_z_window - (byte*)wz);
_last_z_window--;
}
+/**
+ * Find a window by its class and window number
+ * @param cls Window class
+ * @param number Number of the window within the window class
+ * @return Pointer to the found window, or \c NULL if not available
+ */
Window *FindWindowById(WindowClass cls, WindowNumber number)
{
Window* const *wz;
@@ -393,11 +456,20 @@
return NULL;
}
+/**
+ * Delete a window by its class and window number (if it is open).
+ * @param cls Window class
+ * @param number Number of the window within the window class
+ */
void DeleteWindowById(WindowClass cls, WindowNumber number)
{
DeleteWindow(FindWindowById(cls, number));
}
+/**
+ * Delete all windows of a given class
+ * @param cls Window class of windows to delete
+ */
void DeleteWindowByClass(WindowClass cls)
{
Window* const *wz;
@@ -625,9 +697,8 @@
* @param window_number number being assigned to the new window
* @param data the data to be given during the WE_CREATE message
* @return Window pointer of the newly created window */
-static Window *LocalAllocateWindow(
- int x, int y, int min_width, int min_height, int def_width, int def_height,
- WindowProc *proc, WindowClass cls, const Widget *widget, int window_number, void *data)
+static Window *LocalAllocateWindow(int x, int y, int min_width, int min_height, int def_width, int def_height,
+ WindowProc *proc, WindowClass cls, const Widget *widget, int window_number, void *data)
{
Window *w = FindFreeWindow();
@@ -751,18 +822,14 @@
* @param *proc see WindowProc function to call when any messages/updates happen to the window
* @param cls see WindowClass class of the window, used for identification and grouping
* @param *widget see Widget pointer to the window layout and various elements
- * @return Window pointer of the newly created window */
-Window *AllocateWindow(
- int x, int y, int width, int height,
- WindowProc *proc, WindowClass cls, const Widget *widget, void *data)
+ * @return Window pointer of the newly created window
+ */
+Window *AllocateWindow(int x, int y, int width, int height,
+ WindowProc *proc, WindowClass cls, const Widget *widget, void *data)
{
return LocalAllocateWindow(x, y, width, height, width, height, proc, cls, widget, 0, data);
}
-struct SizeRect {
- int left,top,width,height;
-};
-
static bool IsGoodAutoPlace1(int left, int top, int width, int height, Point &pos)
{
@@ -1002,7 +1069,7 @@
restart_search:
/* Delete all windows, reset z-array.
- *When we find the window to delete, we need to restart the search
+ * When we find the window to delete, we need to restart the search
* as deleting this window could cascade in deleting (many) others
* anywhere in the z-array. We call DeleteWindow() so that it can properly
* release own alloc'd memory, which otherwise could result in memleaks */
@@ -1158,12 +1225,15 @@
return true;
}
-/** Update all the widgets of a window based on their resize flags
+/**
+ * Resize the window.
+ * Update all the widgets of a window based on their resize flags
* Both the areas of the old window and the new sized window are set dirty
* ensuring proper redrawal.
* @param w Window to resize
* @param x delta x-size of changed window (positive if larger, etc.)
- * @param y delta y-size of changed window */
+ * @param y delta y-size of changed window
+ */
void ResizeWindow(Window *w, int x, int y)
{
Widget *wi;
@@ -1409,6 +1479,10 @@
return false;
}
+/**
+ * Start window dragging
+ * @param w Window to start dragging
+ */
static void StartWindowDrag(Window *w)
{
w->flags4 |= WF_DRAGGING;
@@ -1421,6 +1495,10 @@
DeleteWindowById(WC_DROPDOWN_MENU, 0);
}
+/**
+ * Start resizing a window
+ * @param w Window to start resizing
+ */
static void StartWindowSizing(Window *w)
{
w->flags4 |= WF_SIZING;
@@ -1632,11 +1710,10 @@
}
/** Handle keyboard input.
- * @param key Lower 8 bits contain the ASCII character, the higher
- * 16 bits the keycode */
+ * @param key Lower 8 bits contain the ASCII character, the higher 16 bits the keycode
+ */
void HandleKeypress(uint32 key)
{
- Window* const *wz;
WindowEvent e;
/* Stores if a window with a textfield for typing is open
* If this is the case, keypress events are only passed to windows with text fields and
@@ -1685,7 +1762,7 @@
}
/* Call the event, start with the uppermost window. */
- for (wz = _last_z_window; wz != _z_windows;) {
+ for (Window* const *wz = _last_z_window; wz != _z_windows;) {
Window *w = *--wz;
/* if a query window is open, only call the event for certain window types */
@@ -1709,6 +1786,9 @@
}
}
+/**
+ * State of CONTROL key has changed
+ */
void HandleCtrlChanged()
{
WindowEvent e;
@@ -1727,8 +1807,18 @@
extern void UpdateTileSelection();
extern bool VpHandlePlaceSizingDrag();
+/**
+ * Local counter that is incremented each time an mouse input event is detected.
+ * The counter is used to stop auto-scrolling.
+ * @see HandleAutoscroll()
+ * @see HandleMouseEvents()
+ */
static int _input_events_this_tick = 0;
+/**
+ * If needed and switched on, perform auto scrolling (automatically
+ * moving window contents when mouse is near edge of the window).
+ */
static void HandleAutoscroll()
{
Window *w;
@@ -1870,6 +1960,9 @@
}
}
+/**
+ * Handle a mouse event from the video driver
+ */
void HandleMouseEvents()
{
static int double_click_time = 0;
@@ -1919,12 +2012,18 @@
MouseLoop(click, mousewheel);
}
+/**
+ * Regular call from the global game loop
+ */
void InputLoop()
{
HandleMouseEvents();
HandleAutoscroll();
}
+/**
+ * Update the continuously changing contents of the windows, such as the viewports
+ */
void UpdateWindows()
{
Window* const *wz;
@@ -1959,6 +2058,13 @@
}
+/**
+ * In a window with menu_d custom extension, retrieve the menu item number from a position
+ * @param w Window holding the menu items
+ * @param x X coordinate of the position
+ * @param y Y coordinate of the position
+ * @return Index number of the menu item, or \c -1 if no valid selection under position
+ */
int GetMenuItemIndex(const Window *w, int x, int y)
{
if ((x -= w->left) >= 0 && x < w->width && (y -= w->top + 1) >= 0) {
@@ -1972,6 +2078,10 @@
return -1;
}
+/**
+ * Mark window data as invalid (in need of re-computing)
+ * @param w Window with invalid data
+ */
void InvalidateWindow(WindowClass cls, WindowNumber number)
{
Window* const *wz;
@@ -1982,6 +2092,12 @@
}
}
+/*
+ * Mark a particular widget in a particular window as dirty (in need of repainting)
+ * @param cls Window class
+ * @param number Window number in that class
+ * @param widget_index Index number of the widget that needs repainting
+ */
void InvalidateWindowWidget(WindowClass cls, WindowNumber number, byte widget_index)
{
Window* const *wz;
@@ -1994,6 +2110,10 @@
}
}
+/*
+ * Mark all windows of a particular class as dirty (in need of repainting)
+ * @param cls Window class
+ */
void InvalidateWindowClasses(WindowClass cls)
{
Window* const *wz;
@@ -2003,12 +2123,21 @@
}
}
+/**
+ * Mark window data as invalid (in need of re-computing)
+ * @param w Window with invalid data
+ */
void InvalidateThisWindowData(Window *w)
{
CallWindowEventNP(w, WE_INVALIDATE_DATA);
SetWindowDirty(w);
}
+/**
+ * Mark window data the window of a given class and specific window number as invalid (in need of re-computing)
+ * @param cls Window class
+ * @param number Window number within the class
+ */
void InvalidateWindowData(WindowClass cls, WindowNumber number)
{
Window* const *wz;
@@ -2019,6 +2148,10 @@
}
}
+/**
+ * Mark window data of all windows of a given class as invalid (in need of re-computing)
+ * @param cls Window class
+ */
void InvalidateWindowClassesData(WindowClass cls)
{
Window* const *wz;
@@ -2028,6 +2161,9 @@
}
}
+/**
+ * Dispatch WE_TICK event over all windows
+ */
void CallWindowTickEvent()
{
Window* const *wz;
@@ -2093,6 +2229,11 @@
DeleteWindowById(WC_STATUS_BAR, 0);
}
+/**
+ * (Re)position main toolbar window at the screen
+ * @param w Window structure of the main toolbar window, may also be \c NULL
+ * @return X coordinate of left edge of the repositioned toolbar window
+ */
int PositionMainToolbar(Window *w)
{
DEBUG(misc, 5, "Repositioning Main Toolbar...");
@@ -2110,6 +2251,11 @@
return w->left;
}
+/**
+ * Relocate all windows to fit the new size of the game application screen
+ * @param neww New width of the game application screen
+ * @param newh New height of the game appliction screen
+ */
void RelocateAllWindows(int neww, int newh)
{
Window* const *wz;
--- a/src/window_func.h Tue Apr 08 11:54:53 2008 +0000
+++ b/src/window_func.h Sat Apr 12 21:38:49 2008 +0000
@@ -8,11 +8,6 @@
#include "window_type.h"
#include "player_type.h"
-/**
- * Marks the window as dirty for repaint.
- *
- * @ingroup dirty
- */
void SetWindowDirty(const Window *w);
void SendWindowMessage(WindowClass wnd_class, WindowNumber wnd_num, int msg, int wparam, int lparam);
void SendWindowMessageClass(WindowClass wnd_class, int msg, int wparam, int lparam);
--- a/src/window_gui.h Tue Apr 08 11:54:53 2008 +0000
+++ b/src/window_gui.h Sat Apr 12 21:38:49 2008 +0000
@@ -73,6 +73,9 @@
WIDGET_LIST_END = -1, ///< indicate the end of widgets' list for vararg functions
};
+/**
+ * Window widget data structure
+ */
struct Widget {
byte type; ///< Widget type, see WindowWidgetTypes
byte display_flags; ///< Resize direction, alignment, etc. during resizing, see ResizeFlags
@@ -82,6 +85,9 @@
StringID tooltips; ///< Tooltips that are shown when rightclicking on a widget
};
+/**
+ * Flags to describe the look of the frame
+ */
enum FrameFlags {
FR_NONE = 0,
FR_TRANSPARENT = 1 << 0, ///< Makes the background transparent if set
@@ -92,21 +98,25 @@
DECLARE_ENUM_AS_BIT_SET(FrameFlags);
+/* wiget.cpp */
void DrawFrameRect(int left, int top, int right, int bottom, int color, FrameFlags flags);
+/**
+ * Available window events
+ */
enum WindowEventCodes {
- WE_CREATE,
- WE_DESTROY,
- WE_PAINT,
- WE_KEYPRESS,
- WE_CLICK,
- WE_DOUBLE_CLICK,
- WE_RCLICK,
+ WE_CREATE, ///< Initialize the Window
+ WE_DESTROY, ///< Prepare for deletion of the window
+ WE_PAINT, ///< Repaint the window contents
+ WE_KEYPRESS, ///< Key pressed
+ WE_CLICK, ///< Left mouse button click
+ WE_DOUBLE_CLICK, ///< Left mouse button double click
+ WE_RCLICK, ///< Right mouse button click
WE_MOUSEOVER,
WE_MOUSELOOP,
WE_MOUSEWHEEL,
- WE_TICK,
- WE_4,
+ WE_TICK, ///< Regularly occurring event (about once every 20 seconds orso, 10 days) for slowly changing content (typically list sorting)
+ WE_4, ///< Regularly occurring event for updating continuously changing window content (other than view ports), or timer expiring
WE_TIMEOUT,
WE_PLACE_OBJ,
WE_ABORT_PLACE_OBJ,
@@ -119,13 +129,17 @@
WE_PLACE_MOUSEUP,
WE_PLACE_PRESIZE,
WE_DROPDOWN_SELECT,
- WE_RESIZE,
- WE_MESSAGE,
+ WE_RESIZE, ///< Request to resize the window, @see WindowEvent.we.resize
+ WE_MESSAGE, ///< Receipt of a message from another window. @see WindowEvent.we.message, SendWindowMessage(), SendWindowMessageClass()
WE_SCROLL,
- WE_INVALIDATE_DATA,
- WE_CTRL_CHANGED,
+ WE_INVALIDATE_DATA, ///< Notification that data displayed by the window is obsolete
+ WE_CTRL_CHANGED, ///< CTRL key has changed state
};
+/**
+ * Data structures for additional data associated with a window event
+ * @see WindowEventCodes
+ */
struct WindowEvent {
byte event;
union {
@@ -200,27 +214,40 @@
} we;
};
+/**
+ * High level window description
+ */
struct WindowDesc {
- int16 left, top, minimum_width, minimum_height, default_width, default_height;
- WindowClass cls;
- WindowClass parent_cls;
- uint32 flags;
- const Widget *widgets;
- WindowProc *proc;
+ int16 left; ///< Prefered x position of left edge of the window, @see WindowDefaultPosition()
+ int16 top; ///< Prefered y position of the top of the window, @see WindowDefaultPosition()
+ int16 minimum_width; ///< Minimal width of the window
+ int16 minimum_height; ///< Minimal height of the window
+ int16 default_width; ///< Prefered initial width of the window
+ int16 default_height; ///< Prefered initial height of the window
+ WindowClass cls; ///< Class of the window, @see WindowClass
+ WindowClass parent_cls; ///< Class of the parent window, @see WindowClass
+ uint32 flags; ///< Flags, @see WindowDefaultFlags
+ const Widget *widgets; ///< List of widgets with their position and size for the window
+ WindowProc *proc; ///< Window event handler function for the window
};
+/**
+ * Window default widget/window handling flags
+ */
enum WindowDefaultFlag {
WDF_STD_TOOLTIPS = 1 << 0, ///< use standard routine when displaying tooltips
- WDF_DEF_WIDGET = 1 << 1, ///< default widget control for some widgets in the on click event
- WDF_STD_BTN = 1 << 2, ///< default handling for close and drag widgets (widget no 0 and 1)
+ WDF_DEF_WIDGET = 1 << 1, ///< Default widget control for some widgets in the on click event, @see DispatchLeftClickEvent()
+ WDF_STD_BTN = 1 << 2, ///< Default handling for close and titlebar widgets (widget no 0 and 1)
- WDF_UNCLICK_BUTTONS = 1 << 4, ///< Unclick buttons when the window event times out */
+ WDF_UNCLICK_BUTTONS = 1 << 4, ///< Unclick buttons when the window event times out
WDF_STICKY_BUTTON = 1 << 5, ///< Set window to sticky mode; they are not closed unless closed with 'X' (widget 2)
- WDF_RESIZABLE = 1 << 6, ///< A window can be resized
+ WDF_RESIZABLE = 1 << 6, ///< Window can be resized
WDF_MODAL = 1 << 7, ///< The window is a modal child of some other window, meaning the parent is 'inactive'
};
-/* can be used as x or y coordinates to cause a specific placement */
+/**
+ * Special values for 'left' and 'top' to cause a specific placement
+ */
enum WindowDefaultPosition {
WDP_AUTO = -1, ///< Find a place automatically
WDP_CENTER = -2, ///< Center the window (left/right or top/bottom)
@@ -230,46 +257,65 @@
#define WP(ptr, str) (*(str*)(ptr)->custom)
+/**
+ * Scrollbar data structure
+ */
struct Scrollbar {
- uint16 count, cap, pos;
+ uint16 count; ///< Number of elements in the list
+ uint16 cap; ///< Number of visible elements of the scroll bar
+ uint16 pos;
};
+/**
+ * Data structure for resizing a window
+ */
struct ResizeInfo {
- uint width; ///< Minimum width and height
- uint height;
- uint step_width; ///< In how big steps the width and height go
- uint step_height;
+ uint width; ///< Minimum allowed width of the window
+ uint height; ///< Minimum allowed height of the window
+ uint step_width; ///< Step-size of width resize changes
+ uint step_height; ///< Step-size of height resize changes
};
+/**
+ * Message data structure for messages sent between winodows
+ * @see SendWindowMessageW()
+ */
struct WindowMessage {
int msg;
int wparam;
int lparam;
};
+/**
+ * Data structure for an opened window
+ */
struct Window {
- uint16 flags4;
- WindowClass window_class;
- WindowNumber window_number;
-
- int left, top;
- int width, height;
-
- Scrollbar hscroll, vscroll, vscroll2;
- ResizeInfo resize;
+ uint16 flags4; ///< Window flags, @see WindowFlags
+ WindowClass window_class; ///< Window class
+ WindowNumber window_number; ///< Window number within the window class
- byte caption_color;
+ int left; ///< x position of left edge of the window
+ int top; ///< y position of top edge of the window
+ int width; ///< width of the window (number of pixels to the right in x direction)
+ int height; ///< Height of the window (number of pixels down in y direction)
- WindowProc *wndproc;
- ViewPort *viewport;
- const Widget *original_widget;
- Widget *widget;
- uint widget_count;
- uint32 desc_flags;
+ Scrollbar hscroll; ///< Horizontal scroll bar
+ Scrollbar vscroll; ///< First vertical scroll bar
+ Scrollbar vscroll2; ///< Second vertical scroll bar
+ ResizeInfo resize; ///< Resize information
- WindowMessage message;
- Window *parent;
- byte custom[WINDOW_CUSTOM_SIZE];
+ byte caption_color; ///< Background color of the window caption, contains PlayerID
+
+ WindowProc *wndproc; ///< Event handler function for the window
+ ViewPort *viewport; ///< Pointer to viewport, if present (structure is part of derived class)
+ const Widget *original_widget; ///< Original widget layout, copied from WindowDesc
+ Widget *widget; ///< Widgets of the window
+ uint widget_count; ///< Number of widgets of the window
+ uint32 desc_flags; ///< Window/widgets default flags setting, @see WindowDefaultFlag
+
+ WindowMessage message; ///< Buffer for storing received messages (for communication between different window events)
+ Window *parent; ///< Parent window
+ byte custom[WINDOW_CUSTOM_SIZE]; ///< Additional data depending on window type
void HandleButtonClick(byte widget);
@@ -344,11 +390,6 @@
};
assert_compile(WINDOW_CUSTOM_SIZE >= sizeof(depot_d));
-struct order_d {
- int sel;
-};
-assert_compile(WINDOW_CUSTOM_SIZE >= sizeof(order_d));
-
struct vehicledetails_d {
byte tab;
};
@@ -429,28 +470,31 @@
};
+/**
+ * Window widget types
+ */
enum WindowWidgetTypes {
- WWT_EMPTY,
-
- WWT_PANEL, ///< simple depressed panel
- WWT_INSET, ///< pressed (inset) panel, most commonly used as combo box _text_ area
- WWT_IMGBTN, ///< button with image
- WWT_IMGBTN_2, ///< button with diff image when clicked
+ WWT_EMPTY, ///< Empty widget, place holder to reserve space in widget array
- WWT_TEXTBTN, ///< button with text
- WWT_TEXTBTN_2, ///< button with diff text when clicked
- WWT_LABEL, ///< centered label
- WWT_TEXT, ///< pure simple text
- WWT_MATRIX,
- WWT_SCROLLBAR,
- WWT_FRAME, ///< frame
- WWT_CAPTION,
+ WWT_PANEL, ///< Simple depressed panel
+ WWT_INSET, ///< Pressed (inset) panel, most commonly used as combo box _text_ area
+ WWT_IMGBTN, ///< Button with image
+ WWT_IMGBTN_2, ///< Button with diff image when clicked
- WWT_HSCROLLBAR,
- WWT_STICKYBOX,
+ WWT_TEXTBTN, ///< Button with text
+ WWT_TEXTBTN_2, ///< Button with diff text when clicked
+ WWT_LABEL, ///< Centered label
+ WWT_TEXT, ///< Pure simple text
+ WWT_MATRIX, ///< List of items underneath each other
+ WWT_SCROLLBAR, ///< Vertical scrollbar
+ WWT_FRAME, ///< Frame
+ WWT_CAPTION, ///< Window caption (window title between closebox and stickybox)
+
+ WWT_HSCROLLBAR, ///< Horizontal scrollbar
+ WWT_STICKYBOX, ///< Sticky box (normally at top-right of a window)
WWT_SCROLL2BAR, ///< 2nd vertical scrollbar
- WWT_RESIZEBOX,
- WWT_CLOSEBOX,
+ WWT_RESIZEBOX, ///< Resize box (normally at bottom-right of a window)
+ WWT_CLOSEBOX, ///< Close box (at top-left of a window)
WWT_DROPDOWN, ///< Raised drop down list (regular)
WWT_DROPDOWNIN, ///< Inset drop down list (used on game options only)
WWT_EDITBOX, ///< a textbox for typing (don't forget to call ShowOnScreenKeyboard() when clicked)
@@ -465,18 +509,21 @@
#define WIDGETS_END WWT_LAST, RESIZE_NONE, 0, 0, 0, 0, 0, 0, STR_NULL
+/**
+ * Window flags
+ */
enum WindowFlags {
- WF_TIMEOUT_SHL = 0,
- WF_TIMEOUT_MASK = 7,
- WF_DRAGGING = 1 << 3,
- WF_SCROLL_UP = 1 << 4,
- WF_SCROLL_DOWN = 1 << 5,
- WF_SCROLL_MIDDLE = 1 << 6,
+ WF_TIMEOUT_SHL = 0, ///< Window timeout counter shift
+ WF_TIMEOUT_MASK = 7, ///< Window timeout counter bit mask (3 bits), @see WF_TIMEOUT_SHL
+ WF_DRAGGING = 1 << 3, ///< Window is being dragged
+ WF_SCROLL_UP = 1 << 4, ///< Upper scroll button has been pressed, @see ScrollbarClickHandler()
+ WF_SCROLL_DOWN = 1 << 5, ///< Lower scroll button has been pressed, @see ScrollbarClickHandler()
+ WF_SCROLL_MIDDLE = 1 << 6, ///< Scrollbar scrolling, @see ScrollbarClickHandler()
WF_HSCROLL = 1 << 7,
WF_SIZING = 1 << 8,
- WF_STICKY = 1 << 9,
+ WF_STICKY = 1 << 9, ///< Window is made sticky by user
- WF_DISABLE_VP_SCROLL = 1 << 10,
+ WF_DISABLE_VP_SCROLL = 1 << 10, ///< Window does not do autoscroll, @see HandleAutoscroll()
WF_WHITE_BORDER_ONE = 1 << 11,
WF_WHITE_BORDER_MASK = 1 << 12 | WF_WHITE_BORDER_ONE,
@@ -487,11 +534,6 @@
void CallWindowEventNP(Window *w, int event);
void CallWindowTickEvent();
-/**
- * Marks the window as dirty for repaint.
- *
- * @ingroup dirty
- */
void SetWindowDirty(const Window *w);
void SendWindowMessage(WindowClass wnd_class, WindowNumber wnd_num, int msg, int wparam, int lparam);
void SendWindowMessageClass(WindowClass wnd_class, int msg, int wparam, int lparam);
@@ -582,16 +624,8 @@
void ScrollbarClickHandler(Window *w, const Widget *wi, int x, int y);
-/** Evenly distribute some widgets when resizing horizontally (often a button row)
- * The widgets are presumed to be in a line and numberef from left to right (without gaps)
- * @param w widow to modify
- * @param left The leftmost widget to resize
- * @param right The rightmost widget to resize. Since right side of it is used, remember to set it to RESIZE_RIGHT
- */
void ResizeButtons(Window *w, byte left, byte right);
-/** Resize a widget an shuffle other widgets around to fit.
- */
void ResizeWindowForWidget(Window *w, int widget, int delta_x, int delta_y);