[Scummvm-git-logs] scummvm master -> d5d9088fa1ffa57c3161c93151e5f0515d380b81
sev-
sev at scummvm.org
Sun Feb 9 10:07:29 UTC 2020
This automated email contains information about 2 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
5bcce00963 DIRECTOR: Added more debug output
d5d9088fa1 DIRECTOR: Simplify code
Commit: 5bcce009633ebf3319da0290389893e4b162aa79
https://github.com/scummvm/scummvm/commit/5bcce009633ebf3319da0290389893e4b162aa79
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-02-09T11:07:19+01:00
Commit Message:
DIRECTOR: Added more debug output
Changed paths:
engines/director/frame.cpp
diff --git a/engines/director/frame.cpp b/engines/director/frame.cpp
index 8e06ef9..3a0e40d 100644
--- a/engines/director/frame.cpp
+++ b/engines/director/frame.cpp
@@ -627,6 +627,8 @@ void Frame::renderSprites(Graphics::ManagedSurface &surface, bool renderTrail) {
// this needs precedence to be hit first... D3 does something really tricky with cast IDs for shapes.
// I don't like this implementation 100% as the 'cast' above might not actually hit a member and be null?
+ debugC(1, kDebugImages, "Frame::renderSprites(): Channel: %d castType: %d", i, castType);
+
if (castType == kCastShape) {
renderShape(surface, i);
} else if (castType == kCastText || castType == kCastRTE) {
Commit: d5d9088fa1ffa57c3161c93151e5f0515d380b81
https://github.com/scummvm/scummvm/commit/d5d9088fa1ffa57c3161c93151e5f0515d380b81
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2020-02-09T11:07:19+01:00
Commit Message:
DIRECTOR: Simplify code
Changed paths:
engines/director/frame.cpp
diff --git a/engines/director/frame.cpp b/engines/director/frame.cpp
index 3a0e40d..eb135d2 100644
--- a/engines/director/frame.cpp
+++ b/engines/director/frame.cpp
@@ -582,86 +582,87 @@ void Frame::playTransition(Score *score) {
void Frame::renderSprites(Graphics::ManagedSurface &surface, bool renderTrail) {
for (uint16 i = 0; i < _numChannels; i++) {
- if (_sprites[i]->_enabled) {
- if ((_sprites[i]->_trails == 0 && renderTrail) || (_sprites[i]->_trails == 1 && !renderTrail))
- continue;
+ if (!_sprites[i]->_enabled)
+ continue;
- CastType castType = kCastTypeNull;
- if (_vm->getVersion() < 4) {
- debugC(1, kDebugImages, "Frame::renderSprites(): Channel: %d type: %d", i, _sprites[i]->_spriteType);
- switch (_sprites[i]->_spriteType) {
- case kBitmapSprite:
- castType = kCastBitmap;
- break;
- case kRectangleSprite:
- case kRoundedRectangleSprite:
- case kOvalSprite:
- case kLineTopBottomSprite:
- case kLineBottomTopSprite:
- case kOutlinedRectangleSprite: // this is actually a mouse-over shape? I don't think it's a real button.
- case kOutlinedRoundedRectangleSprite:
- case kOutlinedOvalSprite:
- case kCastMemberSprite: // Face kit D3
- castType = kCastShape;
- break;
- case kTextSprite:
- castType = kCastText;
- break;
- default:
- warning("Frame::renderSprites(): Unhandled sprite type %d", _sprites[i]->_spriteType);
- break;
- }
- } else {
- if (!_vm->getCurrentScore()->_loadedCast->contains(_sprites[i]->_castId)) {
- if (!_vm->getSharedScore() || !_vm->getSharedScore()->_loadedCast->contains(_sprites[i]->_castId)) {
- debugC(1, kDebugImages, "Frame::renderSprites(): Cast id %d not found", _sprites[i]->_castId);
- continue;
- } else {
- debugC(1, kDebugImages, "Frame::renderSprites(): Getting cast id %d from shared cast", _sprites[i]->_castId);
- castType = _vm->getSharedScore()->_loadedCast->getVal(_sprites[i]->_castId)->_type;
- }
+ if ((_sprites[i]->_trails == 0 && renderTrail) || (_sprites[i]->_trails == 1 && !renderTrail))
+ continue;
+
+ CastType castType = kCastTypeNull;
+ if (_vm->getVersion() < 4) {
+ debugC(1, kDebugImages, "Frame::renderSprites(): Channel: %d type: %d", i, _sprites[i]->_spriteType);
+ switch (_sprites[i]->_spriteType) {
+ case kBitmapSprite:
+ castType = kCastBitmap;
+ break;
+ case kRectangleSprite:
+ case kRoundedRectangleSprite:
+ case kOvalSprite:
+ case kLineTopBottomSprite:
+ case kLineBottomTopSprite:
+ case kOutlinedRectangleSprite: // this is actually a mouse-over shape? I don't think it's a real button.
+ case kOutlinedRoundedRectangleSprite:
+ case kOutlinedOvalSprite:
+ case kCastMemberSprite: // Face kit D3
+ castType = kCastShape;
+ break;
+ case kTextSprite:
+ castType = kCastText;
+ break;
+ default:
+ warning("Frame::renderSprites(): Unhandled sprite type %d", _sprites[i]->_spriteType);
+ break;
+ }
+ } else {
+ if (!_vm->getCurrentScore()->_loadedCast->contains(_sprites[i]->_castId)) {
+ if (!_vm->getSharedScore() || !_vm->getSharedScore()->_loadedCast->contains(_sprites[i]->_castId)) {
+ debugC(1, kDebugImages, "Frame::renderSprites(): Cast id %d not found", _sprites[i]->_castId);
+ continue;
} else {
- castType = _vm->getCurrentScore()->_loadedCast->getVal(_sprites[i]->_castId)->_type;
+ debugC(1, kDebugImages, "Frame::renderSprites(): Getting cast id %d from shared cast", _sprites[i]->_castId);
+ castType = _vm->getSharedScore()->_loadedCast->getVal(_sprites[i]->_castId)->_type;
}
+ } else {
+ castType = _vm->getCurrentScore()->_loadedCast->getVal(_sprites[i]->_castId)->_type;
}
+ }
- // this needs precedence to be hit first... D3 does something really tricky with cast IDs for shapes.
- // I don't like this implementation 100% as the 'cast' above might not actually hit a member and be null?
- debugC(1, kDebugImages, "Frame::renderSprites(): Channel: %d castType: %d", i, castType);
-
- if (castType == kCastShape) {
- renderShape(surface, i);
- } else if (castType == kCastText || castType == kCastRTE) {
- renderText(surface, i, NULL);
- } else if (castType == kCastButton) {
- renderButton(surface, i);
- } else {
- if (!_sprites[i]->_cast || _sprites[i]->_cast->_type != kCastBitmap) {
- warning("Frame::renderSprites(): No cast ID for sprite %d", i);
- continue;
- }
+ // this needs precedence to be hit first... D3 does something really tricky with cast IDs for shapes.
+ // I don't like this implementation 100% as the 'cast' above might not actually hit a member and be null?
+ debugC(1, kDebugImages, "Frame::renderSprites(): Channel: %d castType: %d", i, castType);
- InkType ink;
- if (i == _vm->getCurrentScore()->_currentMouseDownSpriteId)
- ink = kInkTypeReverse;
- else
- ink = _sprites[i]->_ink;
-
- BitmapCast *bc = (BitmapCast *)_sprites[i]->_cast;
-
- int32 regX = bc->_regX;
- int32 regY = bc->_regY;
- int32 rectLeft = bc->_initialRect.left;
- int32 rectTop = bc->_initialRect.top;
-
- int x = _sprites[i]->_startPoint.x - regX + rectLeft;
- int y = _sprites[i]->_startPoint.y - regY + rectTop;
- int height = _sprites[i]->_height;
- int width = _vm->getVersion() > 4 ? bc->_initialRect.width() : _sprites[i]->_width;
- Common::Rect drawRect(x, y, x + width, y + height);
- addDrawRect(i, drawRect);
- inkBasedBlit(surface, *(bc->_surface), ink, drawRect);
+ if (castType == kCastShape) {
+ renderShape(surface, i);
+ } else if (castType == kCastText || castType == kCastRTE) {
+ renderText(surface, i, NULL);
+ } else if (castType == kCastButton) {
+ renderButton(surface, i);
+ } else {
+ if (!_sprites[i]->_cast || _sprites[i]->_cast->_type != kCastBitmap) {
+ warning("Frame::renderSprites(): No cast ID for sprite %d", i);
+ continue;
}
+
+ InkType ink;
+ if (i == _vm->getCurrentScore()->_currentMouseDownSpriteId)
+ ink = kInkTypeReverse;
+ else
+ ink = _sprites[i]->_ink;
+
+ BitmapCast *bc = (BitmapCast *)_sprites[i]->_cast;
+
+ int32 regX = bc->_regX;
+ int32 regY = bc->_regY;
+ int32 rectLeft = bc->_initialRect.left;
+ int32 rectTop = bc->_initialRect.top;
+
+ int x = _sprites[i]->_startPoint.x - regX + rectLeft;
+ int y = _sprites[i]->_startPoint.y - regY + rectTop;
+ int height = _sprites[i]->_height;
+ int width = _vm->getVersion() > 4 ? bc->_initialRect.width() : _sprites[i]->_width;
+ Common::Rect drawRect(x, y, x + width, y + height);
+ addDrawRect(i, drawRect);
+ inkBasedBlit(surface, *(bc->_surface), ink, drawRect);
}
}
}
More information about the Scummvm-git-logs
mailing list