rattletrap 4.0.9 → 4.1.0
raw patch · 23 files changed
+73/−55 lines, 23 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Rattletrap: [loadoutAttributeUnknown4] :: LoadoutAttribute -> Maybe Word32le
+ Rattletrap: [loadoutAttributeUnknown5] :: LoadoutAttribute -> Maybe Word32le
+ Rattletrap: [loadoutAttributeUnknown6] :: LoadoutAttribute -> Maybe Word32le
+ Rattletrap: [rigidBodyStateAttributeUnknown1] :: RigidBodyStateAttribute -> Maybe Bool
+ Rattletrap: [rigidBodyStateAttributeUnknown2] :: RigidBodyStateAttribute -> Maybe Bool
+ Rattletrap: [vectorSize] :: Vector -> CompressedWord
+ Rattletrap.Type.LoadoutAttribute: [loadoutAttributeUnknown4] :: LoadoutAttribute -> Maybe Word32le
+ Rattletrap.Type.LoadoutAttribute: [loadoutAttributeUnknown5] :: LoadoutAttribute -> Maybe Word32le
+ Rattletrap.Type.LoadoutAttribute: [loadoutAttributeUnknown6] :: LoadoutAttribute -> Maybe Word32le
+ Rattletrap.Type.RigidBodyStateAttribute: [rigidBodyStateAttributeUnknown1] :: RigidBodyStateAttribute -> Maybe Bool
+ Rattletrap.Type.RigidBodyStateAttribute: [rigidBodyStateAttributeUnknown2] :: RigidBodyStateAttribute -> Maybe Bool
+ Rattletrap.Type.Vector: [vectorSize] :: Vector -> CompressedWord
- Rattletrap: LoadoutAttribute :: Word8le -> Word32le -> Word32le -> Word32le -> Word32le -> Word32le -> Word32le -> Word32le -> Maybe Word32le -> Maybe Word32le -> Maybe Word32le -> Maybe Word32le -> Maybe Word32le -> Maybe Word32le -> LoadoutAttribute
+ Rattletrap: LoadoutAttribute :: Word8le -> Word32le -> Word32le -> Word32le -> Word32le -> Word32le -> Word32le -> Word32le -> Maybe Word32le -> Maybe Word32le -> Maybe Word32le -> Maybe Word32le -> Maybe Word32le -> Maybe Word32le -> Maybe Word32le -> Maybe Word32le -> Maybe Word32le -> LoadoutAttribute
- Rattletrap: RigidBodyStateAttribute :: Bool -> Vector -> CompressedWordVector -> Maybe Vector -> Maybe Vector -> RigidBodyStateAttribute
+ Rattletrap: RigidBodyStateAttribute :: Bool -> Vector -> Maybe Bool -> CompressedWordVector -> Maybe Bool -> Maybe Vector -> Maybe Vector -> RigidBodyStateAttribute
- Rattletrap: Vector :: Word -> Int -> Int -> Int -> Vector
+ Rattletrap: Vector :: CompressedWord -> Word -> Int -> Int -> Int -> Vector
- Rattletrap.Decode.AppliedDamageAttribute: decodeAppliedDamageAttributeBits :: DecodeBits AppliedDamageAttribute
+ Rattletrap.Decode.AppliedDamageAttribute: decodeAppliedDamageAttributeBits :: (Int, Int, Int) -> DecodeBits AppliedDamageAttribute
- Rattletrap.Decode.CompressedWordVector: decodeCompressedWordVectorBits :: DecodeBits CompressedWordVector
+ Rattletrap.Decode.CompressedWordVector: decodeCompressedWordVectorBits :: (Int, Int, Int) -> DecodeBits CompressedWordVector
- Rattletrap.Decode.DamageStateAttribute: decodeDamageStateAttributeBits :: DecodeBits DamageStateAttribute
+ Rattletrap.Decode.DamageStateAttribute: decodeDamageStateAttributeBits :: (Int, Int, Int) -> DecodeBits DamageStateAttribute
- Rattletrap.Decode.DemolishAttribute: decodeDemolishAttributeBits :: DecodeBits DemolishAttribute
+ Rattletrap.Decode.DemolishAttribute: decodeDemolishAttributeBits :: (Int, Int, Int) -> DecodeBits DemolishAttribute
- Rattletrap.Decode.ExplosionAttribute: decodeExplosionAttributeBits :: DecodeBits ExplosionAttribute
+ Rattletrap.Decode.ExplosionAttribute: decodeExplosionAttributeBits :: (Int, Int, Int) -> DecodeBits ExplosionAttribute
- Rattletrap.Decode.ExtendedExplosionAttribute: decodeExtendedExplosionAttributeBits :: DecodeBits ExtendedExplosionAttribute
+ Rattletrap.Decode.ExtendedExplosionAttribute: decodeExtendedExplosionAttributeBits :: (Int, Int, Int) -> DecodeBits ExtendedExplosionAttribute
- Rattletrap.Decode.Initialization: decodeInitializationBits :: Bool -> Bool -> DecodeBits Initialization
+ Rattletrap.Decode.Initialization: decodeInitializationBits :: (Int, Int, Int) -> Bool -> Bool -> DecodeBits Initialization
- Rattletrap.Decode.LocationAttribute: decodeLocationAttributeBits :: DecodeBits LocationAttribute
+ Rattletrap.Decode.LocationAttribute: decodeLocationAttributeBits :: (Int, Int, Int) -> DecodeBits LocationAttribute
- Rattletrap.Decode.RigidBodyStateAttribute: decodeRigidBodyStateAttributeBits :: DecodeBits RigidBodyStateAttribute
+ Rattletrap.Decode.RigidBodyStateAttribute: decodeRigidBodyStateAttributeBits :: (Int, Int, Int) -> DecodeBits RigidBodyStateAttribute
- Rattletrap.Decode.Vector: decodeVectorBits :: DecodeBits Vector
+ Rattletrap.Decode.Vector: decodeVectorBits :: (Int, Int, Int) -> DecodeBits Vector
- Rattletrap.Decode.WeldedInfoAttribute: decodeWeldedInfoAttributeBits :: DecodeBits WeldedInfoAttribute
+ Rattletrap.Decode.WeldedInfoAttribute: decodeWeldedInfoAttributeBits :: (Int, Int, Int) -> DecodeBits WeldedInfoAttribute
- Rattletrap.Type.LoadoutAttribute: LoadoutAttribute :: Word8le -> Word32le -> Word32le -> Word32le -> Word32le -> Word32le -> Word32le -> Word32le -> Maybe Word32le -> Maybe Word32le -> Maybe Word32le -> Maybe Word32le -> Maybe Word32le -> Maybe Word32le -> LoadoutAttribute
+ Rattletrap.Type.LoadoutAttribute: LoadoutAttribute :: Word8le -> Word32le -> Word32le -> Word32le -> Word32le -> Word32le -> Word32le -> Word32le -> Maybe Word32le -> Maybe Word32le -> Maybe Word32le -> Maybe Word32le -> Maybe Word32le -> Maybe Word32le -> Maybe Word32le -> Maybe Word32le -> Maybe Word32le -> LoadoutAttribute
- Rattletrap.Type.RigidBodyStateAttribute: RigidBodyStateAttribute :: Bool -> Vector -> CompressedWordVector -> Maybe Vector -> Maybe Vector -> RigidBodyStateAttribute
+ Rattletrap.Type.RigidBodyStateAttribute: RigidBodyStateAttribute :: Bool -> Vector -> Maybe Bool -> CompressedWordVector -> Maybe Bool -> Maybe Vector -> Maybe Vector -> RigidBodyStateAttribute
- Rattletrap.Type.Vector: Vector :: Word -> Int -> Int -> Int -> Vector
+ Rattletrap.Type.Vector: Vector :: CompressedWord -> Word -> Int -> Int -> Int -> Vector
Files
- library/Rattletrap/Decode/AppliedDamageAttribute.hs +3/−3
- library/Rattletrap/Decode/AttributeValue.hs +8/−8
- library/Rattletrap/Decode/CompressedWordVector.hs +7/−7
- library/Rattletrap/Decode/DamageStateAttribute.hs +3/−3
- library/Rattletrap/Decode/DemolishAttribute.hs +4/−4
- library/Rattletrap/Decode/ExplosionAttribute.hs +3/−3
- library/Rattletrap/Decode/ExtendedExplosionAttribute.hs +3/−3
- library/Rattletrap/Decode/Initialization.hs +3/−3
- library/Rattletrap/Decode/LoadoutAttribute.hs +3/−0
- library/Rattletrap/Decode/LocationAttribute.hs +2/−2
- library/Rattletrap/Decode/RigidBodyStateAttribute.hs +8/−6
- library/Rattletrap/Decode/SpawnedReplication.hs +1/−1
- library/Rattletrap/Decode/Vector.hs +4/−4
- library/Rattletrap/Decode/WeldedInfoAttribute.hs +3/−3
- library/Rattletrap/Encode/LoadoutAttribute.hs +3/−0
- library/Rattletrap/Encode/RigidBodyStateAttribute.hs +2/−0
- library/Rattletrap/Encode/Vector.hs +1/−1
- library/Rattletrap/Type/LoadoutAttribute.hs +3/−0
- library/Rattletrap/Type/RigidBodyStateAttribute.hs +2/−0
- library/Rattletrap/Type/Vector.hs +3/−1
- package.yaml +1/−1
- rattletrap.cabal +2/−2
- tests/Main.hs +1/−0
library/Rattletrap/Decode/AppliedDamageAttribute.hs view
@@ -8,10 +8,10 @@ import Rattletrap.Decode.Word8le import Rattletrap.Type.AppliedDamageAttribute -decodeAppliedDamageAttributeBits :: DecodeBits AppliedDamageAttribute-decodeAppliedDamageAttributeBits =+decodeAppliedDamageAttributeBits :: (Int, Int, Int) -> DecodeBits AppliedDamageAttribute+decodeAppliedDamageAttributeBits version = AppliedDamageAttribute <$> decodeWord8leBits- <*> decodeVectorBits+ <*> decodeVectorBits version <*> decodeInt32leBits <*> decodeInt32leBits
library/Rattletrap/Decode/AttributeValue.hs view
@@ -55,7 +55,7 @@ (Map.lookup name attributeTypes) case constructor of AttributeTypeAppliedDamage ->- AttributeValueAppliedDamage <$> decodeAppliedDamageAttributeBits+ AttributeValueAppliedDamage <$> decodeAppliedDamageAttributeBits version AttributeTypeBoolean -> AttributeValueBoolean <$> decodeBooleanAttributeBits AttributeTypeByte -> AttributeValueByte <$> decodeByteAttributeBits@@ -64,14 +64,14 @@ AttributeTypeClubColors -> AttributeValueClubColors <$> decodeClubColorsAttributeBits AttributeTypeDamageState ->- AttributeValueDamageState <$> decodeDamageStateAttributeBits+ AttributeValueDamageState <$> decodeDamageStateAttributeBits version AttributeTypeDemolish ->- AttributeValueDemolish <$> decodeDemolishAttributeBits+ AttributeValueDemolish <$> decodeDemolishAttributeBits version AttributeTypeEnum -> AttributeValueEnum <$> decodeEnumAttributeBits AttributeTypeExplosion ->- AttributeValueExplosion <$> decodeExplosionAttributeBits+ AttributeValueExplosion <$> decodeExplosionAttributeBits version AttributeTypeExtendedExplosion ->- AttributeValueExtendedExplosion <$> decodeExtendedExplosionAttributeBits+ AttributeValueExtendedExplosion <$> decodeExtendedExplosionAttributeBits version AttributeTypeFlaggedInt -> AttributeValueFlaggedInt <$> decodeFlaggedIntAttributeBits AttributeTypeFloat -> AttributeValueFloat <$> decodeFloatAttributeBits@@ -89,7 +89,7 @@ AttributeValueLoadoutsOnline <$> decodeLoadoutsOnlineAttributeBits version objectMap AttributeTypeLocation ->- AttributeValueLocation <$> decodeLocationAttributeBits+ AttributeValueLocation <$> decodeLocationAttributeBits version AttributeTypeMusicStinger -> AttributeValueMusicStinger <$> decodeMusicStingerAttributeBits AttributeTypePartyLeader ->@@ -104,7 +104,7 @@ AttributeTypeReservation -> AttributeValueReservation <$> decodeReservationAttributeBits version AttributeTypeRigidBodyState ->- AttributeValueRigidBodyState <$> decodeRigidBodyStateAttributeBits+ AttributeValueRigidBodyState <$> decodeRigidBodyStateAttributeBits version AttributeTypeStatEvent -> AttributeValueStatEvent <$> decodeStatEventAttributeBits AttributeTypeString -> AttributeValueString <$> decodeStringAttributeBits@@ -114,7 +114,7 @@ AttributeTypeUniqueId -> AttributeValueUniqueId <$> decodeUniqueIdAttributeBits version AttributeTypeWeldedInfo ->- AttributeValueWeldedInfo <$> decodeWeldedInfoAttributeBits+ AttributeValueWeldedInfo <$> decodeWeldedInfoAttributeBits version attributeTypes :: Map Str AttributeType attributeTypes = Map.mapKeys toStr (Map.fromList rawAttributeTypes)
library/Rattletrap/Decode/CompressedWordVector.hs view
@@ -6,12 +6,12 @@ import Rattletrap.Decode.CompressedWord import Rattletrap.Type.CompressedWordVector -decodeCompressedWordVectorBits :: DecodeBits CompressedWordVector-decodeCompressedWordVectorBits =+decodeCompressedWordVectorBits :: (Int, Int, Int) -> DecodeBits CompressedWordVector+decodeCompressedWordVectorBits version = CompressedWordVector- <$> decodeCompressedWordBits limit- <*> decodeCompressedWordBits limit- <*> decodeCompressedWordBits limit+ <$> decodeCompressedWordBits (limit version)+ <*> decodeCompressedWordBits (limit version)+ <*> decodeCompressedWordBits (limit version) -limit :: Word-limit = 65536+limit :: (Int, Int, Int) -> Word+limit version = if version >= (868, 22, 7) then 262144 else 65536
library/Rattletrap/Decode/DamageStateAttribute.hs view
@@ -8,12 +8,12 @@ import Rattletrap.Decode.Word8le import Rattletrap.Type.DamageStateAttribute -decodeDamageStateAttributeBits :: DecodeBits DamageStateAttribute-decodeDamageStateAttributeBits =+decodeDamageStateAttributeBits :: (Int, Int, Int) -> DecodeBits DamageStateAttribute+decodeDamageStateAttributeBits version = DamageStateAttribute <$> decodeWord8leBits <*> getBool <*> decodeInt32leBits- <*> decodeVectorBits+ <*> decodeVectorBits version <*> getBool <*> getBool
library/Rattletrap/Decode/DemolishAttribute.hs view
@@ -7,12 +7,12 @@ import Rattletrap.Decode.Word32le import Rattletrap.Type.DemolishAttribute -decodeDemolishAttributeBits :: DecodeBits DemolishAttribute-decodeDemolishAttributeBits =+decodeDemolishAttributeBits :: (Int, Int, Int) -> DecodeBits DemolishAttribute+decodeDemolishAttributeBits version = DemolishAttribute <$> getBool <*> decodeWord32leBits <*> getBool <*> decodeWord32leBits- <*> decodeVectorBits- <*> decodeVectorBits+ <*> decodeVectorBits version+ <*> decodeVectorBits version
library/Rattletrap/Decode/ExplosionAttribute.hs view
@@ -7,6 +7,6 @@ import Rattletrap.Decode.Vector import Rattletrap.Type.ExplosionAttribute -decodeExplosionAttributeBits :: DecodeBits ExplosionAttribute-decodeExplosionAttributeBits =- ExplosionAttribute <$> getBool <*> decodeInt32leBits <*> decodeVectorBits+decodeExplosionAttributeBits :: (Int, Int, Int) -> DecodeBits ExplosionAttribute+decodeExplosionAttributeBits version =+ ExplosionAttribute <$> getBool <*> decodeInt32leBits <*> decodeVectorBits version
library/Rattletrap/Decode/ExtendedExplosionAttribute.hs view
@@ -7,8 +7,8 @@ import Rattletrap.Decode.FlaggedIntAttribute import Rattletrap.Type.ExtendedExplosionAttribute -decodeExtendedExplosionAttributeBits :: DecodeBits ExtendedExplosionAttribute-decodeExtendedExplosionAttributeBits =+decodeExtendedExplosionAttributeBits :: (Int, Int, Int) -> DecodeBits ExtendedExplosionAttribute+decodeExtendedExplosionAttributeBits version = ExtendedExplosionAttribute- <$> decodeExplosionAttributeBits+ <$> decodeExplosionAttributeBits version <*> decodeFlaggedIntAttributeBits
library/Rattletrap/Decode/Initialization.hs view
@@ -7,8 +7,8 @@ import Rattletrap.Decode.Vector import Rattletrap.Type.Initialization -decodeInitializationBits :: Bool -> Bool -> DecodeBits Initialization-decodeInitializationBits hasLocation hasRotation =+decodeInitializationBits :: (Int, Int, Int) -> Bool -> Bool -> DecodeBits Initialization+decodeInitializationBits version hasLocation hasRotation = Initialization- <$> decodeWhen hasLocation decodeVectorBits+ <$> decodeWhen hasLocation (decodeVectorBits version) <*> decodeWhen hasRotation decodeInt8VectorBits
library/Rattletrap/Decode/LoadoutAttribute.hs view
@@ -25,3 +25,6 @@ <*> decodeWhen (version >= Word8le 16) decodeWord32leBits <*> decodeWhen (version >= Word8le 17) decodeWord32leBits <*> decodeWhen (version >= Word8le 19) decodeWord32leBits+ <*> decodeWhen (version >= Word8le 22) decodeWord32leBits+ <*> decodeWhen (version >= Word8le 22) decodeWord32leBits+ <*> decodeWhen (version >= Word8le 22) decodeWord32leBits
library/Rattletrap/Decode/LocationAttribute.hs view
@@ -6,5 +6,5 @@ import Rattletrap.Decode.Vector import Rattletrap.Type.LocationAttribute -decodeLocationAttributeBits :: DecodeBits LocationAttribute-decodeLocationAttributeBits = LocationAttribute <$> decodeVectorBits+decodeLocationAttributeBits :: (Int, Int, Int) -> DecodeBits LocationAttribute+decodeLocationAttributeBits version = LocationAttribute <$> decodeVectorBits version
library/Rattletrap/Decode/RigidBodyStateAttribute.hs view
@@ -7,11 +7,13 @@ import Rattletrap.Decode.Vector import Rattletrap.Type.RigidBodyStateAttribute -decodeRigidBodyStateAttributeBits :: DecodeBits RigidBodyStateAttribute-decodeRigidBodyStateAttributeBits = do+decodeRigidBodyStateAttributeBits :: (Int, Int, Int) -> DecodeBits RigidBodyStateAttribute+decodeRigidBodyStateAttributeBits version = do sleeping <- getBool RigidBodyStateAttribute sleeping- <$> decodeVectorBits- <*> decodeCompressedWordVectorBits- <*> decodeWhen (not sleeping) decodeVectorBits- <*> decodeWhen (not sleeping) decodeVectorBits+ <$> decodeVectorBits version+ <*> decodeWhen (version >= (868, 22, 7)) getBool+ <*> decodeCompressedWordVectorBits version+ <*> decodeWhen (version >= (868, 22, 7)) getBool+ <*> decodeWhen (not sleeping) (decodeVectorBits version)+ <*> decodeWhen (not sleeping) (decodeVectorBits version)
library/Rattletrap/Decode/SpawnedReplication.hs view
@@ -37,7 +37,7 @@ let hasLocation = classHasLocation className let hasRotation = classHasRotation className initialization <- Trans.lift- (decodeInitializationBits hasLocation hasRotation)+ (decodeInitializationBits version hasLocation hasRotation) pure ( SpawnedReplication flag
library/Rattletrap/Decode/Vector.hs view
@@ -7,13 +7,13 @@ import Rattletrap.Type.CompressedWord import Rattletrap.Type.Vector -decodeVectorBits :: DecodeBits Vector-decodeVectorBits = do- size <- decodeCompressedWordBits 19+decodeVectorBits :: (Int, Int, Int) -> DecodeBits Vector+decodeVectorBits version = do+ size <- decodeCompressedWordBits (if version >= (868, 22, 7) then 21 else 19) let limit = getLimit size bias = getBias size- Vector bias+ Vector size bias <$> fmap (fromDelta bias) (decodeCompressedWordBits limit) <*> fmap (fromDelta bias) (decodeCompressedWordBits limit) <*> fmap (fromDelta bias) (decodeCompressedWordBits limit)
library/Rattletrap/Decode/WeldedInfoAttribute.hs view
@@ -9,11 +9,11 @@ import Rattletrap.Decode.Vector import Rattletrap.Type.WeldedInfoAttribute -decodeWeldedInfoAttributeBits :: DecodeBits WeldedInfoAttribute-decodeWeldedInfoAttributeBits =+decodeWeldedInfoAttributeBits :: (Int, Int, Int) -> DecodeBits WeldedInfoAttribute+decodeWeldedInfoAttributeBits version = WeldedInfoAttribute <$> getBool <*> decodeInt32leBits- <*> decodeVectorBits+ <*> decodeVectorBits version <*> decodeFloat32leBits <*> decodeInt8VectorBits
library/Rattletrap/Encode/LoadoutAttribute.hs view
@@ -24,6 +24,9 @@ putOptional (loadoutAttributeGoalExplosion loadoutAttribute) putWord32Bits putOptional (loadoutAttributeBanner loadoutAttribute) putWord32Bits putOptional (loadoutAttributeUnknown3 loadoutAttribute) putWord32Bits+ putOptional (loadoutAttributeUnknown4 loadoutAttribute) putWord32Bits+ putOptional (loadoutAttributeUnknown5 loadoutAttribute) putWord32Bits+ putOptional (loadoutAttributeUnknown6 loadoutAttribute) putWord32Bits putOptional :: Maybe a -> (a -> BinaryBits.BitPut ()) -> BinaryBits.BitPut () putOptional m f = case m of
library/Rattletrap/Encode/RigidBodyStateAttribute.hs view
@@ -12,8 +12,10 @@ putRigidBodyStateAttribute rigidBodyStateAttribute = do BinaryBits.putBool (rigidBodyStateAttributeSleeping rigidBodyStateAttribute) putVector (rigidBodyStateAttributeLocation rigidBodyStateAttribute)+ maybe (pure ()) BinaryBits.putBool (rigidBodyStateAttributeUnknown1 rigidBodyStateAttribute) putCompressedWordVector (rigidBodyStateAttributeRotation rigidBodyStateAttribute)+ maybe (pure ()) BinaryBits.putBool (rigidBodyStateAttributeUnknown2 rigidBodyStateAttribute) case rigidBodyStateAttributeLinearVelocity rigidBodyStateAttribute of Nothing -> pure () Just linearVelocity -> putVector linearVelocity
library/Rattletrap/Encode/Vector.hs view
@@ -20,7 +20,7 @@ dz = fromIntegral (vectorZ vector + fromIntegral (vectorBias vector)) :: Word limit = 2 ^ (bitSize + 2) :: Word- putCompressedWord (CompressedWord 19 bitSize)+ putCompressedWord (vectorSize vector) putCompressedWord (CompressedWord limit dx) putCompressedWord (CompressedWord limit dy) putCompressedWord (CompressedWord limit dz)
library/Rattletrap/Type/LoadoutAttribute.hs view
@@ -24,6 +24,9 @@ , loadoutAttributeGoalExplosion :: Maybe Word32le , loadoutAttributeBanner :: Maybe Word32le , loadoutAttributeUnknown3 :: Maybe Word32le+ , loadoutAttributeUnknown4 :: Maybe Word32le+ , loadoutAttributeUnknown5 :: Maybe Word32le+ , loadoutAttributeUnknown6 :: Maybe Word32le } deriving (Eq, Ord, Show) $(deriveJson ''LoadoutAttribute)
library/Rattletrap/Type/RigidBodyStateAttribute.hs view
@@ -11,7 +11,9 @@ data RigidBodyStateAttribute = RigidBodyStateAttribute { rigidBodyStateAttributeSleeping :: Bool , rigidBodyStateAttributeLocation :: Vector+ , rigidBodyStateAttributeUnknown1 :: Maybe Bool , rigidBodyStateAttributeRotation :: CompressedWordVector+ , rigidBodyStateAttributeUnknown2 :: Maybe Bool , rigidBodyStateAttributeLinearVelocity :: Maybe Vector , rigidBodyStateAttributeAngularVelocity :: Maybe Vector } deriving (Eq, Ord, Show)
library/Rattletrap/Type/Vector.hs view
@@ -5,9 +5,11 @@ ) where import Rattletrap.Type.Common+import Rattletrap.Type.CompressedWord data Vector = Vector- { vectorBias :: Word+ { vectorSize :: CompressedWord+ , vectorBias :: Word , vectorX :: Int , vectorY :: Int , vectorZ :: Int
package.yaml view
@@ -1,5 +1,5 @@ name: rattletrap-version: 4.0.9+version: 4.1.0 category: Game description: Rattletrap parses and generates Rocket League replays.
rattletrap.cabal view
@@ -2,10 +2,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: e986168506e97e019ab191e8e508ee5fbe8b21f26017594422c0f4883558fb51+-- hash: f84e96b60bea510eedb4cf3a04c0dcc3155ccd26f8c4e6b0e081b8a1d0d83211 name: rattletrap-version: 4.0.9+version: 4.1.0 synopsis: Parse and generate Rocket League replays. description: Rattletrap parses and generates Rocket League replays. category: Game
tests/Main.hs view
@@ -94,6 +94,7 @@ , ("a558", "extended explosion data") , ("a671", "a waiting player") , ("a7f0", "a ready attribute")+ , ("a9df", "salty shores patch 1.45") , ("afb1", "patch 1.37") , ("b9f9", "a party leader") , ("c14f", "some mutators")