[Scummvm-cvs-logs] scummvm master -> 76dec424696eacf2e9c1576d0580babb1a58e3f1
athrxx
athrxx at scummvm.org
Tue Jan 3 17:39:13 CET 2012
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
4fd0e9e94b KYRA: (EOB) - improve keyboard control for spell book cursor with non QWERTZ keyboards
76dec42469 KYRA: (EOB) - improved eob target detection in transfer party dialog
Commit: 4fd0e9e94ba5a4e4b11a9e993f69350f70564227
https://github.com/scummvm/scummvm/commit/4fd0e9e94ba5a4e4b11a9e993f69350f70564227
Author: athrxx (athrxx at scummvm.org)
Date: 2012-01-03T08:37:46-08:00
Commit Message:
KYRA: (EOB) - improve keyboard control for spell book cursor with non QWERTZ keyboards
Changed paths:
engines/kyra/kyra_v1.cpp
diff --git a/engines/kyra/kyra_v1.cpp b/engines/kyra/kyra_v1.cpp
index e60913c..7167d41 100644
--- a/engines/kyra/kyra_v1.cpp
+++ b/engines/kyra/kyra_v1.cpp
@@ -420,8 +420,18 @@ void KyraEngine_v1::setupKeyMap() {
{ KC(KP_MINUS), 105, 0/*unknown*/ },
{ KC(PLUS), 13, 0/*unknown*/ },
{ KC(KP_PLUS), 106, 0/*unknown*/ },
+
+ // Multiple mappings for the keys to the right of the 'M' key,
+ // since these are different for QWERTZ, QWERTY and AZERTY keyboards.
+ // QWERTZ
{ KC(COMMA), 53, 0/*unknown*/ },
- { KC(PERIOD), 54, 0/*unknown*/ }
+ { KC(PERIOD), 54, 0/*unknown*/ },
+ // AZERTY
+ { KC(SEMICOLON), 53, 0/*unknown*/ },
+ { KC(COLON), 54, 0/*unknown*/ },
+ // QWERTY
+ { KC(LESS), 53, 0/*unknown*/ },
+ { KC(GREATER), 54, 0/*unknown*/ }
};
#undef KC
Commit: 76dec424696eacf2e9c1576d0580babb1a58e3f1
https://github.com/scummvm/scummvm/commit/76dec424696eacf2e9c1576d0580babb1a58e3f1
Author: athrxx (athrxx at scummvm.org)
Date: 2012-01-03T08:37:47-08:00
Commit Message:
KYRA: (EOB) - improved eob target detection in transfer party dialog
(parse domains instead of save files)
Changed paths:
engines/kyra/chargen.cpp
engines/kyra/gui_eob.cpp
engines/kyra/gui_eob.h
diff --git a/engines/kyra/chargen.cpp b/engines/kyra/chargen.cpp
index 1093bec..91a9040 100644
--- a/engines/kyra/chargen.cpp
+++ b/engines/kyra/chargen.cpp
@@ -29,6 +29,11 @@
#include "common/savefile.h"
#include "common/str-array.h"
+#include "common/config-manager.h"
+#include "base/plugins.h"
+#include "engines/metaengine.h"
+#include "engines/game.h"
+
namespace Kyra {
// Character Generator
@@ -1446,7 +1451,8 @@ public:
private:
bool selectAndLoadTransferFile();
- Common::String transferFileDialogue();
+ bool transferFileDialogue(Common::String &dest);
+
int selectCharactersMenu();
void drawCharPortraitWithStats(int charIndex, bool enabled);
@@ -1531,83 +1537,54 @@ bool TransferPartyWiz::start() {
bool TransferPartyWiz::selectAndLoadTransferFile() {
do {
_screen->copyPage(12, 0);
- _vm->_savegameFilename = transferFileDialogue();
- } while (_vm->_savegameFilename.empty() && _vm->_gui->confirmDialogue2(15, 68, 1));
+ if (transferFileDialogue(_vm->_savegameFilename))
+ break;
+ } while (_vm->_gui->confirmDialogue2(15, 68, 1));
if (_vm->_savegameFilename.empty())
return false;
- if (_vm->_savegameFilename.equals(_vm->_saveLoadStrings[1]))
- return false;
-
if (_vm->loadGameState(-1).getCode() != Common::kNoError)
return false;
return true;
}
-Common::String TransferPartyWiz::transferFileDialogue() {
- Common::StringArray saveFileList = _vm->_saveFileMan->listSavefiles("*.*");
- Common::StringArray targets;
- Common::String tfile;
-
- KyraEngine_v1::SaveHeader header;
- memset(&header, 0, sizeof(KyraEngine_v1::SaveHeader));
- Common::InSaveFile *in;
-
+ bool TransferPartyWiz::transferFileDialogue(Common::String &dest) {
_vm->_gui->transferWaitBox();
- for (Common::StringArray::iterator i = saveFileList.begin(); i != saveFileList.end(); ++i) {
- _vm->updateInput();
-
- if (!(in = _vm->_saveFileMan->openForLoading(*i)))
- continue;
-
- if (KyraEngine_v1::readSaveHeader(in, false, header)) {
- delete in;
- continue;
- }
-
- delete in;
-
- if (header.gameID != GI_EOB1)
- continue;
-
- i->insertChar('\0', i->size() - 4);
+ Common::Array<Common::String> eobTargets;
+ const Common::ConfigManager::DomainMap dom = ConfMan.getGameDomains();
- Common::StringArray::iterator ii = targets.begin();
- for (; ii != targets.end(); ++ii) {
- if (!i->compareToIgnoreCase(*ii))
- break;
- }
-
- if (ii == targets.end())
- targets.push_back(*i);
+ for (Common::ConfigManager::DomainMap::const_iterator i = dom.begin(); i != dom.end(); ++i) {
+ if (ConfMan.get("gameid", i->_key).equals("eob"))
+ eobTargets.push_back(i->_key);
+ _vm->updateInput();
}
- if (targets.empty())
- return tfile;
+ if (eobTargets.empty())
+ return false;
- Common::String target = _vm->_gui->transferTargetMenu(targets);
+ Common::String target = _vm->_gui->transferTargetMenu(eobTargets);
_screen->copyPage(12, 0);
- if (target.equals(_vm->_saveLoadStrings[1]))
- return target;
+ if (target.empty())
+ return true;
- tfile = target + ".fin";
- in = _vm->_saveFileMan->openForLoading(tfile);
+ dest = target + ".fin";
+ Common::InSaveFile *in = _vm->_saveFileMan->openForLoading(dest);
if (in) {
delete in;
if (_vm->_gui->confirmDialogue2(15, -2, 1))
- return tfile;
+ return true;
}
_screen->copyPage(12, 0);
- tfile = _vm->_gui->transferFileMenu(target);
+ bool result = _vm->_gui->transferFileMenu(target, dest);
_screen->copyPage(12, 0);
- return tfile;
+ return result;
}
int TransferPartyWiz::selectCharactersMenu() {
diff --git a/engines/kyra/gui_eob.cpp b/engines/kyra/gui_eob.cpp
index a378fe1..d60fa47 100644
--- a/engines/kyra/gui_eob.cpp
+++ b/engines/kyra/gui_eob.cpp
@@ -2546,12 +2546,13 @@ void GUI_EoB::transferWaitBox() {
}
Common::String GUI_EoB::transferTargetMenu(Common::Array<Common::String> &targets) {
- _savegameListSize = targets.size();
if (_savegameList) {
for (int i = 0; i < _savegameListSize; i++)
delete[] _savegameList[i];
delete[] _savegameList;
}
+
+ _savegameListSize = targets.size();
_savegameList = new char*[_savegameListSize];
memset(_savegameList, 0, _savegameListSize * sizeof(char *));
@@ -2576,12 +2577,16 @@ Common::String GUI_EoB::transferTargetMenu(Common::Array<Common::String> &target
_screen->copyRegion(72, 14, 72, 14, 176, 144, 12, 0, Screen::CR_NO_P_CHECK);
_screen->modifyScreenDim(11, xo, yo, dm->w, dm->h);
- return (slot < 6) ? _savegameList[_savegameOffset + slot] : _vm->_saveLoadStrings[1];
+ return (slot < 6) ? _savegameList[_savegameOffset + slot] : Common::String();
}
-Common::String GUI_EoB::transferFileMenu(Common::String &target) {
- updateSaveSlotsList(target, true);
+bool GUI_EoB::transferFileMenu(Common::String &targetName, Common::String &selection) {
+ updateSaveSlotsList(targetName, true);
_saveSlotsListUpdateNeeded = true;
+ selection.clear();
+
+ if (!_savegameListSize)
+ return false;
const ScreenDim *dm = _screen->getScreenDim(11);
int xo = dm->sx;
@@ -2598,12 +2603,13 @@ Common::String GUI_EoB::transferFileMenu(Common::String &target) {
messageDialogue(11, 65, 6);
else {
_screen->modifyScreenDim(11, xo, yo, dm->w, dm->h);
- return _vm->getSavegameFilename(target, _saveSlotIdTemp[slot]);
+ selection = _vm->getSavegameFilename(targetName, _saveSlotIdTemp[slot]);
+ return true;
}
} while (_saveSlotIdTemp[slot] == -1);
_screen->modifyScreenDim(11, xo, yo, dm->w, dm->h);
- return _vm->_saveLoadStrings[1];
+ return true;
}
void GUI_EoB::createScreenThumbnail(Graphics::Surface &dst) {
diff --git a/engines/kyra/gui_eob.h b/engines/kyra/gui_eob.h
index ec4000e..759ed64 100644
--- a/engines/kyra/gui_eob.h
+++ b/engines/kyra/gui_eob.h
@@ -73,7 +73,7 @@ public:
// Transfer party
void transferWaitBox();
Common::String transferTargetMenu(Common::Array<Common::String> &targets);
- Common::String transferFileMenu(Common::String &target);
+ bool transferFileMenu(Common::String &targetName, Common::String &selection);
// utilities for thumbnail creation
void createScreenThumbnail(Graphics::Surface &dst);
More information about the Scummvm-git-logs
mailing list