Deutsches Simutransforum

Normale Version: r9007 Stadtgenerierung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Die letzte Änderung am Stadtbauer hat wohl einen Fehler.

Es werden bei neuen Karten nur noch Level 1 Gebäude erstellt. Egal wie viele Einwohner die Stadt hat. Das führt zu sehr großflächigen Städten.
________________________________________

Die simuconf.tab im SVN ( 30.01.2020 - 26.959 Byte ) scheint sich auch zu Unterscheiden zu der im Nigthly enthaltenen ( 03.02.2020 - 26.223 Byte ) hier vom Forumsserver.
Es liegt an dem neuen Parameter "preservation_year"


simcity.cc Zeile 3186
Zitat:    if(  welt->get_timeline_year_month() > gb_desc->no_renovation_month()  ) {
                 DBG_MESSAGE("stadt_t::renovate_city_building()", "no_renovation_month %i,%i  ", welt->get_timeline_year_month() , gb_desc->no_renovation_month());
        // this is a historic city building (as defiend by the pak set author), so do not renovate
        return;
    }


gb_desc->no_renovation_month() gibt eine 1 zurück warum auch immer, damit wird kein Haus renoviert
Wenn man das auskommentiert dann geht es.

building_reader.cc am Ende

Zitat:    if( version < 10 ) {
        // can always replace
        desc->preservation_year_month = DEFAULT_RETIRE_DATE*12;
    }

    DBG_DEBUG("building_reader_t::read_node()",
        "version=%d,"
        " btyp=%d,"
        " type=%d,"
        " price=%d,"
        " maintenance=%d,"
        " capacity=%d,"
        " level=%d,"
        " extra_data=%d,"
        " size.x=%d,"
        " size.y=%d,"
        " layouts=%d,"
        " enables=%x,"
        " flags=%d,"
        " chance=%d,"
        " climates=%X,"
        " metro=%d,"
        " anim=%d,"
        " intro=%d/%d,"
        " retire=%d/%d,"
        " preservation=%d,",
        version,
        btyp,
        desc->type,
        desc->price,
        desc->maintenance,
        desc->capacity,
        desc->level,
        desc->extra_data,
        desc->size.x,
        desc->size.y,
        desc->layouts,
        desc->enables,
        desc->flags,
        desc->distribution_weight,
        desc->allowed_climates,
        desc->allow_underground,
        desc->animation_time,
        (desc->intro_date%12)+1,
        desc->intro_date/12,
        (desc->retire_date%12)+1,
        desc->retire_date/12,
        desc->preservation_year_month
    );
speichert preservation=35988,

Damit bin ich mit meinem Latein am Ende.
Ich liebe C++
In building_desc.h Zeile 249 steht "bool no_renovation_month() const { return preservation_year_month; }" <-- kanns daran liegen, weil preservation_year_month uint16 ist, kein bool? Oder ist das nur eine Kurzschreibweise?
Jaja, das ist es. Vom umbenennen der Funktion wird der Typ natürlich nicht geändert. Asche auf men Haupt. Sollte mit r9008 wieder gehen.
r9012

Stadtgenerierung funktioniert auf den ersten Blick wieder