/*
* Empire - A multi-player, client/server Internet based war game.
- * Copyright (C) 1986-2007, 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 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)
+enum player_sleep {
+ PLAYER_SLEEP_NEVER, PLAYER_SLEEP_ON_INPUT, PLAYER_SLEEP_FREELY
+};
+
struct player {
struct emp_qelem queue;
empth_t *proc;
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 minleft was last debited */
- int ncomstat;
- int minleft;
+ time_t lasttime; /* when nat_timeused was last updated */
int btused;
int god;
int owner;
- int nstat;
+ int nstat; /* command capabilities */
int simulation; /* e.g. budget command */
double dolcost;
- int broke;
time_t curup; /* when last input was received */
- int aborted; /* interrupt cookie received? */
+ enum player_sleep may_sleep; /* when may thread sleep? */
+ 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 */
char *map; /* pointer to in-mem map */
char *bmap; /* pointer to in-mem bmap */
/* 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