X-Git-Url: http://git.pond.sub.org/?p=empserver;a=blobdiff_plain;f=src%2Flib%2Fcommands%2Fmap.c;h=1b540ac34db7bf2022afe4269907087666f9752a;hp=02c38b2bf13fda8cb7fa60fda039d2bd7b64d3c2;hb=9b7adfbe;hpb=5f263a7753dc728809ff85c993af975f6c76e61e diff --git a/src/lib/commands/map.c b/src/lib/commands/map.c index 02c38b2bf..1b540ac34 100644 --- a/src/lib/commands/map.c +++ b/src/lib/commands/map.c @@ -48,98 +48,115 @@ int map(void) { - register s_char *b; - int unit_type = 0; - int bmap = 0; - struct natstr *np; - s_char *str; - struct nstr_sect ns; - s_char origin = '\0'; - int as_country; - int map_flags = 0; - int i; - int where = 2; - s_char what[64]; - s_char buf[1024]; + register s_char *b; + int unit_type = 0; + int bmap = 0; + struct natstr *np; + s_char *str; + struct nstr_sect ns; + s_char origin = '\0'; + int as_country; + int map_flags = 0; + int i; + int where = 2; + s_char what[64]; + s_char buf[1024]; - if (**player->argp != 'm') { - if (**player->argp == 'b') - bmap = EF_BMAP; - else if (**player->argp == 'n') - bmap = EF_NMAP; - else { - if (**player->argp == 'l') - unit_type = EF_LAND; - else if (**player->argp == 'p') - unit_type = EF_PLANE; - else if (**player->argp == 's') - unit_type = EF_SHIP; - else { - logerror("map: bad player->argp[0]"); - return RET_SYN; - } - if (player->argp[0][1] == 'b') - bmap = EF_BMAP; - } + if (**player->argp != 'm') { + if (**player->argp == 'b') + bmap = EF_BMAP; + else if (**player->argp == 'n') + bmap = EF_NMAP; + else { + if (**player->argp == 'l') + unit_type = EF_LAND; + else if (**player->argp == 'p') + unit_type = EF_PLANE; + else if (**player->argp == 's') + unit_type = EF_SHIP; + else { + logerror("map: bad player->argp[0]"); + return RET_SYN; + } + if (player->argp[0][1] == 'b') + bmap = EF_BMAP; } + } - if (player->argp[1] == (s_char *) 0) { - if ((str = getstring("(sects)? ", buf)) == 0) - return RET_SYN; - } else { - str = player->argp[1]; - } + if (player->argp[1] == (s_char *)0) { + if ((str = getstring("(sects)? ", buf)) == 0) + return RET_SYN; + } else { + str = player->argp[1]; + } - np = getnatp(player->cnum); - if (*str == '*') { - sprintf(what, "%d:%d,%d:%d", - -WORLD_X/2, WORLD_X/2-1, - -WORLD_Y/2, WORLD_Y/2-1); - if (!snxtsct(&ns, what)) - return RET_FAIL; - } else if (!snxtsct(&ns, str)) { - i=atoi(str); - if (unit_map(unit_type, i, &ns, &origin)) - return RET_FAIL; - } - b = player->argp[2]; - while (b != (s_char *)0 && (*b)){ - where = 3; - switch(*b){ - case 's': - case 'S': map_flags |= MAP_SHIP; break; - case 'l': - case 'L': map_flags |= MAP_LAND; break; - case 'p': - case 'P': map_flags |= MAP_PLANE; break; - case '*': map_flags |= MAP_ALL; break; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': where = 2; break; - case 't': bmap = EF_MAP; *(b+1)=0;break; - case 'r': bmap = EF_MAP + EF_BMAP;*(b+1)=0;break; - default: pr("Bad flag %c!\n",*b); - break; - } - b++; + np = getnatp(player->cnum); + if (*str == '*') { + sprintf(what, "%d:%d,%d:%d", + -WORLD_X / 2, WORLD_X / 2 - 1, + -WORLD_Y / 2, WORLD_Y / 2 - 1); + if (!snxtsct(&ns, what)) + return RET_FAIL; + } else if (!snxtsct(&ns, str)) { + i = atoi(str); + if (unit_map(unit_type, i, &ns, &origin)) + return RET_FAIL; + } + b = player->argp[2]; + while (b != (s_char *)0 && (*b)) { + where = 3; + switch (*b) { + case 's': + case 'S': + map_flags |= MAP_SHIP; + break; + case 'l': + case 'L': + map_flags |= MAP_LAND; + break; + case 'p': + case 'P': + map_flags |= MAP_PLANE; + break; + case '*': + map_flags |= MAP_ALL; + break; + case '0': + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + where = 2; + break; + case 't': + bmap = EF_MAP; + *(b + 1) = 0; + break; + case 'r': + bmap = EF_MAP + EF_BMAP; + *(b + 1) = 0; + break; + default: + pr("Bad flag %c!\n", *b); + break; } + b++; + } - as_country = player->cnum; - if (player->god){ - if (player->argp[where] != (s_char *) 0) { - as_country=atoi(player->argp[where]); - if ((as_country < 0) || (as_country > MAXNOC)){ - as_country = player->cnum; - } - } + as_country = player->cnum; + if (player->god) { + if (player->argp[where] != (s_char *)0) { + as_country = atoi(player->argp[where]); + if ((as_country < 0) || (as_country > MAXNOC)) { + as_country = player->cnum; + } } + } - return draw_map(bmap, origin, map_flags, &ns, as_country); + return draw_map(bmap, origin, map_flags, &ns, as_country); }