# LCOV - test.info - terminal-stg/constants.h

LCOV - code coverage report

Current view: | top level - terminal-stg - constants.h (source / functions) |  |  | Hit | Total | Coverage
Test: | test.info |  | Lines: | 77 | 77 | 100.0 %
Date: | 2022-06-07 00:36:57 |  | Functions: | 1 | 1 | 100.0 %
|  |  | Branches: | 0 | 0 | -

               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

Generated by: LCOV version 1.14