1010using System . Linq ;
1111using System . Xml . Schema ;
1212using ZXBasicStudio . Common ;
13+ using ZXBasicStudio . DocumentEditors . ZXGraphics . log ;
1314using ZXBasicStudio . DocumentEditors . ZXGraphics . neg ;
1415using ZXBasicStudio . Extensions ;
1516
@@ -363,8 +364,14 @@ public async void Paste()
363364
364365 if ( cbPatterns . Length == 1 )
365366 {
366- SpriteData . Patterns [ SpriteData . CurrentFrame ] . Data = cbPatterns [ 0 ] . Data ;
367- SpriteData . Patterns [ SpriteData . CurrentFrame ] . RawData = cbPatterns [ 0 ] . RawData ;
367+ if ( cbPatterns [ 0 ] . RawData == null )
368+ {
369+ SpriteData . Patterns [ SpriteData . CurrentFrame ] . RawData = ServiceLayer . PointData2RawData ( cbPatterns [ 0 ] . Data , 8 , 8 ) ;
370+ }
371+ else
372+ {
373+ SpriteData . Patterns [ SpriteData . CurrentFrame ] . RawData = cbPatterns [ 0 ] . RawData ;
374+ }
368375 }
369376 else
370377 {
@@ -377,19 +384,24 @@ public async void Paste()
377384 // Paste from PointData
378385 int ox = 0 ;
379386 int oy = 0 ;
387+ int dir = 0 ;
380388 for ( int n = 0 ; n < cbPatterns . Length ; n ++ )
381389 {
390+ //int d1 = (n / SpriteData.Width);
391+ //int d2 = (d1 * SpriteData.Width) - n;
382392 for ( int py = 0 ; py < 8 ; py ++ )
383393 {
384394 for ( int px = 0 ; px < 8 ; px ++ )
385395 {
386396 var po = cbPatterns [ n ] . Data . FirstOrDefault ( d => d . X == px && d . Y == py ) ;
387397 if ( po != null )
388398 {
389- var pd = pat2 . Data . FirstOrDefault ( d => d . X == px + ox && d . Y == py + oy ) ;
390- if ( pd != null )
399+ dir = ( ( oy + py ) * SpriteData . Width ) + ( ox + px ) ;
400+
401+ if ( dir < pattern . RawData . Length )
391402 {
392- pd . ColorIndex = po . ColorIndex ;
403+ SpriteData . Patterns [ SpriteData . CurrentFrame ] . RawData [ dir ] = po . ColorIndex ;
404+ //pattern.RawData[dir] = po.ColorIndex;
393405 }
394406 }
395407 }
@@ -401,7 +413,7 @@ public async void Paste()
401413 oy += 8 ;
402414 }
403415 }
404- SpriteData . Patterns [ SpriteData . CurrentFrame ] . Data = pat2 . Data ;
416+ // SpriteData.Patterns[SpriteData.CurrentFrame].Data = pat2.Data;
405417 }
406418 else
407419 {
0 commit comments