@@ -75,6 +75,7 @@ GameStateLoad::GameStateLoad() : GameState()
75
75
, loaded(false )
76
76
, delete_items(true )
77
77
, selected_slot(-1 )
78
+ , last_selected_slot(-1 )
78
79
, visible_slots(0 )
79
80
, scroll_offset(0 )
80
81
, has_scroll_bar(false )
@@ -527,6 +528,9 @@ void GameStateLoad::logic() {
527
528
}
528
529
else {
529
530
if (nav_mode == NAV_MODE_DEFAULT) {
531
+ if (!inpt->usingMouse () && !loading_requested)
532
+ setSelectedSlot (-1 );
533
+
530
534
tablist.logic ();
531
535
532
536
if (!inpt->usingMouse () && tablist.getCurrent () == -1 ) {
@@ -562,6 +566,7 @@ void GameStateLoad::logic() {
562
566
else if (button_load->checkClick ()) {
563
567
if (!inpt->usingMouse ()) {
564
568
nav_mode = NAV_MODE_LOAD;
569
+ setSelectedSlot (last_selected_slot);
565
570
updateButtons ();
566
571
}
567
572
else {
@@ -571,6 +576,7 @@ void GameStateLoad::logic() {
571
576
else if (button_delete->checkClick ()) {
572
577
if (!inpt->usingMouse ()) {
573
578
nav_mode = NAV_MODE_DELETE;
579
+ setSelectedSlot (last_selected_slot);
574
580
updateButtons ();
575
581
}
576
582
else {
@@ -956,6 +962,9 @@ void GameStateLoad::render() {
956
962
}
957
963
958
964
void GameStateLoad::setSelectedSlot (int slot) {
965
+ if (selected_slot != -1 )
966
+ last_selected_slot = selected_slot;
967
+
959
968
if (selected_slot != -1 && static_cast <size_t >(selected_slot) < game_slots.size () && game_slots[selected_slot]) {
960
969
game_slots[selected_slot]->stats .direction = 6 ;
961
970
game_slots[selected_slot]->preview_turn_timer .reset (Timer::BEGIN);
0 commit comments