Rev 5776 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5776 | Rev 5778 | ||
---|---|---|---|
1 | #ifndef INCLUDE_FONT_H |
1 | #ifndef INCLUDE_FONT_H |
2 | #define INCLUDE_FONT_H |
2 | #define INCLUDE_FONT_H |
3 | 3 | ||
4 | #ifndef INCLUDE_MATH_H |
4 | #ifndef INCLUDE_MATH_H |
5 | #include "../lib/math.h" |
5 | #include "../lib/math.h" |
6 | #endif |
6 | #endif |
7 | 7 | ||
8 | #ifndef INCLUDE_IO_H |
8 | #ifndef INCLUDE_IO_H |
9 | #include "../lib/io.h" |
9 | #include "../lib/io.h" |
10 | #endif |
10 | #endif |
11 | 11 | ||
12 | 12 | ||
13 | #define CP866 0 |
13 | #define CP866 0 |
14 | #define ANSI 1 |
14 | #define ANSI 1 |
15 | 15 | ||
16 | :struct __SIZE |
16 | :struct __SIZE |
17 | { |
17 | { |
18 | word width,height; |
18 | word width,height; |
19 | signed offset_x,offset_y; |
19 | signed offset_x,offset_y; |
20 | float offset_i,w_italic; |
20 | float offset_i,w_italic; |
21 | byte text; |
21 | byte text; |
22 | byte TMP_WEIGHT; |
22 | byte TMP_WEIGHT; |
23 | }; |
23 | }; |
24 | :struct FONT |
24 | :struct FONT |
25 | { |
25 | { |
26 | __SIZE size; |
26 | __SIZE size; |
27 | byte width,height,offsetLine,r,g,b,weight,italic; |
27 | byte width,height,offsetLine,r,g,b,weight,italic; |
28 | byte encoding; |
28 | byte encoding; |
29 | dword color; |
29 | dword color; |
30 | dword file_size; |
30 | dword file_size; |
31 | dword buffer; |
31 | dword buffer; |
32 | dword buffer_size; |
32 | dword buffer_size; |
33 | word block; |
33 | word block; |
34 | dword data; |
34 | dword data; |
35 | dword begin; |
35 | dword begin; |
36 | dword size_file; |
36 | dword size_file; |
37 | byte load(...); |
37 | byte load(...); |
38 | byte symbol(word x;byte s;dword c); |
38 | byte symbol(word x;byte s;dword c); |
39 | byte symbol_size(byte s); |
39 | byte symbol_size(byte s); |
40 | dword prepare(word x,y;dword text1); |
40 | dword prepare(word x,y;dword text1); |
41 | void show(word x,y); |
41 | void show(word x,y); |
42 | byte textcenter(word x,y,w,h;dword txt); |
42 | byte textcenter(word x,y,w,h;dword txt); |
43 | dword getsize(dword text1); |
43 | dword getsize(dword text1); |
44 | dword textarea(word x,y;dword text,c); |
44 | dword textarea(word x,y;dword text,c); |
45 | byte changeSIZE(); |
45 | byte changeSIZE(); |
46 | void PixelRGB(word x,y); |
46 | void PixelRGB(word x,y); |
47 | dword GetPixel(word x,y); |
47 | dword GetPixel(word x,y); |
48 | dword tmp_y,tmp_height,tmp_x; |
48 | dword tmp_y,tmp_height,tmp_x; |
49 | byte no_bg_copy; |
49 | byte no_bg_copy; |
50 | dword bg_color; |
50 | dword bg_color; |
51 | }; |
51 | }; |
52 | FONT font = 0; |
52 | FONT font = 0; |
53 | 53 | ||
54 | :dword FONT::GetPixel(word x,y) |
54 | :dword FONT::GetPixel(word x,y) |
55 | { |
55 | { |
56 | dword tmp; |
56 | dword tmp; |
57 | tmp = y*size.width*3; |
57 | tmp = y*size.width*3; |
58 | tmp += x*3; |
58 | tmp += x*3; |
59 | tmp += buffer; |
59 | tmp += buffer; |
60 | r = DSBYTE[tmp]; |
60 | r = DSBYTE[tmp]; |
61 | tmp++; |
61 | tmp++; |
62 | g = DSBYTE[tmp]; |
62 | g = DSBYTE[tmp]; |
63 | tmp++; |
63 | tmp++; |
64 | b = DSBYTE[tmp]; |
64 | b = DSBYTE[tmp]; |
65 | } |
65 | } |
66 | :void FONT::PixelRGB(dword x,y) |
66 | :void FONT::PixelRGB(dword x,y) |
67 | { |
67 | { |
68 | dword tmp; |
68 | dword tmp; |
69 | tmp = y*size.width*3; |
69 | tmp = y*size.width*3; |
70 | tmp += x*3; |
70 | tmp += x*3; |
71 | tmp += buffer; |
71 | tmp += buffer; |
72 | 72 | ||
73 | DSBYTE[tmp] = r; |
73 | DSBYTE[tmp] = r; |
74 | tmp++; |
74 | tmp++; |
75 | DSBYTE[tmp] = g; |
75 | DSBYTE[tmp] = g; |
76 | tmp++; |
76 | tmp++; |
77 | DSBYTE[tmp] = b; |
77 | DSBYTE[tmp] = b; |
78 | } |
78 | } |
79 | :byte FONT::changeSIZE() |
79 | :byte FONT::changeSIZE() |
80 | { |
80 | { |
81 | dword TMP_DATA; |
81 | dword TMP_DATA; |
82 | dword ofs; |
82 | dword ofs; |
83 | byte s; |
83 | byte s; |
84 | IF(size.text<9) size.text = 8; |
84 | IF(size.text<9) size.text = 8; |
85 | s = size.text-8; |
85 | s = size.text-8; |
86 | data = begin; |
86 | data = begin; |
87 | TMP_DATA = data; |
87 | TMP_DATA = data; |
88 | TMP_DATA +=s*4; |
88 | TMP_DATA +=s*4; |
89 | ofs = DSDWORD[TMP_DATA]; |
89 | ofs = DSDWORD[TMP_DATA]; |
90 | IF(ofs==-1)return false; |
90 | IF(ofs==-1)return false; |
91 | data += ofs; |
91 | data += ofs; |
92 | data += 156; |
92 | data += 156; |
93 | TMP_DATA = data; |
93 | TMP_DATA = data; |
94 | file_size = DSDWORD[TMP_DATA]; |
94 | file_size = DSDWORD[TMP_DATA]; |
95 | TMP_DATA += file_size; |
95 | TMP_DATA += file_size; |
96 | TMP_DATA--; |
96 | TMP_DATA--; |
97 | height = DSBYTE[TMP_DATA]; |
97 | height = DSBYTE[TMP_DATA]; |
98 | TMP_DATA--; |
98 | TMP_DATA--; |
99 | width = DSBYTE[TMP_DATA]; |
99 | width = DSBYTE[TMP_DATA]; |
100 | block = math.ceil(height*width/32); |
100 | block = math.ceil(height*width/32); |
101 | return true; |
101 | return true; |
102 | } |
102 | } |
103 | :proc_info Form_SELF_FONTS; |
103 | :proc_info Form_SELF_FONTS; |
104 | :byte FONT::textcenter(word x,y,w,h;dword txt) |
104 | :byte FONT::textcenter(word x,y,w,h;dword txt) |
105 | { |
105 | { |
106 | getsize(txt); |
106 | getsize(txt); |
107 | EDX = w/2; |
107 | EDX = w/2; |
108 | ECX = size.width/2; |
108 | ECX = size.width/2; |
109 | EDX -= ECX; |
109 | EDX -= ECX; |
110 | x += EDX; |
110 | x += EDX; |
111 | return text(x,y,txt); |
111 | return text(x,y,txt); |
112 | } |
112 | } |
113 | :dword FONT::getsize(dword text1) |
113 | :dword FONT::getsize(dword text1) |
114 | { |
114 | { |
115 | size.height = size.width = 0; |
115 | size.height = size.width = 0; |
116 | size.offset_x = size.offset_y = -1; |
116 | size.offset_x = size.offset_y = -1; |
117 | IF(size.text)IF(!changeSIZE())return 0; |
117 | IF(size.text)IF(!changeSIZE())return 0; |
118 | WHILE(DSBYTE[text1]) |
118 | WHILE(DSBYTE[text1]) |
119 | { |
119 | { |
120 | symbol_size(DSBYTE[text1]); |
120 | symbol_size(DSBYTE[text1]); |
121 | text1++; |
121 | text1++; |
122 | } |
122 | } |
123 | $neg size.offset_y |
123 | $neg size.offset_y |
124 | $neg size.offset_x |
124 | $neg size.offset_x |
125 | size.height++; |
125 | size.height++; |
126 | size.height += size.offset_y; |
126 | size.height += size.offset_y; |
127 | size.width += size.offset_x; |
127 | size.width += size.offset_x; |
128 | size.width++; |
128 | size.width++; |
129 | IF(italic) |
129 | IF(italic) |
130 | { |
130 | { |
131 | size.w_italic = size.height/3; |
131 | size.w_italic = size.height/3; |
132 | size.offset_i = size.w_italic/size.height; |
132 | size.offset_i = size.w_italic/size.height; |
133 | size.width += size.w_italic; |
133 | size.width += size.w_italic; |
134 | size.w_italic = -size.w_italic; |
134 | size.w_italic = -size.w_italic; |
135 | } |
135 | } |
136 | return size.width; |
136 | return size.width; |
137 | } |
137 | } |
138 | :byte FONT::symbol_size(byte s) |
138 | :byte FONT::symbol_size(byte s) |
139 | { |
139 | { |
140 | dword xi,yi; |
140 | dword xi,yi; |
141 | dword tmp,_; |
141 | dword tmp,_; |
142 | dword iii; |
142 | dword iii; |
143 | byte rw=0; |
143 | byte rw=0; |
144 | byte X; |
144 | byte X; |
145 | size.TMP_WEIGHT = math.ceil(size.text/17); |
145 | size.TMP_WEIGHT = math.ceil(size.text/17); |
146 | IF(s==32) |
146 | IF(s==32) |
147 | { |
147 | { |
148 | size.width += width/4; |
148 | size.width += width/4; |
149 | IF(weight) size.width+=size.TMP_WEIGHT; |
149 | IF(weight) size.width+=size.TMP_WEIGHT; |
150 | return; |
150 | return; |
151 | } |
151 | } |
152 | IF(s==9) |
152 | IF(s==9) |
153 | { |
153 | { |
154 | size.width += width; |
154 | size.width += width; |
155 | IF(weight) size.width+=size.TMP_WEIGHT; |
155 | IF(weight) size.width+=size.TMP_WEIGHT; |
156 | return; |
156 | return; |
157 | } |
157 | } |
158 | IF(!encoding){ |
158 | IF(!encoding){ |
159 | IF(s>=128)&&(s<=175)s+=64; |
159 | IF(s>=128)&&(s<=175)s+=64; |
160 | ELSE IF(s>=224)&&(s<=239)s+=16; |
160 | ELSE IF(s>=224)&&(s<=239)s+=16; |
- | 161 | ELSE IF(s==241)s=184; //yo |
|
- | 162 | ELSE IF(s==240)s=168; //YO |
|
161 | } |
163 | } |
162 | yi = 0; |
164 | yi = 0; |
163 | iii = 0; |
165 | iii = 0; |
164 | tmp = 4*block*s; |
166 | tmp = 4*block*s; |
165 | tmp +=data; |
167 | tmp +=data; |
166 | while(yi |
168 | while(yi |
167 | { |
169 | { |
168 | xi = 0; |
170 | xi = 0; |
169 | WHILE(xi |
171 | WHILE(xi |
170 | { |
172 | { |
171 | IF(iii%32) _ >>= 1; |
173 | IF(iii%32) _ >>= 1; |
172 | ELSE |
174 | ELSE |
173 | { |
175 | { |
174 | tmp += 4; |
176 | tmp += 4; |
175 | _ = DSDWORD[tmp]; |
177 | _ = DSDWORD[tmp]; |
176 | } |
178 | } |
177 | IF(_&1) |
179 | IF(_&1) |
178 | { |
180 | { |
179 | IF(xi>rw)rw=xi; |
181 | IF(xi>rw)rw=xi; |
180 | IF(size.height |
182 | IF(size.height |
181 | IF(size.offset_y<0)size.offset_y = yi; |
183 | IF(size.offset_y<0)size.offset_y = yi; |
182 | ELSE IF(yi |
184 | ELSE IF(yi |
183 | IF(!X) X = xi; |
185 | IF(!X) X = xi; |
184 | ELSE IF(X>xi)X = xi; |
186 | ELSE IF(X>xi)X = xi; |
185 | } |
187 | } |
186 | xi++; |
188 | xi++; |
187 | iii++; |
189 | iii++; |
188 | } |
190 | } |
189 | yi++; |
191 | yi++; |
190 | } |
192 | } |
191 | size.width += rw; |
193 | size.width += rw; |
192 | IF(weight) size.width+=size.TMP_WEIGHT; |
194 | IF(weight) size.width+=size.TMP_WEIGHT; |
193 | IF(s=='_') size.width--; |
195 | IF(s=='_') size.width--; |
194 | IF(size.offset_x<0)size.offset_x = X; |
196 | IF(size.offset_x<0)size.offset_x = X; |
195 | } |
197 | } |
196 | :dword FONT::prepare(word x,y;dword text1) |
198 | :dword FONT::prepare(word x,y;dword text1) |
197 | { |
199 | { |
198 | signed len=0; |
200 | signed len=0; |
199 | dword c; |
201 | dword c; |
200 | word _tmp_h; |
202 | word _tmp_h; |
201 | c = color; |
203 | c = color; |
202 | IF(!text1)return false; |
204 | IF(!text1)return false; |
203 | IF(size.text)IF(!changeSIZE())return false; |
205 | IF(size.text)IF(!changeSIZE())return false; |
204 | GetProcessInfo(#Form_SELF_FONTS, SelfInfo); |
206 | GetProcessInfo(#Form_SELF_FONTS, SelfInfo); |
205 | IF(y>Form_SELF_FONTS.cheight) return false; |
207 | IF(y>Form_SELF_FONTS.cheight) return false; |
206 | IF(x>Form_SELF_FONTS.cwidth) return false; |
208 | IF(x>Form_SELF_FONTS.cwidth) return false; |
207 | AX = c; |
209 | AX = c; |
208 | r = AL; |
210 | r = AL; |
209 | g = AH; |
211 | g = AH; |
210 | c>>=16; |
212 | c>>=16; |
211 | AX = c; |
213 | AX = c; |
212 | b = AL; |
214 | b = AL; |
213 | getsize(text1); |
215 | getsize(text1); |
214 | y -= size.offset_y; |
216 | y -= size.offset_y; |
215 | tmp_y = y; |
217 | tmp_y = y; |
216 | 218 | ||
217 | EDX = size.width*size.height*3; |
219 | EDX = size.width*size.height*3; |
218 | IF(!buffer_size) |
220 | IF(!buffer_size) |
219 | { |
221 | { |
220 | buffer_size = EDX; |
222 | buffer_size = EDX; |
221 | buffer = malloc(buffer_size); |
223 | buffer = malloc(buffer_size); |
222 | } |
224 | } |
223 | ELSE IF(buffer_size |
225 | ELSE IF(buffer_size |
224 | { |
226 | { |
225 | buffer_size = EDX; |
227 | buffer_size = EDX; |
226 | buffer = realloc(buffer,buffer_size); |
228 | buffer = realloc(buffer,buffer_size); |
227 | } |
229 | } |
228 | IF (no_bg_copy) |
230 | IF (no_bg_copy) |
229 | { |
231 | { |
230 | EBX = bg_color; |
232 | EBX = bg_color; |
231 | EDI = buffer; |
233 | EDI = buffer; |
232 | EAX = buffer_size+EDI; |
234 | EAX = buffer_size+EDI; |
233 | WHILE (EDI |
235 | WHILE (EDI |
234 | { |
236 | { |
235 | ESDWORD[EDI] = EBX; |
237 | ESDWORD[EDI] = EBX; |
236 | $add edi,3 |
238 | $add edi,3 |
237 | } |
239 | } |
238 | } |
240 | } |
239 | ELSE CopyScreen(buffer,x+Form_SELF_FONTS.left+5,y+Form_SELF_FONTS.top+GetSkinHeight(),size.width,size.height); |
241 | ELSE CopyScreen(buffer,x+Form_SELF_FONTS.left+5,y+Form_SELF_FONTS.top+GetSkinHeight(),size.width,size.height); |
240 | len = size.offset_x; |
242 | len = size.offset_x; |
241 | WHILE(DSBYTE[text1]) |
243 | WHILE(DSBYTE[text1]) |
242 | { |
244 | { |
243 | IF(DSBYTE[text1]=='_') len--; |
245 | IF(DSBYTE[text1]=='_') len--; |
244 | len+=symbol(len,DSBYTE[text1]); |
246 | len+=symbol(len,DSBYTE[text1]); |
245 | IF(weight)len+=math.ceil(size.text/17); |
247 | IF(weight)len+=math.ceil(size.text/17); |
246 | text1++; |
248 | text1++; |
247 | } |
249 | } |
248 | IF (no_bg_copy) && (!color) SmoothFont(buffer, size.width, size.height); |
250 | IF (no_bg_copy) && (!color) SmoothFont(buffer, size.width, size.height); |
249 | return len; |
251 | return len; |
250 | } |
252 | } |
251 | :void FONT::show(word x,y) |
253 | :void FONT::show(word x,y) |
252 | { |
254 | { |
253 | _PutImage(x,y,size.width,size.height,buffer); |
255 | _PutImage(x,y,size.width,size.height,buffer); |
254 | } |
256 | } |
255 | inline fastcall dword b24(EBX) { return DSDWORD[EBX] << 8; } |
257 | inline fastcall dword b24(EBX) { return DSDWORD[EBX] << 8; } |
256 | :void SmoothFont(dword image, w, h) |
258 | :void SmoothFont(dword image, w, h) |
257 | { |
259 | { |
258 | byte rr,gg,bb; |
260 | byte rr,gg,bb; |
259 | dword i,line_w,to, pixel; |
261 | dword i,line_w,to, pixel; |
260 | line_w = w * 3; |
262 | line_w = w * 3; |
261 | to = w*h*3 + image - line_w - 3; |
263 | to = w*h*3 + image - line_w - 3; |
262 | for (i = image; i < to; i+=3) { |
264 | for (i = image; i < to; i+=3) { |
263 | if (i-image%line_w +3 == line_w) continue; |
265 | if (i-image%line_w +3 == line_w) continue; |
264 | if (b24(i)==0x000000) && (b24(i+3)!=0x000000) && (b24(i+line_w)!=0x000000) && (b24(i+3+line_w)==0x000000) |
266 | if (b24(i)==0x000000) && (b24(i+3)!=0x000000) && (b24(i+line_w)!=0x000000) && (b24(i+3+line_w)==0x000000) |
265 | { |
267 | { |
266 | ShadowImage(i+3, 1, 1, 2); |
268 | ShadowImage(i+3, 1, 1, 2); |
267 | ShadowImage(i+line_w, 1, 1, 2); |
269 | ShadowImage(i+line_w, 1, 1, 2); |
268 | } |
270 | } |
269 | else if (b24(i)!=0x000000) && (b24(i+3)==0x000000) && (b24(i+line_w)==0x000000) && (b24(i+3+line_w)!=0x000000) |
271 | else if (b24(i)!=0x000000) && (b24(i+3)==0x000000) && (b24(i+line_w)==0x000000) && (b24(i+3+line_w)!=0x000000) |
270 | { |
272 | { |
271 | ShadowImage(i, 1, 1, 2); |
273 | ShadowImage(i, 1, 1, 2); |
272 | ShadowImage(i+3+line_w, 1, 1, 2); |
274 | ShadowImage(i+3+line_w, 1, 1, 2); |
273 | } |
275 | } |
274 | } |
276 | } |
275 | } |
277 | } |
276 | :dword FONT::textarea(word x,y;dword text1,c;byte size) |
278 | :dword FONT::textarea(word x,y;dword text1,c;byte size) |
277 | { |
279 | { |
278 | 280 | ||
279 | } |
281 | } |
280 | 282 | ||
281 | :byte FONT::symbol(signed x;byte s) |
283 | :byte FONT::symbol(signed x;byte s) |
282 | { |
284 | { |
283 | dword xi,yi; |
285 | dword xi,yi; |
284 | dword tmp,_; |
286 | dword tmp,_; |
285 | dword iii; |
287 | dword iii; |
286 | float ital = -size.w_italic; |
288 | float ital = -size.w_italic; |
287 | dword ___x; |
289 | dword ___x; |
288 | word TMP; |
290 | word TMP; |
289 | byte _TMP_WEIGHT; |
291 | byte _TMP_WEIGHT; |
290 | byte rw=0; |
292 | byte rw=0; |
291 | IF(s==32)return width/4; |
293 | IF(s==32)return width/4; |
292 | IF(s==9)return width; |
294 | IF(s==9)return width; |
293 | IF(!encoding) |
295 | IF(!encoding) |
294 | { |
296 | { |
295 | IF(s>=128)&&(s<=175)s+=64; |
297 | IF(s>=128)&&(s<=175)s+=64; |
296 | ELSE IF(s>=224)&&(s<=239)s+=16; |
298 | ELSE IF(s>=224)&&(s<=239)s+=16; |
- | 299 | ELSE IF(s==241)s=184; //yo |
|
- | 300 | ELSE IF(s==240)s=168; //YO |
|
297 | } |
301 | } |
298 | yi = 0; |
302 | yi = 0; |
299 | iii = 0; |
303 | iii = 0; |
300 | tmp = 4*block*s; |
304 | tmp = 4*block*s; |
301 | tmp +=data; |
305 | tmp +=data; |
302 | while(yi |
306 | while(yi |
303 | { |
307 | { |
304 | xi = 0; |
308 | xi = 0; |
305 | TMP = size.offset_y+yi; |
309 | TMP = size.offset_y+yi; |
306 | while(xi |
310 | while(xi |
307 | { |
311 | { |
308 | IF(iii%32) _ >>= 1; |
312 | IF(iii%32) _ >>= 1; |
309 | ELSE |
313 | ELSE |
310 | { |
314 | { |
311 | tmp += 4; |
315 | tmp += 4; |
312 | _ = DSDWORD[tmp]; |
316 | _ = DSDWORD[tmp]; |
313 | } |
317 | } |
314 | if(_&1) |
318 | if(_&1) |
315 | { |
319 | { |
316 | IF(xi>rw)rw=xi; |
320 | IF(xi>rw)rw=xi; |
317 | ___x = x+xi; |
321 | ___x = x+xi; |
318 | IF(italic)___x+=math.ceil(ital); |
322 | IF(italic)___x+=math.ceil(ital); |
319 | if(___x |
323 | if(___x |
320 | { |
324 | { |
321 | PixelRGB(___x,TMP); |
325 | PixelRGB(___x,TMP); |
322 | _TMP_WEIGHT = size.TMP_WEIGHT; |
326 | _TMP_WEIGHT = size.TMP_WEIGHT; |
323 | WHILE(_TMP_WEIGHT) |
327 | WHILE(_TMP_WEIGHT) |
324 | { |
328 | { |
325 | IF(weight) PixelRGB(___x+_TMP_WEIGHT,TMP); |
329 | IF(weight) PixelRGB(___x+_TMP_WEIGHT,TMP); |
326 | _TMP_WEIGHT--; |
330 | _TMP_WEIGHT--; |
327 | } |
331 | } |
328 | } |
332 | } |
329 | } |
333 | } |
330 | xi++; |
334 | xi++; |
331 | iii++; |
335 | iii++; |
332 | } |
336 | } |
333 | yi++; |
337 | yi++; |
334 | IF(italic) ital-=size.offset_i; |
338 | IF(italic) ital-=size.offset_i; |
335 | } |
339 | } |
336 | return rw; |
340 | return rw; |
337 | } |
341 | } |
338 | :byte FONT::load(dword path) |
342 | :byte FONT::load(dword path) |
339 | { |
343 | { |
340 | dword tmp; |
344 | dword tmp; |
341 | buffer_size = 0; |
345 | buffer_size = 0; |
342 | IF(data)free(data); |
346 | IF(data)free(data); |
343 | if (!io.readKPACK(path)) |
347 | if (!io.readKPACK(path)) |
344 | { |
348 | { |
345 | debug("Error while loading font: "); |
349 | debug("Error while loading font: "); |
346 | debugln(path); |
350 | debugln(path); |
347 | return false; |
351 | return false; |
348 | } |
352 | } |
349 | begin = tmp = data = io.buffer_data; |
353 | begin = tmp = data = io.buffer_data; |
350 | size_file = io.FILES_SIZE; |
354 | size_file = io.FILES_SIZE; |
351 | tmp +=size_file; |
355 | tmp +=size_file; |
352 | tmp--; |
356 | tmp--; |
353 | height = DSBYTE[tmp]; |
357 | height = DSBYTE[tmp]; |
354 | tmp--; |
358 | tmp--; |
355 | width = DSBYTE[tmp]; |
359 | width = DSBYTE[tmp]; |
356 | block = math.ceil(height*width/32); |
360 | block = math.ceil(height*width/32); |
357 | return true; |
361 | return true; |
358 | } |
362 | } |
359 | 363 | ||
360 | #endif |
364 | #endif |
361 | > |
365 | > |
362 | > |
366 | > |
363 | > |
367 | > |
364 | >=239)s+=16; |
368 | >=239)s+=16; |
365 | >=175)s+=64; |
369 | >=175)s+=64; |
366 | >>><> |
370 | >>><> |
367 | > |
371 | > |
368 | >0)size.offset_x>0)size.offset_y> |
372 | >0)size.offset_x>0)size.offset_y> |
369 | > |
373 | > |
370 | >=239)s+=16; |
374 | >=239)s+=16; |
371 | >=175)s+=64; |
375 | >=175)s+=64; |
372 | >9)> |
376 | >9)> |