diff --git a/src/common/kernel/eressea.c b/src/common/kernel/eressea.c index bc9ed8164..4c1e1b4ae 100644 --- a/src/common/kernel/eressea.c +++ b/src/common/kernel/eressea.c @@ -1044,7 +1044,7 @@ cansee(const faction * f, const region * r, const unit * u, int modifier) return false; } else if (u->number == 0) { attrib *a = a_find(u->attribs, &at_creator); - if(a) { /* u is an empty temporary unit. In this special case + if (a) { /* u is an empty temporary unit. In this special case we look at the creating unit. */ u = (unit *)a->data.v; } else { @@ -1052,6 +1052,7 @@ cansee(const faction * f, const region * r, const unit * u, int modifier) } } + if (leftship(u)) return true; if (itype_grail==(const item_type *)0xdeadbeef) itype_grail = it_find("grail"); if (itype_grail!=NULL && i_get(u->items, itype_grail)) return true; diff --git a/src/common/kernel/reports.c b/src/common/kernel/reports.c index 7f7115326..711ab7ade 100644 --- a/src/common/kernel/reports.c +++ b/src/common/kernel/reports.c @@ -939,6 +939,7 @@ seen_done(seen_region * seehash[]) reuse = seehash[i]; seehash[i] = NULL; } + free(seehash); } void