--- a/Makefile.src.in Mon Jul 16 21:11:29 2007 +0000
+++ b/Makefile.src.in Mon Jul 16 21:22:24 2007 +0000
@@ -61,7 +61,10 @@
# gcc 2.95.3 and lower, as it should indicate that it is a C-linkage, but the
# compiler can't handle that information (just don't ask). So we remove it
# and then it compiles happily and without bitching :)
-GCC295_FIX_2=sed -e 's|\(^\# [0-9][0-9]* "[^"]*"[ 0-9]*\) 4$$|\1|g'
+# Furthermore gcc 2.95 has some trouble with protected and private when
+# accessing the protected/private stuff of the enclosing class (or the
+# super class of the enclosing class).
+GCC295_FIX_2=sed -e 's|\(^\# [0-9][0-9]* "[^"]*"[ 0-9]*\) 4$$|\1|g;s|private:|public:|g;s|protected:|public:|g'
# Check if we want to show what we are doing
ifdef VERBOSE
--- a/os/debian/rules Mon Jul 16 21:11:29 2007 +0000
+++ b/os/debian/rules Mon Jul 16 21:22:24 2007 +0000
@@ -22,7 +22,7 @@
# Add here commands to compile the package.
- ./configure --prefix-dir=/usr --binary-dir=games --data-dir=share/games/openttd --icon-dir=share/pixmaps --personal-dir=.openttd --enable-install --install-dir=debian/openttd
+ ./configure --prefix-dir=/usr --binary-dir=games --data-dir=share/games/openttd --icon-dir=share/pixmaps --personal-dir=.openttd --install-dir=debian/openttd
$(MAKE)
#/usr/bin/docbook-to-man debian/openttd.sgml > openttd.1
--- a/projects/openttd.vcproj Mon Jul 16 21:11:29 2007 +0000
+++ b/projects/openttd.vcproj Mon Jul 16 21:22:24 2007 +0000
@@ -179,10 +179,10 @@
RelativePath=".\..\src\callback_table.cpp">
</File>
<File
- RelativePath=".\..\src\cargotype.cpp">
+ RelativePath=".\..\src\cargopacket.cpp">
</File>
<File
- RelativePath=".\..\src\cargopacket.cpp">
+ RelativePath=".\..\src\cargotype.cpp">
</File>
<File
RelativePath=".\..\src\command.cpp">
@@ -405,10 +405,10 @@
RelativePath=".\..\src\bmp.h">
</File>
<File
- RelativePath=".\..\src\cargotype.h">
+ RelativePath=".\..\src\cargopacket.h">
</File>
<File
- RelativePath=".\..\src\cargopacket.h">
+ RelativePath=".\..\src\cargotype.h">
</File>
<File
RelativePath=".\..\src\command.h">
--- a/source.list Mon Jul 16 21:11:29 2007 +0000
+++ b/source.list Mon Jul 16 21:22:24 2007 +0000
@@ -5,8 +5,8 @@
aystar.cpp
bmp.cpp
callback_table.cpp
+cargopacket.cpp
cargotype.cpp
-cargopacket.cpp
command.cpp
console.cpp
console_cmds.cpp
@@ -102,8 +102,8 @@
articulated_vehicles.h
aystar.h
bmp.h
+cargopacket.h
cargotype.h
-cargopacket.h
command.h
console.h
currency.h
--- a/src/aircraft_cmd.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/aircraft_cmd.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -10,6 +10,7 @@
#include "functions.h"
#include "landscape.h"
#include "station_map.h"
+#include "strings.h"
#include "table/strings.h"
#include "map.h"
#include "tile.h"
--- a/src/aircraft_gui.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/aircraft_gui.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -9,6 +9,7 @@
#include "functions.h"
#include "table/sprites.h"
#include "table/strings.h"
+#include "strings.h"
#include "map.h"
#include "window.h"
#include "gui.h"
--- a/src/autoreplace_cmd.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/autoreplace_cmd.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -138,11 +138,11 @@
* If not, chek if an global auto replacement is defined */
new_engine_type = (IsValidGroupID(old_v->group_id) && GetGroup(old_v->group_id)->replace_protection) ?
INVALID_ENGINE :
- EngineReplacementForPlayer(p, old_v->engine_type, DEFAULT_GROUP);
+ EngineReplacementForPlayer(p, old_v->engine_type, ALL_GROUP);
/* If we don't set new_egnine_type previously, we try to check if an autoreplacement was defined
* for the group and the engine_type of the vehicle */
- if (new_engine_type == INVALID_ENGINE && !IsDefaultGroupID(old_v->group_id)) {
+ if (new_engine_type == INVALID_ENGINE && !IsAllGroupID(old_v->group_id)) {
new_engine_type = EngineReplacementForPlayer(p, old_v->engine_type, old_v->group_id);
}
@@ -346,10 +346,15 @@
if (IsValidGroupID(w->group_id)) {
if (!EngineHasReplacementForPlayer(p, w->engine_type, w->group_id) && (
GetGroup(w->group_id)->replace_protection ||
- !EngineHasReplacementForPlayer(p, w->engine_type, DEFAULT_GROUP))) {
+ !EngineHasReplacementForPlayer(p, w->engine_type, ALL_GROUP))) {
continue;
}
- } else if (!EngineHasReplacementForPlayer(p, w->engine_type, DEFAULT_GROUP)) {
+ } else if (IsDefaultGroupID(w->group_id)) {
+ if (!EngineHasReplacementForPlayer(p, w->engine_type, DEFAULT_GROUP) &&
+ !EngineHasReplacementForPlayer(p, w->engine_type, ALL_GROUP)) {
+ continue;
+ }
+ } else if (!EngineHasReplacementForPlayer(p, w->engine_type, ALL_GROUP)) {
continue;
}
}
--- a/src/autoreplace_gui.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/autoreplace_gui.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -8,6 +8,7 @@
#include "functions.h"
#include "table/sprites.h"
#include "table/strings.h"
+#include "strings.h"
#include "window.h"
#include "gui.h"
#include "command.h"
@@ -48,7 +49,7 @@
{
Player *p = GetPlayer(_local_player);
byte type = GetEngine(e)->type;
- uint num_engines = IsDefaultGroupID(id_g) ? p->num_engines[e] : GetGroup(id_g)->num_engines[e];
+ uint num_engines = GetGroupNumEngines(id_g, e);
if (num_engines == 0 || p->num_engines[e] == 0) {
/* We don't have any of this engine type.
@@ -140,7 +141,6 @@
*/
static void GenerateReplaceVehList(Window *w, bool draw_left)
{
- Player *p = GetPlayer(_local_player);
EngineID e;
EngineID selected_engine = INVALID_ENGINE;
byte type = w->window_number;
@@ -154,7 +154,7 @@
if (draw_left) {
const GroupID selected_group = WP(w, replaceveh_d).sel_group;
- const uint num_engines = IsDefaultGroupID(selected_group) ? p->num_engines[e] : GetGroup(selected_group)->num_engines[e];
+ const uint num_engines = GetGroupNumEngines(selected_group, e);
/* Skip drawing the engines we don't have any of and haven't set for replacement */
if (num_engines == 0 && EngineReplacementForPlayer(GetPlayer(_local_player), e, selected_group) == INVALID_ENGINE) continue;
--- a/src/blitter/factory.hpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/blitter/factory.hpp Mon Jul 16 21:22:24 2007 +0000
@@ -39,7 +39,11 @@
if (name == NULL) return;
this->name = strdup(name);
- std::pair<Blitters::iterator, bool> P = GetBlitters().insert(Blitters::value_type(name, this));
+#if !defined(NDEBUG)
+ /* NDEBUG disables asserts and gives a warning: unused variable 'P' */
+ std::pair<Blitters::iterator, bool> P =
+#endif /* !NDEBUG */
+ GetBlitters().insert(Blitters::value_type(name, this));
assert(P.second);
}
--- a/src/bridge_gui.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/bridge_gui.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -5,6 +5,7 @@
#include "stdafx.h"
#include "openttd.h"
#include "table/strings.h"
+#include "strings.h"
#include "functions.h"
#include "map.h"
#include "window.h"
--- a/src/build_vehicle_gui.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/build_vehicle_gui.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -823,7 +823,6 @@
byte step_size = GetVehicleListHeight(type);
byte x_offset = 0;
byte y_offset = 0;
- Player *p = GetPlayer(_local_player);
assert(max <= EngList_Count(&eng_list));
@@ -854,7 +853,7 @@
for (; min < max; min++, y += step_size) {
const EngineID engine = eng_list[min];
- const uint num_engines = IsDefaultGroupID(selected_group) ? p->num_engines[engine] : GetGroup(selected_group)->num_engines[engine];
+ const uint num_engines = GetGroupNumEngines(selected_group, engine);
SetDParam(0, engine);
DrawString(x + x_offset, y, STR_ENGINE_NAME, engine == selected_id ? 0xC : 0x10);
--- a/src/command.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/command.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -5,6 +5,7 @@
#include "stdafx.h"
#include "openttd.h"
#include "table/strings.h"
+#include "strings.h"
#include "functions.h"
#include "landscape.h"
#include "map.h"
--- a/src/depot_gui.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/depot_gui.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -10,6 +10,7 @@
#include "ship.h"
#include "aircraft.h"
#include "table/strings.h"
+#include "strings.h"
#include "table/sprites.h"
#include "gui.h"
#include "gfx.h"
--- a/src/disaster_cmd.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/disaster_cmd.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -23,6 +23,7 @@
#include "industry_map.h"
#include "station_map.h"
#include "table/strings.h"
+#include "strings.h"
#include "map.h"
#include "tile.h"
#include "vehicle.h"
--- a/src/driver.h Mon Jul 16 21:11:29 2007 +0000
+++ b/src/driver.h Mon Jul 16 21:22:24 2007 +0000
@@ -79,7 +79,11 @@
strecpy(buf, GetDriverTypeName(type), lastof(buf));
strecpy(buf + 5, name, lastof(buf));
- std::pair<Drivers::iterator, bool> P = GetDrivers().insert(Drivers::value_type(buf, this));
+#if !defined(NDEBUG)
+ /* NDEBUG disables asserts and gives a warning: unused variable 'P' */
+ std::pair<Drivers::iterator, bool> P =
+#endif /* !NDEBUG */
+ GetDrivers().insert(Drivers::value_type(buf, this));
assert(P.second);
}
--- a/src/economy.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/economy.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -538,7 +538,7 @@
int32 price;
DrawStringCentered(w->width>>1, 1, STR_7059_TRANSPORT_COMPANY_MERGER, 0);
- COPY_IN_DPARAM(0,WP(w,news_d).ni->params, 2);
+ CopyInDParam(0,WP(w,news_d).ni->params, 2);
SetDParam(2, p->index);
price = WP(w,news_d).ni->params[2];
SetDParam(3, price);
@@ -552,7 +552,7 @@
case NB_BBANKRUPT:
DrawStringCentered(w->width>>1, 1, STR_705C_BANKRUPT, 0);
- COPY_IN_DPARAM(0,WP(w,news_d).ni->params, 2);
+ CopyInDParam(0,WP(w,news_d).ni->params, 2);
DrawStringMultiCenter(
((w->width - 101) >> 1) + 98,
90,
@@ -563,7 +563,7 @@
case NB_BNEWCOMPANY:
DrawStringCentered(w->width>>1, 1, STR_705E_NEW_TRANSPORT_COMPANY_LAUNCHED, 0);
SetDParam(0, p->index);
- COPY_IN_DPARAM(1,WP(w,news_d).ni->params, 2);
+ CopyInDParam(1,WP(w,news_d).ni->params, 2);
DrawStringMultiCenter(
((w->width - 101) >> 1) + 98,
90,
@@ -589,20 +589,20 @@
case NB_BMERGER:
SetDParam(0, STR_7059_TRANSPORT_COMPANY_MERGER);
SetDParam(1, STR_705A_HAS_BEEN_SOLD_TO_FOR);
- COPY_IN_DPARAM(2,ni->params, 2);
+ CopyInDParam(2,ni->params, 2);
SetDParam(4, p->index);
- COPY_IN_DPARAM(5,ni->params + 2, 1);
+ CopyInDParam(5,ni->params + 2, 1);
return STR_02B6;
case NB_BBANKRUPT:
SetDParam(0, STR_705C_BANKRUPT);
SetDParam(1, STR_705D_HAS_BEEN_CLOSED_DOWN_BY);
- COPY_IN_DPARAM(2,ni->params, 2);
+ CopyInDParam(2,ni->params, 2);
return STR_02B6;
case NB_BNEWCOMPANY:
SetDParam(0, STR_705E_NEW_TRANSPORT_COMPANY_LAUNCHED);
SetDParam(1, STR_705F_STARTS_CONSTRUCTION_NEAR);
SetDParam(2, p->index);
- COPY_IN_DPARAM(3,ni->params, 2);
+ CopyInDParam(3,ni->params, 2);
return STR_02B6;
default:
NOT_REACHED();
--- a/src/engine.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/engine.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -507,7 +507,7 @@
er->to = INVALID_ENGINE;
er->next = NULL;
- er->group_id = DEFAULT_GROUP;
+ er->group_id = ALL_GROUP;
return er;
}
@@ -636,8 +636,12 @@
er = GetEngineRenew(index);
SlObject(er, _engine_renew_desc);
- /* Advanced vehicle lists got added */
- if (CheckSavegameVersion(60)) er->group_id = DEFAULT_GROUP;
+ /* Advanced vehicle lists, ungrouped vehicles got added */
+ if (CheckSavegameVersion(60)) {
+ er->group_id = ALL_GROUP;
+ } else if (CheckSavegameVersion(71)) {
+ if (er->group_id == DEFAULT_GROUP) er->group_id = ALL_GROUP;
+ }
}
}
--- a/src/engine_gui.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/engine_gui.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -5,6 +5,7 @@
#include "stdafx.h"
#include "openttd.h"
#include "table/strings.h"
+#include "strings.h"
#include "table/sprites.h"
#include "functions.h"
#include "window.h"
--- a/src/graph_gui.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/graph_gui.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -5,6 +5,7 @@
#include "stdafx.h"
#include "openttd.h"
#include "table/strings.h"
+#include "strings.h"
#include "table/sprites.h"
#include "functions.h"
#include "window.h"
--- a/src/group.h Mon Jul 16 21:11:29 2007 +0000
+++ b/src/group.h Mon Jul 16 21:22:24 2007 +0000
@@ -8,6 +8,7 @@
#include "oldpool.h"
enum {
+ ALL_GROUP = 0xFFFD,
DEFAULT_GROUP = 0xFFFE,
INVALID_GROUP = 0xFFFF,
};
@@ -50,7 +51,17 @@
static inline bool IsDefaultGroupID(GroupID index)
{
- return (index == DEFAULT_GROUP);
+ return index == DEFAULT_GROUP;
+}
+
+/**
+ * Checks if a GroupID stands for all vehicles of a player
+ * @param id_g The GroupID to check
+ * @return true is id_g is identical to ALL_GROUP
+ */
+static inline bool IsAllGroupID(GroupID id_g)
+{
+ return id_g == ALL_GROUP;
}
#define FOR_ALL_GROUPS_FROM(g, start) for (g = GetGroup(start); g != NULL; g = (g->index + 1U < GetGroupPoolSize()) ? GetGroup(g->index + 1) : NULL) if (IsValidGroup(g))
@@ -69,6 +80,25 @@
return num;
}
+/**
+ * Get the number of engines with EngineID id_e in the group with GroupID
+ * id_g
+ * @param id_g The GroupID of the group used
+ * @param id_e The EngineID of the engine to count
+ * @return The number of engines with EngineID id_e in the group
+ */
+static inline uint GetGroupNumEngines(GroupID id_g, EngineID id_e)
+{
+ if (IsValidGroupID(id_g)) return GetGroup(id_g)->num_engines[id_e];
+
+ uint num = GetPlayer(_local_player)->num_engines[id_e];
+ if (!IsDefaultGroupID(id_g)) return num;
+
+ const Group *g;
+ FOR_ALL_GROUPS(g) num -= g->num_engines[id_e];
+ return num;
+}
+
static inline void IncreaseGroupNumVehicle(GroupID id_g)
{
if (IsValidGroupID(id_g)) GetGroup(id_g)->num_vehicle++;
--- a/src/group_gui.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/group_gui.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -112,6 +112,7 @@
GRP_WIDGET_STICKY,
GRP_WIDGET_EMPTY_TOP_LEFT,
GRP_WIDGET_ALL_VEHICLES,
+ GRP_WIDGET_DEFAULT_VEHICLES,
GRP_WIDGET_LIST_GROUP,
GRP_WIDGET_LIST_GROUP_SCROLLBAR,
GRP_WIDGET_SORT_BY_ORDER,
@@ -141,8 +142,9 @@
{ WWT_CAPTION, RESIZE_RIGHT, 14, 11, 513, 0, 13, 0x0, STR_018C_WINDOW_TITLE_DRAG_THIS},
{ WWT_STICKYBOX, RESIZE_LR, 14, 514, 525, 0, 13, 0x0, STR_STICKY_BUTTON},
{ WWT_PANEL, RESIZE_NONE, 14, 0, 200, 14, 25, 0x0, STR_NULL},
-{ WWT_PANEL, RESIZE_NONE, 14, 0, 200, 26, 39, 0x0, STR_NULL},
-{ WWT_MATRIX, RESIZE_BOTTOM, 14, 0, 188, 39, 220, 0x701, STR_GROUPS_CLICK_ON_GROUP_FOR_TIP},
+{ WWT_PANEL, RESIZE_NONE, 14, 0, 200, 26, 38, 0x0, STR_NULL},
+{ WWT_PANEL, RESIZE_NONE, 14, 0, 200, 39, 52, 0x0, STR_NULL},
+{ WWT_MATRIX, RESIZE_BOTTOM, 14, 0, 188, 52, 220, 0x701, STR_GROUPS_CLICK_ON_GROUP_FOR_TIP},
{ WWT_SCROLLBAR, RESIZE_BOTTOM, 14, 189, 200, 26, 220, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST},
{ WWT_PUSHTXTBTN, RESIZE_NONE, 14, 201, 281, 14, 25, STR_SORT_BY, STR_SORT_ORDER_TIP},
{ WWT_PANEL, RESIZE_NONE, 14, 282, 435, 14, 25, 0x0, STR_SORT_CRITERIA_TIP},
@@ -181,13 +183,13 @@
default: NOT_REACHED();
case VEH_TRAIN:
case VEH_ROAD:
- w->vscroll.cap = 14;
+ w->vscroll.cap = 13;
w->vscroll2.cap = 8;
w->resize.step_height = PLY_WND_PRC__SIZE_OF_ROW_SMALL;
break;
case VEH_SHIP:
case VEH_AIRCRAFT:
- w->vscroll.cap = 10;
+ w->vscroll.cap = 9;
w->vscroll2.cap = 4;
w->resize.step_height = PLY_WND_PRC__SIZE_OF_ROW_BIG2;
break;
@@ -214,7 +216,7 @@
gl->l.flags = VL_REBUILD | VL_NONE;
gl->l.resort_timer = DAY_TICKS * PERIODIC_RESORT_DAYS; // Set up resort timer
- gv->group_sel = DEFAULT_GROUP;
+ gv->group_sel = ALL_GROUP;
switch (gv->vehicle_type) {
case VEH_TRAIN:
@@ -275,8 +277,8 @@
INVALID_STRING_ID
};
- action_str[3] = IsDefaultGroupID(gid) ? INVALID_STRING_ID : STR_GROUP_ADD_SHARED_VEHICLE;
- action_str[4] = IsDefaultGroupID(gid) ? INVALID_STRING_ID : STR_GROUP_REMOVE_ALL_VEHICLES;
+ action_str[3] = IsValidGroupID(gid) ? STR_GROUP_ADD_SHARED_VEHICLE : INVALID_STRING_ID;
+ action_str[4] = IsValidGroupID(gid) ? STR_GROUP_REMOVE_ALL_VEHICLES : INVALID_STRING_ID;
ShowDropDownMenu(w, action_str, 0, GRP_WIDGET_MANAGE_VEHICLES_DROPDOWN, 0, 0);
}
@@ -314,9 +316,9 @@
int max;
int i;
- /* If we select the default group, gv->list will contain all vehicles of the player
+ /* If we select the all vehicles, gv->list will contain all vehicles of the player
* else gv->list will contain all vehicles which belong to the selected group */
- BuildVehicleList(gv, owner, gv->group_sel, IsDefaultGroupID(gv->group_sel) ? VLW_STANDARD : VLW_GROUP_LIST);
+ BuildVehicleList(gv, owner, gv->group_sel, IsAllGroupID(gv->group_sel) ? VLW_STANDARD : VLW_GROUP_LIST);
SortVehicleList(gv);
@@ -334,16 +336,16 @@
GRP_WIDGET_MANAGE_VEHICLES_DROPDOWN,
WIDGET_LIST_END);
- /* Disable the group specific function when we select the default group */
- SetWindowWidgetsDisabledState(w, IsDefaultGroupID(gv->group_sel),
+ /* Disable the group specific function when we select the default group or all vehicles */
+ SetWindowWidgetsDisabledState(w, IsDefaultGroupID(gv->group_sel) || IsAllGroupID(gv->group_sel),
GRP_WIDGET_DELETE_GROUP,
GRP_WIDGET_RENAME_GROUP,
GRP_WIDGET_REPLACE_PROTECTION,
WIDGET_LIST_END);
- /* If selected_group == DEFAULT_GROUP, draw the standard caption
- We list all vehicles */
- if (IsDefaultGroupID(gv->group_sel)) {
+ /* If selected_group == DEFAULT_GROUP || ALL_GROUP, draw the standard caption
+ We list all vehicles or ungrouped vehicles */
+ if (IsDefaultGroupID(gv->group_sel) || IsAllGroupID(gv->group_sel)) {
SetDParam(0, p->index);
SetDParam(1, gv->l.list_length);
@@ -398,16 +400,32 @@
/* Draw Matrix Group
* The selected group is drawn in white */
- StringID str;
+ StringID str_all_veh, str_no_group_veh;
switch (gv->vehicle_type) {
- case VEH_TRAIN: str = STR_GROUP_ALL_TRAINS; break;
- case VEH_ROAD: str = STR_GROUP_ALL_ROADS; break;
- case VEH_SHIP: str = STR_GROUP_ALL_SHIPS; break;
- case VEH_AIRCRAFT: str = STR_GROUP_ALL_AIRCRAFTS; break;
+ case VEH_TRAIN:
+ str_all_veh = STR_GROUP_ALL_TRAINS;
+ str_no_group_veh = STR_GROUP_DEFAULT_TRAINS;
+ break;
+ case VEH_ROAD:
+ str_all_veh = STR_GROUP_ALL_ROADS;
+ str_no_group_veh = STR_GROUP_DEFAULT_ROADS;
+ break;
+ case VEH_SHIP:
+ str_all_veh = STR_GROUP_ALL_SHIPS;
+ str_no_group_veh = STR_GROUP_DEFAULT_SHIPS;
+ break;
+ case VEH_AIRCRAFT:
+ str_all_veh = STR_GROUP_ALL_AIRCRAFTS;
+ str_no_group_veh = STR_GROUP_DEFAULT_AIRCRAFTS;
+ break;
default: NOT_REACHED(); break;
}
- DrawString(10, y1, str, IsDefaultGroupID(gv->group_sel) ? 12 : 16);
+ DrawString(10, y1, str_all_veh, IsAllGroupID(gv->group_sel) ? 12 : 16);
+
+ y1 += 13;
+
+ DrawString(10, y1, str_no_group_veh, IsDefaultGroupID(gv->group_sel) ? 12 : 16);
max = min(w->vscroll.pos + w->vscroll.cap, gl->l.list_length);
for (i = w->vscroll.pos ; i < max ; ++i) {
@@ -491,6 +509,15 @@
return;
case GRP_WIDGET_ALL_VEHICLES: // All vehicles button
+ if (!IsAllGroupID(gv->group_sel)) {
+ gv->group_sel = ALL_GROUP;
+ gv->l.flags |= VL_REBUILD;
+ UpdateGroupActionDropdown(w, gv->group_sel);
+ SetWindowDirty(w);
+ }
+ break;
+
+ case GRP_WIDGET_DEFAULT_VEHICLES: // Ungrouped vehicles button
if (!IsDefaultGroupID(gv->group_sel)) {
gv->group_sel = DEFAULT_GROUP;
gv->l.flags |= VL_REBUILD;
@@ -500,7 +527,7 @@
break;
case GRP_WIDGET_LIST_GROUP: { // Matrix Group
- uint16 id_g = (e->we.click.pt.y - PLY_WND_PRC__OFFSET_TOP_WIDGET - 13) / PLY_WND_PRC__SIZE_OF_ROW_TINY;
+ uint16 id_g = (e->we.click.pt.y - PLY_WND_PRC__OFFSET_TOP_WIDGET - 26) / PLY_WND_PRC__SIZE_OF_ROW_TINY;
if (id_g >= w->vscroll.cap) return;
@@ -544,14 +571,14 @@
case GRP_WIDGET_DELETE_GROUP: { // Delete the selected group
GroupID group = gv->group_sel;
- gv->group_sel = DEFAULT_GROUP;
+ gv->group_sel = ALL_GROUP;
DoCommandP(0, group, 0, NULL, CMD_DELETE_GROUP | CMD_MSG(STR_GROUP_CAN_T_DELETE));
break;
}
case GRP_WIDGET_RENAME_GROUP: { // Rename the selected roup
- assert(!IsDefaultGroupID(gv->group_sel));
+ assert(IsValidGroupID(gv->group_sel));
const Group *g = GetGroup(gv->group_sel);
@@ -573,7 +600,7 @@
case GRP_WIDGET_START_ALL:
case GRP_WIDGET_STOP_ALL: { // Start/stop all vehicles of the list
- DoCommandP(0, gv->group_sel, ((IsDefaultGroupID(gv->group_sel) ? VLW_STANDARD : VLW_GROUP_LIST) & VLW_MASK)
+ DoCommandP(0, gv->group_sel, ((IsAllGroupID(gv->group_sel) ? VLW_STANDARD : VLW_GROUP_LIST) & VLW_MASK)
| (1 << 6)
| (e->we.click.widget == GRP_WIDGET_START_ALL ? (1 << 5) : 0)
| gv->vehicle_type, NULL, CMD_MASS_START_STOP);
@@ -582,7 +609,7 @@
}
case GRP_WIDGET_REPLACE_PROTECTION:
- if (!IsDefaultGroupID(gv->group_sel)) {
+ if (IsValidGroupID(gv->group_sel)) {
const Group *g = GetGroup(gv->group_sel);
DoCommandP(0, gv->group_sel, !g->replace_protection, NULL, CMD_SET_GROUP_REPLACE_PROTECTION);
@@ -594,7 +621,8 @@
case WE_DRAGDROP: {
switch (e->we.click.widget) {
- case GRP_WIDGET_ALL_VEHICLES: // All trains
+ case GRP_WIDGET_ALL_VEHICLES: // All vehicles
+ case GRP_WIDGET_DEFAULT_VEHICLES: // Ungrouped vehicles
DoCommandP(0, DEFAULT_GROUP, gv->vehicle_sel, NULL, CMD_ADD_VEHICLE_GROUP | CMD_MSG(STR_GROUP_CAN_T_ADD_VEHICLE));
gv->vehicle_sel = INVALID_VEHICLE;
@@ -604,7 +632,7 @@
break;
case GRP_WIDGET_LIST_GROUP: { // Maxtrix group
- uint16 id_g = (e->we.click.pt.y - PLY_WND_PRC__OFFSET_TOP_WIDGET - 13) / PLY_WND_PRC__SIZE_OF_ROW_TINY;
+ uint16 id_g = (e->we.click.pt.y - PLY_WND_PRC__OFFSET_TOP_WIDGET - 26) / PLY_WND_PRC__SIZE_OF_ROW_TINY;
const VehicleID vindex = gv->vehicle_sel;
gv->vehicle_sel = INVALID_VEHICLE;
@@ -691,21 +719,21 @@
ShowReplaceGroupVehicleWindow(gv->group_sel, gv->vehicle_type);
break;
case 1: // Send for servicing
- DoCommandP(0, gv->group_sel, ((IsDefaultGroupID(gv->group_sel) ? VLW_STANDARD : VLW_GROUP_LIST) & VLW_MASK)
+ DoCommandP(0, gv->group_sel, ((IsAllGroupID(gv->group_sel) ? VLW_STANDARD : VLW_GROUP_LIST) & VLW_MASK)
| DEPOT_MASS_SEND
| DEPOT_SERVICE, NULL, GetCmdSendToDepot(gv->vehicle_type));
break;
case 2: // Send to Depots
- DoCommandP(0, gv->group_sel, ((IsDefaultGroupID(gv->group_sel) ? VLW_STANDARD : VLW_GROUP_LIST) & VLW_MASK)
+ DoCommandP(0, gv->group_sel, ((IsAllGroupID(gv->group_sel) ? VLW_STANDARD : VLW_GROUP_LIST) & VLW_MASK)
| DEPOT_MASS_SEND, NULL, GetCmdSendToDepot(gv->vehicle_type));
break;
case 3: // Add shared Vehicles
- assert(!IsDefaultGroupID(gv->group_sel));
+ assert(IsValidGroupID(gv->group_sel));
DoCommandP(0, gv->group_sel, gv->vehicle_type, NULL, CMD_ADD_SHARED_VEHICLE_GROUP | CMD_MSG(STR_GROUP_CAN_T_ADD_SHARED_VEHICLE));
break;
case 4: // Remove all Vehicles from the selected group
- assert(!IsDefaultGroupID(gv->group_sel));
+ assert(IsValidGroupID(gv->group_sel));
DoCommandP(0, gv->group_sel, gv->vehicle_type, NULL, CMD_REMOVE_ALL_VEHICLES_GROUP | CMD_MSG(STR_GROUP_CAN_T_REMOVE_ALL_VEHICLES));
break;
--- a/src/industry.h Mon Jul 16 21:11:29 2007 +0000
+++ b/src/industry.h Mon Jul 16 21:22:24 2007 +0000
@@ -49,11 +49,19 @@
CHECK_END,
};
+/** How was the industry created */
enum IndustryConstructionType {
- ICT_UNKNOWN,
- ICT_NORMAL_GAMEPLAY,
- ICT_MAP_GENERATION,
- ICT_SCENARIO_EDITOR
+ ICT_UNKNOWN, ///< in previous game version or without newindustries activated
+ ICT_NORMAL_GAMEPLAY, ///< either by user or random creation proccess
+ ICT_MAP_GENERATION, ///< during random map creation
+ ICT_SCENARIO_EDITOR ///< while scenarion edition
+};
+
+/** From where is callback CBID_INDUSTRY_AVAILABLE been called */
+enum IndustryAvailabilityCallType {
+ IACT_MAPGENERATION, ///< during random map generation
+ IACT_RANDOMCREATION, ///< during creation of random ingame industry
+ IACT_USERCREATION, ///< from the Fund/build window
};
enum IndustyBehaviour {
--- a/src/industry_cmd.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/industry_cmd.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -9,6 +9,7 @@
#include "industry_map.h"
#include "station_map.h"
#include "table/strings.h"
+#include "strings.h"
#include "table/sprites.h"
#include "map.h"
#include "tile.h"
@@ -68,6 +69,12 @@
memcpy(&_industry_tile_specs, &_origin_industry_tile_specs, sizeof(_origin_industry_tile_specs));
}
+void ResetIndustryCreationProbility(IndustryType type)
+{
+ assert(type < INVALID_INDUSTRYTYPE);
+ _industry_specs[type].appear_creation[_opt.landscape] = 0;
+}
+
/**
* Called if a new block is added to the industry-pool
*/
@@ -1666,16 +1673,21 @@
const IndustrySpec *ind_spc;
/* Find the total amount of industries */
- for (it = IT_COAL_MINE; it < NUM_INDUSTRYTYPES; it++) {
+ if (_opt.diff.number_industries > 0) {
+ for (it = IT_COAL_MINE; it < NUM_INDUSTRYTYPES; it++) {
- ind_spc = GetIndustrySpec(it);
- if (ind_spc->enabled) {
+ ind_spc = GetIndustrySpec(it);
+
+ if (!CheckIfCallBackAllowsAvailability(it, IACT_MAPGENERATION)) {
+ ResetIndustryCreationProbility(it);
+ }
+
chance = ind_spc->appear_creation[_opt.landscape];
- if (chance > 0) {
+ if (ind_spc->enabled && chance > 0) {
/* once the chance of appearance is determind, it have to be scaled by
* the difficulty level. The "chance" in question is more an index into
* the _numof_industry_table,in fact */
- int num = _numof_industry_table[_opt.diff.number_industries][chance];
+ int num = (chance < 11) ? chance : _numof_industry_table[_opt.diff.number_industries][chance];
/* These are always placed next to the coastline, so we scale by the perimeter instead. */
num = (ind_spc->check_proc == CHECK_REFINERY || ind_spc->check_proc == CHECK_OIL_RIG) ? ScaleByMapSize1D(num) : ScaleByMapSize(num);
@@ -1686,18 +1698,20 @@
SetGeneratingWorldProgress(GWP_INDUSTRY, i);
- for (it = IT_COAL_MINE; it < NUM_INDUSTRYTYPES; it++) {
- /* Once the number of industries has been determined, let's really create them.
- * The test for chance allows us to try create industries that are available only
- * for this landscape.
- * @todo : Do we really have to pass chance as un-scaled value, since we've already
- * processed that scaling above? No, don't think so. Will find a way. */
- ind_spc = GetIndustrySpec(it);
- if (ind_spc->enabled) {
- chance = ind_spc->appear_creation[_opt.landscape];
- if (chance > 0) PlaceInitialIndustry(it, chance);
+ if (_opt.diff.number_industries > 0) {
+ for (it = IT_COAL_MINE; it < NUM_INDUSTRYTYPES; it++) {
+ /* Once the number of industries has been determined, let's really create them.
+ * The test for chance allows us to try create industries that are available only
+ * for this landscape.
+ * @todo : Do we really have to pass chance as un-scaled value, since we've already
+ * processed that scaling above? No, don't think so. Will find a way. */
+ ind_spc = GetIndustrySpec(it);
+ if (ind_spc->enabled) {
+ chance = ind_spc->appear_creation[_opt.landscape];
+ if (chance > 0) PlaceInitialIndustry(it, chance);
+ }
}
- };
+ }
}
/* Change industry production or do closure */
@@ -1824,8 +1838,9 @@
for (j = 0; j < NUM_INDUSTRYTYPES; j++) {
byte chance = GetIndustrySpec(j)->appear_ingame[_opt.landscape];
- /* if appearing chance for this landscape is above 0, this industry can be chosen */
- if (chance != 0) {
+ /* If there is no Callback CBID_INDUSTRY_AVAILABLE or if this one did anot failed,
+ * and if appearing chance for this landscape is above 0, this industry can be chosen */
+ if (CheckIfCallBackAllowsAvailability(j, IACT_RANDOMCREATION) && chance != 0) {
probability_max += chance;
/* adds the result for this industry */
cumulative_probs[num].ind = j;
--- a/src/intro_gui.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/intro_gui.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -5,6 +5,7 @@
#include "stdafx.h"
#include "openttd.h"
#include "table/strings.h"
+#include "strings.h"
#include "table/sprites.h"
#include "functions.h"
#include "window.h"
--- a/src/lang/brazilian_portuguese.txt Mon Jul 16 21:11:29 2007 +0000
+++ b/src/lang/brazilian_portuguese.txt Mon Jul 16 21:22:24 2007 +0000
@@ -3337,6 +3337,10 @@
STR_GROUP_ALL_ROADS :Todos os automóveis
STR_GROUP_ALL_SHIPS :Todos os navios
STR_GROUP_ALL_AIRCRAFTS :Todas as aeronaves
+STR_GROUP_DEFAULT_TRAINS :Trens sem grupo
+STR_GROUP_DEFAULT_ROADS :Automóveis sem grupo
+STR_GROUP_DEFAULT_SHIPS :Navios sem grupo
+STR_GROUP_DEFAULT_AIRCRAFTS :Aeronaves sem grupo
STR_GROUP_TINY_NUM :{TINYFONT}{COMMA}
STR_GROUP_ADD_SHARED_VEHICLE :Adicionar veículos compartilhados
STR_GROUP_REMOVE_ALL_VEHICLES :Remover todos os veículos
--- a/src/lang/catalan.txt Mon Jul 16 21:11:29 2007 +0000
+++ b/src/lang/catalan.txt Mon Jul 16 21:22:24 2007 +0000
@@ -3333,6 +3333,10 @@
STR_GROUP_ALL_ROADS :Tots els vehicles
STR_GROUP_ALL_SHIPS :Tots els vaixells
STR_GROUP_ALL_AIRCRAFTS :Tots els avions
+STR_GROUP_DEFAULT_TRAINS :Trens desagrupats
+STR_GROUP_DEFAULT_ROADS :Vehicles desagrupats
+STR_GROUP_DEFAULT_SHIPS :Vaixells desagrupats
+STR_GROUP_DEFAULT_AIRCRAFTS :Avions desagrupats
STR_GROUP_TINY_NUM :{TINYFONT}{COMMA}
STR_GROUP_ADD_SHARED_VEHICLE :Afegeix vehicles compartits
STR_GROUP_REMOVE_ALL_VEHICLES :Treu tots els vehicles
--- a/src/lang/croatian.txt Mon Jul 16 21:11:29 2007 +0000
+++ b/src/lang/croatian.txt Mon Jul 16 21:22:24 2007 +0000
@@ -1035,6 +1035,10 @@
STR_CONFIG_PATCHES_SELECTGOODS :{LTBLUE}Dostavi teret u stanicu samo ako u njoj postoji potražnja: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LONGBRIDGES :{LTBLUE}Dopusti izgradnju vrlo dugačkih mostova: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GOTODEPOT :{LTBLUE}Dopusti naredbe za slanje u spremište: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD :{LTBLUE}Ručna metoda izgradnje za primarnu industriju: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :ništa
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :kao i druge industrije
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :prospektivno
STR_CONFIG_PATCHES_MULTIPINDTOWN :{LTBLUE}Dopusti više sličnih industrija po gradu: {ORANGE}{STRING}
STR_CONFIG_PATCHES_SAMEINDCLOSE :{LTBLUE}Moguće je graditi spojene industrije iste vrste: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LONGDATE :{LTBLUE}Uvijek prikaži dugi datum u statusnoj traci: {ORANGE}{STRING}
@@ -1115,6 +1119,7 @@
STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_LAST :Zadnji dostupan
STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED :Najčešće korišten
+STR_CONFIG_PATCHES_ALWAYS_BUILD_INFRASTRUCTURE :{LTBLUE}Prikaži alate za građanje kada su prikladna vozila nedostupna: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MAX_TRAINS :{LTBLUE}Maksimalan broj vlakova po igraču: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MAX_ROADVEH :{LTBLUE}Maximalan broj cestovnih vozila po igraču: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MAX_AIRCRAFT :{LTBLUE}Maksimalan broj zrakoplova po igraču: {ORANGE}{STRING}
@@ -1170,6 +1175,7 @@
STR_CONFIG_PATCHES_TOWN_GROWTH_VERY_FAST :Vrlo brzo
STR_CONFIG_PATCHES_LARGER_TOWNS :{LTBLUE}Proporcije mjesta koja će postati gradovi: {ORANGE}1 u {STRING}
STR_CONFIG_PATCHES_LARGER_TOWNS_DISABLED :{LTBLUE}Proporcije mjesta koja će postati gradovi: {ORANGE} Ništa
+STR_CONFIG_PATCHES_CITY_SIZE_MULTIPLIER :{LTBLUE}Početni množitelj veličine grada: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GUI :{BLACK}Sučelje
STR_CONFIG_PATCHES_CONSTRUCTION :{BLACK}Izgradnja
@@ -1196,7 +1202,7 @@
STR_CHEATS :{WHITE}Varanje
STR_CHEATS_TIP :{BLACK}Kvačice ukazuju na to jesi li koristio ovo varanje prije
STR_CHEATS_WARNING :{BLACK}Upozorenje! Upravo se spremaš izdati svoj kolege natjecatelje. Imaj na umu da se takva sramota pamti zauvijek.
-STR_CHEAT_MONEY :{LTBLUE}Povećava novce za {CURRENCY}
+STR_CHEAT_MONEY :{LTBLUE}Povećaj novce za iznos {CURRENCY}
STR_CHEAT_CHANGE_PLAYER :{LTBLUE}Igraj kao igrač: {ORANGE}{COMMA}
STR_CHEAT_EXTRA_DYNAMITE :{LTBLUE}Čudesni buldožer (uklanja industrije, nepokretne objekte): {ORANGE}{STRING}
STR_CHEAT_CROSSINGTUNNELS :{LTBLUE}Tuneli se mogu ukrštavati međusobno: {ORANGE}{STRING}
@@ -1845,6 +1851,8 @@
STR_3041_NOW_ACCEPTS_AND :{WHITE}{STATION} od sada prihvaća {STRING} i {STRING}
STR_3042_BUS_STATION_ORIENTATION :{WHITE}Smjer autobusne stanice
STR_3043_TRUCK_STATION_ORIENT :{WHITE}Smjer kamionskog terminala
+STR_3042_PASSENGER_TRAM_STATION_ORIENTATION :{WHITE}Orijentacija putničkog tramvaja
+STR_3043_CARGO_TRAM_STATION_ORIENT :{WHITE}Orijentacija tovarnog tramvaja
STR_3046_MUST_DEMOLISH_BUS_STATION :{WHITE}Prvo moraš uništiti autobusnu stanicu
STR_3047_MUST_DEMOLISH_TRUCK_STATION :{WHITE}Prvo moraš uništiti kamionski terminal
STR_3046_MUST_DEMOLISH_PASSENGER_TRAM_STATION :{WHITE}Morate prvo maknuti putničku tramvajsku stanicu
@@ -1973,6 +1981,13 @@
STR_4829_REQUIRES :{BLACK}Treba: {YELLOW}{STRING}, {STRING}, {STRING}
############ range for requires ends
+############ range for produces starts
+STR_INDUSTRY_WINDOW_WAITING_FOR_PROCESSING :{BLACK}Teret koji čeka obradu:
+STR_INDUSTRY_WINDOW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO}{BLACK}
+STR_4827_PRODUCES :{BLACK}Proizvodi: {YELLOW}{STRING}
+STR_4828_PRODUCES :{BLACK}Proizvodi: {YELLOW}{STRING}, {STRING}
+############ range for produces ends
+
STR_482A_PRODUCTION_LAST_MONTH :{BLACK}Prošlomjesečna proizvodnja:
STR_482B_TRANSPORTED :{YELLOW}{CARGO}{BLACK} ({COMMA}% prevezeno)
STR_482C_CENTER_THE_MAIN_VIEW_ON :{BLACK}Centriraj glavni pogled na položaj industrije
@@ -2262,6 +2277,7 @@
STR_7060_CAN_T_BUY_COMPANY :{WHITE}Ne možeš kupiti tvrtku...
STR_7061_CARGO_PAYMENT_RATES :{WHITE}Isplatne rate tereta
STR_7062_DAYS_IN_TRANSIT :{BLACK}{TINYFONT}Dana u tranzitu
+STR_7063_PAYMENT_FOR_DELIVERING :{BLACK}{TINYFONT}Plaćanje za dostavu 10 jedinica (ili 10,000 litara) tereta za udaljenost od 20 kvadrata
STR_7064_TOGGLE_GRAPH_FOR_CARGO :{BLACK}Aktiviraj/deaktiviraj graf za vrstu tereta
STR_7065 :{BLACK}{TINYFONT}{STRING}
STR_7066_ENGINEER :Inženjer
@@ -2284,6 +2300,7 @@
STR_SET_COMPANY_PASSWORD :Postavi zaporku tvrtke
STR_7073_WORLD_RECESSION_FINANCIAL :{BIGFONT}{BLACK}Svjetska recesija!{}{}Financijski stručnjaci očekuju najgore zbog ekonomske krize!
STR_7074_RECESSION_OVER_UPTURN_IN :{BIGFONT}{BLACK}Recesija završena!{}{}Obrat u trgovanu daje samopouzdanje gospodarstvu jer ekonomija jača!
+STR_7075_TOGGLE_LARGE_SMALL_WINDOW :{BLACK}Namjesti veliku/malu veličinu prozora
STR_7076_COMPANY_VALUE :{GOLD}Vrijednost tvrtke: {WHITE}{CURRENCY}
STR_7077_BUY_25_SHARE_IN_COMPANY :{BLACK}Kupi 25% udjela u tvrtci
STR_7078_SELL_25_SHARE_IN_COMPANY :{BLACK}Prodaj 25% udio u tvrtci
@@ -2296,11 +2313,14 @@
STR_707F_HAS_BEEN_TAKEN_OVER_BY :{BLACK}{BIGFONT}{COMPANY} je preuzeta od strane tvrtke {COMPANY}!
STR_7080_PROTECTED :{WHITE}Ova tvrka još nije dovoljno stara da bi trgovala udjelima...
+STR_LIVERY_DEFAULT :Standardna opskrba hranom
STR_LIVERY_STEAM :Parna lokomotva
STR_LIVERY_DIESEL :Dieselska lokomotiva
STR_LIVERY_ELECTRIC :Električna lokomotiva
STR_LIVERY_MONORAIL :Jednotračna lokomotiva
STR_LIVERY_MAGLEV :Maglevska lokomotiva
+STR_LIVERY_DMU :DMU
+STR_LIVERY_EMU :EMU
STR_LIVERY_PASSENGER_WAGON_STEAM :Lokomotiva s putnicima (Parna)
STR_LIVERY_PASSENGER_WAGON_DIESEL :Lokomotiva s putnicima (Dieselska)
STR_LIVERY_PASSENGER_WAGON_ELECTRIC :Lokomotiva s putnicima (Električna)
@@ -2312,7 +2332,17 @@
STR_LIVERY_HELICOPTER :Helikopter
STR_LIVERY_SMALL_PLANE :Mali zrakoplov
STR_LIVERY_LARGE_PLANE :Veliki zrakoplov
+STR_LIVERY_PASSENGER_TRAM :Putnički tramvaj
+STR_LIVERY_FREIGHT_TRAM :Tovarni tramvaj
+STR_LIVERY_GENERAL_TIP :{BLACK}Prikaži generalne sheme boja
+STR_LIVERY_TRAIN_TIP :{BLACK}Prikaži sheme boja za vlak
+STR_LIVERY_ROADVEH_TIP :{BLACK}Prikaži sheme boja za cestovno vozilo
+STR_LIVERY_SHIP_TIP :{BLACK}Prikaži sheme boja za brod
+STR_LIVERY_AIRCRAFT_TIP :{BLACK}Prikaži sheme boja za zrakoplov
+STR_LIVERY_PRIMARY_TIP :{BLACK}Izaberi primarnu boju za odabranu shemu
+STR_LIVERY_SECONDARY_TIP :{BLACK}Odaberi sekundardnu boju za odabranu shemu
+STR_LIVERY_PANEL_TIP :{BLACK}Izaberi shemu boja za promjenu, ili višestruke sheme pomoću CTRL+klik. Klikni na kućicu kako bi odredio uporabu sheme
##id 0x8000
STR_8000_KIRBY_PAUL_TANK_STEAM :Kirby Paul Tank (Para)
@@ -2367,6 +2397,7 @@
STR_8031_CANDY_VAN :Kombi za slatkiše
STR_8032_TOY_VAN :Kombi za igračke
STR_8033_BATTERY_TRUCK :Kamion za baterije
+STR_8034_FIZZY_DRINK_TRUCK :Kamion s gaziranim pićima
STR_8035_PLASTIC_TRUCK :Kamion za plastiku
STR_8036_X2001_ELECTRIC :'X2001' (Električni)
STR_8037_MILLENNIUM_Z1_ELECTRIC :'Millennium Z1' (Električni)
@@ -2396,12 +2427,14 @@
STR_804F_CANDY_VAN :Kombi za slatkiše
STR_8050_TOY_VAN :Kombi za igračke
STR_8051_BATTERY_TRUCK :Kamion za baterije
+STR_8052_FIZZY_DRINK_TRUCK :Kamion s gaziranim pićima
STR_8053_PLASTIC_TRUCK :Kamion za plastiku
STR_8054_LEV1_LEVIATHAN_ELECTRIC :Lev1 'Leviathan' (Električni)
STR_8055_LEV2_CYCLOPS_ELECTRIC :Lev2 'Cyclops' (Električni)
STR_8056_LEV3_PEGASUS_ELECTRIC :Lev3 'Pegasus' (Električni)
STR_8057_LEV4_CHIMAERA_ELECTRIC :Lev4 'Chimaera' (Električni)
STR_8058_WIZZOWOW_ROCKETEER :Wizzowow Rocketeer
+STR_8059_PASSENGER_CAR :Putnički vagon
STR_805A_MAIL_VAN :Poštanski kombi
STR_805B_COAL_CAR :Kamion za ugljen
STR_805C_OIL_TANKER :Naftna cisterna
@@ -2426,6 +2459,8 @@
STR_806F_CANDY_VAN :Kombi za slatkiše
STR_8070_TOY_VAN :Kombi za igračke
STR_8071_BATTERY_TRUCK :Kamion za baterije
+STR_8072_FIZZY_DRINK_TRUCK :Kamion s gaziranim pićima
+STR_8073_PLASTIC_TRUCK :Kamion s plastikom
STR_8074_MPS_REGAL_BUS :MPS Regal Bus
STR_8075_HEREFORD_LEOPARD_BUS :Hereford Leopard Bus
STR_8076_FOSTER_BUS :Foster Bus
@@ -2433,6 +2468,12 @@
STR_8078_PLODDYPHUT_MKI_BUS :Ploddyphut MkI Bus
STR_8079_PLODDYPHUT_MKII_BUS :Ploddyphut MkII Bus
STR_807A_PLODDYPHUT_MKIII_BUS :Ploddyphut MkIII Bus
+STR_807B_BALOGH_COAL_TRUCK :Balogh kamion s ugljenom
+STR_807C_UHL_COAL_TRUCK :Uhl kamion s ugljenom
+STR_807D_DW_COAL_TRUCK :DW kamion s ugljenom
+STR_807E_MPS_MAIL_TRUCK :MPS poštanski kamion
+STR_807F_REYNARD_MAIL_TRUCK :Reynard poštanski kamion
+STR_8080_PERRY_MAIL_TRUCK :Perry poštanski kamion
STR_8081_MIGHTYMOVER_MAIL_TRUCK :MightyMover Poštanski Kamion
STR_8082_POWERNAUGHT_MAIL_TRUCK :Powernaught Poštanski Kamion
STR_8083_WIZZOWOW_MAIL_TRUCK :Wizzwow Poštanski Kamion
@@ -2502,6 +2543,12 @@
STR_80C3_MIGHTYMOVER_FIZZY_DRINK :MightyMover Kamion za gazirana pića
STR_80C4_POWERNAUGHT_FIZZY_DRINK :Powernaught Kamion za gazirana pića
STR_80C5_WIZZOWOW_FIZZY_DRINK_TRUCK :Wizzwow Kamion za gazirana pića
+STR_80C6_MIGHTYMOVER_PLASTIC_TRUCK :MightyMover kamion s plastikom
+STR_80C7_POWERNAUGHT_PLASTIC_TRUCK :Powernaught kamion s plastikom
+STR_80C8_WIZZOWOW_PLASTIC_TRUCK :Wizzowow kamion s plastikom
+STR_80C9_MIGHTYMOVER_BUBBLE_TRUCK :MightyMover kamion s žvakačim gumama
+STR_80CA_POWERNAUGHT_BUBBLE_TRUCK :Powernaught kamion s žvakačim gumama
+STR_80CB_WIZZOWOW_BUBBLE_TRUCK :Wizzowow kamion s žvakačim gumama
STR_80CC_MPS_OIL_TANKER :MPS Tanker Ulja
STR_80CD_CS_INC_OIL_TANKER :CS-Inc. Tanker Ulja
STR_80CE_MPS_PASSENGER_FERRY :MPS Trajekt
@@ -2591,21 +2638,26 @@
STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Putovanje (bez rasporeda)
STR_TIMETABLE_TRAVEL_FOR :Putovanje za {STRING}
STR_TIMETABLE_STAY_FOR :i boravak za {STRING}
+STR_TIMETABLE_DAYS :{COMMA} dan{P "" a a}
+STR_TIMETABLE_TICKS :{COMMA} tik{P "" a ova}
STR_HEADING_FOR_TRAIN_DEPOT :{ORANGE} Krećem za {TOWN} Željezničko Skladište
STR_HEADING_FOR_TRAIN_DEPOT_VEL :{ORANGE} Krećem za {TOWN} Željezničko Skladište, {VELOCITY}
STR_HEADING_FOR_TRAIN_DEPOT_SERVICE :{LTBLUE}Servis u {TOWN} Željezničkom Skladištu
+STR_HEADING_FOR_TRAIN_DEPOT_SERVICE_VEL :{LTBLUE}Servis kod {TOWN} spremište vlakova, {VELOCITY}
STR_INVALID_ORDER :{RED} (Neispravna naredba)
STR_UNKNOWN_DESTINATION :nepoznato odredište
STR_8812_EMPTY :{LTBLUE}Prazan
STR_8813_FROM :{LTBLUE}{CARGO} iz {STATION}
+STR_FROM_MULT :{LTBLUE}{CARGO} iz {STATION} (x{NUM})
STR_8814_TRAIN_IS_WAITING_IN_DEPOT :{WHITE}Vlak {COMMA} čeka u spremištu
STR_8815_NEW_VEHICLES :{BLACK}Nova vozila
STR_8816 :{BLACK}-
STR_8819_TRAIN_TOO_LONG :{WHITE}Vlak predugačak
STR_881A_TRAINS_CAN_ONLY_BE_ALTERED :{WHITE}Vlakovi mogu biti izmjenjeni jedino kad su zaustavljeni u spremištu
+STR_881B_TRAINS :{WHITE}{COMPANY} - {COMMA} Vlak{P "" a ova}
STR_881C_NEW_RAIL_VEHICLES :{WHITE}Nova željeznička vozila
STR_NEW_ELRAIL_VEHICLES :{WHITE}Nova vozila električne pruge
@@ -2691,10 +2743,13 @@
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
+STR_TIMETABLE_RESET_LATENESS_TOOLTIP :{BLACK}Resetiraj brojač kašnjenja, kako bi vozilo stiglo na vrijeme
STR_SERVICE_HINT :{BLACK}Preskoči ovu narudžbu osim ako servis nije potreban
STR_VEHICLE_INFO_COST_WEIGHT_SPEED_POWER :{BLACK}Trošak: {CURRENCY} Težina: {WEIGHT_S}{}Brzina: {VELOCITY} Snaga: {POWER}{}Troškovi održavanja: {CURRENCY}/god{}Kapacitet: {CARGO}
STR_885C_BROKEN_DOWN :{RED}Pokvaren
STR_885D_AGE_RUNNING_COST_YR :{BLACK}Starost: {LTBLUE}{STRING}{BLACK} Troškovi uporabe: {LTBLUE}{CURRENCY}/god
+STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED :{BLACK}Težina {LTBLUE}{WEIGHT_S} {BLACK}Snaga: {LTBLUE}{POWER}{BLACK} Maks. brzina: {LTBLUE}{VELOCITY}
+STR_VEHICLE_INFO_WEIGHT_POWER_MAX_SPEED_MAX_TE :{BLACK}Težina: {LTBLUE}{WEIGHT_S} {BLACK}Snaga: {LTBLUE}{POWER}{BLACK} Maks. brzina: {LTBLUE}{VELOCITY} {BLACK}Maks. T.E.: {LTBLUE}{FORCE}
STR_885F_PROFIT_THIS_YEAR_LAST_YEAR :{BLACK}Zarada ove godine: {LTBLUE}{CURRENCY} (prošle godine: {CURRENCY})
STR_8860_RELIABILITY_BREAKDOWNS :{BLACK}Pouzdanost: {LTBLUE}{COMMA}% {BLACK}Kvarova od zadnjeg servisa: {LTBLUE}{COMMA}
STR_8861_STOPPED :{RED}Zaustavljen
@@ -2710,12 +2765,14 @@
STR_886B_CAN_T_RENAME_TRAIN_VEHICLE :{WHITE}Ne mogu preimenovati tip vagona...
STR_886D_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Naprvi da označeni red prisili vozilo da izbaci teret
STR_886F_TRANSFER :{BLACK}Transfer
-STR_CLEAR_TIME :{BLACK}Obriši Vrijeme
+STR_CLEAR_TIME :{BLACK}Obriši vrijeme
STR_RESET_LATENESS :{BLACK}Poništi Brojač Kašnjenja
STR_TRAIN_STOPPING :{RED}Zaustavljam
STR_TRAIN_STOPPING_VEL :{RED}Zaustavljam, {VELOCITY}
STR_INCOMPATIBLE_RAIL_TYPES :Nekompatibilan tip tračnica
+STR_TRAIN_NO_POWER :{RED}Nema struje
+STR_TRAIN_START_NO_CATENARY :Ovim tračnicama nedostaje vučna užad, tako da vlak ne može krenuti
STR_NEW_VEHICLE_NOW_AVAILABLE :{BLACK}{BIGFONT}Novi {STRING} je sada dostupan!
STR_NEW_VEHICLE_TYPE :{BLACK}{BIGFONT}{ENGINE}
@@ -2735,6 +2792,7 @@
##id 0x9000
STR_9000_ROAD_VEHICLE_IN_THE_WAY :{WHITE}Cestovno vozilo na putu
+STR_9001_ROAD_VEHICLES :{WHITE}{COMPANY} - {COMMA} Cestovno vozilo{P "" a a}
STR_9002 :{WHITE}{VEHICLE}
STR_9003_ROAD_VEHICLE_DEPOT :{WHITE}{TOWN} Spremište cestovnih vozila
STR_9004_NEW_VEHICLES :{BLACK}Nova vozila
@@ -2781,6 +2839,7 @@
STR_902E_NAME_ROAD_VEHICLE :{BLACK}Imenuj cestovno vozilo
STR_902F_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Građani slave . . .{}Prvi bus stiže na {STATION}!
STR_9030_CITIZENS_CELEBRATE_FIRST :{BLACK}{BIGFONT}Građani slave . . .{}Prvi kamion stiže na {STATION}!
+STR_902F_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}Građani slave . . .{}Prvi putnički tramvaj stigao na stanicu {STATION}!
STR_9030_CITIZENS_CELEBRATE_FIRST_TRAM :{BLACK}{BIGFONT}Građani slave . . .{}Prvi teretni vlak je stigao u {STATION}!
STR_9031_ROAD_VEHICLE_CRASH_DRIVER :{BLACK}{BIGFONT}Sudar cestovnog vozila!{}Vozač poginuo u eksploziji nakon sudara s vlakom
STR_9032_ROAD_VEHICLE_CRASH_DIE :{BLACK}{BIGFONT}Sudar cestovnog vozila!{}{COMMA} poginulih u eksploziji nakon sudara s vlakom
@@ -2844,7 +2903,9 @@
STR_9827_CURRENT_SHIP_ACTION_CLICK :{BLACK}Trenutna radnja broda - pritisni ovdje za zaustavljanje/pokretanje broda
STR_9828_SHOW_SHIP_S_ORDERS :{BLACK}Prikaži naredbe broda
STR_9829_CENTER_MAIN_VIEW_ON_SHIP :{BLACK}Centriraj glavni pogled na lokaciju broda
+STR_982A_SEND_SHIP_TO_DEPOT :{BLACK}Pošalji brod u spremište. CTRL+klik će samo servisirati
STR_982B_SHOW_SHIP_DETAILS :{BLACK}Prikaži detalje broda
+STR_982E_COST_MAX_SPEED_CAPACITY :{BLACK}Trošak {CURRENCY} Maks. brzina: {VELOCITY}{}Kapacitet: {CARGO}{}Trošak uporabe: {CURRENCY}/god
STR_982F_NAME_SHIP :{BLACK}Imenuj brod
STR_9831_NAME_SHIP :{WHITE}Imenuj brod
@@ -2865,6 +2926,7 @@
STR_9840_NEW_CAPACITY_COST_OF_REFIT :{BLACK}Nova zapremnina: {GOLD}{CARGO}{}{BLACK}Cijena prenamjene: {GOLD}{CURRENCY}
STR_9841_CAN_T_REFIT_SHIP :{WHITE}Ne mogu prenamijeniti brod...
STR_9842_REFITTABLE :(prenamjenjiv)
+STR_GO_TO_SHIP_DEPOT :Idi u {TOWN} spremište brodova
SERVICE_AT_SHIP_DEPOT :Servis u brodskom spremištu grada {TOWN}
##id 0xA000
@@ -2874,6 +2936,7 @@
STR_A003_NEW_AIRCRAFT :{BLACK}Novi zrakoplov
STR_CLONE_AIRCRAFT :{BLACK}Kloniraj zrakoplov
STR_CLONE_AIRCRAFT_INFO :{BLACK}Ovo će izgraditi kopiju zrakoplova. Control-klik će dijeliti naredbe
+STR_CLONE_AIRCRAFT_INFO_HANGAR_WINDOW :{BLACK}Ovo će napraviti kopiju zrakoplova. Klikni ovaj gumb i onda na zrakoplov unutar ili izvan hangara. Control+klik će dijeliti naredbe.
STR_A005_NEW_AIRCRAFT :{WHITE}Novi zrakoplov
STR_A006_BUILD_AIRCRAFT :{BLACK}Izgradi zrakoplov
STR_A008_CAN_T_BUILD_AIRCRAFT :{WHITE}Ne mogu izgraditi zrakoplov...
@@ -2887,6 +2950,10 @@
STR_A010_RELIABILITY_BREAKDOWNS :{BLACK}Pouzdanost: {LTBLUE}{COMMA}% {BLACK}Kvarova od poslijednjeg servisa: {LTBLUE}{COMMA}
STR_A011_BUILT_VALUE :{LTBLUE}{ENGINE}{BLACK} Izgrađen: {LTBLUE}{NUM}{BLACK} Vrijednost: {LTBLUE}{CURRENCY}
STR_A012_CAN_T_SEND_AIRCRAFT_TO :{WHITE}Ne mogu poslati zrakoplov u hangar
+STR_HEADING_FOR_HANGAR :{ORANGE}Putuje prema {STATION} hangaru
+STR_HEADING_FOR_HANGAR_VEL :{ORANGE}Putuje prema {STATION} hangaru, {VELOCITY}
+STR_HEADING_FOR_HANGAR_SERVICE :{LTBLUE}Servis u {STATION} hangaru
+STR_HEADING_FOR_HANGAR_SERVICE_VEL :{LTBLUE}Servis u {STATION} hangaru, {VELOCITY}
STR_A014_AIRCRAFT_IS_WAITING_IN :{WHITE}Zrakoplov {COMMA} čeka u hangaru
STR_A015_AIRCRAFT_IN_THE_WAY :{WHITE}Smeta zrakoplov
STR_A016_CAN_T_STOP_START_AIRCRAFT :{WHITE}Ne mogu zaustaviti/pokrenuti zrakoplov...
@@ -2895,6 +2962,7 @@
STR_A01A_CAPACITY :{BLACK}Nosivost: {LTBLUE}{CARGO}
STR_A01B_AIRCRAFT_MUST_BE_STOPPED :{WHITE}Zrakoplov mora biti zaustavljen u hangaru
STR_A01C_CAN_T_SELL_AIRCRAFT :{WHITE}Ne možeš prodati zrakoplov...
+STR_A01D_AIRPORT_CONSTRUCTION :Izgradnja zračne luke
STR_A01E_BUILD_AIRPORT :{BLACK}Izgradi zračnu luku
STR_A01F_AIRCRAFT_CLICK_ON_AIRCRAFT :{BLACK}Zrakoplov - klikni na zrakoplov za informacije
STR_A020_BUILD_NEW_AIRCRAFT_REQUIRES :{BLACK}Izgradi novi zrakoplov(potreban je aerodrom sa hangarom)
@@ -2909,6 +2977,7 @@
STR_A029_CENTER_MAIN_VIEW_ON_AIRCRAFT :{BLACK} Centrirajte glavni prozor na lokaciju zrakoplova
STR_A02A_SEND_AIRCRAFT_TO_HANGAR :{BLACK}Pošaljite avion u hangar. CTRL + klik će ga samo servisirati
STR_A02B_SHOW_AIRCRAFT_DETAILS :{BLACK}Prikaži detalje zrakoplova
+STR_A02E_COST_MAX_SPEED_CAPACITY :{BLACK}Trošak: {CURRENCY} Maks. brzina: {VELOCITY}{}Kapacitet: {COMMA} putnika, {COMMA} poštanskih vreća{}Trošak uporabe {CURRENCY}/god
STR_A030_NAME_AIRCRAFT :{WHITE}Imenuj zrakoplov
STR_A031_CAN_T_NAME_AIRCRAFT :{WHITE}Ne mogu imenovati zrakoplov...
@@ -3175,7 +3244,10 @@
STR_START_DATE_QUERY_CAPT :{WHITE}Promijeni početnu godinu
STR_HEIGHTMAP_SCALE_WARNING_CAPTION :{WHITE}Upozorenje o veličini
STR_HEIGHTMAP_SCALE_WARNING_MESSAGE :{YELLOW}Prekomjerna promjena veličine mape nije preporučena. Nastaviti sa kreiranjem?
+STR_TOWN_LAYOUT_WARNING_CAPTION :{WHITE}Upozorenje na raspored grada
+STR_TOWN_LAYOUT_WARNING_MESSAGE :{YELLOW}Raspored grada s opcijom "nema više cesti" nije preporučen. Nastaviti s generiranjem?
STR_SNOW_LINE_HEIGHT_NUM :{NUM}
+STR_HEIGHTMAP_NAME :{BLACK}Ime heightmape:
STR_HEIGHTMAP_SIZE :{BLACK}Veličina: {ORANGE}{NUM} x {NUM}
STR_GENERATION_WORLD :{WHITE}Izrada svijeta u toku...
STR_GENERATION_ABORT :{BLACK}Prekini
@@ -3185,10 +3257,12 @@
STR_GENERATION_PROGRESS :{BLACK}{NUM} / {NUM}
STR_WORLD_GENERATION :{BLACK}Izrada svijeta
STR_TREE_GENERATION :{BLACK}Generiranje drveća
+STR_UNMOVABLE_GENERATION :{BLACK}Nepomično generiranje
STR_CLEARING_TILES :{BLACK}Generiranje grubog i stjenovitog područja
STR_SETTINGUP_GAME :{BLACK}Uspostavljam igru
STR_PREPARING_TILELOOP :{BLACK}Izvršavam tile-petlju
STR_PREPARING_GAME :{BLACK}Pripremam igru
+STR_DIFFICULTY_TO_CUSTOM :{WHITE}Ova akcija je izmjenila težinu na proizvoljnu
STR_SE_FLAT_WORLD :{WHITE}Ravna zemlja
STR_SE_FLAT_WORLD_TIP :{BLACK}Kreiraj ravan teren
STR_SE_RANDOM_LAND :{WHITE}Nasumični teren
@@ -3233,15 +3307,82 @@
########
STR_FEEDER_CARGO_VALUE :{BLACK}Prebaci novac: {LTBLUE}{CURRENCY}
+STR_DRIVE_THROUGH_ERROR_ON_TOWN_ROAD :{WHITE}...ovo je gradska cesta
+STR_DRIVE_THROUGH_ERROR_DIRECTION :{WHITE}...cesta je orijentirana u krivom smjeru
+STR_TRANSPARENCY_TOOLB :{WHITE}Opcije prozirnosti
+STR_TRANSPARENT_SIGNS_DESC :{BLACK}Namjesti prozirnost za znakove stanica
+STR_TRANSPARENT_TREES_DESC :{BLACK}Namjesti prozirnost za drveće
+STR_TRANSPARENT_HOUSES_DESC :{BLACK}Namjesti prozirnost za kuće
+STR_TRANSPARENT_INDUSTRIES_DESC :{BLACK}Namjesti prozirnost za industrije
+STR_TRANSPARENT_BUILDINGS_DESC :{BLACK}Namjesti prozirnost za građevine poput postaja, spremišta, smjerokaza i užadi
+STR_TRANSPARENT_BRIDGES_DESC :{BLACK}Namjesti prozirnost za mostove
+STR_TRANSPARENT_STRUCTURES_DESC :{BLACK}Namjesti prozirnost za strukture poput svjetionika i antena, možda u budućnosti i vizualne efekte
+STR_TRANSPARENT_LOADING_DESC :{BLACK}Namjesti prozirnost za indikatore učitavanja
+STR_PERCENT_UP_SMALL :{TINYFONT}{WHITE}{NUM}%{UPARROW}
+STR_PERCENT_UP :{WHITE}{NUM}%{UPARROW}
+STR_PERCENT_DOWN_SMALL :{TINYFONT}{WHITE}{NUM}%{DOWNARROW}
+STR_PERCENT_DOWN :{WHITE}{NUM}%{DOWNARROW}
+STR_PERCENT_UP_DOWN_SMALL :{TINYFONT}{WHITE}{NUM}%{UPARROW}{DOWNARROW}
+STR_PERCENT_UP_DOWN :{WHITE}{NUM}%{UPARROW}{DOWNARROW}
##### Mass Order
-
-
+STR_GROUP_NAME_FORMAT :Groupa {COMMA}
+STR_GROUP_TINY_NAME :{TINYFONT}{GROUP}
+STR_GROUP_ALL_TRAINS :Sva vozila
+STR_GROUP_ALL_ROADS :Sva cestovna vozila
+STR_GROUP_ALL_SHIPS :Svi brodovi
+STR_GROUP_ALL_AIRCRAFTS :Svi zrakoplovi
+STR_GROUP_DEFAULT_TRAINS :Negrupirani valkovi
+STR_GROUP_DEFAULT_ROADS :Negrupirana cestovna vozila
+STR_GROUP_DEFAULT_SHIPS :Negrupirani brodovi
+STR_GROUP_DEFAULT_AIRCRAFTS :Negrupirani zrakoplovi
+STR_GROUP_TINY_NUM :{TINYFONT}{COMMA}
+STR_GROUP_ADD_SHARED_VEHICLE :Dodaj dijeljena vozila
+STR_GROUP_REMOVE_ALL_VEHICLES :Ukloni sva vozila
+STR_GROUP_TRAINS_CAPTION :{WHITE}{GROUP} - {COMMA} Vlak{P "" a ova}
+STR_GROUP_ROADVEH_CAPTION :{WHITE}{GROUP} - {COMMA} Cestovno vozil{P o a a}
+STR_GROUP_SHIPS_CAPTION :{WHITE}{GROUP} - {COMMA} Brod{P "" a ova}
+STR_GROUP_AIRCRAFTS_CAPTION :{WHITE}{GROUP} - {COMMA} Zrakoplov
+STR_GROUP_RENAME_CAPTION :{BLACK}Preimenuj grupu
+STR_GROUP_REPLACE_CAPTION :{WHITE}Zamjeni vozila "{GROUP}"
+STR_GROUP_CAN_T_CREATE :{WHITE}Ne mogu kreirati grupu...
+STR_GROUP_CAN_T_DELETE :{WHITE}Ne mogu obrisati ovu grupu...
+STR_GROUP_CAN_T_RENAME :{WHITE}Ne mogu preimenovati ovu grupu...
+STR_GROUP_CAN_T_REMOVE_ALL_VEHICLES :{WHITE}Nije moguće maknuti sva vozila iz ove grupe...
+STR_GROUP_CAN_T_ADD_VEHICLE :{WHITE}Nije moguće dodati vozila u ovu grupu
+STR_GROUP_CAN_T_ADD_SHARED_VEHICLE :{WHITE}Ne možeš dodati dijeljena vozila u grupu...
+STR_GROUPS_CLICK_ON_GROUP_FOR_TIP :{BLACK}Groupe - Klikni na grupu kako bi izlista sva vozila ove grupe
+STR_GROUP_CREATE_TIP :{BLACK}Klikni za kreiranje grupe
+STR_GROUP_DELETE_TIP :{BLACK}Obriši odabranu grupu
+STR_GROUP_RENAME_TIP :{BLACK}Preimenuj odabranu grupu
+STR_GROUP_REPLACE_PROTECTION_TIP :{BLACK}Klikni kako bi zaštitio ovu grupu od globalne automatske zamjene
+STR_PROFIT_GOOD_THIS_YEAR_GOOD_LAST_YEAR :{TINYFONT}{BLACK}Dobit ove godine: {GREEN}{CURRENCY} {BLACK}(prošle godine: {GREEN}{CURRENCY}{BLACK})
+STR_PROFIT_BAD_THIS_YEAR_GOOD_LAST_YEAR :{TINYFONT}{BLACK}Dobit ove godine: {RED}{CURRENCY} {BLACK}(prošle godine: {GREEN}{CURRENCY}{BLACK})
+STR_PROFIT_GOOD_THIS_YEAR_BAD_LAST_YEAR :{TINYFONT}{BLACK}Dobit ove godine: {GREEN}{CURRENCY} {BLACK}(prošle godine: {RED}{CURRENCY}{BLACK})
+STR_PROFIT_BAD_THIS_YEAR_BAD_LAST_YEAR :{TINYFONT}{BLACK}Dobit ove godine: {RED}{CURRENCY} {BLACK}(prošle godine: {RED}{CURRENCY}{BLACK})
+
+STR_COMPANY_NAME :{COMPANY}
+STR_ENGINE_NAME :{ENGINE}
+STR_GROUP_NAME :{GROUP}
+STR_PLAYER_NAME :{PLAYERNAME}
+STR_SIGN_NAME :{SIGN}
+STR_VEHICLE_NAME :{VEHICLE}
+
+STR_NAME_MUST_BE_UNIQUE :{WHITE}Ime mora biti jedinstveno
+
+#### Improved sign GUI
+STR_NEXT_SIGN_TOOLTIP :{BLACK}Idi do sljedećeg znaka
+STR_PREVIOUS_SIGN_TOOLTIP :{BLACK}Idi do prethodnog znaka
########
+
+STR_FUND_NEW_INDUSTRY :{BLACK}Financiraj
+STR_PROSPECT_NEW_INDUSTRY :{BLACK}Prospekt
+STR_BUILD_NEW_INDUSTRY :{BLACK}Izgradi
+STR_INDUSTRY_SELECTION_HINT :{BLACK}Izaberi prikladnu industriju s ove liste
--- a/src/lang/czech.txt Mon Jul 16 21:11:29 2007 +0000
+++ b/src/lang/czech.txt Mon Jul 16 21:22:24 2007 +0000
@@ -1165,7 +1165,7 @@
STR_CONFIG_PATCHES_PAUSE_ON_NEW_GAME :{LTBLUE}Zastavit automaticky hru při začínání nové hry: {ORANGE}{STRING}
STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS :{LTBLUE}Používat pokročilý seznam vozidel: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LOADING_INDICATORS :{LTBLUE}Používat ukazatele naložení: {ORANGE}{STRING}
-STR_CONFIG_PATCHES_TIMETABLE_ALLOW :{LTBLUE}Povolit jizdní řády vozidel: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_TIMETABLE_ALLOW :{LTBLUE}Povolit jízdní řády vozidel: {ORANGE}{STRING}
STR_CONFIG_PATCHES_TIMETABLE_IN_TICKS :{LTBLUE}Zobrazit jízdní řády v cyklech místo ve dnech: {ORANGE}{STRING}
STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE :{LTBLUE}Standardní druh kolejí (v nové hře/po načtení hry): {ORANGE}{STRING}
STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_RAIL :Normální koleje
@@ -2038,8 +2038,10 @@
STR_4829_REQUIRES :{BLACK}Vyžaduje: {YELLOW}{STRING}, {STRING}, {STRING}
############ range for requires ends
+############ range for produces starts
STR_INDUSTRY_WINDOW_WAITING_FOR_PROCESSING :{BLACK}Náklad čekající na zpracování:
STR_INDUSTRY_WINDOW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO}{BLACK}
+############ range for produces ends
STR_482A_PRODUCTION_LAST_MONTH :{BLACK}Produkce minulý měsíc:
STR_482B_TRANSPORTED :{YELLOW}{CARGO}{BLACK} ({COMMA} % přepraveno)
@@ -2694,8 +2696,8 @@
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 :Výlet (mimo jízdní řád)
-STR_TIMETABLE_TRAVEL_FOR :Výlet na {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}
STR_TIMETABLE_DAYS :{COMMA} d{P en ny nů}
STR_TIMETABLE_TICKS :{COMMA} cykl{P us y ů}
@@ -3436,3 +3438,4 @@
STR_PREVIOUS_SIGN_TOOLTIP :{BLACK}Na předešlý signál
########
+
--- a/src/lang/danish.txt Mon Jul 16 21:11:29 2007 +0000
+++ b/src/lang/danish.txt Mon Jul 16 21:22:24 2007 +0000
@@ -852,14 +852,14 @@
STR_030F_SELECT_SUB_ARCTIC_LANDSCAPE :{BLACK}Vælg 'subarktisk' landskab
STR_0310_SELECT_SUB_TROPICAL_LANDSCAPE :{BLACK}Vælg 'subtropisk' landskab
STR_0311_SELECT_TOYLAND_LANDSCAPE :{BLACK}Vælg 'legetøjsland' landskab
-STR_0312_FUND_CONSTRUCTION_OF_NEW :{BLACK}Financiér opførelse af ny industri
+STR_0312_FUND_CONSTRUCTION_OF_NEW :{BLACK}Finansiér opførelse af ny industri
############ range for menu starts
STR_INDUSTRY_DIR :Industrioversigt
-STR_0313_FUND_NEW_INDUSTRY :Opfør ny industri
+STR_0313_FUND_NEW_INDUSTRY :Finansiér ny industri
############ range ends here
-STR_0314_FUND_NEW_INDUSTRY :{WHITE}Opfør ny industri
+STR_0314_FUND_NEW_INDUSTRY :{WHITE}Finansiér ny industri
STR_JUST_STRING :{STRING}
STR_0316_CAN_ONLY_BE_BUILT_IN_TOWNS :{WHITE}...kan kun bygges i byer
STR_0317_CAN_ONLY_BE_BUILT_IN_RAINFOREST :{WHITE}...kan kun bygges i regnskovsområder
@@ -1762,17 +1762,17 @@
STR_2046_SMALL_ADVERTISING_CAMPAIGN :Lille reklamekampagne
STR_2047_MEDIUM_ADVERTISING_CAMPAIGN :Mellem reklamekampagne
STR_2048_LARGE_ADVERTISING_CAMPAIGN :Stor reklamekampagne
-STR_2049_FUND_LOCAL_ROAD_RECONSTRUCTION :Betal for lokal vejfornyelse
+STR_2049_FUND_LOCAL_ROAD_RECONSTRUCTION :Finansiér lokal vejfornyelse
STR_204A_BUILD_STATUE_OF_COMPANY :Byg en statue af selskabets ejer
-STR_204B_FUND_NEW_BUILDINGS :Betal for opførsel af nye bygninger
+STR_204B_FUND_NEW_BUILDINGS :Finansiér opførsel af nye bygninger
STR_204C_BUY_EXCLUSIVE_TRANSPORT :Køb eksklusive transportrettigheder i byen
STR_TOWN_BRIBE_THE_LOCAL_AUTHORITY :Bestik de lokale myndigheder
STR_204D_INITIATE_A_SMALL_LOCAL :{WHITE}{STRING}{}{YELLOW} Start en lille reklamekampagne for at tiltrække flere passagerer og last til dine stationer.{} Pris: {CURRENCY}
STR_204E_INITIATE_A_MEDIUM_LOCAL :{WHITE}{STRING}{}{YELLOW} Start en mellem reklamekampagne, for at tiltrække flere passagerer og last til dine stationer.{} Pris: {CURRENCY}
STR_204F_INITIATE_A_LARGE_LOCAL :{WHITE}{STRING}{}{YELLOW} Start en stor reklamekampagne, for at tiltrække flere passagerer og last til dine stationer.{} Pris: {CURRENCY}
-STR_2050_FUND_THE_RECONSTRUCTION :{WHITE}{STRING}{}{YELLOW} Betal for vejfornyelse i midtbyen. Forårsager stor forstyrrelse af vejnettet i de næste 6 måneder.{} Pris: {CURRENCY}
+STR_2050_FUND_THE_RECONSTRUCTION :{WHITE}{STRING}{}{YELLOW} Finansiér vejfornyelse i midtbyen. Forårsager stor forstyrrelse af vejnettet i de næste 6 måneder.{} Pris: {CURRENCY}
STR_2051_BUILD_A_STATUE_IN_HONOR :{WHITE}{STRING}{}{YELLOW} Byg en statue til ære for dit selskab.{} Pris: {CURRENCY}
-STR_2052_FUND_THE_CONSTRUCTION_OF :{WHITE}{STRING}{}{YELLOW} Betal for opførelse af forretningsbygninger i byen.{} Pris: {CURRENCY}
+STR_2052_FUND_THE_CONSTRUCTION_OF :{WHITE}{STRING}{}{YELLOW} Finansiér opførelse af forretningsbygninger i byen.{} Pris: {CURRENCY}
STR_2053_BUY_1_YEAR_S_EXCLUSIVE :{WHITE}{STRING}{}{YELLOW} Køb et års eksklusive rettigheder til transport i byen. De lokale myndigheder vil kun tillade passagerer og last at bruge dine stationer.{} Prist: {CURRENCY}
STR_TOWN_BRIBE_THE_LOCAL_AUTHORITY_DESC :{WHITE}{STRING}{}{YELLOW} Bestik de lokale myndigheder til at hæve din bedømmelse, med risiko for en stor straf hvis det bliver opdaget.{} Pris: {CURRENCY}
STR_2055_TRAFFIC_CHAOS_IN_ROAD_REBUILDING :{BIGFONT}{BLACK}Trafikkaos i byen {TOWN}!{}{}Vejfornyelse betalt af {COMPANY} forårsager 6 måneders kaos i trafikken!
@@ -1980,8 +1980,12 @@
STR_4829_REQUIRES :{BLACK}Kræver: {YELLOW}{STRING}, {STRING}, {STRING}
############ range for requires ends
+############ range for produces starts
STR_INDUSTRY_WINDOW_WAITING_FOR_PROCESSING :{BLACK}Fragt der venter på forarbejdning:
STR_INDUSTRY_WINDOW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO}{BLACK}
+STR_4827_PRODUCES :{BLACK}Producerer: {YELLOW}{STRING}
+STR_4828_PRODUCES :{BLACK}Producerer: {YELLOW}{STRING}, {STRING}
+############ range for produces ends
STR_482A_PRODUCTION_LAST_MONTH :{BLACK}Produktion sidste måned:
STR_482B_TRANSPORTED :{YELLOW}{CARGO}{BLACK} ({COMMA}% transporteret)
@@ -3329,6 +3333,10 @@
STR_GROUP_ALL_ROADS :Alle vejkøretøjer
STR_GROUP_ALL_SHIPS :Alle skibe
STR_GROUP_ALL_AIRCRAFTS :Alle fly
+STR_GROUP_DEFAULT_TRAINS :Ikke-grupperede tog
+STR_GROUP_DEFAULT_ROADS :Ikke-grupperede vejkøretøjer
+STR_GROUP_DEFAULT_SHIPS :Ikke-grupperede skibe
+STR_GROUP_DEFAULT_AIRCRAFTS :Ikke-grupperede fly
STR_GROUP_TINY_NUM :{TINYFONT}{COMMA}
STR_GROUP_ADD_SHARED_VEHICLE :Tilføj delte køretøjer
STR_GROUP_REMOVE_ALL_VEHICLES :Fjern alle køretøjer
@@ -3372,3 +3380,8 @@
STR_PREVIOUS_SIGN_TOOLTIP :{BLACK}Gå til forrige skilt
########
+
+STR_FUND_NEW_INDUSTRY :{BLACK}Finansiér
+STR_PROSPECT_NEW_INDUSTRY :{BLACK}Efterforsk
+STR_BUILD_NEW_INDUSTRY :{BLACK}Byg
+STR_INDUSTRY_SELECTION_HINT :{BLACK}Vælg passende industri fra denne liste
--- a/src/lang/dutch.txt Mon Jul 16 21:11:29 2007 +0000
+++ b/src/lang/dutch.txt Mon Jul 16 21:22:24 2007 +0000
@@ -3333,6 +3333,10 @@
STR_GROUP_ALL_ROADS :Alle voertuigen
STR_GROUP_ALL_SHIPS :Alle schepen
STR_GROUP_ALL_AIRCRAFTS :Alle vliegtuigen
+STR_GROUP_DEFAULT_TRAINS :Niet gegroepeerde treinen
+STR_GROUP_DEFAULT_ROADS :Niet gegroepeerde wegvoertuigen
+STR_GROUP_DEFAULT_SHIPS :Niet gegroepeerde schepen
+STR_GROUP_DEFAULT_AIRCRAFTS :Niet gegroepeerde vliegtuigen
STR_GROUP_TINY_NUM :{TINYFONT}{COMMA}
STR_GROUP_ADD_SHARED_VEHICLE :Toevoegen gedeelde voertuigen
STR_GROUP_REMOVE_ALL_VEHICLES :Verwijder alle voertuigen
--- a/src/lang/english.txt Mon Jul 16 21:11:29 2007 +0000
+++ b/src/lang/english.txt Mon Jul 16 21:22:24 2007 +0000
@@ -3333,6 +3333,10 @@
STR_GROUP_ALL_ROADS :All road vehicles
STR_GROUP_ALL_SHIPS :All ships
STR_GROUP_ALL_AIRCRAFTS :All aircraft
+STR_GROUP_DEFAULT_TRAINS :Ungrouped trains
+STR_GROUP_DEFAULT_ROADS :Ungrouped road vehicles
+STR_GROUP_DEFAULT_SHIPS :Ungrouped ships
+STR_GROUP_DEFAULT_AIRCRAFTS :Ungrouped aircraft
STR_GROUP_TINY_NUM :{TINYFONT}{COMMA}
STR_GROUP_ADD_SHARED_VEHICLE :Add shared vehicles
STR_GROUP_REMOVE_ALL_VEHICLES :Remove all vehicles
--- a/src/lang/estonian.txt Mon Jul 16 21:11:29 2007 +0000
+++ b/src/lang/estonian.txt Mon Jul 16 21:22:24 2007 +0000
@@ -3433,6 +3433,10 @@
STR_GROUP_ALL_ROADS :Kõik mootorsõidukid
STR_GROUP_ALL_SHIPS :Kõik laevad
STR_GROUP_ALL_AIRCRAFTS :Kõik lennukid
+STR_GROUP_DEFAULT_TRAINS :Liigitamata rongid
+STR_GROUP_DEFAULT_ROADS :Liigitamata sõidukid
+STR_GROUP_DEFAULT_SHIPS :Liigitamata laevad
+STR_GROUP_DEFAULT_AIRCRAFTS :Liigitamata õhusõidukid
STR_GROUP_TINY_NUM :{TINYFONT}{COMMA}
STR_GROUP_ADD_SHARED_VEHICLE :Kõik jagatud sõidukid
STR_GROUP_REMOVE_ALL_VEHICLES :Eemalda kõik sõidukid
--- a/src/lang/finnish.txt Mon Jul 16 21:11:29 2007 +0000
+++ b/src/lang/finnish.txt Mon Jul 16 21:22:24 2007 +0000
@@ -1034,6 +1034,10 @@
STR_CONFIG_PATCHES_SELECTGOODS :{LTBLUE}Kuljeta rahti asemalle vain, kun on kysyntää: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LONGBRIDGES :{LTBLUE}Erittäin pitkien siltojen rakentaminen: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GOTODEPOT :{LTBLUE}Varikollemenomääräykset: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD :{LTBLUE}Manuaalinen raakateollisuuden rakentamistapa: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :ei mikään
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :kuten muut tehtaat
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :koekaivaus
STR_CONFIG_PATCHES_MULTIPINDTOWN :{LTBLUE}Kaupungissa voi olla useita samanlaisia teollisuustyyppejä: {ORANGE}{STRING}
STR_CONFIG_PATCHES_SAMEINDCLOSE :{LTBLUE}Samantyyppistä teollisuutta voidaan rakentaa lähekkäin: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LONGDATE :{LTBLUE}Näytä aina koko päiväys tilapalkissa: {ORANGE}{STRING}
@@ -1046,6 +1050,8 @@
STR_CONFIG_PATCHES_NONUNIFORM_STATIONS :{LTBLUE}Epäyhtenäiset asemat: {ORANGE}{STRING}
STR_CONFIG_PATCHES_NEW_PATHFINDING_ALL :{LTBLUE}Uusi globaali tienhakualgor. (NPF, korvaa NTP:n): {ORANGE}{STRING}
STR_CONFIG_PATCHES_FREIGHT_TRAINS :{LTBLUE}Kerroin rahdin painolle raskaiden junien simuilointiin: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_STOP_ON_TOWN_ROAD :{LTBLUE}Läpiajettavat pysäkit kaupungin teille: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ADJACENT_STATIONS :{LTBLUE}Vierekkäiset asemat: {ORANGE}{STRING}
STR_CONFIG_PATCHES_SMALL_AIRPORTS :{LTBLUE}Salli aina pienet lentokentät: {ORANGE}{STRING}
@@ -1086,6 +1092,7 @@
STR_CONFIG_PATCHES_SERVICEATHELIPAD :{LTBLUE}Huolla helikopterit helikopterialustoilla automaattisesti: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LINK_TERRAFORM_TOOLBAR :{LTBLUE}Kiinnitä maastonmuokkauspalkki rakentamistyökalupalkkeihin: {ORANGE}{STRING}
STR_CONFIG_PATCHES_REVERSE_SCROLLING :{LTBLUE}Käänteinen vierityssuunta: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_SMOOTH_SCROLLING :{LTBLUE}Näkymän tasainen vieritys: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MEASURE_TOOLTIP :{LTBLUE}Näytä mittauksen työkaluvihje, kun käytetään rakennustyökaluja: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LIVERIES :{LTBLUE}Näytä yrityksen tunnukset: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LIVERIES_NONE :Ei yhtään
@@ -1098,7 +1105,17 @@
STR_CONFIG_PATCHES_SCROLLWHEEL_OFF :Pois
STR_CONFIG_PATCHES_SCROLLWHEEL_MULTIPLIER :{LTBLUE}Rullan nopeus: {ORANGE}{STRING}
STR_CONFIG_PATCHES_PAUSE_ON_NEW_GAME :{LTBLUE}Uusi peli alkaa pysäytettynä: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS :{LTBLUE}Edistynyt ajoneuvolista: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_LOADING_INDICATORS :{LTBLUE}Lastausindikaattorit: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_RAIL :Tavallinen raide
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_ELRAIL :Sähköraide
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MONORAIL :Yksiraiteinen
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MAGLEV :Maglev
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_FIRST :Ensimmäinen
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_LAST :Viimeinen
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED :Yleisin
+STR_CONFIG_PATCHES_ALWAYS_BUILD_INFRASTRUCTURE :{LTBLUE}Näytä rakennustyökalut, kun sopivaa ajoneuvoa ei ole: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MAX_TRAINS :{LTBLUE}Junia/pelaaja: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MAX_ROADVEH :{LTBLUE}Ajoneuvoja/pelaaja: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MAX_AIRCRAFT :{LTBLUE}Lentokoneita/pelaaja: {ORANGE}{STRING}
@@ -1392,6 +1409,10 @@
STR_NETWORK_LANG_ENGLISH :englanti
STR_NETWORK_LANG_GERMAN :saksa
STR_NETWORK_LANG_FRENCH :ranska
+STR_NETWORK_LANG_BRAZILIAN :brasilia
+STR_NETWORK_LANG_BULGARIAN :bulgaria
+STR_NETWORK_LANG_CHINESE :kiina
+STR_NETWORK_LANG_CZECH :tšekki
STR_NETWORK_LANG_DANISH :tanska
STR_NETWORK_LANG_DUTCH :hollanti
STR_NETWORK_LANG_ESPERANTO :esperanto
@@ -1895,6 +1916,11 @@
STR_4007_GAME_SAVE_FAILED :{WHITE}Tallennus epäonnistui.{}{STRING}
STR_4008_UNABLE_TO_DELETE_FILE :{WHITE}Tiedostoa ei voi poistaa.
STR_4009_GAME_LOAD_FAILED :{WHITE}Lataus epäonnistui.{}{STRING}
+STR_GAME_SAVELOAD_ERROR_BROKEN_INTERNAL_ERROR :Sisäinen virhe: {STRING}
+STR_GAME_SAVELOAD_ERROR_BROKEN_SAVEGAME :Viallinen tallennus - {STRING}
+STR_GAME_SAVELOAD_ERROR_TOO_NEW_SAVEGAME :Tallennus on tehty uudemalla versiolla
+STR_GAME_SAVELOAD_ERROR_FILE_NOT_READABLE :Tiedostoa ei voi lukea
+STR_GAME_SAVELOAD_ERROR_FILE_NOT_WRITEABLE :Tiedostoa ei voi kirjoittaa
STR_400A_LIST_OF_DRIVES_DIRECTORIES :{BLACK}Lista asemista, hakemistoista ja tallennetuista peleistä.
STR_400B_CURRENTLY_SELECTED_NAME :{BLACK}Valittu nimi pelitallenteelle.
STR_400C_DELETE_THE_CURRENTLY_SELECTED :{BLACK}Poista valittu pelitallenne.
@@ -1951,6 +1977,13 @@
STR_4829_REQUIRES :{BLACK}Tarvitsee: {YELLOW}{STRING}, {STRING}, {STRING}
############ range for requires ends
+############ range for produces starts
+STR_INDUSTRY_WINDOW_WAITING_FOR_PROCESSING :{BLACK}Rahti odottaa käsittelyä:
+STR_INDUSTRY_WINDOW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO}{BLACK}
+STR_4827_PRODUCES :{BLACK}Tuottaa: {YELLOW}{STRING}
+STR_4828_PRODUCES :{BLACK}Tuottaa: {YELLOW}{STRING}, {STRING}
+############ range for produces ends
+
STR_482A_PRODUCTION_LAST_MONTH :{BLACK}Tuotto viime kuussa:
STR_482B_TRANSPORTED :{YELLOW}{CARGO}{BLACK} ({COMMA}{NBSP}% kuljetettu)
STR_482C_CENTER_THE_MAIN_VIEW_ON :{BLACK}Keskitä päänäkymä teollisuuden sijaintiin.
@@ -2065,6 +2098,7 @@
STR_SV_STNAME_LOWER :Ala-{STRING}
STR_SV_STNAME_HELIPORT :{STRING}, helikopterikenttä
STR_SV_STNAME_FOREST :{STRING}, metsä
+STR_SV_STNAME_FALLBACK :{STRING} Asema {NUM}
############ end of savegame specific region!
@@ -2747,6 +2781,10 @@
STR_TIMETABLE_STATUS_ON_TIME :Ajoneuvo on aikataulussa
STR_TIMETABLE_STATUS_LATE :Ajoneuvo on {STRING} myöhässä
STR_TIMETABLE_STATUS_EARLY :Ajoneuvo on {STRING} etuajassa
+STR_TIMETABLE_TOTAL_TIME :Aikataulun kesto on {STRING}
+STR_TIMETABLE_TOTAL_TIME_INCOMPLETE :Aikataulun kesto on vähintään {STRING}
+STR_TIMETABLE_AUTOFILL :{BLACK}Automaattinen
+STR_TIMETABLE_AUTOFILL_TOOLTIP :{BLACK}Luo aikataulu automaattisesti ensimmäisen matkan arvoilla
##id 0x9000
STR_9000_ROAD_VEHICLE_IN_THE_WAY :{WHITE}Ajoneuvo tiellä.
@@ -3276,7 +3314,14 @@
STR_TRANSPARENT_BUILDINGS_DESC :{BLACK}Läpinäkyvät asemat, varikot, rastit ja sähkölinjat
STR_TRANSPARENT_BRIDGES_DESC :{BLACK}Läpinäkyvät sillat
STR_TRANSPARENT_STRUCTURES_DESC :{BLACK}Läpinäkyvät rakenteet kuten majakat ja antennit
+STR_TRANSPARENT_LOADING_DESC :{BLACK}Läpinäkyvät lastausilmaisimet
+STR_PERCENT_UP_SMALL :{TINYFONT}{WHITE}{NUM}%{UPARROW}
+STR_PERCENT_UP :{WHITE}{NUM}%{UPARROW}
+STR_PERCENT_DOWN_SMALL :{TINYFONT}{WHITE}{NUM}%{DOWNARROW}
+STR_PERCENT_DOWN :{WHITE}{NUM}%{DOWNARROW}
+STR_PERCENT_UP_DOWN_SMALL :{TINYFONT}{WHITE}{NUM}%{UPARROW}{DOWNARROW}
+STR_PERCENT_UP_DOWN :{WHITE}{NUM}%{UPARROW}{DOWNARROW}
##### Mass Order
STR_GROUP_NAME_FORMAT :Ryhmä {COMMA}
@@ -3285,6 +3330,10 @@
STR_GROUP_ALL_ROADS :Kaikki autot
STR_GROUP_ALL_SHIPS :Kaikki laivat
STR_GROUP_ALL_AIRCRAFTS :Kaikki lentoalukset
+STR_GROUP_DEFAULT_TRAINS :Muut junat
+STR_GROUP_DEFAULT_ROADS :Muut autot
+STR_GROUP_DEFAULT_SHIPS :Muut laivat
+STR_GROUP_DEFAULT_AIRCRAFTS :Muut lentokoneet
STR_GROUP_TINY_NUM :{TINYFONT}{COMMA}
STR_GROUP_ADD_SHARED_VEHICLE :Lisää jaettuja ajoneuvoja
STR_GROUP_REMOVE_ALL_VEHICLES :Poista kaikki ajoneuvot
@@ -3314,6 +3363,22 @@
STR_PROFIT_GOOD_THIS_YEAR_BAD_LAST_YEAR :{TINYFONT}{BLACK}Tulos tänä vuonna: {GREEN}{CURRENCY} {BLACK}(viime vuonna: {RED}{CURRENCY}{BLACK})
STR_PROFIT_BAD_THIS_YEAR_BAD_LAST_YEAR :{TINYFONT}{BLACK}Tulos tänä vuonna: {RED}{CURRENCY} {BLACK}(viime vuonna: {RED}{CURRENCY}{BLACK})
+STR_COMPANY_NAME :{COMPANY}
+STR_ENGINE_NAME :{ENGINE}
+STR_GROUP_NAME :{GROUP}
+STR_PLAYER_NAME :{PLAYERNAME}
+STR_SIGN_NAME :{SIGN}
+STR_VEHICLE_NAME :{VEHICLE}
+STR_NAME_MUST_BE_UNIQUE :{WHITE}Nimen täytyy olla uniikki
+
+#### Improved sign GUI
+STR_NEXT_SIGN_TOOLTIP :{BLACK}Siirry seuraavaan kylttiin
+STR_PREVIOUS_SIGN_TOOLTIP :{BLACK}Siirry edelliseen kylttiin
########
+
+STR_FUND_NEW_INDUSTRY :{BLACK}Perusta
+STR_PROSPECT_NEW_INDUSTRY :{BLACK}Koekaivaus
+STR_BUILD_NEW_INDUSTRY :{BLACK}Rakenna
+STR_INDUSTRY_SELECTION_HINT :{BLACK}Valitse tehdas listasta
--- a/src/lang/french.txt Mon Jul 16 21:11:29 2007 +0000
+++ b/src/lang/french.txt Mon Jul 16 21:22:24 2007 +0000
@@ -3334,6 +3334,10 @@
STR_GROUP_ALL_ROADS :Tous les véhicules routiers
STR_GROUP_ALL_SHIPS :Tous les navires
STR_GROUP_ALL_AIRCRAFTS :Tous les aéronefs
+STR_GROUP_DEFAULT_TRAINS :Trains dégroupés
+STR_GROUP_DEFAULT_ROADS :Véhicules routiers dégroupés
+STR_GROUP_DEFAULT_SHIPS :Navires dégroupés
+STR_GROUP_DEFAULT_AIRCRAFTS :Aéronefs dégroupés
STR_GROUP_TINY_NUM :{TINYFONT}{COMMA}
STR_GROUP_ADD_SHARED_VEHICLE :Ajouter des véhicules partagés
STR_GROUP_REMOVE_ALL_VEHICLES :Retirer tous les véhicules
--- a/src/lang/german.txt Mon Jul 16 21:11:29 2007 +0000
+++ b/src/lang/german.txt Mon Jul 16 21:22:24 2007 +0000
@@ -1035,8 +1035,10 @@
STR_CONFIG_PATCHES_SELECTGOODS :{LTBLUE}Liefere Fracht nur, wenn die Station diese annimmt: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LONGBRIDGES :{LTBLUE}Erlaube das Bauen von sehr langen Brücken: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GOTODEPOT :{LTBLUE}Erlaube "Gehe zum Depot"-Aufträge im Fahrplan: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD :{LTBLUE}Finanziere Bau von Primärindustrie: {ORANGE}{STRING}
STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :keine
STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :wie andere Industrie
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :erkundend
STR_CONFIG_PATCHES_MULTIPINDTOWN :{LTBLUE}Erlaube mehrere gleichartige Industrien pro Stadt: {ORANGE}{STRING}
STR_CONFIG_PATCHES_SAMEINDCLOSE :{LTBLUE}Gleiche Industrien können nahe beieinander gebaut werden: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LONGDATE :{LTBLUE}Lange Datumsanzeige in der Statusleiste (links unten): {ORANGE}{STRING}
@@ -1105,6 +1107,7 @@
STR_CONFIG_PATCHES_SCROLLWHEEL_MULTIPLIER :{LTBLUE}Scrollradgeschwindigkeit auf der Karte: {ORANGE}{STRING}
STR_CONFIG_PATCHES_PAUSE_ON_NEW_GAME :{LTBLUE}Automatische Pause bei Spielstart: {ORANGE}{STRING}
STR_CONFIG_PATCHES_ADVANCED_VEHICLE_LISTS :{LTBLUE}Erweiterte Fahrzeugliste benutzen: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_LOADING_INDICATORS :{LTBLUE}Ladestandanzeiger verwenden: {ORANGE}{STRING}
STR_CONFIG_PATCHES_TIMETABLE_ALLOW :{LTBLUE}Aktiviere Fahrpläne für Fahrzeuge: {ORANGE}{STRING}
STR_CONFIG_PATCHES_TIMETABLE_IN_TICKS :{LTBLUE}Zeige Zeitpläne in Ticks anstatt in Tagen: {ORANGE}{STRING}
STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE :{LTBLUE}Standard-Gleistyp (bei Spielbeginn/geladenem Spiel): {ORANGE}{STRING}
@@ -1113,8 +1116,10 @@
STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MONORAIL :Einschienenbahn
STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MAGLEV :Magnetschwebebahn
STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_FIRST :zuerst verfügbarer
+STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_LAST :Neuste
STR_CONFIG_PATCHES_DEFAULT_RAIL_TYPE_MOST_USED :Meistbenutze
+STR_CONFIG_PATCHES_ALWAYS_BUILD_INFRASTRUCTURE :{LTBLUE}Zeige Bauwerkzeuge auch wenn keine passenden Fahrzeuge verfügbar sind: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MAX_TRAINS :{LTBLUE}Maximale Anzahl der Züge pro Spieler: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MAX_ROADVEH :{LTBLUE}Maximale Anzahl der Straßenfahrzeuge pro Spieler: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MAX_AIRCRAFT :{LTBLUE}Maximale Anzahl der Flugzeuge pro Spieler: {ORANGE}{STRING}
@@ -1977,7 +1982,10 @@
############ range for requires ends
############ range for produces starts
+STR_INDUSTRY_WINDOW_WAITING_FOR_PROCESSING :{BLACK}Auf Verarbeitung wartende Fracht:
STR_INDUSTRY_WINDOW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO}{BLACK}
+STR_4827_PRODUCES :{BLACK}Produziert: {YELLOW}{STRING}
+STR_4828_PRODUCES :{BLACK}Produziert: {YELLOW}{STRING}, {STRING}
############ range for produces ends
STR_482A_PRODUCTION_LAST_MONTH :{BLACK}Produktion im letzten Monat:
@@ -2627,9 +2635,11 @@
STR_SERVICE_NON_STOP_AT_TRAIN_DEPOT :Wartung (ohne Halt) bei {TOWN} Zugdepot
STR_TIMETABLE_GO_TO :{STRING} {STRING}
+STR_TIMETABLE_TRAVEL_NOT_TIMETABLED :Fahre (ohne Fahrplan)
STR_TIMETABLE_TRAVEL_FOR :Fahre für {STRING}
STR_TIMETABLE_STAY_FOR :und bleibe für {STRING}
STR_TIMETABLE_DAYS :{COMMA} Tag{P "" e}
+STR_TIMETABLE_TICKS :{COMMA} Tick{P "" s}
STR_HEADING_FOR_TRAIN_DEPOT :{ORANGE}Unterwegs zu {TOWN} Zugdepot
STR_HEADING_FOR_TRAIN_DEPOT_VEL :{ORANGE}Unterwegs zu {TOWN} Zugdepot, {VELOCITY}
@@ -2773,6 +2783,10 @@
STR_TIMETABLE_NOT_STOPPING_HERE :{WHITE}Das Fahrzeug hält nicht an dieser Station.
STR_TIMETABLE_CHANGE_TIME :{BLACK}Ändere Zeit
STR_TIMETABLE_STATUS_ON_TIME :Das Fahrzeug ist derzeit pünktlich.
+STR_TIMETABLE_STATUS_LATE :Dieses Fahrzeug hat {STRING} Verspätung
+STR_TIMETABLE_STATUS_EARLY :Dieses Fahrzeug ist {STRING} zu früh
+STR_TIMETABLE_TOTAL_TIME :Dieser Fahrplan benötigt {STRING}
+STR_TIMETABLE_TOTAL_TIME_INCOMPLETE :Dieser Fahrplan benötigt mindestens {STRING} (nicht alle geplant)
STR_TIMETABLE_AUTOFILL :{BLACK}Autom. Füllung
STR_TIMETABLE_AUTOFILL_TOOLTIP :{BLACK}Ergänze den Fahrplan automatisch mit den Werten der ersten Fahrt
@@ -3320,6 +3334,10 @@
STR_GROUP_ALL_ROADS :Alle Straßenfahrzeuge
STR_GROUP_ALL_SHIPS :Alle Schiffe
STR_GROUP_ALL_AIRCRAFTS :Alle Flugzeuge
+STR_GROUP_DEFAULT_TRAINS :Ungruppierte Züge
+STR_GROUP_DEFAULT_ROADS :Ungruppierte Fahrzeuge
+STR_GROUP_DEFAULT_SHIPS :Ungruppierte Schiffe
+STR_GROUP_DEFAULT_AIRCRAFTS :Ungruppierte Flugzeuge
STR_GROUP_TINY_NUM :{TINYFONT}{COMMA}
STR_GROUP_ADD_SHARED_VEHICLE :Gemeinsame Fahrzeuge hinzufügen
STR_GROUP_REMOVE_ALL_VEHICLES :Entferne alle Fahrzeuge
@@ -3364,4 +3382,7 @@
########
-STR_FUND_NEW_INDUSTRY :{BLACK}Kapital
+STR_FUND_NEW_INDUSTRY :{BLACK}Finanzieren
+STR_PROSPECT_NEW_INDUSTRY :{BLACK}Erforsche
+STR_BUILD_NEW_INDUSTRY :{BLACK}Bauen
+STR_INDUSTRY_SELECTION_HINT :{BLACK}Wähle die gewünschte Industrie aus der Liste
--- a/src/lang/hungarian.txt Mon Jul 16 21:11:29 2007 +0000
+++ b/src/lang/hungarian.txt Mon Jul 16 21:22:24 2007 +0000
@@ -3436,6 +3436,10 @@
STR_GROUP_ALL_ROADS :Összes közúti jármű
STR_GROUP_ALL_SHIPS :Összes hajó
STR_GROUP_ALL_AIRCRAFTS :Összes repülő
+STR_GROUP_DEFAULT_TRAINS :Csoportosítatlan vonatok
+STR_GROUP_DEFAULT_ROADS :Csoportosítatlan közúti járművek
+STR_GROUP_DEFAULT_SHIPS :Csoportosítatlan hajók
+STR_GROUP_DEFAULT_AIRCRAFTS :Csoportosítatlan repülők
STR_GROUP_TINY_NUM :{TINYFONT}{COMMA}
STR_GROUP_ADD_SHARED_VEHICLE :Megosztott jármű hozzáadása
STR_GROUP_REMOVE_ALL_VEHICLES :Összes jármű eltávolítása
--- a/src/lang/italian.txt Mon Jul 16 21:11:29 2007 +0000
+++ b/src/lang/italian.txt Mon Jul 16 21:22:24 2007 +0000
@@ -3335,6 +3335,10 @@
STR_GROUP_ALL_ROADS :Tutti gli automezzi
STR_GROUP_ALL_SHIPS :Tutte le navi
STR_GROUP_ALL_AIRCRAFTS :Tutti gli aeromobili
+STR_GROUP_DEFAULT_TRAINS :Treni senza gruppo
+STR_GROUP_DEFAULT_ROADS :Automezzi senza gruppo
+STR_GROUP_DEFAULT_SHIPS :Navi senza gruppo
+STR_GROUP_DEFAULT_AIRCRAFTS :Aeromobili senza gruppo
STR_GROUP_TINY_NUM :{TINYFONT}{COMMA}
STR_GROUP_ADD_SHARED_VEHICLE :Aggiungi veicoli condivisi
STR_GROUP_REMOVE_ALL_VEHICLES :Rimuovi tutti i veicoli
--- a/src/lang/japanese.txt Mon Jul 16 21:11:29 2007 +0000
+++ b/src/lang/japanese.txt Mon Jul 16 21:22:24 2007 +0000
@@ -3333,6 +3333,10 @@
STR_GROUP_ALL_ROADS :すべての道路車両
STR_GROUP_ALL_SHIPS :すべての船舶
STR_GROUP_ALL_AIRCRAFTS :すべての飛行機
+STR_GROUP_DEFAULT_TRAINS :グループにされない列車
+STR_GROUP_DEFAULT_ROADS :グループにされない道路車両
+STR_GROUP_DEFAULT_SHIPS :グループにされない船舶
+STR_GROUP_DEFAULT_AIRCRAFTS :グループにされない飛行機
STR_GROUP_TINY_NUM :{TINYFONT}{COMMA}
STR_GROUP_ADD_SHARED_VEHICLE :共有車両を追加
STR_GROUP_REMOVE_ALL_VEHICLES :すべての車両を取り除く
--- a/src/lang/korean.txt Mon Jul 16 21:11:29 2007 +0000
+++ b/src/lang/korean.txt Mon Jul 16 21:22:24 2007 +0000
@@ -3334,6 +3334,10 @@
STR_GROUP_ALL_ROADS :모든 차량
STR_GROUP_ALL_SHIPS :모든 선박
STR_GROUP_ALL_AIRCRAFTS :모든 항공기
+STR_GROUP_DEFAULT_TRAINS :그룹에 속하지 않은 기차
+STR_GROUP_DEFAULT_ROADS :그룹에 속하지 않은 차량
+STR_GROUP_DEFAULT_SHIPS :그룹에 속하지 않은 선박
+STR_GROUP_DEFAULT_AIRCRAFTS :그룹에 속하지 않은 항공기
STR_GROUP_TINY_NUM :{TINYFONT}{COMMA}
STR_GROUP_ADD_SHARED_VEHICLE :모든 공유된 차량
STR_GROUP_REMOVE_ALL_VEHICLES :모든 차량 제거
--- a/src/lang/norwegian_nynorsk.txt Mon Jul 16 21:11:29 2007 +0000
+++ b/src/lang/norwegian_nynorsk.txt Mon Jul 16 21:22:24 2007 +0000
@@ -1035,6 +1035,10 @@
STR_CONFIG_PATCHES_SELECTGOODS :{LTBLUE}Lever varer til ein stasjon berre når varen trengst: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LONGBRIDGES :{LTBLUE}Tillat bygging av veldig lange bruer: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GOTODEPOT :{LTBLUE}Tillat 'køyr til jernbanestall'-ordre: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD :{LTBLUE}Metode for bygging av primærindustri: {ORANGE}{STRING}
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NONE :inga
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_NORMAL :som andre industriar
+STR_CONFIG_PATCHES_RAW_INDUSTRY_CONSTRUCTION_METHOD_PROSPECTING :prospekt
STR_CONFIG_PATCHES_MULTIPINDTOWN :{LTBLUE}Tillat fleire like industriar i samme by: {ORANGE}{STRING}
STR_CONFIG_PATCHES_SAMEINDCLOSE :{LTBLUE}Industriar av same type kan byggjast nær einannan: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LONGDATE :{LTBLUE}Alltid vis lang dato på statuslinja: {ORANGE}{STRING}
@@ -1977,6 +1981,13 @@
STR_4829_REQUIRES :{BLACK}Treng: {YELLOW}{STRING}, {STRING}, {STRING}
############ range for requires ends
+############ range for produces starts
+STR_INDUSTRY_WINDOW_WAITING_FOR_PROCESSING :{BLACK}Gods ventar på å bli behandla:
+STR_INDUSTRY_WINDOW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO}{BLACK}
+STR_4827_PRODUCES :{BLACK}Lagar: {YELLOW}{STRING}
+STR_4828_PRODUCES :{BLACK}Lagar: {YELLOW}{STRING}, {STRING}
+############ range for produces ends
+
STR_482A_PRODUCTION_LAST_MONTH :{BLACK}Produksjon førre månad:
STR_482B_TRANSPORTED :{YELLOW}{CARGO}{BLACK} ({COMMA} % transportert)
STR_482C_CENTER_THE_MAIN_VIEW_ON :{BLACK}Sentrer biletet på industriområdet
@@ -3323,6 +3334,10 @@
STR_GROUP_ALL_ROADS :Alle køyretøty
STR_GROUP_ALL_SHIPS :Alle skip
STR_GROUP_ALL_AIRCRAFTS :Alle fly
+STR_GROUP_DEFAULT_TRAINS :Tog utan gruppe
+STR_GROUP_DEFAULT_ROADS :køyretøy utan gruppe
+STR_GROUP_DEFAULT_SHIPS :Skip utan gruppe
+STR_GROUP_DEFAULT_AIRCRAFTS :Fly utan gruppe
STR_GROUP_TINY_NUM :{TINYFONT}{COMMA}
STR_GROUP_ADD_SHARED_VEHICLE :Legg til delte køyretøy
STR_GROUP_REMOVE_ALL_VEHICLES :Fjern alle køyretøy
@@ -3366,3 +3381,8 @@
STR_PREVIOUS_SIGN_TOOLTIP :{BLACK}Gå til førre skilt
########
+
+STR_FUND_NEW_INDUSTRY :{BLACK}Finansier
+STR_PROSPECT_NEW_INDUSTRY :{BLACK}Prospekt
+STR_BUILD_NEW_INDUSTRY :{BLACK}Bygg
+STR_INDUSTRY_SELECTION_HINT :{BLACK}Vel den rette industritypen frå lista
--- a/src/lang/piglatin.txt Mon Jul 16 21:11:29 2007 +0000
+++ b/src/lang/piglatin.txt Mon Jul 16 21:22:24 2007 +0000
@@ -1980,6 +1980,13 @@
STR_4829_REQUIRES :{BLACK}Equiresray: {YELLOW}{STRING}, {STRING}, {STRING}
############ range for requires ends
+############ range for produces starts
+STR_INDUSTRY_WINDOW_WAITING_FOR_PROCESSING :{BLACK}Argocay aitingway otay ebay ocessedpray:
+STR_INDUSTRY_WINDOW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO}{BLACK}
+STR_4827_PRODUCES :{BLACK}Oducespray: {YELLOW}{STRING}
+STR_4828_PRODUCES :{BLACK}Oducespray: {YELLOW}{STRING}, {STRING}
+############ range for produces ends
+
STR_482A_PRODUCTION_LAST_MONTH :{BLACK}Oductionpray astlay onthmay:
STR_482B_TRANSPORTED :{YELLOW}{CARGO}{BLACK} ({COMMA}% ansportedtray)
STR_482C_CENTER_THE_MAIN_VIEW_ON :{BLACK}Entrecay ethay ainmay iewvay onway industryway ocationlay
@@ -3326,6 +3333,10 @@
STR_GROUP_ALL_ROADS :Allway oadray ehiclesvay
STR_GROUP_ALL_SHIPS :Allway ipsshay
STR_GROUP_ALL_AIRCRAFTS :Allway aircraftway
+STR_GROUP_DEFAULT_TRAINS :Ungroupedway ainstray
+STR_GROUP_DEFAULT_ROADS :Ungroupedway oadray ehiclesvay
+STR_GROUP_DEFAULT_SHIPS :Ungroupedway ipsshay
+STR_GROUP_DEFAULT_AIRCRAFTS :Ungroupedway aircraftway
STR_GROUP_TINY_NUM :{TINYFONT}{COMMA}
STR_GROUP_ADD_SHARED_VEHICLE :Addway aredshay ehiclesvay
STR_GROUP_REMOVE_ALL_VEHICLES :Emoveray allway ehiclesvay
@@ -3369,3 +3380,8 @@
STR_PREVIOUS_SIGN_TOOLTIP :{BLACK}Ogay otay eviouspray ignsay
########
+
+STR_FUND_NEW_INDUSTRY :{BLACK}Undfay
+STR_PROSPECT_NEW_INDUSTRY :{BLACK}Ospectpray
+STR_BUILD_NEW_INDUSTRY :{BLACK}Uildbay
+STR_INDUSTRY_SELECTION_HINT :{BLACK}Oosechay ethay appropriateway industryway omfray isthay istlay
--- a/src/lang/portuguese.txt Mon Jul 16 21:11:29 2007 +0000
+++ b/src/lang/portuguese.txt Mon Jul 16 21:22:24 2007 +0000
@@ -3333,6 +3333,10 @@
STR_GROUP_ALL_ROADS :Todos os veículos de estrada
STR_GROUP_ALL_SHIPS :Todos os barcos
STR_GROUP_ALL_AIRCRAFTS :Todas as aeronaves
+STR_GROUP_DEFAULT_TRAINS :Comboios sem grupo
+STR_GROUP_DEFAULT_ROADS :Veículos sem grupo
+STR_GROUP_DEFAULT_SHIPS :Barcos sem grupo
+STR_GROUP_DEFAULT_AIRCRAFTS :Aeronaves sem grupo
STR_GROUP_TINY_NUM :{TINYFONT}{COMMA}
STR_GROUP_ADD_SHARED_VEHICLE :Adic. veíc. partilh.
STR_GROUP_REMOVE_ALL_VEHICLES :Remover todos os veículos
--- a/src/lang/romanian.txt Mon Jul 16 21:11:29 2007 +0000
+++ b/src/lang/romanian.txt Mon Jul 16 21:22:24 2007 +0000
@@ -1980,8 +1980,12 @@
STR_4829_REQUIRES :{BLACK}Are nevoie de: {YELLOW}{STRING}, {STRING}, {STRING}
############ range for requires ends
+############ range for produces starts
STR_INDUSTRY_WINDOW_WAITING_FOR_PROCESSING :{BLACK}Incarcatura in asteaptarea procesarii:
STR_INDUSTRY_WINDOW_WAITING_STOCKPILE_CARGO :{YELLOW}{CARGO}{BLACK}
+STR_4827_PRODUCES :{BLACK}Produce: {YELLOW}{STRING}
+STR_4828_PRODUCES :{BLACK}Produce: {YELLOW}{STRING}, {STRING}
+############ range for produces ends
STR_482A_PRODUCTION_LAST_MONTH :{BLACK}Producţia lunii trecute:
STR_482B_TRANSPORTED :{YELLOW}{CARGO}{BLACK} ({COMMA}% transportat)
@@ -3329,6 +3333,10 @@
STR_GROUP_ALL_ROADS :Toate autovehiculele
STR_GROUP_ALL_SHIPS :Toate navele
STR_GROUP_ALL_AIRCRAFTS :Toate aeronavele
+STR_GROUP_DEFAULT_TRAINS :Trenuri negrupate
+STR_GROUP_DEFAULT_ROADS :Vehicule rutiere negrupate
+STR_GROUP_DEFAULT_SHIPS :Nave negrupate
+STR_GROUP_DEFAULT_AIRCRAFTS :Aeronave negrupate
STR_GROUP_TINY_NUM :{TINYFONT}{COMMA}
STR_GROUP_ADD_SHARED_VEHICLE :Adauga vehiculele partajate
STR_GROUP_REMOVE_ALL_VEHICLES :Elimina toate vehiculele
@@ -3372,3 +3380,8 @@
STR_PREVIOUS_SIGN_TOOLTIP :{BLACK}Mergi la semnul anterior
########
+
+STR_FUND_NEW_INDUSTRY :{BLACK}Finanteaza
+STR_PROSPECT_NEW_INDUSTRY :{BLACK}Prospecteaza
+STR_BUILD_NEW_INDUSTRY :{BLACK}Construieste
+STR_INDUSTRY_SELECTION_HINT :{BLACK}Alege industria potrivita din acesta lista
--- a/src/lang/russian.txt Mon Jul 16 21:11:29 2007 +0000
+++ b/src/lang/russian.txt Mon Jul 16 21:22:24 2007 +0000
@@ -3346,6 +3346,10 @@
STR_GROUP_ALL_ROADS :Весь автотранспорт
STR_GROUP_ALL_SHIPS :Все корабли
STR_GROUP_ALL_AIRCRAFTS :Все самолёты
+STR_GROUP_DEFAULT_TRAINS :Без группы
+STR_GROUP_DEFAULT_ROADS :Без группы
+STR_GROUP_DEFAULT_SHIPS :Без группы
+STR_GROUP_DEFAULT_AIRCRAFTS :Без группы
STR_GROUP_TINY_NUM :{TINYFONT}{COMMA}
STR_GROUP_ADD_SHARED_VEHICLE :Добавить с общими заданиями
STR_GROUP_REMOVE_ALL_VEHICLES :Удалить всех
--- a/src/lang/slovenian.txt Mon Jul 16 21:11:29 2007 +0000
+++ b/src/lang/slovenian.txt Mon Jul 16 21:22:24 2007 +0000
@@ -3413,6 +3413,10 @@
STR_GROUP_ALL_ROADS :Vsa cestna vozila
STR_GROUP_ALL_SHIPS :Vse ladje
STR_GROUP_ALL_AIRCRAFTS :Vsa letala
+STR_GROUP_DEFAULT_TRAINS :Vlaki brez skupine
+STR_GROUP_DEFAULT_ROADS :Cestna vozila brez skupine
+STR_GROUP_DEFAULT_SHIPS :Ladje brez skupine
+STR_GROUP_DEFAULT_AIRCRAFTS :Letala brez skupine
STR_GROUP_TINY_NUM :{TINYFONT}{COMMA}
STR_GROUP_ADD_SHARED_VEHICLE :Vsa izmenljiva vozila
STR_GROUP_REMOVE_ALL_VEHICLES :Odstrani vsa vozila
--- a/src/lang/spanish.txt Mon Jul 16 21:11:29 2007 +0000
+++ b/src/lang/spanish.txt Mon Jul 16 21:22:24 2007 +0000
@@ -3334,6 +3334,10 @@
STR_GROUP_ALL_ROADS :Todos los vehículos de carretera
STR_GROUP_ALL_SHIPS :Todos los barcos
STR_GROUP_ALL_AIRCRAFTS :Todas las aeronaves
+STR_GROUP_DEFAULT_TRAINS :Trenes sin agrupar
+STR_GROUP_DEFAULT_ROADS :Vehículos de carretera sin agrupar
+STR_GROUP_DEFAULT_SHIPS :Barcos sin agrupar
+STR_GROUP_DEFAULT_AIRCRAFTS :Aeronaves sin agrupar
STR_GROUP_TINY_NUM :{TINYFONT}{COMMA}
STR_GROUP_ADD_SHARED_VEHICLE :Todos los vehículos compartidos
STR_GROUP_REMOVE_ALL_VEHICLES :Quitar todos los vehículos
--- a/src/lang/traditional_chinese.txt Mon Jul 16 21:11:29 2007 +0000
+++ b/src/lang/traditional_chinese.txt Mon Jul 16 21:22:24 2007 +0000
@@ -3333,6 +3333,10 @@
STR_GROUP_ALL_ROADS :所有車輛
STR_GROUP_ALL_SHIPS :所有船舶
STR_GROUP_ALL_AIRCRAFTS :所有飛機
+STR_GROUP_DEFAULT_TRAINS :未分群組的列車
+STR_GROUP_DEFAULT_ROADS :未分群組的車輛
+STR_GROUP_DEFAULT_SHIPS :未分群組的船舶
+STR_GROUP_DEFAULT_AIRCRAFTS :未分群組的飛機
STR_GROUP_TINY_NUM :{TINYFONT}{COMMA}
STR_GROUP_ADD_SHARED_VEHICLE :加入共用載具
STR_GROUP_REMOVE_ALL_VEHICLES :移除所有載具
--- a/src/lang/ukrainian.txt Mon Jul 16 21:11:29 2007 +0000
+++ b/src/lang/ukrainian.txt Mon Jul 16 21:22:24 2007 +0000
@@ -3496,6 +3496,10 @@
STR_GROUP_ALL_ROADS :Усі авто
STR_GROUP_ALL_SHIPS :Усі кораблі
STR_GROUP_ALL_AIRCRAFTS :Усі літаки
+STR_GROUP_DEFAULT_TRAINS :Незгруповані поїзди
+STR_GROUP_DEFAULT_ROADS :Незгруповані автомобілі
+STR_GROUP_DEFAULT_SHIPS :Незгруповані човни
+STR_GROUP_DEFAULT_AIRCRAFTS :Незгруповані літаки
STR_GROUP_TINY_NUM :{TINYFONT}{COMMA}
STR_GROUP_ADD_SHARED_VEHICLE :Добавити спільний транспорт
STR_GROUP_REMOVE_ALL_VEHICLES :Позбутися всього транспорту
--- a/src/main_gui.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/main_gui.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -1917,7 +1917,7 @@
if (ni->display_mode == 3) {
str = _get_news_string_callback[ni->callback](ni);
} else {
- COPY_IN_DPARAM(0, ni->params, lengthof(ni->params));
+ CopyInDParam(0, ni->params, lengthof(ni->params));
str = ni->string_id;
}
--- a/src/misc/blob.hpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/misc/blob.hpp Mon Jul 16 21:22:24 2007 +0000
@@ -59,7 +59,9 @@
/** type used as class member */
union {
bitem_t *m_pData; ///< ptr to the first byte of data
+#if defined(HAS_WCHAR)
wchar_t *m_pwData; ///< ptr to the first byte of data
+#endif /* HAS_WCHAR */
CHdr *m_pHdr_1; ///< ptr just after the CHdr holding m_size and m_max_size
} ptr_u;
--- a/src/misc/str.hpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/misc/str.hpp Mon Jul 16 21:22:24 2007 +0000
@@ -183,7 +183,9 @@
typedef CStrT<char , false> CStrA; ///< Case sensitive ANSI/UTF-8 string
typedef CStrT<char , true > CStrCiA; ///< Case insensitive ANSI/UTF-8 string
+#if defined(HAS_WCHAR)
typedef CStrT<wchar_t, false> CStrW; ///< Case sensitive unicode string
typedef CStrT<wchar_t, true > CStrCiW; ///< Case insensitive unicode string
+#endif /* HAS_WCHAR */
#endif /* STR_HPP */
--- a/src/misc/strapi.hpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/misc/strapi.hpp Mon Jul 16 21:22:24 2007 +0000
@@ -6,12 +6,15 @@
#define STRAPI_HPP
#include <string.h>
+
+#if defined(HAS_WCHAR)
#include <wchar.h>
#if !defined(_MSC_VER)
#define _stricmp strcmp
#define _wcsicmp wcscmp
-#endif //!_MSC_VER
+#endif /* !defined(_MSC_VER) */
+#endif /* HAS_WCHAR */
/** String API mapper base - just mapping by character type, not by case sensitivity yet.
* Class template CStrApiBaseT declaration is general, but following inline method
@@ -32,35 +35,37 @@
return ::strlen(s);
}
-/** ::strlen wrapper specialization for wchar_t */
-template <> /*static*/ inline size_t CStrApiBaseT<wchar_t>::StrLen(const wchar_t *s)
-{
- return ::wcslen(s);
-}
-
/** ::vsprintf wrapper specialization for char */
template <> /*static*/ inline int CStrApiBaseT<char>::SPrintFL(char *buf, size_t count, const char *fmt, va_list args)
{
#if defined(_MSC_VER) && (_MSC_VER >= 1400) // VC 8.0 and above
return ::vsnprintf_s(buf, count, count - 1, fmt, args);
-#else // ! VC 8.0 and above
+#else /* ! VC 8.0 and above */
return ::vsnprintf(buf, count, fmt, args);
#endif
}
+#if defined(HAS_WCHAR)
+/** ::strlen wrapper specialization for wchar_t */
+template <> /*static*/ inline size_t CStrApiBaseT<wchar_t>::StrLen(const wchar_t *s)
+{
+ return ::wcslen(s);
+}
+
/** ::vsprintf wrapper specialization for wchar_t */
template <> /*static*/ inline int CStrApiBaseT<wchar_t>::SPrintFL(wchar_t *buf, size_t count, const wchar_t *fmt, va_list args)
{
#if defined(_MSC_VER) && (_MSC_VER >= 1400) // VC 8.0 and above
return ::_vsnwprintf_s(buf, count, count - 1, fmt, args);
-#else // ! VC 8.0 and above
+#else /* ! VC 8.0 and above */
# if defined(_WIN32)
return ::_vsnwprintf(buf, count, fmt, args);
-# else // !_WIN32
+# else /* !_WIN32 */
return ::vswprintf(buf, count, fmt, args);
-# endif // !_WIN32
+# endif /* !_WIN32 */
#endif
}
+#endif /* HAS_WCHAR */
@@ -81,6 +86,7 @@
return ::_stricmp(s1, s2);
}
+#if defined(HAS_WCHAR)
template <> /*static*/ inline int CStrApiT<wchar_t, false>::StrCmp(const wchar_t *s1, const wchar_t *s2)
{
return ::wcscmp(s1, s2);
@@ -90,5 +96,6 @@
{
return ::_wcsicmp(s1, s2);
}
+#endif /* HAS_WCHAR */
#endif /* STRAPI_HPP */
--- a/src/misc_gui.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/misc_gui.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -13,6 +13,7 @@
#include "strings.h"
#include "table/sprites.h"
#include "table/strings.h"
+#include "strings.h"
#include "table/tree_land.h"
#include "map.h"
#include "window.h"
@@ -500,9 +501,9 @@
{
switch (e->event) {
case WE_PAINT:
- COPY_IN_DPARAM(0, _errmsg_decode_params, lengthof(_errmsg_decode_params));
+ CopyInDParam(0, _errmsg_decode_params, lengthof(_errmsg_decode_params));
DrawWindowWidgets(w);
- COPY_IN_DPARAM(0, _errmsg_decode_params, lengthof(_errmsg_decode_params));
+ CopyInDParam(0, _errmsg_decode_params, lengthof(_errmsg_decode_params));
if (!IsWindowOfPrototype(w, _errmsg_face_widgets)) {
DrawStringMultiCenter(
120,
@@ -569,7 +570,7 @@
_errmsg_message_1 = msg_1;
_errmsg_message_2 = msg_2;
- COPY_OUT_DPARAM(_errmsg_decode_params, 0, lengthof(_errmsg_decode_params));
+ CopyOutDParam(_errmsg_decode_params, 0, lengthof(_errmsg_decode_params));
_errmsg_duration = _patches.errmsg_duration;
if (!_errmsg_duration) return;
@@ -1235,9 +1236,9 @@
switch (e->event) {
case WE_PAINT:
- COPY_IN_DPARAM(0, q->params, lengthof(q->params));
+ CopyInDParam(0, q->params, lengthof(q->params));
DrawWindowWidgets(w);
- COPY_IN_DPARAM(0, q->params, lengthof(q->params));
+ CopyInDParam(0, q->params, lengthof(q->params));
DrawStringMultiCenter(w->width / 2, (w->height / 2) - 10, q->message, w->width - 2);
break;
@@ -1315,7 +1316,7 @@
/* Create a backup of the variadic arguments to strings because it will be
* overridden pretty often. We will copy these back for drawing */
- COPY_OUT_DPARAM(WP(w, query_d).params, 0, lengthof(WP(w, query_d).params));
+ CopyOutDParam(WP(w, query_d).params, 0, lengthof(WP(w, query_d).params));
w->widget[QUERY_WIDGET_CAPTION].data = caption;
WP(w, query_d).message = message;
WP(w, query_d).proc = callback;
--- a/src/music_gui.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/music_gui.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -6,6 +6,7 @@
#include "openttd.h"
#include "table/strings.h"
#include "table/sprites.h"
+#include "strings.h"
#include "functions.h"
#include "fileio.h"
#include "window.h"
--- a/src/network/network_client.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/network/network_client.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -5,6 +5,7 @@
#include "../stdafx.h"
#include "../debug.h"
#include "../string.h"
+#include "../openttd.h"
#include "../strings.h"
#include "network_data.h"
#include "core/tcp.h"
--- a/src/newgrf_industries.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/newgrf_industries.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -380,6 +380,19 @@
return false;
}
+bool CheckIfCallBackAllowsAvailability(IndustryType type, IndustryAvailabilityCallType creation_type)
+{
+ const IndustrySpec *indspec = GetIndustrySpec(type);
+
+ if (HASBIT(indspec->callback_flags, CBM_IND_AVAILABLE)) {
+ uint16 res = GetIndustryCallback(CBID_INDUSTRY_AVAILABLE, 0, creation_type, NULL, type, INVALID_TILE);
+ if (res != CALLBACK_FAILED) {
+ return (res == 0);
+ }
+ }
+ return true;
+}
+
static int32 DerefIndProd(uint field, bool use_register)
{
return use_register ? (int32)GetRegister(field) : field;
--- a/src/newgrf_industries.h Mon Jul 16 21:11:29 2007 +0000
+++ b/src/newgrf_industries.h Mon Jul 16 21:22:24 2007 +0000
@@ -14,6 +14,7 @@
uint32 GetIndustryIDAtOffset(TileIndex new_tile, TileIndex old_tile, const Industry *i);
void IndustryProductionCallback(Industry *ind, int reason);
bool CheckIfCallBackAllowsCreation(TileIndex tile, IndustryType type, uint itspec_index);
+bool CheckIfCallBackAllowsAvailability(IndustryType type, IndustryAvailabilityCallType creation_type);
IndustryType MapNewGRFIndustryType(IndustryType grf_type, uint32 grf_id);
--- a/src/news_gui.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/news_gui.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -124,7 +124,7 @@
DrawStringRightAligned(428, 1, STR_01FF, 0);
if (!(ni->flags & NF_VIEWPORT)) {
- COPY_IN_DPARAM(0, ni->params, lengthof(ni->params));
+ CopyInDParam(0, ni->params, lengthof(ni->params));
DrawStringMultiCenter(215, ni->display_mode == NM_NORMAL ? 76 : 56,
ni->string_id, w->width - 4);
} else {
@@ -141,7 +141,7 @@
(ni->flags & NF_INCOLOR ? PALETTE_TO_TRANSPARENT : PALETTE_TO_STRUCT_GREY) | (1 << USE_COLORTABLE)
);
- COPY_IN_DPARAM(0, ni->params, lengthof(ni->params));
+ CopyInDParam(0, ni->params, lengthof(ni->params));
DrawStringMultiCenter(w->width / 2, 20, ni->string_id, w->width - 4);
}
break;
@@ -155,11 +155,11 @@
default: {
DrawWindowWidgets(w);
if (!(ni->flags & NF_VIEWPORT)) {
- COPY_IN_DPARAM(0, ni->params, lengthof(ni->params));
+ CopyInDParam(0, ni->params, lengthof(ni->params));
DrawStringMultiCenter(140, 38, ni->string_id, 276);
} else {
DrawWindowViewport(w);
- COPY_IN_DPARAM(0, ni->params, lengthof(ni->params));
+ CopyInDParam(0, ni->params, lengthof(ni->params));
DrawStringMultiCenter(w->width / 2, w->height - 16, ni->string_id, w->width - 4);
}
break;
@@ -300,7 +300,7 @@
ni->data_a = data_a;
ni->data_b = data_b;
ni->date = _date;
- COPY_OUT_DPARAM(ni->params, 0, lengthof(ni->params));
+ CopyOutDParam(ni->params, 0, lengthof(ni->params));
w = FindWindowById(WC_MESSAGE_HISTORY, 0);
if (w == NULL) return;
@@ -611,7 +611,7 @@
if (ni->display_mode == 3) {
str = _get_news_string_callback[ni->callback](ni);
} else {
- COPY_IN_DPARAM(0, ni->params, lengthof(ni->params));
+ CopyInDParam(0, ni->params, lengthof(ni->params));
str = ni->string_id;
}
--- a/src/openttd.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/openttd.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -9,13 +9,13 @@
#include "debug.h"
#include "driver.h"
#include "saveload.h"
-#include "strings.h"
#include "map.h"
#include "tile.h"
#include "void_map.h"
#include "helpers.hpp"
#include "openttd.h"
+#include "strings.h"
#include "bridge_map.h"
#include "functions.h"
#include "mixer.h"
@@ -2086,6 +2086,16 @@
FOR_ALL_INDUSTRIES(i) i->founder = OWNER_NONE;
}
+ if (CheckSavegameVersion(72)) {
+ /* Locks/shiplifts in very old savegames had OWNER_WATER as owner */
+ for (TileIndex t = 0; t < MapSize(); t++) {
+ if (IsTileType(t, MP_WATER) && GetWaterTileType(t) == WATER_TILE_LOCK &&
+ GetTileOwner(t) == OWNER_WATER) {
+ SetTileOwner(t, OWNER_NONE);
+ }
+ }
+ }
+
/* Recalculate */
Group *g;
FOR_ALL_GROUPS(g) {
--- a/src/order_gui.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/order_gui.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -8,6 +8,7 @@
#include "station_map.h"
#include "table/sprites.h"
#include "table/strings.h"
+#include "strings.h"
#include "functions.h"
#include "map.h"
#include "tile.h"
--- a/src/player_gui.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/player_gui.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -6,6 +6,7 @@
#include "openttd.h"
#include "table/sprites.h"
#include "table/strings.h"
+#include "strings.h"
#include "functions.h"
#include "window.h"
#include "gui.h"
--- a/src/players.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/players.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -711,7 +711,7 @@
GroupID id_g = GB(p1, 16, 16);
CommandCost cost;
- if (!IsValidGroupID(id_g) && !IsDefaultGroupID(id_g)) return CMD_ERROR;
+ if (!IsValidGroupID(id_g) && !IsAllGroupID(id_g) && !IsDefaultGroupID(id_g)) return CMD_ERROR;
if (new_engine_type != INVALID_ENGINE) {
/* First we make sure that it's a valid type the user requested
* check that it's an engine that is in the engine array */
--- a/src/rail_gui.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/rail_gui.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -6,6 +6,7 @@
#include "openttd.h"
#include "table/sprites.h"
#include "table/strings.h"
+#include "strings.h"
#include "functions.h"
#include "landscape.h"
#include "date.h"
--- a/src/road_cmd.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/road_cmd.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -12,6 +12,7 @@
#include "sprite.h"
#include "table/sprites.h"
#include "table/strings.h"
+#include "strings.h"
#include "functions.h"
#include "window.h"
#include "map.h"
--- a/src/road_gui.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/road_gui.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -6,6 +6,7 @@
#include "openttd.h"
#include "table/sprites.h"
#include "table/strings.h"
+#include "strings.h"
#include "functions.h"
#include "map.h"
#include "tile.h"
--- a/src/roadveh_cmd.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/roadveh_cmd.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -11,6 +11,7 @@
#include "roadveh.h"
#include "station_map.h"
#include "table/strings.h"
+#include "strings.h"
#include "map.h"
#include "tile.h"
#include "vehicle.h"
--- a/src/saveload.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/saveload.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -30,7 +30,7 @@
#include <setjmp.h>
#include <list>
-extern const uint16 SAVEGAME_VERSION = 70;
+extern const uint16 SAVEGAME_VERSION = 71;
uint16 _sl_version; ///< the major savegame version identifier
byte _sl_minor_version; ///< the minor savegame version, DO NOT USE!
--- a/src/settings.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/settings.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -29,6 +29,7 @@
#include "string.h"
#include "variables.h"
#include "network/network.h"
+#include "strings.h"
#include "settings.h"
#include "command.h"
#include "console.h"
--- a/src/ship_cmd.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/ship_cmd.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -6,6 +6,7 @@
#include "openttd.h"
#include "ship.h"
#include "table/strings.h"
+#include "strings.h"
#include "functions.h"
#include "landscape.h"
#include "map.h"
--- a/src/ship_gui.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/ship_gui.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -8,6 +8,7 @@
#include "functions.h"
#include "ship.h"
#include "table/strings.h"
+#include "strings.h"
#include "table/sprites.h"
#include "gui.h"
#include "vehicle.h"
--- a/src/signs.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/signs.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -5,6 +5,7 @@
#include "stdafx.h"
#include "openttd.h"
#include "table/strings.h"
+#include "strings.h"
#include "functions.h"
#include "landscape.h"
#include "player.h"
--- a/src/smallmap_gui.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/smallmap_gui.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -10,6 +10,7 @@
#include "industry_map.h"
#include "station_map.h"
#include "table/strings.h"
+#include "strings.h"
#include "table/sprites.h"
#include "landscape.h"
#include "map.h"
--- a/src/stdafx.h Mon Jul 16 21:11:29 2007 +0000
+++ b/src/stdafx.h Mon Jul 16 21:22:24 2007 +0000
@@ -341,4 +341,16 @@
CDECL error(const char *str, ...);
#define NOT_REACHED() error("NOT_REACHED triggered at line %i of %s", __LINE__, __FILE__)
+#if !defined(MORPHOS)
+/* MorphOS doesn't know wchars, the rest does :( */
+#define HAS_WCHAR
+#else
+/* And MorphOS doesn't have C++ conformant _stricmp... */
+#define _stricmp stricmp
+#endif /* !defined(MORHPOS) */
+
+#if !defined(MAX_PATH)
+# define MAX_PATH 260
+#endif
+
#endif /* STDAFX_H */
--- a/src/string.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/string.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -9,6 +9,7 @@
#include "macros.h"
#include "table/control_codes.h"
#include "helpers.hpp"
+#include "debug.h"
#include <stdarg.h>
#include <ctype.h> // required for tolower()
@@ -47,11 +48,14 @@
assert(dst <= last);
for (; *src != '\0' && dst != last; ++dst, ++src) *dst = *src;
*dst = '\0';
-#if 1
if (dst == last && *src != '\0') {
+#ifdef STRGEN
error("String too long for destination buffer");
+#else /* STRGEN */
+ DEBUG(misc, 0, "String too long for destination buffer");
+ *dst = '\0';
+#endif /* STRGEN */
}
-#endif
return dst;
}
--- a/src/strings.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/strings.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -38,6 +38,7 @@
DynamicLanguages _dynlang;
char _userstring[128];
+uint64 _decode_parameters[20];
static char *StationGetSpecialString(char *buff, int x, const char* last);
static char *GetSpecialTownNameString(char *buff, int ind, uint32 seed, const char* last);
--- a/src/strings.h Mon Jul 16 21:11:29 2007 +0000
+++ b/src/strings.h Mon Jul 16 21:22:24 2007 +0000
@@ -5,13 +5,78 @@
#ifndef STRINGS_H
#define STRINGS_H
-char *InlineString(char *buf, uint16 string);
-char *GetString(char *buffr, uint16 string, const char* last);
+char *InlineString(char *buf, StringID string);
+char *GetString(char *buffr, StringID string, const char* last);
extern char _userstring[128];
void InjectDParam(int amount);
-int32 GetParamInt32();
+
+static inline void SetDParamX(uint64 *s, uint n, uint64 v)
+{
+ s[n] = v;
+}
+
+static inline void SetDParam(uint n, uint64 v)
+{
+ extern uint64 _decode_parameters[20];
+
+ assert(n < lengthof(_decode_parameters));
+ _decode_parameters[n] = v;
+}
+
+/* Used to bind a C string name to a dparam number.
+ * NOTE: This has a short lifetime. You can't
+ * use this string much later or it will be gone. */
+void SetDParamStr(uint n, const char *str);
+
+/** This function takes a C-string and allocates a temporary string ID.
+ * The duration of the bound string is valid only until the next call to GetString,
+ * so be careful. */
+StringID BindCString(const char *str);
+
+static inline uint64 GetDParamX(const uint64 *s, uint n)
+{
+ return s[n];
+}
+
+static inline uint64 GetDParam(uint n)
+{
+ extern uint64 _decode_parameters[20];
+
+ assert(n < lengthof(_decode_parameters));
+ return _decode_parameters[n];
+}
+
+static inline void CopyInDParam(int offs, const uint64 *src, int num)
+{
+ extern uint64 _decode_parameters[20];
+ memcpy(_decode_parameters + offs, src, sizeof(uint64) * (num));
+}
+
+static inline void CopyOutDParam(uint64 *dst, int offs, int num)
+{
+ extern uint64 _decode_parameters[20];
+ memcpy(dst, _decode_parameters + offs, sizeof(uint64) * (num));
+}
+
+
+/** Information about a language */
+struct Language {
+ char *name; ///< The internal name of the language
+ char *file; ///< The name of the language as it appears on disk
+};
+
+/** Used for dynamic language support */
+struct DynamicLanguages {
+ int num; ///< Number of languages
+ int curr; ///< Currently selected language index
+ char curr_file[MAX_PATH]; ///< Currently selected language file name without path (needed for saving the filename of the loaded language).
+ StringID dropdown[MAX_LANG + 1]; ///< List of languages in the settings gui
+ Language ent[MAX_LANG]; ///< Information about the languages
+};
+
+extern DynamicLanguages _dynlang; // defined in strings.cpp
bool ReadLanguagePack(int index);
void InitializeLanguagePacks();
--- a/src/subsidy_gui.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/subsidy_gui.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -5,6 +5,7 @@
#include "stdafx.h"
#include "openttd.h"
#include "table/strings.h"
+#include "strings.h"
#include "functions.h"
#include "window.h"
#include "station.h"
--- a/src/timetable_gui.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/timetable_gui.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -7,6 +7,7 @@
#include "functions.h"
#include "variables.h"
#include "table/strings.h"
+#include "strings.h"
#include "command.h"
#include "date.h"
#include "engine.h"
--- a/src/train_cmd.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/train_cmd.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -11,6 +11,7 @@
#include "gui.h"
#include "station_map.h"
#include "table/strings.h"
+#include "strings.h"
#include "map.h"
#include "tile.h"
#include "tunnel_map.h"
--- a/src/train_gui.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/train_gui.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -8,6 +8,7 @@
#include "functions.h"
#include "table/sprites.h"
#include "table/strings.h"
+#include "strings.h"
#include "window.h"
#include "gui.h"
#include "vehicle.h"
--- a/src/tunnelbridge_cmd.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/tunnelbridge_cmd.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -12,6 +12,7 @@
#include "road_map.h"
#include "table/sprites.h"
#include "table/strings.h"
+#include "strings.h"
#include "functions.h"
#include "map.h"
#include "landscape.h"
--- a/src/variables.h Mon Jul 16 21:11:29 2007 +0000
+++ b/src/variables.h Mon Jul 16 21:22:24 2007 +0000
@@ -8,9 +8,6 @@
#include "yapf/yapf_settings.h"
/* ********* START OF SAVE REGION */
-#if !defined(MAX_PATH)
-# define MAX_PATH 260
-#endif
#include "gfx.h"
@@ -292,8 +289,6 @@
VARDEF StringID _error_message;
VARDEF Money _additional_cash_required;
-VARDEF uint64 _decode_parameters[20];
-
VARDEF bool _rightclick_emulate;
/* IN/OUT parameters to commands */
@@ -320,23 +315,6 @@
VARDEF char _ini_videodriver[32], _ini_musicdriver[32], _ini_sounddriver[32];
-/** Information about a language */
-struct Language {
- char *name; ///< The internal name of the language
- char *file; ///< The name of the language as it appears on disk
-};
-
-/** Used for dynamic language support */
-struct DynamicLanguages {
- int num; ///< Number of languages
- int curr; ///< Currently selected language index
- char curr_file[MAX_PATH]; ///< Currently selected language file name without path (needed for saving the filename of the loaded language).
- StringID dropdown[MAX_LANG + 1]; ///< List of languages in the settings gui
- Language ent[MAX_LANG]; ///< Information about the languages
-};
-
-extern DynamicLanguages _dynlang; // defined in strings.cpp
-
VARDEF int _num_resolutions;
VARDEF uint16 _resolutions[32][2];
VARDEF uint16 _cur_resolution[2];
@@ -348,43 +326,6 @@
VARDEF char *_log_file;
-static inline void SetDParamX(uint64 *s, uint n, uint64 v)
-{
- s[n] = v;
-}
-
-static inline uint64 GetDParamX(const uint64 *s, uint n)
-{
- return s[n];
-}
-
-static inline void SetDParam(uint n, uint64 v)
-{
- assert(n < lengthof(_decode_parameters));
- _decode_parameters[n] = v;
-}
-
-static inline uint64 GetDParam(uint n)
-{
- assert(n < lengthof(_decode_parameters));
- return _decode_parameters[n];
-}
-
-/* Used to bind a C string name to a dparam number.
- * NOTE: This has a short lifetime. You can't
- * use this string much later or it will be gone. */
-void SetDParamStr(uint n, const char *str);
-
-/** This function takes a C-string and allocates a temporary string ID.
- * The duration of the bound string is valid only until the next acll to GetString,
- * so be careful. */
-StringID BindCString(const char *str);
-
-
-#define COPY_IN_DPARAM(offs, src, num) memcpy(_decode_parameters + offs, src, sizeof(uint64) * (num))
-#define COPY_OUT_DPARAM(dst, offs, num) memcpy(dst, _decode_parameters + offs, sizeof(uint64) * (num))
-
-
#define SET_EXPENSES_TYPE(x) _yearly_expenses_type = x;
/* landscape.cpp */
--- a/src/water_cmd.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/water_cmd.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -10,6 +10,7 @@
#include "station_map.h"
#include "table/sprites.h"
#include "table/strings.h"
+#include "strings.h"
#include "functions.h"
#include "landscape.h"
#include "map.h"
@@ -168,7 +169,7 @@
{
TileIndexDiff delta = TileOffsByDiagDir(GetLockDirection(tile));
- if (!CheckTileOwnership(tile)) return CMD_ERROR;
+ if (!CheckTileOwnership(tile) && GetTileOwner(tile) != OWNER_NONE) return CMD_ERROR;
/* make sure no vehicle is on the tile. */
if (!EnsureNoVehicle(tile) || !EnsureNoVehicle(tile + delta) || !EnsureNoVehicle(tile - delta))
@@ -295,7 +296,7 @@
return_cmd_error(STR_0002_TOO_CLOSE_TO_EDGE_OF_MAP);
}
- if (GetTileOwner(tile) != OWNER_WATER && !CheckTileOwnership(tile)) return CMD_ERROR;
+ if (GetTileOwner(tile) != OWNER_WATER && GetTileOwner(tile) != OWNER_NONE && !CheckTileOwnership(tile)) return CMD_ERROR;
if (flags & DC_EXEC) DoClearSquare(tile);
return CommandCost(_price.clear_water);
@@ -797,8 +798,10 @@
if (new_player != PLAYER_SPECTATOR) {
SetTileOwner(tile, new_player);
+ } else if (IsShipDepot(tile)) {
+ DoCommand(tile, 0, 0, DC_EXEC, CMD_LANDSCAPE_CLEAR);
} else {
- DoCommand(tile, 0, 0, DC_EXEC, CMD_LANDSCAPE_CLEAR);
+ SetTileOwner(tile, OWNER_NONE);
}
}
--- a/src/yapf/yapf_common.hpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/yapf/yapf_common.hpp Mon Jul 16 21:22:24 2007 +0000
@@ -134,13 +134,26 @@
* adds it to the actual cost from origin and stores the sum to the Node::m_estimate */
inline bool PfCalcEstimate(Node& n)
{
- int dx = delta(TileX(n.GetTile()), TileX(m_destTile));
- int dy = delta(TileY(n.GetTile()), TileY(m_destTile));
- assert(dx >= 0 && dy >= 0);
- int dd = min(dx, dy);
+ static int dg_dir_to_x_offs[] = {-1, 0, 1, 0};
+ static int dg_dir_to_y_offs[] = {0, 1, 0, -1};
+ if (PfDetectDestination(n)) {
+ n.m_estimate = n.m_cost;
+ return true;
+ }
+
+ TileIndex tile = n.GetTile();
+ DiagDirection exitdir = TrackdirToExitdir(n.GetTrackdir());
+ int x1 = 2 * TileX(tile) + dg_dir_to_x_offs[(int)exitdir];
+ int y1 = 2 * TileY(tile) + dg_dir_to_y_offs[(int)exitdir];
+ int x2 = 2 * TileX(m_destTile);
+ int y2 = 2 * TileY(m_destTile);
+ int dx = abs(x1 - x2);
+ int dy = abs(y1 - y2);
+ int dmin = min(dx, dy);
int dxy = abs(dx - dy);
- int d = 14 * dd + 10 * dxy;
- n.m_estimate = n.m_cost + d /*+ d / 8*/;
+ int d = dmin * 7 + (dxy - 1) * (10 / 2);
+ n.m_estimate = n.m_cost + d;
+ assert(n.m_estimate >= n.m_parent->m_estimate);
return true;
}
};
--- a/src/yapf/yapf_ship.cpp Mon Jul 16 21:11:29 2007 +0000
+++ b/src/yapf/yapf_ship.cpp Mon Jul 16 21:22:24 2007 +0000
@@ -105,7 +105,10 @@
// base tile cost depending on distance
int c = IsDiagonalTrackdir(n.GetTrackdir()) ? 10 : 7;
// additional penalty for curves
- if (n.m_parent != NULL && n.GetTrackdir() != n.m_parent->GetTrackdir()) c += 3;
+ if (n.m_parent != NULL && n.GetTrackdir() != NextTrackdir(n.m_parent->GetTrackdir())) {
+ /* new trackdir does not match the next one when going straight */
+ c += 10;
+ }
// apply it
n.m_cost = n.m_parent->m_cost + c;
return true;