Files
2025-09-29 00:52:08 +02:00

8896 lines
361 KiB
XML
Executable File

//////////////////////////////////////////////////////////////////////////////////////////
// //
// SCRIPT NAME : building_control_private.sch //
// AUTHOR : Kenneth Ross //
// DESCRIPTION : Header file that contains all the data for each door. //
// This deals with both single and multi-player data. //
// //
//////////////////////////////////////////////////////////////////////////////////////////
USING "rage_builtins.sch"
USING "globals.sch"
USING "script_player.sch"
USING "commands_interiors.sch"
USING "commands_object.sch"
USING "commands_camera.sch"
USING "player_ped_public.sch"
USING "commands_path.sch"
USING "trains_control_public.sch"
/// PURPOSE: Checks wether the current game mode is SP
FUNC BOOL USE_SP_BUILDING_CONTROLLER_DATA()
IF (GET_CURRENT_GAMEMODE() = GAMEMODE_SP OR GET_CURRENT_GAMEMODE() = GAMEMODE_EMPTY)
AND NOT (GET_JOINING_GAMEMODE() = GAMEMODE_FM)
RETURN TRUE
ENDIF
RETURN FALSE
ENDFUNC
PROC QUEUE_DOOR_UPDATE_FOR_NEXT_FRAME(DOOR_NAME_ENUM eName)
IF NOT IS_BIT_SET(g_sForceDoorUpdateData.iDoorsQueued[ENUM_TO_INT(eName)/32], ENUM_TO_INT(eName)%23)
SET_BIT(g_sForceDoorUpdateData.iDoorsQueued[ENUM_TO_INT(eName)/32], ENUM_TO_INT(eName)%23)
g_sForceDoorUpdateData.eDoorToForceUpdate[g_sForceDoorUpdateData.iForceDoorUpdateCount] = eName
g_sForceDoorUpdateData.iForceDoorUpdateCount++
ENDIF
ENDPROC
/// PURPOSE: Returns a struct that contains all the data for the specified door enum
FUNC DOOR_DATA_STRUCT GET_DOOR_DATA(DOOR_NAME_ENUM eName)
DOOR_DATA_STRUCT sData
SWITCH eName
CASE DOORNAME_BARBER_SHOP_SC
sData.model = V_ILev_BS_DOOR
sData.coords = << 133.0, -1711.00, 29.0 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_BARBER_SHOP_SC)
#IF IS_DEBUG_BUILD
sData.dbg_name = "BARBER_SHOP_SC"
#ENDIF
BREAK
CASE DOORNAME_BARBER_SHOP_V
sData.model = V_ILev_BS_DOOR
sData.coords = << -1287.8568, -1115.7416, 7.1401 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_BARBER_SHOP_V)
#IF IS_DEBUG_BUILD
sData.dbg_name = "BARBER_SHOP_V"
#ENDIF
BREAK
CASE DOORNAME_BARBER_SHOP_SS
sData.model = V_ILev_BS_DOOR
sData.coords = << 1932.9518, 3725.1536, 32.9944 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_BARBER_SHOP_SS)
#IF IS_DEBUG_BUILD
sData.dbg_name = "BARBER_SHOP_SS"
#ENDIF
BREAK
CASE DOORNAME_BARBER_SHOP_MP
sData.model = V_ILev_BS_DOOR
sData.coords = << 1207.8732, -470.063, 66.3580 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_BARBER_SHOP_MP)
#IF IS_DEBUG_BUILD
sData.dbg_name = "BARBER_SHOP_MP"
#ENDIF
BREAK
CASE DOORNAME_BARBER_SHOP_HW
sData.model = V_ILev_BS_DOOR
sData.coords = << -29.8692, -148.1571, 57.2265 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_BARBER_SHOP_HW)
#IF IS_DEBUG_BUILD
sData.dbg_name = "BARBER_SHOP_HW"
#ENDIF
BREAK
CASE DOORNAME_BARBER_SHOP_PB
sData.model = V_ILev_BS_DOOR
sData.coords = << -280.7851, 6232.7817, 31.8455 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_BARBER_SHOP_PB)
#IF IS_DEBUG_BUILD
sData.dbg_name = "BARBER_SHOP_PB"
#ENDIF
BREAK
CASE DOORNAME_HAIR_SALON_L
sData.model = V_ILEV_HD_DOOR_L
sData.coords = << -824.0, -187.00, 38.0 >>
#IF USE_TU_CHANGES
sData.coords = << -823.2001 ,-187.0831, 37.8190 >>
#ENDIF
sData.doorHash = ENUM_TO_INT(DOORHASH_HAIR_SALON_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "HAIR_SALON_L"
#ENDIF
BREAK
CASE DOORNAME_HAIR_SALON_R
sData.model = V_ILEV_HD_DOOR_R
sData.coords = << -823.0, -188.0, 38.0 >>
#IF USE_TU_CHANGES
sData.coords = << -822.4442, -188.3924, 37.8190 >>
#ENDIF
sData.doorHash = ENUM_TO_INT(DOORHASH_HAIR_SALON_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "HAIR_SALON_R"
#ENDIF
BREAK
CASE DOORNAME_CLOTHES_SHOP_L_01_SC_L
sData.model = V_ILEV_CS_DOOR01
sData.coords = << 82.3186, -1392.7518, 29.5261 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CLOTHES_SHOP_L_01_SC_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "CLOTHES_SHOP_L_01_SC_L"
#ENDIF
BREAK
CASE DOORNAME_CLOTHES_SHOP_L_01_SC_R
sData.model = V_ILEV_CS_DOOR01_R
sData.coords = << 82.3186, -1390.4758, 29.5261 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CLOTHES_SHOP_L_01_SC_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "CLOTHES_SHOP_L_01_SC_R"
#ENDIF
BREAK
CASE DOORNAME_CLOTHES_SHOP_L_02_GS_L
sData.model = V_ILEV_CS_DOOR01
sData.coords = << 1686.9832, 4821.7407, 42.2131 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CLOTHES_SHOP_L_02_GS_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "CLOTHES_SHOP_L_02_GS_L"
#ENDIF
BREAK
CASE DOORNAME_CLOTHES_SHOP_L_02_GS_R
sData.model = V_ILEV_CS_DOOR01_R
sData.coords = << 1687.2817, 4819.4844, 42.2131 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CLOTHES_SHOP_L_02_GS_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "CLOTHES_SHOP_L_02_GS_R"
#ENDIF
BREAK
CASE DOORNAME_CLOTHES_SHOP_L_03_DT_L
sData.model = V_ILEV_CS_DOOR01
sData.coords = << 418.6370, -806.4570, 29.6396 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CLOTHES_SHOP_L_03_DT_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "CLOTHES_SHOP_L_03_DT_L"
#ENDIF
BREAK
CASE DOORNAME_CLOTHES_SHOP_L_03_DT_R
sData.model = V_ILEV_CS_DOOR01_R
sData.coords = << 418.6370, -808.7330, 29.6396 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CLOTHES_SHOP_L_03_DT_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "CLOTHES_SHOP_L_03_DT_R"
#ENDIF
BREAK
CASE DOORNAME_CLOTHES_SHOP_L_04_CS_L
sData.model = V_ILEV_CS_DOOR01
sData.coords = << -1096.6613, 2705.4458, 19.2578 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CLOTHES_SHOP_L_04_CS_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "CLOTHES_SHOP_L_04_CS_L"
#ENDIF
BREAK
CASE DOORNAME_CLOTHES_SHOP_L_04_CS_R
sData.model = V_ILEV_CS_DOOR01_R
sData.coords = << -1094.9652, 2706.9636, 19.2578 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CLOTHES_SHOP_L_04_CS_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "CLOTHES_SHOP_L_04_CS_R"
#ENDIF
BREAK
CASE DOORNAME_CLOTHES_SHOP_L_05_GSD_L
sData.model = V_ILEV_CS_DOOR01
sData.coords = << 1196.8250, 2703.2209, 38.3726 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CLOTHES_SHOP_L_05_GSD_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "CLOTHES_SHOP_L_05_GSD_L"
#ENDIF
BREAK
CASE DOORNAME_CLOTHES_SHOP_L_05_GSD_R
sData.model = V_ILEV_CS_DOOR01_R
sData.coords = << 1199.1010, 2703.2209, 38.3726 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CLOTHES_SHOP_L_05_GSD_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "CLOTHES_SHOP_L_05_GSD_R"
#ENDIF
BREAK
CASE DOORNAME_CLOTHES_SHOP_L_06_VC_L
sData.model = V_ILEV_CS_DOOR01
sData.coords = << -818.7642, -1079.5444, 11.4781 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CLOTHES_SHOP_L_06_VC_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "CLOTHES_SHOP_L_06_VC_L"
#ENDIF
BREAK
CASE DOORNAME_CLOTHES_SHOP_L_06_VC_R
sData.model = V_ILEV_CS_DOOR01_R
sData.coords = << -816.7932, -1078.4065, 11.4781 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CLOTHES_SHOP_L_06_VC_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "CLOTHES_SHOP_L_06_VC_R"
#ENDIF
BREAK
CASE DOORNAME_CLOTHES_SHOP_L_07_PB_L
sData.model = V_ILEV_CS_DOOR01
sData.coords = << -0.0564, 6517.4609, 32.0278 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CLOTHES_SHOP_L_07_PB_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "CLOTHES_SHOP_L_07_PB_L"
#ENDIF
BREAK
CASE DOORNAME_CLOTHES_SHOP_L_07_PB_R
sData.model = V_ILEV_CS_DOOR01_R
sData.coords = << -1.7253, 6515.9136, 32.0278 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CLOTHES_SHOP_L_07_PB_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "CLOTHES_SHOP_L_07_PB_R"
#ENDIF
BREAK
CASE DOORNAME_CLOTHES_SHOP_M_01_SM
sData.model = V_ILEV_CLOTHMIDDOOR
sData.coords = << -1201.4349, -776.8566, 17.9918 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CLOTHES_SHOP_M_01_SM)
#IF IS_DEBUG_BUILD
sData.dbg_name = "CLOTHES_SHOP_M_01_SM"
#ENDIF
BREAK
CASE DOORNAME_CLOTHES_SHOP_M_03_H
sData.model = V_ILEV_CLOTHMIDDOOR
sData.coords = << 617.2458, 2751.0222, 42.7578 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CLOTHES_SHOP_M_03_H)
#IF IS_DEBUG_BUILD
sData.dbg_name = "CLOTHES_SHOP_M_03_H"
#ENDIF
BREAK
CASE DOORNAME_CLOTHES_SHOP_M_04_HW
sData.model = V_ILEV_CLOTHMIDDOOR
sData.coords = << 127.8201, -211.8274, 55.2275 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CLOTHES_SHOP_M_04_HW)
#IF IS_DEBUG_BUILD
sData.dbg_name = "CLOTHES_SHOP_M_04_HW"
#ENDIF
BREAK
CASE DOORNAME_CLOTHES_SHOP_M_05_GOH
sData.model = V_ILEV_CLOTHMIDDOOR
sData.coords = << -3167.7500, 1055.5358, 21.5329 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CLOTHES_SHOP_M_05_GOH)
#IF IS_DEBUG_BUILD
sData.dbg_name = "CLOTHES_SHOP_M_05_GOH"
#ENDIF
BREAK
CASE DOORNAME_CLOTHES_SHOP_H_01_BH_L
sData.model = V_ILEV_CH_GLASSDOOR
sData.coords = << -716.6754, -155.4200, 37.6749 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CLOTHES_SHOP_H_01_BH_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "CLOTHES_SHOP_H_01_BH_L"
#ENDIF
BREAK
CASE DOORNAME_CLOTHES_SHOP_H_01_BH_R
sData.model = V_ILEV_CH_GLASSDOOR
sData.coords = << -715.6154, -157.2561, 37.6749 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CLOTHES_SHOP_H_01_BH_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "CLOTHES_SHOP_H_01_BH_R"
#ENDIF
BREAK
CASE DOORNAME_CLOTHES_SHOP_H_02_B_L
sData.model = V_ILEV_CH_GLASSDOOR
sData.coords = << -157.0924, -306.4413, 39.994 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CLOTHES_SHOP_H_02_B_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "CLOTHES_SHOP_H_02_B_L"
#ENDIF
BREAK
CASE DOORNAME_CLOTHES_SHOP_H_02_B_R
sData.model = V_ILEV_CH_GLASSDOOR
sData.coords = << -156.4022, -304.4366, 39.994 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CLOTHES_SHOP_H_02_B_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "CLOTHES_SHOP_H_02_B_R"
#ENDIF
BREAK
CASE DOORNAME_CLOTHES_SHOP_H_03_MW_L
sData.model = V_ILEV_CH_GLASSDOOR
sData.coords = << -1454.7819, -231.7927, 50.0565 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CLOTHES_SHOP_H_03_MW_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "CLOTHES_SHOP_H_03_MW_L"
#ENDIF
BREAK
CASE DOORNAME_CLOTHES_SHOP_H_03_MW_R
sData.model = V_ILEV_CH_GLASSDOOR
sData.coords = << -1456.2007, -233.3682, 50.0565 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CLOTHES_SHOP_H_03_MW_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "CLOTHES_SHOP_H_03_MW_R"
#ENDIF
BREAK
CASE DOORNAME_TATTOO_VW
sData.model = V_ILEV_TA_DOOR
sData.coords = << 321.81, 178.36, 103.68 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_TATTOO_VW)
#IF IS_DEBUG_BUILD
sData.dbg_name = "TATTOO_VW"
#ENDIF
BREAK
CASE DOORNAME_TATTOO_SS
sData.model = V_ILEV_ML_DOOR1
sData.coords = << 1859.89, 3749.79, 33.18 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_TATTOO_SS)
#IF IS_DEBUG_BUILD
sData.dbg_name = "TATTOO_SS"
#ENDIF
BREAK
CASE DOORNAME_TATTOO_PB
sData.model = V_ILEV_ML_DOOR1
sData.coords = << -289.1752, 6199.1123, 31.6370 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_TATTOO_PB)
#IF IS_DEBUG_BUILD
sData.dbg_name = "TATTOO_PB"
#ENDIF
BREAK
CASE DOORNAME_TATTOO_VC
sData.model = V_ILEV_TA_DOOR
sData.coords = << -1155.4541, -1424.0079, 5.0461 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_TATTOO_VC)
#IF IS_DEBUG_BUILD
sData.dbg_name = "TATTOO_VC"
#ENDIF
BREAK
CASE DOORNAME_TATTOO_ELS
sData.model = V_ILEV_TA_DOOR
sData.coords = << 1321.2856, -1650.5967, 52.3663 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_TATTOO_ELS)
#IF IS_DEBUG_BUILD
sData.dbg_name = "TATTOO_ELS"
#ENDIF
BREAK
CASE DOORNAME_TATTOO_GOH
sData.model = V_ILEV_TA_DOOR
sData.coords = << -3167.7888, 1074.7669, 20.9209 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_TATTOO_GOH)
#IF IS_DEBUG_BUILD
sData.dbg_name = "TATTOO_GOH"
#ENDIF
BREAK
CASE DOORNAME_M_MANSION_F_L
sData.model = V_ILEV_MM_DOORM_L
sData.coords = << -817.0, 179.0, 73.0 >>
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_SAVEHOUSE_DOOR))
sData.doorHash = ENUM_TO_INT(DOORHASH_M_MANSION_F_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "M_MANSION_F_L"
#ENDIF
BREAK
CASE DOORNAME_M_MANSION_F_R
sData.model = V_ILEV_MM_DOORM_R
sData.coords = << -816.0, 178.0, 73.0 >>
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_SAVEHOUSE_DOOR))
sData.doorHash = ENUM_TO_INT(DOORHASH_M_MANSION_F_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "M_MANSION_F_R"
#ENDIF
BREAK
CASE DOORNAME_M_MANSION_G1
sData.model = PROP_LD_GARAGED_01
sData.coords = << -815.0, 186.0, 73.0 >>
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_SAVEHOUSE_DOOR))
sData.doorHash = ENUM_TO_INT(DOORHASH_M_MANSION_G1)
sData.automaticRate = 6.5
#IF IS_DEBUG_BUILD
sData.dbg_name = "M_MANSION_G1"
#ENDIF
BREAK
CASE DOORNAME_M_MANSION_R_L1
sData.model = PROP_BH1_48_BACKDOOR_L
sData.coords = << -797.0, 177.0, 73.0 >>
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_SAVEHOUSE_DOOR))
sData.doorHash = ENUM_TO_INT(DOORHASH_M_MANSION_R_L1)
#IF IS_DEBUG_BUILD
sData.dbg_name = "M_MANSION_R_L1"
#ENDIF
BREAK
CASE DOORNAME_M_MANSION_R_R1
sData.model = PROP_BH1_48_BACKDOOR_R
sData.coords = << -795.0, 178.0, 73.0 >>
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_SAVEHOUSE_DOOR))
sData.doorHash = ENUM_TO_INT(DOORHASH_M_MANSION_R_R1)
#IF IS_DEBUG_BUILD
sData.dbg_name = "M_MANSION_R_R1"
#ENDIF
BREAK
CASE DOORNAME_M_MANSION_R_L2
sData.model = PROP_BH1_48_BACKDOOR_L
sData.coords = << -793.0, 181.0, 73.0 >>
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_SAVEHOUSE_DOOR))
sData.doorHash = ENUM_TO_INT(DOORHASH_M_MANSION_R_L2)
#IF IS_DEBUG_BUILD
sData.dbg_name = "M_MANSION_R_L2"
#ENDIF
BREAK
CASE DOORNAME_M_MANSION_R_R2
sData.model = PROP_BH1_48_BACKDOOR_R
sData.coords = << -794.0, 183.0, 73.0 >>
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_SAVEHOUSE_DOOR))
sData.doorHash = ENUM_TO_INT(DOORHASH_M_MANSION_R_R2)
#IF IS_DEBUG_BUILD
sData.dbg_name = "M_MANSION_R_R2"
#ENDIF
BREAK
CASE DOORNAME_M_MANSION_GA_SM
sData.model = PROP_BH1_48_GATE_1
sData.coords = << -849.0, 179.0, 70.0 >>
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_SAVEHOUSE_DOOR))
sData.doorHash = ENUM_TO_INT(DOORHASH_M_MANSION_GA_SM)
#IF IS_DEBUG_BUILD
sData.dbg_name = "M_MANSION_GA_SM"
#ENDIF
BREAK
CASE DOORNAME_M_MANSION_BW
sData.model = V_ILEV_MM_WINDOWWC
sData.coords = << -802.7333, 167.5041, 77.5824 >>
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_SAVEHOUSE_DOOR))
sData.doorHash = ENUM_TO_INT(DOORHASH_M_MANSION_BW)
#IF IS_DEBUG_BUILD
sData.dbg_name = "M_MANSION_BW"
#ENDIF
BREAK
CASE DOORNAME_F_HOUSE_SC_F
sData.model = V_ILEV_FA_FRONTDOOR
sData.coords = << -14.0, -1441.0, 31.0 >>
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_SAVEHOUSE_DOOR))
sData.doorHash = ENUM_TO_INT(DOORHASH_F_HOUSE_SC_F)
#IF IS_DEBUG_BUILD
sData.dbg_name = "F_HOUSE_SC_F"
#ENDIF
BREAK
CASE DOORNAME_F_HOUSE_SC_B
sData.model = V_ILEV_FH_FRNTDOOR
sData.coords = << -15.0, -1427.0, 31.0 >>
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_SAVEHOUSE_DOOR))
sData.doorHash = ENUM_TO_INT(DOORHASH_F_HOUSE_SC_B)
#IF IS_DEBUG_BUILD
sData.dbg_name = "F_HOUSE_SC_B"
#ENDIF
BREAK
CASE DOORNAME_F_HOUSE_SC_G
sData.model = PROP_SC1_21_G_DOOR_01
sData.coords = << -25.28, -1431.06, 30.84 >>
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_SAVEHOUSE_DOOR))
sData.doorHash = ENUM_TO_INT(DOORHASH_F_HOUSE_SC_G)
#IF IS_DEBUG_BUILD
sData.dbg_name = "F_HOUSE_SC_G"
#ENDIF
BREAK
CASE DOORNAME_F_HOUSE_VH_F
sData.model = V_ILEV_FH_FRONTDOOR
sData.coords = << 7.52, 539.53, 176.18 >>
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_SAVEHOUSE_DOOR))
sData.doorHash = ENUM_TO_INT(DOORHASH_F_HOUSE_VH_F)
#IF IS_DEBUG_BUILD
sData.dbg_name = "F_HOUSE_VH_F"
#ENDIF
BREAK
// CASE DOORNAME_F_HOUSE_VH_G
// sData.model = PROP_CH_025C_G_DOOR_01
// sData.coords = << 18.65, 546.34, 176.34 >>
// SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_SAVEHOUSE_DOOR))
// sData.doorHash = ENUM_TO_INT(DOORHASH_F_HOUSE_VH_G)
// sData.automaticRate = 4.0
// #IF IS_DEBUG_BUILD
// sData.dbg_name = "F_HOUSE_VH_G"
// #ENDIF
// BREAK
CASE DOORNAME_T_TRAILER_CS
sData.model = V_ILEV_TREVTRAILDR
sData.coords = << 1973.0, 3815.0, 34.0 >>
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_SAVEHOUSE_DOOR))
sData.doorHash = ENUM_TO_INT(DOORHASH_T_TRAILER_CS)
#IF IS_DEBUG_BUILD
sData.dbg_name = "T_TRAILER_CS"
#ENDIF
BREAK
CASE DOORNAME_T_TRAILER_CS_G
sData.model = PROP_CS4_10_TR_GD_01
sData.coords = << 1972.7874, 3824.5537, 32.5831 >>
//SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_SAVEHOUSE_DOOR))
sData.doorHash = ENUM_TO_INT(DOORHASH_T_TRAILER_CS_G)
sData.automaticRate = 12.0
#IF IS_DEBUG_BUILD
sData.dbg_name = "T_TRAILER_CS_G"
#ENDIF
BREAK
CASE DOORNAME_T_APARTMENT_VB
sData.model = V_ILEV_TREV_DOORFRONT
sData.coords = << -1150.0, -1521.0, 11.0 >>
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_SAVEHOUSE_DOOR))
sData.doorHash = ENUM_TO_INT(DOORHASH_T_APARTMENT_VB)
#IF IS_DEBUG_BUILD
sData.dbg_name = "T_APARTMENT_VB"
#ENDIF
BREAK
ENDSWITCH
// too many cases in switch statement
SWITCH eName
CASE DOORNAME_CARMOD_GARAGE_01
sData.model = PROP_COM_LS_DOOR_01
sData.coords = << -1145.90, -1991.14, 14.18 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CARMOD_GARAGE_01)
sData.automaticRate = 25.0
#IF IS_DEBUG_BUILD
sData.dbg_name = "CARMOD_GARAGE_01"
#ENDIF
BREAK
CASE DOORNAME_CARMOD_GARAGE_05
sData.model = PROP_ID2_11_GDOOR
sData.coords = <<723.12,-1088.83,23.28>>
sData.doorHash = ENUM_TO_INT(DOORHASH_CARMOD_GARAGE_05)
sData.automaticRate = 25.0
#IF IS_DEBUG_BUILD
sData.dbg_name = "CARMOD_GARAGE_05"
#ENDIF
BREAK
CASE DOORNAME_CARMOD_GARAGE_06
sData.model = PROP_COM_LS_DOOR_01
sData.coords = << -356.09, -134.77, 40.01 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CARMOD_GARAGE_06)
sData.automaticRate = 25.0
#IF IS_DEBUG_BUILD
sData.dbg_name = "CARMOD_GARAGE_06"
#ENDIF
BREAK
CASE DOORNAME_CARMOD_GARAGE_07_L
sData.model = V_ILEV_CARMOD3DOOR
sData.coords = << 108.8502, 6617.8765, 32.6730 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CARMOD_GARAGE_07_L)
sData.automaticRate = 25.0
#IF IS_DEBUG_BUILD
sData.dbg_name = "CARMOD_GARAGE_07_L"
#ENDIF
BREAK
CASE DOORNAME_CARMOD_GARAGE_07_R
sData.model = V_ILEV_CARMOD3DOOR
sData.coords = << 114.3206, 6623.2261, 32.7161 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CARMOD_GARAGE_07_R)
sData.automaticRate = 25.0
#IF IS_DEBUG_BUILD
sData.dbg_name = "CARMOD_GARAGE_07_R"
#ENDIF
BREAK
CASE DOORNAME_CARMOD_GARAGE_08_L
sData.model = V_ILEV_CARMOD3DOOR
sData.coords = << 1182.3054, 2645.2422, 38.807 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CARMOD_GARAGE_08_L)
sData.automaticRate = 25.0
#IF IS_DEBUG_BUILD
sData.dbg_name = "CARMOD_GARAGE_08_L"
#ENDIF
BREAK
CASE DOORNAME_CARMOD_GARAGE_08_R
sData.model = V_ILEV_CARMOD3DOOR
sData.coords = << 1174.6542, 2645.2422, 38.6826 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CARMOD_GARAGE_08_R)
sData.automaticRate = 25.0
#IF IS_DEBUG_BUILD
sData.dbg_name = "CARMOD_GARAGE_08_R"
#ENDIF
BREAK
CASE DOORNAME_CARMOD_GARAGE_09
sData.model = LR_PROP_SUPERMOD_DOOR_01
sData.coords = <<-205.7007, -1310.6917, 30.2957>>
sData.doorHash = ENUM_TO_INT(DOORHASH_CARMOD_GARAGE_09)
sData.automaticRate = 25.0
#IF IS_DEBUG_BUILD
sData.dbg_name = "CARMOD_GARAGE_09"
#ENDIF
BREAK
CASE DOORNAME_JANITORS_APARTMENT
sData.model = V_ILEV_JANITOR_FRONTDOOR
sData.coords = << -107.5401, -9.0258, 70.6696 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_JANITORS_APARTMENT)
#IF IS_DEBUG_BUILD
sData.dbg_name = "JANITORS_APARTMENT"
#ENDIF
BREAK
CASE DOORNAME_SWEATSHOP_L
sData.model = V_ILEV_SS_DOOR8
sData.coords = << 717, -975, 25 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_SWEATSHOP_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "SWEATSHOP_L"
#ENDIF
BREAK
CASE DOORNAME_SWEATSHOP_R
sData.model = V_ILEV_SS_DOOR7
sData.coords = << 719, -975, 25 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_SWEATSHOP_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "SWEATSHOP_R"
#ENDIF
BREAK
CASE DOORNAME_SWEATSHOP_OFFICE
sData.model = V_ILEV_SS_DOOR02
sData.coords = << 709.9813, -963.5311, 30.5453 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_SWEATSHOP_OFFICE)
#IF IS_DEBUG_BUILD
sData.dbg_name = "SWEATSHOP_OFFICE"
#ENDIF
BREAK
CASE DOORNAME_SWEATSHOP_STORE
sData.model = V_ILEV_SS_DOOR03
sData.coords = << 709.9894, -960.6675, 30.5453 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_SWEATSHOP_STORE)
#IF IS_DEBUG_BUILD
sData.dbg_name = "SWEATSHOP_STORE"
#ENDIF
BREAK
CASE DOORNAME_SWEATSHOP_OFFICE_STORE
sData.model = V_ILEV_STORE_DOOR
sData.coords = << 707.8046, -962.4564, 30.5453 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_SWEATSHOP_OFFICE_STORE)
#IF IS_DEBUG_BUILD
sData.dbg_name = "SWEATSHOP_OFFICE_STORE"
#ENDIF
BREAK
CASE DOORNAME_METHLAB_F_L
sData.model = V_ILEV_ML_DOOR1
sData.coords = << 1393, 3599, 35 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_METHLAB_F_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "METHLAB_F_L"
#ENDIF
BREAK
CASE DOORNAME_METHLAB_F_R
sData.model = V_ILEV_ML_DOOR1
sData.coords = << 1395, 3600, 35 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_METHLAB_F_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "METHLAB_F_R"
#ENDIF
BREAK
CASE DOORNAME_METHLAB_R
sData.model = V_ILEV_SS_DOOR04
sData.coords = << 1387, 3614, 39 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_METHLAB_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "METHLAB_R"
#ENDIF
BREAK
CASE DOORNAME_FOUNDRY_B_01
sData.model = PROP_RON_DOOR_01
sData.coords = << 1083.5471, -1975.4354, 31.6222 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_FOUNDRY_B_01)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "FOUNDRY_B_01"
#ENDIF
BREAK
CASE DOORNAME_FOUNDRY_B_02
sData.model = PROP_RON_DOOR_01
sData.coords = << 1065.2371, -2006.0791, 32.2329 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_FOUNDRY_B_02)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "FOUNDRY_B_02"
#ENDIF
BREAK
CASE DOORNAME_FOUNDRY_T_01
sData.model = PROP_RON_DOOR_01
sData.coords = << 1085.3069, -2018.5613, 41.6289 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_FOUNDRY_T_01)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "FOUNDRY_T_01"
#ENDIF
BREAK
CASE DOORNAME_RURAL_BANK_F_L
sData.model = V_ILEV_BANK4DOOR02
sData.coords = << -111, 6464, 32 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_RURAL_BANK_F_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "RURAL_BANK_F_L"
#ENDIF
BREAK
CASE DOORNAME_RURAL_BANK_F_R
sData.model = V_ILEV_BANK4DOOR01
sData.coords = << -110, 6462, 32 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_RURAL_BANK_F_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "RURAL_BANK_F_R"
#ENDIF
BREAK
CASE DOORNAME_LESTER_F
sData.model = V_ILEV_LESTER_DOORFRONT
sData.coords = <<1274, -1721, 55>>
sData.doorHash = ENUM_TO_INT(DOORHASH_LESTER_F)
#IF IS_DEBUG_BUILD
sData.dbg_name = "LESTER_F"
#ENDIF
BREAK
CASE DOORNAME_LESTER_R_L
sData.model = V_ILEV_LESTER_DOORVERANDA
sData.coords = << 1271.89, -1707.57, 53.79 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_LESTER_R_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "LESTER_R_L"
#ENDIF
BREAK
CASE DOORNAME_LESTER_R_R
sData.model = V_ILEV_LESTER_DOORVERANDA
sData.coords = << 1270.77, -1708.10, 53.75 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_LESTER_R_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "LESTER_R_R"
#ENDIF
BREAK
CASE DOORNAME_CARSTEAL_MOTEL
sData.model = v_ilev_deviantfrontdoor
sData.coords = << -127.50, -1456.18, 37.94 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CARSTEAL_MOTEL)
#IF IS_DEBUG_BUILD
sData.dbg_name = "CARSTEAL_MOTEL"
#ENDIF
BREAK
CASE DOORNAME_CARSTEAL_GARAGE_F
sData.model = prop_com_gar_door_01
sData.coords = << 483.56, -1316.08, 32.18 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CARSTEAL_GARAGE_F)
#IF IS_DEBUG_BUILD
sData.dbg_name = "CARSTEAL_GARAGE_F"
#ENDIF
BREAK
CASE DOORNAME_CARSTEAL_GARAGE_S
sData.model = V_ILEV_CS_DOOR
sData.coords = << 483, -1312, 29 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CARSTEAL_GARAGE_S)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "CARSTEAL_GARAGE_S"
#ENDIF
BREAK
CASE DOORNAME_STRIPCLUB_F
sData.model = PROP_STRIP_DOOR_01
sData.coords = << 128.0, -1299.0, 29.0 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_STRIPCLUB_F)
#IF IS_DEBUG_BUILD
sData.dbg_name = "STRIPCLUB_F"
#ENDIF
BREAK
CASE DOORNAME_STRIPCLUB_R
sData.model = PROP_MAGENTA_DOOR
sData.coords = << 96.0, -1285.0, 29.0 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_STRIPCLUB_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "STRIPCLUB_R"
#ENDIF
BREAK
CASE DOORNAME_JOSH_HOTEL
sData.model = PROP_MOTEL_DOOR_09
sData.coords = << 549.0, -1773.0, 34.0 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_JOSH_HOTEL)
#IF IS_DEBUG_BUILD
sData.dbg_name = "JOSH_HOTEL"
#ENDIF
BREAK
CASE DOORNAME_MEX_GANG_SAFE
sData.model = V_ILEV_GANGSAFEDOOR
sData.coords = << 974, -1839, 36 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_MEX_GANG_SAFE)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IGNORE_SAFETY_CHECKS))
#IF IS_DEBUG_BUILD
sData.dbg_name = "MEX_GANG_SAFE"
#ENDIF
BREAK
CASE DOORNAME_LOST_GANG_SAFE
sData.model = V_ILEV_GANGSAFEDOOR
sData.coords = <<977, -105, 75>>
sData.doorHash = ENUM_TO_INT(DOORHASH_LOST_GANG_SAFE)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IGNORE_SAFETY_CHECKS))
#IF IS_DEBUG_BUILD
sData.dbg_name = "LOST_GANG_SAFE"
#ENDIF
BREAK
CASE DOORNAME_RANCH_F_L1
sData.model = V_ILEV_RA_DOOR1_L
sData.coords = << 1391, 1163, 114 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_RANCH_F_L1)
#IF IS_DEBUG_BUILD
sData.dbg_name = "RANCH_F_L1"
#ENDIF
BREAK
CASE DOORNAME_RANCH_F_R1
sData.model = V_ILEV_RA_DOOR1_R
sData.coords = << 1391, 1161, 114 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_RANCH_F_R1)
#IF IS_DEBUG_BUILD
sData.dbg_name = "RANCH_F_R1"
#ENDIF
BREAK
CASE DOORNAME_RANCH_F_L2
sData.model = PROP_CS6_03_DOOR_L
sData.coords = << 1396, 1143, 115 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_RANCH_F_L2)
#IF IS_DEBUG_BUILD
sData.dbg_name = "RANCH_F_L2"
#ENDIF
BREAK
CASE DOORNAME_RANCH_F_R2
sData.model = PROP_CS6_03_DOOR_R
sData.coords = << 1396, 1141, 115 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_RANCH_F_R2)
#IF IS_DEBUG_BUILD
sData.dbg_name = "RANCH_F_R2"
#ENDIF
BREAK
CASE DOORNAME_RANCH_R_L1
sData.model = V_ILEV_RA_DOOR1_L
sData.coords = << 1409, 1146, 114 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_RANCH_R_L1)
#IF IS_DEBUG_BUILD
sData.dbg_name = "RANCH_R_L1"
#ENDIF
BREAK
CASE DOORNAME_RANCH_R_R1
sData.model = V_ILEV_RA_DOOR1_R
sData.coords = << 1409, 1148, 114 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_RANCH_R_R1)
#IF IS_DEBUG_BUILD
sData.dbg_name = "RANCH_R_R1"
#ENDIF
BREAK
CASE DOORNAME_RANCH_R_L2
sData.model = V_ILEV_RA_DOOR1_L
sData.coords = << 1408, 1159, 114 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_RANCH_R_L2)
#IF IS_DEBUG_BUILD
sData.dbg_name = "RANCH_R_L2"
#ENDIF
BREAK
CASE DOORNAME_RANCH_R_R2
sData.model = V_ILEV_RA_DOOR1_R
sData.coords = << 1408, 1161, 114 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_RANCH_R_R2)
#IF IS_DEBUG_BUILD
sData.dbg_name = "RANCH_R_R2"
#ENDIF
BREAK
CASE DOORNAME_ARM2_GARAGE_01
sData.model = PROP_GAR_DOOR_01
sData.coords = << -1067, -1666, 5 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_ARM2_GARAGE_01)
#IF IS_DEBUG_BUILD
sData.dbg_name = "ARM2_GARAGE_01"
#ENDIF
BREAK
CASE DOORNAME_ARM2_GARAGE_02
sData.model = PROP_GAR_DOOR_02
sData.coords = << -1065, -1669, 5 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_ARM2_GARAGE_02)
#IF IS_DEBUG_BUILD
sData.dbg_name = "ARM2_GARAGE_02"
#ENDIF
BREAK
CASE DOORNAME_ARM2_HENCH_01
sData.model = PROP_MAP_DOOR_01
sData.coords = << -1104.66, -1638.48, 4.68 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_ARM2_HENCH_01)
#IF IS_DEBUG_BUILD
sData.dbg_name = "ARM2_HENCH_01"
#ENDIF
BREAK
CASE DOORNAME_ARM2_SIMEON_OFFICE
sData.model = V_ILEV_FIB_DOOR1
sData.coords = << -31.72,-1101.85,26.57 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_ARM2_SIMEON_OFFICE)
#IF IS_DEBUG_BUILD
sData.dbg_name = "ARM2_SIMEON_01"
#ENDIF
BREAK
CASE DOORNAME_TORTURE
sData.model = v_ilev_tort_door
sData.coords = << 134.40, -2204.10, 7.52 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_TORTURE)
#IF IS_DEBUG_BUILD
sData.dbg_name = "TORTURE"
#ENDIF
BREAK
CASE DOORNAME_CHEMICAL_FACTORY_L
sData.model = V_ILEV_BL_SHUTTER2
sData.coords = << 3628, 3747, 28 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CHEMICAL_FACTORY_L)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "CHEMICAL_FACTORY_L"
#ENDIF
BREAK
CASE DOORNAME_CHEMICAL_FACTORY_R
sData.model = V_ILEV_BL_SHUTTER2
sData.coords = << 3621, 3752, 28 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CHEMICAL_FACTORY_R)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "CHEMICAL_FACTORY_R"
#ENDIF
BREAK
CASE DOORNAME_RECYCLING_PLANT_F_L
sData.model = v_ilev_rc_door3_l
sData.coords = << -608.73, -1610.32, 27.16 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_RECYCLING_PLANT_F_L)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "RECYCLING_PLANT_F_L"
#ENDIF
BREAK
CASE DOORNAME_RECYCLING_PLANT_F_R
sData.model = v_ilev_rc_door3_r
sData.coords = << -611.32, -1610.09, 27.16 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_RECYCLING_PLANT_F_R)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "RECYCLING_PLANT_F_R"
#ENDIF
BREAK
CASE DOORNAME_RECYCLING_PLANT_R_L
sData.model = v_ilev_rc_door3_l
sData.coords = << -592.94, -1631.58, 27.16 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_RECYCLING_PLANT_R_L)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "RECYCLING_PLANT_R_L"
#ENDIF
BREAK
CASE DOORNAME_RECYCLING_PLANT_R_R
sData.model = v_ilev_rc_door3_r
sData.coords = << -592.71, -1628.99, 27.16 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_RECYCLING_PLANT_R_R)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "RECYCLING_PLANT_R_R"
#ENDIF
BREAK
CASE DOORNAME_HICK_BAR_F
sData.model = V_ILEV_SS_DOOR04
sData.coords = << 1991, 3053, 47 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_HICK_BAR_F)
#IF IS_DEBUG_BUILD
sData.dbg_name = "HICK_BAR_F"
#ENDIF
BREAK
CASE DOORNAME_HICK_BAR_F_INT
sData.model = V_ILEV_FH_DOOR4
sData.coords = <<1988.3529, 3054.4109, 47.3204>>
sData.doorHash = ENUM_TO_INT(DOORHASH_HICK_BAR_F_INT)
#IF IS_DEBUG_BUILD
sData.dbg_name = "HICK_BAR_F_INT"
#ENDIF
BREAK
CASE DOORNAME_EPSILON_MANSION_F_L
sData.model = PROP_EPSILON_DOOR_L
sData.coords = << -700.17, 47.31, 44.30 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_EPSILON_MANSION_F_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "EPSILON_MANSION_F_L"
#ENDIF
BREAK
CASE DOORNAME_EPSILON_MANSION_F_R
sData.model = PROP_EPSILON_DOOR_R
sData.coords = << -697.94, 48.35, 44.30 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_EPSILON_MANSION_F_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "EPSILON_MANSION_F_R"
#ENDIF
BREAK
CASE DOORNAME_EPSILON2_STORAGE_ROOM
sData.model = V_ILev_EpsStoreDoor
sData.coords = << 241.3574, 361.0488, 105.8963 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_EPSILON2_STORAGE_ROOM)
#IF IS_DEBUG_BUILD
sData.dbg_name = "EPSILON2_STORAGE_ROOM"
#ENDIF
BREAK
CASE DOORNAME_EPSILON3_GARAGE
sData.model = PROP_CH2_09C_GARAGE_DOOR
sData.coords = << -689.11, 506.97, 110.64 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_EPSILON3_GARAGE)
#IF IS_DEBUG_BUILD
sData.dbg_name = "EPSILON3_GARAGE"
#ENDIF
BREAK
CASE DOORNAME_LINVADER_OFFICE_UP
sData.model = V_ILEV_DOOR_ORANGESOLID
sData.coords = << -1055.96, -236.43, 44.17 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_LINVADER_OFFICE_UP)
#IF IS_DEBUG_BUILD
sData.dbg_name = "LINVADER_OFFICE_UP"
#ENDIF
BREAK
// DUMMY DOORS THAT GET USED FOR CUTSCENES ONLY
CASE DOORNAME_HENCHMAN_TRAILER_L
sData.model = PROP_MAGENTA_DOOR
sData.coords = << 29, 3661, 41 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_HENCHMAN_TRAILER_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "HENCHMAN_TRAILER_L"
#ENDIF
BREAK
CASE DOORNAME_HENCHMAN_TRAILER_R
sData.model = PROP_CS4_05_TDOOR
sData.coords = << 32, 3667, 41 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_HENCHMAN_TRAILER_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "HENCHMAN_TRAILER_R"
#ENDIF
BREAK
CASE DOORNAME_FRANK1_DEALER_DOOR
sData.model = V_ILEV_HOUSEDOOR1
sData.coords = << 87, -1959, 21 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_FRANK1_DEALER_DOOR)
#IF IS_DEBUG_BUILD
sData.dbg_name = "FRANK1_DEALER_DOOR"
#ENDIF
BREAK
CASE DOORNAME_FRANK1_SHOP_DOOR
sData.model = V_ILEV_FH_FRNTDOOR
sData.coords = << 0, -1823, 30 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_FRANK1_SHOP_DOOR)
#IF IS_DEBUG_BUILD
sData.dbg_name = "FRANK1_SHOP_DOOR"
#ENDIF
BREAK
CASE DOORNAME_FRANK1_HOUSE_DOOR
sData.model = P_CUT_DOOR_03
sData.coords = << 23.34, -1897.60, 23.05 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_FRANK1_HOUSE_DOOR)
#IF IS_DEBUG_BUILD
sData.dbg_name = "FRANK1_HOUSE_DOOR"
#ENDIF
BREAK
CASE DOORNAME_EPSILON_7_TRAILER
sData.model = P_CUT_DOOR_02
sData.coords = << 524.20, 3081.14, 41.16 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_EPSILON_7_TRAILER)
#IF IS_DEBUG_BUILD
sData.dbg_name = "EPSILON_7_TRAILER"
#ENDIF
BREAK
CASE DOORNAME_SHRINK_OFFICE
sData.model = V_ILEV_PO_DOOR
sData.coords = << -1910.58, -576.01, 19.25 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_SHRINK_OFFICE)
#IF IS_DEBUG_BUILD
sData.dbg_name = "SHRINK_OFFICE"
#ENDIF
BREAK
CASE DOORNAME_LES_BIANCO_RESTAURANT_L
sData.model = PROP_SS1_10_DOOR_L
sData.coords = << -720.39, 256.86, 80.29 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_LES_BIANCO_RESTAURANT_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "LES_BIANCO_RESTAURANT_L"
#ENDIF
BREAK
CASE DOORNAME_LES_BIANCO_RESTAURANT_R
sData.model = PROP_SS1_10_DOOR_R
sData.coords = << -718.42, 257.79, 80.29 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_LES_BIANCO_RESTAURANT_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "LES_BIANCO_RESTAURANT_R"
#ENDIF
BREAK
CASE DOORNAME_FIB_F_L
sData.model = V_ILEV_FIBL_DOOR02
sData.coords = << 106.38, -742.70, 46.18 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_FIB_F_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "FIB_F_L"
#ENDIF
BREAK
CASE DOORNAME_FIB_F_R
sData.model = V_ILEV_FIBL_DOOR01
sData.coords = << 105.76, -746.65, 46.18 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_FIB_F_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "FIB_F_R"
#ENDIF
BREAK
CASE DOORNAME_AIRPORT_TOWER_1
sData.model = V_ILEV_CT_DOOR01
sData.coords = << -2343.53, 3265.37, 32.96 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_AIRPORT_TOWER_1)
#IF IS_DEBUG_BUILD
sData.dbg_name = "AIRPORT_TOWER_1"
#ENDIF
BREAK
CASE DOORNAME_AIRPORT_TOWER_2
sData.model = V_ILEV_CT_DOOR01
sData.coords = << -2342.23, 3267.62, 32.96 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_AIRPORT_TOWER_1)
#IF IS_DEBUG_BUILD
sData.dbg_name = "AIRPORT_TOWER_2"
#ENDIF
BREAK
CASE DOORNAME_AIRPORT_L
sData.model = AP1_02_DOOR_L
sData.coords = << -1041.9326, -2748.1675, 22.0308 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_AIRPORT_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "AIRPORT_L"
#ENDIF
BREAK
CASE DOORNAME_AIRPORT_R
sData.model = AP1_02_DOOR_R
sData.coords = << -1044.8408, -2746.4888, 22.0308 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_AIRPORT_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "AIRPORT_R"
#ENDIF
BREAK
CASE DOORNAME_LIFE_INVADER_FRONT_L
sData.model = V_ILEV_FB_DOORSHORTL
sData.coords = << -1045.1199, -232.0040, 39.4379 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_LIFE_INVADER_FRONT_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "LIFE_INVADER_FRONT_L"
#ENDIF
BREAK
CASE DOORNAME_LIFE_INVADER_FRONT_R
sData.model = V_ILEV_FB_DOORSHORTR
sData.coords = << -1046.5161, -229.3581, 39.4379 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_LIFE_INVADER_FRONT_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "LIFE_INVADER_FRONT_R"
#ENDIF
BREAK
CASE DOORNAME_LIFE_INVADER_REAR_L
sData.model = V_ILEV_FB_DOOR01
sData.coords = << -1083.6201, -260.4167, 38.1867 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_LIFE_INVADER_REAR_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "LIFE_INVADER_REAR_L"
#ENDIF
BREAK
CASE DOORNAME_LIFE_INVADER_REAR_R
sData.model = V_ILEV_FB_DOOR02
sData.coords = << -1080.9744, -259.0204, 38.1867 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_LIFE_INVADER_REAR_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "LIFE_INVADER_REAR_R"
#ENDIF
BREAK
CASE DOORNAME_LIFE_INVADER_SIDE_01
sData.model = V_ILEV_GTDOOR
sData.coords = << -1042.57, -240.60, 38.11 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_LIFE_INVADER_SIDE_01)
#IF IS_DEBUG_BUILD
sData.dbg_name = "LIFE_INVADER_SIDE_01"
#ENDIF
BREAK
CASE DOORNAME_FBI2_MEET_BUILDING
sData.model = PROP_DAMDOOR_01
sData.coords = << 1385.2578, -2079.9495, 52.7638 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_FBI2_MEET_BUILDING)
#IF IS_DEBUG_BUILD
sData.dbg_name = "FBI2_MEET_BUILDING"
#ENDIF
BREAK
CASE DOORNAME_BANK_GRAPESEED_L
sData.model = v_ilev_genbankdoor2
sData.coords = << 1656.57, 4849.66, 42.35 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_BANK_GRAPESEED_L)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "BANK_GRAPESEED_L"
#ENDIF
BREAK
CASE DOORNAME_BANK_GRAPESEED_R
sData.model = v_ilev_genbankdoor1
sData.coords = << 1656.25, 4852.24, 42.35 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_BANK_GRAPESEED_R)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "BANK_GRAPESEED_R"
#ENDIF
BREAK
CASE DOORNAME_STUDIO_NORTH_GATE_IN
sData.model = PROP_SEC_BARRIER_LD_01A
sData.coords = << -1051.4019, -474.6847, 36.6199 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_STUDIO_NORTH_GATE_IN)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_STUDIO_GATE))
#IF IS_DEBUG_BUILD
sData.dbg_name = "STUDIO_NORTH_GATE_IN"
#ENDIF
BREAK
CASE DOORNAME_STUDIO_NORTH_GATE_OUT
sData.model = PROP_SEC_BARRIER_LD_01A
sData.coords = << -1049.2853, -476.6376, 36.7584 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_STUDIO_NORTH_GATE_OUT)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_STUDIO_GATE))
#IF IS_DEBUG_BUILD
sData.dbg_name = "STUDIO_NORTH_GATE_OUT"
#ENDIF
BREAK
CASE DOORNAME_STUDIO_SOUTH_GATE_IN
sData.model = PROP_SEC_BARRIER_LD_02A
sData.coords = << -1210.9567, -580.8765, 27.2373 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_STUDIO_SOUTH_GATE_IN)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_STUDIO_GATE))
#IF IS_DEBUG_BUILD
sData.dbg_name = "STUDIO_SOUTH_GATE_IN"
#ENDIF
BREAK
CASE DOORNAME_STUDIO_SOUTH_GATE_OUT
sData.model = PROP_SEC_BARRIER_LD_02A
sData.coords = << -1212.4453, -578.4401, 27.2373 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_STUDIO_SOUTH_GATE_OUT)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_STUDIO_GATE))
#IF IS_DEBUG_BUILD
sData.dbg_name = "STUDIO_SOUTH_GATE_OUT"
#ENDIF
BREAK
CASE DOORNAME_TEQUILA_CLUB_DOOR_F
sData.model = V_ILEV_ROC_DOOR4
sData.coords = << -565.1712, 276.6259, 83.2863 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_TEQUILA_CLUB_DOOR_F)
#IF IS_DEBUG_BUILD
sData.dbg_name = "TEQUILA_CLUB_DOOR_F"
#ENDIF
BREAK
CASE DOORNAME_TEQUILA_CLUB_DOOR_R
sData.model = V_ILEV_ROC_DOOR4
sData.coords = << -561.2863, 293.5043, 87.7771 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_TEQUILA_CLUB_DOOR_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "TEQUILA_CLUB_DOOR_R"
#ENDIF
BREAK
CASE DOORNAME_HEIST_JEWELERS_L
sData.model = p_jewel_door_l
sData.coords = << -631.96, -236.33, 38.21 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_HEIST_JEWELERS_L)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "HEIST_JEWELERS_L"
#ENDIF
BREAK
CASE DOORNAME_HEIST_JEWELERS_R
sData.model = p_jewel_door_r1
sData.coords = << -630.43, -238.44, 38.21 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_HEIST_JEWELERS_R)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "HEIST_JEWELERS_R"
#ENDIF
BREAK
CASE DOORNAME_BANK_VINEWOOD_CORNER_L
sData.model = prop_ld_bankdoors_01
sData.coords = << 231.62, 216.23, 106.40 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_BANK_VINEWOOD_CORNER_L)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "BANK_VINEWOOD_CORNER_L"
#ENDIF
BREAK
CASE DOORNAME_BANK_VINEWOOD_CORNER_R
sData.model = prop_ld_bankdoors_01
sData.coords = << 232.72, 213.88, 106.40 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_BANK_VINEWOOD_CORNER_R)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "BANK_VINEWOOD_CORNER_R"
#ENDIF
BREAK
CASE DOORNAME_BANK_VINEWOOD_FRONT_L
sData.model = hei_prop_hei_bankdoor_new
sData.coords = << 258.32, 203.84, 106.43 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_BANK_VINEWOOD_FRONT_L)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "BANK_VINEWOOD_FRONT_L"
#ENDIF
BREAK
CASE DOORNAME_BANK_VINEWOOD_FRONT_R
sData.model = hei_prop_hei_bankdoor_new
sData.coords = << 260.76, 202.95, 106.43 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_BANK_VINEWOOD_FRONT_R)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "BANK_VINEWOOD_FRONT_R"
#ENDIF
BREAK
CASE DOORNAME_BANK_VINEWOOD_TELLER
sData.model = HEI_V_ILEV_BK_GATE_PRIS
sData.coords = << 256.31, 220.66, 106.43 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_BANK_VINEWOOD_TELLER)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "BANK_VINEWOOD_TELLER"
#ENDIF
BREAK
CASE DOORNAME_BANK_VINEWOOD_OFFICE
sData.model = v_ilev_bk_door
sData.coords = << 266.36, 217.57, 110.43 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_BANK_VINEWOOD_OFFICE)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "BANK_VINEWOOD_OFFICE"
#ENDIF
BREAK
CASE DOORNAME_SHERIFF_FRONT_L
sData.model = V_ILEV_SHRF2DOOR
sData.coords = <<-442.6600,6015.2217,31.8663>>
sData.doorHash = ENUM_TO_INT(DOORHASH_SHERIFF_FRONT_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "SHERIFF_FRONT_L"
#ENDIF
BREAK
CASE DOORNAME_SHERIFF_FRONT_R
sData.model = V_ILEV_SHRF2DOOR
sData.coords = <<-444.4985,6017.0601,31.8663>>
sData.doorHash = ENUM_TO_INT(DOORHASH_SHERIFF_FRONT_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "SHERIFF_FRONT_R"
#ENDIF
BREAK
CASE DOORNAME_SHERIFF_CS4
sData.model = V_ILEV_SHRFDOOR
sData.coords =<<1855.6848,3683.9302,34.5928>>
sData.doorHash = ENUM_TO_INT(DOORHASH_SHERIFF_CS4)
#IF IS_DEBUG_BUILD
sData.dbg_name = "SHERIFF_CS4"
#ENDIF
BREAK
CASE DOORNAME_VONCRAST_1_L
sData.model = prop_bhhotel_door_l
sData.coords =<<-1223.35, -172.41, 39.98>>
sData.doorHash = ENUM_TO_INT(DOORHASH_VONCRAST_1_L)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "VONCRAST_1_L"
#ENDIF
BREAK
CASE DOORNAME_VONCRAST_1_R
sData.model = prop_bhhotel_door_r
sData.coords =<<-1220.93, -173.68, 39.98>>
sData.doorHash = ENUM_TO_INT(DOORHASH_VONCRAST_1_R)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "VONCRAST_1_R"
#ENDIF
BREAK
CASE DOORNAME_VONCRAST_2_L
sData.model = prop_bhhotel_door_l
sData.coords =<<-1211.99, -190.57, 39.98>>
sData.doorHash = ENUM_TO_INT(DOORHASH_VONCRAST_2_L)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "VONCRAST_2_L"
#ENDIF
BREAK
CASE DOORNAME_VONCRAST_2_R
sData.model = prop_bhhotel_door_r
sData.coords =<<-1213.26, -192.98, 39.98>>
sData.doorHash = ENUM_TO_INT(DOORHASH_VONCRAST_2_R)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "VONCRAST_2_R"
#ENDIF
BREAK
CASE DOORNAME_VONCRAST_3_L
sData.model = prop_bhhotel_door_l
sData.coords =<<-1217.77, -201.54, 39.98>>
sData.doorHash = ENUM_TO_INT(DOORHASH_VONCRAST_3_L)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "VONCRAST_3_L"
#ENDIF
BREAK
CASE DOORNAME_VONCRAST_3_R
sData.model = prop_bhhotel_door_r
sData.coords =<<-1219.04, -203.95, 39.98>>
sData.doorHash = ENUM_TO_INT(DOORHASH_VONCRAST_3_R)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "VONCRAST_3_R"
#ENDIF
BREAK
CASE DOORNAME_NOSE_REAR_L
sData.model = prop_ch3_04_door_01l
sData.coords =<<2514.32, -317.34, 93.32>>
sData.doorHash = ENUM_TO_INT(DOORHASH_NOSE_REAR_L)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "NOSE_REAR_L"
#ENDIF
BREAK
CASE DOORNAME_NOSE_REAR_R
sData.model = prop_ch3_04_door_01r
sData.coords =<<2512.42, -319.26, 93.32>>
sData.doorHash = ENUM_TO_INT(DOORHASH_NOSE_REAR_R)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "NOSE_REAR_R"
#ENDIF
BREAK
CASE DOORNAME_OMEGA_SHED_L
sData.model = prop_ch3_01_trlrdoor_l
sData.coords =<<2333.23, 2574.97, 47.03>>
sData.doorHash = ENUM_TO_INT(DOORHASH_OMEGA_SHED_L)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "OMEGA_SHED_L"
#ENDIF
BREAK
CASE DOORNAME_OMEGA_SHED_R
sData.model = prop_ch3_01_trlrdoor_r
sData.coords =<<2329.65, 2576.64, 47.03>>
sData.doorHash = ENUM_TO_INT(DOORHASH_OMEGA_SHED_R)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "OMEGA_SHED_R"
#ENDIF
BREAK
CASE DOORNAME_GUN_SHOP_01_DT_L
sData.model = V_ILEV_GC_DOOR04
sData.coords = << 16.1279, -1114.6055, 29.9469 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_GUN_SHOP_01_DT_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "GUN_SHOP_01_DT_L"
#ENDIF
BREAK
CASE DOORNAME_GUN_SHOP_01_DT_R
sData.model = V_ILEV_GC_DOOR03
sData.coords = << 18.5720, -1115.4951, 29.9469 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_GUN_SHOP_01_DT_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "GUN_SHOP_01_DT_R"
#ENDIF
BREAK
CASE DOORNAME_GUN_SHOP_02_SS_L
sData.model = V_ILEV_GC_DOOR04
sData.coords = << 1698.1763, 3751.5056, 34.8553 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_GUN_SHOP_02_SS_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "GUN_SHOP_02_SS_L"
#ENDIF
BREAK
CASE DOORNAME_GUN_SHOP_02_SS_R
sData.model = V_ILEV_GC_DOOR03
sData.coords = << 1699.9371, 3753.4202, 34.8553 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_GUN_SHOP_02_SS_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "GUN_SHOP_02_SS_R"
#ENDIF
BREAK
CASE DOORNAME_GUN_SHOP_03_HW_L
sData.model = V_ILEV_GC_DOOR04
sData.coords = << 244.7274, -44.0791, 70.910 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_GUN_SHOP_03_HW_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "GUN_SHOP_03_HW_L"
#ENDIF
BREAK
CASE DOORNAME_GUN_SHOP_03_HW_R
sData.model = V_ILEV_GC_DOOR03
sData.coords = << 243.8379, -46.5232, 70.910 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_GUN_SHOP_03_HW_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "GUN_SHOP_03_HW_R"
#ENDIF
BREAK
CASE DOORNAME_GUN_SHOP_04_ELS_L
sData.model = V_ILEV_GC_DOOR04
sData.coords = << 845.3624, -1024.5391, 28.3448 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_GUN_SHOP_04_ELS_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "GUN_SHOP_04_ELS_L"
#ENDIF
BREAK
CASE DOORNAME_GUN_SHOP_04_ELS_R
sData.model = V_ILEV_GC_DOOR03
sData.coords = << 842.7684, -1024.5391, 23.3448 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_GUN_SHOP_04_ELS_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "GUN_SHOP_04_ELS_R"
#ENDIF
BREAK
CASE DOORNAME_GUN_SHOP_05_PB_L
sData.model = V_ILEV_GC_DOOR04
sData.coords = << -326.1122, 6075.2695, 31.6047 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_GUN_SHOP_05_PB_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "GUN_SHOP_05_PB_L"
#ENDIF
BREAK
CASE DOORNAME_GUN_SHOP_05_PB_R
sData.model = V_ILEV_GC_DOOR03
sData.coords = << -324.2730, 6077.1089, 31.6047 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_GUN_SHOP_05_PB_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "GUN_SHOP_05_PB_R"
#ENDIF
BREAK
CASE DOORNAME_GUN_SHOP_06_LS_L
sData.model = V_ILEV_GC_DOOR04
sData.coords = << -665.2424, -944.3256, 21.9792 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_GUN_SHOP_06_LS_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "GUN_SHOP_06_LS_L"
#ENDIF
BREAK
CASE DOORNAME_GUN_SHOP_06_LS_R
sData.model = V_ILEV_GC_DOOR03
sData.coords = << -662.6414, -944.3256, 21.9792 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_GUN_SHOP_06_LS_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "GUN_SHOP_06_LS_R"
#ENDIF
BREAK
CASE DOORNAME_GUN_SHOP_07_MW_L
sData.model = V_ILEV_GC_DOOR04
sData.coords = << -1313.8259, -389.1259, 36.8457 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_GUN_SHOP_07_MW_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "GUN_SHOP_07_MW_L"
#ENDIF
BREAK
CASE DOORNAME_GUN_SHOP_07_MW_R
sData.model = V_ILEV_GC_DOOR03
sData.coords = << -1314.4650, -391.6472, 36.8457 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_GUN_SHOP_07_MW_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "GUN_SHOP_07_MW_R"
#ENDIF
BREAK
CASE DOORNAME_GUN_SHOP_08_CS_L
sData.model = V_ILEV_GC_DOOR04
sData.coords = << -1114.0089, 2689.7700, 18.7041 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_GUN_SHOP_08_CS_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "GUN_SHOP_08_CS_L"
#ENDIF
BREAK
CASE DOORNAME_GUN_SHOP_08_CS_R
sData.model = V_ILEV_GC_DOOR03
sData.coords = << -1112.0708, 2691.5046, 18.7041 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_GUN_SHOP_08_CS_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "GUN_SHOP_08_CS_R"
#ENDIF
BREAK
CASE DOORNAME_GUN_SHOP_09_GOH_L
sData.model = V_ILEV_GC_DOOR04
sData.coords = << -3164.8452, 1081.3917, 20.9887 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_GUN_SHOP_09_GOH_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "GUN_SHOP_09_GOH_L"
#ENDIF
BREAK
CASE DOORNAME_GUN_SHOP_09_GOH_R
sData.model = V_ILEV_GC_DOOR03
sData.coords = << -3163.8115, 1083.7784, 20.9887 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_GUN_SHOP_09_GOH_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "GUN_SHOP_09_GOH_R"
#ENDIF
BREAK
CASE DOORNAME_GUN_SHOP_10_VWH_L
sData.model = V_ILEV_GC_DOOR04
sData.coords = << 2570.9045, 303.3556, 108.8848 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_GUN_SHOP_10_VWH_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "GUN_SHOP_10_VWH_L"
#ENDIF
BREAK
CASE DOORNAME_GUN_SHOP_10_VWH_R
sData.model = V_ILEV_GC_DOOR03
sData.coords = << 2568.3037, 303.3556, 108.8848 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_GUN_SHOP_10_VWH_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "GUN_SHOP_10_VWH_R"
#ENDIF
BREAK
CASE DOORNAME_GUN_SHOP_11_ID1_L
sData.model = V_ILEV_GC_DOOR04
sData.coords = << 813.1779, -2148.2695, 29.7689 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_GUN_SHOP_01_DT_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "GUN_SHOP_11_ID1_L"
#ENDIF
BREAK
CASE DOORNAME_GUN_SHOP_11_ID1_R
sData.model = V_ILEV_GC_DOOR03
sData.coords = << 810.5769, -2148.2695, 29.7689 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_GUN_SHOP_01_DT_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "GUN_SHOP_11_ID2_R"
#ENDIF
BREAK
CASE DOORNAME_GUN_SHOP_01_DT_SR
sData.model = V_ILEV_GC_DOOR01
sData.coords = << 6.8179, -1098.2095, 29.9469 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_GUN_SHOP_01_DT_SR)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IGNORE_SAFETY_CHECKS))
#IF IS_DEBUG_BUILD
sData.dbg_name = "GUN_SHOP_01_DT_SR"
#ENDIF
BREAK
CASE DOORNAME_GUN_SHOP_11_ID1_SR
sData.model = V_ILEV_GC_DOOR01
sData.coords = << 827.5342, -2160.4927, 29.7688 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_GUN_SHOP_11_ID1_SR)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IGNORE_SAFETY_CHECKS))
#IF IS_DEBUG_BUILD
sData.dbg_name = "GUN_SHOP_11_ID1_SR"
#ENDIF
BREAK
CASE DOORNAME_JOSH_GATE_F_L
sData.model = prop_lrggate_01c_l
sData.coords = << -1107.01, 289.38, 64.76 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_JOSH_GATE_F_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "JOSH_GATE_F_L"
#ENDIF
BREAK
CASE DOORNAME_JOSH_GATE_F_R
sData.model = prop_lrggate_01c_r
sData.coords = << -1101.62, 290.36, 64.76 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_JOSH_GATE_F_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "JOSH_GATE_F_R"
#ENDIF
BREAK
CASE DOORNAME_JOSH_GATE_R_L
sData.model = prop_lrggate_01c_l
sData.coords = << -1138.64, 300.82, 67.18 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_JOSH_GATE_R_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "JOSH_GATE_R_L"
#ENDIF
BREAK
CASE DOORNAME_JOSH_GATE_R_R
sData.model = prop_lrggate_01c_r
sData.coords = << -1137.05, 295.59, 67.18 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_JOSH_GATE_R_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "JOSH_GATE_R_R"
#ENDIF
BREAK
CASE DOORNAME_ARMYBASE_LIFT_L
sData.model = v_ilev_bl_doorel_l
sData.coords = << -2053.16, 3239.49, 30.50 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_ARMYBASE_LIFT_L)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "ARMYBASE_LIFT_L"
#ENDIF
BREAK
CASE DOORNAME_ARMYBASE_LIFT_R
sData.model = v_ilev_bl_doorel_r
sData.coords = << -2054.39, 3237.23, 30.50 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_ARMYBASE_LIFT_R)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "ARMYBASE_LIFT_R"
#ENDIF
BREAK
CASE DOORNAME_PALETO_BANK_TELLER
sData.model = v_ilev_cbankcountdoor01
sData.coords = << -108.91, 6469.11, 31.91 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_PALETO_BANK_TELLER)
#IF IS_DEBUG_BUILD
sData.dbg_name = "PALETO_BANK_TELLER"
#ENDIF
BREAK
CASE DOORNAME_CHICKENFACTORY_EXT_GATE
sData.model = prop_fnclink_03gate5
sData.coords = << -182.91, 6168.37, 32.14 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CHICKENFACTORY_EXT_GATE)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "CHICKENFACTORY_EXT_GATE"
#ENDIF
BREAK
// Now we've split this up into multiple switches, this will always fire at once per frame, so let's turn it off
// DEFAULT
// #IF IS_DEBUG_BUILD
// SCRIPT_ASSERT("GET_DOOR_DATA() - Door enum missing. Tell Kenneth R.")
// CPRINTLN(DEBUG_DOOR, "GET_DOOR_DATA() - Door enum missing. Tell Kenneth R.")
// #ENDIF
// BREAK
ENDSWITCH
// The above SWITCH is now full and the game won't compile with any more CASEs in it!
// So, uh, let's start a second one I guess
SWITCH eName
CASE DOORNAME_DEALERSHIP_FRONT_L
sData.model = v_ilev_csr_door_l
sData.coords = << -59.89, -1092.95, 26.88 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_DEALERSHIP_FRONT_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "DEALERSHIP_FRONT_L"
#ENDIF
BREAK
CASE DOORNAME_DEALERSHIP_FRONT_R
sData.model = v_ilev_csr_door_r
sData.coords = << -60.55, -1094.75, 26.89 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_DEALERSHIP_FRONT_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "DEALERSHIP_FRONT_R"
#ENDIF
BREAK
CASE DOORNAME_DEALERSHIP_SIDE_L
sData.model = v_ilev_csr_door_l
sData.coords = << -39.13, -1108.22, 26.72 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_DEALERSHIP_SIDE_L)
#IF IS_DEBUG_BUILD
sData.dbg_name = "DEALERSHIP_SIDE_L"
#ENDIF
BREAK
CASE DOORNAME_DEALERSHIP_SIDE_R
sData.model = v_ilev_csr_door_r
sData.coords = << -37.33, -1108.87, 26.72 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_DEALERSHIP_SIDE_R)
#IF IS_DEBUG_BUILD
sData.dbg_name = "DEALERSHIP_SIDE_R"
#ENDIF
BREAK
CASE DOORNAME_RON_FRONTDOOR
sData.model = prop_ron_door_01
sData.coords = << 1943.73, 3803.63, 32.31 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_RON_FRONTDOOR)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "RON_FRONTDOOR"
#ENDIF
BREAK
CASE DOORNAME_BANK_FLEECA_VW_L
sData.model = v_ilev_genbankdoor2
sData.coords = << 316.39, -276.49, 54.52 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_BANK_FLEECA_VW_L)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "BANK_FLEECA_VW_L"
#ENDIF
BREAK
CASE DOORNAME_BANK_FLEECA_VW_R
sData.model = v_ilev_genbankdoor1
sData.coords = << 313.96, -275.60, 54.52 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_BANK_FLEECA_VW_R)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "BANK_FLEECA_VW_R"
#ENDIF
BREAK
CASE DOORNAME_BANK_FLEECA_HWAY_L
sData.model = v_ilev_genbankdoor2
sData.coords = << -2965.71, 484.22, 16.05 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_BANK_FLEECA_HWAY_L)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "BANK_FLEECA_HWAY_L"
#ENDIF
BREAK
CASE DOORNAME_BANK_FLEECA_HWAY_R
sData.model = v_ilev_genbankdoor1
sData.coords = << -2965.82, 481.63, 16.05 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_BANK_FLEECA_HWAY_R)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "BANK_FLEECA_HWAY_R"
#ENDIF
BREAK
CASE DOORNAME_ABBATOIR_FRONT_L
sData.model = v_ilev_abbmaindoor
sData.coords = << 962.10, -2183.83, 31.06 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_ABBATOIR_FRONT_L)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "ABBATOIR_FRONT_L"
#ENDIF
BREAK
CASE DOORNAME_ABBATOIR_FRONT_R
sData.model = v_ilev_abbmaindoor2
sData.coords = << 961.79, -2187.08, 31.06 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_ABBATOIR_FRONT_R)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "ABBATOIR_FRONT_R"
#ENDIF
BREAK
CASE DOORNAME_NOSE_HELIPAD
sData.model = prop_ch3_04_door_02
sData.coords = << 2508.43, -336.63, 115.76 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_NOSE_HELIPAD)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "NOSE_HELIPAD"
#ENDIF
BREAK
CASE DOORNAME_KORTZ_QING_L
sData.model = prop_ch1_07_door_01l
sData.coords = << -2255.19, 322.26, 184.93 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_KORTZ_QING_L)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "KORTZ_QING_L"
#ENDIF
BREAK
CASE DOORNAME_KORTZ_QING_R
sData.model = prop_ch1_07_door_01r
sData.coords = << -2254.06, 319.70, 184.93 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_KORTZ_QING_R)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "KORTZ_QING_R"
#ENDIF
BREAK
CASE DOORNAME_KORTZ_QINGALT_L
sData.model = prop_ch1_07_door_01l
sData.coords = << -2301.13, 336.91, 184.93 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_KORTZ_QINGALT_L)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "KORTZ_QINGALT_L"
#ENDIF
BREAK
CASE DOORNAME_KORTZ_QINGALT_R
sData.model = prop_ch1_07_door_01r
sData.coords = << -2298.57, 338.05, 184.93 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_KORTZ_QINGALT_R)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "KORTZ_QINGALT_R"
#ENDIF
BREAK
CASE DOORNAME_KORTZ_TALES_L
sData.model = prop_ch1_07_door_01l
sData.coords = << -2222.32, 305.86, 184.93 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_KORTZ_TALES_L)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "KORTZ_TALES_L"
#ENDIF
BREAK
CASE DOORNAME_KORTZ_TALES_R
sData.model = prop_ch1_07_door_01r
sData.coords = << -2221.19, 303.30, 184.93 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_KORTZ_TALES_R)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "KORTZ_TALES_R"
#ENDIF
BREAK
CASE DOORNAME_KORTZ_RICHES_L
sData.model = prop_ch1_07_door_01l
sData.coords = << -2280.60, 265.43, 184.93 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_KORTZ_RICHES_L)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "KORTZ_RICHES_R"
#ENDIF
BREAK
CASE DOORNAME_KORTZ_RICHES_R
sData.model = prop_ch1_07_door_01r
sData.coords = << -2278.04, 266.57, 184.93 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_KORTZ_RICHES_R)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "KORTZ_RICHES_R"
#ENDIF
BREAK
CASE DOORNAME_GARAGE_JETSTEAL
sData.model = prop_gar_door_04
sData.coords = << 778.31, -1867.49, 30.66 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_GARAGE_JETSTEAL)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "GARAGE_JETSTEAL"
#ENDIF
BREAK
CASE DOORNAME_EPSILON_GATE_L
sData.model = prop_gate_tep_01_l
sData.coords = << -721.35, 91.01, 56.68 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_EPSILON_GATE_L)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "EPSILON_GATE_L"
#ENDIF
BREAK
CASE DOORNAME_EPSILON_GATE_R
sData.model = prop_gate_tep_01_r
sData.coords = << -728.84, 88.64, 56.68 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_EPSILON_GATE_R)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "EPSILON_GATE_R"
#ENDIF
BREAK
CASE DOORNAME_KORTZ_FRONTL_L
sData.model = prop_artgallery_02_dr
sData.coords = << -2287.62, 363.90, 174.93 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_KORTZ_FRONTL_L)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "KORTZ_FRONTL_L"
#ENDIF
BREAK
CASE DOORNAME_KORTZ_FRONTL_R
sData.model = prop_artgallery_02_dl
sData.coords = << -2289.78, 362.91, 174.93 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_KORTZ_FRONTL_R)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "KORTZ_FRONTL_R"
#ENDIF
BREAK
CASE DOORNAME_KORTZ_FRONTR_L
sData.model = prop_artgallery_02_dr
sData.coords = << -2289.86, 362.88, 174.93 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_KORTZ_FRONTR_L)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "KORTZ_FRONTR_L"
#ENDIF
BREAK
CASE DOORNAME_KORTZ_FRONTR_R
sData.model = prop_artgallery_02_dl
sData.coords = << -2292.01, 361.89, 174.93 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_KORTZ_FRONTR_R)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "KORTZ_FRONTR_R"
#ENDIF
BREAK
CASE DOORNAME_CLETUS_GATE
sData.model = PROP_FNCLINK_07GATE1
sData.coords = <<1803.94, 3929.01, 33.72 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_CLETUS_GATE)
#IF IS_DEBUG_BUILD
sData.dbg_name = "CLETUS_GATE"
#ENDIF
BREAK
CASE DOORNAME_BANK_FLEECA_BURTON_L
sData.model = v_ilev_genbankdoor2
sData.coords = <<-348.81, -47.26, 49.39 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_BANK_FLEECA_BURTON_L)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "BANK_FLEECA_BURTON_L"
#ENDIF
BREAK
CASE DOORNAME_BANK_FLEECA_BURTON_R
sData.model = v_ilev_genbankdoor1
sData.coords = <<-351.26, -46.41, 49.39 >>
sData.doorHash = ENUM_TO_INT(DOORHASH_BANK_FLEECA_BURTON_R)
SET_BIT(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
#IF IS_DEBUG_BUILD
sData.dbg_name = "BANK_FLEECA_BURTON_R"
#ENDIF
BREAK
CASE DOORNAME_ABATTOIR_EXIT
sData.model = PROP_ABAT_SLIDE
sData.coords = <<962.9084, -2105.8137, 34.6432>>
sData.doorHash = ENUM_TO_INT(DOORHASH_ABATTOIR_EXIT)
#IF IS_DEBUG_BUILD
sData.dbg_name = "ABATTOIR_EXIT"
#ENDIF
BREAK
ENDSWITCH
#IF IS_DEBUG_BUILD
IF IS_VECTOR_ZERO(sData.coords)
SCRIPT_ASSERT("\nGET_DOOR_DATA() - door passed through here has a coord of <<0,0,0>>, is it legit? See SCRIPT_DOORS output, tell Kenneth R/Ian G")
CPRINTLN(DEBUG_DOOR, "GET_DOOR_DATA() - something wrong with this door: ", INT_TO_ENUM(DOOR_NAME_ENUM, eName))
ENDIF
#ENDIF
RETURN sData
ENDFUNC
/// PURPOSE: Returns a struct that contains all the data for the specified building enum
FUNC BOOL GET_BUILDING_DATA(BUILDING_DATA_STRUCT &sData, BUILDING_NAME_ENUM eName)
// Reset data
INT i
REPEAT NUMBER_OF_BUILDING_STATES i
sData.model[i] = DUMMY_MODEL_FOR_SCRIPT
sData.name[i] = ""
sData.road_node_active[i] = FALSE
sData.nav_mesh_block_active[i] = FALSE
sData.code_vehgen_block_active[i] = FALSE
ENDREPEAT
sData.coords = <<0,0,0>>
sData.type = BUILDINGTYPE_STATIC
sData.auto_cleanup = FALSE
sData.ipl_preload = ""
sData.es_interior = ""
sData.es_force_remove = ""
// Road nodes to toggle
sData.road_node_min_coords = <<0,0,0>>
sData.road_node_max_coords = <<0,0,0>>
// Navmesh to block
sData.nav_mesh_block_postion = <<0,0,0>>
sData.nav_mesh_block_sizeXYZ = <<0,0,0>>
sData.nav_mesh_block_heading = 0.0
// Scenario zone to block
sData.scenario_block_minXYZ = <<0,0,0>>
sData.scenario_block_maxXYZ = <<0,0,0>>
// Code vehicle gens to block
sData.code_vehgen_min_coords = <<0,0,0>>
sData.code_vehgen_max_coords = <<0,0,0>>
#IF IS_DEBUG_BUILD
sData.dbg_name = ""
#ENDIF
// BUILDINGTYPE_STATIC - Requires normal model, destroyed model, and coords
// BUILDINGTYPE_IPL - Requires normal name and destroyed name
// BUILDINGTYPE_ENTITY_SET - Requires normal name and destroyed name
// BUILDINGTYPE_RAYFIRE - Requires normal name and coords
SWITCH eName
CASE BUILDINGNAME_IPL_ORTEGA_TRAILER
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "TRV1_Trail_start"
sData.name[BUILDINGSTATE_DESTROYED] = "TRV1_Trail_end"
sData.name[BUILDINGSTATE_CLEANUP] = "TRV1_Trail_Finish"
sData.auto_cleanup = TRUE
sData.coords = << -24.685, 3032.920, 40.331>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_ORTEGA_TRAILER"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_ORTEGA_TRAILER_WATER
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "CS3_05_water_grp1"
sData.name[BUILDINGSTATE_DESTROYED] = "CS3_05_water_grp2"
sData.coords = << -24.685, 3032.920, 40.331 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_ORTEGA_TRAILER_WATER"
#ENDIF
BREAK
CASE BUILDINGNAME_RF_GASSTATION01
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "gasstation_ipl_group1"
sData.name[BUILDINGSTATE_DESTROYED] = "gasstation_ipl_group2"
sData.coords = << -93.4, 6410.9, 36.8 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "RF_GASSTATION01"
#ENDIF
BREAK
CASE BUILDINGNAME_RF_HEAT_WALL
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "DES_Smash2_startimap"
sData.name[BUILDINGSTATE_DESTROYED] = "DES_Smash2_endimap"
sData.coords = <<890.3647, -2367.289, 28.10582>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "RF_HEAT_WALL"
#ENDIF
BREAK
CASE BUILDINGNAME_RF_STILT_HOUSE
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "DES_StiltHouse_imapstart"
sData.name[BUILDINGSTATE_DESTROYED] = "DES_StiltHouse_imapend"
sData.name[BUILDINGSTATE_CLEANUP] = "des_stilthouse_rebuild"
sData.auto_cleanup = FALSE
sData.coords = <<-1020.50, 663.41, 154.75>>
sData.road_node_min_coords = <<-1018.913452, 603.290405, 105.661087>>
sData.road_node_max_coords = <<-1038.913452, 639.290405, 135.661087>>
sData.road_node_active[BUILDINGSTATE_NORMAL] = TRUE
sData.road_node_active[BUILDINGSTATE_DESTROYED] = FALSE
#IF IS_DEBUG_BUILD
sData.dbg_name = "RF_STILT_HOUSE"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_BNKHEIST_APT
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "bnkheist_apt_norm"
sData.name[BUILDINGSTATE_DESTROYED] = "bnkheist_apt_dest"
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_BNKHEIST_APT"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_BNKHEIST_APT_VFX
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "bnkheist_apt_dest_vfx"
sData.name[BUILDINGSTATE_CLEANUP] = "REMOVE_ALL_STATES"
sData.auto_cleanup = TRUE
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_BNKHEIST_APT_VFX"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_CARGOPLANE
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "crashed_cargoplane"
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_CARGOPLANE"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_CARSTEAL_JB700
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "prop_jb700_covered"
sData.coords = <<490.8999, -1334.0680, 28.3298>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_CARSTEAL_JB700"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_CARSTEAL_ENTITYXF
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "prop_entityXF_covered"
sData.coords = <<490.8999, -1334.0680, 28.3298>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_CARSTEAL_ENTITYXF"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_CARSTEAL_CHEETAH
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "prop_cheetah_covered"
sData.coords = <<490.8999, -1334.0680, 28.3298>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_CARSTEAL_CHEETAH"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_CARSTEAL_ZTYPE
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "prop_ztype_covered"
sData.coords = <<490.8999, -1334.0680, 28.3298>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_CARSTEAL_ZTYPE"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_KILLED_MICHAEL
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "BH1_48_Killed_Michael"
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_KILLED_MICHAEL"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_CARGOSHIP
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "cargoship"
sData.name[BUILDINGSTATE_DESTROYED] = "sunkcargoship"
sData.nav_mesh_block_postion = <<-162.891815,-2365.769287,0>>
sData.nav_mesh_block_sizeXYZ = <<190.750000,31.250000,21.000000>>
sData.nav_mesh_block_heading = 0.0
sData.nav_mesh_block_active[BUILDINGSTATE_NORMAL] = FALSE
sData.nav_mesh_block_active[BUILDINGSTATE_DESTROYED] = TRUE
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_CARGOSHIP"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_CARGOSHIP_OCCLUSION
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "ship_occ_grp1"
sData.name[BUILDINGSTATE_DESTROYED] = "ship_occ_grp2"
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_CARGOSHIP_OCCLUSION"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_CRUISESHIP
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "smboat"
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_CRUISESHIP"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_PALETO_GAS_STATION_EFFECTS
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "gasparticle_grp2"
sData.coords = << -95.2, 6411.3, 31.5 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_PALETO_GAS_STATION_EFFECTS"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_PALETO_CHICKEN_FACTORY_INTERIOR_1
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "CS1_02_cf_offmission"
sData.name[BUILDINGSTATE_DESTROYED] = "CS1_02_cf_onmission1"
sData.coords = <<-146.3837, 6161.5000, 30.2062>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_PALETO_CHICKEN_FACTORY_INTERIOR_1"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_PALETO_CHICKEN_FACTORY_INTERIOR_2
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "CS1_02_cf_onmission2"
sData.coords = <<-146.3837, 6161.5000, 30.2062>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_PALETO_CHICKEN_FACTORY_INTERIOR_2"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_PALETO_CHICKEN_FACTORY_INTERIOR_3
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "CS1_02_cf_onmission3"
sData.coords = <<-146.3837, 6161.5000, 30.2062>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_PALETO_CHICKEN_FACTORY_INTERIOR_3"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_PALETO_CHICKEN_FACTORY_INTERIOR_4
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "CS1_02_cf_onmission4"
sData.coords = <<-146.3837, 6161.5000, 30.2062>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_PALETO_CHICKEN_FACTORY_INTERIOR_4"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_JETSTEAL_TUNNEL
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "jetstealtunnel"
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.coords = << 801.7, -1810.8, 23.3 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_JETSTEAL_TUNNEL"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_JETSTEAL
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "Jetsteal_ipl_grp1"
sData.name[BUILDINGSTATE_DESTROYED] = "Jetsteal_ipl_grp2"
sData.name[BUILDINGSTATE_CLEANUP] = "REMOVE_ALL_STATES"
sData.auto_cleanup = TRUE
sData.coords = << 787.3967, -1808.8584, 29.8532 >>
sData.road_node_min_coords = << 814, -1750, 20 >>
sData.road_node_max_coords = << 790, -1899, 35 >>
sData.road_node_active[BUILDINGSTATE_NORMAL] = TRUE
sData.road_node_active[BUILDINGSTATE_DESTROYED] = FALSE
sData.road_node_active[BUILDINGSTATE_CLEANUP] = FALSE
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_JETSTEAL"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_JOSHHOUSE
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "BH1_47_JoshHse_UnBurnt"
sData.name[BUILDINGSTATE_DESTROYED] = "BH1_47_JoshHse_Burnt"
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_JOSHHOUSE"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_JOSHHOUSE_FIRE
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "bh1_47_joshhse_firevfx"
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_JOSHHOUSE_FIRE"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_JOSHHOTEL
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "SC1_30_Keep_Closed"
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_JOSHHOTEL"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_VB_PROPS
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "triathlon2_VBprops"
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_VB_PROPS"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_FIB_C4
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "DT1_05_REQUEST"
sData.coords = << 163.4, -745.7, 251.0 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_FIB_C4"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_FIB_HOLE_PLUG
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "FBI_colPLUG"
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.coords = << 74.29, -736.05, 46.76 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_FIB_HOLE_PLUG"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_FIB_REPAIR
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "FBI_repair"
sData.coords = << 74.29, -736.05, 46.76 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_FIB_REPAIR"
#ENDIF
BREAK
CASE BUILDINGNAME_MS_FIB_DAMAGE_HLOD
sData.type = BUILDINGTYPE_MODEL_SWAP
sData.model[BUILDINGSTATE_NORMAL] = INT_TO_ENUM(MODEL_NAMES, HASH("DT1_05_Build1_H"))
sData.model[BUILDINGSTATE_DESTROYED] = INT_TO_ENUM(MODEL_NAMES, HASH("DT1_05_Build1_Damage"))
sData.coords = << 136.004,-749.287,153.302 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "MS_FIB_DAMAGE_HLOD"
#ENDIF
BREAK
CASE BUILDINGNAME_MS_FIB_DAMAGE_LOD
sData.type = BUILDINGTYPE_MODEL_SWAP
sData.model[BUILDINGSTATE_NORMAL] = INT_TO_ENUM(MODEL_NAMES, HASH("DT1_05_Build1_LOD"))
sData.model[BUILDINGSTATE_DESTROYED] = INT_TO_ENUM(MODEL_NAMES, HASH("DT1_05_Build1_Damage_LOD"))
sData.coords = << 136.004,-749.287,153.302 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "MS_FIB_DAMAGE_LOD"
#ENDIF
BREAK
CASE BUILDINGNAME_MS_FIB_DAMAGE_SLOD
sData.type = BUILDINGTYPE_MODEL_SWAP
sData.model[BUILDINGSTATE_NORMAL] = INT_TO_ENUM(MODEL_NAMES, HASH("DT1_05_SLOD"))
sData.model[BUILDINGSTATE_DESTROYED] = INT_TO_ENUM(MODEL_NAMES, HASH("DT1_05_Damage_SLOD"))
sData.coords = << 178.534,-668.835,37.2113 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "MS_FIB_DAMAGE_SLOD"
#ENDIF
BREAK
//lights for explosion cutscene
case BUILDINGNAME_MS_FIB_HEIST_EXPLOSION_LIGHTS
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "FIB_heist_lights"
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.coords = << 136.004,-749.287,153.302 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "MS_FIB_HEIST_EXPLOSION_LIGHTS"
#ENDIF
break
//damage for building after explosion
case BUILDINGNAME_MS_FIB_HEIST_EXPLOSION_DAMAGE
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "FIB_heist_dmg"
sData.coords = << 136.004,-749.287,153.302 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "MS_FIB_HEIST_EXPLOSION_DAMAGE"
#ENDIF
break
CASE BUILDINGNAME_IPL_FIB_RUBBLE
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "DT1_05_rubble"
sData.coords = << 74.29, -736.05, 46.76 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_FIB_RUBBLE"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_FIB_LOBBY_INTERIOR
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "FIBlobbyfake"
sData.name[BUILDINGSTATE_DESTROYED] = "FIBlobby"
sData.coords = <<105.4557, -745.4835, 44.7548>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_FIB_LOBBY_INTERIOR"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_HELIHOLE
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "DT1_05_HC_REMOVE"
sData.name[BUILDINGSTATE_DESTROYED] = "DT1_05_HC_REQ"
sData.coords = << 169.0, -670.3, 41.9 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_HELIHOLE"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_TRAILERPARK_BLOCKING_AREA
sData.type = BUILDINGTYPE_IPL
sData.coords = << 50.2, 3743.9, 40.9 >>
sData.scenario_block_minXYZ = <<16.9757, 3614.3074, 30.0677>>
sData.scenario_block_maxXYZ = <<145.2451,3748.9121, 49.6958>>
sData.code_vehgen_min_coords = <<16.9757, 3614.3074, 30.0677>>
sData.code_vehgen_max_coords = <<145.2451,3748.9121, 49.6958>>
sData.code_vehgen_block_active[BUILDINGSTATE_NORMAL] = FALSE
sData.code_vehgen_block_active[BUILDINGSTATE_DESTROYED] = TRUE
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_TRAILERPARK_BLOCKING_AREA"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_TRAILERPARK_A
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "trailerparkA_grp1"
sData.name[BUILDINGSTATE_DESTROYED] = "trailerparkA_grp2"
sData.coords = << 50.2, 3743.9, 40.9 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_TRAILERPARK_A"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_TRAILERPARK_A_OCCLUSION
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "occl_trailerA_grp1"
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.coords = << 50.2, 3743.9, 40.9 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_TRAILERPARK_A_OCCLUSION"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_TRAILERPARK_B
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "trailerparkB_grp1"
sData.name[BUILDINGSTATE_DESTROYED] = "trailerparkB_grp2"
sData.coords = << 106.7, 3732.1, 40.8 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_TRAILERPARK_B"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_TRAILERPARK_B_OCCLUSION
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "occl_trailerB_grp1"
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.coords = << 106.7, 3732.1, 40.8 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_TRAILERPARK_B_OCCLUSION"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_TRAILERPARK_C
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "trailerparkC_grp1"
sData.name[BUILDINGSTATE_DESTROYED] = "trailerparkC_grp2"
sData.coords = << 72.7, 3695.4, 42.0 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_TRAILERPARK_C"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_TRAILERPARK_C_OCCLUSION
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "occl_trailerC_grp1"
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.coords = << 72.7, 3695.4, 42.0 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_TRAILERPARK_C_OCCLUSION"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_TRAILERPARK_D
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "trailerparkD_grp1"
sData.name[BUILDINGSTATE_DESTROYED] = "trailerparkD_grp2"
sData.coords = << 43.8, 3699.7, 41.3 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_TRAILERPARK_D"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_TRAILERPARK_D_OCCLUSION
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "occl_trailerD_grp1"
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.coords = << 43.8, 3699.7, 41.3 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_TRAILERPARK_D_OCCLUSION"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_TRAILERPARK_E
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "trailerparkE_grp1"
sData.name[BUILDINGSTATE_DESTROYED] = "trailerparkE_grp2"
sData.coords = << 28.5, 3668.0, 40.4 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_TRAILERPARK_E"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_TRAILERPARK_E_OCCLUSION
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "occl_trailerE_grp1"
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.coords = << 28.5, 3668.0, 40.4 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_TRAILERPARK_E_OCCLUSION"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_METH_TRAILER
sData.type = BUILDINGTYPE_IPL
sData.ipl_preload = "des_methtrailer"
sData.name[BUILDINGSTATE_NORMAL] = "methtrailer_grp1"
sData.name[BUILDINGSTATE_DESTROYED] = "methtrailer_grp2"
sData.name[BUILDINGSTATE_CLEANUP] = "methtrailer_grp3"
sData.auto_cleanup = TRUE
sData.coords = << 29.4838, 3735.5930, 38.6880 >>
sData.nav_mesh_block_postion = << 31.134, 3738.783, 39.062 >>
sData.nav_mesh_block_sizeXYZ = << 13.600, 20.000, 8.900 >>
sData.nav_mesh_block_heading = 48.000
sData.nav_mesh_block_active[BUILDINGSTATE_NORMAL] = FALSE
sData.nav_mesh_block_active[BUILDINGSTATE_DESTROYED] = TRUE
sData.nav_mesh_block_active[BUILDINGSTATE_CLEANUP] = TRUE
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_METH_TRAILER"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_METH_TRAILER_OCCLUSION
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "occl_meth_grp1"
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.coords = << 29.4838, 3735.5930, 38.6880 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_METH_TRAILER_OCCLUSION"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_FARM_HOUSE
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "des_farmhs_startimap"
sData.name[BUILDINGSTATE_DESTROYED] = "des_farmhs_endimap"
sData.name[BUILDINGSTATE_CLEANUP] = "REMOVE_ALL_STATES"
sData.auto_cleanup = TRUE
sData.coords = << 2450.5955, 4959.9292, 44.2575 >>
sData.scenario_block_minXYZ = <<2383.755615,4929.988281,39.524609>>
sData.scenario_block_maxXYZ = <<2505.755615,5023.988281,67.524609>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_FARM_HOUSE"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_FARM_HOUSE_OCCLUSION
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "des_farmhs_start_occl"
sData.name[BUILDINGSTATE_DESTROYED] = "des_farmhs_end_occl"
sData.name[BUILDINGSTATE_CLEANUP] = ""
sData.coords = << 2450.5955, 4959.9292, 44.2575 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_FARM_HOUSE_OCCLUSION"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_FARM_HOUSE_CLNUP1
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "farm"
sData.name[BUILDINGSTATE_DESTROYED] = "farm"
sData.name[BUILDINGSTATE_CLEANUP] = "farm_burnt"
sData.auto_cleanup = TRUE
sData.coords = << 2444.8, 4976.4, 50.5 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_FARM_HOUSE_CLNUP1"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_FARM_HOUSE_CLNUP2
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "farm_props"
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.name[BUILDINGSTATE_CLEANUP] = "farm_burnt_props"
sData.auto_cleanup = TRUE
sData.coords = << 2447.9, 4973.4, 47.7 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_FARM_HOUSE_CLNUP2"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_FARM_HOUSE_CLNUP3
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "des_farmhouse"
sData.name[BUILDINGSTATE_DESTROYED] = "des_farmhouse"
sData.name[BUILDINGSTATE_CLEANUP] = "REMOVE_ALL_STATES"
sData.auto_cleanup = TRUE
sData.coords = << 2447.9, 4973.4, 47.7 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_FARM_HOUSE_CLNUP4"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_FARM_HOUSE_INTERIOR
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "farmint_cap"
sData.name[BUILDINGSTATE_DESTROYED] = "farmint"
sData.name[BUILDINGSTATE_CLEANUP] = ""
sData.coords = << 2447.9, 4973.4, 47.7 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_FARM_HOUSE_INTERIOR"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_KILL_TREVOR_TANKER_EXPLOSION_1
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "tankerexp_grp0"
sData.name[BUILDINGSTATE_DESTROYED] = "tankerexp_grp3"
sData.coords =<<1676.4154, -1626.3705, 111.4848>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_KILL_TREVOR_TANKER_EXPLOSION_1"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_KILL_TREVOR_TANKER_EXPLOSION_2
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "tankerexp_grp1"
sData.coords =<<1676.4154, -1626.3705, 111.4848>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_KILL_TREVOR_TANKER_EXPLOSION_2"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_KILL_TREVOR_TANKER_EXPLOSION_3
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "tankerexp_grp2"
sData.coords =<<1676.4154, -1626.3705, 111.4848>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_KILL_TREVOR_TANKER_EXPLOSION_3"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_KILL_TREVOR_TANKER_EXPLOSION_4
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "DES_tankerexp"
sData.coords =<<1676.4154, -1626.3705, 111.4848>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_KILL_TREVOR_TANKER_EXPLOSION_4"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_DOCK_CRANE
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "dockcrane1"
sData.coords = << 889.3, -2910.9, 40.0 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_DOCK_CRANE"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_CANYON_RIVERBED
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "CanyonRvrShallow"
sData.name[BUILDINGSTATE_DESTROYED] = "CanyonRvrDeep"
sData.coords = << -1600.6194, 4443.4565, 0.7250 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_CANYON_RIVERBED"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_LOST_GANG_DOORS
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "Garage_door_locked"
sData.coords = << 966.1, -114.8, 75.2 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_LOST_GANG_DOORS"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_FIB3_BEACH_HOUSE
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "ch1_02_closed"
sData.name[BUILDINGSTATE_DESTROYED] = "ch1_02_open"
sData.coords = << -3086.4285, 339.2523, 6.3717 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_FIB3_BEACH_HOUSE"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_FERRIS_WHEEL
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "ferris_finale_Anim"
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.coords = << -1675.1783, -1143.6046, 12.0175 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_FERRIS_WHEEL"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_EXL3_TRAIN_CRASH
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "railing_start"
sData.name[BUILDINGSTATE_DESTROYED] = "railing_end"
sData.coords = << -532.1309, 4526.1870, 88.7955 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_EXL3_TRAIN_CRASH"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_EXL3_TRAIN_CRASH_2
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "canyonriver01"
sData.name[BUILDINGSTATE_DESTROYED] = "canyonriver01_traincrash"
sData.coords = << -532.1309, 4526.1870, 88.7955 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_EXL3_TRAIN_CRASH_2"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_FIB2_TOWER
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "DT1_05_WOFFM"
sData.name[BUILDINGSTATE_DESTROYED] = "DT1_05_FIB2_Mission"
sData.name[BUILDINGSTATE_CLEANUP] = "DT1_05_WOFFM"
sData.coords = << 131.29, -631.22, 261.85 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_FIB2_TOWER"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_CORONER_TRASH
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "coronertrash"
sData.coords = << 233.9, -1355.0, 30.3 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_CORONER_TRASH"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_CORONER_INTERIOR
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "Coroner_Int_off"
sData.name[BUILDINGSTATE_DESTROYED] = "Coroner_Int_on"
sData.coords = << 234.4, -1355.6, 40.5 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_CORONER_INTERIOR"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_SWEATSHOP_NO_INTERIOR
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "id2_14_pre_no_int"
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.coords = << 716.84, -962.05, 31.59 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_SWEATSHOP_NO_INTERIOR"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_SWEATSHOP_WITH_INTERIOR
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "id2_14_during1"
sData.name[BUILDINGSTATE_CLEANUP] = "id2_14_during2"
sData.coords = << 716.84, -962.05, 31.59 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_SWEATSHOP_WITH_INTERIOR"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_SWEATSHOP_BURNT
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "id2_14_on_fire"
sData.name[BUILDINGSTATE_CLEANUP] = "id2_14_post_no_int"
sData.coords = << 716.84, -962.05, 31.59 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_SWEATSHOP_BURNT"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_SWEATSHOP_LOD_DOOR
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "id2_14_during_door"
sData.coords = << 716.84, -962.05, 31.59 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_SWEATSHOP_BURNT"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_SWEATSHOP_WINDOW_LIGHTS
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "burnt_switch_off"
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.coords = << 716.84, -962.05, 31.59 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_SWEATSHOP_BURNT"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_PILLBOX_HILL
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "RC12B_Default"
sData.name[BUILDINGSTATE_DESTROYED] = "RC12B_Destroyed"
sData.name[BUILDINGSTATE_CLEANUP] = "RC12B_Fixed"
sData.auto_cleanup = FALSE
sData.coords = <<330.4596, -584.8196, 42.3174>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_PILLBOX_HILL"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_PILLBOX_HILL_INTERIOR
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "RC12B_HospitalInterior"
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.auto_cleanup = FALSE
sData.coords = <<330.4596, -584.8196, 42.3174>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_PILLBOX_HILL_INTERIOR"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_CAPOLAVORO_BILLBOARD_GRAFFITI
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "SM_15_BldGRAF1"
sData.coords = <<330.4596, -584.8196, 42.3174>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_CAPOLAVORO_BILLBOARD_GRAFFITI"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_BISHOPS_CHICKEN_BILLBOARD_GRAFFITI
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "CH3_RD2_BishopsChickenGraffiti"
sData.coords = <<1861.28,2402.11,58.53>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_BISHOPS_CHICKEN_BILLBOARD_GRAFFITI"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_FRUIT_BILLBOARD_GRAFFITI
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "FruitBB"
sData.coords = <<-1327.46,-274.82,54.25>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_FRUIT_BILLBOARD_GRAFFITI"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_MAZE_BILLBOARD_GRAFFITI
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "CS5_04_MazeBillboardGraffiti"
sData.coords = <<2697.32,3162.18,58.1>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_MAZE_BILLBOARD_GRAFFITI"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_RON_OIL_BILLBOARD_GRAFFITI
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "CS5_Roads_RonOilGraffiti"
sData.coords = <<2119.12,3058.21,53.25>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_RON_OIL_BILLBOARD_GRAFFITI"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_VAPID_BILLBOARD_GRAFFITI
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "ap1_03_bbrd_dcl"
sData.coords = <<-804.25,-2276.88,23.59>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_VAPID_BILLBOARD_GRAFFITI"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_MELTDOWN_POSTERS
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "HW1_02_OldBill"
sData.name[BUILDINGSTATE_DESTROYED] = "HW1_02_NewBill"
sData.coords = <<296.5,173.3,100.4>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_MELTDOWN_POSTERS"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_MELTDOWN_POSTERS_EMISSIVE
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "HW1_Emissive_OldBill"
sData.name[BUILDINGSTATE_DESTROYED] = "HW1_Emissive_NewBill"
sData.coords = <<296.5,173.3,100.4>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_MELTDOWN_POSTERS"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_CARSTEAL_GARAGE
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.name[BUILDINGSTATE_CLEANUP] = ""
sData.auto_cleanup = TRUE
sData.coords = <<480.9554, -1321.2096, 28.2037>>
sData.code_vehgen_min_coords = <<508.3, -1299.3, 39.4>>
sData.code_vehgen_max_coords = <<459.9, -1363.2, 21.4>>
sData.code_vehgen_block_active[BUILDINGSTATE_NORMAL] = FALSE
sData.code_vehgen_block_active[BUILDINGSTATE_DESTROYED] = TRUE
sData.code_vehgen_block_active[BUILDINGSTATE_CLEANUP] = FALSE
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_CARSTEAL_GARAGE"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_TREVORS_TRAILER
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "TrevorsTrailer"
sData.name[BUILDINGSTATE_DESTROYED] = "TrevorsTrailerTrash"
sData.name[BUILDINGSTATE_CLEANUP] = "TrevorsTrailerTidy"
sData.coords = << 1973.0, 3815.0, 34.0 >>
sData.auto_cleanup = FALSE
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_TREVORS_TRAILER"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_ARM2_SCAFFOLDING
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "scafstartimap"
sData.name[BUILDINGSTATE_DESTROYED] = "scafendimap"
sData.coords = << -1088.6, -1650.6, 6.4 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_ARM2_SCAFFOLDING"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_CHOP_PROPS
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "chop_props"
sData.coords = << -13.83, -1455.45, 31.81 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_CHOP_PROPS"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_TRIATHLON_1_INFLATABLE
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "AP1_04_TriAf01"
sData.coords = <<-1277.6292, -2030.9130, 1.2823>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_TRIATHLON_1_INFLATABLE"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_TRIATHLON_2_INFLATABLE
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "CS2_06_TriAf02"
sData.coords = <<2384.9692, 4277.5825, 30.3790>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_TRIATHLON_2_INFLATABLE"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_TRIATHLON_3_INFLATABLE
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "CS4_04_TriAf03"
sData.coords = <<1577.8813, 3836.1074, 30.7717>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_TRIATHLON_3_INFLATABLE"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_AGENCY_2_LIFTS
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "DT1_21_prop_lift_on"
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.coords = <<-180.5771, -1016.9276, 28.2893>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_AGENCY_2_LIFTS"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_JEWEL_STORE
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "jewel2fake"
sData.name[BUILDINGSTATE_DESTROYED] = "post_hiest_unload"
sData.name[BUILDINGSTATE_CLEANUP] = "bh1_16_refurb"
sData.coords = <<-630.4205, -236.7843, 37.0570>>
sData.scenario_block_minXYZ = <<-623.686829-11.000000, -231.935043-11.000000,40.307034-3.250000>>
sData.scenario_block_maxXYZ = <<-623.686829+11.000000, -231.935043+11.000000,40.307034+3.250000>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_JEWEL_STORE"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_JEWEL_HEIST_MAX_RENDA_INTERIOR
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "bh1_16_doors_shut"
sData.name[BUILDINGSTATE_DESTROYED] = "refit_unload"
sData.coords = <<-583.1606, -282.3967, 35.3940>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_JEWEL_HEIST_MAX_RENDA_INTERIOR"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_JEWEL_HEIST_BIKE_TUNNELS
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "v_tunnel_hole_swap"
sData.name[BUILDINGSTATE_DESTROYED] = "v_tunnel_hole"
sData.coords = <<-14.6510, -604.3639, 25.1823>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_JEWEL_HEIST_BIKE_TUNNELS"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_BIG_SCORE_RAIL_TANKCAR
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "cs5_4_trains"
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.coords = <<2773.6099, 2835.3274, 35.1903>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_BIG_SCORE_RAIL_TANKCAR"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_AIRFIELD_PROPS
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "airfield"
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.coords = <<1743.6821, 3286.2512, 40.0875>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_AIRFIELD_PROPS"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_MARTIN1_ROAD_NODES
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.name[BUILDINGSTATE_CLEANUP] = "REMOVE_ALL_STATES"
sData.auto_cleanup = TRUE
sData.coords = <<1222.9, 1877.9, 79.9>>
sData.road_node_min_coords = <<1206.8, 1803.0, 43.9>>
sData.road_node_max_coords = <<1329.0, 2060.4, 143.9>>
sData.road_node_active[BUILDINGSTATE_NORMAL] = FALSE
sData.road_node_active[BUILDINGSTATE_DESTROYED] = TRUE
sData.road_node_active[BUILDINGSTATE_CLEANUP] = FALSE
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_MARTIN1_ROAD_NODES"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_BB_TACO_BOMB
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "SC1_01_OldBill"
sData.name[BUILDINGSTATE_DESTROYED] = "SC1_01_NewBill"
sData.coords = << -351, -1324, 44.02 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_BB_TACO_BOMB"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_BB_CCC_KINGS
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "DT1_17_OldBill"
sData.name[BUILDINGSTATE_DESTROYED] = "DT1_17_NewBill"
sData.coords = << 391.81, -962.71, 41.97 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_BB_CCC_KINGS"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_BB_MOLLIS
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "SC1_14_OldBill"
sData.name[BUILDINGSTATE_DESTROYED] = "SC1_14_NewBill"
sData.coords = << 424.2, -1944.31, 33.09 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_BB_MOLLIS"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_BIG_SCORE_RAILS_1
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "ld_rail_01_track"
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.coords = <<2626.3743, 2949.8689, 39.1409>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_BIG_SCORE_RAILS_1"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_BIG_SCORE_RAILS_2
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "ld_rail_02_track"
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.coords = <<2626.3743, 2949.8689, 39.1409>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_BIG_SCORE_RAILS_2"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_MIC_AMANDAS_STUFF
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = "V_Michael_M_items"
sData.name[BUILDINGSTATE_DESTROYED] = "V_Michael_M_moved"
sData.es_interior = "V_Michael"
sData.coords = << -811.2679, 179.3344, 75.7408 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_MIC_AMANDAS_STUFF"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_MIC_TRACEYS_STUFF
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = "V_Michael_D_items"
sData.name[BUILDINGSTATE_DESTROYED] = "V_Michael_D_Moved"
sData.es_interior = "V_Michael"
sData.coords = << -802.0311, 172.9131, 75.7408 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_MIC_TRACEYS_STUFF"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_MIC_JIMMYS_STUFF
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = "V_Michael_S_items"
sData.name[BUILDINGSTATE_DESTROYED] = "V_Michael_S_items_swap"
sData.es_interior = "V_Michael"
sData.coords = << -808.0330, 172.1309, 75.7406 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_MIC_JIMMYS_STUFF"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_MIC_LOUNGE_STUFF
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = "V_Michael_L_Items"
sData.name[BUILDINGSTATE_DESTROYED] = "V_Michael_L_Moved"
sData.es_interior = "V_Michael"
sData.coords = << -808.0330, 172.1309, 75.7406 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_MIC_LOUNGE_STUFF"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_MIC_DINING_ROOM_DEAD_FLOWERS
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "V_Michael_M_items_swap"
sData.es_interior = "V_Michael"
sData.coords = << -808.0330, 172.1309, 75.7406 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_MIC_LOUNGE_STUFF"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_TRACEY_BEDROOM_FAME_OR_SHAME
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "V_Michael_FameShame"
sData.es_interior = "V_Michael"
sData.coords = << -802.0311, 172.9131, 75.7408 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_TRACEY_BEDROOM_FAME_OR_SHAME"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_MICHAEL_BEDROOM_JEWEL_HEIST_SPY_GLASSES
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "V_Michael_JewelHeist"
sData.es_interior = "V_Michael"
sData.coords = << -813.3, 177.5, 75.76.7 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_MICHAEL_BEDROOM_JEWEL_HEIST_SPY_GLASSES"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_MICHAEL_UPSTAIRS_MOVIE_PREMIER
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "Michael_premier"
sData.es_interior = "V_Michael"
sData.coords = << -813.3, 177.5, 75.76.7 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_MICHAEL_UPSTAIRS_MOVIE_PREMIER"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_MICHAEL_HALL_PLANE_TICKETS
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "V_Michael_plane_ticket"
sData.es_interior = "V_Michael"
sData.coords = << -813.3, 177.5, 75.76.7 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_FAMILY5_KITCHEN_BURGERSHOT"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_FAMILY5_KITCHEN_BURGERSHOT
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "burgershot_yoga"
sData.es_interior = "V_Michael"
sData.coords = << -813.3, 177.5, 75.76.7 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_FAMILY5_KITCHEN_BURGERSHOT"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_FIB5_MICHAEL_GARAGE_SCUBA
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "V_Michael_Scuba"
sData.es_interior = "V_Michael_Garage"
sData.coords = <<-810.5301, 187.7868, 71.4786>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_ES_FIB5_MICHAEL_GARAGE_SCUBA"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_MICHAEL_BED
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = "V_Michael_bed_tidy"
sData.name[BUILDINGSTATE_DESTROYED] = "V_Michael_bed_Messy"
sData.es_interior = "V_Michael"
sData.coords = << -811.2679, 179.3344, 75.7408 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_MIC_AMANDAS_STUFF"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_JEWEL_HEIST_SWEATSHOP_BUGSTAR_GEAR
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "Jewel_Gasmasks"
sData.es_interior = "V_Sweat"
sData.coords = <<707.2563, -965.1470, 29.4179>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_JEWEL_HEIST_SWEATSHOP_BUGSTAR_GEAR"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_AGENCY_HEIST_SWEATSHOP_OVERALLS
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "V_53_Agency _Overalls"
sData.es_interior = "V_Sweat"
sData.coords = <<707.2563, -965.1470, 29.4179>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_AGENCY_HEIST_SWEATSHOP_OVERALLS"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_AGENCY_HEIST_SWEATSHOP_BLUEPRINT
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "V_53_Agency_Blueprint"
sData.es_interior = "V_Sweat"
sData.coords = <<707.2563, -965.1470, 29.4179>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_AGENCY_HEIST_SWEATSHOP_BLUEPRINT"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_FIB4_SWEATSHOP_KITBAG
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "V_35_KitBag"
sData.es_interior = "V_Sweat"
sData.coords = <<707.2563, -965.1470, 29.4179>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_FIB4_SWEATSHOP_KITBAG"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_PALETO_SWEATSHOP_ARMOUR
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "V_35_Body_Armour"
sData.es_interior = "V_Sweat"
sData.coords = <<707.2563, -965.1470, 29.4179>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_PALETO_SWEATSHOP_ARMOUR"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_AGENCY_HEIST_SWEATSHOP_FIREMAN_GEAR
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "V_35_Fireman"
sData.es_interior = "V_Sweat"
sData.coords = <<707.2563, -965.1470, 29.4179>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_AGENCY_HEIST_SWEATSHOP_FIREMAN_GEAR"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_TREVORS_TRAILER_NORMAL_COP_UNIFORM
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "V_26_Trevor_Helmet1"
sData.es_interior = "V_Trailer"
sData.coords = <<1973.8053, 3818.5547, 32.4363>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_TRAILER_NORMAL_COP_UNIFORM"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_TREVORS_TRAILER_TRASH_COP_UNIFORM
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "V_26_Trevor_Helmet3"
sData.es_interior = "V_TrailerTRASH"
sData.coords = <<1973.8053, 3818.5547, 32.4363>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_TRAILER_TRASH_COP_UNIFORM"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_TREVORS_TRAILER_TIDY_COP_UNIFORM
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "V_26_Trevor_Helmet2"
sData.es_interior = "V_TrailerTidy"
sData.coords = <<1973.8053, 3818.5547, 32.4363>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_ES_TRAILER_TIDY_COP_UNIFORM"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_TREVORS_TRAILER_NORMAL_BRIEFCASE
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "V_24_Trevor_Briefcase1"
sData.es_interior = "V_Trailer"
sData.coords = <<1973.8053, 3818.5547, 32.4363>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_TRAILER_NORMAL_BRIEFCASE"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_TREVORS_TRAILER_TRASH_BRIEFCASE
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "V_24_Trevor_Briefcase3"
sData.es_interior = "V_TrailerTRASH"
sData.coords = <<1973.8053, 3818.5547, 32.4363>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_TRAILER_TRASH_BRIEFCASE"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_TREVORS_TRAILER_TIDY_BRIEFCASE
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "V_24_Trevor_Briefcase2"
sData.es_interior = "V_TrailerTidy"
sData.coords = <<1973.8053, 3818.5547, 32.4363>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_TRAILER_TIDY_BRIEFCASE"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_TREVORS_TRAILER_NORMAL_MICHAEL_STAY
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "V_26_Michael_Stay1"
sData.es_interior = "V_Trailer"
sData.coords = <<1973.8053, 3818.5547, 32.4363>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_TREVORS_TRAILER_NORMAL_MICHAEL_STAY"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_TREVORS_TRAILER_TRASH_MICHAEL_STAY
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "V_26_Michael_Stay3"
sData.es_interior = "V_TrailerTRASH"
sData.coords = <<1973.8053, 3818.5547, 32.4363>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_TREVORS_TRAILER_TRASH_MICHAEL_STAY"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_TREVORS_TRAILER_TIDY_MICHAEL_STAY
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "V_26_Michael_Stay2"
sData.es_interior = "V_TrailerTidy"
sData.coords = <<1973.8053, 3818.5547, 32.4363>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_TREVORS_TRAILER_TIDY_MICHAEL_STAY"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_CAR_SHOWROOOM_SHUTTERS
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = "shutter_open"
sData.name[BUILDINGSTATE_DESTROYED] = "shutter_closed"
sData.es_interior = "v_carshowroom"
sData.coords = << -30.8793, -1088.3356, 25.4221 >>
sData.nav_mesh_block_postion = <<-29.30, -1086.35, 25.57>>
sData.nav_mesh_block_sizeXYZ = <<5.5,3,2>>
sData.nav_mesh_block_heading = -10
sData.nav_mesh_block_active[BUILDINGSTATE_NORMAL] = FALSE
sData.nav_mesh_block_active[BUILDINGSTATE_DESTROYED] = TRUE
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_CAR_SHOWROOOM_SHUTTERS"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_CAR_SHOWROOOM_WINDOWS
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = "csr_beforeMission"
sData.name[BUILDINGSTATE_DESTROYED] = "csr_afterMissionA"
sData.name[BUILDINGSTATE_CLEANUP] = "csr_afterMissionB"
sData.es_force_remove = "csr_inMission"
sData.auto_cleanup = FALSE
sData.es_interior = "v_carshowroom"
sData.coords = << -59.7936, -1098.7841, 27.2612 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_CAR_SHOWROOOM_WINDOWS"
#ENDIF
BREAK
// Northern wall, next to the fake door and glass cabinet
CASE BUILDINGNAME_ES_CAR_SHOWROOOM_RUBBLE1
sData.type = BUILDINGTYPE_IPL //BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.name[BUILDINGSTATE_CLEANUP] = ""
sData.es_interior = "v_carshowroom"
sData.coords = <<-49.21, -1090.28, 25.42>>
sData.nav_mesh_block_postion = <<-49.21, -1090.28, 25.42>>
sData.nav_mesh_block_sizeXYZ = <<2.5,3,3>>
sData.nav_mesh_block_heading = 0
sData.nav_mesh_block_active[BUILDINGSTATE_NORMAL] = FALSE
sData.nav_mesh_block_active[BUILDINGSTATE_DESTROYED] = TRUE
sData.nav_mesh_block_active[BUILDINGSTATE_CLEANUP] = FALSE
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_CAR_SHOWROOOM_RUBBLE1"
#ENDIF
BREAK
// Next to rubble 1, covering the fallen Voltic display stand
CASE BUILDINGNAME_ES_CAR_SHOWROOOM_RUBBLE2
sData.type = BUILDINGTYPE_IPL //BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.name[BUILDINGSTATE_CLEANUP] = ""
sData.es_interior = "v_carshowroom"
sData.coords = <<-49.28, -1092.66, 25.42>>
sData.nav_mesh_block_postion = <<-49.28, -1092.66, 25.42>>
sData.nav_mesh_block_sizeXYZ = <<3,1,3>>
sData.nav_mesh_block_heading = 0
sData.nav_mesh_block_active[BUILDINGSTATE_NORMAL] = FALSE
sData.nav_mesh_block_active[BUILDINGSTATE_DESTROYED] = TRUE
sData.nav_mesh_block_active[BUILDINGSTATE_CLEANUP] = FALSE
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_CAR_SHOWROOOM_RUBBLE2"
#ENDIF
BREAK
// Covering the tipped-over desk by the "Premium Deluxe Motorsport" signage on the wall, by the smashed window
CASE BUILDINGNAME_ES_CAR_SHOWROOOM_RUBBLE3
sData.type = BUILDINGTYPE_IPL //BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.name[BUILDINGSTATE_CLEANUP] = ""
sData.es_interior = "v_carshowroom"
sData.coords = <<-53.07, -1096.73, 25.50>>
sData.nav_mesh_block_postion = <<-53.07, -1096.73, 25.50>>
sData.nav_mesh_block_sizeXYZ = <<1,3,2>>
sData.nav_mesh_block_heading = -45
sData.nav_mesh_block_active[BUILDINGSTATE_NORMAL] = FALSE
sData.nav_mesh_block_active[BUILDINGSTATE_DESTROYED] = TRUE
sData.nav_mesh_block_active[BUILDINGSTATE_CLEANUP] = FALSE
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_CAR_SHOWROOOM_RUBBLE3"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_CAR_SHOWROOM_LOD_BOARD
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "carshowroom_broken"
sData.name[BUILDINGSTATE_CLEANUP] = "carshowroom_boarded"
sData.auto_cleanup = FALSE
sData.coords = << -59.7936, -1098.7841, 27.2612 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_CAR_SHOWROOM_LOD_BOARD"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_CAR_SHOWROOM_INTERIOR
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "shr_int"
sData.name[BUILDINGSTATE_DESTROYED] = "fakeint"
sData.auto_cleanup = FALSE
sData.coords = << -59.7936, -1098.7841, 27.2612 >>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_CAR_SHOWROOM_INTERIOR"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_BANK_CAR_PARK_SHUTTERS // THIS IS NOW AN IPL
sData.type = BUILDINGTYPE_IPL //BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = "DT1_03_Shutter" //"DT1_03_carparkshutters"
sData.name[BUILDINGSTATE_DESTROYED] = "" //""
sData.es_interior = "" //"dt1_03_carpark"
sData.coords = <<23.9346, -669.7552, 30.8853>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_BANK_CAR_PARK_SHUTTERS"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_PILLBOX_HILL
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = "Hospitaldoorsanim"
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.name[BUILDINGSTATE_CLEANUP] = "Hospitaldoorsfixed"
sData.es_interior = "v_hospital"
sData.auto_cleanup = FALSE
sData.coords = <<300.9423, -586.1784, 42.2919>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_PILLBOX_HILL"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_FLOYDS_APPARTMENT
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = "swap_clean_apt"
sData.name[BUILDINGSTATE_DESTROYED] = "layer_mess_A"
sData.es_interior = "v_trevors"
sData.coords = <<-1157.1294, -1523.0276, 9.6327>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_FLOYDS_APPARTMENT"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_FLOYDS_APPARTMENT_MESS_1
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "layer_mess_B"
sData.name[BUILDINGSTATE_CLEANUP] = ""
sData.es_interior = "v_trevors"
sData.coords = <<-1157.1294, -1523.0276, 9.6327>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_FLOYDS_APPARTMENT_MESS_1"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_FLOYDS_APPARTMENT_MESS_2
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "layer_mess_C"
sData.name[BUILDINGSTATE_CLEANUP] = ""
sData.es_interior = "v_trevors"
sData.coords = <<-1157.1294, -1523.0276, 9.6327>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_FLOYDS_APPARTMENT_MESS_2"
#ENDIF
BREAK
#IF NOT IS_JAPANESE_BUILD
CASE BUILDINGNAME_ES_FLOYDS_APPARTMENT_SEX_TOYS
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "layer_sextoys_a"
sData.name[BUILDINGSTATE_CLEANUP] = ""
sData.es_interior = "v_trevors"
sData.coords = <<-1157.1294, -1523.0276, 9.6327>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_FLOYDS_APPARTMENT_SEX_TOYS"
#ENDIF
BREAK
#ENDIF
CASE BUILDINGNAME_ES_FLOYDS_APPARTMENT_SHIT
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "layer_wade_shit"
sData.es_interior = "v_trevors"
sData.coords = <<-1157.1294, -1523.0276, 9.6327>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_FLOYDS_APPARTMENT_SHIT"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_FLOYDS_APPARTMENT_SHIT_SOFA
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "swap_wade_sofa_A"
sData.es_interior = "v_trevors"
sData.coords = <<-1157.1294, -1523.0276, 9.6327>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_FLOYDS_APPARTMENT_SHIT_SOFA"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_FLOYDS_APPARTMENT_PICTURE
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = "layer_debra_pic"
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.es_interior = "v_trevors"
sData.coords = <<-1157.1294, -1523.0276, 9.6327>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_FLOYDS_APPARTMENT_PICTURE"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_FLOYDS_APPARTMENT_TORTURE_TOOLS
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "layer_torture"
sData.es_interior = "v_trevors"
sData.coords = <<-1157.1294, -1523.0276, 9.6327>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_FLOYDS_APPARTMENT_TORTURE_TOOLS"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_FLOYDS_APPARTMENT_SOFA
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = "swap_sofa_A"
sData.name[BUILDINGSTATE_DESTROYED] = "swap_sofa_B"
sData.es_interior = "v_trevors"
sData.coords = <<-1157.1294, -1523.0276, 9.6327>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_FLOYDS_APPARTMENT_SOFA"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_FLOYDS_APPARTMENT_WHISKY
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "layer_whiskey"
sData.es_interior = "v_trevors"
sData.coords = <<-1157.1294, -1523.0276, 9.6327>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_FLOYDS_APPARTMENT_WHISKY"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_FLOYDS_APPARTMENT_RASPBERRY_JAM
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = "swap_mrJam_A"
sData.name[BUILDINGSTATE_DESTROYED] = "swap_mrJam_B"
sData.name[BUILDINGSTATE_CLEANUP] = ""
sData.es_interior = "v_trevors"
sData.coords = <<-1157.1294, -1523.0276, 9.6327>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_FLOYDS_APPARTMENT_RASPBERRY_JAM"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_FLOYDS_APPARTMENT_RASPBERRY_JAM_CUTSCENE
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "swap_mrJam_C"
sData.es_interior = "v_trevors"
sData.coords = <<-1157.1294, -1523.0276, 9.6327>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_FLOYDS_APPARTMENT_RASPBERRY_JAM_CUTSCENE"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_FLOYDS_APPARTMENT_BLOODY_WINDOW
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "vb_30_emissive"
sData.name[BUILDINGSTATE_DESTROYED] = "vb_30_murder"
sData.auto_cleanup = FALSE
sData.coords = <<-1150.0391, -1521.7610, 9.6331>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_FLOYDS_APPARTMENT_BLOODY_WINDOW"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_FLOYDS_APPARTMENT_CRIME_TAPE
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "vb_30_crimetape"
sData.auto_cleanup = FALSE
sData.coords = <<-1150.0391, -1521.7610, 9.6331>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_FLOYDS_APPARTMENT_CRIME_TAPE"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_SHERIFF_WINDOWS
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "sheriff_cap"
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.auto_cleanup = FALSE
sData.coords = <<1856.0288, 3682.9983, 33.2675>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_SHERIFF_WINDOWS"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_SHERIFF_WINDOWS2
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "CS1_16_Sheriff_Cap"
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.auto_cleanup = FALSE
sData.coords = <<-440.5073, 6018.7661, 30.4900>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_SHERIFF_WINDOWS2"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_UFO
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "ufo"
sData.auto_cleanup = FALSE
sData.coords = <<487.3100, 5588.3857, 793.0532>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_UFO"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_UFO_EYE
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "ufo_eye"
sData.auto_cleanup = FALSE
sData.coords = <<487.3100, 5588.3857, 793.0532>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_UFO"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_FRANKLINS_CITY_SAVEHOUSE
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = "V_57_FranklinStuff"
sData.name[BUILDINGSTATE_DESTROYED] = "V_57_Franklin_LEFT"
sData.es_interior = "v_franklins"
sData.coords = <<-13.9623, -1440.6136, 30.1015>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_FRANKLINS_CITY_SAVEHOUSE"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_FRANKLINS_CITY_SAVEHOUSE_BANDANA
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "V_57_GangBandana"
sData.es_interior = "v_franklins"
sData.coords = <<-13.9623, -1440.6136, 30.1015>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_FRANKLINS_CITY_SAVEHOUSE_BANDANA"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_FRANKLINS_CITY_SAVEHOUSE_KITBAG
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "V_57_Safari"
sData.es_interior = "v_franklins"
sData.coords = <<-13.9623, -1440.6136, 30.1015>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_ES_FRANKLINS_CITY_SAVEHOUSE_KITBAG"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_STRIPCLUB_TREVORS_MESS
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "V_19_Trevor_Mess"
sData.es_interior = "v_strip3"
sData.coords = <<96.4811, -1291.2944, 28.2688>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_STRIPCLUB_TREVORS_MESS"
#ENDIF
BREAK
CASE BUILDINGNAME_SB_BUGSTAR_DOCKS_1
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.name[BUILDINGSTATE_CLEANUP] = ""
sData.auto_cleanup = FALSE
sData.coords = <<139.579529,-3092.962402,8.646310>>
sData.scenario_block_minXYZ = <<139.579529,-3092.962402,8.646310>> - <<33.312500,24.000000,4.187500>>
sData.scenario_block_maxXYZ = <<139.579529,-3092.962402,8.646310>> + <<33.312500,24.000000,4.187500>>
sData.code_vehgen_min_coords = <<139.579529,-3092.962402,8.646310>> - <<33.312500,24.000000,4.187500>>
sData.code_vehgen_max_coords = <<139.579529,-3092.962402,8.646310>> + <<33.312500,24.000000,4.187500>>
sData.code_vehgen_block_active[BUILDINGSTATE_NORMAL] = FALSE
sData.code_vehgen_block_active[BUILDINGSTATE_DESTROYED] = TRUE
sData.code_vehgen_block_active[BUILDINGSTATE_CLEANUP] = TRUE
#IF IS_DEBUG_BUILD
sData.dbg_name = "SB_BUGSTAR_DOCKS_1"
#ENDIF
BREAK
CASE BUILDINGNAME_SB_BUGSTAR_DOCKS_2
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.name[BUILDINGSTATE_CLEANUP] = ""
sData.auto_cleanup = FALSE
sData.coords = <<203.778381,-3131.767090,7.041344>>
sData.scenario_block_minXYZ = <<203.778381,-3131.767090,7.041344>> - <<4.875000,2.750000,2.562500>>
sData.scenario_block_maxXYZ = <<203.778381,-3131.767090,7.041344>> + <<4.875000,2.750000,2.562500>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "SB_BUGSTAR_DOCKS_2"
#ENDIF
BREAK
CASE BUILDINGNAME_SB_BUGSTAR_DOCKS_3
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.name[BUILDINGSTATE_CLEANUP] = ""
sData.auto_cleanup = FALSE
sData.coords = <<144.770554,-2982.659424,7.952507>>
sData.scenario_block_minXYZ = <<144.770554,-2982.659424,7.952507>> - <<5.312500,3.437500,3.125000>>
sData.scenario_block_maxXYZ = <<144.770554,-2982.659424,7.952507>> + <<5.312500,3.437500,3.125000>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "SB_BUGSTAR_DOCKS_3"
#ENDIF
BREAK
CASE BUILDINGNAME_SB_FLOYDS
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.name[BUILDINGSTATE_CLEANUP] = ""
sData.auto_cleanup = TRUE
sData.coords = <<-1154.964722,-1520.982666, 9.132731>>
sData.scenario_block_minXYZ = <<-1154.964722,-1520.982666, 9.132731>>
sData.scenario_block_maxXYZ = <<-1158.964722,-1524.982666,11.632731>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "SB_FLOYDS"
#ENDIF
BREAK
CASE BUILDINGNAME_SB_KRIS_HOLTS
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.name[BUILDINGSTATE_CLEANUP] = ""
sData.auto_cleanup = TRUE
sData.coords = <<-1052.2039, 371.9537, 67.9140>>
sData.scenario_block_minXYZ = <<-1052.2039, 371.9537, 67.9140>>
sData.scenario_block_maxXYZ = <<-1048.0645, 368.0221, 70.9128>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "SB_KRIS_HOLTS"
#ENDIF
BREAK
CASE BUILDINGNAME_SB_TREVORS_TRAILER
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.name[BUILDINGSTATE_CLEANUP] = ""
sData.auto_cleanup = TRUE
sData.coords = <<1954.9836, 3792.9910, 30.3086>>
sData.scenario_block_minXYZ = <<1954.9836, 3792.9910, 30.3086>>
sData.scenario_block_maxXYZ = <<1983.4500, 3830.7800, 36.2726>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "SB_TREVORS_TRAILER"
#ENDIF
BREAK
CASE BUILDINGNAME_SB_N1D_GOLFER
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.name[BUILDINGSTATE_CLEANUP] = ""
sData.auto_cleanup = TRUE
sData.coords = <<-1122.2018, 48.5724, 51.4652>>
sData.scenario_block_minXYZ = <<-1122.2018, 48.5724, 51.4652>>
sData.scenario_block_maxXYZ = <<-1076.2333, 92.1041, 60.0617>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "SB_N1D_GOLFER_AREA"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_MIC3_KORTZ_RENNOVATION
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "KorizTempWalls"
sData.name[BUILDINGSTATE_CLEANUP] = ""
sData.auto_cleanup = FALSE
sData.coords = <<-2199.1377, 223.4648, 181.1118>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_MIC3_KORTZ_RENNOVATION"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_MIC3_HELI_DEBRIS
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "mic3_chopper_debris"
sData.name[BUILDINGSTATE_CLEANUP] = ""
sData.auto_cleanup = FALSE
sData.coords = <<-2242.7847, 263.4779, 173.6154>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_MIC3_HELI_DEBRIS"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_FIB5_UNDERWATER_GRATE
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "chemgrill_grp1"
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.coords = <<3832.9, 3665.5, -23.4>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_FIB5_UNDERWATER_GRATE"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_PLANE_CRASH_TRENCH
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "Plane_crash_trench"
sData.name[BUILDINGSTATE_CLEANUP] = ""
sData.auto_cleanup = FALSE
sData.coords = <<2814.7, 4758.5, 47.9>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_PLANE_CRASH_TRENCH"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_GOLF_FLAGS
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "golfflags"
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.coords = <<-1096.5055, 4.5754, 49.8103>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_GOLF_FLAGS"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_YOGA_GAME
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "yogagame"
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.coords = <<-781.6566, 186.8937, 71.8352>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_YOGA_GAME"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_CARWASH_LONG
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "Carwash_with_spinners"
sData.name[BUILDINGSTATE_DESTROYED] = "Carwash_without_spinners"
sData.auto_cleanup = FALSE
sData.coords = <<55.7,-1391.3,30.5>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_CARWASH_LONG"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_CARWASH_SHORT
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "KT_CarWash"
sData.name[BUILDINGSTATE_DESTROYED] = "KT_CarWash_NoBrush"
sData.auto_cleanup = FALSE
sData.coords = <<700.091, -933.641, 20.308>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_CARWASH_SHORT"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_CARGEN_BLOCK_POLMAV_VB_0
sData.type = BUILDINGTYPE_IPL
sData.coords = <<-1096.3812, -836.1700, 36.6755>>
sData.code_vehgen_min_coords = sData.coords - <<15.0, 25.0, 25.0>>
sData.code_vehgen_max_coords = sData.coords + <<15.0, 25.0, 25.0>>
sData.code_vehgen_block_active[BUILDINGSTATE_NORMAL] = TRUE
sData.code_vehgen_block_active[BUILDINGSTATE_DESTROYED] = FALSE
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_CARGEN_BLOCK_POLMAV_VB_0"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_CARGEN_BLOCK_POLMAV_DT1_17
sData.type = BUILDINGTYPE_IPL
sData.coords = <<449.6558, -980.1375, 42.6918>>
sData.code_vehgen_min_coords = sData.coords - <<15.0, 25.0, 25.0>>
sData.code_vehgen_max_coords = sData.coords + <<15.0, 25.0, 25.0>>
sData.code_vehgen_block_active[BUILDINGSTATE_NORMAL] = TRUE
sData.code_vehgen_block_active[BUILDINGSTATE_DESTROYED] = FALSE
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_CARGEN_BLOCK_POLMAV_DT1_17"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_CARGEN_BLOCK_POLMAV_SC1_19
sData.type = BUILDINGTYPE_IPL
sData.coords = <<363.0175, -1598.0793, 35.9502>>
sData.code_vehgen_min_coords = sData.coords - <<15.0, 25.0, 25.0>>
sData.code_vehgen_max_coords = sData.coords + <<15.0, 25.0, 25.0>>
sData.code_vehgen_block_active[BUILDINGSTATE_NORMAL] = TRUE
sData.code_vehgen_block_active[BUILDINGSTATE_DESTROYED] = FALSE
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_CARGEN_BLOCK_POLMAV_SC1_19"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_MILBAS_MPGATES //1361093
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "CS3_07_MPGates"
sData.name[BUILDINGSTATE_CLEANUP] = ""
sData.coords = <<-1601.4241, 2808.2126, 16.2598>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_MILBAS_MPGATES"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_BIG_SCORE_HOLE_COVER
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "DT1_03_Gr_Closed"
sData.name[BUILDINGSTATE_DESTROYED] = ""
sData.coords = <<23.7318, -647.2123, 37.9549>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_BIG_SCORE_HOLE_COVER"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_BIG_SCORE_BANK
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "FINBANK"
sData.coords = <<12.9689, -648.4698, 9.7693>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "BIG_SCORE_BANK_SHUTTER"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_RCM_DREYFUSS_MAT
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "PAPER1_RCM_ALT"
sData.name[BUILDINGSTATE_CLEANUP] = "PAPER1_RCM"
sData.coords = <<-1459.1273, 486.1281, 115.2016>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_RCM_DREYFUSS_MAT"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_STADIUM_INTERIOR
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "SP1_10_fake_interior"
sData.name[BUILDINGSTATE_DESTROYED] = "SP1_10_real_interior"
sData.coords =<<-248.4916, -2010.5090, 34.5743>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_STADIUM_INTERIOR"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_INVADER_OFFICE_INTERIOR
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "facelobbyfake"
sData.name[BUILDINGSTATE_DESTROYED] = "facelobby"
sData.coords = <<-1081.3467, -263.1502, 38.7152>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_INVADER_OFFICE_INTERIOR"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_FIB_ROOF
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = "atriumglstatic"
sData.name[BUILDINGSTATE_DESTROYED] = "atriumglmission"
sData.name[BUILDINGSTATE_CLEANUP] = "atriumglcut"
sData.coords = <<136.1795, -750.7010, 262.0516>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_FIB_ROOF"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_COUNTRY_RACETRACK
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "racetrack01"
sData.coords = <<2096.0, 3168.7, 42.9>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_COUNTRY_RACETRACK"
#ENDIF
BREAK
// CASE BUILDINGNAME_IPL_MPAPT_EXTERIOR
// sData.type = BUILDINGTYPE_IPL
// sData.name[BUILDINGSTATE_NORMAL] = "apt_high1_sp_door"
// sData.name[BUILDINGSTATE_DESTROYED] = ""
// sData.name[BUILDINGSTATE_CLEANUP] = ""
// sData.coords = <<-793.0,305.6,85.7>>
// #IF IS_DEBUG_BUILD
// sData.dbg_name = "BUILDINGNAME_IPL_MPAPT_EXTERIOR"
// #ENDIF
// BREAK
// DEFAULT
// #IF IS_DEBUG_BUILD
// SCRIPT_ASSERT("GET_BUILDING_DATA() - Building enum missing. Tell Kenneth R.")
// CPRINTLN(DEBUG_BUILDING, "GET_BUILDING_DATA() - Building enum missing. Tell Kenneth R.")
// #ENDIF
//
// RETURN FALSE
// BREAK
ENDSWITCH
/// We've run out of switch statements again.
/// I've started another list, and moved Franklin's hills setup into it, as I need to keep them all together,
/// Also as there's a Japanese only item in the above list I wanted to make sure we have enough space in the above switch statement
/// in the Japanese build. --Steve R. 26/07/13
SWITCH eName
CASE BUILDINGNAME_ES_FRANKLINS_HILLS_SAVEHOUSE_SHOWHOME
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "showhome_only"
sData.es_interior = "v_franklinshouse"
sData.coords = <<7.0256, 537.3075, 175.0281>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_FRANKLINS_HILLS_SAVEHOUSE_SHOWHOME"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_FRANKLINS_HILLS_SAVEHOUSE_UNPACKING
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "franklin_unpacking"
sData.es_interior = "v_franklinshouse"
sData.coords = <<7.0256, 537.3075, 175.0281>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_FRANKLINS_HILLS_SAVEHOUSE_UNPACKING"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_FRANKLINS_HILLS_SAVEHOUSE_SETTLED
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "franklin_settled"
sData.es_interior = "v_franklinshouse"
sData.coords = <<7.0256, 537.3075, 175.0281>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_FRANKLINS_HILLS_SAVEHOUSE_SETTLED"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_FRANKLINS_HILLS_100_PERCENT_SHIRT
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "progress_tshirt"
sData.es_interior = "v_franklinshouse"
sData.coords = <<7.0256, 537.3075, 175.0281>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_FRANKLINS_HILLS_100_PERCENT_SHIRT"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_FRANKLINS_HILLS_BONG_AND_WINE
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "bong_and_wine"
sData.es_interior = "v_franklinshouse"
sData.coords = <<7.0256, 537.3075, 175.0281>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_FRANKLINS_HILLS_BONG_AND_WINE"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_FRANKLINS_HILLS_CABLE_CAR_FLYER
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "progress_flyer"
sData.es_interior = "v_franklinshouse"
sData.coords = <<7.0256, 537.3075, 175.0281>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_FRANKLINS_HILLS_CABLE_CAR_FLYER"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_FRANKLINS_HILLS_TUXEDO
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "progress_tux"
sData.es_interior = "v_franklinshouse"
sData.coords = <<7.0256, 537.3075, 175.0281>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_ES_FRANKLINS_HILLS_TUXEDO"
#ENDIF
BREAK
CASE BUILDINGNAME_ES_FRANKLINS_HILLS_PATIO_DOORS
sData.type = BUILDINGTYPE_ENTITY_SET
sData.name[BUILDINGSTATE_NORMAL] = "locked"
sData.name[BUILDINGSTATE_DESTROYED] = "unlocked"
sData.es_interior = "v_franklinshouse"
sData.coords = <<7.0256, 537.3075, 175.0281>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "ES_FRANKLINS_HILLS_PATIO_DOORS"
#ENDIF
BREAK
CASE BUILDINGNAME_IPL_FRANKLINS_HILLS_CHOP_DOGHOUSE
sData.type = BUILDINGTYPE_IPL
sData.name[BUILDINGSTATE_NORMAL] = ""
sData.name[BUILDINGSTATE_DESTROYED] = "chophillskennel"
sData.coords = <<19.0568, 536.4818, 169.6277>>
#IF IS_DEBUG_BUILD
sData.dbg_name = "IPL_FRANKLIN_HILLS_CHOP_DOGHOUSE"
#ENDIF
BREAK
// DEFAULT
//
// #IF IS_DEBUG_BUILD
// SCRIPT_ASSERT("GET_BUILDING_DATA() - Building enum missing. Tell Kenneth R.")
// CPRINTLN(DEBUG_BUILDING, "GET_BUILDING_DATA() - Building enum missing. Tell Kenneth R.")
// #ENDIF
//
// RETURN FALSE
// BREAK
ENDSWITCH
RETURN TRUE
ENDFUNC
FUNC BOOL SHOULD_DOORSTATE_LOCK_FOR_CURRENT_VEH(DOOR_NAME_ENUM eDoorName)
if eDoorName = DOORNAME_M_MANSION_G1
or eDoorName = DOORNAME_F_HOUSE_SC_G
or eDoorName = DOORNAME_T_TRAILER_CS_G
if not IS_PED_INJURED(PLAYER_PED_ID())
if IS_PED_IN_ANY_VEHICLE(PLAYER_PED_ID(),true)
MODEL_NAMES eTempModel = GET_ENTITY_MODEL(GET_ENTITY_FROM_PED_OR_VEHICLE(GET_VEHICLE_PED_IS_IN(PLAYER_PED_ID(),true)))
SWITCH eTempModel
case UTILLITRUCK
case MONSTER
RETURN TRUE
break
ENDSWITCH
ENDIF
ENDIF
ENDIF
return FALSE
ENDFUNC
/// PURPOSE: Determines if a savehouse door should be locked or unlocked
/// by checking the savehouse state and current player character
#if USE_CLF_DLC
FUNC DOOR_STATE_ENUM GET_DOOR_STATE_FOR_SAVEHOUSECLF(DOOR_NAME_ENUM eDoorName)
enumCharacterList eCurrentPed = GET_CURRENT_PLAYER_PED_ENUM()
//Additional door state check added if vehicle is not sutible for garage -CV
if SHOULD_DOORSTATE_LOCK_FOR_CURRENT_VEH(eDoorName)
RETURN DOORSTATE_LOCKED
ENDIF
SWITCH eDoorName
CASE DOORNAME_M_MANSION_F_L
CASE DOORNAME_M_MANSION_F_R
CASE DOORNAME_M_MANSION_G1
CASE DOORNAME_M_MANSION_R_L1
CASE DOORNAME_M_MANSION_R_R1
CASE DOORNAME_M_MANSION_R_L2
CASE DOORNAME_M_MANSION_R_R2
CASE DOORNAME_M_MANSION_GA_SM
CASE DOORNAME_M_MANSION_BW
IF eCurrentPed = CHAR_MICHAEL
IF IS_BIT_SET(g_savedGlobalsClifford.sRespawnData.iSavehouseProperties[SAVEHOUSEclf_MICHAEL_BH], REPAWN_FLAG_AVAILABLE_BIT)
RETURN DOORSTATE_UNLOCKED
ENDIF
ENDIF
IF IS_PLAYER_PED_PLAYABLE(eCurrentPed)
IF IS_BIT_SET(g_iSavehouseOpenForPedsBitset[SAVEHOUSEclf_MICHAEL_BH], ENUM_TO_INT(eCurrentPed))
IF eDoorName != DOORNAME_M_MANSION_G1 // If the player is Franklin or Trevor, and this is Michael's garage door, don't open it (B*1382329)
//CPRINTLN(DEBUG_DOOR, "Michael safehouse g_iSavehouseOpenForPedsBitset IS set for door ", sDoorData.dbg_name)
RETURN DOORSTATE_UNLOCKED
ELSE
//CPRINTLN(DEBUG_DOOR, "Michael safehouse g_iSavehouseOpenForPedsBitset IS set but door is ", sDoorData.dbg_name)
RETURN DOORSTATE_LOCKED
ENDIF
ENDIF
ENDIF
BREAK
CASE DOORNAME_F_HOUSE_SC_F
CASE DOORNAME_F_HOUSE_SC_B
CASE DOORNAME_F_HOUSE_SC_G
IF eCurrentPed = CHAR_FRANKLIN
IF IS_BIT_SET(g_savedGlobalsClifford.sRespawnData.iSavehouseProperties[SAVEHOUSEclf_FRANKLIN_SC], REPAWN_FLAG_AVAILABLE_BIT)
RETURN DOORSTATE_UNLOCKED
ENDIF
ENDIF
IF IS_PLAYER_PED_PLAYABLE(eCurrentPed)
IF IS_BIT_SET(g_iSavehouseOpenForPedsBitset[SAVEHOUSEclf_FRANKLIN_SC], ENUM_TO_INT(eCurrentPed))
RETURN DOORSTATE_UNLOCKED
ENDIF
ENDIF
BREAK
CASE DOORNAME_F_HOUSE_VH_F
IF eCurrentPed = CHAR_FRANKLIN
IF IS_BIT_SET(g_savedGlobalsClifford.sRespawnData.iSavehouseProperties[SAVEHOUSEclf_FRANKLIN_VH], REPAWN_FLAG_AVAILABLE_BIT)
RETURN DOORSTATE_UNLOCKED
ENDIF
ENDIF
IF IS_PLAYER_PED_PLAYABLE(eCurrentPed)
IF IS_BIT_SET(g_iSavehouseOpenForPedsBitset[SAVEHOUSEclf_FRANKLIN_VH], ENUM_TO_INT(eCurrentPed))
RETURN DOORSTATE_UNLOCKED
ENDIF
ENDIF
BREAK
CASE DOORNAME_T_TRAILER_CS
CASE DOORNAME_T_TRAILER_CS_G
IF eCurrentPed = CHAR_TREVOR
IF IS_BIT_SET(g_savedGlobalsClifford.sRespawnData.iSavehouseProperties[SAVEHOUSEclf_TREVOR_CS], REPAWN_FLAG_AVAILABLE_BIT)
RETURN DOORSTATE_UNLOCKED
ENDIF
IF IS_PLAYER_PED_PLAYABLE(eCurrentPed)
IF IS_BIT_SET(g_iSavehouseOpenForPedsBitset[SAVEHOUSEclf_TREVOR_CS], ENUM_TO_INT(eCurrentPed))
RETURN DOORSTATE_UNLOCKED
ENDIF
ENDIF
ELIF eCurrentPed = CHAR_MICHAEL
IF IS_BIT_SET(g_savedGlobalsClifford.sRespawnData.iSavehouseProperties[SAVEHOUSEclf_MICHAEL_CS], REPAWN_FLAG_AVAILABLE_BIT)
RETURN DOORSTATE_UNLOCKED
ENDIF
IF IS_PLAYER_PED_PLAYABLE(eCurrentPed)
IF IS_BIT_SET(g_iSavehouseOpenForPedsBitset[SAVEHOUSEclf_MICHAEL_CS], ENUM_TO_INT(eCurrentPed))
RETURN DOORSTATE_UNLOCKED
ENDIF
ENDIF
ENDIF
BREAK
CASE DOORNAME_T_APARTMENT_VB
IF eCurrentPed = CHAR_TREVOR
IF IS_BIT_SET(g_savedGlobalsClifford.sRespawnData.iSavehouseProperties[SAVEHOUSEclf_TREVOR_VB], REPAWN_FLAG_AVAILABLE_BIT)
RETURN DOORSTATE_UNLOCKED
ENDIF
ENDIF
IF IS_PLAYER_PED_PLAYABLE(eCurrentPed)
IF IS_BIT_SET(g_iSavehouseOpenForPedsBitset[SAVEHOUSEclf_TREVOR_VB], ENUM_TO_INT(eCurrentPed))
RETURN DOORSTATE_UNLOCKED
ENDIF
ENDIF
BREAK
DEFAULT
#IF IS_DEBUG_BUILD
DOOR_DATA_STRUCT sDoorData
sDoorData = GET_DOOR_DATA(eDoorName)
SCRIPT_ASSERT("GET_DOOR_STATE_FOR_SAVEHOUSE - Missing door enum. Tell Kenneth R.")
CPRINTLN(DEBUG_DOOR, "GET_DOOR_STATE_FOR_SAVEHOUSE - Missiing door enum: ", sDoorData.dbg_name, ".")
#ENDIF
// Return unlocked so we can progress
RETURN DOORSTATE_UNLOCKED
BREAK
ENDSWITCH
// Conditions failed
RETURN DOORSTATE_LOCKED
ENDFUNC
#endif
#if USE_NRM_DLC
FUNC DOOR_STATE_ENUM GET_DOOR_STATE_FOR_SAVEHOUSENRM(DOOR_NAME_ENUM eDoorName)
enumCharacterList eCurrentPed = GET_CURRENT_PLAYER_PED_ENUM()
//Additional door state check added if vehicle is not sutible for garage -CV
if SHOULD_DOORSTATE_LOCK_FOR_CURRENT_VEH(eDoorName)
RETURN DOORSTATE_LOCKED
ENDIF
SWITCH eDoorName
CASE DOORNAME_M_MANSION_F_L
CASE DOORNAME_M_MANSION_F_R
CASE DOORNAME_M_MANSION_G1
CASE DOORNAME_M_MANSION_R_L1
CASE DOORNAME_M_MANSION_R_R1
CASE DOORNAME_M_MANSION_R_L2
CASE DOORNAME_M_MANSION_R_R2
CASE DOORNAME_M_MANSION_GA_SM
CASE DOORNAME_M_MANSION_BW
IF eCurrentPed = CHAR_MICHAEL
IF IS_BIT_SET(g_savedGlobalsnorman.sRespawnData.iSavehouseProperties[SAVEHOUSENRM_BH], REPAWN_FLAG_AVAILABLE_BIT)
RETURN DOORSTATE_UNLOCKED
ENDIF
ENDIF
IF IS_PLAYER_PED_PLAYABLE(eCurrentPed)
IF IS_BIT_SET(g_iSavehouseOpenForPedsBitset[SAVEHOUSENRM_BH], ENUM_TO_INT(eCurrentPed))
IF eDoorName != DOORNAME_M_MANSION_G1 // If the player is Franklin or Trevor, and this is Michael's garage door, don't open it (B*1382329)
//CPRINTLN(DEBUG_DOOR, "Michael safehouse g_iSavehouseOpenForPedsBitset IS set for door ", sDoorData.dbg_name)
RETURN DOORSTATE_UNLOCKED
ELSE
//CPRINTLN(DEBUG_DOOR, "Michael safehouse g_iSavehouseOpenForPedsBitset IS set but door is ", sDoorData.dbg_name)
RETURN DOORSTATE_LOCKED
ENDIF
ENDIF
ENDIF
BREAK
DEFAULT
#IF IS_DEBUG_BUILD
DOOR_DATA_STRUCT sDoorData
sDoorData = GET_DOOR_DATA(eDoorName)
SCRIPT_ASSERT("GET_DOOR_STATE_FOR_SAVEHOUSE - Missing door enum. Tell Kenneth R.")
CPRINTLN(DEBUG_DOOR, "GET_DOOR_STATE_FOR_SAVEHOUSE - Missiing door enum: ", sDoorData.dbg_name, ".")
#ENDIF
// Return unlocked so we can progress
RETURN DOORSTATE_UNLOCKED
BREAK
ENDSWITCH
// Conditions failed
RETURN DOORSTATE_LOCKED
ENDFUNC
#endif
FUNC DOOR_STATE_ENUM GET_DOOR_STATE_FOR_SAVEHOUSE(DOOR_NAME_ENUM eDoorName)
#if USE_CLF_DLC
return GET_DOOR_STATE_FOR_SAVEHOUSECLF(eDoorName)
#endif
#if USE_NRM_DLC
return GET_DOOR_STATE_FOR_SAVEHOUSENRM(eDoorName)
#endif
#if not USE_CLF_DLC
#if not USE_NRM_DLC
enumCharacterList eCurrentPed = GET_CURRENT_PLAYER_PED_ENUM()
//Additional door state check added if vehicle is not sutible for garage -CV
if SHOULD_DOORSTATE_LOCK_FOR_CURRENT_VEH(eDoorName)
RETURN DOORSTATE_LOCKED
ENDIF
#IF USE_TU_CHANGES
IF eDoorName = DOORNAME_F_HOUSE_SC_G
IF eCurrentPed = CHAR_FRANKLIN
IF IS_BIT_SET(g_savedGlobals.sRespawnData.iSavehouseProperties[SAVEHOUSE_FRANKLIN_SC], REPAWN_FLAG_AVAILABLE_BIT)
OR IS_BIT_SET(g_savedGlobals.sRespawnData.iSavehouseProperties[SAVEHOUSE_FRANKLIN_VH], REPAWN_FLAG_AVAILABLE_BIT)
RETURN DOORSTATE_UNLOCKED
ENDIF
ENDIF
IF IS_PLAYER_PED_PLAYABLE(eCurrentPed)
IF IS_BIT_SET(g_iSavehouseOpenForPedsBitset[SAVEHOUSE_FRANKLIN_SC], ENUM_TO_INT(eCurrentPed))
RETURN DOORSTATE_UNLOCKED
ENDIF
ENDIF
ENDIF
#ENDIF
SWITCH eDoorName
CASE DOORNAME_M_MANSION_F_L
CASE DOORNAME_M_MANSION_F_R
CASE DOORNAME_M_MANSION_G1
CASE DOORNAME_M_MANSION_R_L1
CASE DOORNAME_M_MANSION_R_R1
CASE DOORNAME_M_MANSION_R_L2
CASE DOORNAME_M_MANSION_R_R2
CASE DOORNAME_M_MANSION_GA_SM
CASE DOORNAME_M_MANSION_BW
IF eCurrentPed = CHAR_MICHAEL
IF IS_BIT_SET(g_savedGlobals.sRespawnData.iSavehouseProperties[SAVEHOUSE_MICHAEL_BH], REPAWN_FLAG_AVAILABLE_BIT)
RETURN DOORSTATE_UNLOCKED
ENDIF
ENDIF
IF IS_PLAYER_PED_PLAYABLE(eCurrentPed)
IF IS_BIT_SET(g_iSavehouseOpenForPedsBitset[SAVEHOUSE_MICHAEL_BH], ENUM_TO_INT(eCurrentPed))
IF eDoorName != DOORNAME_M_MANSION_G1 // If the player is Franklin or Trevor, and this is Michael's garage door, don't open it (B*1382329)
RETURN DOORSTATE_UNLOCKED
ELSE
RETURN DOORSTATE_LOCKED
ENDIF
ENDIF
ENDIF
BREAK
CASE DOORNAME_F_HOUSE_SC_F
CASE DOORNAME_F_HOUSE_SC_B
CASE DOORNAME_F_HOUSE_SC_G
IF eCurrentPed = CHAR_FRANKLIN
IF IS_BIT_SET(g_savedGlobals.sRespawnData.iSavehouseProperties[SAVEHOUSE_FRANKLIN_SC], REPAWN_FLAG_AVAILABLE_BIT)
RETURN DOORSTATE_UNLOCKED
ENDIF
ENDIF
IF IS_PLAYER_PED_PLAYABLE(eCurrentPed)
IF IS_BIT_SET(g_iSavehouseOpenForPedsBitset[SAVEHOUSE_FRANKLIN_SC], ENUM_TO_INT(eCurrentPed))
RETURN DOORSTATE_UNLOCKED
ENDIF
ENDIF
BREAK
CASE DOORNAME_F_HOUSE_VH_F
IF eCurrentPed = CHAR_FRANKLIN
IF IS_BIT_SET(g_savedGlobals.sRespawnData.iSavehouseProperties[SAVEHOUSE_FRANKLIN_VH], REPAWN_FLAG_AVAILABLE_BIT)
RETURN DOORSTATE_UNLOCKED
ENDIF
ENDIF
IF IS_PLAYER_PED_PLAYABLE(eCurrentPed)
IF IS_BIT_SET(g_iSavehouseOpenForPedsBitset[SAVEHOUSE_FRANKLIN_VH], ENUM_TO_INT(eCurrentPed))
RETURN DOORSTATE_UNLOCKED
ENDIF
ENDIF
BREAK
CASE DOORNAME_T_TRAILER_CS
CASE DOORNAME_T_TRAILER_CS_G
IF eCurrentPed = CHAR_TREVOR
IF IS_BIT_SET(g_savedGlobals.sRespawnData.iSavehouseProperties[SAVEHOUSE_TREVOR_CS], REPAWN_FLAG_AVAILABLE_BIT)
RETURN DOORSTATE_UNLOCKED
ENDIF
IF IS_PLAYER_PED_PLAYABLE(eCurrentPed)
IF IS_BIT_SET(g_iSavehouseOpenForPedsBitset[SAVEHOUSE_TREVOR_CS], ENUM_TO_INT(eCurrentPed))
RETURN DOORSTATE_UNLOCKED
ENDIF
ENDIF
ELIF eCurrentPed = CHAR_MICHAEL
IF IS_BIT_SET(g_savedGlobals.sRespawnData.iSavehouseProperties[SAVEHOUSE_MICHAEL_CS], REPAWN_FLAG_AVAILABLE_BIT)
RETURN DOORSTATE_UNLOCKED
ENDIF
IF IS_PLAYER_PED_PLAYABLE(eCurrentPed)
IF IS_BIT_SET(g_iSavehouseOpenForPedsBitset[SAVEHOUSE_MICHAEL_CS], ENUM_TO_INT(eCurrentPed))
RETURN DOORSTATE_UNLOCKED
ENDIF
ENDIF
ENDIF
BREAK
CASE DOORNAME_T_APARTMENT_VB
IF eCurrentPed = CHAR_TREVOR
IF IS_BIT_SET(g_savedGlobals.sRespawnData.iSavehouseProperties[SAVEHOUSE_TREVOR_VB], REPAWN_FLAG_AVAILABLE_BIT)
RETURN DOORSTATE_UNLOCKED
ENDIF
ENDIF
IF IS_PLAYER_PED_PLAYABLE(eCurrentPed)
IF IS_BIT_SET(g_iSavehouseOpenForPedsBitset[SAVEHOUSE_TREVOR_VB], ENUM_TO_INT(eCurrentPed))
RETURN DOORSTATE_UNLOCKED
ENDIF
ENDIF
BREAK
DEFAULT
#IF IS_DEBUG_BUILD
DOOR_DATA_STRUCT sDoorData
sDoorData = GET_DOOR_DATA(eDoorName)
SCRIPT_ASSERT("GET_DOOR_STATE_FOR_SAVEHOUSE - Missing door enum. Tell Kenneth R.")
CPRINTLN(DEBUG_DOOR, "GET_DOOR_STATE_FOR_SAVEHOUSE - Missiing door enum: ", sDoorData.dbg_name, ".")
#ENDIF
// Return unlocked so we can progress
RETURN DOORSTATE_UNLOCKED
BREAK
ENDSWITCH
// Conditions failed
RETURN DOORSTATE_LOCKED
#endif
#endif
ENDFUNC
/// PURPOSE: Returns TRUE if the specified door is locked
/// NOTE: The door has to be streamed in, in order to return a valid result
FUNC BOOL IS_DOOR_LOCKED(DOOR_NAME_ENUM eName)
DOOR_DATA_STRUCT sData
sData = GET_DOOR_DATA(eName)
DOOR_STATE_ENUM state
state = DOOR_SYSTEM_GET_DOOR_STATE(sData.doorHash)
RETURN state = DOORSTATE_LOCKED OR state = DOORSTATE_FORCE_LOCKED_THIS_FRAME OR state = DOORSTATE_FORCE_LOCKED_UNTIL_OUT_OF_AREA
ENDFUNC
FUNC BOOL IS_STUDIO_OPEN_FOR_CURRENT_PLAYER_PED()
// If the player has a wanted level, don't open the gates for the player
IF IS_PLAYER_WANTED_LEVEL_GREATER(PLAYER_ID(), 0)
RETURN FALSE
ENDIF
SWITCH GET_CURRENT_PLAYER_PED_ENUM()
CASE CHAR_MICHAEL
#if USE_CLF_DLC
RETURN TRUE
#endif
#if USE_NRM_DLC
RETURN TRUE
#endif
#if not USE_CLF_DLC
#if not USE_NRM_DLC
IF g_savedGlobals.sFlow.controls.flagIDs[FLOWFLAG_MOVIE_STUDIO_OPEN]
RETURN TRUE
ENDIF
#endif
#endif
BREAK
CASE CHAR_FRANKLIN
#if USE_CLF_DLC
RETURN TRUE
#endif
#if USE_NRM_DLC
RETURN TRUE
#endif
#if not USE_CLF_DLC
#if not USE_NRM_DLC
IF g_savedGlobals.sFlow.controls.flagIDs[FLOWFLAG_MOVIE_STUDIO_OPEN_FRANKLIN]
RETURN TRUE
ENDIF
#endif
#endif
BREAK
CASE CHAR_TREVOR
#if USE_CLF_DLC
RETURN TRUE
#endif
#if USE_NRM_DLC
RETURN TRUE
#endif
#if not USE_CLF_DLC
#if not USE_NRM_DLC
IF g_savedGlobals.sFlow.controls.flagIDs[FLOWFLAG_MOVIE_STUDIO_OPEN]
RETURN TRUE
ENDIF
#endif
#endif
BREAK
ENDSWITCH
RETURN FALSE
ENDFUNC
/// PURPOSE:
/// Checks if the door needs to have its state updated just to the current time of day (i.e. locking for being closed)
/// PARAMS:
/// eDoorName - The door we're checking
PROC UPDATE_DOORS_FOR_TOD(DOOR_NAME_ENUM eDoorName, DOOR_DATA_STRUCT &sData)
// Passing this by reference to cut down on processing.
//DOOR_DATA_STRUCT sData = GET_DOOR_DATA(eDoorName)
IF NOT IS_BIT_SET(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
EXIT
ENDIF
TIMEOFDAY eCurrentTOD = GET_CURRENT_TIMEOFDAY()
INT iCurrentHour = GET_TIMEOFDAY_HOUR(eCurrentTOD)
SWITCH eDoorName
CASE DOORNAME_BANK_GRAPESEED_L
FALLTHRU
CASE DOORNAME_BANK_GRAPESEED_R
FALLTHRU
CASE DOORNAME_BANK_FLEECA_HWAY_L
FALLTHRU
CASE DOORNAME_BANK_FLEECA_HWAY_R
IF IS_DOOR_LOCKED(eDoorName)
IF iCurrentHour < 19
IF iCurrentHour >= 7
#if USE_CLF_DLC
g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName] = DOORSTATE_UNLOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if USE_NRM_DLC
g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName] = DOORSTATE_UNLOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if not USE_CLF_DLC
#if not USE_NRM_DLC
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_UNLOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#endif
ENDIF
ELSE
EXIT // The doors are locked and it's during closing time, do nothing
ENDIF
ELSE
IF iCurrentHour >= 19
// If the doors need to lock, wait until the player is >=12m away, to prevent them getting locked inside!
IF VDIST(GET_ENTITY_COORDS(PLAYER_PED_ID(), FALSE), sData.coords) >= 12
#if USE_CLF_DLC
g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if USE_NRM_DLC
g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if not USE_CLF_DLC
#if not USE_NRM_DLC
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#endif
ENDIF
ELIF iCurrentHour < 7
// If the doors need to lock, wait until the player is >=12m away, to prevent them getting locked inside!
IF VDIST(GET_ENTITY_COORDS(PLAYER_PED_ID(), FALSE), sData.coords) >= 12
#if USE_CLF_DLC
g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if USE_NRM_DLC
g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if not USE_CLF_DLC
#if not USE_NRM_DLC
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#endif
ENDIF
ENDIF
ENDIF
BREAK
CASE DOORNAME_BANK_FLEECA_VW_L
FALLTHRU
CASE DOORNAME_BANK_FLEECA_VW_R
FALLTHRU
CASE DOORNAME_BANK_FLEECA_BURTON_L
FALLTHRU
CASE DOORNAME_BANK_FLEECA_BURTON_R
IF IS_DOOR_LOCKED(eDoorName)
IF iCurrentHour < 18
IF iCurrentHour >= 7
#if USE_CLF_DLC
g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName] = DOORSTATE_UNLOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if USE_NRM_DLC
g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName] = DOORSTATE_UNLOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if not USE_CLF_DLC
#if not USE_NRM_DLC
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_UNLOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#endif
ENDIF
ELSE
EXIT // The doors are locked and it's during closing time, do nothing
ENDIF
ELSE
IF iCurrentHour >= 18
// If the doors need to lock, wait until the player is >=12m away, to prevent them getting locked inside!
IF VDIST(GET_ENTITY_COORDS(PLAYER_PED_ID(), FALSE), sData.coords) >= 12
#if USE_CLF_DLC
g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if USE_NRM_DLC
g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if not USE_CLF_DLC
#if not USE_NRM_DLC
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#endif
ENDIF
ELIF iCurrentHour < 7
// If the doors need to lock, wait until the player is >=12m away, to prevent them getting locked inside!
IF VDIST(GET_ENTITY_COORDS(PLAYER_PED_ID(), FALSE), sData.coords) >= 12
#if USE_CLF_DLC
g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if USE_NRM_DLC
g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if not USE_CLF_DLC
#if not USE_NRM_DLC
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#endif
ENDIF
ENDIF
ENDIF
BREAK
CASE DOORNAME_HEIST_JEWELERS_L
FALLTHRU
CASE DOORNAME_HEIST_JEWELERS_R
#if not USE_CLF_DLC
#if not USE_NRM_DLC
IF IS_DOOR_LOCKED(eDoorName)
//CPRINTLN(DEBUG_AMBIENT, "Trying to check jewelry store door (locked) ", eDoorName)
// Don't touch the door if any Jewelry heist missions are running!!
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("jewelry_heist")) = 0
AND GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("jewelry_setup1")) = 0
AND NOT g_savedGlobals.sFlow.controls.flagIDs[FLOWFLAG_HEIST_FINISHED_JEWEL]
IF iCurrentHour < 21
IF iCurrentHour >= 7
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_UNLOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
//CPRINTLN(DEBUG_DOOR, "Unlocking jewelry store door ", eDoorName)
ENDIF
ELSE
EXIT // The doors are locked and it's during closing time, do nothing
ENDIF
ELSE
IF NOT g_savedGlobals.sFlow.controls.flagIDs[FLOWFLAG_HEIST_FINISHED_JEWEL] // Definitely do not unlock the goddamn doors
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_UNLOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
//CPRINTLN(DEBUG_DOOR, "Force jewelry store doors open", eDoorName)
ENDIF
ENDIF
ELSE
IF g_savedGlobals.sFlow.controls.flagIDs[FLOWFLAG_HEIST_FINISHED_JEWEL]
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
//CPRINTLN(DEBUG_DOOR, "Jewelry store heist done, setting door as locked ", eDoorName)
ELSE
// Don't touch the door if any Jewelry heist missions are running!!
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("jewelry_heist")) = 0
AND GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("jewelry_setup1")) = 0
IF iCurrentHour >= 21
// If the doors need to lock, wait until the player is >=18m away, to prevent them getting locked inside!
IF VDIST(GET_ENTITY_COORDS(PLAYER_PED_ID(), FALSE), sData.coords) >= 18
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
//CPRINTLN(DEBUG_DOOR, "Locking jewelry store door ", eDoorName)
ENDIF
ELIF iCurrentHour < 7
// If the doors need to lock, wait until the player is >=18m away, to prevent them getting locked inside!
IF VDIST(GET_ENTITY_COORDS(PLAYER_PED_ID(), FALSE), sData.coords) >= 18
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
//CPRINTLN(DEBUG_DOOR, "Locking jewelry store door ", eDoorName)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
#endif
#endif
BREAK
CASE DOORNAME_BANK_VINEWOOD_CORNER_L
FALLTHRU
CASE DOORNAME_BANK_VINEWOOD_CORNER_R
FALLTHRU
CASE DOORNAME_BANK_VINEWOOD_FRONT_L
FALLTHRU
CASE DOORNAME_BANK_VINEWOOD_FRONT_R
IF IS_DOOR_LOCKED(eDoorName)
IF iCurrentHour < 20
IF iCurrentHour >= 9
#if USE_CLF_DLC
g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName] = DOORSTATE_UNLOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if USE_NRM_DLC
g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName] = DOORSTATE_UNLOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if not USE_CLF_DLC
#if not use_NRM_dlc
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_UNLOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#endif
ENDIF
ELSE
EXIT // The doors are locked and it's during closing time, do nothing
ENDIF
ELSE
IF iCurrentHour >= 20
// If the doors need to lock, wait until the player is >=40m away, to prevent them getting locked inside!
IF VDIST(GET_ENTITY_COORDS(PLAYER_PED_ID(), FALSE), sData.coords) >= 40
#if USE_CLF_DLC
g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if USE_NRM_DLC
g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if not USE_CLF_DLC
#if not USE_NRM_DLC
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#endif
ENDIF
ELIF iCurrentHour < 9
// If the doors need to lock, wait until the player is >=40m away, to prevent them getting locked inside!
IF VDIST(GET_ENTITY_COORDS(PLAYER_PED_ID(), FALSE), sData.coords) >= 40
#if USE_CLF_DLC
g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if USE_NRM_DLC
g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if not USE_CLF_DLC
#if not USE_NRM_DLC
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#endif
ENDIF
ENDIF
ENDIF
BREAK
CASE DOORNAME_BANK_VINEWOOD_OFFICE
FALLTHRU
CASE DOORNAME_BANK_VINEWOOD_TELLER
// These doors should be locked permanently in SP
IF NOT IS_DOOR_LOCKED(eDoorName)
#if USE_CLF_DLC
g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if USE_NRM_DLC
g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if not USE_CLF_DLC
#if not USE_NRM_DLC
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#endif
ENDIF
BREAK
CASE DOORNAME_VONCRAST_1_L
FALLTHRU
CASE DOORNAME_VONCRAST_1_R
FALLTHRU
CASE DOORNAME_VONCRAST_2_L
FALLTHRU
CASE DOORNAME_VONCRAST_2_R
FALLTHRU
CASE DOORNAME_VONCRAST_3_L
FALLTHRU
CASE DOORNAME_VONCRAST_3_R
IF NOT IS_DOOR_LOCKED(eDoorName)
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("assassin_valet")) = 0
#if USE_CLF_DLC
g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if USE_NRM_DLC
g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if not USE_CLF_DLC
#if not USE_NRM_DLC
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#endif
ENDIF
ELSE // Make sure the doors are unlocked if the Assassinate hotel script is running
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("assassin_valet")) > 0
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_UNLOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
ENDIF
ENDIF
BREAK
CASE DOORNAME_NOSE_REAR_L
FALLTHRU
CASE DOORNAME_NOSE_REAR_R
// If Agency 3B is running, don't touch this door, let the mission handle it instead
// Otherwise, lock it permanently
#if not USE_CLF_DLC
#if not USE_NRM_DLC
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(g_sMissionStaticData[SP_HEIST_AGENCY_3B].scriptHash) = 0
IF NOT IS_DOOR_LOCKED(eDoorName)
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
ENDIF
ENDIF
#endif
#endif
BREAK
CASE DOORNAME_OMEGA_SHED_L
FALLTHRU
CASE DOORNAME_OMEGA_SHED_R
// If Omega 2 is running, don't touch this door, let the mission handle it instead
// Otherwise, lock it permanently
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("omega2")) = 0
IF NOT IS_DOOR_LOCKED(eDoorName)
#if USE_CLF_DLC
g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if USE_NRM_DLC
g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if not USE_CLF_DLC
#if not USE_NRM_DLC
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#endif
ENDIF
ENDIF
BREAK
#if not USE_CLF_DLC
#if not USE_NRM_DLC
CASE DOORNAME_FOUNDRY_B_01
CASE DOORNAME_FOUNDRY_B_02
CASE DOORNAME_FOUNDRY_T_01
IF NOT IS_DOOR_LOCKED(eDoorName)
AND GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(g_sMissionStaticData[SP_MISSION_FINALE_C1].scriptHash) = 0
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
ELSE
EXIT
ENDIF
BREAK
CASE DOORNAME_RECYCLING_PLANT_F_L
CASE DOORNAME_RECYCLING_PLANT_F_R
CASE DOORNAME_RECYCLING_PLANT_R_L
CASE DOORNAME_RECYCLING_PLANT_R_R
IF NOT IS_DOOR_LOCKED(eDoorName)
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(g_sMissionStaticData[SP_MISSION_LAMAR].scriptHash) = 0
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
ENDIF
ELSE
EXIT
ENDIF
BREAK
#endif
#endif
CASE DOORNAME_ARMYBASE_LIFT_L
CASE DOORNAME_ARMYBASE_LIFT_R
IF NOT IS_DOOR_LOCKED(eDoorName)
#if USE_CLF_DLC
g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if USE_NRM_DLC
g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if not USE_CLF_DLC
#if not use_NRM_dlc
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#endif
ENDIF
BREAK
#if not USE_CLF_DLC
#if not use_NRM_dlc
CASE DOORNAME_CHICKENFACTORY_EXT_GATE
IF NOT IS_DOOR_LOCKED(eDoorName)
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(g_sMissionStaticData[SP_HEIST_RURAL_2].scriptHash) > 0
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
ENDIF
ELSE
EXIT
ENDIF
BREAK
#endif
#endif
CASE DOORNAME_RON_FRONTDOOR
IF NOT IS_DOOR_LOCKED(eDoorName)
#if USE_CLF_DLC
g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if USE_NRM_DLC
g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if not USE_CLF_DLC
#if not use_NRM_dlc
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#endif
ENDIF
BREAK
#if not USE_CLF_DLC
#if not use_NRM_dlc
CASE DOORNAME_CARSTEAL_GARAGE_S
IF NOT IS_DOOR_LOCKED(eDoorName)
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(g_sMissionStaticData[SP_MISSION_CARSTEAL_1].scriptHash) = 0
AND GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(g_sMissionStaticData[SP_MISSION_CARSTEAL_3].scriptHash) = 0
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
ENDIF
ELSE
EXIT
ENDIF
BREAK
CASE DOORNAME_ABBATOIR_FRONT_L
CASE DOORNAME_ABBATOIR_FRONT_R
IF NOT IS_DOOR_LOCKED(eDoorName)
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(g_sMissionStaticData[SP_MISSION_MICHAEL_2].scriptHash) = 0
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
ENDIF
ELSE
EXIT
ENDIF
BREAK
CASE DOORNAME_NOSE_HELIPAD
// If Agency 3B is running, don't touch this door, let the mission handle it instead
// Otherwise, lock it permanently
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(g_sMissionStaticData[SP_HEIST_AGENCY_3B].scriptHash) = 0
IF NOT IS_DOOR_LOCKED(eDoorName)
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
ENDIF
ENDIF
BREAK
CASE DOORNAME_KORTZ_QING_L
CASE DOORNAME_KORTZ_QING_R
CASE DOORNAME_KORTZ_QINGALT_R
CASE DOORNAME_KORTZ_QINGALT_L
CASE DOORNAME_KORTZ_TALES_L
CASE DOORNAME_KORTZ_TALES_R
CASE DOORNAME_KORTZ_RICHES_L
CASE DOORNAME_KORTZ_RICHES_R
// If Michael 3 is running, don't touch these doors, let the mission handle it instead
// Otherwise, lock them permanently
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(g_sMissionStaticData[SP_MISSION_MICHAEL_3].scriptHash) = 0
IF NOT IS_DOOR_LOCKED(eDoorName)
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
ENDIF
ENDIF
BREAK
CASE DOORNAME_CHEMICAL_FACTORY_L
CASE DOORNAME_CHEMICAL_FACTORY_R
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(g_sMissionStaticData[SP_MISSION_FBI_5].scriptHash) = 0
IF NOT IS_DOOR_LOCKED(eDoorName)
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
ENDIF
ENDIF
BREAK
#endif
#endif
CASE DOORNAME_GARAGE_JETSTEAL
// This garage was used for the old jet-stealing mission that got cut - locked permanently in script instead of making a late map change
IF NOT IS_DOOR_LOCKED(eDoorName)
#if USE_CLF_DLC
g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if USE_NRM_dlc
g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if not USE_CLF_DLC
#if not use_NRM_dlc
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#endif
ENDIF
BREAK
CASE DOORNAME_EPSILON_GATE_L
CASE DOORNAME_EPSILON_GATE_R
IF NOT IS_DOOR_LOCKED(eDoorName)
#if USE_CLF_DLC
g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if USE_NRM_DLC
g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if not USE_CLF_DLC
#if not use_NRM_dlc
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_LOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#endif
ENDIF
BREAK
CASE DOORNAME_KORTZ_FRONTL_L
CASE DOORNAME_KORTZ_FRONTL_R
CASE DOORNAME_KORTZ_FRONTR_L
CASE DOORNAME_KORTZ_FRONTR_R
IF IS_DOOR_LOCKED(eDoorName)
#if USE_CLF_DLC
g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName] = DOORSTATE_unLOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if USE_NRM_DLC
g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName] = DOORSTATE_unLOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#if not USE_CLF_DLC
#if not USE_NRM_DLC
g_savedGlobals.sBuildingData.eDoorState[eDoorName] = DOORSTATE_unLOCKED
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, g_savedGlobals.sBuildingData.eDoorState[eDoorName], DEFAULT, TRUE)
#endif
#endif
ENDIF
BREAK
ENDSWITCH
ENDPROC
/// PURPOSE: Sets the door locks if valid conditions are met
PROC PERFORM_DOOR_LOCK(DOOR_NAME_ENUM eDoorName)
#IF IS_DEBUG_BUILD
IF IS_CUTSCENE_PLAYING()
CDEBUG3LN(DEBUG_DOOR, "PERFORM_DOOR_LOCK() - Cutscene is playing.")
ENDIF
#ENDIF
IF NOT USE_SP_BUILDING_CONTROLLER_DATA() // Do not run in multiplayer
EXIT
ENDIF
IF IS_PED_INJURED(PLAYER_PED_ID())
EXIT
ENDIF
DOOR_DATA_STRUCT sData = GET_DOOR_DATA(eDoorName)
IF IS_BIT_SET(sData.flags, ENUM_TO_INT(DOORFLAG_IS_AN_UPDATE_DOOR))
UPDATE_DOORS_FOR_TOD(eDoorName, sData)
ENDIF
IF NOT IS_DOOR_REGISTERED_WITH_SYSTEM(sData.doorHash)
IF IS_CUTSCENE_PLAYING()
EXIT
ENDIF
ENDIF
BOOl bPerformUpdate = FALSE
BOOL bUpdatePerformed = FALSE
DOOR_STATE_ENUM eIntendedState
FLOAT fDistanceToDoor = GET_DISTANCE_BETWEEN_COORDS(sData.coords, GET_ENTITY_COORDS(PLAYER_PED_ID()))
// Clear the override state if the player is no longer in area
IF IS_BIT_SET(g_iOverrideDoorStateBitset[ENUM_TO_INT(eDoorName)/32], ENUM_TO_INT(eDoorName)%32)
AND g_eOverrideDoorState[eDoorName] = DOORSTATE_FORCE_LOCKED_UNTIL_OUT_OF_AREA
AND fDistanceToDoor > VEHICLE_GEN_CLEANUP_RANGE
CDEBUG3LN(DEBUG_DOOR, "PERFORM_DOOR_LOCK() - Clearing override state for door: ", sData.dbg_name, " - ", GET_THIS_SCRIPT_NAME(), ".")
CLEAR_BIT(g_iOverrideDoorStateBitset[ENUM_TO_INT(eDoorName)/32], ENUM_TO_INT(eDoorName)%32)
g_iOverrideDoorStateCounter[eDoorName] = 0
ENDIF
// Force the door to unlock if player is in the interior and the initial unlock bit is set.
// Wait for startup positioning to finish before doing this check.
#if USE_CLF_DLC
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("startup_pos_CLF")) = 0
#endif
#if USE_NRM_DLC
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("startup_pos_NRM")) = 0
#endif
#if not USE_CLF_DLC
#if not USE_NRM_DLC
IF GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("startup_positioning")) = 0
#endif
#endif
IF IS_BIT_SET(g_iInitialDoorOverrideBitset[ENUM_TO_INT(eDoorName)/32], ENUM_TO_INT(eDoorName)%32)
IF fDistanceToDoor < 25.0
INTERIOR_INSTANCE_INDEX iPlayerInterior, iDoorInterior
//Shop controller possibly not running yet. Grab interior manually.
IF g_sShopSettings.playerInterior = NULL
IF NOT IS_ENTITY_DEAD(PLAYER_PED_ID())
g_sShopSettings.playerInterior = GET_INTERIOR_FROM_ENTITY(PLAYER_PED_ID())
ENDIF
ENDIF
iPlayerInterior = g_sShopSettings.playerInterior // just use the shop instance as interior commands are expensive.
iDoorInterior = GET_INTERIOR_AT_COORDS(sData.coords)
IF (iPlayerInterior = iDoorInterior) AND (iPlayerInterior != NULL)
// Force the door to unlock for this frame.
SET_BIT(g_iOverrideDoorStateBitset[ENUM_TO_INT(eDoorName)/32], ENUM_TO_INT(eDoorName)%32)
g_eOverrideDoorState[eDoorName] = DOORSTATE_FORCE_UNLOCKED_THIS_FRAME
SET_BIT(g_iUpdateDoorStateBitset[ENUM_TO_INT(eDoorName)/32], (ENUM_TO_INT(eDoorName)%32))
CPRINTLN(DEBUG_DOOR, "Forcing door to unlock on startup - ", sData.dbg_name, ".")
ENDIF
ENDIF
CLEAR_BIT(g_iInitialDoorOverrideBitset[ENUM_TO_INT(eDoorName)/32], ENUM_TO_INT(eDoorName)%32)
ENDIF
#if USE_CLF_DLC
ENDIF
#endif
#if USE_NRM_DLC
ENDIF
#endif
#if not USE_CLF_DLC
#if not USE_NRM_DLC
ENDIF
#endif
#endif
// [1] Determine what state the door should be in
IF IS_BIT_SET(g_iOverrideDoorStateBitset[ENUM_TO_INT(eDoorName)/32], ENUM_TO_INT(eDoorName)%32)
eIntendedState = g_eOverrideDoorState[eDoorName]
ELSE
// Treat savehouse doors separately
IF IS_BIT_SET(sData.flags, ENUM_TO_INT(DOORFLAG_IS_SAVEHOUSE_DOOR))
#if USE_CLF_DLC
IF g_savedGlobalsClifford.sFlow.isGameflowActive
eIntendedState = GET_DOOR_STATE_FOR_SAVEHOUSE(eDoorName)
ELSE
eIntendedState = DOORSTATE_UNLOCKED // Always unlocked in debug
ENDIF
#endif
#if USE_NRM_DLC
IF g_savedGlobalsnorman.sFlow.isGameflowActive
eIntendedState = GET_DOOR_STATE_FOR_SAVEHOUSE(eDoorName)
ELSE
eIntendedState = DOORSTATE_UNLOCKED // Always unlocked in debug
ENDIF
#endif
#if NOT USE_SP_DLC
IF g_savedGlobals.sFlow.isGameflowActive
eIntendedState = GET_DOOR_STATE_FOR_SAVEHOUSE(eDoorName)
ELSE
eIntendedState = DOORSTATE_UNLOCKED // Always unlocked in debug
ENDIF
#endif
// Always unlock safehouses when playing as none player characters in Director Mode.
IF IS_CURRENTLY_ON_MISSION_OF_TYPE(MISSION_TYPE_DIRECTOR)
eIntendedState = DOORSTATE_UNLOCKED
ENDIF
ELIF IS_BIT_SET(sData.flags, ENUM_TO_INT(DOORFLAG_IS_STUDIO_GATE)) AND (GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(HASH("ambient_solomon")) = 0)
IF IS_STUDIO_OPEN_FOR_CURRENT_PLAYER_PED()
eIntendedState = DOORSTATE_UNLOCKED
ELSE
eIntendedState = DOORSTATE_LOCKED
ENDIF
ELSE
#if USE_CLF_DLC
eIntendedState = g_savedGlobalsClifford.sBuildingData.eDoorState[eDoorName]
#endif
#if USE_NRM_DLC
eIntendedState = g_savedGlobalsnorman.sBuildingData.eDoorState[eDoorName]
#endif
#if not USE_CLF_DLC
#if not use_NRM_dlc
eIntendedState = g_savedGlobals.sBuildingData.eDoorState[eDoorName]
#endif
#endif
ENDIF
ENDIF
// [2] Update the door state if the current and intended states differ or if we have forced an update
IF g_eCurrentDoorState[eDoorName] != eIntendedState
#IF IS_DEBUG_BUILD
IF eDoorName = DOORNAME_M_MANSION_G1
CPRINTLN(DEBUG_DOOR, "Michael garage door g_eCurrentDoorState != eIntendedState")
ENDIF
#ENDIF
bPerformUpdate = TRUE
ENDIF
IF IS_BIT_SET(g_iUpdateDoorStateBitset[ENUM_TO_INT(eDoorName)/32], (ENUM_TO_INT(eDoorName)%32))
IF (NOT IS_BIT_SET(g_iOverrideDoorStateBitset[ENUM_TO_INT(eDoorName)/32], ENUM_TO_INT(eDoorName)%32))
OR (g_iOverrideDoorStateCounter[eDoorName] = 0 AND g_eOverrideDoorState[eDoorName] != DOORSTATE_FORCE_LOCKED_UNTIL_OUT_OF_AREA)
#IF IS_DEBUG_BUILD
IF NOT bPerformUpdate
CDEBUG3LN(DEBUG_DOOR, "PERFORM_DOOR_LOCK() - Updating state for door: ", sData.dbg_name, " - ", GET_THIS_SCRIPT_NAME(), ".")
ENDIF
#ENDIF
bPerformUpdate = TRUE
ENDIF
ENDIF
IF bPerformUpdate
IF NOT g_bDoorSystemInitialised
CDEBUG3LN(DEBUG_DOOR, "PERFORM_DOOR_LOCK() - Waiting for door system to initialise...")
ELSE
IF NOT IS_DOOR_REGISTERED_WITH_SYSTEM(sData.doorHash)
ADD_DOOR_TO_SYSTEM(sData.doorHash, sData.model, sData.coords, FALSE, FALSE)
ENDIF
SWITCH eIntendedState
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
/// LOCKED
CASE DOORSTATE_LOCKED
CDEBUG3LN(DEBUG_DOOR, "PERFORM_DOOR_LOCK() - Door should be locked : ", sData.dbg_name, " - ", GET_THIS_SCRIPT_NAME(), ".")
// Check that it is safe to lock the doors
BOOL bSafeToProceed
IF IS_BIT_SET(sData.flags, ENUM_TO_INT(DOORFLAG_IGNORE_SAFETY_CHECKS))
bSafeToProceed = TRUE
ELSE
CDEBUG3LN(DEBUG_DOOR, "PERFORM_DOOR_LOCK() - Door ratio for ", sData.dbg_name, " = ", DOOR_SYSTEM_GET_OPEN_RATIO(sData.doorHash), " - ", GET_THIS_SCRIPT_NAME(), ".")
// Make sure the player is atleast 3 metres away from the door
IF fDistanceToDoor > 3.0
OR ABSF(DOOR_SYSTEM_GET_OPEN_RATIO(sData.doorHash)) <= 0.015
// Only lock the door once it is fully closed
//IF ABSF(DOOR_SYSTEM_GET_OPEN_RATIO(sData.doorHash)) <= 0.01
// Make sure we dont lock the player inside
INTERIOR_INSTANCE_INDEX iPlayerInterior, iDoorInterior
iPlayerInterior = GET_INTERIOR_FROM_ENTITY(PLAYER_PED_ID())
iDoorInterior = GET_INTERIOR_AT_COORDS(sData.coords)
IF (iPlayerInterior <> iDoorInterior) OR (iPlayerInterior = NULL)
// Safe to proceed with locking
bSafeToProceed = TRUE
ENDIF
/*ELSE
CDEBUG3LN(DEBUG_DOOR, "PERFORM_DOOR_LOCK() - Wait for door to close : ", sData.dbg_name, " - ", GET_THIS_SCRIPT_NAME(), ".")
ENDIF*/
ELSE
CDEBUG3LN(DEBUG_DOOR, "PERFORM_DOOR_LOCK() - Wait for player to clear area : ", sData.dbg_name, " - ", GET_THIS_SCRIPT_NAME(), ".")
ENDIF
ENDIF
IF bSafeToProceed
CDEBUG1LN(DEBUG_DOOR, "PERFORM_DOOR_LOCK() - Locking doorID[", eDoorName, "], ", sData.dbg_name, " - ", GET_THIS_SCRIPT_NAME(), ".")
IF sData.automaticRate != 0.0
DOOR_SYSTEM_SET_AUTOMATIC_DISTANCE(sData.doorHash, sData.automaticRate, FALSE, FALSE)
ENDIF
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, eIntendedState, FALSE, TRUE)
bUpdatePerformed = TRUE
ENDIF
BREAK
CASE DOORSTATE_FORCE_LOCKED_THIS_FRAME
CDEBUG1LN(DEBUG_DOOR, "PERFORM_DOOR_LOCK() - Locking (FORCE) doorID[", eDoorName, "], ", sData.dbg_name, " - ", GET_THIS_SCRIPT_NAME(), ".")
IF sData.automaticRate != 0.0
DOOR_SYSTEM_SET_AUTOMATIC_DISTANCE(sData.doorHash, sData.automaticRate, FALSE, FALSE)
ENDIF
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, eIntendedState, FALSE, TRUE)
bUpdatePerformed = TRUE
BREAK
CASE DOORSTATE_FORCE_LOCKED_UNTIL_OUT_OF_AREA
CDEBUG1LN(DEBUG_DOOR, "PERFORM_DOOR_LOCK() - Locking (FORCE) doorID[", eDoorName, "], until out of the area ", sData.dbg_name, " - ", GET_THIS_SCRIPT_NAME(), ".")
IF sData.automaticRate != 0.0
DOOR_SYSTEM_SET_AUTOMATIC_DISTANCE(sData.doorHash, sData.automaticRate, FALSE, FALSE)
ENDIF
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, eIntendedState, FALSE, TRUE)
bUpdatePerformed = TRUE
BREAK
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
/// UNLOCKED
CASE DOORSTATE_UNLOCKED
CDEBUG1LN(DEBUG_DOOR, "PERFORM_DOOR_LOCK() - Unlocking doorID[", eDoorName, "], ", sData.dbg_name, " - ", GET_THIS_SCRIPT_NAME(), ".")
IF sData.automaticRate != 0.0
CPRINTLN(DEBUG_DOOR, "Door ", INT_TO_ENUM(DOOR_HASH_ENUM,sData.doorHash), " automatic rate set to ", sData.automaticRate, ".")
DOOR_SYSTEM_SET_AUTOMATIC_DISTANCE(sData.doorHash, sData.automaticRate, FALSE, TRUE)
ENDIF
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, eIntendedState, FALSE, TRUE)
bUpdatePerformed = TRUE
BREAK
CASE DOORSTATE_FORCE_UNLOCKED_THIS_FRAME
CDEBUG1LN(DEBUG_DOOR, "PERFORM_DOOR_LOCK() - Unlocking (FORCE) doorID[", eDoorName, "], ", sData.dbg_name, " - ", GET_THIS_SCRIPT_NAME(), ".")
IF sData.automaticRate != 0.0
DOOR_SYSTEM_SET_AUTOMATIC_DISTANCE(sData.doorHash, sData.automaticRate, FALSE, FALSE)
ENDIF
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, DOORSTATE_UNLOCKED, FALSE, TRUE)
bUpdatePerformed = TRUE
BREAK
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
/// OPEN
CASE DOORSTATE_FORCE_OPEN_THIS_FRAME
CDEBUG1LN(DEBUG_DOOR, "PERFORM_DOOR_LOCK() - Opening (FORCE) doorID[", eDoorName, "], ", sData.dbg_name, " - ", GET_THIS_SCRIPT_NAME(), ".")
IF sData.automaticRate != 0.0
DOOR_SYSTEM_SET_AUTOMATIC_DISTANCE(sData.doorHash, sData.automaticRate, FALSE, FALSE)
ENDIF
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, eIntendedState, FALSE, TRUE)
bUpdatePerformed = TRUE
BREAK
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
/// CLOSED
CASE DOORSTATE_FORCE_CLOSED_THIS_FRAME
CDEBUG1LN(DEBUG_DOOR, "PERFORM_DOOR_LOCK() - Closing (FORCE) doorID[", eDoorName, "], ", sData.dbg_name, " - ", GET_THIS_SCRIPT_NAME(), ".")
IF sData.automaticRate != 0.0
DOOR_SYSTEM_SET_AUTOMATIC_DISTANCE(sData.doorHash, sData.automaticRate, FALSE, FALSE)
ENDIF
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, eIntendedState, FALSE, TRUE)
bUpdatePerformed = TRUE
BREAK
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
///
/// MISSING STATES
DEFAULT
CDEBUG1LN(DEBUG_DOOR, "PERFORM_DOOR_LOCK() - DEFAULT doorID[", eDoorName, "], ", sData.dbg_name, " - ", GET_THIS_SCRIPT_NAME(), ".")
IF sData.automaticRate != 0.0
DOOR_SYSTEM_SET_AUTOMATIC_DISTANCE(sData.doorHash, sData.automaticRate, FALSE, FALSE)
ENDIF
DOOR_SYSTEM_SET_DOOR_STATE(sData.doorHash, eIntendedState, FALSE, TRUE)
bUpdatePerformed = TRUE
BREAK
ENDSWITCH
ENDIF
// [4] Update the stored global if the state change was successful
IF bUpdatePerformed
CLEAR_BIT(g_iUpdateDoorStateBitset[ENUM_TO_INT(eDoorName)/32], (ENUM_TO_INT(eDoorName)%32))
g_eCurrentDoorState[eDoorName] = eIntendedState
ENDIF
ENDIF
// [5] Set the update flag if we just performed a state override
IF IS_BIT_SET(g_iOverrideDoorStateBitset[ENUM_TO_INT(eDoorName)/32], (ENUM_TO_INT(eDoorName)%32))
AND g_eOverrideDoorState[eDoorName] != DOORSTATE_FORCE_LOCKED_UNTIL_OUT_OF_AREA
SET_BIT(g_iUpdateDoorStateBitset[ENUM_TO_INT(eDoorName)/32], (ENUM_TO_INT(eDoorName)%32))
QUEUE_DOOR_UPDATE_FOR_NEXT_FRAME(eDoorName)
IF g_iOverrideDoorStateCounter[eDoorName] < 2
g_iOverrideDoorStateCounter[eDoorName]++
ENDIF
ENDIF
ENDPROC
/// PURPOSE: Sets the road nodes state for the specified building state
PROC UPDATE_ROAD_NODES_FOR_BUILDING_STATE(BUILDING_DATA_STRUCT &sData, BUILDING_NAME_ENUM eBuildingName, BUILDING_STATE_ENUM eBuildingState)
IF NOT ARE_VECTORS_EQUAL(sData.road_node_min_coords, <<0.0,0.0,0.0>>)
AND NOT ARE_VECTORS_EQUAL(sData.road_node_max_coords, <<0.0,0.0,0.0>>)
IF sData.road_node_active[eBuildingState]
SET_ROADS_IN_AREA(sData.road_node_min_coords, sData.road_node_max_coords, TRUE)
ELSE
SET_ROADS_IN_AREA(sData.road_node_min_coords, sData.road_node_max_coords, FALSE)
ENDIF
ENDIF
IF NOT ARE_VECTORS_EQUAL(sData.nav_mesh_block_postion, <<0.0,0.0,0.0>>)
IF sData.nav_mesh_block_active[eBuildingState]
IF NOT g_bBuildingNavmeshBlockSet[eBuildingName]
g_bBuildingNavmeshBlockingID[eBuildingName] = ADD_NAVMESH_BLOCKING_OBJECT(sData.nav_mesh_block_postion, sData.nav_mesh_block_sizeXYZ, sData.nav_mesh_block_heading)
g_bBuildingNavmeshBlockSet[eBuildingName] = TRUE
ENDIF
ELSE
IF g_bBuildingNavmeshBlockSet[eBuildingName]
REMOVE_NAVMESH_BLOCKING_OBJECT(g_bBuildingNavmeshBlockingID[eBuildingName])
g_bBuildingNavmeshBlockSet[eBuildingName] = FALSE
ENDIF
ENDIF
ENDIF
IF NOT ARE_VECTORS_EQUAL(sData.code_vehgen_min_coords, <<0.0,0.0,0.0>>)
AND NOT ARE_VECTORS_EQUAL(sData.code_vehgen_max_coords, <<0.0,0.0,0.0>>)
IF sData.code_vehgen_block_active[eBuildingState]
SET_ALL_VEHICLE_GENERATORS_ACTIVE_IN_AREA(sData.code_vehgen_min_coords, sData.code_vehgen_max_coords, FALSE)
// Test fix for bug #1327182 - Still getting no scripted vehicle gen vans spawning vans during this mission even though they are meant to be disabled.
/*IF eBuildingName = BUILDINGNAME_SB_BUGSTAR_DOCKS_1
VECTOR vCoord = (sData.code_vehgen_min_coords+((sData.code_vehgen_max_coords-sData.code_vehgen_min_coords)*0.5))
FLOAT fRadius = GET_DISTANCE_BETWEEN_COORDS(sData.code_vehgen_min_coords, sData.code_vehgen_max_coords)*0.6
//CPRINTLN(DEBUG_BUILDING, "UPDATE_ROAD_NODES_FOR_BUILDING_STATE - Clearing area of vehicle at ", GET_STRING_FROM_VECTOR(vCoord), " with radius of ", fRadius)
CLEAR_AREA_OF_VEHICLES(vCoord, fRadius)
ENDIF*/
ELSE
SET_ALL_VEHICLE_GENERATORS_ACTIVE_IN_AREA(sData.code_vehgen_min_coords, sData.code_vehgen_max_coords, TRUE)
ENDIF
ENDIF
ENDPROC
/// PURPOSE: Sets the state of any scenario blocking areas assinged to a building.
PROC UPDATE_SCENARIO_BLOCKING_FOR_BUILDING_STATE(BUILDING_DATA_STRUCT &sData, BUILDING_NAME_ENUM eBuildingName, BUILDING_STATE_ENUM eBuildingState)
IF NOT ARE_VECTORS_EQUAL(sData.scenario_block_minXYZ, <<0.0,0.0,0.0>>)
//In normal state disable scenario blocks.
IF eBuildingState = BUILDINGSTATE_NORMAL
IF g_bBuildingScenarioBlockSet[eBuildingName]
REMOVE_SCENARIO_BLOCKING_AREA(g_scenarioBuildingBlock[eBuildingName])
g_bBuildingScenarioBlockSet[eBuildingName] = FALSE
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_BUILDING, "UPDATE_SCENARIO_BLOCKING_FOR_BUILDING_STATE - Removed scenario block for building ", sData.dbg_name, ".")
#ENDIF
ENDIF
//In destroyed or cleanup state enable scenario blocking.
ELIF eBuildingState = BUILDINGSTATE_DESTROYED
OR eBuildingState = BUILDINGSTATE_CLEANUP
IF NOT g_bBuildingScenarioBlockSet[eBuildingName]
g_scenarioBuildingBlock[eBuildingName] = ADD_SCENARIO_BLOCKING_AREA(sData.scenario_block_minXYZ, sData.scenario_block_maxXYZ)
g_bBuildingScenarioBlockSet[eBuildingName] = TRUE
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_BUILDING, "UPDATE_SCENARIO_BLOCKING_FOR_BUILDING_STATE - Enabled scenario block for building ", sData.dbg_name, ".")
#ENDIF
ENDIF
ENDIF
ENDIF
ENDPROC
/// PURPOSE: Swaps the building models if valid conditions are met
/// NOTE: Returns TRUE if a swap was made
FUNC BOOL PERFORM_BUILDING_SWAP(BUILDING_NAME_ENUM eBuildingName, BOOL bRefreshInterior = TRUE, BOOL bIgnoreDistanceChecks = FALSE, BOOL bIgnorePlayerDeathCheck = FALSE)
g_bPerformingBuildingSwap = TRUE
BOOL bUpdatePerformed = FALSE
BUILDING_STATE_ENUM eIntendedState, eCurrentState
BUILDING_DATA_STRUCT sData
GET_BUILDING_DATA(sData, eBuildingName)
// [1] Determine what state the building should be in
IF USE_SP_BUILDING_CONTROLLER_DATA()
#if USE_CLF_DLC
eIntendedState = g_savedGlobalsClifford.sBuildingData.eBuildingState[eBuildingName]
#endif
#if USE_NRM_DLC
eIntendedState = g_savedGlobalsnorman.sBuildingData.eBuildingState[eBuildingName]
#endif
#if not USE_CLF_DLC
#if not use_NRM_dlc
eIntendedState = g_savedGlobals.sBuildingData.eBuildingState[eBuildingName]
#endif
#endif
ELSE
#IF USE_SP_DLC eIntendedState = MPGlobals_OLD.g_MPBuildingData.eBuildingState[eBuildingName] #ENDIF
#IF NOT USE_SP_DLC
#IF USE_TU_CHANGES eIntendedState = g_MPBuildingData.eBuildingState[eBuildingName] #ENDIF
#IF NOT USE_TU_CHANGES eIntendedState = MPGlobals_OLD.g_MPBuildingData.eBuildingState[eBuildingName] #ENDIF
#ENDIF
ENDIF
eCurrentState = g_eCurrentBuildingState[eBuildingName]
IF IS_PED_INJURED(PLAYER_PED_ID())
AND NOT bIgnorePlayerDeathCheck
#IF IS_DEBUG_BUILD
CDEBUG3LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Building '", sData.dbg_name, "' cannot update state from [", ENUM_TO_INT(eCurrentState), "] to [", ENUM_TO_INT(eIntendedState), "], PLAYER_PED_ID is injured.")
#ENDIF
g_bPerformingBuildingSwap = TRUE
ELSE
RAYFIRE_INDEX rayfireID
//
// [2] Check that we are safe to set the state
//
BOOL bSafeToUpdate = TRUE
// On startup we call INITIALISE_STORED_BUILDING_STATES_ON_STARTUP() which sets all building states.
// Dont bother checking some states if the call come from this.
IF GET_HASH_KEY(GET_THIS_SCRIPT_NAME()) != GET_HASH_KEY("standard_global_reg")
IF bIgnoreDistanceChecks = FALSE
IF g_bBuildingStateUpdateDelay[eBuildingName]
AND GET_DISTANCE_BETWEEN_COORDS(GET_ENTITY_COORDS(PLAYER_PED_ID(), FALSE), sData.coords) < 200
bSafeToUpdate = FALSE
#IF IS_DEBUG_BUILD
CDEBUG3LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Building '", sData.dbg_name, "' waiting for player to leave area before it can change to state[", ENUM_TO_INT(eIntendedState), "].")
#ENDIF
g_bPerformingBuildingSwap = TRUE
ENDIF
IF NOT IS_PLAYER_PLAYING(PLAYER_ID())
OR IS_PED_BEING_ARRESTED(PLAYER_PED_ID())
IF NOT IS_SCREEN_FADED_OUT()
bSafeToUpdate = FALSE
#IF IS_DEBUG_BUILD
CDEBUG3LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Building '", sData.dbg_name, "' waiting for deatharrest to end or screen to fade out before it can change to state[", ENUM_TO_INT(eIntendedState), "].")
#ENDIF
g_bPerformingBuildingSwap = TRUE
ENDIF
ENDIF
ENDIF
ENDIF
IF IS_NEW_LOAD_SCENE_ACTIVE()
#IF USE_TU_CHANGES
AND (NOT IS_PLAYER_SWITCH_IN_PROGRESS() OR GET_PLAYER_SWITCH_STATE() != SWITCH_STATE_WAITFORINPUT)
#ENDIF
bSafeToUpdate = FALSE
#IF IS_DEBUG_BUILD
CDEBUG3LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Building '", sData.dbg_name, "' waiting for new load scene to finish before it can change to state[", ENUM_TO_INT(eIntendedState), "].")
#ENDIF
g_bPerformingBuildingSwap = TRUE
ENDIF
#IF IS_DEBUG_BUILD
IF GET_INDEX_OF_CURRENT_LEVEL() != LEVEL_GTA5
RETURN FALSE
ENDIF
#ENDIF
IF bSafeToUpdate
// [3] Attempt to put the building into the intended state
SWITCH sData.type
CASE BUILDINGTYPE_STATIC
IF eIntendedState = BUILDINGSTATE_CLEANUP
// Invalid state for this type of building
#IF IS_DEBUG_BUILD
CDEBUG3LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Cleanup state is an invalid state for building '", sData.dbg_name, "'.")
SCRIPT_ASSERT("PERFORM_BUILDING_SWAP() - Cleanup state is an invalid state for this building.")
#ENDIF
ELSE
IF sData.model[eIntendedState] != DUMMY_MODEL_FOR_SCRIPT
REMOVE_MODEL_HIDE(sData.coords, 10.0, sData.model[eIntendedState])
ENDIF
IF sData.model[eCurrentState] != DUMMY_MODEL_FOR_SCRIPT
CREATE_MODEL_HIDE(sData.coords, 10.0, sData.model[eCurrentState], TRUE)
ENDIF
//SWAP_NEAREST_BUILDING_MODEL(sData.coords, 10.0, sData.model[eCurrentState], sData.model[eIntendedState])
//UPDATE_ROAD_NODES_FOR_BUILDING_STATE(sData, eBuildingName, eIntendedState)
g_bBuildingRoadNodeBlockUpdate[eBuildingName] = TRUE
ENDIF
bUpdatePerformed = TRUE
BREAK
CASE BUILDINGTYPE_IPL
IF eIntendedState = BUILDINGSTATE_NORMAL
IF GET_HASH_KEY(sData.name[BUILDINGSTATE_DESTROYED]) != GET_HASH_KEY("")
AND GET_HASH_KEY(sData.name[BUILDINGSTATE_DESTROYED]) != GET_HASH_KEY(sData.name[eIntendedState])
IF IS_IPL_ACTIVE(sData.name[BUILDINGSTATE_DESTROYED])
REMOVE_IPL(sData.name[BUILDINGSTATE_DESTROYED])
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Removing IPL '", sData.name[BUILDINGSTATE_DESTROYED], "'.")
g_bPerformingBuildingSwap = TRUE
ELSE
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - IPL '", sData.name[BUILDINGSTATE_DESTROYED], "' not active.")
ENDIF
ENDIF
IF GET_HASH_KEY(sData.name[BUILDINGSTATE_CLEANUP]) != GET_HASH_KEY("")
AND GET_HASH_KEY(sData.name[BUILDINGSTATE_CLEANUP]) != GET_HASH_KEY("REMOVE_ALL_STATES")
AND GET_HASH_KEY(sData.name[BUILDINGSTATE_CLEANUP]) != GET_HASH_KEY(sData.name[eIntendedState])
IF IS_IPL_ACTIVE(sData.name[BUILDINGSTATE_CLEANUP])
REMOVE_IPL(sData.name[BUILDINGSTATE_CLEANUP])
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Removing IPL '", sData.name[BUILDINGSTATE_CLEANUP], "'.")
g_bPerformingBuildingSwap = TRUE
ELSE
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - IPL '", sData.name[BUILDINGSTATE_CLEANUP], "' not active.")
ENDIF
ENDIF
IF GET_HASH_KEY(sData.name[BUILDINGSTATE_NORMAL]) != GET_HASH_KEY("")
IF NOT IS_IPL_ACTIVE(sData.name[BUILDINGSTATE_NORMAL])
REQUEST_IPL(sData.name[BUILDINGSTATE_NORMAL])
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Requesting IPL '", sData.name[BUILDINGSTATE_NORMAL], "'.")
g_bPerformingBuildingSwap = TRUE
ELSE
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - IPL '", sData.name[BUILDINGSTATE_NORMAL], "' already active.")
ENDIF
ENDIF
// Request the pre load state if it exists
IF GET_HASH_KEY(sData.ipl_preload) != GET_HASH_KEY("")
IF NOT IS_IPL_ACTIVE(sData.ipl_preload)
REQUEST_IPL(sData.ipl_preload)
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Requesting IPL '", sData.ipl_preload, "'.")
g_bPerformingBuildingSwap = TRUE
ELSE
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - IPL '", sData.ipl_preload, "' already active.")
ENDIF
ENDIF
ELIF eIntendedState = BUILDINGSTATE_DESTROYED
// Remove the pre load state if it exists
IF GET_HASH_KEY(sData.ipl_preload) != GET_HASH_KEY("")
IF IS_IPL_ACTIVE(sData.ipl_preload)
REMOVE_IPL(sData.ipl_preload)
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Removing IPL '", sData.ipl_preload, "'.")
ELSE
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - IPL '", sData.ipl_preload, "' not active.")
ENDIF
ENDIF
IF GET_HASH_KEY(sData.name[BUILDINGSTATE_NORMAL]) != GET_HASH_KEY("")
AND GET_HASH_KEY(sData.name[BUILDINGSTATE_NORMAL]) != GET_HASH_KEY(sData.name[eIntendedState])
IF IS_IPL_ACTIVE(sData.name[BUILDINGSTATE_NORMAL])
REMOVE_IPL(sData.name[BUILDINGSTATE_NORMAL])
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Removing IPL '", sData.name[BUILDINGSTATE_NORMAL], "'.")
ELSE
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - IPL '", sData.name[BUILDINGSTATE_NORMAL], "' not active.")
ENDIF
ENDIF
IF GET_HASH_KEY(sData.name[BUILDINGSTATE_CLEANUP]) != GET_HASH_KEY("")
AND GET_HASH_KEY(sData.name[BUILDINGSTATE_CLEANUP]) != GET_HASH_KEY("REMOVE_ALL_STATES")
AND GET_HASH_KEY(sData.name[BUILDINGSTATE_CLEANUP]) != GET_HASH_KEY(sData.name[eIntendedState])
IF IS_IPL_ACTIVE(sData.name[BUILDINGSTATE_CLEANUP])
REMOVE_IPL(sData.name[BUILDINGSTATE_CLEANUP])
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Removing IPL '", sData.name[BUILDINGSTATE_CLEANUP], "'.")
ELSE
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - IPL '", sData.name[BUILDINGSTATE_CLEANUP], "' not active.")
ENDIF
ENDIF
IF GET_HASH_KEY(sData.name[BUILDINGSTATE_DESTROYED]) != GET_HASH_KEY("")
IF NOT IS_IPL_ACTIVE(sData.name[BUILDINGSTATE_DESTROYED])
REQUEST_IPL(sData.name[BUILDINGSTATE_DESTROYED])
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Requesting IPL '", sData.name[BUILDINGSTATE_DESTROYED], "'.")
ELSE
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - IPL '", sData.name[BUILDINGSTATE_DESTROYED], "' already active.")
ENDIF
ENDIF
ELIF eIntendedState = BUILDINGSTATE_CLEANUP
// Remove the pre load state if it exists
IF GET_HASH_KEY(sData.ipl_preload) != GET_HASH_KEY("")
IF IS_IPL_ACTIVE(sData.ipl_preload)
REMOVE_IPL(sData.ipl_preload)
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Removing IPL '", sData.ipl_preload, "'.")
ELSE
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - IPL '", sData.ipl_preload, "' not active.")
ENDIF
ENDIF
IF GET_HASH_KEY(sData.name[BUILDINGSTATE_NORMAL]) != GET_HASH_KEY("")
AND GET_HASH_KEY(sData.name[BUILDINGSTATE_NORMAL]) != GET_HASH_KEY(sData.name[eIntendedState])
IF IS_IPL_ACTIVE(sData.name[BUILDINGSTATE_NORMAL])
REMOVE_IPL(sData.name[BUILDINGSTATE_NORMAL])
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Removing IPL '", sData.name[BUILDINGSTATE_NORMAL], "'.")
ELSE
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - IPL '", sData.name[BUILDINGSTATE_NORMAL], "' not active.")
ENDIF
ENDIF
IF GET_HASH_KEY(sData.name[BUILDINGSTATE_DESTROYED]) != GET_HASH_KEY("")
AND GET_HASH_KEY(sData.name[BUILDINGSTATE_DESTROYED]) != GET_HASH_KEY(sData.name[eIntendedState])
IF IS_IPL_ACTIVE(sData.name[BUILDINGSTATE_DESTROYED])
REMOVE_IPL(sData.name[BUILDINGSTATE_DESTROYED])
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Removing IPL '", sData.name[BUILDINGSTATE_DESTROYED], "'.")
ELSE
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - IPL '", sData.name[BUILDINGSTATE_DESTROYED], "' not active.")
ENDIF
ENDIF
IF GET_HASH_KEY(sData.name[BUILDINGSTATE_CLEANUP]) != GET_HASH_KEY("")
AND GET_HASH_KEY(sData.name[BUILDINGSTATE_CLEANUP]) != GET_HASH_KEY("REMOVE_ALL_STATES")
IF NOT IS_IPL_ACTIVE(sData.name[BUILDINGSTATE_CLEANUP])
REQUEST_IPL(sData.name[BUILDINGSTATE_CLEANUP])
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Requesting IPL '", sData.name[BUILDINGSTATE_CLEANUP], "'.")
ELSE
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - IPL '", sData.name[BUILDINGSTATE_CLEANUP], "' already active.")
ENDIF
ENDIF
ENDIF
//UPDATE_ROAD_NODES_FOR_BUILDING_STATE(sData, eBuildingName, eIntendedState)
g_bBuildingScenarioBlockUpdate[eBuildingName] = TRUE
g_bBuildingRoadNodeBlockUpdate[eBuildingName] = TRUE
bUpdatePerformed = TRUE
BREAK
CASE BUILDINGTYPE_ENTITY_SET
INTERIOR_INSTANCE_INDEX interiorID
interiorID = GET_INTERIOR_AT_COORDS_WITH_TYPE(sData.coords, sData.es_interior)
IF interiorID != NULL
// Force remove any entity sets
IF GET_HASH_KEY(sData.es_force_remove) != GET_HASH_KEY("")
IF IS_INTERIOR_ENTITY_SET_ACTIVE(interiorID, sData.es_force_remove)
DEACTIVATE_INTERIOR_ENTITY_SET(interiorID, sData.es_force_remove)
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Force removing Entity Set '", sData.es_force_remove, "'.")
ELSE
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Entity Set '", sData.es_force_remove, "' not active.")
ENDIF
ENDIF
IF eIntendedState = BUILDINGSTATE_NORMAL
IF GET_HASH_KEY(sData.name[BUILDINGSTATE_DESTROYED]) != GET_HASH_KEY("")
IF IS_INTERIOR_ENTITY_SET_ACTIVE(interiorID, sData.name[BUILDINGSTATE_DESTROYED])
DEACTIVATE_INTERIOR_ENTITY_SET(interiorID, sData.name[BUILDINGSTATE_DESTROYED])
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Removing Entity Set '", sData.name[BUILDINGSTATE_DESTROYED], "'.")
ELSE
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Entity Set '", sData.name[BUILDINGSTATE_DESTROYED], "' not active.")
ENDIF
ENDIF
IF GET_HASH_KEY(sData.name[BUILDINGSTATE_CLEANUP]) != GET_HASH_KEY("")
AND GET_HASH_KEY(sData.name[BUILDINGSTATE_CLEANUP]) != GET_HASH_KEY("REMOVE_ALL_STATES")
AND GET_HASH_KEY(sData.name[BUILDINGSTATE_CLEANUP]) != GET_HASH_KEY(sData.name[eIntendedState])
IF IS_INTERIOR_ENTITY_SET_ACTIVE(interiorID, sData.name[BUILDINGSTATE_CLEANUP])
DEACTIVATE_INTERIOR_ENTITY_SET(interiorID, sData.name[BUILDINGSTATE_CLEANUP])
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Removing Entity Set '", sData.name[BUILDINGSTATE_CLEANUP], "'.")
ELSE
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Entity Set '", sData.name[BUILDINGSTATE_CLEANUP], "' not active.")
ENDIF
ENDIF
IF GET_HASH_KEY(sData.name[BUILDINGSTATE_NORMAL]) != GET_HASH_KEY("")
IF NOT IS_INTERIOR_ENTITY_SET_ACTIVE(interiorID, sData.name[BUILDINGSTATE_NORMAL])
ACTIVATE_INTERIOR_ENTITY_SET(interiorID, sData.name[BUILDINGSTATE_NORMAL])
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Requesting Entity Set '", sData.name[BUILDINGSTATE_NORMAL], "'.")
ELSE
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Entity Set '", sData.name[BUILDINGSTATE_NORMAL], "' already active.")
ENDIF
ENDIF
ELIF eIntendedState = BUILDINGSTATE_DESTROYED
IF GET_HASH_KEY(sData.name[BUILDINGSTATE_NORMAL]) != GET_HASH_KEY("")
IF IS_INTERIOR_ENTITY_SET_ACTIVE(interiorID, sData.name[BUILDINGSTATE_NORMAL])
DEACTIVATE_INTERIOR_ENTITY_SET(interiorID, sData.name[BUILDINGSTATE_NORMAL])
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Removing Entity Set '", sData.name[BUILDINGSTATE_NORMAL], "'.")
ELSE
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Entity Set '", sData.name[BUILDINGSTATE_NORMAL], "' not active.")
ENDIF
ENDIF
IF GET_HASH_KEY(sData.name[BUILDINGSTATE_CLEANUP]) != GET_HASH_KEY("")
AND GET_HASH_KEY(sData.name[BUILDINGSTATE_CLEANUP]) != GET_HASH_KEY("REMOVE_ALL_STATES")
AND GET_HASH_KEY(sData.name[BUILDINGSTATE_CLEANUP]) != GET_HASH_KEY(sData.name[eIntendedState])
IF IS_INTERIOR_ENTITY_SET_ACTIVE(interiorID, sData.name[BUILDINGSTATE_CLEANUP])
DEACTIVATE_INTERIOR_ENTITY_SET(interiorID, sData.name[BUILDINGSTATE_CLEANUP])
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Removing Entity Set '", sData.name[BUILDINGSTATE_CLEANUP], "'.")
ELSE
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Entity Set '", sData.name[BUILDINGSTATE_CLEANUP], "' not active.")
ENDIF
ENDIF
IF GET_HASH_KEY(sData.name[BUILDINGSTATE_DESTROYED]) != GET_HASH_KEY("")
IF NOT IS_INTERIOR_ENTITY_SET_ACTIVE(interiorID, (sData.name[BUILDINGSTATE_DESTROYED]))
ACTIVATE_INTERIOR_ENTITY_SET(interiorID, sData.name[BUILDINGSTATE_DESTROYED])
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Requesting Entity Set '", sData.name[BUILDINGSTATE_DESTROYED], "'.")
ELSE
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Entity Set '", sData.name[BUILDINGSTATE_DESTROYED], "' already active.")
ENDIF
ENDIF
ELIF eIntendedState = BUILDINGSTATE_CLEANUP
IF GET_HASH_KEY(sData.name[BUILDINGSTATE_NORMAL]) != GET_HASH_KEY("")
IF IS_INTERIOR_ENTITY_SET_ACTIVE(interiorID, sData.name[BUILDINGSTATE_NORMAL])
DEACTIVATE_INTERIOR_ENTITY_SET(interiorID, sData.name[BUILDINGSTATE_NORMAL])
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Removing Entity Set '", sData.name[BUILDINGSTATE_NORMAL], "'.")
ELSE
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Entity Set '", sData.name[BUILDINGSTATE_NORMAL], "' not active.")
ENDIF
ENDIF
IF GET_HASH_KEY(sData.name[BUILDINGSTATE_DESTROYED]) != GET_HASH_KEY("")
IF IS_INTERIOR_ENTITY_SET_ACTIVE(interiorID, sData.name[BUILDINGSTATE_DESTROYED])
DEACTIVATE_INTERIOR_ENTITY_SET(interiorID, sData.name[BUILDINGSTATE_DESTROYED])
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Removing Entity Set '", sData.name[BUILDINGSTATE_DESTROYED], "'.")
ELSE
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Entity Set '", sData.name[BUILDINGSTATE_DESTROYED], "' not active.")
ENDIF
ENDIF
IF GET_HASH_KEY(sData.name[BUILDINGSTATE_CLEANUP]) != GET_HASH_KEY("")
AND GET_HASH_KEY(sData.name[BUILDINGSTATE_CLEANUP]) != GET_HASH_KEY("REMOVE_ALL_STATES")
IF NOT IS_INTERIOR_ENTITY_SET_ACTIVE(interiorID, (sData.name[BUILDINGSTATE_CLEANUP]))
ACTIVATE_INTERIOR_ENTITY_SET(interiorID, sData.name[BUILDINGSTATE_CLEANUP])
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Requesting Entity Set '", sData.name[BUILDINGSTATE_CLEANUP], "'.")
ELSE
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Entity Set '", sData.name[BUILDINGSTATE_CLEANUP], "' already active.")
ENDIF
ENDIF
ENDIF
IF bRefreshInterior
REFRESH_INTERIOR(interiorID)
ENDIF
ELSE
CDEBUG1LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Unable to find interior for '", sData.dbg_name, "' so we are assuming it is safe continue.")
ENDIF
//UPDATE_ROAD_NODES_FOR_BUILDING_STATE(sData, eBuildingName, eIntendedState)
g_bBuildingRoadNodeBlockUpdate[eBuildingName] = TRUE
g_bBuildingScenarioBlockUpdate[eBuildingName] = TRUE
bUpdatePerformed = TRUE
BREAK
CASE BUILDINGTYPE_RAYFIRE
// Cut out unneeded processing by doing a simple distance check
IF GET_DISTANCE_BETWEEN_COORDS(sData.coords, GET_ENTITY_COORDS(PLAYER_PED_ID(), FALSE)) < 250.0
// Check if the rayfire map object exists and that it is in a suitable state for updating
rayfireID = GET_RAYFIRE_MAP_OBJECT(sData.coords, 25, sData.name[BUILDINGSTATE_NORMAL])
IF DOES_RAYFIRE_MAP_OBJECT_EXIST(rayfireID)
IF eIntendedState = BUILDINGSTATE_NORMAL
SET_STATE_OF_RAYFIRE_MAP_OBJECT(rayfireID, RFMO_STATE_START)
//UPDATE_ROAD_NODES_FOR_BUILDING_STATE(sData, eBuildingName, eIntendedState)
g_bBuildingRoadNodeBlockUpdate[eBuildingName] = TRUE
bUpdatePerformed = TRUE
ELIF eIntendedState = BUILDINGSTATE_DESTROYED
// Do not set to end state if its currently animating
IF GET_STATE_OF_RAYFIRE_MAP_OBJECT(rayfireID) <> RFMO_STATE_START_ANIM
AND GET_STATE_OF_RAYFIRE_MAP_OBJECT(rayfireID) <> RFMO_STATE_ANIMATING
AND GET_STATE_OF_RAYFIRE_MAP_OBJECT(rayfireID) <> RFMO_STATE_SYNC_ENDING
SET_STATE_OF_RAYFIRE_MAP_OBJECT(rayfireID, RFMO_STATE_END)
//UPDATE_ROAD_NODES_FOR_BUILDING_STATE(sData, eBuildingName, eIntendedState)
g_bBuildingRoadNodeBlockUpdate[eBuildingName] = TRUE
bUpdatePerformed = TRUE
ELSE
#IF IS_DEBUG_BUILD
CDEBUG3LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Waiting for RFMO '", sData.dbg_name, "' to stop animating.")
#ENDIF
ENDIF
ELIF eIntendedState = BUILDINGSTATE_CLEANUP
// Invalid state for this type of building
#IF IS_DEBUG_BUILD
CDEBUG3LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Cleanup state is an invalid state for building '", sData.dbg_name, "'.")
SCRIPT_ASSERT("PERFORM_BUILDING_SWAP() - Cleanup state is an invalid state for building.")
#ENDIF
bUpdatePerformed = TRUE
ENDIF
ELSE
#IF IS_DEBUG_BUILD
CDEBUG3LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - RFMO '", sData.dbg_name, "' doesn't exist.")
#ENDIF
ENDIF
ENDIF
BREAK
CASE BUILDINGTYPE_MODEL_SWAP
IF eIntendedState = BUILDINGSTATE_NORMAL
// bug 1748503
//IF IS_BIT_SET(g_iModelSwappedBitset[ENUM_TO_INT(eBuildingName)/32], (ENUM_TO_INT(eBuildingName)%32))
CDEBUG3LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - REMOVE_MODEL_SWAP '", sData.dbg_name, "' removed.")
REMOVE_MODEL_SWAP(sData.coords, 50.0, sData.model[BUILDINGSTATE_DESTROYED], sData.model[BUILDINGSTATE_NORMAL], FALSE)
CLEAR_BIT(g_iModelSwappedBitset[ENUM_TO_INT(eBuildingName)/32], (ENUM_TO_INT(eBuildingName)%32))
//ENDIF
ELIF eIntendedState = BUILDINGSTATE_DESTROYED
// bug 1748503
//IF NOT IS_BIT_SET(g_iModelSwappedBitset[ENUM_TO_INT(eBuildingName)/32], (ENUM_TO_INT(eBuildingName)%32))
CDEBUG3LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - CREATE_MODEL_SWAP '", sData.dbg_name, "' swapped.")
CREATE_MODEL_SWAP(sData.coords, 50.0, sData.model[BUILDINGSTATE_NORMAL], sData.model[BUILDINGSTATE_DESTROYED], TRUE)
SET_BIT(g_iModelSwappedBitset[ENUM_TO_INT(eBuildingName)/32], (ENUM_TO_INT(eBuildingName)%32))
//ENDIF
ENDIF
bUpdatePerformed = TRUE
BREAK
ENDSWITCH
// [4] Update the stored global if the state change was successful
IF bUpdatePerformed
#IF IS_DEBUG_BUILD
CDEBUG3LN(DEBUG_BUILDING, "PERFORM_BUILDING_SWAP() - Building '", sData.dbg_name, "' is now in state [", ENUM_TO_INT(eIntendedState), "]. ", GET_THIS_SCRIPT_NAME())
#ENDIF
g_bUpdateBuildingState[eBuildingName] = FALSE
g_eCurrentBuildingState[eBuildingName] = eIntendedState
IF NOT USE_SP_BUILDING_CONTROLLER_DATA()
IF NOT g_bBuildingStateSetInMP[eBuildingName]
g_bBuildingStateSetInMP[eBuildingName] = TRUE
g_iBuildingStatesSetInMP++
CDEBUG3LN(DEBUG_BUILDING, "KENNETH TEST : ", eBuildingName)
ENDIF
ENDIF
ENDIF
ENDIF
ENDIF
RETURN (bUpdatePerformed)
ENDFUNC
PROC SETUP_AUTOMATIC_DOOR_DATA()
AUTOMATIC_DOOR_ENUM eAutoDoor
// The automatic door leading into Michael's Mansion driveway.
eAutoDoor = AUTODOOR_MICHAEL_MANSION_GATE
g_sAutoDoorData[eAutoDoor].doorID = HASH("AUTODOOR_MICHAEL_MANSION_GATE")
g_sAutoDoorData[eAutoDoor].coords = <<-844, 156, 66>>
g_sAutoDoorData[eAutoDoor].model = PROP_LRGGATE_02_LD
g_sAutoDoorData[eAutoDoor].checkRange = 30*30
g_sAutoDoorData[eAutoDoor].blockedRange = 6*6
g_sAutoDoorData[eAutoDoor].activationLocate1Width = 15.000000
g_sAutoDoorData[eAutoDoor].activationLocate1PosA = <<-851.815857,170.874283,61.302193>>
g_sAutoDoorData[eAutoDoor].activationLocate1PosB = <<-851.570007,148.145905,71.345329>>
g_sAutoDoorData[eAutoDoor].activationLocate2Width = 15.000000
g_sAutoDoorData[eAutoDoor].activationLocate2PosA = <<-836.659668,175.336563,65.059769>>
g_sAutoDoorData[eAutoDoor].activationLocate2PosB = <<-836.687805,152.788971,73.663818>>
g_sAutoDoorData[eAutoDoor].openRate = 0.25
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_TWO_LOCATES)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_REVERSE_OPEN_RATIO)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_DOOR_FULLY_CLOSED)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_OPEN_ON_WANTED)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_LINKED_DOORS)
//Docks gates.
eAutoDoor = AUTODOOR_DOCKS_FRONT_GATE_IN
g_sAutoDoorData[eAutoDoor].doorID = HASH("AUTODOOR_DOCKS_FRONT_GATE_IN")
g_sAutoDoorData[eAutoDoor].coords = <<19, -2530, 5>> //<< 18.4488, -2532.6448, 5.0502 >>
g_sAutoDoorData[eAutoDoor].model = PROP_GATE_DOCKS_LD
g_sAutoDoorData[eAutoDoor].checkRange = 25*25
g_sAutoDoorData[eAutoDoor].blockedRange = 7*7
g_sAutoDoorData[eAutoDoor].activationLocate1Width = 7.750000
g_sAutoDoorData[eAutoDoor].activationLocate1PosA = <<15.188263,-2531.203125,5.050370>>
g_sAutoDoorData[eAutoDoor].activationLocate1PosB = <<30.920921,-2542.127930,7.504300>>
g_sAutoDoorData[eAutoDoor].openRate = 0.55
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_TWO_LOCATES)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_REVERSE_OPEN_RATIO)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_DOOR_FULLY_CLOSED)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_LINKED_DOORS)
eAutoDoor = AUTODOOR_DOCKS_FRONT_GATE_OUT
g_sAutoDoorData[eAutoDoor].doorID = HASH("AUTODOOR_DOCKS_FRONT_GATE_OUT")
g_sAutoDoorData[eAutoDoor].coords = <<11, -2542, 5>> //<< 12.9038, -2538.7798, 5.0502 >>
g_sAutoDoorData[eAutoDoor].model = PROP_GATE_DOCKS_LD
g_sAutoDoorData[eAutoDoor].checkRange = 25*25
g_sAutoDoorData[eAutoDoor].blockedRange = 7*7
g_sAutoDoorData[eAutoDoor].activationLocate1Width = 7.750000
g_sAutoDoorData[eAutoDoor].activationLocate1PosA = <<13.802609,-2540.929199,5.050376>>
g_sAutoDoorData[eAutoDoor].activationLocate1PosB = <<-5.521768,-2527.885010,7.542066>>
g_sAutoDoorData[eAutoDoor].openRate = 0.55
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_TWO_LOCATES)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_REVERSE_OPEN_RATIO)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_DOOR_FULLY_CLOSED)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_LINKED_DOORS)
eAutoDoor = AUTODOOR_DOCKS_BACK_GATE_IN
g_sAutoDoorData[eAutoDoor].doorID = HASH("AUTODOOR_DOCKS_BACK_GATE_IN")
g_sAutoDoorData[eAutoDoor].coords = <<-193, -2515, 5>>//<< -190.6622, -2515.3093, 5.0474 >>
g_sAutoDoorData[eAutoDoor].model = PROP_GATE_DOCKS_LD
g_sAutoDoorData[eAutoDoor].checkRange = 25*25
g_sAutoDoorData[eAutoDoor].blockedRange = 7*7
g_sAutoDoorData[eAutoDoor].activationLocate1Width = 12
g_sAutoDoorData[eAutoDoor].activationLocate1PosA = <<-190.696396,-2515.287842,4.678052>>
g_sAutoDoorData[eAutoDoor].activationLocate1PosB = <<-190.791306,-2536.691650,9.000118>>
g_sAutoDoorData[eAutoDoor].openRate = 0.55
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_TWO_LOCATES)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_REVERSE_OPEN_RATIO)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_DOOR_FULLY_CLOSED)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_LINKED_DOORS)
eAutoDoor = AUTODOOR_DOCKS_BACK_GATE_OUT
g_sAutoDoorData[eAutoDoor].doorID = HASH("AUTODOOR_DOCKS_BACK_GATE_OUT")
g_sAutoDoorData[eAutoDoor].coords = <<-203, -2515, 5>> //<< -199.4173, -2515.4197, 5.0474 >>
g_sAutoDoorData[eAutoDoor].model = PROP_GATE_DOCKS_LD
g_sAutoDoorData[eAutoDoor].checkRange = 25*25
g_sAutoDoorData[eAutoDoor].blockedRange = 7*7
g_sAutoDoorData[eAutoDoor].activationLocate1Width = 12.000000
g_sAutoDoorData[eAutoDoor].activationLocate1PosA = <<-200.207962,-2515.378662,5.047561>>
g_sAutoDoorData[eAutoDoor].activationLocate1PosB = <<-200.324066,-2495.309326,7.891297>>
g_sAutoDoorData[eAutoDoor].openRate = 0.55
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_TWO_LOCATES)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_REVERSE_OPEN_RATIO)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_DOOR_FULLY_CLOSED)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_LINKED_DOORS)
//Military docks gates.
eAutoDoor = AUTODOOR_MIL_DOCKS_GATE_IN
g_sAutoDoorData[eAutoDoor].doorID = HASH("AUTODOOR_MIL_DOCKS_GATE_IN")
g_sAutoDoorData[eAutoDoor].coords = <<476, -3116, 5>> //<< 479.0721, -3116.1152, 5.0701 >>
g_sAutoDoorData[eAutoDoor].model = PROP_GATE_DOCKS_LD
g_sAutoDoorData[eAutoDoor].checkRange = 30*30
g_sAutoDoorData[eAutoDoor].blockedRange = 7*7
g_sAutoDoorData[eAutoDoor].activationLocate1Width = 40.000000
g_sAutoDoorData[eAutoDoor].activationLocate1PosA = <<484.581024,-3115.547607,4.652226>>
g_sAutoDoorData[eAutoDoor].activationLocate1PosB = <<473.637878,-3116.050537,11.070095>>
g_sAutoDoorData[eAutoDoor].openRate = 0.55
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_TWO_LOCATES)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_REVERSE_OPEN_RATIO)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_DOOR_FULLY_CLOSED)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_LINKED_DOORS)
eAutoDoor = AUTODOOR_MIL_DOCKS_GATE_OUT
g_sAutoDoorData[eAutoDoor].doorID = HASH("AUTODOOR_MIL_DOCKS_GATE_OUT")
g_sAutoDoorData[eAutoDoor].coords = <<492, -3116, 5>> //<< 489.1011, -3116.0469, 5.0701 >>
g_sAutoDoorData[eAutoDoor].model = PROP_GATE_DOCKS_LD
g_sAutoDoorData[eAutoDoor].checkRange = 30*30
g_sAutoDoorData[eAutoDoor].blockedRange = 7*7
g_sAutoDoorData[eAutoDoor].activationLocate1Width = 40.000000
g_sAutoDoorData[eAutoDoor].activationLocate1PosA = <<484.087585,-3115.800781,4.652227>>
g_sAutoDoorData[eAutoDoor].activationLocate1PosB = <<494.890289,-3115.787354,11.068663>>
g_sAutoDoorData[eAutoDoor].openRate = 0.55
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_TWO_LOCATES)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_REVERSE_OPEN_RATIO)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_DOOR_FULLY_CLOSED)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_LINKED_DOORS)
//Military base gates.
eAutoDoor = AUTODOOR_MIL_BASE_GATE_IN
g_sAutoDoorData[eAutoDoor].doorID = HASH("AUTODOOR_MIL_BASE_GATE_IN")
g_sAutoDoorData[eAutoDoor].coords = <<1600, -2806, 16>>//<< -1596.5776, 2808.1213, 16.1039 >>
g_sAutoDoorData[eAutoDoor].model = PROP_GATE_MILITARY_01
g_sAutoDoorData[eAutoDoor].checkRange = 30*30
g_sAutoDoorData[eAutoDoor].blockedRange = 5*5
g_sAutoDoorData[eAutoDoor].activationLocate1Width = 40.000000
g_sAutoDoorData[eAutoDoor].activationLocate1PosA = <<-1599.609009,2805.895264,15.670090>>
g_sAutoDoorData[eAutoDoor].activationLocate1PosB = <<-1593.815430,2811.392334,22.024572>>
g_sAutoDoorData[eAutoDoor].openRate = 0.55
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_TWO_LOCATES)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_REVERSE_OPEN_RATIO)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_DOOR_FULLY_CLOSED)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_LINKED_DOORS)
eAutoDoor = AUTODOOR_MIL_BASE_GATE_OUT
g_sAutoDoorData[eAutoDoor].doorID = HASH("AUTODOOR_MIL_BASE_GATE_OUT")
g_sAutoDoorData[eAutoDoor].coords = <<1605, -2801, 16>>//<< -1602.2544, 2803.3594, 16.0960 >>
g_sAutoDoorData[eAutoDoor].model = PROP_GATE_MILITARY_01
g_sAutoDoorData[eAutoDoor].checkRange = 30*30
g_sAutoDoorData[eAutoDoor].blockedRange = 5*5
g_sAutoDoorData[eAutoDoor].activationLocate1Width = 40.000000
g_sAutoDoorData[eAutoDoor].activationLocate1PosA = <<-1599.609009,2805.895264,15.670090>>
g_sAutoDoorData[eAutoDoor].activationLocate1PosB = <<-1605.858154,2800.540771,22.508896>>
g_sAutoDoorData[eAutoDoor].openRate = 0.55
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_TWO_LOCATES)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_REVERSE_OPEN_RATIO)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_DOOR_FULLY_CLOSED)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_LINKED_DOORS)
eAutoDoor = AUTODOOR_CULT_GATE_LEFT
g_sAutoDoorData[eAutoDoor].doorID = HASH("AUTODOOR_CULT_GATE_LEFT")
g_sAutoDoorData[eAutoDoor].coords = <<-1041, 4906, 209>>
g_sAutoDoorData[eAutoDoor].model = PROP_GATE_CULT_01_L
g_sAutoDoorData[eAutoDoor].checkRange = 30*30
g_sAutoDoorData[eAutoDoor].blockedRange = 5*5
g_sAutoDoorData[eAutoDoor].activationLocate1Width = 40.000000
g_sAutoDoorData[eAutoDoor].activationLocate1PosA = <<-1050.437134,4909.196289,200>>
g_sAutoDoorData[eAutoDoor].activationLocate1PosB = <<-1027.921753,4921.747559,215>>
g_sAutoDoorData[eAutoDoor].openRate = 0.55
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_TWO_LOCATES)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_REVERSE_OPEN_RATIO) // Needs set to false when door is finally used by Tor
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_DOOR_FULLY_CLOSED)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_LINKED_DOORS)
eAutoDoor = AUTODOOR_CULT_GATE_RIGHT
g_sAutoDoorData[eAutoDoor].doorID = HASH("AUTODOOR_CULT_GATE_RIGHT")
g_sAutoDoorData[eAutoDoor].coords = <<-1045, 4915, 209>>
g_sAutoDoorData[eAutoDoor].model = PROP_GATE_CULT_01_R
g_sAutoDoorData[eAutoDoor].checkRange = 30*30
g_sAutoDoorData[eAutoDoor].blockedRange = 6*6
g_sAutoDoorData[eAutoDoor].activationLocate1Width = 40.000000
g_sAutoDoorData[eAutoDoor].activationLocate1PosA = <<-1050.437134,4909.196289,200>>
g_sAutoDoorData[eAutoDoor].activationLocate1PosB = <<-1027.921753,4921.747559,215>>
g_sAutoDoorData[eAutoDoor].openRate = 0.55
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_TWO_LOCATES)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_REVERSE_OPEN_RATIO) // Needs set to false when door is finally used by Tor
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_DOOR_FULLY_CLOSED)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_LINKED_DOORS)
//Garage door on Downtown Vinewood. TODO #1210468
eAutoDoor = AUTODOOR_DTOWN_VINEWOOD_GARAGE
g_sAutoDoorData[eAutoDoor].doorID = HASH("AUTODOOR_DTOWN_VINEWOOD_GARAGE")
g_sAutoDoorData[eAutoDoor].coords = <<523.9820, 167.7104, 100.5962>>
g_sAutoDoorData[eAutoDoor].model = PROP_HW1_03_GARDOOR_01
g_sAutoDoorData[eAutoDoor].checkRange = 25*25
g_sAutoDoorData[eAutoDoor].blockedRange = 3*3
g_sAutoDoorData[eAutoDoor].activationLocate1Width = 21.75
g_sAutoDoorData[eAutoDoor].activationLocate1PosA = <<520.243652,164.893188,98.044174>>
g_sAutoDoorData[eAutoDoor].activationLocate1PosB = <<523.080017,172.699860,102.782425>>
g_sAutoDoorData[eAutoDoor].openRate = 0.55
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_TWO_LOCATES)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_REVERSE_OPEN_RATIO)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_DOOR_FULLY_CLOSED)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_LINKED_DOORS)
//Franklin's Hills savehouse garage.
eAutoDoor = AUTODOOR_FRAN_HILLS_GARAGE
g_sAutoDoorData[eAutoDoor].doorID = HASH("AUTODOOR_FRAN_HILLS_GARAGE")
g_sAutoDoorData[eAutoDoor].coords = <<18.6504, 546.3401, 176.3448>>
g_sAutoDoorData[eAutoDoor].model = PROP_CH_025C_G_DOOR_01
g_sAutoDoorData[eAutoDoor].checkRange = 18*18
g_sAutoDoorData[eAutoDoor].blockedRange = 3*3
g_sAutoDoorData[eAutoDoor].activationLocate1Width = 14.750000
g_sAutoDoorData[eAutoDoor].activationLocate1PosA = <<19.326839,550.176025,174.000137>>
g_sAutoDoorData[eAutoDoor].activationLocate1PosB = <<15.769264,543.835083,178.022980>>
g_sAutoDoorData[eAutoDoor].openRate = 0.55
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_TWO_LOCATES)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_REVERSE_OPEN_RATIO)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_DOOR_FULLY_CLOSED)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_LINKED_DOORS)
//Outer gate to cop building car park in SC1.
eAutoDoor = AUTODOOR_SC1_COP_CARPARK
g_sAutoDoorData[eAutoDoor].doorID = HASH("AUTODOOR_SC1_COP_CARPARK")
g_sAutoDoorData[eAutoDoor].coords = <<397.83, -1607.34, 28.34>>
g_sAutoDoorData[eAutoDoor].model = prop_facgate_07b
g_sAutoDoorData[eAutoDoor].checkRange = 18*18
g_sAutoDoorData[eAutoDoor].blockedRange = 3*3
g_sAutoDoorData[eAutoDoor].activationLocate1Width = 14.50000
g_sAutoDoorData[eAutoDoor].activationLocate1PosA = <<405.365051,-1612.886475,27.522816>>
g_sAutoDoorData[eAutoDoor].activationLocate1PosB = <<396.683960,-1605.760864,32.766979>>
g_sAutoDoorData[eAutoDoor].openRate = 0.55
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_TWO_LOCATES)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_REVERSE_OPEN_RATIO)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_DOOR_FULLY_CLOSED)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_LINKED_DOORS)
//Gate to Devin's house.
eAutoDoor = AUTODOOR_DEVIN_GATE_L
g_sAutoDoorData[eAutoDoor].doorID = HASH("AUTODOOR_DEVIN_GATE_L")
g_sAutoDoorData[eAutoDoor].coords = <<-2559.19, 1910.86, 169.07>>
g_sAutoDoorData[eAutoDoor].model = prop_lrggate_01c_l
g_sAutoDoorData[eAutoDoor].checkRange = 18*18
g_sAutoDoorData[eAutoDoor].blockedRange = 3*3
g_sAutoDoorData[eAutoDoor].activationLocate1Width = 13.0
g_sAutoDoorData[eAutoDoor].activationLocate1PosA = <<-2551.360352,1909.907471,166.433594>>
g_sAutoDoorData[eAutoDoor].activationLocate1PosB = <<-2572.051025,1924.179932,171.394714>>
g_sAutoDoorData[eAutoDoor].openRate = 0.55
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_TWO_LOCATES)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_REVERSE_OPEN_RATIO)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_DOOR_FULLY_CLOSED)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_LINKED_DOORS)
//Gate to Devin's house.
eAutoDoor = AUTODOOR_DEVIN_GATE_R
g_sAutoDoorData[eAutoDoor].doorID = HASH("AUTODOOR_DEVIN_GATE_R")
g_sAutoDoorData[eAutoDoor].coords = <<-2556.66, 1915.72, 169.07>>
g_sAutoDoorData[eAutoDoor].model = prop_lrggate_01c_r
g_sAutoDoorData[eAutoDoor].checkRange = 18*18
g_sAutoDoorData[eAutoDoor].blockedRange = 3*3
g_sAutoDoorData[eAutoDoor].activationLocate1Width = 13.0
g_sAutoDoorData[eAutoDoor].activationLocate1PosA = <<-2551.360352,1909.907471,166.433594>>
g_sAutoDoorData[eAutoDoor].activationLocate1PosB = <<-2572.051025,1924.179932,171.394714>>
g_sAutoDoorData[eAutoDoor].openRate = 0.55
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_TWO_LOCATES)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_REVERSE_OPEN_RATIO)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_DOOR_FULLY_CLOSED)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_LINKED_DOORS)
//Gate leading out of the airport area.
eAutoDoor = AUTODOOR_AIRPORT_BARRIER_OUT
g_sAutoDoorData[eAutoDoor].doorID = HASH("AUTODOOR_AIRPORT_BARRIER_OUT")
g_sAutoDoorData[eAutoDoor].coords = <<-961.23, -2796.28, 13.96>>
g_sAutoDoorData[eAutoDoor].model = prop_sec_barrier_ld_01a
g_sAutoDoorData[eAutoDoor].checkRange = 18*18
g_sAutoDoorData[eAutoDoor].blockedRange = 3*3
g_sAutoDoorData[eAutoDoor].activationLocate1Width = 7.0
g_sAutoDoorData[eAutoDoor].activationLocate1PosA = <<-958.540161,-2798.280762,12.714785>>
g_sAutoDoorData[eAutoDoor].activationLocate1PosB = <<-964.457214,-2808.593262,17.714787>>
g_sAutoDoorData[eAutoDoor].openRate = 0.55
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_TWO_LOCATES)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_REVERSE_OPEN_RATIO)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_DOOR_FULLY_CLOSED)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_LINKED_DOORS)
//Gate leading into the airport area.
eAutoDoor = AUTODOOR_AIRPORT_BARRIER_IN
g_sAutoDoorData[eAutoDoor].doorID = HASH("AUTODOOR_AIRPORT_BARRIER_IN")
g_sAutoDoorData[eAutoDoor].coords = <<-967.01, -2802.45, 13.96>>
g_sAutoDoorData[eAutoDoor].model = prop_sec_barrier_ld_01a
g_sAutoDoorData[eAutoDoor].checkRange = 18*18
g_sAutoDoorData[eAutoDoor].blockedRange = 3*3
g_sAutoDoorData[eAutoDoor].activationLocate1Width = 6.5
g_sAutoDoorData[eAutoDoor].activationLocate1PosA = <<-970.271973,-2800.352539,12.714786>>
g_sAutoDoorData[eAutoDoor].activationLocate1PosB = <<-965.005249,-2791.101318,17.714787>>
g_sAutoDoorData[eAutoDoor].openRate = 0.55
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_TWO_LOCATES)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_REVERSE_OPEN_RATIO)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_DOOR_FULLY_CLOSED)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_LINKED_DOORS)
// Garage doors to the impound lot
eAutoDoor = AUTODOOR_IMPOUND_L
g_sAutoDoorData[eAutoDoor].doorID = HASH("AUTODOOR_IMPOUND_L")
g_sAutoDoorData[eAutoDoor].coords = <<431.41, -1000.16, 28.65>>
g_sAutoDoorData[eAutoDoor].model = prop_com_gar_door_01
g_sAutoDoorData[eAutoDoor].checkRange = 18*18
g_sAutoDoorData[eAutoDoor].blockedRange = 3*3
g_sAutoDoorData[eAutoDoor].activationLocate1Width = 11.0
g_sAutoDoorData[eAutoDoor].activationLocate1PosA = <<433.782684,-1001.489685,23.797237>>
g_sAutoDoorData[eAutoDoor].activationLocate1PosB = <<433.886230,-1017.221680,29.593578>>
g_sAutoDoorData[eAutoDoor].openRate = 0.55
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_TWO_LOCATES)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_REVERSE_OPEN_RATIO)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_DOOR_FULLY_CLOSED)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_LINKED_DOORS)
eAutoDoor = AUTODOOR_IMPOUND_R
g_sAutoDoorData[eAutoDoor].doorID = HASH("AUTODOOR_IMPOUND_R")
g_sAutoDoorData[eAutoDoor].coords = <<436.22, -1001.17, 26.71>>
g_sAutoDoorData[eAutoDoor].model = prop_com_gar_door_01
g_sAutoDoorData[eAutoDoor].checkRange = 18*18
g_sAutoDoorData[eAutoDoor].blockedRange = 3*3
g_sAutoDoorData[eAutoDoor].activationLocate1Width = 11.0
g_sAutoDoorData[eAutoDoor].activationLocate1PosA = <<433.782684,-1001.489685,23.797237>>
g_sAutoDoorData[eAutoDoor].activationLocate1PosB = <<433.886230,-1017.221680,29.593578>>
g_sAutoDoorData[eAutoDoor].openRate = 0.55
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_TWO_LOCATES)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_REVERSE_OPEN_RATIO)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_DOOR_FULLY_CLOSED)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_LINKED_DOORS)
//Gates leading into the military base.
eAutoDoor = AUTODOOR_MIL_BASE_BARRIER_IN
g_sAutoDoorData[eAutoDoor].doorID = HASH("AUTODOOR_MIL_BASE_BARRIER_IN")
g_sAutoDoorData[eAutoDoor].coords = <<-1588.27, 2794.21, 16.85>>
g_sAutoDoorData[eAutoDoor].model = prop_sec_barrier_ld_01a
g_sAutoDoorData[eAutoDoor].checkRange = 18*18
g_sAutoDoorData[eAutoDoor].blockedRange = 3*3
g_sAutoDoorData[eAutoDoor].activationLocate1Width = 6.75
g_sAutoDoorData[eAutoDoor].activationLocate1PosA = <<-1585.348633,2796.764648,15.333453>>
g_sAutoDoorData[eAutoDoor].activationLocate1PosB = <<-1573.873657,2783.339111,20.003242>>
g_sAutoDoorData[eAutoDoor].openRate = 0.55
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_TWO_LOCATES)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_REVERSE_OPEN_RATIO)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_DOOR_FULLY_CLOSED)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_LINKED_DOORS)
eAutoDoor = AUTODOOR_MIL_BASE_BARRIER_OUT
g_sAutoDoorData[eAutoDoor].doorID = HASH("AUTODOOR_MIL_BASE_BARRIER_OUT")
g_sAutoDoorData[eAutoDoor].coords = <<-1589.58, 2793.67, 16.86>>
g_sAutoDoorData[eAutoDoor].model = prop_sec_barrier_ld_01a
g_sAutoDoorData[eAutoDoor].checkRange = 18*18
g_sAutoDoorData[eAutoDoor].blockedRange = 3*3
g_sAutoDoorData[eAutoDoor].activationLocate1Width = 6.75
g_sAutoDoorData[eAutoDoor].activationLocate1PosA = <<-1592.551758,2791.039795,15.326007>>
g_sAutoDoorData[eAutoDoor].activationLocate1PosB = <<-1604.540039,2805.557617,20.174604>>
g_sAutoDoorData[eAutoDoor].openRate = 0.55
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_TWO_LOCATES)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_REVERSE_OPEN_RATIO)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_DOOR_FULLY_CLOSED)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_LINKED_DOORS)
eAutoDoor = AUTODOOR_AIRPORT_ALT_GATES_L
g_sAutoDoorData[eAutoDoor].doorID = HASH("AUTODOOR_AIRPORT_ALT_GATES_L")
g_sAutoDoorData[eAutoDoor].coords = <<-984.08, -2348.40, 12.94>>
g_sAutoDoorData[eAutoDoor].model = prop_facgate_01
g_sAutoDoorData[eAutoDoor].checkRange = 18*18
g_sAutoDoorData[eAutoDoor].blockedRange = 3*3
g_sAutoDoorData[eAutoDoor].activationLocate1Width = 15.25
g_sAutoDoorData[eAutoDoor].activationLocate1PosA = <<-979.238770,-2341.410889,11.924736>>
g_sAutoDoorData[eAutoDoor].activationLocate1PosB = <<-993.525146,-2333.146973,20.424732>>
g_sAutoDoorData[eAutoDoor].activationLocate2Width = 15.25
g_sAutoDoorData[eAutoDoor].activationLocate2PosA = <<-984.464417,-2357.319580,11.924736>>
g_sAutoDoorData[eAutoDoor].activationLocate2PosB = <<-1002.451172,-2346.988281,20.444717>>
g_sAutoDoorData[eAutoDoor].openRate = 0.55
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_TWO_LOCATES)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_REVERSE_OPEN_RATIO)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_DOOR_FULLY_CLOSED)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_LINKED_DOORS)
eAutoDoor = AUTODOOR_AIRPORT_ALT_GATES_R
g_sAutoDoorData[eAutoDoor].doorID = HASH("AUTODOOR_AIRPORT_ALT_GATES_R")
g_sAutoDoorData[eAutoDoor].coords = <<-994.50, -2341.65, 12.94>>
g_sAutoDoorData[eAutoDoor].model = prop_facgate_01
g_sAutoDoorData[eAutoDoor].checkRange = 18*18
g_sAutoDoorData[eAutoDoor].blockedRange = 3*3
g_sAutoDoorData[eAutoDoor].activationLocate1Width = 15.25
g_sAutoDoorData[eAutoDoor].activationLocate1PosA = <<-979.238770,-2341.410889,11.924736>>
g_sAutoDoorData[eAutoDoor].activationLocate1PosB = <<-993.525146,-2333.146973,20.424732>>
g_sAutoDoorData[eAutoDoor].activationLocate2Width = 15.25
g_sAutoDoorData[eAutoDoor].activationLocate2PosA = <<-984.464417,-2357.319580,11.924736>>
g_sAutoDoorData[eAutoDoor].activationLocate2PosB = <<-1002.451172,-2346.988281,20.444717>>
g_sAutoDoorData[eAutoDoor].openRate = 0.55
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_TWO_LOCATES)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_REVERSE_OPEN_RATIO)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_DOOR_FULLY_CLOSED)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_LINKED_DOORS)
eAutoDoor = AUTODOOR_HAYES_GARAGE
g_sAutoDoorData[eAutoDoor].doorID = HASH("AUTODOOR_HAYES_GARAGE")
g_sAutoDoorData[eAutoDoor].coords = <<484.56, -1315.57, 30.20>>
g_sAutoDoorData[eAutoDoor].model = prop_com_gar_door_01
g_sAutoDoorData[eAutoDoor].checkRange = 18*18
g_sAutoDoorData[eAutoDoor].blockedRange = 3*3
g_sAutoDoorData[eAutoDoor].activationLocate1Width = 6.5
g_sAutoDoorData[eAutoDoor].activationLocate1PosA = <<486.405701,-1311.665405,27.751633>>
g_sAutoDoorData[eAutoDoor].activationLocate1PosB = <<488.912354,-1316.529053,31.652016>>
g_sAutoDoorData[eAutoDoor].activationLocate2Width = 8.5
g_sAutoDoorData[eAutoDoor].activationLocate2PosA = <<482.318695,-1319.806641,26.918484>>
g_sAutoDoorData[eAutoDoor].activationLocate2PosB = <<478.041046,-1311.510742,31.952971>>
g_sAutoDoorData[eAutoDoor].openRate = 0.55
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_TWO_LOCATES)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_REVERSE_OPEN_RATIO)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_DOOR_FULLY_CLOSED)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_LINKED_DOORS)
eAutoDoor = AUTODOOR_DRAINSERVICE_L
g_sAutoDoorData[eAutoDoor].doorID = HASH("AUTODOOR_DRAINSERVICE_L")
g_sAutoDoorData[eAutoDoor].coords = <<451.81, -1994.17, 22.14>>
g_sAutoDoorData[eAutoDoor].model = prop_facgate_01
g_sAutoDoorData[eAutoDoor].checkRange = 18*18
g_sAutoDoorData[eAutoDoor].blockedRange = 3*3
g_sAutoDoorData[eAutoDoor].activationLocate1Width = 10.0
g_sAutoDoorData[eAutoDoor].activationLocate1PosA = <<444.066925,-1993.736206,21.109921>>
g_sAutoDoorData[eAutoDoor].activationLocate1PosB = <<459.423035,-2010.025513,26.195147>>
g_sAutoDoorData[eAutoDoor].activationLocate2Width = 10.0
g_sAutoDoorData[eAutoDoor].activationLocate2PosA = <<452.251373,-1987.255249,21.189449>>
g_sAutoDoorData[eAutoDoor].activationLocate2PosB = <<466.811707,-2002.877563,25.898800>>
g_sAutoDoorData[eAutoDoor].openRate = 0.30
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_TWO_LOCATES)
CLEAR_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_REVERSE_OPEN_RATIO)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_DOOR_FULLY_CLOSED)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_LINKED_DOORS)
eAutoDoor = AUTODOOR_DRAINSERVICE_R
g_sAutoDoorData[eAutoDoor].doorID = HASH("AUTODOOR_DRAINSERVICE_R")
g_sAutoDoorData[eAutoDoor].coords = <<460.06, -2003.11, 22.14>>
g_sAutoDoorData[eAutoDoor].model = prop_facgate_01b
g_sAutoDoorData[eAutoDoor].checkRange = 18*18
g_sAutoDoorData[eAutoDoor].blockedRange = 3*3
g_sAutoDoorData[eAutoDoor].activationLocate1Width = 10.0
g_sAutoDoorData[eAutoDoor].activationLocate1PosA = <<444.066925,-1993.736206,21.109921>>
g_sAutoDoorData[eAutoDoor].activationLocate1PosB = <<459.423035,-2010.025513,26.195147>>
g_sAutoDoorData[eAutoDoor].activationLocate2Width = 10.0
g_sAutoDoorData[eAutoDoor].activationLocate2PosA = <<452.251373,-1987.255249,21.189449>>
g_sAutoDoorData[eAutoDoor].activationLocate2PosB = <<466.811707,-2002.877563,25.898800>>
g_sAutoDoorData[eAutoDoor].openRate = 0.30
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_TWO_LOCATES)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_REVERSE_OPEN_RATIO)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_DOOR_FULLY_CLOSED)
SET_BIT(g_sAutoDoorData[eAutoDoor].settingsBitset, BIT_AUTODOOR_LINKED_DOORS)
ENDPROC
PROC RESET_ALL_AUTOMATIC_DOOR_REGISTERED_PEDS()
INT iDoorIndex
INT iRegisteredPedIndex
REPEAT AUTODOOR_MAX iDoorIndex
REPEAT g_sAutoDoorData[iDoorIndex].registeredPedCount iRegisteredPedIndex
g_sAutoDoorData[iDoorIndex].registeredPed[iRegisteredPedIndex] = INT_TO_NATIVE(PED_INDEX, 0)
ENDREPEAT
g_sAutoDoorData[iDoorIndex].registeredPedCount = 0
ENDREPEAT
CPRINTLN(DEBUG_DOOR, "<AUTODOOR> Unregistered all peds for all doors.")
ENDPROC
FUNC INTERIOR_DATA_STRUCT GET_INTERIOR_DATA(INTERIOR_NAME_ENUM eInterior)
INTERIOR_DATA_STRUCT structInteriorData
MP_PROP_OFFSET_STRUCT tempStruct
SWITCH eInterior
CASE INTERIOR_V_COMEDY
structInteriorData.vPos = <<-447.4833, 280.3197, 77.5215>>
structInteriorData.sInteriorName = "v_comedy"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_PSYCHEOFFICE
structInteriorData.vPos = <<-1906.7858, -573.7576, 19.0773>>
structInteriorData.sInteriorName = "v_psycheoffice"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_RANCH
structInteriorData.vPos = <<1399.9730, 1148.7559, 113.3336>>
structInteriorData.sInteriorName = "v_ranch"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_RECYCLE
structInteriorData.vPos = <<-598.6379, -1608.3986, 26.0108>>
structInteriorData.sInteriorName = "v_recycle"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_ROCKCLUB
structInteriorData.vPos = <<-556.5089, 286.3181, 81.1763>>
structInteriorData.sInteriorName = "v_rockclub"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_JANITOR
structInteriorData.vPos = <<-111.7116, -11.9120, 69.5196>>
structInteriorData.sInteriorName = "v_janitor"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_LESTERS
structInteriorData.vPos = <<1274.9338, -1714.7256, 53.7715>>
structInteriorData.sInteriorName = "v_lesters"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_TORTURE
structInteriorData.vPos = <<147.4330, -2201.3704, 3.6880>>
structInteriorData.sInteriorName = "v_torture"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CINEMA_VINEWOOD
structInteriorData.vPos = <<320.9934, 265.2515, 82.1221>>
structInteriorData.sInteriorName = "v_cinema"
structInteriorData.sDebugName = "v_cinema (Vinewood)"
BREAK
CASE INTERIOR_V_CINEMA_MORNINGWOOD
structInteriorData.vPos = << -1425.5645, -244.3000, 15.8053 >>
structInteriorData.sInteriorName = "v_cinema"
structInteriorData.sDebugName = "v_cinema (Morningwood)"
BREAK
CASE INTERIOR_V_CINEMA_DOWNTOWN
structInteriorData.vPos = << 377.1530, -717.5670, 10.0536 >>
structInteriorData.sInteriorName = "v_cinema"
structInteriorData.sDebugName = "v_cinema (Downtown)"
BREAK
CASE INTERIOR_V_EPSILONISM
structInteriorData.vPos = <<245.1564, 370.2110, 104.7382>>
structInteriorData.sInteriorName = "v_epsilonism"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_GARAGES
structInteriorData.vPos = <<173.1176, -1003.2789, -99.9999>>
structInteriorData.sInteriorName = "v_garages"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_GARAGEM
structInteriorData.vPos = <<199.9715, -999.6678, -100.0000>>
structInteriorData.sInteriorName = "v_garagem"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_GARAGEL
structInteriorData.vPos = <<228.6058, -992.0537, -99.9999>>
structInteriorData.sInteriorName = "v_garagel"
structInteriorData.sInteriorName = "hei_dlc_garage_high_new"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_SHERIFF
structInteriorData.vPos = <<1854.2538, 3686.7385, 33.2671>>
structInteriorData.sInteriorName = "v_sheriff"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_SHERIFF2
structInteriorData.vPos = <<-444.8907, 6013.5869, 30.7164>>
structInteriorData.sInteriorName = "v_sheriff2"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_LAB
structInteriorData.vPos = <<3522.8452, 3707.9653, 19.9918>>
structInteriorData.sInteriorName = "v_lab"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_SWEAT
structInteriorData.vPos = <<717.2994, -974.4271, 23.9142>>
structInteriorData.sInteriorName = "v_sweat"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_SWEATEMPTY
structInteriorData.vPos = <<717.2990, -974.4271, 23.9142>>
structInteriorData.sInteriorName = "v_sweatempty"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_FARMHOUSE
structInteriorData.vPos = <<2449.7852, 4983.8247, 45.8106>>
structInteriorData.sInteriorName = "v_farmhouse"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_FOUNDRY
structInteriorData.vPos = <<1087.1952, -1988.4449, 28.6490>>
structInteriorData.sInteriorName = "v_foundry"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_ABATTOIR
structInteriorData.vPos = <<982.2330, -2160.3816, 28.4761>>
structInteriorData.sInteriorName = "v_abattoir"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CHOPSHOP
structInteriorData.vPos = <<479.0568, -1316.8253, 28.2038>>
structInteriorData.sInteriorName = "v_chopshop"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_58_SOL_OFFICE
structInteriorData.vPos = <<-1005.6632, -478.3461, 49.0265>>
structInteriorData.sInteriorName = "v_58_sol_office"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
// MP apartments
CASE INTERIOR_V_APARTMENT_HIGH_1
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_HIGH_APT_1)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>//<<-791.8,338.5, 153.8>>
#IF NOT USE_TU_CHANGES
structInteriorData.sInteriorName = "v_apartment_high"
structInteriorData.sDebugName = "v_apartment_high (1)"
#ENDIF
#IF USE_TU_CHANGES
structInteriorData.sInteriorName = "hei_dlc_apart_high_new"
structInteriorData.sDebugName = "hei_dlc_apart_high_new (1)"
#ENDIF
BREAK
CASE INTERIOR_V_APARTMENT_HIGH_2
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_HIGH_APT_2)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
#IF NOT USE_TU_CHANGES
structInteriorData.sInteriorName = "v_apartment_high"
structInteriorData.sDebugName = "v_apartment_high (2)"
#ENDIF
#IF USE_TU_CHANGES
structInteriorData.sInteriorName = "hei_dlc_apart_high_new"
structInteriorData.sDebugName = "hei_dlc_apart_high_new (2)"
#ENDIF
BREAK
CASE INTERIOR_V_APARTMENT_HIGH_3
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_HIGH_APT_3)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
#IF NOT USE_TU_CHANGES
structInteriorData.sInteriorName = "v_apartment_high"
structInteriorData.sDebugName = "v_apartment_high (3)"
#ENDIF
#IF USE_TU_CHANGES
structInteriorData.sInteriorName = "hei_dlc_apart_high_new"
structInteriorData.sDebugName = "hei_dlc_apart_high_new (3)"
#ENDIF
BREAK
CASE INTERIOR_V_APARTMENT_HIGH_4
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_HIGH_APT_4)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>//<<-764.7, 319.2, 170.6>>
#IF NOT USE_TU_CHANGES
structInteriorData.sInteriorName = "v_apartment_high"
structInteriorData.sDebugName = "v_apartment_high (4)"
#ENDIF
#IF USE_TU_CHANGES
structInteriorData.sInteriorName = "hei_dlc_apart_high_new"
structInteriorData.sDebugName = "hei_dlc_apart_high_new (4)"
#ENDIF
BREAK
CASE INTERIOR_V_APARTMENT_HIGH_5
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_HIGH_APT_5)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>//<<-260.9, -953.6,71.0>>
#IF NOT USE_TU_CHANGES
structInteriorData.sInteriorName = "v_apartment_high"
structInteriorData.sDebugName = "v_apartment_high (5)"
#ENDIF
#IF USE_TU_CHANGES
structInteriorData.sInteriorName = "hei_dlc_apart_high_new"
structInteriorData.sDebugName = "hei_dlc_apart_high_new (5)"
#ENDIF
BREAK
CASE INTERIOR_V_APARTMENT_HIGH_6
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_HIGH_APT_6)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
#IF NOT USE_TU_CHANGES
structInteriorData.sInteriorName = "v_apartment_high"
structInteriorData.sDebugName = "v_apartment_high (6)"
#ENDIF
#IF USE_TU_CHANGES
structInteriorData.sInteriorName = "hei_dlc_apart_high_new"
structInteriorData.sDebugName = "hei_dlc_apart_high_new (6)"
#ENDIF
BREAK
CASE INTERIOR_V_APARTMENT_HIGH_7
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_HIGH_APT_7)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
#IF NOT USE_TU_CHANGES
structInteriorData.sInteriorName = "v_apartment_high"
structInteriorData.sDebugName = "v_apartment_high (7)"
#ENDIF
#IF USE_TU_CHANGES
structInteriorData.sInteriorName = "hei_dlc_apart_high_new"
structInteriorData.sDebugName = "hei_dlc_apart_high_new (7)"
#ENDIF
BREAK
CASE INTERIOR_V_APARTMENT_HIGH_8
#IF USE_SP_DLC
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_HIGH_APT_8)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>// <<-1468,-529.9,50.7>>
#ENDIF
#IF NOT USE_SP_DLC
#IF NOT USE_TU_CHANGES
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_HIGH_APT_8)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>// <<-1468,-529.9,50.7>>
#ENDIF
#IF USE_TU_CHANGES
structInteriorData.vPos = mpProperties[PROPERTY_HIGH_APT_8].house.buzzerEnter.vInsidePlayerPos+<<0,0,1>>
//structInteriorData.vPos = <<-27.0,-582.5,89.9>>
#ENDIF
#ENDIF
#IF NOT USE_TU_CHANGES
structInteriorData.sInteriorName = "v_apartment_high"
structInteriorData.sDebugName = "v_apartment_high (8)"
#ENDIF
#IF USE_TU_CHANGES
structInteriorData.sInteriorName = "hei_dlc_apart_high_new"
structInteriorData.sDebugName = "hei_dlc_apart_high_new (8)"
#ENDIF
BREAK
CASE INTERIOR_V_APARTMENT_HIGH_9
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_HIGH_APT_9)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
#IF NOT USE_TU_CHANGES
structInteriorData.sInteriorName = "v_apartment_high"
structInteriorData.sDebugName = "v_apartment_high (9)"
#ENDIF
#IF USE_TU_CHANGES
structInteriorData.sInteriorName = "hei_dlc_apart_high_new"
structInteriorData.sDebugName = "hei_dlc_apart_high_new (9)"
#ENDIF
BREAK
CASE INTERIOR_V_APARTMENT_HIGH_10
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_HIGH_APT_10)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
#IF NOT USE_TU_CHANGES
structInteriorData.sInteriorName = "v_apartment_high"
structInteriorData.sDebugName = "v_apartment_high (10)"
#ENDIF
#IF USE_TU_CHANGES
structInteriorData.sInteriorName = "hei_dlc_apart_high_new"
structInteriorData.sDebugName = "hei_dlc_apart_high_new (10)"
#ENDIF
BREAK
CASE INTERIOR_V_APARTMENT_HIGH_11
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_HIGH_APT_11)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
#IF NOT USE_TU_CHANGES
structInteriorData.sInteriorName = "v_apartment_high"
structInteriorData.sDebugName = "v_apartment_high (11)"
#ENDIF
#IF USE_TU_CHANGES
structInteriorData.sInteriorName = "hei_dlc_apart_high_new"
structInteriorData.sDebugName = "hei_dlc_apart_high_new (11)"
#ENDIF
BREAK
CASE INTERIOR_V_APARTMENT_HIGH_12
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_HIGH_APT_12)
#IF NOT USE_TU_CHANGES
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
#ENDIF // NOT USE_TU_CHANGES
#IF USE_TU_CHANGES
structInteriorData.vPos = <<-20.1,-580.8,91.3>>
//structInteriorData.vPos = <<-27.0,-582.5,89.9>>
#ENDIF // USE_TU_CHANGES
#IF NOT USE_TU_CHANGES
structInteriorData.sInteriorName = "v_apartment_high"
structInteriorData.sDebugName = "v_apartment_high (12)"
#ENDIF
#IF USE_TU_CHANGES
structInteriorData.sInteriorName = "hei_dlc_apart_high_new"
structInteriorData.sDebugName = "hei_dlc_apart_high_new (12)"
#ENDIF
BREAK
CASE INTERIOR_V_APARTMENT_HIGH_13
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_HIGH_APT_13)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
#IF NOT USE_TU_CHANGES
structInteriorData.sInteriorName = "v_apartment_high"
structInteriorData.sDebugName = "v_apartment_high (13)"
#ENDIF
#IF USE_TU_CHANGES
structInteriorData.sInteriorName = "hei_dlc_apart_high_new"
structInteriorData.sDebugName = "hei_dlc_apart_high_new (13)"
#ENDIF
BREAK
CASE INTERIOR_V_APARTMENT_HIGH_14
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_HIGH_APT_14)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
#IF NOT USE_TU_CHANGES
structInteriorData.sInteriorName = "v_apartment_high"
structInteriorData.sDebugName = "v_apartment_high (14)"
#ENDIF
#IF USE_TU_CHANGES
structInteriorData.sInteriorName = "hei_dlc_apart_high_new"
structInteriorData.sDebugName = "hei_dlc_apart_high_new (14)"
#ENDIF
BREAK
CASE INTERIOR_V_APARTMENT_HIGH_15
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_HIGH_APT_15)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
#IF NOT USE_TU_CHANGES
structInteriorData.sInteriorName = "v_apartment_high"
structInteriorData.sDebugName = "v_apartment_high (15)"
#ENDIF
#IF USE_TU_CHANGES
structInteriorData.sInteriorName = "hei_dlc_apart_high_new"
structInteriorData.sDebugName = "hei_dlc_apart_high_new (15)"
#ENDIF
BREAK
CASE INTERIOR_V_APARTMENT_HIGH_16
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_HIGH_APT_16)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
#IF NOT USE_TU_CHANGES
structInteriorData.sInteriorName = "v_apartment_high"
structInteriorData.sDebugName = "v_apartment_high (16)"
#ENDIF
#IF USE_TU_CHANGES
structInteriorData.sInteriorName = "hei_dlc_apart_high_new"
structInteriorData.sDebugName = "hei_dlc_apart_high_new (16)"
#ENDIF
BREAK
CASE INTERIOR_V_APARTMENT_HIGH_17
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_HIGH_APT_17)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
#IF NOT USE_TU_CHANGES
structInteriorData.sInteriorName = "v_apartment_high"
structInteriorData.sDebugName = "v_apartment_high (17)"
#ENDIF
#IF USE_TU_CHANGES
structInteriorData.sInteriorName = "hei_dlc_apart_high_new"
structInteriorData.sDebugName = "hei_dlc_apart_high_new (17)"
#ENDIF
BREAK
CASE INTERIOR_V_APARTMENT_HIGH_18
structInteriorData.vPos = <<-470.3754, -698.5207, 51.5276>>
#IF NOT USE_TU_CHANGES
structInteriorData.sInteriorName = "v_apartment_high"
structInteriorData.sDebugName = "v_apartment_high (18)"
#ENDIF
#IF USE_TU_CHANGES
structInteriorData.sInteriorName = "hei_dlc_apart_high_new"
structInteriorData.sDebugName = "hei_dlc_apart_high_new (18)"
#ENDIF
BREAK
CASE INTERIOR_V_APARTMENT_HIGH_19
structInteriorData.vPos = <<-460.6133, -691.5562, 69.9067>>
#IF NOT USE_TU_CHANGES
structInteriorData.sInteriorName = "v_apartment_high"
structInteriorData.sDebugName = "v_apartment_high (19)"
#ENDIF
#IF USE_TU_CHANGES
structInteriorData.sInteriorName = "hei_dlc_apart_high_new"
structInteriorData.sDebugName = "hei_dlc_apart_high_new (19)"
#ENDIF
BREAK
CASE INTERIOR_V_APARTMENT_HIGH_20
structInteriorData.vPos = <<300.6330, -997.4288, -99.9727>>
#IF NOT USE_TU_CHANGES
structInteriorData.sInteriorName = "v_apartment_high"
structInteriorData.sDebugName = "v_apartment_high (20)"
#ENDIF
#IF USE_TU_CHANGES
structInteriorData.sInteriorName = "hei_dlc_apart_high_new"
structInteriorData.sDebugName = "hei_dlc_apart_high_new (20)"
#ENDIF
BREAK
#IF USE_TU_CHANGES
// In case anyone ever wondered: The locations for interiors are exactly the same (i.e. taken from) as in function
// GET_BASE_INTERIOR_LOCATION
// from net_realty_details.sch
CASE INTERIOR_V_APARTMENT_STILT_1_BASE_B
structInteriorData.vPos = <<-171.3969, 494.2671, 134.4935>>
structInteriorData.sInteriorName = "apa_v_mp_stilts_b"
structInteriorData.sDebugName = "apa_v_mp_stilts_b (1)"
BREAK
CASE INTERIOR_V_APARTMENT_STILT_2_B
structInteriorData.vPos = <<339.4982, 434.0887, 146.2206>>
structInteriorData.sInteriorName = "apa_v_mp_stilts_b"
structInteriorData.sDebugName = "apa_v_mp_stilts_b (2)"
BREAK
CASE INTERIOR_V_APARTMENT_STILT_3_B
structInteriorData.vPos = <<-761.3884, 615.7333, 140.9805>>
structInteriorData.sInteriorName = "apa_v_mp_stilts_b"
structInteriorData.sDebugName = "apa_v_mp_stilts_b (3)"
BREAK
CASE INTERIOR_V_APARTMENT_STILT_4_B
structInteriorData.vPos = <<-678.1752, 591.0076, 142.2196>>
structInteriorData.sInteriorName = "apa_v_mp_stilts_b"
structInteriorData.sDebugName = "apa_v_mp_stilts_b (4)"
BREAK
CASE INTERIOR_V_APARTMENT_STILT_5_BASE_A
structInteriorData.vPos = <<120.0541, 553.7930, 181.0943>>
structInteriorData.sInteriorName = "apa_v_mp_stilts_a"
structInteriorData.sDebugName = "apa_v_mp_stilts_a (5)"
BREAK
CASE INTERIOR_V_APARTMENT_STILT_7_A
structInteriorData.vPos = <<-571.4039, 655.2008, 142.6293>>
structInteriorData.sInteriorName = "apa_v_mp_stilts_a"
structInteriorData.sDebugName = "apa_v_mp_stilts_a (7)"
BREAK
CASE INTERIOR_V_APARTMENT_STILT_8_A
structInteriorData.vPos = <<-742.2565, 587.6547, 143.0577>>
structInteriorData.sInteriorName = "apa_v_mp_stilts_a"
structInteriorData.sDebugName = "apa_v_mp_stilts_a (8)"
BREAK
CASE INTERIOR_V_APARTMENT_STILT_10_A
structInteriorData.vPos = <<-857.2222, 685.0510, 149.6502>>
structInteriorData.sInteriorName = "apa_v_mp_stilts_a"
structInteriorData.sDebugName = "apa_v_mp_stilts_a (10)"
BREAK
CASE INTERIOR_V_APARTMENT_STILT_12_A
structInteriorData.vPos = <<-1287.6498, 443.2707, 94.6919>>
structInteriorData.sInteriorName = "apa_v_mp_stilts_a"
structInteriorData.sDebugName = "apa_v_mp_stilts_a (12)"
BREAK
CASE INTERIOR_V_APARTMENT_STILT_13_A
structInteriorData.vPos = <<374.2012, 416.9688, 142.5991>>
structInteriorData.sInteriorName = "apa_v_mp_stilts_a"
structInteriorData.sDebugName = "apa_v_mp_stilts_a (13)"
BREAK
#ENDIF
CASE INTERIOR_DT1_03_CARPARK
structInteriorData.vPos = <<-16.295849, -684.038513, 33.508316>>
structInteriorData.sInteriorName = "dt1_03_carpark"
structInteriorData.sDebugName = "dt1_03_carpark"
BREAK
CASE INTERIOR_V_APART_MIDSPAZ
structInteriorData.vPos = <<341.1, -1000.0, -99.2>>
structInteriorData.sInteriorName = "v_apart_midspaz"
structInteriorData.sDebugName = "v_apart_midspaz"
BREAK
CASE INTERIOR_V_GARAGEM_SP
structInteriorData.vPos = <<199.971558, -1018.954163, -100.000000>>
structInteriorData.sInteriorName = "v_garagem_sp"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_BAHAMA
structInteriorData.vPos = <<-1388.0013, -618.4197, 30.8196>>
structInteriorData.sInteriorName = "v_bahama"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
#IF NOT USE_TU_CHANGES
DEFAULT
CPRINTLN(DEBUG_BUILDING, "GET_INTERIOR_DATA() ERROR - INTERIOR NOT FOUND:", ENUM_TO_INT(eInterior), ".")
BREAK
#ENDIF
ENDSWITCH
#IF USE_TU_CHANGES
SWITCH eInterior
CASE INTERIOR_V_CUSTOM_A_1
structInteriorData.vPos = <<-787.7805, 334.9232, 215.8384>>
structInteriorData.sInteriorName = "apa_v_mp_h_01"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CUSTOM_A_2
structInteriorData.vPos = <<-787.7805, 334.9232, 215.8384>>
structInteriorData.sInteriorName = "apa_v_mp_h_02"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CUSTOM_A_3
structInteriorData.vPos = <<-787.7805, 334.9232, 215.8384>>
structInteriorData.sInteriorName = "apa_v_mp_h_03"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CUSTOM_A_4
structInteriorData.vPos = <<-787.7805, 334.9232, 215.8384>>
structInteriorData.sInteriorName = "apa_v_mp_h_04"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CUSTOM_A_5
structInteriorData.vPos = <<-787.7805, 334.9232, 215.8384>>
structInteriorData.sInteriorName = "apa_v_mp_h_05"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CUSTOM_A_6
structInteriorData.vPos = <<-787.7805, 334.9232, 215.8384>>
structInteriorData.sInteriorName = "apa_v_mp_h_06"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CUSTOM_A_7
structInteriorData.vPos = <<-787.7805, 334.9232, 215.8384>>
structInteriorData.sInteriorName = "apa_v_mp_h_07"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CUSTOM_A_8
structInteriorData.vPos = <<-787.7805, 334.9232, 215.8384>>
structInteriorData.sInteriorName = "apa_v_mp_h_08"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CUSTOM_B_1
structInteriorData.vPos = <<-773.2258, 322.8252, 194.8862>>
structInteriorData.sInteriorName = "apa_v_mp_h_01"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CUSTOM_B_2
structInteriorData.vPos = <<-773.2258, 322.8252, 194.8862>>
structInteriorData.sInteriorName = "apa_v_mp_h_02"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CUSTOM_B_3
structInteriorData.vPos = <<-773.2258, 322.8252, 194.8862>>
structInteriorData.sInteriorName = "apa_v_mp_h_03"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CUSTOM_B_4
structInteriorData.vPos = <<-773.2258, 322.8252, 194.8862>>
structInteriorData.sInteriorName = "apa_v_mp_h_04"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CUSTOM_B_5
structInteriorData.vPos = <<-773.2258, 322.8252, 194.8862>>
structInteriorData.sInteriorName = "apa_v_mp_h_05"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CUSTOM_B_6
structInteriorData.vPos = <<-773.2258, 322.8252, 194.8862>>
structInteriorData.sInteriorName = "apa_v_mp_h_06"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CUSTOM_B_7
structInteriorData.vPos = <<-773.2258, 322.8252, 194.8862>>
structInteriorData.sInteriorName = "apa_v_mp_h_07"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CUSTOM_B_8
structInteriorData.vPos = <<-773.2258, 322.8252, 194.8862>>
structInteriorData.sInteriorName = "apa_v_mp_h_08"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CUSTOM_C_1
structInteriorData.vPos = <<-787.7805, 334.9232, 186.1134>>
structInteriorData.sInteriorName = "apa_v_mp_h_01"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CUSTOM_C_2
structInteriorData.vPos = <<-787.7805, 334.9232, 186.1134>>
structInteriorData.sInteriorName = "apa_v_mp_h_02"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CUSTOM_C_3
structInteriorData.vPos = <<-787.7805, 334.9232, 186.1134>>
structInteriorData.sInteriorName = "apa_v_mp_h_03"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CUSTOM_C_4
structInteriorData.vPos = <<-787.7805, 334.9232, 186.1134>>
structInteriorData.sInteriorName = "apa_v_mp_h_04"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CUSTOM_C_5
structInteriorData.vPos = <<-787.7805, 334.9232, 186.1134>>
structInteriorData.sInteriorName = "apa_v_mp_h_05"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CUSTOM_C_6
structInteriorData.vPos = <<-787.7805, 334.9232, 186.1134>>
structInteriorData.sInteriorName = "apa_v_mp_h_06"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CUSTOM_C_7
structInteriorData.vPos = <<-787.7805, 334.9232, 186.1134>>
structInteriorData.sInteriorName = "apa_v_mp_h_07"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CUSTOM_C_8
structInteriorData.vPos = <<-787.7805, 334.9232, 186.1134>>
structInteriorData.sInteriorName = "apa_v_mp_h_08"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
//Office 1
CASE INTERIOR_V_OFFICE_1_1
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_1)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_01a_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_1_2
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_1)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_01b_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_1_3
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_1)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_01c_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_1_4
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_1)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_02a_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_1_5
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_1)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_02b_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_1_6
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_1)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_02c_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_1_7
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_1)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_03a_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_1_8
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_1)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_03b_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_1_9
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_1)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_03c_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
//Office 2
CASE INTERIOR_V_OFFICE_2_1
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_2_BASE)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_01a_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_2_2
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_2_BASE)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_01b_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_2_3
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_2_BASE)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_01c_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_2_4
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_2_BASE)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_02a_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_2_5
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_2_BASE)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_02b_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_2_6
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_2_BASE)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_02c_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_2_7
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_2_BASE)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_03a_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_2_8
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_2_BASE)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_03b_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_2_9
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_2_BASE)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_03c_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
//Office 3
CASE INTERIOR_V_OFFICE_3_1
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_3)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_01a_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_3_2
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_3)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_01b_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_3_3
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_3)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_01c_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_3_4
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_3)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_02a_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_3_5
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_3)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_02b_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_3_6
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_3)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_02c_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_3_7
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_3)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_03a_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_3_8
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_3)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_03b_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_3_9
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_3)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_03c_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
//Office 4
CASE INTERIOR_V_OFFICE_4_1
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_4)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_01a_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_4_2
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_4)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_01b_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_4_3
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_4)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_01c_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_4_4
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_4)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_02a_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_4_5
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_4)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_02b_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_4_6
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_4)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_02c_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_4_7
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_4)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_03a_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_4_8
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_4)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_03b_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_4_9
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_4)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "ex_int_office_03c_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CLUBHOUSE_1_1
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_CLUBHOUSE_1_BASE_A)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "bkr_biker_dlc_int_01"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CLUBHOUSE_7_1
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_CLUBHOUSE_7_BASE_B)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "bkr_biker_dlc_int_02"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_1_GAR_1
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_1_GARAGE_LVL1)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "imp_impexp_int_01"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_1_GAR_2
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_1_GARAGE_LVL2)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "imp_impexp_int_01"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_1_GAR_3
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_1_GARAGE_LVL3)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "imp_impexp_int_01"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_2_GAR_1
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_2_GARAGE_LVL1)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "imp_impexp_int_01"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_2_GAR_2
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_2_GARAGE_LVL2)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "imp_impexp_int_01"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_2_GAR_3
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_2_GARAGE_LVL3)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "imp_impexp_int_01"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_3_GAR_1
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_3_GARAGE_LVL1)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "imp_impexp_int_01"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_3_GAR_2
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_3_GARAGE_LVL2)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "imp_impexp_int_01"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_3_GAR_3
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_3_GARAGE_LVL3)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "imp_impexp_int_01"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_4_GAR_1
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_4_GARAGE_LVL1)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "imp_impexp_int_01"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_4_GAR_2
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_4_GARAGE_LVL2)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "imp_impexp_int_01"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_4_GAR_3
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_4_GARAGE_LVL3)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "imp_impexp_int_01"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_1_MOD
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_1_GARAGE_LVL1,TRUE)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "imp_imptexp_mod_int_01"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_2_MOD
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_2_GARAGE_LVL1,TRUE)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "imp_imptexp_mod_int_01"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_3_MOD
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_3_GARAGE_LVL1,TRUE)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "imp_imptexp_mod_int_01"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_4_MOD
tempStruct = GET_BASE_INTERIOR_LOCATION(PROPERTY_OFFICE_4_GARAGE_LVL1,TRUE)
structInteriorData.vPos = tempStruct.vLoc +<<0,0,1>>
structInteriorData.sInteriorName = "imp_imptexp_mod_int_01"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_BUNKER
structInteriorData.vPos = <<938.307678, -3196.111572, -100.000000>>
structInteriorData.sInteriorName = "gr_grdlc_int_02"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_SUB
structInteriorData.vPos = <<512.5, 4852.0, -62.6>>
structInteriorData.sInteriorName = "xm_x17dlc_int_sub"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_IAA
structInteriorData.vPos = <<2047.0, 2942.0, -61.9>>
structInteriorData.sInteriorName = "xm_x17dlc_int_facility"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_LIFEINVADER
structInteriorData.vPos = <<-1047.5997, -232.3503, 38.0135>>
structInteriorData.sInteriorName = "v_faceoffice"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_FOUNDRY
structInteriorData.vPos = <<1100, -2004, 37>>
structInteriorData.sInteriorName = "v_foundry"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_SILO_1
structInteriorData.vPos = <<361, 6306, -159>>
structInteriorData.sInteriorName = "xm_x17dlc_int_silo_01"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_SILO_2
structInteriorData.vPos = <<305, 6298, -160>>
structInteriorData.sInteriorName = "xm_x17dlc_int_silo_02"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_SILO_3
structInteriorData.vPos = <<244, 6163, -159>>
structInteriorData.sInteriorName = "xm_x17dlc_int_lab"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_SERVER_FARM
structInteriorData.vPos = <<2168, 2920, -84>>
structInteriorData.sInteriorName = "xm_x17dlc_int_facility2"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_SILO_TUNNEL
structInteriorData.vPos = <<446, 5922, -158>>
structInteriorData.sInteriorName = "xm_x17dlc_int_bse_tun"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_SILO_LOOP
structInteriorData.vPos = <<252, 5972, -156>>
structInteriorData.sInteriorName = "xm_x17dlc_int_base_loop"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_SILO_ENTRANCE
structInteriorData.vPos = <<682, 5959, -152>>
structInteriorData.sInteriorName = "xm_x17dlc_int_base_ent"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_SILO_BASE
structInteriorData.vPos = <<551, 5939, -158>>
structInteriorData.sInteriorName = "xm_x17dlc_int_base"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OSPREY
structInteriorData.vPos = <<520.0001, 4750.0000, -70.0000>>
structInteriorData.sInteriorName = "xm_x17dlc_int_01"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_HANGAR
structInteriorData.vPos = <<-1266.8022, -3014.8491, -49.4903>>
structInteriorData.sInteriorName = "sm_smugdlc_int_01"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_IMPORT_WAREHOUSE
structInteriorData.vPos = <<974.9203, -3000.0647, -40.6470>>
structInteriorData.sInteriorName = "imp_impexp_intwaremed"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_WAREHOUSE_UNDRGRND_FACILITY
structInteriorData.vPos = <<969.5376, -3000.4111, -48.6470>>
structInteriorData.sInteriorName = "imp_impexp_int_02"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_SPECIAL_CARGO_WAREHOUSE_S
structInteriorData.vPos = <<1094.9966, -3100.0117, -39.9999>>
structInteriorData.sInteriorName = "ex_int_warehouse_s_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_SPECIAL_CARGO_WAREHOUSE_M
structInteriorData.vPos = <<1059.9949, -3100.0000, -39.9999>>
structInteriorData.sInteriorName = "ex_int_warehouse_m_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_SPECIAL_CARGO_WAREHOUSE_L
structInteriorData.vPos = <<1010.0083, -3100.0000, -39.9999>>
structInteriorData.sInteriorName = "ex_int_warehouse_l_dlc"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_STILT_APARTMENT
structInteriorData.vPos = <<372.6707, 405.5235, 144.5326>>
structInteriorData.sInteriorName = "apa_v_mp_stilts_a"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_HIGH_END_APARTMENT
structInteriorData.vPos = <<-282.0588, -955.1700, 85.3036>>
structInteriorData.sInteriorName = "hei_dlc_apart_high_new"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_MEDIUM_END_APARTMENT
structInteriorData.vPos = <<342.7946, -997.4225, -99.7444>>
structInteriorData.sInteriorName = "v_apart_midspaz"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_LOW_END_APARTMENT
structInteriorData.vPos = <<260.3268, -997.4298, -100.0086>>
structInteriorData.sInteriorName = "v_studio_lo"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_FIB_OFFICE
structInteriorData.vPos = <<108.2369, -753.5364, 233.1523>>
structInteriorData.sInteriorName = "v_fib01"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_FIB_OFFICE_2
structInteriorData.vPos = <<135.3226, -746.3677, 253.1523>>
structInteriorData.sInteriorName = "v_fib03"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_FIB_LOBBY
structInteriorData.vPos = <<108.2572, -753.5342, 44.7548>>
structInteriorData.sInteriorName = "v_office_lobby"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_HIGH_END_GARAGE
structInteriorData.vPos = <<228.6161, -992.0530, -99.9999>>
structInteriorData.sInteriorName = "heist_dlc_garage_high_new"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_APART_MIDSPAZ_2
structInteriorData.vPos = <<575.0, 4750.0, -60.0>>
structInteriorData.sInteriorName = "xm_v_apart_midspaz"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_STUDIO_LO
structInteriorData.vPos = <<600.0, 4750.0, -60.0>>
structInteriorData.sInteriorName = "xm_v_studio_lo"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_GARAGEM_2
structInteriorData.vPos = <<630.0, 4750.0, -60.0>>
structInteriorData.sInteriorName = "xm_v_garagem"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_TUNNEL_ENTRY
structInteriorData.vPos = <<1257, 4796.7, -39.1>>
structInteriorData.sInteriorName = "xm_x17dlc_int_tun_entry"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_TUNNEL_STRAIGHT_0
structInteriorData.vPos = <<694.4, 5898.9, -152.3>>
structInteriorData.sInteriorName = "xm_x17dlc_int_tun_straight"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_TUNNEL_STRAIGHT_1
structInteriorData.vPos = <<1121.8, 5516.3, -101.3>>
structInteriorData.sInteriorName = "xm_x17dlc_int_tun_straight"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_TUNNEL_STRAIGHT_2
structInteriorData.vPos = <<1279.6, 5233.2, -80.3>>
structInteriorData.sInteriorName = "xm_x17dlc_int_tun_straight"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_TUNNEL_SLOPE_FLAT_0
structInteriorData.vPos = <<1158.6, 5467.1, -101.3>>
structInteriorData.sInteriorName = "xm_x17dlc_int_tun_slope_flat"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_TUNNEL_SLOPE_FLAT_1
structInteriorData.vPos = <<705.9, 5838.5, -152.3>>
structInteriorData.sInteriorName = "xm_x17dlc_int_tun_slope_flat"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_TUNNEL_SLOPE_FLAT_2
structInteriorData.vPos = <<1316.5, 5184.0, -80.3>>
structInteriorData.sInteriorName = "xm_x17dlc_int_tun_slope_flat"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_TUNNEL_FLAT_SLOPE_0
structInteriorData.vPos = <<1248.0, 5276.1, -80.3>>
structInteriorData.sInteriorName = "xm_x17dlc_int_tun_flat_slope"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_TUNNEL_FLAT_SLOPE_1
structInteriorData.vPos = <<1090.2, 5559.2, -101.3>>
structInteriorData.sInteriorName = "xm_x17dlc_int_tun_flat_slope"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_TUNNEL_FLAT_SLOPE_2
structInteriorData.vPos = <<1261.0, 4808.6, -39.3>>
structInteriorData.sInteriorName = "xm_x17dlc_int_tun_flat_slope"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_TUNNEL_30D_RIGHT_0
structInteriorData.vPos = <<721.8, 5781.4,-146.7 >>
structInteriorData.sInteriorName = "xm_x17dlc_int_tun_30d_r"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_TUNNEL_30D_RIGHT_1
structInteriorData.vPos = <<780.8, 5703.4, -136.7>>
structInteriorData.sInteriorName = "xm_x17dlc_int_tun_30d_r"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_TUNNEL_30D_RIGHT_2
structInteriorData.vPos = <<868.1, 5659.2, -126.7>>
structInteriorData.sInteriorName = "xm_x17dlc_int_tun_30d_r"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_TUNNEL_30D_RIGHT_3
structInteriorData.vPos = <<1218.2, 5321.2, -85.7>>
structInteriorData.sInteriorName = "xm_x17dlc_int_tun_30d_r"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_TUNNEL_30D_RIGHT_4
structInteriorData.vPos = <<1278.5, 4859.7, -44.7>>
structInteriorData.sInteriorName = "xm_x17dlc_int_tun_30d_r"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_TUNNEL_30D_LEFT_0
structInteriorData.vPos = <<1187.2, 5419.8, -96.4>>
structInteriorData.sInteriorName = "xm_x17dlc_int_tun_30d_l"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_TUNNEL_30D_LEFT_1
structInteriorData.vPos = <<1344.7, 5136.4, -75.4>>
structInteriorData.sInteriorName = "xm_x17dlc_int_tun_30d_l"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_TUNNEL_30D_LEFT_2
structInteriorData.vPos = <<1363.4, 5039.5, -65.4>>
structInteriorData.sInteriorName = "xm_x17dlc_int_tun_30d_l"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_TUNNEL_30D_LEFT_3
structInteriorData.vPos = <<1049.3, 5602.1, -107.4>>
structInteriorData.sInteriorName = "xm_x17dlc_int_tun_30d_l"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_TUNNEL_30D_LEFT_4
structInteriorData.vPos = <<1337.8, 4944.3, -55.4>>
structInteriorData.sInteriorName = "xm_x17dlc_int_tun_30d_l"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_TUNNEL_30D_LEFT_5
structInteriorData.vPos = <<961.5, 5646.9, -117.4>>
structInteriorData.sInteriorName = "xm_x17dlc_int_tun_30d_l"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_FACILITY
structInteriorData.vPos = <<345.0041, 4842.0010, -59.9997>>
structInteriorData.sInteriorName = "xm_x17dlc_int_02"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CORONER
structInteriorData.vPos = <<279.9322, -1337.4902, 23.7419>>
structInteriorData.sInteriorName = "v_coroner"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_NIGHTCLUB
structInteriorData.vPos = <<-1604.6643, -3012.5828, -79.9999>>
structInteriorData.sInteriorName = "ba_dlc_int_01_ba"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_BUSINESS_HUB
CASE INTERIOR_V_NIGHTCLUB_BASEMENT
structInteriorData.vPos = <<-1505.7830, -3012.5867, -79.9999>>
structInteriorData.sInteriorName = "ba_dlc_int_02_ba"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_JEWEL_STORE
structInteriorData.vPos = <<-630.4205, -236.7843, 37.0570>>
structInteriorData.sInteriorName = "V_JEWEL2"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_ARENA
structInteriorData.vPos = <<2800.0, -3800.0, 100.0>>
structInteriorData.sInteriorName = "xs_x18_int_01"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_ARENA_VIP_BOX
structInteriorData.vPos = <<2800.0, -3942.0, 182.5>>
structInteriorData.sInteriorName = "xs_arena_vip"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
DEFAULT
CPRINTLN(DEBUG_BUILDING, "GET_INTERIOR_DATA() ERROR - INTERIOR NOT FOUND:", ENUM_TO_INT(eInterior), ".")
BREAK
CASE INTERIOR_V_WEED_FARM
structInteriorData.vPos = <<1049.6, -3196.6, -38.5>>
structInteriorData.sInteriorName = "bkr_biker_dlc_int_ware02"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_ALT_WEED_FARM
structInteriorData.vPos = <<2920.0, 4470.0, -100.0>>
structInteriorData.sInteriorName = "sf_dlc_warehouse_sec"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_COCAINE_FACTORY
structInteriorData.vPos = <<1093.6, -3196.6, -38.5>>
structInteriorData.sInteriorName = "bkr_biker_dlc_int_ware03"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_METH_FACTORY
structInteriorData.vPos = <<1009.5, -3196.6, -38.5>>
structInteriorData.sInteriorName = "bkr_biker_dlc_int_ware01"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CASINO
structInteriorData.vPos = <<1100.0, 245.0, -49.0>>
structInteriorData.sInteriorName = "vw_dlc_casino_main"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CASINO_CAR_PARK
structInteriorData.vPos = <<1380.0, 200.0, -50.0>>
structInteriorData.sInteriorName = "vw_dlc_casino_carpark"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CASINO_APARTMENT
structInteriorData.vPos = <<976.636414, 70.294762, 115.164131>>
structInteriorData.sInteriorName = "vw_dlc_casino_apart"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CASINO_GARAGE
structInteriorData.vPos = <<1295.0, 230.0, -50.0>>
structInteriorData.sInteriorName = "vw_dlc_casino_garage"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CASINO_MAIN
structInteriorData.vPos = <<2479.3, -273.9, -58.0>>
structInteriorData.sInteriorName = "ch_DLC_Casino_Heist"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CASINO_ARCADE
structInteriorData.vPos = <<2730.0, -380.0, -49.0>>
structInteriorData.sInteriorName = "ch_DLC_Arcade"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CASINO_HEIST_PLANNING
structInteriorData.vPos = <<2800.0, -380.0, -48.5>>
structInteriorData.sInteriorName = "ch_DLC_Plan"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CASINO_TUNNEL
structInteriorData.vPos = <<2497.7, -312.8, -69.9>>
structInteriorData.sInteriorName = "ch_DLC_Tunnel"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CASINO_BACK_AREA
structInteriorData.vPos = <<2523.4, -270.0, -58.7>>
structInteriorData.sInteriorName = "ch_DLC_Casino_Back"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CASINO_HOTEL_FLOOR
structInteriorData.vPos = <<2504.4, -257.2, -39.1>>
structInteriorData.sInteriorName = "ch_DLC_Casino_Hotel"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CASINO_LOADING_BAY
structInteriorData.vPos = <<2554.0, -281.4, -64.7>>
structInteriorData.sInteriorName = "ch_DLC_Casino_Loading"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CASINO_VAULT
structInteriorData.vPos = <<2488.3, -267.4, -70.6>>
structInteriorData.sInteriorName = "ch_DLC_Casino_Vault"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CASINO_UTILITY_LIFT
structInteriorData.vPos = <<2519.9, -255.3, -24.1>>
structInteriorData.sInteriorName = "ch_DLC_Casino_Utility"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CASINO_LIFT_SHAFT
structInteriorData.vPos = <<2572.9, -253.4, -64.7>>
structInteriorData.sInteriorName = "ch_dlc_casino_shaft"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_CUSTOM_MISSION_MOC
structInteriorData.vPos = <<1103.562378, -3000.0, -40.0>>
structInteriorData.sInteriorName = "gr_grdlc_int_01"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_METH_FACTORY_MURRIETA
structInteriorData.vPos = <<1210.0, 1857.0, -50.0>>
structInteriorData.sInteriorName = "tr_Tuner_MethLab_1"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_METH_FACTORY_EAST_VINEWOOD
structInteriorData.vPos = <<1569.0, -2130.0, -50.0>>
structInteriorData.sInteriorName = "tr_Tuner_MethLab_1"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_METH_FACTORY_SENORA_DESERT_1
structInteriorData.vPos = <<839.0, 2176.0, -50.0>>
structInteriorData.sInteriorName = "tr_Tuner_MethLab_1"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_METH_FACTORY_SENORA_DESERT_2
structInteriorData.vPos = <<982.0, -143.0, -50.0>>
structInteriorData.sInteriorName = "tr_Tuner_MethLab_1"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_TUNER_CAR_MEET
structInteriorData.vPos = <<-2000.0, 1113.4, 25.7>>
structInteriorData.sInteriorName = "tr_tuner_car_meet"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_TUNER_MOD_GARAGE
structInteriorData.vPos = <<-1350.0, 160.0, -99.2>>
structInteriorData.sInteriorName = "tr_tuner_mod_garage"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_UNION_DEPOSITORY
structInteriorData.vPos = <<1.1, -705.6, 16.1>>
structInteriorData.sInteriorName = "finbank"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_RECORDING_STUDIO
structInteriorData.vPos = <<-1010, -70, -99.4>>
structInteriorData.sInteriorName = "sf_dlc_studio_sec"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_MUSIC_LOCKER
structInteriorData.vPos = <<1550.0, 250.0, -50.0>>
structInteriorData.sInteriorName = "h4_dlc_int_02_h4"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_DEVIN_HANGAR
structInteriorData.vPos = <<-935.7, -2992.2, 13.9>>
structInteriorData.sInteriorName = "v_hanger"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_OFFICE_AUTOSHOP
structInteriorData.vPos = <<730.0, -2990.0, -39.0>>
structInteriorData.sInteriorName = "imp_imptexp_mod_int_01"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_MOTEL
structInteriorData.vPos = <<152.3, -1004.4, -97.8>>
structInteriorData.sInteriorName = "v_motel_mp"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_ARENA_WAR_GARAGE_LEVEL_1
structInteriorData.vPos = <<170.0, 5190.0, 10.0>>
structInteriorData.sInteriorName = "xs_x18_int_mod2"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_MISSION_BASEMENT
structInteriorData.vPos = <<850.0, -3000.0, -50.0>>
structInteriorData.sInteriorName = "reh_dlc_int_04_sum2"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_PHARMA_OFFICE
structInteriorData.vPos = <<495, -2560, -50.0>>
structInteriorData.sInteriorName = "xm3_DLC_INT_04_xm3"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
CASE INTERIOR_V_AUTOCARE_WAREHOUSE
structInteriorData.vPos = <<584, -2605, -50.0>>
structInteriorData.sInteriorName = "xm3_DLC_INT_03_xm3"
structInteriorData.sDebugName = structInteriorData.sInteriorName
BREAK
ENDSWITCH
#ENDIF
RETURN structInteriorData
ENDFUNC
/// PURPOSE:
/// Gets the bitset variable and bit for a particular interior enum
/// PARAMS:
/// eInterior - The interior enum
/// RETURNS:
/// A struct containing an array index to a bitset var, and a bit index.
FUNC INTERIOR_BITSET_STRUCT GET_BITSET_FOR_INTERIOR_ENUM(INTERIOR_NAME_ENUM eInterior)
INTERIOR_BITSET_STRUCT sBitset
sBitset.iIndex = ENUM_TO_INT(eInterior) % 32
sBitset.iArrayIndex = ENUM_TO_INT(eInterior) / 32
IF sBitset.iArrayIndex >= MAX_INTERIOR_BITSETS
SCRIPT_ASSERT("GET_BITSET_FOR_INTERIOR_ENUM - Ran out of bitsets. Please increase MAX_INTERIOR_BITSETS")
CPRINTLN(DEBUG_BUILDING, "GET_BITSET_FOR_INTERIOR_ENUM - MAX_INTERIOR_BITSETS = ", MAX_INTERIOR_BITSETS, ", sBitset.iArrayIndex = ", sBitset.iArrayIndex)
sBitset.iIndex = -1
sBitset.iArrayIndex = -1
ENDIF
RETURN sBitset
ENDFUNC
/// PURPOSE:
/// Checks if an interior has set to be capped on exit.
/// PARAMS:
/// eInterior - The interior enum to check.
/// RETURNS:
/// TRUE if the interior has been set to be capped on exit, FALSE otherwise
FUNC BOOL IS_INTERIOR_CAPPED_ON_EXIT( INTERIOR_NAME_ENUM eInterior )
INTERIOR_BITSET_STRUCT sBitset = GET_BITSET_FOR_INTERIOR_ENUM(eInterior)
IF sBitset.iArrayIndex != -1
AND IS_BIT_SET(iInteriorCappingBitset[sBitset.iArrayIndex],sBitset.iIndex)
RETURN TRUE
ENDIF
RETURN FALSE
ENDFUNC
/// PURPOSE:
/// Checks if an interior has set to be disabled on exit.
/// PARAMS:
/// eInterior - The interior enum to check.
/// RETURNS:
/// TRUE if the interior has been set to be disabled on exit, FALSE otherwise
FUNC BOOL IS_INTERIOR_DISABLED_ON_EXIT( INTERIOR_NAME_ENUM eInterior )
INTERIOR_BITSET_STRUCT sBitset = GET_BITSET_FOR_INTERIOR_ENUM(eInterior)
IF sBitset.iArrayIndex != -1
AND IS_BIT_SET(iInteriorDisablingBitset[sBitset.iArrayIndex],sBitset.iIndex)
RETURN TRUE
ENDIF
RETURN FALSE
ENDFUNC
/// PURPOSE:
/// Flags an interior to be capped when the player exits - at least 250m away.
/// PARAMS:
/// eInterior - The interior to check
/// bCapped - TRUE to cap on exit, FALSE to stop capping on exit.
PROC SET_INTERIOR_CAPPED_ON_EXIT( INTERIOR_NAME_ENUM eInterior, BOOL bCapped = TRUE )
INTERIOR_BITSET_STRUCT sBitset = GET_BITSET_FOR_INTERIOR_ENUM(eInterior)
#IF IS_DEBUG_BUILD
INTERIOR_DATA_STRUCT sData = GET_INTERIOR_DATA(eInterior)
#ENDIF
IF sBitset.iArrayIndex = -1
EXIT
ENDIF
IF bCapped
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_BUILDING, "SET_INTERIOR_CAPPED_ON_EXIT() - '",GET_THIS_SCRIPT_NAME(), "' SET this interior to be CAPPED on player exit ", sData.sDebugName )
#ENDIF
SET_BIT(iInteriorCappingBitset[sBitset.iArrayIndex],sBitset.iIndex)
ELSE
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_BUILDING, "SET_INTERIOR_CAPPED_ON_EXIT() - '",GET_THIS_SCRIPT_NAME(), "' UNSET this interior to be CAPPED on player exit ", sData.sDebugName )
#ENDIF
CLEAR_BIT(iInteriorCappingBitset[sBitset.iArrayIndex],sBitset.iIndex)
ENDIF
ENDPROC
/// PURPOSE:
/// Flags an interior to be disabled when the player exits - at least 250m away.
/// PARAMS:
/// eInterior - The interior to check
/// bCapped - TRUE to disable on exit, FALSE to stop disabling on exit.
PROC SET_INTERIOR_DISABLED_ON_EXIT( INTERIOR_NAME_ENUM eInterior, BOOL bDisabled = TRUE )
INTERIOR_BITSET_STRUCT sBitset = GET_BITSET_FOR_INTERIOR_ENUM(eInterior)
#IF IS_DEBUG_BUILD
INTERIOR_DATA_STRUCT sData = GET_INTERIOR_DATA(eInterior)
#ENDIF
IF sBitset.iArrayIndex = -1
EXIT
ENDIF
IF bDisabled
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_BUILDING, "SET_INTERIOR_DISABLED_ON_EXIT() - '",GET_THIS_SCRIPT_NAME(), "' SET this interior to be DISABLED on player exit ", sData.sDebugName )
#ENDIF
SET_BIT(iInteriorDisablingBitset[sBitset.iArrayIndex],sBitset.iIndex)
ELSE
#IF IS_DEBUG_BUILD
CPRINTLN(DEBUG_BUILDING, "SET_INTERIOR_DISABLED_ON_EXIT() - '",GET_THIS_SCRIPT_NAME(), "' UNSET this interior to be DISABLED on player exit ", sData.sDebugName )
#ENDIF
CLEAR_BIT(iInteriorDisablingBitset[sBitset.iArrayIndex],sBitset.iIndex)
ENDIF
ENDPROC
/// PURPOSE:
/// Gets the interior instance index of a specified interior
/// PARAMS:
/// eInterior - Enum for the interior
/// &iInteriorIndex - Interior instance index, passed by reference
/// RETURNS:
/// A string containing the interior name.
FUNC STRING GET_INTERIOR_INSTANCE_INDEX_FOR_INTERIOR( INTERIOR_NAME_ENUM eInterior, INTERIOR_INSTANCE_INDEX &iInteriorIndex )
INTERIOR_DATA_STRUCT structInteriorData
structInteriorData = GET_INTERIOR_DATA( eInterior )
iInteriorIndex = GET_INTERIOR_AT_COORDS_WITH_TYPE( structInteriorData.vPos, structInteriorData.sInteriorName )
RETURN structInteriorData.sDebugName
ENDFUNC
/// PURPOSE: Wrapper for the CAP_INTERIOR command, prints debug info so we can keep track of which scripts are capping/uncapping interiors.
///
/// PARAMS:
/// eInterior - Enum for interior
/// bIsCapped - TRUE if the interior is capped.
///
PROC SET_INTERIOR_CAPPED( INTERIOR_NAME_ENUM eInterior, BOOL bIsCapped )
STRING sInteriorName = "NULL"
INTERIOR_INSTANCE_INDEX iInteriorIndex = NULL
sInteriorName = GET_INTERIOR_INSTANCE_INDEX_FOR_INTERIOR(eInterior, iInteriorIndex)
IF NOT ARE_STRINGS_EQUAL( "NONE", sInteriorName)
AND iInteriorIndex != NULL
IF bIsCapped AND NOT IS_INTERIOR_CAPPED(iInteriorIndex)
// Re-implemented this due to B* 1632138. Was originally included in CL 4746629 but removed because it caused other scripts to
// include it, so we used a different method which doesn't seem to work. Steve R LDS.
#IF USE_TU_CHANGES
IF GET_INTERIOR_FROM_ENTITY(PLAYER_PED_ID()) = iInteriorIndex
CPRINTLN(DEBUG_BUILDING, "SET_INTERIOR_CAPPED() - '", GET_THIS_SCRIPT_NAME(), "' CANNOT CAP ", sInteriorName," BECAUSE PLAYER IS INSIDE THE INTERIOR. RUNNING SET_INTERIOR_CAPPED_ON_EXIT INSTEAD.")
SET_INTERIOR_CAPPED_ON_EXIT(eInterior, TRUE)
EXIT
ENDIF
#ENDIF
CAP_INTERIOR(iInteriorIndex, TRUE)
CPRINTLN(DEBUG_BUILDING, "SET_INTERIOR_CAPPED() - '", GET_THIS_SCRIPT_NAME(), "' CAPPED interior ", sInteriorName )
ELIF NOT bIsCapped AND IS_INTERIOR_CAPPED(iInteriorIndex)
IF IS_INTERIOR_CAPPED_ON_EXIT(eInterior)
CPRINTLN(DEBUG_BUILDING, "SET_INTERIOR_CAPPED() - '",GET_THIS_SCRIPT_NAME(), "' WARNING: ",sInteriorName," was set to CAP on exit, but this will be cleared - case 1" )
SET_INTERIOR_CAPPED_ON_EXIT(eInterior, FALSE)
ENDIF
CAP_INTERIOR(iInteriorIndex, FALSE)
CPRINTLN(DEBUG_BUILDING, "SET_INTERIOR_CAPPED() - '", GET_THIS_SCRIPT_NAME(), "' UN-CAPPED interior ", sInteriorName )
ELSE
CPRINTLN(DEBUG_BUILDING, "SET_INTERIOR_CAPPED() - '", GET_THIS_SCRIPT_NAME(), "' trying to set state ",bIsCapped," but we're already in that state for interior ", sInteriorName )
IF NOT bIsCapped
IF IS_INTERIOR_CAPPED_ON_EXIT(eInterior)
CPRINTLN(DEBUG_BUILDING, "SET_INTERIOR_CAPPED() - '", GET_THIS_SCRIPT_NAME(), "' WARNING: ",sInteriorName," was set to CAP on exit, but this will be cleared - case 2" )
SET_INTERIOR_CAPPED_ON_EXIT(eInterior, FALSE)
ENDIF
ENDIF
ENDIF
ELSE
CPRINTLN(DEBUG_BUILDING, "SET_INTERIOR_CAPPED() - Can't get valid interior instance index for ", sInteriorName, " Called by script ",GET_THIS_SCRIPT_NAME())
ENDIF
ENDPROC
/// PURPOSE: Wrapper for the DISABLE_INTERIOR command, prints debug info so we can keep track of which scripts are disabling/enabling interiors.
///
/// PARAMS:
/// eInterior - Enum for interior
/// bIsCapped - TRUE if the interior is capped.
///
PROC SET_INTERIOR_DISABLED( INTERIOR_NAME_ENUM eInterior, BOOL bIsDisabled )
STRING sInteriorName = "NULL"
INTERIOR_INSTANCE_INDEX iInteriorIndex = NULL
sInteriorName = GET_INTERIOR_INSTANCE_INDEX_FOR_INTERIOR(eInterior, iInteriorIndex)
IF NOT ARE_STRINGS_EQUAL( "NONE", sInteriorName)
AND iInteriorIndex != NULL
IF bIsDisabled
IF IS_INTERIOR_DISABLED(iInteriorIndex)
CPRINTLN(DEBUG_BUILDING, "SET_INTERIOR_DISABLED() - '", GET_THIS_SCRIPT_NAME(), "' DISABLED interior ", sInteriorName, " was already disabled" )
EXIT
ENDIF
// Re-implemented this due to B* 1632138. Was originally included in CL 4746629 but removed because it caused other scripts to
// include it, so we used a different method which doesn't seem to work. Steve R LDS.
#IF USE_TU_CHANGES
IF GET_INTERIOR_FROM_ENTITY(PLAYER_PED_ID()) = iInteriorIndex
CPRINTLN(DEBUG_BUILDING, "SET_INTERIOR_DISABLED() - '", GET_THIS_SCRIPT_NAME(), "' CANNOT DISABLE ", sInteriorName," BECAUSE PLAYER IS INSIDE THE INTERIOR. RUNNING SET_INTERIOR_DISABLED_ON_EXIT INSTEAD.")
SET_INTERIOR_DISABLED_ON_EXIT(eInterior, TRUE)
EXIT
ENDIF
#ENDIF
ELSE
IF NOT IS_INTERIOR_DISABLED(iInteriorIndex)
CPRINTLN(DEBUG_BUILDING, "SET_INTERIOR_DISABLED() - '", GET_THIS_SCRIPT_NAME(), "' ENABLED interior ", sInteriorName, " was already enabled" )
EXIT
ENDIF
IF IS_INTERIOR_DISABLED_ON_EXIT(eInterior)
CPRINTLN(DEBUG_BUILDING, "SET_INTERIOR_DISABLED() - '", GET_THIS_SCRIPT_NAME(), "' WARNING: ",sInteriorName," was set to disable on exit, but this will be cleared." )
SET_INTERIOR_DISABLED_ON_EXIT(eInterior, FALSE)
ENDIF
ENDIF
DISABLE_INTERIOR(iInteriorIndex, bIsDisabled)
IF bIsDisabled
CPRINTLN(DEBUG_BUILDING, "SET_INTERIOR_DISABLED() - '", GET_THIS_SCRIPT_NAME(), "' DISABLED interior ", sInteriorName )
ELSE
CPRINTLN(DEBUG_BUILDING, "SET_INTERIOR_DISABLED() - '", GET_THIS_SCRIPT_NAME(), "' ENABLED interior ", sInteriorName )
ENDIF
ELSE
CPRINTLN(DEBUG_BUILDING, "SET_INTERIOR_DISABLED() - Can't get valid interior instance index for ", sInteriorName, " Called by script ",GET_THIS_SCRIPT_NAME())
ENDIF
ENDPROC
/// PURPOSE: Activates special features associated with a building state, e.g. ambient audio zones.
///
/// PARAMS:
/// eName - IPL swap name
/// eNewState - Building state
PROC SET_BUILDING_STATE_ASSOCIATED_FEATURES( BUILDING_NAME_ENUM eName, BUILDING_STATE_ENUM eNewState )
SWITCH eName
CASE BUILDINGNAME_IPL_CARGOSHIP
IF eNewState = BUILDINGSTATE_NORMAL
SET_AMBIENT_ZONE_STATE_PERSISTENT("AZ_PORT_OF_LS_UNDERWATER_CREAKS", FALSE )
CPRINTLN(DEBUG_BUILDING, "SET_BUILDING_STATE_ASSOCIATED_FEATURES() - AZ_PORT_OF_LS_UNDERWATER_CREAKS is INACTIVE")
ELSE
SET_AMBIENT_ZONE_STATE_PERSISTENT("AZ_PORT_OF_LS_UNDERWATER_CREAKS", TRUE )
CPRINTLN(DEBUG_BUILDING, "SET_BUILDING_STATE_ASSOCIATED_FEATURES() - AZ_PORT_OF_LS_UNDERWATER_CREAKS is ACTIVE")
ENDIF
BREAK
CASE BUILDINGNAME_IPL_SWEATSHOP_WITH_INTERIOR
IF eNewState != BUILDINGSTATE_DESTROYED
SET_AMBIENT_ZONE_LIST_STATE_PERSISTENT("HEIST_SWEATSHOP_ZONES", FALSE )
CPRINTLN(DEBUG_BUILDING, "SET_BUILDING_STATE_ASSOCIATED_FEATURES() - HEIST_SWEATSHOP_ZONES is INACTIVE")
ELSE
SET_AMBIENT_ZONE_LIST_STATE_PERSISTENT("HEIST_SWEATSHOP_ZONES", TRUE )
CPRINTLN(DEBUG_BUILDING, "SET_BUILDING_STATE_ASSOCIATED_FEATURES() - HEIST_SWEATSHOP_ZONES is ACTIVE")
ENDIF
BREAK
CASE BUILDINGNAME_IPL_EXL3_TRAIN_CRASH
IF eNewState = BUILDINGSTATE_DESTROYED
SCRIPT_SET_TRAIN_LINE_ACTIVE(TRAIN_LINE_MAIN, FALSE)
CPRINTLN(DEBUG_BUILDING, "SET_BUILDING_STATE_ASSOCIATED_FEATURES() - TRAIN_LINE_MAIN is DISABLED")
ELSE
SCRIPT_SET_TRAIN_LINE_ACTIVE(TRAIN_LINE_MAIN, TRUE)
CPRINTLN(DEBUG_BUILDING, "SET_BUILDING_STATE_ASSOCIATED_FEATURES() - TRAIN_LINE_MAIN is ENABLED")
ENDIF
BREAK
CASE BUILDINGNAME_IPL_CARGOPLANE
IF eNewState = BUILDINGSTATE_DESTROYED
SET_AMBIENT_ZONE_STATE_PERSISTENT("AZ_UNDERWATER_EXILE_01_PLANE_WRECK", TRUE )
CPRINTLN(DEBUG_BUILDING, "SET_BUILDING_STATE_ASSOCIATED_FEATURES() - AZ_UNDERWATER_EXILE_01_PLANE_WRECK is ACTIVE")
ELSE
SET_AMBIENT_ZONE_STATE_PERSISTENT("AZ_UNDERWATER_EXILE_01_PLANE_WRECK", FALSE )
CPRINTLN(DEBUG_BUILDING, "SET_BUILDING_STATE_ASSOCIATED_FEATURES() - AZ_UNDERWATER_EXILE_01_PLANE_WRECK is INACTIVE")
ENDIF
BREAK
CASE BUILDINGNAME_ES_CAR_SHOWROOOM_WINDOWS
IF eNewState = BUILDINGSTATE_CLEANUP
REMOVE_PORTAL_SETTINGS_OVERRIDE("V_CARSHOWROOM_PS_WINDOW_UNBROKEN")
CPRINTLN(DEBUG_BUILDING, "SET_BUILDING_STATE_ASSOCIATED_FEATURES() - PORTAL SETTINGS_OVERRIDE: V_CARSHOWROOM_PS_WINDOW_UNBROKEN")
ENDIF
BREAK
CASE BUILDINGNAME_IPL_TRAILERPARK_BLOCKING_AREA
IF eNewState = BUILDINGSTATE_DESTROYED
SET_STATIC_EMITTER_ENABLED("TREVOR1_TRAILER_PARK_MAIN_STAGE_RADIO", FALSE)
SET_STATIC_EMITTER_ENABLED("TREVOR1_TRAILER_PARK_MAIN_TRAILER_RADIO_01", FALSE)
SET_STATIC_EMITTER_ENABLED("TREVOR1_TRAILER_PARK_MAIN_TRAILER_RADIO_02", FALSE)
SET_STATIC_EMITTER_ENABLED("TREVOR1_TRAILER_PARK_MAIN_TRAILER_RADIO_03", FALSE)
CPRINTLN(DEBUG_BUILDING, "SET_BUILDING_STATE_ASSOCIATED_FEATURES() - LOST TRAILER PARK STATIC RADIO EMITTERS DISABLED")
ENDIF
BREAK
ENDSWITCH
ENDPROC
/// PURPOSE: Gets called on startup to ensure that the ambient audio zones and other special features associated with building states are restored correctly.
///
PROC RESTORE_BUILDING_STATE_ASSOCIATED_FEATURES()
CPRINTLN(DEBUG_BUILDING, "RESTORE_BUILDING_STATE_ASSOCIATED_FEATURES()")
#if USE_CLF_DLC
SET_BUILDING_STATE_ASSOCIATED_FEATURES(BUILDINGNAME_IPL_CARGOSHIP, g_savedGlobalsClifford.sBuildingData.eBuildingState[BUILDINGNAME_IPL_CARGOSHIP] )
SET_BUILDING_STATE_ASSOCIATED_FEATURES(BUILDINGNAME_IPL_EXL3_TRAIN_CRASH, g_savedGlobalsClifford.sBuildingData.eBuildingState[BUILDINGNAME_IPL_EXL3_TRAIN_CRASH] )
SET_BUILDING_STATE_ASSOCIATED_FEATURES(BUILDINGNAME_IPL_CARGOPLANE, g_savedGlobalsClifford.sBuildingData.eBuildingState[BUILDINGNAME_IPL_CARGOPLANE] )
SET_BUILDING_STATE_ASSOCIATED_FEATURES(BUILDINGNAME_ES_CAR_SHOWROOOM_WINDOWS, g_savedGlobalsClifford.sBuildingData.eBuildingState[BUILDINGNAME_ES_CAR_SHOWROOOM_WINDOWS])
SET_BUILDING_STATE_ASSOCIATED_FEATURES(BUILDINGNAME_IPL_TRAILERPARK_BLOCKING_AREA, g_savedGlobalsClifford.sBuildingData.eBuildingState[BUILDINGNAME_IPL_TRAILERPARK_BLOCKING_AREA])
#endif
#if USE_NRM_DLC
SET_BUILDING_STATE_ASSOCIATED_FEATURES(BUILDINGNAME_IPL_CARGOSHIP, g_savedGlobalsnorman.sBuildingData.eBuildingState[BUILDINGNAME_IPL_CARGOSHIP] )
SET_BUILDING_STATE_ASSOCIATED_FEATURES(BUILDINGNAME_IPL_EXL3_TRAIN_CRASH, g_savedGlobalsnorman.sBuildingData.eBuildingState[BUILDINGNAME_IPL_EXL3_TRAIN_CRASH] )
SET_BUILDING_STATE_ASSOCIATED_FEATURES(BUILDINGNAME_IPL_CARGOPLANE, g_savedGlobalsnorman.sBuildingData.eBuildingState[BUILDINGNAME_IPL_CARGOPLANE] )
SET_BUILDING_STATE_ASSOCIATED_FEATURES(BUILDINGNAME_ES_CAR_SHOWROOOM_WINDOWS, g_savedGlobalsnorman.sBuildingData.eBuildingState[BUILDINGNAME_ES_CAR_SHOWROOOM_WINDOWS])
SET_BUILDING_STATE_ASSOCIATED_FEATURES(BUILDINGNAME_IPL_TRAILERPARK_BLOCKING_AREA, g_savedGlobalsnorman.sBuildingData.eBuildingState[BUILDINGNAME_IPL_TRAILERPARK_BLOCKING_AREA])
#endif
#if not USE_CLF_DLC
#if not USE_NRM_DLC
SET_BUILDING_STATE_ASSOCIATED_FEATURES(BUILDINGNAME_IPL_CARGOSHIP, g_savedGlobals.sBuildingData.eBuildingState[BUILDINGNAME_IPL_CARGOSHIP] )
SET_BUILDING_STATE_ASSOCIATED_FEATURES(BUILDINGNAME_IPL_EXL3_TRAIN_CRASH, g_savedGlobals.sBuildingData.eBuildingState[BUILDINGNAME_IPL_EXL3_TRAIN_CRASH] )
SET_BUILDING_STATE_ASSOCIATED_FEATURES(BUILDINGNAME_IPL_CARGOPLANE, g_savedGlobals.sBuildingData.eBuildingState[BUILDINGNAME_IPL_CARGOPLANE] )
SET_BUILDING_STATE_ASSOCIATED_FEATURES(BUILDINGNAME_ES_CAR_SHOWROOOM_WINDOWS, g_savedGlobals.sBuildingData.eBuildingState[BUILDINGNAME_ES_CAR_SHOWROOOM_WINDOWS])
SET_BUILDING_STATE_ASSOCIATED_FEATURES(BUILDINGNAME_IPL_TRAILERPARK_BLOCKING_AREA, g_savedGlobals.sBuildingData.eBuildingState[BUILDINGNAME_IPL_TRAILERPARK_BLOCKING_AREA])
#endif
#endif
ENDPROC
/// PURPOSE:
/// Sets up all the interior states at startup.
PROC SETUP_INTERIOR_STATES()
#IF IS_DEBUG_BUILD
// Enable all interiors.
IF GET_COMMANDLINE_PARAM_EXISTS("allInteriorsOn")
EXIT
ENDIF
#ENDIF
// Init interior status bitsets
INT i = 0
WHILE i < MAX_INTERIOR_BITSETS
iInteriorCappingBitset[i] = 0
iInteriorDisablingBitset[i] = 0
++i
ENDWHILE
// Enabling these individually when they get sorted out in the various mission scripts.
SET_INTERIOR_CAPPED (INTERIOR_V_RECYCLE, TRUE)
SET_INTERIOR_CAPPED (INTERIOR_V_EPSILONISM, TRUE)
SET_INTERIOR_CAPPED (INTERIOR_V_SHERIFF, TRUE)
SET_INTERIOR_CAPPED (INTERIOR_V_SHERIFF2, TRUE)
SET_INTERIOR_CAPPED (INTERIOR_V_ABATTOIR, TRUE)
SET_INTERIOR_CAPPED (INTERIOR_V_FOUNDRY, TRUE)
SET_INTERIOR_CAPPED (INTERIOR_V_CHOPSHOP, TRUE)
SET_INTERIOR_CAPPED (INTERIOR_V_RANCH, TRUE)
SET_INTERIOR_CAPPED (INTERIOR_V_ROCKCLUB, TRUE)
SET_INTERIOR_CAPPED_ON_EXIT (INTERIOR_DT1_03_CARPARK, TRUE)
SET_INTERIOR_CAPPED (INTERIOR_V_SUB, TRUE)
SET_INTERIOR_CAPPED (INTERIOR_V_APART_MIDSPAZ_2, TRUE)
SET_INTERIOR_CAPPED (INTERIOR_V_STUDIO_LO, TRUE)
SET_INTERIOR_CAPPED (INTERIOR_V_GARAGEM_2, TRUE)
SET_INTERIOR_CAPPED (INTERIOR_V_OSPREY, TRUE)
SET_INTERIOR_CAPPED (INTERIOR_V_FACILITY, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_TUNNEL_ENTRY, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_TUNNEL_STRAIGHT_0, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_TUNNEL_STRAIGHT_1, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_TUNNEL_STRAIGHT_2, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_TUNNEL_SLOPE_FLAT_0, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_TUNNEL_SLOPE_FLAT_1, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_TUNNEL_SLOPE_FLAT_2, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_TUNNEL_FLAT_SLOPE_0, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_TUNNEL_FLAT_SLOPE_1, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_TUNNEL_FLAT_SLOPE_2, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_TUNNEL_30D_RIGHT_0, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_TUNNEL_30D_RIGHT_1, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_TUNNEL_30D_RIGHT_2, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_TUNNEL_30D_RIGHT_3, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_TUNNEL_30D_RIGHT_4, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_TUNNEL_30D_LEFT_0, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_TUNNEL_30D_LEFT_1, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_TUNNEL_30D_LEFT_2, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_TUNNEL_30D_LEFT_3, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_TUNNEL_30D_LEFT_4, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_TUNNEL_30D_LEFT_5, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_SILO_ENTRANCE, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_SILO_LOOP, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_SILO_TUNNEL, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_SILO_BASE, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_SILO_1, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_SILO_2, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_SILO_3, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_IAA, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_SERVER_FARM, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_COMEDY, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_PSYCHEOFFICE, TRUE)
SET_INTERIOR_DISABLED_ON_EXIT (INTERIOR_V_CINEMA_VINEWOOD, TRUE)
SET_INTERIOR_DISABLED_ON_EXIT (INTERIOR_V_CINEMA_MORNINGWOOD, TRUE)
SET_INTERIOR_DISABLED_ON_EXIT (INTERIOR_V_CINEMA_DOWNTOWN, TRUE)
SET_INTERIOR_DISABLED (INTERIOR_V_58_SOL_OFFICE, TRUE)
SET_INTERIOR_CAPPED (INTERIOR_V_NIGHTCLUB, TRUE)
SET_INTERIOR_CAPPED (INTERIOR_V_BUSINESS_HUB, TRUE)
SET_INTERIOR_DISABLED(INTERIOR_V_CASINO_MAIN, TRUE)
SET_INTERIOR_DISABLED(INTERIOR_V_CASINO_TUNNEL, TRUE)
SET_INTERIOR_DISABLED(INTERIOR_V_CASINO_BACK_AREA, TRUE)
SET_INTERIOR_DISABLED(INTERIOR_V_CASINO_HOTEL_FLOOR, TRUE)
SET_INTERIOR_DISABLED(INTERIOR_V_CASINO_LOADING_BAY, TRUE)
SET_INTERIOR_DISABLED(INTERIOR_V_CASINO_VAULT, TRUE)
SET_INTERIOR_DISABLED(INTERIOR_V_CASINO_UTILITY_LIFT, TRUE)
SET_INTERIOR_DISABLED(INTERIOR_V_CASINO_LIFT_SHAFT, TRUE)
// CDM - Leave these to me I'll disabled them in Freemode script. Currently the spawning into interior fights with the building controller.
// Moved to freemode.sc for MP
#IF NOT USE_SP_DLC
IF NOT NETWORK_IS_GAME_IN_PROGRESS()
AND NOT IS_TRANSITION_SESSION_LAUNCHING()
CPRINTLN(DEBUG_BUILDING, "Building controler: disabling the MP property interiors as not net game in progress")
SET_INTERIOR_DISABLED_ON_EXIT (INTERIOR_V_APARTMENT_HIGH_1, TRUE)
SET_INTERIOR_DISABLED_ON_EXIT (INTERIOR_V_APARTMENT_HIGH_2, TRUE)
SET_INTERIOR_DISABLED_ON_EXIT (INTERIOR_V_APARTMENT_HIGH_3, TRUE)
SET_INTERIOR_DISABLED_ON_EXIT (INTERIOR_V_APARTMENT_HIGH_4, TRUE)
SET_INTERIOR_DISABLED_ON_EXIT (INTERIOR_V_APARTMENT_HIGH_5, TRUE)
SET_INTERIOR_DISABLED_ON_EXIT (INTERIOR_V_APARTMENT_HIGH_6, TRUE)
SET_INTERIOR_DISABLED_ON_EXIT (INTERIOR_V_APARTMENT_HIGH_7, TRUE)
SET_INTERIOR_DISABLED_ON_EXIT (INTERIOR_V_APARTMENT_HIGH_8, TRUE)
SET_INTERIOR_DISABLED_ON_EXIT (INTERIOR_V_APARTMENT_HIGH_9, TRUE)
SET_INTERIOR_DISABLED_ON_EXIT (INTERIOR_V_APARTMENT_HIGH_10, TRUE)
SET_INTERIOR_DISABLED_ON_EXIT (INTERIOR_V_APARTMENT_HIGH_11, TRUE)
SET_INTERIOR_DISABLED_ON_EXIT (INTERIOR_V_APARTMENT_HIGH_12, TRUE)
SET_INTERIOR_DISABLED_ON_EXIT (INTERIOR_V_APARTMENT_HIGH_13, TRUE)
SET_INTERIOR_DISABLED_ON_EXIT (INTERIOR_V_APARTMENT_HIGH_14, TRUE)
SET_INTERIOR_DISABLED_ON_EXIT (INTERIOR_V_APARTMENT_HIGH_15, TRUE)
SET_INTERIOR_DISABLED_ON_EXIT (INTERIOR_V_APARTMENT_HIGH_16, TRUE)
SET_INTERIOR_DISABLED_ON_EXIT (INTERIOR_V_APARTMENT_HIGH_17, TRUE)
SET_INTERIOR_DISABLED_ON_EXIT (INTERIOR_V_APARTMENT_HIGH_18, TRUE)
SET_INTERIOR_DISABLED_ON_EXIT (INTERIOR_V_APARTMENT_HIGH_19, TRUE)
SET_INTERIOR_DISABLED_ON_EXIT (INTERIOR_V_APARTMENT_HIGH_20, TRUE)
SET_INTERIOR_DISABLED_ON_EXIT (INTERIOR_V_APARTMENT_HIGH_19, TRUE)
SET_INTERIOR_DISABLED_ON_EXIT (INTERIOR_V_APART_MIDSPAZ, TRUE)
SET_INTERIOR_DISABLED_ON_EXIT (INTERIOR_V_GARAGES, TRUE)
SET_INTERIOR_DISABLED_ON_EXIT (INTERIOR_V_GARAGEM, TRUE)
SET_INTERIOR_DISABLED_ON_EXIT (INTERIOR_V_GARAGEL, TRUE)
SET_INTERIOR_DISABLED_ON_EXIT (INTERIOR_V_GARAGEM_SP, TRUE)
ENDIF
#ENDIF
ENDPROC
PROC REMOVE_DOOR_FROM_SYSTEM_SAFELY(INT iDoorHash)
IF IS_DOOR_REGISTERED_WITH_SYSTEM(iDoorHash)
CPRINTLN(DEBUG_DOOR, "REMOVE_DOOR_FROM_SYSTEM_SAFELY - removing door with hash ", iDoorHash)
REMOVE_DOOR_FROM_SYSTEM(iDoorHash)
ENDIF
ENDPROC
/// PURPOSE: This gets called on startup to ensure all mission specific doors are unregistered from the system
PROC REMOVE_ALL_MISSION_SPECIFIC_DOORS_FROM_SYSTEM_ON_STARTUP()
CPRINTLN(DEBUG_DOOR, "REMOVE_ALL_MISSION_SPECIFIC_DOORS_FROM_SYSTEM_ON_STARTUP()")
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("DOORHASH_OPEN_DOOR"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("DOORHASH_CLOSED_DOOR1"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("DOORHASH_CLOSED_DOOR2"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_1_door_0"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_1_door_1"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_1_door_2"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_1_door_3"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_1_door_4"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_1_door_5"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_1_door_6"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_1_door_7"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_1_door_8"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_1_door_9"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_1_door_10"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_1_door_11"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_1_door_12"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_1_door_13"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_1_door_14"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_5_door_0"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_5_door_1"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_5_door_2"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_5_door_3"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_5_door_4"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_5_door_7"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_5_door_8"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_5_door_9"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_5_door_10"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_5_door_11"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_5_door_12"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_5_door_13"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_5_door_14"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_5_door_15"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_5_door_16"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_5_door_17"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_5_door_18"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_5_door_19"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_5_door_20"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_5_door_21"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_5_door_22"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_5_door_23"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_5_door_24"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_5_door_25"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("fbi_5_door_26"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("CUPBOARD_DOOR"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("LEFT_RECEPTION_DOOR"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("RIGHT_RECEPTION_DOOR"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("CCTV_ROOM_DOOR"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("Josh2_door_0"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("Josh2_door_1"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("Josh2_door_2"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("Josh2_door_3"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("Josh2_door_4"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("Josh2_door_5"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("GRAVEYARD_GATE_WEST_L"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("GRAVEYARD_GATE_WEST_R"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("GRAVEYARD_GATE_EAST_L"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("GRAVEYARD_GATE_EAST_R"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("GRAVEYARD_GATE_SOUTH_L"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("GRAVEYARD_GATE_SOUTH_R"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("Finale_Bank_Gate_1"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("Finale_Bank_Gate_2"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("Finale_Bank_Gate_3"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("Finale_Bank_Gate_4"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("Finale_Bank_Gate_5"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("Finale_Bank_Gate_6"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("Finale_Bank_Gate_7"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("Finale_Bank_Gate_8"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("Finale_Bank_Gate_9"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("Finale_Bank_Gate_10"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("WAREHOUSE_LEFT"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("WAREHOUSE_RIGHT"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("DOORHASH_F_HOUSE_SC_F"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("Finale_Bank_Exit_Barrier"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("N1A_0"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("N1A_1"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("N1A_2"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("N1A_3"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("N1A_4"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("N1A_5"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("N1B_0"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("N1B_1"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("N1B_2"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("N1B_3"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("N1B_4"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("N1B_5"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("LeftLockup"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("RightLockup"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("LESTER1A_DOOR_0"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("LESTER1A_DOOR_1"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("LESTER1A_DOOR_2"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("LESTER1A_DOOR_3"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("WrongLocationGateA"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("WrongLocationGateB"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("AH3B_DOOR_0"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("AH3B_DOOR_1"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("AH3B_DOOR_18"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("AH3B_DOOR_19"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_GAS_2B"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_GAS_3A"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_GAS_3B"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_GAS_4A"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_GAS_4B"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_GAS_1A"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_GAS_1B"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_GAS_5A"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_GAS_5B"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_LIQUOR_1A"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_LIQUOR_2A"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_LIQUOR_3A"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_LIQUOR_4A"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_LIQUOR_5A"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_SHOP247_3A"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_SHOP247_3B"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_SHOP247_2A"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_SHOP247_2B"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_SHOP247_4A"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_SHOP247_4B"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_SHOP247_5A"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_SHOP247_5B"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_SHOP247_6A"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_SHOP247_6B"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_SHOP247_7A"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_SHOP247_7B"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_SHOP247_8A"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_SHOP247_8B"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_SHOP247_9A"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_SHOP247_9B"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_SHOP247_10A"))
REMOVE_DOOR_FROM_SYSTEM_SAFELY(HASH("eCRIM_HUP_SHOP247_10B"))
ENDPROC
/// PURPOSE: Returns TRUE if the default states have been set for the buildings and doors
FUNC BOOL HAS_DEFAULT_BUILDING_DATA_BEEN_SET()
IF USE_SP_BUILDING_CONTROLLER_DATA()
#if USE_CLF_DLC
RETURN g_savedGlobalsClifford.sBuildingData.bDefaultDataSet
#endif
#if USE_NRM_DLC
RETURN g_savedGlobalsnorman.sBuildingData.bDefaultDataSet
#endif
#if not USE_CLF_DLC
#if not USE_NRM_DLC
RETURN g_savedGlobals.sBuildingData.bDefaultDataSet
#endif
#endif
ELSE
RETURN g_MPBuildingData.bDefaultDataSet
ENDIF
ENDFUNC
/// PURPOSE: This gets called on startup to ensure the map data is in sync before code warp the player to the last saved position.
PROC INITIALISE_STORED_BUILDING_STATES_ON_STARTUP( BOOL bIgnoreDistanceChecks = FALSE )
// DEBUG_PRINTCALLSTACK()
// SCRIPT_ASSERT("INITIALISE_STORED_BUILDING_STATES_ON_STARTUP()")
CPRINTLN(DEBUG_BUILDING, "INITIALISE_STORED_BUILDING_STATES_ON_STARTUP() bIgnoreDistanceChecks = ", bIgnoreDistanceChecks)
IF HAS_DEFAULT_BUILDING_DATA_BEEN_SET()
CPRINTLN(DEBUG_BUILDING, "...default data has been set so initialise all the building states")
INT i
REPEAT NUMBER_OF_BUILDINGS i
g_bBuildingStateUpdateDelay[i] = TRUE // This flag will get ignored when this proc is called from the startup script.
PERFORM_BUILDING_SWAP(INT_TO_ENUM(BUILDING_NAME_ENUM, i), TRUE, bIgnoreDistanceChecks )
ENDREPEAT
// Initialise any ambient audio zones assoUciated with building states.
RESTORE_BUILDING_STATE_ASSOCIATED_FEATURES()
// Cap or disable specified interiors.
SETUP_INTERIOR_STATES()
ELSE
CPRINTLN(DEBUG_BUILDING, "...default data has not been set so skip initialisation")
ENDIF
g_bInitialBuildingStatesSet = TRUE
ENDPROC
/// PURPOSE: Sets all the default building states and locks all the doors
PROC SETUP_DEFAULT_BUILDING_DATA()
IF USE_SP_BUILDING_CONTROLLER_DATA()
CPRINTLN(DEBUG_BUILDING, "Setting default building data for single-player.")
ELSE
CPRINTLN(DEBUG_BUILDING, "Setting default building data for multi-player.")
ENDIF
INT i
FOR i = 0 TO NUMBER_OF_BUILDINGS-1
// Every building should start off in the normal state
IF USE_SP_BUILDING_CONTROLLER_DATA()
#if USE_CLF_DLC
g_savedGlobalsClifford.sBuildingData.eBuildingState[i] = BUILDINGSTATE_NORMAL
#endif
#if USE_NRM_DLC
g_savedGlobalsnorman.sBuildingData.eBuildingState[i] = BUILDINGSTATE_NORMAL
#endif
#if not USE_CLF_DLC
#if not use_NRM_DLC
g_savedGlobals.sBuildingData.eBuildingState[i] = BUILDINGSTATE_NORMAL
#endif
#endif
ELSE
#IF NOT USE_SP_DLC
g_MPBuildingData.eBuildingState[i] = BUILDINGSTATE_NORMAL
#ENDIF
ENDIF
// Set the stored flag so the building_controller knows to deal with it
g_bUpdateBuildingState[i] = TRUE
g_bBuildingStateUpdateDelay[i] = FALSE
ENDFOR
FOR i = 0 TO NUMBER_OF_DOORS-1
IF USE_SP_BUILDING_CONTROLLER_DATA()
#if USE_CLF_DLC
g_savedGlobalsClifford.sBuildingData.eDoorState[i] = DOORSTATE_LOCKED
#endif
#if USE_NRM_DLC
g_savedGlobalsnorman.sBuildingData.eDoorState[i] = DOORSTATE_LOCKED
#endif
#if not USE_CLF_DLC
#if not USE_NRM_DLC
g_savedGlobals.sBuildingData.eDoorState[i] = DOORSTATE_LOCKED
#endif
#endif
ELSE
#IF NOT USE_SP_DLC
g_MPBuildingData.eDoorState[i] = DOORSTATE_UNLOCKED
#ENDIF
ENDIF
// Set the stored flag so the building_controller knows to deal with it
SET_BIT(g_iUpdateDoorStateBitset[i/32], (i%32))
g_sForceDoorUpdateData.iForceDoorUpdateCount = 0
g_iOverrideDoorStateCounter[i] = 0
CLEAR_BIT(g_iOverrideDoorStateBitset[i/32], i%32)
g_eOverrideDoorState[i] = DOORSTATE_UNLOCKED
g_eCurrentDoorState[i] = DOORSTATE_UNLOCKED
ENDFOR
IF USE_SP_BUILDING_CONTROLLER_DATA()
#if USE_CLF_DLC
g_savedGlobalsClifford.sBuildingData.eBuildingState[BUILDINGNAME_SB_FLOYDS] = BUILDINGSTATE_DESTROYED
g_savedGlobalsClifford.sBuildingData.eBuildingState[BUILDINGNAME_SB_KRIS_HOLTS] = BUILDINGSTATE_DESTROYED
g_savedGlobalsClifford.sBuildingData.eBuildingState[BUILDINGNAME_SB_TREVORS_TRAILER] = BUILDINGSTATE_DESTROYED
g_savedGlobalsClifford.sBuildingData.eBuildingState[BUILDINGNAME_IPL_YOGA_GAME] = BUILDINGSTATE_DESTROYED
g_savedGlobalsClifford.sBuildingData.eDoorState[DOORNAME_HICK_BAR_F_INT] = DOORSTATE_UNLOCKED
g_savedGlobalsClifford.sBuildingData.eDoorState[DOORNAME_SWEATSHOP_OFFICE] = DOORSTATE_UNLOCKED
g_savedGlobalsClifford.sBuildingData.eDoorState[DOORNAME_SWEATSHOP_STORE] = DOORSTATE_UNLOCKED
g_savedGlobalsClifford.sBuildingData.eDoorState[DOORNAME_SWEATSHOP_OFFICE_STORE] = DOORSTATE_UNLOCKED
g_savedGlobalsClifford.sBuildingData.eDoorState[DOORNAME_GUN_SHOP_01_DT_SR] = DOORSTATE_UNLOCKED
g_savedGlobalsClifford.sBuildingData.bDefaultDataSet = TRUE
#endif
#if USE_NRM_DLC
g_savedGlobalsnorman.sBuildingData.eBuildingState[BUILDINGNAME_SB_FLOYDS] = BUILDINGSTATE_DESTROYED
g_savedGlobalsnorman.sBuildingData.eBuildingState[BUILDINGNAME_SB_KRIS_HOLTS] = BUILDINGSTATE_DESTROYED
g_savedGlobalsnorman.sBuildingData.eBuildingState[BUILDINGNAME_SB_TREVORS_TRAILER] = BUILDINGSTATE_DESTROYED
g_savedGlobalsnorman.sBuildingData.eBuildingState[BUILDINGNAME_IPL_YOGA_GAME] = BUILDINGSTATE_DESTROYED
g_savedGlobalsnorman.sBuildingData.eDoorState[DOORNAME_HICK_BAR_F_INT] = DOORSTATE_UNLOCKED
g_savedGlobalsnorman.sBuildingData.eDoorState[DOORNAME_SWEATSHOP_OFFICE] = DOORSTATE_UNLOCKED
g_savedGlobalsnorman.sBuildingData.eDoorState[DOORNAME_SWEATSHOP_STORE] = DOORSTATE_UNLOCKED
g_savedGlobalsnorman.sBuildingData.eDoorState[DOORNAME_SWEATSHOP_OFFICE_STORE] = DOORSTATE_UNLOCKED
g_savedGlobalsnorman.sBuildingData.eDoorState[DOORNAME_GUN_SHOP_01_DT_SR] = DOORSTATE_UNLOCKED
g_savedGlobalsnorman.sBuildingData.bDefaultDataSet = TRUE
#endif
#if not USE_CLF_DLC
#if not USE_NRM_DLC
g_savedGlobals.sBuildingData.eBuildingState[BUILDINGNAME_SB_FLOYDS] = BUILDINGSTATE_DESTROYED
g_savedGlobals.sBuildingData.eBuildingState[BUILDINGNAME_SB_KRIS_HOLTS] = BUILDINGSTATE_DESTROYED
g_savedGlobals.sBuildingData.eBuildingState[BUILDINGNAME_SB_TREVORS_TRAILER] = BUILDINGSTATE_DESTROYED
g_savedGlobals.sBuildingData.eBuildingState[BUILDINGNAME_IPL_YOGA_GAME] = BUILDINGSTATE_DESTROYED
g_savedGlobals.sBuildingData.eDoorState[DOORNAME_HICK_BAR_F_INT] = DOORSTATE_UNLOCKED
g_savedGlobals.sBuildingData.eDoorState[DOORNAME_SWEATSHOP_OFFICE] = DOORSTATE_UNLOCKED
g_savedGlobals.sBuildingData.eDoorState[DOORNAME_SWEATSHOP_STORE] = DOORSTATE_UNLOCKED
g_savedGlobals.sBuildingData.eDoorState[DOORNAME_SWEATSHOP_OFFICE_STORE] = DOORSTATE_UNLOCKED
g_savedGlobals.sBuildingData.eDoorState[DOORNAME_GUN_SHOP_01_DT_SR] = DOORSTATE_UNLOCKED
g_savedGlobals.sBuildingData.bDefaultDataSet = TRUE
#endif
#endif
ELSE
#IF NOT USE_SP_DLC
g_MPBuildingData.eBuildingState[BUILDINGNAME_IPL_LOST_GANG_DOORS] = BUILDINGSTATE_DESTROYED
g_MPBuildingData.eBuildingState[BUILDINGNAME_ES_CAR_SHOWROOOM_SHUTTERS] = BUILDINGSTATE_DESTROYED
g_MPBuildingData.eBuildingState[BUILDINGNAME_IPL_CRUISESHIP] = BUILDINGSTATE_DESTROYED
g_MPBuildingData.eBuildingState[BUILDINGNAME_IPL_YOGA_GAME] = BUILDINGSTATE_DESTROYED
//g_MPBuildingData.eBuildingState[BUILDINGNAME_IPL_MILBAS_MPGATES] = BUILDINGSTATE_DESTROYED //1361093
g_MPBuildingData.eBuildingState[BUILDINGNAME_IPL_CAR_SHOWROOM_INTERIOR] = BUILDINGSTATE_DESTROYED
//g_MPBuildingData.eBuildingState[BUILDINGNAME_IPL_MPAPT_EXTERIOR] = BUILDINGSTATE_DESTROYED
g_MPBuildingData.eBuildingState[BUILDINGNAME_IPL_PILLBOX_HILL_INTERIOR] = BUILDINGSTATE_DESTROYED
g_MPBuildingData.eBuildingState[BUILDINGNAME_IPL_AIRFIELD_PROPS] = BUILDINGSTATE_DESTROYED
// IF GET_COMMANDLINE_PARAM_EXISTS("sc_LaunchHeistsFromFlow")
g_MPBuildingData.eBuildingState[BUILDINGNAME_IPL_SWEATSHOP_NO_INTERIOR] = BUILDINGSTATE_DESTROYED
g_MPBuildingData.eBuildingState[BUILDINGNAME_IPL_SWEATSHOP_WITH_INTERIOR] = BUILDINGSTATE_DESTROYED
g_MPBuildingData.eBuildingState[BUILDINGNAME_IPL_SWEATSHOP_LOD_DOOR] = BUILDINGSTATE_DESTROYED
g_MPBuildingData.eBuildingState[BUILDINGNAME_IPL_SWEATSHOP_BURNT] = BUILDINGSTATE_NORMAL
g_MPBuildingData.eBuildingState[BUILDINGNAME_IPL_SWEATSHOP_WINDOW_LIGHTS] = BUILDINGSTATE_NORMAL
PRINTLN("[dsw] [SETUP_DEFAULT_BUILDING_DATA] Setup Lester sweatshop for heist")
// ENDIF
g_MPBuildingData.bDefaultDataSet = TRUE
#ENDIF
ENDIF
#if USE_CLF_DLC
g_savedGlobalsClifford.sBuildingData.eBuildingState[BUILDINGNAME_IPL_PILLBOX_HILL_INTERIOR] = BUILDINGSTATE_DESTROYED
g_savedGlobalsClifford.sBuildingData.eBuildingState[BUILDINGNAME_IPL_AIRFIELD_PROPS] = BUILDINGSTATE_DESTROYED
#endif
#if USE_NRM_DLC
g_savedGlobalsnorman.sBuildingData.eBuildingState[BUILDINGNAME_IPL_PILLBOX_HILL_INTERIOR] = BUILDINGSTATE_DESTROYED
g_savedGlobalsnorman.sBuildingData.eBuildingState[BUILDINGNAME_IPL_AIRFIELD_PROPS] = BUILDINGSTATE_DESTROYED
#endif
#if not USE_CLF_DLC
#if not use_NRM_DLC
g_savedGlobals.sBuildingData.eBuildingState[BUILDINGNAME_IPL_PILLBOX_HILL_INTERIOR] = BUILDINGSTATE_DESTROYED
g_savedGlobals.sBuildingData.eBuildingState[BUILDINGNAME_IPL_AIRFIELD_PROPS] = BUILDINGSTATE_DESTROYED
#endif
#endif
ENDPROC
PROC INITIALISE_EXTENDED_PICKUP_PROBE_AREAS()
// Heist Facilities.
ADD_EXTENDED_PICKUP_PROBE_AREA(<<1287.4130, 2846.5930, 45.0500>>, 40.0)
ADD_EXTENDED_PICKUP_PROBE_AREA(<<19.0220, 2611.2339, 81.6560>>, 40.0)
ADD_EXTENDED_PICKUP_PROBE_AREA(<<2769.0891, 3920.1890, 41.4880>>, 40.0)
ADD_EXTENDED_PICKUP_PROBE_AREA(<<3407.5210, 5504.7178, 21.9340>>, 40.0)
ADD_EXTENDED_PICKUP_PROBE_AREA(<<2.4300, 6831.9058, 11.4730>>, 40.0)
ADD_EXTENDED_PICKUP_PROBE_AREA(<<-2231.2839, 2417.6641, 7.8370>>, 40.0)
ADD_EXTENDED_PICKUP_PROBE_AREA(<<-8.5274, 3327.2117, 40.5878>>, 40.0)
ADD_EXTENDED_PICKUP_PROBE_AREA(<<2086.2700, 1761.5515, 102.980>>, 40.0)
ADD_EXTENDED_PICKUP_PROBE_AREA(<<1874.6890, 284.7910, 159.9610>>, 40.0)
ENDPROC
PROC CLEANUP_EXTENDED_PICKUP_PROBE_AREAS()
CLEAR_EXTENDED_PICKUP_PROBE_AREAS()
ENDPROC