Rev 8014 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 8014 | Rev 8025 | ||
---|---|---|---|
1 | ; DATA AREA ************************************ |
1 | ; DATA AREA ************************************ |
2 | 2 | ||
3 | i3 dw 3 |
3 | i3 dw 3 |
4 | i256 dw 256 |
4 | i256 dw 256 |
5 | i255d dd 255 |
5 | i255d dd 255 |
6 | dot_max dd 1.0 ; dot product max and min |
6 | dot_max dd 1.0 ; dot product max and min |
7 | dot_min dd 0.0 |
7 | dot_min dd 0.0 |
8 | env_const dd 1.05 |
8 | env_const dd 1.05 |
9 | correct_tex dw 255 |
9 | correct_tex dw 255 |
10 | tex_x_div2 dw TEX_X / 2 |
10 | tex_x_div2 dw TEX_X / 2 |
11 | tex_y_div2 dw TEX_Y / 2 |
11 | tex_y_div2 dw TEX_Y / 2 |
12 | xobs dw 0 ;SIZE_X / 2 ;200 ;observer = camera |
12 | xobs dw 0 ;SIZE_X / 2 ;200 ;observer = camera |
13 | yobs dw 0 ;SIZE_Y / 2 ;200 ;coordinates |
13 | yobs dw 0 ;SIZE_Y / 2 ;200 ;coordinates |
14 | zobs dw -1000 |
14 | zobs dw -1000 |
15 | ; size_x dw SIZE_X |
15 | ; size_x dw SIZE_X |
16 | ; size_y dw SIZE_Y |
16 | ; size_y dw SIZE_Y |
17 | 17 | ||
18 | re_alloc_flag db 0 |
18 | re_alloc_flag db 0 |
19 | angle_counter dw 0 |
19 | angle_counter dw 0 |
20 | piD180 dd 0.017453292519943295769236907684886 |
20 | piD180 dd 0.017453292519943295769236907684886 |
21 | piD128 dd 0.024544 |
21 | piD128 dd 0.024544 |
22 | const6 dw 6,6,6,6 |
22 | const6 dw 6,6,6,6 |
23 | x_offset dw SIZE_X / 2 |
23 | x_offset dw SIZE_X / 2 |
24 | y_offset dw SIZE_Y / 2 |
24 | y_offset dw SIZE_Y / 2 |
25 | z_offset dw 0 |
25 | z_offset dw 0 |
26 | rsscale dd 175.0 ; next real scale |
26 | rsscale dd 175.0 ; next real scale |
27 | vect_x dw SIZE_X / 2 |
27 | vect_x dw SIZE_X / 2 |
28 | vect_y dw SIZE_Y / 2 |
28 | vect_y dw SIZE_Y / 2 |
29 | vect_z dw 0 |
29 | vect_z dw 0 |
30 | angle_x dw 0 |
30 | angle_x dw 0 |
31 | angle_y dw 0 |
31 | angle_y dw 0 |
32 | angle_z dw 0 |
32 | angle_z dw 0 |
33 | sin_amplitude dd 50 |
33 | sin_amplitude dd 50 |
34 | sin_frq dd 0.7 |
34 | sin_frq dd 0.7 |
35 | sin_delta dd 0.07 ; wave frequency granularity |
35 | sin_delta dd 0.07 ; wave frequency granularity |
36 | convert_muler: |
36 | convert_muler: |
37 | dd 1, 10, 100, 1000, 10000 |
37 | dd 1, 10, 100, 1000, 10000 |
38 | XYZpartices: |
38 | XYZpartices: |
39 | db 'X','Y','Z' |
39 | db 'X','Y','Z' |
40 | i10 dw 10 |
40 | i10 dw 10 |
41 | offset_y: |
41 | offset_y: |
42 | i25 dw 25 ; screen buff offset |
42 | i25 dw 25 ; screen buff offset |
43 | offset_x: |
43 | offset_x: |
44 | i5 dw 5 |
44 | i5 dw 5 |
45 | triangles_ptr dd 0 |
45 | triangles_ptr dd 0 |
46 | triangles_w_z_ptr dd 0 |
46 | triangles_w_z_ptr dd 0 |
47 | triangles_normals_ptr dd 0 |
47 | triangles_normals_ptr dd 0 |
48 | points_normals_ptr dd 0 |
48 | points_normals_ptr dd 0 |
49 | points_normals_rot_ptr dd 0 |
49 | points_normals_rot_ptr dd 0 |
50 | points_ptr dd 0 |
50 | points_ptr dd 0 |
51 | points_rotated_ptr dd 0 |
51 | points_rotated_ptr dd 0 |
52 | points_translated_ptr dd 0 |
52 | points_translated_ptr dd 0 |
53 | screen_ptr dd 0 |
53 | screen_ptr dd 0 |
54 | Zbuffer_ptr dd 0 |
54 | Zbuffer_ptr dd 0 |
55 | vertices_index_ptr dd 0 |
55 | vertices_index_ptr dd 0 |
56 | 56 | ||
57 | 57 | ||
58 | ; draw_win_at_first db 1 |
58 | ; draw_win_at_first db 1 |
59 | vertex_edit_no dw 0 |
59 | vertex_edit_no dw 0 |
60 | edit_start_x: |
60 | edit_start_x: |
61 | dw 0 |
61 | dw 0 |
62 | edit_start_y dw 0 |
62 | edit_start_y dw 0 |
63 | edit_end_x: |
63 | edit_end_x: |
64 | dw 0 |
64 | dw 0 |
65 | edit_end_y dw 0 |
65 | edit_end_y dw 0 |
66 | mouse_state dd 0 |
66 | mouse_state dd 0 |
67 | menu: |
67 | menu: |
68 | db 2 ; button number = index |
68 | db 2 ; button number = index |
69 | db 'rotary ' ; label |
69 | db 'rotary ' ; label |
70 | db 3 ; max flag + 1 , if = 255, no flag |
70 | db 3 ; max flag + 1 , if = 255, no flag |
71 | r_flag db 1 ; flag |
71 | r_flag db 1 ; flag |
72 | dd axl_f ; offset to flags description |
72 | dd axl_f ; offset to flags description |
73 | 73 | ||
74 | db 3 |
74 | db 3 |
75 | db 'shd. model' |
75 | db 'shd. model' |
76 | db 12 |
76 | db 12 |
77 | dr_flag db 0 ; 6 - dots |
77 | dr_flag db 0 ; 6 - dots |
78 | dd shd_f |
78 | dd shd_f |
79 | 79 | ||
80 | db 4 |
80 | db 4 |
81 | db 'speed ' |
81 | db 'speed ' |
82 | db 2 |
82 | db 2 |
83 | speed_flag db 0 |
83 | speed_flag db 0 |
84 | dd spd_f |
84 | dd spd_f |
85 | 85 | ||
86 | db 5 |
86 | db 5 |
87 | db 'zoom out ' |
87 | db 'zoom out ' |
88 | db 255 |
88 | db 255 |
89 | db ? |
89 | db ? |
90 | dd ? |
90 | dd ? |
91 | 91 | ||
92 | db 6 |
92 | db 6 |
93 | db 'zoom in ' |
93 | db 'zoom in ' |
94 | db 255 |
94 | db 255 |
95 | db ? |
95 | db ? |
96 | dd ? |
96 | dd ? |
97 | 97 | ||
98 | db 7 |
98 | db 7 |
99 | db 'catmull ' |
99 | db 'catmull ' |
100 | db 2 |
100 | db 2 |
101 | catmull_flag db 1 |
101 | catmull_flag db 1 |
102 | dd onoff_f |
102 | dd onoff_f |
103 | 103 | ||
104 | db 8 |
104 | db 8 |
105 | db 'culling ' |
105 | db 'culling ' |
106 | db 2 |
106 | db 2 |
107 | culling_flag db 0 |
107 | culling_flag db 0 |
108 | dd onoff_f |
108 | dd onoff_f |
109 | 109 | ||
110 | db 9 |
110 | db 9 |
111 | db 'rand.light' |
111 | db 'rand.light' |
112 | db 255 |
112 | db 255 |
113 | db ? |
113 | db ? |
114 | dd ? |
114 | dd ? |
115 | 115 | ||
116 | db 10 |
116 | db 10 |
117 | db 'blur ' |
117 | db 'blur ' |
118 | db 6 |
118 | db 6 |
119 | blur_flag db 0 |
119 | blur_flag db 0 |
120 | dd blur_f |
120 | dd blur_f |
121 | 121 | ||
122 | db 11 |
122 | db 11 |
123 | db 'mirror x ' |
123 | db 'mirror x ' |
124 | db 2 |
124 | db 2 |
125 | mirr_x_flag db 0 |
125 | mirr_x_flag db 0 |
126 | dd onoff_f |
126 | dd onoff_f |
127 | 127 | ||
128 | db 12 |
128 | db 12 |
129 | db 'mirror y ' |
129 | db 'mirror y ' |
130 | db 2 |
130 | db 2 |
131 | mirr_y_flag db 0 |
131 | mirr_y_flag db 0 |
132 | dd onoff_f |
132 | dd onoff_f |
133 | 133 | ||
134 | db 13 |
134 | db 13 |
135 | db 'mirror z ' |
135 | db 'mirror z ' |
136 | db 2 |
136 | db 2 |
137 | mirr_z_flag db 0 |
137 | mirr_z_flag db 0 |
138 | dd onoff_f |
138 | dd onoff_f |
139 | 139 | ||
140 | db 14 |
140 | db 14 |
141 | db 'xchg ' |
141 | db 'xchg ' |
142 | db 4 |
142 | db 4 |
143 | xchg_flag db 0 |
143 | xchg_flag db 0 |
144 | dd xchg_f |
144 | dd xchg_f |
145 | 145 | ||
146 | db 15 |
146 | db 15 |
147 | db 'emboss ' |
147 | db 'emboss ' |
148 | db 2 |
148 | db 2 |
149 | emboss_flag db 0 |
149 | emboss_flag db 0 |
150 | dd onoff_f |
150 | dd onoff_f |
151 | 151 | ||
152 | db 16 |
152 | db 16 |
153 | db 'fire ' |
153 | db 'fire ' |
154 | db 3 |
154 | db 3 |
155 | fire_flag db 0 |
155 | fire_flag db 0 |
156 | dd blur_f |
156 | dd blur_f |
157 | 157 | ||
158 | db 17 |
158 | db 17 |
159 | db 'move ' |
159 | db 'move ' |
160 | db 3 |
160 | db 3 |
161 | move_flag db 0 |
161 | move_flag db 0 |
162 | dd move_f |
162 | dd move_f |
163 | 163 | ||
164 | db 18 |
164 | db 18 |
165 | db 'generate ' |
165 | db 'generate ' |
166 | db 6 |
166 | db 6 |
167 | generator_flag db 0 |
167 | generator_flag db 0 |
168 | dd blur_f |
168 | dd blur_f |
169 | 169 | ||
170 | db 19 |
170 | db 19 |
171 | db 'bumps ' |
171 | db 'bumps ' |
172 | db 2 |
172 | db 2 |
173 | bumps_flag db 0 |
173 | bumps_flag db 0 |
174 | dd bumps_f |
174 | dd bumps_f |
175 | 175 | ||
176 | db 20 |
176 | db 20 |
177 | db 'bumps deep' |
177 | db 'bumps deep' |
178 | db 4 |
178 | db 4 |
179 | bumps_deep_flag db 3 |
179 | bumps_deep_flag db 3 |
180 | dd bumps_d_f |
180 | dd bumps_d_f |
181 | 181 | ||
182 | db 21 |
182 | db 21 |
183 | db 're-map tex' |
183 | db 're-map tex' |
184 | db 255 |
184 | db 255 |
185 | map_tex_flag db ? ;1 |
185 | map_tex_flag db ? ;1 |
186 | dd ? ;bumps_d_f |
186 | dd ? ;bumps_d_f |
187 | 187 | ||
188 | db 22 |
188 | db 22 |
189 | db 'bright + ' |
189 | db 'bright + ' |
190 | db 6 |
190 | db 6 |
191 | inc_bright_flag db 0 ;1 |
191 | inc_bright_flag db 0 ;1 |
192 | dd blur_f |
192 | dd blur_f |
193 | 193 | ||
194 | db 23 |
194 | db 23 |
195 | db 'bright - ' |
195 | db 'bright - ' |
196 | db 6 |
196 | db 6 |
197 | dec_bright_flag db 0 ;1 |
197 | dec_bright_flag db 0 ;1 |
198 | dd blur_f |
198 | dd blur_f |
199 | 199 | ||
200 | db 24 |
200 | db 24 |
201 | db 'wav effect' |
201 | db 'wav effect' |
202 | db 2 |
202 | db 2 |
203 | sinus_flag db 0 |
203 | sinus_flag db 0 |
204 | dd onoff_f |
204 | dd onoff_f |
205 | 205 | ||
206 | 206 | ||
207 | db 25 |
207 | db 25 |
208 | db 'editor ' |
208 | db 'editor ' |
209 | db 2 |
209 | db 2 |
210 | edit_flag db 0 |
210 | edit_flag db 0 |
211 | dd onoff_f |
211 | dd onoff_f |
212 | ; db 24 |
212 | ; db 24 |
213 | ; db 'max ' |
213 | ; db 'max ' |
214 | ; db 2 |
214 | ; db 2 |
215 | ;max_flag db 0 ;1 |
215 | ;max_flag db 0 ;1 |
216 | ; dd blur_f |
216 | ; dd blur_f |
217 | ; |
217 | ; |
218 | ; db 25 |
218 | ; db 25 |
219 | ; db 'min ' |
219 | ; db 'min ' |
220 | ; db 2 |
220 | ; db 2 |
221 | ;min_flag db 0 ;1 |
221 | ;min_flag db 0 ;1 |
222 | ; dd blur_f |
222 | ; dd blur_f |
223 | 223 | ||
224 | 224 | ||
225 | 225 | ||
226 | ; db 21 |
226 | ; db 21 |
227 | ; db 'light No. ' |
227 | ; db 'light No. ' |
228 | ; db 3 |
228 | ; db 3 |
229 | ;light_no_flag db 0 |
229 | ;light_no_flag db 0 |
230 | ; dd bumps_d_f |
230 | ; dd bumps_d_f |
231 | 231 | ||
232 | ; db 22 |
232 | ; db 22 |
233 | ; db 'light comp' |
233 | ; db 'light comp' |
234 | ; db 3 |
234 | ; db 3 |
235 | ;light_comp_flag db 0 |
235 | ;light_comp_flag db 0 |
236 | ; dd light_component_f |
236 | ; dd light_component_f |
237 | 237 | ||
238 | ;; db 23 |
238 | ;; db 23 |
239 | ;; db 'col. comp' |
239 | ;; db 'col. comp' |
240 | ;; db 3 |
240 | ;; db 3 |
241 | ;;color_comp_flag db 0 |
241 | ;;color_comp_flag db 0 |
242 | ;; dd color_component_f |
242 | ;; dd color_component_f |
243 | 243 | ||
244 | 244 | ||
245 | db -1 ; end mark |
245 | db -1 ; end mark |
246 | 246 | ||
247 | 247 | ||
248 | flags: ; flags description |
248 | flags: ; flags description |
249 | shd_f: |
249 | shd_f: |
250 | db 'flat' |
250 | db 'flat' |
251 | db 'grd ' |
251 | db 'grd ' |
252 | db 'env ' |
252 | db 'env ' |
253 | db 'bump' |
253 | db 'bump' |
254 | db 'tex ' |
254 | db 'tex ' |
255 | db 'pos ' |
255 | db 'pos ' |
256 | db 'dots' |
256 | db 'dots' |
257 | db 'txgr' |
257 | db 'txgr' |
258 | db '2tex' |
258 | db '2tex' |
259 | db 'btex' |
259 | db 'btex' |
260 | db 'cenv' |
260 | db 'cenv' |
261 | db 'grdl' |
261 | db 'grdl' |
262 | spd_f: |
262 | spd_f: |
263 | db 'idle' |
263 | db 'idle' |
264 | db 'full' |
264 | db 'full' |
265 | axl_f: |
265 | axl_f: |
266 | db ' y ' |
266 | db ' y ' |
267 | db 'x+y ' |
267 | db 'x+y ' |
268 | db ' x ' |
268 | db ' x ' |
269 | onoff_f: |
269 | onoff_f: |
270 | db 'off ' |
270 | db 'off ' |
271 | db 'on ' |
271 | db 'on ' |
272 | ; light_component_f: |
272 | ; light_component_f: |
273 | ; db 'norm ' ; diffuse | |
273 | ; db 'norm ' ; diffuse | |
274 | ; db 'min' ; specular | or sth. like this |
274 | ; db 'min' ; specular | or sth. like this |
275 | ; db 'max ' ; emmisive | |
275 | ; db 'max ' ; emmisive | |
276 | 276 | ||
277 | ;; color_component_f: |
277 | ;; color_component_f: |
278 | ;; db ' r ' |
278 | ;; db ' r ' |
279 | ;; db ' g ' |
279 | ;; db ' g ' |
280 | ;; db ' b ' |
280 | ;; db ' b ' |
281 | 281 | ||
282 | blur_f: ; blur, fire |
282 | blur_f: ; blur, fire |
283 | db 'off ' |
283 | db 'off ' |
284 | bumps_d_f: db ' 1 ' |
284 | bumps_d_f: db ' 1 ' |
285 | db ' 2 ' |
285 | db ' 2 ' |
286 | db ' 3 ' |
286 | db ' 3 ' |
287 | db ' 4 ' |
287 | db ' 4 ' |
288 | db ' 5 ' |
288 | db ' 5 ' |
289 | 289 | ||
290 | xchg_f: |
290 | xchg_f: |
291 | db 'no ' |
291 | db 'no ' |
292 | db 'x<>y' |
292 | db 'x<>y' |
293 | db 'z<>x' |
293 | db 'z<>x' |
294 | db 'y<>z' |
294 | db 'y<>z' |
295 | move_f: |
295 | move_f: |
296 | db 'obj ' |
296 | db 'obj ' |
297 | db 'camr' |
297 | db 'camr' |
298 | db 'wave' |
298 | db 'wave' |
299 | ; db 'lght' |
299 | ; db 'lght' |
300 | bumps_f: |
300 | bumps_f: |
301 | db 'rand' |
301 | db 'rand' |
302 | db 'tex ' |
302 | db 'tex ' |
303 | ; db 'cscl' |
303 | ; db 'cscl' |
304 | base_vector: |
304 | base_vector: |
305 | labelvector: |
305 | labelvector: |
306 | db 'add vector' |
306 | db 'add vector' |
307 | labelvectorend: |
307 | labelvectorend: |
308 | labelyminus: |
308 | labelyminus: |
309 | db 'y -' |
309 | db 'y -' |
310 | labelyminusend: |
310 | labelyminusend: |
311 | labelzplus: |
311 | labelzplus: |
312 | db 'z +' |
312 | db 'z +' |
313 | labelzplusend: |
313 | labelzplusend: |
314 | labelxminus: |
314 | labelxminus: |
315 | db 'x -' |
315 | db 'x -' |
316 | labelxminusend: |
316 | labelxminusend: |
317 | labelxplus: |
317 | labelxplus: |
318 | db 'x +' |
318 | db 'x +' |
319 | labelxplusend: |
319 | labelxplusend: |
320 | labelzminus: |
320 | labelzminus: |
321 | db 'z -' |
321 | db 'z -' |
322 | labelzminusend: |
322 | labelzminusend: |
323 | labelyplus: |
323 | labelyplus: |
324 | db 'y +' |
324 | db 'y +' |
325 | labelyplusend: |
325 | labelyplusend: |
326 | 326 | ||
327 | ;navigation_size = $ - labelvector |
327 | ;navigation_size = $ - labelvector |
328 | ; db 'set color ' |
328 | ; db 'set color ' |
329 | ; db 'r -' |
329 | ; db 'r -' |
330 | ; db 'g +' |
330 | ; db 'g +' |
331 | ; db 'b -' |
331 | ; db 'b -' |
332 | ; db 'b +' |
332 | ; db 'b +' |
333 | ; db 'g -' |
333 | ; db 'g -' |
334 | ; db 'r +' |
334 | ; db 'r +' |
335 | 335 | ||
336 | labelt: |
336 | labelt: |
337 | db 'DEUS CARITAS EST' |
337 | db 'DEUS CARITAS EST' |
338 | if Ext=MMX |
338 | if Ext=MMX |
339 | db ' (MMX)' |
339 | db ' (MMX)' |
340 | end if |
340 | end if |
341 | if Ext=SSE |
341 | if Ext=SSE |
342 | db ' (SSE)' |
342 | db ' (SSE)' |
343 | end if |
343 | end if |
344 | if Ext=SSE2 |
344 | if Ext=SSE2 |
345 | db ' (SSE2)' |
345 | db ' (SSE2)' |
346 | end if |
346 | end if |
347 | db ' 0.069',0 |
347 | db ' 0.069b',0 |
348 | labellen: |
348 | labellen: |
349 | STRdata db '-1 ' |
349 | STRdata db '-1 ' |
350 | 350 | ||
351 | all_lights_size dw lightsend-lights |
351 | all_lights_size dw lightsend-lights |
352 | 352 | ||
353 | if USE_LFN |
353 | if USE_LFN |
354 | 354 | ||
355 | file_info: |
355 | file_info: |
356 | dd 0 |
356 | dd 0 |
357 | dd 0 |
357 | dd 0 |
358 | dd 0 |
358 | dd 0 |
359 | fsize dd 0 ;180000 ; sizeof(workarea) |
359 | fsize dd 0 ;180000 ; sizeof(workarea) |
360 | fptr dd 0 ;workarea |
360 | fptr dd 0 ;workarea |
361 | file_name: |
361 | file_name: |
362 | db '/rd/1/3d/house.3ds',0 |
362 | db '/rd/1/3d/house.3ds',0 |
363 | 363 | ||
364 | else |
364 | else |
365 | 365 | ||
366 | file_info: |
366 | file_info: |
367 | dd 0 |
367 | dd 0 |
368 | dd 0 |
368 | dd 0 |
369 | fsize dd 1 |
369 | fsize dd 1 |
370 | dd workarea |
370 | dd workarea |
371 | dd hash_table |
371 | dd hash_table |
372 | file_name: |
372 | file_name: |
373 | db '/rd/1/teapot.3ds',0 |
373 | db '/rd/1/teapot.3ds',0 |
374 | end if |
374 | end if |
375 | 375 | ||
376 | ;I_END: |
376 | ;I_END: |
377 | 377 | ||
378 | rb 256 |
378 | rb 256 |
379 | 379 | ||
380 | ;============================================= |
380 | ;============================================= |
381 | lights: |
381 | lights: |
382 | .light_vector dd 0.0,0.0,-1.0 ; x,y,z Z cooficient of vector must be negative |
382 | .light_vector dd 0.0,0.0,-1.0 ; x,y,z Z cooficient of vector must be negative |
383 | .orginal_color_r db 1 ; +12 |
383 | .orginal_color_r db 1 ; +12 |
384 | .orginal_color_g db 255 ; |
384 | .orginal_color_g db 255 ; |
385 | .orginal_color_b db 1 ; +14 |
385 | .orginal_color_b db 1 ; +14 |
386 | .min_color_r db 1 ; |
386 | .min_color_r db 1 ; |
387 | .min_color_g db 1 ; +16 |
387 | .min_color_g db 1 ; +16 |
388 | .min_color_b db 1 ; |
388 | .min_color_b db 1 ; |
389 | .max_color_r db 255 ; |
389 | .max_color_r db 255 ; |
390 | .max_color_g db 255 ; |
390 | .max_color_g db 255 ; |
391 | .max_color_b db 255 ; |
391 | .max_color_b db 255 ; |
392 | .shine db 24 ; +21 |
392 | .shine db 24 ; +21 |
393 | ; LIGHT_SIZE equ ($-lights) |
393 | ; LIGHT_SIZE equ ($-lights) |
394 | 394 | ||
395 | dd -0.5,-0.5,-1.0 ; x,y,z ; .light_vector |
395 | dd -0.5,-0.5,-1.0 ; x,y,z ; .light_vector |
396 | db 5 ; .orginal_color_r |
396 | db 5 ; .orginal_color_r |
397 | db 1 ; .orginal_color_g |
397 | db 1 ; .orginal_color_g |
398 | db 135 ; .orginal_color_b |
398 | db 135 ; .orginal_color_b |
399 | db 19 ; .min_color_r |
399 | db 19 ; .min_color_r |
400 | db 19 ; .min_color_g |
400 | db 19 ; .min_color_g |
401 | db 19 ; .min_color_b |
401 | db 19 ; .min_color_b |
402 | db 255 ; .max_color_r |
402 | db 255 ; .max_color_r |
403 | db 255 ; .max_color_g |
403 | db 255 ; .max_color_g |
404 | db 255 ; .max_color_b |
404 | db 255 ; .max_color_b |
405 | db 16 ; .shine |
405 | db 16 ; .shine |
406 | 406 | ||
407 | dd 0.5,0.5,-1.0 ; x,y,z ; .light_vector |
407 | dd 0.5,0.5,-1.0 ; x,y,z ; .light_vector |
408 | db 135 ; .orginal_color_r |
408 | db 135 ; .orginal_color_r |
409 | db 1 ; .orginal_color_g |
409 | db 1 ; .orginal_color_g |
410 | db 1 ; .orginal_color_b |
410 | db 1 ; .orginal_color_b |
411 | db 19 ; .min_color_r |
411 | db 19 ; .min_color_r |
412 | db 19 ; .min_color_g |
412 | db 19 ; .min_color_g |
413 | db 19 ; .min_color_b |
413 | db 19 ; .min_color_b |
414 | db 255 ; .max_color_r |
414 | db 255 ; .max_color_r |
415 | db 255 ; .max_color_g |
415 | db 255 ; .max_color_g |
416 | db 20 ; .max_color_b |
416 | db 20 ; .max_color_b |
417 | db 16 ; .shine |
417 | db 16 ; .shine |
418 | ; ALL_LIGHTS_SIZE equ ($ - lights) |
418 | ; ALL_LIGHTS_SIZE equ ($ - lights) |
419 | ;#all_lights_size dw ($ - lights) ;ALL_LIGHTS_SIZE |
419 | ;#all_lights_size dw ($ - lights) ;ALL_LIGHTS_SIZE |
420 | ;=============================================== |
420 | ;=============================================== |
421 | 421 | ||
422 | lightsend: |
422 | lightsend: |
423 | align 16 |
423 | align 16 |
424 | emboss_bias: |
424 | emboss_bias: |
425 | dw 128, 128, 128, 128, 128, 128, 128, 128 |
425 | dw 128, 128, 128, 128, 128, 128, 128, 128 |
426 | 426 | ||
427 | I_END: |
427 | I_END: |
428 | if USE_LFN = 0 |
428 | if USE_LFN = 0 |
429 | hash_table rb 4096 |
429 | hash_table rb 4096 |
430 | SourceFile: |
430 | SourceFile: |
431 | workarea rb 180000 |
431 | workarea rb 180000 |
432 | else |
432 | else |
433 | SourceFile: |
433 | SourceFile: |
434 | workarea rb 180 |
434 | workarea rb 180 |
435 | end if |
435 | end if |
436 | EndFile dd ? |
436 | EndFile dd ? |
437 | align 8 |
437 | align 8 |
438 | sinbeta dd ?;+32 |
438 | sinbeta dd ?;+32 |
439 | cosbeta dd ? |
439 | cosbeta dd ? |
440 | 440 | ||
441 | xsub dw ? |
441 | xsub dw ? |
442 | zsub dw ?;+40 |
442 | zsub dw ?;+40 |
443 | ysub dw ? |
443 | ysub dw ? |
444 | 444 | ||
445 | xx1 dw ? |
445 | xx1 dw ? |
446 | yy1 dw ? |
446 | yy1 dw ? |
447 | zz1 dw ?;+48 xx1 + 4 |
447 | zz1 dw ?;+48 xx1 + 4 |
448 | xx2 dw ? |
448 | xx2 dw ? |
449 | yy2 dw ? |
449 | yy2 dw ? |
450 | zz2 dw ? ; xx1 + 10 |
450 | zz2 dw ? ; xx1 + 10 |
451 | xx3 dw ?;+56 |
451 | xx3 dw ?;+56 |
452 | yy3 dw ? |
452 | yy3 dw ? |
453 | zz3 dw ? ; xx1 + 16 |
453 | zz3 dw ? ; xx1 + 16 |
454 | col1 dd ? |
454 | col1 dd ? |
455 | col2 dd ? |
455 | col2 dd ? |
456 | col3 dd ? |
456 | col3 dd ? |
457 | scale dd ? ; help scale variable |
457 | scale dd ? ; help scale variable |
458 | edges_counter dd ? |
458 | edges_counter dd ? |
459 | ;== |
459 | ;== |
460 | triangles_count_var dd ? |
460 | triangles_count_var dd ? |
461 | points_count_var dd ? |
461 | points_count_var dd ? |
462 | ; triangles_ptr dd ? |
462 | ; triangles_ptr dd ? |
463 | ; triangles_w_z_ptr dd ? |
463 | ; triangles_w_z_ptr dd ? |
464 | ; triangles_normals_ptr dd ? |
464 | ; triangles_normals_ptr dd ? |
465 | ; points_normals_ptr dd ? |
465 | ; points_normals_ptr dd ? |
466 | ; points_normals_rot_ptr dd ? |
466 | ; points_normals_rot_ptr dd ? |
467 | ; points_ptr dd ? |
467 | ; points_ptr dd ? |
468 | ; points_rotated_ptr dd ? |
468 | ; points_rotated_ptr dd ? |
469 | ; points_translated_ptr dd ? |
469 | ; points_translated_ptr dd ? |
470 | ; screen_ptr dd ? |
470 | ; screen_ptr dd ? |
471 | ; Zbuffer_ptr dd ? |
471 | ; Zbuffer_ptr dd ? |
472 | ; vertices_index_ptr dd ? |
472 | ; vertices_index_ptr dd ? |
473 | ; edit_start_x: |
473 | ; edit_start_x: |
474 | dw ? ; don't change order |
474 | dw ? ; don't change order |
475 | ; edit_start_y dw ? |
475 | ; edit_start_y dw ? |
476 | ; edges_ptr dd ? |
476 | ; edges_ptr dd ? |
477 | size_y_var: |
477 | size_y_var: |
478 | dw ? |
478 | dw ? |
479 | size_x_var: |
479 | size_x_var: |
480 | dw ? |
480 | dw ? |
481 | x_start: |
481 | x_start: |
482 | dw ? |
482 | dw ? |
483 | y_start: |
483 | y_start: |
484 | dw ? |
484 | dw ? |
485 | 485 | ||
486 | ;=== |
486 | ;=== |
487 | 487 | ||
488 | point_index1 dd ? ;-\ |
488 | point_index1 dd ? ;-\ |
489 | point_index2 dd ? ; } don't change order |
489 | point_index2 dd ? ; } don't change order |
490 | point_index3 dd ? ;-/ |
490 | point_index3 dd ? ;-/ |
491 | temp_col dw ? |
491 | temp_col dw ? |
492 | high dd ? |
492 | high dd ? |
493 | rand_seed dw ? |
493 | rand_seed dw ? |
494 | align 8 |
494 | align 8 |
495 | buffer dq ? |
495 | buffer dq ? |
496 | errr dd ? |
496 | errr dd ? |
497 | drr dd ? |
497 | drr dd ? |
498 | xx dd ? |
498 | xx dd ? |
499 | yy dd ? |
499 | yy dd ? |
500 | xst dd ? |
500 | xst dd ? |
501 | yst dd ? |
501 | yst dd ? |
502 | ; screen_ptr dd ? |
502 | ; screen_ptr dd ? |
503 | ; Zbuffer_ptr dd ? |
503 | ; Zbuffer_ptr dd ? |
504 | 504 | ||
505 | matrix rb 36 |
505 | matrix rb 36 |
506 | cos_tab rd 360 |
506 | cos_tab rd 360 |
507 | sin_tab rd 360 |
507 | sin_tab rd 360 |
508 | 508 | ||
509 | align 16 |
509 | align 16 |
510 | 510 | ||
511 | if USE_LFN = 0 |
511 | if USE_LFN = 0 |
512 | points: |
512 | points: |
513 | rw (EndFile-SourceFile)/12*3 |
513 | rw (EndFile-SourceFile)/12*3 |
514 | points_count = ($-points)/6 |
514 | points_count = ($-points)/6 |
515 | triangles: |
515 | triangles: |
516 | rw (EndFile-SourceFile)/12*3 |
516 | rw (EndFile-SourceFile)/12*3 |
517 | triangles_count = ($-triangles)/6 |
517 | triangles_count = ($-triangles)/6 |
518 | align 16 |
518 | align 16 |
519 | real_points rd points_count*3 + 1 |
519 | real_points rd points_count*3 + 1 |
520 | align 16 |
520 | align 16 |
521 | rotated_points_r rd points_count*3 + 1 |
521 | rotated_points_r rd points_count*3 + 1 |
522 | align 16 |
522 | align 16 |
523 | points_rotated rw points_count*3 + 2 ;means translated |
523 | points_rotated rw points_count*3 + 2 ;means translated |
524 | align 16 |
524 | align 16 |
525 | triangles_normals rb triangles_count * 12 ; |
525 | triangles_normals rb triangles_count * 12 ; |
526 | align 16 |
526 | align 16 |
527 | point_normals rb points_count * 12 ;one 3dvector - triple float dword x,y,z |
527 | point_normals rb points_count * 12 ;one 3dvector - triple float dword x,y,z |
528 | align 16 |
528 | align 16 |
529 | point_normals_rotated rb points_count * 12 |
529 | point_normals_rotated rb points_count * 12 |
530 | align 16 |
530 | align 16 |
531 | triangles_normals_rotated rb triangles_count * 12 |
531 | triangles_normals_rotated rb triangles_count * 12 |
532 | 532 | ||
533 | else |
533 | else |
534 | points_count = 180000/6*3 |
534 | points_count = 180000/6*3 |
535 | triangles_count = 180000 / 6 ;($-triangles)/6 |
535 | triangles_count = 180000 / 6 ;($-triangles)/6 |
536 | end if |
536 | end if |
537 | align 16 |
537 | align 16 |
538 | label trizdd dword |
538 | label trizdd dword |
539 | label trizdq qword |
539 | label trizdq qword |
540 | triangles_with_z rw triangles_count*4 + 2 ; triangles triple dw + z position |
540 | triangles_with_z rw triangles_count*4 + 2 ; triangles triple dw + z position |
541 | align 16 |
541 | align 16 |
542 | vectors rb 24 |
542 | vectors rb 24 |
543 | ;align 16 |
543 | ;align 16 |
544 | ; points_color rb 6*points_count ; each color as word |
544 | ; points_color rb 6*points_count ; each color as word |
545 | ; sorted_triangles rw triangles_count*3 + 2 |
545 | ; sorted_triangles rw triangles_count*3 + 2 |
546 | align 16 |
546 | align 16 |
547 | bumpmap rb TEXTURE_SIZE + 1 |
547 | bumpmap rb TEXTURE_SIZE + 1 |
548 | align 16 |
548 | align 16 |
549 | bumpmap2 rb TEXTURE_SIZE + 1 |
549 | bumpmap2 rb TEXTURE_SIZE + 1 |
550 | align 16 |
550 | align 16 |
551 | envmap rb (TEXTURE_SIZE +1) * 3 |
551 | envmap rb (TEXTURE_SIZE +1) * 3 |
552 | align 16 |
552 | align 16 |
553 | envmap_cub rb TEX_X * 3 |
553 | envmap_cub rb TEX_X * 3 |
554 | align 16 |
554 | align 16 |
555 | texmap rb (TEXTURE_SIZE +1) * 3 |
555 | texmap rb (TEXTURE_SIZE +1) * 3 |
556 | align 16 |
556 | align 16 |
557 | color_map rb (TEXTURE_SIZE +1) * 3 |
557 | color_map rb (TEXTURE_SIZE +1) * 3 |
558 | align 16 |
558 | align 16 |
559 | tex_points rb points_count * 4 ; bump_map and texture coords |
559 | tex_points rb points_count * 4 ; bump_map and texture coords |
560 | ; each point word x, word y |
560 | ; each point word x, word y |
561 | align 16 |
561 | align 16 |
562 | if Ext >= SSE2 |
562 | if Ext >= SSE2 |
563 | sse_repository rb 1024 |
563 | sse_repository rb 1024 |
564 | end if |
564 | end if |
565 | ; SourceFile: ; source file temporally in screen area |
565 | ; SourceFile: ; source file temporally in screen area |
566 | ; workarea dd ? |
566 | ; workarea dd ? |
567 | 567 | ||
568 | ; screen rb SIZE_X * SIZE_Y * 3 ; screen buffer |
568 | ; screen rb SIZE_X * SIZE_Y * 3 ; screen buffer |
569 | ;align 16 |
569 | ;align 16 |
570 | ; Z_buffer rb SIZE_X * SIZE_Y * 4 |
570 | ; Z_buffer rb SIZE_X * SIZE_Y * 4 |
571 | procinfo: |
571 | procinfo: |
572 | rb 1024 ; process info |
572 | rb 1024 ; process info |
573 | I_Param rb 256 |
573 | I_Param rb 256 |
574 | memStack rb 4000 ;memory area for stack |
574 | memStack rb 4000 ;memory area for stack |
575 | align 16 |
575 | align 16 |
576 | screen:>>> |
576 | screen:>>> |