/*
    ・・・Q・・・・・・・・・・・Z・p・メ・・・ア    ・ス・ャ8・N・x・E・t・・・E・゚・・ ・・11
                                BohYoh Shibata PREPARATION
*/

void   SetPixel( int x , int y );

void   DrawLine( int x1 , int y1 , int x2 , int y2 )
{
    int     Thresh = 0 , Index ;
    int     Xunit = 1 ;         /* ・w・・・・・フ・・・ェ     */
    int     Yunit = 1 ;         /* ・x・・・・・フ・・・ェ     */
    int     Xdiff = x2 - x1;    /* ・w・・・・・フ・マ・ハ・ハ   */
    int     Ydiff = y2 - y1;    /* ・x・・・・・フ・マ・ハ・ハ   */

    if ( Xdiff < 0 ) {
        Xdiff = -Xdiff ;  Xunit = -1 ;
    }
    if ( Ydiff < 0 ) {
        Ydiff = -Ydiff ;  Yunit = -1 ;
    }

    if ( Xdiff > Ydiff ) {      /*  ・・・[・v・フ・・・・・・・・・゚・・    */
        for ( Index = 0 ; Index < Xdiff + 1 ; Index++ ) { /* ・w・・・・・フ・・・[・v */
            SetPixel( x1 , y1 );
            x1 += Xunit;
            Thresh += Ydiff;
            if ( Thresh >= Xdiff ) {
                Thresh -= Xdiff;
                y1 += Yunit;
            }
        }
    } else {
        for ( Index = 0 ; Index < Ydiff + 1 ; Index++ ) { /* ・x・・・・・フ・・・[・v */
            SetPixel( x1 , y1 );
            y1 += Yunit;
            Thresh += Xdiff;
            if ( Thresh >= Ydiff ) { 
                Thresh -= Ydiff;
                x1 += Xunit;
            }
        }
    }
}