comparison Render.cpp @ 2097:2b39f6b451f9

Minimap fix
author Ritor1
date Fri, 13 Dec 2013 11:51:51 +0600
parents 115373c2d1cd
children 7810cb3a5fb7
comparison
equal deleted inserted replaced
2096:115373c2d1cd 2097:2b39f6b451f9
3593 v36 = 0i64; 3593 v36 = 0i64;
3594 if ( (signed int)uX < this->raster_clip_x ) 3594 if ( (signed int)uX < this->raster_clip_x )
3595 HIDWORD(v36) = 8; 3595 HIDWORD(v36) = 8;
3596 if ( (signed int)uX > this->raster_clip_z ) 3596 if ( (signed int)uX > this->raster_clip_z )
3597 HIDWORD(v36) |= 4; 3597 HIDWORD(v36) |= 4;
3598
3598 v8 = uY; 3599 v8 = uY;
3599 if ( (signed int)uY < this->raster_clip_y ) 3600 if ( (signed int)uY < this->raster_clip_y )
3600 HIDWORD(v36) |= 2; 3601 HIDWORD(v36) |= 2;
3601 if ( (signed int)uY > this->raster_clip_w ) 3602 if ( (signed int)uY > this->raster_clip_w )
3602 HIDWORD(v36) |= 1; 3603 HIDWORD(v36) |= 1;
3604
3603 v10 = uZ; 3605 v10 = uZ;
3604 if ( (signed int)uZ < this->raster_clip_x ) 3606 if ( (signed int)uZ < this->raster_clip_x )
3605 LODWORD(v36) = 8; 3607 LODWORD(v36) = 8;
3606 if ( (signed int)uZ > this->raster_clip_z ) 3608 if ( (signed int)uZ > this->raster_clip_z )
3607 LODWORD(v36) = v36 | 4; 3609 LODWORD(v36) = v36 | 4;
3610
3608 v11 = uW; 3611 v11 = uW;
3609 if ( (signed int)uW < this->raster_clip_y ) 3612 if ( (signed int)uW < this->raster_clip_y )
3610 LODWORD(v36) = v36 | 2; 3613 LODWORD(v36) = v36 | 2;
3611 if ( (signed int)uW > this->raster_clip_w ) 3614 if ( (signed int)uW > this->raster_clip_w )
3612 LODWORD(v36) = v36 | 1; 3615 LODWORD(v36) = v36 | 1;
3616
3613 LOBYTE(v12) = v36; 3617 LOBYTE(v12) = v36;
3614 if ( (unsigned int)v36 & HIDWORD(v36) ) 3618 if ( (unsigned int)v36 & HIDWORD(v36) )
3615 return v12; 3619 return v12;
3616 if ( !v36 ) 3620 if ( !v36 )
3617 { 3621 {
3639 uXa = -uXa; 3643 uXa = -uXa;
3640 v24 = -1; 3644 v24 = -1;
3641 } 3645 }
3642 v25 = 0; 3646 v25 = 0;
3643 3647
3644 //__debugbreak(); //target sruface will most likely be 32bits/pixel, but this sub awaits 16 bits
3645 v26 = (unsigned __int16 *)this->pTargetSurface; 3648 v26 = (unsigned __int16 *)this->pTargetSurface;
3649 int y = 0;
3650 int x = 0;
3646 if ( v26 ) 3651 if ( v26 )
3647 { 3652 {
3648 if ( (signed int)uXa <= v23 )//рисуем вертикальную линию 3653 if ( (signed int)uXa <= v23 )//рисуем вертикальную линию
3649 { 3654 {
3650 v30 = v23 + 1; 3655 v30 = v23 + 1;
3651 if ( v30 > 0 ) 3656 if ( v30 > 0 )
3652 { 3657 {
3653 v31 = 2 * v24; 3658 v31 = 2 * v24;
3654 v32 = 2 * v21; 3659 v32 = 2 * v21;
3655 v12 = (int)&v26[v12]; 3660 v12 = (int)&v26[v12];
3656 int y = 0;
3657 for ( v30; v30; --v30 ) 3661 for ( v30; v30; --v30 )
3658 { 3662 {
3659 v25 += uXa; 3663 v25 += uXa;
3660 //*(short *)v12 = uColor; 3664 //*(short *)v12 = uColor;
3661 //v12 += v32; 3665 //v12 += v32;
3662 WritePixel16(uX + v25, uY + y, uColor); 3666 WritePixel16(uX + x, uY + y, uColor);
3663 if ( v32 >= 0 ) 3667 if ( v32 >= 0 )
3664 y += 1; 3668 y += 1;
3665 else 3669 else
3666 y -= 1; 3670 y -= 1;
3667 if ( v25 > 0 ) 3671 if ( v25 > 0 )
3668 { 3672 {
3669 v25 -= uYb; 3673 v25 -= uYb;
3670 v12 += v31; 3674 //v12 += v31;
3675 if ( v31 >= 0 )
3676 x += 1;
3677 else
3678 x -= 1;
3671 } 3679 }
3672 } 3680 }
3673 } 3681 }
3674 } 3682 }
3675 else//рисуем горизонтальную линию 3683 else//рисуем горизонтальную линию
3684 for ( v27; v27; --v27 ) 3692 for ( v27; v27; --v27 )
3685 { 3693 {
3686 v25 += uYb; 3694 v25 += uYb;
3687 //*(short *)v12 = uColor; 3695 //*(short *)v12 = uColor;
3688 //v12 += v29; 3696 //v12 += v29;
3689 WritePixel16(uX + x, uY + v25, uColor); 3697 WritePixel16(uX + x, uY + y, uColor);
3690 if ( v29 >= 0 ) 3698 if ( v29 >= 0 )
3691 x += 1; 3699 x += 1;
3692 else 3700 else
3693 x -= 1; 3701 x -= 1;
3694 if ( v25 > (signed int)uXa ) 3702 if ( v25 > (signed int)uXa )
3695 { 3703 {
3696 v25 -= uXa; 3704 v25 -= uXa;
3697 v12 += v28; 3705 //v12 += v28;
3706 if ( v28 >= 0 )
3707 y += 1;
3708 else
3709 y -= 1;
3698 } 3710 }
3699 } 3711 }
3700 } 3712 }
3701 } 3713 }
3702 } 3714 }