Compare commits

..
14 Commits
Author SHA1 Message Date
rubidium 52abb70c44 (svn r9661) -Release 0.5.1-RC3. 2007-04-17 20:19:44 +00:00
rubidium 635eff5e51 (svn r9660) [0.5] -Prepare 0.5 branch for release of 0.5.1-RC3. 2007-04-17 20:11:11 +00:00
truelight 4cd6870777 (svn r9659) [0.5] -Fix r9656: missed 2 hunks in last commit 2007-04-17 19:08:08 +00:00
truelight 54cfb12334 (svn r9657) [0.5] -Backport from trunk (r9585, r9613, r9615, r9633, r9640, r9649):
- Language updates (r9585, r9613, r9615, r9633, r9640, r9649)
2007-04-17 19:05:47 +00:00
rubidium 2d746c52c8 (svn r9656) [0.5] -Backport from trunk (r9602, r9641, r9647):
- Fix: Building rail on steep slopes ignored build_on_slopes patch setting (r9602)
- Fix: namegen.cpp was not UTF-8, which caused artefacts in Finnish town names (r9641)
- Fix: Select "Custom" in the difficulty settings gui when changing a setting [FS#733] (r9647)
2007-04-17 18:09:12 +00:00
truelight cb001e017a (svn r9589) [0.5] -Fix (r9587, r9588): this time I really do hope turkish.txt went okay... 2007-04-10 13:12:15 +00:00
truelight 9bee2fc641 (svn r9588) [0.5] -Fix r9587: something went wrong in turkish.txt update 2007-04-10 13:04:44 +00:00
truelight 7399e107e1 (svn r9587) [0.5] -Backport from trunk (r9585):
- Language updates (r9585)
2007-04-10 13:02:01 +00:00
truelight 70db6b3f40 (svn r9586) [0.5] -Backport from trunk (r9525, r9527, r9547, r9548, r9570, r9571, r9572, r9576):
- Language updates (r9525, r9527, r9547, r9548, r9570, r9571, r9572, r9576)
2007-04-10 12:58:05 +00:00
truelight ac6aefa07b (svn r9584) [0.5] -Backport frmo trunk (r9542, r9565, r9573):
- Fix: when checking for no vehicle on ground-tiles, don't take into account vehicles that are in the air (r9542)
- Feature: add list_patches to console commands; shows all patches and values (r9565)
- Fix: enclose settings names containing spaces with quotes (r9573)
2007-04-10 09:57:35 +00:00
truelight c04f0af19b (svn r9583) [0.5] -Backport from trunk (r9529, r9533, r9540, r9541):
- Fix: when 2 clients joined together, the second asserted on the NewCompany command of the first (r9529)
- Fix: when company is removed, sell all shares he has first, then sell all shares other people might have in this company (r9533)
- Fix: bankrupt AIs no longer buy over themselves (also added safeguards to prevent in future) (r9540 / r9541)
2007-04-10 09:49:41 +00:00
truelight c8c8667dc8 (svn r9582) [0.5] -Backport from trunk (r9425, r9437, r9455, r9519):
- Fix: housekeeping in convert rail functions (r9425)
- Fix: dedicated server crashed when the y part of the resolution was less than 10 (r9437)
- Fix: values of diff_custom and snow_line in .cfg weren't checked properly (r9455)
- Fix: free the malloc'd variable, not the pointer to that variable (r9519)
2007-04-10 09:40:36 +00:00
belugas a0688e8d85 (svn r9471) [0.5] -Backport from trunk (r9467 & r9469):
Reset the whole currency array while preserving custom one.  Also, max data of to_euro is now 300, not 1000, disabling any proper loading of the patch setting
2007-03-26 00:20:22 +00:00
truelight c85022e3db (svn r9430) [0.5] -Backport r9429: when deleting a vehicle which has shared orders with one more vehicle and no orders, segfaulted 2007-03-24 15:16:41 +00:00
45 changed files with 2265 additions and 1976 deletions
+1 -1
View File
@@ -268,7 +268,7 @@ ENDIAN_CHECK=endian_check$(EXE)
STRGEN=strgen/strgen$(EXE)
OSXAPP="OpenTTD.app"
REV := 0.5.1-RC2
REV := 0.5.1-RC3
# define flag to use for -lrt (some OSes overwrites this later for compatibility)
ifndef LRT
+1 -1
View File
@@ -3838,7 +3838,7 @@ static void AiHandleTakeover(Player *p)
if (best_pl->player_money >> 1 >= p->bankrupt_value) {
// Computer wants to buy it.
old_p = _current_player;
_current_player = p->index;
_current_player = best_pl->index;
DoCommand(0, old_p, 0, DC_EXEC, CMD_BUY_COMPANY);
_current_player = old_p;
}
+15
View File
@@ -1,3 +1,18 @@
0.5.1-RC3 (2007-04-17)
------------------------------------------------------------------------
- Feature: Add list_patches to console commands; shows all patches and values (r9565)
- Fix: Select "Custom" in the difficulty settings gui when changing a setting [FS#733] (r9647)
- Fix: Building rail on steep slopes ignored build_on_slopes patch setting (r9602)
- Fix: Wrong characters in Finnish town names (r9641)
- Fix: When checking for no vehicle on ground-tiles, do not take into account vehicles that are in the air (r9542)
- Fix: Bankrupt AIs no longer buy over themselves (also added safeguards to prevent in future) (r9540 / r9541)
- Fix: When company is removed, sell all shares of the and in the company (r9533)
- Fix: Crash when 2 or more clients joined at roughly the same time (r9529)
- Fix: Custom currency was overwritten and fix euro introduction (r9467, r9469)
- Fix: Values of diff_custom and snow_line in .cfg were not checked properly (r9455)
- Fix: When deleting a vehicle which has shared orders with one more vehicle and no orders, segfaulted (r9429)
0.5.1-RC2 (2007-03-23)
------------------------------------------------------------------------
- Fix: crashes when the chatbox would be drawn outside of the main window [FS#701] (r9420)
+14
View File
@@ -1402,6 +1402,19 @@ DEF_CONSOLE_CMD(ConPatch)
return true;
}
DEF_CONSOLE_CMD(ConListPatches)
{
if (argc == 0) {
IConsoleHelp("List patch options. Usage: 'list_patches'");
return true;
}
if (argc != 1) return false;
IConsoleListPatches();
return true;
}
DEF_CONSOLE_CMD(ConListDumpVariables)
{
const IConsoleVar *var;
@@ -1482,6 +1495,7 @@ void IConsoleStdLibRegister(void)
IConsoleCmdRegister("pwd", ConPrintWorkingDirectory);
IConsoleCmdRegister("clear", ConClearBuffer);
IConsoleCmdRegister("patch", ConPatch);
IConsoleCmdRegister("list_patches", ConListPatches);
IConsoleAliasRegister("dir", "ls");
IConsoleAliasRegister("del", "rm %+");
+9 -4
View File
@@ -153,12 +153,17 @@ void CheckSwitchToEuro(void)
}
/**
* Called only from newgrf.c. Will fill _currency_specs array with
* Will fill _currency_specs array with
* default values from origin_currency_specs
**/
void ResetCurrencies(void)
* Called only from newgrf.c and settings.c.
* @param preserve_custom will not reset custom currency (the latest one on the list)
* if ever it is flagged to true. In which case, the total size of the memory to move
* will be one currency spec less, thus preserving the custom curreny from been
* overwritten.void ResetCurrencies(bool preserve_custom)
*/
void ResetCurrencies(bool preserve_custom)
{
memcpy(&_currency_specs, &origin_currency_specs, sizeof(origin_currency_specs));
memcpy(&_currency_specs, &origin_currency_specs, sizeof(origin_currency_specs) - (preserve_custom ? sizeof(_custom_currency) : 0));
}
/**
+1 -1
View File
@@ -38,7 +38,7 @@ extern CurrencySpec _currency_specs[NUM_CURRENCY];
uint GetMaskOfAllowedCurrencies(void);
void CheckSwitchToEuro(void);
void ResetCurrencies(void);
void ResetCurrencies(bool preserve_custom);
StringID* BuildCurrencyDropdown(void);
byte GetNewgrfCurrencyIdConverted(byte grfcurr_id);
+1 -1
View File
@@ -1,6 +1,6 @@
.\" Hey, EMACS: -*- nroff -*-
.\" Please adjust this date whenever revising the manpage.
.Dd March 23, 2007
.Dd April 17, 2007
.Dt OPENTTD 6
.Sh NAME
.Nm openttd
+41 -21
View File
@@ -246,6 +246,41 @@ void ChangeOwnershipOfPlayerItems(PlayerID old_player, PlayerID new_player)
{
Town *t;
PlayerID old = _current_player;
assert(old_player != new_player);
{
Player *p;
uint i;
/* See if the old_player had shares in other companies */
_current_player = old_player;
FOR_ALL_PLAYERS(p) {
for (i = 0; i < 4; i++) {
if (p->share_owners[i] == old_player) {
/* Sell his shares */
int32 res = DoCommand(0, p->index, 0, DC_EXEC, CMD_SELL_SHARE_IN_COMPANY);
/* Because we are in a DoCommand, we can't just execute an other one and
* expect the money to be removed. We need to do it ourself! */
SubtractMoneyFromPlayer(res);
}
}
}
/* Sell all the shares that people have on this company */
p = GetPlayer(old_player);
for (i = 0; i < 4; i++) {
_current_player = p->share_owners[i];
if (_current_player != PLAYER_SPECTATOR) {
/* Sell the shares */
int32 res = DoCommand(0, old_player, 0, DC_EXEC, CMD_SELL_SHARE_IN_COMPANY);
/* Because we are in a DoCommand, we can't just execute an other one and
* expect the money to be removed. We need to do it ourself! */
SubtractMoneyFromPlayer(res);
}
}
}
_current_player = old_player;
/* Temporarily increase the player's money, to be sure that
@@ -338,25 +373,6 @@ void ChangeOwnershipOfPlayerItems(PlayerID old_player, PlayerID new_player)
/* Change color of existing windows */
if (new_player != PLAYER_SPECTATOR) ChangeWindowOwner(old_player, new_player);
{
Player *p;
uint i;
/* Check for shares */
FOR_ALL_PLAYERS(p) {
for (i = 0; i < 4; i++) {
/* 'Sell' the share if this player has any */
if (p->share_owners[i] == _current_player) {
p->share_owners[i] = PLAYER_SPECTATOR;
}
}
}
p = GetPlayer(_current_player);
/* Sell all the shares that people have on this company */
for (i = 0; i < 4; i++)
p->share_owners[i] = PLAYER_SPECTATOR;
}
_current_player = old;
MarkWholeScreenDirty();
@@ -1695,12 +1711,16 @@ int32 CmdSellShareInCompany(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
int32 CmdBuyCompany(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
{
Player *p;
PlayerID pid = (PlayerID)p1;
/* Disable takeovers in multiplayer games */
if (!IsValidPlayer((PlayerID)p1) || _networking) return CMD_ERROR;
if (!IsValidPlayer(pid) || _networking) return CMD_ERROR;
/* Do not allow players to take over themselves */
if (pid == _current_player) return CMD_ERROR;
SET_EXPENSES_TYPE(EXPENSES_OTHER);
p = GetPlayer(p1);
p = GetPlayer(pid);
if (!p->is_ai) return CMD_ERROR;
+3 -3
View File
@@ -144,10 +144,10 @@ static FT_Error GetFontByFaceName(const char *font_name, FT_Face *face)
folder_error:
#if defined(UNICODE)
free(font_path);
#endif
registry_no_font_found:
#if defined(UNICODE)
free(font_namep);
#endif
RegCloseKey(hKey);
return err;
}
+10 -9
View File
@@ -19,20 +19,21 @@ Bugs for 0.5.1
------------------------------------------------------------------------
URL: http://bugs.openttd.org
-677 Badspacing in news summaries
-674 Map signs allow less nonenglish characters than english ones
-672 Non-transparent station names' backgrounds do not resize properly upon language change
-735 Plural rule not expanded correctly when non-numeric placeholder uses
-732 Trains are lost after autorenewal/autoreplace
-716 Train Crash in Depot
-677 Badspacing in news summaries
-674 Map signs allow less nonenglish characters than english ones
-672 Non-transparent station names' backgrounds do not resize properly upon language change
-669 Docks/Airports/RV Stations can be built without available vehicles
-646 AI builds useless stations
-601 airports can't get flooded when they have planes in them
-599 reloaded game lost company passwords
-594 terraforming wipes out canals
-601 Airports can't get flooded when they have planes in them
-599 Reloaded game lost company passwords
-594 Terraforming wipes out canals
-591 Autorenew fails under certain conditions
-583 Fatal fault or crash during startup
-571 Problems with vehicle purchase lists with NewGRFs
-559 Front-/Rear-facing engines don't line up with each other
-553 Autorenew doesn't warn when replacement isn't available
-546 [0.5.0 RC3] Inflation overflow
-546 Overflows due to inflation
-540 Planes vanished when offered exclusive
-539 Trains can cash the same cargo multiple times
-524 OSX sometimes (not always) fails to find free disk space
+1
View File
@@ -732,6 +732,7 @@ STR_028C_PLACE_ROCKY_AREAS_ON_LANDSCAPE :{BLACK}Colocar
STR_028D_PLACE_LIGHTHOUSE :{BLACK}Colocar farol
STR_028E_PLACE_TRANSMITTER :{BLACK}Colocar transmissor
STR_028F_DEFINE_DESERT_AREA :{BLACK}Define área desértica.{} Pressione e segure CTRL para removê-la
STR_CREATE_LAKE :{BLACK}Define área com água.{} Faz um canal, a menos se CTRL for pressionado ao nível do mar, neste caso inundará ao redor
STR_0290_DELETE :{BLACK}Remover
STR_0291_DELETE_THIS_TOWN_COMPLETELY :{BLACK}Remover esta cidade completamente
STR_0292_SAVE_SCENARIO :Salvar cenário
+1 -1
View File
@@ -1828,7 +1828,7 @@ STR_4011_LOAD_HEIGHTMAP :{WHITE}Заре
STR_4800_IN_THE_WAY :{WHITE}{STRING} пречи
STR_4801 :{WHITE}{INDUSTRY}
STR_4802_COAL_MINE :Мина за въглища
STR_4803_POWER_STATION :
STR_4803_POWER_STATION :Електроцентрала
STR_4804_SAWMILL :Дъскорезница
STR_4805_FOREST :Гора
STR_4806_OIL_REFINERY :Нефтена рафинерия
+3 -3
View File
@@ -991,7 +991,7 @@ STR_EURO_INTRODUCE :{BLACK}{BIGFONT
STR_TRAIN_HAS_TOO_FEW_ORDERS :{WHITE}Trajno {COMMA} havas maltro da ordenoj enplane
STR_TRAIN_HAS_VOID_ORDER :{WHITE}Trajno {COMMA} havas malplenan ordenon
STR_TRAIN_HAS_DUPLICATE_ENTRY :{WHITE}Trajno {COMMA} havas duoblajn ordenojn
STR_TRAIN_HAS_INVALID_ENTRY :{WHITE}Trajnno {COMMA} havas nevalidan stacion en la ordenoj
STR_TRAIN_HAS_INVALID_ENTRY :{WHITE}Trajno {COMMA} havas nevalidan stacion en la ordenoj
STR_ROADVEHICLE_HAS_TOO_FEW_ORDERS :{WHITE}Vojveturilo {COMMA} havas maltro da ordenoj enplane
STR_ROADVEHICLE_HAS_VOID_ORDER :{WHITE}Vojveturilo {COMMA} havas malplenan ordenon
STR_ROADVEHICLE_HAS_DUPLICATE_ENTRY :{WHITE}Vojveturilo {COMMA} havas duoblajn ordenojn
@@ -1385,7 +1385,7 @@ STR_NETWORK_REFRESH_TIP :{BLACK}Refreŝi
STR_NETWORK_COMPANY_INFO :{SILVER}KOMPANIAJ INFORMOJ
STR_NETWORK_COMPANY_NAME :{SILVER}Kompaninomo: {WHITE}{STRING}
STR_NETWORK_INAUGURATION_YEAR :{SILVER}Enaŭguro: {WHITE}{NUM}
STR_NETWORK_INAUGURATION_YEAR :{SILVER}Inaŭguro: {WHITE}{NUM}
STR_NETWORK_VALUE :{SILVER}Kompanivaloro: {WHITE}{CURRENCY64}
STR_NETWORK_CURRENT_BALANCE :{SILVER}Nuna monstato: {WHITE}{CURRENCY64}
STR_NETWORK_LAST_YEARS_INCOME :{SILVER}Lastjara enspezo: {WHITE}{CURRENCY64}
@@ -2118,7 +2118,7 @@ STR_7034_CLICK_ON_SELECTED_NEW_COLOR :{BLACK}Alklaku
STR_7035_INCREASE_SIZE_OF_LOAN :{BLACK}Grandigu prunton
STR_7036_REPAY_PART_OF_LOAN :{BLACK}Repagu pruntparton
STR_7037_PRESIDENT :{WHITE}{PLAYERNAME}{}{GOLD}(Manaĝanto)
STR_7038_INAUGURATED :{GOLD}Enaŭguris: {WHITE}{NUM}
STR_7038_INAUGURATED :{GOLD}Inaŭgurita: {WHITE}{NUM}
STR_7039_VEHICLES :{GOLD}Veturiloj:
STR_TRAINS :{WHITE}{COMMA} trajno{P "" j}
STR_ROAD_VEHICLES :{WHITE}{COMMA} vojveturilo{P "" j}
+6 -4
View File
@@ -690,6 +690,7 @@ STR_0206_ARRIVAL_OF_FIRST_VEHICLE :{YELLOW}Mängij
STR_0207_ARRIVAL_OF_FIRST_VEHICLE :{YELLOW}Konkurendi jaama saabus esimene veovahend
STR_0208_ACCIDENTS_DISASTERS :{YELLOW}Õnnetused / katastroofid
STR_0209_COMPANY_INFORMATION :{YELLOW}Ettevõtte teave
STR_NEWS_OPEN_CLOSE :{YELLOW}Ava / sulge tööstuseid
STR_020A_ECONOMY_CHANGES :{YELLOW}Muutused majanduses
STR_020B_ADVICE_INFORMATION_ON_PLAYER :{YELLOW}Soovitused ja teated mängija veovahendite kohta
STR_020C_NEW_VEHICLES :{YELLOW}Uued veovahendid
@@ -733,7 +734,7 @@ STR_022D_ARE_YOU_SURE_YOU_WANT_TO :{WHITE}Oled sa
STR_022E_LANDSCAPE_GENERATION :{BLACK}Maastiku loomine
STR_022F_TOWN_GENERATION :{BLACK}Linnade loomine
STR_0230_INDUSTRY_GENERATION :{BLACK}Tööstuste loomine
STR_0231_ROAD_CONSTRUCTION :{BLACK}Teede ehitamine
STR_0231_ROAD_CONSTRUCTION :{BLACK}Teeehitus
STR_0233_TOWN_GENERATION :{WHITE}Linnade loomine
STR_0234_NEW_TOWN :{BLACK}Uus linn
STR_0235_CONSTRUCT_NEW_TOWN :{BLACK}Ehita uus linn
@@ -794,12 +795,12 @@ STR_0269_CONSTRUCT_STEEL_MILL :{BLACK}Ehita te
STR_026A_CONSTRUCT_FARM :{BLACK}Raja farm
STR_026B_CONSTRUCT_IRON_ORE_MINE :{BLACK}Ehita rauamaagikaevandus
STR_026C_CONSTRUCT_OIL_WELLS :{BLACK}Ehita naftapuuraugud
STR_026D_CONSTRUCT_BANK_CAN_ONLY :{BLACK}Ehita pank (seda saab ehitada vaid linnadesse, mille rahvastikuarv ületab 1200)
STR_026D_CONSTRUCT_BANK_CAN_ONLY :{BLACK}Ehita pank (saab ehitada vaid linnadesse, mille rahvastikuarv ületab 1200)
STR_026E_CONSTRUCT_PAPER_MILL :{BLACK}Ehita paberitehas
STR_026F_CONSTRUCT_FOOD_PROCESSING :{BLACK}Ehita toidutööstus
STR_0270_CONSTRUCT_PRINTING_WORKS :{BLACK}Ehita trükikoda
STR_0271_CONSTRUCT_GOLD_MINE :{BLACK}Ehita kullakaevandus
STR_0272_CONSTRUCT_BANK_CAN_ONLY :{BLACK}Ehita pank (seda saab vaid linnadesse ehitada)
STR_0272_CONSTRUCT_BANK_CAN_ONLY :{BLACK}Ehita pank (saab vaid linnadesse ehitada)
STR_0273_CONSTRUCT_LUMBER_MILL_TO :{BLACK}Ehita saeveski (vihmametsade puhustamiseks ja puidu tootmiseks)
STR_0274_PLANT_FRUIT_PLANTATION :{BLACK}Istuta puuviljaistandus
STR_0275_PLANT_RUBBER_PLANTATION :{BLACK}Istuta kummipuuistandus
@@ -829,6 +830,7 @@ STR_028C_PLACE_ROCKY_AREAS_ON_LANDSCAPE :{BLACK}Loo maas
STR_028D_PLACE_LIGHTHOUSE :{BLACK}Ehita tuletorn
STR_028E_PLACE_TRANSMITTER :{BLACK}Paigalda saatjamast
STR_028F_DEFINE_DESERT_AREA :{BLACK}Loo kõrbealad.{}Eemaldamiseks klõpsa hoides all CTRL nuppu
STR_CREATE_LAKE :{BLACK}Määratle veealad.{}Ehita kanal. CTRL-klahvi all hoides ujutab ümbruskonna üle.
STR_0290_DELETE :{BLACK}Kustuta
STR_0291_DELETE_THIS_TOWN_COMPLETELY :{BLACK}Hävita see linn täielikult
STR_0292_SAVE_SCENARIO :Salvesta kaart
@@ -2618,7 +2620,7 @@ STR_INVALID_ORDER :{RED} (Ebasobiv
STR_UNKNOWN_DESTINATION :tundmatu sihtpunkt
STR_8812_EMPTY :{LTBLUE}Tühi
STR_8813_FROM :{LTBLUE}{CARGO} {STATION}'st
STR_8813_FROM :{LTBLUE}{CARGO} jaamast {STATION}
STR_FROM_MULT :{LTBLUE}{CARGO} jaamast {STATION} (x{NUM})
STR_8814_TRAIN_IS_WAITING_IN_DEPOT :{WHITE}Rong {COMMA} ootab depoos
STR_8815_NEW_VEHICLES :{BLACK}Uus rong
+1
View File
@@ -2192,6 +2192,7 @@ STR_707E_OWNED_BY_OWNED_BY :{WHITE}({COMMA}
STR_707F_HAS_BEEN_TAKEN_OVER_BY :{BLACK}{BIGFONT}Yhtiön {COMPANY} on ottanut haltuun {COMPANY}!
STR_7080_PROTECTED :{WHITE}Tällä yhtiöllä ei ole vielä osakkeita...
STR_LIVERY_DEFAULT :Normaalit tunnusvärit
STR_LIVERY_STEAM :Höyryveturi
STR_LIVERY_DIESEL :Dieselveturi
STR_LIVERY_ELECTRIC :Sähköveturi
+8
View File
@@ -2922,6 +2922,7 @@ STR_WORLD_GENERATION_CAPTION :{WHITE}Xeració
STR_RANDOM_SEED :{BLACK}Semilla Aleatoria:
STR_RANDOM_SEED_HELP :{BLACK}Pincha para introducir unha semilla
STR_LAND_GENERATOR :{BLACK}Xerador de terreo:
STR_TREE_PLACER :{BLACK}Algoritmo para árbores:
STR_TERRAIN_TYPE :{BLACK}Tipo de terreo:
STR_QUANTITY_OF_SEA_LAKES :{BLACK}Nivel do mar:
STR_SMOOTHNESS :{BLACK}Suavidade:
@@ -2942,7 +2943,9 @@ STR_GENERATION_PROGRESS :{BLACK}{NUM} /
STR_WORLD_GENERATION :{BLACK}Xeración do mundo
STR_SETTINGUP_GAME :{BLACK}Configurando partida
STR_PREPARING_GAME :{BLACK}Preparando partida
STR_DIFFICULTY_TO_CUSTOM :{WHITE}Esta acción cambiou o nivel de dificultade a Personalizado
STR_SE_FLAT_WORLD :{WHITE}Terreo Chan
STR_SE_RANDOM_LAND :{WHITE}Terreo aleatorio
STR_SE_NEW_WORLD :{BLACK}Crear novo escenario
STR_SE_CAPTION :{WHITE}Tipo de escenario
STR_FLAT_WORLD_HEIGHT_NUM :{NUM}
@@ -2971,4 +2974,9 @@ STR_MEASURE_AREA :{BLACK}Área: {
STR_MEASURE_LENGTH_HEIGHTDIFF :{BLACK}Lonxitude: {NUM}{}Diferencia de altura: {NUM} m
STR_MEASURE_AREA_HEIGHTDIFF :{BLACK}Área: {NUM} x {NUM}{}Diferencia de altura: {NUM} m
############ Date formatting
STR_DATE_TINY :{STRING}-{STRING}-{NUM}
STR_DATE_SHORT :{STRING} {NUM}
STR_DATE_LONG :{STRING} {STRING} {NUM}
########
+1541 -1540
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -744,8 +744,8 @@ STR_0298_LOAD_SCENARIO :{WHITE}시나
STR_0299_SAVE_SCENARIO :{WHITE}시나리오 저장하기
STR_029A_PLAY_SCENARIO :{BLACK}시나리오 플레이
STR_PLAY_HEIGHTMAP :{BLACK}DEM지형 플레이
STR_PLAY_HEIGHTMAP_HINT :{BLACK}DEM지형을 풍경으로 하여 게임을 시작합
STR_029B_ARE_YOU_SURE_YOU_WANT_TO :{YELLOW}이 시나리오를 종료하시겠습니까?
STR_PLAY_HEIGHTMAP_HINT :{BLACK}DEM지형을 풍경으로 하여 게임을 시작합니다.
STR_029C_QUIT_EDITOR :{WHITE}에디터 종료
STR_029D_CAN_ONLY_BE_BUILT_IN_TOWNS :{WHITE}...1200명 이상의 도시에만 건설할 수 있습니다!
STR_029E_MOVE_THE_STARTING_DATE :{BLACK}시작년도를 1년 앞당깁니다.
+4
View File
@@ -590,6 +590,7 @@ STR_0206_ARRIVAL_OF_FIRST_VEHICLE :{YELLOW}Ankomms
STR_0207_ARRIVAL_OF_FIRST_VEHICLE :{YELLOW}Ankommst av første kjøretøy på motstanders stasjon
STR_0208_ACCIDENTS_DISASTERS :{YELLOW}Ulykker/katastrofer
STR_0209_COMPANY_INFORMATION :{YELLOW}Firmainformasjon
STR_NEWS_OPEN_CLOSE :{YELLOW}Åpninger / Stengninger av industrier
STR_020A_ECONOMY_CHANGES :{YELLOW}Økonomiske endringer
STR_020B_ADVICE_INFORMATION_ON_PLAYER :{YELLOW}Råd/informasjon om spillers kjøretøy
STR_020C_NEW_VEHICLES :{YELLOW}Nye kjøretøy
@@ -2629,6 +2630,9 @@ STR_INCOMPATIBLE_RAIL_TYPES :Inkompatible je
STR_TRAIN_NO_POWER :{RED}Ingen strøm
STR_TRAIN_START_NO_CATENARY :Dette sporet mangler et kjede, så toget kan ikke starte
STR_NEW_VEHICLE_NOW_AVAILABLE :{BLACK}{BIGFONT}Ny {STRING} nå tilgjengelig!
STR_NEW_VEHICLE_TYPE :{BLACK}{BIGFONT}{STRING}
STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}Ny {STRING} Nå tilgjengelig! - {STRING}
##id 0x9000
STR_9000_ROAD_VEHICLE_IN_THE_WAY :{WHITE}Kjøretøy i veien
+1
View File
@@ -731,6 +731,7 @@ STR_028C_PLACE_ROCKY_AREAS_ON_LANDSCAPE :{BLACK}Plasser
STR_028D_PLACE_LIGHTHOUSE :{BLACK}Plasser fyrtårn
STR_028E_PLACE_TRANSMITTER :{BLACK}Plasser radiosendar
STR_028F_DEFINE_DESERT_AREA :{BLACK}Definer ørkenområde.{}Trykk og held inne CTRL for å fjerne det
STR_CREATE_LAKE :{BLACK}Definer vassområde.{}Lag ein kanal. Viss CTRL er halde nede ved havnivå, vil vatnet i staden fløyme over omgivnadene
STR_0290_DELETE :{BLACK}Slett
STR_0291_DELETE_THIS_TOWN_COMPLETELY :{BLACK}Slett byen heilt
STR_0292_SAVE_SCENARIO :Lagre scenario
+2 -2
View File
@@ -3182,7 +3182,7 @@ STR_PURCHASE_INFO_AIRCRAFT_CAPACITY :{BLACK}Pojemno
STR_PURCHASE_INFO_PWAGPOWER_PWAGWEIGHT :{BLACK}Moc: {GOLD}+{POWER}{BLACK} Waga: {GOLD}+{WEIGHT_S}
STR_PURCHASE_INFO_REFITTABLE_TO :{BLACK}Można przebudować na: {GOLD}
STR_PURCHASE_INFO_ALL_TYPES :Wszystkie typy towarów
STR_PURCHASE_INFO_ALL_BUT :Wszystko oprócz {GOLD}}
STR_PURCHASE_INFO_ALL_BUT :Wszystko oprócz {GOLD}
########### String for New Landscape Generator
@@ -3225,7 +3225,7 @@ STR_CLEARING_TILES :{BLACK}Generowa
STR_SETTINGUP_GAME :{BLACK}Ustawianie gry
STR_PREPARING_TILELOOP :{BLACK}Uaktywnianie pól
STR_PREPARING_GAME :{BLACK}Przygotowywanie gry
STR_DIFFICULTY_TO_CUSTOM :{WHITE}Ta akcja zmieniła poziom trudności na "własny"
STR_DIFFICULTY_TO_CUSTOM :{WHITE}Zmieniono poziom trudności na "własny"
STR_SE_FLAT_WORLD :{WHITE}Płaski świat
STR_SE_FLAT_WORLD_TIP :{BLACK}Stwórz płaski świat
STR_SE_RANDOM_LAND :{WHITE}Losowy teren
+10 -7
View File
@@ -590,6 +590,7 @@ STR_0206_ARRIVAL_OF_FIRST_VEHICLE :{YELLOW}Sosirea
STR_0207_ARRIVAL_OF_FIRST_VEHICLE :{YELLOW}Sosirea primului vehicul la una din statiile competitorilor
STR_0208_ACCIDENTS_DISASTERS :{YELLOW}Accidente/dezastre
STR_0209_COMPANY_INFORMATION :{YELLOW}Informatii despre companie
STR_NEWS_OPEN_CLOSE :{YELLOW}Deschidere / inchidere industrii
STR_020A_ECONOMY_CHANGES :{YELLOW}Schimbãri economice
STR_020B_ADVICE_INFORMATION_ON_PLAYER :{YELLOW}Sfaturi/informatii despre vehiculele tale
STR_020C_NEW_VEHICLES :{YELLOW}Vehicule noi
@@ -729,6 +730,7 @@ STR_028C_PLACE_ROCKY_AREAS_ON_LANDSCAPE :{BLACK}Plaseaza
STR_028D_PLACE_LIGHTHOUSE :{BLACK}Plaseazã far
STR_028E_PLACE_TRANSMITTER :{BLACK}Plaseazã transmitãtor
STR_028F_DEFINE_DESERT_AREA :{BLACK}Defineste suprafata de desert.{}Apasã si mentine apasat CTRL pentru a o sterge
STR_CREATE_LAKE :{BLACK}Defineste zona apei.{}Creeaza un canal, mai putin cand CTRL este apasat la nivelul marii, cand va inunda, in loc, imprejurimile
STR_0290_DELETE :{BLACK}Sterge
STR_0291_DELETE_THIS_TOWN_COMPLETELY :{BLACK}Sterge acest oras
STR_0292_SAVE_SCENARIO :Salveazã scenariul
@@ -783,7 +785,7 @@ STR_WAYPOINTS_DISPLAYED2 :{SETX 12}Afisar
STR_02D0_FULL_ANIMATION :{SETX 12}Animatie completã
STR_02D2_FULL_DETAIL :{SETX 12}Detalii grafice complete
STR_02D4_TRANSPARENT_BUILDINGS :{SETX 12}Peisaj transparent (X)
STR_TRANSPARENT_SIGNS :{SETX 12}Numele statiilor transparente
STR_TRANSPARENT_SIGNS :{SETX 12}Semne statii, transparente
############ range ends here
############ range for menu starts
@@ -932,7 +934,7 @@ STR_OPTIONS_LANG :{BLACK}Limba
STR_OPTIONS_LANG_CBO :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
STR_OPTIONS_LANG_TIP :{BLACK}Alege limba în care doresti afisatã interfata
STR_OPTIONS_FULLSCREEN :{BLACK}Mod
STR_OPTIONS_FULLSCREEN :{BLACK}Ecran intreg
STR_OPTIONS_FULLSCREEN_TIP :{BLACK}Bifeaza aceasta casuta pentru a juca in modul
STR_OPTIONS_RES :{BLACK}Rezolutia ecranului
@@ -1024,7 +1026,7 @@ STR_CONFIG_PATCHES_REALISTICACCEL :{LTBLUE}Permite
STR_CONFIG_PATCHES_FORBID_90_DEG :{LTBLUE}Interzice trenurilor si navelor sa faca intoarceri de 90 de grade: {ORANGE}{STRING} {LTBLUE} (necesita NPF)
STR_CONFIG_PATCHES_JOINSTATIONS :{LTBLUE}Uneste gãrile alãturate: {ORANGE}{STRING}
STR_CONFIG_PATCHES_FULLLOADANY :{LTBLUE}Pãrãseste statia când orice tip de marfã este 'full load': {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Foloseste algoritmul de LOAD imbunatatit: {ORANGE}{STRING}
STR_CONFIG_PATCHES_IMPROVEDLOAD :{LTBLUE}Foloseste algoritm incarcare imbunatatit: {ORANGE}{STRING}
STR_CONFIG_PATCHES_GRADUAL_LOADING :{LTBLUE}Incarca vehiculele gradual: {ORANGE}{STRING}
STR_CONFIG_PATCHES_INFLATION :{LTBLUE}Inflatia: {ORANGE}{STRING}
STR_CONFIG_PATCHES_SELECTGOODS :{LTBLUE}Livreazã marfa doar in statiile unde aceasta este ceruta: {ORANGE}{STRING}
@@ -1084,16 +1086,16 @@ STR_CONFIG_PATCHES_SERVICEATHELIPAD :{LTBLUE}Service
STR_CONFIG_PATCHES_LINK_TERRAFORM_TOOLBAR :{LTBLUE}Conecteaza bara de instrumente pentru peisaj cu cea de constructii feroviare/auto/aeriane: {ORANGE}{STRING}
STR_CONFIG_PATCHES_REVERSE_SCROLLING :{LTBLUE}Cand faci scroll cu mouse-ul muta ecranul in directia opusã: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MEASURE_TOOLTIP :{LTBLUE}Arata o bara de unelte de masuratori la folosirea uneltelor de constructie: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LIVERIES :{LTBLUE}Arata unifromete companiilor: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LIVERIES :{LTBLUE}Arata uniformele companiilor: {ORANGE}{STRING}
STR_CONFIG_PATCHES_LIVERIES_NONE :Niciunul
STR_CONFIG_PATCHES_LIVERIES_OWN :Propria companie
STR_CONFIG_PATCHES_LIVERIES_ALL :Toate companiile
STR_CONFIG_PATCHES_PREFER_TEAMCHAT :{LTBLUE}Echipa preferata pentru chat <ENTER>: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MAX_TRAINS :{LTBLUE}Nr. max. de trenuri pentru un jucãtor: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MAX_TRAINS :{LTBLUE}Nr. max. de trenuri per jucãtor: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MAX_ROADVEH :{LTBLUE}Nr. max. de autovehicule pentru un jucãtor: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MAX_AIRCRAFT :{LTBLUE}Nr. max. de aeronave pentru un jucãtor: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MAX_SHIPS :{LTBLUE}Nr. max. de nave pentru un jucãtor: {ORANGE}{STRING}
STR_CONFIG_PATCHES_MAX_SHIPS :{LTBLUE}Nr. max. de nave per jucãtor: {ORANGE}{STRING}
STR_CONFIG_PATCHES_AI_BUILDS_TRAINS :{LTBLUE}Dezactiveazã trenurile pentru jucãtorii PC: {ORANGE}{STRING}
STR_CONFIG_PATCHES_AI_BUILDS_ROADVEH :{LTBLUE}Dezactiveazã autovehiculele pentru jucãtorii PC: {ORANGE}{STRING}
@@ -1206,6 +1208,7 @@ STR_TREES_RANDOM_TYPE :{BLACK}Arbori d
STR_TREES_RANDOM_TYPE_TIP :{BLACK}Planteazã arbori din diverse specii la întâmplare
STR_CANT_BUILD_CANALS :{WHITE}Nu pot construi un canal aici...
STR_BUILD_CANALS_TIP :{BLACK}Construieste canale.
STR_LANDINFO_CANAL :Canal
STR_CANT_BUILD_LOCKS :{WHITE}Nu pot construi o ecluzã aici...
@@ -2602,7 +2605,7 @@ STR_8855_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Mergi no
STR_8856_INSERT_A_NEW_ORDER_BEFORE :{BLACK}Introdu o comandã înaintea celei selectate sau adaugã o comandã la sfârsitul listei
STR_8857_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Forteazã trenul sã astepte la destinatia selectatã pânã la umplerea la capacitate maximã
STR_8858_MAKE_THE_HIGHLIGHTED_ORDER :{BLACK}Forteazã trenul sã descarce marfa la destinatia selectatã
STR_SERVICE_HINT :{BLACK}Sãri peste aceastã comandã dacã nu este necesar un service
STR_SERVICE_HINT :{BLACK}Sari peste aceastã comandã dacã nu este necesar un service
STR_VEHICLE_INFO_COST_WEIGHT_SPEED_POWER :{BLACK}Cost: {CURRENCY} Greutate: {WEIGHT_S}{}Vitezã: {VELOCITY} Putere: {POWER}{}Cost de rulare: {CURRENCY}/an{}Capacitate: {CARGO}
STR_885C_BROKEN_DOWN :{RED}Defectiune
STR_885D_AGE_RUNNING_COST_YR :{BLACK}Vechimea: {LTBLUE}{STRING}{BLACK} Cost de rulare: {LTBLUE}{CURRENCY}/an
+1 -1
View File
@@ -2907,7 +2907,7 @@ STR_NEWGRF_NO_FILES_INSTALLED :{BLACK}В на
STR_NEWGRF_FILENAME :{BLACK}Имя файла: {SILVER}{STRING}
STR_NEWGRF_GRF_ID :{BLACK}GRF ID: {SILVER}{STRING}
STR_NEWGRF_MD5SUM :{BLACK}Сумма MD5: {SILVER}{STRING}
STR_NEWGRF_CONFIRMATION_TEXT :{YELLOW}Вы хотите сделать изменения в уже запущенной игре - это может привести к ошибке игры, и ее вылету.{}Вы абсолютно уверены в том, что хотите сделать?
STR_NEWGRF_CONFIRMATION_TEXT :{YELLOW}Вы хотите сделать изменения в уже запущенной игре - это может привести к сбоям и игровым несоответствиям.{}Вы абсолютно уверены в том, что хотите сделать?
STR_NEWGRF_ADD :{BLACK}Добавить
+2
View File
@@ -772,6 +772,7 @@ STR_028C_PLACE_ROCKY_AREAS_ON_LANDSCAPE :{BLACK}Ustvari
STR_028D_PLACE_LIGHTHOUSE :{BLACK}Postavi svetilnik
STR_028E_PLACE_TRANSMITTER :{BLACK}Postavi oddajnik
STR_028F_DEFINE_DESERT_AREA :{BLACK}Določi območja puščave.{}Pritisni in drži CTRL za odstranitev
STR_CREATE_LAKE :{BLACK}Določi področje vode.{}Naredi kanal, razen če je pritisnjen CTRL na morski gladini, ko bo poplavilo okolico.
STR_0290_DELETE :{BLACK}Izbriši
STR_0291_DELETE_THIS_TOWN_COMPLETELY :{BLACK}Popolnoma izbriši mesto
STR_0292_SAVE_SCENARIO :Shrani scenarij
@@ -1249,6 +1250,7 @@ STR_TREES_RANDOM_TYPE :{BLACK}Drevesa
STR_TREES_RANDOM_TYPE_TIP :{BLACK}Postavi drevesa naključne vrste
STR_CANT_BUILD_CANALS :{WHITE}Ni mogoče zgraditi kanalov tukaj ...
STR_BUILD_CANALS_TIP :{BLACK}Zgradi kanale.
STR_LANDINFO_CANAL :Kanal
STR_CANT_BUILD_LOCKS :{WHITE}Ni mogoče zgraditi zapornic tukaj ...
+1 -1
View File
@@ -2630,7 +2630,7 @@ STR_TRAIN_STOPPING :{RED}Stannar
STR_TRAIN_STOPPING_VEL :{RED}Stannar, {VELOCITY}
STR_INCOMPATIBLE_RAIL_TYPES :Fel järnvägstyp
STR_TRAIN_NO_POWER :{RED}Ingen Kraft
STR_TRAIN_START_NO_CATENARY :
STR_TRAIN_START_NO_CATENARY :Detta spår saknar kedjekurva, så tåget kan inte starta
STR_NEW_VEHICLE_NOW_AVAILABLE :{BLACK}{BIGFONT}Nya {STRING} är nu tillgänglig!
STR_NEW_VEHICLE_TYPE :{BLACK}{BIGFONT}{STRING}
File diff suppressed because it is too large Load Diff
+7
View File
@@ -590,6 +590,7 @@ STR_0206_ARRIVAL_OF_FIRST_VEHICLE :{YELLOW}Oyuncun
STR_0207_ARRIVAL_OF_FIRST_VEHICLE :{YELLOW}Rakibin durağına ilk aracın gelişi
STR_0208_ACCIDENTS_DISASTERS :{YELLOW}Kazalar / felaketler
STR_0209_COMPANY_INFORMATION :{YELLOW}Şirket bilgisi
STR_NEWS_OPEN_CLOSE :{YELLOW}Fabrika açılış/kapanışları
STR_020A_ECONOMY_CHANGES :{YELLOW}Ekonomi değişimleri
STR_020B_ADVICE_INFORMATION_ON_PLAYER :{YELLOW}Oyuncunun araçlarıyla ilgili ögüt / bilgi
STR_020C_NEW_VEHICLES :{YELLOW}Yeni araçlar
@@ -729,6 +730,7 @@ STR_028C_PLACE_ROCKY_AREAS_ON_LANDSCAPE :{BLACK}Haritaya
STR_028D_PLACE_LIGHTHOUSE :{BLACK}Deniz feneri koy
STR_028E_PLACE_TRANSMITTER :{BLACK}Verici koy
STR_028F_DEFINE_DESERT_AREA :{BLACK}Çöl yap, kaldırmak için CTRL'ye basılı tut
STR_CREATE_LAKE :{BLACK}Su alanını belirle.{}Deniz seviyesinde CTRL tuşu basılı olmadığı sürece kanal yapar, basılıysa etraftakileri su altında bırakır
STR_0290_DELETE :{BLACK}Sil
STR_0291_DELETE_THIS_TOWN_COMPLETELY :{BLACK}Sehri tamamen sil
STR_0292_SAVE_SCENARIO :Kaydet
@@ -1206,6 +1208,7 @@ STR_TREES_RANDOM_TYPE :{BLACK}Rastgele
STR_TREES_RANDOM_TYPE_TIP :{BLACK}Rastgele türde ağaçlar koy
STR_CANT_BUILD_CANALS :{WHITE}Buraya kanal yapılamaz...
STR_BUILD_CANALS_TIP :{BLACK}Kanal yap.
STR_LANDINFO_CANAL :Kanal
STR_CANT_BUILD_LOCKS :{WHITE}Buraya kilit yapılamaz...
@@ -2629,6 +2632,10 @@ STR_INCOMPATIBLE_RAIL_TYPES :Uyumsuz ray tü
STR_TRAIN_NO_POWER :{RED}Elektrik yok
STR_TRAIN_START_NO_CATENARY :Bu rayda elektrik olmadiği için bu tren çalışamaz
STR_NEW_VEHICLE_NOW_AVAILABLE :{BLACK}{BIGFONT}{STRING} artık kullanılabilir!
STR_NEW_VEHICLE_TYPE :{BLACK}{BIGFONT}{STRING}
STR_NEW_VEHICLE_NOW_AVAILABLE_WITH_TYPE :{BLACK}{STRING} artık kullanılabilir! - {STRING}
##id 0x9000
STR_9000_ROAD_VEHICLE_IN_THE_WAY :{WHITE}Yolda araba var
STR_9001_ROAD_VEHICLES :{WHITE}{COMPANY} - {COMMA} Arabalar
+100
View File
@@ -232,8 +232,10 @@ STR_013F_TOTAL_CAPACITY :{LTBLUE}- {CARG
STR_0140_NEW_GAME :{BLACK}Nei Spul
STR_0141_LOAD_GAME :{BLACK}Laad Spul
STR_64 :64
STR_128 :128
STR_256 :256
STR_512 :512
STR_1024 :1024
STR_2048 :2048
STR_0148_GAME_OPTIONS :{BLACK}Spul Opsjes
@@ -1099,8 +1101,26 @@ STR_482B_TRANSPORTED :{YELLOW}{CARGO}
STR_482F_COST :{BLACK}Kostet: {YELLOW}{CURRENCY}
##id 0x5000
STR_5006_MUST_DEMOLISH_TUNNEL_FIRST :{WHITE}Tunnel mat earst fuorthelle wurde
STR_5007_MUST_DEMOLISH_BRIDGE_FIRST :{WHITE}Brêge mat earst fuorthelle wurde
STR_5008_CANNOT_START_AND_END_ON :{WHITE}Begjin en ein kin net op itselde plak wêze
STR_500A_START_AND_END_MUST_BE_IN :{WHITE}Begjin en ein mat yn ien lijn wêze
STR_500D :{GOLD}{STRING},{} {VELOCITY} {WHITE}{CURRENCY}
STR_5012_WOODEN :Hout
STR_5013_CONCRETE :Beton
STR_5014_TUBULAR_STEEL :Buis, Stiel
STR_5015_CAN_T_BUILD_BRIDGE_HERE :{WHITE}Kin hjir gjin brêge bouwe...
STR_5016_CAN_T_BUILD_TUNNEL_HERE :{WHITE}Kin hjir gjin tunnel bouwe...
STR_5017_RAILROAD_TUNNEL :Spoartunnel
STR_501F_WOODEN_RAIL_BRIDGE :Houten spoarbrêge
STR_5020_CONCRETE_RAIL_BRIDGE :Betonnen spoarbrêge
##id 0x5800
STR_5800_OBJECT_IN_THE_WAY :{WHITE}Objekt yn it paad
STR_5801_TRANSMITTER :Sendmast
STR_5802_LIGHTHOUSE :Fjoertoer
STR_5806_CAN_T_PURCHASE_THIS_LAND :{WHITE}Kin dit stikje lân net keapje...
STR_5807_YOU_ALREADY_OWN_IT :{WHITE}...it is al fan dy!
############ WARNING, using range 0x6000 for strings that are stored in the savegame
@@ -1113,14 +1133,93 @@ STR_482F_COST :{BLACK}Kostet:
##id 0x6800
############ range for difficulty levels starts
STR_6801_EASY :{BLACK}Maklik
STR_6802_MEDIUM :{BLACK}Gewoan
############ range for difficulty levels ends
############ range for difficulty settings starts
STR_6805_MAXIMUM_NO_COMPETITORS :{LTBLUE}Maksimum oantal tsjinstanders: {ORANGE}{COMMA}
STR_6806_COMPETITOR_START_TIME :{LTBLUE}Tsjinstander begjint: {ORANGE}{STRING}
STR_6807_NO_OF_TOWNS :{LTBLUE}Oantal stêden: {ORANGE}{STRING}
STR_6808_NO_OF_INDUSTRIES :{LTBLUE}Oantal yndustrieen: {ORANGE}{STRING}
STR_680C_CONSTRUCTION_SPEED_OF_COMPETITOR :{LTBLUE}Konstruksjesnelhyd fan tsjinstanders: {ORANGE}{STRING}
STR_6810_COST_OF_CONSTRUCTION :{LTBLUE}Konstruksjekosten: {ORANGE}{STRING}
STR_6811_TERRAIN_TYPE :{LTBLUE}Terreinsoart: {ORANGE}{STRING}
STR_6813_ECONOMY :{LTBLUE}Ekonomy: {ORANGE}{STRING}
############ range for difficulty settings ends
STR_26816_NONE :Gjin
STR_6816_LOW :Leech
STR_6817_NORMAL :Gewoan
STR_6818_HIGH :Heech
STR_6819 :{BLACK}{SMALLLEFTARROW}
STR_681A :{BLACK}{SMALLRIGHTARROW}
STR_681B_VERY_SLOW :Hiel dreech
STR_681C_SLOW :Dreech
STR_681D_MEDIUM :Gewoan
STR_681E_FAST :Hurd
STR_681F_VERY_FAST :Hiel hurd
STR_6820_LOW :Leech
STR_6821_MEDIUM :Gewoan
STR_6822_HIGH :Heech
STR_6823_NONE :Gjin
STR_6824_REDUCED :Minder
STR_6825_NORMAL :Gewoan
STR_6826_X1_5 :x1.5
STR_6827_X2 :x2
STR_6828_X3 :x3
STR_6829_X4 :x4
STR_682A_VERY_FLAT :Hiel Flak
STR_682B_FLAT :Flak
STR_682D_MOUNTAINOUS :Bergachtich
STR_682F_FLUCTUATING :Wikseljend
STR_6830_IMMEDIATE :Fuortendaliks
STR_6831_3_MONTHS_AFTER_PLAYER :3 moannen nei spyler
STR_6832_6_MONTHS_AFTER_PLAYER :6 moannen nei spyler
STR_6833_9_MONTHS_AFTER_PLAYER :9 moannen nei spyler
STR_6836_OFF :Ut
STR_6837_ON :Oan
##id 0x7000
STR_7000 :
STR_7001 :{WHITE}{COMPANY} {BLACK}{PLAYERNAME}
STR_7002_PLAYER :(Spyler {COMMA})
STR_7004_NEW_FACE :{BLACK}Nei Gesicht
STR_7005_COLOR_SCHEME :{BLACK}Kleurenskema
STR_7006_COLOR_SCHEME :{GOLD}Kleurenskema:
STR_7007_NEW_COLOR_SCHEME :{WHITE}Nei Kleurenskema
STR_700E_FINANCES :{WHITE}{COMPANY} Finansieen {BLACK}{PLAYERNAME}
STR_700F_EXPENDITURE_INCOME :{WHITE}Utjeften/Ynkomsten
STR_7010 :{WHITE}{NUM}
STR_7011_CONSTRUCTION :{GOLD}Konstruksje
STR_7018_TRAIN_INCOME :{GOLD}Ynkomsten Treinen
STR_701A_AIRCRAFT_INCOME :{GOLD}Ynkomsten Fleantúgen
STR_701B_SHIP_INCOME :{GOLD}Ynkomsten Skepen
STR_701C_LOAN_INTEREST :{GOLD}Rinte Liening
STR_701D_OTHER :{GOLD}Oaren
STR_701E :{BLACK}-{CURRENCY64}
STR_701F :{BLACK}+{CURRENCY64}
STR_7020_TOTAL :{WHITE}Totaal:
STR_7021 :{COMPANY}{PLAYERNAME}
STR_7022_INCOME_GRAPH :{WHITE}Ynkomsten Grafyk
STR_7024 :{COMMA}
STR_7027_LOAN :{WHITE}Liening
STR_7028 :{BLACK}{CURRENCY64}
STR_7029_BORROW :{BLACK}Lien {SKIP}{SKIP}{SKIP}{SKIP}{CURRENCY}
STR_702A_REPAY :{BLACK}Betelje {SKIP}{SKIP}{SKIP}{SKIP}{CURRENCY} werom
STR_702C_CAN_T_BORROW_ANY_MORE_MONEY :{WHITE}Kin net mear jild liene
STR_702E_REQUIRED :{WHITE}...{CURRENCY} nedich
STR_702F_CAN_T_REPAY_LOAN :{WHITE}Kin liening net werombetelje
STR_7030_SELECT_NEW_FACE_FOR_PRESIDENT :{BLACK}Selektear nei gesicht foar de bedriuwslieder
STR_7035_INCREASE_SIZE_OF_LOAN :{BLACK}Lien mear jild
STR_7036_REPAY_PART_OF_LOAN :{BLACK}Betelje in diel fan de liening werom
STR_7037_PRESIDENT :{WHITE}{PLAYERNAME}{}{GOLD}(Bedriuwslieder)
STR_7038_INAUGURATED :{GOLD}Oprjochte: {WHITE}{NUM}
STR_7042_NONE :{WHITE}Gjin
STR_7044_MALE :{BLACK}Man
STR_7045_FEMALE :{BLACK}Frou
STR_7046_NEW_FACE :{BLACK}Nei Gesicht
STR_704C_KEY :{BLACK}Kaai
@@ -1193,5 +1292,6 @@ SET_PERFORMANCE_DETAIL_INT :{BLACK}{NUM}
############ Tooltip measurment
############ Date formatting
########
+2 -2
View File
@@ -281,7 +281,7 @@ static byte MakeFinnishTownName(char *buf, uint32 seed, const char *last)
if (SeedChance(0, 15, seed) >= 10) {
strecat(buf, name_finnish_real[SeedChance(2, lengthof(name_finnish_real), seed)], last);
} else if (SeedChance(0, 15, seed) >= 5) {
// A two-part name by combining one of name_finnish_1 + "la"/"lä"
// A two-part name by combining one of name_finnish_1 + "la"/"lä"
// The reason for not having the contents of name_finnish_{1,2} in the same table is
// that the ones in name_finnish_2 are not good for this purpose.
uint sel = SeedChance( 0, lengthof(name_finnish_1), seed);
@@ -295,7 +295,7 @@ static byte MakeFinnishTownName(char *buf, uint32 seed, const char *last)
{
strecat(buf, "la", last);
} else {
strecat(buf, "", last);
strecat(buf, "", last);
}
} else {
// A two-part name by combining one of name_finnish_{1,2} + name_finnish_3.
+1 -1
View File
@@ -7,7 +7,7 @@
extern const char _openttd_revision[];
#elif defined(WITH_REV_HACK)
#define WITH_REV
const char _openttd_revision[] = "0.5.1-RC2";
const char _openttd_revision[] = "0.5.1-RC3";
#else
const char _openttd_revision[] = NOREV_STRING;
#endif
+1 -1
View File
@@ -3505,7 +3505,7 @@ static void ResetNewGRFData(void)
ResetPriceBaseMultipliers();
/* Reset the curencies array */
ResetCurrencies();
ResetCurrencies(false);
// Reset station classes
ResetStationClasses();
+3 -1
View File
@@ -463,6 +463,8 @@ static void RemoveSharedOrderVehicleList(Vehicle *v)
{
WindowClass window_class;
assert(v->orders != NULL);
switch (v->type) {
default: NOT_REACHED();
case VEH_Train: window_class = WC_TRAINS_LIST; break;
@@ -1161,7 +1163,7 @@ void DeleteVehicleOrders(Vehicle *v)
/* If we are the only one left in the Shared Order Vehicle List,
* remove it, as we are no longer a Shared Order Vehicle */
if (u->prev_shared == NULL && u->next_shared == NULL) RemoveSharedOrderVehicleList(u);
if (u->prev_shared == NULL && u->next_shared == NULL && u->orders != NULL) RemoveSharedOrderVehicleList(u);
/* We only need to update this-one, because if there is a third
* vehicle which shares the same order-list, nothing will change. If
+6
View File
@@ -1,3 +1,9 @@
openttd (0.5.1~rc3-1) unstable; urgency=low
* New upstream release.
-- Matthijs Kooijman <m.kooijman@student.utwente.nl> Tue, 17 Aprr 2007 22:00:46 +0100
openttd (0.5.1~rc2-1) unstable; urgency=low
* New upstream release.
+1 -1
View File
@@ -1,6 +1,6 @@
!define APPNAME "OpenTTD" ; Define application name
!define APPVERSION "0.5.1" ; Define application version
!define INSTALLERVERSION 30 ; NEED TO UPDATE THIS FOR EVERY RELEASE!!!
!define INSTALLERVERSION 31 ; NEED TO UPDATE THIS FOR EVERY RELEASE!!!
!define APPURLLINK "http://www.openttd.org"
!define APPNAMEANDVERSION "${APPNAME} ${APPVERSION}"
+1 -1
View File
@@ -84,7 +84,7 @@ BEGIN
VALUE "Comments", "This program is licensed under the GNU General Public License.\0"
VALUE "CompanyName", "OpenTTD Development Team\0"
VALUE "FileDescription", "OpenTTD\0"
VALUE "FileVersion", "0.5.1-RC2\0"
VALUE "FileVersion", "0.5.1-RC3\0"
VALUE "InternalName", "openttd\0"
VALUE "LegalCopyright", "Copyright © OpenTTD Developers 2002-2007. All Rights Reserved.\0"
VALUE "LegalTrademarks", "\0"
+2 -2
View File
@@ -871,8 +871,8 @@ int32 CmdPlayerCtrl(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
}
/* This is the joining client who wants a new company */
if (_local_player != _network_playas) {
assert(_local_player == PLAYER_SPECTATOR && _network_playas == p->index);
if (_local_player != _network_playas && _network_playas == p->index) {
assert(_local_player == PLAYER_SPECTATOR);
SetLocalPlayer(p->index);
MarkWholeScreenDirty();
}
+20 -11
View File
@@ -187,7 +187,7 @@ uint GetRailFoundation(Slope tileh, TrackBits bits)
static uint32 CheckRailSlope(Slope tileh, TrackBits rail_bits, TrackBits existing, TileIndex tile)
{
if (IsSteepSlope(tileh)) {
if (existing == 0) {
if (_patches.build_on_slopes && existing == 0) {
TrackBits valid = TRACK_BIT_CROSS | (HASBIT(1 << SLOPE_STEEP_W | 1 << SLOPE_STEEP_E, tileh) ? TRACK_BIT_VERT : TRACK_BIT_HORZ);
if (valid & rail_bits) return _price.terraform;
}
@@ -272,7 +272,7 @@ int32 CmdBuildSingleRail(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
case MP_RAILWAY:
if (!CheckTrackCombination(tile, trackbit, flags) ||
!EnsureNoVehicle(tile)) {
!EnsureNoVehicleOnGround(tile)) {
return CMD_ERROR;
}
if (!IsTileOwner(tile, _current_player) ||
@@ -307,7 +307,7 @@ int32 CmdBuildSingleRail(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
}
#undef M
if (!EnsureNoVehicle(tile)) return CMD_ERROR;
if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
if (GetRoadTileType(tile) == ROAD_TILE_NORMAL) {
if (HasRoadWorks(tile)) return_cmd_error(STR_ROAD_WORKS_IN_PROGRESS);
@@ -384,7 +384,7 @@ int32 CmdRemoveSingleRail(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
if (!IsLevelCrossing(tile) ||
GetCrossingRailBits(tile) != trackbit ||
(_current_player != OWNER_WATER && !CheckTileOwnership(tile)) ||
!EnsureNoVehicle(tile)) {
!EnsureNoVehicleOnGround(tile)) {
return CMD_ERROR;
}
@@ -399,7 +399,7 @@ int32 CmdRemoveSingleRail(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
if (!IsPlainRailTile(tile) ||
(_current_player != OWNER_WATER && !CheckTileOwnership(tile)) ||
!EnsureNoVehicle(tile)) {
!EnsureNoVehicleOnGround(tile)) {
return CMD_ERROR;
}
@@ -654,7 +654,7 @@ int32 CmdBuildSingleSignal(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
sigvar = HASBIT(p1, 3) ? SIG_SEMAPHORE : SIG_ELECTRIC;
pre_signal = HASBIT(p1, 3);
if (!ValParamTrackOrientation(track) || !IsTileType(tile, MP_RAILWAY) || !EnsureNoVehicle(tile))
if (!ValParamTrackOrientation(track) || !IsTileType(tile, MP_RAILWAY) || !EnsureNoVehicleOnGround(tile))
return CMD_ERROR;
/* Protect against invalid signal copying */
@@ -833,7 +833,7 @@ int32 CmdRemoveSingleSignal(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
if (!ValParamTrackOrientation(track) ||
!IsTileType(tile, MP_RAILWAY) ||
!EnsureNoVehicle(tile) ||
!EnsureNoVehicleOnGround(tile) ||
!HasSignalOnTrack(tile, track)) {
return CMD_ERROR;
}
@@ -874,15 +874,24 @@ int32 CmdRemoveSignalTrack(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
typedef int32 DoConvertRailProc(TileIndex tile, RailType totype, bool exec);
/**
* Switches the rail type.
* Railtypes are stored on a per-tile basis, not on a per-track basis, so
* all the tracks in the given tile will be converted.
* @param tile The tile on which the railtype is to be convert.
* @param totype The railtype we want to convert to
* @param exec Switches between test and execute mode
* @return The cost and state of the operation
* @retval CMD_ERROR An error occured during the operation.
*/
static int32 DoConvertRail(TileIndex tile, RailType totype, bool exec)
{
if (!CheckTileOwnership(tile)) return CMD_ERROR;
if (!EnsureNoVehicle(tile) && (!IsCompatibleRail(GetRailType(tile), totype) || IsPlainRailTile(tile))) return CMD_ERROR;
// tile is already of requested type?
if (GetRailType(tile) == totype) return CMD_ERROR;
if (!EnsureNoVehicleOnGround(tile) && (!IsCompatibleRail(GetRailType(tile), totype) || IsPlainRailTile(tile))) return CMD_ERROR;
// 'hidden' elrails can't be downgraded to normal rail when elrails are disabled
if (_patches.disable_elrails && totype == RAILTYPE_RAIL && GetRailType(tile) == RAILTYPE_ELECTRIC) return CMD_ERROR;
@@ -984,7 +993,7 @@ static int32 RemoveTrainDepot(TileIndex tile, uint32 flags)
if (!CheckTileOwnership(tile) && _current_player != OWNER_WATER)
return CMD_ERROR;
if (!EnsureNoVehicle(tile))
if (!EnsureNoVehicleOnGround(tile))
return CMD_ERROR;
if (flags & DC_EXEC) {
+2 -2
View File
@@ -1,6 +1,6 @@
OpenTTD README
Last updated: 2007-03-23
Release version: 0.5.1-RC2
Last updated: 2007-04-17
Release version: 0.5.1-RC3
------------------------------------------------------------------------
+14 -6
View File
@@ -308,7 +308,7 @@ int32 CmdBuildRoad(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
if ((existing & pieces) == pieces) {
return_cmd_error(STR_1007_ALREADY_BUILT);
}
if (!EnsureNoVehicle(tile)) return CMD_ERROR;
if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
break;
case ROAD_TILE_CROSSING:
@@ -352,7 +352,7 @@ int32 CmdBuildRoad(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
default: goto do_clear;
}
if (!EnsureNoVehicle(tile)) return CMD_ERROR;
if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
if (flags & DC_EXEC) {
YapfNotifyTrackLayoutChange(tile, FIND_FIRST_BIT(GetTrackBits(tile)));
@@ -422,13 +422,21 @@ do_clear:;
return cost;
}
/**
* Switches the rail type on a level crossing.
* @param tile The tile on which the railtype is to be convert.
* @param totype The railtype we want to convert to
* @param exec Switches between test and execute mode
* @return The cost and state of the operation
* @retval CMD_ERROR An error occured during the operation.
*/
int32 DoConvertStreetRail(TileIndex tile, RailType totype, bool exec)
{
// not a railroad crossing?
if (!IsLevelCrossing(tile)) return CMD_ERROR;
// not owned by me?
if (!CheckTileOwnership(tile) || !EnsureNoVehicle(tile)) return CMD_ERROR;
if (!CheckTileOwnership(tile) || !EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
if (GetRailTypeCrossing(tile) == totype) return CMD_ERROR;
@@ -441,7 +449,7 @@ int32 DoConvertStreetRail(TileIndex tile, RailType totype, bool exec)
YapfNotifyTrackLayoutChange(tile, FIND_FIRST_BIT(GetCrossingRailBits(tile)));
}
return _price.build_rail >> 1;
return _price.build_rail / 2;
}
@@ -573,7 +581,7 @@ int32 CmdBuildRoadDepot(TileIndex tile, uint32 flags, uint32 p1, uint32 p2)
if (p1 > 3) return CMD_ERROR; // check direction
if (!EnsureNoVehicle(tile)) return CMD_ERROR;
if (!EnsureNoVehicleOnGround(tile)) return CMD_ERROR;
tileh = GetTileSlope(tile, NULL);
if (tileh != SLOPE_FLAT && (
@@ -939,7 +947,7 @@ static void TileLoop_Road(TileIndex tile)
if (t->road_build_months != 0 &&
(DistanceManhattan(t->xy, tile) < 8 || grp != 0) &&
GetRoadTileType(tile) == ROAD_TILE_NORMAL && (GetRoadBits(tile) == ROAD_X || GetRoadBits(tile) == ROAD_Y)) {
if (GetTileSlope(tile, NULL) == SLOPE_FLAT && EnsureNoVehicle(tile) && CHANCE16(1, 20)) {
if (GetTileSlope(tile, NULL) == SLOPE_FLAT && EnsureNoVehicleOnGround(tile) && CHANCE16(1, 20)) {
StartRoadWorks(tile);
SndPlayTileFx(SND_21_JACKHAMMER, tile);
+43 -6
View File
@@ -260,7 +260,13 @@ static IniFile *ini_load(const char *filename)
}
} else if (group) {
// find end of keyname
for (t = s; *t != '\0' && *t != '=' && *t != '\t' && *t != ' '; t++);
if (*s == '\"') {
s++;
for (t = s; *t != '\0' && *t != '\"'; t++);
if (*t == '\"') *t = ' ';
} else {
for (t = s; *t != '\0' && *t != '=' && *t != '\t' && *t != ' '; t++);
}
// it's an item in an existing group
item = ini_item_alloc(group, s, t-s);
@@ -348,11 +354,18 @@ static bool ini_save(const char *filename, IniFile *ini)
assert(item->value != NULL);
if (item->comment != NULL) fputs(item->comment, f);
/* protect item->name with quotes if needed */
if (strchr(item->name, ' ') != NULL) {
fprintf(f, "\"%s\"", item->name);
} else {
fprintf(f, "%s", item->name);
}
/* Don't give an equal sign to list items that don't have a parameter */
if (group->type == IGT_LIST && *item->value == '\0') {
fprintf(f, "%s\n", item->name);
fprintf(f, "\n");
} else {
fprintf(f, "%s = %s\n", item->name, item->value);
fprintf(f, " = %s\n", item->value);
}
}
}
@@ -1241,12 +1254,12 @@ static const SettingDesc _gameopt_settings[] = {
* and why not byte for example? */
SDT_GENERAL("diff_custom", SDT_INTLIST, SL_ARR, (SLE_FILE_I16 | SLE_VAR_I32), 0, 0, GameOptions, diff, 17, 0, 0, 0, 0, NULL, STR_NULL, NULL, 0, 3),
SDT_GENERAL("diff_custom", SDT_INTLIST, SL_ARR, (SLE_FILE_I16 | SLE_VAR_I32), 0, 0, GameOptions, diff, 18, 0, 0, 0, 0, NULL, STR_NULL, NULL, 4, SL_MAX_VERSION),
SDT_VAR(GameOptions, diff_level,SLE_UINT8, 0, 0, 9, 0, 9, 0, STR_NULL, NULL),
SDT_VAR(GameOptions, diff_level,SLE_UINT8, 0, 0, 0, 0, 3, 0, STR_NULL, NULL),
SDT_OMANY(GameOptions, currency, SLE_UINT8, N, 0, 0, CUSTOM_CURRENCY_ID, "GBP|USD|EUR|YEN|ATS|BEF|CHF|CZK|DEM|DKK|ESP|FIM|FRF|GRD|HUF|ISK|ITL|NLG|NOK|PLN|ROL|RUR|SIT|SEK|YTL|SKK|BRR|custom", STR_NULL, NULL),
SDT_OMANY(GameOptions, units, SLE_UINT8, N, 0, 1, 2, "imperial|metric|si", STR_NULL, NULL),
SDT_OMANY(GameOptions, town_name, SLE_UINT8, 0, 0, 0, 20, "english|french|german|american|latin|silly|swedish|dutch|finnish|polish|slovakish|norwegian|hungarian|austrian|romanian|czech|swiss|danish|turkish|italian|catalan", STR_NULL, NULL),
SDT_OMANY(GameOptions, landscape, SLE_UINT8, 0, 0, 0, 3, "normal|hilly|desert|candy", STR_NULL, NULL),
SDT_VAR(GameOptions, snow_line, SLE_UINT8, 0, 0, 1, 0, 56, 0, STR_NULL, NULL),
SDT_VAR(GameOptions, snow_line, SLE_UINT8, 0, 0, 7 * TILE_HEIGHT, 2 * TILE_HEIGHT, 13 * TILE_HEIGHT, 0, STR_NULL, NULL),
SDT_CONDOMANY(GameOptions,autosave, SLE_UINT8, 0, 22, N, 0, 0, 0, "", STR_NULL, NULL),
SDT_CONDOMANY(GameOptions,autosave, SLE_UINT8,23, SL_MAX_VERSION, S, 0, 1, 4, "off|monthly|quarterly|half year|yearly", STR_NULL, NULL),
SDT_OMANY(GameOptions, road_side, SLE_UINT8, 0, 0, 1, 1, "left|right", STR_NULL, NULL),
@@ -1478,7 +1491,7 @@ const SettingDesc _patch_settings[] = {
static const SettingDesc _currency_settings[] = {
SDT_VAR(CurrencySpec, rate, SLE_UINT16, S, 0, 1, 0, 100, 0, STR_NULL, NULL),
SDT_CHR(CurrencySpec, separator, S, 0, ".", STR_NULL, NULL),
SDT_VAR(CurrencySpec, to_euro, SLE_INT32, S, 0, 0, 0,1000, 0, STR_NULL, NULL),
SDT_VAR(CurrencySpec, to_euro, SLE_INT32, S, 0, 0, 0,3000, 0, STR_NULL, NULL),
SDT_STR(CurrencySpec, prefix, SLE_STRBQ, S, 0, NULL, STR_NULL, NULL),
SDT_STR(CurrencySpec, suffix, SLE_STRBQ, S, 0, " credits", STR_NULL, NULL),
SDT_END()
@@ -1650,14 +1663,18 @@ static void HandleSettingDescs(IniFile *ini, SettingDescProc *proc, SettingDescP
#endif /* ENABLE_NETWORK */
}
extern void CheckDifficultyLevels(void);
/** Load the values from the configuration files */
void LoadFromConfig(void)
{
IniFile *ini = ini_load(_config_file);
ResetCurrencies(false);
HandleSettingDescs(ini, ini_load_settings, ini_load_setting_list);
_grfconfig_newgame = GRFLoadConfig(ini, "newgrf", false);
_grfconfig_static = GRFLoadConfig(ini, "newgrf-static", true);
_news_display_opt = NewsDisplayLoadConfig(ini, "news_display");
CheckDifficultyLevels();
ini_free(ini);
}
@@ -1796,6 +1813,26 @@ void IConsoleGetPatchSetting(const char *name)
name, value, (sd->desc.flags & SGF_0ISDISABLED) ? "(0) " : "", sd->desc.min, sd->desc.max);
}
void IConsoleListPatches(void)
{
const SettingDesc *sd;
IConsolePrintF(_icolour_warn, "All patches with their current value:");
for (sd = _patch_settings; sd->save.cmd != SL_END; sd++) {
char value[80];
const void *ptr = GetVariableAddress((_game_mode == GM_MENU) ? &_patches_newgame : &_patches, &sd->save);
if (sd->desc.cmd == SDT_BOOLX) {
snprintf(value, lengthof(value), (*(bool*)ptr == 1) ? "on" : "off");
} else {
snprintf(value, lengthof(value), "%d", (uint32)ReadValue(ptr, sd->save.conv));
}
IConsolePrintF(_icolour_def, "%s = %s", sd->desc.name, value);
}
IConsolePrintF(_icolour_warn, "Use 'patch' command to change a value");
}
/** Save and load handler for patches/settings
* @param osd SettingDesc struct containing all information
* @param object can be either NULL in which case we load global variables or
+1
View File
@@ -71,6 +71,7 @@ extern Patches _patches_newgame;
bool IConsoleSetPatchSetting(const char *name, int32 value);
void IConsoleGetPatchSetting(const char *name);
void IConsoleListPatches(void);
const SettingDesc *GetPatchFromName(const char *name, uint *i);
bool SetPatchValue(uint index, const Patches *object, int32 value);
+20
View File
@@ -368,6 +368,24 @@ void SetDifficultyLevel(int mode, GameOptions *gm_opt)
}
}
/**
* Checks the difficulty levels read from the configuration and
* forces them to be correct when invalid.
*/
void CheckDifficultyLevels(void)
{
if (_opt_newgame.diff_level != 3) {
SetDifficultyLevel(_opt_newgame.diff_level, &_opt_newgame);
} else {
uint i;
for (i = 0; i < GAME_DIFFICULTY_NUM; i++) {
int *diff = ((int*)&_opt_newgame.diff) + i;
*diff = clamp(*diff, _game_setting_info[i].min, _game_setting_info[i].max);
*diff -= *diff % _game_setting_info[i].step;
}
}
}
extern void StartupEconomy(void);
enum {
@@ -479,7 +497,9 @@ static void GameDifficultyWndProc(Window *w, WindowEvent *e)
// save value in temporary variable
((int*)&_opt_mod_temp.diff)[btn] = val;
RaiseWindowWidget(w, _opt_mod_temp.diff_level + 3);
SetDifficultyLevel(3, &_opt_mod_temp); // set difficulty level to custom
LowerWindowWidget(w, _opt_mod_temp.diff_level + 3);
SetWindowDirty(w);
} break;
case 3: case 4: case 5: case 6: /* Easy / Medium / Hard / Custom */
+9 -1
View File
@@ -1337,6 +1337,14 @@ static int32 RemoveRailroadStation(Station *st, TileIndex tile, uint32 flags)
return cost;
}
/**
* Switches the rail type at a railway station tile.
* @param tile The tile on which the railtype is to be convert.
* @param totype The railtype we want to convert to
* @param exec Switches between test and execute mode
* @return The cost and state of the operation
* @retval CMD_ERROR An error occured during the operation.
*/
int32 DoConvertStationRail(TileIndex tile, RailType totype, bool exec)
{
const Station* st = GetStationByTile(tile);
@@ -1357,7 +1365,7 @@ int32 DoConvertStationRail(TileIndex tile, RailType totype, bool exec)
YapfNotifyTrackLayoutChange(tile, GetRailStationTrack(tile));
}
return _price.build_rail >> 1;
return _price.build_rail / 2;
}
/** Heavy wizardry used to add a roadstop to a station.
+3
View File
@@ -152,6 +152,7 @@ void UndrawTextMessage(void)
if (x + width >= _screen.width) {
width = _screen.width - x;
}
if (width <= 0 || height <= 0) return;
_textmessage_visible = false;
// Put our 'shot' back to the screen
@@ -219,6 +220,8 @@ void DrawTextMessage(void)
if (x + width >= _screen.width) {
width = _screen.width - x;
}
if (width <= 0 || height <= 0) return;
// Make a copy of the screen as it is before painting (for undraw)
memcpy_pitch(
_textmessage_backup,
+17 -7
View File
@@ -675,7 +675,7 @@ static int32 DoClearBridge(TileIndex tile, uint32 flags)
endtile = GetOtherBridgeEnd(tile);
if (!EnsureNoVehicle(tile) || !EnsureNoVehicle(endtile)) return CMD_ERROR;
if (!EnsureNoVehicleOnGround(tile) || !EnsureNoVehicleOnGround(endtile)) return CMD_ERROR;
direction = GetBridgeRampDirection(tile);
delta = TileOffsByDiagDir(direction);
@@ -764,6 +764,16 @@ static int32 ClearTile_TunnelBridge(TileIndex tile, byte flags)
return CMD_ERROR;
}
/**
* Switches the rail type for a tunnel or a bridgehead. As the railtype
* on the bridge are determined by the one of the bridgehead, this
* functions converts the railtype on the entire bridge.
* @param tile The tile on which the railtype is to be convert.
* @param totype The railtype we want to convert to
* @param exec Switches between test and execute mode
* @return The cost and state of the operation
* @retval CMD_ERROR An error occured during the operation.
*/
int32 DoConvertTunnelBridgeRail(TileIndex tile, RailType totype, bool exec)
{
TileIndex endtile;
@@ -792,7 +802,7 @@ int32 DoConvertTunnelBridgeRail(TileIndex tile, RailType totype, bool exec)
YapfNotifyTrackLayoutChange(tile, track);
YapfNotifyTrackLayoutChange(endtile, track);
}
return (length + 1) * (_price.build_rail >> 1);
return (length + 1) * (_price.build_rail / 2);
} else if (IsBridge(tile) &&
IsBridgeMiddle(tile) &&
IsTransportUnderBridge(tile) &&
@@ -809,7 +819,7 @@ int32 DoConvertTunnelBridgeRail(TileIndex tile, RailType totype, bool exec)
YapfNotifyTrackLayoutChange(tile, GetRailUnderBridge(tile));
}
return _price.build_rail >> 1;
return _price.build_rail / 2;
} else if (IsBridge(tile) && IsBridgeRamp(tile) && GetBridgeTransportType(tile) == TRANSPORT_RAIL) {
TileIndexDiff delta;
int32 cost;
@@ -818,8 +828,8 @@ int32 DoConvertTunnelBridgeRail(TileIndex tile, RailType totype, bool exec)
endtile = GetOtherBridgeEnd(tile);
if (!EnsureNoVehicle(tile) ||
!EnsureNoVehicle(endtile) ||
if (!EnsureNoVehicleOnGround(tile) ||
!EnsureNoVehicleOnGround(endtile) ||
FindVehicleBetween(tile, endtile, GetBridgeHeightRamp(tile), false) != NULL) {
return_cmd_error(STR_8803_TRAIN_IN_THE_WAY);
}
@@ -837,14 +847,14 @@ int32 DoConvertTunnelBridgeRail(TileIndex tile, RailType totype, bool exec)
YapfNotifyTrackLayoutChange(tile, track);
YapfNotifyTrackLayoutChange(endtile, track);
}
cost = 2 * (_price.build_rail >> 1);
cost = 2 * (_price.build_rail / 2);
delta = TileOffsByDiagDir(GetBridgeRampDirection(tile));
for (tile += delta; tile != endtile; tile += delta) {
if (exec) {
SetRailTypeOnBridge(tile, totype);
MarkTileDirtyByTile(tile);
}
cost += _price.build_rail >> 1;
cost += _price.build_rail / 2;
}
return cost;