public void AttachToTiles(ref TilesBuffer buffer) { fixed (int* pbuffer = buffer.fixedBuffer) { for (int i = 0; i < 4; i++) { tilePointerArray[i] = pbuffer + GetPointerOffset(_readDirection, _accessorId, i); } } }
public TileAccessor( int accessorId, ReadDirection readDirection, ref TilesBuffer buffer) { this._accessorId = accessorId; this._readDirection = readDirection; AttachToTiles(ref buffer); }
/// <summary> /// Sets _rows and _cols collections to point to _tiles[,] elements /// </summary> private void PointRowsAndColsToArrayElements(List<ITileAccessor> tileAccessorCollection, ReadDirection readDirection, ref TilesBuffer buffer) { for (int i = 0; i < 4; i++) { if (tileAccessorCollection.Count < 4) tileAccessorCollection.Add(new TileAccessor(i, readDirection, ref buffer)); else tileAccessorCollection[i].AttachToTiles(ref buffer); } }