update/revolt: Fix guerrilla liberating old-owned sector

Guerrilla are created loyal to the old owner.  When the sector
converts, they switch their allegiance to POGO.  This is a bit of a
hack.

When guerrilla win their fight for freedom in an old-owned sector, the
old-owner duly changes to POGO.  However, the owner doesn't.  Broken
in 4.2.6.  The "Sector X,Y has been retaken!" message is still sent to
the "new" sector owner.

Simply restoring the owner change lost back then would restore a bug
that goes back to 2.3.7: takeover() doesn't run when an old-owned
sector is liberated.  So fix the bug by making that unconditional.

Land units reported captured are actually destroyed, because POGO
can't own any.  Oh well.

Signed-off-by: Markus Armbruster <armbru@pond.sub.org>
This commit is contained in:
Markus Armbruster 2016-09-18 19:02:47 +02:00
parent 025e9cc258
commit 2315b50e52
4 changed files with 30 additions and 30 deletions

View file

@ -304,11 +304,9 @@ guerrilla(struct sctstr *sp)
/* che won, and sector converts. */
if (sp->sct_own == sp->sct_oldown)
sp->sct_oldown = 0;
else {
lost_and_found(EF_SECTOR, sp->sct_own, sp->sct_oldown,
0, sp->sct_x, sp->sct_y);
takeover(sp, sp->sct_oldown);
}
lost_and_found(EF_SECTOR, sp->sct_own, sp->sct_oldown,
0, sp->sct_x, sp->sct_y);
takeover(sp, sp->sct_oldown);
sp->sct_mobil = oldmob;
civ += uw;
uw = 0;