Merge lp:~widelands-dev/widelands/move_out_triangle_index into lp:widelands
- move_out_triangle_index
- Merge into trunk
Proposed by
SirVer
Status: | Merged |
---|---|
Merged at revision: | 8440 |
Proposed branch: | lp:~widelands-dev/widelands/move_out_triangle_index |
Merge into: | lp:widelands |
Diff against target: |
717 lines (+93/-88) 17 files modified
src/editor/editorinteractive.cc (+1/-1) src/editor/tools/info_tool.cc (+1/-1) src/editor/tools/set_terrain_tool.cc (+6/-9) src/logic/editor_game_base.cc (+1/-1) src/logic/field.h (+2/-2) src/logic/map.cc (+1/-1) src/logic/maptriangleregion.cc (+30/-30) src/logic/maptriangleregion.h (+8/-8) src/logic/player.cc (+1/-1) src/logic/widelands_geometry.h (+3/-3) src/map_io/map_players_view_packet.cc (+21/-14) src/scripting/lua_map.cc (+2/-2) src/wui/game_debug_ui.cc (+3/-3) src/wui/interactive_base.cc (+2/-1) src/wui/interactive_base.h (+1/-1) src/wui/interactive_player.cc (+2/-2) src/wui/mapviewpixelfunctions.cc (+8/-8) |
To merge this branch: | bzr merge lp:~widelands-dev/widelands/move_out_triangle_index |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
GunChleoc | Approve | ||
Review via email:
|
Commit message
Pull out TriangleIndex from TCoords.
It is independently useful and does not require the templating that TCoords has.
Description of the change
To post a comment you must log in.
Revision history for this message
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
bunnybot (widelandsofficial) wrote : | # |
Continuous integration builds have changed state:
Travis build 2623. State: passed. Details: https:/
Appveyor build 2445. State: success. Details: https:/
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'src/editor/editorinteractive.cc' |
2 | --- src/editor/editorinteractive.cc 2017-08-28 19:34:33 +0000 |
3 | +++ src/editor/editorinteractive.cc 2017-08-30 15:58:56 +0000 |
4 | @@ -675,7 +675,7 @@ |
5 | map_view()->set_view(MapView::View{Vector2f::zero(), 1.f}, MapView::Transition::Jump); |
6 | set_sel_pos(Widelands::NodeAndTriangle<>( |
7 | Widelands::Coords(0, 0), |
8 | - Widelands::TCoords<>(Widelands::Coords(0, 0), Widelands::TCoords<>::D))); |
9 | + Widelands::TCoords<>(Widelands::Coords(0, 0), Widelands::TriangleIndex::D))); |
10 | break; |
11 | |
12 | case MapWas::kGloballyMutated: |
13 | |
14 | === modified file 'src/editor/tools/info_tool.cc' |
15 | --- src/editor/tools/info_tool.cc 2017-08-16 05:10:15 +0000 |
16 | +++ src/editor/tools/info_tool.cc 2017-08-30 15:58:56 +0000 |
17 | @@ -115,7 +115,7 @@ |
18 | |
19 | const Widelands::Field& tf = (*map)[center.triangle]; |
20 | const Widelands::TerrainDescription& ter = world.terrain_descr( |
21 | - center.triangle.t == Widelands::TCoords<>::D ? tf.terrain_d() : tf.terrain_r()); |
22 | + center.triangle.t == Widelands::TriangleIndex::D ? tf.terrain_d() : tf.terrain_r()); |
23 | |
24 | buf += |
25 | "• " + (boost::format(pgettext("terrain_name", "Name: %s")) % ter.descname()).str() + "\n"; |
26 | |
27 | === modified file 'src/editor/tools/set_terrain_tool.cc' |
28 | --- src/editor/tools/set_terrain_tool.cc 2017-01-25 18:55:59 +0000 |
29 | +++ src/editor/tools/set_terrain_tool.cc 2017-08-30 15:58:56 +0000 |
30 | @@ -29,7 +29,7 @@ |
31 | EditorInteractive& /* parent */, |
32 | EditorActionArgs* args, |
33 | Widelands::Map* map) { |
34 | - assert(center.triangle.t == TCoords<>::D || center.triangle.t == TCoords<>::R); |
35 | + assert(center.triangle.t == Widelands::TriangleIndex::D || center.triangle.t == Widelands::TriangleIndex::R); |
36 | uint16_t const radius = args->sel_radius; |
37 | int32_t max = 0; |
38 | |
39 | @@ -37,11 +37,10 @@ |
40 | Widelands::MapTriangleRegion<TCoords<Widelands::FCoords>> mr( |
41 | *map, Widelands::Area<TCoords<Widelands::FCoords>>( |
42 | TCoords<Widelands::FCoords>( |
43 | - Widelands::FCoords(map->get_fcoords(center.triangle)), |
44 | - static_cast<TCoords<Widelands::FCoords>::TriangleIndex>(center.triangle.t)), |
45 | + Widelands::FCoords(map->get_fcoords(center.triangle)), center.triangle.t), |
46 | radius)); |
47 | do { |
48 | - args->original_terrain_type.push_back((mr.location().t == TCoords<Widelands::FCoords>::D) ? |
49 | + args->original_terrain_type.push_back((mr.location().t == Widelands::TriangleIndex::D) ? |
50 | mr.location().field->terrain_d() : |
51 | mr.location().field->terrain_r()); |
52 | args->terrain_type.push_back(get_random_enabled()); |
53 | @@ -52,8 +51,7 @@ |
54 | Widelands::MapTriangleRegion<TCoords<Widelands::FCoords>> mr( |
55 | *map, Widelands::Area<TCoords<Widelands::FCoords>>( |
56 | TCoords<Widelands::FCoords>( |
57 | - Widelands::FCoords(map->get_fcoords(center.triangle)), |
58 | - static_cast<TCoords<Widelands::FCoords>::TriangleIndex>(center.triangle.t)), |
59 | + Widelands::FCoords(map->get_fcoords(center.triangle)), center.triangle.t), |
60 | radius)); |
61 | std::list<Widelands::DescriptionIndex>::iterator i = args->terrain_type.begin(); |
62 | do { |
63 | @@ -70,15 +68,14 @@ |
64 | EditorInteractive& /* parent */, |
65 | EditorActionArgs* args, |
66 | Widelands::Map* map) { |
67 | - assert(center.triangle.t == TCoords<>::D || center.triangle.t == TCoords<>::R); |
68 | + assert(center.triangle.t == Widelands::TriangleIndex::D || center.triangle.t == Widelands::TriangleIndex::R); |
69 | uint16_t const radius = args->sel_radius; |
70 | if (!args->terrain_type.empty()) { |
71 | int32_t max = 0; |
72 | Widelands::MapTriangleRegion<TCoords<Widelands::FCoords>> mr( |
73 | *map, Widelands::Area<TCoords<Widelands::FCoords>>( |
74 | TCoords<Widelands::FCoords>( |
75 | - Widelands::FCoords(map->get_fcoords(center.triangle)), |
76 | - static_cast<TCoords<Widelands::FCoords>::TriangleIndex>(center.triangle.t)), |
77 | + Widelands::FCoords(map->get_fcoords(center.triangle)), center.triangle.t), |
78 | radius)); |
79 | |
80 | std::list<Widelands::DescriptionIndex>::iterator i = args->original_terrain_type.begin(); |
81 | |
82 | === modified file 'src/logic/editor_game_base.cc' |
83 | --- src/logic/editor_game_base.cc 2017-08-20 15:45:50 +0000 |
84 | +++ src/logic/editor_game_base.cc 2017-08-30 15:58:56 +0000 |
85 | @@ -180,7 +180,7 @@ |
86 | iterate_players_existing_const(plnum, kMaxPlayers, *this, p) { |
87 | Player::Field& player_field = p->fields_[i]; |
88 | if (1 < player_field.vision) { |
89 | - player_field.map_object_descr[TCoords<>::None] = descr; |
90 | + player_field.map_object_descr[static_cast<int>(TriangleIndex::None)] = descr; |
91 | } |
92 | } |
93 | } |
94 | |
95 | === modified file 'src/logic/field.h' |
96 | --- src/logic/field.h 2017-08-16 13:23:15 +0000 |
97 | +++ src/logic/field.h 2017-08-30 15:58:56 +0000 |
98 | @@ -110,10 +110,10 @@ |
99 | void set_terrains(const Terrains& i) { |
100 | terrains = i; |
101 | } |
102 | - void set_terrain(const TCoords<FCoords>::TriangleIndex& t, DescriptionIndex const i) |
103 | + void set_terrain(const TriangleIndex& t, DescriptionIndex const i) |
104 | |
105 | { |
106 | - if (t == TCoords<FCoords>::D) |
107 | + if (t == TriangleIndex::D) |
108 | set_terrain_d(i); |
109 | else |
110 | set_terrain_r(i); |
111 | |
112 | === modified file 'src/logic/map.cc' |
113 | --- src/logic/map.cc 2017-08-28 13:37:51 +0000 |
114 | +++ src/logic/map.cc 2017-08-30 15:58:56 +0000 |
115 | @@ -1755,7 +1755,7 @@ |
116 | // check south-west vertex if d-Triangle is changed, check east vertex if r-Triangle is changed |
117 | Widelands::FCoords f_sw_e(c, c.field); |
118 | get_neighbour( |
119 | - f_sw_e, c.t == TCoords<FCoords>::D ? Widelands::WALK_SW : Widelands::WALK_E, &f_sw_e); |
120 | + f_sw_e, c.t == TriangleIndex::D ? Widelands::WALK_SW : Widelands::WALK_E, &f_sw_e); |
121 | if (!is_resource_valid(world, f_sw_e, f_sw_e.field->get_resources())) { |
122 | clear_resources(f_sw_e); |
123 | } |
124 | |
125 | === modified file 'src/logic/maptriangleregion.cc' |
126 | --- src/logic/maptriangleregion.cc 2017-01-25 18:55:59 +0000 |
127 | +++ src/logic/maptriangleregion.cc 2017-08-30 15:58:56 +0000 |
128 | @@ -24,13 +24,13 @@ |
129 | template <> |
130 | MapTriangleRegion<>::MapTriangleRegion(const Map& map, Area<TCoords<>> area) |
131 | : radius_is_odd_(area.radius & 1) { |
132 | - assert(area.t == TCoords<>::R || area.t == TCoords<>::D); |
133 | + assert(area.t == TriangleIndex::R || area.t == TriangleIndex::D); |
134 | const uint16_t radius_plus_1 = area.radius + 1; |
135 | const uint16_t half_radius_rounded_down = area.radius / 2; |
136 | row_length_ = radius_plus_1; |
137 | for (uint32_t i = half_radius_rounded_down; i; --i) |
138 | map.get_tln(area, &area); |
139 | - if (area.t == TCoords<>::R) { |
140 | + if (area.t == TriangleIndex::R) { |
141 | left_ = area; |
142 | if (area.radius) { |
143 | remaining_rows_in_upper_phase_ = half_radius_rounded_down + 1; |
144 | @@ -40,17 +40,17 @@ |
145 | phase_ = Top; |
146 | row_length_ = area.radius + 2; |
147 | remaining_in_row_ = radius_plus_1 / 2; |
148 | - area.t = TCoords<>::D; |
149 | + area.t = TriangleIndex::D; |
150 | } else { |
151 | phase_ = Upper; |
152 | remaining_in_row_ = row_length_ = radius_plus_1; |
153 | - area.t = TCoords<>::R; |
154 | + area.t = TriangleIndex::R; |
155 | } |
156 | } else { |
157 | assert(area.radius == 0); |
158 | phase_ = Bottom; |
159 | remaining_in_row_ = 0; |
160 | - area.t = TCoords<>::R; |
161 | + area.t = TriangleIndex::R; |
162 | } |
163 | } else { |
164 | remaining_rows_in_upper_phase_ = radius_plus_1 / 2; |
165 | @@ -60,13 +60,13 @@ |
166 | left_ = area; |
167 | phase_ = Upper; |
168 | remaining_in_row_ = row_length_ = area.radius + 2; |
169 | - area.t = TCoords<>::R; |
170 | + area.t = TriangleIndex::R; |
171 | } else { |
172 | map.get_bln(area, &left_); |
173 | phase_ = Top; |
174 | row_length_ = area.radius + 3; |
175 | remaining_in_row_ = half_radius_rounded_down + (0 < area.radius); |
176 | - area.t = TCoords<>::D; |
177 | + area.t = TriangleIndex::D; |
178 | } |
179 | } |
180 | location_ = area; |
181 | @@ -90,10 +90,10 @@ |
182 | break; |
183 | case Upper: |
184 | if (remaining_in_row_) { |
185 | - if (location_.t == TCoords<>::D) |
186 | - location_.t = TCoords<>::R; |
187 | + if (location_.t == TriangleIndex::D) |
188 | + location_.t = TriangleIndex::R; |
189 | else |
190 | - location_ = TCoords<>(map.r_n(location_), TCoords<>::D); |
191 | + location_ = TCoords<>(map.r_n(location_), TriangleIndex::D); |
192 | } else { |
193 | if (--remaining_rows_in_upper_phase_) { |
194 | row_length_ += 2; |
195 | @@ -103,7 +103,7 @@ |
196 | phase_ = Lower; |
197 | assert(row_length_ >= 2); |
198 | row_length_ -= 2; |
199 | - } else if (location_.t == TCoords<>::R) { |
200 | + } else if (location_.t == TriangleIndex::R) { |
201 | phase_ = Bottom; |
202 | row_length_ /= 2; |
203 | } else |
204 | @@ -116,16 +116,16 @@ |
205 | break; |
206 | case Lower: |
207 | if (remaining_in_row_) { |
208 | - if (location_.t == TCoords<>::D) |
209 | - location_.t = TCoords<>::R; |
210 | + if (location_.t == TriangleIndex::D) |
211 | + location_.t = TriangleIndex::R; |
212 | else |
213 | - location_ = TCoords<>(map.r_n(location_), TCoords<>::D); |
214 | + location_ = TCoords<>(map.r_n(location_), TriangleIndex::D); |
215 | } else { |
216 | if (--remaining_rows_in_lower_phase_) { |
217 | assert(row_length_ >= 2); |
218 | remaining_in_row_ = row_length_ -= 2; |
219 | left_ = map.br_n(left_); |
220 | - } else if (location_.t == TCoords<>::R) { |
221 | + } else if (location_.t == TriangleIndex::R) { |
222 | phase_ = Bottom; |
223 | remaining_in_row_ = row_length_ / 2; |
224 | left_ = map.br_n(left_); |
225 | @@ -145,13 +145,13 @@ |
226 | template <> |
227 | MapTriangleRegion<TCoords<FCoords>>::MapTriangleRegion(const Map& map, Area<TCoords<FCoords>> area) |
228 | : radius_is_odd_(area.radius & 1) { |
229 | - assert(area.t == TCoords<FCoords>::R || area.t == TCoords<FCoords>::D); |
230 | + assert(area.t == TriangleIndex::R || area.t == TriangleIndex::D); |
231 | const uint16_t radius_plus_1 = area.radius + 1; |
232 | const uint16_t half_radius_rounded_down = area.radius / 2; |
233 | row_length_ = radius_plus_1; |
234 | for (uint32_t i = half_radius_rounded_down; i; --i) |
235 | map.get_tln(area, &area); |
236 | - if (area.t == TCoords<FCoords>::R) { |
237 | + if (area.t == TriangleIndex::R) { |
238 | left_ = area; |
239 | if (area.radius) { |
240 | remaining_rows_in_upper_phase_ = half_radius_rounded_down + 1; |
241 | @@ -161,16 +161,16 @@ |
242 | phase_ = Top; |
243 | row_length_ = area.radius + 2; |
244 | remaining_in_row_ = radius_plus_1 / 2; |
245 | - area.t = TCoords<FCoords>::D; |
246 | + area.t = TriangleIndex::D; |
247 | } else { |
248 | phase_ = Upper; |
249 | remaining_in_row_ = row_length_ = radius_plus_1; |
250 | - area.t = TCoords<FCoords>::R; |
251 | + area.t = TriangleIndex::R; |
252 | } |
253 | } else { |
254 | phase_ = Bottom; |
255 | remaining_in_row_ = 0; |
256 | - area.t = TCoords<FCoords>::R; |
257 | + area.t = TriangleIndex::R; |
258 | } |
259 | } else { |
260 | remaining_rows_in_upper_phase_ = radius_plus_1 / 2; |
261 | @@ -180,13 +180,13 @@ |
262 | left_ = area; |
263 | phase_ = Upper; |
264 | remaining_in_row_ = row_length_ = area.radius + 2; |
265 | - area.t = TCoords<FCoords>::R; |
266 | + area.t = TriangleIndex::R; |
267 | } else { |
268 | map.get_bln(area, &left_); |
269 | phase_ = Top; |
270 | row_length_ = area.radius + 3; |
271 | remaining_in_row_ = half_radius_rounded_down + (0 < area.radius); |
272 | - area.t = TCoords<FCoords>::D; |
273 | + area.t = TriangleIndex::D; |
274 | } |
275 | } |
276 | location_ = area; |
277 | @@ -211,10 +211,10 @@ |
278 | break; |
279 | case Upper: |
280 | if (remaining_in_row_) { |
281 | - if (location_.t == TCoords<FCoords>::D) |
282 | - location_.t = TCoords<FCoords>::R; |
283 | + if (location_.t == TriangleIndex::D) |
284 | + location_.t = TriangleIndex::R; |
285 | else |
286 | - location_ = TCoords<FCoords>(map.r_n(location_), TCoords<FCoords>::D); |
287 | + location_ = TCoords<FCoords>(map.r_n(location_), TriangleIndex::D); |
288 | } else { |
289 | if (--remaining_rows_in_upper_phase_) { |
290 | row_length_ += 2; |
291 | @@ -224,7 +224,7 @@ |
292 | phase_ = Lower; |
293 | assert(row_length_ >= 2); |
294 | row_length_ -= 2; |
295 | - } else if (location_.t == TCoords<FCoords>::R) { |
296 | + } else if (location_.t == TriangleIndex::R) { |
297 | phase_ = Bottom; |
298 | row_length_ /= 2; |
299 | } else |
300 | @@ -237,16 +237,16 @@ |
301 | break; |
302 | case Lower: |
303 | if (remaining_in_row_) { |
304 | - if (location_.t == TCoords<FCoords>::D) |
305 | - location_.t = TCoords<FCoords>::R; |
306 | + if (location_.t == TriangleIndex::D) |
307 | + location_.t = TriangleIndex::R; |
308 | else |
309 | - location_ = TCoords<FCoords>(map.r_n(location_), TCoords<FCoords>::D); |
310 | + location_ = TCoords<FCoords>(map.r_n(location_), TriangleIndex::D); |
311 | } else { |
312 | if (--remaining_rows_in_lower_phase_) { |
313 | assert(row_length_ >= 2); |
314 | remaining_in_row_ = row_length_ -= 2; |
315 | left_ = map.br_n(left_); |
316 | - } else if (location_.t == TCoords<FCoords>::R) { |
317 | + } else if (location_.t == TriangleIndex::R) { |
318 | phase_ = Bottom; |
319 | remaining_in_row_ = row_length_ / 2; |
320 | left_ = map.br_n(left_); |
321 | |
322 | === modified file 'src/logic/maptriangleregion.h' |
323 | --- src/logic/maptriangleregion.h 2017-08-16 05:09:40 +0000 |
324 | +++ src/logic/maptriangleregion.h 2017-08-30 15:58:56 +0000 |
325 | @@ -37,8 +37,8 @@ |
326 | * left to right in each row and I see no reason why that would ever change.) |
327 | * |
328 | * The initial coordinates must refer to a triangle |
329 | - * (TCoords<>::D or TCoords<>::R). Use MapRegion instead for nodes |
330 | - * (TCoords<>::None). |
331 | + * (TriangleIndex::D or TriangleIndex::R). Use MapRegion instead for nodes |
332 | + * (TriangleIndex::None). |
333 | */ |
334 | template <typename CoordsType = TCoords<>, typename RadiusType = uint16_t> |
335 | struct MapTriangleRegion { |
336 | @@ -64,7 +64,7 @@ |
337 | }; |
338 | template <> struct MapTriangleRegion<FCoords> { |
339 | MapTriangleRegion(const Map& map, const Area<FCoords>& area) |
340 | - : area_(TCoords<FCoords>(area, TCoords<FCoords>::D), area.radius + 1), |
341 | + : area_(TCoords<FCoords>(area, TriangleIndex::D), area.radius + 1), |
342 | rowwidth_(area_.radius * 2 + 1), |
343 | remaining_in_row_(rowwidth_), |
344 | remaining_rows_(area_.radius * 2) { |
345 | @@ -79,21 +79,21 @@ |
346 | |
347 | bool advance(const Map& map) { |
348 | if (--remaining_in_row_) { |
349 | - if (area_.t == TCoords<FCoords>::D) |
350 | - area_.t = TCoords<FCoords>::R; |
351 | + if (area_.t == TriangleIndex::D) |
352 | + area_.t = TriangleIndex::R; |
353 | else { |
354 | - area_.t = TCoords<FCoords>::D; |
355 | + area_.t = TriangleIndex::D; |
356 | map.get_rn(area_, &area_); |
357 | } |
358 | } else if (area_.radius < --remaining_rows_) { |
359 | map.get_bln(left_, &area_); |
360 | left_ = area_; |
361 | - area_.t = TCoords<FCoords>::D; |
362 | + area_.t = TriangleIndex::D; |
363 | remaining_in_row_ = rowwidth_ += 2; |
364 | } else if (remaining_rows_) { |
365 | map.get_brn(left_, &area_); |
366 | left_ = area_; |
367 | - area_.t = TCoords<FCoords>::D; |
368 | + area_.t = TriangleIndex::D; |
369 | remaining_in_row_ = rowwidth_ -= 2; |
370 | } else |
371 | return false; |
372 | |
373 | === modified file 'src/logic/player.cc' |
374 | --- src/logic/player.cc 2017-08-19 22:22:20 +0000 |
375 | +++ src/logic/player.cc 2017-08-30 15:58:56 +0000 |
376 | @@ -963,7 +963,7 @@ |
377 | } |
378 | } else |
379 | map_object_descr = nullptr; |
380 | - field.map_object_descr[TCoords<>::None] = map_object_descr; |
381 | + field.map_object_descr[static_cast<int>(TriangleIndex::None)] = map_object_descr; |
382 | } |
383 | } |
384 | { // discover the D triangle and the SW edge of the top right neighbour |
385 | |
386 | === modified file 'src/logic/widelands_geometry.h' |
387 | --- src/logic/widelands_geometry.h 2017-08-27 20:25:47 +0000 |
388 | +++ src/logic/widelands_geometry.h 2017-08-30 15:58:56 +0000 |
389 | @@ -122,13 +122,13 @@ |
390 | Field* field; |
391 | }; |
392 | |
393 | +enum class TriangleIndex { D, R, None }; |
394 | + |
395 | // TODO(sirver): This should not derive from CoordsType. Replace with NodeAndTriangle. |
396 | template <typename CoordsType = Coords> struct TCoords : public CoordsType { |
397 | - enum TriangleIndex { D, R, None }; |
398 | - |
399 | TCoords() : t() { |
400 | } |
401 | - TCoords(const CoordsType C, const TriangleIndex T = None) : CoordsType(C), t(T) { |
402 | + TCoords(const CoordsType C, const TriangleIndex T = TriangleIndex::None) : CoordsType(C), t(T) { |
403 | } |
404 | |
405 | bool operator==(const TCoords& other) const { |
406 | |
407 | === modified file 'src/map_io/map_players_view_packet.cc' |
408 | --- src/map_io/map_players_view_packet.cc 2017-06-24 08:47:46 +0000 |
409 | +++ src/map_io/map_players_view_packet.cc 2017-08-30 15:58:56 +0000 |
410 | @@ -351,7 +351,7 @@ |
411 | map_object_descr = nullptr; |
412 | } else |
413 | map_object_descr = nullptr; |
414 | - f_player_field.map_object_descr[TCoords<>::None] = map_object_descr; |
415 | + f_player_field.map_object_descr[static_cast<int>(TriangleIndex::None)] = map_object_descr; |
416 | } |
417 | |
418 | { // triangles |
419 | @@ -554,7 +554,7 @@ |
420 | } |
421 | MapObjectData mod = read_unseen_immovable( |
422 | egbase, imm_kind, node_immovables_file, node_immovables_file_version); |
423 | - f_player_field.map_object_descr[TCoords<>::None] = mod.map_object_descr; |
424 | + f_player_field.map_object_descr[static_cast<int>(TriangleIndex::None)] = mod.map_object_descr; |
425 | f_player_field.constructionsite = mod.csi; |
426 | |
427 | // Read in whether this field had a border the last time it was seen |
428 | @@ -593,7 +593,7 @@ |
429 | map_object_descr = nullptr; |
430 | } else |
431 | map_object_descr = nullptr; |
432 | - f_player_field.map_object_descr[TCoords<>::None] = map_object_descr; |
433 | + f_player_field.map_object_descr[static_cast<int>(TriangleIndex::None)] = map_object_descr; |
434 | break; |
435 | } |
436 | |
437 | @@ -603,7 +603,7 @@ |
438 | // information about the triangle has not been saved. Fill in |
439 | // the information from the game state. |
440 | f_player_field.terrains.d = f.field->terrain_d(); |
441 | - f_player_field.map_object_descr[TCoords<>::D] = nullptr; |
442 | + f_player_field.map_object_descr[static_cast<int>(TriangleIndex::D)] = nullptr; |
443 | } else if (f_everseen | bl_everseen | br_everseen) { |
444 | // The player has seen the D triangle but does not see it now. |
445 | // Load his information about the triangle from file. |
446 | @@ -623,14 +623,15 @@ |
447 | } |
448 | MapObjectData mod = read_unseen_immovable( |
449 | egbase, im_kind, triangle_immovables_file, triangle_immovables_file_version); |
450 | - f_player_field.map_object_descr[TCoords<>::D] = mod.map_object_descr; |
451 | + f_player_field.map_object_descr[static_cast<int>(TriangleIndex::D)] = |
452 | + mod.map_object_descr; |
453 | } |
454 | if (f_seen | br_seen | r_seen) { |
455 | // The player currently sees the R triangle. Therefore his |
456 | // information about the triangle has not been saved. Fill in |
457 | // the information from the game state. |
458 | f_player_field.terrains.r = f.field->terrain_r(); |
459 | - f_player_field.map_object_descr[TCoords<>::R] = nullptr; |
460 | + f_player_field.map_object_descr[static_cast<int>(TriangleIndex::R)] = nullptr; |
461 | } else if (f_everseen | br_everseen | r_everseen) { |
462 | // The player has seen the R triangle but does not see it now. |
463 | // Load his information about the triangle from file. |
464 | @@ -650,7 +651,8 @@ |
465 | } |
466 | MapObjectData mod = read_unseen_immovable( |
467 | egbase, im_kind, triangle_immovables_file, triangle_immovables_file_version); |
468 | - f_player_field.map_object_descr[TCoords<>::R] = mod.map_object_descr; |
469 | + f_player_field.map_object_descr[static_cast<int>(TriangleIndex::R)] = |
470 | + mod.map_object_descr; |
471 | } |
472 | |
473 | { // edges |
474 | @@ -716,7 +718,8 @@ |
475 | kCurrentPacketVersionSurveyAmounts); |
476 | } |
477 | try { |
478 | - f_player_field.time_triangle_last_surveyed[TCoords<>::D] = |
479 | + f_player_field |
480 | + .time_triangle_last_surveyed[static_cast<int>(TriangleIndex::D)] = |
481 | survey_times_file.unsigned_32(); |
482 | } catch (const FileRead::FileBoundaryExceeded&) { |
483 | throw GameDataError( |
484 | @@ -750,7 +753,8 @@ |
485 | kCurrentPacketVersionSurveyAmounts); |
486 | } |
487 | try { |
488 | - f_player_field.time_triangle_last_surveyed[TCoords<>::R] = |
489 | + f_player_field |
490 | + .time_triangle_last_surveyed[static_cast<int>(TriangleIndex::R)] = |
491 | survey_times_file.unsigned_32(); |
492 | } catch (const FileRead::FileBoundaryExceeded&) { |
493 | throw GameDataError( |
494 | @@ -895,7 +899,8 @@ |
495 | assert(f_player_field.owner < 0x20); |
496 | owners_file.unsigned_8(f_player_field.owner); |
497 | MapObjectData mod; |
498 | - mod.map_object_descr = f_player_field.map_object_descr[TCoords<>::None]; |
499 | + mod.map_object_descr = |
500 | + f_player_field.map_object_descr[static_cast<int>(TriangleIndex::None)]; |
501 | mod.csi = f_player_field.constructionsite; |
502 | write_unseen_immovable(&mod, node_immovable_kinds_file, node_immovables_file); |
503 | |
504 | @@ -915,7 +920,8 @@ |
505 | (!bl_seen & !br_seen & (f_everseen | bl_everseen | br_everseen)) { |
506 | terrains_file.unsigned_8(f_player_field.terrains.d); |
507 | MapObjectData mod; |
508 | - mod.map_object_descr = f_player_field.map_object_descr[TCoords<>::D]; |
509 | + mod.map_object_descr = |
510 | + f_player_field.map_object_descr[static_cast<int>(TriangleIndex::D)]; |
511 | write_unseen_immovable( |
512 | &mod, triangle_immovable_kinds_file, triangle_immovables_file); |
513 | } |
514 | @@ -925,7 +931,8 @@ |
515 | (!br_seen & !r_seen & (f_everseen | br_everseen | r_everseen)) { |
516 | terrains_file.unsigned_8(f_player_field.terrains.r); |
517 | MapObjectData mod; |
518 | - mod.map_object_descr = f_player_field.map_object_descr[TCoords<>::R]; |
519 | + mod.map_object_descr = |
520 | + f_player_field.map_object_descr[static_cast<int>(TriangleIndex::R)]; |
521 | write_unseen_immovable( |
522 | &mod, triangle_immovable_kinds_file, triangle_immovables_file); |
523 | } |
524 | @@ -942,7 +949,7 @@ |
525 | // geologic survey |
526 | if (f_everseen & bl_everseen & br_everseen) { |
527 | const uint32_t time_last_surveyed = |
528 | - f_player_field.time_triangle_last_surveyed[TCoords<>::D]; |
529 | + f_player_field.time_triangle_last_surveyed[static_cast<int>(TriangleIndex::D)]; |
530 | const uint8_t has_info = time_last_surveyed != 0xffffffff; |
531 | surveys_file.unsigned_8(has_info); |
532 | if (has_info) { |
533 | @@ -952,7 +959,7 @@ |
534 | } |
535 | if (f_everseen & br_everseen & r_everseen) { |
536 | const uint32_t time_last_surveyed = |
537 | - f_player_field.time_triangle_last_surveyed[TCoords<>::R]; |
538 | + f_player_field.time_triangle_last_surveyed[static_cast<int>(TriangleIndex::R)]; |
539 | const uint8_t has_info = time_last_surveyed != 0xffffffff; |
540 | surveys_file.unsigned_8(has_info); |
541 | if (has_info) { |
542 | |
543 | === modified file 'src/scripting/lua_map.cc' |
544 | --- src/scripting/lua_map.cc 2017-08-20 17:45:42 +0000 |
545 | +++ src/scripting/lua_map.cc 2017-08-30 15:58:56 +0000 |
546 | @@ -5973,7 +5973,7 @@ |
547 | report_error(L, "Unknown terrain '%s'", name); |
548 | |
549 | egbase.mutable_map()->change_terrain( |
550 | - world, TCoords<FCoords>(fcoords(L), TCoords<FCoords>::R), td); |
551 | + world, TCoords<FCoords>(fcoords(L), TriangleIndex::R), td); |
552 | |
553 | lua_pushstring(L, name); |
554 | return 1; |
555 | @@ -5993,7 +5993,7 @@ |
556 | report_error(L, "Unknown terrain '%s'", name); |
557 | |
558 | egbase.mutable_map()->change_terrain( |
559 | - world, TCoords<FCoords>(fcoords(L), TCoords<FCoords>::D), td); |
560 | + world, TCoords<FCoords>(fcoords(L), TriangleIndex::D), td); |
561 | |
562 | lua_pushstring(L, name); |
563 | return 1; |
564 | |
565 | === modified file 'src/wui/game_debug_ui.cc' |
566 | --- src/wui/game_debug_ui.cc 2017-08-19 22:22:20 +0000 |
567 | +++ src/wui/game_debug_ui.cc 2017-08-30 15:58:56 +0000 |
568 | @@ -282,7 +282,7 @@ |
569 | str += (boost::format(" vision: %u\n") % vision).str(); |
570 | { |
571 | Widelands::Time const time_last_surveyed = |
572 | - player_field.time_triangle_last_surveyed[Widelands::TCoords<>::D]; |
573 | + player_field.time_triangle_last_surveyed[static_cast<int>(Widelands::TriangleIndex::D)]; |
574 | |
575 | if (time_last_surveyed != Widelands::never()) { |
576 | str += (boost::format(" D triangle last surveyed at %u: amount %u\n") % |
577 | @@ -294,7 +294,7 @@ |
578 | } |
579 | { |
580 | Widelands::Time const time_last_surveyed = |
581 | - player_field.time_triangle_last_surveyed[Widelands::TCoords<>::R]; |
582 | + player_field.time_triangle_last_surveyed[static_cast<int>(Widelands::TriangleIndex::R)]; |
583 | |
584 | if (time_last_surveyed != Widelands::never()) { |
585 | str += (boost::format(" R triangle last surveyed at %u: amount %u\n") % |
586 | @@ -310,7 +310,7 @@ |
587 | break; |
588 | case 1: { |
589 | std::string animation_name = "(no animation)"; |
590 | - if (player_field.map_object_descr[Widelands::TCoords<>::None]) { |
591 | + if (player_field.map_object_descr[static_cast<int>(Widelands::TriangleIndex::None)]) { |
592 | animation_name = "(seen an animation)"; |
593 | } |
594 | |
595 | |
596 | === modified file 'src/wui/interactive_base.cc' |
597 | --- src/wui/interactive_base.cc 2017-08-20 19:58:19 +0000 |
598 | +++ src/wui/interactive_base.cc 2017-08-30 15:58:56 +0000 |
599 | @@ -43,6 +43,7 @@ |
600 | #include "logic/maphollowregion.h" |
601 | #include "logic/maptriangleregion.h" |
602 | #include "logic/player.h" |
603 | +#include "logic/widelands_geometry.h" |
604 | #include "profile/profile.h" |
605 | #include "scripting/lua_interface.h" |
606 | #include "wui/field_overlay_manager.h" |
607 | @@ -161,7 +162,7 @@ |
608 | |
609 | // register sel overlay position |
610 | if (sel_.triangles) { |
611 | - assert(center.triangle.t == TCoords<>::D || center.triangle.t == TCoords<>::R); |
612 | + assert(center.triangle.t == Widelands::TriangleIndex::D || center.triangle.t == Widelands::TriangleIndex::R); |
613 | Widelands::MapTriangleRegion<> mr(map, Area<TCoords<>>(center.triangle, sel_.radius)); |
614 | do |
615 | field_overlay_manager_->register_overlay( |
616 | |
617 | === modified file 'src/wui/interactive_base.h' |
618 | --- src/wui/interactive_base.h 2017-08-20 16:12:28 +0000 |
619 | +++ src/wui/interactive_base.h 2017-08-30 15:58:56 +0000 |
620 | @@ -233,7 +233,7 @@ |
621 | const bool Triangles = false, |
622 | const Widelands::NodeAndTriangle<>& Pos = Widelands::NodeAndTriangle<>( |
623 | Widelands::Coords(0, 0), |
624 | - Widelands::TCoords<>(Widelands::Coords(0, 0), Widelands::TCoords<>::D)), |
625 | + Widelands::TCoords<>(Widelands::Coords(0, 0), Widelands::TriangleIndex::D)), |
626 | const uint32_t Radius = 0, |
627 | const Image* Pic = nullptr, |
628 | const FieldOverlayManager::OverlayId Jobid = 0) |
629 | |
630 | === modified file 'src/wui/interactive_player.cc' |
631 | --- src/wui/interactive_player.cc 2017-08-29 10:48:24 +0000 |
632 | +++ src/wui/interactive_player.cc 2017-08-30 15:58:56 +0000 |
633 | @@ -126,7 +126,7 @@ |
634 | const float scale, |
635 | RenderTarget* dst) { |
636 | if (const Widelands::MapObjectDescr* const map_object_descr = |
637 | - player_field.map_object_descr[Widelands::TCoords<>::None]) { |
638 | + player_field.map_object_descr[static_cast<int>(Widelands::TriangleIndex::None)]) { |
639 | if (player_field.constructionsite.becomes) { |
640 | assert(field.owner != nullptr); |
641 | const Widelands::ConstructionsiteInformation& csinf = player_field.constructionsite; |
642 | @@ -286,7 +286,7 @@ |
643 | map_view()->mouse_to_field(flag_to_connect_, MapView::Transition::Jump); |
644 | set_sel_pos(Widelands::NodeAndTriangle<>( |
645 | flag_to_connect_, |
646 | - Widelands::TCoords<>(flag_to_connect_, Widelands::TCoords<>::D))); |
647 | + Widelands::TCoords<>(flag_to_connect_, Widelands::TriangleIndex::D))); |
648 | start_build_road(flag_to_connect_, field.get_owned_by()); |
649 | } |
650 | flag_to_connect_ = Widelands::Coords::null(); |
651 | |
652 | === modified file 'src/wui/mapviewpixelfunctions.cc' |
653 | --- src/wui/mapviewpixelfunctions.cc 2017-01-25 18:55:59 +0000 |
654 | +++ src/wui/mapviewpixelfunctions.cc 2017-08-30 15:58:56 +0000 |
655 | @@ -191,14 +191,14 @@ |
656 | if (pdy * kTriangleWidth > ldy * pdx) { |
657 | // (x, y) is in the upper triangle. |
658 | result.triangle = TCoords<>( |
659 | - Coords(left_col, (row_number == 0 ? mapheight : row_number) - 1), TCoords<>::D); |
660 | + Coords(left_col, (row_number == 0 ? mapheight : row_number) - 1), TriangleIndex::D); |
661 | } else { |
662 | Y_a = screen_y_base - map[Coords(left_col, next_row_number)].get_height() * kHeightFactor; |
663 | ldy = Y_b - Y_a; |
664 | if (pdy * (kTriangleWidth / 2) > ldy * pdx) { |
665 | // (x, y) is in the second triangle. |
666 | result.triangle = TCoords<>( |
667 | - Coords((right_col == 0 ? mapwidth : right_col) - 1, row_number), TCoords<>::R); |
668 | + Coords((right_col == 0 ? mapwidth : right_col) - 1, row_number), TriangleIndex::R); |
669 | } else { |
670 | Y_b = screen_y_base - |
671 | map[Coords(left_col + 1 == mapwidth ? 0 : left_col + 1, next_row_number)] |
672 | @@ -209,10 +209,10 @@ |
673 | pdx = (col_number + 2) * (kTriangleWidth / 2) - x; |
674 | if (pdy * kTriangleWidth > ldy * pdx) { |
675 | // (x, y) is in the third triangle. |
676 | - result.triangle = TCoords<>(Coords(right_col, row_number), TCoords<>::D); |
677 | + result.triangle = TCoords<>(Coords(right_col, row_number), TriangleIndex::D); |
678 | } else { |
679 | // (x, y) is in the lower triangle. |
680 | - result.triangle = TCoords<>(Coords(left_col, next_row_number), TCoords<>::R); |
681 | + result.triangle = TCoords<>(Coords(left_col, next_row_number), TriangleIndex::R); |
682 | } |
683 | } |
684 | } |
685 | @@ -229,7 +229,7 @@ |
686 | if (pdy * kTriangleWidth > ldy * pdx) { |
687 | // (x, y) is in the upper triangle. |
688 | result.triangle = TCoords<>( |
689 | - Coords(right_col, (row_number == 0 ? mapheight : row_number) - 1), TCoords<>::D); |
690 | + Coords(right_col, (row_number == 0 ? mapheight : row_number) - 1), TriangleIndex::D); |
691 | } else { |
692 | Y_b = screen_y_base - map[Coords(right_col, next_row_number)].get_height() * kHeightFactor; |
693 | ldy = Y_b - Y_a; |
694 | @@ -237,7 +237,7 @@ |
695 | pdx = (col_number + 1) * (kTriangleWidth / 2) - x; |
696 | if (pdy * (kTriangleWidth / 2) > ldy * pdx) { |
697 | // (x, y) is in the second triangle. |
698 | - result.triangle = TCoords<>(Coords(left_col, row_number), TCoords<>::R); |
699 | + result.triangle = TCoords<>(Coords(left_col, row_number), TriangleIndex::R); |
700 | } else { |
701 | Y_a = screen_y_base - |
702 | map[Coords((right_col == 0 ? mapwidth : right_col) - 1, next_row_number)] |
703 | @@ -246,12 +246,12 @@ |
704 | ldy = Y_b - Y_a; |
705 | if (pdy * kTriangleWidth > ldy * pdx) { |
706 | // (x, y) is in the third triangle. |
707 | - result.triangle = TCoords<>(Coords(left_col, row_number), TCoords<>::D); |
708 | + result.triangle = TCoords<>(Coords(left_col, row_number), TriangleIndex::D); |
709 | } else { |
710 | // (x, y) is in the lower triangle. |
711 | result.triangle = |
712 | TCoords<>(Coords((right_col == 0 ? mapwidth : right_col) - 1, next_row_number), |
713 | - TCoords<>::R); |
714 | + TriangleIndex::R); |
715 | } |
716 | } |
717 | } |
LGTM :)
@bunnybot merge