Files
GTASource/game/renderer/HierarchyIds.h
expvintl 419f2e4752 init
2025-02-23 17:40:52 +08:00

1092 lines
24 KiB
C

//
//
// Filename: HierarchyIds.h
// Creator: Adam Fowler
// $Author: $
// $Date: $
// $Revision: $
// Description: List of all the hierarchy IDs
//
//
#ifndef INC_HIERARCHY_IDS_H_
#define INC_HIERARCHY_IDS_H_
// CAR hierarchy IDs
//
// Don't change without making sure it's not going to mess up
// the other vehicles that are derived from cars (below) )
//
typedef enum {
VEH_INVALID_ID = -1,
VEH_CHASSIS = 0,
VEH_CHASSIS_LOWLOD,
VEH_CHASSIS_DUMMY,
VEH_DOOR_DSIDE_F,
VEH_DOOR_DSIDE_R,
VEH_DOOR_PSIDE_F,
VEH_DOOR_PSIDE_R,
VEH_HANDLE_DSIDE_F,
VEH_HANDLE_DSIDE_R,
VEH_HANDLE_PSIDE_F,
VEH_HANDLE_PSIDE_R,
VEH_WHEEL_LF,
VEH_WHEEL_FIRST_WHEEL = VEH_WHEEL_LF,
VEH_WHEEL_RF,
VEH_WHEEL_LR,
VEH_WHEEL_RR,
// Extra wheels
VEH_WHEEL_LM1,
VEH_WHEEL_RM1,
VEH_WHEEL_LM2,
VEH_WHEEL_RM2,
VEH_WHEEL_LM3,
VEH_WHEEL_RM3,
VEH_WHEEL_LAST_WHEEL = VEH_WHEEL_RM3,
VEH_SUSPENSION_LF,
VEH_SUSPENSION_RF,
VEH_SUSPENSION_LM,
VEH_SUSPENSION_RM,
VEH_SUSPENSION_LR,
VEH_SUSPENSION_RR,
VEH_TRANSMISSION_F,
VEH_TRANSMISSION_M,
VEH_TRANSMISSION_R,
VEH_WHEELHUB_LF,
VEH_WHEELHUB_RF,
VEH_WHEELHUB_LR,
VEH_WHEELHUB_RR,
VEH_WHEELHUB_LM1,
VEH_WHEELHUB_RM1,
VEH_WHEELHUB_LM2,
VEH_WHEELHUB_RM2,
VEH_WHEELHUB_LM3,
VEH_WHEELHUB_RM3,
VEH_FIRST_WINDOW,
VEH_WINDSCREEN = VEH_FIRST_WINDOW,
VEH_WINDSCREEN_R,
VEH_WINDOW_LF,
VEH_WINDOW_RF,
VEH_WINDOW_LR,
VEH_WINDOW_RR,
VEH_WINDOW_LM,
VEH_WINDOW_RM,
VEH_LAST_WINDOW = VEH_WINDOW_RM,
VEH_BODYSHELL,
VEH_BUMPER_F,
VEH_BUMPER_R,
VEH_WING_RF,
VEH_WING_LF,
VEH_BONNET,
VEH_BOOT,
VEH_BOOT_2,
VEH_FIRST_EXHAUST,
VEH_EXHAUST = VEH_FIRST_EXHAUST,
VEH_EXHAUST_2,
VEH_EXHAUST_3,
VEH_EXHAUST_4,
VEH_EXHAUST_5,
VEH_EXHAUST_6,
VEH_EXHAUST_7,
VEH_EXHAUST_8,
VEH_EXHAUST_9,
VEH_EXHAUST_10,
VEH_EXHAUST_11,
VEH_EXHAUST_12,
VEH_EXHAUST_13,
VEH_EXHAUST_14,
VEH_EXHAUST_15,
VEH_EXHAUST_16,
VEH_EXHAUST_17,
VEH_EXHAUST_18,
VEH_EXHAUST_19,
VEH_EXHAUST_20,
VEH_EXHAUST_21,
VEH_EXHAUST_22,
VEH_EXHAUST_23,
VEH_EXHAUST_24,
VEH_EXHAUST_25,
VEH_EXHAUST_26,
VEH_EXHAUST_27,
VEH_EXHAUST_28,
VEH_EXHAUST_29,
VEH_EXHAUST_30,
VEH_EXHAUST_31,
VEH_EXHAUST_32,
VEH_LAST_EXHAUST = VEH_EXHAUST_32,
VEH_ENGINE,
VEH_OVERHEAT,
VEH_OVERHEAT_2,
VEH_PETROLCAP,
VEH_PETROLTANK,
VEH_PETROLTANK_L,
VEH_PETROLTANK_R,
VEH_STEERING_WHEEL,
VEH_CAR_STEERING_WHEEL,
VEH_HBGRIP_L,
VEH_HBGRIP_R,
VEH_ROCKET_BOOST,
VEH_ROCKET_BOOST_2,
VEH_ROCKET_BOOST_3,
VEH_ROCKET_BOOST_4,
VEH_ROCKET_BOOST_5,
VEH_ROCKET_BOOST_6,
VEH_ROCKET_BOOST_7,
VEH_ROCKET_BOOST_8,
VEH_HEADLIGHT_L,
VEH_HEADLIGHT_R,
VEH_TAILLIGHT_L,
VEH_TAILLIGHT_R,
VEH_INDICATOR_LF,
VEH_INDICATOR_RF,
VEH_INDICATOR_LR,
VEH_INDICATOR_RR,
VEH_BRAKELIGHT_L,
VEH_BRAKELIGHT_R,
VEH_BRAKELIGHT_M,
VEH_REVERSINGLIGHT_L,
VEH_REVERSINGLIGHT_R,
VEH_NEON_L,
VEH_NEON_R,
VEH_NEON_F,
VEH_NEON_B,
VEH_EXTRALIGHT_1,
VEH_EXTRALIGHT_2,
VEH_EXTRALIGHT_3,
VEH_EXTRALIGHT_4,
VEH_LASTBREAKABLELIGHT = VEH_EXTRALIGHT_4,
VEH_EMISSIVES,
VEH_NUMBERPLATE,
VEH_INTERIORLIGHT,
VEH_PLATELIGHT,
VEH_DASHLIGHT,
VEH_DOORLIGHT_LF,
VEH_DOORLIGHT_RF,
VEH_DOORLIGHT_LR,
VEH_DOORLIGHT_RR,
VEH_SIREN_1,
VEH_SIREN_2,
VEH_SIREN_3,
VEH_SIREN_4,
VEH_SIREN_5,
VEH_SIREN_6,
VEH_SIREN_7,
VEH_SIREN_8,
VEH_SIREN_9,
VEH_SIREN_10,
VEH_SIREN_11,
VEH_SIREN_12,
VEH_SIREN_13,
VEH_SIREN_14,
VEH_SIREN_15,
VEH_SIREN_16,
VEH_SIREN_17,
VEH_SIREN_18,
VEH_SIREN_19,
VEH_SIREN_20,
VEH_SIREN_MAX = VEH_SIREN_20,
VEH_SIREN_GLASS_1,
VEH_SIREN_GLASS_2,
VEH_SIREN_GLASS_3,
VEH_SIREN_GLASS_4,
VEH_SIREN_GLASS_5,
VEH_SIREN_GLASS_6,
VEH_SIREN_GLASS_7,
VEH_SIREN_GLASS_8,
VEH_SIREN_GLASS_9,
VEH_SIREN_GLASS_10,
VEH_SIREN_GLASS_11,
VEH_SIREN_GLASS_12,
VEH_SIREN_GLASS_13,
VEH_SIREN_GLASS_14,
VEH_SIREN_GLASS_15,
VEH_SIREN_GLASS_16,
VEH_SIREN_GLASS_17,
VEH_SIREN_GLASS_18,
VEH_SIREN_GLASS_19,
VEH_SIREN_GLASS_20,
VEH_SIREN_GLASS_MAX = VEH_SIREN_GLASS_20,
VEH_WEAPON_1A,
VEH_WEAPON_1_FIRST = VEH_WEAPON_1A,
VEH_WEAPON_1B,
VEH_WEAPON_1C,
VEH_WEAPON_1D,
VEH_WEAPON_1_LAST = VEH_WEAPON_1D,
VEH_WEAPON_1A_ROT,
VEH_WEAPON_1B_ROT,
VEH_WEAPON_1C_ROT,
VEH_WEAPON_1D_ROT,
VEH_WEAPON_2A,
VEH_WEAPON_2_FIRST = VEH_WEAPON_2A,
VEH_WEAPON_2B,
VEH_WEAPON_2C,
VEH_WEAPON_2D,
VEH_WEAPON_2E,
VEH_WEAPON_2F,
VEH_WEAPON_2G,
VEH_WEAPON_2H,
VEH_WEAPON_2_LAST = VEH_WEAPON_2H,
VEH_WEAPON_2A_ROT,
VEH_WEAPON_2B_ROT,
VEH_WEAPON_2C_ROT,
VEH_WEAPON_2D_ROT,
VEH_WEAPON_3A,
VEH_WEAPON_3_FIRST = VEH_WEAPON_3A,
VEH_WEAPON_3B,
VEH_WEAPON_3C,
VEH_WEAPON_3D,
VEH_WEAPON_3_LAST = VEH_WEAPON_3D,
VEH_WEAPON_3A_ROT,
VEH_WEAPON_3B_ROT,
VEH_WEAPON_3C_ROT,
VEH_WEAPON_3D_ROT,
VEH_WEAPON_4A,
VEH_WEAPON_4_FIRST = VEH_WEAPON_4A,
VEH_WEAPON_4B,
VEH_WEAPON_4C,
VEH_WEAPON_4D,
VEH_WEAPON_4_LAST = VEH_WEAPON_4D,
VEH_WEAPON_4A_ROT,
VEH_WEAPON_4B_ROT,
VEH_WEAPON_4C_ROT,
VEH_WEAPON_4D_ROT,
VEH_WEAPON_5A,
VEH_WEAPON_5_FIRST = VEH_WEAPON_5A,
VEH_WEAPON_5B,
VEH_WEAPON_5C,
VEH_WEAPON_5D,
VEH_WEAPON_5E,
VEH_WEAPON_5F,
VEH_WEAPON_5G,
VEH_WEAPON_5H,
VEH_WEAPON_5I,
VEH_WEAPON_5J,
VEH_WEAPON_5K,
VEH_WEAPON_5L,
VEH_WEAPON_5M,
VEH_WEAPON_5N,
VEH_WEAPON_5O,
VEH_WEAPON_5P,
VEH_WEAPON_5Q,
VEH_WEAPON_5R,
VEH_WEAPON_5S,
VEH_WEAPON_5T,
VEH_WEAPON_5U,
VEH_WEAPON_5V,
VEH_WEAPON_5W,
VEH_WEAPON_5X,
VEH_WEAPON_5Y,
VEH_WEAPON_5Z,
VEH_WEAPON_5AA,
VEH_WEAPON_5AB,
VEH_WEAPON_5AC,
VEH_WEAPON_5AD,
VEH_WEAPON_5AE,
VEH_WEAPON_5AF,
VEH_WEAPON_5AG,
VEH_WEAPON_5AH,
VEH_WEAPON_5AI,
VEH_WEAPON_5AJ,
VEH_WEAPON_5AK,
VEH_WEAPON_5AL,
VEH_WEAPON_5_LAST = VEH_WEAPON_5AL,
VEH_WEAPON_5A_ROT,
VEH_WEAPON_5B_ROT,
VEH_WEAPON_5C_ROT,
VEH_WEAPON_5D_ROT,
VEH_WEAPON_5E_ROT,
VEH_WEAPON_5F_ROT,
VEH_WEAPON_5G_ROT,
VEH_WEAPON_5H_ROT,
VEH_WEAPON_5I_ROT,
VEH_WEAPON_5J_ROT,
VEH_WEAPON_5K_ROT,
VEH_WEAPON_5L_ROT,
VEH_WEAPON_5M_ROT,
VEH_WEAPON_5N_ROT,
VEH_WEAPON_5O_ROT,
VEH_WEAPON_5P_ROT,
VEH_WEAPON_5Q_ROT,
VEH_WEAPON_5R_ROT,
VEH_WEAPON_5S_ROT,
VEH_WEAPON_5T_ROT,
VEH_WEAPON_5U_ROT,
VEH_WEAPON_5V_ROT,
VEH_WEAPON_5W_ROT,
VEH_WEAPON_5X_ROT,
VEH_WEAPON_5Y_ROT,
VEH_WEAPON_5Z_ROT,
VEH_WEAPON_5AA_ROT,
VEH_WEAPON_5AB_ROT,
VEH_WEAPON_5AC_ROT,
VEH_WEAPON_5AD_ROT,
VEH_WEAPON_5AE_ROT,
VEH_WEAPON_5AF_ROT,
VEH_WEAPON_5AG_ROT,
VEH_WEAPON_5AH_ROT,
VEH_WEAPON_5AI_ROT,
VEH_WEAPON_5AJ_ROT,
VEH_WEAPON_5AK_ROT,
VEH_WEAPON_5AL_ROT,
VEH_WEAPON_6A,
VEH_WEAPON_6_FIRST = VEH_WEAPON_6A,
VEH_WEAPON_6B,
VEH_WEAPON_6C,
VEH_WEAPON_6D,
VEH_WEAPON_6_LAST = VEH_WEAPON_6D,
VEH_WEAPON_6A_ROT,
VEH_WEAPON_6B_ROT,
VEH_WEAPON_6C_ROT,
VEH_WEAPON_6D_ROT,
VEH_TURRET_1_BASE,
VEH_TURRET_PARTS_FIRST = VEH_TURRET_1_BASE,
VEH_TURRET_1_BARREL,
VEH_TURRET_2_BASE,
VEH_TURRET_2_BARREL,
VEH_TURRET_3_BASE,
VEH_TURRET_3_BARREL,
VEH_TURRET_4_BASE,
VEH_TURRET_4_BARREL,
VEH_TURRET_PARTS_LAST = VEH_TURRET_4_BARREL,
VEH_TURRET_AMMO_BELT,
VEH_SEARCHLIGHT_BASE,
VEH_SEARCHLIGHT_BARREL,
VEH_ATTACH,
VEH_ROOF,
VEH_ROOF2,
VEH_SOFTTOP_1,
VEH_SOFTTOP_2,
VEH_SOFTTOP_3,
VEH_SOFTTOP_4,
VEH_SOFTTOP_5,
VEH_SOFTTOP_6,
VEH_SOFTTOP_7,
VEH_SOFTTOP_8,
VEH_SOFTTOP_9,
VEH_SOFTTOP_10,
VEH_SOFTTOP_11,
VEH_SOFTTOP_12,
VEH_SOFTTOP_13,
VEH_SOFT1,
VEH_PONTOON_L,
VEH_PONTOON_R,
VEH_FORKS,
VEH_MAST,
VEH_CARRIAGE,
VEH_FORK_LEFT,
VEH_FORK_RIGHT,
VEH_FORKS_ATTACH,
VEH_HANDLER_FRAME_1,
VEH_HANDLER_FRAME_2,
VEH_HANDLER_FRAME_3,
VEH_HANDLER_FRAME_PICKUP_1,
VEH_HANDLER_FRAME_PICKUP_2,
VEH_HANDLER_FRAME_PICKUP_3,
VEH_HANDLER_FRAME_PICKUP_4,
VEH_DODO_NO_PED_COL_STEP_L,
VEH_DODO_NO_PED_COL_STEP_R,
VEH_DODO_NO_PED_COL_STRUT_1_L,
VEH_DODO_NO_PED_COL_STRUT_2_L,
VEH_DODO_NO_PED_COL_STRUT_1_R,
VEH_DODO_NO_PED_COL_STRUT_2_R,
VEH_FREIGHTCONT2_CONTAINER,
VEH_FREIGHTCONT2_BOGEY,
VEH_FREIGHTGRAIN_SLIDING_DOOR,
VEH_DOOR_HATCH_R,
VEH_DOOR_HATCH_L,
VEH_TOW_ARM,
VEH_TOW_MOUNT_A,
VEH_TOW_MOUNT_B,
VEH_TIPPER,
VEH_PICKUP_REEL, //combine havester/thresher part
VEH_AUGER, //combine havester/thresher part
VEH_SLIPSTREAM_L,
VEH_SLIPSTREAM_R,
VEH_ARM1,
VEH_ARM2,
VEH_ARM3,
VEH_ARM4,
VEH_DIGGER_ARM,
VEH_ARTICULATED_DIGGER_ARM_BASE,
VEH_ARTICULATED_DIGGER_ARM_BOOM,
VEH_ARTICULATED_DIGGER_ARM_STICK,
VEH_ARTICULATED_DIGGER_ARM_BUCKET,
VEH_DIGGER_ARM_MAX,//count for the digger arms
VEH_DIGGER_SHOVEL_2 = VEH_DIGGER_ARM_MAX, //reuse digger arm count as it's only a reference and should never point to anything, make sure this is always below VEH_DIGGER_ARM_MAX
VEH_DIGGER_SHOVEL_3,
VEH_CUTTER_ARM_1,
VEH_CUTTER_ARM_2,
VEH_CUTTER_BOOM_DRIVER,
VEH_CUTTER_CUTTER_DRIVER,
VEH_VEHICLE_BLOCKER,
VEH_DIALS,
VEH_LIGHTCOVER,
VEH_BOBBLE_HEAD,
VEH_BOBBLE_BASE,
VEH_BOBBLE_HAND,
VEH_BOBBLE_ENGINE,
VEH_SPOILER,
VEH_STRUTS,
VEH_FLAP_L,
VEH_FLAP_R,
VEH_MISC_A,
VEH_MISC_B,
VEH_MISC_C,
VEH_MISC_D,
VEH_MISC_E,
VEH_MISC_F,
VEH_MISC_G,
VEH_MISC_H,
VEH_MISC_I,
VEH_MISC_J,
VEH_MISC_K,
VEH_MISC_L,
VEH_MISC_M,
VEH_MISC_N,
VEH_MISC_O,
VEH_MISC_P,
VEH_MISC_Q,
VEH_MISC_R,
VEH_MISC_S,
VEH_MISC_T,
VEH_MISC_U,
VEH_MISC_V,
VEH_MISC_W,
VEH_MISC_X,
VEH_MISC_Y,
VEH_MISC_Z,
VEH_MISC_1,
VEH_MISC_2,
VEH_MISC_3,
VEH_MISC_4,
VEH_MISC_5,
VEH_MISC_6,
VEH_MISC_7,
VEH_MISC_8,
VEH_MISC_9,
VEH_LAST_MISC = VEH_MISC_9,
VEH_EXTRA_1, // extras that can be changed in other vehicle types
VEH_EXTRA_2,
VEH_EXTRA_3,
VEH_EXTRA_4,
VEH_EXTRA_5,
VEH_EXTRA_6,
VEH_EXTRA_7,
VEH_EXTRA_8,
VEH_EXTRA_9,
VEH_EXTRA_10,
VEH_EXTRA_11,
VEH_EXTRA_12,
VEH_EXTRA_13,
VEH_EXTRA_14,
VEH_EXTRA_15,
VEH_EXTRA_16,
VEH_LAST_EXTRA = VEH_EXTRA_16,
VEH_BREAKABLE_EXTRA_1, // breakable extras that can be changed in other vehicle types
VEH_BREAKABLE_EXTRA_2,
VEH_BREAKABLE_EXTRA_3,
VEH_BREAKABLE_EXTRA_4,
VEH_BREAKABLE_EXTRA_5,
VEH_BREAKABLE_EXTRA_6,
VEH_BREAKABLE_EXTRA_7,
VEH_BREAKABLE_EXTRA_8,
VEH_BREAKABLE_EXTRA_9,
VEH_BREAKABLE_EXTRA_10,
VEH_LAST_BREAKABLE_EXTRA = VEH_BREAKABLE_EXTRA_10,
VEH_MOD_COLLISION_1, // vehicle mod collision
VEH_MOD_COLLISION_2,
VEH_MOD_COLLISION_3,
VEH_MOD_COLLISION_4,
VEH_MOD_COLLISION_5,
VEH_MOD_COLLISION_6,
VEH_MOD_COLLISION_7,
VEH_MOD_COLLISION_8,
VEH_MOD_COLLISION_9,
VEH_MOD_COLLISION_10,
VEH_MOD_COLLISION_11,
VEH_MOD_COLLISION_12,
VEH_MOD_COLLISION_13,
VEH_MOD_COLLISION_14,
VEH_MOD_COLLISION_15,
VEH_MOD_COLLISION_16,
VEH_LAST_MOD_COLLISION = VEH_MOD_COLLISION_16,
VEH_SPRING_RF,
VEH_SPRING_LF,
VEH_SPRING_RR,
VEH_SPRING_LR,
VEH_PARACHUTE_OPEN,
VEH_PARACHUTE_DEPLOY,
VEH_RAMMING_SCOOP,
VEH_TURRET_FIRST_MOD,
VEH_TURRET_1_MOD = VEH_TURRET_FIRST_MOD,
VEH_TURRET_2_MOD,
VEH_TURRET_3_MOD,
VEH_TURRET_4_MOD,
VEH_TURRET_LAST_MOD = VEH_TURRET_4_MOD,
AMPHIBIOUS_AUTOMOBILE_STATIC_PROP,
AMPHIBIOUS_AUTOMOBILE_STATIC_PROP2,
AMPHIBIOUS_AUTOMOBILE_MOVING_PROP,
AMPHIBIOUS_AUTOMOBILE_MOVING_PROP2,
AMPHIBIOUS_AUTOMOBILE_RUDDER,
AMPHIBIOUS_AUTOMOBILE_RUDDER2,
FIRST_MISSILE_FLAP,
VEH_MISSILEFLAP_2A = FIRST_MISSILE_FLAP,
VEH_MISSILEFLAP_2B,
VEH_MISSILEFLAP_2C,
VEH_MISSILEFLAP_2D,
VEH_MISSILEFLAP_2E,
VEH_MISSILEFLAP_2F,
LAST_MISSILE_FLAP = VEH_MISSILEFLAP_2F,
VEH_EXTENDABLE_SIDE_L,
VEH_EXTENDABLE_SIDE_R,
FIRST_EXTENDABLE,
VEH_EXTENDABLE_A = FIRST_EXTENDABLE,
VEH_EXTENDABLE_B,
FIRST_REAR_EXTENDABLE,
VEH_EXTENDABLE_C = FIRST_REAR_EXTENDABLE,
VEH_EXTENDABLE_D,
LAST_EXTENDABLE = VEH_EXTENDABLE_D,
FIRST_ROTATOR,
VEH_ROTATOR_L = FIRST_ROTATOR,
VEH_ROTATOR_R,
LAST_ROTATOR = VEH_ROTATOR_R,
VEH_MOD_A,
VEH_MOD_B,
VEH_MOD_C,
VEH_MOD_D,
VEH_MOD_E,
VEH_MOD_F,
VEH_MOD_G,
VEH_MOD_H,
VEH_MOD_I,
VEH_MOD_J,
VEH_MOD_K,
VEH_MOD_L,
VEH_MOD_M,
VEH_MOD_N,
VEH_MOD_O,
VEH_MOD_P,
VEH_MOD_Q,
VEH_MOD_R,
VEH_MOD_S,
VEH_MOD_T,
VEH_MOD_U,
VEH_MOD_V,
VEH_MOD_W,
VEH_MOD_X,
VEH_MOD_Y,
VEH_MOD_Z,
VEH_MOD_AA,
VEH_MOD_AB,
VEH_MOD_AC,
VEH_MOD_AD,
VEH_MOD_AE,
VEH_MOD_AF,
VEH_MOD_AG,
VEH_MOD_AH,
VEH_MOD_AI,
VEH_MOD_AJ,
VEH_MOD_AK,
VEH_TURRET_A_FIRST_MOD,
VEH_TURRET_A1_MOD = VEH_TURRET_A_FIRST_MOD,
VEH_TURRET_A2_MOD,
VEH_TURRET_A3_MOD,
VEH_TURRET_A4_MOD,
VEH_TURRET_A_LAST_MOD = VEH_TURRET_A4_MOD,
VEH_TURRET_A1_BASE,
VEH_TURRET_A1_BARREL,
VEH_TURRET_A2_BASE,
VEH_TURRET_A2_BARREL,
VEH_TURRET_A3_BASE,
VEH_TURRET_A3_BARREL,
VEH_TURRET_A4_BASE,
VEH_TURRET_A4_BARREL,
VEH_TURRET_A_AMMO_BELT,
VEH_TURRET_B_FIRST_MOD,
VEH_TURRET_B1_MOD = VEH_TURRET_B_FIRST_MOD,
VEH_TURRET_B2_MOD,
VEH_TURRET_B3_MOD,
VEH_TURRET_B4_MOD,
VEH_TURRET_B_LAST_MOD = VEH_TURRET_B4_MOD,
VEH_TURRET_B1_BASE,
VEH_TURRET_B1_BARREL,
VEH_TURRET_B2_BASE,
VEH_TURRET_B2_BARREL,
VEH_TURRET_B3_BASE,
VEH_TURRET_B3_BARREL,
VEH_TURRET_B4_BASE,
VEH_TURRET_B4_BARREL,
VEH_TURRET_B_AMMO_BELT,
VEH_SUSPENSION_LM1,
VEH_SUSPENSION_RM1,
VEH_TRANSMISSION_M1,
VEH_LEG_FL,
VEH_LEG_FR,
VEH_LEG_RL,
VEH_LEG_RR,
VEH_FIRST_BREAKABLE_PANEL,
VEH_PANEL_L1 = VEH_FIRST_BREAKABLE_PANEL,
VEH_PANEL_L2,
VEH_PANEL_L3,
VEH_PANEL_L4,
VEH_PANEL_L5,
VEH_PANEL_R1,
VEH_PANEL_R2,
VEH_PANEL_R3,
VEH_PANEL_R4,
VEH_PANEL_R5,
VEH_LAST_BREAKABLE_PANEL = VEH_PANEL_R5,
VEH_FOLDING_WING_L,
VEH_FOLDING_WING_R,
VEH_STAND,
VEH_SPEAKER_FIRST,
VEH_SPEAKER = VEH_SPEAKER_FIRST,
VEH_SPEAKER_LAST = VEH_SPEAKER,
VEH_NOZZLE_F,
VEH_NOZZLE_R,
// arena mode extra mods
VEH_FIRST_ARENA_MOD,
VEH_FIRST_R_BLADE_MOD = VEH_FIRST_ARENA_MOD,
VEH_BLADE_R_1_MOD = VEH_FIRST_R_BLADE_MOD,
VEH_BLADE_R_1_FAST,
VEH_BLADE_R_2_MOD,
VEH_BLADE_R_2_FAST,
VEH_BLADE_R_3_MOD,
VEH_BLADE_R_3_FAST,
VEH_LAST_R_BLADE_MOD = VEH_BLADE_R_3_FAST,
VEH_FIRST_F_BLADE_MOD,
VEH_BLADE_F_1_MOD = VEH_FIRST_F_BLADE_MOD,
VEH_BLADE_F_1_FAST,
VEH_BLADE_F_2_MOD,
VEH_BLADE_F_2_FAST,
VEH_BLADE_F_3_MOD,
VEH_BLADE_F_3_FAST,
VEH_LAST_F_BLADE_MOD = VEH_BLADE_F_3_FAST,
VEH_FIRST_S_BLADE_MOD,
VEH_BLADE_S_1_MOD = VEH_FIRST_S_BLADE_MOD,
VEH_BLADE_S_1_L_FAST,
VEH_BLADE_S_1_R_FAST,
VEH_BLADE_S_2_MOD,
VEH_BLADE_S_2_L_FAST,
VEH_BLADE_S_2_R_FAST,
VEH_BLADE_S_3_MOD,
VEH_BLADE_S_3_L_FAST,
VEH_BLADE_S_3_R_FAST,
VEH_LAST_S_BLADE_MOD = VEH_BLADE_S_3_R_FAST,
VEH_FIRST_SPIKE_MOD,
VEH_SPIKE_1_MOD = VEH_FIRST_SPIKE_MOD,
VEH_SPIKE_1_PED,
VEH_SPIKE_1_CAR,
VEH_SPIKE_2_MOD,
VEH_SPIKE_2_PED,
VEH_SPIKE_2_CAR,
VEH_SPIKE_3_MOD,
VEH_SPIKE_3_PED,
VEH_SPIKE_3_CAR,
VEH_LAST_SPIKE_MOD = VEH_SPIKE_3_CAR,
VEH_FIRST_SCOOP_MOD,
VEH_SCOOP_1_MOD = VEH_FIRST_SCOOP_MOD,
VEH_SCOOP_2_MOD,
VEH_SCOOP_3_MOD,
VEH_LAST_SCOOP_MOD = VEH_SCOOP_3_MOD,
VEH_FIRST_RAMP_MOD,
VEH_RAMP_1_MOD = VEH_FIRST_RAMP_MOD,
VEH_RAMP_2_MOD,
VEH_RAMP_3_MOD,
VEH_LAST_RAMP_MOD = VEH_RAMP_3_MOD,
VEH_FIRST_FRONT_SPIKE_MOD,
VEH_FRONT_SPIKE_1 = VEH_FIRST_FRONT_SPIKE_MOD,
VEH_FRONT_SPIKE_2,
VEH_FRONT_SPIKE_3,
VEH_LAST_FRONT_SPIKE_MOD = VEH_FRONT_SPIKE_3,
VEH_FIRST_RAMMING_BAR_MOD,
VEH_RAMMING_BAR_1 = VEH_FIRST_RAMMING_BAR_MOD,
VEH_RAMMING_BAR_2,
VEH_RAMMING_BAR_3,
VEH_RAMMING_BAR_4,
VEH_LAST_RAMMING_BAR_MOD = VEH_RAMMING_BAR_4,
VEH_LAST_ARENA_MOD = VEH_LAST_RAMMING_BAR_MOD,
VEH_BOBBLE_MISC_START,
VEH_BOBBLE_MISC_1 = VEH_BOBBLE_MISC_START,
VEH_BOBBLE_MISC_2,
VEH_BOBBLE_MISC_3,
VEH_BOBBLE_MISC_4,
VEH_BOBBLE_MISC_5,
VEH_BOBBLE_MISC_6,
VEH_BOBBLE_MISC_7,
VEH_BOBBLE_MISC_8,
VEH_BOBBLE_MISC_END = VEH_BOBBLE_MISC_8,
VEH_SUPERCHARGER_1,
VEH_SUPERCHARGER_2,
VEH_SUPERCHARGER_3,
VEH_TOMBSTONE,
VEH_NUM_NODES, // this defines the TOTAL number of id's available for any vehicle type
LANDING_GEAR_F = VEH_SUSPENSION_LF,
LANDING_GEAR_RL = VEH_SUSPENSION_RF,
LANDING_GEAR_LM1 = VEH_SUSPENSION_LM,
LANDING_GEAR_RM = VEH_SUSPENSION_RM,
LANDING_GEAR_RM1 = VEH_SUSPENSION_LR,
LANDING_GEAR_RR = VEH_SUSPENSION_RR,
NUM_LANDING_GEARS = 6, // the first one is VEH_SUSPENSION_LF (20) and the last one is VEH_SUSPENSION_RR (25)
FIRST_LANDING_GEAR = LANDING_GEAR_F,
LANDING_GEAR_DOOR_FL = VEH_SIREN_GLASS_1,
LANDING_GEAR_DOOR_FR,
LANDING_GEAR_DOOR_RL1,
LANDING_GEAR_DOOR_RR1,
LANDING_GEAR_DOOR_RL2,
LANDING_GEAR_DOOR_RR2,
LANDING_GEAR_DOOR_RML,
LANDING_GEAR_DOOR_RMR,
NUM_LANDING_GEAR_DOORS = 8,
FIRST_LANDING_GEAR_DOOR = LANDING_GEAR_DOOR_FL,
LANDING_GEAR_NUM_OVERRIDDEN_NODES = 14,
// plane and heli's are derived from cars
// and use same base id's, with some extras
// Static props get rendered when propellers go slow
// moving ones get rendered when propellers go fast
PLANE_PROP_1 = VEH_MISC_A, // The collision for propeller 1
PLANE_PROP_2,
PLANE_PROP_3,
PLANE_PROP_4,
PLANE_PROP_5,
PLANE_PROP_6,
PLANE_PROP_7,
PLANE_PROP_8,
PLANE_RUDDER, // Start of damage sections // Start of breakable components
PLANE_RUDDER_2,
PLANE_ELEVATOR_L,
PLANE_ELEVATOR_R,
PLANE_AILERON_L,
PLANE_AILERON_R,
PLANE_AIRBRAKE_L,
PLANE_AIRBRAKE_R,
PLANE_WING_L,
PLANE_WING_R,
PLANE_TAIL,
PLANE_ENGINE_L,
PLANE_ENGINE_R, // End of breakable components
PLANE_NOZZLE_F,
PLANE_NOZZLE_R, // End of damage sections (out of space for damage sections to cover the landing gear :()
PLANE_AFTERBURNER,
PLANE_AFTERBURNER_2,
PLANE_AFTERBURNER_3,
PLANE_AFTERBURNER_4,
PLANE_WINGTIP_1,
PLANE_WINGTIP_2,
PLANE_WING_RL,
PLANE_WING_RR,
PLANE_EXHAUST_VENT,
PLANE_HANDLEBARS,
PLANE_WINGFLAP_L,
PLANE_WINGFLAP_R,
PLANE_LAST_MISC_OVERRIDDEN_NODE = PLANE_WINGFLAP_R,
// this is just the number of specially named plane nodes (count the number of entries above)
PLANE_NUM_OVERRIDDEN_NODES = 35,
// Try to link code into these numbers so that adding new components is less painful
// Hopefully to add a new damagable part we should just add the id to the middle of end of the damage section list
PLANE_NUM_PROPELLERS = 8,
PLANE_NUM_AFTERBURNERS = 4,
PLANE_NUM_BREAKABLES = 13,
PLANE_NUM_DAMAGE_PARTS = 13,
PLANE_FIRST_DAMAGE_PART = PLANE_RUDDER,
PLANE_FIRST_BREAKABLE_PART = PLANE_RUDDER,
HELI_ROTOR_MAIN = VEH_EXTRA_1,
HELI_ROTOR_REAR,
HELI_ROTOR_MAIN_2,
HELI_ROTOR_REAR_2,
HELI_RUDDER,
HELI_ELEVATORS,
HELI_TAIL,
HELI_OUTRIGGERS_L,
HELI_OUTRIGGERS_R,
HELI_ROPE_ATTACH_A,
HELI_ROPE_ATTACH_B, // Careful adding new bits as script might already be using certain extra's for missions.
// this is just the number of specially named heli nodes (count the number of entries above)
HELI_NOSE_VARIANT_A,
HELI_NOSE_VARIANT_B,
HELI_NOSE_VARIANT_C,
HELI_WING_L,
HELI_WING_R,
HELI_AIRBRAKE_L,
HELI_AIRBRAKE_R,
HELI_AFTERBURNER,
HELI_AFTERBURNER_2,
HELI_HBGRIP_LOW_L,
HELI_HBGRIP_LOW_R,
HELI_NUM_OVERRIDDEN_NODES = 22,
HELI_NUM_ROTORS = 2,
HELI_NUM_DRONE_ROTORS = 4,
//Blimp overrides
BLIMP_PROP_1 = VEH_EXTRA_1,
BLIMP_PROP_2,
BLIMP_ELEVATOR_L,
BLIMP_ELEVATOR_R,
BLIMP_RUDDER_UPPER,
BLIMP_RUDDER_LOWER,
BLIMP_SHELL,
BLIMP_SHELL_FRAME_1,
BLIMP_SHELL_FRAME_2,
BLIMP_SHELL_FRAME_3,
BLIMP_SHELL_FRAME_4,
BLIMP_SHELL_FRAME_LAST = BLIMP_SHELL_FRAME_4,
BLIMP_ENGINE_L,
BLIMP_ENGINE_R,
BLIMP_NUM_ROTORS = 2,
BLIMP_NUM_OVERRIDDEN_NODES = 13,
// trucks have basically same setup as cars
TRAILER_LEGS = VEH_MISC_A,
TRAILER_ATTACH,
// this is just the number of specially named truck nodes (count the number of entries above)
TRAILER_NUM_OVERRIDDEN_NODES = 2,
// trucks have basically same setup as cars
DRAFTVEH_ANIMAL_ATTACH_LR = VEH_MISC_H,
DRAFTVEH_ANIMAL_ATTACH_RR,
DRAFTVEH_ANIMAL_ATTACH_LM,
DRAFTVEH_ANIMAL_ATTACH_RM,
DRAFTVEH_ANIMAL_ATTACH_LF,
DRAFTVEH_ANIMAL_ATTACH_RF,
// this is just the number of specially named truck nodes (count the number of entries above)
DRAFTVEH_NUM_OVERRIDDEN_NODES = 6,
SUBMARINECAR_PROPELLER_1 = VEH_MISC_A,
SUBMARINECAR_PROPELLER_2 = VEH_MISC_B,
SUBMARINECAR_RUDDER_1 = VEH_MISC_C,
SUBMARINECAR_RUDDER_2 = VEH_MISC_D,
SUBMARINECAR_ELEVATOR_L = VEH_MISC_F,
SUBMARINECAR_ELEVATOR_R = VEH_MISC_G,
SUBMARINECAR_WHEELCOVER_L = VEH_MISC_H,
SUBMARINECAR_WHEELCOVER_R = VEH_MISC_I,
SUBMARINECAR_FIN_MOUNT = VEH_MISC_J,
SUBMARINECAR_DRIVE_PLANE_L = VEH_MISC_U,
SUBMARINECAR_DRIVE_PLANE_R = VEH_MISC_V,
SUBMARINECAR_NUM_PROPELLERS = 2,
SUBMARINECAR_NUM_OVERRIDDEN_NODES = 11,
AMPHIBIOUS_AUTOMOBILE_NUM_PROPELLERS = 2,
AMPHIBIOUS_AUTOMOBILE_NUM_OVERRIDDEN_NODES = 6,
AMPHIBIOUS_QUAD_NUM_OVERRIDDEN_NODES = 2,
// quadbikes don't use doors, but leave anyway for simplicity
// mainly concerned with transmission/suspension comps
// doesn't have most bodywork, so ignore those IDs
QUADBIKE_HANDLEBARS = VEH_STEERING_WHEEL,
QUADBIKE_FORKS_U = VEH_SUSPENSION_LF,
QUADBIKE_FORKS_L = VEH_SUSPENSION_RF,
// this is just the number of specially named truck nodes (count the number of entries above)
QUADBIKE_NUM_OVERRIDDEN_NODES = 3,
// map all the boat components to existing car ones
// that way we can have vehicle level code that works for all types
// eg all exhausts would be mapped to CAR_EXHAUST and if that component exists then the code will work
BOAT_STATIC_PROP = VEH_WHEEL_LF,
BOAT_MOVING_PROP = VEH_WHEEL_RF,
BOAT_STATIC_PROP2 = VEH_WHEEL_LM1,
BOAT_MOVING_PROP2 = VEH_WHEEL_RM1,
BOAT_RUDDER = VEH_WHEEL_LR,
BOAT_RUDDER2 = VEH_WHEEL_RR,
BOAT_HANDLEBARS = VEH_STEERING_WHEEL, // Don't really need this one but keeping naming convention to support legacy bikes
// this is just the number of specially named boat nodes (count the number of entries above)
BOAT_NUM_OVERRIDDEN_NODES = 7,
SUB_PROPELLER_1 = VEH_WHEEL_LF,
SUB_PROPELLER_2 = VEH_WHEEL_RF,
SUB_PROPELLER_3 = VEH_WHEEL_LR,
SUB_PROPELLER_4 = VEH_WHEEL_RR,
SUB_PROPELLER_LEFT = VEH_WHEEL_LM1,
SUB_PROPELLER_RIGHT = VEH_WHEEL_RM1,
SUB_RUDDER = VEH_WHEEL_LM2,
SUB_RUDDER2 = VEH_WHEEL_RM2,
SUB_ELEVATOR_L = VEH_WHEEL_LM3,
SUB_ELEVATOR_R = VEH_WHEEL_RM3,
SUB_NUM_PROPELLERS = 6,
SUB_NUM_OVERRIDDEN_NODES = 10,
TRAIN_WHEEL_RF1 = VEH_SIREN_1,
TRAIN_WHEEL_RF2,
TRAIN_WHEEL_RF3,
TRAIN_WHEEL_RR1,
TRAIN_WHEEL_RR2,
TRAIN_WHEEL_RR3,
TRAIN_WHEEL_LF1,
TRAIN_WHEEL_LF2,
TRAIN_WHEEL_LF3,
TRAIN_WHEEL_LR1,
TRAIN_WHEEL_LR2,
TRAIN_WHEEL_LR3,
TRAIN_BOGIE_FRONT,
TRAIN_BOGIE_REAR,
TRAIN_INTERIOR,
#if !__FINAL
TRAIN_BOXCAR_SLIDE_DOOR = VEH_DOOR_DSIDE_R,
TRAIN_BOXCAR_SLIDE_DOOR2 = VEH_DOOR_PSIDE_R,
// this is just the number of specially named train nodes (count the number of entries above)
TRAIN_NUM_OVERRIDDEN_NODES = 21,
#else
TRAIN_NUM_OVERRIDDEN_NODES = 19,
#endif // #if !__FINAL
// map all the bike components to existing car ones
// that way we can have vehicle level code that works for all types
// eg all exhausts would be mapped to CAR_EXHAUST and if that component exists then the code will work
BIKE_CHASSIS = VEH_CHASSIS,
BIKE_FORKS_U = VEH_SUSPENSION_LF,
BIKE_FORKS_L = VEH_SUSPENSION_RF,
BIKE_HANDLEBARS = VEH_STEERING_WHEEL, // Don't really need this one but keeping naming convention to support legacy bikes
BIKE_WHEEL_F = VEH_WHEEL_LF,
BIKE_SWINGARM = VEH_TRANSMISSION_R,
BIKE_WHEEL_R = VEH_WHEEL_LR,
// this is just the number of specially named bike nodes (count the number of entries above)
BIKE_NUM_OVERRIDDEN_NODES = 7,
// BMX is derived from Bike (but slightly different model setup)
BMX_CHASSIS = VEH_CHASSIS,
BMX_FORKS_U = VEH_SUSPENSION_LF,
BMX_FORKS_L = VEH_SUSPENSION_RF,
BMX_WHEEL_F= VEH_WHEEL_LF,
BMX_WHEEL_R = VEH_WHEEL_LR,
BMX_SWINGARM = VEH_TRANSMISSION_R,
BMX_HANDLEBARS = VEH_STEERING_WHEEL,
BMX_CHAINSET = VEH_MISC_A,
BMX_PEDAL_L,
BMX_PEDAL_R,
// this is just the number of specially named bmx nodes (count the number of entries above)
BMX_NUM_OVERRIDDEN_NODES = 10,
WEAPON_ROOT = 0,
WEAPON_GRIP_R,
WEAPON_GRIP_L,
WEAPON_MUZZLE,
WEAPON_VFX_EJECT,
WEAPON_MAGAZINE,
WEAPON_PROJECTILE,
WEAPON_VFX_PROJTRAIL,
WEAPON_BARREL,
WEAPON_CLIP,
WEAPON_CLIP2,
WEAPON_CLIP3,
WEAPON_SCOPE,
WEAPON_SCOPE2,
WEAPON_SCOPE3,
WEAPON_GRIP,
WEAPON_GRIP2,
WEAPON_GRIP3,
WEAPON_SUPP,
WEAPON_SUPP2,
WEAPON_SUPP3,
WEAPON_FLASH,
WEAPON_FLASH2,
WEAPON_FLASH3,
WEAPON_STOCK,
WEAPON_SECONDARY,
WEAPON_LASERSIGHT,
WEAPON_LASERSIGHT2,
WEAPON_LASERSIGHT3,
WEAPON_FLSHLASER,
WEAPON_FLSHLASER2,
WEAPON_FLSHLASER3,
WEAPON_NM_BUTT_MARKER,
WEAPON_DRUM,
WEAPON_CYLINDER,
WEAPON_BARREL_AT,
MAX_WEAPON_NODES
} eHierarchyId;
CompileTimeAssert(PLANE_LAST_MISC_OVERRIDDEN_NODE <= VEH_LAST_MISC); // If this fails, you might need to extend the number of vehicle misc nodes
#endif // INC_HIERARCHY_IDS_H_