summaryrefslogtreecommitdiff
path: root/src/engine.cpp
diff options
context:
space:
mode:
authordP <dp@dpointer.org>2021-03-17 22:22:11 +0300
committerCharles Pigott <charlespigott@googlemail.com>2021-03-20 17:55:23 +0000
commitd8dfa1613fe30e092fb6b3586802c971e5d698d3 (patch)
treee99997a2f8daf25087bb908134844bcc2519693b /src/engine.cpp
parentb43cc21214cf088131db1fa9c2322d9ab58a1dfb (diff)
downloadopenttd-d8dfa1613fe30e092fb6b3586802c971e5d698d3.tar.xz
Fix: Recompute road/railtype availability after disabling the engine
Diffstat (limited to 'src/engine.cpp')
-rw-r--r--src/engine.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/engine.cpp b/src/engine.cpp
index e73fdb058..a72de454b 100644
--- a/src/engine.cpp
+++ b/src/engine.cpp
@@ -747,8 +747,14 @@ static void EnableEngineForCompany(EngineID eid, CompanyID company)
static void DisableEngineForCompany(EngineID eid, CompanyID company)
{
Engine *e = Engine::Get(eid);
+ Company *c = Company::Get(company);
ClrBit(e->company_avail, company);
+ if (e->type == VEH_TRAIN) {
+ c->avail_railtypes = GetCompanyRailtypes(c->index);
+ } else if (e->type == VEH_ROAD) {
+ c->avail_roadtypes = GetCompanyRoadTypes(c->index);
+ }
if (company == _local_company) {
AddRemoveEngineFromAutoreplaceAndBuildWindows(e->type);