Hack fix bug when generating world with no chasms

Bug occured because we try to create an empty glNamedBufferStorage,
instead just create a dummy storage with space for one element.
This commit is contained in:
2026-02-25 20:07:19 +00:00
parent c2c139c8aa
commit 92891e291a
2 changed files with 32 additions and 31 deletions
+30 -30
View File
@@ -57,36 +57,36 @@ tutAnoTree = do
, lasCenRunClose
-- , passthroughLockKeyLists lockRoomKeyItems itemRooms
, tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
-- , tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
-- , tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
-- , passthroughLockKeyLists
-- [(sensorRoomRunPast ElectricSensor, takeOne
-- [-- CRAFT (ENERGYBALLCRAFT TeslaBall) ,
-- HELD SPARKGUN])]
-- itemRooms
-- , tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
-- , tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
, tToBTree "sdr" . return . cleatOnward <$>
(shuffleLinks =<< distributerRoom BulletAmmo 100000)
-- , return $ tToBTree "cor" $ return $ cleatOnward corridor
-- --, tToBTree "sdr" . return . cleatOnward <$> slowDoorRoom
---- , tToBTree "sr" . return . cleatOnward <$> tanksRoom [] []
-- , return $ tToBTree "door" $ return $ cleatOnward door
-- , return $ tToBTree "cor" $ return $ cleatOnward corridor
-- , tToBTree "sdr" . return . cleatOnward <$>
-- (shuffleLinks =<< tanksPipesRoom)
-- , return $ tToBTree "cor" $ return $ cleatOnward corridor
-- , return $ tToBTree "cor" $ return $ cleatOnward corridor
-- , return $ tToBTree "cor" $ return $ cleatOnward corridor
, return $ tToBTree "cor" $ return $ cleatOnward corridor
, return $ tToBTree "cor" $ return $ cleatOnward corridor
, return $ tToBTree "cor" $ return $ cleatOnward corridor
, return $ tToBTree "door" $ return $ cleatOnward door
, tutHub
, chasmSpitTerminal
, tutLight
, tutDrop
, return $ tToBTree "cor" $ return $ cleatOnward corridor
--l-- , tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
--l-- , tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
--l-- , passthroughLockKeyLists
--l-- [(sensorRoomRunPast ElectricSensor, takeOne
--l-- [-- CRAFT (ENERGYBALLCRAFT TeslaBall) ,
--l-- HELD SPARKGUN])]
--l-- itemRooms
--l-- , tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
--l-- , tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
--l , tToBTree "sdr" . return . cleatOnward <$>
--l (shuffleLinks =<< distributerRoom BulletAmmo 100000)
--l-- , return $ tToBTree "cor" $ return $ cleatOnward corridor
--l-- --, tToBTree "sdr" . return . cleatOnward <$> slowDoorRoom
--l---- , tToBTree "sr" . return . cleatOnward <$> tanksRoom [] []
--l-- , return $ tToBTree "door" $ return $ cleatOnward door
--l-- , return $ tToBTree "cor" $ return $ cleatOnward corridor
--l-- , tToBTree "sdr" . return . cleatOnward <$>
--l-- (shuffleLinks =<< tanksPipesRoom)
--l-- , return $ tToBTree "cor" $ return $ cleatOnward corridor
--l-- , return $ tToBTree "cor" $ return $ cleatOnward corridor
--l-- , return $ tToBTree "cor" $ return $ cleatOnward corridor
--l , return $ tToBTree "cor" $ return $ cleatOnward corridor
--l , return $ tToBTree "cor" $ return $ cleatOnward corridor
--l , return $ tToBTree "cor" $ return $ cleatOnward corridor
--l , return $ tToBTree "door" $ return $ cleatOnward door
--l , tutHub
--l , chasmSpitTerminal
--l , tutLight
--l , tutDrop
--l , return $ tToBTree "cor" $ return $ cleatOnward corridor
---- , AnTree $ pickupTut
---- , AnTree $ weaponTut
]
+2 -1
View File
@@ -30,7 +30,8 @@ postWorldLoad rdata cw = do
glNamedBufferStorage newfloorbo (fromIntegral $ 8 * nfloorvxs * floatSize) floorptr 0
nchasmvxs <- foldM (pokeChasm chptr) 0 (cw ^. uvWorld . cWorld . chasms)
glBindBufferBase GL_SHADER_STORAGE_BUFFER 7 newchbo
glNamedBufferStorage newchbo (fromIntegral $ 2 * nchasmvxs * floatSize) chptr 0
glNamedBufferStorage newchbo (fromIntegral $ 2 * (max 1 nchasmvxs) * floatSize) chptr 0
-- note the max 1, prevents trying to create empty buffer storage
checkGLError "during postWorldLoad"
return $
cw & uvWorld . cWorld . numberFloorVerxs .~ nfloorvxs