packages feed

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 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