Ticket #44174

mapgen: singlepole still makes a difference when alltemperate is set

Open Date: 2022-03-24 06:16 Last Update: 2022-03-25 00:58

Reporter:
Owner:
(None)
Type:
Status:
Open
Component:
MileStone:
(None)
Priority:
5 - Medium
Severity:
4
Resolution:
None
File:
None

Details

The singlepole server setting halves the ICE_BASE_LEVEL, which is used in adjust_terrain_param() to determine how much of each terrain type to generate, even when alltemperate is enabled. This is counter-intuitive, since with alltemperate, there are no poles either way.

This will probably become quickly obsolete in master due to #44167 and #44038, but it might be worth either addressing or documenting in the other branches.

Ticket History (2/2 Histories)

2022-03-24 06:16 Updated by: alienvalkyrie
  • New Ticket "mapgen: singlepole still makes a difference when alltemperate is set" created
2022-03-25 00:58 Updated by: alienvalkyrie
Comment

To elaborate on why this currently makes a difference (in pre-#44167 code, including older branches): As far as mapgen.c:make_terrains() is concerned, arctic terrain falls under the "plains" umbrella, so a map with larger poles must have more plains, and less of other categories; that's why ICE_BASE_LEVEL is even considered in adjust_terrain_param().

This really points to an underlying issue – adjust_terrain_param() takes colatitudes (ICE_BASE_LEVEL and TROPICAL_LEVEL) as proportions of the map in a certain climate, without concern for whether those colatitudes are actually present on zero, one or two hemispheres. At the time of writing, this only affects alltemperate maps, but that will change with #44038 and the option for partial hemisphere maps, or maps with two differently-sized hemispheres.

Attachment File List

No attachments

Edit

Please login to add comment to this ticket » Login