aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugene Sandulenko2010-09-11 22:40:32 +0000
committerEugene Sandulenko2010-10-12 23:44:36 +0000
commitaf1fcbf71d11ecf1fb4cf8a5e775120d339fa655 (patch)
tree4c14afacd062c1455c4076461e33a211e223d745
parente5ac21dcac9a4c18dd5934b4db19b02db06163ca (diff)
downloadscummvm-rg350-af1fcbf71d11ecf1fb4cf8a5e775120d339fa655.tar.gz
scummvm-rg350-af1fcbf71d11ecf1fb4cf8a5e775120d339fa655.tar.bz2
scummvm-rg350-af1fcbf71d11ecf1fb4cf8a5e775120d339fa655.zip
SWORD25: Major bugfix for vector renderer. Only minor glitches are left
svn-id: r53339
-rw-r--r--engines/sword25/gfx/image/vectorimage.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/engines/sword25/gfx/image/vectorimage.cpp b/engines/sword25/gfx/image/vectorimage.cpp
index 8181059a09..b5497d4afe 100644
--- a/engines/sword25/gfx/image/vectorimage.cpp
+++ b/engines/sword25/gfx/image/vectorimage.cpp
@@ -375,10 +375,14 @@ bool VectorImage::parseDefineShape(uint shapeType, SWFBitStream &bs) {
// Feststellen welche Parameter gesetzt werden
uint32 stateNewStyles = bs.getBits(1);
uint32 stateLineStyle = bs.getBits(1);
- uint32 stateFillStyle0 = bs.getBits(1);
uint32 stateFillStyle1 = bs.getBits(1);
+ uint32 stateFillStyle0 = bs.getBits(1);
uint32 stateMoveTo = bs.getBits(1);
+ uint prevLineStyle = lineStyle;
+ uint prevFillStyle0 = fillStyle0;
+ uint prevFillStyle1 = fillStyle1;
+
// End der Shape-Definition erreicht?
if (!stateNewStyles && !stateLineStyle && !stateFillStyle0 && !stateFillStyle1 && !stateMoveTo) {
endOfShapeDiscovered = true;
@@ -423,7 +427,7 @@ bool VectorImage::parseDefineShape(uint shapeType, SWFBitStream &bs) {
if (stateLineStyle || stateFillStyle0 || stateFillStyle1 || stateMoveTo) {
// Store previous curve if any
if (bezNodes) {
- bez = storeBez(bez, lineStyle, fillStyle0, fillStyle1, &bezNodes, &bezAllocated);
+ bez = storeBez(bez, prevLineStyle, prevFillStyle0, prevFillStyle1, &bezNodes, &bezAllocated);
}
// Start new curve