aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTorbjörn Andersson2005-10-10 17:23:28 +0000
committerTorbjörn Andersson2005-10-10 17:23:28 +0000
commit6ce32fd4a5ce9f819cf6582e0f6f2a0a24b8aec1 (patch)
tree1c957907d01409c3b1569aedd2468eba87cfd0ad
parent24202dea851e37e5712ae045c29428e72c6d00cd (diff)
downloadscummvm-rg350-6ce32fd4a5ce9f819cf6582e0f6f2a0a24b8aec1.tar.gz
scummvm-rg350-6ce32fd4a5ce9f819cf6582e0f6f2a0a24b8aec1.tar.bz2
scummvm-rg350-6ce32fd4a5ce9f819cf6582e0f6f2a0a24b8aec1.zip
IHNM verb panel fixes:
* Verb buttons and texts are drawn at the correct coordinates. I've compared it to the screenshot on Mobygames. * Verb text is drawn without shadow. * The "Walk to", "Look at", "Take" and "Use" buttons all have the correct background. For some reason, I can't find the sprites for the remaining four buttons. svn-id: r19004
-rw-r--r--saga/game.cpp16
-rw-r--r--saga/interface.cpp12
-rw-r--r--saga/resnames.h4
-rw-r--r--saga/sprite.cpp2
4 files changed, 19 insertions, 15 deletions
diff --git a/saga/game.cpp b/saga/game.cpp
index 4d114ae51c..0ffd6825ca 100644
--- a/saga/game.cpp
+++ b/saga/game.cpp
@@ -525,14 +525,14 @@ static GamePatchDescription ITELinPatch_Files[] = {
// IHNM section
static PanelButton IHNM_MainPanelButtons[] = {
- {kPanelButtonVerb, 106,13, 114,30, kVerbWalkTo,'w',0, 0,0,0}, //TODO: verb Sprite Numbers
- {kPanelButtonVerb, 106,45, 114,30, kVerbLookAt,'l',0, 0,0,0},
- {kPanelButtonVerb, 106,77, 114,30, kVerbTake,'k',0, 0,0,0},
- {kPanelButtonVerb, 106,109, 114,30, kVerbUse,'u',0, 0,0,0},
- {kPanelButtonVerb, 223,13, 114,30, kVerbTalkTo,'t',0, 0,0,0},
- {kPanelButtonVerb, 223,45, 114,30, kVerbSwallow,'s',0, 0,0,0},
- {kPanelButtonVerb, 223,77, 114,30, kVerbGive,'g',0, 0,0,0},
- {kPanelButtonVerb, 223,109, 114,30, kVerbPush,'p',0, 0,0,0},
+ {kPanelButtonVerb, 106,12, 114,30, kVerbWalkTo,'w',0, 0,2,0},
+ {kPanelButtonVerb, 106,44, 114,30, kVerbLookAt,'l',0, 4,6,0},
+ {kPanelButtonVerb, 106,76, 114,30, kVerbTake,'k',0, 8,10,0},
+ {kPanelButtonVerb, 106,108, 114,30, kVerbUse,'u',0, 12,14,0},
+ {kPanelButtonVerb, 223,12, 114,30, kVerbTalkTo,'t',0, 0,0,0}, // TODO: Find the sprites for the remaining buttons
+ {kPanelButtonVerb, 223,44, 114,30, kVerbSwallow,'s',0, 0,0,0},
+ {kPanelButtonVerb, 223,76, 114,30, kVerbGive,'g',0, 0,0,0},
+ {kPanelButtonVerb, 223,108, 114,30, kVerbPush,'p',0, 0,0,0},
{kPanelButtonArrow, 606,22, 20,25, -1,'[',0, 0,0,0}, //TODO: arrow Sprite Numbers
{kPanelButtonArrow, 606,108, 20,25, 1,']',0, 0,0,0}
//TODO:inventory
diff --git a/saga/interface.cpp b/saga/interface.cpp
index 482485284d..890ef10946 100644
--- a/saga/interface.cpp
+++ b/saga/interface.cpp
@@ -118,7 +118,6 @@ Interface::Interface(SagaEngine *vm) : _vm(vm) {
&_optionPanel.imageLength, &_optionPanel.imageWidth, &_optionPanel.imageHeight);
free(resource);
-
_vm->_sprite->loadList(_vm->getResourceDescription()->mainPanelSpritesResourceId, _mainPanel.sprites);
if (_vm->getGameType() == GType_ITE) {
@@ -1915,13 +1914,18 @@ void Interface::drawVerbPanelText(Surface *ds, PanelButton *panelButton, int tex
textId = verbTypeToTextStringsIdLUT[1][panelButton->id];
text = _vm->_script->_mainStrings.getString(textId + 1);
font = kIHNMFont8;
+ textShadowColor = 0;
}
-
textWidth = _vm->_font->getStringWidth(font, text, 0, kFontNormal);
- point.x = _mainPanel.x + panelButton->xOffset + 1 + (panelButton->width - 1 - textWidth) / 2;
- point.y = _mainPanel.y + panelButton->yOffset + 1;
+ if (_vm->getGameType() == GType_ITE) {
+ point.x = _mainPanel.x + panelButton->xOffset + 1 + (panelButton->width - 1 - textWidth) / 2;
+ point.y = _mainPanel.y + panelButton->yOffset + 1;
+ } else {
+ point.x = _mainPanel.x + panelButton->xOffset + 1 + (panelButton->width - textWidth) / 2;
+ point.y = _mainPanel.y + panelButton->yOffset + 12;
+ }
_vm->_font->textDraw(font, ds, text, point, textColor, textShadowColor, (textShadowColor != 0) ? kFontShadow : kFontNormal);
}
diff --git a/saga/resnames.h b/saga/resnames.h
index 259c8978af..9317557cdd 100644
--- a/saga/resnames.h
+++ b/saga/resnames.h
@@ -94,11 +94,11 @@ namespace Saga {
#define RID_ITE_SPR_XHAIR1 (73 + 9)
#define RID_ITE_SPR_XHAIR2 (74 + 9)
-#define RID_IHNM_MAIN_PANEL 9
+#define RID_IHNM_MAIN_PANEL 9
#define RID_IHNM_CONVERSE_PANEL 10
#define RID_IHNM_HOURGLASS_CURSOR 11
#define RID_IHNM_MAIN_SPRITES 12 // TODO: verify this
-#define RID_IHNM_MAIN_PANEL_SPRITES 13 // TODO: verify this
+#define RID_IHNM_MAIN_PANEL_SPRITES 12 // TODO: verify this
#define RID_IHNM_ARROW_SPRITES 13
#define RID_IHNM_SAVEREMINDER_SPRITES 14
#define RID_IHNM_OPTION_PANEL 15
diff --git a/saga/sprite.cpp b/saga/sprite.cpp
index ce11f573eb..e4d28e2608 100644
--- a/saga/sprite.cpp
+++ b/saga/sprite.cpp
@@ -124,7 +124,7 @@ void Sprite::loadList(int resourceId, SpriteList &spriteList) {
spriteInfo->width = readS2.readUint16();
spriteInfo->height = readS2.readUint16();
- if (spriteInfo->width > 100) { // FIXME: HACK
+ if (spriteInfo->width > 200) { // FIXME: HACK
warning("Sprite width is too big: (%d x %d)", spriteInfo->width, spriteInfo->height);
spriteInfo->width = spriteInfo->height = 0;
}