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

Proposed by GunChleoc
Status: Merged
Merged at revision: 7094
Proposed branch: lp:~widelands-dev/widelands/mapobject_cleanup_building
Merge into: lp:widelands
Diff against target: 1037 lines (+112/-124)
19 files modified
src/ai/defaultai.cc (+5/-5)
src/logic/building.cc (+5/-5)
src/logic/building.h (+0/-12)
src/logic/constructionsite.cc (+4/-4)
src/logic/dismantlesite.cc (+2/-2)
src/logic/militarysite.cc (+7/-7)
src/logic/partially_finished_building.cc (+1/-1)
src/logic/playercommand.cc (+1/-1)
src/logic/production_program.cc (+2/-2)
src/logic/productionsite.cc (+7/-7)
src/logic/soldier.cc (+1/-1)
src/logic/trainingsite.cc (+1/-1)
src/logic/warehouse.cc (+47/-47)
src/map_io/widelands_map_building_data_packet.cc (+2/-2)
src/map_io/widelands_map_buildingdata_data_packet.cc (+21/-21)
src/wui/actionconfirm.cc (+1/-1)
src/wui/buildingwindow.cc (+3/-3)
src/wui/productionsitewindow.cc (+1/-1)
src/wui/soldierlist.cc (+1/-1)
To merge this branch: bzr merge lp:~widelands-dev/widelands/mapobject_cleanup_building
Reviewer Review Type Date Requested Status
SirVer Approve
Review via email: mp+226755@code.launchpad.net

Description of the change

MapObject cleanup for the Building object

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

Applied after fixing a small merge conflict due to recent merges.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/ai/defaultai.cc'
2--- src/ai/defaultai.cc 2014-07-14 07:31:18 +0000
3+++ src/ai/defaultai.cc 2014-07-14 22:50:15 +0000
4@@ -644,7 +644,7 @@
5
6 if (upcast(MilitarySite const, militarysite, building)) {
7 const int32_t dist = map.calc_distance(field.coords, immovables.at(i).coords);
8- const int32_t radius = militarysite->get_conquers() + 4;
9+ const int32_t radius = militarysite->descr().get_conquers() + 4;
10 const int32_t v = radius - dist;
11
12 if (v > 0 and dist > 0) {
13@@ -1995,7 +1995,7 @@
14
15 // Check whether building is enhanceable and if wares of the enhanced
16 // buildings are needed. If yes consider an upgrade.
17- std::set<Building_Index> enhancements = site.site->enhancements();
18+ std::set<Building_Index> enhancements = site.site->descr().enhancements();
19 int32_t maxprio = 0;
20 Building_Index enbld = INVALID_INDEX; // to get rid of this
21 BuildingObserver* bestbld = nullptr;
22@@ -2110,7 +2110,7 @@
23 }
24
25 // Check whether building is enhanceable. If yes consider an upgrade.
26- std::set<Building_Index> enhancements = site.site->enhancements();
27+ std::set<Building_Index> enhancements = site.site->descr().enhancements();
28 int32_t maxprio = 0;
29 Building_Index enbld = INVALID_INDEX;
30 BuildingObserver* bestbld = nullptr;
31@@ -2240,7 +2240,7 @@
32 bool changed = false;
33 Map& map = game().map();
34 MilitarySite* ms = militarysites.front().site;
35- uint32_t const vision = ms->vision_range();
36+ uint32_t const vision = ms->descr().vision_range();
37 FCoords f = map.get_fcoords(ms->get_position());
38 // look if there is any enemy land nearby
39 // FindNodeEnemy find_enemy(player, game());
40@@ -2662,7 +2662,7 @@
41
42 MilitarySite* ms = mso->site;
43 Building* target = ms; // dummy initialisation to silence the compiler
44- uint32_t const vision = ms->vision_range();
45+ uint32_t const vision = ms->descr().vision_range();
46 FCoords f = map.get_fcoords(ms->get_position());
47 int32_t chance = 0;
48 uint32_t attackers = 0;
49
50=== modified file 'src/logic/building.cc'
51--- src/logic/building.cc 2014-07-05 13:28:20 +0000
52+++ src/logic/building.cc 2014-07-14 22:50:15 +0000
53@@ -505,7 +505,7 @@
54 {
55 const bool fire = burn_on_destroy();
56 const Coords pos = m_position;
57- const Tribe_Descr & t = tribe();
58+ const Tribe_Descr & t = descr().tribe();
59 PlayerImmovable::destroy(egbase);
60 // We are deleted. Only use stack variables beyond this point
61 if (fire)
62@@ -551,13 +551,13 @@
63 FORMAT('y', get_position().y);
64 FORMAT
65 ('c', '(' << get_position().x << ", " << get_position().y << ')');
66- FORMAT('A', descname());
67+ FORMAT('A', descr().descname());
68 FORMAT('a', name());
69 case 'N':
70 if (upcast(ConstructionSite const, constructionsite, this))
71 result << constructionsite->building().descname();
72 else
73- result << descname();
74+ result << descr().descname();
75 break;
76 case 'n':
77 if (upcast(ConstructionSite const, constructionsite, this))
78@@ -887,10 +887,10 @@
79
80 if (see)
81 player.see_area
82- (Area<FCoords>(map.get_fcoords(get_position()), vision_range()));
83+ (Area<FCoords>(map.get_fcoords(get_position()), descr().vision_range()));
84 else
85 player.unsee_area
86- (Area<FCoords>(map.get_fcoords(get_position()), vision_range()));
87+ (Area<FCoords>(map.get_fcoords(get_position()), descr().vision_range()));
88
89 m_seeing = see;
90 }
91
92=== modified file 'src/logic/building.h'
93--- src/logic/building.h 2014-07-05 16:41:51 +0000
94+++ src/logic/building.h 2014-07-14 22:50:15 +0000
95@@ -180,8 +180,6 @@
96
97 void load_finish(Editor_Game_Base &) override;
98
99- const Tribe_Descr & tribe() const {return descr().tribe();}
100-
101 virtual int32_t get_type () const override;
102 char const * type_name() const override {return "building";}
103 virtual int32_t get_size () const override;
104@@ -195,7 +193,6 @@
105 virtual PositionList get_positions (const Editor_Game_Base &) const override;
106
107 const std::string & name() const override;
108- const std::string & descname() const {return descr().descname();}
109
110 std::string info_string(const std::string & format);
111 virtual std::string get_statistics_string();
112@@ -215,11 +212,6 @@
113
114 bool leave_check_and_wait(Game &, Worker &);
115 void leave_skip(Game &, Worker &);
116- uint32_t get_conquers() const {return descr().get_conquers();}
117- virtual uint32_t vision_range() const {
118- return descr().vision_range();
119- }
120-
121
122 // Get/Set the priority for this waretype for this building. 'type' defines
123 // if this is for a worker or a ware, 'index' is the type of worker or ware.
124@@ -233,10 +225,6 @@
125 void collect_priorities
126 (std::map<int32_t, std::map<Ware_Index, int32_t> > & p) const;
127
128- const std::set<Building_Index> & enhancements() const {
129- return descr().enhancements();
130- }
131-
132 /**
133 * The former buildings vector keeps track of all former buildings
134 * that have been enhanced up to the current one. The current building
135
136=== modified file 'src/logic/constructionsite.cc'
137--- src/logic/constructionsite.cc 2014-07-05 14:22:44 +0000
138+++ src/logic/constructionsite.cc 2014-07-14 22:50:15 +0000
139@@ -136,7 +136,7 @@
140 if (!m_old_buildings.empty()) {
141 // Enhancement
142 Building_Index was_index = m_old_buildings.back();
143- const Building_Descr* was_descr = tribe().get_building_descr(was_index);
144+ const Building_Descr* was_descr = descr().tribe().get_building_descr(was_index);
145 m_info.was = was_descr;
146 buildcost = &m_building->enhancement_cost();
147 } else {
148@@ -174,7 +174,7 @@
149
150 if (m_work_steps <= m_work_completed) {
151 // Put the real building in place
152- Building_Index becomes_idx = tribe().building_index(m_building->name());
153+ Building_Index becomes_idx = descr().tribe().building_index(m_building->name());
154 m_old_buildings.push_back(becomes_idx);
155 Building & b =
156 m_building->create(egbase, owner(), m_position, false, false, m_old_buildings);
157@@ -274,7 +274,7 @@
158 WaresQueue * queue = *iqueue;
159 if (queue->get_filled() > queue->get_max_fill()) {
160 queue->set_filled(queue->get_filled() - 1);
161- const WareDescr & wd = *tribe().get_ware_descr(queue->get_ware());
162+ const WareDescr & wd = *descr().tribe().get_ware_descr(queue->get_ware());
163 WareInstance & ware = *new WareInstance(queue->get_ware(), &wd);
164 ware.init(game);
165 worker.start_task_dropoff(game, ware);
166@@ -395,7 +395,7 @@
167 dst.drawanimrect(pos, anim_idx, tanim - FRAME_LENGTH, get_owner(), Rect(Point(0, 0), w, h - lines));
168 else if (!m_old_buildings.empty()) {
169 Building_Index prev_idx = m_old_buildings.back();
170- const Building_Descr* prev_building = tribe().get_building_descr(prev_idx);
171+ const Building_Descr* prev_building = descr().tribe().get_building_descr(prev_idx);
172 // Is the first picture but there was another building here before,
173 // get its most fitting picture and draw it instead.
174 uint32_t prev_building_anim_idx;
175
176=== modified file 'src/logic/dismantlesite.cc'
177--- src/logic/dismantlesite.cc 2014-07-03 19:26:30 +0000
178+++ src/logic/dismantlesite.cc 2014-07-14 22:50:15 +0000
179@@ -134,7 +134,7 @@
180 {
181 for (Building_Index former_idx : building->get_former_buildings()) {
182 const std::map<Ware_Index, uint8_t> * return_wares;
183- const Building_Descr* former_descr = building->tribe().get_building_descr(former_idx);
184+ const Building_Descr* former_descr = building->descr().tribe().get_building_descr(former_idx);
185 if (former_idx != building->get_former_buildings().front()) {
186 return_wares = & former_descr->returned_wares_enhanced();
187 } else {
188@@ -196,7 +196,7 @@
189 //update statistics
190 owner().ware_produced(wq.get_ware());
191
192- const WareDescr & wd = *tribe().get_ware_descr(wq.get_ware());
193+ const WareDescr & wd = *descr().tribe().get_ware_descr(wq.get_ware());
194 WareInstance & ware = *new WareInstance(wq.get_ware(), &wd);
195 ware.init(game);
196 worker.start_task_dropoff(game, ware);
197
198=== modified file 'src/logic/militarysite.cc'
199--- src/logic/militarysite.cc 2014-07-03 19:26:30 +0000
200+++ src/logic/militarysite.cc 2014-07-14 22:50:15 +0000
201@@ -193,7 +193,7 @@
202 (Player_Area<Area<FCoords> >
203 (owner().player_number(),
204 Area<FCoords>
205- (egbase.map().get_fcoords(get_position()), get_conquers())),
206+ (egbase.map().get_fcoords(get_position()), descr().get_conquers())),
207 m_defeating_player);
208
209 ProductionSite::cleanup(egbase);
210@@ -242,7 +242,7 @@
211 send_message
212 (*game,
213 "site_occupied",
214- descname(),
215+ descr().descname(),
216 descr().m_occupied_str,
217 true);
218 }
219@@ -390,7 +390,7 @@
220 m_normal_soldier_request.reset
221 (new Request
222 (*this,
223- tribe().safe_worker_index("soldier"),
224+ descr().tribe().safe_worker_index("soldier"),
225 MilitarySite::request_soldier_callback,
226 wwWORKER));
227 m_normal_soldier_request->set_requirements (m_soldier_requirements);
228@@ -446,7 +446,7 @@
229 m_upgrade_soldier_request.reset
230 (new Request
231 (*this,
232- tribe().safe_worker_index("soldier"),
233+ descr().tribe().safe_worker_index("soldier"),
234 MilitarySite::request_soldier_callback,
235 wwWORKER));
236
237@@ -734,7 +734,7 @@
238 (Player_Area<Area<FCoords> >
239 (owner().player_number(),
240 Area<FCoords>
241- (egbase.map().get_fcoords(get_position()), get_conquers())));
242+ (egbase.map().get_fcoords(get_position()), descr().get_conquers())));
243 m_didconquer = true;
244 }
245
246@@ -751,7 +751,7 @@
247 if
248 (enemy.get_owner() == &owner() ||
249 enemy.getBattle() ||
250- get_conquers()
251+ descr().get_conquers()
252 <=
253 map.calc_distance(enemy.get_position(), get_position()))
254 return;
255@@ -861,7 +861,7 @@
256 // the new owner comes from another tribe
257 Building::FormerBuildings former_buildings;
258 for (Building_Index former_idx : m_old_buildings) {
259- const Building_Descr * old_descr = tribe().get_building_descr(former_idx);
260+ const Building_Descr * old_descr = descr().tribe().get_building_descr(former_idx);
261 std::string bldname = old_descr->name();
262 // Has this building already a suffix? == conquered building?
263 std::string::size_type const dot = bldname.rfind('.');
264
265=== modified file 'src/logic/partially_finished_building.cc'
266--- src/logic/partially_finished_building.cc 2014-07-03 19:26:30 +0000
267+++ src/logic/partially_finished_building.cc 2014-07-14 22:50:15 +0000
268@@ -110,7 +110,7 @@
269 m_builder_request =
270 new Request
271 (*this,
272- tribe().safe_worker_index("builder"),
273+ descr().tribe().safe_worker_index("builder"),
274 Partially_Finished_Building::request_builder_callback,
275 wwWORKER);
276 }
277
278=== modified file 'src/logic/playercommand.cc'
279--- src/logic/playercommand.cc 2014-07-03 19:26:30 +0000
280+++ src/logic/playercommand.cc 2014-07-14 22:50:15 +0000
281@@ -1859,7 +1859,7 @@
282 return;
283 }
284
285- const Tribe_Descr & tribe = warehouse->tribe();
286+ const Tribe_Descr & tribe = warehouse->descr().tribe();
287 if (m_isworker) {
288 if (!(m_ware < tribe.get_nrworkers())) {
289 log
290
291=== modified file 'src/logic/production_program.cc'
292--- src/logic/production_program.cc 2014-07-03 20:11:14 +0000
293+++ src/logic/production_program.cc 2014-07-14 22:50:15 +0000
294@@ -1566,7 +1566,7 @@
295 const Immovable_Descr & ProductionProgram::ActConstruct::get_construction_descr
296 (ProductionSite & psite) const
297 {
298- const Immovable_Descr * descr = psite.tribe().get_immovable_descr(objectname);
299+ const Immovable_Descr * descr = psite.descr().tribe().get_immovable_descr(objectname);
300 if (!descr)
301 throw wexception("ActConstruct: immovable '%s' does not exist", objectname.c_str());
302
303@@ -1667,7 +1667,7 @@
304 }
305
306 // Second step: give ware to worker
307- WareInstance * ware = new WareInstance(wq->get_ware(), psite.tribe().get_ware_descr(wq->get_ware()));
308+ WareInstance * ware = new WareInstance(wq->get_ware(), psite.descr().tribe().get_ware_descr(wq->get_ware()));
309 ware->init(game);
310 worker.set_carried_ware(game, ware);
311 wq->set_filled(wq->get_filled() - 1);
312
313=== modified file 'src/logic/productionsite.cc'
314--- src/logic/productionsite.cc 2014-07-05 14:22:44 +0000
315+++ src/logic/productionsite.cc 2014-07-14 22:50:15 +0000
316@@ -233,7 +233,7 @@
317 bool ProductionSite::has_workers(Building_Index targetSite, Game & /* game */)
318 {
319 // bld holds the description of the building we want to have
320- if (upcast(ProductionSite_Descr const, bld, tribe().get_building_descr(targetSite))) {
321+ if (upcast(ProductionSite_Descr const, bld, descr().tribe().get_building_descr(targetSite))) {
322 // if he has workers
323 if (bld->nr_working_positions()) {
324 Ware_Index need = bld->working_positions()[0].first;
325@@ -242,7 +242,7 @@
326 return false; // no one is in this house
327 } else {
328 Ware_Index have = working_positions()[i].worker->worker_index();
329- if (tribe().get_worker_descr(have)->can_act_as(need)) {
330+ if (descr().tribe().get_worker_descr(have)->can_act_as(need)) {
331 return true; // he found a lead worker
332 }
333 }
334@@ -544,10 +544,10 @@
335 }
336 if (!worker_placed) {
337 // Find the next smaller version of this worker
338- Ware_Index nuwo = psite.tribe().get_nrworkers();
339+ Ware_Index nuwo = psite.descr().tribe().get_nrworkers();
340 Ware_Index current = Ware_Index(static_cast<size_t>(0));
341 for (; current < nuwo; ++current) {
342- Worker_Descr const * worker = psite.tribe().get_worker_descr(current);
343+ Worker_Descr const * worker = psite.descr().tribe().get_worker_descr(current);
344 if (worker->becomes() == idx) {
345 idx = current;
346 break;
347@@ -720,7 +720,7 @@
348 {
349 Ware_Index const ware_index = ware_type_with_count.first;
350 const WareDescr & ware_ware_descr =
351- *tribe().get_ware_descr(ware_type_with_count.first);
352+ *descr().tribe().get_ware_descr(ware_type_with_count.first);
353 {
354 WareInstance & ware =
355 *new WareInstance(ware_index, &ware_ware_descr);
356@@ -742,7 +742,7 @@
357 *m_recruited_workers.rbegin();
358 {
359 const Worker_Descr & worker_descr =
360- *tribe().get_worker_descr(worker_type_with_count.first);
361+ *descr().tribe().get_worker_descr(worker_type_with_count.first);
362 {
363 Worker & recruit =
364 ref_cast<Worker, Bob>(worker_descr.create_object());
365@@ -765,7 +765,7 @@
366 WaresQueue * queue = *iqueue;
367 if (queue->get_filled() > queue->get_max_fill()) {
368 queue->set_filled(queue->get_filled() - 1);
369- const WareDescr & wd = *tribe().get_ware_descr(queue->get_ware());
370+ const WareDescr & wd = *descr().tribe().get_ware_descr(queue->get_ware());
371 WareInstance & ware = *new WareInstance(queue->get_ware(), &wd);
372 ware.init(game);
373 worker.start_task_dropoff(game, ware);
374
375=== modified file 'src/logic/soldier.cc'
376--- src/logic/soldier.cc 2014-07-05 12:48:58 +0000
377+++ src/logic/soldier.cc 2014-07-14 22:50:15 +0000
378@@ -975,7 +975,7 @@
379 if (upcast(Warehouse, wh, enemy)) {
380 Requirements noreq;
381 defenders = wh->count_workers
382- (game, wh->tribe().worker_index("soldier"), noreq);
383+ (game, wh->descr().tribe().worker_index("soldier"), noreq);
384 }
385 // Any enemy soldier at baseflag count as defender.
386 std::vector<Bob *> soldiers;
387
388=== modified file 'src/logic/trainingsite.cc'
389--- src/logic/trainingsite.cc 2014-07-03 19:26:30 +0000
390+++ src/logic/trainingsite.cc 2014-07-14 22:50:15 +0000
391@@ -289,7 +289,7 @@
392 m_soldier_request =
393 new Request
394 (*this,
395- tribe().safe_worker_index("soldier"),
396+ descr().tribe().safe_worker_index("soldier"),
397 TrainingSite::request_soldier_callback,
398 wwWORKER);
399
400
401=== modified file 'src/logic/warehouse.cc'
402--- src/logic/warehouse.cc 2014-07-05 12:17:03 +0000
403+++ src/logic/warehouse.cc 2014-07-14 22:50:15 +0000
404@@ -302,7 +302,7 @@
405 if (pw.index == INVALID_INDEX || !(pw.index < m_supply->get_workers().get_nrwareids()))
406 return false;
407
408- const Worker_Descr * w_desc = tribe().get_worker_descr(pw.index);
409+ const Worker_Descr * w_desc = descr().tribe().get_worker_descr(pw.index);
410 if (!w_desc || !w_desc->is_buildable())
411 return false;
412
413@@ -315,10 +315,10 @@
414 {
415 WareWorker type;
416 Ware_Index ware;
417- ware = tribe().ware_index(cost_it->first);
418+ ware = descr().tribe().ware_index(cost_it->first);
419 if (ware != INVALID_INDEX)
420 type = wwWARE;
421- else if ((ware = tribe().worker_index(cost_it->first)) != INVALID_INDEX)
422+ else if ((ware = descr().tribe().worker_index(cost_it->first)) != INVALID_INDEX)
423 type = wwWORKER;
424 else
425 return false;
426@@ -368,7 +368,7 @@
427
428 uint32_t next_spawn = Never();
429 const std::vector<Ware_Index> & worker_types_without_cost =
430- tribe().worker_types_without_cost();
431+ descr().tribe().worker_types_without_cost();
432 for (uint8_t i = worker_types_without_cost.size(); i;) {
433 Ware_Index const worker_index = worker_types_without_cost.at(--i);
434 if
435@@ -386,8 +386,8 @@
436 "%s %u at (%i, %i) does not have a next_spawn time set for that "
437 "worker type; setting it to %u\n",
438 owner().player_number(),
439- tribe().get_worker_descr(worker_index)->descname().c_str(),
440- descname().c_str(), serial(), get_position().x, get_position().y,
441+ descr().tribe().get_worker_descr(worker_index)->descname().c_str(),
442+ descr().descname().c_str(), serial(), get_position().x, get_position().y,
443 next_spawn);
444 }
445 }
446@@ -410,8 +410,8 @@
447 {
448 Building::init(egbase);
449
450- Ware_Index const nr_wares = tribe().get_nrwares ();
451- Ware_Index const nr_workers = tribe().get_nrworkers();
452+ Ware_Index const nr_wares = descr().tribe().get_nrwares ();
453+ Ware_Index const nr_workers = descr().tribe().get_nrworkers();
454 m_supply->set_nrwares (nr_wares);
455 m_supply->set_nrworkers(nr_workers);
456
457@@ -425,13 +425,13 @@
458 if (upcast(Game, game, &egbase)) {
459 player.see_area
460 (Area<FCoords>
461- (egbase.map().get_fcoords(get_position()), vision_range()));
462+ (egbase.map().get_fcoords(get_position()), descr().vision_range()));
463
464 {
465 uint32_t const act_time = schedule_act
466 (*game, WORKER_WITHOUT_COST_SPAWN_INTERVAL);
467 const std::vector<Ware_Index> & worker_types_without_cost =
468- tribe().worker_types_without_cost();
469+ descr().tribe().worker_types_without_cost();
470
471 for (size_t i = 0; i < worker_types_without_cost.size(); ++i) {
472 if (owner().is_worker_type_allowed(worker_types_without_cost.at(i))) {
473@@ -455,16 +455,16 @@
474 snprintf
475 (message, sizeof(message),
476 _("A new %s was added to your economy."),
477- descname().c_str());
478+ descr().descname().c_str());
479 send_message
480 (ref_cast<Game, Editor_Game_Base>(egbase),
481 "warehouse",
482- descname(),
483+ descr().descname(),
484 message,
485 true);
486 }
487
488- if (uint32_t const conquer_radius = get_conquers())
489+ if (uint32_t const conquer_radius = descr().get_conquers())
490 egbase.conquer_area
491 (Player_Area<Area<FCoords> >
492 (player.player_number(),
493@@ -537,7 +537,7 @@
494 }
495
496 Map& map = egbase.map();
497- if (const uint32_t conquer_radius = get_conquers())
498+ if (const uint32_t conquer_radius = descr().get_conquers())
499 egbase.unconquer_area
500 (Player_Area<Area<FCoords> >
501 (owner().player_number(),
502@@ -547,7 +547,7 @@
503 // Unsee the area that we started seeing in init()
504 Player & player = owner();
505 player.unsee_area
506- (Area<FCoords>(map.get_fcoords(get_position()), vision_range()));
507+ (Area<FCoords>(map.get_fcoords(get_position()), descr().vision_range()));
508
509 Building::cleanup(egbase);
510 }
511@@ -592,7 +592,7 @@
512
513 // Military stuff: Kill the soldiers that are dead.
514 if (m_next_military_act <= gametime) {
515- Ware_Index const ware = tribe().safe_worker_index("soldier");
516+ Ware_Index const ware = descr().tribe().safe_worker_index("soldier");
517
518 if (m_incorporated_workers.count(ware)) {
519 WorkerList & soldiers = m_incorporated_workers[ware];
520@@ -730,7 +730,7 @@
521 /// Launch a carrier to fetch an ware from our flag.
522 bool Warehouse::fetch_from_flag(Game & game)
523 {
524- Ware_Index const carrierid = tribe().safe_worker_index("carrier");
525+ Ware_Index const carrierid = descr().tribe().safe_worker_index("carrier");
526
527 if (!m_supply->stock_workers(carrierid)) // XXX yep, let's cheat
528 insert_workers(carrierid, 1);
529@@ -766,7 +766,7 @@
530 }
531 }
532
533- ware = tribe().get_worker_descr(ware)->becomes();
534+ ware = descr().tribe().get_worker_descr(ware)->becomes();
535 } while (ware != INVALID_INDEX);
536
537 return sum;
538@@ -810,7 +810,7 @@
539 // Create a new one
540 // NOTE: This code lies about the tAttributes of the new worker
541 m_supply->remove_workers(ware, 1);
542- const Worker_Descr & workerdescr = *tribe().get_worker_descr(ware);
543+ const Worker_Descr & workerdescr = *descr().tribe().get_worker_descr(ware);
544 return workerdescr.create(game, owner(), this, m_position);
545 }
546 }
547@@ -819,7 +819,7 @@
548 // don't want to use an upgraded worker, so create new one.
549 create_worker(game, ware);
550 } else {
551- ware = tribe().get_worker_descr(ware)->becomes();
552+ ware = descr().tribe().get_worker_descr(ware)->becomes();
553 }
554 } while (ware != INVALID_INDEX);
555
556@@ -836,7 +836,7 @@
557 if (WareInstance* ware = w->fetch_carried_ware(egbase))
558 incorporate_ware(egbase, ware);
559
560- Ware_Index worker_index = tribe().worker_index(w->name().c_str());
561+ Ware_Index worker_index = descr().tribe().worker_index(w->name().c_str());
562 m_supply->add_workers(worker_index, 1);
563
564 // We remove carriers, but we keep other workers around.
565@@ -870,7 +870,7 @@
566 /// carried out of the warehouse.
567 WareInstance & Warehouse::launch_ware(Game & game, Ware_Index const ware_index) {
568 // Create the ware
569- WareInstance & ware = *new WareInstance(ware_index, tribe().get_ware_descr(ware_index));
570+ WareInstance & ware = *new WareInstance(ware_index, descr().tribe().get_ware_descr(ware_index));
571 ware.init(game);
572 do_launch_ware(game, ware);
573
574@@ -884,8 +884,8 @@
575 void Warehouse::do_launch_ware(Game & game, WareInstance & ware)
576 {
577 // Create a carrier
578- Ware_Index const carrierid = tribe().worker_index("carrier");
579- const Worker_Descr & workerdescr = *tribe().get_worker_descr(carrierid);
580+ Ware_Index const carrierid = descr().tribe().worker_index("carrier");
581+ const Worker_Descr & workerdescr = *descr().tribe().get_worker_descr(carrierid);
582
583 Worker & worker = workerdescr.create(game, owner(), this, m_position);
584
585@@ -954,7 +954,7 @@
586 ("worker type %d does not exists (max is %d)",
587 worker, m_supply->get_workers().get_nrwareids());
588
589- const Worker_Descr & w_desc = *tribe().get_worker_descr(worker);
590+ const Worker_Descr & w_desc = *descr().tribe().get_worker_descr(worker);
591 assert(&w_desc);
592 if (not w_desc.is_buildable())
593 return false;
594@@ -963,11 +963,11 @@
595 const Worker_Descr::Buildcost & buildcost = w_desc.buildcost();
596 container_iterate_const(Worker_Descr::Buildcost, buildcost, it) {
597 const std::string & input_name = it.current->first;
598- Ware_Index id_w = tribe().ware_index(input_name);
599+ Ware_Index id_w = descr().tribe().ware_index(input_name);
600 if (id_w != INVALID_INDEX) {
601 if (m_supply->stock_wares(id_w) < it.current->second)
602 return false;
603- } else if ((id_w = tribe().worker_index(input_name)) != INVALID_INDEX) {
604+ } else if ((id_w = descr().tribe().worker_index(input_name)) != INVALID_INDEX) {
605 if (m_supply->stock_workers(id_w) < it.current->second)
606 return false;
607 } else
608@@ -975,7 +975,7 @@
609 ("worker type %s needs \"%s\" to be built but that is neither "
610 "a ware type nor a worker type defined in the tribe %s",
611 w_desc.descname().c_str(), input_name.c_str(),
612- tribe().name().c_str());
613+ descr().tribe().name().c_str());
614 }
615 return true;
616 }
617@@ -984,17 +984,17 @@
618 void Warehouse::create_worker(Game & game, Ware_Index const worker) {
619 assert(can_create_worker (game, worker));
620
621- const Worker_Descr & w_desc = *tribe().get_worker_descr(worker);
622+ const Worker_Descr & w_desc = *descr().tribe().get_worker_descr(worker);
623 const Worker_Descr::Buildcost & buildcost = w_desc.buildcost();
624 container_iterate_const(Worker_Descr::Buildcost, buildcost, i) {
625 const std::string & input = i.current->first;
626- Ware_Index const id_ware = tribe().ware_index(input);
627+ Ware_Index const id_ware = descr().tribe().ware_index(input);
628 if (id_ware != INVALID_INDEX) {
629 remove_wares (id_ware, i.current->second);
630 //update statistic accordingly
631 owner().ware_consumed(id_ware, i.current->second);
632 } else
633- remove_workers(tribe().safe_worker_index(input), i.current->second);
634+ remove_workers(descr().tribe().safe_worker_index(input), i.current->second);
635 }
636
637 incorporate_worker(game, &w_desc.create(game, owner(), this, m_position));
638@@ -1032,16 +1032,16 @@
639 std::vector<uint32_t> Warehouse::calc_available_for_worker
640 (Game & /* game */, Ware_Index index) const
641 {
642- const Worker_Descr & w_desc = *tribe().get_worker_descr(index);
643+ const Worker_Descr & w_desc = *descr().tribe().get_worker_descr(index);
644 const Worker_Descr::Buildcost & cost = w_desc.buildcost();
645 std::vector<uint32_t> available;
646
647 container_iterate_const(Worker_Descr::Buildcost, cost, bc) {
648 const std::string & input_name = bc.current->first;
649- Ware_Index id_w = tribe().ware_index(input_name);
650+ Ware_Index id_w = descr().tribe().ware_index(input_name);
651 if (id_w != INVALID_INDEX) {
652 available.push_back(get_wares().stock(id_w));
653- } else if ((id_w = tribe().worker_index(input_name)) != INVALID_INDEX) {
654+ } else if ((id_w = descr().tribe().worker_index(input_name)) != INVALID_INDEX) {
655 available.push_back(get_workers().stock(id_w));
656 } else
657 throw wexception
658@@ -1086,17 +1086,17 @@
659 pw->index = index;
660 pw->amount = 0;
661
662- const Worker_Descr & w_desc = *tribe().get_worker_descr(pw->index);
663+ const Worker_Descr & w_desc = *descr().tribe().get_worker_descr(pw->index);
664 const Worker_Descr::Buildcost & cost = w_desc.buildcost();
665 container_iterate_const(Worker_Descr::Buildcost, cost, cost_it) {
666 const std::string & input_name = cost_it.current->first;
667
668- Ware_Index id_w = tribe().ware_index(input_name);
669+ Ware_Index id_w = descr().tribe().ware_index(input_name);
670 if (id_w != INVALID_INDEX) {
671 pw->requests.push_back
672 (new Request
673 (*this, id_w, &Warehouse::request_cb, wwWARE));
674- } else if ((id_w = tribe().worker_index(input_name)) != INVALID_INDEX) {
675+ } else if ((id_w = descr().tribe().worker_index(input_name)) != INVALID_INDEX) {
676 pw->requests.push_back
677 (new Request
678 (*this, id_w, &Warehouse::request_cb, wwWORKER));
679@@ -1117,7 +1117,7 @@
680 void Warehouse::_update_planned_workers
681 (Game & game, Warehouse::PlannedWorkers & pw)
682 {
683- const Worker_Descr & w_desc = *tribe().get_worker_descr(pw.index);
684+ const Worker_Descr & w_desc = *descr().tribe().get_worker_descr(pw.index);
685 const Worker_Descr::Buildcost & cost = w_desc.buildcost();
686
687 while (pw.amount && can_create_worker(game, pw.index))
688@@ -1128,10 +1128,10 @@
689 const std::string & input_name = cost_it.current->first;
690 uint32_t supply;
691
692- Ware_Index id_w = tribe().ware_index(input_name);
693+ Ware_Index id_w = descr().tribe().ware_index(input_name);
694 if (id_w != INVALID_INDEX) {
695 supply = m_supply->stock_wares(id_w);
696- } else if ((id_w = tribe().worker_index(input_name)) != INVALID_INDEX) {
697+ } else if ((id_w = descr().tribe().worker_index(input_name)) != INVALID_INDEX) {
698 supply = m_supply->stock_workers(id_w);
699 } else
700 throw wexception
701@@ -1194,12 +1194,12 @@
702
703 bool Warehouse::canAttack()
704 {
705- return get_conquers() > 0;
706+ return descr().get_conquers() > 0;
707 }
708
709 void Warehouse::aggressor(Soldier & enemy)
710 {
711- if (!get_conquers())
712+ if (!descr().get_conquers())
713 return;
714
715 Game & game = ref_cast<Game, Editor_Game_Base>(owner().egbase());
716@@ -1207,7 +1207,7 @@
717 if
718 (enemy.get_owner() == &owner() ||
719 enemy.getBattle() ||
720- get_conquers()
721+ descr().get_conquers()
722 <=
723 map.calc_distance(enemy.get_position(), get_position()))
724 return;
725@@ -1219,7 +1219,7 @@
726 FindBobEnemySoldier(&owner())))
727 return;
728
729- Ware_Index const soldier_index = tribe().worker_index("soldier");
730+ Ware_Index const soldier_index = descr().tribe().worker_index("soldier");
731 Requirements noreq;
732
733 if (!count_workers(game, soldier_index, noreq))
734@@ -1233,7 +1233,7 @@
735 bool Warehouse::attack(Soldier & enemy)
736 {
737 Game & game = ref_cast<Game, Editor_Game_Base>(owner().egbase());
738- Ware_Index const soldier_index = tribe().worker_index("soldier");
739+ Ware_Index const soldier_index = descr().tribe().worker_index("soldier");
740 Requirements noreq;
741
742 if (count_workers(game, soldier_index, noreq)) {
743@@ -1332,7 +1332,7 @@
744 {
745 std::vector<Soldier *> rv;
746
747- Ware_Index const ware = tribe().safe_worker_index("soldier");
748+ Ware_Index const ware = descr().tribe().safe_worker_index("soldier");
749 IncorporatedWorkers::const_iterator sidx = m_incorporated_workers.find(ware);
750
751 if (sidx != m_incorporated_workers.end()) {
752@@ -1351,7 +1351,7 @@
753
754 int Warehouse::outcorporateSoldier(Editor_Game_Base & /* egbase */, Soldier & soldier) {
755
756- Ware_Index const ware = tribe().safe_worker_index("soldier");
757+ Ware_Index const ware = descr().tribe().safe_worker_index("soldier");
758 if (m_incorporated_workers.count(ware)) {
759 WorkerList & soldiers = m_incorporated_workers[ware];
760
761
762=== modified file 'src/map_io/widelands_map_building_data_packet.cc'
763--- src/map_io/widelands_map_building_data_packet.cc 2014-07-03 19:26:30 +0000
764+++ src/map_io/widelands_map_building_data_packet.cc 2014-07-14 22:50:15 +0000
765@@ -173,7 +173,7 @@
766 std::map<int32_t, std::map<Ware_Index, int32_t> > type_to_priorities;
767 std::map<int32_t, std::map<Ware_Index, int32_t> >::iterator it;
768
769- const Tribe_Descr & tribe = building.tribe();
770+ const Tribe_Descr & tribe = building.descr().tribe();
771 building.collect_priorities(type_to_priorities);
772 for (it = type_to_priorities.begin(); it != type_to_priorities.end(); ++it)
773 {
774@@ -213,7 +213,7 @@
775 {
776 fr.Unsigned32(); // unused, was base_priority which is unused. Remove after b20.
777
778- const Tribe_Descr & tribe = building.tribe();
779+ const Tribe_Descr & tribe = building.descr().tribe();
780 int32_t ware_type = -1;
781 // read ware type
782 while (0xff != (ware_type = fr.Unsigned8())) {
783
784=== modified file 'src/map_io/widelands_map_buildingdata_data_packet.cc'
785--- src/map_io/widelands_map_buildingdata_data_packet.cc 2014-07-03 19:26:30 +0000
786+++ src/map_io/widelands_map_buildingdata_data_packet.cc 2014-07-14 22:50:15 +0000
787@@ -104,7 +104,7 @@
788 ("WARNING: %s %s does not have animation \"%s\"; "
789 "using animation \"idle\" instead\n",
790 building.descr().tribe().name().c_str(),
791- building.descname().c_str(),
792+ building.descr().descname().c_str(),
793 animation_name);
794 building.m_anim = building.descr().get_animation("idle");
795 }
796@@ -170,7 +170,7 @@
797 ("WARNING: Found a stopped %s at (%i, %i) in the "
798 "savegame. Militarysites are not stoppable. "
799 "Ignoring.",
800- building.descname().c_str(),
801+ building.descr().descname().c_str(),
802 building.get_position().x,
803 building.get_position().y);
804 } else {
805@@ -181,7 +181,7 @@
806 ("WARNING: Found a stopped %s at (%i, %i) in the "
807 "savegame. Only productionsites are stoppable. "
808 "Ignoring.",
809- building.descname().c_str(),
810+ building.descr().descname().c_str(),
811 building.get_position().x,
812 building.get_position().y);
813 }
814@@ -299,7 +299,7 @@
815 try {
816 uint16_t const packet_version = fr.Unsigned16();
817 if (packet_version == CURRENT_PARTIALLYFB_PACKET_VERSION) {
818- const Tribe_Descr & tribe = pfb.tribe();
819+ const Tribe_Descr & tribe = pfb.descr().tribe();
820 pfb.m_building =
821 tribe.get_building_descr(tribe.safe_building_index(fr.CString()));
822
823@@ -365,7 +365,7 @@
824 if (packet_version >= 2) {
825 read_partially_finished_building(constructionsite, fr, game, mol);
826
827- const Tribe_Descr & tribe = constructionsite.tribe();
828+ const Tribe_Descr & tribe = constructionsite.descr().tribe();
829
830 container_iterate
831 (ConstructionSite::Wares, constructionsite.m_wares, cur)
832@@ -394,7 +394,7 @@
833 Game & game,
834 Map_Map_Object_Loader & mol)
835 {
836- const Tribe_Descr & tribe = constructionsite.tribe();
837+ const Tribe_Descr & tribe = constructionsite.descr().tribe();
838 constructionsite.m_building =
839 tribe.get_building_descr(tribe.safe_building_index(fr.CString()));
840 if (fr.Unsigned8()) {
841@@ -481,8 +481,8 @@
842 (1 <= packet_version and
843 packet_version <= CURRENT_WAREHOUSE_PACKET_VERSION)
844 {
845- Ware_Index const nr_wares = warehouse.tribe().get_nrwares ();
846- Ware_Index const nr_tribe_workers = warehouse.tribe().get_nrworkers();
847+ Ware_Index const nr_wares = warehouse.descr().tribe().get_nrwares();
848+ Ware_Index const nr_tribe_workers = warehouse.descr().tribe().get_nrworkers();
849 warehouse.m_supply->set_nrwares (nr_wares);
850 warehouse.m_supply->set_nrworkers(nr_tribe_workers);
851 warehouse.m_ware_policy.resize(nr_wares, Warehouse::SP_Normal);
852@@ -490,7 +490,7 @@
853 (nr_tribe_workers, Warehouse::SP_Normal);
854 //log("Reading warehouse stuff for %p\n", &warehouse);
855 // supply
856- const Tribe_Descr & tribe = warehouse.tribe();
857+ const Tribe_Descr & tribe = warehouse.descr().tribe();
858 while (fr.Unsigned8()) {
859 Ware_Index const id = tribe.ware_index(fr.CString());
860 if (packet_version >= 5) {
861@@ -580,7 +580,7 @@
862 log
863 ("WARNING: %s %u has a next_spawn time for nonexistent "
864 "worker type \"%s\" set to %u, ignoring\n",
865- warehouse.descname().c_str(), warehouse.serial(),
866+ warehouse.descr().descname().c_str(), warehouse.serial(),
867 "carrier", next_spawn);
868 } else if
869 (tribe.get_worker_descr(worker_index)->buildcost().size())
870@@ -589,7 +589,7 @@
871 ("WARNING: %s %u has a next_spawn time for worker type "
872 "\"%s\", that costs something to build, set to %u, "
873 "ignoring\n",
874- warehouse.descname().c_str(), warehouse.serial(),
875+ warehouse.descr().descname().c_str(), warehouse.serial(),
876 "carrier", next_spawn);
877 } else
878 for (uint8_t i = 0;; ++i) {
879@@ -626,7 +626,7 @@
880 log
881 ("WARNING: %s %u has a next_spawn time for nonexistent "
882 "worker type \"%s\" set to %u, ignoring\n",
883- warehouse.descname().c_str(), warehouse.serial(),
884+ warehouse.descr().descname().c_str(), warehouse.serial(),
885 worker_typename, next_spawn);
886 continue;
887 }
888@@ -635,7 +635,7 @@
889 ("WARNING: %s %u has a next_spawn time for worker type "
890 "\"%s\", that costs something to build, set to %u, "
891 "ignoring\n",
892- warehouse.descname().c_str(), warehouse.serial(),
893+ warehouse.descr().descname().c_str(), warehouse.serial(),
894 worker_typename, next_spawn);
895 continue;
896 }
897@@ -651,7 +651,7 @@
898 "%s %u has a next_spawn time for worker type "
899 "\"%s\" set to %u, but it was previously set "
900 "to %u\n",
901- warehouse.descname().c_str(), warehouse.serial(),
902+ warehouse.descr().descname().c_str(), warehouse.serial(),
903 worker_typename, next_spawn,
904 warehouse.m_next_worker_without_cost_spawn[i]);
905 warehouse.m_next_worker_without_cost_spawn[i] =
906@@ -708,7 +708,7 @@
907 }
908 }
909
910- if (uint32_t const conquer_radius = warehouse.get_conquers()) {
911+ if (uint32_t const conquer_radius = warehouse.descr().get_conquers()) {
912 // Add to map of military influence.
913 const Map & map = game.map();
914 Area<FCoords> a
915@@ -726,7 +726,7 @@
916 warehouse.owner().see_area
917 (Area<FCoords>
918 (game.map().get_fcoords(warehouse.get_position()),
919- warehouse.vision_range()));
920+ warehouse.descr().vision_range()));
921 warehouse.m_next_military_act = game.get_gametime();
922 //log("Read warehouse stuff for %p\n", &warehouse);
923 } else
924@@ -784,7 +784,7 @@
925 const Map & map = game.map();
926 Area<FCoords> a
927 (map.get_fcoords(militarysite.get_position()),
928- militarysite.get_conquers());
929+ militarysite.descr().get_conquers());
930 const Field & first_map_field = map[0];
931 Player::Field * const player_fields =
932 militarysite.owner().m_fields;
933@@ -882,7 +882,7 @@
934 throw game_data_error
935 ("site has request for %s, for which there is no working "
936 "position",
937- productionsite.tribe()
938+ productionsite.descr().tribe()
939 .get_worker_descr(req.get_index())->name().c_str());
940 uint32_t count = j->second;
941 assert(count);
942@@ -894,7 +894,7 @@
943 throw game_data_error
944 ("request for %s does not match any free working "
945 "position",
946- productionsite.tribe()
947+ productionsite.descr().tribe()
948 .get_worker_descr(req.get_index())->name().c_str
949 ());
950 break;
951@@ -1056,7 +1056,7 @@
952 } catch (const _wexception & e) {
953 throw game_data_error
954 ("productionsite (%s): %s",
955- productionsite.descname().c_str(), e.what());
956+ productionsite.descr().descname().c_str(), e.what());
957 }
958 }
959
960@@ -1343,7 +1343,7 @@
961 fw.Unsigned16(CURRENT_WAREHOUSE_PACKET_VERSION);
962
963 // supply
964- const Tribe_Descr & tribe = warehouse.tribe();
965+ const Tribe_Descr & tribe = warehouse.descr().tribe();
966 const WareList & wares = warehouse.m_supply->get_wares();
967 for (Ware_Index i = 0; i < wares.get_nrwareids (); ++i) {
968 fw.Unsigned8(1);
969
970=== modified file 'src/wui/actionconfirm.cc'
971--- src/wui/actionconfirm.cc 2014-07-03 19:26:30 +0000
972+++ src/wui/actionconfirm.cc 2014-07-14 22:50:15 +0000
973@@ -148,7 +148,7 @@
974 new UI::Multiline_Textarea
975 (this,
976 0, 0, 200, 74,
977- (format(message) % building.descname()).str(),
978+ (format(message) % building.descr().descname()).str(),
979 UI::Align_Center);
980
981 UI::Button * okbtn =
982
983=== modified file 'src/wui/buildingwindow.cc'
984--- src/wui/buildingwindow.cc 2014-07-03 19:26:30 +0000
985+++ src/wui/buildingwindow.cc 2014-07-14 22:50:15 +0000
986@@ -55,7 +55,7 @@
987 UI::Window
988 (&parent, "building_window",
989 0, 0, Width, 0,
990- b.descname()),
991+ b.descr().descname()),
992 m_registry(registry),
993 m_building (b),
994 m_workarea_job_id(0),
995@@ -223,7 +223,7 @@
996
997 if (m_capscache & Widelands::Building::PCap_Enhancable) {
998 const std::set<Widelands::Building_Index> & enhancements =
999- m_building.enhancements();
1000+ m_building.descr().enhancements();
1001 const Widelands::Tribe_Descr & tribe = owner.tribe();
1002 container_iterate_const(std::set<Widelands::Building_Index>, enhancements, i)
1003 if (owner.is_building_type_allowed(*i.current)) {
1004@@ -359,7 +359,7 @@
1005 igbase().unique_windows().get_registry(m_building.name() + "_help");
1006 registry.open_window = [this, &registry] {
1007 new UI::LuaTextHelpWindow(
1008- &igbase(), registry, m_building.descname(), m_building.descr().helptext_script());
1009+ &igbase(), registry, m_building.descr().descname(), m_building.descr().helptext_script());
1010 };
1011
1012 helpbtn->sigclicked.connect(boost::bind(&UI::UniqueWindow::Registry::toggle, boost::ref(registry)));
1013
1014=== modified file 'src/wui/productionsitewindow.cc'
1015--- src/wui/productionsitewindow.cc 2014-06-21 15:17:04 +0000
1016+++ src/wui/productionsitewindow.cc 2014-07-14 22:50:15 +0000
1017@@ -191,7 +191,7 @@
1018 }
1019 } else if (request) {
1020 const Widelands::Worker_Descr * desc =
1021- productionsite().tribe().get_worker_descr(request->get_index());
1022+ productionsite().descr().tribe().get_worker_descr(request->get_index());
1023 er.set_picture
1024 (0, desc->icon(),
1025 request->is_open() ? _("(vacant)") : _("(coming)"));
1026
1027=== modified file 'src/wui/soldierlist.cc'
1028--- src/wui/soldierlist.cc 2014-07-13 14:36:19 +0000
1029+++ src/wui/soldierlist.cc 2014-07-14 22:50:15 +0000
1030@@ -114,7 +114,7 @@
1031 m_soldiers(*dynamic_cast<SoldierControl *>(&building)),
1032 m_last_animate_time(0)
1033 {
1034- Soldier::calc_info_icon_size(building.tribe(), m_icon_width, m_icon_height);
1035+ Soldier::calc_info_icon_size(building.descr().tribe(), m_icon_width, m_icon_height);
1036 m_icon_width += 2 * IconBorder;
1037 m_icon_height += 2 * IconBorder;
1038

Subscribers

People subscribed via source and target branches

to status/vote changes: