Improve wrist forcefield positioning

Not perfect for left wrist when aiming two handed twist weapons
This commit is contained in:
2026-01-22 21:19:40 +00:00
parent f1c63abdc3
commit a464d4dc38
8 changed files with 178 additions and 174 deletions
+1 -1
View File
@@ -2,6 +2,7 @@
module Dodge.Creature.Impulse.UseItem (useItem) where
import Dodge.Euse
import NewInt
import Control.Lens
import Data.Maybe
@@ -9,7 +10,6 @@ import Dodge.Data.ComposedItem
import Dodge.Data.DoubleTree
import Dodge.Data.World
import Dodge.DoubleTree
import Dodge.Equipment
import Dodge.HeldUse
import Dodge.Inventory
import Dodge.Item.Grammar
+1 -1
View File
@@ -258,7 +258,7 @@ showMuzzlePositions u = fold $ do
^? ix invid . _2
return . color red $ setLayer DebugLayer $ reduceLocDT (f cr) loc
where
f cr loc = foldMap g $ map (muzzlePos loc cr) (itemMuzzles $ loc ^. locDT . dtValue . _1)
f cr loc = foldMap (g . muzzlePos loc cr) (itemMuzzles $ loc ^. locDT . dtValue . _1)
where
g :: Point3Q -> Picture
g pq = translate3 (pq ^. _1) $ crossPic 5
-63
View File
@@ -1,63 +0,0 @@
module Dodge.Equipment (
effectOnRemove,
effectOnEquip,
) where
import Control.Lens
import Dodge.Creature.HandPos
import Dodge.Data.World
import Dodge.Item.Location
import Dodge.Wall.Delete
import Dodge.Wall.ForceField
import Dodge.Wall.Move
import Geometry
import qualified IntMapHelp as IM
import Linear
import NewInt
effectOnRemove :: Item -> Creature -> World -> World
effectOnRemove itm = case itm ^. itType of
EQUIP WRISTARMOUR -> onRemoveWristShield itm
_ -> const id
onRemoveWristShield :: Item -> Creature -> World -> World
onRemoveWristShield itm _ =
(pointerToItem itm . itParams .~ NoParams)
. maybe id deleteWallID (itm ^? itParams . itParamID)
effectOnEquip :: Item -> Creature -> World -> World
effectOnEquip itm = case itm ^. itType of
EQUIP WRISTARMOUR -> onEquipWristShield itm
_ -> const id
onEquipWristShield :: Item -> Creature -> World -> World
onEquipWristShield itm cr w =
w
& pointerToItem itm . itParams .~ ItemParamID i
& cWorld . lWorld . walls . at i ?~ forceField{_wlID = i}
& setWristShieldPos
( itm & itParams .~ ItemParamID{_itParamID = i}
)
cr
where
i = IM.newKey (w ^. cWorld . lWorld . walls)
setWristShieldPos :: Item -> Creature -> World -> World
setWristShieldPos itm cr w = w & moveWallIDUnsafe i wlline
where
i = _itParamID $ _itParams itm
wlline = (f (V3 (-10) 7 0), f (V3 10 7 0))
handtrans = case w
^? cWorld
. lWorld
. items
. ix (itm ^. itID . unNInt)
. itLocation
. ilEquipSite
. _Just of
Just x -> translateToES cr x -- . g
_ -> undefined
-- g
-- | twists cr = (+.+.+ V3 (-5) 10 0)
-- | otherwise = id
f = (+.+ cr ^. crPos . _xy) . stripZ . rotate3 (_crDir cr) . handtrans
+90 -24
View File
@@ -1,22 +1,25 @@
module Dodge.Euse (equipBackgroundEffect) where
module Dodge.Euse (
equipBackgroundEffect,
effectOnRemove,
effectOnEquip,
) where
import Dodge.Creature.HandPos
import Dodge.Creature.Test
import Dodge.Data.ComposedItem
import Dodge.Data.DoubleTree
import Dodge.Data.Equipment.Misc
import Dodge.Data.World
import Dodge.Item.Location
import Dodge.Wall.Delete
import Dodge.Wall.ForceField
import Dodge.Wall.Move
import Geometry
import qualified IntMapHelp as IM
import LensHelp
import Linear
import NewInt
equipBackgroundEffect ::
LocationDT OItem ->
Creature ->
EquipSite ->
World ->
World
equipBackgroundEffect :: LocationDT OItem -> Creature -> EquipSite -> World -> World
equipBackgroundEffect loc cr = case eo of
EQUIP (MAGSHIELD mt) -> const $ useMagShield mt itm cr
EQUIP WRISTARMOUR -> setWristShieldPos itm cr
@@ -29,28 +32,31 @@ equipBackgroundEffect loc cr = case eo of
-- this should probably drain energy
useMagShield :: MagnetBuBu -> Item -> Creature -> World -> World
useMagShield mt _ cr w =
w & cWorld . lWorld . magnets
w
& cWorld
. lWorld
. magnets
.:~ Magnet
{ _mgPos = cr ^. crPos . _xy
, _mgField = mt
}
setWristShieldPos :: Item -> Creature -> EquipSite -> World -> World
setWristShieldPos itm cr x = moveWallIDUnsafe i wlline
where
i = _itParamID $ _itParams itm
wlline = (f (V3 (-10) 7 0), f (V3 10 7 0))
handtrans = case x of
OnLeftWrist -> \cr' -> translatePointToLeftHand cr' . g
_ -> translatePointToRightHand
g
| twists cr = (+.+.+ V3 (-5) 10 0)
| otherwise = id
f = (+.+ cr ^. crPos . _xy) . stripZ . rotate3 (_crDir cr) . handtrans cr
--setWristShieldPos :: Item -> Creature -> EquipSite -> World -> World
--setWristShieldPos itm cr x = moveWallIDUnsafe i wlline
-- where
-- i = _itParamID $ _itParams itm
-- wlline = (f (V3 (-10) 7 0), f (V3 10 7 0))
-- handtrans = case x of
-- OnLeftWrist -> \cr' -> translatePointToLeftHand cr' . g
-- _ -> translatePointToRightHand
-- g
-- | twists cr = (+.+.+ V3 (-5) 10 0)
-- | otherwise = id
-- f = (+.+ cr ^. crPos . _xy) . stripZ . rotate3 (_crDir cr) . handtrans cr
-- TODO the reflection should be controled by the particle
--shieldWallDamage :: Damage -> Wall -> Int -> World -> World
--shieldWallDamage dm _ crid w = case _dmType dm of
-- shieldWallDamage :: Damage -> Wall -> Int -> World -> World
-- shieldWallDamage dm _ crid w = case _dmType dm of
---- Lasering -> w
-- _ | isMovementDam dm -> w & creatures . ix crid . crState . crDamage .:~ dm
-- _ -> w
@@ -58,7 +64,9 @@ setWristShieldPos itm cr x = moveWallIDUnsafe i wlline
createHeadLamp :: Item -> Creature -> World -> World
createHeadLamp _ cr w =
w
& cWorld . lWorld . lights
& cWorld
. lWorld
. lights
.:~ LSParam
( _crPos cr
+.+.+ rotate3
@@ -67,3 +75,61 @@ createHeadLamp _ cr w =
)
200
0.7
effectOnRemove :: Item -> Creature -> World -> World
effectOnRemove itm = case itm ^. itType of
EQUIP WRISTARMOUR -> onRemoveWristShield itm
_ -> const id
onRemoveWristShield :: Item -> Creature -> World -> World
onRemoveWristShield itm _ =
(pointerToItem itm . itParams .~ NoParams)
. maybe id deleteWallID (itm ^? itParams . itParamID)
effectOnEquip :: Item -> Creature -> World -> World
effectOnEquip itm = case itm ^. itType of
EQUIP WRISTARMOUR -> onEquipWristShield itm
_ -> const id
onEquipWristShield :: Item -> Creature -> World -> World
onEquipWristShield itm cr w =
w
& pointerToItem itm
. itParams
.~ ItemParamID i
& cWorld
. lWorld
. walls
. at i
?~ forceField{_wlID = i}
& setWristShieldPos
( itm & itParams .~ ItemParamID{_itParamID = i}
)
cr esite
where
i = IM.newKey (w ^. cWorld . lWorld . walls)
esite = w ^?! cWorld . lWorld . items . ix (itm ^. itID . unNInt) . itLocation . ilEquipSite . _Just
setWristShieldPos :: Item -> Creature -> EquipSite -> World -> World
setWristShieldPos itm cr esite w = w & moveWallIDUnsafe i wlline
where
i = _itParamID $ _itParams itm
wlline = (f (V3 (-10) y 0), f (V3 10 y 0))
y = case esite of
OnLeftWrist -> 7
OnRightWrist -> -7
_ -> error "setWristShieldPos esite is not a wrist"
handtrans = case w
^? cWorld
. lWorld
. items
. ix (itm ^. itID . unNInt)
. itLocation
. ilEquipSite
. _Just of
Just x -> translateToES cr x -- . g
_ -> undefined
-- g
-- | twists cr = (+.+.+ V3 (-5) 10 0)
-- | otherwise = id
f = (+.+ cr ^. crPos . _xy) . stripZ . rotate3 (_crDir cr) . handtrans
+1 -1
View File
@@ -16,13 +16,13 @@ module Dodge.Inventory (
destroyAllInvItems,
) where
import Dodge.Euse
import Linear
import Data.Function
import Data.Maybe
import Dodge.Base
import Dodge.Data.SelectionList
import Dodge.Data.World
import Dodge.Equipment
import Dodge.Inventory.Location
import Dodge.Inventory.RBList
import Dodge.Inventory.Swap
+1 -1
View File
@@ -38,7 +38,7 @@ invCursorParams w = BoundCurs $ case w ^? hud . subInventory of
Just CombineInventory{} -> []
_
| ButtonRight `M.member` _mouseButtons (_input w)
&& (null $ w ^? rbState . opSel) ->
&& null (w ^? rbState . opSel) ->
[North, South, East, West]
_ -> [North, South, West]
+2 -1
View File
@@ -258,8 +258,8 @@ functionalUpdate =
. over (uvWorld . cWorld . lWorld) updateMagnets
. over uvWorld (cWorld . lWorld . lClock +~ 1)
. over uvWorld updateDistortions
. over uvWorld pushYouOutFromWalls
. over uvWorld updateCreatureSoundPositions
. over uvWorld pushYouOutFromWalls
. over uvWorld updateCreatureStrides
. colCrsWalls
. over uvWorld simpleCrSprings
@@ -327,6 +327,7 @@ muzzleWallCheck w cr = fromMaybe cr $ do
^? ix invid . _2
let ps = reduceLocDT f loc ^.. each . _1 . _xy
cp = cr ^. crPos . _xy
-- cop = cr ^. crOldPos . _xy
r <- boundPointsRect (cp : ps)
let wls = uncurry wlsNearRect r w & filter (not . _wlTouchThrough)
vs = mapMaybe (g cp wls) ps
+82 -82
View File
@@ -2557,7 +2557,7 @@ addToTrunk src/TreeHelp.hs 157;" f
addWarningTerminal src/Dodge/Room/Warning.hs 81;" f
addZ src/Geometry/Vector3D.hs 89;" f
adjustIMZone src/Dodge/Base.hs 81;" f
advanceScrollAmount src/Dodge/Update.hs 453;" f
advanceScrollAmount src/Dodge/Update.hs 454;" f
advanceSmoothScroll src/Dodge/SmoothScroll.hs 33;" f
aimDelaySweep src/Dodge/Render/Picture.hs 285;" f
aimStanceInfo src/Dodge/Item/Info.hs 243;" f
@@ -2688,9 +2688,9 @@ basicCrShape src/Dodge/Creature/Picture.hs 36;" f
basicItemDisplay src/Dodge/Item/Display.hs 23;" f
basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f
basicMuzFlare src/Dodge/HeldUse.hs 713;" f
battery src/Dodge/Item/Ammo.hs 58;" f
battery src/Dodge/Item/Ammo.hs 59;" f
batteryPack src/Dodge/Item/Equipment.hs 38;" f
beltMag src/Dodge/Item/Ammo.hs 36;" f
beltMag src/Dodge/Item/Ammo.hs 37;" f
bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 226;" f
bgateCalc src/Dodge/Inventory/SelectionList.hs 115;" f
bgunSound src/Dodge/HeldUse.hs 517;" f
@@ -2757,7 +2757,7 @@ bulletBeltBracer src/Dodge/Item/Equipment.hs 56;" f
bulletBeltPack src/Dodge/Item/Equipment.hs 50;" f
bulletModule src/Dodge/Item/Scope.hs 122;" f
bulletPayloadModule src/Dodge/Item/Scope.hs 137;" f
bulletSynthesizer src/Dodge/Item/Ammo.hs 80;" f
bulletSynthesizer src/Dodge/Item/Ammo.hs 81;" f
bulletWeapons src/Dodge/Combine/Combinations.hs 248;" f
burstRifle src/Dodge/Item/Held/Cane.hs 30;" f
buttonFlip src/Dodge/Button/Event.hs 17;" f
@@ -2770,7 +2770,7 @@ calcTexCoord src/Tile.hs 19;" f
canSee src/Dodge/Base/Collide.hs 328;" f
canSeeIndirect src/Dodge/Base/Collide.hs 335;" f
cancelExamineInventory src/Dodge/Item/BackgroundEffect.hs 23;" f
capacitor src/Dodge/Item/Ammo.hs 65;" f
capacitor src/Dodge/Item/Ammo.hs 66;" f
card8Vec src/Dodge/Base/CardinalPoint.hs 17;" f
cardList src/Dodge/Base/CardinalPoint.hs 7;" f
cardVec src/Dodge/Base/CardinalPoint.hs 10;" f
@@ -2804,17 +2804,17 @@ checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f
checkConnection src/Dodge/Inventory/Swap.hs 66;" f
checkDeath src/Dodge/Creature/Update.hs 73;" f
checkDeath' src/Dodge/Creature/Update.hs 76;" f
checkEndGame src/Dodge/Update.hs 806;" f
checkEndGame src/Dodge/Update.hs 807;" f
checkErrorGL src/Shader/Compile.hs 86;" f
checkFBO src/Framebuffer/Check.hs 6;" f
checkGLError src/GLHelp.hs 17;" f
checkInvSlotsYou src/Dodge/Inventory/CheckSlots.hs 18;" f
checkInventorySelectionExists src/Dodge/DisplayInventory.hs 93;" f
checkTermDist src/Dodge/Update.hs 365;" f
checkTermDist src/Dodge/Update.hs 366;" f
checkWallLeft src/Dodge/LevelGen/StaticWalls/Deprecated.hs 29;" f
checkWallRight src/Dodge/LevelGen/StaticWalls.hs 54;" f
checkWallRight src/Dodge/LevelGen/StaticWalls/Deprecated.hs 59;" f
chemFuelPouch src/Dodge/Item/Ammo.hs 72;" f
chemFuelPouch src/Dodge/Item/Ammo.hs 73;" f
chestPQ src/Dodge/Creature/HandPos.hs 125;" f
chooseCursorBorders src/Dodge/Render/List.hs 141;" f
chooseEquipPosition src/Dodge/Inventory/RBList.hs 41;" f
@@ -2932,7 +2932,7 @@ crAwayFromPost src/Dodge/Creature/Test.hs 85;" f
crBlips src/Dodge/RadarSweep.hs 88;" f
crCamouflage src/Dodge/Creature/Picture.hs 33;" f
crCanSeeCr src/Dodge/Creature/Test.hs 52;" f
crCrSpring src/Dodge/Update.hs 916;" f
crCrSpring src/Dodge/Update.hs 917;" f
crCurrentEquipment src/Dodge/Creature/Statistics.hs 62;" f
crDeathSounds src/Dodge/Creature/Vocalization.hs 44;" f
crDexterity src/Dodge/Creature/Statistics.hs 19;" f
@@ -2964,7 +2964,7 @@ crRad src/Dodge/Creature/Radius.hs 7;" f
crSafeDistFromTarg src/Dodge/Creature/Test.hs 74;" f
crSetRoots src/Dodge/Inventory/Location.hs 55;" f
crShape src/Dodge/Creature/Shape.hs 8;" f
crSpring src/Dodge/Update.hs 913;" f
crSpring src/Dodge/Update.hs 914;" f
crStratConMatches src/Dodge/Creature/Test.hs 80;" f
crStrength src/Dodge/Creature/Statistics.hs 29;" f
crUpdate src/Dodge/Creature/Update.hs 66;" f
@@ -2979,7 +2979,7 @@ craftItemSPic src/Dodge/Item/Draw/SPic.hs 40;" f
crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 597;" f
createForceField src/Dodge/ForceField.hs 7;" f
createGas src/Dodge/Gas.hs 10;" f
createHeadLamp src/Dodge/Euse.hs 58;" f
createHeadLamp src/Dodge/Euse.hs 68;" f
createItemYou src/Dodge/Inventory/Add.hs 62;" f
createLightMap src/Render.hs 26;" f
createProjectile src/Dodge/HeldUse.hs 1271;" f
@@ -3180,7 +3180,7 @@ displayFrameTicks src/Dodge/Render/Picture.hs 50;" f
displayFreeSlots src/Dodge/DisplayInventory.hs 196;" f
displayIndents src/Dodge/DisplayInventory.hs 110;" f
displayPulse src/Dodge/Inventory/SelectionList.hs 176;" f
displayTerminalLineString src/Dodge/Update.hs 518;" f
displayTerminalLineString src/Dodge/Update.hs 519;" f
dist src/Geometry/Vector.hs 185;" f
dist3 src/Geometry/Vector3D.hs 101;" f
distributeAmmoToItem src/Dodge/WorldEffect.hs 152;" f
@@ -3259,7 +3259,7 @@ doWdBl src/Dodge/WorldBool.hs 10;" f
doWdCrBl src/Dodge/CreatureEffect.hs 18;" f
doWdP2f src/Dodge/WdP2f.hs 10;" f
doWdWd src/Dodge/WorldEffect.hs 34;" f
doWorldEvents src/Dodge/Update.hs 462;" f
doWorldEvents src/Dodge/Update.hs 463;" f
doWorldPos src/Dodge/WorldPos.hs 10;" f
door src/Dodge/Room/Door.hs 13;" f
doorBetween src/Dodge/Placement/Instance/Door.hs 38;" f
@@ -3427,8 +3427,8 @@ ebEffect src/Dodge/EnergyBall.hs 45;" f
ebFlicker src/Dodge/EnergyBall.hs 70;" f
ebtToDamage src/Dodge/EnergyBall.hs 93;" f
edgeToPic src/Dodge/Debug/Picture.hs 417;" f
effectOnEquip src/Dodge/Equipment.hs 28;" f
effectOnRemove src/Dodge/Equipment.hs 18;" f
effectOnEquip src/Dodge/Euse.hs 91;" f
effectOnRemove src/Dodge/Euse.hs 81;" f
eitType src/Dodge/Data/EquipType.hs 15;" f
ejectS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 837;" f
elecCrackleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 821;" f
@@ -3451,7 +3451,7 @@ eqPosText src/Dodge/Equipment/Text.hs 5;" f
eqTypeToSites src/Dodge/Inventory/RBList.hs 77;" f
equipAllocString src/Dodge/Render/HUD.hs 316;" f
equipAttachPos src/Dodge/Item/Draw.hs 30;" f
equipBackgroundEffect src/Dodge/Euse.hs 14;" f
equipBackgroundEffect src/Dodge/Euse.hs 23;" f
equipInfo src/Dodge/Item/Info.hs 141;" f
equipItemSPic src/Dodge/Item/Draw/SPic.hs 158;" f
equipPosition src/Dodge/Item/Draw.hs 38;" f
@@ -3575,7 +3575,7 @@ gameRoomViewpoints src/Dodge/Viewpoints.hs 35;" f
gameRoomsFromRooms src/Dodge/Layout.hs 149;" f
gameplayMenu src/Dodge/Menu.hs 152;" f
gameplayMenuOptions src/Dodge/Menu.hs 155;" f
gasEffect src/Dodge/Update.hs 831;" f
gasEffect src/Dodge/Update.hs 832;" f
gasType src/Dodge/HeldUse.hs 1110;" f
gassesNearPoint src/Dodge/Zoning/Cloud.hs 12;" f
generateGenParams src/Dodge/LevelGen/LevelStructure.hs 23;" f
@@ -3601,7 +3601,7 @@ getCommands src/Dodge/Terminal.hs 58;" f
getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f
getCrsFromRooms src/Dodge/Room/Tutorial.hs 351;" f
getCrsFromRooms' src/Dodge/Room/Tutorial.hs 338;" f
getDebugMouseOver src/Dodge/Update.hs 423;" f
getDebugMouseOver src/Dodge/Update.hs 424;" f
getDistortions src/Dodge/Render.hs 443;" f
getEdgesCrossing src/Dodge/Path.hs 37;" f
getGrenadeHitEffect src/Dodge/HeldUse.hs 1259;" f
@@ -3612,7 +3612,7 @@ getLaserDamage src/Dodge/HeldUse.hs 707;" f
getLaserPhaseV src/Dodge/HeldUse.hs 704;" f
getLinksOfType src/Dodge/RoomLink.hs 41;" f
getMaxLinesTM src/Dodge/Terminal/Type.hs 6;" f
getMenuMouseContext src/Dodge/Update.hs 435;" f
getMenuMouseContext src/Dodge/Update.hs 436;" f
getNodePos src/Dodge/Path.hs 34;" f
getPJStabiliser src/Dodge/HeldUse.hs 1246;" f
getPretty src/AesonHelp.hs 8;" f
@@ -3629,7 +3629,7 @@ getVolleyBurst src/Dodge/HeldUse.hs 128;" f
getWallPathing src/Dodge/Wall/Pathing.hs 7;" f
getWallSPic src/Dodge/Render/Walls.hs 61;" f
getWindowSize src/Dodge/WindowSize.hs 6;" f
gimbal src/Dodge/Item/Scope.hs 166;" f
gimbal src/Dodge/Item/Scope.hs 164;" f
girder src/Dodge/Room/Foreground.hs 206;" f
girderV src/Dodge/Room/Foreground.hs 177;" f
girderV' src/Dodge/Room/Foreground.hs 153;" f
@@ -3668,7 +3668,7 @@ gut3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 683;" f
gut4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 695;" f
gut5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 673;" f
gut6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 721;" f
gyroscope src/Dodge/Item/Scope.hs 172;" f
gyroscope src/Dodge/Item/Scope.hs 170;" f
hackBoldText src/Picture/Base.hs 193;" f
hackDropShadow src/Picture/Base.hs 196;" f
hackInvertText src/Picture/Base.hs 189;" f
@@ -3848,7 +3848,7 @@ isNHS src/Geometry/Intersect.hs 53;" f
isNothing' src/MaybeHelp.hs 31;" f
isOnSeg src/Geometry.hs 237;" f
isOutLnk src/Dodge/PlacementSpot.hs 166;" f
isOverTerminalScreen src/Dodge/Update.hs 443;" f
isOverTerminalScreen src/Dodge/Update.hs 444;" f
isPulseLaser src/Dodge/IsPulseLaser.hs 10;" f
isPutID src/Dodge/Placement/Instance/Wall.hs 108;" f
isRHS src/Geometry/LHS.hs 32;" f
@@ -4148,8 +4148,8 @@ mcShootLaser src/Dodge/HeldUse.hs 1157;" f
mcTypeUpdate src/Dodge/Machine/Update.hs 33;" f
mcUseHeld src/Dodge/HeldUse.hs 1081;" f
mcUseItem src/Dodge/Machine/Update.hs 111;" f
megaBattery src/Dodge/Item/Ammo.hs 52;" f
megaShellMag src/Dodge/Item/Ammo.hs 42;" f
megaBattery src/Dodge/Item/Ammo.hs 53;" f
megaShellMag src/Dodge/Item/Ammo.hs 43;" f
megaTinMag src/Dodge/Item/Ammo.hs 20;" f
meleeHeadingMove src/Dodge/Creature/Boid.hs 295;" f
memoBoxEdgeIndices src/Shader/Poke.hs 352;" f
@@ -4243,7 +4243,7 @@ muzzleWallCheck src/Dodge/Update.hs 323;" f
mvButton src/Dodge/Placement/PlaceSpot.hs 175;" f
mvCr src/Dodge/Placement/PlaceSpot.hs 178;" f
mvFS src/Dodge/Placement/PlaceSpot.hs 184;" f
mvGust src/Dodge/Update.hs 822;" f
mvGust src/Dodge/Update.hs 823;" f
mvLS src/Dodge/Placement/PlaceSpot.hs 219;" f
mvPointAlongAtSpeed src/Dodge/Base.hs 121;" f
mvPointMeleeTarg src/Dodge/Creature/Boid.hs 327;" f
@@ -4295,8 +4295,8 @@ numTraversable src/TreeHelp.hs 184;" f
obstacleColor src/Dodge/Debug/Picture.hs 264;" f
obstructPathsCrossing src/Dodge/Path.hs 120;" f
oldMachineBootS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 635;" f
onEquipWristShield src/Dodge/Equipment.hs 33;" f
onRemoveWristShield src/Dodge/Equipment.hs 23;" f
onEquipWristShield src/Dodge/Euse.hs 96;" f
onRemoveWristShield src/Dodge/Euse.hs 86;" f
onXY src/Geometry/Vector3D.hs 130;" f
oneH src/Dodge/Creature/Test.hs 96;" f
openConsole src/Dodge/Update.hs 139;" f
@@ -4355,7 +4355,7 @@ pauseMenu src/Dodge/Menu.hs 57;" f
pauseMenuOptions src/Dodge/Menu.hs 64;" f
pauseSound src/Dodge/SoundLogic.hs 42;" f
pauseTime src/Dodge/Update.hs 196;" f
pbFlicker src/Dodge/Update.hs 503;" f
pbFlicker src/Dodge/Update.hs 504;" f
pbsHit src/Dodge/WorldEvent/ThingsHit.hs 97;" f
peZoneSize src/Dodge/Zoning/Pathing.hs 49;" f
pedestalRoom src/Dodge/Room/Containing.hs 50;" f
@@ -4562,7 +4562,7 @@ rLauncher src/Dodge/Item/Held/Launcher.hs 14;" f
rLauncherX src/Dodge/Item/Held/Launcher.hs 30;" f
rToOnward src/Dodge/Cleat.hs 21;" f
radToDeg src/Geometry/Vector.hs 123;" f
radiusSpring src/Dodge/Update.hs 902;" f
radiusSpring src/Dodge/Update.hs 903;" f
randBlockBreakWeapon src/Dodge/Item/Random.hs 7;" f
randC1 src/Dodge/Placement/Instance/Creature.hs 8;" f
randDirPS src/Dodge/PlacementSpot.hs 56;" f
@@ -4584,7 +4584,7 @@ randPeakedParam src/RandomHelp.hs 130;" f
randProb src/RandomHelp.hs 68;" f
randSpark src/Dodge/Spark.hs 69;" f
randSparkExtraVel src/Dodge/Spark.hs 92;" f
randWallReflect src/Dodge/Update.hs 678;" f
randWallReflect src/Dodge/Update.hs 679;" f
randomChallenges src/Dodge/Room/Start.hs 63;" f
randomCompass src/Dodge/Layout.hs 60;" f
randomFourCornerRoom src/Dodge/Room/Procedural.hs 246;" f
@@ -4846,7 +4846,7 @@ setLinkType src/Dodge/RoomLink.hs 78;" f
setLinkTypePD src/Dodge/RoomLink.hs 85;" f
setMusicVolume src/Sound.hs 163;" f
setMvPos src/Dodge/Creature/ReaderUpdate.hs 58;" f
setOldPos src/Dodge/Update.hs 537;" f
setOldPos src/Dodge/Update.hs 538;" f
setOutLinks src/Dodge/RoomLink.hs 50;" f
setOutLinksByType src/Dodge/RoomLink.hs 75;" f
setOutLinksPD src/Dodge/RoomLink.hs 95;" f
@@ -4866,8 +4866,8 @@ setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f
setViewport src/Dodge/Render.hs 448;" f
setVol src/Dodge/Config.hs 47;" f
setWindowColor src/Dodge/Render/Walls.hs 32;" f
setWristShieldPos src/Dodge/Equipment.hs 45;" f
setWristShieldPos src/Dodge/Euse.hs 38;" f
setWristShieldPos src/Dodge/Euse.hs 48;" f
setWristShieldPos' src/Dodge/Euse.hs 108;" f
setupConLoop src/Loop.hs 103;" f
setupConLoop' src/Loop.hs 193;" f
setupFramebuffer2GivenStencil src/Framebuffer/Setup.hs 46;" f
@@ -4888,7 +4888,7 @@ shellExplosionCheck src/Dodge/Projectile/Update.hs 50;" f
shellHitCreature src/Dodge/Projectile/Update.hs 84;" f
shellHitFloor src/Dodge/Projectile/Update.hs 98;" f
shellHitWall src/Dodge/Projectile/Update.hs 60;" f
shellMag src/Dodge/Item/Ammo.hs 45;" f
shellMag src/Dodge/Item/Ammo.hs 46;" f
shellModule src/Dodge/Item/Scope.hs 128;" f
shellShape src/Dodge/Projectile/Draw.hs 35;" f
shieldWall src/Dodge/Item/BackgroundEffect.hs 91;" f
@@ -4947,7 +4947,7 @@ shuffleLinks src/Dodge/Room/Link.hs 30;" f
shuffleRoomPos src/Dodge/Layout.hs 82;" f
shuffleTail src/RandomHelp.hs 59;" f
sigmoid src/Dodge/Base.hs 151;" f
simpleCrSprings src/Dodge/Update.hs 907;" f
simpleCrSprings src/Dodge/Update.hs 908;" f
simpleTermMessage src/Dodge/Terminal.hs 275;" f
sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 757;" f
sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 793;" f
@@ -4977,7 +4977,7 @@ slideDoorS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 629;" f
slideWindow src/ListHelp.hs 81;" f
slowDoorRoom src/Dodge/Room/LongDoor.hs 140;" f
slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 157;" f
smallBattery src/Dodge/Item/Ammo.hs 55;" f
smallBattery src/Dodge/Item/Ammo.hs 56;" f
smallBranch src/Dodge/Tree/GenerateStructure.hs 32;" f
smallChaseCrit src/Dodge/Creature/ChaseCrit.hs 14;" f
smallDrawTree src/Dodge/LevelGen.hs 91;" f
@@ -4989,7 +4989,7 @@ smallPillar src/Dodge/Room/Pillar.hs 37;" f
smallRoom src/Dodge/Room/RunPast.hs 31;" f
smallSnailInt2 src/Dodge/Path.hs 81;" f
smg src/Dodge/Item/Held/Stick.hs 30;" f
smokeReducer src/Dodge/Item/Scope.hs 184;" f
smokeReducer src/Dodge/Item/Scope.hs 182;" f
snailAround src/Dodge/Path.hs 78;" f
snapToGrid src/Dodge/Path.hs 129;" f
sndV2 src/Geometry/Data.hs 73;" f
@@ -5325,7 +5325,7 @@ twoStepSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 649;" f
ubyteSize src/Shader/Parameters.hs 13;" f
ugateCalc src/Dodge/Inventory/SelectionList.hs 109;" f
uncurryV src/Geometry/Data.hs 66;" f
underBarrelSlot src/Dodge/Item/Scope.hs 178;" f
underBarrelSlot src/Dodge/Item/Scope.hs 176;" f
unfoldrMID src/MonadHelp.hs 33;" f
unigate src/Dodge/Item/Scope.hs 108;" f
unitVectorAtAngle src/Geometry/Vector.hs 101;" f
@@ -5341,7 +5341,7 @@ unusedOffPathAwayFromLink src/Dodge/PlacementSpot.hs 131;" f
unusedSpotAwayFromInLink src/Dodge/PlacementSpot.hs 137;" f
unusedSpotAwayFromLink src/Dodge/PlacementSpot.hs 119;" f
unusedSpotNearInLink src/Dodge/PlacementSpot.hs 196;" f
updateAimPos src/Dodge/Update.hs 352;" f
updateAimPos src/Dodge/Update.hs 353;" f
updateAllNodes src/TreeHelp.hs 86;" f
updateArc src/Dodge/Tesla.hs 44;" f
updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 484;" f
@@ -5351,48 +5351,48 @@ updateBaseWheelEvent src/Dodge/Update/Scroll.hs 30;" f
updateBounds src/Dodge/Update/Camera.hs 265;" f
updateBulVel src/Dodge/Bullet.hs 57;" f
updateBullet src/Dodge/Bullet.hs 22;" f
updateBullets src/Dodge/Update.hs 600;" f
updateBullets src/Dodge/Update.hs 601;" f
updateCamera src/Dodge/Update/Camera.hs 31;" f
updateCloseObjects src/Dodge/Inventory.hs 115;" f
updateCloud src/Dodge/Update.hs 835;" f
updateClouds src/Dodge/Update.hs 704;" f
updateCloud src/Dodge/Update.hs 836;" f
updateClouds src/Dodge/Update.hs 705;" f
updateCombinePositioning src/Dodge/DisplayInventory.hs 40;" f
updateCombineSections src/Dodge/DisplayInventory.hs 47;" f
updateCreature src/Dodge/Creature/Update.hs 35;" f
updateCreature' src/Dodge/Creature/Update.hs 44;" f
updateCreatureGroups src/Dodge/Update.hs 572;" f
updateCreatureSoundPositions src/Dodge/Update.hs 551;" f
updateCreatureStride src/Dodge/Update.hs 346;" f
updateCreatureStrides src/Dodge/Update.hs 343;" f
updateDebris src/Dodge/Update.hs 607;" f
updateCreatureGroups src/Dodge/Update.hs 573;" f
updateCreatureSoundPositions src/Dodge/Update.hs 552;" f
updateCreatureStride src/Dodge/Update.hs 347;" f
updateCreatureStrides src/Dodge/Update.hs 344;" f
updateDebris src/Dodge/Update.hs 608;" f
updateDebrisChunk src/Dodge/Prop/Moving.hs 16;" f
updateDebugMessageOffset src/Dodge/Update.hs 103;" f
updateDelayedEvents src/Dodge/Update.hs 936;" f
updateDelayedEvents src/Dodge/Update.hs 937;" f
updateDisplaySections src/Dodge/DisplayInventory.hs 116;" f
updateDistortion src/Dodge/Distortion.hs 8;" f
updateDistortions src/Dodge/Update.hs 593;" f
updateDistortions src/Dodge/Update.hs 594;" f
updateDoor src/Dodge/Door.hs 22;" f
updateDoors src/Dodge/Update.hs 357;" f
updateDust src/Dodge/Update.hs 882;" f
updateDusts src/Dodge/Update.hs 710;" f
updateDoors src/Dodge/Update.hs 358;" f
updateDust src/Dodge/Update.hs 883;" f
updateDusts src/Dodge/Update.hs 711;" f
updateEdge src/Dodge/Path.hs 43;" f
updateEdgeWallObs src/Dodge/Update/WallDamage.hs 39;" f
updateEdgesWall src/Dodge/Update/WallDamage.hs 23;" f
updateEdgesWall' src/Dodge/Update/WallDamage.hs 36;" f
updateEnergyBall src/Dodge/EnergyBall.hs 31;" f
updateEnergyBalls src/Dodge/Update.hs 695;" f
updateEnergyBalls src/Dodge/Update.hs 696;" f
updateEnterRegex src/Dodge/Update/Input/InGame.hs 511;" f
updateExpBarrel src/Dodge/Barreloid.hs 21;" f
updateFlame src/Dodge/Flame.hs 19;" f
updateFlames src/Dodge/Update.hs 692;" f
updateFlames src/Dodge/Update.hs 693;" f
updateFloatingCamera src/Dodge/Update/Camera.hs 36;" f
updateFunctionKey src/Dodge/Update/Input/InGame.hs 368;" f
updateFunctionKeys src/Dodge/Update/Input/InGame.hs 364;" f
updateGas src/Dodge/Update.hs 857;" f
updateGasses src/Dodge/Update.hs 707;" f
updateGusts src/Dodge/Update.hs 819;" f
updateIMl src/Dodge/Update.hs 566;" f
updateIMl' src/Dodge/Update.hs 569;" f
updateGas src/Dodge/Update.hs 858;" f
updateGasses src/Dodge/Update.hs 708;" f
updateGusts src/Dodge/Update.hs 820;" f
updateIMl src/Dodge/Update.hs 567;" f
updateIMl' src/Dodge/Update.hs 570;" f
updateInGameCamera src/Dodge/Update/Camera.hs 84;" f
updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 434;" f
updateInt2Map src/Dodge/Zoning/Base.hs 94;" f
@@ -5405,32 +5405,32 @@ updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 387;" f
updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 410;" f
updateLampoid src/Dodge/Lampoid.hs 13;" f
updateLaser src/Dodge/Laser/Update.hs 11;" f
updateLasers src/Dodge/Update.hs 469;" f
updateLasers src/Dodge/Update.hs 470;" f
updateLeftParentSF src/Dodge/Item/Grammar.hs 170;" f
updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f
updateLongPressInGame src/Dodge/Update/Input/InGame.hs 447;" f
updateMachine src/Dodge/Machine/Update.hs 25;" f
updateMagnets src/Dodge/Update.hs 360;" f
updateMagnets src/Dodge/Update.hs 361;" f
updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 204;" f
updateMouseContext src/Dodge/Update.hs 373;" f
updateMouseContextGame src/Dodge/Update.hs 378;" f
updateMouseContext src/Dodge/Update.hs 374;" f
updateMouseContextGame src/Dodge/Update.hs 379;" f
updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 97;" f
updateMouseInGame src/Dodge/Update/Input/InGame.hs 87;" f
updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 167;" f
updateObjCatMaybes src/Dodge/Update.hs 584;" f
updateObjMapMaybe src/Dodge/Update.hs 577;" f
updatePastWorlds src/Dodge/Update.hs 458;" f
updateObjCatMaybes src/Dodge/Update.hs 585;" f
updateObjMapMaybe src/Dodge/Update.hs 578;" f
updatePastWorlds src/Dodge/Update.hs 459;" f
updatePreload src/Preload/Update.hs 21;" f
updateProjectile src/Dodge/Projectile/Update.hs 26;" f
updatePulse src/Dodge/Creature/Update.hs 137;" f
updatePulseBall src/Dodge/Update.hs 483;" f
updatePulseLaser src/Dodge/Update.hs 647;" f
updatePulseLasers src/Dodge/Update.hs 478;" f
updatePulseBall src/Dodge/Update.hs 484;" f
updatePulseLaser src/Dodge/Update.hs 648;" f
updatePulseLasers src/Dodge/Update.hs 479;" f
updateRBList src/Dodge/Inventory/RBList.hs 22;" f
updateRadarBlip src/Dodge/RadarBlip.hs 11;" f
updateRadarBlips src/Dodge/Update.hs 596;" f
updateRadarBlips src/Dodge/Update.hs 597;" f
updateRadarSweep src/Dodge/RadarSweep.hs 40;" f
updateRadarSweeps src/Dodge/Update.hs 698;" f
updateRadarSweeps src/Dodge/Update.hs 699;" f
updateRandNode src/TreeHelp.hs 109;" f
updateRenderSplit appDodge/Main.hs 104;" f
updateRightParentSF src/Dodge/Item/Grammar.hs 181;" f
@@ -5440,17 +5440,17 @@ updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f
updateSection src/Dodge/DisplayInventory.hs 262;" f
updateSectionsPositioning src/Dodge/DisplayInventory.hs 241;" f
updateShockwave src/Dodge/Shockwave/Update.hs 8;" f
updateShockwaves src/Dodge/Update.hs 689;" f
updateShockwaves src/Dodge/Update.hs 690;" f
updateSingleNodes src/TreeHelp.hs 98;" f
updateSound src/Sound.hs 72;" f
updateSounds src/Sound.hs 67;" f
updateSpark src/Dodge/Spark.hs 19;" f
updateSparks src/Dodge/Update.hs 701;" f
updateTerminal src/Dodge/Update.hs 521;" f
updateTeslaArc src/Dodge/Update.hs 617;" f
updateTeslaArcs src/Dodge/Update.hs 614;" f
updateSparks src/Dodge/Update.hs 702;" f
updateTerminal src/Dodge/Update.hs 522;" f
updateTeslaArc src/Dodge/Update.hs 618;" f
updateTeslaArcs src/Dodge/Update.hs 615;" f
updateTractorBeam src/Dodge/TractorBeam/Update.hs 9;" f
updateTractorBeams src/Dodge/Update.hs 686;" f
updateTractorBeams src/Dodge/Update.hs 687;" f
updateTurret src/Dodge/Machine/Update.hs 56;" f
updateUniverse src/Dodge/Update.hs 82;" f
updateUniverseFirst src/Dodge/Update.hs 93;" f
@@ -5461,7 +5461,7 @@ updateUseInputOnScreen src/Dodge/Update/Input/ScreenLayer.hs 24;" f
updateWalkCycle src/Dodge/Creature/State/WalkCycle.hs 11;" f
updateWallDamages src/Dodge/Update/WallDamage.hs 15;" f
updateWheelEvent src/Dodge/Update/Scroll.hs 21;" f
updateWheelEvents src/Dodge/Update.hs 448;" f
updateWheelEvents src/Dodge/Update.hs 449;" f
updateWorldEventFlag src/Dodge/Update.hs 128;" f
updateWorldEventFlags src/Dodge/Update.hs 116;" f
upperBody src/Dodge/Creature/Picture.hs 121;" f
@@ -5490,7 +5490,7 @@ useItem src/Dodge/Creature/Impulse/UseItem.hs 19;" f
useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 26;" f
useLnkRoomPos src/Dodge/PlacementSpot.hs 255;" f
useLoadedAmmo src/Dodge/HeldUse.hs 723;" f
useMagShield src/Dodge/Euse.hs 30;" f
useMagShield src/Dodge/Euse.hs 40;" f
useNormalCamera src/Dodge/Camera.hs 6;" f
usePayload src/Dodge/Payload.hs 18;" f
useRewindGun src/Dodge/HeldUse.hs 1337;" f
@@ -5636,11 +5636,11 @@ zeroZ src/Geometry/Vector.hs 9;" f
zipArcs src/Dodge/Tesla.hs 52;" f
zipCount src/Dodge/Tree/Shift.hs 136;" f
zoneCloud src/Dodge/Zoning/Cloud.hs 33;" f
zoneClouds src/Dodge/Update.hs 510;" f
zoneClouds src/Dodge/Update.hs 511;" f
zoneCreature src/Dodge/Zoning/Creature.hs 56;" f
zoneCreatures src/Dodge/Update.hs 547;" f
zoneCreatures src/Dodge/Update.hs 548;" f
zoneDust src/Dodge/Zoning/Cloud.hs 57;" f
zoneDusts src/Dodge/Update.hs 515;" f
zoneDusts src/Dodge/Update.hs 516;" f
zoneExtract src/Dodge/Zoning/Base.hs 58;" f
zoneGas src/Dodge/Zoning/Cloud.hs 36;" f
zoneIncPe src/Dodge/Zoning/Pathing.hs 66;" f