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 $c== :: PickupInfo -> PickupInfo -> Bool == :: PickupInfo -> PickupInfo -> Bool $c/= :: PickupInfo -> PickupInfo -> Bool /= :: 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 $cshowsPrec :: Int -> PickupInfo -> ShowS showsPrec :: Int -> PickupInfo -> ShowS $cshow :: PickupInfo -> String show :: PickupInfo -> String $cshowList :: [PickupInfo] -> ShowS showList :: [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 unknown1 <- Object -> String -> Parser Bool forall value. FromJSON value => Object -> String -> Parser value Json.required Object object String "unknown1" unknown2 <- Json.required object "unknown2" unknown3 <- Json.required object "unknown3" unknown4 <- Json.required object "unknown4" unknown5 <- Json.required object "unknown5" unknown6 <- Json.required object "unknown6" unknown7 <- Json.required object "unknown7" pure PickupInfo { unknown1, unknown2, unknown3, unknown4, unknown5, unknown6, unknown7 } instance Json.ToJSON PickupInfo where toJSON :: PickupInfo -> Value toJSON PickupInfo x = [(Key, Value)] -> Value Json.object [ String -> Bool -> (Key, Value) forall value e p. (ToJSON value, KeyValue e p) => String -> value -> p Json.pair String "unknown1" (Bool -> (Key, Value)) -> Bool -> (Key, Value) forall a b. (a -> b) -> a -> b $ PickupInfo -> Bool unknown1 PickupInfo x, String -> Bool -> (Key, Value) forall value e p. (ToJSON value, KeyValue e p) => String -> value -> p Json.pair String "unknown2" (Bool -> (Key, Value)) -> Bool -> (Key, Value) forall a b. (a -> b) -> a -> b $ PickupInfo -> Bool unknown2 PickupInfo x, String -> U32 -> (Key, Value) forall value e p. (ToJSON value, KeyValue e p) => String -> value -> p Json.pair String "unknown3" (U32 -> (Key, Value)) -> U32 -> (Key, Value) forall a b. (a -> b) -> a -> b $ PickupInfo -> U32 unknown3 PickupInfo x, String -> I32 -> (Key, Value) forall value e p. (ToJSON value, KeyValue e p) => String -> value -> p Json.pair String "unknown4" (I32 -> (Key, Value)) -> I32 -> (Key, Value) forall a b. (a -> b) -> a -> b $ PickupInfo -> I32 unknown4 PickupInfo x, String -> I32 -> (Key, Value) forall value e p. (ToJSON value, KeyValue e p) => String -> value -> p Json.pair String "unknown5" (I32 -> (Key, Value)) -> I32 -> (Key, Value) forall a b. (a -> b) -> a -> b $ PickupInfo -> I32 unknown5 PickupInfo x, String -> Bool -> (Key, Value) forall value e p. (ToJSON value, KeyValue e p) => String -> value -> p Json.pair String "unknown6" (Bool -> (Key, Value)) -> Bool -> (Key, Value) forall a b. (a -> b) -> a -> b $ PickupInfo -> Bool unknown6 PickupInfo x, String -> Bool -> (Key, Value) forall value e p. (ToJSON value, KeyValue e p) => String -> value -> p Json.pair String "unknown7" (Bool -> (Key, Value)) -> Bool -> (Key, Value) 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 $ [((Key, Value), Bool)] -> Value Schema.object [ (String -> Value -> (Key, Value) forall value e p. (ToJSON value, KeyValue e p) => String -> value -> p Json.pair String "unknown1" (Value -> (Key, Value)) -> Value -> (Key, Value) forall a b. (a -> b) -> a -> b $ Schema -> Value Schema.ref Schema Schema.boolean, Bool True), (String -> Value -> (Key, Value) forall value e p. (ToJSON value, KeyValue e p) => String -> value -> p Json.pair String "unknown2" (Value -> (Key, Value)) -> Value -> (Key, Value) forall a b. (a -> b) -> a -> b $ Schema -> Value Schema.ref Schema Schema.boolean, Bool True), (String -> Value -> (Key, Value) forall value e p. (ToJSON value, KeyValue e p) => String -> value -> p Json.pair String "unknown3" (Value -> (Key, Value)) -> Value -> (Key, Value) forall a b. (a -> b) -> a -> b $ Schema -> Value Schema.ref Schema U32.schema, Bool True), (String -> Value -> (Key, Value) forall value e p. (ToJSON value, KeyValue e p) => String -> value -> p Json.pair String "unknown4" (Value -> (Key, Value)) -> Value -> (Key, Value) forall a b. (a -> b) -> a -> b $ Schema -> Value Schema.ref Schema I32.schema, Bool True), (String -> Value -> (Key, Value) forall value e p. (ToJSON value, KeyValue e p) => String -> value -> p Json.pair String "unknown5" (Value -> (Key, Value)) -> Value -> (Key, Value) forall a b. (a -> b) -> a -> b $ Schema -> Value Schema.ref Schema I32.schema, Bool True), (String -> Value -> (Key, Value) forall value e p. (ToJSON value, KeyValue e p) => String -> value -> p Json.pair String "unknown6" (Value -> (Key, Value)) -> Value -> (Key, Value) forall a b. (a -> b) -> a -> b $ Schema -> Value Schema.ref Schema Schema.boolean, Bool True), (String -> Value -> (Key, Value) forall value e p. (ToJSON value, KeyValue e p) => String -> value -> p Json.pair String "unknown7" (Value -> (Key, Value)) -> Value -> (Key, Value) 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 unknown1 <- String -> BitGet Bool -> BitGet Bool forall a. String -> BitGet a -> BitGet a BitGet.label String "unknown1" BitGet Bool BitGet.bool unknown2 <- BitGet.label "unknown2" BitGet.bool unknown3 <- BitGet.label "unknown3" U32.bitGet unknown4 <- BitGet.label "unknown4" I32.bitGet unknown5 <- BitGet.label "unknown5" I32.bitGet unknown6 <- BitGet.label "unknown6" BitGet.bool unknown7 <- BitGet.label "unknown7" BitGet.bool pure PickupInfo { unknown1, unknown2, unknown3, unknown4, unknown5, unknown6, unknown7 }