aboutsummaryrefslogtreecommitdiff
path: root/engines/neverhood
diff options
context:
space:
mode:
authorjohndoe1232013-01-29 12:14:26 +0000
committerWillem Jan Palenstijn2013-05-08 20:47:43 +0200
commitdc459b5f673207a932ae07546ab29efd5b64727a (patch)
treef3f0ef3d04c1e86bb62a54d0827c7f66048a0bd0 /engines/neverhood
parentbdac28929f7ebcab6ae758e57c24c32493e46f76 (diff)
downloadscummvm-rg350-dc459b5f673207a932ae07546ab29efd5b64727a.tar.gz
scummvm-rg350-dc459b5f673207a932ae07546ab29efd5b64727a.tar.bz2
scummvm-rg350-dc459b5f673207a932ae07546ab29efd5b64727a.zip
NEVERHOOD: Merge some code in the save/load menus
Diffstat (limited to 'engines/neverhood')
-rw-r--r--engines/neverhood/menumodule.cpp45
-rw-r--r--engines/neverhood/menumodule.h3
2 files changed, 23 insertions, 25 deletions
diff --git a/engines/neverhood/menumodule.cpp b/engines/neverhood/menumodule.cpp
index f752ce6745..3093c4360e 100644
--- a/engines/neverhood/menumodule.cpp
+++ b/engines/neverhood/menumodule.cpp
@@ -542,11 +542,6 @@ void TextLabelWidget::clear() {
updateBounds();
}
-void TextLabelWidget::onClick() {
- Widget::onClick();
- // TODO? Click handler
-}
-
void TextLabelWidget::setString(const byte *string, int stringLen) {
_string = string;
_stringLen = stringLen;
@@ -909,13 +904,11 @@ uint32 SaveGameMenu::handleMessage(int messageNum, const MessageParam &param, En
setCurrWidget(_textEditWidget);
break;
case 0x000B:
- if (param.asInteger() == Common::KEYCODE_RETURN) {
- ((MenuModule*)_parentModule)->setSavegameInfo(_textEditWidget->getString(),
- _listBox->getCurrIndex(), _textEditWidget->isModified());
- leaveScene(0);
- } else if (param.asInteger() == Common::KEYCODE_ESCAPE) {
+ if (param.asInteger() == Common::KEYCODE_RETURN)
+ performSaveGame();
+ else if (param.asInteger() == Common::KEYCODE_ESCAPE)
leaveScene(1);
- } else {
+ else {
sendMessage(_textEditWidget, 0x000B, param.asInteger());
setCurrWidget(_textEditWidget);
}
@@ -924,10 +917,7 @@ uint32 SaveGameMenu::handleMessage(int messageNum, const MessageParam &param, En
// Handle menu button click
switch (param.asInteger()) {
case 0:
- // TODO Same handling as Return, merge
- ((MenuModule*)_parentModule)->setSavegameInfo(_textEditWidget->getString(),
- _listBox->getCurrIndex(), _textEditWidget->isModified());
- leaveScene(0);
+ performSaveGame();
break;
case 1:
leaveScene(1);
@@ -950,6 +940,12 @@ uint32 SaveGameMenu::handleMessage(int messageNum, const MessageParam &param, En
return 0;
}
+void SaveGameMenu::performSaveGame() {
+ ((MenuModule*)_parentModule)->setSavegameInfo(_textEditWidget->getString(),
+ _listBox->getCurrIndex(), _textEditWidget->isModified());
+ leaveScene(0);
+}
+
LoadGameMenu::LoadGameMenu(NeverhoodEngine *vm, Module *parentModule, Common::StringArray *savegameList)
: WidgetScene(vm, parentModule), _savegameList(savegameList) {
@@ -1020,20 +1016,16 @@ uint32 LoadGameMenu::handleMessage(int messageNum, const MessageParam &param, En
Scene::handleMessage(messageNum, param, sender);
switch (messageNum) {
case 0x000B:
- if (param.asInteger() == Common::KEYCODE_RETURN) {
- ((MenuModule*)_parentModule)->setLoadgameInfo(_listBox->getCurrIndex());
- leaveScene(0);
- } else if (param.asInteger() == Common::KEYCODE_ESCAPE) {
+ if (param.asInteger() == Common::KEYCODE_RETURN)
+ performLoadGame();
+ else if (param.asInteger() == Common::KEYCODE_ESCAPE)
leaveScene(1);
- }
break;
case 0x2000:
// Handle menu button click
switch (param.asInteger()) {
case 0:
- // TODO Same handling as Return, merge
- ((MenuModule*)_parentModule)->setLoadgameInfo(_listBox->getCurrIndex());
- leaveScene(0);
+ performLoadGame();
break;
case 1:
leaveScene(1);
@@ -1056,6 +1048,11 @@ uint32 LoadGameMenu::handleMessage(int messageNum, const MessageParam &param, En
return 0;
}
+void LoadGameMenu::performLoadGame() {
+ ((MenuModule*)_parentModule)->setLoadgameInfo(_listBox->getCurrIndex());
+ leaveScene(0);
+}
+
QueryOverwriteMenu::QueryOverwriteMenu(NeverhoodEngine *vm, Module *parentModule, const Common::String &description)
: Scene(vm, parentModule) {
@@ -1081,7 +1078,7 @@ QueryOverwriteMenu::QueryOverwriteMenu(NeverhoodEngine *vm, Module *parentModule
}
// Draw the query text to the background, each text line is centered
- // NOTE The original had this in its own class
+ // NOTE The original had this text in its own class
FontSurface *fontSurface = new FontSurface(_vm, calcHash("bgQueryTinyAlphabet"), 32, 7, 32, 11, 17);
Common::StringArray textLines;
textLines.push_back(description);
diff --git a/engines/neverhood/menumodule.h b/engines/neverhood/menumodule.h
index de25b69ac1..1b399820bf 100644
--- a/engines/neverhood/menumodule.h
+++ b/engines/neverhood/menumodule.h
@@ -126,7 +126,6 @@ public:
TextLabelWidget(NeverhoodEngine *vm, int16 x, int16 y, int16 itemID, WidgetScene *parentScene,
int baseObjectPriority, int baseSurfacePriority,
const byte *string, int stringLen, BaseSurface *drawSurface, int16 tx, int16 ty, FontSurface *fontSurface);
- virtual void onClick();
virtual void addSprite();
virtual int16 getWidth();
virtual int16 getHeight();
@@ -222,6 +221,7 @@ protected:
Common::String _savegameDescription;
void update();
uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
+ void performSaveGame();
};
class LoadGameMenu : public WidgetScene {
@@ -236,6 +236,7 @@ protected:
TextEditWidget *_textEditWidget;
Common::String _savegameDescription;
uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
+ void performLoadGame();
};
class QueryOverwriteMenu : public Scene {