2009-07-04 11:51:34 +04:00
|
|
|
/* $NetBSD: hunt.h,v 1.18 2009/07/04 07:51:35 dholland Exp $ */
|
1998-01-09 11:03:16 +03:00
|
|
|
|
1997-10-04 13:00:13 +04:00
|
|
|
/*
|
2003-06-11 16:00:21 +04:00
|
|
|
* Copyright (c) 1983-2003, Regents of the University of California.
|
|
|
|
* All rights reserved.
|
|
|
|
*
|
|
|
|
* Redistribution and use in source and binary forms, with or without
|
|
|
|
* modification, are permitted provided that the following conditions are
|
|
|
|
* met:
|
|
|
|
*
|
|
|
|
* + Redistributions of source code must retain the above copyright
|
|
|
|
* notice, this list of conditions and the following disclaimer.
|
|
|
|
* + Redistributions in binary form must reproduce the above copyright
|
|
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
|
|
* documentation and/or other materials provided with the distribution.
|
|
|
|
* + Neither the name of the University of California, San Francisco nor
|
|
|
|
* the names of its contributors may be used to endorse or promote
|
|
|
|
* products derived from this software without specific prior written
|
|
|
|
* permission.
|
|
|
|
*
|
|
|
|
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
|
|
|
|
* IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
|
|
|
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
|
|
|
|
* PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
|
|
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
|
|
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
|
|
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
|
|
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
|
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
|
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
|
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
1997-10-04 13:00:13 +04:00
|
|
|
*/
|
|
|
|
|
2009-07-04 08:29:54 +04:00
|
|
|
#include "bsd.h"
|
|
|
|
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <string.h>
|
|
|
|
|
|
|
|
#ifdef LOG
|
|
|
|
#include <syslog.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include <sys/ioctl.h>
|
|
|
|
#include <sys/types.h>
|
|
|
|
#include <sys/uio.h>
|
|
|
|
#include <sys/poll.h>
|
|
|
|
|
|
|
|
#ifdef INTERNET
|
|
|
|
#include <netinet/in.h>
|
|
|
|
#include <netdb.h>
|
|
|
|
#include <arpa/inet.h>
|
|
|
|
#include <net/if.h>
|
|
|
|
#else
|
|
|
|
#include <sys/un.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef INTERNET
|
|
|
|
#define SOCK_FAMILY AF_INET
|
|
|
|
#else
|
|
|
|
#define SOCK_FAMILY AF_UNIX
|
|
|
|
#define AF_UNIX_HACK /* 4.2 hack; leaves files around */
|
|
|
|
#endif
|
1997-10-04 13:00:13 +04:00
|
|
|
|
|
|
|
/*
|
|
|
|
* Preprocessor define dependencies
|
|
|
|
*/
|
2009-07-04 08:29:54 +04:00
|
|
|
#if defined(VOLCANO) && !defined(OOZE)
|
|
|
|
#define OOZE
|
|
|
|
#endif
|
|
|
|
#if defined(BOOTS) && !defined(FLY)
|
|
|
|
#define FLY
|
|
|
|
#endif
|
|
|
|
#if !defined(REFLECT) && !defined(RANDOM)
|
|
|
|
#define RANDOM
|
|
|
|
#endif
|
1997-10-04 13:00:13 +04:00
|
|
|
|
|
|
|
/* decrement version number for each change in startup protocol */
|
2009-07-04 08:29:54 +04:00
|
|
|
#define HUNT_VERSION -1
|
|
|
|
|
|
|
|
#define ADDCH ('a' | 0200)
|
|
|
|
#define MOVE ('m' | 0200)
|
|
|
|
#define REFRESH ('r' | 0200)
|
|
|
|
#define CLRTOEOL ('c' | 0200)
|
|
|
|
#define ENDWIN ('e' | 0200)
|
|
|
|
#define CLEAR ('C' | 0200)
|
|
|
|
#define REDRAW ('R' | 0200)
|
|
|
|
#define LAST_PLAYER ('l' | 0200)
|
|
|
|
#define BELL ('b' | 0200)
|
|
|
|
#define READY ('g' | 0200)
|
1997-10-04 13:00:13 +04:00
|
|
|
|
|
|
|
/*
|
|
|
|
* Choose MAXPL and MAXMON carefully. The screen is assumed to be
|
|
|
|
* 23 lines high and will only tolerate (MAXPL == 17 && MAXMON == 0)
|
|
|
|
* or (MAXPL + MAXMON <= 16).
|
|
|
|
*/
|
2009-07-04 08:29:54 +04:00
|
|
|
#ifdef MONITOR
|
|
|
|
#define MAXPL 15
|
|
|
|
#define MAXMON 1
|
|
|
|
#else
|
|
|
|
#define MAXPL 17
|
|
|
|
#define MAXMON 0
|
|
|
|
#endif
|
|
|
|
#define SHORTLEN 2 /* sizeof (network short) */
|
|
|
|
#define LONGLEN 4 /* sizeof (network long) */
|
|
|
|
#define NAMELEN 20
|
|
|
|
#define MSGLEN SCREEN_WIDTH
|
|
|
|
#define DECAY 50.0
|
|
|
|
|
|
|
|
#define NASCII 128
|
|
|
|
|
|
|
|
#define WIDTH 51
|
|
|
|
#define WIDTH2 64 /* Next power of 2 >= WIDTH (for fast access) */
|
|
|
|
#define HEIGHT 23
|
|
|
|
#define UBOUND 1
|
|
|
|
#define DBOUND (HEIGHT - 1)
|
|
|
|
#define LBOUND 1
|
|
|
|
#define RBOUND (WIDTH - 1)
|
|
|
|
|
|
|
|
#define SCREEN_HEIGHT 24
|
|
|
|
#define SCREEN_WIDTH 80
|
|
|
|
#define SCREEN_WIDTH2 128 /* Next power of 2 >= SCREEN_WIDTH */
|
|
|
|
|
|
|
|
#define STAT_LABEL_COL 60
|
|
|
|
#define STAT_VALUE_COL 74
|
|
|
|
#define STAT_NAME_COL 61
|
|
|
|
#define STAT_SCAN_COL (STAT_NAME_COL + 5)
|
|
|
|
#define STAT_AMMO_ROW 0
|
|
|
|
#define STAT_GUN_ROW 1
|
|
|
|
#define STAT_DAM_ROW 2
|
|
|
|
#define STAT_KILL_ROW 3
|
|
|
|
#define STAT_PLAY_ROW 5
|
|
|
|
#ifdef MONITOR
|
|
|
|
#define STAT_MON_ROW (STAT_PLAY_ROW + MAXPL + 1)
|
|
|
|
#endif
|
|
|
|
#define STAT_NAME_LEN 18
|
|
|
|
|
|
|
|
#define DOOR '#'
|
|
|
|
#define WALL1 '-'
|
|
|
|
#define WALL2 '|'
|
|
|
|
#define WALL3 '+'
|
|
|
|
#ifdef REFLECT
|
|
|
|
#define WALL4 '/'
|
|
|
|
#define WALL5 '\\'
|
|
|
|
#endif
|
|
|
|
#define KNIFE 'K'
|
|
|
|
#define SHOT ':'
|
|
|
|
#define GRENADE 'o'
|
|
|
|
#define SATCHEL 'O'
|
|
|
|
#define BOMB '@'
|
|
|
|
#define MINE ';'
|
|
|
|
#define GMINE 'g'
|
|
|
|
#ifdef OOZE
|
|
|
|
#define SLIME '$'
|
|
|
|
#endif
|
|
|
|
#ifdef VOLCANO
|
|
|
|
#define LAVA '~'
|
|
|
|
#endif
|
|
|
|
#ifdef DRONE
|
|
|
|
#define DSHOT '?'
|
|
|
|
#endif
|
|
|
|
#ifdef FLY
|
|
|
|
#define FALL 'F'
|
|
|
|
#endif
|
|
|
|
#ifdef BOOTS
|
|
|
|
#define NBOOTS 2
|
|
|
|
#define BOOT 'b'
|
|
|
|
#define BOOT_PAIR 'B'
|
|
|
|
#endif
|
|
|
|
#define SPACE ' '
|
|
|
|
|
|
|
|
#define ABOVE 'i'
|
|
|
|
#define BELOW '!'
|
|
|
|
#define RIGHT '}'
|
|
|
|
#define LEFTS '{'
|
|
|
|
#ifdef FLY
|
|
|
|
#define FLYER '&'
|
|
|
|
#define isplayer(c) (c == LEFTS || c == RIGHT ||\
|
|
|
|
c == ABOVE || c == BELOW || c == FLYER)
|
|
|
|
#else
|
|
|
|
#define isplayer(c) (c == LEFTS || c == RIGHT ||\
|
|
|
|
c == ABOVE || c == BELOW)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define NORTH 01
|
|
|
|
#define SOUTH 02
|
|
|
|
#define EAST 010
|
|
|
|
#define WEST 020
|
|
|
|
|
|
|
|
#ifndef TRUE
|
|
|
|
#define TRUE 1
|
|
|
|
#define FALSE 0
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#undef CTRL
|
|
|
|
#define CTRL(x) ((x) & 037)
|
|
|
|
|
|
|
|
#define BULSPD 5 /* bullets movement speed */
|
|
|
|
#define ISHOTS 15
|
|
|
|
#define NSHOTS 5
|
|
|
|
#define MAXNCSHOT 2
|
|
|
|
#define MAXDAM 10
|
|
|
|
#define MINDAM 5
|
|
|
|
#define STABDAM 2
|
|
|
|
|
|
|
|
#define BULREQ 1
|
|
|
|
#define GRENREQ 9
|
|
|
|
#define SATREQ 25
|
|
|
|
#define BOMB7REQ 49
|
|
|
|
#define BOMB9REQ 81
|
|
|
|
#define BOMB11REQ 121
|
|
|
|
#define BOMB13REQ 169
|
|
|
|
#define BOMB15REQ 225
|
|
|
|
#define BOMB17REQ 289
|
|
|
|
#define BOMB19REQ 361
|
|
|
|
#define BOMB21REQ 441
|
|
|
|
#define MAXBOMB 11
|
|
|
|
#ifdef DRONE
|
|
|
|
#define MINDSHOT 2 /* At least a satchel bomb */
|
|
|
|
#endif
|
|
|
|
extern int shot_req[];
|
|
|
|
extern int shot_type[];
|
|
|
|
#ifdef OOZE
|
|
|
|
#define SLIME_FACTOR 3
|
|
|
|
#define SLIMEREQ 5
|
|
|
|
#define SSLIMEREQ 10
|
|
|
|
#define SLIME2REQ 15
|
|
|
|
#define SLIME3REQ 20
|
|
|
|
#define MAXSLIME 4
|
|
|
|
#define SLIMESPEED 5
|
|
|
|
extern int slime_req[];
|
|
|
|
#endif
|
|
|
|
#ifdef VOLCANO
|
|
|
|
#define LAVASPEED 1
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define CLOAKLEN 20
|
|
|
|
#define SCANLEN (Nplayer * 20)
|
|
|
|
#define EXPLEN 4
|
|
|
|
|
|
|
|
#define Q_QUIT 0
|
|
|
|
#define Q_CLOAK 1
|
|
|
|
#define Q_FLY 2
|
|
|
|
#define Q_SCAN 3
|
|
|
|
#define Q_MESSAGE 4
|
|
|
|
|
|
|
|
#define C_PLAYER 0
|
|
|
|
#define C_MONITOR 1
|
|
|
|
#define C_MESSAGE 2
|
|
|
|
#define C_SCORES 3
|
|
|
|
|
|
|
|
#ifdef MONITOR
|
|
|
|
#define C_TESTMSG() (Query_driver ? C_MESSAGE :\
|
|
|
|
(Show_scores ? C_SCORES :\
|
|
|
|
(Am_monitor ? C_MONITOR :\
|
|
|
|
C_PLAYER)))
|
|
|
|
#else
|
|
|
|
#define C_TESTMSG() (Show_scores ? C_SCORES :\
|
|
|
|
(Query_driver ? C_MESSAGE :\
|
|
|
|
C_PLAYER))
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef FLY
|
|
|
|
#define _scan_char(pp) (((pp)->p_scan < 0) ? ' ' : '*')
|
|
|
|
#define _cloak_char(pp) (((pp)->p_cloak < 0) ? _scan_char(pp) : '+')
|
|
|
|
#define stat_char(pp) (((pp)->p_flying < 0) ? _cloak_char(pp) : FLYER)
|
|
|
|
#else
|
|
|
|
#define _scan_char(pp) (((pp)->p_scan < 0) ? ' ' : '*')
|
|
|
|
#define stat_char(pp) (((pp)->p_cloak < 0) ? _scan_char(pp) : '+')
|
|
|
|
#endif
|
1997-10-04 13:00:13 +04:00
|
|
|
|
|
|
|
typedef int FLAG;
|
|
|
|
typedef struct bullet_def BULLET;
|
|
|
|
typedef struct expl_def EXPL;
|
|
|
|
typedef struct player_def PLAYER;
|
|
|
|
typedef struct ident_def IDENT;
|
|
|
|
typedef struct regen_def REGEN;
|
2009-07-04 08:29:54 +04:00
|
|
|
#ifdef INTERNET
|
1997-10-04 13:00:13 +04:00
|
|
|
typedef struct sockaddr_in SOCKET;
|
2009-07-04 08:29:54 +04:00
|
|
|
#else
|
1997-10-04 13:00:13 +04:00
|
|
|
typedef struct sockaddr_un SOCKET;
|
2009-07-04 08:29:54 +04:00
|
|
|
#endif
|
1997-10-04 13:00:13 +04:00
|
|
|
|
|
|
|
struct ident_def {
|
2009-07-04 08:29:54 +04:00
|
|
|
char i_name[NAMELEN];
|
|
|
|
char i_team;
|
2008-01-28 06:23:29 +03:00
|
|
|
uint32_t i_machine;
|
|
|
|
uint32_t i_uid;
|
2009-07-04 08:29:54 +04:00
|
|
|
float i_kills;
|
|
|
|
int i_entries;
|
|
|
|
float i_score;
|
|
|
|
int i_absorbed;
|
|
|
|
int i_faced;
|
|
|
|
int i_shot;
|
|
|
|
int i_robbed;
|
|
|
|
int i_slime;
|
|
|
|
int i_missed;
|
|
|
|
int i_ducked;
|
|
|
|
int i_gkills, i_bkills, i_deaths, i_stillb, i_saved;
|
|
|
|
IDENT *i_next;
|
1997-10-04 13:00:13 +04:00
|
|
|
};
|
|
|
|
|
|
|
|
struct player_def {
|
2009-07-04 08:29:54 +04:00
|
|
|
IDENT *p_ident;
|
|
|
|
char p_over;
|
|
|
|
int p_face;
|
|
|
|
int p_undershot;
|
|
|
|
#ifdef FLY
|
|
|
|
int p_flying;
|
|
|
|
int p_flyx, p_flyy;
|
|
|
|
#endif
|
|
|
|
#ifdef BOOTS
|
|
|
|
int p_nboots;
|
|
|
|
#endif
|
|
|
|
FILE *p_output;
|
|
|
|
int p_fd;
|
|
|
|
int p_mask;
|
|
|
|
int p_damage;
|
|
|
|
int p_damcap;
|
|
|
|
int p_ammo;
|
|
|
|
int p_ncshot;
|
|
|
|
int p_scan;
|
|
|
|
int p_cloak;
|
|
|
|
int p_x, p_y;
|
|
|
|
int p_ncount;
|
|
|
|
int p_nexec;
|
|
|
|
long p_nchar;
|
|
|
|
char p_death[MSGLEN];
|
|
|
|
char p_maze[HEIGHT][WIDTH2];
|
|
|
|
int p_curx, p_cury;
|
|
|
|
int p_lastx, p_lasty;
|
|
|
|
char p_cbuf[BUFSIZ];
|
1997-10-04 13:00:13 +04:00
|
|
|
};
|
|
|
|
|
|
|
|
struct bullet_def {
|
2009-07-04 08:29:54 +04:00
|
|
|
int b_x, b_y;
|
|
|
|
int b_face;
|
|
|
|
int b_charge;
|
|
|
|
char b_type;
|
|
|
|
char b_size;
|
|
|
|
char b_over;
|
|
|
|
PLAYER *b_owner;
|
|
|
|
IDENT *b_score;
|
|
|
|
FLAG b_expl;
|
|
|
|
BULLET *b_next;
|
1997-10-04 13:00:13 +04:00
|
|
|
};
|
|
|
|
|
|
|
|
struct expl_def {
|
2009-07-04 08:29:54 +04:00
|
|
|
int e_x, e_y;
|
|
|
|
char e_char;
|
|
|
|
EXPL *e_next;
|
1997-10-04 13:00:13 +04:00
|
|
|
};
|
|
|
|
|
|
|
|
struct regen_def {
|
2009-07-04 08:29:54 +04:00
|
|
|
int r_x, r_y;
|
|
|
|
REGEN *r_next;
|
1997-10-04 13:00:13 +04:00
|
|
|
};
|
|
|
|
|
|
|
|
/*
|
|
|
|
* external variables
|
|
|
|
*/
|
|
|
|
|
2009-07-04 08:29:54 +04:00
|
|
|
extern FLAG Last_player;
|
1997-10-04 13:00:13 +04:00
|
|
|
|
2009-07-04 08:29:54 +04:00
|
|
|
extern char Buf[BUFSIZ], Maze[HEIGHT][WIDTH2], Orig_maze[HEIGHT][WIDTH2];
|
1997-10-04 13:00:13 +04:00
|
|
|
|
2008-01-28 06:23:29 +03:00
|
|
|
extern const char *Driver;
|
1997-10-04 13:00:13 +04:00
|
|
|
|
2009-07-04 08:29:54 +04:00
|
|
|
extern int Nplayer, Socket, Status;
|
|
|
|
extern struct pollfd fdset[];
|
1997-10-04 13:00:13 +04:00
|
|
|
|
2009-07-04 08:29:54 +04:00
|
|
|
#ifdef INTERNET
|
|
|
|
extern u_short Test_port;
|
|
|
|
#else
|
|
|
|
extern char *Sock_name, *Stat_name;
|
|
|
|
#endif
|
1997-10-04 13:00:13 +04:00
|
|
|
|
2009-07-04 08:29:54 +04:00
|
|
|
#ifdef VOLCANO
|
|
|
|
extern int volcano;
|
|
|
|
#endif
|
1997-10-04 13:00:13 +04:00
|
|
|
|
2009-07-04 08:29:54 +04:00
|
|
|
extern int See_over[NASCII];
|
1997-10-04 13:00:13 +04:00
|
|
|
|
2009-07-04 08:29:54 +04:00
|
|
|
extern BULLET *Bullets;
|
1997-10-04 13:00:13 +04:00
|
|
|
|
2009-07-04 08:29:54 +04:00
|
|
|
extern EXPL *Expl[EXPLEN];
|
|
|
|
extern EXPL *Last_expl;
|
1997-10-04 13:00:13 +04:00
|
|
|
|
2009-07-04 08:29:54 +04:00
|
|
|
extern IDENT *Scores;
|
1997-10-04 13:00:13 +04:00
|
|
|
|
2009-07-04 08:29:54 +04:00
|
|
|
extern PLAYER Player[MAXPL], *End_player;
|
|
|
|
#ifdef BOOTS
|
|
|
|
extern PLAYER Boot[NBOOTS];
|
|
|
|
#endif
|
1997-10-04 13:00:13 +04:00
|
|
|
|
2009-07-04 08:29:54 +04:00
|
|
|
#ifdef MONITOR
|
|
|
|
extern FLAG Am_monitor;
|
|
|
|
extern PLAYER Monitor[MAXMON], *End_monitor;
|
|
|
|
#endif
|
1997-10-04 13:00:13 +04:00
|
|
|
|
2009-07-04 08:29:54 +04:00
|
|
|
#ifdef INTERNET
|
|
|
|
extern char *Send_message;
|
|
|
|
#endif
|
1997-10-04 13:00:13 +04:00
|
|
|
|
2009-07-04 08:29:54 +04:00
|
|
|
extern char map_key[256];
|
|
|
|
extern FLAG no_beep;
|
1997-10-04 13:00:13 +04:00
|
|
|
|
|
|
|
/*
|
|
|
|
* function types
|
|
|
|
*/
|
|
|
|
|
2009-07-04 08:29:54 +04:00
|
|
|
void add_shot(int, int, int, char, int, PLAYER *, int, char);
|
|
|
|
int answer(void);
|
|
|
|
void bad_con(void) __dead;
|
|
|
|
void bad_ver(void) __dead;
|
|
|
|
int broadcast_vec(int, struct sockaddr **);
|
|
|
|
void ce(PLAYER *);
|
|
|
|
void cgoto(PLAYER *, int, int);
|
|
|
|
void check(PLAYER *, int, int);
|
|
|
|
void checkdam(PLAYER *, PLAYER *, IDENT *, int, char);
|
|
|
|
void clearwalls(void);
|
|
|
|
void clear_eol(void);
|
|
|
|
void clear_the_screen(void);
|
|
|
|
void clrscr(PLAYER *);
|
|
|
|
BULLET *create_shot(int, int, int, char, int, int, PLAYER *,
|
2004-01-27 23:30:28 +03:00
|
|
|
IDENT *, int, char);
|
2009-07-04 08:29:54 +04:00
|
|
|
void do_connect(char *, char, long);
|
|
|
|
void do_message(void);
|
|
|
|
void drawmaze(PLAYER *);
|
|
|
|
void drawplayer(PLAYER *, FLAG);
|
|
|
|
void drawstatus(PLAYER *);
|
|
|
|
void execute(PLAYER *);
|
|
|
|
void faketalk(void);
|
|
|
|
void find_driver(FLAG);
|
|
|
|
void fixshots(int, int, char);
|
|
|
|
IDENT *get_ident(uint32_t, uint32_t, char *, char);
|
|
|
|
void get_local_name(char *);
|
|
|
|
int get_remote_name(char *);
|
|
|
|
BULLET *is_bullet(int, int);
|
|
|
|
void look(PLAYER *);
|
|
|
|
void makemaze(void);
|
|
|
|
void message(PLAYER *, const char *);
|
|
|
|
void mon_execute(PLAYER *);
|
|
|
|
void moveshots(void);
|
|
|
|
void open_ctl(void);
|
|
|
|
int opposite(int, char);
|
|
|
|
void otto(int, int, char);
|
|
|
|
void outch(PLAYER *, int);
|
|
|
|
void outstr(PLAYER *, const char *, int);
|
|
|
|
int player_sym(PLAYER *, int, int);
|
|
|
|
PLAYER *play_at(int, int);
|
|
|
|
void playit(void);
|
|
|
|
void put_ch(char);
|
|
|
|
void put_str(char *);
|
|
|
|
int quit(int);
|
|
|
|
int rand_dir(void);
|
|
|
|
int rand_num(int);
|
|
|
|
void redraw_screen(void);
|
|
|
|
void rmnl(char *);
|
|
|
|
void rollexpl(void);
|
|
|
|
void see(PLAYER *, int);
|
|
|
|
void sendcom(PLAYER *, int, ...);
|
|
|
|
void showexpl(int, int, char);
|
|
|
|
void showstat(PLAYER *);
|
|
|
|
void start_driver(void);
|
|
|
|
void stmonitor(PLAYER *);
|
|
|
|
void stplayer(PLAYER *, int);
|
|
|
|
char translate(char);
|
2009-07-04 10:38:34 +04:00
|
|
|
void cleanup(int) __dead;
|
|
|
|
void intr(int);
|
|
|
|
void sigalrm(int);
|
|
|
|
void sigemt(int) __dead;
|
|
|
|
void sigterm(int) __dead;
|
|
|
|
void sigusr1(int) __dead;
|
|
|
|
void tstp(int);
|