rattletrap-9.0.3: source/library/Rattletrap/Encode/ReservationAttribute.hs
module Rattletrap.Encode.ReservationAttribute
( putReservationAttribute
)
where
import Rattletrap.Encode.CompressedWord
import Rattletrap.Encode.Str
import Rattletrap.Encode.UniqueIdAttribute
import Rattletrap.Type.ReservationAttribute
import qualified Data.Binary.Bits.Put as BinaryBits
putReservationAttribute :: ReservationAttribute -> BinaryBits.BitPut ()
putReservationAttribute reservationAttribute = do
putCompressedWord (reservationAttributeNumber reservationAttribute)
putUniqueIdAttribute (reservationAttributeUniqueId reservationAttribute)
case reservationAttributeName reservationAttribute of
Nothing -> pure ()
Just name -> putTextBits name
BinaryBits.putBool (reservationAttributeUnknown1 reservationAttribute)
BinaryBits.putBool (reservationAttributeUnknown2 reservationAttribute)
case reservationAttributeUnknown3 reservationAttribute of
Nothing -> pure ()
Just c -> BinaryBits.putWord8 6 c