You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
292 lines
13 KiB
292 lines
13 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $NoKeywords: $ |
|
//=============================================================================// |
|
|
|
// memdbgon must be the last include file in a .cpp file!!! |
|
#include "cbase.h" |
|
#include "utlvector.h" |
|
#include "util.h" |
|
#include "halloween/halloween_gift_spawn_locations.h" |
|
#include "tier0/memdbgon.h" |
|
// ------------------------------------------------------------------------- |
|
|
|
struct valid_item_pos |
|
{ |
|
float x, y, z; |
|
}; |
|
|
|
static valid_item_pos kValidPositions_MannManor[] = { |
|
{ -725.000000, 1362.500000, -639.968750 }, |
|
{ -3137.500000, 1500.000000, -1023.968750 }, |
|
{ -1212.500000, 1187.500000, -959.968750 }, |
|
{ -3150.000000, 1375.000000, -791.968750 }, |
|
{ -2237.500000, 2150.000000, -1015.968750 }, |
|
{ -1837.500000, 2250.000000, -895.968750 }, |
|
{ -1162.500000, 1837.500000, -959.968750 }, |
|
{ -3662.500000, 1212.500000, -1024.431152 }, |
|
{ -912.500000, 3937.500000, -1039.968750 }, |
|
{ -175.000000, 1837.500000, -1007.968750 }, |
|
{ -1575.000000, 1762.500000, -959.968750 }, |
|
{ -1625.000000, 1387.500000, -959.968750 }, |
|
{ -850.000000, 1025.000000, -639.468750 }, |
|
{ -2625.000000, 3750.000000, -1086.180908 }, |
|
{ -450.000000, 1850.000000, -1006.910278 }, |
|
{ -2775.000000, 1425.000000, -1023.968750 }, |
|
{ -2037.500000, 1625.000000, -895.968750 }, |
|
{ -637.500000, 2475.000000, -767.968750 }, |
|
{ -3637.500000, 2862.500000, -903.968750 }, |
|
{ -2812.500000, 1325.000000, -791.968750 }, |
|
{ -1212.500000, 2162.500000, -959.968750 }, |
|
{ -1525.000000, 2662.500000, -895.968750 }, |
|
{ -2837.500000, 2537.500000, -1085.712402 }, |
|
{ -1312.500000, 3787.500000, -1079.968750 }, |
|
{ -2450.000000, 1637.500000, -895.968750 }, |
|
{ -625.000000, 1037.500000, -639.968750 }, |
|
{ -3625.000000, 2587.500000, -903.968750 }, |
|
{ -2800.000000, 3362.500000, -1087.954102 }, |
|
{ -2250.000000, 1625.000000, -895.968750 }, |
|
{ -1775.000000, 2825.000000, -783.968750 }, |
|
{ -3712.500000, 2100.000000, -671.968750 }, |
|
{ -3500.000000, 2100.000000, -863.968750 }, |
|
{ -1400.000000, 3325.000000, -1088.116577 }, |
|
{ -800.000000, 2825.000000, -767.968750 }, |
|
{ -1787.500000, 2575.000000, -767.968750 }, |
|
{ -2962.500000, 3187.500000, -668.908264 }, |
|
{ -1962.500000, 1900.000000, -895.968750 }, |
|
{ -712.500000, 2262.500000, -767.968750 }, |
|
{ -587.500000, 3887.500000, -1099.458862 }, |
|
{ -3737.500000, 2112.500000, -863.968750 }, |
|
{ -3212.500000, 1237.500000, -1023.968750 }, |
|
{ -1325.000000, 3987.500000, -1079.968750 }, |
|
{ -737.500000, 1887.500000, -1007.968750 }, |
|
{ -2837.500000, 2137.500000, -1083.385742 }, |
|
{ -3112.500000, 1137.500000, -791.968750 }, |
|
{ -2275.000000, 3187.500000, -767.968750 }, |
|
{ -1475.000000, 2962.500000, -847.968750 }, |
|
{ -3425.000000, 2137.500000, -671.968750 }, |
|
{ -3450.000000, 2912.500000, -903.968750 }, |
|
{ -1725.000000, 3737.500000, -1050.131104 }, |
|
{ -850.000000, 3237.500000, -1031.956299 }, |
|
{ -2650.000000, 2512.500000, -1085.018555 }, |
|
{ -2487.500000, 2037.500000, -1050.676147 }, |
|
{ -1600.000000, 1175.000000, -959.968750 }, |
|
{ -650.000000, 1937.500000, -743.482178 }, |
|
{ -650.000000, 1775.000000, -692.995728 }, |
|
{ -1012.500000, 1500.000000, -639.968750 }, |
|
{ -3700.000000, 1275.000000, -811.867065 }, |
|
{ -3112.500000, 1600.000000, -791.968750 }, |
|
{ -2950.000000, 1850.000000, -1053.853516 }, |
|
{ -1225.000000, 3475.000000, -1086.870605 }, |
|
{ -1150.000000, 3300.000000, -1070.466187 }, |
|
{ -925.000000, 3425.000000, -1050.419189 }, |
|
{ -650.000000, 3300.000000, -1043.805176 }, |
|
{ -625.000000, 2800.000000, -767.968750 }, |
|
{ -2775.000000, 1650.000000, -1023.968750 }, |
|
{ -3575.000000, 1100.000000, -808.125854 }, |
|
{ -1212.500000, 1425.000000, -959.968750 }, |
|
{ -1737.500000, 3000.000000, -783.968750 }, |
|
{ -1462.500000, 2437.500000, -895.968750 }, |
|
{ -862.500000, 2200.000000, -767.968750 }, |
|
{ -2962.500000, 3550.000000, -671.968750 }, |
|
{ -3462.500000, 2487.500000, -903.968750 }, |
|
{ -1012.500000, 3150.000000, -1048.620605 }, |
|
{ -562.500000, 3725.000000, -1087.434692 }, |
|
{ -2062.500000, 3250.000000, -984.070923 }, |
|
{ -2675.000000, 2112.500000, -1082.104248 }, |
|
{ -2487.500000, 2400.000000, -1051.597046 }, |
|
{ -2037.500000, 3137.500000, -838.662476 }, |
|
{ -3062.500000, 1262.500000, -1023.968750 }, |
|
{ -2887.500000, 2812.500000, -694.111816 }, |
|
{ -2987.500000, 3250.000000, -1086.727539 }, |
|
{ -2812.500000, 3762.500000, -1086.203857 }, |
|
{ -2350.000000, 3537.500000, -1082.763184 }, |
|
{ -2162.500000, 3837.500000, -967.968750 }, |
|
{ -1562.500000, 3312.500000, -1079.254028 }, |
|
{ -1375.000000, 3500.000000, -1085.550903 }, |
|
{ -887.500000, 3700.000000, -1059.968750 }, |
|
{ -2812.500000, 2287.500000, -1081.588135 }, |
|
{ -2687.500000, 2362.500000, -1081.903198 }, |
|
{ -2337.500000, 2412.500000, -1023.968750 }, |
|
{ -1950.000000, 1437.500000, -895.968750 }, |
|
{ -2850.000000, 1112.500000, -872.148926 }, |
|
{ -1350.000000, 1862.500000, -959.968750 }, |
|
{ -1600.000000, 2425.000000, -830.815613 }, |
|
{ -3487.500000, 1262.500000, -809.627197 }, |
|
{ -3475.000000, 1237.500000, -1023.968750 }, |
|
{ -2875.000000, 2787.500000, -1085.673584 }, |
|
{ -3012.500000, 2062.500000, -1073.808105 }, |
|
{ -2550.000000, 3962.500000, -1087.083984 }, |
|
{ -1512.500000, 3812.500000, -1079.644287 }, |
|
{ -1100.000000, 3437.500000, -1073.367554 }, |
|
{ -750.000000, 3562.500000, -1059.989502 }, |
|
{ -850.000000, 2987.500000, -767.968750 }, |
|
{ -575.000000, 2287.500000, -767.968750 }, |
|
{ -1175.000000, 2337.500000, -959.968750 }, |
|
{ -1850.000000, 3175.000000, -916.482300 }, |
|
{ -2675.000000, 1125.000000, -954.482300 }, |
|
{ -1562.500000, 1575.000000, -959.968750 }, |
|
{ -600.000000, 525.000000, -759.968750 }, |
|
{ -2962.500000, 2975.000000, -671.584595 }, |
|
{ -3687.500000, 2275.000000, -751.524414 }, |
|
{ -3437.500000, 2250.000000, -863.968750 }, |
|
{ -2750.000000, 1500.000000, -791.968750 }, |
|
{ -2862.500000, 3025.000000, -1088.080444 }, |
|
{ -2650.000000, 3400.000000, -1086.712158 }, |
|
{ -2037.500000, 3850.000000, -967.968750 }, |
|
{ -2050.000000, 3537.500000, -1039.457031 }, |
|
{ -1262.500000, 3625.000000, -1079.968750 }, |
|
{ -1100.000000, 3725.000000, -1079.968750 }, |
|
{ -1137.500000, 2975.000000, -1064.579102 }, |
|
{ -1100.000000, 2800.000000, -1035.468262 }, |
|
{ -1000.000000, 3300.000000, -1043.383545 }, |
|
{ -900.000000, 3550.000000, -1069.937378 }, |
|
{ -675.000000, 3437.500000, -1038.987061 }, |
|
{ -625.000000, 3162.500000, -1048.860962 }, |
|
{ -2825.000000, 1975.000000, -1071.794189 }, |
|
{ -2875.000000, 1250.000000, -1023.968750 }, |
|
{ -2625.000000, 1950.000000, -1080.477051 }, |
|
{ -2512.500000, 2600.000000, -1060.309570 }, |
|
{ -2675.000000, 1250.000000, -990.329102 }, |
|
{ -1025.000000, 1262.500000, -618.168762 }, |
|
{ -2850.000000, 3175.000000, -1091.269287 }, |
|
{ -2275.000000, 3862.500000, -993.140991 }, |
|
{ -1987.500000, 3650.000000, -1038.143188 }, |
|
{ -1937.500000, 3475.000000, -1009.303223 }, |
|
{ -1625.000000, 3925.000000, -1057.784912 }, |
|
{ -575.000000, 3562.500000, -1064.084229 }, |
|
{ -2450.000000, 3400.000000, -1092.235474 }, |
|
{ -1675.000000, 3537.500000, -1058.036133 }, |
|
{ -1187.500000, 2562.500000, -990.317749 }, |
|
{ -1612.500000, 2975.000000, -815.968750 }, |
|
{ -1175.000000, 4000.000000, -1059.968750 }, |
|
{ -2200.000000, 2425.000000, -1023.968750 }, |
|
{ -2162.500000, 3425.000000, -1036.134521 }, |
|
{ -1450.000000, 2187.500000, -767.968750 }, |
|
{ -1100.000000, 2187.500000, -767.968750 }, |
|
}; |
|
|
|
const float g_flPlayerEyeHeight = 70.0f; |
|
|
|
static valid_item_pos kValidPositions_Viaduct[] = |
|
{ |
|
{ -1056.508423, 120.524803, 307.972595f - g_flPlayerEyeHeight }, |
|
{ -1245.718750, -371.585114, 316.206665f - g_flPlayerEyeHeight }, |
|
{ -1755.105469, -602.121094, 211.415222f - g_flPlayerEyeHeight }, |
|
{ -1866.556030, -11.241785, 311.038757f - g_flPlayerEyeHeight }, |
|
{ -1801.210083, 567.631775, 221.211823f - g_flPlayerEyeHeight }, |
|
{ -2254.645996, -501.424133, 323.972595f - g_flPlayerEyeHeight }, |
|
{ -2210.340576, 376.084320, 323.972595f - g_flPlayerEyeHeight }, |
|
{ -1888.754272, 639.861633, 204.341263f - g_flPlayerEyeHeight }, |
|
{ -1903.123413, -641.635986, 203.944336f - g_flPlayerEyeHeight }, |
|
{ -1212.720703, 990.511353, 227.972595f - g_flPlayerEyeHeight }, |
|
{ -1225.367554, -966.919922, 227.972595f - g_flPlayerEyeHeight }, |
|
{ -2486.856934, -1201.215576, 194.879059f - g_flPlayerEyeHeight }, |
|
{ -2568.440674, 1470.992432, 195.961288f - g_flPlayerEyeHeight }, |
|
{ -1681.012573, -1190.597534, 131.972595f - g_flPlayerEyeHeight }, |
|
{ -1668.416504, 1226.122070, 131.972595f - g_flPlayerEyeHeight }, |
|
{ -2459.953125, 394.793518, 323.972595f - g_flPlayerEyeHeight }, |
|
{ -2495.843994, -505.581940, 323.972595f - g_flPlayerEyeHeight }, |
|
{ -1507.193359, -632.548096, 207.798416f - g_flPlayerEyeHeight }, |
|
{ -1515.489746, 637.124756, 207.442322f - g_flPlayerEyeHeight }, |
|
{ -1533.132202, 6.273134, 299.123474f - g_flPlayerEyeHeight }, |
|
{ -1533.132202, 6.273134, 299.123474f - g_flPlayerEyeHeight }, |
|
{ -1533.132202, 6.273134, 299.123474f - g_flPlayerEyeHeight }, |
|
{ -1533.132202, 6.273134, 299.123474f - g_flPlayerEyeHeight }, |
|
{ -1533.132202, 6.273134, 299.123474f - g_flPlayerEyeHeight }, |
|
{ -1533.132202, 6.273134, 299.123474f - g_flPlayerEyeHeight }, |
|
{ -1533.132202, 6.273134, 299.123474f - g_flPlayerEyeHeight }, |
|
{ -1767.763306, -31.788916, 304.332611f - g_flPlayerEyeHeight }, |
|
{ -1314.115601, 1.664654, 304.332611f - g_flPlayerEyeHeight }, |
|
}; |
|
|
|
static valid_item_pos kValidPositions_Lakeside[] = |
|
{ |
|
{ 440.514740, 19.020391, 52.031319f - g_flPlayerEyeHeight }, |
|
{ -439.044678, -0.653890, 52.031319f - g_flPlayerEyeHeight }, |
|
{ 14.226428, -860.007385, 116.031319f - g_flPlayerEyeHeight }, |
|
{ 536.307800, -35.320126, -110.660393f - g_flPlayerEyeHeight }, |
|
{ -522.902588, -15.580125, -107.159370f - g_flPlayerEyeHeight }, |
|
{ -13.246658, 556.848022, 84.031319f - g_flPlayerEyeHeight }, |
|
{ 199.859665, -560.373779, 52.031319f - g_flPlayerEyeHeight }, |
|
{ -206.504196, -524.416443, 52.031319f - g_flPlayerEyeHeight }, |
|
|
|
{ -572.280029, -854.871521, -102.842537f - g_flPlayerEyeHeight }, |
|
{ 570.159973, -833.295898, -104.718376f - g_flPlayerEyeHeight }, |
|
{ -10.444493, -1814.084106, 91.031319f - g_flPlayerEyeHeight }, |
|
{ -1117.456177, -1821.980591, 81.080040f - g_flPlayerEyeHeight }, |
|
{ 1122.193481, -1760.623291, 84.117996f - g_flPlayerEyeHeight }, |
|
{ 934.447083, -14.523724, -153.873962f - g_flPlayerEyeHeight }, |
|
{ -935.006165, 0.899750, -154.107819f - g_flPlayerEyeHeight }, |
|
{ -831.039368, 1028.812988, -132.968689f - g_flPlayerEyeHeight }, |
|
{ 838.370667, 1039.730347, -132.968689f - g_flPlayerEyeHeight }, |
|
{ 330.726898, -1061.698975, 91.031319f - g_flPlayerEyeHeight }, |
|
{ -347.198090, -1074.667480, 91.031319f - g_flPlayerEyeHeight }, |
|
{ -970.985229, -1151.937866, -129.290192f - g_flPlayerEyeHeight }, |
|
{ 964.682556, -1112.505127, -132.963379f - g_flPlayerEyeHeight }, |
|
{ -310.233612, -548.355957, -68.615242f - g_flPlayerEyeHeight }, |
|
{ 310.885254, -545.554932, -68.772285f - g_flPlayerEyeHeight }, |
|
}; |
|
|
|
static valid_item_pos kValidPositions_Hightower[] = |
|
{ |
|
{ 6126.312500, 7590.515137, 435.031311f - g_flPlayerEyeHeight }, |
|
{ 7961.887207, 7579.561523, -35.332085f - g_flPlayerEyeHeight }, |
|
{ 6192.0f, 7592.0f, 373.0f, }, |
|
{ 7634.951660, 7592.539063, 130.810715f - g_flPlayerEyeHeight }, |
|
{ 6472.569336, 7593.163086, -149.912628f - g_flPlayerEyeHeight }, // Cayle says to use this one three times |
|
{ 6472.569336, 7593.163086, -149.912628f - g_flPlayerEyeHeight }, |
|
{ 6472.569336, 7593.163086, -149.912628f - g_flPlayerEyeHeight }, |
|
{ 6333.593750, 7398.845703, 425.031311f - g_flPlayerEyeHeight }, |
|
{ 6338.365723, 7780.267090, 425.031311f - g_flPlayerEyeHeight }, |
|
{ 6111.854004, 7582.590820, 425.031311f - g_flPlayerEyeHeight }, |
|
{ 8269.034180, 8336.364258, -193.885345f - g_flPlayerEyeHeight }, |
|
{ 6152.998047, 6708.033203, -190.968689f - g_flPlayerEyeHeight }, |
|
{ 7947.068359, 7592.274902, -45.030327f - g_flPlayerEyeHeight }, |
|
{ 8690.697266, 7519.280273, -134.968689f - g_flPlayerEyeHeight }, |
|
{ 5184.807617, 7460.308594, 65.031311f - g_flPlayerEyeHeight }, |
|
{ 5176.026367, 7762.865234, 65.031311f - g_flPlayerEyeHeight }, |
|
{ 5665.124512, 7912.830078, 186.027237f - g_flPlayerEyeHeight }, |
|
{ 5629.083984, 7272.486816, 186.031311f - g_flPlayerEyeHeight }, |
|
{ 7569.272461, 7356.835938, 30.543331f - g_flPlayerEyeHeight }, |
|
{ 7620.356445, 7806.569824, 43.632362f - g_flPlayerEyeHeight }, |
|
{ 10225.334961, 7462.086914, -366.968689f - g_flPlayerEyeHeight }, |
|
{ 10208.725586, 7768.193848, -366.968689f - g_flPlayerEyeHeight }, |
|
}; |
|
|
|
struct halloween_map_info |
|
{ |
|
const char *m_pszMapName; |
|
valid_item_pos *m_pPositions; |
|
int m_pPositionCount; |
|
}; |
|
|
|
static halloween_map_info g_HalloweenMapInfo[] = |
|
{ |
|
{ "cp_manor_event", kValidPositions_MannManor, ARRAYSIZE( kValidPositions_MannManor ) }, |
|
{ "koth_viaduct_event", kValidPositions_Viaduct, ARRAYSIZE( kValidPositions_Viaduct ) }, |
|
{ "koth_lakeside_event", kValidPositions_Lakeside, ARRAYSIZE( kValidPositions_Lakeside ) }, |
|
{ "plr_hightower_event", kValidPositions_Hightower, ARRAYSIZE( kValidPositions_Hightower ) }, |
|
}; |
|
|
|
// |
|
void AddHalloweenGiftPositionsForMap( const char *pszMapName, CUtlVector<Vector> &vLocations ) |
|
{ |
|
for ( int i = 0; i < ARRAYSIZE( g_HalloweenMapInfo ); i++ ) |
|
{ |
|
if ( FStrEq( pszMapName, g_HalloweenMapInfo[i].m_pszMapName ) ) |
|
{ |
|
for ( int iPoint = 0; iPoint < g_HalloweenMapInfo[i].m_pPositionCount; iPoint++ ) |
|
{ |
|
vLocations.AddToTail( Vector( |
|
g_HalloweenMapInfo[ i ].m_pPositions[ iPoint ].x, |
|
g_HalloweenMapInfo[ i ].m_pPositions[ iPoint ].y, |
|
g_HalloweenMapInfo[ i ].m_pPositions[ iPoint ].z |
|
) ); |
|
} |
|
return; |
|
} |
|
} |
|
}
|
|
|