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 } |