diff options
author | Travis Howell | 2005-02-26 04:20:47 +0000 |
---|---|---|
committer | Travis Howell | 2005-02-26 04:20:47 +0000 |
commit | 6d7935cc6bc999975ebc0b26656f26435c775fa8 (patch) | |
tree | 1ae7f1a6c474f20b3a7f0bbb90da7611d34b6813 /scumm | |
parent | 2689832d75095e00d7a49cf53a73b75b3fcab682 (diff) | |
download | scummvm-rg350-6d7935cc6bc999975ebc0b26656f26435c775fa8.tar.gz scummvm-rg350-6d7935cc6bc999975ebc0b26656f26435c775fa8.tar.bz2 scummvm-rg350-6d7935cc6bc999975ebc0b26656f26435c775fa8.zip |
Revert that last change, mixed functions.
svn-id: r16923
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 | 93 |
4 files changed, 48 insertions, 51 deletions
diff --git a/scumm/intern.h b/scumm/intern.h index c7077c411a..fb9e44db84 100644 --- a/scumm/intern.h +++ b/scumm/intern.h @@ -963,7 +963,7 @@ protected: void spriteGroupSet_case56(int spriteGroupId); void spritesAllocTables(int numSprites, int numGroups, int numMaxSprites); - void spritesResetSpriteGroup(int spriteGroupId); + void spritesResetGroup(int spriteGroupId); void spritesResetTables(bool refreshScreen); void spriteGroupCheck(int spriteGroupId); void spriteMarkIfInGroup(int spriteGroupId, uint32 flags); diff --git a/scumm/script_v100he.cpp b/scumm/script_v100he.cpp index abc9569232..5c08f46655 100644 --- a/scumm/script_v100he.cpp +++ b/scumm/script_v100he.cpp @@ -945,7 +945,7 @@ void ScummEngine_v100he::o100_setSpriteGroupInfo() { if (!_curSpriteGroupId) break; - spritesResetSpriteGroup(_curSpriteGroupId); + spritesResetGroup(_curSpriteGroupId); break; case 54: // dummy case diff --git a/scumm/script_v90he.cpp b/scumm/script_v90he.cpp index 4684e88171..cb9d40c9d8 100644 --- a/scumm/script_v90he.cpp +++ b/scumm/script_v90he.cpp @@ -1519,7 +1519,7 @@ void ScummEngine_v90he::o90_setSpriteGroupInfo() { if (!_curSpriteGroupId) break; - spritesResetSpriteGroup(_curSpriteGroupId); + spritesResetGroup(_curSpriteGroupId); break; default: error("o90_setSpriteGroupInfo: Unknown case %d", subOp); diff --git a/scumm/sprite_he.cpp b/scumm/sprite_he.cpp index 5a71f65611..08b99b49eb 100644 --- a/scumm/sprite_he.cpp +++ b/scumm/sprite_he.cpp @@ -990,13 +990,50 @@ void ScummEngine_v90he::spritesAllocTables(int numSprites, int numGroups, int nu _imageListStack = (uint16 *)malloc((_varMaxSprites + 1) * sizeof(uint16)); } -void ScummEngine_v90he::spritesResetSpriteGroup(int spriteGroupId) { - checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d"); +void ScummEngine_v90he::spritesResetGroup(int spriteGroupId) { + int i; - for (int i = 1; i < _varNumSprites; i++) { - if (_spriteTable[i].group_num == spriteGroupId) - spriteInfoSet_resetSprite(i); + SpriteGroup *spg = &_spriteGroups[spriteGroupId]; + checkRange(_varNumSpriteGroups, 1, spriteGroupId, "Invalid sprite group %d"); + if (spg->field_10 != 0) { + spg->field_10 = 0; + spriteGroupCheck(spriteGroupId); + for (i = 0; i < _numSpritesToProcess; ++i) { + SpriteInfo *spi = _activeSpritesTable[i]; + if (spi->group_num == spriteGroupId) { + spi->flags |= kSFChanged | kSFNeedRedraw; + } + } + } + if (spg->tx != 0 || spg->ty != 0) { + spg->tx = spg->ty = 0; + spriteGroupCheck(spriteGroupId); + for (i = 0; i < _numSpritesToProcess; ++i) { + SpriteInfo *spi = _activeSpritesTable[i]; + if (spi->group_num == spriteGroupId) { + spi->flags |= kSFChanged | kSFNeedRedraw; + } + } + } + spg->flags &= ~kSGF01; + spriteMarkIfInGroup(spriteGroupId, kSFChanged | kSFNeedRedraw); + if (spg->field_20 != 0) { + spriteGroupCheck(spriteGroupId); + for (i = 0; i < _numSpritesToProcess; ++i) { + SpriteInfo *spi = _activeSpritesTable[i]; + if (spi->group_num == spriteGroupId) { + spi->flags |= kSFChanged | kSFNeedRedraw; + } + } } + spriteGroupCheck(spriteGroupId); + spg->scaling = 0; + spg->scale_x = 0x3F800000; + spg->field_30 = 0; + spg->field_34 = 0; + spg->scale_y = 0x3F800000; + spg->field_38 = 0; + spg->field_3C = 0; } void ScummEngine_v90he::spritesResetTables(bool refreshScreen) { @@ -1007,49 +1044,9 @@ void ScummEngine_v90he::spritesResetTables(bool refreshScreen) { } memset(_spriteTable, 0, (_varNumSprites + 1) * sizeof(SpriteInfo)); memset(_spriteGroups, 0, (_varNumSpriteGroups + 1) * sizeof(SpriteGroup)); - for (int curGrp = 1; curGrp < _varNumSpriteGroups; ++curGrp) { - SpriteGroup *spg = &_spriteGroups[curGrp]; - checkRange(_varNumSpriteGroups, 1, curGrp, "Invalid sprite group %d"); - if (spg->field_10) { - spg->field_10 = 0; - spriteGroupCheck(curGrp); - for (i = 0; i < _numSpritesToProcess; ++i) { - SpriteInfo *spi = _activeSpritesTable[i]; - if (spi->group_num == curGrp) { - spi->flags |= kSFChanged | kSFNeedRedraw; - } - } - } - if (spg->tx || spg->ty) { - spg->tx = spg->ty = 0; - spriteGroupCheck(curGrp); - for (i = 0; i < _numSpritesToProcess; ++i) { - SpriteInfo *spi = _activeSpritesTable[i]; - if (spi->group_num == curGrp) { - spi->flags |= kSFChanged | kSFNeedRedraw; - } - } - } - spg->flags &= ~kSGF01; - spriteMarkIfInGroup(curGrp, kSFChanged | kSFNeedRedraw); - if (spg->field_20 != 0) { - spriteGroupCheck(curGrp); - for (i = 0; i < _numSpritesToProcess; ++i) { - SpriteInfo *spi = _activeSpritesTable[i]; - if (spi->group_num == curGrp) { - spi->flags |= kSFChanged | kSFNeedRedraw; - } - } - } - spriteGroupCheck(curGrp); - spg->scaling = 0; - spg->scale_x = 0x3F800000; - spg->field_30 = 0; - spg->field_34 = 0; - spg->scale_y = 0x3F800000; - spg->field_38 = 0; - spg->field_3C = 0; - } + for (int curGrp = 1; curGrp < _varNumSpriteGroups; ++curGrp) + spritesResetGroup(curGrp); + if (refreshScreen) { gdi.copyVirtScreenBuffers(Common::Rect(_screenWidth, _screenHeight)); } |