Is there any way to get new cities generated 'late' (for a map starting say 1950) to use a mixture of current and historical buildings? I'm not so interested in playing steam-era games, but I don't like the look of cities that appear to have just sprung up with only a handful of building types, especially in pak128.britain where the older buildings are important for the overall look and feel of the game.

Alternately, is there a way to use the timeline for vehicles but nothing else?

Well, if those old buildings are still being built in 1950, You could delete the more modern buildings from the pak folder before map creation. When you got xour map you can save it and add the files again. Not a very elegant way, but should work. If you want to do this more often you can have some prepared pakbritain folder for map creation in a different folder, then you only have to exchange the folders.

@wlindley I think that would be good. I don't see any rationale for cities to be built with only current buildings in any pak. At the moment the only maps that look good are those created in the 18th century and those created without the 'use timeline' checkbox on, but I want to use the timeline for vehicles and infrastructure. City creation should obey the introduction date but not the retirement date of buildings to get a good mix.

I could probably fix it myself, except that the code seems to be in German so I'm a bit lost.

// does the timeline allow this buildings? const uint16 current_month = welt->get_timeline_year_month(); const climate cl = welt->get_climate(gb->get_pos().z);[\code][code]// check for residence // (sum_wohnung>sum_industrie && sum_wohnung>sum_gewerbe if (will_haben == gebaeude_t::unbekannt) { // we must check, if we can really update to higher level ... const int try_level = (alt_typ == gebaeude_t::wohnung ? level + 1 : level); h = hausbauer_t::get_wohnhaus(try_level, current_month, cl); if (h != NULL && h->get_level() >= try_level) { will_haben = gebaeude_t::wohnung; sum = sum_wohnung; } else { h = NULL; } }btw (my graps of the code is rather lacklustre, so pls don't get offended if i'm totally wrong): hausbauer_t::get_wohnhaus(try_level, current_month, cl); gets a random house from a list, i think? here it is checked if it is suitable. is it getting less effective if the timeline is very long and only a few houses are available at any given point in time? for a list with many suitable entries it should be much better than first selecting the list, then randomizing.[/code]

... which appears to call " 'housebuilder_t': get a family house, passing (0, the current month, the climate, and whether it's a new town) as arguments]. All of which is great but I can't see where the hausbauer_t comes from, grepping though the files doesn't turn anything up, it's called a lot but where does it come from?

Yes, I'm looking at that now, but I'm confused because it already seems to be written as if it should behave as I've described, with the "allow_earlier" being set, in this instance, from "new_town" being passed to it. Then it appears to give a 35% chance of an old building being allowed to be selected from the list. So maybe it's a bug that prevents old buildings being used?

if(auswahl.get_sum_weight()==0) { // this is some level below, but at least it is something return besch_at_least; } if(auswahl.get_count()==1) { return auswahl.front(); } // now there is something to choose return auswahl.at_weight( simrand(auswahl.get_sum_weight()) );}

Well removing "&& ((allow_earlier && random > 65) || besch->get_retire_year_month()>time)" gets the behaviour I want, which is fine, but I don't think that would do for a patch to simutrans. For one thing, that would mean new cities founded during the game would get all types of building, which is not necessarily what you want. An extra argument ... 'map_creation' is probably needed to go through to the building selection algorithm. Secondly, I'm nonplussed as to why the current code isn't allowing at least some old buildings through.

For really good looking maps, 'regions' of (large) towns built largely in one period's style (and small towns being built to a particular style) or another would be great, but that's a whole other level of complexity.