Mercurial Hosting > harelet
comparison based/basedtermgrx.h @ 20:0555050bada0
Make it pretty
| author | VilyaemKenyaz |
|---|---|
| date | Wed, 27 Sep 2023 08:51:57 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 19:8fe0b5711413 | 20:0555050bada0 |
|---|---|
| 1 /********************************************* | |
| 2 * Description - Based Term Grx | |
| 3 * Modified for use with Harelet. | |
| 4 * Author - William King | |
| 5 * Date - Sep 13 2023 | |
| 6 * *******************************************/ | |
| 7 | |
| 8 #include <string.h> | |
| 9 | |
| 10 //Always have a 2:1 ratio if you want a square picture | |
| 11 //Terminals are vertically stretched | |
| 12 #define RESX 98 | |
| 13 #define RESY 48 | |
| 14 | |
| 15 //Center X & Y | |
| 16 #define CX 49 | |
| 17 #define CY 24 | |
| 18 | |
| 19 //Colours | |
| 20 #define BLACK "\x1b[30m" | |
| 21 #define RED "\x1b[31m" | |
| 22 #define GREEN "\x1b[32m" | |
| 23 #define YELLOW "\x1b[33m" | |
| 24 #define BLUE "\x1b[34m" | |
| 25 #define MAGENTA "\x1b[35m" | |
| 26 #define CYAN "\x1b[36m" | |
| 27 #define WHITE "\x1b[37m" | |
| 28 | |
| 29 #define IBLACK "\x1b[30;1m" | |
| 30 #define IRED "\x1b[31;1m" | |
| 31 #define IGREEN "\x1b[32;1m" | |
| 32 #define IYELLOW "\x1b[33;1m" | |
| 33 #define IBLUE "\x1b[34;1m" | |
| 34 #define IMAGENTA "\x1b[35;1m" | |
| 35 #define ICYAN "\x1b[36;1m" | |
| 36 #define IWHITE "\x1b[37;1m" | |
| 37 | |
| 38 #define BGC_BLACK "\x1b[40m" | |
| 39 #define BGC_RED "\x1b[41m" | |
| 40 #define BGC_GREEN "\x1b[42m" | |
| 41 #define BGC_YELLOW "\x1b[43m" | |
| 42 #define BGC_BLUE "\x1b[44m" | |
| 43 #define BGC_MAGENTA "\x1b[45m" | |
| 44 #define BGC_CYAN "\x1b[46m" | |
| 45 #define BGC_WHITE "\x1b[47m" | |
| 46 | |
| 47 #define BGC_IBLACK "\x1b[40;1m" | |
| 48 #define BGC_IRED "\x1b[41;1m" | |
| 49 #define BGC_IGREEN "\x1b[42;1m" | |
| 50 #define BGC_IYELLOW "\x1b[43;1m" | |
| 51 #define BGC_IBLUE "\x1b[44;1m" | |
| 52 #define BGC_IMAGENTA "\x1b[45;1m" | |
| 53 #define BGC_ICYAN "\x1b[46;1m" | |
| 54 #define BGC_IWHITE "\x1b[47;1m" | |
| 55 | |
| 56 char screen[RESY][RESX]; | |
| 57 | |
| 58 | |
| 59 /********************************************* | |
| 60 * Description - Clear the screen | |
| 61 * Author - William King | |
| 62 * Date - Sep 13 2023 | |
| 63 * *******************************************/ | |
| 64 void ClrScr(){ | |
| 65 //printf("\x1b[2J"); | |
| 66 for(int i = 0; i != 32;i++) | |
| 67 puts(""); | |
| 68 | |
| 69 for(int i = 0; i != RESY; i++){ | |
| 70 | |
| 71 for(int j = 0; j != RESX; j++){ | |
| 72 | |
| 73 screen[i][j] = ' '; | |
| 74 | |
| 75 } | |
| 76 | |
| 77 | |
| 78 } | |
| 79 | |
| 80 | |
| 81 } | |
| 82 | |
| 83 /********************************************* | |
| 84 * Description - Render all the cells to the screen, splashing | |
| 85 * Author - William King | |
| 86 * Date - Sep 13 2023 | |
| 87 * *******************************************/ | |
| 88 void Splash(){ | |
| 89 puts(""); | |
| 90 for(int i = 0; i != RESY; i++){ | |
| 91 | |
| 92 for(int j = 0; j != RESX; j++){ | |
| 93 | |
| 94 printf("%c",screen[j][i]); | |
| 95 | |
| 96 } | |
| 97 | |
| 98 puts(""); | |
| 99 | |
| 100 } | |
| 101 | |
| 102 | |
| 103 } | |
| 104 | |
| 105 /********************************************* | |
| 106 * Description - Put a character onto the screen | |
| 107 * Author - William King | |
| 108 * Date - Sep 13 2023 | |
| 109 * *******************************************/ | |
| 110 void DrawChar(int x, int y, char content){ | |
| 111 //Make sure it's in the screen | |
| 112 assert(x <= RESX && y <= RESY); | |
| 113 | |
| 114 screen[x][y] = content; | |
| 115 } | |
| 116 | |
| 117 /********************************************* | |
| 118 * Description - Put a string onto the screen | |
| 119 * Author - William King | |
| 120 * Date - Sep 13 2023 | |
| 121 * *******************************************/ | |
| 122 void DrawString(int x, int y, char str[128]){ | |
| 123 | |
| 124 //Make sure origin is in the screen | |
| 125 assert(x <= RESX || y <= RESY); | |
| 126 | |
| 127 //Make sure the string wont run off the screen | |
| 128 assert(x + strlen(str) <= RESX); | |
| 129 | |
| 130 for(int i; i != strlen(str);i++){ | |
| 131 | |
| 132 DrawChar(x+i,y,str[i]); | |
| 133 | |
| 134 } | |
| 135 | |
| 136 | |
| 137 } | |
| 138 | |
| 139 | |
| 140 /********************************************* | |
| 141 * Description - Draw a square | |
| 142 * Author - William King | |
| 143 * Date - Sep 13 2023 | |
| 144 * *******************************************/ | |
| 145 void DrawSquare(int x, int y, int length, char fill){ | |
| 146 | |
| 147 //Make sure shape is not ridiculous | |
| 148 assert(x <= RESX && y <= RESY); | |
| 149 assert(x+length <= RESX && y+length <= RESY); | |
| 150 | |
| 151 for(int i = 0; i != length;i++){ | |
| 152 | |
| 153 int j = 0; | |
| 154 while (j != 0){ | |
| 155 DrawChar(x+j,y+i,fill); | |
| 156 j++; | |
| 157 } | |
| 158 | |
| 159 } | |
| 160 | |
| 161 | |
| 162 } | |
| 163 | |
| 164 | |
| 165 /********************************************* | |
| 166 * Description - Fill the entire screen with a character | |
| 167 * Author - William King | |
| 168 * Date - Sep 15 2023 | |
| 169 * *******************************************/ | |
| 170 void DrawFill(char fill){ | |
| 171 for(int i = 0; i != RESY; i++){ | |
| 172 for(int j = 0; j != RESX; j++){ | |
| 173 screen[i][j] = fill; | |
| 174 | |
| 175 } | |
| 176 } | |
| 177 | |
| 178 } | |
| 179 | |
| 180 | |
| 181 | |
| 182 /********************************************* | |
| 183 * Description - Set the colour | |
| 184 * Author - William King | |
| 185 * Date - Sep 13 2023 | |
| 186 * *******************************************/ | |
| 187 void SetColour(char * colour){ | |
| 188 printf("%s",colour); | |
| 189 } | |
| 190 | |
| 191 | |
| 192 /********************************************* | |
| 193 * Description - Reset the colour | |
| 194 * Author - William King | |
| 195 * Date - Sep 13 2023 | |
| 196 * *******************************************/ | |
| 197 void ResetColour(char * colour){ | |
| 198 printf("\x1b[0m"); | |
| 199 } |
