Add Binary instances

This commit is contained in:
2022-08-21 10:58:19 +01:00
parent 386a2b4732
commit 1ce7d4a72d
95 changed files with 345 additions and 3 deletions
+2
View File
@@ -6,6 +6,7 @@
module Color where
import Data.Binary
import Flat
import Data.Aeson
import Geometry
@@ -27,6 +28,7 @@ data PaletteColor
| WHITE
| BLACK
deriving (Eq, Ord, Enum, Show, Read, Generic, Flat)
instance Binary PaletteColor
instance ToJSON PaletteColor where
toEncoding = genericToEncoding defaultOptions
+7
View File
@@ -5,6 +5,7 @@
module Dodge.Data.ActionPlan where
import Data.Binary
import Flat
import Control.Lens
import Data.Aeson
@@ -23,11 +24,13 @@ data ActionPlan
, _apGoal :: [Goal]
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ActionPlan
data RandImpulse
= RandImpulseList [Impulse]
| RandImpulseCircMove Float
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary RandImpulse
data Impulse
= Move Point2
@@ -62,6 +65,7 @@ data Impulse
}
| ImpulseNothing
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Impulse
infixr 9 `WaitThen`
@@ -169,6 +173,7 @@ data Action
, _mainAction :: Action
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Action
data Strategy
= Flank Int
@@ -187,12 +192,14 @@ data Strategy
| Flee
| MeleeStrike
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Strategy
data Goal
= LiveLongAndProsper
| Kill Int
| SentinelAt Point2 Float
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Goal
deriveJSON defaultOptions ''ActionPlan
deriveJSON defaultOptions ''RandImpulse
+3
View File
@@ -5,6 +5,7 @@
module Dodge.Data.ArcStep where
import Data.Binary
import Flat
import Control.Lens
import Data.Aeson
@@ -19,11 +20,13 @@ data ArcStep = ArcStep
, _asObject :: CrWlID --Maybe (Either Creature Wall)
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ArcStep
data NextArcStep
= EndArc
| DefaultArcStep
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary NextArcStep
makeLenses ''ArcStep
deriveJSON defaultOptions ''ArcStep
+5
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Beam where
import Data.Binary
import Flat
import Color
import Control.Lens
@@ -30,11 +31,13 @@ data Beam = Beam
, _bmType :: BeamType
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Beam
data BeamDraw
= BasicBeamDraw
| BeamDrawColor Color
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary BeamDraw
data BeamCombineType
= FlameBeamCombine
@@ -43,6 +46,7 @@ data BeamCombineType
| SplitBeamCombine
| NoBeamCombine
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary BeamCombineType
data BeamType
= BeamCombine
@@ -50,6 +54,7 @@ data BeamType
}
| BeamSimple
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary BeamType
makeLenses ''BeamType
makeLenses ''Beam
+4
View File
@@ -9,6 +9,7 @@ module Dodge.Data.Block (
module Dodge.Data.PathGraph,
) where
import Data.Binary
import Flat
import LinearHelp ()
import Color
@@ -35,6 +36,7 @@ data Block = Block
, _blObstructs :: [(Int, Int, PathEdge)]
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Block
data BlockDraw
= BlockDrawMempty
@@ -42,11 +44,13 @@ data BlockDraw
| BlockDraws [BlockDraw]
| BlockDrawColHeightPoss Color Float [Point2]
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary BlockDraw
data BlSh
= BlShMempty
| BlShConst Shape
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary BlSh
makeLenses ''Block
deriveJSON defaultOptions ''Block
+2
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Bounds where
import Data.Binary
import Flat
import Control.Lens
import Data.Aeson
@@ -17,6 +18,7 @@ data Bounds = Bounds
, _bdMaxY :: Float
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Bounds
defaultBounds :: Bounds
defaultBounds = Bounds 0 0 0 0
+7
View File
@@ -8,6 +8,7 @@ module Dodge.Data.Bullet
, module Dodge.Data.Damage
)where
import Data.Binary
import Flat
import LinearHelp ()
import Control.Lens
@@ -31,22 +32,27 @@ data Bullet = Bullet
, _buDamages :: [Damage]
}
deriving (Show, Read, Eq, Ord, Generic, Flat)
instance Binary Bullet
data EnergyBallType = IncBall | TeslaBall | ConcBall
deriving (Show, Read, Eq, Ord, Enum, Bounded, Generic, Flat)
instance Binary EnergyBallType
data BulletUpdateMod = NoBulletUpdateMod
| ABulletUpdateMod -- hack for template splicing
deriving (Show, Read, Eq, Ord, Enum, Bounded, Generic, Flat)
instance Binary BulletUpdateMod
data BulletEffect
= DestroyBullet
| BounceBullet
| PenetrateBullet
deriving (Eq, Ord, Show, Read, Enum, Bounded, Generic, Flat)
instance Binary BulletEffect
data BulletSpawn = BulBall EnergyBallType | BulSpark
deriving (Show, Read, Eq, Ord, Generic, Flat)
instance Binary BulletSpawn
data BulletTrajectory
= BasicBulletTrajectory
@@ -54,6 +60,7 @@ data BulletTrajectory
| FlechetteTrajectory Point2
| MagnetTrajectory Point2
deriving (Show, Read, Eq, Ord, Generic, Flat)
instance Binary BulletTrajectory
makeLenses ''Bullet
deriveJSON defaultOptions ''Bullet
+5
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Button where
import Data.Binary
import Flat
import LinearHelp ()
import Color
@@ -20,6 +21,7 @@ data ButtonDraw
| DefaultDrawSwitch Color Color
| DrawNoButton
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ButtonDraw
data ButtonEvent
= ButtonDoNothing
@@ -46,6 +48,7 @@ data ButtonEvent
| ButtonAccessTerminal
deriving (Eq, Show, Read, Generic)
--hderiving (Eq, Show, Read, Generic, Flat)
--instance Binary ButtonEvent
data Button = Button
{ _btPict :: ButtonDraw --Button -> SPic
@@ -61,9 +64,11 @@ data Button = Button
}
deriving (Eq, Show, Read, Generic)
--hderiving (Eq, Show, Read, Generic, Flat)
--instance Binary Button
data ButtonState = BtOn | BtOff | BtNoLabel
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ButtonState
makeLenses ''Button
makeLenses ''ButtonEvent
+6
View File
@@ -48,6 +48,7 @@ module Dodge.Data.CWorld (
module Dodge.Data.WorldEffect,
) where
import Data.Binary
import Flat
import Control.Lens
import Data.Aeson
@@ -114,6 +115,7 @@ data CWCam = CWCam
, _cwcBoundDist :: (Float, Float, Float, Float) -- NSEW, S and W negative
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary CWCam
data CWorld = CWorld
--{ _cameraCenter :: Point2
@@ -189,6 +191,7 @@ data CWorld = CWorld
}
deriving (Eq, Show, Read, Generic)
--hderiving (Eq, Show, Read, Generic, Flat)
--instance Binary CWorld
data CWTime = CWTime
{ _maybeWorld :: Maybe' CWorld
@@ -198,6 +201,7 @@ data CWTime = CWTime
}
deriving (Eq, Show, Read, Generic)
--hderiving (Eq, Show, Read, Generic, Flat)
--instance Binary CWTime
data CWGen = CWGen
@@ -208,6 +212,7 @@ data CWGen = CWGen
, _cwgSeed :: Int
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary CWGen
data WorldBeams = WorldBeams
{ _blockingBeams :: [Beam]
@@ -216,6 +221,7 @@ data WorldBeams = WorldBeams
, _electronBeams :: [Beam]
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary WorldBeams
deriveJSON defaultOptions ''CWorld
deriveJSON defaultOptions ''WorldBeams
+2
View File
@@ -5,6 +5,7 @@
module Dodge.Data.CamouflageStatus where
import Data.Binary
import Flat
import Data.Aeson
import Data.Aeson.TH
@@ -13,5 +14,6 @@ data CamouflageStatus
= FullyVisible
| Invisible
deriving (Eq, Ord, Enum, Read, Show, Bounded, Generic, Flat)
instance Binary CamouflageStatus
deriveJSON defaultOptions ''CamouflageStatus
+4
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Cloud where
import Data.Binary
import Flat
import Color
import Control.Lens
@@ -16,6 +17,7 @@ data CloudDraw
= CloudColor Float Float Color -- radius-multiply fade-time color
| DrawGasCloud Color
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary CloudDraw
data Cloud = Cloud
{ _clPos :: Point3
@@ -27,11 +29,13 @@ data Cloud = Cloud
, _clType :: CloudType
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Cloud
data CloudType
= SmokeCloud
| GasCloud
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary CloudType
makeLenses ''Cloud
deriveJSON defaultOptions ''CloudDraw
+3
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Corpse where
import Data.Binary
import Flat
import LinearHelp ()
import Control.Lens
@@ -15,6 +16,7 @@ import ShapePicture.Data
data CorpseResurrection = NoResurrection
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary CorpseResurrection
data Corpse = Corpse
{ _cpID :: Int
@@ -24,6 +26,7 @@ data Corpse = Corpse
, _cpRes :: CorpseResurrection
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Corpse
makeLenses ''Corpse
deriveJSON defaultOptions ''CorpseResurrection
+3
View File
@@ -5,6 +5,7 @@
module Dodge.Data.CrGroupParams where
import Data.Binary
import Flat
import LinearHelp ()
import Control.Lens
@@ -20,9 +21,11 @@ data CrGroupParams = CrGroupParams
, _crGroupUpdate :: CrGroupUpdate --World -> CrGroupParams -> Maybe CrGroupParams
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary CrGroupParams
data CrGroupUpdate = DefaultCrGroupUpdate
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary CrGroupUpdate
makeLenses ''CrGroupParams
deriveJSON defaultOptions ''CrGroupParams
+2
View File
@@ -5,6 +5,7 @@
module Dodge.Data.CrWlID where
import Data.Binary
import Flat
import Control.Lens
import Data.Aeson
@@ -14,6 +15,7 @@ import Data.Store
data CrWlID = CrID Int | WlID Int | NothingID -- TODO rewrite/remove this
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary CrWlID
makeLenses ''CrWlID
deriveJSON defaultOptions ''CrWlID
+4
View File
@@ -17,6 +17,7 @@ module Dodge.Data.Creature (
module Dodge.Data.Hammer,
) where
import Data.Binary
import Flat
import LinearHelp ()
import Control.Lens
@@ -76,9 +77,11 @@ data Creature = Creature
, _crCamouflage :: CamouflageStatus
}
deriving (Eq, Show, Read, Generic, Flat)
instance Binary Creature
data CreatureCorpse = MakeDefaultCorpse
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary CreatureCorpse
data Intention = Intention
{ _targetCr :: Maybe Creature
@@ -86,6 +89,7 @@ data Intention = Intention
, _viewPoint :: Maybe Point2
}
deriving (Eq, Show, Read, Generic, Flat)
instance Binary Intention
crSel :: Creature -> Int
crSel = _iselPos . _crInvSel
+2
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Creature.Memory where
import Data.Binary
import Flat
import LinearHelp ()
import Control.Lens
@@ -17,6 +18,7 @@ data Memory = Memory
, _nodesSearched :: [Int]
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Memory
makeLenses ''Memory
deriveJSON defaultOptions ''Memory
+7
View File
@@ -8,6 +8,7 @@ module Dodge.Data.Creature.Misc (
module Dodge.Data.CamouflageStatus,
) where
import Data.Binary
import Flat
import Color
import Control.Lens
@@ -24,6 +25,7 @@ data CreatureStatistics = CreatureStatistics
, _intelligence :: Int
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary CreatureStatistics
data Vocalization
= Mute
@@ -34,6 +36,7 @@ data Vocalization
, _vcCoolDown :: Int
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Vocalization
data CrMvType
= NoMvType
@@ -45,6 +48,7 @@ data CrMvType
, _mvAimSpeed :: FloatFloat
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary CrMvType
data HumanoidAI
= YourAI
@@ -61,6 +65,7 @@ data HumanoidAI
| LongAI
| MultGunAI
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary HumanoidAI
data CreatureType
= Humanoid
@@ -73,9 +78,11 @@ data CreatureType
| Lampoid {_lampHeight :: Float, _lampColor :: Point3, _lampLSID :: Maybe Int}
| NonDrawnCreature
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary CreatureType
data BarrelType = PlainBarrel | ExplosiveBarrel
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary BarrelType
makeLenses ''CreatureStatistics
makeLenses ''Vocalization
+7
View File
@@ -23,6 +23,7 @@ module Dodge.Data.Creature.Perception (
auDist,
) where
import Data.Binary
import Flat
import Control.Lens
import Data.Aeson
@@ -38,17 +39,20 @@ data Perception = Perception
, _cpAudition :: Audition
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Perception
data Vision = Eyes
{ _viFOV :: FloatFloat
, _viDist :: FloatFloat
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Vision
newtype Audition = Ears
{ _auDist :: FloatFloat
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Audition
data Vigilance
= Comatose
@@ -57,16 +61,19 @@ data Vigilance
| Vigilant
| Overstrung
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Vigilance
data Attention
= AttentiveTo {_getAttentiveTo :: IM.IntMap Awareness}
| Fixated {_getFixated :: Int}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Attention
data Awareness
= Suspicious Float
| Cognizant Float
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Awareness
makeLenses ''Perception
makeLenses ''Vision
+5
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Creature.Stance where
import Data.Binary
import Flat
import LinearHelp ()
import Control.Lens
@@ -18,6 +19,7 @@ data Stance = Stance
, _strideLength :: Int
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Stance
data Carriage
= Walking
@@ -29,6 +31,7 @@ data Carriage
| Flying
| Boosting Point2
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Carriage
data FootForward
= LeftForward
@@ -36,11 +39,13 @@ data FootForward
| WasLeftForward
| WasRightForward
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary FootForward
data Posture
= Aiming
| AtEase
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Posture
makeLenses ''Stance
makeLenses ''Carriage
+6
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Creature.State where
import Data.Binary
import Flat
import Color
import Control.Lens
@@ -20,17 +21,20 @@ data CreatureState = CrSt
, _csDropsOnDeath :: CreatureDropType
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary CreatureState
data CreatureDropType
= DropAll
| DropAmount Int
| DropSpecific [Int]
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary CreatureDropType
data CrSpState
= Barrel {_piercedPoints :: [Point2]}
| GenCr
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary CrSpState
data Faction
= GenericFaction Int
@@ -42,6 +46,7 @@ data Faction
| ColorFaction Color
| PlayerFaction
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Faction
data CrGroup
= LoneWolf
@@ -52,6 +57,7 @@ data CrGroup
| CrGroupID {_crGroupID :: Int}
| ShieldGroup
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary CrGroup
makeLenses ''CreatureState
makeLenses ''CrSpState
+14
View File
@@ -5,29 +5,36 @@
module Dodge.Data.CreatureEffect where
import Data.Binary
import Flat
import Data.Aeson
import Data.Aeson.TH
data WdCrCr = NoCreatureEffect
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary WdCrCr
data CrWdImp = NoCrWdImp
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary CrWdImp
data CrWdWd = CrWdWdId
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary CrWdWd
data IntImp = NoIntImp
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary IntImp
data CrImp
= NoCrImp
| TurnTowardCr Float -- turn amount
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary CrImp
data P2Imp = P2ImpNo
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary P2Imp
data WdCrBl
= WdCrTrue
@@ -36,6 +43,7 @@ data WdCrBl
| WdCrLOSTarget
| WdCrSafeDistFromTarget Float
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary WdCrBl
data CrBl
= CrCanShoot
@@ -43,26 +51,32 @@ data CrBl
| CrIsAiming
| CrIsAnimate
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary CrBl
data MCrAc = MCrNoAction
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary MCrAc
data CrAc
= CrTurnAround
| CrFleeFromTarget
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary CrAc
data P2Ac = P2NoAction
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary P2Ac
data MP2Ac = MP2NoAction
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary MP2Ac
data CrWdAc
= CrWdBFSThenReturn Int
| ChooseMovementSpreadGun
| ChooseMovementLtAuto
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary CrWdAc
deriveJSON defaultOptions ''WdCrCr
deriveJSON defaultOptions ''CrWdImp
+3
View File
@@ -12,6 +12,7 @@ module Dodge.Data.Damage (
module Dodge.Data.Damage.Type,
) where
import Data.Binary
import Flat
import LinearHelp ()
import Control.Lens
@@ -30,6 +31,7 @@ data DamageEffect
| PushBackDamage {_dePushBack :: Float}
| NoDamageEffect
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary DamageEffect
data Damage = Damage
{ _dmType :: DamageType
@@ -40,6 +42,7 @@ data Damage = Damage
, _dmEffect :: DamageEffect
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Damage
isElectrical :: Damage -> Bool
isElectrical dm = case _dmType dm of
+2
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Damage.Type where
import Data.Binary
import Flat
import Data.Aeson
import Data.Aeson.TH
@@ -26,6 +27,7 @@ data DamageType
| POISONDAM
| ENTERREMENT
deriving (Eq, Ord, Show, Read, Enum, Bounded, Generic, Flat)
instance Binary DamageType
instance ToJSONKey DamageType
+4 -2
View File
@@ -5,14 +5,16 @@
module Dodge.Data.Distortion where
import Data.Aeson
import Data.Aeson.TH
import Data.Binary
import Flat
import Geometry
import LinearHelp ()
import Data.Aeson
import Data.Aeson.TH
data Distortion
= RadialDistortion Point2 Point2 Point2 Float
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Distortion
deriveJSON defaultOptions ''Distortion
+4
View File
@@ -10,6 +10,7 @@ module Dodge.Data.Door (
module Dodge.Data.WorldEffect,
) where
import Data.Binary
import Flat
import LinearHelp ()
import Control.Lens
@@ -23,12 +24,14 @@ import Geometry.Data
data DoorStatus = DoorOpen | DoorClosed | DoorHalfway | DoorInt Int
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary DoorStatus
data PushSource
= PushesItself
| PushedBy Int
| NotPushed
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary PushSource
data Door = Door
{ _drID :: Int
@@ -49,6 +52,7 @@ data Door = Door
, _drObstacleType :: EdgeObstacle
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Door
makeLenses ''Door
deriveJSON defaultOptions ''DoorStatus
+2
View File
@@ -5,6 +5,7 @@
module Dodge.Data.EnergyBall where
import Data.Binary
import Flat
import Color
import Control.Lens
@@ -24,6 +25,7 @@ data EnergyBall = EnergyBall
, _ebRot :: Float
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary EnergyBall
makeLenses ''EnergyBall
deriveJSON defaultOptions ''EnergyBall
+3
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Equipment.Misc where
import Data.Binary
import Flat
import Data.Aeson
import Data.Aeson.TH
@@ -17,6 +18,7 @@ data EquipSite
| GoesOnLegs
| GoesOnSpecial
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary EquipSite
data EquipPosition
= OnHead
@@ -27,6 +29,7 @@ data EquipPosition
| OnLegs
| OnSpecial
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary EquipPosition
instance ToJSONKey EquipPosition
+2
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Flame where
import Data.Binary
import Flat
import Color
import Control.Lens
@@ -22,6 +23,7 @@ data Flame = Flame
, _flOriginalVel :: Point2
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Flame
makeLenses ''Flame
deriveJSON defaultOptions ''Flame
+2
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Flare where
import Data.Binary
import Flat
import LinearHelp ()
import Color
@@ -27,6 +28,7 @@ data Flare
, _flareTime :: Int
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Flare
makeLenses ''Flare
deriveJSON defaultOptions ''Flare
+2
View File
@@ -5,6 +5,7 @@
module Dodge.Data.FloatFunction where
import Data.Binary
import Flat
import Data.Aeson
import Data.Aeson.TH
@@ -16,5 +17,6 @@ data FloatFloat
| FloatAbsCheckGreaterLess Float Float Float
| FloatConst Float
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary FloatFloat
deriveJSON defaultOptions ''FloatFloat
+2
View File
@@ -5,6 +5,7 @@
module Dodge.Data.FloorItem where
import Data.Binary
import Flat
import LinearHelp ()
import Control.Lens
@@ -15,6 +16,7 @@ import Geometry.Data
data FloorItem = FlIt {_flIt :: Item, _flItPos :: Point2, _flItRot :: Float, _flItID :: Int}
deriving (Eq, Show, Read, Generic, Flat)
instance Binary FloorItem
makeLenses ''FloorItem
deriveJSON defaultOptions ''FloorItem
+2
View File
@@ -5,6 +5,7 @@
module Dodge.Data.ForegroundShape where
import Data.Binary
import Flat
import LinearHelp ()
import Control.Lens
@@ -21,6 +22,7 @@ data ForegroundShape = ForegroundShape
, _fsSPic :: SPic
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ForegroundShape
makeLenses ''ForegroundShape
deriveJSON defaultOptions ''ForegroundShape
+3
View File
@@ -5,6 +5,7 @@
module Dodge.Data.GenParams where
import Data.Binary
import Flat
import Color
import Control.Lens
@@ -17,9 +18,11 @@ newtype GenParams = GenParams
{ _sensorCoding :: M.Map DamageType (PaletteColor, DecorationShape)
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary GenParams
data DecorationShape = PLUS | SQUARE | CIRCLE | THREELINES
deriving (Eq, Ord, Enum, Show, Read, Generic, Flat)
instance Binary DecorationShape
makeLenses ''GenParams
deriveJSON defaultOptions ''GenParams
+2
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Gust where
import Data.Binary
import Flat
import LinearHelp ()
import Control.Lens
@@ -19,6 +20,7 @@ data Gust = Gust
, _guTime :: Int
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Gust
makeLenses ''Gust
deriveJSON defaultOptions ''Gust
+4
View File
@@ -5,6 +5,7 @@
module Dodge.Data.HUD where
import Data.Binary
import Flat
import LinearHelp ()
import Control.Lens
@@ -16,6 +17,7 @@ data HUDElement
= DisplayInventory {_subInventory :: SubInventory}
| DisplayCarte
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary HUDElement
data SubInventory
= NoSubInventory
@@ -25,6 +27,7 @@ data SubInventory
| LockedInventory
| DisplayTerminal {_termID :: Int}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary SubInventory
data HUD = HUD
{ _hudElement :: HUDElement
@@ -33,6 +36,7 @@ data HUD = HUD
, _carteRot :: Float
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary HUD
makeLenses ''HUD
makeLenses ''HUDElement
+3
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Hammer where
import Data.Binary
import Flat
import Control.Lens
import Data.Aeson
@@ -14,12 +15,14 @@ data HammerType
= NoHammer
| HasHammer {_hammerPosition :: HammerPosition}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary HammerType
data HammerPosition
= HammerDown
| HammerReleased
| HammerUp
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary HammerPosition
makeLenses ''HammerType
deriveJSON defaultOptions ''HammerType
+2
View File
@@ -17,6 +17,7 @@ module Dodge.Data.Item (
module Dodge.Data.Item.Location,
) where
import Data.Binary
import Flat
import Color
import Control.Lens
@@ -51,6 +52,7 @@ data Item = Item
, _itParams :: ItemParams
}
deriving (Eq, Show, Read, Generic, Flat)
instance Binary Item
_itUseAimStance :: Item -> AimStance
_itUseAimStance = _aimStance . _heldAim . _itUse
+12
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Item.Combine where
import Data.Binary
import Flat
import Control.Lens
import Data.Aeson
@@ -19,9 +20,11 @@ data ItemType = ItemType
, _iyStack :: Stack
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ItemType
data Stack = NoStack | Stack ItAmount
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Stack
data CraftType
= PIPE
@@ -71,6 +74,7 @@ data CraftType
| SIZEMODULE
| GRAVITYMODULE
deriving (Eq, Ord, Show, Enum, Read, Generic, Flat)
instance Binary CraftType
data ItemBaseType
= NoItemType
@@ -80,11 +84,13 @@ data ItemBaseType
| Consumable {_ibtConsumable :: ConsumableItemType}
| CRAFT CraftType
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ItemBaseType
data ConsumableItemType
= MEDKIT Int
| EXPLOSIVES
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ConsumableItemType
data EquipItemType
= MAGSHIELD
@@ -101,6 +107,7 @@ data EquipItemType
| JETPACK
| AUTODETECTOR Detector
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary EquipItemType
data LeftItemType
= BOOSTER
@@ -110,6 +117,7 @@ data LeftItemType
| SHRINKER
| SPAWNER
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary LeftItemType
data HeldItemType
= BANGSTICK {_xNum :: Int}
@@ -158,6 +166,7 @@ data HeldItemType
| FLATSHIELD
| KEYCARD Int
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary HeldItemType
data ItemModuleType
= EMPTYMODULE
@@ -183,12 +192,14 @@ data ItemModuleType
| EXTRABATTERY
| ATTACHTORCH
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ItemModuleType
data Detector
= ITEMDETECTOR
| CREATUREDETECTOR
| WALLDETECTOR
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Detector
data ModuleSlot
= ModBullet
@@ -203,6 +214,7 @@ data ModuleSlot
| ModDualBeam
| ModHeldAttach
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ModuleSlot
instance ToJSONKey ModuleSlot
+2
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Item.CurseStatus where
import Data.Binary
import Flat
import Data.Aeson
import Data.Aeson.TH
@@ -14,5 +15,6 @@ data CurseStatus
| UndroppableIdentified
| UndroppableUnidentified
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary CurseStatus
deriveJSON defaultOptions ''CurseStatus
+5
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Item.Effect where
import Data.Binary
import Flat
import Control.Lens
import Data.Aeson
@@ -18,6 +19,7 @@ data ItEffect = ItEffect
, _ieOnStash :: ItInvEffect
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ItEffect
data ItInvEffect
= NoInvEffect
@@ -28,12 +30,15 @@ data ItInvEffect
| RemoveShieldWall
| EffectWhileHeld ItInvEffect
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ItInvEffect
data ItFloorEffect = NoFloorEffect
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ItFloorEffect
data ItDropEffect = NoDropEffect
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ItDropEffect
makeLenses ''ItEffect
deriveJSON defaultOptions ''ItEffect
+2
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Item.HeldDelay where
import Data.Binary
import Flat
import Control.Lens
import Data.Aeson
@@ -27,6 +28,7 @@ data UseDelay -- should just be Delay
, _warmMax :: Int
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary UseDelay
makeLenses ''UseDelay
deriveJSON defaultOptions ''UseDelay
+2
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Item.HeldScroll where
import Data.Binary
import Flat
import Control.Lens
import Data.Aeson
@@ -21,6 +22,7 @@ data HeldScroll
, _hsMaxInt :: Int
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary HeldScroll
makeLenses ''HeldScroll
deriveJSON defaultOptions ''HeldScroll
+6
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Item.HeldUse where
import Data.Binary
import Flat
import Data.Aeson
import Data.Aeson.TH
@@ -28,11 +29,13 @@ data HeldUse
| HeldForceField
| HeldShatter
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary HeldUse
data Cuse
= CDoNothing
| CHeal Int
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Cuse
data Euse
= EDoNothing
@@ -44,6 +47,7 @@ data Euse
| EonWristShield
| EoffWristShield
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Euse
data Luse
= LDoNothing
@@ -53,6 +57,7 @@ data Luse
| LUnsafeBlink
| LBoost
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Luse
data HeldMod
= HeldModNothing
@@ -91,6 +96,7 @@ data HeldMod
| RevolverXRepeatMod
| BangConeMod
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary HeldMod
deriveJSON defaultOptions ''Cuse
deriveJSON defaultOptions ''HeldMod
+2
View File
@@ -4,6 +4,7 @@
{-# LANGUAGE TemplateHaskell #-}
module Dodge.Data.Item.Location where
import Data.Binary
import Flat
import Control.Lens
import Data.Aeson
@@ -15,6 +16,7 @@ data ItemLocation
| OnFloor {_ipFlID :: Int}
| InVoid
deriving (Eq, Show, Read, Ord, Generic, Flat)
instance Binary ItemLocation
makeLenses ''ItemLocation
deriveJSON defaultOptions ''ItemLocation
+5
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Item.Misc where
import Data.Binary
import Flat
import Control.Lens
import Data.Aeson
@@ -18,6 +19,7 @@ data ItemDimension = ItemDimension
, _dimAttachPos :: Point3
}
deriving (Eq, Show, Read, Generic, Flat)
instance Binary ItemDimension
data ItemPortage
= HeldItem
@@ -27,15 +29,18 @@ data ItemPortage
| WornItem
| NoPortage
deriving (Eq, Show, Read, Generic, Flat)
instance Binary ItemPortage
--data ItemValue = ItemValue
-- { _ivInt :: Int
-- , _ivType :: ItemValueType
-- }
-- deriving (Eq, Show, Read, Generic, Flat)
-- instance Binary ItemValue
--
--data ItemValueType = MundaneItem | ArtefactItem
-- deriving (Eq, Show, Read, Generic, Flat)
-- instance Binary ItemValueType
makeLenses ''ItemDimension
makeLenses ''ItemPortage
+7
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Item.Params where
import Data.Binary
import Flat
import Color
import Control.Lens
@@ -70,12 +71,15 @@ data ItemParams
| ParamMID {_paramMID :: Maybe Int}
| BoostPropIX {_boostPropIX :: Maybe Int}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ItemParams
data ShrinkGunStatus = FullSize | Shrunk
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ShrinkGunStatus
data PreviousArcEffect = NoPreviousArcEffect | PerturbTillBreakPreviousArc
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary PreviousArcEffect
data GunBarrels
= MultiBarrel
@@ -89,6 +93,7 @@ data GunBarrels
}
| SingleBarrel {_brlInaccuracy :: Float}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary GunBarrels
data Nozzle = Nozzle
{ _nzPressure :: Float
@@ -99,12 +104,14 @@ data Nozzle = Nozzle
, _nzLength :: Float
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Nozzle
data BarrelSpread
= AlignedBarrels
| SpreadBarrels {_spreadAngle :: Float}
| RotatingBarrels {_rotatingBarrelInaccuracy :: Float}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary BarrelSpread
makeLenses ''BarrelSpread
makeLenses ''ItemParams
+2
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Item.Scope where
import Data.Binary
import Flat
import Control.Lens
import Data.Aeson
@@ -31,6 +32,7 @@ data Scope
_scopeIsCamera :: Bool
}
deriving (Eq, Show, Read, Generic, Flat)
instance Binary Scope
makeLenses ''Scope
deriveJSON defaultOptions ''Scope
+4
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Item.Targeting where
import Data.Binary
import Flat
import Control.Lens
import Data.Aeson
@@ -22,6 +23,7 @@ data Targeting
, _tgActive :: Bool
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Targeting
data TargetUpdate
= NoTargetUpdate
@@ -30,6 +32,7 @@ data TargetUpdate
| TargetRBCreatureUpdate
| TargetCursorUpdate
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary TargetUpdate
data TargetDraw
= NoTargetDraw
@@ -37,6 +40,7 @@ data TargetDraw
| SimpleDrawTarget
| TargetRBCreatureDraw
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary TargetDraw
makeLenses ''Targeting
deriveJSON defaultOptions ''Targeting
+4
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Item.Tweak where
import Data.Binary
import Flat
import Control.Lens
import Data.Aeson
@@ -17,6 +18,7 @@ data ItemTweaks
{ _tweakParams :: IM.IntMap TweakParam
}
deriving (Eq, Show, Read, Generic, Flat)
instance Binary ItemTweaks
data TweakType
= TweakPhaseV
@@ -25,6 +27,7 @@ data TweakType
| TweakSpinAmount
| TweakThrustDelay
deriving (Eq, Show, Read, Generic, Flat)
instance Binary TweakType
data TweakParam = TweakParam
{ _tweakType :: TweakType -- Int -> Item -> Item
@@ -32,6 +35,7 @@ data TweakParam = TweakParam
, _tweakMax :: Int
}
deriving (Eq, Show, Read, Generic, Flat)
instance Binary TweakParam
makeLenses ''TweakParam
makeLenses ''ItemTweaks
+5
View File
@@ -13,6 +13,7 @@ module Dodge.Data.Item.Use (
module Dodge.Data.Hammer,
) where
import Data.Binary
import Flat
import Control.Lens
import Data.Aeson
@@ -51,6 +52,7 @@ data ItemUse
| CraftUse
{_useAmount :: ItAmount}
deriving (Eq, Show, Read, Generic, Flat)
instance Binary ItemUse
data AimParams = AimParams
{ _aimWeight :: Int
@@ -61,6 +63,7 @@ data AimParams = AimParams
, _aimMuzPos :: Float
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary AimParams
data AimStance
= TwoHandTwist
@@ -68,6 +71,7 @@ data AimStance
| OneHand
| LeaveHolstered
deriving (Eq, Show, Ord, Enum, Read, Generic, Flat)
instance Binary AimStance
data ItZoom = ItZoom
{ _itZoomMax :: Float
@@ -75,6 +79,7 @@ data ItZoom = ItZoom
, _itZoomFac :: Float
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ItZoom
makeLenses ''ItemUse
makeLenses ''AimParams
+4
View File
@@ -11,6 +11,7 @@ module Dodge.Data.Item.Use.Consumption (
module Dodge.Data.Item.Use.Consumption.LoadAction,
) where
import Data.Binary
import Flat
import Control.Lens
import Data.Aeson
@@ -29,6 +30,7 @@ data HeldConsumption
}
| NoConsumption
deriving (Eq, Show, Read, Generic, Flat)
instance Binary HeldConsumption
data LeftConsumption
= AutoRecharging
@@ -42,12 +44,14 @@ data LeftConsumption
, _wpCharge :: Int
}
deriving (Eq, Show, Read, Generic, Flat)
instance Binary LeftConsumption
newtype ItAmount = ItAmount {_getItAmount :: Int}
-- deriving (Eq, Ord, Read, Show, Num, Real, Generic, Flat)
deriving newtype (Eq, Ord, Read, Show, Num, Real, Enum, Integral)
deriving stock (Generic)
deriving anyclass (Flat)
instance Binary ItAmount
makeLenses ''HeldConsumption
makeLenses ''LeftConsumption
@@ -9,6 +9,7 @@ module Dodge.Data.Item.Use.Consumption.Ammo (
module Dodge.Data.Payload,
) where
import Data.Binary
import Flat
import Control.Lens
import Data.Aeson
@@ -18,9 +19,11 @@ import Dodge.Data.Payload
data ProjectileDraw = DrawShell | DrawRemoteShell | DrawDrone | DrawBlankProjectile
deriving (Show, Read, Eq, Ord, Enum, Bounded, Generic, Flat)
instance Binary ProjectileDraw
data ProjectileCreate = CreateShell | CreateTrackingShell
deriving (Show, Read, Eq, Ord, Enum, Bounded, Generic, Flat)
instance Binary ProjectileCreate
data ProjectileUpdate
= PJThrust {_pjuStart :: Int, _pjuEnd :: Int}
@@ -34,6 +37,7 @@ data ProjectileUpdate
| PJShellCollisionCheck
| PJRemoteShellCollisionCheck
deriving (Show, Read, Eq, Ord, Generic, Flat)
instance Binary ProjectileUpdate
data AmmoType
= ProjectileAmmo
@@ -57,12 +61,15 @@ data AmmoType
}
| GenericAmmo
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary AmmoType
data ForceFieldType = DefaultForceField
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ForceFieldType
data GasCreate = CreatePoisonGas | CreateFlame
deriving (Eq, Ord, Show, Enum, Bounded, Read, Generic, Flat)
instance Binary GasCreate
makeLenses ''ProjectileUpdate
makeLenses ''AmmoType
@@ -5,6 +5,7 @@
module Dodge.Data.Item.Use.Consumption.LoadAction where
import Data.Binary
import Flat
import Control.Lens
import Data.Aeson
@@ -18,14 +19,17 @@ data LoadAction
| LoadAdd {_actionTime :: Int, _actionSound :: SoundID, _insertMax :: Int}
| LoadPrime {_actionTime :: Int, _actionSound :: SoundID}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary LoadAction
data InvSel = InvSel {_iselPos :: Int, _iselAction :: InvSelAction}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary InvSel
data InvSelAction
= NoInvSelAction
| ReloadAction {_actionProgress :: Int, _reloadAction :: LoadAction, _actionHammer :: HammerType}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary InvSelAction
makeLenses ''LoadAction
makeLenses ''InvSel
+3
View File
@@ -8,6 +8,7 @@ module Dodge.Data.Item.Use.Equipment (
module Dodge.Data.Item.Use.Equipment,
) where
import Data.Binary
import Flat
import Control.Lens
import Data.Aeson
@@ -24,12 +25,14 @@ data EquipEffect = EquipEffect
, _eeViewDist :: Maybe Float
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary EquipEffect
data EquipParams
= NoEquipParams
| EquipID {_eparamID :: Int}
| EquipCounter {_eparamInt :: Int}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary EquipParams
makeLenses ''EquipEffect
makeLenses ''EquipParams
+4
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Laser where
import Data.Binary
import Flat
import Color
import Control.Lens
@@ -16,6 +17,7 @@ data LaserType
= DamageLaser {_laserTypeDamage :: Int}
| TargetLaser
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary LaserType
data LaserStart = LaserStart
{ _lpPhaseV :: Float
@@ -25,6 +27,7 @@ data LaserStart = LaserStart
, _lpType :: LaserType
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary LaserStart
data Laser = Laser
{ _laColor :: Color
@@ -32,6 +35,7 @@ data Laser = Laser
, _laType :: LaserType
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Laser
makeLenses ''Laser
makeLenses ''LaserStart
+7
View File
@@ -5,6 +5,7 @@
module Dodge.Data.LightSource where
import Data.Binary
import Flat
import LinearHelp ()
import Control.Lens
@@ -14,17 +15,20 @@ import Geometry
data LightSourceDraw = DefaultLightSourceDraw
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary LightSourceDraw
data TLSIntensity
= ConstantIntensity
| TLSFade Point3 Int
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary TLSIntensity
data TLSUpdate
= DestroyTLS
| TimerTLS
| IntensityTLS TLSIntensity
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary TLSUpdate
data LSParam = LSParam
{ _lsPos :: !Point3
@@ -32,6 +36,7 @@ data LSParam = LSParam
, _lsCol :: !Point3
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary LSParam
data LightSource = LS
{ _lsID :: Int
@@ -40,6 +45,7 @@ data LightSource = LS
, _lsPict :: LightSourceDraw --LightSource -> Picture
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary LightSource
data TempLightSource = TLS
{ _tlsParam :: LSParam
@@ -47,6 +53,7 @@ data TempLightSource = TLS
, _tlsTime :: Int
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary TempLightSource
makeLenses ''LSParam
makeLenses ''LightSource
+2
View File
@@ -5,6 +5,7 @@
module Dodge.Data.LinearShockwave where
import Data.Binary
import Flat
import LinearHelp ()
import Control.Lens
@@ -19,6 +20,7 @@ data LinearShockwave = LinearShockwave
, _lwTimer :: Int
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary LinearShockwave
makeLenses ''LinearShockwave
deriveJSON defaultOptions ''LinearShockwave
+4
View File
@@ -13,6 +13,7 @@ module Dodge.Data.Machine (
module Dodge.Data.GenParams,
) where
import Data.Binary
import Flat
import LinearHelp ()
import Color
@@ -47,6 +48,7 @@ data Machine = Machine
}
deriving (Eq, Show, Read, Generic)
--hderiving (Eq, Show, Read, Generic, Flat)
--instance Binary Machine
data MachineType
= McStatic
@@ -55,6 +57,7 @@ data MachineType
| McTurret Turret
deriving (Eq, Show, Read, Generic)
--hderiving (Eq, Show, Read, Generic, Flat)
--instance Binary MachineType
data Turret = Turret
{ _tuWeapon :: Item
@@ -64,6 +67,7 @@ data Turret = Turret
}
deriving (Eq, Show, Read, Generic)
--hderiving (Eq, Show, Read, Generic, Flat)
--instance Binary Turret
makeLenses ''Machine
makeLenses ''Turret
+4
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Machine.Sensor where
import Data.Binary
import Flat
import LinearHelp ()
import Dodge.Data.GenParams
@@ -30,15 +31,18 @@ data Sensor
, _sensToggle :: Bool
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Sensor
data ProximityRequirement
= RequireHealth {_proxReqMinHealth :: Int}
| RequireEquipment {_proxReqEquipment :: ItemBaseType}
| RequireImpossible
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ProximityRequirement
data CloseToggle = NotClose | IsClose
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary CloseToggle
makeLenses ''Sensor
makeLenses ''ProximityRequirement
+4
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Magnet where
import Data.Binary
import Flat
import LinearHelp ()
import Control.Lens
@@ -14,11 +15,13 @@ import Geometry.Data
newtype MagnetUpdate = MagnetUpdateTimer Int
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary MagnetUpdate
data MagnetBuBu
= MagnetBuId
| MagnetBuBuCurveAroundField Float Float
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary MagnetBuBu
data Magnet = Magnet
{ _mgID :: Int
@@ -27,6 +30,7 @@ data Magnet = Magnet
, _mgField :: MagnetBuBu
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Magnet
makeLenses ''Magnet
deriveJSON defaultOptions ''MagnetUpdate
+2
View File
@@ -5,11 +5,13 @@
module Dodge.Data.Material where
import Data.Binary
import Flat
import Data.Aeson
import Data.Aeson.TH
data Material = Wood | Dirt | Stone | Glass | Metal | Crystal | Flesh | Electronics
deriving (Eq, Ord, Show, Bounded, Enum, Read, Generic, Flat)
instance Binary Material
deriveJSON defaultOptions ''Material
+2
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Modification where
import Data.Binary
import Flat
import LinearHelp ()
import Control.Lens
@@ -29,6 +30,7 @@ data Modification
, _mdUpdate :: MdWdWd
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Modification
makeLenses ''Modification
deriveJSON defaultOptions ''Modification
+2
View File
@@ -5,6 +5,7 @@
module Dodge.Data.MountedObject where
import Data.Binary
import Flat
import Data.Aeson
import Data.Aeson.TH
@@ -13,5 +14,6 @@ data MountedObject
= MountedLS Int
| MountedProp Int
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary MountedObject
deriveJSON defaultOptions ''MountedObject
+2
View File
@@ -5,6 +5,7 @@
module Dodge.Data.ObjectType where
import Data.Binary
import Flat
import Data.Aeson
import Data.Aeson.TH
@@ -24,6 +25,7 @@ data ObjectType
| ObTrigger
| ObItem
deriving (Eq, Show, Ord, Read, Enum, Bounded, Generic, Flat)
instance Binary ObjectType
instance ToJSONKey ObjectType
+3
View File
@@ -14,6 +14,7 @@ The warnings have been disabled.
-}
module Dodge.Data.PathGraph where
import Data.Binary
import Flat
import LinearHelp ()
import Control.Lens
@@ -43,6 +44,7 @@ data PathEdge = PathEdge
, _peObstacles :: Set.Set EdgeObstacle
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary PathEdge
instance ToJSON PathEdge where
toEncoding = genericToEncoding defaultOptions
@@ -55,6 +57,7 @@ data EdgeObstacle
| AutoDoorObstacle
| WallObstacle
deriving (Eq, Ord, Show, Read, Bounded, Enum, Generic, Flat)
instance Binary EdgeObstacle
instance ToJSON EdgeObstacle where
toEncoding = genericToEncoding defaultOptions
+2
View File
@@ -5,11 +5,13 @@
module Dodge.Data.Payload where
import Data.Binary
import Flat
import Data.Aeson
import Data.Aeson.TH
data Payload = ExplosionPayload | DudPayload
deriving (Show, Read, Eq, Ord, Enum, Bounded, Generic, Flat)
instance Binary Payload
deriveJSON defaultOptions ''Payload
+3
View File
@@ -5,6 +5,7 @@
module Dodge.Data.PosEvent where
import Data.Binary
import Flat
import LinearHelp ()
import Control.Lens
@@ -14,6 +15,7 @@ import Geometry.Data
data PosEventType = SparkSpawner
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary PosEventType
data PosEvent = PosEvent
{ _pvType :: PosEventType
@@ -21,6 +23,7 @@ data PosEvent = PosEvent
, _pvPos :: Point2
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary PosEvent
makeLenses ''PosEvent
deriveJSON defaultOptions ''PosEventType
+3
View File
@@ -5,6 +5,7 @@
module Dodge.Data.PressPlate where
import Data.Binary
import Flat
import LinearHelp ()
import Control.Lens
@@ -17,6 +18,7 @@ data PressPlateEvent
= PressPlateId
| PPLevelReset
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary PressPlateEvent
data PressPlate = PressPlate
{ _ppPict :: Picture
@@ -27,6 +29,7 @@ data PressPlate = PressPlate
, _ppText :: String
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary PressPlate
makeLenses ''PressPlate
deriveJSON defaultOptions ''PressPlateEvent
+2
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Projectile where
import Data.Binary
import Flat
import Control.Lens
import Data.Aeson
@@ -29,6 +30,7 @@ data Proj
, _prjMITID :: Maybe Int
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Proj
makeLenses ''Proj
deriveJSON defaultOptions ''Proj
+5
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Prop where
import Data.Binary
import Flat
import Color
import Control.Lens
@@ -40,6 +41,7 @@ data Prop
, _prToggle :: Bool
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Prop
data PropDraw
= PropDrawSPic SPic
@@ -52,6 +54,7 @@ data PropDraw
| PropDrawToggle PropDraw
| PropDrawGib Float
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary PropDraw
data PropUpdate
= PropUpdateAnd PropUpdate PropUpdate
@@ -66,12 +69,14 @@ data PropUpdate
| PropUpdateWhen WdBl PropUpdate
| PropUpdateIf WdBl PropUpdate PropUpdate
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary PropUpdate
data PrWdLsLs
= PrWdLsId
| PrWdLsSetPosition WdP2f Point3
| PrWdLsSetColor Point3
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary PrWdLsLs
makeLenses ''Prop
deriveJSON defaultOptions ''PropDraw
+2
View File
@@ -5,6 +5,7 @@
module Dodge.Data.RadarBlip where
import Data.Binary
import Flat
import LinearHelp ()
import Color
@@ -21,6 +22,7 @@ data RadarBlip = RadarBlip
, _rbPos :: Point2
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary RadarBlip
makeLenses ''RadarBlip
deriveJSON defaultOptions ''RadarBlip
+2
View File
@@ -8,6 +8,7 @@ module Dodge.Data.RadarSweep (
module Dodge.Data.ObjectType,
) where
import Data.Binary
import Flat
import LinearHelp ()
import Control.Lens
@@ -23,6 +24,7 @@ data RadarSweep = RadarSweep
, _rsTimer :: Int
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary RadarSweep
makeLenses ''RadarSweep
deriveJSON defaultOptions ''RadarSweep
+4
View File
@@ -5,6 +5,7 @@
module Dodge.Data.RightButtonOptions where
import Data.Binary
import Flat
import Control.Lens
import Data.Aeson
@@ -21,6 +22,7 @@ data RightButtonOptions
, _opActivateEquipment :: ActivateEquipment
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary RightButtonOptions
data ActivateEquipment
= ActivateEquipment {_activateEquipment :: Int}
@@ -28,6 +30,7 @@ data ActivateEquipment
| ActivateDeactivateEquipment {_activateEquipment :: Int, _deactivateEquipment :: Int}
| NoChangeActivateEquipment
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ActivateEquipment
data AllocateEquipment
= DoNotMoveEquipment
@@ -51,6 +54,7 @@ data AllocateEquipment
{ _allocOldPos :: EquipPosition
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary AllocateEquipment
makeLenses ''RightButtonOptions
makeLenses ''AllocateEquipment
+2
View File
@@ -4,6 +4,7 @@
{-# LANGUAGE TemplateHaskell #-}
module Dodge.Data.SaveSlot where
import Data.Binary
import Flat
import Control.Lens
@@ -12,5 +13,6 @@ data SaveSlot
| LevelStartSlot Int
| SaveSlotNum Int
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary SaveSlot
makeLenses ''SaveSlot
+3
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Shockwave where
import Data.Binary
import Flat
import Color
import Control.Lens
@@ -14,6 +15,7 @@ import Geometry.Data
data ShockwaveDirection = OutwardShockwave | InwardShockwave
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ShockwaveDirection
data Shockwave = Shockwave
{ _swColor :: Color
@@ -27,6 +29,7 @@ data Shockwave = Shockwave
, _swTimer :: Int
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Shockwave
makeLenses ''Shockwave
deriveJSON defaultOptions ''ShockwaveDirection
+2
View File
@@ -5,6 +5,7 @@
module Dodge.Data.SoundOrigin where
import Data.Binary
import Flat
import Data.Aeson
import Data.Aeson.TH
@@ -37,6 +38,7 @@ data SoundOrigin
| Explosion Int
| Tap Int
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary SoundOrigin
instance ToJSONKey SoundOrigin
+2
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Spark where
import Data.Binary
import Flat
import LinearHelp ()
import Color
@@ -23,6 +24,7 @@ data Spark = Spark
, _skDamageType :: DamageType
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Spark
makeLenses ''Spark
deriveJSON defaultOptions ''Spark
+13
View File
@@ -5,6 +5,7 @@
module Dodge.Data.Terminal where
import Data.Binary
import Flat
import LinearHelp ()
import Color
@@ -17,6 +18,7 @@ import Dodge.Data.WorldEffect
data TerminalStatus = TerminalOff | TerminalBusy | TerminalReady
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary TerminalStatus
data TerminalInput = TerminalInput
{ _tiText :: T.Text
@@ -24,12 +26,14 @@ data TerminalInput = TerminalInput
, _tiSel :: (Int, Int)
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary TerminalInput
data TerminalBootProgram
= TerminalBootMempty
| TerminalBootLines [TerminalLine]
deriving (Eq, Show, Read, Generic)
--hderiving (Eq, Show, Read, Generic, Flat)
--instance Binary TerminalBootProgram
data Terminal = Terminal
{ _tmID :: Int
@@ -51,15 +55,18 @@ data Terminal = Terminal
}
deriving (Eq, Show, Read, Generic)
--hderiving (Eq, Show, Read, Generic, Flat)
--instance Binary Terminal
data TerminalLineString = TerminalLineConst String Color
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary TerminalLineString
data TmTm
= TmId
| TmTmClearDisplayedLines
| TmTmSetStatus TerminalStatus
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary TmTm
data TerminalLine
= TerminalLineDisplay
@@ -76,18 +83,21 @@ data TerminalLine
}
deriving (Eq, Show, Read, Generic)
--hderiving (Eq, Show, Read, Generic, Flat)
--instance Binary TerminalLine
data TerminalToggle = TerminalToggle
{ _ttTriggerID :: Int
, _ttDeathEffect :: BlBl
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary TerminalToggle
data BlBl
= BlNegate
| BlConst Bool
| BlId
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary BlBl
data EffectArguments
= NoArguments {_cmdEffect :: [TerminalLine]}
@@ -97,6 +107,7 @@ data EffectArguments
}
deriving (Eq, Show, Read, Generic)
--hderiving (Eq, Show, Read, Generic, Flat)
--instance Binary EffectArguments
data TerminalCommandEffect
= TerminalCommandArguments EffectArguments
@@ -110,6 +121,7 @@ data TerminalCommandEffect
| TerminalCommandEffectNone
deriving (Eq, Show, Read, Generic)
--hderiving (Eq, Show, Read, Generic, Flat)
--instance Binary TerminalCommandEffect
data TerminalCommand = TerminalCommand
{ _tcString :: String
@@ -119,6 +131,7 @@ data TerminalCommand = TerminalCommand
}
deriving (Eq, Show, Read, Generic)
--hderiving (Eq, Show, Read, Generic, Flat)
--instance Binary TerminalCommand
makeLenses ''TerminalInput
makeLenses ''Terminal
+2
View File
@@ -5,6 +5,7 @@
module Dodge.Data.TeslaArc where
import Data.Binary
import Flat
import LinearHelp ()
import Color
@@ -21,6 +22,7 @@ data TeslaArc = TeslaArc
, _taColor :: Color
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary TeslaArc
makeLenses ''TeslaArc
deriveJSON defaultOptions ''TeslaArc
+2
View File
@@ -5,6 +5,7 @@
module Dodge.Data.TractorBeam where
import Data.Binary
import Flat
import LinearHelp ()
import Control.Lens
@@ -19,6 +20,7 @@ data TractorBeam = TractorBeam
, _tbTime :: Int
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary TractorBeam
makeLenses ''TractorBeam
deriveJSON defaultOptions ''TractorBeam
+2
View File
@@ -11,6 +11,7 @@ module Dodge.Data.Universe (
module Picture.Data,
) where
import Data.Binary
import Flat
import Control.Lens
--import qualified Data.Map.Strict as M
@@ -42,6 +43,7 @@ data ConcEffect = NoConcEffect
data OptionScreenFlag = NormalOptions | GameOverOptions | SplashOptions
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary OptionScreenFlag
data ScreenLayer
= OptionScreen
+5
View File
@@ -8,6 +8,7 @@ module Dodge.Data.Wall (
module Dodge.Data.Material,
) where
import Data.Binary
import Flat
import LinearHelp ()
import Color
@@ -37,6 +38,7 @@ data Wall = Wall
, _wlMaterial :: Material
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Wall
data Opacity
= SeeThrough
@@ -44,9 +46,11 @@ data Opacity
| DrawnWall {_opDraw :: WallDraw} -- Wall -> SPic
| Opaque
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Opacity
data WallDraw = DrawForceField
deriving (Eq, Ord, Show, Read, Enum, Bounded, Generic, Flat)
instance Binary WallDraw
data WallStructure
= StandaloneWall
@@ -57,6 +61,7 @@ data WallStructure
{ _wlStCreature :: Int
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary WallStructure
makeLenses ''Wall
makeLenses ''Opacity
+2
View File
@@ -12,6 +12,7 @@ module Dodge.Data.World (
module Dodge.Data.Hammer,
) where
import Data.Binary
import Flat
import Dodge.Data.SaveSlot
import Control.Lens
@@ -53,6 +54,7 @@ data TimeFlowStatus
| RewindingLastFrame
| NormalTimeFlow
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary TimeFlowStatus
data WorldHammer
= SubInvHam
+9
View File
@@ -5,6 +5,7 @@
module Dodge.Data.WorldEffect where
import Data.Binary
import Flat
import Data.Aeson
import Data.Aeson.TH
@@ -18,6 +19,7 @@ data ItCrWdWd
= ItCrWdId
| ItCrWdItemEffect
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ItCrWdWd
data WdWd
= NoWorldEffect
@@ -34,11 +36,13 @@ data WdWd
| WdWdFromItCrixWdWd Item Int ItCrWdWd
deriving (Eq, Show, Read, Generic)
--hderiving (Eq, Show, Read, Generic, Flat)
--instance Binary WdWd
data WdP2
= WdP2Const Point2
| WdYouPos
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary WdP2
data MdWdWd
= MdWdId
@@ -46,6 +50,7 @@ data MdWdWd
| MdSetLSCol Point3
| MdFlickerUpdate
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary MdWdWd
data WdBl
= WdTrig Int
@@ -56,11 +61,13 @@ data WdBl
| WdBlBtOn Int
| WdBlBtNotOff Int
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary WdBl
data WdP2f
= WdP2f0
| WdP2fDoorPosition Int
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary WdP2f
data DrWdWd
= DrWdId
@@ -68,6 +75,7 @@ data DrWdWd
| DrWdMechanismStepwise Int [Int] [(Point2, Point2)]
| DoorMechanism
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary DrWdWd
data TmWdWd
= TmWdId
@@ -77,6 +85,7 @@ data TmWdWd
| TmWdWdDoDeathTriggers
deriving (Eq, Show, Read, Generic)
--hderiving (Eq, Show, Read, Generic, Flat)
--instance Binary TmWdWd
deriveJSON defaultOptions ''ItCrWdWd
deriveJSON defaultOptions ''WdWd
+2
View File
@@ -7,6 +7,7 @@
-- | GameRooms contain information about given positions in the world
module Dodge.GameRoom where
import Data.Binary
import Flat
import Control.Lens
import Data.Aeson
@@ -23,6 +24,7 @@ data GameRoom = GameRoom
, _grName :: String
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary GameRoom
instance ToJSON GameRoom where
toEncoding = genericToEncoding defaultOptions
+1
View File
@@ -10,6 +10,7 @@ module Dodge.Save (
fromJSONSaveSlot,
) where
import Data.Binary
import Flat
import Dodge.Concurrent
import Control.Lens
+2
View File
@@ -16,6 +16,7 @@ module Geometry.ConvexPoly (
import Control.Lens
import Data.Aeson
import Data.Binary
import Flat
import Geometry.Data
import Geometry.Intersect
@@ -31,6 +32,7 @@ data ConvexPoly = ConvexPoly
, _cpRad :: Float
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ConvexPoly
instance ToJSON ConvexPoly where
toEncoding = genericToEncoding defaultOptions
+1
View File
@@ -10,6 +10,7 @@ module IntSetHelp (
import Data.IntSet.Internal
import Data.IntSet
import Data.Binary
import Flat
-- IntSet is not an instance of Generic?!
+1
View File
@@ -4,6 +4,7 @@
{-# OPTIONS_GHC -fno-warn-orphans #-}
module LinearHelp where
import Data.Binary
import Flat
import Linear.V2
import Linear.V3
+2
View File
@@ -8,10 +8,12 @@ module MaybeHelp where
import Control.Lens
import Data.Aeson
import Data.Binary
import Flat
data Maybe' a = Just' {__Just' :: a} | Nothing'
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance (Binary a => Binary (Maybe' a))
instance ToJSON a => ToJSON (Maybe' a) where
toEncoding = genericToEncoding defaultOptions
+4
View File
@@ -5,6 +5,7 @@
module Picture.Data where
import Data.Binary
import Flat
import LinearHelp ()
import Control.Lens
@@ -21,6 +22,7 @@ data Verx = Verx
, _vxShadNum :: !ShadNum
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary Verx
data Layer
= BottomLayer
@@ -30,6 +32,7 @@ data Layer
| DebugLayer
| FixedCoordLayer
deriving (Eq, Ord, Enum, Bounded, Show, Read, Generic, Flat)
instance Binary Layer
layerNum :: Layer -> Int
layerNum = fromEnum
@@ -39,6 +42,7 @@ numLayers = length [minBound :: Layer .. maxBound]
newtype ShadNum = ShadNum {_unShadNum :: Int}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ShadNum
polyNum, polyzNum, bezNum, textNum, arcNum, ellNum :: ShadNum
{-# INLINE polyNum #-}
+1
View File
@@ -15,6 +15,7 @@ module Quaternion (
) where
import Data.Aeson
import Data.Binary
import Flat
import Geometry.Data
import Geometry.Vector3D
+6
View File
@@ -8,8 +8,10 @@
module Shape.Data where
import Data.Binary
import Control.Lens
import Data.Aeson
import Data.Binary
import Flat
import Geometry.Data
import LinearHelp ()
@@ -30,6 +32,7 @@ data ShapeObj = ShapeObj
, _shVs :: [ShapeV]
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ShapeObj
instance ToJSON ShapeObj where
toEncoding = genericToEncoding defaultOptions
@@ -41,6 +44,8 @@ newtype ShapeType = TopPrism Int
deriving stock Generic
deriving anyclass Flat
instance Binary ShapeType
instance ToJSON ShapeType where
toEncoding = genericToEncoding defaultOptions
@@ -52,6 +57,7 @@ data ShapeV = ShapeV
, _svCol :: Point4
}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary ShapeV
instance ToJSON ShapeV where
toEncoding = genericToEncoding defaultOptions
+3 -1
View File
@@ -5,6 +5,7 @@
module Sound.Data where
import Data.Binary
import Flat
import LinearHelp ()
import Control.Lens
@@ -29,10 +30,11 @@ data PlayStatus
| ToStart
| ToContinueStart
| ToStop
deriving (Eq, Ord, Show)
deriving (Eq, Ord, Show, Read, Generic)
newtype SoundID = SoundID {_getSoundID :: Int}
deriving (Eq, Ord, Show, Read, Generic, Flat)
instance Binary SoundID
newtype SoundData = SoundData
{ _loadedChunks :: IM.IntMap Mix.Chunk