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 , lasCenRunClose
-- , passthroughLockKeyLists lockRoomKeyItems itemRooms -- , passthroughLockKeyLists lockRoomKeyItems itemRooms
, tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor) , tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
-- , tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor) --l-- , tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
-- , tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor) --l-- , tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
-- , passthroughLockKeyLists --l-- , passthroughLockKeyLists
-- [(sensorRoomRunPast ElectricSensor, takeOne --l-- [(sensorRoomRunPast ElectricSensor, takeOne
-- [-- CRAFT (ENERGYBALLCRAFT TeslaBall) , --l-- [-- CRAFT (ENERGYBALLCRAFT TeslaBall) ,
-- HELD SPARKGUN])] --l-- HELD SPARKGUN])]
-- itemRooms --l-- itemRooms
-- , tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor) --l-- , tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
-- , tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor) --l-- , tToBTree "cor" . return <$> shuffleLinks (cleatOnward corridor)
, tToBTree "sdr" . return . cleatOnward <$> --l , tToBTree "sdr" . return . cleatOnward <$>
(shuffleLinks =<< distributerRoom BulletAmmo 100000) --l (shuffleLinks =<< distributerRoom BulletAmmo 100000)
-- , return $ tToBTree "cor" $ return $ cleatOnward corridor --l-- , return $ tToBTree "cor" $ return $ cleatOnward corridor
-- --, tToBTree "sdr" . return . cleatOnward <$> slowDoorRoom --l-- --, tToBTree "sdr" . return . cleatOnward <$> slowDoorRoom
---- , tToBTree "sr" . return . cleatOnward <$> tanksRoom [] [] --l---- , tToBTree "sr" . return . cleatOnward <$> tanksRoom [] []
-- , return $ tToBTree "door" $ return $ cleatOnward door --l-- , return $ tToBTree "door" $ return $ cleatOnward door
-- , return $ tToBTree "cor" $ return $ cleatOnward corridor --l-- , return $ tToBTree "cor" $ return $ cleatOnward corridor
-- , tToBTree "sdr" . return . cleatOnward <$> --l-- , tToBTree "sdr" . return . cleatOnward <$>
-- (shuffleLinks =<< tanksPipesRoom) --l-- (shuffleLinks =<< tanksPipesRoom)
-- , return $ tToBTree "cor" $ return $ cleatOnward corridor --l-- , return $ tToBTree "cor" $ return $ cleatOnward corridor
-- , return $ tToBTree "cor" $ return $ cleatOnward corridor --l-- , return $ tToBTree "cor" $ return $ cleatOnward corridor
-- , return $ tToBTree "cor" $ return $ cleatOnward corridor --l-- , return $ tToBTree "cor" $ return $ cleatOnward corridor
, return $ tToBTree "cor" $ return $ cleatOnward corridor --l , return $ tToBTree "cor" $ return $ cleatOnward corridor
, return $ tToBTree "cor" $ return $ cleatOnward corridor --l , return $ tToBTree "cor" $ return $ cleatOnward corridor
, return $ tToBTree "cor" $ return $ cleatOnward corridor --l , return $ tToBTree "cor" $ return $ cleatOnward corridor
, return $ tToBTree "door" $ return $ cleatOnward door --l , return $ tToBTree "door" $ return $ cleatOnward door
, tutHub --l , tutHub
, chasmSpitTerminal --l , chasmSpitTerminal
, tutLight --l , tutLight
, tutDrop --l , tutDrop
, return $ tToBTree "cor" $ return $ cleatOnward corridor --l , return $ tToBTree "cor" $ return $ cleatOnward corridor
---- , AnTree $ pickupTut ---- , AnTree $ pickupTut
---- , AnTree $ weaponTut ---- , AnTree $ weaponTut
] ]
+2 -1
View File
@@ -30,7 +30,8 @@ postWorldLoad rdata cw = do
glNamedBufferStorage newfloorbo (fromIntegral $ 8 * nfloorvxs * floatSize) floorptr 0 glNamedBufferStorage newfloorbo (fromIntegral $ 8 * nfloorvxs * floatSize) floorptr 0
nchasmvxs <- foldM (pokeChasm chptr) 0 (cw ^. uvWorld . cWorld . chasms) nchasmvxs <- foldM (pokeChasm chptr) 0 (cw ^. uvWorld . cWorld . chasms)
glBindBufferBase GL_SHADER_STORAGE_BUFFER 7 newchbo 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" checkGLError "during postWorldLoad"
return $ return $
cw & uvWorld . cWorld . numberFloorVerxs .~ nfloorvxs cw & uvWorld . cWorld . numberFloorVerxs .~ nfloorvxs