rattletrap-9.3.2: src/lib/Rattletrap/Decode/ReservationAttribute.hs
module Rattletrap.Decode.ReservationAttribute
( decodeReservationAttributeBits
)
where
import Rattletrap.Decode.Common
import Rattletrap.Decode.CompressedWord
import Rattletrap.Decode.Str
import Rattletrap.Decode.UniqueIdAttribute
import Rattletrap.Type.ReservationAttribute
import Rattletrap.Type.UniqueIdAttribute
import Rattletrap.Type.Word8le
decodeReservationAttributeBits
:: (Int, Int, Int) -> DecodeBits ReservationAttribute
decodeReservationAttributeBits version = do
number <- decodeCompressedWordBits 7
uniqueId <- decodeUniqueIdAttributeBits version
ReservationAttribute number uniqueId
<$> decodeWhen
(uniqueIdAttributeSystemId uniqueId /= Word8le 0)
decodeStrBits
<*> getBool
<*> getBool
<*> decodeWhen (version >= (868, 12, 0)) (getWord8Bits 6)