module Rattletrap.Decode.Initialization ( decodeInitializationBits ) where import Rattletrap.Decode.Common import Rattletrap.Decode.Int8Vector import Rattletrap.Decode.Vector import Rattletrap.Type.Initialization decodeInitializationBits :: (Int, Int, Int) -> Bool -> Bool -> DecodeBits Initialization decodeInitializationBits :: (Int, Int, Int) -> Bool -> Bool -> DecodeBits Initialization decodeInitializationBits (Int, Int, Int) version Bool hasLocation Bool hasRotation = Maybe Vector -> Maybe Int8Vector -> Initialization Initialization (Maybe Vector -> Maybe Int8Vector -> Initialization) -> BitGet (Maybe Vector) -> BitGet (Maybe Int8Vector -> Initialization) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b <$> Bool -> BitGet Vector -> BitGet (Maybe Vector) forall (m :: * -> *) (f :: * -> *) a. (Applicative m, Alternative f) => Bool -> m a -> m (f a) decodeWhen Bool hasLocation ((Int, Int, Int) -> BitGet Vector decodeVectorBits (Int, Int, Int) version) BitGet (Maybe Int8Vector -> Initialization) -> BitGet (Maybe Int8Vector) -> DecodeBits Initialization forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b <*> Bool -> BitGet Int8Vector -> BitGet (Maybe Int8Vector) forall (m :: * -> *) (f :: * -> *) a. (Applicative m, Alternative f) => Bool -> m a -> m (f a) decodeWhen Bool hasRotation BitGet Int8Vector decodeInt8VectorBits