diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index 0c467f56b0..b852c48009 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -2040,9 +2040,7 @@ bool AfterLoadGame() if (!Tunnel::CanAllocateItem()) return false; - Tunnel *t = new Tunnel(start_tile); - t->tile_s = end_tile; - t->is_chunnel = 0; + const Tunnel *t = new Tunnel(start_tile, end_tile, false); _m[start_tile].m2 = t->index; _m[end_tile].m2 = t->index; diff --git a/src/tunnel_base.h b/src/tunnel_base.h index 66b0871a36..6d088bb8f3 100644 --- a/src/tunnel_base.h +++ b/src/tunnel_base.h @@ -26,7 +26,8 @@ struct Tunnel : TunnelPool::PoolItem<&_tunnel_pool> { TileIndex tile_s; // South tile of tunnel. bool is_chunnel; - Tunnel(TileIndex tile_n = INVALID_TILE) : tile_n(tile_n) {} + Tunnel() {} + Tunnel(TileIndex tile_n, TileIndex tile_s, bool is_chunnel) : tile_n(tile_n), tile_s(tile_s), is_chunnel(is_chunnel) {} ~Tunnel(); static inline Tunnel *GetByTile(TileIndex tile) diff --git a/src/tunnelbridge_cmd.cpp b/src/tunnelbridge_cmd.cpp index e0be7f26e1..a57ce8c1f9 100644 --- a/src/tunnelbridge_cmd.cpp +++ b/src/tunnelbridge_cmd.cpp @@ -814,9 +814,7 @@ CommandCost CmdBuildTunnel(TileIndex start_tile, DoCommandFlag flags, uint32 p1, if(start_tile > end_tile) Swap(tn, ts); if (!Tunnel::CanAllocateItem()) return CMD_ERROR; - Tunnel *t = new Tunnel(tn); - t->tile_s = ts; - t->is_chunnel = is_chunnel; + const Tunnel *t = new Tunnel(tn, ts, is_chunnel); if (transport_type == TRANSPORT_RAIL) { if (!IsTunnelTile(start_tile) && c != NULL) c->infrastructure.rail[railtype] += num_pieces;