1212using System . Runtime . InteropServices ;
1313using System . Xml . Schema ;
1414using ZXBasicStudio . Common ;
15+ using ZXBasicStudio . DocumentEditors . ZXGraphics . log ;
1516using ZXBasicStudio . DocumentEditors . ZXGraphics . neg ;
1617using ZXBasicStudio . Extensions ;
1718
@@ -430,7 +431,14 @@ public async void Paste()
430431
431432 if ( cbPatterns . Length == 1 )
432433 {
433- SpriteData . Patterns [ SpriteData . CurrentFrame ] . Data = cbPatterns [ 0 ] . Data ;
434+ if ( cbPatterns [ 0 ] . RawData == null )
435+ {
436+ SpriteData . Patterns [ SpriteData . CurrentFrame ] . RawData = ServiceLayer . PointData2RawData ( cbPatterns [ 0 ] . Data , 8 , 8 ) ;
437+ }
438+ else
439+ {
440+ SpriteData . Patterns [ SpriteData . CurrentFrame ] . RawData = cbPatterns [ 0 ] . RawData ;
441+ }
434442 }
435443 else
436444 {
@@ -443,19 +451,24 @@ public async void Paste()
443451 // Paste from PointData
444452 int ox = 0 ;
445453 int oy = 0 ;
454+ int dir = 0 ;
446455 for ( int n = 0 ; n < cbPatterns . Length ; n ++ )
447456 {
457+ //int d1 = (n / SpriteData.Width);
458+ //int d2 = (d1 * SpriteData.Width) - n;
448459 for ( int py = 0 ; py < 8 ; py ++ )
449460 {
450461 for ( int px = 0 ; px < 8 ; px ++ )
451462 {
452463 var po = cbPatterns [ n ] . Data . FirstOrDefault ( d => d . X == px && d . Y == py ) ;
453464 if ( po != null )
454465 {
455- var pd = pat2 . Data . FirstOrDefault ( d => d . X == px + ox && d . Y == py + oy ) ;
456- if ( pd != null )
466+ dir = ( ( oy + py ) * SpriteData . Width ) + ( ox + px ) ;
467+
468+ if ( dir < pattern . RawData . Length )
457469 {
458- pd . ColorIndex = po . ColorIndex ;
470+ SpriteData . Patterns [ SpriteData . CurrentFrame ] . RawData [ dir ] = po . ColorIndex ;
471+ //pattern.RawData[dir] = po.ColorIndex;
459472 }
460473 }
461474 }
@@ -467,7 +480,7 @@ public async void Paste()
467480 oy += 8 ;
468481 }
469482 }
470- SpriteData . Patterns [ SpriteData . CurrentFrame ] . Data = pat2 . Data ;
483+ // SpriteData.Patterns[SpriteData.CurrentFrame].Data = pat2.Data;
471484 }
472485 else
473486 {
0 commit comments