module Rattletrap.Encode.PickupAttributeNew
  ( putPickupAttributeNew
  )
where

import Rattletrap.Encode.Word32le
import Rattletrap.Encode.Word8le
import Rattletrap.Type.PickupAttributeNew

import qualified Data.Binary.Bits.Put as BinaryBits

putPickupAttributeNew :: PickupAttributeNew -> BinaryBits.BitPut ()
putPickupAttributeNew :: PickupAttributeNew -> BitPut ()
putPickupAttributeNew PickupAttributeNew
pickupAttributeNew = do
  case PickupAttributeNew -> Maybe Word32le
pickupAttributeNewInstigatorId PickupAttributeNew
pickupAttributeNew 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
  Word8le -> BitPut ()
putWord8Bits (PickupAttributeNew -> Word8le
pickupAttributeNewPickedUp PickupAttributeNew
pickupAttributeNew)