This commit is contained in:
2025-09-24 12:28:24 +01:00
parent eb068f5335
commit da8230fe00
2 changed files with 52 additions and 53 deletions
+3 -4
View File
@@ -45,7 +45,7 @@ shiftChildren :: Tree ([Tree a], a) -> Tree a
shiftChildren (Node (ts, x) ts') = Node x (ts ++ map shiftChildren ts')
composeTree :: MetaTree a b -> Tree a
composeTree mt = attachList' (composeNode $ _mtTree mt) (_mtBranches mt)
composeTree mt = attachList (composeNode $ _mtTree mt) (_mtBranches mt)
mtTopLabels :: MetaTree a b -> Tree b
mtTopLabels (MTree lab _ bs) = Node lab (map (mtTopLabels . _mbTree) bs)
@@ -67,7 +67,6 @@ decomposeSelfTree st = fmap fst (_unST st) : concatMap (f . snd) (_unST st)
combineTree :: (a -> b) -> MetaTree a b -> SelfTree b
combineTree f mt = case _mtTree mt of
NodeTree t -> ST (Node (_mtLabel mt, Left $ fmap f t) (_unST . combineTree f . _mbTree <$> _mtBranches mt))
--NodeTree t -> ST (Node (Left $ fmap f t) _)
NodeMTree mt' ->
ST
( Node (_mtLabel mt, Right $ combineTree f mt') $
@@ -78,8 +77,8 @@ composeNode :: MetaNode a b -> Tree a
composeNode (NodeTree t) = t
composeNode (NodeMTree mt) = composeTree mt
attachList' :: Tree a -> [MetaBranch a b] -> Tree a
attachList' t = shiftChildren . foldr attachBranch (fmap ([],) t)
attachList :: Tree a -> [MetaBranch a b] -> Tree a
attachList t = shiftChildren . foldr attachBranch (fmap ([],) t)
attachBranch :: MetaBranch a b -> Tree ([Tree a], a) -> Tree ([Tree a], a)
attachBranch mb =
+49 -49
View File
@@ -724,7 +724,7 @@ MOTOR src/Dodge/Data/Item/Combine.hs 64;" C
MP2Ac src/Dodge/Data/CreatureEffect.hs 56;" t
MP2NoAction src/Dodge/Data/CreatureEffect.hs 56;" C
MPO src/Dodge/Base/Collide.hs 88;" t
MTRS src/Dodge/Data/MTRS.hs 5;" t
MTRS src/Dodge/Data/MTRS.hs 6;" t
MTree src/Dodge/Data/MetaTree.hs 11;" C
Machine src/Dodge/Data/Machine.hs 30;" t
MachineAltSound src/Dodge/Data/SoundOrigin.hs 23;" C
@@ -2596,21 +2596,21 @@ advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 45;" f
aimDelaySweep src/Dodge/Render/Picture.hs 272;" f
aimStanceInfo src/Dodge/Item/Info.hs 244;" f
aimTurn src/Dodge/Creature/YourControl.hs 180;" f
airlock src/Dodge/Room/Airlock.hs 24;" f
airlock0 src/Dodge/Room/Airlock.hs 68;" f
airlock90 src/Dodge/Room/Airlock.hs 166;" f
airlockCrystal src/Dodge/Room/Airlock.hs 205;" f
airlockDoor src/Dodge/Room/Airlock.hs 94;" f
airlockDoubleDoor src/Dodge/Room/Airlock.hs 97;" f
airlockSimple src/Dodge/Room/Airlock.hs 109;" f
airlockZ src/Dodge/Room/Airlock.hs 134;" f
airlock src/Dodge/Room/Airlock.hs 23;" f
airlock0 src/Dodge/Room/Airlock.hs 67;" f
airlock90 src/Dodge/Room/Airlock.hs 165;" f
airlockCrystal src/Dodge/Room/Airlock.hs 204;" f
airlockDoor src/Dodge/Room/Airlock.hs 93;" f
airlockDoubleDoor src/Dodge/Room/Airlock.hs 96;" f
airlockSimple src/Dodge/Room/Airlock.hs 108;" f
airlockZ src/Dodge/Room/Airlock.hs 133;" f
allVisibleWalls src/Dodge/Base/Collide.hs 215;" f
alongSegBy src/Geometry.hs 41;" f
alteRifle src/Dodge/Item/Held/Cane.hs 22;" f
ammoMagInfo src/Dodge/Item/Info.hs 49;" f
ammoMagSPic src/Dodge/Item/Draw/SPic.hs 145;" f
amr src/Dodge/Item/Held/Rod.hs 34;" f
anRoom src/Dodge/Floor.hs 124;" f
anRoom src/Dodge/Floor.hs 117;" f
analyser src/Dodge/Placement/Instance/Analyser.hs 12;" f
analyserByDoor src/Dodge/Room/LasTurret.hs 121;" f
analyserByDoorWithPrompt src/Dodge/Room/LasTurret.hs 124;" f
@@ -2665,18 +2665,18 @@ arms src/Dodge/Creature/Picture.hs 72;" f
arrow src/Picture/Composite.hs 19;" f
arrowPath src/Picture/Composite.hs 8;" f
assignHotkey src/Dodge/AssignHotkey.hs 9;" f
assignPushDoors src/Dodge/LevelGen.hs 45;" f
assignPushDoors src/Dodge/LevelGen.hs 44;" f
atFstLnkOut src/Dodge/PlacementSpot.hs 221;" f
atFstLnkOutShiftBy src/Dodge/PlacementSpot.hs 240;" f
atFstLnkOutShiftInward src/Dodge/PlacementSpot.hs 243;" f
atNthLinkOut src/Dodge/PlacementSpot.hs 224;" f
atNthLnkOutShiftBy src/Dodge/PlacementSpot.hs 227;" f
atNthLnkOutShiftInward src/Dodge/PlacementSpot.hs 246;" f
attachBranch src/Dodge/Tree/Compose.hs 84;" f
attachBranch src/Dodge/Tree/Compose.hs 83;" f
attachInfo src/Dodge/Item/Info.hs 58;" f
attachList' src/Dodge/Tree/Compose.hs 81;" f
attachOnward src/Dodge/Tree/Compose.hs 96;" f
attachOnward' src/Dodge/Tree/Compose.hs 99;" f
attachList src/Dodge/Tree/Compose.hs 80;" f
attachOnward src/Dodge/Tree/Compose.hs 95;" f
attachOnward' src/Dodge/Tree/Compose.hs 98;" f
attachTree src/Dodge/Tree/Compose.hs 38;" f
attentionViewPoint src/Dodge/Creature/ReaderUpdate.hs 68;" f
attribSize src/Shader/Compile.hs 306;" f
@@ -2769,7 +2769,7 @@ bloodShort8S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 598;" f
blowTorch src/Dodge/Item/Held/SprayGuns.hs 43;" f
blue src/Color.hs 16;" f
blunderbuss src/Dodge/Item/Held/Cone.hs 14;" f
bossKeyItems src/Dodge/LockAndKey.hs 13;" f
bossKeyItems src/Dodge/LockAndKey.hs 12;" f
bossRoom src/Dodge/Room/Boss.hs 60;" f
bounceDir src/Dodge/Bullet.hs 109;" f
bouncePoint src/Dodge/Base/Collide.hs 84;" f
@@ -2941,11 +2941,11 @@ combineTree src/Dodge/Tree/Compose.hs 67;" f
commandColor src/Dodge/Terminal.hs 114;" f
commonPrefix src/Dodge/Debug/Terminal.hs 148;" f
comp src/Quaternion.hs 65;" f
compactDraw src/Dodge/LevelGen.hs 96;" f
compactDraw' src/Dodge/LevelGen.hs 107;" f
compactDrawTree src/Dodge/LevelGen.hs 90;" f
compactDraw src/Dodge/LevelGen.hs 95;" f
compactDraw' src/Dodge/LevelGen.hs 106;" f
compactDrawTree src/Dodge/LevelGen.hs 89;" f
compileAndCheckShader src/Shader/Compile.hs 277;" f
composeNode src/Dodge/Tree/Compose.hs 77;" f
composeNode src/Dodge/Tree/Compose.hs 76;" f
composeTree src/Dodge/Tree/Compose.hs 47;" f
computerBeepingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 640;" f
conEffects src/Dodge/Concurrent.hs 12;" f
@@ -2969,7 +2969,7 @@ corDoor src/Dodge/Room/Room.hs 375;" f
cornerList src/Preload/Render.hs 198;" f
corpseOrGib src/Dodge/Creature/Update.hs 102;" f
corridor src/Dodge/Room/Corridor.hs 17;" f
corridorBoss src/Dodge/LockAndKey.hs 134;" f
corridorBoss src/Dodge/LockAndKey.hs 133;" f
corridorN src/Dodge/Room/Corridor.hs 52;" f
corridorWallN src/Dodge/Room/Corridor.hs 71;" f
crAdd src/Dodge/Room/RezBox.hs 115;" f
@@ -3118,7 +3118,7 @@ debugSelectCreatureMessage src/Dodge/Debug.hs 79;" f
decodeSensorType src/Dodge/Terminal.hs 72;" f
decomposeSelfTree src/Dodge/Tree/Compose.hs 61;" f
decomposeTree src/Dodge/Tree/Compose.hs 58;" f
decontamRoom src/Dodge/Room/Airlock.hs 29;" f
decontamRoom src/Dodge/Room/Airlock.hs 28;" f
decoratedBlock src/Dodge/Placement/Instance/Block.hs 10;" f
decorationToShape src/Dodge/Placement/TopDecoration.hs 9;" f
decreaseAwareness src/Dodge/Creature/Perception.hs 119;" f
@@ -3649,10 +3649,10 @@ gameplayMenu src/Dodge/Menu.hs 136;" f
gameplayMenuOptions src/Dodge/Menu.hs 139;" f
gasType src/Dodge/HeldUse.hs 1141;" f
generateGenParams src/Dodge/LevelGen/LevelStructure.hs 23;" f
generateGraphs src/Dodge/LevelGen.hs 42;" f
generateGraphs src/Dodge/LevelGen.hs 41;" f
generateLayout src/Dodge/Layout/Generate.hs 10;" f
generateLevelFromRoomList src/Dodge/Layout.hs 33;" f
generateWorldFromSeed src/Dodge/LevelGen.hs 20;" f
generateWorldFromSeed src/Dodge/LevelGen.hs 19;" f
geom src/Shader/Data.hs 102;" f
geometryQuickCheckTests test/Spec.hs 55;" f
geometryTests test/Spec.hs 17;" f
@@ -3817,7 +3817,7 @@ initTexture2DArray src/Shader/AuxAddition.hs 31;" f
initTexture2DArrayData src/Shader/AuxAddition.hs 46;" f
initTexture2DArraySquare src/Shader/AuxAddition.hs 16;" f
initWallZoning src/Dodge/Wall/Zone.hs 12;" f
initialRoomTree src/Dodge/Floor.hs 31;" f
initialRoomTree src/Dodge/Floor.hs 24;" f
initialWorld src/Dodge/Initialisation.hs 15;" f
initialisePlaying src/Sound.hs 77;" f
initializeGLState src/Preload/Render.hs 216;" f
@@ -3836,7 +3836,7 @@ insertWall src/Dodge/Placement/PlaceSpot/Block.hs 122;" f
insertWallInZones src/Dodge/Wall/Zone.hs 20;" f
insertWalls src/Dodge/Placement/PlaceSpot/Block.hs 117;" f
insertWithNewKeys src/IntMapHelp.hs 70;" f
intAnno src/Dodge/Floor.hs 118;" f
intAnno src/Dodge/Floor.hs 111;" f
interactWithCloseObj src/Dodge/SelectedClose.hs 9;" f
interpWith src/Dodge/Creature/Boid.hs 11;" f
intersectCircSeg src/Geometry/Intersect.hs 335;" f
@@ -3947,7 +3947,7 @@ itemInternalValue src/Dodge/Item/Display.hs 34;" f
itemInvColor src/Dodge/Item/InventoryColor.hs 9;" f
itemInvLock src/Dodge/HeldUse.hs 429;" f
itemMuzzles src/Dodge/HeldUse.hs 161;" f
itemRooms src/Dodge/LockAndKey.hs 40;" f
itemRooms src/Dodge/LockAndKey.hs 39;" f
itemRotTreeSPic src/Dodge/Item/Draw/SPic.hs 27;" f
itemSPic src/Dodge/Item/Draw/SPic.hs 33;" f
itemScan src/Dodge/Item/Scope.hs 63;" f
@@ -3982,7 +3982,7 @@ k' src/ShortShow.hs 44;" f
keyCard src/Dodge/Item/Held/Utility.hs 20;" f
keyCardAnalyserByDoor src/Dodge/Room/LasTurret.hs 75;" f
keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 63;" f
keyCardRunPastRand src/Dodge/LockAndKey.hs 37;" f
keyCardRunPastRand src/Dodge/LockAndKey.hs 36;" f
keyPic src/Dodge/Item/Draw/SPic.hs 471;" f
keyholeCorridor src/Dodge/Room/Corridor.hs 39;" f
knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 638;" f
@@ -4003,7 +4003,7 @@ lasTurret src/Dodge/Placement/Instance/Turret.hs 40;" f
laser src/Dodge/Item/Held/BatteryGuns.hs 34;" f
lastMap src/Dodge/DoubleTree.hs 253;" f
launcherCrit src/Dodge/Creature/LauncherCrit.hs 12;" f
layoutLevelFromSeed src/Dodge/LevelGen.hs 50;" f
layoutLevelFromSeed src/Dodge/LevelGen.hs 49;" f
ldpSelection src/Dodge/Update/Input/ScreenLayer.hs 74;" f
ldtIL src/Dodge/DoubleTree.hs 225;" f
ldtPropagate src/Dodge/DoubleTree.hs 69;" f
@@ -4082,8 +4082,8 @@ locToTop src/Dodge/DoubleTree.hs 301;" f
locUp src/Dodge/DoubleTree.hs 272;" f
locUp' src/Dodge/DoubleTree.hs 288;" f
lockInv src/Dodge/Inventory/Lock.hs 9;" f
lockRoomKeyItems src/Dodge/LockAndKey.hs 26;" f
lockRoomMultiItems src/Dodge/LockAndKey.hs 16;" f
lockRoomKeyItems src/Dodge/LockAndKey.hs 25;" f
lockRoomMultiItems src/Dodge/LockAndKey.hs 15;" f
lockedStart src/Dodge/Room/RunPast.hs 34;" f
logistic src/Dodge/Base.hs 98;" f
longBlockedCorridor src/Dodge/Room/RoadBlock.hs 58;" f
@@ -4343,10 +4343,10 @@ numColor src/Color.hs 128;" f
numDrawableVertices src/Shader/Parameters.hs 34;" f
numGLushort src/Shader/Parameters.hs 29;" f
numLayers src/Picture/Data.hs 31;" f
numMetaTree src/Dodge/Tree/Compose.hs 120;" f
numMetaTree' src/Dodge/Tree/Compose.hs 123;" f
numSelfTree src/Dodge/Tree/Compose.hs 108;" f
numSelfTree' src/Dodge/Tree/Compose.hs 111;" f
numMetaTree src/Dodge/Tree/Compose.hs 119;" f
numMetaTree' src/Dodge/Tree/Compose.hs 122;" f
numSelfTree src/Dodge/Tree/Compose.hs 107;" f
numSelfTree' src/Dodge/Tree/Compose.hs 110;" f
numShads src/Picture/Data.hs 42;" f
numSubElements src/Shader/Parameters.hs 39;" f
numTraversable src/TreeHelp.hs 183;" f
@@ -4404,7 +4404,7 @@ pairsToSCC src/Dodge/Graph.hs 32;" f
paletteToColor src/Color.hs 58;" f
parseItem src/Dodge/Debug/Terminal.hs 62;" f
parseNum src/Dodge/Debug/Terminal.hs 77;" f
passthroughLockKeyLists src/Dodge/Floor.hs 127;" f
passthroughLockKeyLists src/Dodge/Floor.hs 120;" f
pathConnected src/Dodge/Room/CheckConsistency.hs 14;" f
pathEdgeObstructed src/Dodge/Path.hs 43;" f
pauseAndFloatCam src/Dodge/Camera.hs 10;" f
@@ -4554,7 +4554,7 @@ popScreen src/Dodge/Menu/PushPop.hs 6;" f
posRms src/Dodge/Tree/Shift.hs 44;" f
posSelSecYint src/Dodge/SelectionSections.hs 147;" f
positionRoomsFromTree src/Dodge/Tree/Shift.hs 35;" f
postGenerationProcessing src/Dodge/LevelGen.hs 36;" f
postGenerationProcessing src/Dodge/LevelGen.hs 35;" f
postUniverseLoadSideEffect src/Dodge/WorldLoad.hs 11;" f
postWorldLoad src/Dodge/WorldLoad.hs 15;" f
powerFakeout src/Dodge/Room/Start.hs 28;" f
@@ -4634,7 +4634,7 @@ putLitButOnPosExtTrig src/Dodge/Placement/Instance/Button.hs 103;" f
putLitButOnPosExtTrig' src/Dodge/Placement/Instance/Button.hs 106;" f
putMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 58;" f
putShape src/Dodge/Room/Foreground.hs 134;" f
putStrLnAppend src/Dodge/LevelGen.hs 84;" f
putStrLnAppend src/Dodge/LevelGen.hs 83;" f
putTerminal src/Dodge/Placement/Instance/Terminal.hs 55;" f
putTerminalFull src/Dodge/Placement/Instance/Terminal.hs 22;" f
putTerminalImediateAccess src/Dodge/Placement/Instance/Terminal.hs 17;" f
@@ -4754,7 +4754,7 @@ resumeSound src/Dodge/SoundLogic.hs 48;" f
retreatActionsPistol src/Dodge/Humanoid.hs 249;" f
retreatFireLauncher src/Dodge/Humanoid.hs 270;" f
retreatPointForFrom src/Dodge/Creature/Impulse/Flee.hs 7;" f
reversePair src/Dodge/LevelGen.hs 87;" f
reversePair src/Dodge/LevelGen.hs 86;" f
rewinder src/Dodge/Item/Held/Utility.hs 36;" f
rezBox src/Dodge/Room/RezBox.hs 31;" f
rezBox' src/Dodge/Room/RezBox.hs 46;" f
@@ -4902,12 +4902,12 @@ selSecSelSize src/Dodge/SelectionSections.hs 143;" f
selSecYint src/Dodge/SelectionSections.hs 152;" f
selectCreatureDebugItem src/Dodge/Debug.hs 65;" f
selectedItemScroll src/Dodge/Update/Scroll.hs 51;" f
sensAboveDoor src/Dodge/Room/SensorDoor.hs 54;" f
sensInsideDoor src/Dodge/Room/SensorDoor.hs 60;" f
sensAboveDoor src/Dodge/Room/SensorDoor.hs 53;" f
sensInsideDoor src/Dodge/Room/SensorDoor.hs 59;" f
senseDamage src/Dodge/Machine/Update.hs 209;" f
sensorReqToString src/Dodge/Machine/Update.hs 194;" f
sensorRoom src/Dodge/Room/SensorDoor.hs 27;" f
sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 47;" f
sensorRoom src/Dodge/Room/SensorDoor.hs 26;" f
sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 46;" f
sensorSPic src/Dodge/Machine/Draw.hs 81;" f
sensorTut src/Dodge/Room/Tutorial.hs 159;" f
sensorTypeDamages src/Dodge/Machine/Update.hs 228;" f
@@ -5030,7 +5030,7 @@ showAttachItem src/Dodge/Item/Display.hs 92;" f
showEnabledDebugs src/Dodge/Debug/Picture.hs 155;" f
showEquipItem src/Dodge/Item/Display.hs 107;" f
showInt src/Dodge/Item/Info.hs 75;" f
showIntsString src/Dodge/Tree/Compose.hs 130;" f
showIntsString src/Dodge/Tree/Compose.hs 129;" f
showInventoryPathing src/Dodge/Item/Display.hs 86;" f
showManObj src/Dodge/TestString.hs 45;" f
showTerminalError src/Dodge/Debug/Terminal.hs 80;" f
@@ -5064,7 +5064,7 @@ slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 171;" f
smallBattery src/Dodge/Item/Ammo.hs 60;" f
smallBranch src/Dodge/Tree/GenerateStructure.hs 32;" f
smallChaseCrit src/Dodge/Creature/ChaseCrit.hs 14;" f
smallDrawTree src/Dodge/LevelGen.hs 93;" f
smallDrawTree src/Dodge/LevelGen.hs 92;" f
smallGlass1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 470;" f
smallGlass2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 646;" f
smallGlass3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 518;" f
@@ -5075,7 +5075,7 @@ smg src/Dodge/Item/Held/Stick.hs 58;" f
smokeReducer src/Dodge/Item/Scope.hs 162;" f
sndV2 src/Geometry/Data.hs 73;" f
sniperRifle src/Dodge/Item/Held/Rod.hs 44;" f
someCrits src/Dodge/LockAndKey.hs 121;" f
someCrits src/Dodge/LockAndKey.hs 120;" f
soundAngle src/Dodge/SoundLogic.hs 163;" f
soundContinue src/Dodge/SoundLogic.hs 131;" f
soundContinueVol src/Dodge/SoundLogic.hs 145;" f
@@ -5189,7 +5189,7 @@ switchDoor src/Dodge/Placement/Instance/Door.hs 104;" f
switchWallCol src/Dodge/Default/Door.hs 12;" f
t src/ShortShow.hs 44;" f
tEast src/Dodge/Room/Corridor.hs 90;" f
tToBTree src/Dodge/Tree/Compose.hs 93;" f
tToBTree src/Dodge/Tree/Compose.hs 92;" f
tWest src/Dodge/Room/Corridor.hs 115;" f
tabComplete src/Dodge/Terminal.hs 117;" f
tabComplete' src/Dodge/Terminal.hs 123;" f
@@ -5288,7 +5288,7 @@ toColor8 src/Color.hs 148;" f
toFloatVAs src/Shader/Compile.hs 211;" f
toLabel src/Dodge/Cleat.hs 16;" f
toMultiset src/Multiset.hs 64;" f
toOnward src/Dodge/Tree/Compose.hs 102;" f
toOnward src/Dodge/Tree/Compose.hs 101;" f
toTopLeft src/Dodge/Render/List.hs 218;" f
toV2 src/Geometry/Data.hs 54;" f
toV3 src/Geometry/Data.hs 57;" f
@@ -5383,7 +5383,7 @@ turretItemOffset src/Dodge/Item/HeldOffset.hs 21;" f
tutAnoTree src/Dodge/Room/Tutorial.hs 39;" f
tutDrop src/Dodge/Room/Tutorial.hs 67;" f
tutRezBox src/Dodge/Room/Tutorial.hs 169;" f
tutRoomTree src/Dodge/Floor.hs 22;" f
tutRoomTree src/Dodge/Floor.hs 21;" f
tutRooms src/Dodge/Room/Tutorial.hs 100;" f
tutorialMessage1 src/Dodge/Room/Tutorial.hs 191;" f
tweenAngles src/Geometry/Vector.hs 195;" f