aboutsummaryrefslogtreecommitdiff
path: root/engines/scumm
diff options
context:
space:
mode:
authorNorbert Lange2009-08-16 16:39:34 +0000
committerNorbert Lange2009-08-16 16:39:34 +0000
commitc96affd0c1e5480fe1a4a3d3e82583c795570d21 (patch)
tree3f3a71bc02976024345c5c3e44534055d9c9c4cd /engines/scumm
parent2b147c57161cdacf3cdc5bc572ce46160cbd6b5e (diff)
parentce30a513acdaab2ca5eacd136cc80ade1beabb3a (diff)
downloadscummvm-rg350-c96affd0c1e5480fe1a4a3d3e82583c795570d21.tar.gz
scummvm-rg350-c96affd0c1e5480fe1a4a3d3e82583c795570d21.tar.bz2
scummvm-rg350-c96affd0c1e5480fe1a4a3d3e82583c795570d21.zip
merge with trunk
svn-id: r43443
Diffstat (limited to 'engines/scumm')
-rw-r--r--engines/scumm/dialogs.cpp15
-rw-r--r--engines/scumm/dialogs.h1
-rw-r--r--engines/scumm/he/script_v60he.cpp5
3 files changed, 13 insertions, 8 deletions
diff --git a/engines/scumm/dialogs.cpp b/engines/scumm/dialogs.cpp
index 42e49afcc1..63ac952265 100644
--- a/engines/scumm/dialogs.cpp
+++ b/engines/scumm/dialogs.cpp
@@ -471,10 +471,13 @@ ScummMenuDialog::~ScummMenuDialog() {
delete _loadDialog;
}
-void ScummMenuDialog::reflowLayout() {
- if (!_vm->canSaveGameStateCurrently())
- _saveButton->setEnabled(false);
+int ScummMenuDialog::runModal() {
+ _saveButton->setEnabled(_vm->canSaveGameStateCurrently());
+ return ScummDialog::runModal();
+}
+void ScummMenuDialog::reflowLayout() {
+ _saveButton->setEnabled(_vm->canSaveGameStateCurrently());
Dialog::reflowLayout();
}
@@ -745,7 +748,7 @@ InfoDialog::InfoDialog(ScummEngine *scumm, int res)
_message = queryResString(res);
// Width and height are dummy
- _text = new StaticTextWidget(this, 4, 4, 10, 10, _message, kTextAlignCenter);
+ _text = new StaticTextWidget(this, 0, 0, 10, 10, _message, kTextAlignCenter);
}
InfoDialog::InfoDialog(ScummEngine *scumm, const String& message)
@@ -754,7 +757,7 @@ InfoDialog::InfoDialog(ScummEngine *scumm, const String& message)
_message = message;
// Width and height are dummy
- _text = new StaticTextWidget(this, 4, 4, 10, 10, _message, kTextAlignCenter);
+ _text = new StaticTextWidget(this, 0, 0, 10, 10, _message, kTextAlignCenter);
}
void InfoDialog::setInfoText(const String& message) {
@@ -775,7 +778,7 @@ void InfoDialog::reflowLayout() {
_x = (screenW - width) / 2;
_y = (screenH - height) / 2;
- _text->setSize(_w - 8, _h);
+ _text->setSize(_w, _h);
}
const Common::String InfoDialog::queryResString(int stringno) {
diff --git a/engines/scumm/dialogs.h b/engines/scumm/dialogs.h
index d4ecbde534..85b562ed67 100644
--- a/engines/scumm/dialogs.h
+++ b/engines/scumm/dialogs.h
@@ -90,6 +90,7 @@ public:
virtual void reflowLayout();
+ int runModal();
protected:
ScummEngine *_vm;
diff --git a/engines/scumm/he/script_v60he.cpp b/engines/scumm/he/script_v60he.cpp
index f186495f81..7c109b1dcd 100644
--- a/engines/scumm/he/script_v60he.cpp
+++ b/engines/scumm/he/script_v60he.cpp
@@ -115,9 +115,10 @@ int ScummEngine_v60he::convertFilePath(byte *dst, int dstSize) {
int r = 0;
if (dst[len - 3] == 's' && dst[len - 2] == 'g') { // Save Game File
// Change filename prefix to target name, for save game files.
- char saveName[20];
+ char saveName[40];
+ memset(saveName, 0, sizeof(saveName));
sprintf(saveName, "%s.sg%c", _targetName.c_str(), dst[len - 1]);
- memcpy(dst, saveName, 20);
+ memcpy(dst, saveName, 40);
} else if (dst[0] == '.' && dst[1] == '/') { // Game Data Path
// The default game data path is set to './' by ScummVM
r = 2;