////////////////////////////////////////////////////////////////////////////////////////// // // // SCRIPT NAME : vehicle_public.sch // // AUTHOR : Kenneth Ross // // DESCRIPTION : Commands to get misc vehicle details. // // // ////////////////////////////////////////////////////////////////////////////////////////// USING "rage_builtins.sch" USING "globals.sch" USING "net_stat_system.sch" USING "commands_streaming.sch" USING "net_rank_unlocks.sch" USING "transition_saving.sch" USING "exclusive_vehicle_mod_helper.sch" USING "net_special_pv_properties.sch" ENUM TYRE_SMOKE_COLOUR_ENUM TYRE_SMOKE_INVALID = 0, TYRE_SMOKE_WHITE, TYRE_SMOKE_BLACK, TYRE_SMOKE_BLUE, TYRE_SMOKE_YELLOW, TYRE_SMOKE_BUSINESS_PURPLE, TYRE_SMOKE_ORANGE, TYRE_SMOKE_BUSINESS_GREEN, TYRE_SMOKE_RED, TYRE_SMOKE_HIPSTER_PINK, TYRE_SMOKE_HIPSTER_BROWN, TYRE_SMOKE_INDI_PAT, TYRE_SMOKE_CREW ENDENUM ENUM VEHICLE_MODEL_FAIL_ENUM VEH_MODEL_FAIL_DUMMY = 0, VEH_MODEL_FAIL_COP_VEHICLE, VEH_MODEL_FAIL_INVALID_VEHICLE, VEH_MODEL_FAIL_PREMIUM, VEH_MODEL_FAIL_PERSONAL, VEH_MODEL_FAIL_NO_DLC, VEH_MODEL_FAIL_REMOTE_MOD ,VEH_MODEL_FAIL_SUPERMOD_ONLY ,VEH_MODEL_FAIL_SUPERMOD_LOCKED ,VEH_MODEL_FAIL_MOC_ONLY ,VEH_MODEL_FAIL_IS_MOC ,VEH_MODEL_FAIL_BUY_MISSION ,VEH_MODEL_FAIL_DEFUCT_BASE_ONLY ,VEH_MODEL_DELIVERING_BOUNTY , VEH_MODEL_FAIL_BUSINESS_HUB_ONLY , VEH_MODEL_FAIL_HACKER_TRUCK_ONLY , VEH_MODEL_FAIL_ARENA_TRUCK_ONLY #IF FEATURE_DLC_2_2022 ,VEH_MODEL_FAIL_JUGGALO_WAREHOUSE_ONLY #ENDIF ENDENUM #IF FEATURE_TUNER ENUM TUNER_CLIENT_VEHICLE_PERFORMACE_MOD VPM_INVALID = -1, VPM_ENGINE = 0, VPM_BRAKE, VPM_TOGGLE_TURBO, VPM_GEARBOX, VPM_SUSPENSION, VPM_TOTAL ENDENUM ENUM TUNER_CLIENT_VEHICLE_BODYWORK_MOD VBM_INVALID = -1, VBM_SPOILER = 0, VBM_BUMPER_F, VBM_BUMPER_R, VBM_SKIRT, VBM_EXHAUST, VBM_CHASSIS, VBM_GRILL, VBM_BONNET, VBM_WING_L, VBM_WING_R, VBM_ROOF, VBM_TOTAL ENDENUM ENUM TUNER_CLIENT_VEHICLE_WHEEL_MOD VWM_INVALID = -1, VWM_SPORT = 0, VWM_MUSCLE, VWM_LOWRIDER, VWM_SUV, VWM_OFFROAD, VWM_TUNER, VWM_HIEND, VWM_SUPERMOD4, VWM_SUPERMOD5, VWM_TOTAL ENDENUM STRUCT TUNER_CLIENT_VEHICLE_RANDOM_MODS TUNER_CLIENT_VEHICLE_PERFORMACE_MOD eVehPerformaceMod[3] TUNER_CLIENT_VEHICLE_BODYWORK_MOD eVehBodyWorkMod[3] TUNER_CLIENT_VEHICLE_WHEEL_MOD eVehWheelType ENDSTRUCT #ENDIF #IF FEATURE_DLC_1_2022 ENUM BIKER_CLIENT_VEHICLE_PERFORMACE_MOD BVPM_INVALID = -1, BVPM_ENGINE = 0, BVPM_BRAKE, BVPM_TOGGLE_TURBO, BVPM_GEARBOX, BVPM_SUSPENSION, BVPM_TOTAL ENDENUM ENUM BIKER_CLIENT_VEHICLE_BODYWORK_MOD BVBM_INVALID = -1, BVBM_SPOILER = 0, BVBM_BUMPER_F, BVBM_BUMPER_R, BVBM_SKIRT, BVBM_EXHAUST, BVBM_CHASSIS, BVBM_GRILL, BVBM_BONNET, BVBM_WING_L, BVBM_WING_R, BVBM_ROOF, BVBM_LIVERY, BVBM_TOTAL ENDENUM STRUCT BIKER_CLIENT_VEHICLE_RANDOM_MODS BIKER_CLIENT_VEHICLE_PERFORMACE_MOD eVehPerformaceMod[3] BIKER_CLIENT_VEHICLE_BODYWORK_MOD eVehBodyWorkMod[3] MOD_WHEEL_TYPE eVehWheelType ENDSTRUCT #ENDIF CONST_INT MAX_SUPERMOD_VARIATION 4 CONST_INT MAX_NUM_TUNER_CLIENT_VEHICLE 40 ENUM CARMOD_SUPERMOD_VARIATION SUPERMOD_VAR_1 = 0, SUPERMOD_VAR_2, SUPERMOD_VAR_3, SUPERMOD_VAR_4 // Increase MAX_SUPERMOD_VARIATION ENDENUM FUNC FLOAT GET_VEHICLE_DOOR_OPEN_ANGLE_RATIO(MODEL_NAMES model, SC_DOOR_LIST eDoor) SWITCH model CASE HALFTRACK RETURN 0.7 CASE TAMPA3 SWITCH eDoor CASE SC_DOOR_BONNET RETURN 0.3 ENDSWITCH BREAK CASE CARGOBOB CASE CARGOBOB2 CASE CARGOBOB3 CASE CARGOBOB4 RETURN 0.75 BREAK CASE SPEEDO4 SWITCH eDoor CASE SC_DOOR_BONNET RETURN 0.7 ENDSWITCH BREAK ENDSWITCH RETURN 0.8 ENDFUNC FUNC STRING GET_SAFE_DISPLAY_NAME_FROM_VEHICLE_MODEL(MODEL_NAMES VehicleModelHashKey) IF VehicleModelHashKey = DUMMY_MODEL_FOR_SCRIPT RETURN "DUMMY" ELIF VehicleModelHashKey = eDLC_BIG_YACHT_MODEL RETURN "BIG_YACHT" ELIF VehicleModelHashKey = eDLC_BIG_TRUCK_MODEL RETURN "BIG_TRUCK" ELIF VehicleModelHashKey = eDLC_BIG_PLANE_MODEL RETURN "BIG_PLANE" ELIF VehicleModelHashKey = eDLC_BALLISTIC_EQUIPMENT_MODEL RETURN "BALLISTIC" ELIF VehicleModelHashKey = eDLC_HACKER_TRUCK_MODEL RETURN "HACKER_TRUCK" ENDIF IF !IS_MODEL_VALID(VehicleModelHashKey) OR !IS_MODEL_IN_CDIMAGE(VehicleModelHashKey) OR !IS_MODEL_A_VEHICLE(VehicleModelHashKey) RETURN "INVALID MODEL" ENDIF RETURN GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(VehicleModelHashKey) ENDFUNC FUNC BOOL IS_VEHICLE_MODEL_BLOCKED_IN_MP(MODEL_NAMES eModel) SWITCH eModel CASE TOWTRUCK CASE TOWTRUCK2 CASE FORKLIFT NET_PRINT("IS_VEHICLE_MODEL_BLOCKED_IN_MP = TRUE, eModel = ") NET_PRINT_INT(ENUM_TO_INT(eModel)) NET_NL() RETURN(TRUE) BREAK ENDSWITCH RETURN(FALSE) ENDFUNC /// PURPOSE: /// Checks if given vehicle was already made available in the past. /// This stops players from owning vehicles that were released as DLC but not yet unlocked via a tunable, /// which players might acquire using glitches like transferring accounts from ps3 to ps4 (url:bugstar:2681819) /// PARAMS: /// eModel - /// RETURNS: /// FUNC BOOL IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(MODEL_NAMES eModel) IF g_bDisablePosixVehicleCheck RETURN TRUE ENDIF #IF IS_DEBUG_BUILD IF GET_COMMANDLINE_PARAM_EXISTS("sc_DisablePosixVehicleCheck") RETURN TRUE ENDIF #ENDIF BOOL bResult = TRUE INT iCurrentPosixTime = GET_CLOUD_TIME_AS_INT() IF eModel = BTYPE3 IF NOT g_sMPTunables.bturnonvalentinesevent AND NOT g_sMPTunables.bTURN_ON_VALENTINE_2016_VEHICLE AND iCurrentPosixTime < g_sMPTunables.iTURN_ON_VALENTINE_2016_VEHICLE_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking BTYPE3") #ENDIF ENDIF ENDIF IF eModel = FACTION3 IF NOT g_sMPTunables.bEnablelowrider2_Faction AND iCurrentPosixTime < g_sMPTunables.iEnablelowrider2_Faction_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking FACTION3") #ENDIF ENDIF ELIF eModel = VIRGO3 OR eModel = VIRGO2 IF NOT g_sMPTunables.bEnablelowrider2_Virgo3 AND iCurrentPosixTime < g_sMPTunables.iEnablelowrider2_Virgo3_Posix bResult = FALSE #IF IS_DEBUG_BUILD IF eModel = VIRGO3 CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking VIRGO3") ELSE CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking VIRGO2") ENDIF #ENDIF ENDIF ELIF eModel = SABREGT2 IF NOT g_sMPTunables.bEnablelowrider2_SabreGT AND iCurrentPosixTime < g_sMPTunables.iEnablelowrider2_SabreGT_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking SABREGT2") #ENDIF ENDIF ELIF eModel = TORNADO5 IF NOT g_sMPTunables.bEnablelowrider2_Tornado5 AND iCurrentPosixTime < g_sMPTunables.iEnablelowrider2_Tornado5_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking TORNADO5") #ENDIF ENDIF ELIF eModel = MINIVAN2 IF NOT g_sMPTunables.bEnablelowrider2_Minivan AND iCurrentPosixTime < g_sMPTunables.iEnablelowrider2_Minivan_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking MINIVAN2") #ENDIF ENDIF ELIF eModel = SLAMVAN3 IF NOT g_sMPTunables.bEnablelowrider2_Slamvan AND iCurrentPosixTime < g_sMPTunables.iEnablelowrider2_Slamvan_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking SLAMVAN3") #ENDIF ENDIF ENDIF IF eModel = PROTOTIPO IF NOT g_sMPTunables.bEnableExec1_GROTTI_PROTO AND iCurrentPosixTime < g_sMPTunables.iEnableExec1_GROTTI_PROTO_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking PROTOTIPO") #ENDIF ENDIF ELIF eModel = SEVEN70 IF NOT g_sMPTunables.bEnableExec1_DEWBAUCHEE AND iCurrentPosixTime < g_sMPTunables.iEnableExec1_DEWBAUCHEE_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking SEVEN70") #ENDIF ENDIF ELIF eModel = PFISTER811 IF NOT g_sMPTunables.bEnableExec1_PFISTER AND iCurrentPosixTime < g_sMPTunables.iEnableExec1_PFISTER_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking PFISTER811") #ENDIF ENDIF ENDIF IF eModel = BF400 // Nagasaki BF400 IF NOT g_sMPTunables.bEnableStunt_BF400 AND iCurrentPosixTime < g_sMPTunables.iEnableStunt_BF400_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking BF400") #ENDIF ENDIF ELIF eModel = BRIOSO // Grotti Brioso R/A IF NOT g_sMPTunables.bEnableStunt_BRIOSO_RA AND iCurrentPosixTime < g_sMPTunables.iEnableStunt_BRIOSO_RA_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking BRIOSO") #ENDIF ENDIF ELIF eModel = CLIFFHANGER // Western Cliffhanger IF NOT g_sMPTunables.bEnableStunt_cliffhanger AND iCurrentPosixTime < g_sMPTunables.iEnableStunt_cliffhanger_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking CLIFFHANGER") #ENDIF ENDIF ELIF eModel = CONTENDER // Vapid Contender IF NOT g_sMPTunables.bEnableStunt_contender AND iCurrentPosixTime < g_sMPTunables.iEnableStunt_contender_posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking CONTENDER") #ENDIF ENDIF ELIF eModel = LE7B // Annis RE-7B IF NOT g_sMPTunables.bEnableStunt_LE7B AND iCurrentPosixTime < g_sMPTunables.iEnableStunt_LE7B_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking LE7B") #ENDIF ENDIF ELIF eModel = OMNIS // Obey Omnis IF NOT g_sMPTunables.bEnableStunt_Omnis AND iCurrentPosixTime < g_sMPTunables.iEnableStunt_Omnis_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking OMNIS") #ENDIF ENDIF ELIF eModel = TROPHYTRUCK // Vapid Trophy Truck IF NOT g_sMPTunables.bEnableStunt_trophy_truck AND iCurrentPosixTime < g_sMPTunables.iEnableStunt_trophy_truck_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking TROPHYTRUCK") #ENDIF ENDIF ELIF eModel = TROPHYTRUCK2 // Vapid Desert Raid IF NOT g_sMPTunables.bEnableStunt_trophy_car AND iCurrentPosixTime < g_sMPTunables.iEnableStunt_trophy_car_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking TROPHYTRUCK2") #ENDIF ENDIF ELIF eModel = TROPOS // Lampadati Tropos Rallye IF NOT g_sMPTunables.bEnableStunt_tropos_rallye AND iCurrentPosixTime < g_sMPTunables.iEnableStunt_tropos_rallye_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking TROPOS") #ENDIF ENDIF ELIF eModel = GARGOYLE // Western Bike O' Death IF NOT g_sMPTunables.bEnableStunt_bike_o_death AND iCurrentPosixTime < g_sMPTunables.iEnableStunt_bike_o_death_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking GARGOYLE") #ENDIF ENDIF ELIF eModel = RALLYTRUCK // MTL Dune IF NOT g_sMPTunables.bEnableStunt_rally_truck AND iCurrentPosixTime < g_sMPTunables.iEnableStunt_rally_truck_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking RALLYTRUCK") #ENDIF ENDIF ELIF eModel = TAMPA2 // Declasse Drift Tampa IF NOT g_sMPTunables.bEnableStunt_drift_tampa AND iCurrentPosixTime < g_sMPTunables.iEnableStunt_drift_tampa_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking TAMPA2") #ENDIF ENDIF ELIF eModel = TYRUS // Progen Tyrus IF NOT g_sMPTunables.bEnableStunt_tyrus AND iCurrentPosixTime < g_sMPTunables.iEnableStunt_tyrus_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking TYRUS") #ENDIF ENDIF ELIF eModel = SHEAVA // (LFA) IF NOT g_sMPTunables.bEnableStunt_lfa AND iCurrentPosixTime < g_sMPTunables.iEnableStunt_lfa_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking SHEAVA") #ENDIF ENDIF ELIF eModel = LYNX // Ocelot Lynx (GT3) IF NOT g_sMPTunables.bEnableStunt_lynx AND iCurrentPosixTime < g_sMPTunables.iEnableStunt_lynx_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking LYNX") #ENDIF ENDIF // CG cars ELIF eModel = STALION2 // Burger Shot Stallion IF NOT g_sMPTunables.bEnableStunt_stallion AND iCurrentPosixTime < g_sMPTunables.iEnableStunt_stallion_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking STALION2") #ENDIF ENDIF ELIF eModel = GAUNTLET2 // Redwood Gaunlet IF NOT g_sMPTunables.bEnableStunt_gauntlet AND iCurrentPosixTime < g_sMPTunables.iEnableStunt_gauntlet_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking GAUNTLET2") #ENDIF ENDIF ELIF eModel = DOMINATOR2 // Piswasser Dominator IF NOT g_sMPTunables.bEnableStunt_dominator AND iCurrentPosixTime < g_sMPTunables.iEnableStunt_dominator_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking DOMINATOR2") #ENDIF ENDIF ELIF eModel = BUFFALO3 // Sprunk Buffalo IF NOT g_sMPTunables.bEnableStunt_buffalo AND iCurrentPosixTime < g_sMPTunables.iEnableStunt_buffalo_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking BUFFALO3") #ENDIF ENDIF ENDIF IF eModel = defiler IF NOT g_sMPTunables.bENABLE_BIKER_DEFILER // 2 AND iCurrentPosixTime < g_sMPTunables.iENABLE_BIKER_DEFILER_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking defiler") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_BIKER_DEFILER = ", PICK_STRING(g_sMPTunables.bENABLE_BIKER_DEFILER, "TRUE", "FALSE"), ", iENABLE_BIKER_DEFILER_POSIX = ", g_sMPTunables.iENABLE_BIKER_DEFILER_POSIX) #ENDIF ENDIF ELIF eModel = nightblade IF NOT g_sMPTunables.bENABLE_BIKER_NIGHTBLADE // 3 AND iCurrentPosixTime < g_sMPTunables.iENABLE_BIKER_NIGHTBLADE_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking nightblade") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_BIKER_NIGHTBLADE = ", PICK_STRING(g_sMPTunables.bENABLE_BIKER_NIGHTBLADE, "TRUE", "FALSE"), ", iENABLE_BIKER_DEFILER_POSIX = ", g_sMPTunables.iENABLE_BIKER_NIGHTBLADE_POSIX) #ENDIF ENDIF ELIF eModel = zombiea IF NOT g_sMPTunables.bENABLE_BIKER_ZOMBIEA // 5 AND iCurrentPosixTime < g_sMPTunables.iENABLE_BIKER_ZOMBIEA_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking zombiea") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_BIKER_ZOMBIEA = ", PICK_STRING(g_sMPTunables.bENABLE_BIKER_ZOMBIEA, "TRUE", "FALSE"), ", iENABLE_BIKER_DEFILER_POSIX = ", g_sMPTunables.iENABLE_BIKER_ZOMBIEA_POSIX) #ENDIF ENDIF ELIF eModel = esskey IF NOT g_sMPTunables.bENABLE_BIKER_ESSKEY // 1 AND iCurrentPosixTime < g_sMPTunables.iENABLE_BIKER_ESSKEY_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking esskey") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_BIKER_ESSKEY = ", PICK_STRING(g_sMPTunables.bENABLE_BIKER_ESSKEY, "TRUE", "FALSE"), ", iENABLE_BIKER_DEFILER_POSIX = ", g_sMPTunables.iENABLE_BIKER_ESSKEY_POSIX) #ENDIF ENDIF ELIF eModel = avarus IF NOT g_sMPTunables.bENABLE_BIKER_AVARUS // 4 AND iCurrentPosixTime < g_sMPTunables.iENABLE_BIKER_AVARUS_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking avarus") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_BIKER_AVARUS = ", PICK_STRING(g_sMPTunables.bENABLE_BIKER_AVARUS, "TRUE", "FALSE"), ", iENABLE_BIKER_DEFILER_POSIX = ", g_sMPTunables.iENABLE_BIKER_AVARUS_POSIX) #ENDIF ENDIF ELIF eModel = zombieb IF NOT g_sMPTunables.bENABLE_BIKER_ZOMBIEB // 6 AND iCurrentPosixTime < g_sMPTunables.iENABLE_BIKER_ZOMBIEB_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking zombieb") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_BIKER_ZOMBIEB = ", PICK_STRING(g_sMPTunables.bENABLE_BIKER_ZOMBIEB, "TRUE", "FALSE"), ", iENABLE_BIKER_DEFILER_POSIX = ", g_sMPTunables.iENABLE_BIKER_ZOMBIEB_POSIX) #ENDIF ENDIF ELIF eModel = hakuchou2 IF NOT g_sMPTunables.bENABLE_BIKER_HAKUCHOU2 // 7 AND iCurrentPosixTime < g_sMPTunables.iENABLE_BIKER_HAKUCHOU2_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking hakuchou2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_BIKER_HAKUCHOU2 = ", PICK_STRING(g_sMPTunables.bENABLE_BIKER_HAKUCHOU2, "TRUE", "FALSE"), ", iENABLE_BIKER_DEFILER_POSIX = ", g_sMPTunables.iENABLE_BIKER_HAKUCHOU2_POSIX) #ENDIF ENDIF ELIF eModel = vortex IF NOT g_sMPTunables.bENABLE_BIKER_VORTEX // 8 AND iCurrentPosixTime < g_sMPTunables.iENABLE_BIKER_VORTEX_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking vortex") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_BIKER_VORTEX = ", PICK_STRING(g_sMPTunables.bENABLE_BIKER_VORTEX, "TRUE", "FALSE"), ", iENABLE_BIKER_DEFILER_POSIX = ", g_sMPTunables.iENABLE_BIKER_VORTEX_POSIX) #ENDIF ENDIF ELIF eModel = shotaro IF NOT g_sMPTunables.bENABLE_BIKER_SHOTARO // 15 AND iCurrentPosixTime < g_sMPTunables.iENABLE_BIKER_SHOTARO_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking shotaro") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_BIKER_SHOTARO = ", PICK_STRING(g_sMPTunables.bENABLE_BIKER_SHOTARO, "TRUE", "FALSE"), ", iENABLE_BIKER_DEFILER_POSIX = ", g_sMPTunables.iENABLE_BIKER_SHOTARO_POSIX) #ENDIF ENDIF ELIF eModel = Chimera IF NOT g_sMPTunables.bENABLE_BIKER_CHIMERA // 9 AND iCurrentPosixTime < g_sMPTunables.iENABLE_BIKER_CHIMERA_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking Chimera") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_BIKER_CHIMERA = ", PICK_STRING(g_sMPTunables.bENABLE_BIKER_CHIMERA, "TRUE", "FALSE"), ", iENABLE_BIKER_DEFILER_POSIX = ", g_sMPTunables.iENABLE_BIKER_CHIMERA_POSIX) #ENDIF ENDIF ELIF eModel = raptor IF NOT g_sMPTunables.bENABLE_BIKER_RAPTOR // 10 AND iCurrentPosixTime < g_sMPTunables.iENABLE_BIKER_RAPTOR_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking raptor") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_BIKER_RAPTOR = ", PICK_STRING(g_sMPTunables.bENABLE_BIKER_RAPTOR, "TRUE", "FALSE"), ", iENABLE_BIKER_DEFILER_POSIX = ", g_sMPTunables.iENABLE_BIKER_RAPTOR_POSIX) #ENDIF ENDIF ELIF eModel = daemon2 IF NOT g_sMPTunables.bENABLE_BIKER_WESTERNDAEMON // 11 AND iCurrentPosixTime < g_sMPTunables.iENABLE_BIKER_WESTERNDAEMON_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking daemon2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_BIKER_WESTERNDAEMON = ", PICK_STRING(g_sMPTunables.bENABLE_BIKER_WESTERNDAEMON, "TRUE", "FALSE"), ", iENABLE_BIKER_DEFILER_POSIX = ", g_sMPTunables.iENABLE_BIKER_WESTERNDAEMON_POSIX) #ENDIF ENDIF ELIF eModel = blazer4 IF NOT g_sMPTunables.bENABLE_BIKER_BLAZER4 // 14 AND iCurrentPosixTime < g_sMPTunables.iENABLE_BIKER_BLAZER4_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking blazer4") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_BIKER_BLAZER4 = ", PICK_STRING(g_sMPTunables.bENABLE_BIKER_BLAZER4, "TRUE", "FALSE"), ", iENABLE_BIKER_DEFILER_POSIX = ", g_sMPTunables.iENABLE_BIKER_BLAZER4_POSIX) #ENDIF ENDIF ELIF eModel = TORNADO6 //Rauf Welt 964 IF NOT g_sMPTunables.bENABLE_BIKER_TORNADO6 AND iCurrentPosixTime < g_sMPTunables.iENABLE_BIKER_TORNADO6_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking TORNADO6") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_BIKER_TORNADO6 = ", PICK_STRING(g_sMPTunables.bENABLE_BIKER_TORNADO6, "TRUE", "FALSE"), ", iENABLE_BIKER_DEFILER_POSIX = ", g_sMPTunables.iENABLE_BIKER_TORNADO6_Posix) #ENDIF ENDIF ELIF eModel = YOUGA2 IF NOT g_sMPTunables.bENABLE_BIKER_YOUGA2 AND iCurrentPosixTime < g_sMPTunables.iENABLE_BIKER_YOUGA2_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking YOUGA2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_BIKER_YOUGA2 = ", PICK_STRING(g_sMPTunables.bENABLE_BIKER_YOUGA2, "TRUE", "FALSE"), ", iENABLE_BIKER_DEFILER_POSIX = ", g_sMPTunables.iENABLE_BIKER_YOUGA2_Posix) #ENDIF ENDIF ELIF eModel = WOLFSBANE IF NOT g_sMPTunables.bENABLE_BIKER_WOLFSBANE AND iCurrentPosixTime < g_sMPTunables.iENABLE_BIKER_WOLFSBANE_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking WOLFSBANE") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_BIKER_WOLFSBANE = ", PICK_STRING(g_sMPTunables.bENABLE_BIKER_WOLFSBANE, "TRUE", "FALSE"), ", iENABLE_BIKER_DEFILER_POSIX = ", g_sMPTunables.iENABLE_BIKER_WOLFSBANE_Posix) #ENDIF ENDIF ELIF eModel = FAGGIO3 IF NOT g_sMPTunables.bENABLE_BIKER_FAGGIO3 AND iCurrentPosixTime < g_sMPTunables.iENABLE_BIKER_FAGGIO3_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking FAGGIO3") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_BIKER_FAGGIO3 = ", PICK_STRING(g_sMPTunables.bENABLE_BIKER_FAGGIO3, "TRUE", "FALSE"), ", iENABLE_BIKER_DEFILER_POSIX = ", g_sMPTunables.iENABLE_BIKER_FAGGIO3_Posix) #ENDIF ENDIF ELIF eModel = FAGGIO IF NOT g_sMPTunables.bENABLE_BIKER_FAGGIO AND iCurrentPosixTime < g_sMPTunables.iENABLE_BIKER_FAGGIO_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking FAGGIO") #ENDIF ENDIF ELIF eModel = BAGGER //Nissan Skyline IF NOT g_sMPTunables.bENABLE_BIKER_BAGGER AND iCurrentPosixTime < g_sMPTunables.iENABLE_BIKER_BAGGER_Posix bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking BAGGER") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_BIKER_BAGGER = ", PICK_STRING(g_sMPTunables.bENABLE_BIKER_BAGGER, "TRUE", "FALSE"), ", iENABLE_BIKER_DEFILER_POSIX = ", g_sMPTunables.iENABLE_BIKER_BAGGER_Posix) #ENDIF ENDIF ELIF eModel = sanctus IF NOT g_sMPTunables.bENABLE_BIKER_SANCTUS // 17 AND iCurrentPosixTime < g_sMPTunables.iENABLE_BIKER_SANCTUS_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking sanctus") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_BIKER_SANCTUS = ", PICK_STRING(g_sMPTunables.bENABLE_BIKER_SANCTUS, "TRUE", "FALSE"), ", iENABLE_BIKER_DEFILER_POSIX = ", g_sMPTunables.iENABLE_BIKER_SANCTUS_POSIX) #ENDIF ENDIF ELIF eModel = manchez IF NOT g_sMPTunables.bENABLE_BIKER_MANCHEZ // 19 AND iCurrentPosixTime < g_sMPTunables.iENABLE_BIKER_MANCHEZ_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking manchez") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_BIKER_MANCHEZ = ", PICK_STRING(g_sMPTunables.bENABLE_BIKER_MANCHEZ, "TRUE", "FALSE"), ", iENABLE_BIKER_DEFILER_POSIX = ", g_sMPTunables.iENABLE_BIKER_MANCHEZ_POSIX) #ENDIF ENDIF ELIF eModel = ratbike IF NOT g_sMPTunables.bENABLE_BIKER_RATBIKE // 12 AND iCurrentPosixTime < g_sMPTunables.iENABLE_BIKER_RATBIKE_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking ratbike") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_BIKER_RATBIKE = ", PICK_STRING(g_sMPTunables.bENABLE_BIKER_RATBIKE, "TRUE", "FALSE"), ", iENABLE_BIKER_DEFILER_POSIX = ", g_sMPTunables.iENABLE_BIKER_RATBIKE_POSIX) #ENDIF ENDIF ENDIF IF eModel = VOLTIC2 IF NOT g_sMPTunables.bENABLE_IE_VOLTIC2 AND iCurrentPosixTime < g_sMPTunables.iENABLE_IE_VOLTIC2_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking VOLTIC2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_IE_VOLTIC2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_IE_VOLTIC2), ", iENABLE_IE_VOLTIC2_POSIX = ", g_sMPTunables.iENABLE_IE_VOLTIC2_POSIX) #ENDIF ENDIF ELIF eModel = RUINER2 IF NOT g_sMPTunables.bENABLE_IE_RUINER2 AND iCurrentPosixTime < g_sMPTunables.iENABLE_IE_RUINER2_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking RUINER2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_IE_RUINER2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_IE_RUINER2), ", iENABLE_IE_RUINER2_POSIX = ", g_sMPTunables.iENABLE_IE_RUINER2_POSIX) #ENDIF ENDIF ELIF eModel = DUNE4 IF NOT g_sMPTunables.bENABLE_IE_DUNE4 AND iCurrentPosixTime < g_sMPTunables.iENABLE_IE_DUNE4_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking DUNE4") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_IE_DUNE4 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_IE_DUNE4), ", iENABLE_IE_DUNE4_POSIX = ", g_sMPTunables.iENABLE_IE_DUNE4_POSIX) #ENDIF ENDIF ELIF eModel = DUNE5 IF NOT g_sMPTunables.bENABLE_IE_DUNE5 AND iCurrentPosixTime < g_sMPTunables.iENABLE_IE_DUNE5_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking DUNE5") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_IE_DUNE5 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_IE_DUNE5), ", iENABLE_IE_DUNE5_POSIX = ", g_sMPTunables.iENABLE_IE_DUNE5_POSIX) #ENDIF ENDIF ELIF eModel = PHANTOM2 IF NOT g_sMPTunables.bENABLE_IE_PHANTOM2 AND iCurrentPosixTime < g_sMPTunables.iENABLE_IE_PHANTOM2_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking PHANTOM2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_IE_PHANTOM2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_IE_PHANTOM2), ", iENABLE_IE_PHANTOM2_POSIX = ", g_sMPTunables.iENABLE_IE_PHANTOM2_POSIX) #ENDIF ENDIF ELIF eModel = TECHNICAL2 IF NOT g_sMPTunables.bENABLE_IE_TECHNICAL2 AND iCurrentPosixTime < g_sMPTunables.iENABLE_IE_TECHNICAL2_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking TECHNICAL2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_IE_TECHNICAL2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_IE_TECHNICAL2), ", iENABLE_IE_TECHNICAL2_POSIX = ", g_sMPTunables.iENABLE_IE_TECHNICAL2_POSIX) #ENDIF ENDIF ELIF eModel = BOXVILLE5 IF NOT g_sMPTunables.bENABLE_IE_BOXVILLE5 AND iCurrentPosixTime < g_sMPTunables.iENABLE_IE_BOXVILLE5_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking BOXVILLE5") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_IE_BOXVILLE5 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_IE_BOXVILLE5), ", iENABLE_IE_BOXVILLE5_POSIX = ", g_sMPTunables.iENABLE_IE_BOXVILLE5_POSIX) #ENDIF ENDIF ELIF eModel = WASTELANDER IF NOT g_sMPTunables.bENABLE_IE_WASTELANDER AND iCurrentPosixTime < g_sMPTunables.iENABLE_IE_WASTELANDER_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking WASTELANDER") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_IE_WASTELANDER = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_IE_WASTELANDER), ", iENABLE_IE_WASTELANDER_POSIX = ", g_sMPTunables.iENABLE_IE_WASTELANDER_POSIX) #ENDIF ENDIF ELIF eModel = BLAZER5 IF NOT g_sMPTunables.bENABLE_IE_BLAZER5 AND iCurrentPosixTime < g_sMPTunables.iENABLE_IE_BLAZER5_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking BLAZER5") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_IE_BLAZER5 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_IE_BLAZER5), ", iENABLE_IE_BLAZER5_POSIX = ", g_sMPTunables.iENABLE_IE_BLAZER5_POSIX) #ENDIF ENDIF ELIF eModel = COMET2 IF NOT g_sMPTunables.bENABLE_IE_COMET2 AND iCurrentPosixTime < g_sMPTunables.iENABLE_IE_COMET2_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking COMET2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_IE_COMET2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_IE_COMET2), ", iENABLE_IE_COMET2_POSIX = ", g_sMPTunables.iENABLE_IE_COMET2_POSIX) #ENDIF ENDIF ELIF eModel = COMET3 IF NOT g_sMPTunables.bENABLE_IE_COMET3 AND iCurrentPosixTime < g_sMPTunables.iENABLE_IE_COMET3_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking COMET3") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_IE_COMET3 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_IE_COMET3), ", iENABLE_IE_COMET3_POSIX = ", g_sMPTunables.iENABLE_IE_COMET3_POSIX) #ENDIF ENDIF ELIF eModel = DIABLOUS IF NOT g_sMPTunables.bENABLE_IE_DIABLOUS AND iCurrentPosixTime < g_sMPTunables.iENABLE_IE_DIABLOUS_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking DIABLOUS") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_IE_DIABLOUS = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_IE_DIABLOUS), ", iENABLE_IE_DIABLOUS_POSIX = ", g_sMPTunables.iENABLE_IE_DIABLOUS_POSIX) #ENDIF ENDIF ELIF eModel = DIABLOUS2 IF NOT g_sMPTunables.bENABLE_IE_DIABLOUS2 AND iCurrentPosixTime < g_sMPTunables.iENABLE_IE_DIABLOUS2_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking DIABLOUS2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_IE_DIABLOUS2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_IE_DIABLOUS2), ", iENABLE_IE_DIABLOUS2_POSIX = ", g_sMPTunables.iENABLE_IE_DIABLOUS2_POSIX) #ENDIF ENDIF ELIF eModel = ELEGY IF NOT g_sMPTunables.bENABLE_IE_ELEGY AND iCurrentPosixTime < g_sMPTunables.iENABLE_IE_ELEGY_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking ELEGY") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_IE_ELEGY = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_IE_ELEGY), ", iENABLE_IE_ELEGY_POSIX = ", g_sMPTunables.iENABLE_IE_ELEGY_POSIX) #ENDIF ENDIF ELIF eModel = ELEGY2 IF NOT g_sMPTunables.bENABLE_IE_ELEGY2 AND iCurrentPosixTime < g_sMPTunables.iENABLE_IE_ELEGY2_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking ELEGY2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_IE_ELEGY2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_IE_ELEGY2), ", iENABLE_IE_ELEGY2_POSIX = ", g_sMPTunables.iENABLE_IE_ELEGY2_POSIX) #ENDIF ENDIF ELIF eModel = FCR IF NOT g_sMPTunables.bENABLE_IE_FCR AND iCurrentPosixTime < g_sMPTunables.iENABLE_IE_FCR_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking FCR") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_IE_FCR = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_IE_FCR), ", iENABLE_IE_FCR_POSIX = ", g_sMPTunables.iENABLE_IE_FCR_POSIX) #ENDIF ENDIF ELIF eModel = FCR2 IF NOT g_sMPTunables.bENABLE_IE_FCR2 AND iCurrentPosixTime < g_sMPTunables.iENABLE_IE_FCR2_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking FCR2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_IE_FCR2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_IE_FCR2), ", iENABLE_IE_FCR2_POSIX = ", g_sMPTunables.iENABLE_IE_FCR2_POSIX) #ENDIF ENDIF ELIF eModel = ITALIGTB IF NOT g_sMPTunables.bENABLE_IE_ITALIGTB AND iCurrentPosixTime < g_sMPTunables.iENABLE_IE_ITALIGTB_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking ITALIGTB") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_IE_ITALIGTB = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_IE_ITALIGTB), ", iENABLE_IE_ITALIGTB_POSIX = ", g_sMPTunables.iENABLE_IE_ITALIGTB_POSIX) #ENDIF ENDIF ELIF eModel = ITALIGTB2 IF NOT g_sMPTunables.bENABLE_IE_ITALIGTB2 AND iCurrentPosixTime < g_sMPTunables.iENABLE_IE_ITALIGTB2_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking ITALIGTB2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_IE_ITALIGTB2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_IE_ITALIGTB2), ", iENABLE_IE_ITALIGTB2_POSIX = ", g_sMPTunables.iENABLE_IE_ITALIGTB2_POSIX) #ENDIF ENDIF ELIF eModel = NERO IF NOT g_sMPTunables.bENABLE_IE_NERO AND iCurrentPosixTime < g_sMPTunables.iENABLE_IE_NERO_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking NERO") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_IE_NERO = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_IE_NERO), ", iENABLE_IE_NERO_POSIX = ", g_sMPTunables.iENABLE_IE_NERO_POSIX) #ENDIF ENDIF ELIF eModel = NERO2 IF NOT g_sMPTunables.bENABLE_IE_NERO2 AND iCurrentPosixTime < g_sMPTunables.iENABLE_IE_NERO2_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking NERO2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_IE_NERO2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_IE_NERO2), ", iENABLE_IE_NERO2_POSIX = ", g_sMPTunables.iENABLE_IE_NERO2_POSIX) #ENDIF ENDIF ELIF eModel = PENETRATOR IF NOT g_sMPTunables.bENABLE_IE_PENETRATOR AND iCurrentPosixTime < g_sMPTunables.iENABLE_IE_PENETRATOR_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking PENETRATOR") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_IE_PENETRATOR = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_IE_PENETRATOR), ", iENABLE_IE_PENETRATOR_POSIX = ", g_sMPTunables.iENABLE_IE_PENETRATOR_POSIX) #ENDIF ENDIF ELIF eModel = SPECTER IF NOT g_sMPTunables.bENABLE_IE_SPECTER AND iCurrentPosixTime < g_sMPTunables.iENABLE_IE_SPECTER_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking SPECTER") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_IE_SPECTER = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_IE_SPECTER), ", iENABLE_IE_SPECTER_POSIX = ", g_sMPTunables.iENABLE_IE_SPECTER_POSIX) #ENDIF ENDIF ELIF eModel = SPECTER2 IF NOT g_sMPTunables.bENABLE_IE_SPECTER2 AND iCurrentPosixTime < g_sMPTunables.iENABLE_IE_SPECTER2_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking SPECTER2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_IE_SPECTER2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_IE_SPECTER2), ", iENABLE_IE_SPECTER2_POSIX = ", g_sMPTunables.iENABLE_IE_SPECTER2_POSIX) #ENDIF ENDIF ELIF eModel = TEMPESTA IF NOT g_sMPTunables.bENABLE_IE_TEMPESTA AND iCurrentPosixTime < g_sMPTunables.iENABLE_IE_TEMPESTA_POSIX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking TEMPESTA") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_IE_TEMPESTA = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_IE_TEMPESTA), ", iENABLE_IE_TEMPESTA_POSIX = ", g_sMPTunables.iENABLE_IE_TEMPESTA_POSIX) #ENDIF ENDIF ENDIF IF eModel = GP1 IF NOT g_sMPTunables.benableGP1 AND iCurrentPosixTime < g_sMPTunables.ilaunchposixGP1 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking GP1") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", benableGP1 = ", GET_STRING_FROM_BOOL(g_sMPTunables.benableGP1), ", ilaunchposixGP1 = ", g_sMPTunables.ilaunchposixGP1) #ENDIF ENDIF ELIF eModel = Infernus2 IF NOT g_sMPTunables.benableInfernus2 AND iCurrentPosixTime < g_sMPTunables.ilaunchposixInfernus2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking Infernus2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", benableInfernus2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.benableInfernus2), ", ilaunchposixInfernus2 = ", g_sMPTunables.ilaunchposixInfernus2) #ENDIF ENDIF ELIF eModel = Ruston IF NOT g_sMPTunables.benableRuston AND iCurrentPosixTime < g_sMPTunables.ilaunchposixRuston bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking Ruston") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", benableRuston = ", GET_STRING_FROM_BOOL(g_sMPTunables.benableRuston), ", ilaunchposixRuston = ", g_sMPTunables.ilaunchposixRuston) #ENDIF ENDIF ELIF eModel = Turismo2 IF NOT g_sMPTunables.benableTurismo2 AND iCurrentPosixTime < g_sMPTunables.ilaunchposixTurismo2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking Turismo2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", benableTurismo2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.benableTurismo2), ", ilaunchposixTurismo2 = ", g_sMPTunables.ilaunchposixTurismo2) #ENDIF ENDIF ENDIF IF eModel = XA21 IF NOT g_sMPTunables.bENABLE_XA21 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_XA21 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking XA21") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", ENABLE_XA21 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_XA21), ", iLAUNCHPOSIX_XA21 = ", g_sMPTunables.iLAUNCHPOSIX_XA21) #ENDIF ENDIF ELIF eModel = CHEETAH2 IF NOT g_sMPTunables.bENABLE_CHEETAH2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_CHEETAH2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking CHEETAH2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_CHEETAH2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_CHEETAH2), ", iLAUNCHPOSIX_CHEETAH2 = ", g_sMPTunables.iLAUNCHPOSIX_CHEETAH2) #ENDIF ENDIF ELIF eModel = TORERO IF NOT g_sMPTunables.bENABLE_TORERO AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_TORERO bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking TORERO") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_TORERO = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_TORERO), ", iLAUNCHPOSIX_TORERO = ", g_sMPTunables.iLAUNCHPOSIX_TORERO) #ENDIF ENDIF ELIF eModel = VAGNER IF NOT g_sMPTunables.bENABLE_VAGNER AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_VAGNER bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking VAGNER") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VAGNER = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VAGNER), ", iLAUNCHPOSIX_VAGNER = ", g_sMPTunables.iLAUNCHPOSIX_VAGNER) #ENDIF ENDIF ELIF eModel = ARDENT IF NOT g_sMPTunables.bENABLE_ARDENT AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_ARDENT bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking ARDENT") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_ARDENT = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_ARDENT), ", iLAUNCHPOSIX_ARDENT = ", g_sMPTunables.iLAUNCHPOSIX_ARDENT) #ENDIF ENDIF ELIF eModel = NIGHTSHARK IF NOT g_sMPTunables.bENABLE_NIGHTSHARK AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_NIGHTSHARK bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking NIGHTSHARK") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_NIGHTSHARK = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_NIGHTSHARK), ", iLAUNCHPOSIX_NIGHTSHARK = ", g_sMPTunables.iLAUNCHPOSIX_NIGHTSHARK) #ENDIF ENDIF ENDIF IF eModel = MICROLIGHT IF NOT g_sMPTunables.bENABLE_ULTRALIGHT AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_ULTRALIGHT bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking MICROLIGHT ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_ULTRALIGHT = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_ULTRALIGHT ), ", iLAUNCHPOSIX_MICROLIGHT = ", g_sMPTunables.iLAUNCHPOSIX_ULTRALIGHT ) #ENDIF ENDIF ELIF eModel = MOGUL IF NOT g_sMPTunables.bENABLE_MOGUL AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_MOGUL bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking MOGUL ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_MOGUL = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_MOGUL), ", iLAUNCHPOSIX_MOGUL = ", g_sMPTunables.iLAUNCHPOSIX_MOGUL) #ENDIF ENDIF ELIF eModel = ROGUE IF NOT g_sMPTunables.bENABLE_ROGUE AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_ROGUE bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking ROGUE ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_ROGUE = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_ROGUE), ", iLAUNCHPOSIX_ROGUE = ", g_sMPTunables.iLAUNCHPOSIX_ROGUE) #ENDIF ENDIF ELIF eModel = STARLING IF NOT g_sMPTunables.bENABLE_STARLING AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_STARLING bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking STARLING ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_STARLING = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_STARLING), ", iLAUNCHPOSIX_STARLING = ", g_sMPTunables.iLAUNCHPOSIX_STARLING) #ENDIF ENDIF ELIF eModel = SEABREEZE IF NOT g_sMPTunables.bENABLE_SEABREEZE AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_SEABREEZE bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking SEABREEZE ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_SEABREEZE = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_SEABREEZE), ", iLAUNCHPOSIX_SEABREEZE = ", g_sMPTunables.iLAUNCHPOSIX_SEABREEZE) #ENDIF ENDIF ELIF eModel = TULA IF NOT g_sMPTunables.bENABLE_TULA AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_TULA bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking TULA ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_TULA = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_TULA), ", iLAUNCHPOSIX_TULA = ", g_sMPTunables.iLAUNCHPOSIX_TULA) #ENDIF ENDIF ELIF eModel = PYRO IF NOT g_sMPTunables.bENABLE_PYRO AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_PYRO bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking PYRO ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_PYRO = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_PYRO), ", iLAUNCHPOSIX_PYRO = ", g_sMPTunables.iLAUNCHPOSIX_PYRO) #ENDIF ENDIF ELIF eModel = MOLOTOK IF NOT g_sMPTunables.bENABLE_MOLOTOK AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_MOLOTOK bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking MOLOTOK ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_MOLOTOK = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_MOLOTOK), ", iLAUNCHPOSIX_MOLOTOK = ", g_sMPTunables.iLAUNCHPOSIX_MOLOTOK) #ENDIF ENDIF ELIF eModel = NOKOTA IF NOT g_sMPTunables.bENABLE_NOKOTA AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_NOKOTA bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking NOKOTA ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_NOKOTA = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_NOKOTA), ", iLAUNCHPOSIX_NOKOTA = ", g_sMPTunables.iLAUNCHPOSIX_NOKOTA) #ENDIF ENDIF ELIF eModel = BOMBUSHKA IF NOT g_sMPTunables.bENABLE_BOMBUSHKA AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_BOMBUSHKA bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking BOMBUSHKA ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_BOMBUSHKA = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_BOMBUSHKA), ", iLAUNCHPOSIX_BOMBUSHKA = ", g_sMPTunables.iLAUNCHPOSIX_BOMBUSHKA) #ENDIF ENDIF ELIF eModel = HUNTER IF NOT g_sMPTunables.bENABLE_HUNTER AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_HUNTER bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking HUNTER ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_HUNTER = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_HUNTER), ", iLAUNCHPOSIX_HUNTER = ", g_sMPTunables.iLAUNCHPOSIX_HUNTER) #ENDIF ENDIF ELIF eModel = HAVOK IF NOT g_sMPTunables.bENABLE_HAVOK AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_HAVOK bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking HAVOK ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_HAVOK = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_HAVOK), ", iLAUNCHPOSIX_HAVOK = ", g_sMPTunables.iLAUNCHPOSIX_HAVOK) #ENDIF ENDIF ELIF eModel = HOWARD IF NOT g_sMPTunables.bENABLE_HOWARD AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_HOWARD bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking HOWARD ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_HOWARD = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_HOWARD), ", iLAUNCHPOSIX_HOWARD = ", g_sMPTunables.iLAUNCHPOSIX_HOWARD) #ENDIF ENDIF ELIF eModel = ALPHAZ1 IF NOT g_sMPTunables.bENABLE_ALPHAZ1 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_ALPHAZ1 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking ALPHAZ1 ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_ALPHAZ1 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_ALPHAZ1), ", iLAUNCHPOSIX_ALPHAZ1 = ", g_sMPTunables.iLAUNCHPOSIX_ALPHAZ1) #ENDIF ENDIF ELIF eModel = CYCLONE IF NOT g_sMPTunables.bENABLE_CYCLONE AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_CYCLONE bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking CYCLONE ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_CYCLONE = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_CYCLONE), ", iLAUNCHPOSIX_CYCLONE = ", g_sMPTunables.iLAUNCHPOSIX_CYCLONE) #ENDIF ENDIF ELIF eModel = VISIONE IF NOT g_sMPTunables.bENABLE_VISIONE AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_VISIONE bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking VISIONE ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VISIONE = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VISIONE), ", iLAUNCHPOSIX_VISIONE = ", g_sMPTunables.iLAUNCHPOSIX_VISIONE) #ENDIF ENDIF ELIF eModel = VIGILANTE IF NOT g_sMPTunables.bENABLE_VIGILANTE AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_VIGILANTE bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking VIGILANTE ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VIGILANTE = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VIGILANTE), ", iLAUNCHPOSIX_VIGILANTE = ", g_sMPTunables.iLAUNCHPOSIX_VIGILANTE) #ENDIF ENDIF ELIF eModel = RETINUE IF NOT g_sMPTunables.bENABLE_RETINUE AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_RETINUE bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking RETINUE ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_RETINUE = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_RETINUE), ", iLAUNCHPOSIX_RETINUE = ", g_sMPTunables.iLAUNCHPOSIX_RETINUE) #ENDIF ENDIF ELIF eModel = RAPIDGT3 IF NOT g_sMPTunables.bENABLE_RAPIDGT3 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_RAPIDGT3 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking RAPIDGT3 ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_RAPIDGT3 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_RAPIDGT3), ", iLAUNCHPOSIX_RAPIDGT3 = ", g_sMPTunables.iLAUNCHPOSIX_RAPIDGT3) #ENDIF ENDIF ENDIF IF eModel = DELUXO IF NOT g_sMPTunables.bENABLE_DELUXO AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_DELUXO bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking DELUXO ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_DELUXO = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_DELUXO), ", iLAUNCHPOSIX_DELUXO = ", g_sMPTunables.iLAUNCHPOSIX_DELUXO) #ENDIF ENDIF ELIF eModel = STROMBERG IF NOT g_sMPTunables.bENABLE_STROMBERG AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_STROMBERG bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking STROMBERG ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_STROMBERG = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_STROMBERG), ", iLAUNCHPOSIX_STROMBERG = ", g_sMPTunables.iLAUNCHPOSIX_STROMBERG) #ENDIF ENDIF ELIF eModel = RIOT2 IF NOT g_sMPTunables.bENABLE_RIOT2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_RIOT2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking RIOT2 ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_RIOT2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_RIOT2), ", iLAUNCHPOSIX_RIOT2 = ", g_sMPTunables.iLAUNCHPOSIX_RIOT2) #ENDIF ENDIF ELIF eModel = CHERNOBOG IF NOT g_sMPTunables.bENABLE_CHERNOBOG AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_CHERNOBOG bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking CHERNOBOG ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_CHERNOBOG = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_CHERNOBOG), ", iLAUNCHPOSIX_CHERNOBOG = ", g_sMPTunables.iLAUNCHPOSIX_CHERNOBOG) #ENDIF ENDIF ELIF eModel = KHANJALI IF NOT g_sMPTunables.bENABLE_KHANJALI AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_KHANJALI bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking KHANJALI ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_KHANJALI = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_KHANJALI), ", iLAUNCHPOSIX_KHANJALI = ", g_sMPTunables.iLAUNCHPOSIX_KHANJALI) #ENDIF ENDIF ELIF eModel = AKULA IF NOT g_sMPTunables.bENABLE_AKULA AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_AKULA bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking AKULA ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_AKULA = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_AKULA), ", iLAUNCHPOSIX_AKULA = ", g_sMPTunables.iLAUNCHPOSIX_AKULA) #ENDIF ENDIF ELIF eModel = THRUSTER IF NOT g_sMPTunables.bENABLE_THRUSTER AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_THRUSTER bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking THRUSTER ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_THRUSTER = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_THRUSTER), ", iLAUNCHPOSIX_THRUSTER = ", g_sMPTunables.iLAUNCHPOSIX_THRUSTER) #ENDIF ENDIF ELIF eModel = BARRAGE IF NOT g_sMPTunables.bENABLE_BARRAGE AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_BARRAGE bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking BARRAGE ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_BARRAGE = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_BARRAGE), ", iLAUNCHPOSIX_BARRAGE = ", g_sMPTunables.iLAUNCHPOSIX_BARRAGE) #ENDIF ENDIF ELIF eModel = VOLATOL IF NOT g_sMPTunables.bENABLE_VOLATOL AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_VOLATOL bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking VOLATOL ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VOLATOL = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VOLATOL), ", iLAUNCHPOSIX_VOLATOL = ", g_sMPTunables.iLAUNCHPOSIX_VOLATOL) #ENDIF ENDIF ELIF eModel = COMET4 IF NOT g_sMPTunables.bENABLE_COMET4 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_COMET4 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking COMET4 ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_COMET4 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_COMET4), ", iLAUNCHPOSIX_COMET4 = ", g_sMPTunables.iLAUNCHPOSIX_COMET4) #ENDIF ENDIF ELIF eModel = NEON IF NOT g_sMPTunables.bENABLE_NEON AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_NEON bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking NEON ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_NEON = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_NEON), ", iLAUNCHPOSIX_NEON = ", g_sMPTunables.iLAUNCHPOSIX_NEON) #ENDIF ENDIF ELIF eModel = STREITER IF NOT g_sMPTunables.bENABLE_STREITER AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_STREITER bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking STREITER ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_STREITER = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_STREITER), ", iLAUNCHPOSIX_STREITER = ", g_sMPTunables.iLAUNCHPOSIX_STREITER) #ENDIF ENDIF ELIF eModel = SENTINEL3 IF NOT g_sMPTunables.bENABLE_SENTINEL3 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_SENTINEL3 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking SENTINEL3 ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_SENTINEL3 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_SENTINEL3), ", iLAUNCHPOSIX_SENTINEL3 = ", g_sMPTunables.iLAUNCHPOSIX_SENTINEL3) #ENDIF ENDIF ELIF eModel = YOSEMITE IF NOT g_sMPTunables.bENABLE_YOSEMITE AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_YOSEMITE bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking YOSEMITE ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_YOSEMITE = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_YOSEMITE), ", iLAUNCHPOSIX_YOSEMITE = ", g_sMPTunables.iLAUNCHPOSIX_YOSEMITE) #ENDIF ENDIF ELIF eModel = SC1 IF NOT g_sMPTunables.bENABLE_SC1 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_SC1 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking SC1 ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_SC1 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_SC1), ", iLAUNCHPOSIX_SC1 = ", g_sMPTunables.iLAUNCHPOSIX_SC1) #ENDIF ENDIF ELIF eModel = AUTARCH IF NOT g_sMPTunables.bENABLE_AUTARCH AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_AUTARCH bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking AUTARCH ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_AUTARCH = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_AUTARCH), ", iLAUNCHPOSIX_AUTARCH = ", g_sMPTunables.iLAUNCHPOSIX_AUTARCH) #ENDIF ENDIF ELIF eModel = GT500 IF NOT g_sMPTunables.bENABLE_GT500 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_GT500 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking GT500 ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_GT500 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_GT500), ", iLAUNCHPOSIX_GT500 = ", g_sMPTunables.iLAUNCHPOSIX_GT500) #ENDIF ENDIF ELIF eModel = HUSTLER IF NOT g_sMPTunables.bENABLE_HUSTLER AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_HUSTLER bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking HUSTLER ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_HUSTLER = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_HUSTLER), ", iLAUNCHPOSIX_HUSTLER = ", g_sMPTunables.iLAUNCHPOSIX_HUSTLER) #ENDIF ENDIF ELIF eModel = REVOLTER IF NOT g_sMPTunables.bENABLE_REVOLTER AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_REVOLTER bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking REVOLTER ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_REVOLTER = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_REVOLTER), ", iLAUNCHPOSIX_REVOLTER = ", g_sMPTunables.iLAUNCHPOSIX_REVOLTER) #ENDIF ENDIF ELIF eModel = PARIAH IF NOT g_sMPTunables.bENABLE_PARIAH AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_PARIAH bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking PARIAH ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_PARIAH = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_PARIAH), ", iLAUNCHPOSIX_PARIAH = ", g_sMPTunables.iLAUNCHPOSIX_PARIAH) #ENDIF ENDIF ELIF eModel = RAIDEN IF NOT g_sMPTunables.bENABLE_RAIDEN AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_RAIDEN bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking RAIDEN ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_RAIDEN = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_RAIDEN), ", iLAUNCHPOSIX_RAIDEN = ", g_sMPTunables.iLAUNCHPOSIX_RAIDEN) #ENDIF ENDIF ELIF eModel = SAVESTRA IF NOT g_sMPTunables.bENABLE_SAVESTRA AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_SAVESTRA bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking SAVESTRA ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_SAVESTRA = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_SAVESTRA), ", iLAUNCHPOSIX_SAVESTRA = ", g_sMPTunables.iLAUNCHPOSIX_SAVESTRA) #ENDIF ENDIF ELIF eModel = RIATA IF NOT g_sMPTunables.bENABLE_RIATA AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_RIATA bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking RIATA ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_RIATA = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_RIATA), ", iLAUNCHPOSIX_RIATA = ", g_sMPTunables.iLAUNCHPOSIX_RIATA) #ENDIF ENDIF ELIF eModel = HERMES IF NOT g_sMPTunables.bENABLE_HERMES AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_HERMES bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking HERMES ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_HERMES = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_HERMES), ", iLAUNCHPOSIX_HERMES = ", g_sMPTunables.iLAUNCHPOSIX_HERMES) #ENDIF ENDIF ELIF eModel = COMET5 IF NOT g_sMPTunables.bENABLE_COMET5 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_COMET5 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking COMET5 ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_COMET5 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_COMET5), ", iLAUNCHPOSIX_COMET5 = ", g_sMPTunables.iLAUNCHPOSIX_COMET5) #ENDIF ENDIF ELIF eModel = Z190 IF NOT g_sMPTunables.bENABLE_Z190 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_Z190 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking Z190 ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_Z190 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_Z190), ", iLAUNCHPOSIX_Z190 = ", g_sMPTunables.iLAUNCHPOSIX_Z190) #ENDIF ENDIF ELIF eModel = VISERIS IF NOT g_sMPTunables.bENABLE_VISERIS AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_VISERIS bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking VISERIS ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VISERIS = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VISERIS), ", iLAUNCHPOSIX_VISERIS = ", g_sMPTunables.iLAUNCHPOSIX_VISERIS) #ENDIF ENDIF ELIF eModel = KAMACHO IF NOT g_sMPTunables.bENABLE_KAMACHO AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_KAMACHO bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking KAMACHO ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_KAMACHO = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_KAMACHO), ", iLAUNCHPOSIX_KAMACHO = ", g_sMPTunables.iLAUNCHPOSIX_KAMACHO) #ENDIF ENDIF ENDIF IF eModel = GB200 IF NOT g_sMPTunables.bENABLE_GB200 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_GB200 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking GB200 ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_GB200 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_GB200), ", iLAUNCHPOSIX_GB200 = ", g_sMPTunables.iLAUNCHPOSIX_GB200) #ENDIF ENDIF ELIF eModel = FAGALOA IF NOT g_sMPTunables.bENABLE_FAGALOA AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_FAGALOA bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking FAGALOA ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_FAGALOA = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_FAGALOA), ", iLAUNCHPOSIX_FAGALOA = ", g_sMPTunables.iLAUNCHPOSIX_FAGALOA) #ENDIF ENDIF ELIF eModel = ELLIE IF NOT g_sMPTunables.bENABLE_ELLIE AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_ELLIE bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking ELLIE ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_ELLIE = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_ELLIE), ", iLAUNCHPOSIX_ELLIE = ", g_sMPTunables.iLAUNCHPOSIX_ELLIE) #ENDIF ENDIF ELIF eModel = ISSI3 IF NOT g_sMPTunables.bENABLE_ISSI3 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_ISSI3 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking ISSI3 ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_ISSI3 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_ISSI3), ", iLAUNCHPOSIX_ISSI3 = ", g_sMPTunables.iLAUNCHPOSIX_ISSI3) #ENDIF ENDIF ELIF eModel = MICHELLI IF NOT g_sMPTunables.bENABLE_MICHELLI AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_MICHELLI bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking MICHELLI ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_MICHELLI = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_MICHELLI), ", iLAUNCHPOSIX_MICHELLI = ", g_sMPTunables.iLAUNCHPOSIX_MICHELLI) #ENDIF ENDIF ELIF eModel = FLASHGT IF NOT g_sMPTunables.bENABLE_FLASHGT AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_FLASHGT bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking FLASHGT ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_FLASHGT = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_FLASHGT), ", iLAUNCHPOSIX_FLASHGT = ", g_sMPTunables.iLAUNCHPOSIX_FLASHGT) #ENDIF ENDIF ELIF eModel = HOTRING IF NOT g_sMPTunables.bENABLE_HOTRING AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_HOTRING bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking HOTRING ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_HOTRING = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_HOTRING), ", iLAUNCHPOSIX_HOTRING = ", g_sMPTunables.iLAUNCHPOSIX_HOTRING) #ENDIF ENDIF ELIF eModel = TEZERACT IF NOT g_sMPTunables.bENABLE_TEZERACT AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_TEZERACT bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking TEZERACT ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_TEZERACT = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_TEZERACT), ", iLAUNCHPOSIX_TEZERACT = ", g_sMPTunables.iLAUNCHPOSIX_TEZERACT) #ENDIF ENDIF ELIF eModel = TYRANT IF NOT g_sMPTunables.bENABLE_TYRANT AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_TYRANT bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking TYRANT ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_TYRANT = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_TYRANT), ", iLAUNCHPOSIX_TYRANT = ", g_sMPTunables.iLAUNCHPOSIX_TYRANT) #ENDIF ENDIF ELIF eModel = DOMINATOR3 IF NOT g_sMPTunables.bENABLE_DOMINATOR3 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_DOMINATOR3 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking DOMINATOR3 ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_DOMINATOR3 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_DOMINATOR3), ", iLAUNCHPOSIX_DOMINATOR3 = ", g_sMPTunables.iLAUNCHPOSIX_DOMINATOR3) #ENDIF ENDIF ELIF eModel = TAIPAN IF NOT g_sMPTunables.bENABLE_TAIPAN AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_TAIPAN bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking TAIPAN ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_TAIPAN = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_TAIPAN), ", iLAUNCHPOSIX_TAIPAN = ", g_sMPTunables.iLAUNCHPOSIX_TAIPAN) #ENDIF ENDIF ELIF eModel = ENTITY2 IF NOT g_sMPTunables.bENABLE_ENTITY2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_ENTITY2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking ENTITY2 ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_ENTITY2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_ENTITY2), ", iLAUNCHPOSIX_ENTITY2 = ", g_sMPTunables.iLAUNCHPOSIX_ENTITY2) #ENDIF ENDIF ELIF eModel = JESTER3 IF NOT g_sMPTunables.bENABLE_JESTER3 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_JESTER3 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking JESTER3 ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_JESTER3 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_JESTER3), ", iLAUNCHPOSIX_JESTER3 = ", g_sMPTunables.iLAUNCHPOSIX_JESTER3) #ENDIF ENDIF ELIF eModel = CHEBUREK IF NOT g_sMPTunables.bENABLE_CHEBUREK AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_CHEBUREK bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking CHEBUREK ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_CHEBUREK = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_CHEBUREK), ", iLAUNCHPOSIX_CHEBUREK = ", g_sMPTunables.iLAUNCHPOSIX_CHEBUREK) #ENDIF ENDIF ELIF eModel = CARACARA IF NOT g_sMPTunables.bENABLE_CARACARA AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_CARACARA bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking CARACARA ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_CARACARA = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_CARACARA), ", iLAUNCHPOSIX_CARACARA = ", g_sMPTunables.iLAUNCHPOSIX_CARACARA) #ENDIF ENDIF ELIF eModel = SEASPARROW IF NOT g_sMPTunables.bENABLE_SEASPARROW AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_SEASPARROW bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking SEASPARROW ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_SEASPARROW = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_SEASPARROW), ", iLAUNCHPOSIX_SEASPARROW = ", g_sMPTunables.iLAUNCHPOSIX_SEASPARROW) #ENDIF ENDIF ENDIF IF eModel = TERBYTE IF NOT g_sMPTunables.bENABLE_TERBYTE AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_TERBYTE bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking TERBYTE ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_TERBYTE = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_TERBYTE), ", iLAUNCHPOSIX_TERBYTE = ", g_sMPTunables.iLAUNCHPOSIX_TERBYTE) #ENDIF ENDIF ELIF eModel = PBUS2 IF NOT g_sMPTunables.bENABLE_PBUS2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_PBUS2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking PBUS2 ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_PBUS2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_PBUS2), ", iLAUNCHPOSIX_PBUS2 = ", g_sMPTunables.iLAUNCHPOSIX_PBUS2) #ENDIF ENDIF ELIF eModel = MULE4 IF NOT g_sMPTunables.bENABLE_MULE4 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_MULE4 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking MULE4 ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_MULE4 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_MULE4), ", iLAUNCHPOSIX_MULE4 = ", g_sMPTunables.iLAUNCHPOSIX_MULE4) #ENDIF ENDIF ELIF eModel = POUNDER2 IF NOT g_sMPTunables.bENABLE_POUNDER2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_POUNDER2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking POUNDER2 ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_POUNDER2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_POUNDER2), ", iLAUNCHPOSIX_POUNDER2 = ", g_sMPTunables.iLAUNCHPOSIX_POUNDER2) #ENDIF ENDIF ELIF eModel = SWINGER IF NOT g_sMPTunables.bENABLE_SWINGER AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_SWINGER bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking SWINGER ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_SWINGER = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_SWINGER), ", iLAUNCHPOSIX_SWINGER = ", g_sMPTunables.iLAUNCHPOSIX_SWINGER) #ENDIF ENDIF ELIF eModel = MENACER IF NOT g_sMPTunables.bENABLE_MENACER AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_MENACER bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking MENACER ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_MENACER = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_MENACER), ", iLAUNCHPOSIX_MENACER = ", g_sMPTunables.iLAUNCHPOSIX_MENACER) #ENDIF ENDIF ELIF eModel = SCRAMJET IF NOT g_sMPTunables.bENABLE_SCRAMJET AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_SCRAMJET bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking SCRAMJET ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_SCRAMJET = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_SCRAMJET), ", iLAUNCHPOSIX_SCRAMJET = ", g_sMPTunables.iLAUNCHPOSIX_SCRAMJET) #ENDIF ENDIF ELIF eModel = STRIKEFORCE IF NOT g_sMPTunables.bENABLE_STRIKEFORCE AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_STRIKEFORCE bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking STRIKEFORCE ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_STRIKEFORCE = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_STRIKEFORCE), ", iLAUNCHPOSIX_STRIKEFORCE = ", g_sMPTunables.iLAUNCHPOSIX_STRIKEFORCE) #ENDIF ENDIF ELIF eModel = OPPRESSOR2 IF NOT g_sMPTunables.bENABLE_OPPRESSOR2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_OPPRESSOR2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking OPPRESSOR2 ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_OPPRESSOR2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_OPPRESSOR2), ", iLAUNCHPOSIX_OPPRESSOR2 = ", g_sMPTunables.iLAUNCHPOSIX_OPPRESSOR2) #ENDIF ENDIF ELIF eModel = PATRIOT2 IF NOT g_sMPTunables.bENABLE_PATRIOT2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_PATRIOT2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking PATRIOT2 ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_PATRIOT2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_PATRIOT2), ", iLAUNCHPOSIX_PATRIOT2 = ", g_sMPTunables.iLAUNCHPOSIX_PATRIOT2) #ENDIF ENDIF ELIF eModel = STAFFORD IF NOT g_sMPTunables.bENABLE_STAFFORD AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_STAFFORD bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking STAFFORD ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_STAFFORD = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_STAFFORD), ", iLAUNCHPOSIX_STAFFORD = ", g_sMPTunables.iLAUNCHPOSIX_STAFFORD) #ENDIF ENDIF ELIF eModel = FREECRAWLER IF NOT g_sMPTunables.bENABLE_FREECRAWLER AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_FREECRAWLER bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking FREECRAWLER ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_FREECRAWLER = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_FREECRAWLER), ", iLAUNCHPOSIX_FREECRAWLER = ", g_sMPTunables.iLAUNCHPOSIX_FREECRAWLER) #ENDIF ENDIF ELIF eModel = BLIMP3 IF NOT g_sMPTunables.bENABLE_BLIMP3 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_BLIMP3 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking BLIMP3 ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_BLIMP3 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_BLIMP3), ", iLAUNCHPOSIX_BLIMP3 = ", g_sMPTunables.iLAUNCHPOSIX_BLIMP3) #ENDIF ENDIF ENDIF IF eModel = MONSTER3 // IF NOT g_sMPTunables.bENABLE_MONSTER3 // AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_MONSTER3 // bResult = FALSE // #IF IS_DEBUG_BUILD // CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking MONSTER3 ") // CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_MONSTER3 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_MONSTER3), ", iLAUNCHPOSIX_MONSTER3 = ", g_sMPTunables.iLAUNCHPOSIX_MONSTER3) // #ENDIF // ENDIF ELIF eModel = CERBERUS // IF NOT g_sMPTunables.bENABLE_CERBERUS // AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_CERBERUS // bResult = FALSE // #IF IS_DEBUG_BUILD // CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking CERBERUS ") // CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_CERBERUS = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_CERBERUS), ", iLAUNCHPOSIX_CERBERUS = ", g_sMPTunables.iLAUNCHPOSIX_CERBERUS) // #ENDIF // ENDIF ELIF eModel = CERBERUS2 // IF NOT g_sMPTunables.bENABLE_CERBERUS2 // AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_CERBERUS2 // bResult = FALSE // #IF IS_DEBUG_BUILD // CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking CERBERUS2 ") // CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_CERBERUS2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_CERBERUS2), ", iLAUNCHPOSIX_CERBERUS2 = ", g_sMPTunables.iLAUNCHPOSIX_CERBERUS2) // #ENDIF // ENDIF ELIF eModel = CERBERUS3 // IF NOT g_sMPTunables.bENABLE_CERBERUS3 // AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_CERBERUS3 // bResult = FALSE // #IF IS_DEBUG_BUILD // CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking CERBERUS3 ") // CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_CERBERUS3 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_CERBERUS3), ", iLAUNCHPOSIX_CERBERUS3 = ", g_sMPTunables.iLAUNCHPOSIX_CERBERUS3) // #ENDIF // ENDIF ELIF eModel = BRUTUS // IF NOT g_sMPTunables.bENABLE_BRUTUS // AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_BRUTUS // bResult = FALSE // #IF IS_DEBUG_BUILD // CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking BRUTUS ") // CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_BRUTUS = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_BRUTUS), ", iLAUNCHPOSIX_BRUTUS = ", g_sMPTunables.iLAUNCHPOSIX_BRUTUS) // #ENDIF // ENDIF ELIF eModel = BRUTUS2 // IF NOT g_sMPTunables.bENABLE_BRUTUS2 // AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_BRUTUS2 // bResult = FALSE // #IF IS_DEBUG_BUILD // CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking BRUTUS2 ") // CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_BRUTUS2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_BRUTUS2), ", iLAUNCHPOSIX_BRUTUS2 = ", g_sMPTunables.iLAUNCHPOSIX_BRUTUS2) // #ENDIF // ENDIF ELIF eModel = BRUTUS3 // IF NOT g_sMPTunables.bENABLE_BRUTUS3 // AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_BRUTUS3 // bResult = FALSE // #IF IS_DEBUG_BUILD // CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking BRUTUS3 ") // CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_BRUTUS3 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_BRUTUS3), ", iLAUNCHPOSIX_BRUTUS3 = ", g_sMPTunables.iLAUNCHPOSIX_BRUTUS3) // #ENDIF // ENDIF ELIF eModel = SCARAB // IF NOT g_sMPTunables.bENABLE_SCARAB // AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_SCARAB // bResult = FALSE // #IF IS_DEBUG_BUILD // CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking SCARAB ") // CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_SCARAB = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_SCARAB), ", iLAUNCHPOSIX_SCARAB = ", g_sMPTunables.iLAUNCHPOSIX_SCARAB) // #ENDIF // ENDIF ELIF eModel = SCARAB2 // IF NOT g_sMPTunables.bENABLE_SCARAB2 // AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_SCARAB2 // bResult = FALSE // #IF IS_DEBUG_BUILD // CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking SCARAB2 ") // CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_SCARAB2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_SCARAB2), ", iLAUNCHPOSIX_SCARAB2 = ", g_sMPTunables.iLAUNCHPOSIX_SCARAB2) // #ENDIF // ENDIF ELIF eModel = SCARAB3 // IF NOT g_sMPTunables.bENABLE_SCARAB3 // AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_SCARAB3 // bResult = FALSE // #IF IS_DEBUG_BUILD // CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking SCARAB3 ") // CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_SCARAB3 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_SCARAB3), ", iLAUNCHPOSIX_SCARAB3 = ", g_sMPTunables.iLAUNCHPOSIX_SCARAB3) // #ENDIF // ENDIF ELIF eModel = IMPERATOR // IF NOT g_sMPTunables.bENABLE_IMPERATOR // AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_IMPERATOR // bResult = FALSE // #IF IS_DEBUG_BUILD // CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking IMPERATOR ") // CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_IMPERATOR = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_IMPERATOR), ", iLAUNCHPOSIX_IMPERATOR = ", g_sMPTunables.iLAUNCHPOSIX_IMPERATOR) // #ENDIF // ENDIF ELIF eModel = IMPERATOR2 // IF NOT g_sMPTunables.bENABLE_IMPERATOR2 // AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_IMPERATOR2 // bResult = FALSE // #IF IS_DEBUG_BUILD // CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking IMPERATOR2 ") // CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_IMPERATOR2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_IMPERATOR2), ", iLAUNCHPOSIX_IMPERATOR2 = ", g_sMPTunables.iLAUNCHPOSIX_IMPERATOR2) // #ENDIF // ENDIF ELIF eModel = IMPERATOR3 // IF NOT g_sMPTunables.bENABLE_IMPERATOR3 // AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_IMPERATOR3 // bResult = FALSE // #IF IS_DEBUG_BUILD // CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking IMPERATOR3 ") // CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_IMPERATOR3 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_IMPERATOR3), ", iLAUNCHPOSIX_IMPERATOR3 = ", g_sMPTunables.iLAUNCHPOSIX_IMPERATOR3) // #ENDIF // ENDIF ELIF eModel = ZR380 // IF NOT g_sMPTunables.bENABLE_ZR380 // AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_ZR380 // bResult = FALSE // #IF IS_DEBUG_BUILD // CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking ZR380 ") // CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_ZR380 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_ZR380), ", iLAUNCHPOSIX_ZR380 = ", g_sMPTunables.iLAUNCHPOSIX_ZR380) // #ENDIF // ENDIF ELIF eModel = ZR3802 // IF NOT g_sMPTunables.bENABLE_ZR3802 // AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_ZR3802 // bResult = FALSE // #IF IS_DEBUG_BUILD // CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking ZR3802 ") // CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_ZR3802 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_ZR3802), ", iLAUNCHPOSIX_ZR3802 = ", g_sMPTunables.iLAUNCHPOSIX_ZR3802) // #ENDIF // ENDIF ELIF eModel = ZR3803 // IF NOT g_sMPTunables.bENABLE_ZR3803 // AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_ZR3803 // bResult = FALSE // #IF IS_DEBUG_BUILD // CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking ZR3803 ") // CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_ZR3803 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_ZR3803), ", iLAUNCHPOSIX_ZR3803 = ", g_sMPTunables.iLAUNCHPOSIX_ZR3803) // #ENDIF // ENDIF ELIF eModel = IMPALER // IF NOT g_sMPTunables.bENABLE_IMPALER // AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_IMPALER // bResult = FALSE // #IF IS_DEBUG_BUILD // CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking IMPALER ") // CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_IMPALER = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_IMPALER), ", iLAUNCHPOSIX_IMPALER = ", g_sMPTunables.iLAUNCHPOSIX_IMPALER) // #ENDIF // ENDIF ELIF eModel = DEVESTE IF NOT g_sMPTunables.bENABLE_VEHICLE_DEVESTE AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_DEVESTE bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking DEVESTE ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_DEVESTE = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_DEVESTE), ", iLAUNCHPOSIX_DEVESTE = ", g_sMPTunables.iLAUNCHPOSIX_DEVESTE) #ENDIF ENDIF ELIF eModel = TOROS IF NOT g_sMPTunables.bENABLE_VEHICLE_TOROS AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_TOROS bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking TOROS ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_TOROS = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_TOROS), ", iLAUNCHPOSIX_TOROS = ", g_sMPTunables.iLAUNCHPOSIX_TOROS) #ENDIF ENDIF ELIF eModel = CLIQUE IF NOT g_sMPTunables.bENABLE_VEHICLE_CLIQUE AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_CLIQUE bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking CLIQUE ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_CLIQUE = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_CLIQUE), ", iLAUNCHPOSIX_CLIQUE = ", g_sMPTunables.iLAUNCHPOSIX_CLIQUE) #ENDIF ENDIF ELIF eModel = ITALIGTO IF NOT g_sMPTunables.bENABLE_VEHICLE_ITALIGTO AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_ITALIGTO bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking ITALIGTO ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_ITALIGTO = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_ITALIGTO), ", iLAUNCHPOSIX_ITALIGTO = ", g_sMPTunables.iLAUNCHPOSIX_ITALIGTO) #ENDIF ENDIF ELIF eModel = DEVIANT IF NOT g_sMPTunables.bENABLE_VEHICLE_DEVIANT AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_DEVIANT bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking DEVIANT ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_DEVIANT = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_DEVIANT), ", iLAUNCHPOSIX_DEVIANT = ", g_sMPTunables.iLAUNCHPOSIX_DEVIANT) #ENDIF ENDIF ELIF eModel = VAMOS IF NOT g_sMPTunables.bENABLE_VEHICLE_VAMOS AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_VAMOS bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking VAMOS ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_VAMOS = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_VAMOS), ", iLAUNCHPOSIX_VAMOS = ", g_sMPTunables.iLAUNCHPOSIX_VAMOS) #ENDIF ENDIF ELIF eModel = TULIP IF NOT g_sMPTunables.bENABLE_VEHICLE_TULIP AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_TULIP bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking TULIP ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_TULIP = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_TULIP), ", iLAUNCHPOSIX_TULIP = ", g_sMPTunables.iLAUNCHPOSIX_TULIP) #ENDIF ENDIF ELIF eModel = SCHLAGEN IF NOT g_sMPTunables.bENABLE_VEHICLE_SCHLAGEN AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_SCHLAGEN bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking SCHLAGEN ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_SCHLAGEN = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_SCHLAGEN), ", iLAUNCHPOSIX_SCHLAGEN = ", g_sMPTunables.iLAUNCHPOSIX_SCHLAGEN) #ENDIF ENDIF ELIF eModel = RCBANDITO IF NOT g_sMPTunables.bENABLE_VEHICLE_BANDITO AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_BANDITO bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking RCBANDITO ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_BANDITO = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_BANDITO), ", iLAUNCHPOSIX_BANDITO = ", g_sMPTunables.iLAUNCHPOSIX_BANDITO) #ENDIF ENDIF ELIF eModel = THRAX IF NOT g_sMPTunables.bENABLE_VEHICLE_THRAX AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_THRAX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking THRAX ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_THRAX = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_THRAX), ", iLAUNCHPOSIX_THRAX = ", g_sMPTunables.iLAUNCHPOSIX_THRAX) #ENDIF ENDIF ELIF eModel = DRAFTER IF NOT g_sMPTunables.bENABLE_VEHICLE_DRAFTER AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_DRAFTER bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking DRAFTER ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_DRAFTER = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_DRAFTER), ", iLAUNCHPOSIX_DRAFTER = ", g_sMPTunables.iLAUNCHPOSIX_DRAFTER) #ENDIF ENDIF ELIF eModel = LOCUST IF NOT g_sMPTunables.bENABLE_VEHICLE_LOCUST AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_LOCUST bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking LOCUST ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_LOCUST = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_LOCUST), ", iLAUNCHPOSIX_LOCUST = ", g_sMPTunables.iLAUNCHPOSIX_LOCUST) #ENDIF ENDIF ELIF eModel = NOVAK IF NOT g_sMPTunables.bENABLE_VEHICLE_NOVAK AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_NOVAK bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking NOVAK ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_NOVAK = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_NOVAK), ", iLAUNCHPOSIX_NOVAK = ", g_sMPTunables.iLAUNCHPOSIX_NOVAK) #ENDIF ENDIF ELIF eModel = ZORRUSSO IF NOT g_sMPTunables.bENABLE_VEHICLE_ZORRUSSO AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_ZORRUSSO bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking ZORRUSSO ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_ZORRUSSO = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_ZORRUSSO), ", iLAUNCHPOSIX_ZORRUSSO = ", g_sMPTunables.iLAUNCHPOSIX_ZORRUSSO) #ENDIF ENDIF ELIF eModel = GAUNTLET3 IF NOT g_sMPTunables.bENABLE_VEHICLE_GAUNTLET3 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_GAUNTLET3 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking GAUNTLET3 ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_GAUNTLET3 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_GAUNTLET3), ", iLAUNCHPOSIX_GAUNTLET3 = ", g_sMPTunables.iLAUNCHPOSIX_GAUNTLET3) #ENDIF ENDIF ELIF eModel = ISSI7 IF NOT g_sMPTunables.bENABLE_VEHICLE_ISSI7 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_ISSI7 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking ISSI7 ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_ISSI7 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_ISSI7), ", iLAUNCHPOSIX_ISSI7 = ", g_sMPTunables.iLAUNCHPOSIX_ISSI7) #ENDIF ENDIF ELIF eModel = ZION3 IF NOT g_sMPTunables.bENABLE_VEHICLE_ZION3 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_ZION3 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking ZION3 ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_ZION3 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_ZION3), ", iLAUNCHPOSIX_ZION3 = ", g_sMPTunables.iLAUNCHPOSIX_ZION3) #ENDIF ENDIF ELIF eModel = NEBULA IF NOT g_sMPTunables.bENABLE_VEHICLE_NEBULA AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_NEBULA bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking NEBULA ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_NEBULA = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_NEBULA), ", iLAUNCHPOSIX_NEBULA = ", g_sMPTunables.iLAUNCHPOSIX_NEBULA) #ENDIF ENDIF ELIF eModel = HELLION IF NOT g_sMPTunables.bENABLE_VEHICLE_HELLION AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_HELLION bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking HELLION ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_HELLION = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_HELLION), ", iLAUNCHPOSIX_HELLION = ", g_sMPTunables.iLAUNCHPOSIX_HELLION) #ENDIF ENDIF ELIF eModel = DYNASTY IF NOT g_sMPTunables.bENABLE_VEHICLE_DYNASTY AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_DYNASTY bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking DYNASTY ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_DYNASTY = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_DYNASTY), ", iLAUNCHPOSIX_DYNASTY = ", g_sMPTunables.iLAUNCHPOSIX_DYNASTY) #ENDIF ENDIF ELIF eModel = RROCKET IF NOT g_sMPTunables.bENABLE_VEHICLE_RROCKET AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_RROCKET bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking RROCKET ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_RROCKET = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_RROCKET), ", iLAUNCHPOSIX_RROCKET = ", g_sMPTunables.iLAUNCHPOSIX_RROCKET) #ENDIF ENDIF ELIF eModel = PEYOTE2 IF NOT g_sMPTunables.bENABLE_VEHICLE_PEYOTE2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_PEYOTE2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking PEYOTE2 ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_PEYOTE2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_PEYOTE2), ", iLAUNCHPOSIX_PEYOTE2 = ", g_sMPTunables.iLAUNCHPOSIX_PEYOTE2) #ENDIF ENDIF ELIF eModel = GAUNTLET4 IF NOT g_sMPTunables.bENABLE_VEHICLE_GAUNTLET4 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_GAUNTLET4 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking GAUNTLET4 ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_GAUNTLET4 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_GAUNTLET4), ", iLAUNCHPOSIX_GAUNTLET4 = ", g_sMPTunables.iLAUNCHPOSIX_GAUNTLET4) #ENDIF ENDIF ELIF eModel = CARACARA2 IF NOT g_sMPTunables.bENABLE_VEHICLE_CARACARA2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_CARACARA2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking CARACARA2 ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_CARACARA2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_CARACARA2), ", iLAUNCHPOSIX_CARACARA2 = ", g_sMPTunables.iLAUNCHPOSIX_CARACARA2) #ENDIF ENDIF ELIF eModel = JUGULAR IF NOT g_sMPTunables.bENABLE_VEHICLE_JUGULAR AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_JUGULAR bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking JUGULAR ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_JUGULAR = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_JUGULAR), ", iLAUNCHPOSIX_JUGULAR = ", g_sMPTunables.iLAUNCHPOSIX_JUGULAR) #ENDIF ENDIF ELIF eModel = S80 IF NOT g_sMPTunables.bENABLE_VEHICLE_S80 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_S80 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking S80 ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_S80 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_S80), ", iLAUNCHPOSIX_S80 = ", g_sMPTunables.iLAUNCHPOSIX_S80) #ENDIF ENDIF ELIF eModel = KRIEGER IF NOT g_sMPTunables.bENABLE_VEHICLE_KRIEGER AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_KRIEGER bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking KRIEGER ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_KRIEGER = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_KRIEGER), ", iLAUNCHPOSIX_KRIEGER = ", g_sMPTunables.iLAUNCHPOSIX_KRIEGER) #ENDIF ENDIF ELIF eModel = EMERUS IF NOT g_sMPTunables.bENABLE_VEHICLE_EMERUS AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_EMERUS bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking EMERUS ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_EMERUS = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_EMERUS), ", iLAUNCHPOSIX_EMERUS = ", g_sMPTunables.iLAUNCHPOSIX_EMERUS) #ENDIF ENDIF ELIF eModel = NEO IF NOT g_sMPTunables.bENABLE_VEHICLE_NEO AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_NEO bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking NEO ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_NEO = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_NEO), ", iLAUNCHPOSIX_NEO = ", g_sMPTunables.iLAUNCHPOSIX_NEO) #ENDIF ENDIF ELIF eModel = PARAGON IF NOT g_sMPTunables.bENABLE_VEHICLE_PARAGON AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_PARAGON bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking PARAGON ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_PARAGON = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_PARAGON), ", iLAUNCHPOSIX_PARAGON = ", g_sMPTunables.iLAUNCHPOSIX_PARAGON) #ENDIF ENDIF #IF FEATURE_CASINO_HEIST ELIF eModel = ASBO IF NOT g_sMPTunables.bENABLE_VEHICLE_ASBO AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_ASBO bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking ASBO") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_ASBO = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_ASBO), ", iLAUNCHPOSIX_ASBO = ", g_sMPTunables.iLAUNCHPOSIX_ASBO) #ENDIF ENDIF ELIF eModel = KANJO IF NOT g_sMPTunables.bENABLE_VEHICLE_KANJO AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_KANJO bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking KANJO") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_KANJO = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_KANJO), ", iLAUNCHPOSIX_KANJO = ", g_sMPTunables.iLAUNCHPOSIX_KANJO) #ENDIF ENDIF ELIF eModel = EVERON IF NOT g_sMPTunables.bENABLE_VEHICLE_EVERON AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_EVERON bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking EVERON") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_EVERON = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_EVERON), ", iLAUNCHPOSIX_EVERON = ", g_sMPTunables.iLAUNCHPOSIX_EVERON) #ENDIF ENDIF ELIF eModel = RETINUE2 IF NOT g_sMPTunables.bENABLE_VEHICLE_RETINUE2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_RETINUE2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking RETINUE2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_RETINUE2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_RETINUE2), ", iLAUNCHPOSIX_RETINUE2 = ", g_sMPTunables.iLAUNCHPOSIX_RETINUE2) #ENDIF ENDIF ELIF eModel = YOSEMITE2 IF NOT g_sMPTunables.bENABLE_VEHICLE_YOSEMITE2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_YOSEMITE2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking YOSEMITE2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_YOSEMITE2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_YOSEMITE2), ", iLAUNCHPOSIX_YOSEMITE2 = ", g_sMPTunables.iLAUNCHPOSIX_YOSEMITE2) #ENDIF ENDIF ELIF eModel = SUGOI IF NOT g_sMPTunables.bENABLE_VEHICLE_SUGOI AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_SUGOI bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking SUGOI") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_SUGOI = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_SUGOI), ", iLAUNCHPOSIX_SUGOI = ", g_sMPTunables.iLAUNCHPOSIX_SUGOI) #ENDIF ENDIF ELIF eModel = SULTAN2 IF NOT g_sMPTunables.bENABLE_VEHICLE_SULTAN2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_SULTAN2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking SULTAN2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_SULTAN2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_SULTAN2), ", iLAUNCHPOSIX_SULTAN2 = ", g_sMPTunables.iLAUNCHPOSIX_SULTAN2) #ENDIF ENDIF ELIF eModel = OUTLAW IF NOT g_sMPTunables.bENABLE_VEHICLE_OUTLAW AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_OUTLAW bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking OUTLAW") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_OUTLAW = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_OUTLAW), ", iLAUNCHPOSIX_OUTLAW = ", g_sMPTunables.iLAUNCHPOSIX_OUTLAW) #ENDIF ENDIF ELIF eModel = VAGRANT IF NOT g_sMPTunables.bENABLE_VEHICLE_VAGRANT AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_VAGRANT bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking VAGRANT") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_VAGRANT = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_VAGRANT), ", iLAUNCHPOSIX_VAGRANT = ", g_sMPTunables.iLAUNCHPOSIX_VAGRANT) #ENDIF ENDIF ELIF eModel = KOMODA IF NOT g_sMPTunables.bENABLE_VEHICLE_KOMODA AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_KOMODA bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking KOMODA") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_KOMODA = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_KOMODA), ", iLAUNCHPOSIX_KOMODA = ", g_sMPTunables.iLAUNCHPOSIX_KOMODA) #ENDIF ENDIF ELIF eModel = STRYDER IF NOT g_sMPTunables.bENABLE_VEHICLE_STRYDER AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_STRYDER bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking STRYDER") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_STRYDER = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_STRYDER), ", iLAUNCHPOSIX_STRYDER = ", g_sMPTunables.iLAUNCHPOSIX_STRYDER) #ENDIF ENDIF ELIF eModel = FURIA IF NOT g_sMPTunables.bENABLE_VEHICLE_FURIA AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_FURIA bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking FURIA") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_FURIA = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_FURIA), ", iLAUNCHPOSIX_FURIA = ", g_sMPTunables.iLAUNCHPOSIX_FURIA) #ENDIF ENDIF ELIF eModel = ZHABA IF NOT g_sMPTunables.bENABLE_VEHICLE_ZHABA AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_ZHABA bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking ZHABA") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_ZHABA = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_ZHABA), ", iLAUNCHPOSIX_ZHABA = ", g_sMPTunables.iLAUNCHPOSIX_ZHABA) #ENDIF ENDIF ELIF eModel = JB7002 IF NOT g_sMPTunables.bENABLE_VEHICLE_JB7002 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_JB7002 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking JB7002") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_JB7002 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_JB7002), ", iLAUNCHPOSIX_JB7002 = ", g_sMPTunables.iLAUNCHPOSIX_JB7002) #ENDIF ENDIF ELIF eModel = FIRETRUK IF NOT g_sMPTunables.bENABLE_VEHICLE_FIRETRUCK AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_FIRETRUCK bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking FIRETRUK") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_FIRETRUCK = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_FIRETRUCK), ", iLAUNCHPOSIX_FIRETRUCK = ", g_sMPTunables.iLAUNCHPOSIX_FIRETRUCK) #ENDIF ENDIF ELIF eModel = BURRITO2 IF NOT g_sMPTunables.bENABLE_VEHICLE_BURRITO2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_BURRITO2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking BURRITO2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_BURRITO2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_BURRITO2), ", iLAUNCHPOSIX_BURRITO2 = ", g_sMPTunables.iLAUNCHPOSIX_BURRITO2) #ENDIF ENDIF ELIF eModel = BOXVILLE IF NOT g_sMPTunables.bENABLE_VEHICLE_BOXVILLE AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_BOXVILLE bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking BOXVILLE") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_BOXVILLE = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_BOXVILLE), ", iLAUNCHPOSIX_BOXVILLE = ", g_sMPTunables.iLAUNCHPOSIX_BOXVILLE) #ENDIF ENDIF ELIF eModel = STOCKADE IF NOT g_sMPTunables.bENABLE_VEHICLE_STOCKADE AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_STOCKADE bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking STOCKADE") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_STOCKADE = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_STOCKADE), ", iLAUNCHPOSIX_STOCKADE = ", g_sMPTunables.iLAUNCHPOSIX_STOCKADE) #ENDIF ENDIF ELIF eModel = MINITANK IF NOT g_sMPTunables.bENABLE_VEHICLE_MINITANK AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_MINITANK bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking MINITANK") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_MINITANK = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_MINITANK), ", iLAUNCHPOSIX_MINITANK = ", g_sMPTunables.iLAUNCHPOSIX_MINITANK) #ENDIF ENDIF ELIF eModel = LGUARD IF NOT g_sMPTunables.bENABLE_VEHICLE_LGUARD AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_LGUARD bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking LGUARD") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_LGUARD = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_LGUARD), ", iLAUNCHPOSIX_LGUARD = ", g_sMPTunables.iLAUNCHPOSIX_LGUARD) #ENDIF ENDIF ELIF eModel = BLAZER2 IF NOT g_sMPTunables.bENABLE_VEHICLE_BLAZER2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_BLAZER2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking BLAZER2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_BLAZER2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_BLAZER2), ", iLAUNCHPOSIX_BLAZER2 = ", g_sMPTunables.iLAUNCHPOSIX_BLAZER2) #ENDIF ENDIF ELIF eModel = FORMULA IF NOT g_sMPTunables.bENABLE_VEHICLE_FORMULA AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_FORMULA AND NOT g_sMPTunables.bENABLE_VEHICLE_FORMULA_PODIUM bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking FORMULA") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_FORMULA = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_FORMULA), ", iLAUNCHPOSIX_FORMULA = ", g_sMPTunables.iLAUNCHPOSIX_FORMULA) #ENDIF ENDIF ELIF eModel = FORMULA2 IF NOT g_sMPTunables.bENABLE_VEHICLE_FORMULA2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_FORMULA2 AND NOT g_sMPTunables.bENABLE_VEHICLE_FORMULA2_PODIUM bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking FORMULA2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_FORMULA2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_FORMULA2), ", iLAUNCHPOSIX_FORMULA2 = ", g_sMPTunables.iLAUNCHPOSIX_FORMULA2) #ENDIF ENDIF ELIF eModel = IMORGON IF NOT g_sMPTunables.bENABLE_VEHICLE_IMORGEN AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_IMORGEN bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking IMORGON") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_IMORGEN = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_IMORGEN), ", iLAUNCHPOSIX_IMORGEN = ", g_sMPTunables.iLAUNCHPOSIX_IMORGEN) #ENDIF ENDIF ELIF eModel = REBLA IF NOT g_sMPTunables.bENABLE_VEHICLE_REBLA AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_REBLA bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking REBLA") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_REBLA = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_REBLA), ", iLAUNCHPOSIX_REBLA = ", g_sMPTunables.iLAUNCHPOSIX_REBLA) #ENDIF ENDIF ELIF eModel = VSTR IF NOT g_sMPTunables.bENABLE_VEHICLE_VSTR AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_VSTR bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking VSTR") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_VSTR = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_VSTR), ", iLAUNCHPOSIX_VSTR = ", g_sMPTunables.iLAUNCHPOSIX_VSTR) #ENDIF ENDIF #ENDIF #IF FEATURE_COPS_N_CROOKS ELIF eModel = SURFER3 IF !g_sMPtunables.bENABLE_VEH_SURFER3 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_SURFER3 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking SURFER3") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEH_SURFER3 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEH_SURFER3), ", iLAUNCHPOSIX_SURFER3 = ", g_sMPTunables.iLAUNCHPOSIX_SURFER3) #ENDIF ENDIF ELIF eModel = ZOKU IF !g_sMPtunables.bENABLE_VEH_ZOKU AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_ZOKU bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking ZOKU") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEH_ZOKU = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEH_ZOKU), ", iLAUNCHPOSIX_ZOKU = ", g_sMPTunables.iLAUNCHPOSIX_ZOKU) #ENDIF ENDIF ELIF eModel = POLBATI IF !g_sMPtunables.bENABLE_VEH_POLBATI AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_POLBATI bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking POLBATI") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEH_POLBATI = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEH_POLBATI), ", iLAUNCHPOSIX_POLBATI = ", g_sMPTunables.iLAUNCHPOSIX_POLBATI) #ENDIF ENDIF ELIF eModel = POLBUFFALO IF !g_sMPtunables.bENABLE_VEH_POLBUFFALO AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_POLBUFFALO bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking POLBUFFALO") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEH_POLBUFFALO = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEH_POLBUFFALO), ", iLAUNCHPOSIX_POLBUFFALO = ", g_sMPTunables.iLAUNCHPOSIX_POLBUFFALO) #ENDIF ENDIF ELIF eModel = POLGAUNTLET IF !g_sMPtunables.bENABLE_VEH_POLGAUNTLET AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_POLGAUNTLET bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking POLGAUNTLET") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEH_POLGAUNTLET = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEH_POLGAUNTLET), ", iLAUNCHPOSIX_POLGAUNTLET = ", g_sMPTunables.iLAUNCHPOSIX_POLGAUNTLET) #ENDIF ENDIF ELIF eModel = POLGRANGER IF !g_sMPtunables.bENABLE_VEH_POLGRANGER AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_POLGRANGER bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking POLGRANGER") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEH_POLGRANGER = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEH_POLGRANGER), ", iLAUNCHPOSIX_POLGRANGER = ", g_sMPTunables.iLAUNCHPOSIX_POLGRANGER) #ENDIF ENDIF ELIF eModel = POLICE5 IF !g_sMPtunables.bENABLE_VEH_POLICE5 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_POLICE5 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking POLICE5") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEH_POLICE5 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEH_POLICE5), ", iLAUNCHPOSIX_POLICE5 = ", g_sMPTunables.iLAUNCHPOSIX_POLICE5) #ENDIF ENDIF ELIF eModel = POLICE6 IF !g_sMPtunables.bENABLE_VEH_POLICE6 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_POLICE6 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking POLICE6") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEH_POLICE6 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEH_POLICE6), ", iLAUNCHPOSIX_POLICE6 = ", g_sMPTunables.iLAUNCHPOSIX_POLICE6) #ENDIF ENDIF ELIF eModel = POLICEB2 IF !g_sMPtunables.bENABLE_VEH_POLICEB2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_POLICEB2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking POLICEB2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEH_POLICEB2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEH_POLICEB2), ", iLAUNCHPOSIX_POLICEB2 = ", g_sMPTunables.iLAUNCHPOSIX_POLICEB2) #ENDIF ENDIF ELIF eModel = POLICET2 IF !g_sMPtunables.bENABLE_VEH_POLICET2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_POLICET2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking POLICET2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEH_POLICET2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEH_POLICET2), ", iLAUNCHPOSIX_POLICET2 = ", g_sMPTunables.iLAUNCHPOSIX_POLICET2) #ENDIF ENDIF ELIF eModel = POLPANTO IF !g_sMPtunables.bENABLE_VEH_POLPANTO AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_POLPANTO bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking POLPANTO") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEH_POLPANTO = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEH_POLPANTO), ", iLAUNCHPOSIX_POLPANTO = ", g_sMPTunables.iLAUNCHPOSIX_POLPANTO) #ENDIF ENDIF ELIF eModel = POLCARACARA IF !g_sMPtunables.bENABLE_VEH_POLCARACARA AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_POLCARACARA bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking POLCARACARA") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEH_POLCARACARA = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEH_POLCARACARA), ", iLAUNCHPOSIX_POLCARACARA = ", g_sMPTunables.iLAUNCHPOSIX_POLCARACARA) #ENDIF ENDIF ELIF eModel = POLRIATA IF !g_sMPtunables.bENABLE_VEH_POLRIATA AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_POLRIATA bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking POLRIATA") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEH_POLRIATA = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEH_POLRIATA), ", iLAUNCHPOSIX_POLRIATA = ", g_sMPTunables.iLAUNCHPOSIX_POLRIATA) #ENDIF ENDIF ELIF eModel = POLGREENWOOD IF !g_sMPtunables.bENABLE_VEH_POLGREENWOOD AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_POLGREENWOOD bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking POLGREENWOOD") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEH_POLGREENWOOD = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEH_POLGREENWOOD), ", iLAUNCHPOSIX_POLGREENWOOD = ", g_sMPTunables.iLAUNCHPOSIX_POLGREENWOOD) #ENDIF ENDIF #ENDIF #IF FEATURE_SUMMER_2020 ELIF eModel = GAUNTLET5 IF !g_sMPtunables.bENABLE_VEH_GAUNTLET5 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_GAUNTLET5 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking GAUNTLET5") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEH_GAUNTLET5 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEH_GAUNTLET5), ", iLAUNCHPOSIX_GAUNTLET5 = ", g_sMPTunables.iLAUNCHPOSIX_GAUNTLET5) #ENDIF ENDIF ELIF eModel = CLUB IF !g_sMPtunables.bENABLE_VEH_CLUB AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_CLUB bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking CLUB") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEH_CLUB = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEH_CLUB), ", iLAUNCHPOSIX_CLUB = ", g_sMPTunables.iLAUNCHPOSIX_CLUB) #ENDIF ENDIF ELIF eModel = DUKES3 IF !g_sMPtunables.bENABLE_VEH_DUKES3 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_DUKES3 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking DUKES3") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEH_DUKES3 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEH_DUKES3), ", iLAUNCHPOSIX_DUKES3 = ", g_sMPTunables.iLAUNCHPOSIX_DUKES3) #ENDIF ENDIF ELIF eModel = YOSEMITE3 IF !g_sMPtunables.bENABLE_VEH_YOSEMITE3 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_YOSEMITE3 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking YOSEMITE3") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEH_YOSEMITE3 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEH_YOSEMITE3), ", iLAUNCHPOSIX_YOSEMITE3 = ", g_sMPTunables.iLAUNCHPOSIX_YOSEMITE3) #ENDIF ENDIF ELIF eModel = PEYOTE3 IF !g_sMPtunables.bENABLE_VEH_PEYOTE3 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_PEYOTE3 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking PEYOTE3") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEH_PEYOTE3 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEH_PEYOTE3), ", iLAUNCHPOSIX_PEYOTE3 = ", g_sMPTunables.iLAUNCHPOSIX_PEYOTE3) #ENDIF ENDIF ELIF eModel = GLENDALE2 IF !g_sMPtunables.bENABLE_VEH_GLENDALE2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_GLENDALE2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking GLENDALE2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEH_GLENDALE2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEH_GLENDALE2), ", iLAUNCHPOSIX_GLENDALE2 = ", g_sMPTunables.iLAUNCHPOSIX_GLENDALE2) #ENDIF ENDIF ELIF eModel = PENUMBRA2 IF !g_sMPtunables.bENABLE_VEH_PENUMBRA2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_PENUMBRA2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking PENUMBRA2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEH_PENUMBRA2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEH_PENUMBRA2), ", iLAUNCHPOSIX_PENUMBRA2 = ", g_sMPTunables.iLAUNCHPOSIX_PENUMBRA2) #ENDIF ENDIF ELIF eModel = LANDSTALKER2 IF !g_sMPtunables.bENABLE_VEH_LANDSTALKER2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_LANDSTALKER2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking LANDSTALKER2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEH_LANDSTALKER2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEH_LANDSTALKER2), ", iLAUNCHPOSIX_LANDSTALKER2 = ", g_sMPTunables.iLAUNCHPOSIX_LANDSTALKER2) #ENDIF ENDIF ELIF eModel = SEMINOLE2 IF !g_sMPtunables.bENABLE_VEH_SEMINOLE2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_SEMINOLE2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking SEMINOLE2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEH_SEMINOLE2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEH_SEMINOLE2), ", iLAUNCHPOSIX_SEMINOLE2 = ", g_sMPTunables.iLAUNCHPOSIX_SEMINOLE2) #ENDIF ENDIF ELIF eModel = TIGON IF !g_sMPtunables.bENABLE_VEH_TIGON AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_TIGON bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking TIGON") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEH_TIGON = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEH_TIGON), ", iLAUNCHPOSIX_TIGON = ", g_sMPTunables.iLAUNCHPOSIX_TIGON) #ENDIF ENDIF ELIF eModel = OPENWHEEL1 IF !g_sMPtunables.bENABLE_VEH_OPENWHEEL1 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_OPENWHEEL1 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking OPENWHEEL1") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEH_OPENWHEEL1 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEH_OPENWHEEL1), ", iLAUNCHPOSIX_OPENWHEEL1 = ", g_sMPTunables.iLAUNCHPOSIX_OPENWHEEL1) #ENDIF ENDIF ELIF eModel = OPENWHEEL2 IF !g_sMPtunables.bENABLE_VEH_OPENWHEEL2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_OPENWHEEL2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking OPENWHEEL2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEH_OPENWHEEL2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEH_OPENWHEEL2), ", iLAUNCHPOSIX_OPENWHEEL2 = ", g_sMPTunables.iLAUNCHPOSIX_OPENWHEEL2) #ENDIF ENDIF ELIF eModel = COQUETTE4 IF !g_sMPtunables.bENABLE_VEH_COQUETTE4 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_COQUETTE4 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking COQUETTE4") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEH_COQUETTE4 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEH_COQUETTE4), ", iLAUNCHPOSIX_COQUETTE4 = ", g_sMPTunables.iLAUNCHPOSIX_COQUETTE4) #ENDIF ENDIF ELIF eModel = MANANA2 IF !g_sMPtunables.bENABLE_VEH_MANANA2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_MANANA2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking MANANA2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEH_MANANA2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEH_MANANA2), ", iLAUNCHPOSIX_MANANA2 = ", g_sMPTunables.iLAUNCHPOSIX_MANANA2) #ENDIF ENDIF ELIF eModel = YOUGA3 IF !g_sMPtunables.bENABLE_VEH_YOUGA3 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_YOUGA3 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking YOUGA3") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEH_YOUGA3 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEH_YOUGA3), ", iLAUNCHPOSIX_YOUGA3 = ", g_sMPTunables.iLAUNCHPOSIX_YOUGA3) #ENDIF ENDIF #ENDIF #IF FEATURE_HEIST_ISLAND ELIF eModel = TOREADOR IF !g_sMPtunables.bENABLE_VEHICLE_TOREADOR AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_TOREADOR bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking TOREADOR") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_TOREADOR = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_TOREADOR), ", iLAUNCHPOSIX_TOREADOR = ", g_sMPTunables.iLAUNCHPOSIX_TOREADOR) #ENDIF ENDIF ELIF eModel = ANNIHILATOR2 IF !g_sMPtunables.bENABLE_VEHICLE_ANNIHILATOR2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_ANNIHILATOR2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking ANNIHILATOR2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_ANNIHILATOR2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_ANNIHILATOR2), ", iLAUNCHPOSIX_ANNIHILATOR2 = ", g_sMPTunables.iLAUNCHPOSIX_ANNIHILATOR2) #ENDIF ENDIF ELIF eModel = ALKONOST IF !g_sMPtunables.bENABLE_VEHICLE_ALKONOST AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_ALKONOST bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking ALKONOST") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_ALKONOST = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_ALKONOST), ", iLAUNCHPOSIX_ALKONOST = ", g_sMPTunables.iLAUNCHPOSIX_ALKONOST) #ENDIF ENDIF ELIF eModel = PATROLBOAT IF !g_sMPtunables.bENABLE_VEHICLE_PATROLBOAT AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_PATROLBOAT bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking PATROLBOAT") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_PATROLBOAT = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_PATROLBOAT), ", iLAUNCHPOSIX_PATROLBOAT = ", g_sMPTunables.iLAUNCHPOSIX_PATROLBOAT) #ENDIF ENDIF ELIF eModel = LONGFIN IF !g_sMPtunables.bENABLE_VEHICLE_LONGFIN AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_LONGFIN bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking LONGFIN") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_LONGFIN = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_LONGFIN), ", iLAUNCHPOSIX_LONGFIN = ", g_sMPTunables.iLAUNCHPOSIX_LONGFIN) #ENDIF ENDIF ELIF eModel = WINKY IF !g_sMPtunables.bENABLE_VEHICLE_WINKY AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_WINKY bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking WINKY") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_WINKY = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_WINKY), ", iLAUNCHPOSIX_WINKY = ", g_sMPTunables.iLAUNCHPOSIX_WINKY) #ENDIF ENDIF ELIF eModel = VETO IF !g_sMPtunables.bENABLE_VEHICLE_VETO AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_VETO bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking VETO") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_VETO = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_VETO), ", iLAUNCHPOSIX_VETO = ", g_sMPTunables.iLAUNCHPOSIX_VETO) #ENDIF ENDIF ELIF eModel = VETO2 IF !g_sMPtunables.bENABLE_VEHICLE_VETO2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_VETO2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking VETO2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_VETO2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_VETO2), ", iLAUNCHPOSIX_VETO2 = ", g_sMPTunables.iLAUNCHPOSIX_VETO2) #ENDIF ENDIF ELIF eModel = ITALIRSX IF !g_sMPtunables.bENABLE_VEHICLE_ITALIRSX AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_ITALIRSX bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking ITALIRSX") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_ITALIRSX = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_ITALIRSX), ", iLAUNCHPOSIX_ITALIRSX = ", g_sMPTunables.iLAUNCHPOSIX_ITALIRSX) #ENDIF ENDIF ELIF eModel = WEEVIL IF g_sMPtunables.bIH_EARLY_ACCESS_BEETLE // skip CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - early access bIH_EARLY_ACCESS_BEETLE true") ELSE IF !g_sMPtunables.bENABLE_VEHICLE_WEEVIL AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_WEEVIL bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking WEEVIL") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_WEEVIL = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_WEEVIL), ", iLAUNCHPOSIX_WEEVIL = ", g_sMPTunables.iLAUNCHPOSIX_WEEVIL) #ENDIF ENDIF ENDIF ELIF eModel = MANCHEZ2 IF !g_sMPtunables.bENABLE_VEHICLE_MANCHEZ2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_MANCHEZ2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking MANCHEZ2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_MANCHEZ2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_MANCHEZ2), ", iLAUNCHPOSIX_MANCHEZ2 = ", g_sMPTunables.iLAUNCHPOSIX_MANCHEZ2) #ENDIF ENDIF ELIF eModel = SLAMTRUCK IF !g_sMPtunables.bENABLE_VEHICLE_SLAMTRUCK AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_SLAMTRUCK bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking SLAMTRUCK") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_SLAMTRUCK = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_SLAMTRUCK), ", iLAUNCHPOSIX_SLAMTRUCK = ", g_sMPTunables.iLAUNCHPOSIX_SLAMTRUCK) #ENDIF ENDIF ELIF eModel = VETIR IF !g_sMPtunables.bENABLE_VEHICLE_VETIR AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_VETIR bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking VETIR") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_VETIR = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_VETIR), ", iLAUNCHPOSIX_VETIR = ", g_sMPTunables.iLAUNCHPOSIX_VETIR) #ENDIF ENDIF ELIF eModel = SQUADDIE IF !g_sMPtunables.bENABLE_VEHICLE_SQUADDIE AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_SQUADDIE bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking SQUADDIE") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_SQUADDIE = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_SQUADDIE), ", iLAUNCHPOSIX_SQUADDIE = ", g_sMPTunables.iLAUNCHPOSIX_SQUADDIE) #ENDIF ENDIF ELIF eModel = BRIOSO2 IF g_sMPtunables.bIH_EARLY_ACCESS_BRIOSO2 // skip CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - early access bIH_EARLY_ACCESS_BRIOSO2 true") ELSE IF !g_sMPtunables.bENABLE_VEHICLE_BRIOSO2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_BRIOSO2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking BRIOSO2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_BRIOSO2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_BRIOSO2), ", iLAUNCHPOSIX_BRIOSO2 = ", g_sMPTunables.iLAUNCHPOSIX_BRIOSO2) #ENDIF ENDIF ENDIF ELIF eModel = DINGHY5 IF !g_sMPtunables.bENABLE_VEHICLE_DINGY5 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_DINGY5 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking DINGHY5") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_DINGY5 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_DINGY5), ", iLAUNCHPOSIX_DINGY5 = ", g_sMPTunables.iLAUNCHPOSIX_DINGY5) #ENDIF ENDIF ELIF eModel = VERUS IF !g_sMPtunables.bENABLE_VEHICLE_VERUS AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_VERUS bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking VERUS") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_VERUS = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_VERUS), ", iLAUNCHPOSIX_VERUS = ", g_sMPTunables.iLAUNCHPOSIX_VERUS) #ENDIF ENDIF #ENDIF ELIF eModel = TAILGATER2 IF !g_sMPtunables.bENABLE_VEHICLE_TAILGATER2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_TAILGATER2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking TAILGATER2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_TAILGATER2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_TAILGATER2), ", iLAUNCHPOSIX_TAILGATER2 = ", g_sMPTunables.iLAUNCHPOSIX_TAILGATER2) #ENDIF ENDIF ELIF eModel = EUROS IF !g_sMPtunables.bENABLE_VEHICLE_EUROS AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_EUROS bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking EUROS") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_EUROS = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_EUROS), ", iLAUNCHPOSIX_EUROS = ", g_sMPTunables.iLAUNCHPOSIX_EUROS) #ENDIF ENDIF ELIF eModel = SULTAN3 IF !g_sMPtunables.bENABLE_VEHICLE_SULTAN3 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_SULTAN3 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking SULTAN3") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_SULTAN3 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_SULTAN3), ", iLAUNCHPOSIX_SULTAN3 = ", g_sMPTunables.iLAUNCHPOSIX_SULTAN3) #ENDIF ENDIF ELIF eModel = RT3000 IF !g_sMPtunables.bENABLE_VEHICLE_RT3000 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_RT3000 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking RT3000") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_RT3000 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_RT3000), ", iLAUNCHPOSIX_RT3000 = ", g_sMPTunables.iLAUNCHPOSIX_RT3000) #ENDIF ENDIF ELIF eModel = VECTRE IF !g_sMPtunables.bENABLE_VEHICLE_VECTRE AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_VECTRE bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking VECTRE") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_VECTRE = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_VECTRE), ", iLAUNCHPOSIX_VECTRE = ", g_sMPTunables.iLAUNCHPOSIX_VECTRE) #ENDIF ENDIF ELIF eModel = ZR350 IF !g_sMPtunables.bENABLE_VEHICLE_ZR350 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_ZR350 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking ZR350") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_ZR350 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_ZR350), ", iLAUNCHPOSIX_ZR350 = ", g_sMPTunables.iLAUNCHPOSIX_ZR350) #ENDIF ENDIF ELIF eModel = WARRENER2 IF !g_sMPtunables.bENABLE_VEHICLE_WARRENER2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_WARRENER2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking WARRENER2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_WARRENER2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_WARRENER2), ", iLAUNCHPOSIX_WARRENER2 = ", g_sMPTunables.iLAUNCHPOSIX_WARRENER2) #ENDIF ENDIF ELIF eModel = CALICO IF !g_sMPtunables.bENABLE_VEHICLE_CALICO AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_CALICO bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking CALICO") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_CALICO = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_CALICO), ", iLAUNCHPOSIX_CALICO = ", g_sMPTunables.iLAUNCHPOSIX_CALICO) #ENDIF ENDIF ELIF eModel = REMUS IF !g_sMPtunables.bENABLE_VEHICLE_REMUS AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_REMUS bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking REMUS") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_REMUS = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_REMUS), ", iLAUNCHPOSIX_REMUS = ", g_sMPTunables.iLAUNCHPOSIX_REMUS) #ENDIF ENDIF ELIF eModel = CYPHER IF !g_sMPtunables.bENABLE_VEHICLE_CYPHER AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_CYPHER bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking CYPHER") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_CYPHER = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_CYPHER), ", iLAUNCHPOSIX_CYPHER = ", g_sMPTunables.iLAUNCHPOSIX_CYPHER) #ENDIF ENDIF ELIF eModel = DOMINATOR7 IF !g_sMPtunables.bENABLE_VEHICLE_DOMINATOR7 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_DOMINATOR7 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking DOMINATOR7") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_DOMINATOR7 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_DOMINATOR7), ", iLAUNCHPOSIX_DOMINATOR7 = ", g_sMPTunables.iLAUNCHPOSIX_DOMINATOR7) #ENDIF ENDIF ELIF eModel = JESTER4 IF !g_sMPtunables.bENABLE_VEHICLE_JESTER4 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_JESTER4 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking JESTER4") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_JESTER4 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_JESTER4), ", iLAUNCHPOSIX_JESTER4 = ", g_sMPTunables.iLAUNCHPOSIX_JESTER4) #ENDIF ENDIF ELIF eModel = FUTO2 IF !g_sMPtunables.bENABLE_VEHICLE_FUTO2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_FUTO2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking FUTO2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_FUTO2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_FUTO2), ", iLAUNCHPOSIX_FUTO2 = ", g_sMPTunables.iLAUNCHPOSIX_FUTO2) #ENDIF ENDIF ELIF eModel = DOMINATOR8 IF !g_sMPtunables.bENABLE_VEHICLE_DOMINATOR8 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_DOMINATOR8 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking DOMINATOR8") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_DOMINATOR8 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_DOMINATOR8), ", iLAUNCHPOSIX_DOMINATOR8 = ", g_sMPTunables.iLAUNCHPOSIX_DOMINATOR8) #ENDIF ENDIF ELIF eModel = PREVION IF !g_sMPtunables.bENABLE_VEHICLE_PREVION AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_PREVION bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking PREVION") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_PREVION = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_PREVION), ", iLAUNCHPOSIX_PREVION = ", g_sMPTunables.iLAUNCHPOSIX_PREVION) #ENDIF ENDIF ELIF eModel = GROWLER IF !g_sMPtunables.bENABLE_VEHICLE_GROWLER AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_GROWLER bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking GROWLER") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_GROWLER = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_GROWLER), ", iLAUNCHPOSIX_GROWLER = ", g_sMPTunables.iLAUNCHPOSIX_GROWLER) #ENDIF ENDIF ELIF eModel = COMET6 IF !g_sMPtunables.bENABLE_VEHICLE_COMET6 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_COMET6 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking COMET6") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_COMET6 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_COMET6), ", iLAUNCHPOSIX_COMET6 = ", g_sMPTunables.iLAUNCHPOSIX_COMET6) #ENDIF ENDIF ELIF eModel = CHAMPION IF !g_sMPtunables.bENABLE_VEHICLE_CHAMPION AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_CHAMPION bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking CHAMPION") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_CHAMPION = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_CHAMPION), ", iLAUNCHPOSIX_CHAMPION = ", g_sMPTunables.iLAUNCHPOSIX_CHAMPION) #ENDIF ENDIF ELIF eModel = BUFFALO4 IF !g_sMPtunables.bENABLE_VEHICLE_BUFFALO4 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_BUFFALO4 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking BUFFALO4") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_BUFFALO4 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_BUFFALO4), ", iLAUNCHPOSIX_BUFFALO4 = ", g_sMPTunables.iLAUNCHPOSIX_BUFFALO4) #ENDIF ENDIF ELIF eModel = DEITY IF !g_sMPtunables.bENABLE_VEHICLE_DEITY AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_DEITY bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking DEITY") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_DEITY = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_DEITY), ", iLAUNCHPOSIX_DEITY = ", g_sMPTunables.iLAUNCHPOSIX_DEITY) #ENDIF ENDIF ELIF eModel = JUBILEE IF !g_sMPtunables.bENABLE_VEHICLE_JUBILEE AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_JUBILEE bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking JUBILEE") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_JUBILEE = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_JUBILEE), ", iLAUNCHPOSIX_JUBILEE = ", g_sMPTunables.iLAUNCHPOSIX_JUBILEE) #ENDIF ENDIF ELIF eModel = IGNUS IF !g_sMPtunables.bENABLE_VEHICLE_IGNUS AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_IGNUS bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking IGNUS") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_IGNUS = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_IGNUS), ", iLAUNCHPOSIX_IGNUS = ", g_sMPTunables.iLAUNCHPOSIX_IGNUS) #ENDIF ENDIF ELIF eModel = CINQUEMILA IF !g_sMPtunables.bENABLE_VEHICLE_CINQUEMILA AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_CINQUEMILA bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking CINQUEMILA") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_CINQUEMILA = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_CINQUEMILA), ", iLAUNCHPOSIX_CINQUEMILA = ", g_sMPTunables.iLAUNCHPOSIX_CINQUEMILA) #ENDIF ENDIF ELIF eModel = ASTRON IF !g_sMPtunables.bENABLE_VEHICLE_ASTRON AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_ASTRON bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking ASTRON") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_ASTRON = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_ASTRON), ", iLAUNCHPOSIX_ASTRON = ", g_sMPTunables.iLAUNCHPOSIX_ASTRON) #ENDIF ENDIF ELIF eModel = COMET7 IF !g_sMPtunables.bENABLE_VEHICLE_COMET7 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_COMET7 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking COMET7") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_COMET7 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_COMET7), ", iLAUNCHPOSIX_COMET7 = ", g_sMPTunables.iLAUNCHPOSIX_COMET7) #ENDIF ENDIF ELIF eModel = ZENO IF !g_sMPtunables.bENABLE_VEHICLE_ZENO AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_ZENO bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking ZENO") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_ZENO = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_ZENO), ", iLAUNCHPOSIX_ZENO = ", g_sMPTunables.iLAUNCHPOSIX_ZENO) #ENDIF ENDIF ELIF eModel = REEVER IF !g_sMPtunables.bENABLE_VEHICLE_REEVER AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_REEVER bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking REEVER") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_REEVER = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_REEVER), ", iLAUNCHPOSIX_REEVER = ", g_sMPTunables.iLAUNCHPOSIX_REEVER) #ENDIF ENDIF ELIF eModel = IWAGEN IF !g_sMPtunables.bENABLE_VEHICLE_IWAGEN AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_IWAGEN bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking IWAGEN") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_IWAGEN = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_IWAGEN), ", iLAUNCHPOSIX_IWAGEN = ", g_sMPTunables.iLAUNCHPOSIX_IWAGEN) #ENDIF ENDIF ELIF eModel = GRANGER2 IF !g_sMPtunables.bENABLE_VEHICLE_GRANGER2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_GRANGER2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking GRANGER2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_GRANGER2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_GRANGER2), ", iLAUNCHPOSIX_GRANGER2 = ", g_sMPTunables.iLAUNCHPOSIX_GRANGER2) #ENDIF ENDIF ELIF eModel = PATRIOT3 IF !g_sMPtunables.bENABLE_VEHICLE_PATRIOT3 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_PATRIOT3 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking PATRIOT3") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_PATRIOT3 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_PATRIOT3), ", iLAUNCHPOSIX_PATRIOT3 = ", g_sMPTunables.iLAUNCHPOSIX_PATRIOT3) #ENDIF ENDIF ELIF eModel = SHINOBI IF !g_sMPtunables.bENABLE_VEHICLE_SHINOBI AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_FAST_MOTORBIKE bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking SHINOBI") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_SHINOBI = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_SHINOBI), ", iLAUNCHPOSIX_FAST_MOTORBIKE = ", g_sMPTunables.iLAUNCHPOSIX_FAST_MOTORBIKE) #ENDIF ENDIF ELIF eModel = BALLER7 IF g_sMPTunables.bFIXER_EARLY_ACCESS_BALLER7 // skip CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - early access bFIXER_EARLY_ACCESS_BALLER7 true") ELSE IF !g_sMPtunables.bENABLE_VEHICLE_BALLER7 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_BALLER7 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking BALLER7") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_BALLER7 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_BALLER7), ", iLAUNCHPOSIX_BALLER7 = ", g_sMPTunables.iLAUNCHPOSIX_BALLER7) #ENDIF ENDIF ENDIF #IF FEATURE_DLC_1_2022 ELIF eModel = BRIOSO3 IF !g_sMPtunables.bENABLE_VEHICLE_BRIOSO3 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_BRIOSO3 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking BRIOSO3") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_BRIOSO3 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_BRIOSO3), ", iLAUNCHPOSIX_BRIOSO3 = ", g_sMPTunables.iLAUNCHPOSIX_BRIOSO3) #ENDIF ENDIF ELIF eModel = CORSITA IF !g_sMPtunables.bENABLE_VEHICLE_CORSITA AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_CORSITA bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking CORSITA") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_CORSITA = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_CORSITA), ", iLAUNCHPOSIX_CORSITA = ", g_sMPTunables.iLAUNCHPOSIX_CORSITA) #ENDIF ENDIF ELIF eModel = DRAUGUR IF !g_sMPtunables.bENABLE_VEHICLE_DRAUGUR AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_DRAUGUR bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking DRAUGUR") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_DRAUGUR = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_DRAUGUR), ", iLAUNCHPOSIX_DRAUGUR = ", g_sMPTunables.iLAUNCHPOSIX_DRAUGUR) #ENDIF ENDIF ELIF eModel = GREENWOOD IF !g_sMPtunables.bENABLE_VEHICLE_GREENWOOD AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_GREENWOOD bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking GREENWOOD") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_GREENWOOD = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_GREENWOOD), ", iLAUNCHPOSIX_GREENWOOD = ", g_sMPTunables.iLAUNCHPOSIX_GREENWOOD) #ENDIF ENDIF ELIF eModel = KANJOSJ IF !g_sMPtunables.bENABLE_VEHICLE_KANJOSJ AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_KANJOSJ bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking KANJOSJ") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_KANJOSJ = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_KANJOSJ), ", iLAUNCHPOSIX_KANJOSJ = ", g_sMPTunables.iLAUNCHPOSIX_KANJOSJ) #ENDIF ENDIF ELIF eModel = LM87 IF !g_sMPtunables.bENABLE_VEHICLE_LM87 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_LM87 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking LM87") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_LM87 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_LM87), ", iLAUNCHPOSIX_LM87 = ", g_sMPTunables.iLAUNCHPOSIX_LM87) #ENDIF ENDIF ELIF eModel = POSTLUDE IF !g_sMPtunables.bENABLE_VEHICLE_POSTLUDE AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_POSTLUDE bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking POSTLUDE") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_POSTLUDE = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_POSTLUDE), ", iLAUNCHPOSIX_POSTLUDE = ", g_sMPTunables.iLAUNCHPOSIX_POSTLUDE) #ENDIF ENDIF ELIF eModel = RHINEHART IF !g_sMPtunables.bENABLE_VEHICLE_RHINEHART AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_RHINEHART bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking RHINEHART") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_RHINEHART = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_RHINEHART), ", iLAUNCHPOSIX_RHINEHART = ", g_sMPTunables.iLAUNCHPOSIX_RHINEHART) #ENDIF ENDIF ELIF eModel = SM722 IF !g_sMPtunables.bENABLE_VEHICLE_SM722 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_SM722 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking SM722") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_SM722 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_SM722), ", iLAUNCHPOSIX_SM722 = ", g_sMPTunables.iLAUNCHPOSIX_SM722) #ENDIF ENDIF ELIF eModel = TENF IF !g_sMPtunables.bENABLE_VEHICLE_TENF AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_TENF bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking TENF") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_TENF = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_TENF), ", iLAUNCHPOSIX_TENF = ", g_sMPTunables.iLAUNCHPOSIX_TENF) #ENDIF ENDIF ELIF eModel = TENF2 IF !g_sMPtunables.bENABLE_VEHICLE_TENF2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_TENF2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking TENF2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_TENF2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_TENF2), ", iLAUNCHPOSIX_TENF2 = ", g_sMPTunables.iLAUNCHPOSIX_TENF2) #ENDIF ENDIF ELIF eModel = TORERO2 IF !g_sMPtunables.bENABLE_VEHICLE_TORERO2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_TORERO2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking TORERO2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_TORERO2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_TORERO2), ", iLAUNCHPOSIX_TORERO2 = ", g_sMPTunables.iLAUNCHPOSIX_TORERO2) #ENDIF ENDIF ELIF eModel = VIGERO2 IF !g_sMPtunables.bENABLE_VEHICLE_VIGERO2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_VIGERO2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking VIGERO2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_VIGERO2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_VIGERO2), ", iLAUNCHPOSIX_VIGERO2 = ", g_sMPTunables.iLAUNCHPOSIX_VIGERO2) #ENDIF ENDIF ELIF eModel = WEEVIL2 IF !g_sMPtunables.bENABLE_VEHICLE_WEEVIL2 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_WEEVIL2 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking WEEVIL2") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_WEEVIL2 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_WEEVIL2), ", iLAUNCHPOSIX_WEEVIL2 = ", g_sMPTunables.iLAUNCHPOSIX_WEEVIL2) #ENDIF ENDIF ELIF eModel = RUINER4 IF !g_sMPtunables.bENABLE_VEHICLE_RUINER4 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_RUINER4 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking RUINER4") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_RUINER4 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_RUINER4), ", iLAUNCHPOSIX_RUINER4 = ", g_sMPTunables.iLAUNCHPOSIX_RUINER4) #ENDIF ENDIF ELIF eModel = SENTINEL4 IF !g_sMPtunables.bENABLE_VEHICLE_SENTINEL4 AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_SENTINEL4 bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking SENTINEL4") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_SENTINEL4 = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_SENTINEL4), ", iLAUNCHPOSIX_SENTINEL4 = ", g_sMPTunables.iLAUNCHPOSIX_SENTINEL4) #ENDIF ENDIF ELIF eModel = CONADA IF !g_sMPtunables.bENABLE_VEHICLE_CONADA AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_CONADA bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking CONADA") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_CONADA = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_CONADA), ", iLAUNCHPOSIX_CONADA = ", g_sMPTunables.iLAUNCHPOSIX_CONADA) #ENDIF ENDIF ELIF eModel = OMNISEGT IF !g_sMPtunables.bENABLE_VEHICLE_OMNISEGT AND iCurrentPosixTime < g_sMPTunables.iLAUNCHPOSIX_OMNISEGT bResult = FALSE #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - Blocking OMNISEGT") CPRINTLN(DEBUG_SHOPS, "--- iCurrentPosixTime = ", iCurrentPosixTime, ", bENABLE_VEHICLE_OMNISEGT = ", GET_STRING_FROM_BOOL(g_sMPTunables.bENABLE_VEHICLE_OMNISEGT), ", iLAUNCHPOSIX_OMNISEGT = ", g_sMPTunables.iLAUNCHPOSIX_OMNISEGT) #ENDIF ENDIF #ENDIF ENDIF #IF FEATURE_GTAO_MEMBERSHIP INT i IF bResult = FALSE REPEAT MAX_EARLY_ACCESS_MEMBER_VEHICLES i IF eModel = g_earlyAccessModelsUnlocked[i] #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - vehicle blocked but re-enabling based on early membership purchase",g_earlyAccessModelsUnlocked[i]) #ENDIF bResult = TRUE ENDIF ENDREPEAT ENDIF #ENDIF #IF IS_DEBUG_BUILD IF bResult = FALSE CPRINTLN(DEBUG_SHOPS, "IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME - ", GET_MODEL_NAME_FOR_DEBUG(eModel), " is not available now.") ENDIF #ENDIF RETURN bResult ENDFUNC // FUNC BOOL HAS_MP_HACKER_TRUCK_ACCESS() #IF IS_DEBUG_BUILD IF g_bForce_HACKER_TRUCK_true RETURN TRUE ENDIF IF g_bForce_HACKER_TRUCK_false RETURN FALSE ENDIF #ENDIF IF NOT IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(TERBYTE) RETURN FALSE ENDIF RETURN TRUE ENDFUNC FUNC BOOL IS_DLC_MODEL_IN_CATALOG(MODEL_NAMES eModel) #IF IS_DEBUG_BUILD IF NOT GET_COMMANDLINE_PARAM_EXISTS("sc_DoIllegalDLCVehicleCheck") RETURN TRUE ENDIF #ENDIF IF NOT USE_SERVER_TRANSACTIONS() RETURN TRUE ENDIF INT iCurrentState INT iRefreshSessionRequested NET_GAMESERVER_GET_SESSION_STATE_AND_STATUS(iCurrentState, iRefreshSessionRequested) IF iCurrentState = ENUM_TO_INT(GAMESERVER_PENDING_CATALOG) RETURN TRUE ENDIF TEXT_LABEL_63 tlCatalogString // make catalog string. SWITCH eModel CASE DUNE4 tlCatalogString = "VE_DUNE4_t0_v3" BREAK CASE VOLTIC2 tlCatalogString = "VE_VOLTIC2_t0_v3" BREAK CASE RUINER2 tlCatalogString = "VE_RUINER2_t0_v3" BREAK CASE PHANTOM2 tlCatalogString = "VE_PHANTOM2_t0_v3" BREAK CASE TECHNICAL2 tlCatalogString = "VE_TECHNICAL2_t0_v3" BREAK CASE BOXVILLE5 tlCatalogString = "VE_BOXVILLE5_t0_v3" BREAK CASE WASTELANDER tlCatalogString = "VE_WASTELANDER_t0_v3" BREAK CASE BLAZER5 tlCatalogString = "VE_BLAZER5_t0_v3" BREAK //CASE ADDER tlCatalogString = "VE_ADDER_t0_v3" BREAK // just to test the system works. DEFAULT RETURN TRUE BREAK ENDSWITCH IF NOT NET_GAMESERVER_CATALOG_ITEM_IS_VALID(tlCatalogString) PRINTLN("IS_DLC_MODEL_IN_CATALOG - false for ", tlCatalogString) RETURN FALSE ENDIF RETURN TRUE ENDFUNC /// PURPOSE: /// Checks if the vehicle model is installed and safe to use /// PARAMS: /// bCheckAvailablePastCurrentTime - perform a check to see if vehicle was made available in the past with a tunable FUNC BOOL IS_VEHICLE_AVAILABLE_FOR_GAME(MODEL_NAMES eModel, BOOL bCheckAvailablePastCurrentTime = FALSE) INT iVeh scrShopVehicleData vehicleData IF eModel = DUMMY_MODEL_FOR_SCRIPT RETURN FALSE ENDIF #IF USE_TU_CHANGES //#1655977 IF NOT IS_MODEL_A_VEHICLE(eModel) RETURN FALSE ENDIF #ENDIF // CGtoNG only IF (eModel = DOMINATOR2 AND NOT NETWORK_IS_GAME_IN_PROGRESS()) OR (eModel = BUFFALO3 AND NOT NETWORK_IS_GAME_IN_PROGRESS()) OR (eModel = GAUNTLET2 AND NOT NETWORK_IS_GAME_IN_PROGRESS()) // OR eModel = DODO // OR eModel = DUKES // OR eModel = DUKES2 OR eModel = BLIMP2 // OR eModel = STALION OR (eModel = STALION2 AND NOT NETWORK_IS_GAME_IN_PROGRESS()) // OR eModel = SUBMERSIBLE2 // OR eModel = MARSHALL // OR eModel = BLISTA2 // OR eModel = BLISTA3 IF NOT IS_LAST_GEN_PLAYER() PRINTLN("IS_VEHICLE_AVAILABLE_FOR_GAME - special vehicle not available to non-CGtoNG player") RETURN FALSE ENDIF ELSE REPEAT GET_NUM_DLC_VEHICLES() iVeh IF GET_DLC_VEHICLE_DATA(iVeh, vehicleData) IF ENUM_TO_INT(eModel) = vehicleData.m_nameHash IF IS_CONTENT_ITEM_LOCKED(vehicleData.m_lockHash) PRINTLN("IS_VEHICLE_AVAILABLE_FOR_GAME - Special DLC vehicle is locked, not available") RETURN FALSE ENDIF ENDIF ENDIF ENDREPEAT ENDIF // check for blimp IF eModel = BLIMP IF NOT IS_PREORDER_GAME() AND NOT IS_SPECIAL_EDITION_GAME() AND NOT IS_COLLECTORS_EDITION_GAME() AND NOT IS_JAPANESE_SPECIAL_EDITION_GAME() AND NOT IS_LAST_GEN_PLAYER() PRINTLN("IS_VEHICLE_AVAILABLE_FOR_GAME - Blimp not available.") RETURN FALSE ENDIF ENDIF IF eModel = HOTKNIFE OR eModel = CARBONRS OR eModel = KHAMELION IF IS_XBOX_PLATFORM() OR IS_PC_VERSION() OR IS_PLAYSTATION_PLATFORM() //ignore collectors edition check 2046710 ELSE IF NOT IS_COLLECTORS_EDITION_GAME() PRINTLN("IS_VEHICLE_AVAILABLE_FOR_GAME - NG game isn't PS4, XBO or PC version. emodel ", ENUM_TO_INT(eModel)) RETURN FALSE ENDIF ENDIF ENDIF IF bCheckAvailablePastCurrentTime IF NOT IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(eModel) PRINTLN("IS_VEHICLE_AVAILABLE_FOR_GAME - vehicle not past current time. emodel ", ENUM_TO_INT(eModel)) RETURN FALSE ENDIF ENDIF // if is PC version check if model is in catalog IF NOT IS_DLC_MODEL_IN_CATALOG(eModel) PRINTLN("IS_VEHICLE_AVAILABLE_FOR_GAME - not valid in catalog. emodel ", ENUM_TO_INT(eModel)) RETURN FALSE ENDIF RETURN TRUE ENDFUNC // CONST_INT MP_DECORATOR_BS_ FUNC BOOL IS_VEHICLE_BITSET_DECORATOR_SET(VEHICLE_INDEX vehID, INT iMPDecoratorBSFlag) IF DECOR_IS_REGISTERED_AS_TYPE("MPBitset", DECOR_TYPE_INT) INT iDecoratorValue = 0 IF DECOR_EXIST_ON(vehID, "MPBitset") iDecoratorValue = DECOR_GET_INT(vehID, "MPBitset") ENDIF IF IS_BIT_SET(iDecoratorValue, iMPDecoratorBSFlag) RETURN TRUE ENDIF ENDIF RETURN FALSE ENDFUNC PROC SET_VEHICLE_BITSET_DECORATOR(VEHICLE_INDEX vehID, INT iMPDecoratorBSFlag) IF DECOR_IS_REGISTERED_AS_TYPE("MPBitset", DECOR_TYPE_INT) INT iDecoratorValue = 0 IF DECOR_EXIST_ON(vehID, "MPBitset") iDecoratorValue = DECOR_GET_INT(vehID, "MPBitset") ENDIF IF NOT IS_BIT_SET(iDecoratorValue, iMPDecoratorBSFlag) SET_BIT(iDecoratorValue, iMPDecoratorBSFlag) DECOR_SET_INT(vehID, "MPBitset", iDecoratorValue) PRINTLN("SET_VEHICLE_BITSET_DECORATOR - Setting bit ", iMPDecoratorBSFlag, " for vehicle with ID ", NATIVE_TO_INT(vehID), ", new value = ", iDecoratorValue) DEBUG_PRINTCALLSTACK() ENDIF ENDIF ENDPROC /// PURPOSE: /// Sets a decorator on the vehicle for the property script to check and block PROC SET_VEHICLE_CANNOT_BE_STORED_IN_PROPERTIES(VEHICLE_INDEX vehID) IF DECOR_IS_REGISTERED_AS_TYPE("Not_Allow_As_Saved_Veh", DECOR_TYPE_INT) IF NOT DECOR_EXIST_ON(vehID, "Not_Allow_As_Saved_Veh") DECOR_SET_INT(vehID, "Not_Allow_As_Saved_Veh", 1) PRINTLN("SET_VEHICLE_CANNOT_BE_STORED_IN_PROPERTIES - Adding Not_Allow_As_Saved_Veh decorator to vehicle with ID ", NATIVE_TO_INT(vehID)) DEBUG_PRINTCALLSTACK() ENDIF ENDIF ENDPROC FUNC INT GET_HYDRAULIC_STRENGTH_FROM_MOD_HYDRO_INDEX(VEHICLE_INDEX vehID, INT iModHydroIndex) IF DOES_ENTITY_EXIST(vehID) AND IS_VEHICLE_DRIVEABLE(vehID) // Some vehicles don't follow the rule so we need to hardcode. SWITCH GET_ENTITY_MODEL(vehID) CASE TORNADO5 SWITCH iModHydroIndex CASE 0 PRINTLN("kr_debug: iModHydroIndex = ", iModHydroIndex, ", iStrength = ", 0) RETURN 0 BREAK //Standard CASE 1 PRINTLN("kr_debug: iModHydroIndex = ", iModHydroIndex, ", iStrength = ", 1) RETURN 1 BREAK //Chrome CASE 2 PRINTLN("kr_debug: iModHydroIndex = ", iModHydroIndex, ", iStrength = ", 2) RETURN 2 BREAK //Quad Pumps (4 in a row) CASE 3 PRINTLN("kr_debug: iModHydroIndex = ", iModHydroIndex, ", iStrength = ", 3) RETURN 3 BREAK //Quad Pumps (2 by 2) CASE 4 PRINTLN("kr_debug: iModHydroIndex = ", iModHydroIndex, ", iStrength = ", 4) RETURN 4 BREAK //Quad Pumps (V-Pattern) CASE 5 PRINTLN("kr_debug: iModHydroIndex = ", iModHydroIndex, ", iStrength = ", 4) RETURN 4 BREAK //Quad Pumps + Panel Color ENDSWITCH BREAK CASE FACTION3 PRINTLN("kr_debug: iModHydroIndex = ", iModHydroIndex, ", iStrength = ", 3, " VEHICLE: FACTION3") RETURN 3 BREAK ENDSWITCH INT iMaxHydroOptions = (GET_NUM_VEHICLE_MODS(vehID, MOD_HYDRO)) INT iMaxHydroStrength = (GET_NUM_VEHICLE_MODS(vehID, MOD_REAR_WHEELS)) FLOAT fPerc = (TO_FLOAT(iModHydroIndex+1) / TO_FLOAT(iMaxHydroOptions)) INT iStrength = FLOOR(TO_FLOAT(iMaxHydroStrength)*fPerc)-1 IF iStrength < 0 iStrength = 0 ENDIF IF iStrength >= iMaxHydroOptions iStrength = iMaxHydroOptions-1 ENDIF PRINTLN("kr_debug: iModHydroIndex = ", iModHydroIndex, ", iMaxHydroOptions = ", iMaxHydroOptions, ", iMaxHydroStrength = ", iMaxHydroStrength, ", fPerc = ", fPerc, ", iStrength = ", iStrength) RETURN iStrength ENDIF RETURN 0 ENDFUNC CONST_INT SUPERMOD_FLAG_HAS_HYDRAULICS 1 FUNC BOOL IS_VEHICLE_A_SUPERMOD_MODEL(MODEL_NAMES eModel, INT iSupermodFlags = 0) SWITCH eModel CASE FACTION2 CASE BUCCANEER2 CASE CHINO2 CASE MOONBEAM2 CASE PRIMO2 CASE VOODOO RETURN TRUE BREAK #IF FEATURE_DLC_1_2022 CASE TENF2 CASE WEEVIL2 CASE BRIOSO3 CASE SENTINEL4 IF (iSupermodFlags & SUPERMOD_FLAG_HAS_HYDRAULICS) != 0 RETURN FALSE ENDIF RETURN TRUE BREAK #ENDIF CASE SABREGT2 IF !g_sMPTunables.bEnablelowrider2_SabreGT RETURN FALSE ELSE RETURN TRUE ENDIF BREAK CASE TORNADO5 IF !g_sMPTunables.bEnablelowrider2_Tornado5 RETURN FALSE ELSE RETURN TRUE ENDIF BREAK CASE VIRGO2 IF !g_sMPTunables.bEnablelowrider2_Virgo3 RETURN FALSE ELSE RETURN TRUE ENDIF BREAK CASE MINIVAN2 IF !g_sMPTunables.bEnablelowrider2_Minivan RETURN FALSE ELSE RETURN TRUE ENDIF BREAK CASE SLAMVAN3 IF !g_sMPTunables.bEnablelowrider2_Slamvan RETURN FALSE ELSE RETURN TRUE ENDIF BREAK CASE FACTION3 IF !g_sMPTunables.bEnablelowrider2_Faction RETURN FALSE ELSE RETURN TRUE ENDIF BREAK CASE SULTANRS CASE BANSHEE2 // These don't have the hydraulics mod so return false if we are querying for them. IF (iSupermodFlags & SUPERMOD_FLAG_HAS_HYDRAULICS) != 0 RETURN FALSE ENDIF RETURN TRUE BREAK CASE COMET3 IF g_sMPTunables.bENABLE_IE_COMET3 IF (iSupermodFlags & SUPERMOD_FLAG_HAS_HYDRAULICS) != 0 RETURN FALSE ENDIF RETURN TRUE ENDIF RETURN FALSE BREAK CASE DIABLOUS2 IF g_sMPTunables.bENABLE_IE_DIABLOUS2 IF (iSupermodFlags & SUPERMOD_FLAG_HAS_HYDRAULICS) != 0 RETURN FALSE ENDIF RETURN TRUE ENDIF RETURN FALSE BREAK CASE FCR2 IF g_sMPTunables.bENABLE_IE_FCR2 IF (iSupermodFlags & SUPERMOD_FLAG_HAS_HYDRAULICS) != 0 RETURN FALSE ENDIF RETURN TRUE ENDIF RETURN FALSE BREAK CASE ELEGY IF g_sMPTunables.bENABLE_IE_ELEGY IF (iSupermodFlags & SUPERMOD_FLAG_HAS_HYDRAULICS) != 0 RETURN FALSE ENDIF RETURN TRUE ENDIF RETURN FALSE BREAK CASE NERO2 IF g_sMPTunables.bENABLE_IE_NERO2 IF (iSupermodFlags & SUPERMOD_FLAG_HAS_HYDRAULICS) != 0 RETURN FALSE ENDIF RETURN TRUE ENDIF RETURN FALSE BREAK CASE ITALIGTB2 IF g_sMPTunables.bENABLE_IE_ITALIGTB2 IF (iSupermodFlags & SUPERMOD_FLAG_HAS_HYDRAULICS) != 0 RETURN FALSE ENDIF RETURN TRUE ENDIF RETURN FALSE BREAK CASE SPECTER2 // These don't have the hydraulics mod so return false if we are querying for them. IF g_sMPTunables.bENABLE_IE_SPECTER2 IF (iSupermodFlags & SUPERMOD_FLAG_HAS_HYDRAULICS) != 0 RETURN FALSE ENDIF RETURN TRUE ENDIF RETURN FALSE BREAK CASE TECHNICAL3 IF g_sMPTunables.bENABLE_TECHNICAL_MODSHOP IF (iSupermodFlags & SUPERMOD_FLAG_HAS_HYDRAULICS) != 0 RETURN FALSE ENDIF RETURN TRUE ENDIF RETURN FALSE BREAK CASE INSURGENT3 IF g_sMPTunables.bENABLE_INSURGENT_MODSHOP IF (iSupermodFlags & SUPERMOD_FLAG_HAS_HYDRAULICS) != 0 RETURN FALSE ENDIF RETURN TRUE ENDIF RETURN FALSE BREAK CASE SLAMVAN4 CASE SLAMVAN5 CASE SLAMVAN6 IF (iSupermodFlags & SUPERMOD_FLAG_HAS_HYDRAULICS) != 0 RETURN FALSE ENDIF RETURN TRUE BREAK CASE ISSI4 CASE ISSI5 CASE ISSI6 IF (iSupermodFlags & SUPERMOD_FLAG_HAS_HYDRAULICS) != 0 RETURN FALSE ENDIF RETURN TRUE BREAK CASE IMPALER2 CASE IMPALER3 CASE IMPALER4 IF (iSupermodFlags & SUPERMOD_FLAG_HAS_HYDRAULICS) != 0 RETURN FALSE ENDIF RETURN TRUE BREAK CASE DEATHBIKE CASE DEATHBIKE2 CASE DEATHBIKE3 IF (iSupermodFlags & SUPERMOD_FLAG_HAS_HYDRAULICS) != 0 RETURN FALSE ENDIF RETURN TRUE BREAK CASE MONSTER3 CASE MONSTER4 CASE MONSTER5 IF (iSupermodFlags & SUPERMOD_FLAG_HAS_HYDRAULICS) != 0 RETURN FALSE ENDIF RETURN TRUE BREAK CASE DOMINATOR4 CASE DOMINATOR5 CASE DOMINATOR6 IF (iSupermodFlags & SUPERMOD_FLAG_HAS_HYDRAULICS) != 0 RETURN FALSE ENDIF RETURN TRUE BREAK CASE BRUISER CASE BRUISER2 CASE BRUISER3 IF (iSupermodFlags & SUPERMOD_FLAG_HAS_HYDRAULICS) != 0 RETURN FALSE ENDIF RETURN TRUE BREAK #IF FEATURE_SUMMER_2020 CASE YOUGA3 CASE GAUNTLET5 CASE YOSEMITE3 IF (iSupermodFlags & SUPERMOD_FLAG_HAS_HYDRAULICS) != 0 RETURN FALSE ENDIF RETURN TRUE BREAK CASE MANANA2 CASE PEYOTE3 CASE GLENDALE2 // Have hydraulics RETURN TRUE BREAK #ENDIF ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL IS_SVM_VEHICLE_MODEL(MODEL_NAMES theModel) SWITCH theModel CASE TECHNICAL2 CASE BOXVILLE5 CASE WASTELANDER CASE PHANTOM2 CASE VOLTIC2 CASE DUNE5 CASE RUINER2 CASE BLAZER5 RETURN TRUE BREAK ENDSWITCH RETURN FALSE ENDFUNC //FDS = Fixed Display Slot FUNC BOOL IS_FDS_VEHICLE_MODEL(MODEL_NAMES theModel, BOOL bIgnoreBunkerVehicles = FALSE) IF IS_SVM_VEHICLE_MODEL(theModel) RETURN TRUE ENDIF SWITCH theModel CASE TRAILERSMALL2 CASE HAULER2 CASE PHANTOM3 IF !bIgnoreBunkerVehicles RETURN TRUE ENDIF BREAK CASE AVENGER CASE KHANJALI CASE CHERNOBOG CASE RIOT2 CASE THRUSTER CASE SPEEDO4 CASE MULE4 CASE POUNDER2 CASE TERBYTE CASE RCBANDITO CASE MINITANK RETURN TRUE BREAK ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL IS_SVM_VEHICLE(VEHICLE_INDEX tempVehicle) SWITCH GET_ENTITY_MODEL(tempVehicle) CASE TECHNICAL2 CASE BOXVILLE5 CASE WASTELANDER CASE PHANTOM2 CASE VOLTIC2 CASE DUNE4 CASE DUNE5 CASE RUINER2 CASE BLAZER5 RETURN TRUE BREAK ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL IS_IN_SVM_TRUCK(VEHICLE_INDEX vehIndex) SWITCH GET_ENTITY_MODEL(vehIndex) CASE PHANTOM2 CASE BOXVILLE5 CASE WASTELANDER RETURN TRUE BREAK ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL IS_WVM_VEHICLE_MODEL(MODEL_NAMES theModel) SWITCH theModel CASE TECHNICAL2 CASE BOXVILLE5 CASE WASTELANDER CASE PHANTOM2 CASE VOLTIC2 CASE DUNE5 CASE RUINER2 CASE BLAZER5 CASE TAMPA3 CASE OPPRESSOR CASE APC CASE HALFTRACK CASE DUNE3 CASE TRAILERSMALL2 RETURN TRUE BREAK ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL IS_WVM_VEHICLE(VEHICLE_INDEX tempVehicle) SWITCH GET_ENTITY_MODEL(tempVehicle) CASE TECHNICAL2 CASE BOXVILLE5 CASE WASTELANDER CASE PHANTOM2 CASE VOLTIC2 CASE DUNE4 CASE DUNE5 CASE RUINER2 CASE BLAZER5 CASE TAMPA3 CASE OPPRESSOR CASE APC CASE HALFTRACK CASE DUNE3 CASE TRAILERSMALL2 RETURN TRUE BREAK ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL IS_VEHICLE_MODEL_SAFE_FOR_SUPERMOD_GARAGE(MODEL_NAMES eModel, BOOL SkipSupermods = FALSE) IF SkipSupermods = FALSE IF IS_VEHICLE_A_SUPERMOD_MODEL(eModel) RETURN TRUE ENDIF ENDIF // Project cars SWITCH eModel CASE FACTION CASE BUCCANEER CASE CHINO CASE MOONBEAM CASE PRIMO CASE VOODOO2 RETURN (IS_MP_LOWRIDER_PACK_PRESENT()) BREAK CASE SABREGT IF g_sMPTunables.bEnablelowrider2_SabreGT #IF IS_DEBUG_BUILD OR g_bAllowAllPremiumVehiclesToBeModified #ENDIF RETURN (IS_MP_LOWRIDER2_PACK_PRESENT()) ENDIF BREAK CASE TORNADO CASE TORNADO2 CASE TORNADO3 IF g_sMPTunables.bEnablelowrider2_Tornado5 #IF IS_DEBUG_BUILD OR g_bAllowAllPremiumVehiclesToBeModified #ENDIF RETURN (IS_MP_LOWRIDER2_PACK_PRESENT()) ENDIF BREAK CASE VIRGO3 IF g_sMPTunables.bEnablelowrider2_Virgo3 #IF IS_DEBUG_BUILD OR g_bAllowAllPremiumVehiclesToBeModified #ENDIF RETURN (IS_MP_LOWRIDER2_PACK_PRESENT()) ENDIF BREAK CASE MINIVAN IF g_sMPTunables.bEnablelowrider2_Minivan #IF IS_DEBUG_BUILD OR g_bAllowAllPremiumVehiclesToBeModified #ENDIF RETURN (IS_MP_LOWRIDER2_PACK_PRESENT()) ENDIF BREAK CASE SLAMVAN IF g_sMPTunables.bEnablelowrider2_Slamvan #IF IS_DEBUG_BUILD OR g_bAllowAllPremiumVehiclesToBeModified #ENDIF RETURN (IS_MP_LOWRIDER2_PACK_PRESENT()) ENDIF BREAK CASE SULTAN CASE BANSHEE RETURN (IS_MP_JANUARY_2016_PACK_PRESENT()) BREAK CASE COMET2 IF g_sMPTunables.bENABLE_IE_COMET3 #IF IS_DEBUG_BUILD OR g_bAllowAllPremiumVehiclesToBeModified #ENDIF RETURN (IS_MP_IMPORT_EXPORT_PACK_PRESENT()) ENDIF BREAK CASE DIABLOUS IF g_sMPTunables.bENABLE_IE_DIABLOUS2 #IF IS_DEBUG_BUILD OR g_bAllowAllPremiumVehiclesToBeModified #ENDIF RETURN (IS_MP_IMPORT_EXPORT_PACK_PRESENT()) ENDIF BREAK CASE FCR IF g_sMPTunables.bENABLE_IE_FCR2 #IF IS_DEBUG_BUILD OR g_bAllowAllPremiumVehiclesToBeModified #ENDIF RETURN (IS_MP_IMPORT_EXPORT_PACK_PRESENT()) ENDIF BREAK CASE ELEGY2 IF g_sMPTunables.bENABLE_IE_ELEGY #IF IS_DEBUG_BUILD OR g_bAllowAllPremiumVehiclesToBeModified #ENDIF RETURN (IS_MP_IMPORT_EXPORT_PACK_PRESENT()) ENDIF BREAK CASE NERO IF g_sMPTunables.bENABLE_IE_NERO2 #IF IS_DEBUG_BUILD OR g_bAllowAllPremiumVehiclesToBeModified #ENDIF RETURN (IS_MP_IMPORT_EXPORT_PACK_PRESENT()) ENDIF BREAK CASE ITALIGTB IF g_sMPTunables.bENABLE_IE_ITALIGTB2 #IF IS_DEBUG_BUILD OR g_bAllowAllPremiumVehiclesToBeModified #ENDIF RETURN (IS_MP_IMPORT_EXPORT_PACK_PRESENT()) ENDIF BREAK CASE SPECTER IF g_sMPTunables.bENABLE_IE_SPECTER2 #IF IS_DEBUG_BUILD OR g_bAllowAllPremiumVehiclesToBeModified #ENDIF RETURN (IS_MP_IMPORT_EXPORT_PACK_PRESENT()) ENDIF BREAK CASE TECHNICAL IF g_sMPTunables.bENABLE_TECHNICAL_MODSHOP #IF IS_DEBUG_BUILD OR g_bAllowAllPremiumVehiclesToBeModified #ENDIF RETURN (IS_MP_GUNRUNNING_PACK_PRESENT()) ENDIF BREAK CASE INSURGENT IF g_sMPTunables.bENABLE_INSURGENT_MODSHOP #IF IS_DEBUG_BUILD OR g_bAllowAllPremiumVehiclesToBeModified #ENDIF RETURN (IS_MP_GUNRUNNING_PACK_PRESENT()) ENDIF BREAK CASE RATLOADER CASE RATLOADER2 RETURN IS_MP_ARENA_WARS() BREAK CASE GLENDALE IF IS_MP_ARENA_WARS() #IF FEATURE_SUMMER_2020 OR IS_MP_SUMMER_2020() #ENDIF RETURN TRUE ENDIF BREAK CASE IMPALER RETURN IS_MP_ARENA_WARS() BREAK CASE ISSI3 RETURN IS_MP_ARENA_WARS() BREAK CASE GARGOYLE RETURN IS_MP_ARENA_WARS() BREAK CASE DOMINATOR RETURN IS_MP_ARENA_WARS() BREAK CASE DOMINATOR2 RETURN IS_MP_ARENA_WARS() BREAK CASE IMPERATOR RETURN IS_MP_ARENA_WARS() BREAK CASE IMPERATOR2 RETURN IS_MP_ARENA_WARS() BREAK CASE IMPERATOR3 RETURN IS_MP_ARENA_WARS() BREAK CASE DEATHBIKE RETURN IS_MP_ARENA_WARS() BREAK CASE DEATHBIKE2 RETURN IS_MP_ARENA_WARS() BREAK CASE DEATHBIKE3 RETURN IS_MP_ARENA_WARS() BREAK CASE IMPALER2 CASE BRUTUS CASE BRUISER CASE SLAMVAN4 CASE ISSI4 CASE MONSTER3 CASE SCARAB CASE CERBERUS CASE DOMINATOR4 CASE ZR380 CASE IMPALER3 CASE BRUTUS2 CASE BRUISER2 CASE SLAMVAN5 CASE ISSI5 CASE MONSTER4 CASE SCARAB2 CASE CERBERUS2 CASE DOMINATOR5 CASE ZR3802 CASE IMPALER4 CASE BRUTUS3 CASE BRUISER3 CASE SLAMVAN6 CASE ISSI6 CASE MONSTER5 CASE SCARAB3 CASE CERBERUS3 CASE DOMINATOR6 CASE ZR3803 RETURN IS_MP_ARENA_WARS() BREAK #IF FEATURE_SUMMER_2020 CASE YOUGA2 IF g_sMPTunables.bENABLE_VEH_YOUGA3 RETURN IS_MP_SUMMER_2020() ENDIF BREAK CASE GAUNTLET3 IF g_sMPTunables.bENABLE_VEH_GAUNTLET5 RETURN IS_MP_SUMMER_2020() ENDIF BREAK CASE MANANA IF g_sMPTunables.bENABLE_VEH_MANANA2 RETURN IS_MP_SUMMER_2020() ENDIF BREAK CASE PEYOTE IF g_sMPTunables.bENABLE_VEH_PEYOTE3 RETURN IS_MP_SUMMER_2020() ENDIF BREAK CASE YOSEMITE IF g_sMPTunables.bENABLE_VEH_YOSEMITE3 RETURN IS_MP_SUMMER_2020() ENDIF BREAK #ENDIF ENDSWITCH #IF FEATURE_DLC_1_2022 SWITCH eModel CASE TENF IF g_sMPTunables.bENABLE_VEHICLE_TENF2 RETURN IS_MP_SUMMER_2022_PACK_PRESENT() ENDIF BREAK CASE WEEVIL IF g_sMPTunables.bENABLE_VEHICLE_WEEVIL2 RETURN IS_MP_SUMMER_2022_PACK_PRESENT() ENDIF BREAK CASE BRIOSO2 IF g_sMPTunables.bENABLE_VEHICLE_BRIOSO3 RETURN IS_MP_SUMMER_2022_PACK_PRESENT() ENDIF BREAK CASE SENTINEL3 IF g_sMPTunables.bENABLE_VEHICLE_SENTINEL4 RETURN IS_MP_SUMMER_2022_PACK_PRESENT() ENDIF BREAK ENDSWITCH #ENDIF RETURN FALSE ENDFUNC // Gets number of super mod variation for each car // Cars with more than 1 super mod variation should be added to this func FUNC INT GET_NUM_SUPERMOD_VARIATION(MODEL_NAMES eModel) INT iNumSuperModVar SWITCH eModel CASE FACTION IF g_sMPTunables.bEnablelowrider2_Faction #IF IS_DEBUG_BUILD OR g_bAllowAllPremiumVehiclesToBeModified #ENDIF iNumSuperModVar = 2 ELSE iNumSuperModVar = 1 ENDIF BREAK CASE SLAMVAN CASE GLENDALE IF NOT IS_PLAYER_IN_ARENA_GARAGE(PLAYER_ID()) iNumSuperModVar = 1 ELSE IF PLAYER_ID() != INVALID_PLAYER_INDEX() IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.bdArenaGarageData.iBSArenaWars, PROPERTY_BROADCAST_BS_ARENA_GARAGE_SUPERMOD_MOD_SHOP_PURCHASED) iNumSuperModVar = 4 ELSE iNumSuperModVar = 3 ENDIF ENDIF ENDIF BREAK CASE IMPERATOR CASE IMPERATOR2 CASE IMPERATOR3 CASE DEATHBIKE CASE DEATHBIKE2 CASE DEATHBIKE3 CASE MONSTER3 CASE MONSTER4 CASE MONSTER5 CASE BRUISER CASE BRUISER2 CASE BRUISER3 CASE IMPALER2 CASE IMPALER3 CASE IMPALER4 CASE ISSI4 CASE ISSI5 CASE ISSI6 CASE DOMINATOR4 CASE DOMINATOR5 CASE DOMINATOR6 CASE ZR380 CASE ZR3802 CASE ZR3803 CASE CERBERUS CASE CERBERUS2 CASE CERBERUS3 CASE SCARAB CASE SCARAB2 CASE SCARAB3 CASE SLAMVAN4 CASE SLAMVAN5 CASE SLAMVAN6 CASE BRUTUS CASE BRUTUS2 CASE BRUTUS3 iNumSuperModVar = 2 BREAK CASE GARGOYLE CASE RATLOADER CASE RATLOADER2 CASE ISSI3 CASE DOMINATOR CASE DOMINATOR2 CASE IMPALER iNumSuperModVar = 3 BREAK DEFAULT iNumSuperModVar = 1 BREAK ENDSWITCH RETURN iNumSuperModVar ENDFUNC FUNC MODEL_NAMES GET_VEHICLE_SUPERMOD_MODEL(MODEL_NAMES eModel, INT iVariant) SWITCH eModel CASE FACTION IF GET_NUM_SUPERMOD_VARIATION(eModel) = 1 RETURN FACTION2 ELIF GET_NUM_SUPERMOD_VARIATION(eModel) = 2 IF g_sMPTunables.bEnablelowrider2_Faction #IF IS_DEBUG_BUILD OR g_bAllowAllPremiumVehiclesToBeModified #ENDIF IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN FACTION3 ENDIF ENDIF IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN FACTION2 ENDIF ENDIF BREAK CASE BUCCANEER RETURN BUCCANEER2 BREAK CASE CHINO RETURN CHINO2 BREAK CASE MOONBEAM RETURN MOONBEAM2 BREAK CASE PRIMO RETURN PRIMO2 BREAK CASE VOODOO2 RETURN VOODOO BREAK CASE COMET2 IF g_sMPTunables.bENABLE_IE_COMET3 #IF IS_DEBUG_BUILD OR g_bAllowAllPremiumVehiclesToBeModified #ENDIF RETURN COMET3 ENDIF BREAK CASE DIABLOUS IF g_sMPTunables.bENABLE_IE_DIABLOUS2 #IF IS_DEBUG_BUILD OR g_bAllowAllPremiumVehiclesToBeModified #ENDIF RETURN DIABLOUS2 ENDIF BREAK CASE FCR IF g_sMPTunables.bENABLE_IE_FCR2 #IF IS_DEBUG_BUILD OR g_bAllowAllPremiumVehiclesToBeModified #ENDIF RETURN FCR2 ENDIF BREAK CASE ITALIGTB IF g_sMPTunables.bENABLE_IE_ITALIGTB2 #IF IS_DEBUG_BUILD OR g_bAllowAllPremiumVehiclesToBeModified #ENDIF RETURN ITALIGTB2 ENDIF BREAK CASE SPECTER IF g_sMPTunables.bENABLE_IE_SPECTER2 #IF IS_DEBUG_BUILD OR g_bAllowAllPremiumVehiclesToBeModified #ENDIF RETURN SPECTER2 ENDIF BREAK CASE NERO IF g_sMPTunables.bENABLE_IE_NERO2 #IF IS_DEBUG_BUILD OR g_bAllowAllPremiumVehiclesToBeModified #ENDIF RETURN NERO2 ENDIF BREAK CASE ELEGY2 IF g_sMPTunables.bENABLE_IE_ELEGY #IF IS_DEBUG_BUILD OR g_bAllowAllPremiumVehiclesToBeModified #ENDIF RETURN ELEGY ENDIF BREAK CASE SABREGT RETURN SABREGT2 BREAK CASE TORNADO CASE TORNADO2 CASE TORNADO3 RETURN TORNADO5 BREAK CASE VIRGO3 RETURN VIRGO2 BREAK CASE MINIVAN RETURN MINIVAN2 BREAK CASE SLAMVAN IF NOT IS_PLAYER_IN_ARENA_GARAGE(PLAYER_ID()) RETURN SLAMVAN3 ELSE IF PLAYER_ID() != INVALID_PLAYER_INDEX() IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.bdArenaGarageData.iBSArenaWars, PROPERTY_BROADCAST_BS_ARENA_GARAGE_SUPERMOD_MOD_SHOP_PURCHASED) IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN SLAMVAN3 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN SLAMVAN4 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_3) RETURN SLAMVAN5 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_4) RETURN SLAMVAN6 ENDIF ELSE IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN SLAMVAN4 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN SLAMVAN5 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_3) RETURN SLAMVAN6 ENDIF ENDIF ENDIF ENDIF BREAK CASE SULTAN RETURN SULTANRS BREAK CASE BANSHEE RETURN BANSHEE2 BREAK CASE TECHNICAL IF g_sMPTunables.bENABLE_TECHNICAL_MODSHOP #IF IS_DEBUG_BUILD OR g_bAllowAllPremiumVehiclesToBeModified #ENDIF RETURN TECHNICAL3 ENDIF BREAK CASE INSURGENT IF g_sMPTunables.bENABLE_INSURGENT_MODSHOP #IF IS_DEBUG_BUILD OR g_bAllowAllPremiumVehiclesToBeModified #ENDIF RETURN INSURGENT3 ENDIF BREAK CASE RATLOADER CASE RATLOADER2 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN MONSTER3 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN MONSTER4 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_3) RETURN MONSTER5 ENDIF BREAK CASE MONSTER3 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN MONSTER4 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN MONSTER5 ENDIF BREAK CASE MONSTER4 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN MONSTER3 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN MONSTER5 ENDIF BREAK CASE MONSTER5 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN MONSTER3 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN MONSTER4 ENDIF BREAK CASE GLENDALE IF NOT IS_PLAYER_IN_ARENA_GARAGE(PLAYER_ID()) RETURN GLENDALE2 ELSE IF IS_BIT_SET(GlobalplayerBD_FM[NATIVE_TO_INT(PLAYER_ID())].propertyDetails.bdArenaGarageData.iBSArenaWars, PROPERTY_BROADCAST_BS_ARENA_GARAGE_SUPERMOD_MOD_SHOP_PURCHASED) IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN GLENDALE2 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN BRUISER ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_3) RETURN BRUISER2 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_4) RETURN BRUISER3 ENDIF ELSE IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN BRUISER ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN BRUISER2 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_3) RETURN BRUISER3 ENDIF ENDIF ENDIF BREAK CASE BRUISER IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN BRUISER2 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN BRUISER3 ENDIF BREAK CASE BRUISER2 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN BRUISER ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN BRUISER3 ENDIF BREAK CASE BRUISER3 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN BRUISER ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN BRUISER2 ENDIF BREAK CASE IMPALER IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN IMPALER2 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN IMPALER3 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_3) RETURN IMPALER4 ENDIF BREAK CASE IMPALER2 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN IMPALER3 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN IMPALER4 ENDIF BREAK CASE IMPALER3 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN IMPALER2 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN IMPALER4 ENDIF BREAK CASE IMPALER4 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN IMPALER2 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN IMPALER3 ENDIF BREAK CASE ISSI3 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN ISSI4 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN ISSI5 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_3) RETURN ISSI6 ENDIF BREAK CASE ISSI4 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN ISSI5 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN ISSI6 ENDIF BREAK CASE ISSI5 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN ISSI4 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN ISSI6 ENDIF BREAK CASE ISSI6 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN ISSI4 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN ISSI5 ENDIF BREAK CASE GARGOYLE IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN DEATHBIKE ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN DEATHBIKE2 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_3) RETURN DEATHBIKE3 ENDIF BREAK CASE DOMINATOR CASE DOMINATOR2 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN DOMINATOR4 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN DOMINATOR5 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_3) RETURN DOMINATOR6 ENDIF BREAK CASE DOMINATOR4 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN DOMINATOR5 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN DOMINATOR6 ENDIF BREAK CASE DOMINATOR5 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN DOMINATOR4 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN DOMINATOR6 ENDIF BREAK CASE DOMINATOR6 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN DOMINATOR4 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN DOMINATOR5 ENDIF BREAK CASE IMPERATOR IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN IMPERATOR2 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN IMPERATOR3 ENDIF BREAK CASE IMPERATOR2 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN IMPERATOR ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN IMPERATOR3 ENDIF BREAK CASE IMPERATOR3 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN IMPERATOR ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN IMPERATOR2 ENDIF BREAK CASE DEATHBIKE IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN DEATHBIKE2 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN DEATHBIKE3 ENDIF BREAK CASE DEATHBIKE2 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN DEATHBIKE ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN DEATHBIKE3 ENDIF BREAK CASE DEATHBIKE3 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN DEATHBIKE ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN DEATHBIKE2 ENDIF BREAK CASE ZR380 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN ZR3802 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN ZR3803 ENDIF BREAK CASE ZR3802 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN ZR380 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN ZR3803 ENDIF BREAK CASE ZR3803 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN ZR380 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN ZR3802 ENDIF BREAK CASE CERBERUS IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN CERBERUS2 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN CERBERUS3 ENDIF BREAK CASE CERBERUS2 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN CERBERUS ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN CERBERUS3 ENDIF BREAK CASE CERBERUS3 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN CERBERUS ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN CERBERUS2 ENDIF BREAK CASE SCARAB IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN SCARAB2 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN SCARAB3 ENDIF BREAK CASE SCARAB2 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN SCARAB ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN SCARAB3 ENDIF BREAK CASE SCARAB3 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN SCARAB ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN SCARAB2 ENDIF BREAK CASE SLAMVAN4 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN SLAMVAN5 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN SLAMVAN6 ENDIF BREAK CASE SLAMVAN5 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN SLAMVAN4 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN SLAMVAN6 ENDIF BREAK CASE SLAMVAN6 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN SLAMVAN4 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN SLAMVAN5 ENDIF BREAK CASE BRUTUS IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN BRUTUS2 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN BRUTUS3 ENDIF BREAK CASE BRUTUS2 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN BRUTUS ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN BRUTUS3 ENDIF BREAK CASE BRUTUS3 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN BRUTUS ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN BRUTUS2 ENDIF BREAK #IF FEATURE_SUMMER_2020 CASE YOUGA2 RETURN YOUGA3 BREAK CASE GAUNTLET3 RETURN GAUNTLET5 BREAK CASE MANANA RETURN MANANA2 BREAK CASE PEYOTE RETURN PEYOTE3 #ENDIF CASE YOSEMITE RETURN YOSEMITE3 #IF FEATURE_DLC_1_2022 CASE TENF RETURN TENF2 CASE WEEVIL RETURN WEEVIL2 CASE BRIOSO2 RETURN BRIOSO3 CASE SENTINEL3 RETURN SENTINEL4 #ENDIF ENDSWITCH MODEL_NAMES eSuperMod // If vehicle is already supermod then return same supermod model IF IS_VEHICLE_A_SUPERMOD_MODEL(eModel) eSuperMod = eModel //PRINTLN("GET_VEHICLE_SUPERMOD_MODEL - returning same supermod model which we already have") ELSE eSuperMod = DUMMY_MODEL_FOR_SCRIPT PRINTLN("GET_VEHICLE_SUPERMOD_MODEL - returning DUMMY_MODEL_FOR_SCRIPT") ENDIF RETURN eSuperMod ENDFUNC FUNC MODEL_NAMES GET_SUPERMOOD_VEHICLE_BASE_MODEL(MODEL_NAMES eModel, INT iVariant) SWITCH eModel CASE FACTION2 CASE FACTION3 RETURN FACTION BREAK CASE BUCCANEER2 RETURN BUCCANEER BREAK CASE CHINO2 RETURN CHINO BREAK CASE MOONBEAM2 RETURN MOONBEAM BREAK CASE PRIMO2 RETURN PRIMO BREAK CASE VOODOO RETURN VOODOO2 BREAK CASE SABREGT2 RETURN SABREGT BREAK CASE TORNADO5 RETURN TORNADO BREAK CASE VIRGO2 RETURN VIRGO3 BREAK CASE MINIVAN2 RETURN MINIVAN BREAK CASE SLAMVAN3 RETURN SLAMVAN BREAK CASE SULTANRS RETURN SULTAN BREAK CASE BANSHEE2 RETURN BANSHEE BREAK CASE COMET3 RETURN COMET2 BREAK CASE DIABLOUS2 RETURN DIABLOUS BREAK CASE FCR2 RETURN FCR BREAK CASE ITALIGTB2 RETURN ITALIGTB BREAK CASE SPECTER2 RETURN SPECTER BREAK CASE NERO2 RETURN NERO BREAK CASE ELEGY RETURN ELEGY2 BREAK CASE TECHNICAL3 RETURN TECHNICAL BREAK CASE INSURGENT3 RETURN INSURGENT BREAK CASE MONSTER3 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN MONSTER4 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN MONSTER5 ENDIF BREAK CASE MONSTER5 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN MONSTER3 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN MONSTER4 ENDIF BREAK CASE MONSTER4 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN MONSTER3 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN MONSTER5 ENDIF BREAK CASE BRUISER IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN GLENDALE ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN BRUISER2 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_3) RETURN BRUISER3 ENDIF BREAK CASE BRUISER2 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN BRUISER ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN BRUISER3 ENDIF BREAK CASE BRUISER3 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN BRUISER ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN BRUISER2 ENDIF BREAK CASE IMPALER2 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN IMPALER ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN IMPALER3 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_3) RETURN IMPALER4 ENDIF BREAK CASE IMPALER4 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN IMPALER ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN IMPALER2 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_3) RETURN IMPALER3 ENDIF BREAK CASE IMPALER3 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN IMPALER ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN IMPALER2 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_3) RETURN IMPALER4 ENDIF BREAK CASE ISSI4 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN ISSI3 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN ISSI5 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_3) RETURN ISSI6 ENDIF BREAK CASE ISSI6 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN ISSI4 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN ISSI5 ENDIF BREAK CASE ISSI5 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN ISSI4 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN ISSI6 ENDIF BREAK CASE DEATHBIKE IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN GARGOYLE ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN DEATHBIKE2 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_3) RETURN DEATHBIKE3 ENDIF BREAK CASE DOMINATOR4 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN DOMINATOR ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN DOMINATOR2 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_3) RETURN DOMINATOR5 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_4) RETURN DOMINATOR6 ENDIF BREAK CASE DOMINATOR5 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN DOMINATOR4 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN DOMINATOR6 ENDIF BREAK CASE DOMINATOR6 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN DOMINATOR4 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN DOMINATOR5 ENDIF BREAK CASE IMPERATOR IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN IMPERATOR2 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN IMPERATOR3 ENDIF BREAK CASE IMPERATOR2 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN IMPERATOR ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN IMPERATOR3 ENDIF BREAK CASE IMPERATOR3 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN IMPERATOR ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN IMPERATOR2 ENDIF BREAK CASE DEATHBIKE2 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN DEATHBIKE ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN DEATHBIKE3 ENDIF BREAK CASE DEATHBIKE3 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN DEATHBIKE ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN DEATHBIKE2 ENDIF BREAK CASE ZR380 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN ZR3802 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN ZR3803 ENDIF BREAK CASE ZR3802 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN ZR380 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN ZR3803 ENDIF BREAK CASE ZR3803 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN ZR380 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN ZR3802 ENDIF BREAK CASE CERBERUS IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN CERBERUS2 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN CERBERUS3 ENDIF BREAK CASE CERBERUS2 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN CERBERUS ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN CERBERUS3 ENDIF BREAK CASE CERBERUS3 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN CERBERUS ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN CERBERUS2 ENDIF BREAK CASE SCARAB IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN SCARAB2 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN SCARAB3 ENDIF BREAK CASE SCARAB2 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN SCARAB ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN SCARAB3 ENDIF BREAK CASE SCARAB3 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN SCARAB ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN SCARAB2 ENDIF BREAK CASE SLAMVAN4 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN SLAMVAN ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN SLAMVAN5 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_3) RETURN SLAMVAN6 ENDIF BREAK CASE SLAMVAN5 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN SLAMVAN ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN SLAMVAN4 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_3) RETURN SLAMVAN6 ENDIF BREAK CASE SLAMVAN6 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN SLAMVAN ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN SLAMVAN4 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_3) RETURN SLAMVAN5 ENDIF BREAK CASE BRUTUS IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN BRUTUS2 ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN BRUTUS3 ENDIF BREAK CASE BRUTUS2 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN BRUTUS ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN BRUTUS3 ENDIF BREAK CASE BRUTUS3 IF iVariant = ENUM_TO_INT(SUPERMOD_VAR_1) RETURN BRUTUS ELIF iVariant = ENUM_TO_INT(SUPERMOD_VAR_2) RETURN BRUTUS2 ENDIF BREAK #IF FEATURE_SUMMER_2020 CASE YOUGA3 RETURN YOUGA2 BREAK CASE GAUNTLET5 RETURN GAUNTLET3 BREAK CASE MANANA2 RETURN MANANA BREAK CASE PEYOTE3 RETURN PEYOTE #ENDIF CASE YOSEMITE3 RETURN YOSEMITE CASE GLENDALE2 RETURN GLENDALE #IF FEATURE_DLC_1_2022 CASE TENF2 RETURN TENF CASE WEEVIL2 RETURN WEEVIL CASE BRIOSO3 RETURN BRIOSO2 CASE SENTINEL4 RETURN SENTINEL3 #ENDIF ENDSWITCH RETURN DUMMY_MODEL_FOR_SCRIPT ENDFUNC FUNC BOOL IS_VEHICLE_UPGRADABLE_PEGASUS_VEHICLE(VEHICLE_INDEX theVeh, BOOL bLocalPlayerOnly = FALSE) SWITCH GET_ENTITY_MODEL(theVeh) CASE TECHNICAL CASE INSURGENT IF IS_VEHICLE_MODEL_SAFE_FOR_SUPERMOD_GARAGE(GET_ENTITY_MODEL(theVeh)) //local player as owner check IF MPGlobalsAmbience.vehPegasusVehicle = theVeh RETURN TRUE ELSE //remote player as owner check IF GET_OWNER_OF_PEGASUS_VEHICLE(theVeh) != -1 AND NOT bLocalPlayerOnly RETURN TRUE ENDIF ENDIF ENDIF BREAK ENDSWITCH RETURN FALSE ENDFUNC #IF FEATURE_HEIST_ISLAND FUNC BOOL IS_VEHICLE_A_MOON_POOL_VEHICLE(VEHICLE_INDEX Vehicle) IF DOES_ENTITY_EXIST(Vehicle) SWITCH GET_ENTITY_MODEL(Vehicle) CASE AVISA CASE SEASPARROW2 CASE SEASPARROW3 // Folded rotors. CASE TOREADOR CASE STROMBERG PRINTLN("[IS_VEHICLE_A_MOON_POOL_VEHICLE] Yes, returning true.") RETURN TRUE BREAK ENDSWITCH ENDIF PRINTLN("[IS_VEHICLE_A_MOON_POOL_VEHICLE] No, returning false.") RETURN FALSE ENDFUNC #ENDIF FUNC BOOL IS_VEHICLE_A_PEGASUS_UPGRADE_MODEL(MODEL_NAMES eModel) SWITCH eModel CASE TECHNICAL3 CASE INSURGENT3 IF IS_VEHICLE_MODEL_SAFE_FOR_SUPERMOD_GARAGE(eModel) RETURN TRUE ENDIF BREAK ENDSWITCH RETURN FALSE ENDFUNC PROC SET_VEHICLE_HASH_INDI_SMOKE_FLAG(VEHICLE_INDEX vehID, BOOL bHasFlag) IF DOES_ENTITY_EXIST(vehID) IF IS_VEHICLE_DRIVEABLE(vehID) IF DECOR_IS_REGISTERED_AS_TYPE("MPBitset", DECOR_TYPE_INT) INT iDecoratorValue IF DECOR_EXIST_ON(vehID, "MPBitset") iDecoratorValue = DECOR_GET_INT(vehID,"MPBitset") ENDIF IF bHasFlag SET_BIT(iDecoratorValue,MP_DECORATOR_BS_LOOP_TYRE_SMOKE) ELSE CLEAR_BIT(iDecoratorValue,MP_DECORATOR_BS_LOOP_TYRE_SMOKE) ENDIF DECOR_SET_INT(vehID, "MPBitset", iDecoratorValue) ENDIF ENDIF ENDIF ENDPROC FUNC BOOL HAS_VEHICLE_GOT_INDI_SMOKE_FLAG(VEHICLE_INDEX vehID) IF DOES_ENTITY_EXIST(vehID) IF IS_VEHICLE_DRIVEABLE(vehID) IF DECOR_IS_REGISTERED_AS_TYPE("MPBitset", DECOR_TYPE_INT) INT iDecoratorValue IF DECOR_EXIST_ON(vehID, "MPBitset") iDecoratorValue = DECOR_GET_INT(vehID,"MPBitset") ENDIF RETURN IS_BIT_SET(iDecoratorValue,MP_DECORATOR_BS_LOOP_TYRE_SMOKE) ENDIF ENDIF ENDIF RETURN FALSE ENDFUNC PROC GET_TYRE_SMOKE_RGB_FROM_COLOUR_ENUM(TYRE_SMOKE_COLOUR_ENUM eSmoke, INT &iR, INT &iG, INT &iB) iR = 255 iG = 255 iB = 255 INT iTempA SWITCH eSmoke CASE TYRE_SMOKE_WHITE iR = 255 iG = 255 iB = 255 BREAK CASE TYRE_SMOKE_INDI_PAT iR = 0 iG = 0 iB = 0 BREAK CASE TYRE_SMOKE_ORANGE iR = 255 iG = 127 iB = 0 BREAK CASE TYRE_SMOKE_YELLOW iR = 252 iG = 238 iB = 0 BREAK CASE TYRE_SMOKE_BLUE iR = 0 iG = 174 iB = 239 BREAK CASE TYRE_SMOKE_RED iR = 226 iG = 6 iB = 6 BREAK CASE TYRE_SMOKE_BLACK iR = 20 iG = 20 iB = 20 BREAK CASE TYRE_SMOKE_CREW iR = g_Private_LocalPlayerCrew_Colour_Red iG = g_Private_LocalPlayerCrew_Colour_Green iB = g_Private_LocalPlayerCrew_Colour_Blue BREAK CASE TYRE_SMOKE_BUSINESS_PURPLE GET_HUD_COLOUR(HUD_COLOUR_PURPLE, iR, iG, iB, iTempA) BREAK CASE TYRE_SMOKE_BUSINESS_GREEN GET_HUD_COLOUR(HUD_COLOUR_GREEN, iR, iG, iB, iTempA) BREAK CASE TYRE_SMOKE_HIPSTER_PINK GET_HUD_COLOUR(HUD_COLOUR_PINK, iR, iG, iB, iTempA) BREAK CASE TYRE_SMOKE_HIPSTER_BROWN GET_HUD_COLOUR(HUD_COLOUR_BRONZE, iR, iG, iB, iTempA) BREAK ENDSWITCH ENDPROC FUNC INT GET_TYRE_SMOKE_CATALOGUE_INDEX_FROM_COLOUR_ENUM(TYRE_SMOKE_COLOUR_ENUM eSmoke) SWITCH eSmoke CASE TYRE_SMOKE_INVALID RETURN 255 BREAK CASE TYRE_SMOKE_CREW RETURN 1 BREAK CASE TYRE_SMOKE_WHITE RETURN 2 BREAK CASE TYRE_SMOKE_INDI_PAT RETURN 3 BREAK CASE TYRE_SMOKE_ORANGE RETURN 4 BREAK CASE TYRE_SMOKE_YELLOW RETURN 5 BREAK CASE TYRE_SMOKE_BLUE RETURN 6 BREAK CASE TYRE_SMOKE_RED RETURN 7 BREAK CASE TYRE_SMOKE_BLACK RETURN 8 BREAK CASE TYRE_SMOKE_BUSINESS_PURPLE RETURN 9 BREAK CASE TYRE_SMOKE_BUSINESS_GREEN RETURN 10 BREAK CASE TYRE_SMOKE_HIPSTER_PINK RETURN 11 BREAK CASE TYRE_SMOKE_HIPSTER_BROWN RETURN 12 BREAK ENDSWITCH RETURN 255 ENDFUNC FUNC TYRE_SMOKE_COLOUR_ENUM GET_TYRE_SMOKE_COLOUR_ENUM_FORM_CATALOGUE_INDEX(INT iIndex) SWITCH iIndex CASE 255 RETURN TYRE_SMOKE_INVALID BREAK CASE 1 RETURN TYRE_SMOKE_CREW BREAK CASE 2 RETURN TYRE_SMOKE_WHITE BREAK CASE 3 RETURN TYRE_SMOKE_INDI_PAT BREAK CASE 4 RETURN TYRE_SMOKE_ORANGE BREAK CASE 5 RETURN TYRE_SMOKE_YELLOW BREAK CASE 6 RETURN TYRE_SMOKE_BLUE BREAK CASE 7 RETURN TYRE_SMOKE_RED BREAK CASE 8 RETURN TYRE_SMOKE_BLACK BREAK CASE 9 RETURN TYRE_SMOKE_BUSINESS_PURPLE BREAK CASE 10 RETURN TYRE_SMOKE_BUSINESS_GREEN BREAK CASE 11 RETURN TYRE_SMOKE_HIPSTER_PINK BREAK CASE 12 RETURN TYRE_SMOKE_HIPSTER_BROWN BREAK ENDSWITCH RETURN TYRE_SMOKE_INVALID ENDFUNC FUNC TYRE_SMOKE_COLOUR_ENUM GET_TYRE_SMOKE_COLOUR_ENUM_FROM_RGB(INT iR, INT iG, INT iB) IF iR = 255 AND iG = 255 AND iB = 255 RETURN TYRE_SMOKE_WHITE ENDIF IF iR = 0 AND iG = 0 AND iB = 0 PRINTLN("[INDPTFX] - GET_TYRE_SMOKE_COLOUR_ENUM_FROM_RGB - TYRE_SMOKE_INDI_PAT") RETURN TYRE_SMOKE_INDI_PAT ENDIF IF iR = 255 AND iG = 127 AND iB = 0 RETURN TYRE_SMOKE_ORANGE ENDIF IF iR = 252 AND iG = 238 AND iB = 0 RETURN TYRE_SMOKE_YELLOW ENDIF IF iR = 0 AND iG = 174 AND iB = 239 RETURN TYRE_SMOKE_BLUE ENDIF IF iR = 226 AND iG = 6 AND iB = 6 RETURN TYRE_SMOKE_RED ENDIF IF iR = 20 AND iG = 20 AND iB = 20 RETURN TYRE_SMOKE_BLACK ENDIF IF iR = g_Private_LocalPlayerCrew_Colour_Red AND iG = g_Private_LocalPlayerCrew_Colour_Green AND iB = g_Private_LocalPlayerCrew_Colour_Blue RETURN TYRE_SMOKE_CREW ENDIF IF iR = 1 AND iG = 1 AND iB = 1 RETURN TYRE_SMOKE_INVALID ENDIF IF IS_MP_BUSINESS_PACK_PRESENT() INT iHudR, iHudG, iHudB, iHudA GET_HUD_COLOUR(HUD_COLOUR_PURPLE, iHudR, iHudG, iHudB, iHudA) IF iR = iHudR AND iG = iHudG AND iB = iHudB RETURN TYRE_SMOKE_BUSINESS_PURPLE ENDIF GET_HUD_COLOUR(HUD_COLOUR_GREEN, iHudR, iHudG, iHudB, iHudA) IF iR = iHudR AND iG = iHudG AND iB = iHudB RETURN TYRE_SMOKE_BUSINESS_GREEN ENDIF // These differ in CG and NG. IF (iR = 114 AND iG = 204 AND iB = 114) OR (iR = 102 AND iG = 152 AND iB = 104) RETURN TYRE_SMOKE_BUSINESS_GREEN ENDIF ENDIF IF IS_MP_HIPSTER_PACK_PRESENT() INT iHudR, iHudG, iHudB, iHudA GET_HUD_COLOUR(HUD_COLOUR_PINK, iHudR, iHudG, iHudB, iHudA) IF iR = iHudR AND iG = iHudG AND iB = iHudB RETURN TYRE_SMOKE_HIPSTER_PINK ENDIF GET_HUD_COLOUR(HUD_COLOUR_BRONZE, iHudR, iHudG, iHudB, iHudA) IF iR = iHudR AND iG = iHudG AND iB = iHudB RETURN TYRE_SMOKE_HIPSTER_BROWN ENDIF ENDIF RETURN TYRE_SMOKE_WHITE ENDFUNC PROC SET_TYRE_SMOKE_COLOUR_FROM_ENUM(VEHICLE_INDEX vehID, TYRE_SMOKE_COLOUR_ENUM eColour) IF IS_VEHICLE_DRIVEABLE(vehID) INT iHudR, iHudG, iHudB, iHudA SWITCH eColour CASE TYRE_SMOKE_WHITE PRINTLN("[INDPTFX] - SET_TYRE_SMOKE_COLOUR_FROM_ENUM - TYRE_SMOKE_WHITE - SET_VEHICLE_TYRE_SMOKE_COLOR(vehID, 255, 255, 255)") SET_VEHICLE_TYRE_SMOKE_COLOR(vehID, 255, 255, 255) BREAK CASE TYRE_SMOKE_INDI_PAT PRINTLN("[INDPTFX] - SET_TYRE_SMOKE_COLOUR_FROM_ENUM - TYRE_SMOKE_INDI_PAT - SET_VEHICLE_TYRE_SMOKE_COLOR(vehID, 0, 0, 0)") SET_VEHICLE_TYRE_SMOKE_COLOR(vehID, 0, 0, 0) BREAK CASE TYRE_SMOKE_ORANGE SET_VEHICLE_TYRE_SMOKE_COLOR(vehID, 255, 127, 0) BREAK CASE TYRE_SMOKE_YELLOW SET_VEHICLE_TYRE_SMOKE_COLOR(vehID, 252, 238, 0) BREAK CASE TYRE_SMOKE_BLUE SET_VEHICLE_TYRE_SMOKE_COLOR(vehID, 0, 174, 239) BREAK CASE TYRE_SMOKE_RED SET_VEHICLE_TYRE_SMOKE_COLOR(vehID, 226, 6, 6) BREAK CASE TYRE_SMOKE_BLACK SET_VEHICLE_TYRE_SMOKE_COLOR(vehID, 20, 20, 20) BREAK CASE TYRE_SMOKE_CREW SET_VEHICLE_TYRE_SMOKE_COLOR(vehID, g_Private_LocalPlayerCrew_Colour_Red, g_Private_LocalPlayerCrew_Colour_Green, g_Private_LocalPlayerCrew_Colour_Blue) BREAK CASE TYRE_SMOKE_BUSINESS_PURPLE GET_HUD_COLOUR(HUD_COLOUR_PURPLE, iHudR, iHudG, iHudB, iHudA) SET_VEHICLE_TYRE_SMOKE_COLOR(vehID, iHudR, iHudG, iHudB) BREAK CASE TYRE_SMOKE_BUSINESS_GREEN GET_HUD_COLOUR(HUD_COLOUR_GREEN, iHudR, iHudG, iHudB, iHudA) SET_VEHICLE_TYRE_SMOKE_COLOR(vehID, iHudR, iHudG, iHudB) BREAK CASE TYRE_SMOKE_HIPSTER_PINK GET_HUD_COLOUR(HUD_COLOUR_PINK, iHudR, iHudG, iHudB, iHudA) SET_VEHICLE_TYRE_SMOKE_COLOR(vehID, iHudR, iHudG, iHudB) BREAK CASE TYRE_SMOKE_HIPSTER_BROWN GET_HUD_COLOUR(HUD_COLOUR_BRONZE, iHudR, iHudG, iHudB, iHudA) SET_VEHICLE_TYRE_SMOKE_COLOR(vehID, iHudR, iHudG, iHudB) BREAK ENDSWITCH ENDIF ENDPROC CONST_INT CAR_MOD_NEON_LIGHT_COUNT 14 CONST_INT CAR_MOD_NEON_LIGHT_CREW 13 FUNC INT GET_NEON_CATALOGUE_INDEX_FROM_RGB(INT iNeonR, INT iNeonG, INT iNeonB) IF iNeonR = 222 AND iNeonG = 222 AND iNeonB = 255 RETURN 2 // White ELIF iNeonR = 2 AND iNeonG = 21 AND iNeonB = 255 RETURN 3 // Blue ELIF iNeonR = 3 AND iNeonG = 83 AND iNeonB = 255 RETURN 4 // Eclectic blue ELIF iNeonR = 0 AND iNeonG = 255 AND iNeonB = 140 RETURN 5 // Mint green ELIF iNeonR = 94 AND iNeonG = 255 AND iNeonB = 1 RETURN 6 // Lime Green ELIF iNeonR = 255 AND iNeonG = 255 AND iNeonB = 0 RETURN 7 // Yellow ELIF iNeonR = 255 AND iNeonG = 150 AND iNeonB = 5 RETURN 8 // Golden shower ELIF iNeonR = 255 AND iNeonG = 62 AND iNeonB = 0 RETURN 9 // Orange ELIF iNeonR = 255 AND iNeonG = 1 AND iNeonB = 1 RETURN 10 // Red ELIF iNeonR = 255 AND iNeonG = 50 AND iNeonB = 100 RETURN 11 // Pony pink ELIF iNeonR = 255 AND iNeonG = 5 AND iNeonB = 190 RETURN 12 // Hot Pink ELIF iNeonR = 35 AND iNeonG = 1 AND iNeonB = 255 RETURN 13 // Purple ELIF iNeonR = 15 AND iNeonG = 3 AND iNeonB = 255 RETURN 14 // Blacklight ELIF iNeonR = g_Private_LocalPlayerCrew_Colour_Red AND iNeonG = g_Private_LocalPlayerCrew_Colour_Green AND iNeonB = g_Private_LocalPlayerCrew_Colour_Blue // Crew RETURN 1 ENDIF RETURN 255 ENDFUNC FUNC BOOL GET_NEON_RGB_FOR_CATALOGUE_INDEX(INT iIndex, INT &iNeonR, INT &iNeonG, INT &iNeonB) iNeonR = -1 iNeonG = -1 iNeonB = -1 SWITCH iIndex CASE 2 iNeonR = 222 iNeonG = 222 iNeonB = 255 BREAK // White CASE 3 iNeonR = 2 iNeonG = 21 iNeonB = 255 BREAK // Blue CASE 4 iNeonR = 3 iNeonG = 83 iNeonB = 255 BREAK // Eclectic blue CASE 5 iNeonR = 0 iNeonG = 255 iNeonB = 140 BREAK // Mint green CASE 6 iNeonR = 94 iNeonG = 255 iNeonB = 1 BREAK // Lime Green CASE 7 iNeonR = 255 iNeonG = 255 iNeonB = 0 BREAK // Yellow CASE 8 iNeonR = 255 iNeonG = 150 iNeonB = 5 BREAK // Golden shower CASE 9 iNeonR = 255 iNeonG = 62 iNeonB = 0 BREAK // Orange CASE 10 iNeonR = 255 iNeonG = 1 iNeonB = 1 BREAK // Red CASE 11 iNeonR = 255 iNeonG = 50 iNeonB = 100 BREAK // Pony pink CASE 12 iNeonR = 255 iNeonG = 5 iNeonB = 190 BREAK // Hot Pink CASE 13 iNeonR = 35 iNeonG = 1 iNeonB = 255 BREAK // Purple CASE 14 iNeonR = 15 iNeonG = 3 iNeonB = 255 BREAK // Blacklight ENDSWITCH RETURN (iNeonR != -1 AND iNeonG != -1 AND iNeonB != -1) ENDFUNC FUNC INT GET_MOD_SHOP_NEON_COLOUR(INT iNeonR, INT iNeonG, INT iNeonB) IF iNeonR = 222 AND iNeonG = 222 AND iNeonB = 255 RETURN 0 ENDIF // White IF iNeonR = 2 AND iNeonG = 21 AND iNeonB = 255 RETURN 1 ENDIF // Blue IF iNeonR = 3 AND iNeonG = 83 AND iNeonB = 255 RETURN 2 ENDIF // Eclectic blue IF iNeonR = 0 AND iNeonG = 255 AND iNeonB = 140 RETURN 3 ENDIF // Mint green IF iNeonR = 94 AND iNeonG = 255 AND iNeonB = 1 RETURN 4 ENDIF // Lime Green IF iNeonR = 255 AND iNeonG = 255 AND iNeonB = 0 RETURN 5 ENDIF // Yellow IF iNeonR = 255 AND iNeonG = 150 AND iNeonB = 5 RETURN 6 ENDIF // Golden shower IF iNeonR = 255 AND iNeonG = 62 AND iNeonB = 0 RETURN 7 ENDIF // Orange IF iNeonR = 255 AND iNeonG = 1 AND iNeonB = 1 RETURN 8 ENDIF // Red IF iNeonR = 255 AND iNeonG = 50 AND iNeonB = 100 RETURN 9 ENDIF // Pony pink IF iNeonR = 255 AND iNeonG = 5 AND iNeonB = 190 RETURN 10 ENDIF // Hot Pink IF iNeonR = 35 AND iNeonG = 1 AND iNeonB = 255 RETURN 11 ENDIF // Purple IF iNeonR = 15 AND iNeonG = 3 AND iNeonB = 255 RETURN 12 ENDIF // Blacklight IF NETWORK_IS_GAME_IN_PROGRESS() AND IS_LOCAL_PLAYER_IN_ACTIVE_CLAN() AND g_Private_IsCrewColourSet IF iNeonR = g_Private_LocalPlayerCrew_Colour_Red AND iNeonG = g_Private_LocalPlayerCrew_Colour_Green AND iNeonB = g_Private_LocalPlayerCrew_Colour_Blue RETURN 13 // Crew ENDIF ENDIF RETURN 0 // White ENDFUNC FUNC BOOL GET_MOD_SHOP_NEON_COLOUR_RGB(INT iColour, INT &iNeonR, INT &iNeonG, INT &iNeonB) SWITCH iColour CASE 0 iNeonR = 222 iNeonG = 222 iNeonB = 255 RETURN TRUE BREAK // White CASE 1 iNeonR = 2 iNeonG = 21 iNeonB = 255 RETURN TRUE BREAK // Blue CASE 2 iNeonR = 3 iNeonG = 83 iNeonB = 255 RETURN TRUE BREAK // Eclectic blue CASE 3 iNeonR = 0 iNeonG = 255 iNeonB = 140 RETURN TRUE BREAK // Mint green CASE 4 iNeonR = 94 iNeonG = 255 iNeonB = 1 RETURN TRUE BREAK // Lime Green CASE 5 iNeonR = 255 iNeonG = 255 iNeonB = 0 RETURN TRUE BREAK // Yellow CASE 6 iNeonR = 255 iNeonG = 150 iNeonB = 5 RETURN TRUE BREAK // Golden shower CASE 7 iNeonR = 255 iNeonG = 62 iNeonB = 0 RETURN TRUE BREAK // Orange CASE 8 iNeonR = 255 iNeonG = 1 iNeonB = 1 RETURN TRUE BREAK // Red CASE 9 iNeonR = 255 iNeonG = 50 iNeonB = 100 RETURN TRUE BREAK // Pony pink CASE 10 iNeonR = 255 iNeonG = 5 iNeonB = 190 RETURN TRUE BREAK // Hot Pink CASE 11 iNeonR = 35 iNeonG = 1 iNeonB = 255 RETURN TRUE BREAK // Purple CASE 12 iNeonR = 15 iNeonG = 3 iNeonB = 255 RETURN TRUE BREAK // Blacklight CASE 13 IF NETWORK_IS_GAME_IN_PROGRESS() iNeonR = g_Private_LocalPlayerCrew_Colour_Red iNeonG = g_Private_LocalPlayerCrew_Colour_Green iNeonB = g_Private_LocalPlayerCrew_Colour_Blue // Crew RETURN TRUE ENDIF BREAK ENDSWITCH RETURN FALSE ENDFUNC FUNC INT GET_MOD_SHOP_NEON_LAYOUT(BOOL bFront, BOOL bSides, BOOL bRear) IF bRear AND bSides AND bFront // [CMOD_NEONLAY_7]Front, Back and Sides RETURN 7 ELIF bRear AND bSides AND NOT bFront // [CMOD_NEONLAY_6]Back and Sides RETURN 6 ELIF NOT bRear AND bSides AND bFront // [CMOD_NEONLAY_5]Front and Sides RETURN 5 ELIF bRear AND NOT bSides AND bFront // [CMOD_NEONLAY_4]Front and Back RETURN 4 ELIF NOT bRear AND bSides AND NOT bFront // [CMOD_NEONLAY_3]Sides RETURN 3 ELIF bRear AND NOT bSides AND NOT bFront // [CMOD_NEONLAY_2]Back RETURN 2 ELIF NOT bRear AND NOT bSides AND bFront // [CMOD_NEONLAY_1]Front RETURN 1 ENDIF RETURN 0 // [CMOD_NEONLAY_0]None ENDFUNC FUNC BOOL IS_NEON_ID_USED_IN_LAYOUT(INT iLayout, NEON_ID eNeonID) SWITCH iLayout CASE 0 BREAK // [CMOD_NEONLAY_0]None CASE 1 // [CMOD_NEONLAY_1]Front IF eNeonID = NEON_FRONT RETURN TRUE ENDIF BREAK CASE 2 // [CMOD_NEONLAY_2]Back IF eNeonID = NEON_BACK RETURN TRUE ENDIF BREAK CASE 3 // [CMOD_NEONLAY_3]Sides IF eNeonID = NEON_LEFT OR eNeonID = NEON_RIGHT RETURN TRUE ENDIF BREAK CASE 4 // [CMOD_NEONLAY_4]Front and Back IF eNeonID = NEON_FRONT OR eNeonID = NEON_BACK RETURN TRUE ENDIF BREAK CASE 5 // [CMOD_NEONLAY_5]Front and Sides IF eNeonID = NEON_FRONT OR eNeonID = NEON_LEFT OR eNeonID = NEON_RIGHT RETURN TRUE ENDIF BREAK CASE 6 // [CMOD_NEONLAY_6]Back and Sides IF eNeonID = NEON_BACK OR eNeonID = NEON_LEFT OR eNeonID = NEON_RIGHT RETURN TRUE ENDIF BREAK CASE 7 // [CMOD_NEONLAY_7]Front, Back and Sides IF eNeonID = NEON_FRONT OR eNeonID = NEON_BACK OR eNeonID = NEON_LEFT OR eNeonID = NEON_RIGHT RETURN TRUE ENDIF BREAK ENDSWITCH RETURN FALSE ENDFUNC /// PURPOSE: Returns the player ped that the personal vehicle belongs to FUNC enumCharacterList GET_PLAYER_PED_PERSONAL_VEHICLE_BELONGS_TO(VEHICLE_INDEX vehID) IF NOT DOES_ENTITY_EXIST(vehID) RETURN NO_CHARACTER ENDIF IF NOT IS_VEHICLE_DRIVEABLE(vehID) RETURN NO_CHARACTER ENDIF INT iVeh REPEAT NUM_PLAYER_VEHICLE_IDS iVeh IF DOES_ENTITY_EXIST(g_viCreatedPlayerVehicleIDs[iVeh]) IF g_viCreatedPlayerVehicleIDs[iVeh] = vehID RETURN g_eCreatedPlayerVehiclePed[iVeh] ENDIF ENDIF ENDREPEAT RETURN NO_CHARACTER ENDFUNC /// PURPOSE: Returns TRUE if the specified player is in one of the stored npc vehicles (Amandas modded car) FUNC BOOL IS_PLAYER_PED_IN_STORED_NPC_VEHICLE(PED_INDEX pedID) IF IS_PED_INJURED(pedID) RETURN FALSE ENDIF IF NOT IS_PED_IN_ANY_VEHICLE(pedID) RETURN FALSE ENDIF // Repeat through g_viCreatedNPCVehicleIDs[], checking if driveable and has same number plate INT iVeh REPEAT NUM_NPC_VEHICLE_IDS iVeh IF DOES_ENTITY_EXIST(g_viCreatedNPCVehicleIDs[iVeh]) IF IS_VEHICLE_DRIVEABLE(g_viCreatedNPCVehicleIDs[iVeh]) IF IS_PED_IN_VEHICLE(pedID, g_viCreatedNPCVehicleIDs[iVeh]) RETURN TRUE ENDIF ENDIF ENDIF ENDREPEAT RETURN FALSE ENDFUNC /// PURPOSE: Returns TRUE if we have made a copy of the vehicle index for player vehicle FUNC BOOL IS_VEHICLE_IN_TEMP_PLAYER_VEHICLE_ID_LIST(VEHICLE_INDEX vehID) IF DOES_ENTITY_EXIST(vehID) AND IS_VEHICLE_DRIVEABLE(vehID) INT iVeh REPEAT NUM_PLAYER_VEHICLE_IDS iVeh IF DOES_ENTITY_EXIST(g_viCreatedPlayerVehicleIDs[iVeh]) AND IS_VEHICLE_DRIVEABLE(g_viCreatedPlayerVehicleIDs[iVeh]) IF g_viCreatedPlayerVehicleIDs[iVeh] = vehID AND GET_ENTITY_MODEL(g_viCreatedPlayerVehicleIDs[iVeh]) = GET_ENTITY_MODEL(vehID) RETURN TRUE ENDIF ENDIF ENDREPEAT ENDIF RETURN FALSE ENDFUNC /// PURPOSE: Returns TRUE if we have made a copy of the vehicle index for npc vehicle FUNC BOOL IS_VEHICLE_IN_TEMP_NPC_VEHICLE_ID_LIST(VEHICLE_INDEX vehID) INT iVeh REPEAT NUM_NPC_VEHICLE_IDS iVeh IF DOES_ENTITY_EXIST(g_viCreatedNPCVehicleIDs[iVeh]) IF g_viCreatedNPCVehicleIDs[iVeh] = vehID RETURN TRUE ENDIF ENDIF ENDREPEAT RETURN FALSE ENDFUNC PROC DISABLE_CABLE_CAR_SCRIPT() IF (g_bForceNoCableCar = FALSE) CPRINTLN(DEBUG_AMBIENT, "[CABLECAR]: Cable Cars have been disabled by Script:", GET_THIS_SCRIPT_NAME()) g_bForceNoCableCar = TRUE ENDIF ENDPROC PROC ENABLE_CABLE_CAR_SCRIPT() IF (g_bForceNoCableCar = TRUE) CPRINTLN(DEBUG_AMBIENT, "[CABLECAR]: Cable Cars have been re-enabled by Script:", GET_THIS_SCRIPT_NAME()) g_bForceNoCableCar = FALSE ENDIF ENDPROC FUNC BOOL SHOULD_THIS_MODEL_USE_EXPENSIVE_MODS(MODEL_NAMES carMdl) SWITCH (carMdl) CASE ADDER CASE BANSHEE CASE BULLET CASE CARBONIZZARE CASE CARBONRS CASE CHEETAH CASE COGCABRIO CASE COMET2 CASE COQUETTE CASE ELEGY2 CASE ENTITYXF CASE EXEMPLAR CASE FELTZER2 CASE HOTKNIFE CASE INFERNUS CASE JB700 CASE KHAMELION CASE MONROE CASE NINEF CASE NINEF2 CASE RAPIDGT CASE RAPIDGT2 CASE STINGER CASE STINGERGT CASE SUPERD CASE SURANO CASE VACCA CASE VOLTIC CASE ZTYPE // Hipster CASE DUBSTA3 CASE BLADE CASE GLENDALE CASE RHAPSODY CASE WARRENER CASE PANTO CASE PIGALLE // Heist CASE CASCO CASE KURUMA2 CASE LECTRO CASE INSURGENT CASE INSURGENT2 CASE TECHNICAL RETURN TRUE BREAK // Luxe CASE WINDSOR CASE OSIRIS CASE FELTZER3 CASE VIRGO RETURN TRUE BREAK CASE FACTION CASE FACTION2 CASE MOONBEAM CASE MOONBEAM2 RETURN TRUE BREAK CASE FACTION3 //CASE SABREGT2 <-- no because the SABREGT uses price tier 0 //CASE TORNADO5 <-- no because the TORNADO uses price tier 0 //CASE SLAMVAN3 <-- no because the SLAMVAN uses price tier 0 //CASE MINIVAN2 <-- no because the MINIVAN uses price tier 0 CASE VIRGO2 RETURN TRUE BREAK CASE baller3 CASE baller4 CASE cognoscenti CASE cog55 CASE limo2 CASE mamba CASE nightshade CASE schafter3 CASE schafter4 CASE verlierer2 RETURN TRUE BREAK CASE TAMPA RETURN TRUE BREAK //CASE SULTANRS <-- no because the SULTAN uses price tier 0 (standard, even tho it's kit type is MKT_SPORT). CASE BANSHEE2 RETURN TRUE BREAK CASE BESTIAGTS CASE BRICKADE CASE FMJ CASE NIMBUS CASE PFISTER811 CASE PROTOTIPO CASE RUMPO3 CASE SEVEN70 CASE TUG CASE VOLATUS CASE WINDSOR2 CASE XLS CASE XLS2 CASE REAPER RETURN TRUE BREAK CASE OMNIS CASE TROPOS CASE BRIOSO CASE TROPHYTRUCK CASE TROPHYTRUCK2 CASE CLIFFHANGER CASE BF400 CASE RALLYTRUCK CASE TAMPA2 CASE GARGOYLE CASE TYRUS CASE LE7B CASE LYNX CASE SHEAVA RETURN TRUE BREAK CASE AVARUS CASE DEFILER CASE NIGHTBLADE CASE ZOMBIEA CASE ZOMBIEB CASE CHIMERA CASE ESSKEY CASE RATBIKE CASE HAKUCHOU2 CASE DAEMON2 CASE SHOTARO CASE RAPTOR CASE BLAZER4 CASE SANCTUS CASE VORTEX CASE MANCHEZ CASE TORNADO6 CASE YOUGA2 CASE WOLFSBANE CASE FAGGIO3 CASE FAGGIO RETURN TRUE BREAK CASE BLAZER5 CASE BOXVILLE5 CASE COMET3 CASE DIABLOUS CASE DIABLOUS2 CASE DUNE4 CASE DUNE5 CASE FCR CASE FCR2 CASE ITALIGTB CASE NERO CASE PENETRATOR CASE PHANTOM2 CASE RUINER2 CASE TECHNICAL2 CASE TEMPESTA CASE VOLTIC2 CASE WASTELANDER CASE ELEGY CASE ITALIGTB2 CASE NERO2 CASE RUINER3 CASE SPECTER CASE SPECTER2 RETURN TRUE BREAK CASE GP1 CASE RUSTON CASE INFERNUS2 CASE TURISMO2 RETURN TRUE BREAK CASE ARDENT CASE VAGNER CASE CHEETAH2 CASE NIGHTSHARK CASE TORERO CASE XA21 CASE TAMPA3 CASE APC CASE HALFTRACK CASE DUNE3 CASE TRAILERSMALL2 CASE INSURGENT3 CASE TECHNICAL3 CASE PHANTOM3 CASE HAULER2 RETURN TRUE BREAK CASE CYCLONE CASE RAPIDGT3 CASE RETINUE CASE VISIONE CASE VIGILANTE RETURN TRUE BREAK CASE DELUXO CASE STROMBERG CASE RIOT2 CASE CHERNOBOG CASE KHANJALI CASE AKULA CASE THRUSTER CASE AVENGER CASE BARRAGE CASE VOLATOL CASE COMET4 CASE NEON CASE STREITER CASE SENTINEL3 CASE YOSEMITE CASE SC1 CASE AUTARCH CASE GT500 CASE HUSTLER CASE REVOLTER CASE PARIAH CASE RAIDEN CASE SAVESTRA CASE RIATA CASE HERMES CASE COMET5 CASE Z190 CASE VISERIS CASE KAMACHO RETURN TRUE BREAK ENDSWITCH SWITCH (carMdl) CASE GB200 CASE ISSI3 CASE ELLIE CASE FAGALOA CASE MICHELLI CASE FLASHGT CASE HOTRING CASE TEZERACT CASE TYRANT CASE DOMINATOR3 CASE TAIPAN CASE ENTITY2 CASE JESTER3 CASE CHEBUREK CASE CARACARA CASE SEASPARROW CASE CLIQUE CASE DEVESTE CASE DEVIANT CASE IMPALER CASE SCARAB CASE SCHLAGEN CASE TOROS CASE VAMOS CASE TULIP CASE MONSTER3 CASE IMPALER2 CASE BRUISER CASE CERBERUS CASE DOMINATOR4 CASE IMPERATOR CASE ISSI4 CASE ITALIGTO CASE DEATHBIKE CASE SLAMVAN4 CASE BRUTUS CASE IMPERATOR2 CASE IMPERATOR3 CASE DEATHBIKE3 CASE DEATHBIKE2 CASE IMPALER3 CASE BRUTUS2 CASE BRUISER2 CASE SLAMVAN5 CASE ISSI5 CASE MONSTER4 CASE SCARAB2 CASE CERBERUS2 CASE DOMINATOR5 CASE ZR3802 CASE IMPALER4 CASE BRUTUS3 CASE BRUISER3 CASE SLAMVAN6 CASE ISSI6 CASE MONSTER5 CASE SCARAB3 CASE CERBERUS3 CASE DOMINATOR6 CASE ZR3803 CASE RCBANDITO CASE CARACARA2 CASE DRAFTER CASE DYNASTY CASE GAUNTLET3 CASE GAUNTLET4 CASE HELLION CASE ISSI7 CASE KRIEGER CASE LOCUST CASE NEBULA CASE NEO CASE NOVAK CASE S80 CASE THRAX CASE ZION3 CASE ZORRUSSO CASE EMERUS CASE PEYOTE2 CASE RROCKET CASE JUGULAR CASE PARAGON CASE PARAGON2 CASE SLAMVAN2 CASE ASBO CASE KANJO CASE FORMULA CASE IMORGON CASE KOMODA CASE MANANA2 // CASE PRIMO3 CASE REBLA CASE SUGOI CASE YOUGA3 CASE ZHABA CASE VSTR CASE EVERON CASE SULTAN2 CASE JB7002 CASE OUTLAW CASE STRYDER CASE VAGRANT CASE FORMULA2 CASE MINITANK CASE GAUNTLET5 #IF FEATURE_COPS_N_CROOKS CASE SURFER3 CASE ZOKU CASE POLBATI CASE POLGREENWOOD CASE POLRIATA CASE POLBUFFALO CASE POLGAUNTLET CASE POLGRANGER CASE POLICE5 CASE POLICE6 CASE POLICEB2 CASE POLICET2 CASE POLPANTO CASE POLCARACARA #ENDIF #IF FEATURE_SUMMER_2020 CASE DUKES3 CASE CLUB CASE PEYOTE3 CASE GLENDALE2 CASE PENUMBRA2 CASE LANDSTALKER2 CASE SEMINOLE2 CASE TIGON CASE OPENWHEEL1 CASE COQUETTE4 CASE OPENWHEEL2 #ENDIF #IF FEATURE_HEIST_ISLAND CASE MANCHEZ2 CASE BRIOSO2 CASE WINKY CASE VERUS CASE ALKONOST CASE AVISA CASE LONGFIN CASE PATROLBOAT CASE SEASPARROW2 CASE SEASPARROW3 CASE SLAMTRUCK CASE VETIR CASE KOSATKA CASE ITALIRSX CASE TOREADOR CASE WEEVIL CASE DINGHY5 CASE ANNIHILATOR2 CASE SQUADDIE CASE VETO CASE VETO2 #ENDIF CASE CALICO CASE COMET6 CASE CYPHER CASE DOMINATOR7 CASE JESTER4 CASE REMUS CASE VECTRE CASE ZR350 CASE WARRENER2 CASE RT3000 CASE FUTO2 CASE TAILGATER2 CASE SULTAN3 CASE DOMINATOR8 CASE EUROS CASE GROWLER CASE PREVION #IF FEATURE_GEN9_EXCLUSIVE CASE S95 CASE ARBITERGT CASE ASTRON2 CASE CYCLONE2 CASE IGNUS2 #ENDIF CASE BALLER7 CASE ASTRON CASE BUFFALO4 CASE COMET7 CASE DEITY CASE GRANGER2 CASE IGNUS CASE JUBILEE CASE PATRIOT3 CASE YOUGA4 CASE ZENO CASE MULE5 CASE CHAMPION CASE IWAGEN CASE REEVER CASE SHINOBI RETURN TRUE BREAK ENDSWITCH SWITCH (carMdl) CASE BRIOSO3 CASE CORSITA CASE DRAUGUR CASE GREENWOOD CASE KANJOSJ CASE LM87 CASE POSTLUDE CASE RHINEHART CASE SM722 CASE TENF CASE TENF2 CASE TORERO2 CASE VIGERO2 CASE WEEVIL2 CASE RUINER4 CASE SENTINEL4 CASE CONADA CASE OMNISEGT #IF FEATURE_DLC_2_2022 CASE BRICKADE2 #ENDIF RETURN TRUE BREAK ENDSWITCH RETURN FALSE ENDFUNC /// PURPOSE: Returns an int used to represent a number plate character FUNC INT GET_VEHICLE_NUMBER_PLATE_CHAR_AS_INT(STRING sChar) IF IS_STRING_NULL_OR_EMPTY(sChar) RETURN 37 // "" ENDIF IF (GET_HASH_KEY(sChar) = GET_HASH_KEY("A")) RETURN 0 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("B")) RETURN 1 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("C")) RETURN 2 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("D")) RETURN 3 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("E")) RETURN 4 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("F")) RETURN 5 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("G")) RETURN 6 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("H")) RETURN 7 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("I")) RETURN 8 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("J")) RETURN 9 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("K")) RETURN 10 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("L")) RETURN 11 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("M")) RETURN 12 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("N")) RETURN 13 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("O")) RETURN 14 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("P")) RETURN 15 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("Q")) RETURN 16 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("R")) RETURN 17 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("S")) RETURN 18 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("T")) RETURN 19 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("U")) RETURN 20 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("V")) RETURN 21 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("W")) RETURN 22 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("X")) RETURN 23 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("Y")) RETURN 24 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("Z")) RETURN 25 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("0")) RETURN 26 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("1")) RETURN 27 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("2")) RETURN 28 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("3")) RETURN 29 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("4")) RETURN 30 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("5")) RETURN 31 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("6")) RETURN 32 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("7")) RETURN 33 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("8")) RETURN 34 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY("9")) RETURN 35 ELIF (GET_HASH_KEY(sChar) = GET_HASH_KEY(" ")) RETURN 36 ENDIF RETURN 37 // "" ENDFUNC /// PURPOSE: Returns the char that is represented by the given int FUNC STRING GET_VEHICLE_NUMBER_PLATE_INT_AS_CHAR(INT iInt) IF (iInt = 0) RETURN "A" ELIF (iInt = 1) RETURN "B" ELIF (iInt = 2) RETURN "C" ELIF (iInt = 3) RETURN "D" ELIF (iInt = 4) RETURN "E" ELIF (iInt = 5) RETURN "F" ELIF (iInt = 6) RETURN "G" ELIF (iInt = 7) RETURN "H" ELIF (iInt = 8) RETURN "I" ELIF (iInt = 9) RETURN "J" ELIF (iInt = 10) RETURN "K" ELIF (iInt = 11) RETURN "L" ELIF (iInt = 12) RETURN "M" ELIF (iInt = 13) RETURN "N" ELIF (iInt = 14) RETURN "O" ELIF (iInt = 15) RETURN "P" ELIF (iInt = 16) RETURN "Q" ELIF (iInt = 17) RETURN "R" ELIF (iInt = 18) RETURN "S" ELIF (iInt = 19) RETURN "T" ELIF (iInt = 20) RETURN "U" ELIF (iInt = 21) RETURN "V" ELIF (iInt = 22) RETURN "W" ELIF (iInt = 23) RETURN "X" ELIF (iInt = 24) RETURN "Y" ELIF (iInt = 25) RETURN "Z" ELIF (iInt = 26) RETURN "0" ELIF (iInt = 27) RETURN "1" ELIF (iInt = 28) RETURN "2" ELIF (iInt = 29) RETURN "3" ELIF (iInt = 30) RETURN "4" ELIF (iInt = 31) RETURN "5" ELIF (iInt = 32) RETURN "6" ELIF (iInt = 33) RETURN "7" ELIF (iInt = 34) RETURN "8" ELIF (iInt = 35) RETURN "9" ELIF (iInt = 36) RETURN " " ELSE RETURN "" ENDIF ENDFUNC /// PURPOSE: Fills the array with the corresponding character int PROC GET_VEHICLE_NUMBER_PLATE_AS_INTS(VEHICLE_INDEX vehID, INT &ArrayOfPlateDigits[8]) IF NOT IS_VEHICLE_DRIVEABLE(vehID) EXIT ENDIF INT i REPEAT 8 i ArrayOfPlateDigits[i] = GET_VEHICLE_NUMBER_PLATE_CHAR_AS_INT(GET_VEHICLE_NUMBER_PLATE_CHARACTER(GET_VEHICLE_NUMBER_PLATE_TEXT(vehID), i)) ENDREPEAT ENDPROC /// PURPOSE: Fills the text label with the corresponding characters PROC GET_VEHICLE_NUMBER_PLATE_FROM_INTS(TEXT_LABEL_15 &NumberPlate, INT &ArrayOfPlateDigits[8], INT iBlinkLetter = -1) NumberPlate = "" INT iKey FOR iKey = 0 TO 7 IF iKey = iBlinkLetter AND (SIN(TO_FLOAT(GET_GAME_TIMER()))) > 0.0 NumberPlate += " " ELSE SWITCH (ArrayOfPlateDigits[iKey]) CASE 0 NumberPlate += "A" BREAK CASE 1 NumberPlate += "B" BREAK CASE 2 NumberPlate += "C" BREAK CASE 3 NumberPlate += "D" BREAK CASE 4 NumberPlate += "E" BREAK CASE 5 NumberPlate += "F" BREAK CASE 6 NumberPlate += "G" BREAK CASE 7 NumberPlate += "H" BREAK CASE 8 NumberPlate += "I" BREAK CASE 9 NumberPlate += "J" BREAK CASE 10 NumberPlate += "K" BREAK CASE 11 NumberPlate += "L" BREAK CASE 12 NumberPlate += "M" BREAK CASE 13 NumberPlate += "N" BREAK CASE 14 NumberPlate += "O" BREAK CASE 15 NumberPlate += "P" BREAK CASE 16 NumberPlate += "Q" BREAK CASE 17 NumberPlate += "R" BREAK CASE 18 NumberPlate += "S" BREAK CASE 19 NumberPlate += "T" BREAK CASE 20 NumberPlate += "U" BREAK CASE 21 NumberPlate += "V" BREAK CASE 22 NumberPlate += "W" BREAK CASE 23 NumberPlate += "X" BREAK CASE 24 NumberPlate += "Y" BREAK CASE 25 NumberPlate += "Z" BREAK CASE 26 NumberPlate += "0" BREAK CASE 27 NumberPlate += "1" BREAK CASE 28 NumberPlate += "2" BREAK CASE 29 NumberPlate += "3" BREAK CASE 30 NumberPlate += "4" BREAK CASE 31 NumberPlate += "5" BREAK CASE 32 NumberPlate += "6" BREAK CASE 33 NumberPlate += "7" BREAK CASE 34 NumberPlate += "8" BREAK CASE 35 NumberPlate += "9" BREAK CASE 36 NumberPlate += " " BREAK DEFAULT NumberPlate += "" BREAK ENDSWITCH ENDIF ENDFOR ENDPROC /// PURPOSE: returns a float for how upgraded your vehicle is FUNC FLOAT GET_MAX_VEHICLE_UPGRADE_LEVEL(VEHICLE_INDEX vehID) FLOAT iupgradelevel = 1 IF NOT IS_VEHICLE_DRIVEABLE(vehID) RETURN iupgradelevel ENDIF IF GET_NUM_MOD_KITS(vehID) = 0 RETURN iupgradelevel ENDIF // Standard Mods iupgradelevel = iupgradelevel+GET_NUM_VEHICLE_MODS(vehID, MOD_SPOILER) iupgradelevel = iupgradelevel+GET_NUM_VEHICLE_MODS(vehID, MOD_BUMPER_F) iupgradelevel = iupgradelevel+GET_NUM_VEHICLE_MODS(vehID, MOD_BUMPER_R) iupgradelevel = iupgradelevel+GET_NUM_VEHICLE_MODS(vehID, MOD_SKIRT) iupgradelevel = iupgradelevel+GET_NUM_VEHICLE_MODS(vehID, MOD_EXHAUST) iupgradelevel = iupgradelevel+GET_NUM_VEHICLE_MODS(vehID, MOD_CHASSIS) iupgradelevel = iupgradelevel+GET_NUM_VEHICLE_MODS(vehID, MOD_GRILL) iupgradelevel = iupgradelevel+GET_NUM_VEHICLE_MODS(vehID, MOD_BONNET) iupgradelevel = iupgradelevel+GET_NUM_VEHICLE_MODS(vehID, MOD_WING_L) iupgradelevel = iupgradelevel+GET_NUM_VEHICLE_MODS(vehID, MOD_WING_R) iupgradelevel = iupgradelevel+GET_NUM_VEHICLE_MODS(vehID, MOD_ROOF) iupgradelevel = iupgradelevel+GET_NUM_VEHICLE_MODS(vehID, MOD_ENGINE) iupgradelevel = iupgradelevel+GET_NUM_VEHICLE_MODS(vehID, MOD_BRAKES) iupgradelevel = iupgradelevel+GET_NUM_VEHICLE_MODS(vehID, MOD_GEARBOX) iupgradelevel = iupgradelevel+GET_NUM_VEHICLE_MODS(vehID, MOD_HORN) iupgradelevel = iupgradelevel+GET_NUM_VEHICLE_MODS(vehID, MOD_SUSPENSION) iupgradelevel = iupgradelevel+GET_NUM_VEHICLE_MODS(vehID, MOD_ARMOUR) iupgradelevel = iupgradelevel+GET_NUM_VEHICLE_MODS(vehID, MOD_WHEELS) // Toggle mods IF IS_TOGGLE_MOD_ON(vehID, MOD_TOGGLE_TURBO) iupgradelevel = iupgradelevel+1 ENDIF IF IS_TOGGLE_MOD_ON(vehID, MOD_TOGGLE_SUBWOOFER) iupgradelevel = iupgradelevel+1 ENDIF IF IS_TOGGLE_MOD_ON(vehID, MOD_TOGGLE_TYRE_SMOKE) iupgradelevel = iupgradelevel+1 ENDIF IF IS_TOGGLE_MOD_ON(vehID, MOD_TOGGLE_HYDRAULICS) iupgradelevel = iupgradelevel+1 ENDIF IF IS_TOGGLE_MOD_ON(vehID, MOD_TOGGLE_XENON_LIGHTS) iupgradelevel = iupgradelevel+1 ENDIF RETURN iupgradelevel ENDFUNC /// PURPOSE: returns a float for how upgraded a vehicle is FUNC FLOAT GET_VEHICLE_UPGRADE_LEVEL(VEHICLE_INDEX vehID) FLOAT iupgradelevel = 0 IF NOT IS_VEHICLE_DRIVEABLE(vehID) RETURN iupgradelevel ENDIF IF GET_NUM_MOD_KITS(vehID) = 0 RETURN iupgradelevel ENDIF INT i // Standard Mods i = GET_VEHICLE_MOD(vehID, MOD_SPOILER) IF i >= 0 iupgradelevel = iupgradelevel+i+1 ENDIF i = GET_VEHICLE_MOD(vehID, MOD_BUMPER_F) IF i >= 0 iupgradelevel = iupgradelevel+i+1 ENDIF i = GET_VEHICLE_MOD(vehID, MOD_BUMPER_R) IF i >= 0 iupgradelevel = iupgradelevel+i+1 ENDIF i = GET_VEHICLE_MOD(vehID, MOD_SKIRT) IF i >= 0 iupgradelevel = iupgradelevel+i+1 ENDIF i = GET_VEHICLE_MOD(vehID, MOD_EXHAUST) IF i >= 0 iupgradelevel = iupgradelevel+i+1 ENDIF i = GET_VEHICLE_MOD(vehID, MOD_CHASSIS) IF i >= 0 iupgradelevel = iupgradelevel+i+1 ENDIF i = GET_VEHICLE_MOD(vehID, MOD_GRILL) IF i >= 0 iupgradelevel = iupgradelevel+i+1 ENDIF i = GET_VEHICLE_MOD(vehID, MOD_BONNET) IF i >= 0 iupgradelevel = iupgradelevel+i+1 ENDIF i = GET_VEHICLE_MOD(vehID, MOD_WING_L) IF i >= 0 iupgradelevel = iupgradelevel+i+1 ENDIF i = GET_VEHICLE_MOD(vehID, MOD_WING_R) IF i >= 0 iupgradelevel = iupgradelevel+i+1 ENDIF i = GET_VEHICLE_MOD(vehID, MOD_ROOF) IF i >= 0 iupgradelevel = iupgradelevel+i+1 ENDIF i = GET_VEHICLE_MOD(vehID, MOD_ENGINE) IF i >= 0 iupgradelevel = iupgradelevel+i+1 ENDIF i = GET_VEHICLE_MOD(vehID, MOD_BRAKES) IF i >= 0 iupgradelevel = iupgradelevel+i+1 ENDIF i = GET_VEHICLE_MOD(vehID, MOD_GEARBOX) IF i >= 0 iupgradelevel = iupgradelevel+i+1 ENDIF i = GET_VEHICLE_MOD(vehID, MOD_HORN) IF i >= 0 iupgradelevel = iupgradelevel+i+1 ENDIF i = GET_VEHICLE_MOD(vehID, MOD_SUSPENSION) IF i >= 0 iupgradelevel = iupgradelevel+i+1 ENDIF i = GET_VEHICLE_MOD(vehID, MOD_ARMOUR) IF i >= 0 iupgradelevel = iupgradelevel+i+1 ENDIF i = GET_VEHICLE_MOD(vehID, MOD_WHEELS) IF i >= 0 iupgradelevel = iupgradelevel+i+1 ENDIF // Toggle mods IF IS_TOGGLE_MOD_ON(vehID, MOD_TOGGLE_TURBO) iupgradelevel = iupgradelevel+1 ENDIF IF IS_TOGGLE_MOD_ON(vehID, MOD_TOGGLE_SUBWOOFER) iupgradelevel = iupgradelevel+1 ENDIF IF IS_TOGGLE_MOD_ON(vehID, MOD_TOGGLE_TYRE_SMOKE) iupgradelevel = iupgradelevel+1 ENDIF IF IS_TOGGLE_MOD_ON(vehID, MOD_TOGGLE_HYDRAULICS) iupgradelevel = iupgradelevel+1 ENDIF IF IS_TOGGLE_MOD_ON(vehID, MOD_TOGGLE_XENON_LIGHTS) iupgradelevel = iupgradelevel+1 ENDIF RETURN iupgradelevel ENDFUNC #IF IS_DEBUG_BUILD FUNC STRING debug_GET_MOD_TYPE_NAME(MOD_TYPE eModSlot) SWITCH eModSlot CASE MOD_SPOILER RETURN "MOD_SPOILER" BREAK CASE MOD_BUMPER_F RETURN "MOD_BUMPER_F" BREAK CASE MOD_BUMPER_R RETURN "MOD_BUMPER_R" BREAK CASE MOD_SKIRT RETURN "MOD_SKIRT" BREAK CASE MOD_EXHAUST RETURN "MOD_EXHAUST" BREAK CASE MOD_CHASSIS RETURN "MOD_CHASSIS" BREAK CASE MOD_GRILL RETURN "MOD_GRILL" BREAK CASE MOD_BONNET RETURN "MOD_BONNET" BREAK CASE MOD_WING_L RETURN "MOD_WING_L" BREAK CASE MOD_WING_R RETURN "MOD_WING_R" BREAK CASE MOD_ROOF RETURN "MOD_ROOF" BREAK CASE MOD_ENGINE RETURN "MOD_ENGINE" BREAK CASE MOD_BRAKES RETURN "MOD_BRAKES" BREAK CASE MOD_GEARBOX RETURN "MOD_GEARBOX" BREAK CASE MOD_HORN RETURN "MOD_HORN" BREAK CASE MOD_SUSPENSION RETURN "MOD_SUSPENSION" BREAK CASE MOD_ARMOUR RETURN "MOD_ARMOUR" BREAK CASE MOD_TOGGLE_NITROUS RETURN "MOD_TOGGLE_NITROUS" BREAK CASE MOD_TOGGLE_TURBO RETURN "MOD_TOGGLE_TURBO" BREAK CASE MOD_TOGGLE_SUBWOOFER RETURN "MOD_TOGGLE_SUBWOOFER" BREAK CASE MOD_TOGGLE_TYRE_SMOKE RETURN "MOD_TOGGLE_TYRE_SMOKE" BREAK CASE MOD_TOGGLE_HYDRAULICS RETURN "MOD_TOGGLE_HYDRAULICS" BREAK CASE MOD_TOGGLE_XENON_LIGHTS RETURN "MOD_TOGGLE_XENON_LIGHTS" BREAK CASE MOD_WHEELS RETURN "MOD_WHEELS" BREAK CASE MOD_REAR_WHEELS RETURN "MOD_REAR_WHEELS" BREAK // Lowrider CASE MOD_PLTHOLDER RETURN "MOD_PLTHOLDER" BREAK CASE MOD_PLTVANITY RETURN "MOD_PLTVANITY" BREAK CASE MOD_INTERIOR1 RETURN "MOD_INTERIOR1" BREAK CASE MOD_INTERIOR2 RETURN "MOD_INTERIOR2" BREAK CASE MOD_INTERIOR3 RETURN "MOD_INTERIOR3" BREAK CASE MOD_INTERIOR4 RETURN "MOD_INTERIOR4" BREAK CASE MOD_INTERIOR5 RETURN "MOD_INTERIOR5" BREAK CASE MOD_SEATS RETURN "MOD_SEATS" BREAK CASE MOD_STEERING RETURN "MOD_STEERING" BREAK CASE MOD_KNOB RETURN "MOD_KNOB" BREAK CASE MOD_PLAQUE RETURN "MOD_PLAQUE" BREAK CASE MOD_ICE RETURN "MOD_ICE" BREAK CASE MOD_TRUNK RETURN "MOD_TRUNK" BREAK CASE MOD_HYDRO RETURN "MOD_HYDRO" BREAK CASE MOD_ENGINEBAY1 RETURN "MOD_ENGINEBAY1" BREAK CASE MOD_ENGINEBAY2 RETURN "MOD_ENGINEBAY2" BREAK CASE MOD_ENGINEBAY3 RETURN "MOD_ENGINEBAY3" BREAK CASE MOD_CHASSIS2 RETURN "MOD_CHASSIS2" BREAK CASE MOD_CHASSIS3 RETURN "MOD_CHASSIS3" BREAK CASE MOD_CHASSIS4 RETURN "MOD_CHASSIS4" BREAK CASE MOD_CHASSIS5 RETURN "MOD_CHASSIS5" BREAK CASE MOD_DOOR_L RETURN "MOD_DOOR_L" BREAK CASE MOD_DOOR_R RETURN "MOD_DOOR_R" BREAK CASE MOD_LIVERY RETURN "MOD_LIVERY" BREAK ENDSWITCH IF eModSlot = INT_TO_ENUM(MOD_TYPE, -1) RETURN "MOD_INVALID" ENDIF CASSERTLN(DEBUG_SHOPS, "debug_GET_MOD_TYPE_NAME missing mod type ", eModSlot) RETURN "" ENDFUNC #ENDIF FUNC BOOL IS_VEHICLE_MODEL_A_HSW_VEHICLE(MODEL_NAMES mnVehName) SWITCH mnVehName CASE BRIOSO CASE SENTINEL CASE HAKUCHOU2 CASE TURISMO2 CASE DEVESTE CASE BANSHEE #IF FEATURE_GEN9_EXCLUSIVE CASE ARBITERGT CASE ASTRON2 CASE CYCLONE2 CASE IGNUS2 CASE S95 #ENDIF #IF FEATURE_DLC_1_2022 CASE VIGERO2 CASE FELTZER3 #ENDIF RETURN TRUE ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL IS_VEHICLE_A_HSW_VEHICLE(VEHICLE_INDEX vehicleToCheck) IF NOT DOES_ENTITY_EXIST(vehicleToCheck) RETURN FALSE ENDIF IF IS_ENTITY_DEAD(vehicleToCheck) RETURN FALSE ENDIF MODEL_NAMES mnVehName = GET_ENTITY_MODEL(vehicleToCheck) IF IS_VEHICLE_MODEL_A_HSW_VEHICLE(mnVehName) IF GET_VEHICLE_MOD(vehicleToCheck, MOD_ICE) != -1 RETURN TRUE ENDIF ENDIF RETURN FALSE ENDFUNC FUNC BOOL IS_VEHICLE_A_BASE_HSW_VEHICLE(VEHICLE_INDEX vehicleToCheck) IF NOT DOES_ENTITY_EXIST(vehicleToCheck) RETURN FALSE ENDIF IF IS_ENTITY_DEAD(vehicleToCheck) RETURN FALSE ENDIF MODEL_NAMES mnVehName = GET_ENTITY_MODEL(vehicleToCheck) IF IS_VEHICLE_MODEL_A_HSW_VEHICLE(mnVehName) IF GET_VEHICLE_MOD(vehicleToCheck, MOD_ICE) = -1 RETURN TRUE ENDIF ENDIF RETURN FALSE ENDFUNC #IF FEATURE_GEN9_EXCLUSIVE FUNC BOOL IS_VEHICLE_MODEL_IN_HSW_TIER_1(MODEL_NAMES mnVehName) SWITCH mnVehName CASE BRIOSO CASE SENTINEL RETURN TRUE ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL IS_VEHICLE_MODEL_IN_HSW_TIER_2(MODEL_NAMES mnVehName) SWITCH mnVehName CASE TURISMO2 CASE ARBITERGT CASE ASTRON2 CASE FELTZER3 CASE VIGERO2 RETURN TRUE ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL IS_VEHICLE_MODEL_IN_HSW_TIER_3(MODEL_NAMES mnVehName) SWITCH mnVehName CASE DEVESTE CASE BANSHEE CASE HAKUCHOU2 CASE S95 CASE CYCLONE2 CASE IGNUS2 RETURN TRUE ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL UPGRADE_VEHICLE_TO_HSW(VEHICLE_INDEX &vehID) IF NOT DOES_ENTITY_EXIST(vehID) RETURN FALSE ENDIF IF IS_ENTITY_DEAD(vehID) RETURN FALSE ENDIF MODEL_NAMES vehicleModel = GET_ENTITY_MODEL(vehID) IF NOT IS_VEHICLE_MODEL_A_HSW_VEHICLE(vehicleModel) RETURN FALSE ENDIF SET_VEHICLE_MOD_KIT(vehID, 0) SET_VEHICLE_MOD(vehID, MOD_ICE, 0) SET_VEHICLE_MOD(vehID, MOD_KNOB, 1) TOGGLE_VEHICLE_MOD(vehID, MOD_TOGGLE_TURBO, TRUE) RETURN TRUE ENDFUNC // iIndex = 0 to 2 PROC SET_HSW_VEHICLE_TURBO(VEHICLE_INDEX &vehID, INT iIndex) IF NOT DOES_ENTITY_EXIST(vehID) EXIT ENDIF IF IS_ENTITY_DEAD(vehID) EXIT ENDIF IF NOT IS_VEHICLE_A_HSW_VEHICLE(vehID) SCRIPT_ASSERT("SET_HSW_VEHICLE_TURBO upgrade vehicle to HSW before setting the new turbo options") EXIT ENDIF IF iIndex < 0 OR iIndex > 2 PRINTLN("SET_HSW_VEHICLE_TURBO invalid index: ", iIndex, " this is HSW vehicle so passing default 1") iIndex = 1 ENDIF SET_VEHICLE_MOD_KIT(vehID, 0) SET_VEHICLE_MOD(vehID, MOD_KNOB, iIndex) TOGGLE_VEHICLE_MOD(vehID, MOD_TOGGLE_TURBO, TRUE) PRINTLN("SET_HSW_VEHICLE_TURBO iIndex: ", iIndex) ENDPROC #ENDIF FUNC BOOL HAS_VEHICLE_GOT_A_ROLL_CAGE_FITTED(VEHICLE_INDEX vehID) IF DOES_ENTITY_EXIST(vehID) AND IS_VEHICLE_DRIVEABLE(vehID) AND GET_NUM_MOD_KITS(vehID) > 0 SET_VEHICLE_MOD_KIT(vehID, 0) INT i MOD_TYPE eMod INT iLabelHash TEXT_LABEL_31 tlModLabel REPEAT MAX_VEHICLE_MOD_SLOTS i eMod = INT_TO_ENUM(MOD_TYPE, i) // Toggle mods IF eMod = MOD_TOGGLE_NITROUS OR eMod = MOD_TOGGLE_TURBO OR eMod = MOD_TOGGLE_SUBWOOFER OR eMod = MOD_TOGGLE_TYRE_SMOKE OR eMod = MOD_TOGGLE_HYDRAULICS OR eMod = MOD_TOGGLE_XENON_LIGHTS // skip // Standard mods ELSE IF GET_VEHICLE_MOD(vehID, eMod) != -1 tlModLabel = GET_MOD_TEXT_LABEL(vehID, eMod, GET_VEHICLE_MOD(vehID, eMod)) iLabelHash = GET_HASH_KEY(tlModLabel) IF iLabelHash != 0 IF iLabelHash = GET_HASH_KEY("MNU_CAGE") OR iLabelHash = GET_HASH_KEY("SABRE_CAG") RETURN TRUE ENDIF ENDIF ENDIF ENDIF ENDREPEAT ENDIF RETURN FALSE ENDFUNC /// PURPOSE: Sets the mod bit in the relevant slot /// NOTE: WE NO LONGER STORE IT AS A BITSET FUNC BOOL GET_VEHICLE_MOD_DATA(VEHICLE_INDEX &vehID, INT &iModIndex[MAX_VEHICLE_MOD_SLOTS], INT &iModVariation[MAX_VEHICLE_MOD_VAR_SLOTS]) IF NOT IS_VEHICLE_DRIVEABLE(vehID) RETURN FALSE ENDIF IF GET_NUM_MOD_KITS(vehID) = 0 RETURN FALSE ENDIF INT i MOD_TYPE eMod REPEAT COUNT_OF(iModIndex) i eMod = INT_TO_ENUM(MOD_TYPE, i) // Toggle mods IF eMod = MOD_TOGGLE_NITROUS OR eMod = MOD_TOGGLE_TURBO OR eMod = MOD_TOGGLE_SUBWOOFER OR eMod = MOD_TOGGLE_TYRE_SMOKE OR eMod = MOD_TOGGLE_HYDRAULICS iModIndex[i] = 0 IF IS_TOGGLE_MOD_ON(vehID, eMod) iModIndex[i] = 1 ENDIF ELIF eMod = MOD_TOGGLE_XENON_LIGHTS IF IS_TOGGLE_MOD_ON(vehID, eMod) SWITCH GET_VEHICLE_XENON_LIGHT_COLOR_INDEX(vehID) CASE 255 iModIndex[i] = 1 BREAK CASE 0 iModIndex[i] = 2 BREAK CASE 1 iModIndex[i] = 3 BREAK CASE 2 iModIndex[i] = 4 BREAK CASE 3 iModIndex[i] = 5 BREAK CASE 4 iModIndex[i] = 6 BREAK CASE 5 iModIndex[i] = 7 BREAK CASE 6 iModIndex[i] = 8 BREAK CASE 7 iModIndex[i] = 9 BREAK CASE 8 iModIndex[i] = 10 BREAK CASE 9 iModIndex[i] = 11 BREAK CASE 10 iModIndex[i] = 12 BREAK CASE 11 iModIndex[i] = 13 BREAK CASE 12 iModIndex[i] = 14 BREAK CASE 13 iModIndex[i] = 15 BREAK ENDSWITCH ELSE iModIndex[i] = 0 ENDIF // Standard mods ELSE iModIndex[i] = GET_VEHICLE_MOD(vehID, INT_TO_ENUM(MOD_TYPE, i))+1 IF INT_TO_ENUM(MOD_TYPE, i) = MOD_WHEELS iModVariation[0] = GET_VEHICLE_MOD_VARIATION(vehID, INT_TO_ENUM(MOD_TYPE, i)) ELIF INT_TO_ENUM(MOD_TYPE, i) = MOD_REAR_WHEELS iModVariation[1] = GET_VEHICLE_MOD_VARIATION(vehID, INT_TO_ENUM(MOD_TYPE, i)) ENDIF ENDIF ENDREPEAT RETURN TRUE ENDFUNC PROC SET_VEHICLE_MOD_OVERRIDES(VEHICLE_INDEX &vehID) SWITCH GET_ENTITY_MODEL(vehID) CASE STARLING //url:bugstar:3881486 - Starling - Rocket Boost Upgrade does not extend rocket boost time IF GET_VEHICLE_MOD(vehID, MOD_EXHAUST) = 0 SET_VEHICLE_MOD(vehID, MOD_GEARBOX, 0) ELSE REMOVE_VEHICLE_MOD(vehID, MOD_GEARBOX) ENDIF BREAK CASE SLAMTRUCK SET_VEHICLE_MOD(vehID, MOD_REAR_WHEELS, 3) BREAK DEFAULT #IF FEATURE_GEN9_EXCLUSIVE IF IS_VEHICLE_A_HSW_VEHICLE(vehID) TOGGLE_VEHICLE_MOD(vehID, MOD_TOGGLE_TURBO, TRUE) ENDIF #ENDIF BREAK ENDSWITCH ENDPROC /// PURPOSE: Sets the vehicle mod based on information obtained from bitsets FUNC BOOL SET_VEHICLE_MOD_DATA(VEHICLE_INDEX &vehID, INT &iModIndex[MAX_VEHICLE_MOD_SLOTS], INT &iModVariation[MAX_VEHICLE_MOD_VAR_SLOTS]) IF NOT IS_VEHICLE_DRIVEABLE(vehID) RETURN FALSE ENDIF IF GET_NUM_MOD_KITS(vehID) = 0 RETURN FALSE ENDIF SET_VEHICLE_MOD_KIT(vehID, 0) INT i MOD_TYPE eMod REPEAT COUNT_OF(iModIndex) i eMod = INT_TO_ENUM(MOD_TYPE, i) // Toggle mods IF eMod = MOD_TOGGLE_NITROUS OR eMod = MOD_TOGGLE_TURBO OR eMod = MOD_TOGGLE_SUBWOOFER OR eMod = MOD_TOGGLE_TYRE_SMOKE OR eMod = MOD_TOGGLE_HYDRAULICS // Toggle mods TOGGLE_VEHICLE_MOD(vehID, eMod, (iModIndex[i] > 0)) ELIF eMod = MOD_TOGGLE_XENON_LIGHTS // Toggle mods IF iModIndex[i] > 0 TOGGLE_VEHICLE_MOD(vehID, eMod, TRUE) IF iModIndex[i] = 1 SET_VEHICLE_XENON_LIGHT_COLOR_INDEX(vehID, 255) ELSE SET_VEHICLE_XENON_LIGHT_COLOR_INDEX(vehID, iModIndex[i] - 2) ENDIF ELSE TOGGLE_VEHICLE_MOD(vehID, eMod, FALSE) ENDIF // Standard mods ELSE IF GET_VEHICLE_MOD(vehID, eMod) != iModIndex[i]-1 REMOVE_VEHICLE_MOD(vehID, eMod) IF iModIndex[i] > 0 IF eMod = MOD_WHEELS SET_VEHICLE_MOD(vehID, eMod, iModIndex[i] - 1, (iModVariation[0] > 0)) ELIF eMod = MOD_REAR_WHEELS SET_VEHICLE_MOD(vehID, eMod, iModIndex[i] - 1, (iModVariation[1] > 0)) ELSE IF IS_VEHICLE_MOD_LOCKED(vehID, eMod, iModIndex[i] - 1) PRINTLN("SET_VEHICLE_MOD_DATA: eMod = ", eMod, "iModeIndex[",i,"]-1 = ", iModIndex[i] - 1 , " this is gen9 exlusive mod, skip!") ELSE PRINTLN("SET_VEHICLE_MOD_DATA: eMod = ", eMod, "iModeIndex[",i,"]-1 = ", iModIndex[i] - 1) SET_VEHICLE_MOD(vehID, eMod, iModIndex[i] - 1) ENDIF ENDIF ENDIF ENDIF ENDIF ENDREPEAT #IF FEATURE_GEN9_EXCLUSIVE IF IS_VEHICLE_A_HSW_VEHICLE(vehID) IF iModIndex[ENUM_TO_INT(MOD_ENGINE)] > 0 // Need to apply engine mod after ICE is equipped to ge the correct stats SET_VEHICLE_MOD(vehID, MOD_ENGINE, iModIndex[ENUM_TO_INT(MOD_ENGINE)] - 1) PRINTLN("SET_VEHICLE_MOD_DATA: set HSW engine mod to: ", iModIndex[ENUM_TO_INT(MOD_ENGINE)] - 1) ENDIF ENDIF #ENDIF IF IS_VEHICLE_A_SUPERMOD_MODEL(GET_ENTITY_MODEL(vehID), SUPERMOD_FLAG_HAS_HYDRAULICS) AND GET_VEHICLE_MOD(vehID, MOD_REAR_WHEELS) != GET_HYDRAULIC_STRENGTH_FROM_MOD_HYDRO_INDEX(vehID, iModIndex[MOD_HYDRO]-1) SET_VEHICLE_MOD(vehID, MOD_REAR_WHEELS, GET_HYDRAULIC_STRENGTH_FROM_MOD_HYDRO_INDEX(vehID, iModIndex[MOD_HYDRO]-1)) PRINTLN("SET_VEHICLE_MOD_DATA: setting rear-wheels on vehicle for hydro: ",GET_HYDRAULIC_STRENGTH_FROM_MOD_HYDRO_INDEX(vehID, iModIndex[MOD_HYDRO]-1)) ENDIF SET_VEHICLE_MOD_OVERRIDES(vehID) // Only set this to true - dont want to turn off if script has requested it. IF HAS_VEHICLE_GOT_A_ROLL_CAGE_FITTED(vehID) SET_VEHICLE_STRONG(vehID, TRUE) SET_VEHICLE_HAS_STRONG_AXLES(vehID, TRUE) ENDIF RETURN TRUE ENDFUNC /// PURPOSE: Helper proc FUNC BOOL HAS_VEHICLE_GOT_MOD(VEHICLE_INDEX vehID, MOD_TYPE eMod) IF IS_VEHICLE_DRIVEABLE(vehID) IF GET_NUM_MOD_KITS(vehID) > 0 SWITCH eMod // Toggle Mods CASE MOD_TOGGLE_NITROUS CASE MOD_TOGGLE_TURBO CASE MOD_TOGGLE_SUBWOOFER CASE MOD_TOGGLE_TYRE_SMOKE CASE MOD_TOGGLE_HYDRAULICS CASE MOD_TOGGLE_XENON_LIGHTS RETURN TRUE BREAK // Standard Mods DEFAULT IF GET_NUM_VEHICLE_MODS(vehID, eMod) > 0 RETURN TRUE ENDIF BREAK ENDSWITCH ENDIF ENDIF RETURN FALSE ENDFUNC FUNC INT GET_CARMOD_REPAIR_COST(VEHICLE_INDEX vehID, BOOL bAvailableCheck = FALSE) #IF FEATURE_TUNER IF IS_PLAYER_IN_AUTO_SHOP(PLAYER_ID()) AND NOT bAvailableCheck RETURN 0 ENDIF #ENDIF INT iTotal // Service INT iTemp, iCount FLOAT fTemp INT iServiceCost, iEngineCost, iTankCost, iTyreCost, iBodyCost, iWashCost, iWindowCost, iAudioCost // Wash cost fTemp = GET_VEHICLE_DIRT_LEVEL(vehID) IF fTemp > 10.0 iWashCost = 8 ELIF fTemp > 5.0 iWashCost = 4 ENDIF PRINTLN("GET_CARMOD_REPAIR_COST dir level: ", fTemp) // Engine cost //fTemp = GET_VEHICLE_ENGINE_HEALTH(vehID)/TO_FLOAT(GET_ENTITY_MAX_HEALTH(vehID)) fTemp = GET_VEHICLE_ENGINE_HEALTH(vehID)/1000 IF fTemp > 0.99 iEngineCost = 0 ELIF fTemp > 0.8 iEngineCost = 20 ELIF fTemp > 0.6 iEngineCost = 40 ELIF fTemp > 0.4 iEngineCost = 80 ELSE iEngineCost = 100 ENDIF // Petrol tank cost //fTemp = GET_VEHICLE_PETROL_TANK_HEALTH(vehID)/TO_FLOAT(GET_ENTITY_MAX_HEALTH(vehID)) fTemp = GET_VEHICLE_PETROL_TANK_HEALTH(vehID)/1000 IF fTemp > 0.99 iTankCost = 0 ELIF fTemp > 0.8 iTankCost = 20 ELIF fTemp > 0.6 iTankCost = 40 ELIF fTemp > 0.4 iTankCost = 60 ELSE iTankCost = 75 ENDIF // Body work cost //fTemp = TO_FLOAT(GET_ENTITY_HEALTH(vehID))/TO_FLOAT(GET_ENTITY_MAX_HEALTH(vehID)) fTemp = TO_FLOAT(GET_ENTITY_HEALTH(vehID))/1000 IF fTemp > 0.99 iBodyCost = 0 ELIF fTemp > 0.8 iBodyCost = 40 ELIF fTemp > 0.6 iBodyCost = 80 ELIF fTemp > 0.4 iBodyCost = 150 ELSE iBodyCost = 200 ENDIF IF GET_DOES_VEHICLE_HAVE_DAMAGE_DECALS(vehID) iBodyCost += 50 ENDIF // Bumpers IF IS_VEHICLE_BUMPER_BROKEN_OFF(vehID, TRUE) iBodyCost += 50 ELIF IS_VEHICLE_BUMPER_BOUNCING(vehID, TRUE) iBodyCost += 25 ENDIF IF IS_VEHICLE_BUMPER_BROKEN_OFF(vehID, FALSE) iBodyCost += 50 ELIF IS_VEHICLE_BUMPER_BOUNCING(vehID, FALSE) iBodyCost += 25 ENDIF // Windows IF NOT ARE_ALL_VEHICLE_WINDOWS_INTACT(vehID) iWindowCost += 20 IF NOT IS_VEHICLE_WINDOW_INTACT(vehID, SC_WINDSCREEN_FRONT) iWindowCost += 40 ENDIF IF NOT IS_VEHICLE_WINDOW_INTACT(vehID, SC_WINDSCREEN_REAR) iWindowCost += 40 ENDIF ENDIF // Doors IF IS_THIS_MODEL_A_CAR(GET_ENTITY_MODEL(vehID)) iTemp = 0 IF IS_VEHICLE_DOOR_DAMAGED(vehID, SC_DOOR_FRONT_LEFT) iTemp++ ENDIF IF IS_VEHICLE_DOOR_DAMAGED(vehID, SC_DOOR_FRONT_RIGHT) iTemp++ ENDIF IF IS_VEHICLE_DOOR_DAMAGED(vehID, SC_DOOR_REAR_LEFT) iTemp++ ENDIF IF IS_VEHICLE_DOOR_DAMAGED(vehID, SC_DOOR_REAR_RIGHT) iTemp++ ENDIF IF IS_VEHICLE_DOOR_DAMAGED(vehID, SC_DOOR_BONNET) iTemp++ ENDIF IF IS_VEHICLE_DOOR_DAMAGED(vehID, SC_DOOR_BOOT) iTemp++ ENDIF iBodyCost += (iTemp*25) ENDIF // Headlights IF GET_IS_LEFT_VEHICLE_HEADLIGHT_DAMAGED(vehID) iBodyCost += 15 ENDIF IF GET_IS_RIGHT_VEHICLE_HEADLIGHT_DAMAGED(vehID) iBodyCost += 15 ENDIF // Tyres cost iTemp = 0 REPEAT 8 iCount IF IS_VEHICLE_TYRE_BURST(vehID, INT_TO_ENUM(SC_WHEEL_LIST, iCount)) iTemp++ ENDIF ENDREPEAT iTyreCost = (iTemp*25) // Audio IF IS_VEHICLE_AUDIBLY_DAMAGED(vehID) iAudioCost = 50 ENDIF // Overall cost iTotal = (iServiceCost+iEngineCost+iTankCost+iBodyCost+iTyreCost+iWashCost+iWindowCost+iAudioCost) // Service charge and multipliers // - Supermod vehicles IF IS_VEHICLE_A_SUPERMOD_MODEL(GET_ENTITY_MODEL(vehID)) iTotal = FLOOR((TO_FLOAT(iTotal) * g_sMPTunables.flow_supermod_repair_value_multi)) IF iTotal > FLOOR(4.0 * g_sMPTunables.flow_supermod_repair_value_multi) iServiceCost = g_sMPTunables.ilow_supermod_repair_service_cost iTotal += iServiceCost ENDIF IF iTotal > g_sMPTunables.ilow_supermod_repair_cost_max iTotal = g_sMPTunables.ilow_supermod_repair_cost_max ENDIF // - Special vehicles ELIF IS_SVM_VEHICLE(vehID) iTotal = FLOOR((TO_FLOAT(iTotal) * g_sMPTunables.fIE_SV_REPAIR_VALUE_MULTI)) IF iTotal > FLOOR(4.0 * g_sMPTunables.fIE_SV_REPAIR_VALUE_MULTI) iServiceCost = g_sMPTunables.iIE_SV_REPAIR_SERVICE_COST iTotal += iServiceCost ENDIF IF iTotal > g_sMPTunables.iIE_SV_REPAIR_COST_MAX iTotal = g_sMPTunables.iIE_SV_REPAIR_COST_MAX ENDIF // - Everything else ELSE IF iTotal > 0 iServiceCost = 50 iTotal += iServiceCost ENDIF IF iTotal > CARMOD_REPAIR_COST_MAX iTotal = CARMOD_REPAIR_COST_MAX ENDIF ENDIF // Output the breakdown #IF IS_DEBUG_BUILD IF g_bDisplayShopDebug PRINTLN("carmod_shop : Vehicle service breakdown") PRINTLN(" Service......$", iServiceCost) PRINTLN(" Engine.......$", iEngineCost) PRINTLN(" Petrol tank..$", iTankCost) PRINTLN(" Body work....$", iBodyCost) PRINTLN(" Tyres....... $", iTyreCost) PRINTLN(" Wash........ $", iWashCost) PRINTLN(" Windows..... $", iWindowCost) PRINTLN(" Audio....... $", iAudioCost) PRINTLN("---------------------------") PRINTLN(" Total....... $", iTotal) PRINTLN("---------------------------") ENDIF #ENDIF RETURN iTotal ENDFUNC FUNC BOOL GET_CAR_APP_SLOT_FOR_SAVE_VEHICLE(INT iSavedVehicleSlot, INT &iCarAppSlot) iCarAppSlot = -1 INT iOffset = 0 IF (iSavedVehicleSlot >= 0 AND iSavedVehicleSlot <= 9) iCarAppSlot = (iSavedVehicleSlot-iOffset) ENDIF // Skip: 3 Cycles iOffset += 3 IF (iSavedVehicleSlot >= 13 AND iSavedVehicleSlot <= 22) iCarAppSlot = (iSavedVehicleSlot-iOffset) ENDIf // Skip: 3 Cycles iOffset += 3 IF (iSavedVehicleSlot >= 26 AND iSavedVehicleSlot <= 35) iCarAppSlot = (iSavedVehicleSlot-iOffset) ENDIF // Skip: 3 Cycles iOffset += 3 IF (iSavedVehicleSlot >= 39 AND iSavedVehicleSlot <= 48) iCarAppSlot = (iSavedVehicleSlot-iOffset) ENDIF // Skip: 3 Cycles iOffset += 3 IF (iSavedVehicleSlot >= 52 AND iSavedVehicleSlot <= 61) iCarAppSlot = (iSavedVehicleSlot-iOffset) ENDIF // Skip: 3 Cycles iOffset += 3 IF (iSavedVehicleSlot >= DISPLAY_SLOT_START_CLUBHOUSE AND iSavedVehicleSlot <= DISPLAY_SLOT_END_CLUBHOUSE-1) OR (iSavedVehicleSlot >= DISPLAY_SLOT_START_PROPERTY_6 AND iSavedVehicleSlot <= DISPLAY_SLOT_END_PROPERTY_6-4) iCarAppSlot = (iSavedVehicleSlot-iOffset) ENDIF // Skip: 3 Cycles iOffset += 3 IF (iSavedVehicleSlot >= DISPLAY_SLOT_START_OFFICE_GARAGE_LVL1 AND iSavedVehicleSlot <= DISPLAY_SLOT_END_OFFICE_GARAGE_LVL1-1) OR (iSavedVehicleSlot >= DISPLAY_SLOT_START_OFFICE_GARAGE_LVL2 AND iSavedVehicleSlot <= DISPLAY_SLOT_END_OFFICE_GARAGE_LVL2-1) OR (iSavedVehicleSlot >= DISPLAY_SLOT_START_OFFICE_GARAGE_LVL3 AND iSavedVehicleSlot <= DISPLAY_SLOT_END_OFFICE_GARAGE_LVL3-1) OR (iSavedVehicleSlot >= DISPLAY_SLOT_START_VEH_WAREHOUSE_GARAGE AND iSavedVehicleSlot <= DISPLAY_SLOT_END_VEH_WAREHOUSE_GARAGE-1) iCarAppSlot = (iSavedVehicleSlot-iOffset) ENDIF // Skip: DISPLAY_SLOT_START_ARMOURY_TRUCK 156 iOffset += 1 // Skip: DISPLAY_SLOT_AA_TRAILER 157 iOffset += 1 // Skip: DISPLAY_SLOT_MODDED_ARMOURY_TRUCK 158 iOffset += 1 // Skip: DISPLAY_SLOT_START_HANGAR 159 // Skip: DISPLAY_SLOT_END_HANGAR 179 iOffset += 20 IF (iSavedVehicleSlot >= DISPLAY_SLOT_START_DEFUNCBASE AND iSavedVehicleSlot <= DISPLAY_SLOT_END_DEFUNCBASE-1) iCarAppSlot = (iSavedVehicleSlot-iOffset) ENDIF // Skip: DISPLAY_SLOT_RIOT2 186 iOffset += 1 // Skip: DISPLAY_SLOT_CHERNOBOG 187 iOffset += 1 // Skip: DISPLAY_SLOT_STEALTH_TANK 188 iOffset += 1 // Skip: DISPLAY_SLOT_JET_PACK 189 iOffset += 1 // Skip: DISPLAY_SLOT_AVENGER_HELI 190 iOffset += 1 IF (iSavedVehicleSlot >= DISPLAY_SLOT_NIGHTCLUB_VEHICLE AND iSavedVehicleSlot <= DISPLAY_SLOT_END_MEGAWARE_GARAGE_LVL3-1) iCarAppSlot = (iSavedVehicleSlot-iOffset) ENDIF // Skip: DISPLAY_SLOT_MEGAWARE_MOC 222 iOffset += 1 // Skip: DISPLAY_SLOT_TEROBYTE_OPP2 223 iOffset += 1 // Skip: DISPLAY_SLOT_CLUBSPEEDO 224 iOffset += 1 // Skip: DISPLAY_SLOT_CLUBMULE 225 iOffset += 1 // Skip: DISPLAY_SLOT_CLUBPOUNDER 226 iOffset += 1 IF (iSavedVehicleSlot >= DISPLAY_SLOT_START_ARENAWARS_GARAGE_LVL1 AND iSavedVehicleSlot <= DISPLAY_SLOT_END_ARENAWARS_GARAGE_LVL1-1) iCarAppSlot = (iSavedVehicleSlot-iOffset) ENDIF // Skip: DISPLAY_SLOT_CERBERUS 236 iOffset += 1 IF (iSavedVehicleSlot >= DISPLAY_SLOT_START_ARENAWARS_GARAGE_LVL2 AND iSavedVehicleSlot <= DISPLAY_SLOT_END_ARENAWARS_GARAGE_LVL2-1) iCarAppSlot = (iSavedVehicleSlot-iOffset) ENDIF // Skip: DISPLAY_SLOT_CERBERUS2 246 iOffset += 1 IF (iSavedVehicleSlot >= DISPLAY_SLOT_START_ARENAWARS_GARAGE_LVL3 AND iSavedVehicleSlot <= DISPLAY_SLOT_END_ARENAWARS_GARAGE_LVL3-1) iCarAppSlot = (iSavedVehicleSlot-iOffset) ENDIF // Skip: DISPLAY_SLOT_CERBERUS3 256 iOffset += 1 // Skip: CONST_INT DISPLAY_SLOT_RCCAR 257 iOffset += 1 IF (iSavedVehicleSlot >= DISPLAY_SLOT_START_CASINO_GARAGE AND iSavedVehicleSlot <= DISPLAY_SLOT_END_CASINO_GARAGE-1) iCarAppSlot = (iSavedVehicleSlot-iOffset) ENDIF #IF FEATURE_HEIST_ISLAND // Skip: DISPLAY_SLOT_SUB_AQUA_CAR 278 iOffset += 1 #ENDIF // Skip: CONST_INT DISPLAY_SLOT_RC_TANK 279 iOffset += 1 IF iCarAppSlot >= MAX_MP_CARAPP_SLOTS OR (iCarAppSlot = -1) PRINTLN("GET_CAR_APP_SLOT_FOR_SAVE_VEHICLE - App slot out of save data range: ", iCarAppSlot) iCarAppSlot = 0 // we reset to 0 here, avoids array overruns with existing content and uses 0 as a dumping ground. RETURN FALSE ENDIF RETURN (iCarAppSlot != -1) ENDFUNC FUNC BOOL GET_SAVE_VEHICLE_SLOT_FROM_CAR_APP_SLOT(INT iCarAppSlot, INT &iSavedVehicleSlot) INT iTempVehicleSlot, iTempCarAppSlot REPEAT MAX_MP_SAVED_VEHICLES iTempVehicleSlot IF GET_CAR_APP_SLOT_FOR_SAVE_VEHICLE(iTempVehicleSlot, iTempCarAppSlot) IF iTempCarAppSlot = iCarAppSlot iSavedVehicleSlot = iTempVehicleSlot RETURN TRUE ENDIF ENDIF ENDREPEAT RETURN FALSE ENDFUNC /// PURPOSE: Reuturns the global plate text that we have used in the app FUNC BOOL GET_CAR_APP_NUMBER_PLATE(TEXT_LABEL_15 &tlPlateText, INT &iPlateBack) IF NETWORK_IS_GAME_IN_PROGRESS() // We now lookup the SC to get a list of plates that the player has purchased. #IF NOT USE_MULTI_NUMBER_PLATE_SETUP_IN_MP #IF USE_TU_CHANGES IF g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedCarApp.bCarAppPlateSet tlPlateText = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedCarApp.tlCarAppPlateText iPlateBack = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedCarApp.iCarAppPlateBack RETURN TRUE ENDIF #ENDIF #IF NOT USE_TU_CHANGES IF g_savedMPGlobals_OLD.MpSavedCarApp.bCarAppPlateSet tlPlateText = g_savedMPGlobals_OLD.MpSavedCarApp.tlCarAppPlateText iPlateBack = g_savedMPGlobals_OLD.MpSavedCarApp.iCarAppPlateBack RETURN TRUE ENDIF #ENDIF #ENDIF ELSE IF g_savedGlobals.sSocialData.bCarAppPlateSet tlPlateText = g_savedGlobals.sSocialData.tlCarAppPlateText iPlateBack = g_savedGlobals.sSocialData.iCarAppPlateBack RETURN TRUE ENDIF ENDIF RETURN FALSE ENDFUNC /// PURPOSE: Reuturns the global plate text that we have used in the app FUNC BOOL DOES_VEHICLE_PLATE_MATCH_LAST_CARAPP_PLATE(VEHICLE_INDEX vehID) IF DOES_ENTITY_EXIST(vehID) AND IS_VEHICLE_DRIVEABLE(vehID) AND NOT IS_STRING_NULL_OR_EMPTY(g_savedGlobals.sSocialData.tlCarAppPlateText) RETURN (GET_HASH_KEY(GET_VEHICLE_NUMBER_PLATE_TEXT(vehID)) = GET_HASH_KEY(g_savedGlobals.sSocialData.tlCarAppPlateText)) ENDIF RETURN FALSE ENDFUNC FUNC BOOL GET_CAR_APP_COLOUR_DATA(INT iColour, TEXT_LABEL &tlLabel, INT &iGroup, INT &iCol1, INT &iCol2) iGroup = -1 iCol1 = -1 iCol2 = -1 SWITCH iColour CASE 0 tlLabel = "BR BLACK_STEEL" iGroup = 3 iCol1 = 118 iCol2 = 3 BREAK CASE 1 tlLabel = "BLACK_GRAPHITE" iGroup = 0 iCol1 = 147 iCol2 = 4 BREAK CASE 2 tlLabel = "CHOCOLATE_BROWN" iGroup = 1 iCol1 = 96 iCol2 = 0 BREAK CASE 3 tlLabel = "PURPLE" iGroup = 0 iCol1 = 71 iCol2 = 145 BREAK CASE 4 tlLabel = "HOT PINK" iGroup = 0 iCol1 = 135 iCol2 = 135 BREAK CASE 5 tlLabel = "FORMULA_RED" iGroup = 0 iCol1 = 29 iCol2 = 28 BREAK CASE 6 tlLabel = "BLUE" iGroup = 0 iCol1 = 64 iCol2 = 68 BREAK CASE 7 tlLabel = "ULTRA_BLUE" iGroup = 1 iCol1 = 70 iCol2 = 0 BREAK CASE 8 tlLabel = "RACING_GREEN" iGroup = 1 iCol1 = 50 iCol2 = 0 BREAK CASE 9 tlLabel = "LIME_GREEN" iGroup = 2 iCol1 = 55 iCol2 = 0 BREAK CASE 10 tlLabel = "RACE_YELLOW" iGroup = 1 iCol1 = 89 iCol2 = 0 BREAK CASE 11 tlLabel = "ORANGE" iGroup = 1 iCol1 = 38 iCol2 = 0 BREAK CASE 12 tlLabel = "GOLD" iGroup = 0 iCol1 = 37 iCol2 = 106 BREAK CASE 13 tlLabel = "SILVER" iGroup = 0 iCol1 = 4 iCol2 = 111 BREAK CASE 14 tlLabel = "CHROME" iGroup = 4 iCol1 = 120 iCol2 = 0 BREAK CASE 15 tlLabel = "WHITE" iGroup = 1 iCol1 = 111 iCol2 = 0 BREAK CASE 16 tlLabel = "BLACK" iGroup = 0 iCol1 = 0 iCol2 = 10 BREAK CASE 17 tlLabel = "GRAPHITE" iGroup = 0 iCol1 = 1 iCol2 = 5 BREAK CASE 18 tlLabel = "ANTHR_BLACK" iGroup = 0 iCol1 = 11 iCol2 = 2 BREAK CASE 19 tlLabel = "BLACK_STEEL" iGroup = 0 iCol1 = 2 iCol2 = 5 BREAK CASE 20 tlLabel = "DARK_SILVER" iGroup = 0 iCol1 = 3 iCol2 = 6 BREAK CASE 21 tlLabel = "BLUE_SILVER" iGroup = 0 iCol1 = 5 iCol2 = 111 BREAK CASE 22 tlLabel = "ROLLED_STEEL" iGroup = 0 iCol1 = 6 iCol2 = 4 BREAK CASE 23 tlLabel = "SHADOW_SILVER" iGroup = 0 iCol1 = 7 iCol2 = 5 BREAK CASE 24 tlLabel = "STONE_SILVER" iGroup = 0 iCol1 = 8 iCol2 = 5 BREAK CASE 25 tlLabel = "MIDNIGHT_SILVER" iGroup = 0 iCol1 = 9 iCol2 = 7 BREAK CASE 26 tlLabel = "CAST_IRON_SIL" iGroup = 0 iCol1 = 10 iCol2 = 7 BREAK CASE 27 tlLabel = "RED" iGroup = 0 iCol1 = 27 iCol2 = 36 BREAK CASE 28 tlLabel = "TORINO_RED" iGroup = 0 iCol1 = 28 iCol2 = 28 BREAK CASE 29 tlLabel = "LAVA_RED" iGroup = 0 iCol1 = 150 iCol2 = 42 BREAK CASE 30 tlLabel = "BLAZE_RED" iGroup = 0 iCol1 = 30 iCol2 = 36 BREAK CASE 31 tlLabel = "GRACE_RED" iGroup = 0 iCol1 = 31 iCol2 = 27 BREAK CASE 32 tlLabel = "GARNET_RED" iGroup = 0 iCol1 = 32 iCol2 = 25 BREAK CASE 33 tlLabel = "SUNSET_RED" iGroup = 0 iCol1 = 33 iCol2 = 47 BREAK CASE 34 tlLabel = "CABERNET_RED" iGroup = 0 iCol1 = 34 iCol2 = 47 BREAK CASE 35 tlLabel = "WINE_RED" iGroup = 0 iCol1 = 143 iCol2 = 31 BREAK CASE 36 tlLabel = "CANDY_RED" iGroup = 0 iCol1 = 35 iCol2 = 25 BREAK CASE 37 tlLabel = "PINK" iGroup = 0 iCol1 = 137 iCol2 = 3 BREAK CASE 38 tlLabel = "SALMON_PINK" iGroup = 0 iCol1 = 136 iCol2 = 5 BREAK CASE 39 tlLabel = "SUNRISE_ORANGE" iGroup = 0 iCol1 = 36 iCol2 = 26 BREAK CASE 40 tlLabel = "ORANGE" iGroup = 0 iCol1 = 38 iCol2 = 37 BREAK CASE 41 tlLabel = "BRIGHT_ORANGE" iGroup = 0 iCol1 = 138 iCol2 = 89 BREAK CASE 42 tlLabel = "BRONZE" iGroup = 0 iCol1 = 90 iCol2 = 102 BREAK CASE 43 tlLabel = "YELLOW" iGroup = 0 iCol1 = 88 iCol2 = 88 BREAK CASE 44 tlLabel = "RACE_YELLOW" iGroup = 0 iCol1 = 89 iCol2 = 88 BREAK CASE 45 tlLabel = "FLUR_YELLOW" iGroup = 0 iCol1 = 91 iCol2 = 91 BREAK CASE 46 tlLabel = "DARK_GREEN" iGroup = 0 iCol1 = 49 iCol2 = 52 BREAK CASE 47 tlLabel = "RACING_GREEN" iGroup = 0 iCol1 = 50 iCol2 = 53 BREAK CASE 48 tlLabel = "SEA_GREEN" iGroup = 0 iCol1 = 51 iCol2 = 66 BREAK CASE 49 tlLabel = "OLIVE_GREEN" iGroup = 0 iCol1 = 52 iCol2 = 59 BREAK CASE 50 tlLabel = "BRIGHT_GREEN" iGroup = 0 iCol1 = 53 iCol2 = 59 BREAK CASE 51 tlLabel = "PETROL_GREEN" iGroup = 0 iCol1 = 54 iCol2 = 60 BREAK CASE 52 tlLabel = "LIME_GREEN" iGroup = 0 iCol1 = 92 iCol2 = 92 BREAK CASE 53 tlLabel = "MIDNIGHT_BLUE" iGroup = 0 iCol1 = 141 iCol2 = 73 BREAK CASE 54 tlLabel = "GALAXY_BLUE" iGroup = 0 iCol1 = 61 iCol2 = 63 BREAK CASE 55 tlLabel = "DARK_BLUE" iGroup = 0 iCol1 = 62 iCol2 = 68 BREAK CASE 56 tlLabel = "SAXON_BLUE" iGroup = 0 iCol1 = 63 iCol2 = 87 BREAK CASE 57 tlLabel = "MARINER_BLUE" iGroup = 0 iCol1 = 65 iCol2 = 87 BREAK CASE 58 tlLabel = "HARBOR_BLUE" iGroup = 0 iCol1 = 66 iCol2 = 60 BREAK CASE 59 tlLabel = "DIAMOND_BLUE" iGroup = 0 iCol1 = 67 iCol2 = 67 BREAK CASE 60 tlLabel = "SURF_BLUE" iGroup = 0 iCol1 = 68 iCol2 = 68 BREAK CASE 61 tlLabel = "NAUTICAL_BLUE" iGroup = 0 iCol1 = 69 iCol2 = 74 BREAK CASE 62 tlLabel = "RACING_BLUE" iGroup = 0 iCol1 = 73 iCol2 = 73 BREAK CASE 63 tlLabel = "ULTRA_BLUE" iGroup = 0 iCol1 = 70 iCol2 = 70 BREAK CASE 64 tlLabel = "LIGHT_BLUE" iGroup = 0 iCol1 = 74 iCol2 = 74 BREAK CASE 65 tlLabel = "CHOCOLATE_BROWN" iGroup = 0 iCol1 = 96 iCol2 = 95 BREAK CASE 66 tlLabel = "BISON_BROWN" iGroup = 0 iCol1 = 101 iCol2 = 95 BREAK CASE 67 tlLabel = "CREEK_BROWN" iGroup = 0 iCol1 = 95 iCol2 = 97 BREAK CASE 68 tlLabel = "UMBER_BROWN" iGroup = 0 iCol1 = 94 iCol2 = 104 BREAK CASE 69 tlLabel = "MAPLE_BROWN" iGroup = 0 iCol1 = 97 iCol2 = 98 BREAK CASE 70 tlLabel = "BEECHWOOD_BROWN" iGroup = 0 iCol1 = 103 iCol2 = 104 BREAK CASE 71 tlLabel = "SIENNA_BROWN" iGroup = 0 iCol1 = 104 iCol2 = 104 BREAK CASE 72 tlLabel = "SADDLE_BROWN" iGroup = 0 iCol1 = 98 iCol2 = 95 BREAK CASE 73 tlLabel = "MOSS_BROWN" iGroup = 0 iCol1 = 100 iCol2 = 100 BREAK CASE 74 tlLabel = "WOODBEECH_BROWN" iGroup = 0 iCol1 = 102 iCol2 = 105 BREAK CASE 75 tlLabel = "STRAW_BROWN" iGroup = 0 iCol1 = 99 iCol2 = 106 BREAK CASE 76 tlLabel = "SANDY_BROWN" iGroup = 0 iCol1 = 105 iCol2 = 105 BREAK CASE 77 tlLabel = "BLEECHED_BROWN" iGroup = 0 iCol1 = 106 iCol2 = 106 BREAK CASE 78 tlLabel = "SPIN_PURPLE" iGroup = 0 iCol1 = 72 iCol2 = 64 BREAK CASE 79 tlLabel = "MIGHT_PURPLE" iGroup = 0 iCol1 = 146 iCol2 = 145 BREAK CASE 80 tlLabel = "BRIGHT_PURPLE" iGroup = 0 iCol1 = 145 iCol2 = 74 BREAK CASE 81 tlLabel = "CREAM" iGroup = 0 iCol1 = 107 iCol2 = 107 BREAK CASE 82 tlLabel = "WHITE" iGroup = 0 iCol1 = 111 iCol2 = 0 BREAK CASE 83 tlLabel = "FROST_WHITE" iGroup = 0 iCol1 = 112 iCol2 = 0 BREAK CASE 84 tlLabel = "BLACK" iGroup = 1 iCol1 = 0 iCol2 = 0 BREAK CASE 85 tlLabel = "BLACK_GRAPHITE" iGroup = 1 iCol1 = 147 iCol2 = 0 BREAK CASE 86 tlLabel = "GRAPHITE" iGroup = 1 iCol1 = 1 iCol2 = 0 BREAK CASE 87 tlLabel = "ANTHR_BLACK" iGroup = 1 iCol1 = 11 iCol2 = 0 BREAK CASE 88 tlLabel = "BLACK_STEEL" iGroup = 1 iCol1 = 2 iCol2 = 0 BREAK CASE 89 tlLabel = "DARK_SILVER" iGroup = 1 iCol1 = 3 iCol2 = 2 BREAK CASE 90 tlLabel = "SILVER" iGroup = 1 iCol1 = 4 iCol2 = 4 BREAK CASE 91 tlLabel = "BLUE_SILVER" iGroup = 1 iCol1 = 5 iCol2 = 5 BREAK CASE 92 tlLabel = "ROLLED_STEEL" iGroup = 1 iCol1 = 6 iCol2 = 0 BREAK CASE 93 tlLabel = "SHADOW_SILVER" iGroup = 1 iCol1 = 7 iCol2 = 0 BREAK CASE 94 tlLabel = "STONE_SILVER" iGroup = 1 iCol1 = 8 iCol2 = 0 BREAK CASE 95 tlLabel = "MIDNIGHT_SILVER" iGroup = 1 iCol1 = 9 iCol2 = 0 BREAK CASE 96 tlLabel = "CAST_IRON_SIL" iGroup = 1 iCol1 = 10 iCol2 = 0 BREAK CASE 97 tlLabel = "RED" iGroup = 1 iCol1 = 27 iCol2 = 0 BREAK CASE 98 tlLabel = "TORINO_RED" iGroup = 1 iCol1 = 28 iCol2 = 0 BREAK CASE 99 tlLabel = "FORMULA_RED" iGroup = 1 iCol1 = 29 iCol2 = 0 BREAK CASE 100 tlLabel = "LAVA_RED" iGroup = 1 iCol1 = 150 iCol2 = 0 BREAK CASE 101 tlLabel = "BLAZE_RED" iGroup = 1 iCol1 = 30 iCol2 = 0 BREAK CASE 102 tlLabel = "GRACE_RED" iGroup = 1 iCol1 = 31 iCol2 = 0 BREAK CASE 103 tlLabel = "GARNET_RED" iGroup = 1 iCol1 = 32 iCol2 = 0 BREAK CASE 104 tlLabel = "SUNSET_RED" iGroup = 1 iCol1 = 33 iCol2 = 0 BREAK CASE 105 tlLabel = "CABERNET_RED" iGroup = 1 iCol1 = 34 iCol2 = 0 BREAK CASE 106 tlLabel = "WINE_RED" iGroup = 1 iCol1 = 143 iCol2 = 0 BREAK CASE 107 tlLabel = "CANDY_RED" iGroup = 1 iCol1 = 35 iCol2 = 0 BREAK CASE 108 tlLabel = "HOT PINK" iGroup = 1 iCol1 = 135 iCol2 = 0 BREAK CASE 109 tlLabel = "PINK" iGroup = 1 iCol1 = 137 iCol2 = 0 BREAK CASE 110 tlLabel = "SALMON_PINK" iGroup = 1 iCol1 = 136 iCol2 = 0 BREAK CASE 111 tlLabel = "SUNRISE_ORANGE" iGroup = 1 iCol1 = 36 iCol2 = 0 BREAK CASE 112 tlLabel = "BRIGHT_ORANGE" iGroup = 1 iCol1 = 138 iCol2 = 0 BREAK CASE 113 tlLabel = "GOLD" iGroup = 1 iCol1 = 99 iCol2 = 99 BREAK CASE 114 tlLabel = "BRONZE" iGroup = 1 iCol1 = 90 iCol2 = 102 BREAK CASE 115 tlLabel = "YELLOW" iGroup = 1 iCol1 = 88 iCol2 = 0 BREAK CASE 116 tlLabel = "FLUR_YELLOW" iGroup = 1 iCol1 = 91 iCol2 = 0 BREAK CASE 117 tlLabel = "DARK_GREEN" iGroup = 1 iCol1 = 49 iCol2 = 0 BREAK CASE 118 tlLabel = "SEA_GREEN" iGroup = 1 iCol1 = 51 iCol2 = 0 BREAK CASE 119 tlLabel = "OLIVE_GREEN" iGroup = 1 iCol1 = 52 iCol2 = 0 BREAK CASE 120 tlLabel = "BRIGHT_GREEN" iGroup = 1 iCol1 = 53 iCol2 = 0 BREAK CASE 121 tlLabel = "PETROL_GREEN" iGroup = 1 iCol1 = 54 iCol2 = 0 BREAK CASE 122 tlLabel = "LIME_GREEN" iGroup = 1 iCol1 = 92 iCol2 = 0 BREAK CASE 123 tlLabel = "MIDNIGHT_BLUE" iGroup = 1 iCol1 = 141 iCol2 = 0 BREAK CASE 124 tlLabel = "GALAXY_BLUE" iGroup = 1 iCol1 = 61 iCol2 = 0 BREAK CASE 125 tlLabel = "DARK_BLUE" iGroup = 1 iCol1 = 62 iCol2 = 0 BREAK CASE 126 tlLabel = "SAXON_BLUE" iGroup = 1 iCol1 = 63 iCol2 = 0 BREAK CASE 127 tlLabel = "BLUE" iGroup = 1 iCol1 = 64 iCol2 = 0 BREAK CASE 128 tlLabel = "MARINER_BLUE" iGroup = 1 iCol1 = 65 iCol2 = 0 BREAK CASE 129 tlLabel = "HARBOR_BLUE" iGroup = 1 iCol1 = 66 iCol2 = 0 BREAK CASE 130 tlLabel = "DIAMOND_BLUE" iGroup = 1 iCol1 = 67 iCol2 = 0 BREAK CASE 131 tlLabel = "SURF_BLUE" iGroup = 1 iCol1 = 68 iCol2 = 0 BREAK CASE 132 tlLabel = "NAUTICAL_BLUE" iGroup = 1 iCol1 = 69 iCol2 = 0 BREAK CASE 133 tlLabel = "RACING_BLUE" iGroup = 1 iCol1 = 73 iCol2 = 0 BREAK CASE 134 tlLabel = "LIGHT_BLUE" iGroup = 1 iCol1 = 74 iCol2 = 0 BREAK CASE 135 tlLabel = "BISON_BROWN" iGroup = 1 iCol1 = 101 iCol2 = 0 BREAK CASE 136 tlLabel = "CREEK_BROWN" iGroup = 1 iCol1 = 95 iCol2 = 0 BREAK CASE 137 tlLabel = "UMBER_BROWN" iGroup = 1 iCol1 = 94 iCol2 = 0 BREAK CASE 138 tlLabel = "MAPLE_BROWN" iGroup = 1 iCol1 = 97 iCol2 = 0 BREAK CASE 139 tlLabel = "BEECHWOOD_BROWN" iGroup = 1 iCol1 = 103 iCol2 = 0 BREAK CASE 140 tlLabel = "SIENNA_BROWN" iGroup = 1 iCol1 = 104 iCol2 = 0 BREAK CASE 141 tlLabel = "SADDLE_BROWN" iGroup = 1 iCol1 = 98 iCol2 = 0 BREAK CASE 142 tlLabel = "MOSS_BROWN" iGroup = 1 iCol1 = 100 iCol2 = 0 BREAK CASE 143 tlLabel = "WOODBEECH_BROWN" iGroup = 1 iCol1 = 102 iCol2 = 0 BREAK CASE 144 tlLabel = "STRAW_BROWN" iGroup = 1 iCol1 = 99 iCol2 = 0 BREAK CASE 145 tlLabel = "SANDY_BROWN" iGroup = 1 iCol1 = 105 iCol2 = 0 BREAK CASE 146 tlLabel = "BLEECHED_BROWN" iGroup = 1 iCol1 = 106 iCol2 = 0 BREAK CASE 147 tlLabel = "PURPLE" iGroup = 1 iCol1 = 71 iCol2 = 0 BREAK CASE 148 tlLabel = "SPIN_PURPLE" iGroup = 1 iCol1 = 72 iCol2 = 0 BREAK CASE 149 tlLabel = "MIGHT_PURPLE" iGroup = 1 iCol1 = 142 iCol2 = 0 BREAK CASE 150 tlLabel = "BRIGHT_PURPLE" iGroup = 1 iCol1 = 145 iCol2 = 0 BREAK CASE 151 tlLabel = "CREAM" iGroup = 1 iCol1 = 107 iCol2 = 0 BREAK CASE 152 tlLabel = "FROST_WHITE" iGroup = 1 iCol1 = 112 iCol2 = 0 BREAK CASE 153 tlLabel = "BLACK" iGroup = 2 iCol1 = 12 iCol2 = 0 BREAK CASE 154 tlLabel = "GREY" iGroup = 2 iCol1 = 13 iCol2 = 0 BREAK CASE 155 tlLabel = "LIGHT_GREY" iGroup = 2 iCol1 = 14 iCol2 = 0 BREAK CASE 156 tlLabel = "WHITE" iGroup = 2 iCol1 = 131 iCol2 = 0 BREAK CASE 157 tlLabel = "BLUE" iGroup = 2 iCol1 = 83 iCol2 = 0 BREAK CASE 158 tlLabel = "DARK_BLUE" iGroup = 2 iCol1 = 82 iCol2 = 0 BREAK CASE 159 tlLabel = "MIDNIGHT_BLUE" iGroup = 2 iCol1 = 84 iCol2 = 0 BREAK CASE 160 tlLabel = "MIGHT_PURPLE" iGroup = 2 iCol1 = 149 iCol2 = 0 BREAK CASE 161 tlLabel = "Purple" iGroup = 2 iCol1 = 148 iCol2 = 0 BREAK CASE 162 tlLabel = "RED" iGroup = 2 iCol1 = 39 iCol2 = 0 BREAK CASE 163 tlLabel = "DARK_RED" iGroup = 2 iCol1 = 40 iCol2 = 0 BREAK CASE 164 tlLabel = "ORANGE" iGroup = 2 iCol1 = 41 iCol2 = 0 BREAK CASE 165 tlLabel = "YELLOW" iGroup = 2 iCol1 = 42 iCol2 = 0 BREAK CASE 166 tlLabel = "GREEN" iGroup = 2 iCol1 = 128 iCol2 = 0 BREAK CASE 167 tlLabel = "MATTE_FOR" iGroup = 2 iCol1 = 151 iCol2 = 0 BREAK CASE 168 tlLabel = "MATTE_FOIL" iGroup = 2 iCol1 = 155 iCol2 = 0 BREAK CASE 169 tlLabel = "MATTE_OD" iGroup = 2 iCol1 = 152 iCol2 = 0 BREAK CASE 170 tlLabel = "MATTE_DIRT" iGroup = 2 iCol1 = 153 iCol2 = 0 BREAK CASE 171 tlLabel = "MATTE_DESERT" iGroup = 2 iCol1 = 154 iCol2 = 0 BREAK CASE 172 tlLabel = "BR_STEEL" iGroup = 3 iCol1 = 117 iCol2 = 18 BREAK CASE 173 tlLabel = "BR_ALUMINIUM" iGroup = 3 iCol1 = 119 iCol2 = 5 BREAK #IF USE_TU_CHANGES CASE 174 tlLabel = "GOLD_P" iGroup = 3 iCol1 = 158 iCol2 = 160 BREAK CASE 175 tlLabel = "GOLD_S" iGroup = 3 iCol1 = 159 iCol2 = 160 BREAK #ENDIF ENDSWITCH RETURN (iGroup != -1) ENDFUNC FUNC INT GET_CAR_APP_COLOUR_COST(INT iColour, BOOL bPrimary) INT iGroup, iCol1, iCol2 TEXT_LABEL tlLabel GET_CAR_APP_COLOUR_DATA(iColour, tlLabel, iGroup, iCol1, iCol2) IF bPrimary IF (iGroup = 0) RETURN 650 //metallic ELIF (iGroup = 1) RETURN 400 //classic ELIF (iGroup = 2) RETURN 1000 //matte ELIF (iGroup = 3) RETURN 900 //metals ELIF (iGroup = 4) RETURN 1200 //chrome ENDIF ELSE IF (iGroup = 0) RETURN 375 //metallic ELIF (iGroup = 1) RETURN 200 //classic ELIF (iGroup = 2) RETURN 500 //matte ELIF (iGroup = 3) RETURN 450 //metals ELIF (iGroup = 4) RETURN 600 //chrome ENDIF ENDIF RETURN 0 ENDFUNC FUNC BOOL GET_VEHICLE_COLOUR_FROM_CAR_APP_COLOUR_INDEX(INT iColour, INT &iCol1, INT &iCol2) INT iGroup TEXT_LABEL tlLabel GET_CAR_APP_COLOUR_DATA(iColour, tlLabel, iGroup, iCol1, iCol2) RETURN (iCol1 != -1 AND iCol2 != -1) ENDFUNC FUNC BOOL GET_CAR_APP_COLOUR_INDEX_FROM_VEHICLE_COLOUR(INT iCol1, INT iCol2, INT iColGroup, BOOL bPrimary, INT &iColour) INT iColourCount = 0 INT iGroup TEXT_LABEL tlLabel INT iAppCol1, iAppCol2 WHILE GET_CAR_APP_COLOUR_DATA(iColourCount, tlLabel, iGroup, iAppCol1, iAppCol2) IF iCol1 = iAppCol1 AND (NOT bPrimary OR iCol2 = iAppCol2) AND (iColGroup = iGroup OR iColGroup = -1 OR iColGroup = 255) iColour = iColourCount RETURN TRUE ENDIF iColourCount++ ENDWHILE iCol1 = -1 iCol2 = -1 #IF USE_TU_CHANGES iColour = -1 #ENDIF // USE_TU_CHANGES RETURN FALSE ENDFUNC PROC SET_VEHICLE_WHEEL_TYPE_PATCHED(VEHICLE_INDEX vehicle, MOD_WHEEL_TYPE type) IF GET_NUM_MOD_KITS(vehicle) > 0 SET_VEHICLE_MOD_KIT(vehicle, 0) INT iRearWheelIndex = GET_VEHICLE_MOD(vehicle, MOD_REAR_WHEELS) INT iRearWheelVariation = GET_VEHICLE_MOD_VARIATION(vehicle, MOD_REAR_WHEELS) SET_VEHICLE_WHEEL_TYPE(vehicle, type) IF GET_ENTITY_MODEL(vehicle) = TORNADO6 OR GET_ENTITY_MODEL(vehicle) = PEYOTE2 EXIT ENDIF IF iRearWheelIndex = -1 REMOVE_VEHICLE_MOD(vehicle, MOD_REAR_WHEELS) ELSE SET_VEHICLE_MOD(vehicle, MOD_REAR_WHEELS, iRearWheelIndex, (iRearWheelVariation = 1)) ENDIF ENDIF ENDPROC FUNC BOOL IS_THIS_WHEEL_TYPE_ALLOWED_FOR_CARAPP_ORDER(MOD_WHEEL_TYPE eWheelType) SWITCH eWheelType CASE MWT_SPORT CASE MWT_MUSCLE CASE MWT_LOWRIDER CASE MWT_SUV CASE MWT_OFFROAD CASE MWT_TUNER CASE MWT_BIKE CASE MWT_HIEND RETURN TRUE BREAK ENDSWITCH RETURN FALSE ENDFUNC /// PURPOSE: Sets the vehicle mods based on the CarApp order FUNC BOOL SET_VEHICLE_MODS_FROM_CARAPP_ORDER(VEHICLE_INDEX vehID, SOCIAL_CAR_APP_ORDER_DATA &sCarAppOrder) IF IS_VEHICLE_DRIVEABLE(vehID) AND sCarAppOrder.eModel = GET_ENTITY_MODEL(vehID) PRINTLN("SET_VEHICLE_MODS_FROM_CARAPP_DATA") PRINTLN("...Model = ", GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(sCarAppOrder.eModel)) PRINTLN("...Plate Text = ", sCarAppOrder.tlPlateText_pending) PRINTLN("...Plate Background = ", sCarAppOrder.iPlateBack_pending) PRINTLN("...ColourID1 = ", sCarAppOrder.iColourID1) PRINTLN("...ColourID2 = ", sCarAppOrder.iColourID2) PRINTLN("...Colour1Group = ", sCarAppOrder.iColour1Group) PRINTLN("...Colour2Group = ", sCarAppOrder.iColour2Group) PRINTLN("...Window tint = ", sCarAppOrder.iWindowTint) PRINTLN("...Tyre smoke = ", sCarAppOrder.iTyreSmokeR, ", ", sCarAppOrder.iTyreSmokeG, ", ", sCarAppOrder.iTyreSmokeB) PRINTLN("...Engine = ", sCarAppOrder.iEngine) PRINTLN("...Brakes = ", sCarAppOrder.iBrakes) PRINTLN("...Wheels = ", sCarAppOrder.iWheels) PRINTLN("...Exhaust = ", sCarAppOrder.iExhaust) PRINTLN("...Suspension = ", sCarAppOrder.iSuspension) PRINTLN("...Armour = ", sCarAppOrder.iArmour) PRINTLN("...Horn = ", sCarAppOrder.iHorn) PRINTLN("...Lights = ", sCarAppOrder.iLights) PRINTLN("...Turbo = ", sCarAppOrder.iTurbo) PRINTLN("...Bulletproof tyres = ", sCarAppOrder.bBulletProofTyres) IF !NETWORK_IS_GAME_IN_PROGRESS() IF sCarAppOrder.eModel = PATRIOT sCarAppOrder.iExhaust = -1 PRINTLN("...iExhaust setting to = -1") ENDIF IF sCarAppOrder.eModel = PRAIRIE IF sCarAppOrder.iExhaust > 1 PRINTLN("...iExhaust setting to = 1 it was: ", sCarAppOrder.iExhaust) sCarAppOrder.iExhaust = 1 ENDIF ENDIF ENDIF // Update to the latest car plate SET_VEHICLE_NUMBER_PLATE_TEXT(vehID, sCarAppOrder.tlPlateText_pending) IF sCarAppOrder.iPlateBack_pending >= 0 AND sCarAppOrder.iPlateBack_pending < GET_NUMBER_OF_VEHICLE_NUMBER_PLATES() SET_VEHICLE_NUMBER_PLATE_TEXT_INDEX(vehID, sCarAppOrder.iPlateBack_pending) ENDIF INT iGroup TEXT_LABEL tlLabel INT iAppCol1, iAppCol2 INT iCol1, iCol2, iCol3, iCol4 GET_VEHICLE_COLOURS(vehID, iCol1, iCol2) GET_VEHICLE_EXTRA_COLOURS(vehID, iCol3, iCol4) IF GET_CAR_APP_COLOUR_DATA(sCarAppOrder.iColourID1, tlLabel, iGroup, iAppCol1, iAppCol2) AND sCarAppOrder.eModel != SOVEREIGN iCol1 = iAppCol1 iCol3 = iAppCol2 #IF USE_TU_CHANGES CLEAR_VEHICLE_CUSTOM_PRIMARY_COLOUR(vehID) MOD_COLOR_TYPE eModColType = MCT_NONE IF (iGroup = 0) eModColType = MCT_METALLIC //metallic ELIF (iGroup = 1) eModColType = MCT_CLASSIC //classic ELIF (iGroup = 2) eModColType = MCT_MATTE //matte ELIF (iGroup = 3) eModColType = MCT_METALS //metals ELIF (iGroup = 4) eModColType = MCT_CHROME //chrome #IF FEATURE_GEN9_EXCLUSIVE ELIF (iGroup = 5) eModColType = MCT_CHAMELEON //CHAMELEON #ENDIF ENDIF SET_VEHICLE_MOD_COLOR_1(vehID, eModColType, 0, 0) #ENDIF PRINTLN("...Primary colour = ", tlLabel, " : ", iAppCol1, ",", iAppCol2) ENDIF IF GET_CAR_APP_COLOUR_DATA(sCarAppOrder.iColourID2, tlLabel, iGroup, iAppCol1, iAppCol2) AND sCarAppOrder.eModel != SOVEREIGN iCol2 = iAppCol1 CLEAR_VEHICLE_CUSTOM_SECONDARY_COLOUR(vehID) #IF USE_TU_CHANGES MOD_COLOR_TYPE eModColType = MCT_NONE IF (iGroup = 0) eModColType = MCT_METALLIC //metallic ELIF (iGroup = 1) eModColType = MCT_CLASSIC //classic ELIF (iGroup = 2) eModColType = MCT_MATTE //matte ELIF (iGroup = 3) eModColType = MCT_METALS //metals ELIF (iGroup = 4) eModColType = MCT_CHROME //chrome #IF FEATURE_GEN9_EXCLUSIVE ELIF (iGroup = 5) eModColType = MCT_CHAMELEON //CHAMELEON #ENDIF ENDIF SET_VEHICLE_MOD_COLOR_2(vehID, eModColType, 0) #ENDIF PRINTLN("...Secondary colour = ", tlLabel, " : , ", iAppCol1) ENDIF SET_VEHICLE_COLOURS(vehID, iCol1, iCol2) SET_VEHICLE_EXTRA_COLOURS(vehID, iCol3, iCol4) SET_VEHICLE_DIRT_LEVEL(vehID, 0.0) SET_VEHICLE_TYRE_SMOKE_COLOR(vehID, sCarAppOrder.iTyreSmokeR, sCarAppOrder.iTyreSmokeG, sCarAppOrder.iTyreSmokeB) SET_VEHICLE_TYRES_CAN_BURST(vehID, (NOT sCarAppOrder.bBulletProofTyres)) IF sCarAppOrder.iWindowTint = -1 AND GET_ENTITY_MODEL(vehID) != GRANGER SET_VEHICLE_WINDOW_TINT(vehID, 0) ELSE SET_VEHICLE_WINDOW_TINT(vehID, sCarAppOrder.iWindowTint) ENDIF IF sCarAppOrder.iExhaust != -1 AND sCarAppOrder.iExhaust != GET_VEHICLE_MOD(vehID, MOD_EXHAUST)+1 REMOVE_VEHICLE_MOD(vehID, MOD_EXHAUST) IF sCarAppOrder.iExhaust > 0 SET_VEHICLE_MOD(vehID, MOD_EXHAUST, sCarAppOrder.iExhaust-1) ENDIF ENDIF IF sCarAppOrder.iEngine != -1 AND sCarAppOrder.iEngine != GET_VEHICLE_MOD(vehID, MOD_ENGINE)+1 REMOVE_VEHICLE_MOD(vehID, MOD_ENGINE) IF sCarAppOrder.iEngine > 0 SET_VEHICLE_MOD(vehID, MOD_ENGINE, sCarAppOrder.iEngine-1) ENDIF ENDIF IF sCarAppOrder.iBrakes != -1 AND sCarAppOrder.iBrakes != GET_VEHICLE_MOD(vehID, MOD_BRAKES)+1 REMOVE_VEHICLE_MOD(vehID, MOD_BRAKES) IF sCarAppOrder.iBrakes > 0 SET_VEHICLE_MOD(vehID, MOD_BRAKES, sCarAppOrder.iBrakes-1) ENDIF ENDIF IF sCarAppOrder.iHorn != -1 AND sCarAppOrder.iHorn != GET_VEHICLE_MOD(vehID, MOD_HORN)+1 AND sCarAppOrder.iHorn < 9 // Block invalid horns REMOVE_VEHICLE_MOD(vehID, MOD_HORN) IF sCarAppOrder.iHorn > 0 SET_VEHICLE_MOD(vehID, MOD_HORN, sCarAppOrder.iHorn-1) ENDIF ENDIF IF sCarAppOrder.iSuspension != -1 AND sCarAppOrder.iSuspension != GET_VEHICLE_MOD(vehID, MOD_SUSPENSION)+1 REMOVE_VEHICLE_MOD(vehID, MOD_SUSPENSION) IF sCarAppOrder.iSuspension > 0 SET_VEHICLE_MOD(vehID, MOD_SUSPENSION, sCarAppOrder.iSuspension-1) ENDIF ENDIF IF sCarAppOrder.iArmour != -1 AND sCarAppOrder.iArmour != GET_VEHICLE_MOD(vehID, MOD_ARMOUR)+1 REMOVE_VEHICLE_MOD(vehID, MOD_ARMOUR) IF sCarAppOrder.iArmour > 0 SET_VEHICLE_MOD(vehID, MOD_ARMOUR, sCarAppOrder.iArmour-1) ENDIF ENDIF IF sCarAppOrder.iWheels != -1 AND sCarAppOrder.iWheels != GET_VEHICLE_MOD(vehID, MOD_WHEELS)+1 AND IS_THIS_WHEEL_TYPE_ALLOWED_FOR_CARAPP_ORDER(INT_TO_ENUM(MOD_WHEEL_TYPE, sCarAppOrder.iWheelType)) INT iModWheels = GET_VEHICLE_MOD_VARIATION(vehID, MOD_WHEELS) IF sCarAppOrder.iWheels > 0 SET_VEHICLE_MOD(vehID, MOD_WHEELS, sCarAppOrder.iWheels-1, (iModWheels > 0)) ELSE #IF USE_TU_CHANGES PRINTLN("[STOCK WHEEL FIX] [1] Setting defaut wheel type for stock wheels") SET_VEHICLE_WHEEL_TYPE_PATCHED(vehID, MWT_INVALID) SET_VEHICLE_WHEEL_TYPE_PATCHED(vehID, GET_VEHICLE_WHEEL_TYPE(vehID)) #ENDIF REMOVE_VEHICLE_MOD(vehID, MOD_WHEELS) ENDIF ENDIF IF sCarAppOrder.iTurbo != -1 TOGGLE_VEHICLE_MOD(vehID, MOD_TOGGLE_TURBO, (sCarAppOrder.iTurbo > 0)) ENDIF IF sCarAppOrder.iLights != -1 TOGGLE_VEHICLE_MOD(vehID, MOD_TOGGLE_XENON_LIGHTS, (sCarAppOrder.iLights > 0)) ENDIF IF sCarAppOrder.iTyreSmoke != -1 TOGGLE_VEHICLE_MOD(vehID, MOD_TOGGLE_TYRE_SMOKE, (sCarAppOrder.iTyreSmoke > 0)) ENDIF RETURN TRUE ENDIF RETURN FALSE ENDFUNC FUNC BOOL COPY_CARAPP_ORDER_INTO_MP_SAVED_DATA(SOCIAL_CAR_APP_ORDER_DATA &sCarAppOrder, BOOL bUpdateCaraApp) INT iVehicleSlot = g_savedMPGlobalsNew.g_savedMPGlobals[GET_SAVE_GAME_ARRAY_SLOT()].MpSavedCarApp.iOrderVehicle IF sCarAppOrder.eModel = g_MpSavedVehicles[iVehicleSlot].VehicleSetupMP.vehicleSetup.eModel AND sCarAppOrder.bOrderPending AND sCarAppOrder.bOrderReceivedOnBoot PRINTLN("COPY_CARAPP_ORDER_INTO_MP_SAVED_DATA") PRINTLN("...bUpdateCaraApp = ", bUpdateCaraApp) PRINTLN("...Model = ", GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(sCarAppOrder.eModel)) PRINTLN("...Plate Text = ", sCarAppOrder.tlPlateText_pending) PRINTLN("...Plate Background = ", sCarAppOrder.iPlateBack_pending) PRINTLN("...ColourID1 = ", sCarAppOrder.iColourID1) PRINTLN("...ColourID2 = ", sCarAppOrder.iColourID2) PRINTLN("...Colour1Group = ", sCarAppOrder.iColour1Group) PRINTLN("...Colour2Group = ", sCarAppOrder.iColour2Group) PRINTLN("...Window tint = ", sCarAppOrder.iWindowTint) PRINTLN("...Tyre smoke = ", sCarAppOrder.iTyreSmokeR, ", ", sCarAppOrder.iTyreSmokeG, ", ", sCarAppOrder.iTyreSmokeB) PRINTLN("...Engine = ", sCarAppOrder.iEngine) PRINTLN("...Brakes = ", sCarAppOrder.iBrakes) PRINTLN("...Wheels = ", sCarAppOrder.iWheels) PRINTLN("...Exhaust = ", sCarAppOrder.iExhaust) PRINTLN("...Suspension = ", sCarAppOrder.iSuspension) PRINTLN("...Armour = ", sCarAppOrder.iArmour) PRINTLN("...Horn = ", sCarAppOrder.iHorn) PRINTLN("...Lights = ", sCarAppOrder.iLights) PRINTLN("...Turbo = ", sCarAppOrder.iTurbo) PRINTLN("...Bulletproof tyres = ", sCarAppOrder.bBulletProofTyres) // Update to the latest car plate g_MpSavedVehicles[iVehicleSlot].VehicleSetupMP.VehicleSetup.tlPlateText = sCarAppOrder.tlPlateText_pending g_MpSavedVehicles[iVehicleSlot].VehicleSetupMP.VehicleSetup.iPlateIndex = sCarAppOrder.iPlateBack_pending INT iGroup TEXT_LABEL tlLabel INT iAppCol1, iAppCol2 IF GET_CAR_APP_COLOUR_DATA(sCarAppOrder.iColourID1, tlLabel, iGroup, iAppCol1, iAppCol2) AND sCarAppOrder.eModel != SOVEREIGN PRINTLN("...Primary colour = ", tlLabel, " : ", iAppCol1, ",", iAppCol2) #IF USE_TU_CHANGES CLEAR_BIT(g_MpSavedVehicles[iVehicleSlot].VehicleSetupMP.VehicleSetup.iFlags, VEHICLE_SETUP_FLAG_CUSTOM_PRIMARY) #ENDIF g_MpSavedVehicles[iVehicleSlot].VehicleSetupMP.VehicleSetup.iColour1 = iAppCol1 g_MpSavedVehicles[iVehicleSlot].VehicleSetupMP.VehicleSetup.iColourExtra1 = iAppCol2 g_MpSavedVehicles[iVehicleSlot].iPrimaryColourGroup = iGroup ENDIF IF GET_CAR_APP_COLOUR_DATA(sCarAppOrder.iColourID2, tlLabel, iGroup, iAppCol1, iAppCol2) AND sCarAppOrder.eModel != SOVEREIGN PRINTLN("...Secondary colour = ", tlLabel, " : ", iAppCol1) CLEAR_BIT(g_MpSavedVehicles[iVehicleSlot].VehicleSetupMP.VehicleSetup.iFlags, VEHICLE_SETUP_FLAG_CUSTOM_SECONDARY) g_MpSavedVehicles[iVehicleSlot].VehicleSetupMP.VehicleSetup.iColour2 = iAppCol1 g_MpSavedVehicles[iVehicleSlot].iSecondaryColourGroup = iGroup ENDIF IF sCarAppOrder.bBulletProofTyres SET_BIT(g_MpSavedVehicles[iVehicleSlot].VehicleSetupMP.VehicleSetup.iFlags, VEHICLE_SETUP_FLAG_BULLETPROOF_TYRES) ELSE CLEAR_BIT(g_MpSavedVehicles[iVehicleSlot].VehicleSetupMP.VehicleSetup.iFlags, VEHICLE_SETUP_FLAG_BULLETPROOF_TYRES) ENDIF g_MpSavedVehicles[iVehicleSlot].VehicleSetupMP.VehicleSetup.iTyreR = sCarAppOrder.iTyreSmokeR g_MpSavedVehicles[iVehicleSlot].VehicleSetupMP.VehicleSetup.iTyreG = sCarAppOrder.iTyreSmokeG g_MpSavedVehicles[iVehicleSlot].VehicleSetupMP.VehicleSetup.iTyreB = sCarAppOrder.iTyreSmokeB IF sCarAppOrder.iWindowTint = -1 g_MpSavedVehicles[iVehicleSlot].VehicleSetupMP.VehicleSetup.iWindowTintColour = 0 ELSE g_MpSavedVehicles[iVehicleSlot].VehicleSetupMP.VehicleSetup.iWindowTintColour = sCarAppOrder.iWindowTint ENDIF IF sCarAppOrder.iExhaust != -1 g_MpSavedVehicles[iVehicleSlot].VehicleSetupMP.VehicleSetup.iModIndex[MOD_EXHAUST] = sCarAppOrder.iExhaust ENDIF IF sCarAppOrder.iEngine != -1 g_MpSavedVehicles[iVehicleSlot].VehicleSetupMP.VehicleSetup.iModIndex[MOD_ENGINE] = sCarAppOrder.iEngine ENDIF IF sCarAppOrder.iBrakes != -1 g_MpSavedVehicles[iVehicleSlot].VehicleSetupMP.VehicleSetup.iModIndex[MOD_BRAKES] = sCarAppOrder.iBrakes ENDIF IF sCarAppOrder.iHorn != -1 AND sCarAppOrder.iHorn < 9 // Block invalid horns g_MpSavedVehicles[iVehicleSlot].VehicleSetupMP.VehicleSetup.iModIndex[MOD_HORN] = sCarAppOrder.iHorn ENDIF IF sCarAppOrder.iSuspension != -1 g_MpSavedVehicles[iVehicleSlot].VehicleSetupMP.VehicleSetup.iModIndex[MOD_SUSPENSION] = sCarAppOrder.iSuspension ENDIF IF sCarAppOrder.iArmour != -1 g_MpSavedVehicles[iVehicleSlot].VehicleSetupMP.VehicleSetup.iModIndex[MOD_ARMOUR] = sCarAppOrder.iArmour ENDIF IF sCarAppOrder.iWheels != -1 AND IS_THIS_WHEEL_TYPE_ALLOWED_FOR_CARAPP_ORDER(INT_TO_ENUM(MOD_WHEEL_TYPE, sCarAppOrder.iWheelType)) g_MpSavedVehicles[iVehicleSlot].VehicleSetupMP.VehicleSetup.iModIndex[MOD_WHEELS] = sCarAppOrder.iWheels #IF USE_TU_CHANGES PRINTLN("[STOCK WHEEL FIX] [2] Setting defaut wheel type for stock wheels") g_MpSavedVehicles[iVehicleSlot].VehicleSetupMP.VehicleSetup.iWheelType = -1 #ENDIF ENDIF IF sCarAppOrder.iTurbo != -1 g_MpSavedVehicles[iVehicleSlot].VehicleSetupMP.VehicleSetup.iModIndex[MOD_TOGGLE_TURBO] = sCarAppOrder.iTurbo ENDIF IF sCarAppOrder.iLights != -1 g_MpSavedVehicles[iVehicleSlot].VehicleSetupMP.VehicleSetup.iModIndex[MOD_TOGGLE_XENON_LIGHTS] = sCarAppOrder.iLights ENDIF IF sCarAppOrder.iTyreSmoke != -1 g_MpSavedVehicles[iVehicleSlot].VehicleSetupMP.VehicleSetup.iModIndex[MOD_TOGGLE_TYRE_SMOKE] = sCarAppOrder.iTyreSmoke ENDIF // Refresh app! INT iCarAppSlot IF GET_CAR_APP_SLOT_FOR_SAVE_VEHICLE(iVehicleSlot, iCarAppSlot) IF bUpdateCaraApp SET_BIT(g_MpSavedVehicles[iVehicleSlot].iVehicleBS, MP_SAVED_VEHICLE_CARAPP_SEND) CLEAR_BIT(g_MpSavedVehicles[iVehicleSlot].iVehicleBS, MP_SAVED_VEHICLE_CARAPP_DELETE) ENDIF ENDIF RETURN TRUE ENDIF RETURN FALSE ENDFUNC FUNC FLOAT GET_VEHICLE_MOD_PRICE_MODIFIER(VEHICLE_INDEX vehID) INT iVehCost_Special = 100000 INT iVehCost_Sport = 65000 INT iVehCost_SUV = 50000 INT iVehCost_Standard = 20000 INT iVehCost_Bike = 20000 INT iVehCost_Cost = iVehCost_Bike // LOWEST IF DOES_ENTITY_EXIST(vehID) AND IS_VEHICLE_DRIVEABLE(vehID) AND GET_VEHICLE_MOD_KIT(vehID) >= 0 // Set price based on vehicle type IF GET_VEHICLE_MOD_KIT_TYPE(vehID) = MKT_SPECIAL iVehCost_Cost = iVehCost_Special ELIF GET_VEHICLE_MOD_KIT_TYPE(vehID) = MKT_SPORT iVehCost_Cost = iVehCost_Sport ELIF GET_VEHICLE_MOD_KIT_TYPE(vehID) = MKT_SUV iVehCost_Cost = iVehCost_SUV ELIF GET_VEHICLE_MOD_KIT_TYPE(vehID) = MKT_STANDARD IF IS_THIS_MODEL_A_BIKE(GET_ENTITY_MODEL(vehID)) iVehCost_Cost = iVehCost_Standard ELSE iVehCost_Cost = iVehCost_Bike ENDIF ENDIF ENDIF FLOAT fModifier = (TO_FLOAT(iVehCost_Cost) / TO_FLOAT(iVehCost_Bike)) RETURN fModifier //PRINTLN("cost modifier = ", fModifier) ENDFUNC FUNC BOOL BLOCK_CREW_EMBLEM_ON_VEHICLE(VEHICLE_INDEX mVeh) IF NOT NETWORK_IS_GAME_IN_PROGRESS() RETURN TRUE ENDIF IF GB_GET_GANGOPS_VARIATION_PLAYER_IS_ON (PLAYER_ID()) = GOV_CAR_COLLECTOR IF GB_GET_FREEMODE_DELIVERABLE_ID_DECOR(mVeh) != (-1) PRINTLN("BLOCK_CREW_EMBLEM_ON_VEHICLE - return TRUE, player is on car collector") RETURN TRUE ENDIF ENDIF IF g_bVehEmblemBlocked PRINTLN("BLOCK_CREW_EMBLEM_ON_VEHICLE - return TRUE, g_bVehEmblemBlocked") RETURN TRUE ENDIF SWITCH GET_ENTITY_MODEL(mVeh) CASE SANCHEZ CASE SANCHEZ2 CASE BLAZER CASE BLAZER3 CASE SURFER CASE SURFER2 CASE BIFTA CASE SOVEREIGN CASE HEXER CASE DUNE CASE DUNE2 CASE DUNE4 CASE DUNE5 CASE INSURGENT CASE INSURGENT2 CASE BLISTA3 #IF IS_NEXTGEN_BUILD CASE STALION2 CASE GAUNTLET2 CASE DOMINATOR2 CASE BUFFALO3 #ENDIF CASE MASSACRO2 CASE JESTER2 CASE OMNIS CASE BF400 CASE TROPOS CASE BRIOSO CASE TROPHYTRUCK CASE TROPHYTRUCK2 CASE CLIFFHANGER CASE TAMPA2 CASE GARGOYLE CASE DEATHBIKE CASE DEATHBIKE2 CASE DEATHBIKE3 CASE LE7B CASE TYRUS CASE LYNX CASE SHEAVA CASE CHIMERA CASE SANCTUS CASE BLAZER4 CASE MANCHEZ CASE RAPTOR CASE BLAZER5 CASE STRYDER CASE FORMULA CASE FORMULA2 CASE MINITANK #IF FEATURE_CASINO_HEIST CASE OUTLAW CASE VAGRANT #ENDIF #IF FEATURE_COPS_N_CROOKS CASE SURFER3 CASE POLICEB2 #ENDIF CASE OPENWHEEL1 CASE OPENWHEEL2 #IF FEATURE_HEIST_ISLAND CASE MANCHEZ2 CASE SQUADDIE CASE WINKY CASE VETO CASE VETO2 CASE VERUS #ENDIF #IF FEATURE_DLC_1_2022 CASE LM87 #ENDIF RETURN TRUE BREAK CASE YOUGA CASE YOUGA2 IF GET_VEHICLE_MOD(mVeh, MOD_BONNET) != -1 RETURN TRUE ENDIF BREAK CASE SURANO IF GET_VEHICLE_MOD(mVeh, MOD_CHASSIS) = 1 RETURN TRUE ENDIF BREAK CASE GP1 RETURN TRUE BREAK CASE APC CASE DUNE3 CASE INSURGENT3 CASE TRAILERLARGE CASE TRAILERSMALL2 CASE PHANTOM3 CASE HAULER2 RETURN TRUE BREAK CASE THRUSTER RETURN TRUE BREAK CASE TERBYTE RETURN TRUE BREAK CASE RCBANDITO CASE SCARAB CASE SCARAB2 CASE SCARAB3 CASE RROCKET CASE BLAZER2 CASE BURRITO2 CASE IGNUS #IF FEATURE_GEN9_EXCLUSIVE CASE IGNUS2 #ENDIF CASE DRAUGUR #IF FEATURE_DLC_2_2022 CASE BRICKADE2 #ENDIF RETURN TRUE BREAK CASE CLUB IF GET_VEHICLE_MOD(mVeh, MOD_BONNET) = 0 OR GET_VEHICLE_MOD(mVeh, MOD_BONNET) = 1 OR GET_VEHICLE_MOD(mVeh, MOD_BONNET) = 7 RETURN TRUE ENDIF BREAK CASE YOSEMITE3 IF GET_VEHICLE_MOD(mVeh, MOD_CHASSIS5) = 4 OR GET_VEHICLE_MOD(mVeh, MOD_CHASSIS5) = 5 OR GET_VEHICLE_MOD(mVeh, MOD_CHASSIS5) = 6 RETURN TRUE ENDIF BREAK ENDSWITCH RETURN FALSE ENDFUNC //You can visualise the probe using RAG/VisualEffects/Decals/Game/VehicleBadge-ProbeDebug. // This should help you to pass in the correct values here. FUNC BOOL GET_CREW_EMBLEM_POSITION_FOR_VEHICLE(VEHICLE_INDEX vehID, INT &iBoneIndex, VECTOR &vOffset, VECTOR &vDirection, VECTOR &vSide, FLOAT &fSize) IF NOT DOES_ENTITY_EXIST(vehID) OR NOT IS_VEHICLE_DRIVEABLE(vehID) RETURN FALSE ENDIF iBoneIndex = GET_ENTITY_BONE_INDEX_BY_NAME(vehID, "chassis_dummy") IF NOT ARE_VECTORS_EQUAL(g_vVehEmblemOffset, <<0.0,0.0,0.0>>) AND NOT ARE_VECTORS_EQUAL(g_vVehEmblemDirection, <<0.0,0.0,0.0>>) AND NOT ARE_VECTORS_EQUAL(g_vVehEmblemSide, <<0.0,0.0,0.0>>) AND NOT (g_fVehEmblemSize = 0.0) vOffset = g_vVehEmblemOffset vDirection = g_vVehEmblemDirection vSide = g_vVehEmblemSide fSize = g_fVehEmblemSize RETURN TRUE ENDIF SWITCH GET_ENTITY_MODEL(vehID) CASE DOMINATOR iBoneIndex = GET_ENTITY_BONE_INDEX_BY_NAME(vehID, "chassis_dummy") vOffset = <<0.0, 1.4, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.5 BREAK CASE FELTZER2 iBoneIndex = GET_ENTITY_BONE_INDEX_BY_NAME(vehID, "chassis_dummy") vOffset = <<0.0, 1.4, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.5 BREAK CASE ADDER vOffset = <<0.0, 1.540, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE AKUMA vOffset = <<0.0, 0.060, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, -0.0, 0.0>> fSize = 0.180 BREAK CASE ASEA vOffset = <<0.0, 1.500, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE ASTEROPE vOffset = <<0.0, 1.700, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE BAGGER vOffset = <<-1.000000,0.160000,0.283000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.090000 BREAK CASE BALLER vOffset = <<0.0, 1.400, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE BALLER2 vOffset = <<0.0, 1.550, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE BANSHEE vOffset = <<0.0, 0.940, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.400 BREAK CASE BATI vOffset = <<0.0, 0.200, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.150 BREAK CASE BATI2 vOffset = <<0.0, 0.200, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.150 BREAK CASE BFINJECTION vOffset = <<-1.0,0.08,0.19>> vDirection = <<1.0,0.0,0.0>> vSide = <<0.0,-1.0,0.0>> fSize = 0.500 BREAK CASE BISON vOffset = <<0.0, 1.990, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE BJXL vOffset = <<0.0, 1.200, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.400 BREAK CASE BLISTA vOffset = <<0.0, 1.490, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.290 BREAK CASE BOBCATXL vOffset = <<0.0, 1.680, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.650 BREAK CASE BODHI2 vOffset = <<0.0, 1.950, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE BUCCANEER vOffset = <<0.0, 2.010, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.370 BREAK CASE BUFFALO vOffset = <<0.0, 1.600, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE BUFFALO2 vOffset = <<0.0, 2.240, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.200 BREAK CASE BULLET vOffset = <<-1.570000,0.070000,0.160000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.300000 BREAK CASE CARBONRS vOffset = <<0.0, 0.090, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.180 BREAK CASE CARBONIZZARE vOffset = <<0.0, 1.450, 1.0>> vDirection = <<0.0, -0.11, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE CAVALCADE vOffset = <<0.0, 1.510, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.550 BREAK CASE CAVALCADE2 vOffset = <<0.0, 1.590, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE CHEETAH vOffset = <<-1.610000,0.260000,0.170000>> vDirection = <<0.900000,-0.000000,0.000000>> vSide = <<-0.000000,-1.000000,-0.000000>> fSize = 0.350000 BREAK CASE COGCABRIO vOffset = <<0.0, 1.420, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE COMET2 vOffset = <<0.0, 1.350, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE COQUETTE vOffset = <<0.0, 0.960, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.220 BREAK CASE DAEMON vOffset = <<0.0, 0.060, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.150 BREAK CASE DILETTANTE vOffset = <<0.0, 1.590, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE DLOADER vOffset = <<0.0, 1.520, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE DOUBLE vOffset = <<0.0, 0.080, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.200 BREAK CASE DUBSTA vOffset = <<-1.71,0.31,0.27>> vDirection = <<1.0,0.0,0.0>> vSide = <<0.0,-1.0,0.0>> fSize = 0.500 BREAK CASE DUBSTA2 vOffset = <<0.0, 1.400, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.750 BREAK CASE ELEGY2 vOffset = <<0.0, 1.140, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.350 BREAK CASE EMPEROR vOffset = <<0.0, 1.310, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE EMPEROR2 vOffset = <<0.0, 1.310, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE ENTITYXF vOffset = <<-1.520000,0.410000,0.150000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.300000 BREAK CASE EXEMPLAR vOffset = <<0.0, 1.320, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE F620 vOffset = <<0.0, 1.280, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.450 BREAK CASE FAGGIO2 vOffset = <<-1.0, -0.480, -0.110>> vDirection = <<1.0, 0.0, 0.0>> vSide = <<0.0, -1.0, 0.0>> fSize = 0.150 BREAK CASE FELON vOffset = <<0.0, 1.240, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.350 BREAK CASE FELON2 vOffset = <<0.0, 1.240, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.350 BREAK CASE FQ2 vOffset = <<0.000000,1.400000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.500000 BREAK CASE FUGITIVE vOffset = <<0.0, 1.620, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE FUSILADE vOffset = <<0.0, 0.980, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.200 BREAK //CASE FUSILADE vOffset = <<0.0, 1.220, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE FUTO vOffset = <<0.0, 1.280, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.450 BREAK CASE GAUNTLET vOffset = <<0.0, 1.7350, 1.050>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.330 BREAK CASE GRANGER vOffset = <<0.0, 2.070, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE GRESLEY vOffset = <<0.0, 1.750, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE HABANERO vOffset = <<0.0, 1.690, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE HEXER vOffset = <<0.0, -0.460, 1.0>> vDirection = <<0.0, 1.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.140 BREAK //CASE HOTKNIFE vOffset = <<0.0, -0.440, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE HOTKNIFE vOffset = <<-1.4300, -0.1400, 0.1800>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.5000 BREAK CASE INFERNUS vOffset = <<-1.000000,0.330000,0.080000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.060000>> fSize = 0.250000 BREAK CASE INGOT vOffset = <<0.0, 1.580, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE INTRUDER vOffset = <<0.0, 1.6230, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE ISSI2 vOffset = <<0.0, 1.210, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.300 BREAK CASE JACKAL vOffset = <<0.0, 1.360, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.400 BREAK CASE JB700 vOffset = <<0.0, 1.200, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.370 BREAK CASE KHAMELION vOffset = <<0.0, 1.460, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.475 BREAK CASE LANDSTALKER vOffset = <<0.0, 1.830, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE MANANA vOffset = <<0.0, 0.860, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.370 BREAK CASE MESA vOffset = <<0.0000, 1.4700, 1.0000>> vDirection = <<0.0000, 0.0000, -1.0000>> vSide = <<-1.0000, 0.0000, 0.0000>> fSize = 0.5000 BREAK CASE MESA3 vOffset = <<0.0000, 1.4700, 1.0000>> vDirection = <<0.0000, 0.0000, -1.0000>> vSide = <<-1.0000, 0.0000, 0.0000>> fSize = 0.5000 BREAK CASE MINIVAN vOffset = <<0.0, 1.950, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE MONROE vOffset = <<0.0, 1.230, 1.0>> vDirection = <<0.0, -0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.430 BREAK CASE NEMESIS vOffset = <<0.0, 0.140, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.100 BREAK CASE NINEF vOffset = <<0.0, 1.700, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE NINEF2 vOffset = <<0.0, 1.700, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE ORACLE vOffset = <<0.0, 1.600, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE ORACLE2 vOffset = <<0.0, 1.700, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE PATRIOT vOffset = <<0.0, 1.750, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE PCJ vOffset = <<0.0, 0.020, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.150 BREAK CASE PENUMBRA vOffset = <<0.0, 1.460, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE PEYOTE vOffset = <<-1.000000,-0.360000,0.212500>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.500000 BREAK // CASE PEYOTE vOffset = <<0.0, 1.920, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.250 BREAK CASE PHOENIX vOffset = <<0.0, 1.8330, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.440 BREAK CASE PICADOR vOffset = <<0.0, 1.430, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.425 BREAK CASE PRAIRIE vOffset = <<0.0, 1.410, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.310 BREAK CASE PREMIER vOffset = <<0.0, 1.600, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE PRIMO vOffset = <<0.0, 1.620, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE RADI vOffset = <<-0.0, 1.740, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE RANCHERXL vOffset = <<0.0, 1.540, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE RAPIDGT vOffset = <<0.0, 1.2630, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE RAPIDGT2 vOffset = <<0.0, 1.2630, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE RATLOADER vOffset = <<-1.780000,0.520000,0.520000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK CASE REBEL vOffset = <<-1.220000,0.600000,0.440000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.500000 BREAK CASE REBEL2 vOffset = <<0.0000, 1.6230, 1.0000>> vDirection = <<0.0000, 0.0000, -1.0000>> vSide = <<-1.0000, 0.0000, 0.0000>> fSize = 0.5000 BREAK CASE REGINA vOffset = <<0.0, 1.4730, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE rocoto vOffset = <<0.0, 1.6230, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE ROMERO vOffset = <<0.0, 1.830, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE RUFFIAN vOffset = <<0.0, -0.020, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.190 BREAK CASE RUINER vOffset = <<0.0, 1.340, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE SABREGT vOffset = <<-1.0000, 0.0000, 0.1400>> vDirection = <<1.0000, 0.0000, -0.0000>> vSide = <<0.0000, -1.0000, 0.0150>> fSize = 0.3500 BREAK //CASE SABREGT vOffset = <<0.0, 1.080, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.490 BREAK CASE SADLER vOffset = <<0.0, 2.260, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE SANDKING vOffset = <<0.0, 2.4960, 1.550>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE SANDKING2 vOffset = <<0.0, 2.2860, 1.550>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE SCHAFTER2 vOffset = <<0.0, 1.560, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.280 BREAK CASE SCHWARZER vOffset = <<0.0, 1.430, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.280 BREAK CASE SEMINOLE vOffset = <<0.00,1.45,1.0>> vDirection = <<0.0,0.0,-1.0>> vSide = <<-1.0,0.0,0.0>> fSize = 0.500 BREAK CASE SENTINEL vOffset = <<0.0, 1.180, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE SENTINEL2 vOffset = <<0.0, 1.520, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE SERRANO vOffset = <<0.0, 1.680, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.490 BREAK CASE STANIER vOffset = <<0.0, 1.550, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE STINGER vOffset = <<0.0, 1.300, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE STINGERGT vOffset = <<-1.000000,-0.170000,0.120000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK CASE STRATUM vOffset = <<0.0, 1.520, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE SULTAN vOffset = <<0.0, 1.770, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.330 BREAK CASE SUPERD vOffset = <<0.0, 1.620, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE SURANO vOffset = <<0.0, 1.380, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE SURFER vOffset = <<0.0, 2.480, 0.260>> vDirection = <<0.0, -1.0, -0.2120>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.320 BREAK CASE SURFER2 vOffset = <<0.0, 2.480, 0.260>> vDirection = <<0.0, -1.0, -0.2120>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.320 BREAK CASE SURGE vOffset = <<0.0, 1.690, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE TAILGATER vOffset = <<0.0, 1.7830, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.400 BREAK CASE TORNADO vOffset = <<-1.23,0.11,-0.21>> vDirection = <<1.0,0.0,0.0>> vSide = <<0.0,-1.0,0.0>> fSize = 0.400 BREAK //CASE TORNADO vOffset = <<-1.0, -0.740, -0.210>> vDirection = <<1.0, 0.0, 0.0>> vSide = <<0.0, -1.0, 0.0>> fSize = 0.300 BREAK CASE TORNADO2 vOffset = <<0.0, 1.440, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK //CASE TORNADO2 vOffset = <<-1.0, -0.740, -0.210>> vDirection = <<1.0, 0.0, 0.0>> vSide = <<0.0, -1.0, 0.0>> fSize = 0.300 BREAK CASE TORNADO3 vOffset = <<0.0, 1.440, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK //CASE TORNADO3 vOffset = <<-1.0, -0.740, -0.210>> vDirection = <<1.0, 0.0, 0.0>> vSide = <<0.0, -1.0, 0.0>> fSize = 0.300 BREAK CASE VACCA vOffset = <<0.0, 1.760, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.350 BREAK CASE VADER vOffset = <<0.0, 0.080, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.150 BREAK CASE VIGERO vOffset = <<-1.000000,0.110000,-0.150000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK CASE VOLTIC vOffset = <<0.0, 1.7630, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.290 BREAK CASE VOODOO2 vOffset = <<0.0, 1.480, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE WASHINGTON vOffset = <<0.0, 1.610, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE YOUGA vOffset = <<0.000000,2.352000,1.003000>> vDirection = <<0.000000,-1.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.175000 BREAK CASE ZION vOffset = <<0.0, 1.480, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.450 BREAK CASE ZION2 vOffset = <<0.0, 1.480, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.450 BREAK CASE ZTYPE vOffset = <<-0.960000,-0.690000,0.350000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK DEFAULT vOffset = <<-1.0, 0.0, 0.295>> vDirection = <<1.0, 0.0, 0.0>> vSide = <<0.0, 0.0, -1.0>> fSize = 0.5 BREAK ENDSWITCH #IF USE_TU_CHANGES SWITCH GET_ENTITY_MODEL(vehID) // BEACH BUM VEHICLES CASE KALAHARI vOffset = <<-1.0000, 0.1800, 0.1000>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.5000 BREAK CASE PARADISE vOffset = <<0.0000, 2.2300, 1.0000>> vDirection = <<0.0000, -0.2200, -1.0000>> vSide = <<-1.0000, 0.0000, 0.0000>> fSize = 0.5000 BREAK // BUSINESS PACK VEHICLES CASE ALPHA vOffset = <<-1.0000, 0.1800, -0.0500>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.5000 BREAK CASE HUNTLEY vOffset = <<0.0000, 1.5200, 0.9900>> vDirection = <<0.0000, -0.0000, -1.0000>> vSide = <<-1.0000, 0.0000, 0.0000>> fSize = 0.4000 BREAK CASE ZENTORNO vOffset = <<-1.2400, 0.3000, -0.0700>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3000 BREAK CASE JESTER vOffset = <<-1.0000, 0.1700, 0.2200>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0500>> fSize = 0.3300 BREAK CASE MASSACRO vOffset = <<0.0000, 1.3700, 1.0000>> vDirection = <<0.0000, 0.0000, -1.0000>> vSide = <<-1.0000, 0.0000, 0.0000>> fSize = 0.3300 BREAK CASE TURISMOR vOffset = <<-1.0000, 0.3000, 0.2700>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, -0.0000>> fSize = 0.3500 BREAK CASE THRUST vOffset = <<-1.0000, 0.4050, 0.4625>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.1625 BREAK // VALENTINES PACK VEHICLES CASE BTYPE vOffset = <<0.0000, 1.1430, 1.0000>> vDirection = <<0.0000, 0.0000, -1.0000>> vSide = <<-1.0000, 0.0000, 0.0000>> fSize = 0.7125 BREAK // HIPSTER CASE RHAPSODY vOffset = <<-1.000000,-0.470000,-0.250000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.262500 BREAK CASE GLENDALE vOffset = <<0.000000,1.683000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.775000 BREAK CASE WARRENER vOffset = <<0.000000,1.623000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.775000 BREAK CASE BLADE vOffset = <<-1.000000,0.445000,0.207500>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.325000 BREAK CASE PANTO vOffset = <<-1.0000, 0.0000, 0.3350>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.5000 BREAK CASE DUBSTA3 vOffset = <<-1.0000, 0.3400, 0.2975>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.5000 BREAK CASE PIGALLE vOffset = <<0.000000,1.623000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.500000 BREAK // PILOT CASE COQUETTE2 vOffset = <<-1.000000,-0.177500,0.195000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK // LTS PACK VEHICLES CASE INNOVATION vOffset = <<0.0000, 0.1500, 1.0000>> vDirection = <<0.0000, 0.0000, -1.0000>> vSide = <<-1.0000, 0.0000, 0.0000>> fSize = 0.1800 BREAK CASE HAKUCHOU vOffset = <<0.0000, 0.2700, 0.8450>> vDirection = <<0.0000, 0.0000, -1.0000>> vSide = <<-1.0000, 0.0000, 0.0000>> fSize = 0.1600 BREAK CASE FUROREGT vOffset = <<-1.0, 0.0, 0.20750>> vDirection = <<1.0, 0.0, 0.0 >> vSide = <<0.0, -1.0, 0.0>> fSize = 0.450 BREAK // CHRISTMAS2 CASE RATLOADER2 vOffset = <<-1.780000,0.520000,0.520000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK CASE SLAMVAN vOffset = <<-1.000000,0.275000,0.195000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.500000 BREAK #IF IS_NEXTGEN_BUILD // CGtoNG CASE DUKES2 vOffset = <<-1.000000,0.000000,0.000000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.375000 BREAK CASE DUKES vOffset = <<-1.000000,0.000000,0.037500>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.387500 BREAK CASE STALION vOffset = <<-1.000000,0.000000,0.092500>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.437500 BREAK CASE BLISTA2 vOffset = <<-1.000000,0.532500,0.245000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.287500 BREAK #ENDIF //HEIST CASE CASCO vOffset = <<0.000000,0.940000,1.030000>> vDirection = <<0.000000,-0.030000,-1.000000>> vSide = <<-1.00000000,0.00000000,0.000000>> fSize = 0.300000 BREAK CASE ENDURO vOffset = <<-0.000000,-0.170000,1.000000>> vDirection = <<0.000000,0.340000,-0.786000>> vSide = <<-1.000000,0.000000,0.00000000>> fSize = 0.150000 BREAK CASE GBURRITO2 vOffset = <<0.000000,2.320000,0.940000>> vDirection = <<0.000000,-0.182000,-1.000000>> vSide = <<-1.000000,0.000000,0.00000000>> fSize = 0.400000 BREAK CASE GUARDIAN vOffset = <<-1.940000,1.070000,0.380000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.00000000>> fSize = 0.350000 BREAK CASE KURUMA CASE KURUMA2 vOffset = <<-1.000000,0.247500,-0.175000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.435000 BREAK CASE LECTRO vOffset = <<0.000000, 0.300000, 1.000000>> vDirection = <<0.000000, 0.000000, -1.000000>> vSide = <<-1.000000, 0.000000, 0.000000>> fSize = 0.090000 BREAK // LUXE PACK VEHICLES CASE FELTZER3 iBoneIndex = GET_ENTITY_BONE_INDEX_BY_NAME(vehID,"chassis_dummy") vOffset = <<0.0,1.597,1.0>> vDirection = <<0.0,0.0,-1.0>> vSide = <<-1.0,0.0,0.0>> fSize = 0.45 BREAK CASE OSIRIS vOffset = <<-1.000000,0.270000,-0.030000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.300000 BREAK CASE VIRGO vOffset = <<-1.050000,0.000000,0.075000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK CASE WINDSOR vOffset = <<-1.200000,-0.390000,0.120000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.550000 BREAK // LUXE2 PACK VEHICLES CASE BRAWLER vOffset = <<-1.000000,-0.210000,0.000000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK CASE CHINO vOffset = <<-1.050000,0.000000,0.075000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK CASE COQUETTE3 vOffset = <<-1.000000,-0.177500,0.195000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK CASE T20 vOffset = <<-1.000000,0.400000,-0.120000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.200000 BREAK CASE VINDICATOR vOffset = <<-1.000000,0.210000,0.240000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.300000 BREAK // LOWRIDER VEHICLES CASE FACTION vOffset = <<-1.000000,0.000000,0.150000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.500000 BREAK CASE FACTION2 vOffset = <<-1.000000,0.000000,0.150000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.500000 BREAK CASE BUCCANEER2 vOffset = <<0.000000,2.010000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.370000 BREAK CASE CHINO2 vOffset = <<-1.050000,0.000000,0.075000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK CASE MOONBEAM vOffset = <<0.000000,1.713000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.500000 BREAK CASE MOONBEAM2 vOffset = <<0.000000,1.713000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.500000 BREAK CASE PRIMO2 vOffset = <<-1.000000,0.420000,0.000000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.500000 BREAK CASE VOODOO vOffset = <<-1.120000,0.000000,0.000000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.500000 BREAK // LOWRIDER2 VEHICLES CASE FACTION3 vOffset = <<-1.000000,0.000000,0.500000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.500000 BREAK CASE SABREGT2 vOffset = <<-1.000000,0.000000,0.140000>> vDirection = <<1.000000,0.000000,-0.00000>> vSide = <<0.000000,-1.000000,0.015000>> fSize = 0.350000 BREAK CASE TORNADO5 vOffset = <<-1.000000,0.150000,-0.090000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK CASE VIRGO2 vOffset = <<-1.0000, 0.0000, 0.1225>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3750 BREAK CASE VIRGO3 vOffset = <<-1.0000, 0.0000, 0.1225>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3750 BREAK CASE MINIVAN2 vOffset = <<0.000000,1.950000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.500000 BREAK CASE SLAMVAN3 vOffset = <<-1.000000,0.275000,0.195000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.500000 BREAK // HALLOWEEN VEHICLES CASE BTYPE2 vOffset = << -1, -0.1, 0.4 >> vDirection = << 1, 0, 0 >> vSide = << 0, -1, 0 >> fSize = 0.500000 BREAK CASE LURCHER vOffset = <<-1.000000,0.000000,0.300000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK // APARTMENT VEHICLES CASE BALLER3 vOffset = <<0.000000,1.400000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.500000 BREAK CASE BALLER4 vOffset = <<0.000000,1.400000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.500000 BREAK CASE BALLER5 vOffset = <<0.000000,1.400000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.500000 BREAK CASE BALLER6 vOffset = <<0.000000,1.400000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.500000 BREAK CASE COG55 vOffset = <<-1.000000,0.370000,0.130000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK CASE COG552 vOffset = <<-1.000000,0.370000,0.130000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK CASE COGNOSCENTI vOffset = <<-1.000000,0.370000,0.130000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK CASE COGNOSCENTI2 vOffset = <<-1.000000,0.370000,0.130000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK CASE MAMBA vOffset = <<-1.000000,-0.180000,0.210000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK CASE NIGHTSHADE vOffset = <<-1.000000,-0.200000,0.170000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK CASE SCHAFTER3 vOffset = <<0.000000,1.560000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.280000 BREAK CASE SCHAFTER4 vOffset = <<0.000000,1.560000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.280000 BREAK CASE SCHAFTER5 vOffset = <<0.000000,1.560000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.280000 BREAK CASE SCHAFTER6 vOffset = <<0.000000,1.560000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.280000 BREAK CASE VERLIERER2 vOffset = <<-1.000000,-0.210000,0.030000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK // XMAS 2015 VEHICLES CASE TAMPA vOffset = <<-1.000000,0.000000,0.120000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK CASE BANSHEE2 vOffset = <<-1.000000,-0.400000,0.075000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE SULTANRS vOffset = <<0.000000,1.770000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.330000 BREAK CASE BTYPE3 vOffset = << -1, -0.1, 0.4 >> vDirection = << 1, 0, 0 >> vSide = << 0, -1, 0 >> fSize = 0.500000 BREAK CASE BESTIAGTS vOffset = <<-1.000000,-0.060000,0.400000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK // CASE BRICKADE BREAK CASE SEVEN70 vOffset = <<-1.000000,-0.210000,0.250000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK CASE FMJ vOffset = <<-1.000000,-0.060000,0.210000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.300000 BREAK // CASE NIMBUS BREAK CASE PFISTER811 vOffset = <<-1.000000,0.060000,0.250000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK CASE PROTOTIPO vOffset = <<-1.000000,0.300000,0.270000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,-0.000000>> fSize = 0.350000 BREAK CASE REAPER vOffset = <<-1.000000,0.480000,0.000000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.300000 BREAK CASE RUMPO3 vOffset = <<0.000000,2.103000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.500000 BREAK // CASE VOLATUS BREAK CASE WINDSOR2 vOffset = <<-1.200000,0.030000,0.240000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.550000 BREAK CASE XLS vOffset = <<-1.000000,0.360000,-0.150000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK CASE XLS2 vOffset = <<-1.000000,0.360000,-0.150000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK // CASE BF400 // CASE BRIOSO vOffset = <<-1.000000,-0.060000,0.565000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.300000 BREAK // CASE CLIFFHANGER // CASE CONTENDER vOffset = <<0.000000,2.330000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.500000 BREAK CASE LE7B vOffset = <<-1.000000,-0.120000,0.235000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.300000 BREAK CASE OMNIS vOffset = <<-1.000000,0.030000,0.180000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK // CASE TROPHYTRUCK // // CASE TROPHYTRUCK2 // CASE TROPOS vOffset = <<-1.000000,0.000000,0.240000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK // CASE XR750 // CASE AVARUS vOffset = <<-1.000000,0.270000,0.250000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.100000 BREAK // CASE CHIMERA not safe to add CASE DAEMON2 vOffset = <<-1.000000,0.270000,0.290000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.100000 BREAK CASE DEFILER vOffset = <<-1.000000,0.000000,0.340000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.125000 BREAK CASE ESSKEY vOffset = <<-1.000000,0.335000,0.310000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.090000 BREAK CASE HAKUCHOU2 vOffset = <<0.000000,0.270000,0.845000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.150000 BREAK CASE NIGHTBLADE vOffset = <<0.0000, -0.1330, 0.6100>> vDirection = <<0.0000, 0.0000, -1.0000>> vSide = <<-1.0000, 0.0000, 0.0000>> fSize = 0.1250 BREAK CASE RATBIKE vOffset = <<-1.000000,0.310000,0.240000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.100000 BREAK CASE SHOTARO vOffset = <<-1.000000,0.060000,0.325000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.100000 BREAK // CASE TRIKEA // // CASE TRIKEB // CASE ZOMBIEA vOffset = <<-1.000000,0.300000,0.250000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.100000 BREAK CASE ZOMBIEB vOffset = <<-1.000000,0.200000,0.250000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.100000 BREAK // CASE BLAZER4 not consistent to add // CASE SANCTUS not safe to add CASE VORTEX vOffset = <<-1.000000,0.180000,0.370000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.095000 BREAK // CASE MANCHEZ not consistent to add CASE TORNADO6 vOffset = <<-1.000000,-0.030000,-0.240000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.300000 BREAK CASE YOUGA2 vOffset = <<0.000000,2.352000,0.253000>> vDirection = <<0.000000,-1.000000,-0.256000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.175000 BREAK CASE WOLFSBANE vOffset = <<-1.000000,0.330000,0.240000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.100000 BREAK CASE FAGGIO3 vOffset = <<-1.000000,-0.540000,-0.110000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.150000 BREAK CASE FAGGIO vOffset = <<-0.9875, -0.0175, -0.0100>> vDirection = <<0.8975, -0.2600, -0.0725>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.1625 BREAK // CASE RAPTOR not safe to add // CASE BLAZER5 not safe to add // CASE BOXVILLE5 // CASE COMET3 vOffset = <<-1.000000,0.000000,0.295000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE DIABLOUS vOffset = <<-1.000000,0.006000,0.382000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.100000 BREAK CASE DIABLOUS2 vOffset = <<-1.000000,0.225000,0.541000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.100000 BREAK // CASE DUNE4 not safe to add // CASE DUNE5 not safe to add CASE ELEGY vOffset = <<0.000000,1.140000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.350000 BREAK CASE FCR vOffset = <<-1.000000,0.234000,0.376000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.100000 BREAK CASE FCR2 vOffset = <<-1.000000,0.234000,0.376000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.100000 BREAK CASE ITALIGTB vOffset = <<-1.000000,-0.024000,0.187000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.250000 BREAK CASE ITALIGTB2 vOffset = <<-1.000000,-0.024000,0.187000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.250000 BREAK CASE NERO vOffset = <<-1.000000,0.237000,0.090000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.250000 BREAK CASE NERO2 vOffset = <<-1.000000,0.237000,0.090000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.250000 BREAK CASE PENETRATOR vOffset = <<-1.000000,0.153000,0.295000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK // CASE PHANTOM2 // CASE RUINER2 vOffset = <<0.363000,1.340000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.400000 BREAK CASE RUINER3 vOffset = <<0.363000,1.340000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.400000 BREAK CASE SPECTER vOffset = <<-1.000000,-0.273000,-0.020000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.200000 BREAK CASE SPECTER2 vOffset = <<-1.000000,-0.273000,0.286000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.200000 BREAK CASE TECHNICAL2 vOffset = <<0.000000,1.623000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.500000 BREAK CASE TEMPESTA vOffset = <<-1.000000,0.000000,0.253000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.250000 BREAK CASE VOLTIC2 vOffset = <<0.000000,1.763000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.290000 BREAK // CASE WASTELANDER // // CASE GP1 not safe to add [url:bugstar:3354120] CASE INFERNUS2 vOffset = <<-1.000000,0.330000,0.060000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.060000>> fSize = 0.200000 BREAK CASE RUSTON vOffset = <<-1.000000,-0.273000,0.084000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.150000 BREAK CASE TURISMO2 vOffset = <<-1.000000,0.159000,-0.193000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.250000 BREAK // CASE APC not safe to add [url:bugstar:3519312] CASE ARDENT vOffset = <<-1.000000,0.309000,0.276000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.200000 BREAK CASE CHEETAH2 vOffset = <<-1.000000,0.159000,-0.127000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.250000 BREAK // CASE DUNE3 not safe to add [url:bugstar:3520573] CASE HALFTRACK vOffset = <<-1.000000,0.501000,0.531000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK // CASE INSURGENT3 not safe to add [url:bugstar:3520694] CASE NIGHTSHARK vOffset = <<-1.500000,0.420000,0.584000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.300000 BREAK CASE OPPRESSOR vOffset = <<-1.000000,0.306000,0.355000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.080000 BREAK CASE TAMPA3 vOffset = <<0.000000,1.515000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.275000 BREAK CASE TECHNICAL3 vOffset = <<0.000000,1.623000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.430000 BREAK CASE TORERO vOffset = <<-1.000000,0.201000,0.114000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.300000 BREAK CASE VAGNER vOffset = <<-1.500000,0.906000,0.071000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.100000 BREAK CASE XA21 vOffset = <<-1.000000,0.441000,0.130000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.250000 BREAK CASE PHANTOM3 vOffset = <<-1.300000,2.045000,0.802000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK CASE HAULER2 vOffset = <<-1.627000,2.456000,0.745000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK CASE CYCLONE vOffset = <<-1.000000,0.186000,0.382000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.200000 BREAK CASE VISIONE vOffset = <<-1.000000,0.432000,0.031000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.150000 BREAK CASE VIGILANTE vOffset = <<-1.000000,0.232000,0.240000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.175000 BREAK CASE RETINUE vOffset = <<-1.000000,-0.018000,0.253000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.300000 BREAK CASE RAPIDGT3 vOffset = <<0.000000,1.972000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.180000 BREAK CASE AVENGER vOffset = <<-2.020000,6.450000,-0.716000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK CASE DELUXO vOffset = <<-1.000000,-0.291000,0.247000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.200000 BREAK CASE STROMBERG vOffset = <<-1.000000,0.230000,0.247000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.200000 BREAK CASE RIOT2 vOffset = <<-1.891000,2.144000,0.657000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK CASE CHERNOBOG vOffset = <<-2.127000,5.413000,1.132000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.340000 BREAK CASE KHANJALI vOffset = <<-0.897000,1.391000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.400000 BREAK // CASE THRUSTER not safe to add [url:bugstar:4158737] CASE BARRAGE vOffset = <<-1.510000,0.710000,0.451000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.250000 BREAK // CASE VOLATOL plane so none applied in hangar CASE COMET4 vOffset = <<-1.000000,0.298000,0.257000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.360000 BREAK CASE NEON vOffset = <<-1.000000,0.181000,-0.066000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.300000 BREAK CASE STREITER vOffset = <<-1.000000,0.301000,0.295000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE SENTINEL3 vOffset = <<0.000000,1.520000,1.000000>> vDirection = << 0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.500000 BREAK CASE YOSEMITE vOffset = <<-1.000000,0.252000,0.201000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.300000 BREAK CASE SC1 vOffset = <<-1.000000,0.616000,-0.131000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.250000 BREAK CASE AUTARCH vOffset = <<-1.000000,0.000000,0.116000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.250000 BREAK CASE GT500 vOffset = <<-1.000000,0.000000,0.000000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.250000 BREAK CASE HUSTLER vOffset = <<-1.000000,-0.228000,0.321000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE REVOLTER vOffset = <<-1.000000,0.203000,0.126000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK CASE PARIAH vOffset = <<-1.000000,-0.126000,0.208000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK CASE RAIDEN vOffset = <<-1.000000,0.252000,-0.095000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK CASE SAVESTRA vOffset = <<-1.000000,0.000000,0.250000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK CASE RIATA vOffset = <<-1.300000,0.180000,0.511000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.300000 BREAK CASE HERMES vOffset = <<-1.000000,-0.134000,0.158000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE COMET5 vOffset = <<-1.000000,0.002000,0.031000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK CASE Z190 vOffset = <<-1.000000,-0.175000,0.242000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE VISERIS vOffset = <<-1.000000,0.000000,0.244000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.275000 BREAK CASE KAMACHO vOffset = <<0.000000,1.623000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.500000 BREAK ENDSWITCH SWITCH GET_ENTITY_MODEL(vehID) CASE GB200 vOffset = <<-1.000000,0.000000,0.407000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.225000 BREAK CASE FAGALOA vOffset = <<-1.000000,0.000000,0.225000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE ELLIE vOffset = <<-1.000000,0.441000,-0.128000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK CASE ISSI3 vOffset = <<-1.000000,0.195000,0.246000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE MICHELLI vOffset = <<-1.000000,0.000000,0.080500>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK CASE FLASHGT vOffset = <<0.000000,1.592000,1.000000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.250000 BREAK CASE HOTRING vOffset = <<-1.000000,0.000000,0.000000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.500000 BREAK CASE TEZERACT vOffset = <<-1.000000,0.679000,0.514000>> vDirection = <<1.000000,0.000000,-0.750000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.175000 BREAK CASE TYRANT vOffset = <<-1.588000,0.315000,0.337000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.300000 BREAK CASE DOMINATOR3 vOffset = <<-1.000000,0.000000,0.221000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.500000 BREAK CASE TAIPAN vOffset = <<-1.000000,0.000000,0.219000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE ENTITY2 vOffset = <<-1.520000,0.410000,0.150000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.300000 BREAK CASE JESTER3 vOffset = <<-1.000000,0.000000,0.297000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE CHEBUREK vOffset = <<-1.000000,0.393000,0.162000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.375000 BREAK CASE CARACARA vOffset = <<-1.000000,1.266000,0.411500>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK // CASE SEASPARROW helecopter so none applied in hangar CASE SPEEDO4 vOffset = <<-1.500000,0.833000,0.391000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.200000 BREAK CASE MULE4 vOffset = <<-1.125000,2.691000,0.318000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK CASE POUNDER2 vOffset = <<-1.500000,1.853000,0.779000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.380000 BREAK CASE SWINGER vOffset = <<-1.000000,0.195000,0.105000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK CASE MENACER vOffset = <<-1.730000,0.159000,0.610000>> vDirection = <<1.000000,0.120000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE SCRAMJET vOffset = <<-1.000000,-0.188000,0.000000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.250000 BREAK // CASE STRIKEFORCE vOffset = <<-1.000000,0.195000,0.105000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK CASE PATRIOT2 vOffset = <<-1.213000,1.546000,0.511000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.300000 BREAK CASE STAFFORD vOffset = <<-1.000000,0.036000,0.096000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE FREECRAWLER vOffset = <<-1.000000,0.249000,0.511000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE OPPRESSOR2 vOffset = <<-1.000000,0.306000,0.355000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.080000 BREAK CASE TERBYTE vOffset = <<-1.730000,3.397000,0.724000>> vDirection = <<1.000000,0.120000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.250000 BREAK CASE BRUISER vOffset = <<0.000000,2.120000,1.241000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.084000>> fSize = 0.775000 BREAK CASE BRUISER2 vOffset = <<0.000000,2.120000,1.241000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.084000>> fSize = 0.775000 BREAK CASE BRUISER3 vOffset = <<0.000000,2.120000,1.241000>> vDirection = <<0.000000,0.000000,-1.000000>> vSide = <<-1.000000,0.000000,0.084000>> fSize = 0.775000 BREAK CASE BRUTUS vOffset = <<-1.000000,0.446000,0.247000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE BRUTUS2 vOffset = <<-1.000000,0.446000,0.247000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE BRUTUS3 vOffset = <<-1.000000,0.446000,0.247000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE CERBERUS vOffset = <<-1.432000,1.443000,1.292000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.500000 BREAK CASE CERBERUS2 vOffset = <<-1.432000,1.443000,1.292000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.500000 BREAK CASE CERBERUS3 vOffset = <<-1.432000,1.443000,1.292000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.500000 BREAK CASE CLIQUE vOffset = <<-1.000000,0.167000,0.159000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE DEVESTE vOffset = <<-1.500000,1.066000,0.130000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.150000 BREAK CASE DEVIANT vOffset = <<-1.000000,0.111000,0.123000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK CASE DOMINATOR4 vOffset = <<-1.000000,0.000000,0.417000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE DOMINATOR5 vOffset = <<-1.000000,0.000000,0.417000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE DOMINATOR6 vOffset = <<-1.000000,0.000000,0.417000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE IMPALER vOffset = <<-1.000000,0.000000,0.137000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK CASE IMPALER2 vOffset = <<-1.000000,0.000000,0.137000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK CASE IMPALER3 vOffset = <<-1.000000,0.000000,0.137000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK CASE IMPALER4 vOffset = <<-1.000000,0.000000,0.137000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK CASE IMPERATOR vOffset = <<-1.000000,0.000000,0.295000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE IMPERATOR2 vOffset = <<-1.000000,0.000000,0.295000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE IMPERATOR3 vOffset = <<-1.000000,0.000000,0.295000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE ISSI4 vOffset = <<-1.000000,0.195000,0.246000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE ISSI5 vOffset = <<-1.000000,0.195000,0.246000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE ISSI6 vOffset = <<-1.000000,0.195000,0.246000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE ITALIGTO vOffset = <<-1.000000,-0.091000,0.207000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.250000 BREAK // CASE RCBANDITO RC vehicle so never modded CASE MONSTER3 vOffset = <<-1.780000,0.445000,0.810000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK CASE MONSTER4 vOffset = <<-1.780000,0.445000,0.810000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK CASE MONSTER5 vOffset = <<-1.780000,0.445000,0.810000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK // CASE SCARAB not safe to add [url:bugstar:5521593] // CASE SCARAB2 not safe to add [url:bugstar:5521593] // CASE SCARAB3 not safe to add [url:bugstar:5521593] CASE SCHLAGEN vOffset = <<-1.000000,-0.105000,0.262000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE SLAMVAN4 vOffset = <<-1.000000,0.152000,0.537000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.500000 BREAK CASE SLAMVAN5 vOffset = <<-1.000000,0.152000,0.537000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.500000 BREAK CASE SLAMVAN6 vOffset = <<-1.000000,0.152000,0.537000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.500000 BREAK CASE TOROS vOffset = <<-1.000000,0.415000,0.394000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE TULIP vOffset = <<-1.000000,0.171000,0.223000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK CASE VAMOS vOffset = <<-1.000000,0.000000,0.163000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE ZR380 vOffset = <<-1.000000,0.000000,0.286000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK CASE ZR3802 vOffset = <<-1.000000,0.000000,0.286000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK CASE ZR3803 vOffset = <<-1.000000,0.000000,0.286000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK CASE CARACARA2 vOffset = <<-1.000000,0.687000,0.411500>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE DRAFTER vOffset = <<-1.045000,0.150000,0.090000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE DYNASTY vOffset = <<-1.000000,0.120000,0.334000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK CASE EMERUS vOffset = <<-1.000000,0.372000,0.439000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.100000 BREAK CASE GAUNTLET3 vOffset = <<-1.000000,0.000000,0.222000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.330000 BREAK CASE GAUNTLET4 vOffset = <<-1.000000,0.000000,0.222000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.330000 BREAK CASE HELLION vOffset = <<-1.000000,0.270000,0.246000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK CASE ISSI7 vOffset = <<-1.000000,0.195000,-0.063000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.400000 BREAK CASE JUGULAR vOffset = <<-1.000000,0.213000,0.213000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK CASE KRIEGER vOffset = <<-1.000000,0.576000,-0.123000>> vDirection = <<0.997000,-0.105000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.250000 BREAK CASE LOCUST vOffset = <<-1.000000,-0.207000,0.042000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.200000 BREAK CASE NEBULA vOffset = <<-1.000000,0.012000,0.147000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK CASE NEO vOffset = <<-1.000000,0.216000,0.216000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.300000 BREAK CASE NOVAK vOffset = <<-1.000000,0.240000,0.255000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK CASE PARAGON vOffset = <<-1.000000,0.000000,0.156000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK CASE PARAGON2 vOffset = <<-1.000000,0.000000,0.156000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.450000 BREAK CASE PEYOTE2 vOffset = <<-1.000000,-0.360000,0.212500>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.500000 BREAK CASE S80 vOffset = <<-1.000000,0.357000,0.256000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.200000 BREAK CASE THRAX vOffset = <<-1.000000,0.426000,0.339000>> vDirection = <<1.000000,0.060000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.300000 BREAK CASE ZION3 vOffset = <<-1.000000,0.108000,0.234000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.250000 BREAK CASE ZORRUSSO vOffset = <<-1.000000,0.273000,-0.060000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.250000 BREAK CASE SLAMVAN2 vOffset = <<-1.000000,0.3500,0.456000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.250000 BREAK CASE REBLA vOffset = <<0.0000, 1.9002, 1.0000>> vDirection = <<0.0000, 0.0000, -1.0000>> vSide = <<-1.0000, 0.0000, 0.0000>> fSize = 0.3000 BREAK CASE ASBO vOffset = <<-1.0000, 0.1040, 0.3390>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0, -1.0000, 0.0000>> fSize = 0.3000 BREAK CASE SUGOI vOffset = <<-1.0000, 0.1040, 0.2230>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0, -1.0000, 0.0000>> fSize = 0.4000 BREAK CASE KOMODA vOffset = <<-1.0000, 0.1040, 0.155>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0, -1.0000, 0.0000>> fSize = 0.4000 BREAK CASE VSTR vOffset = <<-1.0000, 0.1040, 0.155>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0, -1.0000, 0.0000>> fSize = 0.4000 BREAK CASE SULTAN2 vOffset = <<-1.000, 0.313, 0.160>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK CASE KANJO vOffset = <<-1.000, 0.313, 0.160>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK CASE JB7002 vOffset = <<0.0, 1.200, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.370 BREAK CASE YOSEMITE2 vOffset = <<-1.000000,0.252000,0.201000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.300000 BREAK CASE RETINUE2 vOffset = <<-1.000000,-0.018000,0.253000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.300000 BREAK CASE FURIA vOffset = <<-1.0000, 0.0965, 0.1490>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.5000 BREAK CASE EVERON vOffset = <<0.0000, 2.0190, 1.0000>> vDirection = <<0.0000, 0.0000, -1.0000>> vSide = <<-1.0000, 0.0000, 0.0000>> fSize = 0.5000 BREAK CASE IMORGON vOffset = <<-1.5000, 0.4200, -0.2000>> vDirection = <<1.0000, -0.0997, 0.0415>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.450000 BREAK CASE ZHABA vOffset = <<-1.2020, 0.0340, 0.6635>> vDirection = <<1.0000, -0.0020, 0.0000>> vSide = <<0.0000, -0.7398, -0.0000>> fSize = 0.400000 BREAK CASE GAUNTLET5 vOffset = <<-1.5000, 0.379, 0.297 >> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.2400 BREAK CASE DUKES3 vOffset = <<-1.000000,0.000000,0.000000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.375000 BREAK CASE MANANA2 vOffset = <<-1.760, 0.105, 0.009>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.220 BREAK CASE CLUB vOffset = <<0.0000, 1.2520, 1.0000>> vDirection = <<0.0000, 0.0000, -1.0000>> vSide = <<-1.0000, 0.0000, 0.0000>> fSize = 0.3100 BREAK CASE GLENDALE2 vOffset = <<0.0000, 2.1350, 1.0000>> vDirection = <<0.0000, 0.0000, -1.0000>> vSide = <<-1.0000, 0.0000, 0.0000>> fSize = 0.2050 BREAK CASE YOUGA3 vOffset = <<0.000000,2.352000,0.3000>> vDirection = <<0.000000,-1.000000,-0.256000>> vSide = <<-1.000000,0.000000,0.000000>> fSize = 0.135000 BREAK CASE YOSEMITE3 vOffset = <<-1.000000,0.252000,0.203>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.210 BREAK CASE SEMINOLE2 vOffset = <<0.0000, 1.654, 1.0000>> vDirection = <<0.0000, 0.0000, -1.0000>> vSide = <<-1.0000, 0.0000, 0.0000>> fSize = 0.2500 BREAK CASE PENUMBRA2 vOffset = <<-1.0800, 0.2800, -0.0930>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.4000 BREAK // CASE PRIMO3 vOffset = <<-1.000000, 0.420000, 0.000000>> vDirection = <<1.000000, 0.000000, 0.000000>> vSide = <<0.000000, -1.000000, 0.000000>> fSize = 0.500000 BREAK CASE LANDSTALKER2 vOffset = <<-1.640, 0.700, 0.000000>> vDirection = <<1.000000, 0.000000, 0.000000>> vSide = <<0.000000, -1.000000, 0.000000>> fSize = 0.350000 BREAK CASE COQUETTE4 vOffset = <<-1.0000, -0.0210, 0.2730>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.2500 BREAK CASE TIGON vOffset = <<-1.000000,0.156,0.099>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.300000 BREAK CASE PEYOTE3 vOffset = <<-1.500000,-0.360000,0.212500>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK #IF FEATURE_COPS_N_CROOKS CASE POLICEB2 vOffset = <<-0.6200, 0.207, 0.265>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.0900 BREAK CASE POLGREENWOOD vOffset = <<-1.0000, 0.3600, 0.1240>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3100 BREAK CASE ZOKU vOffset = <<-1.0000, 0.2290, 0.385>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.0800 BREAK CASE POLPANTO vOffset = <<-1.0000, -0.3210, 0.5650>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.2000 BREAK CASE POLBUFFALO vOffset = <<0.0, 2.240, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.200 BREAK CASE POLGAUNTLET vOffset = <<0.0000, 2.1730, 1.0000>> vDirection = <<0.0000, 0.0000, -1.0000>> vSide = <<-1.0000, 0.0000, 0.0000>> fSize = 0.1400 BREAK CASE POLBATI vOffset = <<0.0, 0.200, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.150 BREAK CASE POLCARACARA vOffset = <<0.0000, 2.3610, 1.0000>> vDirection = <<0.0000, 0.0000, -1.0000>> vSide = <<-1.0000, 0.0000, 0.0000>> fSize = 0.300 BREAK CASE POLGRANGER vOffset = <<0.0, 2.070, 1.0>> vDirection = <<0.0, 0.0, -1.0>> vSide = <<-1.0, 0.0, 0.0>> fSize = 0.500 BREAK CASE POLICE5 vOffset = <<0.0000, 2.2000, 1.0000>> vDirection = <<0.0000, 0.0000, -1.0000>> vSide = <<-1.0000, 0.0000, 0.0000>> fSize = 0.3000 BREAK CASE POLICE6 vOffset = <<0.0000, 1.717, 1.0000>> vDirection = <<0.0000, 0.0000, -1.0000>> vSide = <<-1.0000, 0.0000, 0.0000>> fSize = 0.2700 BREAK CASE POLICET2 vOffset = <<0.0000, 2.220, 1.340>> vDirection = <<0.0000, 0.0000, -1.0000>> vSide = <<-1.0000, 0.0000, 0.0000>> fSize = 0.265 BREAK CASE POLRIATA vOffset = <<-1.3000, 0.5690, 0.7030>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3000 BREAK #ENDIF CASE BRIOSO2 vOffset = <<-1.000000,0.275,0.215>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.300000 BREAK CASE SLAMTRUCK vOffset = <<-1.0000, 1.4540, 0.4850>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.300 BREAK CASE ITALIRSX vOffset = <<-1.0000, 0.1090, 0.1290>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3000 BREAK CASE TOREADOR vOffset = <<-1.0000, 0.194, 0.342>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.1500 BREAK CASE WEEVIL vOffset = <<-1.0000, 0.1110, 0.1680>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3000 BREAK CASE ZR350 vOffset = <<0.0000, 1.6320, 1.0000>> vDirection = <<0.0000, 0.0000, -1.0000>> vSide = <<-1.0000, 0.0000, 0.0000>> fSize = 0.1900 BREAK CASE CALICO vOffset = <<-1.0000, 0.4970, 0.2120>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3000 BREAK CASE JESTER4 vOffset = <<-1.0000, 0.0000, 0.1810>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3500 BREAK CASE COMET6 vOffset = <<-1.0000, 0.2050, 0.0740>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3500 BREAK CASE WARRENER2 vOffset = <<-1.0000, 0.4080, 0.2950>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3500 BREAK CASE REMUS vOffset = <<-1.0000, 0.2040, 0.3570>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3500 BREAK CASE VECTRE vOffset = <<-1.0000, 0.2490, 0.1640>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3500 BREAK CASE DOMINATOR7 vOffset = <<-1.0000, 0.2530, 0.1420>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3000 BREAK CASE CYPHER vOffset = <<-1.0000, 0.2230, 0.1850>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.4000 BREAK CASE RT3000 vOffset = <<-1.0000, 0.00, 0.189>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3500 BREAK CASE SULTAN3 vOffset = <<-1.0000, 0.420, 0.309>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.2300 BREAK CASE TAILGATER2 vOffset = <<-1.0000, 0.337, 0.283>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3500 BREAK CASE PREVION vOffset = <<-1.0000, 0.1400, -0.1550>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3500 BREAK CASE DOMINATOR8 vOffset = <<-1.0000, 0.1530, -0.0060>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3500 BREAK CASE FUTO2 vOffset = <<-1.0000, 0.3180, -0.0130>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3500 BREAK CASE EUROS vOffset = <<-1.0000, 0.1010, 0.1870>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3500 BREAK CASE GROWLER vOffset = <<-1.0000, 0.1510, 0.1490>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3500 BREAK CASE CINQUEMILA vOffset = <<-1.0000, 0.533, 0.197>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.400 BREAK CASE CHAMPION vOffset = <<-1.0000, 0.076, 0.122>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.400 BREAK #IF FEATURE_FIXER CASE GRANGER2 vOffset = <<-1.0000, 0.4610, 0.2640>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3500 BREAK CASE DEITY vOffset = <<-1.0000, 0.2790, 0.2350>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3500 BREAK CASE BUFFALO4 vOffset = <<-1.0000, 0.2510, 0.1490>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3500 BREAK CASE BALLER7 vOffset = <<-1.1940, 0.1820, 0.0000>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3500 BREAK CASE ZENO vOffset = <<-1.1940, 0.4090, 0.1990>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.2200 BREAK CASE COMET7 vOffset = <<-1.0000, 0.0500, 0.1870>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3500 BREAK CASE ASTRON vOffset = <<-1.0000, 0.2490, 0.3900>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3500 BREAK CASE PATRIOT3 vOffset = <<-1.2000, 0.4740, 0.3350>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.2300 BREAK CASE JUBILEE vOffset = <<-1.0370, 0.4380, 0.3100>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3000 BREAK CASE SHINOBI vOffset = <<0.0000, 0.3060, 1.0000>> vDirection = <<0.0000, 0.0000, -1.0000>> vSide = <<-1.0000, 0.0000, 0.0000>> fSize = 0.0450 BREAK CASE REEVER vOffset = <<-1.0000, 0.2920, 0.2900>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.1000 BREAK CASE IWAGEN vOffset = <<-1.0000, 0.3870, 0.2090>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3000 BREAK #ENDIF #IF FEATURE_GEN9_EXCLUSIVE CASE CYCLONE2 vOffset = <<-1.00,0.434,0.138>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.300000 BREAK CASE ARBITERGT vOffset = <<-1.000000,0.184,0.22000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.280000 BREAK CASE ASTRON2 vOffset = <<-1.000000,0.326,0.475000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.350000 BREAK CASE S95 vOffset = <<-1.000000,0.102,0.157000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.300000 BREAK #ENDIF #IF FEATURE_DLC_1_2022 CASE BRIOSO3 vOffset = <<-1.0000, 0.1500, 0.2000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.4000 BREAK CASE CORSITA vOffset = <<-1.0000, 0.1000, 0.2200>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.3000 BREAK CASE GREENWOOD vOffset = <<-1.0000, 0.2000, 0.1380>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.3000 BREAK CASE KANJOSJ vOffset = <<-1.0000, 0.1000, 0.2600>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.4000 BREAK CASE POSTLUDE vOffset = <<-1.0000, 0.0000, 0.2800>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.3000 BREAK CASE RHINEHART vOffset = <<0.0000, 1.3170, 1.0000>> vDirection = <<0.0000, 0.0000, -1.0000>> vSide = <<-1.0000, 0.0000, 0.0000>> fSize = 0.3300 BREAK CASE TENF vOffset = <<-1.0000, 0.7400, 0.1900>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.2800 BREAK CASE TENF2 vOffset = <<-1.0000, 0.7400, 0.1900>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.2800 BREAK CASE TORERO2 vOffset = <<-1.0000, 0.0000, 0.2200>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.3000 BREAK CASE VIGERO2 vOffset = <<-1.0000, -0.0700, 0.3000>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.4000 BREAK CASE WEEVIL2 vOffset = <<-1.0000, 0.0700, 0.1300>> vDirection = <<1.000000,0.000000,0.000000>> vSide = <<0.000000,-1.000000,0.000000>> fSize = 0.4500 BREAK CASE DRAUGUR vOffset = <<-1.0000, 0.5000, 0.4800>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3500 BREAK CASE RUINER4 vOffset = <<-1.0000, 0.5000, 0.1820>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.2800 BREAK CASE SENTINEL4 vOffset = <<-1.0000, 0.1470, 0.2390>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.4000 BREAK CASE SM722 vOffset = <<-1.0000, -0.4000, 0.1800>> vDirection = <<1.0000, 0.0000, 0.0000>> vSide = <<0.0000, -1.0000, 0.0000>> fSize = 0.3500 BREAK CASE OMNISEGT vOffset = <<0.0000, 1.4620, 1.0000>> vDirection = <<0.0000, 0.0000, -1.0000>> vSide = <<-1.0000, 0.0000, 0.0000>> fSize = 0.2900 BREAK #ENDIF ENDSWITCH #ENDIF // *** NOTE: if you don't see the crew emblem using rag, try smaller x vOffset to bring the logo closer to camera RETURN TRUE ENDFUNC PROC RESET_VEHICLE_EMBLEM_POSITIONING_STRUCT() g_VehEmblemPosStruct.iBoneIndex = 0 g_VehEmblemPosStruct.vOffset = <<0,0,0>> g_VehEmblemPosStruct.vDirection = <<0,0,0>> g_VehEmblemPosStruct.vSide = <<0,0,0>> g_VehEmblemPosStruct.fSize = 0 g_VehEmblemPosStruct.fSuspensionZOffset = 0 g_VehEmblemPosStruct.bIsBonnetOnly= FALSE g_VehEmblemPosStruct.badgeAlpha = 0 g_VehEmblemPosStruct.vOffsetFlip = <<0,0,0>> g_VehEmblemPosStruct.vDirectionFlip = <<0,0,0>> g_VehEmblemPosStruct.vSideFlip = <<0,0,0>> g_VehEmblemPosStruct.RequestState1 = CERS_NOT_ACTIVE g_VehEmblemPosStruct.RequestState2 = CERS_NOT_ACTIVE ENDPROC FUNC BOOL ADD_VEHICLE_EMBLEM(VEHICLE_INDEX &vehID, PLAYER_INDEX PlayerID, INT iVehicleBoneIndex, VECTOR vOffset, VECTOR vDir, VECTOR vSide, FLOAT fSize, INT iBadgeIndex=0, INT iBadgeAlpha=200 ) // TEXT_LABEL_63 strTextureDict // strTextureDict = GET_CUSTOM_CREW_LOGO_TXD_NAME_FOR_PLAYER(PlayerID) // // TEXT_LABEL_63 strTextureName // strTextureName = GET_CUSTOM_CREW_LOGO_TXD_TEXTURE_FOR_PLAYER(PlayerID) // PRINTLN("ADD_VEHICLE_EMBLEM - strTextureDict = ", strTextureDict, ", strTextureName = ", strTextureName) // // IF NOT IS_STRING_NULL_OR_EMPTY(strTextureDict) // AND NOT IS_STRING_NULL_OR_EMPTY(strTextureName) // REQUEST_STREAMED_TEXTURE_DICT(strTextureDict) // IF HAS_STREAMED_TEXTURE_DICT_LOADED(strTextureDict) // RETURN ADD_VEHICLE_CREW_EMBLEM_USING_TEXTURE(vehID, GET_PLAYER_PED(PlayerID), strTextureDict, strTextureName, iVehicleBoneIndex, vOffset, vDir, vSide, fSize, iBadgeIndex, iBadgeAlpha) // ELSE // PRINTLN("ADD_VEHICLE_EMBLEM - loading streamed texture. strTextureDict = ", strTextureDict, ", strTextureName = ", strTextureName) // ENDIF // ENDIF RETURN ADD_VEHICLE_CREW_EMBLEM(vehID, GET_PLAYER_PED(PlayerID), iVehicleBoneIndex, vOffset, vDir, vSide, fSize, iBadgeIndex, iBadgeAlpha) ENDFUNC FUNC BOOL ADD_VEHICLE_CREW_EMBLEM_USING_SCRIPT_POSITION(VEHICLE_INDEX &vehID, PLAYER_INDEX PlayerID) RESET_VEHICLE_EMBLEM_POSITIONING_STRUCT() // is skyswoop active? if so use the suspension offset - see the hell that was bug 1856460 IF (g_TransitionData.SwoopStage != SKYSWOOP_NONE) OR GET_VEHICLE_IS_DUMMY(vehID) PRINTLN("ADD_VEHICLE_CREW_EMBLEM_USING_SCRIPT_POSITION - sky swoop is active. ") g_VehEmblemPosStruct.fSuspensionZOffset = GET_FAKE_SUSPENSION_LOWERING_AMOUNT(vehID) IF (g_VehEmblemPosStruct.fSuspensionZOffset < 0.0) g_VehEmblemPosStruct.fSuspensionZOffset = 0.0 ENDIF ENDIF PRINTLN("ADD_VEHICLE_CREW_EMBLEM_USING_SCRIPT_POSITION - fSuspensionZOffset = ", g_VehEmblemPosStruct.fSuspensionZOffset) GET_CREW_EMBLEM_POSITION_FOR_VEHICLE(vehID, g_VehEmblemPosStruct.iBoneIndex, g_VehEmblemPosStruct.vOffset, g_VehEmblemPosStruct.vDirection, g_VehEmblemPosStruct.vSide, g_VehEmblemPosStruct.fSize) g_VehEmblemPosStruct.vOffset.z -= g_VehEmblemPosStruct.fSuspensionZOffset IF (g_VehEmblemPosStruct.vDirection.z < 0.0) g_VehEmblemPosStruct.bIsBonnetOnly = TRUE PRINTLN("ADD_VEHICLE_CREW_EMBLEM_USING_SCRIPT_POSITION - is bonnet only") ELSE PRINTLN("ADD_VEHICLE_CREW_EMBLEM_USING_SCRIPT_POSITION - is door") ENDIF g_VehEmblemPosStruct.badgeAlpha = 200 IF GET_ENTITY_MODEL(vehID) = WINDSOR OR GET_ENTITY_MODEL(vehID) = COMET4 g_VehEmblemPosStruct.badgeAlpha = 255 ENDIF IF (g_VehEmblemPosStruct.bIsBonnetOnly) IF ADD_VEHICLE_EMBLEM(vehID, PlayerID, g_VehEmblemPosStruct.iBoneIndex, g_VehEmblemPosStruct.vOffset, g_VehEmblemPosStruct.vDirection, g_VehEmblemPosStruct.vSide, g_VehEmblemPosStruct.fSize, DEFAULT, g_VehEmblemPosStruct.badgeAlpha) IF NETWORK_IS_GAME_IN_PROGRESS() g_CrewDecalRequestTime = GET_NETWORK_TIME() ELSE g_CrewDecalRequestTime = INT_TO_NATIVE(TIME_DATATYPE,GET_GAME_TIMER()) ENDIF RETURN(TRUE) ENDIF ELSE g_VehEmblemPosStruct.vOffsetFlip = g_VehEmblemPosStruct.vOffset g_VehEmblemPosStruct.vOffsetFlip.x *= -1.0 g_VehEmblemPosStruct.vDirectionFlip = g_VehEmblemPosStruct.vDirection g_VehEmblemPosStruct.vDirectionFlip.x *= -1.0 g_VehEmblemPosStruct.vSideFlip = g_VehEmblemPosStruct.vSide g_VehEmblemPosStruct.vSideFlip.y *= -1.0 g_VehEmblemPosStruct.vSideFlip.z *= -1.0 IF NOT DOES_VEHICLE_HAVE_CREW_EMBLEM(vehID, 0) g_VehEmblemPosStruct.RequestState1 = GET_VEHICLE_CREW_EMBLEM_REQUEST_STATE(vehID, 0) ELSE g_VehEmblemPosStruct.RequestState1 = CERS_SUCCEEDED PRINTLN("ADD_VEHICLE_CREW_EMBLEM_USING_SCRIPT_POSITION - already has emblem 1") ENDIF g_VehEmblemPosStruct.RequestState2 = GET_VEHICLE_CREW_EMBLEM_REQUEST_STATE(vehID, 1) IF NOT DOES_VEHICLE_HAVE_CREW_EMBLEM(vehID, 1) g_VehEmblemPosStruct.RequestState2 = GET_VEHICLE_CREW_EMBLEM_REQUEST_STATE(vehID, 1) ELSE g_VehEmblemPosStruct.RequestState2 = CERS_SUCCEEDED PRINTLN("ADD_VEHICLE_CREW_EMBLEM_USING_SCRIPT_POSITION - already has emblem 2") ENDIF PRINTLN("ADD_VEHICLE_CREW_EMBLEM_USING_SCRIPT_POSITION - RequestState1 ", g_VehEmblemPosStruct.RequestState1, ", RequestState2 ", g_VehEmblemPosStruct.RequestState2) IF (((g_VehEmblemPosStruct.RequestState1 = CERS_NOT_ACTIVE) AND ADD_VEHICLE_EMBLEM(vehID, PlayerID, g_VehEmblemPosStruct.iBoneIndex, g_VehEmblemPosStruct.vOffset, g_VehEmblemPosStruct.vDirection, g_VehEmblemPosStruct.vSide, g_VehEmblemPosStruct.fSize, 0, g_VehEmblemPosStruct.badgeAlpha)) OR (g_VehEmblemPosStruct.RequestState1 != CERS_NOT_ACTIVE)) AND (((g_VehEmblemPosStruct.RequestState2 = CERS_NOT_ACTIVE) AND ADD_VEHICLE_EMBLEM(vehID, PlayerID, g_VehEmblemPosStruct.iBoneIndex, g_VehEmblemPosStruct.vOffsetFlip, g_VehEmblemPosStruct.vDirectionFlip, g_VehEmblemPosStruct.vSideFlip, g_VehEmblemPosStruct.fSize, 1, g_VehEmblemPosStruct.badgeAlpha)) OR (g_VehEmblemPosStruct.RequestState2 != CERS_NOT_ACTIVE)) IF NETWORK_IS_GAME_IN_PROGRESS() g_CrewDecalRequestTime = GET_NETWORK_TIME() ELSE g_CrewDecalRequestTime = INT_TO_NATIVE(TIME_DATATYPE,GET_GAME_TIMER()) ENDIF RETURN(TRUE) ENDIF ENDIF RETURN(FALSE) ENDFUNC FUNC BOOL FORCE_ENVEFF_FOR_VEHICLE(MODEL_NAMES eModel, FLOAT &fRetEnvEffScale) fRetEnvEffScale = -1.0 SWITCH eModel CASE DUNE5 fRetEnvEffScale = 1.0 BREAK CASE BOXVILLE5 fRetEnvEffScale = 1.0 BREAK CASE WASTELANDER fRetEnvEffScale = 1.0 BREAK CASE ALPHAZ1 fRetEnvEffScale = 0.2 BREAK CASE BOMBUSHKA fRetEnvEffScale = 0.15 BREAK CASE HOWARD fRetEnvEffScale = 0.3 BREAK CASE HUNTER fRetEnvEffScale = 0.5 BREAK CASE MICROLIGHT fRetEnvEffScale = 0.3 BREAK CASE MOGUL fRetEnvEffScale = 0.4 BREAK CASE MOLOTOK fRetEnvEffScale = 0.3 BREAK CASE NOKOTA fRetEnvEffScale = 0.4 BREAK CASE PYRO fRetEnvEffScale = 0.4 BREAK CASE ROGUE fRetEnvEffScale = 0.4 BREAK CASE SEABREEZE fRetEnvEffScale = 0.3 BREAK CASE STARLING fRetEnvEffScale = 0.5 BREAK CASE TULA fRetEnvEffScale = 0.15 BREAK CASE KHANJALI fRetEnvEffScale = 0.6 BREAK CASE BRUISER fRetEnvEffScale = 1.0 BREAK CASE BRUISER2 fRetEnvEffScale = 1.0 BREAK CASE BRUISER3 fRetEnvEffScale = 1.0 BREAK CASE BRUTUS fRetEnvEffScale = 1.0 BREAK CASE BRUTUS2 fRetEnvEffScale = 1.0 BREAK CASE BRUTUS3 fRetEnvEffScale = 1.0 BREAK CASE CERBERUS fRetEnvEffScale = 1.0 BREAK CASE CERBERUS2 fRetEnvEffScale = 1.0 BREAK CASE CERBERUS3 fRetEnvEffScale = 1.0 BREAK CASE DEATHBIKE fRetEnvEffScale = 1.0 BREAK CASE DEATHBIKE2 fRetEnvEffScale = 1.0 BREAK CASE DEATHBIKE3 fRetEnvEffScale = 1.0 BREAK CASE DOMINATOR4 fRetEnvEffScale = 1.0 BREAK CASE DOMINATOR5 fRetEnvEffScale = 1.0 BREAK CASE DOMINATOR6 fRetEnvEffScale = 1.0 BREAK CASE IMPALER2 fRetEnvEffScale = 1.0 BREAK CASE IMPALER3 fRetEnvEffScale = 1.0 BREAK CASE IMPALER4 fRetEnvEffScale = 1.0 BREAK CASE IMPERATOR fRetEnvEffScale = 1.0 BREAK CASE IMPERATOR2 fRetEnvEffScale = 1.0 BREAK CASE IMPERATOR3 fRetEnvEffScale = 1.0 BREAK CASE ISSI4 fRetEnvEffScale = 1.0 BREAK CASE ISSI5 fRetEnvEffScale = 1.0 BREAK CASE ISSI6 fRetEnvEffScale = 1.0 BREAK CASE MONSTER3 fRetEnvEffScale = 1.0 BREAK CASE MONSTER4 fRetEnvEffScale = 1.0 BREAK CASE MONSTER5 fRetEnvEffScale = 1.0 BREAK CASE SCARAB fRetEnvEffScale = 1.0 BREAK CASE SCARAB2 fRetEnvEffScale = 1.0 BREAK CASE SCARAB3 fRetEnvEffScale = 1.0 BREAK CASE SLAMVAN4 fRetEnvEffScale = 1.0 BREAK CASE SLAMVAN5 fRetEnvEffScale = 1.0 BREAK CASE SLAMVAN6 fRetEnvEffScale = 1.0 BREAK CASE ZR380 fRetEnvEffScale = 1.0 BREAK CASE ZR3802 fRetEnvEffScale = 1.0 BREAK CASE ZR3803 fRetEnvEffScale = 1.0 BREAK ENDSWITCH RETURN (fRetEnvEffScale != -1.0) ENDFUNC FUNC INT GET_VEHICLE_EXTRA_FLAG_FOR_EXTRA_INDEX(INT iVehicleExtraIndex) SWITCH iVehicleExtraIndex CASE 1 RETURN VEHICLE_SETUP_FLAG_EXTRA_0 BREAK CASE 2 RETURN VEHICLE_SETUP_FLAG_EXTRA_1 BREAK CASE 3 RETURN VEHICLE_SETUP_FLAG_EXTRA_2 BREAK CASE 4 RETURN VEHICLE_SETUP_FLAG_EXTRA_3 BREAK CASE 5 RETURN VEHICLE_SETUP_FLAG_EXTRA_4 BREAK CASE 6 RETURN VEHICLE_SETUP_FLAG_EXTRA_5 BREAK CASE 7 RETURN VEHICLE_SETUP_FLAG_EXTRA_6 BREAK CASE 8 RETURN VEHICLE_SETUP_FLAG_EXTRA_7 BREAK CASE 9 RETURN VEHICLE_SETUP_FLAG_EXTRA_8 BREAK CASE 10 RETURN VEHICLE_SETUP_FLAG_EXTRA_9 BREAK CASE 11 RETURN VEHICLE_SETUP_FLAG_EXTRA_10 BREAK CASE 12 RETURN VEHICLE_SETUP_FLAG_EXTRA_11 BREAK ENDSWITCH #IF IS_DEBUG_BUILD PRINTLN("GET_VEHICLE_EXTRA_FLAG_FOR_EXTRA_INDEX - Invalid index supplied - ", iVehicleExtraIndex, ", by script ", GET_THIS_SCRIPT_NAME()) SCRIPT_ASSERT("GET_VEHICLE_EXTRA_FLAG_FOR_EXTRA_INDEX - Invalid index supplied") #ENDIF RETURN VEHICLE_SETUP_FLAG_EXTRA_0 ENDFUNC FUNC BOOL DoseThisVehicleModelHaveTintedWindowsAsDefault(MODEL_NAMES modelName) SWITCH modelName CASE GRANGER CASE VISIONE RETURN TRUE ENDSWITCH RETURN FALSE ENDFUNC /// PURPOSE: Stored all vehicle states such as mods, colour, plates, model, window tints etc. PROC GET_VEHICLE_SETUP(VEHICLE_INDEX tempveh, VEHICLE_SETUP_STRUCT &sVehicleSetup) #IF USE_TU_CHANGES #IF IS_DEBUG_BUILD IF NETWORK_IS_GAME_IN_PROGRESS() IF NOT (g_bGetVehicleSetupMPCalled) // this is used to make sure no one calls the below command in MP. DEBUG_PRINTCALLSTACK() PRINTLN("GET_VEHICLE_SETUP called when in MP, use GET_VEHICLE_SETUP_MP instead.") SCRIPT_ASSERT("GET_VEHICLE_SETUP called when in MP, use GET_VEHICLE_SETUP_MP instead.") ENDIF ENDIF #ENDIF #ENDIF IF IS_VEHICLE_DRIVEABLE(tempveh) // make sure the vehicle structure is wiped first #IF NOT USE_TU_CHANGES VEHICLE_SETUP_STRUCT blankStruct sVehicleSetup = blankStruct #ENDIF #IF USE_TU_CHANGES RESET_VEHICLE_SETUP_STRUCT(sVehicleSetup) //CDM: to prevent stack overflow. #ENDIF sVehicleSetup.eModel = GET_ENTITY_MODEL(tempveh) sVehicleSetup.tlPlateText = GET_VEHICLE_NUMBER_PLATE_TEXT(tempveh) sVehicleSetup.iPlateIndex = GET_VEHICLE_NUMBER_PLATE_TEXT_INDEX(tempveh) GET_VEHICLE_COLOURS(tempveh, sVehicleSetup.iColour1, sVehicleSetup.iColour2) GET_VEHICLE_EXTRA_COLOURS(tempveh, sVehicleSetup.iColourExtra1, sVehicleSetup.iColourExtra2) GET_VEHICLE_TYRE_SMOKE_COLOR(tempveh, sVehicleSetup.iTyreR, sVehicleSetup.iTyreG, sVehicleSetup.iTyreB) sVehicleSetup.iWindowTintColour = GET_VEHICLE_WINDOW_TINT(tempveh) sVehicleSetup.iLivery = GET_VEHICLE_LIVERY(tempveh) sVehicleSetup.iWheelType = ENUM_TO_INT(GET_VEHICLE_WHEEL_TYPE(tempveh)) sVehicleSetup.eLockState = GET_VEHICLE_DOOR_LOCK_STATUS(tempveh) GET_VEHICLE_CUSTOM_SECONDARY_COLOUR(tempveh, sVehicleSetup.iCustomR, sVehicleSetup.iCustomG, sVehicleSetup.iCustomB) GET_VEHICLE_NEON_COLOUR(tempveh, sVehicleSetup.iNeonR, sVehicleSetup.iNeonG, sVehicleSetup.iNeonB) #IF IS_DEBUG_BUILD PRINTLN("GET_VEHICLE_SETUP: sVehicleSetup.iColour1 = ",sVehicleSetup.iColour1) PRINTLN("GET_VEHICLE_SETUP: sVehicleSetup.iColour2 = ",sVehicleSetup.iColour2) PRINTLN("GET_VEHICLE_SETUP: sVehicleSetup.iColourExtra1 = ",sVehicleSetup.iColourExtra1) PRINTLN("GET_VEHICLE_SETUP: sVehicleSetup.iColourExtra2 = ",sVehicleSetup.iColourExtra2) PRINTLN("GET_VEHICLE_SETUP: sVehicleSetup.iNeonR = ",sVehicleSetup.iNeonR) PRINTLN("GET_VEHICLE_SETUP: sVehicleSetup.iNeonG = ",sVehicleSetup.iNeonG) PRINTLN("GET_VEHICLE_SETUP: sVehicleSetup.iNeonB = ",sVehicleSetup.iNeonB) PRINTLN("GET_VEHICLE_SETUP: sVehicleSetup.iLivery = ",sVehicleSetup.iLivery) PRINTLN("GET_VEHICLE_SETUP: sVehicleSetup.iWindowTintColour = ",sVehicleSetup.iWindowTintColour) #ENDIF IF GET_VEHICLE_NEON_ENABLED(tempveh, NEON_FRONT) SET_BIT(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_NEON_FRONT) ENDIF IF GET_VEHICLE_NEON_ENABLED(tempveh, NEON_BACK) SET_BIT(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_NEON_BACK) ENDIF IF GET_VEHICLE_NEON_ENABLED(tempveh, NEON_LEFT) SET_BIT(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_NEON_LEFT) ENDIF IF GET_VEHICLE_NEON_ENABLED(tempveh, NEON_RIGHT) SET_BIT(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_NEON_RIGHT) ENDIF IF sVehicleSetup.iWindowTintColour = -1 AND NOT DoseThisVehicleModelHaveTintedWindowsAsDefault(sVehicleSetup.eModel) sVehicleSetup.iWindowTintColour = 0 PRINTLN("GET_VEHICLE_SETUP: setting iWindowTintColour to 0") ENDIF IF IS_VEHICLE_A_CONVERTIBLE(tempveh) sVehicleSetup.eRoofState = GET_CONVERTIBLE_ROOF_STATE(tempveh) ENDIF IF IS_THIS_MODEL_A_PLANE(sVehicleSetup.eModel) IF IS_PLANE_LANDING_GEAR_INTACT(tempveh) SWITCH GET_LANDING_GEAR_STATE(tempveh) CASE LGS_DEPLOYING CASE LGS_LOCKED_DOWN CLEAR_BIT(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_LANDING_GEAR_BROKEN) SET_BIT(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_LANDING_GEAR_OUT) BREAK CASE LGS_LOCKED_UP CASE LGS_RETRACTING CLEAR_BIT(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_LANDING_GEAR_BROKEN) CLEAR_BIT(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_LANDING_GEAR_OUT) BREAK CASE LGS_BROKEN SET_BIT(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_LANDING_GEAR_BROKEN) BREAK ENDSWITCH ELSE SET_BIT(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_LANDING_GEAR_BROKEN) ENDIF ENDIF IF NOT GET_VEHICLE_TYRES_CAN_BURST(tempveh) SET_BIT(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_BULLETPROOF_TYRES) ENDIF IF IS_VEHICLE_STOLEN(tempveh) SET_BIT(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_STOLEN) ENDIF #IF USE_TU_CHANGES IF GET_IS_VEHICLE_PRIMARY_COLOUR_CUSTOM(tempveh) SET_BIT(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_CUSTOM_PRIMARY) GET_VEHICLE_CUSTOM_PRIMARY_COLOUR(tempveh, sVehicleSetup.iCustomR, sVehicleSetup.iCustomG, sVehicleSetup.iCustomB) PRINTLN("GET_VEHICLE_SETUP: GET_IS_VEHICLE_PRIMARY_COLOUR_CUSTOM = TRUE") ELSE PRINTLN("GET_VEHICLE_SETUP: GET_IS_VEHICLE_PRIMARY_COLOUR_CUSTOM = FALSE") ENDIF #ENDIF IF GET_IS_VEHICLE_SECONDARY_COLOUR_CUSTOM(tempveh) SET_BIT(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_CUSTOM_SECONDARY) PRINTLN("GET_VEHICLE_SETUP: GET_IS_VEHICLE_SECONDARY_COLOUR_CUSTOM = TRUE") #IF IS_DEBUG_BUILD ELSE PRINTLN("GET_VEHICLE_SETUP: GET_IS_VEHICLE_SECONDARY_COLOUR_CUSTOM = FALSE") #ENDIF // IS_DEBUG_BUILD ENDIF GET_VEHICLE_MOD_DATA(tempveh, sVehicleSetup.iModIndex, sVehicleSetup.iModVariation) INT i FOR i=0 TO 11 IF IS_VEHICLE_EXTRA_TURNED_ON(tempveh, i+1) // needs to be i+1 as the extras are numbered 1 to 9 SET_BIT(sVehicleSetup.iFlags, GET_VEHICLE_EXTRA_FLAG_FOR_EXTRA_INDEX(i+1)) #IF USE_TU_CHANGES #IF IS_DEBUG_BUILD PRINTLN("GET_VEHICLE_SETUP: extra is on ",i+1) #ENDIF #ENDIF ENDIF ENDFOR #IF USE_TU_CHANGES #IF IS_DEBUG_BUILD PRINTLN("GET_VEHICLE_SETUP: sVehicleSetup.iFlags = ",sVehicleSetup.iFlags) #ENDIF #ENDIF #IF USE_TU_CHANGES IF DOES_VEHICLE_HAVE_CREW_EMBLEM(tempveh) SET_BIT(sVehicleSetup.iFlags,VEHICLE_SETUP_FLAG_CREWM_EMBLEM) ELSE CLEAR_BIT(sVehicleSetup.iFlags,VEHICLE_SETUP_FLAG_CREWM_EMBLEM) ENDIF //B* 1774589: Save ignoredByQuicksave flag IF DECOR_EXIST_ON(tempveh,"IgnoredByQuickSave") AND DECOR_GET_BOOL(tempveh,"IgnoredByQuickSave") PRINTLN("GET_VEHICLE_SETUP: Setting save bit for IGNORED_FOR_QUICKSAVE.") SET_BIT(sVehicleSetup.iFlags,VEHICLE_SETUP_FLAG_IGNORED_FOR_QUICKSAVE) ELSE PRINTLN("GET_VEHICLE_SETUP: Clearing save bit for IGNORED_FOR_QUICKSAVE.") CLEAR_BIT(sVehicleSetup.iFlags,VEHICLE_SETUP_FLAG_IGNORED_FOR_QUICKSAVE) ENDIF #ENDIF ENDIF ENDPROC FUNC BOOL SHOULD_BLOCK_CHANGE_VEHICLE_PLATE(VEHICLE_INDEX vehicleId) IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID()) IF !IS_PLAYER_IN_VEH_SEAT(PLAYER_ID(), VS_DRIVER) vehicleId = GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()) ENDIF ENDIF IF NOT DOES_ENTITY_EXIST(vehicleId) RETURN FALSE ENDIF IF IS_ENTITY_DEAD(vehicleId) RETURN FALSE ENDIF IF NOT IS_VEHICLE_DRIVEABLE(vehicleId) RETURN FALSE ENDIF IF GB_GET_GANGOPS_VARIATION_PLAYER_IS_ON (PLAYER_ID()) = GOV_CAR_COLLECTOR #IF IS_DEBUG_BUILD IF GET_FRAME_COUNT() % 60 = 0 PRINTLN("SHOULD_BLOCK_CHANGE_VEHICLE_PLATE - return 1 TRUE") ENDIF #ENDIF IF DOES_ENTITY_EXIST(vehicleId) AND IS_VEHICLE_DRIVEABLE(vehicleId) IF GB_GET_FREEMODE_DELIVERABLE_ID_DECOR(vehicleId) != (-1) #IF IS_DEBUG_BUILD IF GET_FRAME_COUNT() % 60 = 0 PRINTLN("SHOULD_BLOCK_CHANGE_VEHICLE_PLATE - return TRUE") ENDIF #ENDIF RETURN TRUE ENDIF ENDIF ENDIF RETURN FALSE ENDFUNC FUNC BOOL SHOULD_VEHICLE_SETUP_AFFECT_LANDING_GEAR() IF (g_FMMC_STRUCT.iRaceType = FMMC_RACE_TYPE_STUNT //Don't touch the landing gear on transform races OR g_FMMC_STRUCT.iRaceType = FMMC_RACE_TYPE_STUNT_P2P OR g_FMMC_STRUCT.iRaceType = FMMC_RACE_TYPE_TARGET OR g_FMMC_STRUCT.iRaceType = FMMC_RACE_TYPE_TARGET_P2P) AND g_FMMC_STRUCT.iMissionSubType = FMMC_RACE_SUBTYPE_TRANSFORM_RACE RETURN FALSE ENDIF IF IS_GLOBAL_FLAG_BIT_SET(eGLOBALFLAGBITSET_RUNNING_FMC_FRAMEWORK_MISSION) IF GB_IS_PLAYER_CRITICAL_TO_JOB(MPGlobals.sFreemodeCache.PlayerIndex) OR IS_PLAYER_CRITICAL_TO_ANY_RANDOM_EVENT(MPGlobals.sFreemodeCache.PlayerIndex) RETURN FALSE ENDIF ENDIF RETURN TRUE ENDFUNC /// PURPOSE: Clears any states that the player has not paid for PROC SET_VEHICLE_SETUP(VEHICLE_INDEX tempveh, VEHICLE_SETUP_STRUCT &sVehicleSetup, BOOL bSetLockStatus=FALSE, BOOL bSetMods=TRUE) #IF USE_TU_CHANGES #IF IS_DEBUG_BUILD IF NETWORK_IS_GAME_IN_PROGRESS() IF NOT (g_bSetVehicleSetupMPCalled) // this is used to make sure no one calls the below command in MP. DEBUG_PRINTCALLSTACK() PRINTLN("SET_VEHICLE_SETUP called when in MP, use SET_VEHICLE_SETUP_MP instead.") SCRIPT_ASSERT("SET_VEHICLE_SETUP called when in MP, use SET_VEHICLE_SETUP_MP instead.") ENDIF ENDIF #ENDIF #ENDIF IF IS_VEHICLE_DRIVEABLE(tempveh) IF sVehicleSetup.eModel != DUMMY_MODEL_FOR_SCRIPT NET_PRINT("SET_VEHICLE_SETUP VehicleSetup.eModel = ") NET_PRINT_INT(ENUM_TO_INT(sVehicleSetup.eModel)) NET_PRINT(", name = ") NET_PRINT(GET_MODEL_NAME_FOR_DEBUG(sVehicleSetup.eModel)) NET_NL() ENDIF IF NOT SHOULD_BLOCK_CHANGE_VEHICLE_PLATE(tempveh) IF GET_HASH_KEY(sVehicleSetup.tlPlateText) != 0 SET_VEHICLE_NUMBER_PLATE_TEXT(tempveh, sVehicleSetup.tlPlateText) ENDIF IF sVehicleSetup.iPlateIndex >= 0 AND sVehicleSetup.iPlateIndex < GET_NUMBER_OF_VEHICLE_NUMBER_PLATES() SET_VEHICLE_NUMBER_PLATE_TEXT_INDEX(tempveh, sVehicleSetup.iPlateIndex) ENDIF ENDIF // if this is a sovereign make sure the colours havn't been changed. fix for 2301398 IF (sVehicleSetup.eModel = SOVEREIGN) sVehicleSetup.iColour1 = 111 sVehicleSetup.iColour2 = 111 sVehicleSetup.iColourExtra1 = 111 PRINTLN("SET_VEHICLE_SETUP: SOVEREIGN - using fixed colours") // if this is a casco make sure the roof is present. fix for 2379889 ELIF (sVehicleSetup.eModel = CASCO) INT i = 1 IF (IS_BIT_SET(sVehicleSetup.iFlags, GET_VEHICLE_EXTRA_FLAG_FOR_EXTRA_INDEX(i+1))) PRINTLN("SET_VEHICLE_SETUP: CASCO - roof already present") ELSE PRINTLN("SET_VEHICLE_SETUP: CASCO - forcing roof present") SET_BIT(sVehicleSetup.iFlags, GET_VEHICLE_EXTRA_FLAG_FOR_EXTRA_INDEX(i+1)) ENDIF // if this is a sandking and sandking2 make sure the sidestep is present. fix for 2402309 ELIF (sVehicleSetup.eModel = SANDKING) OR (sVehicleSetup.eModel = SANDKING2) INT i = 1 IF (IS_BIT_SET(sVehicleSetup.iFlags, GET_VEHICLE_EXTRA_FLAG_FOR_EXTRA_INDEX(i+1))) PRINTLN("SET_VEHICLE_SETUP: ", PICK_STRING(sVehicleSetup.eModel = SANDKING, "SANDKING", "SANDKING2"), " - sidestep already present") ELSE PRINTLN("SET_VEHICLE_SETUP: ", PICK_STRING(sVehicleSetup.eModel = SANDKING, "SANDKING", "SANDKING2"), " - forcing sidestep present") SET_BIT(sVehicleSetup.iFlags, GET_VEHICLE_EXTRA_FLAG_FOR_EXTRA_INDEX(i+1)) ENDIF ELIF sVehicleSetup.eModel = FORMULA OR sVehicleSetup.eModel = FORMULA2 INT i FOR i = 1 TO 9 IF (IS_BIT_SET(sVehicleSetup.iFlags, GET_VEHICLE_EXTRA_FLAG_FOR_EXTRA_INDEX(i))) PRINTLN("SET_VEHICLE_SETUP: FORMULA - extra", i, " already present") ELSE PRINTLN("SET_VEHICLE_SETUP: FORMULA - extra", i, " forcing present") SET_BIT(sVehicleSetup.iFlags, GET_VEHICLE_EXTRA_FLAG_FOR_EXTRA_INDEX(i)) ENDIF ENDFOR ELIF sVehicleSetup.eModel = OPENWHEEL1 INT i FOR i = 1 TO 6 IF (IS_BIT_SET(sVehicleSetup.iFlags, GET_VEHICLE_EXTRA_FLAG_FOR_EXTRA_INDEX(i))) PRINTLN("SET_VEHICLE_SETUP: OPENWHEEL1 - extra", i, " already present") ELSE PRINTLN("SET_VEHICLE_SETUP: OPENWHEEL1 - extra", i, " forcing present") SET_BIT(sVehicleSetup.iFlags, GET_VEHICLE_EXTRA_FLAG_FOR_EXTRA_INDEX(i)) ENDIF ENDFOR ELIF sVehicleSetup.eModel = OPENWHEEL2 INT i FOR i = 1 TO 11 IF i != 9 AND i != 10 IF (IS_BIT_SET(sVehicleSetup.iFlags, GET_VEHICLE_EXTRA_FLAG_FOR_EXTRA_INDEX(i))) PRINTLN("SET_VEHICLE_SETUP: OPENWHEEL2 - extra", i, " already present") ELSE PRINTLN("SET_VEHICLE_SETUP: OPENWHEEL2 - extra", i, " forcing present") SET_BIT(sVehicleSetup.iFlags, GET_VEHICLE_EXTRA_FLAG_FOR_EXTRA_INDEX(i)) ENDIF ENDIF ENDFOR #IF FEATURE_COPS_N_CROOKS ELIF sVehicleSetup.eModel = SURFER3 INT i FOR i = 1 TO 2 IF (IS_BIT_SET(sVehicleSetup.iFlags, GET_VEHICLE_EXTRA_FLAG_FOR_EXTRA_INDEX(i))) PRINTLN("SET_VEHICLE_SETUP: SURFER3 - extra", i, " already present") ELSE PRINTLN("SET_VEHICLE_SETUP: SURFER3 - extra", i, " forcing present") SET_BIT(sVehicleSetup.iFlags, GET_VEHICLE_EXTRA_FLAG_FOR_EXTRA_INDEX(i)) ENDIF ENDFOR #ENDIF #IF FEATURE_HEIST_ISLAND ELIF sVehicleSetup.eModel = DINGHY5 IF (IS_BIT_SET(sVehicleSetup.iFlags, GET_VEHICLE_EXTRA_FLAG_FOR_EXTRA_INDEX(4))) PRINTLN("SET_VEHICLE_SETUP: DINGHY5 - extra3 already present") ELSE PRINTLN("SET_VEHICLE_SETUP: DINGHY5 - forcing extra 3 present") SET_BIT(sVehicleSetup.iFlags, GET_VEHICLE_EXTRA_FLAG_FOR_EXTRA_INDEX(4)) ENDIF #ENDIF ELIF sVehicleSetup.eModel = COQUETTE4 IF GET_VEHICLE_MOD(tempveh, MOD_ROOF) != 0 SET_BIT(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) ENDIF ELIF sVehicleSetup.eModel = YOSEMITE2 SET_BIT(sVehicleSetup.iFlags, GET_VEHICLE_EXTRA_FLAG_FOR_EXTRA_INDEX(1)) PRINTLN("SET_VEHICLE_SETUP: YOSEMITE2 - forcing extra 1") ELIF sVehicleSetup.eModel = HOTKNIFE INT i FOR i = 1 TO 2 IF (IS_BIT_SET(sVehicleSetup.iFlags, GET_VEHICLE_EXTRA_FLAG_FOR_EXTRA_INDEX(i))) PRINTLN("SET_VEHICLE_SETUP: HOTKNIFE - extra", i, " already present") ELSE PRINTLN("SET_VEHICLE_SETUP: HOTKNIFE - extra", i, " forcing present") SET_BIT(sVehicleSetup.iFlags, GET_VEHICLE_EXTRA_FLAG_FOR_EXTRA_INDEX(i)) ENDIF ENDFOR ENDIF // url:bugstar:3491749 - Nightshark - damage decals to windows appear over the top of the protector mods IF (sVehicleSetup.eModel = NIGHTSHARK) SET_DONT_PROCESS_VEHICLE_GLASS(tempveh, FALSE) IF GET_VEHICLE_MOD(tempveh, MOD_CHASSIS) <> -1 SET_DONT_PROCESS_VEHICLE_GLASS(tempveh, TRUE) PRINTLN("SET_VEHICLE_SETUP: SET_DONT_PROCESS_VEHICLE_GLASS ") ENDIF ENDIF #IF USE_TU_CHANGES IF (IS_BIT_SET(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_CUSTOM_PRIMARY)) SET_VEHICLE_CUSTOM_PRIMARY_COLOUR(tempveh, sVehicleSetup.iCustomR, sVehicleSetup.iCustomG, sVehicleSetup.iCustomB) PRINTLN("SET_VEHICLE_SETUP: sVehicleSetup.iCustomR = ", sVehicleSetup.iCustomR, ", sVehicleSetup.iCustomG = ", sVehicleSetup.iCustomG, ", sVehicleSetup.iCustomB = ", sVehicleSetup.iCustomB) ELSE CLEAR_VEHICLE_CUSTOM_PRIMARY_COLOUR(tempveh) PRINTLN("SET_VEHICLE_SETUP: CLEAR_VEHICLE_CUSTOM_PRIMARY_COLOUR called") ENDIF #ENDIF IF (IS_BIT_SET(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_CUSTOM_SECONDARY)) SET_VEHICLE_CUSTOM_SECONDARY_COLOUR(tempveh, sVehicleSetup.iCustomR, sVehicleSetup.iCustomG, sVehicleSetup.iCustomB) PRINTLN("SET_VEHICLE_SETUP: sVehicleSetup.iCustomR = ", sVehicleSetup.iCustomR, ", sVehicleSetup.iCustomG = ", sVehicleSetup.iCustomG, ", sVehicleSetup.iCustomB = ", sVehicleSetup.iCustomB) ELSE CLEAR_VEHICLE_CUSTOM_SECONDARY_COLOUR(tempveh) PRINTLN("SET_VEHICLE_SETUP: CLEAR_VEHICLE_CUSTOM_SECONDARY_COLOUR called") ENDIF //RE: Added -1 check to allow colour skip IF sVehicleSetup.iColour1 != (-1) AND sVehicleSetup.iColour2 != (-1) IF IS_VEHICLE_COLOUR_INDEX_LOCKED(sVehicleSetup.iColour1) OR IS_VEHICLE_COLOUR_INDEX_LOCKED(sVehicleSetup.iColour2) PRINTLN("SET_VEHICLE_SETUP: Invalid vehicle colour1: ", sVehicleSetup.iColour1, " colour2: ", sVehicleSetup.iColour2) ELSE SET_VEHICLE_COLOURS(tempveh, sVehicleSetup.iColour1, sVehicleSetup.iColour2) ENDIF ENDIF //CDM: Added to check extra colour that is being set #IF IS_DEBUG_BUILD PRINTLN("SET_VEHICLE_SETUP: sVehicleSetup.iColour1 = ",sVehicleSetup.iColour1) PRINTLN("SET_VEHICLE_SETUP: sVehicleSetup.iColour2 = ",sVehicleSetup.iColour2) PRINTLN("SET_VEHICLE_SETUP: sVehicleSetup.iColourExtra1 = ",sVehicleSetup.iColourExtra1) PRINTLN("SET_VEHICLE_SETUP: sVehicleSetup.iColourExtra2 = ",sVehicleSetup.iColourExtra2) #ENDIF IF sVehicleSetup.iColourExtra1 < 0 sVehicleSetup.iColourExtra1 = 0 ENDIF IF sVehicleSetup.iColourExtra2 < 0 sVehicleSetup.iColourExtra2 = 0 ENDIF SET_VEHICLE_EXTRA_COLOURS(tempveh, sVehicleSetup.iColourExtra1, sVehicleSetup.iColourExtra2) //If the smoke is set to use the Independence smoke then set to 0, 0, 0 #IF USE_TU_CHANGES IF (IS_BIT_SET(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_USE_IND_SMOKE) OR HAS_VEHICLE_GOT_INDI_SMOKE_FLAG(tempveh) OR (sVehicleSetup.iTyreR = 0 AND sVehicleSetup.iTyreG = 0 AND sVehicleSetup.iTyreB = 0 AND sVehicleSetup.iModIndex[MOD_TOGGLE_TYRE_SMOKE] > 0)) AND IS_MP_INDEPENDENCE_PACK_PRESENT() sVehicleSetup.iTyreR = 0 sVehicleSetup.iTyreG = 0 sVehicleSetup.iTyreB = 0 PRINTLN("[INDPTFX] - SET_VEHICLE_SETUP - setting RGB to 0, 0, 0") // Don't allow 0,0,0 to be set on tyre smoke as this causes issues with the tyres - so default to white ELSE #ENDIF IF sVehicleSetup.iTyreR = 0 AND sVehicleSetup.iTyreG = 0 AND sVehicleSetup.iTyreB = 0 sVehicleSetup.iTyreR = 255 sVehicleSetup.iTyreG = 255 sVehicleSetup.iTyreB = 255 ENDIF #IF USE_TU_CHANGES PRINTLN("[INDPTFX] - SET_VEHICLE_SETUP - setting RGB to 255, 255, 255") ENDIF #ENDIF SET_VEHICLE_TYRE_SMOKE_COLOR(tempveh, sVehicleSetup.iTyreR, sVehicleSetup.iTyreG, sVehicleSetup.iTyreB) IF sVehicleSetup.iWindowTintColour = -1 AND NOT DoseThisVehicleModelHaveTintedWindowsAsDefault(sVehicleSetup.eModel) SET_VEHICLE_WINDOW_TINT(tempveh, 0) ELSE SET_VEHICLE_WINDOW_TINT(tempveh, 0) SET_VEHICLE_WINDOW_TINT(tempveh, sVehicleSetup.iWindowTintColour) ENDIF IF IS_BIT_SET(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_BULLETPROOF_TYRES) SET_VEHICLE_TYRES_CAN_BURST(tempveh, FALSE) SET_DRIFT_TYRES(tempveh, FALSE) ENDIF IF (bSetLockStatus) SET_VEHICLE_DOORS_LOCKED(tempveh, sVehicleSetup.eLockState) #IF USE_TU_CHANGES PRINTLN("SET_VEHICLE_SETUP: sVehicleSetup.eLockState = ",ENUM_TO_INT(sVehicleSetup.eLockState)) #ENDIF ENDIF SET_VEHICLE_NEON_COLOUR(tempveh, sVehicleSetup.iNeonR, sVehicleSetup.iNeonG, sVehicleSetup.iNeonB) SET_VEHICLE_NEON_ENABLED(tempveh, NEON_FRONT, IS_BIT_SET(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_NEON_FRONT)) SET_VEHICLE_NEON_ENABLED(tempveh, NEON_BACK, IS_BIT_SET(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_NEON_BACK)) SET_VEHICLE_NEON_ENABLED(tempveh, NEON_LEFT, IS_BIT_SET(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_NEON_LEFT)) SET_VEHICLE_NEON_ENABLED(tempveh, NEON_RIGHT, IS_BIT_SET(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_NEON_RIGHT)) // IF NOT IS_PED_INJURED(PLAYER_PED_ID()) // Have to assume emblems are going to be on the players vehicle. // IF sVehicleSetup.bHasCrewEmblem // IF NOT DOES_VEHICLE_HAVE_CREW_EMBLEM(tempveh) // ar_ADD_VEHICLE_CREW_EMBLEM(tempVeh, PLAYER_PED_ID()) // ENDIF // ELSE // IF DOES_VEHICLE_HAVE_CREW_EMBLEM(tempveh) // REMOVE_VEHICLE_CREW_EMBLEM(tempVeh) // ENDIF // ENDIF // ENDIF SET_VEHICLE_IS_STOLEN(tempveh, (IS_BIT_SET(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_STOLEN))) IF GET_VEHICLE_LIVERY_COUNT(tempveh) > 1 AND sVehicleSetup.iLivery >= 0 #IF IS_DEBUG_BUILD PRINTLN("SET_VEHICLE_SETUP: sVehicleSetup.iLivery = ",sVehicleSetup.iLivery) #ENDIF SET_VEHICLE_LIVERY(tempveh, sVehicleSetup.iLivery) ELSE #IF IS_DEBUG_BUILD PRINTLN("SET_VEHICLE_SETUP: sVehicleSetup.iLivery = ",sVehicleSetup.iLivery, " (not set)") #ENDIF ENDIF IF sVehicleSetup.iWheelType > -1 AND sVehicleSetup.iWheelType < 255 IF NOT IS_THIS_MODEL_A_BICYCLE(GET_ENTITY_MODEL(tempveh)) IF IS_THIS_MODEL_A_BIKE(GET_ENTITY_MODEL(tempveh)) IF (INT_TO_ENUM(MOD_WHEEL_TYPE, sVehicleSetup.iWheelType) = MWT_BIKE) SET_VEHICLE_WHEEL_TYPE_PATCHED(tempveh, INT_TO_ENUM(MOD_WHEEL_TYPE, sVehicleSetup.iWheelType)) ENDIF ELSE SET_VEHICLE_WHEEL_TYPE_PATCHED(tempveh, INT_TO_ENUM(MOD_WHEEL_TYPE, sVehicleSetup.iWheelType)) ENDIF ENDIF ENDIF IF IS_VEHICLE_A_CONVERTIBLE(tempveh) IF sVehicleSetup.eRoofState = CRS_RAISED OR sVehicleSetup.eRoofState = CRS_RAISING OR sVehicleSetup.eRoofState = CRS_ROOF_STUCK_RAISED RAISE_CONVERTIBLE_ROOF(tempveh, TRUE) ELSE LOWER_CONVERTIBLE_ROOF(tempveh, TRUE) ENDIF ENDIF IF bSetMods SET_VEHICLE_MOD_DATA(tempveh, sVehicleSetup.iModIndex, sVehicleSetup.iModVariation) ENDIF #IF USE_TU_CHANGES #IF IS_DEBUG_BUILD PRINTLN("SET_VEHICLE_SETUP: sVehicleSetup.iFlags = ",sVehicleSetup.iFlags) #ENDIF #ENDIF // Dont set vehicle extras on helicopters IF NOT IS_THIS_MODEL_A_HELI(sVehicleSetup.eModel) AND NOT IS_THIS_MODEL_A_BOAT(sVehicleSetup.eModel) INT i FOR i=0 TO 11 IF (IS_BIT_SET(sVehicleSetup.iFlags, GET_VEHICLE_EXTRA_FLAG_FOR_EXTRA_INDEX(i+1))) // needs to be opposite of the stored value, as the command is to turn them off, rather than on IF NOT IS_VEHICLE_EXTRA_TURNED_ON(tempveh, i+1) SET_VEHICLE_EXTRA(tempveh, i+1, FALSE)// needs to be i+1 as the extras are numbered 1 to 9 #IF USE_TU_CHANGES #IF IS_DEBUG_BUILD PRINTLN("SET_VEHICLE_SETUP: setting on ",i+1) ELSE PRINTLN("SET_VEHICLE_SETUP: already on ",i+1) #ENDIF #ENDIF ENDIF ELSE IF IS_VEHICLE_EXTRA_TURNED_ON(tempveh, i+1) SET_VEHICLE_EXTRA(tempveh, i+1, TRUE)// needs to be i+1 as the extras are numbered 1 to 9 ENDIF ENDIF ENDFOR ENDIF IF (GET_ENTITY_MODEL(tempveh) = SHEAVA OR GET_ENTITY_MODEL(tempveh) = OMNIS OR GET_ENTITY_MODEL(tempveh) = LE7B) IF GET_VEHICLE_MOD(tempveh, MOD_SPOILER) = -1 PRINTLN("SET_VEHICLE_SETUP - setting special cases for no spoiler option") SET_VEHICLE_EXTRA(tempveh, 1, FALSE) ENDIF ENDIF IF SHOULD_VEHICLE_SETUP_AFFECT_LANDING_GEAR() AND IS_THIS_MODEL_A_PLANE(sVehicleSetup.eModel) AND GET_VEHICLE_HAS_LANDING_GEAR(tempveh) AND NOT IS_VEHICLE_MODEL(tempVeh, AVENGER) IF NOT IS_BIT_SET(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_LANDING_GEAR_BROKEN) IF IS_BIT_SET(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_LANDING_GEAR_OUT) PRINTLN("SET_VEHICLE_SETUP: Plane landing gear was saved as deployed. Deploying.") CONTROL_LANDING_GEAR(tempveh, LGC_DEPLOY_INSTANT) ELSE PRINTLN("SET_VEHICLE_SETUP: Plane landing gear was saved as retracted. Retracting.") CONTROL_LANDING_GEAR(tempveh, LGC_RETRACT_INSTANT) ENDIF ELSE PRINTLN("SET_VEHICLE_SETUP: Plane landing gear was saved as broken. Re-breaking gear.") CONTROL_LANDING_GEAR(tempveh, LGC_BREAK) ENDIF ENDIF #IF USE_TU_CHANGES //B* 1774589: Set ignoredByQuicksave flag IF IS_BIT_SET(sVehicleSetup.iFlags,VEHICLE_SETUP_FLAG_IGNORED_FOR_QUICKSAVE) PRINTLN("SET_VEHICLE_SETUP: Flagging IGNORED_FOR_QUICKSAVE decorator due to save bit.") DECOR_SET_BOOL(tempveh,"IgnoredByQuickSave",TRUE) ELSE PRINTLN("SET_VEHICLE_SETUP: Clearing IGNORED_FOR_QUICKSAVE decorator due to save bit.") DECOR_SET_BOOL(tempveh,"IgnoredByQuickSave",FALSE) ENDIF #ENDIF ENDIF ENDPROC FUNC BOOL SET_VEHICLE_SETUP_WITH_EMBLEM(VEHICLE_INDEX tempveh, VEHICLE_SETUP_STRUCT &sVehicleSetup,BOOL &bLoadingEmblem, BOOL bSetLockStatus=FALSE, BOOL bSetMods=TRUE) CREWEMBLEMREQUESTSTATE eRequestState = CERS_NOT_ACTIVE IF NOT bLoadingEmblem SET_VEHICLE_SETUP(tempveh,sVehicleSetup,bSetLockStatus,bSetMods) IF NETWORK_CLAN_SERVICE_IS_VALID() GAMER_HANDLE gamerHandle = GET_LOCAL_GAMER_HANDLE() IF NETWORK_CLAN_PLAYER_IS_ACTIVE(gamerHandle) IF NOT DOES_VEHICLE_HAVE_CREW_EMBLEM(tempveh) IF ADD_VEHICLE_CREW_EMBLEM_USING_SCRIPT_POSITION(tempveh, PLAYER_ID()) PRINTLN("SET_VEHICLE_SETUP_WITH_EMBLEM: started loading vehicle with emblem ") bLoadingEmblem = TRUE ELSE PRINTLN("SET_VEHICLE_SETUP_WITH_EMBLEM: ADD_VEHICLE_CREW_EMBLEM_USING_SCRIPT_POSITION returned FALSE ") bLoadingEmblem =FALSE RETURN TRUE ENDIF ELSE bLoadingEmblem =FALSE RETURN TRUE ENDIF ELSE PRINTLN("SET_VEHICLE_SETUP_WITH_EMBLEM: not active in crew NOT applying emblem") bLoadingEmblem =FALSE RETURN TRUE ENDIF ELSE PRINTLN("SET_VEHICLE_SETUP_WITH_EMBLEM: not NETWORK_CLAN_SERVICE_IS_VALID NOT applying emblem") bLoadingEmblem =FALSE RETURN TRUE ENDIF ELSE IF NOT IS_ENTITY_DEAD(tempveh) eRequestState = GET_VEHICLE_CREW_EMBLEM_REQUEST_STATE(tempveh) ENDIF IF eRequestState = CERS_NOT_ACTIVE PRINTLN("SET_VEHICLE_SETUP_WITH_EMBLEM_FROM_GAMER_HANDLE: Requested emblem but request is not active!") SCRIPT_ASSERT("SET_VEHICLE_SETUP_WITH_EMBLEM_FROM_GAMER_HANDLE: Requested emblem but request is not active!") bLoadingEmblem =FALSE RETURN TRUE ENDIF IF eRequestState = CERS_SUCCEEDED OR eRequestState >= CERS_FAILED bLoadingEmblem =FALSE PRINTLN("SET_VEHICLE_SETUP_WITH_EMBLEM:Created copy of saved MP vehicle Emblem request state = ",ENUM_TO_INT(eRequestState)) RETURN TRUE ELSE PRINTLN("SET_VEHICLE_SETUP_WITH_EMBLEM: current request state = ",ENUM_TO_INT(eRequestState)) ENDIF ENDIF RETURN FALSE ENDFUNC FUNC BOOL SET_VEHICLE_SETUP_WITH_EMBLEM_FROM_GAMER_HANDLE(VEHICLE_INDEX tempveh, VEHICLE_SETUP_STRUCT &sVehicleSetup, GAMER_HANDLE GamerHandle, BOOL &bLoadingEmblem, BOOL bSetLockStatus=FALSE, BOOL bSetMods=TRUE) CREWEMBLEMREQUESTSTATE eRequestState = CERS_NOT_ACTIVE IF NOT bLoadingEmblem SET_VEHICLE_SETUP(tempveh,sVehicleSetup,bSetLockStatus,bSetMods) IF NETWORK_CLAN_SERVICE_IS_VALID() IF NETWORK_CLAN_PLAYER_IS_ACTIVE(GamerHandle) IF NOT DOES_VEHICLE_HAVE_CREW_EMBLEM(tempveh) IF ADD_VEHICLE_CREW_EMBLEM_USING_SCRIPT_POSITION(tempveh, NETWORK_GET_PLAYER_FROM_GAMER_HANDLE(GamerHandle)) PRINTLN("SET_VEHICLE_SETUP_WITH_EMBLEM_FROM_GAMER_HANDLE: started loading vehicle with emblem ") bLoadingEmblem = TRUE ELSE PRINTLN("SET_VEHICLE_SETUP_WITH_EMBLEM_FROM_GAMER_HANDLE: ADD_VEHICLE_CREW_EMBLEM_USING_SCRIPT_POSITION returned FALSE") RETURN(TRUE) ENDIF ELSE PRINTLN("SET_VEHICLE_SETUP_WITH_EMBLEM_FROM_GAMER_HANDLE: already has crew emblem") RETURN TRUE ENDIF ELSE PRINTLN("SET_VEHICLE_SETUP_WITH_EMBLEM_FROM_GAMER_HANDLE: not active in crew NOT applying emblem") RETURN TRUE ENDIF ELSE PRINTLN("SET_VEHICLE_SETUP_WITH_EMBLEM_FROM_GAMER_HANDLE: not NETWORK_CLAN_SERVICE_IS_VALID NOT applying emblem") RETURN TRUE ENDIF ELSE IF NOT IS_ENTITY_DEAD(tempveh) eRequestState = GET_VEHICLE_CREW_EMBLEM_REQUEST_STATE(tempveh) ENDIF IF eRequestState = CERS_SUCCEEDED OR eRequestState >= CERS_FAILED bLoadingEmblem =FALSE PRINTLN("SET_VEHICLE_SETUP_WITH_EMBLEM_FROM_GAMER_HANDLE:Created copy of saved MP vehicle Emblem request state = ",ENUM_TO_INT(eRequestState)) RETURN TRUE ELSE PRINTLN("SET_VEHICLE_SETUP_WITH_EMBLEM_FROM_GAMER_HANDLE: current request state = ",ENUM_TO_INT(eRequestState)) ENDIF ENDIF RETURN FALSE ENDFUNC /// PURPOSE: /// PURPOSE: Clones a vehicle setup struct into the given destination struct PROC CLONE_VEHICLE_SETUP_STRUCT(VEHICLE_SETUP_STRUCT &sOrigin, VEHICLE_SETUP_STRUCT &sDestination) sDestination.eModel = sOrigin.eModel sDestination.iPlateIndex = sOrigin.iPlateIndex sDestination.tlPlateText = sOrigin.tlPlateText sDestination.iColour1 = sOrigin.iColour1 sDestination.iColour2 = sOrigin.iColour2 sDestination.iColourExtra1 = sOrigin.iColourExtra1 sDestination.iColourExtra2 = sOrigin.iColourExtra2 sDestination.iModIndex = sOrigin.iModIndex sDestination.iModVariation = sOrigin.iModVariation sDestination.iTyreR = sOrigin.iTyreR sDestination.iTyreG = sOrigin.iTyreG sDestination.iTyreB = sOrigin.iTyreB sDestination.iWindowTintColour = sOrigin.iWindowTintColour sDestination.iFlags = sOrigin.iFlags sDestination.iLivery = sOrigin.iLivery sDestination.iWheelType = sOrigin.iWheelType sDestination.eRoofState = sOrigin.eRoofState sDestination.iCustomR = sOrigin.iCustomR sDestination.iCustomG = sOrigin.iCustomG sDestination.iCustomB = sOrigin.iCustomB sDestination.iNeonR = sOrigin.iNeonR sDestination.iNeonG = sOrigin.iNeonG sDestination.iNeonB = sOrigin.iNeonB ENDPROC CONST_INT ciNUMBER_OF_VEHICLE_COLOURS_PUBLIC 48 // was 26 CONST_INT ciNUMBER_OF_VEHICLE_COLOURS 48 // was 27 /// PURPOSE: Returns the colour index and text label for specified menu item FUNC BOOL GET_CARMOD_COLOUR_DATA(INT iMenuItem, INT &iColourValue, TEXT_LABEL_15 &tlColourLabel) iColourValue = -1 tlColourLabel = "" SWITCH iMenuItem CASE 0 iColourValue = 15 tlColourLabel = "CMOD_COL1_0" BREAK //- BLACK CASE 1 iColourValue = 16 tlColourLabel = "CMOD_COL1_1" BREAK //- BLACK POLY CASE 2 iColourValue = 18 tlColourLabel = "CMOD_COL1_2" BREAK //- SILVER CASE 3 iColourValue = 19 tlColourLabel = "CMOD_COL1_3" BREAK //- GUNMETAL CASE 4 iColourValue = 14 tlColourLabel = "CMOD_COL1_4" BREAK //- GREY CASE 5 iColourValue = 111 tlColourLabel = "CMOD_COL1_5" BREAK //- WHITE CASE 6 iColourValue = 27 tlColourLabel = "CMOD_COL1_6" BREAK //- RED CASE 7 iColourValue = 40 tlColourLabel = "CMOD_COL1_7" BREAK //- DARK RED CASE 8 iColourValue = 41 tlColourLabel = "CMOD_COL1_8" BREAK //- MATTE ORANGE CASE 9 iColourValue = 42 tlColourLabel = "CMOD_COL1_9" BREAK //- MATT YELLOW CASE 10 iColourValue = 49 tlColourLabel = "CMOD_COL1_10" BREAK //- DARK GREEN CASE 11 iColourValue = 50 tlColourLabel = "CMOD_COL1_11" BREAK //- GREEN CASE 12 iColourValue = 54 tlColourLabel = "CMOD_COL1_12" BREAK //- AQUA BLUE CASE 13 iColourValue = 80 tlColourLabel = "CMOD_COL1_13" BREAK //- BLUE POLY CASE 14 iColourValue = 62 tlColourLabel = "CMOD_COL1_14" BREAK //- DARK BLUE CASE 15 iColourValue = 64 tlColourLabel = "CMOD_COL1_15" BREAK //- BLUE CASE 16 iColourValue = 88 tlColourLabel = "CMOD_COL1_16" BREAK //- YELLOW CASE 17 iColourValue = 89 tlColourLabel = "CMOD_COL1_17" BREAK //- OFF YELLOW CASE 18 iColourValue = 105 tlColourLabel = "CMOD_COL1_18" BREAK //- DESSERT SAND CASE 19 iColourValue = 37 tlColourLabel = "CMOD_COL1_19" BREAK //- GOLD CASE 20 iColourValue = 90 tlColourLabel = "CMOD_COL1_20" BREAK //- BRONZE CASE 21 iColourValue = 135 tlColourLabel = "CMOD_COL1_21" BREAK //- HOT PINK CASE 22 iColourValue = 137 tlColourLabel = "CMOD_COL1_22" BREAK //- DARK SALMON CASE 23 iColourValue = 136 tlColourLabel = "CMOD_COL1_23" BREAK //- SALMON PINK CASE 24 iColourValue = 145 tlColourLabel = "CMOD_COL1_24" BREAK //- PURPLE CASE 25 iColourValue = 71 tlColourLabel = "CMOD_COL1_25" BREAK //- DARK PURPLE //DEV only colours below this point ([MJL]This no longer applies, all colours are now publically available) CASE 26 iColourValue = 92 tlColourLabel = "CMOD_COL1_26" BREAK //- LIME GREEN CASE 27 iColourValue = 53 tlColourLabel = "CMOD_COL1_27" BREAK //- BRIGHT GREEN CASE 28 iColourValue = 70 tlColourLabel = "CMOD_COL1_28" BREAK //- ULTRA BLUE CASE 29 iColourValue = 31 tlColourLabel = "CMOD_COL1_29" BREAK //- GRACE RED CASE 30 iColourValue = 34 tlColourLabel = "CMOD_COL1_30" BREAK //- CABERNET RED CASE 31 iColourValue = 38 tlColourLabel = "CMOD_COL1_31" BREAK //- ORANGE CASE 32 iColourValue = 138 tlColourLabel = "CMOD_COL1_32" BREAK //- BRIGHT ORANGE CASE 33 iColourValue = 12 tlColourLabel = "CMOD_COL1_33" BREAK //- MATTE BLACK CASE 34 iColourValue = 13 tlColourLabel = "CMOD_COL1_34" BREAK //- MATTE GRAY CASE 35 iColourValue = 112 tlColourLabel = "CMOD_COL1_35" BREAK //- MATTE ICE WHITE CASE 36 iColourValue = 83 tlColourLabel = "CMOD_COL1_36" BREAK //- MATTE BLUE CASE 37 iColourValue = 39 tlColourLabel = "CMOD_COL1_37" BREAK //- MATTE RED CASE 38 iColourValue = 128 tlColourLabel = "CMOD_COL1_38" BREAK //- MATTE GREEN CASE 39 iColourValue = 55 tlColourLabel = "CMOD_COL1_39" BREAK //- MATTE LIME GREEN CASE 40 iColourValue = 148 tlColourLabel = "CMOD_COL1_40" BREAK //- MATTE SCHAFTER PURPLE CASE 41 iColourValue = 153 tlColourLabel = "CMOD_COL1_41" BREAK //- MATTE DARK EARTH CASE 42 iColourValue = 154 tlColourLabel = "CMOD_COL1_42" BREAK //- MATTE DESERT TAN CASE 43 iColourValue = 117 tlColourLabel = "CMOD_COL1_43" BREAK //- BRUSHED STEEL CASE 44 iColourValue = 119 tlColourLabel = "CMOD_COL1_44" BREAK //- BRUSHED ALUMINIUM CASE 45 iColourValue = 159 tlColourLabel = "CMOD_COL1_45" BREAK //- BRUSHED GOLD CASE 46 iColourValue = 120 tlColourLabel = "CMOD_COL1_46" BREAK //- CHROME CASE 47 iColourValue = 67 tlColourLabel = "CMOD_COL1_47" BREAK //- Diamond Blue ENDSWITCH RETURN (iColourValue != -1) ENDFUNC /// PURPOSE: Gets the colour index stored in gta5/build/dev/common/data/carcols.xml FUNC INT GET_SELECTION_FROM_VEHICLE_COLOR(INT iMenuItem) SWITCH iMenuItem CASE FMMC_RACE_VEH_COLOUR_NONE RETURN -1 //- Random CASE 15 RETURN 0 //- BLACK CASE 16 RETURN 1 //- BLACK POLY CASE 18 RETURN 2 //- SILVER CASE 19 RETURN 3 //- GUNMETAL CASE 14 RETURN 4 //- GREY CASE 111 RETURN 5 //- WHITE CASE 27 RETURN 6 //- RED CASE 40 RETURN 7 //- DARK RED CASE 41 RETURN 8 //- MATTE ORANGE CASE 42 RETURN 9 //- MATTE YELLOW CASE 49 RETURN 10 //- DARK GREEN CASE 50 RETURN 11 //- GREEN CASE 54 RETURN 12 //- AQUA BLUE CASE 80 RETURN 13 //- BLUE POLY CASE 62 RETURN 14 //- DARK BLUE CASE 64 RETURN 15 //- BLUE CASE 88 RETURN 16 //- YELLOW CASE 89 RETURN 17 //- OFF YELLOW CASE 105 RETURN 18 //- DESSERT SAND CASE 37 RETURN 19 //- GOLD CASE 90 RETURN 20 //- BRONZE CASE 135 RETURN 21 //- HOT PINK CASE 137 RETURN 22 //- DARK SALMON CASE 136 RETURN 23 //- SALMON PINK CASE 145 RETURN 24 //- PURPLE CASE 71 RETURN 25 //- DARK PURPLE //DEV only colours below this point CASE 92 RETURN 26 //- LIME GREEN CASE 53 RETURN 27 //- BRIGHT GREEN CASE 70 RETURN 28 //- ULTRA BLUE CASE 31 RETURN 29 //- GRACE RED CASE 34 RETURN 30 //- CABERNET RED CASE 38 RETURN 31 //- ORANGE CASE 138 RETURN 32 //- BRIGHT ORANGE CASE 12 RETURN 33 //- MATTE BLACK CASE 13 RETURN 34 //- MATTE GRAY CASE 112 RETURN 35 //- MATTE ICE WHITE CASE 83 RETURN 36 //- MATTE BLUE CASE 39 RETURN 37 //- MATTE RED CASE 128 RETURN 38 //- MATTE GREEN CASE 55 RETURN 39 //- MATTE LIME GREEN CASE 148 RETURN 40 //- MATTE SCHAFTER PURPLE CASE 153 RETURN 41 //- MATTE DARK EARTH CASE 154 RETURN 42 //- MATTE DESERT TAN CASE 117 RETURN 43 //- BRUSHED STEEL CASE 119 RETURN 44 //- BRUSHED ALUMINIUM CASE 159 RETURN 45 //- BRUSHED GOLD CASE 120 RETURN 46 //- CHROME CASE 67 RETURN 47 //- Diamond Blue ENDSWITCH // SCRIPT_ASSERT("GET_SELECTION_FROM_VEHICLE_COLOR > 16") RETURN FMMC_RACE_VEH_COLOUR_NONE ENDFUNC /// PURPOSE: Gets the colour index stored in gta5/build/dev/common/data/carcols.xml FUNC INT GET_VEHICLE_COLOUR_FROM_SELECTION(INT iMenuItem) SWITCH iMenuItem CASE -1 RETURN FMMC_RACE_VEH_COLOUR_NONE //- Random CASE 0 RETURN 15 //- BLACK CASE 1 RETURN 16 //- BLACK POLY CASE 2 RETURN 18 //- SILVER CASE 3 RETURN 19 //- GUNMETAL CASE 4 RETURN 14 //- GREY CASE 5 RETURN 111 //- WHITE CASE 6 RETURN 27 //- RED CASE 7 RETURN 40 //- DARK RED CASE 8 RETURN 41 //- MATTE ORANGE CASE 9 RETURN 42 //- MATTE YELLOW CASE 10 RETURN 49 //- DARK GREEN CASE 11 RETURN 50 //- GREEN CASE 12 RETURN 54 //- AQUA BLUE CASE 13 RETURN 80 //- BLUE POLY CASE 14 RETURN 62 //- DARK BLUE CASE 15 RETURN 64 //- BLUE CASE 16 RETURN 88 //- YELLOW CASE 17 RETURN 89 //- OFF YELLOW CASE 18 RETURN 105 //- DESSERT SAND CASE 19 RETURN 37 //- GOLD CASE 20 RETURN 90 //- BRONZE CASE 21 RETURN 135 //- HOT PINK CASE 22 RETURN 137 //- DARK SALMON CASE 23 RETURN 136 //- SALMON PINK CASE 24 RETURN 145 //- PURPLE CASE 25 RETURN 71 //- DARK PURPLE //DEV only colours below this point CASE 26 RETURN 92 //- LIME GREEN CASE 27 RETURN 53 //- BRIGHT GREEN CASE 28 RETURN 70 //- ULTRA BLUE CASE 29 RETURN 31 //- GRACE RED CASE 30 RETURN 34 //- CABERNET RED CASE 31 RETURN 38 //- ORANGE CASE 32 RETURN 138 //- BRIGHT ORANGE CASE 33 RETURN 12 //- MATTE BLACK CASE 34 RETURN 13 //- MATTE GRAY CASE 35 RETURN 112 //- MATTE ICE WHITE CASE 36 RETURN 83 //- MATTE BLUE CASE 37 RETURN 39 //- MATTE RED CASE 38 RETURN 128 //- MATTE GREEN CASE 39 RETURN 55 //- MATTE LIME GREEN CASE 40 RETURN 148 //- MATTE SCHAFTER PURPLE CASE 41 RETURN 153 //- MATTE DARK EARTH CASE 42 RETURN 154 //- MATTE DESERT TAN CASE 43 RETURN 117 //- BRUSHED STEEL CASE 44 RETURN 119 //- BRUSHED ALUMINIUM CASE 45 RETURN 159 //- BRUSHED GOLD CASE 46 RETURN 120 //- CHROME CASE 47 RETURN 67 //- Diamond Blue ENDSWITCH // SCRIPT_ASSERT("GET_VEHICLE_COLOR_FROM_SELECTION > 16") RETURN FMMC_RACE_VEH_COLOUR_NONE ENDFUNC CONST_INT ciNUMBER_OF_VEHICLE_TERTIARY_COLOURS 68 FUNC BOOL GET_TEMP_CARMOD_TERTIARY_COLOUR_INDEX(INT iMenuOption, INT &iColourIndex) // MAKE SURE ANY CHANGES ALSO GO INTO GET_MENU_INDEX_FROM_CARMOD_TERTIARY_COLOUR_INDEX. iColourIndex = -1 SWITCH iMenuOption CASE 0 iColourIndex = 0 BREAK CASE 1 iColourIndex = 1 BREAK CASE 2 iColourIndex = 11 BREAK CASE 3 iColourIndex = 2 BREAK CASE 4 iColourIndex = 3 BREAK CASE 5 iColourIndex = 5 BREAK CASE 6 iColourIndex = 6 BREAK CASE 7 iColourIndex = 7 BREAK CASE 8 iColourIndex = 8 BREAK CASE 9 iColourIndex = 9 BREAK CASE 10 iColourIndex = 10 BREAK CASE 11 iColourIndex = 27 BREAK CASE 12 iColourIndex = 28 BREAK CASE 13 iColourIndex = 150 BREAK CASE 14 iColourIndex = 30 BREAK CASE 15 iColourIndex = 31 BREAK CASE 16 iColourIndex = 32 BREAK CASE 17 iColourIndex = 33 BREAK CASE 18 iColourIndex = 34 BREAK CASE 19 iColourIndex = 143 BREAK CASE 20 iColourIndex = 35 BREAK CASE 21 iColourIndex = 137 BREAK CASE 22 iColourIndex = 136 BREAK CASE 23 iColourIndex = 36 BREAK CASE 24 iColourIndex = 38 BREAK CASE 25 iColourIndex = 138 BREAK CASE 26 iColourIndex = 90 BREAK CASE 27 iColourIndex = 88 BREAK CASE 28 iColourIndex = 89 BREAK CASE 29 iColourIndex = 91 BREAK CASE 30 iColourIndex = 49 BREAK CASE 31 iColourIndex = 50 BREAK CASE 32 iColourIndex = 51 BREAK CASE 33 iColourIndex = 52 BREAK CASE 34 iColourIndex = 53 BREAK CASE 35 iColourIndex = 54 BREAK CASE 36 iColourIndex = 92 BREAK CASE 37 iColourIndex = 141 BREAK CASE 38 iColourIndex = 61 BREAK CASE 39 iColourIndex = 62 BREAK CASE 40 iColourIndex = 63 BREAK CASE 41 iColourIndex = 65 BREAK CASE 42 iColourIndex = 66 BREAK CASE 43 iColourIndex = 67 BREAK CASE 44 iColourIndex = 68 BREAK CASE 45 iColourIndex = 69 BREAK CASE 46 iColourIndex = 73 BREAK CASE 47 iColourIndex = 70 BREAK CASE 48 iColourIndex = 74 BREAK CASE 49 iColourIndex = 96 BREAK CASE 50 iColourIndex = 101 BREAK CASE 51 iColourIndex = 95 BREAK CASE 52 iColourIndex = 94 BREAK CASE 53 iColourIndex = 97 BREAK CASE 54 iColourIndex = 103 BREAK CASE 55 iColourIndex = 104 BREAK CASE 56 iColourIndex = 98 BREAK CASE 57 iColourIndex = 100 BREAK CASE 58 iColourIndex = 102 BREAK CASE 59 iColourIndex = 99 BREAK CASE 60 iColourIndex = 105 BREAK CASE 61 iColourIndex = 106 BREAK CASE 62 iColourIndex = 72 BREAK CASE 63 iColourIndex = 146 BREAK CASE 64 iColourIndex = 145 BREAK CASE 65 iColourIndex = 107 BREAK CASE 66 iColourIndex = 111 BREAK CASE 67 iColourIndex = 112 BREAK ENDSWITCH RETURN (iColourIndex != -1) ENDFUNC FUNC INT GET_MENU_INDEX_FROM_CARMOD_TERTIARY_COLOUR_INDEX(INT iColourIndex) INT iMenuOption = 0 SWITCH iColourIndex CASE 0 iMenuOption = 0 BREAK CASE 1 iMenuOption = 1 BREAK CASE 11 iMenuOption = 2 BREAK CASE 2 iMenuOption = 3 BREAK CASE 3 iMenuOption = 4 BREAK CASE 5 iMenuOption = 5 BREAK CASE 6 iMenuOption = 6 BREAK CASE 7 iMenuOption = 7 BREAK CASE 8 iMenuOption = 8 BREAK CASE 9 iMenuOption = 9 BREAK CASE 10 iMenuOption = 10 BREAK CASE 27 iMenuOption = 11 BREAK CASE 28 iMenuOption = 12 BREAK CASE 150 iMenuOption = 13 BREAK CASE 30 iMenuOption = 14 BREAK CASE 31 iMenuOption = 15 BREAK CASE 32 iMenuOption = 16 BREAK CASE 33 iMenuOption = 17 BREAK CASE 34 iMenuOption = 18 BREAK CASE 143 iMenuOption = 19 BREAK CASE 35 iMenuOption = 20 BREAK CASE 137 iMenuOption = 21 BREAK CASE 136 iMenuOption = 22 BREAK CASE 36 iMenuOption = 23 BREAK CASE 38 iMenuOption = 24 BREAK CASE 138 iMenuOption = 25 BREAK CASE 90 iMenuOption = 26 BREAK CASE 88 iMenuOption = 27 BREAK CASE 89 iMenuOption = 28 BREAK CASE 91 iMenuOption = 29 BREAK CASE 49 iMenuOption = 30 BREAK CASE 50 iMenuOption = 31 BREAK CASE 51 iMenuOption = 32 BREAK CASE 52 iMenuOption = 33 BREAK CASE 53 iMenuOption = 34 BREAK CASE 54 iMenuOption = 35 BREAK CASE 92 iMenuOption = 36 BREAK CASE 141 iMenuOption = 37 BREAK CASE 61 iMenuOption = 38 BREAK CASE 62 iMenuOption = 39 BREAK CASE 63 iMenuOption = 40 BREAK CASE 65 iMenuOption = 41 BREAK CASE 66 iMenuOption = 42 BREAK CASE 67 iMenuOption = 43 BREAK CASE 68 iMenuOption = 44 BREAK CASE 69 iMenuOption = 45 BREAK CASE 73 iMenuOption = 46 BREAK CASE 70 iMenuOption = 47 BREAK CASE 74 iMenuOption = 48 BREAK CASE 96 iMenuOption = 49 BREAK CASE 101 iMenuOption = 50 BREAK CASE 95 iMenuOption = 51 BREAK CASE 94 iMenuOption = 52 BREAK CASE 97 iMenuOption = 53 BREAK CASE 103 iMenuOption = 54 BREAK CASE 104 iMenuOption = 55 BREAK CASE 98 iMenuOption = 56 BREAK CASE 100 iMenuOption = 57 BREAK CASE 102 iMenuOption = 58 BREAK CASE 99 iMenuOption = 59 BREAK CASE 105 iMenuOption = 60 BREAK CASE 106 iMenuOption = 61 BREAK CASE 72 iMenuOption = 62 BREAK CASE 146 iMenuOption = 63 BREAK CASE 145 iMenuOption = 64 BREAK CASE 107 iMenuOption = 65 BREAK CASE 111 iMenuOption = 66 BREAK CASE 112 iMenuOption = 67 BREAK ENDSWITCH RETURN iMenuOption ENDFUNC FUNC INT GET_TEMP_CARMOD_TERTIARY_COLOUR_PRICE(INT iMenuOption) SWITCH iMenuOption CASE 0 RETURN 500 BREAK CASE 1 RETURN 500 BREAK CASE 2 RETURN 500 BREAK CASE 3 RETURN 500 BREAK CASE 4 RETURN 500 BREAK CASE 5 RETURN 500 BREAK CASE 6 RETURN 500 BREAK CASE 7 RETURN 500 BREAK CASE 8 RETURN 500 BREAK CASE 9 RETURN 500 BREAK CASE 10 RETURN 500 BREAK CASE 11 RETURN 500 BREAK CASE 12 RETURN 500 BREAK CASE 13 RETURN 500 BREAK CASE 14 RETURN 500 BREAK CASE 15 RETURN 500 BREAK CASE 16 RETURN 500 BREAK CASE 17 RETURN 500 BREAK CASE 18 RETURN 500 BREAK CASE 19 RETURN 500 BREAK CASE 20 RETURN 500 BREAK CASE 21 RETURN 500 BREAK CASE 22 RETURN 500 BREAK CASE 23 RETURN 500 BREAK CASE 24 RETURN 500 BREAK CASE 25 RETURN 500 BREAK CASE 26 RETURN 500 BREAK CASE 27 RETURN 500 BREAK CASE 28 RETURN 500 BREAK CASE 29 RETURN 500 BREAK CASE 30 RETURN 500 BREAK CASE 31 RETURN 500 BREAK CASE 32 RETURN 500 BREAK CASE 33 RETURN 500 BREAK CASE 34 RETURN 500 BREAK CASE 35 RETURN 500 BREAK CASE 36 RETURN 500 BREAK CASE 37 RETURN 500 BREAK CASE 38 RETURN 500 BREAK CASE 39 RETURN 500 BREAK CASE 40 RETURN 500 BREAK CASE 41 RETURN 500 BREAK CASE 42 RETURN 500 BREAK CASE 43 RETURN 500 BREAK CASE 44 RETURN 500 BREAK CASE 45 RETURN 500 BREAK CASE 46 RETURN 500 BREAK CASE 47 RETURN 500 BREAK CASE 48 RETURN 500 BREAK CASE 49 RETURN 500 BREAK CASE 50 RETURN 500 BREAK CASE 51 RETURN 500 BREAK CASE 52 RETURN 500 BREAK CASE 53 RETURN 500 BREAK CASE 54 RETURN 500 BREAK CASE 55 RETURN 500 BREAK CASE 56 RETURN 500 BREAK CASE 57 RETURN 500 BREAK CASE 58 RETURN 500 BREAK CASE 59 RETURN 500 BREAK CASE 60 RETURN 500 BREAK CASE 61 RETURN 500 BREAK CASE 62 RETURN 500 BREAK CASE 63 RETURN 500 BREAK CASE 64 RETURN 500 BREAK CASE 65 RETURN 500 BREAK CASE 66 RETURN 500 BREAK CASE 67 RETURN 500 BREAK CASE 68 RETURN 500 BREAK ENDSWITCH RETURN 500 ENDFUNC FUNC STRING GET_TEMP_CARMOD_TERTIARY_COLOUR_LABEL(INT iMenuOption) SWITCH iMenuOption CASE 0 RETURN "BLACK" BREAK CASE 1 RETURN "GRAPHITE" BREAK CASE 2 RETURN "ANTHR_BLACK" BREAK CASE 3 RETURN "BLACK_STEEL" BREAK CASE 4 RETURN "DARK_SILVER" BREAK CASE 5 RETURN "BLUE_SILVER" BREAK CASE 6 RETURN "ROLLED_STEEL" BREAK CASE 7 RETURN "SHADOW_SILVER" BREAK CASE 8 RETURN "STONE_SILVER" BREAK CASE 9 RETURN "MIDNIGHT_SILVER" BREAK CASE 10 RETURN "CAST_IRON_SIL" BREAK CASE 11 RETURN "RED" BREAK CASE 12 RETURN "TORINO_RED" BREAK CASE 13 RETURN "LAVA_RED" BREAK CASE 14 RETURN "BLAZE_RED" BREAK CASE 15 RETURN "GRACE_RED" BREAK CASE 16 RETURN "GARNET_RED" BREAK CASE 17 RETURN "SUNSET_RED" BREAK CASE 18 RETURN "CABERNET_RED" BREAK CASE 19 RETURN "WINE_RED" BREAK CASE 20 RETURN "CANDY_RED" BREAK CASE 21 RETURN "PINK" BREAK CASE 22 RETURN "SALMON_PINK" BREAK CASE 23 RETURN "SUNRISE_ORANGE" BREAK CASE 24 RETURN "ORANGE" BREAK CASE 25 RETURN "BRIGHT_ORANGE" BREAK CASE 26 RETURN "BRONZE" BREAK CASE 27 RETURN "YELLOW" BREAK CASE 28 RETURN "RACE_YELLOW" BREAK CASE 29 RETURN "FLUR_YELLOW" BREAK CASE 30 RETURN "DARK_GREEN" BREAK CASE 31 RETURN "RACING_GREEN" BREAK CASE 32 RETURN "SEA_GREEN" BREAK CASE 33 RETURN "OLIVE_GREEN" BREAK CASE 34 RETURN "BRIGHT_GREEN" BREAK CASE 35 RETURN "PETROL_GREEN" BREAK CASE 36 RETURN "LIME_GREEN" BREAK CASE 37 RETURN "MIDNIGHT_BLUE" BREAK CASE 38 RETURN "GALAXY_BLUE" BREAK CASE 39 RETURN "DARK_BLUE" BREAK CASE 40 RETURN "SAXON_BLUE" BREAK CASE 41 RETURN "MARINER_BLUE" BREAK CASE 42 RETURN "HARBOR_BLUE" BREAK CASE 43 RETURN "DIAMOND_BLUE" BREAK CASE 44 RETURN "SURF_BLUE" BREAK CASE 45 RETURN "NAUTICAL_BLUE" BREAK CASE 46 RETURN "RACING_BLUE" BREAK CASE 47 RETURN "ULTRA_BLUE" BREAK CASE 48 RETURN "LIGHT_BLUE" BREAK CASE 49 RETURN "CHOCOLATE_BROWN" BREAK CASE 50 RETURN "BISON_BROWN" BREAK CASE 51 RETURN "CREEK_BROWN" BREAK CASE 52 RETURN "UMBER_BROWN" BREAK CASE 53 RETURN "MAPLE_BROWN" BREAK CASE 54 RETURN "BEECHWOOD_BROWN" BREAK CASE 55 RETURN "SIENNA_BROWN" BREAK CASE 56 RETURN "SADDLE_BROWN" BREAK CASE 57 RETURN "MOSS_BROWN" BREAK CASE 58 RETURN "WOODBEECH_BROWN" BREAK CASE 59 RETURN "STRAW_BROWN" BREAK CASE 60 RETURN "SANDY_BROWN" BREAK CASE 61 RETURN "BLEECHED_BROWN" BREAK CASE 62 RETURN "SPIN_PURPLE" BREAK CASE 63 RETURN "MIGHT_PURPLE" BREAK CASE 64 RETURN "BRIGHT_PURPLE" BREAK CASE 65 RETURN "CREAM" BREAK CASE 66 RETURN "WHITE" BREAK CASE 67 RETURN "FROST_WHITE" BREAK ENDSWITCH RETURN "" ENDFUNC /// PURPOSE: /// Resets all the info in the PED_VEH_DATA_STRUCT passed in /// PARAMS: /// mStruct - the struct we are resetting PROC RESET_PED_VEH_DATA_STRUCT(PED_VEH_DATA_STRUCT &mStruct) INT iCounter mStruct.model = DUMMY_MODEL_FOR_SCRIPT mStruct.modelTrailer = DUMMY_MODEL_FOR_SCRIPT mStruct.fDirtLevel = 0.0 mStruct.fHealth = 0 mStruct.iColourCombo = 0 mStruct.iColour1 = 0 mStruct.iColour2 = 0 mStruct.iColourExtra1 = 0 mStruct.iColourExtra2 = 0 mStruct.bColourCombo = FALSE mStruct.bColourExtra = FALSE FOR iCounter = 0 TO NUMBER_OF_VEHICLE_EXTRAS-1 mStruct.bExtraOn[iCounter] = FALSE ENDFOR mStruct.bConvertible = FALSE mStruct.iRadioIndex = 0 mStruct.tlNumberPlate = "" FOR iCounter = 0 TO MAX_VEHICLE_MOD_SLOTS-1 mStruct.iModIndex[iCounter] = 0 ENDFOR FOR iCounter = 0 TO MAX_VEHICLE_MOD_VAR_SLOTS-1 mStruct.iModVariation[iCounter] = 0 ENDFOR mStruct.iTyreR = 0 mStruct.iTyreG = 0 mStruct.iTyreB = 0 mStruct.iWindowTintColour = 0 mStruct.bTyresCanBurst = FALSE mStruct.iLivery = 0 mStruct.iWheelType = 0 mStruct.eType = VEHICLE_TYPE_DEFAULT mStruct.iNeonR = 0 mStruct.iNeonG = 0 mStruct.iNeonB = 0 mStruct.iFlags = 0 ENDPROC ///// PURPOSE: /// Checks to see if a vehicle is an MP premium one. If it is the player can only save it if they purchased it on the internet. /// PARAMS: /// theModel - model to check /// RETURNS: /// TRUE if vehicle classed as an MP premium vehicle (list from 1564330) FUNC BOOL IS_MP_PREMIUM_VEHICLE(MODEL_NAMES theModel) SWITCH theModel CASE ADDER CASE BULLET CASE CARBONIZZARE CASE CHEETAH CASE COGCABRIO CASE COQUETTE CASE ENTITYXF CASE EXEMPLAR CASE FELTZER2 CASE INFERNUS CASE JB700 CASE MONROE CASE NINEF CASE NINEF2 //unsure CASE RAPIDGT2 CASE RAPIDGT //unsure CASE STINGER CASE STINGERGT CASE SUPERD CASE VACCA CASE ZTYPE CASE AKUMA CASE BATI CASE BATI2 //unsure CASE DOUBLE CASE HEXER CASE ELEGY2 CASE KHAMELION CASE HOTKNIFE CASE CARBONRS CASE VOLTIC CASE COMET2 CASE SURANO CASE BANSHEE CASE BLAZER3 CASE JESTER CASE MASSACRO CASE TURISMOR CASE ZENTORNO CASE HUNTLEY CASE ALPHA CASE PARADISE CASE BIFTA CASE KALAHARI CASE BTYPE CASE THRUST CASE DUBSTA3 CASE BLADE CASE GLENDALE CASE RHAPSODY CASE WARRENER CASE PANTO CASE PIGALLE CASE COQUETTE2 CASE MONSTER CASE SOVEREIGN CASE INNOVATION CASE HAKUCHOU CASE FUROREGT CASE Boxville4 CASE CASCO CASE DINGHY3 CASE ENDURO CASE GBURRITO2 CASE GUARDIAN CASE HYDRA CASE Insurgent CASE Insurgent2 CASE Kuruma CASE Kuruma2 CASE Lectro CASE Mule3 CASE SAVAGE CASE TECHNICAL // CASE TUG CASE Valkyrie CASE VELUM2 // new for ng (on release) CASE BLISTA2 CASE DODO CASE DUKES CASE MARSHALL CASE STALION CASE SUBMERSIBLE2 // new for ng (but released later) CASE BLISTA3 RETURN TRUE BREAK ENDSWITCH SWITCH theModel #if IS_NEXTGEN_BUILD CASE BUFFALO3 CASE DOMINATOR2 CASE DUKES2 CASE GAUNTLET2 CASE STALION2 CASE BLIMP2 #endif CASE JESTER2 CASE MASSACRO2 CASE RATLOADER2 CASE SLAMVAN CASE BARRACKS3 CASE SLAMVAN2 // luxe pack CASE BRAWLER CASE CHINO CASE COQUETTE3 CASE FELTZER3 CASE LUXOR2 CASE OSIRIS CASE SWIFT2 CASE T20 CASE TORO CASE VINDICATOR CASE VIRGO CASE WINDSOR CASE FACTION CASE MOONBEAM CASE FACTION2 CASE BUCCANEER2 CASE CHINO2 CASE MOONBEAM2 CASE PRIMO2 CASE VOODOO CASE BTYPE2 CASE LURCHER CASE FACTION3 CASE MINIVAN2 CASE SABREGT2 CASE SLAMVAN3 CASE TORNADO5 CASE VIRGO2 CASE VIRGO3 CASE BALLER3 CASE BALLER4 CASE BALLER5 CASE BALLER6 CASE Cog55 CASE Cog552 CASE Cognoscenti CASE Cognoscenti2 CASE MAMBA CASE NIGHTSHADE CASE Schafter3 CASE Schafter5 CASE Schafter4 CASE Schafter6 CASE VERLIERER2 CASE TAMPA CASE BANSHEE2 CASE SULTANRS CASE BTYPE3 CASE BESTIAGTS CASE BRICKADE CASE FMJ CASE NIMBUS CASE PFISTER811 CASE PROTOTIPO CASE RUMPO3 CASE SEVEN70 CASE TUG CASE VOLATUS CASE WINDSOR2 CASE XLS CASE XLS2 CASE REAPER CASE LE7B CASE OMNIS CASE TROPOS CASE BRIOSO CASE TROPHYTRUCK CASE TROPHYTRUCK2 CASE CONTENDER CASE CLIFFHANGER CASE BF400 CASE TYRUS CASE SHEAVA CASE RALLYTRUCK CASE TAMPA2 CASE GARGOYLE CASE LYNX CASE AVARUS CASE BLAZER4 CASE CHIMERA CASE DAEMON2 CASE DEFILER CASE ESSKEY CASE FAGGIO3 CASE FAGGIO CASE HAKUCHOU2 CASE MANCHEZ CASE NIGHTBLADE CASE RAPTOR CASE RATBIKE CASE SANCTUS CASE SHOTARO CASE TORNADO6 CASE VORTEX CASE WOLFSBANE CASE YOUGA2 CASE ZOMBIEA CASE ZOMBIEB CASE COMET2 CASE COMET3 CASE DIABLOUS CASE DIABLOUS2 CASE ELEGY2 CASE ELEGY CASE FCR CASE FCR2 CASE ITALIGTB CASE ITALIGTB2 CASE NERO CASE NERO2 CASE PENETRATOR CASE SPECTER CASE SPECTER2 CASE TEMPESTA CASE BLAZER5 CASE BOXVILLE5 CASE DUNE4 CASE DUNE5 CASE PHANTOM2 CASE RUINER2 CASE RUINER3 CASE TECHNICAL2 CASE VOLTIC2 CASE WASTELANDER CASE GP1 CASE INFERNUS2 CASE RUSTON CASE TURISMO2 CASE ARDENT CASE VAGNER CASE CHEETAH2 CASE NIGHTSHARK CASE TORERO CASE XA21 CASE APC CASE HALFTRACK CASE DUNE3 CASE TRAILERSMALL2 CASE INSURGENT3 CASE TECHNICAL3 CASE OPPRESSOR CASE TAMPA3 CASE CYCLONE CASE RAPIDGT3 CASE RETINUE CASE VISIONE CASE VIGILANTE RETURN TRUE BREAK ENDSWITCH SWITCH theModel CASE DELUXO CASE STROMBERG CASE RIOT2 CASE CHERNOBOG CASE KHANJALI CASE AKULA CASE THRUSTER //CASE AVENGER CASE BARRAGE CASE VOLATOL CASE COMET4 CASE NEON CASE STREITER CASE SENTINEL3 CASE YOSEMITE CASE SC1 CASE AUTARCH CASE GT500 CASE HUSTLER CASE REVOLTER CASE PARIAH CASE RAIDEN CASE SAVESTRA CASE RIATA CASE HERMES CASE COMET5 CASE Z190 CASE VISERIS CASE KAMACHO CASE GB200 CASE FAGALOA CASE ELLIE CASE ISSI3 CASE MICHELLI CASE FLASHGT CASE HOTRING CASE TEZERACT CASE TYRANT CASE DOMINATOR3 CASE TAIPAN CASE ENTITY2 CASE JESTER3 CASE CHEBUREK CASE CARACARA CASE SEASPARROW CASE MULE4 CASE POUNDER2 CASE SPEEDO4 CASE OPPRESSOR2 CASE SCRAMJET CASE FREECRAWLER CASE MENACER CASE PATRIOT2 CASE STAFFORD CASE SWINGER CASE TERBYTE CASE STRIKEFORCE CASE PBUS2 CASE BLIMP3 CASE CLIQUE CASE DEVESTE CASE DEVIANT CASE IMPALER CASE SCARAB CASE SCHLAGEN CASE TOROS CASE VAMOS CASE TULIP CASE MONSTER3 CASE IMPALER2 CASE BRUISER CASE CERBERUS CASE DOMINATOR4 CASE IMPERATOR CASE ISSI4 CASE ITALIGTO CASE DEATHBIKE CASE SLAMVAN4 CASE BRUTUS CASE IMPERATOR2 CASE IMPERATOR3 CASE DEATHBIKE3 CASE DEATHBIKE2 CASE IMPALER3 CASE BRUTUS2 CASE BRUISER2 CASE SLAMVAN5 CASE ISSI5 CASE MONSTER4 CASE SCARAB2 CASE CERBERUS2 CASE DOMINATOR5 CASE ZR3802 CASE IMPALER4 CASE BRUTUS3 CASE BRUISER3 CASE SLAMVAN6 CASE ISSI6 CASE MONSTER5 CASE SCARAB3 CASE CERBERUS3 CASE DOMINATOR6 CASE ZR3803 CASE RCBANDITO CASE ZR380 CASE CARACARA2 CASE DRAFTER CASE DYNASTY CASE GAUNTLET3 CASE GAUNTLET4 CASE HELLION CASE ISSI7 CASE KRIEGER CASE LOCUST CASE NEBULA CASE NEO CASE NOVAK CASE S80 CASE THRAX CASE ZION3 CASE ZORRUSSO CASE EMERUS CASE PEYOTE2 CASE RROCKET CASE PARAGON CASE PARAGON2 CASE JUGULAR CASE ASBO CASE KANJO CASE FORMULA CASE IMORGON CASE KOMODA CASE MANANA2 // CASE PRIMO3 CASE REBLA CASE SUGOI CASE YOUGA3 CASE ZHABA CASE VSTR CASE EVERON CASE SULTAN2 CASE JB7002 CASE OUTLAW CASE VAGRANT CASE STRYDER CASE RETINUE2 CASE FORMULA2 CASE YOSEMITE2 CASE FURIA #IF FEATURE_COPS_N_CROOKS CASE SURFER3 CASE ZOKU CASE POLBATI CASE POLBUFFALO CASE POLGAUNTLET CASE POLGRANGER CASE POLICE5 CASE POLICE6 CASE POLICEB2 CASE POLICET2 CASE POLPANTO CASE POLCARACARA CASE POLGREENWOOD CASE POLRIATA CASE LGUARD CASE BLAZER2 #ENDIF CASE GAUNTLET5 CASE CLUB CASE DUKES3 CASE YOSEMITE3 CASE PEYOTE3 CASE GLENDALE2 CASE PENUMBRA2 CASE LANDSTALKER2 CASE SEMINOLE2 CASE TIGON CASE OPENWHEEL1 CASE OPENWHEEL2 CASE COQUETTE4 CASE MANCHEZ2 CASE BRIOSO2 CASE WINKY CASE VERUS CASE ALKONOST CASE AVISA CASE LONGFIN CASE PATROLBOAT CASE SEASPARROW2 CASE SEASPARROW3 CASE SLAMTRUCK CASE KOSATKA CASE TOREADOR CASE ITALIRSX CASE WEEVIL CASE DINGHY5 CASE ANNIHILATOR2 CASE SQUADDIE CASE VETO CASE VETO2 RETURN TRUE BREAK ENDSWITCH SWITCH theModel CASE CALICO CASE COMET6 CASE CYPHER CASE DOMINATOR7 CASE JESTER4 CASE REMUS CASE VECTRE CASE ZR350 CASE WARRENER2 CASE RT3000 CASE FUTO2 CASE TAILGATER2 CASE SULTAN3 CASE DOMINATOR8 CASE EUROS CASE GROWLER CASE PREVION RETURN TRUE BREAK #IF FEATURE_GEN9_EXCLUSIVE CASE S95 CASE ARBITERGT CASE ASTRON2 CASE CYCLONE2 CASE IGNUS2 RETURN TRUE BREAK #ENDIF ENDSWITCH SWITCH theModel CASE ASTRON CASE BALLER7 CASE BUFFALO4 CASE COMET7 CASE DEITY CASE GRANGER2 CASE IGNUS CASE JUBILEE CASE PATRIOT3 CASE CHAMPION CASE YOUGA4 CASE ZENO CASE CINQUEMILA CASE REEVER CASE SHINOBI CASE IWAGEN #IF FEATURE_DLC_1_2022 CASE BRIOSO3 CASE CORSITA CASE DRAUGUR CASE GREENWOOD CASE KANJOSJ CASE LM87 CASE POSTLUDE CASE RHINEHART CASE SM722 CASE TENF CASE TENF2 CASE TORERO2 CASE VIGERO2 CASE WEEVIL2 CASE RUINER4 CASE SENTINEL4 CASE OMNISEGT #ENDIF RETURN TRUE BREAK ENDSWITCH RETURN FALSE ENDFUNC FUNC INT GET_DLC_VEHICLE_DATA_SLOT_FOR_VEHICLE(MODEL_NAMES eModel) INT iVeh scrShopVehicleData vehicleData REPEAT GET_NUM_DLC_VEHICLES() iVeh IF GET_DLC_VEHICLE_DATA(iVeh, vehicleData) IF ENUM_TO_INT(eModel) = vehicleData.m_nameHash RETURN iVeh ENDIF ENDIF ENDREPEAT RETURN -1 ENDFUNC FUNC BOOL IS_DLC_VEHICLE_SLOT_SUITABLE_FOR_GARAGE(INT iSlot) IF iSlot = -1 RETURN FALSE ENDIF INT iDLCFlags scrShopVehicleData vehicleData IF GET_DLC_VEHICLE_DATA(iSlot, vehicleData) iDLCFlags = GET_DLC_VEHICLE_FLAGS(iSlot) IF NOT IS_BIT_SET(iDLCFlags,0)//VF_DISABLE_GARAGE) RETURN TRUE ENDIF ENDIF RETURN FALSE ENDFUNC FUNC BOOL IS_VEHICLE_A_CYCLE(MODEL_NAMES theModel) IF theModel = BMX RETURN TRUE ENDIF IF theModel = Cruiser RETURN TRUE ENDIF IF theModel = Scorcher RETURN TRUE ENDIF IF theModel = Tribike OR theModel = TRIBIKE2 OR theModel = TRIBIKE3 RETURN TRUE ENDIF #IF USE_TU_CHANGES IF theModel = FIXTER RETURN TRUE ENDIF #ENDIF RETURN FALSE ENDFUNC FUNC BOOL IS_VEHICLE_MODEL_A_TRANSPORT_VEHICLE(MODEL_NAMES ModelName) SWITCH ModelName CASE AIRBUS CASE BUS CASE JOURNEY CASE RENTALBUS CASE STRETCH CASE PBUS CASE COACH RETURN TRUE ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL IS_VEHICLE_MODEL_A_BLIMP(MODEL_NAMES ModelName) SWITCH ModelName CASE BLIMP CASE BLIMP2 CASE BLIMP3 RETURN TRUE ENDSWITCH RETURN FALSE ENDFUNC FUNC INT GET_NUM_VEHICLES_IN_SCRIPT_CLASS(INT iClass) SWITCH iClass CASE FMMC_VEHICLE_CLASS_SUPER RETURN 20 CASE FMMC_VEHICLE_CLASS_SPORTS RETURN 39 CASE FMMC_VEHICLE_CLASS_COUPES RETURN 14 CASE FMMC_VEHICLE_CLASS_MUSCLE RETURN 39 CASE FMMC_VEHICLE_CLASS_CLASSICS RETURN 20 CASE FMMC_VEHICLE_CLASS_SEDANS RETURN 32 CASE FMMC_VEHICLE_CLASS_SUV RETURN 29 CASE FMMC_VEHICLE_CLASS_COMPACTS RETURN 8 CASE FMMC_VEHICLE_CLASS_OFF_ROAD RETURN 31 CASE FMMC_VEHICLE_CLASS_INDUSTRIAL RETURN 11 CASE FMMC_VEHICLE_CLASS_UTILITY RETURN 13 CASE FMMC_VEHICLE_CLASS_VANS RETURN 31 CASE FMMC_VEHICLE_CLASS_BIKES RETURN 26 CASE FMMC_VEHICLE_CLASS_CYCLES RETURN 6 ENDSWITCH RETURN 39 ENDFUNC FUNC MODEL_NAMES GET_VEHICLE_NAMES_FOR_SCRIPT_CLASS_FROM_INDEX(INT iClass, INT iIndex) SWITCH iClass //super CASE FMMC_VEHICLE_CLASS_SUPER SWITCH iIndex CASE 0 RETURN ADDER CASE 1 RETURN BULLET CASE 2 RETURN CHEETAH CASE 3 RETURN ENTITYXF CASE 4 RETURN INFERNUS CASE 5 RETURN VACCA CASE 6 RETURN VOLTIC CASE 7 RETURN BANSHEE2 CASE 8 RETURN FMJ CASE 9 RETURN OSIRIS CASE 10 RETURN PFISTER811 CASE 11 RETURN PROTOTIPO CASE 12 RETURN REAPER CASE 13 RETURN SULTANRS CASE 14 RETURN T20 CASE 15 RETURN TURISMOR CASE 16 RETURN ZENTORNO CASE 17 RETURN LE7B CASE 18 RETURN TYRUS CASE 19 RETURN SHEAVA ENDSWITCH BREAK //sports CASE FMMC_VEHICLE_CLASS_SPORTS SWITCH iIndex CASE 0 RETURN NINEF2 CASE 1 RETURN BANSHEE CASE 2 RETURN CARBONIZZARE CASE 3 RETURN COMET2 CASE 4 RETURN COQUETTE CASE 5 RETURN FELTZER2 CASE 6 RETURN FUSILADE CASE 7 RETURN RAPIDGT2 CASE 8 RETURN SULTAN CASE 9 RETURN ALPHA CASE 10 RETURN BESTIAGTS CASE 11 RETURN BLISTA2 CASE 12 RETURN BLISTA3 CASE 13 RETURN BUFFALO CASE 14 RETURN BUFFALO2 CASE 15 RETURN BUFFALO3 CASE 16 RETURN CARBONIZZARE CASE 17 RETURN ELEGY2 CASE 18 RETURN FELTZER3 CASE 19 RETURN FUROREGT CASE 20 RETURN FUTO CASE 21 RETURN JESTER CASE 22 RETURN JESTER2 CASE 23 RETURN KHAMELION CASE 24 RETURN KURUMA CASE 25 RETURN KURUMA2 CASE 26 RETURN MASSACRO CASE 27 RETURN MASSACRO2 CASE 28 RETURN NINEF CASE 29 RETURN PENUMBRA CASE 30 RETURN RAPIDGT CASE 31 RETURN SCHWARZER CASE 32 RETURN SEVEN70 CASE 33 RETURN SURANO CASE 34 RETURN VERLIERER2 CASE 35 RETURN TROPOS CASE 36 RETURN TAMPA2 CASE 37 RETURN OMNIS CASE 38 RETURN LYNX ENDSWITCH BREAK //coupes CASE FMMC_VEHICLE_CLASS_COUPES SWITCH iIndex CASE 0 RETURN COGCABRIO CASE 1 RETURN EXEMPLAR CASE 2 RETURN F620 CASE 3 RETURN FELON CASE 4 RETURN FELON2 CASE 5 RETURN JACKAL CASE 6 RETURN ORACLE CASE 7 RETURN ORACLE2 CASE 8 RETURN SENTINEL CASE 9 RETURN SENTINEL2 CASE 10 RETURN WINDSOR CASE 11 RETURN WINDSOR2 CASE 12 RETURN ZION CASE 13 RETURN ZION2 ENDSWITCH BREAK //muscle CASE FMMC_VEHICLE_CLASS_MUSCLE SWITCH iIndex CASE 0 RETURN BUCCANEER CASE 1 RETURN DOMINATOR CASE 2 RETURN GAUNTLET CASE 3 RETURN PHOENIX CASE 4 RETURN PICADOR CASE 5 RETURN RUINER CASE 6 RETURN SABREGT CASE 7 RETURN VIGERO CASE 8 RETURN BLADE CASE 9 RETURN BUCCANEER2 CASE 10 RETURN CHINO CASE 11 RETURN CHINO2 CASE 12 RETURN COQUETTE3 CASE 13 RETURN DOMINATOR2 CASE 14 RETURN DUKES CASE 15 RETURN DUKES2 CASE 16 RETURN FACTION CASE 17 RETURN FACTION2 CASE 18 RETURN FACTION3 CASE 19 RETURN GAUNTLET2 CASE 20 RETURN HOTKNIFE CASE 21 RETURN LURCHER CASE 22 RETURN MOONBEAM CASE 23 RETURN MOONBEAM2 CASE 24 RETURN NIGHTSHADE CASE 25 RETURN RATLOADER CASE 26 RETURN RATLOADER2 CASE 27 RETURN SABREGT2 CASE 28 RETURN SLAMVAN CASE 29 RETURN SLAMVAN2 CASE 30 RETURN SLAMVAN3 CASE 31 RETURN STALION CASE 32 RETURN STALION2 CASE 33 RETURN TAMPA CASE 34 RETURN VIRGO CASE 35 RETURN VIRGO2 CASE 36 RETURN VIRGO3 CASE 37 RETURN VOODOO CASE 38 RETURN VOODOO2 ENDSWITCH BREAK //classics CASE FMMC_VEHICLE_CLASS_CLASSICS SWITCH iIndex CASE 0 RETURN JB700 CASE 1 RETURN MONROE CASE 2 RETURN STINGER CASE 3 RETURN ZTYPE CASE 4 RETURN BTYPE CASE 5 RETURN BTYPE2 CASE 6 RETURN BTYPE3 CASE 7 RETURN CASCO CASE 8 RETURN COQUETTE2 CASE 9 RETURN MAMBA CASE 10 RETURN MANANA CASE 11 RETURN PEYOTE CASE 12 RETURN PIGALLE CASE 13 RETURN STINGER CASE 14 RETURN STINGERGT CASE 15 RETURN TORNADO CASE 16 RETURN TORNADO2 CASE 17 RETURN TORNADO3 CASE 18 RETURN TORNADO4 CASE 19 RETURN TORNADO5 ENDSWITCH BREAK //sedans CASE FMMC_VEHICLE_CLASS_SEDANS SWITCH iIndex CASE 0 RETURN ASEA CASE 1 RETURN ASTEROPE CASE 2 RETURN FUGITIVE CASE 3 RETURN PREMIER CASE 4 RETURN PRIMO CASE 5 RETURN SCHAFTER2 CASE 6 RETURN STANIER CASE 7 RETURN SUPERD CASE 8 RETURN SURGE CASE 9 RETURN TAILGATER CASE 10 RETURN WASHINGTON CASE 11 RETURN COG55 CASE 12 RETURN COGNOSCENTI CASE 13 RETURN COGNOSCENTI2 CASE 14 RETURN EMPEROR CASE 15 RETURN EMPEROR2 CASE 16 RETURN EMPEROR3 CASE 17 RETURN GLENDALE CASE 18 RETURN ASEA2 CASE 19 RETURN COG552 CASE 20 RETURN INGOT CASE 21 RETURN INTRUDER CASE 22 RETURN LIMO2 CASE 23 RETURN PRIMO2 CASE 24 RETURN REGINA CASE 25 RETURN ROMERO CASE 26 RETURN SCHAFTER3 CASE 27 RETURN SCHAFTER4 CASE 28 RETURN SCHAFTER5 CASE 29 RETURN SCHAFTER6 CASE 30 RETURN STRATUM CASE 31 RETURN STRETCH CASE 32 RETURN WARRENER ENDSWITCH BREAK //SUVs CASE FMMC_VEHICLE_CLASS_SUV SWITCH iIndex CASE 0 RETURN BALLER CASE 1 RETURN BALLER2 CASE 2 RETURN BJXL CASE 3 RETURN CAVALCADE CASE 4 RETURN CAVALCADE2 CASE 5 RETURN CRUSADER CASE 6 RETURN DUBSTA CASE 7 RETURN GRANGER CASE 8 RETURN GRESLEY CASE 9 RETURN LANDSTALKER CASE 10 RETURN MESA CASE 11 RETURN PRANGER CASE 12 RETURN RADI CASE 13 RETURN SEMINOLE CASE 14 RETURN SERRANO CASE 15 RETURN BALLER3 CASE 16 RETURN BALLER4 CASE 17 RETURN BALLER5 CASE 18 RETURN BALLER6 CASE 19 RETURN DUBSTA2 CASE 20 RETURN FQ2 CASE 21 RETURN HABANERO CASE 22 RETURN HUNTLEY CASE 23 RETURN MESA2 CASE 24 RETURN PATRIOT CASE 25 RETURN ROCOTO CASE 26 RETURN XLS CASE 27 RETURN XLS2 CASE 28 RETURN CONTENDER ENDSWITCH BREAK //COMPACTS CASE FMMC_VEHICLE_CLASS_COMPACTS SWITCH iIndex CASE 0 RETURN BLISTA CASE 1 RETURN DILETTANTE CASE 2 RETURN ISSI2 CASE 3 RETURN PRAIRIE CASE 4 RETURN DILETTANTE2 CASE 5 RETURN PANTO CASE 6 RETURN RHAPSODY CASE 7 RETURN BRIOSO ENDSWITCH BREAK //OFF Road CASE FMMC_VEHICLE_CLASS_OFF_ROAD SWITCH iIndex CASE 0 RETURN BFINJECTION CASE 1 RETURN BALLER CASE 2 RETURN BLAZER CASE 3 RETURN DLOADER CASE 4 RETURN DUNE CASE 5 RETURN PATRIOT CASE 6 RETURN SANCHEZ CASE 7 RETURN SANDKING CASE 8 RETURN PARADISE CASE 9 RETURN SANCHEZ2 CASE 10 RETURN GUARDIAN CASE 11 RETURN BIFTA CASE 12 RETURN BLAZER2 CASE 13 RETURN BLAZER3 CASE 14 RETURN BODHI2 CASE 15 RETURN BRAWLER CASE 16 RETURN DUBSTA3 CASE 17 RETURN INSURGENT2 CASE 18 RETURN KALAHARI CASE 19 RETURN MARSHALL CASE 20 RETURN MESA3 CASE 21 RETURN MONSTER CASE 22 RETURN RANCHERXL CASE 23 RETURN RANCHERXL2 CASE 24 RETURN REBEL CASE 25 RETURN REBEL2 CASE 26 RETURN SANDKING2 CASE 28 RETURN TROPHYTRUCK CASE 29 RETURN TROPHYTRUCK2 CASE 30 RETURN BF400 ENDSWITCH BREAK //Industrial CASE FMMC_VEHICLE_CLASS_INDUSTRIAL SWITCH iIndex CASE 0 RETURN BULLDOZER CASE 1 RETURN CUTTER CASE 2 RETURN DUMP CASE 3 RETURN HANDLER CASE 4 RETURN MIXER CASE 5 RETURN FLATBED CASE 6 RETURN GUARDIAN CASE 7 RETURN MIXER2 CASE 8 RETURN RUBBLE CASE 9 RETURN TIPTRUCK CASE 10 RETURN TIPTRUCK2 ENDSWITCH BREAK //Utility CASE FMMC_VEHICLE_CLASS_UTILITY SWITCH iIndex CASE 0 RETURN AIRTUG CASE 1 RETURN CADDY CASE 2 RETURN FAGGIO2 CASE 3 RETURN TRACTOR2 CASE 4 RETURN FORKLIFT CASE 5 RETURN MOWER CASE 6 RETURN RIPLEY CASE 7 RETURN ARMYTANKER CASE 8 RETURN SADLER CASE 9 RETURN SADLER2 CASE 10 RETURN SCRAP CASE 11 RETURN TOWTRUCK CASE 12 RETURN TOWTRUCK2 ENDSWITCH BREAK //Vans CASE FMMC_VEHICLE_CLASS_VANS SWITCH iIndex CASE 0 RETURN BOXVILLE CASE 1 RETURN BURRITO2 CASE 2 RETURN CAMPER CASE 3 RETURN SPEEDO2 CASE 4 RETURN JOURNEY CASE 5 RETURN PONY CASE 6 RETURN RUMPO CASE 7 RETURN SURFER CASE 8 RETURN TACO CASE 9 RETURN YOUGA CASE 10 RETURN BISON CASE 11 RETURN BISON2 CASE 12 RETURN BISON3 CASE 13 RETURN BOBCATXL CASE 14 RETURN BOXVILLE2 CASE 15 RETURN BOXVILLE3 CASE 16 RETURN BOXVILLE4 CASE 17 RETURN BURRITO CASE 18 RETURN BURRITO3 CASE 19 RETURN BURRITO4 CASE 20 RETURN BURRITO5 CASE 21 RETURN GBURRITO CASE 22 RETURN GBURRITO2 CASE 23 RETURN MINIVAN CASE 24 RETURN MINIVAN2 CASE 25 RETURN PARADISE CASE 26 RETURN PONY2 CASE 27 RETURN RUMPO2 CASE 28 RETURN RUMPO3 CASE 29 RETURN SPEEDO CASE 30 RETURN SURFER2 #IF FEATURE_COPS_N_CROOKS CASE 31 RETURN SURFER3 #ENDIF ENDSWITCH BREAK //bikes CASE FMMC_VEHICLE_CLASS_BIKES SWITCH iIndex CASE 0 RETURN AKUMA CASE 1 RETURN BAGGER CASE 2 RETURN BATI CASE 3 RETURN BATI2 CASE 4 RETURN BLAZER CASE 5 RETURN DAEMON CASE 6 RETURN DOUBLE CASE 7 RETURN NEMESIS CASE 8 RETURN PCJ CASE 9 RETURN RUFFIAN CASE 10 RETURN SANCHEZ CASE 11 RETURN SANCHEZ2 CASE 12 RETURN VADER CASE 13 RETURN CARBONRS CASE 14 RETURN ENDURO CASE 15 RETURN FAGGIO2 CASE 16 RETURN HAKUCHOU CASE 17 RETURN HEXER CASE 18 RETURN INNOVATION CASE 19 RETURN LECTRO CASE 20 RETURN SOVEREIGN CASE 21 RETURN THRUST CASE 22 RETURN VINDICATOR CASE 23 RETURN GARGOYLE CASE 24 RETURN CLIFFHANGER CASE 25 RETURN BF400 ENDSWITCH BREAK //cycles CASE FMMC_VEHICLE_CLASS_CYCLES SWITCH iIndex CASE 0 RETURN BMX CASE 1 RETURN CRUISER CASE 2 RETURN SCORCHER CASE 3 RETURN TRIBIKE CASE 4 RETURN TRIBIKE2 CASE 5 RETURN TRIBIKE3 ENDSWITCH BREAK // //boats // CASE FMMC_VEHICLE_CLASS_BOAT // SWITCH iIndex // CASE 0 RETURN Seashark // CASE 1 RETURN dinghy // CASE 2 RETURN jetmax // CASE 3 RETURN squalo // CASE 4 RETURN SUNTRAP // CASE 5 RETURN tropic // ENDSWITCH // BREAK // //heli // CASE FMMC_VEHICLE_CLASS_HELI // SWITCH iIndex // CASE 0 RETURN frogger // CASE 1 RETURN maverick // CASE 2 RETURN cargobob // CASE 3 RETURN annihilator // CASE 4 RETURN buzzard // CASE 5 RETURN buzzard2 // CASE 6 RETURN polmav // ENDSWITCH // BREAK // //planes // CASE FMMC_VEHICLE_CLASS_PLANE // SWITCH iIndex // CASE 0 RETURN cuban800 // CASE 1 RETURN duster // CASE 2 RETURN luxor // CASE 3 RETURN mammatus // CASE 4 RETURN Shamal // //CASE 5 RETURN jet // CASE 5 RETURN Stunt // CASE 6 RETURN velum // ENDSWITCH // BREAK ENDSWITCH RETURN DUMMY_MODEL_FOR_SCRIPT ENDFUNC FUNC BOOL CAN_VEHICLE_BE_REPAIRED_AT_MOD_SHOP(VEHICLE_INDEX vehID, BOOL bAllowCopVehicles) IF NOT DOES_ENTITY_EXIST(vehID) RETURN FALSE ENDIF IF NOT IS_VEHICLE_DRIVEABLE(vehID) RETURN FALSE ENDIF IF NOT IS_MODEL_A_VEHICLE(GET_ENTITY_MODEL(vehID)) RETURN FALSE ENDIF IF IS_BIG_VEHICLE(vehID) RETURN FALSE ENDIF IF NOT IS_THIS_MODEL_A_CAR(GET_ENTITY_MODEL(vehID)) AND NOT IS_THIS_MODEL_A_BIKE(GET_ENTITY_MODEL(vehID)) AND GET_ENTITY_MODEL(vehID) != BLAZER AND GET_ENTITY_MODEL(vehID) != BLAZER3 AND GET_ENTITY_MODEL(vehID) != BLAZER4 AND GET_ENTITY_MODEL(vehID) != CHIMERA RETURN FALSE ENDIF // Model checks... MODEL_NAMES eVehicleModel = GET_ENTITY_MODEL(vehID) // Service vehicles IF NOT bAllowCopVehicles IF eVehicleModel = POLICE OR eVehicleModel = POLICEOLD1 OR eVehicleModel = POLICEOLD2 OR eVehicleModel = POLICE2 OR eVehicleModel = POLICE3 OR eVehicleModel = POLICE4 OR eVehicleModel = FBI OR eVehicleModel = FBI2 OR eVehicleModel = POLMAV OR eVehicleModel = POLICEB OR eVehicleModel = POLICET OR eVehicleModel = RIOT OR eVehicleModel = SHERIFF OR eVehicleModel = SHERIFF2 OR eVehicleModel = PRANGER RETURN FALSE ENDIF ENDIF IF eVehicleModel = AMBULANCE OR eVehicleModel = FIRETRUK // OR eVehicleModel = TAXI // OR eVehicleModel = LGUARD OR eVehicleModel = RIPLEY // OR eVehicleModel = DILETTANTE2 OR eVehicleModel = AIRBUS OR eVehicleModel = AIRTUG RETURN FALSE ENDIF // Vans // IF eVehicleModel = BURRITO // OR eVehicleModel = RUMPO // OR eVehicleModel = SPEEDO // OR eVehicleModel = SPEEDO2 // OR eVehicleModel = SPEEDO3 // RETURN FALSE // ENDIF // Bikes IF eVehicleModel = SCORCHER OR eVehicleModel = BMX OR eVehicleModel = CRUISER OR eVehicleModel = FIXTER //OR eVehicleModel = SANCHEZ RETURN FALSE ENDIF // Misc IF eVehicleModel = CADDY OR eVehicleModel = FORKLIFT OR eVehicleModel = CADDY2 // OR eVehicleModel = DUNE // OR eVehicleModel = CRUSADER OR eVehicleModel = TRIBIKE OR eVehicleModel = TRIBIKE2 OR eVehicleModel = TRIBIKE3 OR eVehicleModel = TRACTOR OR eVehicleModel = TRACTOR2 OR eVehicleModel = MOWER // OR eVehicleModel = TORNADO4 OR eVehicleModel = DOCKTUG OR eVehicleModel = STRETCH // OR eVehicleModel = BISON2 // OR eVehicleModel = BISON3 OR eVehicleModel = BENSON // OR eVehicleModel = JB700 OR eVehicleModel = POUNDER OR eVehicleModel = EMPEROR3 RETURN FALSE ENDIF // Fix for bug # 1885426 - Block the monster vehicle IF eVehicleModel = MONSTER RETURN FALSE ENDIF // Fix for bug # 1876647 - Block the romero vehicle IF eVehicleModel = INT_TO_ENUM(MODEL_NAMES, HASH("ROMERO")) AND GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("Assassin_Skydive")) > 0 RETURN FALSE ENDIF // // Fix for bug # 1896081 - Block the Sovereign vehicle // IF eVehicleModel = INT_TO_ENUM(MODEL_NAMES, HASH("Sovereign")) // RETURN FALSE // ENDIF // Nothing failed so must be safe RETURN TRUE ENDFUNC #IF USE_TU_CHANGES FUNC BOOL IS_VEHICLE_MODEL_SAFE_FOR_MOD_SHOP(MODEL_NAMES eVehicleModel, BOOL bAllowCopVehicles, VEHICLE_MODEL_FAIL_ENUM &eFailReason) #IF IS_DEBUG_BUILD IF (g_SpawnData.bOverrideValidPVModelCheck) RETURN(TRUE) ENDIF #ENDIF // Service vehicles IF NOT bAllowCopVehicles IF eVehicleModel = POLICE OR eVehicleModel = POLICEOLD1 OR eVehicleModel = POLICEOLD2 OR eVehicleModel = POLICE2 OR eVehicleModel = POLICE3 OR eVehicleModel = POLICE4 OR eVehicleModel = FBI OR eVehicleModel = FBI2 OR eVehicleModel = POLMAV OR eVehicleModel = POLICEB OR eVehicleModel = POLICET OR eVehicleModel = RIOT OR eVehicleModel = SHERIFF OR eVehicleModel = PRANGER OR eVehicleModel = SHERIFF2 eFailReason = VEH_MODEL_FAIL_COP_VEHICLE RETURN FALSE ENDIF ENDIF IF eVehicleModel = AMBULANCE OR eVehicleModel = FIRETRUK OR eVehicleModel = TAXI OR eVehicleModel = LGUARD OR eVehicleModel = RIPLEY OR eVehicleModel = DILETTANTE2 OR eVehicleModel = AIRBUS OR eVehicleModel = AIRTUG eFailReason = VEH_MODEL_FAIL_INVALID_VEHICLE RETURN FALSE ENDIF // Vans IF eVehicleModel = BURRITO //OR eVehicleModel = RUMPO OR eVehicleModel = RUMPO2 OR eVehicleModel = SPEEDO OR eVehicleModel = SPEEDO2 // OR eVehicleModel = SPEEDO3 eFailReason = VEH_MODEL_FAIL_INVALID_VEHICLE RETURN FALSE ENDIF // Bikes IF eVehicleModel = SCORCHER OR eVehicleModel = BMX OR eVehicleModel = CRUISER OR eVehicleModel = FIXTER //OR eVehicleModel = SANCHEZ eFailReason = VEH_MODEL_FAIL_INVALID_VEHICLE RETURN FALSE ENDIF // Misc IF eVehicleModel = CADDY OR eVehicleModel = FORKLIFT OR eVehicleModel = CADDY2 //OR eVehicleModel = DUNE // Allowing this to fix 1762536 OR eVehicleModel = CRUSADER OR eVehicleModel = TRIBIKE OR eVehicleModel = TRIBIKE2 OR eVehicleModel = TRIBIKE3 OR eVehicleModel = TRACTOR OR eVehicleModel = TRACTOR2 OR eVehicleModel = MOWER OR eVehicleModel = TORNADO4 OR eVehicleModel = DOCKTUG OR eVehicleModel = STRETCH OR eVehicleModel = BISON2 OR eVehicleModel = BISON3 OR eVehicleModel = BENSON //OR eVehicleModel = JB700 // Allowing this for now to fix PT 1200777 OR eVehicleModel = POUNDER OR eVehicleModel = SUBMERSIBLE OR eVehicleModel = EMPEROR3 OR eVehicleModel = DUNE2 eFailReason = VEH_MODEL_FAIL_INVALID_VEHICLE RETURN FALSE ENDIF BOOL bAllowPlane = FALSE IF IS_PLAYER_IN_HANGAR(PLAYER_ID()) AND (IS_THIS_MODEL_A_HELI(eVehicleModel) OR IS_THIS_MODEL_A_PLANE(eVehicleModel)) bAllowPlane = TRUE ENDIF IF NOT IS_THIS_MODEL_A_CAR(eVehicleModel) AND NOT IS_THIS_MODEL_A_BIKE(eVehicleModel) AND eVehicleModel != BLAZER AND eVehicleModel != BLAZER2 AND eVehicleModel != BLAZER3 AND eVehicleModel != BLAZER4 AND eVehicleModel != BLAZER5 AND eVehicleModel != CHIMERA AND eVehicleModel != TRAILERLARGE AND eVehicleModel != TRAILERSMALL2 AND eVehicleModel != RROCKET AND eVehicleModel != STRYDER #IF FEATURE_HEIST_ISLAND AND eVehicleModel != VERUS #ENDIF AND NOT bAllowPlane eFailReason = VEH_MODEL_FAIL_INVALID_VEHICLE RETURN FALSE ENDIF // Fix for bug # 1885426 - Block the monster vehicle IF eVehicleModel = MONSTER eFailReason = VEH_MODEL_FAIL_INVALID_VEHICLE RETURN FALSE ENDIF // Fix for bug # 2139598 - Don't allow the Insurgent and TECHNICAL vehicles to be modded. IF eVehicleModel = INSURGENT OR eVehicleModel = TECHNICAL OR eVehicleModel = LIMO2 eFailReason = VEH_MODEL_FAIL_INVALID_VEHICLE RETURN FALSE ENDIF // // Fix for bug # 1896081 - Block the Sovereign vehicle // IF eVehicleModel = INT_TO_ENUM(MODEL_NAMES, HASH("Sovereign")) // eFailReason = VEH_MODEL_FAIL_INVALID_VEHICLE // RETURN FALSE // ENDIF // no longer need this check as assassin missions no longer exist bug 2323560 // Fix for bug # 1876647 - Block the romero vehicle // IF eVehicleModel = INT_TO_ENUM(MODEL_NAMES, HASH("ROMERO")) // AND GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("Assassin_Skydive")) > 0 // eFailReason = VEH_MODEL_FAIL_INVALID_VEHICLE // RETURN FALSE // ENDIF IF NETWORK_IS_GAME_IN_PROGRESS() IF IS_VEHICLE_MODEL_BLOCKED_IN_MP(eVehicleModel) eFailReason = VEH_MODEL_FAIL_INVALID_VEHICLE RETURN FALSE ENDIF ENDIF IF NOT NETWORK_IS_GAME_IN_PROGRESS() IF eVehicleModel = INSURGENT OR eVehicleModel = INSURGENT2 eFailReason = VEH_MODEL_FAIL_INVALID_VEHICLE ENDIF ENDIF RETURN TRUE ENDFUNC FUNC BOOL IS_MODEL_VALID_FOR_PERSONAL_VEHICLE(MODEL_NAMES eVehicleModel) #IF IS_DEBUG_BUILD IF (g_SpawnData.bOverrideValidPVModelCheck) RETURN(TRUE) ENDIF #ENDIF IF IS_THIS_MODEL_ALLOWED_IN_HANGAR(eVehicleModel) RETURN TRUE ENDIF IF eVehicleModel = BLAZER5 OR eVehicleModel = BOXVILLE5 OR eVehicleModel = DUNE5 //for sale variant OR eVehicleModel = PHANTOM2 OR eVehicleModel = RUINER2 OR eVehicleModel = TECHNICAL2 OR eVehicleModel = VOLTIC2 OR eVehicleModel = WASTELANDER OR eVehicleModel = TRAILERSMALL2 //need to be able to spawn through PI Menu OR eVehicleModel = TECHNICAL3 OR eVehicleModel = INSURGENT3 OR eVehicleModel = KHANJALI OR eVehicleModel = CHERNOBOG OR eVehicleModel = RIOT2 OR eVehicleModel = THRUSTER OR eVehicleModel = STROMBERG OR eVehicleModel = DELUXO OR eVehicleModel = SPEEDO4 OR eVehicleModel = MULE4 OR eVehicleModel = POUNDER2 OR eVehicleModel = OPPRESSOR2 RETURN TRUE ENDIF SWITCH eVehicleModel // banned models CASE AIRBUS CASE AIRTUG CASE AMBULANCE CASE Annihilator CASE armytanker CASE armytrailer CASE asea2 CASE baletrailer CASE Barracks CASE Barracks2 CASE Barracks3 CASE Benson CASE BESRA CASE Biff //CASE Bison2 //CASE Bison3 CASE BLIMP #IF IS_NEXTGEN_BUILD CASE BLIMP2 //CASE BLISTA3 #ENDIF CASE boattrailer CASE Boxville CASE Boxville2 CASE Boxville3 CASE BOXVILLE4 #IF IS_NEXTGEN_BUILD #ENDIF CASE bulldozer CASE Burrito CASE Burrito3 CASE Burrito4 CASE Burrito5 CASE Bus CASE Buzzard CASE Buzzard2 CASE caddy CASE Caddy2 CASE CAMPER CASE Cargobob CASE cargobob2 CASE Cargobob3 CASE cargoplane CASE Coach CASE Crusader CASE Cuban800 CASE cutter CASE Dilettante2 CASE Dinghy CASE dinghy2 CASE Dinghy3 CASE docktrailer CASE docktug #IF IS_NEXTGEN_BUILD CASE dodo //CASE Dukes2 #ENDIF CASE Dump CASE DUNE2 CASE Duster //CASE Emperor2 CASE Emperor3 CASE FBI CASE FBI2 CASE FIRETRUK CASE fixter CASE FLATBED CASE FORKLIFT CASE freight CASE freightcar CASE freightcont1 CASE freightcont2 CASE freightgrain CASE Frogger CASE frogger2 #IF IS_NEXTGEN_BUILD #ENDIF CASE Gburrito CASE graintrailer CASE handler CASE Hauler CASE HYDRA CASE INSURGENT CASE jet CASE Jetmax CASE Journey CASE Lazer CASE LIMO2 CASE Luxor CASE LUXOR2 CASE Mammatus #IF IS_NEXTGEN_BUILD CASE MARSHALL #ENDIF CASE Marquis CASE Maverick CASE Mesa2 CASE metrotrain CASE MONSTER // 1890168 CASE MILJET CASE Mixer CASE Mixer2 CASE Mower CASE Mule CASE Mule2 CASE MULE3 CASE Packer CASE pbus CASE Phantom CASE POLICE CASE POLICEB CASE POLICET CASE POLICEOLD1 CASE POLICEOLD2 CASE POLICE2 CASE POLICE3 CASE POLICE4 CASE POLMAV CASE pony CASE pony2 CASE Pounder CASE PRANGER CASE Predator CASE proptrailer CASE raketrailer CASE Rancherxl2 //CASE Rebel2 CASE Rentalbus CASE RHINO CASE RIOT CASE RIPLEY //CASE Romero CASE Rubble //CASE Rumpo CASE rumpo2 CASE sadler2 CASE savage CASE Scrap CASE Seashark CASE Seashark2 //CASE Seminole - removed for NT 1720373 CASE Shamal CASE SHERIFF CASE SHERIFF2 // CASE Slamvan2 CASE skylift CASE Speeder //CASE Speedo CASE Speedo2 CASE Squalo #IF IS_NEXTGEN_BUILD #ENDIF CASE stockade CASE stockade3 CASE Stretch CASE Stunt CASE Submersible #IF IS_NEXTGEN_BUILD CASE Submersible2 #ENDIF CASE Suntrap CASE Swift CASE SWIFT2 CASE Taco CASE tanker CASE tanker2 CASE tankercar CASE TAXI CASE TECHNICAL CASE TOWTRUCK CASE TOWTRUCK2 CASE TipTruck CASE TipTruck2 CASE Titan CASE TORO CASE TOURBUS CASE tr2 CASE tr3 CASE tr4 CASE TRACTOR CASE tractor2 CASE tractor3 CASE trailerlogs CASE trailers CASE trailers2 CASE trailers3 CASE trailersmall CASE Trash CASE Trash2 CASE trflat CASE Tropic CASE tvtrailer CASE utillitruck CASE utillitruck2 CASE Utillitruck3 CASE Valkyrie CASE Velum CASE Velum2 CASE Vestra CASE CARGOBOB4 CASE Dinghy4 CASE seashark3 CASE Speeder2 CASE toro2 CASE tropic2 CASE SUPERVOLITO CASE SUPERVOLITO2 CASE VALKYRIE2 CASE DUNE4 // Mission variant CASE RUINER3 CASE BRICKADE CASE HAULER2 CASE PHANTOM3 CASE YOUGA4 CASE VETIR CASE LONGFIN CASE PATROLBOAT // Reached case limit here. Add vehicles in below switch statement. NET_PRINT("IS_MODEL_VALID_FOR_PERSONAL_VEHICLE - returning false with model ") NET_PRINT(GET_MODEL_NAME_FOR_DEBUG(eVehicleModel)) NET_NL() RETURN(FALSE) BREAK ENDSWITCH SWITCH eVehicleModel CASE MULE5 #IF FEATURE_DLC_2_2022 CASE BRICKADE2 #ENDIF NET_PRINT("IS_MODEL_VALID_FOR_PERSONAL_VEHICLE - returning false with model ") NET_PRINT(GET_MODEL_NAME_FOR_DEBUG(eVehicleModel)) NET_NL() RETURN FALSE ENDSWITCH IF NOT IS_THIS_MODEL_A_CAR(eVehicleModel) AND NOT IS_THIS_MODEL_A_BIKE(eVehicleModel) AND NOT IS_THIS_MODEL_A_QUADBIKE(eVehicleModel) AND NOT IS_THIS_MODEL_A_BICYCLE(eVehicleModel) NET_PRINT("IS_MODEL_VALID_FOR_PERSONAL_VEHICLE - not a car, bike or quadbike. returning FALSE ") NET_PRINT(GET_MODEL_NAME_FOR_DEBUG(eVehicleModel)) NET_NL() RETURN FALSE ENDIF RETURN(TRUE) ENDFUNC #ENDIF FUNC BOOL IS_VEHICLE_ONLY_MODABLE_IN_DEFUNCT_BASE_MOD_SHOP(MODEL_NAMES vehModel) SWITCH vehModel CASE AVENGER CASE THRUSTER CASE RIOT2 CASE CHERNOBOG CASE KHANJALI RETURN TRUE BREAK ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL IS_VEHICLE_ALLOWED_IN_DEFUNCT_BASE_MOD_SHOP(MODEL_NAMES vehModel) // url:bugstar:7496072 - Facility - Can we please allow players to mod personal vehicles in the Facility without first needing to move it into the back of the Avenger? UNUSED_PARAMETER(vehModel) RETURN TRUE ENDFUNC FUNC BOOL IS_VEHICLE_ALLOWED_IN_BUSINESS_HUB_MOD_SHOP(MODEL_NAMES vehModel) IF vehModel = MULE4 OR vehModel = POUNDER2 OR vehModel = SPEEDO4 OR vehModel = TERBYTE RETURN TRUE ENDIF RETURN FALSE ENDFUNC #IF FEATURE_DLC_2_2022 FUNC BOOL IS_VEHICLE_ALLOWED_IN_JUGGALO_HIDEOUT_MOD_SHOP(MODEL_NAMES vehModel) IF vehModel = BRICKADE2 OR vehModel = MANCHEZ3 RETURN TRUE ENDIF RETURN FALSE ENDFUNC #ENDIF FUNC BOOL IS_VEHICLE_ALLOWED_IN_HACKER_TRUCK_MOD_SHOP(MODEL_NAMES vehModel) IF vehModel = OPPRESSOR2 RETURN TRUE ENDIF RETURN FALSE ENDFUNC FUNC BOOL IS_VEHICLE_AN_ARENA_CONTENDER_VEHICLE(MODEL_NAMES mnVehName) SWITCH mnVehName CASE SCARAB CASE BRUISER CASE CERBERUS CASE MONSTER3 CASE DOMINATOR4 CASE IMPALER2 CASE IMPERATOR CASE ISSI4 CASE DEATHBIKE CASE ZR380 CASE SLAMVAN4 CASE BRUTUS CASE IMPERATOR2 CASE IMPERATOR3 CASE DEATHBIKE3 CASE DEATHBIKE2 CASE IMPALER3 CASE BRUTUS2 CASE BRUISER2 CASE SLAMVAN5 CASE ISSI5 CASE MONSTER4 CASE SCARAB2 CASE CERBERUS2 CASE DOMINATOR5 CASE ZR3802 CASE IMPALER4 CASE BRUTUS3 CASE BRUISER3 CASE SLAMVAN6 CASE ISSI6 CASE MONSTER5 CASE SCARAB3 CASE CERBERUS3 CASE DOMINATOR6 CASE ZR3803 RETURN TRUE ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL IS_VEHICLE_AN_OPEN_WHEEL_VEHICLE(MODEL_NAMES mnVehName) SWITCH mnVehName CASE FORMULA CASE FORMULA2 CASE OPENWHEEL1 CASE OPENWHEEL2 RETURN TRUE ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL IS_VEHICLE_AN_GOKART_VEHICLE(MODEL_NAMES mnVehName) SWITCH mnVehName CASE VETO CASE VETO2 RETURN TRUE ENDSWITCH RETURN FALSE ENDFUNC #IF FEATURE_FIXER CONST_INT FIXER_VEH_HELP_CHAMPION 0 CONST_INT FIXER_VEH_HELP_BUFFALO4 1 CONST_INT FIXER_VEH_HELP_DEITY 2 CONST_INT FIXER_VEH_HELP_JUBILEE 3 CONST_INT FIXER_VEH_HELP_GRANGER2 4 CONST_INT FIXER_VEH_HELP_PATRIOT3 5 #IF FEATURE_DLC_1_2022 CONST_INT FIXER_VEH_HELP_GREENWOOD 6 CONST_INT FIXER_VEH_HELP_OMNISEGT 7 #ENDIF FUNC INT GET_FIXER_VEH_HELP_BIT(MODEL_NAMES mnVehName) SWITCH mnVehName CASE CHAMPION RETURN FIXER_VEH_HELP_CHAMPION CASE BUFFALO4 RETURN FIXER_VEH_HELP_BUFFALO4 CASE DEITY RETURN FIXER_VEH_HELP_DEITY CASE JUBILEE RETURN FIXER_VEH_HELP_JUBILEE CASE GRANGER2 RETURN FIXER_VEH_HELP_GRANGER2 CASE PATRIOT3 RETURN FIXER_VEH_HELP_PATRIOT3 #IF FEATURE_DLC_1_2022 CASE GREENWOOD RETURN FIXER_VEH_HELP_GREENWOOD CASE OMNISEGT RETURN FIXER_VEH_HELP_OMNISEGT #ENDIF ENDSWITCH RETURN -1 ENDFUNC #ENDIF CONST_INT TUNER_VEH_HELP_CALICO 0 CONST_INT TUNER_VEH_HELP_COMET6 1 CONST_INT TUNER_VEH_HELP_CYPHER 2 CONST_INT TUNER_VEH_HELP_DOMINATOR7 3 CONST_INT TUNER_VEH_HELP_JESTER4 4 CONST_INT TUNER_VEH_HELP_REMUS 5 CONST_INT TUNER_VEH_HELP_VECTRE 6 CONST_INT TUNER_VEH_HELP_ZR350 7 CONST_INT TUNER_VEH_HELP_WARRENER2 8 CONST_INT TUNER_VEH_HELP_RT3000 9 CONST_INT TUNER_VEH_HELP_FUTO2 10 CONST_INT TUNER_VEH_HELP_TAILGATER2 11 CONST_INT TUNER_VEH_HELP_SULTAN3 12 CONST_INT TUNER_VEH_HELP_DOMINATOR8 13 CONST_INT TUNER_VEH_HELP_EUROS 14 CONST_INT TUNER_VEH_HELP_GROWLER 15 CONST_INT TUNER_VEH_HELP_PREVION 16 FUNC INT GET_TUNER_VEH_HELP_BIT(MODEL_NAMES mnVehName) SWITCH mnVehName CASE CALICO RETURN TUNER_VEH_HELP_CALICO CASE COMET6 RETURN TUNER_VEH_HELP_COMET6 CASE CYPHER RETURN TUNER_VEH_HELP_CYPHER CASE DOMINATOR7 RETURN TUNER_VEH_HELP_DOMINATOR7 CASE JESTER4 RETURN TUNER_VEH_HELP_JESTER4 CASE REMUS RETURN TUNER_VEH_HELP_REMUS CASE VECTRE RETURN TUNER_VEH_HELP_VECTRE CASE ZR350 RETURN TUNER_VEH_HELP_ZR350 CASE WARRENER2 RETURN TUNER_VEH_HELP_WARRENER2 CASE RT3000 RETURN TUNER_VEH_HELP_RT3000 CASE FUTO2 RETURN TUNER_VEH_HELP_FUTO2 CASE TAILGATER2 RETURN TUNER_VEH_HELP_TAILGATER2 CASE SULTAN3 RETURN TUNER_VEH_HELP_SULTAN3 CASE DOMINATOR8 RETURN TUNER_VEH_HELP_DOMINATOR8 CASE EUROS RETURN TUNER_VEH_HELP_EUROS CASE GROWLER RETURN TUNER_VEH_HELP_GROWLER CASE PREVION RETURN TUNER_VEH_HELP_PREVION ENDSWITCH RETURN 0 ENDFUNC FUNC BOOL IS_VEHICLE_A_CAR_MEET_VEHICLE(MODEL_NAMES mnVehName) SWITCH mnVehName CASE CALICO CASE COMET6 CASE CYPHER CASE DOMINATOR7 CASE JESTER4 CASE REMUS CASE VECTRE CASE ZR350 CASE WARRENER2 CASE RT3000 CASE FUTO2 CASE TAILGATER2 CASE SULTAN3 CASE DOMINATOR8 CASE EUROS CASE GROWLER CASE PREVION RETURN TRUE ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL CAN_VEHICLE_USE_PV_STANCE(MODEL_NAMES eVehModel) IF IS_VEHICLE_A_CAR_MEET_VEHICLE(eVehModel) RETURN TRUE ENDIF #IF FEATURE_DLC_1_2022 SWITCH eVehModel CASE KANJOSJ CASE POSTLUDE RETURN TRUE BREAK ENDSWITCH #ENDIF RETURN FALSE ENDFUNC FUNC BOOL SHOULD_USE_WEAPONISED_VEHICLE_INSURANCE_CAP(MODEL_NAMES ModelName) SWITCH ModelName CASE APC CASE DUNE3 CASE HALFTRACK CASE OPPRESSOR CASE TAMPA3 CASE TECHNICAL3 CASE INSURGENT3 CASE VIGILANTE CASE BARRAGE CASE ARDENT CASE NIGHTSHARK CASE DELUXO CASE STROMBERG CASE COMET4 CASE REVOLTER CASE SAVESTRA CASE VISERIS CASE THRUSTER CASE RIOT2 CASE CHERNOBOG CASE KHANJALI CASE TECHNICAL2 CASE BOXVILLE5 CASE WASTELANDER CASE PHANTOM2 CASE VOLTIC2 CASE DUNE5 CASE RUINER2 CASE BLAZER5 CASE CARACARA CASE MULE4 CASE POUNDER2 CASE SCRAMJET CASE OPPRESSOR2 CASE MENACER CASE PARAGON2 #IF FEATURE_GEN9_EXCLUSIVE CASE IGNUS2 #ENDIF RETURN TRUE BREAK DEFAULT IF dummyWeaponsedVehicleCapModel != DUMMY_MODEL_FOR_SCRIPT IF dummyWeaponsedVehicleCapModel = ModelName RETURN TRUE ENDIF ENDIF IF IS_VEHICLE_AN_ARENA_CONTENDER_VEHICLE(ModelName) RETURN TRUE ENDIF BREAK ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL IS_MODEL_A_WEAPONISED_VEHICLE(MODEL_NAMES ModelName, BOOL bIncludeOppressor2 = FALSE) SWITCH ModelName CASE APC CASE DUNE3 CASE HALFTRACK CASE OPPRESSOR CASE TAMPA3 CASE TECHNICAL3 CASE INSURGENT3 CASE VIGILANTE CASE BARRAGE CASE MENACER CASE SCRAMJET // Don't add vehicles that can access LSC here (Ardent, Nightshark, Comet4, Viseris, Savestra etc) !!!! RETURN TRUE BREAK CASE OPPRESSOR2 IF bIncludeOppressor2 RETURN TRUE ENDIF BREAK ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL IS_VEHICLE_WEAPONISED_VEHICLE(VEHICLE_INDEX vehToCheck) IF NOT DOES_ENTITY_EXIST(vehToCheck) OR NOT IS_VEHICLE_DRIVEABLE(vehToCheck) RETURN FALSE ENDIF IF IS_MODEL_A_WEAPONISED_VEHICLE(GET_ENTITY_MODEL(vehToCheck)) RETURN TRUE ENDIF RETURN FALSE ENDFUNC FUNC BOOL IS_VEHICLE_MODEL_A_WEAPONISED_VEHICLE(MODEL_NAMES ModelName) SWITCH ModelName CASE APC CASE DUNE3 CASE HALFTRACK CASE OPPRESSOR CASE TAMPA3 CASE TECHNICAL3 CASE INSURGENT3 CASE VIGILANTE CASE BARRAGE CASE MENACER CASE SCRAMJET CASE LIMO2 CASE TECHNICAL CASE INSURGENT RETURN TRUE ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL IS_VEHICLE_MODEL_A_MONSTER_TRUCK(MODEL_NAMES ModelName) SWITCH ModelName CASE MONSTER CASE MONSTER3 CASE MONSTER4 CASE MONSTER5 CASE MARSHALL RETURN TRUE ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL IS_VEHICLE_A_SPECIAL_VEHICLE(MODEL_NAMES ModelName) SWITCH ModelName CASE PBUS CASE PBUS2 CASE DUNE2 CASE TAXI CASE BULLDOZER CASE SPEEDO2 CASE TRASH2 CASE BARRACKS2 CASE MIXER CASE TRACTOR RETURN TRUE ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL IS_VEHICLE_A_SERVICES_VEHICLE(MODEL_NAMES ModelName) SWITCH ModelName CASE MIXER2 CASE DUMP RETURN TRUE ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL IS_VEHICLE_MODEL_A_TRUCK(MODEL_NAMES ModelName) SWITCH ModelName CASE MULE CASE MULE2 CASE MULE3 CASE BRICKADE CASE DUNE CASE BOXVILLE CASE BOXVILLE2 CASE BOXVILLE3 CASE BOXVILLE4 CASE BOXVILLE5 RETURN TRUE ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL IS_VEHICLE_MODEL_A_SUBMARINE(MODEL_NAMES ModelName) SWITCH ModelName CASE SUBMERSIBLE CASE SUBMERSIBLE2 // Add submarines here RETURN TRUE ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL SHOULD_ALLOW_BIG_VEHICLE(VEHICLE_INDEX vehID) SWITCH GET_ENTITY_MODEL(vehID) CASE HALFTRACK CASE PHANTOM3 CASE HAULER2 CASE TRAILERLARGE CASE TRAILERSMALL2 CASE BRUISER CASE SCARAB CASE SCARAB2 CASE SCARAB3 CASE BRUISER2 CASE BRUISER3 RETURN TRUE BREAK CASE CERBERUS CASE CERBERUS2 CASE CERBERUS3 CASE MONSTER3 CASE MONSTER4 CASE MONSTER5 IF IS_PLAYER_IN_ARENA_GARAGE(PLAYER_ID()) RETURN TRUE ENDIF BREAK #IF FEATURE_CASINO_HEIST CASE MINITANK CASE BURRITO2 RETURN TRUE #ENDIF #IF FEATURE_COPS_N_CROOKS CASE POLICET2 RETURN TRUE #ENDIF ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL IS_VEHICLE_TOO_BIG_FOR_MOBILE_WORKSHOP(VEHICLE_INDEX vehToCheck) IF DOES_ENTITY_EXIST(vehToCheck) AND IS_VEHICLE_DRIVEABLE(vehToCheck) MODEL_NAMES eVehModel = GET_ENTITY_MODEL(vehToCheck) // --- General big vehicles --- IF (IS_BIG_VEHICLE(vehToCheck) AND NOT SHOULD_ALLOW_BIG_VEHICLE(vehToCheck)) OR IS_VEHICLE_MODEL_A_TRUCK(eVehModel) RETURN TRUE ENDIF // --- Specific vehicle models --- SWITCH eVehModel CASE SLAMTRUCK CASE PATRIOT2 CASE CARACARA CASE CARACARA2 CASE MULE4 CASE POUNDER2 CASE SPEEDO4 RETURN TRUE BREAK ENDSWITCH ENDIF RETURN FALSE ENDFUNC /// PURPOSE: /// This covers armory truck and aircraft /// PARAMS: /// vehToCheck - /// RETURNS: /// FUNC BOOL IS_VEHICLE_ALLOWED_IN_ARMORY_WORKSHOP(VEHICLE_INDEX vehToCheck) #IF IS_DEBUG_BUILD IF g_bAllowAllPremiumVehiclesToBeModified OR GET_COMMANDLINE_PARAM_EXISTS("sc_CanModAllVehicles") RETURN TRUE ENDIF #ENDIF IF NOT DOES_ENTITY_EXIST(vehToCheck) OR NOT IS_VEHICLE_DRIVEABLE(vehToCheck) OR IS_ENTITY_DEAD(vehToCheck) RETURN FALSE ENDIF IF IS_THIS_MODEL_A_BICYCLE(GET_ENTITY_MODEL(vehToCheck)) RETURN FALSE ENDIF IF IS_VEHICLE_UPGRADABLE_PEGASUS_VEHICLE(vehToCheck) RETURN TRUE ENDIF IF DECOR_EXIST_ON(vehToCheck,"Player_Vehicle") IF DECOR_GET_INT(vehToCheck, "Player_Vehicle") = NETWORK_HASH_FROM_PLAYER_HANDLE(PLAYER_ID()) IF NOT IS_VEHICLE_TOO_BIG_FOR_MOBILE_WORKSHOP(vehToCheck) RETURN TRUE // url:bugstar:7496127 ENDIF ENDIF ENDIF RETURN FALSE ENDFUNC FUNC BOOL ALLOW_TRANSFORM_VEHICLE(VEHICLE_INDEX vehID) IF IS_PLAYER_IN_ARMORY_AIRCRAFT(PLAYER_ID()) OR IS_PLAYER_IN_ARMORY_TRUCK(PLAYER_ID()) IF IS_VEHICLE_ALLOWED_IN_ARMORY_WORKSHOP(vehID) RETURN TRUE ENDIF ENDIF #IF IS_DEBUG_BUILD IF g_bAllowAllPremiumVehiclesToBeModified OR GET_COMMANDLINE_PARAM_EXISTS("sc_CanModAllVehicles") RETURN TRUE ENDIF #ENDIF RETURN FALSE ENDFUNC /// PURPOSE: Returns TRUE if the vehicle is of the correct type to use and in a suitable state FUNC BOOL IS_VEHICLE_SAFE_FOR_MOD_SHOP(VEHICLE_INDEX vehID, BOOL bAllowCopVehicles, VEHICLE_MODEL_FAIL_ENUM &eFailReason) eFailReason = VEH_MODEL_FAIL_DUMMY IF NOT DOES_ENTITY_EXIST(vehID) RETURN FALSE ENDIF IF NOT IS_VEHICLE_DRIVEABLE(vehID) RETURN FALSE ENDIF IF NOT IS_MODEL_A_VEHICLE(GET_ENTITY_MODEL(vehID)) PRINTLN("CAN_WE_USE_THIS_VEHICLE - false: Not a vehicle") RETURN FALSE ENDIF // Model checks... MODEL_NAMES eVehicleModel = GET_ENTITY_MODEL(vehID) #IF IS_DEBUG_BUILD IF (g_SpawnData.bOverrideValidPVModelCheck) RETURN(TRUE) ENDIF #ENDIF #IF USE_TU_CHANGES IF NOT IS_VEHICLE_MODEL_SAFE_FOR_MOD_SHOP(eVehicleModel, bAllowCopVehicles, eFailReason) AND NOT IS_PLAYER_IN_DEFUNCT_BASE(PLAYER_ID()) AND NOT ALLOW_TRANSFORM_VEHICLE(vehID) #IF IS_DEBUG_BUILD IF GET_COMMANDLINE_PARAM_EXISTS("sc_CanModAllVehicles") RETURN TRUE ENDIF #ENDIF PRINTLN("CAN_WE_USE_THIS_VEHICLE - false: Model not safe for mod shop") RETURN(FALSE) ENDIF #ENDIF IF IS_PLAYER_IN_DEFUNCT_BASE(PLAYER_ID()) IF IS_VEHICLE_ALLOWED_IN_DEFUNCT_BASE_MOD_SHOP(eVehicleModel) RETURN TRUE ELSE PRINTLN("CAN_WE_USE_THIS_VEHICLE - false only special vehicles allowed in defunct base mod shop") RETURN FALSE ENDIF ENDIF #IF NOT USE_TU_CHANGES // Service vehicles IF NOT bAllowCopVehicles IF eVehicleModel = POLICE OR eVehicleModel = POLICEOLD1 OR eVehicleModel = POLICEOLD2 OR eVehicleModel = POLICE2 OR eVehicleModel = POLICE3 OR eVehicleModel = POLICE4 OR eVehicleModel = FBI OR eVehicleModel = FBI2 OR eVehicleModel = POLMAV OR eVehicleModel = POLICEB OR eVehicleModel = POLICET OR eVehicleModel = RIOT OR eVehicleModel = SHERIFF OR eVehicleModel = PRANGER eFailReason = VEH_MODEL_FAIL_COP_VEHICLE RETURN FALSE ENDIF ENDIF IF eVehicleModel = AMBULANCE OR eVehicleModel = FIRETRUK OR eVehicleModel = TAXI OR eVehicleModel = LGUARD OR eVehicleModel = RIPLEY OR eVehicleModel = DILETTANTE2 OR eVehicleModel = AIRBUS OR eVehicleModel = AIRTUG eFailReason = VEH_MODEL_FAIL_INVALID_VEHICLE RETURN FALSE ENDIF // Vans IF eVehicleModel = BURRITO OR eVehicleModel = RUMPO OR eVehicleModel = RUMPO2 OR eVehicleModel = SPEEDO OR eVehicleModel = SPEEDO2 // OR eVehicleModel = SPEEDO3 eFailReason = VEH_MODEL_FAIL_INVALID_VEHICLE RETURN FALSE ENDIF // Bikes IF eVehicleModel = SCORCHER OR eVehicleModel = BMX OR eVehicleModel = CRUISER OR eVehicleModel = FIXTER //OR eVehicleModel = SANCHEZ eFailReason = VEH_MODEL_FAIL_INVALID_VEHICLE RETURN FALSE ENDIF // Misc IF eVehicleModel = CADDY OR eVehicleModel = FORKLIFT OR eVehicleModel = CADDY2 OR eVehicleModel = DUNE OR eVehicleModel = CRUSADER OR eVehicleModel = TRIBIKE OR eVehicleModel = TRIBIKE2 OR eVehicleModel = TRIBIKE3 OR eVehicleModel = TRACTOR OR eVehicleModel = TRACTOR2 OR eVehicleModel = MOWER OR eVehicleModel = TORNADO4 OR eVehicleModel = DOCKTUG OR eVehicleModel = STRETCH OR eVehicleModel = BISON2 OR eVehicleModel = BISON3 OR eVehicleModel = BENSON //OR eVehicleModel = JB700 // Allowing this for now to fix PT 1200777 OR eVehicleModel = POUNDER OR eVehicleModel = SUBMERSIBLE eFailReason = VEH_MODEL_FAIL_INVALID_VEHICLE RETURN FALSE ENDIF #ENDIF BOOL bAllowPlane = FALSE IF IS_PLAYER_IN_HANGAR(PLAYER_ID()) AND (IS_THIS_MODEL_A_HELI(eVehicleModel) OR IS_THIS_MODEL_A_PLANE(eVehicleModel)) bAllowPlane = TRUE ENDIF IF IS_BIG_VEHICLE(vehID) AND !SHOULD_ALLOW_BIG_VEHICLE(vehID) AND NOT bAllowPlane AND NOT (IS_VEHICLE_ALLOWED_IN_BUSINESS_HUB_MOD_SHOP(GET_ENTITY_MODEL(vehID)) AND IS_PLAYER_IN_BUSINESS_HUB(PLAYER_ID())) SWITCH GET_ENTITY_MODEL(vehID) CASE CERBERUS CASE CERBERUS2 CASE CERBERUS3 CASE MONSTER3 CASE MONSTER4 CASE MONSTER5 eFailReason = VEH_MODEL_FAIL_ARENA_TRUCK_ONLY BREAK DEFAULT eFailReason = VEH_MODEL_FAIL_INVALID_VEHICLE BREAK ENDSWITCH PRINTLN("CAN_WE_USE_THIS_VEHICLE - false: Big vehicle") RETURN FALSE ENDIF IF NOT NETWORK_IS_GAME_IN_PROGRESS() IF IS_VEHICLE_IN_TEMP_NPC_VEHICLE_ID_LIST(vehID) AND GET_ENTITY_MODEL(vehID) != SENTINEL2 AND GET_ENTITY_MODEL(vehID) != ISSI2 eFailReason = VEH_MODEL_FAIL_INVALID_VEHICLE RETURN FALSE ENDIF ENDIF // Nothing failed so must be safe RETURN TRUE ENDFUNC FUNC BOOL DOES_VEHICLE_BELONG_TO_SCRIPT_CLASS(MODEL_NAMES vehModel, INT iClass) INT iMaxVehiclesInAClass = GET_NUM_VEHICLES_IN_SCRIPT_CLASS(iClass) INT i REPEAT iMaxVehiclesInAClass i IF GET_VEHICLE_NAMES_FOR_SCRIPT_CLASS_FROM_INDEX(iClass,i) = vehModel RETURN TRUE ENDIF ENDREPEAT RETURN FALSE ENDFUNC FUNC VEHICLE_CLASS GET_CODE_VEHICLE_CLASS_FROM_SCRIPT_CLASS(INT iScriptClass) SWITCH iScriptClass CASE FMMC_VEHICLE_CLASS_COMPACTS RETURN VC_COMPACT BREAK CASE FMMC_VEHICLE_CLASS_SEDANS RETURN VC_SEDAN BREAK CASE FMMC_VEHICLE_CLASS_SUV RETURN VC_SUV BREAK CASE FMMC_VEHICLE_CLASS_COUPES RETURN VC_COUPE BREAK CASE FMMC_VEHICLE_CLASS_MUSCLE RETURN VC_MUSCLE BREAK CASE FMMC_VEHICLE_CLASS_CLASSICS RETURN VC_SPORT_CLASSIC BREAK CASE FMMC_VEHICLE_CLASS_SPORTS RETURN VC_SPORT BREAK CASE FMMC_VEHICLE_CLASS_SUPER RETURN VC_SUPER BREAK CASE FMMC_VEHICLE_CLASS_BIKES RETURN VC_MOTORCYCLE BREAK CASE FMMC_VEHICLE_CLASS_OFF_ROAD RETURN VC_OFF_ROAD BREAK CASE FMMC_VEHICLE_CLASS_INDUSTRIAL RETURN VC_INDUSTRIAL BREAK CASE FMMC_VEHICLE_CLASS_UTILITY RETURN VC_UTILITY BREAK CASE FMMC_VEHICLE_CLASS_VANS RETURN VC_VAN BREAK CASE FMMC_VEHICLE_CLASS_CYCLES RETURN VC_CYCLE BREAK CASE FMMC_VEHICLE_CLASS_OPEN_WHEEL RETURN VC_OPEN_WHEEL BREAK ENDSWITCH #IF IS_DEBUG_BUILD PRINTLN("GET_CODE_VEHICLE_CLASS_FROM_SCRIPT_CLASS: Trying to get a code class from an invalid script class!! Script class = ", iScriptClass) SCRIPT_ASSERT("GET_CODE_VEHICLE_CLASS_FROM_SCRIPT_CLASS: Trying to get a code class from an invalid script class!!") #ENDIF RETURN VC_COMPACT ENDFUNC FUNC BOOL IS_VEHICLE_AN_IMPORT_EXPORT_SPECIAL_VEHICLE(MODEL_NAMES mnVehName) SWITCH mnVehName CASE VOLTIC2 CASE RUINER2 CASE DUNE4 CASE DUNE5 CASE PHANTOM2 CASE TECHNICAL2 CASE BLAZER5 CASE BOXVILLE5 CASE WASTELANDER CASE RCBANDITO RETURN TRUE ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL IS_VEHICLE_AN_INVALID_IMPORT_EXPORT_SPECIAL_VEHICLE(MODEL_NAMES mnVehName) SWITCH mnVehName CASE DUNE4 CASE DUNE5 CASE PHANTOM2 CASE TECHNICAL2 CASE BOXVILLE5 CASE WASTELANDER RETURN TRUE ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL IS_VEHICLE_CONTENDER_BASE_VEHICLE(MODEL_NAMES modelToCheck) SWITCH modelToCheck CASE RATLOADER CASE RATLOADER2 CASE GLENDALE CASE GARGOYLE CASE DOMINATOR CASE ISSI3 RETURN TRUE BREAK ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL IS_VEHICLE_A_MONSTER(MODEL_NAMES mnVehName) SWITCH mnVehName CASE MONSTER3 CASE MONSTER4 CASE MONSTER5 RETURN TRUE ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL IS_VEHICLE_A_WEAPONISED_VEHICLE(MODEL_NAMES mnVehName) SWITCH mnVehName CASE APC CASE HALFTRACK CASE DUNE3 CASE OPPRESSOR CASE TAMPA3 CASE TRAILERSMALL2 CASE TRAILERLARGE CASE TECHNICAL3 CASE INSURGENT3 CASE PHANTOM3 CASE ARDENT CASE NIGHTSHARK CASE HAULER2 CASE CADDY3 CASE VIGILANTE CASE THRUSTER CASE DELUXO CASE STROMBERG CASE RIOT2 CASE CHERNOBOG CASE BARRAGE CASE KHANJALI CASE AVENGER CASE VOLATOL CASE AKULA CASE CARACARA CASE MENACER CASE SCRAMJET CASE OPPRESSOR2 CASE PARAGON2 CASE TOREADOR #IF FEATURE_GEN9_EXCLUSIVE CASE IGNUS2 #ENDIF RETURN TRUE ENDSWITCH IF IS_VEHICLE_AN_ARENA_CONTENDER_VEHICLE(mnVehName) RETURN TRUE ENDIF RETURN FALSE ENDFUNC FUNC BOOL MP_DOES_VEHICLE_BELONG_TO_CLASS(MODEL_NAMES vehModel, INT iClass, BOOL bIgnoreClass = FALSE) IF bIgnoreClass RETURN TRUE ENDIF IF IS_VEHICLE_AN_GOKART_VEHICLE(vehModel) AND iClass != FMMC_VEHICLE_CLASS_GOKART RETURN FALSE ENDIF SWITCH iClass CASE FMMC_VEHICLE_CLASS_SPECIAL CASE FMMC_VEHICLE_CLASS_WEAPONISED IF IS_VEHICLE_AN_IMPORT_EXPORT_SPECIAL_VEHICLE(vehModel) OR IS_VEHICLE_A_WEAPONISED_VEHICLE(vehModel) RETURN TRUE ENDIF BREAK CASE FMMC_VEHICLE_CLASS_CONTENDER IF IS_VEHICLE_AN_ARENA_CONTENDER_VEHICLE(vehModel) RETURN TRUE ENDIF BREAK CASE FMMC_VEHICLE_CLASS_OPEN_WHEEL IF IS_VEHICLE_AN_OPEN_WHEEL_VEHICLE(vehModel) RETURN TRUE ENDIF BREAK CASE FMMC_VEHICLE_CLASS_GOKART IF IS_VEHICLE_AN_GOKART_VEHICLE(vehModel) RETURN TRUE ENDIF BREAK #IF FEATURE_TUNER CASE FMMC_VEHICLE_CLASS_TUNER IF IS_VEHICLE_A_CAR_MEET_VEHICLE(vehModel) RETURN TRUE ENDIF BREAK #ENDIF CASE FMMC_VEHICLE_CLASS_HSW #IF FEATURE_GEN9_EXCLUSIVE IF IS_VEHICLE_MODEL_A_HSW_VEHICLE(vehModel) RETURN TRUE ENDIF #ENDIF BREAK CASE FMMC_VEHICLE_CLASS_HSW_T1 #IF FEATURE_GEN9_EXCLUSIVE IF IS_VEHICLE_MODEL_IN_HSW_TIER_1(vehModel) RETURN TRUE ENDIF #ENDIF BREAK CASE FMMC_VEHICLE_CLASS_HSW_T2 #IF FEATURE_GEN9_EXCLUSIVE IF IS_VEHICLE_MODEL_IN_HSW_TIER_2(vehModel) RETURN TRUE ENDIF #ENDIF BREAK CASE FMMC_VEHICLE_CLASS_HSW_T3 #IF FEATURE_GEN9_EXCLUSIVE IF IS_VEHICLE_MODEL_IN_HSW_TIER_3(vehModel) RETURN TRUE ENDIF #ENDIF BREAK DEFAULT IF DOES_VEHICLE_BELONG_TO_SCRIPT_CLASS(vehModel,iClass) RETURN TRUE ELIF (iClass = FMMC_VEHICLE_CLASS_CUSTOM) // RETURN TRUE ELSE IF GET_VEHICLE_CLASS_FROM_NAME(vehModel) = GET_CODE_VEHICLE_CLASS_FROM_SCRIPT_CLASS(iClass) RETURN TRUE ENDIF ENDIF BREAK ENDSWITCH RETURN FALSE ENDFUNC FUNC INT GET_VEHICLE_CLASSES_BS(MODEL_NAMES modelName) INT iReturnedBS INT i REPEAT FMMC_VEHICLE_CLASS_MAX+ciVEHICLE_CLASS_MAX_OFFSET-1 i IF MP_DOES_VEHICLE_BELONG_TO_CLASS(modelName,i) SET_BIT(iReturnedBS,i) ENDIF ENDREPEAT RETURN iReturnedBS ENDFUNC FUNC BOOL GET_CARMOD_UNLOCK_PERFORMANCE_RACES_FROM_MOD_TYPE(MODEL_NAMES eModel, MOD_TYPE eType, INT iItem, CARMOD_UNLOCK_PERFORMANCE_RACES &eMod) IF NOT NETWORK_IS_GAME_IN_PROGRESS() RETURN FALSE ENDIF INT iVehicleClassesBS = GET_VEHICLE_CLASSES_BS(eModel) eMod = CARMOD_UNLOCK_PERFORMANCE_RACES_INVALID IF eType = MOD_ENGINE IF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_COMPACTS) IF iItem = 1 eMod = COMPACTS_EMS1 ELIF iItem = 2 eMod = COMPACTS_EMS2 ELIF iItem = 3 eMod = COMPACTS_EMS3 ELIF iItem >= 4 eMod = COMPACTS_EMS4 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_SEDANS) IF iItem = 1 eMod = SEDANS_EMS1 ELIF iItem = 2 eMod = SEDANS_EMS2 ELIF iItem = 3 eMod = SEDANS_EMS3 ELIF iItem >= 4 eMod = SEDANS_EMS4 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_SUV) IF iItem = 1 eMod = SUVS_EMS1 ELIF iItem = 2 eMod = SUVS_EMS2 ELIF iItem = 3 eMod = SUVS_EMS3 ELIF iItem >= 4 eMod = SUVS_EMS4 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_COUPES) IF iItem = 1 eMod = COUPES_EMS1 ELIF iItem = 2 eMod = COUPES_EMS2 ELIF iItem = 3 eMod = COUPES_EMS3 ELIF iItem >= 4 eMod = COUPES_EMS4 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_MUSCLE) IF iItem = 1 eMod = MUSCLE_EMS1 ELIF iItem = 2 eMod = MUSCLE_EMS2 ELIF iItem = 3 eMod = MUSCLE_EMS3 ELIF iItem >= 4 eMod = MUSCLE_EMS4 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_CLASSICS) IF iItem = 1 eMod = SPORTSCLASSICS_EMS1 ELIF iItem = 2 eMod = SPORTSCLASSICS_EMS2 ELIF iItem = 3 eMod = SPORTSCLASSICS_EMS3 ELIF iItem >= 4 eMod = SPORTSCLASSICS_EMS4 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_SPORTS) IF iItem = 1 eMod = SPORTS_EMS1 ELIF iItem = 2 eMod = SPORTS_EMS2 ELIF iItem = 3 eMod = SPORTS_EMS3 ELIF iItem >= 4 eMod = SPORTS_EMS4 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_SUPER) IF iItem = 1 eMod = SUPER_EMS1 ELIF iItem = 2 eMod = SUPER_EMS2 ELIF iItem = 3 eMod = SUPER_EMS3 ELIF iItem >= 4 eMod = SUPER_EMS4 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_BIKES) IF iItem = 1 eMod = MOTORBIKES_EMS1 ELIF iItem = 2 eMod = MOTORBIKES_EMS2 ELIF iItem = 3 eMod = MOTORBIKES_EMS3 ELIF iItem >= 4 eMod = MOTORBIKES_EMS4 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_OFF_ROAD) IF iItem = 1 eMod = OFFROAD_EMS1 ELIF iItem = 2 eMod = OFFROAD_EMS2 ELIF iItem = 3 eMod = OFFROAD_EMS3 ELIF iItem >= 4 eMod = OFFROAD_EMS4 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_UTILITY) IF iItem = 1 eMod = UTILITY_EMS1 ELIF iItem = 2 eMod = UTILITY_EMS2 ELIF iItem = 3 eMod = UTILITY_EMS3 ELIF iItem >= 4 eMod = UTILITY_EMS4 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_VANS) IF iItem = 1 eMod = VANS_EMS1 ELIF iItem = 2 eMod = VANS_EMS2 ELIF iItem = 3 eMod = VANS_EMS3 ELIF iItem >= 4 eMod = VANS_EMS4 ENDIF ENDIF ELIF eType = MOD_TOGGLE_TURBO IF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_COMPACTS) IF iItem = 1 eMod = COMPACTS_TURBO ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_SEDANS) IF iItem = 1 eMod = SEDANS_TURBO ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_SUV) IF iItem = 1 eMod = SUVS_TURBO ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_COUPES) IF iItem = 1 eMod = COUPES_TURBO ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_MUSCLE) IF iItem = 1 eMod = MUSCLE_TURBO ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_CLASSICS) IF iItem = 1 eMod = SPORTSCLASSICS_TURBO ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_SPORTS) IF iItem = 1 eMod = SPORTS_TURBO ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_SUPER) IF iItem = 1 eMod = SUPER_TURBO ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_BIKES) IF iItem = 1 eMod = MOTORBIKES_TURBO ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_OFF_ROAD) IF iItem = 1 eMod = OFFROAD_TURBO ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_UTILITY) IF iItem = 1 eMod = UTILITY_TURBO ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_VANS) IF iItem = 1 eMod = VANS_TURBO ENDIF ENDIF ELIF eType = MOD_GEARBOX IF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_COMPACTS) IF iItem = 1 eMod = COMPACTS_GEARBOX ELIF iItem = 2 eMod = COMPACTS_GEARBOX2 ELIF iItem = 3 OR iItem > 4 eMod = COMPACTS_GEARBOX3 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_SEDANS) IF iItem = 1 eMod = SEDANS_GEARBOX ELIF iItem = 2 eMod = SEDANS_GEARBOX2 ELIF iItem = 3 OR iItem >= 4 eMod = SEDANS_GEARBOX3 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_SUV) IF iItem = 1 eMod = SUVS_GEARBOX ELIF iItem = 2 eMod = SUVS_GEARBOX2 ELIF iItem = 3 OR iItem >= 4 eMod = SUVS_GEARBOX3 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_COUPES) IF iItem = 1 eMod = COUPES_GEARBOX ELIF iItem = 2 eMod = COUPES_GEARBOX2 ELIF iItem = 3 OR iItem >= 4 eMod = COUPES_GEARBOX3 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_MUSCLE) IF iItem = 1 eMod = MUSCLE_GEARBOX ELIF iItem = 2 eMod = MUSCLE_GEARBOX2 ELIF iItem = 3 OR iItem >= 4 eMod = MUSCLE_GEARBOX3 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_CLASSICS) IF iItem = 1 eMod = SPORTSCLASSICS_GEARBOX ELIF iItem = 2 eMod = SPORTSCLASSICS_GEARBOX2 ELIF iItem = 3 OR iItem >= 4 eMod = SPORTSCLASSICS_GEARBOX3 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_SPORTS) IF iItem = 1 eMod = SPORTS_GEARBOX ELIF iItem = 2 eMod = SPORTS_GEARBOX2 ELIF iItem = 3 OR iItem >= 4 eMod = SPORTS_GEARBOX3 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_SUPER) IF iItem = 1 eMod = SUPER_GEARBOX ELIF iItem = 2 eMod = SUPER_GEARBOX2 ELIF iItem = 3 eMod = SUPER_GEARBOX3 //url:bugstar:2663803 - Can we add an unlock requirement on the 5th level Super Transmission on the SultanRS?(Same as the 4th transmission unlock criteria) ELIF iItem >= 4 eMod = SUPER_GEARBOX3 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_BIKES) IF iItem = 1 eMod = MOTORBIKES_GEARBOX ELIF iItem = 2 eMod = MOTORBIKES_GEARBOX2 ELIF iItem = 3 OR iItem >= 4 eMod = MOTORBIKES_GEARBOX3 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_OFF_ROAD) IF iItem = 1 eMod = OFFROAD_GEARBOX ELIF iItem = 2 eMod = OFFROAD_GEARBOX2 ELIF iItem = 3 OR iItem >= 4 eMod = OFFROAD_GEARBOX3 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_UTILITY) IF iItem = 1 eMod = UTILITY_GEARBOX ELIF iItem = 2 eMod = UTILITY_GEARBOX2 ELIF iItem = 3 OR iItem >= 4 eMod = UTILITY_GEARBOX3 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_VANS) IF iItem = 1 eMod = VANS_GEARBOX ELIF iItem = 2 eMod = VANS_GEARBOX2 ELIF iItem = 3 OR iItem >= 4 eMod = VANS_GEARBOX3 ENDIF ENDIF ELIF eType = MOD_BRAKES IF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_COMPACTS) IF iItem = 1 eMod = COMPACTS_BRAKES ELIF iItem = 2 eMod = COMPACTS_BRAKES2 ELIF iItem >= 3 eMod = COMPACTS_BRAKES3 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_SEDANS) IF iItem = 1 eMod = SEDANS_BRAKES ELIF iItem = 2 eMod = SEDANS_BRAKES2 ELIF iItem >= 3 eMod = SEDANS_BRAKES3 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_SUV) IF iItem = 1 eMod = SUVS_BRAKES ELIF iItem = 2 eMod = SUVS_BRAKES2 ELIF iItem >= 3 eMod = SUVS_BRAKES3 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_COUPES) IF iItem = 1 eMod = COUPES_BRAKES ELIF iItem = 2 eMod = COUPES_BRAKES2 ELIF iItem >= 3 eMod = COUPES_BRAKES3 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_MUSCLE) IF iItem = 1 eMod = MUSCLE_BRAKES ELIF iItem = 2 eMod = MUSCLE_BRAKES2 ELIF iItem >= 3 eMod = MUSCLE_BRAKES3 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_CLASSICS) IF iItem = 1 eMod = SPORTSCLASSICS_BRAKES ELIF iItem = 2 eMod = SPORTSCLASSICS_BRAKES2 ELIF iItem >= 3 eMod = SPORTSCLASSICS_BRAKES3 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_SPORTS) IF iItem = 1 eMod = SPORTS_BRAKES ELIF iItem = 2 eMod = SPORTS_BRAKES2 ELIF iItem >= 3 eMod = SPORTS_BRAKES3 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_SUPER) IF iItem = 1 eMod = SUPER_BRAKES ELIF iItem = 2 eMod = SUPER_BRAKES2 ELIF iItem >= 3 eMod = SUPER_BRAKES3 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_BIKES) IF iItem = 1 eMod = MOTORBIKES_BRAKES ELIF iItem = 2 eMod = MOTORBIKES_BRAKES2 ELIF iItem >= 3 eMod = MOTORBIKES_BRAKES3 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_OFF_ROAD) IF iItem = 1 eMod = OFFROAD_BRAKES ELIF iItem = 2 eMod = OFFROAD_BRAKES2 ELIF iItem >= 3 eMod = OFFROAD_BRAKES3 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_UTILITY) IF iItem = 1 eMod = UTILITY_BRAKES ELIF iItem = 2 eMod = UTILITY_BRAKES2 ELIF iItem >= 3 eMod = UTILITY_BRAKES3 ENDIF ELIF IS_BIT_SET(iVehicleClassesBS, FMMC_VEHICLE_CLASS_VANS) IF iItem = 1 eMod = VANS_BRAKES ELIF iItem = 2 eMod = VANS_BRAKES2 ELIF iItem >= 3 eMod = VANS_BRAKES3 ENDIF ENDIF ENDIF RETURN (eMod != CARMOD_UNLOCK_PERFORMANCE_RACES_INVALID) ENDFUNC PROC GET_MAX_STATS_FOR_VEHICLE(MODEL_NAMES modelName, FLOAT& fMaxStats[]) INT j //INT iValueMax[ciVEHICLE_STAT_BOX_MAX] FLOAT fCurrentValue[4] CONST_FLOAT cfVOLTIC_ACCELERATION_MULTIPLIER 2.0 CONST_FLOAT cfTEZERACT_ACCELERATION_MULTIPLIER 2.6753 //(0.9198/0.3438) CONST_FLOAT cfCYCLE_MULTIPLIER 0.50 FLOAT fMultiplier IF IS_VEHICLE_A_CYCLE(modelName) fMultiplier = cfCYCLE_MULTIPLIER ELSE fMultiplier = 1.0 ENDIF IF modelName != DUMMY_MODEL_FOR_SCRIPT REPEAT 4 j SWITCH j CASE 0 fCurrentValue[j] = GET_VEHICLE_MODEL_ESTIMATED_MAX_SPEED(modelName) BREAK CASE 1 IF modelName = VOLTIC fCurrentValue[j] = GET_VEHICLE_MODEL_ACCELERATION(modelName) * cfVOLTIC_ACCELERATION_MULTIPLIER ELIF modelName = TEZERACT fCurrentValue[j] = GET_VEHICLE_MODEL_ACCELERATION(modelName) * cfTEZERACT_ACCELERATION_MULTIPLIER ELSE fCurrentValue[j] = GET_VEHICLE_MODEL_ACCELERATION(modelName) * fMultiplier ENDIF BREAK CASE 2 fCurrentValue[j] = GET_VEHICLE_MODEL_MAX_BRAKING(modelName) * fMultiplier BREAK CASE 3 fCurrentValue[j] = GET_VEHICLE_MODEL_MAX_TRACTION(modelName) BREAK ENDSWITCH IF fMaxStats[j] < fCurrentValue[j] fMaxStats[j] = fCurrentValue[j] ENDIF ENDREPEAT ENDIF ENDPROC PROC MPSV_GET_SAVE_SLOT_FROM_DISPLAY_SLOT(INT iDisplaySlot, INT &iSaveSlot, BOOL bPrint = TRUE) IF g_sMPTunables.bDisableDisplaySlots iSaveSlot = iDisplaySlot PRINTLN("g_sMPTunables.bDisableDisplaySlots setting iSaveSlot = iDisplaySlot ") ENDIF IF iDisplaySlot >= 0 iSaveSlot = g_iMPSV_DisplaySlotArray[iDisplaySlot]-MPSV_DISPLAY_VEHICLE_OFFSET IF bPrint IF (GET_FRAME_COUNT() % 5) = 0 //PRINTLN("MPSV: MPSV_GET_SAVE_SLOT_FROM_DISPLAY_SLOT display slot #",iDisplaySlot," = saveSlot #",iSaveSlot) ENDIF ENDIF ELSE iSaveSlot = -1 DEBUG_PRINTCALLSTACK() PRINTLN("MPSV: MPSV_GET_SAVE_SLOT_FROM_DISPLAY_SLOT invalid display slot passed in!") ENDIF ENDPROC FUNC STATS_PACKED MPSV_GET_DISPLAY_SLOT_STAT_OFFSET(INT iOffset) IF iOffset < DISPLAY_SLOT_MODDED_ARMOURY_TRUCK IF iOffset <= 38 RETURN INT_TO_ENUM(STATS_PACKED,ENUM_TO_INT(START_NG_VEHICLE_DISPLAY_SLOT)+iOffset) ELIF iOffset <= 48 RETURN INT_TO_ENUM(STATS_PACKED,ENUM_TO_INT(START_LR_VEHICLE_DISPLAY_SLOT)+iOffset-39) ELIF iOffset <= 51 RETURN INT_TO_ENUM(STATS_PACKED,ENUM_TO_INT(START_LR_VEHICLE_DISPLAY_SLOT_CYCLE)+iOffset-49) ELIF iOffset <= 64 RETURN INT_TO_ENUM(STATS_PACKED,ENUM_TO_INT(START_APARTMENT_VEHICLE_DISPLAY_SLOT)+iOffset-52) ELIF iOffset <= MP_PROP_BIKE_INDEX_18 RETURN INT_TO_ENUM(STATS_PACKED,ENUM_TO_INT(START_BIKER_VEHICLE_DISPLAY_SLOT)+iOffset-65) ELSE RETURN INT_TO_ENUM(STATS_PACKED,ENUM_TO_INT(START_IMPEXP_VEHICLE_DISPLAY_SLOT)+iOffset-88) ENDIF ELIF iOffset = DISPLAY_SLOT_MODDED_ARMOURY_TRUCK RETURN INT_TO_ENUM(STATS_PACKED,ENUM_TO_INT(START_GUNRUN_VEHICLE_DISPLAY_SLOT)) ELIF iOffset < DISPLAY_SLOT_RCCAR+EXCESS_ARENAWARS_DISPLAY_SLOTS_OFFSET IF iOffset < DISPLAY_SLOT_END_HANGAR + EXCESS_HANGER_DISPLAY_SLOTS RETURN INT_TO_ENUM(STATS_PACKED,ENUM_TO_INT(START_SMUGGLER_VEHICLE_DISPLAY_SLOT)+iOffset-159) ELIF iOffset < DISPLAY_SLOT_AVENGER_HELI + EXCESS_DEFUNCBASE_DISPLAY_SLOTS_OFFSET RETURN INT_TO_ENUM(STATS_PACKED,ENUM_TO_INT(START_GANGOPS_VEHICLE_DISPLAY_SLOT)+iOffset-(DISPLAY_SLOT_END_HANGAR + EXCESS_HANGER_DISPLAY_SLOTS )) ELIF iOffset < DISPLAY_SLOT_CLUBPOUNDER+EXCESS_BUSINESS_BATTLE_DISPLAY_SLOTS_OFFSET RETURN INT_TO_ENUM(STATS_PACKED,ENUM_TO_INT(START_BUSINESSBAT_VEHICLE_DISPLAY_SLOT)+iOffset-(DISPLAY_SLOT_AVENGER_HELI + EXCESS_DEFUNCBASE_DISPLAY_SLOTS_OFFSET)) ELSE RETURN INT_TO_ENUM(STATS_PACKED,ENUM_TO_INT(START_ARENAWARS_VEHICLE_DISPLAY_SLOT)+iOffset-(DISPLAY_SLOT_CLUBPOUNDER+EXCESS_BUSINESS_BATTLE_DISPLAY_SLOTS_OFFSET)) ENDIF ELIF iOffset < DISPLAY_SLOT_END_CASINO_GARAGE+EXCESS_CASINO_DISPLAY_SLOTS_OFFSET RETURN INT_TO_ENUM(STATS_PACKED,ENUM_TO_INT(START_CASINO_VEHICLE_DISPLAY_SLOT)+iOffset-(DISPLAY_SLOT_RCCAR+EXCESS_ARENAWARS_DISPLAY_SLOTS_OFFSET)) ELIF iOffset < DISPLAY_SLOT_RC_TANK+EXCESS_ARCADE_DISPLAY_SLOTS_OFFSET RETURN INT_TO_ENUM(STATS_PACKED,ENUM_TO_INT(START_ARCADE_VEHICLE_DISPLAY_SLOT)+iOffset-(DISPLAY_SLOT_END_CASINO_GARAGE+EXCESS_CASINO_DISPLAY_SLOTS_OFFSET)) ELIF iOffset < DISPLAY_SLOT_END_PROPERTY_8 RETURN INT_TO_ENUM(STATS_PACKED,ENUM_TO_INT(START_CNC_VEHICLE_DISPLAY_SLOT)+iOffset-(DISPLAY_SLOT_RC_TANK+EXCESS_ARCADE_DISPLAY_SLOTS_OFFSET)) ELIF iOffset < DISPLAY_SLOT_START_SECURITY_OFFICE RETURN INT_TO_ENUM(STATS_PACKED,ENUM_TO_INT(START_TUNER_VEHICLE_DISPLAY_SLOT)+iOffset-(DISPLAY_SLOT_END_PROPERTY_8)) ELIF iOffset < DISPLAY_SLOT_START_PROPERTY_9 RETURN INT_TO_ENUM(STATS_PACKED,ENUM_TO_INT(START_FIXER_VEHICLE_DISPLAY_SLOT)+iOffset-(DISPLAY_SLOT_START_SECURITY_OFFICE)) #IF FEATURE_DLC_1_2022 ELIF iOffset < MAX_MP_SAVED_VEHICLES //MAX_MP_SAVED_VEHICLES RETURN INT_TO_ENUM(STATS_PACKED,ENUM_TO_INT(START_SUM22_VEHICLE_DISPLAY_SLOT)+iOffset-(DISPLAY_SLOT_START_PROPERTY_9)) #ENDIF ENDIF RETURN INT_TO_ENUM(STATS_PACKED,ENUM_TO_INT(START_NG_VEHICLE_DISPLAY_SLOT)+iOffset) ENDFUNC FUNC STATS_PACKED MPSV_GET_DISPLAY_SLOT_STAT_OFFSET_PART_2(INT iOffset) IF iOffset < DISPLAY_SLOT_RCCAR+EXCESS_ARENAWARS_DISPLAY_SLOTS_OFFSET RETURN INT_TO_ENUM(STATS_PACKED,ENUM_TO_INT(START_ARENAWARS_VEHICLE_DISPLAY_SLOT_2)+iOffset) ELIF iOffset < DISPLAY_SLOT_END_CASINO_GARAGE+EXCESS_CASINO_DISPLAY_SLOTS_OFFSET RETURN INT_TO_ENUM(STATS_PACKED,ENUM_TO_INT(START_CASINO_VEHICLE_DISPLAY_SLOT_2)+iOffset-(DISPLAY_SLOT_RCCAR+EXCESS_ARENAWARS_DISPLAY_SLOTS_OFFSET)) ELIF iOffset < DISPLAY_SLOT_RC_TANK+EXCESS_ARCADE_DISPLAY_SLOTS_OFFSET RETURN INT_TO_ENUM(STATS_PACKED,ENUM_TO_INT(START_ARCADE_VEHICLE_DISPLAY_SLOT_2)+iOffset-(DISPLAY_SLOT_END_CASINO_GARAGE+EXCESS_CASINO_DISPLAY_SLOTS_OFFSET)) ELIF iOffset < DISPLAY_SLOT_END_PROPERTY_8 RETURN INT_TO_ENUM(STATS_PACKED,ENUM_TO_INT(START_CNC_VEHICLE_DISPLAY_SLOT_2)+iOffset-(DISPLAY_SLOT_RC_TANK+EXCESS_ARCADE_DISPLAY_SLOTS_OFFSET)) ELIF iOffset < DISPLAY_SLOT_START_SECURITY_OFFICE RETURN INT_TO_ENUM(STATS_PACKED,ENUM_TO_INT(START_TUNER_VEHICLE_DISPLAY_SLOT_2)+iOffset-(DISPLAY_SLOT_END_PROPERTY_8)) ELIF iOffset < DISPLAY_SLOT_START_PROPERTY_9 RETURN INT_TO_ENUM(STATS_PACKED,ENUM_TO_INT(START_FIXER_VEHICLE_DISPLAY_SLOT_2)+iOffset-(DISPLAY_SLOT_START_SECURITY_OFFICE)) #IF FEATURE_DLC_1_2022 ELIF iOffset < MAX_MP_SAVED_VEHICLES //MAX_MP_SAVED_VEHICLES RETURN INT_TO_ENUM(STATS_PACKED,ENUM_TO_INT(START_SUM22_VEHICLE_DISPLAY_SLOT_2)+iOffset-(DISPLAY_SLOT_START_PROPERTY_9)) #ENDIF ENDIF RETURN INT_TO_ENUM(STATS_PACKED,ENUM_TO_INT(START_ARENAWARS_VEHICLE_DISPLAY_SLOT_2)+iOffset) ENDFUNC FUNC INT MPSV_GET_DISPLAY_SLOT_STAT_INT(INT iOffset,INT iCharacterSlot = -1) INT iResult = GET_PACKED_STAT_INT(MPSV_GET_DISPLAY_SLOT_STAT_OFFSET(iOffset),iCharacterSlot) iResult = iResult + GET_PACKED_STAT_INT(MPSV_GET_DISPLAY_SLOT_STAT_OFFSET_PART_2(iOffset),iCharacterSlot) RETURN iResult ENDFUNC PROC MPSV_SET_DISPLAY_SLOT_STAT_INT(INT iOffset,INT iSaveSlot, INT iCharacterSlot = -1) IF iSaveSlot <= 255 SET_PACKED_STAT_INT(MPSV_GET_DISPLAY_SLOT_STAT_OFFSET(iOffset),iSaveSlot,iCharacterSlot) PRINTLN("MPSV_SET_DISPLAY_SLOT_STAT_INT: SET_PACKED_STAT_INT a 1 MPSV_GET_DISPLAY_SLOT_STAT_OFFSET(iOffset) = ",MPSV_GET_DISPLAY_SLOT_STAT_OFFSET(iOffset), " to be: ",iSaveSlot ," for character: ",iCharacterSlot) SET_PACKED_STAT_INT(MPSV_GET_DISPLAY_SLOT_STAT_OFFSET_PART_2(iOffset),0,iCharacterSlot) PRINTLN("MPSV_SET_DISPLAY_SLOT_STAT_INT: SET_PACKED_STAT_INT a 2 MPSV_GET_DISPLAY_SLOT_STAT_OFFSET_PART_2(iOffset) = ",MPSV_GET_DISPLAY_SLOT_STAT_OFFSET_PART_2(iOffset), " to be: ",0 ," for character: ",iCharacterSlot) ELSE SET_PACKED_STAT_INT(MPSV_GET_DISPLAY_SLOT_STAT_OFFSET(iOffset),255,iCharacterSlot) PRINTLN("MPSV_SET_DISPLAY_SLOT_STAT_INT: SET_PACKED_STAT_INT b 1 MPSV_GET_DISPLAY_SLOT_STAT_OFFSET(iOffset) = ",MPSV_GET_DISPLAY_SLOT_STAT_OFFSET(iOffset), " to be: ",255 ," for character: ",iCharacterSlot) SET_PACKED_STAT_INT(MPSV_GET_DISPLAY_SLOT_STAT_OFFSET_PART_2(iOffset),iSaveSlot-255,iCharacterSlot) PRINTLN("MPSV_SET_DISPLAY_SLOT_STAT_INT: SET_PACKED_STAT_INT b 2 MPSV_GET_DISPLAY_SLOT_STAT_OFFSET_PART_2(iOffset) = ",MPSV_GET_DISPLAY_SLOT_STAT_OFFSET_PART_2(iOffset), " to be: ",iSaveSlot-255 ," for character: ",iCharacterSlot) ENDIF ENDPROC PROC MPSV_GET_SAVE_SLOT_FROM_DISPLAY_SLOT_USING_STATS(INT iDisplaySlot, INT &iSaveSlot, INT iCharacterSlot = -1 #IF IS_DEBUG_BUILD,BOOL bPrint = TRUE #ENDIF) iSaveSlot = MPSV_GET_DISPLAY_SLOT_STAT_INT(iDisplaySlot,iCharacterSlot)-MPSV_DISPLAY_VEHICLE_OFFSET #IF IS_DEBUG_BUILD IF bPrint PRINTLN("MPSV: MPSV_GET_SAVE_SLOT_FROM_DISPLAY_SLOT_USING_STATS display slot #",iDisplaySlot," = saveSlot #",iSaveSlot, " with offset = ",iSaveSlot+MPSV_DISPLAY_VEHICLE_OFFSET) ENDIF #ENDIF ENDPROC PROC MPSV_GET_DISPLAY_SLOT_FROM_SAVE_SLOT_USING_STATS(INT iSaveSlot, INT &iDisplaySlot, INT iCharacterSlot = -1) INT i iDisplaySlot = -1 REPEAT MAX_MP_SAVED_VEHICLES i IF iSaveSlot = MPSV_GET_DISPLAY_SLOT_STAT_INT(i,iCharacterSlot)-MPSV_DISPLAY_VEHICLE_OFFSET iDisplaySlot = i //PRINTLN("MPSV: MPSV_GET_DISPLAY_SLOT_FROM_SAVE_SLOT_USING_STATS save slot #",iSaveSlot," = display slot #",iDisplaySlot) EXIT ENDIF ENDREPEAT //PRINTLN("MPSV: MPSV_GET_DISPLAY_SLOT_FROM_SAVE_SLOT_USING_STATS save slot #",iSaveSlot," = display slot #",iDisplaySlot) ENDPROC PROC MPSV_GET_DISPLAY_SLOT_FROM_SAVE_SLOT(INT iSaveSlot, INT &iDisplaySlot) INT i iDisplaySlot = -1 IF iSaveSlot >= 0 REPEAT MAX_MP_SAVED_VEHICLES i IF iSaveSlot = g_iMPSV_DisplaySlotArray[i]-MPSV_DISPLAY_VEHICLE_OFFSET iDisplaySlot = i //PRINTLN("MPSV: MPSV_GET_DISPLAY_SLOT_FROM_SAVE_SLOT save slot #",iSaveSlot," = display slot #",iDisplaySlot) EXIT ENDIF ENDREPEAT ENDIF //PRINTLN("MPSV: MPSV_GET_DISPLAY_SLOT_FROM_SAVE_SLOT save slot #",iSaveSlot," = display slot #",iDisplaySlot) ENDPROC FUNC BOOL DOES_PROPERTY_HAVE_GARAGE(INT iPropertyID) SWITCH iPropertyID CASE PROPERTY_YACHT_APT_1_BASE CASE PROPERTY_OFFICE_1 CASE PROPERTY_OFFICE_2_BASE CASE PROPERTY_OFFICE_3 CASE PROPERTY_OFFICE_4 // #IF FEATURE_BIKER // CASE PROPERTY_CLUBHOUSE_1_BASE_A // CASE PROPERTY_CLUBHOUSE_2_BASE_B // #ENDIF RETURN FALSE BREAK ENDSWITCH RETURN TRUE ENDFUNC FUNC BOOL DOES_PROPERTY_HAVE_SEPARATE_GARAGE_INTERIOR(INT iPropertyID) SWITCH iPropertyID CASE PROPERTY_YACHT_APT_1_BASE CASE PROPERTY_OFFICE_1 CASE PROPERTY_OFFICE_2_BASE CASE PROPERTY_OFFICE_3 CASE PROPERTY_OFFICE_4 CASE PROPERTY_CLUBHOUSE_1_BASE_A CASE PROPERTY_CLUBHOUSE_2_BASE_A CASE PROPERTY_CLUBHOUSE_3_BASE_A CASE PROPERTY_CLUBHOUSE_4_BASE_A CASE PROPERTY_CLUBHOUSE_5_BASE_A CASE PROPERTY_CLUBHOUSE_6_BASE_A CASE PROPERTY_CLUBHOUSE_7_BASE_B CASE PROPERTY_CLUBHOUSE_8_BASE_B CASE PROPERTY_CLUBHOUSE_9_BASE_B CASE PROPERTY_CLUBHOUSE_10_BASE_B CASE PROPERTY_CLUBHOUSE_11_BASE_B CASE PROPERTY_CLUBHOUSE_12_BASE_B // #IF FEATURE_IMPORT_EXPORT // CASE PROPERTY_OFFICE_1_GARAGE_LVL1 // CASE PROPERTY_OFFICE_1_GARAGE_LVL2 // CASE PROPERTY_OFFICE_1_GARAGE_LVL3 // CASE PROPERTY_OFFICE_2_GARAGE_LVL1 // CASE PROPERTY_OFFICE_2_GARAGE_LVL2 // CASE PROPERTY_OFFICE_2_GARAGE_LVL3 // CASE PROPERTY_OFFICE_3_GARAGE_LVL1 // CASE PROPERTY_OFFICE_3_GARAGE_LVL2 // CASE PROPERTY_OFFICE_3_GARAGE_LVL3 // CASE PROPERTY_OFFICE_4_GARAGE_LVL1 // CASE PROPERTY_OFFICE_4_GARAGE_LVL2 // CASE PROPERTY_OFFICE_4_GARAGE_LVL3 // #ENDIF RETURN FALSE BREAK ENDSWITCH RETURN TRUE ENDFUNC FUNC BOOL DOES_PROPERTY_STORE_BICYCLES(INT iProperty) IF IS_PROPERTY_OFFICE(iProperty) OR IS_PROPERTY_CLUBHOUSE(iProperty) OR IS_PROPERTY_OFFICE_GARAGE(iProperty) OR iProperty = PROPERTY_IMPEXP_VEH_WAREHOUSE RETURN FALSE ENDIF RETURN TRUE ENDFUNC FUNC INT GET_MAX_NUMBER_OF_VEHICLES_IN_PROPERTY(INT iPropertySlot = -1,INT iProperty = -1, BOOL bIncludeCycles = TRUE) #IF IS_DEBUG_BUILD IF iPropertySlot != -1 AND iProperty != -1 DEBUG_PRINTCALLSTACK() PRINTLN("GET_MAX_NUMBER_OF_VEHICLES_IN_PROPERTY: checking both iPropertySlot #",iPropertySlot," and iProperty #",iProperty) SCRIPT_ASSERT("GET_MAX_NUMBER_OF_VEHICLES_IN_PROPERTY: checking both a slot and property! See conor") ELIF iPropertySlot = -1 AND iProperty = -1 DEBUG_PRINTCALLSTACK() PRINTLN("GET_MAX_NUMBER_OF_VEHICLES_IN_PROPERTY: nothing set!") SCRIPT_ASSERT("GET_MAX_NUMBER_OF_VEHICLES_IN_PROPERTY: nothing set! See conor") ENDIF #ENDIF IF iPropertySlot = -1 IF iProperty >= 1 IF IS_PROPERTY_OFFICE_GARAGE(iProperty) RETURN MAX_SAVED_VEHS_IN_OFF_GARAGE ELIF IS_PROPERTY_OFFICE(iProperty) RETURN 0 ELIF IS_PROPERTY_CLUBHOUSE(iProperty) RETURN MAX_SAVED_VEHS_IN_CLUBHOUSE ELIF iProperty = PROPERTY_IMPEXP_VEH_WAREHOUSE RETURN MAX_SAVED_VEHS_IN_IMP_EXP_GARAGE ELIF iProperty = PROPERTY_HANGAR RETURN MAX_SAVED_VEHS_IN_HANGAR ELIF iProperty = PROPERTY_DEFUNC_BASE RETURN MAX_SAVED_VEHS_IN_DEFUNCBASE ELIF iProperty = PROPERTY_NIGHTCLUB RETURN MAX_SAVED_VEHS_IN_NIGHTCLUB ELIF iProperty = PROPERTY_MEGAWARE_GARAGE_LVL1 OR iProperty = PROPERTY_MEGAWARE_GARAGE_LVL2 OR iProperty = PROPERTY_MEGAWARE_GARAGE_LVL3 RETURN MAX_SAVED_VEHS_IN_BUSINESS_HUB ELIF iProperty = PROPERTY_ARENAWARS_GARAGE_LVL1 RETURN MAX_SAVED_VEHS_IN_ARENA_WARS_WORKSHOP ELIF iProperty = PROPERTY_ARENAWARS_GARAGE_LVL2 OR iProperty = PROPERTY_ARENAWARS_GARAGE_LVL3 RETURN MAX_SAVED_VEHS_IN_ARENA_WARS_GAR ELIF iProperty = PROPERTY_CASINO_GARAGE RETURN MAX_SAVED_VEHS_IN_CASINO_GARAGE ELIF iProperty = PROPERTY_ARCADE_GARAGE RETURN MAX_SAVED_VEHS_IN_CASINO_GARAGE #IF FEATURE_TUNER ELIF iProperty = PROPERTY_AUTO_SHOP RETURN MAX_SAVED_VEHS_IN_AUTOSHOP #ENDIF #IF FEATURE_FIXER //MAX_MP_PROPERTIES //CDM PROPERTY STAT UPDATE ELIF iProperty = PROPERTY_SECURITY_OFFICE_GARAGE RETURN MAX_SAVED_VEHS_IN_SECURITY_OFFICE_GAR #ENDIF ELSE IF iProperty <= MAX_MP_PROPERTIES AND iProperty > 0 IF mpProperties[iProperty].iGarageSize = PROP_GARAGE_SIZE_2 IF bIncludeCycles RETURN PROP_GARAGE_SIZE_2+1 ELSE RETURN PROP_GARAGE_SIZE_2 ENDIF ELIF mpProperties[iProperty].iGarageSize = PROP_GARAGE_SIZE_6 IF bIncludeCycles RETURN PROP_GARAGE_SIZE_6+2 ELSE RETURN PROP_GARAGE_SIZE_6 ENDIF ELIF mpProperties[iProperty].iGarageSize = PROP_GARAGE_SIZE_10 IF bIncludeCycles RETURN MAX_SAVED_VEHS_IN_PROPERTY_OLD ELSE RETURN PROP_GARAGE_SIZE_10 ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF //MAX_OWNED_PROPERTIES SWITCH iPropertySlot CASE PROPERTY_OWNED_SLOT_APT_1 CASE PROPERTY_OWNED_SLOT_APT_2 CASE PROPERTY_OWNED_SLOT_APT_3 CASE PROPERTY_OWNED_SLOT_APT_4 CASE PROPERTY_OWNED_SLOT_APT_5 CASE PROPERTY_OWNED_SLOT_APT_6 CASE PROPERTY_OWNED_SLOT_APT_7 CASE PROPERTY_OWNED_SLOT_APT_8 CASE PROPERTY_OWNED_SLOT_APT_9 CASE PROPERTY_OWNED_SLOT_APT_10 //CDM PROPERTY STAT UPDATE //OLD PROPERTIES RETURN MAX_SAVED_VEHS_IN_PROPERTY_OLD BREAK CASE PROPERTY_OWNED_SLOT_OFFICE_0 RETURN 0 BREAK CASE PROPERTY_OWNED_SLOT_CLUBHOUSE RETURN MAX_SAVED_VEHS_IN_CLUBHOUSE BREAK CASE PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL1 CASE PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL2 CASE PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL3 RETURN MAX_SAVED_VEHS_IN_OFF_GARAGE BREAK CASE PROPERTY_OWNED_SLOT_IE_WAREHOUSE RETURN MAX_SAVED_VEHS_IN_IMP_EXP_GARAGE BREAK CASE PROPERTY_OWNED_SLOT_HANGAR RETURN MAX_SAVED_VEHS_IN_HANGAR BREAK CASE PROPERTY_OWNED_SLOT_DEFUNCBASE RETURN MAX_SAVED_VEHS_IN_DEFUNCBASE BREAK CASE PROPERTY_OWNED_SLOT_NIGHTCLUB RETURN MAX_SAVED_VEHS_IN_NIGHTCLUB BREAK CASE PROPERTY_OWNED_SLOT_MEGAWARE_GARAGE_LVL1 CASE PROPERTY_OWNED_SLOT_MEGAWARE_GARAGE_LVL2 CASE PROPERTY_OWNED_SLOT_MEGAWARE_GARAGE_LVL3 RETURN MAX_SAVED_VEHS_IN_BUSINESS_HUB BREAK CASE PROPERTY_OWNED_SLOT_ARENAWARS_GARAGE_LVL1 CASE PROPERTY_OWNED_SLOT_ARENAWARS_GARAGE_LVL2 CASE PROPERTY_OWNED_SLOT_ARENAWARS_GARAGE_LVL3 RETURN MAX_SAVED_VEHS_IN_ARENA_WARS_GAR BREAK CASE PROPERTY_OWNED_SLOT_CASINO_GARAGE RETURN MAX_SAVED_VEHS_IN_CASINO_GARAGE BREAK CASE PROPERTY_OWNED_SLOT_ARCADE_GARAGE RETURN MAX_SAVED_VEHS_IN_ARCADE_GARAGE BREAK CASE PROPERTY_OWNED_SLOT_AUTOSHOP_PROPERTY RETURN MAX_SAVED_VEHS_IN_AUTOSHOP BREAK #IF FEATURE_FIXER //MAX_MP_PROPERTIES //CDM PROPERTY STAT UPDATE CASE PROPERTY_OWNED_SLOT_SECURITY_OFFICE_GAR RETURN MAX_SAVED_VEHS_IN_SECURITY_OFFICE_GAR BREAK #ENDIF ENDSWITCH RETURN 0 ENDFUNC FUNC INT GET_PROPERTY_SLOT_DISPLAY_START_INDEX(INT iSlot) //MAX_OWNED_PROPERTIES SWITCH iSlot CASE PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL1 RETURN DISPLAY_SLOT_START_OFFICE_GARAGE_LVL1 BREAK CASE PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL2 RETURN DISPLAY_SLOT_START_OFFICE_GARAGE_LVL2 BREAK CASE PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL3 RETURN DISPLAY_SLOT_START_OFFICE_GARAGE_LVL3 BREAK CASE PROPERTY_OWNED_SLOT_IE_WAREHOUSE RETURN DISPLAY_SLOT_START_VEH_WAREHOUSE_GARAGE BREAK CASE PROPERTY_OWNED_SLOT_CLUBHOUSE RETURN DISPLAY_SLOT_START_CLUBHOUSE BREAK CASE PROPERTY_OWNED_SLOT_APT_6 RETURN DISPLAY_SLOT_START_PROPERTY_6 BREAK CASE PROPERTY_OWNED_SLOT_OFFICE_0 RETURN -1 BREAK CASE PROPERTY_OWNED_SLOT_HANGAR RETURN DISPLAY_SLOT_START_HANGAR BREAK CASE PROPERTY_OWNED_SLOT_DEFUNCBASE RETURN DISPLAY_SLOT_START_DEFUNCBASE BREAK CASE PROPERTY_OWNED_SLOT_NIGHTCLUB RETURN DISPLAY_SLOT_NIGHTCLUB_VEHICLE BREAK CASE PROPERTY_OWNED_SLOT_MEGAWARE_GARAGE_LVL1 RETURN DISPLAY_SLOT_START_MEGAWARE_GARAGE_LVL1 BREAK CASE PROPERTY_OWNED_SLOT_MEGAWARE_GARAGE_LVL2 RETURN DISPLAY_SLOT_START_MEGAWARE_GARAGE_LVL2 BREAK CASE PROPERTY_OWNED_SLOT_MEGAWARE_GARAGE_LVL3 RETURN DISPLAY_SLOT_START_MEGAWARE_GARAGE_LVL3 BREAK CASE PROPERTY_OWNED_SLOT_ARENAWARS_GARAGE_LVL1 RETURN DISPLAY_SLOT_START_ARENAWARS_GARAGE_LVL1 BREAK CASE PROPERTY_OWNED_SLOT_ARENAWARS_GARAGE_LVL2 RETURN DISPLAY_SLOT_START_ARENAWARS_GARAGE_LVL2 BREAK CASE PROPERTY_OWNED_SLOT_ARENAWARS_GARAGE_LVL3 RETURN DISPLAY_SLOT_START_ARENAWARS_GARAGE_LVL3 BREAK CASE PROPERTY_OWNED_SLOT_CASINO_GARAGE RETURN DISPLAY_SLOT_START_CASINO_GARAGE BREAK CASE PROPERTY_OWNED_SLOT_ARCADE_GARAGE RETURN DISPLAY_SLOT_START_ARCADE_GARAGE BREAK CASE PROPERTY_OWNED_SLOT_APT_7 RETURN DISPLAY_SLOT_START_PROPERTY_7 BREAK CASE PROPERTY_OWNED_SLOT_APT_8 RETURN DISPLAY_SLOT_START_PROPERTY_8 BREAK CASE PROPERTY_OWNED_SLOT_AUTOSHOP_PROPERTY RETURN DISPLAY_SLOT_START_AUTO_SHOP BREAK CASE PROPERTY_OWNED_SLOT_SECURITY_OFFICE_GAR RETURN DISPLAY_SLOT_START_SECURITY_OFFICE BREAK CASE PROPERTY_OWNED_SLOT_APT_9 RETURN DISPLAY_SLOT_START_PROPERTY_9 //MAX_OWNED_PROPERTIES //OLD PROPERTIES BREAK CASE PROPERTY_OWNED_SLOT_APT_10 RETURN DISPLAY_SLOT_START_PROPERTY_10 BREAK ENDSWITCH IF iSlot >= 1000 SPECIAL_PV_PROPERTY theSVProp = GET_SPECIAL_PV_PROPERTY_FROM_FAKE_PROPERTY_SLOT(iSlot) RETURN GET_START_DISPLAY_SLOT_FOR_SPECIAL_PV_PROPERTY(theSVProp) ENDIF RETURN GET_MAX_NUMBER_OF_VEHICLES_IN_PROPERTY(iSlot)*iSlot ENDFUNC FUNC INT GET_PROPERTY_SLOT_DISPLAY_END_INDEX(INT iSlot) SWITCH iSlot CASE PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL1 RETURN DISPLAY_SLOT_END_OFFICE_GARAGE_LVL1 BREAK CASE PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL2 RETURN DISPLAY_SLOT_END_OFFICE_GARAGE_LVL2 BREAK CASE PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL3 RETURN DISPLAY_SLOT_END_OFFICE_GARAGE_LVL3 BREAK CASE PROPERTY_OWNED_SLOT_IE_WAREHOUSE RETURN DISPLAY_SLOT_END_VEH_WAREHOUSE_GARAGE BREAK CASE PROPERTY_OWNED_SLOT_CLUBHOUSE RETURN DISPLAY_SLOT_END_CLUBHOUSE BREAK CASE PROPERTY_OWNED_SLOT_APT_6 RETURN DISPLAY_SLOT_END_PROPERTY_6 BREAK CASE PROPERTY_OWNED_SLOT_OFFICE_0 RETURN -1 BREAK CASE PROPERTY_OWNED_SLOT_HANGAR RETURN DISPLAY_SLOT_END_HANGAR BREAK CASE PROPERTY_OWNED_SLOT_DEFUNCBASE RETURN DISPLAY_SLOT_END_DEFUNCBASE BREAK CASE PROPERTY_OWNED_SLOT_NIGHTCLUB RETURN DISPLAY_SLOT_NIGHTCLUB_VEHICLE+1 BREAK CASE PROPERTY_OWNED_SLOT_MEGAWARE_GARAGE_LVL1 RETURN DISPLAY_SLOT_END_MEGAWARE_GARAGE_LVL1 BREAK CASE PROPERTY_OWNED_SLOT_MEGAWARE_GARAGE_LVL2 RETURN DISPLAY_SLOT_END_MEGAWARE_GARAGE_LVL2 BREAK CASE PROPERTY_OWNED_SLOT_MEGAWARE_GARAGE_LVL3 RETURN DISPLAY_SLOT_END_MEGAWARE_GARAGE_LVL3 BREAK CASE PROPERTY_OWNED_SLOT_ARENAWARS_GARAGE_LVL1 RETURN DISPLAY_SLOT_END_ARENAWARS_GARAGE_LVL1 BREAK CASE PROPERTY_OWNED_SLOT_ARENAWARS_GARAGE_LVL2 RETURN DISPLAY_SLOT_END_ARENAWARS_GARAGE_LVL2 BREAK CASE PROPERTY_OWNED_SLOT_ARENAWARS_GARAGE_LVL3 RETURN DISPLAY_SLOT_END_ARENAWARS_GARAGE_LVL3 BREAK CASE PROPERTY_OWNED_SLOT_CASINO_GARAGE RETURN DISPLAY_SLOT_END_CASINO_GARAGE BREAK CASE PROPERTY_OWNED_SLOT_ARCADE_GARAGE RETURN DISPLAY_SLOT_END_ARCADE_GARAGE BREAK CASE PROPERTY_OWNED_SLOT_APT_7 RETURN DISPLAY_SLOT_END_PROPERTY_7 BREAK CASE PROPERTY_OWNED_SLOT_APT_8 RETURN DISPLAY_SLOT_END_PROPERTY_8 BREAK CASE PROPERTY_OWNED_SLOT_AUTOSHOP_PROPERTY RETURN DISPLAY_SLOT_END_AUTO_SHOP BREAK CASE PROPERTY_OWNED_SLOT_SECURITY_OFFICE_GAR RETURN DISPLAY_SLOT_END_SECURITY_OFFICE BREAK CASE PROPERTY_OWNED_SLOT_APT_9 RETURN DISPLAY_SLOT_END_PROPERTY_9 //MAX_OWNED_PROPERTIES //OLD PROPERTIES BREAK CASE PROPERTY_OWNED_SLOT_APT_10 RETURN DISPLAY_SLOT_END_PROPERTY_10 BREAK ENDSWITCH IF iSlot >= 1000 SPECIAL_PV_PROPERTY theSVProp = GET_SPECIAL_PV_PROPERTY_FROM_FAKE_PROPERTY_SLOT(iSlot) RETURN GET_END_DISPLAY_SLOT_FOR_SPECIAL_PV_PROPERTY(theSVProp) ENDIF RETURN GET_MAX_NUMBER_OF_VEHICLES_IN_PROPERTY(iSlot)*(iSlot+1) ENDFUNC FUNC BOOL DOES_VEHICLE_SLOT_BELONG_TO_GARAGE(MODEL_NAMES vehicleModel,INT iVehicleSlot,INT iPropertySlot, BOOL bUseStats = FALSE, INT iCharacterSlot = -1,BOOL bCheckGarageSize = FALSE) INT iPropertyID, iDisplaySlot iPropertyID = GET_OWNED_PROPERTY(iPropertySlot,iCharacterSlot) IF iPropertyID > 0 AND iPropertyID <= MAX_MP_PROPERTIES AND DOES_PROPERTY_HAVE_GARAGE(iPropertyID) IF bUseStats MPSV_GET_DISPLAY_SLOT_FROM_SAVE_SLOT_USING_STATS(iVehicleSlot,iDisplaySlot,iCharacterSlot) ELSE MPSV_GET_DISPLAY_SLOT_FROM_SAVE_SLOT(iVehicleSlot,iDisplaySlot) ENDIF IF iDisplaySlot >= 0 IF NOT IS_VEHICLE_A_CYCLE(vehicleModel) IF bCheckGarageSize IF iDisplaySlot-GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) >= 0 AND (iDisplaySlot-GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) < GET_MAX_NUMBER_OF_VEHICLES_IN_PROPERTY(-1,iPropertyID,FALSE)) AND iDisplaySlot < MAX_MP_SAVED_VEHICLES RETURN TRUE ENDIF ELSE IF iDisplaySlot-GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) >= 0 AND (iDisplaySlot-GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) < GET_MAX_NUMBER_OF_VEHICLES_IN_PROPERTY(iPropertySlot)) AND iDisplaySlot < MAX_MP_SAVED_VEHICLES RETURN TRUE ENDIF ENDIF ELSE IF mpProperties[iPropertyID].iGarageSize = PROP_GARAGE_SIZE_2 AND iDisplaySlot = MP_PROP_BIKE_INDEX_1+GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) RETURN TRUE ENDIF IF mpProperties[iPropertyID].iGarageSize = PROP_GARAGE_SIZE_6 AND iDisplaySlot >= MP_PROP_BIKE_INDEX_1+GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) AND iDisplaySlot <= MP_PROP_BIKE_INDEX_2+GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) RETURN TRUE ENDIF IF mpProperties[iPropertyID].iGarageSize = PROP_GARAGE_SIZE_10 AND iDisplaySlot >= MP_PROP_BIKE_INDEX_1+GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) AND iDisplaySlot <= MP_PROP_BIKE_INDEX_3+GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) RETURN TRUE ENDIF ENDIF ENDIF ENDIF RETURN FALSE ENDFUNC FUNC BOOL DOES_VEHICLE_SLOT_BELONG_TO_HANGAR(INT iVehicleSlot, BOOL bUseStats = FALSE, INT iCharacterSlot = -1,BOOL bPrint = FALSE) INT iDisplaySlot IF bUseStats MPSV_GET_DISPLAY_SLOT_FROM_SAVE_SLOT_USING_STATS(iVehicleSlot, iDisplaySlot, iCharacterSlot) ELSE MPSV_GET_DISPLAY_SLOT_FROM_SAVE_SLOT(iVehicleSlot, iDisplaySlot) ENDIF IF iDisplaySlot >= 0 IF bPrint PRINTLN("DOES_VEHICLE_SLOT_BELONG_TO_HANGAR: save slot = ",iVehicleSlot," displaySlot = ",iDisplaySlot) ENDIF IF iDisplaySlot >= GET_PROPERTY_SLOT_DISPLAY_START_INDEX(PROPERTY_OWNED_SLOT_HANGAR) AND iDisplaySlot < GET_PROPERTY_SLOT_DISPLAY_END_INDEX(PROPERTY_OWNED_SLOT_HANGAR) RETURN TRUE ENDIF ENDIF RETURN FALSE ENDFUNC FUNC BOOL CAN_PROPERTY_EXIST_IN_THIS_PROPERTY_SLOT(INT iPropertyID,INT iPropertySlot) SWITCH iPropertySlot CASE PROPERTY_OWNED_SLOT_APT_1 CASE PROPERTY_OWNED_SLOT_APT_2 CASE PROPERTY_OWNED_SLOT_APT_3 CASE PROPERTY_OWNED_SLOT_APT_4 CASE PROPERTY_OWNED_SLOT_APT_5 CASE PROPERTY_OWNED_SLOT_APT_6 CASE PROPERTY_OWNED_SLOT_APT_7 CASE PROPERTY_OWNED_SLOT_APT_8 CASE PROPERTY_OWNED_SLOT_APT_9 CASE PROPERTY_OWNED_SLOT_APT_10 //CDM PROPERTY STAT UPDATE //OLD PROPERTIES IF IS_PROPERTY_OFFICE(iPropertyID) OR IS_PROPERTY_CLUBHOUSE(iPropertyID) OR IS_PROPERTY_OFFICE_GARAGE(iPropertyID) RETURN FALSE ENDIF BREAK CASE PROPERTY_OWNED_SLOT_OFFICE_0 IF NOT IS_PROPERTY_OFFICE(iPropertyID) RETURN FALSE ENDIF BREAK CASE PROPERTY_OWNED_SLOT_CLUBHOUSE IF NOT IS_PROPERTY_CLUBHOUSE(iPropertyID) RETURN FALSE ENDIF BREAK CASE PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL1 CASE PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL2 CASE PROPERTY_OWNED_SLOT_OFFICE_GARAGE_LVL3 IF NOT IS_PROPERTY_OFFICE_GARAGE(iPropertyID) RETURN FALSE ENDIF BREAK ENDSWITCH RETURN TRUE ENDFUNC FUNC BOOL DOES_DISPLAY_SLOT_EXIST_IN_PROPERTY(INT iDisplaySlot,INT iPropertyID,INT iPropertySlot #IF IS_DEBUG_BUILD , BOOL bPrintOutput = FALSE #ENDIF) IF iPropertyID > 0 AND iPropertyID <= MAX_MP_PROPERTIES AND DOES_PROPERTY_HAVE_GARAGE(iPropertyID) IF iDisplaySlot >= 0 #IF IS_DEBUG_BUILD IF bPrintOutput PRINTLN("DOES_DISPLAY_SLOT_EXIST_IN_PROPERTY iDisplaySlot= ",iDisplaySlot) PRINTLN("iPropertySlot= ",iPropertySlot) PRINTLN("iDisplaySlot-GET_PROPERTY_SLOT_DISPLAY_START_INDEX(PropertySlot)= ",iDisplaySlot -GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot)) PRINTLN("mpProperties[iPropertyID].iGarageSize= ",mpProperties[iPropertyID].iGarageSize) ENDIF IF NOT CAN_PROPERTY_EXIST_IN_THIS_PROPERTY_SLOT(iPropertyID,iPropertySlot) DEBUG_PRINTCALLSTACK() PRINTLN("DOES_DISPLAY_SLOT_EXIST_IN_PROPERTY: mismatching property/property slot PropertyID = ",iPropertyID," PropertySlot =",iPropertySlot) SCRIPT_ASSERT("DOES_DISPLAY_SLOT_EXIST_IN_PROPERTY: mismatching property/property slot! See Conor") ENDIF #ENDIF IF iDisplaySlot-GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) >= 0 AND (iDisplaySlot-GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) < mpProperties[iPropertyID].iGarageSize) AND iDisplaySlot < MAX_MP_SAVED_VEHICLES RETURN TRUE ENDIF IF mpProperties[iPropertyID].iGarageSize = PROP_GARAGE_SIZE_2 AND iDisplaySlot = MP_PROP_BIKE_INDEX_1+ GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) RETURN TRUE ENDIF IF mpProperties[iPropertyID].iGarageSize = PROP_GARAGE_SIZE_6 AND iDisplaySlot >= MP_PROP_BIKE_INDEX_1+GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) AND iDisplaySlot <= MP_PROP_BIKE_INDEX_2+GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) RETURN TRUE ENDIF IF mpProperties[iPropertyID].iGarageSize = PROP_GARAGE_SIZE_10 IF IS_PROPERTY_CLUBHOUSE(iPropertyID) ELSE IF iDisplaySlot >= MP_PROP_BIKE_INDEX_1+GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) AND iDisplaySlot <= MP_PROP_BIKE_INDEX_3+GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) RETURN TRUE ENDIF ENDIF ENDIF IF iPropertySlot = PROPERTY_OWNED_SLOT_IE_WAREHOUSE AND iDisplaySlot >= GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) AND iDisplaySlot < GET_PROPERTY_SLOT_DISPLAY_END_INDEX(iPropertySlot) RETURN TRUE ENDIF IF iPropertySlot = PROPERTY_OWNED_SLOT_HANGAR AND iDisplaySlot >= GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) AND iDisplaySlot < GET_PROPERTY_SLOT_DISPLAY_END_INDEX(iPropertySlot) RETURN TRUE ENDIF IF iPropertySlot = PROPERTY_OWNED_SLOT_DEFUNCBASE AND iDisplaySlot >= GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) AND iDisplaySlot < GET_PROPERTY_SLOT_DISPLAY_END_INDEX(iPropertySlot) RETURN TRUE ENDIF IF iPropertySlot = PROPERTY_OWNED_SLOT_NIGHTCLUB AND iDisplaySlot >= GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) AND iDisplaySlot < GET_PROPERTY_SLOT_DISPLAY_END_INDEX(iPropertySlot) RETURN TRUE ENDIF IF iPropertySlot = PROPERTY_OWNED_SLOT_MEGAWARE_GARAGE_LVL1 AND iDisplaySlot >= GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) AND iDisplaySlot < GET_PROPERTY_SLOT_DISPLAY_END_INDEX(iPropertySlot) RETURN TRUE ENDIF IF iPropertySlot = PROPERTY_OWNED_SLOT_MEGAWARE_GARAGE_LVL2 AND iDisplaySlot >= GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) AND iDisplaySlot < GET_PROPERTY_SLOT_DISPLAY_END_INDEX(iPropertySlot) RETURN TRUE ENDIF IF iPropertySlot = PROPERTY_OWNED_SLOT_MEGAWARE_GARAGE_LVL3 AND iDisplaySlot >= GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) AND iDisplaySlot < GET_PROPERTY_SLOT_DISPLAY_END_INDEX(iPropertySlot) RETURN TRUE ENDIF IF iPropertySlot = PROPERTY_OWNED_SLOT_ARENAWARS_GARAGE_LVL1 IF (iDisplaySlot >= GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) AND iDisplaySlot < GET_PROPERTY_SLOT_DISPLAY_END_INDEX(iPropertySlot)) OR iDisplaySlot = DISPLAY_SLOT_CERBERUS RETURN TRUE ENDIF ENDIF IF iPropertySlot = PROPERTY_OWNED_SLOT_ARENAWARS_GARAGE_LVL2 IF (iDisplaySlot >= GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) AND iDisplaySlot < GET_PROPERTY_SLOT_DISPLAY_END_INDEX(iPropertySlot)) OR iDisplaySlot = DISPLAY_SLOT_CERBERUS2 RETURN TRUE ENDIF ENDIF IF iPropertySlot = PROPERTY_OWNED_SLOT_ARENAWARS_GARAGE_LVL3 IF (iDisplaySlot >= GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) AND iDisplaySlot < GET_PROPERTY_SLOT_DISPLAY_END_INDEX(iPropertySlot)) OR iDisplaySlot = DISPLAY_SLOT_CERBERUS3 RETURN TRUE ENDIF ENDIF IF iPropertySlot = PROPERTY_OWNED_SLOT_CASINO_GARAGE IF (iDisplaySlot >= GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) AND iDisplaySlot < GET_PROPERTY_SLOT_DISPLAY_END_INDEX(iPropertySlot)) RETURN TRUE ENDIF ENDIF IF iPropertySlot = PROPERTY_OWNED_SLOT_ARCADE_GARAGE IF (iDisplaySlot >= GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) AND iDisplaySlot < GET_PROPERTY_SLOT_DISPLAY_END_INDEX(iPropertySlot)) RETURN TRUE ENDIF ENDIF #IF FEATURE_TUNER IF iPropertySlot = PROPERTY_OWNED_SLOT_AUTOSHOP_PROPERTY IF (iDisplaySlot >= GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) AND iDisplaySlot < GET_PROPERTY_SLOT_DISPLAY_END_INDEX(iPropertySlot)) RETURN TRUE ENDIF ENDIF #ENDIF #IF FEATURE_FIXER IF iPropertySlot = PROPERTY_OWNED_SLOT_SECURITY_OFFICE_GAR //max_owned_properties IF (iDisplaySlot >= GET_PROPERTY_SLOT_DISPLAY_START_INDEX(iPropertySlot) AND iDisplaySlot < GET_PROPERTY_SLOT_DISPLAY_END_INDEX(iPropertySlot)) RETURN TRUE ENDIF ENDIF #ENDIF ENDIF #IF IS_DEBUG_BUILD ELIF bPrintOutput PRINTLN("DOES_DISPLAY_SLOT_EXIST_IN_PROPERTY: False iPropertyID = ",iPropertyID) #ENDIF ENDIF RETURN FALSE ENDFUNC FUNC INT GET_PROPERTY_SLOT_FROM_DISPLAY_SLOT(INT iDisplaySlot) INT i IF iDisplaySlot < MAX_MP_SAVED_VEHICLES REPEAT MAX_OWNED_PROPERTIES i IF iDisplaySlot >= GET_PROPERTY_SLOT_DISPLAY_START_INDEX(i) AND iDisplaySlot < GET_PROPERTY_SLOT_DISPLAY_END_INDEX(i) RETURN i ENDIF ENDREPEAT ENDIF RETURN -1 ENDFUNC FUNC BOOL DOES_VEHICLE_SLOT_BELONG_IN_ANY_GARAGE(INT iSlot, BOOL bUseStats = FALSE, MODEL_NAMES ModelOverrideForStats = DUMMY_MODEL_FOR_SCRIPT,INT iCharacterSlot = -1,BOOL bNoGarageNoSlot = FALSE) INT i REPEAT MAX_OWNED_PROPERTIES i IF GET_OWNED_PROPERTY(i,iCharacterSlot) > 0 AND DOES_PROPERTY_HAVE_GARAGE(GET_OWNED_PROPERTY(i,iCharacterSlot)) IF ModelOverrideForStats != DUMMY_MODEL_FOR_SCRIPT IF DOES_VEHICLE_SLOT_BELONG_TO_GARAGE(ModelOverrideForStats,iSlot,i,bUseStats,iCharacterSlot) RETURN(TRUE) ENDIF ELSE IF DOES_VEHICLE_SLOT_BELONG_TO_GARAGE(g_MpSavedVehicles[iSlot].vehicleSetupMP.VehicleSetup.eModel,iSlot,i,bUseStats,iCharacterSlot) RETURN(TRUE) ENDIF ENDIF ENDIF ENDREPEAT IF GET_OWNED_PROPERTY(0,iCharacterSlot) > 0 RETURN(FALSE) ENDIF IF bNoGarageNoSlot RETURN(FALSE) ENDIF RETURN(TRUE) ENDFUNC FUNC BOOL IS_RACE() RETURN g_FMMC_STRUCT.iMissionType = FMMC_TYPE_RACE ENDFUNC FUNC BOOL IS_PERSONAL_VEHICLE_BLOCKED_BY_CREATOR(MODEL_NAMES model) IF model = RALLYTRUCK IF IS_BIT_SET(g_FMMC_STRUCT.iOptionsMenuBitSetEight, ciDISABLE_LARGE_PVS) PRINTLN("[CORONA] IS_PERSONAL_VEHICLE_BLOCKED_BY_CREATOR - RALLYTRUCK - TRUE - IS_BIT_SET(g_FMMC_STRUCT.iOptionsMenuBitSetEight, ciDISABLE_LARGE_PVS)") RETURN TRUE ENDIF ENDIF IF model = STARLING IF IS_RACE() PRINTLN("[CORONA] IS_PERSONAL_VEHICLE_BLOCKED_BY_CREATOR - STARLING - TRUE - not available in races as per url:bugstar:3802661") RETURN TRUE ENDIF ENDIF RETURN FALSE ENDFUNC /// PURPOSE: /// Get an array of slots containing vehicles of given class. /// PARAMS: /// vehicleSlots - returned array /// iClass - Class to check for /// bInGarageSlot - will only return cars currently available in a garage (i.e. not cars that are in slots of a garage after downgrading) /// RETURNS: /// Returns the number of cars saved of the given class. FUNC BOOL DOES_PLAYER_OWN_ANY_SAVED_VEHICLES_OF_CLASS(INT iClass, BOOL bInGarageSlot = TRUE, BOOL bCheckAvailablePastCurrentTime = TRUE) INT i i = 0 REPEAT MAX_MP_SAVED_VEHICLES i IF g_MpSavedVehicles[i].VehicleSetupMP.VehicleSetup.eModel != DUMMY_MODEL_FOR_SCRIPT AND IS_VEHICLE_AVAILABLE_FOR_GAME(g_MpSavedVehicles[i].VehicleSetupMP.VehicleSetup.eModel, bCheckAvailablePastCurrentTime) AND IS_MODEL_IN_CDIMAGE(g_MpSavedVehicles[i].VehicleSetupMP.VehicleSetup.eModel) AND (NOT bInGarageSlot OR (bInGarageSlot AND DOES_VEHICLE_SLOT_BELONG_IN_ANY_GARAGE(i))) AND NOT IS_PERSONAL_VEHICLE_BLOCKED_BY_CREATOR(g_MpSavedVehicles[i].VehicleSetupMP.VehicleSetup.eModel) IF MP_DOES_VEHICLE_BELONG_TO_CLASS(g_MpSavedVehicles[i].VehicleSetupMP.VehicleSetup.eModel,iClass) RETURN TRUE ENDIF ENDIF ENDREPEAT RETURN FALSE ENDFUNC FUNC BOOL DOES_PLAYER_OWN_ANY_SAVED_VEHICLES_OF_MODEL(MODEL_NAMES eModel, BOOL bInGarageSlot = TRUE, BOOL bCheckAvailablePastCurrentTime = TRUE) INT i i = 0 REPEAT MAX_MP_SAVED_VEHICLES i IF g_MpSavedVehicles[i].VehicleSetupMP.VehicleSetup.eModel != DUMMY_MODEL_FOR_SCRIPT AND IS_VEHICLE_AVAILABLE_FOR_GAME(g_MpSavedVehicles[i].VehicleSetupMP.VehicleSetup.eModel, bCheckAvailablePastCurrentTime) AND IS_MODEL_IN_CDIMAGE(g_MpSavedVehicles[i].VehicleSetupMP.VehicleSetup.eModel) AND (NOT bInGarageSlot OR (bInGarageSlot AND DOES_VEHICLE_SLOT_BELONG_IN_ANY_GARAGE(i))) AND NOT IS_PERSONAL_VEHICLE_BLOCKED_BY_CREATOR(g_MpSavedVehicles[i].VehicleSetupMP.VehicleSetup.eModel) IF g_MpSavedVehicles[i].VehicleSetupMP.VehicleSetup.eModel = eModel RETURN TRUE ENDIF ENDIF ENDREPEAT RETURN FALSE ENDFUNC FUNC BOOL DOES_PLAYER_OWN_ANY_SAVED_VEHICLES_OF_MODEL_ARRAY(MODEL_NAMES &eModel[], BOOL bInGarageSlot = TRUE, BOOL bCheckAvailablePastCurrentTime = TRUE) INT i, j i = 0 REPEAT MAX_MP_SAVED_VEHICLES i IF g_MpSavedVehicles[i].VehicleSetupMP.VehicleSetup.eModel != DUMMY_MODEL_FOR_SCRIPT AND IS_VEHICLE_AVAILABLE_FOR_GAME(g_MpSavedVehicles[i].VehicleSetupMP.VehicleSetup.eModel, bCheckAvailablePastCurrentTime) AND IS_MODEL_IN_CDIMAGE(g_MpSavedVehicles[i].VehicleSetupMP.VehicleSetup.eModel) AND (NOT bInGarageSlot OR (bInGarageSlot AND DOES_VEHICLE_SLOT_BELONG_IN_ANY_GARAGE(i))) AND NOT IS_PERSONAL_VEHICLE_BLOCKED_BY_CREATOR(g_MpSavedVehicles[i].VehicleSetupMP.VehicleSetup.eModel) REPEAT COUNT_OF(eModel) j IF g_MpSavedVehicles[i].VehicleSetupMP.VehicleSetup.eModel = eModel[j] RETURN TRUE ENDIF ENDREPEAT ENDIF ENDREPEAT RETURN FALSE ENDFUNC FUNC BOOL IS_VEHICLE_IMPOUNDED_OR_DESTROYED(INT iVehToCheck) IF g_MpSavedVehicles[iVehToCheck].VehicleSetupMP.VehicleSetup.eModel != DUMMY_MODEL_FOR_SCRIPT IF IS_BIT_SET(g_MpSavedVehicles[iVehToCheck].iVehicleBS,MP_SAVED_VEHICLE_DESTROYED) OR IS_BIT_SET(g_MpSavedVehicles[iVehToCheck].iVehicleBS,MP_SAVED_VEHICLE_IMPOUNDED) RETURN TRUE ENDIF ENDIF RETURN FALSE ENDFUNC FUNC BOOL IS_SPECIAL_OR_WEAPONISED_VEHICLE_ALLOWED_FOR_RACE(MODEL_NAMES model, INT iClass) // SWITCH model // CASE VOLTIC2 RETURN IS_BIT_SET(g_FMMC_STRUCT.iOptionsMenuBitSetTwelve, ciALLOW_CUSTOM_ROCKET_VOLTICS) // CASE RUINER2 RETURN IS_BIT_SET(g_FMMC_STRUCT.iOptionsMenuBitSetTwelve, ciALLOW_CUSTOM_RUINER_2000S) // CASE BLAZER5 RETURN IS_BIT_SET(g_FMMC_STRUCT.iOptionsMenuBitSetTwelve, ciALLOW_CUSTOM_BLAZER_AQUAS) // ENDSWITCH IF iClass = FMMC_VEHICLE_CLASS_SPECIAL OR iClass = FMMC_VEHICLE_CLASS_WEAPONISED IF g_sTransitionSessionOptions.iSelection[ciRC_HOST_OPTION_CUSTOM_VEHICLE] = 0 //ciCORONA_CUSTOM_VEHICLE_ON IF ENUM_TO_INT(model) = g_FMMC_STRUCT.iVehicleModel // PRINTLN("deluxotest - models match! woo 1") RETURN TRUE // ELSE // PRINTLN("deluxotest - models dont match! 1 ENUM_TO_INT(model) = ", ENUM_TO_INT(model), "; g_FMMC_STRUCT.iVehicleModel = ", g_FMMC_STRUCT.iVehicleModel) ENDIF IF g_iSpecialVehicleModel != -1 IF ENUM_TO_INT(model) = g_iSpecialVehicleModel // PRINTLN("deluxotest - models match! woo 2") RETURN TRUE // ELSE // PRINTLN("deluxotest - models dont match! 2 ENUM_TO_INT(model) = ", ENUM_TO_INT(model), "; g_iSpecialVehicleModel = ", g_iSpecialVehicleModel) ENDIF ENDIF ENDIF RETURN FALSE ENDIF // url:bugstar:7328107 #IF FEATURE_GEN9_EXCLUSIVE IF model = IGNUS2 RETURN TRUE ENDIF #ENDIF RETURN FALSE ENDFUNC FUNC BOOL IS_IMPORT_EXPORT_SPECIAL_VEHICLE_ALLOWED(BOOL bHeist, INT iCar, INT iClass, BOOL bStuntPremium = FALSE) IF NOT IS_VEHICLE_AN_IMPORT_EXPORT_SPECIAL_VEHICLE(g_MpSavedVehicles[iCar].VehicleSetupMP.VehicleSetup.eModel) RETURN TRUE ENDIF IF bHeist RETURN FALSE ENDIF IF g_FMMC_STRUCT.iMissionType = FMMC_TYPE_RACE OR bStuntPremium IF NOT IS_SPECIAL_OR_WEAPONISED_VEHICLE_ALLOWED_FOR_RACE(g_MpSavedVehicles[iCar].VehicleSetupMP.VehicleSetup.eModel, iClass) RETURN FALSE ENDIF ELIF g_FMMC_STRUCT.iMissionType != FMMC_TYPE_MISSION RETURN FALSE ENDIF RETURN TRUE ENDFUNC FUNC BOOL IS_WEAPONISED_VEHICLE_BLOCKED_IN_HEISTS_VIA_TUNEABLE(MODEL_NAMES model) PRINTLN("[TMS][TEMP] IS_WEAPONISED_VEHICLE_BLOCKED_IN_HEISTS_VIA_TUNEABLE") DEBUG_PRINTCALLSTACK() SWITCH model CASE APC RETURN g_sMPTunables.bGR_BLOCK_APC_IN_HEISTS CASE ARDENT RETURN g_sMPTunables.bGR_BLOCK_ARDENT_IN_HEISTS CASE NIGHTSHARK RETURN g_sMPTunables.bGR_BLOCK_NIGHTSHARK_IN_HEISTS CASE INSURGENT3 RETURN g_sMPTunables.bGR_BLOCK_INSURGENT3_IN_HEISTS CASE TECHNICAL3 RETURN g_sMPTunables.bGR_BLOCK_TECHNICAL3_IN_HEISTS CASE HALFTRACK RETURN g_sMPTunables.bGR_BLOCK_HALFTRACK_IN_HEISTS CASE TRAILERSMALL2 RETURN g_sMPTunables.bGR_BLOCK_TRAILERSMALL_IN_HEISTS CASE TAMPA3 RETURN g_sMPTunables.bGR_BLOCK_TAMPA3_IN_HEISTS CASE DUNE3 RETURN g_sMPTunables.bGR_BLOCK_DUNE3_IN_HEISTS CASE OPPRESSOR RETURN g_sMPTunables.bGR_BLOCK_OPPRESSOR_IN_HEISTS CASE VIGILANTE RETURN g_sMPTunables.bSMUG_BLOCK_VIGILANTE_IN_HEISTS CASE THRUSTER RETURN g_sMPTunables.bH2_BLOCK_THRUSTER_IN_HEISTS CASE DELUXO PRINTLN("[TMS][TEMP] DELUXO - IS_WEAPONISED_VEHICLE_BLOCKED_IN_HEISTS_VIA_TUNEABLE - RETURNING ", g_sMPTunables.bH2_BLOCK_DELUXO_IN_HEISTS) RETURN g_sMPTunables.bH2_BLOCK_DELUXO_IN_HEISTS BREAK CASE STROMBERG RETURN g_sMPTunables.bH2_BLOCK_STROMBERG_IN_HEISTS CASE RIOT2 RETURN g_sMPTunables.bH2_BLOCK_RCV_IN_HEISTS CASE CHERNOBOG RETURN g_sMPTunables.bH2_BLOCK_CHERNOBOG_IN_HEISTS CASE BARRAGE RETURN g_sMPTunables.bH2_BLOCK_BARRAGE_IN_HEISTS CASE KHANJALI RETURN g_sMPTunables.bH2_BLOCK_KHANJALI_IN_HEISTS CASE COMET4 RETURN g_sMPTunables.bH2_BLOCK_SAFARI_IN_HEISTS CASE SAVESTRA RETURN g_sMPTunables.bH2_BLOCK_SAVESTRA_IN_HEISTS CASE REVOLTER RETURN g_sMPTunables.bH2_BLOCK_REVOLTER_IN_HEISTS CASE AVENGER RETURN g_sMPTunables.bH2_BLOCK_AVENGER_IN_HEISTS CASE VOLATOL RETURN g_sMPTunables.bH2_BLOCK_VOLATOL_IN_HEISTS CASE AKULA RETURN g_sMPTunables.bH2_BLOCK_AKULA_IN_HEISTS CASE OPPRESSOR2 RETURN g_sMPTunables.BB_BLOCK_OPPRESSOR2_IN_HEISTS CASE SCRAMJET RETURN g_sMPTunables.BB_BLOCK_SCRAMJET_IN_HEISTS CASE HYDRA RETURN g_sMPTunables.BLOCK_HYDRA_IN_HEISTS ENDSWITCH IF model = INT_TO_ENUM(MODEL_NAMES, HASH("VISERIS")) RETURN g_sMPTunables.bH2_BLOCK_VISERIS_IN_HEISTS ENDIF RETURN FALSE ENDFUNC FUNC BOOL IS_GUNRUNNING_WEAPONISED_VEHICLE_ALLOWED(BOOL bHeist, INT iCar, INT iClass = -1, BOOL bArenaWarsJob = FALSE, BOOL bStuntPremium = FALSE) MODEL_NAMES vehModel = g_MpSavedVehicles[iCar].VehicleSetupMP.VehicleSetup.eModel IF NOT IS_VEHICLE_A_WEAPONISED_VEHICLE(vehModel) RETURN TRUE ENDIF // Never allow selection of Hauler Custom or Phantom Custom IF vehModel = HAULER2 OR vehModel = PHANTOM3 RETURN FALSE ENDIF IF bHeist AND IS_WEAPONISED_VEHICLE_BLOCKED_IN_HEISTS_VIA_TUNEABLE(vehModel) PRINTLN("[TMS][TEMP] IS_GUNRUNNING_WEAPONISED_VEHICLE_ALLOWED returning FALSE due to IS_WEAPONISED_VEHICLE_BLOCKED_IN_HEISTS_VIA_TUNEABLE") RETURN FALSE ENDIF IF !bArenaWarsJob IF g_FMMC_STRUCT.iMissionType = FMMC_TYPE_RACE OR bStuntPremium IF NOT IS_SPECIAL_OR_WEAPONISED_VEHICLE_ALLOWED_FOR_RACE(g_MpSavedVehicles[iCar].VehicleSetupMP.VehicleSetup.eModel, iClass) RETURN FALSE ENDIF ELIF g_FMMC_STRUCT.iMissionType != FMMC_TYPE_MISSION RETURN FALSE ENDIF ENDIF RETURN TRUE ENDFUNC FUNC BOOL IS_VEHICLE_MODEL_BLOCKED_FOR_HEISTS(MODEL_NAMES theModel) IF IS_THIS_MODEL_A_PLANE(theModel) OR IS_THIS_MODEL_A_HELI(theModel) RETURN TRUE ENDIF SWITCH theModel CASE PHANTOM3 CASE SPEEDO4 CASE MULE4 CASE POUNDER2 CASE TERBYTE RETURN TRUE CASE MONSTER3 CASE MONSTER4 CASE MONSTER5 CASE CERBERUS CASE CERBERUS2 CASE CERBERUS3 CASE BRUISER CASE BRUISER2 CASE BRUISER3 CASE SLAMVAN4 CASE SLAMVAN5 CASE SLAMVAN6 CASE BRUTUS CASE BRUTUS2 CASE BRUTUS3 CASE SCARAB CASE SCARAB2 CASE SCARAB3 CASE DOMINATOR4 CASE DOMINATOR5 CASE DOMINATOR6 CASE IMPALER2 CASE IMPALER3 CASE IMPALER4 CASE IMPERATOR CASE IMPERATOR2 CASE IMPERATOR3 CASE ZR380 CASE ZR3802 CASE ZR3803 CASE ISSI4 CASE ISSI5 CASE ISSI6 CASE DEATHBIKE CASE DEATHBIKE2 CASE DEATHBIKE3 CASE MINITANK RETURN TRUE BREAK ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL IS_VEHICLE_ALLOWED_IN_HEISTS(BOOL bIsMissionHeist, INT iVehicle) IF bIsMissionHeist IF IS_VEHICLE_MODEL_BLOCKED_FOR_HEISTS(g_MpSavedVehicles[iVehicle].VehicleSetupMP.VehicleSetup.eModel) RETURN FALSE ENDIF ENDIF RETURN TRUE ENDFUNC FUNC BOOL IS_AIRCRAFT_IN_RACE_CLASS(MODEL_NAMES model, INT iClass) SWITCH iClass CASE FMMC_VEHICLE_CLASS_HELI SWITCH model CASE Swift CASE Valkyrie CASE SAVAGE CASE SWIFT2 CASE SUPERVOLITO CASE SUPERVOLITO2 CASE VOLATUS CASE HAVOK CASE HUNTER CASE FROGGER CASE MAVERICK CASE CARGOBOB CASE ANNIHILATOR CASE BUZZARD CASE BUZZARD2 CASE POLMAV CASE SEASPARROW CASE CONADA RETURN TRUE ENDSWITCH BREAK CASE FMMC_VEHICLE_CLASS_PLANE SWITCH model CASE VESTRA CASE miljet CASE LUXOR2 CASE NIMBUS CASE MICROLIGHT CASE MOGUL CASE ROGUE CASE SEABREEZE CASE STARLING CASE ALPHAZ1 CASE HOWARD CASE NOKOTA CASE TULA CASE CUBAN800 CASE DUSTER CASE LUXOR CASE MAMMATUS CASE SHAMAL CASE STUNT CASE VELUM RETURN TRUE ENDSWITCH BREAK CASE FMMC_VEHICLE_CLASS_JETS SWITCH model CASE BESRA CASE LAZER CASE HYDRA CASE PYRO CASE MOLOTOK RETURN TRUE ENDSWITCH BREAK ENDSWITCH RETURN FALSE ENDFUNC FUNC INT MP_GET_SAVED_AIRCRAFT_IN_CLASS(INT &vehicleSlots[],INT iClass, BOOL bIgnoreClass = FALSE, BOOL bCheckAvailablePastCurrentTime = TRUE) INT i, j, iCompareResult INT iCounter = 0 INT iTemp REPEAT MAX_MP_SAVED_VEHICLES i vehicleSlots[i] = -1 ENDREPEAT i = 0 REPEAT MAX_MP_SAVED_VEHICLES i IF g_MpSavedVehicles[i].VehicleSetupMP.VehicleSetup.eModel != DUMMY_MODEL_FOR_SCRIPT AND IS_VEHICLE_AVAILABLE_FOR_GAME(g_MpSavedVehicles[i].VehicleSetupMP.VehicleSetup.eModel, bCheckAvailablePastCurrentTime) AND IS_MODEL_IN_CDIMAGE(g_MpSavedVehicles[i].VehicleSetupMP.VehicleSetup.eModel) AND NOT IS_PERSONAL_VEHICLE_BLOCKED_BY_CREATOR(g_MpSavedVehicles[i].VehicleSetupMP.VehicleSetup.eModel) IF IS_AIRCRAFT_IN_RACE_CLASS(g_MpSavedVehicles[i].VehicleSetupMP.VehicleSetup.eModel, iClass) OR bIgnoreClass vehicleSlots[iCounter] = i iCounter++ ENDIF ENDIF ENDREPEAT i = 0 REPEAT iCounter i IF g_MpSavedVehicles[vehicleSlots[i]].VehicleSetupMP.VehicleSetup.eModel != DUMMY_MODEL_FOR_SCRIPT AND IS_VEHICLE_AVAILABLE_FOR_GAME(g_MpSavedVehicles[vehicleSlots[i]].VehicleSetupMP.VehicleSetup.eModel, bCheckAvailablePastCurrentTime) AND IS_MODEL_IN_CDIMAGE(g_MpSavedVehicles[vehicleSlots[i]].VehicleSetupMP.VehicleSetup.eModel) FOR j=i+1 TO iCounter-1 IF g_MpSavedVehicles[vehicleSlots[j]].VehicleSetupMP.VehicleSetup.eModel != DUMMY_MODEL_FOR_SCRIPT iCompareResult = COMPARE_STRINGS(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(g_MpSavedVehicles[vehicleSlots[j]].VehicleSetupMP.VehicleSetup.eModel), GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(g_MpSavedVehicles[vehicleSlots[i]].VehicleSetupMP.VehicleSetup.eModel), FALSE, 5) IF iCompareResult < 0 iTemp = vehicleSlots[j] vehicleSlots[j] = vehicleSlots[i] vehicleSlots[i] = iTemp ENDIF ENDIF ENDFOR ENDIF ENDREPEAT RETURN iCounter ENDFUNC /// PURPOSE: Returns the model name held in the vehicle saved slot FUNC MODEL_NAMES GET_CUSTOM_VEHICLE_MODEL_NAME(INT iSlot) IF iSlot != -1 RETURN g_MpSavedVehicles[iSlot].VehicleSetupMP.VehicleSetup.eModel ENDIF RETURN DUMMY_MODEL_FOR_SCRIPT ENDFUNC /// PURPOSE: Returns the obtained time as a unique ID for the saved custom vehicle. FUNC INT GET_CUSTOM_VEHICLE_UNIQUE_IDENTIFIER(INT iSlot) RETURN g_MpSavedVehicles[iSlot].iObtainedTime ENDFUNC FUNC BOOL DOES_VEHICLE_HAVE_GOLD_PREP_SETUP(VEHICLE_INDEX vehID) // CPRINTLN(DEBUG_MISSION, "DOES_VEHICLE_HAVE_GOLD_PREP_SETUP ") IF DOES_ENTITY_EXIST(vehID) AND IS_VEHICLE_DRIVEABLE(vehID) AND GET_ENTITY_MODEL(vehID) = GAUNTLET IF GET_VEHICLE_MOD(vehID, MOD_SUSPENSION) = -1 // CPRINTLN(DEBUG_MISSION, "GOLD_PREP MOD_SUSPENSION == ", GET_VEHICLE_MOD_KIT(vehID)) IF GET_VEHICLE_MOD(vehID, MOD_BRAKES) = GET_NUM_VEHICLE_MODS(vehID, MOD_BRAKES)-1 // CPRINTLN(DEBUG_MISSION, "GOLD_PREP MOD_BRAKES == ", GET_VEHICLE_MOD_KIT(vehID)) IF GET_VEHICLE_MOD(vehID, MOD_ENGINE) = GET_NUM_VEHICLE_MODS(vehID, MOD_ENGINE)-1 // CPRINTLN(DEBUG_MISSION, "GOLD_PREP MOD_ENGINE == ", GET_VEHICLE_MOD_KIT(vehID)) IF GET_VEHICLE_MOD(vehID, MOD_WHEELS) = 8 // CPRINTLN(DEBUG_MISSION, "GOLD_PREP MOD_WHEELS == ", GET_VEHICLE_MOD_KIT(vehID)) RETURN TRUE // ELSE // CPRINTLN(DEBUG_MISSION, "! GOLD_PREP MOD_WHEELS == ", GET_VEHICLE_MOD_KIT(vehID)) ENDIF // ELSE // CPRINTLN(DEBUG_MISSION, "! GOLD_PREP MOD_ENGINE == ", GET_VEHICLE_MOD_KIT(vehID)) ENDIF // ELSE // CPRINTLN(DEBUG_MISSION, "! GOLD_PREP MOD_BRAKES == ", GET_VEHICLE_MOD_KIT(vehID)) ENDIF // ELSE // CPRINTLN(DEBUG_MISSION, "! GOLD_PREP MOD_SUSPENSION == ", GET_VEHICLE_MOD_KIT(vehID)) ENDIF ENDIF RETURN FALSE ENDFUNC /// PURPOSE: Set the gold prep mods that were stored on the prep missions /// NOTE: Currently set up to handle 3 slots. FUNC BOOL SET_GOLD_PREP_VEHICLE_SETUP(VEHICLE_INDEX vehID, INT iSlot) IF NOT DOES_ENTITY_EXIST(vehID) OR NOT IS_VEHICLE_DRIVEABLE(vehID) OR GET_ENTITY_MODEL(vehID) != GAUNTLET RETURN FALSE ENDIF IF iSlot >= 0 AND iSlot < COUNT_OF(g_savedGlobals.sVehicleGenData.sHeistPrepVehicles) AND g_savedGlobals.sVehicleGenData.sHeistPrepVehicles[iSlot].eModel = GAUNTLET SET_VEHICLE_SETUP(vehID, g_savedGlobals.sVehicleGenData.sHeistPrepVehicles[iSlot]) RETURN TRUE ENDIF // None stored so just set default. SET_VEHICLE_MOD_KIT(vehID, 0) REMOVE_VEHICLE_MOD(vehID, MOD_SUSPENSION) SET_VEHICLE_MOD(vehID, MOD_BRAKES, GET_NUM_VEHICLE_MODS(vehID, MOD_BRAKES)-1) SET_VEHICLE_MOD(vehID, MOD_ENGINE, GET_NUM_VEHICLE_MODS(vehID, MOD_ENGINE)-1) SET_VEHICLE_WHEEL_TYPE_PATCHED(vehID, MWT_OFFROAD) SET_VEHICLE_MOD(vehID, MOD_WHEELS, 8) // Rock Crawler RETURN TRUE ENDFUNC FUNC VEHICLE_MOD_COLOUR_ENUM GET_VEHICLE_MOD_COLOUR_FROM_LABEL(STRING strLabel) IF IS_STRING_NULL_OR_EMPTY(strLabel) RETURN MOD_COL_DUMMY ENDIF IF NOT DOES_TEXT_LABEL_EXIST(strLabel) #IF IS_DEBUG_BUILD PRINTLN("GET_VEHICLE_MOD_COLOUR_FROM_LABEL - label doesn't exist: ", strLabel) SCRIPT_ASSERT("GET_VEHICLE_MOD_COLOUR_FROM_LABEL - invalid text label, pass logs to Kenneth R.") #ENDIF RETURN MOD_COL_DUMMY ENDIF INT iHash = GET_HASH_KEY(strLabel) SWITCH iHash CASE HASH("BLACK") RETURN MOD_COL_BLACK BREAK CASE HASH("BLACK_GRAPHITE") RETURN MOD_COL_BLACK_GRAPHITE BREAK CASE HASH("GRAPHITE") RETURN MOD_COL_GRAPHITE BREAK CASE HASH("ANTHR_BLACK") RETURN MOD_COL_ANTHR_BLACK BREAK CASE HASH("BLACK_STEEL") RETURN MOD_COL_BLACK_STEEL BREAK CASE HASH("DARK_SILVER") RETURN MOD_COL_DARK_SILVER BREAK CASE HASH("SILVER_STEEL") RETURN MOD_COL_SILVER_STEEL BREAK CASE HASH("SILVER") RETURN MOD_COL_SILVER BREAK CASE HASH("BLUE_SILVER") RETURN MOD_COL_BLUE_SILVER BREAK CASE HASH("ROLLED_STEEL") RETURN MOD_COL_ROLLED_STEEL BREAK CASE HASH("SHADOW_SILVER") RETURN MOD_COL_SHADOW_SILVER BREAK CASE HASH("STONE_SILVER") RETURN MOD_COL_STONE_SILVER BREAK CASE HASH("MIDNIGHT_SILVER") RETURN MOD_COL_MIDNIGHT_SILVER BREAK CASE HASH("CAST_IRON_SIL") RETURN MOD_COL_CAST_IRON_SIL BREAK CASE HASH("RED") RETURN MOD_COL_RED BREAK CASE HASH("TORINO_RED") RETURN MOD_COL_TORINO_RED BREAK CASE HASH("FORMULA_RED") RETURN MOD_COL_FORMULA_RED BREAK CASE HASH("LAVA_RED") RETURN MOD_COL_LAVA_RED BREAK CASE HASH("BLAZE_RED") RETURN MOD_COL_BLAZE_RED BREAK CASE HASH("GRACE_RED") RETURN MOD_COL_GRACE_RED BREAK CASE HASH("GARNET_RED") RETURN MOD_COL_GARNET_RED BREAK CASE HASH("SUNSET_RED") RETURN MOD_COL_SUNSET_RED BREAK CASE HASH("WINE_RED") RETURN MOD_COL_WINE_RED BREAK CASE HASH("CABERNET_RED") RETURN MOD_COL_CABERNET_RED BREAK CASE HASH("CANDY_RED") RETURN MOD_COL_CANDY_RED BREAK CASE HASH("HOT PINK") RETURN MOD_COL_HOT_PINK BREAK CASE HASH("PINK") RETURN MOD_COL_PINK BREAK CASE HASH("SALMON_PINK") RETURN MOD_COL_SALMON_PINK BREAK CASE HASH("SUNRISE_ORANGE") RETURN MOD_COL_SUNRISE_ORANGE BREAK CASE HASH("ORANGE") RETURN MOD_COL_ORANGE BREAK CASE HASH("BRIGHT_ORANGE") RETURN MOD_COL_BRIGHT_ORANGE BREAK CASE HASH("GOLD") RETURN MOD_COL_GOLD BREAK CASE HASH("BRONZE") RETURN MOD_COL_BRONZE BREAK CASE HASH("YELLOW") RETURN MOD_COL_YELLOW BREAK CASE HASH("RACE_YELLOW") RETURN MOD_COL_RACE_YELLOW BREAK CASE HASH("RACE_YELLOW1") RETURN MOD_COL_RACE_YELLOW1 BREAK CASE HASH("DARK_GREEN") RETURN MOD_COL_DARK_GREEN BREAK CASE HASH("RACING_GREEN") RETURN MOD_COL_RACING_GREEN BREAK CASE HASH("SEA_GREEN") RETURN MOD_COL_SEA_GREEN BREAK CASE HASH("OLIVE_GREEN") RETURN MOD_COL_OLIVE_GREEN BREAK CASE HASH("BRIGHT_GREEN") RETURN MOD_COL_BRIGHT_GREEN BREAK CASE HASH("PETROL_GREEN") RETURN MOD_COL_PETROL_GREEN BREAK CASE HASH("LIME_GREEN") RETURN MOD_COL_LIME_GREEN BREAK CASE HASH("MIDNIGHT_BLUE") RETURN MOD_COL_MIDNIGHT_BLUE BREAK CASE HASH("GALAXY_BLUE") RETURN MOD_COL_GALAXY_BLUE BREAK CASE HASH("DARK_BLUE") RETURN MOD_COL_DARK_BLUE BREAK CASE HASH("SAXON_BLUE") RETURN MOD_COL_SAXON_BLUE BREAK CASE HASH("BLUE") RETURN MOD_COL_BLUE BREAK CASE HASH("MARINER_BLUE") RETURN MOD_COL_MARINER_BLUE BREAK CASE HASH("HARBOR_BLUE") RETURN MOD_COL_HARBOR_BLUE BREAK CASE HASH("DIAMOND_BLUE") RETURN MOD_COL_DIAMOND_BLUE BREAK CASE HASH("SURF_BLUE") RETURN MOD_COL_SURF_BLUE BREAK CASE HASH("NAUTICAL_BLUE") RETURN MOD_COL_NAUTICAL_BLUE BREAK CASE HASH("RACING_BLUE") RETURN MOD_COL_RACING_BLUE BREAK CASE HASH("ULTRA_BLUE") RETURN MOD_COL_ULTRA_BLUE BREAK CASE HASH("LIGHT_BLUE") RETURN MOD_COL_LIGHT_BLUE BREAK CASE HASH("CHOCOLATE_BROWN") RETURN MOD_COL_CHOCOLATE_BROWN BREAK CASE HASH("BISON_BROWN") RETURN MOD_COL_BISON_BROWN BREAK CASE HASH("CREEK_BROWN") RETURN MOD_COL_CREEK_BROWN BREAK CASE HASH("UMBER_BROWN") RETURN MOD_COL_UMBER_BROWN BREAK CASE HASH("MAPLE_BROWN") RETURN MOD_COL_MAPLE_BROWN BREAK CASE HASH("BEECHWOOD_BROWN") RETURN MOD_COL_BEECHWOOD_BROWN BREAK CASE HASH("SIENNA_BROWN") RETURN MOD_COL_SIENNA_BROWN BREAK CASE HASH("SADDLE_BROWN") RETURN MOD_COL_SADDLE_BROWN BREAK CASE HASH("MOSS_BROWN") RETURN MOD_COL_MOSS_BROWN BREAK CASE HASH("WOODBEECH_BROWN") RETURN MOD_COL_WOODBEECH_BROWN BREAK CASE HASH("STRAW_BROWN") RETURN MOD_COL_STRAW_BROWN BREAK CASE HASH("SANDY_BROWN") RETURN MOD_COL_SANDY_BROWN BREAK CASE HASH("BLEECHED_BROWN") RETURN MOD_COL_BLEECHED_BROWN BREAK CASE HASH("PURPLE") RETURN MOD_COL_PURPLE BREAK CASE HASH("SPIN_PURPLE") RETURN MOD_COL_SPIN_PURPLE BREAK CASE HASH("MIGHT_PURPLE") RETURN MOD_COL_MIGHT_PURPLE BREAK CASE HASH("BRIGHT_PURPLE") RETURN MOD_COL_BRIGHT_PURPLE BREAK CASE HASH("CREAM") RETURN MOD_COL_CREAM BREAK CASE HASH("WHITE") RETURN MOD_COL_WHITE BREAK CASE HASH("FROST_WHITE") RETURN MOD_COL_FROST_WHITE BREAK CASE HASH("GREY") RETURN MOD_COL_GREY BREAK CASE HASH("LIGHT_GREY") RETURN MOD_COL_LIGHT_GREY BREAK CASE HASH("DARK_RED") RETURN MOD_COL_DARK_RED BREAK CASE HASH("GREEN") RETURN MOD_COL_GREEN BREAK CASE HASH("BR_STEEL") RETURN MOD_COL_BR_STEEL BREAK CASE HASH("BR BLACK_STEEL") RETURN MOD_COL_BR_BLACK_STEEL BREAK CASE HASH("BR_ALUMINIUM") RETURN MOD_COL_BR_ALUMINIUM BREAK CASE HASH("CHROME") RETURN MOD_COL_CHROME BREAK CASE HASH("FLUR_YELLOW") RETURN MOD_COL_FLUR_YELLOW BREAK CASE HASH("MATTE_OD") RETURN MOD_COL_MATTE_OD BREAK CASE HASH("MATTE_FOR") RETURN MOD_COL_MATTE_FOR BREAK CASE HASH("MATTE_FOIL") RETURN MOD_COL_MATTE_FOIL BREAK CASE HASH("MATTE_DESERT") RETURN MOD_COL_MATTE_DESERT BREAK CASE HASH("MATTE_DIRT") RETURN MOD_COL_MATTE_DIRT BREAK #IF USE_TU_CHANGES CASE HASH("GOLD_S") RETURN MOD_COL_BR_GOLD BREAK CASE HASH("GOLD_P") RETURN MOD_COL_GOLD BREAK #ENDIF ENDSWITCH RETURN MOD_COL_DUMMY ENDFUNC FUNC CARMOD_UNLOCK_PERFORMANCE_RACES GET_CARMOD_UNLOCK_PERFORMANCE_RACES_ENUM_FOR_VEHICLE_MOD_COLOUR_ENUM(MOD_COLOR_TYPE eColourType, VEHICLE_MOD_COLOUR_ENUM eModColour, BOOL bPrimary = TRUE) //////////////////////////// /// MATTE SETS IF eColourType = MCT_MATTE SWITCH eModColour // Matte Set 1 CASE MOD_COL_BLACK CASE MOD_COL_WHITE CASE MOD_COL_BLUE CASE MOD_COL_RED CASE MOD_COL_ORANGE CASE MOD_COL_LIGHT_GREY CASE MOD_COL_GREY CASE MOD_COL_YELLOW CASE MOD_COL_DARK_BLUE CASE MOD_COL_GREEN IF (bPrimary) RETURN MATTE_SET_1 ELSE RETURN SECONDARY_MATTE ENDIF BREAK // Matte Set 2 CASE MOD_COL_MATTE_FOR CASE MOD_COL_MATTE_DIRT CASE MOD_COL_MATTE_OD CASE MOD_COL_MATTE_FOIL CASE MOD_COL_MATTE_DESERT RETURN MATTE_SET_2 BREAK // Matte Set 3 CASE MOD_COL_PURPLE CASE MOD_COL_MIGHT_PURPLE CASE MOD_COL_LIME_GREEN CASE MOD_COL_MIDNIGHT_BLUE CASE MOD_COL_DARK_RED RETURN MATTE_SET_3 BREAK ENDSWITCH ENDIF //////////////////////////// /// CLASSIC SETS IF eColourType = MCT_CLASSIC SWITCH eModColour CASE MOD_COL_BLACK CASE MOD_COL_DARK_SILVER CASE MOD_COL_SILVER CASE MOD_COL_CAST_IRON_SIL CASE MOD_COL_RED CASE MOD_COL_GARNET_RED CASE MOD_COL_ORANGE CASE MOD_COL_RACE_YELLOW CASE MOD_COL_OLIVE_GREEN CASE MOD_COL_BRIGHT_GREEN CASE MOD_COL_BLUE CASE MOD_COL_HARBOR_BLUE CASE MOD_COL_LIGHT_BLUE CASE MOD_COL_CREEK_BROWN CASE MOD_COL_SADDLE_BROWN CASE MOD_COL_BLEECHED_BROWN CASE MOD_COL_BRIGHT_PURPLE CASE MOD_COL_WHITE IF (bPrimary) RETURN CLASSIC_SET ELSE RETURN SECONDARY_CLASSICS ENDIF BREAK ENDSWITCH ENDIF //////////////////////////// /// METALLIC SETS IF eColourType = MCT_METALLIC SWITCH eModColour CASE MOD_COL_BLACK CASE MOD_COL_DARK_SILVER CASE MOD_COL_SILVER CASE MOD_COL_CAST_IRON_SIL CASE MOD_COL_RED CASE MOD_COL_GARNET_RED CASE MOD_COL_ORANGE CASE MOD_COL_RACE_YELLOW CASE MOD_COL_OLIVE_GREEN CASE MOD_COL_BRIGHT_GREEN CASE MOD_COL_BLUE CASE MOD_COL_HARBOR_BLUE CASE MOD_COL_LIGHT_BLUE CASE MOD_COL_CREEK_BROWN CASE MOD_COL_SADDLE_BROWN CASE MOD_COL_BLEECHED_BROWN CASE MOD_COL_BRIGHT_PURPLE CASE MOD_COL_WHITE IF NOT bPrimary RETURN SECONDARY_METALLICS ENDIF BREAK ENDSWITCH ENDIF //////////////////////////// /// PEARLESCENT SETS IF eColourType = MCT_PEARLESCENT SWITCH eModColour CASE MOD_COL_BLACK CASE MOD_COL_DARK_SILVER CASE MOD_COL_SILVER CASE MOD_COL_CAST_IRON_SIL CASE MOD_COL_RED CASE MOD_COL_GARNET_RED CASE MOD_COL_ORANGE CASE MOD_COL_RACE_YELLOW CASE MOD_COL_OLIVE_GREEN CASE MOD_COL_BRIGHT_GREEN CASE MOD_COL_BLUE CASE MOD_COL_HARBOR_BLUE CASE MOD_COL_LIGHT_BLUE CASE MOD_COL_CREEK_BROWN CASE MOD_COL_SADDLE_BROWN CASE MOD_COL_BLEECHED_BROWN CASE MOD_COL_BRIGHT_PURPLE CASE MOD_COL_WHITE IF NOT bPrimary RETURN SECONDARY_PEARLECENT ENDIF BREAK ENDSWITCH ENDIF //////////////////////////// /// METALS SETS IF eColourType = MCT_METALS SWITCH eModColour CASE MOD_COL_BR_STEEL CASE MOD_COL_BR_BLACK_STEEL CASE MOD_COL_BR_ALUMINIUM RETURN METALS_SET_1 BREAK #IF USE_TU_CHANGES CASE MOD_COL_GOLD CASE MOD_COL_BR_GOLD RETURN METALS_SET_2 BREAK #ENDIF ENDSWITCH ENDIF //////////////////////////// /// CHALLENGE COLOURS SWITCH eModColour CASE MOD_COL_BISON_BROWN RETURN CHALLANGE_COLOUR_BISON_BROWN BREAK CASE MOD_COL_MIDNIGHT_BLUE RETURN CHALLANGE_COLOUR_MIDNIGHT_BLUE BREAK CASE MOD_COL_ULTRA_BLUE RETURN CHALLANGE_COLOUR_ULTRA_BLUE BREAK CASE MOD_COL_CANDY_RED RETURN CHALLANGE_COLOUR_CANDY_RED BREAK CASE MOD_COL_SUNRISE_ORANGE RETURN CHALLANGE_COLOUR_SUNRISE_ORANGE BREAK CASE MOD_COL_FLUR_YELLOW RETURN CHALLANGE_COLOUR_FLUR_YELLOW BREAK CASE MOD_COL_LIME_GREEN RETURN CHALLANGE_COLOUR_LIME_GREEN BREAK CASE MOD_COL_WINE_RED RETURN CHALLANGE_COLOUR_WINE_RED BREAK CASE MOD_COL_RACING_GREEN RETURN CHALLANGE_COLOUR_RACING_GREEN BREAK CASE MOD_COL_SPIN_PURPLE RETURN CHALLANGE_COLOUR_SPIN_PURPLE BREAK CASE MOD_COL_HOT_PINK RETURN CHALLANGE_COLOUR_HOT_PINK BREAK CASE MOD_COL_CABERNET_RED RETURN CHALLANGE_COLOUR_CABERNET_RED BREAK CASE MOD_COL_PETROL_GREEN RETURN CHALLANGE_COLOUR_PETROL_GREEN BREAK CASE MOD_COL_LAVA_RED RETURN CHALLANGE_COLOUR_LAVA_RED BREAK CASE MOD_COL_BEECHWOOD_BROWN RETURN CHALLANGE_COLOUR_BEECHWOOD_BROWN BREAK CASE MOD_COL_STONE_SILVER RETURN CHALLANGE_COLOUR_STONE_SILVER BREAK CASE MOD_COL_GOLD RETURN CHALLANGE_COLOUR_GOLD BREAK CASE MOD_COL_CHROME RETURN CHALLANGE_COLOUR_CHROME BREAK ENDSWITCH #IF FEATURE_GEN9_EXCLUSIVE //////////////////////////// /// CHAMELEON SETS IF eColourType = MCT_CHAMELEON SWITCH eModColour CASE MOD_COL_BLACK CASE MOD_COL_DARK_SILVER CASE MOD_COL_SILVER CASE MOD_COL_CAST_IRON_SIL CASE MOD_COL_RED CASE MOD_COL_GARNET_RED CASE MOD_COL_ORANGE CASE MOD_COL_RACE_YELLOW CASE MOD_COL_OLIVE_GREEN CASE MOD_COL_BRIGHT_GREEN CASE MOD_COL_BLUE CASE MOD_COL_HARBOR_BLUE CASE MOD_COL_LIGHT_BLUE CASE MOD_COL_CREEK_BROWN CASE MOD_COL_SADDLE_BROWN CASE MOD_COL_BLEECHED_BROWN CASE MOD_COL_BRIGHT_PURPLE CASE MOD_COL_WHITE IF (bPrimary) RETURN CLASSIC_SET ELSE RETURN SECONDARY_CLASSICS ENDIF BREAK ENDSWITCH ENDIF #ENDIF //////////////////////////// /// RANK UNLOCK SETS SWITCH eColourType // Classic, Pearlescent, and Metallic all share the same colour sets CASE MCT_CLASSIC CASE MCT_PEARLESCENT CASE MCT_METALLIC SWITCH eModColour CASE MOD_COL_BLACK_GRAPHITE CASE MOD_COL_GRAPHITE CASE MOD_COL_ANTHR_BLACK CASE MOD_COL_BLACK_STEEL //CASE MOD_COL_DARK_SILVER RETURN COLOUR_SETS_1 BREAK CASE MOD_COL_BLUE_SILVER CASE MOD_COL_ROLLED_STEEL CASE MOD_COL_SHADOW_SILVER CASE MOD_COL_MIDNIGHT_SILVER //CASE MOD_COL_CAST_IRON_SIL RETURN COLOUR_SETS_2 BREAK CASE MOD_COL_TORINO_RED CASE MOD_COL_FORMULA_RED CASE MOD_COL_BLAZE_RED CASE MOD_COL_GRACE_RED //CASE MOD_COL_GARNET_RED RETURN COLOUR_SETS_3 BREAK CASE MOD_COL_SUNSET_RED CASE MOD_COL_PINK CASE MOD_COL_SALMON_PINK //CASE MOD_COL_ORANGE CASE MOD_COL_BRIGHT_ORANGE RETURN COLOUR_SETS_4 BREAK CASE MOD_COL_BRONZE CASE MOD_COL_YELLOW CASE MOD_COL_DARK_GREEN CASE MOD_COL_SEA_GREEN //CASE MOD_COL_OLIVE_GREEN RETURN COLOUR_SETS_5 BREAK CASE MOD_COL_GALAXY_BLUE CASE MOD_COL_DARK_BLUE CASE MOD_COL_SAXON_BLUE CASE MOD_COL_MARINER_BLUE //CASE MOD_COL_HARBOR_BLUE RETURN COLOUR_SETS_6 BREAK CASE MOD_COL_DIAMOND_BLUE CASE MOD_COL_SURF_BLUE CASE MOD_COL_NAUTICAL_BLUE CASE MOD_COL_RACING_BLUE //CASE MOD_COL_LIGHT_BLUE RETURN COLOUR_SETS_7 BREAK CASE MOD_COL_CHOCOLATE_BROWN CASE MOD_COL_UMBER_BROWN CASE MOD_COL_MAPLE_BROWN CASE MOD_COL_SIENNA_BROWN //CASE MOD_COL_SADDLE_BROWN RETURN COLOUR_SETS_8 BREAK CASE MOD_COL_MOSS_BROWN CASE MOD_COL_WOODBEECH_BROWN CASE MOD_COL_STRAW_BROWN CASE MOD_COL_SANDY_BROWN //CASE MOD_COL_BLEECHED_BROWN RETURN COLOUR_SETS_9 BREAK CASE MOD_COL_PURPLE CASE MOD_COL_MIGHT_PURPLE //CASE MOD_COL_BRIGHT_PURPLE CASE MOD_COL_CREAM CASE MOD_COL_FROST_WHITE RETURN COLOUR_SETS_10 BREAK ENDSWITCH BREAK ENDSWITCH RETURN CARMOD_UNLOCK_PERFORMANCE_RACES_INVALID ENDFUNC FUNC BOOL IS_VEHICLE_MOD_COLOUR_UNLOCKED(MOD_COLOR_TYPE eColourType, VEHICLE_MOD_COLOUR_ENUM eModColour, BOOL bPrimary = TRUE , VEHICLE_INDEX vehIndex = NULL) #IF IS_DEBUG_BUILD IF lw_bUnlockAllShopItems OR lw_bUnlockAllCarmods RETURN TRUE ENDIF #ENDIF #IF FEATURE_TUNER IF IS_PLAYER_IN_AUTO_SHOP_THEY_OWN(PLAYER_ID()) RETURN TRUE ENDIF #ENDIF #IF FEATURE_GEN9_EXCLUSIVE IF IS_VEHICLE_A_HSW_VEHICLE(vehIndex) RETURN TRUE ENDIF #ENDIF // Dodgy label IF eModColour = MOD_COL_DUMMY RETURN TRUE ENDIF // Unlocked in SP IF NOT NETWORK_IS_GAME_IN_PROGRESS() RETURN TRUE ELSE IF DOES_ENTITY_EXIST(vehIndex) SWITCH GET_ENTITY_MODEL(vehIndex) CASE PHANTOM3 CASE HAULER2 CASE TRAILERLARGE CASE AVENGER CASE RIOT2 CASE CHERNOBOG CASE KHANJALI CASE BARRAGE CASE MULE4 CASE POUNDER2 CASE TERBYTE CASE OPPRESSOR2 CASE SPEEDO4 CASE RCBANDITO CASE MINITANK #IF FEATURE_COPS_N_CROOKS CASE SURFER3 #ENDIF CASE YOUGA3 RETURN TRUE BREAK DEFAULT IF IS_MODEL_POLICE_VEHICLE(GET_ENTITY_MODEL(vehIndex) #IF FEATURE_COPS_N_CROOKS, TRUE #ENDIF ) OR IS_VEHICLE_AN_ARENA_CONTENDER_VEHICLE(GET_ENTITY_MODEL(vehIndex)) RETURN TRUE ENDIF IF IS_THIS_MODEL_A_PLANE(GET_ENTITY_MODEL(vehIndex)) OR IS_THIS_MODEL_A_HELI(GET_ENTITY_MODEL(vehIndex)) RETURN TRUE ENDIF BREAK ENDSWITCH ENDIF ENDIF #IF USE_TU_CHANGES // TU mod colours IF eColourType = MCT_METALS // Golds unlock at rank 100 IF eModColour = MOD_COL_GOLD OR eModColour = MOD_COL_BR_GOLD RETURN (GET_RANK_FROM_XP_VALUE(GET_PLAYER_XP(PLAYER_ID()), FALSE) >= 100) ENDIF ENDIF #ENDIF CARMOD_UNLOCK_PERFORMANCE_RACES eUnlock = GET_CARMOD_UNLOCK_PERFORMANCE_RACES_ENUM_FOR_VEHICLE_MOD_COLOUR_ENUM(eColourType, eModColour, bPrimary) IF eUnlock != CARMOD_UNLOCK_PERFORMANCE_RACES_INVALID RETURN IS_CAR_COLOUR_UNLOCKED(eColourType, eUnlock) ENDIF RETURN TRUE ENDFUNC /// PURPOSE: Checks to see the vehicle has been rigged with a type of explosive /// NOTE: iType param [0=phone remote][1=ignition] FUNC BOOL HAS_VEHICLE_BEEN_RIGGED_WITH_EXPLOSIVES(VEHICLE_INDEX tempveh, INT iType) IF NETWORK_IS_GAME_IN_PROGRESS() IF IS_VEHICLE_DRIVEABLE(tempveh) IF iType = 0 // phone IF DECOR_IS_REGISTERED_AS_TYPE("bombdec1",DECOR_TYPE_INT) IF DECOR_EXIST_ON(tempveh,"bombdec1") RETURN TRUE ENDIF ENDIF ELIF iType = 1 // ignition IF DECOR_IS_REGISTERED_AS_TYPE("bombdec",DECOR_TYPE_INT) IF DECOR_EXIST_ON(tempveh,"bombdec") RETURN TRUE ENDIF ENDIF ENDIF ENDIF ENDIF RETURN FALSE ENDFUNC /// PURPOSE: Add/remove explosive from vehicle /// NOTE: iType param [0=phone remote][1=ignition] FUNC BOOL RIG_VEHICLE_WITH_EXPLOSIVES_GENERAL(VEHICLE_INDEX tempveh, BOOL bAddBomb, INT iType) IF IS_VEHICLE_DRIVEABLE(tempveh) INT iplayername IF bAddBomb IF DECOR_IS_REGISTERED_AS_TYPE("bombowner",DECOR_TYPE_INT) IF DECOR_IS_REGISTERED_AS_TYPE("bombdec1",DECOR_TYPE_INT) IF iType = 0 // phone IF NOT DECOR_EXIST_ON(tempveh,"bombdec1") DECOR_SET_INT(tempveh,"bombdec1",1) ENDIF ENDIF ELSE #IF IS_DEBUG_BUILD SCRIPT_ASSERT("RIG_VEHICLE_WITH_EXPLOSIVES() decorator not registered, need to be done on startup.-bombdec1") #ENDIF ENDIF IF DECOR_IS_REGISTERED_AS_TYPE("bombdec",DECOR_TYPE_INT) IF iType = 1 // ignition IF NOT DECOR_EXIST_ON(tempveh,"bombdec") DECOR_SET_INT(tempveh,"bombdec",1) ENDIF ENDIF ELSE #IF IS_DEBUG_BUILD SCRIPT_ASSERT("RIG_VEHICLE_WITH_EXPLOSIVES() decorator not registered, need to be done on startup.-bombdec") #ENDIF ENDIF IF NOT DECOR_EXIST_ON(tempveh,"bombowner") iplayername = GET_HASH_KEY(GET_PLAYER_NAME(PLAYER_ID())) DECOR_SET_INT(tempveh,"bombowner",iplayername) IF iType = 0 // remote phone ADD_VEHICLE_PHONE_EXPLOSIVE_DEVICE(tempveh) NET_PRINT("RIG_VEHICLE_WITH_EXPLOSIVES() ADDED PHONE EXPLOSIVES ") NET_NL() ENDIF ENDIF IF DECOR_EXIST_ON(tempveh,"bombowner") RETURN TRUE ENDIF ELSE #IF IS_DEBUG_BUILD SCRIPT_ASSERT("RIG_VEHICLE_WITH_EXPLOSIVES() decorator not registered, need to be done on startup.") #ENDIF ENDIF ELSE IF DECOR_EXIST_ON(tempveh,"bombdec") DECOR_REMOVE(tempveh,"bombdec") ENDIF IF DECOR_EXIST_ON(tempveh,"bombowner") DECOR_REMOVE(tempveh,"bombowner") ENDIF RETURN TRUE ENDIF ENDIF RETURN FALSE ENDFUNC /// PURPOSE: Sets the tlGarageName param and returns true if iGarage is a valid garage for the player ped #if USE_CLF_DLC FUNC BOOL GET_PLAYER_GARAGE_DATACLF(enumCharacterList ePed, INT iGarage, TEXT_LABEL_31 &tlGarageName, SAVEHOUSE_NAME_ENUM &eSavehouse) tlGarageName = "" SWITCH ePed CASE CHAR_MICHAEL IF (iGarage = 0) tlGarageName = "Michael - Beverly Hills" eSavehouse = SAVEHOUSEclf_MICHAEL_BH RETURN TRUE ELIF (iGarage = 1) tlGarageName = "Trevor - Countryside" eSavehouse = SAVEHOUSEclf_MICHAEL_CS RETURN TRUE ENDIF BREAK CASE CHAR_FRANKLIN IF (iGarage = 0) tlGarageName = "Franklin - Aunt" eSavehouse = SAVEHOUSEclf_FRANKLIN_SC RETURN TRUE ELIF (iGarage = 1) tlGarageName = "Franklin - Hills" eSavehouse = SAVEHOUSEclf_FRANKLIN_VH RETURN TRUE ENDIF BREAK CASE CHAR_TREVOR IF (iGarage = 0) tlGarageName = "Trevor - Countryside" eSavehouse = SAVEHOUSEclf_TREVOR_CS RETURN TRUE ELIF (iGarage = 1) tlGarageName = "Trevor - City" eSavehouse = SAVEHOUSEclf_TREVOR_VB RETURN TRUE ELIF (iGarage = 2) tlGarageName = "Trevor - Stripclub" eSavehouse = SAVEHOUSEclf_TREVOR_SC RETURN TRUE ENDIF BREAK ENDSWITCH RETURN FALSE ENDFUNC #endif #if USE_NRM_DLC FUNC BOOL GET_PLAYER_GARAGE_DATANRM(enumCharacterList ePed, INT iGarage, TEXT_LABEL_31 &tlGarageName, SAVEHOUSE_NAME_ENUM &eSavehouse) tlGarageName = "" SWITCH ePed CASE CHAR_MICHAEL IF (iGarage = 0) tlGarageName = "Michael - Beverly Hills" eSavehouse = SAVEHOUSENRM_BH RETURN TRUE ELIF (iGarage = 1) tlGarageName = "Michael - Beverly Hills"//temp eSavehouse = SAVEHOUSENRM_CHATEAU RETURN TRUE ENDIF BREAK CASE CHAR_NRM_JIMMY IF (iGarage = 0) tlGarageName = "Franklin - Hills"//temp eSavehouse = SAVEHOUSENRM_CHATEAU RETURN TRUE ENDIF BREAK CASE CHAR_NRM_TRACEY IF (iGarage = 0) tlGarageName = "Trevor - Countryside"//temp eSavehouse = SAVEHOUSENRM_CHATEAU RETURN TRUE ENDIF BREAK ENDSWITCH RETURN FALSE ENDFUNC #endif FUNC BOOL GET_PLAYER_GARAGE_DATA(enumCharacterList ePed, INT iGarage, TEXT_LABEL_31 &tlGarageName, SAVEHOUSE_NAME_ENUM &eSavehouse) #if USE_CLF_DLC return GET_PLAYER_GARAGE_DATACLF(ePed, iGarage, tlGarageName, eSavehouse) #endif #if USE_NRM_DLC return GET_PLAYER_GARAGE_DATANRM(ePed, iGarage, tlGarageName, eSavehouse) #endif #if not USE_CLF_DLC #if not USE_NRM_DLC tlGarageName = "" SWITCH ePed CASE CHAR_MICHAEL IF (iGarage = 0) tlGarageName = "Michael - Beverly Hills" eSavehouse = SAVEHOUSE_MICHAEL_BH RETURN TRUE ELIF (iGarage = 1) tlGarageName = "Trevor - Countryside" eSavehouse = SAVEHOUSE_MICHAEL_CS RETURN TRUE ENDIF BREAK CASE CHAR_FRANKLIN IF (iGarage = 0) tlGarageName = "Franklin - Aunt" eSavehouse = SAVEHOUSE_FRANKLIN_SC RETURN TRUE ELIF (iGarage = 1) tlGarageName = "Franklin - Hills" eSavehouse = SAVEHOUSE_FRANKLIN_VH RETURN TRUE ENDIF BREAK CASE CHAR_TREVOR IF (iGarage = 0) tlGarageName = "Trevor - Countryside" eSavehouse = SAVEHOUSE_TREVOR_CS RETURN TRUE ELIF (iGarage = 1) tlGarageName = "Trevor - City" eSavehouse = SAVEHOUSE_TREVOR_VB RETURN TRUE ELIF (iGarage = 2) tlGarageName = "Trevor - Stripclub" eSavehouse = SAVEHOUSE_TREVOR_SC RETURN TRUE ENDIF BREAK ENDSWITCH RETURN FALSE #endif #endif ENDFUNC /// PURPOSE: Sets the tlGarageName param and returns true if iGarage is a valid garage for the player ped PROC UPDATE_VEHICLE_COORDS_FOR_PLAYERS_GARGE(enumCharacterList ePed, INT iGarage, VECTOR &vCoords) SWITCH ePed CASE CHAR_MICHAEL IF (iGarage = 0) vCoords.z = 71.47866 ELIF (iGarage = 1) vCoords.z = 31.39692 ENDIF BREAK CASE CHAR_FRANKLIN IF (iGarage = 0) vCoords.z = 29.65688 ELIF (iGarage = 1) vCoords.z = 175.02774 ENDIF BREAK CASE CHAR_TREVOR IF (iGarage = 0) vCoords.z = 31.39692 ELIF (iGarage = 1) vCoords.z = 3.24864 ELIF (iGarage = 2) // strip club - doesnt have a garage ENDIF BREAK ENDSWITCH ENDPROC PROC DISABLE_ALL_SP_PLAYER_GARAGES(BOOL isInInvite =FALSE) // Fix for bug# 1591772 - Cars are not saved in garages when returning from MP. CLOSE_SAFEHOUSE_GARAGES() PRINTLN("SP GARAGE: DISABLE_ALL_SP_PLAYER_GARAGES calling CLOSE_SAFEHOUSE_GARAGES") INT iPed, iGarage TEXT_LABEL_31 tlGarageName SAVEHOUSE_NAME_ENUM eSavehouse REPEAT NUM_OF_PLAYABLE_PEDS iPed iGarage = 0 WHILE GET_PLAYER_GARAGE_DATA(INT_TO_ENUM(enumCharacterList, iPed), iGarage, tlGarageName, eSavehouse) PRINTLN("SP GARAGE: Disabling garage, ", tlGarageName) ENABLE_SAVING_IN_GARAGE(GET_HASH_KEY(tlGarageName), FALSE) IF isInInvite CLEAR_OBJECTS_INSIDE_GARAGE(GET_HASH_KEY(tlGarageName), TRUE, FALSE, FALSE, FALSE) ENDIF iGarage++ ENDWHILE ENDREPEAT ENDPROC FUNC BOOL IS_VEHICLE_IN_PURCHASED_GARAGE(VEHICLE_INDEX vehToCheck) IF DOES_ENTITY_EXIST(g_sVehicleGenNSData.vehicleSelectID[ENUM_TO_INT(VEHGEN_MISSION_VEH)]) IF vehToCheck = g_sVehicleGenNSData.vehicleSelectID[ENUM_TO_INT(VEHGEN_MISSION_VEH)] CPRINTLN(DEBUG_AMBIENT,"IS_VEHICLE_IN_PURCHASED_GARAGE - vehicle we're checking is part of the mission vehicle gen, making an exception and returning False.") RETURN FALSE // If the vehicle we're checking is part of the mission vehicle gen, don't impound it ENDIF ENDIF INT iVeh REPEAT NUMBER_OF_VEHICLES_TO_GEN iVeh IF DOES_ENTITY_EXIST(g_sVehicleGenNSData.vehicleSelectID[iVeh]) IF iVeh != ENUM_TO_INT(VEHGEN_MISSION_VEH) // Kenneth R. // The car garage now handles tracking and removing track when moving car in/out of garage. AND iVeh != ENUM_TO_INT(VEHGEN_WEB_CAR_MICHAEL) AND iVeh != ENUM_TO_INT(VEHGEN_WEB_CAR_FRANKLIN) AND iVeh != ENUM_TO_INT(VEHGEN_WEB_CAR_TREVOR) AND iVeh != ENUM_TO_INT(VEHGEN_FRANKLIN_GARAGE_1) AND iVeh != ENUM_TO_INT(VEHGEN_FRANKLIN_GARAGE_2) AND iVeh != ENUM_TO_INT(VEHGEN_FRANKLIN_GARAGE_3) AND iVeh != ENUM_TO_INT(VEHGEN_TREVOR_GARAGE_1) AND iVeh != ENUM_TO_INT(VEHGEN_TREVOR_GARAGE_2) AND iVeh != ENUM_TO_INT(VEHGEN_TREVOR_GARAGE_3) AND iVeh != ENUM_TO_INT(VEHGEN_MICHAEL_GARAGE_1) AND iVeh != ENUM_TO_INT(VEHGEN_MICHAEL_GARAGE_2) AND iVeh != ENUM_TO_INT(VEHGEN_MICHAEL_GARAGE_3) IF vehToCheck = g_sVehicleGenNSData.vehicleSelectID[iVeh] CPRINTLN(DEBUG_AMBIENT,"IS_VEHICLE_IN_PURCHASED_GARAGE - vehicle belongs to character's purchased garage.") RETURN TRUE ENDIF ENDIF ENDIF ENDREPEAT RETURN FALSE ENDFUNC /// PURPOSE: Returns TRUE if the specified vehicle is in the players garage FUNC BOOL IS_VEHICLE_IN_PLAYERS_GARAGE(VEHICLE_INDEX vehToCheck, enumCharacterList ePedGarageToCheck, BOOL bSavehouseMustBeAvailable) IF NOT DOES_ENTITY_EXIST(vehToCheck) OR NOT IS_VEHICLE_DRIVEABLE(vehToCheck) RETURN FALSE ENDIF INT iGarage = 0 TEXT_LABEL_31 tlGarageName SAVEHOUSE_NAME_ENUM eSavehouse WHILE GET_PLAYER_GARAGE_DATA(ePedGarageToCheck, iGarage, tlGarageName, eSavehouse) #if USE_CLF_DLC IF NOT bSavehouseMustBeAvailable OR IS_BIT_SET(g_savedGlobalsClifford.sRespawnData.iSavehouseProperties[eSavehouse], REPAWN_FLAG_AVAILABLE_BIT) IF IS_VEHICLE_IN_GARAGE_AREA(tlGarageName, vehToCheck) CDEBUG1LN(DEBUG_AMBIENT,"IS_VEHICLE_IN_PLAYERS_GARAGE - vehicle belongs to CLF player's garage[", eSavehouse, "].") RETURN TRUE ENDIF ENDIF #endif #if USE_NRM_DLC IF NOT bSavehouseMustBeAvailable OR IS_BIT_SET(g_savedGlobalsnorman.sRespawnData.iSavehouseProperties[eSavehouse], REPAWN_FLAG_AVAILABLE_BIT) IF IS_VEHICLE_IN_GARAGE_AREA(tlGarageName, vehToCheck) CDEBUG1LN(DEBUG_AMBIENT,"IS_VEHICLE_IN_PLAYERS_GARAGE - vehicle belongs to NRM player's garage[", eSavehouse, "].") RETURN TRUE ENDIF ENDIF #endif #if not USE_CLF_DLC #if not USE_NRM_DLC IF NOT bSavehouseMustBeAvailable OR IS_BIT_SET(g_savedGlobals.sRespawnData.iSavehouseProperties[eSavehouse], REPAWN_FLAG_AVAILABLE_BIT) IF IS_VEHICLE_IN_GARAGE_AREA(tlGarageName, vehToCheck) CDEBUG1LN(DEBUG_AMBIENT,"IS_VEHICLE_IN_PLAYERS_GARAGE - vehicle belongs to player's garage[", eSavehouse, "].") RETURN TRUE ELSE CDEBUG1LN(DEBUG_AMBIENT,"IS_VEHICLE_IN_PLAYERS_GARAGE - vehicle not in garage area[", eSavehouse, "].", "Garage: ",tlGarageName) ENDIF ELSE CDEBUG1LN(DEBUG_AMBIENT,"IS_VEHICLE_IN_PLAYERS_GARAGE - vehicle not in available garage[", eSavehouse, "].", "Garage: ",tlGarageName, " bSavehouseMustBeAvailable: ",bSavehouseMustBeAvailable, " REPAWN_FLAG_AVAILABLE_BIT: ", IS_BIT_SET(g_savedGlobals.sRespawnData.iSavehouseProperties[eSavehouse], REPAWN_FLAG_AVAILABLE_BIT)) ENDIF #endif #endif iGarage++ ENDWHILE CDEBUG1LN(DEBUG_AMBIENT,"IS_VEHICLE_IN_PLAYERS_GARAGE - vehicle not in player's garage[", eSavehouse, "].") RETURN FALSE ENDFUNC FUNC BOOL IS_VEHICLE_MODEL_SAFE_FOR_IMPOUND(MODEL_NAMES eModel) IF eModel = DUMMY_MODEL_FOR_SCRIPT CPRINTLN(DEBUG_AMBIENT,"IS_VEHICLE_MODEL_SAFE_FOR_IMPOUND - eModel = DUMMY_MODEL_FOR_SCRIPT.") RETURN FALSE ENDIF IF NOT IS_VEHICLE_AVAILABLE_FOR_GAME(eModel) CPRINTLN(DEBUG_AMBIENT,"IS_VEHICLE_MODEL_SAFE_FOR_IMPOUND - vehicle model is not available for game.") RETURN FALSE ENDIF IF IS_THIS_MODEL_A_BOAT(eModel) OR IS_THIS_MODEL_A_PLANE(eModel) OR IS_THIS_MODEL_A_HELI(eModel) OR IS_THIS_MODEL_A_TRAIN(eModel) CPRINTLN(DEBUG_AMBIENT,"IS_VEHICLE_MODEL_SAFE_FOR_IMPOUND - model is a boat, plane, heli or train.") RETURN FALSE ENDIF SWITCH eModel CASE BUS CASE stretch // Stretch limo won't fit in the impound garage... CASE Barracks // Won't fit CASE ARMYTANKER // Won't fit CASE RHINO // Won't fit CASE ARMYTRAILER // Won't fit CASE Barracks2 // Won't fit CASE flatbed // Won't fit CASE ripley // Won't fit CASE TOWTRUCK CASE TOWTRUCK2 CASE Airbus CASE coach CASE RENTALBUS CASE TOURBUS CASE FIRETRUK CASE PBUS CASE TRASH CASE BENSON CASE BOATTRAILER CASE BIFF CASE HAULER CASE DOCKTRAILER CASE PHANTOM CASE POUNDER CASE TRACTOR2 CASE BULLDOZER CASE HANDLER CASE TIPTRUCK CASE CUTTER CASE DUMP CASE MIXER CASE Mixer2 CASE RUBBLE CASE SCRAP CASE TIPTRUCK2 CASE CAMPER // Too big? CASE TACO CASE BOXVILLE CASE BOXVILLE2 CASE BOXVILLE3 CASE JOURNEY CASE MULE CASE MULE2 CASE POLICE // Police vehicles not allowed CASE POLICE2 CASE POLICE3 CASE POLICE4 CASE POLICEB CASE POLICEOLD1 CASE POLICEOLD2 CASE POLICET CASE TAXI #IF USE_TU_CHANGES CASE SUBMERSIBLE //#1850579 CASE SUBMERSIBLE2 //#2091200 CASE MONSTER //#1888517 #ENDIF CPRINTLN(DEBUG_AMBIENT,"IS_VEHICLE_MODEL_SAFE_FOR_IMPOUND - vehicle model is specifically disallowed.") RETURN FALSE BREAK ENDSWITCH RETURN TRUE ENDFUNC FUNC BOOL IS_VEHICLE_SPECIAL_CASE_TO_NOT_IMPOUND(VEHICLE_INDEX vehID) MODEL_NAMES model = GET_ENTITY_MODEL(vehID) STRING plate = GET_VEHICLE_NUMBER_PLATE_TEXT(vehID) IF model = SPEEDO AND ARE_STRINGS_EQUAL(plate, "LAMAR G ") CPRINTLN(DEBUG_AMBIENT,"IS_VEHICLE_SPECIAL_CASE_TO_NOT_IMPOUND - This is Lamar's Speedo.") RETURN TRUE // This is a special case vehicle we don't want to impound ENDIF IF NOT IS_VEHICLE_AVAILABLE_FOR_GAME(model) CPRINTLN(DEBUG_AMBIENT,"IS_VEHICLE_SPECIAL_CASE_TO_NOT_IMPOUND - This is an unavailable vehicle.") RETURN TRUE ENDIF RETURN FALSE ENDFUNC FUNC BOOL IS_VEHICLE_SAFE_FOR_IMPOUND(VEHICLE_INDEX vehID) IF NOT DOES_ENTITY_EXIST(vehID) OR NOT IS_VEHICLE_DRIVEABLE(vehID) OR IS_VEHICLE_IN_PLAYERS_GARAGE(vehID, CHAR_MICHAEL, FALSE) OR IS_VEHICLE_IN_PLAYERS_GARAGE(vehID, CHAR_FRANKLIN, FALSE) OR IS_VEHICLE_IN_PLAYERS_GARAGE(vehID, CHAR_TREVOR, FALSE) OR GET_PLAYER_PED_PERSONAL_VEHICLE_BELONGS_TO(vehID) != NO_CHARACTER OR IS_VEHICLE_IN_PURCHASED_GARAGE(vehID) OR IS_VEHICLE_IN_TEMP_PLAYER_VEHICLE_ID_LIST(vehID) OR IS_VEHICLE_IN_TEMP_NPC_VEHICLE_ID_LIST(vehID) OR IS_VEHICLE_SPECIAL_CASE_TO_NOT_IMPOUND(vehID) OR NOT IS_VEHICLE_MODEL_SAFE_FOR_IMPOUND(GET_ENTITY_MODEL(vehID)) IF IS_VEHICLE_IN_TEMP_PLAYER_VEHICLE_ID_LIST(vehID) CPRINTLN(DEBUG_AMBIENT,"IS_VEHICLE_SAFE_FOR_IMPOUND -> IS_VEHICLE_IN_TEMP_PLAYER_VEHICLE_ID_LIST returned true.") ENDIF IF IS_VEHICLE_IN_TEMP_PLAYER_VEHICLE_ID_LIST(vehID) CPRINTLN(DEBUG_AMBIENT,"IS_VEHICLE_SAFE_FOR_IMPOUND -> IS_VEHICLE_IN_TEMP_NPC_VEHICLE_ID_LIST returned true.") ENDIF IF IS_VEHICLE_IN_PLAYERS_GARAGE(vehID, CHAR_MICHAEL, FALSE) CPRINTLN(DEBUG_AMBIENT,"IS_VEHICLE_SAFE_FOR_IMPOUND -> IS_VEHICLE_IN_PLAYERS_GARAGE (Michael) returned true.") ENDIF IF IS_VEHICLE_IN_PLAYERS_GARAGE(vehID, CHAR_FRANKLIN, FALSE) CPRINTLN(DEBUG_AMBIENT,"IS_VEHICLE_SAFE_FOR_IMPOUND -> IS_VEHICLE_IN_PLAYERS_GARAGE (Franklin) returned true.") ENDIF IF IS_VEHICLE_IN_PLAYERS_GARAGE(vehID, CHAR_TREVOR, FALSE) CPRINTLN(DEBUG_AMBIENT,"IS_VEHICLE_SAFE_FOR_IMPOUND -> IS_VEHICLE_IN_PLAYERS_GARAGE (Trevor) returned true.") ENDIF IF GET_PLAYER_PED_PERSONAL_VEHICLE_BELONGS_TO(vehID) != NO_CHARACTER CPRINTLN(DEBUG_AMBIENT,"IS_VEHICLE_SAFE_FOR_IMPOUND -> GET_PLAYER_PED_PERSONAL_VEHICLE_BELONGS_TO != NO_CHARACTER.") ENDIF RETURN FALSE ENDIF RETURN TRUE ENDFUNC PROC STOP_TRACKING_VEHICLE_FOR_IMPOUND(VEHICLE_INDEX vehID) IF DOES_ENTITY_EXIST(vehID) AND IS_VEHICLE_DRIVEABLE(vehID) AND vehID = g_vCarToTrackForImpound PRINTLN("\nSTOP_TRACKING_VEHICLE_FOR_IMPOUND - Impound track vehicle no longer getting tracked as requested by ", GET_THIS_SCRIPT_NAME()) g_savedGlobals.sVehicleGenData.bTrackingImpoundVehicle = FALSE g_vCarToTrackForImpound = NULL ENDIF ENDPROC PROC TRACK_VEHICLE_FOR_IMPOUND(VEHICLE_INDEX vehID, enumCharacterList eCharImpound = NO_CHARACTER) IF NOT IS_VEHICLE_SAFE_FOR_IMPOUND(vehID) CPRINTLN(DEBUG_AMBIENT,"TRACK_VEHICLE_FOR_IMPOUND - Not safe to send vehicle to impound.") EXIT ENDIF // If the character passed into this function doesn't match a playable char, find the last one that used it or use the current player ped enum. IF (eCharImpound != CHAR_MICHAEL AND eCharImpound != CHAR_FRANKLIN AND eCharImpound != CHAR_TREVOR) PED_INDEX piTemp = GET_PED_IN_VEHICLE_SEAT(vehID) IF NOT DOES_ENTITY_EXIST(piTemp) piTemp = GET_LAST_PED_IN_VEHICLE_SEAT(vehID) ENDIF IF DOES_ENTITY_EXIST(piTemp) AND NOT IS_PED_INJURED(piTemp) IF GET_ENTITY_MODEL(piTemp) = PLAYER_ZERO eCharImpound = CHAR_MICHAEL ELIF GET_ENTITY_MODEL(piTemp) = PLAYER_ONE eCharImpound = CHAR_FRANKLIN ELIF GET_ENTITY_MODEL(piTemp) = PLAYER_TWO eCharImpound = CHAR_TREVOR ENDIF ENDIF IF (eCharImpound != CHAR_MICHAEL AND eCharImpound != CHAR_FRANKLIN AND eCharImpound != CHAR_TREVOR) eCharImpound = g_savedGlobals.sPlayerData.sInfo.eCurrentPed ENDIF ENDIF CPRINTLN(DEBUG_AMBIENT,"TRACK_VEHICLE_FOR_IMPOUND - vehicle updated by ", GET_THIS_SCRIPT_NAME()) CPRINTLN(DEBUG_AMBIENT,"...index = ", NATIVE_TO_INT(vehID)) CPRINTLN(DEBUG_AMBIENT,"...model = ", GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(GET_ENTITY_MODEL(vehID))) CPRINTLN(DEBUG_AMBIENT,"...coords = ", GET_STRING_FROM_VECTOR(GET_ENTITY_COORDS(vehID))) CPRINTLN(DEBUG_AMBIENT,"...character = ", eCharImpound) // Remove this vehicle from the impound if it's in someone slot already. INT i, j REPEAT 3 i // Players REPEAT 2 j // Slots // Vehicle already in impound - remove. IF GET_ENTITY_MODEL(vehID) = g_savedGlobals.sVehicleGenData.sImpoundVehicles[i][j].eModel IF NOT IS_STRING_NULL_OR_EMPTY(g_savedGlobals.sVehicleGenData.sImpoundVehicles[i][j].tlPlateText) IF ARE_STRINGS_EQUAL(GET_VEHICLE_NUMBER_PLATE_TEXT(vehID), g_savedGlobals.sVehicleGenData.sImpoundVehicles[i][j].tlPlateText) CPRINTLN(DEBUG_AMBIENT,"...already in impound slot ", j, " for char ", i) g_savedGlobals.sVehicleGenData.sImpoundVehicles[i][j].eModel = DUMMY_MODEL_FOR_SCRIPT g_savedGlobals.sVehicleGenData.iImpoundVehicleSlot[i] = j ENDIF ENDIF ENDIF ENDREPEAT ENDREPEAT // Remove this vehicle from the switch impound setup REPEAT 3 i // Players IF GET_ENTITY_MODEL(vehID) = g_savedGlobals.sVehicleGenData.sImpoundSwitchVehicles[i].eModel IF NOT IS_STRING_NULL_OR_EMPTY(g_savedGlobals.sVehicleGenData.sImpoundSwitchVehicles[i].tlPlateText) IF ARE_STRINGS_EQUAL(GET_VEHICLE_NUMBER_PLATE_TEXT(vehID), g_savedGlobals.sVehicleGenData.sImpoundSwitchVehicles[i].tlPlateText) CPRINTLN(DEBUG_AMBIENT,"...removing vehicle info from switch data for char ", i) g_savedGlobals.sVehicleGenData.sImpoundSwitchVehicles[i].eModel = DUMMY_MODEL_FOR_SCRIPT ENDIF ENDIF ENDIF ENDREPEAT g_savedGlobals.sVehicleGenData.eCurrentTrackedChar = eCharImpound g_vCarToTrackForImpound = vehID g_savedGlobals.sVehicleGenData.bTrackingImpoundVehicle = TRUE GET_VEHICLE_SETUP(vehID, g_savedGlobals.sVehicleGenData.sCarForImpound) ENDPROC FUNC STRING CONVERT_NUMBER_TO_LETTER(INT inumber) IF inumber = 0 RETURN "0" ENDIF IF inumber = 1 RETURN "1" ENDIF IF inumber = 2 RETURN "2" ENDIF IF inumber = 3 RETURN "3" ENDIF IF inumber = 4 RETURN "4" ENDIF IF inumber = 5 RETURN "5" ENDIF IF inumber = 6 RETURN "6" ENDIF IF inumber = 7 RETURN "7" ENDIF IF inumber = 8 RETURN "8" ENDIF IF inumber = 9 RETURN "9" ENDIF IF inumber = 10 RETURN "A" ENDIF IF inumber = 11 RETURN "B" ENDIF IF inumber = 12 RETURN "C" ENDIF IF inumber = 13 RETURN "D" ENDIF IF inumber = 14 RETURN "E" ENDIF IF inumber = 15 RETURN "F" ENDIF IF inumber = 16 RETURN "G" ENDIF IF inumber = 17 RETURN "H" ENDIF IF inumber = 18 RETURN "I" ENDIF IF inumber = 19 RETURN "J" ENDIF IF inumber = 20 RETURN "K" ENDIF IF inumber = 21 RETURN "L" ENDIF IF inumber = 22 RETURN "M" ENDIF IF inumber = 23 RETURN "N" ENDIF IF inumber = 24 RETURN "O" ENDIF IF inumber = 25 RETURN "P" ENDIF IF inumber = 26 RETURN "Q" ENDIF IF inumber = 27 RETURN "R" ENDIF IF inumber = 28 RETURN "S" ENDIF IF inumber = 29 RETURN "T" ENDIF IF inumber = 30 RETURN "U" ENDIF IF inumber = 31 RETURN "V" ENDIF IF inumber = 32 RETURN "W" ENDIF IF inumber = 33 RETURN "X" ENDIF IF inumber = 34 RETURN "Y" ENDIF IF inumber = 35 RETURN "Z" ENDIF RETURN "A" ENDFUNC FUNC TEXT_LABEL_15 GENERATE_RANDOM_NUMBER_PLATE() TEXT_LABEL_15 numberplate = "" INT irand INT irepeat FOR irepeat = 0 TO 7 IF irepeat < 2 irand = GET_RANDOM_INT_IN_RANGE(1,10) numberplate += CONVERT_NUMBER_TO_LETTER(irand) ELIF irepeat < 5 irand = GET_RANDOM_INT_IN_RANGE(10,36) numberplate += CONVERT_NUMBER_TO_LETTER(irand) ELSE irand = GET_RANDOM_INT_IN_RANGE(1,10) numberplate += CONVERT_NUMBER_TO_LETTER(irand) ENDIF ENDFOR RETURN numberplate ENDFUNC #IF IS_DEBUG_BUILD PROC PRINT_VEHICLE_SETUP_STRUCT(VEHICLE_SETUP_STRUCT sVehicleSetup) PRINTLN("--- BEGIN PRINT_VEHICLE_SETUP_STRUCT---") PRINTLN("sVehicleSetup.eModel = ",sVehicleSetup.eModel) PRINTLN("sVehicleSetup.bTyresCanBurst = ", (NOT IS_BIT_SET(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_BULLETPROOF_TYRES))) PRINTLN("sVehicleSetup.bHasCrewEmblem = ", (IS_BIT_SET(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_CREWM_EMBLEM))) PRINTLN("sVehicleSetup.bHasCustomSecondaryColour = ", (IS_BIT_SET(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_CUSTOM_SECONDARY))) #IF USE_TU_CHANGES PRINTLN("sVehicleSetup.bHasCustomPrimaryColour = ", (IS_BIT_SET(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_CUSTOM_PRIMARY))) #ENDIF PRINTLN("sVehicleSetup.iWindowTintColour = ",sVehicleSetup.iWindowTintColour) PRINTLN("sVehicleSetup.iTyreR = ",sVehicleSetup.iTyreR) PRINTLN("sVehicleSetup.iTyreG = ",sVehicleSetup.iTyreG) PRINTLN("sVehicleSetup.iTyreB = ",sVehicleSetup.iTyreB) PRINTLN("sVehicleSetup.iNeonR = ",sVehicleSetup.iNeonR) PRINTLN("sVehicleSetup.iNeonG = ",sVehicleSetup.iNeonG) PRINTLN("sVehicleSetup.iNeonB = ",sVehicleSetup.iNeonB) PRINTLN("sVehicleSetup.iPlateIndex = ",sVehicleSetup.iPlateIndex) PRINTLN("sVehicleSetup.tlPlateText = ",sVehicleSetup.tlPlateText) PRINTLN("sVehicleSetup.bStolen = ", (IS_BIT_SET(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_STOLEN))) PRINTLN("sVehicleSetup.bNeonFront = ", (IS_BIT_SET(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_NEON_FRONT))) PRINTLN("sVehicleSetup.bNeonBack = ", (IS_BIT_SET(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_NEON_BACK))) PRINTLN("sVehicleSetup.bNeonLeft = ", (IS_BIT_SET(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_NEON_LEFT))) PRINTLN("sVehicleSetup.bNeonRight = ", (IS_BIT_SET(sVehicleSetup.iFlags, VEHICLE_SETUP_FLAG_NEON_RIGHT))) PRINTLN("sVehicleSetup.iColour1 = ",sVehicleSetup.iColour1) PRINTLN("sVehicleSetup.iColour2 = ",sVehicleSetup.iColour2) PRINTLN("sVehicleSetup.iColourExtra1 = ",sVehicleSetup.iColourExtra1) PRINTLN("sVehicleSetup.iColourExtra2 = ",sVehicleSetup.iColourExtra2) INT i REPEAT MAX_VEHICLE_MOD_SLOTS i PRINTLN("sVehicleSetup.iModIndex[",i,"] = ",sVehicleSetup.iModIndex[i]) ENDREPEAT REPEAT MAX_VEHICLE_MOD_VAR_SLOTS i PRINTLN("sVehicleSetup.iModVariation[",i,"] = ",sVehicleSetup.iModVariation[i]) ENDREPEAT FOR i=0 TO 11 // reset vehicle extras PRINTLN("sVehicleSetup.bExtra[",i,"] = ", (IS_BIT_SET(sVehicleSetup.iFlags, GET_VEHICLE_EXTRA_FLAG_FOR_EXTRA_INDEX(i+1)))) ENDFOR PRINTLN("--- END PRINT_VEHICLE_SETUP_STRUCT---") ENDPROC #ENDIF STRUCT VEHICLE_VALUE_DATA INT iStandardPrice INT iStreetPrice // 50% INT iInsurance // 25% INT iSellValue // 10% INT iInsurancePremium // 10% of iInsurance INT iCostToRemoveVIN ENDSTRUCT FUNC BOOL IS_VEHICLE_ALT_VERSION(VEHICLE_INDEX vehID) IF DOES_ENTITY_EXIST(vehID) AND IS_VEHICLE_DRIVEABLE(vehID) MODEL_NAMES eVehicleModel = GET_ENTITY_MODEL(vehID) SWITCH eVehicleModel CASE VOLTIC RETURN (IS_VEHICLE_EXTRA_TURNED_ON(vehID, 3)) // Hard top BREAK CASE COQUETTE RETURN (NOT IS_VEHICLE_EXTRA_TURNED_ON(vehID, 2)) // Topless BREAK CASE BANSHEE RETURN (NOT IS_VEHICLE_EXTRA_TURNED_ON(vehID, 2)) // Topless BREAK CASE STINGER RETURN (NOT IS_VEHICLE_EXTRA_TURNED_ON(vehID, 2)) // Topless BREAK ENDSWITCH ENDIF RETURN FALSE ENDFUNC FUNC INT GET_SVM_VEHICLE_INDEX(MODEL_NAMES eModel) INT iSVMModel = ENUM_TO_INT(eModel) SWITCH iSVMModel CASE HASH("TECHNICAL2") RETURN 0 BREAK CASE HASH("BOXVILLE5") RETURN 1 BREAK CASE HASH("WASTELANDER") RETURN 2 BREAK CASE HASH("PHANTOM2") RETURN 3 BREAK CASE HASH("VOLTIC2") RETURN 4 BREAK CASE HASH("DUNE4") RETURN 5 BREAK //mission variant CASE HASH("DUNE5") RETURN 5 BREAK //for sale variant CASE HASH("RUINER2") RETURN 6 BREAK CASE HASH("BLAZER5") RETURN 7 BREAK ENDSWITCH RETURN -1 ENDFUNC FUNC INT SVM_GET_FLOW_POS_FROM_VEHICLE_MODEL(MODEL_NAMES ModelName) SWITCH ModelName CASE DUNE4 RETURN ciSVM_FLOW_MISSION_SVM_dune4 //mission variant CASE DUNE5 RETURN ciSVM_FLOW_MISSION_SVM_dune4 //for sale variant CASE WASTELANDER RETURN ciSVM_FLOW_MISSION_SVM_wastelander CASE BLAZER5 RETURN ciSVM_FLOW_MISSION_SVM_blazer5 CASE PHANTOM2 RETURN ciSVM_FLOW_MISSION_SVM_Phantom2 CASE VOLTIC2 RETURN ciSVM_FLOW_MISSION_SVM_voltic2 CASE TECHNICAL2 RETURN ciSVM_FLOW_MISSION_SVM_technical2 CASE BOXVILLE5 RETURN ciSVM_FLOW_MISSION_SVM_boxville5 CASE RUINER2 RETURN ciSVM_FLOW_MISSION_SVM_ruiner2 ENDSWITCH PRINTLN("[TS] [SVMFLOW] SVM_GET_FLOW_POS_FROM_VEHICLE_MODEL - ModelName = ", ENUM_TO_INT(ModelName)) RETURN ciSVM_FLOW_MISSION_SVM_dune4 ENDFUNC //Is a vehicle unlocked in the flow //The missions are: //ciSVM_FLOW_MISSION_SVM_dune4 //ciSVM_FLOW_MISSION_SVM_wastelander //ciSVM_FLOW_MISSION_SVM_blazer5 //ciSVM_FLOW_MISSION_SVM_Phantom2 //ciSVM_FLOW_MISSION_SVM_voltic2 //ciSVM_FLOW_MISSION_SVM_technical2 //ciSVM_FLOW_MISSION_SVM_boxville5 //ciSVM_FLOW_MISSION_SVM_ruiner2 FUNC BOOL SVM_IS_SPECIAL_VEHICLE_UNLOCKED(INT iMission) IF !g_bInMultiplayer RETURN FALSE ENDIF RETURN IS_BIT_SET(GET_MP_INT_CHARACTER_STAT(MP_STAT_AT_FLOW_VEHICLE_BS), iMission) ENDFUNC FUNC INT GET_WVM_VEHICLE_SLOT(MODEL_NAMES ModelName) SWITCH ModelName CASE TRAILERSMALL2 RETURN 0 BREAK ENDSWITCH RETURN -1 ENDFUNC FUNC INT WVM_GET_FLOW_POS_FROM_VEHICLE_MODEL(MODEL_NAMES ModelName) SWITCH ModelName CASE DUNE3 RETURN ciWVM_FLOW_MISSION_WVM_DUNE3 CASE HALFTRACK RETURN ciWVM_FLOW_MISSION_WVM_HALFTRACK CASE TRAILERSMALL2 RETURN ciWVM_FLOW_MISSION_WVM_TRAILERSMALL CASE APC RETURN ciWVM_FLOW_MISSION_WVM_APC CASE TAMPA3 RETURN ciWVM_FLOW_MISSION_WVM_TAMPA CASE OPPRESSOR RETURN ciWVM_FLOW_MISSION_WVM_OPPRESSOR_2 ENDSWITCH PRINTLN("[TS] [WVMFLOW] WVM_GET_FLOW_POS_FROM_VEHICLE_MODEL - ModelName = ", ENUM_TO_INT(ModelName)) RETURN ciWVM_FLOW_MISSION_WVM_APC ENDFUNC //Is a vehicle unlocked in the flow //The missions are: //ciWVM_FLOW_MISSION_WVM_APC //ciWVM_FLOW_MISSION_WVM_DUNE3 //ciWVM_FLOW_MISSION_WVM_HALFTRACK //ciWVM_FLOW_MISSION_WVM_4 //ciWVM_FLOW_MISSION_WVM_5 //ciWVM_FLOW_MISSION_WVM_6 //ciWVM_FLOW_MISSION_WVM_7 FUNC BOOL WVM_IS_SPECIAL_VEHICLE_UNLOCKED(INT iMission) IF !g_bInMultiplayer RETURN FALSE ENDIF RETURN IS_BIT_SET(GET_MP_INT_CHARACTER_STAT(MP_STAT_WVM_FLOW_VEHICLE_BS), iMission) ENDFUNC FUNC INT GET_SUPERMOD_UPGRADE_COST(MODEL_NAMES eVehicleModel) SWITCH eVehicleModel // Lowrider CASE CHINO2 RETURN g_sMPTunables.iMod_Shop_Upgrade_Vapid_Chino_Custom BREAK CASE PRIMO2 RETURN g_sMPTunables.iMod_Shop_Upgrade_Albany_Primo_Custom BREAK CASE MOONBEAM2 RETURN g_sMPTunables.iMod_Shop_Upgrade_Declasse_Moonbeam_Custom BREAK CASE FACTION2 RETURN g_sMPTunables.iMod_Shop_Upgrade_Willard_Faction_Custom BREAK CASE BUCCANEER2 RETURN g_sMPTunables.iMod_Shop_Upgrade_Albany_Buccaneer_Custom BREAK CASE VOODOO RETURN g_sMPTunables.iMod_Shop_Upgrade_Declasse_Voodoo_Custom BREAK // January 2016 CASE SULTANRS RETURN g_sMPTunables.iBennysWebsite_Karin_Sultan_RS_Upgrade BREAK CASE BANSHEE2 RETURN g_sMPTunables.iUpgrade_Bravado_Banshee_900R_Upgrade BREAK // Lowrider2 CASE FACTION3 RETURN g_sMPTunables.iCar_Mods_Willard_Faction_Custom_Donk_Upgrade BREAK CASE MINIVAN2 RETURN g_sMPTunables.iCar_Mods_Vapid_Minivan_Custom_Upgrade BREAK CASE SABREGT2 RETURN g_sMPTunables.iCar_Mods_Declasse_Sabre_Turbo_Custom_Upgrade BREAK CASE SLAMVAN3 RETURN g_sMPTunables.iCar_Mods_Vapid_Slamvan_Custom_Upgrade BREAK CASE TORNADO5 RETURN g_sMPTunables.iCar_Mods_Declasse_Tornado_Custom_Upgrade BREAK CASE VIRGO2 RETURN g_sMPTunables.iCar_Mods_Dundreary_Virgo_Classic_Custom_Upgrade BREAK CASE COMET3 RETURN g_sMPTunables.iIMPEXP_COMET3_UPGRADE_PRICE BREAK CASE DIABLOUS2 RETURN g_sMPTunables.iIMPEXP_DIABLOUS2_UPGRADE_PRICE BREAK CASE FCR2 RETURN g_sMPTunables.iIMPEXP_FCR2_UPGRADE_PRICE BREAK CASE ITALIGTB2 RETURN g_sMPTunables.iIMPEXP_ITALIGTB2_UPGRADE_PRICE BREAK CASE SPECTER2 RETURN g_sMPTunables.iIMPEXP_SPECTER2_UPGRADE_PRICE BREAK CASE NERO2 RETURN g_sMPTunables.iIMPEXP_NERO2_UPGRADE_PRICE BREAK CASE ELEGY RETURN g_sMPTunables.iIMPEXP_ELEGY_UPGRADE_PRICE BREAK CASE TECHNICAL3 RETURN g_sMPTunables.iGR_EXISTING_FULLY_WEAPONIZED_VEHICLE_UPRGRADES_KARIN_TECHNICAL_CUSTOM BREAK CASE INSURGENT3 RETURN g_sMPTunables.iGR_EXISTING_FULLY_WEAPONIZED_VEHICLE_UPRGRADES_HVY_INSURGENT_PICK_UP_CUSTOM BREAK CASE BRUISER RETURN g_sMPTunables.iAW_UPGRADE_PRICE_APOCALYPSE_GLENDALE BREAK CASE MONSTER3 RETURN g_sMPTunables.iAW_UPGRADE_PRICE_APOCALYPSE_RATLOADER BREAK CASE IMPALER2 RETURN g_sMPTunables.iAW_UPGRADE_PRICE_APOCALYPSE_IMPALER BREAK CASE ISSI4 RETURN g_sMPTunables.iAW_UPGRADE_PRICE_APOCALYPSE_ISSI BREAK CASE DEATHBIKE RETURN g_sMPTunables.iAW_UPGRADE_PRICE_APOCALYPSE_GARGOYLE BREAK CASE DOMINATOR4 RETURN g_sMPTunables.iAW_UPGRADE_PRICE_APOCALYPSE_DOMINATOR BREAK CASE SLAMVAN4 RETURN g_sMPTunables.iAW_UPGRADE_PRICE_APOCALYPSE_SLAMVAN BREAK CASE DEATHBIKE3 RETURN g_sMPTunables.iAW_UPGRADE_PRICE_CONSUMERISM_GARGOYLE BREAK CASE DEATHBIKE2 RETURN g_sMPTunables.iAW_UPGRADE_PRICE_SCIFI_GARGOYLE BREAK CASE IMPALER3 RETURN g_sMPTunables.iAW_UPGRADE_PRICE_SCIFI_IMPALER BREAK CASE BRUISER2 RETURN g_sMPTunables.iAW_UPGRADE_PRICE_SCIFI_GLENDALE BREAK CASE SLAMVAN5 RETURN g_sMPTunables.iAW_UPGRADE_PRICE_SCIFI_SLAMVAN BREAK CASE ISSI5 RETURN g_sMPTunables.iAW_UPGRADE_PRICE_SCIFI_ISSI BREAK CASE MONSTER4 RETURN g_sMPTunables.iAW_UPGRADE_PRICE_SCIFI_RATLOADER BREAK CASE DOMINATOR5 RETURN g_sMPTunables.iAW_UPGRADE_PRICE_SCIFI_DOMINATOR BREAK CASE IMPALER4 RETURN g_sMPTunables.iAW_UPGRADE_PRICE_CONSUMERISM_IMPALER BREAK CASE BRUISER3 RETURN g_sMPTunables.iAW_UPGRADE_PRICE_CONSUMERISM_GLENDALE BREAK CASE SLAMVAN6 RETURN g_sMPTunables.iAW_UPGRADE_PRICE_CONSUMERISM_SLAMVAN BREAK CASE ISSI6 RETURN g_sMPTunables.iAW_UPGRADE_PRICE_CONSUMERISM_ISSI BREAK CASE MONSTER5 RETURN g_sMPTunables.iAW_UPGRADE_PRICE_CONSUMERISM_RATLOADER BREAK CASE DOMINATOR6 RETURN g_sMPTunables.iAW_UPGRADE_PRICE_CONSUMERISM_DOMINATOR BREAK CASE YOUGA3 RETURN g_sMPTunables.iSUM_UPGRADE_PRICE_YOUGA3 BREAK CASE GAUNTLET5 RETURN g_sMPTunables.iSUM_UPGRADE_PRICE_GAUNTLET5 BREAK CASE MANANA2 RETURN g_sMPTunables.iSUM_UPGRADE_PRICE_MANANA2 BREAK CASE PEYOTE3 RETURN g_sMPTunables.iSUM_UPGRADE_PRICE_PEYOTE3 BREAK CASE YOSEMITE3 RETURN g_sMPTunables.iSUM_UPGRADE_PRICE_YOSEMITE3 BREAK CASE GLENDALE2 RETURN g_sMPTunables.iSUM_UPGRADE_PRICE_GLENDALE2 BREAK #IF FEATURE_DLC_1_2022 CASE TENF2 RETURN g_sMPTunables.iSUM2_UPGRADE_PRICE_TENF2 CASE WEEVIL2 RETURN g_sMPTunables.iSUM2_UPGRADE_PRICE_WEEVIL2 CASE BRIOSO3 RETURN g_sMPTunables.iSUM2_UPGRADE_PRICE_BRIOSO3 CASE SENTINEL4 RETURN g_sMPTunables.iSUM2_UPGRADE_PRICE_SENTINEL4 #ENDIF ENDSWITCH CASSERTLN(DEBUG_SHOPS, "GET_SUPERMOD_UPGRADE_COST - invalid vehicle model - ", eVehicleModel, " ", GET_MODEL_NAME_FOR_DEBUG(eVehicleModel)) RETURN 0 ENDFUNC /// PURPOSE: Fills out the vehicle value data for the given vehicle model. /// NOTE: Use IS_VEHICLE_ALT_VERSION to determine if we should use alt prices for hard top/topless variants. FUNC BOOL GET_VEHICLE_VALUE(VEHICLE_VALUE_DATA &sData, MODEL_NAMES eVehicleModel #IF USE_TU_CHANGES, BOOL bAltVersion = FALSE, INT iForceNetworkPrice = -1 #ENDIF ) BOOL bNetwork_isGameInProgress = NETWORK_IS_GAME_IN_PROGRESS() #IF USE_TU_CHANGES IF iForceNetworkPrice = 0 //force net prices bNetwork_isGameInProgress = TRUE ELIF iForceNetworkPrice = 1 //disable tunables bNetwork_isGameInProgress = FALSE ENDIF #ENDIF INT iCost = -1, iBasePrice = -1 IF NOT IS_MODEL_A_VEHICLE(eVehicleModel) BOOL bSafeNonVehicle = FALSE IF eVehicleModel = DUMMY_MODEL_FOR_SCRIPT CPRINTLN(DEBUG_INTERNET, "eVehicleModel is a dummy??") ELIF eVehicleModel = eDLC_BIG_YACHT_MODEL CPRINTLN(DEBUG_INTERNET, "eVehicleModel is a big yacht??") ELIF eVehicleModel = eDLC_BIG_TRUCK_MODEL CPRINTLN(DEBUG_INTERNET, "eVehicleModel is a big truck??") ELIF eVehicleModel = eDLC_BALLISTIC_EQUIPMENT_MODEL iCost = 500000 IF bNetwork_isGameInProgress IF g_sMPTunables.IGR_BALLISTIC_EQ_PRICE >= 0 iCost = g_sMPTunables.IGR_BALLISTIC_EQ_PRICE ENDIF ENDIF bSafeNonVehicle = TRUE ELIF eVehicleModel = eDLC_BIG_PLANE_MODEL CPRINTLN(DEBUG_INTERNET, "eVehicleModel is a big plane??") ELIF eVehicleModel = eDLC_HACKER_TRUCK_MODEL CPRINTLN(DEBUG_INTERNET, "eVehicleModel is a big hacker truck??") #IF FEATURE_HEIST_ISLAND ELIF eVehicleModel = KOSATKA CPRINTLN(DEBUG_INTERNET, "eVehicleModel is a big submarine??") #ENDIF ELSE CPRINTLN(DEBUG_INTERNET, "eVehicleModel \"", GET_MODEL_NAME_FOR_DEBUG(eVehicleModel), "\" is not a vehicle??") ENDIF IF NOT bSafeNonVehicle RETURN FALSE ENDIF ENDIF SWITCH eVehicleModel CASE ADDER iCost = 1000000 BREAK CASE Akuma iCost = 9000 BREAK CASE Asea iCost = 12000 BREAK CASE Asterope iCost = 26000 BREAK CASE Bagger iCost = 16000 IF bNetwork_isGameInProgress IF g_sMPtunables.iBiker_Website_Western_Bagger_Disc_Vehicle >= 0 iCost = g_sMPtunables.iBiker_Website_Western_Bagger_Disc_Vehicle ENDIF ENDIF BREAK CASE Baller iCost = 90000 BREAK CASE Baller2 iCost = 90000 BREAK CASE Banshee iCost = 90000 BREAK CASE Bati iCost = 10000 BREAK CASE Bati2 iCost = 10000 BREAK CASE Bfinjection iCost = 16000 BREAK CASE Bison iCost = 30000 BREAK CASE Bison2 iCost = 30000 BREAK CASE Bison3 iCost = 30000 BREAK CASE BJXL iCost = 27000 IF bNetwork_isGameInProgress IF g_sMPtunables.iBB_TRADE_PRICE_EXISTING_VEHICLES_BEEJAY_XL >= 0 iCost = g_sMPtunables.iBB_TRADE_PRICE_EXISTING_VEHICLES_BEEJAY_XL ENDIF ENDIF BREAK CASE Blazer iCost = 8000 BREAK CASE Blazer2 iCost = 62000 IF bNetwork_isGameInProgress iCost = g_sMPtunables.iCH_SALE_PRICE_BLAZER2 ENDIF BREAK CASE Blista iCost = 16000 BREAK CASE bobcatxl iCost = 23000 BREAK CASE bodhi2 iCost = 12000 BREAK CASE Boxville IF NOT bAltVersion iCost = 298500 IF bNetwork_isGameInProgress iCost = g_sMPtunables.iCH_TRADE_PRICE_BOXVILLE ENDIF ELSE iCost = 398000 IF bNetwork_isGameInProgress iCost = g_sMPtunables.iCH_BIN_PRICE_BOXVILLE ENDIF iBasePrice = 298500 IF bNetwork_isGameInProgress iBasePrice = g_sMPtunables.iCH_TRADE_PRICE_BOXVILLE ENDIF ENDIF BREAK CASE STOCKADE IF NOT bAltVersion iCost = 1680000 IF bNetwork_isGameInProgress iCost = g_sMPtunables.iCH_TRADE_PRICE_STOCKADE ENDIF ELSE iCost = 2240000 IF bNetwork_isGameInProgress iCost = g_sMPtunables.iCH_BIN_PRICE_STOCKADE ENDIF iBasePrice = 1680000 IF bNetwork_isGameInProgress iBasePrice = g_sMPtunables.iCH_TRADE_PRICE_STOCKADE ENDIF ENDIF BREAK CASE Boxville2 iCost = 25000 BREAK CASE Boxville3 iCost = 25000 BREAK CASE BUCCANEER iCost = 28000 BREAK CASE Buffalo iCost = 35000 BREAK CASE Buffalo2 iCost = 96000 BREAK CASE Bullet iCost = 150000 BREAK CASE Burrito iCost = 13000 BREAK CASE Burrito2 IF bAltVersion iCost = 450000 IF bNetwork_isGameInProgress iCost = g_sMPtunables.iCH_TRADE_PRICE_BURRITO2 ENDIF ELSE iCost = 598500 IF bNetwork_isGameInProgress iCost = g_sMPtunables.iCH_BIN_PRICE_BURRITO2 ENDIF iBasePrice = 450000 IF bNetwork_isGameInProgress iBasePrice = g_sMPtunables.iCH_TRADE_PRICE_BURRITO2 ENDIF ENDIF BREAK CASE Burrito3 iCost = 13000 BREAK CASE Burrito4 iCost = 13000 BREAK CASE Carbonizzare iCost = 195000 BREAK CASE Carbonrs iCost = 40000 BREAK CASE Cavalcade iCost = 60000 BREAK CASE Cavalcade2 iCost = 70000 BREAK CASE Cheetah iCost = 650000 BREAK CASE Cogcabrio iCost = 185000 BREAK CASE Comet2 iCost = 85000 // IF bNetwork_isGameInProgress // IF g_sMPTunables.iIMPEXP_COMET2_BASE_PRICE >= 0 // iCost = g_sMPTunables.iIMPEXP_COMET2_BASE_PRICE // ENDIF // ENDIF BREAK CASE Coquette iCost = 55000 BREAK CASE Daemon iCost = 20000 // IF bNetwork_isGameInProgress // IF g_sMPtunables.iBIKER_DAEMON >= 0 // iCost = g_sMPtunables.iBIKER_DAEMON // ENDIF // ENDIF BREAK CASE Dilettante iCost = 25000 BREAK CASE Dominator iCost = 35000 IF bNetwork_isGameInProgress AND g_sMPTunables.iDLC_VEHICLE_Vapid_Dominator >= 0 iCost = g_sMPTunables.iDLC_VEHICLE_Vapid_Dominator ENDIF IF bAltVersion iBasePrice = iCost iCost = ROUND(TO_FLOAT(35000)*0.75) IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_TRADE_PRICE_DOMINATOR >= 0 iCost = g_sMPTunables.iAW_TRADE_PRICE_DOMINATOR ENDIF ENDIF BREAK CASE Double iCost = 12000 BREAK CASE Dubsta iCost = 120000 BREAK CASE Dubsta2 iCost = 120000 BREAK CASE Elegy2 IF NOT bAltVersion iCost = 95000 IF bNetwork_isGameInProgress IF g_sMPTunables.iIMPEXP_ELEGY_BASE_PRICE >= 0 iCost = g_sMPTunables.iIMPEXP_ELEGY_BASE_PRICE ENDIF ENDIF ELSE iCost = 0 IF bNetwork_isGameInProgress IF g_sMPTunables.iELEGY2_WEB_PRICE_MODIFIER >= 0 iCost = g_sMPTunables.iELEGY2_WEB_PRICE_MODIFIER ENDIF ENDIF ENDIF BREAK CASE Emperor iCost = 8000 // IF bNetwork_isGameInProgress // AND g_sMPTunables.iTRADE_PRICE_VEHICLES_EMPEROR >= 0 // iCost = g_sMPTunables.iTRADE_PRICE_VEHICLES_EMPEROR // ENDIF BREAK CASE Emperor2 iCost = 5000 BREAK CASE Emperor3 iCost = 5000 BREAK CASE Entityxf iCost = 795000 BREAK CASE Exemplar iCost = 205000 BREAK CASE F620 iCost = 80000 BREAK CASE Faggio2 iCost = 5000 BREAK CASE Felon iCost = 100000 BREAK CASE Felon2 iCost = 95000 BREAK CASE Feltzer2 iCost = 145000 BREAK CASE Fq2 iCost = 50000 IF bNetwork_isGameInProgress IF g_sMPtunables.iBB_TRADE_PRICE_EXISTING_VEHICLES_FATHOM_FQ_2 >= 0 iCost = g_sMPtunables.iBB_TRADE_PRICE_EXISTING_VEHICLES_FATHOM_FQ_2 ENDIF ENDIF BREAK CASE Fugitive iCost = 24000 BREAK CASE Fusilade iCost = 36000 BREAK CASE Futo iCost = 9000 IF bNetwork_isGameInProgress IF g_sMPtunables.iBB_TRADE_PRICE_EXISTING_VEHICLES_KARIN_FUTO >= 0 iCost = g_sMPtunables.iBB_TRADE_PRICE_EXISTING_VEHICLES_KARIN_FUTO ENDIF ENDIF BREAK CASE Gauntlet iCost = 32000 BREAK CASE Gburrito iCost = 16000 BREAK CASE Granger iCost = 35000 BREAK CASE Gresley iCost = 29000 BREAK CASE Habanero iCost = 42000 IF bNetwork_isGameInProgress IF g_sMPtunables.iBB_TRADE_PRICE_EXISTING_VEHICLES_EMPEROR_HABANERO >= 0 iCost = g_sMPtunables.iBB_TRADE_PRICE_EXISTING_VEHICLES_EMPEROR_HABANERO ENDIF ENDIF BREAK CASE Hexer iCost = 15000 BREAK CASE Hotknife iCost = 90000 BREAK CASE Infernus iCost = 440000 BREAK CASE Ingot iCost = 9000 BREAK CASE Intruder iCost = 16000 BREAK CASE Issi2 iCost = 18000 BREAK CASE Jackal iCost = 60000 BREAK CASE JB700 iCost = 475000 BREAK CASE Khamelion iCost = 100000 BREAK CASE Landstalker iCost = 58000 BREAK CASE Lguard iCost = 865000 IF bNetwork_isGameInProgress iCost = g_sMPtunables.iCH_SALE_PRICE_LGUARD ENDIF BREAK CASE FIRETRUK IF NOT bAltVersion iCost = 2471250 IF bNetwork_isGameInProgress iCost = g_sMPtunables.iCH_TRADE_PRICE_FIRETRUCK ENDIF ELSE iCost = 3295000 IF bNetwork_isGameInProgress iCost = g_sMPtunables.iCH_BIN_PRICE_FIRETRUCK ENDIF iBasePrice = 2471250 IF bNetwork_isGameInProgress iBasePrice = g_sMPtunables.iCH_TRADE_PRICE_FIRETRUCK ENDIF ENDIF BREAK CASE Manana iCost = 10000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSUM_SALE_PRICE_MANANA >= 0 iCost = g_sMPTunables.iSUM_SALE_PRICE_MANANA ENDIF ENDIF BREAK CASE Mesa iCost = 30000 BREAK CASE Minivan iCost = 30000 BREAK CASE Monroe iCost = 490000 BREAK CASE Nemesis iCost = 12000 BREAK CASE ninef iCost = 120000 BREAK CASE ninef2 iCost = 130000 BREAK CASE Oracle iCost = 82000 BREAK CASE Oracle2 iCost = 80000 BREAK CASE Patriot iCost = 50000 IF bNetwork_isGameInProgress IF g_sMPtunables.iBB_TRADE_PRICE_EXISTING_VEHICLES_MAMMOTH_PATRIOT >= 0 iCost = g_sMPtunables.iBB_TRADE_PRICE_EXISTING_VEHICLES_MAMMOTH_PATRIOT ENDIF ENDIF BREAK CASE PCJ iCost = 9000 BREAK CASE Penumbra iCost = 24000 BREAK CASE Peyote iCost = 12000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSUM_SALE_PRICE_PEYOTE >= 0 iCost = g_sMPTunables.iSUM_SALE_PRICE_PEYOTE ENDIF ENDIF BREAK CASE Phoenix iCost = 20000 // IF bNetwork_isGameInProgress // AND g_sMPTunables.iTRADE_PRICE_VEHICLES_PHOENIX >= 0 // iCost = g_sMPTunables.iTRADE_PRICE_VEHICLES_PHOENIX // ENDIF BREAK CASE Prairie iCost = 25000 IF bNetwork_isGameInProgress IF g_sMPtunables.iBB_TRADE_PRICE_EXISTING_VEHICLES_BOLLOKAN_PRAIRIE >= 0 iCost = g_sMPtunables.iBB_TRADE_PRICE_EXISTING_VEHICLES_BOLLOKAN_PRAIRIE ENDIF ENDIF BREAK CASE Pranger iCost = 35000 BREAK CASE Premier iCost = 10000 BREAK CASE Primo iCost = 9000 BREAK CASE Radi iCost = 32000 BREAK CASE Rancherxl iCost = 9000 BREAK CASE Rancherxl2 iCost = 9000 BREAK CASE Rapidgt iCost = 118000 BREAK CASE Rapidgt2 iCost = 136000 BREAK CASE Ratloader iCost = 6000 BREAK CASE Rebel iCost = 7000 BREAK CASE Rebel2 iCost = 22000 BREAK CASE Regina iCost = 8000 BREAK CASE Rocoto iCost = 85000 BREAK CASE Ruffian iCost = 10000 BREAK CASE Ruiner iCost = 10000 IF bNetwork_isGameInProgress IF g_sMPTunables.iBB_TRADE_PRICE_EXISTING_VEHICLES_IMPONTE_RUINER >= 0 iCost = g_sMPTunables.iBB_TRADE_PRICE_EXISTING_VEHICLES_IMPONTE_RUINER ENDIF ENDIF BREAK CASE Rumpo iCost = 13000 BREAK CASE SabreGT iCost = 15000 IF bNetwork_isGameInProgress IF g_sMPTunables.iWEBSITE_BENNYS_DECLASSE_SABRE_TURBO >= 0 iCost = g_sMPTunables.iWEBSITE_BENNYS_DECLASSE_SABRE_TURBO ENDIF ENDIF BREAK CASE Sadler iCost = 35000 BREAK CASE Sanchez iCost = 7000 BREAK CASE Sandking iCost = 45000 BREAK CASE Sandking2 iCost = 45000 BREAK CASE Schafter2 iCost = 65000 BREAK CASE Schwarzer iCost = 80000 BREAK CASE Seashark iCost = 16899 BREAK CASE Seminole iCost = 30000 BREAK CASE Sentinel iCost = 60000 BREAK CASE Sentinel2 iCost = 60000 BREAK CASE Serrano iCost = 60000 IF bNetwork_isGameInProgress IF g_sMPtunables.iBB_TRADE_PRICE_EXISTING_VEHICLES_BENEFACTOR_SERRANO >= 0 iCost = g_sMPtunables.iBB_TRADE_PRICE_EXISTING_VEHICLES_BENEFACTOR_SERRANO ENDIF ENDIF BREAK CASE Speedo iCost = 15000 BREAK CASE Speedo2 iCost = 15000 BREAK CASE Stanier iCost = 10000 BREAK CASE Stinger iCost = 1000000 BREAK CASE StingerGT iCost = 1000000 BREAK CASE Stratum iCost = 10000 BREAK CASE Stretch iCost = 30000 BREAK CASE Sultan iCost = 12000 BREAK CASE Superd iCost = 250000 BREAK CASE Surano iCost = 99000 BREAK CASE Surge iCost = 38000 BREAK CASE Tailgater iCost = 55000 BREAK CASE Taxi iCost = 13000 BREAK CASE Tornado iCost = 30000 IF bNetwork_isGameInProgress IF g_sMPTunables.iWEBSITE_BENNYS_DECLASSE_TORNADO >= 0 iCost = g_sMPTunables.iWEBSITE_BENNYS_DECLASSE_TORNADO ENDIF ENDIF BREAK CASE Tornado2 iCost = 30000 IF bNetwork_isGameInProgress IF g_sMPTunables.iWEBSITE_BENNYS_DECLASSE_TORNADO >= 0 iCost = g_sMPTunables.iWEBSITE_BENNYS_DECLASSE_TORNADO ENDIF ENDIF BREAK CASE Tornado3 iCost = 30000 IF bNetwork_isGameInProgress IF g_sMPTunables.iWEBSITE_BENNYS_DECLASSE_TORNADO >= 0 iCost = g_sMPTunables.iWEBSITE_BENNYS_DECLASSE_TORNADO ENDIF ENDIF BREAK CASE Tornado4 iCost = 30000 IF bNetwork_isGameInProgress IF g_sMPTunables.iWEBSITE_BENNYS_DECLASSE_TORNADO >= 0 iCost = g_sMPTunables.iWEBSITE_BENNYS_DECLASSE_TORNADO ENDIF ENDIF BREAK CASE Vacca iCost = 240000 BREAK CASE Vader iCost = 9000 BREAK CASE Vigero iCost = 21000 BREAK CASE Voltic iCost = 80000 BREAK CASE Voodoo2 iCost = 5000 BREAK CASE Washington iCost = 15000 BREAK CASE Youga iCost = 16000 BREAK CASE Zion iCost = 50000 BREAK CASE Zion2 iCost = 65000 BREAK CASE BMX iCost = 500 BREAK CASE scorcher iCost = 1000 BREAK CASE tribike iCost = 2500 BREAK CASE tribike2 iCost = 2500 BREAK CASE tribike3 iCost = 2500 BREAK CASE cruiser iCost = 3000 BREAK CASE Ztype IF bNetwork_isGameInProgress iCost = 1000000 ELSE iCost = 10000000 ENDIF BREAK ENDSWITCH IF bNetwork_isGameInProgress #IF USE_TU_CHANGES OR iForceNetworkPrice = 1 //disable tunables #ENDIF SWITCH eVehicleModel CASE Adder iCost = 1000000 BREAK CASE Airbus iCost = 550000 BREAK CASE Akuma iCost = 9000 BREAK // CASE Annihilator iCost = 185000 BREAK CASE Annihilator iCost = 4000000 BREAK CASE Baller2 iCost = 90000 BREAK CASE Banshee iCost = 105000 BREAK CASE Barracks iCost = 450000 BREAK CASE Bati iCost = 15000 BREAK CASE Bati2 iCost = 15000 BREAK CASE Bfinjection iCost = 16000 BREAK CASE Bison iCost = 30000 BREAK CASE Blazer iCost = 8000 BREAK CASE BMX iCost = 800 BREAK CASE Bullet iCost = 155000 BREAK CASE Bus iCost = 500000 BREAK CASE Buzzard iCost = 2000000 BREAK CASE Carbonizzare iCost = 195000 BREAK CASE Carbonrs iCost = 40000 BREAK CASE Cargobob iCost = 185000 BREAK CASE Cheetah iCost = 650000 BREAK CASE Coach iCost = 525000 BREAK CASE Cogcabrio iCost = 185000 BREAK CASE Comet2 iCost = 100000 // IF bNetwork_isGameInProgress // IF g_sMPTunables.iIMPEXP_COMET2_BASE_PRICE >= 0 // iCost = g_sMPTunables.iIMPEXP_COMET2_BASE_PRICE // ENDIF // ENDIF BREAK CASE Coquette iCost = 138000 BREAK CASE Cruiser iCost = 800 BREAK CASE Crusader iCost = 225000 BREAK CASE Cuban800 iCost = 240000 BREAK CASE Dilettante iCost = 25000 BREAK CASE Double iCost = 12000 BREAK CASE DUBSTA iCost = 70000 BREAK CASE DUBSTA2 iCost = 70000 BREAK CASE Dump iCost = 1000000 BREAK CASE Duster iCost = 275000 BREAK CASE Elegy2 IF NOT bAltVersion iCost = 95000 IF bNetwork_isGameInProgress IF g_sMPTunables.iIMPEXP_ELEGY_BASE_PRICE >= 0 iCost = g_sMPTunables.iIMPEXP_ELEGY_BASE_PRICE ENDIF ENDIF ELSE iCost = 0 IF bNetwork_isGameInProgress IF g_sMPTunables.iELEGY2_WEB_PRICE_MODIFIER >= 0 iCost = g_sMPTunables.iELEGY2_WEB_PRICE_MODIFIER ENDIF ENDIF ENDIF BREAK CASE Entityxf iCost = 795000 BREAK CASE Exemplar iCost = 205000 BREAK CASE Faggio2 iCost = 5000 BREAK CASE Felon iCost = 90000 BREAK CASE FELON2 iCost = 95000 BREAK CASE Feltzer2 iCost = 145000 BREAK CASE Frogger iCost = 1300000 BREAK CASE Fugitive iCost = 24000 BREAK CASE Gauntlet iCost = 32000 BREAK CASE Hexer iCost = 15000 BREAK CASE Hotknife iCost = 90000 BREAK CASE Infernus iCost = 440000 BREAK CASE Issi2 iCost = 18000 BREAK CASE JB700 iCost = 350000 BREAK CASE Jetmax iCost = 299000 BREAK CASE Journey iCost = 15000 BREAK CASE Khamelion iCost = 100000 BREAK CASE Luxor iCost = 1500000 BREAK CASE Mammatus iCost = 300000 BREAK CASE Marquis iCost = 413990 BREAK CASE Maverick iCost = 780000 BREAK CASE Monroe iCost = 490000 BREAK CASE Mule iCost = 27000 BREAK CASE ninef iCost = 120000 BREAK CASE ninef2 iCost = 130000 BREAK CASE Oracle2 iCost = 80000 BREAK CASE PCJ iCost = 9000 BREAK CASE Picador iCost = 9000 BREAK CASE Rapidgt iCost = 132000 BREAK CASE Rapidgt2 iCost = 140000 BREAK CASE RENTALBUS iCost = 30000 BREAK CASE Rocoto iCost = 85000 BREAK CASE Ruffian iCost = 10000 BREAK CASE Sanchez iCost = 7000 BREAK CASE Sandking iCost = 45000 BREAK CASE Schwarzer iCost = 80000 BREAK CASE Scorcher iCost = 2000 BREAK CASE Shamal iCost = 1150000 BREAK CASE Squalo iCost = 196621 BREAK CASE Stinger iCost = 850000 BREAK CASE StingerGT iCost = 875000 BREAK CASE Stretch iCost = 30000 BREAK CASE Stunt iCost = 250000 BREAK CASE Suntrap iCost = 25160 BREAK CASE Superd iCost = 250000 BREAK CASE Surano iCost = 110000 BREAK CASE Titan iCost = 5000000 BREAK CASE tribike iCost = 10000 BREAK CASE tribike2 iCost = 10000 BREAK CASE tribike3 iCost = 10000 BREAK CASE Tropic iCost = 22000 BREAK CASE Vacca iCost = 240000 BREAK CASE Vader iCost = 9000 BREAK CASE Velum iCost = 450000 BREAK CASE Vigero iCost = 21000 BREAK CASE Voltic iCost = 150000 BREAK CASE Zion iCost = 60000 BREAK CASE Zion2 iCost = 65000 BREAK // CASE Ztype iCost = 165000 BREAK CASE Ztype iCost = 950000 BREAK ENDSWITCH SWITCH eVehicleModel CASE ANNIHILATOR iCost = 1825000 BREAK CASE Blazer3 iCost = 69000 BREAK CASE BODHI2 iCost = 25000 BREAK CASE BUZZARD iCost = 1750000 BREAK CASE DILETTANTE2 iCost = 25000 BREAK CASE dloader iCost = 15000 BREAK CASE Dune2 iCost = 1000000 BREAK CASE FROGGER iCost = 1300000 BREAK CASE LUXOR iCost = 1625000 BREAK CASE MESA3 iCost = 87000 BREAK CASE PEYOTE iCost = 38000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSUM_SALE_PRICE_PEYOTE >= 0 iCost = g_sMPTunables.iSUM_SALE_PRICE_PEYOTE ENDIF ENDIF BREAK CASE Rhino iCost = 1500000 IF bNetwork_isGameInProgress IF g_sMPTunables.iRHINO_EXPENDITURE_MODIFIER >= 0 iCost = g_sMPTunables.iRHINO_EXPENDITURE_MODIFIER ENDIF ENDIF BREAK CASE romero iCost = 45000 IF bNetwork_isGameInProgress IF g_sMPTunables.iBB_TRADE_PRICE_EXISTING_VEHICLES_CHARIOT_ROMERO_HEARSE >= 0 iCost = g_sMPTunables.iBB_TRADE_PRICE_EXISTING_VEHICLES_CHARIOT_ROMERO_HEARSE ENDIF ENDIF BREAK CASE Sentinel2 iCost = 95000 BREAK CASE SHAMAL iCost = 1150000 BREAK CASE SURFER iCost = 11000 BREAK CASE Surfer2 iCost = 5000 BREAK CASE TITAN iCost = 2000000 BREAK CASE Towtruck2 iCost = 32000 BREAK ENDSWITCH // Revised vehicle values for Beach Bum pack release SWITCH eVehicleModel CASE BODHI2 iCost = 25000 //#1713525 IF bNetwork_isGameInProgress IF g_sMPTunables.iBODHI2_expenditure_modifier >= 0 iCost = g_sMPTunables.iBODHI2_expenditure_modifier ENDIF ENDIF BREAK CASE DUNE iCost = 20000 //#1713525 IF bNetwork_isGameInProgress #IF USE_TU_CHANGES OR iForceNetworkPrice = 1 #ENDIF iCost = 20000 IF g_sMPTunables.idune_expenditure_modifier >= 0 AND bNetwork_isGameInProgress iCost = g_sMPTunables.idune_expenditure_modifier ENDIF ENDIF BREAK CASE Rebel iCost = 3000 BREAK CASE Sadler iCost = 35000 BREAK CASE Sanchez2 iCost = 8000 BREAK CASE SANDKING2 iCost = 38000 BREAK ENDSWITCH // Revised vehicle values for Business pack release SWITCH eVehicleModel CASE ASEA iCost = 12000 BREAK CASE ASTEROPE iCost = 26000 IF bNetwork_isGameInProgress IF g_sMPTunables.ibusiness_vehicles_Asterope >= 0 iCost = g_sMPTunables.ibusiness_vehicles_Asterope ENDIF ENDIF BREAK CASE BOBCATXL iCost = 23000 IF bNetwork_isGameInProgress IF g_sMPTunables.ibusiness_vehicles_bobcatxl >= 0 iCost = g_sMPTunables.ibusiness_vehicles_bobcatxl ENDIF ENDIF BREAK CASE Cavalcade iCost = 60000 IF bNetwork_isGameInProgress #IF USE_TU_CHANGES OR iForceNetworkPrice = 1 #ENDIF iCost = 60000 IF g_sMPTunables.icavalcade_expenditure_modifier >= 0 AND bNetwork_isGameInProgress iCost = g_sMPTunables.icavalcade_expenditure_modifier ENDIF ENDIF BREAK CASE CAVALCADE2 iCost = 60000 IF bNetwork_isGameInProgress #IF USE_TU_CHANGES OR iForceNetworkPrice = 1 #ENDIF iCost = 70000 IF g_sMPTunables.ibusiness_vehicles_Cavalcade2 >= 0 AND bNetwork_isGameInProgress iCost = g_sMPTunables.ibusiness_vehicles_Cavalcade2 ENDIF ENDIF BREAK CASE GRANGER iCost = 35000 IF bNetwork_isGameInProgress IF g_sMPTunables.ibusiness_vehicles_Granger >= 0 iCost = g_sMPTunables.ibusiness_vehicles_Granger ENDIF ENDIF BREAK CASE INGOT iCost = 9000 IF bNetwork_isGameInProgress IF g_sMPTunables.ibusiness_vehicles_Ingot >= 0 iCost = g_sMPTunables.ibusiness_vehicles_Ingot ENDIF ENDIF BREAK CASE INTRUDER iCost = 16000 IF bNetwork_isGameInProgress IF g_sMPTunables.ibusiness_vehicles_Intruder >= 0 iCost = g_sMPTunables.ibusiness_vehicles_Intruder ENDIF ENDIF BREAK CASE MINIVAN iCost = 30000 IF bNetwork_isGameInProgress IF g_sMPTunables.ibusiness_vehicles_Minivan >= 0 iCost = g_sMPTunables.ibusiness_vehicles_Minivan ENDIF ENDIF BREAK CASE PREMIER iCost = 10000 IF bNetwork_isGameInProgress IF g_sMPTunables.ibusiness_vehicles_Premier >= 0 iCost = g_sMPTunables.ibusiness_vehicles_Premier ENDIF ENDIF BREAK CASE RADI iCost = 32000 IF bNetwork_isGameInProgress IF g_sMPTunables.ibusiness_vehicles_Radi >= 0 iCost = g_sMPTunables.ibusiness_vehicles_Radi ENDIF ENDIF BREAK CASE RANCHERXL iCost = 9000 IF bNetwork_isGameInProgress IF g_sMPTunables.ibusiness_vehicles_Rancherxl >= 0 iCost = g_sMPTunables.ibusiness_vehicles_Rancherxl ENDIF ENDIF BREAK CASE RATLOADER iCost = 6000 IF bNetwork_isGameInProgress IF g_sMPTunables.ivalentine_vehicle_RATLOADER >= 0 iCost = g_sMPTunables.ivalentine_vehicle_RATLOADER ENDIF ENDIF BREAK CASE STANIER iCost = 10000 IF bNetwork_isGameInProgress IF g_sMPTunables.ibusiness_vehicles_Stanier >= 0 iCost = g_sMPTunables.ibusiness_vehicles_Stanier ENDIF ENDIF BREAK CASE STRATUM iCost = 10000 IF bNetwork_isGameInProgress IF g_sMPTunables.ibusiness_vehicles_Stratum >= 0 iCost = g_sMPTunables.ibusiness_vehicles_Stratum ENDIF ENDIF BREAK CASE WASHINGTON iCost = 15000 IF bNetwork_isGameInProgress IF g_sMPTunables.ibusiness_vehicles_Washington >= 0 iCost = g_sMPTunables.ibusiness_vehicles_Washington ENDIF ENDIF BREAK CASE CARGOBOB iCost = 1790000 IF bNetwork_isGameInProgress IF g_sMPTunables.iEXEC1_CARGOBOB >= 0 iCost = g_sMPTunables.iEXEC1_CARGOBOB ENDIF ENDIF BREAK CASE CARGOBOB2 iCost = 1995000 IF bNetwork_isGameInProgress IF g_sMPTunables.iEXEC1_CARGOBOB2 >= 0 iCost = g_sMPTunables.iEXEC1_CARGOBOB2 ENDIF ENDIF BREAK CASE TUG iCost = 1250000 IF bNetwork_isGameInProgress IF g_sMPTunables.iEXEC1_TUG >= 0 iCost = g_sMPTunables.iEXEC1_TUG ENDIF ENDIF BREAK CASE NIMBUS iCost = 1900000 IF bNetwork_isGameInProgress IF g_sMPTunables.iEXEC1_BUCKINGHAM_NIMBUS >= 0 iCost = g_sMPTunables.iEXEC1_BUCKINGHAM_NIMBUS ENDIF ENDIF BREAK CASE BRICKADE iCost = 1110000 IF bNetwork_isGameInProgress IF g_sMPTunables.iEXEC1_HVY_BRICKADE >= 0 iCost = g_sMPTunables.iEXEC1_HVY_BRICKADE ENDIF ENDIF BREAK CASE WINDSOR2 iCost = 900000 IF bNetwork_isGameInProgress IF g_sMPTunables.iEXEC1_ENUS_WINDSOR_DROP >= 0 iCost = g_sMPTunables.iEXEC1_ENUS_WINDSOR_DROP ENDIF ENDIF BREAK CASE PROTOTIPO iCost = 2700000 IF bNetwork_isGameInProgress IF g_sMPTunables.iEXEC1_PROGEN_X80_PROTO >= 0 iCost = g_sMPTunables.iEXEC1_PROGEN_X80_PROTO ENDIF ENDIF BREAK CASE FMJ iCost = 1750000 IF bNetwork_isGameInProgress IF g_sMPTunables.iEXEC1_VAPID_FMJ >= 0 iCost = g_sMPTunables.iEXEC1_VAPID_FMJ ENDIF ENDIF BREAK CASE BESTIAGTS iCost = 610000 IF bNetwork_isGameInProgress IF g_sMPTunables.iEXEC1_GROTTI_BESTIA >= 0 iCost = g_sMPTunables.iEXEC1_GROTTI_BESTIA ENDIF ENDIF BREAK CASE XLS iCost = 253000 IF bNetwork_isGameInProgress IF g_sMPTunables.iEXEC1_BENEFACTOR_XLS >= 0 iCost = g_sMPTunables.iEXEC1_BENEFACTOR_XLS ENDIF ENDIF BREAK CASE XLS2 iCost = 522000 IF bNetwork_isGameInProgress IF g_sMPTunables.iEXEC1_BENEFACTOR_XLS_ARMORED >= 0 iCost = g_sMPTunables.iEXEC1_BENEFACTOR_XLS_ARMORED ENDIF ENDIF BREAK CASE SEVEN70 iCost = 695000 IF bNetwork_isGameInProgress IF g_sMPTunables.iEXEC1_DEWBAUCHEE_SEVEN70 >= 0 iCost = g_sMPTunables.iEXEC1_DEWBAUCHEE_SEVEN70 ENDIF ENDIF BREAK CASE PFISTER811 iCost = 1135000 IF bNetwork_isGameInProgress IF g_sMPTunables.iEXEC1_PFISTER_811 >= 0 iCost = g_sMPTunables.iEXEC1_PFISTER_811 ENDIF ENDIF BREAK CASE REAPER iCost = 1595000 IF bNetwork_isGameInProgress IF g_sMPTunables.iEXEC_VEH_PEGASUS_REAPER >= 0 iCost = g_sMPTunables.iEXEC_VEH_PEGASUS_REAPER ENDIF ENDIF BREAK CASE RUMPO3 iCost = 130000 IF bNetwork_isGameInProgress IF g_sMPTunables.iEXEC1_BRAVADO_RUMPO_CUSTOM >= 0 iCost = g_sMPTunables.iEXEC1_BRAVADO_RUMPO_CUSTOM ENDIF ENDIF BREAK CASE VOLATUS iCost = 2295000 IF bNetwork_isGameInProgress IF g_sMPTunables.iEXEC1_BUCKINGHAM_VOLATUS >= 0 iCost = g_sMPTunables.iEXEC1_BUCKINGHAM_VOLATUS ENDIF ENDIF BREAK CASE LE7B iCost = 2475000 IF bNetwork_isGameInProgress IF g_sMPtunables.iSTUNT_Annis_RE7B >= 0 iCost = g_sMPtunables.iSTUNT_Annis_RE7B ENDIF ENDIF BREAK CASE OMNIS IF NOT bAltVersion iCost = 701000 IF bNetwork_isGameInProgress IF g_sMPtunables.iSTUNT_Obey_Omnis >= 0 iCost = g_sMPtunables.iSTUNT_Obey_Omnis ENDIF ENDIF ELSE iCost = 0 // IF bNetwork_isGameInProgress // IF g_sMPtunables.iSTUNT_Obey_Omnis_FREE >= 0 // iCost = g_sMPtunables.iSTUNT_Obey_Omnis_FREE // ENDIF // ENDIF ENDIF BREAK CASE TROPOS iCost = 816000 IF bNetwork_isGameInProgress IF g_sMPtunables.iSTUNT_Lampadati_Tropos_Rallye >= 0 iCost = g_sMPtunables.iSTUNT_Lampadati_Tropos_Rallye ENDIF ENDIF BREAK CASE BRIOSO iCost = 155000 IF bNetwork_isGameInProgress IF g_sMPtunables.iSTUNT_Grotti_Brioso_RA >= 0 iCost = g_sMPtunables.iSTUNT_Grotti_Brioso_RA ENDIF ENDIF BREAK CASE TROPHYTRUCK iCost = 550000 IF bNetwork_isGameInProgress IF g_sMPtunables.iSTUNT_Vapid_Trophy_Truck >= 0 iCost = g_sMPtunables.iSTUNT_Vapid_Trophy_Truck ENDIF ENDIF BREAK CASE TROPHYTRUCK2 iCost = 695000 IF bNetwork_isGameInProgress IF g_sMPtunables.iSTUNT_Vapid_Desert_Raid >= 0 iCost = g_sMPtunables.iSTUNT_Vapid_Desert_Raid ENDIF ENDIF BREAK CASE CONTENDER iCost = 250000 IF bNetwork_isGameInProgress IF g_sMPtunables.iSTUNT_Bravado_Contender >= 0 iCost = g_sMPtunables.iSTUNT_Bravado_Contender ENDIF ENDIF BREAK CASE CLIFFHANGER iCost = 225000 IF bNetwork_isGameInProgress IF g_sMPtunables.iSTUNT_Western_Cliffhanger >= 0 iCost = g_sMPtunables.iSTUNT_Western_Cliffhanger ENDIF ENDIF BREAK CASE BF400 iCost = 95000 IF bNetwork_isGameInProgress IF g_sMPtunables.iSTUNT_Nagasaki_BF400 >= 0 iCost = g_sMPtunables.iSTUNT_Nagasaki_BF400 ENDIF ENDIF BREAK CASE TYRUS iCost = 2550000 IF bNetwork_isGameInProgress IF g_sMPtunables.iSTUNT_Progen_Tyrus >= 0 iCost = g_sMPtunables.iSTUNT_Progen_Tyrus ENDIF ENDIF BREAK CASE LYNX iCost = 1735000 IF bNetwork_isGameInProgress IF g_sMPtunables.iSTUNT_Ocelot_Lynx >= 0 iCost = g_sMPtunables.iSTUNT_Ocelot_Lynx ENDIF ENDIF BREAK CASE SHEAVA iCost = 1995000 IF bNetwork_isGameInProgress IF g_sMPtunables.iSTUNT_Emperor_Sheava >= 0 iCost = g_sMPtunables.iSTUNT_Emperor_Sheava ENDIF ENDIF BREAK CASE RALLYTRUCK IF NOT bAltVersion iCost = 1300000 IF bNetwork_isGameInProgress IF g_sMPtunables.iSTUNT_MTL_DUNE_Livery_1 >= 0 iCost = g_sMPtunables.iSTUNT_MTL_DUNE_Livery_1 ENDIF ENDIF ELSE iCost = 1385000 IF bNetwork_isGameInProgress IF g_sMPtunables.iSTUNT_MTL_DUNE_Livery_2 >= 0 iCost = g_sMPtunables.iSTUNT_MTL_DUNE_Livery_2 ENDIF ENDIF ENDIF BREAK CASE TAMPA2 iCost = 995000 IF bNetwork_isGameInProgress IF g_sMPtunables.iSTUNT_Decalsse_Drift_Tampa >= 0 iCost = g_sMPtunables.iSTUNT_Decalsse_Drift_Tampa ENDIF ENDIF BREAK CASE GARGOYLE iCost = 120000 IF bNetwork_isGameInProgress AND g_sMPtunables.iSTUNT_Western_Bike_O_Death >= 0 iCost = g_sMPtunables.iSTUNT_Western_Bike_O_Death ENDIF IF bAltVersion iBasePrice = iCost iCost = ROUND(TO_FLOAT(120000)*0.75) IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_TRADE_PRICE_GARGOYLE >= 0 iCost = g_sMPtunables.iAW_TRADE_PRICE_GARGOYLE ENDIF ENDIF BREAK CASE ESSKEY iCost = 264000 IF bNetwork_isGameInProgress IF g_sMPtunables.iBiker_Website_Pegassi_Esskey >= 0 iCost = g_sMPtunables.iBiker_Website_Pegassi_Esskey ENDIF ENDIF BREAK CASE NIGHTBLADE iCost = 100000 IF bNetwork_isGameInProgress IF g_sMPtunables.iBiker_Website_Western_Nightblade >= 0 iCost = g_sMPtunables.iBiker_Website_Western_Nightblade ENDIF ENDIF BREAK CASE DEFILER IF bAltVersion iCost = 309000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_DEFILER >= 0 iCost = g_sMPTunables.iCH_TRADE_PRICE_DEFILER ENDIF ENDIF ELSE iCost = 412000 IF bNetwork_isGameInProgress IF g_sMPTunables.iBiker_Website_Shitzu_Defiler >= 0 iCost = g_sMPTunables.iBiker_Website_Shitzu_Defiler ENDIF ENDIF iBasePrice = 309000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_DEFILER >= 0 iBasePrice = g_sMPTunables.iCH_TRADE_PRICE_DEFILER ENDIF ENDIF ENDIF BREAK CASE AVARUS iCost = 116000 IF bNetwork_isGameInProgress IF g_sMPtunables.iBiker_Website_LCC_Avarus >= 0 iCost = g_sMPtunables.iBiker_Website_LCC_Avarus ENDIF ENDIF BREAK CASE ZOMBIEA iCost = 99000 IF bNetwork_isGameInProgress IF g_sMPtunables.iBiker_Website_Western_Zombie_Bobber >= 0 iCost = g_sMPtunables.iBiker_Website_Western_Zombie_Bobber ENDIF ENDIF BREAK CASE ZOMBIEB IF NOT bAltVersion iCost = 122000 IF bNetwork_isGameInProgress IF g_sMPtunables.iBiker_Website_Western_Zombie_Chopper >= 0 iCost = g_sMPtunables.iBiker_Website_Western_Zombie_Chopper ENDIF ENDIF ELSE iCost = 0 // IF bNetwork_isGameInProgress // IF g_sMPtunables.iBiker_Website_Western_Zombie_Chopper_FREE >= 0 // iCost = g_sMPtunables.iBiker_Website_Western_Zombie_Chopper_FREE // ENDIF // ENDIF ENDIF BREAK CASE CHIMERA iCost = 210000 IF bNetwork_isGameInProgress IF g_sMPtunables.iBiker_Website_Nagasaki_Chimera >= 0 iCost = g_sMPtunables.iBiker_Website_Nagasaki_Chimera ENDIF ENDIF BREAK CASE DAEMON2 iCost = 145000 IF bNetwork_isGameInProgress IF g_sMPtunables.iBiker_Website_Western_Daemon_Custom >= 0 iCost = g_sMPtunables.iBiker_Website_Western_Daemon_Custom ENDIF ENDIF BREAK CASE RATBIKE iCost = 48000 IF bNetwork_isGameInProgress IF g_sMPtunables.iBiker_Website_Western_Rat_Bike >= 0 iCost = g_sMPtunables.iBiker_Website_Western_Rat_Bike ENDIF ENDIF BREAK CASE SHOTARO iCost = 2225000 IF bNetwork_isGameInProgress IF g_sMPtunables.iBiker_Website_Nagasaki_Shotaro >= 0 iCost = g_sMPtunables.iBiker_Website_Nagasaki_Shotaro ENDIF ENDIF BREAK CASE RAPTOR iCost = 648000 IF bNetwork_isGameInProgress IF g_sMPtunables.iBiker_Website_BF_Raptor >= 0 iCost = g_sMPtunables.iBiker_Website_BF_Raptor ENDIF ENDIF BREAK CASE HAKUCHOU2 iCost = 976000 IF bNetwork_isGameInProgress IF g_sMPtunables.iBiker_Website_Shitzu_Hakuchou_Drag >= 0 iCost = g_sMPtunables.iBiker_Website_Shitzu_Hakuchou_Drag ENDIF ENDIF BREAK CASE BLAZER4 iCost = 81000 IF bNetwork_isGameInProgress IF g_sMPtunables.iBiker_Website_Nagasaki_Street_Blazer >= 0 iCost = g_sMPtunables.iBiker_Website_Nagasaki_Street_Blazer ENDIF ENDIF BREAK CASE SANCTUS iCost = 1995000 IF bNetwork_isGameInProgress IF g_sMPtunables.iBiker_Website_LCC_Sanctus >= 0 iCost = g_sMPtunables.iBiker_Website_LCC_Sanctus ENDIF ENDIF BREAK CASE VORTEX IF NOT bAltVersion iCost = 356000 IF bNetwork_isGameInProgress IF g_sMPtunables.iBiker_Website_Pegassi_Vortex >= 0 iCost = g_sMPtunables.iBiker_Website_Pegassi_Vortex ENDIF ENDIF ELSE iCost = 0 // IF bNetwork_isGameInProgress // IF g_sMPtunables.iBiker_Website_Pegassi_Vortex_FREE >= 0 // iCost = g_sMPtunables.iBiker_Website_Pegassi_Vortex_FREE // ENDIF // ENDIF ENDIF BREAK CASE MANCHEZ IF bAltVersion iCost = 50250 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_MANCHEZ >= 0 iCost = g_sMPTunables.iCH_TRADE_PRICE_MANCHEZ ENDIF ENDIF ELSE iCost = 67000 IF bNetwork_isGameInProgress IF g_sMPTunables.iBiker_Website_Maibatsu_Manchez >= 0 iCost = g_sMPTunables.iBiker_Website_Maibatsu_Manchez ENDIF ENDIF iBasePrice = 50250 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_MANCHEZ >= 0 iBasePrice = g_sMPTunables.iCH_TRADE_PRICE_MANCHEZ ENDIF ENDIF ENDIF BREAK CASE TORNADO6 iCost = 378000 IF bNetwork_isGameInProgress IF g_sMPTunables.iWEBSITE_DECLASSE_TORNADO_RAT_ROD >= 0 iCost = g_sMPTunables.iWEBSITE_DECLASSE_TORNADO_RAT_ROD ENDIF ENDIF BREAK CASE YOUGA2 iCost = 195000 IF bNetwork_isGameInProgress IF g_sMPtunables.iWEBSITE_VAPID_YOUGA_CLASSIC >= 0 iCost = g_sMPtunables.iWEBSITE_VAPID_YOUGA_CLASSIC ENDIF ENDIF BREAK CASE WOLFSBANE IF bAltVersion iCost = 71250 IF bNetwork_isGameInProgress #IF FEATURE_COPS_N_CROOKS IF g_sMPTunables.iCNC_TRADE_PRICE_WOLFSBANE >= 0 iCost = g_sMPTunables.iCNC_TRADE_PRICE_WOLFSBANE ENDIF #ENDIF ENDIF ELSE iCost = 95000 IF bNetwork_isGameInProgress IF g_sMPTunables.iBiker_Website_Western_Wolfsbane >= 0 iCost = g_sMPTunables.iBiker_Website_Western_Wolfsbane ENDIF ENDIF iBasePrice = 71250 IF bNetwork_isGameInProgress #IF FEATURE_COPS_N_CROOKS IF g_sMPTunables.iCNC_TRADE_PRICE_WOLFSBANE >= 0 iBasePrice = g_sMPTunables.iCNC_TRADE_PRICE_WOLFSBANE ENDIF #ENDIF ENDIF ENDIF BREAK CASE FAGGIO3 iCost = 55000 IF bNetwork_isGameInProgress IF g_sMPTunables.iWEBSITE_PEGASSI_FAGGIO_MOD >= 0 iCost = g_sMPTunables.iWEBSITE_PEGASSI_FAGGIO_MOD ENDIF ENDIF BREAK CASE FAGGIO iCost = 47500 IF bNetwork_isGameInProgress IF g_sMPTunables.iWEBSITE_PEGASSI_FAGGIO_SPORT >= 0 iCost = g_sMPTunables.iWEBSITE_PEGASSI_FAGGIO_SPORT ENDIF ENDIF BREAK CASE DUNE5 IF NOT bAltVersion iCost = 3192000 IF bNetwork_isGameInProgress IF g_sMPTunables.iIMPEXP_DUNE5_BIN_PRICE >= 0 iCost = g_sMPTunables.iIMPEXP_DUNE5_BIN_PRICE ENDIF ENDIF ELSE iCost = 2400000 IF bNetwork_isGameInProgress IF g_sMPTunables.iIMPEXP_DUNE5_SECUROSERV_PRICE >= 0 iCost = g_sMPTunables.iIMPEXP_DUNE5_SECUROSERV_PRICE ENDIF ENDIF ENDIF BREAK CASE PHANTOM2 IF NOT bAltVersion iCost = 2553600 IF bNetwork_isGameInProgress IF g_sMPTunables.iIMPEXP_PHANTOM2_BIN_PRICE >= 0 iCost = g_sMPTunables.iIMPEXP_PHANTOM2_BIN_PRICE ENDIF ENDIF ELSE iCost = 1920000 IF bNetwork_isGameInProgress IF g_sMPTunables.iIMPEXP_PHANTOM2_SECUROSERV_PRICE >= 0 iCost = g_sMPTunables.iIMPEXP_PHANTOM2_SECUROSERV_PRICE ENDIF ENDIF ENDIF BREAK CASE TECHNICAL2 IF NOT bAltVersion iCost = 1489600 IF bNetwork_isGameInProgress IF g_sMPTunables.iIMPEXP_TECHNICAL2_BIN_PRICE >= 0 iCost = g_sMPTunables.iIMPEXP_TECHNICAL2_BIN_PRICE ENDIF ENDIF ELSE iCost = 1120000 IF bNetwork_isGameInProgress IF g_sMPTunables.iIMPEXP_TECHNICAL2_SECUROSERV_PRICE >= 0 iCost = g_sMPTunables.iIMPEXP_TECHNICAL2_SECUROSERV_PRICE ENDIF ENDIF ENDIF BREAK CASE BLAZER5 IF NOT bAltVersion iCost = 1755600 IF bNetwork_isGameInProgress IF g_sMPTunables.iIMPEXP_BLAZER5_BIN_PRICE >= 0 iCost = g_sMPTunables.iIMPEXP_BLAZER5_BIN_PRICE ENDIF ENDIF ELSE iCost = 1320000 IF bNetwork_isGameInProgress IF g_sMPTunables.iIMPEXP_BLAZER5_SECUROSERV_PRICE >= 0 iCost = g_sMPTunables.iIMPEXP_BLAZER5_SECUROSERV_PRICE ENDIF ENDIF ENDIF BREAK CASE BOXVILLE5 IF NOT bAltVersion iCost = 2926000 IF bNetwork_isGameInProgress IF g_sMPTunables.iIMPEXP_BOXVILLE5_BIN_PRICE >= 0 iCost = g_sMPTunables.iIMPEXP_BOXVILLE5_BIN_PRICE ENDIF ENDIF ELSE iCost = 2200000 IF bNetwork_isGameInProgress IF g_sMPTunables.iIMPEXP_BOXVILLE5_SECUROSERV_PRICE >= 0 iCost = g_sMPTunables.iIMPEXP_BOXVILLE5_SECUROSERV_PRICE ENDIF ENDIF ENDIF BREAK CASE WASTELANDER IF NOT bAltVersion iCost = 658350 IF bNetwork_isGameInProgress IF g_sMPTunables.iIMPEXP_WASTELANDER_BIN_PRICE >= 0 iCost = g_sMPTunables.iIMPEXP_WASTELANDER_BIN_PRICE ENDIF ENDIF ELSE iCost = 495000 IF bNetwork_isGameInProgress IF g_sMPTunables.iIMPEXP_WASTELANDER_SECUROSERV_PRICE >= 0 iCost = g_sMPTunables.iIMPEXP_WASTELANDER_SECUROSERV_PRICE ENDIF ENDIF ENDIF BREAK CASE RUINER2 IF NOT bAltVersion iCost = 5745600 IF bNetwork_isGameInProgress IF g_sMPTunables.iIMPEXP_RUINER2_BIN_PRICE >= 0 iCost = g_sMPTunables.iIMPEXP_RUINER2_BIN_PRICE ENDIF ENDIF ELSE iCost = 4320000 IF bNetwork_isGameInProgress IF g_sMPTunables.iIMPEXP_RUINER2_SECUROSERV_PRICE >= 0 iCost = g_sMPTunables.iIMPEXP_RUINER2_SECUROSERV_PRICE ENDIF ENDIF ENDIF BREAK CASE VOLTIC2 IF NOT bAltVersion iCost = 3830400 IF bNetwork_isGameInProgress IF g_sMPTunables.iIMPEXP_VOLTIC2_BIN_PRICE >= 0 iCost = g_sMPTunables.iIMPEXP_VOLTIC2_BIN_PRICE ENDIF ENDIF ELSE iCost = 2880000 IF bNetwork_isGameInProgress IF g_sMPTunables.iIMPEXP_VOLTIC2_SECUROSERV_PRICE >= 0 iCost = g_sMPTunables.iIMPEXP_VOLTIC2_SECUROSERV_PRICE ENDIF ENDIF ENDIF BREAK CASE PENETRATOR iCost = 880000 IF bNetwork_isGameInProgress IF g_sMPTunables.iIMPEXP_PENETRATOR_PRICE >= 0 iCost = g_sMPTunables.iIMPEXP_PENETRATOR_PRICE ENDIF ENDIF BREAK CASE TEMPESTA iCost = 1329000 IF bNetwork_isGameInProgress AND g_sMPTunables.iIMPEXP_TEMPESTA_PRICE >= 0 iCost = g_sMPTunables.iIMPEXP_TEMPESTA_PRICE ENDIF IF bAltVersion iBasePrice = iCost iCost = ROUND(TO_FLOAT(1329000)*0.75) // IF bNetwork_isGameInProgress // AND g_sMPtunables.iIMPEXP_TEMPESTA_PRICE >= 0 // iCost = g_sMPTunables.iIMPEXP_TEMPESTA_PRICE // ENDIF ENDIF BREAK CASE ITALIGTB iCost = 1189000 IF bNetwork_isGameInProgress IF g_sMPTunables.iIMPEXP_ITALIGTB_BASE_PRICE >= 0 iCost = g_sMPTunables.iIMPEXP_ITALIGTB_BASE_PRICE ENDIF ENDIF BREAK CASE ITALIGTB2 iCost = (g_sMPTunables.iIMPEXP_ITALIGTB_BASE_PRICE + GET_SUPERMOD_UPGRADE_COST(eVehicleModel)) BREAK CASE NERO iCost = 1440000 IF bNetwork_isGameInProgress IF g_sMPTunables.iIMPEXP_NERO_BASE_PRICE >= 0 iCost = g_sMPTunables.iIMPEXP_NERO_BASE_PRICE ENDIF ENDIF BREAK CASE NERO2 iCost = (g_sMPTunables.iIMPEXP_NERO_BASE_PRICE + GET_SUPERMOD_UPGRADE_COST(eVehicleModel)) BREAK CASE DIABLOUS iCost = 169000 IF bNetwork_isGameInProgress IF g_sMPTunables.iIMPEXP_DIABLOUS_BASE_PRICE >= 0 iCost = g_sMPTunables.iIMPEXP_DIABLOUS_BASE_PRICE ENDIF ENDIF BREAK CASE DIABLOUS2 iCost = (g_sMPTunables.iIMPEXP_DIABLOUS_BASE_PRICE + GET_SUPERMOD_UPGRADE_COST(eVehicleModel)) BREAK CASE FCR iCost = 135000 IF bNetwork_isGameInProgress IF g_sMPTunables.iIMPEXP_FCR_BASE_PRICE >= 0 iCost = g_sMPTunables.iIMPEXP_FCR_BASE_PRICE ENDIF ENDIF BREAK CASE FCR2 iCost = (g_sMPTunables.iIMPEXP_FCR_BASE_PRICE + GET_SUPERMOD_UPGRADE_COST(eVehicleModel)) BREAK CASE SPECTER iCost = 599000 IF bNetwork_isGameInProgress IF g_sMPTunables.iIMPEXP_SPECTER_BASE_PRICE >= 0 iCost = g_sMPTunables.iIMPEXP_SPECTER_BASE_PRICE ENDIF ENDIF BREAK CASE SPECTER2 iCost = (g_sMPTunables.iIMPEXP_SPECTER_BASE_PRICE + GET_SUPERMOD_UPGRADE_COST(eVehicleModel)) BREAK CASE COMET3 iCost = (85000 + GET_SUPERMOD_UPGRADE_COST(eVehicleModel)) BREAK CASE ELEGY iCost = (g_sMPTunables.iIMPEXP_ELEGY_BASE_PRICE + GET_SUPERMOD_UPGRADE_COST(eVehicleModel)) BREAK CASE INFERNUS2 iCost = 915000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSR_PEGASSI_INFERNUS2 >= 0 iCost = g_sMPTunables.iSR_PEGASSI_INFERNUS2 ENDIF ENDIF BREAK CASE GP1 iCost = 1260000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSR_PROGEN_GP1 >= 0 iCost = g_sMPTunables.iSR_PROGEN_GP1 ENDIF ENDIF BREAK CASE RUSTON iCost = 430000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSR_HIJAK_RUSTON >= 0 iCost = g_sMPTunables.iSR_HIJAK_RUSTON ENDIF ENDIF BREAK CASE TURISMO2 iCost = 705000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSR_GROTTI_TURISMO2 >= 0 iCost = g_sMPTunables.iSR_GROTTI_TURISMO2 ENDIF ENDIF BREAK CASE ARDENT iCost = 1150000 IF bNetwork_isGameInProgress IF g_sMPTunables.iGR_BASIC_WEAPONIZED_VEHICLES_OCELOT_ARDENT >= 0 iCost = g_sMPTunables.iGR_BASIC_WEAPONIZED_VEHICLES_OCELOT_ARDENT ENDIF ENDIF BREAK CASE CHEETAH2 iCost = 865000 IF bNetwork_isGameInProgress IF g_sMPTunables.iGR_NEW_SPORTS_CARS_GROTTI_CHEETAH_CLASSIC >= 0 iCost = g_sMPTunables.iGR_NEW_SPORTS_CARS_GROTTI_CHEETAH_CLASSIC ENDIF ENDIF BREAK CASE NIGHTSHARK iCost = 1245000 IF bNetwork_isGameInProgress IF g_sMPTunables.iGR_BASIC_WEAPONIZED_VEHICLES_HVY_NIGHTSHARK >= 0 iCost = g_sMPTunables.iGR_BASIC_WEAPONIZED_VEHICLES_HVY_NIGHTSHARK ENDIF ENDIF BREAK CASE TORERO iCost = 998000 IF bNetwork_isGameInProgress IF g_sMPTunables.iGR_NEW_SPORTS_CARS_PEGASSI_TORERO >= 0 iCost = g_sMPTunables.iGR_NEW_SPORTS_CARS_PEGASSI_TORERO ENDIF ENDIF BREAK CASE VAGNER iCost = 1535000 IF bNetwork_isGameInProgress IF g_sMPTunables.iGR_NEW_SPORTS_CARS_DEWBAUCHEE_VAGNER >= 0 iCost = g_sMPTunables.iGR_NEW_SPORTS_CARS_DEWBAUCHEE_VAGNER ENDIF ENDIF BREAK CASE XA21 iCost = 2375000 IF bNetwork_isGameInProgress IF g_sMPTunables.iGR_NEW_SPORTS_CARS_OCELOT_XA_21 >= 0 iCost = g_sMPTunables.iGR_NEW_SPORTS_CARS_OCELOT_XA_21 ENDIF ENDIF BREAK CASE APC iCost = 2325000 IF bNetwork_isGameInProgress IF g_sMPTunables.iGR_NEW_FULLY_WEAPONIZED_VEHICLES_HVY_APC >= 0 iCost = g_sMPTunables.iGR_NEW_FULLY_WEAPONIZED_VEHICLES_HVY_APC ENDIF ENDIF iBasePrice = iCost IF NOT bAltVersion iCost = ROUND(TO_FLOAT(iCost) * ((100.0+TO_FLOAT(g_sMPTunables.iGR_VEHICLE_GENERAL_BUY_IT_NOW_PRICE_INCREASE))/100.0)) ENDIF BREAK CASE DUNE3 iCost = 850000 IF bNetwork_isGameInProgress IF g_sMPTunables.iGR_NEW_FULLY_WEAPONIZED_VEHICLES_BF_DUNE_FAV >= 0 iCost = g_sMPTunables.iGR_NEW_FULLY_WEAPONIZED_VEHICLES_BF_DUNE_FAV ENDIF ENDIF iBasePrice = iCost IF NOT bAltVersion iCost = ROUND(TO_FLOAT(iCost) * ((100.0+TO_FLOAT(g_sMPTunables.iGR_VEHICLE_GENERAL_BUY_IT_NOW_PRICE_INCREASE))/100.0)) ENDIF BREAK CASE HALFTRACK iCost = 1695000 IF bNetwork_isGameInProgress IF g_sMPTunables.iGR_NEW_FULLY_WEAPONIZED_VEHICLES_BRAVADO_HALF_TRACK >= 0 iCost = g_sMPTunables.iGR_NEW_FULLY_WEAPONIZED_VEHICLES_BRAVADO_HALF_TRACK ENDIF ENDIF iBasePrice = iCost IF NOT bAltVersion iCost = ROUND(TO_FLOAT(iCost) * ((100.0+TO_FLOAT(g_sMPTunables.iGR_VEHICLE_GENERAL_BUY_IT_NOW_PRICE_INCREASE))/100.0)) ENDIF BREAK CASE OPPRESSOR iCost = 2650000 IF bNetwork_isGameInProgress IF g_sMPTunables.iGR_NEW_FULLY_WEAPONIZED_VEHICLES_PEGASSI_OPPRESSOR >= 0 iCost = g_sMPTunables.iGR_NEW_FULLY_WEAPONIZED_VEHICLES_PEGASSI_OPPRESSOR ENDIF ENDIF iBasePrice = iCost IF NOT bAltVersion iCost = ROUND(TO_FLOAT(iCost) * ((100.0+TO_FLOAT(g_sMPTunables.iGR_VEHICLE_GENERAL_BUY_IT_NOW_PRICE_INCREASE))/100.0)) ENDIF BREAK CASE TAMPA3 iCost = 1585000 IF bNetwork_isGameInProgress IF g_sMPTunables.iGR_NEW_FULLY_WEAPONIZED_VEHICLES_DECLASSE_WEAPONIZED_TAMPA >= 0 iCost = g_sMPTunables.iGR_NEW_FULLY_WEAPONIZED_VEHICLES_DECLASSE_WEAPONIZED_TAMPA ENDIF ENDIF iBasePrice = iCost IF NOT bAltVersion iCost = ROUND(TO_FLOAT(iCost) * ((100.0+TO_FLOAT(g_sMPTunables.iGR_VEHICLE_GENERAL_BUY_IT_NOW_PRICE_INCREASE))/100.0)) ENDIF BREAK CASE TRAILERSMALL2 iCost = 1400000 IF bNetwork_isGameInProgress IF g_sMPTunables.iGR_NEW_FULLY_WEAPONIZED_VEHICLES_TURRETED_TRAILER >= 0 iCost = g_sMPTunables.iGR_NEW_FULLY_WEAPONIZED_VEHICLES_TURRETED_TRAILER ENDIF ENDIF iBasePrice = iCost IF NOT bAltVersion iCost = ROUND(TO_FLOAT(iCost) * ((100.0+TO_FLOAT(g_sMPTunables.iGR_VEHICLE_GENERAL_BUY_IT_NOW_PRICE_INCREASE))/100.0)) ENDIF BREAK CASE PHANTOM3 IF NOT bAltVersion iCost = 1225000 IF bNetwork_isGameInProgress IF g_sMPTunables.iGR_TRUCK_PROPERTY_JOBUILT_PHANTOM_CUSTOM >= 0 iCost = g_sMPTunables.iGR_TRUCK_PROPERTY_JOBUILT_PHANTOM_CUSTOM ENDIF ENDIF ELSE iCost = 0 ENDIF BREAK CASE HAULER2 IF NOT bAltVersion iCost = 1400000 IF bNetwork_isGameInProgress IF g_sMPTunables.iGR_TRUCK_PROPERTY_JOBUILT_HAULER_CUSTOM >= 0 iCost = g_sMPTunables.iGR_TRUCK_PROPERTY_JOBUILT_HAULER_CUSTOM ENDIF ENDIF ELSE iCost = 0 ENDIF BREAK CASE LAZER iCost = 6500000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_P996_LAZER >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_P996_LAZER ENDIF ENDIF BREAK CASE MICROLIGHT IF bAltVersion iCost = 500000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_PEGASSI_ULTRALIGHT >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_PEGASSI_ULTRALIGHT ENDIF ENDIF ELSE iCost = ROUND(TO_FLOAT(500000) * ((100.0+TO_FLOAT(33))/100.0)) IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_BUY_IT_NOW_PRICE_PEGASSI_ULTRALIGHT >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_BUY_IT_NOW_PRICE_PEGASSI_ULTRALIGHT ENDIF ENDIF ENDIF BREAK CASE MOGUL IF bAltVersion iCost = 2350000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_MOGUL >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_MOGUL ENDIF ENDIF ELSE iCost = ROUND(TO_FLOAT(2350000) * ((100.0+TO_FLOAT(33))/100.0)) IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_BUY_IT_NOW_PRICE_MOGUL >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_BUY_IT_NOW_PRICE_MOGUL ENDIF ENDIF ENDIF BREAK CASE ROGUE IF bAltVersion iCost = 1200000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_ROGUE >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_ROGUE ENDIF ENDIF ELSE iCost = ROUND(TO_FLOAT(1200000) * ((100.0+TO_FLOAT(33))/100.0)) IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_BUY_IT_NOW_PRICE_ROGUE >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_BUY_IT_NOW_PRICE_ROGUE ENDIF ENDIF ENDIF BREAK CASE STARLING IF bAltVersion iCost = 2750000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_STARLING >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_STARLING ENDIF ENDIF ELSE iCost = ROUND(TO_FLOAT(2750000) * ((100.0+TO_FLOAT(33))/100.0)) IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_BUY_IT_NOW_PRICE_STARLING >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_BUY_IT_NOW_PRICE_STARLING ENDIF ENDIF ENDIF BREAK CASE SEABREEZE IF bAltVersion iCost = 850000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_WESTERN_SEABREEZE >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_WESTERN_SEABREEZE ENDIF ENDIF ELSE iCost = ROUND(TO_FLOAT(850000) * ((100.0+TO_FLOAT(33))/100.0)) IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_BUY_IT_NOW_PRICE_WESTERN_SEABREEZE >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_BUY_IT_NOW_PRICE_WESTERN_SEABREEZE ENDIF ENDIF ENDIF BREAK CASE TULA IF bAltVersion iCost = 3890000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_TULA >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_TULA ENDIF ENDIF ELSE iCost = ROUND(TO_FLOAT(3890000) * ((100.0+TO_FLOAT(33))/100.0)) IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_BUY_IT_NOW_PRICE_TULA >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_BUY_IT_NOW_PRICE_TULA ENDIF ENDIF ENDIF BREAK CASE PYRO IF bAltVersion iCost = 3350000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_PYRO >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_PYRO ENDIF ENDIF ELSE iCost = ROUND(TO_FLOAT(3350000) * ((100.0+TO_FLOAT(33))/100.0)) IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_BUY_IT_NOW_PRICE_PYRO >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_BUY_IT_NOW_PRICE_PYRO ENDIF ENDIF ENDIF BREAK CASE MOLOTOK IF bAltVersion iCost = 3600000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_V65_MOLOTOK >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_V65_MOLOTOK ENDIF ENDIF ELSE iCost = ROUND(TO_FLOAT(3600000) * ((100.0+TO_FLOAT(33))/100.0)) IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_BUY_IT_NOW_PRICE_V65_MOLOTOK >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_BUY_IT_NOW_PRICE_V65_MOLOTOK ENDIF ENDIF ENDIF BREAK CASE NOKOTA IF bAltVersion iCost = 1995000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_P45_NOKOTA >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_P45_NOKOTA ENDIF ENDIF ELSE iCost = ROUND(TO_FLOAT(1995000) * ((100.0+TO_FLOAT(33))/100.0)) IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_BUY_IT_NOW_PRICE_P45_NOKOTA >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_BUY_IT_NOW_PRICE_P45_NOKOTA ENDIF ENDIF ENDIF BREAK CASE BOMBUSHKA IF bAltVersion iCost = 4450000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_BOMBUSHKA >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_BOMBUSHKA ENDIF ENDIF ELSE iCost = ROUND(TO_FLOAT(4450000) * ((100.0+TO_FLOAT(33))/100.0)) IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_BUY_IT_NOW_PRICE_BOMBUSHKA >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_BUY_IT_NOW_PRICE_BOMBUSHKA ENDIF ENDIF ENDIF BREAK CASE HUNTER IF bAltVersion iCost = 3100000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_HUNTER >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_HUNTER ENDIF ENDIF ELSE iCost = ROUND(TO_FLOAT(3100000) * ((100.0+TO_FLOAT(33))/100.0)) IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_BUY_IT_NOW_PRICE_HUNTER >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_BUY_IT_NOW_PRICE_HUNTER ENDIF ENDIF ENDIF BREAK CASE HAVOK IF bAltVersion iCost = 1730000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_NAGASAKI_HAVOK >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_NAGASAKI_HAVOK ENDIF ENDIF ELSE iCost = ROUND(TO_FLOAT(1730000) * ((100.0+TO_FLOAT(33))/100.0)) IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_BUY_IT_NOW_PRICE_NAGASAKI_HAVOK >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_BUY_IT_NOW_PRICE_NAGASAKI_HAVOK ENDIF ENDIF ENDIF BREAK CASE HOWARD IF bAltVersion iCost = 975000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_HOWARD_NX25 >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_HOWARD_NX25 ENDIF ENDIF ELSE iCost = ROUND(TO_FLOAT(975000) * ((100.0+TO_FLOAT(33))/100.0)) IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_BUY_IT_NOW_PRICE_HOWARD_NX25 >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_BUY_IT_NOW_PRICE_HOWARD_NX25 ENDIF ENDIF ENDIF BREAK CASE ALPHAZ1 IF bAltVersion iCost = 1595000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_ALPHAZ1 >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_TRADE_PRICE_ALPHAZ1 ENDIF ENDIF ELSE iCost = ROUND(TO_FLOAT(1595000) * ((100.0+TO_FLOAT(33))/100.0)) IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_BUY_IT_NOW_PRICE_ALPHAZ1 >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_BUY_IT_NOW_PRICE_ALPHAZ1 ENDIF ENDIF ENDIF BREAK CASE CYCLONE iCost = 1890000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_CARS_TRADE_PRICE_COIL_CYCLONE >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_CARS_TRADE_PRICE_COIL_CYCLONE ENDIF ENDIF BREAK CASE VISIONE iCost = 2250000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_CARS_TRADE_PRICE_GROTTI_VISIONE >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_CARS_TRADE_PRICE_GROTTI_VISIONE ENDIF ENDIF BREAK CASE VIGILANTE iCost = 3750000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_CARS_TRADE_PRICE_GROTTI_VIGILANTE >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_CARS_TRADE_PRICE_GROTTI_VIGILANTE ENDIF ENDIF BREAK CASE RETINUE iCost = 615000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_CARS_TRADE_PRICE_VAPID_RETINUE >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_CARS_TRADE_PRICE_VAPID_RETINUE ENDIF ENDIF BREAK CASE RAPIDGT3 iCost = 885000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSMUG_VEHICLES_CARS_TRADE_PRICE_DEWBAUCHEE_RAPIDGT_CLASSIC >= 0 iCost = g_sMPTunables.iSMUG_VEHICLES_CARS_TRADE_PRICE_DEWBAUCHEE_RAPIDGT_CLASSIC ENDIF ENDIF BREAK ENDSWITCH SWITCH eVehicleModel CASE DELUXO IF bAltVersion iCost = 3550000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_DELUXO >= 0 iCost = g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_DELUXO ENDIF ENDIF ELSE iCost = 4721500 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_BUY_IT_NOW_PRICE_DELUXO >= 0 iCost = g_sMPTunables.iH2_VEHICLES_BUY_IT_NOW_PRICE_DELUXO ENDIF ENDIF iBasePrice = 3550000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_DELUXO >= 0 iBasePrice = g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_DELUXO ENDIF ENDIF ENDIF BREAK CASE STROMBERG IF bAltVersion iCost = 2395000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_STROMBERG >= 0 iCost = g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_STROMBERG ENDIF ENDIF ELSE iCost = 3185350 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_BUY_IT_NOW_PRICE_STROMBERG >= 0 iCost = g_sMPTunables.iH2_VEHICLES_BUY_IT_NOW_PRICE_STROMBERG ENDIF ENDIF iBasePrice = 2395000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_STROMBERG >= 0 iBasePrice = g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_STROMBERG ENDIF ENDIF ENDIF BREAK CASE RIOT2 IF bAltVersion iCost = 2350000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_RCV >= 0 iCost = g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_RCV ENDIF ENDIF ELSE iCost = 3125500 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_BUY_IT_NOW_PRICE_RCV >= 0 iCost = g_sMPTunables.iH2_VEHICLES_BUY_IT_NOW_PRICE_RCV ENDIF ENDIF iBasePrice = 2350000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_RCV >= 0 iBasePrice = g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_RCV ENDIF ENDIF ENDIF BREAK CASE CHERNOBOG IF bAltVersion iCost = 2490000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_CHERNOBOG >= 0 iCost = g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_CHERNOBOG ENDIF ENDIF ELSE iCost = 3311700 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_BUY_IT_NOW_PRICE_CHERNOBOG >= 0 iCost = g_sMPTunables.iH2_VEHICLES_BUY_IT_NOW_PRICE_CHERNOBOG ENDIF ENDIF iBasePrice = 2490000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_CHERNOBOG >= 0 iBasePrice = g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_CHERNOBOG ENDIF ENDIF ENDIF BREAK CASE KHANJALI IF bAltVersion iCost = 2895000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_KHANJALI >= 0 iCost = g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_KHANJALI ENDIF ENDIF ELSE iCost = 3850350 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_BUY_IT_NOW_PRICE_KHANJALI >= 0 iCost = g_sMPTunables.iH2_VEHICLES_BUY_IT_NOW_PRICE_KHANJALI ENDIF ENDIF iBasePrice = 2895000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_KHANJALI >= 0 iBasePrice = g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_KHANJALI ENDIF ENDIF ENDIF BREAK CASE AKULA IF bAltVersion iCost = 2785000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_AKULA >= 0 iCost = g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_AKULA ENDIF ENDIF ELSE iCost = 3704050 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_BUY_IT_NOW_PRICE_AKULA >= 0 iCost = g_sMPTunables.iH2_VEHICLES_BUY_IT_NOW_PRICE_AKULA ENDIF ENDIF iBasePrice = 2785000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_AKULA >= 0 iBasePrice = g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_AKULA ENDIF ENDIF ENDIF BREAK CASE THRUSTER IF bAltVersion iCost = 2750000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_THRUSTER >= 0 iCost = g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_THRUSTER ENDIF ENDIF ELSE iCost = 3657500 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_BUY_IT_NOW_PRICE_THRUSTER >= 0 iCost = g_sMPTunables.iH2_VEHICLES_BUY_IT_NOW_PRICE_THRUSTER ENDIF ENDIF iBasePrice = 2750000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_THRUSTER >= 0 iBasePrice = g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_THRUSTER ENDIF ENDIF ENDIF BREAK CASE BARRAGE IF bAltVersion iCost = 1595000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_BARRAGE >= 0 iCost = g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_BARRAGE ENDIF ENDIF ELSE iCost = 2121350 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_BUY_IT_NOW_PRICE_BARRAGE >= 0 iCost = g_sMPTunables.iH2_VEHICLES_BUY_IT_NOW_PRICE_BARRAGE ENDIF ENDIF iBasePrice = 1595000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_BARRAGE >= 0 iBasePrice = g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_BARRAGE ENDIF ENDIF ENDIF BREAK CASE VOLATOL IF bAltVersion iCost = 2800000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_VOLATOL >= 0 iCost = g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_VOLATOL ENDIF ENDIF ELSE iCost = 3724000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_BUY_IT_NOW_PRICE_VOLATOL >= 0 iCost = g_sMPTunables.iH2_VEHICLES_BUY_IT_NOW_PRICE_VOLATOL ENDIF ENDIF iBasePrice = 2800000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_VOLATOL >= 0 iBasePrice = g_sMPTunables.iH2_VEHICLES_TRADE_PRICE_VOLATOL ENDIF ENDIF ENDIF BREAK CASE COMET4 iCost = 710000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_PRICE_COMET_SAFARI >= 0 iCost = g_sMPTunables.iH2_VEHICLES_PRICE_COMET_SAFARI ENDIF ENDIF BREAK CASE NEON iCost = 1500000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_PRICE_NEON >= 0 iCost = g_sMPTunables.iH2_VEHICLES_PRICE_NEON ENDIF ENDIF BREAK CASE STREITER iCost = 500000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_PRICE_STREITER >= 0 iCost = g_sMPTunables.iH2_VEHICLES_PRICE_STREITER ENDIF ENDIF BREAK CASE SENTINEL3 IF bAltVersion iCost = 487500 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_SENTINAL3 >= 0 iCost = g_sMPTunables.iCH_TRADE_PRICE_SENTINAL3 ENDIF ENDIF ELSE iCost = 650000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_PRICE_SENTINEL_CLASSIC >= 0 iCost = g_sMPTunables.iH2_VEHICLES_PRICE_SENTINEL_CLASSIC ENDIF ENDIF iBasePrice = 487500 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_SENTINAL3 >= 0 iBasePrice = g_sMPTunables.iCH_TRADE_PRICE_SENTINAL3 ENDIF ENDIF ENDIF BREAK CASE YOSEMITE iCost = 485000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_PRICE_YOSEMITE >= 0 iCost = g_sMPTunables.iH2_VEHICLES_PRICE_YOSEMITE ENDIF ENDIF BREAK CASE SC1 iCost = 1603000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_PRICE_SC1 >= 0 iCost = g_sMPTunables.iH2_VEHICLES_PRICE_SC1 ENDIF ENDIF BREAK CASE AUTARCH iCost = 1955000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_PRICE_AUTARCH >= 0 iCost = g_sMPTunables.iH2_VEHICLES_PRICE_AUTARCH ENDIF ENDIF BREAK CASE GT500 iCost = 785000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_PRICE_GT500 >= 0 iCost = g_sMPTunables.iH2_VEHICLES_PRICE_GT500 ENDIF ENDIF BREAK CASE HUSTLER iCost = 625000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_PRICE_HUSTLER >= 0 iCost = g_sMPTunables.iH2_VEHICLES_PRICE_HUSTLER ENDIF ENDIF BREAK CASE REVOLTER iCost = 1610000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_PRICE_REVOLTER >= 0 iCost = g_sMPTunables.iH2_VEHICLES_PRICE_REVOLTER ENDIF ENDIF BREAK CASE PARIAH iCost = 1420000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_PRICE_PARIAH >= 0 iCost = g_sMPTunables.iH2_VEHICLES_PRICE_PARIAH ENDIF ENDIF BREAK CASE RAIDEN iCost = 1375000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_PRICE_RAIDEN >= 0 iCost = g_sMPTunables.iH2_VEHICLES_PRICE_RAIDEN ENDIF ENDIF BREAK CASE SAVESTRA iCost = 990000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_PRICE_SAVESTRA >= 0 iCost = g_sMPTunables.iH2_VEHICLES_PRICE_SAVESTRA ENDIF ENDIF BREAK CASE RIATA iCost = 380000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_PRICE_RIATA >= 0 iCost = g_sMPTunables.iH2_VEHICLES_PRICE_RIATA ENDIF ENDIF BREAK CASE HERMES iCost = 535000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_PRICE_HERMES >= 0 iCost = g_sMPTunables.iH2_VEHICLES_PRICE_HERMES ENDIF ENDIF BREAK CASE COMET5 iCost = 1145000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_PRICE_COMET_GT >= 0 iCost = g_sMPTunables.iH2_VEHICLES_PRICE_COMET_GT ENDIF ENDIF BREAK CASE Z190 iCost = 900000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_PRICE_190Z >= 0 iCost = g_sMPTunables.iH2_VEHICLES_PRICE_190Z ENDIF ENDIF BREAK CASE VISERIS iCost = 875000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_PRICE_VISERIS >= 0 iCost = g_sMPTunables.iH2_VEHICLES_PRICE_VISERIS ENDIF ENDIF BREAK CASE KAMACHO iCost = 345000 IF bNetwork_isGameInProgress IF g_sMPTunables.iH2_VEHICLES_PRICE_KAMACHO >= 0 iCost = g_sMPTunables.iH2_VEHICLES_PRICE_KAMACHO ENDIF ENDIF BREAK CASE GB200 iCost = 940000 IF bNetwork_isGameInProgress IF g_sMPTunables.iASSAULT_VEHICLES_VAPID_GB200 >= 0 iCost = g_sMPTunables.iASSAULT_VEHICLES_VAPID_GB200 ENDIF ENDIF BREAK CASE FAGALOA iCost = 335000 IF bNetwork_isGameInProgress IF g_sMPTunables.iASSAULT_VEHICLES_VULCAR_FAGALOA >= 0 iCost = g_sMPTunables.iASSAULT_VEHICLES_VULCAR_FAGALOA ENDIF ENDIF BREAK CASE ELLIE IF bAltVersion iCost = 423750 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_ELLIE >= 0 iCost = g_sMPTunables.iCH_TRADE_PRICE_ELLIE ENDIF ENDIF ELSE iCost = 565000 IF bNetwork_isGameInProgress IF g_sMPTunables.iASSAULT_VEHICLES_VAPID_ELLIE >= 0 iCost = g_sMPTunables.iASSAULT_VEHICLES_VAPID_ELLIE ENDIF ENDIF iBasePrice = 423750 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_ELLIE >= 0 iBasePrice = g_sMPTunables.iCH_TRADE_PRICE_ELLIE ENDIF ENDIF ENDIF BREAK CASE ISSI3 iCost = 360000 IF bNetwork_isGameInProgress AND g_sMPTunables.iASSAULT_VEHICLES_WEENY_ISSI_CLASSIC >= 0 iCost = g_sMPTunables.iASSAULT_VEHICLES_WEENY_ISSI_CLASSIC ENDIF IF bAltVersion iBasePrice = iCost iCost = ROUND(TO_FLOAT(360000)*0.75) IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_TRADE_PRICE_ISSI >= 0 iCost = g_sMPTunables.iAW_TRADE_PRICE_ISSI ENDIF ENDIF BREAK CASE MICHELLI iCost = 1225000 IF bNetwork_isGameInProgress IF g_sMPTunables.iASSAULT_VEHICLES_LAMPADATI_MICHELLI_GT >= 0 iCost = g_sMPTunables.iASSAULT_VEHICLES_LAMPADATI_MICHELLI_GT ENDIF ENDIF BREAK CASE FLASHGT iCost = 1675000 IF bNetwork_isGameInProgress IF g_sMPTunables.iASSAULT_VEHICLES_VAPID_FLASH_GT >= 0 iCost = g_sMPTunables.iASSAULT_VEHICLES_VAPID_FLASH_GT ENDIF ENDIF BREAK CASE HOTRING iCost = 830000 IF bNetwork_isGameInProgress IF g_sMPTunables.iASSAULT_VEHICLES_DECLASSE_HOTRING_SABRE >= 0 iCost = g_sMPTunables.iASSAULT_VEHICLES_DECLASSE_HOTRING_SABRE ENDIF ENDIF BREAK CASE TEZERACT iCost = 2825000 IF bNetwork_isGameInProgress IF g_sMPTunables.iASSAULT_VEHICLES_PEGASSI_TEZERACT >= 0 iCost = g_sMPTunables.iASSAULT_VEHICLES_PEGASSI_TEZERACT ENDIF ENDIF BREAK CASE TYRANT iCost = 2515000 IF bNetwork_isGameInProgress IF g_sMPTunables.iASSAULT_VEHICLES_OVERFLOD_TYRANT >= 0 iCost = g_sMPTunables.iASSAULT_VEHICLES_OVERFLOD_TYRANT ENDIF ENDIF BREAK CASE DOMINATOR3 iCost = 725000 IF bNetwork_isGameInProgress AND g_sMPTunables.iASSAULT_VEHICLES_VAPID_DOMINATOR_GTX >= 0 iCost = g_sMPTunables.iASSAULT_VEHICLES_VAPID_DOMINATOR_GTX ENDIF IF bAltVersion iBasePrice = iCost iCost = ROUND(TO_FLOAT(725000)*0.75) // IF bNetwork_isGameInProgress // AND g_sMPtunables.iASSAULT_VEHICLES_VAPID_DOMINATOR_GTX >= 0 // iCost = g_sMPTunables.iASSAULT_VEHICLES_VAPID_DOMINATOR_GTX // ENDIF ENDIF BREAK CASE TAIPAN iCost = 1980000 IF bNetwork_isGameInProgress IF g_sMPTunables.iASSAULT_VEHICLES_CHEVAL_TAIPAN >= 0 iCost = g_sMPTunables.iASSAULT_VEHICLES_CHEVAL_TAIPAN ENDIF ENDIF BREAK CASE ENTITY2 iCost = 2305000 IF bNetwork_isGameInProgress IF g_sMPTunables.iASSAULT_VEHICLES_OVERFLOD_ENTITY_XXR >= 0 iCost = g_sMPTunables.iASSAULT_VEHICLES_OVERFLOD_ENTITY_XXR ENDIF ENDIF BREAK CASE JESTER3 iCost = 790000 IF bNetwork_isGameInProgress IF g_sMPTunables.iASSAULT_VEHICLES_DINKA_JESTER_CLASSIC >= 0 iCost = g_sMPTunables.iASSAULT_VEHICLES_DINKA_JESTER_CLASSIC ENDIF ENDIF BREAK CASE CHEBUREK iCost = 145000 IF bNetwork_isGameInProgress IF g_sMPTunables.iASSAULT_VEHICLES_VULCAR_CHEBUREK >= 0 iCost = g_sMPTunables.iASSAULT_VEHICLES_VULCAR_CHEBUREK ENDIF ENDIF BREAK CASE CARACARA iCost = 1775000 IF bNetwork_isGameInProgress IF g_sMPTunables.iASSAULT_VEHICLES_VAPID_CARACARA >= 0 iCost = g_sMPTunables.iASSAULT_VEHICLES_VAPID_CARACARA ENDIF ENDIF BREAK CASE SEASPARROW iCost = 1815000 IF bNetwork_isGameInProgress IF g_sMPTunables.iASSAULT_VEHICLES_SEA_SPARROW >= 0 iCost = g_sMPTunables.iASSAULT_VEHICLES_SEA_SPARROW ENDIF ENDIF BREAK CASE TERBYTE IF NOT bAltVersion iCost = 1375000 IF bNetwork_isGameInProgress IF g_sMPTunables.iBB_BENEFACTOR_TERRORBYTE >= 0 iCost = g_sMPTunables.iBB_BENEFACTOR_TERRORBYTE ENDIF ENDIF ELSE iCost = 0 ENDIF BREAK CASE MULE4 IF bAltVersion iCost = 72000 IF bNetwork_isGameInProgress IF g_sMPTunables.iBB_TRADE_PRICE_WEAPONIZED_VEHICLES_MAIBATSU_MULE_CUSTOM >= 0 iCost = g_sMPTunables.iBB_TRADE_PRICE_WEAPONIZED_VEHICLES_MAIBATSU_MULE_CUSTOM ENDIF ENDIF ELSE iCost = 95760 IF bNetwork_isGameInProgress IF g_sMPTunables.iBB_BUY_IT_NOW_PRICE_WEAPONIZED_VEHICLES_MAIBATSU_MULE_CUSTOM >= 0 iCost = g_sMPTunables.iBB_BUY_IT_NOW_PRICE_WEAPONIZED_VEHICLES_MAIBATSU_MULE_CUSTOM ENDIF ENDIF iBasePrice = 72000 IF bNetwork_isGameInProgress IF g_sMPTunables.iBB_TRADE_PRICE_WEAPONIZED_VEHICLES_MAIBATSU_MULE_CUSTOM >= 0 iBasePrice = g_sMPTunables.iBB_TRADE_PRICE_WEAPONIZED_VEHICLES_MAIBATSU_MULE_CUSTOM ENDIF ENDIF ENDIF BREAK CASE POUNDER2 IF bAltVersion iCost = 241000 IF bNetwork_isGameInProgress IF g_sMPTunables.iBB_TRADE_PRICE_WEAPONIZED_VEHICLES_MTL_POUNDER_CUSTOM >= 0 iCost = g_sMPTunables.iBB_TRADE_PRICE_WEAPONIZED_VEHICLES_MTL_POUNDER_CUSTOM ENDIF ENDIF ELSE iCost = 320530 IF bNetwork_isGameInProgress IF g_sMPTunables.iBB_BUY_IT_NOW_PRICE_WEAPONIZED_VEHICLES_MTL_POUNDER_CUSTOM >= 0 iCost = g_sMPTunables.iBB_BUY_IT_NOW_PRICE_WEAPONIZED_VEHICLES_MTL_POUNDER_CUSTOM ENDIF ENDIF iBasePrice = 241000 IF bNetwork_isGameInProgress IF g_sMPTunables.iBB_TRADE_PRICE_WEAPONIZED_VEHICLES_MTL_POUNDER_CUSTOM >= 0 iBasePrice = g_sMPTunables.iBB_TRADE_PRICE_WEAPONIZED_VEHICLES_MTL_POUNDER_CUSTOM ENDIF ENDIF ENDIF BREAK CASE SWINGER iCost = 909000 IF bNetwork_isGameInProgress IF g_sMPTunables.iBB_TRADE_PRICE_HIGH_END_VEHICLES_OCELOT_SWINGER >= 0 iCost = g_sMPTunables.iBB_TRADE_PRICE_HIGH_END_VEHICLES_OCELOT_SWINGER ENDIF ENDIF BREAK CASE MENACER iCost = 1775000 IF bNetwork_isGameInProgress IF g_sMPTunables.iBB_TRADE_PRICE_WEAPONIZED_VEHICLES_PEGASSI_HVY_MENACER >= 0 iCost = g_sMPTunables.iBB_TRADE_PRICE_WEAPONIZED_VEHICLES_PEGASSI_HVY_MENACER ENDIF ENDIF BREAK CASE SCRAMJET iCost = 3480000 IF bNetwork_isGameInProgress IF g_sMPTunables.iBB_BUY_IT_NOW_PRICE_WEAPONIZED_VEHICLES_DECLASSE_SCRAMJET >= 0 iCost = g_sMPTunables.iBB_BUY_IT_NOW_PRICE_WEAPONIZED_VEHICLES_DECLASSE_SCRAMJET ENDIF ENDIF BREAK CASE STRIKEFORCE iCost = 3800000 IF bNetwork_isGameInProgress IF g_sMPTunables.iBB_TRADE_PRICE_WEAPONIZED_VEHICLES_B_11_STRIKEFORCE >= 0 iCost = g_sMPTunables.iBB_TRADE_PRICE_WEAPONIZED_VEHICLES_B_11_STRIKEFORCE ENDIF ENDIF BREAK CASE OPPRESSOR2 IF bAltVersion iCost = 2925000 IF bNetwork_isGameInProgress IF g_sMPTunables.iBB_TRADE_PRICE_WEAPONIZED_VEHICLES_PEGASSI_OPPRESSOR_MK_II >= 0 iCost = g_sMPTunables.iBB_TRADE_PRICE_WEAPONIZED_VEHICLES_PEGASSI_OPPRESSOR_MK_II ENDIF ENDIF ELSE iCost = 3890250 IF bNetwork_isGameInProgress IF g_sMPTunables.iBB_BUY_IT_NOW_PRICE_WEAPONIZED_VEHICLES_PEGASSI_OPPRESSOR_MK_II >= 0 iCost = g_sMPTunables.iBB_BUY_IT_NOW_PRICE_WEAPONIZED_VEHICLES_PEGASSI_OPPRESSOR_MK_II ENDIF ENDIF iBasePrice = 2925000 IF bNetwork_isGameInProgress IF g_sMPTunables.iBB_TRADE_PRICE_WEAPONIZED_VEHICLES_PEGASSI_OPPRESSOR_MK_II >= 0 iBasePrice = g_sMPTunables.iBB_TRADE_PRICE_WEAPONIZED_VEHICLES_PEGASSI_OPPRESSOR_MK_II ENDIF ENDIF ENDIF BREAK CASE PATRIOT2 IF bAltVersion iCost = 460000 IF bNetwork_isGameInProgress IF g_sMPTunables.iBB_TRADE_PRICE_HIGH_END_VEHICLES_MAMMOTH_PATRIOT_STRETCH >= 0 iCost = g_sMPTunables.iBB_TRADE_PRICE_HIGH_END_VEHICLES_MAMMOTH_PATRIOT_STRETCH ENDIF ENDIF ELSE iCost = 611800 IF bNetwork_isGameInProgress IF g_sMPTunables.iBB_BUY_IT_NOW_PRICE_HIGH_END_VEHICLES_MAMMOTH_PATRIOT_STRETCH >= 0 iCost = g_sMPTunables.iBB_BUY_IT_NOW_PRICE_HIGH_END_VEHICLES_MAMMOTH_PATRIOT_STRETCH ENDIF ENDIF iBasePrice = 460000 IF bNetwork_isGameInProgress IF g_sMPTunables.iBB_TRADE_PRICE_HIGH_END_VEHICLES_MAMMOTH_PATRIOT_STRETCH >= 0 iBasePrice = g_sMPTunables.iBB_TRADE_PRICE_HIGH_END_VEHICLES_MAMMOTH_PATRIOT_STRETCH ENDIF ENDIF ENDIF BREAK CASE STAFFORD iCost = 1272000 IF bNetwork_isGameInProgress IF g_sMPTunables.iBB_TRADE_PRICE_HIGH_END_VEHICLES_ENUS_STAFFORD >= 0 iCost = g_sMPTunables.iBB_TRADE_PRICE_HIGH_END_VEHICLES_ENUS_STAFFORD ENDIF ENDIF BREAK CASE FREECRAWLER iCost = 597000 IF bNetwork_isGameInProgress IF g_sMPTunables.iBB_TRADE_PRICE_HIGH_END_VEHICLES_CANIS_FREECRAWLER >= 0 iCost = g_sMPTunables.iBB_TRADE_PRICE_HIGH_END_VEHICLES_CANIS_FREECRAWLER ENDIF ENDIF BREAK CASE BLIMP3 IF bAltVersion iCost = 895000 IF bNetwork_isGameInProgress IF g_sMPTunables.iBB_TRADE_PRICE_MISC_VEHICLES_BLIMP >= 0 iCost = g_sMPTunables.iBB_TRADE_PRICE_MISC_VEHICLES_BLIMP ENDIF ENDIF ELSE iCost = 1190350 IF bNetwork_isGameInProgress IF g_sMPTunables.iBB_BUY_IT_NOW_PRICE_MISC_VEHICLES_BLIMP >= 0 iCost = g_sMPTunables.iBB_BUY_IT_NOW_PRICE_MISC_VEHICLES_BLIMP ENDIF ENDIF iBasePrice = 895000 IF bNetwork_isGameInProgress IF g_sMPTunables.iBB_TRADE_PRICE_MISC_VEHICLES_BLIMP >= 0 iBasePrice = g_sMPTunables.iBB_TRADE_PRICE_MISC_VEHICLES_BLIMP ENDIF ENDIF ENDIF BREAK CASE PBUS2 IF bAltVersion iCost = 1385000 IF bNetwork_isGameInProgress IF g_sMPTunables.iBB_TRADE_PRICE_MISC_VEHICLES_FESTIVAL_BUS >= 0 iCost = g_sMPTunables.iBB_TRADE_PRICE_MISC_VEHICLES_FESTIVAL_BUS ENDIF ENDIF ELSE iCost = 1842050 IF bNetwork_isGameInProgress IF g_sMPTunables.iBB_BUY_IT_NOW_PRICE_MISC_VEHICLES_FESTIVAL_BUS >= 0 iCost = g_sMPTunables.iBB_BUY_IT_NOW_PRICE_MISC_VEHICLES_FESTIVAL_BUS ENDIF ENDIF iBasePrice = 1385000 IF bNetwork_isGameInProgress IF g_sMPTunables.iBB_TRADE_PRICE_MISC_VEHICLES_FESTIVAL_BUS >= 0 iBasePrice = g_sMPTunables.iBB_TRADE_PRICE_MISC_VEHICLES_FESTIVAL_BUS ENDIF ENDIF ENDIF BREAK CASE CERBERUS iCost = 3870300 IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_BUY_IT_NOW_PRICE_APOCALYPSE_CERBERUS >= 0 iCost = g_sMPTunables.iAW_BUY_IT_NOW_PRICE_APOCALYPSE_CERBERUS ENDIF IF bAltVersion iBasePrice = iCost iCost = 2910000 IF bNetwork_isGameInProgress AND g_sMPtunables.iAW_TRADE_PRICE_APOCALYPSE_CERBERUS >= 0 iCost = g_sMPTunables.iAW_TRADE_PRICE_APOCALYPSE_CERBERUS ENDIF ENDIF BREAK CASE CERBERUS2 iCost = 3870300 IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_BUY_IT_NOW_PRICE_SCIFI_CERBERUS >= 0 iCost = g_sMPTunables.iAW_BUY_IT_NOW_PRICE_SCIFI_CERBERUS ENDIF IF bAltVersion iBasePrice = iCost iCost = 2910000 IF bNetwork_isGameInProgress AND g_sMPtunables.iAW_TRADE_PRICE_SCIFI_CERBERUS >= 0 iCost = g_sMPTunables.iAW_TRADE_PRICE_SCIFI_CERBERUS ENDIF ENDIF BREAK CASE CERBERUS3 iCost = 3870300 IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_BUY_IT_NOW_PRICE_CONSUMERISM_CERBERUS >= 0 iCost = g_sMPTunables.iAW_BUY_IT_NOW_PRICE_CONSUMERISM_CERBERUS ENDIF IF bAltVersion iBasePrice = iCost iCost = 2910000 IF bNetwork_isGameInProgress AND g_sMPtunables.iAW_TRADE_PRICE_CONSUMERISM_CERBERUS >= 0 iCost = g_sMPTunables.iAW_TRADE_PRICE_CONSUMERISM_CERBERUS ENDIF ENDIF BREAK CASE BRUTUS iCost = 2666650 IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_BUY_IT_NOW_PRICE_APOCALYPSE_BRUTUS >= 0 iCost = g_sMPTunables.iAW_BUY_IT_NOW_PRICE_APOCALYPSE_BRUTUS ENDIF IF bAltVersion iBasePrice = iCost iCost = 2005000 IF bNetwork_isGameInProgress AND g_sMPtunables.iAW_TRADE_PRICE_APOCALYPSE_BRUTUS >= 0 iCost = g_sMPTunables.iAW_TRADE_PRICE_APOCALYPSE_BRUTUS ENDIF ENDIF BREAK CASE BRUTUS2 iCost = 2666650 IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_BUY_IT_NOW_PRICE_SCIFI_BRUTUS >= 0 iCost = g_sMPTunables.iAW_BUY_IT_NOW_PRICE_SCIFI_BRUTUS ENDIF IF bAltVersion iBasePrice = iCost iCost = 2005000 IF bNetwork_isGameInProgress AND g_sMPtunables.iAW_TRADE_PRICE_SCIFI_BRUTUS >= 0 iCost = g_sMPTunables.iAW_TRADE_PRICE_SCIFI_BRUTUS ENDIF ENDIF BREAK CASE BRUTUS3 iCost = 2666650 IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_BUY_IT_NOW_PRICE_CONSUMERISM_BRUTUS >= 0 iCost = g_sMPTunables.iAW_BUY_IT_NOW_PRICE_CONSUMERISM_BRUTUS ENDIF IF bAltVersion iBasePrice = iCost iCost = 2005000 IF bNetwork_isGameInProgress AND g_sMPtunables.iAW_TRADE_PRICE_CONSUMERISM_BRUTUS >= 0 iCost = g_sMPTunables.iAW_TRADE_PRICE_CONSUMERISM_BRUTUS ENDIF ENDIF BREAK CASE SCARAB iCost = 3076290 IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_BUY_IT_NOW_PRICE_APOCALYPSE_SCARAB >= 0 iCost = g_sMPTunables.iAW_BUY_IT_NOW_PRICE_APOCALYPSE_SCARAB ENDIF IF bAltVersion iBasePrice = iCost iCost = 2313000 IF bNetwork_isGameInProgress AND g_sMPtunables.iAW_TRADE_PRICE_APOCALYPSE_SCARAB >= 0 iCost = g_sMPTunables.iAW_TRADE_PRICE_APOCALYPSE_SCARAB ENDIF ENDIF BREAK CASE SCARAB2 iCost = 3076290 IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_BUY_IT_NOW_PRICE_SCIFI_SCARAB >= 0 iCost = g_sMPTunables.iAW_BUY_IT_NOW_PRICE_SCIFI_SCARAB ENDIF IF bAltVersion iBasePrice = iCost iCost = 2313000 IF bNetwork_isGameInProgress AND g_sMPtunables.iAW_TRADE_PRICE_SCIFI_SCARAB >= 0 iCost = g_sMPTunables.iAW_TRADE_PRICE_SCIFI_SCARAB ENDIF ENDIF BREAK CASE SCARAB3 iCost = 3076290 IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_BUY_IT_NOW_PRICE_CONSUMERISM_SCARAB >= 0 iCost = g_sMPTunables.iAW_BUY_IT_NOW_PRICE_CONSUMERISM_SCARAB ENDIF IF bAltVersion iBasePrice = iCost iCost = 2313000 IF bNetwork_isGameInProgress AND g_sMPtunables.iAW_TRADE_PRICE_CONSUMERISM_SCARAB >= 0 iCost = g_sMPTunables.iAW_TRADE_PRICE_CONSUMERISM_SCARAB ENDIF ENDIF BREAK CASE IMPERATOR iCost = 2284940 IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_BUY_IT_NOW_PRICE_APOCALYPSE_IMPERATOR >= 0 iCost = g_sMPTunables.iAW_BUY_IT_NOW_PRICE_APOCALYPSE_IMPERATOR ENDIF IF bAltVersion iBasePrice = iCost iCost = 1718000 IF bNetwork_isGameInProgress AND g_sMPtunables.iAW_TRADE_PRICE_APOCALYPSE_IMPERATOR >= 0 iCost = g_sMPTunables.iAW_TRADE_PRICE_APOCALYPSE_IMPERATOR ENDIF ENDIF BREAK CASE IMPERATOR2 iCost = 2284940 IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_BUY_IT_NOW_PRICE_SCIFI_IMPERATOR >= 0 iCost = g_sMPTunables.iAW_BUY_IT_NOW_PRICE_SCIFI_IMPERATOR ENDIF IF bAltVersion iBasePrice = iCost iCost = 1718000 IF bNetwork_isGameInProgress AND g_sMPtunables.iAW_TRADE_PRICE_SCIFI_IMPERATOR >= 0 iCost = g_sMPTunables.iAW_TRADE_PRICE_SCIFI_IMPERATOR ENDIF ENDIF BREAK CASE IMPERATOR3 iCost = 2284940 IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_BUY_IT_NOW_PRICE_CONSUMERISM_IMPERATOR >= 0 iCost = g_sMPTunables.iAW_BUY_IT_NOW_PRICE_CONSUMERISM_IMPERATOR ENDIF IF bAltVersion iBasePrice = iCost iCost = 1718000 IF bNetwork_isGameInProgress AND g_sMPtunables.iAW_TRADE_PRICE_CONSUMERISM_IMPERATOR >= 0 iCost = g_sMPTunables.iAW_TRADE_PRICE_CONSUMERISM_IMPERATOR ENDIF ENDIF BREAK CASE ZR380 iCost = 2138640 IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_BUY_IT_NOW_PRICE_APOCALYPSE_ZR380 >= 0 iCost = g_sMPTunables.iAW_BUY_IT_NOW_PRICE_APOCALYPSE_ZR380 ENDIF IF bAltVersion iBasePrice = iCost iCost = 1608000 IF bNetwork_isGameInProgress AND g_sMPtunables.iAW_TRADE_PRICE_APOCALYPSE_ZR380 >= 0 iCost = g_sMPTunables.iAW_TRADE_PRICE_APOCALYPSE_ZR380 ENDIF ENDIF BREAK CASE ZR3802 iCost = 2138640 IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_BUY_IT_NOW_PRICE_SCIFI_ZR380 >= 0 iCost = g_sMPTunables.iAW_BUY_IT_NOW_PRICE_SCIFI_ZR380 ENDIF IF bAltVersion iBasePrice = iCost iCost = 1608000 IF bNetwork_isGameInProgress AND g_sMPtunables.iAW_TRADE_PRICE_SCIFI_ZR380 >= 0 iCost = g_sMPTunables.iAW_TRADE_PRICE_SCIFI_ZR380 ENDIF ENDIF BREAK CASE ZR3803 iCost = 2138640 IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_BUY_IT_NOW_PRICE_CONSUMERISM_ZR380 >= 0 iCost = g_sMPTunables.iAW_BUY_IT_NOW_PRICE_CONSUMERISM_ZR380 ENDIF IF bAltVersion iBasePrice = iCost iCost = 1608000 IF bNetwork_isGameInProgress AND g_sMPtunables.iAW_TRADE_PRICE_CONSUMERISM_ZR380 >= 0 iCost = g_sMPTunables.iAW_TRADE_PRICE_CONSUMERISM_ZR380 ENDIF ENDIF BREAK CASE IMPALER iCost = 331835 IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_BUY_IT_NOW_PRICE_IMPALER >= 0 iCost = g_sMPTunables.iAW_BUY_IT_NOW_PRICE_IMPALER ENDIF IF bAltVersion iBasePrice = iCost iCost = 249500 IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_TRADE_PRICE_IMPALER >= 0 iCost = g_sMPTunables.iAW_TRADE_PRICE_IMPALER ENDIF ENDIF BREAK CASE VAMOS iCost = 596000 IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_SALE_PRICE_VAMOS >= 0 iCost = g_sMPTunables.iAW_SALE_PRICE_VAMOS ENDIF BREAK CASE TULIP iCost = 718000 IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_SALE_PRICE_TULIP >= 0 iCost = g_sMPTunables.iAW_SALE_PRICE_TULIP ENDIF BREAK CASE DEVESTE iCost = 1795000 IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_SALE_PRICE_DEVESTE >= 0 iCost = g_sMPTunables.iAW_SALE_PRICE_DEVESTE ENDIF BREAK CASE SCHLAGEN iCost = 1300000 IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_SALE_PRICE_SCHLAGEN >= 0 iCost = g_sMPTunables.iAW_SALE_PRICE_SCHLAGEN ENDIF BREAK CASE TOROS iCost = 498000 IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_SALE_PRICE_TOROS >= 0 iCost = g_sMPTunables.iAW_SALE_PRICE_TOROS ENDIF BREAK CASE DEVIANT iCost = 512000 IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_SALE_PRICE_DEVIANT >= 0 iCost = g_sMPTunables.iAW_SALE_PRICE_DEVIANT ENDIF BREAK CASE CLIQUE iCost = 909000 IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_SALE_PRICE_CLIQUE >= 0 iCost = g_sMPTunables.iAW_SALE_PRICE_CLIQUE ENDIF BREAK CASE ITALIGTO iCost = 1965000 IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_SALE_PRICE_GTO >= 0 iCost = g_sMPTunables.iAW_SALE_PRICE_GTO ENDIF BREAK CASE RCBANDITO iCost = 1590000 IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_SALE_PRICE_BANDITO >= 0 iCost = g_sMPTunables.iAW_SALE_PRICE_BANDITO ENDIF BREAK CASE BLISTA3 iCost = 0 // IF bNetwork_isGameInProgress // AND g_sMPTunables.iTRADE_PRICE_VEHICLES_BLISTA3 >= 0 // iCost = g_sMPTunables.iTRADE_PRICE_VEHICLES_BLISTA3 // ENDIF BREAK CASE SLAMVAN4 iCost = 0 // IF bNetwork_isGameInProgress // AND g_sMPTunables.iTRADE_PRICE_VEHICLES_SLAMVAN4 >= 0 // iCost = g_sMPTunables.iTRADE_PRICE_VEHICLES_BLISTA3 // ENDIF BREAK #IF DEFINED(SLAMVAN5) CASE SLAMVAN5 iCost = 100000 // IF bNetwork_isGameInProgress // AND g_sMPTunables.iTRADE_PRICE_VEHICLES_SLAMVAN5 >= 0 // iCost = g_sMPTunables.iTRADE_PRICE_VEHICLES_SLAMVAN5 // ENDIF BREAK #ENDIF CASE THRAX iCost = 2325000 IF bNetwork_isGameInProgress AND g_sMPTunables.iVC_SALE_PRICE_THRAX >= 0 iCost = g_sMPTunables.iVC_SALE_PRICE_THRAX ENDIF BREAK CASE DRAFTER iCost = 718000 IF bNetwork_isGameInProgress AND g_sMPTunables.iVC_SALE_PRICE_DRAFTER_8F >= 0 iCost = g_sMPTunables.iVC_SALE_PRICE_DRAFTER_8F ENDIF BREAK CASE LOCUST iCost = 1625000 IF bNetwork_isGameInProgress AND g_sMPTunables.iVC_SALE_PRICE_LOCUST >= 0 iCost = g_sMPTunables.iVC_SALE_PRICE_LOCUST ENDIF BREAK CASE NOVAK iCost = 608000 IF bNetwork_isGameInProgress AND g_sMPTunables.iVC_SALE_PRICE_NOVAK >= 0 iCost = g_sMPTunables.iVC_SALE_PRICE_NOVAK ENDIF BREAK CASE ZORRUSSO iCost = 1925000 IF bNetwork_isGameInProgress AND g_sMPTunables.iVC_SALE_PRICE_ZORRUSSO >= 0 iCost = g_sMPTunables.iVC_SALE_PRICE_ZORRUSSO ENDIF BREAK CASE GAUNTLET3 IF bAltVersion iCost = 461250 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_GAUNTLET3 >= 0 iCost = g_sMPTunables.iCH_TRADE_PRICE_GAUNTLET3 ENDIF ENDIF ELSE iCost = 615000 IF bNetwork_isGameInProgress IF g_sMPTunables.iVC_SALE_PRICE_GAUNTLET_CLASSIC >= 0 iCost = g_sMPTunables.iVC_SALE_PRICE_GAUNTLET_CLASSIC ENDIF ENDIF iBasePrice = 461250 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_GAUNTLET3 >= 0 iBasePrice = g_sMPTunables.iCH_TRADE_PRICE_GAUNTLET3 ENDIF ENDIF ENDIF BREAK CASE ISSI7 iCost = 897000 IF bNetwork_isGameInProgress AND g_sMPTunables.iVC_SALE_UPGRADE_PRICE_ISSI_CUSTOM >= 0 iCost = g_sMPTunables.iVC_SALE_UPGRADE_PRICE_ISSI_CUSTOM ENDIF BREAK CASE ZION3 iCost = 812000 IF bNetwork_isGameInProgress AND g_sMPTunables.iVC_SALE_PRICE_ZION_CLASSIC >= 0 iCost = g_sMPTunables.iVC_SALE_PRICE_ZION_CLASSIC ENDIF BREAK CASE NEBULA iCost = 797000 IF bNetwork_isGameInProgress AND g_sMPTunables.iVC_SALE_PRICE_NEBULA >= 0 iCost = g_sMPTunables.iVC_SALE_PRICE_NEBULA ENDIF BREAK CASE HELLION iCost = 835000 IF bNetwork_isGameInProgress AND g_sMPTunables.iVC_SALE_PRICE_HELLION >= 0 iCost = g_sMPTunables.iVC_SALE_PRICE_HELLION ENDIF BREAK CASE DYNASTY iCost = 450000 IF bNetwork_isGameInProgress AND g_sMPTunables.iVC_SALE_PRICE_DYNASTY >= 0 iCost = g_sMPTunables.iVC_SALE_PRICE_DYNASTY ENDIF BREAK CASE RROCKET iCost = 925000 IF bNetwork_isGameInProgress AND g_sMPTunables.iVC_SALE_PRICE_RAMPANT_ROCKET >= 0 iCost = g_sMPTunables.iVC_SALE_PRICE_RAMPANT_ROCKET ENDIF BREAK CASE PEYOTE2 iCost = 805000 IF bNetwork_isGameInProgress AND g_sMPTunables.iVC_SALE_PRICE_GASSER >= 0 iCost = g_sMPTunables.iVC_SALE_PRICE_GASSER ENDIF BREAK CASE GAUNTLET4 iCost = 745000 IF bNetwork_isGameInProgress AND g_sMPTunables.iVC_SALE_PRICE_GAUNTLET >= 0 iCost = g_sMPTunables.iVC_SALE_PRICE_GAUNTLET ENDIF BREAK CASE CARACARA2 iCost = 875000 IF bNetwork_isGameInProgress AND g_sMPTunables.iVC_SALE_PRICE_CARACARA_4X4 >= 0 iCost = g_sMPTunables.iVC_SALE_PRICE_CARACARA_4X4 ENDIF BREAK CASE JUGULAR IF bAltVersion iCost = 918750 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_JUGULAR >= 0 iCost = g_sMPTunables.iCH_TRADE_PRICE_JUGULAR ENDIF ENDIF ELSE iCost = 1225000 IF bNetwork_isGameInProgress IF g_sMPTunables.iVC_SALE_PRICE_JUGULAR >= 0 iCost = g_sMPTunables.iVC_SALE_PRICE_JUGULAR ENDIF ENDIF iBasePrice = 918750 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_JUGULAR >= 0 iBasePrice = g_sMPTunables.iCH_TRADE_PRICE_JUGULAR ENDIF ENDIF ENDIF BREAK CASE S80 iCost = 2575000 IF bNetwork_isGameInProgress AND g_sMPTunables.iVC_SALE_PRICE_S80RR >= 0 iCost = g_sMPTunables.iVC_SALE_PRICE_S80RR ENDIF BREAK CASE KRIEGER iCost = 2875000 IF bNetwork_isGameInProgress AND g_sMPTunables.iVC_SALE_PRICE_KRIEGER >= 0 iCost = g_sMPTunables.iVC_SALE_PRICE_KRIEGER ENDIF BREAK CASE EMERUS iCost = 2750000 IF bNetwork_isGameInProgress AND g_sMPTunables.iVC_SALE_PRICE_EMERUS >= 0 iCost = g_sMPTunables.iVC_SALE_PRICE_EMERUS ENDIF BREAK CASE NEO iCost = 1875000 IF bNetwork_isGameInProgress AND g_sMPTunables.iVC_SALE_PRICE_NEO >= 0 iCost = g_sMPTunables.iVC_SALE_PRICE_NEO ENDIF BREAK CASE PARAGON iCost = 905000 IF bNetwork_isGameInProgress AND g_sMPTunables.iVC_SALE_PRICE_PARAGON >= 0 iCost = g_sMPTunables.iVC_SALE_PRICE_PARAGON ENDIF BREAK ENDSWITCH // Casino Heist pack SWITCH eVehicleModel CASE ASBO IF bAltVersion iCost = 306000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_ASBO >= 0 iCost = g_sMPTunables.iCH_TRADE_PRICE_ASBO ENDIF ENDIF ELSE iCost = 408000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_BIN_PRICE_ASBO >= 0 iCost = g_sMPTunables.iCH_BIN_PRICE_ASBO ENDIF ENDIF iBasePrice = 306000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_ASBO >= 0 iBasePrice = g_sMPTunables.iCH_TRADE_PRICE_ASBO ENDIF ENDIF ENDIF BREAK CASE KANJO IF bAltVersion iCost = 435000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_KANJO >= 0 iCost = g_sMPTunables.iCH_TRADE_PRICE_KANJO ENDIF ENDIF ELSE iCost = 580000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_BIN_PRICE_KANJO >= 0 iCost = g_sMPTunables.iCH_BIN_PRICE_KANJO ENDIF ENDIF iBasePrice = 435000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_KANJO >= 0 iBasePrice = g_sMPTunables.iCH_TRADE_PRICE_KANJO ENDIF ENDIF ENDIF BREAK CASE EVERON IF bAltVersion iCost = 1106250 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_EVERON >= 0 iCost = g_sMPTunables.iCH_TRADE_PRICE_EVERON ENDIF ENDIF ELSE iCost = 1475000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_BIN_PRICE_EVERON >= 0 iCost = g_sMPTunables.iCH_BIN_PRICE_EVERON ENDIF ENDIF iBasePrice = 1106250 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_EVERON >= 0 iBasePrice = g_sMPTunables.iCH_TRADE_PRICE_EVERON ENDIF ENDIF ENDIF BREAK CASE RETINUE2 IF bAltVersion iCost = 1215000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_RETINUE2 >= 0 iCost = g_sMPTunables.iCH_TRADE_PRICE_RETINUE2 ENDIF ENDIF ELSE iCost = 1620000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_BIN_PRICE_RETINUE2 >= 0 iCost = g_sMPTunables.iCH_BIN_PRICE_RETINUE2 ENDIF ENDIF iBasePrice = 1215000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_RETINUE2 >= 0 iBasePrice = g_sMPTunables.iCH_TRADE_PRICE_RETINUE2 ENDIF ENDIF ENDIF BREAK CASE YOSEMITE2 IF bAltVersion iCost = 981000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_YOSEMITE2 >= 0 iCost = g_sMPTunables.iCH_TRADE_PRICE_YOSEMITE2 ENDIF ENDIF ELSE iCost = 1308000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_BIN_PRICE_YOSEMITE2 >= 0 iCost = g_sMPTunables.iCH_BIN_PRICE_YOSEMITE2 ENDIF ENDIF iBasePrice = 981000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_YOSEMITE2 >= 0 iBasePrice = g_sMPTunables.iCH_TRADE_PRICE_YOSEMITE2 ENDIF ENDIF ENDIF BREAK CASE SUGOI IF bAltVersion iCost = 918000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_SUGOI >= 0 iCost = g_sMPTunables.iCH_TRADE_PRICE_SUGOI ENDIF ENDIF ELSE iCost = 1224000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_BIN_PRICE_SUGOI >= 0 iCost = g_sMPTunables.iCH_BIN_PRICE_SUGOI ENDIF ENDIF iBasePrice = 918000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_SUGOI >= 0 iBasePrice = g_sMPTunables.iCH_TRADE_PRICE_SUGOI ENDIF ENDIF ENDIF BREAK CASE SULTAN2 IF bAltVersion iCost = 1288500 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_SULTAN2 >= 0 iCost = g_sMPTunables.iCH_TRADE_PRICE_SULTAN2 ENDIF ENDIF ELSE iCost = 1718000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_BIN_PRICE_SULTAN2 >= 0 iCost = g_sMPTunables.iCH_BIN_PRICE_SULTAN2 ENDIF ENDIF iBasePrice = 1288500 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_SULTAN2 >= 0 iBasePrice = g_sMPTunables.iCH_TRADE_PRICE_SULTAN2 ENDIF ENDIF ENDIF BREAK CASE OUTLAW IF bAltVersion iCost = 951000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_OUTLAW >= 0 iCost = g_sMPTunables.iCH_TRADE_PRICE_OUTLAW ENDIF ENDIF ELSE iCost = 1268000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_BIN_PRICE_OUTLAW >= 0 iCost = g_sMPTunables.iCH_BIN_PRICE_OUTLAW ENDIF ENDIF iBasePrice = 951000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_OUTLAW >= 0 iBasePrice = g_sMPTunables.iCH_TRADE_PRICE_OUTLAW ENDIF ENDIF ENDIF BREAK CASE VAGRANT IF bAltVersion iCost = 1660500 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_VAGRANT >= 0 iCost = g_sMPTunables.iCH_TRADE_PRICE_VAGRANT ENDIF ENDIF ELSE iCost = 2214000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_BIN_PRICE_VAGRANT >= 0 iCost = g_sMPTunables.iCH_BIN_PRICE_VAGRANT ENDIF ENDIF iBasePrice = 1660500 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_VAGRANT >= 0 iBasePrice = g_sMPTunables.iCH_TRADE_PRICE_VAGRANT ENDIF ENDIF ENDIF BREAK CASE KOMODA IF bAltVersion iCost = 1275000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_KOMODA >= 0 iCost = g_sMPTunables.iCH_TRADE_PRICE_KOMODA ENDIF ENDIF ELSE iCost = 1700000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_BIN_PRICE_KOMODA >= 0 iCost = g_sMPTunables.iCH_BIN_PRICE_KOMODA ENDIF ENDIF iBasePrice = 1275000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_KOMODA >= 0 iBasePrice = g_sMPTunables.iCH_TRADE_PRICE_KOMODA ENDIF ENDIF ENDIF BREAK CASE STRYDER IF bAltVersion iCost = 502500 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_STRYDER >= 0 iCost = g_sMPTunables.iCH_TRADE_PRICE_STRYDER ENDIF ENDIF ELSE iCost = 670000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_BIN_PRICE_STRYDER >= 0 iCost = g_sMPTunables.iCH_BIN_PRICE_STRYDER ENDIF ENDIF iBasePrice = 502500 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_STRYDER >= 0 iBasePrice = g_sMPTunables.iCH_TRADE_PRICE_STRYDER ENDIF ENDIF ENDIF BREAK CASE FURIA IF bAltVersion iCost = 2055000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_FURIA >= 0 iCost = g_sMPTunables.iCH_TRADE_PRICE_FURIA ENDIF ENDIF ELSE iCost = 2740000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_BIN_PRICE_FURIA >= 0 iCost = g_sMPTunables.iCH_BIN_PRICE_FURIA ENDIF ENDIF iBasePrice = 2055000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_FURIA >= 0 iBasePrice = g_sMPTunables.iCH_TRADE_PRICE_FURIA ENDIF ENDIF ENDIF BREAK CASE ZHABA IF bAltVersion iCost = 1800000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_ZHABA >= 0 iCost = g_sMPTunables.iCH_TRADE_PRICE_ZHABA ENDIF ENDIF ELSE iCost = 2400000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_BIN_PRICE_ZHABA >= 0 iCost = g_sMPTunables.iCH_BIN_PRICE_ZHABA ENDIF ENDIF iBasePrice = 1800000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_ZHABA >= 0 iBasePrice = g_sMPTunables.iCH_TRADE_PRICE_ZHABA ENDIF ENDIF ENDIF BREAK CASE JB7002 iCost = 1470000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_JB7002 >= 0 iCost = g_sMPTunables.iCH_TRADE_PRICE_JB7002 ENDIF ENDIF BREAK CASE MINITANK iCost = 2275000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_SALE_PRICE_MINITANK >= 0 iCost = g_sMPTunables.iCH_SALE_PRICE_MINITANK ENDIF ENDIF BREAK CASE FORMULA iCost = 3515000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_FORMULA >= 0 iCost = g_sMPTunables.iCH_TRADE_PRICE_FORMULA ENDIF ENDIF BREAK CASE FORMULA2 iCost = 3115000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_TRADE_PRICE_FORMULA2 >= 0 iCost = g_sMPTunables.iCH_TRADE_PRICE_FORMULA2 ENDIF ENDIF BREAK CASE IMORGON iCost = 2165000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_SALE_PRICE_IMORGEN >= 0 iCost = g_sMPTunables.iCH_SALE_PRICE_IMORGEN ENDIF ENDIF BREAK CASE REBLA iCost = 1175000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_SALE_PRICE_REBLA >= 0 iCost = g_sMPTunables.iCH_SALE_PRICE_REBLA ENDIF ENDIF BREAK CASE VSTR iCost = 1285000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCH_SALE_PRICE_VSTR >= 0 iCost = g_sMPTunables.iCH_SALE_PRICE_VSTR ENDIF ENDIF BREAK #IF FEATURE_COPS_N_CROOKS CASE ZOKU IF bAltVersion iCost = 1470000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_TRADE_PRICE_ZOKU >= 0 iCost = g_sMPTunables.iCNC_TRADE_PRICE_ZOKU ENDIF ENDIF ELSE iCost = 1960000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_BIN_PRICE_ZOKU >= 0 iCost = g_sMPTunables.iCNC_BIN_PRICE_ZOKU ENDIF ENDIF iBasePrice = 1470000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_TRADE_PRICE_ZOKU >= 0 iBasePrice = g_sMPTunables.iCNC_TRADE_PRICE_ZOKU ENDIF ENDIF ENDIF BREAK CASE SURFER3 IF bAltVersion iCost = 667500 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_TRADE_PRICE_SURFER3 >= 0 iCost = g_sMPTunables.iCNC_TRADE_PRICE_SURFER3 ENDIF ENDIF ELSE iCost = 890000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_BIN_PRICE_SURFER3 >= 0 iCost = g_sMPTunables.iCNC_BIN_PRICE_SURFER3 ENDIF ENDIF iBasePrice = 667500 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_TRADE_PRICE_SURFER3 >= 0 iBasePrice = g_sMPTunables.iCNC_TRADE_PRICE_SURFER3 ENDIF ENDIF ENDIF BREAK CASE POLBATI IF bAltVersion iCost = 1542750 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_TRADE_PRICE_POLBATI >= 0 iCost = g_sMPTunables.iCNC_TRADE_PRICE_POLBATI ENDIF ENDIF ELSE iCost = 2057000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_BIN_PRICE_POLBATI >= 0 iCost = g_sMPTunables.iCNC_BIN_PRICE_POLBATI ENDIF ENDIF iBasePrice = 1542750 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_TRADE_PRICE_POLBATI >= 0 iBasePrice = g_sMPTunables.iCNC_TRADE_PRICE_POLBATI ENDIF ENDIF ENDIF BREAK CASE POLBUFFALO IF bAltVersion iCost = 1453500 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_TRADE_PRICE_POLBUFFALO >= 0 iCost = g_sMPTunables.iCNC_TRADE_PRICE_POLBUFFALO ENDIF ENDIF ELSE iCost = 1938000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_BIN_PRICE_POLBUFFALO >= 0 iCost = g_sMPTunables.iCNC_BIN_PRICE_POLBUFFALO ENDIF ENDIF iBasePrice = 1453500 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_TRADE_PRICE_POLBUFFALO >= 0 iBasePrice = g_sMPTunables.iCNC_TRADE_PRICE_POLBUFFALO ENDIF ENDIF ENDIF BREAK CASE POLGAUNTLET IF bAltVersion iCost = 1650000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_TRADE_PRICE_POLGAUNTLET >= 0 iCost = g_sMPTunables.iCNC_TRADE_PRICE_POLGAUNTLET ENDIF ENDIF ELSE iCost = 2200000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_BIN_PRICE_POLGAUNTLET >= 0 iCost = g_sMPTunables.iCNC_BIN_PRICE_POLGAUNTLET ENDIF ENDIF iBasePrice = 1650000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_TRADE_PRICE_POLGAUNTLET >= 0 iBasePrice = g_sMPTunables.iCNC_TRADE_PRICE_POLGAUNTLET ENDIF ENDIF ENDIF BREAK CASE POLGRANGER IF bAltVersion iCost = 1338750 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_TRADE_PRICE_POLGRANGER >= 0 iCost = g_sMPTunables.iCNC_TRADE_PRICE_POLGRANGER ENDIF ENDIF ELSE iCost = 1785000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_BIN_PRICE_POLGRANGER >= 0 iCost = g_sMPTunables.iCNC_BIN_PRICE_POLGRANGER ENDIF ENDIF iBasePrice = 1338750 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_TRADE_PRICE_POLGRANGER >= 0 iBasePrice = g_sMPTunables.iCNC_TRADE_PRICE_POLGRANGER ENDIF ENDIF ENDIF BREAK CASE POLICE5 IF bAltVersion iCost = 1071000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_TRADE_PRICE_POLICE5 >= 0 iCost = g_sMPTunables.iCNC_TRADE_PRICE_POLICE5 ENDIF ENDIF ELSE iCost = 1428000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_BIN_PRICE_POLICE5 >= 0 iCost = g_sMPTunables.iCNC_BIN_PRICE_POLICE5 ENDIF ENDIF iBasePrice = 1071000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_TRADE_PRICE_POLICE5 >= 0 iBasePrice = g_sMPTunables.iCNC_TRADE_PRICE_POLICE5 ENDIF ENDIF ENDIF BREAK CASE POLICE6 IF bAltVersion iCost = 1415250 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_TRADE_PRICE_POLICE6 >= 0 iCost = g_sMPTunables.iCNC_TRADE_PRICE_POLICE6 ENDIF ENDIF ELSE iCost = 1887000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_BIN_PRICE_POLICE6 >= 0 iCost = g_sMPTunables.iCNC_BIN_PRICE_POLICE6 ENDIF ENDIF iBasePrice = 1415250 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_TRADE_PRICE_POLICE6 >= 0 iBasePrice = g_sMPTunables.iCNC_TRADE_PRICE_POLICE6 ENDIF ENDIF ENDIF BREAK CASE POLICEB2 IF bAltVersion iCost = 1351500 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_TRADE_PRICE_POLICEB2 >= 0 iCost = g_sMPTunables.iCNC_TRADE_PRICE_POLICEB2 ENDIF ENDIF ELSE iCost = 1802000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_BIN_PRICE_POLICEB2 >= 0 iCost = g_sMPTunables.iCNC_BIN_PRICE_POLICEB2 ENDIF ENDIF iBasePrice = 1351500 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_TRADE_PRICE_POLICEB2 >= 0 iBasePrice = g_sMPTunables.iCNC_TRADE_PRICE_POLICEB2 ENDIF ENDIF ENDIF BREAK CASE POLICET2 IF bAltVersion iCost = 825000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_TRADE_PRICE_POLICET2 >= 0 iCost = g_sMPTunables.iCNC_TRADE_PRICE_POLICET2 ENDIF ENDIF ELSE iCost = 1100000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_BIN_PRICE_POLICET2 >= 0 iCost = g_sMPTunables.iCNC_BIN_PRICE_POLICET2 ENDIF ENDIF iBasePrice = 825000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_TRADE_PRICE_POLICET2 >= 0 iBasePrice = g_sMPTunables.iCNC_TRADE_PRICE_POLICET2 ENDIF ENDIF ENDIF BREAK CASE POLPANTO IF bAltVersion iCost = 924000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_TRADE_PRICE_POLPANTO >= 0 iCost = g_sMPTunables.iCNC_TRADE_PRICE_POLPANTO ENDIF ENDIF ELSE iCost = 1232000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_BIN_PRICE_POLPANTO >= 0 iCost = g_sMPTunables.iCNC_BIN_PRICE_POLPANTO ENDIF ENDIF iBasePrice = 924000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_TRADE_PRICE_POLPANTO >= 0 iBasePrice = g_sMPTunables.iCNC_TRADE_PRICE_POLPANTO ENDIF ENDIF ENDIF BREAK CASE POLCARACARA IF bAltVersion iCost = 1507500 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_TRADE_PRICE_POLCARACARA >= 0 iCost = g_sMPTunables.iCNC_TRADE_PRICE_POLCARACARA ENDIF ENDIF ELSE iCost = 2010000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_BIN_PRICE_POLCARACARA >= 0 iCost = g_sMPTunables.iCNC_BIN_PRICE_POLCARACARA ENDIF ENDIF iBasePrice = 1507500 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_TRADE_PRICE_POLCARACARA >= 0 iBasePrice = g_sMPTunables.iCNC_TRADE_PRICE_POLCARACARA ENDIF ENDIF ENDIF BREAK CASE POLRIATA IF bAltVersion iCost = 1377000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_TRADE_PRICE_POLRIATA >= 0 iCost = g_sMPTunables.iCNC_TRADE_PRICE_POLRIATA ENDIF ENDIF ELSE iCost = 1836000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_BIN_PRICE_POLRIATA >= 0 iCost = g_sMPTunables.iCNC_BIN_PRICE_POLRIATA ENDIF ENDIF iBasePrice = 1377000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_TRADE_PRICE_POLRIATA >= 0 iBasePrice = g_sMPTunables.iCNC_TRADE_PRICE_POLRIATA ENDIF ENDIF ENDIF BREAK CASE POLGREENWOOD IF bAltVersion iCost = 1326000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_TRADE_PRICE_POLGREENWOOD >= 0 iCost = g_sMPTunables.iCNC_TRADE_PRICE_POLGREENWOOD ENDIF ENDIF ELSE iCost = 1768000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_BIN_PRICE_POLGREENWOOD >= 0 iCost = g_sMPTunables.iCNC_BIN_PRICE_POLGREENWOOD ENDIF ENDIF iBasePrice = 1326000 IF bNetwork_isGameInProgress IF g_sMPTunables.iCNC_TRADE_PRICE_POLGREENWOOD >= 0 iBasePrice = g_sMPTunables.iCNC_TRADE_PRICE_POLGREENWOOD ENDIF ENDIF ENDIF BREAK #ENDIF CASE TIGON iCost = 2310000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSUM_SALE_PRICE_TIGON >= 0 iCost = g_sMPTunables.iSUM_SALE_PRICE_TIGON ENDIF ENDIF BREAK CASE OPENWHEEL1 iCost = 3400000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSUM_SALE_PRICE_OPENWHEEL1 >= 0 iCost = g_sMPTunables.iSUM_SALE_PRICE_OPENWHEEL1 ENDIF ENDIF BREAK CASE OPENWHEEL2 iCost = 2997000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSUM_SALE_PRICE_OPENWHEEL2 >= 0 iCost = g_sMPTunables.iSUM_SALE_PRICE_OPENWHEEL2 ENDIF ENDIF BREAK CASE COQUETTE4 iCost = 1510000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSUM_SALE_PRICE_COQUETTE4 >= 0 iCost = g_sMPTunables.iSUM_SALE_PRICE_COQUETTE4 ENDIF ENDIF BREAK CASE PEYOTE3 iCost = 620000 IF bNetwork_isGameInProgress iCost = g_sMPTunables.iSUM_SALE_PRICE_PEYOTE + GET_SUPERMOD_UPGRADE_COST(eVehicleModel) ENDIF BREAK CASE YOSEMITE3 iCost = 700000 IF bNetwork_isGameInProgress iCost = g_sMPTunables.iH2_VEHICLES_PRICE_YOSEMITE + GET_SUPERMOD_UPGRADE_COST(eVehicleModel) ENDIF BREAK CASE GAUNTLET5 iCost = 815000 IF bNetwork_isGameInProgress iCost = g_sMPTunables.iVC_SALE_PRICE_GAUNTLET_CLASSIC + GET_SUPERMOD_UPGRADE_COST(eVehicleModel) ENDIF BREAK CASE LANDSTALKER2 iCost = 1220000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSUM_SALE_PRICE_LANDSTALKER2 >= 0 iCost = g_sMPTunables.iSUM_SALE_PRICE_LANDSTALKER2 ENDIF ENDIF BREAK CASE GLENDALE2 iCost = 520000 IF bNetwork_isGameInProgress iCost = g_sMPTunables.iDLC_hipster_modifier_Benefactor_Glendale + GET_SUPERMOD_UPGRADE_COST(eVehicleModel) ENDIF BREAK CASE CLUB iCost = 1280000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSUM_SALE_PRICE_CLUB >= 0 iCost = g_sMPTunables.iSUM_SALE_PRICE_CLUB ENDIF ENDIF BREAK CASE DUKES3 iCost = 378000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSUM_SALE_PRICE_DUKES3 >= 0 iCost = g_sMPTunables.iSUM_SALE_PRICE_DUKES3 ENDIF ENDIF BREAK CASE YOUGA3 iCost = 1288000 IF bNetwork_isGameInProgress iCost = g_sMPtunables.iWEBSITE_VAPID_YOUGA_CLASSIC + GET_SUPERMOD_UPGRADE_COST(eVehicleModel) ENDIF BREAK CASE MANANA2 iCost = 925000 IF bNetwork_isGameInProgress iCost = g_sMPTunables.iSUM_SALE_PRICE_MANANA + GET_SUPERMOD_UPGRADE_COST(eVehicleModel) ENDIF BREAK CASE PENUMBRA2 iCost = 1380000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSUM_SALE_PRICE_PENUMBRA2 >= 0 iCost = g_sMPTunables.iSUM_SALE_PRICE_PENUMBRA2 ENDIF ENDIF BREAK CASE SEMINOLE2 iCost = 678000 IF bNetwork_isGameInProgress IF g_sMPTunables.iSUM_SALE_PRICE_SEMINOLE2 >= 0 iCost = g_sMPTunables.iSUM_SALE_PRICE_SEMINOLE2 ENDIF ENDIF BREAK CASE MANCHEZ2 iCost = 225000 IF bNetwork_isGameInProgress IF g_sMPTunables.iIH_BIN_PRICE_MANCHEZ2 >= 0 iCost = g_sMPTunables.iIH_BIN_PRICE_MANCHEZ2 ENDIF ENDIF BREAK CASE VERUS iCost = 192000 IF bNetwork_isGameInProgress IF g_sMPTunables.iIH_BIN_PRICE_VERUS >= 0 iCost = g_sMPTunables.iIH_BIN_PRICE_VERUS ENDIF ENDIF BREAK CASE VETO iCost = 895000 IF bNetwork_isGameInProgress IF g_sMPTunables.iIH_BIN_PRICE_VETO >= 0 iCost = g_sMPTunables.iIH_BIN_PRICE_VETO ENDIF ENDIF BREAK CASE VETO2 iCost = 995000 IF bNetwork_isGameInProgress IF g_sMPTunables.iIH_BIN_PRICE_VETO2 >= 0 iCost = g_sMPTunables.iIH_BIN_PRICE_VETO2 ENDIF ENDIF BREAK CASE SLAMTRUCK iCost = 1310000 IF bNetwork_isGameInProgress IF g_sMPTunables.iIH_BIN_PRICE_SLAMTRUCK >= 0 iCost = g_sMPTunables.iIH_BIN_PRICE_SLAMTRUCK ENDIF ENDIF BREAK CASE TOREADOR iCost = 3660000 IF bNetwork_isGameInProgress IF g_sMPTunables.iIH_BIN_PRICE_TOREADOR >= 0 iCost = g_sMPTunables.iIH_BIN_PRICE_TOREADOR ENDIF ENDIF BREAK CASE DINGHY5 iCost = 1850000 IF bNetwork_isGameInProgress IF g_sMPTunables.iIH_BIN_PRICE_DINGHY5 >= 0 iCost = g_sMPTunables.iIH_BIN_PRICE_DINGHY5 ENDIF ENDIF BREAK CASE SQUADDIE iCost = 1130000 IF bNetwork_isGameInProgress IF g_sMPTunables.iIH_BIN_PRICE_SQUADDIE >= 0 iCost = g_sMPTunables.iIH_BIN_PRICE_SQUADDIE ENDIF ENDIF BREAK CASE WINKY iCost = 1100000 IF bNetwork_isGameInProgress AND g_sMPTunables.iIH_BIN_PRICE_WINKY>= 0 iCost = g_sMPTunables.iIH_BIN_PRICE_WINKY ENDIF IF bAltVersion iBasePrice = iCost iCost = 825000 IF bNetwork_isGameInProgress AND g_sMPTunables.iIH_TRADE_PRICE_WINKY >= 0 iCost = g_sMPTunables.iIH_TRADE_PRICE_WINKY ENDIF ENDIF BREAK CASE ANNIHILATOR2 iCost = 3870000 IF bNetwork_isGameInProgress AND g_sMPTunables.iIH_BIN_PRICE_ANNIHILATOR2>= 0 iCost = g_sMPTunables.iIH_BIN_PRICE_ANNIHILATOR2 ENDIF IF bAltVersion iBasePrice = iCost iCost = 2902500 IF bNetwork_isGameInProgress AND g_sMPTunables.iIH_TRADE_PRICE_ANNIHILATOR2 >= 0 iCost = g_sMPTunables.iIH_TRADE_PRICE_ANNIHILATOR2 ENDIF ENDIF BREAK CASE ALKONOST iCost = 4350000 IF bNetwork_isGameInProgress AND g_sMPTunables.iIH_BIN_PRICE_ALKONOST>= 0 iCost = g_sMPTunables.iIH_BIN_PRICE_ALKONOST ENDIF IF bAltVersion iBasePrice = iCost iCost = 3262500 IF bNetwork_isGameInProgress AND g_sMPTunables.iIH_TRADE_PRICE_ALKONOST >= 0 iCost = g_sMPTunables.iIH_TRADE_PRICE_ALKONOST ENDIF ENDIF BREAK CASE BRIOSO2 iCost = 610000 IF bNetwork_isGameInProgress AND g_sMPTunables.iIH_BIN_PRICE_BRIOSO2>= 0 iCost = g_sMPTunables.iIH_BIN_PRICE_BRIOSO2 ENDIF IF bAltVersion iBasePrice = iCost iCost = 457500 IF bNetwork_isGameInProgress AND g_sMPTunables.iIH_TRADE_PRICE_BRIOSO2 >= 0 iCost = g_sMPTunables.iIH_TRADE_PRICE_BRIOSO2 ENDIF ENDIF BREAK CASE WEEVIL iCost = 870000 IF bNetwork_isGameInProgress AND g_sMPTunables.iIH_BIN_PRICE_WEEVIL>= 0 iCost = g_sMPTunables.iIH_BIN_PRICE_WEEVIL ENDIF IF bAltVersion iBasePrice = iCost iCost = 652500 IF bNetwork_isGameInProgress AND g_sMPTunables.iIH_TRADE_PRICE_WEEVIL >= 0 iCost = g_sMPTunables.iIH_TRADE_PRICE_WEEVIL ENDIF ENDIF BREAK CASE ITALIRSX iCost = 3465000 IF bNetwork_isGameInProgress AND g_sMPTunables.iIH_BIN_PRICE_ITALIRSX>= 0 iCost = g_sMPTunables.iIH_BIN_PRICE_ITALIRSX ENDIF IF bAltVersion iBasePrice = iCost iCost = 2598750 IF bNetwork_isGameInProgress AND g_sMPTunables.iIH_TRADE_PRICE_ITALIRSX >= 0 iCost = g_sMPTunables.iIH_TRADE_PRICE_ITALIRSX ENDIF ENDIF BREAK CASE LONGFIN iCost = 2125000 IF bNetwork_isGameInProgress AND g_sMPTunables.iIH_BIN_PRICE_LONGFIN>= 0 iCost = g_sMPTunables.iIH_BIN_PRICE_LONGFIN ENDIF IF bAltVersion iBasePrice = iCost iCost = 1593750 IF bNetwork_isGameInProgress AND g_sMPTunables.iIH_TRADE_PRICE_LONGFIN >= 0 iCost = g_sMPTunables.iIH_TRADE_PRICE_LONGFIN ENDIF ENDIF BREAK CASE VETIR iCost = 1630000 IF bNetwork_isGameInProgress AND g_sMPTunables.iIH_BIN_PRICE_VETIR>= 0 iCost = g_sMPTunables.iIH_BIN_PRICE_VETIR ENDIF IF bAltVersion iBasePrice = iCost iCost = 1222500 IF bNetwork_isGameInProgress AND g_sMPTunables.iIH_TRADE_PRICE_VETIR >= 0 iCost = g_sMPTunables.iIH_TRADE_PRICE_VETIR ENDIF ENDIF BREAK CASE PATROLBOAT iCost = 2955000 IF bNetwork_isGameInProgress AND g_sMPTunables.iIH_BIN_PRICE_PATROLBOAT>= 0 iCost = g_sMPTunables.iIH_BIN_PRICE_PATROLBOAT ENDIF IF bAltVersion iBasePrice = iCost iCost = 2216250 IF bNetwork_isGameInProgress AND g_sMPTunables.iIH_TRADE_PRICE_PATROLBOAT >= 0 iCost = g_sMPTunables.iIH_TRADE_PRICE_PATROLBOAT ENDIF ENDIF BREAK CASE KOSATKA IF NOT bAltVersion iCost = 2200000 IF bNetwork_isGameInProgress IF g_sMPTunables.iIH_SUB_SALE_KOSATKA >= 0 iCost = g_sMPTunables.iIH_SUB_SALE_KOSATKA ENDIF ENDIF ELSE iCost = 2200000 IF bNetwork_isGameInProgress IF g_sMPTunables.iIH_SUB_BASE_KOSATKA >= 0 iCost = g_sMPTunables.iIH_SUB_BASE_KOSATKA ENDIF ENDIF ENDIF BREAK CASE CALICO iCost = 1995000 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_BIN_PRICE_CALICO>= 0 iCost = g_sMPTunables.iTUNER_BIN_PRICE_CALICO ENDIF IF bAltVersion iBasePrice = iCost iCost = 1496250 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_TRADE_PRICE_CALICO >= 0 iCost = g_sMPTunables.iTUNER_TRADE_PRICE_CALICO ENDIF ENDIF BREAK CASE COMET6 iCost = 1878000 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_BIN_PRICE_COMET6>= 0 iCost = g_sMPTunables.iTUNER_BIN_PRICE_COMET6 ENDIF IF bAltVersion iBasePrice = iCost iCost = 1408500 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_TRADE_PRICE_COMET6 >= 0 iCost = g_sMPTunables.iTUNER_TRADE_PRICE_COMET6 ENDIF ENDIF BREAK CASE CYPHER iCost = 1550000 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_BIN_PRICE_CYPHER>= 0 iCost = g_sMPTunables.iTUNER_BIN_PRICE_CYPHER ENDIF IF bAltVersion iBasePrice = iCost iCost = 1162500 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_TRADE_PRICE_CYPHER >= 0 iCost = g_sMPTunables.iTUNER_TRADE_PRICE_CYPHER ENDIF ENDIF BREAK CASE DOMINATOR7 iCost = 1775000 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_BIN_PRICE_DOMINATOR7>= 0 iCost = g_sMPTunables.iTUNER_BIN_PRICE_DOMINATOR7 ENDIF IF bAltVersion iBasePrice = iCost iCost = 1331250 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_TRADE_PRICE_DOMINATOR7 >= 0 iCost = g_sMPTunables.iTUNER_TRADE_PRICE_DOMINATOR7 ENDIF ENDIF BREAK CASE JESTER4 iCost = 1970000 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_BIN_PRICE_JESTER4>= 0 iCost = g_sMPTunables.iTUNER_BIN_PRICE_JESTER4 ENDIF IF bAltVersion iBasePrice = iCost iCost = 1477500 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_TRADE_PRICE_JESTER4 >= 0 iCost = g_sMPTunables.iTUNER_TRADE_PRICE_JESTER4 ENDIF ENDIF BREAK CASE REMUS iCost = 1370000 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_BIN_PRICE_REMUS>= 0 iCost = g_sMPTunables.iTUNER_BIN_PRICE_REMUS ENDIF IF bAltVersion iBasePrice = iCost iCost = 1027500 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_TRADE_PRICE_REMUS >= 0 iCost = g_sMPTunables.iTUNER_TRADE_PRICE_REMUS ENDIF ENDIF BREAK CASE VECTRE iCost = 1785000 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_BIN_PRICE_VECTRE>= 0 iCost = g_sMPTunables.iTUNER_BIN_PRICE_VECTRE ENDIF IF bAltVersion iBasePrice = iCost iCost = 1338750 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_TRADE_PRICE_VECTRE >= 0 iCost = g_sMPTunables.iTUNER_TRADE_PRICE_VECTRE ENDIF ENDIF BREAK CASE ZR350 iCost = 1615000 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_BIN_PRICE_ZR350>= 0 iCost = g_sMPTunables.iTUNER_BIN_PRICE_ZR350 ENDIF IF bAltVersion iBasePrice = iCost iCost = 1211250 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_TRADE_PRICE_ZR350 >= 0 iCost = g_sMPTunables.iTUNER_TRADE_PRICE_ZR350 ENDIF ENDIF BREAK CASE WARRENER2 iCost = 1260000 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_BIN_PRICE_WARRENER2>= 0 iCost = g_sMPTunables.iTUNER_BIN_PRICE_WARRENER2 ENDIF IF bAltVersion iBasePrice = iCost iCost = 945000 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_TRADE_PRICE_WARRENER2 >= 0 iCost = g_sMPTunables.iTUNER_TRADE_PRICE_WARRENER2 ENDIF ENDIF BREAK CASE RT3000 iCost = 1715000 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_BIN_PRICE_RT3000>= 0 iCost = g_sMPTunables.iTUNER_BIN_PRICE_RT3000 ENDIF IF bAltVersion iBasePrice = iCost iCost = 1286250 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_TRADE_PRICE_RT3000 >= 0 iCost = g_sMPTunables.iTUNER_TRADE_PRICE_RT3000 ENDIF ENDIF BREAK CASE FUTO2 iCost = 1590000 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_BIN_PRICE_FUTO2>= 0 iCost = g_sMPTunables.iTUNER_BIN_PRICE_FUTO2 ENDIF IF bAltVersion iBasePrice = iCost iCost = 1192500 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_TRADE_PRICE_FUTO2 >= 0 iCost = g_sMPTunables.iTUNER_TRADE_PRICE_FUTO2 ENDIF ENDIF BREAK CASE TAILGATER2 iCost = 1495000 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_BIN_PRICE_TAILGATER2>= 0 iCost = g_sMPTunables.iTUNER_BIN_PRICE_TAILGATER2 ENDIF IF bAltVersion iBasePrice = iCost iCost = 1121250 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_TRADE_PRICE_TAILGATER2 >= 0 iCost = g_sMPTunables.iTUNER_TRADE_PRICE_TAILGATER2 ENDIF ENDIF BREAK CASE SULTAN3 iCost = 1789000 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_BIN_PRICE_SULTAN3>= 0 iCost = g_sMPTunables.iTUNER_BIN_PRICE_SULTAN3 ENDIF IF bAltVersion iBasePrice = iCost iCost = 1341750 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_TRADE_PRICE_SULTAN3 >= 0 iCost = g_sMPTunables.iTUNER_TRADE_PRICE_SULTAN3 ENDIF ENDIF BREAK CASE DOMINATOR8 iCost = 1220000 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_BIN_PRICE_DOMINATOR8>= 0 iCost = g_sMPTunables.iTUNER_BIN_PRICE_DOMINATOR8 ENDIF IF bAltVersion iBasePrice = iCost iCost = 915000 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_TRADE_PRICE_DOMINATOR8 >= 0 iCost = g_sMPTunables.iTUNER_TRADE_PRICE_DOMINATOR8 ENDIF ENDIF BREAK CASE EUROS iCost = 1800000 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_BIN_PRICE_EUROS>= 0 iCost = g_sMPTunables.iTUNER_BIN_PRICE_EUROS ENDIF IF bAltVersion iBasePrice = iCost iCost = 1350000 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_TRADE_PRICE_EUROS >= 0 iCost = g_sMPTunables.iTUNER_TRADE_PRICE_EUROS ENDIF ENDIF BREAK CASE GROWLER iCost = 1627000 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_BIN_PRICE_GROWLER>= 0 iCost = g_sMPTunables.iTUNER_BIN_PRICE_GROWLER ENDIF IF bAltVersion iBasePrice = iCost iCost = 1220250 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_TRADE_PRICE_GROWLER >= 0 iCost = g_sMPTunables.iTUNER_TRADE_PRICE_GROWLER ENDIF ENDIF BREAK CASE PREVION iCost = 1490000 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_BIN_PRICE_PREVION>= 0 iCost = g_sMPTunables.iTUNER_BIN_PRICE_PREVION ENDIF IF bAltVersion iBasePrice = iCost iCost = 1117500 IF bNetwork_isGameInProgress AND g_sMPTunables.iTUNER_TRADE_PRICE_PREVION >= 0 iCost = g_sMPTunables.iTUNER_TRADE_PRICE_PREVION ENDIF ENDIF BREAK #IF FEATURE_GEN9_EXCLUSIVE CASE S95 iCost = 1995000 IF bNetwork_isGameInProgress iCost = 1995000 IF g_sMPTunables.iGEN9_SALE_PRICE_S95 >= 0 iCost = g_sMPTunables.iGEN9_SALE_PRICE_S95 ENDIF ENDIF BREAK CASE ARBITERGT iCost = 1580000 IF bNetwork_isGameInProgress iCost = 1580000 IF g_sMPTunables.iGEN9_SALE_PRICE_ARBITERGT >= 0 iCost = g_sMPTunables.iGEN9_SALE_PRICE_ARBITERGT ENDIF ENDIF BREAK CASE ASTRON2 iCost = 1720000 IF bNetwork_isGameInProgress iCost = 1720000 IF g_sMPTunables.iGEN9_SALE_PRICE_ASTRON2 >= 0 iCost = g_sMPTunables.iGEN9_SALE_PRICE_ASTRON2 ENDIF ENDIF BREAK CASE CYCLONE2 iCost = 2250000 IF bNetwork_isGameInProgress iCost = 2250000 IF g_sMPTunables.iGEN9_SALE_PRICE_CYCLONE2 >= 0 iCost = g_sMPTunables.iGEN9_SALE_PRICE_CYCLONE2 ENDIF ENDIF BREAK CASE IGNUS2 iCost = 3245000 IF bNetwork_isGameInProgress iCost = 3245000 IF g_sMPTunables.iGEN9_SALE_PRICE_IGNUS2 >= 0 iCost = g_sMPTunables.iGEN9_SALE_PRICE_IGNUS2 ENDIF ENDIF BREAK #ENDIF #IF FEATURE_FIXER CASE ASTRON iCost = 1580000 IF bNetwork_isGameInProgress IF g_sMPTunables.iFIXER_BIN_PRICE_ASTRON >= 0 iCost = g_sMPTunables.iFIXER_BIN_PRICE_ASTRON ENDIF ENDIF BREAK CASE BALLER7 iCost = 890000 IF bNetwork_isGameInProgress AND g_sMPTunables.iFIXER_BIN_PRICE_BALLER7 >= 0 iCost = g_sMPTunables.iFIXER_BIN_PRICE_BALLER7 ENDIF IF bAltVersion iBasePrice = iCost iCost = 667500 IF bNetwork_isGameInProgress AND g_sMPTunables.iFIXER_TRADE_PRICE_BALLER7 >= 0 iCost = g_sMPTunables.iFIXER_TRADE_PRICE_BALLER7 ENDIF ENDIF BREAK CASE BUFFALO4 iCost = 2150000 IF bNetwork_isGameInProgress AND g_sMPTunables.iFIXER_BIN_PRICE_BUFFALO4 >= 0 iCost = g_sMPTunables.iFIXER_BIN_PRICE_BUFFALO4 ENDIF IF bAltVersion iBasePrice = iCost iCost = 1612500 IF bNetwork_isGameInProgress AND g_sMPTunables.iFIXER_TRADE_PRICE_BUFFALO4 >= 0 iCost = g_sMPTunables.iFIXER_TRADE_PRICE_BUFFALO4 ENDIF ENDIF BREAK CASE COMET7 iCost = 1797000 IF bNetwork_isGameInProgress IF g_sMPTunables.iFIXER_BIN_PRICE_COMET7 >= 0 iCost = g_sMPTunables.iFIXER_BIN_PRICE_COMET7 ENDIF ENDIF BREAK CASE CINQUEMILA iCost = 1740000 IF bNetwork_isGameInProgress IF g_sMPTunables.iFIXER_BIN_PRICE_CINQUEMILA >= 0 iCost = g_sMPTunables.iFIXER_BIN_PRICE_CINQUEMILA ENDIF ENDIF BREAK CASE DEITY iCost = 1845000 IF bNetwork_isGameInProgress AND g_sMPTunables.iFIXER_BIN_PRICE_DEITY >= 0 iCost = g_sMPTunables.iFIXER_BIN_PRICE_DEITY ENDIF IF bAltVersion iBasePrice = iCost iCost = 1383750 IF bNetwork_isGameInProgress AND g_sMPTunables.iFIXER_TRADE_PRICE_DEITY >= 0 iCost = g_sMPTunables.iFIXER_TRADE_PRICE_DEITY ENDIF ENDIF BREAK CASE GRANGER2 iCost = 1380000 IF bNetwork_isGameInProgress AND g_sMPTunables.iFIXER_BIN_PRICE_GRANGER2 >= 0 iCost = g_sMPTunables.iFIXER_BIN_PRICE_GRANGER2 ENDIF IF bAltVersion iBasePrice = iCost iCost = 1035000 IF bNetwork_isGameInProgress AND g_sMPTunables.iFIXER_TRADE_PRICE_GRANGER2 >= 0 iCost = g_sMPTunables.iFIXER_TRADE_PRICE_GRANGER2 ENDIF ENDIF BREAK CASE IGNUS iCost = 2765000 IF bNetwork_isGameInProgress IF g_sMPTunables.iFIXER_BIN_PRICE_IGNUS >= 0 iCost = g_sMPTunables.iFIXER_BIN_PRICE_IGNUS ENDIF ENDIF BREAK CASE JUBILEE iCost = 1650000 IF bNetwork_isGameInProgress AND g_sMPTunables.iFIXER_BIN_PRICE_JUBILEE >= 0 iCost = g_sMPTunables.iFIXER_BIN_PRICE_JUBILEE ENDIF IF bAltVersion iBasePrice = iCost iCost = 1237500 IF bNetwork_isGameInProgress AND g_sMPTunables.iFIXER_TRADE_PRICE_JUBILEE >= 0 iCost = g_sMPTunables.iFIXER_TRADE_PRICE_JUBILEE ENDIF ENDIF BREAK CASE PATRIOT3 iCost = 1710000 IF bNetwork_isGameInProgress AND g_sMPTunables.iFIXER_BIN_PRICE_PATRIOT3 >= 0 iCost = g_sMPTunables.iFIXER_BIN_PRICE_PATRIOT3 ENDIF IF bAltVersion iBasePrice = iCost iCost = 1282500 IF bNetwork_isGameInProgress AND g_sMPTunables.iFIXER_TRADE_PRICE_PATRIOT3 >= 0 iCost = g_sMPTunables.iFIXER_TRADE_PRICE_PATRIOT3 ENDIF ENDIF BREAK CASE CHAMPION iCost = 2995000 IF bNetwork_isGameInProgress AND g_sMPTunables.iFIXER_BIN_PRICE_CHAMPION >= 0 iCost = g_sMPTunables.iFIXER_BIN_PRICE_CHAMPION ENDIF IF bAltVersion iBasePrice = iCost iCost = 2246250 IF bNetwork_isGameInProgress AND g_sMPTunables.iFIXER_TRADE_PRICE_CHAMPION >= 0 iCost = g_sMPTunables.iFIXER_TRADE_PRICE_CHAMPION ENDIF ENDIF BREAK CASE REEVER iCost = 1900000 IF bNetwork_isGameInProgress IF g_sMPTunables.iFIXER_BIN_PRICE_REEVER >= 0 iCost = g_sMPTunables.iFIXER_BIN_PRICE_REEVER ENDIF ENDIF BREAK CASE SHINOBI iCost = 2480500 IF bNetwork_isGameInProgress IF g_sMPTunables.iFIXER_BIN_PRICE_SHINOBI >= 0 iCost = g_sMPTunables.iFIXER_BIN_PRICE_SHINOBI ENDIF ENDIF BREAK CASE ZENO iCost = 2820000 IF bNetwork_isGameInProgress IF g_sMPTunables.iFIXER_BIN_PRICE_ZENO >= 0 iCost = g_sMPTunables.iFIXER_BIN_PRICE_ZENO ENDIF ENDIF BREAK #ENDIF #IF FEATURE_DLC_1_2022 CASE CORSITA iCost = 1795000 IF bNetwork_isGameInProgress AND g_sMPTunables.iSU22_BIN_PRICE_CORSITA >= 0 iCost = g_sMPTunables.iSU22_BIN_PRICE_CORSITA ENDIF BREAK CASE DRAUGUR iCost = 1870000 IF bNetwork_isGameInProgress AND g_sMPTunables.iSU22_BIN_PRICE_DRAUGUR >= 0 iCost = g_sMPTunables.iSU22_BIN_PRICE_DRAUGUR ENDIF IF bAltVersion iBasePrice = iCost iCost = 1402500 IF bNetwork_isGameInProgress AND g_sMPTunables.iSU22_TRADE_PRICE_DRAUGUR >= 0 iCost = g_sMPTunables.iSU22_TRADE_PRICE_DRAUGUR ENDIF ENDIF BREAK CASE GREENWOOD iCost = 1465000 IF bNetwork_isGameInProgress AND g_sMPTunables.iSU22_BIN_PRICE_GREENWOOD >= 0 iCost = g_sMPTunables.iSU22_BIN_PRICE_GREENWOOD ENDIF IF bAltVersion iBasePrice = iCost iCost = 1098750 IF bNetwork_isGameInProgress AND g_sMPTunables.iSU22_TRADE_PRICE_GREENWOOD >= 0 iCost = g_sMPTunables.iSU22_TRADE_PRICE_GREENWOOD ENDIF ENDIF BREAK CASE KANJOSJ iCost = 1370000 IF bNetwork_isGameInProgress AND g_sMPTunables.iSU22_BIN_PRICE_KANJOSJ >= 0 iCost = g_sMPTunables.iSU22_BIN_PRICE_KANJOSJ ENDIF IF bAltVersion iBasePrice = iCost iCost = 1027500 IF bNetwork_isGameInProgress AND g_sMPTunables.iSU22_TRADE_PRICE_KANJOSJ >= 0 iCost = g_sMPTunables.iSU22_TRADE_PRICE_KANJOSJ ENDIF ENDIF BREAK CASE LM87 iCost = 2915000 IF bNetwork_isGameInProgress AND g_sMPTunables.iSU22_BIN_PRICE_LM87 >= 0 iCost = g_sMPTunables.iSU22_BIN_PRICE_LM87 ENDIF BREAK CASE POSTLUDE iCost = 1310000 IF bNetwork_isGameInProgress AND g_sMPTunables.iSU22_BIN_PRICE_POSTLUDE >= 0 iCost = g_sMPTunables.iSU22_BIN_PRICE_POSTLUDE ENDIF IF bAltVersion iBasePrice = iCost iCost = 982500 IF bNetwork_isGameInProgress AND g_sMPTunables.iSU22_TRADE_PRICE_POSTLUDE >= 0 iCost = g_sMPTunables.iSU22_TRADE_PRICE_POSTLUDE ENDIF ENDIF BREAK CASE RHINEHART iCost = 1598000 IF bNetwork_isGameInProgress AND g_sMPTunables.iSU22_BIN_PRICE_RHINEHART >= 0 iCost = g_sMPTunables.iSU22_BIN_PRICE_RHINEHART ENDIF BREAK CASE SM722 iCost = 2115000 IF bNetwork_isGameInProgress AND g_sMPTunables.iSU22_BIN_PRICE_SM722 >= 0 iCost = g_sMPTunables.iSU22_BIN_PRICE_SM722 ENDIF BREAK CASE TENF iCost = 1675000 IF bNetwork_isGameInProgress AND g_sMPTunables.iSU22_BIN_PRICE_TENF >= 0 iCost = g_sMPTunables.iSU22_BIN_PRICE_TENF ENDIF BREAK CASE TORERO2 iCost = 2890000 IF bNetwork_isGameInProgress AND g_sMPTunables.iSU22_BIN_PRICE_TORERO2 >= 0 iCost = g_sMPTunables.iSU22_BIN_PRICE_TORERO2 ENDIF BREAK CASE VIGERO2 iCost = 1947000 IF bNetwork_isGameInProgress AND g_sMPTunables.iSU22_BIN_PRICE_VIGERO2 >= 0 iCost = g_sMPTunables.iSU22_BIN_PRICE_VIGERO2 ENDIF BREAK CASE RUINER4 iCost = 1320000 IF bNetwork_isGameInProgress AND g_sMPTunables.iSU22_BIN_PRICE_RUINER4 >= 0 iCost = g_sMPTunables.iSU22_BIN_PRICE_RUINER4 ENDIF BREAK CASE CONADA iCost = 2450000 IF bNetwork_isGameInProgress AND g_sMPTunables.iSU22_BIN_PRICE_CONADA >= 0 iCost = g_sMPTunables.iSU22_BIN_PRICE_CONADA ENDIF IF bAltVersion iBasePrice = iCost iCost = 1837500 IF bNetwork_isGameInProgress AND g_sMPTunables.iSU22_TRADE_PRICE_CONADA >= 0 iCost = g_sMPTunables.iSU22_TRADE_PRICE_CONADA ENDIF ENDIF BREAK CASE OMNISEGT iCost = 1795000 IF bNetwork_isGameInProgress AND g_sMPTunables.iSU22_BIN_PRICE_OMNISEGT >= 0 iCost = g_sMPTunables.iSU22_BIN_PRICE_OMNISEGT ENDIF BREAK CASE WEEVIL2 iCost = (g_sMPTunables.iIH_TRADE_PRICE_WEEVIL + GET_SUPERMOD_UPGRADE_COST(eVehicleModel)) BREAK CASE TENF2 iCost = (g_sMPTunables.iSU22_BIN_PRICE_TENF + GET_SUPERMOD_UPGRADE_COST(eVehicleModel)) BREAK CASE BRIOSO3 iCost = (g_sMPTunables.iIH_TRADE_PRICE_BRIOSO2 + GET_SUPERMOD_UPGRADE_COST(eVehicleModel)) BREAK CASE SENTINEL4 iCost = (g_sMPTunables.iCH_TRADE_PRICE_SENTINAL3 + GET_SUPERMOD_UPGRADE_COST(eVehicleModel)) BREAK #ENDIF ENDSWITCH #IF FEATURE_FIXER IF eVehicleModel = IWAGEN iCost = 1720000 IF bNetwork_isGameInProgress IF g_sMPTunables.iFIXER_BIN_PRICE_IWAGEN >= 0 iCost = g_sMPTunables.iFIXER_BIN_PRICE_IWAGEN ENDIF ENDIF ENDIF #ENDIF ENDIF SWITCH eVehicleModel // Beach Bum pack CASE PARADISE iCost = 50000 IF bNetwork_isGameInProgress #IF USE_TU_CHANGES OR iForceNetworkPrice = 1 #ENDIF iCost = 25000 IF g_sMPTunables.iDLC_VEHICLE_Bravado_Paradise >= 0 AND bNetwork_isGameInProgress iCost = g_sMPTunables.iDLC_VEHICLE_Bravado_Paradise ENDIF ENDIF BREAK CASE BIFTA iCost = 75000 IF bNetwork_isGameInProgress IF g_sMPTunables.iDLC_VEHICLE_BF_Bifta >= 0 iCost = g_sMPTunables.iDLC_VEHICLE_BF_Bifta ENDIF ENDIF BREAK CASE KALAHARI iCost = 40000 IF bNetwork_isGameInProgress #IF USE_TU_CHANGES OR iForceNetworkPrice = 1 #ENDIF iCost = 40000 IF g_sMPTunables.iDLC_VEHICLE_Canis_Kalahari >= 0 AND bNetwork_isGameInProgress iCost = g_sMPTunables.iDLC_VEHICLE_Canis_Kalahari ENDIF ENDIF BREAK CASE SPEEDER iCost = 325000 IF bNetwork_isGameInProgress IF g_sMPTunables.iDLC_VEHICLE_Pegassi_Speeder >= 0 iCost = g_sMPTunables.iDLC_VEHICLE_Pegassi_Speeder ENDIF ENDIF BREAK // Valentines pack CASE BTYPE iCost = 1150000 IF bNetwork_isGameInProgress #IF USE_TU_CHANGES OR iForceNetworkPrice = 1 #ENDIF iCost = 750000 IF g_sMPTunables.ivalentine_modifier_caddy_sedan >= 0 AND bNetwork_isGameInProgress iCost = g_sMPTunables.ivalentine_modifier_caddy_sedan ENDIF ENDIF BREAK // Business pack 1 CASE JESTER iCost = 240000 IF bNetwork_isGameInProgress IF g_sMPTunables.ibusiness_vehicles_Jester >= 0 iCost = g_sMPTunables.ibusiness_vehicles_Jester ENDIF ENDIF BREAK CASE TURISMOR IF NOT bAltVersion iCost = 500000 IF bNetwork_isGameInProgress IF g_sMPTunables.ibusiness_vehicles_Turismor >= 0 iCost = g_sMPTunables.ibusiness_vehicles_Turismor ENDIF ENDIF ELSE iCost = 0 // IF bNetwork_isGameInProgress // IF g_sMPtunables.ibusiness_vehicles_Turismor_FREE >= 0 // iCost = g_sMPtunables.ibusiness_vehicles_Turismor_FREE // ENDIF // ENDIF ENDIF BREAK CASE ALPHA iCost = 150000 IF bNetwork_isGameInProgress IF g_sMPTunables.ibusiness_vehicles_Alpha >= 0 iCost = g_sMPTunables.ibusiness_vehicles_Alpha ENDIF ENDIF BREAK CASE VESTRA iCost = 950000 IF bNetwork_isGameInProgress IF g_sMPTunables.ibusinessvehiclesVestra >= 0 iCost = g_sMPTunables.ibusinessvehiclesVestra ENDIF ENDIF BREAK // Business pack 2 CASE MASSACRO iCost = 275000 IF bNetwork_isGameInProgress IF g_sMPTunables.ibusiness_vehicles_Massacro >= 0 iCost = g_sMPTunables.ibusiness_vehicles_Massacro ENDIF ENDIF BREAK CASE zentorno iCost = 725000 IF bNetwork_isGameInProgress IF g_sMPTunables.ibusiness_vehicles_Zentorno >= 0 iCost = g_sMPTunables.ibusiness_vehicles_Zentorno ENDIF ENDIF BREAK CASE HUNTLEY IF NOT bAltVersion iCost = 195000 IF bNetwork_isGameInProgress IF g_sMPTunables.ibusiness_vehicles_Huntley >= 0 iCost = g_sMPTunables.ibusiness_vehicles_Huntley ENDIF ENDIF ELSE iCost = 0 // IF bNetwork_isGameInProgress // IF g_sMPtunables.ibusiness_vehicles_Huntley_FREE >= 0 // iCost = g_sMPtunables.ibusiness_vehicles_Huntley_FREE // ENDIF // ENDIF ENDIF BREAK CASE thrust iCost = 75000 IF bNetwork_isGameInProgress IF g_sMPTunables.iDLC_VEHICLE_Dinka_Thrust >= 0 iCost = g_sMPTunables.iDLC_VEHICLE_Dinka_Thrust ENDIF ENDIF BREAK // Hipster pack CASE blade iCost = 160000 IF bNetwork_isGameInProgress IF g_sMPTunables.iDLC_hipster_modifier_Vapid_Blade >= 0 iCost = g_sMPTunables.iDLC_hipster_modifier_Vapid_Blade ENDIF ENDIF BREAK CASE WARRENER iCost = 125000 IF bNetwork_isGameInProgress #IF USE_TU_CHANGES OR iForceNetworkPrice = 1 #ENDIF iCost = 120000 IF g_sMPTunables.iDLC_hipster_modifier_Vulcar_Warrener >= 0 AND bNetwork_isGameInProgress iCost = g_sMPTunables.iDLC_hipster_modifier_Vulcar_Warrener ENDIF ENDIF BREAK CASE GLENDALE iCost = 200000 IF bNetwork_isGameInProgress AND g_sMPTunables.iDLC_hipster_modifier_Benefactor_Glendale >= 0 iCost = g_sMPTunables.iDLC_hipster_modifier_Benefactor_Glendale ENDIF IF bAltVersion iBasePrice = iCost iCost = ROUND(TO_FLOAT(200000)*0.75) IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_TRADE_PRICE_GLENDALE >= 0 iCost = g_sMPTunables.iAW_TRADE_PRICE_GLENDALE ENDIF ENDIF BREAK CASE rhapsody iCost = 100000 IF bNetwork_isGameInProgress #IF USE_TU_CHANGES OR iForceNetworkPrice = 1 #ENDIF iCost = 140000 IF g_sMPTunables.iDLC_hipster_modifier_Declasse_Rhapsody >= 0 AND bNetwork_isGameInProgress iCost = g_sMPTunables.iDLC_hipster_modifier_Declasse_Rhapsody ENDIF ENDIF BREAK CASE PANTO iCost = 85000 IF bNetwork_isGameInProgress IF g_sMPTunables.iDLC_hipster_modifier_Benefactor_Panto >= 0 iCost = g_sMPTunables.iDLC_hipster_modifier_Benefactor_Panto ENDIF ENDIF BREAK CASE dubsta3 iCost = 249000 IF bNetwork_isGameInProgress IF g_sMPTunables.iDLC_hipster_modifier_Dubsta3 >= 0 iCost = g_sMPTunables.iDLC_hipster_modifier_Dubsta3 ENDIF ENDIF BREAK CASE PIGALLE iCost = 400000 IF bNetwork_isGameInProgress IF g_sMPTunables.iDLC_hipster_modifier_Vulcar_Pigalle >= 0 iCost = g_sMPTunables.iDLC_hipster_modifier_Vulcar_Pigalle ENDIF ENDIF BREAK // Pilot School pack CASE BESRA iCost = 658000 IF bNetwork_isGameInProgress #IF USE_TU_CHANGES OR iForceNetworkPrice = 1 #ENDIF iCost = 1150000 IF g_sMPTunables.iPs_Western_Besra >= 0 AND bNetwork_isGameInProgress iCost = g_sMPTunables.iPs_Western_Besra ENDIF ENDIF BREAK CASE MILJET iCost = 1750000 IF bNetwork_isGameInProgress #IF USE_TU_CHANGES OR iForceNetworkPrice = 1 #ENDIF iCost = 1700000 IF g_sMPTunables.iPs_Buckingham_MilJet >= 0 AND bNetwork_isGameInProgress iCost = g_sMPTunables.iPs_Buckingham_MilJet ENDIF ENDIF BREAK CASE SWIFT IF NOT bAltVersion //classic iCost = 1500000 IF bNetwork_isGameInProgress IF g_sMPTunables.iPs_Swift_Livery_1 >= 0 iCost = g_sMPTunables.iPs_Swift_Livery_1 ENDIF ENDIF ELSE //flying bravo iCost = 1600000 IF bNetwork_isGameInProgress IF g_sMPTunables.iPs_Swift_Livery_2 >= 0 iCost = g_sMPTunables.iPs_Swift_Livery_2 ENDIF ENDIF ENDIF BREAK CASE COQUETTE2 IF bAltVersion //top on iCost = 350000 IF bNetwork_isGameInProgress #IF USE_TU_CHANGES OR iForceNetworkPrice = 1 #ENDIF iCost = 665000 IF g_sMPTunables.iPs_Inverto_Coquette_Classic >= 0 AND bNetwork_isGameInProgress iCost = g_sMPTunables.iPs_Inverto_Coquette_Classic ENDIF ENDIF ELSE //topless iCost = 395000 IF bNetwork_isGameInProgress #IF USE_TU_CHANGES OR iForceNetworkPrice = 1 #ENDIF iCost = 665000 IF g_sMPTunables.iPs_Inverto_Coquette_Classic_Topless >= 0 AND bNetwork_isGameInProgress iCost = g_sMPTunables.iPs_Inverto_Coquette_Classic_Topless ENDIF ENDIF ENDIF BREAK //this is for ^^#IF FEATURE_PILOT_SCHOOL ^^ // Independence pack CASE SOVEREIGN iCost = 120000 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicle_IndependenceDay_SOVEREIGN >= 0 iCost = g_sMPTunables.iVehicle_IndependenceDay_SOVEREIGN ENDIF ENDIF BREAK CASE MONSTER iCost = 742000 IF bNetwork_isGameInProgress #IF USE_TU_CHANGES OR iForceNetworkPrice = 1 #ENDIF iCost = 742014 IF g_sMPTunables.iVehicle_IndependenceDay_MONSTER >= 0 AND bNetwork_isGameInProgress iCost = g_sMPTunables.iVehicle_IndependenceDay_MONSTER ENDIF ENDIF BREAK // LTS pack CASE INNOVATION iCost = 92500 IF bNetwork_isGameInProgress IF g_sMPTunables.iLTS_LCC_Innovation >= 0 iCost = g_sMPTunables.iLTS_LCC_Innovation ENDIF ENDIF BREAK CASE HAKUCHOU iCost = 82000 IF bNetwork_isGameInProgress IF g_sMPTunables.iLTS_Shitzu_Hakuchou >= 0 iCost = g_sMPTunables.iLTS_Shitzu_Hakuchou ENDIF ENDIF BREAK CASE FUROREGT iCost = 448000 IF bNetwork_isGameInProgress IF g_sMPTunables.iLTS_Lampadati_Furore_GT >= 0 iCost = g_sMPTunables.iLTS_Lampadati_Furore_GT ENDIF ENDIF BREAK // Heist pack CASE Boxville4 IF NOT bAltVersion iCost = 45000 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Brute_Boxville >= 0 iCost = g_sMPTunables.iVehicles_Heist_Brute_Boxville ENDIF ENDIF ELSE iCost = 59850 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Brute_Boxville_BIN_PRICE >= 0 iCost = g_sMPTunables.iVehicles_Heist_Brute_Boxville_BIN_PRICE ENDIF ENDIF ENDIF BREAK CASE CASCO IF NOT bAltVersion iCost = 680000 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Lampadati_Casco >= 0 iCost = g_sMPTunables.iVehicles_Heist_Lampadati_Casco ENDIF ENDIF ELSE iCost = 904400 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Lampadati_Casco_BIN_PRICE >= 0 iCost = g_sMPTunables.iVehicles_Heist_Lampadati_Casco_BIN_PRICE ENDIF ENDIF ENDIF BREAK CASE DINGHY3 IF NOT bAltVersion iCost = 125000 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Nagasaki_Dinghy >= 0 iCost = g_sMPTunables.iVehicles_Heist_Nagasaki_Dinghy ENDIF ENDIF ELSE iCost = 166250 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Nagasaki_Dinghy_BIN_PRICE >= 0 iCost = g_sMPTunables.iVehicles_Heist_Nagasaki_Dinghy_BIN_PRICE ENDIF ENDIF ENDIF BREAK CASE ENDURO iCost = 48000 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Dinka_Enduro >= 0 iCost = g_sMPTunables.iVehicles_Heist_Dinka_Enduro ENDIF ENDIF BREAK CASE GBURRITO2 IF NOT bAltVersion iCost = 65000 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Declasse_Gang_Burrito >= 0 iCost = g_sMPTunables.iVehicles_Heist_Declasse_Gang_Burrito ENDIF ENDIF ELSE iCost = 86450 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Declasse_Gang_Burrito_BIN_PRICE >= 0 iCost = g_sMPTunables.iVehicles_Heist_Declasse_Gang_Burrito_BIN_PRICE ENDIF ENDIF ENDIF BREAK CASE GUARDIAN iCost = 375000 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Vapid_Guadian >= 0 iCost = g_sMPTunables.iVehicles_Heist_Vapid_Guadian ENDIF ENDIF BREAK CASE HYDRA IF NOT bAltVersion iCost = 3000000 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Mammoth_Hydra >= 0 iCost = g_sMPTunables.iVehicles_Heist_Mammoth_Hydra ENDIF ENDIF ELSE iCost = 3990000 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Mammoth_Hydra_BIN_PRICE >= 0 iCost = g_sMPTunables.iVehicles_Heist_Mammoth_Hydra_BIN_PRICE ENDIF ENDIF ENDIF BREAK CASE Insurgent IF NOT bAltVersion iCost = 1350000 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_HVY_Insurgent_PickUp >= 0 iCost = g_sMPTunables.iVehicles_Heist_HVY_Insurgent_PickUp ENDIF ENDIF ELSE iCost = 1795500 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_HVY_Insurgent_PickUp_BIN_PRICE >= 0 iCost = g_sMPTunables.iVehicles_Heist_HVY_Insurgent_PickUp_BIN_PRICE ENDIF ENDIF ENDIF BREAK CASE Insurgent2 IF NOT bAltVersion iCost = 675000 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_HVY_Insurgent >= 0 iCost = g_sMPTunables.iVehicles_Heist_HVY_Insurgent ENDIF ENDIF ELSE iCost = 897750 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_HVY_Insurgent_BIN_PRICE >= 0 iCost = g_sMPTunables.iVehicles_Heist_HVY_Insurgent_BIN_PRICE ENDIF ENDIF ENDIF BREAK CASE KURUMA IF NOT bAltVersion iCost = 95000 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Karin_Kuruma >= 0 iCost = g_sMPTunables.iVehicles_Heist_Karin_Kuruma ENDIF ENDIF ELSE iCost = 126350 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Karin_Kuruma_BIN_PRICE >= 0 iCost = g_sMPTunables.iVehicles_Heist_Karin_Kuruma_BIN_PRICE ENDIF ENDIF ENDIF BREAK CASE KURUMA2 IF NOT bAltVersion iCost = 525000 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Karin_Kuruma_Armored >= 0 iCost = g_sMPTunables.iVehicles_Heist_Karin_Kuruma_Armored ENDIF ENDIF ELSE iCost = 698250 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Karin_Kuruma_Armored_BIN_PRICE >= 0 iCost = g_sMPTunables.iVehicles_Heist_Karin_Kuruma_Armored_BIN_PRICE ENDIF ENDIF ENDIF BREAK CASE LECTRO IF NOT bAltVersion iCost = 750000 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Principe_Lectro >= 0 iCost = g_sMPTunables.iVehicles_Heist_Principe_Lectro ENDIF ENDIF ELSE iCost = 997500 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Principe_Lectro_BIN_PRICE >= 0 iCost = g_sMPTunables.iVehicles_Heist_Principe_Lectro_BIN_PRICE ENDIF ENDIF ENDIF BREAK CASE PBUS IF NOT bAltVersion iCost = 550000 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Pbus >= 0 iCost = g_sMPTunables.iVehicles_Heist_Pbus ENDIF ENDIF ELSE iCost = 731500 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Pbus_BIN_PRICE >= 0 iCost = g_sMPTunables.iVehicles_Heist_Pbus_BIN_PRICE ENDIF ENDIF ENDIF BREAK CASE MULE3 IF NOT bAltVersion iCost = 32500 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Maibatsu_Mule >= 0 iCost = g_sMPTunables.iVehicles_Heist_Maibatsu_Mule ENDIF ENDIF ELSE iCost = 43225 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Maibatsu_Mule_BIN_PRICE >= 0 iCost = g_sMPTunables.iVehicles_Heist_Maibatsu_Mule_BIN_PRICE ENDIF ENDIF ENDIF BREAK CASE SAVAGE IF NOT bAltVersion iCost = 1950000 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Savage >= 0 iCost = g_sMPTunables.iVehicles_Heist_Savage ENDIF ENDIF ELSE iCost = 2593500 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Savage_BIN_PRICE >= 0 iCost = g_sMPTunables.iVehicles_Heist_Savage_BIN_PRICE ENDIF ENDIF ENDIF BREAK CASE VALKYRIE IF NOT bAltVersion iCost = 2850000 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Buckingham_Valkyrie >= 0 iCost = g_sMPTunables.iVehicles_Heist_Buckingham_Valkyrie ENDIF ENDIF ELSE iCost = 3790500 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Buckingham_Valkyrie_BIN_PRICE >= 0 iCost = g_sMPTunables.iVehicles_Heist_Buckingham_Valkyrie_BIN_PRICE ENDIF ENDIF ENDIF BREAK CASE TECHNICAL IF NOT bAltVersion iCost = 950000 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Karin_Technical >= 0 iCost = g_sMPTunables.iVehicles_Heist_Karin_Technical ENDIF ENDIF ELSE iCost = 1263500 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Karin_Technical_BIN_PRICE >= 0 iCost = g_sMPTunables.iVehicles_Heist_Karin_Technical_BIN_PRICE ENDIF ENDIF ENDIF BREAK CASE VELUM2 IF NOT bAltVersion iCost = 995000 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Velum >= 0 iCost = g_sMPTunables.iVehicles_Heist_Velum ENDIF ENDIF ELSE iCost = 1323350 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Velum_BIN_PRICE >= 0 iCost = g_sMPTunables.iVehicles_Heist_Velum_BIN_PRICE ENDIF ENDIF ENDIF BREAK CASE DODO iCost = 500000 IF bNetwork_isGameInProgress IF NOT bAltVersion IF g_sMPTunables.iCGtoNG_Dodo >= 0 iCost = g_sMPTunables.iCGtoNG_Dodo ENDIF ELSE iCost = g_sMPTunables.iRETURNING_PRICE_DODO ENDIF ENDIF BREAK CASE MARSHALL iCost = 250000 IF bNetwork_isGameInProgress #IF USE_TU_CHANGES OR iForceNetworkPrice = 1 #ENDIF IF NOT bAltVersion iCost = 500000 IF g_sMPTunables.iCGtoNG_Cheval_Marshall >= 0 AND bNetwork_isGameInProgress iCost = g_sMPTunables.iCGtoNG_Cheval_Marshall ENDIF ELSE iCost = g_sMPTunables.iRETURNING_PRICE_MARSHALL ENDIF ENDIF BREAK CASE SUBMERSIBLE2 iCost = 1325000 IF bNetwork_isGameInProgress IF NOT bAltVersion IF g_sMPTunables.iCGtoNG_Submersible >= 0 iCost = g_sMPTunables.iCGtoNG_Submersible ENDIF ELSE iCost = g_sMPTunables.iRETURNING_PRICE_KRAKEN ENDIF ENDIF BREAK CASE BLISTA2 iCost = 42000 IF bNetwork_isGameInProgress IF NOT bAltVersion IF g_sMPTunables.iCGtoNG_Dinka_Blista_Compact >= 0 iCost = g_sMPTunables.iCGtoNG_Dinka_Blista_Compact ENDIF ELSE iCost = g_sMPTunables.iRETURNING_PRICE_BLISTA ENDIF ENDIF BREAK CASE STALION iCost = 71000 IF bNetwork_isGameInProgress IF NOT bAltVersion IF g_sMPTunables.iCGtoNG_Declasse_Stallion >= 0 iCost = g_sMPTunables.iCGtoNG_Declasse_Stallion ENDIF ELSE iCost = g_sMPTunables.iRETURNING_PRICE_STALLION ENDIF ENDIF BREAK CASE DUKES iCost = 62000 IF bNetwork_isGameInProgress IF NOT bAltVersion iCost = 62000 IF g_sMPTunables.iCGtoNG_Imponte_Dukes >= 0 iCost = g_sMPTunables.iCGtoNG_Imponte_Dukes ENDIF ELSE iCost = g_sMPTunables.iRETURNING_PRICE_DUKES ENDIF ENDIF BREAK CASE DUKES2 iCost = 279000 IF bNetwork_isGameInProgress #IF USE_TU_CHANGES OR iForceNetworkPrice = 1 #ENDIF IF NOT bAltVersion iCost = 665000 IF g_sMPTunables.iCGtoNG_Imponte_Duke_O_Death >= 0 AND bNetwork_isGameInProgress iCost = g_sMPTunables.iCGtoNG_Imponte_Duke_O_Death ENDIF ELSE iCost = g_sMPTunables.iRETURNING_PRICE_DUKEODEATH ENDIF ENDIF BREAK CASE STALION2 iCost = 277000 IF bNetwork_isGameInProgress IF g_sMPtunables.iSTUNT_Declasse_Burger_Shot_Stallion >= 0 iCost = g_sMPtunables.iSTUNT_Declasse_Burger_Shot_Stallion ENDIF ENDIF BREAK CASE DOMINATOR2 iCost = 315000 IF bNetwork_isGameInProgress AND g_sMPtunables.iSTUNT_Vapid_Pisswasser_Dominator >= 0 iCost = g_sMPtunables.iSTUNT_Vapid_Pisswasser_Dominator ENDIF IF bAltVersion iBasePrice = iCost iCost = ROUND(TO_FLOAT(315000)*0.75) // IF bNetwork_isGameInProgress // AND g_sMPtunables.iSTUNT_Vapid_Pisswasser_Dominator >= 0 // iCost = g_sMPtunables.iSTUNT_Vapid_Pisswasser_Dominator // ENDIF ENDIF BREAK CASE GAUNTLET2 iCost = 230000 IF bNetwork_isGameInProgress IF g_sMPtunables.iSTUNT_Bravado_Redwood_Gauntlet >= 0 iCost = g_sMPtunables.iSTUNT_Bravado_Redwood_Gauntlet ENDIF ENDIF BREAK CASE BUFFALO3 iCost = 535000 IF bNetwork_isGameInProgress IF g_sMPtunables.iSTUNT_Bravado_Sprunk_Buffalo >= 0 iCost = g_sMPtunables.iSTUNT_Bravado_Sprunk_Buffalo ENDIF ENDIF BREAK // Christmas2 pack CASE SLAMVAN iCost = 49500 IF bNetwork_isGameInProgress AND g_sMPTunables.iVehicle_xmas14_Slamvan >= 0 iCost = g_sMPTunables.iVehicle_xmas14_Slamvan ENDIF IF bAltVersion iBasePrice = iCost iCost = ROUND(TO_FLOAT(49500)*0.75) IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_TRADE_PRICE_SLAMVAN >= 0 iCost = g_sMPTunables.iAW_TRADE_PRICE_SLAMVAN ENDIF ENDIF BREAK CASE RATLOADER2 iCost = 37500 IF bNetwork_isGameInProgress AND g_sMPTunables.iVehicle_xmas14_Rat_Truck >= 0 iCost = g_sMPTunables.iVehicle_xmas14_Rat_Truck ENDIF IF bAltVersion iBasePrice = iCost iCost = ROUND(TO_FLOAT(37500)*0.75) IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_TRADE_PRICE_RATLOADER >= 0 iCost = g_sMPtunables.iAW_TRADE_PRICE_RATLOADER ENDIF ENDIF BREAK CASE JESTER2 iCost = 350000 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicle_xmas14_Dinka_Jester_Racecar >= 0 iCost = g_sMPTunables.iVehicle_xmas14_Dinka_Jester_Racecar ENDIF ENDIF BREAK CASE MASSACRO2 iCost = 385000 IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicle_xmas14_Dewbauchee_Massacro_Racecar >= 0 iCost = g_sMPTunables.iVehicle_xmas14_Dewbauchee_Massacro_Racecar ENDIF ENDIF BREAK // Luxe pack CASE FELTZER3 iCost = 975000 #IF USE_TU_CHANGES IF bNetwork_isGameInProgress IF g_sMPtunables.iluxe1_website_benefactor_stirling_gt >= 0 iCost = g_sMPtunables.iluxe1_website_benefactor_stirling_gt ENDIF ENDIF #ENDIF BREAK CASE LUXOR2 iCost = 10000000 #IF USE_TU_CHANGES IF bNetwork_isGameInProgress IF g_sMPtunables.iluxe1_website_buckingham_luxor_deluxe >= 0 iCost = g_sMPtunables.iluxe1_website_buckingham_luxor_deluxe ENDIF ENDIF #ENDIF BREAK CASE OSIRIS iCost = 1950000 #IF USE_TU_CHANGES IF bNetwork_isGameInProgress IF g_sMPtunables.iluxe1_website_pegassi_osiris >= 0 iCost = g_sMPtunables.iluxe1_website_pegassi_osiris ENDIF ENDIF #ENDIF BREAK CASE SWIFT2 iCost = 5150000 #IF USE_TU_CHANGES IF bNetwork_isGameInProgress IF g_sMPtunables.iluxe1_website_buckingham_swift_deluxe >= 0 iCost = g_sMPtunables.iluxe1_website_buckingham_swift_deluxe ENDIF ENDIF #ENDIF BREAK CASE VIRGO iCost = 195000 #IF USE_TU_CHANGES IF bNetwork_isGameInProgress IF g_sMPtunables.iluxe1_website_albany_virgo >= 0 iCost = g_sMPtunables.iluxe1_website_albany_virgo ENDIF ENDIF #ENDIF BREAK CASE WINDSOR IF NOT bAltVersion iCost = 845000 IF bNetwork_isGameInProgress IF g_sMPtunables.iluxe1_website_enus_windsor >= 0 iCost = g_sMPtunables.iluxe1_website_enus_windsor ENDIF ENDIF ELSE iCost = 0 // IF bNetwork_isGameInProgress // IF g_sMPtunables.iluxe1_website_enus_windsor_FREE >= 0 // iCost = g_sMPtunables.iluxe1_website_enus_windsor_FREE // ENDIF // ENDIF ENDIF BREAK // Luxe2 pack CASE BRAWLER iCost = 715000 #IF USE_TU_CHANGES IF bNetwork_isGameInProgress IF g_smpTunables.iLuxe2_Coil_Brawler >= 0 iCost = g_smpTunables.iLuxe2_Coil_Brawler ENDIF ENDIF #ENDIF BREAK CASE CHINO iCost = 225000 #IF USE_TU_CHANGES IF bNetwork_isGameInProgress IF g_smpTunables.iLuxe2_Vapid_Chino >= 0 iCost = g_smpTunables.iLuxe2_Vapid_Chino ENDIF ENDIF #ENDIF BREAK CASE COQUETTE3 iCost = 695000 #IF USE_TU_CHANGES IF bNetwork_isGameInProgress IF g_smpTunables.iLuxe2_Invetero_Coquette_BlackFin >= 0 iCost = g_smpTunables.iLuxe2_Invetero_Coquette_BlackFin ENDIF ENDIF #ENDIF BREAK CASE T20 iCost = 2200000 #IF USE_TU_CHANGES IF bNetwork_isGameInProgress IF g_smpTunables.iLuxe2_Progen_T20 >= 0 iCost = g_smpTunables.iLuxe2_Progen_T20 ENDIF ENDIF #ENDIF BREAK CASE TORO iCost = 1750000 #IF USE_TU_CHANGES IF bNetwork_isGameInProgress IF g_smpTunables.iLuxe2_Lampadati_Toro >= 0 iCost = g_smpTunables.iLuxe2_Lampadati_Toro ENDIF ENDIF #ENDIF BREAK CASE VINDICATOR iCost = 630000 #IF USE_TU_CHANGES IF bNetwork_isGameInProgress IF g_smpTunables.iLuxe2_Dinka_Vindicator >= 0 iCost = g_smpTunables.iLuxe2_Dinka_Vindicator ENDIF ENDIF #ENDIF BREAK // Lowrider pack CASE CHINO2 iCost = 225000 iCost = (g_sMPTunables.iWebsite_Vapid_Chino__Bennys_Website_ + GET_SUPERMOD_UPGRADE_COST(eVehicleModel)) BREAK CASE PRIMO2 iCost = 100000 IF bNetwork_isGameInProgress AND g_sMPTunables.iWebsite_Albany_Primo >= 0 iCost = (g_sMPTunables.iWebsite_Albany_Primo + GET_SUPERMOD_UPGRADE_COST(eVehicleModel)) ENDIF BREAK CASE MOONBEAM iCost = 32500 IF bNetwork_isGameInProgress AND g_sMPTunables.iWebsite_Declasse_Moonbeam >= 0 iCost = g_sMPTunables.iWebsite_Declasse_Moonbeam ENDIF BREAK CASE MOONBEAM2 iCost = (g_sMPTunables.iWebsite_Declasse_Moonbeam + GET_SUPERMOD_UPGRADE_COST(eVehicleModel)) BREAK CASE FACTION iCost = 36000 IF bNetwork_isGameInProgress AND g_sMPTunables.iWebsite_Willard_Faction >= 0 iCost = g_sMPTunables.iWebsite_Willard_Faction ENDIF BREAK CASE FACTION2 iCost = 95000 iCost = (g_sMPTunables.iWebsite_Willard_Faction + GET_SUPERMOD_UPGRADE_COST(eVehicleModel)) BREAK CASE BUCCANEER iCost = 29000 IF bNetwork_isGameInProgress AND g_sMPTunables.iWebsite_Albany_Buccaneer >= 0 iCost = g_sMPTunables.iWebsite_Albany_Buccaneer ENDIF BREAK CASE BUCCANEER2 iCost = 85000 iCost = (g_sMPTunables.iWebsite_Albany_Buccaneer + GET_SUPERMOD_UPGRADE_COST(eVehicleModel)) BREAK CASE VOODOO2 iCost = 5500 IF bNetwork_isGameInProgress AND g_sMPTunables.iWebsite_Declasse_Voodoo >= 0 iCost = g_sMPTunables.iWebsite_Declasse_Voodoo ENDIF BREAK CASE VOODOO iCost = 105000 iCost = (g_sMPTunables.iWebsite_Declasse_Voodoo + GET_SUPERMOD_UPGRADE_COST(eVehicleModel)) BREAK CASE DOMINATOR4 CASE DOMINATOR5 CASE DOMINATOR6 iCost = (g_sMPTunables.iAW_TRADE_PRICE_DOMINATOR + GET_SUPERMOD_UPGRADE_COST(eVehicleModel)) BREAK CASE SLAMVAN4 CASE SLAMVAN5 CASE SLAMVAN6 iCost = (g_sMPTunables.iVehicle_xmas14_Slamvan + GET_SUPERMOD_UPGRADE_COST(eVehicleModel)) BREAK CASE ISSI4 CASE ISSI5 CASE ISSI6 iCost = (g_sMPTunables.iASSAULT_VEHICLES_WEENY_ISSI_CLASSIC + GET_SUPERMOD_UPGRADE_COST(eVehicleModel)) BREAK CASE IMPALER2 CASE IMPALER3 CASE IMPALER4 iCost = (g_sMPTunables.iAW_TRADE_PRICE_IMPALER + GET_SUPERMOD_UPGRADE_COST(eVehicleModel)) BREAK CASE DEATHBIKE CASE DEATHBIKE2 CASE DEATHBIKE3 iCost = (g_sMPtunables.iAW_TRADE_PRICE_GARGOYLE + GET_SUPERMOD_UPGRADE_COST(eVehicleModel)) BREAK CASE MONSTER3 CASE MONSTER4 CASE MONSTER5 iCost = (g_sMPtunables.iAW_TRADE_PRICE_RATLOADER + GET_SUPERMOD_UPGRADE_COST(eVehicleModel)) BREAK CASE BRUISER CASE BRUISER2 CASE BRUISER3 iCost = (g_sMPTunables.iAW_TRADE_PRICE_GLENDALE + GET_SUPERMOD_UPGRADE_COST(eVehicleModel)) BREAK // Halloween pack CASE BTYPE2 iCost = 550000 IF bNetwork_isGameInProgress AND g_sMPTunables.iHalloween_2015_Albany_Franken_Stange >= 0 iCost = g_sMPTunables.iHalloween_2015_Albany_Franken_Stange ENDIF BREAK CASE LURCHER iCost = 650000 IF bNetwork_isGameInProgress AND g_sMPTunables.iHalloween_2015_Chariot_LURCHER >= 0 iCost = g_sMPTunables.iHalloween_2015_Chariot_LURCHER ENDIF BREAK // Apartment pack CASE BALLER3 iCost = 149000 IF bNetwork_isGameInProgress AND g_sMPTunables.iApartment_Website_Gallivanter_Baller_LE >= 0 iCost = g_sMPTunables.iApartment_Website_Gallivanter_Baller_LE ENDIF BREAK CASE BALLER5 iCost = 374000 IF bNetwork_isGameInProgress AND g_sMPTunables.iApartment_Website_Gallivanter_Baller_LE_Armored >= 0 iCost = g_sMPTunables.iApartment_Website_Gallivanter_Baller_LE_Armored ENDIF BREAK CASE BALLER4 iCost = 247000 IF bNetwork_isGameInProgress AND g_sMPTunables.iApartment_Website_Gallivanter_Baller_LE_LWB >= 0 iCost = g_sMPTunables.iApartment_Website_Gallivanter_Baller_LE_LWB ENDIF BREAK CASE BALLER6 iCost = 513000 IF bNetwork_isGameInProgress AND g_sMPTunables.iApartment_Website_Gallivanter_Baller_LWB_Armored >= 0 iCost = g_sMPTunables.iApartment_Website_Gallivanter_Baller_LWB_Armored ENDIF BREAK CASE COG55 iCost = 154000 IF bNetwork_isGameInProgress AND g_sMPTunables.iApartment_Website_Enus_Cognoscenti_55 >= 0 iCost = g_sMPTunables.iApartment_Website_Enus_Cognoscenti_55 ENDIF BREAK CASE COG552 iCost = 396000 IF bNetwork_isGameInProgress AND g_sMPTunables.iApartment_Website_Enus_Cognoscenti_55_Armored >= 0 iCost = g_sMPTunables.iApartment_Website_Enus_Cognoscenti_55_Armored ENDIF BREAK CASE COGNOSCENTI iCost = 254000 IF bNetwork_isGameInProgress AND g_sMPTunables.iApartment_Website_Enus_Cognoscenti >= 0 iCost = g_sMPTunables.iApartment_Website_Enus_Cognoscenti ENDIF BREAK CASE COGNOSCENTI2 iCost = 558000 IF bNetwork_isGameInProgress AND g_sMPTunables.iApartment_Website_Enus_Cognoscenti_Armored >= 0 iCost = g_sMPTunables.iApartment_Website_Enus_Cognoscenti_Armored ENDIF BREAK CASE LIMO2 iCost = 1650000 IF bNetwork_isGameInProgress AND g_sMPTunables.iApartment_Website_Benefactor_Schafter_Turreted_Limo >= 0 iCost = g_sMPTunables.iApartment_Website_Benefactor_Schafter_Turreted_Limo ENDIF BREAK CASE MAMBA iCost = 995000 IF bNetwork_isGameInProgress AND g_sMPTunables.iApartment_Website_Declasse_Mamba >= 0 iCost = g_sMPTunables.iApartment_Website_Declasse_Mamba ENDIF BREAK CASE NIGHTSHADE iCost = 585000 IF bNetwork_isGameInProgress AND g_sMPTunables.iApartment_Website_Imponte_Night_Shade >= 0 iCost = g_sMPTunables.iApartment_Website_Imponte_Night_Shade ENDIF BREAK CASE SCHAFTER3 iCost = 116000 IF bNetwork_isGameInProgress AND g_sMPTunables.iApartment_Website_Benefactor_Schafter_V12 >= 0 iCost = g_sMPTunables.iApartment_Website_Benefactor_Schafter_V12 ENDIF BREAK CASE SCHAFTER5 iCost = 325000 IF bNetwork_isGameInProgress AND g_sMPTunables.iApartment_Website_Benefactor_Schafter_V12_Armored >= 0 iCost = g_sMPTunables.iApartment_Website_Benefactor_Schafter_V12_Armored ENDIF BREAK CASE SCHAFTER4 iCost = 208000 IF bNetwork_isGameInProgress AND g_sMPTunables.iApartment_Website_Benefactor_Schafter_LWB >= 0 iCost = g_sMPTunables.iApartment_Website_Benefactor_Schafter_LWB ENDIF BREAK CASE SCHAFTER6 iCost = 438000 IF bNetwork_isGameInProgress AND g_sMPTunables.iApartment_Website_Benefactor_Schafter_LWB_Armored >= 0 iCost = g_sMPTunables.iApartment_Website_Benefactor_Schafter_LWB_Armored ENDIF BREAK CASE VERLIERER2 iCost = 695000 IF bNetwork_isGameInProgress AND g_sMPTunables.iApartment_Website_Bravado_Verlierer >= 0 iCost = g_sMPTunables.iApartment_Website_Bravado_Verlierer ENDIF BREAK CASE SUPERVOLITO iCost = 2113000 IF bNetwork_isGameInProgress AND g_sMPTunables.iApartment_Website_Buckingham_SuperVolito >= 0 iCost = g_sMPTunables.iApartment_Website_Buckingham_SuperVolito ENDIF BREAK CASE SUPERVOLITO2 iCost = 3330000 IF bNetwork_isGameInProgress AND g_sMPTunables.iApartment_Website_Buckingham_SuperVolito_Carbon >= 0 iCost = g_sMPTunables.iApartment_Website_Buckingham_SuperVolito_Carbon ENDIF BREAK CASE TAMPA iCost = 375000 IF bNetwork_isGameInProgress AND g_sMPTunables.iXmas2015_Declasse_Tampa >= 0 iCost = g_smpTunables.iXmas2015_Declasse_Tampa ENDIF BREAK CASE SULTAN IF bNetwork_isGameInProgress AND g_sMPTunables.iBennysWebsite_Karin_Sultan_Bennys >= 0 iCost = g_smpTunables.iBennysWebsite_Karin_Sultan_Bennys ENDIF BREAK CASE SULTANRS iCost = (g_sMPTunables.iBennysWebsite_Karin_Sultan_Bennys + GET_SUPERMOD_UPGRADE_COST(eVehicleModel)) BREAK CASE BANSHEE IF bNetwork_isGameInProgress AND g_sMPTunables.iUpgrade_Bravado_Banshee_Bennys >= 0 iCost = g_smpTunables.iUpgrade_Bravado_Banshee_Bennys ENDIF BREAK CASE BANSHEE2 iCost = (g_sMPTunables.iUpgrade_Bravado_Banshee_Bennys + GET_SUPERMOD_UPGRADE_COST(eVehicleModel)) BREAK CASE BTYPE3 iCost = 982000 IF bNetwork_isGameInProgress AND g_smpTunables.iWebsite_Valentines2016_Albany_Roosevelt_Valor >= 0 iCost = g_smpTunables.iWebsite_Valentines2016_Albany_Roosevelt_Valor ENDIF BREAK // Lowrider2 pack CASE FACTION3 iCost = g_sMPTunables.iWebsite_Willard_Faction + GET_SUPERMOD_UPGRADE_COST(eVehicleModel) BREAK CASE MINIVAN2 iCost = g_sMPTunables.ibusiness_vehicles_Minivan + GET_SUPERMOD_UPGRADE_COST(eVehicleModel) BREAK CASE SABREGT2 iCost = g_sMPTunables.iWebsite_Bennys_Declasse_Sabre_Turbo + GET_SUPERMOD_UPGRADE_COST(eVehicleModel) BREAK CASE SLAMVAN3 iCost = g_sMPTunables.iVehicle_xmas14_Slamvan + GET_SUPERMOD_UPGRADE_COST(eVehicleModel) BREAK CASE TORNADO5 iCost = g_sMPTunables.iWebsite_Bennys_Declasse_Tornado + GET_SUPERMOD_UPGRADE_COST(eVehicleModel) BREAK CASE VIRGO3 iCost = g_sMPTunables.iWebsite_Bennys_Dundreary_Virgo_Classic // IF bNetwork_isGameInProgress // AND g_smpTunables.iWebsite_Lowrider2_VIRGO3 >= 0 // iCost = g_smpTunables.iWebsite_Lowrider2_VIRGO3 // ENDIF BREAK CASE VIRGO2 iCost = g_sMPTunables.iWebsite_Bennys_Dundreary_Virgo_Classic + GET_SUPERMOD_UPGRADE_COST(eVehicleModel) BREAK CASE TECHNICAL3 iCost = 950000 + GET_SUPERMOD_UPGRADE_COST(eVehicleModel) IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_Karin_Technical >= 0 iCost = g_sMPTunables.iVehicles_Heist_Karin_Technical + GET_SUPERMOD_UPGRADE_COST(eVehicleModel) ENDIF ENDIF BREAK CASE INSURGENT3 iCost = 1350000 + GET_SUPERMOD_UPGRADE_COST(eVehicleModel) IF bNetwork_isGameInProgress IF g_sMPTunables.iVehicles_Heist_HVY_Insurgent_PickUp >= 0 iCost = g_sMPTunables.iVehicles_Heist_HVY_Insurgent_PickUp + GET_SUPERMOD_UPGRADE_COST(eVehicleModel) ENDIF ENDIF BREAK ENDSWITCH // Revised vehicle values for High Life release SWITCH eVehicleModel CASE F620 IF bNetwork_isGameInProgress IF g_sMPTunables.iDLC_VEHICLE_Ocelot_F620 >= 0 iCost = g_sMPTunables.iDLC_VEHICLE_Ocelot_F620 ENDIF ENDIF BREAK CASE FUSILADE IF bNetwork_isGameInProgress IF g_sMPTunables.iDLC_VEHICLE_Schyster_Fusilade >= 0 iCost = g_sMPTunables.iDLC_VEHICLE_Schyster_Fusilade ENDIF ENDIF BREAK CASE PENUMBRA IF bNetwork_isGameInProgress IF g_sMPTunables.iDLC_VEHICLE_Maibatsu_Penumbra >= 0 iCost = g_sMPTunables.iDLC_VEHICLE_Maibatsu_Penumbra ENDIF ENDIF BREAK CASE SENTINEL IF bNetwork_isGameInProgress IF g_sMPTunables.iDLC_VEHICLE_Ubermacht_Sentinel_XS >= 0 iCost = g_sMPTunables.iDLC_VEHICLE_Ubermacht_Sentinel_XS ENDIF ENDIF BREAK CASE SENTINEL2 IF bNetwork_isGameInProgress IF g_sMPTunables.iDLC_VEHICLE_Ubermacht_Sentinel >= 0 iCost = g_sMPTunables.iDLC_VEHICLE_Ubermacht_Sentinel ENDIF ENDIF BREAK ENDSWITCH // Tuneable discounts for free Collectors Edition vehicles IF bNetwork_isGameInProgress SWITCH eVehicleModel CASE ELEGY2 IF bAltVersion IF g_sMPTunables.iELEGY2_expenditure_modifier >= 0 iCost = g_sMPTunables.iELEGY2_expenditure_modifier ENDIF ENDIF BREAK CASE KHAMELION IF g_sMPTunables.iKHAMELION_expenditure_modifier >= 0 iCost = g_sMPTunables.iKHAMELION_expenditure_modifier ENDIF BREAK CASE HOTKNIFE IF g_sMPTunables.iHOTKNIFE_expenditure_modifier >= 0 iCost = g_sMPTunables.iHOTKNIFE_expenditure_modifier ENDIF BREAK CASE CARBONRS IF g_sMPTunables.icarbonrs_expenditure_modifier >= 0 iCost = g_sMPTunables.icarbonrs_expenditure_modifier ENDIF BREAK ENDSWITCH ENDIF // Vehicles with alt setup IF bNetwork_isGameInProgress #IF USE_TU_CHANGES OR iForceNetworkPrice = 1 #ENDIF IF bAltVersion SWITCH eVehicleModel CASE COQUETTE // Topless iCost = 138000 IF g_sMPTunables.iDLC_VEHICLE_Inverto_Coquette_Topless >= 0 AND bNetwork_isGameInProgress iCost = g_sMPTunables.iDLC_VEHICLE_Inverto_Coquette_Topless ENDIF BREAK CASE BANSHEE // Topless iCost = 126000 IF g_sMPTunables.iDLC_VEHICLE_Bravado_Banshee_Topless >= 0 AND bNetwork_isGameInProgress iCost = g_sMPTunables.iDLC_VEHICLE_Bravado_Banshee_Topless ENDIF BREAK CASE STINGER // Topless iCost = 850000 IF g_sMPTunables.iDLC_VEHICLE_Grotti_Stinger_Topless >= 0 AND bNetwork_isGameInProgress iCost = g_sMPTunables.iDLC_VEHICLE_Grotti_Stinger_Topless ENDIF BREAK CASE VOLTIC // Hardtop iCost = 150000 IF g_sMPTunables.ivoltic_expenditure_modifier >= 0 AND bNetwork_isGameInProgress iCost = g_sMPTunables.ivoltic_expenditure_modifier ENDIF BREAK CASE CHINO iCost = 225000 IF g_sMPTunables.iWebsite_Vapid_Chino__Bennys_Website_ >= 0 AND bNetwork_isGameInProgress iCost = g_sMPTunables.iWebsite_Vapid_Chino__Bennys_Website_ ENDIF BREAK CASE KALAHARI // Topless iCost = 40000 IF g_sMPTunables.iLTS_Canis_Kalahari_Topless >= 0 AND bNetwork_isGameInProgress iCost = g_sMPTunables.iLTS_Canis_Kalahari_Topless ENDIF BREAK CASE SLAMVAN iCost = 49500 IF g_sMPTunables.iWEBSITE_BENNYS_VAPID_SLAMVAN >= 0 AND bNetwork_isGameInProgress iCost = g_sMPTunables.iWEBSITE_BENNYS_VAPID_SLAMVAN ENDIF IF bAltVersion iBasePrice = iCost iCost = ROUND(TO_FLOAT(iCost)*0.75) IF bNetwork_isGameInProgress AND g_sMPTunables.iAW_TRADE_PRICE_SLAMVAN >= 0 iCost = g_sMPTunables.iAW_TRADE_PRICE_SLAMVAN ENDIF ENDIF BREAK CASE MINIVAN iCost = 30000 IF g_sMPTunables.iWEBSITE_BENNYS_VAPID_MINIVAN >= 0 AND bNetwork_isGameInProgress iCost = g_sMPTunables.iWEBSITE_BENNYS_VAPID_MINIVAN ENDIF BREAK ENDSWITCH ELSE SWITCH eVehicleModel CASE VOLTIC // Topless IF g_sMPTunables.iDLC_VEHICLE_Coil_Voltic_Topless >= 0 AND bNetwork_isGameInProgress iCost = g_sMPTunables.iDLC_VEHICLE_Coil_Voltic_Topless ENDIF BREAK CASE BANSHEE // Topless IF g_sMPTunables.iUpgrade_Bravado_Banshee_Bennys >= 0 AND bNetwork_isGameInProgress iCost = g_sMPTunables.iUpgrade_Bravado_Banshee_Bennys ENDIF BREAK ENDSWITCH ENDIF ENDIF IF iCost = -1 CWARNINGLN(DEBUG_INTERNET, "iCost for ", GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(eVehicleModel), " is minus one??") RETURN FALSE ENDIF IF iBasePrice = -1 //instead of the higher BUY IT NOW price iBasePrice = iCost ENDIF sData.iStandardPrice = iCost sData.iSellValue = FLOOR(FLOOR(iCost*0.50)*0.10) sData.iCostToRemoveVIN = FLOOR(FLOOR(iCost*0.50)*0.25) sData.iStreetPrice = FLOOR(iCost*0.50) IF !SHOULD_USE_WEAPONISED_VEHICLE_INSURANCE_CAP(eVehicleModel) sData.iInsurance = FLOOR(FLOOR(iBasePrice*0.50)*0.25) sData.iInsurancePremium = FLOOR(sData.iInsurance *0.10) IF (sData.iInsurancePremium > g_sMPTunables.iVEHICLE_INSURANCE_PREMIUM_CAP_LOWER) AND (sData.iInsurancePremium <= g_sMPTunables.iVEHICLE_INSURANCE_PREMIUM_CAP_UPPER) sData.iInsurancePremium = g_sMPTunables.iVEHICLE_INSURANCE_PREMIUM_CAP_LOWER #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_INTERNET, "sData.iInsurancePremium capped to ", g_sMPTunables.iVEHICLE_INSURANCE_PREMIUM_CAP_LOWER) #ENDIF ENDIF ELSE sData.iInsurance = FLOOR(iBasePrice*0.06) sData.iInsurancePremium = FLOOR(sData.iInsurance *0.10) IF sData.iInsurancePremium > g_sMPTunables.iWeaponisedVehicleInsuranceCap sData.iInsurancePremium = g_sMPTunables.iWeaponisedVehicleInsuranceCap #IF IS_DEBUG_BUILD CPRINTLN(DEBUG_INTERNET, "sData.iInsurancePremium capped to ", g_sMPTunables.iWeaponisedVehicleInsuranceCap) #ENDIF ENDIF ENDIF #IF USE_TU_CHANGES IF bNetwork_isGameInProgress sData.iSellValue = FLOOR(sData.iStreetPrice*0.20) ENDIF #ENDIF RETURN TRUE ENDFUNC FUNC BOOL IS_VEHICLE_MODEL_HIGH_END(MODEL_NAMES VehModel, BOOL bIsAlternateVersion) VEHICLE_VALUE_DATA sData IF GET_VEHICLE_VALUE(sData, VehModel, bIsAlternateVersion) IF (sData.iStandardPrice > g_sMPTunables.iHighEndVehicleThreshold) RETURN(TRUE) ENDIF ENDIF RETURN(FALSE) ENDFUNC /// PURPOSE: Returns an int from 0-veh_count for use with save data arrays. FUNC INT GET_VEHICLE_INT_FOR_SAVE_DATA(MODEL_NAMES eVehicleModel) SWITCH eVehicleModel CASE ADDER RETURN 0 BREAK CASE Akuma RETURN 1 BREAK CASE Asea RETURN 2 BREAK CASE Asterope RETURN 3 BREAK CASE Bagger RETURN 4 BREAK CASE Baller RETURN 5 BREAK CASE Banshee CASE Banshee2 RETURN 6 BREAK CASE Bati RETURN 7 BREAK CASE Bati2 RETURN 8 BREAK CASE Bfinjection RETURN 9 BREAK CASE Bison RETURN 10 BREAK CASE Bison2 RETURN 11 BREAK CASE Bison3 RETURN 12 BREAK CASE BJXL RETURN 13 BREAK CASE BTYPE RETURN 14 BREAK CASE Blazer RETURN 15 BREAK CASE Blazer2 RETURN 15 BREAK CASE Blazer3 RETURN 15 BREAK CASE Blista RETURN 16 BREAK CASE bobcatxl RETURN 17 BREAK CASE bodhi2 RETURN 18 BREAK CASE Boxville RETURN 19 BREAK CASE Boxville2 RETURN 20 BREAK CASE Boxville3 RETURN 21 BREAK CASE BUCCANEER CASE BUCCANEER2 RETURN 22 BREAK CASE Buffalo RETURN 23 BREAK CASE Buffalo2 RETURN 24 BREAK CASE Bullet RETURN 25 BREAK CASE Burrito RETURN 26 BREAK CASE PARADISE RETURN 27 BREAK CASE BIFTA RETURN 28 BREAK CASE KALAHARI RETURN 29 BREAK CASE Carbonizzare RETURN 30 BREAK CASE Carbonrs RETURN 31 BREAK CASE Cavalcade RETURN 32 BREAK CASE Cavalcade2 RETURN 33 BREAK CASE Cheetah RETURN 34 BREAK CASE Cogcabrio RETURN 35 BREAK CASE Comet2 RETURN 36 BREAK CASE Coquette CASE COQUETTE2 RETURN 37 BREAK CASE Daemon RETURN 38 BREAK CASE Dilettante RETURN 39 BREAK CASE Dominator RETURN 40 BREAK CASE Double RETURN 41 BREAK CASE Dubsta RETURN 42 BREAK CASE Dubsta2 RETURN 43 BREAK CASE Elegy2 RETURN 44 BREAK CASE Emperor RETURN 45 BREAK CASE Emperor2 RETURN 46 BREAK CASE Emperor3 RETURN 47 BREAK CASE Entityxf RETURN 48 BREAK CASE Exemplar RETURN 49 BREAK CASE F620 RETURN 50 BREAK CASE Faggio2 RETURN 51 BREAK CASE Felon RETURN 52 BREAK CASE Felon2 RETURN 53 BREAK CASE Feltzer2 RETURN 54 BREAK CASE Fq2 RETURN 55 BREAK CASE Fugitive RETURN 56 BREAK CASE Fusilade RETURN 57 BREAK CASE Futo RETURN 58 BREAK CASE Gauntlet RETURN 59 BREAK CASE Gburrito RETURN 60 BREAK CASE Granger RETURN 61 BREAK CASE Gresley RETURN 62 BREAK CASE Habanero RETURN 63 BREAK CASE Hexer RETURN 64 BREAK CASE Hotknife RETURN 65 BREAK CASE Infernus RETURN 66 BREAK CASE Ingot RETURN 67 BREAK CASE Intruder RETURN 68 BREAK CASE Issi2 RETURN 69 BREAK CASE Jackal RETURN 70 BREAK CASE JB700 RETURN 71 BREAK CASE Khamelion RETURN 72 BREAK CASE Landstalker RETURN 73 BREAK CASE Lguard RETURN 74 BREAK CASE Manana RETURN 75 BREAK CASE Mesa RETURN 76 BREAK CASE Minivan CASE MINIVAN2 RETURN 77 BREAK CASE Monroe RETURN 78 BREAK CASE Nemesis RETURN 79 BREAK CASE ninef RETURN 80 BREAK CASE ninef2 RETURN 81 BREAK CASE Oracle RETURN 82 BREAK CASE Oracle2 RETURN 83 BREAK CASE Patriot RETURN 84 BREAK CASE PCJ RETURN 85 BREAK CASE Penumbra RETURN 86 BREAK CASE Peyote RETURN 87 BREAK CASE Phoenix RETURN 88 BREAK CASE Prairie RETURN 89 BREAK CASE Pranger RETURN 90 BREAK CASE Premier RETURN 91 BREAK CASE Primo CASE PRIMO2 RETURN 92 BREAK CASE Radi RETURN 93 BREAK CASE Rancherxl RETURN 94 BREAK CASE Rancherxl2 RETURN 95 BREAK CASE Rapidgt RETURN 96 BREAK CASE Rapidgt2 RETURN 97 BREAK CASE Ratloader RETURN 98 BREAK CASE Rebel RETURN 99 BREAK CASE Rebel2 RETURN 100 BREAK CASE Regina RETURN 101 BREAK CASE Rocoto RETURN 102 BREAK CASE Ruffian RETURN 103 BREAK CASE Ruiner RETURN 104 BREAK CASE Rumpo RETURN 105 BREAK CASE SabreGT CASE SABREGT2 RETURN 106 BREAK CASE Sadler RETURN 107 BREAK CASE Sanchez RETURN 108 BREAK CASE Sandking RETURN 109 BREAK CASE Sandking2 RETURN 110 BREAK CASE Schafter2 RETURN 111 BREAK CASE Schwarzer RETURN 112 BREAK CASE Seminole RETURN 113 BREAK CASE Sentinel RETURN 114 BREAK CASE Sentinel2 RETURN 115 BREAK CASE Serrano RETURN 116 BREAK CASE Speedo RETURN 117 BREAK CASE Speedo2 RETURN 118 BREAK CASE Stanier RETURN 119 BREAK CASE Stinger RETURN 120 BREAK CASE StingerGT RETURN 121 BREAK CASE Stratum RETURN 122 BREAK CASE Stretch RETURN 123 BREAK CASE Sultan CASE SultanRS RETURN 124 BREAK CASE Superd RETURN 125 BREAK CASE Surano RETURN 126 BREAK CASE Surge RETURN 127 BREAK CASE Tailgater RETURN 128 BREAK CASE JESTER RETURN 129 BREAK CASE Tornado CASE Tornado2 CASE Tornado3 CASE Tornado4 CASE TORNADO5 RETURN 133 BREAK CASE Vacca RETURN 134 BREAK CASE Vader RETURN 135 BREAK CASE Vigero RETURN 136 BREAK CASE Voltic RETURN 137 BREAK CASE Voodoo2 CASE VOODOO RETURN 138 BREAK CASE Washington RETURN 139 BREAK CASE Youga RETURN 140 BREAK CASE Zion RETURN 141 BREAK CASE Zion2 RETURN 142 BREAK CASE Ztype RETURN 143 BREAK CASE MASSACRO RETURN 144 BREAK CASE TURISMOR RETURN 145 BREAK CASE ZENTORNO RETURN 146 BREAK CASE HUNTLEY RETURN 147 BREAK CASE ALPHA RETURN 148 BREAK CASE cruiser RETURN 149 BREAK CASE surfer RETURN 150 BREAK CASE FACTION CASE FACTION2 RETURN 151 BREAK CASE CHINO CASE CHINO2 RETURN 152 BREAK CASE MOONBEAM CASE MOONBEAM2 RETURN 153 BREAK CASE BTYPE2 RETURN 154 BREAK CASE LURCHER RETURN 155 BREAK CASE BTYPE3 RETURN 156 BREAK CASE FACTION3 RETURN 157 BREAK CASE SLAMVAN CASE SLAMVAN2 CASE SLAMVAN3 RETURN 158 BREAK CASE VIRGO2 RETURN 159 BREAK CASE VIRGO3 RETURN 160 BREAK CASE BESTIAGTS RETURN 161 BREAK CASE BRICKADE RETURN 162 BREAK CASE FMJ RETURN 163 BREAK CASE NIMBUS RETURN 164 BREAK CASE PFISTER811 RETURN 165 BREAK CASE PROTOTIPO RETURN 166 BREAK CASE RUMPO3 RETURN 167 BREAK CASE SEVEN70 RETURN 168 BREAK CASE TUG RETURN 169 BREAK CASE VOLATUS RETURN 170 BREAK CASE WINDSOR2 RETURN 171 BREAK CASE XLS RETURN 172 BREAK CASE XLS2 RETURN 173 BREAK CASE REAPER RETURN 174 BREAK CASE LE7B RETURN 175 BREAK ENDSWITCH SWITCH eVehicleModel CASE BUFFALO3 RETURN 176 BREAK CASE DOMINATOR2 RETURN 177 BREAK CASE GAUNTLET2 RETURN 178 BREAK CASE STALION2 RETURN 179 BREAK CASE OMNIS RETURN 180 BREAK CASE TROPOS RETURN 181 BREAK CASE BRIOSO RETURN 182 BREAK CASE TROPHYTRUCK RETURN 183 BREAK CASE TROPHYTRUCK2 RETURN 184 BREAK CASE CONTENDER RETURN 185 BREAK CASE CLIFFHANGER RETURN 186 BREAK CASE BF400 RETURN 187 BREAK CASE TYRUS RETURN 188 BREAK CASE RALLYTRUCK RETURN 189 BREAK CASE TAMPA2 RETURN 190 BREAK CASE GARGOYLE RETURN 191 BREAK CASE LYNX RETURN 192 BREAK CASE SHEAVA RETURN 193 BREAK CASE AVARUS RETURN 194 BREAK CASE CHIMERA RETURN 195 BREAK CASE DAEMON2 RETURN 196 BREAK CASE DEFILER RETURN 197 BREAK CASE ESSKEY RETURN 198 BREAK CASE NIGHTBLADE RETURN 199 BREAK CASE RATBIKE RETURN 200 BREAK // CASE TRIKEB RETURN 201 BREAK CASE ZOMBIEA RETURN 202 BREAK CASE ZOMBIEB RETURN 203 BREAK CASE SHOTARO RETURN 204 BREAK CASE RAPTOR RETURN 205 BREAK CASE HAKUCHOU2 RETURN 206 BREAK CASE BLAZER4 RETURN 207 BREAK CASE SANCTUS RETURN 208 BREAK CASE VORTEX RETURN 209 BREAK CASE MANCHEZ RETURN 210 BREAK CASE TORNADO6 RETURN 211 BREAK CASE YOUGA2 RETURN 212 BREAK CASE WOLFSBANE RETURN 213 BREAK CASE FAGGIO3 RETURN 214 BREAK CASE FAGGIO RETURN 215 BREAK CASE DUNE5 RETURN 216 BREAK CASE PHANTOM2 RETURN 217 BREAK CASE TECHNICAL2 RETURN 218 BREAK CASE BLAZER5 RETURN 219 BREAK CASE BOXVILLE5 RETURN 220 BREAK CASE WASTELANDER RETURN 221 BREAK CASE RUINER2 RETURN 222 BREAK CASE VOLTIC2 RETURN 223 BREAK CASE PENETRATOR RETURN 224 BREAK CASE TEMPESTA RETURN 225 BREAK CASE ITALIGTB2 RETURN 226 BREAK CASE NERO2 RETURN 227 BREAK CASE DIABLOUS2 RETURN 228 BREAK CASE FCR2 RETURN 229 BREAK CASE ELEGY RETURN 230 BREAK CASE COMET3 RETURN 232 BREAK CASE SPECTER2 RETURN 232 BREAK CASE NERO RETURN 233 BREAK CASE ITALIGTB RETURN 234 BREAK CASE FCR RETURN 235 BREAK CASE SPECTER RETURN 236 BREAK CASE DIABLOUS RETURN 237 BREAK CASE INFERNUS2 RETURN 238 BREAK CASE GP1 RETURN 239 BREAK CASE RUSTON RETURN 240 BREAK CASE TURISMO2 RETURN 241 BREAK CASE CHEETAH2 RETURN 242 BREAK CASE TORERO RETURN 243 BREAK CASE VAGNER RETURN 244 BREAK CASE XA21 RETURN 245 BREAK CASE NIGHTSHARK RETURN 246 BREAK CASE ARDENT RETURN 247 BREAK CASE TAMPA3 RETURN 248 BREAK CASE APC RETURN 249 BREAK CASE DUNE3 RETURN 250 BREAK CASE HALFTRACK RETURN 251 BREAK CASE OPPRESSOR RETURN 252 BREAK CASE TRAILERSMALL2 RETURN 253 BREAK CASE INSURGENT3 RETURN 254 BREAK CASE TECHNICAL3 RETURN 255 BREAK CASE HAULER2 RETURN 256 BREAK CASE PHANTOM3 RETURN 257 BREAK CASE TRAILERLARGE RETURN 258 BREAK CASE LAZER RETURN 259 BREAK CASE MICROLIGHT RETURN 260 BREAK CASE MOGUL RETURN 261 BREAK CASE ROGUE RETURN 262 BREAK CASE STARLING RETURN 263 BREAK CASE SEABREEZE RETURN 264 BREAK CASE TULA RETURN 265 BREAK CASE PYRO RETURN 266 BREAK CASE MOLOTOK RETURN 267 BREAK CASE NOKOTA RETURN 268 BREAK CASE BOMBUSHKA RETURN 269 BREAK CASE HUNTER RETURN 270 BREAK CASE HAVOK RETURN 271 BREAK CASE HOWARD RETURN 272 BREAK CASE ALPHAZ1 RETURN 273 BREAK CASE CYCLONE RETURN 274 BREAK CASE VISIONE RETURN 275 BREAK CASE VIGILANTE RETURN 276 BREAK CASE RETINUE RETURN 277 BREAK CASE RAPIDGT3 RETURN 278 BREAK CASE DELUXO RETURN 277 BREAK CASE STROMBERG RETURN 278 BREAK CASE RIOT2 RETURN 279 BREAK CASE CHERNOBOG RETURN 280 BREAK CASE KHANJALI RETURN 281 BREAK CASE AKULA RETURN 282 BREAK CASE THRUSTER RETURN 283 BREAK CASE AVENGER RETURN 284 BREAK CASE BARRAGE RETURN 285 BREAK CASE VOLATOL RETURN 286 BREAK CASE COMET4 RETURN 287 BREAK CASE NEON RETURN 288 BREAK CASE STREITER RETURN 289 BREAK CASE SENTINEL3 RETURN 290 BREAK CASE YOSEMITE RETURN 291 BREAK CASE HUSTLER RETURN 292 BREAK CASE RIATA RETURN 293 BREAK CASE REVOLTER RETURN 294 BREAK CASE HERMES RETURN 295 BREAK CASE COMET5 RETURN 296 BREAK CASE Z190 RETURN 297 BREAK CASE VISERIS RETURN 298 BREAK CASE KAMACHO RETURN 299 BREAK CASE AUTARCH RETURN 300 BREAK CASE PARIAH RETURN 301 BREAK CASE RAIDEN RETURN 302 BREAK CASE SC1 RETURN 303 BREAK CASE GT500 RETURN 304 BREAK CASE SAVESTRA RETURN 305 BREAK //unadded vehicles included in SHOULD_USE_LIMITED_STAR_SYSTEM() //CONST_INT VEHICLE_COUNT_FOR_STAR_ICON 306 - this is stored in shop_globals.sch ENDSWITCH RETURN -1 ENDFUNC //FUNC MODEL_NAMES GENERATE_VEHICLE_STATS_VEHICLE_MODELS(INT iVehicleStatClass,INT iIndex) // SWITCH iVehicleStatClass // CASE VEHICLE_STAT_CLASS_LAND // SWITCH iIndex // //super // CASE 0 RETURN Adder // CASE 1 RETURN Bullet // CASE 2 RETURN Cheetah // CASE 3 RETURN Entityxf // CASE 4 RETURN Infernus // CASE 5 RETURN Vacca // CASE 6 RETURN Voltic // //sports // CASE 7 RETURN Ninef2 // CASE 8 RETURN Banshee // CASE 9 RETURN Carbonizzare // CASE 10 RETURN Comet2 // CASE 11 RETURN Feltzer2 // CASE 12 RETURN Fusilade // CASE 13 RETURN Penumbra // CASE 14 RETURN RapidGT2 // //coupes // CASE 15 RETURN Cogcabrio // CASE 16 RETURN Exemplar // CASE 17 RETURN F620 // CASE 18 RETURN Felon2 // CASE 19 RETURN Jackal // CASE 20 RETURN Sentinel2 // //muscle // CASE 21 RETURN Buccaneer // CASE 22 RETURN Dominator // CASE 23 RETURN Gauntlet // CASE 24 RETURN Phoenix // CASE 25 RETURN Picador // CASE 26 RETURN Ruiner // CASE 27 RETURN SabreGT // CASE 28 RETURN Vigero // //classics // CASE 29 RETURN JB700 // CASE 30 RETURN Monroe // CASE 31 RETURN Stinger // CASE 32 RETURN Ztype // //sedans // CASE 33 RETURN Asea // CASE 34 RETURN Asterope // CASE 35 RETURN Fugitive // CASE 36 RETURN Premier // CASE 37 RETURN Primo // CASE 38 RETURN Schafter2 // CASE 39 RETURN Stanier // CASE 40 RETURN Superd // CASE 41 RETURN Surge // CASE 42 RETURN Tailgater // CASE 43 RETURN Washington // //SUVs // CASE 44 RETURN Baller // CASE 45 RETURN BJXL // CASE 46 RETURN Crusader // CASE 47 RETURN Gresley // CASE 48 RETURN Dubsta // CASE 49 RETURN Granger // CASE 50 RETURN Landstalker // CASE 51 RETURN Mesa // CASE 52 RETURN Pranger // CASE 53 RETURN Radi // CASE 54 RETURN Seminole // CASE 55 RETURN Serrano // //COMPACTS // CASE 56 RETURN Blista // CASE 57 RETURN Dilettante // CASE 58 RETURN Issi2 // CASE 59 RETURN Prairie // //OFF Road // CASE 60 RETURN BfInjection // //CASE 61 RETURN Baller // //CASE 62 RETURN Blazer // CASE 61 RETURN Dloader // CASE 62 RETURN Dune // CASE 63 RETURN Patriot // //CASE 66 RETURN SANCHEZ // CASE 64 RETURN Sandking // //Industrial // CASE 65 RETURN Bulldozer // CASE 66 RETURN Cutter // CASE 67 RETURN Dump // CASE 68 RETURN Handler // CASE 69 RETURN mixer // //Utility // CASE 70 RETURN Airtug // CASE 71 RETURN Caddy // CASE 72 RETURN Faggio2 // CASE 73 RETURN Tractor2 // CASE 74 RETURN Forklift // CASE 75 RETURN Mower // CASE 76 RETURN Ripley // //Vans // CASE 77 RETURN Boxville // CASE 78 RETURN Burrito2 // CASE 79 RETURN Camper // CASE 80 RETURN Speedo2 // CASE 81 RETURN journey // CASE 82 RETURN Pony // CASE 83 RETURN Rumpo // CASE 84 RETURN Surfer // CASE 85 RETURN Taco // CASE 86 RETURN Youga // //bikes // CASE 87 RETURN Akuma // CASE 88 RETURN Bagger // CASE 89 RETURN Bati2 // CASE 90 RETURN BLAZER // CASE 91 RETURN Double // CASE 92 RETURN Nemesis // CASE 93 RETURN PCJ // CASE 94 RETURN Ruffian // CASE 95 RETURN Sanchez // CASE 96 RETURN Vader // //cycles // CASE 97 RETURN BMX // CASE 98 RETURN Cruiser // CASE 99 RETURN Scorcher // CASE 100 RETURN Tribike // ENDSWITCH // BREAK // CASE VEHICLE_STAT_CLASS_BOAT // SWITCH iIndex // CASE 0 RETURN Seashark // CASE 1 RETURN dinghy // CASE 2 RETURN jetmax // CASE 3 RETURN squalo // CASE 4 RETURN SUNTRAP // CASE 5 RETURN tropic // ENDSWITCH // BREAK // CASE VEHICLE_STAT_CLASS_HELI // SWITCH iIndex // CASE 0 RETURN frogger // CASE 1 RETURN maverick // CASE 2 RETURN cargobob // CASE 3 RETURN annihilator // CASE 4 RETURN buzzard // CASE 5 RETURN buzzard2 // CASE 6 RETURN polmav // ENDSWITCH // BREAK // CASE VEHICLE_STAT_CLASS_PLANE // SWITCH iIndex // CASE 0 RETURN cuban800 // CASE 1 RETURN duster // CASE 2 RETURN luxor // CASE 3 RETURN mammatus // CASE 4 RETURN Shamal // CASE 5 RETURN Stunt // CASE 6 RETURN velum // ENDSWITCH // BREAK // ENDSWITCH // RETURN DUMMY_MODEL_FOR_SCRIPT //ENDFUNC /// PURPOSE: /// Gets the vehicle classes that belong to vehicle group i.e. land, plane, etc /// PARAMS: /// iVehicleStatType - /// iIndex - /// RETURNS: /// FUNC INT GET_VEHICLE_CLASSES_FOR_VEHICLE_GROUP(INT iVehicleGroupType,INT iIndex) SWITCH iVehicleGroupType CASE VEHICLE_STAT_GROUP_LAND SWITCH iIndex CASE 0 RETURN ENUM_TO_INT(VC_COMPACT) CASE 1 RETURN ENUM_TO_INT(VC_SEDAN) CASE 2 RETURN ENUM_TO_INT(VC_SUV) CASE 3 RETURN ENUM_TO_INT(VC_COUPE) CASE 4 RETURN ENUM_TO_INT(VC_MUSCLE) CASE 5 RETURN ENUM_TO_INT(VC_SPORT_CLASSIC) CASE 6 RETURN ENUM_TO_INT(VC_SPORT) CASE 7 RETURN ENUM_TO_INT(VC_SUPER) CASE 8 RETURN ENUM_TO_INT(VC_MOTORCYCLE) CASE 9 RETURN ENUM_TO_INT(VC_OFF_ROAD) CASE 10 RETURN ENUM_TO_INT(VC_INDUSTRIAL) CASE 11 RETURN ENUM_TO_INT(VC_UTILITY) CASE 12 RETURN ENUM_TO_INT(VC_VAN) CASE 13 RETURN ENUM_TO_INT(VC_CYCLE) CASE 14 RETURN ENUM_TO_INT(VC_SERVICE) CASE 15 RETURN ENUM_TO_INT(VC_EMERGENCY) CASE 16 RETURN ENUM_TO_INT(VC_MILITARY) CASE 17 RETURN ENUM_TO_INT(VC_COMMERCIAL) CASE 18 RETURN ENUM_TO_INT(VC_OPEN_WHEEL) //CASE 0 RETURN ENUM_TO_INT(VC_RAIL ENDSWITCH BREAK CASE VEHICLE_STAT_GROUP_BOAT SWITCH iIndex CASE 0 RETURN ENUM_TO_INT(VC_BOAT) ENDSWITCH BREAK CASE VEHICLE_STAT_GROUP_HELI SWITCH iIndex CASE 0 RETURN ENUM_TO_INT(VC_HELICOPTER) ENDSWITCH BREAK CASE VEHICLE_STAT_GROUP_PLANE SWITCH iIndex CASE 0 RETURN ENUM_TO_INT(VC_PLANE) ENDSWITCH BREAK ENDSWITCH RETURN -1 ENDFUNC FUNC INT GET_VEHICLE_STAT_GROUP_FOR_CLASS(VEHICLE_CLASS vehClass) SWITCH vehClass CASE VC_COMPACT CASE VC_SEDAN CASE VC_SUV CASE VC_COUPE CASE VC_MUSCLE CASE VC_SPORT_CLASSIC CASE VC_SPORT CASE VC_SUPER CASE VC_MOTORCYCLE CASE VC_OFF_ROAD CASE VC_INDUSTRIAL CASE VC_UTILITY CASE VC_VAN CASE VC_CYCLE CASE VC_SERVICE CASE VC_EMERGENCY CASE VC_MILITARY CASE VC_COMMERCIAL CASE VC_OPEN_WHEEL //CASE VC_RAIL RETURN VEHICLE_STAT_GROUP_LAND BREAK CASE VC_BOAT RETURN VEHICLE_STAT_GROUP_BOAT BREAK CASE VC_HELICOPTER RETURN VEHICLE_STAT_GROUP_HELI BREAK CASE VC_PLANE RETURN VEHICLE_STAT_GROUP_PLANE BREAK ENDSWITCH RETURN -1 ENDFUNC FUNC FLOAT GET_VEHICLE_CLASS_ESTIMATED_MAX_SPEED_TU(VEHICLE_CLASS VehicleClass) /* There is a bug in the way the class top speeds are initialised. After loading the game it doesn’t include any of the DLC vehicles so the top speed is 51.770962 which is the top speed of the Adder. Forcing a reload of the handling data fixes this and loads the DLC vehicles as well changing the top speed to 53.1000061. There's currently no code path that forces this reload so the max will always be 51.770962 until a faster car comes along (this should never happen). So, to prevent the top speed UI bars scaling down if a higher speed vehicle gets added we need to put a cap of 51.770962 in place. An important point to note is that GET_VEHICLE_CLASS_ESTIMATED_MAX_SPEED doesn't return the same value as GET_VEHICLE_ESTIMATED_MAX_SPEED, instead it returns a higher value. Lucky for usthis means the UI bar will never reach the max top speed unless we add a fast car that returns >= 51.770962 for GET_VEHICLE_ESTIMATED_MAX_SPEED. The current max is the Prototipo which returns 44.7197569756 (86.38%). */ IF VehicleClass = VC_SUPER #IF IS_DEBUG_BUILD IF GET_VEHICLE_CLASS_ESTIMATED_MAX_SPEED(VehicleClass) > 51.770962 SCRIPT_ASSERT("GET_VEHICLE_CLASS_ESTIMATED_MAX_SPEED_TU(VC_SUPER) > 51.770962. Tell Kenneth R.") ENDIF #ENDIF RETURN 51.770962 // Adder ENDIF RETURN GET_VEHICLE_CLASS_ESTIMATED_MAX_SPEED(VehicleClass) ENDFUNC PROC GENERATE_VEHICLE_STATS_FOR_ALL_VEHICLE_CLASSES(VEHICLE_STATS_FOR_CLASS_TEMP &tempData) VEHICLE_CLASS currentVehicleClass INT iVehicleClass IF NOT vehicleStats.bRetrievedAllValues PRINTLN("GENERATE_VEHICLE_STATS_FOR_ALL_VEHICLE_CLASSES: Generating") //FLOAT fMultiplier = 1.0 PRINTLN("CHECKING tempData.iGroupLoop = ", tempData.iGroupLoop, " tempData.iGroupMemberLoop = ", tempData.iGroupMemberLoop) iVehicleClass = GET_VEHICLE_CLASSES_FOR_VEHICLE_GROUP(tempData.iGroupLoop,tempData.iGroupMemberLoop) IF iVehicleClass = -1 tempData.iGroupLoop++ tempData.iGroupMemberLoop = 0 IF tempData.iGroupLoop >= VEHICLE_STAT_NUM_GROUPS PRINTLN("GENERATE_VEHICLE_STATS_FOR_ALL_VEHICLE_CLASSES: retrieved all vehicle class data") vehicleStats.bRetrievedAllValues = TRUE ENDIF EXIT ELSE currentVehicleClass = INT_TO_ENUM(VEHICLE_CLASS,iVehicleClass) //speed FLOAT fTemp = GET_VEHICLE_CLASS_ESTIMATED_MAX_SPEED_TU(currentVehicleClass) PRINTLN("Vehicle class #", iVehicleClass, " estimate top speed = ", fTemp) IF vehicleStats.fMaxValues[tempData.iGroupLoop][VEHICLE_STAT_TOP_SPEED_INDEX] < fTemp vehicleStats.fMaxValues[tempData.iGroupLoop][VEHICLE_STAT_TOP_SPEED_INDEX] = fTemp PRINTLN("VEHICLE_STAT_TOP_SPEED_INDEX: ", "GROUP ID: ", tempData.iGroupLoop, " = ", fTemp) ENDIF //acceleration fTemp = GET_VEHICLE_CLASS_MAX_ACCELERATION(currentVehicleClass) PRINTLN("Vehicle class #", iVehicleClass, " estimate max acc = ", fTemp) IF vehicleStats.fMaxValues[tempData.iGroupLoop][VEHICLE_STAT_ACCELERATION_INDEX] < fTemp vehicleStats.fMaxValues[tempData.iGroupLoop][VEHICLE_STAT_ACCELERATION_INDEX] = fTemp PRINTLN("VEHICLE_STAT_ACCELERATION_INDEX: ", "GROUP ID: ", tempData.iGroupLoop, " = ", fTemp) ENDIF //Traction/agility IF currentVehicleClass = VC_HELICOPTER OR currentVehicleClass = VC_PLANE OR currentVehicleClass = VC_BOAT fTemp = GET_VEHICLE_CLASS_MAX_AGILITY(currentVehicleClass) ELSE fTemp = GET_VEHICLE_CLASS_MAX_TRACTION(currentVehicleClass) ENDIF PRINTLN("Vehicle class #", iVehicleClass, " estimate traction/agility = ", fTemp) IF vehicleStats.fMaxValues[tempData.iGroupLoop][VEHICLE_STAT_TRACTION_INDEX] < fTemp vehicleStats.fMaxValues[tempData.iGroupLoop][VEHICLE_STAT_TRACTION_INDEX] = fTemp PRINTLN("VEHICLE_STAT_TRACTION_INDEX: ", "GROUP ID: ", tempData.iGroupLoop, " = ", fTemp) ENDIF //braking fTemp = GET_VEHICLE_CLASS_MAX_BRAKING(currentVehicleClass) PRINTLN("Vehicle class #", iVehicleClass, " estimate braking = ", fTemp) IF vehicleStats.fMaxValues[tempData.iGroupLoop][VEHICLE_STAT_BRAKING_INDEX] < fTemp vehicleStats.fMaxValues[tempData.iGroupLoop][VEHICLE_STAT_BRAKING_INDEX] = fTemp PRINTLN("VEHICLE_STAT_BRAKING_INDEX: ", "GROUP ID: ", tempData.iGroupLoop, " = ", fTemp) ENDIF tempData.iGroupMemberLoop++ ENDIF ENDIF // CONST_FLOAT cfVOLTIC_ACCELERATION_MULTIPLIER 2.0 // CONST_FLOAT cfCYCLE_MULTIPLIER 0.50 // // MODEL_NAMES vehModel // //If we've not got the data then set it up! // IF NOT vehicleStats.bRetrievedAllValues // PRINTLN("GENERATE_VEHICLE_STATS_FOR_ALL_VEHICLE_CLASSES: Generating") // FLOAT fMultiplier = 1.0 // PRINTLN("CHECKING tempData.iClassLoop = ", tempData.iClassLoop, " tempData.iClassMemberLoop = ", tempData.iClassMemberLoop) // vehModel = GENERATE_VEHICLE_STATS_VEHICLE_MODELS(tempData.iClassLoop,tempData.iClassMemberLoop) // IF vehModel = DUMMY_MODEL_FOR_SCRIPT // tempData.iClassLoop++ // tempData.iClassMemberLoop = 0 // // IF tempData.iClassLoop >= VEHICLE_STAT_NUM_CLASSES // PRINTLN("GENERATE_VEHICLE_STATS_FOR_ALL_VEHICLE_CLASSES: retrieved all vehicle class data") // vehicleStats.bRetrievedAllValues = TRUE // ENDIF // EXIT // ELSE // IF IS_VEHICLE_A_CYCLE(vehModel) // fMultiplier = cfCYCLE_MULTIPLIER // ELSE // fMultiplier = 1.0 // ENDIF // IF vehModel != VOLTIC // FLOAT fTemp = (GET_VEHICLE_MODEL_ESTIMATED_MAX_SPEED(vehModel)) // // PRINTLN("vehModel = ", GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(vehModel)) // PRINTLN("top speed = ", fTemp) // // IF vehicleStats.fMaxValues[tempData.iClassLoop][VEHICLE_STAT_TOP_SPEED_INDEX] < fTemp // vehicleStats.fMaxValues[tempData.iClassLoop][VEHICLE_STAT_TOP_SPEED_INDEX] = fTemp // PRINTLN("vehModel = ", GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(vehModel)) // PRINTLN("VEHICLE_STAT_TOP_SPEED_INDEX = ", fTemp) // ENDIF // // fTemp = (GET_VEHICLE_MODEL_ACCELERATION(vehModel) * fMultiplier) // // PRINTLN("vehModel = ", GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(vehModel)) // PRINTLN("acceleration = ", fTemp) // // IF vehicleStats.fMaxValues[tempData.iClassLoop][VEHICLE_STAT_ACCELERATION_INDEX] < fTemp // vehicleStats.fMaxValues[tempData.iClassLoop][VEHICLE_STAT_ACCELERATION_INDEX] = fTemp // PRINTLN("vehModel = ", GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(vehModel)) // PRINTLN("VEHICLE_STAT_ACCELERATION_INDEX = ", fTemp) // ENDIF // // fTemp = (GET_VEHICLE_MODEL_MAX_BRAKING(vehModel) * fMultiplier) // // PRINTLN("vehModel = ", GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(vehModel)) // PRINTLN("max braking = ", fTemp) // // IF vehicleStats.fMaxValues[tempData.iClassLoop][VEHICLE_STAT_BRAKING_INDEX] < fTemp // vehicleStats.fMaxValues[tempData.iClassLoop][VEHICLE_STAT_BRAKING_INDEX] = fTemp // PRINTLN("vehModel = ", GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(vehModel)) // PRINTLN("VEHICLE_STAT_BRAKING_INDEX = ", fTemp) // ENDIF // // IF tempData.iClassLoop = VEHICLE_STAT_CLASS_HELI // fTemp = (GET_FLYING_VEHICLE_MODEL_AGILITY(vehModel) * fMultiplier) // ELIF tempData.iClassLoop = VEHICLE_STAT_CLASS_BOAT // fTemp = (GET_BOAT_VEHICLE_MODEL_AGILITY(vehModel) * fMultiplier) // ELSE // fTemp = (GET_VEHICLE_MODEL_MAX_TRACTION(vehModel)) // ENDIF // // PRINTLN("vehModel = ", GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(vehModel)) // PRINTLN("traction = ", fTemp) // // IF vehicleStats.fMaxValues[tempData.iClassLoop][VEHICLE_STAT_TRACTION_INDEX] < fTemp // vehicleStats.fMaxValues[tempData.iClassLoop][VEHICLE_STAT_TRACTION_INDEX] = fTemp // PRINTLN("vehModel = ", GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(vehModel)) // PRINTLN("VEHICLE_STAT_TRACTION_INDEX = ", fTemp) // ENDIF // ELSE // PRINTLN("vehModel = ", GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(vehModel)) // FLOAT fTemp = GET_VEHICLE_MODEL_ESTIMATED_MAX_SPEED(Stinger) // IF vehicleStats.fMaxValues[tempData.iClassLoop][VEHICLE_STAT_TOP_SPEED_INDEX] < fTemp // vehicleStats.fMaxValues[tempData.iClassLoop][VEHICLE_STAT_TOP_SPEED_INDEX] = fTemp // ENDIF // PRINTLN("VEHICLE_STAT_ACCELERATION_INDEX = ", fTemp) // fTemp = GET_VEHICLE_MODEL_ACCELERATION(vehModel) // PRINTLN("VEHICLE_STAT_ACCELERATION_INDEX = ", fTemp) // fTemp *= cfVOLTIC_ACCELERATION_MULTIPLIER // PRINTLN("VEHICLE_STAT_ACCELERATION_INDEX = ", fTemp) // IF vehicleStats.fMaxValues[tempData.iClassLoop][VEHICLE_STAT_ACCELERATION_INDEX] < fTemp // vehicleStats.fMaxValues[tempData.iClassLoop][VEHICLE_STAT_ACCELERATION_INDEX] = fTemp // ENDIF // PRINTLN("VEHICLE_STAT_BRAKING_INDEX = ", fTemp) // fTemp = GET_VEHICLE_MODEL_MAX_BRAKING(vehModel) // IF vehicleStats.fMaxValues[tempData.iClassLoop][VEHICLE_STAT_BRAKING_INDEX] < fTemp // vehicleStats.fMaxValues[tempData.iClassLoop][VEHICLE_STAT_BRAKING_INDEX] = fTemp // ENDIF // PRINTLN("VEHICLE_STAT_TRACTION_INDEX = ", fTemp) // fTemp = GET_VEHICLE_MODEL_MAX_TRACTION(vehModel) // IF vehicleStats.fMaxValues[tempData.iClassLoop][VEHICLE_STAT_TRACTION_INDEX] < fTemp // vehicleStats.fMaxValues[tempData.iClassLoop][VEHICLE_STAT_TRACTION_INDEX] = fTemp // ENDIF // PRINTLN("VEHICLE_STAT_TRACTION_INDEX = ", fTemp) // ENDIF // tempData.iClassMemberLoop++ // ENDIF // ENDIF ENDPROC PROC GENERATE_VEHICLE_STATS_FOR_CURRENT_VEHICLE_INDEX(VEHICLE_INDEX vehID,VEHICLE_STATS_CURRENT_VEHICLE& currentDetails, BOOL bApplyCapToCurrentValues = TRUE) IF IS_OWNERS_ARMORY_TRUCK_INSIDE_BUNKER(PLAYER_ID()) AND DOES_ENTITY_EXIST(MPGlobalsAmbience.vehTruckVehicle[0]) IF vehID = MPGlobalsAmbience.vehTruckVehicle[1] OR vehID = g_personalAACarModVeh EXIT ENDIF ENDIF IF IS_OWNERS_ARMORY_AIRCRAFT_INSIDE_DEFUNCT_BASE(PLAYER_ID()) AND DOES_ENTITY_EXIST(MPGlobalsAmbience.vehAvengerVehicle) IF vehID = MPGlobalsAmbience.vehAvengerVehicle EXIT ENDIF ENDIF IF IS_OWNERS_HACKER_TRUCK_INSIDE_BUSINESS_HUB(PLAYER_ID()) AND DOES_ENTITY_EXIST(MPGlobalsAmbience.vehHackerTruck) IF vehID = MPGlobalsAmbience.vehHackerTruck EXIT ENDIF ENDIF IF NOT IS_ENTITY_DEAD(vehID) INT iLoop IF NOT vehicleStats.bRetrievedAllValues PRINTLN("GENERATE_VEHICLE_STATS_FOR_CURRENT_VEHICLE_INDEX: waiting for all values for various classes to be retrieved") ELSE IF NOT currentDetails.bGotValues //get the current users vehicle stats CONST_FLOAT cfVOLTIC_ACCELERATION_MULTIPLIER 2.0 CONST_FLOAT cfTEZERACT_ACCELERATION_MULTIPLIER 2.6753 //(0.9198/0.3438) CONST_FLOAT cfCYCLE_MULTIPLIER 0.50 FLOAT fMultiplier = 1.0 MODEL_NAMES vehModel =GET_ENTITY_MODEL(vehID) IF IS_VEHICLE_A_CYCLE(vehModel) fMultiplier = cfCYCLE_MULTIPLIER ELSE fMultiplier = 1.0 ENDIF currentDetails.fValues[VEHICLE_STAT_TOP_SPEED_INDEX] = (GET_VEHICLE_ESTIMATED_MAX_SPEED(vehID)) currentDetails.fValues[VEHICLE_STAT_BRAKING_INDEX] = (GET_VEHICLE_MAX_BRAKING(vehID) * fMultiplier) FLOAT fTemp currentDetails.fValues[VEHICLE_STAT_ACCELERATION_INDEX] = (GET_VEHICLE_ACCELERATION(vehID) * fMultiplier) IF vehModel = VOLTIC currentDetails.fValues[VEHICLE_STAT_ACCELERATION_INDEX] = (GET_VEHICLE_ACCELERATION(vehID) * cfVOLTIC_ACCELERATION_MULTIPLIER) ENDIF IF vehModel = TEZERACT currentDetails.fValues[VEHICLE_STAT_ACCELERATION_INDEX] = (GET_VEHICLE_ACCELERATION(vehID) * cfTEZERACT_ACCELERATION_MULTIPLIER) ENDIF CONST_FLOAT cfJESTER3_TOP_SPEED_MULTIPLIER 0.989008363 //(0.8278/0.8370) CONST_FLOAT cfFREECRAWLER_TOP_SPEED_MULTIPLIER 0.978876156 //(0.7090/0.7243) CONST_FLOAT cfSWINGER_TOP_SPEED_MULTIPLIER 0.965055329 //(0.8285/0.8585) CONST_FLOAT cfMENACER_TOP_SPEED_MULTIPLIER 0.973046595 //(0.6787/0.6975) CONST_FLOAT cfSPEEDO4_TOP_SPEED_MULTIPLIER 0.942652330 //(0.6575/0.6975) IF vehModel = JESTER3 currentDetails.fValues[VEHICLE_STAT_TOP_SPEED_INDEX] = (GET_VEHICLE_ESTIMATED_MAX_SPEED(vehID) * cfJESTER3_TOP_SPEED_MULTIPLIER) ENDIF IF vehModel = FREECRAWLER currentDetails.fValues[VEHICLE_STAT_TOP_SPEED_INDEX] = (GET_VEHICLE_ESTIMATED_MAX_SPEED(vehID) * cfFREECRAWLER_TOP_SPEED_MULTIPLIER) ENDIF IF vehModel = SWINGER currentDetails.fValues[VEHICLE_STAT_TOP_SPEED_INDEX] = (GET_VEHICLE_ESTIMATED_MAX_SPEED(vehID) * cfSWINGER_TOP_SPEED_MULTIPLIER) ENDIF IF vehModel = MENACER currentDetails.fValues[VEHICLE_STAT_TOP_SPEED_INDEX] = (GET_VEHICLE_ESTIMATED_MAX_SPEED(vehID) * cfMENACER_TOP_SPEED_MULTIPLIER) ENDIF IF vehModel = SPEEDO4 currentDetails.fValues[VEHICLE_STAT_TOP_SPEED_INDEX] = (GET_VEHICLE_ESTIMATED_MAX_SPEED(vehID) * cfSPEEDO4_TOP_SPEED_MULTIPLIER) ENDIF IF IS_THIS_MODEL_A_HELI(vehModel) OR IS_THIS_MODEL_A_PLANE(vehModel) fTemp = (GET_FLYING_VEHICLE_MODEL_AGILITY(vehModel) * fMultiplier) ELIF IS_THIS_MODEL_A_BOAT(vehModel) fTemp = (GET_BOAT_VEHICLE_MODEL_AGILITY(vehModel) * fMultiplier) ELSE fTemp = (GET_VEHICLE_MAX_TRACTION(vehID) * fMultiplier) ENDIF currentDetails.fValues[VEHICLE_STAT_TRACTION_INDEX] = fTemp PRINTLN("CURRENT VEHICLE: ", GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(vehModel)) PRINTLN("currentDetails.fValues[ciVEHICLE_STAT_BOX_TOP_SPEED] = ", currentDetails.fValues[VEHICLE_STAT_TOP_SPEED_INDEX]) PRINTLN("currentDetails.fValues[ciVEHICLE_STAT_BOX_ACCELERATION] = ", currentDetails.fValues[VEHICLE_STAT_ACCELERATION_INDEX]) PRINTLN("currentDetails.fValues[ciVEHICLE_STAT_BOX_BREAKING] = ", currentDetails.fValues[VEHICLE_STAT_BRAKING_INDEX]) PRINTLN("currentDetails.fValues[ciVEHICLE_STAT_BOX_TRACTION] = ", currentDetails.fValues[VEHICLE_STAT_TRACTION_INDEX]) //apply reduction for mod space url:bugstar:2331128 - Level 2 Engine modification for the T20 maximises the acceleration stat, making the proceeding levels unnecessary. IF vehModel = T20 currentDetails.fValues[VEHICLE_STAT_ACCELERATION_INDEX] = currentDetails.fValues[VEHICLE_STAT_ACCELERATION_INDEX] - 0.05 ELIF vehModel = VINDICATOR currentDetails.fValues[VEHICLE_STAT_ACCELERATION_INDEX] = currentDetails.fValues[VEHICLE_STAT_ACCELERATION_INDEX] - 0.02 ENDIF #IF FEATURE_GEN9_EXCLUSIVE IF IS_VEHICLE_A_HSW_VEHICLE(vehID) SWITCH vehModel CASE HAKUCHOU2 currentDetails.fValues[VEHICLE_STAT_ACCELERATION_INDEX] = currentDetails.fValues[VEHICLE_STAT_ACCELERATION_INDEX] - g_sMPTunables.fHAKUCHOU2_ACCELERATION_STAT_OFFSET BREAK CASE BANSHEE currentDetails.fValues[VEHICLE_STAT_ACCELERATION_INDEX] = currentDetails.fValues[VEHICLE_STAT_ACCELERATION_INDEX] - g_sMPTunables.fBANSHEE_ACCELERATION_STAT_OFFSET BREAK CASE DEVESTE currentDetails.fValues[VEHICLE_STAT_ACCELERATION_INDEX] = currentDetails.fValues[VEHICLE_STAT_ACCELERATION_INDEX] - g_sMPTunables.fDEVESTE_ACCELERATION_STAT_OFFSET BREAK ENDSWITCH ENDIF #ENDIF #IF IS_DEBUG_BUILD REPEAT VEHICLE_STAT_NUM_STATS iLoop IF fVehicleStatReduction[iLoop] != 0 currentDetails.fValues[iLoop] = currentDetails.fValues[iLoop] - fVehicleStatReduction[iLoop] ENDIF ENDREPEAT PRINTLN("REDUCED currentDetails.fValues[ciVEHICLE_STAT_BOX_TOP_SPEED] = ", currentDetails.fValues[VEHICLE_STAT_TOP_SPEED_INDEX]) PRINTLN("REDUCEDcurrentDetails.fValues[ciVEHICLE_STAT_BOX_ACCELERATION] = ", currentDetails.fValues[VEHICLE_STAT_ACCELERATION_INDEX]) PRINTLN("REDUCEDcurrentDetails.fValues[ciVEHICLE_STAT_BOX_BREAKING] = ", currentDetails.fValues[VEHICLE_STAT_BRAKING_INDEX]) PRINTLN("REDUCEDcurrentDetails.fValues[ciVEHICLE_STAT_BOX_TRACTION] = ", currentDetails.fValues[VEHICLE_STAT_TRACTION_INDEX]) #ENDIF INT iClass = GET_VEHICLE_STAT_GROUP_FOR_CLASS(GET_VEHICLE_CLASS(vehID)) #IF IS_DEBUG_BUILD IF GET_COMMANDLINE_PARAM_EXISTS("sc_UseMaxModsForAcceleration") FLOAT maxModAcceleration = GET_VEHICLE_MODEL_ACCELERATION_MAX_MODS( vehModel ) IF maxModAcceleration > vehicleStats.fMaxValues[iclass][VEHICLE_STAT_ACCELERATION_INDEX] vehicleStats.fMaxValues[iclass][VEHICLE_STAT_ACCELERATION_INDEX] = maxModAcceleration PRINTLN("Overriding vehicleStats.fMaxValues[VEHICLE_STAT_ACCELERATION_INDEX] to ", maxModAcceleration, " for model ", GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(vehModel)) ENDIF ENDIF #ENDIF PRINTLN("Max values: ") PRINTLN("iClass = ", iClass) PRINTLN("vehicleStats.fMaxValues[ciVEHICLE_STAT_BOX_TOP_SPEED] = ", vehicleStats.fMaxValues[iclass][VEHICLE_STAT_TOP_SPEED_INDEX]) PRINTLN("vehicleStats.fMaxValues[ciVEHICLE_STAT_BOX_ACCELERATION] = ", vehicleStats.fMaxValues[iclass][VEHICLE_STAT_ACCELERATION_INDEX]) PRINTLN("vehicleStats.fMaxValues[ciVEHICLE_STAT_BOX_BREAKING] = ", vehicleStats.fMaxValues[iclass][VEHICLE_STAT_BRAKING_INDEX]) PRINTLN("vehicleStats.fMaxValues[ciVEHICLE_STAT_BOX_TRACTION] = ", vehicleStats.fMaxValues[iclass][VEHICLE_STAT_TRACTION_INDEX]) iLoop = 0 FOR iLoop = 0 TO (VEHICLE_STAT_NUM_STATS- 1) currentDetails.fValues[iLoop] = ((currentDetails.fValues[iLoop]/vehicleStats.fMaxValues[iclass][iLoop])*100) PRINTLN("currentDetails.fValues[", iLoop, "] = ", currentDetails.fValues[iLoop]) IF currentDetails.fValues[iLoop] > 100 AND bApplyCapToCurrentValues currentDetails.fValues[iLoop] = 100 PRINTLN("Capping value at 100: currentDetails.fValues[", iLoop, "] = ", currentDetails.fValues[iLoop]) ENDIF ENDFOR currentDetails.bGotValues = TRUE ENDIF ENDIF ENDIF ENDPROC PROC GENERATE_VEHICLE_STATS_FOR_CURRENT_VEHICLE_MODEL(MODEL_NAMES vehModel,VEHICLE_STATS_CURRENT_VEHICLE& currentDetails, INT iClass) IF NOT vehicleStats.bRetrievedAllValues PRINTLN("GENERATE_VEHICLE_STATS_FOR_CURRENT_VEHICLE_INDEX: waiting for all values for various classes to be retrieved") ELSE IF NOT currentDetails.bGotValues //get the current users vehicle stats CONST_FLOAT cfVOLTIC_ACCELERATION_MULTIPLIER 2.0 CONST_FLOAT cfTEZERACT_ACCELERATION_MULTIPLIER 2.6753 //(0.9198/0.3438) CONST_FLOAT cfCYCLE_MULTIPLIER 0.50 FLOAT fMultiplier = 1.0 IF IS_VEHICLE_A_CYCLE(vehModel) fMultiplier = cfCYCLE_MULTIPLIER ELSE fMultiplier = 1.0 ENDIF currentDetails.fValues[VEHICLE_STAT_TOP_SPEED_INDEX] = (GET_VEHICLE_MODEL_ESTIMATED_MAX_SPEED(vehModel)) currentDetails.fValues[VEHICLE_STAT_BRAKING_INDEX] = (GET_VEHICLE_MODEL_MAX_BRAKING(vehModel) * fMultiplier) FLOAT fTemp currentDetails.fValues[VEHICLE_STAT_ACCELERATION_INDEX] = (GET_VEHICLE_MODEL_ACCELERATION(vehModel) * fMultiplier) IF vehModel = VOLTIC currentDetails.fValues[VEHICLE_STAT_ACCELERATION_INDEX] = (GET_VEHICLE_MODEL_ACCELERATION(vehModel) * cfVOLTIC_ACCELERATION_MULTIPLIER) ENDIF IF vehModel = TEZERACT currentDetails.fValues[VEHICLE_STAT_ACCELERATION_INDEX] = (GET_VEHICLE_MODEL_ACCELERATION(vehModel) * cfTEZERACT_ACCELERATION_MULTIPLIER) ENDIF IF IS_THIS_MODEL_A_HELI(vehModel) OR IS_THIS_MODEL_A_PLANE(vehModel) fTemp = (GET_FLYING_VEHICLE_MODEL_AGILITY(vehModel) * fMultiplier) ELIF IS_THIS_MODEL_A_BOAT(vehModel) fTemp = (GET_BOAT_VEHICLE_MODEL_AGILITY(vehModel) * fMultiplier) ELSE fTemp = (GET_VEHICLE_MODEL_MAX_TRACTION(vehModel) * fMultiplier) ENDIF currentDetails.fValues[VEHICLE_STAT_TRACTION_INDEX] = fTemp PRINTLN("CURRENT VEHICLE: ", GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(vehModel)) PRINTLN("currentDetails.fValues[ciVEHICLE_STAT_BOX_TOP_SPEED] = ", currentDetails.fValues[VEHICLE_STAT_TOP_SPEED_INDEX]) PRINTLN("currentDetails.fValues[ciVEHICLE_STAT_BOX_BREAKING] = ", currentDetails.fValues[VEHICLE_STAT_BRAKING_INDEX]) PRINTLN("currentDetails.fValues[ciVEHICLE_STAT_BOX_ACCELERATION] = ", currentDetails.fValues[VEHICLE_STAT_ACCELERATION_INDEX]) PRINTLN("currentDetails.fValues[ciVEHICLE_STAT_BOX_TRACTION] = ", currentDetails.fValues[VEHICLE_STAT_TRACTION_INDEX]) INT iLoop FOR iLoop = 0 TO (VEHICLE_STAT_NUM_STATS- 1) currentDetails.fValues[iLoop] = ((currentDetails.fValues[iLoop]/vehicleStats.fMaxValues[iclass][iLoop])*100) PRINTLN("currentDetails.fValues[", iLoop, "] = ", currentDetails.fValues[iLoop]) IF currentDetails.fValues[iLoop] > 100 currentDetails.fValues[iLoop] = 100 PRINTLN("Capping value at 100: currentDetails.fValues[", iLoop, "] = ", currentDetails.fValues[iLoop]) ENDIF ENDFOR currentDetails.bGotValues = TRUE ENDIF ENDIF ENDPROC FUNC BOOL DOES_VEHICLE_MODEL_USE_EXTRAS_FOR_ROOF_TOGGLE(MODEL_NAMES vehModel) SWITCH vehModel CASE BANSHEE CASE STINGER CASE COQUETTE CASE COQUETTE2 CASE COQUETTE3 CASE CHINO CASE VOLTIC CASE STALION CASE CHINO2 CASE FACTION CASE FACTION2 CASE FACTION3 CASE BUCCANEER2 CASE MAMBA CASE BANSHEE2 CASE PFISTER811 CASE CONTENDER CASE KAMACHO CASE PEYOTE2 CASE PEYOTE3 CASE MANANA2 RETURN TRUE BREAK DEFAULT IF IS_MODEL_POLICE_VEHICLE(vehModel #IF FEATURE_COPS_N_CROOKS, TRUE #ENDIF ) RETURN TRUE ENDIF BREAK ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL IS_ROOF_EXTRA_CONFIGURED(MODEL_NAMES vehModel, INT iFlags, INT iAltRoof, INT iRoofModIndex) SWITCH vehModel CASE BANSHEE CASE BANSHEE2 IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) RETURN TRUE ENDIF BREAK CASE STINGER CASE COQUETTE2 CASE COQUETTE3 IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) RETURN TRUE ENDIF BREAK CASE CHINO CASE VOLTIC CASE STALION CASE CHINO2 CASE FACTION CASE FACTION2 CASE FACTION3 IF iAltRoof = 0 IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) RETURN TRUE ENDIF ELIF iAltRoof = 1 IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_2) RETURN TRUE ENDIF ENDIF BREAK CASE BUCCANEER2 CASE PEYOTE2 CASE PEYOTE3 IF iAltRoof = 0 IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_3) RETURN TRUE ENDIF ELIF iAltRoof = 1 IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) RETURN TRUE ENDIF ELIF iAltRoof = 2 IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_2) RETURN TRUE ENDIF ENDIF BREAK CASE MANANA2 IF iAltRoof = 0 IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) RETURN TRUE ENDIF ELIF iAltRoof = 1 IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_2) RETURN TRUE ENDIF ELIF iAltRoof = 2 IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_3) RETURN TRUE ENDIF ENDIF BREAK CASE COQUETTE IF iAltRoof = 0 IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) AND iRoofModIndex != 1 RETURN TRUE ENDIF ELIF iAltRoof = 1 IF iRoofModIndex = 1 RETURN TRUE ENDIF ENDIF BREAK CASE MAMBA IF iAltRoof = 0 IF NOT IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) AND IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) AND IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_2) RETURN TRUE ENDIF ELIF iAltRoof = 1 IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) AND NOT IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) AND NOT IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_2) RETURN TRUE ENDIF ENDIF BREAK CASE PFISTER811 IF iAltRoof = 0 IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) AND iRoofModIndex != 1 RETURN TRUE ENDIF ELIF iAltRoof = 1 IF iRoofModIndex = 1 RETURN TRUE ENDIF ENDIF BREAK CASE CONTENDER CASE KAMACHO IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) RETURN TRUE ENDIF BREAK #IF FEATURE_COPS_N_CROOKS CASE POLBATI CASE POLICEB2 SWITCH iAltRoof CASE 0 IF !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_2) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_3) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_4) RETURN TRUE ENDIF BREAK CASE 1 IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_2) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_3) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_4) RETURN TRUE ENDIF BREAK CASE 2 IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_2) AND IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_3) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_4) RETURN TRUE ENDIF BREAK CASE 3 IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) AND IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_4) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_3) RETURN TRUE ENDIF BREAK CASE 4 IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) AND IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_3) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_4) RETURN TRUE ENDIF BREAK CASE 5 IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) AND IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_4) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_3) RETURN TRUE ENDIF BREAK CASE 6 IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_2) AND IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_3) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_4) RETURN TRUE ENDIF BREAK CASE 7 IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_2) AND IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_4) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_3) RETURN TRUE ENDIF BREAK ENDSWITCH BREAK CASE POLGREENWOOD SWITCH iAltRoof CASE 0 IF !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_2) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_3) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_4) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_5) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_6) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_7) RETURN TRUE ENDIF BREAK CASE 1 IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_2) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_3) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_4) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_5) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_6) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_7) RETURN TRUE ENDIF BREAK CASE 2 IF !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) AND IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_2) AND IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_3) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_4) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_5) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_6) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_7) RETURN TRUE ENDIF BREAK CASE 3 IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_2) AND IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_3) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_4) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_5) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_6) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_7) RETURN TRUE ENDIF BREAK CASE 4 IF !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_2) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_3) AND IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_4) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_5) AND IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_6) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_7) RETURN TRUE ENDIF BREAK CASE 5 IF !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_2) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_3) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_4) AND IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_5) AND IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_6) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_7) RETURN TRUE ENDIF BREAK CASE 6 IF !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_2) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_3) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_4) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_5) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_6) AND IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_7) RETURN TRUE ENDIF BREAK CASE 7 IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_2) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_3) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_4) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_5) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_6) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_7) RETURN TRUE ENDIF BREAK ENDSWITCH BREAK #ENDIF DEFAULT IF IS_MODEL_POLICE_VEHICLE(vehModel #IF FEATURE_COPS_N_CROOKS, TRUE #ENDIF ) #IF FEATURE_COPS_N_CROOKS AND vehModel != POLBATI AND vehModel != POLICEB2 AND vehModel != POLGREENWOOD #ENDIF SWITCH iAltRoof CASE 0 IF !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_2) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_3) RETURN TRUE ENDIF BREAK CASE 1 IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) RETURN TRUE ENDIF BREAK CASE 2 IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_2) RETURN TRUE ENDIF BREAK CASE 3 IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_3) RETURN TRUE ENDIF BREAK ENDSWITCH ENDIF BREAK ENDSWITCH RETURN FALSE ENDFUNC FUNC BOOL IS_NO_ROOF_EXTRA_CONFIGURED(MODEL_NAMES vehModel, INT iFlags, INT iRoofModIndex) SWITCH vehModel CASE BANSHEE CASE BANSHEE2 IF NOT IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) RETURN TRUE ENDIF BREAK CASE STINGER CASE COQUETTE2 CASE COQUETTE3 IF NOT IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) RETURN TRUE ENDIF BREAK CASE CHINO CASE VOLTIC CASE STALION CASE CHINO2 CASE FACTION CASE FACTION2 CASE FACTION3 IF NOT IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) AND NOT IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_2) RETURN TRUE ENDIF BREAK CASE BUCCANEER2 CASE PEYOTE2 CASE PEYOTE3 IF NOT IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) AND NOT IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_2) AND NOT IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_3) RETURN TRUE ENDIF BREAK CASE MANANA2 IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) RETURN TRUE ENDIF BREAK CASE COQUETTE IF NOT IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) AND iRoofModIndex != 1 RETURN TRUE ENDIF BREAK CASE MAMBA IF NOT IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) AND IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) AND NOT IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_2) RETURN TRUE ENDIF BREAK CASE PFISTER811 IF NOT IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) AND iRoofModIndex != 1 RETURN TRUE ENDIF BREAK CASE CONTENDER CASE KAMACHO IF NOT IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) RETURN TRUE ENDIF BREAK DEFAULT IF IS_MODEL_POLICE_VEHICLE(vehModel #IF FEATURE_COPS_N_CROOKS, TRUE #ENDIF ) IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) RETURN TRUE ENDIF ENDIF BREAK ENDSWITCH #IF FEATURE_COPS_N_CROOKS SWITCH vehModel CASE POLBATI CASE POLICEB2 IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_2) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_3) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_4) RETURN TRUE ENDIF BREAK CASE POLGREENWOOD IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_2) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_3) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_4) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_5) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_6) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_7) AND !IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_8) RETURN TRUE ENDIF BREAK ENDSWITCH #ENDIF RETURN FALSE ENDFUNC FUNC INT GET_VEHICLE_EXTRAS_ROOF_COUNT(MODEL_NAMES vehModel) SWITCH vehModel CASE BANSHEE CASE STINGER CASE COQUETTE2 CASE COQUETTE3 CASE BANSHEE2 CASE CONTENDER CASE KAMACHO RETURN 1 BREAK CASE CHINO CASE VOLTIC CASE COQUETTE CASE STALION CASE CHINO2 CASE FACTION CASE FACTION2 CASE FACTION3 CASE MAMBA CASE PFISTER811 RETURN 2 BREAK CASE BUCCANEER2 CASE PEYOTE2 CASE PEYOTE3 CASE MANANA2 RETURN 3 BREAK DEFAULT IF IS_MODEL_POLICE_VEHICLE(vehModel #IF FEATURE_COPS_N_CROOKS, TRUE #ENDIF ) #IF FEATURE_COPS_N_CROOKS AND vehModel != POLBATI AND vehModel != POLICEB2 AND vehModel != POLGREENWOOD #ENDIF RETURN 4 ENDIF BREAK ENDSWITCH #IF FEATURE_COPS_N_CROOKS SWITCH vehModel CASE POLBATI CASE POLICEB2 RETURN 8 BREAK CASE POLGREENWOOD RETURN 7 BREAK ENDSWITCH #ENDIF RETURN 0 ENDFUNC /// iRoofOption: 0=Stock roof, 1=No Roof, PROC CONFIGURED_VEHICLE_ROOF_EXTRAS(VEHICLE_INDEX vehID, INT iRoofOption) SWITCH GET_ENTITY_MODEL(vehID) CASE BANSHEE CASE BANSHEE2 // Stock roof IF iRoofOption = 0 SET_VEHICLE_EXTRA(vehID, 1, TRUE) SET_VEHICLE_EXTRA(vehID, 2, FALSE) // No roof ELSE SET_VEHICLE_EXTRA(vehID, 1, FALSE) SET_VEHICLE_EXTRA(vehID, 2, TRUE) ENDIF BREAK CASE STINGER CASE COQUETTE3 // Stock roof IF iRoofOption = 0 SET_VEHICLE_EXTRA(vehID, 2, FALSE) // No roof ELSE SET_VEHICLE_EXTRA(vehID, 2, TRUE) ENDIF BREAK CASE COQUETTE2 // Stock roof IF iRoofOption = 0 SET_VEHICLE_EXTRA(vehID, 1, TRUE) SET_VEHICLE_EXTRA(vehID, 2, FALSE) // No roof ELSE SET_VEHICLE_EXTRA(vehID, 1, FALSE) SET_VEHICLE_EXTRA(vehID, 2, TRUE) ENDIF BREAK CASE CHINO CASE VOLTIC CASE CHINO2 CASE FACTION CASE FACTION2 CASE FACTION3 // Stock roof IF iRoofOption = 0 SET_VEHICLE_EXTRA(vehID, 2, FALSE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) // No roof ELIF iRoofOption = 1 SET_VEHICLE_EXTRA(vehID, 2, TRUE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) // Carbon roof ELIF iRoofOption = 2 SET_VEHICLE_EXTRA(vehID, 2, TRUE) SET_VEHICLE_EXTRA(vehID, 3, FALSE) ENDIF BREAK CASE BUCCANEER2 CASE PEYOTE2 CASE PEYOTE3 // Stock roof (hardtop) IF iRoofOption = 0 SET_VEHICLE_EXTRA(vehID, 2, TRUE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) SET_VEHICLE_EXTRA(vehID, 4, FALSE) // No roof ELIF iRoofOption = 1 SET_VEHICLE_EXTRA(vehID, 2, TRUE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) SET_VEHICLE_EXTRA(vehID, 4, TRUE) // Vinyl roof ELIF iRoofOption = 2 SET_VEHICLE_EXTRA(vehID, 2, FALSE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) SET_VEHICLE_EXTRA(vehID, 4, TRUE) // Interior Colour roof ELIF iRoofOption = 3 SET_VEHICLE_EXTRA(vehID, 2, TRUE) SET_VEHICLE_EXTRA(vehID, 3, FALSE) SET_VEHICLE_EXTRA(vehID, 4, TRUE) ENDIF BREAK CASE MANANA2 // Stock roof (hardtop) IF iRoofOption = 0 SET_VEHICLE_EXTRA(vehID, 1, TRUE) SET_VEHICLE_EXTRA(vehID, 2, FALSE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) SET_VEHICLE_EXTRA(vehID, 4, TRUE) // No roof ELIF iRoofOption = 1 SET_VEHICLE_EXTRA(vehID, 1, FALSE) SET_VEHICLE_EXTRA(vehID, 2, TRUE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) SET_VEHICLE_EXTRA(vehID, 4, TRUE) // Vinyl roof ELIF iRoofOption = 2 SET_VEHICLE_EXTRA(vehID, 1, TRUE) SET_VEHICLE_EXTRA(vehID, 2, TRUE) SET_VEHICLE_EXTRA(vehID, 3, FALSE) SET_VEHICLE_EXTRA(vehID, 4, TRUE) // Interior Colour roof ELIF iRoofOption = 3 SET_VEHICLE_EXTRA(vehID, 1, TRUE) SET_VEHICLE_EXTRA(vehID, 2, TRUE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) SET_VEHICLE_EXTRA(vehID, 4, FALSE) ENDIF BREAK CASE STALION // Stock roof IF iRoofOption = 0 SET_VEHICLE_EXTRA(vehID, 1, TRUE) SET_VEHICLE_EXTRA(vehID, 2, FALSE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) // No roof ELIF iRoofOption = 1 SET_VEHICLE_EXTRA(vehID, 1, FALSE) SET_VEHICLE_EXTRA(vehID, 2, TRUE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) // Carbon roof ELIF iRoofOption = 2 SET_VEHICLE_EXTRA(vehID, 1, TRUE) SET_VEHICLE_EXTRA(vehID, 2, TRUE) SET_VEHICLE_EXTRA(vehID, 3, FALSE) ENDIF BREAK CASE COQUETTE // Stock roof IF iRoofOption = 0 REMOVE_VEHICLE_MOD(vehID, MOD_ROOF) SET_VEHICLE_EXTRA(vehID, 2, FALSE) // No roof ELIF iRoofOption = 1 REMOVE_VEHICLE_MOD(vehID, MOD_ROOF) SET_VEHICLE_EXTRA(vehID, 2, TRUE) // Carbon roof ELIF iRoofOption = 2 SET_VEHICLE_MOD(vehID, MOD_ROOF, 0) SET_VEHICLE_EXTRA(vehID, 2, FALSE) ENDIF BREAK CASE MAMBA // Stock roof IF iRoofOption = 0 SET_VEHICLE_EXTRA(vehID, 1, TRUE) SET_VEHICLE_EXTRA(vehID, 2, FALSE) SET_VEHICLE_EXTRA(vehID, 3, FALSE) // No roof ELIF iRoofOption = 1 SET_VEHICLE_EXTRA(vehID, 1, TRUE) SET_VEHICLE_EXTRA(vehID, 2, FALSE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) // Custom roof ELIF iRoofOption = 2 SET_VEHICLE_EXTRA(vehID, 1, FALSE) SET_VEHICLE_EXTRA(vehID, 2, TRUE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) ENDIF BREAK CASE PFISTER811 // Stock roof IF iRoofOption = 0 REMOVE_VEHICLE_MOD(vehID, MOD_ROOF) SET_VEHICLE_EXTRA(vehID, 1, FALSE) // No roof ELIF iRoofOption = 1 REMOVE_VEHICLE_MOD(vehID, MOD_ROOF) SET_VEHICLE_EXTRA(vehID, 1, TRUE) // Carbon roof ELIF iRoofOption = 2 SET_VEHICLE_MOD(vehID, MOD_ROOF, 0) SET_VEHICLE_EXTRA(vehID, 1, FALSE) ENDIF BREAK CASE CONTENDER CASE KAMACHO // Stock roof IF iRoofOption = 0 SET_VEHICLE_EXTRA(vehID, 1, FALSE) // No roof ELSE SET_VEHICLE_EXTRA(vehID, 1, TRUE) ENDIF BREAK DEFAULT IF IS_MODEL_POLICE_VEHICLE(GET_ENTITY_MODEL(vehID) #IF FEATURE_COPS_N_CROOKS, TRUE #ENDIF ) #IF FEATURE_COPS_N_CROOKS AND !IS_VEHICLE_MODEL(vehID, POLBATI) AND !IS_VEHICLE_MODEL(vehID, POLICEB2) AND !IS_VEHICLE_MODEL(vehID, POLGREENWOOD) #ENDIF SWITCH iRoofOption CASE 0 SET_VEHICLE_EXTRA(vehID, 1, TRUE) SET_VEHICLE_EXTRA(vehID, 2, TRUE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) SET_VEHICLE_EXTRA(vehID, 4, TRUE) BREAK CASE 1 SET_VEHICLE_EXTRA(vehID, 1, FALSE) SET_VEHICLE_EXTRA(vehID, 2, TRUE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) SET_VEHICLE_EXTRA(vehID, 4, TRUE) BREAK CASE 2 SET_VEHICLE_EXTRA(vehID, 1, TRUE) SET_VEHICLE_EXTRA(vehID, 2, FALSE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) SET_VEHICLE_EXTRA(vehID, 4, TRUE) BREAK CASE 3 SET_VEHICLE_EXTRA(vehID, 1, TRUE) SET_VEHICLE_EXTRA(vehID, 2, TRUE) SET_VEHICLE_EXTRA(vehID, 3, FALSE) SET_VEHICLE_EXTRA(vehID, 4, TRUE) BREAK CASE 4 SET_VEHICLE_EXTRA(vehID, 1, TRUE) SET_VEHICLE_EXTRA(vehID, 2, TRUE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) SET_VEHICLE_EXTRA(vehID, 4, FALSE) BREAK ENDSWITCH ENDIF BREAK ENDSWITCH #IF FEATURE_COPS_N_CROOKS SWITCH GET_ENTITY_MODEL(vehID) CASE POLBATI CASE POLICEB2 SWITCH iRoofOption CASE 0 SET_VEHICLE_EXTRA(vehID, 1, TRUE) SET_VEHICLE_EXTRA(vehID, 2, TRUE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) SET_VEHICLE_EXTRA(vehID, 4, TRUE) SET_VEHICLE_EXTRA(vehID, 5, TRUE) BREAK CASE 1 SET_VEHICLE_EXTRA(vehID, 1, FALSE) SET_VEHICLE_EXTRA(vehID, 2, TRUE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) SET_VEHICLE_EXTRA(vehID, 4, TRUE) SET_VEHICLE_EXTRA(vehID, 5, TRUE) BREAK CASE 2 SET_VEHICLE_EXTRA(vehID, 1, TRUE) SET_VEHICLE_EXTRA(vehID, 2, FALSE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) SET_VEHICLE_EXTRA(vehID, 4, TRUE) SET_VEHICLE_EXTRA(vehID, 5, TRUE) BREAK CASE 3 SET_VEHICLE_EXTRA(vehID, 1, FALSE) SET_VEHICLE_EXTRA(vehID, 2, TRUE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) SET_VEHICLE_EXTRA(vehID, 4, FALSE) SET_VEHICLE_EXTRA(vehID, 5, TRUE) BREAK CASE 4 SET_VEHICLE_EXTRA(vehID, 1, FALSE) SET_VEHICLE_EXTRA(vehID, 2, TRUE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) SET_VEHICLE_EXTRA(vehID, 4, TRUE) SET_VEHICLE_EXTRA(vehID, 5, FALSE) BREAK CASE 5 SET_VEHICLE_EXTRA(vehID, 1, TRUE) SET_VEHICLE_EXTRA(vehID, 2, FALSE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) SET_VEHICLE_EXTRA(vehID, 4, FALSE) SET_VEHICLE_EXTRA(vehID, 5, TRUE) BREAK CASE 6 SET_VEHICLE_EXTRA(vehID, 1, TRUE) SET_VEHICLE_EXTRA(vehID, 2, FALSE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) SET_VEHICLE_EXTRA(vehID, 4, TRUE) SET_VEHICLE_EXTRA(vehID, 5, FALSE) BREAK CASE 7 SET_VEHICLE_EXTRA(vehID, 1, TRUE) SET_VEHICLE_EXTRA(vehID, 2, TRUE) SET_VEHICLE_EXTRA(vehID, 3, FALSE) SET_VEHICLE_EXTRA(vehID, 4, FALSE) SET_VEHICLE_EXTRA(vehID, 5, TRUE) BREAK CASE 8 SET_VEHICLE_EXTRA(vehID, 1, TRUE) SET_VEHICLE_EXTRA(vehID, 2, TRUE) SET_VEHICLE_EXTRA(vehID, 3, FALSE) SET_VEHICLE_EXTRA(vehID, 4, TRUE) SET_VEHICLE_EXTRA(vehID, 5, FALSE) BREAK ENDSWITCH BREAK CASE POLGREENWOOD SWITCH iRoofOption CASE 0 SET_VEHICLE_EXTRA(vehID, 1, TRUE) SET_VEHICLE_EXTRA(vehID, 2, TRUE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) SET_VEHICLE_EXTRA(vehID, 4, TRUE) SET_VEHICLE_EXTRA(vehID, 5, TRUE) SET_VEHICLE_EXTRA(vehID, 6, TRUE) SET_VEHICLE_EXTRA(vehID, 7, TRUE) SET_VEHICLE_EXTRA(vehID, 8, TRUE) BREAK CASE 1 SET_VEHICLE_EXTRA(vehID, 1, FALSE) SET_VEHICLE_EXTRA(vehID, 2, TRUE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) SET_VEHICLE_EXTRA(vehID, 4, TRUE) SET_VEHICLE_EXTRA(vehID, 5, TRUE) SET_VEHICLE_EXTRA(vehID, 6, TRUE) SET_VEHICLE_EXTRA(vehID, 7, TRUE) SET_VEHICLE_EXTRA(vehID, 8, TRUE) BREAK CASE 2 SET_VEHICLE_EXTRA(vehID, 1, TRUE) SET_VEHICLE_EXTRA(vehID, 2, FALSE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) SET_VEHICLE_EXTRA(vehID, 4, TRUE) SET_VEHICLE_EXTRA(vehID, 5, TRUE) SET_VEHICLE_EXTRA(vehID, 6, TRUE) SET_VEHICLE_EXTRA(vehID, 7, TRUE) SET_VEHICLE_EXTRA(vehID, 8, TRUE) BREAK CASE 3 SET_VEHICLE_EXTRA(vehID, 1, TRUE) SET_VEHICLE_EXTRA(vehID, 2, TRUE) SET_VEHICLE_EXTRA(vehID, 3, FALSE) SET_VEHICLE_EXTRA(vehID, 4, FALSE) SET_VEHICLE_EXTRA(vehID, 5, TRUE) SET_VEHICLE_EXTRA(vehID, 6, TRUE) SET_VEHICLE_EXTRA(vehID, 7, TRUE) SET_VEHICLE_EXTRA(vehID, 8, TRUE) BREAK CASE 4 SET_VEHICLE_EXTRA(vehID, 1, TRUE) SET_VEHICLE_EXTRA(vehID, 2, FALSE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) SET_VEHICLE_EXTRA(vehID, 4, FALSE) SET_VEHICLE_EXTRA(vehID, 5, TRUE) SET_VEHICLE_EXTRA(vehID, 6, TRUE) SET_VEHICLE_EXTRA(vehID, 7, TRUE) SET_VEHICLE_EXTRA(vehID, 8, TRUE) BREAK CASE 5 SET_VEHICLE_EXTRA(vehID, 1, TRUE) SET_VEHICLE_EXTRA(vehID, 2, TRUE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) SET_VEHICLE_EXTRA(vehID, 4, TRUE) SET_VEHICLE_EXTRA(vehID, 5, FALSE) SET_VEHICLE_EXTRA(vehID, 6, TRUE) SET_VEHICLE_EXTRA(vehID, 7, FALSE) SET_VEHICLE_EXTRA(vehID, 8, TRUE) BREAK CASE 6 SET_VEHICLE_EXTRA(vehID, 1, TRUE) SET_VEHICLE_EXTRA(vehID, 2, TRUE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) SET_VEHICLE_EXTRA(vehID, 4, TRUE) SET_VEHICLE_EXTRA(vehID, 5, TRUE) SET_VEHICLE_EXTRA(vehID, 6, FALSE) SET_VEHICLE_EXTRA(vehID, 7, FALSE) SET_VEHICLE_EXTRA(vehID, 8, TRUE) BREAK CASE 7 SET_VEHICLE_EXTRA(vehID, 1, TRUE) SET_VEHICLE_EXTRA(vehID, 2, TRUE) SET_VEHICLE_EXTRA(vehID, 3, TRUE) SET_VEHICLE_EXTRA(vehID, 4, TRUE) SET_VEHICLE_EXTRA(vehID, 5, TRUE) SET_VEHICLE_EXTRA(vehID, 6, TRUE) SET_VEHICLE_EXTRA(vehID, 7, TRUE) SET_VEHICLE_EXTRA(vehID, 8, FALSE) BREAK ENDSWITCH BREAK ENDSWITCH #ENDIF ENDPROC //PURPOSE: Returns TRUE of the vehicle is Topless FUNC BOOL IS_VEHICLE_TOPLESS(MODEL_NAMES vehModel, INT iFlags, INT iRoofModIndex) SWITCH vehModel CASE BANSHEE CASE BANSHEE2 IF NOT IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) RETURN TRUE ENDIF BREAK CASE STINGER CASE COQUETTE2 CASE COQUETTE3 IF NOT IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) RETURN TRUE ENDIF BREAK CASE CHINO CASE VOLTIC CASE STALION CASE CHINO2 CASE FACTION CASE FACTION2 CASE FACTION3 IF NOT IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) AND NOT IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_2) RETURN TRUE ENDIF BREAK CASE BUCCANEER2 CASE PEYOTE2 CASE PEYOTE3 IF NOT IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) AND NOT IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_2) AND NOT IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_3) RETURN TRUE ENDIF BREAK CASE COQUETTE IF NOT IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) AND iRoofModIndex != 1 RETURN TRUE ENDIF BREAK CASE MAMBA IF NOT IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_2) RETURN TRUE ENDIF BREAK CASE PFISTER811 IF NOT IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) AND iRoofModIndex != 1 RETURN TRUE ENDIF BREAK CASE CONTENDER CASE KAMACHO // Not really topless IF NOT IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) RETURN TRUE ENDIF BREAK CASE MANANA2 IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) RETURN TRUE ENDIF BREAK ENDSWITCH RETURN FALSE ENDFUNC //purpose: reset vehicle extras on "Cancel" menu option FUNC BOOL SET_VEH_ROOF_OPTIONS_ON_MENU_EXIT(MODEL_NAMES vehModel, VEHICLE_INDEX vehicleID, INT iFlags) SWITCH vehModel CASE MAMBA IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) SET_VEHICLE_EXTRA(vehicleID, 1, TRUE) ENDIF IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_2) SET_VEHICLE_EXTRA(vehicleID, 2, TRUE) ENDIF IF IS_BIT_SET(iFlags, VEHICLE_SETUP_FLAG_EXTRA_3) SET_VEHICLE_EXTRA(vehicleID, 3, TRUE) ENDIF RETURN TRUE BREAK ENDSWITCH RETURN FALSE ENDFUNC //PURPOSE: Returns TRUE if the vehicle is setup as livery version FUNC BOOL IS_VEHICLE_SETUP_WITH_LIVERY(VEHICLE_SETUP_STRUCT &vss) SWITCH vss.emodel CASE WINDSOR IF vss.iLivery > 0 //possible >= 0 for other vehicles. RETURN TRUE ENDIF BREAK ENDSWITCH RETURN FALSE ENDFUNC FUNC STRING GET_VEHICLE_NAME_EXTRA(MODEL_NAMES vehModel, INT iFlags) SWITCH vehModel CASE SWIFT IF iFlags = 39 RETURN "VNX_SWFTC" //Classic ELSE RETURN "VNX_SWFTB" //Flying Bravo ENDIF BREAK CASE MARSHALL SWITCH iFlags CASE 43 RETURN "WEB_VEH_FLAG_0" CASE 44 RETURN "WEB_VEH_FLAG_1" CASE 45 RETURN "WEB_VEH_FLAG_2" CASE 46 RETURN "WEB_VEH_FLAG_3" CASE 47 RETURN "WEB_VEH_FLAG_4" CASE 48 RETURN "WEB_VEH_FLAG_5" CASE 49 RETURN "WEB_VEH_FLAG_6" CASE 50 RETURN "WEB_VEH_FLAG_7" CASE 51 RETURN "WEB_VEH_FLAG_8" CASE 52 RETURN "WEB_VEH_FLAG_9" CASE 53 RETURN "WEB_VEH_FLAG_10" CASE 54 RETURN "WEB_VEH_FLAG_11" CASE 55 RETURN "WEB_VEH_FLAG_12" CASE 56 RETURN "WEB_VEH_FLAG_13" CASE 57 RETURN "WEB_VEH_FLAG_14" CASE 58 RETURN "WEB_VEH_FLAG_15" CASE 59 RETURN "WEB_VEH_FLAG_16" CASE 60 RETURN "WEB_VEH_FLAG_17" CASE 61 RETURN "WEB_VEH_FLAG_18" CASE 62 RETURN "WEB_VEH_FLAG_19" CASE 63 RETURN "WEB_VEH_FLAG_20" CASE 64 RETURN "WEB_VEH_FLAG_21" CASE 65 RETURN "WEB_VEH_FLAG_22" CASE 66 RETURN "WEB_VEH_FLAG_23" CASE 67 RETURN "WEB_VEH_FLAG_24" ENDSWITCH BREAK CASE RALLYTRUCK IF iFlags = 90 RETURN "SSS_DUNE_LIVERY_1" //Livery 1 ELSE RETURN "SSS_DUNE_LIVERY_2" //Livery 2 ENDIF BREAK CASE BLIMP3 SWITCH iFlags CASE 97 RETURN "BLIMP3_ELT_1" CASE 98 RETURN "BLIMP3_ELT_2" CASE 99 RETURN "BLIMP3_ELT_3" CASE 100 RETURN "BLIMP3_ELT_4" CASE 101 RETURN "BLIMP3_ELT_5" CASE 102 RETURN "BLIMP3_ELT_6" CASE 103 RETURN "BLIMP3_ELT_7" CASE 104 TEXT_LABEL_15 tl15Str tl15Str = "FCCLUB_NAME_" tl15Str += (GET_SF_FROM_NIGHTCLUB_NAME(GET_MP_INT_CHARACTER_STAT(MP_STAT_PROP_NIGHTCLUB_NAME_ID))+1) RETURN GET_CHARACTER_FROM_AUDIO_CONVERSATION_FILENAME(tl15Str, 0, GET_LENGTH_OF_LITERAL_STRING(tl15Str)) BREAK ENDSWITCH BREAK CASE PBUS2 SWITCH iFlags CASE 105 RETURN "PBUS2_SSA_1" CASE 106 RETURN "PBUS2_SSA_2" CASE 107 RETURN "PBUS2_SSA_3" CASE 108 RETURN "PBUS2_SSA_4" CASE 109 RETURN "PBUS2_SSA_5" CASE 110 RETURN "PBUS2_SSA_6" CASE 111 RETURN "PBUS2_SSA_7" CASE 112 RETURN "PBUS2_SSA_8" CASE 113 RETURN "PBUS2_SSA_9" CASE 114 RETURN "PBUS2_SSA_10" ENDSWITCH BREAK ENDSWITCH RETURN "" ENDFUNC FUNC BOOL SHOULD_REMOVE_FORBIDDEN_VEHICLE_FROM_MP(INT iForbiddenVehIndex) IF NETWORK_IS_ACTIVITY_SESSION() RETURN FALSE ENDIF SWITCH iForbiddenVehIndex CASE 155 IF !g_sMPTunables.bENABLE_BLIMP3 //BLIMP3 RETURN TRUE ENDIF BREAK CASE 156 IF !g_sMPTunables.bENABLE_FREECRAWLER // FREECRAWLER RETURN TRUE ENDIF BREAK CASE 157 IF !g_sMPTunables.bENABLE_MENACER //MENACER RETURN TRUE ENDIF BREAK CASE 158 IF !g_sMPTunables.bENABLE_MULE4 //MULE4 RETURN TRUE ENDIF BREAK CASE 159 IF !g_sMPTunables.bENABLE_OPPRESSOR2 //OPPRESSOR2 RETURN TRUE ENDIF BREAK CASE 160 IF !g_sMPTunables.bENABLE_PATRIOT2 //PATRIOT2 RETURN TRUE ENDIF BREAK CASE 161 IF !g_sMPTunables.bENABLE_PBUS2 //PBUS2 RETURN TRUE ENDIF BREAK CASE 162 IF !g_sMPTunables.bENABLE_POUNDER2 //POUNDER2 RETURN TRUE ENDIF BREAK CASE 163 IF !g_sMPTunables.bENABLE_SCRAMJET //SCRAMJET RETURN TRUE ENDIF BREAK CASE 165 IF !g_sMPTunables.bENABLE_STAFFORD //STAFFORD RETURN TRUE ENDIF BREAK CASE 166 IF !g_sMPTunables.bENABLE_STRIKEFORCE // STRIKEFORCE RETURN TRUE ENDIF BREAK CASE 167 IF !g_sMPTunables.bENABLE_SWINGER //SWINGER RETURN TRUE ENDIF BREAK CASE 168 IF !g_sMPTunables.bENABLE_TERBYTE // TERBYTE RETURN TRUE ENDIF BREAK CASE 169 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(MONSTER3) RETURN TRUE ENDIF BREAK CASE 170 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(MONSTER4) RETURN TRUE ENDIF BREAK CASE 171 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(MONSTER5) RETURN TRUE ENDIF BREAK CASE 172 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(CERBERUS) RETURN TRUE ENDIF BREAK CASE 173 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(CERBERUS2) RETURN TRUE ENDIF BREAK CASE 174 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(CERBERUS3) RETURN TRUE ENDIF BREAK CASE 175 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(BRUISER) RETURN TRUE ENDIF BREAK CASE 176 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(BRUISER2) RETURN TRUE ENDIF BREAK CASE 177 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(BRUISER3) RETURN TRUE ENDIF BREAK CASE 178 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(SLAMVAN4) RETURN TRUE ENDIF BREAK CASE 179 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(SLAMVAN5) RETURN TRUE ENDIF BREAK CASE 180 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(SLAMVAN6) RETURN TRUE ENDIF BREAK CASE 181 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(BRUTUS) RETURN TRUE ENDIF BREAK CASE 182 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(BRUTUS2) RETURN TRUE ENDIF BREAK CASE 183 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(BRUTUS3) RETURN TRUE ENDIF BREAK CASE 184 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(SCARAB) RETURN TRUE ENDIF BREAK CASE 185 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(SCARAB2) RETURN TRUE ENDIF BREAK CASE 186 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(SCARAB3) RETURN TRUE ENDIF BREAK CASE 187 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(DOMINATOR4) RETURN TRUE ENDIF BREAK CASE 188 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(DOMINATOR5) RETURN TRUE ENDIF BREAK CASE 189 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(DOMINATOR6) RETURN TRUE ENDIF BREAK CASE 190 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(IMPALER2) RETURN TRUE ENDIF BREAK CASE 191 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(IMPALER3) RETURN TRUE ENDIF BREAK CASE 192 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(IMPALER4) RETURN TRUE ENDIF BREAK CASE 193 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(ISSI4) RETURN TRUE ENDIF BREAK CASE 194 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(ISSI5) RETURN TRUE ENDIF BREAK CASE 195 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(ISSI6) RETURN TRUE ENDIF BREAK CASE 196 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(IMPERATOR) RETURN TRUE ENDIF BREAK CASE 197 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(IMPERATOR2) RETURN TRUE ENDIF BREAK CASE 198 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(IMPERATOR3) RETURN TRUE ENDIF BREAK CASE 199 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(ZR380) RETURN TRUE ENDIF BREAK CASE 200 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(ZR3802) RETURN TRUE ENDIF BREAK CASE 201 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(ZR3803) RETURN TRUE ENDIF BREAK CASE 202 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(DEATHBIKE) RETURN TRUE ENDIF BREAK CASE 203 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(DEATHBIKE2) RETURN TRUE ENDIF BREAK CASE 204 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(DEATHBIKE3) RETURN TRUE ENDIF BREAK CASE 205 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(DEVESTE) RETURN TRUE ENDIF BREAK CASE 206 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(IMPALER) RETURN TRUE ENDIF BREAK CASE 207 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(VAMOS) RETURN TRUE ENDIF BREAK CASE 208 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(TOROS) RETURN TRUE ENDIF BREAK CASE 209 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(CLIQUE) RETURN TRUE ENDIF BREAK CASE 210 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(ITALIGTO) RETURN TRUE ENDIF BREAK CASE 211 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(DEVIANT) RETURN TRUE ENDIF BREAK CASE 212 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(TULIP) RETURN TRUE ENDIF BREAK CASE 213 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(SCHLAGEN) RETURN TRUE ENDIF BREAK CASE 214 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(RCBANDITO) RETURN TRUE ENDIF BREAK CASE 215 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(CARACARA2) RETURN TRUE ENDIF BREAK CASE 216 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(DRAFTER) RETURN TRUE ENDIF BREAK CASE 217 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(DYNASTY) RETURN TRUE ENDIF BREAK CASE 218 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(GAUNTLET3) RETURN TRUE ENDIF BREAK CASE 219 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(GAUNTLET4) RETURN TRUE ENDIF BREAK CASE 220 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(HELLION) RETURN TRUE ENDIF BREAK CASE 221 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(ISSI7) RETURN TRUE ENDIF BREAK CASE 222 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(KRIEGER) RETURN TRUE ENDIF BREAK CASE 223 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(LOCUST) RETURN TRUE ENDIF BREAK CASE 224 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(NEBULA) RETURN TRUE ENDIF BREAK CASE 225 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(NEO) RETURN TRUE ENDIF BREAK CASE 226 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(NOVAK) RETURN TRUE ENDIF BREAK CASE 227 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(S80) RETURN TRUE ENDIF BREAK CASE 228 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(THRAX) RETURN TRUE ENDIF BREAK CASE 229 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(ZION3) RETURN TRUE ENDIF BREAK CASE 230 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(ZORRUSSO) RETURN TRUE ENDIF BREAK CASE 231 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(EMERUS) RETURN TRUE ENDIF BREAK CASE 232 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(KRIEGER) RETURN TRUE ENDIF BREAK CASE 233 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(PEYOTE2) RETURN TRUE ENDIF BREAK CASE 234 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(RROCKET) RETURN TRUE ENDIF BREAK CASE 235 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(JUGULAR) RETURN TRUE ENDIF BREAK CASE 236 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(PARAGON) RETURN TRUE ENDIF BREAK CASE 237 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(PARAGON2) RETURN TRUE ENDIF BREAK CASE 238 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(ASBO) RETURN TRUE ENDIF BREAK CASE 240 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(FORMULA) RETURN TRUE ENDIF BREAK CASE 241 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(IMORGON) RETURN TRUE ENDIF BREAK CASE 242 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(KOMODA) RETURN TRUE ENDIF BREAK CASE 243 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(MANANA2) RETURN TRUE ENDIF BREAK // CASE 244 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(PRIMO3) RETURN TRUE ENDIF BREAK CASE 245 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(REBLA) RETURN TRUE ENDIF BREAK CASE 246 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(SUGOI) RETURN TRUE ENDIF BREAK CASE 247 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(YOUGA3) RETURN TRUE ENDIF BREAK CASE 248 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(ZHABA) RETURN TRUE ENDIF BREAK CASE 249 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(VSTR) RETURN TRUE ENDIF BREAK CASE 250 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(EVERON) RETURN TRUE ENDIF BREAK CASE 252 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(JB7002) RETURN TRUE ENDIF BREAK CASE 254 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(FIRETRUK) RETURN TRUE ENDIF BREAK CASE 255 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(BURRITO2) RETURN TRUE ENDIF BREAK CASE 256 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(BOXVILLE) RETURN TRUE ENDIF BREAK CASE 257 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(STOCKADE) RETURN TRUE ENDIF BREAK CASE 258 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(LGUARD) RETURN TRUE ENDIF BREAK CASE 259 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(BLAZER2) RETURN TRUE ENDIF BREAK CASE 262 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(FORMULA2) RETURN TRUE ENDIF BREAK CASE 263 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(FURIA) RETURN TRUE ENDIF BREAK CASE 265 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(RETINUE2) RETURN TRUE ENDIF BREAK CASE 266 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(MINITANK) RETURN TRUE ENDIF BREAK #IF FEATURE_SUMMER_2020 CASE 267 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(GAUNTLET5) RETURN TRUE ENDIF BREAK CASE 268 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(CLUB) RETURN TRUE ENDIF BREAK CASE 269 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(DUKES3) RETURN TRUE ENDIF BREAK CASE 270 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(YOSEMITE3) RETURN TRUE ENDIF BREAK CASE 271 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(PEYOTE3) RETURN TRUE ENDIF BREAK CASE 272 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(GLENDALE2) RETURN TRUE ENDIF BREAK CASE 273 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(PENUMBRA2) RETURN TRUE ENDIF BREAK CASE 274 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(LANDSTALKER2) RETURN TRUE ENDIF BREAK CASE 275 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(SEMINOLE2) RETURN TRUE ENDIF BREAK CASE 276 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(TIGON) RETURN TRUE ENDIF BREAK CASE 277 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(OPENWHEEL1) RETURN TRUE ENDIF BREAK CASE 278 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(COQUETTE4) RETURN TRUE ENDIF BREAK CASE 279 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(OPENWHEEL2) RETURN TRUE ENDIF BREAK #ENDIF #IF FEATURE_COPS_N_CROOKS CASE 280 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(POLGREENWOOD) RETURN TRUE ENDIF BREAK CASE 281 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(POLRIATA) RETURN TRUE ENDIF BREAK CASE 282 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(SURFER3) RETURN TRUE ENDIF BREAK CASE 283 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(ZOKU) RETURN TRUE ENDIF BREAK CASE 284 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(POLBATI) RETURN TRUE ENDIF BREAK CASE 285 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(POLBUFFALO) RETURN TRUE ENDIF BREAK CASE 286 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(POLGAUNTLET) RETURN TRUE ENDIF BREAK CASE 287 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(POLGRANGER) RETURN TRUE ENDIF BREAK CASE 288 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(POLICE5) RETURN TRUE ENDIF BREAK CASE 289 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(POLICE6) RETURN TRUE ENDIF BREAK CASE 290 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(POLICEB2) RETURN TRUE ENDIF BREAK CASE 291 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(POLICET2) RETURN TRUE ENDIF BREAK CASE 292 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(POLPANTO) RETURN TRUE ENDIF BREAK CASE 293 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(POLCARACARA) RETURN TRUE ENDIF BREAK #ENDIF #IF FEATURE_HEIST_ISLAND CASE 294 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(MANCHEZ2) RETURN TRUE ENDIF BREAK CASE 295 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(BRIOSO2) RETURN TRUE ENDIF BREAK CASE 296 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(WINKY) RETURN TRUE ENDIF BREAK CASE 297 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(VERUS) RETURN TRUE ENDIF BREAK CASE 298 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(ALKONOST) RETURN TRUE ENDIF BREAK CASE 299 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(AVISA) RETURN TRUE ENDIF BREAK CASE 300 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(KOSATKA) RETURN TRUE ENDIF BREAK CASE 301 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(LONGFIN) RETURN TRUE ENDIF BREAK CASE 302 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(PATROLBOAT) RETURN TRUE ENDIF BREAK CASE 303 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(SEASPARROW2) RETURN TRUE ENDIF BREAK CASE 304 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(SEASPARROW3) RETURN TRUE ENDIF BREAK CASE 305 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(SLAMTRUCK) RETURN TRUE ENDIF BREAK CASE 306 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(VETIR) RETURN TRUE ENDIF BREAK CASE 307 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(TOREADOR) RETURN TRUE ENDIF BREAK CASE 308 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(ANNIHILATOR2) RETURN TRUE ENDIF BREAK CASE 309 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(DINGHY5) RETURN TRUE ENDIF BREAK CASE 310 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(WEEVIL) RETURN TRUE ENDIF BREAK CASE 311 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(ITALIRSX) RETURN TRUE ENDIF BREAK CASE 312 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(SQUADDIE) RETURN TRUE ENDIF BREAK CASE 313 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(VETO) RETURN TRUE ENDIF BREAK CASE 314 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(VETO2) RETURN TRUE ENDIF BREAK #ENDIF CASE 315 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(CALICO) RETURN TRUE ENDIF BREAK CASE 316 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(COMET6) RETURN TRUE ENDIF BREAK CASE 317 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(CYPHER) RETURN TRUE ENDIF BREAK CASE 318 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(DOMINATOR7) RETURN TRUE ENDIF BREAK CASE 319 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(JESTER4) RETURN TRUE ENDIF BREAK CASE 320 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(REMUS) RETURN TRUE ENDIF BREAK CASE 321 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(VECTRE) RETURN TRUE ENDIF BREAK CASE 322 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(ZR350) RETURN TRUE ENDIF BREAK CASE 323 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(WARRENER2) RETURN TRUE ENDIF BREAK CASE 324 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(RT3000) RETURN TRUE ENDIF BREAK CASE 325 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(FUTO2) RETURN TRUE ENDIF BREAK CASE 326 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(TAILGATER2) RETURN TRUE ENDIF BREAK CASE 327 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(SULTAN3) RETURN TRUE ENDIF BREAK CASE 328 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(DOMINATOR8) RETURN TRUE ENDIF BREAK CASE 329 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(EUROS) RETURN TRUE ENDIF BREAK CASE 330 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(GROWLER) RETURN TRUE ENDIF BREAK CASE 331 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(PREVION) RETURN TRUE ENDIF BREAK CASE 332 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(ASTRON) RETURN TRUE ENDIF BREAK // Always add to end and don't mess the vehicle orders ENDSWITCH SWITCH iForbiddenVehIndex CASE 333 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(BALLER7) RETURN TRUE ENDIF BREAK CASE 334 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(BUFFALO4) RETURN TRUE ENDIF BREAK CASE 335 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(COMET7) RETURN TRUE ENDIF BREAK CASE 336 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(DEITY) RETURN TRUE ENDIF BREAK CASE 337 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(GRANGER2) RETURN TRUE ENDIF BREAK CASE 338 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(IGNUS) RETURN TRUE ENDIF BREAK CASE 339 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(JUBILEE) RETURN TRUE ENDIF BREAK CASE 340 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(PATRIOT3) RETURN TRUE ENDIF BREAK CASE 341 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(YOUGA4) RETURN TRUE ENDIF BREAK CASE 342 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(ZENO) RETURN TRUE ENDIF BREAK CASE 343 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(MULE5) RETURN TRUE ENDIF BREAK CASE 344 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(CINQUEMILA) RETURN TRUE ENDIF BREAK CASE 345 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(CHAMPION) RETURN TRUE ENDIF BREAK CASE 346 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(REEVER) RETURN TRUE ENDIF BREAK CASE 347 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(SHINOBI) RETURN TRUE ENDIF BREAK CASE 348 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(IWAGEN) RETURN TRUE ENDIF BREAK #IF FEATURE_DLC_1_2022 CASE 349 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(CORSITA) RETURN TRUE ENDIF BREAK CASE 350 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(DRAUGUR) RETURN TRUE ENDIF BREAK CASE 351 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(GREENWOOD) RETURN TRUE ENDIF BREAK CASE 352 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(KANJOSJ) RETURN TRUE ENDIF BREAK CASE 353 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(LM87) RETURN TRUE ENDIF BREAK CASE 354 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(POSTLUDE) RETURN TRUE ENDIF BREAK CASE 355 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(RHINEHART) RETURN TRUE ENDIF BREAK CASE 356 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(SM722) RETURN TRUE ENDIF BREAK CASE 357 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(TENF) RETURN TRUE ENDIF BREAK CASE 358 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(TENF2) RETURN TRUE ENDIF BREAK CASE 359 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(TORERO2) RETURN TRUE ENDIF BREAK CASE 360 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(VIGERO2) RETURN TRUE ENDIF BREAK CASE 361 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(WEEVIL2) RETURN TRUE ENDIF BREAK CASE 362 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(BRIOSO3) RETURN TRUE ENDIF BREAK CASE 363 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(RUINER4) RETURN TRUE ENDIF BREAK CASE 364 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(SENTINEL4) RETURN TRUE ENDIF BREAK CASE 365 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(CONADA) RETURN TRUE ENDIF BREAK CASE 366 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(OMNISEGT) RETURN TRUE ENDIF BREAK #ENDIF #IF FEATURE_GEN9_EXCLUSIVE #IF NOT FEATURE_DLC_1_2022 CASE 349 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(S95) RETURN TRUE ENDIF BREAK CASE 350 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(ARBITERGT) RETURN TRUE ENDIF BREAK CASE 351 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(ASTRON2) RETURN TRUE ENDIF BREAK CASE 352 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(CYCLONE2) RETURN TRUE ENDIF BREAK CASE 353 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(IGNUS2) RETURN TRUE ENDIF BREAK #ENDIF #IF FEATURE_DLC_1_2022 CASE 367 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(S95) RETURN TRUE ENDIF BREAK CASE 368 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(ARBITERGT) RETURN TRUE ENDIF BREAK CASE 369 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(ASTRON2) RETURN TRUE ENDIF BREAK CASE 370 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(CYCLONE2) RETURN TRUE ENDIF BREAK CASE 371 IF !IS_VEHICLE_AVAILABLE_PAST_CURRENT_TIME(IGNUS2) RETURN TRUE ENDIF BREAK #ENDIF #ENDIF // Always add to end and don't mess the vehicle orders ENDSWITCH RETURN FALSE ENDFUNC #IF FEATURE_TUNER FUNC MODEL_NAMES GET_TUNER_FORBIDDEN_MP_VEHICLE_FROM_INDEX(INT iIndex) SWITCH iIndex CASE 315 RETURN CALICO CASE 316 RETURN COMET6 CASE 317 RETURN CYPHER CASE 318 RETURN DOMINATOR7 CASE 319 RETURN JESTER4 CASE 320 RETURN REMUS CASE 321 RETURN VECTRE CASE 322 RETURN ZR350 CASE 323 RETURN WARRENER2 CASE 324 RETURN RT3000 CASE 325 RETURN FUTO2 CASE 326 RETURN TAILGATER2 CASE 327 RETURN SULTAN3 CASE 328 RETURN DOMINATOR8 CASE 329 RETURN EUROS CASE 330 RETURN GROWLER CASE 331 RETURN PREVION ENDSWITCH RETURN DUMMY_MODEL_FOR_SCRIPT ENDFUNC #ENDIF /// PURPOSE: /// Determines if it's ok to delete any forbidden vehicles from SP, which shouldn't happen /// if there are any ongoing transitions, skyswooping etc /// RETURNS: /// FUNC BOOL CAN_SAFELY_REMOVE_FORBIDDEN_MP_VEHICLE_FROM_SP(INT iForbiddenVehIndex) MODEL_NAMES theModel #IF IS_DEBUG_BUILD IF GET_COMMANDLINE_PARAM_EXISTS("sc_AllowAllCars") RETURN FALSE ENDIF #ENDIF IF IS_PLAYER_SWITCH_IN_PROGRESS() #IF IS_DEBUG_BUILD IF GET_FRAME_COUNT() % 60 = 0 CDEBUG3LN(DEBUG_SHOPS, "CAN_SAFELY_REMOVE_FORBIDDEN_MP_VEHICLE_FROM_SP - NO: Network game is in progress or player switch is in progress.") ENDIF #ENDIF RETURN FALSE ENDIF IF g_bDisableForbiddenVehicleRemoval #IF IS_DEBUG_BUILD IF GET_FRAME_COUNT() % 60 = 0 CDEBUG3LN(DEBUG_SHOPS, "CAN_SAFELY_REMOVE_FORBIDDEN_MP_VEHICLE_FROM_SP - NO: Disabled.") ENDIF #ENDIF RETURN FALSE ENDIF IF g_bForceEnableForbiddenVehicleRemoval #IF IS_DEBUG_BUILD IF GET_FRAME_COUNT() % 60 = 0 CDEBUG3LN(DEBUG_SHOPS, "CAN_SAFELY_REMOVE_FORBIDDEN_MP_VEHICLE_FROM_SP - YES: Force Enabled.") ENDIF #ENDIF RETURN TRUE ENDIF IF IS_TRANSITION_ACTIVE() OR IS_SKYSWOOP_MOVING() OR IS_SKYSWOOP_IN_SKY() OR BUSYSPINNER_IS_ON() #IF IS_DEBUG_BUILD IF GET_FRAME_COUNT() % 60 = 0 CDEBUG3LN(DEBUG_SHOPS, "CAN_SAFELY_REMOVE_FORBIDDEN_MP_VEHICLE_FROM_SP - NO: Transition is active or skyswoop in progress or busyspinner is on.") ENDIF #ENDIF RETURN FALSE ENDIF IF GET_JOINING_GAMEMODE() != GAMEMODE_EMPTY #IF IS_DEBUG_BUILD IF GET_FRAME_COUNT() % 60 = 0 CDEBUG3LN(DEBUG_SHOPS, "CAN_SAFELY_REMOVE_FORBIDDEN_MP_VEHICLE_FROM_SP - NO: We are joining game mode.") ENDIF #ENDIF RETURN FALSE ENDIF IF NETWORK_WAS_GAME_SUSPENDED() #IF IS_DEBUG_BUILD IF GET_FRAME_COUNT() % 60 = 0 CDEBUG3LN(DEBUG_SHOPS, "CAN_SAFELY_REMOVE_FORBIDDEN_MP_VEHICLE_FROM_SP - NO: Game is suspended.") ENDIF #ENDIF RETURN FALSE ENDIF IF HAS_RESUMED_FROM_SUSPEND() #IF IS_DEBUG_BUILD IF GET_FRAME_COUNT() % 60 = 0 CDEBUG3LN(DEBUG_SHOPS, "CAN_SAFELY_REMOVE_FORBIDDEN_MP_VEHICLE_FROM_SP - NO: this is MP HAS_RESUMED_FROM_SUSPEND is true.") ENDIF #ENDIF RETURN FALSE ENDIF IF NETWORK_IS_GAME_IN_PROGRESS() IF iForbiddenVehIndex = -1 // Skip ELSE IF !g_bHasCopiedAllTunableValuesToScriptGlobals #IF IS_DEBUG_BUILD IF GET_FRAME_COUNT() % 60 = 0 CDEBUG3LN(DEBUG_SHOPS, "CAN_SAFELY_REMOVE_FORBIDDEN_MP_VEHICLE_FROM_SP - NO: g_bHasCopiedAllTunableValuesToScriptGlobals is false.") ENDIF #ENDIF RETURN FALSE ENDIF IF !SHOULD_REMOVE_FORBIDDEN_VEHICLE_FROM_MP(iForbiddenVehIndex) #IF IS_DEBUG_BUILD IF GET_FRAME_COUNT() % 60 = 0 CDEBUG3LN(DEBUG_SHOPS, "CAN_SAFELY_REMOVE_FORBIDDEN_MP_VEHICLE_FROM_SP - NO: this is MP SHOULD_REMOVE_FORBIDDEN_VEHICLE_FROM_MP is false.") ENDIF #ENDIF RETURN FALSE ENDIF SWITCH iForbiddenVehIndex // SQUADDIE CASE 312 //Dinghy5 CASE 309 // VERUS CASE 297 // VETIR CASE 306 // MANCHEZ2 CASE 294 IF IS_PLAYER_ON_HEIST_ISLAND(PLAYER_ID()) OR IS_PLAYER_IN_WARP_TRANSITION(PLAYER_ID()) #IF IS_DEBUG_BUILD IF GET_FRAME_COUNT() % 60 = 0 CDEBUG3LN(DEBUG_SHOPS, "CAN_SAFELY_REMOVE_FORBIDDEN_MP_VEHICLE_FROM_SP - NO: this is MP player IS_PLAYER_ON_HEIST_ISLAND don't remove iForbiddenVehIndex = ",iForbiddenVehIndex ) ENDIF #ENDIF RETURN FALSE ENDIF BREAK // ITALIRSX CASE 311 IF GB_IS_LOCAL_PLAYER_MEMBER_OF_A_GANG() AND GB_IS_PLAYER_CRITICAL_TO_JOB(PLAYER_ID()) AND GB_GET_PLAYER_CURRENT_GANG_BOSS_MISSION(PLAYER_ID()) = FMMC_TYPE_ISLAND_DJ_MISSION #IF IS_DEBUG_BUILD IF GET_FRAME_COUNT() % 60 = 0 CDEBUG3LN(DEBUG_SHOPS, "CAN_SAFELY_REMOVE_FORBIDDEN_MP_VEHICLE_FROM_SP - NO: this is MP player in FMMC_TYPE_ISLAND_DJ_MISSION don't remove ITALIRSX") ENDIF #ENDIF RETURN FALSE ENDIF BREAK // JESTER4 CASE 319 IF GB_GET_TUNER_ROBBERY_PREP_PLAYER_IS_ON(PLAYER_ID()) = TRV_ELEVATOR_PASS #IF IS_DEBUG_BUILD IF GET_FRAME_COUNT() % 60 = 0 CDEBUG3LN(DEBUG_SHOPS, "CAN_SAFELY_REMOVE_FORBIDDEN_MP_VEHICLE_FROM_SP - NO: this is MP player in TRV_ELEVATOR_PASS don't remove JESTER4") ENDIF #ENDIF RETURN FALSE ENDIF IF IS_PLAYER_IN_CAR_MEET_PROPERTY(PLAYER_ID()) OR IS_PLAYER_MOVING_FROM_SHOWROOM_TO_SANDBOX_AREA(PLAYER_ID()) OR IS_PLAYER_MOVING_FROM_SANDBOX_AREA_TO_SHOWROOM(PLAYER_ID()) theModel = GET_TUNER_FORBIDDEN_MP_VEHICLE_FROM_INDEX(iForbiddenVehIndex) IF ENUM_TO_INT(theModel) = g_sMPTunables.iPROMO_TEST_DRIVE_VEHICLE_1_MODEL_HASH OR ENUM_TO_INT(theModel) = g_sMPTunables.iPROMO_TEST_DRIVE_VEHICLE_2_MODEL_HASH OR ENUM_TO_INT(theModel) = g_sMPTunables.iPROMO_TEST_DRIVE_VEHICLE_3_MODEL_HASH #IF IS_DEBUG_BUILD IF GET_FRAME_COUNT() % 60 = 0 CDEBUG3LN(DEBUG_SHOPS, "CAN_SAFELY_REMOVE_FORBIDDEN_MP_VEHICLE_FROM_SP - NO: this is MP player in car meet and this is promotion vehicle# ",iForbiddenVehIndex) ENDIF #ENDIF RETURN FALSE ENDIF ENDIF BREAK // COMET6 CASE 316 forbiddenModel = COMET6 BREAK CASE 316 IF GB_GET_TUNER_ROBBERY_PREP_PLAYER_IS_ON(PLAYER_ID()) = TRV_VAULT_KEY_CODES #IF IS_DEBUG_BUILD IF GET_FRAME_COUNT() % 60 = 0 CDEBUG3LN(DEBUG_SHOPS, "CAN_SAFELY_REMOVE_FORBIDDEN_MP_VEHICLE_FROM_SP - NO: this is MP player in TRV_VAULT_KEY_CODES don't remove COMET6") ENDIF #ENDIF RETURN FALSE ENDIF IF IS_PLAYER_IN_CAR_MEET_PROPERTY(PLAYER_ID()) OR IS_PLAYER_MOVING_FROM_SHOWROOM_TO_SANDBOX_AREA(PLAYER_ID()) OR IS_PLAYER_MOVING_FROM_SANDBOX_AREA_TO_SHOWROOM(PLAYER_ID()) theModel = GET_TUNER_FORBIDDEN_MP_VEHICLE_FROM_INDEX(iForbiddenVehIndex) IF ENUM_TO_INT(theModel) = g_sMPTunables.iPROMO_TEST_DRIVE_VEHICLE_1_MODEL_HASH OR ENUM_TO_INT(theModel) = g_sMPTunables.iPROMO_TEST_DRIVE_VEHICLE_2_MODEL_HASH OR ENUM_TO_INT(theModel) = g_sMPTunables.iPROMO_TEST_DRIVE_VEHICLE_3_MODEL_HASH #IF IS_DEBUG_BUILD IF GET_FRAME_COUNT() % 60 = 0 CDEBUG3LN(DEBUG_SHOPS, "CAN_SAFELY_REMOVE_FORBIDDEN_MP_VEHICLE_FROM_SP - NO: this is MP player in car meet and this is promotion vehicle# ",iForbiddenVehIndex) ENDIF #ENDIF RETURN FALSE ENDIF ENDIF BREAK CASE 315 //CALICO) //CASE 316 //COMET6) CASE 317 //CYPHER) CASE 318 //DOMINATOR7) //CASE 319 //JESTER4) CASE 320 //REMUS) CASE 321 //VECTRE) CASE 322 //ZR350) CASE 323 //WARRENER2) CASE 324 //RT3000) CASE 325 //FUTO2) CASE 326 //TAILGATER2) CASE 327 //SULTAN3) CASE 328 //DOMINATOR8) CASE 329 //EUROS) CASE 330 //GROWLER) CASE 331 //PREVION) IF IS_PLAYER_IN_CAR_MEET_PROPERTY(PLAYER_ID()) OR IS_PLAYER_MOVING_FROM_SHOWROOM_TO_SANDBOX_AREA(PLAYER_ID()) OR IS_PLAYER_MOVING_FROM_SANDBOX_AREA_TO_SHOWROOM(PLAYER_ID()) theModel = GET_TUNER_FORBIDDEN_MP_VEHICLE_FROM_INDEX(iForbiddenVehIndex) IF ENUM_TO_INT(theModel) = g_sMPTunables.iPROMO_TEST_DRIVE_VEHICLE_1_MODEL_HASH OR ENUM_TO_INT(theModel) = g_sMPTunables.iPROMO_TEST_DRIVE_VEHICLE_2_MODEL_HASH OR ENUM_TO_INT(theModel) = g_sMPTunables.iPROMO_TEST_DRIVE_VEHICLE_3_MODEL_HASH #IF IS_DEBUG_BUILD IF GET_FRAME_COUNT() % 60 = 0 CDEBUG3LN(DEBUG_SHOPS, "CAN_SAFELY_REMOVE_FORBIDDEN_MP_VEHICLE_FROM_SP - NO: this is MP player in car meet and this is promotion vehicle# ",iForbiddenVehIndex) ENDIF #ENDIF RETURN FALSE ENDIF ENDIF BREAK #IF FEATURE_FIXER CASE 333 //BALLER7) IF g_sMPTunables.bFIXER_EARLY_ACCESS_BALLER7 RETURN FALSE ENDIF BREAK #ENDIF ENDSWITCH ENDIF ENDIF #IF IS_DEBUG_BUILD IF GET_FRAME_COUNT() % 60 = 0 CDEBUG3LN(DEBUG_SHOPS, "CAN_SAFELY_REMOVE_FORBIDDEN_MP_VEHICLE_FROM_SP - YES.") ENDIF #ENDIF RETURN TRUE ENDFUNC /// PURPOSE: /// Check a given forbidden vehicle and remove it if its found in the vicinity of the player /// This is meant to be used with a staggered loop that goes through forbidden vehicles one by one /// PARAMS: /// iForbiddenVehIndex - PROC REMOVE_FORBIDDEN_MP_VEHICLE_FROM_SP(INT iForbiddenVehIndex) IF NOT CAN_SAFELY_REMOVE_FORBIDDEN_MP_VEHICLE_FROM_SP(iForbiddenVehIndex) EXIT ENDIF MODEL_NAMES forbiddenModel = DUMMY_MODEL_FOR_SCRIPT VEHICLE_INDEX forbiddenVeh BOOL bRemoveForbiddenVeh = FALSE // This list starts with lowrider2 vehicles since that's when this feature is introduced but this list should be expanded with any future blocked vehicles SWITCH iForbiddenVehIndex CASE 0 forbiddenModel = FACTION3 BREAK CASE 1 forbiddenModel = MINIVAN2 BREAK CASE 2 forbiddenModel = SABREGT2 BREAK CASE 3 forbiddenModel = SLAMVAN3 BREAK CASE 4 forbiddenModel = TORNADO5 BREAK CASE 5 forbiddenModel = VIRGO2 BREAK CASE 6 forbiddenModel = VIRGO3 BREAK CASE 7 forbiddenModel = PROTOTIPO BREAK CASE 8 forbiddenModel = SEVEN70 BREAK CASE 9 forbiddenModel = PFISTER811 BREAK CASE 10 forbiddenModel = BF400 BREAK CASE 11 forbiddenModel = BRIOSO BREAK CASE 12 forbiddenModel = CLIFFHANGER BREAK CASE 13 forbiddenModel = CONTENDER BREAK CASE 14 forbiddenModel = LE7B BREAK CASE 15 forbiddenModel = OMNIS BREAK CASE 16 forbiddenModel = TROPHYTRUCK BREAK CASE 17 forbiddenModel = TROPHYTRUCK2 BREAK CASE 18 forbiddenModel = TROPOS BREAK CASE 19 forbiddenModel = GARGOYLE BREAK CASE 20 forbiddenModel = RALLYTRUCK BREAK CASE 21 forbiddenModel = TAMPA2 BREAK CASE 22 forbiddenModel = TYRUS BREAK CASE 23 forbiddenModel = LYNX BREAK CASE 24 forbiddenModel = SHEAVA BREAK CASE 25 forbiddenModel = ESSKEY BREAK CASE 26 forbiddenModel = NIGHTBLADE BREAK CASE 27 forbiddenModel = DEFILER BREAK CASE 28 forbiddenModel = AVARUS BREAK CASE 29 forbiddenModel = ZOMBIEA BREAK CASE 30 forbiddenModel = ZOMBIEB BREAK CASE 31 forbiddenModel = HAKUCHOU2 BREAK CASE 32 forbiddenModel = VORTEX BREAK CASE 33 forbiddenModel = CHIMERA BREAK CASE 34 forbiddenModel = RAPTOR BREAK CASE 35 forbiddenModel = DAEMON2 BREAK CASE 36 forbiddenModel = RATBIKE BREAK CASE 37 forbiddenModel = WOLFSBANE BREAK CASE 38 forbiddenModel = BLAZER4 BREAK CASE 39 forbiddenModel = SHOTARO BREAK CASE 40 forbiddenModel = TORNADO6 BREAK CASE 41 forbiddenModel = SANCTUS BREAK CASE 42 forbiddenModel = YOUGA2 BREAK CASE 43 forbiddenModel = MANCHEZ BREAK CASE 44 forbiddenModel = FAGGIO3 BREAK CASE 45 forbiddenModel = FAGGIO BREAK CASE 46 forbiddenModel = VOLTIC2 BREAK CASE 47 forbiddenModel = RUINER2 BREAK CASE 48 forbiddenModel = DUNE4 BREAK CASE 49 forbiddenModel = DUNE5 BREAK CASE 50 forbiddenModel = PHANTOM2 BREAK CASE 51 forbiddenModel = TECHNICAL2 BREAK CASE 52 forbiddenModel = BOXVILLE5 BREAK CASE 53 forbiddenModel = WASTELANDER BREAK CASE 54 forbiddenModel = BLAZER5 BREAK CASE 55 forbiddenModel = COMET3 BREAK CASE 56 forbiddenModel = DIABLOUS BREAK CASE 57 forbiddenModel = DIABLOUS2 BREAK CASE 58 forbiddenModel = ELEGY BREAK CASE 59 forbiddenModel = FCR BREAK CASE 60 forbiddenModel = FCR2 BREAK CASE 61 forbiddenModel = ITALIGTB BREAK CASE 62 forbiddenModel = ITALIGTB2 BREAK CASE 63 forbiddenModel = NERO BREAK CASE 64 forbiddenModel = NERO2 BREAK CASE 65 forbiddenModel = PENETRATOR BREAK CASE 66 forbiddenModel = SPECTER BREAK CASE 67 forbiddenModel = SPECTER2 BREAK CASE 68 forbiddenModel = TEMPESTA BREAK CASE 69 forbiddenModel = GP1 BREAK CASE 70 forbiddenModel = INFERNUS2 BREAK CASE 71 forbiddenModel = RUSTON BREAK CASE 72 forbiddenModel = TURISMO2 BREAK CASE 73 forbiddenModel = ARDENT BREAK CASE 74 forbiddenModel = VAGNER BREAK CASE 75 forbiddenModel = CHEETAH2 BREAK CASE 76 forbiddenModel = NIGHTSHARK BREAK CASE 77 forbiddenModel = TORERO BREAK CASE 78 forbiddenModel = XA21 BREAK CASE 79 forbiddenModel = CADDY3 BREAK CASE 80 forbiddenModel = INSURGENT3 BREAK CASE 81 forbiddenModel = TECHNICAL3 BREAK CASE 82 forbiddenModel = APC BREAK CASE 83 forbiddenModel = DUNE3 BREAK CASE 84 forbiddenModel = HALFTRACK BREAK CASE 85 forbiddenModel = TRAILERSMALL2 BREAK CASE 86 forbiddenModel = OPPRESSOR BREAK CASE 87 forbiddenModel = TAMPA3 BREAK CASE 88 forbiddenModel = HAULER2 BREAK CASE 89 forbiddenModel = PHANTOM3 BREAK CASE 90 forbiddenModel = TRAILERLARGE BREAK CASE 91 forbiddenModel = HAVOK BREAK CASE 92 forbiddenModel = HUNTER BREAK CASE 93 forbiddenModel = MICROLIGHT BREAK CASE 94 forbiddenModel = MOGUL BREAK CASE 95 forbiddenModel = ROGUE BREAK CASE 96 forbiddenModel = STARLING BREAK CASE 97 forbiddenModel = SEABREEZE BREAK CASE 98 forbiddenModel = TULA BREAK CASE 99 forbiddenModel = ALPHAZ1 BREAK CASE 100 forbiddenModel = HOWARD BREAK CASE 101 forbiddenModel = PYRO BREAK CASE 102 forbiddenModel = BOMBUSHKA BREAK CASE 103 forbiddenModel = MOLOTOK BREAK CASE 104 forbiddenModel = NOKOTA BREAK CASE 105 forbiddenModel = CYCLONE BREAK CASE 106 forbiddenModel = VISIONE BREAK CASE 107 forbiddenModel = VIGILANTE BREAK CASE 108 forbiddenModel = RETINUE BREAK CASE 109 forbiddenModel = RAPIDGT3 BREAK CASE 110 forbiddenModel = DELUXO BREAK CASE 111 forbiddenModel = STROMBERG BREAK CASE 112 forbiddenModel = RIOT2 BREAK CASE 113 forbiddenModel = CHERNOBOG BREAK CASE 114 forbiddenModel = KHANJALI BREAK CASE 115 forbiddenModel = AKULA BREAK CASE 116 forbiddenModel = THRUSTER BREAK CASE 117 forbiddenModel = AVENGER BREAK CASE 118 forbiddenModel = BARRAGE BREAK CASE 119 forbiddenModel = VOLATOL BREAK CASE 120 forbiddenModel = COMET4 BREAK CASE 121 forbiddenModel = NEON BREAK CASE 122 forbiddenModel = STREITER BREAK CASE 123 forbiddenModel = SENTINEL3 BREAK CASE 124 forbiddenModel = YOSEMITE BREAK CASE 125 forbiddenModel = SC1 BREAK CASE 126 forbiddenModel = AUTARCH BREAK CASE 127 forbiddenModel = GT500 BREAK CASE 128 forbiddenModel = HUSTLER BREAK CASE 129 forbiddenModel = REVOLTER BREAK CASE 130 forbiddenModel = PARIAH BREAK CASE 131 forbiddenModel = RAIDEN BREAK CASE 132 forbiddenModel = SAVESTRA BREAK CASE 133 forbiddenModel = RIATA BREAK CASE 134 forbiddenModel = HERMES BREAK CASE 135 forbiddenModel = COMET5 BREAK CASE 136 forbiddenModel = Z190 BREAK CASE 137 forbiddenModel = VISERIS BREAK CASE 138 forbiddenModel = KAMACHO BREAK CASE 139 forbiddenModel = GB200 BREAK CASE 140 forbiddenModel = FAGALOA BREAK CASE 141 forbiddenModel = ELLIE BREAK CASE 142 forbiddenModel = ISSI3 BREAK CASE 143 forbiddenModel = MICHELLI BREAK CASE 144 forbiddenModel = FLASHGT BREAK CASE 145 forbiddenModel = HOTRING BREAK CASE 146 forbiddenModel = TEZERACT BREAK CASE 147 forbiddenModel = TYRANT BREAK CASE 148 forbiddenModel = DOMINATOR3 BREAK CASE 149 forbiddenModel = TAIPAN BREAK CASE 150 forbiddenModel = ENTITY2 BREAK CASE 151 forbiddenModel = JESTER3 BREAK CASE 152 forbiddenModel = CHEBUREK BREAK CASE 153 forbiddenModel = CARACARA BREAK CASE 154 forbiddenModel = SEASPARROW BREAK CASE 155 forbiddenModel = BLIMP3 BREAK CASE 156 forbiddenModel = FREECRAWLER BREAK CASE 157 forbiddenModel = MENACER BREAK CASE 158 forbiddenModel = MULE4 BREAK CASE 159 forbiddenModel = OPPRESSOR2 BREAK CASE 160 forbiddenModel = PATRIOT2 BREAK CASE 161 forbiddenModel = PBUS2 BREAK CASE 162 forbiddenModel = POUNDER2 BREAK CASE 163 forbiddenModel = SCRAMJET BREAK CASE 164 forbiddenModel = SPEEDO4 BREAK CASE 165 forbiddenModel = STAFFORD BREAK CASE 166 forbiddenModel = STRIKEFORCE BREAK CASE 167 forbiddenModel = SWINGER BREAK CASE 168 forbiddenModel = TERBYTE BREAK ENDSWITCH SWITCH iForbiddenVehIndex CASE 169 forbiddenModel = MONSTER3 BREAK CASE 170 forbiddenModel = MONSTER4 BREAK CASE 171 forbiddenModel = MONSTER5 BREAK CASE 172 forbiddenModel = CERBERUS BREAK CASE 173 forbiddenModel = CERBERUS2 BREAK CASE 174 forbiddenModel = CERBERUS3 BREAK CASE 175 forbiddenModel = BRUISER BREAK CASE 176 forbiddenModel = BRUISER2 BREAK CASE 177 forbiddenModel = BRUISER3 BREAK CASE 178 forbiddenModel = SLAMVAN4 BREAK CASE 179 forbiddenModel = SLAMVAN5 BREAK CASE 180 forbiddenModel = SLAMVAN6 BREAK CASE 181 forbiddenModel = BRUTUS BREAK CASE 182 forbiddenModel = BRUTUS2 BREAK CASE 183 forbiddenModel = BRUTUS3 BREAK CASE 184 forbiddenModel = SCARAB BREAK CASE 185 forbiddenModel = SCARAB2 BREAK CASE 186 forbiddenModel = SCARAB3 BREAK CASE 187 forbiddenModel = DOMINATOR4 BREAK CASE 188 forbiddenModel = DOMINATOR5 BREAK CASE 189 forbiddenModel = DOMINATOR6 BREAK CASE 190 forbiddenModel = IMPALER2 BREAK CASE 191 forbiddenModel = IMPALER3 BREAK CASE 192 forbiddenModel = IMPALER4 BREAK CASE 193 forbiddenModel = ISSI4 BREAK CASE 194 forbiddenModel = ISSI5 BREAK CASE 195 forbiddenModel = ISSI6 BREAK CASE 196 forbiddenModel = IMPERATOR BREAK CASE 197 forbiddenModel = IMPERATOR2 BREAK CASE 198 forbiddenModel = IMPERATOR3 BREAK CASE 199 forbiddenModel = ZR380 BREAK CASE 200 forbiddenModel = ZR3802 BREAK CASE 201 forbiddenModel = ZR3803 BREAK CASE 202 forbiddenModel = DEATHBIKE BREAK CASE 203 forbiddenModel = DEATHBIKE2 BREAK CASE 204 forbiddenModel = DEATHBIKE3 BREAK CASE 205 forbiddenModel = DEVESTE BREAK CASE 206 forbiddenModel = IMPALER BREAK CASE 207 forbiddenModel = VAMOS BREAK CASE 208 forbiddenModel = TOROS BREAK CASE 209 forbiddenModel = CLIQUE BREAK CASE 210 forbiddenModel = ITALIGTO BREAK CASE 211 forbiddenModel = DEVIANT BREAK CASE 212 forbiddenModel = TULIP BREAK CASE 213 forbiddenModel = SCHLAGEN BREAK CASE 214 forbiddenModel = RCBANDITO BREAK CASE 215 forbiddenModel = CARACARA2 BREAK CASE 216 forbiddenModel = DRAFTER BREAK CASE 217 forbiddenModel = DYNASTY BREAK CASE 218 forbiddenModel = GAUNTLET3 BREAK CASE 219 forbiddenModel = GAUNTLET4 BREAK CASE 220 forbiddenModel = HELLION BREAK CASE 221 forbiddenModel = ISSI7 BREAK CASE 222 forbiddenModel = KRIEGER BREAK CASE 223 forbiddenModel = LOCUST BREAK CASE 224 forbiddenModel = NEBULA BREAK CASE 225 forbiddenModel = NEO BREAK CASE 226 forbiddenModel = NOVAK BREAK CASE 227 forbiddenModel = S80 BREAK CASE 228 forbiddenModel = THRAX BREAK CASE 229 forbiddenModel = ZION3 BREAK CASE 230 forbiddenModel = ZORRUSSO BREAK CASE 231 forbiddenModel = EMERUS BREAK CASE 232 forbiddenModel = KRIEGER BREAK CASE 233 forbiddenModel = PEYOTE2 BREAK CASE 234 forbiddenModel = RROCKET BREAK CASE 235 forbiddenModel = JUGULAR BREAK CASE 236 forbiddenModel = PARAGON BREAK CASE 237 forbiddenModel = PARAGON2 BREAK CASE 238 forbiddenModel = ASBO BREAK CASE 239 forbiddenModel = KANJO BREAK CASE 240 forbiddenModel = FORMULA BREAK CASE 241 forbiddenModel = IMORGON BREAK CASE 242 forbiddenModel = KOMODA BREAK CASE 243 forbiddenModel = MANANA2 BREAK // CASE 244 forbiddenModel = PRIMO3 BREAK CASE 245 forbiddenModel = REBLA BREAK CASE 246 forbiddenModel = SUGOI BREAK CASE 247 forbiddenModel = YOUGA3 BREAK CASE 248 forbiddenModel = ZHABA BREAK CASE 249 forbiddenModel = VSTR BREAK CASE 250 forbiddenModel = EVERON BREAK CASE 251 forbiddenModel = SULTAN2 BREAK CASE 252 forbiddenModel = JB7002 BREAK CASE 253 forbiddenModel = OUTLAW BREAK CASE 260 forbiddenModel = STRYDER BREAK CASE 261 forbiddenModel = VAGRANT BREAK CASE 262 forbiddenModel = FORMULA2 BREAK CASE 263 forbiddenModel = FURIA BREAK CASE 264 forbiddenModel = YOSEMITE2 BREAK CASE 265 forbiddenModel = RETINUE2 BREAK CASE 266 forbiddenModel = MINITANK BREAK #IF FEATURE_SUMMER_2020 CASE 267 forbiddenModel = GAUNTLET5 BREAK CASE 268 forbiddenModel = CLUB BREAK CASE 269 forbiddenModel = DUKES3 BREAK CASE 270 forbiddenModel = YOSEMITE3 BREAK CASE 271 forbiddenModel = PEYOTE3 BREAK CASE 272 forbiddenModel = GLENDALE2 BREAK CASE 273 forbiddenModel = PENUMBRA2 BREAK CASE 274 forbiddenModel = LANDSTALKER2 BREAK CASE 275 forbiddenModel = SEMINOLE2 BREAK CASE 276 forbiddenModel = TIGON BREAK CASE 277 forbiddenModel = OPENWHEEL1 BREAK CASE 278 forbiddenModel = COQUETTE4 BREAK CASE 279 forbiddenModel = OPENWHEEL2 BREAK #ENDIF #IF FEATURE_COPS_N_CROOKS CASE 280 forbiddenModel = POLGREENWOOD BREAK CASE 281 forbiddenModel = POLRIATA BREAK CASE 282 forbiddenModel = SURFER3 BREAK CASE 283 forbiddenModel = ZOKU BREAK CASE 284 forbiddenModel = POLBATI BREAK CASE 285 forbiddenModel = POLBUFFALO BREAK CASE 286 forbiddenModel = POLGAUNTLET BREAK CASE 287 forbiddenModel = POLGRANGER BREAK CASE 288 forbiddenModel = POLICE5 BREAK CASE 289 forbiddenModel = POLICE6 BREAK CASE 290 forbiddenModel = POLICEB2 BREAK CASE 291 forbiddenModel = POLICET2 BREAK CASE 292 forbiddenModel = POLPANTO BREAK CASE 293 forbiddenModel = POLCARACARA BREAK #ENDIF #IF FEATURE_HEIST_ISLAND CASE 294 forbiddenModel = MANCHEZ2 BREAK CASE 295 forbiddenModel = BRIOSO2 BREAK CASE 296 forbiddenModel = WINKY BREAK CASE 297 forbiddenModel = VERUS BREAK CASE 298 forbiddenModel = ALKONOST BREAK CASE 299 forbiddenModel = AVISA BREAK CASE 300 forbiddenModel = KOSATKA BREAK CASE 301 forbiddenModel = LONGFIN BREAK CASE 302 forbiddenModel = PATROLBOAT BREAK CASE 303 forbiddenModel = SEASPARROW2 BREAK CASE 304 forbiddenModel = SEASPARROW3 BREAK CASE 305 forbiddenModel = SLAMTRUCK BREAK CASE 306 forbiddenModel = VETIR BREAK CASE 307 forbiddenModel = TOREADOR BREAK CASE 308 forbiddenModel = ANNIHILATOR2 BREAK CASE 309 forbiddenModel = DINGHY5 BREAK CASE 310 forbiddenModel = WEEVIL BREAK CASE 311 forbiddenModel = ITALIRSX BREAK CASE 312 forbiddenModel = SQUADDIE BREAK CASE 313 forbiddenModel = VETO BREAK CASE 314 forbiddenModel = VETO2 BREAK #ENDIF CASE 315 forbiddenModel = CALICO BREAK CASE 316 forbiddenModel = COMET6 BREAK CASE 317 forbiddenModel = CYPHER BREAK CASE 318 forbiddenModel = DOMINATOR7 BREAK CASE 319 forbiddenModel = JESTER4 BREAK CASE 320 forbiddenModel = REMUS BREAK CASE 321 forbiddenModel = VECTRE BREAK CASE 322 forbiddenModel = ZR350 BREAK CASE 323 forbiddenModel = WARRENER2 BREAK CASE 324 forbiddenModel = RT3000 BREAK CASE 325 forbiddenModel = FUTO2 BREAK CASE 326 forbiddenModel = TAILGATER2 BREAK CASE 327 forbiddenModel = SULTAN3 BREAK CASE 328 forbiddenModel = DOMINATOR8 BREAK CASE 329 forbiddenModel = EUROS BREAK CASE 330 forbiddenModel = GROWLER BREAK CASE 331 forbiddenModel = PREVION BREAK CASE 332 forbiddenModel = ASTRON BREAK CASE 333 forbiddenModel = BALLER7 BREAK CASE 334 forbiddenModel = BUFFALO4 BREAK CASE 335 forbiddenModel = COMET7 BREAK CASE 336 forbiddenModel = DEITY BREAK CASE 337 forbiddenModel = GRANGER2 BREAK CASE 338 forbiddenModel = IGNUS BREAK CASE 339 forbiddenModel = JUBILEE BREAK CASE 340 forbiddenModel = PATRIOT3 BREAK CASE 341 forbiddenModel = YOUGA4 BREAK CASE 342 forbiddenModel = ZENO BREAK CASE 343 forbiddenModel = MULE5 BREAK CASE 344 forbiddenModel = CINQUEMILA BREAK CASE 345 forbiddenModel = CHAMPION BREAK CASE 346 forbiddenModel = REEVER BREAK CASE 347 forbiddenModel = SHINOBI BREAK CASE 348 forbiddenModel = IWAGEN BREAK #IF FEATURE_DLC_1_2022 CASE 349 forbiddenModel = CORSITA BREAK CASE 350 forbiddenModel = DRAUGUR BREAK CASE 351 forbiddenModel = GREENWOOD BREAK CASE 352 forbiddenModel = KANJOSJ BREAK CASE 353 forbiddenModel = LM87 BREAK CASE 354 forbiddenModel = POSTLUDE BREAK CASE 355 forbiddenModel = RHINEHART BREAK CASE 356 forbiddenModel = SM722 BREAK CASE 357 forbiddenModel = TENF BREAK CASE 358 forbiddenModel = TENF2 BREAK CASE 359 forbiddenModel = TORERO2 BREAK CASE 360 forbiddenModel = VIGERO2 BREAK CASE 361 forbiddenModel = WEEVIL2 BREAK CASE 362 forbiddenModel = BRIOSO3 BREAK CASE 363 forbiddenModel = RUINER4 BREAK CASE 364 forbiddenModel = SENTINEL4 BREAK CASE 365 forbiddenModel = CONADA BREAK CASE 366 forbiddenModel = OMNISEGT BREAK #ENDIF #IF FEATURE_GEN9_EXCLUSIVE #IF NOT FEATURE_DLC_1_2022 CASE 349 forbiddenModel = S95 BREAK CASE 350 forbiddenModel = ARBITERGT BREAK CASE 351 forbiddenModel = ASTRON2 BREAK CASE 352 forbiddenModel = CYCLONE2 BREAK CASE 353 forbiddenModel = IGNUS2 BREAK #ENDIF #IF FEATURE_DLC_1_2022 CASE 367 forbiddenModel = S95 BREAK CASE 368 forbiddenModel = ARBITERGT BREAK CASE 369 forbiddenModel = ASTRON2 BREAK CASE 370 forbiddenModel = CYCLONE2 BREAK CASE 371 forbiddenModel = IGNUS2 BREAK #ENDIF #ENDIF //Added these cases with tunables to SHOULD_REMOVE_FORBIDDEN_VEHICLE_FROM_MP //be sure to increase CONST_INT NUMBER_OF_VEHICLE_MODELS_FORBIDDEN_IN_SP 250 for any new vehicles added CASE NUMBER_OF_VEHICLE_MODELS_FORBIDDEN_IN_SP EXIT BREAK ENDSWITCH #IF IS_DEBUG_BUILD IF IS_MODEL_VALID(forbiddenModel) CDEBUG1LN(DEBUG_SHOPS, "REMOVE_FORBIDDEN_MP_VEHICLE_FROM_SP - Trying to find ", iForbiddenVehIndex, " ", GET_MODEL_NAME_FOR_DEBUG(forbiddenModel)) ELSE CDEBUG1LN(DEBUG_SHOPS, "REMOVE_FORBIDDEN_MP_VEHICLE_FROM_SP - Trying to find ", iForbiddenVehIndex, " model \"", ENUM_TO_INT(forbiddenModel), "\".") ENDIF #ENDIF INT iVehBS // Check if the player is driving a forbidden vehicle IF NOT IS_ENTITY_DEAD(PLAYER_PED_ID()) IF IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID()) forbiddenVeh = GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID()) IF DECOR_EXIST_ON(forbiddenVeh,"MPBitset") iVehBS = DECOR_GET_INT(forbiddenVeh,"MPBitset") ENDIF IF IS_BIT_SET(iVehBS, MP_DECORATOR_BS_IS_EARLY_MISSION_VEHICLE) bRemoveForbiddenVeh = FALSE #IF FEATURE_GTAO_MEMBERSHIP ElIF IS_BIT_SET(iVehBS, MP_DECORATOR_BS_IS_EARLY_MEMBER_VEHICLE) bRemoveForbiddenVeh = FALSE #ENDIF ELSE IF NOT IS_ENTITY_DEAD(forbiddenVeh) MODEL_NAMES vehModel = GET_ENTITY_MODEL(forbiddenVeh) IF IS_MODEL_VALID(vehModel) AND IS_MODEL_VALID(forbiddenModel) IF vehModel = forbiddenModel CLEAR_PED_TASKS_IMMEDIATELY(PLAYER_PED_ID()) bRemoveForbiddenVeh = TRUE ENDIF ENDIF ENDIF ENDIF ENDIF ENDIF // If they are not driving it maybe it's somewhere near? IF NOT bRemoveForbiddenVeh INT vehSearchFlags = VEHICLE_SEARCH_FLAG_RETURN_RANDOM_VEHICLES | VEHICLE_SEARCH_FLAG_RETURN_MISSION_VEHICLES | VEHICLE_SEARCH_FLAG_ALLOW_TRAILERS IF IS_MODEL_VALID(forbiddenModel) IF IS_THIS_MODEL_A_HELI(forbiddenModel) vehSearchFlags |= VEHICLE_SEARCH_FLAG_RETURN_HELICOPTORS_ONLY ENDIF IF IS_THIS_MODEL_A_BOAT(forbiddenModel) vehSearchFlags |= VEHICLE_SEARCH_FLAG_RETURN_BOATS_ONLY ENDIF IF IS_THIS_MODEL_A_PLANE(forbiddenModel) vehSearchFlags |= VEHICLE_SEARCH_FLAG_RETURN_PLANES_ONLY ENDIF IF (forbiddenModel = BLIMP) OR (forbiddenModel = BLIMP2) OR (forbiddenModel = BLIMP3) vehSearchFlags |= VEHICLE_SEARCH_FLAG_ALLOW_BLIMPS ENDIF IF forbiddenModel = KOSATKA vehSearchFlags |= VEHICLE_SEARCH_FLAG_ALLOW_SUBMARINES ENDIF forbiddenVeh = GET_CLOSEST_VEHICLE(GET_ENTITY_COORDS(PLAYER_PED_ID()), 500.0, forbiddenModel, vehSearchFlags) IF DOES_ENTITY_EXIST(forbiddenVeh) IF DECOR_EXIST_ON(forbiddenVeh,"MPBitset") iVehBS = DECOR_GET_INT(forbiddenVeh,"MPBitset") ENDIF IF IS_BIT_SET(iVehBS, MP_DECORATOR_BS_IS_EARLY_MISSION_VEHICLE) bRemoveForbiddenVeh = FALSE #IF FEATURE_GTAO_MEMBERSHIP ELIF IS_BIT_SET(iVehBS, MP_DECORATOR_BS_IS_EARLY_MEMBER_VEHICLE) bRemoveForbiddenVeh = FALSE #ENDIF ELSE IF NOT IS_ENTITY_DEAD(forbiddenVeh) bRemoveForbiddenVeh = TRUE ENDIF ENDIF ENDIF ENDIF ENDIF IF bRemoveForbiddenVeh IF DOES_ENTITY_EXIST(forbiddenVeh) #IF IS_DEBUG_BUILD CDEBUG1LN(DEBUG_SHOPS, "REMOVE_FORBIDDEN_MP_VEHICLE_FROM_SP - Found \"", GET_MODEL_NAME_OF_VEHICLE_FOR_DEBUG_ONLY(forbiddenVeh), "\"! Deleting.") ASSERTLN("REMOVE_FORBIDDEN_MP_VEHICLE_FROM_SP - Vehicle \"", GET_MODEL_NAME_OF_VEHICLE_FOR_DEBUG_ONLY(forbiddenVeh), "\" is forbidden in SP, deleting.") #ENDIF IF NETWORK_IS_GAME_IN_PROGRESS() IF !NETWORK_HAS_CONTROL_OF_ENTITY(forbiddenVeh) EXIT ENDIF IF NOT IS_ENTITY_A_MISSION_ENTITY(forbiddenVeh) OR NOT DOES_ENTITY_BELONG_TO_THIS_SCRIPT(forbiddenVeh) SET_ENTITY_AS_MISSION_ENTITY(forbiddenVeh, FALSE, TRUE) ENDIF ELSE IF NOT IS_ENTITY_A_MISSION_ENTITY(forbiddenVeh) OR NOT DOES_ENTITY_BELONG_TO_THIS_SCRIPT(forbiddenVeh) SET_ENTITY_AS_MISSION_ENTITY(forbiddenVeh, FALSE, FALSE) ENDIF ENDIF DELETE_VEHICLE(forbiddenVeh) ENDIF ENDIF ENDPROC FUNC BOOL SHOULD_VEH_MODEL_DISPLAY_TOPLESS_LABEL(MODEL_NAMES theModel) SWITCH theModel CASE FACTION3 CASE CONTENDER RETURN FALSE BREAK ENDSWITCH RETURN TRUE ENDFUNC // Only preload a few mods. FUNC BOOL IS_VEHICLE_MOD_SAFE_TO_PRELOAD(VEHICLE_INDEX vehID, MOD_TYPE eMod) IF eMod = MOD_BUMPER_F OR eMod = MOD_BUMPER_R OR eMod = MOD_SKIRT OR eMod = MOD_EXHAUST OR eMod = MOD_CHASSIS OR eMod = MOD_GRILL OR eMod = MOD_BONNET OR eMod = MOD_WING_L OR eMod = MOD_WING_R OR eMod = MOD_ROOF OR eMod = MOD_SPOILER OR eMod = MOD_WHEELS OR eMod = MOD_PLTHOLDER OR eMod = MOD_PLTVANITY OR eMod = MOD_INTERIOR1 OR eMod = MOD_INTERIOR2 OR eMod = MOD_INTERIOR3 OR eMod = MOD_INTERIOR4 OR eMod = MOD_INTERIOR5 OR eMod = MOD_SEATS OR eMod = MOD_STEERING OR eMod = MOD_KNOB OR eMod = MOD_PLAQUE OR eMod = MOD_ICE OR eMod = MOD_TRUNK OR eMod = MOD_HYDRO OR eMod = MOD_ENGINEBAY1 OR eMod = MOD_ENGINEBAY2 OR eMod = MOD_ENGINEBAY3 OR eMod = MOD_CHASSIS2 OR eMod = MOD_CHASSIS3 OR eMod = MOD_CHASSIS4 OR eMod = MOD_CHASSIS5 OR eMod = MOD_DOOR_L OR eMod = MOD_DOOR_R RETURN TRUE ELIF eMod = MOD_REAR_WHEELS IF IS_THIS_MODEL_A_BIKE(GET_ENTITY_MODEL(vehID)) RETURN TRUE ENDIF ENDIF RETURN FALSE ENDFUNC FUNC INT GET_ARENA_SCIFI_COL6_INDEX_FROM_NEON_INDEX(INT iNeonIndex) SWITCH iNeonIndex CASE 0 RETURN 1 CASE 1 RETURN 36 CASE 2 RETURN 35 CASE 3 RETURN 46 CASE 4 RETURN 48 CASE 5 RETURN 16 CASE 6 RETURN 14 CASE 7 RETURN 19 CASE 8 RETURN 22 CASE 9 RETURN 31 CASE 10 RETURN 30 CASE 11 RETURN 33 CASE 12 RETURN 34 ENDSWITCH RETURN 0 ENDFUNC FUNC BOOL GET_TEMP_CARMOD_DIAL_COLOUR_INDEX(INT iMenuOption, INT &iColourIndex) // MAKE SURE ANY CHANGES ALSO GO INTO GET_MENU_INDEX_FROM_CARMOD_DIAL_COLOUR_INDEX. iColourIndex = -1 SWITCH iMenuOption CASE 0 iColourIndex = 4 BREAK CASE 1 iColourIndex = 5 BREAK CASE 2 iColourIndex = 6 BREAK CASE 3 iColourIndex = 7 BREAK CASE 4 iColourIndex = 111 BREAK CASE 5 iColourIndex = 112 BREAK CASE 6 iColourIndex = 107 BREAK CASE 7 iColourIndex = 104 BREAK CASE 8 iColourIndex = 98 BREAK CASE 9 iColourIndex = 100 BREAK CASE 10 iColourIndex = 102 BREAK CASE 11 iColourIndex = 99 BREAK CASE 12 iColourIndex = 105 BREAK CASE 13 iColourIndex = 106 BREAK CASE 14 iColourIndex = 37 BREAK CASE 15 iColourIndex = 90 BREAK CASE 16 iColourIndex = 88 BREAK CASE 17 iColourIndex = 89 BREAK CASE 18 iColourIndex = 91 BREAK CASE 19 iColourIndex = 38 BREAK CASE 20 iColourIndex = 138 BREAK CASE 21 iColourIndex = 36 BREAK CASE 22 iColourIndex = 27 BREAK CASE 23 iColourIndex = 28 BREAK CASE 24 iColourIndex = 29 BREAK CASE 25 iColourIndex = 150 BREAK CASE 26 iColourIndex = 30 BREAK CASE 27 iColourIndex = 31 BREAK CASE 28 iColourIndex = 32 BREAK CASE 29 iColourIndex = 35 BREAK CASE 30 iColourIndex = 135 BREAK CASE 31 iColourIndex = 137 BREAK CASE 32 iColourIndex = 136 BREAK CASE 33 iColourIndex = 71 BREAK CASE 34 iColourIndex = 145 BREAK CASE 35 iColourIndex = 63 BREAK CASE 36 iColourIndex = 64 BREAK CASE 37 iColourIndex = 65 BREAK CASE 38 iColourIndex = 66 BREAK CASE 39 iColourIndex = 67 BREAK CASE 40 iColourIndex = 68 BREAK CASE 41 iColourIndex = 69 BREAK CASE 42 iColourIndex = 73 BREAK CASE 43 iColourIndex = 70 BREAK CASE 44 iColourIndex = 74 BREAK CASE 45 iColourIndex = 51 BREAK CASE 46 iColourIndex = 53 BREAK CASE 47 iColourIndex = 54 BREAK CASE 48 iColourIndex = 92 BREAK ENDSWITCH RETURN (iColourIndex != -1) ENDFUNC PROC SET_ARENA_SCIFI_COL6(VEHICLE_INDEX vehToSet, INT iColourIndex) INT iColIndex INT iNeonIndex = GET_ARENA_SCIFI_COL6_INDEX_FROM_NEON_INDEX(iColourIndex) GET_TEMP_CARMOD_DIAL_COLOUR_INDEX(iNeonIndex, iColIndex) SET_VEHICLE_EXTRA_COLOUR_6(vehToSet, iColIndex) ENDPROC FUNC INT GET_ARENA_SCIFI_COL6(INT iColourIndex) INT iColIndex INT iNeonIndex = GET_ARENA_SCIFI_COL6_INDEX_FROM_NEON_INDEX(iColourIndex) GET_TEMP_CARMOD_DIAL_COLOUR_INDEX(iNeonIndex, iColIndex) RETURN iColIndex ENDFUNC #IF FEATURE_TUNER FUNC BOOL MP_SAVE_TUNER_CLIENT_VEHICLE_SLOT_STATS_FROM_SAVEGAME(INT iVehSaveSlot, MP_SAVED_TUNER_CLIENT_VEHICLE_STRUCT &vehicleStruct) INT iCharacterSlot = GET_ACTIVE_CHARACTER_SLOT() INT i PRINTLN("[AUTO_SHOP_CLIENT_VEH] ----MP_SAVE_TUNER_CLIENT_VEHICLE_SLOT_STATS_FROM_SAVEGAME: START----") PRINTLN("[AUTO_SHOP_CLIENT_VEH] MP_SAVE_TUNER_CLIENT_VEHICLE_SLOT_STATS_FROM_SAVEGAME: copying data for vehicle slot #", iVehSaveSlot) PRINTLN("[AUTO_SHOP_CLIENT_VEH] MP_SAVE_TUNER_CLIENT_VEHICLE_SLOT_STATS_FROM_SAVEGAME: copying data for vehicle character slot #", iCharacterSlot) //packed stats STATS_PACKED packedStat IF iVehSaveSlot = 0 packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_PRIMARY_COLOUR_GROUP_TUNER_VEH1) ELSE packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_PRIMARY_COLOUR_GROUP_TUNER_VEH2) ENDIF SET_PACKED_STAT_INT(packedStat, vehicleStruct.iPrimaryColourGroup, iCharacterSlot) IF iVehSaveSlot = 0 packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_SECONDARY_COLOUR_GROUP_TUNER_VEH1) ELSE packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_SECONDARY_COLOUR_GROUP_TUNER_VEH2) ENDIF SET_PACKED_STAT_INT(packedStat, vehicleStruct.iSecondaryColourGroup, iCharacterSlot) IF iVehSaveSlot = 0 packedStat = INT_TO_ENUM(STATS_PACKED,PACKED_MP_VEH_PLATE_ID_TUNER_VEH1) ELSE packedStat = INT_TO_ENUM(STATS_PACKED,PACKED_MP_VEH_PLATE_ID_TUNER_VEH2) ENDIF SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iPlateIndex, iCharacterSlot) REPEAT MAX_VEHICLE_MOD_SLOTS i IF iVehSaveSlot = 0 packedStat = INT_TO_ENUM(STATS_PACKED, ENUM_TO_INT(PACKED_MP_VEH_MOD_IDX_START_TUNER_VEH1) + i) ELSE packedStat = INT_TO_ENUM(STATS_PACKED, ENUM_TO_INT(PACKED_MP_VEH_MOD_IDX_START_TUNER_VEH2) + i) ENDIF SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iModIndex[i], iCharacterSlot) ENDREPEAT i = 0 REPEAT MAX_VEHICLE_MOD_VAR_SLOTS i IF iVehSaveSlot = 0 packedStat = INT_TO_ENUM(STATS_PACKED, ENUM_TO_INT(PACKED_MP_VEH_MOD_VAR_START_TUNER_VEH1) + i) ELSE packedStat = INT_TO_ENUM(STATS_PACKED, ENUM_TO_INT(PACKED_MP_VEH_MOD_VAR_START_TUNER_VEH2) + i) ENDIF SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iModVariation[i], iCharacterSlot) ENDREPEAT IF iVehSaveSlot = 0 packedStat = INT_TO_ENUM(STATS_PACKED,PACKED_MP_VEH_TYRE_R_TUNER_VEH1) ELSE packedStat = INT_TO_ENUM(STATS_PACKED,PACKED_MP_VEH_TYRE_R_TUNER_VEH2) ENDIF SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iTyreR, iCharacterSlot) IF iVehSaveSlot = 0 packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_TYRE_G_TUNER_VEH1) ELSE packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_TYRE_G_TUNER_VEH2) ENDIF SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iTyreG, iCharacterSlot) IF iVehSaveSlot = 0 packedStat = INT_TO_ENUM(STATS_PACKED,PACKED_MP_VEH_TYRE_B_TUNER_VEH1) ELSE packedStat = INT_TO_ENUM(STATS_PACKED,PACKED_MP_VEH_TYRE_B_TUNER_VEH2) ENDIF SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iTyreB, iCharacterSlot) IF iVehSaveSlot = 0 packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_WINDOW_TINT_TUNER_VEH1) ELSE packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_WINDOW_TINT_TUNER_VEH2) ENDIF SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iWindowTintColour, iCharacterSlot) IF iVehSaveSlot = 0 packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_LIVERY_TUNER_VEH1) ELSE packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_LIVERY_TUNER_VEH2) ENDIF SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iLivery, iCharacterSlot) IF iVehSaveSlot = 0 packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_ROOF_STATE_TUNER_VEH1) ELSE packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_ROOF_STATE_TUNER_VEH2) ENDIF SET_PACKED_STAT_INT(packedStat, ENUM_TO_INT(vehicleStruct.vehicleSetupMP.VehicleSetup.eRoofState), iCharacterSlot) IF iVehSaveSlot = 0 packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_WHEEL_TYPE_TUNER_VEH1) ELSE packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_WHEEL_TYPE_TUNER_VEH2) ENDIF SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iWheelType, iCharacterSlot) IF iVehSaveSlot = 0 packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_CUST_R_TUNER_VEH1) ELSE packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_CUST_R_TUNER_VEH2) ENDIF SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iCustomR, iCharacterSlot) IF iVehSaveSlot = 0 packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_CUST_G_TUNER_VEH1) ELSE packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_CUST_G_TUNER_VEH2) ENDIF SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iCustomG, iCharacterSlot) IF iVehSaveSlot = 0 packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_CUST_B_TUNER_VEH1) ELSE packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_CUST_B_TUNER_VEH2) ENDIF SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iCustomB, iCharacterSlot) IF iVehSaveSlot = 0 packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_COLOUR1_TUNER_VEH1) ELSE packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_COLOUR1_TUNER_VEH2) ENDIF SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iColour1, iCharacterSlot) IF iVehSaveSlot = 0 packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_COLOUR2_TUNER_VEH1) ELSE packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_COLOUR2_TUNER_VEH2) ENDIF SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iColour2, iCharacterSlot) IF iVehSaveSlot = 0 packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_COLOUR_EXTRA1_TUNER_VEH1) ELSE packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_COLOUR_EXTRA1_TUNER_VEH2) ENDIF SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iColourExtra1, iCharacterSlot) IF iVehSaveSlot = 0 packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_COLOUR_EXTRA2_TUNER_VEH1) ELSE packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_COLOUR_EXTRA2_TUNER_VEH2) ENDIF SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iColourExtra2, iCharacterSlot) IF iVehSaveSlot = 0 packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_NEON_R_TUNER_VEH1) ELSE packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_NEON_R_TUNER_VEH2) ENDIF SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iNeonR, iCharacterSlot) IF iVehSaveSlot = 0 packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_NEON_G_TUNER_VEH1) ELSE packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_NEON_G_TUNER_VEH2) ENDIF SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iNeonG, iCharacterSlot) IF iVehSaveSlot = 0 packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_NEON_B_TUNER_VEH1) ELSE packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_NEON_B_TUNER_VEH2) ENDIF SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iNeonB, iCharacterSlot) PRINTLN("[AUTO_SHOP_CLIENT_VEH] MP_SAVE_TUNER_CLIENT_VEHICLE_SLOT_STATS_FROM_SAVEGAME: NEON R = ",vehicleStruct.vehicleSetupMP.VehicleSetup.iNeonR," G = ",vehicleStruct.vehicleSetupMP.VehicleSetup.iNeonG," B = ",vehicleStruct.vehicleSetupMP.VehicleSetup.iNeonB) IF iVehSaveSlot = 0 packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_COLOUR_5_TUNER_VEH1) ELSE packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_COLOUR_5_TUNER_VEH2) ENDIF SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.iColour5, iCharacterSlot) PRINTLN("[AUTO_SHOP_CLIENT_VEH] MP_SAVE_TUNER_CLIENT_VEHICLE_SLOT_STATS_FROM_SAVEGAME: iColour5 = ",vehicleStruct.vehicleSetupMP.iColour5) IF iVehSaveSlot = 0 packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_COLOUR_5_TUNER_VEH1) ELSE packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_COLOUR_5_TUNER_VEH2) ENDIF SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.iColour6, iCharacterSlot) PRINTLN("[AUTO_SHOP_CLIENT_VEH] MP_SAVE_TUNER_CLIENT_VEHICLE_SLOT_STATS_FROM_SAVEGAME: iColour6 = ",vehicleStruct.vehicleSetupMP.iColour6) IF iVehSaveSlot = 0 packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_LIVERY2_TUNER_VEH1) ELSE packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_LIVERY2_TUNER_VEH2) ENDIF SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.iLivery2, iCharacterSlot) PRINTLN("[AUTO_SHOP_CLIENT_VEH] MP_SAVE_TUNER_CLIENT_VEHICLE_SLOT_STATS_FROM_SAVEGAME: iLivery2 = ",vehicleStruct.vehicleSetupMP.iLivery2) IF iVehSaveSlot = 0 packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_BULLETPROOF_TYRES_TUNER_VEH1) ELSE packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_BULLETPROOF_TYRES_TUNER_VEH2) ENDIF SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.iTyreType, iCharacterSlot) PRINTLN("[AUTO_SHOP_CLIENT_VEH] MP_SAVE_TUNER_CLIENT_VEHICLE_SLOT_STATS_FROM_SAVEGAME: iTyreType = ",vehicleStruct.vehicleSetupMP.iTyreType) //not packable IF iVehSaveSlot = 0 SET_MP_INT_CHARACTER_STAT(MP_STAT_MPSV_VEHICLE_BS_TUNER_VEH1, vehicleStruct.iVehicleBS, iCharacterSlot) ELSE SET_MP_INT_CHARACTER_STAT(MP_STAT_MPSV_VEHICLE_BS_TUNER_VEH2, vehicleStruct.iVehicleBS, iCharacterSlot) ENDIF PRINTLN("[AUTO_SHOP_CLIENT_VEH] MP_SAVE_TUNER_CLIENT_VEHICLE_SLOT_STATS_FROM_SAVEGAME: iVehicleBS = ",vehicleStruct.iVehicleBS) //model enum IF iVehSaveSlot = 0 SET_MP_INT_CHARACTER_STAT(MP_STAT_MPSV_MODEL_TUNER_VEH1, ENUM_TO_INT(vehicleStruct.vehicleSetupMP.VehicleSetup.eModel), iCharacterSlot) ELSE SET_MP_INT_CHARACTER_STAT(MP_STAT_MPSV_MODEL_TUNER_VEH2, ENUM_TO_INT(vehicleStruct.vehicleSetupMP.VehicleSetup.eModel), iCharacterSlot) ENDIF PRINTLN("[AUTO_SHOP_CLIENT_VEH] MP_SAVE_TUNER_CLIENT_VEHICLE_SLOT_STATS_FROM_SAVEGAME: model enum = ", ENUM_TO_INT(vehicleStruct.vehicleSetupMP.VehicleSetup.eModel)) #IF IS_DEBUG_BUILD IF IS_MODEL_IN_CDIMAGE(vehicleStruct.vehicleSetupMP.VehicleSetup.eModel) PRINTLN("[AUTO_SHOP_CLIENT_VEH] Name = ",GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(vehicleStruct.vehicleSetupMP.VehicleSetup.eModel)) ELSE PRINTLN("[AUTO_SHOP_CLIENT_VEH] Name = ",vehicleStruct.vehicleSetupMP.VehicleSetup.eModel) ENDIF #ENDIF //not packable IF iVehSaveSlot = 0 SET_MP_INT_CHARACTER_STAT(MP_STAT_MPSV_FLAGS_TUNER_VEH1, vehicleStruct.vehicleSetupMP.VehicleSetup.iFlags, iCharacterSlot) ELSE SET_MP_INT_CHARACTER_STAT(MP_STAT_MPSV_FLAGS_TUNER_VEH2, vehicleStruct.vehicleSetupMP.VehicleSetup.iFlags, iCharacterSlot) ENDIF IF NOT IS_STRING_NULL_OR_EMPTY(vehicleStruct.vehicleSetupMP.VehicleSetup.tlPlateText) IF iVehSaveSlot = 0 SET_MP_VEHICLE_LICENSE_PLATE_CHARACTER_STAT(MP_STAT_MPSV_LP0_TUNER_VEH1, vehicleStruct.vehicleSetupMP.VehicleSetup.tlPlateText, iCharacterSlot) ELSE SET_MP_VEHICLE_LICENSE_PLATE_CHARACTER_STAT(MP_STAT_MPSV_LP0_TUNER_VEH2, vehicleStruct.vehicleSetupMP.VehicleSetup.tlPlateText, iCharacterSlot) ENDIF ENDIF RETURN TRUE ENDFUNC FUNC MOD_TYPE GET_TUNER_CLIENT_VEHICLE_PERFORMANCE_MOD(TUNER_CLIENT_VEHICLE_PERFORMACE_MOD ePerformanceMod) SWITCH ePerformanceMod CASE VPM_ENGINE RETURN MOD_ENGINE CASE VPM_BRAKE RETURN MOD_BRAKES CASE VPM_TOGGLE_TURBO RETURN MOD_TOGGLE_TURBO CASE VPM_GEARBOX RETURN MOD_GEARBOX CASE VPM_SUSPENSION RETURN MOD_SUSPENSION ENDSWITCH RETURN INT_TO_ENUM(MOD_TYPE, -1) ENDFUNC FUNC MOD_TYPE GET_TUNER_CLIENT_VEHICLE_BODYWORK_MOD(TUNER_CLIENT_VEHICLE_BODYWORK_MOD eBodyworkMod) SWITCH eBodyworkMod CASE VBM_SPOILER RETURN MOD_SPOILER CASE VBM_BUMPER_F RETURN MOD_BUMPER_F CASE VBM_BUMPER_R RETURN MOD_BUMPER_R CASE VBM_SKIRT RETURN MOD_SKIRT CASE VBM_EXHAUST RETURN MOD_EXHAUST CASE VBM_CHASSIS RETURN MOD_CHASSIS CASE VBM_GRILL RETURN MOD_GRILL CASE VBM_BONNET RETURN MOD_BONNET CASE VBM_WING_L RETURN MOD_WING_L CASE VBM_WING_R RETURN MOD_WING_R CASE VBM_ROOF RETURN MOD_ROOF ENDSWITCH RETURN INT_TO_ENUM(MOD_TYPE, -1) ENDFUNC FUNC MOD_WHEEL_TYPE GET_TUNER_CLIENT_VEHICLE_WHEEL_MOD(TUNER_CLIENT_VEHICLE_WHEEL_MOD eWheelMod) SWITCH eWheelMod CASE VWM_SPORT RETURN MWT_SPORT CASE VWM_MUSCLE RETURN MWT_MUSCLE CASE VWM_LOWRIDER RETURN MWT_LOWRIDER CASE VWM_SUV RETURN MWT_SUV CASE VWM_OFFROAD RETURN MWT_OFFROAD CASE VWM_TUNER RETURN MWT_TUNER CASE VWM_HIEND RETURN MWT_HIEND CASE VWM_SUPERMOD4 RETURN MWT_SUPERMOD4 CASE VWM_SUPERMOD5 RETURN MWT_SUPERMOD5 ENDSWITCH RETURN MWT_INVALID ENDFUNC FUNC STATS_PACKED GET_TUNER_CLIENT_VEHICLE_WHEEL_TYPE_PACKED_STAT(INT iSaveSlot) SWITCH iSaveSlot CASE 0 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_1_WHEEL_TYPE BREAK CASE 1 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_2_WHEEL_TYPE BREAK ENDSWITCH RETURN START_MP_CHAR_BOOL_PACKED ENDFUNC FUNC STATS_PACKED GET_TUNER_CLIENT_VEHICLE_WHEEL_INDEX_PACKED_STAT(INT iSaveSlot) SWITCH iSaveSlot CASE 0 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_1_WHEEL_INDEX BREAK CASE 1 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_2_WHEEL_INDEX BREAK ENDSWITCH RETURN START_MP_CHAR_BOOL_PACKED ENDFUNC FUNC STATS_PACKED GET_TUNER_CLIENT_VEHICLE_PERFORMANCE_PACKED_STAT(INT iSaveSlot, INT iSlot) SWITCH iSaveSlot CASE 0 SWITCH iSlot CASE 0 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_1_PERFORMANCE_MOD_SLOT_1 CASE 1 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_1_PERFORMANCE_MOD_SLOT_2 CASE 2 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_1_PERFORMANCE_MOD_SLOT_3 ENDSWITCH BREAK CASE 1 SWITCH iSlot CASE 0 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_2_PERFORMANCE_MOD_SLOT_1 CASE 1 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_2_PERFORMANCE_MOD_SLOT_2 CASE 2 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_2_PERFORMANCE_MOD_SLOT_3 ENDSWITCH BREAK ENDSWITCH RETURN START_MP_CHAR_BOOL_PACKED ENDFUNC FUNC STATS_PACKED GET_TUNER_CLIENT_VEHICLE_BODYWORK_MOD_INDEX_PACKED_STAT(INT iSaveSlot, INT iSlot) SWITCH iSaveSlot CASE 0 SWITCH iSlot CASE 0 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_1_BODYWORK_MOD_INDEX_1 CASE 1 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_1_BODYWORK_MOD_INDEX_2 CASE 2 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_1_BODYWORK_MOD_INDEX_3 ENDSWITCH BREAK CASE 1 SWITCH iSlot CASE 0 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_2_BODYWORK_MOD_INDEX_1 CASE 1 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_2_BODYWORK_MOD_INDEX_2 CASE 2 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_2_BODYWORK_MOD_INDEX_3 ENDSWITCH BREAK ENDSWITCH RETURN START_MP_CHAR_BOOL_PACKED ENDFUNC FUNC STATS_PACKED GET_TUNER_CLIENT_VEHICLE_BODYWORK_PACKED_STAT(INT iSaveSlot, INT iSlot) SWITCH iSaveSlot CASE 0 SWITCH iSlot CASE 0 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_1_BODYWORK_MOD_SLOT_1 CASE 1 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_1_BODYWORK_MOD_SLOT_2 CASE 2 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_1_BODYWORK_MOD_SLOT_3 ENDSWITCH BREAK CASE 1 SWITCH iSlot CASE 0 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_2_BODYWORK_MOD_SLOT_1 CASE 1 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_2_BODYWORK_MOD_SLOT_2 CASE 2 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_2_BODYWORK_MOD_SLOT_3 ENDSWITCH BREAK ENDSWITCH RETURN START_MP_CHAR_BOOL_PACKED ENDFUNC FUNC STATS_PACKED GET_TUNER_CLIENT_VEHICLE_PERFORMANCE_MOD_INDEX_PACKED_STAT(INT iSaveSlot, INT iSlot) SWITCH iSaveSlot CASE 0 SWITCH iSlot CASE 0 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_1_PERFORMANCE_MOD_INDEX_1 CASE 1 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_1_PERFORMANCE_MOD_INDEX_2 CASE 2 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_1_PERFORMANCE_MOD_INDEX_3 ENDSWITCH BREAK CASE 1 SWITCH iSlot CASE 0 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_2_PERFORMANCE_MOD_INDEX_1 CASE 1 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_2_PERFORMANCE_MOD_INDEX_2 CASE 2 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_2_PERFORMANCE_MOD_INDEX_3 ENDSWITCH BREAK ENDSWITCH RETURN START_MP_CHAR_BOOL_PACKED ENDFUNC FUNC STATS_PACKED GET_TUNER_CLIENT_VEHICLE_RESPRAY_PACKED_STAT(INT iSaveSlot) SWITCH iSaveSlot CASE 0 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_1_RESPRAY BREAK CASE 1 RETURN PACKED_MP_INT_AUTO_SHOP_CLIENT_VEH_2_RESPRAY BREAK ENDSWITCH RETURN START_MP_CHAR_BOOL_PACKED ENDFUNC PROC CLEANUP_TUNER_CLIENT_VEHICLE_MODIFICATION_TASKS(INT iSaveSlot) SET_PACKED_STAT_INT(GET_TUNER_CLIENT_VEHICLE_RESPRAY_PACKED_STAT(iSaveSlot), 0) INT i = 0 FOR i = 0 TO 2 IF GET_TUNER_CLIENT_VEHICLE_PERFORMANCE_PACKED_STAT(iSaveSlot, i) != START_MP_CHAR_BOOL_PACKED SET_PACKED_STAT_INT(GET_TUNER_CLIENT_VEHICLE_PERFORMANCE_PACKED_STAT(iSaveSlot, i), 0) ENDIF IF GET_TUNER_CLIENT_VEHICLE_BODYWORK_PACKED_STAT(iSaveSlot, i) != START_MP_CHAR_BOOL_PACKED SET_PACKED_STAT_INT(GET_TUNER_CLIENT_VEHICLE_BODYWORK_PACKED_STAT(iSaveSlot, i), 0) ENDIF ENDFOR SET_PACKED_STAT_INT(GET_TUNER_CLIENT_VEHICLE_WHEEL_TYPE_PACKED_STAT(iSaveSlot), -1) ENDPROC // RETURN 1 Low, 2 Mid, 3 High, 0 Invalid vehicle FUNC INT GET_TUNER_CLIENT_VEHICLE_PRICE_GROUP(MODEL_NAMES vehicleModel) SWITCH vehicleModel CASE WEEVIL RETURN 1 CASE BRIOSO2 RETURN 1 CASE RHAPSODY RETURN 1 CASE CLUB RETURN 1 CASE ISSI3 RETURN 1 CASE NEBULA RETURN 1 CASE DYNASTY RETURN 1 CASE FAGALOA RETURN 1 CASE FUTO RETURN 1 CASE ASBO RETURN 1 CASE SENTINEL RETURN 2 CASE DOMINATOR3 RETURN 2 CASE VAMOS RETURN 2 CASE HERMES RETURN 2 CASE COQUETTE3 RETURN 2 CASE RIATA RETURN 2 CASE EVERON RETURN 2 CASE GLENDALE2 RETURN 2 CASE SCHAFTER3 RETURN 2 CASE WARRENER RETURN 2 CASE PRIMO2 RETURN 2 CASE SEMINOLE2 RETURN 2 CASE REBLA RETURN 2 CASE SWINGER RETURN 2 CASE FLASHGT RETURN 2 CASE RAIDEN RETURN 2 CASE SURANO RETURN 2 CASE PENUMBRA2 RETURN 2 CASE VSTR RETURN 2 CASE JUGULAR RETURN 2 CASE TOROS RETURN 3 CASE ENTITY2 RETURN 3 CASE TEMPESTA RETURN 3 CASE THRAX RETURN 3 CASE SC1 RETURN 3 CASE GP1 RETURN 3 CASE CHEETAH2 RETURN 3 CASE NEO RETURN 3 CASE COMET2 RETURN 3 CASE PARAGON RETURN 3 ENDSWITCH RETURN 0 ENDFUNC FUNC TUNER_CLIENT_DELIVERY_VARIATION GET_TUNER_CLIENT_VEHICLE_DROPOFF_TYPE(MODEL_NAMES vehicleModel) SWITCH GET_TUNER_CLIENT_VEHICLE_PRICE_GROUP(vehicleModel) CASE 1 RETURN TCDV_LOW CASE 2 SWITCH vehicleModel CASE SENTINEL RETURN TCDV_LOW CASE DOMINATOR3 RETURN TCDV_HIGH CASE VAMOS RETURN TCDV_LOW CASE HERMES RETURN TCDV_LOW CASE COQUETTE3 RETURN TCDV_HIGH CASE RIATA RETURN TCDV_LOW CASE EVERON RETURN TCDV_HIGH CASE GLENDALE2 RETURN TCDV_LOW CASE SCHAFTER3 RETURN TCDV_HIGH CASE WARRENER RETURN TCDV_LOW CASE PRIMO2 RETURN TCDV_LOW CASE SEMINOLE2 RETURN TCDV_LOW CASE REBLA RETURN TCDV_HIGH CASE SWINGER RETURN TCDV_HIGH CASE FLASHGT RETURN TCDV_LOW CASE RAIDEN RETURN TCDV_HIGH CASE SURANO RETURN TCDV_HIGH CASE PENUMBRA2 RETURN TCDV_LOW CASE VSTR RETURN TCDV_HIGH CASE JUGULAR RETURN TCDV_HIGH ENDSWITCH BREAK CASE 3 RETURN TCDV_HIGH ENDSWITCH RETURN TCDV_INVALID ENDFUNC FUNC INT GET_TUNER_CLIENT_VEHICLE_PRICE(MODEL_NAMES vehicleModel) SWITCH GET_TUNER_CLIENT_VEHICLE_PRICE_GROUP(vehicleModel) CASE 1 RETURN g_sMPTunables.iTUNER_AUTO_SHOP_CLIENT_VEH_LOW_PRICE CASE 2 RETURN g_sMPTunables.iTUNER_AUTO_SHOP_CLIENT_VEH_MID_PRICE CASE 3 RETURN g_sMPTunables.iTUNER_AUTO_SHOP_CLIENT_VEH_HIGH_PRICE ENDSWITCH RETURN 0 ENDFUNC // NOTE: If this functions is modifided, we also need to update GET_TUNER_CLIENT_VEHICLE_STAT_INDEX FUNC MODEL_NAMES GET_TUNER_CLIENT_VEHICLE_MODEL(INT iIndex) SWITCH iIndex CASE 1 RETURN WEEVIL CASE 2 RETURN BRIOSO2 CASE 3 RETURN RHAPSODY CASE 4 RETURN CLUB CASE 5 RETURN ISSI3 CASE 6 RETURN NEBULA CASE 7 RETURN DYNASTY CASE 8 RETURN FAGALOA CASE 9 RETURN FUTO CASE 10 RETURN ASBO CASE 11 RETURN SENTINEL CASE 12 RETURN DOMINATOR3 CASE 13 RETURN VAMOS CASE 14 RETURN HERMES CASE 15 RETURN COQUETTE3 CASE 16 RETURN RIATA CASE 17 RETURN EVERON CASE 18 RETURN GLENDALE2 CASE 19 RETURN SCHAFTER3 CASE 20 RETURN WARRENER CASE 21 RETURN PRIMO2 CASE 22 RETURN SEMINOLE2 CASE 23 RETURN REBLA CASE 24 RETURN SWINGER CASE 25 RETURN FLASHGT CASE 26 RETURN RAIDEN CASE 27 RETURN SURANO CASE 28 RETURN PENUMBRA2 CASE 29 RETURN VSTR CASE 30 RETURN JUGULAR CASE 31 RETURN TOROS CASE 32 RETURN ENTITY2 CASE 33 RETURN TEMPESTA CASE 34 RETURN THRAX CASE 35 RETURN SC1 CASE 36 RETURN GP1 CASE 37 RETURN CHEETAH2 CASE 38 RETURN NEO CASE 39 RETURN COMET2 CASE 40 RETURN PARAGON // Make sure to increase MAX_NUM_TUNER_CLIENT_VEHICLE ENDSWITCH RETURN DUMMY_MODEL_FOR_SCRIPT ENDFUNC FUNC INT GET_TUNER_CLIENT_VEHICLE_STAT_INDEX(MODEL_NAMES vehicleModel) SWITCH vehicleModel CASE WEEVIL RETURN 1 CASE BRIOSO2 RETURN 2 CASE RHAPSODY RETURN 3 CASE CLUB RETURN 4 CASE ISSI3 RETURN 5 CASE NEBULA RETURN 6 CASE DYNASTY RETURN 7 CASE FAGALOA RETURN 8 CASE FUTO RETURN 9 CASE ASBO RETURN 10 CASE SENTINEL RETURN 11 CASE DOMINATOR3 RETURN 12 CASE VAMOS RETURN 13 CASE HERMES RETURN 14 CASE COQUETTE3 RETURN 15 CASE RIATA RETURN 16 CASE EVERON RETURN 17 CASE GLENDALE2 RETURN 18 CASE SCHAFTER3 RETURN 19 CASE WARRENER RETURN 20 CASE PRIMO2 RETURN 21 CASE SEMINOLE2 RETURN 22 CASE REBLA RETURN 23 CASE SWINGER RETURN 24 CASE FLASHGT RETURN 25 CASE RAIDEN RETURN 26 CASE SURANO RETURN 27 CASE PENUMBRA2 RETURN 28 CASE VSTR RETURN 29 CASE JUGULAR RETURN 30 CASE TOROS RETURN 31 CASE ENTITY2 RETURN 32 CASE TEMPESTA RETURN 33 CASE THRAX RETURN 34 CASE SC1 RETURN 35 CASE GP1 RETURN 36 CASE CHEETAH2 RETURN 37 CASE NEO RETURN 38 CASE COMET2 RETURN 39 CASE PARAGON RETURN 40 ENDSWITCH RETURN 0 ENDFUNC FUNC INT GET_TUNER_CLIENT_VEHICLE_MODIFICATION_INVENTORY_KEY_FOR_CATALOGUE(INT iSlot) TEXT_LABEL_63 tlGeneratedKey SWITCH iSlot CASE 0 tlGeneratedKey = "MP_STAT_MISSION_TUNER_CLIENT_0_v0" BREAK CASE 1 tlGeneratedKey = "MP_STAT_MISSION_TUNER_CLIENT_1_v0" BREAK ENDSWITCH IF IS_STRING_NULL_OR_EMPTY(tlGeneratedKey) #IF IS_DEBUG_BUILD CASSERTLN(DEBUG_SHOPS, "GET_TUNER_CLIENT_VEHICLE_MODIFICATION_INVENTORY_KEY_FOR_CATALOGUE - Invalid contraband slot specified") #ENDIF RETURN -1 ENDIF RETURN GET_HASH_KEY(tlGeneratedKey) ENDFUNC FUNC INT GET_TUNER_CLIENT_VEHICLE_MODIFICATION_ITEM_KEY_FOR_CATALOGUE(INT iPriceGroup, INT iSlot) TEXT_LABEL_63 tlGeneratedKey SWITCH iSlot CASE 0 SWITCH iPriceGroup CASE 1 tlGeneratedKey = "TS_VEH_0_t0_v0_SELL" BREAK CASE 2 tlGeneratedKey = "TS_VEH_1_t0_v0_SELL" BREAK CASE 3 tlGeneratedKey = "TS_VEH_2_t0_v0_SELL" BREAK ENDSWITCH BREAK CASE 1 SWITCH iPriceGroup CASE 1 tlGeneratedKey = "TS_VEH_0_t0_v1_SELL" BREAK CASE 2 tlGeneratedKey = "TS_VEH_1_t0_v1_SELL" BREAK CASE 3 tlGeneratedKey = "TS_VEH_2_t0_v1_SELL" BREAK ENDSWITCH BREAK ENDSWITCH IF IS_STRING_NULL_OR_EMPTY(tlGeneratedKey) #IF IS_DEBUG_BUILD CASSERTLN(DEBUG_SHOPS, "[AUTO_SHOP_CLIENT_VEH] GET_TUNER_CLIENT_VEHICLE_MODIFICATION_ITEM_KEY_FOR_CATALOGUE - Invalid iPriceGroup: ", iPriceGroup, " iSlot: ", iSlot) #ENDIF RETURN -1 ENDIF RETURN GET_HASH_KEY(tlGeneratedKey) ENDFUNC FUNC INT GET_TUNER_CLIENT_VEHICLE_INVENTORY_KEY_FOR_CATALOGUE(INT iSlot) TEXT_LABEL_63 tlGeneratedKey SWITCH iSlot CASE 0 tlGeneratedKey = "MP_STAT_TUNER_CLIENT_VEHICLE_0_v0" BREAK CASE 1 tlGeneratedKey = "MP_STAT_TUNER_CLIENT_VEHICLE_1_v0" BREAK ENDSWITCH IF IS_STRING_NULL_OR_EMPTY(tlGeneratedKey) #IF IS_DEBUG_BUILD CASSERTLN(DEBUG_SHOPS, "GET_TUNER_CLIENT_VEHICLE_INVENTORY_KEY_FOR_CATALOGUE - Invalid save slot specified") #ENDIF RETURN -1 ENDIF RETURN GET_HASH_KEY(tlGeneratedKey) ENDFUNC FUNC MP_INT_STATS GET_FM_INT_STAT_FOR_CLIENT_VEHICLE(INT iSlot) SWITCH iSlot CASE 0 RETURN MP_STAT_TUNER_CLIENT_VEH_MISSION_0 CASE 1 RETURN MP_STAT_TUNER_CLIENT_VEH_MISSION_1 ENDSWITCH CASSERTLN(DEBUG_SHOPS,"GET_FM_INT_STAT_FOR_CLIENT_VEHICLE - iSlot ", iSlot, " missing.") RETURN MAX_NUM_MP_INT_STATS ENDFUNC FUNC MP_INT_STATS GET_FM_INT_STAT_FOR_CLIENT_VEHICLE_MODIFICATION(INT iSlot) SWITCH iSlot CASE 0 RETURN MP_STAT_TUNER_CLIENT_MOD_PURCHASE_0 CASE 1 RETURN MP_STAT_TUNER_CLIENT_MOD_PURCHASE_1 ENDSWITCH CASSERTLN(DEBUG_SHOPS,"GET_FM_INT_STAT_FOR_CLIENT_VEHICLE - iSlot ", iSlot, " missing.") RETURN MAX_NUM_MP_INT_STATS ENDFUNC FUNC BOOL PROCESS_TRANSACTION_FOR_TUNER_CLIENT_VEHICLE_MODIFICATION(INT iPriceGroup, INT iSlot, INT iCost, CONTRABAND_TRANSACTION_STATE &eResult) // Cleanup previous attempts IF eResult != CONTRABAND_TRANSACTION_STATE_DEFAULT AND eResult != CONTRABAND_TRANSACTION_STATE_PENDING eResult = CONTRABAND_TRANSACTION_STATE_DEFAULT ENDIF SWITCH eResult // Start the transaction CASE CONTRABAND_TRANSACTION_STATE_DEFAULT IF GET_BASKET_TRANSACTION_SCRIPT_INDEX() != -1 CPRINTLN(DEBUG_SHOPS, "[AUTO_SHOP_CLIENT_VEH] PROCESS_TRANSACTION_FOR_TUNER_CLIENT_VEHICLE_MODIFICATION - Transaction waiting") RETURN FALSE ENDIF INT iInventoryKey, iItemID iInventoryKey = GET_TUNER_CLIENT_VEHICLE_MODIFICATION_INVENTORY_KEY_FOR_CATALOGUE(iSlot) iItemID = GET_TUNER_CLIENT_VEHICLE_MODIFICATION_ITEM_KEY_FOR_CATALOGUE(iPriceGroup, iSlot) //0: CATEGORY_INVENTORY_CONTRABAND_MISSION, CATEGORY_CONTRABAND_MISSION IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, CATEGORY_INVENTORY_CONTRABAND_MISSION, iItemID, NET_SHOP_ACTION_BUY_CONTRABAND_MISSION, 1, iCost, 1, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey) eResult = CONTRABAND_TRANSACTION_STATE_PENDING ELSE eResult = CONTRABAND_TRANSACTION_STATE_FAILED CPRINTLN(DEBUG_SHOPS, "[AUTO_SHOP_CLIENT_VEH] PROCESS_TRANSACTION_FOR_TUNER_CLIENT_VEHICLE_MODIFICATION - Failed to add mission item") ENDIF IF eResult = CONTRABAND_TRANSACTION_STATE_PENDING AND NETWORK_START_BASKET_TRANSACTION_CHECKOUT() CPRINTLN(DEBUG_SHOPS, "[AUTO_SHOP_CLIENT_VEH] PROCESS_TRANSACTION_FOR_TUNER_CLIENT_VEHICLE_MODIFICATION - Starting basket checkout") ELSE eResult = CONTRABAND_TRANSACTION_STATE_FAILED DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX()) CPRINTLN(DEBUG_SHOPS, "[AUTO_SHOP_CLIENT_VEH] PROCESS_TRANSACTION_FOR_TUNER_CLIENT_VEHICLE_MODIFICATION - Failed to start checkout") ENDIF BREAK CASE CONTRABAND_TRANSACTION_STATE_PENDING IF IS_CASH_TRANSACTION_COMPLETE(GET_BASKET_TRANSACTION_SCRIPT_INDEX()) IF GET_CASH_TRANSACTION_STATUS(GET_BASKET_TRANSACTION_SCRIPT_INDEX()) = CASH_TRANSACTION_STATUS_SUCCESS CPRINTLN(DEBUG_SHOPS, "[AUTO_SHOP_CLIENT_VEH] PROCESS_TRANSACTION_FOR_TUNER_CLIENT_VEHICLE_MODIFICATION - Transaction finished - SUCCESS") NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX())) NETWORK_SPEND_AUTOSHOP_MODIFY(iCost, FALSE, TRUE, GET_HASH_KEY(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(GET_AUTO_SHOP_CLIENT_VEHICLE_MODEL(iSlot))), iCost) eResult = CONTRABAND_TRANSACTION_STATE_SUCCESS DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX()) ELSE CPRINTLN(DEBUG_SHOPS, "[AUTO_SHOP_CLIENT_VEH] PROCESS_TRANSACTION_FOR_TUNER_CLIENT_VEHICLE_MODIFICATION - Transaction finished - FAILED") eResult = CONTRABAND_TRANSACTION_STATE_FAILED DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX()) ENDIF ENDIF BREAK ENDSWITCH RETURN (eResult != CONTRABAND_TRANSACTION_STATE_PENDING) ENDFUNC FUNC BOOL BUY_MP_CLIENT_VEHICLE_MODIFICATION(INT iPriceGroup, INT iSlot, INT iCost, CONTRABAND_TRANSACTION_STATE &eResult) IF USE_SERVER_TRANSACTIONS() /////////////////////////////////////////// /// TRANSACTION FOR CLIENT VEHICLE MODIFICATION WHILE NOT PROCESS_TRANSACTION_FOR_TUNER_CLIENT_VEHICLE_MODIFICATION(iPriceGroup, iSlot, iCost, eResult) eResult = CONTRABAND_TRANSACTION_STATE_PENDING RETURN FALSE ENDWHILE IF eResult = CONTRABAND_TRANSACTION_STATE_FAILED CWARNINGLN(DEBUG_INTERNET, "[AUTO_SHOP_CLIENT_VEH] BUY_MP_CLIENT_VEHICLE_MODIFICATION: failed to process transaction") RETURN FALSE ELIF eResult = CONTRABAND_TRANSACTION_STATE_SUCCESS SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CLIENT_VEHICLE_MODIFICATION(iSlot), 1) CPRINTLN(DEBUG_INTERNET, "[AUTO_SHOP_CLIENT_VEH] BUY_MP_CLIENT_VEHICLE_MODIFICATION: success!!") ENDIF ELSE CPRINTLN(DEBUG_INTERNET, "[AUTO_SHOP_CLIENT_VEH] BUY_MP_CLIENT_VEHICLE_MODIFICATION: ignore NETWORK_REQUEST_BASKET_TRANSACTION") NETWORK_SPEND_AUTOSHOP_MODIFY(iCost, FALSE, TRUE, GET_HASH_KEY(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(GET_AUTO_SHOP_CLIENT_VEHICLE_MODEL(iSlot))), iCost) SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CLIENT_VEHICLE_MODIFICATION(iSlot), 1) ENDIF RETURN TRUE ENDFUNC FUNC BOOL PROCESS_TRANSACTION_FOR_REMOVE_TUNER_CLIENT_VEHICLE(INT iSlotToRemove, INT iEarnValue, REMOVE_CONTRABAND_REASON_ENUM eReason, CONTRABAND_TRANSACTION_STATE &eResult) // Cleanup previous attempts IF eResult != CONTRABAND_TRANSACTION_STATE_DEFAULT AND eResult != CONTRABAND_TRANSACTION_STATE_PENDING eResult = CONTRABAND_TRANSACTION_STATE_DEFAULT ENDIF SWITCH eResult // Start the transaction CASE CONTRABAND_TRANSACTION_STATE_DEFAULT MODEL_NAMES vehicleModel INT iInventoryKey, iMissionKey, iQuantityKey, iFlagKey, iVehicleID iVehicleID = GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CLIENT_VEHICLE(iSlotToRemove)) vehicleModel = GET_TUNER_CLIENT_VEHICLE_MODEL(iVehicleID) IF vehicleModel = DUMMY_MODEL_FOR_SCRIPT INT iPriceGroup iPriceGroup = GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CLIENT_VEHICLE_MODIFICATION(iSlotToRemove)) SWITCH iPriceGroup CASE 1 vehicleModel = WEEVIL BREAK CASE 2 vehicleModel = SENTINEL BREAK CASE 3 vehicleModel = TOROS BREAK ENDSWITCH ENDIF iInventoryKey = GET_TUNER_CLIENT_VEHICLE_MODIFICATION_INVENTORY_KEY_FOR_CATALOGUE(iSlotToRemove) iMissionKey = GET_TUNER_CLIENT_VEHICLE_MODIFICATION_ITEM_KEY_FOR_CATALOGUE(GET_TUNER_CLIENT_VEHICLE_PRICE_GROUP(vehicleModel), iSlotToRemove) iQuantityKey = GET_TUNER_CLIENT_VEHICLE_INVENTORY_KEY_FOR_CATALOGUE(iSlotToRemove) SWITCH eReason CASE REMOVE_CONTRA_ATTACKED iFlagKey = HASH("CF_ATTACKED") BREAK CASE REMOVE_CONTRA_MISSION_STARTED iFlagKey = HASH("CF_MISSION_STARTED") BREAK CASE REMOVE_CONTRA_MISSION_FAILED iFlagKey = HASH("CF_MISSION_FAILED") BREAK CASE REMOVE_CONTRA_MISSION_PASSED iFlagKey = HASH("CF_TUNER_MISSION_PASSED") BREAK ENDSWITCH //0: CATEGORY_INVENTORY_CONTRABAND_MISSION, CATEGORY_CONTRABAND_MISSION IF eReason = REMOVE_CONTRA_ATTACKED OR NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, CATEGORY_INVENTORY_CONTRABAND_MISSION, iMissionKey, NET_SHOP_ACTION_REMOVE_CONTRABAND, 1, 0, 1, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey) //1: CATEGORY_CONTRABAND_QNTY, IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, CATEGORY_CONTRABAND_QNTY, iQuantityKey, NET_SHOP_ACTION_REMOVE_CONTRABAND, iVehicleID, 0, 1, CATALOG_ITEM_FLAG_BANK_THEN_WALLET) //3: MISSION_PASSED, CATEGORY_CONTRABAND_QNTY IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, CATEGORY_CONTRABAND_FLAGS, iFlagKey, NET_SHOP_ACTION_REMOVE_CONTRABAND, 1, iEarnValue, 0, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iQuantityKey) eResult = CONTRABAND_TRANSACTION_STATE_PENDING ELSE eResult = CONTRABAND_TRANSACTION_STATE_FAILED CPRINTLN(DEBUG_SHOPS, "PROCESS_TRANSACTION_FOR_REMOVE_TUNER_CLIENT_VEHICLE - Failed to add flag item") ENDIF ELSE eResult = CONTRABAND_TRANSACTION_STATE_FAILED CPRINTLN(DEBUG_SHOPS, "PROCESS_TRANSACTION_FOR_REMOVE_TUNER_CLIENT_VEHICLE - Failed to add quantity item") ENDIF ELSE eResult = CONTRABAND_TRANSACTION_STATE_FAILED CPRINTLN(DEBUG_SHOPS, "PROCESS_TRANSACTION_FOR_REMOVE_TUNER_CLIENT_VEHICLE - Failed to add mission item") ENDIF IF eResult = CONTRABAND_TRANSACTION_STATE_PENDING AND NETWORK_START_BASKET_TRANSACTION_CHECKOUT() CPRINTLN(DEBUG_SHOPS, "PROCESS_TRANSACTION_FOR_REMOVE_TUNER_CLIENT_VEHICLE - Starting basket checkout") ELSE eResult = CONTRABAND_TRANSACTION_STATE_FAILED DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX()) CPRINTLN(DEBUG_SHOPS, "PROCESS_TRANSACTION_FOR_REMOVE_TUNER_CLIENT_VEHICLE - Failed to start checkout") ENDIF BREAK CASE CONTRABAND_TRANSACTION_STATE_PENDING IF IS_CASH_TRANSACTION_COMPLETE(GET_BASKET_TRANSACTION_SCRIPT_INDEX()) IF GET_CASH_TRANSACTION_STATUS(GET_BASKET_TRANSACTION_SCRIPT_INDEX()) = CASH_TRANSACTION_STATUS_SUCCESS CPRINTLN(DEBUG_SHOPS, "PROCESS_TRANSACTION_FOR_REMOVE_TUNER_CLIENT_VEHICLE - Transaction finished - SUCCESS") IF iEarnValue > 0 PRINTLN("PROCESS_TRANSACTION_FOR_REMOVE_TUNER_CLIENT_VEHICLE - Calling NETWORK_EARN_FROM_CONTRABAND: iEarnValue = ", iEarnValue) NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX())) NETWORK_EARN_AUTOSHOP_BUSINESS(iEarnValue, GET_HASH_KEY(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(GET_AUTO_SHOP_CLIENT_VEHICLE_MODEL(iSlotToRemove)))) ENDIF eResult = CONTRABAND_TRANSACTION_STATE_SUCCESS DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX()) ELSE CPRINTLN(DEBUG_SHOPS, "PROCESS_TRANSACTION_FOR_REMOVE_TUNER_CLIENT_VEHICLE - Transaction finished - FAILED") eResult = CONTRABAND_TRANSACTION_STATE_FAILED DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX()) ENDIF ENDIF BREAK ENDSWITCH RETURN (eResult != CONTRABAND_TRANSACTION_STATE_PENDING) ENDFUNC PROC CLEAR_TUNER_CLIENT_VEHICLE_STATS(INT iSlotToRemove) SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CLIENT_VEHICLE_MODIFICATION(iSlotToRemove), 0) SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_CLIENT_VEHICLE(iSlotToRemove), 0) CLEANUP_TUNER_CLIENT_VEHICLE_MODIFICATION_TASKS(iSlotToRemove) CLEAR_AUTO_SHOP_CLIENT_VEHICLE_SETUP(iSlotToRemove) MP_SAVE_TUNER_CLIENT_VEHICLE_SLOT_STATS_FROM_SAVEGAME(iSlotToRemove, g_sClientVehicleSetupStruct[iSlotToRemove]) ENDPROC PROC CLEAR_TUNER_CLIENT_DELIVERY_DATA(INT iSlotToClear) SET_AUTO_SHOP_CLIENT_VEHICLE_BONUS_AMOUNT(0, iSlotToClear) SET_AUTO_SHOP_CLIENT_VEHICLE_DELIVERY_SLOT(-1) SET_PLAYER_SELECTED_TO_DELIVER_AUTO_SHOP_CLIENT_VEHICLE(FALSE) ENDPROC PROC REMOVE_TUNER_CLIENT_VEHICLE(INT iEarnValue, REMOVE_CONTRABAND_REASON_ENUM eReason, CONTRABAND_TRANSACTION_STATE &eResult, BOOL bClearVehicleStats, INT iDeliverySlot = -1) INT iSlotToRemove = GET_LOCAL_PLAYER_AUTO_SHOP_CLIENT_VEHICLE_DELIVERY_SLOT() IF (iDeliverySlot != -1) iSlotToRemove = iDeliverySlot ENDIF IF iSlotToRemove < 0 OR iSlotToRemove >= MAX_SAVED_CLIENT_VEHS_IN_AUTOSHOP CDEBUG1LN(DEBUG_SAFEHOUSE, "[AUTO_SHOP_CLIENT_VEH] REMOVE_TUNER_CLIENT_VEHICLE Trying to remove invalid slot: ", iSlotToRemove) EXIT ENDIF // Reset state if we need to. IF eResult != CONTRABAND_TRANSACTION_STATE_DEFAULT AND eResult != CONTRABAND_TRANSACTION_STATE_PENDING eResult = CONTRABAND_TRANSACTION_STATE_DEFAULT ENDIF IF NOT USE_SERVER_TRANSACTIONS() CDEBUG1LN(DEBUG_SAFEHOUSE, "[AUTO_SHOP_CLIENT_VEH] REMOVE_TUNER_CLIENT_VEHICLE iEarnValue: ", iEarnValue) IF iEarnValue > 0 NETWORK_EARN_AUTOSHOP_BUSINESS(iEarnValue, GET_HASH_KEY(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(GET_AUTO_SHOP_CLIENT_VEHICLE_MODEL(iSlotToRemove)))) ENDIF IF bClearVehicleStats CLEAR_TUNER_CLIENT_VEHICLE_STATS(iSlotToRemove) ENDIF CLEAR_TUNER_CLIENT_DELIVERY_DATA(iSlotToRemove) IF NETWORK_IS_ACTIVITY_SESSION() STAT_SET_OPEN_SAVETYPE_IN_JOB(STAT_SAVETYPE_END_SHOPPING) ENDIF REQUEST_SAVE(SSR_REASON_SPECIAL_CARGO_UPDATE, STAT_SAVETYPE_END_SHOPPING) CDEBUG1LN(DEBUG_SAFEHOUSE, "[AUTO_SHOP_CLIENT_VEH] REMOVE_TUNER_CLIENT_VEHICLE iSlotToRemove: ", iSlotToRemove, " iEarnValue: ", iEarnValue) eResult = CONTRABAND_TRANSACTION_STATE_SUCCESS ELSE IF iEarnValue <= 0 OR PROCESS_TRANSACTION_FOR_REMOVE_TUNER_CLIENT_VEHICLE(iSlotToRemove, iEarnValue, eReason, eResult) CDEBUG1LN(DEBUG_SAFEHOUSE, "[AUTO_SHOP_CLIENT_VEH] REMOVE_TUNER_CLIENT_VEHICLE iEarnValue: ", iEarnValue) IF eResult = CONTRABAND_TRANSACTION_STATE_SUCCESS OR iEarnValue <= 0 IF bClearVehicleStats CLEAR_TUNER_CLIENT_VEHICLE_STATS(iSlotToRemove) ENDIF CLEAR_TUNER_CLIENT_DELIVERY_DATA(iSlotToRemove) IF NETWORK_IS_ACTIVITY_SESSION() STAT_SET_OPEN_SAVETYPE_IN_JOB(STAT_SAVETYPE_END_SHOPPING) ENDIF REQUEST_SAVE(SSR_REASON_SPECIAL_CARGO_UPDATE, STAT_SAVETYPE_END_SHOPPING) CDEBUG1LN(DEBUG_SAFEHOUSE, "[AUTO_SHOP_CLIENT_VEH] REMOVE_TUNER_CLIENT_VEHICLE iSlotToRemove: ", iSlotToRemove, " iEarnValue: ", iEarnValue) eResult = CONTRABAND_TRANSACTION_STATE_SUCCESS ELIF eResult = CONTRABAND_TRANSACTION_STATE_FAILED CDEBUG1LN(DEBUG_SAFEHOUSE, "[AUTO_SHOP_CLIENT_VEH] REMOVE_TUNER_CLIENT_VEHICLE: TRANSACTION FAILED FOR iSlotToRemove: ", iSlotToRemove) eResult = CONTRABAND_TRANSACTION_STATE_FAILED ENDIF ENDIF ENDIF ENDPROC #ENDIF #IF FEATURE_DLC_1_2022 FUNC MOD_TYPE GET_BIKER_CLIENT_VEHICLE_PERFORMANCE_MOD(BIKER_CLIENT_VEHICLE_PERFORMACE_MOD ePerformanceMod) SWITCH ePerformanceMod CASE BVPM_ENGINE RETURN MOD_ENGINE CASE BVPM_BRAKE RETURN MOD_BRAKES CASE BVPM_TOGGLE_TURBO RETURN MOD_TOGGLE_TURBO CASE BVPM_GEARBOX RETURN MOD_GEARBOX CASE BVPM_SUSPENSION RETURN MOD_SUSPENSION ENDSWITCH RETURN INT_TO_ENUM(MOD_TYPE, -1) ENDFUNC FUNC MP_INT_STATS GET_FM_INT_STAT_FOR_BIKER_CLIENT_VEHICLE_MODIFICATION() RETURN MP_STAT_BIKER_CLIENT_MOD_PURCHASE ENDFUNC FUNC STATS_PACKED GET_BIKER_CLIENT_VEHICLE_RESPRAY_PACKED_STAT() RETURN PACKED_MP_INT_BIKER_CLIENT_VEH_RESPRAY ENDFUNC FUNC STATS_PACKED GET_BIKER_CLIENT_VEHICLE_PERFORMANCE_PACKED_STAT(INT iSlot) SWITCH iSlot CASE 0 RETURN PACKED_MP_INT_BIKER_CLIENT_VEH_PERFORMANCE_MOD_SLOT_1 CASE 1 RETURN PACKED_MP_INT_BIKER_CLIENT_VEH_PERFORMANCE_MOD_SLOT_2 CASE 2 RETURN PACKED_MP_INT_BIKER_CLIENT_VEH_PERFORMANCE_MOD_SLOT_3 ENDSWITCH RETURN START_MP_CHAR_BOOL_PACKED ENDFUNC FUNC STATS_PACKED GET_BIKER_CLIENT_VEHICLE_PERFORMANCE_MOD_INDEX_PACKED_STAT(INT iSlot) SWITCH iSlot CASE 0 RETURN PACKED_MP_INT_BIKER_CLIENT_VEH_PERFORMANCE_MOD_INDEX_1 CASE 1 RETURN PACKED_MP_INT_BIKER_CLIENT_VEH_PERFORMANCE_MOD_INDEX_2 CASE 2 RETURN PACKED_MP_INT_BIKER_CLIENT_VEH_PERFORMANCE_MOD_INDEX_3 ENDSWITCH RETURN START_MP_CHAR_BOOL_PACKED ENDFUNC FUNC STATS_PACKED GET_BIKER_CLIENT_VEHICLE_BODYWORK_PACKED_STAT(INT iSlot) SWITCH iSlot CASE 0 RETURN PACKED_MP_INT_BIKER_CLIENT_VEH_BODYWORK_MOD_SLOT_1 CASE 1 RETURN PACKED_MP_INT_BIKER_CLIENT_VEH_BODYWORK_MOD_SLOT_2 CASE 2 RETURN PACKED_MP_INT_BIKER_CLIENT_VEH_BODYWORK_MOD_SLOT_3 ENDSWITCH RETURN START_MP_CHAR_BOOL_PACKED ENDFUNC FUNC STATS_PACKED GET_BIKER_CLIENT_VEHICLE_BODYWORK_MOD_INDEX_PACKED_STAT(INT iSlot) SWITCH iSlot CASE 0 RETURN PACKED_MP_INT_BIKER_CLIENT_VEH_BODYWORK_MOD_INDEX_1 CASE 1 RETURN PACKED_MP_INT_BIKER_CLIENT_VEH_BODYWORK_MOD_INDEX_2 CASE 2 RETURN PACKED_MP_INT_BIKER_CLIENT_VEH_BODYWORK_MOD_INDEX_3 ENDSWITCH RETURN START_MP_CHAR_BOOL_PACKED ENDFUNC FUNC MP_INT_STATS GET_FM_INT_STAT_FOR_BIKER_CLIENT_VEHICLE() RETURN MP_STAT_BIKER_CLIENT_VEH_MISSION ENDFUNC FUNC STATS_PACKED GET_BIKER_CLIENT_VEHICLE_WHEEL_TYPE_PACKED_STAT() RETURN PACKED_MP_INT_BIKER_CLIENT_VEH_WHEEL_TYPE ENDFUNC FUNC STATS_PACKED GET_BIKER_CLIENT_VEHICLE_WHEEL_INDEX_PACKED_STAT() RETURN PACKED_MP_INT_BIKER_CLIENT_VEH_WHEEL_INDEX ENDFUNC FUNC BOOL MP_SAVE_BIKER_CLIENT_VEHICLE_SLOT_STATS_FROM_SAVEGAME(MP_SAVED_TUNER_CLIENT_VEHICLE_STRUCT &vehicleStruct) INT iCharacterSlot = GET_ACTIVE_CHARACTER_SLOT() INT i PRINTLN("[BIKER_CLIENT] ----MP_SAVE_BIKER_CLIENT_VEHICLE_SLOT_STATS_FROM_SAVEGAME: START----") PRINTLN("[BIKER_CLIENT] MP_SAVE_BIKER_CLIENT_VEHICLE_SLOT_STATS_FROM_SAVEGAME: copying data for vehicle character slot #", iCharacterSlot) //packed stats STATS_PACKED packedStat packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_PRIMARY_COLOUR_GROUP_BIKER_VEH) SET_PACKED_STAT_INT(packedStat, vehicleStruct.iPrimaryColourGroup, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_SECONDARY_COLOUR_GROUP_BIKER_VEH) SET_PACKED_STAT_INT(packedStat, vehicleStruct.iSecondaryColourGroup, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED,PACKED_MP_VEH_PLATE_ID_BIKER_VEH) SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iPlateIndex, iCharacterSlot) REPEAT MAX_VEHICLE_MOD_SLOTS i packedStat = INT_TO_ENUM(STATS_PACKED, ENUM_TO_INT(PACKED_MP_VEH_MOD_IDX_START_BIKER_VEH) + i) SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iModIndex[i], iCharacterSlot) ENDREPEAT i = 0 REPEAT MAX_VEHICLE_MOD_VAR_SLOTS i packedStat = INT_TO_ENUM(STATS_PACKED, ENUM_TO_INT(PACKED_MP_VEH_MOD_VAR_START_BIKER_VEH) + i) SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iModVariation[i], iCharacterSlot) ENDREPEAT packedStat = INT_TO_ENUM(STATS_PACKED,PACKED_MP_VEH_TYRE_R_BIKER_VEH) SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iTyreR, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_TYRE_G_BIKER_VEH) SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iTyreG, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED,PACKED_MP_VEH_TYRE_B_BIKER_VEH) SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iTyreB, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_WINDOW_TINT_BIKER_VEH) SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iWindowTintColour, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_LIVERY_BIKER_VEH) SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iLivery, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_ROOF_STATE_BIKER_VEH) SET_PACKED_STAT_INT(packedStat, ENUM_TO_INT(vehicleStruct.vehicleSetupMP.VehicleSetup.eRoofState), iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_WHEEL_TYPE_BIKER_VEH) SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iWheelType, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_CUST_R_BIKER_VEH) SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iCustomR, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_CUST_G_BIKER_VEH) SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iCustomG, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_CUST_B_BIKER_VEH) SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iCustomB, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_COLOUR1_BIKER_VEH) SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iColour1, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_COLOUR2_BIKER_VEH) SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iColour2, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_COLOUR_EXTRA1_BIKER_VEH) SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iColourExtra1, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_COLOUR_EXTRA2_BIKER_VEH) SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iColourExtra2, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_NEON_R_BIKER_VEH) SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iNeonR, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_NEON_G_BIKER_VEH) SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iNeonG, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_NEON_B_BIKER_VEH) SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.VehicleSetup.iNeonB, iCharacterSlot) PRINTLN("[BIKER_CLIENT] MP_SAVE_BIKER_CLIENT_VEHICLE_SLOT_STATS_FROM_SAVEGAME: NEON R = ",vehicleStruct.vehicleSetupMP.VehicleSetup.iNeonR," G = ",vehicleStruct.vehicleSetupMP.VehicleSetup.iNeonG," B = ",vehicleStruct.vehicleSetupMP.VehicleSetup.iNeonB) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_COLOUR_5_BIKER_VEH) SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.iColour5, iCharacterSlot) PRINTLN("[BIKER_CLIENT] MP_SAVE_BIKER_CLIENT_VEHICLE_SLOT_STATS_FROM_SAVEGAME: iColour5 = ",vehicleStruct.vehicleSetupMP.iColour5) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_COLOUR_5_BIKER_VEH) SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.iColour6, iCharacterSlot) PRINTLN("[BIKER_CLIENT] MP_SAVE_BIKER_CLIENT_VEHICLE_SLOT_STATS_FROM_SAVEGAME: iColour6 = ",vehicleStruct.vehicleSetupMP.iColour6) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_LIVERY2_BIKER_VEH) SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.iLivery2, iCharacterSlot) PRINTLN("[BIKER_CLIENT] MP_SAVE_BIKER_CLIENT_VEHICLE_SLOT_STATS_FROM_SAVEGAME: iLivery2 = ",vehicleStruct.vehicleSetupMP.iLivery2) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_BULLETPROOF_TYRES_BIKER_VEH) SET_PACKED_STAT_INT(packedStat, vehicleStruct.vehicleSetupMP.iTyreType, iCharacterSlot) PRINTLN("[BIKER_CLIENT] MP_SAVE_BIKER_CLIENT_VEHICLE_SLOT_STATS_FROM_SAVEGAME: iTyreType = ",vehicleStruct.vehicleSetupMP.iTyreType) //not packable SET_MP_INT_CHARACTER_STAT(MP_STAT_MPSV_VEHICLE_BS_BIKER_CLT, vehicleStruct.iVehicleBS, iCharacterSlot) PRINTLN("[BIKER_CLIENT] MP_SAVE_BIKER_CLIENT_VEHICLE_SLOT_STATS_FROM_SAVEGAME: iVehicleBS = ",vehicleStruct.iVehicleBS) //model enum SET_MP_INT_CHARACTER_STAT(MP_STAT_MPSV_MODEL_BIKER_CLT, ENUM_TO_INT(vehicleStruct.vehicleSetupMP.VehicleSetup.eModel), iCharacterSlot) PRINTLN("[BIKER_CLIENT] MP_SAVE_BIKER_CLIENT_VEHICLE_SLOT_STATS_FROM_SAVEGAME: model enum = ", ENUM_TO_INT(vehicleStruct.vehicleSetupMP.VehicleSetup.eModel)) #IF IS_DEBUG_BUILD IF IS_MODEL_IN_CDIMAGE(vehicleStruct.vehicleSetupMP.VehicleSetup.eModel) PRINTLN("[BIKER_CLIENT] Name = ",GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(vehicleStruct.vehicleSetupMP.VehicleSetup.eModel)) ELSE PRINTLN("[BIKER_CLIENT] Name = ",vehicleStruct.vehicleSetupMP.VehicleSetup.eModel) ENDIF #ENDIF //not packable SET_MP_INT_CHARACTER_STAT(MP_STAT_MPSV_FLAGS_BIKER_CLT, vehicleStruct.vehicleSetupMP.VehicleSetup.iFlags, iCharacterSlot) IF NOT IS_STRING_NULL_OR_EMPTY(vehicleStruct.vehicleSetupMP.VehicleSetup.tlPlateText) SET_MP_VEHICLE_LICENSE_PLATE_CHARACTER_STAT(MP_STAT_MPSV_LP0_BIKER_CLT, vehicleStruct.vehicleSetupMP.VehicleSetup.tlPlateText, iCharacterSlot) ENDIF RETURN TRUE ENDFUNC FUNC BOOL MP_GET_BIKER_CLIENT_VEHICLE_STATS_FROM_SAVEGAME(MP_SAVED_TUNER_CLIENT_VEHICLE_STRUCT &vehicleStruct) INT iCharacterSlot = GET_ACTIVE_CHARACTER_SLOT() //vehicle setup details INT i STATS_PACKED packedStat PRINTLN("[BIKER_CLIENT] ----- MP_GET_BIKER_CLIENT_VEHICLE_STATS_FROM_SAVEGAME: START ----- ") PRINTLN("[BIKER_CLIENT] MP_GET_BIKER_CLIENT_VEHICLE_STATS_FROM_SAVEGAME: copying data for iCharacterSlot #", iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_PRIMARY_COLOUR_GROUP_BIKER_VEH) vehicleStruct.iPrimaryColourGroup = GET_PACKED_STAT_INT(packedStat, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_SECONDARY_COLOUR_GROUP_BIKER_VEH) vehicleStruct.iSecondaryColourGroup = GET_PACKED_STAT_INT(packedStat, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_PLATE_ID_BIKER_VEH) vehicleStruct.vehicleSetupMP.VehicleSetup.iPlateIndex = GET_PACKED_STAT_INT(packedStat, iCharacterSlot) REPEAT MAX_VEHICLE_MOD_SLOTS i packedStat = INT_TO_ENUM(STATS_PACKED, ENUM_TO_INT(PACKED_MP_VEH_MOD_IDX_START_BIKER_VEH) + i) vehicleStruct.vehicleSetupMP.VehicleSetup.iModIndex[i] = GET_PACKED_STAT_INT(packedStat, iCharacterSlot) ENDREPEAT i = 0 REPEAT MAX_VEHICLE_MOD_VAR_SLOTS i packedStat = INT_TO_ENUM(STATS_PACKED, ENUM_TO_INT(PACKED_MP_VEH_MOD_VAR_START_BIKER_VEH) + i) vehicleStruct.vehicleSetupMP.VehicleSetup.iModVariation[i] = GET_PACKED_STAT_INT(packedStat, iCharacterSlot) ENDREPEAT // PC OVERRIDE - TYRE VARIANTS IF USE_SERVER_TRANSACTIONS() IF GET_PACKED_STAT_INT(INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_MOD_VAR_START_BIKER_VEH), iCharacterSlot) = 1 IF vehicleStruct.vehicleSetupMP.VehicleSetup.iModVariation[1] != 1 vehicleStruct.vehicleSetupMP.VehicleSetup.iModVariation[1] = 1 PRINTLN("[BIKER_CLIENT] MP_GET_BIKER_CLIENT_VEHICLE_STATS_FROM_SAVEGAME forcing mod var for mod_rear_wheels") ENDIF ENDIF ENDIF packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_TYRE_R_BIKER_VEH) vehicleStruct.vehicleSetupMP.VehicleSetup.iTyreR = GET_PACKED_STAT_INT(packedStat, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_TYRE_G_BIKER_VEH) vehicleStruct.vehicleSetupMP.VehicleSetup.iTyreG = GET_PACKED_STAT_INT(packedStat, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_TYRE_B_BIKER_VEH) vehicleStruct.vehicleSetupMP.VehicleSetup.iTyreB = GET_PACKED_STAT_INT(packedStat, iCharacterSlot) // PC OVERRIDE - TYRE SMOKE IF USE_SERVER_TRANSACTIONS() packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_SMOKE_BIKER_VEH) TYRE_SMOKE_COLOUR_ENUM eTyreSmoke = GET_TYRE_SMOKE_COLOUR_ENUM_FORM_CATALOGUE_INDEX(GET_PACKED_STAT_INT(packedStat, iCharacterSlot)) INT iTyreR, iTyreG, iTyreB GET_TYRE_SMOKE_RGB_FROM_COLOUR_ENUM(eTyreSmoke, iTyreR, iTyreG, iTyreB) IF eTyreSmoke = TYRE_SMOKE_INVALID vehicleStruct.vehicleSetupMP.VehicleSetup.iModIndex[MOD_TOGGLE_TYRE_SMOKE] = 0 PRINTLN("[BIKER_CLIENT] MP_GET_BIKER_CLIENT_VEHICLE_STATS_FROM_SAVEGAME forcing TYRE_SMOKE_INVALID") ELIF eTyreSmoke = TYRE_SMOKE_CREW vehicleStruct.vehicleSetupMP.VehicleSetup.iTyreR = g_Private_LocalPlayerCrew_Colour_Red vehicleStruct.vehicleSetupMP.VehicleSetup.iTyreG = g_Private_LocalPlayerCrew_Colour_Green vehicleStruct.vehicleSetupMP.VehicleSetup.iTyreB = g_Private_LocalPlayerCrew_Colour_Blue vehicleStruct.vehicleSetupMP.VehicleSetup.iModIndex[MOD_TOGGLE_TYRE_SMOKE] = 1 PRINTLN("[BIKER_CLIENT] MP_GET_BIKER_CLIENT_VEHICLE_STATS_FROM_SAVEGAME forcing TYRE_SMOKE_CREW") ELSE vehicleStruct.vehicleSetupMP.VehicleSetup.iTyreR = iTyreR vehicleStruct.vehicleSetupMP.VehicleSetup.iTyreG = iTyreG vehicleStruct.vehicleSetupMP.VehicleSetup.iTyreB = iTyreB vehicleStruct.vehicleSetupMP.VehicleSetup.iModIndex[MOD_TOGGLE_TYRE_SMOKE] = 1 PRINTLN("[BIKER_CLIENT] MP_GET_BIKER_CLIENT_VEHICLE_STATS_FROM_SAVEGAME forcing tyre smoke enum eTyreSmoke") ENDIF ENDIF packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_WINDOW_TINT_BIKER_VEH) vehicleStruct.vehicleSetupMP.VehicleSetup.iWindowTintColour = GET_PACKED_STAT_INT(packedStat, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_LIVERY_BIKER_VEH) vehicleStruct.vehicleSetupMP.VehicleSetup.iLivery = GET_PACKED_STAT_INT(packedStat, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_ROOF_STATE_BIKER_VEH) vehicleStruct.vehicleSetupMP.VehicleSetup.eRoofState = INT_TO_ENUM(CONVERTIBLE_ROOF_STATE, GET_PACKED_STAT_INT(packedStat, iCharacterSlot)) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_WHEEL_TYPE_BIKER_VEH) vehicleStruct.vehicleSetupMP.VehicleSetup.iWheelType = GET_PACKED_STAT_INT(packedStat, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_CUST_R_BIKER_VEH) vehicleStruct.vehicleSetupMP.VehicleSetup.iCustomR = GET_PACKED_STAT_INT(packedStat, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_CUST_G_BIKER_VEH) vehicleStruct.vehicleSetupMP.VehicleSetup.iCustomG = GET_PACKED_STAT_INT(packedStat, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_CUST_B_BIKER_VEH) vehicleStruct.vehicleSetupMP.VehicleSetup.iCustomB = GET_PACKED_STAT_INT(packedStat, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_COLOUR1_BIKER_VEH) vehicleStruct.vehicleSetupMP.VehicleSetup.iColour1 = GET_PACKED_STAT_INT(packedStat, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_COLOUR2_BIKER_VEH) vehicleStruct.vehicleSetupMP.VehicleSetup.iColour2 = GET_PACKED_STAT_INT(packedStat, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_COLOUR_EXTRA1_BIKER_VEH) vehicleStruct.vehicleSetupMP.VehicleSetup.iColourExtra1 = GET_PACKED_STAT_INT(packedStat, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_COLOUR_EXTRA2_BIKER_VEH) vehicleStruct.vehicleSetupMP.VehicleSetup.iColourExtra2 = GET_PACKED_STAT_INT(packedStat, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_NEON_R_BIKER_VEH) vehicleStruct.vehicleSetupMP.VehicleSetup.iNeonR = GET_PACKED_STAT_INT(packedStat, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_NEON_G_BIKER_VEH) vehicleStruct.vehicleSetupMP.VehicleSetup.iNeonG = GET_PACKED_STAT_INT(packedStat, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_NEON_B_BIKER_VEH) vehicleStruct.vehicleSetupMP.VehicleSetup.iNeonB = GET_PACKED_STAT_INT(packedStat, iCharacterSlot) // PC OVERRIDE - NEON LIGHTS IF USE_SERVER_TRANSACTIONS() packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_NEON_BIKER_VEH) INT iNeonR, iNeonG, iNeonB IF GET_NEON_RGB_FOR_CATALOGUE_INDEX(GET_PACKED_STAT_INT(packedStat, iCharacterSlot), iNeonR, iNeonG, iNeonB) vehicleStruct.vehicleSetupMP.VehicleSetup.iNeonR = iNeonR vehicleStruct.vehicleSetupMP.VehicleSetup.iNeonG = iNeonG vehicleStruct.vehicleSetupMP.VehicleSetup.iNeonB = iNeonB PRINTLN("[BIKER_CLIENT] MP_GET_BIKER_CLIENT_VEHICLE_STATS_FROM_SAVEGAME forcing neon colour ", GET_MOD_SHOP_NEON_COLOUR(iNeonR, iNeonG, iNeonB)) ENDIF ENDIF packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_COLOUR_5_BIKER_VEH) vehicleStruct.vehicleSetupMP.iColour5 = GET_PACKED_STAT_INT(packedStat, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_COLOUR_6_BIKER_VEH) vehicleStruct.vehicleSetupMP.iColour6 = GET_PACKED_STAT_INT(packedStat, iCharacterSlot) packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_LIVERY2_BIKER_VEH) vehicleStruct.vehicleSetupMP.iLivery2 = GET_PACKED_STAT_INT(packedStat, iCharacterSlot) //not packable vehicleStruct.iVehicleBS = GET_MP_INT_CHARACTER_STAT(MP_STAT_MPSV_VEHICLE_BS_BIKER_CLT, iCharacterSlot) PRINTLN("[BIKER_CLIENT] MP_GET_BIKER_CLIENT_VEHICLE_STATS_FROM_SAVEGAME vehicleStruct.iVehicleBS: ", vehicleStruct.iVehicleBS) //model enum vehicleStruct.vehicleSetupMP.VehicleSetup.eModel = INT_TO_ENUM(MODEL_NAMES, GET_MP_INT_CHARACTER_STAT(MP_STAT_MPSV_MODEL_BIKER_CLT, iCharacterSlot)) vehicleStruct.vehicleSetupMP.VehicleSetup.iFlags = GET_MP_INT_CHARACTER_STAT(MP_STAT_MPSV_FLAGS_BIKER_CLT, iCharacterSlot) // PC OVERRIDE - ROOF VARIANTS Special case for COQUETTE // IF USE_SERVER_TRANSACTIONS() // IF vehicleStruct.vehicleSetupMP.VehicleSetup.eModel = COQUETTE // IF vehicleStruct.vehicleSetupMP.VehicleSetup.iModIndex[MOD_ROOF] = 0 // Stock roof // //SET_BIT(vehicleStruct.vehicleSetupMP.VehicleSetup.iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) // Skip // ELIF vehicleStruct.vehicleSetupMP.VehicleSetup.iModIndex[MOD_ROOF] = 1 // Topless // CLEAR_BIT(vehicleStruct.vehicleSetupMP.VehicleSetup.iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) // vehicleStruct.vehicleSetupMP.VehicleSetup.iModIndex[MOD_ROOF] = 0 // ELIF vehicleStruct.vehicleSetupMP.VehicleSetup.iModIndex[MOD_ROOF] = 2 // Carbon roof // CLEAR_BIT(vehicleStruct.vehicleSetupMP.VehicleSetup.iFlags, VEHICLE_SETUP_FLAG_EXTRA_1) // vehicleStruct.vehicleSetupMP.VehicleSetup.iModIndex[MOD_ROOF] = 1 // ENDIF // // ELIF vehicleStruct.vehicleSetupMP.VehicleSetup.eModel = PFISTER811 // IF vehicleStruct.vehicleSetupMP.VehicleSetup.iModIndex[MOD_ROOF] = 0 // Stock roof // //SET_BIT(vehicleStruct.vehicleSetupMP.VehicleSetup.iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) // Skip // ELIF vehicleStruct.vehicleSetupMP.VehicleSetup.iModIndex[MOD_ROOF] = 1 // Topless // CLEAR_BIT(vehicleStruct.vehicleSetupMP.VehicleSetup.iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) // vehicleStruct.vehicleSetupMP.VehicleSetup.iModIndex[MOD_ROOF] = 0 // ELIF vehicleStruct.vehicleSetupMP.VehicleSetup.iModIndex[MOD_ROOF] = 2 // Carbon roof // CLEAR_BIT(vehicleStruct.vehicleSetupMP.VehicleSetup.iFlags, VEHICLE_SETUP_FLAG_EXTRA_0) // vehicleStruct.vehicleSetupMP.VehicleSetup.iModIndex[MOD_ROOF] = 1 // ENDIF // ENDIF // ENDIF IF NOT IS_STRING_NULL_OR_EMPTY(GET_MP_VEHICLE_LICENSE_PLATE_CHARACTER_STAT(MP_STAT_MPSV_LP0_BIKER_CLT, iCharacterSlot)) vehicleStruct.vehicleSetupMP.VehicleSetup.tlPlateText = GET_MP_VEHICLE_LICENSE_PLATE_CHARACTER_STAT(MP_STAT_MPSV_LP0_BIKER_CLT) ENDIF packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_BULLETPROOF_TYRES_BIKER_VEH) vehicleStruct.vehicleSetupMP.iTyreType = GET_PACKED_STAT_INT(packedStat, iCharacterSlot) // PC OVERRIDE - BULLETPROOF TYRES IF USE_SERVER_TRANSACTIONS() packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_BULLETPROOF_TYRES_BIKER_VEH) vehicleStruct.vehicleSetupMP.iTyreType = GET_PACKED_STAT_INT(packedStat, iCharacterSlot) IF GET_PACKED_STAT_INT(packedStat) = 1 SET_BIT(vehicleStruct.vehicleSetupMP.iFlags,VEHICLE_SETUP_FLAG_BULLETPROOF_TYRES) ELSE CLEAR_BIT(vehicleStruct.vehicleSetupMP.iFlags,VEHICLE_SETUP_FLAG_BULLETPROOF_TYRES) ENDIF ENDIF // PC OVERRIDE - NEON LAYOUT IF USE_SERVER_TRANSACTIONS() packedStat = INT_TO_ENUM(STATS_PACKED, PACKED_MP_VEH_NEON_LAYOUT_BIKER_VEH) INT iNeonLayout = GET_PACKED_STAT_INT(packedStat, iCharacterSlot) PRINTLN("[BIKER_CLIENT] forcing neon layout ", iNeonLayout) IF IS_NEON_ID_USED_IN_LAYOUT(iNeonLayout, NEON_FRONT) SET_BIT(vehicleStruct.vehicleSetupMP.VehicleSetup.iFlags, VEHICLE_SETUP_FLAG_NEON_FRONT) ELSE CLEAR_BIT(vehicleStruct.vehicleSetupMP.VehicleSetup.iFlags, VEHICLE_SETUP_FLAG_NEON_FRONT) ENDIF IF IS_NEON_ID_USED_IN_LAYOUT(iNeonLayout, NEON_BACK) SET_BIT(vehicleStruct.vehicleSetupMP.VehicleSetup.iFlags, VEHICLE_SETUP_FLAG_NEON_BACK) ELSE CLEAR_BIT(vehicleStruct.vehicleSetupMP.VehicleSetup.iFlags, VEHICLE_SETUP_FLAG_NEON_BACK) ENDIF IF IS_NEON_ID_USED_IN_LAYOUT(iNeonLayout, NEON_LEFT) SET_BIT(vehicleStruct.vehicleSetupMP.VehicleSetup.iFlags, VEHICLE_SETUP_FLAG_NEON_LEFT) ELSE CLEAR_BIT(vehicleStruct.vehicleSetupMP.VehicleSetup.iFlags, VEHICLE_SETUP_FLAG_NEON_LEFT) ENDIF IF IS_NEON_ID_USED_IN_LAYOUT(iNeonLayout, NEON_RIGHT) SET_BIT(vehicleStruct.vehicleSetupMP.VehicleSetup.iFlags, VEHICLE_SETUP_FLAG_NEON_RIGHT) ELSE CLEAR_BIT(vehicleStruct.vehicleSetupMP.VehicleSetup.iFlags, VEHICLE_SETUP_FLAG_NEON_RIGHT) ENDIF ENDIF #IF IS_DEBUG_BUILD //NET_PRINT_VEHICLE_SETUP_STRUCT(vehicleStruct.vehicleSetupMP) IF IS_MODEL_IN_CDIMAGE(vehicleStruct.vehicleSetupMP.VehicleSetup.eModel) PRINTLN("[BIKER_CLIENT] MP_GET_BIKER_CLIENT_VEHICLE_STATS_FROM_SAVEGAME: model = ",GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(vehicleStruct.vehicleSetupMP.VehicleSetup.eModel)) ELSE PRINTLN("[BIKER_CLIENT] MP_GET_BIKER_CLIENT_VEHICLE_STATS_FROM_SAVEGAME: model = ",vehicleStruct.vehicleSetupMP.VehicleSetup.eModel) ENDIF #ENDIF RETURN TRUE ENDFUNC FUNC INT GET_BIKER_CLIENT_VEHICLE_PRICE() RETURN g_sMPTunables.iBIKER_CLIENT_VEH_MODIFICATION_PRICE ENDFUNC FUNC INT GET_BIKER_CLIENT_VEHICLE_MODIFICATION_INVENTORY_KEY_FOR_CATALOGUE() TEXT_LABEL_63 tlGeneratedKey = "MP_STAT_MISSION_BIKER_CLIENT_v0" RETURN GET_HASH_KEY(tlGeneratedKey) ENDFUNC FUNC INT GET_BIKER_CLIENT_VEHICLE_MODIFICATION_ITEM_KEY_FOR_CATALOGUE() TEXT_LABEL_63 tlGeneratedKey = "BCM_VEH_0_t0_v0_SELL" RETURN GET_HASH_KEY(tlGeneratedKey) ENDFUNC FUNC INT GET_BIKER_CLIENT_VEHICLE_INVENTORY_KEY_FOR_CATALOGUE() TEXT_LABEL_63 tlGeneratedKey = "MP_STAT_BIKER_CLIENT_VEHICLE_v0" RETURN GET_HASH_KEY(tlGeneratedKey) ENDFUNC FUNC BOOL PROCESS_TRANSACTION_FOR_BIKER_CLIENT_VEHICLE_MODIFICATION(INT iCost, CONTRABAND_TRANSACTION_STATE &eResult) // Cleanup previous attempts IF eResult != CONTRABAND_TRANSACTION_STATE_DEFAULT AND eResult != CONTRABAND_TRANSACTION_STATE_PENDING eResult = CONTRABAND_TRANSACTION_STATE_DEFAULT ENDIF SWITCH eResult // Start the transaction CASE CONTRABAND_TRANSACTION_STATE_DEFAULT IF GET_BASKET_TRANSACTION_SCRIPT_INDEX() != -1 CPRINTLN(DEBUG_SHOPS, "[BIKER_CLIENT] PROCESS_TRANSACTION_FOR_BIKER_CLIENT_VEHICLE_MODIFICATION - Transaction waiting") RETURN FALSE ENDIF INT iInventoryKey, iItemID iInventoryKey = GET_BIKER_CLIENT_VEHICLE_MODIFICATION_INVENTORY_KEY_FOR_CATALOGUE() iItemID = GET_BIKER_CLIENT_VEHICLE_MODIFICATION_ITEM_KEY_FOR_CATALOGUE() //0: CATEGORY_INVENTORY_CONTRABAND_MISSION, CATEGORY_CONTRABAND_MISSION IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, CATEGORY_INVENTORY_CONTRABAND_MISSION, iItemID, NET_SHOP_ACTION_BUY_CONTRABAND_MISSION, 1, iCost, 1, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey) eResult = CONTRABAND_TRANSACTION_STATE_PENDING ELSE eResult = CONTRABAND_TRANSACTION_STATE_FAILED CPRINTLN(DEBUG_SHOPS, "[BIKER_CLIENT] PROCESS_TRANSACTION_FOR_BIKER_CLIENT_VEHICLE_MODIFICATION - Failed to add mission item") ENDIF IF eResult = CONTRABAND_TRANSACTION_STATE_PENDING AND NETWORK_START_BASKET_TRANSACTION_CHECKOUT() CPRINTLN(DEBUG_SHOPS, "[BIKER_CLIENT] PROCESS_TRANSACTION_FOR_BIKER_CLIENT_VEHICLE_MODIFICATION - Starting basket checkout") ELSE eResult = CONTRABAND_TRANSACTION_STATE_FAILED DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX()) CPRINTLN(DEBUG_SHOPS, "[BIKER_CLIENT] PROCESS_TRANSACTION_FOR_BIKER_CLIENT_VEHICLE_MODIFICATION - Failed to start checkout") ENDIF BREAK CASE CONTRABAND_TRANSACTION_STATE_PENDING IF IS_CASH_TRANSACTION_COMPLETE(GET_BASKET_TRANSACTION_SCRIPT_INDEX()) IF GET_CASH_TRANSACTION_STATUS(GET_BASKET_TRANSACTION_SCRIPT_INDEX()) = CASH_TRANSACTION_STATUS_SUCCESS CPRINTLN(DEBUG_SHOPS, "[BIKER_CLIENT] PROCESS_TRANSACTION_FOR_BIKER_CLIENT_VEHICLE_MODIFICATION - Transaction finished - SUCCESS") NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX())) NETWORK_SPEND_BIKE_SHOP(iCost, FALSE, TRUE, GET_HASH_KEY(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(GET_BIKER_CLIENT_VEHICLE_MODEL()))) eResult = CONTRABAND_TRANSACTION_STATE_SUCCESS DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX()) ELSE CPRINTLN(DEBUG_SHOPS, "[BIKER_CLIENT] PROCESS_TRANSACTION_FOR_BIKER_CLIENT_VEHICLE_MODIFICATION - Transaction finished - FAILED") eResult = CONTRABAND_TRANSACTION_STATE_FAILED DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX()) ENDIF ENDIF BREAK ENDSWITCH RETURN (eResult != CONTRABAND_TRANSACTION_STATE_PENDING) ENDFUNC FUNC BOOL BUY_MP_BIKER_CLIENT_VEHICLE_MODIFICATION(INT iCost, CONTRABAND_TRANSACTION_STATE &eResult) IF USE_SERVER_TRANSACTIONS() /////////////////////////////////////////// /// TRANSACTION FOR CLIENT VEHICLE MODIFICATION WHILE NOT PROCESS_TRANSACTION_FOR_BIKER_CLIENT_VEHICLE_MODIFICATION(iCost, eResult) eResult = CONTRABAND_TRANSACTION_STATE_PENDING RETURN FALSE ENDWHILE IF eResult = CONTRABAND_TRANSACTION_STATE_FAILED CWARNINGLN(DEBUG_INTERNET, "[BIKER_CLIENT] BUY_MP_BIKER_CLIENT_VEHICLE_MODIFICATION: failed to process transaction") RETURN FALSE ELIF eResult = CONTRABAND_TRANSACTION_STATE_SUCCESS SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_BIKER_CLIENT_VEHICLE_MODIFICATION(), 1) CPRINTLN(DEBUG_INTERNET, "[BIKER_CLIENT] BUY_MP_BIKER_CLIENT_VEHICLE_MODIFICATION: success!!") ENDIF ELSE CPRINTLN(DEBUG_INTERNET, "[BIKER_CLIENT] BUY_MP_BIKER_CLIENT_VEHICLE_MODIFICATION: ignore NETWORK_REQUEST_BASKET_TRANSACTION") NETWORK_SPEND_BIKE_SHOP(iCost, FALSE, TRUE, GET_HASH_KEY(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(GET_BIKER_CLIENT_VEHICLE_MODEL()))) SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_BIKER_CLIENT_VEHICLE_MODIFICATION(), 1) ENDIF RETURN TRUE ENDFUNC PROC CLEAR_BIKER_CLIENT_DELIVERY_DATA() SET_BIKER_CLIENT_VEHICLE_BONUS_AMOUNT(0) SET_PLAYER_SELECTED_TO_DELIVER_BIKER_CLIENT_VEHICLE(FALSE) ENDPROC PROC CLEANUP_BIKER_CLIENT_VEHICLE_MODIFICATION_TASKS() SET_PACKED_STAT_INT(GET_BIKER_CLIENT_VEHICLE_RESPRAY_PACKED_STAT(), 0) INT i = 0 FOR i = 0 TO 2 IF GET_BIKER_CLIENT_VEHICLE_PERFORMANCE_PACKED_STAT(i) != START_MP_CHAR_BOOL_PACKED SET_PACKED_STAT_INT(GET_BIKER_CLIENT_VEHICLE_PERFORMANCE_PACKED_STAT(i), 0) ENDIF IF GET_BIKER_CLIENT_VEHICLE_BODYWORK_PACKED_STAT(i) != START_MP_CHAR_BOOL_PACKED SET_PACKED_STAT_INT(GET_BIKER_CLIENT_VEHICLE_BODYWORK_PACKED_STAT(i), 0) ENDIF ENDFOR SET_PACKED_STAT_INT(GET_BIKER_CLIENT_VEHICLE_WHEEL_TYPE_PACKED_STAT(), -1) ENDPROC PROC CLEAR_BIKER_CLIENT_VEHICLE_STATS() SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_BIKER_CLIENT_VEHICLE_MODIFICATION(), 0) SET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_BIKER_CLIENT_VEHICLE(), 0) CLEANUP_BIKER_CLIENT_VEHICLE_MODIFICATION_TASKS() CLEAR_BIKER_CLIENT_VEHICLE_SETUP() MP_SAVE_BIKER_CLIENT_VEHICLE_SLOT_STATS_FROM_SAVEGAME(g_sBikerClientVehicleSetupStruct) INT iCoolDownTime = g_sMPTunables.iBIKER_CLIENT_VEH_SPAWN_COOLDOWN_POSIX_TIME iCoolDownTime = iCoolDownTime + GET_CLOUD_TIME_AS_INT() SET_MP_INT_CHARACTER_STAT(MP_STAT_BIKER_CLIENT_VEHICLE_POSSIX, iCoolDownTime) PRINTLN("CLEAR_BIKER_CLIENT_VEHICLE_STATS iCoolDownTime: ", iCoolDownTime) ENDPROC FUNC MODEL_NAMES GET_BIKER_CLIENT_VEHICLE_MODEL_FROM_INT(INT iVehicleID) SWITCH iVehicleID // Keep 0 as invalid CASE 1 RETURN REEVER CASE 2 RETURN SHINOBI CASE 3 RETURN STRYDER CASE 4 RETURN FCR2 CASE 5 RETURN DIABLOUS2 CASE 6 RETURN ESSKEY CASE 7 RETURN VORTEX CASE 8 RETURN DAEMON2 CASE 9 RETURN ZOMBIEA CASE 10 RETURN ZOMBIEB CASE 11 RETURN WOLFSBANE CASE 12 RETURN NIGHTBLADE CASE 13 RETURN MANCHEZ CASE 14 RETURN HAKUCHOU2 CASE 15 RETURN FAGGIO3 CASE 16 RETURN DEFILER CASE 17 RETURN CHIMERA CASE 18 RETURN AVARUS CASE 19 RETURN BLAZER4 ENDSWITCH RETURN DUMMY_MODEL_FOR_SCRIPT ENDFUNC FUNC BOOL PROCESS_TRANSACTION_FOR_REMOVE_BIKER_CLIENT_VEHICLE(INT iEarnValue, REMOVE_CONTRABAND_REASON_ENUM eReason, CONTRABAND_TRANSACTION_STATE &eResult) // Cleanup previous attempts IF eResult != CONTRABAND_TRANSACTION_STATE_DEFAULT AND eResult != CONTRABAND_TRANSACTION_STATE_PENDING eResult = CONTRABAND_TRANSACTION_STATE_DEFAULT ENDIF SWITCH eResult // Start the transaction CASE CONTRABAND_TRANSACTION_STATE_DEFAULT INT iInventoryKey, iMissionKey, iQuantityKey, iFlagKey, iVehicleID iVehicleID = GET_MP_INT_CHARACTER_STAT(GET_FM_INT_STAT_FOR_BIKER_CLIENT_VEHICLE()) iInventoryKey = GET_BIKER_CLIENT_VEHICLE_MODIFICATION_INVENTORY_KEY_FOR_CATALOGUE() iMissionKey = GET_BIKER_CLIENT_VEHICLE_MODIFICATION_ITEM_KEY_FOR_CATALOGUE() iQuantityKey = GET_BIKER_CLIENT_VEHICLE_INVENTORY_KEY_FOR_CATALOGUE() SWITCH eReason CASE REMOVE_CONTRA_ATTACKED iFlagKey = HASH("CF_ATTACKED") BREAK CASE REMOVE_CONTRA_MISSION_STARTED iFlagKey = HASH("CF_MISSION_STARTED") BREAK CASE REMOVE_CONTRA_MISSION_FAILED iFlagKey = HASH("CF_MISSION_FAILED") BREAK CASE REMOVE_CONTRA_MISSION_PASSED iFlagKey = HASH("CF_TUNER_MISSION_PASSED") BREAK ENDSWITCH //0: CATEGORY_INVENTORY_CONTRABAND_MISSION, CATEGORY_CONTRABAND_MISSION IF eReason = REMOVE_CONTRA_ATTACKED OR NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, CATEGORY_INVENTORY_CONTRABAND_MISSION, iMissionKey, NET_SHOP_ACTION_REMOVE_CONTRABAND, 1, 0, 1, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iInventoryKey) //1: CATEGORY_CONTRABAND_QNTY, IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, CATEGORY_CONTRABAND_QNTY, iQuantityKey, NET_SHOP_ACTION_REMOVE_CONTRABAND, iVehicleID, 0, 1, CATALOG_ITEM_FLAG_BANK_THEN_WALLET) //3: MISSION_PASSED, CATEGORY_CONTRABAND_QNTY IF NETWORK_REQUEST_BASKET_TRANSACTION(NET_SHOP_TTYPE_BASKET, CATEGORY_CONTRABAND_FLAGS, iFlagKey, NET_SHOP_ACTION_REMOVE_CONTRABAND, 1, iEarnValue, 0, CATALOG_ITEM_FLAG_BANK_THEN_WALLET, iQuantityKey) eResult = CONTRABAND_TRANSACTION_STATE_PENDING ELSE eResult = CONTRABAND_TRANSACTION_STATE_FAILED CPRINTLN(DEBUG_SHOPS, "PROCESS_TRANSACTION_FOR_REMOVE_BIKER_CLIENT_VEHICLE - Failed to add flag item") ENDIF ELSE eResult = CONTRABAND_TRANSACTION_STATE_FAILED CPRINTLN(DEBUG_SHOPS, "PROCESS_TRANSACTION_FOR_REMOVE_BIKER_CLIENT_VEHICLE - Failed to add quantity item") ENDIF ELSE eResult = CONTRABAND_TRANSACTION_STATE_FAILED CPRINTLN(DEBUG_SHOPS, "PROCESS_TRANSACTION_FOR_REMOVE_BIKER_CLIENT_VEHICLE - Failed to add mission item") ENDIF IF eResult = CONTRABAND_TRANSACTION_STATE_PENDING AND NETWORK_START_BASKET_TRANSACTION_CHECKOUT() CPRINTLN(DEBUG_SHOPS, "PROCESS_TRANSACTION_FOR_REMOVE_BIKER_CLIENT_VEHICLE - Starting basket checkout") ELSE eResult = CONTRABAND_TRANSACTION_STATE_FAILED DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX()) CPRINTLN(DEBUG_SHOPS, "PROCESS_TRANSACTION_FOR_REMOVE_BIKER_CLIENT_VEHICLE - Failed to start checkout") ENDIF BREAK CASE CONTRABAND_TRANSACTION_STATE_PENDING IF IS_CASH_TRANSACTION_COMPLETE(GET_BASKET_TRANSACTION_SCRIPT_INDEX()) IF GET_CASH_TRANSACTION_STATUS(GET_BASKET_TRANSACTION_SCRIPT_INDEX()) = CASH_TRANSACTION_STATUS_SUCCESS CPRINTLN(DEBUG_SHOPS, "PROCESS_TRANSACTION_FOR_REMOVE_BIKER_CLIENT_VEHICLE - Transaction finished - SUCCESS") IF iEarnValue > 0 PRINTLN("PROCESS_TRANSACTION_FOR_REMOVE_BIKER_CLIENT_VEHICLE - Calling NETWORK_EARN_FROM_CONTRABAND: iEarnValue = ", iEarnValue) NET_GAMESERVER_SET_TELEMETRY_NONCE_SEED(GET_CASH_TRANSACTION_ID_FROM_INDEX(GET_BASKET_TRANSACTION_SCRIPT_INDEX())) NETWORK_EARN_BIKER_SHOP(iEarnValue, GET_HASH_KEY(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(GET_BIKER_CLIENT_VEHICLE_MODEL()))) ENDIF eResult = CONTRABAND_TRANSACTION_STATE_SUCCESS DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX()) ELSE CPRINTLN(DEBUG_SHOPS, "PROCESS_TRANSACTION_FOR_REMOVE_BIKER_CLIENT_VEHICLE - Transaction finished - FAILED") eResult = CONTRABAND_TRANSACTION_STATE_FAILED DELETE_CASH_TRANSACTION(GET_BASKET_TRANSACTION_SCRIPT_INDEX()) ENDIF ENDIF BREAK ENDSWITCH RETURN (eResult != CONTRABAND_TRANSACTION_STATE_PENDING) ENDFUNC PROC REMOVE_BIKER_CLIENT_VEHICLE(INT iEarnValue, REMOVE_CONTRABAND_REASON_ENUM eReason, CONTRABAND_TRANSACTION_STATE &eResult, BOOL bClearVehicleStats) // Reset state if we need to. IF eResult != CONTRABAND_TRANSACTION_STATE_DEFAULT AND eResult != CONTRABAND_TRANSACTION_STATE_PENDING eResult = CONTRABAND_TRANSACTION_STATE_DEFAULT ENDIF IF NOT USE_SERVER_TRANSACTIONS() CDEBUG1LN(DEBUG_SAFEHOUSE, "[BIKER_CLIENT] REMOVE_BIKER_CLIENT_VEHICLE iEarnValue: ", iEarnValue) IF iEarnValue > 0 NETWORK_EARN_BIKER_SHOP(iEarnValue, GET_HASH_KEY(GET_DISPLAY_NAME_FROM_VEHICLE_MODEL(GET_BIKER_CLIENT_VEHICLE_MODEL()))) ENDIF IF bClearVehicleStats CLEAR_BIKER_CLIENT_VEHICLE_STATS() ENDIF CLEAR_BIKER_CLIENT_DELIVERY_DATA() IF NETWORK_IS_ACTIVITY_SESSION() STAT_SET_OPEN_SAVETYPE_IN_JOB(STAT_SAVETYPE_END_SHOPPING) ENDIF REQUEST_SAVE(SSR_REASON_SPECIAL_CARGO_UPDATE, STAT_SAVETYPE_END_SHOPPING) CDEBUG1LN(DEBUG_SAFEHOUSE, "[BIKER_CLIENT] REMOVE_BIKER_CLIENT_VEHICLE iEarnValue: ", iEarnValue) eResult = CONTRABAND_TRANSACTION_STATE_SUCCESS ELSE IF iEarnValue <= 0 OR PROCESS_TRANSACTION_FOR_REMOVE_BIKER_CLIENT_VEHICLE(iEarnValue, eReason, eResult) CDEBUG1LN(DEBUG_SAFEHOUSE, "[BIKER_CLIENT] REMOVE_BIKER_CLIENT_VEHICLE iEarnValue: ", iEarnValue) IF eResult = CONTRABAND_TRANSACTION_STATE_SUCCESS OR iEarnValue <= 0 IF bClearVehicleStats CLEAR_BIKER_CLIENT_VEHICLE_STATS() ENDIF CLEAR_BIKER_CLIENT_DELIVERY_DATA() IF NETWORK_IS_ACTIVITY_SESSION() STAT_SET_OPEN_SAVETYPE_IN_JOB(STAT_SAVETYPE_END_SHOPPING) ENDIF REQUEST_SAVE(SSR_REASON_SPECIAL_CARGO_UPDATE, STAT_SAVETYPE_END_SHOPPING) CDEBUG1LN(DEBUG_SAFEHOUSE, "[BIKER_CLIENT] REMOVE_BIKER_CLIENT_VEHICLE iEarnValue: ", iEarnValue) eResult = CONTRABAND_TRANSACTION_STATE_SUCCESS ELIF eResult = CONTRABAND_TRANSACTION_STATE_FAILED CDEBUG1LN(DEBUG_SAFEHOUSE, "[BIKER_CLIENT] REMOVE_BIKER_CLIENT_VEHICLE: TRANSACTION FAILED ") eResult = CONTRABAND_TRANSACTION_STATE_FAILED ENDIF ENDIF ENDIF ENDPROC #ENDIF #IF FEATURE_GTAO_MEMBERSHIP FUNC BOOL DOES_VEHICLE_HAVE_GTAO_MEMBERSHIP_LIVERY(VEHICLE_INDEX vehToCheck) IF NOT DOES_ENTITY_EXIST(vehToCheck) RETURN FALSE ENDIF IF IS_ENTITY_DEAD(vehToCheck) RETURN FALSE ENDIF #IF FEATURE_GEN9_EXCLUSIVE IF NOT IS_VEHICLE_A_HSW_VEHICLE(vehToCheck) RETURN FALSE ENDIF #ENDIF IF GET_NUM_VEHICLE_MODS(vehToCheck, MOD_LIVERY) < 1 RETURN FALSE ENDIF MODEL_NAMES vehModel = GET_ENTITY_MODEL(vehToCheck) INT iLivery = GET_VEHICLE_MOD(vehToCheck, MOD_LIVERY) STRING strLivery IF iLivery >= 0 strLivery = GET_MOD_TEXT_LABEL(vehToCheck , MOD_LIVERY, iLivery) ENDIF IF IS_STRING_NULL_OR_EMPTY(strLivery) RETURN FALSE ENDIF SWITCH vehModel CASE DEVESTE IF ARE_STRINGS_EQUAL(strLivery, "HSW_LIV3") OR ARE_STRINGS_EQUAL(strLivery, "HSW_LIV4") RETURN TRUE ENDIF BREAK CASE BRIOSO IF ARE_STRINGS_EQUAL(strLivery, "HSW_LIV3BRIO") OR ARE_STRINGS_EQUAL(strLivery, "HSW_LIV4BRIO") RETURN TRUE ENDIF BREAK ENDSWITCH RETURN FALSE ENDFUNC #ENDIF FUNC BOOL DOES_VEHICLE_HAVE_WEAK_HANDBRAKE(VEHICLE_INDEX vehToCheck) IF NOT DOES_ENTITY_EXIST(vehToCheck) RETURN FALSE ENDIF IF IS_ENTITY_DEAD(vehToCheck) RETURN FALSE ENDIF MODEL_NAMES vehicleModel = GET_ENTITY_MODEL(vehToCheck) SWITCH vehicleModel CASE TEZERACT CASE OPPRESSOR2 CASE SCARAB CASE SCARAB2 CASE SCARAB3 CASE DEATHBIKE CASE DEATHBIKE2 CASE DEATHBIKE3 CASE CYCLONE #IF FEATURE_GEN9_EXCLUSIVE CASE CYCLONE2 #ENDIF #IF FEATURE_FIXER CASE ZENO CASE IWAGEN #ENDIF RETURN TRUE BREAK ENDSWITCH IF g_WeakHandBrakeVeh != DUMMY_MODEL_FOR_SCRIPT AND vehicleModel = g_WeakHandBrakeVeh RETURN TRUE ENDIF RETURN FALSE ENDFUNC FUNC BOOL IS_IMANI_TECH_ALLOWED_FOR_THIS_VEHICLE(MODEL_NAMES eRCModel) #IF FEATURE_FIXER SWITCH eRCModel CASE DEITY CASE GRANGER2 CASE BUFFALO4 CASE JUBILEE CASE PATRIOT3 CASE CHAMPION #IF FEATURE_DLC_1_2022 CASE GREENWOOD CASE OMNISEGT #ENDIF RETURN TRUE BREAK ENDSWITCH #ENDIF RETURN FALSE ENDFUNC FUNC INT GET_RANDOM_VEHICLE_MOD_INDEX(VEHICLE_INDEX vehIndex, MOD_TYPE eModType) INT iNumVehicleMod = GET_NUM_VEHICLE_MODS(vehIndex, eModType) IF iNumVehicleMod = 0 RETURN -1 ENDIF INT iNumLockedMod, i REPEAT iNumVehicleMod i IF IS_VEHICLE_MOD_LOCKED(vehIndex, eModType, i) iNumLockedMod++ ENDIF ENDREPEAT IF iNumLockedMod >= iNumVehicleMod RETURN -1 ENDIF INT iModIndex = GET_RANDOM_INT_IN_RANGE(0, iNumVehicleMod) WHILE IS_VEHICLE_MOD_LOCKED(vehIndex, eModType, iModIndex) iModIndex = GET_RANDOM_INT_IN_RANGE(0, iNumVehicleMod) ENDWHILE RETURN iModIndex ENDFUNC