Cleanup. Only update draw distance every 5 frames

This commit is contained in:
2024-09-21 18:46:16 +01:00
parent 9df60d62ab
commit cb3288db45
6 changed files with 102 additions and 114 deletions
+15 -15
View File
@@ -21,7 +21,7 @@ import Geometry.Data
import Control.Lens
import Data.Aeson
import Data.Aeson.TH
import qualified Data.Sequence as Seq
--import qualified Data.Sequence as Seq
import Dodge.Data.Hammer
import Dodge.Data.Item.HeldUse
import Dodge.Data.Item.Use.Consumption
@@ -60,7 +60,7 @@ data ItemUse
| CraftUse
-- {_useAmount :: ItAmount}
| AttachUse
{_attachParams :: AttachParams}
-- {_attachParams :: AttachParams}
| AmmoMagUse
{ _amagLoadStatus :: ReloadStatus
, _amagParams :: AmmoParams
@@ -105,11 +105,11 @@ data HeldParams
}
deriving (Eq, Show, Read) --Generic, Flat)
data AttachParams
= ScrollAttachParams {_scrollAttachParams :: ScrollAttachParams}
| TargetAttachParams
| NoAttachParams
deriving (Eq, Show, Read) --Generic, Flat)
--data AttachParams
-- = ScrollAttachParams {_scrollAttachParams :: ScrollAttachParams}
-- | TargetAttachParams
-- | NoAttachParams
-- deriving (Eq, Show, Read) --Generic, Flat)
data AmmoParams = BulletParams {_ampBullet :: Bullet}
| ProjectileParams
@@ -120,10 +120,10 @@ data AmmoParams = BulletParams {_ampBullet :: Bullet}
| GasParams {_ampCreateGas :: GasFuel}
deriving (Eq, Show, Read) --Generic, Flat)
data ScrollAttachParams
= CharScrollParams
{ _scrollChar :: Seq.Seq Char}
deriving (Eq, Show, Read) --Generic, Flat)
--data ScrollAttachParams
-- = CharScrollParams
-- { _scrollChar :: Seq.Seq Char}
-- deriving (Eq, Show, Read) --Generic, Flat)
data AimParams = AimParams
{ _aimWeight :: Int
@@ -202,8 +202,8 @@ makeLenses ''AimParams
makeLenses ''ItZoom
makeLenses ''Muzzle
makeLenses ''HeldParams
makeLenses ''AttachParams
makeLenses ''ScrollAttachParams
--makeLenses ''AttachParams
--makeLenses ''ScrollAttachParams
makeLenses ''AmmoParams
makeLenses ''MuzzleEffect
deriveJSON defaultOptions ''MuzzleEffect
@@ -213,8 +213,8 @@ deriveJSON defaultOptions ''AmmoParams
deriveJSON defaultOptions ''HeldParams
deriveJSON defaultOptions ''Muzzle
deriveJSON defaultOptions ''AimStance
deriveJSON defaultOptions ''ScrollAttachParams
deriveJSON defaultOptions ''AttachParams
--deriveJSON defaultOptions ''ScrollAttachParams
--deriveJSON defaultOptions ''AttachParams
deriveJSON defaultOptions ''ItZoom
deriveJSON defaultOptions ''AimParams
deriveJSON defaultOptions ''ItemUse
+2 -2
View File
@@ -104,9 +104,9 @@ chemFuelPouch =
bulletSynthesizer :: Item
bulletSynthesizer = defaultHeldItem
& itType . iyBase .~ ATTACH BULLETSYNTHESIZER
& itUse .~ AttachUse NoAttachParams
& itUse .~ AttachUse
rocketHomer :: Item
rocketHomer = defaultHeldItem
& itType . iyBase .~ ATTACH ROCKETHOMER
& itUse .~ AttachUse NoAttachParams
& itUse .~ AttachUse
+2 -2
View File
@@ -19,10 +19,10 @@ targetingScope :: TargetType -> Item
targetingScope tt =
defaultHeldItem
& itType . iyBase .~ ATTACH (TARGETATTACH tt)
& itUse .~ AttachUse TargetAttachParams
& itUse .~ AttachUse
rocketRemoteScreen :: Item
rocketRemoteScreen =
defaultHeldItem
& itType . iyBase .~ ATTACH ROCKETREMOTESCREEN
& itUse .~ AttachUse NoAttachParams
& itUse .~ AttachUse
+7 -7
View File
@@ -91,14 +91,14 @@ moveZoomCamera cfig theinput cr campos =
guard (SDL.ButtonRight `M.member` _mouseButtons theinput)
i <- cr ^? crManipulation . manObject . inInventory . ispItem
(cr ^? crInv . ix i . itScope . remotePos)
mscopeoffset = do
camrot = campos ^. camRot
newcen = _crPos cr +.+ offset
offset = fromMaybe noscopeoffset $ do
guard (SDL.ButtonRight `M.member` _mouseButtons theinput)
i <- cr ^? crManipulation . manObject . inInventory . ispItem
(fmap (rotateV camrot) (cr ^? crInv . ix i . itScope . opticPos))
<|> (cr ^? crInv . ix i . itScope . remotePos)
camrot = campos ^. camRot
newcen = _crPos cr +.+ fromMaybe (V2 0 0) mscopeoffset +.+ offset
offset =
noscopeoffset =
rotateV (campos ^. camRot) $
((newzoom - newDefaultZoom) / (newDefaultZoom * newzoom)) *.* _mousePos theinput
newzoom = fromMaybe (newDefaultZoom * newItemZoom) $ do
@@ -131,7 +131,6 @@ moveZoomCamera cfig theinput cr campos =
-- is wanted
updateScopeZoom :: World -> World
updateScopeZoom w = fromMaybe w $ do
--i <- yourScopeInvID w
i <- you w ^? crManipulation . manObject . inInventory . ispItem
return $ updateScopeZoom' i w
@@ -251,10 +250,11 @@ findBoundDists cfig w
hh = halfHeight cfig
updateBounds :: Configuration -> World -> World
updateBounds cfig w =
w
updateBounds cfig w = case (w ^. cWorld . cClock) `mod` 5 of
0 -> w
& wCam . camBoundDist .~ bdists
& wCam . camBoundBox
.~ map ((+.+ w ^. wCam . camCenter) . rotateV (w ^. wCam . camRot)) (rectNSWE n s w' e)
_ -> w
where
bdists@(n, s, e, w') = findBoundDists cfig w