Mercurial > mm7
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 } |