From 92891e291a3864fe3b2cfb525f6cb1ddf71ae2eb Mon Sep 17 00:00:00 2001 From: justin Date: Wed, 25 Feb 2026 20:07:19 +0000 Subject: [PATCH] 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. --- src/Dodge/Room/Tutorial.hs | 60 +++++++++++++++++++------------------- src/Dodge/WorldLoad.hs | 3 +- 2 files changed, 32 insertions(+), 31 deletions(-) diff --git a/src/Dodge/Room/Tutorial.hs b/src/Dodge/Room/Tutorial.hs index ec303fe6f..76b38301d 100644 --- a/src/Dodge/Room/Tutorial.hs +++ b/src/Dodge/Room/Tutorial.hs @@ -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 ] diff --git a/src/Dodge/WorldLoad.hs b/src/Dodge/WorldLoad.hs index 62f356f03..e04b4ce16 100644 --- a/src/Dodge/WorldLoad.hs +++ b/src/Dodge/WorldLoad.hs @@ -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