Skip to content

Commit c7712e8

Browse files
committed
GameStateLoad: Only set selected slot when applicable with gamepad
1 parent 9095acf commit c7712e8

File tree

3 files changed

+11
-1
lines changed

3 files changed

+11
-1
lines changed

src/GameStateLoad.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ GameStateLoad::GameStateLoad() : GameState()
7575
, loaded(false)
7676
, delete_items(true)
7777
, selected_slot(-1)
78+
, last_selected_slot(-1)
7879
, visible_slots(0)
7980
, scroll_offset(0)
8081
, has_scroll_bar(false)
@@ -527,6 +528,9 @@ void GameStateLoad::logic() {
527528
}
528529
else {
529530
if (nav_mode == NAV_MODE_DEFAULT) {
531+
if (!inpt->usingMouse() && !loading_requested)
532+
setSelectedSlot(-1);
533+
530534
tablist.logic();
531535

532536
if (!inpt->usingMouse() && tablist.getCurrent() == -1) {
@@ -562,6 +566,7 @@ void GameStateLoad::logic() {
562566
else if (button_load->checkClick()) {
563567
if (!inpt->usingMouse()) {
564568
nav_mode = NAV_MODE_LOAD;
569+
setSelectedSlot(last_selected_slot);
565570
updateButtons();
566571
}
567572
else {
@@ -571,6 +576,7 @@ void GameStateLoad::logic() {
571576
else if (button_delete->checkClick()) {
572577
if (!inpt->usingMouse()) {
573578
nav_mode = NAV_MODE_DELETE;
579+
setSelectedSlot(last_selected_slot);
574580
updateButtons();
575581
}
576582
else {
@@ -956,6 +962,9 @@ void GameStateLoad::render() {
956962
}
957963

958964
void GameStateLoad::setSelectedSlot(int slot) {
965+
if (selected_slot != -1)
966+
last_selected_slot = selected_slot;
967+
959968
if (selected_slot != -1 && static_cast<size_t>(selected_slot) < game_slots.size() && game_slots[selected_slot]) {
960969
game_slots[selected_slot]->stats.direction = 6;
961970
game_slots[selected_slot]->preview_turn_timer.reset(Timer::BEGIN);

src/GameStateLoad.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ class GameStateLoad : public GameState {
131131
Rect gameslot_pos;
132132

133133
int selected_slot;
134+
int last_selected_slot;
134135
int visible_slots;
135136
int scroll_offset;
136137
bool has_scroll_bar;

src/Version.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ FLARE. If not, see http://www.gnu.org/licenses/
3030

3131
#include <SDL.h>
3232

33-
Version VersionInfo::ENGINE(1, 14, 146);
33+
Version VersionInfo::ENGINE(1, 14, 147);
3434
Version VersionInfo::MIN(0, 0, 0);
3535
Version VersionInfo::MAX(USHRT_MAX, USHRT_MAX, USHRT_MAX);
3636

0 commit comments

Comments
 (0)