forked from github/server
Straßen durch Wüste ohne Karawanserei Der Code scheint okay zu sein, nur Altdaten nicht. Habe eine Korrektur-Routine eingebaut.
This commit is contained in:
parent
130adacb43
commit
ee64acff21
|
@ -742,6 +742,52 @@ fix_gates(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
road_decay(void)
|
||||||
|
{
|
||||||
|
const struct building_type * bt_caravan, * bt_dam, * bt_tunnel;
|
||||||
|
region * r;
|
||||||
|
|
||||||
|
bt_caravan = bt_find("caravan");
|
||||||
|
bt_dam = bt_find("dam");
|
||||||
|
bt_tunnel = bt_find("tunnel");
|
||||||
|
|
||||||
|
for (r=regions;r;r=r->next) {
|
||||||
|
boolean half = false;
|
||||||
|
if (rterrain(r) == T_SWAMP) {
|
||||||
|
/* wenn kein Damm existiert */
|
||||||
|
if (!buildingtype_exists(r, bt_dam)) {
|
||||||
|
half = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (rterrain(r) == T_DESERT) {
|
||||||
|
/* wenn keine Karawanserei existiert */
|
||||||
|
if (!buildingtype_exists(r, bt_caravan)) {
|
||||||
|
half = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (rterrain(r) == T_GLACIER) {
|
||||||
|
/* wenn kein Tunnel existiert */
|
||||||
|
if (!buildingtype_exists(r, bt_tunnel)) {
|
||||||
|
half = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (half) {
|
||||||
|
direction_t d;
|
||||||
|
short maxt = terrain[rterrain(r)].roadreq;
|
||||||
|
/* Falls Karawanserei, Damm oder Tunnel einstürzen, wird die schon
|
||||||
|
* gebaute Straße zur Hälfte vernichtet */
|
||||||
|
for (d=0;d!=MAXDIRECTIONS;++d) {
|
||||||
|
if (rroad(r, d) > maxt) {
|
||||||
|
rsetroad(r, d, maxt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
frame_regions(void)
|
frame_regions(void)
|
||||||
{
|
{
|
||||||
|
@ -1169,6 +1215,7 @@ korrektur(void)
|
||||||
} else {
|
} else {
|
||||||
do_once("zvrm", nothing());
|
do_once("zvrm", nothing());
|
||||||
}
|
}
|
||||||
|
do_once("rdec", road_decay());
|
||||||
|
|
||||||
do_once("chgt", fix_chaosgates());
|
do_once("chgt", fix_chaosgates());
|
||||||
do_once("atrx", fix_attribflags());
|
do_once("atrx", fix_attribflags());
|
||||||
|
|
Loading…
Reference in New Issue