Correct loading of tile buffer when loading game

This commit is contained in:
2023-03-25 22:31:28 +00:00
parent da8a2bad6e
commit acc55f8d16
9 changed files with 114 additions and 117 deletions
+12 -7
View File
@@ -1,17 +1,22 @@
module Dodge.WorldLoad where
import Control.Lens
import Control.Monad
import Data.Preload.Render
import Dodge.Data.Universe
import Shader.Bind
import Shader.Data
import Shader.Poke.Floor
import Data.Preload.Render
import Dodge.Data.CWorld
import Control.Monad
import Control.Lens
postUniverseLoadSideEffect :: Universe -> Universe
postUniverseLoadSideEffect = (uvIOEffects %~ (\f uv -> (uvWorld . cWorld) (postWorldLoad (uv ^. preloadData . renderData)) uv >>= f))
postWorldLoad :: RenderData -> CWorld -> IO CWorld
postWorldLoad rdata cw = do
nfloorvxs <- foldM (pokeTile (rdata ^. floorVBO . vboPtr))
0
(cw ^. cwTiles)
nfloorvxs <-
foldM
(pokeTile (rdata ^. floorVBO . vboPtr))
0
(cw ^. cwTiles)
bufferPokedVBO (rdata ^. floorVBO) nfloorvxs
return $ cw & numberFloorVerxs .~ nfloorvxs