[Scummvm-git-logs] scummvm master -> 7d92de14dabe214097cf67fcb89f43fe5757d7d7
yuv422
noreply at scummvm.org
Sat Oct 19 11:09:57 UTC 2024
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
7144f7beb7 DARKSEED: Fix walking down front steps.
3b73b77ba2 DARKSEED: Fix opening library door
7d92de14da DARKSEED: Fix picking up package from front steps
Commit: 7144f7beb745b1f916fad6ee348c1d03005a285f
https://github.com/scummvm/scummvm/commit/7144f7beb745b1f916fad6ee348c1d03005a285f
Author: Eric Fry (yuv422 at reversedgames.com)
Date: 2024-10-19T22:07:09+11:00
Commit Message:
DARKSEED: Fix walking down front steps.
Changed paths:
engines/darkseed/animation.cpp
engines/darkseed/darkseed.cpp
diff --git a/engines/darkseed/animation.cpp b/engines/darkseed/animation.cpp
index e8bc745312c..04dee5456b1 100644
--- a/engines/darkseed/animation.cpp
+++ b/engines/darkseed/animation.cpp
@@ -696,10 +696,11 @@ void Animation::updateAnimation() {
case 53:
case 54:
case 55:
- case 56:
- advanceAnimationFrame((_otherNspAnimationType_maybe - 53) & 1);
+ case 56: {
+ int stairsIdx = (_otherNspAnimationType_maybe - 53) & 1;
+ advanceAnimationFrame(stairsIdx);
if (!_objRestarted) {
- _player->_frameIdx = _player->_animations.getAnimAt(0)._frameNo[_player->_animations.getAnimAt(0)._frameNo[_animIndexTbl[0]]];
+ _player->_frameIdx = _player->_animations.getAnimAt(stairsIdx)._frameNo[_animIndexTbl[stairsIdx]];
} else {
switch (_otherNspAnimationType_maybe) {
case 53:
@@ -731,6 +732,7 @@ void Animation::updateAnimation() {
// PlaySound(1,5,-1);
}
break;
+ }
case 57:
case 58:
advanceAnimationFrame((_otherNspAnimationType_maybe - 57) & 1);
diff --git a/engines/darkseed/darkseed.cpp b/engines/darkseed/darkseed.cpp
index 1fb37c83ded..27cd419a2b2 100644
--- a/engines/darkseed/darkseed.cpp
+++ b/engines/darkseed/darkseed.cpp
@@ -1084,7 +1084,7 @@ void DarkseedEngine::changeToRoom(int newRoomNumber, bool placeDirectly) { // AK
_animation->setupOtherNspAnimation(0, 16);
} else if (newRoomNumber == 10 && _previousRoomNumber == 6) {
_player->loadAnimations("rm10strs.nsp");
- _animation->setupOtherNspAnimation(1, 54);
+ _animation->setupOtherNspAnimation(1, 54); // walk down front steps
} else if (newRoomNumber == 11 && _previousRoomNumber == 15) {
_player->loadAnimations("rm11strs.nsp");
_animation->setupOtherNspAnimation(1, 56);
Commit: 3b73b77ba2c8bf8be78898606506d5f41f7a9918
https://github.com/scummvm/scummvm/commit/3b73b77ba2c8bf8be78898606506d5f41f7a9918
Author: Eric Fry (yuv422 at reversedgames.com)
Date: 2024-10-19T22:07:09+11:00
Commit Message:
DARKSEED: Fix opening library door
Changed paths:
engines/darkseed/animation.cpp
engines/darkseed/darkseed.cpp
diff --git a/engines/darkseed/animation.cpp b/engines/darkseed/animation.cpp
index 04dee5456b1..36c0e8e57eb 100644
--- a/engines/darkseed/animation.cpp
+++ b/engines/darkseed/animation.cpp
@@ -71,7 +71,7 @@ void Animation::setupOtherNspAnimation(int nspAnimIdx, int animId) {
case 24:
case 25:
case 65:
- _scaleSequence = 1;
+ _scaleSequence = true;
break;
case 6: // stairs
_nsp_sprite_scaling_y_position = 0xbe;
@@ -463,7 +463,7 @@ void Animation::updateAnimation() {
// Open doors
advanceAnimationFrame(0);
if (!_objRestarted) {
- _player->_frameIdx = _player->_animations.getAnimAt(0)._frameNo[_player->_animations.getAnimAt(0)._frameNo[_animIndexTbl[0]]];
+ _player->_frameIdx = _player->_animations.getAnimAt(0)._frameNo[_animIndexTbl[0]];
} else {
_player->updateSprite();
if (_otherNspAnimationType_maybe == 14) {
diff --git a/engines/darkseed/darkseed.cpp b/engines/darkseed/darkseed.cpp
index 27cd419a2b2..f78c56ba48f 100644
--- a/engines/darkseed/darkseed.cpp
+++ b/engines/darkseed/darkseed.cpp
@@ -1413,6 +1413,7 @@ void DarkseedEngine::updateDisplay() { // AKA ServiceRoom
_player->_flipSprite);
}
if (_animation->_isPlayingAnimation_maybe && _animation->_otherNspAnimationType_maybe == 14 && _animation->_animIndexTbl[0] > 1) {
+ // opening doors.
if (_objectVar.getObjectRunningCode(140) == 0 || _room->_roomNumber != 6) {
if (_room->_roomNumber == 6 && _player->_isAutoWalkingToBed) {
const Sprite &animSprite = _player->_animations.getSpriteAt(8);
@@ -1424,7 +1425,7 @@ void DarkseedEngine::updateDisplay() { // AKA ServiceRoom
const Sprite &animSprite = _player->_animations.getSpriteAt(6);
_sprites.addSpriteToDrawList(369, 119, &animSprite, 255, animSprite._width, animSprite._height, _player->_flipSprite);
} else if (_room->_roomNumber == 12) {
- const Sprite &animSprite = _player->_animations.getSpriteAt(6);
+ const Sprite &animSprite = _player->_animations.getSpriteAt(7);
_sprites.addSpriteToDrawList(252, 121, &animSprite, 255, animSprite._width, animSprite._height, _player->_flipSprite);
}
} else {
Commit: 7d92de14dabe214097cf67fcb89f43fe5757d7d7
https://github.com/scummvm/scummvm/commit/7d92de14dabe214097cf67fcb89f43fe5757d7d7
Author: Eric Fry (yuv422 at reversedgames.com)
Date: 2024-10-19T22:07:09+11:00
Commit Message:
DARKSEED: Fix picking up package from front steps
Changed paths:
engines/darkseed/darkseed.cpp
diff --git a/engines/darkseed/darkseed.cpp b/engines/darkseed/darkseed.cpp
index f78c56ba48f..f4c9e81a4ba 100644
--- a/engines/darkseed/darkseed.cpp
+++ b/engines/darkseed/darkseed.cpp
@@ -528,7 +528,9 @@ void DarkseedEngine::handleInput() {
_player->_walkToSequencePoint = _cursor.getPosition();
_player->_sequenceRotation = -1;
Common::Point currentCursorPos = _cursor.getPosition();
- int objNum = _room->_roomObj[roomObjIdx].objNum;
+ // TODO check this logic with original it looks like there might be a buffer overrun
+ // in the original logic when roomObjIdx >= 30 eg package.
+ int objNum = roomObjIdx >= 30 ? 0 : _room->_roomObj[roomObjIdx].objNum;
if (walkToDirTbl[objNum] != 4) {
_player->_sequenceRotation = walkToDirTbl[objNum];
_cursor.updatePosition(walkToXTbl[objNum], walkToYTbl[objNum]);
@@ -820,8 +822,8 @@ void DarkseedEngine::handleInput() {
int objIdx = _room->getObjectUnderCursor();
_cursor.setPosition(currentCursorPos);
if (objIdx != -1) {
- int objType = _room->_roomObj[objIdx].type;
- int objNum = _room->_roomObj[objIdx].objNum;
+ int objType = objIdx >= 30 ? 0 : _room->_roomObj[objIdx].type;
+ int objNum = objIdx >= 30 ? 0 : _room->_roomObj[objIdx].objNum;
if (((objType != 4 && objType != 0 && objType < 10) || objNum > 5 || _room->_collisionType != 0)) {
if (_room->_collisionType == 0) {
handleObjCollision(objNum);
More information about the Scummvm-git-logs
mailing list