diff --git a/data/scenario_patches/020ed74.parkpatch b/data/scenario_patches/020ed74.parkpatch index 317b98b9ba..f2b69ac03a 100644 --- a/data/scenario_patches/020ed74.parkpatch +++ b/data/scenario_patches/020ed74.parkpatch @@ -3,7 +3,6 @@ "sha256": "020ed74dd726324c043c4663cc9a9230ede7cd23aa0ec6947277874bde9ed301", "land_ownership": { "construction_rights_owned": { - "cannot_downgrade": true, "coordinates": [ [ 44, 51 ], [ 47, 50 ], diff --git a/data/scenario_patches/081feb1.parkpatch b/data/scenario_patches/081feb1.parkpatch index 44f0113d45..d7e5263f2c 100644 --- a/data/scenario_patches/081feb1.parkpatch +++ b/data/scenario_patches/081feb1.parkpatch @@ -14,7 +14,6 @@ ] }, "construction_rights_owned": { - "cannot_downgrade": true, "coordinates": [ [ 86, 69 ], [ 86, 70 ] ] diff --git a/data/scenario_patches/0d53bdc.parkpatch b/data/scenario_patches/0d53bdc.parkpatch index 36ac809444..6e720d8f15 100644 --- a/data/scenario_patches/0d53bdc.parkpatch +++ b/data/scenario_patches/0d53bdc.parkpatch @@ -3,7 +3,6 @@ "sha256": "0d53bdc076d75d86b31b6b3e6948e3d45671cf5aeff6b2b3c07a7618923223f5", "land_ownership": { "construction_rights_available": { - "cannot_downgrade": true, "coordinates": [ [ 147, 132 ], [ 82, 110 ], [ 83, 110 ], @@ -23,7 +22,6 @@ ] }, "available": { - "cannot_downgrade": true, "coordinates": [ [ 45, 151 ], [ 55, 137 ], diff --git a/data/scenario_patches/1340eef.parkpatch b/data/scenario_patches/1340eef.parkpatch index dadaefeb0d..097e54999a 100644 --- a/data/scenario_patches/1340eef.parkpatch +++ b/data/scenario_patches/1340eef.parkpatch @@ -9,7 +9,6 @@ ] }, "available": { - "cannot_downgrade": true, "coordinates": [ [ 63, 97 ], [ 64, 97 ] diff --git a/data/scenario_patches/13e81f2.parkpatch b/data/scenario_patches/13e81f2.parkpatch index 603cc68078..8c185215f6 100644 --- a/data/scenario_patches/13e81f2.parkpatch +++ b/data/scenario_patches/13e81f2.parkpatch @@ -8,7 +8,6 @@ ] }, "construction_rights_owned": { - "cannot_downgrade": true, "coordinates": [ [ 11, 64 ], [ 11, 65 ], [ 11, 66 ], [ 13, 68 ], [ 13, 69 ], diff --git a/data/scenario_patches/14b1d20.parkpatch b/data/scenario_patches/14b1d20.parkpatch index a58faf611d..7185564e00 100644 --- a/data/scenario_patches/14b1d20.parkpatch +++ b/data/scenario_patches/14b1d20.parkpatch @@ -20,14 +20,12 @@ ] }, "construction_rights_owned": { - "cannot_downgrade": true, "coordinates": [ [ 2, 30 ], [ 3, 30 ], [ 4, 30 ], [ 25, 23 ] ] }, "construction_rights_available": { - "cannot_downgrade": true, "coordinates": [ [ 26, 116 ], [ 61, 110 ], @@ -35,7 +33,6 @@ ] }, "available": { - "cannot_downgrade": true, "coordinates": [ [ 6, 100 ], [ 7, 100 ], [ 8, 100 ], [ 9, 100 ], [ 10, 100 ], [ 15, 100 ], [ 16, 100 ], [ 6, 101 ], [ 7, 101 ], [ 8, 101 ], [ 9, 101 ], [ 10, 101 ], [ 15, 101 ], [ 16, 101 ], diff --git a/data/scenario_patches/17f0c69.parkpatch b/data/scenario_patches/17f0c69.parkpatch index 7346e4606e..a150980ae8 100644 --- a/data/scenario_patches/17f0c69.parkpatch +++ b/data/scenario_patches/17f0c69.parkpatch @@ -9,7 +9,6 @@ ] }, "available": { - "cannot_downgrade": true, "coordinates": [ [ 90, 8 ], [ 2, 26 ], [ 2, 27 ], diff --git a/data/scenario_patches/229cf57.parkpatch b/data/scenario_patches/229cf57.parkpatch index 59ded9ee51..d7465613de 100644 --- a/data/scenario_patches/229cf57.parkpatch +++ b/data/scenario_patches/229cf57.parkpatch @@ -3,7 +3,6 @@ "sha256": "229cf5777d1b90034f3b711eed45c4d6ab9a368a466fd4db758a1eac21632a35", "land_ownership": { "construction_rights_owned": { - "cannot_downgrade": true, "coordinates": [ [ 85, 80 ], [ 86, 79 ], diff --git a/data/scenario_patches/2696a05.parkpatch b/data/scenario_patches/2696a05.parkpatch index 51ce85f405..391ddbd0f9 100644 --- a/data/scenario_patches/2696a05.parkpatch +++ b/data/scenario_patches/2696a05.parkpatch @@ -13,7 +13,6 @@ ] }, "construction_rights_owned": { - "cannot_downgrade": true, "coordinates": [ [ 140, 58 ], [ 141, 58 ], [ 142, 58 ], [ 143, 58 ], [ 144, 58 ], [ 145, 58 ], [ 146, 58 ], [ 147, 58 ], [ 140, 74 ], [ 141, 74 ], [ 142, 74 ], [ 143, 74 ], [ 144, 74 ], [ 145, 74 ], [ 146, 74 ], [ 147, 74 ] diff --git a/data/scenario_patches/32716c0.parkpatch b/data/scenario_patches/32716c0.parkpatch index 438c0ff761..2561ace654 100644 --- a/data/scenario_patches/32716c0.parkpatch +++ b/data/scenario_patches/32716c0.parkpatch @@ -3,7 +3,6 @@ "sha256": "32716c025704bdb8ccae3e595ed7b6b3da06896bea9c2a5f739cda36c0600385", "land_ownership": { "available": { - "cannot_downgrade": true, "coordinates": [ [ 42, 147 ], [ 58, 122 ], @@ -11,7 +10,6 @@ ] }, "construction_rights_available": { - "cannot_downgrade": true, "coordinates": [ [ 128, 90 ], [ 135, 91 ], [ 136, 91 ], @@ -23,7 +21,6 @@ ] }, "construction_rights_owned": { - "cannot_downgrade": true, "coordinates": [ [ 98, 64 ], [ 98, 65 ], [ 98, 66 ], [ 96, 84 ] diff --git a/data/scenario_patches/33bac63.parkpatch b/data/scenario_patches/33bac63.parkpatch index 13aefce65b..7f6e4ba3e4 100644 --- a/data/scenario_patches/33bac63.parkpatch +++ b/data/scenario_patches/33bac63.parkpatch @@ -3,7 +3,6 @@ "sha256": "33bac63d13aa7513ac8536d865cbc6fa4a2189c79e3943869e6380072e71bce7", "land_ownership": { "available": { - "cannot_downgrade": true, "coordinates": [ [ 58, 77 ], [ 62, 81 ], [ 63, 81 ], [ 64, 81 ], diff --git a/data/scenario_patches/4ec6b38.parkpatch b/data/scenario_patches/4ec6b38.parkpatch index 1d1b73c98c..d53932bb42 100644 --- a/data/scenario_patches/4ec6b38.parkpatch +++ b/data/scenario_patches/4ec6b38.parkpatch @@ -3,7 +3,6 @@ "sha256": "4ec6b381faf6b576f38c59a16ee441b9ed680e4bb38a9320e58e65dfd3f12c94", "land_ownership": { "construction_rights_owned": { - "cannot_downgrade": true, "coordinates": [ [ 28, 95 ] ] diff --git a/data/scenario_patches/59aea26.parkpatch b/data/scenario_patches/59aea26.parkpatch index 443be416fe..934c162da8 100644 --- a/data/scenario_patches/59aea26.parkpatch +++ b/data/scenario_patches/59aea26.parkpatch @@ -3,7 +3,6 @@ "sha256": "59aea26b8fe26a4154114be8514ee70a6f31d981c5b07429572021d6ce5e69ad", "land_ownership": { "available": { - "cannot_downgrade": true, "coordinates": [ [ 43, 65 ], [ 69, 41 ], diff --git a/data/scenario_patches/6226822.parkpatch b/data/scenario_patches/6226822.parkpatch index a961f9abc7..8b22f30271 100644 --- a/data/scenario_patches/6226822.parkpatch +++ b/data/scenario_patches/6226822.parkpatch @@ -3,7 +3,6 @@ "sha256": "62268223a1539c92b7494973263457c9e9bf386c1e68eef21d377854f0ac0e38", "land_ownership": { "construction_rights_owned": { - "cannot_downgrade": true, "coordinates": [ [ 85, 80 ], [ 86, 79 ], diff --git a/data/scenario_patches/6633d17.parkpatch b/data/scenario_patches/6633d17.parkpatch index faf6557268..0820bf075e 100644 --- a/data/scenario_patches/6633d17.parkpatch +++ b/data/scenario_patches/6633d17.parkpatch @@ -3,7 +3,6 @@ "sha256": "6633d176c5614ed4cae8e4f83d4328f87fa73979d6fcf81378ba836185e815ba", "land_ownership": { "available": { - "cannot_downgrade": true, "coordinates": [ [ 103, 24 ], [ 104, 25 ], diff --git a/data/scenario_patches/6ce84b8.parkpatch b/data/scenario_patches/6ce84b8.parkpatch index 62f1a91f36..16745c27ba 100644 --- a/data/scenario_patches/6ce84b8.parkpatch +++ b/data/scenario_patches/6ce84b8.parkpatch @@ -3,7 +3,6 @@ "sha256": "6ce84b809471ba539d94d4198832b848b47d81316f5c8cc1297d8328299b4c52", "land_ownership": { "available": { - "cannot_downgrade": true, "coordinates": [ [ 42, 147 ], [ 58, 122 ], @@ -11,7 +10,6 @@ ] }, "construction_rights_available": { - "cannot_downgrade": true, "coordinates": [ [ 128, 90 ], [ 135, 91 ], [ 136, 91 ], @@ -23,7 +21,6 @@ ] }, "construction_rights_owned": { - "cannot_downgrade": true, "coordinates": [ [ 98, 64 ], [ 98, 65 ], [ 98, 66 ], [ 96, 84 ] diff --git a/data/scenario_patches/70ce3e1.parkpatch b/data/scenario_patches/70ce3e1.parkpatch index eb815ff7f7..23071c64aa 100644 --- a/data/scenario_patches/70ce3e1.parkpatch +++ b/data/scenario_patches/70ce3e1.parkpatch @@ -8,7 +8,6 @@ ] }, "construction_rights_owned": { - "cannot_downgrade": true, "coordinates": [ [ 11, 64 ], [ 11, 65 ], [ 11, 66 ], [ 13, 68 ], [ 13, 69 ], diff --git a/data/scenario_patches/72cf3d2.parkpatch b/data/scenario_patches/72cf3d2.parkpatch index adf5aca5ee..b4592b80a4 100644 --- a/data/scenario_patches/72cf3d2.parkpatch +++ b/data/scenario_patches/72cf3d2.parkpatch @@ -20,7 +20,6 @@ ] }, "available": { - "cannot_downgrade": true, "coordinates": [ [ 49, 99 ], [ 50, 99 ], diff --git a/data/scenario_patches/7f38f1b.parkpatch b/data/scenario_patches/7f38f1b.parkpatch index 0220253bfc..a282000c56 100644 --- a/data/scenario_patches/7f38f1b.parkpatch +++ b/data/scenario_patches/7f38f1b.parkpatch @@ -3,7 +3,6 @@ "sha256": "7f38f1bf88c2d583aa795f0d0abbbe6cf9cccb7872ff8017f1c5d83ad95886df", "land_ownership": { "available": { - "cannot_downgrade": true, "coordinates": [ [ 104, 190 ], [ 105, 190 ], [ 108, 197 ], [ 75, 167 ], diff --git a/data/scenario_patches/7ffdb44.parkpatch b/data/scenario_patches/7ffdb44.parkpatch index b5b15e9752..db6206427e 100644 --- a/data/scenario_patches/7ffdb44.parkpatch +++ b/data/scenario_patches/7ffdb44.parkpatch @@ -3,7 +3,6 @@ "sha256": "7ffdb448eccc8e24026e820f5e1d5649459b5ee5d469afdaa73e87d31475f2b0", "land_ownership": { "available": { - "cannot_downgrade": true, "coordinates": [ [ 104, 190 ], [ 105, 190 ], [ 108, 197 ], [ 75, 167 ], diff --git a/data/scenario_patches/8108298.parkpatch b/data/scenario_patches/8108298.parkpatch index 354ba57a26..bebd225afa 100644 --- a/data/scenario_patches/8108298.parkpatch +++ b/data/scenario_patches/8108298.parkpatch @@ -20,14 +20,12 @@ ] }, "construction_rights_owned": { - "cannot_downgrade": true, "coordinates": [ [ 2, 30 ], [ 3, 30 ], [ 4, 30 ], [ 25, 23 ] ] }, "construction_rights_available": { - "cannot_downgrade": true, "coordinates": [ [ 26, 116 ], [ 61, 110 ], @@ -35,7 +33,6 @@ ] }, "available": { - "cannot_downgrade": true, "coordinates": [ [ 6, 100 ], [ 7, 100 ], [ 8, 100 ], [ 9, 100 ], [ 10, 100 ], [ 15, 100 ], [ 16, 100 ], [ 6, 101 ], [ 7, 101 ], [ 8, 101 ], [ 9, 101 ], [ 10, 101 ], [ 15, 101 ], [ 16, 101 ], diff --git a/data/scenario_patches/825134a.parkpatch b/data/scenario_patches/825134a.parkpatch index 7f1e15dad5..d2eac3650c 100644 --- a/data/scenario_patches/825134a.parkpatch +++ b/data/scenario_patches/825134a.parkpatch @@ -3,7 +3,6 @@ "sha256": "825134aad8365e12efba50b58f67e96b729640e6ff4007dfe5dffe99c167531f", "land_ownership": { "available": { - "cannot_downgrade": true, "coordinates": [ [ 104, 64 ], [ 111, 114 ], [ 112, 114 ] diff --git a/data/scenario_patches/82aeaf6.parkpatch b/data/scenario_patches/82aeaf6.parkpatch index d8055105d0..9e97487f7f 100644 --- a/data/scenario_patches/82aeaf6.parkpatch +++ b/data/scenario_patches/82aeaf6.parkpatch @@ -13,7 +13,6 @@ ] }, "construction_rights_owned": { - "cannot_downgrade": true, "coordinates": [ [ 140, 58 ], [ 141, 58 ], [ 142, 58 ], [ 143, 58 ], [ 144, 58 ], [ 145, 58 ], [ 146, 58 ], [ 147, 58 ], [ 141, 74 ], [ 142, 74 ], [ 143, 74 ], [ 144, 74 ], [ 145, 74 ], [ 146, 74 ], [ 147, 74 ] diff --git a/data/scenario_patches/8965a5c.parkpatch b/data/scenario_patches/8965a5c.parkpatch index b71cc99e80..b0b30027c8 100644 --- a/data/scenario_patches/8965a5c.parkpatch +++ b/data/scenario_patches/8965a5c.parkpatch @@ -3,7 +3,6 @@ "sha256": "8965a5c3b498dec016e6ac317616426ed84b0e9145f6c1d752c9942479758cce", "land_ownership": { "available": { - "cannot_downgrade": true, "coordinates": [ [ 112, 33 ], [ 112, 34 ], [ 113, 117 ], [ 114, 117 ], [ 115, 117 ], [ 116, 117 ], [ 117, 117 ], diff --git a/data/scenario_patches/9c8b7cf.parkpatch b/data/scenario_patches/9c8b7cf.parkpatch index 980880c677..67f12154ec 100644 --- a/data/scenario_patches/9c8b7cf.parkpatch +++ b/data/scenario_patches/9c8b7cf.parkpatch @@ -14,7 +14,6 @@ ] }, "construction_rights_owned": { - "cannot_downgrade": true, "coordinates": [ [ 86, 69 ], [ 86, 70 ] ] diff --git a/data/scenario_patches/a04b536.parkpatch b/data/scenario_patches/a04b536.parkpatch index e469e4c18d..4ebb932071 100644 --- a/data/scenario_patches/a04b536.parkpatch +++ b/data/scenario_patches/a04b536.parkpatch @@ -3,7 +3,6 @@ "sha256": "a04b536d83b556f5af116e967f7a5759c9cdc5dd2172da9ceffbd00458f13fef", "land_ownership": { "available": { - "cannot_downgrade": true, "coordinates": [ [ 104, 64 ], [ 111, 114 ], [ 112, 114 ] diff --git a/data/scenario_patches/aaad3e7.parkpatch b/data/scenario_patches/aaad3e7.parkpatch index 2fe9bfbb4c..9245546c55 100644 --- a/data/scenario_patches/aaad3e7.parkpatch +++ b/data/scenario_patches/aaad3e7.parkpatch @@ -20,7 +20,6 @@ ] }, "available": { - "cannot_downgrade": true, "coordinates": [ [ 49, 99 ], [ 50, 99 ], diff --git a/data/scenario_patches/b43b07e.parkpatch b/data/scenario_patches/b43b07e.parkpatch index fbc0c21460..cb2291988f 100644 --- a/data/scenario_patches/b43b07e.parkpatch +++ b/data/scenario_patches/b43b07e.parkpatch @@ -3,7 +3,6 @@ "sha256": "b43b07e47f2e6cb762a86760ac0242595617aa59bfd9811cec7e2dcc121ae367", "land_ownership": { "available": { - "cannot_downgrade": true, "coordinates": [ [ 58, 77 ], [ 62, 81 ], [ 63, 81 ], [ 64, 81 ], diff --git a/data/scenario_patches/b4728d2.parkpatch b/data/scenario_patches/b4728d2.parkpatch index efe118f495..ab31e6a3ee 100644 --- a/data/scenario_patches/b4728d2.parkpatch +++ b/data/scenario_patches/b4728d2.parkpatch @@ -9,7 +9,6 @@ ] }, "available": { - "cannot_downgrade": true, "coordinates": [ [ 63, 97 ], [ 64, 97 ] diff --git a/data/scenario_patches/c1d4056.parkpatch b/data/scenario_patches/c1d4056.parkpatch index dbfa0437f3..7f291735a1 100644 --- a/data/scenario_patches/c1d4056.parkpatch +++ b/data/scenario_patches/c1d4056.parkpatch @@ -3,7 +3,6 @@ "sha256": "c1d405642b698e0af9d23d3a23afe42f0c7d138c1398254a1c581608f79a3db3", "land_ownership": { "available": { - "cannot_downgrade": true, "coordinates": [ [ 104, 190 ], [ 105, 190 ], [ 108, 197 ], [ 75, 167 ], diff --git a/data/scenario_patches/c82272a.parkpatch b/data/scenario_patches/c82272a.parkpatch index 7d8c7eda46..a75e9e8fef 100644 --- a/data/scenario_patches/c82272a.parkpatch +++ b/data/scenario_patches/c82272a.parkpatch @@ -3,7 +3,6 @@ "sha256": "c82272a1e966e54863b3b90ba4c90e37ed8ef8b99253d284bb7cc56f9590d97a", "land_ownership": { "available": { - "cannot_downgrade": true, "coordinates": [ [ 104, 190 ], [ 105, 190 ], [ 108, 197 ], [ 75, 167 ], diff --git a/data/scenario_patches/d055327.parkpatch b/data/scenario_patches/d055327.parkpatch index 168939cbec..dac91ddcba 100644 --- a/data/scenario_patches/d055327.parkpatch +++ b/data/scenario_patches/d055327.parkpatch @@ -3,7 +3,6 @@ "sha256": "d0553271f6fe9ff7bb6a5e7e5735c553340dfcdfb103d5ff3e332d4841938ddd", "land_ownership": { "available": { - "cannot_downgrade": true, "coordinates": [ [ 112, 33 ], [ 112, 34 ], [ 113, 117 ], [ 114, 117 ], [ 115, 117 ], [ 116, 117 ], [ 117, 117 ], diff --git a/data/scenario_patches/d4307c3.parkpatch b/data/scenario_patches/d4307c3.parkpatch index d5f0e38670..91e782ec45 100644 --- a/data/scenario_patches/d4307c3.parkpatch +++ b/data/scenario_patches/d4307c3.parkpatch @@ -9,7 +9,6 @@ ] }, "available": { - "cannot_downgrade": true, "coordinates": [ [ 90, 8 ], [ 2, 26 ], [ 2, 27 ], diff --git a/data/scenario_patches/d48bbfe.parkpatch b/data/scenario_patches/d48bbfe.parkpatch index 026a61573a..1989490405 100644 --- a/data/scenario_patches/d48bbfe.parkpatch +++ b/data/scenario_patches/d48bbfe.parkpatch @@ -3,7 +3,6 @@ "sha256": "d48bbfe4833347dfbf5befe63eb3795df3bce36cdc9152048ee7851e36d45ad9", "land_ownership": { "available": { - "cannot_downgrade": true, "coordinates": [ [ 13, 95 ], [ 80, 31 ], diff --git a/data/scenario_patches/e57112f.parkpatch b/data/scenario_patches/e57112f.parkpatch index 2917703045..895095d51c 100644 --- a/data/scenario_patches/e57112f.parkpatch +++ b/data/scenario_patches/e57112f.parkpatch @@ -3,7 +3,6 @@ "sha256": "e57112f58a7710d3e80242e867fb65d720e0cd3b67bebfd6b7df8b404fc7ea2b", "land_ownership": { "construction_rights_available": { - "cannot_downgrade": true, "coordinates": [ [ 147, 132 ], [ 82, 110 ], [ 83, 110 ], @@ -23,7 +22,6 @@ ] }, "available": { - "cannot_downgrade": true, "coordinates": [ [ 45, 151 ], [ 55, 137 ], diff --git a/data/scenario_patches/ef0c020.parkpatch b/data/scenario_patches/ef0c020.parkpatch index e71a033e96..d10eff7e21 100644 --- a/data/scenario_patches/ef0c020.parkpatch +++ b/data/scenario_patches/ef0c020.parkpatch @@ -3,7 +3,6 @@ "sha256": "ef0c0202510d84cf4f1ad198ae43b6bc00d5af2d664c60cdb38de632ea25db51", "land_ownership": { "available": { - "cannot_downgrade": true, "coordinates": [ [ 103, 24 ], [ 104, 25 ], diff --git a/data/scenario_patches/f4b1675.parkpatch b/data/scenario_patches/f4b1675.parkpatch index 9a8c720326..fcb275dc6a 100644 --- a/data/scenario_patches/f4b1675.parkpatch +++ b/data/scenario_patches/f4b1675.parkpatch @@ -3,7 +3,6 @@ "sha256": "f4b1675c8ccb31d422c1b7b8bd5336b2bfefa94d702aeae1859ea95ecda2c29d", "land_ownership": { "available": { - "cannot_downgrade": true, "coordinates": [ [ 43, 65 ], [ 69, 41 ], diff --git a/data/scenario_patches/f71c978.parkpatch b/data/scenario_patches/f71c978.parkpatch index 254ebc6803..3dd03c407a 100644 --- a/data/scenario_patches/f71c978.parkpatch +++ b/data/scenario_patches/f71c978.parkpatch @@ -3,7 +3,6 @@ "sha256": "f71c9788ab40ac591d5c96397fad8b12d9d3ac7830eac53f6ee5dc024c8c2bcf", "land_ownership": { "available": { - "cannot_downgrade": true, "coordinates": [ [ 13, 95 ], [ 80, 31 ], diff --git a/data/scenario_patches/f9762d2.parkpatch b/data/scenario_patches/f9762d2.parkpatch index 722844374d..1fbb927895 100644 --- a/data/scenario_patches/f9762d2.parkpatch +++ b/data/scenario_patches/f9762d2.parkpatch @@ -3,7 +3,6 @@ "sha256": "f9762d2189a29f2f3dea2a2ec1503d8aa91567c0d604d2775d493d4b7dee3ba2", "land_ownership": { "construction_rights_owned": { - "cannot_downgrade": true, "coordinates": [ [ 28, 95 ] ] diff --git a/data/scenario_patches/ff52987.parkpatch b/data/scenario_patches/ff52987.parkpatch index 1644c8e522..33bc4b6ff6 100644 --- a/data/scenario_patches/ff52987.parkpatch +++ b/data/scenario_patches/ff52987.parkpatch @@ -3,7 +3,6 @@ "sha256": "ff52987c70ea89deb5c1b8445b7a689c8b83e22b5aef18bb4bbd07375b27f47e", "land_ownership": { "construction_rights_owned": { - "cannot_downgrade": true, "coordinates": [ [ 44, 51 ], [ 47, 50 ], diff --git a/distribution/changelog.txt b/distribution/changelog.txt index d8b5bbfefe..42d497dfee 100644 --- a/distribution/changelog.txt +++ b/distribution/changelog.txt @@ -1,6 +1,7 @@ 0.4.15 (in development) ------------------------------------------------------------------------ - Feature: [#15642] Track design placement can now use contruction modifier keys (ctrl/shift). +- Change: [#22596] Land ownership fixes described by .parkpatch files are now only considered on scenarios. - Fix: [#2614] The colour tab of the ride window does not hide invisible cars (original bug). - Fix: [#21959] “Save this before...?” message does not appear when selecting “New Game”. - Fix: [#22231] Invalid object version can cause a crash. diff --git a/src/openrct2/rct1/S4Importer.cpp b/src/openrct2/rct1/S4Importer.cpp index 30a1c1fc07..fa02a19652 100644 --- a/src/openrct2/rct1/S4Importer.cpp +++ b/src/openrct2/rct1/S4Importer.cpp @@ -193,7 +193,10 @@ namespace OpenRCT2::RCT1 ImportScenarioObjective(gameState); ImportSavedView(gameState); - RCT12::FetchAndApplyScenarioPatch(_s4Path, _isScenario); + if (_isScenario) + { + RCT12::FetchAndApplyScenarioPatch(_s4Path); + } FixNextGuestNumber(gameState); CountBlockSections(); SetDefaultNames(); diff --git a/src/openrct2/rct12/ScenarioPatcher.cpp b/src/openrct2/rct12/ScenarioPatcher.cpp index 2b5c82c9e3..8206f53838 100644 --- a/src/openrct2/rct12/ScenarioPatcher.cpp +++ b/src/openrct2/rct12/ScenarioPatcher.cpp @@ -43,7 +43,6 @@ static const std::string s_fullSHAKey = "sha256"; static const std::string s_coordinatesKey = "coordinates"; // Land Ownership Keys -static const std::string s_cannotDowngradeKey = "cannot_downgrade"; static const std::string s_landOwnershipKey = "land_ownership"; // Water fix keys @@ -132,15 +131,12 @@ static void ApplyLandOwnershipFixes(const json_t& landOwnershipFixes, int owners } auto ownershipParameters = landOwnershipFixes[ownershipTypeKey]; - const bool cannotDowngrade = ownershipParameters.contains(s_cannotDowngradeKey) - ? OpenRCT2::Json::GetBoolean(ownershipParameters[s_cannotDowngradeKey], false) - : false; auto coordinatesVector = getCoordinates(ownershipParameters); if (s_dryRun) { return; } - FixLandOwnershipTilesWithOwnership(coordinatesVector, ownershipType, cannotDowngrade); + FixLandOwnershipTilesWithOwnership(coordinatesVector, ownershipType); } static void ApplyLandOwnershipFixes(const json_t& scenarioPatch) @@ -457,7 +453,7 @@ static bool ValidateSHA256(const json_t& scenarioPatch, u8string_view scenarioHa return scenarioSHA == scenarioHash; } -void OpenRCT2::RCT12::ApplyScenarioPatch(u8string_view scenarioPatchFile, u8string scenarioSHA, bool isScenario) +void OpenRCT2::RCT12::ApplyScenarioPatch(u8string_view scenarioPatchFile, u8string scenarioSHA) { auto scenarioPatch = OpenRCT2::Json::ReadFromFile(scenarioPatchFile); if (!ValidateSHA256(scenarioPatch, scenarioSHA)) @@ -465,17 +461,13 @@ void OpenRCT2::RCT12::ApplyScenarioPatch(u8string_view scenarioPatchFile, u8stri OpenRCT2::Guard::Assert(0, "Invalid full SHA256. Check for shortened SHA collision"); return; } - // TODO: Land ownership is applied even when loading saved scenario. Should it? ApplyLandOwnershipFixes(scenarioPatch); - if (isScenario) - { - ApplyWaterFixes(scenarioPatch); - ApplyTileFixes(scenarioPatch); - ApplyRideFixes(scenarioPatch); - } + ApplyWaterFixes(scenarioPatch); + ApplyTileFixes(scenarioPatch); + ApplyRideFixes(scenarioPatch); } -void OpenRCT2::RCT12::FetchAndApplyScenarioPatch(u8string_view scenarioPath, bool isScenario) +void OpenRCT2::RCT12::FetchAndApplyScenarioPatch(u8string_view scenarioPath) { if (scenarioPath.empty()) { @@ -486,7 +478,7 @@ void OpenRCT2::RCT12::FetchAndApplyScenarioPatch(u8string_view scenarioPath, boo auto patchPath = GetPatchFileName(scenarioSHA); if (OpenRCT2::File::Exists(patchPath)) { - ApplyScenarioPatch(patchPath, scenarioSHA, isScenario); + ApplyScenarioPatch(patchPath, scenarioSHA); } } diff --git a/src/openrct2/rct12/ScenarioPatcher.h b/src/openrct2/rct12/ScenarioPatcher.h index 42f8a8aed8..49fd2271d2 100644 --- a/src/openrct2/rct12/ScenarioPatcher.h +++ b/src/openrct2/rct12/ScenarioPatcher.h @@ -13,8 +13,8 @@ namespace OpenRCT2::RCT12 { - void FetchAndApplyScenarioPatch(u8string_view scenarioPath, bool isScenario); - void ApplyScenarioPatch(u8string_view scenarioPatchFile, u8string scenarioSHA, bool isScenario); + void FetchAndApplyScenarioPatch(u8string_view scenarioPath); + void ApplyScenarioPatch(u8string_view scenarioPatchFile, u8string scenarioSHA); /*SetDryRun should be used only for testing*/ void SetDryRun(bool enable); } // namespace OpenRCT2::RCT12 diff --git a/src/openrct2/rct2/S6Importer.cpp b/src/openrct2/rct2/S6Importer.cpp index a6e6ba6ed5..4c5b2eef5a 100644 --- a/src/openrct2/rct2/S6Importer.cpp +++ b/src/openrct2/rct2/S6Importer.cpp @@ -578,7 +578,10 @@ namespace OpenRCT2::RCT2 gameState.Park.Name = GetUserString(_s6.ParkName); - OpenRCT2::RCT12::FetchAndApplyScenarioPatch(_s6Path, _isScenario); + if (_isScenario) + { + OpenRCT2::RCT12::FetchAndApplyScenarioPatch(_s6Path); + } ResearchDetermineFirstOfType(); UpdateConsolidatedPatrolAreas(); diff --git a/src/openrct2/world/Map.cpp b/src/openrct2/world/Map.cpp index c491b4a398..73e645dcbd 100644 --- a/src/openrct2/world/Map.cpp +++ b/src/openrct2/world/Map.cpp @@ -2159,16 +2159,13 @@ uint16_t CheckMaxAllowableLandRightsForTile(const CoordsXYZ& tileMapPos) return destOwnership; } -void FixLandOwnershipTilesWithOwnership(std::vector tiles, uint8_t ownership, bool doNotDowngrade) +void FixLandOwnershipTilesWithOwnership(std::vector tiles, uint8_t ownership) { for (const auto& tile : tiles) { auto surfaceElement = MapGetSurfaceElementAt(tile); if (surfaceElement != nullptr) { - if (doNotDowngrade && surfaceElement->GetOwnership() == OWNERSHIP_OWNED) - continue; - surfaceElement->SetOwnership(ownership); Park::UpdateFencesAroundTile(tile.ToCoordsXY()); } diff --git a/src/openrct2/world/Map.h b/src/openrct2/world/Map.h index 2e7466b57f..c0ce1211b9 100644 --- a/src/openrct2/world/Map.h +++ b/src/openrct2/world/Map.h @@ -235,6 +235,6 @@ bool MapIsLocationAtEdge(const CoordsXY& loc); uint16_t CheckMaxAllowableLandRightsForTile(const CoordsXYZ& tileMapPos); -void FixLandOwnershipTilesWithOwnership(std::vector tiles, uint8_t ownership, bool doNotDowngrade = false); +void FixLandOwnershipTilesWithOwnership(std::vector tiles, uint8_t ownership); MapRange ClampRangeWithinMap(const MapRange& range); void ShiftMap(const TileCoordsXY& amount); diff --git a/test/tests/ScenarioPatcherTests.cpp b/test/tests/ScenarioPatcherTests.cpp index 30881f7d48..82ccbb3c3c 100644 --- a/test/tests/ScenarioPatcherTests.cpp +++ b/test/tests/ScenarioPatcherTests.cpp @@ -42,7 +42,7 @@ TEST(FetchAndApplyScenarioPatch, expected_json_format) auto path = entry.path().u8string(); if (OpenRCT2::String::EndsWith(path, ".parkpatch")) { - OpenRCT2::RCT12::ApplyScenarioPatch(path, dummySHA, true); + OpenRCT2::RCT12::ApplyScenarioPatch(path, dummySHA); } } SUCCEED();