-
Notifications
You must be signed in to change notification settings - Fork 4.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Get roofs generated for basecamps #72724
Conversation
... Sso to fix this problem, you just casually appear to have added the infrastructure needed for faction camps to properly span z levels? |
Not quite. It's a step towards that, but it's not sufficient. It didn't hurt that typifying work had resulted in some familiarity with how map/tinymap works. For one, the current JSON format does not provide any means to specify construction on any other Z level than that of the starting base camp. I assume it wouldn't be too hard to update, though. For a second, it would require a desire for the definition of predetermined base camps to add construction on other Z levels. Personally I'd rather use free form base camps and thus construction zones, which are already 3D aware. Others may well have desires to expand to other levels (evac shelter basement, mansion upper floors, a dug basement for field base camps, etc). However, I think a 3D supporting overmap terrain tile map version can be useful in a number of cases. |
Summary
None
Purpose of change
Fix #70603, i.e. get basecamp roofs generated when they previously went AWOL.
Describe the solution
Describe alternatives you've considered
There are lots of places where the potential usage of a smallmap rather than a tinymap ought to be investigated:
Testing
Order companions to create a chicken coop in a livestock 2 expansion, debug wait, finish the job, and walk up to the roof to see whether a roof is generated, or the old behavior of showing the walls and floor on the level below remains.
Additional context
The roof addition magic is buried in the map::load call chain, and is only triggered if zlevels is true (as for map and smallmap, but, crucially, not for tinymap).
I've used smallmap for the main processing of the operation as well, because there's code intended to deal with cave-ins in case support is removed, but that code never triggers because zlevels = false causes it to silently fail to do anything.
Renamed the variables to indicate the type used, rather than the type used previously. Results in more "changes", but should lead to less confusion going forward.