diff options
author | Griffin Smith <root@gws.fyi> | 2019-11-30T20·00-0500 |
---|---|---|
committer | Griffin Smith <root@gws.fyi> | 2019-11-30T20·00-0500 |
commit | 97a5c61f28ba98728bab390e0ea745edfbea7103 (patch) | |
tree | 25304c30990cffb5756f44c79542edf9dd2e5ac6 /src/Xanthous/Entities | |
parent | 310ea90985adcb6d9efe2ab05c67a235c2fb0ea2 (diff) |
Fix an injectivity issue with saving the game
Fix an injectivity issue with JSON-encoding the entity map that was causing the game saving to not properly round-trip. As part of this, there's a refactor to the internals of the entity map to use sets instead of vectors, which should also get us a nice perf boost.
Diffstat (limited to 'src/Xanthous/Entities')
-rw-r--r-- | src/Xanthous/Entities/Character.hs | 2 | ||||
-rw-r--r-- | src/Xanthous/Entities/Creature.hs | 6 | ||||
-rw-r--r-- | src/Xanthous/Entities/Item.hs | 2 | ||||
-rw-r--r-- | src/Xanthous/Entities/RawTypes.hs | 6 |
4 files changed, 8 insertions, 8 deletions
diff --git a/src/Xanthous/Entities/Character.hs b/src/Xanthous/Entities/Character.hs index 22589252acce..dd14390df979 100644 --- a/src/Xanthous/Entities/Character.hs +++ b/src/Xanthous/Entities/Character.hs @@ -39,7 +39,7 @@ data Character = Character , _characterHitpoints' :: !Double , _speed :: TicksPerTile } - deriving stock (Show, Eq, Generic) + deriving stock (Show, Eq, Ord, Generic) deriving anyclass (NFData, CoArbitrary, Function) deriving (ToJSON, FromJSON) via WithOptions '[ FieldLabelModifier '[Drop 1] ] diff --git a/src/Xanthous/Entities/Creature.hs b/src/Xanthous/Entities/Creature.hs index de9122746bcf..6f97c128d257 100644 --- a/src/Xanthous/Entities/Creature.hs +++ b/src/Xanthous/Entities/Creature.hs @@ -47,7 +47,7 @@ data Destination = Destination -- When this value reaches >= 1, the creature has reached their destination , _destinationProgress :: !Tiles } - deriving stock (Eq, Show, Generic) + deriving stock (Eq, Show, Ord, Generic) deriving anyclass (NFData, CoArbitrary, Function) deriving (ToJSON, FromJSON) via WithOptions '[ FieldLabelModifier '[Drop 1] ] @@ -63,7 +63,7 @@ destinationFromPos _destinationPosition = data Hippocampus = Hippocampus { _destination :: !(Maybe Destination) } - deriving stock (Eq, Show, Generic) + deriving stock (Eq, Show, Ord, Generic) deriving anyclass (NFData, CoArbitrary, Function) deriving (ToJSON, FromJSON) via WithOptions '[ FieldLabelModifier '[Drop 1] ] @@ -81,7 +81,7 @@ data Creature = Creature , _hitpoints :: !Hitpoints , _hippocampus :: !Hippocampus } - deriving stock (Eq, Show, Generic) + deriving stock (Eq, Show, Ord, Generic) deriving anyclass (NFData, CoArbitrary, Function) deriving Draw via DrawRawCharPriority "_creatureType" 1000 Creature deriving (ToJSON, FromJSON) diff --git a/src/Xanthous/Entities/Item.hs b/src/Xanthous/Entities/Item.hs index 465110069c1d..0156cd54c8a7 100644 --- a/src/Xanthous/Entities/Item.hs +++ b/src/Xanthous/Entities/Item.hs @@ -21,7 +21,7 @@ import Xanthous.Game.State data Item = Item { _itemType :: ItemType } - deriving stock (Eq, Show, Generic) + deriving stock (Eq, Show, Ord, Generic) deriving anyclass (NFData, CoArbitrary, Function) deriving Draw via DrawRawChar "_itemType" Item deriving (ToJSON, FromJSON) diff --git a/src/Xanthous/Entities/RawTypes.hs b/src/Xanthous/Entities/RawTypes.hs index f715f8743ab1..822b93f2dfe1 100644 --- a/src/Xanthous/Entities/RawTypes.hs +++ b/src/Xanthous/Entities/RawTypes.hs @@ -40,7 +40,7 @@ data CreatureType = CreatureType , _friendly :: !Bool , _speed :: !TicksPerTile } - deriving stock (Show, Eq, Generic) + deriving stock (Show, Eq, Ord, Generic) deriving anyclass (NFData, CoArbitrary, Function) deriving (ToJSON, FromJSON) via WithOptions '[ FieldLabelModifier '[Drop 1] ] @@ -56,7 +56,7 @@ data EdibleItem = EdibleItem { _hitpointsHealed :: Int , _eatMessage :: Maybe Message } - deriving stock (Show, Eq, Generic) + deriving stock (Show, Eq, Ord, Generic) deriving anyclass (NFData, CoArbitrary, Function) deriving (ToJSON, FromJSON) via WithOptions '[ FieldLabelModifier '[Drop 1] ] @@ -73,7 +73,7 @@ data ItemType = ItemType , _char :: EntityChar , _edible :: Maybe EdibleItem } - deriving stock (Show, Eq, Generic) + deriving stock (Show, Eq, Ord, Generic) deriving anyclass (NFData, CoArbitrary, Function) deriving (ToJSON, FromJSON) via WithOptions '[ FieldLabelModifier '[Drop 1] ] |