public bool GetValue(int x, int y) { int num1 = x / 8; int num2 = x % 8; return(((int)this._data[y * DamagePattern.GetStride(this._width) + num1] & 1 << num2) != 0); }
private static byte[] GetDataFromText(int w, int h, string text) { if (text == null || w == 0 || h == 0) { return((byte[])null); } int stride = DamagePattern.GetStride(w); byte[] numArray = new byte[DamagePattern.GetSize(stride, h)]; int index1 = 0; for (int index2 = 0; index2 < h; ++index2) { for (int index3 = 0; index3 < w; ++index3) { if (text[index1] != '0') { int index4 = index2 * stride + index3 / 8; numArray[index4] |= (byte)(1 << index3 % 8); } ++index1; } ++index1; } return(numArray); }
public void SetValue(int x, int y, bool value) { int num1 = x / 8; int num2 = x % 8; int index = y * DamagePattern.GetStride(this._width) + num1; byte num3 = this._data[index]; byte num4 = (byte)(1 << num2); byte num5 = !value ? (byte)((uint)num3 & (uint)~num4) : (byte)((uint)num3 | (uint)num4); this._data[index] = num5; }
public void Write(ScriptMessageWriter m) { m.WriteInteger(this._width); m.WriteInteger(this._height); m.WriteInteger(this._originX); m.WriteInteger(this._originY); int size = DamagePattern.GetSize(DamagePattern.GetStride(this._width), this._height); for (int index = 0; index < size; index += 4) { m.WriteInteger((int)DamagePattern.BytesToFourCC(this._data[index], this._data[index + 1], this._data[index + 2], this._data[index + 3])); } }
public DamagePattern(int width, int height, int originX, int originY, byte[] initialData) { this._data = initialData; this._width = width; this._height = height; this._originX = originX; this._originY = originY; if (this._data != null) { return; } this._data = new byte[DamagePattern.GetSize(DamagePattern.GetStride(this._width), this._height)]; }
public static DamagePattern Read(ScriptMessageReader r) { int width = r.ReadInteger(); int height = r.ReadInteger(); int originX = r.ReadInteger(); int originY = r.ReadInteger(); int size = DamagePattern.GetSize(DamagePattern.GetStride(width), height); byte[] initialData = new byte[size]; for (int index = 0; index < size; index += 4) { DamagePattern.FourCCToBytes((uint)r.ReadInteger(), out initialData[index], out initialData[index + 1], out initialData[index + 2], out initialData[index + 3]); } return(new DamagePattern(width, height, originX, originY, initialData)); }