Skip to content

Commit ac56531

Browse files
committed
MenuNumPicker: Fix item duplication when game is closed
Fixes #1894
1 parent 75783c8 commit ac56531

File tree

5 files changed

+22
-8
lines changed

5 files changed

+22
-8
lines changed

RELEASE_NOTES.txt

+1
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ Engine fixes:
7979
* Fixed crash in action bar when less than 12 slots were defined.
8080
* Fixed single-line text having the top/bottom "cut off" with certain fonts.
8181
* Fixed delete save dialog being shown underneath buttons on load screen.
82+
* Fixed bug where closing the game with the "Enter Amount" dialog open allowed for item duplication.
8283
* Android: Fix 'Flare' directory not being automatically created.
8384
* Android: Added a dialog to direct the player to the wiki page for installing if no game data is found.
8485

src/MenuManager.cpp

+12-7
Original file line numberDiff line numberDiff line change
@@ -367,12 +367,9 @@ void MenuManager::logic() {
367367
}
368368
else if (num_picker->cancel_clicked) {
369369
// cancel item dragging
370-
drag_stack.quantity = 0;
371-
drag_stack.item = 0;
370+
drag_stack.clear();
371+
num_picker->closeWindow();
372372
resetDrag();
373-
num_picker->cancel_clicked = false;
374-
num_picker->visible = false;
375-
num_picker->tablist.defocus();
376373
}
377374
else {
378375
pause = true;
@@ -1644,13 +1641,17 @@ void MenuManager::closeAll() {
16441641
}
16451642

16461643
void MenuManager::closeLeft() {
1644+
if (num_picker->visible) {
1645+
drag_stack.clear();
1646+
num_picker->closeWindow();
1647+
}
1648+
16471649
resetDrag();
16481650
chr->visible = false;
16491651
questlog->visible = false;
16501652
exit->visible = false;
16511653
stash->visible = false;
16521654
book->setBookFilename("");
1653-
num_picker->visible = false;
16541655

16551656
talker->setNPC(NULL);
16561657
vendor->setNPC(NULL);
@@ -1663,12 +1664,16 @@ void MenuManager::closeLeft() {
16631664
}
16641665

16651666
void MenuManager::closeRight() {
1667+
if (num_picker->visible) {
1668+
drag_stack.clear();
1669+
num_picker->closeWindow();
1670+
}
1671+
16661672
resetDrag();
16671673
inv->visible = false;
16681674
pow->visible = false;
16691675
exit->visible = false;
16701676
book->setBookFilename("");
1671-
num_picker->visible = false;
16721677

16731678
talker->setNPC(NULL);
16741679

src/MenuNumPicker.cpp

+7
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,13 @@ void MenuNumPicker::updateInput() {
247247
input_box->setText(ss.str());
248248
}
249249

250+
void MenuNumPicker::closeWindow() {
251+
confirm_clicked = false;
252+
cancel_clicked = false;
253+
visible = false;
254+
tablist.defocus();
255+
}
256+
250257
MenuNumPicker::~MenuNumPicker() {
251258
delete button_ok;
252259
delete button_up;

src/MenuNumPicker.h

+1
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ class MenuNumPicker : public Menu {
6262
void increaseValue(int val);
6363
void decreaseValue(int val);
6464
int getValue();
65+
void closeWindow();
6566

6667
bool confirm_clicked;
6768
bool cancel_clicked;

src/Version.cpp

+1-1
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, 102);
33+
Version VersionInfo::ENGINE(1, 14, 103);
3434
Version VersionInfo::MIN(0, 0, 0);
3535
Version VersionInfo::MAX(USHRT_MAX, USHRT_MAX, USHRT_MAX);
3636

0 commit comments

Comments
 (0)