diff options
Diffstat (limited to 'engines/titanic/pet_control/pet_save.cpp')
-rw-r--r-- | engines/titanic/pet_control/pet_save.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/engines/titanic/pet_control/pet_save.cpp b/engines/titanic/pet_control/pet_save.cpp index d344c8cd14..60afa11ab4 100644 --- a/engines/titanic/pet_control/pet_save.cpp +++ b/engines/titanic/pet_control/pet_save.cpp @@ -49,6 +49,16 @@ bool CPetSave::MouseButtonUpMsg(const Point &pt) { } } +bool CPetSave::KeyCharMsg(int key) { + if (CPetLoadSave::KeyCharMsg(key)) + return true; + + if (_savegameSlotNum != -1) + _slotNames[_savegameSlotNum].handleKey(key); + + return true; +} + void CPetSave::highlightCurrent(const Point &pt) { resetSlots(); highlightSave(_savegameSlotNum); @@ -71,11 +81,12 @@ void CPetSave::unhighlightSave(int index) { void CPetSave::execute() { CPetControl *pet = getPetControl(); if (_savegameSlotNum >= 0) { + int slotNumber = _savegameSlotNum; highlightSlot(-1); CProjectItem *project = pet ? pet->getRoot() : nullptr; if (project) { - project->saveGame(_savegameSlotNum, _slotNames[_savegameSlotNum].getText()); + project->saveGame(slotNumber, _slotNames[slotNumber].getText()); pet->displayMessage(BLANK); } } else if (pet) { |