rattletrap-2.5.0: library/Rattletrap/Attribute/ExtendedExplosion.hs
module Rattletrap.Attribute.ExtendedExplosion where
import Rattletrap.Primitive
import qualified Data.Binary.Bits.Get as BinaryBit
import qualified Data.Binary.Bits.Put as BinaryBit
data ExtendedExplosionAttribute = ExtendedExplosionAttribute
{ extendedExplosionAttributeActorId :: Int32
, extendedExplosionAttributeLocation :: Vector
, extendedExplosionAttributeUnknown1 :: Bool
, extendedExplosionAttributeUnknown2 :: Int32
} deriving (Eq, Ord, Show)
getExtendedExplosionAttribute :: BinaryBit.BitGet ExtendedExplosionAttribute
getExtendedExplosionAttribute = do
False <- BinaryBit.getBool
actorId <- getInt32Bits
location <- getVector
unknown1 <- BinaryBit.getBool
unknown2 <- getInt32Bits
pure (ExtendedExplosionAttribute actorId location unknown1 unknown2)
putExtendedExplosionAttribute ::
ExtendedExplosionAttribute -> BinaryBit.BitPut ()
putExtendedExplosionAttribute extendedExplosionAttribute = do
BinaryBit.putBool False
putInt32Bits (extendedExplosionAttributeActorId extendedExplosionAttribute)
putVector (extendedExplosionAttributeLocation extendedExplosionAttribute)
BinaryBit.putBool
(extendedExplosionAttributeUnknown1 extendedExplosionAttribute)
putInt32Bits (extendedExplosionAttributeUnknown2 extendedExplosionAttribute)