diff --git a/src/Dodge/Bullet.hs b/src/Dodge/Bullet.hs index c8759c495..4490b0933 100644 --- a/src/Dodge/Bullet.hs +++ b/src/Dodge/Bullet.hs @@ -165,7 +165,7 @@ hitEffFromBul w bu = case _buEffect bu of DestroyBullet -> expireAndDamage bu hitstream w where sp = _buPos bu - hitstream = thingsHit sp (sp + _buVel bu) w + hitstream = thingsHitZ sp (sp + _buVel bu) w getBulHitDams :: Bullet -> Point2 -> [Damage] getBulHitDams bu p = case _buPayload bu of diff --git a/src/Dodge/WorldEvent/ThingsHit.hs b/src/Dodge/WorldEvent/ThingsHit.hs index ce42ec8d4..7413d6c0f 100644 --- a/src/Dodge/WorldEvent/ThingsHit.hs +++ b/src/Dodge/WorldEvent/ThingsHit.hs @@ -5,6 +5,7 @@ Find which objects lie upon a line. -} module Dodge.WorldEvent.ThingsHit ( thingsHit, + thingsHitZ, thingHit, thingHitFilt, thingsHitExceptCr, @@ -38,6 +39,14 @@ thingsHit sp ep w = (map (second Left) (crsHit sp ep w)) (map (second Right) (wlsHit sp ep w)) +{- Does not hit corpses -} +thingsHitZ :: Point2 -> Point2 -> World -> [(Point2, Either Creature Wall)] +thingsHitZ sp ep w = + List.mergeOn + (dist sp . fst) + (map (second Left) (crsHitZ sp ep w)) + (map (second Right) (wlsHit sp ep w)) + crWlPbHit :: Point2 -> Point2 -> World -> [(Point2, Object)] crWlPbHit sp ep w = List.mergeOn @@ -59,6 +68,21 @@ crsHit sp ep w . crixsNearSeg sp ep $ w +crsHitZ :: Point2 -> Point2 -> World -> [(Point2, Creature)] +crsHitZ sp ep w + | sp == ep = mempty + | otherwise = + sortOn (dist sp . fst) + . overlapSegCrs sp ep + . mapMaybe (\cid -> f =<< w ^? cWorld . lWorld . creatures . ix cid) + . IS.toList + . crixsNearSeg sp ep + $ w + where + f cr + | HP{} <- cr ^. crHP = Just cr + | otherwise = Nothing + pbsHit :: Point2 -> Point2 -> World -> [(Point2, PulseBall)] pbsHit sp ep w | sp == ep = mempty diff --git a/tags b/tags index 79a1615b4..5e5395605 100644 --- a/tags +++ b/tags @@ -16,7 +16,7 @@ <$> src/Dodge/Data/CWorld.hs 47;" o <$> src/Dodge/Data/Camera.hs 39;" o <$> src/Dodge/Data/Creature.hs 89;" o -<$> src/Dodge/Data/LWorld.hs 181;" o +<$> src/Dodge/Data/LWorld.hs 180;" o <$> src/Dodge/Data/Terminal.hs 70;" o ABSOLUTE src/Dodge/Data/Item/Combine.hs 40;" C AIUNIT src/Dodge/Data/Item/Combine.hs 75;" C @@ -62,7 +62,7 @@ ArbitraryAction src/Dodge/Data/ActionPlan.hs 166;" C ArbitraryImpulse src/Dodge/Data/ActionPlan.hs 47;" C ArbitraryImpulseEffect src/Dodge/Data/ActionPlan.hs 48;" C ArbitraryImpulseFunction src/Dodge/Data/ActionPlan.hs 46;" C -ArcNodeType src/Dodge/Data/LWorld.hs 161;" t +ArcNodeType src/Dodge/Data/LWorld.hs 160;" t ArcShad src/Picture/Data.hs 38;" C ArcStep src/Dodge/Data/ArcStep.hs 14;" t Arcing src/Dodge/Data/Item/Params.hs 17;" C @@ -254,7 +254,7 @@ CookingDamage src/Dodge/Data/Damage/Type.hs 5;" C Corporation src/Dodge/Data/Scenario.hs 46;" C Cosmic src/Dodge/Data/Scenario.hs 74;" C CrAc src/Dodge/Data/CreatureEffect.hs 48;" t -CrArcNode src/Dodge/Data/LWorld.hs 166;" C +CrArcNode src/Dodge/Data/LWorld.hs 165;" C CrBl src/Dodge/Data/CreatureEffect.hs 39;" t CrCanShoot src/Dodge/Data/CreatureEffect.hs 40;" C CrChasm src/Dodge/Data/SoundOrigin.hs 19;" C @@ -1479,7 +1479,7 @@ WRIST_ECG src/Dodge/Data/Item/Combine.hs 136;" C WaitThen src/Dodge/Data/ActionPlan.hs 103;" C Walking src/Dodge/Data/Creature/Stance.hs 25;" C Wall src/Dodge/Data/Wall.hs 20;" t -WallArcNode src/Dodge/Data/LWorld.hs 162;" C +WallArcNode src/Dodge/Data/LWorld.hs 161;" C WallDraw src/Dodge/Data/Wall.hs 47;" t WallObstacle src/Dodge/Data/PathGraph.hs 52;" C WallP src/Dodge/LevelGen/StaticWalls.hs 23;" t @@ -1641,7 +1641,7 @@ _camRot src/Dodge/Data/Camera.hs 25;" f _camViewDistance src/Dodge/Data/Camera.hs 30;" f _camViewFrom src/Dodge/Data/Camera.hs 29;" f _camZoom src/Dodge/Data/Camera.hs 26;" f -_canID src/Dodge/Data/LWorld.hs 167;" f +_canID src/Dodge/Data/LWorld.hs 166;" f _carriage src/Dodge/Data/Creature/Stance.hs 18;" f _cdtCloseLeft src/Dodge/Data/DoubleTree.hs 88;" f _cdtCloseLeft src/Dodge/Data/DoubleTree.hs 96;" f @@ -1769,7 +1769,7 @@ _diSelection src/Dodge/Data/HUD.hs 34;" f _dimAttachPos src/Dodge/Data/Item/Misc.hs 16;" f _dimCenter src/Dodge/Data/Item/Misc.hs 15;" f _dimRad src/Dodge/Data/Item/Misc.hs 14;" f -_distortions src/Dodge/Data/LWorld.hs 143;" f +_distortions src/Dodge/Data/LWorld.hs 142;" f _dmAmount src/Dodge/Data/Damage.hs 20;" f _dmAmount src/Dodge/Data/Damage.hs 23;" f _dmAmount src/Dodge/Data/Damage.hs 26;" f @@ -1859,7 +1859,7 @@ _flatShieldWlMIX src/Dodge/Data/Item/Params.hs 16;" f _floorItems src/Dodge/Data/LWorld.hs 131;" f _floorShader src/Data/Preload/Render.hs 44;" f _floorVBO src/Data/Preload/Render.hs 43;" f -_foregroundShapes src/Dodge/Data/LWorld.hs 137;" f +_foreShapes src/Dodge/Data/LWorld.hs 137;" f _fsDir src/Dodge/Data/ForegroundShape.hs 17;" f _fsID src/Dodge/Data/ForegroundShape.hs 15;" f _fsPos src/Dodge/Data/ForegroundShape.hs 16;" f @@ -1907,7 +1907,7 @@ _gusts src/Dodge/Data/LWorld.hs 103;" f _gwWorld src/Dodge/Data/GenWorld.hs 25;" f _heldPos src/Dodge/Data/Input.hs 43;" f _heldWorldPos src/Dodge/Data/Input.hs 45;" f -_hotkeys src/Dodge/Data/LWorld.hs 147;" f +_hotkeys src/Dodge/Data/LWorld.hs 146;" f _hud src/Dodge/Data/World.hs 46;" f _humanoidAI src/Dodge/Data/Creature/Misc.hs 81;" f _ibtAmmoMag src/Dodge/Data/Item/Combine.hs 21;" f @@ -1928,7 +1928,7 @@ _ilIsRoot src/Dodge/Data/Item/Location.hs 30;" f _ilIsSelected src/Dodge/Data/Item/Location.hs 31;" f _ilTuID src/Dodge/Data/Item/Location.hs 35;" f _imAttachedItems src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 27;" f -_imHotkeys src/Dodge/Data/LWorld.hs 148;" f +_imHotkeys src/Dodge/Data/LWorld.hs 147;" f _imRootSelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 26;" f _imSelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 25;" f _immediateEffect src/Loop/Data.hs 9;" f @@ -1959,11 +1959,11 @@ _itsInt src/Dodge/Data/Item.hs 40;" f _itsMax src/Dodge/Data/Item.hs 41;" f _itsRangeInt src/Dodge/Data/Item.hs 41;" f _killTarget src/Dodge/Data/ActionPlan.hs 198;" f -_lAimPos src/Dodge/Data/LWorld.hs 149;" f -_lClock src/Dodge/Data/LWorld.hs 144;" f -_lInvLock src/Dodge/Data/LWorld.hs 150;" f -_lTestInt src/Dodge/Data/LWorld.hs 146;" f -_lTestString src/Dodge/Data/LWorld.hs 145;" f +_lAimPos src/Dodge/Data/LWorld.hs 148;" f +_lClock src/Dodge/Data/LWorld.hs 143;" f +_lInvLock src/Dodge/Data/LWorld.hs 149;" f +_lTestInt src/Dodge/Data/LWorld.hs 145;" f +_lTestString src/Dodge/Data/LWorld.hs 144;" f _lWorld src/Dodge/Data/CWorld.hs 24;" f _lampColor src/Dodge/Data/Creature/Misc.hs 74;" f _lampHeight src/Dodge/Data/Creature/Misc.hs 74;" f @@ -1978,12 +1978,12 @@ _ldtLeft src/Dodge/Data/DoubleTree.hs 36;" f _ldtRight src/Dodge/Data/DoubleTree.hs 37;" f _ldtValue src/Dodge/Data/DoubleTree.hs 35;" f _leadTargetBy src/Dodge/Data/ActionPlan.hs 150;" f -_lightSources src/Dodge/Data/LWorld.hs 139;" f +_lightSources src/Dodge/Data/LWorld.hs 138;" f _lightingCapShader src/Data/Preload/Render.hs 16;" f _lightingLineShadowShader src/Data/Preload/Render.hs 15;" f _lightingTextureShader src/Data/Preload/Render.hs 17;" f _lightingWallShadShader src/Data/Preload/Render.hs 14;" f -_lights src/Dodge/Data/LWorld.hs 140;" f +_lights src/Dodge/Data/LWorld.hs 139;" f _lightsUBO src/Data/Preload/Render.hs 40;" f _linearShockwaves src/Dodge/Data/LWorld.hs 120;" f _linkGapEW src/Dodge/Data/Room.hs 36;" f @@ -2230,7 +2230,7 @@ _rbTime src/Dodge/Data/RadarBlip.hs 16;" f _rboBaseBloom src/Data/Preload/Render.hs 38;" f _renderData src/Data/Preload.hs 11;" f _respawnDelay src/Dodge/Data/World.hs 62;" f -_respawnPos src/Dodge/Data/LWorld.hs 151;" f +_respawnPos src/Dodge/Data/LWorld.hs 150;" f _reverseAmount src/Dodge/Data/World.hs 66;" f _reverseAmount src/Dodge/Data/World.hs 72;" f _reverseAmount src/Dodge/Data/World.hs 76;" f @@ -2302,8 +2302,8 @@ _scrollTestInt src/Dodge/Data/Input.hs 48;" f _scurColor src/Dodge/Data/SelectionList.hs 26;" f _scurPos src/Dodge/Data/SelectionList.hs 24;" f _scurSize src/Dodge/Data/SelectionList.hs 25;" f -_seenLocations src/Dodge/Data/LWorld.hs 141;" f -_selLocation src/Dodge/Data/LWorld.hs 142;" f +_seenLocations src/Dodge/Data/LWorld.hs 140;" f +_selLocation src/Dodge/Data/LWorld.hs 141;" f _sensAmount src/Dodge/Data/Machine/Sensor.hs 22;" f _sensThreshold src/Dodge/Data/Machine/Sensor.hs 24;" f _sensType src/Dodge/Data/Machine/Sensor.hs 23;" f @@ -2517,8 +2517,8 @@ _wallDamages src/Dodge/Data/LWorld.hs 123;" f _wallShader src/Data/Preload/Render.hs 48;" f _wallVBO src/Data/Preload/Render.hs 47;" f _walls src/Dodge/Data/LWorld.hs 122;" f -_wanID src/Dodge/Data/LWorld.hs 164;" f -_wanPos src/Dodge/Data/LWorld.hs 163;" f +_wanID src/Dodge/Data/LWorld.hs 163;" f +_wanPos src/Dodge/Data/LWorld.hs 162;" f _warmMax src/Dodge/Data/TriggerType.hs 19;" f _warmStart src/Dodge/Data/TriggerType.hs 15;" f _windowPosX src/Dodge/Data/Config.hs 53;" f @@ -2712,7 +2712,7 @@ bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 668;" f bangStick src/Dodge/Item/Held/Stick.hs 15;" f barPP src/Dodge/Room/Foreground.hs 236;" f barrel src/Dodge/Creature/Inanimate.hs 17;" f -barrelShape src/Dodge/Render/ShapePicture.hs 70;" f +barrelShape src/Dodge/Render/ShapePicture.hs 76;" f baseAMRShape src/Dodge/Item/Draw/SPic.hs 406;" f baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f baseCI src/Dodge/Item/Grammar.hs 158;" f @@ -2795,7 +2795,7 @@ branchRectWith src/Dodge/Room/Branch.hs 15;" f branchWith src/Dodge/Room/Room.hs 69;" f bright src/Color.hs 120;" f brightX src/Color.hs 116;" f -btSPic src/Dodge/Render/ShapePicture.hs 124;" f +btSPic src/Dodge/Render/ShapePicture.hs 130;" f btText src/Dodge/Inventory/SelectionList.hs 237;" f bufferEBO src/Shader/Bind.hs 28;" f bufferPokedVBO src/Shader/Bind.hs 19;" f @@ -2996,7 +2996,7 @@ crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 38;" f crDisplayVigilance src/Dodge/Creature/Picture/Awareness.hs 52;" f crHasTarget src/Dodge/Creature/Test.hs 64;" f crHasTargetLOS src/Dodge/Creature/Test.hs 67;" f -crHit src/Dodge/WorldEvent/ThingsHit.hs 86;" f +crHit src/Dodge/WorldEvent/ThingsHit.hs 95;" f crIXsNearCirc src/Dodge/Zoning/Creature.hs 32;" f crIXsNearPoint src/Dodge/Zoning/Creature.hs 14;" f crInAimStance src/Dodge/Creature/Test.hs 90;" f @@ -3025,7 +3025,7 @@ crUpdateInvidLocations src/Dodge/Inventory/Location.hs 66;" f crUpdateItemLocations src/Dodge/Inventory/Location.hs 48;" f crVocalizationSound src/Dodge/Creature/Vocalization.hs 13;" f crWarningSounds src/Dodge/Creature/Vocalization.hs 23;" f -crWlPbHit src/Dodge/WorldEvent/ThingsHit.hs 41;" f +crWlPbHit src/Dodge/WorldEvent/ThingsHit.hs 50;" f crZoneSize src/Dodge/Zoning/Creature.hs 41;" f craftInfo src/Dodge/Item/Info.hs 169;" f craftItemSPic src/Dodge/Item/Draw/SPic.hs 40;" f @@ -3056,8 +3056,8 @@ crixsNearSeg src/Dodge/Zoning/Creature.hs 29;" f crossPic src/Dodge/Render/Label.hs 27;" f crossProd src/Geometry/Vector3D.hs 41;" f crossV src/Geometry/Vector.hs 178;" f -crsHit src/Dodge/WorldEvent/ThingsHit.hs 51;" f -crsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 121;" f +crsHit src/Dodge/WorldEvent/ThingsHit.hs 60;" f +crsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 130;" f crsItmsUnused src/Dodge/Room/Containing.hs 45;" f crsNearCirc src/Dodge/Zoning/Creature.hs 35;" f crsNearPoint src/Dodge/Zoning/Creature.hs 17;" f @@ -3065,7 +3065,7 @@ crsNearRect src/Dodge/Zoning/Creature.hs 38;" f crsNearSeg src/Dodge/Zoning/Creature.hs 23;" f crystalLine src/Dodge/Placement/Instance/Wall.hs 55;" f cubeShape src/Dodge/Block/Debris.hs 103;" f -cullPoint src/Dodge/Render/ShapePicture.hs 86;" f +cullPoint src/Dodge/Render/ShapePicture.hs 92;" f cullPretty src/AesonHelp.hs 14;" f cutPoly src/Dodge/LevelGen/StaticWalls.hs 77;" f cutWall src/Dodge/LevelGen/StaticWalls.hs 124;" f @@ -3089,7 +3089,7 @@ cylinderRoundIndices src/Shader/Poke.hs 389;" f dShadCol src/Dodge/Render/List.hs 214;" f damMatSideEffect src/Dodge/Material/Damage.hs 13;" f damThingHitWith src/Dodge/Damage.hs 72;" f -damToExpBarrel src/Dodge/Barreloid.hs 51;" f +damToExpBarrel src/Dodge/Barreloid.hs 52;" f damageCodeCommand src/Dodge/Terminal.hs 59;" f damageCrWl src/Dodge/Damage.hs 29;" f damageCrWlID src/Dodge/Damage.hs 23;" f @@ -3104,7 +3104,7 @@ damageStone src/Dodge/Material/Damage.hs 25;" f damageThingHit src/Dodge/Bullet.hs 177;" f damageTypeThreshold src/Dodge/Placement/Instance/Sensor.hs 35;" f damageWall src/Dodge/Wall/Damage.hs 15;" f -damsToExpBarrel src/Dodge/Barreloid.hs 48;" f +damsToExpBarrel src/Dodge/Barreloid.hs 49;" f dark src/Color.hs 108;" f darkenBackground src/Dodge/Render/MenuScreen.hs 32;" f dbArg src/Dodge/Base.hs 165;" f @@ -3344,19 +3344,19 @@ drawBeam src/Dodge/Beam/Draw.hs 6;" f drawBlip src/Dodge/RadarBlip.hs 16;" f drawBlock src/Dodge/Block/Draw.hs 7;" f drawBoundingBox src/Dodge/Debug/Picture.hs 347;" f -drawBullet src/Dodge/Bullet/Draw.hs 9;" f +drawBullet src/Dodge/Render/ShapePicture.hs 140;" f drawButton src/Dodge/Button/Draw.hs 10;" f drawCPUShadows src/Dodge/Render/Shadow.hs 19;" f -drawChasm src/Dodge/Render/ShapePicture.hs 44;" f +drawChasm src/Dodge/Render/ShapePicture.hs 48;" f drawCircCollisionTest src/Dodge/Debug/Picture.hs 117;" f -drawCliff src/Dodge/Render/ShapePicture.hs 47;" f +drawCliff src/Dodge/Render/ShapePicture.hs 51;" f drawCollisionTest src/Dodge/Debug/Picture.hs 102;" f drawCombFilter src/Dodge/Render/Picture.hs 254;" f drawCombineInventory src/Dodge/Render/HUD.hs 182;" f drawConcurrentMessage src/Dodge/Render/Picture.hs 68;" f drawCoord src/Dodge/Debug/Picture.hs 375;" f drawCrInfo src/Dodge/Debug/Picture.hs 396;" f -drawCreature src/Dodge/Render/ShapePicture.hs 61;" f +drawCreature src/Dodge/Render/ShapePicture.hs 67;" f drawCreatureDisplayTexts src/Dodge/Debug/Picture.hs 197;" f drawCross src/Dodge/Render/Label.hs 24;" f drawCrossCol src/Dodge/Render/Label.hs 21;" f @@ -3421,7 +3421,7 @@ drawPointLabel src/Dodge/Render/Label.hs 13;" f drawProjectile src/Dodge/Projectile/Draw.hs 13;" f drawProp src/Dodge/Prop/Draw.hs 26;" f drawProxSensor src/Dodge/Machine/Draw.hs 37;" f -drawPulseBall src/Dodge/Render/ShapePicture.hs 53;" f +drawPulseBall src/Dodge/Render/ShapePicture.hs 59;" f drawQuitTerminal src/Dodge/Render/Picture.hs 132;" f drawRBOptions src/Dodge/Render/HUD.hs 251;" f drawRadarSweep src/Dodge/RadarSweep/Draw.hs 14;" f @@ -3549,7 +3549,7 @@ explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 556;" f explosiveBarrel src/Dodge/Creature/Inanimate.hs 25;" f extTrigLitPos src/Dodge/Placement/Instance/Button.hs 84;" f extendConeToScreenEdge src/Dodge/Debug/Picture.hs 81;" f -extraPics src/Dodge/Render/ShapePicture.hs 91;" f +extraPics src/Dodge/Render/ShapePicture.hs 97;" f extraWeaponLinks src/Dodge/Item/Grammar.hs 90;" f extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 99;" f extractRoomPos src/Dodge/RoomPos.hs 6;" f @@ -3608,7 +3608,7 @@ flockPointTargetR src/Dodge/Creature/Boid.hs 267;" f flockToPointUsing src/Dodge/Creature/Boid.hs 215;" f flockToPointUsing' src/Dodge/Creature/Boid.hs 228;" f floorItemPickupInfo src/Dodge/Render/HUD.hs 231;" f -floorItemSPic src/Dodge/Render/ShapePicture.hs 117;" f +floorItemSPic src/Dodge/Render/ShapePicture.hs 123;" f floorWire src/Dodge/Wire.hs 13;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 558;" f foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 554;" f @@ -3968,7 +3968,11 @@ itemScan src/Dodge/Item/Scope.hs 63;" f itemScroll src/Dodge/Update/Scroll.hs 57;" f itemScrollDisplay src/Dodge/Inventory/SelectionList.hs 124;" f itemScrollValue src/Dodge/Inventory/SelectionList.hs 151;" f -itemShapeX src/Dodge/Item/Orientation.hs 39;" f +itemShapeMax src/Dodge/Item/Orientation.hs 56;" f +itemShapeMaxX src/Dodge/Item/Orientation.hs 47;" f +itemShapeMaxY src/Dodge/Item/Orientation.hs 50;" f +itemShapeMaxZ src/Dodge/Item/Orientation.hs 53;" f +itemShapeMin src/Dodge/Item/Orientation.hs 62;" f itemSidePush src/Dodge/HeldUse.hs 377;" f itemString src/Dodge/Item/Display.hs 56;" f itemToFunction src/Dodge/Item/Grammar.hs 107;" f @@ -4008,7 +4012,7 @@ lShape src/Dodge/Placement/Instance/LightSource.hs 90;" f lamp src/Dodge/Creature/Lamp.hs 21;" f lampCover src/Dodge/Placement/Instance/LightSource/Cover.hs 8;" f lampCoverWhen src/Dodge/Placement/Instance/LightSource/Cover.hs 19;" f -lampCrSPic src/Dodge/Render/ShapePicture.hs 75;" f +lampCrSPic src/Dodge/Render/ShapePicture.hs 81;" f lasCenSensEdge src/Dodge/Room/LasTurret.hs 141;" f lasGunPic src/Dodge/Item/Draw/SPic.hs 412;" f lasPulseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 526;" f @@ -4146,7 +4150,7 @@ makeByteStringShaderUsingVAO src/Shader/Compile.hs 128;" f makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f makeColorTermLine src/Dodge/Terminal.hs 111;" f makeColorTermPara src/Dodge/Terminal.hs 108;" f -makeCorpse src/Dodge/Corpse/Make.hs 14;" f +makeCorpse src/Dodge/Corpse/Make.hs 13;" f makeDebris src/Dodge/Block/Debris.hs 45;" f makeDebrisDirected src/Dodge/Block/Debris.hs 48;" f makeDoorDebris src/Dodge/Block/Debris.hs 24;" f @@ -4217,7 +4221,7 @@ mcProxSensorTriggerUpdate src/Dodge/Machine/Update.hs 103;" f mcProxSensorUpdate src/Dodge/Machine/Update.hs 138;" f mcProxTest src/Dodge/Machine/Update.hs 202;" f mcProximitySensorUpdate src/Dodge/Machine/Update.hs 170;" f -mcSPic src/Dodge/Render/ShapePicture.hs 129;" f +mcSPic src/Dodge/Render/ShapePicture.hs 135;" f mcShootAuto src/Dodge/HeldUse.hs 1195;" f mcShootLaser src/Dodge/HeldUse.hs 1188;" f mcTriggerVal src/Dodge/Machine/Update.hs 109;" f @@ -4388,9 +4392,9 @@ orderAroundFirst src/Geometry/Polygon.hs 119;" f orderAroundFirstReverse src/Geometry/Polygon.hs 115;" f orderPolygon src/Geometry/Polygon.hs 124;" f orderPolygonAround src/Geometry/Polygon.hs 107;" f -orientAttachment src/Dodge/Item/Orientation.hs 44;" f -orientByParentChSF src/Dodge/Item/Orientation.hs 29;" f -orientChild src/Dodge/Item/Orientation.hs 17;" f +orientAttachment src/Dodge/Item/Orientation.hs 68;" f +orientByParentChSF src/Dodge/Item/Orientation.hs 34;" f +orientChild src/Dodge/Item/Orientation.hs 18;" f orthogonalPointOnSeg src/Geometry/Intersect.hs 326;" f outLink src/Dodge/RoomLink.hs 120;" f outsideScreenPolygon src/Dodge/Debug/Picture.hs 43;" f @@ -4431,7 +4435,7 @@ pauseMenuOptions src/Dodge/Menu.hs 66;" f pauseSound src/Dodge/SoundLogic.hs 42;" f pauseTime src/Dodge/Update.hs 180;" f pbFlicker src/Dodge/Update.hs 453;" f -pbsHit src/Dodge/WorldEvent/ThingsHit.hs 62;" f +pbsHit src/Dodge/WorldEvent/ThingsHit.hs 71;" f peZoneSize src/Dodge/Zoning/Pathing.hs 46;" f pedestalRoom src/Dodge/Room/Containing.hs 50;" f penThing src/Dodge/Bullet.hs 208;" f @@ -4585,7 +4589,7 @@ powlist src/Multiset.hs 61;" f powlistUpToN src/Multiset.hs 23;" f powlistUpToN' src/Multiset.hs 12;" f powlistUpToN'' src/Multiset.hs 31;" f -ppDraw src/Dodge/Render/ShapePicture.hs 114;" f +ppDraw src/Dodge/Render/ShapePicture.hs 120;" f ppEvents src/Dodge/Update.hs 733;" f ppLevelReset src/Dodge/PressPlate.hs 13;" f preCritStart src/Dodge/Room/Start.hs 83;" f @@ -4614,7 +4618,7 @@ propSPic src/Dodge/Prop/Draw.hs 17;" f propSetToggleAnd src/Dodge/Prop/Update.hs 39;" f propUpdateIf src/Dodge/Prop/Update.hs 23;" f propUpdatePosition src/Dodge/Prop/Update.hs 28;" f -propagateOrientation src/Dodge/Item/Orientation.hs 56;" f +propagateOrientation src/Dodge/Item/Orientation.hs 80;" f ps0 src/Dodge/LevelGen/PlacementHelper.hs 51;" f ps0PushPS src/Dodge/LevelGen/PlacementHelper.hs 79;" f ps0PushPSw src/Dodge/LevelGen/PlacementHelper.hs 83;" f @@ -4954,7 +4958,7 @@ setOldPos src/Dodge/Update.hs 486;" f setOutLinks src/Dodge/RoomLink.hs 50;" f setOutLinksByType src/Dodge/RoomLink.hs 75;" f setOutLinksPD src/Dodge/RoomLink.hs 95;" f -setRBCreatureTargeting src/Dodge/Creature/State.hs 288;" f +setRBCreatureTargeting src/Dodge/Creature/State.hs 289;" f setRoomInt src/Dodge/Room/Tutorial.hs 60;" f setSelWhileDragging src/Dodge/Update/Input/InGame.hs 337;" f setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 87;" f @@ -5008,7 +5012,7 @@ shellShape src/Dodge/Projectile/Draw.hs 35;" f shieldWall src/Dodge/Item/BackgroundEffect.hs 77;" f shiftByV2 src/Dodge/PlacementSpot.hs 250;" f shiftChildren src/Dodge/Tree/Compose.hs 44;" f -shiftDraw src/Dodge/Render/ShapePicture.hs 80;" f +shiftDraw src/Dodge/Render/ShapePicture.hs 86;" f shiftInBy src/Dodge/PlacementSpot.hs 247;" f shiftInvItems src/Dodge/Update/Input/InGame.hs 305;" f shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 350;" f @@ -5275,10 +5279,11 @@ thickCircle src/Picture/Base.hs 272;" f thickLine src/Picture/Base.hs 244;" f thickLineCol src/Picture/Base.hs 255;" f thinHighBar src/Dodge/Room/Foreground.hs 77;" f -thingHit src/Dodge/WorldEvent/ThingsHit.hs 83;" f -thingHitFilt src/Dodge/WorldEvent/ThingsHit.hs 71;" f -thingsHit src/Dodge/WorldEvent/ThingsHit.hs 34;" f -thingsHitExceptCr src/Dodge/WorldEvent/ThingsHit.hs 92;" f +thingHit src/Dodge/WorldEvent/ThingsHit.hs 92;" f +thingHitFilt src/Dodge/WorldEvent/ThingsHit.hs 80;" f +thingsHit src/Dodge/WorldEvent/ThingsHit.hs 35;" f +thingsHitExceptCr src/Dodge/WorldEvent/ThingsHit.hs 101;" f +thingsHitZ src/Dodge/WorldEvent/ThingsHit.hs 43;" f threeLineDecoration src/Dodge/Placement/TopDecoration.hs 61;" f throwItem src/Dodge/Creature/Action.hs 211;" f tileTexCoords src/Tile.hs 11;" f @@ -5440,7 +5445,7 @@ updateAimPos src/Dodge/Update.hs 302;" f updateAllNodes src/TreeHelp.hs 86;" f updateArc src/Dodge/Tesla.hs 44;" f updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 478;" f -updateBarrel src/Dodge/Barreloid.hs 42;" f +updateBarrel src/Dodge/Barreloid.hs 43;" f updateBarreloid src/Dodge/Barreloid.hs 15;" f updateBaseWheelEvent src/Dodge/Update/Scroll.hs 34;" f updateBounds src/Dodge/Update/Camera.hs 258;" f @@ -5486,7 +5491,7 @@ updateInGameCamera src/Dodge/Update/Camera.hs 79;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 428;" f updateInt2Map src/Dodge/Zoning/Base.hs 92;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 86;" f -updateItemTargeting src/Dodge/Creature/State.hs 258;" f +updateItemTargeting src/Dodge/Creature/State.hs 259;" f updateKeyContinueTerminal src/Dodge/Update/Input/InGame.hs 396;" f updateKeyInGame src/Dodge/Update/Input/InGame.hs 422;" f updateKeysInGame src/Dodge/Update/Input/InGame.hs 83;" f @@ -5681,15 +5686,15 @@ wlOpaqueDraw src/Dodge/Render/Walls.hs 45;" f wlSeeThroughDraw src/Dodge/Render/Walls.hs 48;" f wlZoneSize src/Dodge/Zoning/Wall.hs 52;" f wlsFromIXs src/Dodge/Zoning/Wall.hs 35;" f -wlsHit src/Dodge/WorldEvent/ThingsHit.hs 106;" f -wlsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 114;" f +wlsHit src/Dodge/WorldEvent/ThingsHit.hs 115;" f +wlsHitRadial src/Dodge/WorldEvent/ThingsHit.hs 123;" f wlsNearCirc src/Dodge/Zoning/Wall.hs 49;" f wlsNearPoint src/Dodge/Zoning/Wall.hs 39;" f wlsNearRect src/Dodge/Zoning/Wall.hs 46;" f wlsNearSeg src/Dodge/Zoning/Wall.hs 42;" f wordsBy src/ListHelp.hs 116;" f worldPosToScreen src/Dodge/Base/Coordinate.hs 18;" f -worldSPic src/Dodge/Render/ShapePicture.hs 22;" f +worldSPic src/Dodge/Render/ShapePicture.hs 20;" f worldToGenWorld src/Dodge/LevelGen/LevelStructure.hs 14;" f wpAdd src/Dodge/Room/RezBox.hs 148;" f wrench1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 546;" f