Vanilla Development Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
CVS update: Vanilla/tools
Date: Friday June 23, 2000 @ 4:12
Author: cameron
Update of /home/netrek/cvsroot/Vanilla/tools
In directory swashbuckler.fortress.real-time.com:/var/tmp/cvs-serv1956/tools
Modified Files:
players.c update.c xtkill.c
Log Message:
- Prevent beaming down out of T-mode,
- Add change password function,
- Prevent eject without queue (#ifdef'd),
- Alpha compilation fixes,
- Minor message changes.
****************************************
Index: Vanilla/tools/players.c
diff -u Vanilla/tools/players.c:1.5 Vanilla/tools/players.c:1.6
--- Vanilla/tools/players.c:1.5 Thu Mar 23 19:07:36 2000
+++ Vanilla/tools/players.c Fri Jun 23 04:12:59 2000
@@ -71,7 +71,7 @@
break;
case 'v':
- output("pid pl avrt std in ou who\n");
+ output("pid pl avrt std in ou who\n");
break;
default:
@@ -176,7 +176,7 @@
break;
}
}
- if (mode == 'v') return 0;
+ if (mode == 'v') return 0; /* dump queue hosts someday */
output("<>=======================================================================<>\n");
output(" Feds: %d Roms: %d Kli: %d Ori: %d\n",
Index: Vanilla/tools/update.c
diff -u Vanilla/tools/update.c:1.8 Vanilla/tools/update.c:1.9
--- Vanilla/tools/update.c:1.8 Tue Jan 11 20:29:53 2000
+++ Vanilla/tools/update.c Fri Jun 23 04:12:59 2000
@@ -179,10 +179,17 @@
#define SA_NOCLDWAIT 0
#endif
+/*
+ from man sigaction on linux red hat 6.1 alpha
+
+ The sa_restorer element is obsolete and should not be
+ used. POSIX does not specify a sa_restorer element.
+
#ifdef linux
#undef sa_sigaction
#define sa_sigaction sa_restorer
#endif
+*/
void no_zombies(void) {
@@ -852,7 +859,7 @@
temp->ttime / 3600.0,
temp->bombing+temp->offense+temp->planets,
(temp->bombing+temp->offense+temp->planets)*temp->ttime/3600.0,
- ctime(&(temp->lastlogin)));
+ ctime((time_t *)&(temp->lastlogin)));
temp=temp->next;
}
Index: Vanilla/tools/xtkill.c
diff -u Vanilla/tools/xtkill.c:1.5 Vanilla/tools/xtkill.c:1.6
--- Vanilla/tools/xtkill.c:1.5 Sun Feb 27 16:34:19 2000
+++ Vanilla/tools/xtkill.c Fri Jun 23 04:12:59 2000
@@ -22,242 +22,247 @@
int main(int argc, char **argv)
{
- int player;
- char buf[1000];
- int c;
-
- if (argc < 2)
- Usage();
- getpath();
-
- openmem(0);
-
- getshipdefaults();
-
- player=atoi(argv[1]);
- if ((player == 0) && (*argv[1] != '0')) {
- c = *argv[1];
- if (c >= 'a' && c <= 'z')
- player = c - 'a' + 10;
- else {
- Usage();
- }
- }
- if (player >= MAXPLAYER) {
- printf("MAXPLAYER is set to %d.\n", MAXPLAYER);
- exit(1);
+ int player;
+ char buf[1000];
+ int c;
+
+ if (argc < 2)
+ Usage();
+ getpath();
+
+ openmem(0);
+
+ getshipdefaults();
+
+ player=atoi(argv[1]);
+ if ((player == 0) && (*argv[1] != '0')) {
+ c = *argv[1];
+ if (c >= 'a' && c <= 'z')
+ player = c - 'a' + 10;
+ else {
+ Usage();
}
- if (players[player].p_status != PALIVE) {
- if (argc > 2)
- if (*argv[2] == 'F')
- /* forceShutdown the ntserv, which triggers freeslot */
- if (players[player].p_process > 1) {
- ERROR(1,("xtkilling player %i, process %i\n",player,players[player].p_process));
- if (kill (players[player].p_process, SIGTERM) < 0)
- freeslot(&players[player]);
- exit(0);
- } else {
- freeslot(&players[player]);
- exit(0);
- }
- if(players[player].p_status != POBSERV) {
- printf("Slot is not alive.\n");
- exit(1);
- }
+ }
+ if (player >= MAXPLAYER) {
+ printf("MAXPLAYER is set to %d, and you want %d?\n",
+ MAXPLAYER, player);
+ exit(1);
+ }
+
+ /* request to free slot? */
+ if (argc > 2) {
+ if (*argv[2] == 'F') {
+ /* if we have an ntserv pid_t, send it a SIGTERM and exit */
+ if (players[player].p_process > 1) {
+ if (kill(players[player].p_process, SIGTERM) == 0)
+ exit(0);
}
- if (argc > 2)
- switch (*argv[2]) {
- case 'T': {
- int team;
+ /* if we have no pid_t, or the pid_t was wrong, free slot */
+ freeslot(&players[player]);
+ exit(0);
+ }
+ }
+
+ if (players[player].p_status != PALIVE) {
+ if(players[player].p_status != POBSERV) {
+ printf("Slot is not alive.\n");
+ exit(1);
+ }
+ }
+
+ if (argc > 2)
+ switch (*argv[2]) {
+ case 'T': { /* change team */
+ int team;
- switch (argv[2][1]) {
- case 'f': team = 1; break;
- case 'r': team = 2; break;
- case 'k': team = 4; break;
- case 'o': team = 8; break;
- default: team = 0;
- }
- players[player].p_team = team;
- players[player].p_hostile &= ~team;
- players[player].p_swar &= ~team;
- players[player].p_war &= ~team;
- sprintf(buf, "GOD->ALL Change: %2s is now a %s.",
- players[player].p_mapchars,
- names[team]);
- _pmessage(buf, 0, MALL);
- sprintf(players[player].p_mapchars, "%c%c",
- teamlet[players[player].p_team], shipnos[player]);
- sprintf(players[player].p_longname, "%s (%s)",
- players[player].p_name, players[player].p_mapchars);
- }
- break;
- case 'e':
- sprintf(buf, "GOD->ALL %s has been ejected from the game.",
- players[player].p_longname);
- players[player].p_whydead=KQUIT;
- players[player].p_explode=10;
- players[player].p_status=3;
- players[player].p_whodead=0;
- _pmessage(buf, 0, MALL);
- break;
- case 't':
- switch(argv[2][1]) {
- case 'f':
- players[player].p_x = planets[0].pl_x;
- players[player].p_y = planets[0].pl_y;
- break;
- case 'r':
- players[player].p_x = planets[10].pl_x;
- players[player].p_y = planets[10].pl_y;
- break;
- case 'k':
- players[player].p_x = planets[20].pl_x;
- players[player].p_y = planets[20].pl_y;
- break;
- case 'o':
- players[player].p_x = planets[30].pl_x;
- players[player].p_y = planets[30].pl_y;
- break;
- case 'c':
- players[player].p_x = GWIDTH/2;
- players[player].p_y = GWIDTH/2;
- break;
- default:
- printf("Valid teleports: frkoc.\n");
- exit(1);
- }
- break;
- case 's':
- switch (argv[2][1]) {
- case 'a': getship(&players[player].p_ship, ASSAULT); break;
- case 'b': getship(&players[player].p_ship, BATTLESHIP); break;
- case 'c': getship(&players[player].p_ship, CRUISER); break;
- case 'd': getship(&players[player].p_ship, DESTROYER); break;
- case 's': getship(&players[player].p_ship, SCOUT); break;
- case 'o': getship(&players[player].p_ship, STARBASE); break;
- case 'A': getship(&players[player].p_ship, ATT); break;
- default:
- printf("Valid ship types: abcdsoA.\n");
- exit(1);
- break;
- }
- players[player].p_damage = 0;
- players[player].p_shield = players[player].p_ship.s_maxshield;
- players[player].p_wtemp = 0;
- players[player].p_etemp = 0;
- players[player].p_fuel = players[player].p_ship.s_maxfuel;
- break;
- case 'p': /* puck? */
- players[player].p_ship.s_tractstr = 1;
- players[player].p_ship.s_torpdamage = -1;
- players[player].p_ship.s_plasmadamage = -1;
- players[player].p_ship.s_phaserdamage = -1;
- players[player].p_hostile = 0;
- players[player].p_swar = 0;
- players[player].p_war = 0;
- players[player].p_team = 0; /* indep */
- players[player].p_ship.s_type = STARBASE;
- players[player].p_ship.s_mass = 200;
- players[player].p_ship.s_repair = 30000;
- players[player].p_ship.s_maxspeed = 0;
- case 'S': /* super ship */
- players[player].p_ship.s_maxshield = 750;
- players[player].p_shield = 750;
- players[player].p_ship.s_maxdamage = 750;
- players[player].p_ship.s_maxegntemp = 5000;
- break;
- case 'D': /* demote */
- --players[player].p_stats.st_rank;
- sprintf(buf, "GOD->ALL %2s was (temporarily) demoted for rank normalization purposes.",
- players[player].p_mapchars);
- _pmessage(buf, 0, MALL);
- break;
- case 'P':
- ++players[player].p_stats.st_rank;
- break;
- case 'k':
- players[player].p_kills += 1.0;
- break;
- case 'a':
- players[player].p_armies += 6;
- break;
- case 'C':
- teams[players[player].p_team].s_surrender = 6;
- break;
- case 'h':
- players[player].p_shield = 0;
- players[player].p_damage = players[player].p_ship.s_maxdamage/2;
- break;
- case 'R':
- if (players[player].p_flags & PFROBOT) {
- players[player].p_ship.s_type = STARBASE;
- players[player].p_whydead=KPROVIDENCE;
- players[player].p_explode=10;
- players[player].p_status=3;
- players[player].p_whodead=0;
- }
- break;
- case 'L':
-#ifdef LTD_STATS
-#ifndef LTD_PER_RACE
- players[player].p_stats.ltd[0][LTD_SB].deaths.total--;
-#endif
-#else
- players[player].p_stats.st_sblosses--;
-#endif
- break;
- default:
- Usage();
- } /* end switch */
- else {
- sprintf(buf, "GOD->ALL %s was utterly obliterated.",
- players[player].p_longname);
+ switch (argv[2][1]) {
+ case 'f': team = 1; break;
+ case 'r': team = 2; break;
+ case 'k': team = 4; break;
+ case 'o': team = 8; break;
+ default: team = 0;
+ }
+ players[player].p_team = team;
+ players[player].p_hostile &= ~team;
+ players[player].p_swar &= ~team;
+ players[player].p_war &= ~team;
+ sprintf(buf, "GOD->ALL Change: %2s is now a %s.",
+ players[player].p_mapchars,
+ names[team]);
+ _pmessage(buf, 0, MALL);
+ sprintf(players[player].p_mapchars, "%c%c",
+ teamlet[players[player].p_team], shipnos[player]);
+ sprintf(players[player].p_longname, "%s (%s)",
+ players[player].p_name, players[player].p_mapchars);
+ }
+ break;
+ case 'e': /* eject (GHOSTTIME applies in daemon) */
+ sprintf(buf, "GOD->ALL %s has been ejected from the game.",
+ players[player].p_longname);
+ players[player].p_whydead=KQUIT;
+ players[player].p_explode=10;
+ players[player].p_status=3;
+ players[player].p_whodead=0;
+ _pmessage(buf, 0, MALL);
+ break;
+ case 't': /* teleport */
+ switch(argv[2][1]) {
+ case 'f':
+ players[player].p_x = planets[0].pl_x;
+ players[player].p_y = planets[0].pl_y;
+ break;
+ case 'r':
+ players[player].p_x = planets[10].pl_x;
+ players[player].p_y = planets[10].pl_y;
+ break;
+ case 'k':
+ players[player].p_x = planets[20].pl_x;
+ players[player].p_y = planets[20].pl_y;
+ break;
+ case 'o':
+ players[player].p_x = planets[30].pl_x;
+ players[player].p_y = planets[30].pl_y;
+ break;
+ case 'c':
+ players[player].p_x = GWIDTH/2;
+ players[player].p_y = GWIDTH/2;
+ break;
+ default:
+ printf("Valid teleports: frkoc.\n");
+ exit(1);
+ }
+ break;
+ case 's': /* ship type change */
+ switch (argv[2][1]) {
+ case 'a': getship(&players[player].p_ship, ASSAULT); break;
+ case 'b': getship(&players[player].p_ship, BATTLESHIP); break;
+ case 'c': getship(&players[player].p_ship, CRUISER); break;
+ case 'd': getship(&players[player].p_ship, DESTROYER); break;
+ case 's': getship(&players[player].p_ship, SCOUT); break;
+ case 'o': getship(&players[player].p_ship, STARBASE); break;
+ case 'A': getship(&players[player].p_ship, ATT); break;
+ default:
+ printf("Valid ship types: abcdsoA.\n");
+ exit(1);
+ break;
+ }
+ players[player].p_damage = 0;
+ players[player].p_shield = players[player].p_ship.s_maxshield;
+ players[player].p_wtemp = 0;
+ players[player].p_etemp = 0;
+ players[player].p_fuel = players[player].p_ship.s_maxfuel;
+ break;
+ case 'p': /* puck? */
+ players[player].p_ship.s_tractstr = 1;
+ players[player].p_ship.s_torpdamage = -1;
+ players[player].p_ship.s_plasmadamage = -1;
+ players[player].p_ship.s_phaserdamage = -1;
+ players[player].p_hostile = 0;
+ players[player].p_swar = 0;
+ players[player].p_war = 0;
+ players[player].p_team = 0; /* indep */
+ players[player].p_ship.s_type = STARBASE;
+ players[player].p_ship.s_mass = 200;
+ players[player].p_ship.s_repair = 30000;
+ players[player].p_ship.s_maxspeed = 0;
+ case 'S': /* super ship */
+ players[player].p_ship.s_maxshield = 750;
+ players[player].p_shield = 750;
+ players[player].p_ship.s_maxdamage = 750;
+ players[player].p_ship.s_maxegntemp = 5000;
+ break;
+ case 'D': /* demote */
+ --players[player].p_stats.st_rank;
+ sprintf(buf, "GOD->ALL %2s was (temporarily) demoted for rank normalization purposes.",
+ players[player].p_mapchars);
+ _pmessage(buf, 0, MALL);
+ break;
+ case 'P': /* promote */
+ ++players[player].p_stats.st_rank;
+ break;
+ case 'k': /* kill increment */
+ players[player].p_kills += 1.0;
+ break;
+ case 'a': /* army increment */
+ players[player].p_armies += 6;
+ break;
+ case 'C': /* clock surrender reset */
+ teams[players[player].p_team].s_surrender = 6;
+ break;
+ case 'h': /* harm */
+ players[player].p_shield = 0;
+ players[player].p_damage = players[player].p_ship.s_maxdamage/2;
+ break;
+ case 'R': /* robot kill? */
+ if (players[player].p_flags & PFROBOT) {
players[player].p_ship.s_type = STARBASE;
players[player].p_whydead=KPROVIDENCE;
players[player].p_explode=10;
players[player].p_status=3;
players[player].p_whodead=0;
- _pmessage(buf, 0, MALL);
- }
- return 1; /* satisfy lint */
+ }
+ break;
+ case 'L': /* starbase loss adjust */
+#ifdef LTD_STATS
+#ifndef LTD_PER_RACE
+ players[player].p_stats.ltd[0][LTD_SB].deaths.total--;
+#endif
+#else
+ players[player].p_stats.st_sblosses--;
+#endif
+ break;
+ default:
+ Usage();
+ } /* end switch */
+ else {
+ sprintf(buf, "GOD->ALL %s was utterly obliterated.",
+ players[player].p_longname);
+ players[player].p_ship.s_type=STARBASE;
+ players[player].p_whydead=KPROVIDENCE;
+ players[player].p_explode=10;
+ players[player].p_status=3;
+ players[player].p_whodead=0;
+ _pmessage(buf, 0, MALL);
+ }
+ return 1; /* satisfy lint */
}
static void _pmessage(char *str, int recip, int group)
{
- struct message *cur;
- if (++(mctl->mc_current) >= MAXMESSAGE)
- mctl->mc_current = 0;
- cur = &messages[mctl->mc_current];
- cur->m_no = mctl->mc_current;
- cur->m_flags = group;
- cur->m_time = 0;
- cur->m_from = 255; /* change 3/30/91 TC */
- cur->m_recpt = recip;
- (void) sprintf(cur->m_data, "%s", str);
- cur->m_flags |= MVALID;
+ struct message *cur;
+ if (++(mctl->mc_current) >= MAXMESSAGE)
+ mctl->mc_current = 0;
+ cur = &messages[mctl->mc_current];
+ cur->m_no = mctl->mc_current;
+ cur->m_flags = group;
+ cur->m_time = 0;
+ cur->m_from = 255; /* change 3/30/91 TC */
+ cur->m_recpt = recip;
+ (void) sprintf(cur->m_data, "%s", str);
+ cur->m_flags |= MVALID;
}
static void Usage(void)
{
- printf("\
+ printf("\
xtkill [0-9a-z] <mode><mode option>\n\
\n\
where <mode> is one of :\n\
+ F(ree slot) (bypasses 6 minute ghostbuster timeout)\n\
e(ject from game) (simulates self-destruct)\n\
+ (no mode == obliterate)\n\
s(hip class change)[abcdosA] (A = ATT)\n\
t(eleport to quadrant)[frkoc] (c = center of galaxy)\n\
S(uper) (big shields/max damage/max etmp)\n\
T(eam change)[frko] (no team == independent)\n\
D(emote) (-1 to rank)\n\
P(romote) (+1 to rank)\n\
- F(ree slot) (bypasses 6 minute ghostbuster timeout)\n\
k(ills increment) (+1 kill)\n\
h(arm) (no shields, 50%% damage)\n\
a(rmies increment) (+6 armies)\n\
C(lock, surrender -- set it) (to 6 minutes (debugging aid))\n\
L(oss adjust, SB (-1)) (in case you toast an SB accidentally)\n\
R(obot obliterate) (like obliterate, but only for robots)\n\
- (no mode == obliterate)\n\
");
- exit(1);
+ exit(1);
}