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