(edit, prsect, doland): Fix `editing' sector coordinates (copies
sector). New: edit distribution sector, designation and new designation. From Ron Koenderink.
This commit is contained in:
parent
eb246aadd1
commit
7c6067466c
2 changed files with 62 additions and 28 deletions
|
@ -151,7 +151,7 @@ extern int dist(void);
|
||||||
extern int drop(void);
|
extern int drop(void);
|
||||||
extern int dump(void);
|
extern int dump(void);
|
||||||
extern int echo(void);
|
extern int echo(void);
|
||||||
extern int doland(s_char, int, struct sctstr *);
|
extern int doland(s_char, int, s_char *, struct sctstr *);
|
||||||
extern int docountry(s_char, int, s_char *, float, natid, struct natstr *);
|
extern int docountry(s_char, int, s_char *, float, natid, struct natstr *);
|
||||||
extern int doship(s_char, int, s_char *, struct shpstr *);
|
extern int doship(s_char, int, s_char *, struct shpstr *);
|
||||||
extern int dounit(s_char, int, s_char *, struct lndstr *);
|
extern int dounit(s_char, int, s_char *, struct lndstr *);
|
||||||
|
|
|
@ -31,6 +31,7 @@
|
||||||
* David Muir Sharnoff
|
* David Muir Sharnoff
|
||||||
* Chad Zabel, 1994
|
* Chad Zabel, 1994
|
||||||
* Steve McClure, 1998-2000
|
* Steve McClure, 1998-2000
|
||||||
|
* Ron Koenderink, 2003
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@ -63,7 +64,7 @@ static void prsect(struct sctstr *sect);
|
||||||
static void noise(struct sctstr *sptr, int public_amt, s_char *name,
|
static void noise(struct sctstr *sptr, int public_amt, s_char *name,
|
||||||
int old, int new);
|
int old, int new);
|
||||||
static void benefit(natid who, int good);
|
static void benefit(natid who, int good);
|
||||||
int doland(s_char op, int arg, struct sctstr *sect);
|
int doland(s_char op, int arg, s_char *p, struct sctstr *sect);
|
||||||
int docountry(s_char op, int arg, s_char *p, float farg, natid nat,
|
int docountry(s_char op, int arg, s_char *p, float farg, natid nat,
|
||||||
struct natstr *np);
|
struct natstr *np);
|
||||||
int doship(s_char op, int arg, s_char *p, struct shpstr *ship);
|
int doship(s_char op, int arg, s_char *p, struct shpstr *ship);
|
||||||
|
@ -71,9 +72,6 @@ int dounit(s_char op, int arg, s_char *p, struct lndstr *land);
|
||||||
int doplane(s_char op, int arg, s_char *p, struct plnstr *plane);
|
int doplane(s_char op, int arg, s_char *p, struct plnstr *plane);
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* format: give c <amt> <commod> <sect>
|
|
||||||
*/
|
|
||||||
int
|
int
|
||||||
edit(void)
|
edit(void)
|
||||||
{
|
{
|
||||||
|
@ -170,8 +168,7 @@ edit(void)
|
||||||
arg = atoi(ptr);
|
arg = atoi(ptr);
|
||||||
} else
|
} else
|
||||||
return RET_SYN;
|
return RET_SYN;
|
||||||
}
|
} else if (arg_index == 3) {
|
||||||
else if (arg_index == 3) {
|
|
||||||
if ((err = getin(&thing, &ptr, &arg, buf)) != RET_OK) {
|
if ((err = getin(&thing, &ptr, &arg, buf)) != RET_OK) {
|
||||||
if (err == END) {
|
if (err == END) {
|
||||||
switch (ewhat) {
|
switch (ewhat) {
|
||||||
|
@ -205,7 +202,7 @@ edit(void)
|
||||||
return err;
|
return err;
|
||||||
break;
|
break;
|
||||||
case 'l':
|
case 'l':
|
||||||
if ((err = doland(thing[0], arg, §)) != RET_OK)
|
if ((err = doland(thing[0], arg, ptr, §)) != RET_OK)
|
||||||
return err;
|
return err;
|
||||||
if (!putsect(§))
|
if (!putsect(§))
|
||||||
return RET_FAIL;
|
return RET_FAIL;
|
||||||
|
@ -276,20 +273,27 @@ noise(struct sctstr *sptr, int public_amt, s_char *name, int old, int new)
|
||||||
static void
|
static void
|
||||||
prsect(struct sctstr *sect)
|
prsect(struct sctstr *sect)
|
||||||
{
|
{
|
||||||
pr("X coord <X>: %d\t", sect->sct_x);
|
pr("Location <L>: %s\t", xyas(sect->sct_x, sect->sct_y, player->cnum));
|
||||||
pr("Y coord <Y>: %d\n", sect->sct_y);
|
pr("Distribution sector <D>: %s\n",
|
||||||
pr("X dist coord: %d\t", sect->sct_dist_x);
|
xyas(sect->sct_dist_x, sect->sct_dist_y, player->cnum));
|
||||||
pr("Y dist coord: %d\n", sect->sct_dist_y);
|
pr("Designation <s>: %c\t New designation <S>: %c\n",
|
||||||
pr(" sect own oo eff mob min gld frt oil urn wrk lty che plg ptime fall avail\n");
|
dchr[sect->sct_type].d_mnem, dchr[sect->sct_newtype].d_mnem);
|
||||||
pr("things: o O e m i g f c u w l x p t F a\n");
|
pr("own oo eff mob min gld frt oil urn wrk lty che plg ptime fall avail\n");
|
||||||
prxy("%4d,%-4d", sect->sct_x, sect->sct_y, player->cnum);
|
pr(" o O e m i g f c u w l x p t F a\n");
|
||||||
pr(" %c%c %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %4d %3d %5d %4d %5d\n", dchr[sect->sct_type].d_mnem, (sect->sct_newtype == sect->sct_type) ? ' ' : dchr[sect->sct_newtype].d_mnem, sect->sct_own, sect->sct_oldown, sect->sct_effic, sect->sct_mobil, sect->sct_min, sect->sct_gmin, sect->sct_fertil, sect->sct_oil, sect->sct_uran, sect->sct_work, sect->sct_loyal, getvar(V_CHE, (s_char *)sect, EF_SECTOR), getvar(V_PSTAGE, (s_char *)sect, EF_SECTOR), getvar(V_PTIME, (s_char *)sect, EF_SECTOR), getvar(V_FALLOUT, (s_char *)sect, EF_SECTOR), sect->sct_avail);
|
pr("%3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %3d %4d %3d %5d %4d %5d\n",
|
||||||
|
sect->sct_own, sect->sct_oldown, sect->sct_effic, sect->sct_mobil,
|
||||||
|
sect->sct_min, sect->sct_gmin, sect->sct_fertil, sect->sct_oil,
|
||||||
|
sect->sct_uran, sect->sct_work, sect->sct_loyal,
|
||||||
|
getvar(V_CHE, (s_char *)sect, EF_SECTOR),
|
||||||
|
getvar(V_PSTAGE, (s_char *)sect, EF_SECTOR),
|
||||||
|
getvar(V_PTIME, (s_char *)sect, EF_SECTOR),
|
||||||
|
getvar(V_FALLOUT, (s_char *)sect, EF_SECTOR), sect->sct_avail);
|
||||||
|
|
||||||
pr(" Mines <M>: %d\n", getvar(V_MINE, (s_char *)sect, EF_SECTOR));
|
pr("Mines <M>: %d\t", getvar(V_MINE, (s_char *)sect, EF_SECTOR));
|
||||||
pr(" Road %% <R>: %d\n", sect->sct_road);
|
|
||||||
pr(" Rail %% <r>: %d\n", sect->sct_rail);
|
|
||||||
pr(" Defense %% <d>: %d\n", sect->sct_defense);
|
|
||||||
pr("Coastal <C>: %d\n", sect->sct_coastal);
|
pr("Coastal <C>: %d\n", sect->sct_coastal);
|
||||||
|
pr("Road %% <R>: %d\t", sect->sct_road);
|
||||||
|
pr("Rail %% <r>: %d\t", sect->sct_rail);
|
||||||
|
pr("Defense %% <d>: %d\n", sect->sct_defense);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -479,10 +483,12 @@ getin(s_char **what, s_char **p, int *arg, s_char *buf)
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
doland(s_char op, int arg, struct sctstr *sect)
|
doland(s_char op, int arg, s_char *p, struct sctstr *sect)
|
||||||
{
|
{
|
||||||
natid newown, oldown;
|
natid newown, oldown;
|
||||||
|
coord newx, newy;
|
||||||
int new, old;
|
int new, old;
|
||||||
|
int des;
|
||||||
switch (op) {
|
switch (op) {
|
||||||
case 'C':
|
case 'C':
|
||||||
if (arg < 0)
|
if (arg < 0)
|
||||||
|
@ -612,11 +618,39 @@ doland(s_char op, int arg, struct sctstr *sect)
|
||||||
putvar(V_MINE, arg, (s_char *)sect, EF_SECTOR);
|
putvar(V_MINE, arg, (s_char *)sect, EF_SECTOR);
|
||||||
pr("Mines changed to %d\n", arg);
|
pr("Mines changed to %d\n", arg);
|
||||||
break;
|
break;
|
||||||
case 'X':
|
case 'L':
|
||||||
sect->sct_x = arg;
|
if (!sarg_xy(p, &newx, &newy))
|
||||||
|
return RET_SYN;
|
||||||
|
sect->sct_x = newx;
|
||||||
|
sect->sct_y = newy;
|
||||||
break;
|
break;
|
||||||
case 'Y':
|
case 'D':
|
||||||
sect->sct_y = arg;
|
if (!sarg_xy(p, &newx, &newy))
|
||||||
|
return RET_SYN;
|
||||||
|
pr("Distribtion Location for sector %s changed from %s to %s\n",
|
||||||
|
xyas(sect->sct_x, sect->sct_y, player->cnum),
|
||||||
|
xyas(sect->sct_dist_x, sect->sct_dist_y, player->cnum),
|
||||||
|
xyas(newx, newy, player->cnum));
|
||||||
|
sect->sct_dist_x = newx;
|
||||||
|
sect->sct_dist_y = newy;
|
||||||
|
break;
|
||||||
|
case 's':
|
||||||
|
des = typematch(p, EF_SECTOR);
|
||||||
|
if (des < 0)
|
||||||
|
return RET_SYN;
|
||||||
|
pr("Designation for sector %s changed from %c to %c\n",
|
||||||
|
xyas(sect->sct_x, sect->sct_y, player->cnum),
|
||||||
|
dchr[sect->sct_type].d_mnem, dchr[des].d_mnem);
|
||||||
|
sect->sct_type = des;
|
||||||
|
break;
|
||||||
|
case 'S':
|
||||||
|
des = typematch(p, EF_SECTOR);
|
||||||
|
if (des < 0)
|
||||||
|
return RET_SYN;
|
||||||
|
pr("New Designation for sector %s changed from %c to %c\n",
|
||||||
|
xyas(sect->sct_x, sect->sct_y, player->cnum),
|
||||||
|
dchr[sect->sct_newtype].d_mnem, dchr[des].d_mnem);
|
||||||
|
sect->sct_newtype = des;
|
||||||
break;
|
break;
|
||||||
case 'R':
|
case 'R':
|
||||||
if (arg > 100)
|
if (arg > 100)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue