module Rattletrap.Encode.PickupAttribute
  ( putPickupAttribute
  )
where

import Rattletrap.Encode.Word32le
import Rattletrap.Type.PickupAttribute

import qualified Data.Binary.Bits.Put as BinaryBits

putPickupAttribute :: PickupAttribute -> BinaryBits.BitPut ()
putPickupAttribute :: PickupAttribute -> BitPut ()
putPickupAttribute PickupAttribute
pickupAttribute = do
  case PickupAttribute -> Maybe Word32le
pickupAttributeInstigatorId PickupAttribute
pickupAttribute of
    Maybe Word32le
Nothing -> Bool -> BitPut ()
BinaryBits.putBool Bool
False
    Just Word32le
instigatorId -> do
      Bool -> BitPut ()
BinaryBits.putBool Bool
True
      Word32le -> BitPut ()
putWord32Bits Word32le
instigatorId
  Bool -> BitPut ()
BinaryBits.putBool (PickupAttribute -> Bool
pickupAttributePickedUp PickupAttribute
pickupAttribute)