static renderScreenSlice(zbi, rc) {
        let aLine = zbi;
        const oTile = aLine[0];
        if (oTile === null) {
            return;
        }
        let sGCO = '';
        let fGobalAlphaSave = 0;
        let nFx = aLine[10];

        const bFxAlpha = (nFx & 12) !== 0;
        const bFxLighter = (nFx & 1) !== 0;
        if (bFxLighter) {
            sGCO = rc.globalCompositeOperation;
            rc.globalCompositeOperation = 'lighter';
        }
        const flagSourceFactor = 1 - ((nFx & 2) >> 1);
        if (bFxAlpha) {
            fGobalAlphaSave = rc.globalAlpha;
            rc.globalAlpha = CONSTS.FX_ALPHA[nFx >> 2];
        }
        let xStart = aLine[1] | 0;
        let wSrc = aLine[3] | 0;
        let hSrc = aLine[4] | 0;
        const di_sy = aLine[2] * flagSourceFactor | 0;
        const di_dx = aLine[5] | 0;
        const di_dy = aLine[6] | 0;
        const di_dw = aLine[7] | 0;
        const di_dh = aLine[8] | 0;

        if (xStart >= 0 && hSrc > 0 && wSrc > 0) {

            oTile.drawTile(
                rc,
                xStart,     // sx
                di_sy,
                wSrc,       // sw
                hSrc,       // sh
                di_dx,
                di_dy,
                di_dw,
                di_dh
            );
            // rc.drawImage(
            //     oTile.getImage(),
            //     xStart,       // sx
            //     aLine[2] * flagSourceFactor | 0,       // sy
            //     wSrc,       // sw
            //     hSrc,       // sh
            //     aLine[5] | 0,       // dx
            //     aLine[6] | 0,       // dy
            //     aLine[7] | 0,       // dw
            //     aLine[8] | 0        // dh
            // );
        }
        if (sGCO !== '') {
            rc.globalCompositeOperation = sGCO;
        }
        if (bFxAlpha) {
            rc.globalAlpha = fGobalAlphaSave;
        }
    }
/**
     * Renders the portion of texture described in the zbi parameter
     * @param zbi {array} array of parameters mapped into the contex2d.renderScreenSlice function
     * @param rc {CanvasRenderingContext2D} context where the line is rendered
     */
Renders the portion of texture described in the zbi parameter
@param zbi {array} array of parameters mapped into the contex2d.renderScreenSlice function
@param rc {CanvasRenderingContext2D} context where the line is rendered
Renders the portion of texture described in the zbi parameter @param zbi { array } array of parameters mapped into the contex2d . renderScreenSlice function @param rc { CanvasRenderingContext2D } context where the line is rendered
static renderScreenSlice(zbi, rc) {
        let aLine = zbi;
        const oTile = aLine[0];
        if (oTile === null) {
            return;
        }
        let sGCO = '';
        let fGobalAlphaSave = 0;
        let nFx = aLine[10];
        const bFxAlpha = (nFx & 12) !== 0;
        const bFxLighter = (nFx & 1) !== 0;
        if (bFxLighter) {
            sGCO = rc.globalCompositeOperation;
            rc.globalCompositeOperation = 'lighter';
        }
        const flagSourceFactor = 1 - ((nFx & 2) >> 1);
        if (bFxAlpha) {
            fGobalAlphaSave = rc.globalAlpha;
            rc.globalAlpha = CONSTS.FX_ALPHA[nFx >> 2];
        }
        let xStart = aLine[1] | 0;
        let wSrc = aLine[3] | 0;
        let hSrc = aLine[4] | 0;
        const di_sy = aLine[2] * flagSourceFactor | 0;
        const di_dx = aLine[5] | 0;
        const di_dy = aLine[6] | 0;
        const di_dw = aLine[7] | 0;
        const di_dh = aLine[8] | 0;
        if (xStart >= 0 && hSrc > 0 && wSrc > 0) {
            oTile.drawTile(
                rc,
                xStart,     
                di_sy,
                wSrc,       
                hSrc,       
                di_dx,
                di_dy,
                di_dw,
                di_dh
            );
            //     xStart,       
            //     wSrc,       
            //     hSrc,       
        }
        if (sGCO !== '') {
            rc.globalCompositeOperation = sGCO;
        }
        if (bFxAlpha) {
            rc.globalAlpha = fGobalAlphaSave;
        }
    }
static renderScreenSlice ( zbi , rc ) { let aLine = zbi ; const oTile = aLine [ 0 ] ; if ( oTile === null ) { return ; } let sGCO = '' ; let fGobalAlphaSave = 0 ; let nFx = aLine [ 10 ] ; const bFxAlpha = ( nFx & 12 ) !== 0 ; const bFxLighter = ( nFx & 1 ) !== 0 ; if ( bFxLighter ) { sGCO = rc . globalCompositeOperation ; rc . globalCompositeOperation = 'lighter' ; } const flagSourceFactor = 1 - ( ( nFx & 2 ) >> 1 ) ; if ( bFxAlpha ) { fGobalAlphaSave = rc . globalAlpha ; rc . globalAlpha = CONSTS . FX_ALPHA [ nFx >> 2 ] ; } let xStart = aLine [ 1 ] | 0 ; let wSrc = aLine [ 3 ] | 0 ; let hSrc = aLine [ 4 ] | 0 ; const di_sy = aLine [ 2 ] * flagSourceFactor | 0 ; const di_dx = aLine [ 5 ] | 0 ; const di_dy = aLine [ 6 ] | 0 ; const di_dw = aLine [ 7 ] | 0 ; const di_dh = aLine [ 8 ] | 0 ; if ( xStart >= 0 && hSrc > 0 && wSrc > 0 ) { oTile . drawTile ( rc , xStart , di_sy , wSrc , hSrc , di_dx , di_dy , di_dw , di_dh ) ; } if ( sGCO !== '' ) { rc . globalCompositeOperation = sGCO ; } if ( bFxAlpha ) { rc . globalAlpha = fGobalAlphaSave ; } }
Renders the portion of texture described in the zbi parameter
 @param zbi {array} array of parameters mapped into the contex2d.renderScreenSlice function
 @param rc {CanvasRenderingContext2D} context where the line is rendered
Renders the portion of texture described in the zbi parameter @param zbi { array } array of parameters mapped into the contex2d . renderScreenSlice function @param rc { CanvasRenderingContext2D } context where the line is rendered
// sx // sw // sh // rc.drawImage( //     oTile.getImage(), //     xStart,       // sx //     aLine[2] * flagSourceFactor | 0,       // sy //     wSrc,       // sw //     hSrc,       // sh //     aLine[5] | 0,       // dx //     aLine[6] | 0,       // dy //     aLine[7] | 0,       // dw //     aLine[8] | 0        // dh // );