|
@@ -152,6 +152,29 @@ namespace QGears
|
|
|
stream->skip( 2 * 2 ); // 2 * uint16 unused;
|
|
stream->skip( 2 * 2 ); // 2 * uint16 unused;
|
|
|
m_layer_index = layer_index;
|
|
m_layer_index = layer_index;
|
|
|
readVector( stream, pDest->sprites, sprite_count );
|
|
readVector( stream, pDest->sprites, sprite_count );
|
|
|
|
|
+
|
|
|
|
|
+ removeBuggySprites( pDest->sprites );
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ //---------------------------------------------------------------------
|
|
|
|
|
+ void
|
|
|
|
|
+ BackgroundFileSerializer::removeBuggySprites( SpriteList &sprites )
|
|
|
|
|
+ {
|
|
|
|
|
+ auto it = sprites.begin();
|
|
|
|
|
+ while (it != sprites.end())
|
|
|
|
|
+ {
|
|
|
|
|
+ const SpriteData &sprite = (*it);
|
|
|
|
|
+
|
|
|
|
|
+ if (std::abs(sprite.dst.x) > SPRITE_DST_MAX
|
|
|
|
|
+ || std::abs(sprite.dst.y) > SPRITE_DST_MAX)
|
|
|
|
|
+ {
|
|
|
|
|
+ it = sprites.erase(it);
|
|
|
|
|
+ }
|
|
|
|
|
+ else
|
|
|
|
|
+ {
|
|
|
|
|
+ ++it;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//---------------------------------------------------------------------
|
|
//---------------------------------------------------------------------
|