]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blob - qcsrc/common/command/markup.qc
take3: format 903 files
[xonotic/xonotic-data.pk3dir.git] / qcsrc / common / command / markup.qc
1 #include "markup.qh"
2 #include "command.qh"
3
4 // =========================================================
5 //  Markup chat characters command code, reworked by Samual
6 //  Last updated: December 28th, 2011
7 // =========================================================
8
9 void GenericCommand_markup_init()
10 {
11         if (markup_init) {
12                 return;
13         }
14         markup_init = true;
15         int i = 0;
16         markup_from[i] = "&alien";
17         markup_to[i] = "\x12";
18         ++i;
19         markup_from[i] = "&:-)";
20         markup_to[i] = "\x13";
21         ++i;
22         markup_from[i] = "&:-(";
23         markup_to[i] = "\x14";
24         ++i;
25         markup_from[i] = "&x-P";
26         markup_to[i] = "\x15";
27         ++i;
28         markup_from[i] = "&:-/";
29         markup_to[i] = "\x16";
30         ++i;
31         markup_from[i] = "&:-D";
32         markup_to[i] = "\x17";
33         ++i;
34         markup_from[i] = "&<<";
35         markup_to[i] = "\x18";
36         ++i;
37         markup_from[i] = "&>>";
38         markup_to[i] = "\x19";
39         ++i;
40         markup_from[i] = "&dot";
41         markup_to[i] = "\x1a";
42         ++i;
43         markup_from[i] = "&^_";
44         markup_to[i] = "\x1b";
45         ++i;
46         markup_from[i] = "&ysplat";
47         markup_to[i] = "\x1c";
48         ++i;
49         markup_from[i] = "&-]";
50         markup_to[i] = "\x1d";
51         ++i;
52         markup_from[i] = "&--";
53         markup_to[i] = "\x1e";
54         ++i;
55         markup_from[i] = "&[-";
56         markup_to[i] = "\x1f";
57         ++i;
58         markup_from[i] = "&s<";
59         markup_to[i] = "\x2c";
60         ++i;
61         markup_from[i] = "&s>";
62         markup_to[i] = "\x2e";
63         ++i;
64         markup_from[i] = "&<-";
65         markup_to[i] = "\x7f";
66         ++i;
67         markup_from[i] = "&[=";
68         markup_to[i] = "\x80";
69         ++i;
70         markup_from[i] = "&==";
71         markup_to[i] = "\x81";
72         ++i;
73         markup_from[i] = "&=]";
74         markup_to[i] = "\x82";
75         ++i;
76         markup_from[i] = "&r!";
77         markup_to[i] = "\x84";
78         ++i;
79         markup_from[i] = "&|o|";
80         markup_to[i] = "\x85";
81         ++i;
82         markup_from[i] = "&|u|";
83         markup_to[i] = "\x86";
84         ++i;
85         markup_from[i] = "&|i|";
86         markup_to[i] = "\x87";
87         ++i;
88         markup_from[i] = "&|c|";
89         markup_to[i] = "\x88";
90         ++i;
91         markup_from[i] = "&[c]";
92         markup_to[i] = "\x89";
93         ++i;
94         markup_from[i] = "&[n]";
95         markup_to[i] = "\x8a";
96         ++i;
97         markup_from[i] = "&[]";
98         markup_to[i] = "\x8b";
99         ++i;
100         markup_from[i] = "&r?";
101         markup_to[i] = "\x8c";
102         ++i;
103         markup_from[i] = "&|>";
104         markup_to[i] = "\x8d";
105         ++i;
106         markup_from[i] = "&splat0";
107         markup_to[i] = "\x8e";
108         ++i;
109         markup_from[i] = "&splat1";
110         markup_to[i] = "\x8f";
111         ++i;
112         markup_from[i] = "&[[";
113         markup_to[i] = "\x90";
114         ++i;
115         markup_from[i] = "&]]";
116         markup_to[i] = "\x91";
117         ++i;
118         markup_from[i] = "&splat2";
119         markup_to[i] = "\x9a";
120         ++i;
121         markup_from[i] = "&)(";
122         markup_to[i] = "\x9b";
123         ++i;
124         markup_from[i] = "&splat3";
125         markup_to[i] = "\x9c";
126         ++i;
127         markup_from[i] = "&(.";
128         markup_to[i] = "\x9d";
129         ++i;
130         markup_from[i] = "&..";
131         markup_to[i] = "\x9e";
132         ++i;
133         markup_from[i] = "&.)";
134         markup_to[i] = "\x9f";
135         ++i;
136         markup_from[i] = "&<|";
137         markup_to[i] = "\xff";
138         ++i;
139 }
140
141 string GenericCommand_markup(string s2)
142 {
143         int red, ccase, i, j;
144         string s, s3;
145
146         GenericCommand_markup_init();
147
148         s = "";
149
150         red = 0;
151         ccase = 0;
152         for (i = 0; i < strlen(s2); ++i) {
153                 for (j = 0; j < NUM_MARKUPS; ++j) {
154                         s3 = substring(s2, i, strlen(markup_from[j]));
155                         if (s3 == markup_from[j]) {
156                                 s = strcat(s, markup_to[j]);
157                                 i += strlen(markup_from[j]) - 1;
158                                 break;
159                         }
160                 }
161
162                 if (j == NUM_MARKUPS) {
163                         if (substring(s2, i, 2) == "&&") {
164                                 s = strcat(s, strconv(ccase, red, red, "&"));
165                                 ++i;
166                         } else if (substring(s2, i, 2) == "&d") {
167                                 red = 2;
168                                 ccase = 0;
169                                 ++i;
170                         } else if (substring(s2, i, 2) == "&a") {
171                                 red = 2;
172                                 ccase = 2;
173                                 ++i;
174                         } else if (substring(s2, i, 2) == "&n") {
175                                 red = 0;
176                                 ccase = 0;
177                                 ++i;
178                         } else {
179                                 s = strcat(s, strconv(ccase, red, red, substring(s2, i, 1)));
180                         }
181                 }
182         }
183
184         return s;
185 }