Angband.oook.cz
Angband.oook.cz
AboutVariantsLadderForumCompetitionComicScreenshotsFunniesLinks

Go Back   Angband Forums > Angband > Vanilla

Reply
 
Thread Tools Display Modes
Old June 4, 2023, 10:44   #1
wobbly
Prophet
 
Join Date: May 2012
Location: Adelaide, Australia
Posts: 2,615
wobbly will become famous soon enough
stair placement

All the down stairs on the level:

http://angband.oook.cz/screen-show.php?id=4886

Trouble is, that as far as the stair placement function is concerned that room is 21 great potential stair spots. It's similar with other special rooms
wobbly is offline   Reply With Quote
Old June 4, 2023, 11:00   #2
wobbly
Prophet
 
Join Date: May 2012
Location: Adelaide, Australia
Posts: 2,615
wobbly will become famous soon enough
Ok here's a suggestion.
  • Keep the same criteria for a "good" stair spot.
  • When checking a spot for good, check the adjacent wall spots, if you can create a good spot by carving out the wall tile, place there.
  • Maybe stop it from carving a spot near a monster pit, maybe not, depends how cruel you feel.

Edit: Maybe best to only carve in a corridor? Or you can get trickier with the carving:

Code:
  #############
  #
###
#>+
###
  #
  #############
and

Code:
#############
#>#
#
###
  #
  ###########

Last edited by wobbly; June 4, 2023 at 11:27.
wobbly is offline   Reply With Quote
Old June 4, 2023, 11:51   #3
wobbly
Prophet
 
Join Date: May 2012
Location: Adelaide, Australia
Posts: 2,615
wobbly will become famous soon enough
Code:
###
.1.
###
Code:
 ### 
 .1. 
 234 
 567 
 890
Code:
 ### 
 .1. 
 #.# 
 #># 
 ###
So if 1 is a corridor spot (square_suits_stairs_ok) and 2 to 0 are all wall tiles....
wobbly is offline   Reply With Quote
Old June 4, 2023, 14:28   #4
backwardsEric
Swordsman
 
Join Date: Aug 2019
Posts: 412
backwardsEric is on a distinguished road
The capability is there (because of persistent levels) to enforce a minimum distance between stairs. It would be very easy to turn that on for non-persistent modified, classic, moria, and lair levels (also caverns, but they have no rooms) to limit the clustering of staircases in a room. If you want to try it yourself, look at handle_level_stairs() in gen-cave.c, change the value after the colon for the "minsep = (persistent) ? 4 : 0" line (in the latest code that's line of 959 of gen-cave.c), and recompile.

Another idea, requiring little modification to the code, would be to require more adjacent walls for a potential staircase location in alloc_stairs() if that location is in a room. That would tend to push the staircases to dead-ends in corridors or to the middle of corridors.
backwardsEric is offline   Reply With Quote
Old June 4, 2023, 21:34   #5
PowerDiver
Prophet
 
Join Date: Mar 2008
Posts: 2,771
PowerDiver is on a distinguished road
I've always found the clumping to be silly. Is there any reason not to simply enforce a minimum distance between stairs of, say, 1/4 the diameter of the level?
PowerDiver is offline   Reply With Quote
Old June 5, 2023, 09:01   #6
wobbly
Prophet
 
Join Date: May 2012
Location: Adelaide, Australia
Posts: 2,615
wobbly will become famous soon enough
Yeah sounds like enforcing minimum distance is easy, so go with that?

I'd also prefer something based on level size rather then a constant. Allows it to adapt to small or huge levels.
wobbly is offline   Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Stairs placement fph Vanilla 17 September 26, 2019 15:16
[4.0.5] Initial main window placement, and Tile Multiplier Dragget Vanilla 0 December 26, 2016 10:59
[3.5.0/Win7] Main window placement bug Narvius Vanilla 0 July 22, 2014 20:30
Stair Vaults UglySquirrell Vanilla 8 August 27, 2011 18:41
Do you stair scum? Wraitheist Vanilla 31 July 27, 2008 20:45


All times are GMT +1. The time now is 14:34.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2023, vBulletin Solutions Inc.