Home | History | Annotate | Download | only in client
      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
    235  align 4
    236 Ljmptab dd Lcase0, Lcase1, Lcase2, Lcase3
    237  dd Lcase4, Lcase5, Lcase6, Lcase7
    238 _DATA ENDS
    239 _TEXT SEGMENT
    240  public _Invert24To16
    241 _Invert24To16:
    242  mov ecx,ds:dword ptr[4+esp]
    243  mov edx,0100h
    244  cmp ecx,edx
    245  jle LOutOfRange
    246  sub eax,eax
    247  div ecx
    248  ret
    249 LOutOfRange:
    250  mov eax,0FFFFFFFFh
    251  ret
    252  align 2
    253  public _TransformVector
    254 _TransformVector:
    255  mov eax,ds:dword ptr[4+esp]
    256  mov edx,ds:dword ptr[8+esp]
    257  fld ds:dword ptr[eax]
    258  fmul ds:dword ptr[_vright]
    259  fld ds:dword ptr[eax]
    260  fmul ds:dword ptr[_vup]
    261  fld ds:dword ptr[eax]
    262  fmul ds:dword ptr[_vpn]
    263  fld ds:dword ptr[4+eax]
    264  fmul ds:dword ptr[_vright+4]
    265  fld ds:dword ptr[4+eax]
    266  fmul ds:dword ptr[_vup+4]
    267  fld ds:dword ptr[4+eax]
    268  fmul ds:dword ptr[_vpn+4]
    269  fxch st(2)
    270  faddp st(5),st(0)
    271  faddp st(3),st(0)
    272  faddp st(1),st(0)
    273  fld ds:dword ptr[8+eax]
    274  fmul ds:dword ptr[_vright+8]
    275  fld ds:dword ptr[8+eax]
    276  fmul ds:dword ptr[_vup+8]
    277  fld ds:dword ptr[8+eax]
    278  fmul ds:dword ptr[_vpn+8]
    279  fxch st(2)
    280  faddp st(5),st(0)
    281  faddp st(3),st(0)
    282  faddp st(1),st(0)
    283  fstp ds:dword ptr[8+edx]
    284  fstp ds:dword ptr[4+edx]
    285  fstp ds:dword ptr[edx]
    286  ret
    287  align 2
    288  public _BoxOnPlaneSide
    289 _BoxOnPlaneSide:
    290  push ebx
    291  mov edx,ds:dword ptr[4+12+esp]
    292  mov ecx,ds:dword ptr[4+4+esp]
    293  xor eax,eax
    294  mov ebx,ds:dword ptr[4+8+esp]
    295  mov al,ds:byte ptr[17+edx]
    296  cmp al,8
    297  jge Lerror
    298  fld ds:dword ptr[0+edx]
    299  fld st(0)
    300  jmp dword ptr[Ljmptab+eax*4]
    301 Lcase0:
    302  fmul ds:dword ptr[ebx]
    303  fld ds:dword ptr[0+4+edx]
    304  fxch st(2)
    305  fmul ds:dword ptr[ecx]
    306  fxch st(2)
    307  fld st(0)
    308  fmul ds:dword ptr[4+ebx]
    309  fld ds:dword ptr[0+8+edx]
    310  fxch st(2)
    311  fmul ds:dword ptr[4+ecx]
    312  fxch st(2)
    313  fld st(0)
    314  fmul ds:dword ptr[8+ebx]
    315  fxch st(5)
    316  faddp st(3),st(0)
    317  fmul ds:dword ptr[8+ecx]
    318  fxch st(1)
    319  faddp st(3),st(0)
    320  fxch st(3)
    321  faddp st(2),st(0)
    322  jmp LSetSides
    323 Lcase1:
    324  fmul ds:dword ptr[ecx]
    325  fld ds:dword ptr[0+4+edx]
    326  fxch st(2)
    327  fmul ds:dword ptr[ebx]
    328  fxch st(2)
    329  fld st(0)
    330  fmul ds:dword ptr[4+ebx]
    331  fld ds:dword ptr[0+8+edx]
    332  fxch st(2)
    333  fmul ds:dword ptr[4+ecx]
    334  fxch st(2)
    335  fld st(0)
    336  fmul ds:dword ptr[8+ebx]
    337  fxch st(5)
    338  faddp st(3),st(0)
    339  fmul ds:dword ptr[8+ecx]
    340  fxch st(1)
    341  faddp st(3),st(0)
    342  fxch st(3)
    343  faddp st(2),st(0)
    344  jmp LSetSides
    345 Lcase2:
    346  fmul ds:dword ptr[ebx]
    347  fld ds:dword ptr[0+4+edx]
    348  fxch st(2)
    349  fmul ds:dword ptr[ecx]
    350  fxch st(2)
    351  fld st(0)
    352  fmul ds:dword ptr[4+ecx]
    353  fld ds:dword ptr[0+8+edx]
    354  fxch st(2)
    355  fmul ds:dword ptr[4+ebx]
    356  fxch st(2)
    357  fld st(0)
    358  fmul ds:dword ptr[8+ebx]
    359  fxch st(5)
    360  faddp st(3),st(0)
    361  fmul ds:dword ptr[8+ecx]
    362  fxch st(1)
    363  faddp st(3),st(0)
    364  fxch st(3)
    365  faddp st(2),st(0)
    366  jmp LSetSides
    367 Lcase3:
    368  fmul ds:dword ptr[ecx]
    369  fld ds:dword ptr[0+4+edx]
    370  fxch st(2)
    371  fmul ds:dword ptr[ebx]
    372  fxch st(2)
    373  fld st(0)
    374  fmul ds:dword ptr[4+ecx]
    375  fld ds:dword ptr[0+8+edx]
    376  fxch st(2)
    377  fmul ds:dword ptr[4+ebx]
    378  fxch st(2)
    379  fld st(0)
    380  fmul ds:dword ptr[8+ebx]
    381  fxch st(5)
    382  faddp st(3),st(0)
    383  fmul ds:dword ptr[8+ecx]
    384  fxch st(1)
    385  faddp st(3),st(0)
    386  fxch st(3)
    387  faddp st(2),st(0)
    388  jmp LSetSides
    389 Lcase4:
    390  fmul ds:dword ptr[ebx]
    391  fld ds:dword ptr[0+4+edx]
    392  fxch st(2)
    393  fmul ds:dword ptr[ecx]
    394  fxch st(2)
    395  fld st(0)
    396  fmul ds:dword ptr[4+ebx]
    397  fld ds:dword ptr[0+8+edx]
    398  fxch st(2)
    399  fmul ds:dword ptr[4+ecx]
    400  fxch st(2)
    401  fld st(0)
    402  fmul ds:dword ptr[8+ecx]
    403  fxch st(5)
    404  faddp st(3),st(0)
    405  fmul ds:dword ptr[8+ebx]
    406  fxch st(1)
    407  faddp st(3),st(0)
    408  fxch st(3)
    409  faddp st(2),st(0)
    410  jmp LSetSides
    411 Lcase5:
    412  fmul ds:dword ptr[ecx]
    413  fld ds:dword ptr[0+4+edx]
    414  fxch st(2)
    415  fmul ds:dword ptr[ebx]
    416  fxch st(2)
    417  fld st(0)
    418  fmul ds:dword ptr[4+ebx]
    419  fld ds:dword ptr[0+8+edx]
    420  fxch st(2)
    421  fmul ds:dword ptr[4+ecx]
    422  fxch st(2)
    423  fld st(0)
    424  fmul ds:dword ptr[8+ecx]
    425  fxch st(5)
    426  faddp st(3),st(0)
    427  fmul ds:dword ptr[8+ebx]
    428  fxch st(1)
    429  faddp st(3),st(0)
    430  fxch st(3)
    431  faddp st(2),st(0)
    432  jmp LSetSides
    433 Lcase6:
    434  fmul ds:dword ptr[ebx]
    435  fld ds:dword ptr[0+4+edx]
    436  fxch st(2)
    437  fmul ds:dword ptr[ecx]
    438  fxch st(2)
    439  fld st(0)
    440  fmul ds:dword ptr[4+ecx]
    441  fld ds:dword ptr[0+8+edx]
    442  fxch st(2)
    443  fmul ds:dword ptr[4+ebx]
    444  fxch st(2)
    445  fld st(0)
    446  fmul ds:dword ptr[8+ecx]
    447  fxch st(5)
    448  faddp st(3),st(0)
    449  fmul ds:dword ptr[8+ebx]
    450  fxch st(1)
    451  faddp st(3),st(0)
    452  fxch st(3)
    453  faddp st(2),st(0)
    454  jmp LSetSides
    455 Lcase7:
    456  fmul ds:dword ptr[ecx]
    457  fld ds:dword ptr[0+4+edx]
    458  fxch st(2)
    459  fmul ds:dword ptr[ebx]
    460  fxch st(2)
    461  fld st(0)
    462  fmul ds:dword ptr[4+ecx]
    463  fld ds:dword ptr[0+8+edx]
    464  fxch st(2)
    465  fmul ds:dword ptr[4+ebx]
    466  fxch st(2)
    467  fld st(0)
    468  fmul ds:dword ptr[8+ecx]
    469  fxch st(5)
    470  faddp st(3),st(0)
    471  fmul ds:dword ptr[8+ebx]
    472  fxch st(1)
    473  faddp st(3),st(0)
    474  fxch st(3)
    475  faddp st(2),st(0)
    476 LSetSides:
    477  faddp st(2),st(0)
    478  fcomp ds:dword ptr[12+edx]
    479  xor ecx,ecx
    480  fnstsw ax
    481  fcomp ds:dword ptr[12+edx]
    482  and ah,1
    483  xor ah,1
    484  add cl,ah
    485  fnstsw ax
    486  and ah,1
    487  add ah,ah
    488  add cl,ah
    489  pop ebx
    490  mov eax,ecx
    491  ret
    492 Lerror:
    493  call near ptr _BOPS_Error
    494 _TEXT ENDS
    495  END
    496