--- deliantra/server/socket/lowlevel.C 2007/03/14 15:44:47 1.36 +++ deliantra/server/socket/lowlevel.C 2007/04/02 19:56:11 1.37 @@ -527,6 +527,24 @@ *cur++ = ' '; } +packet &packet::operator <<(const ber32 v) +{ + enum { maxlen = 32 / 7 + 1}; + uint8 buf[maxlen]; + uint8 *p = buf + maxlen; + uint32 val = v.val; + + while (val > 0x7F) + { + *--p = (val & 0x7F) | 0x80; + val >>= 7; + } + + *--p = val; + + return *this << data (p, buf + maxlen - p); +} + packet &packet::operator <<(const data &v) { if (room () < v.len)