packages feed

rattletrap 7.0.3 → 8.0.0

raw patch · 11 files changed

+36/−72 lines, 11 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Rattletrap: Bitstream :: [Bool] -> Bitstream
- Rattletrap: [bitstreamValue] :: Bitstream -> [Bool]
- Rattletrap: newtype Bitstream
- Rattletrap: PlayerHistoryKeyAttribute :: Bitstream -> PlayerHistoryKeyAttribute
+ Rattletrap: PlayerHistoryKeyAttribute :: Word16 -> PlayerHistoryKeyAttribute
- Rattletrap: RemoteIdPsyNet :: Bitstream -> RemoteId
+ Rattletrap: RemoteIdPsyNet :: Either Word64le (Word64le, Word64le, Word64le, Word64le) -> RemoteId
- Rattletrap: RemoteIdSwitch :: Bitstream -> RemoteId
+ Rattletrap: RemoteIdSwitch :: Word64le -> Word64le -> Word64le -> Word64le -> RemoteId
- Rattletrap: [playerHistoryKeyAttributeUnknown] :: PlayerHistoryKeyAttribute -> Bitstream
+ Rattletrap: [playerHistoryKeyAttributeUnknown] :: PlayerHistoryKeyAttribute -> Word16

Files

library/Rattletrap.hs view
@@ -10,7 +10,6 @@   , Rattletrap.Type.AttributeMapping.AttributeMapping(..)   , Rattletrap.Type.AttributeType.AttributeType(..)   , Rattletrap.Type.AttributeValue.AttributeValue(..)-  , Rattletrap.Type.Bitstream.Bitstream(..)   , Rattletrap.Type.BooleanAttribute.BooleanAttribute(..)   , Rattletrap.Type.ByteAttribute.ByteAttribute(..)   , Rattletrap.Type.Cache.Cache(..)@@ -90,7 +89,6 @@ import qualified Rattletrap.Type.AttributeMapping import qualified Rattletrap.Type.AttributeType import qualified Rattletrap.Type.AttributeValue-import qualified Rattletrap.Type.Bitstream import qualified Rattletrap.Type.BooleanAttribute import qualified Rattletrap.Type.ByteAttribute import qualified Rattletrap.Type.Cache
− library/Rattletrap/Decode/Bitstream.hs
@@ -1,12 +0,0 @@-module Rattletrap.Decode.Bitstream-  ( decodeBitstreamBits-  )-where--import Rattletrap.Decode.Common-import Rattletrap.Type.Bitstream--import qualified Control.Monad as Monad--decodeBitstreamBits :: Int -> DecodeBits Bitstream-decodeBitstreamBits n = Bitstream <$> Monad.replicateM n getBool
library/Rattletrap/Decode/PlayerHistoryKeyAttribute.hs view
@@ -3,10 +3,9 @@   ) where -import Rattletrap.Decode.Bitstream import Rattletrap.Decode.Common import Rattletrap.Type.PlayerHistoryKeyAttribute  decodePlayerHistoryKeyAttributeBits :: DecodeBits PlayerHistoryKeyAttribute decodePlayerHistoryKeyAttributeBits =-  PlayerHistoryKeyAttribute <$> decodeBitstreamBits 14+  PlayerHistoryKeyAttribute <$> getWord16be 14
library/Rattletrap/Decode/RemoteId.hs view
@@ -4,10 +4,10 @@ where  import Data.Semigroup ((<>))-import Rattletrap.Decode.Bitstream import Rattletrap.Decode.Common import Rattletrap.Decode.Word64le import Rattletrap.Type.RemoteId+import Rattletrap.Type.Word64le import Rattletrap.Type.Word8le import Rattletrap.Utility.Bytes @@ -22,9 +22,12 @@   1 -> RemoteIdSteam <$> decodeWord64leBits   2 -> RemoteIdPlayStation <$> decodePsName <*> decodePsBytes version   4 -> RemoteIdXbox <$> decodeWord64leBits-  6 -> RemoteIdSwitch <$> decodeBitstreamBits 256-  7 -> RemoteIdPsyNet-    <$> decodeBitstreamBits (if version >= (868, 24, 10) then 64 else 256)+  6 -> do+    (a, b, c, d) <- getWord256+    pure $ RemoteIdSwitch a b c d+  7 -> if version >= (868, 24, 10)+    then RemoteIdPsyNet . Left <$> decodeWord64leBits+    else RemoteIdPsyNet . Right <$> getWord256   _ -> fail ("unknown system id " <> show systemId)  decodePsName :: DecodeBits Text.Text@@ -35,3 +38,11 @@ decodePsBytes :: (Int, Int, Int) -> DecodeBits [Word.Word8] decodePsBytes version = Bytes.unpack   <$> getByteStringBits (if version >= (868, 20, 1) then 24 else 16)++getWord256 :: DecodeBits (Word64le, Word64le, Word64le, Word64le)+getWord256 = do+  a <- decodeWord64leBits+  b <- decodeWord64leBits+  c <- decodeWord64leBits+  d <- decodeWord64leBits+  pure (a, b, c, d)
− library/Rattletrap/Encode/Bitstream.hs
@@ -1,11 +0,0 @@-module Rattletrap.Encode.Bitstream-  ( putBitstream-  )-where--import Rattletrap.Type.Bitstream--import qualified Data.Binary.Bits.Put as BinaryBits--putBitstream :: Bitstream -> BinaryBits.BitPut ()-putBitstream = mapM_ BinaryBits.putBool . bitstreamValue
library/Rattletrap/Encode/PlayerHistoryKeyAttribute.hs view
@@ -3,11 +3,11 @@   ) where -import Rattletrap.Encode.Bitstream import Rattletrap.Type.PlayerHistoryKeyAttribute  import qualified Data.Binary.Bits.Put as BinaryBits  putPlayerHistoryKeyAttribute   :: PlayerHistoryKeyAttribute -> BinaryBits.BitPut ()-putPlayerHistoryKeyAttribute = putBitstream . playerHistoryKeyAttributeUnknown+putPlayerHistoryKeyAttribute =+  BinaryBits.putWord16be 14 . playerHistoryKeyAttributeUnknown
library/Rattletrap/Encode/RemoteId.hs view
@@ -3,9 +3,9 @@   ) where -import Rattletrap.Encode.Bitstream import Rattletrap.Encode.Word64le import Rattletrap.Type.RemoteId+import Rattletrap.Type.Word64le import Rattletrap.Utility.Bytes  import qualified Data.Binary.Bits.Put as BinaryBits@@ -17,8 +17,18 @@     let rawName = reverseBytes (padBytes (16 :: Int) (encodeLatin1 name))     BinaryBits.putByteString rawName     BinaryBits.putByteString (Bytes.pack bytes)-  RemoteIdPsyNet x -> putBitstream x+  RemoteIdPsyNet e -> case e of+    Left l -> putWord64Bits l+    Right (a, b, c, d) -> putWord256 a b c d   RemoteIdSplitscreen word24 -> BinaryBits.putWord32be 24 word24   RemoteIdSteam word64 -> putWord64Bits word64-  RemoteIdSwitch x -> putBitstream x+  RemoteIdSwitch a b c d -> putWord256 a b c d   RemoteIdXbox word64 -> putWord64Bits word64++putWord256+  :: Word64le -> Word64le -> Word64le -> Word64le -> BinaryBits.BitPut ()+putWord256 a b c d = do+  putWord64Bits a+  putWord64Bits b+  putWord64Bits c+  putWord64Bits d
− library/Rattletrap/Type/Bitstream.hs
@@ -1,27 +0,0 @@-module Rattletrap.Type.Bitstream-  ( Bitstream(..)-  )-where--import qualified Data.Aeson as Json-import qualified Data.Bool as Bool-import qualified Data.Text as Text--newtype Bitstream = Bitstream-  { bitstreamValue :: [Bool]-  } deriving (Eq, Ord, Show)--instance Json.FromJSON Bitstream where-  parseJSON = Json.withText-    "Bitstream"-    (\text -> Bitstream <$> mapM-      (\char -> case char of-        '0' -> pure False-        '1' -> pure True-        _ -> fail ("invalid bit: " <> show char)-      )-      (Text.unpack text)-    )--instance Json.ToJSON Bitstream where-  toJSON = Json.toJSON . fmap (Bool.bool '0' '1') . bitstreamValue
library/Rattletrap/Type/PlayerHistoryKeyAttribute.hs view
@@ -5,11 +5,10 @@   ) where -import Rattletrap.Type.Bitstream import Rattletrap.Type.Common  newtype PlayerHistoryKeyAttribute = PlayerHistoryKeyAttribute-  { playerHistoryKeyAttributeUnknown :: Bitstream+  { playerHistoryKeyAttributeUnknown :: Word16   } deriving (Eq, Ord, Show)  $(deriveJson ''PlayerHistoryKeyAttribute)
library/Rattletrap/Type/RemoteId.hs view
@@ -5,16 +5,16 @@   ) where -import Rattletrap.Type.Bitstream import Rattletrap.Type.Common import Rattletrap.Type.Word64le  data RemoteId   = RemoteIdPlayStation Text [Word8]-  | RemoteIdPsyNet Bitstream+  | RemoteIdPsyNet (Either Word64le (Word64le, Word64le, Word64le, Word64le))   | RemoteIdSplitscreen Word32+  -- ^ Really only 24 bits.   | RemoteIdSteam Word64le-  | RemoteIdSwitch Bitstream+  | RemoteIdSwitch Word64le Word64le Word64le Word64le   | RemoteIdXbox Word64le   deriving (Eq, Ord, Show) 
rattletrap.cabal view
@@ -1,7 +1,7 @@ cabal-version: 2.2  name: rattletrap-version: 7.0.3+version: 8.0.0  category: Game description: Rattletrap parses and generates Rocket League replays.@@ -60,7 +60,6 @@     Rattletrap.Decode.Attribute     Rattletrap.Decode.AttributeMapping     Rattletrap.Decode.AttributeValue-    Rattletrap.Decode.Bitstream     Rattletrap.Decode.BooleanAttribute     Rattletrap.Decode.ByteAttribute     Rattletrap.Decode.Cache@@ -135,7 +134,6 @@     Rattletrap.Encode.Attribute     Rattletrap.Encode.AttributeMapping     Rattletrap.Encode.AttributeValue-    Rattletrap.Encode.Bitstream     Rattletrap.Encode.BooleanAttribute     Rattletrap.Encode.ByteAttribute     Rattletrap.Encode.Cache@@ -210,7 +208,6 @@     Rattletrap.Type.AttributeMapping     Rattletrap.Type.AttributeType     Rattletrap.Type.AttributeValue-    Rattletrap.Type.Bitstream     Rattletrap.Type.BooleanAttribute     Rattletrap.Type.ByteAttribute     Rattletrap.Type.Cache