Merge pull request #20 from CTD1/Bug-1664

Bug 1664: Obwohl kein Holz vorhanden ist, kommt die Meldung, daß der Unt...
This commit is contained in:
Enno Rehling 2014-08-08 00:48:52 +02:00
commit 75e98ae0cb
1 changed files with 17 additions and 13 deletions

View File

@ -1055,9 +1055,9 @@ static bool maintain(building * b, bool first)
} }
} }
if (need > 0) { if (need > 0) {
if (!fval(m, MTF_VITAL)) work = false;
work = false; if (fval(m, MTF_VITAL))
else { {
paid = false; paid = false;
break; break;
} }
@ -1066,16 +1066,21 @@ static bool maintain(building * b, bool first)
} }
if (paid && c > 0) { if (paid && c > 0) {
/* TODO: wieviel von was wurde bezahlt */ /* TODO: wieviel von was wurde bezahlt */
if (first) { if (first && work) {
ADDMSG(&u->faction->msgs, msg_message("maintenance", "unit building", u, ADDMSG(&u->faction->msgs, msg_message("maintenance", "unit building", u, b));
b)); fset(b, BLD_WORKING);
} else { fset(b, BLD_MAINTAINED);
}
if (!first) {
ADDMSG(&u->faction->msgs, msg_message("maintenance_late", "building", b)); ADDMSG(&u->faction->msgs, msg_message("maintenance_late", "building", b));
fset(b, BLD_MAINTAINED);
} }
fset(b, BLD_MAINTAINED);
if (work) { if (first && !work) {
fset(b, BLD_WORKING); ADDMSG(&u->faction->msgs, msg_message("maintenancefail", "unit building", u, b));
} return false;
}
for (c = 0; b->type->maintenance[c].number; ++c) { for (c = 0; b->type->maintenance[c].number; ++c) {
const maintenance *m = b->type->maintenance + c; const maintenance *m = b->type->maintenance + c;
int cost = m->number; int cost = m->number;
@ -1114,8 +1119,7 @@ static bool maintain(building * b, bool first)
assert(cost == 0); assert(cost == 0);
} }
} else { } else {
ADDMSG(&u->faction->msgs, ADDMSG(&u->faction->msgs, msg_message("maintenancefail", "unit building", u, b));
msg_message("maintenancefail", "unit building", u, b));
return false; return false;
} }
return true; return true;