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