Merge lp:~borim/widelands/bug590631 into lp:widelands

Proposed by Borim
Status: Merged
Merged at revision: 6207
Proposed branch: lp:~borim/widelands/bug590631
Merge into: lp:widelands
Diff against target: 43 lines (+22/-0)
2 files modified
src/logic/warehouse.cc (+20/-0)
src/logic/warehouse.h (+2/-0)
To merge this branch: bzr merge lp:~borim/widelands/bug590631
Reviewer Review Type Date Requested Status
Widelands Developers Pending
Review via email: mp+91314@code.launchpad.net

Description of the change

fix for bug #590631:
* launch all workers on warehouse destruction

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/logic/warehouse.cc'
2--- src/logic/warehouse.cc 2012-01-26 17:29:07 +0000
3+++ src/logic/warehouse.cc 2012-02-02 17:07:28 +0000
4@@ -553,6 +553,26 @@
5 m_portdock->set_economy(get_economy());
6 }
7
8+void Warehouse::destroy(Editor_Game_Base & egbase)
9+{
10+ Game & game = ref_cast<Game, Editor_Game_Base>(egbase);
11+
12+ const WareList & workers = get_workers();
13+
14+ for (Ware_Index id = Ware_Index::First(); id < workers.get_nrwareids(); ++id) {
15+ const uint32_t stock = workers.stock(id);
16+
17+ if (stock > 0) {
18+ for (uint32_t i = 0; i < stock; ++i) {
19+ launch_worker(game, id, Requirements()).start_task_leavebuilding
20+ (game, true);
21+ }
22+ }
23+ }
24+
25+ Building::destroy(egbase);
26+}
27+
28 /// Destroy the warehouse.
29 void Warehouse::cleanup(Editor_Game_Base & egbase)
30 {
31
32=== modified file 'src/logic/warehouse.h'
33--- src/logic/warehouse.h 2012-01-26 17:29:07 +0000
34+++ src/logic/warehouse.h 2012-02-02 17:07:28 +0000
35@@ -130,6 +130,8 @@
36
37 virtual void cleanup(Editor_Game_Base &);
38
39+ virtual void destroy(Editor_Game_Base &);
40+
41 virtual void act(Game & game, uint32_t data);
42
43 virtual void set_economy(Economy *);

Subscribers

People subscribed via source and target branches

to status/vote changes: