rattletrap-3.0.0: library/Rattletrap/Attribute/LoadoutsOnline.hs
module Rattletrap.Attribute.LoadoutsOnline where
import Rattletrap.Attribute.LoadoutOnline
import Rattletrap.Primitive
import qualified Data.Binary.Bits.Get as BinaryBit
import qualified Data.Binary.Bits.Put as BinaryBit
import qualified Data.Map as Map
data LoadoutsOnlineAttribute = LoadoutsOnlineAttribute
{ loadoutsOnlineAttributeBlue :: LoadoutOnlineAttribute
, loadoutsOnlineAttributeOrange :: LoadoutOnlineAttribute
, loadoutsOnlineAttributeUnknown1 :: Bool
, loadoutsOnlineAttributeUnknown2 :: Bool
} deriving (Eq, Ord, Show)
getLoadoutsOnlineAttribute ::
(Int, Int)
-> Map.Map Word32 Text
-> BinaryBit.BitGet LoadoutsOnlineAttribute
getLoadoutsOnlineAttribute version objectMap = do
blueLoadout <- getLoadoutOnlineAttribute version objectMap
orangeLoadout <- getLoadoutOnlineAttribute version objectMap
unknown1 <- BinaryBit.getBool
unknown2 <- BinaryBit.getBool
pure (LoadoutsOnlineAttribute blueLoadout orangeLoadout unknown1 unknown2)
putLoadoutsOnlineAttribute :: LoadoutsOnlineAttribute -> BinaryBit.BitPut ()
putLoadoutsOnlineAttribute loadoutsOnlineAttribute = do
putLoadoutOnlineAttribute
(loadoutsOnlineAttributeBlue loadoutsOnlineAttribute)
putLoadoutOnlineAttribute
(loadoutsOnlineAttributeOrange loadoutsOnlineAttribute)
BinaryBit.putBool (loadoutsOnlineAttributeUnknown1 loadoutsOnlineAttribute)
BinaryBit.putBool (loadoutsOnlineAttributeUnknown2 loadoutsOnlineAttribute)