q_math.asm
themuffinator_dm-game/build/win32-qvm/vm/game/q_math.asm
data
export vec3_origin
align 4
LABELV vec3_origin
byte 4 0
byte 4 0
byte 4 0
export axisDefault
align 4
LABELV axisDefault
byte 4 1065353216
byte 4 0
byte 4 0
byte 4 0
byte 4 1065353216
byte 4 0
byte 4 0
byte 4 0
byte 4 1065353216
export colorBlack
align 4
LABELV colorBlack
byte 4 0
byte 4 0
byte 4 0
byte 4 1065353216
export colorRed
align 4
LABELV colorRed
byte 4 1065353216
byte 4 0
byte 4 0
byte 4 1065353216
export colorGreen
align 4
LABELV colorGreen
byte 4 0
byte 4 1065353216
byte 4 0
byte 4 1065353216
export colorBlue
align 4
LABELV colorBlue
byte 4 0
byte 4 0
byte 4 1065353216
byte 4 1065353216
export colorYellow
align 4
LABELV colorYellow
byte 4 1065353216
byte 4 1065353216
byte 4 0
byte 4 1065353216
export colorMagenta
align 4
LABELV colorMagenta
byte 4 1065353216
byte 4 0
byte 4 1065353216
byte 4 1065353216
export colorCyan
align 4
LABELV colorCyan
byte 4 0
byte 4 1065353216
byte 4 1065353216
byte 4 1065353216
export colorWhite
align 4
LABELV colorWhite
byte 4 1065353216
byte 4 1065353216
byte 4 1065353216
byte 4 1065353216
export colorLtGrey
align 4
LABELV colorLtGrey
byte 4 1061158912
byte 4 1061158912
byte 4 1061158912
byte 4 1065353216
export colorMdGrey
align 4
LABELV colorMdGrey
byte 4 1056964608
byte 4 1056964608
byte 4 1056964608
byte 4 1065353216
export colorDkGrey
align 4
LABELV colorDkGrey
byte 4 1048576000
byte 4 1048576000
byte 4 1048576000
byte 4 1065353216
export g_color_table
align 4
LABELV g_color_table
byte 4 0
byte 4 0
byte 4 0
byte 4 1065353216
byte 4 1065353216
byte 4 0
byte 4 0
byte 4 1065353216
byte 4 0
byte 4 1065353216
byte 4 0
byte 4 1065353216
byte 4 1065353216
byte 4 1065353216
byte 4 0
byte 4 1065353216
byte 4 0
byte 4 0
byte 4 1065353216
byte 4 1065353216
byte 4 0
byte 4 1065353216
byte 4 1065353216
byte 4 1065353216
byte 4 1065353216
byte 4 0
byte 4 1065353216
byte 4 1065353216
byte 4 1065353216
byte 4 1065353216
byte 4 1065353216
byte 4 1065353216
export bytedirs
align 4
LABELV bytedirs
byte 4 3204879951
byte 4 0
byte 4 1062847556
byte 4 3202531056
byte 4 1047828139
byte 4 1063074669
byte 4 3197577718
byte 4 0
byte 4 1064605338
byte 4 3198039930
byte 4 1056964608
byte 4 1062149053
byte 4 3190184938
byte 4 1049007711
byte 4 1064532072
byte 4 0
byte 4 0
byte 4 1065353216
byte 4 0
byte 4 1062847556
byte 4 1057396303
byte 4 3189189110
byte 4 1060597999
byte 4 1060013330
byte 4 1041705462
byte 4 1060597999
byte 4 1060013330
byte 4 0
byte 4 1057396303
byte 4 1062847556
byte 4 1050556282
byte 4 1056964608
byte 4 1062149053
byte 4 1057396303
byte 4 0
byte 4 1062847556
byte 4 1050094070
byte 4 0
byte 4 1064605338
byte 4 1055047408
byte 4 1047828139
byte 4 1063074669
byte 4 1042701290
byte 4 1049007711
byte 4 1064532072
byte 4 3207496978
byte 4 1041705462
byte 4 1060597999
byte 4 3209632701
byte 4 1050556282
byte 4 1056964608
byte 4 3205921044
byte 4 1054458931
byte 4 1060121929
byte 4 3210331204
byte 4 1057396303
byte 4 0
byte 4 3210558317
byte 4 1055047408
byte 4 1047828139
byte 4 3208081647
byte 4 1060013330
byte 4 1041705462
byte 4 3207605577
byte 4 1058437396
byte 4 1054458931
byte 4 3204448256
byte 4 1062149053
byte 4 1050556282
byte 4 3195311787
byte 4 1063074669
byte 4 1055047408
byte 4 3201942579
byte 4 1060121929
byte 4 1058437396
byte 4 3208081647
byte 4 1060013330
byte 4 3189189110
byte 4 3204448256
byte 4 1062149053
byte 4 3198039930
byte 4 3204879951
byte 4 1062847556
byte 4 0
byte 4 0
byte 4 1062847556
byte 4 3204879951
byte 4 3195311787
byte 4 1063074669
byte 4 3202531056
byte 4 0
byte 4 1064605338
byte 4 3197577718
byte 4 3196491359
byte 4 1064532072
byte 4 3190184938
byte 4 0
byte 4 1065353216
byte 4 0
byte 4 0
byte 4 1064605338
byte 4 1050094070
byte 4 3196491359
byte 4 1064532072
byte 4 1042701290
byte 4 1047828139
byte 4 1063074669
byte 4 1055047408
byte 4 1049007711
byte 4 1064532072
byte 4 1042701290
byte 4 1056964608
byte 4 1062149053
byte 4 1050556282
byte 4 1047828139
byte 4 1063074669
byte 4 3202531056
byte 4 1049007711
byte 4 1064532072
byte 4 3190184938
byte 4 1056964608
byte 4 1062149053
byte 4 3198039930
byte 4 1062847556
byte 4 1057396303
byte 4 0
byte 4 1060597999
byte 4 1060013330
byte 4 1041705462
byte 4 1060597999
byte 4 1060013330
byte 4 3189189110
byte 4 1057396303
byte 4 1062847556
byte 4 0
byte 4 1054458931
byte 4 1060121929
byte 4 1058437396
byte 4 1063074669
byte 4 1055047408
byte 4 1047828139
byte 4 1060121929
byte 4 1058437396
byte 4 1054458931
byte 4 1062149053
byte 4 1050556282
byte 4 1056964608
byte 4 1060013330
byte 4 1041705462
byte 4 1060597999
byte 4 1058437396
byte 4 1054458931
byte 4 1060121929
byte 4 1064605338
byte 4 1050094070
byte 4 0
byte 4 1065353216
byte 4 0
byte 4 0
byte 4 1064532072
byte 4 1042701290
byte 4 1049007711
byte 4 1062847556
byte 4 3204879951
byte 4 0
byte 4 1064605338
byte 4 3197577718
byte 4 0
byte 4 1063074669
byte 4 3202531056
byte 4 1047828139
byte 4 1064532072
byte 4 3190184938
byte 4 1049007711
byte 4 1062149053
byte 4 3198039930
byte 4 1056964608
byte 4 1060013330
byte 4 3189189110
byte 4 1060597999
byte 4 1062847556
byte 4 0
byte 4 1057396303
byte 4 1063074669
byte 4 1055047408
byte 4 3195311787
byte 4 1062149053
byte 4 1050556282
byte 4 3204448256
byte 4 1064532072
byte 4 1042701290
byte 4 3196491359
byte 4 1057396303
byte 4 0
byte 4 3210331204
byte 4 1060013330
byte 4 1041705462
byte 4 3208081647
byte 4 1060013330
byte 4 3189189110
byte 4 3208081647
byte 4 1062847556
byte 4 0
byte 4 3204879951
byte 4 1062149053
byte 4 3198039930
byte 4 3204448256
byte 4 1063074669
byte 4 3202531056
byte 4 3195311787
byte 4 1064532072
byte 4 3190184938
byte 4 3196491359
byte 4 1041705462
byte 4 1060597999
byte 4 3207496978
byte 4 1050556282
byte 4 1056964608
byte 4 3209632701
byte 4 1054458931
byte 4 1060121929
byte 4 3205921044
byte 4 1055047408
byte 4 1047828139
byte 4 3210558317
byte 4 1058437396
byte 4 1054458931
byte 4 3207605577
byte 4 1060121929
byte 4 1058437396
byte 4 3201942579
byte 4 3189189110
byte 4 1060597999
byte 4 3207496978
byte 4 3198039930
byte 4 1056964608
byte 4 3209632701
byte 4 0
byte 4 1057396303
byte 4 3210331204
byte 4 3204879951
byte 4 0
byte 4 3210331204
byte 4 3202531056
byte 4 1047828139
byte 4 3210558317
byte 4 3197577718
byte 4 0
byte 4 3212088986
byte 4 3190184938
byte 4 1049007711
byte 4 3212015720
byte 4 0
byte 4 0
byte 4 3212836864
byte 4 1050094070
byte 4 0
byte 4 3212088986
byte 4 1042701290
byte 4 1049007711
byte 4 3212015720
byte 4 3202531056
byte 4 3195311787
byte 4 3210558317
byte 4 3198039930
byte 4 3204448256
byte 4 3209632701
byte 4 3190184938
byte 4 3196491359
byte 4 3212015720
byte 4 0
byte 4 3210331204
byte 4 3204879951
byte 4 3189189110
byte 4 3208081647
byte 4 3207496978
byte 4 1041705462
byte 4 3208081647
byte 4 3207496978
byte 4 0
byte 4 3204879951
byte 4 3210331204
byte 4 1050556282
byte 4 3204448256
byte 4 3209632701
byte 4 1055047408
byte 4 3195311787
byte 4 3210558317
byte 4 1042701290
byte 4 3196491359
byte 4 3212015720
byte 4 1047828139
byte 4 3210558317
byte 4 3202531056
byte 4 1056964608
byte 4 3209632701
byte 4 3198039930
byte 4 1054458931
byte 4 3207605577
byte 4 3205921044
byte 4 1060597999
byte 4 3207496978
byte 4 3189189110
byte 4 1060121929
byte 4 3205921044
byte 4 3201942579
byte 4 1058437396
byte 4 3201942579
byte 4 3207605577
byte 4 0
byte 4 3212088986
byte 4 3197577718
byte 4 0
byte 4 3212836864
byte 4 0
byte 4 1049007711
byte 4 3212015720
byte 4 3190184938
byte 4 0
byte 4 3210331204
byte 4 1057396303
byte 4 0
byte 4 3212088986
byte 4 1050094070
byte 4 1047828139
byte 4 3210558317
byte 4 1055047408
byte 4 1049007711
byte 4 3212015720
byte 4 1042701290
byte 4 1056964608
byte 4 3209632701
byte 4 1050556282
byte 4 1060597999
byte 4 3207496978
byte 4 1041705462
byte 4 1057396303
byte 4 3210331204
byte 4 0
byte 4 3195311787
byte 4 3210558317
byte 4 3202531056
byte 4 3204448256
byte 4 3209632701
byte 4 3198039930
byte 4 3196491359
byte 4 3212015720
byte 4 3190184938
byte 4 3210331204
byte 4 3204879951
byte 4 0
byte 4 3208081647
byte 4 3207496978
byte 4 3189189110
byte 4 3208081647
byte 4 3207496978
byte 4 1041705462
byte 4 3204879951
byte 4 3210331204
byte 4 0
byte 4 3204448256
byte 4 3209632701
byte 4 1050556282
byte 4 3195311787
byte 4 3210558317
byte 4 1055047408
byte 4 3196491359
byte 4 3212015720
byte 4 1042701290
byte 4 3210558317
byte 4 3202531056
byte 4 1047828139
byte 4 3209632701
byte 4 3198039930
byte 4 1056964608
byte 4 3207605577
byte 4 3205921044
byte 4 1054458931
byte 4 3207496978
byte 4 3189189110
byte 4 1060597999
byte 4 3202531056
byte 4 3195311787
byte 4 1063074669
byte 4 3205921044
byte 4 3201942579
byte 4 1060121929
byte 4 3198039930
byte 4 3204448256
byte 4 1062149053
byte 4 3189189110
byte 4 3208081647
byte 4 1060013330
byte 4 3201942579
byte 4 3207605577
byte 4 1058437396
byte 4 3190184938
byte 4 3196491359
byte 4 1064532072
byte 4 1055047408
byte 4 3195311787
byte 4 1063074669
byte 4 1042701290
byte 4 3196491359
byte 4 1064532072
byte 4 1050556282
byte 4 3204448256
byte 4 1062149053
byte 4 1041705462
byte 4 3208081647
byte 4 1060013330
byte 4 0
byte 4 3204879951
byte 4 1062847556
byte 4 1054458931
byte 4 3207605577
byte 4 1058437396
byte 4 1058437396
byte 4 3201942579
byte 4 1060121929
byte 4 1060121929
byte 4 3205921044
byte 4 1054458931
byte 4 3212088986
byte 4 1050094070
byte 4 0
byte 4 3212015720
byte 4 1042701290
byte 4 1049007711
byte 4 3212836864
byte 4 0
byte 4 0
byte 4 3210331204
byte 4 0
byte 4 1057396303
byte 4 3212088986
byte 4 3197577718
byte 4 0
byte 4 3212015720
byte 4 3190184938
byte 4 1049007711
byte 4 3210558317
byte 4 1055047408
byte 4 3195311787
byte 4 3212015720
byte 4 1042701290
byte 4 3196491359
byte 4 3209632701
byte 4 1050556282
byte 4 3204448256
byte 4 3210558317
byte 4 3202531056
byte 4 3195311787
byte 4 3212015720
byte 4 3190184938
byte 4 3196491359
byte 4 3209632701
byte 4 3198039930
byte 4 3204448256
byte 4 3207496978
byte 4 1041705462
byte 4 3208081647
byte 4 3207496978
byte 4 3189189110
byte 4 3208081647
byte 4 3210331204
byte 4 0
byte 4 3204879951
byte 4 3207605577
byte 4 1058437396
byte 4 3201942579
byte 4 3205921044
byte 4 1054458931
byte 4 3207605577
byte 4 3201942579
byte 4 1060121929
byte 4 3205921044
byte 4 3201942579
byte 4 3207605577
byte 4 3205921044
byte 4 3205921044
byte 4 3201942579
byte 4 3207605577
byte 4 3207605577
byte 4 3205921044
byte 4 3201942579
export Q_rand
code
proc Q_rand 4 0
file "..\..\..\..\code\qcommon\q_math.c"
line 123
;1:// Copyright (C) 1999-2000 Id Software, Inc.
;2://
;3:// q_math.c -- stateless support routines that are included in each code module
;4:#include "../qcommon/q_shared.h"
;5:
;6:
;7:vec3_t	vec3_origin = {0,0,0};
;8:vec3_t	axisDefault[3] = { { 1, 0, 0 }, { 0, 1, 0 }, { 0, 0, 1 } };
;9:
;10:
;11:vec4_t		colorBlack	= {0, 0, 0, 1};
;12:vec4_t		colorRed	= {1, 0, 0, 1};
;13:vec4_t		colorGreen	= {0, 1, 0, 1};
;14:vec4_t		colorBlue	= {0, 0, 1, 1};
;15:vec4_t		colorYellow	= {1, 1, 0, 1};
;16:vec4_t		colorMagenta= {1, 0, 1, 1};
;17:vec4_t		colorCyan	= {0, 1, 1, 1};
;18:vec4_t		colorWhite	= {1, 1, 1, 1};
;19:vec4_t		colorLtGrey	= {0.75, 0.75, 0.75, 1};
;20:vec4_t		colorMdGrey	= {0.5, 0.5, 0.5, 1};
;21:vec4_t		colorDkGrey	= {0.25, 0.25, 0.25, 1};
;22:
;23:vec4_t	g_color_table[8] =
;24:	{
;25:	{0.0, 0.0, 0.0, 1.0},
;26:	{1.0, 0.0, 0.0, 1.0},
;27:	{0.0, 1.0, 0.0, 1.0},
;28:	{1.0, 1.0, 0.0, 1.0},
;29:	{0.0, 0.0, 1.0, 1.0},
;30:	{0.0, 1.0, 1.0, 1.0},
;31:	{1.0, 0.0, 1.0, 1.0},
;32:	{1.0, 1.0, 1.0, 1.0},
;33:	};
;34:
;35:
;36:vec3_t	bytedirs[NUMVERTEXNORMALS] =
;37:{
;38:{-0.525731f, 0.000000f, 0.850651f}, {-0.442863f, 0.238856f, 0.864188f}, 
;39:{-0.295242f, 0.000000f, 0.955423f}, {-0.309017f, 0.500000f, 0.809017f}, 
;40:{-0.162460f, 0.262866f, 0.951056f}, {0.000000f, 0.000000f, 1.000000f}, 
;41:{0.000000f, 0.850651f, 0.525731f}, {-0.147621f, 0.716567f, 0.681718f}, 
;42:{0.147621f, 0.716567f, 0.681718f}, {0.000000f, 0.525731f, 0.850651f}, 
;43:{0.309017f, 0.500000f, 0.809017f}, {0.525731f, 0.000000f, 0.850651f}, 
;44:{0.295242f, 0.000000f, 0.955423f}, {0.442863f, 0.238856f, 0.864188f}, 
;45:{0.162460f, 0.262866f, 0.951056f}, {-0.681718f, 0.147621f, 0.716567f}, 
;46:{-0.809017f, 0.309017f, 0.500000f},{-0.587785f, 0.425325f, 0.688191f}, 
;47:{-0.850651f, 0.525731f, 0.000000f},{-0.864188f, 0.442863f, 0.238856f}, 
;48:{-0.716567f, 0.681718f, 0.147621f},{-0.688191f, 0.587785f, 0.425325f}, 
;49:{-0.500000f, 0.809017f, 0.309017f}, {-0.238856f, 0.864188f, 0.442863f}, 
;50:{-0.425325f, 0.688191f, 0.587785f}, {-0.716567f, 0.681718f, -0.147621f}, 
;51:{-0.500000f, 0.809017f, -0.309017f}, {-0.525731f, 0.850651f, 0.000000f}, 
;52:{0.000000f, 0.850651f, -0.525731f}, {-0.238856f, 0.864188f, -0.442863f}, 
;53:{0.000000f, 0.955423f, -0.295242f}, {-0.262866f, 0.951056f, -0.162460f}, 
;54:{0.000000f, 1.000000f, 0.000000f}, {0.000000f, 0.955423f, 0.295242f}, 
;55:{-0.262866f, 0.951056f, 0.162460f}, {0.238856f, 0.864188f, 0.442863f}, 
;56:{0.262866f, 0.951056f, 0.162460f}, {0.500000f, 0.809017f, 0.309017f}, 
;57:{0.238856f, 0.864188f, -0.442863f},{0.262866f, 0.951056f, -0.162460f}, 
;58:{0.500000f, 0.809017f, -0.309017f},{0.850651f, 0.525731f, 0.000000f}, 
;59:{0.716567f, 0.681718f, 0.147621f}, {0.716567f, 0.681718f, -0.147621f}, 
;60:{0.525731f, 0.850651f, 0.000000f}, {0.425325f, 0.688191f, 0.587785f}, 
;61:{0.864188f, 0.442863f, 0.238856f}, {0.688191f, 0.587785f, 0.425325f}, 
;62:{0.809017f, 0.309017f, 0.500000f}, {0.681718f, 0.147621f, 0.716567f}, 
;63:{0.587785f, 0.425325f, 0.688191f}, {0.955423f, 0.295242f, 0.000000f}, 
;64:{1.000000f, 0.000000f, 0.000000f}, {0.951056f, 0.162460f, 0.262866f}, 
;65:{0.850651f, -0.525731f, 0.000000f},{0.955423f, -0.295242f, 0.000000f}, 
;66:{0.864188f, -0.442863f, 0.238856f}, {0.951056f, -0.162460f, 0.262866f}, 
;67:{0.809017f, -0.309017f, 0.500000f}, {0.681718f, -0.147621f, 0.716567f}, 
;68:{0.850651f, 0.000000f, 0.525731f}, {0.864188f, 0.442863f, -0.238856f}, 
;69:{0.809017f, 0.309017f, -0.500000f}, {0.951056f, 0.162460f, -0.262866f}, 
;70:{0.525731f, 0.000000f, -0.850651f}, {0.681718f, 0.147621f, -0.716567f}, 
;71:{0.681718f, -0.147621f, -0.716567f},{0.850651f, 0.000000f, -0.525731f}, 
;72:{0.809017f, -0.309017f, -0.500000f}, {0.864188f, -0.442863f, -0.238856f}, 
;73:{0.951056f, -0.162460f, -0.262866f}, {0.147621f, 0.716567f, -0.681718f}, 
;74:{0.309017f, 0.500000f, -0.809017f}, {0.425325f, 0.688191f, -0.587785f}, 
;75:{0.442863f, 0.238856f, -0.864188f}, {0.587785f, 0.425325f, -0.688191f}, 
;76:{0.688191f, 0.587785f, -0.425325f}, {-0.147621f, 0.716567f, -0.681718f}, 
;77:{-0.309017f, 0.500000f, -0.809017f}, {0.000000f, 0.525731f, -0.850651f}, 
;78:{-0.525731f, 0.000000f, -0.850651f}, {-0.442863f, 0.238856f, -0.864188f}, 
;79:{-0.295242f, 0.000000f, -0.955423f}, {-0.162460f, 0.262866f, -0.951056f}, 
;80:{0.000000f, 0.000000f, -1.000000f}, {0.295242f, 0.000000f, -0.955423f}, 
;81:{0.162460f, 0.262866f, -0.951056f}, {-0.442863f, -0.238856f, -0.864188f}, 
;82:{-0.309017f, -0.500000f, -0.809017f}, {-0.162460f, -0.262866f, -0.951056f}, 
;83:{0.000000f, -0.850651f, -0.525731f}, {-0.147621f, -0.716567f, -0.681718f}, 
;84:{0.147621f, -0.716567f, -0.681718f}, {0.000000f, -0.525731f, -0.850651f}, 
;85:{0.309017f, -0.500000f, -0.809017f}, {0.442863f, -0.238856f, -0.864188f}, 
;86:{0.162460f, -0.262866f, -0.951056f}, {0.238856f, -0.864188f, -0.442863f}, 
;87:{0.500000f, -0.809017f, -0.309017f}, {0.425325f, -0.688191f, -0.587785f}, 
;88:{0.716567f, -0.681718f, -0.147621f}, {0.688191f, -0.587785f, -0.425325f}, 
;89:{0.587785f, -0.425325f, -0.688191f}, {0.000000f, -0.955423f, -0.295242f}, 
;90:{0.000000f, -1.000000f, 0.000000f}, {0.262866f, -0.951056f, -0.162460f}, 
;91:{0.000000f, -0.850651f, 0.525731f}, {0.000000f, -0.955423f, 0.295242f}, 
;92:{0.238856f, -0.864188f, 0.442863f}, {0.262866f, -0.951056f, 0.162460f}, 
;93:{0.500000f, -0.809017f, 0.309017f}, {0.716567f, -0.681718f, 0.147621f}, 
;94:{0.525731f, -0.850651f, 0.000000f}, {-0.238856f, -0.864188f, -0.442863f}, 
;95:{-0.500000f, -0.809017f, -0.309017f}, {-0.262866f, -0.951056f, -0.162460f}, 
;96:{-0.850651f, -0.525731f, 0.000000f}, {-0.716567f, -0.681718f, -0.147621f}, 
;97:{-0.716567f, -0.681718f, 0.147621f}, {-0.525731f, -0.850651f, 0.000000f}, 
;98:{-0.500000f, -0.809017f, 0.309017f}, {-0.238856f, -0.864188f, 0.442863f}, 
;99:{-0.262866f, -0.951056f, 0.162460f}, {-0.864188f, -0.442863f, 0.238856f}, 
;100:{-0.809017f, -0.309017f, 0.500000f}, {-0.688191f, -0.587785f, 0.425325f}, 
;101:{-0.681718f, -0.147621f, 0.716567f}, {-0.442863f, -0.238856f, 0.864188f}, 
;102:{-0.587785f, -0.425325f, 0.688191f}, {-0.309017f, -0.500000f, 0.809017f}, 
;103:{-0.147621f, -0.716567f, 0.681718f}, {-0.425325f, -0.688191f, 0.587785f}, 
;104:{-0.162460f, -0.262866f, 0.951056f}, {0.442863f, -0.238856f, 0.864188f}, 
;105:{0.162460f, -0.262866f, 0.951056f}, {0.309017f, -0.500000f, 0.809017f}, 
;106:{0.147621f, -0.716567f, 0.681718f}, {0.000000f, -0.525731f, 0.850651f}, 
;107:{0.425325f, -0.688191f, 0.587785f}, {0.587785f, -0.425325f, 0.688191f}, 
;108:{0.688191f, -0.587785f, 0.425325f}, {-0.955423f, 0.295242f, 0.000000f}, 
;109:{-0.951056f, 0.162460f, 0.262866f}, {-1.000000f, 0.000000f, 0.000000f}, 
;110:{-0.850651f, 0.000000f, 0.525731f}, {-0.955423f, -0.295242f, 0.000000f}, 
;111:{-0.951056f, -0.162460f, 0.262866f}, {-0.864188f, 0.442863f, -0.238856f}, 
;112:{-0.951056f, 0.162460f, -0.262866f}, {-0.809017f, 0.309017f, -0.500000f}, 
;113:{-0.864188f, -0.442863f, -0.238856f}, {-0.951056f, -0.162460f, -0.262866f}, 
;114:{-0.809017f, -0.309017f, -0.500000f}, {-0.681718f, 0.147621f, -0.716567f}, 
;115:{-0.681718f, -0.147621f, -0.716567f}, {-0.850651f, 0.000000f, -0.525731f}, 
;116:{-0.688191f, 0.587785f, -0.425325f}, {-0.587785f, 0.425325f, -0.688191f}, 
;117:{-0.425325f, 0.688191f, -0.587785f}, {-0.425325f, -0.688191f, -0.587785f}, 
;118:{-0.587785f, -0.425325f, -0.688191f}, {-0.688191f, -0.587785f, -0.425325f}
;119:};
;120:
;121://==============================================================
;122:
;123:int		Q_rand( int *seed ) {
line 124
;124:	*seed = (69069 * *seed + 1);
ADDRLP4 0
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 0
INDIRP4
ADDRLP4 0
INDIRP4
INDIRI4
CNSTI4 69069
MULI4
CNSTI4 1
ADDI4
ASGNI4
line 125
;125:	return *seed;
ADDRFP4 0
INDIRP4
INDIRI4
RETI4
LABELV $21
endproc Q_rand 4 0
export Q_random
proc Q_random 4 4
line 128
;126:}
;127:
;128:float	Q_random( int *seed ) {
line 129
;129:	return ( Q_rand( seed ) & 0xffff ) / (float)0x10000;
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 0
ADDRGP4 Q_rand
CALLI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 65535
BANDI4
CVIF4 4
CNSTF4 931135488
MULF4
RETF4
LABELV $22
endproc Q_random 4 4
export Q_crandom
proc Q_crandom 4 4
line 132
;130:}
;131:
;132:float	Q_crandom( int *seed ) {
line 133
;133:	return 2.0 * ( Q_random( seed ) - 0.5 );
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 0
ADDRGP4 Q_random
CALLF4
ASGNF4
ADDRLP4 0
INDIRF4
CNSTF4 1056964608
SUBF4
CNSTF4 1073741824
MULF4
RETF4
LABELV $23
endproc Q_crandom 4 4
export VectorCompare
proc VectorCompare 8 0
line 138
;134:}
;135:
;136:#ifdef __LCC__
;137:
;138:int VectorCompare( const vec3_t v1, const vec3_t v2 ) {
line 139
;139:	if (v1[0] != v2[0] || v1[1] != v2[1] || v1[2] != v2[2]) {
ADDRLP4 0
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 4
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 0
INDIRP4
INDIRF4
ADDRLP4 4
INDIRP4
INDIRF4
NEF4 $28
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 4
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
NEF4 $28
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 4
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
EQF4 $25
LABELV $28
line 140
;140:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $24
JUMPV
LABELV $25
line 142
;141:	}			
;142:	return 1;
CNSTI4 1
RETI4
LABELV $24
endproc VectorCompare 8 0
export VectorLength
proc VectorLength 12 4
line 145
;143:}
;144:
;145:vec_t VectorLength( const vec3_t v ) {
line 146
;146:	return (vec_t)sqrt (v[0]*v[0] + v[1]*v[1] + v[2]*v[2]);
ADDRLP4 0
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 4
ADDRLP4 0
INDIRP4
INDIRF4
ASGNF4
ADDRLP4 4
INDIRF4
ADDRLP4 4
INDIRF4
MULF4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
ARGF4
ADDRLP4 8
ADDRGP4 sqrt
CALLF4
ASGNF4
ADDRLP4 8
INDIRF4
RETF4
LABELV $29
endproc VectorLength 12 4
export VectorLengthSquared
proc VectorLengthSquared 8 0
line 149
;147:}
;148:
;149:vec_t VectorLengthSquared( const vec3_t v ) {
line 150
;150:	return (v[0]*v[0] + v[1]*v[1] + v[2]*v[2]);
ADDRLP4 0
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 4
ADDRLP4 0
INDIRP4
INDIRF4
ASGNF4
ADDRLP4 4
INDIRF4
ADDRLP4 4
INDIRF4
MULF4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
RETF4
LABELV $30
endproc VectorLengthSquared 8 0
export Distance
proc Distance 24 4
line 153
;151:}
;152:
;153:vec_t Distance( const vec3_t p1, const vec3_t p2 ) {
line 156
;154:	vec3_t	v;
;155:
;156:	VectorSubtract (p2, p1, v);
ADDRLP4 12
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 16
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 0
ADDRLP4 12
INDIRP4
INDIRF4
ADDRLP4 16
INDIRP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 0+4
ADDRLP4 12
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 16
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 0+8
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
SUBF4
ASGNF4
line 157
;157:	return VectorLength( v );
ADDRLP4 0
ARGP4
ADDRLP4 20
ADDRGP4 VectorLength
CALLF4
ASGNF4
ADDRLP4 20
INDIRF4
RETF4
LABELV $31
endproc Distance 24 4
export DistanceSquared
proc DistanceSquared 24 0
line 160
;158:}
;159:
;160:vec_t DistanceSquared( const vec3_t p1, const vec3_t p2 ) {
line 163
;161:	vec3_t	v;
;162:
;163:	VectorSubtract (p2, p1, v);
ADDRLP4 12
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 16
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 0
ADDRLP4 12
INDIRP4
INDIRF4
ADDRLP4 16
INDIRP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 0+4
ADDRLP4 12
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 16
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 0+8
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
SUBF4
ASGNF4
line 164
;164:	return v[0]*v[0] + v[1]*v[1] + v[2]*v[2];
ADDRLP4 20
ADDRLP4 0
INDIRF4
ASGNF4
ADDRLP4 20
INDIRF4
ADDRLP4 20
INDIRF4
MULF4
ADDRLP4 0+4
INDIRF4
ADDRLP4 0+4
INDIRF4
MULF4
ADDF4
ADDRLP4 0+8
INDIRF4
ADDRLP4 0+8
INDIRF4
MULF4
ADDF4
RETF4
LABELV $34
endproc DistanceSquared 24 0
export VectorNormalizeFast
proc VectorNormalizeFast 28 4
line 170
;165:}
;166:
;167:// fast vector normalize routine that does not check to make sure
;168:// that length != 0, nor does it return length, uses rsqrt approximation
;169:void VectorNormalizeFast( vec3_t v )
;170:{
line 173
;171:	float ilength;
;172:
;173:	ilength = Q_rsqrt( DotProduct( v, v ) );
ADDRLP4 4
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 8
ADDRLP4 4
INDIRP4
INDIRF4
ASGNF4
ADDRLP4 8
INDIRF4
ADDRLP4 8
INDIRF4
MULF4
ADDRLP4 4
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 4
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 4
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 4
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
ARGF4
ADDRLP4 12
ADDRGP4 Q_rsqrt
CALLF4
ASGNF4
ADDRLP4 0
ADDRLP4 12
INDIRF4
ASGNF4
line 175
;174:
;175:	v[0] *= ilength;
ADDRLP4 16
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 16
INDIRP4
ADDRLP4 16
INDIRP4
INDIRF4
ADDRLP4 0
INDIRF4
MULF4
ASGNF4
line 176
;176:	v[1] *= ilength;
ADDRLP4 20
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
ASGNP4
ADDRLP4 20
INDIRP4
ADDRLP4 20
INDIRP4
INDIRF4
ADDRLP4 0
INDIRF4
MULF4
ASGNF4
line 177
;177:	v[2] *= ilength;
ADDRLP4 24
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
ASGNP4
ADDRLP4 24
INDIRP4
ADDRLP4 24
INDIRP4
INDIRF4
ADDRLP4 0
INDIRF4
MULF4
ASGNF4
line 178
;178:}
LABELV $41
endproc VectorNormalizeFast 28 4
export VectorInverse
proc VectorInverse 12 0
line 180
;179:
;180:void VectorInverse( vec3_t v ){
line 181
;181:	v[0] = -v[0];
ADDRLP4 0
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 0
INDIRP4
ADDRLP4 0
INDIRP4
INDIRF4
NEGF4
ASGNF4
line 182
;182:	v[1] = -v[1];
ADDRLP4 4
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 4
INDIRP4
CNSTI4 4
ADDP4
ADDRLP4 4
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
NEGF4
ASGNF4
line 183
;183:	v[2] = -v[2];
ADDRLP4 8
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 8
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 8
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
NEGF4
ASGNF4
line 184
;184:}
LABELV $42
endproc VectorInverse 12 0
export CrossProduct
proc CrossProduct 24 0
line 186
;185:
;186:void CrossProduct( const vec3_t v1, const vec3_t v2, vec3_t cross ) {
line 187
;187:	cross[0] = v1[1]*v2[2] - v1[2]*v2[1];
ADDRLP4 0
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 4
ADDRFP4 4
INDIRP4
ASGNP4
ADDRFP4 8
INDIRP4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 4
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 4
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
SUBF4
ASGNF4
line 188
;188:	cross[1] = v1[2]*v2[0] - v1[0]*v2[2];
ADDRLP4 8
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 12
ADDRFP4 4
INDIRP4
ASGNP4
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
ADDRLP4 8
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 12
INDIRP4
INDIRF4
MULF4
ADDRLP4 8
INDIRP4
INDIRF4
ADDRLP4 12
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
SUBF4
ASGNF4
line 189
;189:	cross[2] = v1[0]*v2[1] - v1[1]*v2[0];
ADDRLP4 16
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 20
ADDRFP4 4
INDIRP4
ASGNP4
ADDRFP4 8
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 16
INDIRP4
INDIRF4
ADDRLP4 20
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDRLP4 16
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 20
INDIRP4
INDIRF4
MULF4
SUBF4
ASGNF4
line 190
;190:}
LABELV $43
endproc CrossProduct 24 0
export ClampChar
proc ClampChar 0 0
line 195
;191:#endif
;192:
;193://=======================================================
;194:
;195:signed char ClampChar( int i ) {
line 196
;196:	if ( i < -128 ) {
ADDRFP4 0
INDIRI4
CNSTI4 -128
GEI4 $45
line 197
;197:		return -128;
CNSTI4 -128
RETI4
ADDRGP4 $44
JUMPV
LABELV $45
line 199
;198:	}
;199:	if ( i > 127 ) {
ADDRFP4 0
INDIRI4
CNSTI4 127
LEI4 $47
line 200
;200:		return 127;
CNSTI4 127
RETI4
ADDRGP4 $44
JUMPV
LABELV $47
line 202
;201:	}
;202:	return i;
ADDRFP4 0
INDIRI4
CVII1 4
CVII4 1
RETI4
LABELV $44
endproc ClampChar 0 0
export ClampShort
proc ClampShort 0 0
line 205
;203:}
;204:
;205:signed short ClampShort( int i ) {
line 206
;206:	if ( i < -32768 ) {
ADDRFP4 0
INDIRI4
CNSTI4 -32768
GEI4 $50
line 207
;207:		return -32768;
CNSTI4 -32768
RETI4
ADDRGP4 $49
JUMPV
LABELV $50
line 209
;208:	}
;209:	if ( i > 0x7fff ) {
ADDRFP4 0
INDIRI4
CNSTI4 32767
LEI4 $52
line 210
;210:		return 0x7fff;
CNSTI4 32767
RETI4
ADDRGP4 $49
JUMPV
LABELV $52
line 212
;211:	}
;212:	return i;
ADDRFP4 0
INDIRI4
CVII2 4
CVII4 2
RETI4
LABELV $49
endproc ClampShort 0 0
export DirToByte
proc DirToByte 24 0
line 217
;213:}
;214:
;215:
;216:// this isn't a real cheap function to call!
;217:int DirToByte( vec3_t dir ) {
line 221
;218:	int		i, best;
;219:	float	d, bestd;
;220:
;221:	if ( !dir ) {
ADDRFP4 0
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $55
line 222
;222:		return 0;
CNSTI4 0
RETI4
ADDRGP4 $54
JUMPV
LABELV $55
line 225
;223:	}
;224:
;225:	bestd = 0;
ADDRLP4 8
CNSTF4 0
ASGNF4
line 226
;226:	best = 0;
ADDRLP4 12
CNSTI4 0
ASGNI4
line 227
;227:	for (i=0 ; i<NUMVERTEXNORMALS ; i++)
ADDRLP4 0
CNSTI4 0
ASGNI4
LABELV $57
line 228
;228:	{
line 229
;229:		d = DotProduct (dir, bytedirs[i]);
ADDRLP4 16
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 4
ADDRLP4 16
INDIRP4
INDIRF4
ADDRLP4 0
INDIRI4
CNSTI4 12
MULI4
ADDRGP4 bytedirs
ADDP4
INDIRF4
MULF4
ADDRLP4 16
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 0
INDIRI4
CNSTI4 12
MULI4
ADDRGP4 bytedirs+4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 16
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 0
INDIRI4
CNSTI4 12
MULI4
ADDRGP4 bytedirs+8
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 230
;230:		if (d > bestd)
ADDRLP4 4
INDIRF4
ADDRLP4 8
INDIRF4
LEF4 $63
line 231
;231:		{
line 232
;232:			bestd = d;
ADDRLP4 8
ADDRLP4 4
INDIRF4
ASGNF4
line 233
;233:			best = i;
ADDRLP4 12
ADDRLP4 0
INDIRI4
ASGNI4
line 234
;234:		}
LABELV $63
line 235
;235:	}
LABELV $58
line 227
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 162
LTI4 $57
line 237
;236:
;237:	return best;
ADDRLP4 12
INDIRI4
RETI4
LABELV $54
endproc DirToByte 24 0
export ByteToDir
proc ByteToDir 4 0
line 240
;238:}
;239:
;240:void ByteToDir( int b, vec3_t dir ) {
line 241
;241:	if ( b < 0 || b >= NUMVERTEXNORMALS ) {
ADDRLP4 0
ADDRFP4 0
INDIRI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 0
LTI4 $68
ADDRLP4 0
INDIRI4
CNSTI4 162
LTI4 $66
LABELV $68
line 242
;242:		VectorCopy( vec3_origin, dir );
ADDRFP4 4
INDIRP4
ADDRGP4 vec3_origin
INDIRB
ASGNB 12
line 243
;243:		return;
ADDRGP4 $65
JUMPV
LABELV $66
line 245
;244:	}
;245:	VectorCopy (bytedirs[b], dir);
ADDRFP4 4
INDIRP4
ADDRFP4 0
INDIRI4
CNSTI4 12
MULI4
ADDRGP4 bytedirs
ADDP4
INDIRB
ASGNB 12
line 246
;246:}
LABELV $65
endproc ByteToDir 4 0
export ColorBytes3
proc ColorBytes3 40 0
line 249
;247:
;248:
;249:unsigned ColorBytes3 (float r, float g, float b) {
line 252
;250:	unsigned	i;
;251:
;252:	( (byte *)&i )[0] = r * 255;
ADDRLP4 8
ADDRFP4 0
INDIRF4
CNSTF4 1132396544
MULF4
ASGNF4
ADDRLP4 12
CNSTF4 1325400064
ASGNF4
ADDRLP4 8
INDIRF4
ADDRLP4 12
INDIRF4
LTF4 $71
ADDRLP4 4
ADDRLP4 8
INDIRF4
ADDRLP4 12
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $72
JUMPV
LABELV $71
ADDRLP4 4
ADDRLP4 8
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $72
ADDRLP4 0
ADDRLP4 4
INDIRU4
CVUU1 4
ASGNU1
line 253
;253:	( (byte *)&i )[1] = g * 255;
ADDRLP4 20
ADDRFP4 4
INDIRF4
CNSTF4 1132396544
MULF4
ASGNF4
ADDRLP4 24
CNSTF4 1325400064
ASGNF4
ADDRLP4 20
INDIRF4
ADDRLP4 24
INDIRF4
LTF4 $75
ADDRLP4 16
ADDRLP4 20
INDIRF4
ADDRLP4 24
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $76
JUMPV
LABELV $75
ADDRLP4 16
ADDRLP4 20
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $76
ADDRLP4 0+1
ADDRLP4 16
INDIRU4
CVUU1 4
ASGNU1
line 254
;254:	( (byte *)&i )[2] = b * 255;
ADDRLP4 32
ADDRFP4 8
INDIRF4
CNSTF4 1132396544
MULF4
ASGNF4
ADDRLP4 36
CNSTF4 1325400064
ASGNF4
ADDRLP4 32
INDIRF4
ADDRLP4 36
INDIRF4
LTF4 $79
ADDRLP4 28
ADDRLP4 32
INDIRF4
ADDRLP4 36
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $80
JUMPV
LABELV $79
ADDRLP4 28
ADDRLP4 32
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $80
ADDRLP4 0+2
ADDRLP4 28
INDIRU4
CVUU1 4
ASGNU1
line 256
;255:
;256:	return i;
ADDRLP4 0
INDIRU4
RETU4
LABELV $69
endproc ColorBytes3 40 0
export ColorBytes4
proc ColorBytes4 52 0
line 259
;257:}
;258:
;259:unsigned ColorBytes4 (float r, float g, float b, float a) {
line 262
;260:	unsigned	i;
;261:
;262:	( (byte *)&i )[0] = r * 255;
ADDRLP4 8
ADDRFP4 0
INDIRF4
CNSTF4 1132396544
MULF4
ASGNF4
ADDRLP4 12
CNSTF4 1325400064
ASGNF4
ADDRLP4 8
INDIRF4
ADDRLP4 12
INDIRF4
LTF4 $83
ADDRLP4 4
ADDRLP4 8
INDIRF4
ADDRLP4 12
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $84
JUMPV
LABELV $83
ADDRLP4 4
ADDRLP4 8
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $84
ADDRLP4 0
ADDRLP4 4
INDIRU4
CVUU1 4
ASGNU1
line 263
;263:	( (byte *)&i )[1] = g * 255;
ADDRLP4 20
ADDRFP4 4
INDIRF4
CNSTF4 1132396544
MULF4
ASGNF4
ADDRLP4 24
CNSTF4 1325400064
ASGNF4
ADDRLP4 20
INDIRF4
ADDRLP4 24
INDIRF4
LTF4 $87
ADDRLP4 16
ADDRLP4 20
INDIRF4
ADDRLP4 24
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $88
JUMPV
LABELV $87
ADDRLP4 16
ADDRLP4 20
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $88
ADDRLP4 0+1
ADDRLP4 16
INDIRU4
CVUU1 4
ASGNU1
line 264
;264:	( (byte *)&i )[2] = b * 255;
ADDRLP4 32
ADDRFP4 8
INDIRF4
CNSTF4 1132396544
MULF4
ASGNF4
ADDRLP4 36
CNSTF4 1325400064
ASGNF4
ADDRLP4 32
INDIRF4
ADDRLP4 36
INDIRF4
LTF4 $91
ADDRLP4 28
ADDRLP4 32
INDIRF4
ADDRLP4 36
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $92
JUMPV
LABELV $91
ADDRLP4 28
ADDRLP4 32
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $92
ADDRLP4 0+2
ADDRLP4 28
INDIRU4
CVUU1 4
ASGNU1
line 265
;265:	( (byte *)&i )[3] = a * 255;
ADDRLP4 44
ADDRFP4 12
INDIRF4
CNSTF4 1132396544
MULF4
ASGNF4
ADDRLP4 48
CNSTF4 1325400064
ASGNF4
ADDRLP4 44
INDIRF4
ADDRLP4 48
INDIRF4
LTF4 $95
ADDRLP4 40
ADDRLP4 44
INDIRF4
ADDRLP4 48
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $96
JUMPV
LABELV $95
ADDRLP4 40
ADDRLP4 44
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $96
ADDRLP4 0+3
ADDRLP4 40
INDIRU4
CVUU1 4
ASGNU1
line 267
;266:
;267:	return i;
ADDRLP4 0
INDIRU4
RETU4
LABELV $81
endproc ColorBytes4 52 0
export NormalizeColor
proc NormalizeColor 4 0
line 270
;268:}
;269:
;270:float NormalizeColor( const vec3_t in, vec3_t out ) {
line 273
;271:	float	max;
;272:	
;273:	max = in[0];
ADDRLP4 0
ADDRFP4 0
INDIRP4
INDIRF4
ASGNF4
line 274
;274:	if ( in[1] > max ) {
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 0
INDIRF4
LEF4 $98
line 275
;275:		max = in[1];
ADDRLP4 0
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ASGNF4
line 276
;276:	}
LABELV $98
line 277
;277:	if ( in[2] > max ) {
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 0
INDIRF4
LEF4 $100
line 278
;278:		max = in[2];
ADDRLP4 0
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ASGNF4
line 279
;279:	}
LABELV $100
line 281
;280:
;281:	if ( !max ) {
ADDRLP4 0
INDIRF4
CNSTF4 0
NEF4 $102
line 282
;282:		VectorClear( out );
ADDRFP4 4
INDIRP4
CNSTF4 0
ASGNF4
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
CNSTF4 0
ASGNF4
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
CNSTF4 0
ASGNF4
line 283
;283:	} else {
ADDRGP4 $103
JUMPV
LABELV $102
line 284
;284:		out[0] = in[0] / max;
ADDRFP4 4
INDIRP4
ADDRFP4 0
INDIRP4
INDIRF4
ADDRLP4 0
INDIRF4
DIVF4
ASGNF4
line 285
;285:		out[1] = in[1] / max;
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 0
INDIRF4
DIVF4
ASGNF4
line 286
;286:		out[2] = in[2] / max;
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 0
INDIRF4
DIVF4
ASGNF4
line 287
;287:	}
LABELV $103
line 288
;288:	return max;
ADDRLP4 0
INDIRF4
RETF4
LABELV $97
endproc NormalizeColor 4 0
export PlaneFromPoints
proc PlaneFromPoints 52 12
line 300
;289:}
;290:
;291:
;292:/*
;293:=====================
;294:PlaneFromPoints
;295:
;296:Returns false if the triangle is degenrate.
;297:The normal will point out of the clock for clockwise ordered points
;298:=====================
;299:*/
;300:qboolean PlaneFromPoints( vec4_t plane, const vec3_t a, const vec3_t b, const vec3_t c ) {
line 303
;301:	vec3_t	d1, d2;
;302:
;303:	VectorSubtract( b, a, d1 );
ADDRLP4 24
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 28
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 0
ADDRLP4 24
INDIRP4
INDIRF4
ADDRLP4 28
INDIRP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 0+4
ADDRLP4 24
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 28
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 0+8
ADDRFP4 8
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
SUBF4
ASGNF4
line 304
;304:	VectorSubtract( c, a, d2 );
ADDRLP4 32
ADDRFP4 12
INDIRP4
ASGNP4
ADDRLP4 36
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 12
ADDRLP4 32
INDIRP4
INDIRF4
ADDRLP4 36
INDIRP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 12+4
ADDRLP4 32
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 36
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 12+8
ADDRFP4 12
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
SUBF4
ASGNF4
line 305
;305:	CrossProduct( d2, d1, plane );
ADDRLP4 12
ARGP4
ADDRLP4 0
ARGP4
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 CrossProduct
CALLV
pop
line 306
;306:	if ( VectorNormalize( plane ) == 0 ) {
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 40
ADDRGP4 VectorNormalize
CALLF4
ASGNF4
ADDRLP4 40
INDIRF4
CNSTF4 0
NEF4 $109
line 307
;307:		return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $104
JUMPV
LABELV $109
line 310
;308:	}
;309:
;310:	plane[3] = DotProduct( a, plane );
ADDRLP4 44
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 48
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 44
INDIRP4
CNSTI4 12
ADDP4
ADDRLP4 48
INDIRP4
INDIRF4
ADDRLP4 44
INDIRP4
INDIRF4
MULF4
ADDRLP4 48
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 44
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 48
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 44
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 311
;311:	return qtrue;
CNSTI4 1
RETI4
LABELV $104
endproc PlaneFromPoints 52 12
export RotatePointAroundVector
proc RotatePointAroundVector 252 12
line 322
;312:}
;313:
;314:/*
;315:===============
;316:RotatePointAroundVector
;317:
;318:This is not implemented very well...
;319:===============
;320:*/
;321:void RotatePointAroundVector( vec3_t dst, const vec3_t dir, const vec3_t point,
;322:							 float degrees ) {
line 332
;323:	float	m[3][3];
;324:	float	im[3][3];
;325:	float	zrot[3][3];
;326:	float	tmpmat[3][3];
;327:	float	rot[3][3];
;328:	int	i;
;329:	vec3_t vr, vup, vf;
;330:	float	rad;
;331:
;332:	vf[0] = dir[0];
ADDRLP4 148
ADDRFP4 4
INDIRP4
INDIRF4
ASGNF4
line 333
;333:	vf[1] = dir[1];
ADDRLP4 148+4
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ASGNF4
line 334
;334:	vf[2] = dir[2];
ADDRLP4 148+8
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ASGNF4
line 336
;335:
;336:	PerpendicularVector( vr, dir );
ADDRLP4 160
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 PerpendicularVector
CALLV
pop
line 337
;337:	CrossProduct( vr, vf, vup );
ADDRLP4 160
ARGP4
ADDRLP4 148
ARGP4
ADDRLP4 176
ARGP4
ADDRGP4 CrossProduct
CALLV
pop
line 339
;338:
;339:	m[0][0] = vr[0];
ADDRLP4 40
ADDRLP4 160
INDIRF4
ASGNF4
line 340
;340:	m[1][0] = vr[1];
ADDRLP4 40+12
ADDRLP4 160+4
INDIRF4
ASGNF4
line 341
;341:	m[2][0] = vr[2];
ADDRLP4 40+24
ADDRLP4 160+8
INDIRF4
ASGNF4
line 343
;342:
;343:	m[0][1] = vup[0];
ADDRLP4 40+4
ADDRLP4 176
INDIRF4
ASGNF4
line 344
;344:	m[1][1] = vup[1];
ADDRLP4 40+12+4
ADDRLP4 176+4
INDIRF4
ASGNF4
line 345
;345:	m[2][1] = vup[2];
ADDRLP4 40+24+4
ADDRLP4 176+8
INDIRF4
ASGNF4
line 347
;346:
;347:	m[0][2] = vf[0];
ADDRLP4 40+8
ADDRLP4 148
INDIRF4
ASGNF4
line 348
;348:	m[1][2] = vf[1];
ADDRLP4 40+12+8
ADDRLP4 148+4
INDIRF4
ASGNF4
line 349
;349:	m[2][2] = vf[2];
ADDRLP4 40+24+8
ADDRLP4 148+8
INDIRF4
ASGNF4
line 351
;350:
;351:	memcpy( im, m, sizeof( im ) );
ADDRLP4 112
ARGP4
ADDRLP4 40
ARGP4
CNSTI4 36
ARGI4
ADDRGP4 memcpy
CALLP4
pop
line 353
;352:
;353:	im[0][1] = m[1][0];
ADDRLP4 112+4
ADDRLP4 40+12
INDIRF4
ASGNF4
line 354
;354:	im[0][2] = m[2][0];
ADDRLP4 112+8
ADDRLP4 40+24
INDIRF4
ASGNF4
line 355
;355:	im[1][0] = m[0][1];
ADDRLP4 112+12
ADDRLP4 40+4
INDIRF4
ASGNF4
line 356
;356:	im[1][2] = m[2][1];
ADDRLP4 112+12+8
ADDRLP4 40+24+4
INDIRF4
ASGNF4
line 357
;357:	im[2][0] = m[0][2];
ADDRLP4 112+24
ADDRLP4 40+8
INDIRF4
ASGNF4
line 358
;358:	im[2][1] = m[1][2];
ADDRLP4 112+24+4
ADDRLP4 40+12+8
INDIRF4
ASGNF4
line 360
;359:
;360:	memset( zrot, 0, sizeof( zrot ) );
ADDRLP4 76
ARGP4
CNSTI4 0
ARGI4
CNSTI4 36
ARGI4
ADDRGP4 memset
CALLP4
pop
line 361
;361:	zrot[0][0] = zrot[1][1] = zrot[2][2] = 1.0F;
ADDRLP4 224
CNSTF4 1065353216
ASGNF4
ADDRLP4 76+24+8
ADDRLP4 224
INDIRF4
ASGNF4
ADDRLP4 76+12+4
ADDRLP4 224
INDIRF4
ASGNF4
ADDRLP4 76
ADDRLP4 224
INDIRF4
ASGNF4
line 363
;362:
;363:	rad = DEG2RAD( degrees );
ADDRLP4 172
ADDRFP4 12
INDIRF4
CNSTF4 1016003125
MULF4
ASGNF4
line 364
;364:	zrot[0][0] = cos( rad );
ADDRLP4 172
INDIRF4
ARGF4
ADDRLP4 228
ADDRGP4 cos
CALLF4
ASGNF4
ADDRLP4 76
ADDRLP4 228
INDIRF4
ASGNF4
line 365
;365:	zrot[0][1] = sin( rad );
ADDRLP4 172
INDIRF4
ARGF4
ADDRLP4 232
ADDRGP4 sin
CALLF4
ASGNF4
ADDRLP4 76+4
ADDRLP4 232
INDIRF4
ASGNF4
line 366
;366:	zrot[1][0] = -sin( rad );
ADDRLP4 172
INDIRF4
ARGF4
ADDRLP4 236
ADDRGP4 sin
CALLF4
ASGNF4
ADDRLP4 76+12
ADDRLP4 236
INDIRF4
NEGF4
ASGNF4
line 367
;367:	zrot[1][1] = cos( rad );
ADDRLP4 172
INDIRF4
ARGF4
ADDRLP4 240
ADDRGP4 cos
CALLF4
ASGNF4
ADDRLP4 76+12+4
ADDRLP4 240
INDIRF4
ASGNF4
line 369
;368:
;369:	MatrixMultiply( m, zrot, tmpmat );
ADDRLP4 40
ARGP4
ADDRLP4 76
ARGP4
ADDRLP4 188
ARGP4
ADDRGP4 MatrixMultiply
CALLV
pop
line 370
;370:	MatrixMultiply( tmpmat, im, rot );
ADDRLP4 188
ARGP4
ADDRLP4 112
ARGP4
ADDRLP4 4
ARGP4
ADDRGP4 MatrixMultiply
CALLV
pop
line 372
;371:
;372:	for ( i = 0; i < 3; i++ ) {
ADDRLP4 0
CNSTI4 0
ASGNI4
LABELV $156
line 373
;373:		dst[i] = rot[i][0] * point[0] + rot[i][1] * point[1] + rot[i][2] * point[2];
ADDRLP4 248
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRFP4 0
INDIRP4
ADDP4
ADDRLP4 0
INDIRI4
CNSTI4 12
MULI4
ADDRLP4 4
ADDP4
INDIRF4
ADDRLP4 248
INDIRP4
INDIRF4
MULF4
ADDRLP4 0
INDIRI4
CNSTI4 12
MULI4
ADDRLP4 4+4
ADDP4
INDIRF4
ADDRLP4 248
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 0
INDIRI4
CNSTI4 12
MULI4
ADDRLP4 4+8
ADDP4
INDIRF4
ADDRLP4 248
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 374
;374:	}
LABELV $157
line 372
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 3
LTI4 $156
line 375
;375:}
LABELV $111
endproc RotatePointAroundVector 252 12
export RotateAroundDirection
proc RotateAroundDirection 20 16
line 382
;376:
;377:/*
;378:===============
;379:RotateAroundDirection
;380:===============
;381:*/
;382:void RotateAroundDirection( vec3_t axis[3], float yaw ) {
line 385
;383:
;384:	// create an arbitrary axis[1] 
;385:	PerpendicularVector( axis[1], axis[0] );
ADDRLP4 0
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 0
INDIRP4
CNSTI4 12
ADDP4
ARGP4
ADDRLP4 0
INDIRP4
ARGP4
ADDRGP4 PerpendicularVector
CALLV
pop
line 388
;386:
;387:	// rotate it around axis[0] by yaw
;388:	if ( yaw ) {
ADDRFP4 4
INDIRF4
CNSTF4 0
EQF4 $163
line 391
;389:		vec3_t	temp;
;390:
;391:		VectorCopy( axis[1], temp );
ADDRLP4 4
ADDRFP4 0
INDIRP4
CNSTI4 12
ADDP4
INDIRB
ASGNB 12
line 392
;392:		RotatePointAroundVector( axis[1], axis[0], temp, yaw );
ADDRLP4 16
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 16
INDIRP4
CNSTI4 12
ADDP4
ARGP4
ADDRLP4 16
INDIRP4
ARGP4
ADDRLP4 4
ARGP4
ADDRFP4 4
INDIRF4
ARGF4
ADDRGP4 RotatePointAroundVector
CALLV
pop
line 393
;393:	}
LABELV $163
line 396
;394:
;395:	// cross to get axis[2]
;396:	CrossProduct( axis[0], axis[1], axis[2] );
ADDRLP4 4
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 4
INDIRP4
ARGP4
ADDRLP4 4
INDIRP4
CNSTI4 12
ADDP4
ARGP4
ADDRLP4 4
INDIRP4
CNSTI4 24
ADDP4
ARGP4
ADDRGP4 CrossProduct
CALLV
pop
line 397
;397:}
LABELV $162
endproc RotateAroundDirection 20 16
export vectoangles
proc vectoangles 32 8
line 401
;398:
;399:
;400:
;401:void vectoangles( const vec3_t value1, vec3_t angles ) {
line 405
;402:	float	forward;
;403:	float	yaw, pitch;
;404:	
;405:	if ( value1[1] == 0 && value1[0] == 0 ) {
ADDRLP4 12
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 12
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
CNSTF4 0
NEF4 $166
ADDRLP4 12
INDIRP4
INDIRF4
CNSTF4 0
NEF4 $166
line 406
;406:		yaw = 0;
ADDRLP4 0
CNSTF4 0
ASGNF4
line 407
;407:		if ( value1[2] > 0 ) {
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
CNSTF4 0
LEF4 $168
line 408
;408:			pitch = 90;
ADDRLP4 4
CNSTF4 1119092736
ASGNF4
line 409
;409:		}
ADDRGP4 $167
JUMPV
LABELV $168
line 410
;410:		else {
line 411
;411:			pitch = 270;
ADDRLP4 4
CNSTF4 1132920832
ASGNF4
line 412
;412:		}
line 413
;413:	}
ADDRGP4 $167
JUMPV
LABELV $166
line 414
;414:	else {
line 415
;415:		if ( value1[0] ) {
ADDRFP4 0
INDIRP4
INDIRF4
CNSTF4 0
EQF4 $170
line 416
;416:			yaw = ( atan2 ( value1[1], value1[0] ) * 180 / M_PI );
ADDRLP4 16
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 16
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ARGF4
ADDRLP4 16
INDIRP4
INDIRF4
ARGF4
ADDRLP4 20
ADDRGP4 atan2
CALLF4
ASGNF4
ADDRLP4 0
ADDRLP4 20
INDIRF4
CNSTF4 1113927393
MULF4
ASGNF4
line 417
;417:		}
ADDRGP4 $171
JUMPV
LABELV $170
line 418
;418:		else if ( value1[1] > 0 ) {
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
CNSTF4 0
LEF4 $172
line 419
;419:			yaw = 90;
ADDRLP4 0
CNSTF4 1119092736
ASGNF4
line 420
;420:		}
ADDRGP4 $173
JUMPV
LABELV $172
line 421
;421:		else {
line 422
;422:			yaw = 270;
ADDRLP4 0
CNSTF4 1132920832
ASGNF4
line 423
;423:		}
LABELV $173
LABELV $171
line 424
;424:		if ( yaw < 0 ) {
ADDRLP4 0
INDIRF4
CNSTF4 0
GEF4 $174
line 425
;425:			yaw += 360;
ADDRLP4 0
ADDRLP4 0
INDIRF4
CNSTF4 1135869952
ADDF4
ASGNF4
line 426
;426:		}
LABELV $174
line 428
;427:
;428:		forward = sqrt ( value1[0]*value1[0] + value1[1]*value1[1] );
ADDRLP4 16
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 20
ADDRLP4 16
INDIRP4
INDIRF4
ASGNF4
ADDRLP4 20
INDIRF4
ADDRLP4 20
INDIRF4
MULF4
ADDRLP4 16
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 16
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ARGF4
ADDRLP4 24
ADDRGP4 sqrt
CALLF4
ASGNF4
ADDRLP4 8
ADDRLP4 24
INDIRF4
ASGNF4
line 429
;429:		pitch = ( atan2(value1[2], forward) * 180 / M_PI );
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ARGF4
ADDRLP4 8
INDIRF4
ARGF4
ADDRLP4 28
ADDRGP4 atan2
CALLF4
ASGNF4
ADDRLP4 4
ADDRLP4 28
INDIRF4
CNSTF4 1113927393
MULF4
ASGNF4
line 430
;430:		if ( pitch < 0 ) {
ADDRLP4 4
INDIRF4
CNSTF4 0
GEF4 $176
line 431
;431:			pitch += 360;
ADDRLP4 4
ADDRLP4 4
INDIRF4
CNSTF4 1135869952
ADDF4
ASGNF4
line 432
;432:		}
LABELV $176
line 433
;433:	}
LABELV $167
line 435
;434:
;435:	angles[PITCH] = -pitch;
ADDRFP4 4
INDIRP4
ADDRLP4 4
INDIRF4
NEGF4
ASGNF4
line 436
;436:	angles[YAW] = yaw;
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
ADDRLP4 0
INDIRF4
ASGNF4
line 437
;437:	angles[ROLL] = 0;
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
CNSTF4 0
ASGNF4
line 438
;438:}
LABELV $165
endproc vectoangles 32 8
export AnglesToAxis
proc AnglesToAxis 16 16
line 446
;439:
;440:
;441:/*
;442:=================
;443:AnglesToAxis
;444:=================
;445:*/
;446:void AnglesToAxis( const vec3_t angles, vec3_t axis[3] ) {
line 450
;447:	vec3_t	right;
;448:
;449:	// angle vectors returns "right" instead of "y axis"
;450:	AngleVectors( angles, axis[0], right, axis[2] );
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 12
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 12
INDIRP4
ARGP4
ADDRLP4 0
ARGP4
ADDRLP4 12
INDIRP4
CNSTI4 24
ADDP4
ARGP4
ADDRGP4 AngleVectors
CALLV
pop
line 451
;451:	VectorSubtract( vec3_origin, right, axis[1] );
ADDRFP4 4
INDIRP4
CNSTI4 12
ADDP4
ADDRGP4 vec3_origin
INDIRF4
ADDRLP4 0
INDIRF4
SUBF4
ASGNF4
ADDRFP4 4
INDIRP4
CNSTI4 16
ADDP4
ADDRGP4 vec3_origin+4
INDIRF4
ADDRLP4 0+4
INDIRF4
SUBF4
ASGNF4
ADDRFP4 4
INDIRP4
CNSTI4 20
ADDP4
ADDRGP4 vec3_origin+8
INDIRF4
ADDRLP4 0+8
INDIRF4
SUBF4
ASGNF4
line 452
;452:}
LABELV $178
endproc AnglesToAxis 16 16
export AxisClear
proc AxisClear 0 0
line 454
;453:
;454:void AxisClear( vec3_t axis[3] ) {
line 455
;455:	axis[0][0] = 1;
ADDRFP4 0
INDIRP4
CNSTF4 1065353216
ASGNF4
line 456
;456:	axis[0][1] = 0;
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
CNSTF4 0
ASGNF4
line 457
;457:	axis[0][2] = 0;
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
CNSTF4 0
ASGNF4
line 458
;458:	axis[1][0] = 0;
ADDRFP4 0
INDIRP4
CNSTI4 12
ADDP4
CNSTF4 0
ASGNF4
line 459
;459:	axis[1][1] = 1;
ADDRFP4 0
INDIRP4
CNSTI4 16
ADDP4
CNSTF4 1065353216
ASGNF4
line 460
;460:	axis[1][2] = 0;
ADDRFP4 0
INDIRP4
CNSTI4 20
ADDP4
CNSTF4 0
ASGNF4
line 461
;461:	axis[2][0] = 0;
ADDRFP4 0
INDIRP4
CNSTI4 24
ADDP4
CNSTF4 0
ASGNF4
line 462
;462:	axis[2][1] = 0;
ADDRFP4 0
INDIRP4
CNSTI4 28
ADDP4
CNSTF4 0
ASGNF4
line 463
;463:	axis[2][2] = 1;
ADDRFP4 0
INDIRP4
CNSTI4 32
ADDP4
CNSTF4 1065353216
ASGNF4
line 464
;464:}
LABELV $183
endproc AxisClear 0 0
export AxisCopy
proc AxisCopy 0 0
line 466
;465:
;466:void AxisCopy( vec3_t in[3], vec3_t out[3] ) {
line 467
;467:	VectorCopy( in[0], out[0] );
ADDRFP4 4
INDIRP4
ADDRFP4 0
INDIRP4
INDIRB
ASGNB 12
line 468
;468:	VectorCopy( in[1], out[1] );
ADDRFP4 4
INDIRP4
CNSTI4 12
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 12
ADDP4
INDIRB
ASGNB 12
line 469
;469:	VectorCopy( in[2], out[2] );
ADDRFP4 4
INDIRP4
CNSTI4 24
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 24
ADDP4
INDIRB
ASGNB 12
line 470
;470:}
LABELV $184
endproc AxisCopy 0 0
export ProjectPointOnPlane
proc ProjectPointOnPlane 40 4
line 473
;471:
;472:void ProjectPointOnPlane( vec3_t dst, const vec3_t p, const vec3_t normal )
;473:{
line 478
;474:	float d;
;475:	vec3_t n;
;476:	float inv_denom;
;477:
;478:	inv_denom =  DotProduct( normal, normal );
ADDRLP4 20
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 24
ADDRLP4 20
INDIRP4
INDIRF4
ASGNF4
ADDRLP4 0
ADDRLP4 24
INDIRF4
ADDRLP4 24
INDIRF4
MULF4
ADDRLP4 20
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 20
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 20
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 20
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 479
;479:	if ( Q_fabs( inv_denom ) == 0.0f ) {
ADDRLP4 0
INDIRF4
ARGF4
ADDRLP4 28
ADDRGP4 Q_fabs
CALLF4
ASGNF4
ADDRLP4 28
INDIRF4
CNSTF4 0
NEF4 $186
line 480
;480:		VectorCopy( p, dst );
ADDRFP4 0
INDIRP4
ADDRFP4 4
INDIRP4
INDIRB
ASGNB 12
line 481
;481:		return;
ADDRGP4 $185
JUMPV
LABELV $186
line 486
;482:	}
;483:#ifndef Q3_VM
;484:	//assert( Q_fabs(inv_denom) != 0.0f ); // zero vectors get here
;485:#endif
;486:	inv_denom = 1.0f / inv_denom;
ADDRLP4 0
CNSTF4 1065353216
ADDRLP4 0
INDIRF4
DIVF4
ASGNF4
line 488
;487:
;488:	d = DotProduct( normal, p ) * inv_denom;
ADDRLP4 32
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 36
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 16
ADDRLP4 32
INDIRP4
INDIRF4
ADDRLP4 36
INDIRP4
INDIRF4
MULF4
ADDRLP4 32
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 36
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 32
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 36
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 0
INDIRF4
MULF4
ASGNF4
line 490
;489:
;490:	n[0] = normal[0] * inv_denom;
ADDRLP4 4
ADDRFP4 8
INDIRP4
INDIRF4
ADDRLP4 0
INDIRF4
MULF4
ASGNF4
line 491
;491:	n[1] = normal[1] * inv_denom;
ADDRLP4 4+4
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 0
INDIRF4
MULF4
ASGNF4
line 492
;492:	n[2] = normal[2] * inv_denom;
ADDRLP4 4+8
ADDRFP4 8
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 0
INDIRF4
MULF4
ASGNF4
line 494
;493:
;494:	dst[0] = p[0] - d * n[0];
ADDRFP4 0
INDIRP4
ADDRFP4 4
INDIRP4
INDIRF4
ADDRLP4 16
INDIRF4
ADDRLP4 4
INDIRF4
MULF4
SUBF4
ASGNF4
line 495
;495:	dst[1] = p[1] - d * n[1];
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 16
INDIRF4
ADDRLP4 4+4
INDIRF4
MULF4
SUBF4
ASGNF4
line 496
;496:	dst[2] = p[2] - d * n[2];
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 16
INDIRF4
ADDRLP4 4+8
INDIRF4
MULF4
SUBF4
ASGNF4
line 497
;497:}
LABELV $185
endproc ProjectPointOnPlane 40 4
export MakeNormalVectors
proc MakeNormalVectors 24 12
line 507
;498:
;499:/*
;500:================
;501:MakeNormalVectors
;502:
;503:Given a normalized forward vector, create two
;504:other perpendicular vectors
;505:================
;506:*/
;507:void MakeNormalVectors( const vec3_t forward, vec3_t right, vec3_t up) {
line 512
;508:	float		d;
;509:
;510:	// this rotate and negate guarantees a vector
;511:	// not colinear with the original
;512:	right[1] = -forward[0];
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
ADDRFP4 0
INDIRP4
INDIRF4
NEGF4
ASGNF4
line 513
;513:	right[2] = forward[1];
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ASGNF4
line 514
;514:	right[0] = forward[2];
ADDRFP4 4
INDIRP4
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ASGNF4
line 516
;515:
;516:	d = DotProduct (right, forward);
ADDRLP4 4
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 8
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 0
ADDRLP4 4
INDIRP4
INDIRF4
ADDRLP4 8
INDIRP4
INDIRF4
MULF4
ADDRLP4 4
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 4
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 8
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 517
;517:	VectorMA (right, -d, forward, right);
ADDRLP4 12
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 12
INDIRP4
ADDRLP4 12
INDIRP4
INDIRF4
ADDRFP4 0
INDIRP4
INDIRF4
ADDRLP4 0
INDIRF4
NEGF4
MULF4
ADDF4
ASGNF4
ADDRLP4 16
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 16
INDIRP4
CNSTI4 4
ADDP4
ADDRLP4 16
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 0
INDIRF4
NEGF4
MULF4
ADDF4
ASGNF4
ADDRLP4 20
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 20
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 20
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 0
INDIRF4
NEGF4
MULF4
ADDF4
ASGNF4
line 518
;518:	VectorNormalize (right);
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 VectorNormalize
CALLF4
pop
line 519
;519:	CrossProduct (right, forward, up);
ADDRFP4 4
INDIRP4
ARGP4
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 8
INDIRP4
ARGP4
ADDRGP4 CrossProduct
CALLV
pop
line 520
;520:}
LABELV $192
endproc MakeNormalVectors 24 12
export VectorRotate
proc VectorRotate 24 0
line 524
;521:
;522:
;523:void VectorRotate( vec3_t in, vec3_t matrix[3], vec3_t out )
;524:{
line 525
;525:	out[0] = DotProduct( in, matrix[0] );
ADDRLP4 0
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 4
ADDRFP4 4
INDIRP4
ASGNP4
ADDRFP4 8
INDIRP4
ADDRLP4 0
INDIRP4
INDIRF4
ADDRLP4 4
INDIRP4
INDIRF4
MULF4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 4
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 4
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 526
;526:	out[1] = DotProduct( in, matrix[1] );
ADDRLP4 8
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 12
ADDRFP4 4
INDIRP4
ASGNP4
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
ADDRLP4 8
INDIRP4
INDIRF4
ADDRLP4 12
INDIRP4
CNSTI4 12
ADDP4
INDIRF4
MULF4
ADDRLP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 12
INDIRP4
CNSTI4 16
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 8
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 12
INDIRP4
CNSTI4 20
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 527
;527:	out[2] = DotProduct( in, matrix[2] );
ADDRLP4 16
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 20
ADDRFP4 4
INDIRP4
ASGNP4
ADDRFP4 8
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 16
INDIRP4
INDIRF4
ADDRLP4 20
INDIRP4
CNSTI4 24
ADDP4
INDIRF4
MULF4
ADDRLP4 16
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 20
INDIRP4
CNSTI4 28
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 16
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 20
INDIRP4
CNSTI4 32
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 528
;528:}
LABELV $193
endproc VectorRotate 24 0
export Q_rsqrt
proc Q_rsqrt 20 0
line 537
;529:
;530://============================================================================
;531:
;532:#if !idppc
;533:/*
;534:** float q_rsqrt( float number )
;535:*/
;536:float Q_rsqrt( float number )
;537:{
line 540
;538:	long i;
;539:	float x2, y;
;540:	const float threehalfs = 1.5F;
ADDRLP4 12
CNSTF4 1069547520
ASGNF4
line 542
;541:
;542:	x2 = number * 0.5F;
ADDRLP4 8
ADDRFP4 0
INDIRF4
CNSTF4 1056964608
MULF4
ASGNF4
line 543
;543:	y  = number;
ADDRLP4 0
ADDRFP4 0
INDIRF4
ASGNF4
line 544
;544:	i  = * ( long * ) &y;						// evil floating point bit level hacking
ADDRLP4 4
ADDRLP4 0
INDIRI4
ASGNI4
line 545
;545:	i  = 0x5f3759df - ( i >> 1 );               // what the fuck?
ADDRLP4 4
CNSTI4 1597463007
ADDRLP4 4
INDIRI4
CNSTI4 1
RSHI4
SUBI4
ASGNI4
line 546
;546:	y  = * ( float * ) &i;
ADDRLP4 0
ADDRLP4 4
INDIRF4
ASGNF4
line 547
;547:	y  = y * ( threehalfs - ( x2 * y * y ) );   // 1st iteration
ADDRLP4 16
ADDRLP4 0
INDIRF4
ASGNF4
ADDRLP4 0
ADDRLP4 16
INDIRF4
ADDRLP4 12
INDIRF4
ADDRLP4 8
INDIRF4
ADDRLP4 16
INDIRF4
MULF4
ADDRLP4 16
INDIRF4
MULF4
SUBF4
MULF4
ASGNF4
line 550
;548://	y  = y * ( threehalfs - ( x2 * y * y ) );   // 2nd iteration, this can be removed
;549:
;550:	return y;
ADDRLP4 0
INDIRF4
RETF4
LABELV $194
endproc Q_rsqrt 20 0
export Q_fabs
proc Q_fabs 4 0
line 553
;551:}
;552:
;553:float Q_fabs( float f ) {
line 554
;554:	int tmp = * ( int * ) &f;
ADDRLP4 0
ADDRFP4 0
INDIRI4
ASGNI4
line 555
;555:	tmp &= 0x7FFFFFFF;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 2147483647
BANDI4
ASGNI4
line 556
;556:	return * ( float * ) &tmp;
ADDRLP4 0
INDIRF4
RETF4
LABELV $195
endproc Q_fabs 4 0
export LerpAngle
proc LerpAngle 8 0
line 568
;557:}
;558:#endif
;559:
;560://============================================================
;561:
;562:/*
;563:===============
;564:LerpAngle
;565:
;566:===============
;567:*/
;568:float LerpAngle (float from, float to, float frac) {
line 571
;569:	float	a;
;570:
;571:	if ( to - from > 180 ) {
ADDRFP4 4
INDIRF4
ADDRFP4 0
INDIRF4
SUBF4
CNSTF4 1127481344
LEF4 $197
line 572
;572:		to -= 360;
ADDRFP4 4
ADDRFP4 4
INDIRF4
CNSTF4 1135869952
SUBF4
ASGNF4
line 573
;573:	}
LABELV $197
line 574
;574:	if ( to - from < -180 ) {
ADDRFP4 4
INDIRF4
ADDRFP4 0
INDIRF4
SUBF4
CNSTF4 3274964992
GEF4 $199
line 575
;575:		to += 360;
ADDRFP4 4
ADDRFP4 4
INDIRF4
CNSTF4 1135869952
ADDF4
ASGNF4
line 576
;576:	}
LABELV $199
line 577
;577:	a = from + frac * (to - from);
ADDRLP4 4
ADDRFP4 0
INDIRF4
ASGNF4
ADDRLP4 0
ADDRLP4 4
INDIRF4
ADDRFP4 8
INDIRF4
ADDRFP4 4
INDIRF4
ADDRLP4 4
INDIRF4
SUBF4
MULF4
ADDF4
ASGNF4
line 579
;578:
;579:	return a;
ADDRLP4 0
INDIRF4
RETF4
LABELV $196
endproc LerpAngle 8 0
export AngleSubtract
proc AngleSubtract 4 0
line 590
;580:}
;581:
;582:
;583:/*
;584:=================
;585:AngleSubtract
;586:
;587:Always returns a value from -180 to 180
;588:=================
;589:*/
;590:float	AngleSubtract( float a1, float a2 ) {
line 593
;591:	float	a;
;592:
;593:	a = a1 - a2;
ADDRLP4 0
ADDRFP4 0
INDIRF4
ADDRFP4 4
INDIRF4
SUBF4
ASGNF4
ADDRGP4 $203
JUMPV
LABELV $202
line 594
;594:	while ( a > 180 ) {
line 595
;595:		a -= 360;
ADDRLP4 0
ADDRLP4 0
INDIRF4
CNSTF4 1135869952
SUBF4
ASGNF4
line 596
;596:	}
LABELV $203
line 594
ADDRLP4 0
INDIRF4
CNSTF4 1127481344
GTF4 $202
ADDRGP4 $206
JUMPV
LABELV $205
line 597
;597:	while ( a < -180 ) {
line 598
;598:		a += 360;
ADDRLP4 0
ADDRLP4 0
INDIRF4
CNSTF4 1135869952
ADDF4
ASGNF4
line 599
;599:	}
LABELV $206
line 597
ADDRLP4 0
INDIRF4
CNSTF4 3274964992
LTF4 $205
line 600
;600:	return a;
ADDRLP4 0
INDIRF4
RETF4
LABELV $201
endproc AngleSubtract 4 0
export AnglesSubtract
proc AnglesSubtract 12 8
line 604
;601:}
;602:
;603:
;604:void AnglesSubtract( vec3_t v1, vec3_t v2, vec3_t v3 ) {
line 605
;605:	v3[0] = AngleSubtract( v1[0], v2[0] );
ADDRFP4 0
INDIRP4
INDIRF4
ARGF4
ADDRFP4 4
INDIRP4
INDIRF4
ARGF4
ADDRLP4 0
ADDRGP4 AngleSubtract
CALLF4
ASGNF4
ADDRFP4 8
INDIRP4
ADDRLP4 0
INDIRF4
ASGNF4
line 606
;606:	v3[1] = AngleSubtract( v1[1], v2[1] );
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ARGF4
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ARGF4
ADDRLP4 4
ADDRGP4 AngleSubtract
CALLF4
ASGNF4
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
ADDRLP4 4
INDIRF4
ASGNF4
line 607
;607:	v3[2] = AngleSubtract( v1[2], v2[2] );
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ARGF4
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ARGF4
ADDRLP4 8
ADDRGP4 AngleSubtract
CALLF4
ASGNF4
ADDRFP4 8
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 8
INDIRF4
ASGNF4
line 608
;608:}
LABELV $208
endproc AnglesSubtract 12 8
export AngleMod
proc AngleMod 0 0
line 611
;609:
;610:
;611:float	AngleMod(float a) {
line 612
;612:	a = (360.0/65536) * ((int)(a*(65536/360.0)) & 65535);
ADDRFP4 0
ADDRFP4 0
INDIRF4
CNSTF4 1127615329
MULF4
CVFI4 4
CNSTI4 65535
BANDI4
CVIF4 4
CNSTF4 1001652224
MULF4
ASGNF4
line 613
;613:	return a;
ADDRFP4 0
INDIRF4
RETF4
LABELV $209
endproc AngleMod 0 0
export AngleNormalize360
proc AngleNormalize360 0 0
line 624
;614:}
;615:
;616:
;617:/*
;618:=================
;619:AngleNormalize360
;620:
;621:returns angle normalized to the range [0 <= angle < 360]
;622:=================
;623:*/
;624:float AngleNormalize360 ( float angle ) {
line 625
;625:	return (360.0 / 65536) * ((int)(angle * (65536 / 360.0)) & 65535);
ADDRFP4 0
INDIRF4
CNSTF4 1127615329
MULF4
CVFI4 4
CNSTI4 65535
BANDI4
CVIF4 4
CNSTF4 1001652224
MULF4
RETF4
LABELV $210
endproc AngleNormalize360 0 0
export AngleNormalize180
proc AngleNormalize180 4 4
line 636
;626:}
;627:
;628:
;629:/*
;630:=================
;631:AngleNormalize180
;632:
;633:returns angle normalized to the range [-180 < angle <= 180]
;634:=================
;635:*/
;636:float AngleNormalize180 ( float angle ) {
line 637
;637:	angle = AngleNormalize360( angle );
ADDRFP4 0
INDIRF4
ARGF4
ADDRLP4 0
ADDRGP4 AngleNormalize360
CALLF4
ASGNF4
ADDRFP4 0
ADDRLP4 0
INDIRF4
ASGNF4
line 638
;638:	if ( angle > 180.0 ) {
ADDRFP4 0
INDIRF4
CNSTF4 1127481344
LEF4 $212
line 639
;639:		angle -= 360.0;
ADDRFP4 0
ADDRFP4 0
INDIRF4
CNSTF4 1135869952
SUBF4
ASGNF4
line 640
;640:	}
LABELV $212
line 641
;641:	return angle;
ADDRFP4 0
INDIRF4
RETF4
LABELV $211
endproc AngleNormalize180 4 4
export AngleDelta
proc AngleDelta 4 4
line 652
;642:}
;643:
;644:
;645:/*
;646:=================
;647:AngleDelta
;648:
;649:returns the normalized delta from angle1 to angle2
;650:=================
;651:*/
;652:float AngleDelta ( float angle1, float angle2 ) {
line 653
;653:	return AngleNormalize180( angle1 - angle2 );
ADDRFP4 0
INDIRF4
ADDRFP4 4
INDIRF4
SUBF4
ARGF4
ADDRLP4 0
ADDRGP4 AngleNormalize180
CALLF4
ASGNF4
ADDRLP4 0
INDIRF4
RETF4
LABELV $214
endproc AngleDelta 4 4
export SetPlaneSignbits
proc SetPlaneSignbits 8 0
line 665
;654:}
;655:
;656:
;657://============================================================
;658:
;659:
;660:/*
;661:=================
;662:SetPlaneSignbits
;663:=================
;664:*/
;665:void SetPlaneSignbits (cplane_t *out) {
line 669
;666:	int	bits, j;
;667:
;668:	// for fast box on planeside test
;669:	bits = 0;
ADDRLP4 4
CNSTI4 0
ASGNI4
line 670
;670:	for (j=0 ; j<3 ; j++) {
ADDRLP4 0
CNSTI4 0
ASGNI4
LABELV $216
line 671
;671:		if (out->normal[j] < 0) {
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRFP4 0
INDIRP4
ADDP4
INDIRF4
CNSTF4 0
GEF4 $220
line 672
;672:			bits |= 1<<j;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDRLP4 0
INDIRI4
LSHI4
BORI4
ASGNI4
line 673
;673:		}
LABELV $220
line 674
;674:	}
LABELV $217
line 670
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 3
LTI4 $216
line 675
;675:	out->signbits = bits;
ADDRFP4 0
INDIRP4
CNSTI4 17
ADDP4
ADDRLP4 4
INDIRI4
CVIU4 4
CVUU1 4
ASGNU1
line 676
;676:}
LABELV $215
endproc SetPlaneSignbits 8 0
export BoxOnPlaneSide
proc BoxOnPlaneSide 152 0
line 725
;677:
;678:
;679:/*
;680:==================
;681:BoxOnPlaneSide
;682:
;683:Returns 1, 2, or 1 + 2
;684:
;685:// this is the slow, general version
;686:int BoxOnPlaneSide2 (vec3_t emins, vec3_t emaxs, struct cplane_s *p)
;687:{
;688:	int		i;
;689:	float	dist1, dist2;
;690:	int		sides;
;691:	vec3_t	corners[2];
;692:
;693:	for (i=0 ; i<3 ; i++)
;694:	{
;695:		if (p->normal[i] < 0)
;696:		{
;697:			corners[0][i] = emins[i];
;698:			corners[1][i] = emaxs[i];
;699:		}
;700:		else
;701:		{
;702:			corners[1][i] = emins[i];
;703:			corners[0][i] = emaxs[i];
;704:		}
;705:	}
;706:	dist1 = DotProduct (p->normal, corners[0]) - p->dist;
;707:	dist2 = DotProduct (p->normal, corners[1]) - p->dist;
;708:	sides = 0;
;709:	if (dist1 >= 0)
;710:		sides = 1;
;711:	if (dist2 < 0)
;712:		sides |= 2;
;713:
;714:	return sides;
;715:}
;716:
;717:==================
;718:*/
;719:
;720:#if !( (defined __linux__ || __FreeBSD__) && (defined __i386__) && (!defined C_ONLY)) // rb010123
;721:
;722:#if defined __LCC__ || defined C_ONLY || !id386 || defined __VECTORC
;723:
;724:int BoxOnPlaneSide (vec3_t emins, vec3_t emaxs, struct cplane_s *p)
;725:{
line 730
;726:	float	dist1, dist2;
;727:	int		sides;
;728:
;729:// fast axial cases
;730:	if (p->type < 3)
ADDRFP4 8
INDIRP4
CNSTI4 16
ADDP4
INDIRU1
CVUI4 1
CNSTI4 3
GEI4 $223
line 731
;731:	{
line 732
;732:		if (p->dist <= emins[p->type])
ADDRLP4 12
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 12
INDIRP4
CNSTI4 12
ADDP4
INDIRF4
ADDRLP4 12
INDIRP4
CNSTI4 16
ADDP4
INDIRU1
CVUI4 1
CNSTI4 2
LSHI4
ADDRFP4 0
INDIRP4
ADDP4
INDIRF4
GTF4 $225
line 733
;733:			return 1;
CNSTI4 1
RETI4
ADDRGP4 $222
JUMPV
LABELV $225
line 734
;734:		if (p->dist >= emaxs[p->type])
ADDRLP4 16
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 16
INDIRP4
CNSTI4 12
ADDP4
INDIRF4
ADDRLP4 16
INDIRP4
CNSTI4 16
ADDP4
INDIRU1
CVUI4 1
CNSTI4 2
LSHI4
ADDRFP4 4
INDIRP4
ADDP4
INDIRF4
LTF4 $227
line 735
;735:			return 2;
CNSTI4 2
RETI4
ADDRGP4 $222
JUMPV
LABELV $227
line 736
;736:		return 3;
CNSTI4 3
RETI4
ADDRGP4 $222
JUMPV
LABELV $223
line 740
;737:	}
;738:
;739:// general case
;740:	switch (p->signbits)
ADDRLP4 12
ADDRFP4 8
INDIRP4
CNSTI4 17
ADDP4
INDIRU1
CVUI4 1
ASGNI4
ADDRLP4 12
INDIRI4
CNSTI4 0
LTI4 $229
ADDRLP4 12
INDIRI4
CNSTI4 7
GTI4 $229
ADDRLP4 12
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 $240
ADDP4
INDIRP4
JUMPV
data
align 4
LABELV $240
address $232
address $233
address $234
address $235
address $236
address $237
address $238
address $239
code
line 741
;741:	{
LABELV $232
line 743
;742:	case 0:
;743:		dist1 = p->normal[0]*emaxs[0] + p->normal[1]*emaxs[1] + p->normal[2]*emaxs[2];
ADDRLP4 20
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 24
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 4
ADDRLP4 20
INDIRP4
INDIRF4
ADDRLP4 24
INDIRP4
INDIRF4
MULF4
ADDRLP4 20
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 24
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 20
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 24
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 744
;744:		dist2 = p->normal[0]*emins[0] + p->normal[1]*emins[1] + p->normal[2]*emins[2];
ADDRLP4 28
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 32
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 8
ADDRLP4 28
INDIRP4
INDIRF4
ADDRLP4 32
INDIRP4
INDIRF4
MULF4
ADDRLP4 28
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 32
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 28
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 32
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 745
;745:		break;
ADDRGP4 $230
JUMPV
LABELV $233
line 747
;746:	case 1:
;747:		dist1 = p->normal[0]*emins[0] + p->normal[1]*emaxs[1] + p->normal[2]*emaxs[2];
ADDRLP4 36
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 40
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 4
ADDRLP4 36
INDIRP4
INDIRF4
ADDRFP4 0
INDIRP4
INDIRF4
MULF4
ADDRLP4 36
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 40
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 36
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 40
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 748
;748:		dist2 = p->normal[0]*emaxs[0] + p->normal[1]*emins[1] + p->normal[2]*emins[2];
ADDRLP4 44
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 48
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 8
ADDRLP4 44
INDIRP4
INDIRF4
ADDRFP4 4
INDIRP4
INDIRF4
MULF4
ADDRLP4 44
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 48
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 44
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 48
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 749
;749:		break;
ADDRGP4 $230
JUMPV
LABELV $234
line 751
;750:	case 2:
;751:		dist1 = p->normal[0]*emaxs[0] + p->normal[1]*emins[1] + p->normal[2]*emaxs[2];
ADDRLP4 52
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 56
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 4
ADDRLP4 52
INDIRP4
INDIRF4
ADDRLP4 56
INDIRP4
INDIRF4
MULF4
ADDRLP4 52
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 52
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 56
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 752
;752:		dist2 = p->normal[0]*emins[0] + p->normal[1]*emaxs[1] + p->normal[2]*emins[2];
ADDRLP4 60
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 64
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 8
ADDRLP4 60
INDIRP4
INDIRF4
ADDRLP4 64
INDIRP4
INDIRF4
MULF4
ADDRLP4 60
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 60
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 64
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 753
;753:		break;
ADDRGP4 $230
JUMPV
LABELV $235
line 755
;754:	case 3:
;755:		dist1 = p->normal[0]*emins[0] + p->normal[1]*emins[1] + p->normal[2]*emaxs[2];
ADDRLP4 68
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 72
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 4
ADDRLP4 68
INDIRP4
INDIRF4
ADDRLP4 72
INDIRP4
INDIRF4
MULF4
ADDRLP4 68
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 72
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 68
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 756
;756:		dist2 = p->normal[0]*emaxs[0] + p->normal[1]*emaxs[1] + p->normal[2]*emins[2];
ADDRLP4 76
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 80
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 8
ADDRLP4 76
INDIRP4
INDIRF4
ADDRLP4 80
INDIRP4
INDIRF4
MULF4
ADDRLP4 76
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 80
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 76
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 757
;757:		break;
ADDRGP4 $230
JUMPV
LABELV $236
line 759
;758:	case 4:
;759:		dist1 = p->normal[0]*emaxs[0] + p->normal[1]*emaxs[1] + p->normal[2]*emins[2];
ADDRLP4 84
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 88
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 4
ADDRLP4 84
INDIRP4
INDIRF4
ADDRLP4 88
INDIRP4
INDIRF4
MULF4
ADDRLP4 84
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 88
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 84
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 760
;760:		dist2 = p->normal[0]*emins[0] + p->normal[1]*emins[1] + p->normal[2]*emaxs[2];
ADDRLP4 92
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 96
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 8
ADDRLP4 92
INDIRP4
INDIRF4
ADDRLP4 96
INDIRP4
INDIRF4
MULF4
ADDRLP4 92
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 96
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 92
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 761
;761:		break;
ADDRGP4 $230
JUMPV
LABELV $237
line 763
;762:	case 5:
;763:		dist1 = p->normal[0]*emins[0] + p->normal[1]*emaxs[1] + p->normal[2]*emins[2];
ADDRLP4 100
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 104
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 4
ADDRLP4 100
INDIRP4
INDIRF4
ADDRLP4 104
INDIRP4
INDIRF4
MULF4
ADDRLP4 100
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 100
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 104
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 764
;764:		dist2 = p->normal[0]*emaxs[0] + p->normal[1]*emins[1] + p->normal[2]*emaxs[2];
ADDRLP4 108
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 112
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 8
ADDRLP4 108
INDIRP4
INDIRF4
ADDRLP4 112
INDIRP4
INDIRF4
MULF4
ADDRLP4 108
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 108
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 112
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 765
;765:		break;
ADDRGP4 $230
JUMPV
LABELV $238
line 767
;766:	case 6:
;767:		dist1 = p->normal[0]*emaxs[0] + p->normal[1]*emins[1] + p->normal[2]*emins[2];
ADDRLP4 116
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 120
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 4
ADDRLP4 116
INDIRP4
INDIRF4
ADDRFP4 4
INDIRP4
INDIRF4
MULF4
ADDRLP4 116
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 120
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 116
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 120
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 768
;768:		dist2 = p->normal[0]*emins[0] + p->normal[1]*emaxs[1] + p->normal[2]*emaxs[2];
ADDRLP4 124
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 128
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 8
ADDRLP4 124
INDIRP4
INDIRF4
ADDRFP4 0
INDIRP4
INDIRF4
MULF4
ADDRLP4 124
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 128
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 124
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 128
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 769
;769:		break;
ADDRGP4 $230
JUMPV
LABELV $239
line 771
;770:	case 7:
;771:		dist1 = p->normal[0]*emins[0] + p->normal[1]*emins[1] + p->normal[2]*emins[2];
ADDRLP4 132
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 136
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 4
ADDRLP4 132
INDIRP4
INDIRF4
ADDRLP4 136
INDIRP4
INDIRF4
MULF4
ADDRLP4 132
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 136
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 132
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 136
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 772
;772:		dist2 = p->normal[0]*emaxs[0] + p->normal[1]*emaxs[1] + p->normal[2]*emaxs[2];
ADDRLP4 140
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 144
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 8
ADDRLP4 140
INDIRP4
INDIRF4
ADDRLP4 144
INDIRP4
INDIRF4
MULF4
ADDRLP4 140
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 144
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 140
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 144
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 773
;773:		break;
ADDRGP4 $230
JUMPV
LABELV $229
line 775
;774:	default:
;775:		dist1 = dist2 = 0;		// shut up compiler
ADDRLP4 148
CNSTF4 0
ASGNF4
ADDRLP4 8
ADDRLP4 148
INDIRF4
ASGNF4
ADDRLP4 4
ADDRLP4 148
INDIRF4
ASGNF4
line 776
;776:		break;
LABELV $230
line 779
;777:	}
;778:
;779:	sides = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
line 780
;780:	if (dist1 >= p->dist)
ADDRLP4 4
INDIRF4
ADDRFP4 8
INDIRP4
CNSTI4 12
ADDP4
INDIRF4
LTF4 $241
line 781
;781:		sides = 1;
ADDRLP4 0
CNSTI4 1
ASGNI4
LABELV $241
line 782
;782:	if (dist2 < p->dist)
ADDRLP4 8
INDIRF4
ADDRFP4 8
INDIRP4
CNSTI4 12
ADDP4
INDIRF4
GEF4 $243
line 783
;783:		sides |= 2;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 2
BORI4
ASGNI4
LABELV $243
line 785
;784:
;785:	return sides;
ADDRLP4 0
INDIRI4
RETI4
LABELV $222
endproc BoxOnPlaneSide 152 0
export RadiusFromBounds
proc RadiusFromBounds 36 4
line 1029
;786:}
;787:#else
;788:#pragma warning( disable: 4035 )
;789:
;790:__declspec( naked ) int BoxOnPlaneSide (vec3_t emins, vec3_t emaxs, struct cplane_s *p)
;791:{
;792:	static int bops_initialized;
;793:	static int Ljmptab[8];
;794:
;795:	__asm {
;796:
;797:		push ebx
;798:			
;799:		cmp bops_initialized, 1
;800:		je  initialized
;801:		mov bops_initialized, 1
;802:		
;803:		mov Ljmptab[0*4], offset Lcase0
;804:		mov Ljmptab[1*4], offset Lcase1
;805:		mov Ljmptab[2*4], offset Lcase2
;806:		mov Ljmptab[3*4], offset Lcase3
;807:		mov Ljmptab[4*4], offset Lcase4
;808:		mov Ljmptab[5*4], offset Lcase5
;809:		mov Ljmptab[6*4], offset Lcase6
;810:		mov Ljmptab[7*4], offset Lcase7
;811:			
;812:initialized:
;813:
;814:		mov edx,dword ptr[4+12+esp]
;815:		mov ecx,dword ptr[4+4+esp]
;816:		xor eax,eax
;817:		mov ebx,dword ptr[4+8+esp]
;818:		mov al,byte ptr[17+edx]
;819:		cmp al,8
;820:		jge Lerror
;821:		fld dword ptr[0+edx]
;822:		fld st(0)
;823:		jmp dword ptr[Ljmptab+eax*4]
;824:Lcase0:
;825:		fmul dword ptr[ebx]
;826:		fld dword ptr[0+4+edx]
;827:		fxch st(2)
;828:		fmul dword ptr[ecx]
;829:		fxch st(2)
;830:		fld st(0)
;831:		fmul dword ptr[4+ebx]
;832:		fld dword ptr[0+8+edx]
;833:		fxch st(2)
;834:		fmul dword ptr[4+ecx]
;835:		fxch st(2)
;836:		fld st(0)
;837:		fmul dword ptr[8+ebx]
;838:		fxch st(5)
;839:		faddp st(3),st(0)
;840:		fmul dword ptr[8+ecx]
;841:		fxch st(1)
;842:		faddp st(3),st(0)
;843:		fxch st(3)
;844:		faddp st(2),st(0)
;845:		jmp LSetSides
;846:Lcase1:
;847:		fmul dword ptr[ecx]
;848:		fld dword ptr[0+4+edx]
;849:		fxch st(2)
;850:		fmul dword ptr[ebx]
;851:		fxch st(2)
;852:		fld st(0)
;853:		fmul dword ptr[4+ebx]
;854:		fld dword ptr[0+8+edx]
;855:		fxch st(2)
;856:		fmul dword ptr[4+ecx]
;857:		fxch st(2)
;858:		fld st(0)
;859:		fmul dword ptr[8+ebx]
;860:		fxch st(5)
;861:		faddp st(3),st(0)
;862:		fmul dword ptr[8+ecx]
;863:		fxch st(1)
;864:		faddp st(3),st(0)
;865:		fxch st(3)
;866:		faddp st(2),st(0)
;867:		jmp LSetSides
;868:Lcase2:
;869:		fmul dword ptr[ebx]
;870:		fld dword ptr[0+4+edx]
;871:		fxch st(2)
;872:		fmul dword ptr[ecx]
;873:		fxch st(2)
;874:		fld st(0)
;875:		fmul dword ptr[4+ecx]
;876:		fld dword ptr[0+8+edx]
;877:		fxch st(2)
;878:		fmul dword ptr[4+ebx]
;879:		fxch st(2)
;880:		fld st(0)
;881:		fmul dword ptr[8+ebx]
;882:		fxch st(5)
;883:		faddp st(3),st(0)
;884:		fmul dword ptr[8+ecx]
;885:		fxch st(1)
;886:		faddp st(3),st(0)
;887:		fxch st(3)
;888:		faddp st(2),st(0)
;889:		jmp LSetSides
;890:Lcase3:
;891:		fmul dword ptr[ecx]
;892:		fld dword ptr[0+4+edx]
;893:		fxch st(2)
;894:		fmul dword ptr[ebx]
;895:		fxch st(2)
;896:		fld st(0)
;897:		fmul dword ptr[4+ecx]
;898:		fld dword ptr[0+8+edx]
;899:		fxch st(2)
;900:		fmul dword ptr[4+ebx]
;901:		fxch st(2)
;902:		fld st(0)
;903:		fmul dword ptr[8+ebx]
;904:		fxch st(5)
;905:		faddp st(3),st(0)
;906:		fmul dword ptr[8+ecx]
;907:		fxch st(1)
;908:		faddp st(3),st(0)
;909:		fxch st(3)
;910:		faddp st(2),st(0)
;911:		jmp LSetSides
;912:Lcase4:
;913:		fmul dword ptr[ebx]
;914:		fld dword ptr[0+4+edx]
;915:		fxch st(2)
;916:		fmul dword ptr[ecx]
;917:		fxch st(2)
;918:		fld st(0)
;919:		fmul dword ptr[4+ebx]
;920:		fld dword ptr[0+8+edx]
;921:		fxch st(2)
;922:		fmul dword ptr[4+ecx]
;923:		fxch st(2)
;924:		fld st(0)
;925:		fmul dword ptr[8+ecx]
;926:		fxch st(5)
;927:		faddp st(3),st(0)
;928:		fmul dword ptr[8+ebx]
;929:		fxch st(1)
;930:		faddp st(3),st(0)
;931:		fxch st(3)
;932:		faddp st(2),st(0)
;933:		jmp LSetSides
;934:Lcase5:
;935:		fmul dword ptr[ecx]
;936:		fld dword ptr[0+4+edx]
;937:		fxch st(2)
;938:		fmul dword ptr[ebx]
;939:		fxch st(2)
;940:		fld st(0)
;941:		fmul dword ptr[4+ebx]
;942:		fld dword ptr[0+8+edx]
;943:		fxch st(2)
;944:		fmul dword ptr[4+ecx]
;945:		fxch st(2)
;946:		fld st(0)
;947:		fmul dword ptr[8+ecx]
;948:		fxch st(5)
;949:		faddp st(3),st(0)
;950:		fmul dword ptr[8+ebx]
;951:		fxch st(1)
;952:		faddp st(3),st(0)
;953:		fxch st(3)
;954:		faddp st(2),st(0)
;955:		jmp LSetSides
;956:Lcase6:
;957:		fmul dword ptr[ebx]
;958:		fld dword ptr[0+4+edx]
;959:		fxch st(2)
;960:		fmul dword ptr[ecx]
;961:		fxch st(2)
;962:		fld st(0)
;963:		fmul dword ptr[4+ecx]
;964:		fld dword ptr[0+8+edx]
;965:		fxch st(2)
;966:		fmul dword ptr[4+ebx]
;967:		fxch st(2)
;968:		fld st(0)
;969:		fmul dword ptr[8+ecx]
;970:		fxch st(5)
;971:		faddp st(3),st(0)
;972:		fmul dword ptr[8+ebx]
;973:		fxch st(1)
;974:		faddp st(3),st(0)
;975:		fxch st(3)
;976:		faddp st(2),st(0)
;977:		jmp LSetSides
;978:Lcase7:
;979:		fmul dword ptr[ecx]
;980:		fld dword ptr[0+4+edx]
;981:		fxch st(2)
;982:		fmul dword ptr[ebx]
;983:		fxch st(2)
;984:		fld st(0)
;985:		fmul dword ptr[4+ecx]
;986:		fld dword ptr[0+8+edx]
;987:		fxch st(2)
;988:		fmul dword ptr[4+ebx]
;989:		fxch st(2)
;990:		fld st(0)
;991:		fmul dword ptr[8+ecx]
;992:		fxch st(5)
;993:		faddp st(3),st(0)
;994:		fmul dword ptr[8+ebx]
;995:		fxch st(1)
;996:		faddp st(3),st(0)
;997:		fxch st(3)
;998:		faddp st(2),st(0)
;999:LSetSides:
;1000:		faddp st(2),st(0)
;1001:		fcomp dword ptr[12+edx]
;1002:		xor ecx,ecx
;1003:		fnstsw ax
;1004:		fcomp dword ptr[12+edx]
;1005:		and ah,1
;1006:		xor ah,1
;1007:		add cl,ah
;1008:		fnstsw ax
;1009:		and ah,1
;1010:		add ah,ah
;1011:		add cl,ah
;1012:		pop ebx
;1013:		mov eax,ecx
;1014:		ret
;1015:Lerror:
;1016:		int 3
;1017:	}
;1018:}
;1019:#pragma warning( default: 4035 )
;1020:
;1021:#endif
;1022:#endif
;1023:
;1024:/*
;1025:=================
;1026:RadiusFromBounds
;1027:=================
;1028:*/
;1029:float RadiusFromBounds( const vec3_t mins, const vec3_t maxs ) {
line 1034
;1030:	int		i;
;1031:	vec3_t	corner;
;1032:	float	a, b;
;1033:
;1034:	for (i=0 ; i<3 ; i++) {
ADDRLP4 0
CNSTI4 0
ASGNI4
LABELV $246
line 1035
;1035:		a = fabs( mins[i] );
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRFP4 0
INDIRP4
ADDP4
INDIRF4
ARGF4
ADDRLP4 24
ADDRGP4 fabs
CALLF4
ASGNF4
ADDRLP4 4
ADDRLP4 24
INDIRF4
ASGNF4
line 1036
;1036:		b = fabs( maxs[i] );
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRFP4 4
INDIRP4
ADDP4
INDIRF4
ARGF4
ADDRLP4 28
ADDRGP4 fabs
CALLF4
ASGNF4
ADDRLP4 8
ADDRLP4 28
INDIRF4
ASGNF4
line 1037
;1037:		corner[i] = a > b ? a : b;
ADDRLP4 4
INDIRF4
ADDRLP4 8
INDIRF4
LEF4 $251
ADDRLP4 32
ADDRLP4 4
INDIRF4
ASGNF4
ADDRGP4 $252
JUMPV
LABELV $251
ADDRLP4 32
ADDRLP4 8
INDIRF4
ASGNF4
LABELV $252
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRLP4 12
ADDP4
ADDRLP4 32
INDIRF4
ASGNF4
line 1038
;1038:	}
LABELV $247
line 1034
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 3
LTI4 $246
line 1040
;1039:
;1040:	return VectorLength (corner);
ADDRLP4 12
ARGP4
ADDRLP4 24
ADDRGP4 VectorLength
CALLF4
ASGNF4
ADDRLP4 24
INDIRF4
RETF4
LABELV $245
endproc RadiusFromBounds 36 4
export ClearBounds
proc ClearBounds 16 0
line 1044
;1041:}
;1042:
;1043:
;1044:void ClearBounds( vec3_t mins, vec3_t maxs ) {
line 1045
;1045:	mins[0] = mins[1] = mins[2] = 99999;
ADDRLP4 0
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 4
CNSTF4 1203982208
ASGNF4
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 4
INDIRF4
ASGNF4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
ADDRLP4 4
INDIRF4
ASGNF4
ADDRLP4 0
INDIRP4
ADDRLP4 4
INDIRF4
ASGNF4
line 1046
;1046:	maxs[0] = maxs[1] = maxs[2] = -99999;
ADDRLP4 8
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 12
CNSTF4 3351465856
ASGNF4
ADDRLP4 8
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 12
INDIRF4
ASGNF4
ADDRLP4 8
INDIRP4
CNSTI4 4
ADDP4
ADDRLP4 12
INDIRF4
ASGNF4
ADDRLP4 8
INDIRP4
ADDRLP4 12
INDIRF4
ASGNF4
line 1047
;1047:}
LABELV $253
endproc ClearBounds 16 0
export AddPointToBounds
proc AddPointToBounds 0 0
line 1049
;1048:
;1049:void AddPointToBounds( const vec3_t v, vec3_t mins, vec3_t maxs ) {
line 1050
;1050:	if ( v[0] < mins[0] ) {
ADDRFP4 0
INDIRP4
INDIRF4
ADDRFP4 4
INDIRP4
INDIRF4
GEF4 $255
line 1051
;1051:		mins[0] = v[0];
ADDRFP4 4
INDIRP4
ADDRFP4 0
INDIRP4
INDIRF4
ASGNF4
line 1052
;1052:	}
LABELV $255
line 1053
;1053:	if ( v[0] > maxs[0]) {
ADDRFP4 0
INDIRP4
INDIRF4
ADDRFP4 8
INDIRP4
INDIRF4
LEF4 $257
line 1054
;1054:		maxs[0] = v[0];
ADDRFP4 8
INDIRP4
ADDRFP4 0
INDIRP4
INDIRF4
ASGNF4
line 1055
;1055:	}
LABELV $257
line 1057
;1056:
;1057:	if ( v[1] < mins[1] ) {
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
GEF4 $259
line 1058
;1058:		mins[1] = v[1];
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ASGNF4
line 1059
;1059:	}
LABELV $259
line 1060
;1060:	if ( v[1] > maxs[1]) {
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
LEF4 $261
line 1061
;1061:		maxs[1] = v[1];
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ASGNF4
line 1062
;1062:	}
LABELV $261
line 1064
;1063:
;1064:	if ( v[2] < mins[2] ) {
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
GEF4 $263
line 1065
;1065:		mins[2] = v[2];
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ASGNF4
line 1066
;1066:	}
LABELV $263
line 1067
;1067:	if ( v[2] > maxs[2]) {
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRFP4 8
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
LEF4 $265
line 1068
;1068:		maxs[2] = v[2];
ADDRFP4 8
INDIRP4
CNSTI4 8
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ASGNF4
line 1069
;1069:	}
LABELV $265
line 1070
;1070:}
LABELV $254
endproc AddPointToBounds 0 0
export VectorNormalize
proc VectorNormalize 32 4
line 1073
;1071:
;1072:
;1073:vec_t VectorNormalize( vec3_t v ) {
line 1076
;1074:	float	length, ilength;
;1075:
;1076:	length = v[0]*v[0] + v[1]*v[1] + v[2]*v[2];
ADDRLP4 8
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 12
ADDRLP4 8
INDIRP4
INDIRF4
ASGNF4
ADDRLP4 0
ADDRLP4 12
INDIRF4
ADDRLP4 12
INDIRF4
MULF4
ADDRLP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 8
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 8
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1077
;1077:	length = sqrt (length);
ADDRLP4 0
INDIRF4
ARGF4
ADDRLP4 16
ADDRGP4 sqrt
CALLF4
ASGNF4
ADDRLP4 0
ADDRLP4 16
INDIRF4
ASGNF4
line 1079
;1078:
;1079:	if ( length ) {
ADDRLP4 0
INDIRF4
CNSTF4 0
EQF4 $268
line 1080
;1080:		ilength = 1/length;
ADDRLP4 4
CNSTF4 1065353216
ADDRLP4 0
INDIRF4
DIVF4
ASGNF4
line 1081
;1081:		v[0] *= ilength;
ADDRLP4 20
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 20
INDIRP4
ADDRLP4 20
INDIRP4
INDIRF4
ADDRLP4 4
INDIRF4
MULF4
ASGNF4
line 1082
;1082:		v[1] *= ilength;
ADDRLP4 24
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
ASGNP4
ADDRLP4 24
INDIRP4
ADDRLP4 24
INDIRP4
INDIRF4
ADDRLP4 4
INDIRF4
MULF4
ASGNF4
line 1083
;1083:		v[2] *= ilength;
ADDRLP4 28
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
ASGNP4
ADDRLP4 28
INDIRP4
ADDRLP4 28
INDIRP4
INDIRF4
ADDRLP4 4
INDIRF4
MULF4
ASGNF4
line 1084
;1084:	}
LABELV $268
line 1086
;1085:		
;1086:	return length;
ADDRLP4 0
INDIRF4
RETF4
LABELV $267
endproc VectorNormalize 32 4
export VectorNormalize2
proc VectorNormalize2 20 4
line 1089
;1087:}
;1088:
;1089:vec_t VectorNormalize2( const vec3_t v, vec3_t out) {
line 1092
;1090:	float	length, ilength;
;1091:
;1092:	length = v[0]*v[0] + v[1]*v[1] + v[2]*v[2];
ADDRLP4 8
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 12
ADDRLP4 8
INDIRP4
INDIRF4
ASGNF4
ADDRLP4 0
ADDRLP4 12
INDIRF4
ADDRLP4 12
INDIRF4
MULF4
ADDRLP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 8
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 8
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1093
;1093:	length = sqrt (length);
ADDRLP4 0
INDIRF4
ARGF4
ADDRLP4 16
ADDRGP4 sqrt
CALLF4
ASGNF4
ADDRLP4 0
ADDRLP4 16
INDIRF4
ASGNF4
line 1095
;1094:
;1095:	if (length)
ADDRLP4 0
INDIRF4
CNSTF4 0
EQF4 $271
line 1096
;1096:	{
line 1100
;1097:#ifndef Q3_VM // bk0101022 - FPE related
;1098://	  assert( ((Q_fabs(v[0])!=0.0f) || (Q_fabs(v[1])!=0.0f) || (Q_fabs(v[2])!=0.0f)) );
;1099:#endif
;1100:		ilength = 1/length;
ADDRLP4 4
CNSTF4 1065353216
ADDRLP4 0
INDIRF4
DIVF4
ASGNF4
line 1101
;1101:		out[0] = v[0]*ilength;
ADDRFP4 4
INDIRP4
ADDRFP4 0
INDIRP4
INDIRF4
ADDRLP4 4
INDIRF4
MULF4
ASGNF4
line 1102
;1102:		out[1] = v[1]*ilength;
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 4
INDIRF4
MULF4
ASGNF4
line 1103
;1103:		out[2] = v[2]*ilength;
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 4
INDIRF4
MULF4
ASGNF4
line 1104
;1104:	} else {
ADDRGP4 $272
JUMPV
LABELV $271
line 1108
;1105:#ifndef Q3_VM // bk0101022 - FPE related
;1106://	  assert( ((Q_fabs(v[0])==0.0f) && (Q_fabs(v[1])==0.0f) && (Q_fabs(v[2])==0.0f)) );
;1107:#endif
;1108:		VectorClear( out );
ADDRFP4 4
INDIRP4
CNSTF4 0
ASGNF4
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
CNSTF4 0
ASGNF4
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
CNSTF4 0
ASGNF4
line 1109
;1109:	}
LABELV $272
line 1111
;1110:		
;1111:	return length;
ADDRLP4 0
INDIRF4
RETF4
LABELV $270
endproc VectorNormalize2 20 4
export _VectorMA
proc _VectorMA 0 0
line 1115
;1112:
;1113:}
;1114:
;1115:void _VectorMA( const vec3_t veca, float scale, const vec3_t vecb, vec3_t vecc) {
line 1116
;1116:	vecc[0] = veca[0] + scale*vecb[0];
ADDRFP4 12
INDIRP4
ADDRFP4 0
INDIRP4
INDIRF4
ADDRFP4 4
INDIRF4
ADDRFP4 8
INDIRP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1117
;1117:	vecc[1] = veca[1] + scale*vecb[1];
ADDRFP4 12
INDIRP4
CNSTI4 4
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRFP4 4
INDIRF4
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1118
;1118:	vecc[2] = veca[2] + scale*vecb[2];
ADDRFP4 12
INDIRP4
CNSTI4 8
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRFP4 4
INDIRF4
ADDRFP4 8
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1119
;1119:}
LABELV $273
endproc _VectorMA 0 0
export _DotProduct
proc _DotProduct 8 0
line 1122
;1120:
;1121:
;1122:vec_t _DotProduct( const vec3_t v1, const vec3_t v2 ) {
line 1123
;1123:	return v1[0]*v2[0] + v1[1]*v2[1] + v1[2]*v2[2];
ADDRLP4 0
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 4
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 0
INDIRP4
INDIRF4
ADDRLP4 4
INDIRP4
INDIRF4
MULF4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 4
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 4
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
RETF4
LABELV $274
endproc _DotProduct 8 0
export _VectorSubtract
proc _VectorSubtract 0 0
line 1126
;1124:}
;1125:
;1126:void _VectorSubtract( const vec3_t veca, const vec3_t vecb, vec3_t out ) {
line 1127
;1127:	out[0] = veca[0]-vecb[0];
ADDRFP4 8
INDIRP4
ADDRFP4 0
INDIRP4
INDIRF4
ADDRFP4 4
INDIRP4
INDIRF4
SUBF4
ASGNF4
line 1128
;1128:	out[1] = veca[1]-vecb[1];
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
SUBF4
ASGNF4
line 1129
;1129:	out[2] = veca[2]-vecb[2];
ADDRFP4 8
INDIRP4
CNSTI4 8
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
SUBF4
ASGNF4
line 1130
;1130:}
LABELV $275
endproc _VectorSubtract 0 0
export _VectorAdd
proc _VectorAdd 0 0
line 1132
;1131:
;1132:void _VectorAdd( const vec3_t veca, const vec3_t vecb, vec3_t out ) {
line 1133
;1133:	out[0] = veca[0]+vecb[0];
ADDRFP4 8
INDIRP4
ADDRFP4 0
INDIRP4
INDIRF4
ADDRFP4 4
INDIRP4
INDIRF4
ADDF4
ASGNF4
line 1134
;1134:	out[1] = veca[1]+vecb[1];
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDF4
ASGNF4
line 1135
;1135:	out[2] = veca[2]+vecb[2];
ADDRFP4 8
INDIRP4
CNSTI4 8
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDF4
ASGNF4
line 1136
;1136:}
LABELV $276
endproc _VectorAdd 0 0
export _VectorCopy
proc _VectorCopy 0 0
line 1138
;1137:
;1138:void _VectorCopy( const vec3_t in, vec3_t out ) {
line 1139
;1139:	out[0] = in[0];
ADDRFP4 4
INDIRP4
ADDRFP4 0
INDIRP4
INDIRF4
ASGNF4
line 1140
;1140:	out[1] = in[1];
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ASGNF4
line 1141
;1141:	out[2] = in[2];
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ASGNF4
line 1142
;1142:}
LABELV $277
endproc _VectorCopy 0 0
export _VectorScale
proc _VectorScale 0 0
line 1144
;1143:
;1144:void _VectorScale( const vec3_t in, vec_t scale, vec3_t out ) {
line 1145
;1145:	out[0] = in[0]*scale;
ADDRFP4 8
INDIRP4
ADDRFP4 0
INDIRP4
INDIRF4
ADDRFP4 4
INDIRF4
MULF4
ASGNF4
line 1146
;1146:	out[1] = in[1]*scale;
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRFP4 4
INDIRF4
MULF4
ASGNF4
line 1147
;1147:	out[2] = in[2]*scale;
ADDRFP4 8
INDIRP4
CNSTI4 8
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRFP4 4
INDIRF4
MULF4
ASGNF4
line 1148
;1148:}
LABELV $278
endproc _VectorScale 0 0
export Vector4Scale
proc Vector4Scale 0 0
line 1150
;1149:
;1150:void Vector4Scale( const vec4_t in, vec_t scale, vec4_t out ) {
line 1151
;1151:	out[0] = in[0]*scale;
ADDRFP4 8
INDIRP4
ADDRFP4 0
INDIRP4
INDIRF4
ADDRFP4 4
INDIRF4
MULF4
ASGNF4
line 1152
;1152:	out[1] = in[1]*scale;
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRFP4 4
INDIRF4
MULF4
ASGNF4
line 1153
;1153:	out[2] = in[2]*scale;
ADDRFP4 8
INDIRP4
CNSTI4 8
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRFP4 4
INDIRF4
MULF4
ASGNF4
line 1154
;1154:	out[3] = in[3]*scale;
ADDRFP4 8
INDIRP4
CNSTI4 12
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 12
ADDP4
INDIRF4
ADDRFP4 4
INDIRF4
MULF4
ASGNF4
line 1155
;1155:}
LABELV $279
endproc Vector4Scale 0 0
export Q_log2
proc Q_log2 8 0
line 1158
;1156:
;1157:
;1158:int Q_log2( int val ) {
line 1161
;1159:	int answer;
;1160:
;1161:	answer = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
ADDRGP4 $282
JUMPV
LABELV $281
line 1162
;1162:	while ( ( val>>=1 ) != 0 ) {
line 1163
;1163:		answer++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 1164
;1164:	}
LABELV $282
line 1162
ADDRLP4 4
ADDRFP4 0
INDIRI4
CNSTI4 1
RSHI4
ASGNI4
ADDRFP4 0
ADDRLP4 4
INDIRI4
ASGNI4
ADDRLP4 4
INDIRI4
CNSTI4 0
NEI4 $281
line 1165
;1165:	return answer;
ADDRLP4 0
INDIRI4
RETI4
LABELV $280
endproc Q_log2 8 0
export MatrixMultiply
proc MatrixMultiply 72 0
line 1194
;1166:}
;1167:
;1168:
;1169:
;1170:/*
;1171:=================
;1172:PlaneTypeForNormal
;1173:=================
;1174:*/
;1175:/*
;1176:int	PlaneTypeForNormal (vec3_t normal) {
;1177:	if ( normal[0] == 1.0 )
;1178:		return PLANE_X;
;1179:	if ( normal[1] == 1.0 )
;1180:		return PLANE_Y;
;1181:	if ( normal[2] == 1.0 )
;1182:		return PLANE_Z;
;1183:	
;1184:	return PLANE_NON_AXIAL;
;1185:}
;1186:*/
;1187:
;1188:
;1189:/*
;1190:================
;1191:MatrixMultiply
;1192:================
;1193:*/
;1194:void MatrixMultiply(float in1[3][3], float in2[3][3], float out[3][3]) {
line 1195
;1195:	out[0][0] = in1[0][0] * in2[0][0] + in1[0][1] * in2[1][0] +
ADDRLP4 0
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 4
ADDRFP4 4
INDIRP4
ASGNP4
ADDRFP4 8
INDIRP4
ADDRLP4 0
INDIRP4
INDIRF4
ADDRLP4 4
INDIRP4
INDIRF4
MULF4
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 4
INDIRP4
CNSTI4 12
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 4
INDIRP4
CNSTI4 24
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1197
;1196:				in1[0][2] * in2[2][0];
;1197:	out[0][1] = in1[0][0] * in2[0][1] + in1[0][1] * in2[1][1] +
ADDRLP4 8
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 12
ADDRFP4 4
INDIRP4
ASGNP4
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
ADDRLP4 8
INDIRP4
INDIRF4
ADDRLP4 12
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDRLP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 12
INDIRP4
CNSTI4 16
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 8
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 12
INDIRP4
CNSTI4 28
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1199
;1198:				in1[0][2] * in2[2][1];
;1199:	out[0][2] = in1[0][0] * in2[0][2] + in1[0][1] * in2[1][2] +
ADDRLP4 16
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 20
ADDRFP4 4
INDIRP4
ASGNP4
ADDRFP4 8
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 16
INDIRP4
INDIRF4
ADDRLP4 20
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDRLP4 16
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 20
INDIRP4
CNSTI4 20
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 16
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 20
INDIRP4
CNSTI4 32
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1201
;1200:				in1[0][2] * in2[2][2];
;1201:	out[1][0] = in1[1][0] * in2[0][0] + in1[1][1] * in2[1][0] +
ADDRLP4 24
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 28
ADDRFP4 4
INDIRP4
ASGNP4
ADDRFP4 8
INDIRP4
CNSTI4 12
ADDP4
ADDRLP4 24
INDIRP4
CNSTI4 12
ADDP4
INDIRF4
ADDRLP4 28
INDIRP4
INDIRF4
MULF4
ADDRLP4 24
INDIRP4
CNSTI4 16
ADDP4
INDIRF4
ADDRLP4 28
INDIRP4
CNSTI4 12
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 24
INDIRP4
CNSTI4 20
ADDP4
INDIRF4
ADDRLP4 28
INDIRP4
CNSTI4 24
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1203
;1202:				in1[1][2] * in2[2][0];
;1203:	out[1][1] = in1[1][0] * in2[0][1] + in1[1][1] * in2[1][1] +
ADDRLP4 32
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 36
ADDRFP4 4
INDIRP4
ASGNP4
ADDRFP4 8
INDIRP4
CNSTI4 16
ADDP4
ADDRLP4 32
INDIRP4
CNSTI4 12
ADDP4
INDIRF4
ADDRLP4 36
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDRLP4 32
INDIRP4
CNSTI4 16
ADDP4
INDIRF4
ADDRLP4 36
INDIRP4
CNSTI4 16
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 32
INDIRP4
CNSTI4 20
ADDP4
INDIRF4
ADDRLP4 36
INDIRP4
CNSTI4 28
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1205
;1204:				in1[1][2] * in2[2][1];
;1205:	out[1][2] = in1[1][0] * in2[0][2] + in1[1][1] * in2[1][2] +
ADDRLP4 40
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 44
ADDRFP4 4
INDIRP4
ASGNP4
ADDRFP4 8
INDIRP4
CNSTI4 20
ADDP4
ADDRLP4 40
INDIRP4
CNSTI4 12
ADDP4
INDIRF4
ADDRLP4 44
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDRLP4 40
INDIRP4
CNSTI4 16
ADDP4
INDIRF4
ADDRLP4 44
INDIRP4
CNSTI4 20
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 40
INDIRP4
CNSTI4 20
ADDP4
INDIRF4
ADDRLP4 44
INDIRP4
CNSTI4 32
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1207
;1206:				in1[1][2] * in2[2][2];
;1207:	out[2][0] = in1[2][0] * in2[0][0] + in1[2][1] * in2[1][0] +
ADDRLP4 48
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 52
ADDRFP4 4
INDIRP4
ASGNP4
ADDRFP4 8
INDIRP4
CNSTI4 24
ADDP4
ADDRLP4 48
INDIRP4
CNSTI4 24
ADDP4
INDIRF4
ADDRLP4 52
INDIRP4
INDIRF4
MULF4
ADDRLP4 48
INDIRP4
CNSTI4 28
ADDP4
INDIRF4
ADDRLP4 52
INDIRP4
CNSTI4 12
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 48
INDIRP4
CNSTI4 32
ADDP4
INDIRF4
ADDRLP4 52
INDIRP4
CNSTI4 24
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1209
;1208:				in1[2][2] * in2[2][0];
;1209:	out[2][1] = in1[2][0] * in2[0][1] + in1[2][1] * in2[1][1] +
ADDRLP4 56
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 60
ADDRFP4 4
INDIRP4
ASGNP4
ADDRFP4 8
INDIRP4
CNSTI4 28
ADDP4
ADDRLP4 56
INDIRP4
CNSTI4 24
ADDP4
INDIRF4
ADDRLP4 60
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDRLP4 56
INDIRP4
CNSTI4 28
ADDP4
INDIRF4
ADDRLP4 60
INDIRP4
CNSTI4 16
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 56
INDIRP4
CNSTI4 32
ADDP4
INDIRF4
ADDRLP4 60
INDIRP4
CNSTI4 28
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1211
;1210:				in1[2][2] * in2[2][1];
;1211:	out[2][2] = in1[2][0] * in2[0][2] + in1[2][1] * in2[1][2] +
ADDRLP4 64
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 68
ADDRFP4 4
INDIRP4
ASGNP4
ADDRFP4 8
INDIRP4
CNSTI4 32
ADDP4
ADDRLP4 64
INDIRP4
CNSTI4 24
ADDP4
INDIRF4
ADDRLP4 68
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDRLP4 64
INDIRP4
CNSTI4 28
ADDP4
INDIRF4
ADDRLP4 68
INDIRP4
CNSTI4 20
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 64
INDIRP4
CNSTI4 32
ADDP4
INDIRF4
ADDRLP4 68
INDIRP4
CNSTI4 32
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1213
;1212:				in1[2][2] * in2[2][2];
;1213:}
LABELV $284
endproc MatrixMultiply 72 0
bss
align 4
LABELV $286
skip 4
align 4
LABELV $287
skip 4
align 4
LABELV $288
skip 4
align 4
LABELV $289
skip 4
align 4
LABELV $290
skip 4
align 4
LABELV $291
skip 4
export AngleVectors
code
proc AngleVectors 28 4
line 1216
;1214:
;1215:
;1216:void AngleVectors( const vec3_t angles, vec3_t forward, vec3_t right, vec3_t up) {
line 1221
;1217:	float		angle;
;1218:	static float		sr, sp, sy, cr, cp, cy;
;1219:	// static to help MS compiler fp bugs
;1220:
;1221:	angle = angles[YAW] * (M_PI*2 / 360);
ADDRLP4 0
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
CNSTF4 1016003125
MULF4
ASGNF4
line 1222
;1222:	sy = sin(angle);
ADDRLP4 0
INDIRF4
ARGF4
ADDRLP4 4
ADDRGP4 sin
CALLF4
ASGNF4
ADDRGP4 $288
ADDRLP4 4
INDIRF4
ASGNF4
line 1223
;1223:	cy = cos(angle);
ADDRLP4 0
INDIRF4
ARGF4
ADDRLP4 8
ADDRGP4 cos
CALLF4
ASGNF4
ADDRGP4 $291
ADDRLP4 8
INDIRF4
ASGNF4
line 1224
;1224:	angle = angles[PITCH] * (M_PI*2 / 360);
ADDRLP4 0
ADDRFP4 0
INDIRP4
INDIRF4
CNSTF4 1016003125
MULF4
ASGNF4
line 1225
;1225:	sp = sin(angle);
ADDRLP4 0
INDIRF4
ARGF4
ADDRLP4 12
ADDRGP4 sin
CALLF4
ASGNF4
ADDRGP4 $287
ADDRLP4 12
INDIRF4
ASGNF4
line 1226
;1226:	cp = cos(angle);
ADDRLP4 0
INDIRF4
ARGF4
ADDRLP4 16
ADDRGP4 cos
CALLF4
ASGNF4
ADDRGP4 $290
ADDRLP4 16
INDIRF4
ASGNF4
line 1227
;1227:	angle = angles[ROLL] * (M_PI*2 / 360);
ADDRLP4 0
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
CNSTF4 1016003125
MULF4
ASGNF4
line 1228
;1228:	sr = sin(angle);
ADDRLP4 0
INDIRF4
ARGF4
ADDRLP4 20
ADDRGP4 sin
CALLF4
ASGNF4
ADDRGP4 $286
ADDRLP4 20
INDIRF4
ASGNF4
line 1229
;1229:	cr = cos(angle);
ADDRLP4 0
INDIRF4
ARGF4
ADDRLP4 24
ADDRGP4 cos
CALLF4
ASGNF4
ADDRGP4 $289
ADDRLP4 24
INDIRF4
ASGNF4
line 1231
;1230:
;1231:	if (forward)
ADDRFP4 4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $292
line 1232
;1232:	{
line 1233
;1233:		forward[0] = cp*cy;
ADDRFP4 4
INDIRP4
ADDRGP4 $290
INDIRF4
ADDRGP4 $291
INDIRF4
MULF4
ASGNF4
line 1234
;1234:		forward[1] = cp*sy;
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
ADDRGP4 $290
INDIRF4
ADDRGP4 $288
INDIRF4
MULF4
ASGNF4
line 1235
;1235:		forward[2] = -sp;
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
ADDRGP4 $287
INDIRF4
NEGF4
ASGNF4
line 1236
;1236:	}
LABELV $292
line 1237
;1237:	if (right)
ADDRFP4 8
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $294
line 1238
;1238:	{
line 1239
;1239:		right[0] = (-1*sr*sp*cy+-1*cr*-sy);
ADDRFP4 8
INDIRP4
ADDRGP4 $286
INDIRF4
CNSTF4 3212836864
MULF4
ADDRGP4 $287
INDIRF4
MULF4
ADDRGP4 $291
INDIRF4
MULF4
ADDRGP4 $289
INDIRF4
CNSTF4 3212836864
MULF4
ADDRGP4 $288
INDIRF4
NEGF4
MULF4
ADDF4
ASGNF4
line 1240
;1240:		right[1] = (-1*sr*sp*sy+-1*cr*cy);
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
ADDRGP4 $286
INDIRF4
CNSTF4 3212836864
MULF4
ADDRGP4 $287
INDIRF4
MULF4
ADDRGP4 $288
INDIRF4
MULF4
ADDRGP4 $289
INDIRF4
CNSTF4 3212836864
MULF4
ADDRGP4 $291
INDIRF4
MULF4
ADDF4
ASGNF4
line 1241
;1241:		right[2] = -1*sr*cp;
ADDRFP4 8
INDIRP4
CNSTI4 8
ADDP4
ADDRGP4 $286
INDIRF4
CNSTF4 3212836864
MULF4
ADDRGP4 $290
INDIRF4
MULF4
ASGNF4
line 1242
;1242:	}
LABELV $294
line 1243
;1243:	if (up)
ADDRFP4 12
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $296
line 1244
;1244:	{
line 1245
;1245:		up[0] = (cr*sp*cy+-sr*-sy);
ADDRFP4 12
INDIRP4
ADDRGP4 $289
INDIRF4
ADDRGP4 $287
INDIRF4
MULF4
ADDRGP4 $291
INDIRF4
MULF4
ADDRGP4 $286
INDIRF4
NEGF4
ADDRGP4 $288
INDIRF4
NEGF4
MULF4
ADDF4
ASGNF4
line 1246
;1246:		up[1] = (cr*sp*sy+-sr*cy);
ADDRFP4 12
INDIRP4
CNSTI4 4
ADDP4
ADDRGP4 $289
INDIRF4
ADDRGP4 $287
INDIRF4
MULF4
ADDRGP4 $288
INDIRF4
MULF4
ADDRGP4 $286
INDIRF4
NEGF4
ADDRGP4 $291
INDIRF4
MULF4
ADDF4
ASGNF4
line 1247
;1247:		up[2] = cr*cp;
ADDRFP4 12
INDIRP4
CNSTI4 8
ADDP4
ADDRGP4 $289
INDIRF4
ADDRGP4 $290
INDIRF4
MULF4
ASGNF4
line 1248
;1248:	}
LABELV $296
line 1249
;1249:}
LABELV $285
endproc AngleVectors 28 4
export PerpendicularVector
proc PerpendicularVector 32 12
line 1255
;1250:
;1251:/*
;1252:** assumes "src" is normalized
;1253:*/
;1254:void PerpendicularVector( vec3_t dst, const vec3_t src )
;1255:{
line 1258
;1256:	int	pos;
;1257:	int i;
;1258:	float f, minelem = 1.0F;
ADDRLP4 8
CNSTF4 1065353216
ASGNF4
line 1264
;1259:	vec3_t tempvec;
;1260:
;1261:	/*
;1262:	** find the smallest magnitude axially aligned vector
;1263:	*/
;1264:	for ( pos = 0, i = 0; i < 3; i++ )
ADDRLP4 12
CNSTI4 0
ASGNI4
ADDRLP4 0
CNSTI4 0
ASGNI4
ADDRGP4 $302
JUMPV
LABELV $299
line 1265
;1265:	{
line 1266
;1266:		f = fabs( src[i] );
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRFP4 4
INDIRP4
ADDP4
INDIRF4
ARGF4
ADDRLP4 28
ADDRGP4 fabs
CALLF4
ASGNF4
ADDRLP4 4
ADDRLP4 28
INDIRF4
ASGNF4
line 1267
;1267:		if ( f < minelem )
ADDRLP4 4
INDIRF4
ADDRLP4 8
INDIRF4
GEF4 $303
line 1268
;1268:		{
line 1269
;1269:			pos = i;
ADDRLP4 12
ADDRLP4 0
INDIRI4
ASGNI4
line 1270
;1270:			minelem = f;
ADDRLP4 8
ADDRLP4 4
INDIRF4
ASGNF4
line 1271
;1271:		}
LABELV $303
line 1272
;1272:	}
LABELV $300
line 1264
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
LABELV $302
ADDRLP4 0
INDIRI4
CNSTI4 3
LTI4 $299
line 1273
;1273:	tempvec[0] = tempvec[1] = tempvec[2] = 0.0F;
ADDRLP4 28
CNSTF4 0
ASGNF4
ADDRLP4 16+8
ADDRLP4 28
INDIRF4
ASGNF4
ADDRLP4 16+4
ADDRLP4 28
INDIRF4
ASGNF4
ADDRLP4 16
ADDRLP4 28
INDIRF4
ASGNF4
line 1274
;1274:	tempvec[pos] = 1.0F;
ADDRLP4 12
INDIRI4
CNSTI4 2
LSHI4
ADDRLP4 16
ADDP4
CNSTF4 1065353216
ASGNF4
line 1279
;1275:
;1276:	/*
;1277:	** project the point onto the plane defined by src
;1278:	*/
;1279:	ProjectPointOnPlane( dst, tempvec, src );
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 16
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 ProjectPointOnPlane
CALLV
pop
line 1284
;1280:
;1281:	/*
;1282:	** normalize the result
;1283:	*/
;1284:	VectorNormalize( dst );
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 VectorNormalize
CALLF4
pop
line 1285
;1285:}
LABELV $298
endproc PerpendicularVector 32 12
import Com_Printf
import Com_Error
import Info_NextPair
import Info_ValidateKeyValue
import Info_Validate
import Info_SetValueForKey_Big
import Info_SetValueForKey
import Info_ValueForKey
import va
import Q_CleanStr
import Q_PrintStrlen
import Q_strcat
import Q_strncpyz
import Q_strrchr
import Q_strupr
import Q_strlwr
import Q_stricmpn
import Q_strncmp
import Q_stricmp
import Q_isalpha
import Q_isupper
import Q_islower
import Q_isprint
import locase
import Com_sprintf
import Parse3DMatrix
import Parse2DMatrix
import Parse1DMatrix
import SkipRestOfLine
import SkipBracedSection
import COM_MatchToken
import Com_Split
import COM_ParseSep
import Com_InitSeparators
import SkipTillSeparators
import COM_ParseWarning
import COM_ParseError
import COM_Compress
import COM_ParseExt
import COM_Parse
import COM_GetCurrentParseLine
import COM_BeginParseSession
import COM_DefaultExtension
import COM_StripExtension
import COM_SkipPath
import Com_Clamp
import Q_acos
import Hunk_Alloc
import acos
import fabs
import abs
import tan
import atan2
import cos
import sin
import sqrt
import floor
import ceil
import memcpy
import memset
import memmove
import Q_sscanf
import ED_vsprintf
import atoi
import atof
import toupper
import tolower
import strncpy
import strstr
import strchr
import strcmp
import strcpy
import strcat
import strlen
import rand
import srand
import qsort
