aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilippos Karapetis2007-05-27 11:49:08 +0000
committerFilippos Karapetis2007-05-27 11:49:08 +0000
commit13541d3e96fad9dd24fa5d2d01a4454505d50fef (patch)
treebaa5fbaf8bdf65819fb7b84b18662037ff04e196
parent5f84a9ce71d239b2e1533de997fdd994d1e8a6c6 (diff)
downloadscummvm-rg350-13541d3e96fad9dd24fa5d2d01a4454505d50fef.tar.gz
scummvm-rg350-13541d3e96fad9dd24fa5d2d01a4454505d50fef.tar.bz2
scummvm-rg350-13541d3e96fad9dd24fa5d2d01a4454505d50fef.zip
Verb actions are working correctly now in IHNM. Some verbs are still non-functional
svn-id: r26970
-rw-r--r--engines/saga/displayinfo.h18
-rw-r--r--engines/saga/interface.cpp5
-rw-r--r--engines/saga/script.cpp23
3 files changed, 24 insertions, 22 deletions
diff --git a/engines/saga/displayinfo.h b/engines/saga/displayinfo.h
index 6bf58eca9b..cad6978be9 100644
--- a/engines/saga/displayinfo.h
+++ b/engines/saga/displayinfo.h
@@ -283,16 +283,14 @@ static const GameDisplayInfo ITE_DisplayInfo = {
#define IHNM_CONVERSE_TEXT_LINES 10
static PanelButton IHNM_MainPanelButtons[] = {
- // TODO: The +2's are needed here to fix the verbs, investigate why
- // The computation of textid in Interface::drawVerbPanelText has also been changed accordingly
- {kPanelButtonVerb, 106,12, 114,30, kVerbIHNMWalk + 2,'w',0, 0,1,0},
- {kPanelButtonVerb, 106,44, 114,30, kVerbIHNMLookAt + 2,'l',0, 2,3,0},
- {kPanelButtonVerb, 106,76, 114,30, kVerbIHNMTake + 2,'k',0, 4,5,0},
- {kPanelButtonVerb, 106,108, 114,30, kVerbIHNMUse + 2,'u',0, 6,7,0},
- {kPanelButtonVerb, 223,12, 114,30, kVerbIHNMTalkTo + 2,'t',0, 8,9,0},
- {kPanelButtonVerb, 223,44, 114,30, kVerbIHNMSwallow + 2,'s',0, 10,11,0},
- {kPanelButtonVerb, 223,76, 114,30, kVerbIHNMGive + 2,'g',0, 12,13,0},
- {kPanelButtonVerb, 223,108, 114,30, kVerbIHNMPush + 2,'p',0, 14,15,0},
+ {kPanelButtonVerb, 106,12, 114,30, kVerbIHNMWalk,'w',0, 0,1,0},
+ {kPanelButtonVerb, 106,44, 114,30, kVerbIHNMLookAt,'l',0, 2,3,0},
+ {kPanelButtonVerb, 106,76, 114,30, kVerbIHNMTake,'k',0, 4,5,0},
+ {kPanelButtonVerb, 106,108, 114,30, kVerbIHNMUse,'u',0, 6,7,0},
+ {kPanelButtonVerb, 223,12, 114,30, kVerbIHNMTalkTo,'t',0, 8,9,0},
+ {kPanelButtonVerb, 223,44, 114,30, kVerbIHNMSwallow,'s',0, 10,11,0},
+ {kPanelButtonVerb, 223,76, 114,30, kVerbIHNMGive,'g',0, 12,13,0},
+ {kPanelButtonVerb, 223,108, 114,30, kVerbIHNMPush,'p',0, 14,15,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},
diff --git a/engines/saga/interface.cpp b/engines/saga/interface.cpp
index 2d15db80ee..682919bd30 100644
--- a/engines/saga/interface.cpp
+++ b/engines/saga/interface.cpp
@@ -1972,9 +1972,8 @@ void Interface::drawVerbPanelText(Surface *ds, PanelButton *panelButton, KnownCo
if (_vm->getGameType() == GType_ITE) {
textId = verbTypeToTextStringsIdLUT[0][panelButton->id];
text = _vm->getTextString(textId);
- } else {
- // This -2 has been placed because of the changes in the ids in IHNM_MainPanelButtons
- textId = verbTypeToTextStringsIdLUT[1][panelButton->id - 2];
+ } else {
+ textId = verbTypeToTextStringsIdLUT[1][panelButton->id];
text = _vm->_script->_mainStrings.getString(textId + 1);
textShadowKnownColor = kKnownColorTransparent;
}
diff --git a/engines/saga/script.cpp b/engines/saga/script.cpp
index 8a1e61cd46..f7a5e1c42a 100644
--- a/engines/saga/script.cpp
+++ b/engines/saga/script.cpp
@@ -287,7 +287,10 @@ void Script::showVerb(int statusColor) {
return;
}
- verbName = _mainStrings.getString(_leftButtonVerb - 1);
+ if (_vm->getGameType() == GType_ITE)
+ verbName = _mainStrings.getString(_leftButtonVerb - 1);
+ else
+ verbName = _mainStrings.getString(_leftButtonVerb + 1);
if (objectTypeId(_currentObject[0]) == kGameObjectNone) {
_vm->_interface->setStatusText(verbName, statusColor);
@@ -360,22 +363,24 @@ int Script::getVerbType(VerbTypes verbType) {
return kVerbIHNMNone;
case kVerbWalkTo:
return kVerbIHNMWalk;
- case kVerbGive:
- return kVerbIHNMGive;
- case kVerbUse:
- return kVerbIHNMUse;
- case kVerbEnter:
- return kVerbIHNMEnter;
case kVerbLookAt:
return kVerbIHNMLookAt;
case kVerbPickUp:
return kVerbIHNMTake;
+ case kVerbUse:
+ return kVerbIHNMUse;
+ case kVerbTalkTo:
+ return kVerbIHNMTalkTo;
case kVerbOpen:
return -2;
+ // return kVerbIHNMSwallow;
+ case kVerbGive:
+ return kVerbIHNMGive;
case kVerbClose:
return -2;
- case kVerbTalkTo:
- return kVerbIHNMTalkTo;
+ // return kVerbIHNMPush;
+ case kVerbEnter:
+ return kVerbIHNMEnter;
case kVerbWalkOnly:
return kVerbIHNMWalkOnly;
case kVerbLookOnly: