Merge lp:~widelands-dev/widelands/workarea-fixes into lp:widelands

Proposed by Benedikt Straub
Status: Merged
Merged at revision: 9158
Proposed branch: lp:~widelands-dev/widelands/workarea-fixes
Merge into: lp:widelands
Diff against target: 1423 lines (+477/-8)
79 files modified
data/tribes/buildings/productionsites/atlanteans/armorsmithy/init.lua (+12/-0)
data/tribes/buildings/productionsites/atlanteans/blackroot_farm/init.lua (+6/-0)
data/tribes/buildings/productionsites/atlanteans/coalmine/init.lua (+4/-0)
data/tribes/buildings/productionsites/atlanteans/crystalmine/init.lua (+4/-0)
data/tribes/buildings/productionsites/atlanteans/farm/init.lua (+6/-0)
data/tribes/buildings/productionsites/atlanteans/fishbreeders_house/init.lua (+5/-0)
data/tribes/buildings/productionsites/atlanteans/fishers_house/init.lua (+5/-0)
data/tribes/buildings/productionsites/atlanteans/foresters_house/init.lua (+7/-0)
data/tribes/buildings/productionsites/atlanteans/goldmine/init.lua (+4/-0)
data/tribes/buildings/productionsites/atlanteans/hunters_house/init.lua (+4/-0)
data/tribes/buildings/productionsites/atlanteans/ironmine/init.lua (+4/-0)
data/tribes/buildings/productionsites/atlanteans/quarry/init.lua (+4/-0)
data/tribes/buildings/productionsites/atlanteans/shipyard/init.lua (+4/-0)
data/tribes/buildings/productionsites/atlanteans/well/init.lua (+4/-0)
data/tribes/buildings/productionsites/atlanteans/woodcutters_house/init.lua (+5/-0)
data/tribes/buildings/productionsites/barbarians/coalmine/init.lua (+6/-0)
data/tribes/buildings/productionsites/barbarians/coalmine_deep/init.lua (+6/-0)
data/tribes/buildings/productionsites/barbarians/coalmine_deeper/init.lua (+6/-0)
data/tribes/buildings/productionsites/barbarians/farm/init.lua (+6/-0)
data/tribes/buildings/productionsites/barbarians/fishers_hut/init.lua (+4/-0)
data/tribes/buildings/productionsites/barbarians/gamekeepers_hut/init.lua (+5/-0)
data/tribes/buildings/productionsites/barbarians/goldmine/init.lua (+6/-0)
data/tribes/buildings/productionsites/barbarians/goldmine_deep/init.lua (+6/-0)
data/tribes/buildings/productionsites/barbarians/goldmine_deeper/init.lua (+6/-0)
data/tribes/buildings/productionsites/barbarians/granitemine/init.lua (+4/-0)
data/tribes/buildings/productionsites/barbarians/hunters_hut/init.lua (+5/-0)
data/tribes/buildings/productionsites/barbarians/ironmine/init.lua (+6/-0)
data/tribes/buildings/productionsites/barbarians/ironmine_deep/init.lua (+6/-0)
data/tribes/buildings/productionsites/barbarians/ironmine_deeper/init.lua (+6/-0)
data/tribes/buildings/productionsites/barbarians/lumberjacks_hut/init.lua (+5/-0)
data/tribes/buildings/productionsites/barbarians/quarry/init.lua (+4/-0)
data/tribes/buildings/productionsites/barbarians/rangers_hut/init.lua (+7/-0)
data/tribes/buildings/productionsites/barbarians/reed_yard/init.lua (+6/-0)
data/tribes/buildings/productionsites/barbarians/shipyard/init.lua (+4/-0)
data/tribes/buildings/productionsites/barbarians/well/init.lua (+4/-0)
data/tribes/buildings/productionsites/empire/coalmine/init.lua (+5/-0)
data/tribes/buildings/productionsites/empire/coalmine_deep/init.lua (+5/-0)
data/tribes/buildings/productionsites/empire/farm/init.lua (+6/-0)
data/tribes/buildings/productionsites/empire/fishers_house/init.lua (+4/-0)
data/tribes/buildings/productionsites/empire/foresters_house/init.lua (+7/-0)
data/tribes/buildings/productionsites/empire/goldmine/init.lua (+5/-0)
data/tribes/buildings/productionsites/empire/goldmine_deep/init.lua (+5/-0)
data/tribes/buildings/productionsites/empire/hunters_house/init.lua (+4/-0)
data/tribes/buildings/productionsites/empire/ironmine/init.lua (+5/-0)
data/tribes/buildings/productionsites/empire/ironmine_deep/init.lua (+5/-0)
data/tribes/buildings/productionsites/empire/lumberjacks_house/init.lua (+5/-0)
data/tribes/buildings/productionsites/empire/marblemine/init.lua (+5/-0)
data/tribes/buildings/productionsites/empire/marblemine_deep/init.lua (+5/-0)
data/tribes/buildings/productionsites/empire/quarry/init.lua (+4/-0)
data/tribes/buildings/productionsites/empire/shipyard/init.lua (+4/-0)
data/tribes/buildings/productionsites/empire/vineyard/init.lua (+6/-0)
data/tribes/buildings/productionsites/empire/well/init.lua (+4/-0)
data/tribes/buildings/productionsites/frisians/aqua_farm/init.lua (+5/-0)
data/tribes/buildings/productionsites/frisians/beekeepers_house/init.lua (+7/-0)
data/tribes/buildings/productionsites/frisians/berry_farm/init.lua (+10/-0)
data/tribes/buildings/productionsites/frisians/clay_pit/init.lua (+9/-0)
data/tribes/buildings/productionsites/frisians/coalmine/init.lua (+5/-0)
data/tribes/buildings/productionsites/frisians/coalmine_deep/init.lua (+5/-0)
data/tribes/buildings/productionsites/frisians/collectors_house/init.lua (+5/-0)
data/tribes/buildings/productionsites/frisians/farm/init.lua (+9/-0)
data/tribes/buildings/productionsites/frisians/fishers_house/init.lua (+4/-0)
data/tribes/buildings/productionsites/frisians/foresters_house/init.lua (+9/-0)
data/tribes/buildings/productionsites/frisians/goldmine/init.lua (+5/-0)
data/tribes/buildings/productionsites/frisians/goldmine_deep/init.lua (+5/-0)
data/tribes/buildings/productionsites/frisians/hunters_house/init.lua (+4/-0)
data/tribes/buildings/productionsites/frisians/ironmine/init.lua (+5/-0)
data/tribes/buildings/productionsites/frisians/ironmine_deep/init.lua (+5/-0)
data/tribes/buildings/productionsites/frisians/quarry/init.lua (+4/-0)
data/tribes/buildings/productionsites/frisians/reed_farm/init.lua (+9/-0)
data/tribes/buildings/productionsites/frisians/rockmine/init.lua (+5/-0)
data/tribes/buildings/productionsites/frisians/rockmine_deep/init.lua (+5/-0)
data/tribes/buildings/productionsites/frisians/shipyard/init.lua (+4/-0)
data/tribes/buildings/productionsites/frisians/well/init.lua (+4/-0)
data/tribes/buildings/productionsites/frisians/woodcutters_house/init.lua (+5/-0)
data/txts/developers.json (+2/-2)
src/logic/map_objects/tribes/productionsite.cc (+20/-0)
src/logic/map_objects/tribes/productionsite.h (+15/-0)
src/logic/map_objects/tribes/tribes.cc (+16/-0)
src/wui/fieldaction.cc (+26/-6)
To merge this branch: bzr merge lp:~widelands-dev/widelands/workarea-fixes
Reviewer Review Type Date Requested Status
GunChleoc Approve
Review via email: mp+368342@code.launchpad.net

Commit message

- Highlight the buildings the overlapping workareas belong to
- Fix behaviour of the W hotkey
- Show productionsite overlaps only for certain building types
  of interest

To post a comment you must log in.
Revision history for this message
GunChleoc (gunchleoc) wrote :

I'm still in favor of deducing these in the engine so that we won't need to maintain these Lua definitions, which will be prone to bugs.

Criteria could be:

1. If both buildings mine the same resource
2. If both buildings plant an immovable
3. If both buildings collect an immovable
4. If one building plants an immovable and the other collects it and it is the same attrib
5. If both buildings plant or collect the same bob attrib

If we want to go this route, we will need to base it off https://code.launchpad.net/~widelands-dev/widelands/unify-program-parsers/+merge/367936 in order not to get merge conflicts.

Revision history for this message
bunnybot (widelandsofficial) wrote :

Continuous integration builds have changed state:

Travis build 5150. State: failed. Details: https://travis-ci.org/widelands/widelands/builds/541329085.
Appveyor build 4932. State: success. Details: https://ci.appveyor.com/project/widelands-dev/widelands/build/_widelands_dev_widelands_workarea_fixes-4932.

Revision history for this message
GunChleoc (gunchleoc) wrote :

As pointed out by hessenfarmer in https://bugs.launchpad.net/widelands/+bug/1830345/comments/17, The beekeeper would be interested in farms and berries too. So, let's keep the Lua design and add those to the building. A rule-based approach would get very complicated with that.

Revision history for this message
kaputtnik (franku) wrote :

While i am not convinced by this feature at all, i agree with Gun. The lua files are already full of tables and options, which make it hard to understand for beginners (modders).

On the other side: Is it worth the work for a feature

- which is hard to explain
- which was wanted by a single player
- were other players know how to handle the 'problem' without this feature

Revision history for this message
GunChleoc (gunchleoc) wrote :

Hm on second thought - the beekeeper -> fields rule might be actually covered by rule 4, so that would be an argument in favor of the rule-based approach, because we already found a bug in this branch ;)

Revision history for this message
Benedikt Straub (nordfriese) wrote :

> Hm on second thought - the beekeeper -> fields rule might be actually covered by rule 4

The farm plants only barley_field_tiny, but the flowering attrib belongs to barley_field_medium. We would have to check not only whether they plant&collect the same attrib, but also whether one plants something that turns into something that turns into something … that has the attrib the other collects.

Since it´s only a few entries per building, that would be much more effort than doing it in Lua…

Revision history for this message
hessenfarmer (stephan-lutz) wrote :

Definitions look good from my side so far.
one additional question / demand?

Would it be possible to distinguish between wanted overlaps (e.g. forester and lumberjack shown in greenish colour) and unwanted overlaps (e.g. farm and forester shown in red shadows)

Revision history for this message
Benedikt Straub (nordfriese) wrote :

Good idea, will implement that :)

> On the other side: Is it worth the work for a feature
> - which is hard to explain

I can just add an explanation in a tutorial. Would the economy tut or bar01 be the better place for it?

> - which was wanted by a single player

I would not have implemented it so soon if I didn´t want it as well… ;)

> - were other players know how to handle the 'problem' without this feature

…by clicking a dozen times and still overlooking something. I like this feature better than that ;)

9140. By Nordfriese

Show productionsite overlaps as desired or negative

9141. By Nordfriese

compile error

Revision history for this message
hessenfarmer (stephan-lutz) wrote :

It was definitely wanted by more then one player.

I like it too. Especially if it shows good or bad coverage.

I think the basic tutorial should bhe the place to explain this as early as possible, cause it will be already there.

9142. By Nordfriese

syntax corrections

Revision history for this message
GunChleoc (gunchleoc) wrote :

OK, Lua entries it is.

And I am in favor of this feature too - it will come in handy, especially for less-experienced players.

I think we could have an explanation in the basic control tutorial, after the quarries have been placed and before messages get introduced. Don't do this in trunk or in this branch though, because I have a merge request open that introduces big changes to the tutorial code, and the merge conflicts would be eek.

Revision history for this message
kaputtnik (franku) wrote :

ok, ok :-)

Sorry for the noise. Will be quiet now.

Revision history for this message
bunnybot (widelandsofficial) wrote :

Continuous integration builds have changed state:

Travis build 5157. State: errored. Details: https://travis-ci.org/widelands/widelands/builds/541797771.
Appveyor build 4939. State: failed. Details: https://ci.appveyor.com/project/widelands-dev/widelands/build/_widelands_dev_widelands_workarea_fixes-4939.

Revision history for this message
GunChleoc (gunchleoc) wrote :

Don't worry, kaputtnik, we can't always agree on everything and your opinion is just as valid as everybody else's

Revision history for this message
GunChleoc (gunchleoc) wrote :

2 comments for code readability

Revision history for this message
GunChleoc (gunchleoc) wrote :

Sorry for the comment spam.... tested and working nicely. I am also happy with the colors and borders :)

9143. By Nordfriese

Adressed code review

9144. By Nordfriese

Merged trunk

9145. By Nordfriese

Merged trunk

9146. By Nordfriese

Making travis happy

Revision history for this message
bunnybot (widelandsofficial) wrote :

Continuous integration builds have changed state:

Travis build 5211. State: errored. Details: https://travis-ci.org/widelands/widelands/builds/548652135.
Appveyor build 4990. State: success. Details: https://ci.appveyor.com/project/widelands-dev/widelands/build/_widelands_dev_widelands_workarea_fixes-4990.

Revision history for this message
GunChleoc (gunchleoc) wrote :

Retested and still working :)

@bunnybot merge

review: Approve
Revision history for this message
bunnybot (widelandsofficial) wrote :

Refusing to merge, since Travis is not green. Use @bunnybot merge force for merging anyways.

Travis build 5211. State: errored. Details: https://travis-ci.org/widelands/widelands/builds/548652135.

Revision history for this message
Benedikt Straub (nordfriese) wrote :

inputqueues

@bunnybot merge force

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'data/tribes/buildings/productionsites/atlanteans/armorsmithy/init.lua'
2--- data/tribes/buildings/productionsites/atlanteans/armorsmithy/init.lua 2018-09-12 03:04:08 +0000
3+++ data/tribes/buildings/productionsites/atlanteans/armorsmithy/init.lua 2019-06-21 11:33:28 +0000
4@@ -55,6 +55,18 @@
5 -- done, including any animations and sounds played.
6 -- See :doc:`productionsite_program`.
7 --
8+-- **indicate_workarea_overlaps**
9+-- *Optional*. The names of other productionsites whose workareas should be highlighted
10+-- if theirs overlap with this building’s workarea while the player is placing a
11+-- building of this type. The overlaps can be shown either as desired (`true`), if the
12+-- proximity of these buildings is favourable, or as negative (`false`), if they influence
13+-- each other negatively. Example for a fishbreeder’s house::
14+--
15+-- indicate_workarea_overlaps = {
16+-- atlanteans_fishers_house = true,
17+-- atlanteans_fishbreeders_house = false
18+-- },
19+--
20 -- **out_of_resource_notification**.
21 -- *Optional*. This table defines the message sent by the productionsite
22 -- to the player if it has run out of a resource to collect. There are 4
23
24=== modified file 'data/tribes/buildings/productionsites/atlanteans/blackroot_farm/init.lua'
25--- data/tribes/buildings/productionsites/atlanteans/blackroot_farm/init.lua 2019-05-31 12:56:36 +0000
26+++ data/tribes/buildings/productionsites/atlanteans/blackroot_farm/init.lua 2019-06-21 11:33:28 +0000
27@@ -42,6 +42,12 @@
28 "blackroot"
29 },
30
31+ indicate_workarea_overlaps = {
32+ atlanteans_blackroot_farm = false,
33+ atlanteans_farm = false,
34+ atlanteans_foresters_house = false,
35+ },
36+
37 programs = {
38 work = {
39 -- TRANSLATORS: Completed/Skipped/Did not start working because ...
40
41=== modified file 'data/tribes/buildings/productionsites/atlanteans/coalmine/init.lua'
42--- data/tribes/buildings/productionsites/atlanteans/coalmine/init.lua 2019-05-29 18:29:28 +0000
43+++ data/tribes/buildings/productionsites/atlanteans/coalmine/init.lua 2019-06-21 11:33:28 +0000
44@@ -43,6 +43,10 @@
45 atlanteans_miner = 3
46 },
47
48+ indicate_workarea_overlaps = {
49+ atlanteans_coalmine = false,
50+ },
51+
52 inputs = {
53 { name = "smoked_fish", amount = 10 },
54 { name = "smoked_meat", amount = 6 },
55
56=== modified file 'data/tribes/buildings/productionsites/atlanteans/crystalmine/init.lua'
57--- data/tribes/buildings/productionsites/atlanteans/crystalmine/init.lua 2019-05-29 18:29:28 +0000
58+++ data/tribes/buildings/productionsites/atlanteans/crystalmine/init.lua 2019-06-21 11:33:28 +0000
59@@ -55,6 +55,10 @@
60 "granite"
61 },
62
63+ indicate_workarea_overlaps = {
64+ atlanteans_crystalmine = false,
65+ },
66+
67 programs = {
68 work = {
69 -- TRANSLATORS: Completed/Skipped/Did not start working because ...
70
71=== modified file 'data/tribes/buildings/productionsites/atlanteans/farm/init.lua'
72--- data/tribes/buildings/productionsites/atlanteans/farm/init.lua 2019-05-31 12:56:36 +0000
73+++ data/tribes/buildings/productionsites/atlanteans/farm/init.lua 2019-06-21 11:33:28 +0000
74@@ -46,6 +46,12 @@
75 "corn"
76 },
77
78+ indicate_workarea_overlaps = {
79+ atlanteans_blackroot_farm = false,
80+ atlanteans_farm = false,
81+ atlanteans_foresters_house = false,
82+ },
83+
84 programs = {
85 work = {
86 -- TRANSLATORS: Completed/Skipped/Did not start working because ...
87
88=== modified file 'data/tribes/buildings/productionsites/atlanteans/fishbreeders_house/init.lua'
89--- data/tribes/buildings/productionsites/atlanteans/fishbreeders_house/init.lua 2019-06-06 10:00:05 +0000
90+++ data/tribes/buildings/productionsites/atlanteans/fishbreeders_house/init.lua 2019-06-21 11:33:28 +0000
91@@ -47,6 +47,11 @@
92 },
93 },
94
95+ indicate_workarea_overlaps = {
96+ atlanteans_fishers_house = true,
97+ atlanteans_fishbreeders_house = false,
98+ },
99+
100 out_of_resource_notification = {
101 -- Translators: Short for "Out of ..." for a resource
102 title = _"No Fish",
103
104=== modified file 'data/tribes/buildings/productionsites/atlanteans/fishers_house/init.lua'
105--- data/tribes/buildings/productionsites/atlanteans/fishers_house/init.lua 2019-06-01 11:23:15 +0000
106+++ data/tribes/buildings/productionsites/atlanteans/fishers_house/init.lua 2019-06-21 11:33:28 +0000
107@@ -41,6 +41,11 @@
108 "fish"
109 },
110
111+ indicate_workarea_overlaps = {
112+ atlanteans_fishers_house = false,
113+ atlanteans_fishbreeders_house = true,
114+ },
115+
116 programs = {
117 work = {
118 -- TRANSLATORS: Completed/Skipped/Did not start fishing because ...
119
120=== modified file 'data/tribes/buildings/productionsites/atlanteans/foresters_house/init.lua'
121--- data/tribes/buildings/productionsites/atlanteans/foresters_house/init.lua 2019-06-02 14:04:16 +0000
122+++ data/tribes/buildings/productionsites/atlanteans/foresters_house/init.lua 2019-06-21 11:33:28 +0000
123@@ -37,6 +37,13 @@
124 atlanteans_forester = 1
125 },
126
127+ indicate_workarea_overlaps = {
128+ atlanteans_blackroot_farm = false,
129+ atlanteans_farm = false,
130+ atlanteans_foresters_house = false,
131+ atlanteans_woodcutters_house = true,
132+ },
133+
134 programs = {
135 work = {
136 -- TRANSLATORS: Completed/Skipped/Did not start planting trees because ...
137
138=== modified file 'data/tribes/buildings/productionsites/atlanteans/goldmine/init.lua'
139--- data/tribes/buildings/productionsites/atlanteans/goldmine/init.lua 2019-05-29 18:29:28 +0000
140+++ data/tribes/buildings/productionsites/atlanteans/goldmine/init.lua 2019-06-21 11:33:28 +0000
141@@ -52,6 +52,10 @@
142 "gold_ore"
143 },
144
145+ indicate_workarea_overlaps = {
146+ atlanteans_goldmine = false,
147+ },
148+
149 programs = {
150 work = {
151 -- TRANSLATORS: Completed/Skipped/Did not start mining gold because ...
152
153=== modified file 'data/tribes/buildings/productionsites/atlanteans/hunters_house/init.lua'
154--- data/tribes/buildings/productionsites/atlanteans/hunters_house/init.lua 2019-05-29 18:29:28 +0000
155+++ data/tribes/buildings/productionsites/atlanteans/hunters_house/init.lua 2019-06-21 11:33:28 +0000
156@@ -38,6 +38,10 @@
157 "meat"
158 },
159
160+ indicate_workarea_overlaps = {
161+ atlanteans_hunters_house = false,
162+ },
163+
164 programs = {
165 work = {
166 -- TRANSLATORS: Completed/Skipped/Did not start hunting because ...
167
168=== modified file 'data/tribes/buildings/productionsites/atlanteans/ironmine/init.lua'
169--- data/tribes/buildings/productionsites/atlanteans/ironmine/init.lua 2019-05-29 18:29:28 +0000
170+++ data/tribes/buildings/productionsites/atlanteans/ironmine/init.lua 2019-06-21 11:33:28 +0000
171@@ -19,6 +19,10 @@
172 planks = 2
173 },
174
175+ indicate_workarea_overlaps = {
176+ atlanteans_ironmine = false,
177+ },
178+
179 animations = {
180 idle = {
181 pictures = path.list_files(dirname .. "idle_??.png"),
182
183=== modified file 'data/tribes/buildings/productionsites/atlanteans/quarry/init.lua'
184--- data/tribes/buildings/productionsites/atlanteans/quarry/init.lua 2019-06-02 14:45:28 +0000
185+++ data/tribes/buildings/productionsites/atlanteans/quarry/init.lua 2019-06-21 11:33:28 +0000
186@@ -36,6 +36,10 @@
187 "granite"
188 },
189
190+ indicate_workarea_overlaps = {
191+ atlanteans_quarry = false,
192+ },
193+
194 programs = {
195 work = {
196 -- TRANSLATORS: Completed/Skipped/Did not start working because ...
197
198=== modified file 'data/tribes/buildings/productionsites/atlanteans/shipyard/init.lua'
199--- data/tribes/buildings/productionsites/atlanteans/shipyard/init.lua 2019-05-29 18:29:28 +0000
200+++ data/tribes/buildings/productionsites/atlanteans/shipyard/init.lua 2019-06-21 11:33:28 +0000
201@@ -58,6 +58,10 @@
202 { name = "spidercloth", amount = 4 }
203 },
204
205+ indicate_workarea_overlaps = {
206+ atlanteans_shipyard = false,
207+ },
208+
209 programs = {
210 work = {
211 -- TRANSLATORS: Completed/Skipped/Did not start working because ...
212
213=== modified file 'data/tribes/buildings/productionsites/atlanteans/well/init.lua'
214--- data/tribes/buildings/productionsites/atlanteans/well/init.lua 2018-11-20 20:25:08 +0000
215+++ data/tribes/buildings/productionsites/atlanteans/well/init.lua 2019-06-21 11:33:28 +0000
216@@ -43,6 +43,10 @@
217 "water"
218 },
219
220+ indicate_workarea_overlaps = {
221+ atlanteans_well = false,
222+ },
223+
224 programs = {
225 work = {
226 -- TRANSLATORS: Completed/Skipped/Did not start working because ...
227
228=== modified file 'data/tribes/buildings/productionsites/atlanteans/woodcutters_house/init.lua'
229--- data/tribes/buildings/productionsites/atlanteans/woodcutters_house/init.lua 2019-06-02 13:16:53 +0000
230+++ data/tribes/buildings/productionsites/atlanteans/woodcutters_house/init.lua 2019-06-21 11:33:28 +0000
231@@ -37,6 +37,11 @@
232 "log"
233 },
234
235+ indicate_workarea_overlaps = {
236+ atlanteans_foresters_house = true,
237+ atlanteans_woodcutters_house = false,
238+ },
239+
240 programs = {
241 work = {
242 -- TRANSLATORS: Completed/Skipped/Did not start felling trees because ...
243
244=== modified file 'data/tribes/buildings/productionsites/barbarians/coalmine/init.lua'
245--- data/tribes/buildings/productionsites/barbarians/coalmine/init.lua 2019-05-29 18:29:28 +0000
246+++ data/tribes/buildings/productionsites/barbarians/coalmine/init.lua 2019-06-21 11:33:28 +0000
247@@ -55,6 +55,12 @@
248 "coal"
249 },
250
251+ indicate_workarea_overlaps = {
252+ barbarians_coalmine = false,
253+ barbarians_coalmine_deep = false,
254+ barbarians_coalmine_deeper = false,
255+ },
256+
257 programs = {
258 work = {
259 -- TRANSLATORS: Completed/Skipped/Did not start mining coal because ...
260
261=== modified file 'data/tribes/buildings/productionsites/barbarians/coalmine_deep/init.lua'
262--- data/tribes/buildings/productionsites/barbarians/coalmine_deep/init.lua 2019-05-29 18:29:28 +0000
263+++ data/tribes/buildings/productionsites/barbarians/coalmine_deep/init.lua 2019-06-21 11:33:28 +0000
264@@ -48,6 +48,12 @@
265 barbarians_miner_chief = 1,
266 },
267
268+ indicate_workarea_overlaps = {
269+ barbarians_coalmine = false,
270+ barbarians_coalmine_deep = false,
271+ barbarians_coalmine_deeper = false,
272+ },
273+
274 inputs = {
275 { name = "snack", amount = 6 }
276 },
277
278=== modified file 'data/tribes/buildings/productionsites/barbarians/coalmine_deeper/init.lua'
279--- data/tribes/buildings/productionsites/barbarians/coalmine_deeper/init.lua 2019-05-29 18:29:28 +0000
280+++ data/tribes/buildings/productionsites/barbarians/coalmine_deeper/init.lua 2019-06-21 11:33:28 +0000
281@@ -47,6 +47,12 @@
282 barbarians_miner_master = 1,
283 },
284
285+ indicate_workarea_overlaps = {
286+ barbarians_coalmine = false,
287+ barbarians_coalmine_deep = false,
288+ barbarians_coalmine_deeper = false,
289+ },
290+
291 inputs = {
292 { name = "meal", amount = 6 }
293 },
294
295=== modified file 'data/tribes/buildings/productionsites/barbarians/farm/init.lua'
296--- data/tribes/buildings/productionsites/barbarians/farm/init.lua 2019-05-31 13:33:41 +0000
297+++ data/tribes/buildings/productionsites/barbarians/farm/init.lua 2019-06-21 11:33:28 +0000
298@@ -54,6 +54,12 @@
299 "wheat"
300 },
301
302+ indicate_workarea_overlaps = {
303+ barbarians_rangers_hut = false,
304+ barbarians_farm = false,
305+ barbarians_reed_yard = false,
306+ },
307+
308 programs = {
309 work = {
310 -- TRANSLATORS: Completed/Skipped/Did not start working because ...
311
312=== modified file 'data/tribes/buildings/productionsites/barbarians/fishers_hut/init.lua'
313--- data/tribes/buildings/productionsites/barbarians/fishers_hut/init.lua 2019-06-01 11:23:15 +0000
314+++ data/tribes/buildings/productionsites/barbarians/fishers_hut/init.lua 2019-06-21 11:33:28 +0000
315@@ -47,6 +47,10 @@
316 "fish"
317 },
318
319+ indicate_workarea_overlaps = {
320+ barbarians_fishers_hut = false,
321+ },
322+
323 programs = {
324 work = {
325 -- TRANSLATORS: Completed/Skipped/Did not start fishing because ...
326
327=== modified file 'data/tribes/buildings/productionsites/barbarians/gamekeepers_hut/init.lua'
328--- data/tribes/buildings/productionsites/barbarians/gamekeepers_hut/init.lua 2019-05-29 18:29:28 +0000
329+++ data/tribes/buildings/productionsites/barbarians/gamekeepers_hut/init.lua 2019-06-21 11:33:28 +0000
330@@ -43,6 +43,11 @@
331 barbarians_gamekeeper = 1
332 },
333
334+ indicate_workarea_overlaps = {
335+ barbarians_hunters_hut = true,
336+ barbarians_gamekeepers_hut = false,
337+ },
338+
339 programs = {
340 work = {
341 -- TRANSLATORS: Completed/Skipped/Did not start working because ...
342
343=== modified file 'data/tribes/buildings/productionsites/barbarians/goldmine/init.lua'
344--- data/tribes/buildings/productionsites/barbarians/goldmine/init.lua 2019-05-29 18:29:28 +0000
345+++ data/tribes/buildings/productionsites/barbarians/goldmine/init.lua 2019-06-21 11:33:28 +0000
346@@ -48,6 +48,12 @@
347 barbarians_miner = 1
348 },
349
350+ indicate_workarea_overlaps = {
351+ barbarians_goldmine = false,
352+ barbarians_goldmine_deep = false,
353+ barbarians_goldmine_deeper = false,
354+ },
355+
356 inputs = {
357 { name = "ration", amount = 6 }
358 },
359
360=== modified file 'data/tribes/buildings/productionsites/barbarians/goldmine_deep/init.lua'
361--- data/tribes/buildings/productionsites/barbarians/goldmine_deep/init.lua 2019-05-29 18:29:28 +0000
362+++ data/tribes/buildings/productionsites/barbarians/goldmine_deep/init.lua 2019-06-21 11:33:28 +0000
363@@ -55,6 +55,12 @@
364 "gold_ore"
365 },
366
367+ indicate_workarea_overlaps = {
368+ barbarians_goldmine = false,
369+ barbarians_goldmine_deep = false,
370+ barbarians_goldmine_deeper = false,
371+ },
372+
373 programs = {
374 work = {
375 -- TRANSLATORS: Completed/Skipped/Did not start mining gold because ...
376
377=== modified file 'data/tribes/buildings/productionsites/barbarians/goldmine_deeper/init.lua'
378--- data/tribes/buildings/productionsites/barbarians/goldmine_deeper/init.lua 2019-05-29 18:29:28 +0000
379+++ data/tribes/buildings/productionsites/barbarians/goldmine_deeper/init.lua 2019-06-21 11:33:28 +0000
380@@ -54,6 +54,12 @@
381 "gold_ore"
382 },
383
384+ indicate_workarea_overlaps = {
385+ barbarians_goldmine = false,
386+ barbarians_goldmine_deep = false,
387+ barbarians_goldmine_deeper = false,
388+ },
389+
390 programs = {
391 work = {
392 -- TRANSLATORS: Completed/Skipped/Did not start mining gold because ...
393
394=== modified file 'data/tribes/buildings/productionsites/barbarians/granitemine/init.lua'
395--- data/tribes/buildings/productionsites/barbarians/granitemine/init.lua 2019-05-29 18:29:28 +0000
396+++ data/tribes/buildings/productionsites/barbarians/granitemine/init.lua 2019-06-21 11:33:28 +0000
397@@ -46,6 +46,10 @@
398 barbarians_miner = 1
399 },
400
401+ indicate_workarea_overlaps = {
402+ barbarians_granitemine = false,
403+ },
404+
405 inputs = {
406 { name = "ration", amount = 8 }
407 },
408
409=== modified file 'data/tribes/buildings/productionsites/barbarians/hunters_hut/init.lua'
410--- data/tribes/buildings/productionsites/barbarians/hunters_hut/init.lua 2019-05-29 18:29:28 +0000
411+++ data/tribes/buildings/productionsites/barbarians/hunters_hut/init.lua 2019-06-21 11:33:28 +0000
412@@ -45,6 +45,11 @@
413 barbarians_hunter = 1
414 },
415
416+ indicate_workarea_overlaps = {
417+ barbarians_hunters_hut = false,
418+ barbarians_gamekeepers_hut = true,
419+ },
420+
421 outputs = {
422 "meat"
423 },
424
425=== modified file 'data/tribes/buildings/productionsites/barbarians/ironmine/init.lua'
426--- data/tribes/buildings/productionsites/barbarians/ironmine/init.lua 2019-05-29 18:29:28 +0000
427+++ data/tribes/buildings/productionsites/barbarians/ironmine/init.lua 2019-06-21 11:33:28 +0000
428@@ -55,6 +55,12 @@
429 "iron_ore"
430 },
431
432+ indicate_workarea_overlaps = {
433+ barbarians_ironmine = false,
434+ barbarians_ironmine_deep = false,
435+ barbarians_ironmine_deeper = false,
436+ },
437+
438 programs = {
439 work = {
440 -- TRANSLATORS: Completed/Skipped/Did not start mining iron because ...
441
442=== modified file 'data/tribes/buildings/productionsites/barbarians/ironmine_deep/init.lua'
443--- data/tribes/buildings/productionsites/barbarians/ironmine_deep/init.lua 2019-05-29 18:29:28 +0000
444+++ data/tribes/buildings/productionsites/barbarians/ironmine_deep/init.lua 2019-06-21 11:33:28 +0000
445@@ -55,6 +55,12 @@
446 "iron_ore"
447 },
448
449+ indicate_workarea_overlaps = {
450+ barbarians_ironmine = false,
451+ barbarians_ironmine_deep = false,
452+ barbarians_ironmine_deeper = false,
453+ },
454+
455 programs = {
456 work = {
457 -- TRANSLATORS: Completed/Skipped/Did not start mining iron because ...
458
459=== modified file 'data/tribes/buildings/productionsites/barbarians/ironmine_deeper/init.lua'
460--- data/tribes/buildings/productionsites/barbarians/ironmine_deeper/init.lua 2019-05-29 18:29:28 +0000
461+++ data/tribes/buildings/productionsites/barbarians/ironmine_deeper/init.lua 2019-06-21 11:33:28 +0000
462@@ -41,6 +41,12 @@
463 mines = "iron",
464 },
465
466+ indicate_workarea_overlaps = {
467+ barbarians_ironmine = false,
468+ barbarians_ironmine_deep = false,
469+ barbarians_ironmine_deeper = false,
470+ },
471+
472 working_positions = {
473 barbarians_miner = 1,
474 barbarians_miner_chief = 1,
475
476=== modified file 'data/tribes/buildings/productionsites/barbarians/lumberjacks_hut/init.lua'
477--- data/tribes/buildings/productionsites/barbarians/lumberjacks_hut/init.lua 2019-06-02 13:16:53 +0000
478+++ data/tribes/buildings/productionsites/barbarians/lumberjacks_hut/init.lua 2019-06-21 11:33:28 +0000
479@@ -44,6 +44,11 @@
480 "log"
481 },
482
483+ indicate_workarea_overlaps = {
484+ barbarians_rangers_hut = true,
485+ barbarians_lumberjacks_hut = false,
486+ },
487+
488 programs = {
489 work = {
490 -- TRANSLATORS: Completed/Skipped/Did not start felling trees because ...
491
492=== modified file 'data/tribes/buildings/productionsites/barbarians/quarry/init.lua'
493--- data/tribes/buildings/productionsites/barbarians/quarry/init.lua 2019-06-02 14:45:28 +0000
494+++ data/tribes/buildings/productionsites/barbarians/quarry/init.lua 2019-06-21 11:33:28 +0000
495@@ -43,6 +43,10 @@
496 "granite"
497 },
498
499+ indicate_workarea_overlaps = {
500+ barbarians_quarry = false,
501+ },
502+
503 programs = {
504 work = {
505 -- TRANSLATORS: Completed/Skipped/Did not start working because ...
506
507=== modified file 'data/tribes/buildings/productionsites/barbarians/rangers_hut/init.lua'
508--- data/tribes/buildings/productionsites/barbarians/rangers_hut/init.lua 2019-06-02 14:04:16 +0000
509+++ data/tribes/buildings/productionsites/barbarians/rangers_hut/init.lua 2019-06-21 11:33:28 +0000
510@@ -43,6 +43,13 @@
511 barbarians_ranger = 1
512 },
513
514+ indicate_workarea_overlaps = {
515+ barbarians_rangers_hut = false,
516+ barbarians_lumberjacks_hut = true,
517+ barbarians_farm = false,
518+ barbarians_reed_yard = false,
519+ },
520+
521 programs = {
522 work = {
523 -- TRANSLATORS: Completed/Skipped/Did not start planting trees because ...
524
525=== modified file 'data/tribes/buildings/productionsites/barbarians/reed_yard/init.lua'
526--- data/tribes/buildings/productionsites/barbarians/reed_yard/init.lua 2019-05-31 12:56:36 +0000
527+++ data/tribes/buildings/productionsites/barbarians/reed_yard/init.lua 2019-06-21 11:33:28 +0000
528@@ -38,6 +38,12 @@
529 "reed"
530 },
531
532+ indicate_workarea_overlaps = {
533+ barbarians_rangers_hut = false,
534+ barbarians_reed_yard = false,
535+ barbarians_farm = false,
536+ },
537+
538 programs = {
539 work = {
540 -- TRANSLATORS: Completed/Skipped/Did not start working because ...
541
542=== modified file 'data/tribes/buildings/productionsites/barbarians/shipyard/init.lua'
543--- data/tribes/buildings/productionsites/barbarians/shipyard/init.lua 2019-05-29 18:29:28 +0000
544+++ data/tribes/buildings/productionsites/barbarians/shipyard/init.lua 2019-06-21 11:33:28 +0000
545@@ -46,6 +46,10 @@
546 { name = "cloth", amount = 4 }
547 },
548
549+ indicate_workarea_overlaps = {
550+ barbarians_shipyard = false,
551+ },
552+
553 programs = {
554 work = {
555 -- TRANSLATORS: Completed/Skipped/Did not start working because ...
556
557=== modified file 'data/tribes/buildings/productionsites/barbarians/well/init.lua'
558--- data/tribes/buildings/productionsites/barbarians/well/init.lua 2018-05-24 10:19:21 +0000
559+++ data/tribes/buildings/productionsites/barbarians/well/init.lua 2019-06-21 11:33:28 +0000
560@@ -44,6 +44,10 @@
561 "water"
562 },
563
564+ indicate_workarea_overlaps = {
565+ barbarians_well = false,
566+ },
567+
568 programs = {
569 work = {
570 -- TRANSLATORS: Completed/Skipped/Did not start working because ...
571
572=== modified file 'data/tribes/buildings/productionsites/empire/coalmine/init.lua'
573--- data/tribes/buildings/productionsites/empire/coalmine/init.lua 2019-05-29 18:29:28 +0000
574+++ data/tribes/buildings/productionsites/empire/coalmine/init.lua 2019-06-21 11:33:28 +0000
575@@ -45,6 +45,11 @@
576 empire_miner = 1
577 },
578
579+ indicate_workarea_overlaps = {
580+ empire_coalmine = false,
581+ empire_coalmine_deep = false,
582+ },
583+
584 inputs = {
585 { name = "ration", amount = 6 },
586 { name = "beer", amount = 6 }
587
588=== modified file 'data/tribes/buildings/productionsites/empire/coalmine_deep/init.lua'
589--- data/tribes/buildings/productionsites/empire/coalmine_deep/init.lua 2019-05-29 18:29:28 +0000
590+++ data/tribes/buildings/productionsites/empire/coalmine_deep/init.lua 2019-06-21 11:33:28 +0000
591@@ -38,6 +38,11 @@
592 mines = "coal"
593 },
594
595+ indicate_workarea_overlaps = {
596+ empire_coalmine = false,
597+ empire_coalmine_deep = false,
598+ },
599+
600 working_positions = {
601 empire_miner = 1,
602 empire_miner_master = 1
603
604=== modified file 'data/tribes/buildings/productionsites/empire/farm/init.lua'
605--- data/tribes/buildings/productionsites/empire/farm/init.lua 2019-05-31 12:56:36 +0000
606+++ data/tribes/buildings/productionsites/empire/farm/init.lua 2019-06-21 11:33:28 +0000
607@@ -29,6 +29,12 @@
608 },
609 },
610
611+ indicate_workarea_overlaps = {
612+ empire_farm = false,
613+ empire_vineyard = false,
614+ empire_foresters_house = false,
615+ },
616+
617 aihints = {
618 basic_amount = 1,
619 space_consumer = true,
620
621=== modified file 'data/tribes/buildings/productionsites/empire/fishers_house/init.lua'
622--- data/tribes/buildings/productionsites/empire/fishers_house/init.lua 2019-06-01 11:23:15 +0000
623+++ data/tribes/buildings/productionsites/empire/fishers_house/init.lua 2019-06-21 11:33:28 +0000
624@@ -39,6 +39,10 @@
625 "fish"
626 },
627
628+ indicate_workarea_overlaps = {
629+ empire_fishers_house = false,
630+ },
631+
632 programs = {
633 work = {
634 -- TRANSLATORS: Completed/Skipped/Did not start fishing because ...
635
636=== modified file 'data/tribes/buildings/productionsites/empire/foresters_house/init.lua'
637--- data/tribes/buildings/productionsites/empire/foresters_house/init.lua 2019-06-02 14:04:16 +0000
638+++ data/tribes/buildings/productionsites/empire/foresters_house/init.lua 2019-06-21 11:33:28 +0000
639@@ -37,6 +37,13 @@
640 empire_forester = 1
641 },
642
643+ indicate_workarea_overlaps = {
644+ empire_farm = false,
645+ empire_vineyard = false,
646+ empire_lumberjacks_house = true,
647+ empire_foresters_house = false,
648+ },
649+
650 programs = {
651 work = {
652 -- TRANSLATORS: Completed/Skipped/Did not start planting trees because ...
653
654=== modified file 'data/tribes/buildings/productionsites/empire/goldmine/init.lua'
655--- data/tribes/buildings/productionsites/empire/goldmine/init.lua 2019-05-29 18:29:28 +0000
656+++ data/tribes/buildings/productionsites/empire/goldmine/init.lua 2019-06-21 11:33:28 +0000
657@@ -45,6 +45,11 @@
658 empire_miner = 1
659 },
660
661+ indicate_workarea_overlaps = {
662+ empire_goldmine = false,
663+ empire_goldmine_deep = false,
664+ },
665+
666 inputs = {
667 { name = "ration", amount = 6 },
668 { name = "wine", amount = 6 }
669
670=== modified file 'data/tribes/buildings/productionsites/empire/goldmine_deep/init.lua'
671--- data/tribes/buildings/productionsites/empire/goldmine_deep/init.lua 2019-05-29 18:29:28 +0000
672+++ data/tribes/buildings/productionsites/empire/goldmine_deep/init.lua 2019-06-21 11:33:28 +0000
673@@ -38,6 +38,11 @@
674 mines = "gold"
675 },
676
677+ indicate_workarea_overlaps = {
678+ empire_goldmine = false,
679+ empire_goldmine_deep = false,
680+ },
681+
682 working_positions = {
683 empire_miner = 1,
684 empire_miner_master = 1
685
686=== modified file 'data/tribes/buildings/productionsites/empire/hunters_house/init.lua'
687--- data/tribes/buildings/productionsites/empire/hunters_house/init.lua 2019-05-29 18:29:28 +0000
688+++ data/tribes/buildings/productionsites/empire/hunters_house/init.lua 2019-06-21 11:33:28 +0000
689@@ -38,6 +38,10 @@
690 "meat"
691 },
692
693+ indicate_workarea_overlaps = {
694+ empire_hunters_house = false,
695+ },
696+
697 programs = {
698 work = {
699 -- TRANSLATORS: Completed/Skipped/Did not start hunting because ...
700
701=== modified file 'data/tribes/buildings/productionsites/empire/ironmine/init.lua'
702--- data/tribes/buildings/productionsites/empire/ironmine/init.lua 2019-05-29 18:29:28 +0000
703+++ data/tribes/buildings/productionsites/empire/ironmine/init.lua 2019-06-21 11:33:28 +0000
704@@ -45,6 +45,11 @@
705 empire_miner = 1
706 },
707
708+ indicate_workarea_overlaps = {
709+ empire_ironmine = false,
710+ empire_ironmine_deep = false,
711+ },
712+
713 inputs = {
714 { name = "ration", amount = 6 },
715 { name = "beer", amount = 6 }
716
717=== modified file 'data/tribes/buildings/productionsites/empire/ironmine_deep/init.lua'
718--- data/tribes/buildings/productionsites/empire/ironmine_deep/init.lua 2019-05-29 18:29:28 +0000
719+++ data/tribes/buildings/productionsites/empire/ironmine_deep/init.lua 2019-06-21 11:33:28 +0000
720@@ -38,6 +38,11 @@
721 mines = "iron"
722 },
723
724+ indicate_workarea_overlaps = {
725+ empire_ironmine = false,
726+ empire_ironmine_deep = false,
727+ },
728+
729 working_positions = {
730 empire_miner = 1,
731 empire_miner_master = 1
732
733=== modified file 'data/tribes/buildings/productionsites/empire/lumberjacks_house/init.lua'
734--- data/tribes/buildings/productionsites/empire/lumberjacks_house/init.lua 2019-06-02 13:16:53 +0000
735+++ data/tribes/buildings/productionsites/empire/lumberjacks_house/init.lua 2019-06-21 11:33:28 +0000
736@@ -37,6 +37,11 @@
737 "log"
738 },
739
740+ indicate_workarea_overlaps = {
741+ empire_lumberjacks_house = false,
742+ empire_foresters_house = true,
743+ },
744+
745 programs = {
746 work = {
747 -- TRANSLATORS: Completed/Skipped/Did not start felling trees because ...
748
749=== modified file 'data/tribes/buildings/productionsites/empire/marblemine/init.lua'
750--- data/tribes/buildings/productionsites/empire/marblemine/init.lua 2019-05-29 18:29:28 +0000
751+++ data/tribes/buildings/productionsites/empire/marblemine/init.lua 2019-06-21 11:33:28 +0000
752@@ -42,6 +42,11 @@
753 basic_amount = 1
754 },
755
756+ indicate_workarea_overlaps = {
757+ empire_marblemine = false,
758+ empire_marblemine_deep = false,
759+ },
760+
761 working_positions = {
762 empire_miner = 1
763 },
764
765=== modified file 'data/tribes/buildings/productionsites/empire/marblemine_deep/init.lua'
766--- data/tribes/buildings/productionsites/empire/marblemine_deep/init.lua 2019-05-29 18:29:28 +0000
767+++ data/tribes/buildings/productionsites/empire/marblemine_deep/init.lua 2019-06-21 11:33:28 +0000
768@@ -43,6 +43,11 @@
769 empire_miner_master = 1
770 },
771
772+ indicate_workarea_overlaps = {
773+ empire_marblemine = false,
774+ empire_marblemine_deep = false,
775+ },
776+
777 inputs = {
778 { name = "meal", amount = 6 },
779 { name = "wine", amount = 6 }
780
781=== modified file 'data/tribes/buildings/productionsites/empire/quarry/init.lua'
782--- data/tribes/buildings/productionsites/empire/quarry/init.lua 2019-06-02 14:45:28 +0000
783+++ data/tribes/buildings/productionsites/empire/quarry/init.lua 2019-06-21 11:33:28 +0000
784@@ -32,6 +32,10 @@
785 empire_stonemason = 1
786 },
787
788+ indicate_workarea_overlaps = {
789+ empire_quarry = false,
790+ },
791+
792 outputs = {
793 "granite",
794 "marble"
795
796=== modified file 'data/tribes/buildings/productionsites/empire/shipyard/init.lua'
797--- data/tribes/buildings/productionsites/empire/shipyard/init.lua 2019-05-29 18:29:28 +0000
798+++ data/tribes/buildings/productionsites/empire/shipyard/init.lua 2019-06-21 11:33:28 +0000
799@@ -47,6 +47,10 @@
800 prohibited_till = 1050
801 },
802
803+ indicate_workarea_overlaps = {
804+ empire_shipyard = false,
805+ },
806+
807 working_positions = {
808 empire_shipwright = 1
809 },
810
811=== modified file 'data/tribes/buildings/productionsites/empire/vineyard/init.lua'
812--- data/tribes/buildings/productionsites/empire/vineyard/init.lua 2019-05-31 12:56:36 +0000
813+++ data/tribes/buildings/productionsites/empire/vineyard/init.lua 2019-06-21 11:33:28 +0000
814@@ -44,6 +44,12 @@
815 "grape"
816 },
817
818+ indicate_workarea_overlaps = {
819+ empire_vineyard = false,
820+ empire_farm = false,
821+ empire_foresters_house = false,
822+ },
823+
824 programs = {
825 work = {
826 -- TRANSLATORS: Completed/Skipped/Did not start working because ...
827
828=== modified file 'data/tribes/buildings/productionsites/empire/well/init.lua'
829--- data/tribes/buildings/productionsites/empire/well/init.lua 2018-05-24 10:19:21 +0000
830+++ data/tribes/buildings/productionsites/empire/well/init.lua 2019-06-21 11:33:28 +0000
831@@ -42,6 +42,10 @@
832 "water"
833 },
834
835+ indicate_workarea_overlaps = {
836+ empire_well = false,
837+ },
838+
839 programs = {
840 work = {
841 -- TRANSLATORS: Completed/Skipped/Did not start working because ...
842
843=== modified file 'data/tribes/buildings/productionsites/frisians/aqua_farm/init.lua'
844--- data/tribes/buildings/productionsites/frisians/aqua_farm/init.lua 2019-05-29 19:15:11 +0000
845+++ data/tribes/buildings/productionsites/frisians/aqua_farm/init.lua 2019-06-21 11:33:28 +0000
846@@ -49,6 +49,11 @@
847 "fish"
848 },
849
850+ indicate_workarea_overlaps = {
851+ frisians_aqua_farm = false,
852+ frisians_clay_pit = true,
853+ },
854+
855 programs = {
856 work = {
857 -- TRANSLATORS: Completed/Skipped/Did not start working because ...
858
859=== modified file 'data/tribes/buildings/productionsites/frisians/beekeepers_house/init.lua'
860--- data/tribes/buildings/productionsites/frisians/beekeepers_house/init.lua 2019-05-29 18:29:28 +0000
861+++ data/tribes/buildings/productionsites/frisians/beekeepers_house/init.lua 2019-06-21 11:33:28 +0000
862@@ -31,6 +31,13 @@
863 },
864 },
865
866+ indicate_workarea_overlaps = {
867+ frisians_berry_farm = true,
868+ frisians_reed_farm = true,
869+ frisians_farm = true,
870+ frisians_beekeepers_house = false,
871+ },
872+
873 aihints = {
874 collects_ware_from_map = "honey",
875 prohibited_till = 620,
876
877=== modified file 'data/tribes/buildings/productionsites/frisians/berry_farm/init.lua'
878--- data/tribes/buildings/productionsites/frisians/berry_farm/init.lua 2019-05-29 18:29:28 +0000
879+++ data/tribes/buildings/productionsites/frisians/berry_farm/init.lua 2019-06-21 11:33:28 +0000
880@@ -41,6 +41,16 @@
881 frisians_berry_farmer = 1
882 },
883
884+ indicate_workarea_overlaps = {
885+ frisians_clay_pit = false,
886+ frisians_berry_farm = false,
887+ frisians_reed_farm = false,
888+ frisians_farm = false,
889+ frisians_foresters_house = false,
890+ frisians_beekeepers_house = true,
891+ frisians_collectors_house = true,
892+ },
893+
894 programs = {
895 work = {
896 -- TRANSLATORS: Completed/Skipped/Did not start planting bushes because ...
897
898=== modified file 'data/tribes/buildings/productionsites/frisians/clay_pit/init.lua'
899--- data/tribes/buildings/productionsites/frisians/clay_pit/init.lua 2019-05-29 19:15:11 +0000
900+++ data/tribes/buildings/productionsites/frisians/clay_pit/init.lua 2019-06-21 11:33:28 +0000
901@@ -35,6 +35,15 @@
902 },
903 },
904
905+ indicate_workarea_overlaps = {
906+ frisians_aqua_farm = true,
907+ frisians_clay_pit = false,
908+ frisians_berry_farm = false,
909+ frisians_reed_farm = false,
910+ frisians_farm = false,
911+ frisians_foresters_house = false,
912+ },
913+
914 aihints = {
915 very_weak_ai_limit = 1,
916 weak_ai_limit = 2,
917
918=== modified file 'data/tribes/buildings/productionsites/frisians/coalmine/init.lua'
919--- data/tribes/buildings/productionsites/frisians/coalmine/init.lua 2019-05-29 18:29:28 +0000
920+++ data/tribes/buildings/productionsites/frisians/coalmine/init.lua 2019-06-21 11:33:28 +0000
921@@ -52,6 +52,11 @@
922 frisians_miner = 1
923 },
924
925+ indicate_workarea_overlaps = {
926+ frisians_coalmine = false,
927+ frisians_coalmine_deep = false,
928+ },
929+
930 inputs = {
931 { name = "ration", amount = 8 }
932 },
933
934=== modified file 'data/tribes/buildings/productionsites/frisians/coalmine_deep/init.lua'
935--- data/tribes/buildings/productionsites/frisians/coalmine_deep/init.lua 2019-05-29 18:29:28 +0000
936+++ data/tribes/buildings/productionsites/frisians/coalmine_deep/init.lua 2019-06-21 11:33:28 +0000
937@@ -51,6 +51,11 @@
938 frisians_miner_master = 1,
939 },
940
941+ indicate_workarea_overlaps = {
942+ frisians_coalmine = false,
943+ frisians_coalmine_deep = false,
944+ },
945+
946 inputs = {
947 { name = "meal", amount = 8 }
948 },
949
950=== modified file 'data/tribes/buildings/productionsites/frisians/collectors_house/init.lua'
951--- data/tribes/buildings/productionsites/frisians/collectors_house/init.lua 2019-05-19 11:25:28 +0000
952+++ data/tribes/buildings/productionsites/frisians/collectors_house/init.lua 2019-06-21 11:33:28 +0000
953@@ -31,6 +31,11 @@
954 },
955 },
956
957+ indicate_workarea_overlaps = {
958+ frisians_berry_farm = true,
959+ frisians_collectors_house = false,
960+ },
961+
962 aihints = {
963 collects_ware_from_map = "fruit",
964 prohibited_till = 470,
965
966=== modified file 'data/tribes/buildings/productionsites/frisians/farm/init.lua'
967--- data/tribes/buildings/productionsites/frisians/farm/init.lua 2019-05-29 18:29:28 +0000
968+++ data/tribes/buildings/productionsites/frisians/farm/init.lua 2019-06-21 11:33:28 +0000
969@@ -57,6 +57,15 @@
970 "barley"
971 },
972
973+ indicate_workarea_overlaps = {
974+ frisians_clay_pit = false,
975+ frisians_berry_farm = false,
976+ frisians_reed_farm = false,
977+ frisians_farm = false,
978+ frisians_foresters_house = false,
979+ frisians_beekeepers_house = true,
980+ },
981+
982 programs = {
983 work = {
984 -- TRANSLATORS: Completed/Skipped/Did not start working because ...
985
986=== modified file 'data/tribes/buildings/productionsites/frisians/fishers_house/init.lua'
987--- data/tribes/buildings/productionsites/frisians/fishers_house/init.lua 2019-05-31 10:58:39 +0000
988+++ data/tribes/buildings/productionsites/frisians/fishers_house/init.lua 2019-06-21 11:33:28 +0000
989@@ -37,6 +37,10 @@
990 prohibited_till = 490
991 },
992
993+ indicate_workarea_overlaps = {
994+ frisians_fishers_house = false,
995+ },
996+
997 working_positions = {
998 frisians_fisher = 1
999 },
1000
1001=== modified file 'data/tribes/buildings/productionsites/frisians/foresters_house/init.lua'
1002--- data/tribes/buildings/productionsites/frisians/foresters_house/init.lua 2019-05-29 18:29:28 +0000
1003+++ data/tribes/buildings/productionsites/frisians/foresters_house/init.lua 2019-06-21 11:33:28 +0000
1004@@ -40,6 +40,15 @@
1005 frisians_forester = 1
1006 },
1007
1008+ indicate_workarea_overlaps = {
1009+ frisians_clay_pit = false,
1010+ frisians_berry_farm = false,
1011+ frisians_reed_farm = false,
1012+ frisians_farm = false,
1013+ frisians_foresters_house = false,
1014+ frisians_woodcutters_house = true,
1015+ },
1016+
1017 programs = {
1018 work = {
1019 -- TRANSLATORS: Completed/Skipped/Did not start planting trees because ...
1020
1021=== modified file 'data/tribes/buildings/productionsites/frisians/goldmine/init.lua'
1022--- data/tribes/buildings/productionsites/frisians/goldmine/init.lua 2019-05-29 18:29:28 +0000
1023+++ data/tribes/buildings/productionsites/frisians/goldmine/init.lua 2019-06-21 11:33:28 +0000
1024@@ -43,6 +43,11 @@
1025 },
1026 },
1027
1028+ indicate_workarea_overlaps = {
1029+ frisians_goldmine = false,
1030+ frisians_goldmine_deep = false,
1031+ },
1032+
1033 aihints = {
1034 mines = "gold",
1035 mines_percent = 50,
1036
1037=== modified file 'data/tribes/buildings/productionsites/frisians/goldmine_deep/init.lua'
1038--- data/tribes/buildings/productionsites/frisians/goldmine_deep/init.lua 2019-05-29 18:29:28 +0000
1039+++ data/tribes/buildings/productionsites/frisians/goldmine_deep/init.lua 2019-06-21 11:33:28 +0000
1040@@ -46,6 +46,11 @@
1041 mines = "gold",
1042 },
1043
1044+ indicate_workarea_overlaps = {
1045+ frisians_goldmine = false,
1046+ frisians_goldmine_deep = false,
1047+ },
1048+
1049 working_positions = {
1050 frisians_miner = 1,
1051 frisians_miner_master = 1,
1052
1053=== modified file 'data/tribes/buildings/productionsites/frisians/hunters_house/init.lua'
1054--- data/tribes/buildings/productionsites/frisians/hunters_house/init.lua 2019-05-29 18:29:28 +0000
1055+++ data/tribes/buildings/productionsites/frisians/hunters_house/init.lua 2019-06-21 11:33:28 +0000
1056@@ -36,6 +36,10 @@
1057 prohibited_till = 480
1058 },
1059
1060+ indicate_workarea_overlaps = {
1061+ frisians_hunters_house = false,
1062+ },
1063+
1064 working_positions = {
1065 frisians_hunter = 1
1066 },
1067
1068=== modified file 'data/tribes/buildings/productionsites/frisians/ironmine/init.lua'
1069--- data/tribes/buildings/productionsites/frisians/ironmine/init.lua 2019-05-29 18:29:28 +0000
1070+++ data/tribes/buildings/productionsites/frisians/ironmine/init.lua 2019-06-21 11:33:28 +0000
1071@@ -43,6 +43,11 @@
1072 },
1073 },
1074
1075+ indicate_workarea_overlaps = {
1076+ frisians_ironmine = false,
1077+ frisians_ironmine_deep = false,
1078+ },
1079+
1080 aihints = {
1081 mines = "iron",
1082 mines_percent = 50,
1083
1084=== modified file 'data/tribes/buildings/productionsites/frisians/ironmine_deep/init.lua'
1085--- data/tribes/buildings/productionsites/frisians/ironmine_deep/init.lua 2019-05-29 18:29:28 +0000
1086+++ data/tribes/buildings/productionsites/frisians/ironmine_deep/init.lua 2019-06-21 11:33:28 +0000
1087@@ -42,6 +42,11 @@
1088 },
1089 },
1090
1091+ indicate_workarea_overlaps = {
1092+ frisians_ironmine = false,
1093+ frisians_ironmine_deep = false,
1094+ },
1095+
1096 aihints = {
1097 mines = "iron",
1098 },
1099
1100=== modified file 'data/tribes/buildings/productionsites/frisians/quarry/init.lua'
1101--- data/tribes/buildings/productionsites/frisians/quarry/init.lua 2019-06-02 14:45:28 +0000
1102+++ data/tribes/buildings/productionsites/frisians/quarry/init.lua 2019-06-21 11:33:28 +0000
1103@@ -39,6 +39,10 @@
1104 frisians_stonemason = 1
1105 },
1106
1107+ indicate_workarea_overlaps = {
1108+ frisians_quarry = false,
1109+ },
1110+
1111 outputs = {
1112 "granite"
1113 },
1114
1115=== modified file 'data/tribes/buildings/productionsites/frisians/reed_farm/init.lua'
1116--- data/tribes/buildings/productionsites/frisians/reed_farm/init.lua 2019-05-29 18:29:28 +0000
1117+++ data/tribes/buildings/productionsites/frisians/reed_farm/init.lua 2019-06-21 11:33:28 +0000
1118@@ -47,6 +47,15 @@
1119 "reed"
1120 },
1121
1122+ indicate_workarea_overlaps = {
1123+ frisians_clay_pit = false,
1124+ frisians_berry_farm = false,
1125+ frisians_reed_farm = false,
1126+ frisians_farm = false,
1127+ frisians_foresters_house = false,
1128+ frisians_beekeepers_house = true,
1129+ },
1130+
1131 programs = {
1132 work = {
1133 -- TRANSLATORS: Completed/Skipped/Did not start working because ...
1134
1135=== modified file 'data/tribes/buildings/productionsites/frisians/rockmine/init.lua'
1136--- data/tribes/buildings/productionsites/frisians/rockmine/init.lua 2019-05-19 11:25:28 +0000
1137+++ data/tribes/buildings/productionsites/frisians/rockmine/init.lua 2019-06-21 11:33:28 +0000
1138@@ -43,6 +43,11 @@
1139 },
1140 },
1141
1142+ indicate_workarea_overlaps = {
1143+ frisians_rockmine = false,
1144+ frisians_rockmine_deep = false,
1145+ },
1146+
1147 aihints = {
1148 mines = "stones",
1149 mines_percent = 50,
1150
1151=== modified file 'data/tribes/buildings/productionsites/frisians/rockmine_deep/init.lua'
1152--- data/tribes/buildings/productionsites/frisians/rockmine_deep/init.lua 2019-05-19 11:25:28 +0000
1153+++ data/tribes/buildings/productionsites/frisians/rockmine_deep/init.lua 2019-06-21 11:33:28 +0000
1154@@ -42,6 +42,11 @@
1155 },
1156 },
1157
1158+ indicate_workarea_overlaps = {
1159+ frisians_rockmine = false,
1160+ frisians_rockmine_deep = false,
1161+ },
1162+
1163 aihints = {
1164 mines = "stones",
1165 },
1166
1167=== modified file 'data/tribes/buildings/productionsites/frisians/shipyard/init.lua'
1168--- data/tribes/buildings/productionsites/frisians/shipyard/init.lua 2019-05-29 18:29:28 +0000
1169+++ data/tribes/buildings/productionsites/frisians/shipyard/init.lua 2019-06-21 11:33:28 +0000
1170@@ -41,6 +41,10 @@
1171 prohibited_till = 1050
1172 },
1173
1174+ indicate_workarea_overlaps = {
1175+ frisians_shipyard = false,
1176+ },
1177+
1178 working_positions = {
1179 frisians_shipwright = 1
1180 },
1181
1182=== modified file 'data/tribes/buildings/productionsites/frisians/well/init.lua'
1183--- data/tribes/buildings/productionsites/frisians/well/init.lua 2018-07-13 11:25:10 +0000
1184+++ data/tribes/buildings/productionsites/frisians/well/init.lua 2019-06-21 11:33:28 +0000
1185@@ -44,6 +44,10 @@
1186 "water"
1187 },
1188
1189+ indicate_workarea_overlaps = {
1190+ frisians_well = false,
1191+ },
1192+
1193 programs = {
1194 work = {
1195 -- TRANSLATORS: Completed/Skipped/Did not start working because ...
1196
1197=== modified file 'data/tribes/buildings/productionsites/frisians/woodcutters_house/init.lua'
1198--- data/tribes/buildings/productionsites/frisians/woodcutters_house/init.lua 2019-06-02 13:16:53 +0000
1199+++ data/tribes/buildings/productionsites/frisians/woodcutters_house/init.lua 2019-06-21 11:33:28 +0000
1200@@ -43,6 +43,11 @@
1201 "log"
1202 },
1203
1204+ indicate_workarea_overlaps = {
1205+ frisians_foresters_house = true,
1206+ frisians_woodcutters_house = false,
1207+ },
1208+
1209 programs = {
1210 work = {
1211 -- TRANSLATORS: Completed/Skipped/Did not start felling trees because ...
1212
1213=== modified file 'data/txts/developers.json'
1214--- data/txts/developers.json 2019-04-22 05:24:58 +0000
1215+++ data/txts/developers.json 2019-06-21 11:33:28 +0000
1216@@ -159,7 +159,7 @@
1217 },
1218 {
1219 "heading": "Musicians",
1220- "image": "images/wui/overlays/workarea123.png",
1221+ "image": "images/wui/buildings/toggle_workarea.png",
1222 "entries":[
1223 {
1224 "members":[
1225@@ -178,7 +178,7 @@
1226 },
1227 {
1228 "heading": "Sound Effects",
1229- "image": "images/wui/overlays/workarea123.png",
1230+ "image": "images/wui/buildings/toggle_workarea.png",
1231 "entries":[
1232 {
1233 "members":[
1234
1235=== modified file 'src/logic/map_objects/tribes/productionsite.cc'
1236--- src/logic/map_objects/tribes/productionsite.cc 2019-05-29 07:14:00 +0000
1237+++ src/logic/map_objects/tribes/productionsite.cc 2019-06-21 11:33:28 +0000
1238@@ -208,6 +208,26 @@
1239 }
1240 }
1241
1242+ if (table.has_key("indicate_workarea_overlaps")) {
1243+ items_table = table.get_table("indicate_workarea_overlaps");
1244+ for (const std::string& s : items_table->keys<std::string>()) {
1245+ if (highlight_overlapping_workarea_for_.find(s) != highlight_overlapping_workarea_for_.end()) {
1246+ throw wexception("indicate_workarea_overlaps has duplicate entry");
1247+ }
1248+ highlight_overlapping_workarea_for_.emplace(s, items_table->get_bool(s));
1249+ }
1250+ }
1251+ if (workarea_info().empty() ^ highlight_overlapping_workarea_for_.empty()) {
1252+ if (highlight_overlapping_workarea_for_.empty()) {
1253+ log("WARNING: Productionsite %s has a workarea but does not inform about any conflicting buildings\n",
1254+ name().c_str());
1255+ } else {
1256+ throw GameDataError(
1257+ "Productionsite %s without a workarea must not inform about conflicting buildings",
1258+ name().c_str());
1259+ }
1260+ }
1261+
1262 // Verify that any map resource collected is valid
1263 if (!hints().collects_ware_from_map().empty()) {
1264 if (!(tribes.ware_exists(hints().collects_ware_from_map()))) {
1265
1266=== modified file 'src/logic/map_objects/tribes/productionsite.h'
1267--- src/logic/map_objects/tribes/productionsite.h 2019-05-28 21:04:36 +0000
1268+++ src/logic/map_objects/tribes/productionsite.h 2019-06-21 11:33:28 +0000
1269@@ -128,6 +128,20 @@
1270 return out_of_resource_productivity_threshold_;
1271 }
1272
1273+ bool highlight_overlapping_workarea_for(const std::string& n, bool* positive) const {
1274+ const auto it = highlight_overlapping_workarea_for_.find(n);
1275+ if (it == highlight_overlapping_workarea_for_.end()) {
1276+ return false;
1277+ } else {
1278+ *positive = it->second;
1279+ return true;
1280+ }
1281+ }
1282+
1283+ const std::map<std::string, bool>& get_highlight_overlapping_workarea_for() const {
1284+ return highlight_overlapping_workarea_for_;
1285+ }
1286+
1287 private:
1288 BillOfMaterials working_positions_;
1289 BillOfMaterials input_wares_;
1290@@ -140,6 +154,7 @@
1291 std::string out_of_resource_message_;
1292 std::string resource_not_needed_message_;
1293 int out_of_resource_productivity_threshold_;
1294+ std::map<std::string, bool> highlight_overlapping_workarea_for_;
1295
1296 DISALLOW_COPY_AND_ASSIGN(ProductionSiteDescr);
1297 };
1298
1299=== modified file 'src/logic/map_objects/tribes/tribes.cc'
1300--- src/logic/map_objects/tribes/tribes.cc 2019-05-29 06:24:42 +0000
1301+++ src/logic/map_objects/tribes/tribes.cc 2019-06-21 11:33:28 +0000
1302@@ -335,6 +335,22 @@
1303 for (const auto& job : de->working_positions()) {
1304 workers_->get_mutable(job.first)->add_employer(i);
1305 }
1306+
1307+ // Check that all workarea overlap hints are valid
1308+ for (const auto& pair : de->get_highlight_overlapping_workarea_for()) {
1309+ const DescriptionIndex di = safe_building_index(pair.first);
1310+ if (upcast(const ProductionSiteDescr, p, get_building_descr(di))) {
1311+ if (!p->workarea_info().empty()) {
1312+ continue;
1313+ }
1314+ throw GameDataError(
1315+ "Productionsite %s will inform about conflicting building %s which doesn’t have a workarea",
1316+ de->name().c_str(), pair.first.c_str());
1317+ }
1318+ throw GameDataError(
1319+ "Productionsite %s will inform about conflicting building %s which is not a productionsite",
1320+ de->name().c_str(), pair.first.c_str());
1321+ }
1322 }
1323
1324 // Register which buildings buildings can have been enhanced from
1325
1326=== modified file 'src/wui/fieldaction.cc'
1327--- src/wui/fieldaction.cc 2019-05-31 19:31:45 +0000
1328+++ src/wui/fieldaction.cc 2019-06-21 11:33:28 +0000
1329@@ -208,6 +208,7 @@
1330 bool showing_workarea_preview_;
1331 std::set<Widelands::Coords> overlapping_workareas_;
1332 bool is_showing_workarea_overlaps_;
1333+ Widelands::DescriptionIndex building_under_mouse_;
1334
1335 /// Variables to use with attack dialog.
1336 AttackBox* attack_box_;
1337@@ -258,6 +259,7 @@
1338 best_tab_(0),
1339 showing_workarea_preview_(false),
1340 is_showing_workarea_overlaps_(ib->get_display_flag(InteractiveBase::dfShowWorkareaOverlap)),
1341+ building_under_mouse_(Widelands::INVALID_INDEX),
1342 attack_box_(nullptr) {
1343 ib->set_sel_freeze(true);
1344 set_center_panel(&tabpanel_);
1345@@ -280,12 +282,14 @@
1346 if (!is_showing_workarea_overlaps_) {
1347 clear_overlapping_workareas();
1348 }
1349-#ifndef NDEBUG
1350 else {
1351- // Desired overlaps will be shown as soon as the user moves the mouse
1352 assert(overlapping_workareas_.empty());
1353+ if (building_under_mouse_ != Widelands::INVALID_INDEX) {
1354+ const Widelands::DescriptionIndex di = building_under_mouse_;
1355+ building_icon_mouse_out(di); // this unsets building_under_mouse_
1356+ building_icon_mouse_in(di);
1357+ }
1358 }
1359-#endif
1360 }
1361 if (player_ && player_->vision(node_.field - &ibase().egbase().map()[0]) <= 1 &&
1362 !player_->see_all()) {
1363@@ -730,13 +734,20 @@
1364 if (showing_workarea_preview_) {
1365 ibase().hide_workarea(node_, false);
1366 showing_workarea_preview_ = false;
1367+ building_under_mouse_ = Widelands::INVALID_INDEX;
1368 clear_overlapping_workareas();
1369 }
1370 }
1371
1372+constexpr uint32_t kOverlapColorDefault = 0xff3f3fbf;
1373+constexpr uint32_t kOverlapColorPositive = 0xff3fbf3f;
1374+constexpr uint32_t kOverlapColorNegative = 0xffbf3f3f;
1375+constexpr uint32_t kOverlapColorPale = 0x7fffffff;
1376+
1377 void FieldActionWindow::building_icon_mouse_in(const Widelands::DescriptionIndex idx) {
1378 if (!showing_workarea_preview_) {
1379 assert(overlapping_workareas_.empty());
1380+ building_under_mouse_ = idx;
1381 const Widelands::BuildingDescr& descr = *player_->tribe().get_building_descr(idx);
1382 const WorkareaInfo& workarea_info = descr.workarea_info();
1383 ibase().show_workarea(workarea_info, node_);
1384@@ -768,11 +779,14 @@
1385 continue;
1386 }
1387 const Widelands::BuildingDescr* d = nullptr;
1388+ bool positive = false; // unused default value to make g++ happy
1389 if (imm_type == Widelands::MapObjectType::CONSTRUCTIONSITE) {
1390 upcast(Widelands::ConstructionSite, cs, imm);
1391 d = cs->get_info().becomes;
1392 if ((descr.type() == Widelands::MapObjectType::PRODUCTIONSITE &&
1393- d->type() != Widelands::MapObjectType::PRODUCTIONSITE) ||
1394+ (d->type() != Widelands::MapObjectType::PRODUCTIONSITE ||
1395+ !dynamic_cast<const Widelands::ProductionSiteDescr&>(descr).
1396+ highlight_overlapping_workarea_for(d->name(), &positive))) ||
1397 ((descr.type() == Widelands::MapObjectType::MILITARYSITE ||
1398 descr.type() == Widelands::MapObjectType::WAREHOUSE) &&
1399 imm_type != Widelands::MapObjectType::MILITARYSITE &&
1400@@ -781,7 +795,8 @@
1401 }
1402 } else if (descr.type() == Widelands::MapObjectType::PRODUCTIONSITE) {
1403 if (imm_type != Widelands::MapObjectType::PRODUCTIONSITE ||
1404- imm->get_owner() != player_) {
1405+ imm->get_owner() != player_ || !dynamic_cast<const Widelands::ProductionSiteDescr&>(
1406+ descr).highlight_overlapping_workarea_for(imm->descr().name(), &positive)) {
1407 continue;
1408 }
1409 } else if (descr.type() == Widelands::MapObjectType::WAREHOUSE ||
1410@@ -811,7 +826,12 @@
1411 std::map<Widelands::TCoords<>, uint32_t> colors;
1412 for (const Widelands::TCoords<>& t : map.triangles_in_region(
1413 map.to_set(Widelands::Area<>(mr.location(), wa_radius)))) {
1414- colors[t] = main_region.count(t) ? 0xffbf3f3f : 0x7fffffff;
1415+ colors[t] = mr.location() == t.node || mr.location() == map.br_n(t.node) ||
1416+ mr.location() == (t.t == Widelands::TriangleIndex::D ? map.bl_n(t.node) :
1417+ map.r_n(t.node)) || main_region.count(t) ?
1418+ descr.type() == Widelands::MapObjectType::PRODUCTIONSITE ?
1419+ positive ? kOverlapColorPositive : kOverlapColorNegative :
1420+ kOverlapColorDefault : kOverlapColorPale;
1421 }
1422 ibase().show_workarea(wa, mr.location(), colors);
1423 overlapping_workareas_.insert(mr.location());

Subscribers

People subscribed via source and target branches

to status/vote changes: