~widelands-dev/widelands/remove-savegame-compatibility-after-economy-change

« back to all changes in this revision

Viewing changes to src/wui/economy_options_window.cc

Merged trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
36
36
                                           Widelands::Economy* economy,
37
37
                                           bool can_act)
38
38
   : UI::Window(parent, "economy_options", 0, 0, 0, 0, _("Economy options")),
39
 
          serial_(economy->serial()),
40
 
          player_(&economy->owner()),
 
39
     serial_(economy->serial()),
 
40
     player_(&economy->owner()),
41
41
     tabpanel_(this, UI::TabPanelStyle::kWuiDark),
42
42
     ware_panel_(new EconomyOptionsPanel(&tabpanel_, serial_, player_, can_act, Widelands::wwWARE)),
43
 
     worker_panel_(new EconomyOptionsPanel(&tabpanel_, serial_, player_, can_act, Widelands::wwWORKER)) {
 
43
     worker_panel_(
 
44
        new EconomyOptionsPanel(&tabpanel_, serial_, player_, can_act, Widelands::wwWORKER)) {
44
45
        set_center_panel(&tabpanel_);
45
46
 
46
47
        tabpanel_.add("wares", g_gr->images().get(pic_tab_wares), ware_panel_, _("Wares"));
83
84
EconomyOptionsWindow::TargetWaresDisplay::TargetWaresDisplay(UI::Panel* const parent,
84
85
                                                             int32_t const x,
85
86
                                                             int32_t const y,
86
 
                                                                                                                                                                 Widelands::Serial serial,
87
 
                                                                                                                                                                 Widelands::Player* player,
 
87
                                                             Widelands::Serial serial,
 
88
                                                             Widelands::Player* player,
88
89
                                                             Widelands::WareWorker type,
89
90
                                                             bool selectable)
90
91
   : AbstractWaresDisplay(parent, x, y, player->tribe(), type, selectable),
91
 
     serial_(serial), player_(player) {
 
92
     serial_(serial),
 
93
     player_(player) {
92
94
        const Widelands::TribeDescr& owner_tribe = player->tribe();
93
95
        if (type == Widelands::wwWORKER) {
94
96
                for (const Widelands::DescriptionIndex& worker_index : owner_tribe.workers()) {
127
129
 * Wraps the wares/workers display together with some buttons
128
130
 */
129
131
EconomyOptionsWindow::EconomyOptionsPanel::EconomyOptionsPanel(UI::Panel* parent,
130
 
                                                                                                                                                                        Widelands::Serial serial,
131
 
                                                                                                                                                                        Widelands::Player* player,
 
132
                                                               Widelands::Serial serial,
 
133
                                                               Widelands::Player* player,
132
134
                                                               bool can_act,
133
135
                                                               Widelands::WareWorker type)
134
136
   : UI::Box(parent, 0, 0, UI::Box::Vertical),
135
 
          serial_(serial),
136
 
          player_(player),
 
137
     serial_(serial),
 
138
     player_(player),
137
139
     type_(type),
138
140
     can_act_(can_act),
139
141
     display_(this, 0, 0, serial_, player_, type_, can_act_) {
181
183
        const auto& items = is_wares ? player_->tribe().wares() : player_->tribe().workers();
182
184
        for (const Widelands::DescriptionIndex& index : items) {
183
185
                if (display_.ware_selected(index)) {
184
 
                        const Widelands::Economy::TargetQuantity& tq =
185
 
                           is_wares ? economy->ware_target_quantity(index) : economy->worker_target_quantity(index);
 
186
                        const Widelands::Economy::TargetQuantity& tq = is_wares ?
 
187
                                                                          economy->ware_target_quantity(index) :
 
188
                                                                          economy->worker_target_quantity(index);
186
189
                        // Don't allow negative new amount.
187
190
                        if (amount >= 0 || -amount <= static_cast<int>(tq.permanent)) {
188
191
                                if (is_wares) {
189
192
                                        game.send_player_command(*new Widelands::CmdSetWareTargetQuantity(
190
 
                                           game.get_gametime(), player_->player_number(), serial_,
191
 
                                           index, tq.permanent + amount));
 
193
                                           game.get_gametime(), player_->player_number(), serial_, index,
 
194
                                           tq.permanent + amount));
192
195
                                } else {
193
196
                                        game.send_player_command(*new Widelands::CmdSetWorkerTargetQuantity(
194
197
                                           game.get_gametime(), player_->player_number(), serial_, index,
207
210
                if (display_.ware_selected(index)) {
208
211
                        if (is_wares) {
209
212
                                game.send_player_command(*new Widelands::CmdResetWareTargetQuantity(
210
 
                                   game.get_gametime(), player_->player_number(), serial_,
211
 
                                   index));
 
213
                                   game.get_gametime(), player_->player_number(), serial_, index));
212
214
                        } else {
213
215
                                game.send_player_command(*new Widelands::CmdResetWorkerTargetQuantity(
214
 
                                   game.get_gametime(), player_->player_number(), serial_,
215
 
                                   index));
 
216
                                   game.get_gametime(), player_->player_number(), serial_, index));
216
217
                        }
217
218
                }
218
219
        }