1 .386P
2 .model FLAT
3 externdef _d_zistepu:dword
4 externdef _d_pzbuffer:dword
5 externdef _d_zistepv:dword
6 externdef _d_zrowbytes:dword
7 externdef _d_ziorigin:dword
8 externdef _r_turb_s:dword
9 externdef _r_turb_t:dword
10 externdef _r_turb_pdest:dword
11 externdef _r_turb_spancount:dword
12 externdef _r_turb_turb:dword
13 externdef _r_turb_pbase:dword
14 externdef _r_turb_sstep:dword
15 externdef _r_turb_tstep:dword
16 externdef _r_bmodelactive:dword
17 externdef _d_sdivzstepu:dword
18 externdef _d_tdivzstepu:dword
19 externdef _d_sdivzstepv:dword
20 externdef _d_tdivzstepv:dword
21 externdef _d_sdivzorigin:dword
22 externdef _d_tdivzorigin:dword
23 externdef _sadjust:dword
24 externdef _tadjust:dword
25 externdef _bbextents:dword
26 externdef _bbextentt:dword
27 externdef _cacheblock:dword
28 externdef _d_viewbuffer:dword
29 externdef _cachewidth:dword
30 externdef _d_pzbuffer:dword
31 externdef _d_zrowbytes:dword
32 externdef _d_zwidth:dword
33 externdef _d_scantable:dword
34 externdef _r_lightptr:dword
35 externdef _r_numvblocks:dword
36 externdef _prowdestbase:dword
37 externdef _pbasesource:dword
38 externdef _r_lightwidth:dword
39 externdef _lightright:dword
40 externdef _lightrightstep:dword
41 externdef _lightdeltastep:dword
42 externdef _lightdelta:dword
43 externdef _lightright:dword
44 externdef _lightdelta:dword
45 externdef _sourcetstep:dword
46 externdef _surfrowbytes:dword
47 externdef _lightrightstep:dword
48 externdef _lightdeltastep:dword
49 externdef _r_sourcemax:dword
50 externdef _r_stepback:dword
51 externdef _colormap:dword
52 externdef _blocksize:dword
53 externdef _sourcesstep:dword
54 externdef _lightleft:dword
55 externdef _blockdivshift:dword
56 externdef _blockdivmask:dword
57 externdef _lightleftstep:dword
58 externdef _r_origin:dword
59 externdef _r_ppn:dword
60 externdef _r_pup:dword
61 externdef _r_pright:dword
62 externdef _ycenter:dword
63 externdef _xcenter:dword
64 externdef _d_vrectbottom_particle:dword
65 externdef _d_vrectright_particle:dword
66 externdef _d_vrecty:dword
67 externdef _d_vrectx:dword
68 externdef _d_pix_shift:dword
69 externdef _d_pix_min:dword
70 externdef _d_pix_max:dword
71 externdef _d_y_aspect_shift:dword
72 externdef _screenwidth:dword
73 externdef _vright:dword
74 externdef _vup:dword
75 externdef _vpn:dword
76 externdef _BOPS_Error:dword
77 externdef _snd_scaletable:dword
78 externdef _paintbuffer:dword
79 externdef _snd_linear_count:dword
80 externdef _snd_p:dword
81 externdef _snd_vol:dword
82 externdef _snd_out:dword
83 externdef _r_leftclipped:dword
84 externdef _r_leftenter:dword
85 externdef _r_rightclipped:dword
86 externdef _r_rightenter:dword
87 externdef _modelorg:dword
88 externdef _xscale:dword
89 externdef _r_refdef:dword
90 externdef _yscale:dword
91 externdef _r_leftexit:dword
92 externdef _r_rightexit:dword
93 externdef _r_lastvertvalid:dword
94 externdef _cacheoffset:dword
95 externdef _newedges:dword
96 externdef _removeedges:dword
97 externdef _r_pedge:dword
98 externdef _r_framecount:dword
99 externdef _r_u1:dword
100 externdef _r_emitted:dword
101 externdef _edge_p:dword
102 externdef _surface_p:dword
103 externdef _surfaces:dword
104 externdef _r_lzi1:dword
105 externdef _r_v1:dword
106 externdef _r_ceilv1:dword
107 externdef _r_nearzi:dword
108 externdef _r_nearzionly:dword
109 externdef _edge_aftertail:dword
110 externdef _edge_tail:dword
111 externdef _current_iv:dword
112 externdef _edge_head_u_shift20:dword
113 externdef _span_p:dword
114 externdef _edge_head:dword
115 externdef _fv:dword
116 externdef _edge_tail_u_shift20:dword
117 externdef _r_apverts:dword
118 externdef _r_anumverts:dword
119 externdef _aliastransform:dword
120 externdef _r_avertexnormals:dword
121 externdef _r_plightvec:dword
122 externdef _r_ambientlight:dword
123 externdef _r_shadelight:dword
124 externdef _aliasxcenter:dword
125 externdef _aliasycenter:dword
126 externdef _a_sstepxfrac:dword
127 externdef _r_affinetridesc:dword
128 externdef _acolormap:dword
129 externdef _d_pcolormap:dword
130 externdef _r_affinetridesc:dword
131 externdef _d_sfrac:dword
132 externdef _d_ptex:dword
133 externdef _d_pedgespanpackage:dword
134 externdef _d_tfrac:dword
135 externdef _d_light:dword
136 externdef _d_zi:dword
137 externdef _d_pdest:dword
138 externdef _d_pz:dword
139 externdef _d_aspancount:dword
140 externdef _erroradjustup:dword
141 externdef _errorterm:dword
142 externdef _d_xdenom:dword
143 externdef _r_p0:dword
144 externdef _r_p1:dword
145 externdef _r_p2:dword
146 externdef _a_tstepxfrac:dword
147 externdef _r_sstepx:dword
148 externdef _r_tstepx:dword
149 externdef _a_ststepxwhole:dword
150 externdef _zspantable:dword
151 externdef _skintable:dword
152 externdef _r_zistepx:dword
153 externdef _erroradjustdown:dword
154 externdef _d_countextrastep:dword
155 externdef _ubasestep:dword
156 externdef _a_ststepxwhole:dword
157 externdef _a_tstepxfrac:dword
158 externdef _r_lstepx:dword
159 externdef _a_spans:dword
160 externdef _erroradjustdown:dword
161 externdef _d_pdestextrastep:dword
162 externdef _d_pzextrastep:dword
163 externdef _d_sfracextrastep:dword
164 externdef _d_ptexextrastep:dword
165 externdef _d_countextrastep:dword
166 externdef _d_tfracextrastep:dword
167 externdef _d_lightextrastep:dword
168 externdef _d_ziextrastep:dword
169 externdef _d_pdestbasestep:dword
170 externdef _d_pzbasestep:dword
171 externdef _d_sfracbasestep:dword
172 externdef _d_ptexbasestep:dword
173 externdef _ubasestep:dword
174 externdef _d_tfracbasestep:dword
175 externdef _d_lightbasestep:dword
176 externdef _d_zibasestep:dword
177 externdef _zspantable:dword
178 externdef _r_lstepy:dword
179 externdef _r_sstepy:dword
180 externdef _r_tstepy:dword
181 externdef _r_zistepy:dword
182 externdef _D_PolysetSetEdgeTable:dword
183 externdef _D_RasterizeAliasPolySmooth:dword
184 externdef float_point5:dword
185 externdef Float2ToThe31nd:dword
186 externdef izistep:dword
187 externdef izi:dword
188 externdef FloatMinus2ToThe31nd:dword
189 externdef float_1:dword
190 externdef float_particle_z_clip:dword
191 externdef float_minus_1:dword
192 externdef float_0:dword
193 externdef fp_16:dword
194 externdef fp_64k:dword
195 externdef fp_1m:dword
196 externdef fp_1m_minus_1:dword
197 externdef fp_8:dword
198 externdef entryvec_table:dword
199 externdef advancetable:dword
200 externdef sstep:dword
201 externdef tstep:dword
202 externdef pspantemp:dword
203 externdef counttemp:dword
204 externdef jumptemp:dword
205 externdef reciprocal_table:dword
206 externdef DP_Count:dword
207 externdef DP_u:dword
208 externdef DP_v:dword
209 externdef DP_32768:dword
210 externdef DP_Color:dword
211 externdef DP_Pix:dword
212 externdef DP_EntryTable:dword
213 externdef pbase:dword
214 externdef s:dword
215 externdef t:dword
216 externdef sfracf:dword
217 externdef tfracf:dword
218 externdef snext:dword
219 externdef tnext:dword
220 externdef spancountminus1:dword
221 externdef zi16stepu:dword
222 externdef sdivz16stepu:dword
223 externdef tdivz16stepu:dword
224 externdef zi8stepu:dword
225 externdef sdivz8stepu:dword
226 externdef tdivz8stepu:dword
227 externdef reciprocal_table_16:dword
228 externdef entryvec_table_16:dword
229 externdef ceil_cw:dword
230 externdef single_cw:dword
231 externdef fp_64kx64k:dword
232 externdef pz:dword
233 externdef spr8entryvec_table:dword
234_DATA SEGMENT
235Lfloat_1 dd 1.0
236Ltemp dd 0
237Lcoords dd 0, 0, 0
238_DATA ENDS
239_TEXT SEGMENT
240 public _R_AliasTransformAndProjectFinalVerts
241_R_AliasTransformAndProjectFinalVerts:
242 push ebp
243 push edi
244 push esi
245 mov esi,ds:dword ptr[_r_apverts]
246 mov ebp,ds:dword ptr[12+8+esp]
247 mov edi,ds:dword ptr[12+4+esp]
248 mov ecx,ds:dword ptr[_r_anumverts]
249 sub edx,edx
250Lloop:
251 mov dl,ds:byte ptr[esi]
252 mov ds:byte ptr[Lcoords],dl
253 fild ds:dword ptr[Lcoords]
254 mov dl,ds:byte ptr[1+esi]
255 mov ds:byte ptr[Lcoords+4],dl
256 fild ds:dword ptr[Lcoords+4]
257 mov dl,ds:byte ptr[2+esi]
258 mov ds:byte ptr[Lcoords+8],dl
259 fild ds:dword ptr[Lcoords+8]
260 fld st(2)
261 fmul ds:dword ptr[_aliastransform+32]
262 fld st(2)
263 fmul ds:dword ptr[_aliastransform+36]
264 fxch st(1)
265 fadd ds:dword ptr[_aliastransform+44]
266 fld st(2)
267 fmul ds:dword ptr[_aliastransform+40]
268 fxch st(1)
269 faddp st(2),st(0)
270 mov dl,ds:byte ptr[3+esi]
271 mov eax,ds:dword ptr[4+ebp]
272 mov ds:dword ptr[0+8+edi],eax
273 faddp st(1),st(0)
274 mov eax,ds:dword ptr[8+ebp]
275 mov ds:dword ptr[0+12+edi],eax
276 fdivr ds:dword ptr[Lfloat_1]
277 mov eax,ds:dword ptr[0+ebp]
278 mov ds:dword ptr[24+edi],eax
279 mov eax,ds:dword ptr[32+edi]
280 mov eax,ds:dword ptr[12+ebp]
281 mov eax,ds:dword ptr[4+esi]
282 lea eax,ds:dword ptr[edx+edx*2]
283 fxch st(3)
284 fld ds:dword ptr[_r_avertexnormals+eax*4]
285 fmul ds:dword ptr[_r_plightvec]
286 fld ds:dword ptr[_r_avertexnormals+4+eax*4]
287 fmul ds:dword ptr[_r_plightvec+4]
288 fld ds:dword ptr[_r_avertexnormals+8+eax*4]
289 fmul ds:dword ptr[_r_plightvec+8]
290 fxch st(1)
291 faddp st(2),st(0)
292 fld st(2)
293 fmul ds:dword ptr[_aliastransform+0]
294 fxch st(2)
295 faddp st(1),st(0)
296 fst ds:dword ptr[Ltemp]
297 mov eax,ds:dword ptr[_r_ambientlight]
298 mov dl,ds:byte ptr[Ltemp+3]
299 test dl,080h
300 jz Lsavelight
301 fmul ds:dword ptr[_r_shadelight]
302 fistp ds:dword ptr[Ltemp]
303 add eax,ds:dword ptr[Ltemp]
304 jns Lp1
305 sub eax,eax
306Lp1:
307 fxch st(1)
308 fmul ds:dword ptr[_aliastransform+16]
309 fxch st(3)
310 fld st(0)
311 fmul ds:dword ptr[_aliastransform+4]
312 fxch st(1)
313 mov ds:dword ptr[0+16+edi],eax
314 fmul ds:dword ptr[_aliastransform+20]
315 fxch st(2)
316 fadd ds:dword ptr[_aliastransform+12]
317 fxch st(4)
318 fadd ds:dword ptr[_aliastransform+28]
319 fxch st(3)
320 fld st(0)
321 fmul ds:dword ptr[_aliastransform+8]
322 fxch st(1)
323 fmul ds:dword ptr[_aliastransform+24]
324 fxch st(5)
325 faddp st(2),st(0)
326 fxch st(3)
327 faddp st(2),st(0)
328 add esi,4
329 faddp st(2),st(0)
330 faddp st(2),st(0)
331 add ebp,12
332 fmul st(0),st(2)
333 fxch st(1)
334 fmul st(0),st(2)
335 fxch st(1)
336 fadd ds:dword ptr[_aliasxcenter]
337 fxch st(1)
338 fadd ds:dword ptr[_aliasycenter]
339 fxch st(2)
340 fistp ds:dword ptr[0+20+edi]
341 fistp ds:dword ptr[0+0+edi]
342 fistp ds:dword ptr[0+4+edi]
343 add edi,32
344 dec ecx
345 jnz Lloop
346 pop esi
347 pop edi
348 pop ebp
349 ret
350Lsavelight:
351 fstp st(0)
352 jmp Lp1
353_TEXT ENDS
354 END
355