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

158 lines
4.3 KiB
Scheme
Executable File

//////////////////////////////////////////////////////////////////////////////////////////
// //
// SCRIPT NAME : flyUnderBridges.sch //
// AUTHOR : Ben Rollinson/Adam Westwood //
// //
//////////////////////////////////////////////////////////////////////////////////////////
USING "rage_builtins.sch"
USING "globals.sch"
CONST_INT SP_LA_RIVER_01 0
CONST_INT SP_LA_RIVER_02 1
CONST_INT SP_LA_RIVER_03 2
CONST_INT SP_LA_RIVER_04 3
CONST_INT SP_LA_RIVER_05 4
CONST_INT SP_LA_RIVER_06 5
CONST_INT SP_LA_RIVER_07 6
CONST_INT SP_LA_RIVER_08 7
CONST_INT SP_LA_RIVER_09 8
CONST_INT SP_LA_RIVER_10 9
CONST_INT SP_LA_RIVER_11 10
CONST_INT SP_LA_RIVER_12 11
CONST_INT SP_LA_RIVER_13 12
CONST_INT SP_LA_RIVER_14 13
CONST_INT SP_LA_RIVER_15 14
CONST_INT SP_LA_RIVER_16 15
CONST_INT SP_HIGHWAY_CS3 16
CONST_INT SP_DOUBLEARCH_CS3 17
CONST_INT SP_RAILARCH_CS1 18
CONST_INT SP_RAILLOW_CS4 19
CONST_INT SP_ROADLOW_CS4 20
CONST_INT SP_RAILLOW_CS2 21
CONST_INT SP_RAILLOW_CS3 22
CONST_INT SP_MADISON_CS3 23
CONST_INT SP_ROADLOW_CS6 24
CONST_INT SP_RAILLOW_CH3 25
CONST_INT SP_SEAARCH_CH3 26
CONST_INT SP_RAILHIGH_CH3 27
CONST_INT SP_RAILFREE_CH3 28
CONST_INT SP_ROADSUSP_PO1 29
CONST_INT SP_RAILLOW_CH1 30
CONST_INT SP_RAILLOW_PO1 31
CONST_INT SP_ROADLOW_PO1 32
CONST_INT SP_KNIFE_SM01 33
CONST_INT SP_KNIFE_2 34
CONST_INT SP_KNIFE_3 35
CONST_INT SP_KNIFE_4 36
CONST_INT SP_DOMES_PO1 37
CONST_INT SP_RAILROAD_CS2 38
CONST_INT SP_HELI_UNDER 39
CONST_INT SP_HELI_OVER 40
CONST_INT SP_CANAL_TRACK 41
CONST_INT SP_SPAGH_LOW 42
CONST_INT SP_CHINOZ_BRIDGE 43
CONST_INT SP_SC1_ARCH_BRIDGE 44
CONST_INT SP_LOW_CAST_IRON 45
CONST_INT SP_CS_FREEWAY 46
CONST_INT SP_CH1_RIVER 47
CONST_INT SP_CH3_OVERPASS 48
CONST_INT SP_CH3_RAILBRIDGE 49
CONST_INT SP_KNIFE_5 50
CONST_INT SP_KNIFE_6 51
CONST_INT SP_KNIFE_7 52
CONST_INT SP_KNIFE_8 53
CONST_INT SP_KNIFE_9 54
CONST_INT SP_KNIFE_10 55
CONST_INT SP_KNIFE_11 56
CONST_INT SP_KNIFE_12 57
CONST_INT SP_KNIFE_13 58
CONST_INT SP_KNIFE_14 59
CONST_INT SP_KNIFE_15 60
CONST_INT SP_BRIDGE_47 61
CONST_INT SP_BRIDGE_48 62
CONST_INT SP_BRIDGE_49 63
CONST_INT SP_BRIDGE_50 64
CONST_INT SP_EXTRA_SUSP_1 65
CONST_INT SP_EXTRA_SUSP_2 66
CONST_INT SP_FREEWAY_1 67
CONST_INT SP_FREEWAY_2 68
CONST_INT SP_FREEWAY_3 69
CONST_INT SP_NUMBER_OF_BRIDGES 50
CONST_INT SP_NUMBER_OF_KNIVES 15
CONST_INT SP_NUMBER_OF_CHALLENGES 70 // Includes 2 extras for the suspension bridge
FUNC BOOL IS_INDEX_A_KNIFE_FLIGHT(INT iFlightIndex)
SWITCH iFlightIndex
CASE SP_KNIFE_SM01
CASE SP_KNIFE_2
CASE SP_KNIFE_3
CASE SP_KNIFE_4
CASE SP_KNIFE_5
CASE SP_KNIFE_6
CASE SP_KNIFE_7
CASE SP_KNIFE_8
CASE SP_KNIFE_9
CASE SP_KNIFE_10
CASE SP_KNIFE_11
CASE SP_KNIFE_12
CASE SP_KNIFE_13
CASE SP_KNIFE_14
CASE SP_KNIFE_15
RETURN TRUE
BREAK
ENDSWITCH
RETURN FALSE
ENDFUNC
FUNC INT GET_NUMBER_OF_COMPLETED_UNDER_BRIDGES()
INT completeCount, iTemp
REPEAT 32 iTemp
IF IS_BIT_SET(g_savedGlobals.sAmbient.iBridgesFlownUnderFlags, iTemp)
IF NOT IS_INDEX_A_KNIFE_FLIGHT(iTemp)
completeCount++
ENDIF
ENDIF
IF IS_BIT_SET(g_savedGlobals.sAmbient.iBridgesFlownUnderFlags2, iTemp)
IF NOT IS_INDEX_A_KNIFE_FLIGHT(iTemp+32)
completeCount++
ENDIF
ENDIF
IF IS_BIT_SET(g_savedGlobals.sAmbient.iBridgesFlownUnderFlags3, iTemp)
IF NOT IS_INDEX_A_KNIFE_FLIGHT(iTemp+64)
completeCount++
ENDIF
ENDIF
ENDREPEAT
RETURN completeCount
ENDFUNC
FUNC INT GET_NUMBER_OF_COMPLETED_KNIFE_FLIGHTS()
INT completeCount, iTemp
REPEAT 32 iTemp
IF IS_BIT_SET(g_savedGlobals.sAmbient.iBridgesFlownUnderFlags, iTemp)
IF IS_INDEX_A_KNIFE_FLIGHT(iTemp)
completeCount++
ENDIF
ENDIF
IF IS_BIT_SET(g_savedGlobals.sAmbient.iBridgesFlownUnderFlags2, iTemp)
IF IS_INDEX_A_KNIFE_FLIGHT(iTemp+32)
completeCount++
ENDIF
ENDIF
IF IS_BIT_SET(g_savedGlobals.sAmbient.iBridgesFlownUnderFlags3, iTemp)
IF IS_INDEX_A_KNIFE_FLIGHT(iTemp+64)
completeCount++
ENDIF
ENDIF
ENDREPEAT
RETURN completeCount
ENDFUNC