(terr): Let the deity set it, and default the field argument to it.
(sect_ca): New selector dterr.
unsigned char sct_terr1; /* territory 1 id # of sector */
unsigned char sct_terr2; /* territory 2 id # of sector */
unsigned char sct_terr3; /* territory 3 id # of sector */
+ unsigned char sct_dterr; /* deity's territory # */
coord sct_dist_x; /* Dist sector */
coord sct_dist_y;
short sct_avail; /* available workforce for "other things" */
However, you are not limited to rectangular regions and you have
99 values to choose from.
.s1
-There are four independent territory fields. If the optional field
-argument is empty, field 0 is used.
+There are four independent territory fields terr, terr1, terr2, terr3
+selected by field arguments 0, 1, 2, 3, respectively. Deities can use
+an additional territory field dterr, selected by -1. If the optional
+field argument is empty, terr is assumed for mortals and dterr for
+deities.
.s1
.EX territory #1 5 1
.s1
-Would set terr1 field to 5 for all sectors in realm 1.
+Would set terr1 to 5 for all sectors in realm 1.
.s1
.EX sect * ?terr1=6&terr2=12
.s1
if (!snxtsct(&nstr, player->argp[1]))
return RET_SYN;
- if (player->argp[3] && isdigit(*(player->argp[3]))) {
+ if (player->argp[3]) {
field = atoi(player->argp[3]);
} else {
- field = 0;
+ field = player->god ? -1 : 0;
}
while (nxtsct(&nstr, §)) {
if (!player->owner)
case 3:
sect.sct_terr3 = terr_n;
break;
+ case -1:
+ if (player->god) {
+ sect.sct_dterr = terr_n;
+ break;
+ }
+ /* fall through */
default:
sect.sct_terr = terr_n;
}
{NSC_UCHAR, 0, 0, fldoff(sctstr, sct_terr1), "terr1", EF_BAD},
{NSC_UCHAR, 0, 0, fldoff(sctstr, sct_terr2), "terr2", EF_BAD},
{NSC_UCHAR, 0, 0, fldoff(sctstr, sct_terr3), "terr3", EF_BAD},
+ {NSC_UCHAR, NSC_DEITY, 0, fldoff(sctstr, sct_dterr), "dterr", EF_BAD},
{NSC_XCOORD, 0, 0, fldoff(sctstr, sct_dist_x), "xdist", EF_BAD},
{NSC_YCOORD, 0, 0, fldoff(sctstr, sct_dist_y), "ydist", EF_BAD},
{NSC_SHORT, 0, 0, fldoff(sctstr, sct_avail), "avail", EF_BAD},