module Rattletrap.Decode.Header ( decodeHeader ) where import Rattletrap.Decode.Common import Rattletrap.Decode.Dictionary import Rattletrap.Decode.Property import Rattletrap.Decode.Str import Rattletrap.Decode.Word32le import Rattletrap.Type.Header import Rattletrap.Type.Word32le decodeHeader :: Decode Header decodeHeader = do (major, minor) <- (,) <$> decodeWord32le <*> decodeWord32le Header major minor <$> decodeWhen (major >= Word32le 868 && minor >= Word32le 18) decodeWord32le <*> decodeStr <*> decodeDictionary decodeProperty