diff options
Diffstat (limited to 'scumm')
-rw-r--r-- | scumm/intern.h | 2 | ||||
-rw-r--r-- | scumm/script_v100he.cpp | 2 | ||||
-rw-r--r-- | scumm/script_v90he.cpp | 2 | ||||
-rw-r--r-- | scumm/sprite_he.cpp | 24 |
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) { |