X-Git-Url: http://git.pond.sub.org/?p=empserver;a=blobdiff_plain;f=src%2Flib%2Fcommands%2Freco.c;h=b57830c28db4688d766c87647f383c5d7ddfa60a;hp=df6902a403c22ed2bceda8a385ab7629cc5f81ec;hb=9b7adfbe;hpb=5f263a7753dc728809ff85c993af975f6c76e61e diff --git a/src/lib/commands/reco.c b/src/lib/commands/reco.c index df6902a40..b57830c28 100644 --- a/src/lib/commands/reco.c +++ b/src/lib/commands/reco.c @@ -50,96 +50,103 @@ int reco(void) { - s_char *p; - int mission_flags; - int tech; - coord tx, ty; - coord ax, ay; - int ap_to_target; - s_char flightpath[MAX_PATH_LEN]; - int cno; - struct nstr_item ni_bomb; - struct nstr_item ni_esc; - coord x, y; - struct sctstr target; - struct emp_qelem bomb_list; - struct emp_qelem esc_list; - int wantflags; - struct sctstr ap_sect; - s_char buf[1024]; + s_char *p; + int mission_flags; + int tech; + coord tx, ty; + coord ax, ay; + int ap_to_target; + s_char flightpath[MAX_PATH_LEN]; + int cno; + struct nstr_item ni_bomb; + struct nstr_item ni_esc; + coord x, y; + struct sctstr target; + struct emp_qelem bomb_list; + struct emp_qelem esc_list; + int wantflags; + struct sctstr ap_sect; + s_char buf[1024]; - wantflags = 0; - if (!snxtitem(&ni_bomb, EF_PLANE, player->argp[1])) - return RET_SYN; - if (!snxtitem(&ni_esc, EF_PLANE, getstarg(player->argp[2], "escort(s)? ", buf))) - pr("No escorts...\n"); - if ((p = getstarg(player->argp[3], "assembly point? ", buf)) == 0 || *p == 0) - return RET_SYN; - if (!sarg_xy(p, &x, &y) || !getsect(x, y, &ap_sect)) - return RET_SYN; - if (ap_sect.sct_own && ap_sect.sct_own != player->cnum && - getrel(getnatp(ap_sect.sct_own), player->cnum) != ALLIED) { - pr("Assembly point not owned by you or an ally!\n"); - return RET_SYN; - } - ax = x; - ay = y; - if (getpath(flightpath, player->argp[4], ax, ay, 0, 0, - 0, P_FLYING) == 0 || *p == 0) - return RET_SYN; - tx = ax; - ty = ay; - (void) pathtoxy(flightpath, &tx, &ty, fcost); - pr("target is %s\n", xyas(tx, ty, player->cnum)); - getsect(tx, ty, &target); - cno = -1; - mission_flags = 0; - if (pln_onewaymission(&target, &cno, &wantflags) < 0) - return RET_SYN; - ap_to_target = strlen(flightpath); - if (*(flightpath+strlen(flightpath)-1) == 'h') - ap_to_target--; - pr("range to target is %d\n", ap_to_target); - /* - * select planes within range - */ - pln_sel(&ni_bomb, &bomb_list, &ap_sect, ap_to_target, - 1, wantflags, P_M|P_O); - if (QEMPTY(&bomb_list)) { - pr("No planes could be equipped for the mission.\n"); - return RET_FAIL; - } - wantflags |= P_F; - wantflags |= P_ESC; - pln_sel(&ni_esc, &esc_list, &ap_sect, ap_to_target, - 1, wantflags, P_M|P_O); - /* - * now arm and equip the bombers, transports, whatever. - */ - tech=0; - mission_flags |= P_X; /* stealth (shhh) */ - mission_flags |= P_H; /* gets turned off if not all choppers */ - mission_flags |= P_A; - mission_flags = pln_arm(&bomb_list, ap_to_target, 'r', 0, P_S|P_I, mission_flags,&tech); - if (QEMPTY(&bomb_list)) { - pr("No planes could be equipped for the mission.\n"); - return RET_FAIL; - } - mission_flags = pln_arm(&esc_list, ap_to_target, 'r', 0, P_F, mission_flags,&tech); - mission_flags |= PM_R; + wantflags = 0; + if (!snxtitem(&ni_bomb, EF_PLANE, player->argp[1])) + return RET_SYN; + if (!snxtitem + (&ni_esc, EF_PLANE, getstarg(player->argp[2], "escort(s)? ", buf))) + pr("No escorts...\n"); + if ((p = getstarg(player->argp[3], "assembly point? ", buf)) == 0 + || *p == 0) + return RET_SYN; + if (!sarg_xy(p, &x, &y) || !getsect(x, y, &ap_sect)) + return RET_SYN; + if (ap_sect.sct_own && ap_sect.sct_own != player->cnum && + getrel(getnatp(ap_sect.sct_own), player->cnum) != ALLIED) { + pr("Assembly point not owned by you or an ally!\n"); + return RET_SYN; + } + ax = x; + ay = y; + if (getpath(flightpath, player->argp[4], ax, ay, 0, 0, + 0, P_FLYING) == 0 || *p == 0) + return RET_SYN; + tx = ax; + ty = ay; + (void)pathtoxy(flightpath, &tx, &ty, fcost); + pr("target is %s\n", xyas(tx, ty, player->cnum)); + getsect(tx, ty, &target); + cno = -1; + mission_flags = 0; + if (pln_onewaymission(&target, &cno, &wantflags) < 0) + return RET_SYN; + ap_to_target = strlen(flightpath); + if (*(flightpath + strlen(flightpath) - 1) == 'h') + ap_to_target--; + pr("range to target is %d\n", ap_to_target); + /* + * select planes within range + */ + pln_sel(&ni_bomb, &bomb_list, &ap_sect, ap_to_target, + 1, wantflags, P_M | P_O); + if (QEMPTY(&bomb_list)) { + pr("No planes could be equipped for the mission.\n"); + return RET_FAIL; + } + wantflags |= P_F; + wantflags |= P_ESC; + pln_sel(&ni_esc, &esc_list, &ap_sect, ap_to_target, + 1, wantflags, P_M | P_O); + /* + * now arm and equip the bombers, transports, whatever. + */ + tech = 0; + mission_flags |= P_X; /* stealth (shhh) */ + mission_flags |= P_H; /* gets turned off if not all choppers */ + mission_flags |= P_A; + mission_flags = + pln_arm(&bomb_list, ap_to_target, 'r', 0, P_S | P_I, mission_flags, + &tech); + if (QEMPTY(&bomb_list)) { + pr("No planes could be equipped for the mission.\n"); + return RET_FAIL; + } + mission_flags = + pln_arm(&esc_list, ap_to_target, 'r', 0, P_F, mission_flags, + &tech); + mission_flags |= PM_R; - if (*player->argp[0] == 's') - mission_flags |= PM_S; + if (*player->argp[0] == 's') + mission_flags |= PM_S; - ac_encounter(&bomb_list,&esc_list,ax,ay,flightpath,mission_flags,0,0,0); - if (QEMPTY(&bomb_list)) { - pr("No planes got through fighter defenses\n"); - } else { - getsect(tx, ty, &target); - pln_newlanding(&bomb_list, tx, ty, cno); - pln_newlanding(&esc_list, tx, ty, cno); - } - pln_put(&bomb_list); - pln_put(&esc_list); - return RET_OK; + ac_encounter(&bomb_list, &esc_list, ax, ay, flightpath, mission_flags, + 0, 0, 0); + if (QEMPTY(&bomb_list)) { + pr("No planes got through fighter defenses\n"); + } else { + getsect(tx, ty, &target); + pln_newlanding(&bomb_list, tx, ty, cno); + pln_newlanding(&esc_list, tx, ty, cno); + } + pln_put(&bomb_list); + pln_put(&esc_list); + return RET_OK; }