Merge lp:~widelands-dev/widelands/move_out_triangle_index into lp:widelands

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
Reviewer Review Type Date Requested Status
GunChleoc Approve
Review via email: mp+329919@code.launchpad.net

Commit message

Pull out TriangleIndex from TCoords.

It is independently useful and does not require the templating that TCoords has.

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

LGTM :)

@bunnybot merge

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

Continuous integration builds have changed state:

Travis build 2623. State: passed. Details: https://travis-ci.org/widelands/widelands/builds/270073718.
Appveyor build 2445. State: success. Details: https://ci.appveyor.com/project/widelands-dev/widelands/build/_widelands_dev_widelands_move_out_triangle_index-2445.

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 }

Subscribers

People subscribed via source and target branches

to status/vote changes: