Adding modding folder with a hacked build.
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
package lgres
|
||||
|
||||
import (
|
||||
"math"
|
||||
)
|
||||
|
||||
type resourceDirectoryEntry struct {
|
||||
ID uint16
|
||||
UnpackedLengthAndResourceType uint32
|
||||
PackedLengthAndContentType uint32
|
||||
}
|
||||
|
||||
func maskBits(field uint32, bitOffset uint, bitCount int) uint32 {
|
||||
return (field >> bitOffset) & uint32(^(uint64(math.MaxUint64) << uint64(bitCount)))
|
||||
}
|
||||
|
||||
func setBits(field uint32, bitOffset uint, bitCount int, value uint32) uint32 {
|
||||
mask := uint32(^(uint64(math.MaxUint64) << uint64(bitCount)))
|
||||
return (field & (^mask << bitOffset)) | ((value & mask) << bitOffset)
|
||||
}
|
||||
|
||||
func (entry *resourceDirectoryEntry) setUnpackedLength(value uint32) {
|
||||
entry.UnpackedLengthAndResourceType = setBits(entry.UnpackedLengthAndResourceType, 0, 24, value)
|
||||
}
|
||||
|
||||
func (entry *resourceDirectoryEntry) unpackedLength() uint32 {
|
||||
return maskBits(entry.UnpackedLengthAndResourceType, 0, 24)
|
||||
}
|
||||
|
||||
func (entry *resourceDirectoryEntry) setResourceType(value byte) {
|
||||
entry.UnpackedLengthAndResourceType = setBits(entry.UnpackedLengthAndResourceType, 24, 8, uint32(value))
|
||||
}
|
||||
|
||||
func (entry *resourceDirectoryEntry) resourceType() byte {
|
||||
return byte(maskBits(entry.UnpackedLengthAndResourceType, 24, 8))
|
||||
}
|
||||
|
||||
func (entry *resourceDirectoryEntry) setPackedLength(value uint32) {
|
||||
entry.PackedLengthAndContentType = setBits(entry.PackedLengthAndContentType, 0, 24, value)
|
||||
}
|
||||
|
||||
func (entry *resourceDirectoryEntry) packedLength() uint32 {
|
||||
return maskBits(entry.PackedLengthAndContentType, 0, 24)
|
||||
}
|
||||
|
||||
func (entry *resourceDirectoryEntry) setContentType(value byte) {
|
||||
entry.PackedLengthAndContentType = setBits(entry.PackedLengthAndContentType, 24, 8, uint32(value))
|
||||
}
|
||||
|
||||
func (entry *resourceDirectoryEntry) contentType() byte {
|
||||
return byte(maskBits(entry.PackedLengthAndContentType, 24, 8))
|
||||
}
|
||||
Reference in New Issue
Block a user