@@ -166,18 +166,26 @@ void CraftSoldiersState::populateList()
166166 */
167167void CraftSoldiersState::lstItemsLeftArrowClick (Action *action)
168168{
169- if (action->getDetails ()->button .button != SDL_BUTTON_LEFT )
169+ if (SDL_BUTTON_LEFT == action->getDetails ()->button .button
170+ || SDL_BUTTON_RIGHT == action->getDetails ()->button .button )
170171 {
171- return ;
172- }
173- int row = _lstSoldiers->getSelectedRow ();
174- if (row > 0 )
175- {
176- Soldier *s = _base->getSoldiers ()->at (row);
177- _base->getSoldiers ()->at (row) = _base->getSoldiers ()->at (row-1 );
178- _base->getSoldiers ()->at (row-1 ) = s;
172+ int row = _lstSoldiers->getSelectedRow ();
173+ if (row > 0 )
174+ {
175+ Soldier *s = _base->getSoldiers ()->at (row);
176+ if (SDL_BUTTON_LEFT == action->getDetails ()->button .button )
177+ {
178+ _base->getSoldiers ()->at (row) = _base->getSoldiers ()->at (row-1 );
179+ _base->getSoldiers ()->at (row-1 ) = s;
180+ }
181+ else
182+ {
183+ _base->getSoldiers ()->erase (_base->getSoldiers ()->begin ()+row);
184+ _base->getSoldiers ()->insert (_base->getSoldiers ()->begin (),s);
185+ }
186+ }
187+ populateList ();
179188 }
180- populateList ();
181189}
182190
183191/* *
@@ -186,18 +194,26 @@ void CraftSoldiersState::lstItemsLeftArrowClick(Action *action)
186194 */
187195void CraftSoldiersState::lstItemsRightArrowClick (Action *action)
188196{
189- if (action->getDetails ()->button .button != SDL_BUTTON_LEFT )
197+ if (SDL_BUTTON_LEFT == action->getDetails ()->button .button
198+ || SDL_BUTTON_RIGHT == action->getDetails ()->button .button )
190199 {
191- return ;
192- }
193- unsigned int row = _lstSoldiers->getSelectedRow ();
194- if (row < _base->getSoldiers ()->size () - 1 )
195- {
196- Soldier *s = _base->getSoldiers ()->at (row);
197- _base->getSoldiers ()->at (row) = _base->getSoldiers ()->at (row+1 );
198- _base->getSoldiers ()->at (row+1 ) = s;
200+ unsigned int row = _lstSoldiers->getSelectedRow ();
201+ if (row < _base->getSoldiers ()->size () - 1 )
202+ {
203+ Soldier *s = _base->getSoldiers ()->at (row);
204+ if (SDL_BUTTON_LEFT == action->getDetails ()->button .button )
205+ {
206+ _base->getSoldiers ()->at (row) = _base->getSoldiers ()->at (row+1 );
207+ _base->getSoldiers ()->at (row+1 ) = s;
208+ }
209+ else
210+ {
211+ _base->getSoldiers ()->erase (_base->getSoldiers ()->begin ()+row);
212+ _base->getSoldiers ()->insert (_base->getSoldiers ()->end (),s);
213+ }
214+ }
215+ populateList ();
199216 }
200- populateList ();
201217}
202218
203219/* *
0 commit comments