Adding modding folder with a hacked build.
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
package compression
|
||||
|
||||
// BitstreamWriter is a utility to write big-endian integer values of arbitrary bit size to a bitstream.
|
||||
type BitstreamWriter struct {
|
||||
buf []byte
|
||||
|
||||
offset uint
|
||||
}
|
||||
|
||||
// Buffer returns the currently stored buffer.
|
||||
func (w BitstreamWriter) Buffer() []byte {
|
||||
return w.buf
|
||||
}
|
||||
|
||||
// Write stores the given amount of bits from the provided value.
|
||||
// Trying to write more than 32 bits will cause panic.
|
||||
func (w *BitstreamWriter) Write(bits uint, value uint32) {
|
||||
if bits > 32 {
|
||||
panic("maximum of 32 bits are possible to be written")
|
||||
}
|
||||
for bits > 0 {
|
||||
temp := (uint64(value) & ^(^uint64(0) << bits)) << (40 - bits - w.offset)
|
||||
if w.offset == 0 {
|
||||
w.buf = append(w.buf, 0x00)
|
||||
}
|
||||
w.buf[len(w.buf)-1] |= byte(temp >> 32)
|
||||
written := 8 - w.offset
|
||||
if written > bits {
|
||||
written = bits
|
||||
}
|
||||
bits -= written
|
||||
w.offset = (w.offset + written) % 8
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user