internal void AssertValue(BinaryReaderEx br) { switch (Type) { case ParamType.aob: var assertAob = (byte[])ValueToAssert; for (int i = 0; i < AobLength; i++) { br.AssertByte(assertAob[i]); } break; case ParamType.b: br.AssertBoolean((bool)ValueToAssert); break; case ParamType.u8: case ParamType.x8: br.AssertByte((byte)ValueToAssert); break; case ParamType.s8: br.AssertSByte((sbyte)ValueToAssert); break; case ParamType.u16: case ParamType.x16: br.AssertUInt16((ushort)ValueToAssert); break; case ParamType.s16: br.AssertInt16((short)ValueToAssert); break; case ParamType.u32: case ParamType.x32: br.AssertUInt32((uint)ValueToAssert); break; case ParamType.s32: br.AssertInt32((int)ValueToAssert); break; case ParamType.u64: case ParamType.x64: br.AssertUInt64((ulong)ValueToAssert); break; case ParamType.s64: br.AssertInt64((long)ValueToAssert); break; case ParamType.f32: br.AssertSingle((float)ValueToAssert); break; case ParamType.f64: br.AssertDouble((double)ValueToAssert); break; default: throw new Exception($"Invalid ParamTemplate ParamType: {Type.ToString()}"); } }