public void Write( Stream output, byte version, bool lastAction )
{
BinaryWriter bw = new BinaryWriter( output );
if ( !lastAction )
{
_OffsetToNextCondAction = (ushort)this.Length;
}
else
{
_OffsetToNextCondAction = 0;
}
bw.Write( _OffsetToNextCondAction );
BitStream bits = new BitStream( output );
bits.WriteBits( 1, (_CondIdleToOverDown?1:0));
bits.WriteBits( 1, (_CondOutDownToIdle?1:0));
bits.WriteBits( 1, (_CondOutDownToOverDown?1:0));
bits.WriteBits( 1, (_CondOverDownToOutDown?1:0));
bits.WriteBits( 1, (_CondOverDownToOverUp?1:0));
bits.WriteBits( 1, (_CondOverUpToOverDown?1:0));
bits.WriteBits( 1, (_CondOverUpToIdle?1:0));
bits.WriteBits( 1, (_CondIdleToOverUp?1:0));
bits.WriteBits( 7, _CondKeyPress );
bits.WriteBits( 1, ( _CondOverDownToIdle ? 1 : 0 ) );
bits.WriteFlush();
for ( int i = 0; i < _Code.Count; i++ )
{
_Code[ i ].Write( output );
}
}