#include "ship.h"
#include "xy.h"
-static void radmap2(int, int, int, int, int, double, int);
-
-void
-radmap(int cx, int cy, int eff, int range, double seesub)
-{
- radmap2(player->cnum, cx, cy, eff, range, seesub, 1);
-}
-
/* More dynamic world sized buffers. We create 'em once, and then
* never again. No need to keep creating/tearing apart. We may
* want to do this in other places too where it doesn't matter. */
static signed char **vis;
static signed char *visbuf;
-static void
-radmap2(int owner,
- int cx, int cy, int eff, int range, double seesub, int pr_flag)
+/*
+ * Draw a radar map for radar at CX,CY.
+ * EFF is the radar's efficiency, and RANGE its range at 100%
+ * efficiency.
+ * Submarines are detected at fraction SEESUB of the range.
+ */
+void
+radmap(int cx, int cy, int eff, int range, double seesub)
{
int visib, rng;
struct sctstr sect;
range = (int)(range * (eff / 100.0));
if (range < 1)
range = 1;
- if (pr_flag)
- pr("%s efficiency %d%%, max range %d\n",
- xyas(cx, cy, owner), eff, range);
+ pr("%s efficiency %d%%, max range %d\n",
+ xyas(cx, cy, player->cnum), eff, range);
snxtsct_dist(&ns, cx, cy, range);
blankfill(radbuf, &ns.range, 1);
while (nxtsct(&ns, §)) {
- if (sect.sct_own == owner
+ if (sect.sct_own == player->cnum
|| sect.sct_type == SCT_WATER
|| sect.sct_type == SCT_MOUNT
|| sect.sct_type == SCT_WASTE
rad[ns.dy][ns.dx] = dchr[sect.sct_type].d_mnem;
else
rad[ns.dy][ns.dx] = '?';
- changed += map_set(owner, ns.x, ns.y, rad[ns.dy][ns.dx], 0);
+ changed += map_set(player->cnum, ns.x, ns.y, rad[ns.dy][ns.dx], 0);
}
if (changed)
- writemap(owner);
- if (!pr_flag)
- return;
+ writemap(player->cnum);
snxtitem_dist(&ni, EF_PLANE, cx, cy, range);
while (nxtitem(&ni, &plane)) {
if (plane.pln_own == 0)
x = deltx(&ns.range, (int)plane.pln_x);
y = delty(&ns.range, (int)plane.pln_y);
- if (pln_is_in_orbit(&plane) && plane.pln_own != owner) {
+ if (pln_is_in_orbit(&plane) && plane.pln_own != player->cnum) {
vis[y][x] = 100;
rad[y][x] = '$';
}