Update of /cvsroot/netrek/server/Vanilla/robots
In directory sc8-pr-cvs7.sourceforge.net:/tmp/cvs-serv26631/robots
Modified Files:
basep.c inl.c inlcmds.c inlcomm.c inldefs.h mars.c marsdefs.h
marsmove.c newbie.c pret.c puck.c puckmove.c rmove.c
roboshar.c robotII.c
Added Files:
puckmove.h roboshar.h
Log Message:
merge from jerub darcs 2006-05-12
Index: mars.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/robots/mars.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- mars.c 22 Apr 2006 02:16:46 -0000 1.3
+++ mars.c 12 May 2006 03:44:49 -0000 1.4
@@ -14,15 +14,15 @@
#include "copyright.h"
#include <stdio.h>
#include <stdlib.h>
-#include <sys/types.h>
-#include <sys/time.h>
+#include <time.h>
#include <signal.h>
-#include <setjmp.h>
+#include <unistd.h>
#include "defs.h"
#include "struct.h"
#include "data.h"
-#include "marsdefs.h"
#include "proto.h"
+#include "roboshar.h"
+#include "marsdefs.h"
#define DOG_STATS ".dog_players"
@@ -54,6 +54,7 @@
int closefast; /* approach speed (soft turn) */
void cleanup();
+void config();
void greeting()
{
@@ -106,7 +107,7 @@
openmem(1);
readsysdefaults();
- sprintf(DogStats,"%s/%s\0",LOCALSTATEDIR,DOG_STATS);
+ sprintf(DogStats,"%s/%s",LOCALSTATEDIR,DOG_STATS);
if ( (pno = pickslot(QU_ROBOT)) < 0) exit(0);
me = &players[pno];
@@ -153,7 +154,7 @@
}
-config()
+void config()
{
int i;
FILE* f;
@@ -195,7 +196,7 @@
#define IND 0
- sprintf(TournMap_File,"%s/%s\0",SYSCONFDIR,TOURNMAP);
+ sprintf(TournMap_File,"%s/%s",SYSCONFDIR,TOURNMAP);
f = fopen(TournMap_File,"r");
if (f == NULL) {
Index: basep.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/robots/basep.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- basep.c 22 Apr 2006 02:16:46 -0000 1.2
+++ basep.c 12 May 2006 03:44:48 -0000 1.3
@@ -27,6 +27,8 @@
#include "defs.h"
#include "struct.h"
#include "data.h"
+#include "proto.h"
+#include "roboshar.h"
#include "basepdefs.h"
int debug=0;
@@ -72,8 +74,13 @@
void cleanup(int);
void checkmess(int);
-int start_internal();
-int obliterate();
+int rprog(char *login, char *monitor);
+void start_internal();
+void exitRobot();
+void obliterate(int wflag, char kreason);
+void check_robots_only();
+void startrobot(int num, char *s, char *h, char *log, int dg, int base, int def);
+void fix_planets();
void
reaper(sig)
@@ -95,7 +102,6 @@
int team = 4;
int pno;
int class; /* ship class 8/9/91 TC */
- int i;
if (gethostname(hostname, 64) != 0) {
perror("gethostname");
@@ -106,6 +112,7 @@
getpath();
(void) SIGNAL(SIGCHLD, reaper);
openmem(1);
+ do_message_post_set(check_command);
strcpy(robot_host,REMOTEHOST);
readsysdefaults();
SIGNAL(SIGALRM, checkmess); /*the def signal is needed - MK */
@@ -165,7 +172,6 @@
void checkmess(int unused)
{
int shmemKey = PKEY;
- int i;
HANDLE_SIG(SIGALRM,checkmess);
me->p_ghostbuster = 0; /* keep ghostbuster away */
@@ -208,10 +214,10 @@
/* check to see if all robots in the game. If so tell them to exit */
-check_robots_only()
+void check_robots_only()
{
- register i;
- register struct player *j;
+ int i;
+ struct player *j;
for (i = 0, j = players; i < MAXPLAYER; i++, j++) {
if (j->p_status == PFREE)
@@ -233,9 +239,7 @@
/* this is by no means foolproof */
-int
-rprog(login, monitor)
- char *login, *monitor;
+int rprog(char *login, char *monitor)
{
int v;
@@ -249,10 +253,10 @@
/* here we want to make sure everything is fuel and repair */
-fix_planets()
+void fix_planets()
{
- register i;
- register struct planet *j;
+ int i;
+ struct planet *j;
oldplanets = (struct planet *) malloc(sizeof(struct planet) * MAXPLANETS);
MCOPY(planets, oldplanets, sizeof(struct planet) * MAXPLANETS);
@@ -266,8 +270,8 @@
int
num_players()
{
- register i;
- register struct player *j;
+ int i;
+ struct player *j;
int c = 0;
for (i = 0, j = players; i < MAXPLAYER; i++, j++)
if (j->p_status != PFREE)
@@ -280,7 +284,7 @@
char *comm;
struct message *mess;
{
- register i;
+ int i;
int sv;
char buf[80], team[10], query[20], host[60], log[4], extra[80], desc[32];
int num;
@@ -311,10 +315,10 @@
num = 1;
def = 1;
} else
- return;
+ return 0;
} else { /* Start iggy, hoser, ... */
if (sv == 2) start_internal(team);
- return;
+ return 0;
}
}
if (strncmp(team, "fed", 3) == 0) {
@@ -335,17 +339,17 @@
strcpy(team, "-To");
} else {
messOne(255,roboname,from,"Unknown team name \"%s\"", team);
- return;
+ return 0;
}
if (num_players() + num > MAXPLAYER) {
messOne(255,roboname,from,"Too many players, sorry.");
- return;
+ return 0;
}
#ifdef nodef
if (teami == players[from].p_team) {
messOne(255,roboname,from,"Wrong team, pal.");
- return;
+ return 0;
}
#endif
@@ -382,13 +386,14 @@
messAll(255,roboname,buf);
startrobot(num, team, sv >= 4 ? host : NULL, sv > 4 ? log : NULL, dg, base, def);
+ return 0;
}
char *
namearg()
{
- register i, k = 0;
- register struct player *j;
+ int i, k = 0;
+ struct player *j;
char *name;
int namef = 1;
@@ -413,16 +418,12 @@
}
}
-int
-startrobot(num, s, h, log, dg, base, def)
- int num;
- char *s, *h, *log;
- int dg, base, def;
+void startrobot(int num, char *s, char *h, char *log, int dg, int base, int def)
{
char *remotehost;
char command[256];
char logc[256];
- register i;
+ int i;
if (h)
remotehost = h;
@@ -457,16 +458,16 @@
if (fork() == 0) {
SIGNAL(SIGALRM, SIG_DFL);
- execl("/bin/sh", "sh", "-c", command, 0);
+ execl("/bin/sh", "sh", "-c", command, (char *) NULL);
perror("basep'execl");
_exit(1);
}
sleep(5);
}
- return 1;
+ return;
}
-start_internal(type)
+void start_internal(type)
char *type;
{
char *argv[6];
@@ -530,7 +531,7 @@
exitRobot();
}
-exitRobot()
+void exitRobot()
{
SIGNAL(SIGALRM, SIG_IGN);
if (me != NULL && me->p_team != ALLTEAM) {
@@ -549,13 +550,10 @@
}
-obliterate(wflag, kreason)
- int wflag;
- char kreason;
+void obliterate(int wflag, char kreason)
{
/* 0 = do nothing to war status, 1= make war with all, 2= make peace with all */
struct player *j;
- int i, k;
/* clear torps and plasmas out */
MZERO(torps, sizeof(struct torp) * MAXPLAYER * (MAXTORP + MAXPLASMA));
Index: rmove.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/robots/rmove.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- rmove.c 23 Apr 2006 12:47:45 -0000 1.2
+++ rmove.c 12 May 2006 03:44:49 -0000 1.3
@@ -3,11 +3,14 @@
#include "copyright.h"
#include <stdio.h>
+#include <stdlib.h>
#include <signal.h>
#include <math.h>
#include "defs.h"
#include "struct.h"
#include "data.h"
+#include "proto.h"
+#include "roboshar.h"
#define SIZEOF(s) (sizeof (s) / sizeof (*(s)))
@@ -115,6 +118,12 @@
u_char getcourse();
char *robo_message();
char *termie_message(); /* added 8/2/91 TC */
+void exitRobot();
+int phaser_plasmas();
+void go_home(struct Enemy *ebuf);
+int do_repair();
+int isTractoringMe(struct Enemy *enemy_buf);
+int projectDamage(int eNum, int *dirP);
char roboname[15];
@@ -128,7 +137,7 @@
int avDir;
extern struct Enemy *get_nearest();
struct Enemy *enemy_buf;
- struct player *enemy;
+ struct player *enemy = NULL;
static int roboclock = 0;
static int avoid[2] = { -32, 32 };
int no_cloak;
@@ -573,8 +582,7 @@
as close to them as it can, while staying in its own space.
Otherwise, it will head to the center of its own space.
*/
-go_home(ebuf)
-struct Enemy *ebuf;
+void go_home(struct Enemy *ebuf)
{
int x, y;
double dx, dy;
@@ -638,7 +646,7 @@
if (! cloaker) cloak_off();
}
-phaser_plasmas()
+int phaser_plasmas()
{
struct torp *t;
int myphrange;
@@ -667,8 +675,7 @@
return 0;
}
-projectDamage(eNum, dirP)
- int *dirP;
+int projectDamage(int eNum, int *dirP)
{
register int i, j, numHits = 0, mx, my, tx, ty, dx, dy;
double tdx, tdy, mdx, mdy;
@@ -697,11 +704,10 @@
}
if (numHits > 0)
*dirP /= numHits;
- return (numHits);
+ return numHits;
}
-isTractoringMe(enemy_buf)
-struct Enemy *enemy_buf;
+int isTractoringMe(struct Enemy *enemy_buf)
{
return ((enemy_buf->e_hisflags & PFTRACT) && /* bug fix: was using */
!(enemy_buf->e_hisflags & PFPRESS) && /* e_flags 6/24/92 TC */
@@ -819,9 +825,9 @@
} /* end for */
} /* end else */
if (pcount == 0) {
- return (NOENEMY); /* no players in game */
+ return NOENEMY; /* no players in game */
} else if (ebuf.e_info == me->p_no) {
- return (0); /* no hostile players in the game */
+ return 0; /* no hostile players in the game */
} else {
j = &players[ebuf.e_info];
@@ -892,7 +898,6 @@
if ((polymorphic) && (j->p_ship.s_type != me->p_ship.s_type) &&
(j->p_ship.s_type != ATT)) { /* don't polymorph to ATT 4/8/92 TC */
extern int config();
- extern int getship();
int old_shield;
int old_damage;
old_shield = me->p_ship.s_maxshield;
@@ -908,7 +913,7 @@
/(float)old_damage;
}
- return (&ebuf);
+ return &ebuf;
}
}
@@ -931,11 +936,11 @@
return nearest;
}
-do_repair()
+int do_repair()
{
/* Repair if necessary (we are safe) */
- register struct planet* l;
+ struct planet* l;
int dx, dy;
int dist;
@@ -949,13 +954,13 @@
if ((dx < PFIREDIST) && (dy < PFIREDIST)) {
if (debug)
ERROR(1,( "%d) on top of hostile planet (%s)\n", me->p_no, l->pl_name));
- return(0); /* can't repair on top of hostile planets */
+ return 0; /* can't repair on top of hostile planets */
}
if ((int) (hypot((double) dx, (double) dy)) < PFIREDIST) {
if (debug)
ERROR(1,("%d) on top of hostile planet (%s)\n",
me->p_no, l->pl_name));
- return(0);
+ return 0;
}
}
me->p_desspeed = 0;
@@ -984,7 +989,7 @@
me->p_flags &= ~PFPLLOCK;
orbit();
}
- return(1);
+ return 1;
}
else { /* not repair, so ignore it */
me->p_desspeed = 0;
@@ -997,10 +1002,10 @@
ERROR(1,( "%d) repairing damage at %d\n",
me->p_no,
me->p_damage));
- return(1);
+ return 1;
}
else {
- return (0);
+ return 0;
}
}
@@ -1075,7 +1080,7 @@
}
}
*s='\0';
- return(rmessage);
+ return rmessage;
}
char* termie_message(enemy)
@@ -1153,11 +1158,10 @@
}
}
*s='\0';
- return(tmessage);
-
+ return tmessage;
}
-exitRobot()
+void exitRobot()
{
SIGNAL(SIGALRM, SIG_IGN);
if (me != NULL && me->p_team != ALLTEAM) {
Index: robotII.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/robots/robotII.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- robotII.c 22 Apr 2006 02:16:46 -0000 1.2
+++ robotII.c 12 May 2006 03:44:49 -0000 1.3
@@ -4,19 +4,21 @@
#include <stdio.h>
#include <stdlib.h>
-#include <sys/types.h>
-#include <sys/time.h>
+#include <unistd.h>
+#include <time.h>
#include <signal.h>
-#include <setjmp.h>
#include "defs.h"
#include "struct.h"
#include "data.h"
+#include "proto.h"
+#include "roboshar.h"
extern int redrawall; /* maint: missing "extern" 6/22/92 TC */
extern int lastm; /* maint: missing "extern" 6/22/92 TC */
extern char roboname[15]; /* So it can be defined dynamically */
+void config();
/* lots of neat flags */
int hostile;
@@ -54,7 +56,7 @@
register int i;
void rmove();
int team = -1;
- int bteam;
+ int bteam = FED;
int pno;
int class; /* ship class 8/9/91 TC */
@@ -301,7 +303,7 @@
}
-config()
+void config()
{
/* calc class-specific stuff */
Index: marsmove.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/robots/marsmove.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- marsmove.c 22 Apr 2006 02:16:46 -0000 1.2
+++ marsmove.c 12 May 2006 03:44:49 -0000 1.3
@@ -25,6 +25,7 @@
#include <stdio.h>
#include <stdlib.h>
+#include <unistd.h>
#include <signal.h>
#include <math.h>
#include <ctype.h>
@@ -34,6 +35,8 @@
#include "defs.h"
#include "struct.h"
#include "data.h"
+#include "proto.h"
+#include "roboshar.h"
#include "marsdefs.h"
@@ -185,14 +188,14 @@
void reset_game(void);
void reportFinal(void);
void reportStanding(void);
+int get_num_matches(int a, int b);
void cleanup(void);
+int nextFreeArena(void);
void smileon(struct player* j);
void do_msg_check(void);
void do_stats(int who);
-void do_war(void);
void join(int who);
void join_game(Track *track);
-void mars_rules(void);
int lookupshipname(char *shipname);
void do_score(void);
void player_maint(void);
@@ -1418,7 +1421,7 @@
return;
}
- old_a = &arenas[track->t_arena];
+ old_a = &arenas[(int) track->t_arena];
checkBadArenaNo(ano,"in teleport\n");
@@ -1704,7 +1707,7 @@
continue; /*Don't do this for dead and for puck*/
- a = &arenas[track->t_arena];
+ a = &arenas[(int) track->t_arena];
/* kill torps that might distract guys in other arenas */
@@ -1938,7 +1941,6 @@
static DogStatEntry player;
static int position= -1;
int plfd;
- int i;
int entries;
struct stat buf;
Index: puck.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/robots/puck.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- puck.c 22 Apr 2006 02:16:46 -0000 1.3
+++ puck.c 12 May 2006 03:44:49 -0000 1.4
@@ -10,16 +10,17 @@
#include "copyright.h"
#include <stdio.h>
+#include <unistd.h>
#include <stdlib.h>
-#include <sys/types.h>
-#include <sys/time.h>
+#include <time.h>
#include <signal.h>
-#include <setjmp.h>
#include "defs.h"
#include "struct.h"
#include "data.h"
-#include "puckdefs.h"
#include "proto.h"
+#include "puckdefs.h"
+#include "roboshar.h"
+#include "puckmove.h"
#ifdef PUCK_FIRST
#include <sys/sem.h>
Index: pret.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/robots/pret.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- pret.c 23 Apr 2006 10:39:10 -0000 1.3
+++ pret.c 12 May 2006 03:44:49 -0000 1.4
@@ -27,18 +27,14 @@
#include "defs.h"
#include "struct.h"
#include "data.h"
+#include "proto.h"
+#include "roboshar.h"
#include "pretdefs.h"
int debug=0;
char *roboname = "Kathy";
-#define NUMADJ 12
-static char *adj_s[NUMADJ] = {
- "VICIOUS", "RUTHLESS", "IRONFISTED", "RELENTLESS",
- "MERCILESS", "UNFLINCHING", "FEARLESS", "BLOODTHIRSTY",
- "FURIOUS", "DESPERATE", "FRENZIED", "RABID"};
-
#define NUMNAMES 20
static char *names[NUMNAMES] =
@@ -62,7 +58,7 @@
int trrange; /* tractor range 8/2/91 TC */
int ticks = 0;
int oldmctl;
-static realT = 0;
+static int realT = 0;
int pt_robots = 0;
int team1=0;
int team2=0;
@@ -71,7 +67,6 @@
static void cleanup(int);
void checkmess(int);
-static void start_internal(char *type);
static void obliterate(int wflag, char kreason, int killRobots);
static void start_a_robot(char *team);
static void stop_a_robot(void);
@@ -109,7 +104,6 @@
int team = 4;
int pno;
int class; /* ship class 8/9/91 TC */
- int i;
#ifndef TREKSERVER
if (gethostname(hostname, 64) != 0) {
@@ -201,7 +195,6 @@
void checkmess(int unused)
{
int shmemKey = PKEY;
- int i;
static int no_humans = 0;
static int no_bots = 0;
static int time_in_T = 0;
@@ -257,8 +250,8 @@
/* Stop or start a robot. */
if ((ticks % ROBOCHECK) == 0) {
int next_team;
- int np = num_players(&next_team);
-
+ num_players(&next_team);
+
if (!(ticks % ROBOEXITWAIT))
{
if(debugTarget != -1) {
@@ -442,7 +435,6 @@
static int
rprog(char *login, char *robotHost)
{
- int v;
char localHostName[80];
gethostname(localHostName, 80);
@@ -533,8 +525,8 @@
static char *
namearg(void)
{
- register i, k = 0;
- register struct player *j;
+ int i, k = 0;
+ struct player *j;
char *name;
int namef = 1;
@@ -579,7 +571,7 @@
return;
if (pid == 0) {
SIGNAL(SIGALRM, SIG_DFL);
- execl("/bin/sh", "sh", "-c", command, 0);
+ execl("/bin/sh", "sh", "-c", command, (char *) NULL);
perror("pret'execl");
_exit(1);
}
@@ -587,36 +579,6 @@
status->gameup |= GU_BOT_IN_GAME;
}
-static void start_internal(char *type)
-{
- char *argv[6];
- u_int argc = 0;
-
- argv[argc++] = "robot";
- if ((strncmp(type, "iggy", 2) == 0) ||
- (strncmp(type, "hunterkiller", 2) == 0)) {
- argv[argc++] = "-Ti";
- argv[argc++] = "-P";
- argv[argc++] = "-f"; /* Allow more than one */
- } else if (strncmp (type, "cloaker", 2) == 0) {
- argv[argc++] = "-Ti";
- argv[argc++] = "-C"; /* Never uncloak */
- argv[argc++] = "-F"; /* Needs no fuel */
- argv[argc++] = "-f";
- } else if (strncmp (type, "hoser", 2) == 0) {
- argv[argc++] = "-p";
- argv[argc++] = "-f";
- } else return;
-
- argv[argc] = NULL;
- if (fork() == 0) {
- SIGNAL(SIGALRM, SIG_DFL);
- execv(Robot,argv);
- perror(Robot);
- _exit(1);
- }
-}
-
static void cleanup(int unused)
{
register struct player *j;
@@ -730,7 +692,6 @@
{
/* 0 = do nothing to war status, 1= make war with all, 2= make peace with all */
struct player *j;
- int i, k;
/* clear torps and plasmas out */
MZERO(torps, sizeof(struct torp) * MAXPLAYER * (MAXTORP + MAXPLASMA));
--- NEW FILE: roboshar.h ---
/* from roboshar.c */
void robonameset(struct player *myself);
void messAll(int mynum, char *name, const char *fmt, ...);
u_char getcourse2(int x1, int y1, int x2, int y2);
void messOne(int mynum, char *name, int who, const char *fmt, ...);
/* from ntserv/commands.c */
int check_command(struct message *mess);
Index: newbie.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/robots/newbie.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- newbie.c 22 Apr 2006 02:16:46 -0000 1.3
+++ newbie.c 12 May 2006 03:44:49 -0000 1.4
@@ -27,6 +27,8 @@
#include "defs.h"
#include "struct.h"
#include "data.h"
+#include "proto.h"
+#include "roboshar.h"
#include "newbiedefs.h"
int debug=0;
@@ -34,14 +36,6 @@
char *roboname = "Merlin";
-static char *team_s[4] = {"federation", "romulan", "klingon", "orion"};
-
-#define NUMADJ 12
-static char *adj_s[NUMADJ] = {
- "VICIOUS", "RUTHLESS", "IRONFISTED", "RELENTLESS",
- "MERCILESS", "UNFLINCHING", "FEARLESS", "BLOODTHIRSTY",
- "FURIOUS", "DESPERATE", "FRENZIED", "RABID"};
-
#define NUMNAMES 20
static char *names[NUMNAMES] =
@@ -70,7 +64,6 @@
static void cleanup(int);
void checkmess(int);
-static void start_internal(char *type);
static void obliterate(int wflag, char kreason);
static void start_a_robot(char *team);
static void stop_a_robot(void);
@@ -103,7 +96,6 @@
int team = 4;
int pno;
int class; /* ship class 8/9/91 TC */
- int i;
#ifndef TREKSERVER
if (gethostname(hostname, 64) != 0) {
@@ -190,7 +182,6 @@
void checkmess(int unused)
{
int shmemKey = PKEY;
- int i;
static int no_humans = 0;
HANDLE_SIG(SIGALRM,checkmess);
@@ -308,8 +299,6 @@
static int
rprog(char *login, char *monitor)
{
- int v;
-
if (strcmp(login, "robot!") == 0)
/* if (strstr(monitor, "uci")) */
return 1;
@@ -378,8 +367,8 @@
static char *
namearg(void)
{
- register i, k = 0;
- register struct player *j;
+ int i, k = 0;
+ struct player *j;
char *name;
int namef = 1;
@@ -419,43 +408,13 @@
return;
if (pid == 0) {
SIGNAL(SIGALRM, SIG_DFL);
- execl("/bin/sh", "sh", "-c", command, 0);
+ execl("/bin/sh", "sh", "-c", command, (char *) NULL);
perror("newbie'execl");
_exit(1);
}
nb_robots++;
}
-static void start_internal(char *type)
-{
- char *argv[6];
- u_int argc = 0;
-
- argv[argc++] = "robot";
- if ((strncmp(type, "iggy", 2) == 0) ||
- (strncmp(type, "hunterkiller", 2) == 0)) {
- argv[argc++] = "-Ti";
- argv[argc++] = "-P";
- argv[argc++] = "-f"; /* Allow more than one */
- } else if (strncmp (type, "cloaker", 2) == 0) {
- argv[argc++] = "-Ti";
- argv[argc++] = "-C"; /* Never uncloak */
- argv[argc++] = "-F"; /* Needs no fuel */
- argv[argc++] = "-f";
- } else if (strncmp (type, "hoser", 2) == 0) {
- argv[argc++] = "-p";
- argv[argc++] = "-f";
- } else return;
-
- argv[argc] = NULL;
- if (fork() == 0) {
- SIGNAL(SIGALRM, SIG_DFL);
- execv(Robot,argv);
- perror(Robot);
- _exit(1);
- }
-}
-
static void cleanup(int unused)
{
register struct player *j;
@@ -514,7 +473,6 @@
{
/* 0 = do nothing to war status, 1= make war with all, 2= make peace with all */
struct player *j;
- int i, k;
/* clear torps and plasmas out */
MZERO(torps, sizeof(struct torp) * MAXPLAYER * (MAXTORP + MAXPLASMA));
--- NEW FILE: puckmove.h ---
void do_war(void);
void puck_rules(void);
void do_faceoff(void);
Index: marsdefs.h
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/robots/marsdefs.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- marsdefs.h 21 Mar 2005 05:23:46 -0000 1.1
+++ marsdefs.h 12 May 2006 03:44:49 -0000 1.2
@@ -8,6 +8,9 @@
#ifndef _h_marsdefs
#define _h_marsdefs
+void do_war(void);
+void mars_rules(void);
+void init_mars(void);
#include "defs.h"
Index: inldefs.h
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/robots/inldefs.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- inldefs.h 21 Mar 2005 05:23:46 -0000 1.1
+++ inldefs.h 12 May 2006 03:44:49 -0000 1.2
@@ -128,5 +128,7 @@
char *message; /* Message to print */
} Inl_countdown;
-#endif /* _h_inldefs */
+void start_countdown();
+void reset_inl(int);
+#endif /* _h_inldefs */
Index: roboshar.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/robots/roboshar.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- roboshar.c 22 Apr 2006 11:31:53 -0000 1.2
+++ roboshar.c 12 May 2006 03:44:49 -0000 1.3
@@ -4,11 +4,14 @@
#include "struct.h"
#include "data.h"
#include "proto.h"
+#include "roboshar.h"
#ifndef M_PI
#include <math.h>
#endif
+extern void do_message(int recip, int group, char *address, u_char from,
+ const char *fmt, va_list args);
/* Each robot must declare the following variables as globals */
extern int debug;
@@ -102,13 +105,7 @@
va_start(args, fmt);
-/* +++ 2.6pl0 cameron at sna.dec.com */
-#if defined(__alpha)
- sprintf(addrbuf, "%s->ALL", &name );
-#else
sprintf(addrbuf, "%s->ALL", name );
-#endif
-/* --- */
do_message(0, MALL, addrbuf, mynum, fmt, args);
va_end(args);
}
Index: inlcmds.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/robots/inlcmds.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- inlcmds.c 21 Mar 2005 05:23:46 -0000 1.1
+++ inlcmds.c 12 May 2006 03:44:49 -0000 1.2
@@ -10,15 +10,9 @@
would be a horror to implement in the old scheme..
*/
-#include <stdio.h>
-#include <ctype.h>
-#include <string.h>
-#include <time.h>
-#include <signal.h>
#include "defs.h"
#include "struct.h"
#include "data.h"
-
#include "gencmds.h"
#include "inldefs.h"
@@ -49,6 +43,7 @@
int
do_nothing()
{
+ return 0;
}
/********* COMMANDS LIST ********
Index: inl.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/robots/inl.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- inl.c 6 May 2006 12:28:20 -0000 1.4
+++ inl.c 12 May 2006 03:44:49 -0000 1.5
@@ -1,9 +1,5 @@
/* $Id$ */
-#ifndef lint
-static char vcid[] = "$Id$";
-#endif /* lint */
-
/*
* inl.c
*
@@ -15,26 +11,20 @@
*/
#include <stdio.h>
-#include <sys/types.h>
+#include <stdlib.h>
+#include <unistd.h>
#include <sys/time.h>
-#include <sys/resource.h>
-#include <signal.h>
-#include <sys/file.h>
#include <sys/wait.h>
-#include <errno.h>
-#include <pwd.h>
-#include <ctype.h>
+#include <sys/shm.h>
#include <time.h>
-#include <stdlib.h>
-#include <unistd.h>
#include <math.h>
#include "defs.h"
#include "struct.h"
#include "data.h"
#include "planets.h"
#include "inldefs.h"
-#include INC_STRINGS
#include "proto.h"
+#include "roboshar.h"
#include "ltd_stats.h"
/*
@@ -160,13 +150,19 @@
};
void cleanup();
-void reset_inl(int);
-int checkmess();
+void checkmess();
void inlmove();
int start_tourney();
void reset_stats();
void update_scores();
void announce_scores(int, int, FILE *);
+void doResources(int startup);
+void countdown(int counter, Inl_countdown *cnt);
+void obliterate(int wflag, char kreason);
+void player_maint();
+void init_server();
+int all_alert(int stat);
+int check_winner();
extern char *addr_mess(int who, int type);
@@ -176,12 +172,11 @@
int argc;
char *argv[];
{
- int i;
-
srandom(time(NULL));
getpath();
openmem(1);
+ do_message_post_set(check_command);
readsysdefaults();
if ((inl_log = fopen(N_INLLOG,"w+"))==NULL) {
@@ -386,7 +381,6 @@
{
register int i;
register struct planet *l;
- struct planet *homep = NULL;
struct player *j;
int loser, winner;
@@ -511,15 +505,14 @@
SIGNAL(SIGALRM, inlmove);
}
-player_maint()
+void player_maint()
{
#ifdef INLDEBUG
ERROR(2,("Enter player_maint\n"));
#endif
}
-int
-all_alert(int stat)
+int all_alert(int stat)
{
struct player *j;
@@ -530,43 +523,26 @@
return 1;
}
-logmessage(m)
- struct message *m;
+void logmessage(struct message *m)
{
- time_t curtime;
- struct tm *tmstruct;
- int hour;
- int least = MBOMB;
/* decide whether or not to log this message */
#ifdef nodef
if (m->m_flags & MINDIV) return; /* individual message */
if (!(m->m_flags & MGOD)) return;
if ((m->m_flags & MGOD) > least) return;
#endif
- /*
- time(&curtime);
- tmstruct = localtime(&curtime);
- if (!(hour = tmstruct->tm_hour%12)) hour = 12;
- fprintf(inl_log,"%02d:%02d %-73.73s\n", hour, tmstruct->tm_min,
- m->m_data);
- */
fprintf(inl_log,"%5d: %s\n",inl_stat.ticks,m->m_data);
}
-checkmess()
+void checkmess()
{
- int shmemKey = PKEY;
- int i;
-
#ifdef INLDEBUG
ERROR(2,("Enter checkmess\n"));
#endif
/* make sure shared memory is still valid */
- if (shmget(shmemKey, SHMFLAG, 0) < 0) {
+ if (shmget(PKEY, SHMFLAG, 0) < 0) {
exit(1);
- ERROR(2,("ERROR: Invalid shared memory\n"));
-
}
while (oldmctl!=mctl->mc_current) {
@@ -863,11 +839,10 @@
return -1;
}
-
+ return 0;
}
-int
-end_tourney()
+int end_tourney()
{
int game_over = 0;
int win_cond;
@@ -1024,7 +999,7 @@
status->gameup &= ~(GU_PAUSED);
gettimeofday(&tv, (struct timezone *) 0);
- fprintf(inl_log, "TIME: Game ending at %d seconds\n", tv.tv_sec);
+ fprintf(inl_log, "TIME: Game ending at %d seconds\n", (int) tv.tv_sec);
fclose(inl_log);
sleep(2); /* a kluge to allow time for all the ntservs to run */
@@ -1041,7 +1016,7 @@
players[c].p_pos = -1;
- sprintf(name, "%s.%d", N_INLLOG, tv.tv_sec);
+ sprintf(name, "%s.%d", N_INLLOG, (int) tv.tv_sec);
rename(N_INLLOG, name);
if ((inl_log = fopen(N_INLLOG,"w+"))==NULL) {
@@ -1049,13 +1024,13 @@
exit(1);
}
- sprintf(name, "%s.%d", N_PLAYERFILE, tv.tv_sec);
+ sprintf(name, "%s.%d", N_PLAYERFILE, (int) tv.tv_sec);
rename(N_PLAYERFILE, name);
- sprintf(name, "%s.%d", N_PLFILE, tv.tv_sec);
+ sprintf(name, "%s.%d", N_PLFILE, (int) tv.tv_sec);
rename(N_PLFILE, name);
- sprintf(name, "%s.%d", N_GLOBAL, tv.tv_sec);
+ sprintf(name, "%s.%d", N_GLOBAL, (int) tv.tv_sec);
rename(N_GLOBAL, name);
/* Stop cambot. */
@@ -1063,7 +1038,7 @@
kill(cambot_pid, SIGTERM);
waitpid(cambot_pid, NULL, 0);
cambot_pid = 0;
- sprintf(name, "%s.%d", Cambot_out, tv.tv_sec);
+ sprintf(name, "%s.%d", Cambot_out, (int) tv.tv_sec);
rename(Cambot_out, name);
}
@@ -1077,9 +1052,9 @@
pmessage(who, MINDIV, addr_mess(who, MINDIV),
"Official registration script starting.");
}
- sprintf(pipe, "./end_tourney.pl -register %d", tv.tv_sec);
+ sprintf(pipe, "./end_tourney.pl -register %d", (int) tv.tv_sec);
} else {
- sprintf(pipe, "./end_tourney.pl -practice %d", tv.tv_sec);
+ sprintf(pipe, "./end_tourney.pl -practice %d", (int) tv.tv_sec);
}
fp = popen(pipe, "r");
@@ -1108,11 +1083,10 @@
reset_inl(1);
} /* if (game_over) */
-
+ return 0;
}
-void
-reset_inl(int is_end_tourney)
+void reset_inl(int is_end_tourney)
/* is_end_tourney: boolean, used so that the galaxy isn't reset
at the end of a tournament. */
{
@@ -1203,10 +1177,9 @@
}
-init_server()
+void init_server()
{
- register i;
- register struct planet *j;
+ int i;
/* Tell other processes a game robot is running */
status->gameup |= GU_INROBOT;
@@ -1371,10 +1344,8 @@
exit(0);
}
-start_countdown()
+void start_countdown()
{
- int c;
-
inl_stat.change = 0;
inl_teams[HOME].side = sides[inl_teams[HOME].side_index].flag;
@@ -1415,14 +1386,11 @@
inl_countdown.end = inl_stat.ticks+INLSTARTFUSE;
inl_countdown.action = start_tourney;
inl_countdown.message = "Game start in %i %s";
-
}
-start_tourney()
+int start_tourney()
{
- int c;
- struct player* j;
struct timeval tv;
struct tm *tp;
char *ap;
@@ -1441,7 +1409,7 @@
gettimeofday (&tv, (struct timezone *) 0);
- fprintf(inl_log, "TIME: Game started at %d seconds\n", tv.tv_sec);
+ fprintf(inl_log, "TIME: Game started at %d seconds\n", (int) tv.tv_sec);
tp = localtime (&tv.tv_sec);
ap = asctime (tp);
@@ -1500,19 +1468,18 @@
if (pid < 0)
perror("fork cambot");
else if (pid == 0) {
- execl(Cambot, "cambot", 0);
+ execl(Cambot, "cambot", (char *) NULL);
perror("execl cambot");
}
else {
cambot_pid = pid;
}
}
+ return 0;
}
-obliterate(wflag, kreason)
- int wflag;
- char kreason;
+void obliterate(int wflag, char kreason)
{
/* 0 = do nothing to war status, 1= make war with all, 2= make peace with all */
struct player *j;
@@ -1593,13 +1560,10 @@
}
-countdown(counter,cnt)
- int counter;
- Inl_countdown *cnt;
+void countdown(int counter, Inl_countdown *cnt)
{
int i = 0;
int j = 0;
- char *ms;
if (cnt->end - cnt->counts[cnt->idx]*cnt->unit > counter)
return;
@@ -1625,8 +1589,7 @@
}
-doResources(startup)
- int startup;
+void doResources(int startup)
{
int i, j, k, which;
Index: inlcomm.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/robots/inlcomm.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- inlcomm.c 12 Aug 2005 04:35:08 -0000 1.3
+++ inlcomm.c 12 May 2006 03:44:49 -0000 1.4
@@ -8,23 +8,12 @@
*/
#include <stdio.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/time.h>
-#include <sys/resource.h>
#include <signal.h>
-#include <setjmp.h>
-#include <sys/file.h>
-#include <sys/wait.h>
-#include <sys/ipc.h>
-#include <sys/shm.h>
-#include <errno.h>
-#include <pwd.h>
-#include <ctype.h>
-#include <time.h>
#include "defs.h"
#include "struct.h"
#include "data.h"
+#include "proto.h"
+#include "roboshar.h"
#include "inldefs.h"
extern Inl_stats inl_stat;
@@ -88,15 +77,10 @@
-do_switchside(comm,mess)
+int do_switchside(comm,mess)
char *comm;
struct message *mess;
{
- int who;
- int queue;
- int side;
- struct player *j;
-
#ifndef nodef
return 0; /* disabled until fixed */
@@ -106,6 +90,10 @@
with a wait queue. cameron at stl.dec.com */
#else
+ int who;
+ int queue;
+ int side;
+ struct player *j;
#ifdef INLDEBUG
ERROR(2,(" Enter do_switchside\n"));
@@ -180,7 +168,7 @@
/* Allows the captain to agree on starting the game */
-do_start(comm,mess)
+int do_start(comm,mess)
char *comm;
struct message *mess;
{
@@ -276,9 +264,10 @@
inl_teams[c].flags &= ~T_START;
start_countdown();
+ return 0;
}
-do_register(comm,mess)
+int do_register(comm,mess)
char *comm;
struct message *mess;
{
@@ -305,9 +294,10 @@
pmessage(0, MALL, inl_from,
"Game is official.. will be automatically registered.");
+ return 0;
}
-do_gametime(comm,mess)
+int do_gametime(comm,mess)
char *comm;
struct message *mess;
{
@@ -403,10 +393,11 @@
inl_stat.time = time * PERMIN;
inl_stat.overtime = overtime * PERMIN;
}
+ return 0;
}
-do_army(comm,mess)
+int do_army(comm,mess)
char *comm;
struct message *mess;
{
@@ -467,12 +458,13 @@
army);
inl_stat.start_armies = army;
}
+ return 0;
}
/* Allows the captains of both teams to agree on resetting the galaxy */
-do_resetgalaxy(comm,mess)
+int do_resetgalaxy(comm,mess)
char *comm;
struct message *mess;
{
@@ -517,18 +509,19 @@
pmessage (0, MALL, inl_from,
"Game restarting with new galaxy. Teams should be reselected");
+ return 0;
}
/* Makes the player who sent the message captain if it hasn't been taken
yet. */
-do_captain(comm,mess)
+int do_captain(comm,mess)
char *comm;
struct message *mess;
{
int who;
- int c, num=-1;
+ int num = -1;
#ifdef INLDEBUG
ERROR(2,(" Enter do_captain\n"));
@@ -568,12 +561,12 @@
/* Allows the captain to release captaining duties */
-do_uncaptain(comm,mess)
+int do_uncaptain(comm,mess)
char *comm;
struct message *mess;
{
int who;
- int c, num=-1;
+ int num = -1;
#ifdef INLDEBUG
ERROR(2,(" Enter do_uncaptain\n"));
@@ -591,16 +584,25 @@
}
+static int get_other_side(int num)
+{
+ int c;
+ for (c=0; c < INLTEAM; c++) {
+ if (inl_teams[num].team != inl_teams[c].team)
+ return inl_teams[c].team;
+ }
+ return 0;
+}
+
/* This allows the captain to pick the different races */
-do_pickside(comm,mess)
+int do_pickside(comm,mess)
char *comm;
struct message *mess;
{
int who;
- int c, other_side, num=-1;
- int race,diagonal;
+ int c, other_side, num = -1;
#ifdef INLDEBUG
ERROR(2,(" Enter pickside\n"));
@@ -618,11 +620,7 @@
if ((num = check_player(who, 1)) == NONE) return 0;
- for (c=0; c < INLTEAM; c++)
- {
- if (inl_teams[num].team != inl_teams[c].team)
- other_side = inl_teams[c].team;
- }
+ other_side = get_other_side(num);
if (inl_teams[num].flags & T_SIDELOCKED)
{
@@ -688,13 +686,10 @@
return 1;
}
-do_tname(comm,mess)
- char *comm;
- struct message *mess;
+int do_tname(char *comm, struct message *mess)
{
int who;
-
- int c, other_side, num=-1;
+ int num = -1;
#ifdef INLDEBUG
ERROR(2,(" Enter do_tname\n"));
@@ -717,14 +712,14 @@
return 0;
}
- if (strlen(comm)+1 < 2)
+ comm++;
+
+ if (strlen(comm) < 1)
{
pmessage(who, MINDIV, addr_mess(who, MINDIV), "No team name was given.");
return 0;
}
- comm = ++comm;
-
/* free (inl_teams[num].t_name); */
inl_teams[num].t_name = strdup (comm);
pmessage(who, MINDIV, addr_mess(who, MINDIV),
@@ -739,16 +734,14 @@
inl_stat.flags &= ~(S_FREEZE | S_COUNTDOWN);
status->gameup &= ~(GU_PRACTICE | GU_PAUSED);
pmessage(0,MALL, inl_from, "---- Game continues ----");
+ return 0;
}
-do_pause(comm,mess)
+int do_pause(comm,mess)
char *comm;
struct message *mess;
{
int who;
- int queue;
- int side;
- struct player *j;
int c, begin=0, num=-1;
#ifdef INLDEBUG
@@ -818,17 +811,14 @@
inl_countdown.action=end_pause;
inl_countdown.message="Game continues in %i seconds";
}
-
+ return 0;
}
-do_restart(comm,mess)
+int do_restart(comm,mess)
char *comm;
struct message *mess;
{
int who;
- int queue;
- int side;
- struct player *j;
int c, restart=0, num=-1;
#ifdef INLDEBUG
@@ -861,13 +851,14 @@
pmessage(0, MALL, inl_from, "INL SERVER RESTARTED");
reset_inl(0);
}
+ return 0;
}
-do_timeout(char *comm, struct message *mess)
+int do_timeout(char *comm, struct message *mess)
{
int who;
int other_side;
- int c, num=-1;
+ int num = -1;
#ifdef INLDEBUG
ERROR(2,(" Enter do_pause\n"));
@@ -884,11 +875,7 @@
return 0;
}
- for (c=0; c < INLTEAM; c++)
- {
- if (inl_teams[num].team != inl_teams[c].team)
- other_side = inl_teams[c].team;
- }
+ other_side = get_other_side(num);
if (inl_teams[num].flags & T_TIMEOUT)
{
@@ -925,12 +912,13 @@
pmessage(0, MALL, inl_from,
"**********************************************************");
}
+ return 0;
}
-do_confine(char *comm, struct message *mess)
+int do_confine(char *comm, struct message *mess)
{
int who;
- int c, other_side, num=-1;
+ int other_side, num = -1;
#ifdef INLDEBUG
ERROR(2,(" Enter do_confine\n"));
@@ -946,11 +934,7 @@
return 0;
}
- for (c=0; c < INLTEAM; c++)
- {
- if (inl_teams[num].team != inl_teams[c].team)
- other_side = inl_teams[c].team;
- }
+ other_side = get_other_side(num);
if (inl_teams[num].flags & T_CONFINE)
{
@@ -974,9 +958,10 @@
inl_teams[num].t_name,
players[who].p_mapchars);
}
+ return 0;
}
-do_free(char *comm, struct message *mess)
+int do_free(char *comm, struct message *mess)
{
int num=-1;
int victim;
@@ -986,6 +971,7 @@
if ((num = check_player(who, 1)) == NONE) return 0; /* Captain ? */
+ extern int getplayer(int from, char *line); /* gencmds.c */
if ((victim = getplayer(who, comm)) == -1)
return 0;
@@ -1213,5 +1199,6 @@
pmessage(0, MALL, inl_from, "%s scoring mode approved. See MOTD.", mode);
inl_stat.score_mode = inl_teams[HOME].score_mode;
}
+ return 0;
}
Index: puckmove.c
===================================================================
RCS file: /cvsroot/netrek/server/Vanilla/robots/puckmove.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- puckmove.c 26 Apr 2006 09:52:43 -0000 1.4
+++ puckmove.c 12 May 2006 03:44:49 -0000 1.5
@@ -22,7 +22,10 @@
#include "defs.h"
#include "struct.h"
#include "data.h"
+#include "proto.h"
#include "puckdefs.h"
+#include "roboshar.h"
+#include "puckmove.h"
#ifdef PUCK_FIRST
#include <sys/sem.h>
@@ -143,13 +146,10 @@
void do_teleport_home(void);
void do_peace(void);
void do_msg_check(void);
-void do_war(void);
void place_anncer(void);
void do_offsides(void);
-void puck_rules(void);
void do_goal(int);
void do_score(void);
-void do_faceoff(void);
void woomp(void);
void player_maint(void);
void player_bounce(void);
@@ -158,6 +158,8 @@
unsigned char getcourse();
char *robo_message();
char *puckie_message(); /* added 8/2/91 TC */
+int isInPossession(struct Enemy *enemy_buf);
+int isPressoringMe(struct Enemy *enemy_buf);
#ifdef HAVE_GOALIE
struct player *ori_goalie = NULL;
@@ -1051,7 +1053,7 @@
if ((j != me) && (j->p_status == PALIVE)) {
if (((j->p_team == KLI) && (j->p_y > GWIDTH/2)) ||
((j->p_team == ORI) && (j->p_y < GWIDTH/2))) {
- int startplanet;
+ int startplanet = 10;
messAll(me->p_no,roboname,"%s (%2s) is offsides.", j->p_name,
j->p_mapchars);
j->p_flags &= ~(PFORBIT|PFPLOCK|PFPLLOCK|PFTRACT|PFPRESS); /* ***BAV*** */