diff options
Diffstat (limited to 'scumm/sprite_he.cpp')
-rw-r--r-- | scumm/sprite_he.cpp | 24 |
1 files changed, 22 insertions, 2 deletions
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) { |