octane 0.18.3 → 0.19.0
raw patch · 8 files changed
+127/−4 lines, 8 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Octane.Type.Value: ValueAppliedDamage :: AppliedDamageValue -> Value
+ Octane.Type.Value: ValueDamageState :: DamageStateValue -> Value
+ Octane.Type.Value.AppliedDamageValue: AppliedDamageValue :: Word8 -> Vector Int -> Int32 -> Int32 -> AppliedDamageValue
+ Octane.Type.Value.AppliedDamageValue: [appliedDamageValueLocation] :: AppliedDamageValue -> Vector Int
+ Octane.Type.Value.AppliedDamageValue: [appliedDamageValueUnknown1] :: AppliedDamageValue -> Word8
+ Octane.Type.Value.AppliedDamageValue: [appliedDamageValueUnknown3] :: AppliedDamageValue -> Int32
+ Octane.Type.Value.AppliedDamageValue: [appliedDamageValueUnknown4] :: AppliedDamageValue -> Int32
+ Octane.Type.Value.AppliedDamageValue: data AppliedDamageValue
+ Octane.Type.Value.AppliedDamageValue: instance Data.Aeson.Types.ToJSON.ToJSON Octane.Type.Value.AppliedDamageValue.AppliedDamageValue
+ Octane.Type.Value.AppliedDamageValue: instance Data.OverloadedRecords.HasField "location" Octane.Type.Value.AppliedDamageValue.AppliedDamageValue (Octane.Type.Vector.Vector GHC.Types.Int)
+ Octane.Type.Value.AppliedDamageValue: instance Data.OverloadedRecords.HasField "unknown1" Octane.Type.Value.AppliedDamageValue.AppliedDamageValue Octane.Type.Word8.Word8
+ Octane.Type.Value.AppliedDamageValue: instance Data.OverloadedRecords.HasField "unknown3" Octane.Type.Value.AppliedDamageValue.AppliedDamageValue Octane.Type.Int32.Int32
+ Octane.Type.Value.AppliedDamageValue: instance Data.OverloadedRecords.HasField "unknown4" Octane.Type.Value.AppliedDamageValue.AppliedDamageValue Octane.Type.Int32.Int32
+ Octane.Type.Value.AppliedDamageValue: instance Data.OverloadedRecords.ModifyField "location" Octane.Type.Value.AppliedDamageValue.AppliedDamageValue Octane.Type.Value.AppliedDamageValue.AppliedDamageValue (Octane.Type.Vector.Vector GHC.Types.Int) (Octane.Type.Vector.Vector GHC.Types.Int)
+ Octane.Type.Value.AppliedDamageValue: instance Data.OverloadedRecords.ModifyField "unknown1" Octane.Type.Value.AppliedDamageValue.AppliedDamageValue Octane.Type.Value.AppliedDamageValue.AppliedDamageValue Octane.Type.Word8.Word8 Octane.Type.Word8.Word8
+ Octane.Type.Value.AppliedDamageValue: instance Data.OverloadedRecords.ModifyField "unknown3" Octane.Type.Value.AppliedDamageValue.AppliedDamageValue Octane.Type.Value.AppliedDamageValue.AppliedDamageValue Octane.Type.Int32.Int32 Octane.Type.Int32.Int32
+ Octane.Type.Value.AppliedDamageValue: instance Data.OverloadedRecords.ModifyField "unknown4" Octane.Type.Value.AppliedDamageValue.AppliedDamageValue Octane.Type.Value.AppliedDamageValue.AppliedDamageValue Octane.Type.Int32.Int32 Octane.Type.Int32.Int32
+ Octane.Type.Value.AppliedDamageValue: instance Data.OverloadedRecords.ModifyRec "location" (Octane.Type.Vector.Vector GHC.Types.Int) cs0 => Data.OverloadedRecords.HasField "location" (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.AppliedDamageValue.AppliedDamageValue) (Octane.Type.Vector.Vector GHC.Types.Int)
+ Octane.Type.Value.AppliedDamageValue: instance Data.OverloadedRecords.ModifyRec "location" (Octane.Type.Vector.Vector GHC.Types.Int) cs0 => Data.OverloadedRecords.ModifyField "location" (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.AppliedDamageValue.AppliedDamageValue) (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.AppliedDamageValue.AppliedDamageValue) (Octane.Type.Vector.Vector GHC.Types.Int) (Octane.Type.Vector.Vector GHC.Types.Int)
+ Octane.Type.Value.AppliedDamageValue: instance Data.OverloadedRecords.ModifyRec "unknown1" Octane.Type.Word8.Word8 cs0 => Data.OverloadedRecords.HasField "unknown1" (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.AppliedDamageValue.AppliedDamageValue) Octane.Type.Word8.Word8
+ Octane.Type.Value.AppliedDamageValue: instance Data.OverloadedRecords.ModifyRec "unknown1" Octane.Type.Word8.Word8 cs0 => Data.OverloadedRecords.ModifyField "unknown1" (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.AppliedDamageValue.AppliedDamageValue) (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.AppliedDamageValue.AppliedDamageValue) Octane.Type.Word8.Word8 Octane.Type.Word8.Word8
+ Octane.Type.Value.AppliedDamageValue: instance Data.OverloadedRecords.ModifyRec "unknown3" Octane.Type.Int32.Int32 cs0 => Data.OverloadedRecords.HasField "unknown3" (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.AppliedDamageValue.AppliedDamageValue) Octane.Type.Int32.Int32
+ Octane.Type.Value.AppliedDamageValue: instance Data.OverloadedRecords.ModifyRec "unknown3" Octane.Type.Int32.Int32 cs0 => Data.OverloadedRecords.ModifyField "unknown3" (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.AppliedDamageValue.AppliedDamageValue) (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.AppliedDamageValue.AppliedDamageValue) Octane.Type.Int32.Int32 Octane.Type.Int32.Int32
+ Octane.Type.Value.AppliedDamageValue: instance Data.OverloadedRecords.ModifyRec "unknown4" Octane.Type.Int32.Int32 cs0 => Data.OverloadedRecords.HasField "unknown4" (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.AppliedDamageValue.AppliedDamageValue) Octane.Type.Int32.Int32
+ Octane.Type.Value.AppliedDamageValue: instance Data.OverloadedRecords.ModifyRec "unknown4" Octane.Type.Int32.Int32 cs0 => Data.OverloadedRecords.ModifyField "unknown4" (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.AppliedDamageValue.AppliedDamageValue) (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.AppliedDamageValue.AppliedDamageValue) Octane.Type.Int32.Int32 Octane.Type.Int32.Int32
+ Octane.Type.Value.AppliedDamageValue: instance GHC.Classes.Eq Octane.Type.Value.AppliedDamageValue.AppliedDamageValue
+ Octane.Type.Value.AppliedDamageValue: instance GHC.Show.Show Octane.Type.Value.AppliedDamageValue.AppliedDamageValue
+ Octane.Type.Value.DamageStateValue: DamageStateValue :: Word8 -> Boolean -> Int32 -> Vector Int -> Boolean -> Boolean -> DamageStateValue
+ Octane.Type.Value.DamageStateValue: [damageStateValueUnknown1] :: DamageStateValue -> Word8
+ Octane.Type.Value.DamageStateValue: [damageStateValueUnknown2] :: DamageStateValue -> Boolean
+ Octane.Type.Value.DamageStateValue: [damageStateValueUnknown3] :: DamageStateValue -> Int32
+ Octane.Type.Value.DamageStateValue: [damageStateValueUnknown4] :: DamageStateValue -> Vector Int
+ Octane.Type.Value.DamageStateValue: [damageStateValueUnknown5] :: DamageStateValue -> Boolean
+ Octane.Type.Value.DamageStateValue: [damageStateValueUnknown6] :: DamageStateValue -> Boolean
+ Octane.Type.Value.DamageStateValue: data DamageStateValue
+ Octane.Type.Value.DamageStateValue: instance Data.Aeson.Types.ToJSON.ToJSON Octane.Type.Value.DamageStateValue.DamageStateValue
+ Octane.Type.Value.DamageStateValue: instance Data.OverloadedRecords.HasField "unknown1" Octane.Type.Value.DamageStateValue.DamageStateValue Octane.Type.Word8.Word8
+ Octane.Type.Value.DamageStateValue: instance Data.OverloadedRecords.HasField "unknown2" Octane.Type.Value.DamageStateValue.DamageStateValue Octane.Type.Boolean.Boolean
+ Octane.Type.Value.DamageStateValue: instance Data.OverloadedRecords.HasField "unknown3" Octane.Type.Value.DamageStateValue.DamageStateValue Octane.Type.Int32.Int32
+ Octane.Type.Value.DamageStateValue: instance Data.OverloadedRecords.HasField "unknown4" Octane.Type.Value.DamageStateValue.DamageStateValue (Octane.Type.Vector.Vector GHC.Types.Int)
+ Octane.Type.Value.DamageStateValue: instance Data.OverloadedRecords.HasField "unknown5" Octane.Type.Value.DamageStateValue.DamageStateValue Octane.Type.Boolean.Boolean
+ Octane.Type.Value.DamageStateValue: instance Data.OverloadedRecords.HasField "unknown6" Octane.Type.Value.DamageStateValue.DamageStateValue Octane.Type.Boolean.Boolean
+ Octane.Type.Value.DamageStateValue: instance Data.OverloadedRecords.ModifyField "unknown1" Octane.Type.Value.DamageStateValue.DamageStateValue Octane.Type.Value.DamageStateValue.DamageStateValue Octane.Type.Word8.Word8 Octane.Type.Word8.Word8
+ Octane.Type.Value.DamageStateValue: instance Data.OverloadedRecords.ModifyField "unknown2" Octane.Type.Value.DamageStateValue.DamageStateValue Octane.Type.Value.DamageStateValue.DamageStateValue Octane.Type.Boolean.Boolean Octane.Type.Boolean.Boolean
+ Octane.Type.Value.DamageStateValue: instance Data.OverloadedRecords.ModifyField "unknown3" Octane.Type.Value.DamageStateValue.DamageStateValue Octane.Type.Value.DamageStateValue.DamageStateValue Octane.Type.Int32.Int32 Octane.Type.Int32.Int32
+ Octane.Type.Value.DamageStateValue: instance Data.OverloadedRecords.ModifyField "unknown4" Octane.Type.Value.DamageStateValue.DamageStateValue Octane.Type.Value.DamageStateValue.DamageStateValue (Octane.Type.Vector.Vector GHC.Types.Int) (Octane.Type.Vector.Vector GHC.Types.Int)
+ Octane.Type.Value.DamageStateValue: instance Data.OverloadedRecords.ModifyField "unknown5" Octane.Type.Value.DamageStateValue.DamageStateValue Octane.Type.Value.DamageStateValue.DamageStateValue Octane.Type.Boolean.Boolean Octane.Type.Boolean.Boolean
+ Octane.Type.Value.DamageStateValue: instance Data.OverloadedRecords.ModifyField "unknown6" Octane.Type.Value.DamageStateValue.DamageStateValue Octane.Type.Value.DamageStateValue.DamageStateValue Octane.Type.Boolean.Boolean Octane.Type.Boolean.Boolean
+ Octane.Type.Value.DamageStateValue: instance Data.OverloadedRecords.ModifyRec "unknown1" Octane.Type.Word8.Word8 cs0 => Data.OverloadedRecords.HasField "unknown1" (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.DamageStateValue.DamageStateValue) Octane.Type.Word8.Word8
+ Octane.Type.Value.DamageStateValue: instance Data.OverloadedRecords.ModifyRec "unknown1" Octane.Type.Word8.Word8 cs0 => Data.OverloadedRecords.ModifyField "unknown1" (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.DamageStateValue.DamageStateValue) (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.DamageStateValue.DamageStateValue) Octane.Type.Word8.Word8 Octane.Type.Word8.Word8
+ Octane.Type.Value.DamageStateValue: instance Data.OverloadedRecords.ModifyRec "unknown2" Octane.Type.Boolean.Boolean cs0 => Data.OverloadedRecords.HasField "unknown2" (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.DamageStateValue.DamageStateValue) Octane.Type.Boolean.Boolean
+ Octane.Type.Value.DamageStateValue: instance Data.OverloadedRecords.ModifyRec "unknown2" Octane.Type.Boolean.Boolean cs0 => Data.OverloadedRecords.ModifyField "unknown2" (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.DamageStateValue.DamageStateValue) (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.DamageStateValue.DamageStateValue) Octane.Type.Boolean.Boolean Octane.Type.Boolean.Boolean
+ Octane.Type.Value.DamageStateValue: instance Data.OverloadedRecords.ModifyRec "unknown3" Octane.Type.Int32.Int32 cs0 => Data.OverloadedRecords.HasField "unknown3" (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.DamageStateValue.DamageStateValue) Octane.Type.Int32.Int32
+ Octane.Type.Value.DamageStateValue: instance Data.OverloadedRecords.ModifyRec "unknown3" Octane.Type.Int32.Int32 cs0 => Data.OverloadedRecords.ModifyField "unknown3" (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.DamageStateValue.DamageStateValue) (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.DamageStateValue.DamageStateValue) Octane.Type.Int32.Int32 Octane.Type.Int32.Int32
+ Octane.Type.Value.DamageStateValue: instance Data.OverloadedRecords.ModifyRec "unknown4" (Octane.Type.Vector.Vector GHC.Types.Int) cs0 => Data.OverloadedRecords.HasField "unknown4" (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.DamageStateValue.DamageStateValue) (Octane.Type.Vector.Vector GHC.Types.Int)
+ Octane.Type.Value.DamageStateValue: instance Data.OverloadedRecords.ModifyRec "unknown4" (Octane.Type.Vector.Vector GHC.Types.Int) cs0 => Data.OverloadedRecords.ModifyField "unknown4" (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.DamageStateValue.DamageStateValue) (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.DamageStateValue.DamageStateValue) (Octane.Type.Vector.Vector GHC.Types.Int) (Octane.Type.Vector.Vector GHC.Types.Int)
+ Octane.Type.Value.DamageStateValue: instance Data.OverloadedRecords.ModifyRec "unknown5" Octane.Type.Boolean.Boolean cs0 => Data.OverloadedRecords.HasField "unknown5" (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.DamageStateValue.DamageStateValue) Octane.Type.Boolean.Boolean
+ Octane.Type.Value.DamageStateValue: instance Data.OverloadedRecords.ModifyRec "unknown5" Octane.Type.Boolean.Boolean cs0 => Data.OverloadedRecords.ModifyField "unknown5" (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.DamageStateValue.DamageStateValue) (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.DamageStateValue.DamageStateValue) Octane.Type.Boolean.Boolean Octane.Type.Boolean.Boolean
+ Octane.Type.Value.DamageStateValue: instance Data.OverloadedRecords.ModifyRec "unknown6" Octane.Type.Boolean.Boolean cs0 => Data.OverloadedRecords.HasField "unknown6" (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.DamageStateValue.DamageStateValue) Octane.Type.Boolean.Boolean
+ Octane.Type.Value.DamageStateValue: instance Data.OverloadedRecords.ModifyRec "unknown6" Octane.Type.Boolean.Boolean cs0 => Data.OverloadedRecords.ModifyField "unknown6" (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.DamageStateValue.DamageStateValue) (Data.OverloadedRecords.Rec cs0 Octane.Type.Value.DamageStateValue.DamageStateValue) Octane.Type.Boolean.Boolean Octane.Type.Boolean.Boolean
+ Octane.Type.Value.DamageStateValue: instance GHC.Classes.Eq Octane.Type.Value.DamageStateValue.DamageStateValue
+ Octane.Type.Value.DamageStateValue: instance GHC.Show.Show Octane.Type.Value.DamageStateValue.DamageStateValue
Files
- README.markdown +3/−1
- library/Octane/Type/Replay.hs +16/−0
- library/Octane/Type/Value.hs +9/−1
- library/Octane/Type/Value/AppliedDamageValue.hs +44/−0
- library/Octane/Type/Value/DamageStateValue.hs +49/−0
- octane.cabal +3/−1
- package.yaml +1/−1
- stack.yaml +2/−0
README.markdown view
@@ -8,7 +8,9 @@ Replays][] parses tens of thousands of replays with it. Octane parses most replays in less than 5 seconds. It outputs easy-to-read JSON. -If you also want to generate replays, consider using [Rattletrap][] instead.+That being said, Octane is not actively developed anymore. Consider using+[Rattletrap][] (which is actively developed) instead. Rattletrap can also+generate replay files from JSON, which Octane cannot do. Octane has a command-line interface. To get it, download and unpack [the latest release][] for your platform. You can run the executable one of three ways:
library/Octane/Type/Replay.hs view
@@ -309,6 +309,13 @@ StrictText.pack value = case Rattletrap.attributeValue attribute of+ Rattletrap.AppliedDamageAttributeValue x ->+ Value.ValueAppliedDamage+ (Value.AppliedDamageValue+ (toWord8 (Rattletrap.appliedDamageAttributeUnknown1 x))+ (toIntVector (Rattletrap.appliedDamageAttributeLocation x))+ (toInt32 (Rattletrap.appliedDamageAttributeUnknown3 x))+ (toInt32 (Rattletrap.appliedDamageAttributeUnknown4 x))) Rattletrap.BooleanAttributeValue x -> Value.ValueBoolean (Value.BooleanValue@@ -334,6 +341,15 @@ (toWord8 (Rattletrap.clubColorsAttributeBlueColor x)) (Boolean.Boolean (Rattletrap.clubColorsAttributeOrangeFlag x)) (toWord8 (Rattletrap.clubColorsAttributeOrangeColor x)))+ Rattletrap.DamageStateAttributeValue x ->+ Value.ValueDamageState+ (Value.DamageStateValue+ (toWord8 (Rattletrap.damageStateAttributeUnknown1 x))+ (Boolean.Boolean (Rattletrap.damageStateAttributeUnknown2 x))+ (toInt32 (Rattletrap.damageStateAttributeUnknown3 x))+ (toIntVector (Rattletrap.damageStateAttributeUnknown4 x))+ (Boolean.Boolean (Rattletrap.damageStateAttributeUnknown5 x))+ (Boolean.Boolean (Rattletrap.damageStateAttributeUnknown6 x))) Rattletrap.DemolishAttributeValue x -> Value.ValueDemolish (Value.DemolishValue
library/Octane/Type/Value.hs view
@@ -2,10 +2,12 @@ module Octane.Type.Value ( Value(..)+ , module Octane.Type.Value.AppliedDamageValue , module Octane.Type.Value.BooleanValue , module Octane.Type.Value.ByteValue , module Octane.Type.Value.CamSettingsValue , module Octane.Type.Value.ClubColorsValue+ , module Octane.Type.Value.DamageStateValue , module Octane.Type.Value.DemolishValue , module Octane.Type.Value.EnumValue , module Octane.Type.Value.ExplosionValue@@ -30,10 +32,12 @@ , module Octane.Type.Value.WeldedInfoValue ) where +import Octane.Type.Value.AppliedDamageValue import Octane.Type.Value.BooleanValue import Octane.Type.Value.ByteValue import Octane.Type.Value.CamSettingsValue import Octane.Type.Value.ClubColorsValue+import Octane.Type.Value.DamageStateValue import Octane.Type.Value.DemolishValue import Octane.Type.Value.EnumValue import Octane.Type.Value.ExplosionValue@@ -61,10 +65,12 @@ -- | A replicated property's value. data Value- = ValueBoolean BooleanValue+ = ValueAppliedDamage AppliedDamageValue+ | ValueBoolean BooleanValue | ValueByte ByteValue | ValueCamSettings CamSettingsValue | ValueClubColors ClubColorsValue+ | ValueDamageState DamageStateValue | ValueDemolish DemolishValue | ValueEnum EnumValue | ValueExplosion ExplosionValue@@ -92,10 +98,12 @@ instance Aeson.ToJSON Value where toJSON value = case value of+ ValueAppliedDamage x -> Aeson.toJSON x ValueBoolean x -> Aeson.toJSON x ValueByte x -> Aeson.toJSON x ValueCamSettings x -> Aeson.toJSON x ValueClubColors x -> Aeson.toJSON x+ ValueDamageState x -> Aeson.toJSON x ValueDemolish x -> Aeson.toJSON x ValueEnum x -> Aeson.toJSON x ValueExplosion x -> Aeson.toJSON x
+ library/Octane/Type/Value/AppliedDamageValue.hs view
@@ -0,0 +1,44 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedLabels #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}++module Octane.Type.Value.AppliedDamageValue+ ( AppliedDamageValue(..)+ ) where++import Data.Aeson ((.=))++import qualified Data.Aeson as Aeson+import qualified Data.Default.Class as Default+import qualified Data.OverloadedRecords.TH as OverloadedRecords+import qualified Data.Text as StrictText+import qualified Octane.Type.Int32 as Int32+import qualified Octane.Type.Vector as Vector+import qualified Octane.Type.Word8 as Word8++data AppliedDamageValue = AppliedDamageValue+ { appliedDamageValueUnknown1 :: Word8.Word8+ , appliedDamageValueLocation :: Vector.Vector Int+ , appliedDamageValueUnknown3 :: Int32.Int32+ , appliedDamageValueUnknown4 :: Int32.Int32+ } deriving (Eq, Show)++$(OverloadedRecords.overloadedRecord Default.def ''AppliedDamageValue)++instance Aeson.ToJSON AppliedDamageValue where+ toJSON x =+ Aeson.object+ [ "Type" .= ("AppliedDamage" :: StrictText.Text)+ , "Value" .=+ Aeson.object+ [ "unknown1" .= appliedDamageValueUnknown1 x+ , "location" .= appliedDamageValueLocation x+ , "unknown3" .= appliedDamageValueUnknown3 x+ , "unknown4" .= appliedDamageValueUnknown4 x+ ]+ ]
+ library/Octane/Type/Value/DamageStateValue.hs view
@@ -0,0 +1,49 @@+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedLabels #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TemplateHaskell #-}+{-# LANGUAGE TypeFamilies #-}++module Octane.Type.Value.DamageStateValue+ ( DamageStateValue(..)+ ) where++import Data.Aeson ((.=))++import qualified Data.Aeson as Aeson+import qualified Data.Default.Class as Default+import qualified Data.OverloadedRecords.TH as OverloadedRecords+import qualified Data.Text as StrictText+import qualified Octane.Type.Boolean as Boolean+import qualified Octane.Type.Int32 as Int32+import qualified Octane.Type.Vector as Vector+import qualified Octane.Type.Word8 as Word8++data DamageStateValue = DamageStateValue+ { damageStateValueUnknown1 :: Word8.Word8+ , damageStateValueUnknown2 :: Boolean.Boolean+ , damageStateValueUnknown3 :: Int32.Int32+ , damageStateValueUnknown4 :: Vector.Vector Int+ , damageStateValueUnknown5 :: Boolean.Boolean+ , damageStateValueUnknown6 :: Boolean.Boolean+ } deriving (Eq, Show)++$(OverloadedRecords.overloadedRecord Default.def ''DamageStateValue)++instance Aeson.ToJSON DamageStateValue where+ toJSON x =+ Aeson.object+ [ "Type" .= ("DamageState" :: StrictText.Text)+ , "Value" .=+ Aeson.object+ [ "unknown1" .= damageStateValueUnknown1 x+ , "unknown2" .= damageStateValueUnknown2 x+ , "unknown3" .= damageStateValueUnknown3 x+ , "unknown4" .= damageStateValueUnknown4 x+ , "unknown5" .= damageStateValueUnknown5 x+ , "unknown6" .= damageStateValueUnknown6 x+ ]+ ]
octane.cabal view
@@ -3,7 +3,7 @@ -- see: https://github.com/sol/hpack name: octane-version: 0.18.3+version: 0.19.0 synopsis: Parse Rocket League replays. description: Octane parses Rocket League replays. category: Game@@ -75,10 +75,12 @@ Octane.Type.State Octane.Type.Text Octane.Type.Value+ Octane.Type.Value.AppliedDamageValue Octane.Type.Value.BooleanValue Octane.Type.Value.ByteValue Octane.Type.Value.CamSettingsValue Octane.Type.Value.ClubColorsValue+ Octane.Type.Value.DamageStateValue Octane.Type.Value.DemolishValue Octane.Type.Value.EnumValue Octane.Type.Value.ExplosionValue
package.yaml view
@@ -44,4 +44,4 @@ maintainer: Taylor Fausak name: octane synopsis: Parse Rocket League replays.-version: '0.18.3'+version: '0.19.0'
stack.yaml view
@@ -1,1 +1,3 @@+extra-deps:+- rattletrap-2.2.3 resolver: lts-8.0