reaction/ta_ui/vm/q_math.asm
2002-01-08 05:45:06 +00:00

9605 lines
113 KiB
NASM

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 "../../game/q_math.c"
line 257
;1://-----------------------------------------------------------------------------
;2://
;3:// $Id$
;4://
;5://-----------------------------------------------------------------------------
;6://
;7:// $Log$
;7:// Revision 1.1 2002/01/08 05:46:22 blaze
;7:// Initial revision
;7://
;8:// Revision 1.4 2001/12/31 16:28:42 jbravo
;9:// I made a Booboo with the Log tag.
;10://
;11://
;12://-----------------------------------------------------------------------------
;13:// Copyright (C) 1999-2000 Id Software, Inc.
;14:
;15://
;16:
;17:// q_math.c -- stateless support routines that are included in each code module
;18:
;19:#include "q_shared.h"
;20:
;21:
;22:
;23:
;24:
;25:vec3_t vec3_origin = {0,0,0};
;26:
;27:vec3_t axisDefault[3] = { { 1, 0, 0 }, { 0, 1, 0 }, { 0, 0, 1 } };
;28:
;29:
;30:
;31:
;32:
;33:vec4_t colorBlack = {0, 0, 0, 1};
;34:
;35:vec4_t colorRed = {1, 0, 0, 1};
;36:
;37:vec4_t colorGreen = {0, 1, 0, 1};
;38:
;39:vec4_t colorBlue = {0, 0, 1, 1};
;40:
;41:vec4_t colorYellow = {1, 1, 0, 1};
;42:
;43:vec4_t colorMagenta= {1, 0, 1, 1};
;44:
;45:vec4_t colorCyan = {0, 1, 1, 1};
;46:
;47:vec4_t colorWhite = {1, 1, 1, 1};
;48:
;49:vec4_t colorLtGrey = {0.75, 0.75, 0.75, 1};
;50:
;51:vec4_t colorMdGrey = {0.5, 0.5, 0.5, 1};
;52:
;53:vec4_t colorDkGrey = {0.25, 0.25, 0.25, 1};
;54:
;55:
;56:
;57:vec4_t g_color_table[8] =
;58:
;59: {
;60:
;61: {0.0, 0.0, 0.0, 1.0},
;62:
;63: {1.0, 0.0, 0.0, 1.0},
;64:
;65: {0.0, 1.0, 0.0, 1.0},
;66:
;67: {1.0, 1.0, 0.0, 1.0},
;68:
;69: {0.0, 0.0, 1.0, 1.0},
;70:
;71: {0.0, 1.0, 1.0, 1.0},
;72:
;73: {1.0, 0.0, 1.0, 1.0},
;74:
;75: {1.0, 1.0, 1.0, 1.0},
;76:
;77: };
;78:
;79:
;80:
;81:
;82:
;83:vec3_t bytedirs[NUMVERTEXNORMALS] =
;84:
;85:{
;86:
;87:{-0.525731f, 0.000000f, 0.850651f}, {-0.442863f, 0.238856f, 0.864188f},
;88:
;89:{-0.295242f, 0.000000f, 0.955423f}, {-0.309017f, 0.500000f, 0.809017f},
;90:
;91:{-0.162460f, 0.262866f, 0.951056f}, {0.000000f, 0.000000f, 1.000000f},
;92:
;93:{0.000000f, 0.850651f, 0.525731f}, {-0.147621f, 0.716567f, 0.681718f},
;94:
;95:{0.147621f, 0.716567f, 0.681718f}, {0.000000f, 0.525731f, 0.850651f},
;96:
;97:{0.309017f, 0.500000f, 0.809017f}, {0.525731f, 0.000000f, 0.850651f},
;98:
;99:{0.295242f, 0.000000f, 0.955423f}, {0.442863f, 0.238856f, 0.864188f},
;100:
;101:{0.162460f, 0.262866f, 0.951056f}, {-0.681718f, 0.147621f, 0.716567f},
;102:
;103:{-0.809017f, 0.309017f, 0.500000f},{-0.587785f, 0.425325f, 0.688191f},
;104:
;105:{-0.850651f, 0.525731f, 0.000000f},{-0.864188f, 0.442863f, 0.238856f},
;106:
;107:{-0.716567f, 0.681718f, 0.147621f},{-0.688191f, 0.587785f, 0.425325f},
;108:
;109:{-0.500000f, 0.809017f, 0.309017f}, {-0.238856f, 0.864188f, 0.442863f},
;110:
;111:{-0.425325f, 0.688191f, 0.587785f}, {-0.716567f, 0.681718f, -0.147621f},
;112:
;113:{-0.500000f, 0.809017f, -0.309017f}, {-0.525731f, 0.850651f, 0.000000f},
;114:
;115:{0.000000f, 0.850651f, -0.525731f}, {-0.238856f, 0.864188f, -0.442863f},
;116:
;117:{0.000000f, 0.955423f, -0.295242f}, {-0.262866f, 0.951056f, -0.162460f},
;118:
;119:{0.000000f, 1.000000f, 0.000000f}, {0.000000f, 0.955423f, 0.295242f},
;120:
;121:{-0.262866f, 0.951056f, 0.162460f}, {0.238856f, 0.864188f, 0.442863f},
;122:
;123:{0.262866f, 0.951056f, 0.162460f}, {0.500000f, 0.809017f, 0.309017f},
;124:
;125:{0.238856f, 0.864188f, -0.442863f},{0.262866f, 0.951056f, -0.162460f},
;126:
;127:{0.500000f, 0.809017f, -0.309017f},{0.850651f, 0.525731f, 0.000000f},
;128:
;129:{0.716567f, 0.681718f, 0.147621f}, {0.716567f, 0.681718f, -0.147621f},
;130:
;131:{0.525731f, 0.850651f, 0.000000f}, {0.425325f, 0.688191f, 0.587785f},
;132:
;133:{0.864188f, 0.442863f, 0.238856f}, {0.688191f, 0.587785f, 0.425325f},
;134:
;135:{0.809017f, 0.309017f, 0.500000f}, {0.681718f, 0.147621f, 0.716567f},
;136:
;137:{0.587785f, 0.425325f, 0.688191f}, {0.955423f, 0.295242f, 0.000000f},
;138:
;139:{1.000000f, 0.000000f, 0.000000f}, {0.951056f, 0.162460f, 0.262866f},
;140:
;141:{0.850651f, -0.525731f, 0.000000f},{0.955423f, -0.295242f, 0.000000f},
;142:
;143:{0.864188f, -0.442863f, 0.238856f}, {0.951056f, -0.162460f, 0.262866f},
;144:
;145:{0.809017f, -0.309017f, 0.500000f}, {0.681718f, -0.147621f, 0.716567f},
;146:
;147:{0.850651f, 0.000000f, 0.525731f}, {0.864188f, 0.442863f, -0.238856f},
;148:
;149:{0.809017f, 0.309017f, -0.500000f}, {0.951056f, 0.162460f, -0.262866f},
;150:
;151:{0.525731f, 0.000000f, -0.850651f}, {0.681718f, 0.147621f, -0.716567f},
;152:
;153:{0.681718f, -0.147621f, -0.716567f},{0.850651f, 0.000000f, -0.525731f},
;154:
;155:{0.809017f, -0.309017f, -0.500000f}, {0.864188f, -0.442863f, -0.238856f},
;156:
;157:{0.951056f, -0.162460f, -0.262866f}, {0.147621f, 0.716567f, -0.681718f},
;158:
;159:{0.309017f, 0.500000f, -0.809017f}, {0.425325f, 0.688191f, -0.587785f},
;160:
;161:{0.442863f, 0.238856f, -0.864188f}, {0.587785f, 0.425325f, -0.688191f},
;162:
;163:{0.688191f, 0.587785f, -0.425325f}, {-0.147621f, 0.716567f, -0.681718f},
;164:
;165:{-0.309017f, 0.500000f, -0.809017f}, {0.000000f, 0.525731f, -0.850651f},
;166:
;167:{-0.525731f, 0.000000f, -0.850651f}, {-0.442863f, 0.238856f, -0.864188f},
;168:
;169:{-0.295242f, 0.000000f, -0.955423f}, {-0.162460f, 0.262866f, -0.951056f},
;170:
;171:{0.000000f, 0.000000f, -1.000000f}, {0.295242f, 0.000000f, -0.955423f},
;172:
;173:{0.162460f, 0.262866f, -0.951056f}, {-0.442863f, -0.238856f, -0.864188f},
;174:
;175:{-0.309017f, -0.500000f, -0.809017f}, {-0.162460f, -0.262866f, -0.951056f},
;176:
;177:{0.000000f, -0.850651f, -0.525731f}, {-0.147621f, -0.716567f, -0.681718f},
;178:
;179:{0.147621f, -0.716567f, -0.681718f}, {0.000000f, -0.525731f, -0.850651f},
;180:
;181:{0.309017f, -0.500000f, -0.809017f}, {0.442863f, -0.238856f, -0.864188f},
;182:
;183:{0.162460f, -0.262866f, -0.951056f}, {0.238856f, -0.864188f, -0.442863f},
;184:
;185:{0.500000f, -0.809017f, -0.309017f}, {0.425325f, -0.688191f, -0.587785f},
;186:
;187:{0.716567f, -0.681718f, -0.147621f}, {0.688191f, -0.587785f, -0.425325f},
;188:
;189:{0.587785f, -0.425325f, -0.688191f}, {0.000000f, -0.955423f, -0.295242f},
;190:
;191:{0.000000f, -1.000000f, 0.000000f}, {0.262866f, -0.951056f, -0.162460f},
;192:
;193:{0.000000f, -0.850651f, 0.525731f}, {0.000000f, -0.955423f, 0.295242f},
;194:
;195:{0.238856f, -0.864188f, 0.442863f}, {0.262866f, -0.951056f, 0.162460f},
;196:
;197:{0.500000f, -0.809017f, 0.309017f}, {0.716567f, -0.681718f, 0.147621f},
;198:
;199:{0.525731f, -0.850651f, 0.000000f}, {-0.238856f, -0.864188f, -0.442863f},
;200:
;201:{-0.500000f, -0.809017f, -0.309017f}, {-0.262866f, -0.951056f, -0.162460f},
;202:
;203:{-0.850651f, -0.525731f, 0.000000f}, {-0.716567f, -0.681718f, -0.147621f},
;204:
;205:{-0.716567f, -0.681718f, 0.147621f}, {-0.525731f, -0.850651f, 0.000000f},
;206:
;207:{-0.500000f, -0.809017f, 0.309017f}, {-0.238856f, -0.864188f, 0.442863f},
;208:
;209:{-0.262866f, -0.951056f, 0.162460f}, {-0.864188f, -0.442863f, 0.238856f},
;210:
;211:{-0.809017f, -0.309017f, 0.500000f}, {-0.688191f, -0.587785f, 0.425325f},
;212:
;213:{-0.681718f, -0.147621f, 0.716567f}, {-0.442863f, -0.238856f, 0.864188f},
;214:
;215:{-0.587785f, -0.425325f, 0.688191f}, {-0.309017f, -0.500000f, 0.809017f},
;216:
;217:{-0.147621f, -0.716567f, 0.681718f}, {-0.425325f, -0.688191f, 0.587785f},
;218:
;219:{-0.162460f, -0.262866f, 0.951056f}, {0.442863f, -0.238856f, 0.864188f},
;220:
;221:{0.162460f, -0.262866f, 0.951056f}, {0.309017f, -0.500000f, 0.809017f},
;222:
;223:{0.147621f, -0.716567f, 0.681718f}, {0.000000f, -0.525731f, 0.850651f},
;224:
;225:{0.425325f, -0.688191f, 0.587785f}, {0.587785f, -0.425325f, 0.688191f},
;226:
;227:{0.688191f, -0.587785f, 0.425325f}, {-0.955423f, 0.295242f, 0.000000f},
;228:
;229:{-0.951056f, 0.162460f, 0.262866f}, {-1.000000f, 0.000000f, 0.000000f},
;230:
;231:{-0.850651f, 0.000000f, 0.525731f}, {-0.955423f, -0.295242f, 0.000000f},
;232:
;233:{-0.951056f, -0.162460f, 0.262866f}, {-0.864188f, 0.442863f, -0.238856f},
;234:
;235:{-0.951056f, 0.162460f, -0.262866f}, {-0.809017f, 0.309017f, -0.500000f},
;236:
;237:{-0.864188f, -0.442863f, -0.238856f}, {-0.951056f, -0.162460f, -0.262866f},
;238:
;239:{-0.809017f, -0.309017f, -0.500000f}, {-0.681718f, 0.147621f, -0.716567f},
;240:
;241:{-0.681718f, -0.147621f, -0.716567f}, {-0.850651f, 0.000000f, -0.525731f},
;242:
;243:{-0.688191f, 0.587785f, -0.425325f}, {-0.587785f, 0.425325f, -0.688191f},
;244:
;245:{-0.425325f, 0.688191f, -0.587785f}, {-0.425325f, -0.688191f, -0.587785f},
;246:
;247:{-0.587785f, -0.425325f, -0.688191f}, {-0.688191f, -0.587785f, -0.425325f}
;248:
;249:};
;250:
;251:
;252:
;253://==============================================================
;254:
;255:
;256:
;257:int Q_rand( int *seed ) {
line 259
;258:
;259: *seed = (69069 * *seed + 1);
ADDRLP4 0
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 0
INDIRP4
CNSTI4 69069
ADDRLP4 0
INDIRP4
INDIRI4
MULI4
CNSTI4 1
ADDI4
ASGNI4
line 261
;260:
;261: return *seed;
ADDRFP4 0
INDIRP4
INDIRI4
RETI4
LABELV $22
endproc Q_rand 4 0
export Q_random
proc Q_random 4 4
line 267
;262:
;263:}
;264:
;265:
;266:
;267:float Q_random( int *seed ) {
line 269
;268:
;269: 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 1199570944
DIVF4
RETF4
LABELV $23
endproc Q_random 4 4
export Q_crandom
proc Q_crandom 4 4
line 275
;270:
;271:}
;272:
;273:
;274:
;275:float Q_crandom( int *seed ) {
line 277
;276:
;277: return 2.0 * ( Q_random( seed ) - 0.5 );
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 0
ADDRGP4 Q_random
CALLF4
ASGNF4
CNSTF4 1073741824
ADDRLP4 0
INDIRF4
CNSTF4 1056964608
SUBF4
MULF4
RETF4
LABELV $24
endproc Q_crandom 4 4
export VectorCompare
proc VectorCompare 16 0
line 287
;278:
;279:}
;280:
;281:
;282:
;283:#ifdef __LCC__
;284:
;285:
;286:
;287:int VectorCompare( const vec3_t v1, const vec3_t v2 ) {
line 289
;288:
;289: 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 $29
ADDRLP4 8
CNSTI4 4
ASGNI4
ADDRLP4 0
INDIRP4
ADDRLP4 8
INDIRI4
ADDP4
INDIRF4
ADDRLP4 4
INDIRP4
ADDRLP4 8
INDIRI4
ADDP4
INDIRF4
NEF4 $29
ADDRLP4 12
CNSTI4 8
ASGNI4
ADDRLP4 0
INDIRP4
ADDRLP4 12
INDIRI4
ADDP4
INDIRF4
ADDRLP4 4
INDIRP4
ADDRLP4 12
INDIRI4
ADDP4
INDIRF4
EQF4 $26
LABELV $29
line 291
;290:
;291: return 0;
CNSTI4 0
RETI4
ADDRGP4 $25
JUMPV
LABELV $26
line 295
;292:
;293: }
;294:
;295: return 1;
CNSTI4 1
RETI4
LABELV $25
endproc VectorCompare 16 0
export VectorLength
proc VectorLength 20 4
line 301
;296:
;297:}
;298:
;299:
;300:
;301:vec_t VectorLength( const vec3_t v ) {
line 303
;302:
;303: 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 8
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ASGNF4
ADDRLP4 12
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ASGNF4
ADDRLP4 4
INDIRF4
ADDRLP4 4
INDIRF4
MULF4
ADDRLP4 8
INDIRF4
ADDRLP4 8
INDIRF4
MULF4
ADDF4
ADDRLP4 12
INDIRF4
ADDRLP4 12
INDIRF4
MULF4
ADDF4
ARGF4
ADDRLP4 16
ADDRGP4 sqrt
CALLF4
ASGNF4
ADDRLP4 16
INDIRF4
RETF4
LABELV $30
endproc VectorLength 20 4
export VectorLengthSquared
proc VectorLengthSquared 16 0
line 309
;304:
;305:}
;306:
;307:
;308:
;309:vec_t VectorLengthSquared( const vec3_t v ) {
line 311
;310:
;311: 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 8
ADDRLP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ASGNF4
ADDRLP4 12
ADDRLP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ASGNF4
ADDRLP4 4
INDIRF4
ADDRLP4 4
INDIRF4
MULF4
ADDRLP4 8
INDIRF4
ADDRLP4 8
INDIRF4
MULF4
ADDF4
ADDRLP4 12
INDIRF4
ADDRLP4 12
INDIRF4
MULF4
ADDF4
RETF4
LABELV $31
endproc VectorLengthSquared 16 0
export Distance
proc Distance 32 4
line 317
;312:
;313:}
;314:
;315:
;316:
;317:vec_t Distance( const vec3_t p1, const vec3_t p2 ) {
line 323
;318:
;319: vec3_t v;
;320:
;321:
;322:
;323: 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 20
CNSTI4 4
ASGNI4
ADDRLP4 0+4
ADDRLP4 12
INDIRP4
ADDRLP4 20
INDIRI4
ADDP4
INDIRF4
ADDRLP4 16
INDIRP4
ADDRLP4 20
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 24
CNSTI4 8
ASGNI4
ADDRLP4 0+8
ADDRFP4 4
INDIRP4
ADDRLP4 24
INDIRI4
ADDP4
INDIRF4
ADDRFP4 0
INDIRP4
ADDRLP4 24
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
line 325
;324:
;325: return VectorLength( v );
ADDRLP4 0
ARGP4
ADDRLP4 28
ADDRGP4 VectorLength
CALLF4
ASGNF4
ADDRLP4 28
INDIRF4
RETF4
LABELV $32
endproc Distance 32 4
export DistanceSquared
proc DistanceSquared 32 0
line 331
;326:
;327:}
;328:
;329:
;330:
;331:vec_t DistanceSquared( const vec3_t p1, const vec3_t p2 ) {
line 337
;332:
;333: vec3_t v;
;334:
;335:
;336:
;337: 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 20
CNSTI4 4
ASGNI4
ADDRLP4 0+4
ADDRLP4 12
INDIRP4
ADDRLP4 20
INDIRI4
ADDP4
INDIRF4
ADDRLP4 16
INDIRP4
ADDRLP4 20
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 24
CNSTI4 8
ASGNI4
ADDRLP4 0+8
ADDRFP4 4
INDIRP4
ADDRLP4 24
INDIRI4
ADDP4
INDIRF4
ADDRFP4 0
INDIRP4
ADDRLP4 24
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
line 339
;338:
;339: return v[0]*v[0] + v[1]*v[1] + v[2]*v[2];
ADDRLP4 28
ADDRLP4 0
INDIRF4
ASGNF4
ADDRLP4 28
INDIRF4
ADDRLP4 28
INDIRF4
MULF4
ADDRLP4 0+4
INDIRF4
ADDRLP4 0+4
INDIRF4
MULF4
ADDF4
ADDRLP4 0+8
INDIRF4
ADDRLP4 0+8
INDIRF4
MULF4
ADDF4
RETF4
LABELV $35
endproc DistanceSquared 32 0
export VectorNormalizeFast
proc VectorNormalizeFast 36 4
line 351
;340:
;341:}
;342:
;343:
;344:
;345:// fast vector normalize routine that does not check to make sure
;346:
;347:// that length != 0, nor does it return length, uses rsqrt approximation
;348:
;349:void VectorNormalizeFast( vec3_t v )
;350:
;351:{
line 357
;352:
;353: float ilength;
;354:
;355:
;356:
;357: ilength = Q_rsqrt( DotProduct( v, v ) );
ADDRLP4 4
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 8
ADDRLP4 4
INDIRP4
INDIRF4
ASGNF4
ADDRLP4 12
ADDRLP4 4
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ASGNF4
ADDRLP4 16
ADDRLP4 4
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ASGNF4
ADDRLP4 8
INDIRF4
ADDRLP4 8
INDIRF4
MULF4
ADDRLP4 12
INDIRF4
ADDRLP4 12
INDIRF4
MULF4
ADDF4
ADDRLP4 16
INDIRF4
ADDRLP4 16
INDIRF4
MULF4
ADDF4
ARGF4
ADDRLP4 20
ADDRGP4 Q_rsqrt
CALLF4
ASGNF4
ADDRLP4 0
ADDRLP4 20
INDIRF4
ASGNF4
line 361
;358:
;359:
;360:
;361: v[0] *= ilength;
ADDRLP4 24
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 24
INDIRP4
ADDRLP4 24
INDIRP4
INDIRF4
ADDRLP4 0
INDIRF4
MULF4
ASGNF4
line 363
;362:
;363: v[1] *= ilength;
ADDRLP4 28
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
ASGNP4
ADDRLP4 28
INDIRP4
ADDRLP4 28
INDIRP4
INDIRF4
ADDRLP4 0
INDIRF4
MULF4
ASGNF4
line 365
;364:
;365: v[2] *= ilength;
ADDRLP4 32
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
ASGNP4
ADDRLP4 32
INDIRP4
ADDRLP4 32
INDIRP4
INDIRF4
ADDRLP4 0
INDIRF4
MULF4
ASGNF4
line 367
;366:
;367:}
LABELV $42
endproc VectorNormalizeFast 36 4
export VectorInverse
proc VectorInverse 12 0
line 371
;368:
;369:
;370:
;371:void VectorInverse( vec3_t v ){
line 373
;372:
;373: v[0] = -v[0];
ADDRLP4 0
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 0
INDIRP4
ADDRLP4 0
INDIRP4
INDIRF4
NEGF4
ASGNF4
line 375
;374:
;375: v[1] = -v[1];
ADDRLP4 4
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
ASGNP4
ADDRLP4 4
INDIRP4
ADDRLP4 4
INDIRP4
INDIRF4
NEGF4
ASGNF4
line 377
;376:
;377: v[2] = -v[2];
ADDRLP4 8
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
ASGNP4
ADDRLP4 8
INDIRP4
ADDRLP4 8
INDIRP4
INDIRF4
NEGF4
ASGNF4
line 379
;378:
;379:}
LABELV $43
endproc VectorInverse 12 0
export CrossProduct
proc CrossProduct 40 0
line 383
;380:
;381:
;382:
;383:void CrossProduct( const vec3_t v1, const vec3_t v2, vec3_t cross ) {
line 385
;384:
;385: cross[0] = v1[1]*v2[2] - v1[2]*v2[1];
ADDRLP4 0
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 4
CNSTI4 4
ASGNI4
ADDRLP4 8
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 12
CNSTI4 8
ASGNI4
ADDRFP4 8
INDIRP4
ADDRLP4 0
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
INDIRF4
ADDRLP4 8
INDIRP4
ADDRLP4 12
INDIRI4
ADDP4
INDIRF4
MULF4
ADDRLP4 0
INDIRP4
ADDRLP4 12
INDIRI4
ADDP4
INDIRF4
ADDRLP4 8
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
INDIRF4
MULF4
SUBF4
ASGNF4
line 387
;386:
;387: cross[1] = v1[2]*v2[0] - v1[0]*v2[2];
ADDRLP4 16
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 20
CNSTI4 8
ASGNI4
ADDRLP4 24
ADDRFP4 4
INDIRP4
ASGNP4
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
ADDRLP4 16
INDIRP4
ADDRLP4 20
INDIRI4
ADDP4
INDIRF4
ADDRLP4 24
INDIRP4
INDIRF4
MULF4
ADDRLP4 16
INDIRP4
INDIRF4
ADDRLP4 24
INDIRP4
ADDRLP4 20
INDIRI4
ADDP4
INDIRF4
MULF4
SUBF4
ASGNF4
line 389
;388:
;389: cross[2] = v1[0]*v2[1] - v1[1]*v2[0];
ADDRLP4 28
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 32
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 36
CNSTI4 4
ASGNI4
ADDRFP4 8
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 28
INDIRP4
INDIRF4
ADDRLP4 32
INDIRP4
ADDRLP4 36
INDIRI4
ADDP4
INDIRF4
MULF4
ADDRLP4 28
INDIRP4
ADDRLP4 36
INDIRI4
ADDP4
INDIRF4
ADDRLP4 32
INDIRP4
INDIRF4
MULF4
SUBF4
ASGNF4
line 391
;390:
;391:}
LABELV $44
endproc CrossProduct 40 0
export ClampChar
proc ClampChar 0 0
line 401
;392:
;393:#endif
;394:
;395:
;396:
;397://=======================================================
;398:
;399:
;400:
;401:signed char ClampChar( int i ) {
line 403
;402:
;403: if ( i < -128 ) {
ADDRFP4 0
INDIRI4
CNSTI4 -128
GEI4 $46
line 405
;404:
;405: return -128;
CNSTI4 -128
RETI4
ADDRGP4 $45
JUMPV
LABELV $46
line 409
;406:
;407: }
;408:
;409: if ( i > 127 ) {
ADDRFP4 0
INDIRI4
CNSTI4 127
LEI4 $48
line 411
;410:
;411: return 127;
CNSTI4 127
RETI4
ADDRGP4 $45
JUMPV
LABELV $48
line 415
;412:
;413: }
;414:
;415: return i;
ADDRFP4 0
INDIRI4
CVII1 4
CVII4 1
RETI4
LABELV $45
endproc ClampChar 0 0
export ClampShort
proc ClampShort 0 0
line 421
;416:
;417:}
;418:
;419:
;420:
;421:signed short ClampShort( int i ) {
line 423
;422:
;423: if ( i < -32768 ) {
ADDRFP4 0
INDIRI4
CNSTI4 -32768
GEI4 $51
line 425
;424:
;425: return -32768;
CNSTI4 -32768
RETI4
ADDRGP4 $50
JUMPV
LABELV $51
line 429
;426:
;427: }
;428:
;429: if ( i > 0x7fff ) {
ADDRFP4 0
INDIRI4
CNSTI4 32767
LEI4 $53
line 431
;430:
;431: return 0x7fff;
CNSTI4 32767
RETI4
ADDRGP4 $50
JUMPV
LABELV $53
line 435
;432:
;433: }
;434:
;435: return i;
ADDRFP4 0
INDIRI4
CVII2 4
CVII4 2
RETI4
LABELV $50
endproc ClampShort 0 0
export DirToByte
proc DirToByte 24 0
line 445
;436:
;437:}
;438:
;439:
;440:
;441:
;442:
;443:// this isn't a real cheap function to call!
;444:
;445:int DirToByte( vec3_t dir ) {
line 453
;446:
;447: int i, best;
;448:
;449: float d, bestd;
;450:
;451:
;452:
;453: if ( !dir ) {
ADDRFP4 0
INDIRP4
CVPU4 4
CNSTU4 0
NEU4 $56
line 455
;454:
;455: return 0;
CNSTI4 0
RETI4
ADDRGP4 $55
JUMPV
LABELV $56
line 461
;456:
;457: }
;458:
;459:
;460:
;461: bestd = 0;
ADDRLP4 8
CNSTF4 0
ASGNF4
line 463
;462:
;463: best = 0;
ADDRLP4 12
CNSTI4 0
ASGNI4
line 465
;464:
;465: for (i=0 ; i<NUMVERTEXNORMALS ; i++)
ADDRLP4 0
CNSTI4 0
ASGNI4
LABELV $58
line 467
;466:
;467: {
line 469
;468:
;469: d = DotProduct (dir, bytedirs[i]);
ADDRLP4 16
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 20
CNSTI4 12
ADDRLP4 0
INDIRI4
MULI4
ASGNI4
ADDRLP4 4
ADDRLP4 16
INDIRP4
INDIRF4
ADDRLP4 20
INDIRI4
ADDRGP4 bytedirs
ADDP4
INDIRF4
MULF4
ADDRLP4 16
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 20
INDIRI4
ADDRGP4 bytedirs+4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 16
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 20
INDIRI4
ADDRGP4 bytedirs+8
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 471
;470:
;471: if (d > bestd)
ADDRLP4 4
INDIRF4
ADDRLP4 8
INDIRF4
LEF4 $64
line 473
;472:
;473: {
line 475
;474:
;475: bestd = d;
ADDRLP4 8
ADDRLP4 4
INDIRF4
ASGNF4
line 477
;476:
;477: best = i;
ADDRLP4 12
ADDRLP4 0
INDIRI4
ASGNI4
line 479
;478:
;479: }
LABELV $64
line 481
;480:
;481: }
LABELV $59
line 465
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 162
LTI4 $58
line 485
;482:
;483:
;484:
;485: return best;
ADDRLP4 12
INDIRI4
RETI4
LABELV $55
endproc DirToByte 24 0
export ByteToDir
proc ByteToDir 4 0
line 491
;486:
;487:}
;488:
;489:
;490:
;491:void ByteToDir( int b, vec3_t dir ) {
line 493
;492:
;493: if ( b < 0 || b >= NUMVERTEXNORMALS ) {
ADDRLP4 0
ADDRFP4 0
INDIRI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 0
LTI4 $69
ADDRLP4 0
INDIRI4
CNSTI4 162
LTI4 $67
LABELV $69
line 495
;494:
;495: VectorCopy( vec3_origin, dir );
ADDRFP4 4
INDIRP4
ADDRGP4 vec3_origin
INDIRB
ASGNB 12
line 497
;496:
;497: return;
ADDRGP4 $66
JUMPV
LABELV $67
line 501
;498:
;499: }
;500:
;501: VectorCopy (bytedirs[b], dir);
ADDRFP4 4
INDIRP4
CNSTI4 12
ADDRFP4 0
INDIRI4
MULI4
ADDRGP4 bytedirs
ADDP4
INDIRB
ASGNB 12
line 503
;502:
;503:}
LABELV $66
endproc ByteToDir 4 0
export ColorBytes3
proc ColorBytes3 40 0
line 509
;504:
;505:
;506:
;507:
;508:
;509:unsigned ColorBytes3 (float r, float g, float b) {
line 515
;510:
;511: unsigned i;
;512:
;513:
;514:
;515: ( (byte *)&i )[0] = r * 255;
ADDRLP4 8
CNSTF4 1132396544
ADDRFP4 0
INDIRF4
MULF4
ASGNF4
ADDRLP4 12
CNSTF4 1325400064
ASGNF4
ADDRLP4 8
INDIRF4
ADDRLP4 12
INDIRF4
LTF4 $72
ADDRLP4 4
ADDRLP4 8
INDIRF4
ADDRLP4 12
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $73
JUMPV
LABELV $72
ADDRLP4 4
ADDRLP4 8
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $73
ADDRLP4 0
ADDRLP4 4
INDIRU4
CVUU1 4
ASGNU1
line 517
;516:
;517: ( (byte *)&i )[1] = g * 255;
ADDRLP4 20
CNSTF4 1132396544
ADDRFP4 4
INDIRF4
MULF4
ASGNF4
ADDRLP4 24
CNSTF4 1325400064
ASGNF4
ADDRLP4 20
INDIRF4
ADDRLP4 24
INDIRF4
LTF4 $76
ADDRLP4 16
ADDRLP4 20
INDIRF4
ADDRLP4 24
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $77
JUMPV
LABELV $76
ADDRLP4 16
ADDRLP4 20
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $77
ADDRLP4 0+1
ADDRLP4 16
INDIRU4
CVUU1 4
ASGNU1
line 519
;518:
;519: ( (byte *)&i )[2] = b * 255;
ADDRLP4 32
CNSTF4 1132396544
ADDRFP4 8
INDIRF4
MULF4
ASGNF4
ADDRLP4 36
CNSTF4 1325400064
ASGNF4
ADDRLP4 32
INDIRF4
ADDRLP4 36
INDIRF4
LTF4 $80
ADDRLP4 28
ADDRLP4 32
INDIRF4
ADDRLP4 36
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $81
JUMPV
LABELV $80
ADDRLP4 28
ADDRLP4 32
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $81
ADDRLP4 0+2
ADDRLP4 28
INDIRU4
CVUU1 4
ASGNU1
line 523
;520:
;521:
;522:
;523: return i;
ADDRLP4 0
INDIRU4
RETU4
LABELV $70
endproc ColorBytes3 40 0
export ColorBytes4
proc ColorBytes4 52 0
line 529
;524:
;525:}
;526:
;527:
;528:
;529:unsigned ColorBytes4 (float r, float g, float b, float a) {
line 535
;530:
;531: unsigned i;
;532:
;533:
;534:
;535: ( (byte *)&i )[0] = r * 255;
ADDRLP4 8
CNSTF4 1132396544
ADDRFP4 0
INDIRF4
MULF4
ASGNF4
ADDRLP4 12
CNSTF4 1325400064
ASGNF4
ADDRLP4 8
INDIRF4
ADDRLP4 12
INDIRF4
LTF4 $84
ADDRLP4 4
ADDRLP4 8
INDIRF4
ADDRLP4 12
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $85
JUMPV
LABELV $84
ADDRLP4 4
ADDRLP4 8
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $85
ADDRLP4 0
ADDRLP4 4
INDIRU4
CVUU1 4
ASGNU1
line 537
;536:
;537: ( (byte *)&i )[1] = g * 255;
ADDRLP4 20
CNSTF4 1132396544
ADDRFP4 4
INDIRF4
MULF4
ASGNF4
ADDRLP4 24
CNSTF4 1325400064
ASGNF4
ADDRLP4 20
INDIRF4
ADDRLP4 24
INDIRF4
LTF4 $88
ADDRLP4 16
ADDRLP4 20
INDIRF4
ADDRLP4 24
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $89
JUMPV
LABELV $88
ADDRLP4 16
ADDRLP4 20
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $89
ADDRLP4 0+1
ADDRLP4 16
INDIRU4
CVUU1 4
ASGNU1
line 539
;538:
;539: ( (byte *)&i )[2] = b * 255;
ADDRLP4 32
CNSTF4 1132396544
ADDRFP4 8
INDIRF4
MULF4
ASGNF4
ADDRLP4 36
CNSTF4 1325400064
ASGNF4
ADDRLP4 32
INDIRF4
ADDRLP4 36
INDIRF4
LTF4 $92
ADDRLP4 28
ADDRLP4 32
INDIRF4
ADDRLP4 36
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $93
JUMPV
LABELV $92
ADDRLP4 28
ADDRLP4 32
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $93
ADDRLP4 0+2
ADDRLP4 28
INDIRU4
CVUU1 4
ASGNU1
line 541
;540:
;541: ( (byte *)&i )[3] = a * 255;
ADDRLP4 44
CNSTF4 1132396544
ADDRFP4 12
INDIRF4
MULF4
ASGNF4
ADDRLP4 48
CNSTF4 1325400064
ASGNF4
ADDRLP4 44
INDIRF4
ADDRLP4 48
INDIRF4
LTF4 $96
ADDRLP4 40
ADDRLP4 44
INDIRF4
ADDRLP4 48
INDIRF4
SUBF4
CVFI4 4
CVIU4 4
CNSTU4 2147483648
ADDU4
ASGNU4
ADDRGP4 $97
JUMPV
LABELV $96
ADDRLP4 40
ADDRLP4 44
INDIRF4
CVFI4 4
CVIU4 4
ASGNU4
LABELV $97
ADDRLP4 0+3
ADDRLP4 40
INDIRU4
CVUU1 4
ASGNU1
line 545
;542:
;543:
;544:
;545: return i;
ADDRLP4 0
INDIRU4
RETU4
LABELV $82
endproc ColorBytes4 52 0
export NormalizeColor
proc NormalizeColor 12 0
line 551
;546:
;547:}
;548:
;549:
;550:
;551:float NormalizeColor( const vec3_t in, vec3_t out ) {
line 557
;552:
;553: float max;
;554:
;555:
;556:
;557: max = in[0];
ADDRLP4 0
ADDRFP4 0
INDIRP4
INDIRF4
ASGNF4
line 559
;558:
;559: if ( in[1] > max ) {
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 0
INDIRF4
LEF4 $99
line 561
;560:
;561: max = in[1];
ADDRLP4 0
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ASGNF4
line 563
;562:
;563: }
LABELV $99
line 565
;564:
;565: if ( in[2] > max ) {
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 0
INDIRF4
LEF4 $101
line 567
;566:
;567: max = in[2];
ADDRLP4 0
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ASGNF4
line 569
;568:
;569: }
LABELV $101
line 573
;570:
;571:
;572:
;573: if ( !max ) {
ADDRLP4 0
INDIRF4
CNSTF4 0
NEF4 $103
line 575
;574:
;575: VectorClear( out );
ADDRLP4 4
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 8
CNSTF4 0
ASGNF4
ADDRLP4 4
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 8
INDIRF4
ASGNF4
ADDRLP4 4
INDIRP4
CNSTI4 4
ADDP4
ADDRLP4 8
INDIRF4
ASGNF4
ADDRLP4 4
INDIRP4
ADDRLP4 8
INDIRF4
ASGNF4
line 577
;576:
;577: } else {
ADDRGP4 $104
JUMPV
LABELV $103
line 579
;578:
;579: out[0] = in[0] / max;
ADDRFP4 4
INDIRP4
ADDRFP4 0
INDIRP4
INDIRF4
ADDRLP4 0
INDIRF4
DIVF4
ASGNF4
line 581
;580:
;581: out[1] = in[1] / max;
ADDRLP4 4
CNSTI4 4
ASGNI4
ADDRFP4 4
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
INDIRF4
ADDRLP4 0
INDIRF4
DIVF4
ASGNF4
line 583
;582:
;583: out[2] = in[2] / max;
ADDRLP4 8
CNSTI4 8
ASGNI4
ADDRFP4 4
INDIRP4
ADDRLP4 8
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 8
INDIRI4
ADDP4
INDIRF4
ADDRLP4 0
INDIRF4
DIVF4
ASGNF4
line 585
;584:
;585: }
LABELV $104
line 587
;586:
;587: return max;
ADDRLP4 0
INDIRF4
RETF4
LABELV $98
endproc NormalizeColor 12 0
export PlaneFromPoints
proc PlaneFromPoints 76 12
line 611
;588:
;589:}
;590:
;591:
;592:
;593:
;594:
;595:/*
;596:
;597:=====================
;598:
;599:PlaneFromPoints
;600:
;601:
;602:
;603:Returns false if the triangle is degenrate.
;604:
;605:The normal will point out of the clock for clockwise ordered points
;606:
;607:=====================
;608:
;609:*/
;610:
;611:qboolean PlaneFromPoints( vec4_t plane, const vec3_t a, const vec3_t b, const vec3_t c ) {
line 617
;612:
;613: vec3_t d1, d2;
;614:
;615:
;616:
;617: 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 32
CNSTI4 4
ASGNI4
ADDRLP4 0+4
ADDRLP4 24
INDIRP4
ADDRLP4 32
INDIRI4
ADDP4
INDIRF4
ADDRLP4 28
INDIRP4
ADDRLP4 32
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 36
CNSTI4 8
ASGNI4
ADDRLP4 0+8
ADDRFP4 8
INDIRP4
ADDRLP4 36
INDIRI4
ADDP4
INDIRF4
ADDRFP4 4
INDIRP4
ADDRLP4 36
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
line 619
;618:
;619: VectorSubtract( c, a, d2 );
ADDRLP4 40
ADDRFP4 12
INDIRP4
ASGNP4
ADDRLP4 44
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 12
ADDRLP4 40
INDIRP4
INDIRF4
ADDRLP4 44
INDIRP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 48
CNSTI4 4
ASGNI4
ADDRLP4 12+4
ADDRLP4 40
INDIRP4
ADDRLP4 48
INDIRI4
ADDP4
INDIRF4
ADDRLP4 44
INDIRP4
ADDRLP4 48
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
ADDRLP4 52
CNSTI4 8
ASGNI4
ADDRLP4 12+8
ADDRFP4 12
INDIRP4
ADDRLP4 52
INDIRI4
ADDP4
INDIRF4
ADDRFP4 4
INDIRP4
ADDRLP4 52
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
line 621
;620:
;621: CrossProduct( d2, d1, plane );
ADDRLP4 12
ARGP4
ADDRLP4 0
ARGP4
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 CrossProduct
CALLV
pop
line 623
;622:
;623: if ( VectorNormalize( plane ) == 0 ) {
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 56
ADDRGP4 VectorNormalize
CALLF4
ASGNF4
ADDRLP4 56
INDIRF4
CNSTF4 0
NEF4 $110
line 625
;624:
;625: return qfalse;
CNSTI4 0
RETI4
ADDRGP4 $105
JUMPV
LABELV $110
line 631
;626:
;627: }
;628:
;629:
;630:
;631: plane[3] = DotProduct( a, plane );
ADDRLP4 60
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 64
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 68
CNSTI4 4
ASGNI4
ADDRLP4 72
CNSTI4 8
ASGNI4
ADDRLP4 60
INDIRP4
CNSTI4 12
ADDP4
ADDRLP4 64
INDIRP4
INDIRF4
ADDRLP4 60
INDIRP4
INDIRF4
MULF4
ADDRLP4 64
INDIRP4
ADDRLP4 68
INDIRI4
ADDP4
INDIRF4
ADDRLP4 60
INDIRP4
ADDRLP4 68
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 64
INDIRP4
ADDRLP4 72
INDIRI4
ADDP4
INDIRF4
ADDRLP4 60
INDIRP4
ADDRLP4 72
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 633
;632:
;633: return qtrue;
CNSTI4 1
RETI4
LABELV $105
endproc PlaneFromPoints 76 12
export RotatePointAroundVector
proc RotatePointAroundVector 256 12
line 655
;634:
;635:}
;636:
;637:
;638:
;639:/*
;640:
;641:===============
;642:
;643:RotatePointAroundVector
;644:
;645:
;646:
;647:This is not implemented very well...
;648:
;649:===============
;650:
;651:*/
;652:
;653:void RotatePointAroundVector( vec3_t dst, const vec3_t dir, const vec3_t point,
;654:
;655: float degrees ) {
line 675
;656:
;657: float m[3][3];
;658:
;659: float im[3][3];
;660:
;661: float zrot[3][3];
;662:
;663: float tmpmat[3][3];
;664:
;665: float rot[3][3];
;666:
;667: int i;
;668:
;669: vec3_t vr, vup, vf;
;670:
;671: float rad;
;672:
;673:
;674:
;675: vf[0] = dir[0];
ADDRLP4 148
ADDRFP4 4
INDIRP4
INDIRF4
ASGNF4
line 677
;676:
;677: vf[1] = dir[1];
ADDRLP4 148+4
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ASGNF4
line 679
;678:
;679: vf[2] = dir[2];
ADDRLP4 148+8
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ASGNF4
line 683
;680:
;681:
;682:
;683: PerpendicularVector( vr, dir );
ADDRLP4 160
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 PerpendicularVector
CALLV
pop
line 685
;684:
;685: CrossProduct( vr, vf, vup );
ADDRLP4 160
ARGP4
ADDRLP4 148
ARGP4
ADDRLP4 176
ARGP4
ADDRGP4 CrossProduct
CALLV
pop
line 689
;686:
;687:
;688:
;689: m[0][0] = vr[0];
ADDRLP4 40
ADDRLP4 160
INDIRF4
ASGNF4
line 691
;690:
;691: m[1][0] = vr[1];
ADDRLP4 40+12
ADDRLP4 160+4
INDIRF4
ASGNF4
line 693
;692:
;693: m[2][0] = vr[2];
ADDRLP4 40+24
ADDRLP4 160+8
INDIRF4
ASGNF4
line 697
;694:
;695:
;696:
;697: m[0][1] = vup[0];
ADDRLP4 40+4
ADDRLP4 176
INDIRF4
ASGNF4
line 699
;698:
;699: m[1][1] = vup[1];
ADDRLP4 40+12+4
ADDRLP4 176+4
INDIRF4
ASGNF4
line 701
;700:
;701: m[2][1] = vup[2];
ADDRLP4 40+24+4
ADDRLP4 176+8
INDIRF4
ASGNF4
line 705
;702:
;703:
;704:
;705: m[0][2] = vf[0];
ADDRLP4 40+8
ADDRLP4 148
INDIRF4
ASGNF4
line 707
;706:
;707: m[1][2] = vf[1];
ADDRLP4 40+12+8
ADDRLP4 148+4
INDIRF4
ASGNF4
line 709
;708:
;709: m[2][2] = vf[2];
ADDRLP4 40+24+8
ADDRLP4 148+8
INDIRF4
ASGNF4
line 713
;710:
;711:
;712:
;713: memcpy( im, m, sizeof( im ) );
ADDRLP4 112
ARGP4
ADDRLP4 40
ARGP4
CNSTI4 36
ARGI4
ADDRGP4 memcpy
CALLP4
pop
line 717
;714:
;715:
;716:
;717: im[0][1] = m[1][0];
ADDRLP4 112+4
ADDRLP4 40+12
INDIRF4
ASGNF4
line 719
;718:
;719: im[0][2] = m[2][0];
ADDRLP4 112+8
ADDRLP4 40+24
INDIRF4
ASGNF4
line 721
;720:
;721: im[1][0] = m[0][1];
ADDRLP4 112+12
ADDRLP4 40+4
INDIRF4
ASGNF4
line 723
;722:
;723: im[1][2] = m[2][1];
ADDRLP4 112+12+8
ADDRLP4 40+24+4
INDIRF4
ASGNF4
line 725
;724:
;725: im[2][0] = m[0][2];
ADDRLP4 112+24
ADDRLP4 40+8
INDIRF4
ASGNF4
line 727
;726:
;727: im[2][1] = m[1][2];
ADDRLP4 112+24+4
ADDRLP4 40+12+8
INDIRF4
ASGNF4
line 731
;728:
;729:
;730:
;731: memset( zrot, 0, sizeof( zrot ) );
ADDRLP4 76
ARGP4
CNSTI4 0
ARGI4
CNSTI4 36
ARGI4
ADDRGP4 memset
CALLP4
pop
line 733
;732:
;733: 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 737
;734:
;735:
;736:
;737: rad = DEG2RAD( degrees );
ADDRLP4 172
CNSTF4 1078530011
ADDRFP4 12
INDIRF4
MULF4
CNSTF4 1127481344
DIVF4
ASGNF4
line 739
;738:
;739: zrot[0][0] = cos( rad );
ADDRLP4 172
INDIRF4
ARGF4
ADDRLP4 228
ADDRGP4 cos
CALLF4
ASGNF4
ADDRLP4 76
ADDRLP4 228
INDIRF4
ASGNF4
line 741
;740:
;741: zrot[0][1] = sin( rad );
ADDRLP4 172
INDIRF4
ARGF4
ADDRLP4 232
ADDRGP4 sin
CALLF4
ASGNF4
ADDRLP4 76+4
ADDRLP4 232
INDIRF4
ASGNF4
line 743
;742:
;743: zrot[1][0] = -sin( rad );
ADDRLP4 172
INDIRF4
ARGF4
ADDRLP4 236
ADDRGP4 sin
CALLF4
ASGNF4
ADDRLP4 76+12
ADDRLP4 236
INDIRF4
NEGF4
ASGNF4
line 745
;744:
;745: zrot[1][1] = cos( rad );
ADDRLP4 172
INDIRF4
ARGF4
ADDRLP4 240
ADDRGP4 cos
CALLF4
ASGNF4
ADDRLP4 76+12+4
ADDRLP4 240
INDIRF4
ASGNF4
line 749
;746:
;747:
;748:
;749: MatrixMultiply( m, zrot, tmpmat );
ADDRLP4 40
ARGP4
ADDRLP4 76
ARGP4
ADDRLP4 188
ARGP4
ADDRGP4 MatrixMultiply
CALLV
pop
line 751
;750:
;751: MatrixMultiply( tmpmat, im, rot );
ADDRLP4 188
ARGP4
ADDRLP4 112
ARGP4
ADDRLP4 4
ARGP4
ADDRGP4 MatrixMultiply
CALLV
pop
line 755
;752:
;753:
;754:
;755: for ( i = 0; i < 3; i++ ) {
ADDRLP4 0
CNSTI4 0
ASGNI4
LABELV $157
line 757
;756:
;757: dst[i] = rot[i][0] * point[0] + rot[i][1] * point[1] + rot[i][2] * point[2];
ADDRLP4 248
CNSTI4 12
ADDRLP4 0
INDIRI4
MULI4
ASGNI4
ADDRLP4 252
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRFP4 0
INDIRP4
ADDP4
ADDRLP4 248
INDIRI4
ADDRLP4 4
ADDP4
INDIRF4
ADDRLP4 252
INDIRP4
INDIRF4
MULF4
ADDRLP4 248
INDIRI4
ADDRLP4 4+4
ADDP4
INDIRF4
ADDRLP4 252
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 248
INDIRI4
ADDRLP4 4+8
ADDP4
INDIRF4
ADDRLP4 252
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 759
;758:
;759: }
LABELV $158
line 755
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 3
LTI4 $157
line 761
;760:
;761:}
LABELV $112
endproc RotatePointAroundVector 256 12
export RotateAroundDirection
proc RotateAroundDirection 20 16
line 775
;762:
;763:
;764:
;765:/*
;766:
;767:===============
;768:
;769:RotateAroundDirection
;770:
;771:===============
;772:
;773:*/
;774:
;775:void RotateAroundDirection( vec3_t axis[3], float yaw ) {
line 781
;776:
;777:
;778:
;779: // create an arbitrary axis[1]
;780:
;781: 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 787
;782:
;783:
;784:
;785: // rotate it around axis[0] by yaw
;786:
;787: if ( yaw ) {
ADDRFP4 4
INDIRF4
CNSTF4 0
EQF4 $164
line 793
;788:
;789: vec3_t temp;
;790:
;791:
;792:
;793: VectorCopy( axis[1], temp );
ADDRLP4 4
ADDRFP4 0
INDIRP4
CNSTI4 12
ADDP4
INDIRB
ASGNB 12
line 795
;794:
;795: 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 797
;796:
;797: }
LABELV $164
line 803
;798:
;799:
;800:
;801: // cross to get axis[2]
;802:
;803: 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 805
;804:
;805:}
LABELV $163
endproc RotateAroundDirection 20 16
export vectoangles
proc vectoangles 40 8
line 813
;806:
;807:
;808:
;809:
;810:
;811:
;812:
;813:void vectoangles( const vec3_t value1, vec3_t angles ) {
line 821
;814:
;815: float forward;
;816:
;817: float yaw, pitch;
;818:
;819:
;820:
;821: if ( value1[1] == 0 && value1[0] == 0 ) {
ADDRLP4 12
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 16
CNSTF4 0
ASGNF4
ADDRLP4 12
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 16
INDIRF4
NEF4 $167
ADDRLP4 12
INDIRP4
INDIRF4
ADDRLP4 16
INDIRF4
NEF4 $167
line 823
;822:
;823: yaw = 0;
ADDRLP4 0
CNSTF4 0
ASGNF4
line 825
;824:
;825: if ( value1[2] > 0 ) {
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
CNSTF4 0
LEF4 $169
line 827
;826:
;827: pitch = 90;
ADDRLP4 4
CNSTF4 1119092736
ASGNF4
line 829
;828:
;829: }
ADDRGP4 $168
JUMPV
LABELV $169
line 831
;830:
;831: else {
line 833
;832:
;833: pitch = 270;
ADDRLP4 4
CNSTF4 1132920832
ASGNF4
line 835
;834:
;835: }
line 837
;836:
;837: }
ADDRGP4 $168
JUMPV
LABELV $167
line 839
;838:
;839: else {
line 841
;840:
;841: if ( value1[0] ) {
ADDRFP4 0
INDIRP4
INDIRF4
CNSTF4 0
EQF4 $171
line 843
;842:
;843: yaw = ( atan2 ( value1[1], value1[0] ) * 180 / M_PI );
ADDRLP4 20
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 20
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ARGF4
ADDRLP4 20
INDIRP4
INDIRF4
ARGF4
ADDRLP4 24
ADDRGP4 atan2
CALLF4
ASGNF4
ADDRLP4 0
CNSTF4 1127481344
ADDRLP4 24
INDIRF4
MULF4
CNSTF4 1078530011
DIVF4
ASGNF4
line 845
;844:
;845: }
ADDRGP4 $172
JUMPV
LABELV $171
line 847
;846:
;847: else if ( value1[1] > 0 ) {
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
CNSTF4 0
LEF4 $173
line 849
;848:
;849: yaw = 90;
ADDRLP4 0
CNSTF4 1119092736
ASGNF4
line 851
;850:
;851: }
ADDRGP4 $174
JUMPV
LABELV $173
line 853
;852:
;853: else {
line 855
;854:
;855: yaw = 270;
ADDRLP4 0
CNSTF4 1132920832
ASGNF4
line 857
;856:
;857: }
LABELV $174
LABELV $172
line 859
;858:
;859: if ( yaw < 0 ) {
ADDRLP4 0
INDIRF4
CNSTF4 0
GEF4 $175
line 861
;860:
;861: yaw += 360;
ADDRLP4 0
ADDRLP4 0
INDIRF4
CNSTF4 1135869952
ADDF4
ASGNF4
line 863
;862:
;863: }
LABELV $175
line 867
;864:
;865:
;866:
;867: forward = sqrt ( value1[0]*value1[0] + value1[1]*value1[1] );
ADDRLP4 20
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 24
ADDRLP4 20
INDIRP4
INDIRF4
ASGNF4
ADDRLP4 28
ADDRLP4 20
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ASGNF4
ADDRLP4 24
INDIRF4
ADDRLP4 24
INDIRF4
MULF4
ADDRLP4 28
INDIRF4
ADDRLP4 28
INDIRF4
MULF4
ADDF4
ARGF4
ADDRLP4 32
ADDRGP4 sqrt
CALLF4
ASGNF4
ADDRLP4 8
ADDRLP4 32
INDIRF4
ASGNF4
line 869
;868:
;869: pitch = ( atan2(value1[2], forward) * 180 / M_PI );
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ARGF4
ADDRLP4 8
INDIRF4
ARGF4
ADDRLP4 36
ADDRGP4 atan2
CALLF4
ASGNF4
ADDRLP4 4
CNSTF4 1127481344
ADDRLP4 36
INDIRF4
MULF4
CNSTF4 1078530011
DIVF4
ASGNF4
line 871
;870:
;871: if ( pitch < 0 ) {
ADDRLP4 4
INDIRF4
CNSTF4 0
GEF4 $177
line 873
;872:
;873: pitch += 360;
ADDRLP4 4
ADDRLP4 4
INDIRF4
CNSTF4 1135869952
ADDF4
ASGNF4
line 875
;874:
;875: }
LABELV $177
line 877
;876:
;877: }
LABELV $168
line 881
;878:
;879:
;880:
;881: angles[PITCH] = -pitch;
ADDRFP4 4
INDIRP4
ADDRLP4 4
INDIRF4
NEGF4
ASGNF4
line 883
;882:
;883: angles[YAW] = yaw;
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
ADDRLP4 0
INDIRF4
ASGNF4
line 885
;884:
;885: angles[ROLL] = 0;
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
CNSTF4 0
ASGNF4
line 887
;886:
;887:}
LABELV $166
endproc vectoangles 40 8
export AnglesToAxis
proc AnglesToAxis 16 16
line 903
;888:
;889:
;890:
;891:
;892:
;893:/*
;894:
;895:=================
;896:
;897:AnglesToAxis
;898:
;899:=================
;900:
;901:*/
;902:
;903:void AnglesToAxis( const vec3_t angles, vec3_t axis[3] ) {
line 911
;904:
;905: vec3_t right;
;906:
;907:
;908:
;909: // angle vectors returns "right" instead of "y axis"
;910:
;911: 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 913
;912:
;913: 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 915
;914:
;915:}
LABELV $179
endproc AnglesToAxis 16 16
export AxisClear
proc AxisClear 0 0
line 919
;916:
;917:
;918:
;919:void AxisClear( vec3_t axis[3] ) {
line 921
;920:
;921: axis[0][0] = 1;
ADDRFP4 0
INDIRP4
CNSTF4 1065353216
ASGNF4
line 923
;922:
;923: axis[0][1] = 0;
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
CNSTF4 0
ASGNF4
line 925
;924:
;925: axis[0][2] = 0;
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
CNSTF4 0
ASGNF4
line 927
;926:
;927: axis[1][0] = 0;
ADDRFP4 0
INDIRP4
CNSTI4 12
ADDP4
CNSTF4 0
ASGNF4
line 929
;928:
;929: axis[1][1] = 1;
ADDRFP4 0
INDIRP4
CNSTI4 16
ADDP4
CNSTF4 1065353216
ASGNF4
line 931
;930:
;931: axis[1][2] = 0;
ADDRFP4 0
INDIRP4
CNSTI4 20
ADDP4
CNSTF4 0
ASGNF4
line 933
;932:
;933: axis[2][0] = 0;
ADDRFP4 0
INDIRP4
CNSTI4 24
ADDP4
CNSTF4 0
ASGNF4
line 935
;934:
;935: axis[2][1] = 0;
ADDRFP4 0
INDIRP4
CNSTI4 28
ADDP4
CNSTF4 0
ASGNF4
line 937
;936:
;937: axis[2][2] = 1;
ADDRFP4 0
INDIRP4
CNSTI4 32
ADDP4
CNSTF4 1065353216
ASGNF4
line 939
;938:
;939:}
LABELV $184
endproc AxisClear 0 0
export AxisCopy
proc AxisCopy 8 0
line 943
;940:
;941:
;942:
;943:void AxisCopy( vec3_t in[3], vec3_t out[3] ) {
line 945
;944:
;945: VectorCopy( in[0], out[0] );
ADDRFP4 4
INDIRP4
ADDRFP4 0
INDIRP4
INDIRB
ASGNB 12
line 947
;946:
;947: VectorCopy( in[1], out[1] );
ADDRLP4 0
CNSTI4 12
ASGNI4
ADDRFP4 4
INDIRP4
ADDRLP4 0
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 0
INDIRI4
ADDP4
INDIRB
ASGNB 12
line 949
;948:
;949: VectorCopy( in[2], out[2] );
ADDRLP4 4
CNSTI4 24
ASGNI4
ADDRFP4 4
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
INDIRB
ASGNB 12
line 951
;950:
;951:}
LABELV $185
endproc AxisCopy 8 0
export ProjectPointOnPlane
proc ProjectPointOnPlane 60 0
line 957
;952:
;953:
;954:
;955:void ProjectPointOnPlane( vec3_t dst, const vec3_t p, const vec3_t normal )
;956:
;957:{
line 967
;958:
;959: float d;
;960:
;961: vec3_t n;
;962:
;963: float inv_denom;
;964:
;965:
;966:
;967: inv_denom = DotProduct( normal, normal );
ADDRLP4 20
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 24
ADDRLP4 20
INDIRP4
INDIRF4
ASGNF4
ADDRLP4 28
ADDRLP4 20
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ASGNF4
ADDRLP4 32
ADDRLP4 20
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ASGNF4
ADDRLP4 0
ADDRLP4 24
INDIRF4
ADDRLP4 24
INDIRF4
MULF4
ADDRLP4 28
INDIRF4
ADDRLP4 28
INDIRF4
MULF4
ADDF4
ADDRLP4 32
INDIRF4
ADDRLP4 32
INDIRF4
MULF4
ADDF4
ASGNF4
line 975
;968:
;969:#ifndef Q3_VM
;970:
;971: assert( Q_fabs(inv_denom) != 0.0f ); // bk010122 - zero vectors get here
;972:
;973:#endif
;974:
;975: inv_denom = 1.0f / inv_denom;
ADDRLP4 0
CNSTF4 1065353216
ADDRLP4 0
INDIRF4
DIVF4
ASGNF4
line 979
;976:
;977:
;978:
;979: d = DotProduct( normal, p ) * inv_denom;
ADDRLP4 36
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 40
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 44
CNSTI4 4
ASGNI4
ADDRLP4 48
CNSTI4 8
ASGNI4
ADDRLP4 16
ADDRLP4 36
INDIRP4
INDIRF4
ADDRLP4 40
INDIRP4
INDIRF4
MULF4
ADDRLP4 36
INDIRP4
ADDRLP4 44
INDIRI4
ADDP4
INDIRF4
ADDRLP4 40
INDIRP4
ADDRLP4 44
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 36
INDIRP4
ADDRLP4 48
INDIRI4
ADDP4
INDIRF4
ADDRLP4 40
INDIRP4
ADDRLP4 48
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 0
INDIRF4
MULF4
ASGNF4
line 983
;980:
;981:
;982:
;983: n[0] = normal[0] * inv_denom;
ADDRLP4 4
ADDRFP4 8
INDIRP4
INDIRF4
ADDRLP4 0
INDIRF4
MULF4
ASGNF4
line 985
;984:
;985: n[1] = normal[1] * inv_denom;
ADDRLP4 4+4
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 0
INDIRF4
MULF4
ASGNF4
line 987
;986:
;987: n[2] = normal[2] * inv_denom;
ADDRLP4 4+8
ADDRFP4 8
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 0
INDIRF4
MULF4
ASGNF4
line 991
;988:
;989:
;990:
;991: dst[0] = p[0] - d * n[0];
ADDRFP4 0
INDIRP4
ADDRFP4 4
INDIRP4
INDIRF4
ADDRLP4 16
INDIRF4
ADDRLP4 4
INDIRF4
MULF4
SUBF4
ASGNF4
line 993
;992:
;993: dst[1] = p[1] - d * n[1];
ADDRLP4 52
CNSTI4 4
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 52
INDIRI4
ADDP4
ADDRFP4 4
INDIRP4
ADDRLP4 52
INDIRI4
ADDP4
INDIRF4
ADDRLP4 16
INDIRF4
ADDRLP4 4+4
INDIRF4
MULF4
SUBF4
ASGNF4
line 995
;994:
;995: dst[2] = p[2] - d * n[2];
ADDRLP4 56
CNSTI4 8
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 56
INDIRI4
ADDP4
ADDRFP4 4
INDIRP4
ADDRLP4 56
INDIRI4
ADDP4
INDIRF4
ADDRLP4 16
INDIRF4
ADDRLP4 4+8
INDIRF4
MULF4
SUBF4
ASGNF4
line 997
;996:
;997:}
LABELV $186
endproc ProjectPointOnPlane 60 0
export MakeNormalVectors
proc MakeNormalVectors 40 12
line 1017
;998:
;999:
;1000:
;1001:/*
;1002:
;1003:================
;1004:
;1005:MakeNormalVectors
;1006:
;1007:
;1008:
;1009:Given a normalized forward vector, create two
;1010:
;1011:other perpendicular vectors
;1012:
;1013:================
;1014:
;1015:*/
;1016:
;1017:void MakeNormalVectors( const vec3_t forward, vec3_t right, vec3_t up) {
line 1027
;1018:
;1019: float d;
;1020:
;1021:
;1022:
;1023: // this rotate and negate guarantees a vector
;1024:
;1025: // not colinear with the original
;1026:
;1027: right[1] = -forward[0];
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
ADDRFP4 0
INDIRP4
INDIRF4
NEGF4
ASGNF4
line 1029
;1028:
;1029: right[2] = forward[1];
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ASGNF4
line 1031
;1030:
;1031: right[0] = forward[2];
ADDRFP4 4
INDIRP4
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ASGNF4
line 1035
;1032:
;1033:
;1034:
;1035: d = DotProduct (right, forward);
ADDRLP4 4
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 8
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 12
CNSTI4 4
ASGNI4
ADDRLP4 16
CNSTI4 8
ASGNI4
ADDRLP4 0
ADDRLP4 4
INDIRP4
INDIRF4
ADDRLP4 8
INDIRP4
INDIRF4
MULF4
ADDRLP4 4
INDIRP4
ADDRLP4 12
INDIRI4
ADDP4
INDIRF4
ADDRLP4 8
INDIRP4
ADDRLP4 12
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 4
INDIRP4
ADDRLP4 16
INDIRI4
ADDP4
INDIRF4
ADDRLP4 8
INDIRP4
ADDRLP4 16
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1037
;1036:
;1037: VectorMA (right, -d, forward, right);
ADDRLP4 20
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 20
INDIRP4
ADDRLP4 20
INDIRP4
INDIRF4
ADDRFP4 0
INDIRP4
INDIRF4
ADDRLP4 0
INDIRF4
NEGF4
MULF4
ADDF4
ASGNF4
ADDRLP4 24
CNSTI4 4
ASGNI4
ADDRLP4 28
ADDRFP4 4
INDIRP4
ADDRLP4 24
INDIRI4
ADDP4
ASGNP4
ADDRLP4 28
INDIRP4
ADDRLP4 28
INDIRP4
INDIRF4
ADDRFP4 0
INDIRP4
ADDRLP4 24
INDIRI4
ADDP4
INDIRF4
ADDRLP4 0
INDIRF4
NEGF4
MULF4
ADDF4
ASGNF4
ADDRLP4 32
CNSTI4 8
ASGNI4
ADDRLP4 36
ADDRFP4 4
INDIRP4
ADDRLP4 32
INDIRI4
ADDP4
ASGNP4
ADDRLP4 36
INDIRP4
ADDRLP4 36
INDIRP4
INDIRF4
ADDRFP4 0
INDIRP4
ADDRLP4 32
INDIRI4
ADDP4
INDIRF4
ADDRLP4 0
INDIRF4
NEGF4
MULF4
ADDF4
ASGNF4
line 1039
;1038:
;1039: VectorNormalize (right);
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 VectorNormalize
CALLF4
pop
line 1041
;1040:
;1041: CrossProduct (right, forward, up);
ADDRFP4 4
INDIRP4
ARGP4
ADDRFP4 0
INDIRP4
ARGP4
ADDRFP4 8
INDIRP4
ARGP4
ADDRGP4 CrossProduct
CALLV
pop
line 1043
;1042:
;1043:}
LABELV $191
endproc MakeNormalVectors 40 12
export VectorRotate
proc VectorRotate 40 0
line 1051
;1044:
;1045:
;1046:
;1047:
;1048:
;1049:void VectorRotate( vec3_t in, vec3_t matrix[3], vec3_t out )
;1050:
;1051:{
line 1053
;1052:
;1053: out[0] = DotProduct( in, matrix[0] );
ADDRLP4 0
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 4
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 8
CNSTI4 4
ASGNI4
ADDRLP4 12
CNSTI4 8
ASGNI4
ADDRFP4 8
INDIRP4
ADDRLP4 0
INDIRP4
INDIRF4
ADDRLP4 4
INDIRP4
INDIRF4
MULF4
ADDRLP4 0
INDIRP4
ADDRLP4 8
INDIRI4
ADDP4
INDIRF4
ADDRLP4 4
INDIRP4
ADDRLP4 8
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 0
INDIRP4
ADDRLP4 12
INDIRI4
ADDP4
INDIRF4
ADDRLP4 4
INDIRP4
ADDRLP4 12
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1055
;1054:
;1055: out[1] = DotProduct( in, matrix[1] );
ADDRLP4 16
CNSTI4 4
ASGNI4
ADDRLP4 20
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 24
ADDRFP4 4
INDIRP4
ASGNP4
ADDRFP4 8
INDIRP4
ADDRLP4 16
INDIRI4
ADDP4
ADDRLP4 20
INDIRP4
INDIRF4
ADDRLP4 24
INDIRP4
CNSTI4 12
ADDP4
INDIRF4
MULF4
ADDRLP4 20
INDIRP4
ADDRLP4 16
INDIRI4
ADDP4
INDIRF4
ADDRLP4 24
INDIRP4
CNSTI4 16
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 20
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 24
INDIRP4
CNSTI4 20
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1057
;1056:
;1057: out[2] = DotProduct( in, matrix[2] );
ADDRLP4 28
CNSTI4 8
ASGNI4
ADDRLP4 32
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 36
ADDRFP4 4
INDIRP4
ASGNP4
ADDRFP4 8
INDIRP4
ADDRLP4 28
INDIRI4
ADDP4
ADDRLP4 32
INDIRP4
INDIRF4
ADDRLP4 36
INDIRP4
CNSTI4 24
ADDP4
INDIRF4
MULF4
ADDRLP4 32
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 36
INDIRP4
CNSTI4 28
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 32
INDIRP4
ADDRLP4 28
INDIRI4
ADDP4
INDIRF4
ADDRLP4 36
INDIRP4
CNSTI4 32
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1059
;1058:
;1059:}
LABELV $192
endproc VectorRotate 40 0
export Q_rsqrt
proc Q_rsqrt 20 0
line 1077
;1060:
;1061:
;1062:
;1063://============================================================================
;1064:
;1065:
;1066:
;1067:#if !idppc
;1068:
;1069:/*
;1070:
;1071:** float q_rsqrt( float number )
;1072:
;1073:*/
;1074:
;1075:float Q_rsqrt( float number )
;1076:
;1077:{
line 1083
;1078:
;1079: long i;
;1080:
;1081: float x2, y;
;1082:
;1083: const float threehalfs = 1.5F;
ADDRLP4 12
CNSTF4 1069547520
ASGNF4
line 1087
;1084:
;1085:
;1086:
;1087: x2 = number * 0.5F;
ADDRLP4 8
CNSTF4 1056964608
ADDRFP4 0
INDIRF4
MULF4
ASGNF4
line 1089
;1088:
;1089: y = number;
ADDRLP4 0
ADDRFP4 0
INDIRF4
ASGNF4
line 1091
;1090:
;1091: i = * ( long * ) &y; // evil floating point bit level hacking
ADDRLP4 4
ADDRLP4 0
INDIRI4
ASGNI4
line 1093
;1092:
;1093: i = 0x5f3759df - ( i >> 1 ); // what the fuck?
ADDRLP4 4
CNSTI4 1597463007
ADDRLP4 4
INDIRI4
CNSTI4 1
RSHI4
SUBI4
ASGNI4
line 1095
;1094:
;1095: y = * ( float * ) &i;
ADDRLP4 0
ADDRLP4 4
INDIRF4
ASGNF4
line 1097
;1096:
;1097: 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 1113
;1098:
;1099:// y = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed
;1100:
;1101:
;1102:
;1103:#ifndef Q3_VM
;1104:
;1105:#ifdef __linux__
;1106:
;1107: assert( !isnan(y) ); // bk010122 - FPE?
;1108:
;1109:#endif
;1110:
;1111:#endif
;1112:
;1113: return y;
ADDRLP4 0
INDIRF4
RETF4
LABELV $193
endproc Q_rsqrt 20 0
export Q_fabs
proc Q_fabs 4 0
line 1119
;1114:
;1115:}
;1116:
;1117:
;1118:
;1119:float Q_fabs( float f ) {
line 1121
;1120:
;1121: int tmp = * ( int * ) &f;
ADDRLP4 0
ADDRFP4 0
INDIRI4
ASGNI4
line 1123
;1122:
;1123: tmp &= 0x7FFFFFFF;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 2147483647
BANDI4
ASGNI4
line 1125
;1124:
;1125: return * ( float * ) &tmp;
ADDRLP4 0
INDIRF4
RETF4
LABELV $194
endproc Q_fabs 4 0
export LerpAngle
proc LerpAngle 8 0
line 1149
;1126:
;1127:}
;1128:
;1129:#endif
;1130:
;1131:
;1132:
;1133://============================================================
;1134:
;1135:
;1136:
;1137:/*
;1138:
;1139:===============
;1140:
;1141:LerpAngle
;1142:
;1143:
;1144:
;1145:===============
;1146:
;1147:*/
;1148:
;1149:float LerpAngle (float from, float to, float frac) {
line 1155
;1150:
;1151: float a;
;1152:
;1153:
;1154:
;1155: if ( to - from > 180 ) {
ADDRFP4 4
INDIRF4
ADDRFP4 0
INDIRF4
SUBF4
CNSTF4 1127481344
LEF4 $196
line 1157
;1156:
;1157: to -= 360;
ADDRFP4 4
ADDRFP4 4
INDIRF4
CNSTF4 1135869952
SUBF4
ASGNF4
line 1159
;1158:
;1159: }
LABELV $196
line 1161
;1160:
;1161: if ( to - from < -180 ) {
ADDRFP4 4
INDIRF4
ADDRFP4 0
INDIRF4
SUBF4
CNSTF4 3274964992
GEF4 $198
line 1163
;1162:
;1163: to += 360;
ADDRFP4 4
ADDRFP4 4
INDIRF4
CNSTF4 1135869952
ADDF4
ASGNF4
line 1165
;1164:
;1165: }
LABELV $198
line 1167
;1166:
;1167: 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 1171
;1168:
;1169:
;1170:
;1171: return a;
ADDRLP4 0
INDIRF4
RETF4
LABELV $195
endproc LerpAngle 8 0
export AngleSubtract
proc AngleSubtract 4 0
line 1193
;1172:
;1173:}
;1174:
;1175:
;1176:
;1177:
;1178:
;1179:/*
;1180:
;1181:=================
;1182:
;1183:AngleSubtract
;1184:
;1185:
;1186:
;1187:Always returns a value from -180 to 180
;1188:
;1189:=================
;1190:
;1191:*/
;1192:
;1193:float AngleSubtract( float a1, float a2 ) {
line 1199
;1194:
;1195: float a;
;1196:
;1197:
;1198:
;1199: a = a1 - a2;
ADDRLP4 0
ADDRFP4 0
INDIRF4
ADDRFP4 4
INDIRF4
SUBF4
ASGNF4
ADDRGP4 $202
JUMPV
LABELV $201
line 1201
;1200:
;1201: while ( a > 180 ) {
line 1203
;1202:
;1203: a -= 360;
ADDRLP4 0
ADDRLP4 0
INDIRF4
CNSTF4 1135869952
SUBF4
ASGNF4
line 1205
;1204:
;1205: }
LABELV $202
line 1201
ADDRLP4 0
INDIRF4
CNSTF4 1127481344
GTF4 $201
ADDRGP4 $205
JUMPV
LABELV $204
line 1207
;1206:
;1207: while ( a < -180 ) {
line 1209
;1208:
;1209: a += 360;
ADDRLP4 0
ADDRLP4 0
INDIRF4
CNSTF4 1135869952
ADDF4
ASGNF4
line 1211
;1210:
;1211: }
LABELV $205
line 1207
ADDRLP4 0
INDIRF4
CNSTF4 3274964992
LTF4 $204
line 1213
;1212:
;1213: return a;
ADDRLP4 0
INDIRF4
RETF4
LABELV $200
endproc AngleSubtract 4 0
export AnglesSubtract
proc AnglesSubtract 20 8
line 1221
;1214:
;1215:}
;1216:
;1217:
;1218:
;1219:
;1220:
;1221:void AnglesSubtract( vec3_t v1, vec3_t v2, vec3_t v3 ) {
line 1223
;1222:
;1223: 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 1225
;1224:
;1225: v3[1] = AngleSubtract( v1[1], v2[1] );
ADDRLP4 4
CNSTI4 4
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
INDIRF4
ARGF4
ADDRFP4 4
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
INDIRF4
ARGF4
ADDRLP4 8
ADDRGP4 AngleSubtract
CALLF4
ASGNF4
ADDRFP4 8
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
ADDRLP4 8
INDIRF4
ASGNF4
line 1227
;1226:
;1227: v3[2] = AngleSubtract( v1[2], v2[2] );
ADDRLP4 12
CNSTI4 8
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 12
INDIRI4
ADDP4
INDIRF4
ARGF4
ADDRFP4 4
INDIRP4
ADDRLP4 12
INDIRI4
ADDP4
INDIRF4
ARGF4
ADDRLP4 16
ADDRGP4 AngleSubtract
CALLF4
ASGNF4
ADDRFP4 8
INDIRP4
ADDRLP4 12
INDIRI4
ADDP4
ADDRLP4 16
INDIRF4
ASGNF4
line 1229
;1228:
;1229:}
LABELV $207
endproc AnglesSubtract 20 8
export AngleMod
proc AngleMod 0 0
line 1235
;1230:
;1231:
;1232:
;1233:
;1234:
;1235:float AngleMod(float a) {
line 1237
;1236:
;1237: a = (360.0/65536) * ((int)(a*(65536/360.0)) & 65535);
ADDRFP4 0
CNSTF4 1001652224
CNSTF4 1127615329
ADDRFP4 0
INDIRF4
MULF4
CVFI4 4
CNSTI4 65535
BANDI4
CVIF4 4
MULF4
ASGNF4
line 1239
;1238:
;1239: return a;
ADDRFP4 0
INDIRF4
RETF4
LABELV $208
endproc AngleMod 0 0
export AngleNormalize360
proc AngleNormalize360 0 0
line 1261
;1240:
;1241:}
;1242:
;1243:
;1244:
;1245:
;1246:
;1247:/*
;1248:
;1249:=================
;1250:
;1251:AngleNormalize360
;1252:
;1253:
;1254:
;1255:returns angle normalized to the range [0 <= angle < 360]
;1256:
;1257:=================
;1258:
;1259:*/
;1260:
;1261:float AngleNormalize360 ( float angle ) {
line 1263
;1262:
;1263: return (360.0 / 65536) * ((int)(angle * (65536 / 360.0)) & 65535);
CNSTF4 1001652224
CNSTF4 1127615329
ADDRFP4 0
INDIRF4
MULF4
CVFI4 4
CNSTI4 65535
BANDI4
CVIF4 4
MULF4
RETF4
LABELV $209
endproc AngleNormalize360 0 0
export AngleNormalize180
proc AngleNormalize180 4 4
line 1285
;1264:
;1265:}
;1266:
;1267:
;1268:
;1269:
;1270:
;1271:/*
;1272:
;1273:=================
;1274:
;1275:AngleNormalize180
;1276:
;1277:
;1278:
;1279:returns angle normalized to the range [-180 < angle <= 180]
;1280:
;1281:=================
;1282:
;1283:*/
;1284:
;1285:float AngleNormalize180 ( float angle ) {
line 1287
;1286:
;1287: angle = AngleNormalize360( angle );
ADDRFP4 0
INDIRF4
ARGF4
ADDRLP4 0
ADDRGP4 AngleNormalize360
CALLF4
ASGNF4
ADDRFP4 0
ADDRLP4 0
INDIRF4
ASGNF4
line 1289
;1288:
;1289: if ( angle > 180.0 ) {
ADDRFP4 0
INDIRF4
CNSTF4 1127481344
LEF4 $211
line 1291
;1290:
;1291: angle -= 360.0;
ADDRFP4 0
ADDRFP4 0
INDIRF4
CNSTF4 1135869952
SUBF4
ASGNF4
line 1293
;1292:
;1293: }
LABELV $211
line 1295
;1294:
;1295: return angle;
ADDRFP4 0
INDIRF4
RETF4
LABELV $210
endproc AngleNormalize180 4 4
export AngleDelta
proc AngleDelta 4 4
line 1317
;1296:
;1297:}
;1298:
;1299:
;1300:
;1301:
;1302:
;1303:/*
;1304:
;1305:=================
;1306:
;1307:AngleDelta
;1308:
;1309:
;1310:
;1311:returns the normalized delta from angle1 to angle2
;1312:
;1313:=================
;1314:
;1315:*/
;1316:
;1317:float AngleDelta ( float angle1, float angle2 ) {
line 1319
;1318:
;1319: return AngleNormalize180( angle1 - angle2 );
ADDRFP4 0
INDIRF4
ADDRFP4 4
INDIRF4
SUBF4
ARGF4
ADDRLP4 0
ADDRGP4 AngleNormalize180
CALLF4
ASGNF4
ADDRLP4 0
INDIRF4
RETF4
LABELV $213
endproc AngleDelta 4 4
export SetPlaneSignbits
proc SetPlaneSignbits 8 0
line 1343
;1320:
;1321:}
;1322:
;1323:
;1324:
;1325:
;1326:
;1327://============================================================
;1328:
;1329:
;1330:
;1331:
;1332:
;1333:/*
;1334:
;1335:=================
;1336:
;1337:SetPlaneSignbits
;1338:
;1339:=================
;1340:
;1341:*/
;1342:
;1343:void SetPlaneSignbits (cplane_t *out) {
line 1351
;1344:
;1345: int bits, j;
;1346:
;1347:
;1348:
;1349: // for fast box on planeside test
;1350:
;1351: bits = 0;
ADDRLP4 4
CNSTI4 0
ASGNI4
line 1353
;1352:
;1353: for (j=0 ; j<3 ; j++) {
ADDRLP4 0
CNSTI4 0
ASGNI4
LABELV $215
line 1355
;1354:
;1355: if (out->normal[j] < 0) {
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRFP4 0
INDIRP4
ADDP4
INDIRF4
CNSTF4 0
GEF4 $219
line 1357
;1356:
;1357: bits |= 1<<j;
ADDRLP4 4
ADDRLP4 4
INDIRI4
CNSTI4 1
ADDRLP4 0
INDIRI4
LSHI4
BORI4
ASGNI4
line 1359
;1358:
;1359: }
LABELV $219
line 1361
;1360:
;1361: }
LABELV $216
line 1353
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 3
LTI4 $215
line 1363
;1362:
;1363: out->signbits = bits;
ADDRFP4 0
INDIRP4
CNSTI4 17
ADDP4
ADDRLP4 4
INDIRI4
CVIU4 4
CVUU1 4
ASGNU1
line 1365
;1364:
;1365:}
LABELV $214
endproc SetPlaneSignbits 8 0
export BoxOnPlaneSide
proc BoxOnPlaneSide 280 0
line 1461
;1366:
;1367:
;1368:
;1369:
;1370:
;1371:/*
;1372:
;1373:==================
;1374:
;1375:BoxOnPlaneSide
;1376:
;1377:
;1378:
;1379:Returns 1, 2, or 1 + 2
;1380:
;1381:
;1382:
;1383:// this is the slow, general version
;1384:
;1385:int BoxOnPlaneSide2 (vec3_t emins, vec3_t emaxs, struct cplane_s *p)
;1386:
;1387:{
;1388:
;1389: int i;
;1390:
;1391: float dist1, dist2;
;1392:
;1393: int sides;
;1394:
;1395: vec3_t corners[2];
;1396:
;1397:
;1398:
;1399: for (i=0 ; i<3 ; i++)
;1400:
;1401: {
;1402:
;1403: if (p->normal[i] < 0)
;1404:
;1405: {
;1406:
;1407: corners[0][i] = emins[i];
;1408:
;1409: corners[1][i] = emaxs[i];
;1410:
;1411: }
;1412:
;1413: else
;1414:
;1415: {
;1416:
;1417: corners[1][i] = emins[i];
;1418:
;1419: corners[0][i] = emaxs[i];
;1420:
;1421: }
;1422:
;1423: }
;1424:
;1425: dist1 = DotProduct (p->normal, corners[0]) - p->dist;
;1426:
;1427: dist2 = DotProduct (p->normal, corners[1]) - p->dist;
;1428:
;1429: sides = 0;
;1430:
;1431: if (dist1 >= 0)
;1432:
;1433: sides = 1;
;1434:
;1435: if (dist2 < 0)
;1436:
;1437: sides |= 2;
;1438:
;1439:
;1440:
;1441: return sides;
;1442:
;1443:}
;1444:
;1445:
;1446:
;1447:==================
;1448:
;1449:*/
;1450:
;1451:#if !( (defined __linux__ || __FreeBSD__) && (defined __i386__) && (!defined C_ONLY)) // rb010123
;1452:
;1453:
;1454:
;1455:#if defined __LCC__ || defined C_ONLY || !id386 || defined __VECTORC
;1456:
;1457:
;1458:
;1459:int BoxOnPlaneSide (vec3_t emins, vec3_t emaxs, struct cplane_s *p)
;1460:
;1461:{
line 1471
;1462:
;1463: float dist1, dist2;
;1464:
;1465: int sides;
;1466:
;1467:
;1468:
;1469:// fast axial cases
;1470:
;1471: if (p->type < 3)
ADDRFP4 8
INDIRP4
CNSTI4 16
ADDP4
INDIRU1
CVUI4 1
CNSTI4 3
GEI4 $222
line 1473
;1472:
;1473: {
line 1475
;1474:
;1475: 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 $224
line 1477
;1476:
;1477: return 1;
CNSTI4 1
RETI4
ADDRGP4 $221
JUMPV
LABELV $224
line 1479
;1478:
;1479: 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 $226
line 1481
;1480:
;1481: return 2;
CNSTI4 2
RETI4
ADDRGP4 $221
JUMPV
LABELV $226
line 1483
;1482:
;1483: return 3;
CNSTI4 3
RETI4
ADDRGP4 $221
JUMPV
LABELV $222
line 1491
;1484:
;1485: }
;1486:
;1487:
;1488:
;1489:// general case
;1490:
;1491: switch (p->signbits)
ADDRLP4 12
ADDRFP4 8
INDIRP4
CNSTI4 17
ADDP4
INDIRU1
CVUI4 1
ASGNI4
ADDRLP4 12
INDIRI4
CNSTI4 0
LTI4 $228
ADDRLP4 12
INDIRI4
CNSTI4 7
GTI4 $228
ADDRLP4 12
INDIRI4
CNSTI4 2
LSHI4
ADDRGP4 $239
ADDP4
INDIRP4
JUMPV
lit
align 4
LABELV $239
address $231
address $232
address $233
address $234
address $235
address $236
address $237
address $238
code
line 1493
;1492:
;1493: {
LABELV $231
line 1497
;1494:
;1495: case 0:
;1496:
;1497: 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 28
CNSTI4 4
ASGNI4
ADDRLP4 32
CNSTI4 8
ASGNI4
ADDRLP4 4
ADDRLP4 20
INDIRP4
INDIRF4
ADDRLP4 24
INDIRP4
INDIRF4
MULF4
ADDRLP4 20
INDIRP4
ADDRLP4 28
INDIRI4
ADDP4
INDIRF4
ADDRLP4 24
INDIRP4
ADDRLP4 28
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 20
INDIRP4
ADDRLP4 32
INDIRI4
ADDP4
INDIRF4
ADDRLP4 24
INDIRP4
ADDRLP4 32
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1499
;1498:
;1499: dist2 = p->normal[0]*emins[0] + p->normal[1]*emins[1] + p->normal[2]*emins[2];
ADDRLP4 36
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 40
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 44
CNSTI4 4
ASGNI4
ADDRLP4 48
CNSTI4 8
ASGNI4
ADDRLP4 8
ADDRLP4 36
INDIRP4
INDIRF4
ADDRLP4 40
INDIRP4
INDIRF4
MULF4
ADDRLP4 36
INDIRP4
ADDRLP4 44
INDIRI4
ADDP4
INDIRF4
ADDRLP4 40
INDIRP4
ADDRLP4 44
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 36
INDIRP4
ADDRLP4 48
INDIRI4
ADDP4
INDIRF4
ADDRLP4 40
INDIRP4
ADDRLP4 48
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1501
;1500:
;1501: break;
ADDRGP4 $229
JUMPV
LABELV $232
line 1505
;1502:
;1503: case 1:
;1504:
;1505: dist1 = p->normal[0]*emins[0] + p->normal[1]*emaxs[1] + p->normal[2]*emaxs[2];
ADDRLP4 52
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 56
CNSTI4 4
ASGNI4
ADDRLP4 60
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 64
CNSTI4 8
ASGNI4
ADDRLP4 4
ADDRLP4 52
INDIRP4
INDIRF4
ADDRFP4 0
INDIRP4
INDIRF4
MULF4
ADDRLP4 52
INDIRP4
ADDRLP4 56
INDIRI4
ADDP4
INDIRF4
ADDRLP4 60
INDIRP4
ADDRLP4 56
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 52
INDIRP4
ADDRLP4 64
INDIRI4
ADDP4
INDIRF4
ADDRLP4 60
INDIRP4
ADDRLP4 64
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1507
;1506:
;1507: dist2 = p->normal[0]*emaxs[0] + p->normal[1]*emins[1] + p->normal[2]*emins[2];
ADDRLP4 68
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 72
CNSTI4 4
ASGNI4
ADDRLP4 76
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 80
CNSTI4 8
ASGNI4
ADDRLP4 8
ADDRLP4 68
INDIRP4
INDIRF4
ADDRFP4 4
INDIRP4
INDIRF4
MULF4
ADDRLP4 68
INDIRP4
ADDRLP4 72
INDIRI4
ADDP4
INDIRF4
ADDRLP4 76
INDIRP4
ADDRLP4 72
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 68
INDIRP4
ADDRLP4 80
INDIRI4
ADDP4
INDIRF4
ADDRLP4 76
INDIRP4
ADDRLP4 80
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1509
;1508:
;1509: break;
ADDRGP4 $229
JUMPV
LABELV $233
line 1513
;1510:
;1511: case 2:
;1512:
;1513: dist1 = p->normal[0]*emaxs[0] + p->normal[1]*emins[1] + p->normal[2]*emaxs[2];
ADDRLP4 84
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 88
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 92
CNSTI4 4
ASGNI4
ADDRLP4 96
CNSTI4 8
ASGNI4
ADDRLP4 4
ADDRLP4 84
INDIRP4
INDIRF4
ADDRLP4 88
INDIRP4
INDIRF4
MULF4
ADDRLP4 84
INDIRP4
ADDRLP4 92
INDIRI4
ADDP4
INDIRF4
ADDRFP4 0
INDIRP4
ADDRLP4 92
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 84
INDIRP4
ADDRLP4 96
INDIRI4
ADDP4
INDIRF4
ADDRLP4 88
INDIRP4
ADDRLP4 96
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1515
;1514:
;1515: dist2 = 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 108
CNSTI4 4
ASGNI4
ADDRLP4 112
CNSTI4 8
ASGNI4
ADDRLP4 8
ADDRLP4 100
INDIRP4
INDIRF4
ADDRLP4 104
INDIRP4
INDIRF4
MULF4
ADDRLP4 100
INDIRP4
ADDRLP4 108
INDIRI4
ADDP4
INDIRF4
ADDRFP4 4
INDIRP4
ADDRLP4 108
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 100
INDIRP4
ADDRLP4 112
INDIRI4
ADDP4
INDIRF4
ADDRLP4 104
INDIRP4
ADDRLP4 112
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1517
;1516:
;1517: break;
ADDRGP4 $229
JUMPV
LABELV $234
line 1521
;1518:
;1519: case 3:
;1520:
;1521: dist1 = p->normal[0]*emins[0] + p->normal[1]*emins[1] + p->normal[2]*emaxs[2];
ADDRLP4 116
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 120
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 124
CNSTI4 4
ASGNI4
ADDRLP4 128
CNSTI4 8
ASGNI4
ADDRLP4 4
ADDRLP4 116
INDIRP4
INDIRF4
ADDRLP4 120
INDIRP4
INDIRF4
MULF4
ADDRLP4 116
INDIRP4
ADDRLP4 124
INDIRI4
ADDP4
INDIRF4
ADDRLP4 120
INDIRP4
ADDRLP4 124
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 116
INDIRP4
ADDRLP4 128
INDIRI4
ADDP4
INDIRF4
ADDRFP4 4
INDIRP4
ADDRLP4 128
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1523
;1522:
;1523: dist2 = p->normal[0]*emaxs[0] + p->normal[1]*emaxs[1] + p->normal[2]*emins[2];
ADDRLP4 132
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 136
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 140
CNSTI4 4
ASGNI4
ADDRLP4 144
CNSTI4 8
ASGNI4
ADDRLP4 8
ADDRLP4 132
INDIRP4
INDIRF4
ADDRLP4 136
INDIRP4
INDIRF4
MULF4
ADDRLP4 132
INDIRP4
ADDRLP4 140
INDIRI4
ADDP4
INDIRF4
ADDRLP4 136
INDIRP4
ADDRLP4 140
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 132
INDIRP4
ADDRLP4 144
INDIRI4
ADDP4
INDIRF4
ADDRFP4 0
INDIRP4
ADDRLP4 144
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1525
;1524:
;1525: break;
ADDRGP4 $229
JUMPV
LABELV $235
line 1529
;1526:
;1527: case 4:
;1528:
;1529: dist1 = p->normal[0]*emaxs[0] + p->normal[1]*emaxs[1] + p->normal[2]*emins[2];
ADDRLP4 148
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 152
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 156
CNSTI4 4
ASGNI4
ADDRLP4 160
CNSTI4 8
ASGNI4
ADDRLP4 4
ADDRLP4 148
INDIRP4
INDIRF4
ADDRLP4 152
INDIRP4
INDIRF4
MULF4
ADDRLP4 148
INDIRP4
ADDRLP4 156
INDIRI4
ADDP4
INDIRF4
ADDRLP4 152
INDIRP4
ADDRLP4 156
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 148
INDIRP4
ADDRLP4 160
INDIRI4
ADDP4
INDIRF4
ADDRFP4 0
INDIRP4
ADDRLP4 160
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1531
;1530:
;1531: dist2 = p->normal[0]*emins[0] + p->normal[1]*emins[1] + p->normal[2]*emaxs[2];
ADDRLP4 164
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 168
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 172
CNSTI4 4
ASGNI4
ADDRLP4 176
CNSTI4 8
ASGNI4
ADDRLP4 8
ADDRLP4 164
INDIRP4
INDIRF4
ADDRLP4 168
INDIRP4
INDIRF4
MULF4
ADDRLP4 164
INDIRP4
ADDRLP4 172
INDIRI4
ADDP4
INDIRF4
ADDRLP4 168
INDIRP4
ADDRLP4 172
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 164
INDIRP4
ADDRLP4 176
INDIRI4
ADDP4
INDIRF4
ADDRFP4 4
INDIRP4
ADDRLP4 176
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1533
;1532:
;1533: break;
ADDRGP4 $229
JUMPV
LABELV $236
line 1537
;1534:
;1535: case 5:
;1536:
;1537: dist1 = p->normal[0]*emins[0] + p->normal[1]*emaxs[1] + p->normal[2]*emins[2];
ADDRLP4 180
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 184
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 188
CNSTI4 4
ASGNI4
ADDRLP4 192
CNSTI4 8
ASGNI4
ADDRLP4 4
ADDRLP4 180
INDIRP4
INDIRF4
ADDRLP4 184
INDIRP4
INDIRF4
MULF4
ADDRLP4 180
INDIRP4
ADDRLP4 188
INDIRI4
ADDP4
INDIRF4
ADDRFP4 4
INDIRP4
ADDRLP4 188
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 180
INDIRP4
ADDRLP4 192
INDIRI4
ADDP4
INDIRF4
ADDRLP4 184
INDIRP4
ADDRLP4 192
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1539
;1538:
;1539: dist2 = p->normal[0]*emaxs[0] + p->normal[1]*emins[1] + p->normal[2]*emaxs[2];
ADDRLP4 196
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 200
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 204
CNSTI4 4
ASGNI4
ADDRLP4 208
CNSTI4 8
ASGNI4
ADDRLP4 8
ADDRLP4 196
INDIRP4
INDIRF4
ADDRLP4 200
INDIRP4
INDIRF4
MULF4
ADDRLP4 196
INDIRP4
ADDRLP4 204
INDIRI4
ADDP4
INDIRF4
ADDRFP4 0
INDIRP4
ADDRLP4 204
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 196
INDIRP4
ADDRLP4 208
INDIRI4
ADDP4
INDIRF4
ADDRLP4 200
INDIRP4
ADDRLP4 208
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1541
;1540:
;1541: break;
ADDRGP4 $229
JUMPV
LABELV $237
line 1545
;1542:
;1543: case 6:
;1544:
;1545: dist1 = p->normal[0]*emaxs[0] + p->normal[1]*emins[1] + p->normal[2]*emins[2];
ADDRLP4 212
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 216
CNSTI4 4
ASGNI4
ADDRLP4 220
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 224
CNSTI4 8
ASGNI4
ADDRLP4 4
ADDRLP4 212
INDIRP4
INDIRF4
ADDRFP4 4
INDIRP4
INDIRF4
MULF4
ADDRLP4 212
INDIRP4
ADDRLP4 216
INDIRI4
ADDP4
INDIRF4
ADDRLP4 220
INDIRP4
ADDRLP4 216
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 212
INDIRP4
ADDRLP4 224
INDIRI4
ADDP4
INDIRF4
ADDRLP4 220
INDIRP4
ADDRLP4 224
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1547
;1546:
;1547: dist2 = p->normal[0]*emins[0] + p->normal[1]*emaxs[1] + p->normal[2]*emaxs[2];
ADDRLP4 228
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 232
CNSTI4 4
ASGNI4
ADDRLP4 236
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 240
CNSTI4 8
ASGNI4
ADDRLP4 8
ADDRLP4 228
INDIRP4
INDIRF4
ADDRFP4 0
INDIRP4
INDIRF4
MULF4
ADDRLP4 228
INDIRP4
ADDRLP4 232
INDIRI4
ADDP4
INDIRF4
ADDRLP4 236
INDIRP4
ADDRLP4 232
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 228
INDIRP4
ADDRLP4 240
INDIRI4
ADDP4
INDIRF4
ADDRLP4 236
INDIRP4
ADDRLP4 240
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1549
;1548:
;1549: break;
ADDRGP4 $229
JUMPV
LABELV $238
line 1553
;1550:
;1551: case 7:
;1552:
;1553: dist1 = p->normal[0]*emins[0] + p->normal[1]*emins[1] + p->normal[2]*emins[2];
ADDRLP4 244
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 248
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 252
CNSTI4 4
ASGNI4
ADDRLP4 256
CNSTI4 8
ASGNI4
ADDRLP4 4
ADDRLP4 244
INDIRP4
INDIRF4
ADDRLP4 248
INDIRP4
INDIRF4
MULF4
ADDRLP4 244
INDIRP4
ADDRLP4 252
INDIRI4
ADDP4
INDIRF4
ADDRLP4 248
INDIRP4
ADDRLP4 252
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 244
INDIRP4
ADDRLP4 256
INDIRI4
ADDP4
INDIRF4
ADDRLP4 248
INDIRP4
ADDRLP4 256
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1555
;1554:
;1555: dist2 = p->normal[0]*emaxs[0] + p->normal[1]*emaxs[1] + p->normal[2]*emaxs[2];
ADDRLP4 260
ADDRFP4 8
INDIRP4
ASGNP4
ADDRLP4 264
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 268
CNSTI4 4
ASGNI4
ADDRLP4 272
CNSTI4 8
ASGNI4
ADDRLP4 8
ADDRLP4 260
INDIRP4
INDIRF4
ADDRLP4 264
INDIRP4
INDIRF4
MULF4
ADDRLP4 260
INDIRP4
ADDRLP4 268
INDIRI4
ADDP4
INDIRF4
ADDRLP4 264
INDIRP4
ADDRLP4 268
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 260
INDIRP4
ADDRLP4 272
INDIRI4
ADDP4
INDIRF4
ADDRLP4 264
INDIRP4
ADDRLP4 272
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 1557
;1556:
;1557: break;
ADDRGP4 $229
JUMPV
LABELV $228
line 1561
;1558:
;1559: default:
;1560:
;1561: dist1 = dist2 = 0; // shut up compiler
ADDRLP4 276
CNSTF4 0
ASGNF4
ADDRLP4 8
ADDRLP4 276
INDIRF4
ASGNF4
ADDRLP4 4
ADDRLP4 276
INDIRF4
ASGNF4
line 1563
;1562:
;1563: break;
LABELV $229
line 1569
;1564:
;1565: }
;1566:
;1567:
;1568:
;1569: sides = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
line 1571
;1570:
;1571: if (dist1 >= p->dist)
ADDRLP4 4
INDIRF4
ADDRFP4 8
INDIRP4
CNSTI4 12
ADDP4
INDIRF4
LTF4 $240
line 1573
;1572:
;1573: sides = 1;
ADDRLP4 0
CNSTI4 1
ASGNI4
LABELV $240
line 1575
;1574:
;1575: if (dist2 < p->dist)
ADDRLP4 8
INDIRF4
ADDRFP4 8
INDIRP4
CNSTI4 12
ADDP4
INDIRF4
GEF4 $242
line 1577
;1576:
;1577: sides |= 2;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 2
BORI4
ASGNI4
LABELV $242
line 1581
;1578:
;1579:
;1580:
;1581: return sides;
ADDRLP4 0
INDIRI4
RETI4
LABELV $221
endproc BoxOnPlaneSide 280 0
export RadiusFromBounds
proc RadiusFromBounds 36 4
line 2069
;1582:
;1583:}
;1584:
;1585:#else
;1586:
;1587:#pragma warning( disable: 4035 )
;1588:
;1589:
;1590:
;1591:__declspec( naked ) int BoxOnPlaneSide (vec3_t emins, vec3_t emaxs, struct cplane_s *p)
;1592:
;1593:{
;1594:
;1595: static int bops_initialized;
;1596:
;1597: static int Ljmptab[8];
;1598:
;1599:
;1600:
;1601: __asm {
;1602:
;1603:
;1604:
;1605: push ebx
;1606:
;1607:
;1608:
;1609: cmp bops_initialized, 1
;1610:
;1611: je initialized
;1612:
;1613: mov bops_initialized, 1
;1614:
;1615:
;1616:
;1617: mov Ljmptab[0*4], offset Lcase0
;1618:
;1619: mov Ljmptab[1*4], offset Lcase1
;1620:
;1621: mov Ljmptab[2*4], offset Lcase2
;1622:
;1623: mov Ljmptab[3*4], offset Lcase3
;1624:
;1625: mov Ljmptab[4*4], offset Lcase4
;1626:
;1627: mov Ljmptab[5*4], offset Lcase5
;1628:
;1629: mov Ljmptab[6*4], offset Lcase6
;1630:
;1631: mov Ljmptab[7*4], offset Lcase7
;1632:
;1633:
;1634:
;1635:initialized:
;1636:
;1637:
;1638:
;1639: mov edx,dword ptr[4+12+esp]
;1640:
;1641: mov ecx,dword ptr[4+4+esp]
;1642:
;1643: xor eax,eax
;1644:
;1645: mov ebx,dword ptr[4+8+esp]
;1646:
;1647: mov al,byte ptr[17+edx]
;1648:
;1649: cmp al,8
;1650:
;1651: jge Lerror
;1652:
;1653: fld dword ptr[0+edx]
;1654:
;1655: fld st(0)
;1656:
;1657: jmp dword ptr[Ljmptab+eax*4]
;1658:
;1659:Lcase0:
;1660:
;1661: fmul dword ptr[ebx]
;1662:
;1663: fld dword ptr[0+4+edx]
;1664:
;1665: fxch st(2)
;1666:
;1667: fmul dword ptr[ecx]
;1668:
;1669: fxch st(2)
;1670:
;1671: fld st(0)
;1672:
;1673: fmul dword ptr[4+ebx]
;1674:
;1675: fld dword ptr[0+8+edx]
;1676:
;1677: fxch st(2)
;1678:
;1679: fmul dword ptr[4+ecx]
;1680:
;1681: fxch st(2)
;1682:
;1683: fld st(0)
;1684:
;1685: fmul dword ptr[8+ebx]
;1686:
;1687: fxch st(5)
;1688:
;1689: faddp st(3),st(0)
;1690:
;1691: fmul dword ptr[8+ecx]
;1692:
;1693: fxch st(1)
;1694:
;1695: faddp st(3),st(0)
;1696:
;1697: fxch st(3)
;1698:
;1699: faddp st(2),st(0)
;1700:
;1701: jmp LSetSides
;1702:
;1703:Lcase1:
;1704:
;1705: fmul dword ptr[ecx]
;1706:
;1707: fld dword ptr[0+4+edx]
;1708:
;1709: fxch st(2)
;1710:
;1711: fmul dword ptr[ebx]
;1712:
;1713: fxch st(2)
;1714:
;1715: fld st(0)
;1716:
;1717: fmul dword ptr[4+ebx]
;1718:
;1719: fld dword ptr[0+8+edx]
;1720:
;1721: fxch st(2)
;1722:
;1723: fmul dword ptr[4+ecx]
;1724:
;1725: fxch st(2)
;1726:
;1727: fld st(0)
;1728:
;1729: fmul dword ptr[8+ebx]
;1730:
;1731: fxch st(5)
;1732:
;1733: faddp st(3),st(0)
;1734:
;1735: fmul dword ptr[8+ecx]
;1736:
;1737: fxch st(1)
;1738:
;1739: faddp st(3),st(0)
;1740:
;1741: fxch st(3)
;1742:
;1743: faddp st(2),st(0)
;1744:
;1745: jmp LSetSides
;1746:
;1747:Lcase2:
;1748:
;1749: fmul dword ptr[ebx]
;1750:
;1751: fld dword ptr[0+4+edx]
;1752:
;1753: fxch st(2)
;1754:
;1755: fmul dword ptr[ecx]
;1756:
;1757: fxch st(2)
;1758:
;1759: fld st(0)
;1760:
;1761: fmul dword ptr[4+ecx]
;1762:
;1763: fld dword ptr[0+8+edx]
;1764:
;1765: fxch st(2)
;1766:
;1767: fmul dword ptr[4+ebx]
;1768:
;1769: fxch st(2)
;1770:
;1771: fld st(0)
;1772:
;1773: fmul dword ptr[8+ebx]
;1774:
;1775: fxch st(5)
;1776:
;1777: faddp st(3),st(0)
;1778:
;1779: fmul dword ptr[8+ecx]
;1780:
;1781: fxch st(1)
;1782:
;1783: faddp st(3),st(0)
;1784:
;1785: fxch st(3)
;1786:
;1787: faddp st(2),st(0)
;1788:
;1789: jmp LSetSides
;1790:
;1791:Lcase3:
;1792:
;1793: fmul dword ptr[ecx]
;1794:
;1795: fld dword ptr[0+4+edx]
;1796:
;1797: fxch st(2)
;1798:
;1799: fmul dword ptr[ebx]
;1800:
;1801: fxch st(2)
;1802:
;1803: fld st(0)
;1804:
;1805: fmul dword ptr[4+ecx]
;1806:
;1807: fld dword ptr[0+8+edx]
;1808:
;1809: fxch st(2)
;1810:
;1811: fmul dword ptr[4+ebx]
;1812:
;1813: fxch st(2)
;1814:
;1815: fld st(0)
;1816:
;1817: fmul dword ptr[8+ebx]
;1818:
;1819: fxch st(5)
;1820:
;1821: faddp st(3),st(0)
;1822:
;1823: fmul dword ptr[8+ecx]
;1824:
;1825: fxch st(1)
;1826:
;1827: faddp st(3),st(0)
;1828:
;1829: fxch st(3)
;1830:
;1831: faddp st(2),st(0)
;1832:
;1833: jmp LSetSides
;1834:
;1835:Lcase4:
;1836:
;1837: fmul dword ptr[ebx]
;1838:
;1839: fld dword ptr[0+4+edx]
;1840:
;1841: fxch st(2)
;1842:
;1843: fmul dword ptr[ecx]
;1844:
;1845: fxch st(2)
;1846:
;1847: fld st(0)
;1848:
;1849: fmul dword ptr[4+ebx]
;1850:
;1851: fld dword ptr[0+8+edx]
;1852:
;1853: fxch st(2)
;1854:
;1855: fmul dword ptr[4+ecx]
;1856:
;1857: fxch st(2)
;1858:
;1859: fld st(0)
;1860:
;1861: fmul dword ptr[8+ecx]
;1862:
;1863: fxch st(5)
;1864:
;1865: faddp st(3),st(0)
;1866:
;1867: fmul dword ptr[8+ebx]
;1868:
;1869: fxch st(1)
;1870:
;1871: faddp st(3),st(0)
;1872:
;1873: fxch st(3)
;1874:
;1875: faddp st(2),st(0)
;1876:
;1877: jmp LSetSides
;1878:
;1879:Lcase5:
;1880:
;1881: fmul dword ptr[ecx]
;1882:
;1883: fld dword ptr[0+4+edx]
;1884:
;1885: fxch st(2)
;1886:
;1887: fmul dword ptr[ebx]
;1888:
;1889: fxch st(2)
;1890:
;1891: fld st(0)
;1892:
;1893: fmul dword ptr[4+ebx]
;1894:
;1895: fld dword ptr[0+8+edx]
;1896:
;1897: fxch st(2)
;1898:
;1899: fmul dword ptr[4+ecx]
;1900:
;1901: fxch st(2)
;1902:
;1903: fld st(0)
;1904:
;1905: fmul dword ptr[8+ecx]
;1906:
;1907: fxch st(5)
;1908:
;1909: faddp st(3),st(0)
;1910:
;1911: fmul dword ptr[8+ebx]
;1912:
;1913: fxch st(1)
;1914:
;1915: faddp st(3),st(0)
;1916:
;1917: fxch st(3)
;1918:
;1919: faddp st(2),st(0)
;1920:
;1921: jmp LSetSides
;1922:
;1923:Lcase6:
;1924:
;1925: fmul dword ptr[ebx]
;1926:
;1927: fld dword ptr[0+4+edx]
;1928:
;1929: fxch st(2)
;1930:
;1931: fmul dword ptr[ecx]
;1932:
;1933: fxch st(2)
;1934:
;1935: fld st(0)
;1936:
;1937: fmul dword ptr[4+ecx]
;1938:
;1939: fld dword ptr[0+8+edx]
;1940:
;1941: fxch st(2)
;1942:
;1943: fmul dword ptr[4+ebx]
;1944:
;1945: fxch st(2)
;1946:
;1947: fld st(0)
;1948:
;1949: fmul dword ptr[8+ecx]
;1950:
;1951: fxch st(5)
;1952:
;1953: faddp st(3),st(0)
;1954:
;1955: fmul dword ptr[8+ebx]
;1956:
;1957: fxch st(1)
;1958:
;1959: faddp st(3),st(0)
;1960:
;1961: fxch st(3)
;1962:
;1963: faddp st(2),st(0)
;1964:
;1965: jmp LSetSides
;1966:
;1967:Lcase7:
;1968:
;1969: fmul dword ptr[ecx]
;1970:
;1971: fld dword ptr[0+4+edx]
;1972:
;1973: fxch st(2)
;1974:
;1975: fmul dword ptr[ebx]
;1976:
;1977: fxch st(2)
;1978:
;1979: fld st(0)
;1980:
;1981: fmul dword ptr[4+ecx]
;1982:
;1983: fld dword ptr[0+8+edx]
;1984:
;1985: fxch st(2)
;1986:
;1987: fmul dword ptr[4+ebx]
;1988:
;1989: fxch st(2)
;1990:
;1991: fld st(0)
;1992:
;1993: fmul dword ptr[8+ecx]
;1994:
;1995: fxch st(5)
;1996:
;1997: faddp st(3),st(0)
;1998:
;1999: fmul dword ptr[8+ebx]
;2000:
;2001: fxch st(1)
;2002:
;2003: faddp st(3),st(0)
;2004:
;2005: fxch st(3)
;2006:
;2007: faddp st(2),st(0)
;2008:
;2009:LSetSides:
;2010:
;2011: faddp st(2),st(0)
;2012:
;2013: fcomp dword ptr[12+edx]
;2014:
;2015: xor ecx,ecx
;2016:
;2017: fnstsw ax
;2018:
;2019: fcomp dword ptr[12+edx]
;2020:
;2021: and ah,1
;2022:
;2023: xor ah,1
;2024:
;2025: add cl,ah
;2026:
;2027: fnstsw ax
;2028:
;2029: and ah,1
;2030:
;2031: add ah,ah
;2032:
;2033: add cl,ah
;2034:
;2035: pop ebx
;2036:
;2037: mov eax,ecx
;2038:
;2039: ret
;2040:
;2041:Lerror:
;2042:
;2043: int 3
;2044:
;2045: }
;2046:
;2047:}
;2048:
;2049:#pragma warning( default: 4035 )
;2050:
;2051:
;2052:
;2053:#endif
;2054:
;2055:#endif
;2056:
;2057:
;2058:
;2059:/*
;2060:
;2061:=================
;2062:
;2063:RadiusFromBounds
;2064:
;2065:=================
;2066:
;2067:*/
;2068:
;2069:float RadiusFromBounds( const vec3_t mins, const vec3_t maxs ) {
line 2079
;2070:
;2071: int i;
;2072:
;2073: vec3_t corner;
;2074:
;2075: float a, b;
;2076:
;2077:
;2078:
;2079: for (i=0 ; i<3 ; i++) {
ADDRLP4 0
CNSTI4 0
ASGNI4
LABELV $245
line 2081
;2080:
;2081: 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 2083
;2082:
;2083: 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 2085
;2084:
;2085: corner[i] = a > b ? a : b;
ADDRLP4 4
INDIRF4
ADDRLP4 8
INDIRF4
LEF4 $250
ADDRLP4 32
ADDRLP4 4
INDIRF4
ASGNF4
ADDRGP4 $251
JUMPV
LABELV $250
ADDRLP4 32
ADDRLP4 8
INDIRF4
ASGNF4
LABELV $251
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRLP4 12
ADDP4
ADDRLP4 32
INDIRF4
ASGNF4
line 2087
;2086:
;2087: }
LABELV $246
line 2079
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
ADDRLP4 0
INDIRI4
CNSTI4 3
LTI4 $245
line 2091
;2088:
;2089:
;2090:
;2091: return VectorLength (corner);
ADDRLP4 12
ARGP4
ADDRLP4 24
ADDRGP4 VectorLength
CALLF4
ASGNF4
ADDRLP4 24
INDIRF4
RETF4
LABELV $244
endproc RadiusFromBounds 36 4
export ClearBounds
proc ClearBounds 16 0
line 2099
;2092:
;2093:}
;2094:
;2095:
;2096:
;2097:
;2098:
;2099:void ClearBounds( vec3_t mins, vec3_t maxs ) {
line 2101
;2100:
;2101: 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 2103
;2102:
;2103: 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 2105
;2104:
;2105:}
LABELV $252
endproc ClearBounds 16 0
export AddPointToBounds
proc AddPointToBounds 20 0
line 2109
;2106:
;2107:
;2108:
;2109:void AddPointToBounds( const vec3_t v, vec3_t mins, vec3_t maxs ) {
line 2111
;2110:
;2111: if ( v[0] < mins[0] ) {
ADDRFP4 0
INDIRP4
INDIRF4
ADDRFP4 4
INDIRP4
INDIRF4
GEF4 $254
line 2113
;2112:
;2113: mins[0] = v[0];
ADDRFP4 4
INDIRP4
ADDRFP4 0
INDIRP4
INDIRF4
ASGNF4
line 2115
;2114:
;2115: }
LABELV $254
line 2117
;2116:
;2117: if ( v[0] > maxs[0]) {
ADDRFP4 0
INDIRP4
INDIRF4
ADDRFP4 8
INDIRP4
INDIRF4
LEF4 $256
line 2119
;2118:
;2119: maxs[0] = v[0];
ADDRFP4 8
INDIRP4
ADDRFP4 0
INDIRP4
INDIRF4
ASGNF4
line 2121
;2120:
;2121: }
LABELV $256
line 2125
;2122:
;2123:
;2124:
;2125: if ( v[1] < mins[1] ) {
ADDRLP4 0
CNSTI4 4
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 0
INDIRI4
ADDP4
INDIRF4
ADDRFP4 4
INDIRP4
ADDRLP4 0
INDIRI4
ADDP4
INDIRF4
GEF4 $258
line 2127
;2126:
;2127: mins[1] = v[1];
ADDRLP4 4
CNSTI4 4
ASGNI4
ADDRFP4 4
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
INDIRF4
ASGNF4
line 2129
;2128:
;2129: }
LABELV $258
line 2131
;2130:
;2131: if ( v[1] > maxs[1]) {
ADDRLP4 4
CNSTI4 4
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
INDIRF4
ADDRFP4 8
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
INDIRF4
LEF4 $260
line 2133
;2132:
;2133: maxs[1] = v[1];
ADDRLP4 8
CNSTI4 4
ASGNI4
ADDRFP4 8
INDIRP4
ADDRLP4 8
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 8
INDIRI4
ADDP4
INDIRF4
ASGNF4
line 2135
;2134:
;2135: }
LABELV $260
line 2139
;2136:
;2137:
;2138:
;2139: if ( v[2] < mins[2] ) {
ADDRLP4 8
CNSTI4 8
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 8
INDIRI4
ADDP4
INDIRF4
ADDRFP4 4
INDIRP4
ADDRLP4 8
INDIRI4
ADDP4
INDIRF4
GEF4 $262
line 2141
;2140:
;2141: mins[2] = v[2];
ADDRLP4 12
CNSTI4 8
ASGNI4
ADDRFP4 4
INDIRP4
ADDRLP4 12
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 12
INDIRI4
ADDP4
INDIRF4
ASGNF4
line 2143
;2142:
;2143: }
LABELV $262
line 2145
;2144:
;2145: if ( v[2] > maxs[2]) {
ADDRLP4 12
CNSTI4 8
ASGNI4
ADDRFP4 0
INDIRP4
ADDRLP4 12
INDIRI4
ADDP4
INDIRF4
ADDRFP4 8
INDIRP4
ADDRLP4 12
INDIRI4
ADDP4
INDIRF4
LEF4 $264
line 2147
;2146:
;2147: maxs[2] = v[2];
ADDRLP4 16
CNSTI4 8
ASGNI4
ADDRFP4 8
INDIRP4
ADDRLP4 16
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 16
INDIRI4
ADDP4
INDIRF4
ASGNF4
line 2149
;2148:
;2149: }
LABELV $264
line 2151
;2150:
;2151:}
LABELV $253
endproc AddPointToBounds 20 0
export VectorNormalize
proc VectorNormalize 40 4
line 2157
;2152:
;2153:
;2154:
;2155:
;2156:
;2157:vec_t VectorNormalize( vec3_t v ) {
line 2163
;2158:
;2159: float length, ilength;
;2160:
;2161:
;2162:
;2163: 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 16
ADDRLP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ASGNF4
ADDRLP4 20
ADDRLP4 8
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ASGNF4
ADDRLP4 0
ADDRLP4 12
INDIRF4
ADDRLP4 12
INDIRF4
MULF4
ADDRLP4 16
INDIRF4
ADDRLP4 16
INDIRF4
MULF4
ADDF4
ADDRLP4 20
INDIRF4
ADDRLP4 20
INDIRF4
MULF4
ADDF4
ASGNF4
line 2165
;2164:
;2165: length = sqrt (length);
ADDRLP4 0
INDIRF4
ARGF4
ADDRLP4 24
ADDRGP4 sqrt
CALLF4
ASGNF4
ADDRLP4 0
ADDRLP4 24
INDIRF4
ASGNF4
line 2169
;2166:
;2167:
;2168:
;2169: if ( length ) {
ADDRLP4 0
INDIRF4
CNSTF4 0
EQF4 $267
line 2171
;2170:
;2171: ilength = 1/length;
ADDRLP4 4
CNSTF4 1065353216
ADDRLP4 0
INDIRF4
DIVF4
ASGNF4
line 2173
;2172:
;2173: v[0] *= ilength;
ADDRLP4 28
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 28
INDIRP4
ADDRLP4 28
INDIRP4
INDIRF4
ADDRLP4 4
INDIRF4
MULF4
ASGNF4
line 2175
;2174:
;2175: v[1] *= ilength;
ADDRLP4 32
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
ASGNP4
ADDRLP4 32
INDIRP4
ADDRLP4 32
INDIRP4
INDIRF4
ADDRLP4 4
INDIRF4
MULF4
ASGNF4
line 2177
;2176:
;2177: v[2] *= ilength;
ADDRLP4 36
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
ASGNP4
ADDRLP4 36
INDIRP4
ADDRLP4 36
INDIRP4
INDIRF4
ADDRLP4 4
INDIRF4
MULF4
ASGNF4
line 2179
;2178:
;2179: }
LABELV $267
line 2183
;2180:
;2181:
;2182:
;2183: return length;
ADDRLP4 0
INDIRF4
RETF4
LABELV $266
endproc VectorNormalize 40 4
export VectorNormalize2
proc VectorNormalize2 36 4
line 2189
;2184:
;2185:}
;2186:
;2187:
;2188:
;2189:vec_t VectorNormalize2( const vec3_t v, vec3_t out) {
line 2195
;2190:
;2191: float length, ilength;
;2192:
;2193:
;2194:
;2195: 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 16
ADDRLP4 8
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ASGNF4
ADDRLP4 20
ADDRLP4 8
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ASGNF4
ADDRLP4 0
ADDRLP4 12
INDIRF4
ADDRLP4 12
INDIRF4
MULF4
ADDRLP4 16
INDIRF4
ADDRLP4 16
INDIRF4
MULF4
ADDF4
ADDRLP4 20
INDIRF4
ADDRLP4 20
INDIRF4
MULF4
ADDF4
ASGNF4
line 2197
;2196:
;2197: length = sqrt (length);
ADDRLP4 0
INDIRF4
ARGF4
ADDRLP4 24
ADDRGP4 sqrt
CALLF4
ASGNF4
ADDRLP4 0
ADDRLP4 24
INDIRF4
ASGNF4
line 2201
;2198:
;2199:
;2200:
;2201: if (length)
ADDRLP4 0
INDIRF4
CNSTF4 0
EQF4 $270
line 2203
;2202:
;2203: {
line 2211
;2204:
;2205:#ifndef Q3_VM // bk0101022 - FPE related
;2206:
;2207:// assert( ((Q_fabs(v[0])!=0.0f) || (Q_fabs(v[1])!=0.0f) || (Q_fabs(v[2])!=0.0f)) );
;2208:
;2209:#endif
;2210:
;2211: ilength = 1/length;
ADDRLP4 4
CNSTF4 1065353216
ADDRLP4 0
INDIRF4
DIVF4
ASGNF4
line 2213
;2212:
;2213: out[0] = v[0]*ilength;
ADDRFP4 4
INDIRP4
ADDRFP4 0
INDIRP4
INDIRF4
ADDRLP4 4
INDIRF4
MULF4
ASGNF4
line 2215
;2214:
;2215: out[1] = v[1]*ilength;
ADDRLP4 28
CNSTI4 4
ASGNI4
ADDRFP4 4
INDIRP4
ADDRLP4 28
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 28
INDIRI4
ADDP4
INDIRF4
ADDRLP4 4
INDIRF4
MULF4
ASGNF4
line 2217
;2216:
;2217: out[2] = v[2]*ilength;
ADDRLP4 32
CNSTI4 8
ASGNI4
ADDRFP4 4
INDIRP4
ADDRLP4 32
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 32
INDIRI4
ADDP4
INDIRF4
ADDRLP4 4
INDIRF4
MULF4
ASGNF4
line 2219
;2218:
;2219: } else {
ADDRGP4 $271
JUMPV
LABELV $270
line 2227
;2220:
;2221:#ifndef Q3_VM // bk0101022 - FPE related
;2222:
;2223:// assert( ((Q_fabs(v[0])==0.0f) && (Q_fabs(v[1])==0.0f) && (Q_fabs(v[2])==0.0f)) );
;2224:
;2225:#endif
;2226:
;2227: VectorClear( out );
ADDRLP4 28
ADDRFP4 4
INDIRP4
ASGNP4
ADDRLP4 32
CNSTF4 0
ASGNF4
ADDRLP4 28
INDIRP4
CNSTI4 8
ADDP4
ADDRLP4 32
INDIRF4
ASGNF4
ADDRLP4 28
INDIRP4
CNSTI4 4
ADDP4
ADDRLP4 32
INDIRF4
ASGNF4
ADDRLP4 28
INDIRP4
ADDRLP4 32
INDIRF4
ASGNF4
line 2229
;2228:
;2229: }
LABELV $271
line 2233
;2230:
;2231:
;2232:
;2233: return length;
ADDRLP4 0
INDIRF4
RETF4
LABELV $269
endproc VectorNormalize2 36 4
export _VectorMA
proc _VectorMA 8 0
line 2241
;2234:
;2235:
;2236:
;2237:}
;2238:
;2239:
;2240:
;2241:void _VectorMA( const vec3_t veca, float scale, const vec3_t vecb, vec3_t vecc) {
line 2243
;2242:
;2243: 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 2245
;2244:
;2245: vecc[1] = veca[1] + scale*vecb[1];
ADDRLP4 0
CNSTI4 4
ASGNI4
ADDRFP4 12
INDIRP4
ADDRLP4 0
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 0
INDIRI4
ADDP4
INDIRF4
ADDRFP4 4
INDIRF4
ADDRFP4 8
INDIRP4
ADDRLP4 0
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 2247
;2246:
;2247: vecc[2] = veca[2] + scale*vecb[2];
ADDRLP4 4
CNSTI4 8
ASGNI4
ADDRFP4 12
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
INDIRF4
ADDRFP4 4
INDIRF4
ADDRFP4 8
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 2249
;2248:
;2249:}
LABELV $272
endproc _VectorMA 8 0
export _DotProduct
proc _DotProduct 16 0
line 2255
;2250:
;2251:
;2252:
;2253:
;2254:
;2255:vec_t _DotProduct( const vec3_t v1, const vec3_t v2 ) {
line 2257
;2256:
;2257: 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 8
CNSTI4 4
ASGNI4
ADDRLP4 12
CNSTI4 8
ASGNI4
ADDRLP4 0
INDIRP4
INDIRF4
ADDRLP4 4
INDIRP4
INDIRF4
MULF4
ADDRLP4 0
INDIRP4
ADDRLP4 8
INDIRI4
ADDP4
INDIRF4
ADDRLP4 4
INDIRP4
ADDRLP4 8
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 0
INDIRP4
ADDRLP4 12
INDIRI4
ADDP4
INDIRF4
ADDRLP4 4
INDIRP4
ADDRLP4 12
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
RETF4
LABELV $273
endproc _DotProduct 16 0
export _VectorSubtract
proc _VectorSubtract 8 0
line 2263
;2258:
;2259:}
;2260:
;2261:
;2262:
;2263:void _VectorSubtract( const vec3_t veca, const vec3_t vecb, vec3_t out ) {
line 2265
;2264:
;2265: out[0] = veca[0]-vecb[0];
ADDRFP4 8
INDIRP4
ADDRFP4 0
INDIRP4
INDIRF4
ADDRFP4 4
INDIRP4
INDIRF4
SUBF4
ASGNF4
line 2267
;2266:
;2267: out[1] = veca[1]-vecb[1];
ADDRLP4 0
CNSTI4 4
ASGNI4
ADDRFP4 8
INDIRP4
ADDRLP4 0
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 0
INDIRI4
ADDP4
INDIRF4
ADDRFP4 4
INDIRP4
ADDRLP4 0
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
line 2269
;2268:
;2269: out[2] = veca[2]-vecb[2];
ADDRLP4 4
CNSTI4 8
ASGNI4
ADDRFP4 8
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
INDIRF4
ADDRFP4 4
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
INDIRF4
SUBF4
ASGNF4
line 2271
;2270:
;2271:}
LABELV $274
endproc _VectorSubtract 8 0
export _VectorAdd
proc _VectorAdd 8 0
line 2275
;2272:
;2273:
;2274:
;2275:void _VectorAdd( const vec3_t veca, const vec3_t vecb, vec3_t out ) {
line 2277
;2276:
;2277: out[0] = veca[0]+vecb[0];
ADDRFP4 8
INDIRP4
ADDRFP4 0
INDIRP4
INDIRF4
ADDRFP4 4
INDIRP4
INDIRF4
ADDF4
ASGNF4
line 2279
;2278:
;2279: out[1] = veca[1]+vecb[1];
ADDRLP4 0
CNSTI4 4
ASGNI4
ADDRFP4 8
INDIRP4
ADDRLP4 0
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 0
INDIRI4
ADDP4
INDIRF4
ADDRFP4 4
INDIRP4
ADDRLP4 0
INDIRI4
ADDP4
INDIRF4
ADDF4
ASGNF4
line 2281
;2280:
;2281: out[2] = veca[2]+vecb[2];
ADDRLP4 4
CNSTI4 8
ASGNI4
ADDRFP4 8
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
INDIRF4
ADDRFP4 4
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
INDIRF4
ADDF4
ASGNF4
line 2283
;2282:
;2283:}
LABELV $275
endproc _VectorAdd 8 0
export _VectorCopy
proc _VectorCopy 8 0
line 2287
;2284:
;2285:
;2286:
;2287:void _VectorCopy( const vec3_t in, vec3_t out ) {
line 2289
;2288:
;2289: out[0] = in[0];
ADDRFP4 4
INDIRP4
ADDRFP4 0
INDIRP4
INDIRF4
ASGNF4
line 2291
;2290:
;2291: out[1] = in[1];
ADDRLP4 0
CNSTI4 4
ASGNI4
ADDRFP4 4
INDIRP4
ADDRLP4 0
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 0
INDIRI4
ADDP4
INDIRF4
ASGNF4
line 2293
;2292:
;2293: out[2] = in[2];
ADDRLP4 4
CNSTI4 8
ASGNI4
ADDRFP4 4
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
INDIRF4
ASGNF4
line 2295
;2294:
;2295:}
LABELV $276
endproc _VectorCopy 8 0
export _VectorScale
proc _VectorScale 8 0
line 2299
;2296:
;2297:
;2298:
;2299:void _VectorScale( const vec3_t in, vec_t scale, vec3_t out ) {
line 2301
;2300:
;2301: out[0] = in[0]*scale;
ADDRFP4 8
INDIRP4
ADDRFP4 0
INDIRP4
INDIRF4
ADDRFP4 4
INDIRF4
MULF4
ASGNF4
line 2303
;2302:
;2303: out[1] = in[1]*scale;
ADDRLP4 0
CNSTI4 4
ASGNI4
ADDRFP4 8
INDIRP4
ADDRLP4 0
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 0
INDIRI4
ADDP4
INDIRF4
ADDRFP4 4
INDIRF4
MULF4
ASGNF4
line 2305
;2304:
;2305: out[2] = in[2]*scale;
ADDRLP4 4
CNSTI4 8
ASGNI4
ADDRFP4 8
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
INDIRF4
ADDRFP4 4
INDIRF4
MULF4
ASGNF4
line 2307
;2306:
;2307:}
LABELV $277
endproc _VectorScale 8 0
export Vector4Scale
proc Vector4Scale 12 0
line 2311
;2308:
;2309:
;2310:
;2311:void Vector4Scale( const vec4_t in, vec_t scale, vec4_t out ) {
line 2313
;2312:
;2313: out[0] = in[0]*scale;
ADDRFP4 8
INDIRP4
ADDRFP4 0
INDIRP4
INDIRF4
ADDRFP4 4
INDIRF4
MULF4
ASGNF4
line 2315
;2314:
;2315: out[1] = in[1]*scale;
ADDRLP4 0
CNSTI4 4
ASGNI4
ADDRFP4 8
INDIRP4
ADDRLP4 0
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 0
INDIRI4
ADDP4
INDIRF4
ADDRFP4 4
INDIRF4
MULF4
ASGNF4
line 2317
;2316:
;2317: out[2] = in[2]*scale;
ADDRLP4 4
CNSTI4 8
ASGNI4
ADDRFP4 8
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 4
INDIRI4
ADDP4
INDIRF4
ADDRFP4 4
INDIRF4
MULF4
ASGNF4
line 2319
;2318:
;2319: out[3] = in[3]*scale;
ADDRLP4 8
CNSTI4 12
ASGNI4
ADDRFP4 8
INDIRP4
ADDRLP4 8
INDIRI4
ADDP4
ADDRFP4 0
INDIRP4
ADDRLP4 8
INDIRI4
ADDP4
INDIRF4
ADDRFP4 4
INDIRF4
MULF4
ASGNF4
line 2321
;2320:
;2321:}
LABELV $278
endproc Vector4Scale 12 0
export Q_log2
proc Q_log2 8 0
line 2327
;2322:
;2323:
;2324:
;2325:
;2326:
;2327:int Q_log2( int val ) {
line 2333
;2328:
;2329: int answer;
;2330:
;2331:
;2332:
;2333: answer = 0;
ADDRLP4 0
CNSTI4 0
ASGNI4
ADDRGP4 $281
JUMPV
LABELV $280
line 2335
;2334:
;2335: while ( ( val>>=1 ) != 0 ) {
line 2337
;2336:
;2337: answer++;
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
line 2339
;2338:
;2339: }
LABELV $281
line 2335
ADDRLP4 4
ADDRFP4 0
INDIRI4
CNSTI4 1
RSHI4
ASGNI4
ADDRFP4 0
ADDRLP4 4
INDIRI4
ASGNI4
ADDRLP4 4
INDIRI4
CNSTI4 0
NEI4 $280
line 2341
;2340:
;2341: return answer;
ADDRLP4 0
INDIRI4
RETI4
LABELV $279
endproc Q_log2 8 0
export MatrixMultiply
proc MatrixMultiply 104 0
line 2399
;2342:
;2343:}
;2344:
;2345:
;2346:
;2347:
;2348:
;2349:
;2350:
;2351:/*
;2352:
;2353:=================
;2354:
;2355:PlaneTypeForNormal
;2356:
;2357:=================
;2358:
;2359:*/
;2360:
;2361:/*
;2362:
;2363:int PlaneTypeForNormal (vec3_t normal) {
;2364:
;2365: if ( normal[0] == 1.0 )
;2366:
;2367: return PLANE_X;
;2368:
;2369: if ( normal[1] == 1.0 )
;2370:
;2371: return PLANE_Y;
;2372:
;2373: if ( normal[2] == 1.0 )
;2374:
;2375: return PLANE_Z;
;2376:
;2377:
;2378:
;2379: return PLANE_NON_AXIAL;
;2380:
;2381:}
;2382:
;2383:*/
;2384:
;2385:
;2386:
;2387:
;2388:
;2389:/*
;2390:
;2391:================
;2392:
;2393:MatrixMultiply
;2394:
;2395:================
;2396:
;2397:*/
;2398:
;2399:void MatrixMultiply(float in1[3][3], float in2[3][3], float out[3][3]) {
line 2401
;2400:
;2401: 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 2405
;2402:
;2403: in1[0][2] * in2[2][0];
;2404:
;2405: out[0][1] = in1[0][0] * in2[0][1] + in1[0][1] * in2[1][1] +
ADDRLP4 8
CNSTI4 4
ASGNI4
ADDRLP4 12
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 16
ADDRFP4 4
INDIRP4
ASGNP4
ADDRFP4 8
INDIRP4
ADDRLP4 8
INDIRI4
ADDP4
ADDRLP4 12
INDIRP4
INDIRF4
ADDRLP4 16
INDIRP4
ADDRLP4 8
INDIRI4
ADDP4
INDIRF4
MULF4
ADDRLP4 12
INDIRP4
ADDRLP4 8
INDIRI4
ADDP4
INDIRF4
ADDRLP4 16
INDIRP4
CNSTI4 16
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 12
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
ADDRLP4 16
INDIRP4
CNSTI4 28
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 2409
;2406:
;2407: in1[0][2] * in2[2][1];
;2408:
;2409: out[0][2] = in1[0][0] * in2[0][2] + in1[0][1] * in2[1][2] +
ADDRLP4 20
CNSTI4 8
ASGNI4
ADDRLP4 24
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 28
ADDRFP4 4
INDIRP4
ASGNP4
ADDRFP4 8
INDIRP4
ADDRLP4 20
INDIRI4
ADDP4
ADDRLP4 24
INDIRP4
INDIRF4
ADDRLP4 28
INDIRP4
ADDRLP4 20
INDIRI4
ADDP4
INDIRF4
MULF4
ADDRLP4 24
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
ADDRLP4 28
INDIRP4
CNSTI4 20
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 24
INDIRP4
ADDRLP4 20
INDIRI4
ADDP4
INDIRF4
ADDRLP4 28
INDIRP4
CNSTI4 32
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 2413
;2410:
;2411: in1[0][2] * in2[2][2];
;2412:
;2413: out[1][0] = in1[1][0] * in2[0][0] + in1[1][1] * in2[1][0] +
ADDRLP4 32
CNSTI4 12
ASGNI4
ADDRLP4 36
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 40
ADDRFP4 4
INDIRP4
ASGNP4
ADDRFP4 8
INDIRP4
ADDRLP4 32
INDIRI4
ADDP4
ADDRLP4 36
INDIRP4
ADDRLP4 32
INDIRI4
ADDP4
INDIRF4
ADDRLP4 40
INDIRP4
INDIRF4
MULF4
ADDRLP4 36
INDIRP4
CNSTI4 16
ADDP4
INDIRF4
ADDRLP4 40
INDIRP4
ADDRLP4 32
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 36
INDIRP4
CNSTI4 20
ADDP4
INDIRF4
ADDRLP4 40
INDIRP4
CNSTI4 24
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 2417
;2414:
;2415: in1[1][2] * in2[2][0];
;2416:
;2417: out[1][1] = in1[1][0] * in2[0][1] + in1[1][1] * in2[1][1] +
ADDRLP4 44
CNSTI4 16
ASGNI4
ADDRLP4 48
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 52
ADDRFP4 4
INDIRP4
ASGNP4
ADDRFP4 8
INDIRP4
ADDRLP4 44
INDIRI4
ADDP4
ADDRLP4 48
INDIRP4
CNSTI4 12
ADDP4
INDIRF4
ADDRLP4 52
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDRLP4 48
INDIRP4
ADDRLP4 44
INDIRI4
ADDP4
INDIRF4
ADDRLP4 52
INDIRP4
ADDRLP4 44
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 48
INDIRP4
CNSTI4 20
ADDP4
INDIRF4
ADDRLP4 52
INDIRP4
CNSTI4 28
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 2421
;2418:
;2419: in1[1][2] * in2[2][1];
;2420:
;2421: out[1][2] = in1[1][0] * in2[0][2] + in1[1][1] * in2[1][2] +
ADDRLP4 56
CNSTI4 20
ASGNI4
ADDRLP4 60
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 64
ADDRFP4 4
INDIRP4
ASGNP4
ADDRFP4 8
INDIRP4
ADDRLP4 56
INDIRI4
ADDP4
ADDRLP4 60
INDIRP4
CNSTI4 12
ADDP4
INDIRF4
ADDRLP4 64
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDRLP4 60
INDIRP4
CNSTI4 16
ADDP4
INDIRF4
ADDRLP4 64
INDIRP4
ADDRLP4 56
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 60
INDIRP4
ADDRLP4 56
INDIRI4
ADDP4
INDIRF4
ADDRLP4 64
INDIRP4
CNSTI4 32
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 2425
;2422:
;2423: in1[1][2] * in2[2][2];
;2424:
;2425: out[2][0] = in1[2][0] * in2[0][0] + in1[2][1] * in2[1][0] +
ADDRLP4 68
CNSTI4 24
ASGNI4
ADDRLP4 72
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 76
ADDRFP4 4
INDIRP4
ASGNP4
ADDRFP4 8
INDIRP4
ADDRLP4 68
INDIRI4
ADDP4
ADDRLP4 72
INDIRP4
ADDRLP4 68
INDIRI4
ADDP4
INDIRF4
ADDRLP4 76
INDIRP4
INDIRF4
MULF4
ADDRLP4 72
INDIRP4
CNSTI4 28
ADDP4
INDIRF4
ADDRLP4 76
INDIRP4
CNSTI4 12
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 72
INDIRP4
CNSTI4 32
ADDP4
INDIRF4
ADDRLP4 76
INDIRP4
ADDRLP4 68
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 2429
;2426:
;2427: in1[2][2] * in2[2][0];
;2428:
;2429: out[2][1] = in1[2][0] * in2[0][1] + in1[2][1] * in2[1][1] +
ADDRLP4 80
CNSTI4 28
ASGNI4
ADDRLP4 84
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 88
ADDRFP4 4
INDIRP4
ASGNP4
ADDRFP4 8
INDIRP4
ADDRLP4 80
INDIRI4
ADDP4
ADDRLP4 84
INDIRP4
CNSTI4 24
ADDP4
INDIRF4
ADDRLP4 88
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ADDRLP4 84
INDIRP4
ADDRLP4 80
INDIRI4
ADDP4
INDIRF4
ADDRLP4 88
INDIRP4
CNSTI4 16
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 84
INDIRP4
CNSTI4 32
ADDP4
INDIRF4
ADDRLP4 88
INDIRP4
ADDRLP4 80
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 2433
;2430:
;2431: in1[2][2] * in2[2][1];
;2432:
;2433: out[2][2] = in1[2][0] * in2[0][2] + in1[2][1] * in2[1][2] +
ADDRLP4 92
CNSTI4 32
ASGNI4
ADDRLP4 96
ADDRFP4 0
INDIRP4
ASGNP4
ADDRLP4 100
ADDRFP4 4
INDIRP4
ASGNP4
ADDRFP4 8
INDIRP4
ADDRLP4 92
INDIRI4
ADDP4
ADDRLP4 96
INDIRP4
CNSTI4 24
ADDP4
INDIRF4
ADDRLP4 100
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ADDRLP4 96
INDIRP4
CNSTI4 28
ADDP4
INDIRF4
ADDRLP4 100
INDIRP4
CNSTI4 20
ADDP4
INDIRF4
MULF4
ADDF4
ADDRLP4 96
INDIRP4
ADDRLP4 92
INDIRI4
ADDP4
INDIRF4
ADDRLP4 100
INDIRP4
ADDRLP4 92
INDIRI4
ADDP4
INDIRF4
MULF4
ADDF4
ASGNF4
line 2437
;2434:
;2435: in1[2][2] * in2[2][2];
;2436:
;2437:}
LABELV $283
endproc MatrixMultiply 104 0
bss
align 4
LABELV $285
skip 4
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
export AngleVectors
code
proc AngleVectors 36 4
line 2443
;2438:
;2439:
;2440:
;2441:
;2442:
;2443:void AngleVectors( const vec3_t angles, vec3_t forward, vec3_t right, vec3_t up) {
line 2453
;2444:
;2445: float angle;
;2446:
;2447: static float sr, sp, sy, cr, cp, cy;
;2448:
;2449: // static to help MS compiler fp bugs
;2450:
;2451:
;2452:
;2453: angle = angles[YAW] * (M_PI*2 / 360);
ADDRLP4 0
CNSTF4 1016003125
ADDRFP4 0
INDIRP4
CNSTI4 4
ADDP4
INDIRF4
MULF4
ASGNF4
line 2455
;2454:
;2455: sy = sin(angle);
ADDRLP4 0
INDIRF4
ARGF4
ADDRLP4 4
ADDRGP4 sin
CALLF4
ASGNF4
ADDRGP4 $287
ADDRLP4 4
INDIRF4
ASGNF4
line 2457
;2456:
;2457: cy = cos(angle);
ADDRLP4 0
INDIRF4
ARGF4
ADDRLP4 8
ADDRGP4 cos
CALLF4
ASGNF4
ADDRGP4 $290
ADDRLP4 8
INDIRF4
ASGNF4
line 2459
;2458:
;2459: angle = angles[PITCH] * (M_PI*2 / 360);
ADDRLP4 0
CNSTF4 1016003125
ADDRFP4 0
INDIRP4
INDIRF4
MULF4
ASGNF4
line 2461
;2460:
;2461: sp = sin(angle);
ADDRLP4 0
INDIRF4
ARGF4
ADDRLP4 12
ADDRGP4 sin
CALLF4
ASGNF4
ADDRGP4 $286
ADDRLP4 12
INDIRF4
ASGNF4
line 2463
;2462:
;2463: cp = cos(angle);
ADDRLP4 0
INDIRF4
ARGF4
ADDRLP4 16
ADDRGP4 cos
CALLF4
ASGNF4
ADDRGP4 $289
ADDRLP4 16
INDIRF4
ASGNF4
line 2465
;2464:
;2465: angle = angles[ROLL] * (M_PI*2 / 360);
ADDRLP4 0
CNSTF4 1016003125
ADDRFP4 0
INDIRP4
CNSTI4 8
ADDP4
INDIRF4
MULF4
ASGNF4
line 2467
;2466:
;2467: sr = sin(angle);
ADDRLP4 0
INDIRF4
ARGF4
ADDRLP4 20
ADDRGP4 sin
CALLF4
ASGNF4
ADDRGP4 $285
ADDRLP4 20
INDIRF4
ASGNF4
line 2469
;2468:
;2469: cr = cos(angle);
ADDRLP4 0
INDIRF4
ARGF4
ADDRLP4 24
ADDRGP4 cos
CALLF4
ASGNF4
ADDRGP4 $288
ADDRLP4 24
INDIRF4
ASGNF4
line 2473
;2470:
;2471:
;2472:
;2473: if (forward)
ADDRFP4 4
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $291
line 2475
;2474:
;2475: {
line 2477
;2476:
;2477: forward[0] = cp*cy;
ADDRFP4 4
INDIRP4
ADDRGP4 $289
INDIRF4
ADDRGP4 $290
INDIRF4
MULF4
ASGNF4
line 2479
;2478:
;2479: forward[1] = cp*sy;
ADDRFP4 4
INDIRP4
CNSTI4 4
ADDP4
ADDRGP4 $289
INDIRF4
ADDRGP4 $287
INDIRF4
MULF4
ASGNF4
line 2481
;2480:
;2481: forward[2] = -sp;
ADDRFP4 4
INDIRP4
CNSTI4 8
ADDP4
ADDRGP4 $286
INDIRF4
NEGF4
ASGNF4
line 2483
;2482:
;2483: }
LABELV $291
line 2485
;2484:
;2485: if (right)
ADDRFP4 8
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $293
line 2487
;2486:
;2487: {
line 2489
;2488:
;2489: right[0] = (-1*sr*sp*cy+-1*cr*-sy);
ADDRLP4 28
CNSTF4 3212836864
ASGNF4
ADDRFP4 8
INDIRP4
ADDRLP4 28
INDIRF4
ADDRGP4 $285
INDIRF4
MULF4
ADDRGP4 $286
INDIRF4
MULF4
ADDRGP4 $290
INDIRF4
MULF4
ADDRLP4 28
INDIRF4
ADDRGP4 $288
INDIRF4
MULF4
ADDRGP4 $287
INDIRF4
NEGF4
MULF4
ADDF4
ASGNF4
line 2491
;2490:
;2491: right[1] = (-1*sr*sp*sy+-1*cr*cy);
ADDRLP4 32
CNSTF4 3212836864
ASGNF4
ADDRFP4 8
INDIRP4
CNSTI4 4
ADDP4
ADDRLP4 32
INDIRF4
ADDRGP4 $285
INDIRF4
MULF4
ADDRGP4 $286
INDIRF4
MULF4
ADDRGP4 $287
INDIRF4
MULF4
ADDRLP4 32
INDIRF4
ADDRGP4 $288
INDIRF4
MULF4
ADDRGP4 $290
INDIRF4
MULF4
ADDF4
ASGNF4
line 2493
;2492:
;2493: right[2] = -1*sr*cp;
ADDRFP4 8
INDIRP4
CNSTI4 8
ADDP4
CNSTF4 3212836864
ADDRGP4 $285
INDIRF4
MULF4
ADDRGP4 $289
INDIRF4
MULF4
ASGNF4
line 2495
;2494:
;2495: }
LABELV $293
line 2497
;2496:
;2497: if (up)
ADDRFP4 12
INDIRP4
CVPU4 4
CNSTU4 0
EQU4 $295
line 2499
;2498:
;2499: {
line 2501
;2500:
;2501: up[0] = (cr*sp*cy+-sr*-sy);
ADDRFP4 12
INDIRP4
ADDRGP4 $288
INDIRF4
ADDRGP4 $286
INDIRF4
MULF4
ADDRGP4 $290
INDIRF4
MULF4
ADDRGP4 $285
INDIRF4
NEGF4
ADDRGP4 $287
INDIRF4
NEGF4
MULF4
ADDF4
ASGNF4
line 2503
;2502:
;2503: up[1] = (cr*sp*sy+-sr*cy);
ADDRFP4 12
INDIRP4
CNSTI4 4
ADDP4
ADDRGP4 $288
INDIRF4
ADDRGP4 $286
INDIRF4
MULF4
ADDRGP4 $287
INDIRF4
MULF4
ADDRGP4 $285
INDIRF4
NEGF4
ADDRGP4 $290
INDIRF4
MULF4
ADDF4
ASGNF4
line 2505
;2504:
;2505: up[2] = cr*cp;
ADDRFP4 12
INDIRP4
CNSTI4 8
ADDP4
ADDRGP4 $288
INDIRF4
ADDRGP4 $289
INDIRF4
MULF4
ASGNF4
line 2507
;2506:
;2507: }
LABELV $295
line 2509
;2508:
;2509:}
LABELV $284
endproc AngleVectors 36 4
export PerpendicularVector
proc PerpendicularVector 36 12
line 2521
;2510:
;2511:
;2512:
;2513:/*
;2514:
;2515:** assumes "src" is normalized
;2516:
;2517:*/
;2518:
;2519:void PerpendicularVector( vec3_t dst, const vec3_t src )
;2520:
;2521:{
line 2527
;2522:
;2523: int pos;
;2524:
;2525: int i;
;2526:
;2527: float minelem = 1.0F;
ADDRLP4 4
CNSTF4 1065353216
ASGNF4
line 2539
;2528:
;2529: vec3_t tempvec;
;2530:
;2531:
;2532:
;2533: /*
;2534:
;2535: ** find the smallest magnitude axially aligned vector
;2536:
;2537: */
;2538:
;2539: for ( pos = 0, i = 0; i < 3; i++ )
ADDRLP4 24
CNSTI4 0
ASGNI4
ADDRLP4 8
ADDRLP4 24
INDIRI4
ASGNI4
ADDRLP4 0
ADDRLP4 24
INDIRI4
ASGNI4
ADDRGP4 $301
JUMPV
LABELV $298
line 2541
;2540:
;2541: {
line 2543
;2542:
;2543: if ( fabs( src[i] ) < minelem )
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRFP4 4
INDIRP4
ADDP4
INDIRF4
ARGF4
ADDRLP4 28
ADDRGP4 fabs
CALLF4
ASGNF4
ADDRLP4 28
INDIRF4
ADDRLP4 4
INDIRF4
GEF4 $302
line 2545
;2544:
;2545: {
line 2547
;2546:
;2547: pos = i;
ADDRLP4 8
ADDRLP4 0
INDIRI4
ASGNI4
line 2549
;2548:
;2549: minelem = fabs( src[i] );
ADDRLP4 0
INDIRI4
CNSTI4 2
LSHI4
ADDRFP4 4
INDIRP4
ADDP4
INDIRF4
ARGF4
ADDRLP4 32
ADDRGP4 fabs
CALLF4
ASGNF4
ADDRLP4 4
ADDRLP4 32
INDIRF4
ASGNF4
line 2551
;2550:
;2551: }
LABELV $302
line 2553
;2552:
;2553: }
LABELV $299
line 2539
ADDRLP4 0
ADDRLP4 0
INDIRI4
CNSTI4 1
ADDI4
ASGNI4
LABELV $301
ADDRLP4 0
INDIRI4
CNSTI4 3
LTI4 $298
line 2555
;2554:
;2555: tempvec[0] = tempvec[1] = tempvec[2] = 0.0F;
ADDRLP4 28
CNSTF4 0
ASGNF4
ADDRLP4 12+8
ADDRLP4 28
INDIRF4
ASGNF4
ADDRLP4 12+4
ADDRLP4 28
INDIRF4
ASGNF4
ADDRLP4 12
ADDRLP4 28
INDIRF4
ASGNF4
line 2557
;2556:
;2557: tempvec[pos] = 1.0F;
ADDRLP4 8
INDIRI4
CNSTI4 2
LSHI4
ADDRLP4 12
ADDP4
CNSTF4 1065353216
ASGNF4
line 2567
;2558:
;2559:
;2560:
;2561: /*
;2562:
;2563: ** project the point onto the plane defined by src
;2564:
;2565: */
;2566:
;2567: ProjectPointOnPlane( dst, tempvec, src );
ADDRFP4 0
INDIRP4
ARGP4
ADDRLP4 12
ARGP4
ADDRFP4 4
INDIRP4
ARGP4
ADDRGP4 ProjectPointOnPlane
CALLV
pop
line 2577
;2568:
;2569:
;2570:
;2571: /*
;2572:
;2573: ** normalize the result
;2574:
;2575: */
;2576:
;2577: VectorNormalize( dst );
ADDRFP4 0
INDIRP4
ARGP4
ADDRGP4 VectorNormalize
CALLF4
pop
line 2579
;2578:
;2579:}
LABELV $297
endproc PerpendicularVector 36 12
import Com_Printf
import Com_Error
import Info_NextPair
import Info_Validate
import Info_SetValueForKey_Big
import Info_SetValueForKey
import Info_RemoveKey_big
import Info_RemoveKey
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 Com_sprintf
import Parse3DMatrix
import Parse2DMatrix
import Parse1DMatrix
import SkipRestOfLine
import SkipBracedSection
import COM_MatchToken
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 Com_Memcpy
import Com_Memset
import Hunk_Alloc
import FloatSwap
import LongSwap
import ShortSwap
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 sscanf
import vsprintf
import _atoi
import atoi
import _atof
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