Skip to content

Commit

Permalink
Use same planet name on all levels of dungeons.
Browse files Browse the repository at this point in the history
  • Loading branch information
Christopher Lane Hinson committed Dec 2, 2010
1 parent 34a2ef5 commit a0da0d9
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 9 deletions.
2 changes: 1 addition & 1 deletion roguestar-engine/src/BeginGame.hs
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ startingEquipmentBySpecies Reptilian = [sphere Oxygen]

dbCreateStartingPlane :: Creature -> DB PlaneRef
dbCreateStartingPlane creature =
do dbNewPlane (Just "belhaven") (TerrainGenerationData {
do dbNewPlane "belhaven" (TerrainGenerationData {
tg_smootheness = 3,
tg_biome = homeBiome $ creature_species creature,
tg_placements = [] }) TheUniverse
Expand Down
6 changes: 3 additions & 3 deletions roguestar-engine/src/Plane.hs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
module Plane
(dbNewPlane,
planetName,
randomPlanetName,
dbGetCurrentPlane,
dbDistanceBetweenSquared,
pickRandomClearSite_withTimeout,
Expand Down Expand Up @@ -29,15 +30,14 @@ import FactionData
import qualified Data.ByteString.Char8 as B
import Logging

dbNewPlane :: (PlaneLocation l) => Maybe B.ByteString -> TerrainGenerationData -> l -> DB PlaneRef
dbNewPlane :: (PlaneLocation l) => B.ByteString -> TerrainGenerationData -> l -> DB PlaneRef
dbNewPlane name tg_data l =
do rns <- getRandoms
random_id <- getRandomR (1,1000000)
random_name <- randomPlanetName PanGalacticTreatyOrganization
dbAddPlane (Plane { plane_biome = tg_biome tg_data,
plane_terrain = generateTerrain tg_data rns,
plane_random_id = random_id,
plane_planet_name = fromMaybe random_name name}) l
plane_planet_name = name}) l

planetName :: (DBReadable db) => PlaneRef -> db B.ByteString
planetName = liftM plane_planet_name . dbGetPlane
Expand Down
15 changes: 10 additions & 5 deletions roguestar-engine/src/Planet.hs
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,17 @@ import Data.Maybe
import Data.Ord
import Town
import Data.List
import Data.ByteString.Char8 as B
import FactionData

makePlanet :: (PlaneLocation l) => l -> PlanetInfo -> DB PlaneRef
makePlanet plane_location planet_info =
do seed <- getRandom
seed_down <- getRandom
planet_name <- liftM (`fromMaybe` planet_info_name planet_info) $
randomPlanetName PanGalacticTreatyOrganization
plane_ref <- dbNewPlane
(planet_info_name planet_info)
planet_name
(TerrainGenerationData {
tg_smootheness = 3,
tg_biome = planet_info_biome planet_info,
Expand All @@ -29,7 +33,7 @@ makePlanet plane_location planet_info =
do p <- rationalRoll r
return $ if p then Just b else Nothing
_ <- createTown plane_ref town
_ <- makeDungeons (Beneath plane_ref) 0 planet_info
_ <- makeDungeons planet_name (Beneath plane_ref) 0 planet_info
return plane_ref

makePlanets :: (PlaneLocation l) => l -> [PlanetInfo] -> DB PlaneRef
Expand All @@ -40,16 +44,17 @@ makePlanets l (planet_info:rest) =
return plane_ref

makeDungeons :: (PlaneLocation l) =>
B.ByteString ->
l ->
Integer ->
PlanetInfo ->
DB PlaneRef
makeDungeons plane_location i planet_info =
makeDungeons planet_name plane_location i planet_info =
do let n = planet_info_depth planet_info
seed_up <- getRandom
seed_down <- getRandom
plane_ref <- dbNewPlane
Nothing
planet_name
(TerrainGenerationData {
tg_smootheness = 2,
tg_biome = planet_info_dungeon planet_info,
Expand All @@ -58,7 +63,7 @@ makeDungeons plane_location i planet_info =
if i < n then [stairsDown seed_down i] else [] })
plane_location
when (i < n) $
do _ <- makeDungeons (Beneath plane_ref) (succ i) planet_info
do _ <- makeDungeons planet_name (Beneath plane_ref) (succ i) planet_info
return ()
return plane_ref

Expand Down

0 comments on commit a0da0d9

Please sign in to comment.