Do_spying.cxx
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include "../central_intelligence_agency/cia.hxx"
#include "gen_match.hxx"
#define TRUE 1
#define FALSE 0
void line (char *str);
int playbuf[1000];
void main (int argc,char* argv[])
{
int activeplayers[MAXNUMPLAYERS];
int numplayers, matches;
int forcetactics;
char buf[1000];
int temporarymanagerbuilt = FALSE;
int write = 0;
CCia theCia;
theCia.LoadFile ();
for (int cnt = 1; cnt < argc; cnt++)
{
if ((strcmp (argv[cnt],"-all") == 0 || strcmp (argv[cnt],"-a") == 0))
theCia.ActivateAll ();
if ((strcmp (argv[cnt],"-clear") == 0 || strcmp (argv[cnt],"-c") == 0))
theCia.ClearAgainstUs ();
}
theCia.FindChangedPlayers ();
theCia.SaveFile ();
while (theCia.GetMatchesToPlay (activeplayers,&numplayers,playbuf,&matches,&forcetactics))
{
// printf ("%d: ",numplayers);
// for (int i = 0; i < numplayers; i++)
// printf ("%d ",activeplayers[i]);
// printf ("\n%s\n\n",playbuf);
if (!temporarymanagerbuilt)
{
int players[MAXNUMPLAYERS];
theCia.GetActivePlayers(players);
if (!GenerateManager (players,MAXNUMPLAYERS))
{
printf ("Failed to generate manager.\n");
exit(0);
}
char *tmpbuf;
printf ("Compiling...\n");
sprintf (buf,"gada %s",TMP_MAN_NAME_ADB);
if (*(tmpbuf = syscall (buf)) != '\0')
{
printf ("Aborting, due to error:\n\n");
printf (tmpbuf);
exit(0);
}
printf ("Linking...\n");
sprintf (buf,"gld %s",TMP_MAN_NAME);
if (*(tmpbuf = syscall (buf)) != '\0')
{
printf ("Aborting, due to error:\n\n");
printf (tmpbuf);
exit(0);
}
/* sprintf (buf,"ls -l %s",TMP_MAN_NAME);
if (lstimetolong(syscall(buf)) == -1)
{
printf ("Couldn't find manager, aborting...\n\n");
exit(0);
}*/
temporarymanagerbuilt = TRUE;
}
char *tmpbuf;
FILE* tmpfile;
if ((tmpfile = fopen (TEMPMANCONVFILE,"w")) == NULL)
{
printf ("Error writing file: %s\n",TEMPMANCONVFILE);
exit(0);
}
fwrite (&forcetactics,sizeof (int),1,tmpfile);
for (int i = 0; i < matches; i++)
{
fwrite ((playbuf+i*2),sizeof (int),1,tmpfile);
fwrite ((playbuf+i*2+1),sizeof (int),1,tmpfile);
}
fclose (tmpfile);
// printf ("Running...\n");
sprintf (buf,"%s",TMP_MAN_NAME);
tmpbuf = syscall (buf);
// printf (tmpbuf);
theCia.NoteMatchResults (tmpbuf);
if (write++ % 10 == 1)
theCia.SaveFile (); // avoid a lot of trouble if we interrupt
}
theCia.SaveFile ();
theCia.CheckBestMethods ();
theCia.CheckNameDependence ();
theCia.DumpActivePlayerNumbers ("andra_spelare");
if (temporarymanagerbuilt)
{
sprintf (buf,"rm %s",TMP_MAN_NAME);
system (buf);
sprintf (buf,"rm %s.adb",TMP_MAN_NAME);
system (buf);
sprintf (buf,"rm %s.o",TMP_MAN_NAME);
system (buf);
sprintf (buf,"rm %s.ali",TMP_MAN_NAME);
system (buf);
}
}
Tillbaka till huvudsidan