diff --git a/include/prototypes.h b/include/prototypes.h index a72d3b6f..0a08db85 100644 --- a/include/prototypes.h +++ b/include/prototypes.h @@ -59,8 +59,6 @@ extern int edit_sect_i(struct sctstr *, char *, int); extern int load_comm_ok(struct sctstr *, natid, i_type, int); extern void gift(natid, natid, void *, char *); extern int display_mark(i_type, int); -extern int want_to_abandon(struct sctstr *, i_type, int, struct lndstr *); -extern int would_abandon(struct sctstr *, i_type, int, struct lndstr *); extern int nav_map(int, int, int); extern int do_unit_move(struct emp_qelem *, int *, double *, double *); extern int count_pop(int); @@ -406,6 +404,8 @@ extern int check_trade_ok(struct trdstr *); extern void set_coastal(struct sctstr *, int, int); /* control.c */ extern int military_control(struct sctstr *); +extern int want_to_abandon(struct sctstr *, i_type, int, struct lndstr *); +extern int would_abandon(struct sctstr *, i_type, int, struct lndstr *); /* damage.c */ extern void landdamage(struct lndstr *, int); extern void ship_damage(struct shpstr *, int); diff --git a/src/lib/commands/move.c b/src/lib/commands/move.c index 2ff28fa6..c9f012fb 100644 --- a/src/lib/commands/move.c +++ b/src/lib/commands/move.c @@ -345,41 +345,3 @@ cmd_move_map(coord curx, coord cury, char *arg1, char *arg2) { return display_region_map(0, EF_SHIP, curx, cury, arg1, arg2); } - -int -want_to_abandon(struct sctstr *sp, i_type vtype, int amnt, struct lndstr *lp) -{ - char prompt[80]; - - /* - * First, would we be abandoning it? If not, just return that - * it's ok to move out. - */ - if (!would_abandon(sp, vtype, amnt, lp)) - return 1; - - sprintf(prompt, "Do you really want to abandon %s [yn]? ", - xyas(sp->sct_x, sp->sct_y, player->cnum)); - - return askyn(prompt); -} - -int -would_abandon(struct sctstr *sp, i_type vtype, int amnt, struct lndstr *lp) -{ - int mil, civs; - - if (vtype != I_CIVIL && vtype != I_MILIT) - return 0; - - mil = sp->sct_item[I_MILIT]; - civs = sp->sct_item[I_CIVIL]; - - if (vtype == I_MILIT) - mil -= amnt; - if (vtype == I_CIVIL) - civs -= amnt; - - return sp->sct_own != 0 && civs <= 0 && mil <= 0 - && !has_units(sp->sct_x, sp->sct_y, sp->sct_own, lp); -} diff --git a/src/lib/subs/control.c b/src/lib/subs/control.c index a7245704..cec33a7c 100644 --- a/src/lib/subs/control.c +++ b/src/lib/subs/control.c @@ -35,6 +35,7 @@ #include "file.h" #include "land.h" #include "nsc.h" +#include "player.h" #include "prototypes.h" #include "sect.h" @@ -60,3 +61,41 @@ military_control(struct sctstr *sp) return 1; } + +int +want_to_abandon(struct sctstr *sp, i_type vtype, int amnt, struct lndstr *lp) +{ + char prompt[80]; + + /* + * First, would we be abandoning it? If not, just return that + * it's ok to move out. + */ + if (!would_abandon(sp, vtype, amnt, lp)) + return 1; + + sprintf(prompt, "Do you really want to abandon %s [yn]? ", + xyas(sp->sct_x, sp->sct_y, player->cnum)); + + return askyn(prompt); +} + +int +would_abandon(struct sctstr *sp, i_type vtype, int amnt, struct lndstr *lp) +{ + int mil, civs; + + if (vtype != I_CIVIL && vtype != I_MILIT) + return 0; + + mil = sp->sct_item[I_MILIT]; + civs = sp->sct_item[I_CIVIL]; + + if (vtype == I_MILIT) + mil -= amnt; + if (vtype == I_CIVIL) + civs -= amnt; + + return sp->sct_own != 0 && civs <= 0 && mil <= 0 + && !has_units(sp->sct_x, sp->sct_y, sp->sct_own, lp); +}