(sctstr): New member sct_dterr.

(terr): Let the deity set it, and default the field argument to it.
(sect_ca): New selector dterr.
This commit is contained in:
Markus Armbruster 2006-06-17 19:27:22 +00:00
parent 602b2a07cb
commit db1ac2edf4
4 changed files with 16 additions and 5 deletions

View file

@ -55,6 +55,7 @@ struct sctstr {
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" */

View file

@ -12,12 +12,15 @@ In this sense it is essentially an extended \*Qrealm\*U.
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

View file

@ -55,10 +55,10 @@ terr(void)
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, &sect)) {
if (!player->owner)
@ -87,6 +87,12 @@ terr(void)
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;
}

View file

@ -131,6 +131,7 @@ struct castr sect_ca[] = {
{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},