#include <sys/time.h>
#include <netdb.h>
#include <errno.h>
+#include <setjmp.h>
+
+#include "util.h"
static MyEventType AlarmGenFunc(EventGenRec *gen, MyEvent *event);
static EventGenRec alarmGen =
static long baseTimeval;
-ExtFunc void AtExit(void (*handler)(void))
+
+void AtExit(void (*handler)(void))
{
#ifdef HAS_ON_EXIT
on_exit((void *)handler, NULL);
///////////// HELP MESSAGES /////////////
-ExtFunc void Header(void)
+void Header(void)
{
fprintf(stderr,
"NETRIS %s\t(c) 1994-1996,1999 Mark H. Weaver <mhw@netris.org>\n"
version_string);
} //Header
-ExtFunc void Usage(void)
+void Usage(void)
{
Header();
fprintf(stderr,
"\n", DEFAULT_PORT, DEFAULT_KEYS);
}
-ExtFunc void DistInfo(void)
+void DistInfo(void)
{
- Header();
fprintf(stderr,
"This program is free software; you can redistribute it and/or modify\n"
"it under the terms of the GNU General Public License as published by\n"
"\n");
} //DistInfo
-ExtFunc void Rules(void)
+void Rules(void)
{
Header();
fprintf(stderr,
* My really crappy random number generator follows
* Should be more than sufficient for our purposes though
*/
-ExtFunc void SRandom(int seed)
+void SRandom(int seed)
{
Game.seed = seed;
myRandSeed = seed % 31751 + 1;
} //SRandom
-ExtFunc int Random(int min, int max1)
+int Random(int min, int max1)
{ //return a random value
myRandSeed = (myRandSeed * 31751 + 15437) % 32767;
return myRandSeed % (max1 - min) + min;
///////////// I/O /////////////
-ExtFunc int MyRead(int fd, void *data, int len)
+int MyRead(int fd, void *data, int len)
{
int result, left;
return len;
} //MyRead
-ExtFunc int MyWrite(int fd, void *data, int len)
+int MyWrite(int fd, void *data, int len)
{
int result, left;
///////////// TIME /////////////
-ExtFunc void NormalizeTime(struct timeval *tv)
+void NormalizeTime(struct timeval *tv)
{
tv->tv_sec += tv->tv_usec / 1000000;
tv->tv_usec %= 1000000;
}
}
-ExtFunc void CatchAlarm(int sig)
+void CatchAlarm(int sig)
{
alarmGen.ready = 1;
signal(SIGALRM, CatchAlarm);
return E_alarm;
}
-ExtFunc void SetTimeval(struct timeval *tv, long usec)
+void SetTimeval(struct timeval *tv, long usec)
{
tv->tv_sec = usec / 1000000;
tv->tv_usec = usec % 1000000;
} //SetTimeval
-ExtFunc long GetTimeval(struct timeval *tv)
+long GetTimeval(struct timeval *tv)
{
return tv->tv_sec * 1000000 + tv->tv_usec;
} //GetTimeval
-ExtFunc long AbsTimeval(void)
+long AbsTimeval(void)
{
struct timeval tv;
return GetTimeval(&tv);
} //CurTimeval
-ExtFunc void ResetBaseTime(void)
-{
+void ResetBaseTime(void)
+{ //Reset the timer
baseTimeval = AbsTimeval();
} //ResetBaseTime
-ExtFunc void PauseTime(void)
-{
+void PauseTime(void)
+{ //Pause the timer
baseTimeval -= AbsTimeval();
} //PauseTime
-ExtFunc void ResumeTime(void)
-{
+void ResumeTime(void)
+{ //Unpause timer
baseTimeval += AbsTimeval();
} //ResumeTime
-ExtFunc long CurTimeval(void)
+long CurTimeval(void)
{
struct timeval tv;
return GetTimeval(&old.it_value);
}
-ExtFunc long SetITimer(long interval, long value)
+long SetITimer(long interval, long value)
{
long old;
///////////// ... /////////////
-ExtFunc volatile void die(char *msg)
+volatile void die(char *msg)
{
perror(msg);
exit(1);
}
-ExtFunc volatile void fatal(char *msg)
+volatile void fatal(char *msg)
{
fprintf(stderr, "%s\n", msg);
exit(1);
} //fatal
-ExtFunc void BlockSignals(MySigSet *saved, ...)
+void BlockSignals(MySigSet *saved, ...)
{
MySigSet set;
va_list args;
va_end(args);
} //BlockSignals
-ExtFunc void RestoreSignals(MySigSet *saved, MySigSet *set)
+void RestoreSignals(MySigSet *saved, MySigSet *set)
{
#ifdef HAS_SIGPROCMASK
sigprocmask(SIG_SETMASK, set, saved);
///////////// EVENTS /////////////
-ExtFunc void AddEventGen(EventGenRec *gen)
+void AddEventGen(EventGenRec *gen)
{
assert(gen->next == NULL);
gen->next = nextGen->next;
nextGen->next = gen;
} //AddEventGen
-ExtFunc void RemoveEventGen(EventGenRec *gen)
+void RemoveEventGen(EventGenRec *gen)
{
// assert(gen->next != NULL); /* Be more forgiving, for SIGINTs */
if (gen->next) {
}
} //RemoveEventGen
-ExtFunc MyEventType WaitMyEvent(MyEvent *event, int mask)
+MyEventType WaitMyEvent(MyEvent *event, int mask)
{ //poll
int i, retry = 0;
fd_set fds[FT_len];