USING "globals.sch" // get the purchase coords of a property FUNC VECTOR GET_PROPERTY_PURCHASE_COORDS(PROPERTY_ENUM thisProperty) SWITCH thisProperty CASE PROPERTY_ARMS_TRAFFICKING RETURN <<2147.31665, 4795.20752, 40.08961>> BREAK CASE PROPERTY_CAR_SCRAP_YARD RETURN <<1524.32886, -2108.26904, 75.72480>> BREAK CASE PROPERTY_WEED_SHOP RETURN <<-1172.19495, -1577.42700, 3.38152>> BREAK CASE PROPERTY_TAXI_LOT RETURN <<898.37183, -177.07635, 72.68348>> BREAK CASE PROPERTY_CAR_MOD_SHOP RETURN <<1191.30212, 2672.06396, 36.73154>> BREAK CASE PROPERTY_SONAR_COLLECTIONS RETURN <<-1584.33301, 5193.48730, 2.95912>> BREAK CASE PROPERTY_TOWING_IMPOUND RETURN <<408.34286, -1623.83569, 28.29278>> BREAK CASE PROPERTY_GOLF_CLUB RETURN <<-1339.48865, -21.19435, 50.34566>> BREAK CASE PROPERTY_CINEMA_VINEWOOD RETURN <<336.20697, 172.42506, 102.20552>> BREAK CASE PROPERTY_CINEMA_DOWNTOWN RETURN <<394.54953, -703.37946, 28.27281>> BREAK CASE PROPERTY_CINEMA_MORNINGWOOD RETURN <<-1413.18445, -206.05553, 46.29474>> BREAK CASE PROPERTY_BAR_TEQUILALA RETURN <<-560.38086, 274.54758, 82.02014>> BREAK CASE PROPERTY_BAR_PITCHERS RETURN <<221.08446, 340.78488, 104.58835>> BREAK CASE PROPERTY_BAR_HEN_HOUSE RETURN <<-296.71542, 6259.73242, 30.49339>> BREAK CASE PROPERTY_BAR_HOOKIES RETURN <<-2201.40161, 4291.00000, 47.32429>> BREAK ENDSWITCH RETURN <<10,10,10>> ENDFUNC // get the purchase heading of a property FUNC FLOAT GET_PROPERTY_PURCHASE_HEADING(PROPERTY_ENUM thisProperty) SWITCH thisProperty CASE PROPERTY_ARMS_TRAFFICKING RETURN -156.6 BREAK CASE PROPERTY_CAR_SCRAP_YARD RETURN 93.5 BREAK CASE PROPERTY_WEED_SHOP RETURN -56.3 BREAK CASE PROPERTY_TAXI_LOT RETURN 60.4 BREAK CASE PROPERTY_CAR_MOD_SHOP RETURN 124.2 BREAK CASE PROPERTY_SONAR_COLLECTIONS RETURN 113.5 BREAK CASE PROPERTY_TOWING_IMPOUND RETURN 49.4 BREAK CASE PROPERTY_GOLF_CLUB RETURN 32.2 BREAK CASE PROPERTY_CINEMA_VINEWOOD RETURN -20.8 BREAK CASE PROPERTY_CINEMA_DOWNTOWN RETURN 91.7 BREAK CASE PROPERTY_CINEMA_MORNINGWOOD RETURN 123.5 BREAK CASE PROPERTY_BAR_TEQUILALA RETURN -4.6 BREAK CASE PROPERTY_BAR_PITCHERS RETURN 159.6 BREAK CASE PROPERTY_BAR_HEN_HOUSE RETURN 45.6 BREAK CASE PROPERTY_BAR_HOOKIES RETURN -94.0 BREAK ENDSWITCH RETURN 0.0 ENDFUNC FUNC BOOL IS_COORD_LEFT_OF_PROPERTY(PROPERTY_ENUM property, VECTOR vCoord) SWITCH property // CINEMA'S CASE PROPERTY_CINEMA_VINEWOOD IF DOT_PRODUCT( NORMALISE_VECTOR(vCoord - <<335.5574, 174.5800, 0>>), NORMALISE_VECTOR(<<334.8261, 174.8707, 0>> - <<335.5574, 174.5800, 0>>)) < 0.0 RETURN TRUE ELSE RETURN FALSE ENDIF BREAK CASE PROPERTY_CINEMA_DOWNTOWN IF DOT_PRODUCT( NORMALISE_VECTOR(vCoord - <<393.0992, -711.0230, 0>>), NORMALISE_VECTOR(<<393.1879, -715.4372, 0>> - <<393.0992, -711.0230, 0>>)) < 0.0 RETURN TRUE ELSE RETURN FALSE ENDIF BREAK CASE PROPERTY_CINEMA_MORNINGWOOD IF DOT_PRODUCT( NORMALISE_VECTOR(vCoord - <<-1423.2535, -215.2002, 0.0>>), NORMALISE_VECTOR(<<-1420.7098, -215.1443, 0.0>> - <<-1423.2535, -215.2002, 0.0>>)) < 0.0 RETURN TRUE ELSE RETURN FALSE ENDIF BREAK // BARS CASE PROPERTY_BAR_TEQUILALA IF DOT_PRODUCT( NORMALISE_VECTOR(vCoord - <<-564.5655, 274.9096, 0>>), NORMALISE_VECTOR(<<-567.1105, 275.0867, 0.0>> - <<-564.5655, 274.9096, 0>>)) < 0.0 RETURN TRUE ELSE RETURN FALSE ENDIF BREAK CASE PROPERTY_BAR_PITCHERS IF DOT_PRODUCT( NORMALISE_VECTOR(vCoord - <<225.5057, 338.8084, 0.0>>), NORMALISE_VECTOR(<<226.8374, 338.4193, 0.0>> - <<225.5057, 338.8084, 0.0>>)) < 0.0 RETURN TRUE ELSE RETURN FALSE ENDIF BREAK CASE PROPERTY_BAR_HEN_HOUSE IF DOT_PRODUCT( NORMALISE_VECTOR(vCoord - <<-299.9329, 6256.4995, 0.0>>), NORMALISE_VECTOR(<<-301.1977, 6255.1787, 0.0>>-<<-299.9329, 6256.4995, 0.0>>)) < 0.0 RETURN TRUE ELSE RETURN FALSE ENDIF BREAK CASE PROPERTY_BAR_HOOKIES IF DOT_PRODUCT( NORMALISE_VECTOR(vCoord - <<-2200.2039, 4287.9512, 0.0>>), NORMALISE_VECTOR(<<-2199.2598, 4289.7388, 0.0>>-<<-2200.2039, 4287.9512, 0.0>>)) < 0.0 RETURN TRUE ELSE RETURN FALSE ENDIF BREAK DEFAULT SCRIPT_ASSERT("IS_COORD_LEFT_OF_PROPERTY() NOT SETUP FOR THIS PROPERTY!") BREAK ENDSWITCH RETURN FALSE ENDFUNC // get the launch coord for delivery event FUNC VECTOR GET_DELIVERY_EVENT_INIT_COORDS(PROPERTY_ENUM thisProperty, DELIVERY_MISSION_VARIATION_ENUM thisDelivery) SWITCH thisProperty CASE PROPERTY_WEED_SHOP SWITCH thisDelivery CASE DELIVERY_MISSION_VARIATION_TIMED_1 RETURN << -128.18756, 1934.49512, 194.90749 >> BREAK CASE DELIVERY_MISSION_VARIATION_TIMED_2 RETURN << -179.8744, 586.4468, 196.6278 >> BREAK CASE DELIVERY_MISSION_VARIATION_TIMED_3 RETURN << 1390.0889, -605.9230, 73.3378 >> BREAK CASE DELIVERY_MISSION_VARIATION_LOSE_COPS RETURN << -3170.0483, 1098.8090, 19.7817 >> BREAK CASE DELIVERY_MISSION_VARIATION_LOSE_COPS_2 RETURN << 1581.2198, 2194.6289, 78.1062 >> BREAK CASE DELIVERY_MISSION_VARIATION_RECOVER_VAN RETURN << 1475.8333, -113.5801, 141.7940 >> BREAK CASE DELIVERY_MISSION_VARIATION_RECOVER_VAN_2 RETURN << 1603.0708, -1793.9147, 89.0179 >> BREAK ENDSWITCH BREAK CASE PROPERTY_BAR_TEQUILALA CASE PROPERTY_BAR_PITCHERS CASE PROPERTY_BAR_HEN_HOUSE CASE PROPERTY_BAR_HOOKIES SWITCH thisDelivery CASE DELIVERY_MISSION_VARIATION_BREAKABLE_CARGO_COUNTRY RETURN <<642.2169, 2774.8921, 40.9850>> BREAK CASE DELIVERY_MISSION_VARIATION_BREAKABLE_CARGO_VINYARD RETURN <<-1916.1224, 2060.3132, 139.7363>> BREAK CASE DELIVERY_MISSION_VARIATION_BREAKABLE_CARGO_LIQUOR_MARKET RETURN <<824.8992, -1064.1921, 26.9851>> BREAK CASE DELIVERY_MISSION_VARIATION_BREAKABLE_CARGO_LIQUOR_MARKET_2 RETURN <<-669.6013, -1198.6638, 9.6125>> BREAK CASE DELIVERY_MISSION_VARIATION_BREAKABLE_CARGO_LIQUOR_MARKET_3 RETURN <<-1465.5795, -390.7494, 37.5168>> BREAK CASE DELIVERY_MISSION_VARIATION_BREAKABLE_CARGO_PISSWASSER_1 RETURN <<797.7521, -1793.0078, 28.3164>> BREAK CASE DELIVERY_MISSION_VARIATION_BREAKABLE_CARGO_PISSWASSER_2 RETURN <<806.3190, -2017.4514, 28.2215>> BREAK ENDSWITCH BREAK ENDSWITCH RETURN GET_PROPERTY_PURCHASE_COORDS(thisProperty) ENDFUNC // get the launch heading for management event FUNC FLOAT GET_DELIVERY_EVENT_INIT_HEADING(PROPERTY_ENUM thisProperty, DELIVERY_MISSION_VARIATION_ENUM thisDelivery) SWITCH thisProperty CASE PROPERTY_WEED_SHOP SWITCH thisDelivery CASE DELIVERY_MISSION_VARIATION_TIMED_1 RETURN 0.5801 BREAK CASE DELIVERY_MISSION_VARIATION_TIMED_2 RETURN 177.9306 BREAK CASE DELIVERY_MISSION_VARIATION_TIMED_3 RETURN 49.6978 BREAK CASE DELIVERY_MISSION_VARIATION_LOSE_COPS RETURN 336.9449 BREAK CASE DELIVERY_MISSION_VARIATION_LOSE_COPS_2 RETURN 80.1639 BREAK CASE DELIVERY_MISSION_VARIATION_RECOVER_VAN RETURN 287.9830 BREAK CASE DELIVERY_MISSION_VARIATION_RECOVER_VAN_2 RETURN 46.7895 BREAK ENDSWITCH BREAK CASE PROPERTY_BAR_TEQUILALA CASE PROPERTY_BAR_PITCHERS CASE PROPERTY_BAR_HEN_HOUSE CASE PROPERTY_BAR_HOOKIES SWITCH thisDelivery CASE DELIVERY_MISSION_VARIATION_BREAKABLE_CARGO_COUNTRY RETURN 273.1085 BREAK CASE DELIVERY_MISSION_VARIATION_BREAKABLE_CARGO_VINYARD RETURN 256.7899 BREAK CASE DELIVERY_MISSION_VARIATION_BREAKABLE_CARGO_LIQUOR_MARKET RETURN 180.9647 BREAK CASE DELIVERY_MISSION_VARIATION_BREAKABLE_CARGO_LIQUOR_MARKET_2 RETURN 126.4385 BREAK CASE DELIVERY_MISSION_VARIATION_BREAKABLE_CARGO_LIQUOR_MARKET_3 RETURN 123.4767 BREAK CASE DELIVERY_MISSION_VARIATION_BREAKABLE_CARGO_PISSWASSER_1 RETURN 226.2190 BREAK CASE DELIVERY_MISSION_VARIATION_BREAKABLE_CARGO_PISSWASSER_2 RETURN 82.6097 BREAK ENDSWITCH BREAK ENDSWITCH RETURN 0.0 ENDFUNC // get the launch coord for taxi event FUNC VECTOR GET_TAXI_EVENT_INIT_COORDS(PROPERTY_ENUM thisProperty, TAXI_MISSION_VARIATION_ENUM thisTaxi) SWITCH thisProperty CASE PROPERTY_TAXI_LOT SWITCH thisTaxi CASE TAXI_MISSION_VARIATION_CLOWN_CAR RETURN <<-1284.36658, 295.74365, 63.83044>> BREAK CASE TAXI_MISSION_VARIATION_CUT_YOU_IN RETURN << -1042.9464, -2689.5498, 12.7572 >> BREAK CASE TAXI_MISSION_VARIATION_DEADLINE RETURN <<1971.2462, 3741.5171, 31.3268>> BREAK CASE TAXI_MISSION_VARIATION_FOLLOW_CAR RETURN << 1358.8215, -1547.3961, 53.7793 >> BREAK CASE TAXI_MISSION_VARIATION_GOT_YOU_NOW RETURN << -1612.2349, 189.1934, 58.9435 >> BREAK CASE TAXI_MISSION_VARIATION_GOT_YOUR_BACK RETURN << 11.8607, -1123.4800, 27.6801 >> BREAK CASE TAXI_MISSION_VARIATION_NEEDS_EXCITEMENT RETURN << -496.0739, -336.6628, 33.5017 >> BREAK CASE TAXI_MISSION_VARIATION_TAKE_IT_EASY RETURN << 58.8213, 293.8480, 109.6124 >> BREAK CASE TAXI_MISSION_VARIATION_TAKE_TO_BEST RETURN << -412.0875, 1171.3588, 324.8176 >> BREAK ENDSWITCH BREAK ENDSWITCH RETURN GET_PROPERTY_PURCHASE_COORDS(thisProperty) ENDFUNC // convert a random int to the actual delivery variation FUNC DELIVERY_MISSION_VARIATION_ENUM CONVERT_INT_TO_DELIVERY_VARIATION(PROPERTY_ENUM thisProperty, INT iVariation) SWITCH thisProperty CASE PROPERTY_WEED_SHOP SWITCH iVariation CASE 0 RETURN DELIVERY_MISSION_VARIATION_TIMED_1 BREAK CASE 1 RETURN DELIVERY_MISSION_VARIATION_TIMED_2 BREAK CASE 2 RETURN DELIVERY_MISSION_VARIATION_TIMED_3 BREAK CASE 3 RETURN DELIVERY_MISSION_VARIATION_LOSE_COPS BREAK CASE 4 RETURN DELIVERY_MISSION_VARIATION_LOSE_COPS_2 BREAK CASE 5 RETURN DELIVERY_MISSION_VARIATION_RECOVER_VAN BREAK CASE 6 RETURN DELIVERY_MISSION_VARIATION_RECOVER_VAN_2 BREAK ENDSWITCH BREAK // delivery CASE PROPERTY_BAR_TEQUILALA CASE PROPERTY_BAR_PITCHERS SWITCH iVariation CASE 0 RETURN DELIVERY_MISSION_VARIATION_BREAKABLE_CARGO_LIQUOR_MARKET BREAK CASE 1 RETURN DELIVERY_MISSION_VARIATION_BREAKABLE_CARGO_LIQUOR_MARKET_2 BREAK CASE 2 RETURN DELIVERY_MISSION_VARIATION_BREAKABLE_CARGO_LIQUOR_MARKET_3 BREAK CASE 3 RETURN DELIVERY_MISSION_VARIATION_BREAKABLE_CARGO_PISSWASSER_1 BREAK CASE 4 RETURN DELIVERY_MISSION_VARIATION_BREAKABLE_CARGO_PISSWASSER_2 BREAK ENDSWITCH BREAK CASE PROPERTY_BAR_HEN_HOUSE CASE PROPERTY_BAR_HOOKIES SWITCH iVariation CASE 0 RETURN DELIVERY_MISSION_VARIATION_BREAKABLE_CARGO_VINYARD BREAK CASE 1 RETURN DELIVERY_MISSION_VARIATION_BREAKABLE_CARGO_COUNTRY BREAK ENDSWITCH BREAK ENDSWITCH RETURN DELIVERY_MISSION_VARIATION_TIMED_1 ENDFUNC // convert a random int to the actual defend variation FUNC DEFEND_MISSION_VARIATION_ENUM CONVERT_INT_TO_DEFEND_VARIATION(PROPERTY_ENUM thisProperty, INT iVariation) SWITCH thisProperty CASE PROPERTY_CAR_SCRAP_YARD SWITCH iVariation CASE 0 RETURN DEFEND_MISSION_VARIATION_1 BREAK CASE 1 RETURN DEFEND_MISSION_VARIATION_2 BREAK ENDSWITCH BREAK ENDSWITCH RETURN DEFEND_MISSION_VARIATION_1 ENDFUNC // convert a random int to the actual taxi variation FUNC TAXI_MISSION_VARIATION_ENUM CONVERT_INT_TO_TAXI_VARIATION(PROPERTY_ENUM thisProperty, INT iVariation) thisProperty = thisProperty RETURN INT_TO_ENUM(TAXI_MISSION_VARIATION_ENUM, iVariation) ENDFUNC // convert a random int to the actual stolen variation FUNC RECOVER_STOLEN_MISSION_VARIATION_ENUM CONVERT_INT_TO_RECOVER_STOLEN_VARIATION(PROPERTY_ENUM thisProperty, INT iVariation) SWITCH thisProperty CASE PROPERTY_CINEMA_DOWNTOWN CASE PROPERTY_CINEMA_VINEWOOD CASE PROPERTY_CINEMA_MORNINGWOOD RETURN RECOVER_STOLEN_MISSION_VARIATION_TAKINGS BREAK CASE PROPERTY_BAR_TEQUILALA CASE PROPERTY_BAR_PITCHERS CASE PROPERTY_BAR_HEN_HOUSE CASE PROPERTY_BAR_HOOKIES SWITCH iVariation CASE 0 RETURN RECOVER_STOLEN_MISSION_VARIATION_TAKINGS BREAK CASE 1 RETURN RECOVER_STOLEN_MISSION_VARIATION_PAP BREAK ENDSWITCH BREAK ENDSWITCH RETURN INT_TO_ENUM(RECOVER_STOLEN_MISSION_VARIATION_ENUM, iVariation) ENDFUNC // convert a random int to the actual gang attack variation FUNC GANG_ATTACK_MISSION_VARIATION_ENUM CONVERT_INT_TO_GANG_ATTACK_VARIATION(PROPERTY_ENUM thisProperty, INT iVariation) thisProperty = thisProperty SWITCH iVariation CASE 0 RETURN GANG_ATTACK_MISSION_VARIATION_STAYS_AND_FIGHTS BREAK CASE 1 RETURN GANG_ATTACK_MISSION_VARIATION_FLEES_ON_SIGHT BREAK ENDSWITCH RETURN GANG_ATTACK_MISSION_VARIATION_STAYS_AND_FIGHTS ENDFUNC // convert a random int to the actual hose down protestors variation FUNC HOSE_DOWN_PROTESTORS_MISSION_VARIATION_ENUM CONVERT_INT_TO_HOSE_DOWN_PROTESTORS_VARIATION(PROPERTY_ENUM thisProperty, INT iVariation) thisProperty = thisProperty RETURN INT_TO_ENUM(HOSE_DOWN_PROTESTORS_MISSION_VARIATION_ENUM, iVariation) ENDFUNC // convert a random int to the actual plane promotion variation FUNC PLANE_PROMOTION_MISSION_VARIATION_ENUM CONVERT_INT_TO_PLANE_PROMOTION_VARIATION(PROPERTY_ENUM thisProperty, INT iVariation) thisProperty = thisProperty RETURN INT_TO_ENUM(PLANE_PROMOTION_MISSION_VARIATION_ENUM, iVariation) ENDFUNC // get notification range for management event FUNC VECTOR GET_NOTIFY_RANGE_FOR_MANAGEMENT_EVENT(PROPERTY_ENUM thisProperty, PROPERTY_MANAGEMENT_MISSION_ENUM thisMission, INT iVariation) iVariation = iVariation DELIVERY_MISSION_VARIATION_ENUM thisDelivery SWITCH thisProperty CASE PROPERTY_WEED_SHOP SWITCH thisMission CASE PROPERTY_MANAGEMENT_MISSION_DELIVERY thisDelivery = CONVERT_INT_TO_DELIVERY_VARIATION(thisProperty, iVariation) IF thisDelivery = DELIVERY_MISSION_VARIATION_LOSE_COPS RETURN <<2000, 2000, 2000>> ELSE RETURN <<1250, 1250, 1250>> ENDIF BREAK ENDSWITCH BREAK CASE PROPERTY_TAXI_LOT SWITCH thisMission CASE PROPERTY_MANAGEMENT_MISSION_TAXI //RETURN <<670,670,670>> BREAK ENDSWITCH BREAK CASE PROPERTY_CINEMA_DOWNTOWN CASE PROPERTY_CINEMA_VINEWOOD CASE PROPERTY_CINEMA_MORNINGWOOD SWITCH thisMission CASE PROPERTY_MANAGEMENT_MISSION_PLANE_PROMOTION RETURN <<2000, 2000, 2000>> BREAK ENDSWITCH BREAK CASE PROPERTY_BAR_TEQUILALA CASE PROPERTY_BAR_PITCHERS CASE PROPERTY_BAR_HEN_HOUSE CASE PROPERTY_BAR_HOOKIES SWITCH thisMission CASE PROPERTY_MANAGEMENT_MISSION_DELIVERY thisDelivery = CONVERT_INT_TO_DELIVERY_VARIATION(thisProperty, iVariation) IF thisDelivery = DELIVERY_MISSION_VARIATION_BREAKABLE_CARGO_COUNTRY RETURN <<2000, 2000, 2000>> ELIF thisDelivery = DELIVERY_MISSION_VARIATION_BREAKABLE_CARGO_VINYARD RETURN <<1500, 1500, 1500>> ENDIF BREAK ENDSWITCH BREAK ENDSWITCH RETURN <<1000, 1000, 1000>> ENDFUNC // get block range for management event FUNC VECTOR GET_BLOCK_RANGE_FOR_MANAGEMENT_EVENT(PROPERTY_ENUM thisProperty, PROPERTY_MANAGEMENT_MISSION_ENUM thisMission, INT iVariation) thisProperty=thisProperty thisMission=thisMission iVariation = iVariation SWITCH thisMission CASE PROPERTY_MANAGEMENT_MISSION_TAXI RETURN <<150,150,150>> BREAK ENDSWITCH RETURN <<200, 200, 200>> ENDFUNC // get trigger range for management event FUNC VECTOR GET_TRIGGER_RANGE_FOR_MANAGEMENT_EVENT(PROPERTY_ENUM thisProperty, PROPERTY_MANAGEMENT_MISSION_ENUM thisMission, INT iVariation) thisProperty=thisProperty thisMission=thisMission iVariation = iVariation SWITCH thisMission CASE PROPERTY_MANAGEMENT_MISSION_DELIVERY CASE PROPERTY_MANAGEMENT_MISSION_TAXI CASE PROPERTY_MANAGEMENT_MISSION_PLANE_PROMOTION IF thisProperty = PROPERTY_WEED_SHOP DELIVERY_MISSION_VARIATION_ENUM thisDelivery thisDelivery = CONVERT_INT_TO_DELIVERY_VARIATION(thisProperty, iVariation) IF thisDelivery = DELIVERY_MISSION_VARIATION_RECOVER_VAN RETURN <<150,150,150>> ELIF thisDelivery = DELIVERY_MISSION_VARIATION_RECOVER_VAN_2 RETURN <<175,175,175>> ENDIF ENDIF RETURN <<65,65,65>> BREAK CASE PROPERTY_MANAGEMENT_MISSION_RECOVER_STOLEN RETURN <<120,120,120>> BREAK CASE PROPERTY_MANAGEMENT_MISSION_GANG_ATTACK RETURN <<100,100,100>> BREAK CASE PROPERTY_MANAGEMENT_MISSION_DEFEND SWITCH thisProperty CASE PROPERTY_CAR_SCRAP_YARD RETURN <<180,180,180>> BREAK ENDSWITCH BREAK ENDSWITCH RETURN <<200, 200, 200>> ENDFUNC