Merge branch 'master' into jgrpp

# Conflicts:
#	.gitignore
#	src/network/network_server.cpp
#	src/vehicle_gui.cpp
pull/173/head
Jonathan G Rennison 4 years ago
commit 7467051331

50
.gitignore vendored

@ -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*/

@ -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

@ -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()

@ -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$")

@ -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

@ -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...

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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...

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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

@ -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

@ -148,11 +148,12 @@ struct PacketWriter : SaveFilter {
this->packets.push_back(std::move(this->current));
}
void PrependQueue(std::unique_ptr<Packet> 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<Packet> 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();
}
};

@ -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;
}
}

@ -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");

@ -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");

@ -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]
};
/**

@ -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) {

Loading…
Cancel
Save