Remove unrelated file.
[chise/kage.git] / kagecgi / kagedf.c
1 //kagedf.c\r
2 //\r
3 #include "kage.h"\r
4 \r
5 void dfDrawFont(int a1, int a2, int a3,\r
6         int x1, int y1,\r
7         int x2, int y2,\r
8         int x3, int y3,\r
9         int x4, int y4){\r
10         int tx1, tx2, tx3, tx4, ty1, ty2, ty3, ty4, v;\r
11         double rad;\r
12         \r
13         if(kShotai == kMincho){\r
14                 switch(a1 % 100){\r
15                 case 0:\r
16                         break;\r
17         case 1:\r
18                 if(a3 == 4){\r
19                                 if(x1 == x2){\r
20                                         if(y1 < y2){ v = 1; } else{ v = -1; }\r
21                                         tx1 = x2;\r
22                                         ty1 = y2 - kMage * v;\r
23                                 }\r
24                                 else if(y1 == y2){\r
25                                         if(x1 < x2){ v = 1; } else{ v = -1; }\r
26                                         tx1 = x2 - kMage * v;\r
27                                         ty1 = y2;\r
28                                 }\r
29                                 else{\r
30                                         rad = atan((double)(y2 - y1) / (double)(x2 - x1));\r
31                                         if(x1 < x2){ v = 1; } else{v = -1; }\r
32                                         tx1 = x2 - kMage * cos(rad) * v;\r
33                                         ty1 = y2 - kMage * sin(rad) * v;\r
34                                 }\r
35                                 cdDrawLine(x1, y1, tx1, ty1, a2, 1);\r
36                                 cdDrawCurve(tx1, ty1, x2, y2, x2 - kMage, y2, 1, 14);\r
37                 }\r
38                 else{\r
39                                 cdDrawLine(x1, y1, x2, y2, a2, a3);\r
40                 }\r
41                 break;\r
42         case 2:\r
43         case 12:\r
44                 if(a3 == 4){\r
45                                 if(x2 == x3){\r
46                                         tx1 = x3;\r
47                                         ty1 = y3 - kMage;\r
48                                 }\r
49                                 else if(y2 == y3){\r
50                                         tx1 = x3 - kMage;\r
51                                         ty1 = y3;\r
52                                 }\r
53                                 else{\r
54                                         rad = atan((double)(y3 - y2) / (double)(x3 - x2));\r
55                                         if(x2 < x3){ v = 1; } else{ v = -1; }\r
56                                         tx1 = x3 - kMage * cos(rad) * v;\r
57                                         ty1 = y3 - kMage * sin(rad) * v;\r
58                                 }\r
59                                 cdDrawCurve(x1, y1, x2, y2, tx1, ty1, a2, 1);\r
60                                 cdDrawCurve(tx1, ty1, x3, y3, x3 - kMage, y3, 1, 14);\r
61                 }\r
62                 else if(a3 == 5){\r
63                                 cdDrawCurve(x1, y1, x2, y2, x3, y3, a2, 15);\r
64                 }\r
65                 else{\r
66                                 cdDrawCurve(x1, y1, x2, y2, x3, y3, a2, a3);\r
67                 }\r
68                 break;\r
69                 case 3:\r
70                 if(a3 == 5){\r
71                                 if(x1 == x2){\r
72                                         if(y1 < y2){ v = 1; } else{ v = -1; }\r
73                                         tx1 = x2;\r
74                                         ty1 = y2 - kMage * v;\r
75                                 }\r
76                                 else if(y1 == y2){\r
77                                         if(x1 < x2){ v = 1; } else{ v = -1; }\r
78                                         tx1 = x2 - kMage * v;\r
79                                         ty1 = y2;\r
80                                 }\r
81                                 else{\r
82                                         rad = atan((double)(y2 - y1) / (double)(x2 - x1));\r
83                                         if(x1 < x2){ v = 1; } else{ v = -1; }\r
84                                         tx1 = x2 - kMage * cos(rad) * v;\r
85                                         ty1 = y2 - kMage * sin(rad) * v;\r
86                                 }\r
87                                 if(x2 == x3){\r
88                                         if(y2 < y3){ v = 1; } else{ v = -1; }\r
89                                         tx2 = x2;\r
90                                         ty2 = y2 + kMage * v;\r
91                                 }\r
92                                 else if(y2 == y3){\r
93                                         if(x2 < x3){ v = 1; } else { v = -1; }\r
94                                         tx2 = x2 + kMage * v;\r
95                                         ty2 = y2;\r
96                                 }\r
97                                 else{\r
98                                         rad = atan((double)(y3 - y2) / (double)(x3 - x2));\r
99                                         if(x2 < x3){ v = 1; } else{ v = -1; }\r
100                                         tx2 = x2 + kMage * cos(rad) * v;\r
101                                         ty2 = y2 + kMage * sin(rad) * v;\r
102                                 }\r
103                                 tx3 = x3 - kMage;\r
104                                 ty3 = y3;\r
105                                 tx4 = x3 + kMage * 0.5;\r
106                                 ty4 = y3 - kMage * 2;\r
107                                 \r
108                                 cdDrawLine(x1, y1, tx1, ty1, a2, 1);\r
109                                 cdDrawCurve(tx1, ty1, x2, y2, tx2, ty2, 1, 1);\r
110                                 cdDrawLine(tx2, ty2, tx3, ty3, 6, 5); // bolder by force\r
111                         }\r
112                         else{\r
113                                 if(x1 == x2){\r
114                                         if(y1 < y2){ v = 1; } else { v = -1; }\r
115                                         tx1 = x2;\r
116                                         ty1 = y2 - kMage * v;\r
117                                 }\r
118                                 else if(y1 == y2){\r
119                                         if(x1 < x2){ v = 1; } else{ v = -1; }\r
120                                         tx1 = x2 - kMage * v;\r
121                                         ty1 = y2;\r
122                                 }\r
123                                 else{\r
124                                         rad = atan((double)(y2 - y1) / (double)(x2 - x1));\r
125                                         if(x1 < x2){ v = 1; } else{ v = -1; }\r
126                                         tx1 = x2 - kMage * cos(rad) * v;\r
127                                         ty1 = y2 - kMage * sin(rad) * v;\r
128                                 }\r
129                                 if(x2 == x3){\r
130                                         if(y2 < y3){ v = 1; } else{ v = -1; }\r
131                                         tx2 = x2;\r
132                                         ty2 = y2 + kMage * v;\r
133                                 }\r
134                                 else if(y2 == y3){\r
135                                         if(x2 < x3){ v = 1; } else{ v = -1; }\r
136                                         tx2 = x2 + kMage * v;\r
137                                         ty2 = y2;\r
138                                 }\r
139                                 else{\r
140                                         rad = atan((double)(y3 - y2) / (double)(x3 - x2));\r
141                                         if(x2 < x3){ v = 1; } else{ v = -1; }\r
142                                         tx2 = x2 + kMage * cos(rad) * v;\r
143                                         ty2 = y2 + kMage * sin(rad) * v;\r
144                                 }\r
145                                 cdDrawLine(x1, y1, tx1, ty1, a2, 1);\r
146                                 cdDrawCurve(tx1, ty1, x2, y2, tx2, ty2, 1, 1);\r
147                                 cdDrawLine(tx2, ty2, x3, y3, 6, a3); // bolder by force\r
148                         }\r
149                 break;\r
150             case 6:\r
151                 if(a3 == 5){\r
152                                 tx1 = x4 - kMage;\r
153                                 ty1 = y4;\r
154                                 tx2 = x4 + kMage * 0.5;\r
155                                 ty2 = y4 - kMage * 2;\r
156                                 if(a2 == 7 || a3 == 7){\r
157                                         cdDrawCurve(x1, y1, x2, y2, (x2 + x3) / 2, (y2 + y3) / 2, a2, 17);\r
158                                         cdDrawCurve((x2 + x3) / 2, (y2 + y3) / 2, x3, y3, x4, y4, 17, 15);\r
159                                 }\r
160                                 else{\r
161                                         cdDrawCurve(x1, y1, x2, y2, (x2 + x3) / 2, (y2 + y3) / 2, a2, 8);\r
162                                         cdDrawCurve((x2 + x3) / 2, (y2 + y3) / 2, x3, y3, x4, y4, 1, 15);\r
163                                 }\r
164                         }\r
165                         else{\r
166                                 if(a2 == 7 || a3 == 7){\r
167                                         cdDrawCurve(x1, y1, x2, y2, (x2 + x3) / 2, (y2 + y3) / 2, a2, 17);\r
168                                         cdDrawCurve((x2 + x3) / 2, (y2 + y3) / 2, x3, y3, x4, y4, 17, a3);\r
169                                 }\r
170                                 else{\r
171                                         cdDrawCurve(x1, y1, x2, y2, (x2 + x3) / 2, (y2 + y3) / 2, a2, 8);\r
172                                         cdDrawCurve((x2 + x3) / 2, (y2 + y3) / 2, x3, y3, x4, y4, 1, a3);\r
173                                 }\r
174                         }\r
175                         break;\r
176         case 7:\r
177           cdDrawLine(x1, y1, x2, y2, a2, 1);\r
178           cdDrawCurve(x2, y2, x3, y3, x4, y4, 1, 7);\r
179           break;\r
180         case 9: // may not be exist\r
181           break;\r
182         default:\r
183           break;\r
184         }\r
185         }\r
186     \r
187     else{ // gothic\r
188         switch(a1 % 100){\r
189         case 0:\r
190                 break;\r
191         case 1:\r
192                 if(a3 == 4){\r
193                                 if(x1 == x2){\r
194                                         if(y1 < y2){ v = 1; } else{ v = -1; }\r
195                                         tx1 = x2;\r
196                                         ty1 = y2 - kMage * v;\r
197                                 }\r
198                                 else if(y1 == y2){\r
199                                         if(x1 < x2){ v = 1; } else{ v = -1; }\r
200                                         tx1 = x2 - kMage * v;\r
201                                         ty1 = y2;\r
202                                 }\r
203                                 else{\r
204                                         rad = atan((double)(y2 - y1) / (double)(x2 - x1));\r
205                                         if(x1 < x2){ v = 1; } else{ v = -1; }\r
206                                         tx1 = x2 - kMage * cos(rad) * v;\r
207                                         ty1 = y2 - kMage * sin(rad) * v;\r
208                                 }\r
209                                 cdDrawLine(x1, y1, tx1, ty1, a2, 1);\r
210                                 cdDrawCurve(tx1, ty1, x2, y2, x2 - kMage * 2, y2 - kMage * 0.5, 1, 0);\r
211                 }\r
212                 else{\r
213                                 cdDrawLine(x1, y1, x2, y2, a2, a3);\r
214                 }\r
215                         break;\r
216         case 2:\r
217         case 12:\r
218                 if(a3 == 4){\r
219                                 if(x2 == x3){\r
220                                         tx1 = x3;\r
221                                         ty1 = y3 - kMage;\r
222                                 }\r
223                                 else if(y2 == y3){\r
224                                         tx1 = x3 - kMage;\r
225                                         ty1 = y3;\r
226                                 }\r
227                                 else{\r
228                                         rad = atan((double)(y3 - y2) / (double)(x3 - x2));\r
229                                         if(x2 < x3){ v = 1; } else{ v = -1; }\r
230                                         tx1 = x3 - kMage * cos(rad) * v;\r
231                                         ty1 = y3 - kMage * sin(rad) * v;\r
232                                 }\r
233                                 cdDrawCurve(x1, y1, x2, y2, tx1, ty1, a2, 1);\r
234                                 cdDrawCurve(tx1, ty1, x3, y3, x3 - kMage * 2, y3 - kMage * 0.5, 1, 0);\r
235                 }\r
236                 else if(a3 == 5){\r
237                                 tx1 = x3 + kMage;\r
238                                 ty1 = y3;\r
239                                 tx2 = tx1 + kMage * 0.5;\r
240                                 ty2 = y3 - kMage * 2;\r
241                                 cdDrawCurve(x1, y1, x2, y2, x3, y3, a2, 1);\r
242                                 cdDrawCurve(x3, y3, tx1, ty1, tx2, ty2, 1, 0);\r
243                 }\r
244                 else{\r
245                                 cdDrawCurve(x1, y1, x2, y2, x3, y3, a2, a3);\r
246                 }\r
247                 break;\r
248         case 3:\r
249                 if(a3 == 5){\r
250                                 if(x1 == x2){\r
251                                         if(y1 < y2){ v = 1; } else{ v = -1; }\r
252                                         tx1 = x2;\r
253                                         ty1 = y2 - kMage * v;\r
254                                 }\r
255                                 else if(y1 == y2){\r
256                                         if(x1 < x2){ v = 1; } else{ v = -1; }\r
257                                         tx1 = x2 - kMage * v;\r
258                                         ty1 = y2;\r
259                                 }\r
260                                 else{\r
261                                         rad = atan((double)(y2 - y1) / (double)(x2 - x1));\r
262                                         if(x1 < x2){ v = 1; } else{ v = -1; }\r
263                                         tx1 = x2 - kMage * cos(rad) * v;\r
264                                         ty1 = y2 - kMage * sin(rad) * v;\r
265                                 }\r
266                                 if(x2 == x3){\r
267                                         if(y2 < y3){ v = 1; } else{ v = -1; }\r
268                                         tx2 = x2;\r
269                                         ty2 = y2 + kMage * v;\r
270                                 }\r
271                                 else if(y2 == y3){\r
272                                         if(x2 < x3){ v = 1; } else{ v = -1; }\r
273                                         tx2 = x2 + kMage * v;\r
274                                         ty2 = y2;\r
275                                 }\r
276                                 else{\r
277                                         rad = atan((double)(y3 - y2) / (double)(x3 - x2));\r
278                                         if(x2 < x3){ v = 1; } else{ v = -1; }\r
279                                         tx2 = x2 + kMage * cos(rad) * v;\r
280                                         ty2 = y2 + kMage * sin(rad) * v;\r
281                                 }\r
282                                 tx3 = x3 - kMage;\r
283                                 ty3 = y3;\r
284                                 tx4 = x3 + kMage * 0.5;\r
285                                 ty4 = y3 - kMage * 2;\r
286                                 \r
287                                 cdDrawLine(x1, y1, tx1, ty1, a2, 1);\r
288                                 cdDrawCurve(tx1, ty1, x2, y2, tx2, ty2, 1, 1);\r
289                                 cdDrawLine(tx2, ty2, tx3, ty3, 1, 1);\r
290                                 cdDrawCurve(tx3, ty3, x3, y3, tx4, ty4, 1, 0);\r
291                 }\r
292                 else{\r
293                                 if(x1 == x2){\r
294                                         if(y1 < y2){ v = 1; } else{ v = -1; }\r
295                                         tx1 = x2;\r
296                                         ty1 = y2 - kMage * v;\r
297                                 }\r
298                                 else if(y1 == y2){\r
299                                         if(x1 < x2){ v = 1; } else{ v = -1; }\r
300                                         tx1 = x2 - kMage * v;\r
301                                         ty1 = y2;\r
302                                 }\r
303                                 else{\r
304                                         rad = atan((double)(y2 - y1) / (double)(x2 - x1));\r
305                                         if(x1 < x2){ v = 1; } else{ v = -1; }\r
306                                         tx1 = x2 - kMage * cos(rad) * v;\r
307                                         ty1 = y2 - kMage * sin(rad) * v;\r
308                                 }\r
309                                 if(x2 == x3){\r
310                                         if(y2 < y3){ v = 1; } else{ v = -1; }\r
311                                         tx2 = x2;\r
312                                         ty2 = y2 + kMage * v;\r
313                                 }\r
314                                 else if(y2 == y3){\r
315                                         if(x2 < x3){ v = 1; } else{ v = -1; }\r
316                                         tx2 = x2 + kMage * v;\r
317                                         ty2 = y2;\r
318                                 }\r
319                                 else{\r
320                                         rad = atan((double)(y3 - y2) / (double)(x3 - x2));\r
321                                         if(x2 < x3){ v = 1; } else{ v = -1; }\r
322                                         tx2 = x2 + kMage * cos(rad) * v;\r
323                                         ty2 = y2 + kMage * sin(rad) * v;\r
324                                 }\r
325                                 \r
326                                 cdDrawLine(x1, y1, tx1, ty1, a2, 1);\r
327                                 cdDrawCurve(tx1, ty1, x2, y2, tx2, ty2, 1, 1);\r
328                                 cdDrawLine(tx2, ty2, x3, y3, 1, a3);\r
329                 }\r
330                 break;\r
331         case 6:\r
332                 if(a3 == 5){\r
333                                 tx1 = x4 - kMage;\r
334                                 ty1 = y4;\r
335                                 tx2 = x4 + kMage * 0.5;\r
336                                 ty2 = y4 - kMage * 2;\r
337                                 cdDrawCurve(x1, y1, x2, y2, (x2 + x3) / 2, (y2 + y3) / 2, a2, 1);\r
338                                 cdDrawCurve((x2 + x3) / 2, (y2 + y3) / 2, x3, y3, tx1, ty1, 1, 1);\r
339                                 cdDrawCurve(tx1, ty1, x4, y4, tx2, ty2, 1, 0);\r
340                 }\r
341                 else{\r
342                                 cdDrawCurve(x1, y1, x2, y2, (x2 + x3) / 2, (y2 + y3) / 2, a2, 1);\r
343                                 cdDrawCurve((x2 + x3) / 2, (y2 + y3) / 2, x3, y3, x4, y4, 1, a3);\r
344                 }\r
345                 break;\r
346         case 7:\r
347                 cdDrawLine(x1, y1, x2, y2, a2, 1);\r
348                 cdDrawCurve(x2, y2, x3, y3, x4, y4, 1, a3);\r
349                 break;\r
350         case 9: // may not be exist\r
351                 break;\r
352         default:\r
353                         break;\r
354                 }\r
355         }\r
356 }\r