diff --git a/.gitignore b/.gitignore index e6afa7b0d9..4e0de91823 100644 --- a/.gitignore +++ b/.gitignore @@ -1,50 +1,8 @@ -bin/* -!bin/ai -bin/ai/* -!bin/ai/compat*.nut -!bin/ai/regression -!bin/data -bin/baseset/* -!bin/baseset/openttd.grf -!bin/baseset/opntitle.dat -!bin/baseset/orig_extra.grf -!bin/baseset/orig_*.obg -!bin/baseset/orig_*.obs -!bin/baseset/no_sound.obs -!bin/baseset/no_music.obm -!bin/baseset/orig_*.obm -!bin/game -bin/game/* -!bin/game/compat*.nut -!bin/scripts -bin/scripts/* -!bin/scripts/*.example -!bin/scripts/readme.txt - -bundle/* -bundles/* +/.vs +/build*/ +CMakeSettings.json docs/aidocs/* docs/gamedocs/* docs/source/* -media/openttd.desktop -media/openttd.desktop.install -projects/.vs -projects/Debug -projects/Release -projects/*.ncb -projects/*.suo -projects/*.sdf -projects/*.opensdf -projects/*.vcproj.*.user -projects/*.vcxproj.user -projects/*.VC.db -projects/*.VC.opendb - -/Makefile* -!/Makefile.msvc -/config.* -!/config.lib -!*.in +/out *.tmp - -build*/ diff --git a/.hgignore b/.hgignore deleted file mode 100644 index 03d99c6f29..0000000000 --- a/.hgignore +++ /dev/null @@ -1,34 +0,0 @@ -syntax: glob - -.svn -*.aps -bin/baseset/openttd.32.bmp -bin/lang/* -bin/openttd* -bin/*.cfg -bundle/* -bundles/* -config.cache* -config.log -config.pwd -docs/aidocs/* -docs/gamedocs/* -docs/source/* -.kdev4 -.kdev4/* -*.kdev4 -Makefile -Makefile.am -Makefile.bundle -media/openttd.desktop -media/openttd.desktop.install -objs/* -projects/.vs -projects/*.ncb -projects/*.suo -projects/*.sdf -projects/*.opensdf -projects/*.vcproj.*.user -projects/*.vcxproj.user -src/rev.cpp -src/os/windows/ottdres.rc diff --git a/CMakeLists.txt b/CMakeLists.txt index 81c1dad627..2d26382b08 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -146,6 +146,8 @@ include_directories(${CMAKE_SOURCE_DIR}/src) # Needed by everything that uses Squirrel include_directories(${CMAKE_SOURCE_DIR}/src/3rdparty/squirrel/include) +include(MSVCFilters) + include(CompileFlags) compile_flags() diff --git a/cmake/MSVCFilters.cmake b/cmake/MSVCFilters.cmake new file mode 100644 index 0000000000..14c7b2c351 --- /dev/null +++ b/cmake/MSVCFilters.cmake @@ -0,0 +1,37 @@ +# Add source group filters for use in generated projects. + +source_group("AI Core" REGULAR_EXPRESSION "src/ai/") +source_group("Blitters" REGULAR_EXPRESSION "src/blitter/") +source_group("Core Source Code" REGULAR_EXPRESSION "src/core/") +source_group("Game Core" REGULAR_EXPRESSION "src/game/") +source_group("MD5" REGULAR_EXPRESSION "src/3rdparty/md5/") +source_group("Misc" REGULAR_EXPRESSION "src/misc/") +source_group("Music" REGULAR_EXPRESSION "src/music/") +source_group("Network Core" REGULAR_EXPRESSION "src/network/core/") +source_group("Pathfinder" REGULAR_EXPRESSION "src/pathfinder/") +source_group("Save/Load handlers" REGULAR_EXPRESSION "src/saveload/") +source_group("Sound" REGULAR_EXPRESSION "src/sound/") +source_group("Sprite loaders" REGULAR_EXPRESSION "src/spriteloader/") +source_group("Squirrel" REGULAR_EXPRESSION "src/3rdparty/squirrel/squirrel/") +source_group("Tables" REGULAR_EXPRESSION "src/table/") +source_group("Video" REGULAR_EXPRESSION "src/video/") +source_group("Widgets" REGULAR_EXPRESSION "src/widgets/") +source_group("Windows files" REGULAR_EXPRESSION "src/os/windows/|\.rc$") + +# Last directive for each file wins, so make sure NPF/YAPF are after the generic pathfinder filter. +source_group("NPF" REGULAR_EXPRESSION "src/pathfinder/npf/") +source_group("YAPF" REGULAR_EXPRESSION "src/pathfinder/yapf/") + +source_group("Script" REGULAR_EXPRESSION "src/script/") +source_group("Script API Implementation" REGULAR_EXPRESSION "src/script/api/") +source_group("Script API" REGULAR_EXPRESSION "src/script/api/.*\.hpp$") +source_group("AI API" REGULAR_EXPRESSION "src/script/api/ai_") +source_group("Game API" REGULAR_EXPRESSION "src/script/api/game_") + +# Placed last to ensure any of the previous directory filters are overridden. +source_group("Command handlers" REGULAR_EXPRESSION "_cmd\.cpp$") +source_group("Drivers" REGULAR_EXPRESSION "_driver\.hpp$") +source_group("GUI Source Code" REGULAR_EXPRESSION "_gui\.cpp$") +source_group("Map Accessors" REGULAR_EXPRESSION "_map\.(cpp|h)$") +source_group("NewGRF" REGULAR_EXPRESSION "newgrf.*cpp$") +source_group("Squirrel headers" REGULAR_EXPRESSION "src/3rdparty/squirrel/squirrel/.*\.h$") diff --git a/src/lang/afrikaans.txt b/src/lang/afrikaans.txt index 0d31959c64..08e43be8a5 100644 --- a/src/lang/afrikaans.txt +++ b/src/lang/afrikaans.txt @@ -4450,7 +4450,6 @@ STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}kan nie STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Kan nie tremtipe hier omskakel nie ... STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Geen geskikte pad STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Geen geskikte tremweg nie -STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... onverenigbare pad STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... onversoenbare tremweg # Waterway construction errors diff --git a/src/lang/basque.txt b/src/lang/basque.txt index 83c0cd06fc..1f5f284193 100644 --- a/src/lang/basque.txt +++ b/src/lang/basque.txt @@ -4173,7 +4173,6 @@ STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}Ezin da STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Ezin da hemen tranbiarik ezabatu... STR_ERROR_THERE_IS_NO_ROAD :{WHITE}... ez dago biderik STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... ez dago tranbia biderik -STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... errepidea ez da bateragarria # Waterway construction errors STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}Ezin dira hemen urbideak eraiki... diff --git a/src/lang/catalan.txt b/src/lang/catalan.txt index 1e79c6ca07..2121af3a66 100644 --- a/src/lang/catalan.txt +++ b/src/lang/catalan.txt @@ -4433,7 +4433,6 @@ STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}Aquí no STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}No puc treure la via de tramvia d'aquí... STR_ERROR_THERE_IS_NO_ROAD :{WHITE}... no hi ha carretera STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... no hi ha via de tramvia -STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... la carretera és incompatible. STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... El tipus de tramvia és incompatible. # Waterway construction errors diff --git a/src/lang/croatian.txt b/src/lang/croatian.txt index deadd33a80..0a51567b82 100644 --- a/src/lang/croatian.txt +++ b/src/lang/croatian.txt @@ -4581,7 +4581,6 @@ STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Ovdje ni STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Ovdje nije moguće pretvoriti tramvajsku prugu... STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Nema prikladne ceste STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Nema prikladne tramvajske pruge -STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... nekompatibilna cesta STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... nekompatibilna tramvajska pruga # Waterway construction errors diff --git a/src/lang/czech.txt b/src/lang/czech.txt index dc269214cf..5739dfef87 100644 --- a/src/lang/czech.txt +++ b/src/lang/czech.txt @@ -4578,7 +4578,6 @@ STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Zde nelz STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Zde nelze změnit druh tramvajové tratě... STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Neexistuje vhodná silnice STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Neexistuje vhodná tramvajová trať -STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... nevhodný druh silnice STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... nevhodný typ tramvajové tratě # Waterway construction errors diff --git a/src/lang/danish.txt b/src/lang/danish.txt index dd056634fe..e00fc157b7 100644 --- a/src/lang/danish.txt +++ b/src/lang/danish.txt @@ -4486,7 +4486,6 @@ STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Kan ikke STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Kan ikke konvertere sporvejstype her... STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Ingen passende vej STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Ingen egnet sporvej -STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... inkompatibel vej STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... inkompatibel sporvej # Waterway construction errors diff --git a/src/lang/dutch.txt b/src/lang/dutch.txt index 0fced179f5..73de391c46 100644 --- a/src/lang/dutch.txt +++ b/src/lang/dutch.txt @@ -4485,7 +4485,6 @@ STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Kan wegt STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Kan tramtype hier niet converteren... STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Geen geschikte weg STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Geen geschikt tramspoor -STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... weg niet geschikt STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... treinspoor niet geschikt # Waterway construction errors diff --git a/src/lang/english.txt b/src/lang/english.txt index 893a11f9c2..c5026ebb35 100644 --- a/src/lang/english.txt +++ b/src/lang/english.txt @@ -5423,7 +5423,6 @@ STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Can't co STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Can't convert tram type here... STR_ERROR_NO_SUITABLE_ROAD :{WHITE}No suitable road STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}No suitable tramway -STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... incompatible road STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... incompatible tramway # Waterway construction errors diff --git a/src/lang/english_US.txt b/src/lang/english_US.txt index 77201bc065..57a45815ab 100644 --- a/src/lang/english_US.txt +++ b/src/lang/english_US.txt @@ -4472,7 +4472,6 @@ STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Can't co STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Can't convert streetcar type here... STR_ERROR_NO_SUITABLE_ROAD :{WHITE}No suitable road STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}No suitable streetcar line -STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... incompatible road STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... incompatible streetcar line # Waterway construction errors diff --git a/src/lang/estonian.txt b/src/lang/estonian.txt index f68770da07..b425e80909 100644 --- a/src/lang/estonian.txt +++ b/src/lang/estonian.txt @@ -4398,7 +4398,6 @@ STR_ERROR_CAN_T_REMOVE_ROAD_FROM :{WHITE}Siinset STR_ERROR_CAN_T_REMOVE_TRAMWAY_FROM :{WHITE}Siinset trammiteed ei saa lammutada... STR_ERROR_THERE_IS_NO_ROAD :{WHITE}... siin pole autoteed STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... siin pole trammiteed -STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... sobimatu tee # Waterway construction errors STR_ERROR_CAN_T_BUILD_CANALS :{WHITE}Siia ei saa kanaleid ehitada... diff --git a/src/lang/finnish.txt b/src/lang/finnish.txt index b9a4f5694a..3d4fabf7bc 100644 --- a/src/lang/finnish.txt +++ b/src/lang/finnish.txt @@ -4482,7 +4482,6 @@ STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Tien tyy STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Raitiotien tyyppiä ei voi muuntaa tässä... STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Ei sopivaa tietä STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Ei sopivaa raitiotietä -STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... yhteensopimaton tie STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... yhteensopimaton raitiotie # Waterway construction errors diff --git a/src/lang/french.txt b/src/lang/french.txt index d1304c71b6..e12bc33a85 100644 --- a/src/lang/french.txt +++ b/src/lang/french.txt @@ -4485,7 +4485,6 @@ STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Impossib STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Impossible de convertir le type de voie de tramway... STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Aucune route convenable STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Aucune voie de tramway convenable -STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... route incompatible STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... voie de tramway incompatible # Waterway construction errors diff --git a/src/lang/galician.txt b/src/lang/galician.txt index 49bbffa53b..fa26c7ab10 100644 --- a/src/lang/galician.txt +++ b/src/lang/galician.txt @@ -4465,7 +4465,6 @@ STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Non se p STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Non se pode converter o tipo de tranvía aquí... STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Estrada inválida STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Vía de tranvía inadecuada -STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... estrada incompatíbel STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... tranvía incompatible # Waterway construction errors diff --git a/src/lang/hungarian.txt b/src/lang/hungarian.txt index 14b0dbf8a4..1919b83562 100644 --- a/src/lang/hungarian.txt +++ b/src/lang/hungarian.txt @@ -4548,7 +4548,6 @@ STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Nem lehe STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Nem lehet itt a villamospálya típusát átalakítani... STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Nincs megfelelő út STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Nincs megfelelő villamospálya -STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... nem kompatibilis az út STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... nem kompatibilis a villamospálya # Waterway construction errors diff --git a/src/lang/italian.txt b/src/lang/italian.txt index fce42654d1..4e2919283f 100644 --- a/src/lang/italian.txt +++ b/src/lang/italian.txt @@ -4514,7 +4514,6 @@ STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Impossib STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Impossibile convertire il tipo di tram qui... STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Nessuna strada adatta STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Nessuna tranvia adatta -STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... strada non compatibile STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... tranvia non compatibile # Waterway construction errors diff --git a/src/lang/korean.txt b/src/lang/korean.txt index a28895a748..865278ca7a 100644 --- a/src/lang/korean.txt +++ b/src/lang/korean.txt @@ -5397,7 +5397,6 @@ STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}이곳 STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}이곳의 전찻길을 바꿀 수 없습니다... STR_ERROR_NO_SUITABLE_ROAD :{WHITE}적합한 도로가 없습니다 STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}적합한 전찻길이 없습니다 -STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... 적합하지 않은 도로입니다 STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... 적합하지 않은 전찻길입니다 # Waterway construction errors diff --git a/src/lang/latvian.txt b/src/lang/latvian.txt index 41fdcd800b..4038459177 100644 --- a/src/lang/latvian.txt +++ b/src/lang/latvian.txt @@ -4496,7 +4496,6 @@ STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Šeit ne STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Šeit nevar pārveidot tramvaja veidu... STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Nav piemērota ceļa STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Nav piemērotu tramvaju -STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... nesavietojams ceļš STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... nesavietojami tramvaji # Waterway construction errors diff --git a/src/lang/luxembourgish.txt b/src/lang/luxembourgish.txt index 2059afecd5..a06950db97 100644 --- a/src/lang/luxembourgish.txt +++ b/src/lang/luxembourgish.txt @@ -4484,7 +4484,6 @@ STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Kann den STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Kann den Tramwaytyp hei net konvertéiren... STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Keng geeegent Strooss STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Kee passenden Tramway -STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... inkompatibel Strooss STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... inkompatiblen Tramway # Waterway construction errors diff --git a/src/lang/norwegian_bokmal.txt b/src/lang/norwegian_bokmal.txt index fdfed0218b..d0c1f86a2e 100644 --- a/src/lang/norwegian_bokmal.txt +++ b/src/lang/norwegian_bokmal.txt @@ -4460,7 +4460,6 @@ STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Kan ikke STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Kan ikke konvertere trikketype her... STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Ingen passende vei STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Ingen passende trikkespor -STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... inkompatibel vei STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... ingen passende trikkespor # Waterway construction errors diff --git a/src/lang/polish.txt b/src/lang/polish.txt index 54eeb13dfd..85d6885c19 100644 --- a/src/lang/polish.txt +++ b/src/lang/polish.txt @@ -4871,7 +4871,6 @@ STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Nie moż STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Nie można zmienić typu torów tramwajowych w tym miejscu... STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Brak właściwej drogi STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Brak właściwej linii tramwajowej -STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... niekompatybilna droga STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... niekompatybilne tory tramwajowe # Waterway construction errors diff --git a/src/lang/portuguese.txt b/src/lang/portuguese.txt index ed5ad6a398..c54c3f83f3 100644 --- a/src/lang/portuguese.txt +++ b/src/lang/portuguese.txt @@ -4448,7 +4448,6 @@ STR_ERROR_THERE_IS_NO_ROAD :{WHITE}... não STR_ERROR_THERE_IS_NO_TRAMWAY :{WHITE}... não há carris para eléctricos STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Não é possível converter aqui o tipo de estrada... STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Não é possível converter aqui o tipo de carril para eléctricos... -STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... estrada não-compatível STR_ERROR_INCOMPATIBLE_TRAMWAY :Cisterna de bebida de cola # Waterway construction errors diff --git a/src/lang/russian.txt b/src/lang/russian.txt index 3d3c94c551..4aad6558c5 100644 --- a/src/lang/russian.txt +++ b/src/lang/russian.txt @@ -4696,7 +4696,6 @@ STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Здес STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Невозможно сменить тип трамвайных рельсов... STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Нет подходящего дорожного полотна STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Нет подходящих трамвайных путей -STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... несовместимый тип дороги STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... несовместимый тип трамвайных путей # Waterway construction errors diff --git a/src/lang/simplified_chinese.txt b/src/lang/simplified_chinese.txt index 1544a652cc..f24693e30f 100644 --- a/src/lang/simplified_chinese.txt +++ b/src/lang/simplified_chinese.txt @@ -4485,7 +4485,6 @@ STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}无法 STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}无法转换电车道类型 STR_ERROR_NO_SUITABLE_ROAD :{WHITE}没有合适的道路 STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}没有合适的电车道 -STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... 不兼容的道路 STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... 不兼容的电车道 # Waterway construction errors diff --git a/src/lang/spanish.txt b/src/lang/spanish.txt index fce489313a..c71128f2ac 100644 --- a/src/lang/spanish.txt +++ b/src/lang/spanish.txt @@ -4457,7 +4457,6 @@ STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}No es po STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}No se puede convertir el tipo de tranvía aquí... STR_ERROR_NO_SUITABLE_ROAD :{WHITE}No hay carretera adecuada STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}No hay un tranvía adecuado -STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... carretera incompatible STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... tranvía incompatible # Waterway construction errors diff --git a/src/lang/spanish_MX.txt b/src/lang/spanish_MX.txt index 69b41a7c33..c998d33b59 100644 --- a/src/lang/spanish_MX.txt +++ b/src/lang/spanish_MX.txt @@ -4486,7 +4486,6 @@ STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}No es po STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}No es posible transformar esta vía de tranvía... STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Carretera no apta STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Tranvía no apto -STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... carretera no compatible STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... tranvía no compatible # Waterway construction errors diff --git a/src/lang/swedish.txt b/src/lang/swedish.txt index 593fa03895..dc18d218de 100644 --- a/src/lang/swedish.txt +++ b/src/lang/swedish.txt @@ -4485,7 +4485,6 @@ STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Kan inte STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Kan inte konvertera spårvagnstyp här... STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Ingen lämplig väg STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Ingen passande spårväg -STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... oförenlig väg STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... oförenlig spårväg # Waterway construction errors diff --git a/src/lang/ukrainian.txt b/src/lang/ukrainian.txt index 1575e64cc7..e0a9810e5f 100644 --- a/src/lang/ukrainian.txt +++ b/src/lang/ukrainian.txt @@ -4596,7 +4596,6 @@ STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Тут STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Тут не можна перетворити тип трамваю ... STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Немає підходящої дороги STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Немає підходящої трамвайної колії -STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... несумісна дорога STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... несумісний трамвай # Waterway construction errors diff --git a/src/lang/vietnamese.txt b/src/lang/vietnamese.txt index f53228130e..7a2e106138 100644 --- a/src/lang/vietnamese.txt +++ b/src/lang/vietnamese.txt @@ -4464,7 +4464,6 @@ STR_ERROR_CAN_T_CONVERT_ROAD :{WHITE}Không t STR_ERROR_CAN_T_CONVERT_TRAMWAY :{WHITE}Không thể chuyển đổi kiểu xe điện ở đây... STR_ERROR_NO_SUITABLE_ROAD :{WHITE}Không có đường ô-tô thích hợp STR_ERROR_NO_SUITABLE_TRAMWAY :{WHITE}Không có đường xe điện phù hợp -STR_ERROR_INCOMPATIBLE_ROAD :{WHITE}... đường không tương thích STR_ERROR_INCOMPATIBLE_TRAMWAY :{WHITE}... xe điện không phù hợp # Waterway construction errors diff --git a/src/network/network_server.cpp b/src/network/network_server.cpp index 585b13caea..474e19f194 100644 --- a/src/network/network_server.cpp +++ b/src/network/network_server.cpp @@ -148,11 +148,12 @@ struct PacketWriter : SaveFilter { this->packets.push_back(std::move(this->current)); } - void PrependQueue(std::unique_ptr p) + /** Prepend the current packet to the queue. */ + void PrependQueue() { - if (p == nullptr) return; + if (this->current == nullptr) return; - this->packets.push_front(std::move(p)); + this->packets.push_front(std::move(this->current)); } void Write(byte *buf, size_t size) override @@ -195,9 +196,9 @@ struct PacketWriter : SaveFilter { this->AppendQueue(); /* Fast-track the size to the client. */ - std::unique_ptr p(new Packet(PACKET_SERVER_MAP_SIZE)); - p->Send_uint32((uint32)this->total_size); - this->PrependQueue(std::move(p)); + this->current.reset(new Packet(PACKET_SERVER_MAP_SIZE)); + this->current->Send_uint32((uint32)this->total_size); + this->PrependQueue(); } }; diff --git a/src/road_cmd.cpp b/src/road_cmd.cpp index 9e503d38ac..77aac28305 100644 --- a/src/road_cmd.cpp +++ b/src/road_cmd.cpp @@ -2612,7 +2612,8 @@ CommandCost CmdConvertRoad(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3 } if (rtt == RTT_ROAD && owner == OWNER_TOWN) { - error.MakeError(STR_ERROR_INCOMPATIBLE_ROAD); + error.MakeError(STR_ERROR_OWNED_BY); + GetNameOfOwner(OWNER_TOWN, tile); continue; } } @@ -2669,7 +2670,8 @@ CommandCost CmdConvertRoad(TileIndex tile, DoCommandFlag flags, uint32 p1, uint3 } if (rtt == RTT_ROAD && owner == OWNER_TOWN) { - error.MakeError(STR_ERROR_INCOMPATIBLE_ROAD); + error.MakeError(STR_ERROR_OWNED_BY); + GetNameOfOwner(OWNER_TOWN, tile); continue; } } diff --git a/src/script/api/ai/ai_road.hpp.sq b/src/script/api/ai/ai_road.hpp.sq index 99b1d1dd0b..b42c54801e 100644 --- a/src/script/api/ai/ai_road.hpp.sq +++ b/src/script/api/ai/ai_road.hpp.sq @@ -45,7 +45,6 @@ void SQAIRoad_Register(Squirrel *engine) ScriptError::RegisterErrorMap(STR_ERROR_CROSSING_DISALLOWED_ROAD, ScriptRoad::ERR_ROADTYPE_DISALLOWS_CROSSING); ScriptError::RegisterErrorMap(STR_ERROR_NO_SUITABLE_ROAD, ScriptRoad::ERR_UNSUITABLE_ROAD); ScriptError::RegisterErrorMap(STR_ERROR_NO_SUITABLE_TRAMWAY, ScriptRoad::ERR_UNSUITABLE_ROAD); - ScriptError::RegisterErrorMap(STR_ERROR_INCOMPATIBLE_ROAD, ScriptRoad::ERR_UNSUITABLE_ROAD); ScriptError::RegisterErrorMapString(ScriptRoad::ERR_ROAD_WORKS_IN_PROGRESS, "ERR_ROAD_WORKS_IN_PROGRESS"); ScriptError::RegisterErrorMapString(ScriptRoad::ERR_ROAD_DRIVE_THROUGH_WRONG_DIRECTION, "ERR_ROAD_DRIVE_THROUGH_WRONG_DIRECTION"); diff --git a/src/script/api/game/game_road.hpp.sq b/src/script/api/game/game_road.hpp.sq index 938dd5eabb..4398b21df4 100644 --- a/src/script/api/game/game_road.hpp.sq +++ b/src/script/api/game/game_road.hpp.sq @@ -45,7 +45,6 @@ void SQGSRoad_Register(Squirrel *engine) ScriptError::RegisterErrorMap(STR_ERROR_CROSSING_DISALLOWED_ROAD, ScriptRoad::ERR_ROADTYPE_DISALLOWS_CROSSING); ScriptError::RegisterErrorMap(STR_ERROR_NO_SUITABLE_ROAD, ScriptRoad::ERR_UNSUITABLE_ROAD); ScriptError::RegisterErrorMap(STR_ERROR_NO_SUITABLE_TRAMWAY, ScriptRoad::ERR_UNSUITABLE_ROAD); - ScriptError::RegisterErrorMap(STR_ERROR_INCOMPATIBLE_ROAD, ScriptRoad::ERR_UNSUITABLE_ROAD); ScriptError::RegisterErrorMapString(ScriptRoad::ERR_ROAD_WORKS_IN_PROGRESS, "ERR_ROAD_WORKS_IN_PROGRESS"); ScriptError::RegisterErrorMapString(ScriptRoad::ERR_ROAD_DRIVE_THROUGH_WRONG_DIRECTION, "ERR_ROAD_DRIVE_THROUGH_WRONG_DIRECTION"); diff --git a/src/script/api/script_road.hpp b/src/script/api/script_road.hpp index 64b7833862..769c4a7728 100644 --- a/src/script/api/script_road.hpp +++ b/src/script/api/script_road.hpp @@ -42,7 +42,7 @@ public: ERR_ROADTYPE_DISALLOWS_CROSSING, // [STR_ERROR_CROSSING_DISALLOWED_ROAD] /** No suitable road could be found */ - ERR_UNSUITABLE_ROAD, // [STR_ERROR_NO_SUITABLE_ROAD, STR_ERROR_NO_SUITABLE_TRAMWAY, STR_ERROR_INCOMPATIBLE_ROAD] + ERR_UNSUITABLE_ROAD, // [STR_ERROR_NO_SUITABLE_ROAD, STR_ERROR_NO_SUITABLE_TRAMWAY] }; /** diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index 1021eddaa4..e9883de2df 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -3119,6 +3119,7 @@ private: SEL_DC_BASEPLANE = SEL_DC_GOTO_DEPOT, ///< First plane of the #WID_VV_SELECT_DEPOT_CLONE stacked widget. SEL_RT_BASEPLANE = SEL_RT_REFIT, ///< First plane of the #WID_VV_SELECT_REFIT_TURN stacked widget. }; + bool mouse_over_start_stop = false; /** * Display a plane in the window. @@ -3322,7 +3323,7 @@ public: SetDParam(1, percent); } } - } else if (v->vehstatus & VS_STOPPED) { + } else if (v->vehstatus & VS_STOPPED && (!mouse_over_start_stop || v->IsStoppedInDepot())) { if (v->type == VEH_TRAIN) { if (v->cur_speed == 0) { if (Train::From(v)->gcache.cached_power == 0) { @@ -3585,6 +3586,15 @@ public: } } + void OnMouseOver(Point pt, int widget) override + { + bool start_stop = widget == WID_VV_START_STOP; + if (start_stop != mouse_over_start_stop) { + mouse_over_start_stop = start_stop; + this->SetWidgetDirty(WID_VV_START_STOP); + } + } + void OnResize() override { if (this->viewport != nullptr) {