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