diff --git a/data/classificator.txt b/data/classificator.txt index 94f1ce1174..fba346a4ec 100644 --- a/data/classificator.txt +++ b/data/classificator.txt @@ -542,7 +542,9 @@ world + lit - nobicycle - nocar - + nocycleway - nofoot - + nosidewalk - onedir_bicycle - oneway - private - @@ -856,6 +858,7 @@ world + tunnel - {} station + + funicular - light_rail - monorail - subway + @@ -1319,6 +1322,9 @@ world + drain + tunnel - {} + fish_pass + + tunnel - + {} lock_gate - river + tunnel - diff --git a/data/drules_proto.bin b/data/drules_proto.bin index 69b201bfa7..a6ba5a7d44 100644 Binary files a/data/drules_proto.bin and b/data/drules_proto.bin differ diff --git a/data/drules_proto.txt b/data/drules_proto.txt index 1b3ec6bbe2..8bbabf1b3d 100644 --- a/data/drules_proto.txt +++ b/data/drules_proto.txt @@ -59961,6 +59961,209 @@ cont { } } } +cont { + name: "railway-station-funicular" + element { + scale: 12 + symbol { + name: "train-s" + priority: 16961 + } + caption { + primary { + height: 9 + color: 2236962 + stroke_color: 1728053247 + offset_y: 1 + is_optional: true + } + secondary { + height: 8 + color: 2236962 + stroke_color: 1728053247 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 13 + symbol { + name: "train-s" + priority: 16961 + } + caption { + primary { + height: 10 + color: 2236962 + stroke_color: 1728053247 + offset_y: 1 + is_optional: true + } + secondary { + height: 9 + color: 2236962 + stroke_color: 1728053247 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 14 + symbol { + name: "train-s" + priority: 16961 + } + caption { + primary { + height: 11 + color: 2236962 + stroke_color: 1308622847 + offset_y: 1 + is_optional: true + } + secondary { + height: 10 + color: 2236962 + stroke_color: 1308622847 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 15 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 2236962 + stroke_color: 872415231 + offset_y: 1 + is_optional: true + } + secondary { + height: 10 + color: 2236962 + stroke_color: 872415231 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 16 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 2236962 + stroke_color: 872415231 + offset_y: 1 + is_optional: true + } + secondary { + height: 11 + color: 2236962 + stroke_color: 872415231 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 17 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 2236962 + stroke_color: 452984831 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 2236962 + stroke_color: 452984831 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 18 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 2236962 + stroke_color: 452984831 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 2236962 + stroke_color: 452984831 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 19 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 2236962 + stroke_color: 452984831 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 2236962 + stroke_color: 452984831 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } +} cont { name: "railway-station-light_rail" element { @@ -100964,6 +101167,117 @@ cont { } } } +cont { + name: "waterway-fish_pass" + element { + scale: 13 + lines { + width: 0.7 + color: 3584191 + priority: 1009 + cap: BUTTCAP + } + path_text { + primary { + height: 10 + color: 4495803 + } + priority: 16950 + } + } + element { + scale: 14 + lines { + width: 1.0 + color: 3584191 + priority: 1009 + cap: BUTTCAP + } + path_text { + primary { + height: 10 + color: 4495803 + } + priority: 16950 + } + } + element { + scale: 15 + lines { + width: 1.6 + color: 3584191 + priority: 1009 + cap: BUTTCAP + } + path_text { + primary { + height: 11 + color: 4495803 + } + priority: 16950 + } + } + element { + scale: 16 + lines { + width: 1.6 + color: 3584191 + priority: 1009 + } + path_text { + primary { + height: 11 + color: 4495803 + } + priority: 16950 + } + } + element { + scale: 17 + lines { + width: 1.6 + color: 3584191 + priority: 1009 + } + path_text { + primary { + height: 11 + color: 4495803 + } + priority: 16950 + } + } + element { + scale: 18 + lines { + width: 1.6 + color: 3584191 + priority: 1009 + } + path_text { + primary { + height: 12 + color: 4495803 + } + priority: 16950 + } + } + element { + scale: 19 + lines { + width: 1.6 + color: 3584191 + priority: 1009 + } + path_text { + primary { + height: 12 + color: 4495803 + } + priority: 16950 + } + } +} cont { name: "waterway-lock_gate" element { diff --git a/data/drules_proto_clear.bin b/data/drules_proto_clear.bin index 67317ac867..ceae79d4e0 100644 Binary files a/data/drules_proto_clear.bin and b/data/drules_proto_clear.bin differ diff --git a/data/drules_proto_clear.txt b/data/drules_proto_clear.txt index 03b08a65e8..09eda51253 100644 --- a/data/drules_proto_clear.txt +++ b/data/drules_proto_clear.txt @@ -59463,6 +59463,209 @@ cont { } } } +cont { + name: "railway-station-funicular" + element { + scale: 12 + symbol { + name: "train-s" + priority: 16961 + } + caption { + primary { + height: 9 + color: 2236962 + stroke_color: 1728053247 + offset_y: 1 + is_optional: true + } + secondary { + height: 8 + color: 2236962 + stroke_color: 1728053247 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 13 + symbol { + name: "train-s" + priority: 16961 + } + caption { + primary { + height: 10 + color: 2236962 + stroke_color: 1728053247 + offset_y: 1 + is_optional: true + } + secondary { + height: 9 + color: 2236962 + stroke_color: 1728053247 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 14 + symbol { + name: "train-s" + priority: 16961 + } + caption { + primary { + height: 11 + color: 2236962 + stroke_color: 1308622847 + offset_y: 1 + is_optional: true + } + secondary { + height: 10 + color: 2236962 + stroke_color: 1308622847 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 15 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 2236962 + stroke_color: 872415231 + offset_y: 1 + is_optional: true + } + secondary { + height: 10 + color: 2236962 + stroke_color: 872415231 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 16 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 2236962 + stroke_color: 872415231 + offset_y: 1 + is_optional: true + } + secondary { + height: 11 + color: 2236962 + stroke_color: 872415231 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 17 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 2236962 + stroke_color: 452984831 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 2236962 + stroke_color: 452984831 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 18 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 2236962 + stroke_color: 452984831 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 2236962 + stroke_color: 452984831 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 19 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 2236962 + stroke_color: 452984831 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 2236962 + stroke_color: 452984831 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } +} cont { name: "railway-station-light_rail" element { @@ -100369,6 +100572,117 @@ cont { } } } +cont { + name: "waterway-fish_pass" + element { + scale: 13 + lines { + width: 0.7 + color: 3584191 + priority: 1009 + cap: BUTTCAP + } + path_text { + primary { + height: 10 + color: 4495803 + } + priority: 16950 + } + } + element { + scale: 14 + lines { + width: 1.0 + color: 3584191 + priority: 1009 + cap: BUTTCAP + } + path_text { + primary { + height: 10 + color: 4495803 + } + priority: 16950 + } + } + element { + scale: 15 + lines { + width: 1.6 + color: 3584191 + priority: 1009 + cap: BUTTCAP + } + path_text { + primary { + height: 11 + color: 4495803 + } + priority: 16950 + } + } + element { + scale: 16 + lines { + width: 1.6 + color: 3584191 + priority: 1009 + } + path_text { + primary { + height: 11 + color: 4495803 + } + priority: 16950 + } + } + element { + scale: 17 + lines { + width: 1.6 + color: 3584191 + priority: 1009 + } + path_text { + primary { + height: 11 + color: 4495803 + } + priority: 16950 + } + } + element { + scale: 18 + lines { + width: 1.6 + color: 3584191 + priority: 1009 + } + path_text { + primary { + height: 12 + color: 4495803 + } + priority: 16950 + } + } + element { + scale: 19 + lines { + width: 1.6 + color: 3584191 + priority: 1009 + } + path_text { + primary { + height: 12 + color: 4495803 + } + priority: 16950 + } + } +} cont { name: "waterway-lock_gate" element { diff --git a/data/drules_proto_dark.bin b/data/drules_proto_dark.bin index ef082edfce..859164d592 100644 Binary files a/data/drules_proto_dark.bin and b/data/drules_proto_dark.bin differ diff --git a/data/drules_proto_dark.txt b/data/drules_proto_dark.txt index 9619a9c7de..3a12b21413 100644 --- a/data/drules_proto_dark.txt +++ b/data/drules_proto_dark.txt @@ -59548,6 +59548,209 @@ cont { } } } +cont { + name: "railway-station-funicular" + element { + scale: 12 + symbol { + name: "train-s" + priority: 16961 + } + caption { + primary { + height: 9 + color: 8947848 + stroke_color: 1712394496 + offset_y: 1 + is_optional: true + } + secondary { + height: 8 + color: 8947848 + stroke_color: 1712394496 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 13 + symbol { + name: "train-s" + priority: 16961 + } + caption { + primary { + height: 10 + color: 8947848 + stroke_color: 1712394496 + offset_y: 1 + is_optional: true + } + secondary { + height: 9 + color: 8947848 + stroke_color: 1712394496 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 14 + symbol { + name: "train-s" + priority: 16961 + } + caption { + primary { + height: 11 + color: 8947848 + stroke_color: 1292964096 + offset_y: 1 + is_optional: true + } + secondary { + height: 10 + color: 8947848 + stroke_color: 1292964096 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 15 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 8947848 + stroke_color: 856756480 + offset_y: 1 + is_optional: true + } + secondary { + height: 10 + color: 8947848 + stroke_color: 856756480 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 16 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 8947848 + stroke_color: 856756480 + offset_y: 1 + is_optional: true + } + secondary { + height: 11 + color: 8947848 + stroke_color: 856756480 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 17 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 8947848 + stroke_color: 437326080 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 8947848 + stroke_color: 437326080 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 18 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 8947848 + stroke_color: 437326080 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 8947848 + stroke_color: 437326080 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } + element { + scale: 19 + symbol { + name: "funicular-m" + priority: 16961 + } + caption { + primary { + height: 10 + color: 8947848 + stroke_color: 437326080 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 8947848 + stroke_color: 437326080 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15961 + } + } +} cont { name: "railway-station-light_rail" element { @@ -100454,6 +100657,117 @@ cont { } } } +cont { + name: "waterway-fish_pass" + element { + scale: 13 + lines { + width: 0.7 + color: 401446 + priority: 1009 + cap: BUTTCAP + } + path_text { + primary { + height: 10 + color: 19033 + } + priority: 16950 + } + } + element { + scale: 14 + lines { + width: 1.0 + color: 401446 + priority: 1009 + cap: BUTTCAP + } + path_text { + primary { + height: 10 + color: 19033 + } + priority: 16950 + } + } + element { + scale: 15 + lines { + width: 1.6 + color: 401446 + priority: 1009 + cap: BUTTCAP + } + path_text { + primary { + height: 11 + color: 19033 + } + priority: 16950 + } + } + element { + scale: 16 + lines { + width: 1.6 + color: 401446 + priority: 1009 + } + path_text { + primary { + height: 11 + color: 19033 + } + priority: 16950 + } + } + element { + scale: 17 + lines { + width: 1.6 + color: 401446 + priority: 1009 + } + path_text { + primary { + height: 11 + color: 19033 + } + priority: 16950 + } + } + element { + scale: 18 + lines { + width: 1.6 + color: 401446 + priority: 1009 + } + path_text { + primary { + height: 12 + color: 19033 + } + priority: 16950 + } + } + element { + scale: 19 + lines { + width: 1.6 + color: 401446 + priority: 1009 + } + path_text { + primary { + height: 12 + color: 19033 + } + priority: 16950 + } + } +} cont { name: "waterway-lock_gate" element { diff --git a/data/drules_proto_vehicle_clear.bin b/data/drules_proto_vehicle_clear.bin index f85ae8be27..5c8ea911e0 100644 Binary files a/data/drules_proto_vehicle_clear.bin and b/data/drules_proto_vehicle_clear.bin differ diff --git a/data/drules_proto_vehicle_clear.txt b/data/drules_proto_vehicle_clear.txt index 972f899def..d9b77f46db 100644 --- a/data/drules_proto_vehicle_clear.txt +++ b/data/drules_proto_vehicle_clear.txt @@ -40479,6 +40479,191 @@ cont { } } } +cont { + name: "railway-station-funicular" + element { + scale: 12 + symbol { + name: "train-s" + priority: 16926 + } + } + element { + scale: 13 + symbol { + name: "train-m" + priority: 16926 + } + caption { + primary { + height: 11 + color: 3355443 + stroke_color: 1728053247 + offset_y: 1 + is_optional: true + } + secondary { + height: 9 + color: 3355443 + stroke_color: 1728053247 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15926 + } + } + element { + scale: 14 + symbol { + name: "train-m" + priority: 16926 + } + caption { + primary { + height: 12 + color: 3355443 + stroke_color: 1308622847 + offset_y: 1 + is_optional: true + } + secondary { + height: 10 + color: 3355443 + stroke_color: 1308622847 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15926 + } + } + element { + scale: 15 + symbol { + name: "train-m" + priority: 16926 + } + caption { + primary { + height: 12 + color: 3355443 + stroke_color: 872415231 + offset_y: 1 + is_optional: true + } + secondary { + height: 10 + color: 3355443 + stroke_color: 872415231 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15926 + } + } + element { + scale: 16 + symbol { + name: "train-m" + priority: 16926 + } + caption { + primary { + height: 13 + color: 3355443 + stroke_color: 872415231 + offset_y: 1 + is_optional: true + } + secondary { + height: 11 + color: 3355443 + stroke_color: 872415231 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15926 + } + } + element { + scale: 17 + symbol { + name: "train-m" + priority: 16926 + } + caption { + primary { + height: 14 + color: 3355443 + stroke_color: 452984831 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 3355443 + stroke_color: 452984831 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15926 + } + } + element { + scale: 18 + symbol { + name: "train-m" + priority: 16926 + } + caption { + primary { + height: 14 + color: 3355443 + stroke_color: 452984831 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 3355443 + stroke_color: 452984831 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15926 + } + } + element { + scale: 19 + symbol { + name: "train-m" + priority: 16926 + } + caption { + primary { + height: 14 + color: 3355443 + stroke_color: 452984831 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 3355443 + stroke_color: 452984831 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15926 + } + } +} cont { name: "railway-station-light_rail" element { diff --git a/data/drules_proto_vehicle_dark.bin b/data/drules_proto_vehicle_dark.bin index 6831542d96..6d04d1f081 100644 Binary files a/data/drules_proto_vehicle_dark.bin and b/data/drules_proto_vehicle_dark.bin differ diff --git a/data/drules_proto_vehicle_dark.txt b/data/drules_proto_vehicle_dark.txt index 815859342e..1cd0cfbe64 100644 --- a/data/drules_proto_vehicle_dark.txt +++ b/data/drules_proto_vehicle_dark.txt @@ -40803,6 +40803,191 @@ cont { } } } +cont { + name: "railway-station-funicular" + element { + scale: 12 + symbol { + name: "train-s" + priority: 16926 + } + } + element { + scale: 13 + symbol { + name: "train-m" + priority: 16926 + } + caption { + primary { + height: 11 + color: 8947848 + stroke_color: 1712394496 + offset_y: 1 + is_optional: true + } + secondary { + height: 9 + color: 8947848 + stroke_color: 1712394496 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15926 + } + } + element { + scale: 14 + symbol { + name: "train-m" + priority: 16926 + } + caption { + primary { + height: 12 + color: 8947848 + stroke_color: 1292964096 + offset_y: 1 + is_optional: true + } + secondary { + height: 10 + color: 8947848 + stroke_color: 1292964096 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15926 + } + } + element { + scale: 15 + symbol { + name: "train-m" + priority: 16926 + } + caption { + primary { + height: 12 + color: 8947848 + stroke_color: 856756480 + offset_y: 1 + is_optional: true + } + secondary { + height: 10 + color: 8947848 + stroke_color: 856756480 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15926 + } + } + element { + scale: 16 + symbol { + name: "train-m" + priority: 16926 + } + caption { + primary { + height: 13 + color: 8947848 + stroke_color: 856756480 + offset_y: 1 + is_optional: true + } + secondary { + height: 11 + color: 8947848 + stroke_color: 856756480 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15926 + } + } + element { + scale: 17 + symbol { + name: "train-m" + priority: 16926 + } + caption { + primary { + height: 14 + color: 8947848 + stroke_color: 437326080 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 8947848 + stroke_color: 437326080 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15926 + } + } + element { + scale: 18 + symbol { + name: "train-m" + priority: 16926 + } + caption { + primary { + height: 14 + color: 8947848 + stroke_color: 437326080 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 8947848 + stroke_color: 437326080 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15926 + } + } + element { + scale: 19 + symbol { + name: "train-m" + priority: 16926 + } + caption { + primary { + height: 14 + color: 8947848 + stroke_color: 437326080 + offset_y: 1 + is_optional: true + } + secondary { + height: 12 + color: 8947848 + stroke_color: 437326080 + offset_y: 1 + text: "int_name" + is_optional: true + } + priority: 15926 + } + } +} cont { name: "railway-station-light_rail" element { diff --git a/data/types.txt b/data/types.txt index 8e605fbefa..bcfe0d7836 100644 --- a/data/types.txt +++ b/data/types.txt @@ -252,7 +252,7 @@ landuse|forest|deciduous *waterway|canal|tunnel *piste:type|downhill|easy *waterway|ditch|tunnel -mapswithme +*hwtag|nosidewalk *piste:type|downhill|intermediate *railway|subway_entrance *amenity|charging_station|bicycle @@ -316,7 +316,7 @@ man_made|pipeline *railway|preserved *highway|path|horse *landuse|field -mapswithme +*hwtag|nocycleway *leisure|water_park *natural|wetland|bog *man_made|windmill @@ -493,8 +493,8 @@ mapswithme *highway|tertiary_link|bridge mapswithme *amenity|parking|park_and_ride -mapswithme -mapswithme +*waterway|fish_pass +*waterway|fish_pass|tunnel *natural|water|lock waterway|canal mapswithme @@ -574,7 +574,7 @@ mapswithme mapswithme *aerialway|rope_tow natural|water|pond -mapswithme +*railway|station|funicular *highway|secondary_link|tunnel mapswithme mapswithme diff --git a/data/visibility.txt b/data/visibility.txt index cc57694a73..1d2353fbb2 100644 --- a/data/visibility.txt +++ b/data/visibility.txt @@ -542,7 +542,9 @@ world 00000000000000000000 + lit 00000000000000000000 - nobicycle 00000000000000000000 - nocar 00000000000000000000 - + nocycleway 00000000000000000000 - nofoot 00000000000000000000 - + nosidewalk 00000000000000000000 - onedir_bicycle 00000000000000000000 - oneway 00000000000000011111 - private 00000000000000000000 - @@ -856,6 +858,7 @@ world 00000000000000000000 + tunnel 00000000000000000000 - {} station 00000000000011111111 + + funicular 00000000000011111111 - light_rail 00000000000011111111 - monorail 00000000000011111111 - subway 00000000000001111111 + @@ -1319,6 +1322,9 @@ world 00000000000000000000 + drain 00000000000000000111 + tunnel 00000000000000000000 - {} + fish_pass 00000000000000000000 + + tunnel 00000000000000000000 - + {} lock_gate 00000000000000001111 - river 00000000001111111111 + tunnel 00000000000111111111 -