Files
gtav-src/script/dev_ng/singleplayer/include/private/pickups_spaceship.sch
T
2025-09-29 00:52:08 +02:00

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