module Rattletrap.Type.Attribute.PickupInfo where import qualified Rattletrap.BitGet as BitGet import qualified Rattletrap.BitPut as BitPut import qualified Rattletrap.Schema as Schema import qualified Rattletrap.Type.I32 as I32 import qualified Rattletrap.Type.U32 as U32 import qualified Rattletrap.Utility.Json as Json data PickupInfo = PickupInfo { PickupInfo -> Bool unknown1 :: Bool , PickupInfo -> Bool unknown2 :: Bool , PickupInfo -> U32 unknown3 :: U32.U32 , PickupInfo -> I32 unknown4 :: I32.I32 , PickupInfo -> I32 unknown5 :: I32.I32 , PickupInfo -> Bool unknown6 :: Bool , PickupInfo -> Bool unknown7 :: Bool } deriving (PickupInfo -> PickupInfo -> Bool (PickupInfo -> PickupInfo -> Bool) -> (PickupInfo -> PickupInfo -> Bool) -> Eq PickupInfo forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: PickupInfo -> PickupInfo -> Bool $c/= :: PickupInfo -> PickupInfo -> Bool == :: PickupInfo -> PickupInfo -> Bool $c== :: PickupInfo -> PickupInfo -> Bool Eq, Int -> PickupInfo -> ShowS [PickupInfo] -> ShowS PickupInfo -> String (Int -> PickupInfo -> ShowS) -> (PickupInfo -> String) -> ([PickupInfo] -> ShowS) -> Show PickupInfo forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [PickupInfo] -> ShowS $cshowList :: [PickupInfo] -> ShowS show :: PickupInfo -> String $cshow :: PickupInfo -> String showsPrec :: Int -> PickupInfo -> ShowS $cshowsPrec :: Int -> PickupInfo -> ShowS Show) instance Json.FromJSON PickupInfo where parseJSON :: Value -> Parser PickupInfo parseJSON = String -> (Object -> Parser PickupInfo) -> Value -> Parser PickupInfo forall a. String -> (Object -> Parser a) -> Value -> Parser a Json.withObject String "PickupInfo" ((Object -> Parser PickupInfo) -> Value -> Parser PickupInfo) -> (Object -> Parser PickupInfo) -> Value -> Parser PickupInfo forall a b. (a -> b) -> a -> b $ \Object object -> do Bool unknown1 <- Object -> String -> Parser Bool forall value. FromJSON value => Object -> String -> Parser value Json.required Object object String "unknown1" Bool unknown2 <- Object -> String -> Parser Bool forall value. FromJSON value => Object -> String -> Parser value Json.required Object object String "unknown2" U32 unknown3 <- Object -> String -> Parser U32 forall value. FromJSON value => Object -> String -> Parser value Json.required Object object String "unknown3" I32 unknown4 <- Object -> String -> Parser I32 forall value. FromJSON value => Object -> String -> Parser value Json.required Object object String "unknown4" I32 unknown5 <- Object -> String -> Parser I32 forall value. FromJSON value => Object -> String -> Parser value Json.required Object object String "unknown5" Bool unknown6 <- Object -> String -> Parser Bool forall value. FromJSON value => Object -> String -> Parser value Json.required Object object String "unknown6" Bool unknown7 <- Object -> String -> Parser Bool forall value. FromJSON value => Object -> String -> Parser value Json.required Object object String "unknown7" PickupInfo -> Parser PickupInfo forall (f :: * -> *) a. Applicative f => a -> f a pure PickupInfo :: Bool -> Bool -> U32 -> I32 -> I32 -> Bool -> Bool -> PickupInfo PickupInfo { Bool unknown1 :: Bool unknown1 :: Bool unknown1 , Bool unknown2 :: Bool unknown2 :: Bool unknown2 , U32 unknown3 :: U32 unknown3 :: U32 unknown3 , I32 unknown4 :: I32 unknown4 :: I32 unknown4 , I32 unknown5 :: I32 unknown5 :: I32 unknown5 , Bool unknown6 :: Bool unknown6 :: Bool unknown6 , Bool unknown7 :: Bool unknown7 :: Bool unknown7 } instance Json.ToJSON PickupInfo where toJSON :: PickupInfo -> Value toJSON PickupInfo x = [Pair] -> Value Json.object [ String -> Bool -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown1" (Bool -> Pair) -> Bool -> Pair forall a b. (a -> b) -> a -> b $ PickupInfo -> Bool unknown1 PickupInfo x , String -> Bool -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown2" (Bool -> Pair) -> Bool -> Pair forall a b. (a -> b) -> a -> b $ PickupInfo -> Bool unknown2 PickupInfo x , String -> U32 -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown3" (U32 -> Pair) -> U32 -> Pair forall a b. (a -> b) -> a -> b $ PickupInfo -> U32 unknown3 PickupInfo x , String -> I32 -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown4" (I32 -> Pair) -> I32 -> Pair forall a b. (a -> b) -> a -> b $ PickupInfo -> I32 unknown4 PickupInfo x , String -> I32 -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown5" (I32 -> Pair) -> I32 -> Pair forall a b. (a -> b) -> a -> b $ PickupInfo -> I32 unknown5 PickupInfo x , String -> Bool -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown6" (Bool -> Pair) -> Bool -> Pair forall a b. (a -> b) -> a -> b $ PickupInfo -> Bool unknown6 PickupInfo x , String -> Bool -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown7" (Bool -> Pair) -> Bool -> Pair forall a b. (a -> b) -> a -> b $ PickupInfo -> Bool unknown7 PickupInfo x ] schema :: Schema.Schema schema :: Schema schema = String -> Value -> Schema Schema.named String "pickup-info" (Value -> Schema) -> Value -> Schema forall a b. (a -> b) -> a -> b $ [(Pair, Bool)] -> Value Schema.object [ (String -> Value -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown1" (Value -> Pair) -> Value -> Pair forall a b. (a -> b) -> a -> b $ Schema -> Value Schema.ref Schema Schema.boolean, Bool True) , (String -> Value -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown2" (Value -> Pair) -> Value -> Pair forall a b. (a -> b) -> a -> b $ Schema -> Value Schema.ref Schema Schema.boolean, Bool True) , (String -> Value -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown3" (Value -> Pair) -> Value -> Pair forall a b. (a -> b) -> a -> b $ Schema -> Value Schema.ref Schema U32.schema, Bool True) , (String -> Value -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown4" (Value -> Pair) -> Value -> Pair forall a b. (a -> b) -> a -> b $ Schema -> Value Schema.ref Schema I32.schema, Bool True) , (String -> Value -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown5" (Value -> Pair) -> Value -> Pair forall a b. (a -> b) -> a -> b $ Schema -> Value Schema.ref Schema I32.schema, Bool True) , (String -> Value -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown6" (Value -> Pair) -> Value -> Pair forall a b. (a -> b) -> a -> b $ Schema -> Value Schema.ref Schema Schema.boolean, Bool True) , (String -> Value -> Pair forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown7" (Value -> Pair) -> Value -> Pair forall a b. (a -> b) -> a -> b $ Schema -> Value Schema.ref Schema Schema.boolean, Bool True) ] bitPut :: PickupInfo -> BitPut.BitPut bitPut :: PickupInfo -> BitPut bitPut PickupInfo x = Bool -> BitPut BitPut.bool (PickupInfo -> Bool unknown1 PickupInfo x) BitPut -> BitPut -> BitPut forall a. Semigroup a => a -> a -> a <> Bool -> BitPut BitPut.bool (PickupInfo -> Bool unknown2 PickupInfo x) BitPut -> BitPut -> BitPut forall a. Semigroup a => a -> a -> a <> U32 -> BitPut U32.bitPut (PickupInfo -> U32 unknown3 PickupInfo x) BitPut -> BitPut -> BitPut forall a. Semigroup a => a -> a -> a <> I32 -> BitPut I32.bitPut (PickupInfo -> I32 unknown4 PickupInfo x) BitPut -> BitPut -> BitPut forall a. Semigroup a => a -> a -> a <> I32 -> BitPut I32.bitPut (PickupInfo -> I32 unknown5 PickupInfo x) BitPut -> BitPut -> BitPut forall a. Semigroup a => a -> a -> a <> Bool -> BitPut BitPut.bool (PickupInfo -> Bool unknown6 PickupInfo x) BitPut -> BitPut -> BitPut forall a. Semigroup a => a -> a -> a <> Bool -> BitPut BitPut.bool (PickupInfo -> Bool unknown7 PickupInfo x) bitGet :: BitGet.BitGet PickupInfo bitGet :: BitGet PickupInfo bitGet = String -> BitGet PickupInfo -> BitGet PickupInfo forall a. String -> BitGet a -> BitGet a BitGet.label String "PickupInfo" (BitGet PickupInfo -> BitGet PickupInfo) -> BitGet PickupInfo -> BitGet PickupInfo forall a b. (a -> b) -> a -> b $ do Bool unknown1 <- String -> BitGet Bool -> BitGet Bool forall a. String -> BitGet a -> BitGet a BitGet.label String "unknown1" BitGet Bool BitGet.bool Bool unknown2 <- String -> BitGet Bool -> BitGet Bool forall a. String -> BitGet a -> BitGet a BitGet.label String "unknown2" BitGet Bool BitGet.bool U32 unknown3 <- String -> BitGet U32 -> BitGet U32 forall a. String -> BitGet a -> BitGet a BitGet.label String "unknown3" BitGet U32 U32.bitGet I32 unknown4 <- String -> BitGet I32 -> BitGet I32 forall a. String -> BitGet a -> BitGet a BitGet.label String "unknown4" BitGet I32 I32.bitGet I32 unknown5 <- String -> BitGet I32 -> BitGet I32 forall a. String -> BitGet a -> BitGet a BitGet.label String "unknown5" BitGet I32 I32.bitGet Bool unknown6 <- String -> BitGet Bool -> BitGet Bool forall a. String -> BitGet a -> BitGet a BitGet.label String "unknown6" BitGet Bool BitGet.bool Bool unknown7 <- String -> BitGet Bool -> BitGet Bool forall a. String -> BitGet a -> BitGet a BitGet.label String "unknown7" BitGet Bool BitGet.bool PickupInfo -> BitGet PickupInfo forall (f :: * -> *) a. Applicative f => a -> f a pure PickupInfo :: Bool -> Bool -> U32 -> I32 -> I32 -> Bool -> Bool -> PickupInfo PickupInfo { Bool unknown1 :: Bool unknown1 :: Bool unknown1 , Bool unknown2 :: Bool unknown2 :: Bool unknown2 , U32 unknown3 :: U32 unknown3 :: U32 unknown3 , I32 unknown4 :: I32 unknown4 :: I32 unknown4 , I32 unknown5 :: I32 unknown5 :: I32 unknown5 , Bool unknown6 :: Bool unknown6 :: Bool unknown6 , Bool unknown7 :: Bool unknown7 :: Bool unknown7 }