summaryrefslogtreecommitdiff
path: root/backport-04-2_Add-street-lights-to-remaining-shops-port-change-to-.patch
diff options
context:
space:
mode:
Diffstat (limited to 'backport-04-2_Add-street-lights-to-remaining-shops-port-change-to-.patch')
-rw-r--r--backport-04-2_Add-street-lights-to-remaining-shops-port-change-to-.patch1718
1 files changed, 1718 insertions, 0 deletions
diff --git a/backport-04-2_Add-street-lights-to-remaining-shops-port-change-to-.patch b/backport-04-2_Add-street-lights-to-remaining-shops-port-change-to-.patch
new file mode 100644
index 0000000..a004c37
--- /dev/null
+++ b/backport-04-2_Add-street-lights-to-remaining-shops-port-change-to-.patch
@@ -0,0 +1,1718 @@
+From 1c153718ab5ebddf00e83394a51c48692a338b4b Mon Sep 17 00:00:00 2001
+From: Chaosvolt <chaosvolt@users.noreply.github.com>
+Date: Thu, 9 Nov 2023 04:58:40 -0600
+Subject: [PATCH] Add street lights to remaining shops, port change to make
+ them no longer opaque (#3594)
+
+* Add street lights to remaining shops
+
+* Updoots
+
+* Also port streetlight thing
+
+Co-Authored-By: Fris0uman <41293484+Fris0uman@users.noreply.github.com>
+
+---------
+
+Co-authored-by: Fris0uman <41293484+Fris0uman@users.noreply.github.com>
+---
+ .../furniture-appliances.json | 2 +-
+ .../furniture-terrains.json | 4 ++--
+ data/json/mapgen/diner.json | 2 +-
+ data/json/mapgen/gunsmith.json | 2 +-
+ data/json/mapgen/recycle_center.json | 12 +++++++++---
+ data/json/mapgen/restaurant.json | 16 ++++++++++++----
+ data/json/mapgen/restaurant_fast.json | 8 ++++++--
+ data/json/mapgen/s_bookstore.json | 18 ++++++++++++------
+ data/json/mapgen/s_candy.json | 8 ++++++--
+ data/json/mapgen/s_clothing.json | 19 ++++++++++++-------
+ data/json/mapgen/s_coffee.json | 12 +++++++++---
+ data/json/mapgen/s_electronics.json | 14 ++++++++++----
+ data/json/mapgen/s_furniture.json | 4 +++-
+ data/json/mapgen/s_games.json | 4 +++-
+ data/json/mapgen/s_gas.json | 14 +++++++++-----
+ data/json/mapgen/s_grocery.json | 17 ++++++++++++++---
+ data/json/mapgen/s_gun.json | 16 ++++++++++++----
+ data/json/mapgen/s_hardware.json | 16 ++++++++++++----
+ data/json/mapgen/s_icecream.json | 4 +++-
+ data/json/mapgen/s_liquor.json | 4 +++-
+ data/json/mapgen/school_1.json | 4 +++-
+ data/json/mapgen/smallscrapyard.json | 4 +++-
+ data/json/mapgen/smoke_lounge.json | 8 ++++++--
+ data/json/mapgen/sports_store.json | 4 +++-
+ data/json/mapgen/station_radio.json | 8 ++++++--
+ data/json/mapgen/storage_units_large.json | 4 +++-
+ data/json/mapgen/storage_units_medium.json | 4 +++-
+ data/json/mapgen/storage_units_small.json | 4 +++-
+ data/json/mapgen/teashop.json | 8 ++++++--
+ data/json/mapgen/thrift.json | 4 +++-
+ data/json/mapgen/veterinarian.json | 4 +++-
+ data/json/mapgen/vfw.json | 4 +++-
+ data/json/mapgen/warehouse.json | 6 ++++--
+ .../clothes_store_palette.json | 7 ++++++-
+ data/mods/No_Hope/Mapgen/school_1.json | 4 +++-
+ 35 files changed, 198 insertions(+), 75 deletions(-)
+
+diff --git a/data/json/furniture_and_terrain/furniture-appliances.json b/data/json/furniture_and_terrain/furniture-appliances.json
+index a0dd071fb08..42707a73da0 100644
+--- a/data/json/furniture_and_terrain/furniture-appliances.json
++++ b/data/json/furniture_and_terrain/furniture-appliances.json
+@@ -260,7 +260,7 @@
+ "move_cost_mod": -1,
+ "coverage": 40,
+ "required_str": -1,
+- "flags": [ "BASHABLE" ],
++ "flags": [ "BASHABLE", "TRANSPARENT" ],
+ "examine_action": "transform",
+ "transforms_into": "f_street_light_rewired_on",
+ "prompt": "Switch on the street light.",
+diff --git a/data/json/furniture_and_terrain/furniture-terrains.json b/data/json/furniture_and_terrain/furniture-terrains.json
+index 93b8b04c453..c3baf2822a4 100644
+--- a/data/json/furniture_and_terrain/furniture-terrains.json
++++ b/data/json/furniture_and_terrain/furniture-terrains.json
+@@ -722,7 +722,7 @@
+ "move_cost_mod": -1,
+ "coverage": 40,
+ "required_str": -1,
+- "flags": [ "BASHABLE" ],
++ "flags": [ "BASHABLE", "TRANSPARENT" ],
+ "deconstruct": {
+ "items": [
+ { "item": "pipe", "count": 8 },
+@@ -759,7 +759,7 @@
+ "move_cost_mod": -1,
+ "coverage": 40,
+ "required_str": 32,
+- "flags": [ "BASHABLE" ],
++ "flags": [ "BASHABLE", "TRANSPARENT" ],
+ "bash": {
+ "str_min": 30,
+ "str_max": 100,
+diff --git a/data/json/mapgen/diner.json b/data/json/mapgen/diner.json
+index 038b6e5caba..9cc0551086a 100644
+--- a/data/json/mapgen/diner.json
++++ b/data/json/mapgen/diner.json
+@@ -38,7 +38,7 @@
+ ",": "t_pavement_y",
+ "-": "t_wall_w",
+ ".": "t_grass",
+- "'": "t_sidewalk",
++ "'": "t_pavement",
+ "=": "t_sidewalk",
+ "G": "t_linoleum_gray",
+ "H": "t_linoleum_white",
+diff --git a/data/json/mapgen/gunsmith.json b/data/json/mapgen/gunsmith.json
+index e69cc01605e..c0b3988ac7b 100644
+--- a/data/json/mapgen/gunsmith.json
++++ b/data/json/mapgen/gunsmith.json
+@@ -7,7 +7,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "__________________sss'__",
++ "__________________sss__'",
+ "_,___,___,___,___,sss_%_",
+ "_,___,___,___,___,sss_%_",
+ "_,___,___,___,___,sss_%_",
+diff --git a/data/json/mapgen/recycle_center.json b/data/json/mapgen/recycle_center.json
+index 6baee912caf..63875d260b1 100644
+--- a/data/json/mapgen/recycle_center.json
++++ b/data/json/mapgen/recycle_center.json
+@@ -4,6 +4,7 @@
+ "object": {
+ "fill_ter": "t_thconc_floor",
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_table",
+ "&": "f_trashcan",
+ "P": "f_sign",
+@@ -29,7 +30,7 @@
+ { "chance": 50, "repeat": [ 180, 350 ], "item": "recycle_plastic", "x": [ 7, 8 ], "y": [ 11, 19 ] }
+ ],
+ "rows": [
+- ".........s..............",
++ ".........s.............'",
+ ".........s..............",
+ ".........s..............",
+ ".........s..............",
+@@ -58,6 +59,7 @@
+ "&": "t_floor",
+ "+": "t_door_metal_c",
+ ".": [ "t_grass", "t_grass", "t_grass", "t_grass", "t_dirt" ],
++ "'": "t_dirt",
+ "D": "t_door_c",
+ "_": "t_thconc_floor",
+ "c": "t_floor",
+@@ -140,6 +142,7 @@
+ "object": {
+ "fill_ter": "t_thconc_floor",
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_table",
+ "&": "f_trashcan",
+ "C": "f_chair",
+@@ -169,7 +172,7 @@
+ ],
+ "place_vehicles": [ { "chance": 75, "fuel": 0, "rotation": 270, "status": -1, "vehicle": "forklift", "x": 16, "y": [ 7, 16 ] } ],
+ "rows": [
+- ".....cccc...............",
++ ".....cccc..............'",
+ ".....cccc...............",
+ ".....cccc...............",
+ "..---S++S--|||ww||D|w|..",
+@@ -198,6 +201,7 @@
+ "+": "t_chaingate_c",
+ "-": "t_chainfence",
+ ".": [ "t_grass", "t_grass", "t_grass", "t_grass", "t_dirt" ],
++ "'": "t_dirt",
+ "D": "t_door_metal_c",
+ "P": "t_concrete",
+ "S": "t_chainfence",
+@@ -283,6 +287,7 @@
+ "object": {
+ "fill_ter": "t_thconc_floor",
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_counter",
+ "&": "f_trashcan",
+ "P": "f_sign",
+@@ -309,7 +314,7 @@
+ ],
+ "place_loot": [ { "item": "television", "x": 4, "y": 14, "chance": 100 }, { "item": "stepladder", "x": 8, "y": 13, "chance": 100 } ],
+ "rows": [
+- "__________ppppp_________",
++ "__________ppppp________'",
+ "__________ppppp_________",
+ "______4___ppppp_____7___",
+ "_4________ppppp_________",
+@@ -344,6 +349,7 @@
+ "P": "t_concrete",
+ "R": "t_recycler",
+ "_": [ "t_grass", "t_grass", "t_grass", "t_grass", "t_dirt" ],
++ "'": "t_dirt",
+ "p": "t_pavement",
+ "s": "t_grass",
+ "t": "t_thconc_floor",
+diff --git a/data/json/mapgen/restaurant.json b/data/json/mapgen/restaurant.json
+index 033ac5d8031..53f703b94af 100644
+--- a/data/json/mapgen/restaurant.json
++++ b/data/json/mapgen/restaurant.json
+@@ -7,7 +7,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "____,____,____,____,____",
++ "____,____,____,____,___'",
+ "____,____,____,____,____",
+ "____,____,____,____,____",
+ "____,____,____,____,____",
+@@ -48,6 +48,7 @@
+ "S": "t_linoleum_white",
+ "W": "t_window",
+ "_": "t_pavement",
++ "'": "t_pavement",
+ "d": "t_pavement",
+ "g": "t_linoleum_gray",
+ "w": "t_linoleum_white",
+@@ -57,6 +58,7 @@
+ "|": "t_wall_r"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_counter",
+ "&": "f_trashcan",
+ "B": "f_bench",
+@@ -170,7 +172,7 @@
+ "object": {
+ "fill_ter": "t_carpet_green",
+ "rows": [
+- "ssssssssssssssssssssssss",
++ "sssssssssssssssssssssss`",
+ "ssssssssssssssssssssssss",
+ "ssss|-------------|sssss",
+ "____|&wlfF|.......|sssss",
+@@ -220,6 +222,7 @@
+ "g": "t_wall_glass",
+ "l": "t_linoleum_gray",
+ "s": "t_sidewalk",
++ "`": "t_sidewalk",
+ "w": "t_linoleum_white",
+ "{": "t_linoleum_white",
+ "4": "t_gutter_downspout",
+@@ -228,6 +231,7 @@
+ "|": "t_wall_y"
+ },
+ "furniture": {
++ "`": "f_street_light",
+ "#": "f_counter",
+ "2": "f_counter",
+ "&": "f_trashcan",
+@@ -342,7 +346,7 @@
+ "object": {
+ "fill_ter": "t_linoleum_white",
+ "rows": [
+- "____,____,____,____,____",
++ "____,____,____,____,___'",
+ "____,____,____,____,____",
+ "____,____,____,____,____",
+ "____,____,____,____,____",
+@@ -385,6 +389,7 @@
+ "c": "t_rdoor_b",
+ "x": "t_linoleum_white",
+ "_": "t_pavement",
++ "'": "t_pavement",
+ "f": "t_linoleum_white",
+ "t": "t_linoleum_white",
+ "4": "t_gutter_downspout",
+@@ -394,6 +399,7 @@
+ "|": "t_wall_w"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_counter",
+ "G": "f_oven",
+ "x": "f_rack",
+@@ -511,7 +517,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "____,____,____,____,____",
++ "____,____,____,____,___'",
+ "____,____,____,____,____",
+ "____,____,____,____,____",
+ "____,____,____,____,____",
+@@ -553,6 +559,7 @@
+ "S": "t_linoleum_white",
+ "W": "t_window",
+ "_": "t_pavement",
++ "'": "t_pavement",
+ "d": "t_pavement",
+ "g": "t_linoleum_gray",
+ "w": "t_linoleum_white",
+@@ -563,6 +570,7 @@
+ "|": "t_wall_p"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_counter",
+ "&": "f_trashcan",
+ "B": "f_bench",
+diff --git a/data/json/mapgen/restaurant_fast.json b/data/json/mapgen/restaurant_fast.json
+index 5dc4d3f73fd..21cd246c537 100644
+--- a/data/json/mapgen/restaurant_fast.json
++++ b/data/json/mapgen/restaurant_fast.json
+@@ -7,7 +7,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- ",_____ssssssssssss_____,",
++ ",_____ssssssssssss_____'",
+ ",__,__#### ss ####__,__,",
+ ",_,,,_#ssssssssss#__,__,",
+ ",__,__#HTHssssHTH#__,__,",
+@@ -45,6 +45,7 @@
+ "%": "t_wall_glass",
+ "+": "t_door_glass_c",
+ ",": "t_pavement_y",
++ "'": "t_pavement_y",
+ "-": "t_wall_w",
+ ".": "t_floor",
+ "5": "t_wall_glass",
+@@ -66,6 +67,7 @@
+ "|": "t_wall_w"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "H": "f_chair",
+ "O": "f_woodstove",
+ "S": "f_sink",
+@@ -168,7 +170,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "____,,,,,#ssssssssssssss",
++ "____,,,,,#sssssssssssss'",
+ "_________#ss|555++++555|",
+ "_________#ss5.HH.HH..hh|",
+ "_________#ss5.TT.TT..Th|",
+@@ -216,6 +218,7 @@
+ "r": "t_linoleum_gray",
+ "d": "t_sidewalk",
+ "s": "t_sidewalk",
++ "'": "t_sidewalk",
+ "D": "t_door_locked",
+ "t": "t_door_c",
+ "w": "t_linoleum_white",
+@@ -224,6 +227,7 @@
+ "|": "t_wall_w"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "H": "f_chair",
+ "F": "f_arcade_machine",
+ "S": "f_sink",
+diff --git a/data/json/mapgen/s_bookstore.json b/data/json/mapgen/s_bookstore.json
+index 625a11737e3..1553c7f116b 100644
+--- a/data/json/mapgen/s_bookstore.json
++++ b/data/json/mapgen/s_bookstore.json
+@@ -7,7 +7,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "~~~~~~~~~~~~~~~~~~~~~~~~",
++ "~~~~~~~~~~~~~~~~~~~~~~~'",
+ "~~~~~~~~~~~~~~~~~~~~~~~~",
+ "*|----OOO-::--OO--OO--|*",
+ "*|s.l#.Thf..#ccccccccc|*",
+@@ -45,9 +45,11 @@
+ "|": "t_wall_w",
+ "4": "t_gutter_downspout",
+ "<": "t_ladder_up",
+- "~": "t_sidewalk"
++ "~": "t_sidewalk",
++ "'": "t_sidewalk"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_counter",
+ "T": "f_table",
+ "]": "f_rack",
+@@ -226,7 +228,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "~~~~~~~~~~~~~~~~~~~~~~~~",
++ "~~~~~~~~~~~~~~~~~~~~~~~'",
+ "~~~~~~~~~~~~~~~~~~~~~~~~",
+ "~~~~~~~~~~~~~~~~~~~~~~~~",
+ "**|========::-OO--OO-|**",
+@@ -264,9 +266,11 @@
+ "O": "t_window",
+ "q": "t_grass",
+ "|": "t_wall_w",
+- "~": "t_sidewalk"
++ "~": "t_sidewalk",
++ "'": "t_sidewalk"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_counter",
+ "T": "f_table",
+ "[": "f_rack",
+@@ -433,7 +437,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "~~~~~~~~~~~~~~~~~~~~~~~~",
++ "~~~~~~~~~~~~~~~~~~~~~~~'",
+ "~~~qSq~~~~~~~~~~qqq~~~~~",
+ "~~~~~~~~~~~~~~~~~~~~~~~~",
+ "~~~~~~~~~~~~~~~~~~~~~~~~",
+@@ -471,9 +475,11 @@
+ "q": "t_dirt",
+ "|": "t_wall_w",
+ "4": "t_gutter_downspout",
+- "~": "t_sidewalk"
++ "~": "t_sidewalk",
++ "'": "t_sidewalk"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_counter",
+ "S": "f_statue",
+ "T": "f_table",
+diff --git a/data/json/mapgen/s_candy.json b/data/json/mapgen/s_candy.json
+index f3afd458e67..b624abe21ee 100644
+--- a/data/json/mapgen/s_candy.json
++++ b/data/json/mapgen/s_candy.json
+@@ -7,7 +7,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- ".............dssd.......",
++ ".............dssd......'",
+ "....fD..f.D..dssd....fD.",
+ "........D.f..dssd..d....",
+ "...uudud.....dssd.d7d...",
+@@ -36,6 +36,7 @@
+ "+": "t_door_c",
+ "-": "t_wall_glass",
+ ".": [ [ "t_grass", 5 ], [ "t_grass_long", 5 ], "t_dirt" ],
++ "'": "t_dirt",
+ "7": "t_tree_apple_harvested",
+ "D": "t_dirt",
+ "R": "t_railing_v",
+@@ -55,6 +56,7 @@
+ "|": "t_wall_y"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_counter",
+ "&": "f_trashcan",
+ "B": "f_bench",
+@@ -168,7 +170,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "............ss..........",
++ "............ss.........'",
+ "............ss..........",
+ "...d....d...ss.u.u.u.u..",
+ "..d7d..d4d..ss|||||||||.",
+@@ -197,6 +199,7 @@
+ "+": "t_door_glass_c",
+ "-": "t_wall_glass",
+ ".": [ [ "t_grass", 5 ], [ "t_grass_long", 5 ], "t_dirt" ],
++ "'": "t_dirt",
+ "4": "t_tree_pine",
+ "7": "t_tree_birch_harvested",
+ "D": "t_dirt",
+@@ -218,6 +221,7 @@
+ "|": "t_brick_wall"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_counter",
+ "&": "f_trashcan",
+ "C": "f_chair",
+diff --git a/data/json/mapgen/s_clothing.json b/data/json/mapgen/s_clothing.json
+index f4957f00293..0de27ff1eca 100644
+--- a/data/json/mapgen/s_clothing.json
++++ b/data/json/mapgen/s_clothing.json
+@@ -8,7 +8,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "...........--...........",
++ "...........--..........'",
+ "...........--...........",
+ "..##:::::::**:::::::##..",
+ "..# y &y&y(y #..",
+@@ -34,6 +34,7 @@
+ "....................4..."
+ ],
+ "palettes": [ "standard_building_palette", "clothes_store_palette" ],
++ "terrain": { "'": "t_region_groundcover_urban" },
+ "place_monsters": [ { "monster": "GROUP_ZOMBIE", "x": [ 0, 0 ], "y": [ 23, 23 ], "chance": 2, "repeat": [ 2, 3 ] } ],
+ "vehicles": { ".": { "vehicle": "shopping_cart", "chance": 1, "status": 0 } }
+ }
+@@ -99,7 +100,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "------------------------",
++ "-----------------------'",
+ "-----.ppp.-----.ppp.----",
+ "------------------------",
+ "...#:::::::***:::::::#..",
+@@ -186,7 +187,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "------------------------",
++ "-----------------------'",
+ "------------------------",
+ "------------------------",
+ "..p--####:::++:::#......",
+@@ -274,7 +275,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "~~~~~~~~~~~~~~~~~~~~~~~~",
++ "~~~~~~~~~~~~~~~~~~~~~~~'",
+ "~~~~~~~~~~~~~~~~~~~~~~~~",
+ "~~~~11~~~~1111~~~11~~~~~",
+ "***|===::----==::==|****",
+@@ -311,11 +312,13 @@
+ "i": "t_door_locked_interior",
+ "|": "t_wall_w",
+ "~": "t_sidewalk",
++ "'": "t_sidewalk",
+ "1": "t_sidewalk",
+ "4": "t_gutter_downspout"
+ },
+ "sealed_item": { "1": { "item": { "item": "seed_rose" }, "furniture": "f_planter_harvest" } },
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_counter",
+ "&": "f_counter_gate_c",
+ "@": "f_mannequin",
+@@ -409,7 +412,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "------------------------",
++ "-----------------------'",
+ "------------------------",
+ "------------------------",
+ ".#:::::**::::::**:::::#.",
+@@ -549,7 +552,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "~~~~~~~~~~~~~~~~~~~~~~~~",
++ "~~~~~~~~~~~~~~~~~~~~~~~'",
+ "~~~~~~~~~~~~~~~~~~~~~~~~",
+ "*****rzr**~~~**rzr******",
+ "*****rzr**~~~**rzr******",
+@@ -593,10 +596,12 @@
+ "z": "t_shrub",
+ "|": "t_brick_wall",
+ "~": "t_sidewalk",
++ "'": "t_sidewalk",
+ "R": "t_grass",
+ "4": "t_gutter_downspout"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_counter",
+ "@": "f_mannequin",
+ "H": "f_chair",
+@@ -699,7 +704,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "------------------------",
++ "-----------------------'",
+ "----ppppp------ppppp----",
+ "------------------------",
+ "..#:::::::#**#:::::::#..",
+diff --git a/data/json/mapgen/s_coffee.json b/data/json/mapgen/s_coffee.json
+index 6b005ff91ba..647ea9e335f 100644
+--- a/data/json/mapgen/s_coffee.json
++++ b/data/json/mapgen/s_coffee.json
+@@ -13,7 +13,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "S___________SSTzzzzzzzTS",
++ "S___________SSTzzzzzzzT'",
+ "S_____,_____SSzMbMbMbMzS",
+ "S_____,_____SSSSSSSS/MzS",
+ "S_____,_____SSSSSSSS/MzS",
+@@ -59,6 +59,7 @@
+ "M": "t_dirt",
+ "O": "t_window",
+ "S": "t_sidewalk",
++ "'": "t_sidewalk",
+ "U": "t_linoleum_white",
+ "V": "t_wall_glass",
+ "W": "t_fencegate_c",
+@@ -77,6 +78,7 @@
+ "T": "t_tree_coffee"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_counter",
+ "%": "f_trashcan",
+ "/": "f_bluebell",
+@@ -187,7 +189,7 @@
+ "//": "Default fill is floor but some tables are outside",
+ "fill_ter": "t_floor",
+ "rows": [
+- "_______,,,,,,,ss########",
++ "_______,,,,,,,s'########",
+ "______________ss#pppppp#",
+ "______________ssspHTTHp#",
+ "______________ssspppppp#",
+@@ -241,11 +243,13 @@
+ "p": "t_concrete",
+ "r": "t_linoleum_white",
+ "s": "t_sidewalk",
++ "'": "t_sidewalk",
+ "x": "t_console_broken",
+ "4": "t_gutter_downspout",
+ "|": "t_wall_b"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "&": "f_trashcan",
+ "H": "f_chair",
+ "O": "f_oven",
+@@ -333,6 +337,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_chair",
+ "&": "f_trashcan",
+ "+": "f_null",
+@@ -378,7 +383,7 @@
+ ],
+ "place_toilets": [ { "x": 20, "y": 17 } ],
+ "rows": [
+- "______________sss_______",
++ "______________sss______'",
+ "______u__u____sss_______",
+ "____uSSuSSSu__sss_SSS___",
+ "__||||||----||sss||w||__",
+@@ -414,6 +419,7 @@
+ "T": "t_floor",
+ "^": "t_floor",
+ "_": "t_grass",
++ "'": "t_dirt",
+ "a": "t_floor",
+ "b": "t_door_metal_pickable",
+ "c": "t_floor",
+diff --git a/data/json/mapgen/s_electronics.json b/data/json/mapgen/s_electronics.json
+index 6bc6965bc10..ab3923027a1 100644
+--- a/data/json/mapgen/s_electronics.json
++++ b/data/json/mapgen/s_electronics.json
+@@ -8,7 +8,7 @@
+ "object": {
+ "fill_ter": "t_linoleum_gray",
+ "rows": [
+- "zs______,______,______sz",
++ "ss______,______,______s'",
+ "zs______,______,______sz",
+ "zs______,______,______sz",
+ "zs______,______,______sz",
+@@ -50,6 +50,7 @@
+ "_": "t_pavement",
+ "d": "t_pavement",
+ "s": "t_sidewalk",
++ "'": "t_sidewalk",
+ "x": "t_console_broken",
+ "z": "t_shrub",
+ "|": "t_wall_w",
+@@ -57,6 +58,7 @@
+ "<": "t_ladder_up"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_counter",
+ "C": "f_displaycase",
+ "E": "f_desk",
+@@ -166,8 +168,8 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- " xxxxxxx 9 ",
+- " 9 xxxpJpxxx 9 ",
++ " xxxxxxx 9 '",
++ " 9 xxxpJpxxx 9 ",
+ " xxxxxxxxxxxxxxxx",
+ " ------:::-+--:::--- x",
+ " 9 |{{{{{y.......#..Y| x",
+@@ -193,6 +195,7 @@
+ ],
+ "terrain": {
+ " ": [ "t_grass", "t_grass", "t_grass", "t_dirt" ],
++ "'": "t_dirt",
+ ".": "t_floor",
+ "p": "t_grass",
+ "J": "t_grass",
+@@ -232,6 +235,7 @@
+ "4": "t_gutter_downspout"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_counter",
+ "{": "f_rack",
+ "S": "f_stool",
+@@ -331,7 +335,7 @@
+ "object": {
+ "fill_ter": "t_region_groundcover_urban",
+ "rows": [
+- " ____________________ ",
++ " ____________________ '",
+ " *___*___*______*___* ",
+ " ---:::---+----:::--- ",
+ " |H....#...........R| ",
+@@ -357,6 +361,7 @@
+ " ==================== "
+ ],
+ "terrain": {
++ "'": "t_region_groundcover_urban",
+ "*": "t_pavement_y",
+ "+": "t_door_metal_pickable",
+ "-": "t_concrete_wall",
+@@ -398,6 +403,7 @@
+ ]
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_counter",
+ "S": "f_stool",
+ "{": "f_rack",
+diff --git a/data/json/mapgen/s_furniture.json b/data/json/mapgen/s_furniture.json
+index 85599da1ad5..8ba0dcd792b 100644
+--- a/data/json/mapgen/s_furniture.json
++++ b/data/json/mapgen/s_furniture.json
+@@ -7,7 +7,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- " ",
++ " '",
+ " |ggggggggg++ggggggggg| ",
+ " |.CphpH.c....O.O.&F&.| ",
+ " |B.....kc...........y| ",
+@@ -34,6 +34,7 @@
+ ],
+ "terrain": {
+ " ": "t_pavement",
++ "'": "t_pavement",
+ "+": "t_door_c",
+ "-": "t_wall_w",
+ "D": "t_door_locked",
+@@ -43,6 +44,7 @@
+ "4": "t_gutter_downspout"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_table",
+ "&": "f_fridge",
+ "B": "f_rack",
+diff --git a/data/json/mapgen/s_games.json b/data/json/mapgen/s_games.json
+index 18b62a01b36..f19b9a4eef6 100644
+--- a/data/json/mapgen/s_games.json
++++ b/data/json/mapgen/s_games.json
+@@ -6,7 +6,7 @@
+ "object": {
+ "fill_ter": "t_carpet_purple",
+ "rows": [
+- "......fg____g____g____gf",
++ "......fg____g____g____g'",
+ "......fg____g____g____gf",
+ "......fg____g____g____gf",
+ "......fg____g____g____gf",
+@@ -40,6 +40,7 @@
+ "_": "t_pavement",
+ ".": "t_region_groundcover_urban",
+ "f": "t_sidewalk",
++ "'": "t_sidewalk",
+ "g": "t_pavement_y",
+ "h": "t_carpet_purple",
+ "i": "t_carpet_purple",
+@@ -56,6 +57,7 @@
+ "9": "t_gutter_downspout"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "h": "f_rack_wood",
+ "i": "f_counter",
+ "ƃ": "f_counter_gate_c",
+diff --git a/data/json/mapgen/s_gas.json b/data/json/mapgen/s_gas.json
+index 5f276fe967f..0ead27e3b96 100644
+--- a/data/json/mapgen/s_gas.json
++++ b/data/json/mapgen/s_gas.json
+@@ -7,7 +7,7 @@
+ "object": {
+ "fill_ter": "t_pavement",
+ "rows": [
+- "........................",
++ ".......................'",
+ ".-----..................",
+ ".|...|..........sss.....",
+ ".|...|...........&s.....",
+@@ -38,11 +38,12 @@
+ "+": "t_chaingate_l",
+ "-": "t_chainfence_h",
+ ".": "t_pavement",
++ "'": "t_pavement",
+ "5": "t_gas_pump",
+ "s": "t_little_column",
+ "|": "t_chainfence_v"
+ },
+- "furniture": { "9": "f_aut_gas_console" },
++ "furniture": { "'": "f_street_light", "9": "f_aut_gas_console" },
+ "signs": { "P": { "signage": "Danger! Do not smoke! Risk of explosion!" } },
+ "vendingmachines": { "1": { "item_group": "vending_drink" }, "2": { "item_group": "vending_food" } },
+ "place_liquids": [ { "liquid": "gasoline", "x": 3, "y": 3, "repeat": [ 200, 1075 ] } ]
+@@ -56,7 +57,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "____:]:____:____:]:____]",
++ "____:]:____:____:]:____'",
+ "____]]]____:____]]]____]",
+ "____!#!____:____!#!____]",
+ "____]]]____:____]]]____]",
+@@ -82,7 +83,8 @@
+ " 4 ]]]]]]]]]]]]]]]]"
+ ],
+ "palettes": [ "road" ],
+- "terrain": { "P": "t_sidewalk", "4": "t_gutter_downspout" },
++ "terrain": { "'": "t_sidewalk", "P": "t_sidewalk", "4": "t_gutter_downspout" },
++ "furniture": { "'": "f_street_light" },
+ "signs": { "P": { "signage": "Wide selection of storage batteries! Discounts!" } },
+ "items": { "l": { "item": "cleaning", "chance": 70 }, "&": { "item": "trash_cart", "chance": 50 } },
+ "place_loot": [
+@@ -161,7 +163,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "________________________",
++ "_______________________'",
+ "________________________",
+ "________________________",
+ "________________________",
+@@ -202,10 +204,12 @@
+ "O": "t_dirt",
+ "[": "t_fence_v",
+ "_": "t_pavement",
++ "'": "t_pavement",
+ "~": "t_fence_h",
+ "4": "t_gutter_downspout"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "6": "f_table",
+ "9": "f_rack",
+ ":": "f_dresser",
+diff --git a/data/json/mapgen/s_grocery.json b/data/json/mapgen/s_grocery.json
+index 8fc7ac2924b..458e6612b1a 100644
+--- a/data/json/mapgen/s_grocery.json
++++ b/data/json/mapgen/s_grocery.json
+@@ -6,7 +6,7 @@
+ "weight": 500,
+ "object": {
+ "rows": [
+- "ssssssssssssssssssssssss",
++ "sssssssssssssssssssssss'",
+ "ssWWWWWWWWssssssssssssss",
+ "sswsssssssssssssssssssss",
+ "sswsssssssssssssssssssss",
+@@ -57,12 +57,14 @@
+ "l": "t_linoleum_gray",
+ "r": "t_linoleum_white",
+ "s": "t_sidewalk",
++ "'": "t_sidewalk",
+ "t": "t_linoleum_white",
+ "w": "t_chainfence_v",
+ "4": "t_gutter_downspout",
+ "|": "t_wall_w"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_counter",
+ "7": "f_bookcase",
+ "C": "f_crate_c",
+@@ -187,7 +189,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- " ",
++ " '",
+ " ",
+ " ---:::---++---:::--- ",
+ " |..................| ",
+@@ -214,6 +216,7 @@
+ ],
+ "terrain": {
+ " ": [ "t_grass", "t_grass", "t_grass", "t_dirt" ],
++ "'": "t_dirt",
+ "+": "t_door_c",
+ "-": "t_wall_w",
+ ".": "t_floor",
+@@ -221,7 +224,15 @@
+ "4": "t_gutter_downspout",
+ "|": "t_wall_w"
+ },
+- "furniture": { "#": "f_counter", "&": "f_glass_fridge", "{": "f_rack", "b": "f_stool", "S": "f_sink", "L": "f_locker" },
++ "furniture": {
++ "'": "f_street_light",
++ "#": "f_counter",
++ "&": "f_glass_fridge",
++ "{": "f_rack",
++ "b": "f_stool",
++ "S": "f_sink",
++ "L": "f_locker"
++ },
+ "toilets": { "T": { } },
+ "place_items": [
+ { "item": "fridgesnacks", "x": 3, "y": [ 10, 15 ], "chance": 80, "repeat": [ 1, 12 ] },
+diff --git a/data/json/mapgen/s_gun.json b/data/json/mapgen/s_gun.json
+index b25e265ffb2..b1efabd10ec 100644
+--- a/data/json/mapgen/s_gun.json
++++ b/data/json/mapgen/s_gun.json
+@@ -7,7 +7,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- " ____________________ ",
++ " ____________________ '",
+ " *___*___*______*___* ",
+ " *___*___*______*___* ",
+ " *___*___*______*___* ",
+@@ -38,6 +38,7 @@
+ ],
+ "terrain": {
+ " ": [ "t_grass", "t_grass", "t_grass", "t_dirt" ],
++ "'": "t_dirt",
+ "*": "t_pavement_y",
+ "+": "t_door_metal_pickable",
+ "-": "t_wall_w",
+@@ -57,6 +58,7 @@
+ },
+ "toilets": { "&": { } },
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_counter",
+ "H": "f_counter",
+ "S": "f_stool",
+@@ -202,7 +204,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "_ssssssssssssssssssssss_",
++ "_ssssssssssssssssssssss'",
+ "_s@@@@@@@_ssss_@@@@@@@s_",
+ "_s||555||_ssss_||555||s_",
+ "_s|#####5_ssss_5#####|s_",
+@@ -239,6 +241,7 @@
+ "D": "t_door_c",
+ "L": "t_door_metal_locked",
+ "_": "t_pavement",
++ "'": "t_pavement",
+ "s": "t_sidewalk",
+ "|": "t_wall_w",
+ "?": "t_console_broken",
+@@ -246,6 +249,7 @@
+ "4": "t_gutter_downspout"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_counter",
+ "a": "f_stool",
+ "E": "f_desk",
+@@ -346,7 +350,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "_ssssssssssssssssssssss_",
++ "_ssssssssssssssssssssss'",
+ "_s@@xx@@@_ssss_@@@@@@@s_",
+ "_s||5l5||_ssss_||555||s_",
+ "_s|#lll#5_ssss_5#####|s_",
+@@ -383,6 +387,7 @@
+ "D": "t_door_o",
+ "L": "t_door_metal_locked",
+ "_": "t_pavement",
++ "'": "t_pavement",
+ "p": "t_door_metal_o",
+ "s": "t_sidewalk",
+ "|": "t_wall_w",
+@@ -391,6 +396,7 @@
+ "4": "t_gutter_downspout"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_counter",
+ "E": "f_desk",
+ "S": "f_sink",
+@@ -449,7 +455,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "....d...d....dss..dd.d..",
++ "....d...d....dss..dd.d.'",
+ ".......d......ss........",
+ "d.............ssd.d.....",
+ "..d....d..d.dssss......d",
+@@ -479,6 +485,7 @@
+ "+": "t_door_metal_pickable",
+ "-": "t_brick_wall",
+ ".": "t_grass",
++ "'": "t_dirt",
+ "S": "t_grass",
+ "T": "t_dirt",
+ "W": "t_wall_w",
+@@ -498,6 +505,7 @@
+ "toilets": { ";": { } },
+ "place_item": [ { "item": "corpse", "repeat": 1, "x": 19, "y": 12 } ],
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_sandbag_wall",
+ "&": "f_trashcan",
+ "C": "f_chair",
+diff --git a/data/json/mapgen/s_hardware.json b/data/json/mapgen/s_hardware.json
+index b0c7b87b010..6ad00420a5b 100644
+--- a/data/json/mapgen/s_hardware.json
++++ b/data/json/mapgen/s_hardware.json
+@@ -7,7 +7,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "________________________",
++ "_______________________'",
+ "________________________",
+ "~~~~~~~~~~~_____________",
+ "~~~~~~~~~~~_____________",
+@@ -41,12 +41,14 @@
+ ";": "t_door_locked",
+ "O": "t_window",
+ "_": "t_pavement",
++ "'": "t_pavement",
+ "U": "t_pavement",
+ "|": "t_wall_w",
+ "~": "t_sidewalk",
+ "4": "t_gutter_downspout"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_counter",
+ "@": "f_locker",
+ "[": "f_bookcase",
+@@ -132,7 +134,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "ppppp~~~~~~~~~~~~~~~~~~~",
++ "ppppp~~~~~~~~~~~~~~~~~~`",
+ "ppppp###---##++##---###~",
+ "ppppp#b.........v....P#'",
+ "ppppp#b.b.b.r..r.o.o.P#'",
+@@ -179,6 +181,7 @@
+ "w": "t_chainfence_v",
+ "|": "t_chaingate_c",
+ "~": "t_sidewalk",
++ "`": "t_sidewalk",
+ "4": "t_gutter_downspout"
+ },
+ "sealed_item": {
+@@ -188,6 +191,7 @@
+ "M": { "item": { "item": "seed_flower" }, "furniture": "f_planter_harvest" }
+ },
+ "furniture": {
++ "`": "f_street_light",
+ "D": "f_dumpster",
+ "H": "f_warehouse_shelf",
+ "P": "f_rack",
+@@ -282,7 +286,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "~~~~~~~~~~~~~~~~~~~~~~~~",
++ "~~~~~~~~~~~~~~~~~~~~~~~'",
+ "*W^^^WW|-=--:---:---:-|*",
+ "*w~~~%~|..............|*",
+ "*w~~~v~|..............|*",
+@@ -322,9 +326,11 @@
+ "w": "t_chainfence_v",
+ "|": "t_wall_w",
+ "~": "t_sidewalk",
++ "'": "t_sidewalk",
+ "4": "t_gutter_downspout"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_counter",
+ "]": "f_rack",
+ "l": "f_stool",
+@@ -416,7 +422,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "~~~~~~~~~~~~~~~~~~~~~~~~",
++ "~~~~~~~~~~~~~~~~~~~~~~~'",
+ "~~~WWWWWWWWW^^WWWWWWW~~~",
+ "***w~~~~~~~~~~~~~~~~w***",
+ "***w~~~~~~~~~~~~~~~~w***",
+@@ -453,10 +459,12 @@
+ "w": "t_chainfence_v",
+ "|": "t_wall_w",
+ "~": "t_sidewalk",
++ "'": "t_sidewalk",
+ "4": "t_gutter_downspout"
+ },
+ "toilets": { "&": { } },
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_counter",
+ "[": "f_table",
+ "]": "f_rack",
+diff --git a/data/json/mapgen/s_icecream.json b/data/json/mapgen/s_icecream.json
+index d080aec2899..54be44ee64a 100644
+--- a/data/json/mapgen/s_icecream.json
++++ b/data/json/mapgen/s_icecream.json
+@@ -6,7 +6,7 @@
+ "weight": 100,
+ "object": {
+ "rows": [
+- ".............d__d.......",
++ ".............d__d......`",
+ ".............d__d.......",
+ "...D...b.....d__d.......",
+ "..bab.DaD...d____d......",
+@@ -38,6 +38,7 @@
+ "+": "t_door_glass_c",
+ "-": "t_wall_y",
+ ".": "t_grass",
++ "`": "t_dirt",
+ "C": "t_sidewalk",
+ "D": "t_dirt",
+ "T": "t_floor",
+@@ -67,6 +68,7 @@
+ "4": "t_gutter_downspout"
+ },
+ "furniture": {
++ "`": "f_street_light",
+ "#": "f_bench",
+ "&": "f_sink",
+ "C": "f_counter",
+diff --git a/data/json/mapgen/s_liquor.json b/data/json/mapgen/s_liquor.json
+index c3b46ee2a13..e7f1086e8c1 100644
+--- a/data/json/mapgen/s_liquor.json
++++ b/data/json/mapgen/s_liquor.json
+@@ -7,7 +7,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- " ",
++ " '",
+ " ",
+ " --:---------+--:-- ",
+ " |#..#####....cs..| ",
+@@ -34,6 +34,7 @@
+ ],
+ "terrain": {
+ " ": [ "t_grass", "t_grass", "t_grass", "t_dirt" ],
++ "'": "t_dirt",
+ "-": "t_wall_g",
+ ".": "t_floor",
+ ":": "t_window",
+@@ -49,6 +50,7 @@
+ "+": "t_door_c"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_rack",
+ "&": "f_glass_fridge",
+ "c": "f_counter",
+diff --git a/data/json/mapgen/school_1.json b/data/json/mapgen/school_1.json
+index f617810dc9a..ef14e1f33bd 100644
+--- a/data/json/mapgen/school_1.json
++++ b/data/json/mapgen/school_1.json
+@@ -11,7 +11,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "ssssssss_______sssssssssssssssssssssssssssssssssssssssssssssssssssssssss",
++ "ssssssss_______ssssssss`sssssssssssssssssssssss`sssssssssssssssssssssss`",
+ "s$;$ $;$_______$;$ $;$ssssssssssssssssssssssssssssssssssssssssssssssssss",
+ "sLLLLLLL_______LLLLLLLss ss ",
+ "s_____________________ss ss $;$$$$$;$$$$$$$$;$$$$$;$ ",
+@@ -433,6 +433,7 @@
+ "_": "t_pavement",
+ "f": "t_chainfence_h",
+ "s": "t_sidewalk",
++ "`": "t_sidewalk",
+ "w": "t_window",
+ "x": "t_console_broken",
+ "|": "t_wall_y",
+@@ -461,6 +462,7 @@
+ "j": "t_sewage_pipe"
+ },
+ "furniture": {
++ "`": "f_street_light",
+ "%": "f_curtain",
+ "@": "f_bed",
+ "#": "f_bench",
+diff --git a/data/json/mapgen/smallscrapyard.json b/data/json/mapgen/smallscrapyard.json
+index d6366f986e3..b7469fd6aca 100644
+--- a/data/json/mapgen/smallscrapyard.json
++++ b/data/json/mapgen/smallscrapyard.json
+@@ -249,6 +249,7 @@
+ "method": "json",
+ "object": {
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_wreckage",
+ "&": "f_toilet",
+ "-": "f_null",
+@@ -284,7 +285,7 @@
+ { "chance": 35, "item": "hardware_plumbing", "x": 16, "y": 8 }
+ ],
+ "rows": [
+- "__._______._.__.____.___",
++ "__._______._.__.____.__'",
+ "_____..._._._.__...____.",
+ "_-------.........------_",
+ "_|^#................^^|_",
+@@ -324,6 +325,7 @@
+ "W": "t_wall_metal",
+ "^": "t_dirt",
+ "_": "t_grass",
++ "'": "t_dirt",
+ "b": "t_dirt",
+ "d": "t_dirt",
+ "f": "t_dirt",
+diff --git a/data/json/mapgen/smoke_lounge.json b/data/json/mapgen/smoke_lounge.json
+index d362e1a7ab3..dcb123ec551 100644
+--- a/data/json/mapgen/smoke_lounge.json
++++ b/data/json/mapgen/smoke_lounge.json
+@@ -30,7 +30,7 @@
+ { "chance": 25, "item": "floor_trash", "x": 14, "y": 6 }
+ ],
+ "rows": [
+- "____d______d__1sss1__d__",
++ "____d______d__1sss1__d_'",
+ "_|||--------|||sss|||||_",
+ "_|M..........{|TTT|^.#|_",
+ "_|M..........{|TTT|.g#|_",
+@@ -62,6 +62,7 @@
+ "D": "t_door_c",
+ "T": "t_thconc_floor",
+ "_": "t_grass",
++ "'": "t_dirt",
+ "a": "t_pavement",
+ "1": "t_dirt",
+ "d": "t_dirt",
+@@ -72,6 +73,7 @@
+ "4": "t_gutter_downspout"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_counter",
+ "S": "f_statue",
+ "^": [ "f_indoor_plant_y", "f_indoor_plant" ],
+@@ -176,7 +178,7 @@
+ ],
+ "fill_ter": "t_floor",
+ "rows": [
+- "___d___1sss1____d_______",
++ "___d___1sss1____d______'",
+ "_||---||ttt||||||||||||_",
+ "_|{...^|D-D|cccc.^|RY&|d",
+ "_|{....|..........+...|_",
+@@ -206,6 +208,7 @@
+ "-": "t_wall_glass",
+ "D": "t_door_glass_c",
+ "_": "t_grass",
++ "'": "t_dirt",
+ "d": "t_dirt",
+ "1": "t_dirt",
+ "p": "t_pavement",
+@@ -216,6 +219,7 @@
+ "4": "t_gutter_downspout"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_table",
+ "C": "f_chair",
+ "H": "f_sofa",
+diff --git a/data/json/mapgen/sports_store.json b/data/json/mapgen/sports_store.json
+index 35be3e50755..fc324851d9f 100644
+--- a/data/json/mapgen/sports_store.json
++++ b/data/json/mapgen/sports_store.json
+@@ -7,7 +7,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- ".`''''`''''`''''`''''`..",
++ ".`''''`''''`''''`''''`.?",
+ ".`''''`''''`''''`''''`..",
+ ".`''''`''''`''''`''''`..",
+ ".`''''`''''`''''`''''`..",
+@@ -34,6 +34,7 @@
+ ],
+ "terrain": {
+ ".": [ "t_grass", "t_grass", "t_grass", "t_grass", "t_dirt" ],
++ "?": "t_dirt",
+ " ": "t_floor",
+ "'": "t_pavement",
+ "`": "t_pavement_y",
+@@ -46,6 +47,7 @@
+ "/": "t_door_curtain_c"
+ },
+ "furniture": {
++ "?": "f_street_light",
+ "#": "f_counter",
+ "h": "f_stool",
+ "t": "f_treadmill",
+diff --git a/data/json/mapgen/station_radio.json b/data/json/mapgen/station_radio.json
+index dda7f03f220..20a79244477 100644
+--- a/data/json/mapgen/station_radio.json
++++ b/data/json/mapgen/station_radio.json
+@@ -8,7 +8,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- " sssssssssssssssssssss ",
++ " sssssssssssssssssssss'",
+ " sssssssFffffffffffffFss",
+ " sssssssF____________Fss",
+ " ss|----|______&&&&__Fss",
+@@ -46,6 +46,7 @@
+ "_": "t_pavement",
+ "&": "t_radio_tower",
+ "s": "t_sidewalk",
++ "'": "t_sidewalk",
+ "x": "t_console_broken",
+ "F": "t_chainfence",
+ "f": "t_chainfence",
+@@ -54,6 +55,7 @@
+ "<": "t_ladder_up"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "o": "f_bookcase",
+ "d": "f_desk",
+ "h": "f_chair",
+@@ -151,7 +153,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "ss ##w###",
++ "ss '##w###",
+ "ss #ffffffff#xxxP#",
+ "sssssssssG________#.h.P#",
+ "ss ######________Dc.hP#",
+@@ -178,6 +180,7 @@
+ ],
+ "terrain": {
+ " ": [ "t_grass", "t_grass", "t_grass", "t_dirt" ],
++ "'": "t_dirt",
+ "+": "t_door_c",
+ "=": "t_door_locked_alarm",
+ "D": "t_door_locked",
+@@ -199,6 +202,7 @@
+ "<": "t_ladder_up"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "o": "f_bookcase",
+ "d": "f_desk",
+ "h": "f_chair",
+diff --git a/data/json/mapgen/storage_units_large.json b/data/json/mapgen/storage_units_large.json
+index de33a51bbd2..f3465e8bf41 100644
+--- a/data/json/mapgen/storage_units_large.json
++++ b/data/json/mapgen/storage_units_large.json
+@@ -163,7 +163,7 @@
+ "object": {
+ "fill_ter": "t_thconc_floor",
+ "rows": [
+- "6622rrrrrrrrrrrrrrrrr226",
++ "6622rrrrrrrrrrrrrrrrr2'6",
+ "..22yrrryrrryrrryrrry22.",
+ "..22yrrryrrryrrryrrry22.",
+ "..22yrrryrrryrrryrrry22.",
+@@ -195,6 +195,7 @@
+ ".": "t_pavement",
+ "1": "t_window",
+ "2": "t_sidewalk",
++ "'": "t_sidewalk",
+ "U": "t_sidewalk",
+ "3": "t_tree_young",
+ "4": "t_chaingate_l",
+@@ -209,6 +210,7 @@
+ "|": "t_wall_w"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "A": "f_rack",
+ "B": "f_toilet",
+ "C": "f_counter",
+diff --git a/data/json/mapgen/storage_units_medium.json b/data/json/mapgen/storage_units_medium.json
+index 75acce80edc..66bc96bb28a 100644
+--- a/data/json/mapgen/storage_units_medium.json
++++ b/data/json/mapgen/storage_units_medium.json
+@@ -163,7 +163,7 @@
+ "object": {
+ "fill_ter": "t_thconc_floor",
+ "rows": [
+- "|------------2rrrrrrrrr2",
++ "|------------2rrrrrrrrr'",
+ "|A MM 7y....2yrrryrrry2",
+ "|A M 7y....2yrrryrrry2",
+ "|A |8....2yrrryrrry2",
+@@ -195,6 +195,7 @@
+ ".": "t_pavement",
+ "1": "t_window",
+ "2": "t_sidewalk",
++ "'": "t_sidewalk",
+ "V": "t_sidewalk",
+ "W": "t_sidewalk",
+ "3": "t_tree_young",
+@@ -210,6 +211,7 @@
+ "|": "t_wall_w"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "A": "f_rack",
+ "B": "f_toilet",
+ "C": "f_counter",
+diff --git a/data/json/mapgen/storage_units_small.json b/data/json/mapgen/storage_units_small.json
+index cabceb9c453..60de5508575 100644
+--- a/data/json/mapgen/storage_units_small.json
++++ b/data/json/mapgen/storage_units_small.json
+@@ -7,7 +7,7 @@
+ "object": {
+ "fill_ter": "t_thconc_floor",
+ "rows": [
+- "sssssss..........sssssss",
++ "sssssss..........ssssss'",
+ "sssssss..........sssssss",
+ "sssssss..........sssssss",
+ "sssssss..........sssssss",
+@@ -43,9 +43,11 @@
+ "p": "t_pavement_y",
+ "r": "t_pavement",
+ "s": "t_sidewalk",
++ "'": "t_sidewalk",
+ "|": "t_wall_w"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_chair",
+ "R": "f_rubble",
+ "^": "f_rubble",
+diff --git a/data/json/mapgen/teashop.json b/data/json/mapgen/teashop.json
+index 7653f3aabda..204d15c2c39 100644
+--- a/data/json/mapgen/teashop.json
++++ b/data/json/mapgen/teashop.json
+@@ -7,7 +7,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "...S....................",
++ "...S...................'",
+ ".z.S.z..123123123123123.",
+ "...S....SSSSCTCSSSSSCSz.",
+ ".z.S.z..SCTCSSSSCTCSTSz.",
+@@ -44,6 +44,7 @@
+ ",": "t_floor",
+ "-": "t_wall_w",
+ ".": [ "t_grass", "t_grass", "t_grass", "t_grass", "t_grass", "t_grass", "t_dirt" ],
++ "'": "t_dirt",
+ "1": "t_grass",
+ "2": "t_grass",
+ "3": "t_grass",
+@@ -65,6 +66,7 @@
+ "|": "t_wall_w"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_counter",
+ "&": "f_dumpster",
+ "1": "f_dandelion",
+@@ -171,7 +173,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- ".....SSS.......T.....T..",
++ ".....SSS.......T.....T.'",
+ ".qqqqSSSqqqqqq|||OOO|||.",
+ ".q...TSS.T..Tz|c,$$$&C|.",
+ ".q.T..SSS@...zOtC,,,,t|T",
+@@ -204,6 +206,7 @@
+ ";": "t_linoleum_gray",
+ ",": "t_floor",
+ ".": [ "t_grass", "t_grass", "t_grass", "t_grass", "t_grass", "t_grass", "t_dirt" ],
++ "'": "t_dirt",
+ "T": [ "t_tree", "t_tree_young", "t_shrub", "t_grass", "t_grass", "t_dirt" ],
+ "z": "t_shrub",
+ "@": "t_grass",
+@@ -233,6 +236,7 @@
+ "q": "t_fence_v"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_counter",
+ "Y": "f_rack_coat",
+ "&": "f_trashcan",
+diff --git a/data/json/mapgen/thrift.json b/data/json/mapgen/thrift.json
+index baf5ae9c74d..67f576866f5 100644
+--- a/data/json/mapgen/thrift.json
++++ b/data/json/mapgen/thrift.json
+@@ -7,7 +7,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "rrrrrrrrrrrrrrrrrrrrrrrr",
++ "rrrrrrrrrrrrrrrrrrrrrrr'",
+ "yrrryrrryrrryrrryrrryrrr",
+ "yrrryrrryrrryrrryrrryrrr",
+ "yrrryrrryrrryrrryrrryrrr",
+@@ -50,12 +50,14 @@
+ "g": "t_door_glass_c",
+ "o": "t_carpet_purple",
+ "r": "t_pavement",
++ "'": "t_pavement",
+ "y": "t_pavement_y",
+ "|": "t_wall_w",
+ "Z": "t_gutter_downspout",
+ "<": "t_ladder_up"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "A": "f_rack",
+ "C": "f_counter",
+ "D": "f_sink",
+diff --git a/data/json/mapgen/veterinarian.json b/data/json/mapgen/veterinarian.json
+index b0c48efca59..a578e78f501 100644
+--- a/data/json/mapgen/veterinarian.json
++++ b/data/json/mapgen/veterinarian.json
+@@ -7,7 +7,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- " ",
++ " '",
+ " ",
+ " ",
+ " ",
+@@ -34,6 +34,7 @@
+ ],
+ "terrain": {
+ " ": "t_pavement",
++ "'": "t_pavement",
+ "%": "t_console_broken",
+ "*": "t_shrub",
+ "+": "t_door_c",
+@@ -56,6 +57,7 @@
+ "4": "t_gutter_downspout"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "#": "f_counter",
+ "$": "f_safe_l",
+ "?": "f_counter",
+diff --git a/data/json/mapgen/vfw.json b/data/json/mapgen/vfw.json
+index ee75edffd1d..8b64b04b341 100644
+--- a/data/json/mapgen/vfw.json
++++ b/data/json/mapgen/vfw.json
+@@ -7,7 +7,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "rrrrrrrrrrrrr..33.22.33.",
++ "rrrrrrrrrrrrr..33.22.33'",
+ "yrrryrrryrrry.3..2222..3",
+ "yrrryrrryrrry.3.22pp22.3",
+ "yrrryrrryrrry..22pXSp22.",
+@@ -37,6 +37,7 @@
+ "+": "t_door_c",
+ "-": "t_wall_wood",
+ ".": [ [ "t_grass", 5 ], [ "t_grass_long", 2 ], "t_dirt", "t_shrub" ],
++ "'": "t_dirt",
+ "X": "t_grass",
+ "S": "t_grass",
+ "p": "t_grass",
+@@ -53,6 +54,7 @@
+ "5": "t_gutter_downspout"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "A": "f_rack",
+ "C": "f_counter",
+ "D": "f_sink",
+diff --git a/data/json/mapgen/warehouse.json b/data/json/mapgen/warehouse.json
+index 11afc5094ad..93373ccf10c 100644
+--- a/data/json/mapgen/warehouse.json
++++ b/data/json/mapgen/warehouse.json
+@@ -7,7 +7,7 @@
+ "object": {
+ "fill_ter": "t_thconc_floor",
+ "rows": [
+- "....S.SSSSSSSSSSSS......",
++ "....S.SSSSSSSSSSSS.....'",
+ "zzzzSzSSSSSSSSSSSSzzzzzz",
+ ".---3-MMMMMMMMMMMM-----.",
+ ".|11 6 w111|.",
+@@ -35,7 +35,7 @@
+ "set": [
+ { "point": "terrain", "id": "t_dirt", "x": [ 0, 23 ], "y": 23, "repeat": [ 5, 8 ] },
+ { "point": "terrain", "id": "t_tree_pine", "x": [ 0, 5 ], "y": 0, "repeat": [ 0, 1 ] },
+- { "point": "terrain", "id": "t_tree_pine", "x": [ 18, 23 ], "y": 0, "repeat": [ 0, 1 ] },
++ { "point": "terrain", "id": "t_tree_pine", "x": [ 18, 21 ], "y": 0, "repeat": [ 0, 1 ] },
+ { "point": "terrain", "id": "t_shrub", "x": 0, "y": [ 2, 19 ], "repeat": [ 1, 4 ] },
+ { "point": "terrain", "id": "t_shrub", "x": 23, "y": [ 2, 19 ], "repeat": [ 1, 4 ] },
+ { "point": "terrain", "id": "t_tree_pine", "x": 0, "y": [ 2, 19 ], "repeat": [ 0, 2 ] },
+@@ -45,6 +45,7 @@
+ " ": "t_thconc_floor",
+ "-": "t_brick_wall",
+ ".": "t_grass",
++ "'": "t_dirt",
+ "3": "t_door_locked",
+ "M": "t_door_metal_locked",
+ "O": "t_window",
+@@ -56,6 +57,7 @@
+ "U": "t_gutter_downspout"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "1": [ "f_crate_c", "f_cardboard_box" ],
+ "2": "f_sink",
+ "5": "f_counter",
+diff --git a/data/json/mapgen_palettes/clothes_store_palette.json b/data/json/mapgen_palettes/clothes_store_palette.json
+index 85c11175374..9b2df7292c5 100644
+--- a/data/json/mapgen_palettes/clothes_store_palette.json
++++ b/data/json/mapgen_palettes/clothes_store_palette.json
+@@ -2,8 +2,9 @@
+ {
+ "type": "palette",
+ "id": "clothes_store_palette",
+- "terrain": { "%": "t_console_broken", "p": "t_region_groundcover_urban" },
++ "terrain": { "'": "t_sidewalk", "%": "t_console_broken", "p": "t_region_groundcover_urban" },
+ "furniture": {
++ "'": "f_street_light",
+ "c": "f_counter",
+ "C": "f_armchair",
+ "s": "f_stool",
+@@ -59,6 +60,7 @@
+ "type": "palette",
+ "id": "tailor_palette",
+ "terrain": {
++ "'": "t_sidewalk",
+ "%": "t_console_broken",
+ ";": "t_door_locked",
+ "0": "t_window_alarm",
+@@ -66,6 +68,7 @@
+ "p": "t_region_groundcover_urban"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "c": "f_counter",
+ "R": "f_clothing_rail",
+ "s": "f_stool",
+@@ -99,6 +102,7 @@
+ "type": "palette",
+ "id": "furs_palette",
+ "terrain": {
++ "'": "t_sidewalk",
+ "%": "t_console_broken",
+ ";": "t_door_locked",
+ "i": "t_door_locked_interior",
+@@ -107,6 +111,7 @@
+ "p": "t_region_groundcover_urban"
+ },
+ "furniture": {
++ "'": "f_street_light",
+ "c": "f_displaycase",
+ "s": "f_stool",
+ "d": "f_desk",
+diff --git a/data/mods/No_Hope/Mapgen/school_1.json b/data/mods/No_Hope/Mapgen/school_1.json
+index a914d0bd9f6..76aad2fdff5 100644
+--- a/data/mods/No_Hope/Mapgen/school_1.json
++++ b/data/mods/No_Hope/Mapgen/school_1.json
+@@ -11,7 +11,7 @@
+ "object": {
+ "fill_ter": "t_floor",
+ "rows": [
+- "ssssssss_______sssssssssssssssssssssssssssssssssssssssssssssssssssssssss",
++ "ssssssss_______ssssssss`sssssssssssssssssssssss`sssssssssssssssssssssss`",
+ "s$;$ $;$_______$;$ $;$ssssssssssssssssssssssssssssssssssssssssssssssssss",
+ "sLLLLLLL_______LLLLLLLss ss ",
+ "s_____________________ss ss $;$$$$$;$$$$$$$$;$$$$$;$ ",
+@@ -426,6 +426,7 @@
+ "_": "t_pavement",
+ "f": "t_chainfence_h",
+ "s": "t_sidewalk",
++ "`": "t_sidewalk",
+ "w": "t_window",
+ "|": "t_wall_y",
+ "I": "t_column",
+@@ -454,6 +455,7 @@
+ "x": "t_console_broken"
+ },
+ "furniture": {
++ "`": "f_street_light",
+ "%": "f_curtain",
+ "@": "f_bed",
+ "#": "f_bench",
+--
+2.42.0
+