Quake-III-Arena

Quake III Arena GPL Source Release
Log | Files | Refs

qasm.h (11723B)


      1 /*
      2 ===========================================================================
      3 Copyright (C) 1999-2005 Id Software, Inc.
      4 
      5 This file is part of Quake III Arena source code.
      6 
      7 Quake III Arena source code is free software; you can redistribute it
      8 and/or modify it under the terms of the GNU General Public License as
      9 published by the Free Software Foundation; either version 2 of the License,
     10 or (at your option) any later version.
     11 
     12 Quake III Arena source code is distributed in the hope that it will be
     13 useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
     14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     15 GNU General Public License for more details.
     16 
     17 You should have received a copy of the GNU General Public License
     18 along with Foobar; if not, write to the Free Software
     19 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
     20 ===========================================================================
     21 */
     22 #ifndef __ASM_I386__
     23 #define __ASM_I386__
     24 
     25 #ifdef ELF
     26 #define C(label) label
     27 #else
     28 #define C(label) _##label
     29 #endif
     30 
     31 
     32 //#define GLQUAKE	1
     33 
     34 #if defined(_WIN32) && !defined(WINDED)
     35 
     36 #if defined(_M_IX86)
     37 #define __i386__	1
     38 #endif
     39 
     40 #endif
     41 
     42 #ifdef __i386__
     43 #define id386	1
     44 #else
     45 #define id386	0
     46 #endif
     47 
     48 // !!! must be kept the same as in d_iface.h !!!
     49 #define TRANSPARENT_COLOR	255
     50 
     51 #ifndef GLQUAKE
     52 	.extern C(d_zistepu)
     53 	.extern C(d_pzbuffer)
     54 	.extern C(d_zistepv)
     55 	.extern C(d_zrowbytes)
     56 	.extern C(d_ziorigin)
     57 	.extern C(r_turb_s)
     58 	.extern C(r_turb_t)
     59 	.extern C(r_turb_pdest)
     60 	.extern C(r_turb_spancount)
     61 	.extern C(r_turb_turb)
     62 	.extern C(r_turb_pbase)
     63 	.extern C(r_turb_sstep)
     64 	.extern C(r_turb_tstep)
     65 	.extern	C(r_bmodelactive)
     66 	.extern	C(d_sdivzstepu)
     67 	.extern	C(d_tdivzstepu)
     68 	.extern	C(d_sdivzstepv)
     69 	.extern	C(d_tdivzstepv)
     70 	.extern	C(d_sdivzorigin)
     71 	.extern	C(d_tdivzorigin)
     72 	.extern	C(sadjust)
     73 	.extern	C(tadjust)
     74 	.extern	C(bbextents)
     75 	.extern	C(bbextentt)
     76 	.extern	C(cacheblock)
     77 	.extern	C(d_viewbuffer)
     78 	.extern	C(cachewidth)
     79 	.extern	C(d_pzbuffer)
     80 	.extern	C(d_zrowbytes)
     81 	.extern	C(d_zwidth)
     82 	.extern C(d_scantable)
     83 	.extern C(r_lightptr)
     84 	.extern C(r_numvblocks)
     85 	.extern C(prowdestbase)
     86 	.extern C(pbasesource)
     87 	.extern C(r_lightwidth)
     88 	.extern C(lightright)
     89 	.extern C(lightrightstep)
     90 	.extern C(lightdeltastep)
     91 	.extern C(lightdelta)
     92 	.extern C(lightright)
     93 	.extern C(lightdelta)
     94 	.extern C(sourcetstep)
     95 	.extern C(surfrowbytes)
     96 	.extern C(lightrightstep)
     97 	.extern C(lightdeltastep)
     98 	.extern C(r_sourcemax)
     99 	.extern C(r_stepback)
    100 	.extern C(colormap)
    101 	.extern C(blocksize)
    102 	.extern C(sourcesstep)
    103 	.extern C(lightleft)
    104 	.extern C(blockdivshift)
    105 	.extern C(blockdivmask)
    106 	.extern C(lightleftstep)
    107 	.extern C(r_origin)
    108 	.extern C(r_ppn)
    109 	.extern C(r_pup)
    110 	.extern C(r_pright)
    111 	.extern C(ycenter)
    112 	.extern C(xcenter)
    113 	.extern C(d_vrectbottom_particle)
    114 	.extern C(d_vrectright_particle)
    115 	.extern C(d_vrecty)
    116 	.extern C(d_vrectx)
    117 	.extern C(d_pix_shift)
    118 	.extern C(d_pix_min)
    119 	.extern C(d_pix_max)
    120 	.extern C(d_y_aspect_shift)
    121 	.extern C(screenwidth)
    122 	.extern C(r_leftclipped)
    123 	.extern C(r_leftenter)
    124 	.extern C(r_rightclipped)
    125 	.extern C(r_rightenter)
    126 	.extern C(modelorg)
    127 	.extern C(xscale)
    128 	.extern C(r_refdef)
    129 	.extern C(yscale)
    130 	.extern C(r_leftexit)
    131 	.extern C(r_rightexit)
    132 	.extern C(r_lastvertvalid)
    133 	.extern C(cacheoffset)
    134 	.extern C(newedges)
    135 	.extern C(removeedges)
    136 	.extern C(r_pedge)
    137 	.extern C(r_framecount)
    138 	.extern C(r_u1)
    139 	.extern C(r_emitted)
    140 	.extern C(edge_p)
    141 	.extern C(surface_p)
    142 	.extern C(surfaces)
    143 	.extern C(r_lzi1)
    144 	.extern C(r_v1)
    145 	.extern C(r_ceilv1)
    146 	.extern C(r_nearzi)
    147 	.extern C(r_nearzionly)
    148 	.extern C(edge_aftertail)
    149 	.extern C(edge_tail)
    150 	.extern C(current_iv)
    151 	.extern C(edge_head_u_shift20)
    152 	.extern C(span_p)
    153 	.extern C(edge_head)
    154 	.extern C(fv)
    155 	.extern C(edge_tail_u_shift20)
    156 	.extern C(r_apverts)
    157 	.extern C(r_anumverts)
    158 	.extern C(aliastransform)
    159 	.extern C(r_avertexnormals)
    160 	.extern C(r_plightvec)
    161 	.extern C(r_ambientlight)
    162 	.extern C(r_shadelight)
    163 	.extern C(aliasxcenter)
    164 	.extern C(aliasycenter)
    165 	.extern C(a_sstepxfrac)
    166 	.extern C(r_affinetridesc)
    167 	.extern C(acolormap)
    168 	.extern C(d_pcolormap)
    169 	.extern C(r_affinetridesc)
    170 	.extern C(d_sfrac)
    171 	.extern C(d_ptex)
    172 	.extern C(d_pedgespanpackage)
    173 	.extern C(d_tfrac)
    174 	.extern C(d_light)
    175 	.extern C(d_zi)
    176 	.extern C(d_pdest)
    177 	.extern C(d_pz)
    178 	.extern C(d_aspancount)
    179 	.extern C(erroradjustup)
    180 	.extern C(errorterm)
    181 	.extern C(d_xdenom)
    182 	.extern C(r_p0)
    183 	.extern C(r_p1)
    184 	.extern C(r_p2)
    185 	.extern C(a_tstepxfrac)
    186 	.extern C(r_sstepx)
    187 	.extern C(r_tstepx)
    188 	.extern C(a_ststepxwhole)
    189 	.extern C(zspantable)
    190 	.extern C(skintable)
    191 	.extern C(r_zistepx)
    192 	.extern C(erroradjustdown)
    193 	.extern C(d_countextrastep)
    194 	.extern C(ubasestep)
    195 	.extern C(a_ststepxwhole)
    196 	.extern C(a_tstepxfrac)
    197 	.extern C(r_lstepx)
    198 	.extern C(a_spans)
    199 	.extern C(erroradjustdown)
    200 	.extern C(d_pdestextrastep)
    201 	.extern C(d_pzextrastep)
    202 	.extern C(d_sfracextrastep)
    203 	.extern C(d_ptexextrastep)
    204 	.extern C(d_countextrastep)
    205 	.extern C(d_tfracextrastep)
    206 	.extern C(d_lightextrastep)
    207 	.extern C(d_ziextrastep)
    208 	.extern C(d_pdestbasestep)
    209 	.extern C(d_pzbasestep)
    210 	.extern C(d_sfracbasestep)
    211 	.extern C(d_ptexbasestep)
    212 	.extern C(ubasestep)
    213 	.extern C(d_tfracbasestep)
    214 	.extern C(d_lightbasestep)
    215 	.extern C(d_zibasestep)
    216 	.extern C(zspantable)
    217 	.extern C(r_lstepy)
    218 	.extern C(r_sstepy)
    219 	.extern C(r_tstepy)
    220 	.extern C(r_zistepy)
    221 	.extern C(D_PolysetSetEdgeTable)
    222 	.extern C(D_RasterizeAliasPolySmooth)
    223 
    224 	.extern float_point5
    225 	.extern Float2ToThe31nd
    226 	.extern izistep
    227 	.extern izi
    228 	.extern FloatMinus2ToThe31nd
    229 	.extern float_1
    230 	.extern float_particle_z_clip
    231 	.extern float_minus_1
    232 	.extern float_0
    233 	.extern fp_16
    234 	.extern fp_64k
    235 	.extern fp_1m
    236 	.extern fp_1m_minus_1
    237 	.extern fp_8 
    238 	.extern entryvec_table
    239 	.extern advancetable
    240 	.extern sstep
    241 	.extern tstep
    242 	.extern pspantemp
    243 	.extern counttemp
    244 	.extern jumptemp
    245 	.extern reciprocal_table
    246 	.extern DP_Count
    247 	.extern DP_u
    248 	.extern DP_v
    249 	.extern DP_32768
    250 	.extern DP_Color
    251 	.extern DP_Pix
    252 	.extern DP_EntryTable
    253 	.extern	pbase
    254 	.extern s
    255 	.extern t
    256 	.extern sfracf
    257 	.extern tfracf
    258 	.extern snext
    259 	.extern tnext
    260 	.extern	spancountminus1
    261 	.extern zi16stepu
    262 	.extern sdivz16stepu
    263 	.extern tdivz16stepu
    264 	.extern	zi8stepu
    265 	.extern sdivz8stepu
    266 	.extern tdivz8stepu
    267 	.extern reciprocal_table_16
    268 	.extern entryvec_table_16
    269 	.extern ceil_cw
    270 	.extern single_cw
    271 	.extern fp_64kx64k
    272 	.extern pz
    273 	.extern spr8entryvec_table
    274 #endif
    275 
    276 	.extern C(snd_scaletable)
    277 	.extern C(paintbuffer)
    278 	.extern C(snd_linear_count)
    279 	.extern C(snd_p)
    280 	.extern C(snd_vol)
    281 	.extern C(snd_out)
    282 	.extern C(vright)
    283 	.extern C(vup)
    284 	.extern C(vpn)
    285 	.extern C(BOPS_Error)
    286 
    287 //
    288 // !!! note that this file must match the corresponding C structures at all
    289 // times !!!
    290 //
    291 
    292 // plane_t structure
    293 // !!! if this is changed, it must be changed in model.h too !!!
    294 // !!! if the size of this is changed, the array lookup in SV_HullPointContents
    295 //     must be changed too !!!
    296 #define pl_normal	0
    297 #define pl_dist		12
    298 #define pl_type		16
    299 #define pl_signbits	17
    300 #define pl_pad		18
    301 #define pl_size		20
    302 
    303 // hull_t structure
    304 // !!! if this is changed, it must be changed in model.h too !!!
    305 #define	hu_clipnodes		0
    306 #define	hu_planes			4
    307 #define	hu_firstclipnode	8
    308 #define	hu_lastclipnode		12
    309 #define	hu_clip_mins		16
    310 #define	hu_clip_maxs		28
    311 #define hu_size  			40
    312 
    313 // dnode_t structure
    314 // !!! if this is changed, it must be changed in bspfile.h too !!!
    315 #define	nd_planenum		0
    316 #define	nd_children		4
    317 #define	nd_mins			8
    318 #define	nd_maxs			20
    319 #define	nd_firstface	32
    320 #define	nd_numfaces		36
    321 #define nd_size			40
    322 
    323 // sfxcache_t structure
    324 // !!! if this is changed, it much be changed in sound.h too !!!
    325 #define sfxc_length		0
    326 #define sfxc_loopstart	4
    327 #define sfxc_speed		8
    328 #define sfxc_width		12
    329 #define sfxc_stereo		16
    330 #define sfxc_data		20
    331 
    332 // channel_t structure
    333 // !!! if this is changed, it much be changed in sound.h too !!!
    334 #define ch_sfx			0
    335 #define ch_leftvol		4
    336 #define ch_rightvol		8
    337 #define ch_end			12
    338 #define ch_pos			16
    339 #define ch_looping		20
    340 #define ch_entnum		24
    341 #define ch_entchannel	28
    342 #define ch_origin		32
    343 #define ch_dist_mult	44
    344 #define ch_master_vol	48
    345 #define ch_size			52
    346 
    347 // portable_samplepair_t structure
    348 // !!! if this is changed, it much be changed in sound.h too !!!
    349 #define psp_left		0
    350 #define psp_right		4
    351 #define psp_size		8
    352 
    353 
    354 //
    355 // !!! note that this file must match the corresponding C structures at all
    356 // times !!!
    357 //
    358 
    359 // !!! if this is changed, it must be changed in r_local.h too !!!
    360 #define	NEAR_CLIP	0.01
    361 
    362 // !!! if this is changed, it must be changed in r_local.h too !!!
    363 #define	CYCLE	128
    364 
    365 // espan_t structure
    366 // !!! if this is changed, it must be changed in r_shared.h too !!!
    367 #define espan_t_u    	0
    368 #define espan_t_v	    4
    369 #define espan_t_count   8
    370 #define espan_t_pnext	12
    371 #define espan_t_size    16
    372 
    373 // sspan_t structure
    374 // !!! if this is changed, it must be changed in d_local.h too !!!
    375 #define sspan_t_u    	0
    376 #define sspan_t_v	    4
    377 #define sspan_t_count   8
    378 #define sspan_t_size    12
    379 
    380 // spanpackage_t structure
    381 // !!! if this is changed, it must be changed in d_polyset.c too !!!
    382 #define spanpackage_t_pdest				0
    383 #define spanpackage_t_pz				4
    384 #define spanpackage_t_count				8
    385 #define spanpackage_t_ptex				12
    386 #define spanpackage_t_sfrac				16
    387 #define spanpackage_t_tfrac				20
    388 #define spanpackage_t_light				24
    389 #define spanpackage_t_zi				28
    390 #define spanpackage_t_size				32 
    391 
    392 // edge_t structure
    393 // !!! if this is changed, it must be changed in r_shared.h too !!!
    394 #define et_u			0
    395 #define et_u_step		4
    396 #define et_prev			8
    397 #define et_next			12
    398 #define et_surfs		16
    399 #define et_nextremove	20
    400 #define et_nearzi		24
    401 #define et_owner		28
    402 #define et_size			32
    403 
    404 // surf_t structure
    405 // !!! if this is changed, it must be changed in r_shared.h too !!!
    406 #define SURF_T_SHIFT	6
    407 #define st_next			0
    408 #define st_prev			4
    409 #define st_spans		8
    410 #define st_key			12
    411 #define st_last_u		16
    412 #define st_spanstate	20
    413 #define st_flags		24
    414 #define st_data			28
    415 #define st_entity		32
    416 #define st_nearzi		36
    417 #define st_insubmodel	40
    418 #define st_d_ziorigin	44
    419 #define st_d_zistepu	48
    420 #define st_d_zistepv	52
    421 #define st_pad			56
    422 #define st_size			64
    423 
    424 // clipplane_t structure
    425 // !!! if this is changed, it must be changed in r_local.h too !!!
    426 #define cp_normal		0
    427 #define cp_dist			12
    428 #define cp_next			16
    429 #define cp_leftedge		20
    430 #define cp_rightedge	21
    431 #define cp_reserved		22
    432 #define cp_size			24
    433 
    434 // medge_t structure
    435 // !!! if this is changed, it must be changed in model.h too !!!
    436 #define me_v				0
    437 #define me_cachededgeoffset	4
    438 #define me_size				8
    439 
    440 // mvertex_t structure
    441 // !!! if this is changed, it must be changed in model.h too !!!
    442 #define mv_position		0
    443 #define mv_size			12
    444 
    445 // refdef_t structure
    446 // !!! if this is changed, it must be changed in render.h too !!!
    447 #define rd_vrect					0
    448 #define rd_aliasvrect				20
    449 #define rd_vrectright				40
    450 #define rd_vrectbottom				44
    451 #define rd_aliasvrectright			48
    452 #define rd_aliasvrectbottom			52
    453 #define rd_vrectrightedge			56
    454 #define rd_fvrectx					60
    455 #define rd_fvrecty					64
    456 #define rd_fvrectx_adj				68
    457 #define rd_fvrecty_adj				72
    458 #define rd_vrect_x_adj_shift20		76
    459 #define rd_vrectright_adj_shift20	80
    460 #define rd_fvrectright_adj			84
    461 #define rd_fvrectbottom_adj			88
    462 #define rd_fvrectright				92
    463 #define rd_fvrectbottom				96
    464 #define rd_horizontalFieldOfView	100
    465 #define rd_xOrigin					104
    466 #define rd_yOrigin					108
    467 #define rd_vieworg					112
    468 #define rd_viewangles				124
    469 #define rd_ambientlight				136
    470 #define rd_size						140
    471 
    472 // mtriangle_t structure
    473 // !!! if this is changed, it must be changed in model.h too !!!
    474 #define mtri_facesfront		0
    475 #define mtri_vertindex		4
    476 #define mtri_size			16	// !!! if this changes, array indexing in !!!
    477 								// !!! d_polysa.s must be changed to match !!!
    478 #define mtri_shift			4
    479 
    480 #endif