NScumm.Sky.Screen.VerticalMask C# (CSharp) Méthode

VerticalMask() private méthode

private VerticalMask ( ) : void
Résultat void
        private void VerticalMask()
        {
            if (_sprWidth == 0)
                return;
            var startGridOfs = (int)((_sprY + _sprHeight - 1) * GridX + _sprX);
            var startScreenPtr = (int)((_sprY + _sprHeight - 1) * GridH * GameScreenWidth + _sprX * GridW);

            for (uint layerCnt = Logic.LAYER_1_ID; layerCnt <= Logic.LAYER_3_ID; layerCnt++)
            {
                var gridOfs = startGridOfs;
                var screenPtr = startScreenPtr;
                for (uint widCnt = 0; widCnt < _sprWidth; widCnt++)
                {
                    // x_loop
                    var nLayerCnt = layerCnt;
                    while (Logic.ScriptVariables[(int) (nLayerCnt + 3)] != 0)
                    {
                        var scrGrid = new UShortAccess(SkyEngine.ItemList[Logic.ScriptVariables[(int) (layerCnt + 3)]], 0);
                        if (scrGrid[gridOfs] != 0)
                        {
                            VertMaskSub(scrGrid, gridOfs, screenPtr, layerCnt);
                            break;
                        }
                        nLayerCnt++;
                    }
                    // next_x:
                    screenPtr += GridW;
                    gridOfs++;
                }
            }
        }