Branch data Line data Source code
1 : : // constants for both server and client
2 : : #ifndef CONSTANTS_H
3 : : #define CONSTANTS_H
4 : :
5 : : #define SCR_W 80
6 : : #define SCR_H 23
7 : :
8 : : #define BATTLE_W 60
9 : : #define BATTLE_H (SCR_H - 2)
10 : :
11 : : #define FFA_MAP_W BATTLE_W
12 : : #define FFA_MAP_H BATTLE_H
13 : :
14 : : #define IPADDR_SIZE 24
15 : : #define USERNAME_SIZE 12
16 : : #define MSG_SIZE 96
17 : : #define USER_CNT 14
18 : :
19 : : #define LANDMINE_COST 12
20 : :
21 : : #define INF 1e9
22 : :
23 : : #define PASSWORD_SIZE USERNAME_SIZE
24 : :
25 : : enum {
26 : : ITEM_NONE,
27 : : ITEM_MAGAZINE,
28 : : ITEM_MAGMA,
29 : : ITEM_GRASS,
30 : : ITEM_BLOOD_VIAL,
31 : : ITEM_END,
32 : : ITEM_BULLET,
33 : : ITEM_LANDMINE,
34 : : ITEM_SIZE, // make it on the end!
35 : : };
36 : :
37 : : enum {
38 : : MAP_ITEM_NONE,
39 : : MAP_ITEM_MY_BULLET,
40 : : MAP_ITEM_OTHER_BULLET,
41 : : MAP_ITEM_MAGAZINE,
42 : : MAP_ITEM_BLOOD_VIAL,
43 : : MAP_ITEM_MAGMA,
44 : : MAP_ITEM_USER,
45 : : MAP_ITEM_OTHER_USER,
46 : : MAP_ITEM_GRASS,
47 : : MAP_ITEM_LANDMINE,
48 : : MAP_ITEM_END,
49 : : };
50 : :
51 : : enum {
52 : : DIR_UP,
53 : : DIR_DOWN,
54 : : DIR_LEFT,
55 : : DIR_RIGHT,
56 : : DIR_UP_LEFT,
57 : : DIR_UP_RIGHT,
58 : : DIR_DOWN_LEFT,
59 : : DIR_DOWN_RIGHT,
60 : : };
61 : :
62 : : enum {
63 : : BATTLE_STATE_UNJOINED,
64 : : BATTLE_STATE_LIVE,
65 : : BATTLE_STATE_WITNESS,
66 : : BATTLE_STATE_DEAD,
67 : : };
68 : :
69 : : /* unused --> not login --> login <-...-> battle
70 : : *
71 : : * unused --> not login --> unused // login fail
72 : : *
73 : : * login <--> invited to battle <--> battle
74 : : * */
75 : : #define USER_STATE_UNUSED 0
76 : : #define USER_STATE_NOT_LOGIN 1
77 : : #define USER_STATE_LOGIN 2
78 : : #define USER_STATE_BATTLE 3
79 : : #define USER_STATE_WAIT_TO_BATTLE 4
80 : :
81 : : #define BLACK "\e[0;30m"
82 : : #define L_BLACK "\e[1;30m"
83 : : #define RED "\e[0;31m"
84 : : #define L_RED "\e[1;31m"
85 : : #define GREEN "\e[0;32m"
86 : : #define L_GREEN "\e[1;32m"
87 : : #define BROWN "\e[0;33m"
88 : : #define YELLOW "\e[1;33m"
89 : : #define BLUE "\e[0;34m"
90 : : #define L_BLUE "\e[1;34m"
91 : : #define PURPLE "\e[0;35m"
92 : : #define L_PURPLE "\e[1;35m"
93 : : #define CYAN "\e[0;36m"
94 : : #define L_CYAN "\e[1;36m"
95 : : #define GRAY "\e[0;37m"
96 : : #define WHITE "\e[1;37m"
97 : : #define BOLD "\e[1m"
98 : : #define UNDERLINE "\e[4m"
99 : : #define BLINK "\e[5m"
100 : : #define REVERSE "\e[7m"
101 : : #define HIDE "\e[8m"
102 : : #define CLEAR "\e[2J"
103 : : #define CLRLINE "\r\e[K"
104 : : #define NONE "\e[0m"
105 : :
106 : : char* signal_name_s[128];
107 : : char* color_s[128];
108 : : char* map_s[128];
109 : : char* item_s[128];
110 : : char* dir_s[128];
111 : : int item_to_map[128];
112 : : int color_s_size;
113 : : struct point_t {
114 : : int x, y;
115 : : };
116 : : point_t dir_offset[] = {
117 : : [DIR_UP] = {0, -1},
118 : : [DIR_DOWN] = {0, 1},
119 : : [DIR_LEFT] = {-1, 0},
120 : : [DIR_RIGHT] = {1, 0},
121 : : [DIR_UP_LEFT] = {-1, -1},
122 : : [DIR_UP_RIGHT] = {1, -1},
123 : : [DIR_DOWN_LEFT] = {-1, 1},
124 : : [DIR_DOWN_RIGHT] = {1, 1},
125 : : };
126 : :
127 : 1 : void init_constants() {
128 : 1 : item_s[ITEM_NONE] = (char*)"none";
129 : 1 : item_s[ITEM_MAGAZINE] = (char*)"magazine";
130 : 1 : item_s[ITEM_MAGMA] = (char*)"magma";
131 : 1 : item_s[ITEM_GRASS] = (char*)"grass";
132 : 1 : item_s[ITEM_BLOOD_VIAL] = (char*)"blood_vial";
133 : 1 : item_s[ITEM_END] = (char*)"end";
134 : 1 : item_s[ITEM_BULLET] = (char*)"bullet";
135 : 1 : item_s[ITEM_LANDMINE] = (char*)"landmine";
136 : :
137 : 1 : dir_s[DIR_UP] = (char*)"up";
138 : 1 : dir_s[DIR_DOWN] = (char*)"down";
139 : 1 : dir_s[DIR_LEFT] = (char*)"left";
140 : 1 : dir_s[DIR_RIGHT] = (char*)"right";
141 : 1 : dir_s[DIR_UP_LEFT] = (char*)"up&left";
142 : 1 : dir_s[DIR_UP_RIGHT] = (char*)"up&right";
143 : 1 : dir_s[DIR_DOWN_LEFT] = (char*)"down&left";
144 : 1 : dir_s[DIR_DOWN_RIGHT] = (char*)"down&right";
145 : :
146 : 1 : map_s[MAP_ITEM_NONE] = (char*)" ";
147 : 1 : map_s[MAP_ITEM_MAGAZINE] = (char*)"+";
148 : 1 : map_s[MAP_ITEM_MAGMA] = (char*)"X";
149 : 1 : map_s[MAP_ITEM_GRASS] = (char*)"\033[2;37m█\033[0m";
150 : 1 : map_s[MAP_ITEM_BLOOD_VIAL] = (char*)"*";
151 : 1 : map_s[MAP_ITEM_MY_BULLET] = (char*)".";
152 : 1 : map_s[MAP_ITEM_OTHER_BULLET] = (char*)".";
153 : 1 : map_s[MAP_ITEM_USER] = (char*)"A";
154 : 1 : map_s[MAP_ITEM_LANDMINE] = (char*)"o";
155 : 1 : map_s[MAP_ITEM_END] = (char*)" ";
156 : :
157 : 1 : item_to_map[ITEM_NONE] = MAP_ITEM_NONE;
158 : 1 : item_to_map[ITEM_MAGAZINE] = MAP_ITEM_MAGAZINE;
159 : 1 : item_to_map[ITEM_MAGMA] = MAP_ITEM_MAGMA;
160 : 1 : item_to_map[ITEM_GRASS] = MAP_ITEM_GRASS;
161 : 1 : item_to_map[ITEM_BLOOD_VIAL] = MAP_ITEM_BLOOD_VIAL;
162 : 1 : item_to_map[ITEM_LANDMINE] = MAP_ITEM_LANDMINE;
163 : 1 : item_to_map[ITEM_END] = MAP_ITEM_END;
164 : :
165 : 1 : signal_name_s[SIGHUP ] = (char*)"SIGHUP";
166 : 1 : signal_name_s[SIGINT ] = (char*)"SIGINT";
167 : 1 : signal_name_s[SIGQUIT ] = (char*)"SIGQUIT";
168 : 1 : signal_name_s[SIGILL ] = (char*)"SIGILL" ;
169 : 1 : signal_name_s[SIGABRT ] = (char*)"SIGABRT";
170 : 1 : signal_name_s[SIGFPE ] = (char*)"SIGFPE" ;
171 : 1 : signal_name_s[SIGKILL ] = (char*)"SIGKILL";
172 : 1 : signal_name_s[SIGSEGV ] = (char*)"SIGSEGV";
173 : 1 : signal_name_s[SIGPIPE ] = (char*)"SIGPIPE";
174 : 1 : signal_name_s[SIGALRM ] = (char*)"SIGALRM";
175 : 1 : signal_name_s[SIGTERM ] = (char*)"SIGTERM";
176 : 1 : signal_name_s[SIGUSR1 ] = (char*)"SIGUSR1";
177 : 1 : signal_name_s[SIGUSR2 ] = (char*)"SIGUSR2";
178 : 1 : signal_name_s[SIGCHLD ] = (char*)"SIGCHLD";
179 : 1 : signal_name_s[SIGCONT ] = (char*)"SIGCONT";
180 : 1 : signal_name_s[SIGSTOP ] = (char*)"SIGSTOP";
181 : 1 : signal_name_s[SIGTSTP ] = (char*)"SIGTSTP";
182 : 1 : signal_name_s[SIGTTIN ] = (char*)"SIGTTIN";
183 : 1 : signal_name_s[SIGTTOU ] = (char*)"SIGTTOU";
184 : 1 : signal_name_s[SIGBUS ] = (char*)"SIGBUS" ;
185 : 1 : signal_name_s[SIGPOLL ] = (char*)"SIGPOLL";
186 : 1 : signal_name_s[SIGPROF ] = (char*)"SIGPROF";
187 : 1 : signal_name_s[SIGSYS ] = (char*)"SIGSYS" ;
188 : 1 : signal_name_s[SIGTRAP ] = (char*)"SIGTRAP";
189 : 1 : signal_name_s[SIGURG ] = (char*)"SIGURG" ;
190 : 1 : signal_name_s[SIGVTALRM] = (char*)"SIGVTALRM";
191 : 1 : signal_name_s[SIGXCPU ] = (char*)"SIGXCPU";
192 : 1 : signal_name_s[SIGXFSZ ] = (char*)"SIGXFSZ";
193 : 1 : color_s[0] = (char*)NONE;
194 : 1 : color_s[1] = (char*)L_GREEN;
195 : 1 : color_s[2] = (char*)L_RED;
196 : 1 : color_s[3] = (char*)YELLOW;
197 : 1 : color_s[4] = (char*)L_BLUE;
198 : 1 : color_s[5] = (char*)L_PURPLE;
199 : 1 : color_s[6] = (char*)L_CYAN;
200 : 1 : color_s[7] = (char*)(RED UNDERLINE);
201 : 1 : color_s[8] = (char*)(GREEN UNDERLINE);
202 : 1 : color_s[9] = (char*)(BROWN UNDERLINE);
203 : 1 : color_s[10] = (char*)(BLUE UNDERLINE);
204 : 1 : color_s[11] = (char*)(PURPLE UNDERLINE);
205 : 1 : color_s[12] = (char*)(CYAN UNDERLINE);
206 : 1 : color_s_size = 12;
207 : 1 : };
208 : :
209 : : #endif
|