1 /* Tetrinet for Linux, by Andrew Church <achurch@achurch.org>
2  * This program is public domain.
3  *
4  * Tetrinet main include file.
5  */
6 
7 #ifndef TETRINET_H
8 #define TETRINET_H
9 
10 #ifndef IO_H
11 # include "io.h"
12 #endif
13 
14 /*************************************************************************/
15 
16 /* Basic types */
17 
18 #define FIELD_WIDTH	12
19 #define FIELD_HEIGHT	22
20 typedef char Field[FIELD_HEIGHT][FIELD_WIDTH];
21 
22 typedef struct {
23     char name[32];
24     int team;	/* 0 = individual player, 1 = team */
25     int points;
26     int games;	/* Number of games played */
27 } WinInfo;
28 #define MAXWINLIST	64	/* Maximum size of winlist */
29 #define MAXSENDWINLIST	10	/* Maximum number of winlist entries to send
30 				 *    (this avoids triggering a buffer
31 				 *    overflow in Windows Tetrinet 1.13) */
32 #define MAXSAVEWINLIST	32	/* Maximum number of winlist entries to save
33 				 *    (this allows new players to get into
34 				 *    a winlist with very high scores) */
35 
36 /*************************************************************************/
37 
38 /* Overall display modes */
39 
40 #define MODE_FIELDS	0
41 #define MODE_PARTYLINE	1
42 #define MODE_WINLIST	2
43 #define MODE_SETTINGS	3
44 #define MODE_CLIENT	4	/* Client settings */
45 #define MODE_SERVER	5	/* Server settings */
46 
47 /*************************************************************************/
48 
49 /* Key definitions for input.  We use K_* to avoid conflict with ncurses */
50 
51 #define K_UP		0x100
52 #define K_DOWN		0x101
53 #define K_LEFT		0x102
54 #define K_RIGHT		0x103
55 #define K_F1		0x104
56 #define K_F2		0x105
57 #define K_F3		0x106
58 #define K_F4		0x107
59 #define K_F5		0x108
60 #define K_F6		0x109
61 #define K_F7		0x10A
62 #define K_F8		0x10B
63 #define K_F9		0x10C
64 #define K_F10		0x10D
65 #define K_F11		0x10E
66 #define K_F12		0x10F
67 
68 /* For function keys that don't correspond to something above, i.e. that we
69  * don't care about: */
70 #define K_INVALID	0x7FFF
71 
72 /*************************************************************************/
73 
74 /* Externs */
75 
76 extern int fancy;
77 extern int log;
78 extern char *logname;
79 extern int windows_mode;
80 extern int noslide;
81 extern int tetrifast;
82 extern int cast_shadow;
83 
84 extern int my_playernum;
85 extern WinInfo winlist[MAXWINLIST];
86 extern int server_sock;
87 extern int dispmode;
88 extern char *players[6];
89 extern char *teams[6];
90 extern int playing_game;
91 extern int not_playing_game;
92 extern int game_paused;
93 
94 extern Interface *io;
95 
96 /*************************************************************************/
97 
98 #endif
99