From 57be90fea22b2a62a3d9d81773f2674433e15490 Mon Sep 17 00:00:00 2001 From: justin Date: Tue, 8 Jul 2025 23:22:33 +0100 Subject: [PATCH] Cleanup, remove chainLinkOrientation/updateItemWithOrientation etc --- src/Dodge/Creature/State.hs | 101 ++---------------------------------- 1 file changed, 3 insertions(+), 98 deletions(-) diff --git a/src/Dodge/Creature/State.hs b/src/Dodge/Creature/State.hs index 9b2953f30..6a45d01f9 100644 --- a/src/Dodge/Creature/State.hs +++ b/src/Dodge/Creature/State.hs @@ -31,7 +31,6 @@ import Dodge.Item.Grammar import Dodge.Item.HeldOffset import Dodge.Item.Location import Dodge.Item.MaxAmmo -import Dodge.Item.Orientation import Dodge.Prop.Gib import Dodge.SoundLogic import Dodge.Targeting.Draw @@ -70,7 +69,6 @@ crUpdate f = , updateWalkCycle , f , invRootItemEffs - , updateHeldRootItem ] -- I have changed the ordering of item/equipment effects, which may have @@ -163,7 +161,7 @@ invItemLocUpdate cr loc w = doAnyEquipmentEffect loc cr $ case itm ^. itType of HELD LASER | loc ^. locLDT . ldtValue . _2 == WeaponTargetingSF , itm ^? itLocation . ilIsAttached == Just True -> shineTargetLaser cr loc w HELD TORCH - | itm ^? itLocation . ilIsAttached == Just True -> shineTorch' cr loc w + | itm ^? itLocation . ilIsAttached == Just True -> shineTorch cr loc w TARGETING tt | itm ^? itLocation . ilIsAttached == Just True -> updateItemTargeting tt cr itm w ARHUD @@ -287,44 +285,6 @@ trySynthBullet loc w = fromMaybe w $ do where itm = loc ^. locLDT . ldtValue . _1 -updateHeldRootItem :: Creature -> World -> World -updateHeldRootItem cr = fromMaybe id $ do - invid <- cr ^? crManipulation . manObject . imRootSelectedItem - itmtree <- invRootTrees' (_crInv cr) ^? ix invid - return $ updateAttachedItems itmtree cr - -updateAttachedItems :: LDTree ItemLink CItem -> Creature -> World -> World -updateAttachedItems itmtree cr = - cldtPropagateFold - chainLinkOrientation - chainLinkOrientation - (updateItemWithOrientation cr) - (handHandleOrient (LocLDT TopLDT itmtree) cr) - (LocLDT TopLDT itmtree) - --- need to check rotation -chainLinkOrientation :: Point3Q -> CItem -> ItemLink -> CItem -> Point3Q -chainLinkOrientation o par lt child = - o - `Q.comp` orientAttachment (par ^. _1) lt (child ^. _1) - -updateItemWithOrientation :: - Creature -> - Point3Q -> - LocationLDT ItemLink CItem -> - World -> - World -updateItemWithOrientation cr m loc@(LocLDT _ itmtree) w = - case (ci ^. _1 . itType, ci ^. _2) of - (HELD TORCH, _) -> w -- shineTorch cr itmtree m w - (HELD LASER, WeaponTargetingSF) -> w -- shineTargetLaser cr loc m w - (TARGETING tt, _) -> w -- updateItemTargeting tt cr itm w - (ARHUD, _) -> w --drawARHUD loc w - _ -> w - where - ci = itmtree ^. ldtValue - itm = ci ^. _1 - drawARHUD :: LocationLDT ItemLink OItem -> World -> World drawARHUD (LocLDT con _) w = fromMaybe w $ do itm <- con ^? cldtParent . _1 @@ -372,63 +332,8 @@ shineTargetLaser cr loc w = fromMaybe (w & pointittarg . itTgPos .~ Nothing) $ d invid = _ilInvID $ _itLocation itm col = blue -- mixColors reloadFrac (1-reloadFrac) blue red ---shineTargetLaser :: Creature -> LocationLDT ItemLink CItem -> Point3Q -> World -> World ---shineTargetLaser cr loc o w = fromMaybe (w & pointittarg . itTgPos .~ Nothing) $ do --- guard (crIsAiming cr) --- (_, mag) <- find (isammolink . fst) (itmtree ^. ldtLeft) --- i <- mag ^. ldtValue . _1 . itConsumables --- guard $ i >= x --- maginvid <- mag ^? ldtValue . _1 . itLocation . ilInvID --- return $ --- w --- & worldEventFlags . at InventoryChange ?~ () --- & cWorld . lWorld . creatures . ix (_crID cr) --- . crInv --- . ix maginvid --- . itConsumables --- . _Just --- -~ x --- & cWorld . lWorld . lasers --- .:~ Laser --- { _lpPhaseV = 1 --- , _lpDir = _crDir cr + argV (Q.qToV2 q) --- , _lpPos = pos --- , _lpColor = col --- , _lpType = TargetingLaser (_itID itm) --- } --- where --- itmtree = loc ^. locLDT --- (p, q) = o `Q.comp` (V3 5 0 0, Q.qID) --- x = 1 --- isammolink AmmoInLink{} = True --- isammolink _ = False --- pos = _crPos cr + xyV3 (rotate3 cdir p) --- cdir = _crDir cr --- itm = itmtree ^. ldtValue . _1 --- pointittarg = cWorld . lWorld . creatures . ix cid . crInv . ix invid . itTargeting --- cid = _crID cr --- invid = _ilInvID $ _itLocation itm --- col = blue -- mixColors reloadFrac (1-reloadFrac) blue red - -shineTorch :: Creature -> LDTree ItemLink CItem -> Point3Q -> World -> World -shineTorch cr itmtree (p, q) = fromMaybe id $ do - (_, mag) <- find (isammolink . fst) (itmtree ^. ldtLeft) - i <- mag ^. ldtValue . _1 . itConsumables - guard $ crIsAiming cr - guard $ i >= x - invid <- mag ^? ldtValue . _1 . itLocation . ilInvID - return $ - (cWorld . lWorld . lights .:~ LSParam pos 250 0.7) - . (cWorld . lWorld . creatures . ix (_crID cr) . crInv . ix invid . itConsumables . _Just -~ x) - where - x = 10 - isammolink AmmoInLink{} = True - isammolink _ = False - pos = _crPos cr `v2z` 0 + rotate3 cdir (p + Q.rotate q (V3 8 0 1.5)) - cdir = _crDir cr - -shineTorch' :: Creature -> LocationLDT ItemLink OItem -> World -> World -shineTorch' cr loc = fromMaybe id $ do +shineTorch :: Creature -> LocationLDT ItemLink OItem -> World -> World +shineTorch cr loc = fromMaybe id $ do (_, mag) <- find (isammolink . fst) (itmtree ^. ldtLeft) i <- mag ^. ldtValue . _1 . itConsumables guard $ crIsAiming cr