]> git.pond.sub.org Git - empserver/blobdiff - src/lib/commands/rada.c
Indented with src/scripts/indent-emp.
[empserver] / src / lib / commands / rada.c
index 4cadf25b73d66045672454bb67aa8c42c6715cba..49f016e4c8b603afeb32332a02f83d202c71d9e7 100644 (file)
 int
 rada(void)
 {
-       s_char  *cp;
-       int     type;
-       double  tf;
-       double  tech;
-       struct  nstr_item ni;
-       struct  nstr_sect ns;
-       struct  shpstr ship;
-       struct  lndstr land;
-       struct  sctstr sect;
-       int     from_unit;
-       s_char  buf[1024];
+    s_char *cp;
+    int type;
+    double tf;
+    double tech;
+    struct nstr_item ni;
+    struct nstr_sect ns;
+    struct shpstr ship;
+    struct lndstr land;
+    struct sctstr sect;
+    int from_unit;
+    s_char buf[1024];
 
-       from_unit = (**player->argp == 'l');
+    from_unit = (**player->argp == 'l');
 
-       if (!from_unit)
-               cp = getstarg(player->argp[1], "Radar from (ship # or sector(s)) : ", buf);
-       else
-               cp = getstarg(player->argp[1], "Radar from (unit # or sector(s)) : ", buf);
-       if (cp == 0)
+    if (!from_unit)
+       cp = getstarg(player->argp[1],
+                     "Radar from (ship # or sector(s)) : ", buf);
+    else
+       cp = getstarg(player->argp[1],
+                     "Radar from (unit # or sector(s)) : ", buf);
+    if (cp == 0)
+       return RET_SYN;
+    type = sarg_type(cp);
+    if (type == NS_AREA) {
+       if (!snxtsct(&ns, cp))
+           return RET_SYN;
+       tech = tfact(player->cnum, 8.0);
+       if (tech > ((double)WORLD_Y / 4.0))
+           tech = ((double)WORLD_Y / 4.0);
+       if (tech > ((double)WORLD_X / 8.0))
+           tech = ((double)WORLD_X / 8.0);
+       while (nxtsct(&ns, &sect)) {
+           if (sect.sct_type != SCT_RADAR)
+               continue;
+           if (!player->owner)
+               continue;
+           radmap(sect.sct_x, sect.sct_y, (int)sect.sct_effic,
+                  (int)(tech * 2.0), 0.0);
+       }
+    } else if (type == NS_LIST || type == NS_GROUP) {
+       if (!from_unit) {
+           /* assumes a NS_LIST return is a shipno */
+           if (!snxtitem(&ni, EF_SHIP, cp)) {
+               pr("Specify at least one ship\n");
                return RET_SYN;
-       type = sarg_type(cp);
-       if (type == NS_AREA) {
-               if (!snxtsct(&ns, cp))
-                       return RET_SYN;
-               tech = tfact(player->cnum, 8.0);
-               if (tech > ((double)WORLD_Y/4.0))
-                       tech = ((double)WORLD_Y/4.0);
-               if (tech > ((double)WORLD_X/8.0))
-                       tech = ((double)WORLD_X/8.0);
-               while (nxtsct(&ns, &sect)) {
-                       if (sect.sct_type != SCT_RADAR)
-                               continue;
-                       if (!player->owner)
-                               continue;
-                       radmap(sect.sct_x, sect.sct_y, (int)sect.sct_effic,
-                               (int) (tech * 2.0), 0.0);
-               }
-       } else if (type == NS_LIST || type == NS_GROUP) {
-               if (!from_unit){
-                       /* assumes a NS_LIST return is a shipno */
-                       if (!snxtitem(&ni, EF_SHIP, cp)) {
-                               pr("Specify at least one ship\n");
-                               return RET_SYN;
-                       }
-                       while (nxtitem(&ni, (s_char *)&ship)) {
-                               if (!player->owner)
-                                       continue;
-                               if (mchr[(int)ship.shp_type].m_flags & M_SONAR)
-                                       tf = techfact(ship.shp_tech, 1.0);
-                               else
-                                       tf = 0.0;
-                               pr("%s at ", prship(&ship));
-                               tech = techfact(ship.shp_tech,
-                                       (double) mchr[(int)ship.shp_type].m_vrnge);
-                               if (tech > ((double)WORLD_Y/2.0))
-                                       tech = ((double)WORLD_Y/2.0);
-                               if (tech > ((double)WORLD_X/4.0))
-                                       tech = ((double)WORLD_X/4.0);
-                               radmap(ship.shp_x, ship.shp_y, ship.shp_effic,
-                                       (int) tech, tf);
-                       }
-               }else{
-                       /* from a land unit */
-                       if (!snxtitem(&ni, EF_LAND, cp)) {
-                               pr("Specify at least one unit\n");
-                               return RET_SYN;
-                       }
-                       while (nxtitem(&ni, (s_char *)&land)) {
-                               if (!player->owner)
-                                       continue;
-                               if (!(lchr[(int)land.lnd_type].l_flags & L_RADAR)){
-                                       pr("%s can't use radar!\n",
-                                          prland(&land));
-                                       continue;
-                               }
-                               if (land.lnd_ship >= 0){
-                                       pr("Units on ships can't use radar!\n");
-                                       continue;
-                               }
-                               tf = 0.0;
-                               pr("%s at ", prland(&land));
-                               tech = techfact(land.lnd_tech,
-                                       (double) land.lnd_spy);
-                               if (tech > ((double)WORLD_Y/2.0))
-                                       tech = ((double)WORLD_Y/2.0);
-                               if (tech > ((double)WORLD_X/4.0))
-                                       tech = ((double)WORLD_X/4.0);
-                               radmap(land.lnd_x, land.lnd_y, land.lnd_effic,
-                                       (int) tech, tf);
-                       }
-               }
-       } else {
-               if (!from_unit)
-                       pr("Must use a ship or sector specifier\n");
+           }
+           while (nxtitem(&ni, (s_char *)&ship)) {
+               if (!player->owner)
+                   continue;
+               if (mchr[(int)ship.shp_type].m_flags & M_SONAR)
+                   tf = techfact(ship.shp_tech, 1.0);
                else
-                       pr("Must use a unit or sector specifier\n");
+                   tf = 0.0;
+               pr("%s at ", prship(&ship));
+               tech = techfact(ship.shp_tech,
+                               (double)mchr[(int)ship.shp_type].m_vrnge);
+               if (tech > ((double)WORLD_Y / 2.0))
+                   tech = ((double)WORLD_Y / 2.0);
+               if (tech > ((double)WORLD_X / 4.0))
+                   tech = ((double)WORLD_X / 4.0);
+               radmap(ship.shp_x, ship.shp_y, ship.shp_effic,
+                      (int)tech, tf);
+           }
+       } else {
+           /* from a land unit */
+           if (!snxtitem(&ni, EF_LAND, cp)) {
+               pr("Specify at least one unit\n");
                return RET_SYN;
+           }
+           while (nxtitem(&ni, (s_char *)&land)) {
+               if (!player->owner)
+                   continue;
+               if (!(lchr[(int)land.lnd_type].l_flags & L_RADAR)) {
+                   pr("%s can't use radar!\n", prland(&land));
+                   continue;
+               }
+               if (land.lnd_ship >= 0) {
+                   pr("Units on ships can't use radar!\n");
+                   continue;
+               }
+               tf = 0.0;
+               pr("%s at ", prland(&land));
+               tech = techfact(land.lnd_tech, (double)land.lnd_spy);
+               if (tech > ((double)WORLD_Y / 2.0))
+                   tech = ((double)WORLD_Y / 2.0);
+               if (tech > ((double)WORLD_X / 4.0))
+                   tech = ((double)WORLD_X / 4.0);
+               radmap(land.lnd_x, land.lnd_y, land.lnd_effic,
+                      (int)tech, tf);
+           }
        }
-       return RET_OK;
+    } else {
+       if (!from_unit)
+           pr("Must use a ship or sector specifier\n");
+       else
+           pr("Must use a unit or sector specifier\n");
+       return RET_SYN;
+    }
+    return RET_OK;
 }