Make equipment indices point to item indices

This commit is contained in:
2025-08-26 23:57:02 +01:00
parent 49efe62910
commit 06d50ac752
18 changed files with 108 additions and 522 deletions
+2 -158
View File
@@ -1,163 +1,7 @@
Seed: 7114951007332849727 Seed: 7114951007332849727
Room layout (compact): Room layout (compact):
0,1,2,3,4,5,6 0
|
+- 7,8,9,10,11,12,13,14,15,16,17,18,19,20,21
| |
| +- 22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46
| | |
| | +- 47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64
| | |
| | 65,66
| |
| 67,68,69
|
70,71,72
Layout with room names: Layout with room names:
rezBox-0 Corridor-0
|
autoDoor-1
|
rectPillars-2
|
autoDoor-3
|
Corridor-4
|
autoDoor-5
|
ElecautoRect-6
|
+- triggerDoorRoom-7
| |
| autoDoor-8
| |
| autoDoor-9
| |
| Corridor-10
| |
| autoDoor-11
| |
| 8gon-12
| |
| triggerDoorRoom-13
| |
| autoDoor-14
| |
| autoDoor-15
| |
| Corridor-16
| |
| autoRect-17
| |
| autoDoor-18
| |
| Corridor-19
| |
| autoDoor-20
| |
| 6gon-21
| |
| +- triggerDoorRoom-22
| | |
| | autoDoor-23
| | |
| | autoDoor-24
| | |
| | Corridor-25
| | |
| | autoDoor-26
| | |
| | doorToggle-8gon-27
| | |
| | triggerDoorRoom-28
| | |
| | autoDoor-29
| | |
| | autoDoor-30
| | |
| | Corridor-31
| | |
| | autoRect-32
| | |
| | autoDoor-33
| | |
| | Corridor-34
| | |
| | autoDoor-35
| | |
| | Corridor-36
| | |
| | 8gon-37
| | |
| | triggerDoorRoom-38
| | |
| | autoDoor-39
| | |
| | autoDoor-40
| | |
| | Corridor-41
| | |
| | tanksRoom-42
| | |
| | autoDoor-43
| | |
| | Corridor-44
| | |
| | autoDoor-45
| | |
| | 8gon-46
| | |
| | +- triggerDoorRoom-47
| | | |
| | | autoDoor-48
| | | |
| | | autoDoor-49
| | | |
| | | Corridor-50
| | | |
| | | autoRect-51
| | | |
| | | defaultRoom-52
| | | |
| | | autoRect-53
| | | |
| | | defaultRoom-54
| | | |
| | | autoRect-55
| | | |
| | | autoDoor-56
| | | |
| | | Corridor-57
| | | |
| | | autoDoor-58
| | | |
| | | 8gon-59
| | | |
| | | triggerDoorRoom-60
| | | |
| | | autoDoor-61
| | | |
| | | autoDoor-62
| | | |
| | | Corridor-63
| | | |
| | | defaultRoom-64
| | |
| | autoDoor-65
| | |
| | Corridor-66
| |
| autoDoor-67
| |
| Corridor-68
| |
| autoRect-69
|
autoDoor-70
|
Corridor-71
|
defaultRoom-72
+1 -1
View File
@@ -1,4 +1,4 @@
Generating level with seed 7114951007332849727 Generating level with seed 7114951007332849727
After 1 attempt(s), Successful generation of level with seed 7114951007332849727 After 1 attempt(s), Successful generation of level with seed 7114951007332849727
73 rooms in total 1 rooms in total
+2 -266
View File
@@ -1,269 +1,5 @@
Seed: 7114951007332849727 Seed: 7114951007332849727
0:startThenWeaponRoom 0:teststart
|
1:corDoor
|
2:PassthroughLockKeyLists-HELD {_ibtHeld = SPARKGUN}
|
3:corDoor
|
4:lasSensorTurretTest
|
5:corDoor
|
6:anRoom
|
7:corDoor
|
8:PassthroughLockKeyLists-HELD {_ibtHeld = KEYCARD 0}
|
9:corDoor
|
10:warningRooms
|
11:corDoor
|
12:chaseCrit+armourChaseCrit rectRoom
|
13:corDoor
|
14:healthTest
|
15:corDoor
|
16:empty tanksRoom
|
17:corDoor
|
18:PassthroughLockKeyLists-HELD {_ibtHeld = RLAUNCHER}
|
19:corDoor
|
20:shootingRange
|
21:corDoor
|
22:lasSensorTurretTest
|
23:corDoor
|
24:randomFourCornerRoom
0:0:startThenWeaponRoom 0:0:Corridor
|
0:1:weaponBetweenPillars_BANGSTICK4
0:0:0:rezBox'
0:0:0:0:rezBox
|
0:0:0:1:autoDoor
0:1:0:rectPillars
1:0:corDoor
1:0:0:autoDoor
|
1:0:1:Corridor
2:0:PassthroughLockKeyLists-HELD {_ibtHeld = SPARKGUN}
2:0:0:RassThroughLockKeyLists
|
2:0:1:roomsContaining chaseCritchaseCritTRANSFORMERCANCAN
2:0:0:0:sensorRoomRunPast
2:0:0:0:0:autoDoor
|
2:0:0:0:1:ElecautoRect
|
+- 2:0:0:0:2:triggerDoorRoom
| |
| 2:0:0:0:3:autoDoor
|
2:0:0:0:4:autoDoor
|
2:0:0:0:5:Corridor
2:0:1:0:defaultRoom
3:0:corDoor
3:0:0:autoDoor
|
3:0:1:Corridor
4:0:lasSensorTurretTest
4:0:0:autoDoor
|
4:0:1:8gon
|
4:0:2:triggerDoorRoom
|
4:0:3:autoDoor
5:0:corDoor
5:0:0:autoDoor
|
5:0:1:Corridor
6:0:anRoom
6:0:0:autoRect
7:0:corDoor
7:0:0:autoDoor
|
7:0:1:Corridor
8:0:PassthroughLockKeyLists-HELD {_ibtHeld = KEYCARD 0}
8:0:0:RassThroughLockKeyLists
|
8:0:1:roomsContaining DEFAULTCRNAMEchaseCritchaseCritKEYCARD 0
8:0:0:0:keyCardRoomRunPast
8:0:0:0:0:autoDoor
|
8:0:0:0:1:6gon
|
+- 8:0:0:0:2:triggerDoorRoom
| |
| 8:0:0:0:3:autoDoor
|
8:0:0:0:4:autoDoor
|
8:0:0:0:5:Corridor
8:0:1:0:autoRect
9:0:corDoor
9:0:0:autoDoor
|
9:0:1:Corridor
10:0:warningRooms
10:0:0:autoDoor
|
10:0:1:doorToggle-8gon
|
10:0:2:triggerDoorRoom
|
10:0:3:autoDoor
11:0:corDoor
11:0:0:autoDoor
|
11:0:1:Corridor
12:0:chaseCrit+armourChaseCrit rectRoom
12:0:0:autoRect
13:0:corDoor
13:0:0:autoDoor
|
13:0:1:Corridor
14:0:healthTest
14:0:0:autoDoor
|
14:0:1:Corridor
|
14:0:2:8gon
|
14:0:3:triggerDoorRoom
|
14:0:4:autoDoor
15:0:corDoor
15:0:0:autoDoor
|
15:0:1:Corridor
16:0:empty tanksRoom
16:0:0:tanksRoom
17:0:corDoor
17:0:0:autoDoor
|
17:0:1:Corridor
18:0:PassthroughLockKeyLists-HELD {_ibtHeld = RLAUNCHER}
18:0:0:RassThroughLockKeyLists
|
18:0:1:roomsContaining chaseCritchaseCritTUBETUBEHARDWARE
18:0:0:0:lasCenSensEdge
18:0:0:0:0:autoDoor
|
18:0:0:0:1:8gon
|
+- 18:0:0:0:2:triggerDoorRoom
| |
| 18:0:0:0:3:autoDoor
|
18:0:0:0:4:autoDoor
|
18:0:0:0:5:Corridor
18:0:1:0:autoRect
19:0:corDoor
19:0:0:autoDoor
|
19:0:1:Corridor
20:0:shootingRange
20:0:0:autoRect
|
20:0:1:defaultRoom
|
20:0:2:autoRect
|
20:0:3:defaultRoom
|
20:0:4:autoRect
21:0:corDoor
21:0:0:autoDoor
|
21:0:1:Corridor
22:0:lasSensorTurretTest
22:0:0:autoDoor
|
22:0:1:8gon
|
22:0:2:triggerDoorRoom
|
22:0:3:autoDoor
23:0:corDoor
23:0:0:autoDoor
|
23:0:1:Corridor
24:0:defaultRoom
+1 -1
View File
File diff suppressed because one or more lines are too long
+21 -20
View File
@@ -110,9 +110,9 @@ startInvList = []
startInventory :: IM.IntMap Item startInventory :: IM.IntMap Item
startInventory = IM.fromList $ zip [0 ..] startInvList startInventory = IM.fromList $ zip [0 ..] startInvList
inventoryX :: Char -> [Item] inventoryX :: String -> [Item]
inventoryX c = case c of inventoryX c = case c of
'A' -> "A" ->
[introScan t | t <- [minBound..maxBound]] <> [introScan t | t <- [minBound..maxBound]] <>
[ flameThrower [ flameThrower
, fuelPack , fuelPack
@@ -122,7 +122,7 @@ inventoryX c = case c of
, unigate , unigate
, bingate , bingate
] ]
'B' -> "B" ->
[ wristArmour [ wristArmour
, wristArmour , wristArmour
, volleyGun 5 , volleyGun 5
@@ -146,15 +146,16 @@ inventoryX c = case c of
, makeTypeCraftNum 2 PIPE , makeTypeCraftNum 2 PIPE
, makeTypeCraftNum 1 CREATURESENSOR , makeTypeCraftNum 1 CREATURESENSOR
] ]
'C' -> map makeTypeCraft [minBound..maxBound] "BB" -> [ wristArmour , wristArmour]
'D' -> "C" -> map makeTypeCraft [minBound..maxBound]
"D" ->
[ blinker [ blinker
, unsafeBlinker , unsafeBlinker
, pulseChecker , pulseChecker
, detector WALLDETECTOR , detector WALLDETECTOR
, battery , battery
] ]
'E' -> [alteRifle "E" -> [alteRifle
, tinMag , tinMag
, tinMag , tinMag
] <> ] <>
@@ -165,7 +166,7 @@ inventoryX c = case c of
, makeTypeCraftNum 1 STEELDRUM , makeTypeCraftNum 1 STEELDRUM
, makeTypeCraftNum 1 MOTOR , makeTypeCraftNum 1 MOTOR
] ]
'F' -> fold "F" -> fold
[ makeTypeCraftNum 3 PIPE [ makeTypeCraftNum 3 PIPE
, makeTypeCraftNum 3 TUBE , makeTypeCraftNum 3 TUBE
, makeTypeCraftNum 3 HARDWARE , makeTypeCraftNum 3 HARDWARE
@@ -182,7 +183,7 @@ inventoryX c = case c of
, makeTypeCraftNum 3 LIGHTER , makeTypeCraftNum 3 LIGHTER
-- , makeTypeCraftNum 5 (ENERGYBALLCRAFT IncBall) -- , makeTypeCraftNum 5 (ENERGYBALLCRAFT IncBall)
] ]
'G' -> "G" ->
[ autoPistol [ autoPistol
, tinMag , tinMag
, pistol , pistol
@@ -196,19 +197,19 @@ inventoryX c = case c of
-- , makeTypeCraftNum 5 (BULBODYCRAFT BounceBullet) -- , makeTypeCraftNum 5 (BULBODYCRAFT BounceBullet)
-- , makeTypeCraftNum 5 (BULBODYCRAFT PenetrateBullet) -- , makeTypeCraftNum 5 (BULBODYCRAFT PenetrateBullet)
] ]
'H' -> [shatterGun] "H" -> [shatterGun]
'I' -> "I" ->
[ makeTypeCraft HARDDRIVE [ makeTypeCraft HARDDRIVE
, makeTypeCraft RAM , makeTypeCraft RAM
] <> fold ] <> fold
[ makeTypeCraftNum 2 MICROCHIP [ makeTypeCraftNum 2 MICROCHIP
] ]
'J' -> "J" ->
[ laser [ laser
, battery , battery
--, dualBeam --, dualBeam
] <> makeTypeCraftNum 10 TRANSFORMER ] <> makeTypeCraftNum 10 TRANSFORMER
'K' -> "K" ->
[ autoRifle [ autoRifle
, tinMag , tinMag
] <> fold ] <> fold
@@ -221,14 +222,14 @@ inventoryX c = case c of
, makeTypeCraftNum 1 SOUNDSENSOR , makeTypeCraftNum 1 SOUNDSENSOR
, makeTypeCraftNum 1 HEATSENSOR , makeTypeCraftNum 1 HEATSENSOR
] ]
'L' -> [burstRifle "L" -> [burstRifle
,tinMag ,tinMag
, bulletSynthesizer , bulletSynthesizer
, battery , battery
] ]
'M' -> stackedInventory "M" -> stackedInventory
'N' -> [zoomScope,laser,battery, sniperRifle, tinMag] "N" -> [zoomScope,laser,battery, sniperRifle, tinMag]
'O' -> [ rLauncherX 2 "O" -> [ rLauncherX 2
, shellMag , shellMag
, shellMag , shellMag
, rLauncherX 3 , rLauncherX 3
@@ -238,9 +239,9 @@ inventoryX c = case c of
, rifle , rifle
, shellMag , shellMag
] ]
'P' -> [burstRifle , tinMag, bulletSynthesizer, battery] "P" -> [burstRifle , tinMag, bulletSynthesizer, battery]
'T' -> testInventory "T" -> testInventory
'U' -> "U" ->
[targetingScope tt | tt <- [minBound .. maxBound]] [targetingScope tt | tt <- [minBound .. maxBound]]
<> <>
[ gyroscope [ gyroscope
@@ -266,7 +267,7 @@ inventoryX c = case c of
, stickyMod , stickyMod
] ]
<> [shellModule p | p <- [minBound .. maxBound]] <> [shellModule p | p <- [minBound .. maxBound]]
'V' -> "V" ->
[targetingScope tt | tt <- [minBound .. maxBound]] [targetingScope tt | tt <- [minBound .. maxBound]]
<> <>
[ battery [ battery
+2 -1
View File
@@ -175,8 +175,9 @@ dropItem :: Creature -> Int -> World -> World
dropItem cr invid w' = dropItem cr invid w' =
doanyitemdropeffect doanyitemdropeffect
. maybeshiftseldown . maybeshiftseldown
. rmInvItem (_crID cr) (NInt invid)
. copyItemToFloor (_crPos cr) itm -- . mayberemoveequip . copyItemToFloor (_crPos cr) itm -- . mayberemoveequip
. rmInvItem (_crID cr) (NInt invid) -- it is important
-- to do this before copying the item to the floor!
. soundStart (CrSound (_crID cr)) (_crPos cr) whiteNoiseFadeOutS Nothing . soundStart (CrSound (_crID cr)) (_crPos cr) whiteNoiseFadeOutS Nothing
$ w' $ w'
where where
+10 -9
View File
@@ -44,8 +44,8 @@ useItemLoc cr loc pt w
return $ w & pointerToItem itm . itUse . useToggle .~ not b return $ w & pointerToItem itm . itUse . useToggle .~ not b
| isJust $ itm ^? itType . ibtEquip | isJust $ itm ^? itType . ibtEquip
, pt == 0 , pt == 0
, Just invid' <- itm ^? itLocation . ilInvID = , Just invid <- itm ^? itLocation . ilInvID =
return $ toggleEquipmentAt invid' cr w return $ toggleEquipmentAt invid cr w
| otherwise = (\loc' -> useItemLoc cr loc' pt w) =<< locUp' loc | otherwise = (\loc' -> useItemLoc cr loc' pt w) =<< locUp' loc
where where
aimuse aimuse
@@ -68,26 +68,26 @@ toggleEquipmentAt invid cr w = case getEquipmentAllocation invid w of
DoNotMoveEquipment -> w DoNotMoveEquipment -> w
PutOnEquipment{_allocNewPos = newp} -> PutOnEquipment{_allocNewPos = newp} ->
w w
& crpoint . crEquipment . at newp ?~ invid & crpoint . crEquipment . at newp ?~ NInt itid
& toitems . ix itid . itLocation . ilEquipSite ?~ newp & toitems . ix itid . itLocation . ilEquipSite ?~ newp
& onequip itm cr & onequip itm cr
MoveEquipment{_allocNewPos = newp, _allocOldPos = oldp} -> MoveEquipment{_allocNewPos = newp, _allocOldPos = oldp} ->
w w
& crpoint . crEquipment . at newp ?~ invid & crpoint . crEquipment . at newp ?~ NInt itid
& crpoint . crEquipment . at oldp .~ Nothing & crpoint . crEquipment . at oldp .~ Nothing
& toitems . ix itid . itLocation . ilEquipSite ?~ newp & toitems . ix itid . itLocation . ilEquipSite ?~ newp
SwapEquipment{_allocNewPos = newp, _allocOldPos = oldp, _allocSwapID = sid} -> SwapEquipment{_allocNewPos = newp, _allocOldPos = oldp, _allocSwapID = sid} ->
w w
& crpoint . crEquipment . at newp ?~ invid & crpoint . crEquipment . at newp ?~ NInt itid
& crpoint . crEquipment . at oldp ?~ sid & crpoint . crEquipment . at oldp ?~ sid
& toitems . ix itid . itLocation . ilEquipSite ?~ newp & toitems . ix itid . itLocation . ilEquipSite ?~ newp
& toitems . ix (invidtoitid sid) . itLocation . ilEquipSite ?~ oldp & toitems . ix (_unNInt sid) . itLocation . ilEquipSite ?~ oldp
ReplaceEquipment{_allocNewPos = newp, _allocRemoveID = rid} -> ReplaceEquipment{_allocNewPos = newp, _allocRemoveID = rid} ->
w w
& crpoint . crEquipment . at newp ?~ invid & crpoint . crEquipment . at newp ?~ NInt itid
& toitems . ix itid . itLocation . ilEquipSite ?~ newp & toitems . ix itid . itLocation . ilEquipSite ?~ newp
& toitems . ix (invidtoitid rid) . itLocation . ilEquipSite .~ Nothing & toitems . ix (_unNInt rid) . itLocation . ilEquipSite .~ Nothing
& onremove (itmat rid) cr & onremove (itmat' rid) cr
& onequip itm cr & onequip itm cr
RemoveEquipment{_allocOldPos = oldp} -> RemoveEquipment{_allocOldPos = oldp} ->
w w
@@ -101,6 +101,7 @@ toggleEquipmentAt invid cr w = case getEquipmentAllocation invid w of
itid = invidtoitid invid itid = invidtoitid invid
crpoint = cWorld . lWorld . creatures . ix (_crID cr) crpoint = cWorld . lWorld . creatures . ix (_crID cr)
itmat i = w ^?! cWorld . lWorld . items . ix (invidtoitid i) itmat i = w ^?! cWorld . lWorld . items . ix (invidtoitid i)
itmat' i = w ^?! cWorld . lWorld . items . ix (_unNInt i)
itm = itmat invid itm = itmat invid
onequip itm' = effectOnEquip itm' onequip itm' = effectOnEquip itm'
onremove itm' = effectOnRemove itm' onremove itm' = effectOnRemove itm'
+1 -2
View File
@@ -116,8 +116,7 @@ twists m cr = crInAimStance TwoHandUnder m cr || crInAimStance TwoHandOver m cr
-- Not sure if it is a good idea -- Not sure if it is a good idea
crIsArmouredFrom :: IM.IntMap Item -> Point2 -> Creature -> Bool crIsArmouredFrom :: IM.IntMap Item -> Point2 -> Creature -> Bool
crIsArmouredFrom m p cr = fromMaybe False $ do crIsArmouredFrom m p cr = fromMaybe False $ do
invid <- cr ^? crEquipment . ix OnChest NInt itid <- cr ^? crEquipment . ix OnChest
itid <- cr ^? crInv . ix invid
ittype <- m ^? ix itid . itType ittype <- m ^? ix itid . itType
return $ return $
EQUIP FRONTARMOUR == ittype EQUIP FRONTARMOUR == ittype
+1 -1
View File
@@ -48,7 +48,7 @@ data Creature = Creature
, _crHP :: Int , _crHP :: Int
, _crInv :: NewIntMap InvInt Int , _crInv :: NewIntMap InvInt Int
, _crManipulation :: Manipulation , _crManipulation :: Manipulation
, _crEquipment :: M.Map EquipSite (NewInt InvInt) , _crEquipment :: M.Map EquipSite (NewInt ItmInt)
, _crDamage :: [Damage] , _crDamage :: [Damage]
, _crPain :: Int , _crPain :: Int
, _crStance :: Stance , _crStance :: Stance
+2 -2
View File
@@ -29,11 +29,11 @@ data EquipmentAllocation
| SwapEquipment | SwapEquipment
{ _allocNewPos :: EquipSite { _allocNewPos :: EquipSite
, _allocOldPos :: EquipSite , _allocOldPos :: EquipSite
, _allocSwapID :: NewInt InvInt , _allocSwapID :: NewInt ItmInt
} }
| ReplaceEquipment | ReplaceEquipment
{ _allocNewPos :: EquipSite { _allocNewPos :: EquipSite
, _allocRemoveID :: NewInt InvInt , _allocRemoveID :: NewInt ItmInt
} }
| RemoveEquipment | RemoveEquipment
{ _allocOldPos :: EquipSite { _allocOldPos :: EquipSite
+1 -1
View File
@@ -28,7 +28,7 @@ applyTerminalString ss = case ss of
applyTerminalCommand :: String -> Universe -> Universe applyTerminalCommand :: String -> Universe -> Universe
applyTerminalCommand s = case s of applyTerminalCommand s = case s of
"NOCLIP" -> uvConfig . debug_booleans . at Noclip %~ toggleJust "NOCLIP" -> uvConfig . debug_booleans . at Noclip %~ toggleJust
['L', x] -> uvWorld %~ \w -> foldl' (flip createItemYou) w (inventoryX x) '-': xs -> uvWorld %~ \w -> foldl' (flip createItemYou) w (inventoryX xs)
-- (uvWorld . cWorld . lWorld %~ initSpecificCrItemLocations 0) -- (uvWorld . cWorld . lWorld %~ initSpecificCrItemLocations 0)
-- . (uvWorld . cWorld . lWorld . creatures . ix 0 . crInv .~ IM.fromList (zip [0 ..] $ inventoryX x)) -- . (uvWorld . cWorld . lWorld . creatures . ix 0 . crInv .~ IM.fromList (zip [0 ..] $ inventoryX x))
-- . (uvWorld . cWorld . lWorld . creatures . ix 0 . crInvCapacity .~ 50) -- . (uvWorld . cWorld . lWorld . creatures . ix 0 . crInvCapacity .~ 50)
+2 -3
View File
@@ -4,8 +4,8 @@ module Dodge.Floor (
tutRoomTree, tutRoomTree,
) where ) where
import Dodge.Room.Tutorial
import Dodge.Annotation.Data import Dodge.Annotation.Data
--import Dodge.Room.Tutorial
import Data.List (intersperse) import Data.List (intersperse)
import Dodge.Annotation import Dodge.Annotation
import Dodge.Cleat import Dodge.Cleat
@@ -24,8 +24,7 @@ initialRoomTree = annoToRoomTree initialAnoTree
--initialRoomTree = annoToRoomTree startWorldTreeTest --initialRoomTree = annoToRoomTree startWorldTreeTest
tutRoomTree :: State LayoutVars (MetaTree Room String) tutRoomTree :: State LayoutVars (MetaTree Room String)
--tutRoomTree = annoToRoomTree tutAnoTree tutRoomTree = annoToRoomTree tutAnoTree
tutRoomTree = annoToRoomTree initialAnoTree
--startWorldTreeTest :: Annotation --startWorldTreeTest :: Annotation
--startWorldTreeTest = --startWorldTreeTest =
+4 -3
View File
@@ -76,7 +76,7 @@ rmInvItem cid invid w =
& dounequipfunction --the ordering of these is & dounequipfunction --the ordering of these is
& pointcid . crInv %~ f -- important & pointcid . crInv %~ f -- important
& removeAnySlotEquipment & removeAnySlotEquipment
& pointcid . crEquipment . each %~ g & cWorld . lWorld . items . ix itid . itLocation . ilEquipSite .~ Nothing
& updateselection & updateselection
& updateselectionextra & updateselectionextra
& pointcid %~ updateRootItemID (w ^. cWorld . lWorld . items) & pointcid %~ updateRootItemID (w ^. cWorld . lWorld . items)
@@ -96,11 +96,12 @@ rmInvItem cid invid w =
itm = w ^?! cWorld . lWorld . items . ix itid itm = w ^?! cWorld . lWorld . items . ix itid
dounequipfunction = effectOnRemove itm cr dounequipfunction = effectOnRemove itm cr
removeAnySlotEquipment = fromMaybe id $ do removeAnySlotEquipment = fromMaybe id $ do
epos <- w ^? cWorld . lWorld . items . ix itid epos <- itm ^?
. itLocation itLocation
. ilEquipSite . ilEquipSite
. _Just . _Just
return $ pointcid . crEquipment . at epos .~ Nothing return $ pointcid . crEquipment . at epos .~ Nothing
-- return $ pointcid . crEquipment .~ mempty
maxk = fmap fst $ IM.lookupMax $ _unNIntMap $ cr ^. crInv maxk = fmap fst $ IM.lookupMax $ _unNIntMap $ cr ^. crInv
f inv = f inv =
let (xs, ys) = IM.split (_unNInt invid) $ _unNIntMap inv let (xs, ys) = IM.split (_unNInt invid) $ _unNIntMap inv
+4 -3
View File
@@ -49,9 +49,9 @@ chooseFreeSite cr = fromMaybe 0 . findIndex hasnoequipment
getEquipmentAllocation :: NewInt InvInt -> World -> EquipmentAllocation getEquipmentAllocation :: NewInt InvInt -> World -> EquipmentAllocation
getEquipmentAllocation invid w = fromMaybe DoNotMoveEquipment $ do getEquipmentAllocation invid w = fromMaybe DoNotMoveEquipment $ do
esite <- you w ^? crInv . ix invid >>= \k -> w ^? cWorld . lWorld . items . ix k >>= equipType-- . itUse . uequipEffect . eeType itid <- you w ^? crInv . ix invid
i <- esite <- w ^? cWorld . lWorld . items . ix itid >>= equipType
w ^? rbOptions . opSel i <- w ^? rbOptions . opSel
<|> Just (chooseEquipPosition (w ^. cWorld . lWorld . items) (you w) (eqSiteToPositions esite)) <|> Just (chooseEquipPosition (w ^. cWorld . lWorld . items) (you w) (eqSiteToPositions esite))
es <- eqSiteToPositions esite ^? ix i es <- eqSiteToPositions esite ^? ix i
return $ case you w ^? crInv . ix invid >>= \k -> w ^? cWorld . lWorld . items . ix k . itLocation . ilEquipSite . _Just of return $ case you w ^? crInv . ix invid >>= \k -> w ^? cWorld . lWorld . items . ix k . itLocation . ilEquipSite . _Just of
@@ -76,6 +76,7 @@ getEquipmentAllocation invid w = fromMaybe DoNotMoveEquipment $ do
, _allocRemoveID = _crEquipment (you w) M.! es , _allocRemoveID = _crEquipment (you w) M.! es
} }
Nothing -> PutOnEquipment{_allocNewPos = es} Nothing -> PutOnEquipment{_allocNewPos = es}
where
eqSiteToPositions :: EquipType -> [EquipSite] eqSiteToPositions :: EquipType -> [EquipSite]
eqSiteToPositions es = case es of eqSiteToPositions es = case es of
+2 -3
View File
@@ -298,9 +298,8 @@ drawRBOptions cfig w = fold $ do
maybebottomborder a b curpos maybebottomborder a b curpos
| a == b - 1 = listCursorChooseBorderScale 0 1 (bc South) curpos 0 white 7 1 | a == b - 1 = listCursorChooseBorderScale 0 1 (bc South) curpos 0 white 7 1
| otherwise = mempty | otherwise = mempty
otheritem j = fromMaybe "" $ do otheritem (NInt j) = fromMaybe "" $ do
itid <- you w ^? crInv . ix j itype <- w ^? cWorld . lWorld . items . ix j . itType
itype <- w ^? cWorld . lWorld . items . ix itid . itType
return $ itemBaseName itype return $ itemBaseName itype
equipAllocString :: EquipmentAllocation -> String equipAllocString :: EquipmentAllocation -> String
+9 -9
View File
@@ -1,9 +1,9 @@
module Dodge.Room.Tutorial (tutAnoTree,tutRezBox) where module Dodge.Room.Tutorial where
import Dodge.Room.Corridor import Dodge.Room.Corridor
import Dodge.Room.Airlock import Dodge.Room.Airlock
import Dodge.Room.RoadBlock import Dodge.Room.RoadBlock
import Dodge.Room.Room --import Dodge.Room.Room
import Dodge.Item.Held.Cane import Dodge.Item.Held.Cane
import Dodge.Item.Ammo import Dodge.Item.Ammo
import Dodge.Annotation.Data import Dodge.Annotation.Data
@@ -44,13 +44,13 @@ tutAnoTree :: Annotation
tutAnoTree = tutAnoTree =
OnwardList $ OnwardList $
[ AnTree $ return $ tToBTree "teststart" $ return $ cleatOnward corridor [ AnTree $ return $ tToBTree "teststart" $ return $ cleatOnward corridor
, AnTree $ tutDrop -- , AnTree $ tutDrop
-- , AnTree $ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox ---- , AnTree $ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox
, AnTree corDoor -- , AnTree corDoor
, AnTree $ tutRooms -- , AnTree $ tutRooms
, AnTree $ tutDrop -- , AnTree $ tutDrop
-- , AnTree $ pickupTut ---- , AnTree $ pickupTut
-- , AnTree $ weaponTut ---- , AnTree $ weaponTut
] ]
tutDrop :: State LayoutVars (MetaTree Room String) tutDrop :: State LayoutVars (MetaTree Room String)
+5 -1
View File
@@ -31,7 +31,11 @@ import NewInt
import Data.Foldable import Data.Foldable
testStringInit :: Universe -> [String] testStringInit :: Universe -> [String]
testStringInit _ = mempty testStringInit u = map show
( u ^.. uvWorld . cWorld . lWorld . items . each . itLocation . ilEquipSite)
<> ["---"] <> map show
( u ^.. uvWorld . cWorld . lWorld . items . each . itID)
<> ["---"] <> map show (M.toList $ fold $ u ^? uvWorld . cWorld . lWorld . creatures . ix 0 . crEquipment)
-- map f (IM.toList $ u ^. uvWorld . cWorld . lWorld . items) -- map f (IM.toList $ u ^. uvWorld . cWorld . lWorld . items)
-- <> ["---"] -- <> ["---"]
-- <> map show (IM.toList . fold $ u ^? uvWorld . cWorld . lWorld . creatures . ix 0 . crInv . unNIntMap) -- <> map show (IM.toList . fold $ u ^? uvWorld . cWorld . lWorld . creatures . ix 0 . crInv . unNIntMap)
+38 -38
View File
@@ -2631,7 +2631,7 @@ alteRifle src/Dodge/Item/Held/Cane.hs 22;" f
ammoMagInfo src/Dodge/Item/Info.hs 49;" f ammoMagInfo src/Dodge/Item/Info.hs 49;" f
ammoMagSPic src/Dodge/Item/Draw/SPic.hs 145;" f ammoMagSPic src/Dodge/Item/Draw/SPic.hs 145;" f
amr src/Dodge/Item/Held/Rod.hs 34;" f amr src/Dodge/Item/Held/Rod.hs 34;" f
anRoom src/Dodge/Floor.hs 131;" f anRoom src/Dodge/Floor.hs 130;" f
analyser src/Dodge/Placement/Instance/Analyser.hs 10;" f analyser src/Dodge/Placement/Instance/Analyser.hs 10;" f
analyserByDoor src/Dodge/Room/LasTurret.hs 93;" f analyserByDoor src/Dodge/Room/LasTurret.hs 93;" f
analyserByNthLink src/Dodge/Room/LasTurret.hs 78;" f analyserByNthLink src/Dodge/Room/LasTurret.hs 78;" f
@@ -2841,9 +2841,9 @@ centroid src/Geometry/Polygon.hs 136;" f
centroidNum src/Geometry/Polygon.hs 139;" f centroidNum src/Geometry/Polygon.hs 139;" f
chainCreatureUpdates src/Dodge/Creature/ChainUpdates.hs 6;" f chainCreatureUpdates src/Dodge/Creature/ChainUpdates.hs 6;" f
chainPairs src/Geometry.hs 363;" f chainPairs src/Geometry.hs 363;" f
changeSwapOther src/Dodge/Inventory.hs 144;" f changeSwapOther src/Dodge/Inventory.hs 139;" f
changeSwapSel src/Dodge/Inventory.hs 137;" f changeSwapSel src/Dodge/Inventory.hs 132;" f
changeSwapWith src/Dodge/Inventory.hs 178;" f changeSwapWith src/Dodge/Inventory.hs 173;" f
charToTuple src/Picture/Base.hs 317;" f charToTuple src/Picture/Base.hs 317;" f
charToTupleGrad src/Picture/Text.hs 18;" f charToTupleGrad src/Picture/Text.hs 18;" f
chartreuse src/Color.hs 24;" f chartreuse src/Color.hs 24;" f
@@ -2954,7 +2954,7 @@ combinationsOf src/Multiset.hs 46;" f
combinationsTrie src/Dodge/Combine.hs 43;" f combinationsTrie src/Dodge/Combine.hs 43;" f
combineAwareness src/Dodge/Creature/Perception.hs 110;" f combineAwareness src/Dodge/Creature/Perception.hs 110;" f
combineFloors src/Dodge/Room/Procedural.hs 172;" f combineFloors src/Dodge/Room/Procedural.hs 172;" f
combineInventoryExtra src/Dodge/Render/HUD.hs 338;" f combineInventoryExtra src/Dodge/Render/HUD.hs 337;" f
combineItemListYouX src/Dodge/Combine.hs 35;" f combineItemListYouX src/Dodge/Combine.hs 35;" f
combineList src/Dodge/Combine.hs 21;" f combineList src/Dodge/Combine.hs 21;" f
combineRooms src/Dodge/Room/Procedural.hs 152;" f combineRooms src/Dodge/Room/Procedural.hs 152;" f
@@ -3021,19 +3021,19 @@ crMvAbsolute src/Dodge/Creature/Impulse/Movement.hs 28;" f
crMvBy src/Dodge/Creature/Impulse/Movement.hs 20;" f crMvBy src/Dodge/Creature/Impulse/Movement.hs 20;" f
crMvForward src/Dodge/Creature/Impulse/Movement.hs 42;" f crMvForward src/Dodge/Creature/Impulse/Movement.hs 42;" f
crMvType src/Dodge/Creature/MoveType.hs 6;" f crMvType src/Dodge/Creature/MoveType.hs 6;" f
crNearPoint src/Dodge/Creature/Test.hs 141;" f crNearPoint src/Dodge/Creature/Test.hs 140;" f
crNumFreeSlots src/Dodge/Inventory/CheckSlots.hs 25;" f crNumFreeSlots src/Dodge/Inventory/CheckSlots.hs 25;" f
crOnWall src/Dodge/WallCreatureCollisions.hs 86;" f crOnWall src/Dodge/WallCreatureCollisions.hs 86;" f
crRad src/Dodge/Creature/Radius.hs 7;" f crRad src/Dodge/Creature/Radius.hs 7;" f
crSafeDistFromTarg src/Dodge/Creature/Test.hs 74;" f crSafeDistFromTarg src/Dodge/Creature/Test.hs 74;" f
crSetRoots src/Dodge/Inventory/Location.hs 54;" f crSetRoots src/Dodge/Inventory/Location.hs 55;" f
crShape src/Dodge/Creature/Shape.hs 8;" f crShape src/Dodge/Creature/Shape.hs 8;" f
crSpring src/Dodge/Update.hs 881;" f crSpring src/Dodge/Update.hs 881;" f
crStratConMatches src/Dodge/Creature/Test.hs 79;" f crStratConMatches src/Dodge/Creature/Test.hs 79;" f
crStrength src/Dodge/Creature/Statistics.hs 25;" f crStrength src/Dodge/Creature/Statistics.hs 25;" f
crUpdate' src/Dodge/Creature/Update.hs 57;" f crUpdate' src/Dodge/Creature/Update.hs 57;" f
crUpdateInvidLocations src/Dodge/Inventory/Location.hs 65;" f crUpdateInvidLocations src/Dodge/Inventory/Location.hs 66;" f
crUpdateItemLocations src/Dodge/Inventory/Location.hs 47;" f crUpdateItemLocations src/Dodge/Inventory/Location.hs 48;" f
crVocalizationSound src/Dodge/Creature/Vocalization.hs 13;" f crVocalizationSound src/Dodge/Creature/Vocalization.hs 13;" f
crWarningSounds src/Dodge/Creature/Vocalization.hs 23;" f crWarningSounds src/Dodge/Creature/Vocalization.hs 23;" f
crWlPbHit src/Dodge/WorldEvent/ThingsHit.hs 41;" f crWlPbHit src/Dodge/WorldEvent/ThingsHit.hs 41;" f
@@ -3408,8 +3408,8 @@ drawInputMenu src/Dodge/Render/MenuScreen.hs 22;" f
drawInspectWall src/Dodge/Debug/Picture.hs 244;" f drawInspectWall src/Dodge/Debug/Picture.hs 244;" f
drawInspectWalls src/Dodge/Debug/Picture.hs 232;" f drawInspectWalls src/Dodge/Debug/Picture.hs 232;" f
drawInventory src/Dodge/Render/HUD.hs 55;" f drawInventory src/Dodge/Render/HUD.hs 55;" f
drawItemChildrenConnect src/Dodge/Render/HUD.hs 325;" f drawItemChildrenConnect src/Dodge/Render/HUD.hs 324;" f
drawItemConnections src/Dodge/Render/HUD.hs 315;" f drawItemConnections src/Dodge/Render/HUD.hs 314;" f
drawJumpDown src/Dodge/Render/Picture.hs 191;" f drawJumpDown src/Dodge/Render/Picture.hs 191;" f
drawLabCrossCol src/Dodge/Render/Label.hs 8;" f drawLabCrossCol src/Dodge/Render/Label.hs 8;" f
drawLampCover src/Dodge/Prop/Draw.hs 55;" f drawLampCover src/Dodge/Prop/Draw.hs 55;" f
@@ -3465,7 +3465,7 @@ drawSubInventory src/Dodge/Render/HUD.hs 159;" f
drawSwitch src/Dodge/Button/Draw.hs 16;" f drawSwitch src/Dodge/Button/Draw.hs 16;" f
drawSwitchWire src/Dodge/LevelGen/Switch.hs 24;" f drawSwitchWire src/Dodge/LevelGen/Switch.hs 24;" f
drawTargetingAR src/Dodge/Targeting/Draw.hs 20;" f drawTargetingAR src/Dodge/Targeting/Draw.hs 20;" f
drawTerminalDisplay src/Dodge/Render/HUD.hs 361;" f drawTerminalDisplay src/Dodge/Render/HUD.hs 360;" f
drawTeslaArc src/Dodge/Tesla/Draw.hs 9;" f drawTeslaArc src/Dodge/Tesla/Draw.hs 9;" f
drawText src/Picture/Base.hs 220;" f drawText src/Picture/Base.hs 220;" f
drawTitle src/Dodge/Render/MenuScreen.hs 55;" f drawTitle src/Dodge/Render/MenuScreen.hs 55;" f
@@ -3536,8 +3536,8 @@ enterCombineInv src/Dodge/DisplayInventory.hs 322;" f
epText src/Dodge/Inventory/SelectionList.hs 76;" f epText src/Dodge/Inventory/SelectionList.hs 76;" f
eqConstr src/SameConstr.hs 17;" f eqConstr src/SameConstr.hs 17;" f
eqPosText src/Dodge/Equipment/Text.hs 5;" f eqPosText src/Dodge/Equipment/Text.hs 5;" f
eqSiteToPositions src/Dodge/Inventory/RBList.hs 80;" f eqSiteToPositions src/Dodge/Inventory/RBList.hs 81;" f
equipAllocString src/Dodge/Render/HUD.hs 306;" f equipAllocString src/Dodge/Render/HUD.hs 305;" f
equipAttachPos src/Dodge/Item/Draw.hs 33;" f equipAttachPos src/Dodge/Item/Draw.hs 33;" f
equipBackgroundEffect src/Dodge/Euse.hs 15;" f equipBackgroundEffect src/Dodge/Euse.hs 15;" f
equipInfo src/Dodge/Item/Info.hs 141;" f equipInfo src/Dodge/Item/Info.hs 141;" f
@@ -3711,7 +3711,7 @@ getPJStabiliser src/Dodge/HeldUse.hs 1288;" f
getPretty src/AesonHelp.hs 8;" f getPretty src/AesonHelp.hs 8;" f
getPromptTM src/Dodge/Terminal/Type.hs 6;" f getPromptTM src/Dodge/Terminal/Type.hs 6;" f
getRootItemBounds src/Dodge/Render/HUD.hs 96;" f getRootItemBounds src/Dodge/Render/HUD.hs 96;" f
getRootItemInvID src/Dodge/Inventory/Location.hs 34;" f getRootItemInvID src/Dodge/Inventory/Location.hs 35;" f
getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f
getSmoothScrollValue src/Dodge/SmoothScroll.hs 21;" f getSmoothScrollValue src/Dodge/SmoothScroll.hs 21;" f
getSplitString src/Dodge/Debug/Terminal.hs 126;" f getSplitString src/Dodge/Debug/Terminal.hs 126;" f
@@ -3844,7 +3844,7 @@ initTexture2DArray src/Shader/AuxAddition.hs 31;" f
initTexture2DArrayData src/Shader/AuxAddition.hs 46;" f initTexture2DArrayData src/Shader/AuxAddition.hs 46;" f
initTexture2DArraySquare src/Shader/AuxAddition.hs 16;" f initTexture2DArraySquare src/Shader/AuxAddition.hs 16;" f
initWallZoning src/Dodge/Wall/Zone.hs 12;" f initWallZoning src/Dodge/Wall/Zone.hs 12;" f
initialAnoTree src/Dodge/Floor.hs 36;" f initialAnoTree src/Dodge/Floor.hs 35;" f
initialRoomTree src/Dodge/Floor.hs 22;" f initialRoomTree src/Dodge/Floor.hs 22;" f
initialWorld src/Dodge/Initialisation.hs 15;" f initialWorld src/Dodge/Initialisation.hs 15;" f
initialisePlaying src/Sound.hs 77;" f initialisePlaying src/Sound.hs 77;" f
@@ -3865,7 +3865,7 @@ insertWall src/Dodge/Placement/PlaceSpot/Block.hs 122;" f
insertWallInZones src/Dodge/Wall/Zone.hs 20;" f insertWallInZones src/Dodge/Wall/Zone.hs 20;" f
insertWalls src/Dodge/Placement/PlaceSpot/Block.hs 117;" f insertWalls src/Dodge/Placement/PlaceSpot/Block.hs 117;" f
insertWithNewKeys src/IntMapHelp.hs 70;" f insertWithNewKeys src/IntMapHelp.hs 70;" f
intAnno src/Dodge/Floor.hs 125;" f intAnno src/Dodge/Floor.hs 124;" f
interactWithCloseObj src/Dodge/SelectedClose.hs 9;" f interactWithCloseObj src/Dodge/SelectedClose.hs 9;" f
interpWith src/Dodge/Creature/Boid.hs 11;" f interpWith src/Dodge/Creature/Boid.hs 11;" f
intersectCircSeg src/Geometry/Intersect.hs 335;" f intersectCircSeg src/Geometry/Intersect.hs 335;" f
@@ -3898,15 +3898,15 @@ invDP src/Dodge/ListDisplayParams.hs 30;" f
invDT src/Dodge/Item/Grammar.hs 216;" f invDT src/Dodge/Item/Grammar.hs 216;" f
invDT' src/Dodge/Item/Grammar.hs 221;" f invDT' src/Dodge/Item/Grammar.hs 221;" f
invDimColor src/Dodge/DisplayInventory.hs 191;" f invDimColor src/Dodge/DisplayInventory.hs 191;" f
invHead src/Dodge/Render/HUD.hs 401;" f invHead src/Dodge/Render/HUD.hs 400;" f
invIMDT src/Dodge/Item/Grammar.hs 245;" f invIMDT src/Dodge/Item/Grammar.hs 245;" f
invIndents src/Dodge/Item/Grammar.hs 252;" f invIndents src/Dodge/Item/Grammar.hs 252;" f
invItemEffs src/Dodge/Creature/State.hs 62;" f invItemEffs src/Dodge/Creature/State.hs 62;" f
invItemLocUpdate src/Dodge/Creature/State.hs 70;" f invItemLocUpdate src/Dodge/Creature/State.hs 70;" f
invRootMap src/Dodge/Item/Grammar.hs 226;" f invRootMap src/Dodge/Item/Grammar.hs 226;" f
invSelectionItem src/Dodge/Inventory/SelectionList.hs 32;" f invSelectionItem src/Dodge/Inventory/SelectionList.hs 32;" f
invSetSelection src/Dodge/Inventory.hs 183;" f invSetSelection src/Dodge/Inventory.hs 178;" f
invSetSelectionPos src/Dodge/Inventory.hs 191;" f invSetSelectionPos src/Dodge/Inventory.hs 186;" f
invShiftPointBy src/Dodge/ShiftPoint.hs 8;" f invShiftPointBy src/Dodge/ShiftPoint.hs 8;" f
invSize src/Dodge/Inventory/CheckSlots.hs 33;" f invSize src/Dodge/Inventory/CheckSlots.hs 33;" f
inventoryX src/Dodge/Creature.hs 113;" f inventoryX src/Dodge/Creature.hs 113;" f
@@ -3921,7 +3921,7 @@ invertInventoryToMap src/Dodge/Combine.hs 56;" f
invisibleChaseCrit src/Dodge/Creature/ChaseCrit.hs 21;" f invisibleChaseCrit src/Dodge/Creature/ChaseCrit.hs 21;" f
invisibleWall src/Dodge/Placement/Instance/Wall.hs 16;" f invisibleWall src/Dodge/Placement/Instance/Wall.hs 16;" f
isAmmoIntLink src/Dodge/HeldUse.hs 710;" f isAmmoIntLink src/Dodge/HeldUse.hs 710;" f
isAnimate src/Dodge/Creature/Test.hs 144;" f isAnimate src/Dodge/Creature/Test.hs 143;" f
isCognizant src/Dodge/Creature/Perception.hs 106;" f isCognizant src/Dodge/Creature/Perception.hs 106;" f
isConnected src/Dodge/Inventory/Swap.hs 76;" f isConnected src/Dodge/Inventory/Swap.hs 76;" f
isElectrical src/Dodge/Machine/Update.hs 80;" f isElectrical src/Dodge/Machine/Update.hs 80;" f
@@ -4080,7 +4080,7 @@ listSelectionColorPicture src/Dodge/DisplayInventory.hs 307;" f
litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f
lmt src/MatrixHelper.hs 43;" f lmt src/MatrixHelper.hs 43;" f
lnkBothAnd src/Dodge/Room/Procedural.hs 121;" f lnkBothAnd src/Dodge/Room/Procedural.hs 121;" f
lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 390;" f lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 389;" f
lnkPosDir src/Dodge/RoomLink.hs 97;" f lnkPosDir src/Dodge/RoomLink.hs 97;" f
loadDodgeConfig src/Dodge/Config/Load.hs 9;" f loadDodgeConfig src/Dodge/Config/Load.hs 9;" f
loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f
@@ -4896,8 +4896,8 @@ screenPolygon src/Dodge/Base/Window.hs 17;" f
screenPolygonBord src/Dodge/Base/Window.hs 27;" f screenPolygonBord src/Dodge/Base/Window.hs 27;" f
screenPosAbs src/Dodge/ScreenPos.hs 15;" f screenPosAbs src/Dodge/ScreenPos.hs 15;" f
screenToWorldPos src/Dodge/Base/Coordinate.hs 51;" f screenToWorldPos src/Dodge/Base/Coordinate.hs 51;" f
scrollAugInvSel src/Dodge/Inventory.hs 194;" f scrollAugInvSel src/Dodge/Inventory.hs 189;" f
scrollAugNextInSection src/Dodge/Inventory.hs 207;" f scrollAugNextInSection src/Dodge/Inventory.hs 202;" f
scrollDebugInfoInt src/Dodge/Debug.hs 71;" f scrollDebugInfoInt src/Dodge/Debug.hs 71;" f
scrollRBOption src/Dodge/Update/Scroll.hs 217;" f scrollRBOption src/Dodge/Update/Scroll.hs 217;" f
scrollSelectionSections src/Dodge/SelectionSections.hs 28;" f scrollSelectionSections src/Dodge/SelectionSections.hs 28;" f
@@ -4919,11 +4919,11 @@ sectionsSizes src/Dodge/DisplayInventory.hs 206;" f
seedStartMenu src/Dodge/Menu.hs 82;" f seedStartMenu src/Dodge/Menu.hs 82;" f
seedStartOptions src/Dodge/Menu.hs 85;" f seedStartOptions src/Dodge/Menu.hs 85;" f
segOnCirc src/Geometry.hs 114;" f segOnCirc src/Geometry.hs 114;" f
selNumPos src/Dodge/Render/HUD.hs 450;" f selNumPos src/Dodge/Render/HUD.hs 449;" f
selNumPosCardinal src/Dodge/Render/HUD.hs 473;" f selNumPosCardinal src/Dodge/Render/HUD.hs 472;" f
selSecDrawCursor src/Dodge/Render/List.hs 126;" f selSecDrawCursor src/Dodge/Render/List.hs 126;" f
selSecDrawCursorAt src/Dodge/Render/List.hs 104;" f selSecDrawCursorAt src/Dodge/Render/List.hs 104;" f
selSecSelCol src/Dodge/Render/HUD.hs 504;" f selSecSelCol src/Dodge/Render/HUD.hs 503;" f
selSecSelSize src/Dodge/SelectionSections.hs 143;" f selSecSelSize src/Dodge/SelectionSections.hs 143;" f
selSecYint src/Dodge/SelectionSections.hs 152;" f selSecYint src/Dodge/SelectionSections.hs 152;" f
selectCreatureDebugItem src/Dodge/Debug.hs 55;" f selectCreatureDebugItem src/Dodge/Debug.hs 55;" f
@@ -4950,7 +4950,7 @@ setFallback src/Dodge/PlacementSpot.hs 132;" f
setInLinks src/Dodge/RoomLink.hs 51;" f setInLinks src/Dodge/RoomLink.hs 51;" f
setInLinksByType src/Dodge/RoomLink.hs 54;" f setInLinksByType src/Dodge/RoomLink.hs 54;" f
setInLinksPD src/Dodge/RoomLink.hs 74;" f setInLinksPD src/Dodge/RoomLink.hs 74;" f
setInvPosFromSS src/Dodge/Inventory/Location.hs 91;" f setInvPosFromSS src/Dodge/Inventory/Location.hs 92;" f
setLayer src/Picture/Base.hs 139;" f setLayer src/Picture/Base.hs 139;" f
setLinkType src/Dodge/RoomLink.hs 60;" f setLinkType src/Dodge/RoomLink.hs 60;" f
setLinkTypePD src/Dodge/RoomLink.hs 67;" f setLinkTypePD src/Dodge/RoomLink.hs 67;" f
@@ -5056,9 +5056,9 @@ showEquipItem src/Dodge/Item/Display.hs 107;" f
showInt src/Dodge/Item/Info.hs 75;" f showInt src/Dodge/Item/Info.hs 75;" f
showIntsString src/Dodge/Tree/Compose.hs 129;" f showIntsString src/Dodge/Tree/Compose.hs 129;" f
showInventoryPathing src/Dodge/Item/Display.hs 86;" f showInventoryPathing src/Dodge/Item/Display.hs 86;" f
showManObj src/Dodge/TestString.hs 75;" f showManObj src/Dodge/TestString.hs 79;" f
showTerminalError src/Dodge/Debug/Terminal.hs 78;" f showTerminalError src/Dodge/Debug/Terminal.hs 78;" f
showTimeFlow src/Dodge/TestString.hs 98;" f showTimeFlow src/Dodge/TestString.hs 102;" f
shrinkPolyOnEdges src/Geometry/Polygon.hs 142;" f shrinkPolyOnEdges src/Geometry/Polygon.hs 142;" f
shrinkVert src/Geometry/Polygon.hs 146;" f shrinkVert src/Geometry/Polygon.hs 146;" f
shuffle src/RandomHelp.hs 49;" f shuffle src/RandomHelp.hs 49;" f
@@ -5170,7 +5170,7 @@ ssfold src/FoldableHelp.hs 105;" f
stackPicturesAt src/Dodge/Render/List.hs 98;" f stackPicturesAt src/Dodge/Render/List.hs 98;" f
stackPicturesAtOff src/Dodge/Render/List.hs 101;" f stackPicturesAtOff src/Dodge/Render/List.hs 101;" f
stackText src/Picture/Base.hs 188;" f stackText src/Picture/Base.hs 188;" f
stackedInventory src/Dodge/Creature.hs 310;" f stackedInventory src/Dodge/Creature.hs 311;" f
startCr src/Dodge/Creature.hs 92;" f startCr src/Dodge/Creature.hs 92;" f
startCrafts src/Dodge/Room/Start.hs 93;" f startCrafts src/Dodge/Room/Start.hs 93;" f
startDrag src/Dodge/Update/Input/InGame.hs 280;" f startDrag src/Dodge/Update/Input/InGame.hs 280;" f
@@ -5206,7 +5206,7 @@ swapAnyExtraSelection src/Dodge/Inventory/Swap.hs 56;" f
swapInOutLinks src/Dodge/RoomLink.hs 80;" f swapInOutLinks src/Dodge/RoomLink.hs 80;" f
swapIndices src/ListHelp.hs 50;" f swapIndices src/ListHelp.hs 50;" f
swapInvItems src/Dodge/Inventory/Swap.hs 21;" f swapInvItems src/Dodge/Inventory/Swap.hs 21;" f
swapItemWith src/Dodge/Inventory.hs 167;" f swapItemWith src/Dodge/Inventory.hs 162;" f
swarmCrit src/Dodge/Creature/SwarmCrit.hs 10;" f swarmCrit src/Dodge/Creature/SwarmCrit.hs 10;" f
swarmUsingCenter src/Dodge/Creature/Boid.hs 172;" f swarmUsingCenter src/Dodge/Creature/Boid.hs 172;" f
switchDoor src/Dodge/Placement/Instance/Door.hs 96;" f switchDoor src/Dodge/Placement/Instance/Door.hs 96;" f
@@ -5257,7 +5257,7 @@ teslaGunPic src/Dodge/Item/Draw/SPic.hs 421;" f
teslaParams src/Dodge/Item/Held/BatteryGuns.hs 25;" f teslaParams src/Dodge/Item/Held/BatteryGuns.hs 25;" f
testCrossWalls src/Dodge/Room/Path.hs 47;" f testCrossWalls src/Dodge/Room/Path.hs 47;" f
testEvent src/Dodge/Event/Test.hs 9;" f testEvent src/Dodge/Event/Test.hs 9;" f
testInventory src/Dodge/Creature.hs 291;" f testInventory src/Dodge/Creature.hs 292;" f
testStringInit src/Dodge/TestString.hs 33;" f testStringInit src/Dodge/TestString.hs 33;" f
text src/Picture/Base.hs 193;" f text src/Picture/Base.hs 193;" f
textGrad src/Picture/Text.hs 5;" f textGrad src/Picture/Text.hs 5;" f
@@ -5319,9 +5319,9 @@ toV4 src/Geometry/Data.hs 60;" f
toggleCombineInv src/Dodge/DisplayInventory.hs 316;" f toggleCombineInv src/Dodge/DisplayInventory.hs 316;" f
toggleCommands src/Dodge/Terminal.hs 100;" f toggleCommands src/Dodge/Terminal.hs 100;" f
toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 66;" f toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 66;" f
toggleExamineInv src/Dodge/Creature/Impulse/UseItem.hs 108;" f toggleExamineInv src/Dodge/Creature/Impulse/UseItem.hs 109;" f
toggleJust src/MaybeHelp.hs 41;" f toggleJust src/MaybeHelp.hs 41;" f
toggleMapperInv src/Dodge/Creature/Impulse/UseItem.hs 113;" f toggleMapperInv src/Dodge/Creature/Impulse/UseItem.hs 114;" f
tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 642;" f tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 642;" f
tone440raiseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 664;" f tone440raiseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 664;" f
tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 606;" f tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 606;" f
@@ -5329,7 +5329,7 @@ tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 448;" f
topInvW src/Dodge/ListDisplayParams.hs 51;" f topInvW src/Dodge/ListDisplayParams.hs 51;" f
topPrismEdgeIndices src/Shader/Poke.hs 335;" f topPrismEdgeIndices src/Shader/Poke.hs 335;" f
topPrismIndices src/Shader/Poke.hs 410;" f topPrismIndices src/Shader/Poke.hs 410;" f
topTestPart src/Dodge/TestString.hs 71;" f topTestPart src/Dodge/TestString.hs 75;" f
torch src/Dodge/Item/Held/Utility.hs 23;" f torch src/Dodge/Item/Held/Utility.hs 23;" f
torchShape src/Dodge/Item/Draw/SPic.hs 290;" f torchShape src/Dodge/Item/Draw/SPic.hs 290;" f
torqueAmount src/Dodge/HeldUse.hs 573;" f torqueAmount src/Dodge/HeldUse.hs 573;" f
@@ -5455,7 +5455,7 @@ updateBulVel src/Dodge/Bullet.hs 56;" f
updateBullet src/Dodge/Bullet.hs 21;" f updateBullet src/Dodge/Bullet.hs 21;" f
updateBullets src/Dodge/Update.hs 576;" f updateBullets src/Dodge/Update.hs 576;" f
updateCamera src/Dodge/Update/Camera.hs 30;" f updateCamera src/Dodge/Update/Camera.hs 30;" f
updateCloseObjects src/Dodge/Inventory.hs 118;" f updateCloseObjects src/Dodge/Inventory.hs 113;" f
updateCloud src/Dodge/Update.hs 814;" f updateCloud src/Dodge/Update.hs 814;" f
updateClouds src/Dodge/Update.hs 682;" f updateClouds src/Dodge/Update.hs 682;" f
updateCombinePositioning src/Dodge/DisplayInventory.hs 39;" f updateCombinePositioning src/Dodge/DisplayInventory.hs 39;" f
@@ -5530,7 +5530,7 @@ updateRadarSweeps src/Dodge/Update.hs 676;" f
updateRandNode src/TreeHelp.hs 108;" f updateRandNode src/TreeHelp.hs 108;" f
updateRenderSplit appDodge/Main.hs 110;" f updateRenderSplit appDodge/Main.hs 110;" f
updateRightParentSF src/Dodge/Item/Grammar.hs 181;" f updateRightParentSF src/Dodge/Item/Grammar.hs 181;" f
updateRootItemID src/Dodge/Inventory/Location.hs 40;" f updateRootItemID src/Dodge/Inventory/Location.hs 41;" f
updateScopeZoom src/Dodge/Update/Scroll.hs 77;" f updateScopeZoom src/Dodge/Update/Scroll.hs 77;" f
updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f
updateSection src/Dodge/DisplayInventory.hs 263;" f updateSection src/Dodge/DisplayInventory.hs 263;" f