aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
Diffstat (limited to 'engines')
-rw-r--r--engines/saga/displayinfo.h18
-rw-r--r--engines/saga/interface.cpp30
2 files changed, 37 insertions, 11 deletions
diff --git a/engines/saga/displayinfo.h b/engines/saga/displayinfo.h
index 4820533623..e728666b2f 100644
--- a/engines/saga/displayinfo.h
+++ b/engines/saga/displayinfo.h
@@ -318,11 +318,19 @@ static PanelButton IHNM_ConversePanelButtons[] = {
};
static PanelButton IHNM_OptionPanelButtons[] = {
- {kPanelButtonArrow, 0,0, 0,0, 0,'-',0, 0,0,0}, //TODO
+ //TODO: Add the rest of the buttons
+ //TODO: Those coordinates might not be pixel perfect, check with the original interpreter
+ {kPanelButtonOption, 20,150, 200,25, kTextQuitGame,'q',0, 0,0,0}, //quit
+ {kPanelButtonOption, 20,175, 200,25, kTextContinuePlaying,'c',0, 0,0,0}, //continue
+ //.....
};
static PanelButton IHNM_QuitPanelButtons[] = {
- {kPanelButtonArrow, 0,0, 0,0, 0,'-',0, 0,0,0}, //TODO
+ //FIXME: Show the correct quit dialog background
+ //TODO: Those coordinates might not be pixel perfect, check with the original interpreter
+ {kPanelButtonQuit, 25,80, 80,25, kTextQuit,'q',0, 0,0,0},
+ {kPanelButtonQuit, 155,80, 80,25, kTextCancel,'c',0, 0,0,0},
+ {kPanelButtonQuitText, -1,5, 0,0, kTextQuitTheGameQuestion,'-',0, 0,0,0},
};
static PanelButton IHNM_LoadPanelButtons[] = {
@@ -372,12 +380,12 @@ static const GameDisplayInfo IHNM_DisplayInfo = { //TODO: fill it all
-1, -1, // save file index
0, // optionSaveFileVisible
- 0, 0, // option panel offsets
+ 100, 75, // option panel offsets
ARRAYSIZE(IHNM_OptionPanelButtons),
IHNM_OptionPanelButtons,
- 0,0, // quit panel offsets
- 0,0, // quit panel width & height
+ 190,180, // quit panel offsets
+ 260,115, // quit panel width & height
ARRAYSIZE(IHNM_QuitPanelButtons),
IHNM_QuitPanelButtons,
diff --git a/engines/saga/interface.cpp b/engines/saga/interface.cpp
index abf706310f..08ed30c8a2 100644
--- a/engines/saga/interface.cpp
+++ b/engines/saga/interface.cpp
@@ -719,7 +719,6 @@ void Interface::drawOption() {
Rect rect2;
PanelButton *panelButton;
Point textPoint;
- if (_optionSaveFileSlider == NULL) return;//TODO:REMOVE
backBuffer = _vm->_gfx->getBackBuffer();
@@ -737,9 +736,17 @@ void Interface::drawOption() {
}
if (_optionSaveRectTop.height() > 0) {
- backBuffer->drawRect(_optionSaveRectTop, kITEColorDarkGrey);
+ if (_vm->getGameType() == GType_ITE) {
+ backBuffer->drawRect(_optionSaveRectTop, kITEColorDarkGrey);
+ } else {
+ // TODO: Draw the button graphic properly for IHNM
+ }
}
+ // FIXME: The _optionSaveFileSlider checks exist for IHNM, where
+ // _optionSaveFileSlider is not initialized correctly yet
+ if (_optionSaveFileSlider == NULL) return; //TODO:REMOVE
+
drawButtonBox(backBuffer, _optionSaveRectSlider, kSlider, _optionSaveFileSlider->state > 0);
if (_optionSaveRectBottom.height() > 0) {
@@ -1890,8 +1897,14 @@ void Interface::drawPanelButtonText(Surface *ds, InterfacePanel *panel, PanelBut
}
text = _vm->getTextString(textId);
- textWidth = _vm->_font->getStringWidth(kKnownFontMedium, text, 0, kFontNormal);
- textHeight = _vm->_font->getHeight(kKnownFontMedium);
+ // TODO: This looks like to be the proper font for IHNM, check for validity
+ if (_vm->getGameType() == GType_ITE) {
+ textWidth = _vm->_font->getStringWidth(kKnownFontMedium, text, 0, kFontNormal);
+ textHeight = _vm->_font->getHeight(kKnownFontMedium);
+ } else {
+ textWidth = _vm->_font->getStringWidth(kKnownFontVerb, text, 0, kFontNormal);
+ textHeight = _vm->_font->getHeight(kKnownFontVerb);
+ }
point.x = panel->x + panelButton->xOffset + (panelButton->width / 2) - (textWidth / 2);
point.y = panel->y + panelButton->yOffset + (panelButton->height / 2) - (textHeight / 2);
@@ -1905,8 +1918,13 @@ void Interface::drawPanelButtonText(Surface *ds, InterfacePanel *panel, PanelBut
panel->calcPanelButtonRect(panelButton, rect);
drawButtonBox(ds, rect, kButton, panelButton->state > 0);
- _vm->_font->textDraw(kKnownFontMedium, ds, text, point,
- _vm->KnownColor2ColorId(textColor), _vm->KnownColor2ColorId(kKnownColorVerbTextShadow), kFontShadow);
+ // TODO: This looks like to be the proper font for IHNM, check for validity
+ if (_vm->getGameType() == GType_ITE)
+ _vm->_font->textDraw(kKnownFontMedium, ds, text, point,
+ _vm->KnownColor2ColorId(textColor), _vm->KnownColor2ColorId(kKnownColorVerbTextShadow), kFontShadow);
+ else
+ _vm->_font->textDraw(kKnownFontVerb, ds, text, point,
+ _vm->KnownColor2ColorId(textColor), _vm->KnownColor2ColorId(kKnownColorVerbTextShadow), kFontShadow);
}
void Interface::drawPanelButtonArrow(Surface *ds, InterfacePanel *panel, PanelButton *panelButton) {