aboutsummaryrefslogtreecommitdiff
path: root/saga
diff options
context:
space:
mode:
authorEugene Sandulenko2005-10-11 01:42:21 +0000
committerEugene Sandulenko2005-10-11 01:42:21 +0000
commit02bcf56072d17807db0e5ee47006ca86552a1d43 (patch)
tree075f89e9aba5fee2e903ce095b26974031edf007 /saga
parent54449c920ba40b19270a13508fc956a6ff6637c3 (diff)
downloadscummvm-rg350-02bcf56072d17807db0e5ee47006ca86552a1d43.tar.gz
scummvm-rg350-02bcf56072d17807db0e5ee47006ca86552a1d43.tar.bz2
scummvm-rg350-02bcf56072d17807db0e5ee47006ca86552a1d43.zip
Fixed sprite loading. Now that ugly hack is gone, no wrong reads and every
chapter is selectable without crash. As a side effect all buttons now have correct backgrounds ;). svn-id: r19010
Diffstat (limited to 'saga')
-rw-r--r--saga/game.cpp16
-rw-r--r--saga/sprite.cpp8
2 files changed, 11 insertions, 13 deletions
diff --git a/saga/game.cpp b/saga/game.cpp
index 2f819f30af..47f4c68442 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,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},
+ {kPanelButtonVerb, 106,12, 114,30, kVerbWalkTo,'w',0, 0,1,0},
+ {kPanelButtonVerb, 106,44, 114,30, kVerbLookAt,'l',0, 2,3,0},
+ {kPanelButtonVerb, 106,76, 114,30, kVerbTake,'k',0, 4,5,0},
+ {kPanelButtonVerb, 106,108, 114,30, kVerbUse,'u',0, 6,7,0},
+ {kPanelButtonVerb, 223,12, 114,30, kVerbTalkTo,'t',0, 8,9,0}, // TODO: Find the sprites for the remaining buttons
+ {kPanelButtonVerb, 223,44, 114,30, kVerbSwallow,'s',0, 10,11,0},
+ {kPanelButtonVerb, 223,76, 114,30, kVerbGive,'g',0, 12,13,0},
+ {kPanelButtonVerb, 223,108, 114,30, kVerbPush,'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}
//TODO:inventory
diff --git a/saga/sprite.cpp b/saga/sprite.cpp
index e4d28e2608..191055acca 100644
--- a/saga/sprite.cpp
+++ b/saga/sprite.cpp
@@ -103,7 +103,9 @@ void Sprite::loadList(int resourceId, SpriteList &spriteList) {
for (i = oldSpriteCount; i < spriteList.spriteCount; i++) {
spriteInfo = &spriteList.infoList[i];
- if (_vm->isMacResources())
+ if (_vm->getGameType() == GType_IHNM)
+ offset = readS.readUint32();
+ else if (_vm->isMacResources())
offset = readS.readUint32();
else
offset = readS.readUint16();
@@ -124,10 +126,6 @@ void Sprite::loadList(int resourceId, SpriteList &spriteList) {
spriteInfo->width = readS2.readUint16();
spriteInfo->height = readS2.readUint16();
- if (spriteInfo->width > 200) { // FIXME: HACK
- warning("Sprite width is too big: (%d x %d)", spriteInfo->width, spriteInfo->height);
- spriteInfo->width = spriteInfo->height = 0;
- }
spriteDataPointer = spritePointer + readS2.pos();
} else {
MemoryReadStreamEndian readS2(spritePointer, 4);