257 lines
6.9 KiB
XML
Executable File
257 lines
6.9 KiB
XML
Executable File
|
|
/// PURPOSE: Returns coords of spaceship scrap pickup
|
|
FUNC VECTOR GET_UFOSCRAP_PICKUP_COORDS(INT iIndex, BOOL bForChop=FALSE)
|
|
|
|
// If any of these have a bForChop vector set, Chop will lead the player to the bForChop vector then orientate himself towards the actual pickup vector.
|
|
// Small alterations are fine but if you move a pickup more than 1-2 metres away from its current position you must update the bForChop vector too or else we'll have Chop leading the player to nothing.
|
|
// The bForChop vector must be on a section of navmesh that is connected to the main navmesh. See Kev E if unsure.
|
|
SWITCH iIndex
|
|
|
|
CASE 0 RETURN << -1219.0, -3495.9, 12.9448 >> BREAK
|
|
CASE 1
|
|
IF bForChop = TRUE
|
|
RETURN << 606.89252, -3250.18750, 5.06951 >>
|
|
ELSE
|
|
RETURN << 634.5865, -3232.7903, -16.5774 >>
|
|
ENDIF
|
|
BREAK
|
|
CASE 2 RETURN <<1590.5997, -2810.1741, 3.4494>> BREAK
|
|
CASE 3
|
|
IF bForChop = TRUE
|
|
RETURN << 327.99, -2757.61, 4.99 >>
|
|
ELSE
|
|
RETURN << 338.4039, -2762.1057, 42.6543 >>
|
|
ENDIF
|
|
BREAK
|
|
CASE 4
|
|
IF bForChop = TRUE
|
|
RETURN << 1134.42163, -2607.02368, 14.77071 >>
|
|
ELSE
|
|
RETURN << 1133.6882, -2605.0728, 14.9729 >>
|
|
ENDIF
|
|
BREAK
|
|
CASE 5
|
|
IF bForChop = TRUE
|
|
RETURN << 368.93164, -2118.53271, 15.40341 >>
|
|
ELSE
|
|
RETURN << 369.9450, -2116.7556, 16.1688 >>
|
|
ENDIF
|
|
BREAK
|
|
CASE 6
|
|
IF bForChop = TRUE
|
|
RETURN << 1741.82, -1623.85, 111.41 >>
|
|
ELSE
|
|
RETURN << 1742.0242, -1618.7767, 111.8313 >>
|
|
ENDIF
|
|
BREAK
|
|
CASE 7 RETURN << 287.7294, -1444.4000, 45.5095 >> BREAK
|
|
CASE 8 RETURN << 17.5926, -1213.2073, 28.3678 >> BREAK
|
|
CASE 9
|
|
IF bForChop = TRUE
|
|
RETURN << -910.01715, -1147.43994, 1.06785 >>
|
|
ELSE
|
|
RETURN << -900.3597, -1165.5511, 31.8047 >>
|
|
ENDIF
|
|
BREAK
|
|
CASE 10
|
|
IF bForChop = TRUE
|
|
RETURN << 1237.72778, -1099.14966, 37.52579 >>
|
|
ELSE
|
|
RETURN << 1231.9734, -1102.3076, 34.4289 >>
|
|
ENDIF
|
|
BREAK
|
|
CASE 11
|
|
IF bForChop = TRUE
|
|
RETURN <<87.69075, 810.37360, 210.12582>>
|
|
ELSE
|
|
RETURN <<81.2213, 814.0283, 213.2917>>
|
|
ENDIF
|
|
BREAK
|
|
CASE 12
|
|
IF bForChop = TRUE
|
|
RETURN << -1900.9506, 1389.5819, 218.1509 >>
|
|
ELSE
|
|
RETURN << -1907.5149, 1388.6899, 217.9728 >>
|
|
ENDIF
|
|
BREAK
|
|
CASE 13
|
|
IF bForChop = TRUE
|
|
RETURN << 467.36896, -730.75525, 26.36373 >>
|
|
ELSE
|
|
RETURN <<469.8529, -730.8, 26.3985>>
|
|
ENDIF
|
|
BREAK
|
|
CASE 14 RETURN << 202.1081, -569.7198, 128.18 >> BREAK
|
|
CASE 15
|
|
IF bForChop = TRUE
|
|
RETURN << 163.0531, -566.3394, 21.0290 >>
|
|
ELSE
|
|
RETURN << 159.39, -563.82, 21.0 >>
|
|
ENDIF
|
|
BREAK
|
|
CASE 16
|
|
IF bForChop = TRUE
|
|
RETURN << -1183.15210, -518.53857, 38.53018 >>
|
|
ELSE
|
|
RETURN << -1182.5385, -525.5859, 39.9114 >>
|
|
ENDIF
|
|
BREAK
|
|
CASE 17 RETURN <<-228.0476, -236.4184, 49.1361>> BREAK
|
|
CASE 18 RETURN << -407.7026, -151.7918, 63.5505 >> BREAK
|
|
CASE 19
|
|
IF bForChop = TRUE
|
|
RETURN << -1169.39746, -56.76701, 44.45705 >>
|
|
ELSE
|
|
RETURN << -1175.4877, -65.4649, 44.6563 >>
|
|
ENDIF
|
|
BREAK
|
|
CASE 20
|
|
IF bForChop = TRUE
|
|
RETURN << 1679.05640, 39.44059, 160.77364 >>
|
|
ELSE
|
|
RETURN << 1684.6639, 40.7142, 153.4074 >>
|
|
ENDIF
|
|
BREAK
|
|
CASE 21
|
|
IF bForChop = TRUE
|
|
RETURN << 1964.25, 553.68, 160.72 >>
|
|
ELSE
|
|
RETURN << 1965.58, 555.99, 160.79 >>
|
|
ENDIF
|
|
BREAK
|
|
CASE 22
|
|
IF bForChop = TRUE
|
|
RETURN <<24.21706, 637.12122, 206.38968>>
|
|
ELSE
|
|
RETURN <<22.4492, 638.8155, 189.6085>>
|
|
ENDIF
|
|
BREAK
|
|
CASE 23 RETURN << 2901.2041, 796.1192, 3.3556 >> BREAK
|
|
CASE 24
|
|
IF bForChop = TRUE
|
|
RETURN <<-1531.89502, 870.32031, 180.67746>>
|
|
ELSE
|
|
RETURN <<-1529.7219, 871.4257, 180.6421>>
|
|
ENDIF
|
|
BREAK
|
|
CASE 25 RETURN << -404.3191, 1100.8890, 331.5350 >> BREAK
|
|
CASE 26 RETURN << -2809.3538, 1449.6429, 99.9280 >> BREAK
|
|
CASE 27
|
|
IF bForChop = TRUE
|
|
RETURN <<3144.0452, 2184.4133, -5.2961>>
|
|
ELSE
|
|
RETURN <<3144.0452, 2184.4133, -5.2961>>
|
|
ENDIF
|
|
BREAK
|
|
CASE 28 RETURN <<815.7574, 1850.8790, 120.1796>> BREAK
|
|
CASE 29 RETURN << -1944.24, 1941.07, 162.8 >> BREAK
|
|
|
|
CASE 30
|
|
IF bForChop = TRUE
|
|
RETURN <<-1452.23, 2127.41, 42.84>>
|
|
ELSE
|
|
RETURN <<-1436.87, 2130.22, 26.78>>
|
|
ENDIF
|
|
BREAK
|
|
|
|
CASE 31 RETURN << 1367.4128, 2180.6316, 96.6914 >> BREAK
|
|
CASE 32
|
|
IF bForChop = TRUE
|
|
RETURN << 170.16521, 2217.63696, 89.30811 >>
|
|
ELSE
|
|
RETURN << 172.1426, 2220.1313, 89.7842 >>
|
|
ENDIF
|
|
BREAK
|
|
CASE 33 RETURN << 889.3209, 2870.0522, 55.2834 >> BREAK
|
|
CASE 34
|
|
IF bForChop = TRUE
|
|
RETURN << 1980.20, 2914.79, 45.48 >>
|
|
ELSE
|
|
RETURN << 1963.55, 2922.81, 57.76 >>
|
|
ENDIF
|
|
BREAK
|
|
CASE 35 RETURN << -390.3840, 2963.2605, 18.2713 >> BREAK
|
|
CASE 36 RETURN << 71.6642, 3279.3682, 30.3918 >> BREAK
|
|
CASE 37 RETURN << 1924.1864, 3471.2563, 50.3238 >> BREAK
|
|
CASE 38 RETURN <<-583.1569, 3580.3752, 266.2471>> BREAK
|
|
CASE 39
|
|
IF bForChop = TRUE
|
|
RETURN << 2514.30151, 3789.51929, 52.07700 >>
|
|
ELSE
|
|
RETURN << 2516.98, 3789.35, 53.79 >>
|
|
ENDIF
|
|
BREAK
|
|
CASE 40
|
|
IF bForChop = TRUE
|
|
RETURN << 1517.61292, 3803.92603, 30.95605 >>
|
|
ELSE
|
|
RETURN <<1486.0475, 3857.2168, 22.2905>>
|
|
ENDIF
|
|
BREAK
|
|
CASE 41
|
|
IF bForChop = TRUE
|
|
RETURN << -530.27386, 4474.35840, 59.45993 >>
|
|
ELSE
|
|
RETURN << -528.8246, 4440.6436, 31.7384 >>
|
|
ENDIF
|
|
BREAK
|
|
CASE 42
|
|
IF bForChop = TRUE
|
|
RETURN << 3815.05493, 4447.34277, 2.06631 >>
|
|
ELSE
|
|
RETURN << 3820.8132, 4441.6831, 1.8007 >>
|
|
ENDIF
|
|
BREAK
|
|
CASE 43
|
|
IF bForChop = TRUE
|
|
RETURN << -1946.95, 4584.36, 56.06 >>
|
|
ELSE
|
|
RETURN << -1943.0546, 4585.1943, 46.6362 >>
|
|
ENDIF
|
|
BREAK
|
|
CASE 44 RETURN << 2437.5452, 4779.9595, 33.5101 >> BREAK
|
|
CASE 45 RETURN << -1441.4948, 5414.8882, 23.3000 >> BREAK
|
|
CASE 46 RETURN << 2196.2507, 5599.0342, 52.7129 >> BREAK
|
|
CASE 47
|
|
IF bForChop = TRUE
|
|
RETURN <<-503.95, 5673.55, 51.24>>
|
|
ELSE
|
|
RETURN <<-503.2193, 5665.6104, 48.8487>>
|
|
ENDIF
|
|
BREAK
|
|
CASE 48
|
|
IF bForChop = TRUE
|
|
RETURN << -378.41922, 6080.78223, 30.44296 >>
|
|
ELSE
|
|
RETURN << -381.2910, 6086.9492, 38.6147 >>
|
|
ENDIF
|
|
BREAK
|
|
CASE 49 RETURN << 440.9546, 6459.6416, 27.7432 >> BREAK
|
|
ENDSWITCH
|
|
|
|
SCRIPT_ASSERT("Invalid index passed to GET_UFOSCRAP_PICKUP_COORDS")
|
|
RETURN <<0,0,0>>
|
|
ENDFUNC
|
|
|
|
/// PURPOSE:
|
|
/// Returns true if Chop can reach the scrap, else false
|
|
/// PARAMS:
|
|
/// index - the index of the pickup
|
|
FUNC BOOL CAN_CHOP_REACH_UFOSCRAP(INT index)
|
|
SWITCH (index)
|
|
CASE 2 FALLTHRU // On island
|
|
CASE 14 FALLTHRU // On roof
|
|
CASE 18 FALLTHRU // On roof
|
|
CASE 25 FALLTHRU // On observatory roof beyond locked gates
|
|
RETURN FALSE
|
|
BREAK
|
|
CASE 16
|
|
IF IS_BIT_SET(g_iRestrictedAreaBitSet, 7) //AC_MOVIE_STUDIO
|
|
RETURN FALSE
|
|
ENDIF
|
|
BREAK
|
|
ENDSWITCH
|
|
|
|
RETURN TRUE
|
|
ENDFUNC
|