rattletrap 0.1.6 → 0.1.7
raw patch · 23 files changed
+71/−17 lines, 23 filesbinary-addedPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
+ Rattletrap.AttributeValue: ClubColorsAttribute :: ClubColorsAttributeValue -> AttributeValue
+ Rattletrap.AttributeValue.ClubColors: ClubColorsAttributeValue :: Bool -> Word8 -> Bool -> Word8 -> ClubColorsAttributeValue
+ Rattletrap.AttributeValue.ClubColors: [clubColorsAttributeValueBlueColor] :: ClubColorsAttributeValue -> Word8
+ Rattletrap.AttributeValue.ClubColors: [clubColorsAttributeValueBlueFlag] :: ClubColorsAttributeValue -> Bool
+ Rattletrap.AttributeValue.ClubColors: [clubColorsAttributeValueOrangeColor] :: ClubColorsAttributeValue -> Word8
+ Rattletrap.AttributeValue.ClubColors: [clubColorsAttributeValueOrangeFlag] :: ClubColorsAttributeValue -> Bool
+ Rattletrap.AttributeValue.ClubColors: data ClubColorsAttributeValue
+ Rattletrap.AttributeValue.ClubColors: getClubColorsAttributeValue :: BitGet ClubColorsAttributeValue
+ Rattletrap.AttributeValue.ClubColors: instance GHC.Classes.Eq Rattletrap.AttributeValue.ClubColors.ClubColorsAttributeValue
+ Rattletrap.AttributeValue.ClubColors: instance GHC.Classes.Ord Rattletrap.AttributeValue.ClubColors.ClubColorsAttributeValue
+ Rattletrap.AttributeValue.ClubColors: instance GHC.Show.Show Rattletrap.AttributeValue.ClubColors.ClubColorsAttributeValue
+ Rattletrap.AttributeValue.ClubColors: putClubColorsAttributeValue :: ClubColorsAttributeValue -> BitPut ()
+ Rattletrap.AttributeValueType: AVClubColors :: AttributeValueType
+ Rattletrap.ReplicationValue.Spawned: [spawnedReplicationValue_className] :: SpawnedReplicationValue -> String
+ Rattletrap.ReplicationValue.Spawned: [spawnedReplicationValue_objectName] :: SpawnedReplicationValue -> String
- Rattletrap.ReplicationValue.Spawned: SpawnedReplicationValue :: Bool -> Word32 -> Initialization -> SpawnedReplicationValue
+ Rattletrap.ReplicationValue.Spawned: SpawnedReplicationValue :: Bool -> Word32 -> String -> String -> Initialization -> SpawnedReplicationValue
Files
- README.markdown +2/−2
- executable/Main.hs +1/−0
- library/Rattletrap/AttributeValue.hs +6/−0
- library/Rattletrap/AttributeValue/ClubColors.hs +29/−0
- library/Rattletrap/AttributeValueType.hs +1/−0
- library/Rattletrap/Data.hs +3/−0
- library/Rattletrap/ReplicationValue/Spawned.hs +10/−1
- rattletrap.cabal +10/−7
- test/Test.hs +9/−7
- test/replays/0AD21FEE4A512906BEB6C98136AAF49A.replay binary
- test/replays/1F3798E540B0C37A946561ABBB3037F9.replay binary
- test/replays/27B6A7B64553F0F685874584F96BAB1B.replay binary
- test/replays/2F817C8C44859C762980AE85B1862A31.replay binary
- test/replays/40D831074157F4C843EA6CBFE0A88140.replay binary
- test/replays/6F7CFCD24638F8A6567AB3A8B9958A90.replay binary
- test/replays/9704208245D7DD851F2FB2BC7DFD9AC3.replay binary
- test/replays/98E58A904D713F2DE202358E8573265D.replay binary
- test/replays/B9318ACC47A5A8C12901F3B0A512CA58.replay binary
- test/replays/C375E0EC4971B506C51678B465D35AE9.replay binary
- test/replays/C80A9959479CFE51673B3A889D717554.replay binary
- test/replays/CB5B422A4424262B2877E9A121329EF2.replay binary
- test/replays/EAE8DADA4BB2DC5422792C9B4A67392D.replay binary
- test/replays/F7B9E14545C7467B89A00895980FCD73.replay binary
README.markdown view
@@ -64,8 +64,8 @@ ``` [Rattletrap]: https://github.com/tfausak/rattletrap-[Version badge]: https://img.shields.io/hackage/v/rattletrap.svg-[version]: https://hackage.haskell.org/package/rattletrap+[Version badge]: https://www.stackage.org/package/rattletrap/badge/nightly?label=version+[version]: https://www.stackage.org/nightly/package/rattletrap [Windows build badge]: https://ci.appveyor.com/api/projects/status/github/tfausak/rattletrap?branch=master&svg=true [windows build]: https://ci.appveyor.com/project/TaylorFausak/rattletrap [Build badge]: https://travis-ci.org/tfausak/rattletrap.svg?branch=master
executable/Main.hs view
@@ -68,6 +68,7 @@ , ''Cache , ''CamSettingsAttributeValue , ''ClassMapping+ , ''ClubColorsAttributeValue , ''CompressedWord , ''CompressedWordVector , ''Content
library/Rattletrap/AttributeValue.hs view
@@ -6,6 +6,7 @@ import Rattletrap.AttributeValue.Boolean as Export import Rattletrap.AttributeValue.Byte as Export import Rattletrap.AttributeValue.CamSettings as Export+import Rattletrap.AttributeValue.ClubColors as Export import Rattletrap.AttributeValue.Demolish as Export import Rattletrap.AttributeValue.Enum as Export import Rattletrap.AttributeValue.Explosion as Export@@ -42,6 +43,7 @@ = BooleanAttribute BooleanAttributeValue | ByteAttribute ByteAttributeValue | CamSettingsAttribute CamSettingsAttributeValue+ | ClubColorsAttribute ClubColorsAttributeValue | DemolishAttribute DemolishAttributeValue | EnumAttribute EnumAttributeValue | ExplosionAttribute ExplosionAttributeValue@@ -81,6 +83,9 @@ AVCamSettings -> do x <- getCamSettingsAttributeValue pure (CamSettingsAttribute x)+ AVClubColors -> do+ x <- getClubColorsAttributeValue+ pure (ClubColorsAttribute x) AVDemolish -> do x <- getDemolishAttributeValue pure (DemolishAttribute x)@@ -162,6 +167,7 @@ BooleanAttribute x -> putBooleanAttributeValue x ByteAttribute x -> putByteAttributeValue x CamSettingsAttribute x -> putCamSettingsAttributeValue x+ ClubColorsAttribute x -> putClubColorsAttributeValue x DemolishAttribute x -> putDemolishAttributeValue x EnumAttribute x -> putEnumAttributeValue x ExplosionAttribute x -> putExplosionAttributeValue x
+ library/Rattletrap/AttributeValue/ClubColors.hs view
@@ -0,0 +1,29 @@+module Rattletrap.AttributeValue.ClubColors where++import Rattletrap.Word8++import qualified Data.Binary.Bits.Get as BinaryBit+import qualified Data.Binary.Bits.Put as BinaryBit++data ClubColorsAttributeValue = ClubColorsAttributeValue+ { clubColorsAttributeValueBlueFlag :: Bool+ , clubColorsAttributeValueBlueColor :: Word8+ , clubColorsAttributeValueOrangeFlag :: Bool+ , clubColorsAttributeValueOrangeColor :: Word8+ } deriving (Eq, Ord, Show)++getClubColorsAttributeValue :: BinaryBit.BitGet ClubColorsAttributeValue+getClubColorsAttributeValue = do+ blueFlag <- BinaryBit.getBool+ blueColor <- getWord8Bits+ orangeFlag <- BinaryBit.getBool+ orangeColor <- getWord8Bits+ pure (ClubColorsAttributeValue blueFlag blueColor orangeFlag orangeColor)++putClubColorsAttributeValue :: ClubColorsAttributeValue -> BinaryBit.BitPut ()+putClubColorsAttributeValue clubColorsAttributeValue = do+ BinaryBit.putBool (clubColorsAttributeValueBlueFlag clubColorsAttributeValue)+ putWord8Bits (clubColorsAttributeValueBlueColor clubColorsAttributeValue)+ BinaryBit.putBool+ (clubColorsAttributeValueOrangeFlag clubColorsAttributeValue)+ putWord8Bits (clubColorsAttributeValueOrangeColor clubColorsAttributeValue)
library/Rattletrap/AttributeValueType.hs view
@@ -4,6 +4,7 @@ = AVBoolean | AVByte | AVCamSettings+ | AVClubColors | AVDemolish | AVEnum | AVExplosion
library/Rattletrap/Data.hs view
@@ -112,6 +112,7 @@ , ("Archetypes.GameEvent.GameEvent_Basketball", "TAGame.GameEvent_Soccar_TA") , ("Archetypes.GameEvent.GameEvent_BasketballPrivate", "TAGame.GameEvent_SoccarPrivate_TA") , ("Archetypes.GameEvent.GameEvent_BasketballSplitscreen", "TAGame.GameEvent_SoccarSplitscreen_TA")+ , ("Archetypes.GameEvent.GameEvent_Hockey", "TAGame.GameEvent_Soccar_TA") , ("Archetypes.GameEvent.GameEvent_HockeyPrivate", "TAGame.GameEvent_SoccarPrivate_TA") , ("Archetypes.GameEvent.GameEvent_HockeySplitscreen", "TAGame.GameEvent_SoccarSplitscreen_TA") , ("Archetypes.GameEvent.GameEvent_Items", "TAGame.GameEvent_Soccar_TA")@@ -205,6 +206,7 @@ , ("TAGame.Car_TA:AddedBallForceMultiplier", AVFloat) , ("TAGame.Car_TA:AddedCarForceMultiplier", AVFloat) , ("TAGame.Car_TA:AttachedPickup", AVFlaggedInt)+ , ("TAGame.Car_TA:ClubColors", AVClubColors) , ("TAGame.Car_TA:ReplicatedDemolish", AVDemolish) , ("TAGame.Car_TA:TeamPaint", AVTeamPaint) , ("TAGame.CrowdActor_TA:GameEvent", AVFlaggedInt)@@ -269,6 +271,7 @@ , ("TAGame.SpecialPickup_BallVelcro_TA:bHit", AVBoolean) , ("TAGame.SpecialPickup_Targeted_TA:Targeted", AVFlaggedInt) , ("TAGame.Team_Soccar_TA:GameScore", AVInt)+ , ("TAGame.Team_TA:ClubColors", AVClubColors) , ("TAGame.Team_TA:CustomTeamName", AVString) , ("TAGame.Team_TA:GameEvent", AVFlaggedInt) , ("TAGame.Team_TA:LogoData", AVFlaggedInt)
library/Rattletrap/ReplicationValue/Spawned.hs view
@@ -4,6 +4,7 @@ import Rattletrap.ClassAttributeMap import Rattletrap.CompressedWord import Rattletrap.Initialization+import Rattletrap.Text import Rattletrap.Word32 import qualified Data.Binary.Bits.Get as BinaryBit@@ -12,6 +13,8 @@ data SpawnedReplicationValue = SpawnedReplicationValue { spawnedReplicationValueFlag :: Bool , spawnedReplicationValueObjectId :: Word32+ , spawnedReplicationValue_objectName :: String+ , spawnedReplicationValue_className :: String , spawnedReplicationValueInitialization :: Initialization } deriving (Eq, Ord, Show) @@ -35,7 +38,13 @@ let hasRotation = classHasRotation className initialization <- getInitialization hasLocation hasRotation pure- (SpawnedReplicationValue flag objectId initialization, newActorMap)+ ( SpawnedReplicationValue+ flag+ objectId+ (textToString objectName)+ (textToString className)+ initialization+ , newActorMap) putSpawnedReplicationValue :: SpawnedReplicationValue -> BinaryBit.BitPut () putSpawnedReplicationValue spawnedReplicationValue = do
rattletrap.cabal view
@@ -3,7 +3,7 @@ -- see: https://github.com/sol/hpack name: rattletrap-version: 0.1.6+version: 0.1.7 synopsis: Parse and generate Rocket League replays. description: Rattletrap parses and generates Rocket League replays. category: Game@@ -20,6 +20,7 @@ README.markdown test/replays/00080014003600090000036E0F65CCEB.replay test/replays/07E925B1423653D44CB8B4B2524792C1.replay+ test/replays/0AD21FEE4A512906BEB6C98136AAF49A.replay test/replays/1205D96C4D819800927791820096CD49.replay test/replays/160CA83E41083BFD8E6315B4BFCA0561.replay test/replays/18D6738D415B70B5BE4C299588D3C141.replay@@ -27,14 +28,14 @@ test/replays/1BC2D01444ACE577D01E988EADD4DFD0.replay test/replays/1D1DE97D4941C86E43FE0093563DB621.replay test/replays/1EF90FCC4F719F606A5327B3CDD782A4.replay+ test/replays/1F3798E540B0C37A946561ABBB3037F9.replay test/replays/211466D04B983F5A33CC2FA1D5928672.replay test/replays/22BACD794ABE7B92E50E9CBDBD9C59CE.replay+ test/replays/27B6A7B64553F0F685874584F96BAB1B.replay test/replays/29F582C34A65EB34D358A784CBE3C189.replay- test/replays/2F817C8C44859C762980AE85B1862A31.replay test/replays/372DBFCA4BDB340E4357B6BD43032802.replay test/replays/387F059C47C09E253C875CA990EFD9F2.replay test/replays/3EA147DD485B8DD24810689A7A989E44.replay- test/replays/40D831074157F4C843EA6CBFE0A88140.replay test/replays/4126861E477F4A03DE2A4080374D7908.replay test/replays/42F0D8DA4FC89AE7B80FCAB7F637A8EA.replay test/replays/504ED825482186E771FAA9B642CE5CE4.replay@@ -43,26 +44,27 @@ test/replays/551CA4D44FF2B86015DE44A6B5790D4C.replay test/replays/6688EEE34BFEB3EC3A9E3283098CC712.replay test/replays/6D1B06D844A5BB91B81FD4B5B28F08BA.replay+ test/replays/6F7CFCD24638F8A6567AB3A8B9958A90.replay test/replays/7109EB9846D303E54B7ACBA792036213.replay test/replays/7BF6073F4614CE0A438994B9A260DA6A.replay test/replays/89CBA30E46FA5385BDD35DA4285D4D2E.replay+ test/replays/9704208245D7DD851F2FB2BC7DFD9AC3.replay+ test/replays/98E58A904D713F2DE202358E8573265D.replay test/replays/A128B3AB45D5A18E3EF9CF93C9576BCE.replay test/replays/A52F804845573D8DA65E97BF59026A43.replay test/replays/A6711CE74272B2E663DCC9A200A218E3.replay test/replays/A7F001A1417A19BFA8C90990D8F7C2FF.replay test/replays/B82DDB624C393A4A425E68AB40DC2450.replay- test/replays/B9318ACC47A5A8C12901F3B0A512CA58.replay test/replays/B9F9B87D4A9D0A3D25D4EC91C0401DE2.replay test/replays/C14F7E0E4D9B5E6BE9AD5D8ED56B174C.replay- test/replays/C375E0EC4971B506C51678B465D35AE9.replay- test/replays/C80A9959479CFE51673B3A889D717554.replay test/replays/C8372B1345B1803DEF039F815DBD802D.replay- test/replays/CB5B422A4424262B2877E9A121329EF2.replay test/replays/D428F81646A98C25902CE988AE5C14C8.replay test/replays/D7FB197A451D69075A0C99A2F49A4053.replay test/replays/DCB3A6B94A9DBE46FDE5EAA9B012F6C8.replay test/replays/EAE311E84BA35B590A6FDBA6DD4F2FEB.replay+ test/replays/EAE8DADA4BB2DC5422792C9B4A67392D.replay test/replays/F299F176491554B11E34AB91CA76B2CE.replay+ test/replays/F7B9E14545C7467B89A00895980FCD73.replay test/replays/F811C1D24888015E23B598AD8628C742.replay test/replays/FDC79DA84DD463D4BCCE6B892829AC88.replay @@ -95,6 +97,7 @@ Rattletrap.AttributeValue.Boolean Rattletrap.AttributeValue.Byte Rattletrap.AttributeValue.CamSettings+ Rattletrap.AttributeValue.ClubColors Rattletrap.AttributeValue.Demolish Rattletrap.AttributeValue.Enum Rattletrap.AttributeValue.Explosion
test/Test.hs view
@@ -12,7 +12,7 @@ main :: IO () main = do- tests <- Hspec.testSpec "rattletrap" (Hspec.parallel spec)+ tests <- Hspec.testSpec "rattletrap" spec Tasty.defaultMain tests spec :: Hspec.Spec@@ -42,6 +42,7 @@ replays = [ ("00080014003600090000036E0F65CCEB", "a flip time") , ("07E925B1423653D44CB8B4B2524792C1", "a game mode before Neo Tokyo")+ , ("0AD21FEE4A512906BEB6C98136AAF49A", "some Latin-1 text") , ("1205D96C4D819800927791820096CD49", "rumble mode") , ("160CA83E41083BFD8E6315B4BFCA0561", "a dedicated server IP") , ("18D6738D415B70B5BE4C299588D3C141", "an online loadout attribute")@@ -49,14 +50,14 @@ , ("1BC2D01444ACE577D01E988EADD4DFD0", "no padding after the frames") , ("1D1DE97D4941C86E43FE0093563DB621", "a camera pitch") , ("1EF90FCC4F719F606A5327B3CDD782A4", "a private hoops match")+ , ("1F3798E540B0C37A946561ABBB3037F9", "splitscreen players") , ("211466D04B983F5A33CC2FA1D5928672", "a match save") , ("22BACD794ABE7B92E50E9CBDBD9C59CE", "a vote to forfeit")+ , ("27B6A7B64553F0F685874584F96BAB1B", "some UTF-16 text") , ("29F582C34A65EB34D358A784CBE3C189", "frames")- , ("2F817C8C44859C762980AE85B1862A31", "splitscreen players") , ("372DBFCA4BDB340E4357B6BD43032802", "a camera yaw attribute") , ("387F059C47C09E253C875CA990EFD9F2", "a frozen attribute") , ("3EA147DD485B8DD24810689A7A989E44", "a custom team name")- , ("40D831074157F4C843EA6CBFE0A88140", "a batarang") , ("4126861E477F4A03DE2A4080374D7908", "a game mode after Neo Tokyo") , ("42F0D8DA4FC89AE7B80FCAB7F637A8EA", "reservations after Neo Tokyo") , ("504ED825482186E771FAA9B642CE5CE4", "some messages")@@ -65,26 +66,27 @@ , ("551CA4D44FF2B86015DE44A6B5790D4C", "private match settings") , ("6688EEE34BFEB3EC3A9E3283098CC712", "a malformed byte property") , ("6D1B06D844A5BB91B81FD4B5B28F08BA", "a flip right")+ , ("6F7CFCD24638F8A6567AB3A8B9958A90", "a map with numbers") , ("7109EB9846D303E54B7ACBA792036213", "a boost modifier") , ("7BF6073F4614CE0A438994B9A260DA6A", "an online loadouts attribute") , ("89CBA30E46FA5385BDD35DA4285D4D2E", "remote user data")+ , ("9704208245D7DD851F2FB2BC7DFD9AC3", "a batarang")+ , ("98E58A904D713F2DE202358E8573265D", "a player using behind view") , ("A128B3AB45D5A18E3EF9CF93C9576BCE", "a round count down") , ("A52F804845573D8DA65E97BF59026A43", "some more mutators") , ("A6711CE74272B2E663DCC9A200A218E3", "a waiting player") , ("A7F001A1417A19BFA8C90990D8F7C2FF", "a ready attribute") , ("B82DDB624C393A4A425E68AB40DC2450", "a vote actor and trailing bits")- , ("B9318ACC47A5A8C12901F3B0A512CA58", "a map with numbers") , ("B9F9B87D4A9D0A3D25D4EC91C0401DE2", "a party leader") , ("C14F7E0E4D9B5E6BE9AD5D8ED56B174C", "some mutators")- , ("C375E0EC4971B506C51678B465D35AE9", "some UTF-16 text")- , ("C80A9959479CFE51673B3A889D717554", "some Latin-1 text") , ("C8372B1345B1803DEF039F815DBD802D", "a spectator")- , ("CB5B422A4424262B2877E9A121329EF2", "a player using behind view") , ("D428F81646A98C25902CE988AE5C14C8", "a private hockey match") , ("D7FB197A451D69075A0C99A2F49A4053", "an explosion attribute") , ("DCB3A6B94A9DBE46FDE5EAA9B012F6C8", "a pawn type attribute") , ("EAE311E84BA35B590A6FDBA6DD4F2FEB", "an actor/object ID collision")+ , ("EAE8DADA4BB2DC5422792C9B4A67392D", "custom team colors") , ("F299F176491554B11E34AB91CA76B2CE", "a location attribute")+ , ("F7B9E14545C7467B89A00895980FCD73", "a hockey game event") , ("F811C1D24888015E23B598AD8628C742", "no frames") , ("FDC79DA84DD463D4BCCE6B892829AC88", "an MVP") ]
+ test/replays/0AD21FEE4A512906BEB6C98136AAF49A.replay view
binary file changed (absent → 27949 bytes)
+ test/replays/1F3798E540B0C37A946561ABBB3037F9.replay view
binary file changed (absent → 27316 bytes)
+ test/replays/27B6A7B64553F0F685874584F96BAB1B.replay view
binary file changed (absent → 25332 bytes)
− test/replays/2F817C8C44859C762980AE85B1862A31.replay
binary file changed (348183 → absent bytes)
− test/replays/40D831074157F4C843EA6CBFE0A88140.replay
binary file changed (1057254 → absent bytes)
+ test/replays/6F7CFCD24638F8A6567AB3A8B9958A90.replay view
binary file changed (absent → 29715 bytes)
+ test/replays/9704208245D7DD851F2FB2BC7DFD9AC3.replay view
binary file changed (absent → 36307 bytes)
+ test/replays/98E58A904D713F2DE202358E8573265D.replay view
binary file changed (absent → 34047 bytes)
− test/replays/B9318ACC47A5A8C12901F3B0A512CA58.replay
binary file changed (1073090 → absent bytes)
− test/replays/C375E0EC4971B506C51678B465D35AE9.replay
binary file changed (341527 → absent bytes)
− test/replays/C80A9959479CFE51673B3A889D717554.replay
binary file changed (496968 → absent bytes)
− test/replays/CB5B422A4424262B2877E9A121329EF2.replay
binary file changed (157214 → absent bytes)
+ test/replays/EAE8DADA4BB2DC5422792C9B4A67392D.replay view
binary file changed (absent → 25462 bytes)
+ test/replays/F7B9E14545C7467B89A00895980FCD73.replay view
binary file changed (absent → 25580 bytes)