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