158 lines
4.3 KiB
Scheme
Executable File
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
|