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 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 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 = forall a. String -> (Object -> Parser a) -> Value -> Parser a Json.withObject String "PickupInfo" forall a b. (a -> b) -> a -> b $ \Object object -> do Bool unknown1 <- forall value. FromJSON value => Object -> String -> Parser value Json.required Object object String "unknown1" Bool unknown2 <- forall value. FromJSON value => Object -> String -> Parser value Json.required Object object String "unknown2" U32 unknown3 <- forall value. FromJSON value => Object -> String -> Parser value Json.required Object object String "unknown3" I32 unknown4 <- forall value. FromJSON value => Object -> String -> Parser value Json.required Object object String "unknown4" I32 unknown5 <- forall value. FromJSON value => Object -> String -> Parser value Json.required Object object String "unknown5" Bool unknown6 <- forall value. FromJSON value => Object -> String -> Parser value Json.required Object object String "unknown6" Bool unknown7 <- forall value. FromJSON value => Object -> String -> Parser value Json.required Object object String "unknown7" forall (f :: * -> *) a. Applicative f => a -> f a pure 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 = [(Key, Value)] -> Value Json.object [ forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown1" forall a b. (a -> b) -> a -> b $ PickupInfo -> Bool unknown1 PickupInfo x, forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown2" forall a b. (a -> b) -> a -> b $ PickupInfo -> Bool unknown2 PickupInfo x, forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown3" forall a b. (a -> b) -> a -> b $ PickupInfo -> U32 unknown3 PickupInfo x, forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown4" forall a b. (a -> b) -> a -> b $ PickupInfo -> I32 unknown4 PickupInfo x, forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown5" forall a b. (a -> b) -> a -> b $ PickupInfo -> I32 unknown5 PickupInfo x, forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown6" forall a b. (a -> b) -> a -> b $ PickupInfo -> Bool unknown6 PickupInfo x, forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown7" 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" forall a b. (a -> b) -> a -> b $ [((Key, Value), Bool)] -> Value Schema.object [ (forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown1" forall a b. (a -> b) -> a -> b $ Schema -> Value Schema.ref Schema Schema.boolean, Bool True), (forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown2" forall a b. (a -> b) -> a -> b $ Schema -> Value Schema.ref Schema Schema.boolean, Bool True), (forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown3" forall a b. (a -> b) -> a -> b $ Schema -> Value Schema.ref Schema U32.schema, Bool True), (forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown4" forall a b. (a -> b) -> a -> b $ Schema -> Value Schema.ref Schema I32.schema, Bool True), (forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown5" forall a b. (a -> b) -> a -> b $ Schema -> Value Schema.ref Schema I32.schema, Bool True), (forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown6" forall a b. (a -> b) -> a -> b $ Schema -> Value Schema.ref Schema Schema.boolean, Bool True), (forall value pair. (ToJSON value, KeyValue pair) => String -> value -> pair Json.pair String "unknown7" 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) forall a. Semigroup a => a -> a -> a <> Bool -> BitPut BitPut.bool (PickupInfo -> Bool unknown2 PickupInfo x) forall a. Semigroup a => a -> a -> a <> U32 -> BitPut U32.bitPut (PickupInfo -> U32 unknown3 PickupInfo x) forall a. Semigroup a => a -> a -> a <> I32 -> BitPut I32.bitPut (PickupInfo -> I32 unknown4 PickupInfo x) forall a. Semigroup a => a -> a -> a <> I32 -> BitPut I32.bitPut (PickupInfo -> I32 unknown5 PickupInfo x) forall a. Semigroup a => a -> a -> a <> Bool -> BitPut BitPut.bool (PickupInfo -> Bool unknown6 PickupInfo x) forall a. Semigroup a => a -> a -> a <> Bool -> BitPut BitPut.bool (PickupInfo -> Bool unknown7 PickupInfo x) bitGet :: BitGet.BitGet PickupInfo bitGet :: BitGet PickupInfo bitGet = forall a. String -> BitGet a -> BitGet a BitGet.label String "PickupInfo" forall a b. (a -> b) -> a -> b $ do Bool unknown1 <- forall a. String -> BitGet a -> BitGet a BitGet.label String "unknown1" BitGet Bool BitGet.bool Bool unknown2 <- forall a. String -> BitGet a -> BitGet a BitGet.label String "unknown2" BitGet Bool BitGet.bool U32 unknown3 <- forall a. String -> BitGet a -> BitGet a BitGet.label String "unknown3" BitGet U32 U32.bitGet I32 unknown4 <- forall a. String -> BitGet a -> BitGet a BitGet.label String "unknown4" BitGet I32 I32.bitGet I32 unknown5 <- forall a. String -> BitGet a -> BitGet a BitGet.label String "unknown5" BitGet I32 I32.bitGet Bool unknown6 <- forall a. String -> BitGet a -> BitGet a BitGet.label String "unknown6" BitGet Bool BitGet.bool Bool unknown7 <- forall a. String -> BitGet a -> BitGet a BitGet.label String "unknown7" BitGet Bool BitGet.bool forall (f :: * -> *) a. Applicative f => a -> f a pure 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 }