[Scummvm-git-logs] scummvm master -> 0ec258f5ffcfe75ad5e83f32c7b1b841280bc654
bonki
bonki at users.noreply.github.com
Sun Feb 11 12:01:49 CET 2018
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
43053644a8 TUCKER: Remove superfluous arguments in loadBudSpr et al
0ec258f5ff TUCKER: Fix original game glitch in Bud animation sequence 8
Commit: 43053644a8088deacd067616fb9b4f48bcb07878
https://github.com/scummvm/scummvm/commit/43053644a8088deacd067616fb9b4f48bcb07878
Author: Adrian Frühwirth (bonki at users.noreply.github.com)
Date: 2018-02-11T11:50:52+01:00
Commit Message:
TUCKER: Remove superfluous arguments in loadBudSpr et al
Changed paths:
engines/tucker/resource.cpp
engines/tucker/saveload.cpp
engines/tucker/tucker.cpp
engines/tucker/tucker.h
diff --git a/engines/tucker/resource.cpp b/engines/tucker/resource.cpp
index d7b75e3..2fe26fa 100644
--- a/engines/tucker/resource.cpp
+++ b/engines/tucker/resource.cpp
@@ -380,14 +380,14 @@ void TuckerEngine::loadPanel() {
loadImage((_panelNum == 0) ? "panel1.pcx" : "panel2.pcx", _panelGfxBuf, 0);
}
-void TuckerEngine::loadBudSpr(int startOffset) {
+void TuckerEngine::loadBudSpr() {
int framesCount[20];
memset(framesCount, 0, sizeof(framesCount));
- int endOffset = loadCTable01(0, startOffset, framesCount);
- loadCTable02(0);
+ int endOffset = loadCTable01(framesCount);
+ loadCTable02();
int frame = 0;
int spriteOffset = 0;
- for (int i = startOffset; i < endOffset; ++i) {
+ for (int i = 0; i < endOffset; ++i) {
if (framesCount[frame] == i) {
Common::String filename;
switch (_flagsTable[137]) {
@@ -414,12 +414,12 @@ void TuckerEngine::loadBudSpr(int startOffset) {
}
}
-int TuckerEngine::loadCTable01(int index, int firstSpriteNum, int *framesCount) {
+int TuckerEngine::loadCTable01(int *framesCount) {
loadFile("ctable01.c", _loadTempBuf);
DataTokenizer t(_loadTempBuf, _fileLoadSize);
- int lastSpriteNum = firstSpriteNum;
+ int lastSpriteNum = 0;
int count = 0;
- if (t.findIndex(index)) {
+ if (t.findIndex(0)) {
while (t.findNextToken(kDataTokenDw)) {
const int x = t.getNextInteger();
if (x < 0) {
@@ -448,8 +448,7 @@ int TuckerEngine::loadCTable01(int index, int firstSpriteNum, int *framesCount)
return lastSpriteNum;
}
-void TuckerEngine::loadCTable02(int fl) {
- assert(fl == 0);
+void TuckerEngine::loadCTable02() {
int entry = 0;
int i = 0;
loadFile("ctable02.c", _loadTempBuf);
@@ -461,7 +460,7 @@ void TuckerEngine::loadCTable02(int fl) {
}
_spriteAnimationsTable[entry]._rotateFlag = t.getNextInteger();
int num = t.getNextInteger();
- if (num != fl) {
+ if (num != 0) {
continue;
}
int start = 0;
diff --git a/engines/tucker/saveload.cpp b/engines/tucker/saveload.cpp
index 8ed969c..e48e4fd 100644
--- a/engines/tucker/saveload.cpp
+++ b/engines/tucker/saveload.cpp
@@ -90,7 +90,7 @@ Common::Error TuckerEngine::loadGameState(int num) {
} else {
_nextLocationNum = _locationNum;
setBlackPalette();
- loadBudSpr(0);
+ loadBudSpr();
_forceRedrawPanelItems = true;
}
}
diff --git a/engines/tucker/tucker.cpp b/engines/tucker/tucker.cpp
index 06c7368..8c49aaa 100644
--- a/engines/tucker/tucker.cpp
+++ b/engines/tucker/tucker.cpp
@@ -375,7 +375,7 @@ void TuckerEngine::mainLoop() {
_currentSaveLoadGameState = 1;
- loadBudSpr(0);
+ loadBudSpr();
loadCursor();
setCursorNum(_cursorNum);
setCursorType(_cursorType);
@@ -397,7 +397,7 @@ void TuckerEngine::mainLoop() {
do {
++_syncCounter;
if (_flagsTable[137] != _flagsTable[138]) {
- loadBudSpr(0);
+ loadBudSpr();
_flagsTable[138] = _flagsTable[137];
}
if (_syncCounter >= 2) {
diff --git a/engines/tucker/tucker.h b/engines/tucker/tucker.h
index 7c5a305..fd508c1 100644
--- a/engines/tucker/tucker.h
+++ b/engines/tucker/tucker.h
@@ -600,13 +600,13 @@ protected:
void loadCharsetHelper();
void loadCharSizeDta();
void loadPanel();
- void loadBudSpr(int startOffset);
- int loadCTable01(int index, int firstSpriteNum, int *framesCount);
- void loadCTable02(int fl);
+ void loadBudSpr();
+ int loadCTable01(int *framesCount);
+ void loadCTable02();
void loadLoc();
void loadObj();
void loadData();
- int loadDataHelper(int offset, int index);
+ int loadDataHelper(int offset, int index);
void loadPanObj();
void loadData3();
void loadData4();
Commit: 0ec258f5ffcfe75ad5e83f32c7b1b841280bc654
https://github.com/scummvm/scummvm/commit/0ec258f5ffcfe75ad5e83f32c7b1b841280bc654
Author: Adrian Frühwirth (bonki at users.noreply.github.com)
Date: 2018-02-11T11:58:26+01:00
Commit Message:
TUCKER: Fix original game glitch in Bud animation sequence 8
Fixes Trac#10430.
Changed paths:
engines/tucker/resource.cpp
diff --git a/engines/tucker/resource.cpp b/engines/tucker/resource.cpp
index 2fe26fa..82be9ab 100644
--- a/engines/tucker/resource.cpp
+++ b/engines/tucker/resource.cpp
@@ -430,10 +430,20 @@ int TuckerEngine::loadCTable01(int *framesCount) {
continue;
}
const int y = t.getNextInteger();
- SpriteFrame *c = &_spriteFramesTable[lastSpriteNum++];
+ SpriteFrame *c = &_spriteFramesTable[lastSpriteNum];
c->_sourceOffset = y * 320 + x;
c->_xSize = t.getNextInteger();
c->_ySize = t.getNextInteger();
+
+ // WORKAROUND: original game glitch
+ // The sprite grab animation table incorrectly states a height of 24
+ // pixels for sprite number 57 while the correct size is 54 pixels.
+ // This fixes a glitch in animation sequence 8 (the only to use sprite 57)
+ // which gets triggered when picking up the nail in front of the museum.
+ // Fixes Trac#10430
+ if (lastSpriteNum == 57)
+ c->_ySize = 54;
+
c->_xOffset = t.getNextInteger();
if (c->_xOffset > 300) {
c->_xOffset -= 500;
@@ -442,6 +452,7 @@ int TuckerEngine::loadCTable01(int *framesCount) {
if (c->_yOffset > 300) {
c->_yOffset -= 500;
}
+ ++lastSpriteNum;
}
}
framesCount[count] = -1;
More information about the Scummvm-git-logs
mailing list