Skip to content

Commit

Permalink
NEVERHOOD: Merge some code in the save/load menus
Browse files Browse the repository at this point in the history
  • Loading branch information
johndoe123 authored and wjp committed May 8, 2013
1 parent bdac289 commit dc459b5
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 25 deletions.
45 changes: 21 additions & 24 deletions engines/neverhood/menumodule.cpp
Expand Up @@ -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;
Expand Down Expand Up @@ -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);
}
Expand All @@ -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);
Expand All @@ -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) {

Expand Down Expand Up @@ -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);
Expand All @@ -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) {

Expand All @@ -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);
Expand Down
3 changes: 2 additions & 1 deletion engines/neverhood/menumodule.h
Expand Up @@ -126,7 +126,6 @@ class TextLabelWidget : public Widget {
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();
Expand Down Expand Up @@ -222,6 +221,7 @@ class SaveGameMenu : public WidgetScene {
Common::String _savegameDescription;
void update();
uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
void performSaveGame();
};

class LoadGameMenu : public WidgetScene {
Expand All @@ -236,6 +236,7 @@ class LoadGameMenu : public WidgetScene {
TextEditWidget *_textEditWidget;
Common::String _savegameDescription;
uint32 handleMessage(int messageNum, const MessageParam &param, Entity *sender);
void performLoadGame();
};

class QueryOverwriteMenu : public Scene {
Expand Down

0 comments on commit dc459b5

Please sign in to comment.