aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
Diffstat (limited to 'scumm')
-rw-r--r--scumm/intern.h2
-rw-r--r--scumm/script_v100he.cpp2
-rw-r--r--scumm/script_v90he.cpp2
-rw-r--r--scumm/sprite_he.cpp24
4 files changed, 25 insertions, 5 deletions
diff --git a/scumm/intern.h b/scumm/intern.h
index 0eadbdda53..d152afe668 100644
--- a/scumm/intern.h
+++ b/scumm/intern.h
@@ -916,7 +916,7 @@ protected:
void spriteInfoSet_field_14(int spriteId, int value);
void spriteInfoSet_field_7C(int spriteId, int value);
void spriteInfoSet_field_80(int spriteId, int value);
- void spriteInfoSet_case183(int spriteId);
+ void spriteInfoSet_resetSprite(int spriteId);
void spriteInfoSet_resState(int spriteId, int value);
void spriteInfoSet_tx_ty(int spriteId, int value1, int value2);
void spriteInfoSet_groupNum(int spriteId, int value);
diff --git a/scumm/script_v100he.cpp b/scumm/script_v100he.cpp
index 5c88186193..1a5dd97a95 100644
--- a/scumm/script_v100he.cpp
+++ b/scumm/script_v100he.cpp
@@ -1723,7 +1723,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() {
spriteId++;
for (; spriteId <= _curMaxSpriteId; spriteId++)
- spriteInfoSet_case183(spriteId);
+ spriteInfoSet_resetSprite(spriteId);
break;
case 54:
pop();
diff --git a/scumm/script_v90he.cpp b/scumm/script_v90he.cpp
index 144faf79c4..c3f1e29f89 100644
--- a/scumm/script_v90he.cpp
+++ b/scumm/script_v90he.cpp
@@ -1271,7 +1271,7 @@ void ScummEngine_v90he::o90_setSpriteInfo() {
spriteId++;
for (; spriteId <= _curMaxSpriteId; spriteId++)
- spriteInfoSet_case183(spriteId);
+ spriteInfoSet_resetSprite(spriteId);
break;
default:
error("o90_setSpriteInfo: Unknown case %d", subOp);
diff --git a/scumm/sprite_he.cpp b/scumm/sprite_he.cpp
index cfcaa299ed..0c8f1a042d 100644
--- a/scumm/sprite_he.cpp
+++ b/scumm/sprite_he.cpp
@@ -502,10 +502,30 @@ void ScummEngine_v90he::spriteInfoSet_resetClassFlags(int spriteId) {
_spriteTable[spriteId].class_flags = 0;
}
-void ScummEngine_v90he::spriteInfoSet_case183(int spriteId) {
+void ScummEngine_v90he::spriteInfoSet_resetSprite(int spriteId) {
checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
- // TODO
+ _spriteTable[spriteId].rot_angle = 0;
+ _spriteTable[spriteId].zoom = 0;
+
+ spriteInfoSet_addImageToList(spriteId, 1, &spriteId);
+
+ _spriteTable[spriteId].field_54 = 0;
+ _spriteTable[spriteId].tx = 0;
+ _spriteTable[spriteId].ty = 0;
+
+ _spriteTable[spriteId].flags &= ~(kSF07 | kSFRotated);
+ _spriteTable[spriteId].flags |= kSF01 | kSFNeedRedraw;
+ _spriteTable[spriteId].dx = 0;
+ _spriteTable[spriteId].dy = 0;
+ _spriteTable[spriteId].field_44 = 0;
+ _spriteTable[spriteId].group_num = 0;
+ _spriteTable[spriteId].field_78 = 0;
+ _spriteTable[spriteId].field_64 = 0;
+ _spriteTable[spriteId].class_flags = 0;
+ _spriteTable[spriteId].field_14 = 0;
+ _spriteTable[spriteId].field_7C = 0;
+ _spriteTable[spriteId].field_80 = 0;
}
void ScummEngine_v90he::spriteInfoSet_addImageToList(int spriteId, int imageNum, int *spriteIdptr) {