Rev 617 | Rev 824 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 617 | Rev 629 | ||
---|---|---|---|
1 | ;----------------------------------------------------------------------------- |
1 | ;----------------------------------------------------------------------------- |
2 | proc drawwindow ;///// DRAW WINDOW /////////////////////////////////////////// |
2 | proc drawwindow ;///// DRAW WINDOW /////////////////////////////////////////// |
3 | ;----------------------------------------------------------------------------- |
3 | ;----------------------------------------------------------------------------- |
4 | 4 | ||
5 | cmp [just_from_popup],1 |
5 | cmp [just_from_popup],1 |
6 | jne @f |
6 | jne @f |
7 | ret |
7 | ret |
8 | @@: |
8 | @@: |
9 | 9 | ||
10 | mcall 48,3,sc,sizeof.system_colors |
10 | mcall 48,3,sc,sizeof.system_colors |
11 | call calc_3d_colors |
11 | call calc_3d_colors |
12 | 12 | ||
13 | ;mcall 12,1 |
13 | ;mcall 12,1 |
14 | invoke gfx.open,TRUE |
14 | invoke gfx.open,TRUE |
15 | mov [ctx],eax |
15 | mov [ctx],eax |
16 | 16 | ||
17 | ;m2m [sc.work],dword[color_tbl.back] |
17 | ;m2m [sc.work],dword[color_tbl.back] |
18 | 18 | ||
19 | mov edx,[sc.work] |
19 | mov edx,[sc.work] |
20 | add edx,0x73000000 |
20 | add edx,0x73000000 |
21 | mov ebx,[mainwnd_pos.x-2] |
21 | mov ebx,[mainwnd_pos.x-2] |
22 | mov bx,word[mainwnd_pos.w] |
22 | mov bx,word[mainwnd_pos.w] |
23 | mov ecx,[mainwnd_pos.y-2] |
23 | mov ecx,[mainwnd_pos.y-2] |
24 | mov cx,word[mainwnd_pos.h] |
24 | mov cx,word[mainwnd_pos.h] |
25 | mcall 0,,,,,s_title |
25 | mcall 0,,,,,s_title |
26 | 26 | ||
27 | mcall 9,p_info,-1 |
27 | mcall 9,p_info,-1 |
28 | mov esi,p_info.box.left |
28 | mov esi,p_info.box.left |
29 | mov edi,mainwnd_pos |
29 | mov edi,mainwnd_pos |
30 | mov ecx,4 |
30 | mov ecx,4 |
31 | cld |
31 | cld |
32 | rep movsd |
32 | rep movsd |
33 | 33 | ||
34 | cmp [p_info.client_box.height],LINEH |
34 | cmp [p_info.client_box.height],LINEH |
35 | jl .exit.2 |
35 | jl .exit.2 |
36 | 36 | ||
37 | mov [tab_bar.Bounds.Left],0 |
37 | mov [tab_bar.Bounds.Left],0 |
38 | mov [tab_bar.Bounds.Top],ATOPH |
38 | mov [tab_bar.Bounds.Top],ATOPH |
39 | mov eax,[p_info.client_box.width] |
39 | mov eax,[p_info.client_box.width] |
40 | mov [tab_bar.Bounds.Right],eax |
40 | mov [tab_bar.Bounds.Right],eax |
41 | mov eax,[p_info.client_box.height] |
41 | mov eax,[p_info.client_box.height] |
42 | sub eax,[bot_dlg_height] |
42 | sub eax,[bot_dlg_height] |
43 | add eax,-STATH-1 |
43 | add eax,-STATH-1 |
44 | mov [tab_bar.Bounds.Bottom],eax |
44 | mov [tab_bar.Bounds.Bottom],eax |
45 | 45 | ||
46 | call align_editor_in_tab |
46 | call align_editor_in_tab |
47 | 47 | ||
48 | mov [top_ofs],ATOPH;+1 |
48 | mov [top_ofs],ATOPH;+1 |
49 | 49 | ||
50 | mov eax,[p_info.client_box.height] |
50 | mov eax,[p_info.client_box.height] |
51 | add eax,-STATH+1;*3-2-2 |
51 | add eax,-STATH+1;*3-2-2 |
52 | sub eax,[bot_dlg_height] |
52 | sub eax,[bot_dlg_height] |
53 | mov [bot_ofs],eax |
53 | mov [bot_ofs],eax |
54 | 54 | ||
55 | call draw_bottom_dialog |
55 | call draw_bottom_dialog |
56 | 56 | ||
57 | ; mov [do_not_draw],1 ; do_not_draw = true |
57 | ; mov [do_not_draw],1 ; do_not_draw = true |
58 | 58 | ||
59 | ; mov ebx,eax |
59 | ; mov ebx,eax |
60 | ; sub ebx,[top_ofs] |
60 | ; sub ebx,[top_ofs] |
61 | ; sub ebx,SCRLW*3+AMINS+5 |
61 | ; sub ebx,SCRLW*3+AMINS+5 |
62 | ; js .no_draw |
62 | ; js .no_draw |
63 | 63 | ||
64 | ; dec [do_not_draw] ; do_not_draw = false |
64 | ; dec [do_not_draw] ; do_not_draw = false |
65 | ; sub eax,SCRLW+3 |
65 | ; sub eax,SCRLW+3 |
66 | ; sub eax,[top_ofs] |
66 | ; sub eax,[top_ofs] |
67 | ; cdq |
67 | ; cdq |
68 | ; mov ebx,LINEH |
68 | ; mov ebx,LINEH |
69 | ; div ebx |
69 | ; div ebx |
70 | ; mov [lines.scr],eax |
70 | ; mov [lines.scr],eax |
71 | 71 | ||
72 | inc [top_ofs] |
72 | inc [top_ofs] |
73 | 73 | ||
74 | call draw_main_menu |
74 | call draw_main_menu |
75 | 75 | ||
76 | jmp .exit |
76 | jmp .exit |
77 | 77 | ||
78 | .no_draw: |
78 | .no_draw: |
79 | mov [top_ofs],2 |
79 | mov [top_ofs],2 |
80 | mov eax,[p_info.client_box.height] |
80 | mov eax,[p_info.client_box.height] |
81 | inc eax |
81 | inc eax |
82 | mov [bot_ofs],eax |
82 | mov [bot_ofs],eax |
83 | sub eax,2 |
83 | sub eax,2 |
84 | push eax |
84 | push eax |
85 | add eax,-2-SCRLW |
85 | add eax,-2-SCRLW |
86 | cdq |
86 | cdq |
87 | mov ebx,LINEH |
87 | mov ebx,LINEH |
88 | idiv ebx |
88 | idiv ebx |
89 | mov [lines.scr],eax |
89 | mov [lines.scr],eax |
90 | pop eax |
90 | pop eax |
91 | 91 | ||
92 | mov ebx,[p_info.client_box.height] |
92 | mov ebx,[p_info.client_box.height] |
93 | sub ebx,SCRLW*3+AMINS+2 |
93 | sub ebx,SCRLW*3+AMINS+2 |
94 | jns @f |
94 | jns @f |
95 | 95 | ||
96 | inc [do_not_draw] |
96 | inc [do_not_draw] |
97 | 97 | ||
98 | dec eax |
98 | dec eax |
99 | cdq |
99 | cdq |
100 | mov ebx,LINEH |
100 | mov ebx,LINEH |
101 | idiv ebx |
101 | idiv ebx |
102 | mov [lines.scr],eax |
102 | mov [lines.scr],eax |
103 | 103 | ||
104 | mov eax,[p_info.client_box.width] |
104 | mov eax,[p_info.client_box.width] |
105 | cdq |
105 | cdq |
106 | mov ebx,6 |
106 | mov ebx,6 |
107 | idiv ebx |
107 | idiv ebx |
108 | mov [columns.scr],eax |
108 | mov [columns.scr],eax |
109 | @@: |
109 | @@: |
110 | 110 | ||
111 | .exit: |
111 | .exit: |
112 | call draw_editor |
112 | call draw_editor |
113 | call draw_tabctl |
113 | call draw_tabctl |
114 | .exit.2: |
114 | .exit.2: |
115 | ;mcall 12,2 |
115 | ;mcall 12,2 |
116 | invoke gfx.close,[ctx] |
116 | invoke gfx.close,[ctx] |
117 | ret |
117 | ret |
118 | endp |
118 | endp |
119 | 119 | ||
120 | ;----------------------------------------------------------------------------- |
120 | ;----------------------------------------------------------------------------- |
121 | proc draw_bottom_dialog ;///////////////////////////////////////////////////// |
121 | proc draw_bottom_dialog ;///////////////////////////////////////////////////// |
122 | ;----------------------------------------------------------------------------- |
122 | ;----------------------------------------------------------------------------- |
123 | cmp [bot_dlg_height],0 |
123 | cmp [bot_dlg_height],0 |
124 | je .exit |
124 | je .exit |
125 | pushad |
125 | pushad |
126 | invoke gfx.pen.color,[ctx],[cl_3d_inset] |
126 | invoke gfx.pen.color,[ctx],[cl_3d_inset] |
127 | mov ecx,[bot_ofs] |
127 | mov ecx,[bot_ofs] |
128 | dec ecx |
128 | dec ecx |
129 | invoke gfx.line,[ctx],0,ecx,[p_info.client_box.width],ecx |
129 | invoke gfx.line,[ctx],0,ecx,[p_info.client_box.width],ecx |
130 | invoke gfx.brush.color,[ctx],[cl_3d_normal] |
130 | invoke gfx.brush.color,[ctx],[cl_3d_normal] |
131 | inc ecx |
131 | inc ecx |
132 | mov eax,ecx |
132 | mov eax,ecx |
133 | add eax,[bot_dlg_height] |
133 | add eax,[bot_dlg_height] |
134 | invoke gfx.fillrect,[ctx],0,ecx,[p_info.client_box.width],eax |
134 | invoke gfx.fillrect,[ctx],0,ecx,[p_info.client_box.width],eax |
135 | ;mov ebx,[p_info.client_box.width] |
135 | ;mov ebx,[p_info.client_box.width] |
136 | ;mov ecx,[bot_ofs] |
136 | ;mov ecx,[bot_ofs] |
137 | ;dec ecx |
137 | ;dec ecx |
138 | ;push cx |
138 | ;push cx |
139 | ;shl ecx,16 |
139 | ;shl ecx,16 |
140 | ;pop cx |
140 | ;pop cx |
141 | ;mcall 38,,,[cl_3d_inset] |
141 | ;mcall 38,,,[cl_3d_inset] |
142 | ;mov ecx,[bot_ofs-2] |
142 | ;mov ecx,[bot_ofs-2] |
143 | ;mov cx,word[bot_dlg_height] |
143 | ;mov cx,word[bot_dlg_height] |
144 | ;dec ecx |
144 | ;dec ecx |
145 | ;mov ebx,[p_info.client_box.width] |
145 | ;mov ebx,[p_info.client_box.width] |
146 | ;inc ebx |
146 | ;inc ebx |
147 | ;mcall 13,,,[cl_3d_normal] |
147 | ;mcall 13,,,[cl_3d_normal] |
148 | mov al,1 |
148 | mov al,1 |
149 | call [bot_dlg_handler] |
149 | call [bot_dlg_handler] |
150 | popad |
150 | popad |
151 | 151 | ||
152 | .exit: |
152 | .exit: |
153 | ret |
153 | ret |
154 | endp |
154 | endp |
155 | 155 | ||
156 | mi_sel dd ? |
156 | mi_sel dd ? |
157 | mi_cur dd -1 |
157 | mi_cur dd -1 |
158 | 158 | ||
159 | ;----------------------------------------------------------------------------- |
159 | ;----------------------------------------------------------------------------- |
160 | proc draw_main_menu ;///////////////////////////////////////////////////////// |
160 | proc draw_main_menu ;///////////////////////////////////////////////////////// |
161 | ;----------------------------------------------------------------------------- |
161 | ;----------------------------------------------------------------------------- |
162 | mov ebx,[p_info.client_box.width] |
162 | mov ebx,[p_info.client_box.width] |
163 | inc ebx |
163 | inc ebx |
164 | mcall 13,,ATOPH-1,[cl_3d_normal] |
164 | mcall 13,,ATOPH-1,[cl_3d_normal] |
165 | 165 | ||
166 | mcall 38,[p_info.client_box.width], |
166 | mcall 38,[p_info.client_box.width], |
167 | 167 | ||
168 | mov edx,main_menu |
168 | mov edx,main_menu |
169 | mov ebx,9*65536+ATOPH/2-3;4 |
169 | mov ebx,9*65536+ATOPH/2-3;4 |
170 | mov [mi_sel],0 |
170 | mov [mi_sel],0 |
171 | mov edi,[mi_cur] |
171 | mov edi,[mi_cur] |
172 | @@: inc [mi_sel] |
172 | @@: inc [mi_sel] |
173 | cmp [mi_sel],main_menu.cnt_item |
173 | cmp [mi_sel],main_menu.cnt_item |
174 | ja .exit |
174 | ja .exit |
175 | mov ecx,[sc.work_text] |
175 | mov ecx,[sc.work_text] |
176 | cmp edi,[mi_sel] |
176 | cmp edi,[mi_sel] |
177 | jne .lp1 |
177 | jne .lp1 |
178 | pushad |
178 | pushad |
179 | push edx |
179 | push edx |
180 | mov ecx,[edx+4] |
180 | mov ecx,[edx+4] |
181 | add ecx,2*65536-2 |
181 | add ecx,2*65536-2 |
182 | mcall 13,[edx+0],,[sc.work] |
182 | mcall 13,[edx+0],,[sc.work] |
183 | mov edx,[esp] |
183 | mov edx,[esp] |
184 | mov cx,[edx+6] |
184 | mov cx,[edx+6] |
185 | add ecx,-1*65536+1 |
185 | add ecx,-1*65536+1 |
186 | add bx,[edx+2] |
186 | add bx,[edx+2] |
187 | mcall 38,,,[cl_3d_inset] |
187 | mcall 38,,,[cl_3d_inset] |
188 | 188 | ||
189 | mov edx,[esp] |
189 | mov edx,[esp] |
190 | add cx,[edx+4] |
190 | add cx,[edx+4] |
191 | add cx,-2 |
191 | add cx,-2 |
192 | mov bx,[edx+2] |
192 | mov bx,[edx+2] |
193 | mcall ,,,[cl_3d_inset] |
193 | mcall ,,,[cl_3d_inset] |
194 | pop edx |
194 | pop edx |
195 | movzx eax,word[edx] |
195 | movzx eax,word[edx] |
196 | add ebx,eax |
196 | add ebx,eax |
197 | shl eax,16 |
197 | shl eax,16 |
198 | add ebx,eax |
198 | add ebx,eax |
199 | mcall 38,,,[cl_3d_inset] |
199 | mcall 38,,,[cl_3d_inset] |
200 | popad |
200 | popad |
201 | mov ecx,[color_tbl.text] |
201 | mov ecx,[color_tbl.text] |
202 | .lp1: add edx,8+1 |
202 | .lp1: add edx,8+1 |
203 | movzx esi,byte[edx-1] |
203 | movzx esi,byte[edx-1] |
204 | mcall 4 |
204 | mcall 4 |
205 | add edx,esi |
205 | add edx,esi |
206 | add esi,2 |
206 | add esi,2 |
207 | imul esi,6*65536 |
207 | imul esi,6*65536 |
208 | add ebx,esi |
208 | add ebx,esi |
209 | jmp @b |
209 | jmp @b |
210 | 210 | ||
211 | .exit: |
211 | .exit: |
212 | mov eax, 8 |
212 | mov ebx,[mainwnd_pos.w] |
- | 213 | add ebx,-10-(ATOPH-6)-3 |
|
213 | mov bx, word [mainwnd_pos.w] |
214 | push ebx 2 (ATOPH-6) (ATOPH-6) |
214 | sub bx, 25 |
215 | call draw_3d_panel |
215 | shl ebx, 16 |
216 | shl ebx,16 |
216 | add ebx, 12 |
217 | add ebx,ATOPH-6 |
217 | - | ||
218 | mov ecx, 3 * 65536 + 12 |
218 | mcall 8,,<2,ATOPH-6>,<0x4000,2> |
219 | mov edx, 177 |
- | |
220 | mov esi, 0x00bcbec6 |
219 | and ebx,0xFFFF0000 |
221 | int 0x40 |
- | |
222 | - | ||
223 | ;mov eax, 4 |
- | |
224 | shr eax, 1 |
- | |
225 | sub ebx, -4 * 65536 |
220 | add ebx,(ATOPH-8)/2*65536+(ATOPH-8)/2 |
226 | mov bx, 6 |
- | |
227 | mov ecx, 0 |
- | |
228 | mov edx, cross |
221 | mcall 4,,[sc.work_text],.cross,1 |
229 | mov esi, 1 |
- | |
230 | int 0x40 |
- | |
231 | 222 | ||
232 | ret |
223 | ret |
233 | 224 | ||
234 | cross: |
- | |
235 | db 'X' |
225 | .cross db 'x' |
236 | endp |
226 | endp |
237 | 227 | ||
238 | ;----------------------------------------------------------------------------- |
228 | ;----------------------------------------------------------------------------- |
239 | proc draw_statusbar ;///// DRAW POSITION, MODIFIED STATE, HINT /////////////// |
229 | proc draw_statusbar ;///// DRAW POSITION, MODIFIED STATE, HINT /////////////// |
240 | ;----------------------------------------------------------------------------- |
230 | ;----------------------------------------------------------------------------- |
241 | cmp [do_not_draw],1 ; return if drawing is not permitted |
231 | cmp [do_not_draw],1 ; return if drawing is not permitted |
242 | jae .exit |
232 | jae .exit |
243 | pusha |
233 | pusha |
244 | 234 | ||
245 | mov ecx,[p_info.client_box.height-2] |
235 | mov ecx,[p_info.client_box.height-2] |
246 | mov cx,word[p_info.client_box.height] |
236 | mov cx,word[p_info.client_box.height] |
247 | sub ecx,STATH*65536+STATH |
237 | sub ecx,STATH*65536+STATH |
248 | mcall 38,[p_info.client_box.width],,[cl_3d_inset] |
238 | mcall 38,[p_info.client_box.width],,[cl_3d_inset] |
249 | 239 | ||
250 | ; mcall 9,p_info,-1 |
240 | ; mcall 9,p_info,-1 |
251 | 241 | ||
252 | mov ecx,[p_info.client_box.height-2] |
242 | mov ecx,[p_info.client_box.height-2] |
253 | mov cx,word[p_info.client_box.height] |
243 | mov cx,word[p_info.client_box.height] |
254 | sub ecx,STATH*65536 |
244 | sub ecx,STATH*65536 |
255 | mcall 38,<6*13,6*13>,,[cl_3d_inset] |
245 | mcall 38,<6*13,6*13>,,[cl_3d_inset] |
256 | 246 | ||
257 | pushad |
247 | pushad |
258 | add ecx,1*65536 |
248 | add ecx,1*65536 |
259 | mov cx,STATH |
249 | mov cx,STATH |
260 | mcall 13,<0,6*13>,,[cl_3d_normal] |
250 | mcall 13,<0,6*13>,,[cl_3d_normal] |
261 | mcall ,<6*13+1,6*(s_modified.size+2)-1> |
251 | mcall ,<6*13+1,6*(s_modified.size+2)-1> |
262 | mov ebx,(6*(s_modified.size+15)+1)*65536 |
252 | mov ebx,(6*(s_modified.size+15)+1)*65536 |
263 | mov bx,word[p_info.client_box.width] |
253 | mov bx,word[p_info.client_box.width] |
264 | sub bx,6*(s_modified.size+15) |
254 | sub bx,6*(s_modified.size+15) |
265 | mcall |
255 | mcall |
266 | popad |
256 | popad |
267 | 257 | ||
268 | add ebx,6*(s_modified.size+2)*65536+6*(s_modified.size+2) |
258 | add ebx,6*(s_modified.size+2)*65536+6*(s_modified.size+2) |
269 | mcall |
259 | mcall |
270 | 260 | ||
271 | and ecx,0x0000FFFF |
261 | and ecx,0x0000FFFF |
272 | push ecx |
262 | push ecx |
273 | 263 | ||
274 | mov eax,[cur_editor.Caret.Y] |
264 | mov eax,[cur_editor.Caret.Y] |
275 | inc eax |
265 | inc eax |
276 | mov ecx,10 |
266 | mov ecx,10 |
277 | mov edi,p_info+0x100 |
267 | mov edi,p_info+0x100 |
278 | cld |
268 | cld |
279 | call uint2str |
269 | call uint2str |
280 | mov al,',' |
270 | mov al,',' |
281 | stosb |
271 | stosb |
282 | mov eax,[cur_editor.Caret.X] |
272 | mov eax,[cur_editor.Caret.X] |
283 | inc eax |
273 | inc eax |
284 | call uint2str |
274 | call uint2str |
285 | 275 | ||
286 | pop ebx |
276 | pop ebx |
287 | 277 | ||
288 | lea esi,[edi-p_info-0x100] |
278 | lea esi,[edi-p_info-0x100] |
289 | lea edi,[esi*3] |
279 | lea edi,[esi*3] |
290 | shl edi,16 |
280 | shl edi,16 |
291 | 281 | ||
292 | add ebx,(1+6*6+3)*65536-STATH/2-3 |
282 | add ebx,(1+6*6+3)*65536-STATH/2-3 |
293 | sub ebx,edi |
283 | sub ebx,edi |
294 | mcall 4,,[sc.work_text],p_info+0x100 |
284 | mcall 4,,[sc.work_text],p_info+0x100 |
295 | 285 | ||
296 | cmp [cur_editor.Modified],0 |
286 | cmp [cur_editor.Modified],0 |
297 | je @f |
287 | je @f |
298 | and ebx,0x0000FFFF |
288 | and ebx,0x0000FFFF |
299 | add ebx,(1+12*6+12+1)*65536 |
289 | add ebx,(1+12*6+12+1)*65536 |
300 | mcall ,,,s_modified,s_modified.size |
290 | mcall ,,,s_modified,s_modified.size |
301 | 291 | ||
302 | @@: cmp [s_status],0 |
292 | @@: cmp [s_status],0 |
303 | je @f |
293 | je @f |
304 | and ebx,0x0000FFFF |
294 | and ebx,0x0000FFFF |
305 | add ebx,6*(s_modified.size+16)*65536 |
295 | add ebx,6*(s_modified.size+16)*65536 |
306 | or ecx, 80000000h |
296 | or ecx, 80000000h |
307 | mcall ,,,[s_status] |
297 | mcall ,,,[s_status] |
308 | 298 | ||
309 | @@: popa |
299 | @@: popa |
310 | 300 | ||
311 | .exit: |
301 | .exit: |
312 | ret |
302 | ret |
313 | endp |
303 | endp |
314 | 304 | ||
315 | proc draw_fillrect ; ebx,ecx,edx |
305 | proc draw_fillrect ; ebx,ecx,edx |
316 | ; ebx = |
306 | ; ebx = |
317 | ; ecx = |
307 | ; ecx = |
318 | push ebx ecx edx |
308 | push ebx ecx edx |
319 | call draw_framerect |
309 | call draw_framerect |
320 | add ebx,1*65536-2 |
310 | add ebx,1*65536-2 |
321 | add ecx,1*65536-2 |
311 | add ecx,1*65536-2 |
322 | mcall 13,,,esi |
312 | mcall 13,,,esi |
323 | pop edx ecx ebx |
313 | pop edx ecx ebx |
324 | ret |
314 | ret |
325 | endp |
315 | endp |
326 | 316 | ||
327 | proc draw_framerect ; ebx,ecx,edx |
317 | proc draw_framerect ; ebx,ecx,edx |
328 | ; ebx = |
318 | ; ebx = |
329 | ; ecx = |
319 | ; ecx = |
330 | push ebx ecx |
320 | push ebx ecx |
331 | 321 | ||
332 | add bx,[esp+6] ; ebx = |
322 | add bx,[esp+6] ; ebx = |
333 | mov cx,[esp+2] ; ecx = |
323 | mov cx,[esp+2] ; ecx = |
334 | dec ebx |
324 | dec ebx |
335 | mcall 38 |
325 | mcall 38 |
336 | add cx,[esp] ; ecx = |
326 | add cx,[esp] ; ecx = |
337 | rol ecx,16 |
327 | rol ecx,16 |
338 | add cx,[esp] ; ecx = |
328 | add cx,[esp] ; ecx = |
339 | sub ecx,0x00010001 |
329 | sub ecx,0x00010001 |
340 | mcall |
330 | mcall |
341 | 331 | ||
342 | mov ebx,[esp+4] ; ebx = |
332 | mov ebx,[esp+4] ; ebx = |
343 | mov ecx,[esp] ; ecx = |
333 | mov ecx,[esp] ; ecx = |
344 | mov bx,[esp+6] ; ebx = |
334 | mov bx,[esp+6] ; ebx = |
345 | add cx,[esp+2] |
335 | add cx,[esp+2] |
346 | dec ecx |
336 | dec ecx |
347 | mcall |
337 | mcall |
348 | add bx,[esp+4] |
338 | add bx,[esp+4] |
349 | rol ebx,16 |
339 | rol ebx,16 |
350 | add bx,[esp+4] |
340 | add bx,[esp+4] |
351 | sub ebx,0x00010001 |
341 | sub ebx,0x00010001 |
352 | mcall |
342 | mcall |
353 | 343 | ||
354 | pop ecx ebx |
344 | pop ecx ebx |
355 | ret |
345 | ret |
356 | endp |
346 | endp |
357 | 347 | ||
358 | proc draw_check |
348 | proc draw_check |
359 | push bx |
349 | push bx |
360 | shl ebx,16 |
350 | shl ebx,16 |
361 | pop bx |
351 | pop bx |
362 | add ebx,0x00010000 |
352 | add ebx,0x00010000 |
363 | push cx |
353 | push cx |
364 | shl ecx,16 |
354 | shl ecx,16 |
365 | pop cx |
355 | pop cx |
366 | add ecx,0x00020001 |
356 | add ecx,0x00020001 |
367 | mcall 38 |
357 | mcall 38 |
368 | add ecx,0x00010001 |
358 | add ecx,0x00010001 |
369 | mcall |
359 | mcall |
370 | add ebx,4 |
360 | add ebx,4 |
371 | sub ecx,2 |
361 | sub ecx,2 |
372 | mcall |
362 | mcall |
373 | sub ecx,0x00010001 |
363 | sub ecx,0x00010001 |
374 | mcall |
364 | mcall |
375 | ret |
365 | ret |
376 | endp |
366 | endp |
377 | 367 | ||
378 | proc calc_middle |
368 | proc calc_middle |
379 | shr eax,1 |
369 | shr eax,1 |
380 | shr ebx,1 |
370 | shr ebx,1 |
381 | and eax,0x007F7F7F |
371 | and eax,0x007F7F7F |
382 | and ebx,0x007F7F7F |
372 | and ebx,0x007F7F7F |
383 | add eax,ebx |
373 | add eax,ebx |
384 | ret |
374 | ret |
385 | endp |
375 | endp |
386 | 376 | ||
387 | proc calc_3d_colors |
377 | proc calc_3d_colors |
388 | pushad |
378 | pushad |
389 | m2m [cl_3d_normal],[sc.work] |
379 | m2m [cl_3d_normal],[sc.work] |
390 | m2m [cl_3d_inset],[sc.work_graph] |
380 | m2m [cl_3d_inset],[sc.work_graph] |
391 | push [cl_3d_normal] |
381 | push [cl_3d_normal] |
392 | add byte[esp],48 |
382 | add byte[esp],48 |
393 | jnc @f |
383 | jnc @f |
394 | mov byte[esp],255 |
384 | mov byte[esp],255 |
395 | @@: add byte[esp+1],48 |
385 | @@: add byte[esp+1],48 |
396 | jnc @f |
386 | jnc @f |
397 | mov byte[esp+1],255 |
387 | mov byte[esp+1],255 |
398 | @@: add byte[esp+2],48 |
388 | @@: add byte[esp+2],48 |
399 | jnc @f |
389 | jnc @f |
400 | mov byte[esp+2],255 |
390 | mov byte[esp+2],255 |
401 | @@: pop [cl_3d_outset] |
391 | @@: pop [cl_3d_outset] |
402 | mov eax,[cl_3d_inset] |
392 | mov eax,[cl_3d_inset] |
403 | mov ebx,[cl_3d_outset] |
393 | mov ebx,[cl_3d_outset] |
404 | call calc_middle |
394 | call calc_middle |
405 | mov ebx,[cl_3d_normal] |
395 | mov ebx,[cl_3d_normal] |
406 | call calc_middle |
396 | call calc_middle |
407 | mov [cl_3d_pushed],eax |
397 | mov [cl_3d_pushed],eax |
408 | mov eax,[cl_3d_normal] |
398 | mov eax,[cl_3d_normal] |
409 | mov ebx,[sc.work_text] |
399 | mov ebx,[sc.work_text] |
410 | call calc_middle |
400 | call calc_middle |
411 | mov [cl_3d_grayed],eax |
401 | mov [cl_3d_grayed],eax |
412 | popad |
402 | popad |
413 | ret |
403 | ret |
414 | endp |
404 | endp |
415 | 405 | ||
416 | proc draw_3d_panel ; x,y,w,h |
406 | proc draw_3d_panel ; x,y,w,h |
417 | push eax ebx ecx edx |
407 | push eax ebx ecx edx |
418 | cmp dword[esp+16+8],4 |
408 | cmp dword[esp+16+8],4 |
419 | jl .exit |
409 | jl .exit |
420 | cmp dword[esp+16+4],4 |
410 | cmp dword[esp+16+4],4 |
421 | jl .exit |
411 | jl .exit |
422 | mov ebx,[esp+16+16-2] |
412 | mov ebx,[esp+16+16-2] |
423 | mov bx,[esp+16+8] |
413 | mov bx,[esp+16+8] |
424 | inc ebx |
414 | inc ebx |
425 | mov ecx,[esp+16+12-2] |
415 | mov ecx,[esp+16+12-2] |
426 | mov cx,[esp+16+4] |
416 | mov cx,[esp+16+4] |
427 | inc ecx |
417 | inc ecx |
428 | mcall 13,,,[cl_3d_normal] |
418 | mcall 13,,,[cl_3d_normal] |
429 | dec ebx |
419 | dec ebx |
430 | add bx,[esp+16+16] |
420 | add bx,[esp+16+16] |
431 | mov cx,[esp+16+12] |
421 | mov cx,[esp+16+12] |
432 | mcall 38,,,[cl_3d_inset] |
422 | mcall 38,,,[cl_3d_inset] |
433 | add ecx,[esp+16+4-2] |
423 | add ecx,[esp+16+4-2] |
434 | add cx,[esp+16+4] |
424 | add cx,[esp+16+4] |
435 | mcall |
425 | mcall |
436 | mov bx,[esp+16+16] |
426 | mov bx,[esp+16+16] |
437 | mov ecx,[esp+16+12-2] |
427 | mov ecx,[esp+16+12-2] |
438 | mov cx,[esp+16+4] |
428 | mov cx,[esp+16+4] |
439 | add cx,[esp+16+12] |
429 | add cx,[esp+16+12] |
440 | mcall |
430 | mcall |
441 | add ebx,[esp+16+8-2] |
431 | add ebx,[esp+16+8-2] |
442 | add bx,[esp+16+8] |
432 | add bx,[esp+16+8] |
443 | mcall |
433 | mcall |
444 | mov ebx,[esp+16+16-2] |
434 | mov ebx,[esp+16+16-2] |
445 | mov bx,[esp+16+8] |
435 | mov bx,[esp+16+8] |
446 | add bx,[esp+16+16] |
436 | add bx,[esp+16+16] |
447 | add ebx,1*65536-1 |
437 | add ebx,1*65536-1 |
448 | mov ecx,[esp+16+12-2] |
438 | mov ecx,[esp+16+12-2] |
449 | mov cx,[esp+16+12] |
439 | mov cx,[esp+16+12] |
450 | add ecx,0x00010001 |
440 | add ecx,0x00010001 |
451 | mcall ,,,[cl_3d_outset] |
441 | mcall ,,,[cl_3d_outset] |
452 | mov bx,[esp+16+16] |
442 | mov bx,[esp+16+16] |
453 | inc ebx |
443 | inc ebx |
454 | mov ecx,[esp+16+12-2] |
444 | mov ecx,[esp+16+12-2] |
455 | mov cx,[esp+16+4] |
445 | mov cx,[esp+16+4] |
456 | add cx,[esp+16+12] |
446 | add cx,[esp+16+12] |
457 | add ecx,2*65536-1 |
447 | add ecx,2*65536-1 |
458 | mcall |
448 | mcall |
459 | .exit: |
449 | .exit: |
460 | pop edx ecx ebx eax |
450 | pop edx ecx ebx eax |
461 | ret 4*4 |
451 | ret 4*4 |
462 | endp6*13+1,6*(s_modified.size+2)-1>0,6*13>6*13,6*13> |
452 | endp6*13+1,6*(s_modified.size+2)-1>0,6*13>6*13,6*13>0x4000,2>2,ATOPH-6> |