MrGravity.Level.PrepareCollisionMatrix C# (CSharp) Method

PrepareCollisionMatrix() private method

Prepares the collision matrix in the game
private PrepareCollisionMatrix ( ) : void
return void
        private void PrepareCollisionMatrix()
        {
            var gridSize = GridSpace.GetGridCoord(Size);
            _mCollisionMatrix = new List<GameObject>[(int)gridSize.Y][];
            for (var i = 0; i < gridSize.Y; i++)
            {
                _mCollisionMatrix[i] = new List<GameObject>[(int)gridSize.X];
                for (var j = 0; j < gridSize.X; j++)
                    _mCollisionMatrix[i][j] = new List<GameObject>();
            }

            //Adds each object into the collision matrix. Special case is for walls, in which it must extend over for it to be continuously
                //considered as collidable
            foreach (var obj in _mObjects)
            {
                var gridLoc = GridSpace.GetGridCoord(obj.MPosition);
                if (!(obj is Wall))
                    _mCollisionMatrix[(int)gridLoc.Y][(int)gridLoc.X].Add(obj);
                else
                {
                    var wall = (Wall)obj;
                    for (var i = 0; i < wall.Walls.Count; i+=2)
                    {
                        gridLoc = GridSpace.GetGridCoord(wall.Walls[i].MPosition);
                        _mCollisionMatrix[(int)gridLoc.Y][(int)gridLoc.X].Add(obj);
                    }
                }
            }
        }