diff --git a/src/Shader/Poke.hs b/src/Shader/Poke.hs index 54985f0ad..9d65b4c73 100644 --- a/src/Shader/Poke.hs +++ b/src/Shader/Poke.hs @@ -182,7 +182,7 @@ pokeCylinder :: {-# INLINE pokeCylinder #-} pokeCylinder sfid col size ptr iptr ieptr (nv, nsi, nei) (tc : bc : svs) = do nv' <- pokeRoundedCurve xdata col ptr tc bc svs nv - >>= pokeCylinderCaps xdata col ptr tc bc svs + >>= pokeCylinderCaps xdata col ptr svs nsi' <- UV.foldM' (pokeIndex nv iptr) @@ -209,17 +209,20 @@ pokeRoundedCurve xdata col ptr tc bc = go True go False (x : xs) n = pokeJustV xdata bc col ptr n x >>= go True xs go _ [] n = return n -pokeCylinderCaps :: Float -> Point4 -> Ptr Float -> Point3 -> Point3 -> [Point3] -> Int -> IO Int +-- I am not completely sure the normals are correct here +-- they assume that we do actually have a cylinder, with normals for the caps +-- that can be determined by the first two vertices +pokeCylinderCaps :: Float -> Point4 -> Ptr Float -> [Point3] -> Int + -> IO Int {-# INLINE pokeCylinderCaps #-} -pokeCylinderCaps xdata col ptr tc bc (a:b:as) = go True (a:b:as) +pokeCylinderCaps xdata col ptr (a:b:as) = go True (a:b:as) where n1 = a - b n2 = b - a - --go True (x : xs) n = pokeJustVInvNormal xdata tc col ptr n x >>= go False xs - --go False (x : xs) n = pokeJustVInvNormal xdata bc col ptr n x >>= go True xs go True (x : xs) n = pokeFlatV xdata n1 col ptr n x >>= go False xs go False (x : xs) n = pokeFlatV xdata n2 col ptr n x >>= go True xs go _ [] n = return n +pokeCylinderCaps _ _ _ _ = const $ return 0 pokeBox :: Bool -> @@ -449,24 +452,6 @@ pokeJustV xdata cp col ptr nv sh = do V3 x y z = sh V3 nx ny nz = cp -pokeJustVInvNormal :: - Float -> - Point3 -> - Point4 -> - Ptr Float -> - Int -> - Point3 -> - IO Int -{-# INLINE pokeJustVInvNormal #-} -pokeJustVInvNormal xdata cp col ptr nv sh = do - pokeByteOff ptr (nv * shapeVerxSize) (V4 x y z xdata) - pokeByteOff ptr (nv *shapeVerxSize + 4 * floatSize) (toColor8 col) - pokeByteOff ptr (nv *shapeVerxSize + 4 * (floatSize + ubyteSize)) (V4 nx ny nz 1) - return (nv + 1) - where - V3 x y z = sh - V3 nx ny nz = (2 * sh) - cp - pokeFlatV :: Float -> Point3 -> diff --git a/tags b/tags index f6ae8ab6f..a30ce4df0 100644 --- a/tags +++ b/tags @@ -3320,7 +3320,7 @@ allHotkeys src/Dodge/Creature/YourControl.hs 60;" f allInvLocs src/Dodge/Item/Grammar.hs 225;" f allVisibleWalls src/Dodge/Base/Collide.hs 131;" f alongSegBy src/Geometry.hs 43;" f -ammoMagSPic src/Dodge/Item/Draw/SPic.hs 92;" f +ammoMagSPic src/Dodge/Item/Draw/SPic.hs 98;" f amr src/Dodge/Item/Held/Rod.hs 44;" f analyser src/Dodge/Placement/Instance/Analyser.hs 12;" f analyserByDoor src/Dodge/Room/LasTurret.hs 74;" f @@ -3405,28 +3405,28 @@ azure src/Color.hs 22;" f bQuadToF src/Geometry/Bezier.hs 37;" f bQuadToLine src/Geometry/Bezier.hs 30;" f backpackCombinations src/Dodge/Combine/Combinations.hs 26;" f -backpackShape src/Dodge/Item/Draw/SPic.hs 141;" f +backpackShape src/Dodge/Item/Draw/SPic.hs 147;" f backspaceInputted src/Dodge/Update/Input/Text.hs 25;" f bangCone src/Dodge/Item/Held/Cone.hs 11;" f -bangConeShape src/Dodge/Item/Draw/SPic.hs 253;" f +bangConeShape src/Dodge/Item/Draw/SPic.hs 259;" f bangEchoS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 382;" f bangRod src/Dodge/Item/Held/Rod.hs 18;" f bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 496;" f bangStick src/Dodge/Item/Held/Stick.hs 17;" f barPP src/Dodge/Room/Foreground.hs 236;" f barrel src/Dodge/Creature/Inanimate.hs 17;" f -baseAMRShape src/Dodge/Item/Draw/SPic.hs 363;" f +baseAMRShape src/Dodge/Item/Draw/SPic.hs 369;" f baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f -baseCaneShape src/Dodge/Item/Draw/SPic.hs 273;" f +baseCaneShape src/Dodge/Item/Draw/SPic.hs 279;" f baseDebris src/Dodge/Block/Debris.hs 122;" f baseFloorTileSize src/Tile.hs 45;" f basePCI src/Dodge/Item/Grammar.hs 110;" f -baseRifleShape src/Dodge/Item/Draw/SPic.hs 276;" f -baseRodShape src/Dodge/Item/Draw/SPic.hs 360;" f -baseSMGShape src/Dodge/Item/Draw/SPic.hs 343;" f +baseRifleShape src/Dodge/Item/Draw/SPic.hs 282;" f +baseRodShape src/Dodge/Item/Draw/SPic.hs 366;" f +baseSMGShape src/Dodge/Item/Draw/SPic.hs 349;" f baseShoulder src/Dodge/Creature/Picture.hs 131;" f -baseStickShape src/Dodge/Item/Draw/SPic.hs 250;" f -baseStickShapeX src/Dodge/Item/Draw/SPic.hs 245;" f +baseStickShape src/Dodge/Item/Draw/SPic.hs 256;" f +baseStickShapeX src/Dodge/Item/Draw/SPic.hs 251;" f baseStickSpread src/Dodge/Item/Held/Stick.hs 28;" f basicAttentionUpdate src/Dodge/Creature/Perception.hs 127;" f basicAwarenessUpdate src/Dodge/Creature/Perception.hs 37;" f @@ -3481,9 +3481,9 @@ bouncePoint src/Dodge/Base/Collide.hs 87;" f boundPoints src/Bound.hs 10;" f boundedGrid src/Grid.hs 19;" f boxABC src/Polyhedra.hs 108;" f -boxEdgeIndices src/Shader/Poke.hs 350;" f -boxSurfaces src/Shader/Poke.hs 269;" f -boxSurfacesIndices src/Shader/Poke.hs 282;" f +boxEdgeIndices src/Shader/Poke.hs 358;" f +boxSurfaces src/Shader/Poke.hs 277;" f +boxSurfacesIndices src/Shader/Poke.hs 290;" f boxXYZ src/Polyhedra.hs 94;" f boxXYZnobase src/Polyhedra.hs 80;" f brainHat src/Dodge/Item/Equipment.hs 127;" f @@ -3612,7 +3612,7 @@ collidePointWallsFilter src/Dodge/Base/Collide.hs 107;" f collisionDebugItem src/Dodge/Debug.hs 31;" f color src/Picture/Base.hs 108;" f colorLamp src/Dodge/Creature/Lamp.hs 10;" f -colorSH src/Shape.hs 235;" f +colorSH src/Shape.hs 234;" f combinationsDotGraph src/Dodge/Combine/Graph.hs 94;" f combinationsGraph src/Dodge/Combine/Graph.hs 73;" f combinationsOf src/Multiset.hs 46;" f @@ -3748,10 +3748,10 @@ cycleL src/DoubleStack.hs 28;" f cycleLT src/IntMapHelp.hs 96;" f cycleOptions src/Dodge/Menu/Option.hs 78;" f cycleR src/DoubleStack.hs 32;" f -cylinderIndices src/Shader/Poke.hs 374;" f +cylinderIndices src/Shader/Poke.hs 382;" f cylinderOnSeg src/Geometry.hs 125;" f cylinderPoly src/Shape.hs 86;" f -cylinderRoundIndices src/Shader/Poke.hs 381;" f +cylinderRoundIndices src/Shader/Poke.hs 389;" f dShadCol src/Dodge/Render/List.hs 215;" f damThingHitWith src/Dodge/WorldEvent/Damage.hs 10;" f damToExpBarrel src/Dodge/Barreloid.hs 57;" f @@ -3811,7 +3811,7 @@ dededumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 462;" f dedumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 328;" f defDamageMaterial src/Dodge/Material/Damage.hs 17;" f defLSPic src/Dodge/LightSource/Draw.hs 10;" f -defSPic src/Dodge/Item/Draw/SPic.hs 259;" f +defSPic src/Dodge/Item/Draw/SPic.hs 265;" f defaultAimMvType src/Dodge/Default/Creature.hs 116;" f defaultAimParams src/Dodge/Default/Item/Use/AimParams.hs 9;" f defaultAimingCrit src/Dodge/Default/Creature.hs 125;" f @@ -3899,7 +3899,7 @@ destroyMounts src/Dodge/Block.hs 101;" f destroyProjectile src/Dodge/Projectile/Update.hs 63;" f detV src/Geometry/Vector.hs 93;" f detector src/Dodge/Item/Held/Utility.hs 41;" f -detectorColor src/Dodge/Item/Draw/SPic.hs 409;" f +detectorColor src/Dodge/Item/Draw/SPic.hs 415;" f detectorEffect src/Dodge/Item/Weapon/Radar.hs 20;" f detectorInfo src/Dodge/Item/Info.hs 178;" f determineProjectileTracking src/Dodge/HeldUse.hs 552;" f @@ -4179,7 +4179,7 @@ eqPosText src/Dodge/Equipment/Text.hs 5;" f eqSiteToPositions src/Dodge/Inventory/RBList.hs 76;" f equipAllocString src/Dodge/Render/HUD.hs 295;" f equipInfo src/Dodge/Item/Info.hs 96;" f -equipItemSPic src/Dodge/Item/Draw/SPic.hs 112;" f +equipItemSPic src/Dodge/Item/Draw/SPic.hs 118;" f equipPosition src/Dodge/Item/Draw.hs 28;" f equipSiteInfo src/Dodge/Item/Info.hs 207;" f equipSpeed src/Dodge/Creature/Impulse/Movement.hs 99;" f @@ -4244,12 +4244,12 @@ flameSpitter src/Dodge/Item/Held/SprayGuns.hs 29;" f flameThrower src/Dodge/Item/Held/SprayGuns.hs 72;" f flameTorrent src/Dodge/Item/Held/SprayGuns.hs 40;" f flameWall src/Dodge/Item/Held/SprayGuns.hs 56;" f -flamerPic src/Dodge/Item/Draw/SPic.hs 346;" f +flamerPic src/Dodge/Item/Draw/SPic.hs 352;" f flareCircleAt src/Dodge/HeldUse.hs 238;" f flatItemCombinations src/Dodge/Combine/Combinations.hs 50;" f flatLookupItems src/Dodge/Combine.hs 38;" f flatShield src/Dodge/Item/Held/Utility.hs 20;" f -flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 396;" f +flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 402;" f fleeFrom src/Dodge/CreatureEffect.hs 120;" f fleeFromTarget src/Dodge/CreatureEffect.hs 66;" f flickerMod src/Dodge/Placement/Instance/LightSource/Flicker.hs 10;" f @@ -4286,7 +4286,7 @@ forceFoldable src/StrictHelp.hs 7;" f forceSpine src/StrictHelp.hs 4;" f fourEmbossDecoration src/Dodge/Placement/TopDecoration.hs 29;" f fpsText src/Dodge/Render/Picture.hs 47;" f -fractionLoadedAmmo src/Dodge/Item/Draw/SPic.hs 105;" f +fractionLoadedAmmo src/Dodge/Item/Draw/SPic.hs 111;" f frag src/Shader/Data.hs 102;" f freeShaderPointers' src/Shader.hs 37;" f fridgeHumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 370;" f @@ -4420,7 +4420,7 @@ hasLOSIndirect src/Dodge/Base/Collide.hs 215;" f hat src/Dodge/Item/Equipment.hs 133;" f head src/DoubleStack.hs 14;" f headLamp src/Dodge/Item/Equipment.hs 139;" f -headLampShape src/Dodge/Item/Draw/SPic.hs 399;" f +headLampShape src/Dodge/Item/Draw/SPic.hs 405;" f headMap src/Dodge/DoubleTree.hs 170;" f heal src/Dodge/Item/Consumable.hs 17;" f heal25 src/Dodge/Item/Consumable.hs 14;" f @@ -4435,7 +4435,7 @@ heldInfo src/Dodge/Item/Info.hs 47;" f heldItemOffset src/Dodge/Item/HeldOffset.hs 78;" f heldItemOrient2D src/Dodge/Item/HeldOffset.hs 26;" f heldItemRelativeOrient src/Dodge/Item/HeldOffset.hs 31;" f -heldItemSPic src/Dodge/Item/Draw/SPic.hs 188;" f +heldItemSPic src/Dodge/Item/Draw/SPic.hs 194;" f heldPositionInfo src/Dodge/Item/Info.hs 194;" f helpCommand src/Dodge/Terminal.hs 66;" f helpPoly3D src/Polyhedra.hs 125;" f @@ -4622,7 +4622,7 @@ keyCard src/Dodge/Item/Held/Utility.hs 30;" f keyCardAnalyserByDoor src/Dodge/Room/LasTurret.hs 68;" f keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 56;" f keyCardRunPastRand src/Dodge/LockAndKey.hs 36;" f -keyPic src/Dodge/Item/Draw/SPic.hs 415;" f +keyPic src/Dodge/Item/Draw/SPic.hs 421;" f keyholeCorridor src/Dodge/Room/Corridor.hs 39;" f knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 470;" f lConnect src/Dodge/Render/Connectors.hs 42;" f @@ -4634,7 +4634,7 @@ lampCoverWhen src/Dodge/Placement/Instance/LightSource/Cover.hs 19;" f lampCrSPic src/Dodge/Render/ShapePicture.hs 58;" f lasCenSensEdge src/Dodge/Room/LasTurret.hs 111;" f lasDronesPic src/Dodge/Item/Weapon/Drone.hs 22;" f -lasGunPic src/Dodge/Item/Draw/SPic.hs 369;" f +lasGunPic src/Dodge/Item/Draw/SPic.hs 375;" f lasRayAt src/Dodge/HeldUse.hs 366;" f lasSensorTurretTest src/Dodge/Room/LasTurret.hs 104;" f lasTunnel src/Dodge/Room/LasTurret.hs 123;" f @@ -4645,7 +4645,7 @@ laserLinkTest src/Dodge/Item/Grammar.hs 119;" f lastMap src/Dodge/DoubleTree.hs 174;" f launcher src/Dodge/Item/Held/Launcher.hs 12;" f launcherCrit src/Dodge/Creature/LauncherCrit.hs 12;" f -launcherPic src/Dodge/Item/Draw/SPic.hs 349;" f +launcherPic src/Dodge/Item/Draw/SPic.hs 355;" f launcherX src/Dodge/Item/Held/Launcher.hs 29;" f layoutLevelFromSeed src/Dodge/LevelGen.hs 47;" f ldpVerticalSelection src/Dodge/Update/Input/ScreenLayer.hs 72;" f @@ -4662,7 +4662,7 @@ left src/DoubleStack.hs 16;" f leftIsParentCombine src/Dodge/Item/Grammar.hs 146;" f leftPad src/Padding.hs 14;" f leftRightCombine src/Dodge/Item/Grammar.hs 160;" f -legsSPic src/Dodge/Item/Draw/SPic.hs 433;" f +legsSPic src/Dodge/Item/Draw/SPic.hs 439;" f liShape src/Dodge/Placement/Instance/LightSource.hs 98;" f light src/Color.hs 104;" f lightSensByDoor src/Dodge/Room/LasTurret.hs 43;" f @@ -4843,12 +4843,12 @@ megaBattery src/Dodge/Item/Ammo.hs 79;" f megaShellMag src/Dodge/Item/Ammo.hs 55;" f megaTinMag src/Dodge/Item/Ammo.hs 21;" f meleeHeadingMove src/Dodge/Creature/Boid.hs 281;" f -memoBoxEdgeIndices src/Shader/Poke.hs 344;" f -memoBoxSurfaces src/Shader/Poke.hs 278;" f -memoCylinderIndices src/Shader/Poke.hs 315;" f -memoFlatIndices src/Shader/Poke.hs 303;" f -memoTopPrismEdgeIndices src/Shader/Poke.hs 321;" f -memoTopPrismIndices src/Shader/Poke.hs 309;" f +memoBoxEdgeIndices src/Shader/Poke.hs 352;" f +memoBoxSurfaces src/Shader/Poke.hs 286;" f +memoCylinderIndices src/Shader/Poke.hs 323;" f +memoFlatIndices src/Shader/Poke.hs 311;" f +memoTopPrismEdgeIndices src/Shader/Poke.hs 329;" f +memoTopPrismIndices src/Shader/Poke.hs 317;" f menuOptionToSelectionItem src/Dodge/Menu/Option.hs 94;" f merge src/ListHelp.hs 83;" f mergeBy src/ListHelp.hs 86;" f @@ -4877,8 +4877,8 @@ minOn src/FoldableHelp.hs 35;" f mini1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 334;" f miniGunCrit src/Dodge/Creature.hs 62;" f miniGunX src/Dodge/Item/Held/Cane.hs 88;" f -miniGunXPict src/Dodge/Item/Draw/SPic.hs 324;" f -miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 319;" f +miniGunXPict src/Dodge/Item/Draw/SPic.hs 330;" f +miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 325;" f miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 528;" f miniTree2 src/Dodge/Room/Room.hs 106;" f minimumOn src/FoldlHelp.hs 12;" f @@ -5014,13 +5014,13 @@ outLink src/Dodge/RoomLink.hs 105;" f outsideScreenPolygon src/Dodge/Debug/Picture.hs 44;" f outwardIntegers src/Dodge/Base.hs 159;" f overCol src/Picture/Base.hs 308;" f -overColObj src/Shape.hs 271;" f -overColSH src/Shape.hs 239;" f +overColObj src/Shape.hs 270;" f +overColSH src/Shape.hs 238;" f overLnkPosDir src/Dodge/RoomLink.hs 100;" f overLnkType src/Dodge/RoomLink.hs 87;" f overPos src/Picture/Base.hs 303;" f -overPosObj src/Shape.hs 275;" f -overPosSH src/Shape.hs 259;" f +overPosObj src/Shape.hs 274;" f +overPosSH src/Shape.hs 258;" f overPosSP src/ShapePicture.hs 41;" f overlapCircWalls src/Dodge/Base/Collide.hs 137;" f overlapCircWallsClosest src/Dodge/Base/Collide.hs 168;" f @@ -5137,29 +5137,29 @@ pointerYourSelectedItem src/Dodge/Item/Location.hs 25;" f pointsToPoly src/Geometry/ConvexPoly.hs 39;" f poisonSPic src/Dodge/Creature/State.hs 110;" f poisonSprayer src/Dodge/Item/Held/SprayGuns.hs 17;" f -poke34 src/Shader/Poke.hs 516;" f -pokeArrayOff src/Shader/Poke.hs 527;" f -pokeBox src/Shader/Poke.hs 219;" f -pokeBoxSurface src/Shader/Poke.hs 254;" f +poke34 src/Shader/Poke.hs 524;" f +pokeArrayOff src/Shader/Poke.hs 535;" f +pokeBox src/Shader/Poke.hs 227;" f +pokeBoxSurface src/Shader/Poke.hs 262;" f pokeCloud src/Shader/Poke/Cloud.hs 11;" f pokeCloudFloat src/Shader/Poke/Cloud.hs 29;" f pokeCloudIndex src/Shader/Poke/Cloud.hs 33;" f pokeCloudVerx src/Shader/Poke/Cloud.hs 17;" f pokeCylinder src/Shader/Poke.hs 172;" f -pokeCylinderCaps src/Shader/Poke.hs 211;" f +pokeCylinderCaps src/Shader/Poke.hs 215;" f pokeF src/Shader/Poke.hs 67;" f -pokeFlatV src/Shader/Poke.hs 465;" f +pokeFlatV src/Shader/Poke.hs 473;" f pokeFloors src/Shader/Poke.hs 61;" f -pokeIndex src/Shader/Poke.hs 289;" f -pokeJustV src/Shader/Poke.hs 429;" f -pokeJustVInvNormal src/Shader/Poke.hs 447;" f -pokeLayVerx src/Shader/Poke.hs 490;" f -pokeLayVerxs src/Shader/Poke.hs 483;" f -pokeRoundedCurve src/Shader/Poke.hs 203;" f +pokeIndex src/Shader/Poke.hs 297;" f +pokeJustV src/Shader/Poke.hs 437;" f +pokeJustVInvNormal src/Shader/Poke.hs 455;" f +pokeLayVerx src/Shader/Poke.hs 498;" f +pokeLayVerxs src/Shader/Poke.hs 491;" f +pokeRoundedCurve src/Shader/Poke.hs 204;" f pokeRoundedFaces src/Shader/Poke.hs 140;" f pokeShape src/Shader/Poke.hs 111;" f pokeShapeObj src/Shader/Poke.hs 124;" f -pokeStride src/Shader/Poke.hs 509;" f +pokeStride src/Shader/Poke.hs 517;" f pokeTile src/Shader/Poke/Floor.hs 11;" f pokeTileVerx src/Shader/Poke/Floor.hs 17;" f pokeVerx src/Shader/Poke.hs 38;" f @@ -5421,9 +5421,9 @@ rotate3z src/Geometry/Vector3D.hs 54;" f rotateCamera src/Dodge/Update/Camera.hs 208;" f rotateCameraBy src/Dodge/Update/Camera.hs 205;" f rotateProp src/Dodge/Prop/Update.hs 49;" f -rotateSH src/Shape.hs 255;" f -rotateSHq src/Shape.hs 164;" f -rotateSHx src/Shape.hs 263;" f +rotateSH src/Shape.hs 254;" f +rotateSHq src/Shape.hs 163;" f +rotateSHx src/Shape.hs 262;" f rotateSP src/ShapePicture.hs 57;" f rotateTo src/Polyhedra/Geodesic.hs 64;" f rotateToOverlappingWall src/Dodge/Update/Camera.hs 183;" f @@ -5466,7 +5466,7 @@ scale src/Picture/Base.hs 149;" f scale3 src/Picture/Base.hs 145;" f scaleMat src/MatrixHelper.hs 59;" f scaleMatrix src/MatrixHelper.hs 56;" f -scaleSH src/Shape.hs 267;" f +scaleSH src/Shape.hs 266;" f scalp src/Dodge/Creature/Picture.hs 96;" f scancodeToHotkey src/Dodge/Creature/YourControl.hs 78;" f scodeToChar src/Dodge/ScodeToChar.hs 6;" f @@ -5583,7 +5583,7 @@ shapeVerxAttributes src/Shape/Parameters.hs 13;" f shapeVerxSize src/Shape/Parameters.hs 10;" f shardShape src/Dodge/Block/Debris.hs 181;" f shatterGun src/Dodge/Item/Held/Weapons.hs 8;" f -shatterGunSPic src/Dodge/Item/Draw/SPic.hs 262;" f +shatterGunSPic src/Dodge/Item/Draw/SPic.hs 268;" f shatterWall src/Dodge/Item/Weapon/Shatter.hs 26;" f shellCollisionCheck src/Dodge/Projectile/Update.hs 52;" f shellCollisionEffect src/Dodge/Projectile/Update.hs 48;" f @@ -5828,7 +5828,7 @@ terminalScreenGlow src/Dodge/Machine/Update.hs 34;" f terminalShape src/Dodge/Machine/Draw.hs 32;" f terminalWheelEvent src/Dodge/Update/Scroll.hs 78;" f teslaGun src/Dodge/Item/Held/BatteryGuns.hs 21;" f -teslaGunPic src/Dodge/Item/Draw/SPic.hs 366;" f +teslaGunPic src/Dodge/Item/Draw/SPic.hs 372;" f teslaParams src/Dodge/Tesla/ItemParams.hs 6;" f testCrossWalls src/Dodge/Room/Path.hs 47;" f testEvent src/Dodge/Event/Test.hs 10;" f @@ -5895,18 +5895,18 @@ tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 474;" f tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 444;" f tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 332;" f topInvW src/Dodge/ListDisplayParams.hs 51;" f -topPrismEdgeIndices src/Shader/Poke.hs 327;" f -topPrismIndices src/Shader/Poke.hs 402;" f +topPrismEdgeIndices src/Shader/Poke.hs 335;" f +topPrismIndices src/Shader/Poke.hs 410;" f topTestPart src/Dodge/TestString.hs 69;" f torch src/Dodge/Item/Held/Utility.hs 33;" f -torchShape src/Dodge/Item/Draw/SPic.hs 231;" f +torchShape src/Dodge/Item/Draw/SPic.hs 237;" f torqueCr src/Dodge/WorldEffect.hs 63;" f torso src/Dodge/Creature/Picture.hs 105;" f tractCr src/Dodge/TractorBeam/Update.hs 28;" f tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f tractorBeamAt src/Dodge/HeldUse.hs 335;" f tractorGun src/Dodge/Item/Held/BatteryGuns.hs 60;" f -tractorGunPic src/Dodge/Item/Draw/SPic.hs 393;" f +tractorGunPic src/Dodge/Item/Draw/SPic.hs 399;" f tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f tractorSPic src/Dodge/TractorBeam/Draw.hs 10;" f tranRot src/Picture/Base.hs 124;" f @@ -5921,9 +5921,9 @@ translatePointToHead src/Dodge/Creature/HandPos.hs 147;" f translatePointToLeftHand src/Dodge/Creature/HandPos.hs 75;" f translatePointToRightHand src/Dodge/Creature/HandPos.hs 23;" f translatePointToRightHand' src/Dodge/Creature/HandPos.hs 29;" f -translateSH src/Shape.hs 243;" f -translateSHxy src/Shape.hs 247;" f -translateSHz src/Shape.hs 251;" f +translateSH src/Shape.hs 242;" f +translateSHxy src/Shape.hs 246;" f +translateSHz src/Shape.hs 250;" f translateSP src/ShapePicture.hs 53;" f translateSPxy src/ShapePicture.hs 45;" f translateSPz src/ShapePicture.hs 49;" f @@ -6120,23 +6120,23 @@ updateWheelEvents src/Dodge/Update.hs 407;" f updateWorldEventFlag src/Dodge/Update.hs 117;" f updateWorldEventFlags src/Dodge/Update.hs 105;" f upperBody src/Dodge/Creature/Picture.hs 135;" f -upperBox src/Shape.hs 154;" f -upperBoxHalf src/Shape.hs 220;" f -upperBoxMT src/Shape.hs 145;" f -upperBoxST src/Shape.hs 148;" f -upperBoxSU src/Shape.hs 151;" f -upperCylinder src/Shape.hs 167;" f -upperPrismPoly src/Shape.hs 122;" f -upperPrismPolyHalf src/Shape.hs 205;" f -upperPrismPolyHalfMI src/Shape.hs 199;" f -upperPrismPolyHalfST src/Shape.hs 202;" f -upperPrismPolyMT src/Shape.hs 101;" f -upperPrismPolySE src/Shape.hs 104;" f -upperPrismPolySI src/Shape.hs 110;" f -upperPrismPolyST src/Shape.hs 107;" f -upperPrismPolySU src/Shape.hs 113;" f -upperPrismPolyTS src/Shape.hs 119;" f -upperRounded src/Shape.hs 183;" f +upperBox src/Shape.hs 153;" f +upperBoxHalf src/Shape.hs 219;" f +upperBoxMT src/Shape.hs 144;" f +upperBoxST src/Shape.hs 147;" f +upperBoxSU src/Shape.hs 150;" f +upperCylinder src/Shape.hs 166;" f +upperPrismPoly src/Shape.hs 120;" f +upperPrismPolyHalf src/Shape.hs 204;" f +upperPrismPolyHalfMI src/Shape.hs 198;" f +upperPrismPolyHalfST src/Shape.hs 201;" f +upperPrismPolyMT src/Shape.hs 99;" f +upperPrismPolySE src/Shape.hs 102;" f +upperPrismPolySI src/Shape.hs 108;" f +upperPrismPolyST src/Shape.hs 105;" f +upperPrismPolySU src/Shape.hs 111;" f +upperPrismPolyTS src/Shape.hs 117;" f +upperRounded src/Shape.hs 182;" f useBreakL src/Dodge/Item/Grammar.hs 27;" f useBreakListsLinkTest src/Dodge/Item/Grammar.hs 35;" f useBulletPayload src/Dodge/Bullet.hs 96;" f @@ -6193,7 +6193,7 @@ visibleWalls src/Dodge/Base/Collide.hs 123;" f visionCheck src/Dodge/Creature/Perception.hs 152;" f vocalizationTest src/Dodge/Creature/Vocalization.hs 8;" f volleyGun src/Dodge/Item/Held/Cane.hs 30;" f -volleyGunShape src/Dodge/Item/Draw/SPic.hs 307;" f +volleyGunShape src/Dodge/Item/Draw/SPic.hs 313;" f waistSP src/Dodge/Creature/HandPos.hs 173;" f walkNozzle src/Dodge/HeldUse.hs 303;" f walkableNodeNear src/Dodge/Path.hs 48;" f @@ -6259,8 +6259,8 @@ wristArmour src/Dodge/Item/Equipment.hs 46;" f wristInvisibility src/Dodge/Item/Equipment.hs 158;" f writeConfig src/Dodge/Menu.hs 159;" f writeSaveSlot src/Dodge/Save.hs 34;" f -xCylinder src/Shape.hs 136;" f -xCylinderST src/Shape.hs 133;" f +xCylinder src/Shape.hs 134;" f +xCylinderST src/Shape.hs 131;" f xIntercepts src/Dodge/Zoning/Base.hs 58;" f xV2 src/Geometry/Vector.hs 199;" f xyV3 src/Geometry/Vector.hs 211;" f