[Scummvm-git-logs] scummvm master -> b3882595c6a2c1672a960bf1cc3592e3f7e3cd11
AndywinXp
noreply at scummvm.org
Sat Jun 29 20:44:11 UTC 2024
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
b3882595c6 SCUMM: HE100: Fix unimplemented chore redirect frames
Commit: b3882595c6a2c1672a960bf1cc3592e3f7e3cd11
https://github.com/scummvm/scummvm/commit/b3882595c6a2c1672a960bf1cc3592e3f7e3cd11
Author: AndywinXp (andywinxp at gmail.com)
Date: 2024-06-29T22:43:08+02:00
Commit Message:
SCUMM: HE100: Fix unimplemented chore redirect frames
This fixes disappearing actors in Backyard Football 2002.
Changed paths:
engines/scumm/actor.cpp
engines/scumm/actor.h
engines/scumm/actor_he.h
diff --git a/engines/scumm/actor.cpp b/engines/scumm/actor.cpp
index c51210afa99..c176047840c 100644
--- a/engines/scumm/actor.cpp
+++ b/engines/scumm/actor.cpp
@@ -2620,24 +2620,46 @@ bool Actor::actorHitTest(int x, int y) {
#endif
void Actor::startAnimActor(int f) {
- switch (f) {
- case 0x38:
- f = _initFrame;
- break;
- case 0x39:
- f = _walkFrame;
- break;
- case 0x3A:
- f = _standFrame;
- break;
- case 0x3B:
- f = _talkStartFrame;
- break;
- case 0x3C:
- f = _talkStopFrame;
- break;
- default:
- break;
+ if (_vm->_game.heversion > 99) {
+ switch (f) {
+ case HE100_CHORE_REDIRECT_INIT:
+ f = _initFrame;
+ break;
+ case HE100_CHORE_REDIRECT_WALK:
+ f = _walkFrame;
+ break;
+ case HE100_CHORE_REDIRECT_STAND:
+ f = _standFrame;
+ break;
+ case HE100_CHORE_REDIRECT_START_TALK:
+ f = _talkStartFrame;
+ break;
+ case HE100_CHORE_REDIRECT_STOP_TALK:
+ f = _talkStopFrame;
+ break;
+ default:
+ break;
+ }
+ } else {
+ switch (f) {
+ case CHORE_REDIRECT_INIT:
+ f = _initFrame;
+ break;
+ case CHORE_REDIRECT_WALK:
+ f = _walkFrame;
+ break;
+ case CHORE_REDIRECT_STAND:
+ f = _standFrame;
+ break;
+ case CHORE_REDIRECT_START_TALK:
+ f = _talkStartFrame;
+ break;
+ case CHORE_REDIRECT_STOP_TALK:
+ f = _talkStopFrame;
+ break;
+ default:
+ break;
+ }
}
assert(f != 0x3E);
diff --git a/engines/scumm/actor.h b/engines/scumm/actor.h
index b77dc154ebc..d91f710271d 100644
--- a/engines/scumm/actor.h
+++ b/engines/scumm/actor.h
@@ -29,6 +29,12 @@
namespace Scumm {
+#define CHORE_REDIRECT_INIT 56
+#define CHORE_REDIRECT_WALK 57
+#define CHORE_REDIRECT_STAND 58
+#define CHORE_REDIRECT_START_TALK 59
+#define CHORE_REDIRECT_STOP_TALK 60
+
enum {
V12_X_MULTIPLIER = 8,
V12_Y_MULTIPLIER = 2,
diff --git a/engines/scumm/actor_he.h b/engines/scumm/actor_he.h
index 262ad46aa3c..5aa23faf0e8 100644
--- a/engines/scumm/actor_he.h
+++ b/engines/scumm/actor_he.h
@@ -29,6 +29,12 @@ namespace Scumm {
#define ACTOR_GENERAL_FLAG_IGNORE_ERASE 0x00000001
+#define HE100_CHORE_REDIRECT_INIT 1024
+#define HE100_CHORE_REDIRECT_WALK 1025
+#define HE100_CHORE_REDIRECT_STAND 1026
+#define HE100_CHORE_REDIRECT_START_TALK 1027
+#define HE100_CHORE_REDIRECT_STOP_TALK 1028
+
struct HEEraseAuxEntry {
int actor;
int32 x1, y1, x2, y2;
More information about the Scummvm-git-logs
mailing list