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