Merge lp:~widelands-dev/widelands/compiler_warnings_201802 into lp:widelands
- compiler_warnings_201802
- Merge into trunk
Status: | Merged |
---|---|
Merged at revision: | 8614 |
Proposed branch: | lp:~widelands-dev/widelands/compiler_warnings_201802 |
Merge into: | lp:widelands |
Diff against target: |
2034 lines (+262/-267) 61 files modified
src/economy/flag.cc (+3/-3) src/economy/flag.h (+1/-1) src/economy/fleet.cc (+10/-8) src/economy/fleet.h (+1/-9) src/economy/input_queue.h (+9/-1) src/economy/portdock.cc (+2/-2) src/economy/road.cc (+2/-3) src/economy/shippingitem.cc (+1/-1) src/economy/shippingitem.h (+1/-1) src/economy/workers_queue.cc (+4/-4) src/editor/ui_menus/tool_place_critter_options_menu.cc (+1/-1) src/editor/ui_menus/tool_place_immovable_options_menu.cc (+1/-1) src/game_io/game_player_info_packet.cc (+13/-13) src/graphic/gl/fields_to_draw.cc (+2/-2) src/io/streamread.cc (+2/-2) src/logic/cmd_delete_message.cc (+1/-1) src/logic/cmd_luacoroutine.cc (+1/-1) src/logic/editor_game_base.cc (+11/-11) src/logic/editor_game_base.h (+1/-1) src/logic/map_objects/bob.cc (+7/-8) src/logic/map_objects/immovable.h (+0/-6) src/logic/map_objects/map_object.h (+7/-2) src/logic/map_objects/tribes/battle.cc (+2/-2) src/logic/map_objects/tribes/building.cc (+18/-17) src/logic/map_objects/tribes/building.h (+1/-1) src/logic/map_objects/tribes/constructionsite.cc (+2/-2) src/logic/map_objects/tribes/dismantlesite.cc (+3/-3) src/logic/map_objects/tribes/dismantlesite.h (+1/-1) src/logic/map_objects/tribes/market.cc (+3/-3) src/logic/map_objects/tribes/militarysite.cc (+10/-10) src/logic/map_objects/tribes/production_program.cc (+1/-1) src/logic/map_objects/tribes/productionsite.cc (+3/-3) src/logic/map_objects/tribes/ship.cc (+1/-1) src/logic/map_objects/tribes/soldier.cc (+3/-3) src/logic/map_objects/tribes/trainingsite.cc (+3/-3) src/logic/map_objects/tribes/warehouse.cc (+21/-22) src/logic/map_objects/tribes/warehouse.h (+1/-1) src/logic/map_objects/tribes/worker.cc (+10/-10) src/logic/map_objects/tribes/worker.h (+1/-5) src/logic/map_objects/tribes/worker_descr.cc (+2/-2) src/logic/map_objects/tribes/worker_descr.h (+1/-1) src/logic/map_objects/world/critter.cc (+6/-6) src/logic/player.cc (+12/-12) src/logic/player.h (+3/-3) src/logic/playercommand.cc (+38/-38) src/logic/playersmanager.h (+1/-1) src/map_io/map_buildingdata_packet.cc (+5/-5) src/map_io/map_flag_packet.cc (+1/-1) src/map_io/map_players_messages_packet.cc (+6/-6) src/map_io/map_roaddata_packet.cc (+2/-3) src/network/netclient.cc (+1/-1) src/network/netclientproxy.cc (+1/-1) src/network/nethost.cc (+1/-1) src/network/nethostproxy.cc (+1/-1) src/network/netrelayconnection.cc (+2/-2) src/scripting/lua_game.cc (+1/-1) src/scripting/lua_map.cc (+2/-2) src/ui_basic/fileview_panel.cc (+2/-1) src/wui/game_message_menu.cc (+7/-7) src/wui/interactive_player.cc (+1/-1) src/wui/interactive_player.h (+1/-1) |
To merge this branch: | bzr merge lp:~widelands-dev/widelands/compiler_warnings_201802 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Klaus Halfmann | review, compile | Approve | |
Review via email: mp+339498@code.launchpad.net |
Commit message
Fixed some compiler warnings and refactored some pointers/references
- Unused variable in worker.cc
- Member variable shadowing in fleet.h
- Refactored owner()/get_owner() and messages(
- Removed unused lambda captures in editor tool UI
- Replaced lu with PRIuS macro to make Windows happy
Description of the change
bunnybot (widelandsofficial) wrote : | # |
bunnybot (widelandsofficial) wrote : | # |
Continuous integration builds have changed state:
Travis build 3252. State: failed. Details: https:/
Appveyor build 3061. State: failed. Details: https:/
bunnybot (widelandsofficial) wrote : | # |
Continuous integration builds have changed state:
Travis build 3257. State: passed. Details: https:/
Appveyor build 3066. State: failed. Details: https:/
bunnybot (widelandsofficial) wrote : | # |
Continuous integration builds have changed state:
Travis build 3262. State: failed. Details: https:/
Appveyor build 3071. State: failed. Details: https:/
bunnybot (widelandsofficial) wrote : | # |
Continuous integration builds have changed state:
Travis build 3273. State: passed. Details: https:/
Appveyor build 3082. State: success. Details: https:/
Klaus Halfmann (klaus-halfmann) wrote : | # |
Code LGTM, looke like a cleanup favouring * instead of &,
we lost some not null assertion, though.
GunChleoc (gunchleoc) wrote : | # |
Good point, I have added an assert to MessageQueue& messages(), so we should be covered now. Thanks for the review!
@bunnybot merge
bunnybot (widelandsofficial) wrote : | # |
Continuous integration builds have changed state:
Travis build 3275. State: failed. Details: https:/
Appveyor build 3084. State: failed. Details: https:/
bunnybot (widelandsofficial) wrote : | # |
Refusing to merge, since Travis is not green. Use @bunnybot merge force for merging anyways.
Travis build 3275. State: failed. Details: https:/
GunChleoc (gunchleoc) wrote : | # |
That didn't work, so I've erased the extra commit.
@bunnybot merge
bunnybot (widelandsofficial) wrote : | # |
Refusing to merge, since Travis is not green. Use @bunnybot merge force for merging anyways.
Travis build 3275. State: failed. Details: https:/
GunChleoc (gunchleoc) wrote : | # |
The commit at the same state as the now overwritten branch was green on Travis
@bunnybot merge force
Preview Diff
1 | === modified file 'src/economy/flag.cc' |
2 | --- src/economy/flag.cc 2017-11-09 17:37:13 +0000 |
3 | +++ src/economy/flag.cc 2018-03-04 15:27:08 +0000 |
4 | @@ -106,7 +106,7 @@ |
5 | /** |
6 | * Create a flag at the given location |
7 | */ |
8 | -Flag::Flag(EditorGameBase& egbase, Player& owning_player, const Coords& coords) |
9 | +Flag::Flag(EditorGameBase& egbase, Player* owning_player, const Coords& coords) |
10 | : PlayerImmovable(g_flag_descr), |
11 | building_(nullptr), |
12 | ware_capacity_(8), |
13 | @@ -116,7 +116,7 @@ |
14 | for (uint32_t i = 0; i < 6; ++i) |
15 | roads_[i] = nullptr; |
16 | |
17 | - set_owner(&owning_player); |
18 | + set_owner(owning_player); |
19 | |
20 | set_flag_position(coords); |
21 | |
22 | @@ -125,7 +125,7 @@ |
23 | |
24 | if (game) { |
25 | // we split a road, or a new, standalone flag is created |
26 | - (road ? road->get_economy() : new Economy(owning_player))->add_flag(*this); |
27 | + (road ? road->get_economy() : new Economy(*owning_player))->add_flag(*this); |
28 | |
29 | if (road) |
30 | road->presplit(*game, coords); |
31 | |
32 | === modified file 'src/economy/flag.h' |
33 | --- src/economy/flag.h 2017-11-12 16:00:09 +0000 |
34 | +++ src/economy/flag.h 2018-03-04 15:27:08 +0000 |
35 | @@ -74,7 +74,7 @@ |
36 | const FlagDescr& descr() const; |
37 | |
38 | Flag(); /// empty flag for savegame loading |
39 | - Flag(EditorGameBase&, Player& owner, const Coords&); /// create a new flag |
40 | + Flag(EditorGameBase&, Player* owner, const Coords&); /// create a new flag |
41 | ~Flag() override; |
42 | |
43 | void load_finish(EditorGameBase&) override; |
44 | |
45 | === modified file 'src/economy/fleet.cc' |
46 | --- src/economy/fleet.cc 2017-11-25 15:46:56 +0000 |
47 | +++ src/economy/fleet.cc 2018-03-04 15:27:08 +0000 |
48 | @@ -56,7 +56,8 @@ |
49 | * instance, then add themselves \em before calling the \ref init function. |
50 | * The Fleet takes care of merging with existing fleets, if any. |
51 | */ |
52 | -Fleet::Fleet(Player& player) : MapObject(&g_fleet_descr), owner_(player), act_pending_(false) { |
53 | +Fleet::Fleet(Player* player) : MapObject(&g_fleet_descr), act_pending_(false) { |
54 | + owner_ = player; |
55 | } |
56 | |
57 | /** |
58 | @@ -81,7 +82,7 @@ |
59 | assert(e == nullptr); |
60 | #endif |
61 | |
62 | - if (upcast(Game, game, &owner().egbase())) { |
63 | + if (upcast(Game, game, &get_owner()->egbase())) { |
64 | for (Ship* temp_ship : ships_) { |
65 | temp_ship->set_economy(*game, e); |
66 | } |
67 | @@ -309,8 +310,9 @@ |
68 | bool reverse; |
69 | const PortPath& pp(portpath_bidir(startidx, endidx, reverse)); |
70 | |
71 | - if (pp.cost < 0) |
72 | - connect_port(owner().egbase(), startidx); |
73 | + if (pp.cost < 0) { |
74 | + connect_port(get_owner()->egbase(), startidx); |
75 | + } |
76 | |
77 | if (pp.cost < 0) |
78 | return false; |
79 | @@ -356,7 +358,7 @@ |
80 | |
81 | if (pp.cost < 0) { |
82 | // Lazily discover routes between ports |
83 | - connect_port(owner().egbase(), idx); |
84 | + connect_port(get_owner()->egbase(), idx); |
85 | } |
86 | |
87 | if (pp.cost >= 0) { |
88 | @@ -371,7 +373,7 @@ |
89 | void Fleet::add_ship(Ship* ship) { |
90 | ships_.push_back(ship); |
91 | ship->set_fleet(this); |
92 | - if (upcast(Game, game, &owner().egbase())) { |
93 | + if (upcast(Game, game, &get_owner()->egbase())) { |
94 | if (ports_.empty()) |
95 | ship->set_economy(*game, nullptr); |
96 | else |
97 | @@ -942,7 +944,7 @@ |
98 | if (!owner) |
99 | throw GameDataError("owning player %u does not exist", owner_number); |
100 | |
101 | - loader->init(egbase, mol, *(new Fleet(*owner))); |
102 | + loader->init(egbase, mol, *(new Fleet(owner))); |
103 | loader->load(fr); |
104 | } else { |
105 | throw UnhandledVersionError("Fleet", packet_version, kCurrentPacketVersion); |
106 | @@ -958,7 +960,7 @@ |
107 | fw.unsigned_8(HeaderFleet); |
108 | fw.unsigned_8(kCurrentPacketVersion); |
109 | |
110 | - fw.unsigned_8(owner_.player_number()); |
111 | + fw.unsigned_8(owner_->player_number()); |
112 | |
113 | MapObject::save(egbase, mos, fw); |
114 | |
115 | |
116 | === modified file 'src/economy/fleet.h' |
117 | --- src/economy/fleet.h 2017-12-02 12:42:57 +0000 |
118 | +++ src/economy/fleet.h 2018-03-04 15:27:08 +0000 |
119 | @@ -75,14 +75,7 @@ |
120 | |
121 | const FleetDescr& descr() const; |
122 | |
123 | - explicit Fleet(Player& player); |
124 | - |
125 | - Player* get_owner() const { |
126 | - return &owner_; |
127 | - } |
128 | - Player& owner() const { |
129 | - return owner_; |
130 | - } |
131 | + explicit Fleet(Player* player); |
132 | |
133 | PortDock* get_dock(Flag& flag) const; |
134 | PortDock* get_dock(EditorGameBase&, Coords) const; |
135 | @@ -125,7 +118,6 @@ |
136 | PortPath& portpath_bidir(uint32_t i, uint32_t j, bool& reverse); |
137 | const PortPath& portpath_bidir(uint32_t i, uint32_t j, bool& reverse) const; |
138 | |
139 | - Player& owner_; |
140 | std::vector<Ship*> ships_; |
141 | std::vector<PortDock*> ports_; |
142 | |
143 | |
144 | === modified file 'src/economy/input_queue.h' |
145 | --- src/economy/input_queue.h 2017-02-12 09:10:57 +0000 |
146 | +++ src/economy/input_queue.h 2018-03-04 15:27:08 +0000 |
147 | @@ -167,7 +167,7 @@ |
148 | * Returns the player owning the building containing this queue. |
149 | * @return A reference to the owning player. |
150 | */ |
151 | - Player& owner() const { |
152 | + const Player& owner() const { |
153 | return owner_.owner(); |
154 | } |
155 | |
156 | @@ -198,6 +198,14 @@ |
157 | InputQueue(PlayerImmovable& owner, DescriptionIndex index, uint8_t max_size, WareWorker type); |
158 | |
159 | /** |
160 | + * Returns the mutable player owning the building containing this queue. |
161 | + * @return A pointer to the owning player. |
162 | + */ |
163 | + Player* get_owner() const { |
164 | + return owner_.get_owner(); |
165 | + } |
166 | + |
167 | + /** |
168 | * Called when an item arrives at the owning building. |
169 | * Most likely only one of \c i or \c w will be valid. |
170 | * @param g The game the queue is part of. |
171 | |
172 | === modified file 'src/economy/portdock.cc' |
173 | --- src/economy/portdock.cc 2017-11-12 16:30:35 +0000 |
174 | +++ src/economy/portdock.cc 2018-03-04 15:27:08 +0000 |
175 | @@ -130,7 +130,7 @@ |
176 | if (fleet_) |
177 | fleet_->set_economy(e); |
178 | |
179 | - if (upcast(Game, game, &owner().egbase())) { |
180 | + if (upcast(Game, game, &get_owner()->egbase())) { |
181 | for (ShippingItem& shipping_item : waiting_) { |
182 | shipping_item.set_economy(*game, e); |
183 | } |
184 | @@ -160,7 +160,7 @@ |
185 | * that we merge with a larger fleet when possible. |
186 | */ |
187 | void PortDock::init_fleet(EditorGameBase& egbase) { |
188 | - Fleet* fleet = new Fleet(owner()); |
189 | + Fleet* fleet = new Fleet(get_owner()); |
190 | fleet->add_port(egbase, this); |
191 | fleet->init(egbase); |
192 | // Note: the Fleet calls our set_fleet automatically |
193 | |
194 | === modified file 'src/economy/road.cc' |
195 | --- src/economy/road.cc 2017-08-19 22:22:20 +0000 |
196 | +++ src/economy/road.cc 2018-03-04 15:27:08 +0000 |
197 | @@ -86,9 +86,8 @@ |
198 | assert(end.get_position() == path.get_end()); |
199 | assert(start.get_owner() == end.get_owner()); |
200 | |
201 | - Player& owner = start.owner(); |
202 | Road& road = *new Road(); |
203 | - road.set_owner(&owner); |
204 | + road.set_owner(start.get_owner()); |
205 | road.type_ = RoadType::kNormal; |
206 | road.flags_[FlagStart] = &start; |
207 | road.flags_[FlagEnd] = &end; |
208 | @@ -367,7 +366,7 @@ |
209 | * If we lost our carrier, re-request it. |
210 | */ |
211 | void Road::remove_worker(Worker& w) { |
212 | - EditorGameBase& egbase = owner().egbase(); |
213 | + EditorGameBase& egbase = get_owner()->egbase(); |
214 | |
215 | for (CarrierSlot& slot : carrier_slots_) { |
216 | Carrier const* carrier = slot.carrier.get(egbase); |
217 | |
218 | === modified file 'src/economy/shippingitem.cc' |
219 | --- src/economy/shippingitem.cc 2017-08-18 14:27:26 +0000 |
220 | +++ src/economy/shippingitem.cc 2018-03-04 15:27:08 +0000 |
221 | @@ -36,7 +36,7 @@ |
222 | ShippingItem::ShippingItem(Worker& worker) : object_(&worker) { |
223 | } |
224 | |
225 | -void ShippingItem::get(EditorGameBase& game, WareInstance** ware, Worker** worker) const { |
226 | +void ShippingItem::get(const EditorGameBase& game, WareInstance** ware, Worker** worker) const { |
227 | if (ware) { |
228 | *ware = nullptr; |
229 | } |
230 | |
231 | === modified file 'src/economy/shippingitem.h' |
232 | --- src/economy/shippingitem.h 2017-08-18 14:27:26 +0000 |
233 | +++ src/economy/shippingitem.h 2018-03-04 15:27:08 +0000 |
234 | @@ -50,7 +50,7 @@ |
235 | // Unboxes the item that is shipped which might be either a ware or a |
236 | // worker. It is safe to pass nullptr for 'ware' or 'worker' in case you are |
237 | // only interested in the ware if it is the one or the other. |
238 | - void get(EditorGameBase& game, WareInstance** ware, Worker** worker) const; |
239 | + void get(const EditorGameBase& game, WareInstance** ware, Worker** worker) const; |
240 | |
241 | void set_economy(Game&, Economy* e); |
242 | PortDock* get_destination(Game&); |
243 | |
244 | === modified file 'src/economy/workers_queue.cc' |
245 | --- src/economy/workers_queue.cc 2017-02-12 09:10:57 +0000 |
246 | +++ src/economy/workers_queue.cc 2018-03-04 15:27:08 +0000 |
247 | @@ -75,7 +75,7 @@ |
248 | assert(get_filled() < max_size_); |
249 | assert(index_ == index); |
250 | |
251 | - EditorGameBase& egbase = owner().egbase(); |
252 | + EditorGameBase& egbase = get_owner()->egbase(); |
253 | if (worker->get_location(egbase) != &(owner_)) { |
254 | worker->set_location(&(owner_)); |
255 | } |
256 | @@ -121,7 +121,7 @@ |
257 | // Now adjust them |
258 | const TribeDescr& tribe = owner().tribe(); |
259 | const WorkerDescr* worker_descr = tribe.get_worker_descr(index_); |
260 | - EditorGameBase& egbase = owner().egbase(); |
261 | + EditorGameBase& egbase = get_owner()->egbase(); |
262 | upcast(Game, game, &egbase); |
263 | assert(game != nullptr); |
264 | |
265 | @@ -129,7 +129,7 @@ |
266 | while (get_filled() < filled) { |
267 | // Create new worker |
268 | Worker& w = |
269 | - worker_descr->create(egbase, owner(), &owner_, owner_.get_positions(egbase).front()); |
270 | + worker_descr->create(egbase, get_owner(), &owner_, owner_.get_positions(egbase).front()); |
271 | assert(w.get_location(egbase) == &owner_); |
272 | w.start_task_idle(*game, 0, -1); |
273 | workers_.push_back(&w); |
274 | @@ -157,7 +157,7 @@ |
275 | InputQueue::set_max_fill(q); |
276 | |
277 | // If requested, kick out workers |
278 | - upcast(Game, game, &owner().egbase()); |
279 | + upcast(Game, game, &get_owner()->egbase()); |
280 | while (workers_.size() > max_fill_) { |
281 | workers_.back()->reset_tasks(*game); |
282 | workers_.back()->start_task_leavebuilding(*game, true); |
283 | |
284 | === modified file 'src/editor/ui_menus/tool_place_critter_options_menu.cc' |
285 | --- src/editor/ui_menus/tool_place_critter_options_menu.cc 2017-05-14 14:40:24 +0000 |
286 | +++ src/editor/ui_menus/tool_place_critter_options_menu.cc 2018-03-04 15:27:08 +0000 |
287 | @@ -53,7 +53,7 @@ |
288 | multi_select_menu_.reset( |
289 | new CategorizedItemSelectionMenu<Widelands::CritterDescr, EditorPlaceCritterTool>( |
290 | this, world.editor_critter_categories(), world.critters(), |
291 | - [this](UI::Panel* cb_parent, const Widelands::CritterDescr& critter_descr) { |
292 | + [](UI::Panel* cb_parent, const Widelands::CritterDescr& critter_descr) { |
293 | return create_critter_checkbox(cb_parent, critter_descr); |
294 | }, |
295 | [this] { select_correct_tool(); }, &tool)); |
296 | |
297 | === modified file 'src/editor/ui_menus/tool_place_immovable_options_menu.cc' |
298 | --- src/editor/ui_menus/tool_place_immovable_options_menu.cc 2017-05-14 14:40:24 +0000 |
299 | +++ src/editor/ui_menus/tool_place_immovable_options_menu.cc 2018-03-04 15:27:08 +0000 |
300 | @@ -54,7 +54,7 @@ |
301 | multi_select_menu_.reset( |
302 | new CategorizedItemSelectionMenu<Widelands::ImmovableDescr, EditorPlaceImmovableTool>( |
303 | this, world.editor_immovable_categories(), world.immovables(), |
304 | - [this](UI::Panel* cb_parent, const ImmovableDescr& immovable_descr) { |
305 | + [](UI::Panel* cb_parent, const ImmovableDescr& immovable_descr) { |
306 | return create_immovable_checkbox(cb_parent, immovable_descr); |
307 | }, |
308 | [this] { select_correct_tool(); }, &tool)); |
309 | |
310 | === modified file 'src/game_io/game_player_info_packet.cc' |
311 | --- src/game_io/game_player_info_packet.cc 2017-01-25 18:55:59 +0000 |
312 | +++ src/game_io/game_player_info_packet.cc 2018-03-04 15:27:08 +0000 |
313 | @@ -55,19 +55,19 @@ |
314 | std::string const name = fr.c_string(); |
315 | |
316 | game.add_player(plnum, 0, tribe_name, name, team); |
317 | - Player& player = game.player(plnum); |
318 | - player.set_see_all(see_all); |
319 | - |
320 | - player.set_ai(fr.c_string()); |
321 | - player.read_statistics(fr); |
322 | - player.read_remaining_shipnames(fr); |
323 | - |
324 | - player.casualties_ = fr.unsigned_32(); |
325 | - player.kills_ = fr.unsigned_32(); |
326 | - player.msites_lost_ = fr.unsigned_32(); |
327 | - player.msites_defeated_ = fr.unsigned_32(); |
328 | - player.civil_blds_lost_ = fr.unsigned_32(); |
329 | - player.civil_blds_defeated_ = fr.unsigned_32(); |
330 | + Player* player = game.get_player(plnum); |
331 | + player->set_see_all(see_all); |
332 | + |
333 | + player->set_ai(fr.c_string()); |
334 | + player->read_statistics(fr); |
335 | + player->read_remaining_shipnames(fr); |
336 | + |
337 | + player->casualties_ = fr.unsigned_32(); |
338 | + player->kills_ = fr.unsigned_32(); |
339 | + player->msites_lost_ = fr.unsigned_32(); |
340 | + player->msites_defeated_ = fr.unsigned_32(); |
341 | + player->civil_blds_lost_ = fr.unsigned_32(); |
342 | + player->civil_blds_defeated_ = fr.unsigned_32(); |
343 | } |
344 | } |
345 | |
346 | |
347 | === modified file 'src/graphic/gl/fields_to_draw.cc' |
348 | --- src/graphic/gl/fields_to_draw.cc 2017-08-29 10:48:24 +0000 |
349 | +++ src/graphic/gl/fields_to_draw.cc 2018-03-04 15:27:08 +0000 |
350 | @@ -146,8 +146,8 @@ |
351 | |
352 | f.brightness = field_brightness(f.fcoords); |
353 | |
354 | - Widelands::PlayerNumber owned_by = f.fcoords.field->get_owned_by(); |
355 | - f.owner = owned_by != 0 ? &egbase.player(owned_by) : nullptr; |
356 | + const Widelands::PlayerNumber owned_by = f.fcoords.field->get_owned_by(); |
357 | + f.owner = owned_by != 0 ? egbase.get_player(owned_by) : nullptr; |
358 | f.is_border = f.fcoords.field->is_border(); |
359 | f.vision = 2; |
360 | f.roads = f.fcoords.field->get_roads(); |
361 | |
362 | === modified file 'src/io/streamread.cc' |
363 | --- src/io/streamread.cc 2017-01-25 18:55:59 +0000 |
364 | +++ src/io/streamread.cc 2018-03-04 15:27:08 +0000 |
365 | @@ -50,8 +50,8 @@ |
366 | size_t read = data(read_data, size); |
367 | |
368 | if (read != size) |
369 | - throw data_error("Stream ended unexpectedly (%lu bytes read, %lu expected)", |
370 | - static_cast<long unsigned int>(read), static_cast<long unsigned int>(size)); |
371 | + throw data_error("Stream ended unexpectedly (%" PRIuS " bytes read, %" PRIuS " expected)", |
372 | + read, size); |
373 | } |
374 | |
375 | int8_t StreamRead::signed_8() { |
376 | |
377 | === modified file 'src/logic/cmd_delete_message.cc' |
378 | --- src/logic/cmd_delete_message.cc 2017-01-25 18:55:59 +0000 |
379 | +++ src/logic/cmd_delete_message.cc 2018-03-04 15:27:08 +0000 |
380 | @@ -25,6 +25,6 @@ |
381 | namespace Widelands { |
382 | |
383 | void CmdDeleteMessage::execute(Game& game) { |
384 | - game.player(player).messages().delete_message(message); |
385 | + game.get_player(player)->get_messages()->delete_message(message); |
386 | } |
387 | } |
388 | |
389 | === modified file 'src/logic/cmd_luacoroutine.cc' |
390 | --- src/logic/cmd_luacoroutine.cc 2017-07-07 07:20:10 +0000 |
391 | +++ src/logic/cmd_luacoroutine.cc 2018-03-04 15:27:08 +0000 |
392 | @@ -57,7 +57,7 @@ |
393 | Message::Type::kGameLogic, game.get_gametime(), "Coroutine", |
394 | "images/ui_basic/menu_help.png", "Lua Coroutine Failed", |
395 | (boost::format("<rt><p font-size=12>%s</p></rt>") % e.what()).str())); |
396 | - game.player(i).add_message(game, std::move(msg), true); |
397 | + game.get_player(i)->add_message(game, std::move(msg), true); |
398 | } |
399 | game.game_controller()->set_desired_speed(0); |
400 | } |
401 | |
402 | === modified file 'src/logic/editor_game_base.cc' |
403 | --- src/logic/editor_game_base.cc 2017-11-11 18:59:55 +0000 |
404 | +++ src/logic/editor_game_base.cc 2018-03-04 15:27:08 +0000 |
405 | @@ -160,7 +160,7 @@ |
406 | return player_manager_->get_player(n); |
407 | } |
408 | |
409 | -Player& EditorGameBase::player(const int32_t n) const { |
410 | +const Player& EditorGameBase::player(const int32_t n) const { |
411 | return player_manager_->player(n); |
412 | } |
413 | |
414 | @@ -225,8 +225,8 @@ |
415 | PlayerNumber const owner, |
416 | DescriptionIndex const idx, |
417 | Building::FormerBuildings former_buildings) { |
418 | - Player& plr = player(owner); |
419 | - const TribeDescr& tribe = plr.tribe(); |
420 | + Player* plr = get_player(owner); |
421 | + const TribeDescr& tribe = plr->tribe(); |
422 | return tribe.get_building_descr(idx)->create(*this, plr, c, false, true, former_buildings); |
423 | } |
424 | |
425 | @@ -242,8 +242,8 @@ |
426 | DescriptionIndex idx, |
427 | bool loading, |
428 | Building::FormerBuildings former_buildings) { |
429 | - Player& plr = player(owner); |
430 | - const TribeDescr& tribe = plr.tribe(); |
431 | + Player* plr = get_player(owner); |
432 | + const TribeDescr& tribe = plr->tribe(); |
433 | return tribe.get_building_descr(idx)->create(*this, plr, c, true, loading, former_buildings); |
434 | } |
435 | |
436 | @@ -256,15 +256,15 @@ |
437 | PlayerNumber const owner, |
438 | bool loading, |
439 | Building::FormerBuildings former_buildings) { |
440 | - Player& plr = player(owner); |
441 | - const TribeDescr& tribe = plr.tribe(); |
442 | + Player* plr = get_player(owner); |
443 | + const TribeDescr& tribe = plr->tribe(); |
444 | |
445 | BuildingDescr const* const descr = |
446 | tribe.get_building_descr(tribe.safe_building_index("dismantlesite")); |
447 | |
448 | upcast(const DismantleSiteDescr, ds_descr, descr); |
449 | |
450 | - return *new DismantleSite(*ds_descr, *this, c, *get_player(owner), loading, former_buildings); |
451 | + return *new DismantleSite(*ds_descr, *this, c, plr, loading, former_buildings); |
452 | } |
453 | |
454 | /** |
455 | @@ -576,7 +576,7 @@ |
456 | assert(preferred_player <= map().get_nrplayers()); |
457 | assert(preferred_player != player_area.player_number); |
458 | assert(!conquer || !preferred_player); |
459 | - Player& conquering_player = player(player_area.player_number); |
460 | + Player* conquering_player = get_player(player_area.player_number); |
461 | MapRegion<Area<FCoords>> mr(map(), player_area); |
462 | do { |
463 | MapIndex const index = mr.location().field - &first_field; |
464 | @@ -586,14 +586,14 @@ |
465 | PlayerNumber const owner = mr.location().field->get_owned_by(); |
466 | if (conquer) { |
467 | // adds the influence |
468 | - MilitaryInfluence new_influence_modified = conquering_player.military_influence(index) += |
469 | + MilitaryInfluence new_influence_modified = conquering_player->military_influence(index) += |
470 | influence; |
471 | if (owner && !conquer_guarded_location_by_superior_influence) |
472 | new_influence_modified = 1; |
473 | if (!owner || player(owner).military_influence(index) < new_influence_modified) { |
474 | change_field_owner(mr.location(), player_area.player_number); |
475 | } |
476 | - } else if (!(conquering_player.military_influence(index) -= influence) && |
477 | + } else if (!(conquering_player->military_influence(index) -= influence) && |
478 | owner == player_area.player_number) { |
479 | // The player completely lost influence over the location, which he |
480 | // owned. Now we must see if some other player has influence and if |
481 | |
482 | === modified file 'src/logic/editor_game_base.h' |
483 | --- src/logic/editor_game_base.h 2017-08-20 15:45:50 +0000 |
484 | +++ src/logic/editor_game_base.h 2018-03-04 15:27:08 +0000 |
485 | @@ -108,7 +108,7 @@ |
486 | const std::string& name, |
487 | TeamNumber team = 0); |
488 | Player* get_player(int32_t n) const; |
489 | - Player& player(int32_t n) const; |
490 | + const Player& player(int32_t n) const; |
491 | virtual Player* get_safe_player(PlayerNumber); |
492 | |
493 | // loading stuff |
494 | |
495 | === modified file 'src/logic/map_objects/bob.cc' |
496 | --- src/logic/map_objects/bob.cc 2017-09-22 09:26:28 +0000 |
497 | +++ src/logic/map_objects/bob.cc 2018-03-04 15:27:08 +0000 |
498 | @@ -767,11 +767,11 @@ |
499 | return; |
500 | } |
501 | |
502 | - auto* const owner = get_owner(); |
503 | + auto* const bob_owner = get_owner(); |
504 | const Vector2f point_on_dst = calc_drawpos(egbase, field_on_dst, scale); |
505 | - if (owner != nullptr) { |
506 | + if (bob_owner != nullptr) { |
507 | dst->blit_animation( |
508 | - point_on_dst, scale, anim_, egbase.get_gametime() - animstart_, owner->get_playercolor()); |
509 | + point_on_dst, scale, anim_, egbase.get_gametime() - animstart_, bob_owner->get_playercolor()); |
510 | } else { |
511 | dst->blit_animation(point_on_dst, scale, anim_, egbase.get_gametime() - animstart_); |
512 | } |
513 | @@ -919,11 +919,11 @@ |
514 | |
515 | molog("Signal: %s\n", signal_.c_str()); |
516 | |
517 | - molog("Stack size: %lu\n", static_cast<long unsigned int>(stack_.size())); |
518 | + molog("Stack size: %" PRIuS "\n", stack_.size()); |
519 | |
520 | for (size_t i = 0; i < stack_.size(); ++i) { |
521 | - molog("Stack dump %lu/%lu\n", static_cast<long unsigned int>(i + 1), |
522 | - static_cast<long unsigned int>(stack_.size())); |
523 | + molog("Stack dump %" PRIuS "/%" PRIuS "\n", i + 1, |
524 | + stack_.size()); |
525 | |
526 | molog("* task->name: %s\n", stack_[i].task->name); |
527 | |
528 | @@ -946,8 +946,7 @@ |
529 | FORMAT_WARNINGS_ON; |
530 | if (stack_[i].path) { |
531 | const Path& path = *stack_[i].path; |
532 | - Path::StepVector::size_type nr_steps = path.get_nsteps(); |
533 | - molog("** Path length: %lu\n", static_cast<long unsigned int>(nr_steps)); |
534 | + molog("** Path length: %" PRIuS "\n", path.get_nsteps()); |
535 | molog("** Start: (%i, %i)\n", path.get_start().x, path.get_start().y); |
536 | molog("** End: (%i, %i)\n", path.get_end().x, path.get_end().y); |
537 | // Printing all coordinates of the path |
538 | |
539 | === modified file 'src/logic/map_objects/immovable.h' |
540 | --- src/logic/map_objects/immovable.h 2017-11-26 14:44:23 +0000 |
541 | +++ src/logic/map_objects/immovable.h 2018-03-04 15:27:08 +0000 |
542 | @@ -332,12 +332,6 @@ |
543 | explicit PlayerImmovable(const MapObjectDescr&); |
544 | ~PlayerImmovable() override; |
545 | |
546 | - Player* get_owner() const { |
547 | - return owner_; |
548 | - } |
549 | - Player& owner() const { |
550 | - return *owner_; |
551 | - } |
552 | Economy* get_economy() const { |
553 | return economy_; |
554 | } |
555 | |
556 | === modified file 'src/logic/map_objects/map_object.h' |
557 | --- src/logic/map_objects/map_object.h 2018-01-23 00:23:13 +0000 |
558 | +++ src/logic/map_objects/map_object.h 2018-03-04 15:27:08 +0000 |
559 | @@ -208,8 +208,8 @@ |
560 | * |
561 | * When you do create a new object yourself (i.e. when you're implementing one |
562 | * of the create() functions), you need to allocate the object using new, |
563 | - * potentially set it up by calling basic functions like set_position(), |
564 | - * set_owner(), etc. and then call init(). After that, the object is supposed to |
565 | + * potentially set it up by calling basic functions like set_position(), etc. |
566 | + * and then call init(). After that, the object is supposed to |
567 | * be fully created. |
568 | */ |
569 | |
570 | @@ -310,6 +310,11 @@ |
571 | return owner_; |
572 | } |
573 | |
574 | + const Player& owner() const { |
575 | + assert(get_owner()); |
576 | + return *owner_; |
577 | + } |
578 | + |
579 | // Header bytes to distinguish between data packages for the different |
580 | // MapObject classes. Be careful in changing those, since they are written |
581 | // to files. |
582 | |
583 | === modified file 'src/logic/map_objects/tribes/battle.cc' |
584 | --- src/logic/map_objects/tribes/battle.cc 2017-08-16 13:23:15 +0000 |
585 | +++ src/logic/map_objects/tribes/battle.cc 2018-03-04 15:27:08 +0000 |
586 | @@ -176,8 +176,8 @@ |
587 | |
588 | if (soldier.get_current_health() < 1) { |
589 | molog("[battle] soldier %u lost the battle\n", soldier.serial()); |
590 | - soldier.owner().count_casualty(); |
591 | - opponent(soldier)->owner().count_kill(); |
592 | + soldier.get_owner()->count_casualty(); |
593 | + opponent(soldier)->get_owner()->count_kill(); |
594 | soldier.start_task_die(game); |
595 | molog("[battle] waking up winner %d\n", opponent(soldier)->serial()); |
596 | opponent(soldier)->send_signal(game, "wakeup"); |
597 | |
598 | === modified file 'src/logic/map_objects/tribes/building.cc' |
599 | --- src/logic/map_objects/tribes/building.cc 2018-01-11 11:40:45 +0000 |
600 | +++ src/logic/map_objects/tribes/building.cc 2018-03-04 15:27:08 +0000 |
601 | @@ -166,14 +166,14 @@ |
602 | } |
603 | |
604 | Building& BuildingDescr::create(EditorGameBase& egbase, |
605 | - Player& owner, |
606 | + Player* owner, |
607 | Coords const pos, |
608 | bool const construct, |
609 | bool loading, |
610 | Building::FormerBuildings const former_buildings) const { |
611 | Building& b = construct ? create_constructionsite() : create_object(); |
612 | b.position_ = pos; |
613 | - b.set_owner(&owner); |
614 | + b.set_owner(owner); |
615 | for (DescriptionIndex idx : former_buildings) { |
616 | b.old_buildings_.push_back(idx); |
617 | } |
618 | @@ -356,7 +356,7 @@ |
619 | { |
620 | Flag* flag = dynamic_cast<Flag*>(map.get_immovable(neighb)); |
621 | if (!flag) |
622 | - flag = new Flag(egbase, owner(), neighb); |
623 | + flag = new Flag(egbase, get_owner(), neighb); |
624 | flag_ = flag; |
625 | flag->attach_building(egbase, *this); |
626 | } |
627 | @@ -370,13 +370,13 @@ |
628 | |
629 | void Building::cleanup(EditorGameBase& egbase) { |
630 | if (defeating_player_) { |
631 | - Player& defeating_player = egbase.player(defeating_player_); |
632 | + Player* defeating_player = egbase.get_player(defeating_player_); |
633 | if (descr().get_conquers()) { |
634 | - owner().count_msite_lost(); |
635 | - defeating_player.count_msite_defeated(); |
636 | + get_owner()->count_msite_lost(); |
637 | + defeating_player->count_msite_defeated(); |
638 | } else { |
639 | - owner().count_civil_bld_lost(); |
640 | - defeating_player.count_civil_bld_defeated(); |
641 | + get_owner()->count_civil_bld_lost(); |
642 | + defeating_player->count_civil_bld_defeated(); |
643 | } |
644 | } |
645 | |
646 | @@ -684,7 +684,7 @@ |
647 | |
648 | molog("leave_time: %i\n", leave_time_); |
649 | |
650 | - molog("leave_queue.size(): %lu\n", static_cast<long unsigned int>(leave_queue_.size())); |
651 | + molog("leave_queue.size(): %" PRIuS "\n", leave_queue_.size()); |
652 | FORMAT_WARNINGS_OFF; |
653 | molog("leave_allow.get(): %p\n", leave_allow_.get(egbase)); |
654 | FORMAT_WARNINGS_ON; |
655 | @@ -727,13 +727,14 @@ |
656 | if (see == seeing_) |
657 | return; |
658 | |
659 | - Player& player = owner(); |
660 | - const Map& map = player.egbase().map(); |
661 | + Player* player = get_owner(); |
662 | + const Map& map = player->egbase().map(); |
663 | |
664 | - if (see) |
665 | - player.see_area(Area<FCoords>(map.get_fcoords(get_position()), descr().vision_range())); |
666 | - else |
667 | - player.unsee_area(Area<FCoords>(map.get_fcoords(get_position()), descr().vision_range())); |
668 | + if (see) { |
669 | + player->see_area(Area<FCoords>(map.get_fcoords(get_position()), descr().vision_range())); |
670 | + } else { |
671 | + player->unsee_area(Area<FCoords>(map.get_fcoords(get_position()), descr().vision_range())); |
672 | + } |
673 | |
674 | seeing_ = see; |
675 | } |
676 | @@ -778,9 +779,9 @@ |
677 | (link_to_building_lifetime ? serial_ : 0))); |
678 | |
679 | if (throttle_time) { |
680 | - owner().add_message_with_timeout(game, std::move(msg), throttle_time, throttle_radius); |
681 | + get_owner()->add_message_with_timeout(game, std::move(msg), throttle_time, throttle_radius); |
682 | } else { |
683 | - owner().add_message(game, std::move(msg)); |
684 | + get_owner()->add_message(game, std::move(msg)); |
685 | } |
686 | } |
687 | } |
688 | |
689 | === modified file 'src/logic/map_objects/tribes/building.h' |
690 | --- src/logic/map_objects/tribes/building.h 2018-01-23 00:23:13 +0000 |
691 | +++ src/logic/map_objects/tribes/building.h 2018-03-04 15:27:08 +0000 |
692 | @@ -143,7 +143,7 @@ |
693 | /// Does not perform any sanity checks. |
694 | /// If former_buildings is not empty this is an enhancing. |
695 | Building& create(EditorGameBase&, |
696 | - Player&, |
697 | + Player*, |
698 | Coords, |
699 | bool construct, |
700 | bool loading = false, |
701 | |
702 | === modified file 'src/logic/map_objects/tribes/constructionsite.cc' |
703 | --- src/logic/map_objects/tribes/constructionsite.cc 2017-12-17 17:47:34 +0000 |
704 | +++ src/logic/map_objects/tribes/constructionsite.cc 2018-03-04 15:27:08 +0000 |
705 | @@ -189,7 +189,7 @@ |
706 | // Put the real building in place |
707 | DescriptionIndex becomes_idx = owner().tribe().building_index(building_->name()); |
708 | old_buildings_.push_back(becomes_idx); |
709 | - Building& b = building_->create(egbase, owner(), position_, false, false, old_buildings_); |
710 | + Building& b = building_->create(egbase, get_owner(), position_, false, false, old_buildings_); |
711 | if (Worker* const builder = builder_.get(egbase)) { |
712 | builder->reset_tasks(dynamic_cast<Game&>(egbase)); |
713 | builder->set_location(&b); |
714 | @@ -294,7 +294,7 @@ |
715 | wq.set_max_size(wq.get_max_size() - 1); |
716 | |
717 | // Update consumption statistic |
718 | - owner().ware_consumed(wq.get_index(), 1); |
719 | + get_owner()->ware_consumed(wq.get_index(), 1); |
720 | |
721 | working_ = true; |
722 | work_steptime_ = game.get_gametime() + CONSTRUCTIONSITE_STEP_TIME; |
723 | |
724 | === modified file 'src/logic/map_objects/tribes/dismantlesite.cc' |
725 | --- src/logic/map_objects/tribes/dismantlesite.cc 2017-12-17 17:47:34 +0000 |
726 | +++ src/logic/map_objects/tribes/dismantlesite.cc 2018-03-04 15:27:08 +0000 |
727 | @@ -68,12 +68,12 @@ |
728 | DismantleSite::DismantleSite(const DismantleSiteDescr& gdescr, |
729 | EditorGameBase& egbase, |
730 | const Coords& c, |
731 | - Player& plr, |
732 | + Player* plr, |
733 | bool loading, |
734 | Building::FormerBuildings& former_buildings) |
735 | : PartiallyFinishedBuilding(gdescr) { |
736 | position_ = c; |
737 | - set_owner(&plr); |
738 | + set_owner(plr); |
739 | |
740 | assert(!former_buildings.empty()); |
741 | for (DescriptionIndex former_idx : former_buildings) { |
742 | @@ -184,7 +184,7 @@ |
743 | wq.set_max_size(wq.get_max_size() - 1); |
744 | |
745 | // Update statistics |
746 | - owner().ware_produced(wq.get_index()); |
747 | + get_owner()->ware_produced(wq.get_index()); |
748 | |
749 | const WareDescr& wd = *owner().tribe().get_ware_descr(wq.get_index()); |
750 | WareInstance& ware = *new WareInstance(wq.get_index(), &wd); |
751 | |
752 | === modified file 'src/logic/map_objects/tribes/dismantlesite.h' |
753 | --- src/logic/map_objects/tribes/dismantlesite.h 2017-08-18 17:32:16 +0000 |
754 | +++ src/logic/map_objects/tribes/dismantlesite.h 2018-03-04 15:27:08 +0000 |
755 | @@ -69,7 +69,7 @@ |
756 | explicit DismantleSite(const DismantleSiteDescr& descr, |
757 | EditorGameBase&, |
758 | const Coords&, |
759 | - Player&, |
760 | + Player*, |
761 | bool, |
762 | Building::FormerBuildings& former_buildings); |
763 | |
764 | |
765 | === modified file 'src/logic/map_objects/tribes/market.cc' |
766 | --- src/logic/map_objects/tribes/market.cc 2017-10-04 00:27:47 +0000 |
767 | +++ src/logic/map_objects/tribes/market.cc 2018-03-04 15:27:08 +0000 |
768 | @@ -243,14 +243,14 @@ |
769 | // ware to drop it off. The carrier then leaves the building and goes home. |
770 | const WorkerDescr& w_desc = |
771 | *game->tribes().get_worker_descr(game->tribes().worker_index("barbarians_carrier")); |
772 | - auto& worker = w_desc.create(*game, owner(), this, position_); |
773 | + auto& worker = w_desc.create(*game, get_owner(), this, position_); |
774 | worker.start_task_dropoff(*game, *ware); |
775 | trade_order.received_traded_wares_in_this_batch += 1; |
776 | - owner().ware_produced(ware_index); |
777 | + get_owner()->ware_produced(ware_index); |
778 | |
779 | auto* other_market = dynamic_cast<Market*>(game->objects().get_object(trade_order.other_side)); |
780 | assert(other_market != nullptr); |
781 | - other_market->owner().ware_consumed(ware_index, 1); |
782 | + other_market->get_owner()->ware_consumed(ware_index, 1); |
783 | auto& other_trade_order = other_market->trade_orders_.at(trade_id); |
784 | if (trade_order.received_traded_wares_in_this_batch == other_trade_order.num_wares_per_batch() && |
785 | other_trade_order.received_traded_wares_in_this_batch == trade_order.num_wares_per_batch()) { |
786 | |
787 | === modified file 'src/logic/map_objects/tribes/militarysite.cc' |
788 | --- src/logic/map_objects/tribes/militarysite.cc 2017-11-30 10:59:06 +0000 |
789 | +++ src/logic/map_objects/tribes/militarysite.cc 2018-03-04 15:27:08 +0000 |
790 | @@ -88,7 +88,7 @@ |
791 | } |
792 | |
793 | void MilitarySite::SoldierControl::drop_soldier(Soldier& soldier) { |
794 | - Game& game = dynamic_cast<Game&>(military_site_->owner().egbase()); |
795 | + Game& game = dynamic_cast<Game&>(military_site_->get_owner()->egbase()); |
796 | |
797 | if (!military_site_->is_present(soldier)) { |
798 | // This can happen when the "drop soldier" player command is delayed |
799 | @@ -154,16 +154,16 @@ |
800 | } |
801 | |
802 | void MilitarySite::AttackTarget::enemy_soldier_approaches(const Soldier& enemy) const { |
803 | - auto& owner = military_site_->owner(); |
804 | - Game& game = dynamic_cast<Game&>(owner.egbase()); |
805 | + Player* owner = military_site_->get_owner(); |
806 | + Game& game = dynamic_cast<Game&>(owner->egbase()); |
807 | const Map& map = game.map(); |
808 | - if (enemy.get_owner() == &owner || enemy.get_battle() || |
809 | + if (enemy.get_owner() == owner || enemy.get_battle() || |
810 | military_site_->descr().get_conquers() <= |
811 | map.calc_distance(enemy.get_position(), military_site_->get_position())) |
812 | return; |
813 | |
814 | if (map.find_bobs(Area<FCoords>(map.get_fcoords(military_site_->base_flag().get_position()), 2), |
815 | - nullptr, FindBobEnemySoldier(&owner))) |
816 | + nullptr, FindBobEnemySoldier(owner))) |
817 | return; |
818 | |
819 | // We're dealing with a soldier that we might want to keep busy |
820 | @@ -191,7 +191,7 @@ |
821 | } |
822 | |
823 | AttackTarget::AttackResult MilitarySite::AttackTarget::attack(Soldier* enemy) const { |
824 | - Game& game = dynamic_cast<Game&>(military_site_->owner().egbase()); |
825 | + Game& game = dynamic_cast<Game&>(military_site_->get_owner()->egbase()); |
826 | |
827 | std::vector<Soldier*> present = military_site_->soldier_control_.present_soldiers(); |
828 | Soldier* defender = nullptr; |
829 | @@ -519,7 +519,7 @@ |
830 | |
831 | // Now I know that the new guy is worthy. |
832 | if (nullptr != kickoutCandidate) { |
833 | - Game& game = dynamic_cast<Game&>(owner().egbase()); |
834 | + Game& game = dynamic_cast<Game&>(get_owner()->egbase()); |
835 | kickoutCandidate->reset_tasks(game); |
836 | kickoutCandidate->start_task_leavebuilding(game, true); |
837 | return true; |
838 | @@ -580,7 +580,7 @@ |
839 | } |
840 | |
841 | if (capacity_ < present.size()) { |
842 | - Game& game = dynamic_cast<Game&>(owner().egbase()); |
843 | + Game& game = dynamic_cast<Game&>(get_owner()->egbase()); |
844 | for (uint32_t i = 0; i < present.size() - capacity_; ++i) { |
845 | Soldier& soldier = *present[i]; |
846 | soldier.reset_tasks(game); |
847 | @@ -812,7 +812,7 @@ |
848 | * \return \c true if the soldier is currently present and idle in the building. |
849 | */ |
850 | bool MilitarySite::is_present(Soldier& soldier) const { |
851 | - return soldier.get_location(owner().egbase()) == this && |
852 | + return soldier.get_location(get_owner()->egbase()) == this && |
853 | soldier.get_state() == soldier.get_state(Worker::taskBuildingwork) && |
854 | soldier.get_position() == get_position(); |
855 | } |
856 | @@ -894,7 +894,7 @@ |
857 | sj.stayhome = false; |
858 | soldierjobs_.push_back(sj); |
859 | |
860 | - soldier.update_task_buildingwork(dynamic_cast<Game&>(owner().egbase())); |
861 | + soldier.update_task_buildingwork(dynamic_cast<Game&>(get_owner()->egbase())); |
862 | } |
863 | |
864 | bool MilitarySite::has_soldier_job(Soldier& soldier) { |
865 | |
866 | === modified file 'src/logic/map_objects/tribes/production_program.cc' |
867 | --- src/logic/map_objects/tribes/production_program.cc 2017-12-02 11:41:19 +0000 |
868 | +++ src/logic/map_objects/tribes/production_program.cc 2018-03-04 15:27:08 +0000 |
869 | @@ -912,7 +912,7 @@ |
870 | |
871 | // Update consumption statistics |
872 | if (inputqueues[i]->get_type() == wwWARE) { |
873 | - ps.owner().ware_consumed(inputqueues[i]->get_index(), q); |
874 | + ps.get_owner()->ware_consumed(inputqueues[i]->get_index(), q); |
875 | } |
876 | } |
877 | } |
878 | |
879 | === modified file 'src/logic/map_objects/tribes/productionsite.cc' |
880 | --- src/logic/map_objects/tribes/productionsite.cc 2017-09-15 19:45:11 +0000 |
881 | +++ src/logic/map_objects/tribes/productionsite.cc 2018-03-04 15:27:08 +0000 |
882 | @@ -514,7 +514,7 @@ |
883 | continue; |
884 | |
885 | // Okay, space is free and worker is fitting. Let's create him |
886 | - Worker& worker = wdes.create(egbase, owner(), this, get_position()); |
887 | + Worker& worker = wdes.create(egbase, get_owner(), this, get_position()); |
888 | |
889 | if (upcast(Game, game, &egbase)) |
890 | worker.start_task_idle(*game, 0, -1); |
891 | @@ -788,7 +788,7 @@ |
892 | ware.init(game); |
893 | worker.start_task_dropoff(game, ware); |
894 | } |
895 | - owner().ware_produced(ware_index); // for statistics |
896 | + get_owner()->ware_produced(ware_index); // for statistics |
897 | } |
898 | assert(ware_type_with_count.second); |
899 | if (--ware_type_with_count.second == 0) |
900 | @@ -805,7 +805,7 @@ |
901 | *owner().tribe().get_worker_descr(worker_type_with_count.first); |
902 | { |
903 | Worker& recruit = dynamic_cast<Worker&>(worker_descr.create_object()); |
904 | - recruit.set_owner(&worker.owner()); |
905 | + recruit.set_owner(worker.get_owner()); |
906 | recruit.set_position(game, worker.get_position()); |
907 | recruit.init(game); |
908 | recruit.set_location(this); |
909 | |
910 | === modified file 'src/logic/map_objects/tribes/ship.cc' |
911 | --- src/logic/map_objects/tribes/ship.cc 2018-02-23 07:54:12 +0000 |
912 | +++ src/logic/map_objects/tribes/ship.cc 2018-03-04 15:27:08 +0000 |
913 | @@ -171,7 +171,7 @@ |
914 | */ |
915 | bool Ship::init_fleet(EditorGameBase& egbase) { |
916 | assert(get_owner() != nullptr); |
917 | - Fleet* fleet = new Fleet(*get_owner()); |
918 | + Fleet* fleet = new Fleet(get_owner()); |
919 | fleet->add_ship(this); |
920 | return fleet->init(egbase); |
921 | // fleet calls the set_fleet function appropriately |
922 | |
923 | === modified file 'src/logic/map_objects/tribes/soldier.cc' |
924 | --- src/logic/map_objects/tribes/soldier.cc 2017-12-17 17:47:34 +0000 |
925 | +++ src/logic/map_objects/tribes/soldier.cc 2018-03-04 15:27:08 +0000 |
926 | @@ -622,7 +622,7 @@ |
927 | if (!battle_) { |
928 | return true; |
929 | } |
930 | - return !battle_->locked(dynamic_cast<Game&>(owner().egbase())); |
931 | + return !battle_->locked(dynamic_cast<Game&>(get_owner()->egbase())); |
932 | } |
933 | |
934 | /** |
935 | @@ -1345,12 +1345,12 @@ |
936 | (immovable_dest ? immovable_dest->descr().descname().c_str() : ("no")) % |
937 | descr().descname().c_str()) |
938 | .str(); |
939 | - owner().add_message( |
940 | + get_owner()->add_message( |
941 | game, std::unique_ptr<Message>( |
942 | new Message(Message::Type::kGameLogic, game.get_gametime(), |
943 | descr().descname(), "images/ui_basic/menu_help.png", |
944 | _("Logic error"), messagetext, get_position(), serial_))); |
945 | - opponent.owner().add_message( |
946 | + opponent.get_owner()->add_message( |
947 | game, std::unique_ptr<Message>(new Message( |
948 | Message::Type::kGameLogic, game.get_gametime(), descr().descname(), |
949 | "images/ui_basic/menu_help.png", _("Logic error"), messagetext, |
950 | |
951 | === modified file 'src/logic/map_objects/tribes/trainingsite.cc' |
952 | --- src/logic/map_objects/tribes/trainingsite.cc 2017-11-09 17:37:13 +0000 |
953 | +++ src/logic/map_objects/tribes/trainingsite.cc 2018-03-04 15:27:08 +0000 |
954 | @@ -216,7 +216,7 @@ |
955 | * soldier is actually stationed here, without breaking anything if he isn't. |
956 | */ |
957 | void TrainingSite::SoldierControl::drop_soldier(Soldier& soldier) { |
958 | - Game& game = dynamic_cast<Game&>(training_site_->owner().egbase()); |
959 | + Game& game = dynamic_cast<Game&>(training_site_->get_owner()->egbase()); |
960 | |
961 | std::vector<Soldier*>::iterator it = |
962 | std::find(training_site_->soldiers_.begin(), training_site_->soldiers_.end(), &soldier); |
963 | @@ -349,13 +349,13 @@ |
964 | if (std::find(soldiers_.begin(), soldiers_.end(), soldier) == soldiers_.end()) |
965 | soldiers_.push_back(soldier); |
966 | |
967 | - if (upcast(Game, game, &owner().egbase())) |
968 | + if (upcast(Game, game, &get_owner()->egbase())) |
969 | schedule_act(*game, 100); |
970 | } |
971 | } |
972 | |
973 | void TrainingSite::remove_worker(Worker& w) { |
974 | - upcast(Game, game, &owner().egbase()); |
975 | + upcast(Game, game, &get_owner()->egbase()); |
976 | |
977 | if (upcast(Soldier, soldier, &w)) { |
978 | std::vector<Soldier*>::iterator const it = |
979 | |
980 | === modified file 'src/logic/map_objects/tribes/warehouse.cc' |
981 | --- src/logic/map_objects/tribes/warehouse.cc 2017-08-30 12:06:20 +0000 |
982 | +++ src/logic/map_objects/tribes/warehouse.cc 2018-03-04 15:27:08 +0000 |
983 | @@ -78,19 +78,19 @@ |
984 | if (!warehouse_->descr().get_conquers()) |
985 | return; |
986 | |
987 | - Player& owner = warehouse_->owner(); |
988 | - Game& game = dynamic_cast<Game&>(owner.egbase()); |
989 | + Player* owner = warehouse_->get_owner(); |
990 | + Game& game = dynamic_cast<Game&>(owner->egbase()); |
991 | const Map& map = game.map(); |
992 | - if (enemy.get_owner() == &owner || enemy.get_battle() || |
993 | + if (enemy.get_owner() == owner || enemy.get_battle() || |
994 | warehouse_->descr().get_conquers() <= |
995 | map.calc_distance(enemy.get_position(), warehouse_->get_position())) |
996 | return; |
997 | |
998 | if (map.find_bobs(Area<FCoords>(map.get_fcoords(warehouse_->base_flag().get_position()), 2), |
999 | - nullptr, FindBobEnemySoldier(&owner))) |
1000 | + nullptr, FindBobEnemySoldier(owner))) |
1001 | return; |
1002 | |
1003 | - DescriptionIndex const soldier_index = owner.tribe().soldier(); |
1004 | + DescriptionIndex const soldier_index = owner->tribe().soldier(); |
1005 | Requirements noreq; |
1006 | |
1007 | if (!warehouse_->count_workers(game, soldier_index, noreq, Match::kCompatible)) |
1008 | @@ -102,9 +102,9 @@ |
1009 | } |
1010 | |
1011 | AttackTarget::AttackResult Warehouse::AttackTarget::attack(Soldier* enemy) const { |
1012 | - Player& owner = warehouse_->owner(); |
1013 | - Game& game = dynamic_cast<Game&>(owner.egbase()); |
1014 | - DescriptionIndex const soldier_index = owner.tribe().soldier(); |
1015 | + Player* owner = warehouse_->get_owner(); |
1016 | + Game& game = dynamic_cast<Game&>(owner->egbase()); |
1017 | + DescriptionIndex const soldier_index = owner->tribe().soldier(); |
1018 | Requirements noreq; |
1019 | |
1020 | if (warehouse_->count_workers(game, soldier_index, noreq, Match::kCompatible)) { |
1021 | @@ -495,24 +495,24 @@ |
1022 | bool Warehouse::init(EditorGameBase& egbase) { |
1023 | Building::init(egbase); |
1024 | |
1025 | - Player& player = owner(); |
1026 | + Player* player = get_owner(); |
1027 | |
1028 | - init_containers(player); |
1029 | + init_containers(*player); |
1030 | |
1031 | // Even though technically, a warehouse might be completely empty, |
1032 | // we let warehouse see always for simplicity's sake (since there's |
1033 | // almost always going to be a carrier inside, that shouldn't hurt). |
1034 | if (upcast(Game, game, &egbase)) { |
1035 | - player.see_area( |
1036 | + player->see_area( |
1037 | Area<FCoords>(egbase.map().get_fcoords(get_position()), descr().vision_range())); |
1038 | |
1039 | { |
1040 | uint32_t const act_time = schedule_act(*game, WORKER_WITHOUT_COST_SPAWN_INTERVAL); |
1041 | const std::vector<DescriptionIndex>& worker_types_without_cost = |
1042 | - owner().tribe().worker_types_without_cost(); |
1043 | + player->tribe().worker_types_without_cost(); |
1044 | |
1045 | for (size_t i = 0; i < worker_types_without_cost.size(); ++i) { |
1046 | - if (owner().is_worker_type_allowed(worker_types_without_cost.at(i))) { |
1047 | + if (player->is_worker_type_allowed(worker_types_without_cost.at(i))) { |
1048 | next_worker_without_cost_spawn_[i] = act_time; |
1049 | } |
1050 | } |
1051 | @@ -525,7 +525,7 @@ |
1052 | next_stock_remove_act_ = schedule_act(*game, 4000); |
1053 | |
1054 | log("Message: adding %s for player %i at (%d, %d)\n", to_string(descr().type()).c_str(), |
1055 | - player.player_number(), position_.x, position_.y); |
1056 | + player->player_number(), position_.x, position_.y); |
1057 | |
1058 | if (descr().get_isport()) { |
1059 | send_message(*game, Message::Type::kSeafaring, descr().descname(), descr().icon_filename(), |
1060 | @@ -542,7 +542,7 @@ |
1061 | if (uint32_t const conquer_radius = descr().get_conquers()) { |
1062 | egbase.conquer_area( |
1063 | PlayerArea<Area<FCoords>>( |
1064 | - player.player_number(), |
1065 | + player->player_number(), |
1066 | Area<FCoords>(egbase.map().get_fcoords(get_position()), conquer_radius)), |
1067 | true); |
1068 | } |
1069 | @@ -560,7 +560,7 @@ |
1070 | return true; |
1071 | } |
1072 | |
1073 | -void Warehouse::init_containers(Player& player) { |
1074 | +void Warehouse::init_containers(const Player& player) { |
1075 | DescriptionIndex const nr_wares = player.egbase().tribes().nrwares(); |
1076 | DescriptionIndex const nr_workers = player.egbase().tribes().nrworkers(); |
1077 | supply_->set_nrwares(nr_wares); |
1078 | @@ -676,8 +676,7 @@ |
1079 | defeating_player_); |
1080 | |
1081 | // Unsee the area that we started seeing in init() |
1082 | - Player& player = owner(); |
1083 | - player.unsee_area(Area<FCoords>(map.get_fcoords(get_position()), descr().vision_range())); |
1084 | + get_owner()->unsee_area(Area<FCoords>(map.get_fcoords(get_position()), descr().vision_range())); |
1085 | |
1086 | Building::cleanup(egbase); |
1087 | } |
1088 | @@ -917,7 +916,7 @@ |
1089 | // NOTE: This code lies about the TrainingAttributes of the new worker |
1090 | supply_->remove_workers(worker_id, 1); |
1091 | const WorkerDescr& workerdescr = *game.tribes().get_worker_descr(worker_id); |
1092 | - return workerdescr.create(game, owner(), this, position_); |
1093 | + return workerdescr.create(game, get_owner(), this, position_); |
1094 | } |
1095 | } |
1096 | |
1097 | @@ -934,7 +933,7 @@ |
1098 | |
1099 | void Warehouse::incorporate_worker(EditorGameBase& egbase, Worker* w) { |
1100 | assert(w != nullptr); |
1101 | - assert(w->get_owner() == &owner()); |
1102 | + assert(w->get_owner() == get_owner()); |
1103 | |
1104 | if (WareInstance* ware = w->fetch_carried_ware(egbase)) |
1105 | incorporate_ware(egbase, ware); |
1106 | @@ -1091,12 +1090,12 @@ |
1107 | if (owner().tribe().has_ware(id_ware)) { |
1108 | remove_wares(id_ware, buildcost.second); |
1109 | // Update statistics accordingly |
1110 | - owner().ware_consumed(id_ware, buildcost.second); |
1111 | + get_owner()->ware_consumed(id_ware, buildcost.second); |
1112 | } else |
1113 | remove_workers(owner().tribe().safe_worker_index(input), buildcost.second); |
1114 | } |
1115 | |
1116 | - incorporate_worker(game, &w_desc.create(game, owner(), this, position_)); |
1117 | + incorporate_worker(game, &w_desc.create(game, get_owner(), this, position_)); |
1118 | |
1119 | // Update PlannedWorkers::amount here if appropriate, because this function |
1120 | // may have been called directly by the Economy. |
1121 | |
1122 | === modified file 'src/logic/map_objects/tribes/warehouse.h' |
1123 | --- src/logic/map_objects/tribes/warehouse.h 2017-11-26 14:44:23 +0000 |
1124 | +++ src/logic/map_objects/tribes/warehouse.h 2018-03-04 15:27:08 +0000 |
1125 | @@ -253,7 +253,7 @@ |
1126 | void init_portdock(EditorGameBase& egbase); |
1127 | |
1128 | /// Initializes the container sizes for the owner's tribe. |
1129 | - void init_containers(Player& owner); |
1130 | + void init_containers(const Player& owner); |
1131 | |
1132 | /** |
1133 | * Plan to produce a certain worker type in this warehouse. This means |
1134 | |
1135 | === modified file 'src/logic/map_objects/tribes/worker.cc' |
1136 | --- src/logic/map_objects/tribes/worker.cc 2018-01-29 18:10:59 +0000 |
1137 | +++ src/logic/map_objects/tribes/worker.cc 2018-03-04 15:27:08 +0000 |
1138 | @@ -994,7 +994,7 @@ |
1139 | |
1140 | // We should add a message to the player's message queue - but only, |
1141 | // if there is not already a similar one in list. |
1142 | - owner().add_message_with_timeout(game, |
1143 | + get_owner()->add_message_with_timeout(game, |
1144 | std::unique_ptr<Message>(new Message( |
1145 | message_type, game.get_gametime(), rdescr->descname(), |
1146 | ri.descr().representative_image_filename(), |
1147 | @@ -1049,7 +1049,7 @@ |
1148 | } |
1149 | |
1150 | // Update consumption statistic |
1151 | - owner().ware_consumed(wareindex, 1); |
1152 | + get_owner()->ware_consumed(wareindex, 1); |
1153 | |
1154 | ware = fetch_carried_ware(game); |
1155 | ware->remove(game); |
1156 | @@ -1143,7 +1143,7 @@ |
1157 | // Interrupt whatever we've been doing. |
1158 | set_economy(nullptr); |
1159 | |
1160 | - EditorGameBase& egbase = owner().egbase(); |
1161 | + EditorGameBase& egbase = get_owner()->egbase(); |
1162 | if (upcast(Game, game, &egbase)) { |
1163 | send_signal(*game, "location"); |
1164 | } |
1165 | @@ -1165,7 +1165,7 @@ |
1166 | |
1167 | economy_ = economy; |
1168 | |
1169 | - if (WareInstance* const ware = get_carried_ware(owner().egbase())) |
1170 | + if (WareInstance* const ware = get_carried_ware(get_owner()->egbase())) |
1171 | ware->set_economy(economy_); |
1172 | if (supply_) |
1173 | supply_->set_economy(economy_); |
1174 | @@ -1868,7 +1868,7 @@ |
1175 | descr().descname().c_str()) |
1176 | .str(); |
1177 | |
1178 | - owner().add_message( |
1179 | + get_owner()->add_message( |
1180 | game, std::unique_ptr<Message>(new Message( |
1181 | Message::Type::kGameLogic, game.get_gametime(), _("Worker"), |
1182 | "images/ui_basic/menu_help.png", _("Worker got lost!"), message, get_position())), |
1183 | @@ -2397,7 +2397,7 @@ |
1184 | } |
1185 | bool accept(const BaseImmovable& imm) const { |
1186 | if (upcast(Flag const, flag, &imm)) |
1187 | - if (&flag->owner() == &owner_) |
1188 | + if (flag->get_owner() == &owner_) |
1189 | if (flag->economy().warehouses().size()) |
1190 | return true; |
1191 | return false; |
1192 | @@ -2416,7 +2416,7 @@ |
1193 | const Map& map = game.map(); |
1194 | PlayerImmovable const* location = get_location(game); |
1195 | |
1196 | - if (location && &location->owner() == &owner()) { |
1197 | + if (location && location->get_owner() == get_owner()) { |
1198 | molog("[fugitive]: we are on location\n"); |
1199 | |
1200 | if (dynamic_cast<Warehouse const*>(location)) |
1201 | @@ -2428,7 +2428,7 @@ |
1202 | |
1203 | // check whether we're on a flag and it's time to return home |
1204 | if (upcast(Flag, flag, map[get_position()].get_immovable())) { |
1205 | - if (&flag->owner() == &owner() && flag->economy().warehouses().size()) { |
1206 | + if (flag->get_owner() == get_owner() && flag->economy().warehouses().size()) { |
1207 | set_location(flag); |
1208 | return pop_task(game); |
1209 | } |
1210 | @@ -2703,11 +2703,11 @@ |
1211 | upcast(Flag, aflag, vu.object); |
1212 | Building* a_building = aflag->get_building(); |
1213 | // Assuming that this always succeeds. |
1214 | - if (upcast(MilitarySite const, ms, a_building)) { |
1215 | + if (a_building->descr().type() == MapObjectType::MILITARYSITE) { |
1216 | // This would be safe even if this assert failed: Own militarysites are always visible. |
1217 | // However: There would be something wrong with FindForeignMilitarySite or associated |
1218 | // code. Hence, let's keep the assert. |
1219 | - assert(&ms->owner() != &player); |
1220 | + assert(a_building->get_owner() != &player); |
1221 | const Coords buildingpos = a_building->get_positions(game)[0]; |
1222 | // Check the visibility: only invisible ones interest the scout. |
1223 | MapIndex mx = map.get_index(buildingpos, map.get_width()); |
1224 | |
1225 | === modified file 'src/logic/map_objects/tribes/worker.h' |
1226 | --- src/logic/map_objects/tribes/worker.h 2018-01-27 14:18:07 +0000 |
1227 | +++ src/logic/map_objects/tribes/worker.h 2018-03-04 15:27:08 +0000 |
1228 | @@ -76,11 +76,7 @@ |
1229 | explicit Worker(const WorkerDescr&); |
1230 | ~Worker() override; |
1231 | |
1232 | - Player& owner() const { |
1233 | - assert(get_owner()); |
1234 | - return *get_owner(); |
1235 | - } |
1236 | - PlayerImmovable* get_location(EditorGameBase& egbase) { |
1237 | + PlayerImmovable* get_location(const EditorGameBase& egbase) const { |
1238 | return location_.get(egbase); |
1239 | } |
1240 | OPtr<PlayerImmovable> get_location() const { |
1241 | |
1242 | === modified file 'src/logic/map_objects/tribes/worker_descr.cc' |
1243 | --- src/logic/map_objects/tribes/worker_descr.cc 2017-11-12 16:30:35 +0000 |
1244 | +++ src/logic/map_objects/tribes/worker_descr.cc 2018-03-04 15:27:08 +0000 |
1245 | @@ -146,11 +146,11 @@ |
1246 | * Custom creation routing that accounts for the location. |
1247 | */ |
1248 | Worker& WorkerDescr::create(EditorGameBase& egbase, |
1249 | - Player& owner, |
1250 | + Player* owner, |
1251 | PlayerImmovable* const location, |
1252 | Coords const coords) const { |
1253 | Worker& worker = dynamic_cast<Worker&>(create_object()); |
1254 | - worker.set_owner(&owner); |
1255 | + worker.set_owner(owner); |
1256 | worker.set_location(location); |
1257 | worker.set_position(egbase, coords); |
1258 | worker.init(egbase); |
1259 | |
1260 | === modified file 'src/logic/map_objects/tribes/worker_descr.h' |
1261 | --- src/logic/map_objects/tribes/worker_descr.h 2017-11-12 14:54:46 +0000 |
1262 | +++ src/logic/map_objects/tribes/worker_descr.h 2018-03-04 15:27:08 +0000 |
1263 | @@ -106,7 +106,7 @@ |
1264 | // The buildings where this worker can work |
1265 | const std::set<DescriptionIndex>& employers() const; |
1266 | |
1267 | - Worker& create(EditorGameBase&, Player&, PlayerImmovable*, Coords) const; |
1268 | + Worker& create(EditorGameBase&, Player*, PlayerImmovable*, Coords) const; |
1269 | |
1270 | uint32_t movecaps() const override; |
1271 | |
1272 | |
1273 | === modified file 'src/logic/map_objects/world/critter.cc' |
1274 | --- src/logic/map_objects/world/critter.cc 2017-01-25 18:55:59 +0000 |
1275 | +++ src/logic/map_objects/world/critter.cc 2018-03-04 15:27:08 +0000 |
1276 | @@ -299,20 +299,20 @@ |
1277 | uint8_t const packet_version = fr.unsigned_8(); |
1278 | // Supporting older versions for map loading |
1279 | if (1 <= packet_version && packet_version <= kCurrentPacketVersion) { |
1280 | - const std::string owner = fr.c_string(); |
1281 | + const std::string critter_owner = fr.c_string(); |
1282 | std::string critter_name = fr.c_string(); |
1283 | const CritterDescr* descr = nullptr; |
1284 | |
1285 | - if (owner == "world") { |
1286 | + if (critter_owner == "world") { |
1287 | critter_name = lookup_table.lookup_critter(critter_name); |
1288 | descr = egbase.world().get_critter_descr(critter_name); |
1289 | } else { |
1290 | throw GameDataError( |
1291 | - "Tribes don't have critters %s/%s", owner.c_str(), critter_name.c_str()); |
1292 | + "Tribes don't have critters %s/%s", critter_owner.c_str(), critter_name.c_str()); |
1293 | } |
1294 | |
1295 | if (!descr) |
1296 | - throw GameDataError("undefined critter %s/%s", owner.c_str(), critter_name.c_str()); |
1297 | + throw GameDataError("undefined critter %s/%s", critter_owner.c_str(), critter_name.c_str()); |
1298 | |
1299 | loader->init(egbase, mol, descr->create_object()); |
1300 | loader->load(fr); |
1301 | @@ -330,10 +330,10 @@ |
1302 | fw.unsigned_8(HeaderCritter); |
1303 | fw.unsigned_8(kCurrentPacketVersion); |
1304 | |
1305 | - const std::string owner = descr().get_owner_type() == MapObjectDescr::OwnerType::kTribe ? |
1306 | + const std::string save_owner = descr().get_owner_type() == MapObjectDescr::OwnerType::kTribe ? |
1307 | "" : // Tribes don't have critters |
1308 | "world"; |
1309 | - fw.c_string(owner); |
1310 | + fw.c_string(save_owner); |
1311 | fw.c_string(descr().name()); |
1312 | |
1313 | Bob::save(egbase, mos, fw); |
1314 | |
1315 | === modified file 'src/logic/player.cc' |
1316 | --- src/logic/player.cc 2017-12-19 14:35:00 +0000 |
1317 | +++ src/logic/player.cc 2018-03-04 15:27:08 +0000 |
1318 | @@ -324,7 +324,7 @@ |
1319 | } |
1320 | |
1321 | MessageId Player::add_message(Game& game, std::unique_ptr<Message> new_message, bool const popup) { |
1322 | - MessageId id = messages().add_message(std::move(new_message)); |
1323 | + MessageId id = get_messages()->add_message(std::move(new_message)); |
1324 | const Message* message = messages()[id]; |
1325 | |
1326 | // MapObject connection |
1327 | @@ -410,7 +410,7 @@ |
1328 | int32_t buildcaps = get_buildcaps(egbase().map().get_fcoords(c)); |
1329 | |
1330 | if (buildcaps & BUILDCAPS_FLAG) |
1331 | - return new Flag(egbase(), *this, c); |
1332 | + return new Flag(egbase(), this, c); |
1333 | return nullptr; |
1334 | } |
1335 | |
1336 | @@ -419,7 +419,7 @@ |
1337 | const Map& map = egbase().map(); |
1338 | if (BaseImmovable* const immovable = c.field->get_immovable()) { |
1339 | if (upcast(Flag, existing_flag, immovable)) { |
1340 | - if (&existing_flag->owner() == this) |
1341 | + if (existing_flag->get_owner() == this) |
1342 | return *existing_flag; |
1343 | } else if (!dynamic_cast<Road const*>(immovable)) // A road is OK. |
1344 | immovable->remove(egbase()); // Make room for the flag. |
1345 | @@ -433,7 +433,7 @@ |
1346 | // Make sure that the player owns the area around. |
1347 | egbase().conquer_area_no_building( |
1348 | PlayerArea<Area<FCoords>>(player_number(), Area<FCoords>(c, 1))); |
1349 | - return *new Flag(egbase(), *this, c); |
1350 | + return *new Flag(egbase(), this, c); |
1351 | } |
1352 | |
1353 | /* |
1354 | @@ -508,7 +508,7 @@ |
1355 | map.get_brn(map.get_fcoords(location), &flag_loc); |
1356 | force_flag(flag_loc); |
1357 | |
1358 | - return descr->create(egbase(), *this, map.get_fcoords(location), false, false, former_buildings); |
1359 | + return descr->create(egbase(), this, map.get_fcoords(location), false, false, former_buildings); |
1360 | } |
1361 | |
1362 | Building& Player::force_csite(Coords const location, |
1363 | @@ -574,7 +574,7 @@ |
1364 | if (constructionsite) |
1365 | return &egbase().warp_constructionsite(c, player_number_, idx, false, former_buildings); |
1366 | else { |
1367 | - return &descr->create(egbase(), *this, c, false, false, former_buildings); |
1368 | + return &descr->create(egbase(), this, c, false, false, former_buildings); |
1369 | } |
1370 | } |
1371 | |
1372 | @@ -669,13 +669,13 @@ |
1373 | } |
1374 | |
1375 | void Player::start_stop_building(PlayerImmovable& imm) { |
1376 | - if (&imm.owner() == this) |
1377 | + if (imm.get_owner() == this) |
1378 | if (upcast(ProductionSite, productionsite, &imm)) |
1379 | productionsite->set_stopped(!productionsite->is_stopped()); |
1380 | } |
1381 | |
1382 | void Player::start_or_cancel_expedition(Warehouse& wh) { |
1383 | - if (&wh.owner() == this) |
1384 | + if (wh.get_owner() == this) |
1385 | if (PortDock* pd = wh.get_portdock()) { |
1386 | if (pd->expedition_started()) { |
1387 | upcast(Game, game, &egbase()); |
1388 | @@ -687,7 +687,7 @@ |
1389 | |
1390 | void Player::military_site_set_soldier_preference(PlayerImmovable& imm, |
1391 | SoldierPreference soldier_preference) { |
1392 | - if (&imm.owner() == this) |
1393 | + if (imm.get_owner() == this) |
1394 | if (upcast(MilitarySite, milsite, &imm)) |
1395 | milsite->set_soldier_preference(soldier_preference); |
1396 | } |
1397 | @@ -709,7 +709,7 @@ |
1398 | } |
1399 | void Player::enhance_or_dismantle(Building* building, |
1400 | DescriptionIndex const index_of_new_building) { |
1401 | - if (&building->owner() == this && (index_of_new_building == INVALID_INDEX || |
1402 | + if (building->get_owner() == this && (index_of_new_building == INVALID_INDEX || |
1403 | building->descr().enhancement() == index_of_new_building)) { |
1404 | Building::FormerBuildings former_buildings = building->get_former_buildings(); |
1405 | const Coords position = building->get_position(); |
1406 | @@ -758,7 +758,7 @@ |
1407 | =============== |
1408 | */ |
1409 | void Player::flagaction(Flag& flag) { |
1410 | - if (&flag.owner() == this) { // Additional security check. |
1411 | + if (flag.get_owner() == this) { // Additional security check. |
1412 | flag.add_flag_job(dynamic_cast<Game&>(egbase()), tribe().geologist(), "expedition"); |
1413 | } |
1414 | } |
1415 | @@ -835,7 +835,7 @@ |
1416 | =========== |
1417 | */ |
1418 | void Player::drop_soldier(PlayerImmovable& imm, Soldier& soldier) { |
1419 | - if (&imm.owner() != this) |
1420 | + if (imm.get_owner() != this) |
1421 | return; |
1422 | if (soldier.descr().type() != MapObjectType::SOLDIER) |
1423 | return; |
1424 | |
1425 | === modified file 'src/logic/player.h' |
1426 | --- src/logic/player.h 2018-02-03 21:18:36 +0000 |
1427 | +++ src/logic/player.h 2018-03-04 15:27:08 +0000 |
1428 | @@ -88,8 +88,8 @@ |
1429 | const MessageQueue& messages() const { |
1430 | return messages_; |
1431 | } |
1432 | - MessageQueue& messages() { |
1433 | - return messages_; |
1434 | + MessageQueue* get_messages() { |
1435 | + return &messages_; |
1436 | } |
1437 | |
1438 | /// Adds the message to the queue. |
1439 | @@ -108,7 +108,7 @@ |
1440 | void message_object_removed(MessageId mid) const; |
1441 | |
1442 | void set_message_status(const MessageId& id, Message::Status const status) { |
1443 | - messages().set_message_status(id, status); |
1444 | + get_messages()->set_message_status(id, status); |
1445 | } |
1446 | |
1447 | const EditorGameBase& egbase() const { |
1448 | |
1449 | === modified file 'src/logic/playercommand.cc' |
1450 | --- src/logic/playercommand.cc 2017-11-01 18:44:34 +0000 |
1451 | +++ src/logic/playercommand.cc 2018-03-04 15:27:08 +0000 |
1452 | @@ -222,7 +222,7 @@ |
1453 | |
1454 | void CmdBulldoze::execute(Game& game) { |
1455 | if (upcast(PlayerImmovable, pimm, game.objects().get_object(serial))) |
1456 | - game.player(sender()).bulldoze(*pimm, recurse); |
1457 | + game.get_player(sender())->bulldoze(*pimm, recurse); |
1458 | } |
1459 | |
1460 | void CmdBulldoze::serialize(StreamWrite& ser) { |
1461 | @@ -269,7 +269,7 @@ |
1462 | void CmdBuild::execute(Game& game) { |
1463 | // Empty former vector since its a new csite. |
1464 | Building::FormerBuildings former_buildings; |
1465 | - game.player(sender()).build(coords, bi, true, former_buildings); |
1466 | + game.get_player(sender())->build(coords, bi, true, former_buildings); |
1467 | } |
1468 | |
1469 | void CmdBuild::serialize(StreamWrite& ser) { |
1470 | @@ -313,7 +313,7 @@ |
1471 | } |
1472 | |
1473 | void CmdBuildFlag::execute(Game& game) { |
1474 | - game.player(sender()).build_flag(coords); |
1475 | + game.get_player(sender())->build_flag(coords); |
1476 | } |
1477 | |
1478 | void CmdBuildFlag::serialize(StreamWrite& ser) { |
1479 | @@ -383,7 +383,7 @@ |
1480 | path->append(game.map(), steps[i]); |
1481 | } |
1482 | |
1483 | - game.player(sender()).build_road(*path); |
1484 | + game.get_player(sender())->build_road(*path); |
1485 | } |
1486 | |
1487 | void CmdBuildRoad::serialize(StreamWrite& ser) { |
1488 | @@ -437,10 +437,10 @@ |
1489 | } |
1490 | |
1491 | void CmdFlagAction::execute(Game& game) { |
1492 | - Player& player = game.player(sender()); |
1493 | + Player* player = game.get_player(sender()); |
1494 | if (upcast(Flag, flag, game.objects().get_object(serial))) |
1495 | - if (&flag->owner() == &player) |
1496 | - player.flagaction(*flag); |
1497 | + if (flag->get_owner() == player) |
1498 | + player->flagaction(*flag); |
1499 | } |
1500 | |
1501 | void CmdFlagAction::serialize(StreamWrite& ser) { |
1502 | @@ -487,7 +487,7 @@ |
1503 | |
1504 | void CmdStartStopBuilding::execute(Game& game) { |
1505 | if (upcast(Building, building, game.objects().get_object(serial))) |
1506 | - game.player(sender()).start_stop_building(*building); |
1507 | + game.get_player(sender())->start_stop_building(*building); |
1508 | } |
1509 | |
1510 | void CmdStartStopBuilding::serialize(StreamWrite& ser) { |
1511 | @@ -537,7 +537,7 @@ |
1512 | |
1513 | void CmdMilitarySiteSetSoldierPreference::execute(Game& game) { |
1514 | if (upcast(MilitarySite, building, game.objects().get_object(serial))) |
1515 | - game.player(sender()).military_site_set_soldier_preference(*building, preference); |
1516 | + game.get_player(sender())->military_site_set_soldier_preference(*building, preference); |
1517 | } |
1518 | |
1519 | constexpr uint16_t kCurrentPacketVersionSoldierPreference = 1; |
1520 | @@ -583,7 +583,7 @@ |
1521 | |
1522 | void CmdStartOrCancelExpedition::execute(Game& game) { |
1523 | if (upcast(Warehouse, warehouse, game.objects().get_object(serial))) |
1524 | - game.player(sender()).start_or_cancel_expedition(*warehouse); |
1525 | + game.get_player(sender())->start_or_cancel_expedition(*warehouse); |
1526 | } |
1527 | |
1528 | void CmdStartOrCancelExpedition::serialize(StreamWrite& ser) { |
1529 | @@ -627,7 +627,7 @@ |
1530 | |
1531 | void CmdEnhanceBuilding::execute(Game& game) { |
1532 | if (upcast(Building, building, game.objects().get_object(serial))) |
1533 | - game.player(sender()).enhance_building(building, bi); |
1534 | + game.get_player(sender())->enhance_building(building, bi); |
1535 | } |
1536 | |
1537 | void CmdEnhanceBuilding::serialize(StreamWrite& ser) { |
1538 | @@ -674,7 +674,7 @@ |
1539 | |
1540 | void CmdDismantleBuilding::execute(Game& game) { |
1541 | if (upcast(Building, building, game.objects().get_object(serial))) |
1542 | - game.player(sender()).dismantle_building(building); |
1543 | + game.get_player(sender())->dismantle_building(building); |
1544 | } |
1545 | |
1546 | void CmdDismantleBuilding::serialize(StreamWrite& ser) { |
1547 | @@ -1228,9 +1228,9 @@ |
1548 | } |
1549 | |
1550 | void CmdSetWareTargetQuantity::execute(Game& game) { |
1551 | - Player& player = game.player(sender()); |
1552 | - if (economy() < player.get_nr_economies() && game.tribes().ware_exists(ware_type())) { |
1553 | - player.get_economy_by_number(economy())->set_ware_target_quantity( |
1554 | + Player* player = game.get_player(sender()); |
1555 | + if (economy() < player->get_nr_economies() && game.tribes().ware_exists(ware_type())) { |
1556 | + player->get_economy_by_number(economy())->set_ware_target_quantity( |
1557 | ware_type(), permanent_, duetime()); |
1558 | } |
1559 | } |
1560 | @@ -1278,11 +1278,11 @@ |
1561 | } |
1562 | |
1563 | void CmdResetWareTargetQuantity::execute(Game& game) { |
1564 | - Player& player = game.player(sender()); |
1565 | - const TribeDescr& tribe = player.tribe(); |
1566 | - if (economy() < player.get_nr_economies() && game.tribes().ware_exists(ware_type())) { |
1567 | + Player* player = game.get_player(sender()); |
1568 | + const TribeDescr& tribe = player->tribe(); |
1569 | + if (economy() < player->get_nr_economies() && game.tribes().ware_exists(ware_type())) { |
1570 | const int count = tribe.get_ware_descr(ware_type())->default_target_quantity(tribe.name()); |
1571 | - player.get_economy_by_number(economy())->set_ware_target_quantity( |
1572 | + player->get_economy_by_number(economy())->set_ware_target_quantity( |
1573 | ware_type(), count, duetime()); |
1574 | } |
1575 | } |
1576 | @@ -1327,9 +1327,9 @@ |
1577 | } |
1578 | |
1579 | void CmdSetWorkerTargetQuantity::execute(Game& game) { |
1580 | - Player& player = game.player(sender()); |
1581 | - if (economy() < player.get_nr_economies() && game.tribes().worker_exists(ware_type())) { |
1582 | - player.get_economy_by_number(economy())->set_worker_target_quantity( |
1583 | + Player* player = game.get_player(sender()); |
1584 | + if (economy() < player->get_nr_economies() && game.tribes().worker_exists(ware_type())) { |
1585 | + player->get_economy_by_number(economy())->set_worker_target_quantity( |
1586 | ware_type(), permanent_, duetime()); |
1587 | } |
1588 | } |
1589 | @@ -1377,11 +1377,11 @@ |
1590 | } |
1591 | |
1592 | void CmdResetWorkerTargetQuantity::execute(Game& game) { |
1593 | - Player& player = game.player(sender()); |
1594 | - const TribeDescr& tribe = player.tribe(); |
1595 | - if (economy() < player.get_nr_economies() && game.tribes().ware_exists(ware_type())) { |
1596 | + Player* player = game.get_player(sender()); |
1597 | + const TribeDescr& tribe = player->tribe(); |
1598 | + if (economy() < player->get_nr_economies() && game.tribes().ware_exists(ware_type())) { |
1599 | const int count = tribe.get_ware_descr(ware_type())->default_target_quantity(tribe.name()); |
1600 | - player.get_economy_by_number(economy())->set_worker_target_quantity( |
1601 | + player->get_economy_by_number(economy())->set_worker_target_quantity( |
1602 | ware_type(), count, duetime()); |
1603 | } |
1604 | } |
1605 | @@ -1430,7 +1430,7 @@ |
1606 | |
1607 | void CmdChangeTrainingOptions::execute(Game& game) { |
1608 | if (upcast(TrainingSite, trainingsite, game.objects().get_object(serial))) |
1609 | - game.player(sender()).change_training_options(*trainingsite, attribute, value); |
1610 | + game.get_player(sender())->change_training_options(*trainingsite, attribute, value); |
1611 | } |
1612 | |
1613 | void CmdChangeTrainingOptions::serialize(StreamWrite& ser) { |
1614 | @@ -1483,7 +1483,7 @@ |
1615 | void CmdDropSoldier::execute(Game& game) { |
1616 | if (upcast(PlayerImmovable, player_imm, game.objects().get_object(serial))) |
1617 | if (upcast(Soldier, s, game.objects().get_object(soldier))) |
1618 | - game.player(sender()).drop_soldier(*player_imm, *s); |
1619 | + game.get_player(sender())->drop_soldier(*player_imm, *s); |
1620 | } |
1621 | |
1622 | void CmdDropSoldier::serialize(StreamWrite& ser) { |
1623 | @@ -1534,7 +1534,7 @@ |
1624 | |
1625 | void CmdChangeSoldierCapacity::execute(Game& game) { |
1626 | if (upcast(Building, building, game.objects().get_object(serial))) { |
1627 | - if (&building->owner() == game.get_player(sender()) && |
1628 | + if (building->get_owner() == game.get_player(sender()) && |
1629 | building->soldier_control() != nullptr) { |
1630 | SoldierControl* soldier_control = building->mutable_soldier_control(); |
1631 | Widelands::Quantity const old_capacity = soldier_control->soldier_capacity(); |
1632 | @@ -1598,17 +1598,17 @@ |
1633 | } |
1634 | |
1635 | void CmdEnemyFlagAction::execute(Game& game) { |
1636 | - Player& player = game.player(sender()); |
1637 | + Player* player = game.get_player(sender()); |
1638 | |
1639 | if (upcast(Flag, flag, game.objects().get_object(serial))) { |
1640 | log("Cmd_EnemyFlagAction::execute player(%u): flag->owner(%d) " |
1641 | "number=%u\n", |
1642 | - player.player_number(), flag->owner().player_number(), number); |
1643 | + player->player_number(), flag->owner().player_number(), number); |
1644 | |
1645 | if (const Building* const building = flag->get_building()) { |
1646 | - if (player.is_hostile(flag->owner()) && |
1647 | - 1 < player.vision(Map::get_index(building->get_position(), game.map().get_width()))) |
1648 | - player.enemyflagaction(*flag, sender(), number); |
1649 | + if (player->is_hostile(flag->owner()) && |
1650 | + 1 < player->vision(Map::get_index(building->get_position(), game.map().get_width()))) |
1651 | + player->enemyflagaction(*flag, sender(), number); |
1652 | else |
1653 | log("Cmd_EnemyFlagAction::execute: ERROR: wrong player target not " |
1654 | "seen or not hostile.\n"); |
1655 | @@ -1695,7 +1695,7 @@ |
1656 | /*** struct Cmd_MessageSetStatusRead ***/ |
1657 | |
1658 | void CmdMessageSetStatusRead::execute(Game& game) { |
1659 | - game.player(sender()).messages().set_message_status(message_id(), Message::Status::kRead); |
1660 | + game.get_player(sender())->get_messages()->set_message_status(message_id(), Message::Status::kRead); |
1661 | } |
1662 | |
1663 | void CmdMessageSetStatusRead::serialize(StreamWrite& ser) { |
1664 | @@ -1707,7 +1707,7 @@ |
1665 | /*** struct Cmd_MessageSetStatusArchived ***/ |
1666 | |
1667 | void CmdMessageSetStatusArchived::execute(Game& game) { |
1668 | - game.player(sender()).messages().set_message_status(message_id(), Message::Status::kArchived); |
1669 | + game.get_player(sender())->get_messages()->set_message_status(message_id(), Message::Status::kArchived); |
1670 | } |
1671 | |
1672 | void CmdMessageSetStatusArchived::serialize(StreamWrite& ser) { |
1673 | @@ -1738,7 +1738,7 @@ |
1674 | // Sanitize data that could have come from the network |
1675 | if (Player* plr = game.get_player(sender())) { |
1676 | if (upcast(Warehouse, warehouse, game.objects().get_object(warehouse_))) { |
1677 | - if (&warehouse->owner() != plr) { |
1678 | + if (warehouse->get_owner() != plr) { |
1679 | log("Cmd_SetStockPolicy: sender %u, but warehouse owner %u\n", sender(), |
1680 | warehouse->owner().player_number()); |
1681 | return; |
1682 | @@ -1834,7 +1834,7 @@ |
1683 | log("CmdProposeTrade: receiver vanished or is not a market.\n"); |
1684 | return; |
1685 | } |
1686 | - if (&initiator->owner() == &receiver->owner()) { |
1687 | + if (initiator->get_owner() == receiver->get_owner()) { |
1688 | log("CmdProposeTrade: Sending and receiving player are the same.\n"); |
1689 | return; |
1690 | } |
1691 | |
1692 | === modified file 'src/logic/playersmanager.h' |
1693 | --- src/logic/playersmanager.h 2017-06-24 08:47:46 +0000 |
1694 | +++ src/logic/playersmanager.h 2018-03-04 15:27:08 +0000 |
1695 | @@ -73,7 +73,7 @@ |
1696 | assert(n <= kMaxPlayers); |
1697 | return players_[n - 1]; |
1698 | } |
1699 | - Player& player(int32_t n) const { |
1700 | + const Player& player(int32_t n) const { |
1701 | assert(1 <= n); |
1702 | assert(n <= kMaxPlayers); |
1703 | return *players_[n - 1]; |
1704 | |
1705 | === modified file 'src/map_io/map_buildingdata_packet.cc' |
1706 | --- src/map_io/map_buildingdata_packet.cc 2017-12-17 17:47:34 +0000 |
1707 | +++ src/map_io/map_buildingdata_packet.cc 2018-03-04 15:27:08 +0000 |
1708 | @@ -314,9 +314,9 @@ |
1709 | try { |
1710 | uint16_t const packet_version = fr.unsigned_16(); |
1711 | if (packet_version >= 6) { |
1712 | - Player& player = warehouse.owner(); |
1713 | - warehouse.init_containers(player); |
1714 | - const TribeDescr& tribe = player.tribe(); |
1715 | + Player* player = warehouse.get_owner(); |
1716 | + warehouse.init_containers(*player); |
1717 | + const TribeDescr& tribe = player->tribe(); |
1718 | |
1719 | while (fr.unsigned_8()) { |
1720 | const DescriptionIndex& id = tribe.ware_index(fr.c_string()); |
1721 | @@ -441,14 +441,14 @@ |
1722 | // Add to map of military influence. |
1723 | Area<FCoords> a(map.get_fcoords(warehouse.get_position()), conquer_radius); |
1724 | const Field& first_map_field = map[0]; |
1725 | - Player::Field* const player_fields = player.fields_; |
1726 | + Player::Field* const player_fields = player->fields_; |
1727 | MapRegion<Area<FCoords>> mr(map, a); |
1728 | do |
1729 | player_fields[mr.location().field - &first_map_field].military_influence += |
1730 | map.calc_influence(mr.location(), Area<>(a, a.radius)); |
1731 | while (mr.advance(map)); |
1732 | } |
1733 | - player.see_area(Area<FCoords>( |
1734 | + player->see_area(Area<FCoords>( |
1735 | map.get_fcoords(warehouse.get_position()), warehouse.descr().vision_range())); |
1736 | warehouse.next_military_act_ = game.get_gametime(); |
1737 | } else { |
1738 | |
1739 | === modified file 'src/map_io/map_flag_packet.cc' |
1740 | --- src/map_io/map_flag_packet.cc 2017-01-25 18:55:59 +0000 |
1741 | +++ src/map_io/map_flag_packet.cc 2018-03-04 15:27:08 +0000 |
1742 | @@ -100,7 +100,7 @@ |
1743 | // since we have to read the data packets. We delete this |
1744 | // object later again, if it is not wanted. |
1745 | mol.register_object<Flag>( |
1746 | - serial, *new Flag(dynamic_cast<Game&>(egbase), egbase.player(owner), fc)); |
1747 | + serial, *new Flag(dynamic_cast<Game&>(egbase), egbase.get_player(owner), fc)); |
1748 | } catch (const WException& e) { |
1749 | throw GameDataError( |
1750 | "%u (at (%i, %i), owned by player %u): %s", serial, fc.x, fc.y, owner, e.what()); |
1751 | |
1752 | === modified file 'src/map_io/map_players_messages_packet.cc' |
1753 | --- src/map_io/map_players_messages_packet.cc 2017-07-05 19:30:41 +0000 |
1754 | +++ src/map_io/map_players_messages_packet.cc 2018-03-04 15:27:08 +0000 |
1755 | @@ -59,11 +59,11 @@ |
1756 | } |
1757 | uint32_t packet_version = prof.get_safe_section("global").get_positive("packet_version"); |
1758 | if (1 <= packet_version && packet_version <= kCurrentPacketVersion) { |
1759 | - MessageQueue& messages = player->messages(); |
1760 | + MessageQueue* messages = player->get_messages(); |
1761 | |
1762 | { |
1763 | - const auto begin = messages.begin(); |
1764 | - if (begin != messages.end()) { |
1765 | + const auto begin = messages->begin(); |
1766 | + if (begin != messages->end()) { |
1767 | log("ERROR: The message queue for player %u contains a message " |
1768 | "before any messages have been loaded into it. This is a bug " |
1769 | "in the savegame loading code. It created a new message and " |
1770 | @@ -79,7 +79,7 @@ |
1771 | p, static_cast<int>(begin->second->type()), begin->second->title().c_str(), |
1772 | begin->second->sent(), begin->second->position().x, begin->second->position().y, |
1773 | static_cast<int>(begin->second->status()), begin->second->body().c_str()); |
1774 | - messages.clear(); |
1775 | + messages->clear(); |
1776 | } |
1777 | } |
1778 | |
1779 | @@ -120,13 +120,13 @@ |
1780 | // Compatibility code needed for map loading. |
1781 | if (packet_version == 1) { |
1782 | const std::string name = s->get_name(); |
1783 | - messages.add_message(std::unique_ptr<Message>(new Message( |
1784 | + messages->add_message(std::unique_ptr<Message>(new Message( |
1785 | static_cast<Message::Type>(s->get_natural("type")), sent, name, |
1786 | "images/wui/fieldaction/menu_build_flag.png", name, s->get_safe_string("body"), |
1787 | get_coords("position", extent, Coords::null(), s), serial, status))); |
1788 | } else { |
1789 | |
1790 | - messages.add_message(std::unique_ptr<Message>(new Message( |
1791 | + messages->add_message(std::unique_ptr<Message>(new Message( |
1792 | static_cast<Message::Type>(s->get_natural("type")), sent, s->get_name(), |
1793 | s->get_safe_string("icon"), s->get_safe_string("heading"), |
1794 | s->get_safe_string("body"), get_coords("position", extent, Coords::null(), s), |
1795 | |
1796 | === modified file 'src/map_io/map_roaddata_packet.cc' |
1797 | --- src/map_io/map_roaddata_packet.cc 2017-08-20 08:34:02 +0000 |
1798 | +++ src/map_io/map_roaddata_packet.cc 2018-03-04 15:27:08 +0000 |
1799 | @@ -71,9 +71,8 @@ |
1800 | if (!(0 < player_index && player_index <= nr_players)) { |
1801 | throw GameDataError("Invalid player number: %i.", player_index); |
1802 | } |
1803 | - Player& plr = egbase.player(player_index); |
1804 | |
1805 | - road.set_owner(&plr); |
1806 | + road.set_owner(egbase.get_player(player_index)); |
1807 | road.busyness_ = fr.unsigned_32(); |
1808 | road.busyness_last_update_ = fr.unsigned_32(); |
1809 | road.type_ = fr.unsigned_32(); |
1810 | @@ -107,7 +106,7 @@ |
1811 | p.append(map, read_direction_8(&fr)); |
1812 | } catch (const WException& e) { |
1813 | throw GameDataError( |
1814 | - "step #%lu: %s", static_cast<long unsigned int>(nr_steps - i), e.what()); |
1815 | + "step #%" PRIuS ": %s", nr_steps - i, e.what()); |
1816 | } |
1817 | road.set_path(egbase, p); |
1818 | |
1819 | |
1820 | === modified file 'src/network/netclient.cc' |
1821 | --- src/network/netclient.cc 2017-12-17 14:45:23 +0000 |
1822 | +++ src/network/netclient.cc 2018-03-04 15:27:08 +0000 |
1823 | @@ -99,7 +99,7 @@ |
1824 | } |
1825 | if (written < packet.get_size()) { |
1826 | throw wexception( |
1827 | - "[NetClient] Unable to send complete packet to relay (only %lu bytes of %lu)", written, |
1828 | + "[NetClient] Unable to send complete packet to relay (only %" PRIuS " bytes of %" PRIuS ")", written, |
1829 | packet.get_size()); |
1830 | } |
1831 | } |
1832 | |
1833 | === modified file 'src/network/netclientproxy.cc' |
1834 | --- src/network/netclientproxy.cc 2017-12-17 14:45:23 +0000 |
1835 | +++ src/network/netclientproxy.cc 2018-03-04 15:27:08 +0000 |
1836 | @@ -58,7 +58,7 @@ |
1837 | conn_->send("client"); |
1838 | |
1839 | // Wait 10 seconds for an answer |
1840 | - uint32_t endtime = time(nullptr) + 10; |
1841 | + time_t endtime = time(nullptr) + 10; |
1842 | while (!NetRelayConnection::Peeker(conn_.get()).cmd()) { |
1843 | if (time(nullptr) > endtime) { |
1844 | // No message received in time |
1845 | |
1846 | === modified file 'src/network/nethost.cc' |
1847 | --- src/network/nethost.cc 2017-12-17 14:45:23 +0000 |
1848 | +++ src/network/nethost.cc 2018-03-04 15:27:08 +0000 |
1849 | @@ -189,7 +189,7 @@ |
1850 | } |
1851 | if (written < packet.get_size()) { |
1852 | throw wexception( |
1853 | - "[NetHost] Unable to send complete packet to relay (only %lu bytes of %lu)", written, |
1854 | + "[NetHost] Unable to send complete packet to relay (only %" PRIuS " bytes of %" PRIuS ")", written, |
1855 | packet.get_size()); |
1856 | } |
1857 | } |
1858 | |
1859 | === modified file 'src/network/nethostproxy.cc' |
1860 | --- src/network/nethostproxy.cc 2017-12-17 14:45:23 +0000 |
1861 | +++ src/network/nethostproxy.cc 2018-03-04 15:27:08 +0000 |
1862 | @@ -143,7 +143,7 @@ |
1863 | conn_->send(password); |
1864 | |
1865 | // Wait 10 seconds for an answer |
1866 | - uint32_t endtime = time(nullptr) + 10; |
1867 | + time_t endtime = time(nullptr) + 10; |
1868 | while (!NetRelayConnection::Peeker(conn_.get()).cmd()) { |
1869 | if (time(nullptr) > endtime) { |
1870 | // No message received in time |
1871 | |
1872 | === modified file 'src/network/netrelayconnection.cc' |
1873 | --- src/network/netrelayconnection.cc 2018-02-04 11:41:45 +0000 |
1874 | +++ src/network/netrelayconnection.cc 2018-03-04 15:27:08 +0000 |
1875 | @@ -252,7 +252,7 @@ |
1876 | } |
1877 | if (written < str.length() + 1) { |
1878 | throw wexception( |
1879 | - "[NetRelayConnection] Unable to send complete string to relay (only %lu bytes of %lu)", |
1880 | + "[NetRelayConnection] Unable to send complete string to relay (only %" PRIuS " bytes of %" PRIuS ")", |
1881 | written, str.length() + 1); |
1882 | } |
1883 | if (ec) { |
1884 | @@ -280,7 +280,7 @@ |
1885 | } |
1886 | if (written < packet.get_size()) { |
1887 | throw wexception( |
1888 | - "[NetRelayConnection] Unable to send complete packet to relay (only %lu bytes of %lu)", |
1889 | + "[NetRelayConnection] Unable to send complete packet to relay (only %" PRIuS " bytes of %" PRIuS ")", |
1890 | written, packet.get_size()); |
1891 | } |
1892 | } |
1893 | |
1894 | === modified file 'src/scripting/lua_game.cc' |
1895 | --- src/scripting/lua_game.cc 2017-12-19 17:04:30 +0000 |
1896 | +++ src/scripting/lua_game.cc 2018-03-04 15:27:08 +0000 |
1897 | @@ -1228,7 +1228,7 @@ |
1898 | else |
1899 | report_error(L, "Invalid message status <%s>!", s.c_str()); |
1900 | |
1901 | - get_plr(L, get_game(L)).messages().set_message_status(message_id_, status); |
1902 | + get_plr(L, get_game(L)).get_messages()->set_message_status(message_id_, status); |
1903 | |
1904 | return 0; |
1905 | } |
1906 | |
1907 | === modified file 'src/scripting/lua_map.cc' |
1908 | --- src/scripting/lua_map.cc 2018-01-23 00:23:13 +0000 |
1909 | +++ src/scripting/lua_map.cc 2018-03-04 15:27:08 +0000 |
1910 | @@ -585,7 +585,7 @@ |
1911 | } else if (d > 0) { |
1912 | for (; d; --d) { |
1913 | Soldier& soldier = dynamic_cast<Soldier&>( |
1914 | - soldier_descr.create(egbase, *owner, nullptr, building_position)); |
1915 | + soldier_descr.create(egbase, owner, nullptr, building_position)); |
1916 | soldier.set_level(sp.first.health, sp.first.attack, sp.first.defense, sp.first.evade); |
1917 | if (sc->incorporate_soldier(egbase, soldier)) { |
1918 | soldier.remove(egbase); |
1919 | @@ -4327,7 +4327,7 @@ |
1920 | for (Path::StepVector::size_type i = 0; i < idle_index; ++i) |
1921 | egbase.map().get_neighbour(idle_position, path[i], &idle_position); |
1922 | |
1923 | - Carrier& carrier = dynamic_cast<Carrier&>(wdes->create(egbase, r.owner(), &r, idle_position)); |
1924 | + Carrier& carrier = dynamic_cast<Carrier&>(wdes->create(egbase, r.get_owner(), &r, idle_position)); |
1925 | |
1926 | if (upcast(Game, game, &egbase)) { |
1927 | carrier.start_task_road(*game); |
1928 | |
1929 | === modified file 'src/ui_basic/fileview_panel.cc' |
1930 | --- src/ui_basic/fileview_panel.cc 2017-12-28 14:57:00 +0000 |
1931 | +++ src/ui_basic/fileview_panel.cc 2018-03-04 15:27:08 +0000 |
1932 | @@ -23,6 +23,7 @@ |
1933 | |
1934 | #include <boost/format.hpp> |
1935 | |
1936 | +#include "base/macros.h" |
1937 | #include "scripting/lua_interface.h" |
1938 | #include "scripting/lua_table.h" |
1939 | |
1940 | @@ -63,7 +64,7 @@ |
1941 | } |
1942 | |
1943 | textviews_.push_back(std::unique_ptr<UI::MultilineTextarea>(std::move(textarea))); |
1944 | - add((boost::format("about_%lu") % index).str(), title, boxes_.at(index).get(), ""); |
1945 | + add((boost::format("about_%" PRIuS) % index).str(), title, boxes_.at(index).get(), ""); |
1946 | |
1947 | assert(boxes_.size() == textviews_.size()); |
1948 | assert(tabs().size() == textviews_.size()); |
1949 | |
1950 | === modified file 'src/wui/game_message_menu.cc' |
1951 | --- src/wui/game_message_menu.cc 2018-02-23 13:38:35 +0000 |
1952 | +++ src/wui/game_message_menu.cc 2018-03-04 15:27:08 +0000 |
1953 | @@ -163,7 +163,7 @@ |
1954 | * If both are identical, sort by time sent. |
1955 | */ |
1956 | bool GameMessageMenu::compare_title(uint32_t a, uint32_t b) { |
1957 | - MessageQueue& mq = iplayer().player().messages(); |
1958 | + const MessageQueue& mq = iplayer().player().messages(); |
1959 | const Message* msga = mq[MessageId((*list)[a])]; |
1960 | const Message* msgb = mq[MessageId((*list)[b])]; |
1961 | |
1962 | @@ -181,7 +181,7 @@ |
1963 | * If both are identical, sort by time sent. |
1964 | */ |
1965 | bool GameMessageMenu::compare_status(uint32_t a, uint32_t b) { |
1966 | - MessageQueue& mq = iplayer().player().messages(); |
1967 | + const MessageQueue& mq = iplayer().player().messages(); |
1968 | const Message* msga = mq[MessageId((*list)[a])]; |
1969 | const Message* msgb = mq[MessageId((*list)[b])]; |
1970 | |
1971 | @@ -199,7 +199,7 @@ |
1972 | * If both are identical, sort by time sent. |
1973 | */ |
1974 | bool GameMessageMenu::compare_type(uint32_t a, uint32_t b) { |
1975 | - MessageQueue& mq = iplayer().player().messages(); |
1976 | + const MessageQueue& mq = iplayer().player().messages(); |
1977 | const Message* msga = mq[MessageId((*list)[a])]; |
1978 | const Message* msgb = mq[MessageId((*list)[b])]; |
1979 | |
1980 | @@ -218,7 +218,7 @@ |
1981 | * When comparing messages by time sent, older messages come before others. |
1982 | */ |
1983 | bool GameMessageMenu::compare_time_sent(uint32_t a, uint32_t b) { |
1984 | - MessageQueue& mq = iplayer().player().messages(); |
1985 | + const MessageQueue& mq = iplayer().player().messages(); |
1986 | const Message* msga = mq[MessageId((*list)[a])]; |
1987 | const Message* msgb = mq[MessageId((*list)[b])]; |
1988 | |
1989 | @@ -252,7 +252,7 @@ |
1990 | } |
1991 | |
1992 | void GameMessageMenu::think() { |
1993 | - MessageQueue& mq = iplayer().player().messages(); |
1994 | + const MessageQueue& mq = iplayer().player().messages(); |
1995 | size_t no_selections = list->selections().size(); |
1996 | size_t list_size = list->size(); |
1997 | |
1998 | @@ -310,8 +310,8 @@ |
1999 | * Something has been selected |
2000 | */ |
2001 | void GameMessageMenu::selected(uint32_t const t) { |
2002 | - Widelands::Player& player = iplayer().player(); |
2003 | - MessageQueue& mq = player.messages(); |
2004 | + const Widelands::Player& player = iplayer().player(); |
2005 | + const MessageQueue& mq = player.messages(); |
2006 | if (t != UI::Table<uintptr_t>::no_selection_index()) { |
2007 | MessageId const id = MessageId((*list)[t]); |
2008 | if (Message const* const message = mq[id]) { |
2009 | |
2010 | === modified file 'src/wui/interactive_player.cc' |
2011 | --- src/wui/interactive_player.cc 2018-01-10 16:29:00 +0000 |
2012 | +++ src/wui/interactive_player.cc 2018-03-04 15:27:08 +0000 |
2013 | @@ -302,7 +302,7 @@ |
2014 | f->roads = player_field.roads; |
2015 | f->vision = player_field.vision; |
2016 | if (player_field.vision == 1) { |
2017 | - f->owner = player_field.owner != 0 ? &gbase.player(player_field.owner) : nullptr; |
2018 | + f->owner = player_field.owner != 0 ? gbase.get_player(player_field.owner) : nullptr; |
2019 | f->is_border = player_field.border; |
2020 | } |
2021 | } |
2022 | |
2023 | === modified file 'src/wui/interactive_player.h' |
2024 | --- src/wui/interactive_player.h 2017-09-01 14:12:58 +0000 |
2025 | +++ src/wui/interactive_player.h 2018-03-04 15:27:08 +0000 |
2026 | @@ -57,7 +57,7 @@ |
2027 | |
2028 | bool handle_key(bool down, SDL_Keysym) override; |
2029 | |
2030 | - Widelands::Player& player() const { |
2031 | + const Widelands::Player& player() const { |
2032 | return game().player(player_number_); |
2033 | } |
2034 | Widelands::Player* get_player() const override { |
Continuous integration builds have changed state:
Travis build 3250. State: failed. Details: https:/ /travis- ci.org/ widelands/ widelands/ builds/ 346013750. /ci.appveyor. com/project/ widelands- dev/widelands/ build/_ widelands_ dev_widelands_ compiler_ warnings_ 201802- 3059.
Appveyor build 3059. State: success. Details: https:/