1 /* Definitions for players in Xconq. 2 Copyright (C) 1992, 1993, 1994, 1996, 1999 Stanley T. Shebs. 3 4 Xconq is free software; you can redistribute it and/or modify 5 it under the terms of the GNU General Public License as published by 6 the Free Software Foundation; either version 2, or (at your option) 7 any later version. See the file COPYING. */ 8 9 /*! \file kernel/player.h 10 * \brief Definitions for players in Xconq. 11 */ 12 13 /*! \brief Player. 14 * 15 * This structure holds the player information. 16 */ 17 typedef struct a_player { 18 short id; /*!< unique id for the player */ 19 char *name; /*!< proper name of the player */ 20 char *configname; /*!< name of a particular configuration */ 21 char *displayname; /*!< name of the desired display */ 22 char *aitypename; /*!< name of an AI type */ 23 short advantage; /*!< player's desired initial advantage */ 24 char *remotewanted; /*!< name of remote desired for player */ 25 char *password; /*!< encrypted password of the player */ 26 int rid; /*!< identifier of the player's program */ 27 struct a_side *side; /*!< the \ref a_side "Side" being played */ 28 struct a_player *next; /*!< pointer to the next Player */ 29 } Player; 30 31 /*! \brief Player/side assignment. 32 * 33 * This is the mapping between players and sides. */ 34 typedef struct { 35 struct a_side *side; /*!< the \ref a_side "Side" */ 36 struct a_player *player; /*!< the \Player assigned to the side */ 37 int locked; /*!< true if the assignment can't be changed */ 38 } Assign; 39 40 /*! \brief Iteration over all players. 41 * 42 * For header for iterating through all \Players. 43 * \param v is the player iteration variable. 44 */ 45 #define for_all_players(v) \ 46 for (v = playerlist; v != NULL; v = v->next) 47 48 /*! \brief List of \Players. */ 49 extern Player *playerlist; 50 /*! \brief Last \Player in list. */ 51 extern Player *last_player; 52 53 /*! \brief List of player/side assignments */ 54 extern Assign *assignments; 55 56 extern Player *add_player(void); 57 extern Player *find_player(int n); 58 extern void canonicalize_player(Player *player); 59 extern char *player_desig(Player *player); 60