diff --git a/src/Dodge/Data/ComposedItem.hs b/src/Dodge/Data/ComposedItem.hs index 83f7b3603..ecdd3622a 100644 --- a/src/Dodge/Data/ComposedItem.hs +++ b/src/Dodge/Data/ComposedItem.hs @@ -43,6 +43,7 @@ data ItemStructuralFunction | GadgetPlatformSF | WeaponScopeSF | WeaponTargetingSF + | IntroScanSF | TriggerSF | AugmentedHUDSF | AmmoMagSF AmmoType diff --git a/src/Dodge/Item/Grammar.hs b/src/Dodge/Item/Grammar.hs index 2dcace31e..d2700d9c7 100644 --- a/src/Dodge/Item/Grammar.hs +++ b/src/Dodge/Item/Grammar.hs @@ -131,6 +131,7 @@ getAmmoLinks itm = itemToFunction :: Item -> ItemStructuralFunction itemToFunction itm = case itm ^. itType of + INTROSCAN {} -> IntroScanSF HELD LASER -> WeaponTargetingSF HELD{} -> case itm ^? itUseCondition of Just UseableWhenAimed -> HeldPlatformSF diff --git a/src/Dodge/Item/InventoryColor.hs b/src/Dodge/Item/InventoryColor.hs index 0db1650cc..ef28eac81 100644 --- a/src/Dodge/Item/InventoryColor.hs +++ b/src/Dodge/Item/InventoryColor.hs @@ -8,6 +8,7 @@ import Dodge.Data.ComposedItem itemInvColor :: ComposedItem -> Color itemInvColor ci = case ci ^. _2 of + IntroScanSF -> white UnloadedWeaponSF -> mixColorsLinear 0.5 0.5 red white HeldPlatformSF -> white MakeAutoSF -> white diff --git a/src/ShortShow.hs b/src/ShortShow.hs index 416dab829..f6cfb2bca 100644 --- a/src/ShortShow.hs +++ b/src/ShortShow.hs @@ -1,9 +1,8 @@ -module ShortShow - ( shortShow - ) where -import Geometry +module ShortShow ( + shortShow, +) where ---import Data.Typeable +import Geometry import Numeric class ShortShow a where @@ -11,13 +10,13 @@ class ShortShow a where instance ShortShow a => ShortShow (V2 a) where shortShow (V2 x y) = shortShow x ++ "#" ++ shortShow y - + instance ShortShow Float where shortShow x = showFFloat (Just 2) x "" instance ShortShow Int where shortShow x - | x < k = show x + | x < k' = show x | x < m = fdiv x k "K" | x < g = fdiv x m "M" | x < t = fdiv x g "G" @@ -25,18 +24,19 @@ instance ShortShow Int where | otherwise = show x ++ "P" fdiv :: Int -> Int -> String -> String -fdiv x y s = removeDot (take 3 (show ((fromIntegral x / fromIntegral y)::Float))) ++ s +fdiv x y s = removeDot (take 3 (show ((fromIntegral x / fromIntegral y) :: Float))) ++ s removeDot :: String -> String -removeDot [a,b,'.'] = [a,b] +removeDot [a, b, '.'] = [a, b] removeDot xs = xs -k,m,g,t,p :: Int +k, k', m, g, t, p :: Int k = 10 ^ (3 :: Int) +k' = 10 ^ (4 :: Int) -- this allows showing up to 9999 directly m = 10 ^ (6 :: Int) g = 10 ^ (9 :: Int) -t = 10 ^ (12:: Int) -p = 10 ^ (15:: Int) +t = 10 ^ (12 :: Int) +p = 10 ^ (15 :: Int) -instance (ShortShow a,ShortShow b) => ShortShow (a,b) where - shortShow (a,b) = '(' : shortShow a ++ "," ++ shortShow b ++ ")" +instance (ShortShow a, ShortShow b) => ShortShow (a, b) where + shortShow (a, b) = '(' : shortShow a ++ "," ++ shortShow b ++ ")"