csvorbis.Floor1.render_line C# (CSharp) Method

render_line() private static method

private static render_line ( int x0, int x1, int y0, int y1, float d ) : void
x0 int
x1 int
y0 int
y1 int
d float
return void
        private static void render_line(int x0, int x1,int y0,int y1,float[] d)
        {
            int dy=y1-y0;
            int adx=x1-x0;
            int ady=Math.Abs(dy);
            int bbase=dy/adx;
            int sy=( (dy < 0) ? bbase-1 : bbase+1);
            int x=x0;
            int y=y0;
            int err=0;

            ady-=Math.Abs(bbase*adx);

            d[x]*=FLOOR_fromdB_LOOKUP[y];
            while(++x<x1)
            {
                err=err+ady;
                if(err>=adx)
                {
                    err-=adx;
                    y+=sy;
                }
                else
                {
                    y+=bbase;
                }
                d[x]*=FLOOR_fromdB_LOOKUP[y];
            }
        }