/*
* Empire - A multi-player, client/server Internet based war game.
- * Copyright (C) 1986-2006, Dave Pare, Jeff Bailey, Thomas Ruschak,
+ * Copyright (C) 1986-2009, Dave Pare, Jeff Bailey, Thomas Ruschak,
* Ken Stevens, Steve McClure
*
* This program is free software; you can redistribute it and/or modify
* ---
*
* player.h: Definitions for player information (threads)
- *
+ *
* Known contributors to this file:
* Dave Pare, 1994
* Doug Hay, 1998
+ * Markus Armbruster, 2005-2009
*/
#ifndef PLAYER_H
#define PLAYER_H
-#include <sys/types.h>
-#if !defined(_WIN32)
-#include <netinet/in.h>
-#endif
-#include "queue.h"
-#include "misc.h"
-#include "com.h"
+#include <time.h>
#include "empthread.h"
+#include "misc.h"
+#include "queue.h"
+#include "types.h"
+
+ /* nstat values */
+#define VIS bit(0)
+#define SANCT (bit(1) | VIS)
+#define NORM (bit(2) | VIS)
+#define GOD (bit(3) | NORM | VIS)
+#define EXEC bit(5)
+#define CAP bit(6)
+#define MONEY bit(7)
struct player {
struct emp_qelem queue;
natid cnum;
int state;
int flags;
- struct cmndstr *command;
+ struct cmndstr *command; /* currently executing command */
struct iop *iop;
char combuf[1024]; /* command input buffer, UTF-8 */
- char *argp[128]; /* arguments, ASCII */
- char *condarg; /* conditional, ASCII */
- time_t lasttime;
- int ncomstat;
- int minleft;
+ char *argp[128]; /* arguments, ASCII, valid if command */
+ char *condarg; /* conditional, ASCII, valid if command */
+ char *comtail[128]; /* start of args in combuf[] */
+ time_t lasttime; /* when nat_timeused was last updated */
int btused;
- int visitor;
int god;
int owner;
- int nstat;
- int waiting;
+ int nstat; /* command capabilities */
int simulation; /* e.g. budget command */
double dolcost;
- int broke;
- time_t curup; /* used in calc of minutes used */
- int aborted;
+ time_t curup; /* when last input was received */
+ int aborted; /* interrupt cookie or EOF received? */
+ int eof; /* EOF (cookie or real) received? */
+ int recvfail; /* #recvclient() failures */
int curid; /* for pr, cur. line's id, -1 none */
- int blitz_time;
char *map; /* pointer to in-mem map */
char *bmap; /* pointer to in-mem bmap */
};
#define PS_INIT 0
-#define PS_LOGIN 1
-#define PS_PLAYING 2
-#define PS_SHUTDOWN 3
-#define PS_KILL 4
+#define PS_PLAYING 1
+#define PS_SHUTDOWN 2
/* player flags */
enum {
- PF_UTF8 = bit(0) /* client wants UTF-8 */
+ PF_UTF8 = bit(0), /* client wants UTF-8 */
+ PF_DOWN = bit(1), /* told player game is down */
+ PF_HOURS = bit(2) /* told player hours restriction is on */
};
#endif