#pragma once
#include "ModelInfo.h"
struct CModelIndices
{
int16 TRAFFICLIGHTS;
int16 TLIGHT_POST;
int16 TLIGHT_WALK;
int16 TLIGHT_BOX1;
int16 TLIGHT_BOX2;
int16 TRAFFICLIGHTS_VERTICAL;
int16 TRAFFICLIGHTS_MIAMI;
int16 TRAFFICLIGHTS_TWOVERTICAL;
int16 SINGLESTREETLIGHTS1;
int16 SINGLESTREETLIGHTS2;
int16 SINGLESTREETLIGHTS3;
int16 DOUBLESTREETLIGHTS;
int16 STREETLAMP1;
int16 STREETLAMP2;
int16 ROADSFORROADBLOCKSSTART;
int16 ROADSFORROADBLOCKSEND;
int16 TREE2;
int16 TREE3;
int16 TREE6;
int16 TREE8;
int16 TREE1;
int16 TREE4;
int16 TREE5;
int16 TREE7;
int16 TREE9;
int16 TREE10;
int16 TREE11;
int16 TREE12;
int16 TREE13;
int16 TREE14;
int16 CRANE_1;
int16 CRANE_2;
int16 CRANE_3;
int16 CRANE_4;
int16 CRANE_5;
int16 CRANE_6;
int16 PARKINGMETER;
int16 PARKINGMETER2;
int16 MALLFAN;
int16 HOTELFAN_NIGHT;
int16 HOTELFAN_DAY;
int16 HOTROOMFAN;
int16 PHONEBOOTH1;
int16 WASTEBIN;
int16 BIN;
int16 POSTBOX1;
int16 NEWSSTAND;
int16 TRAFFICCONE;
int16 DUMP1;
int16 ROADWORKBARRIER1;
int16 BUSSIGN1;
int16 NOPARKINGSIGN1;
int16 PHONESIGN;
int16 TAXISIGN;
int16 FISHSTALL01;
int16 FISHSTALL02;
int16 FISHSTALL03;
int16 FISHSTALL04;
int16 BAGELSTAND2;
int16 FIRE_HYDRANT;
int16 COLLECTABLE1;
int16 MONEY;
int16 CARMINE;
int16 GARAGEDOOR1;
int16 GARAGEDOOR2;
int16 GARAGEDOOR3;
int16 GARAGEDOOR4;
int16 GARAGEDOOR5;
int16 GARAGEDOOR6;
int16 GARAGEDOOR7;
int16 GARAGEDOOR9;
int16 GARAGEDOOR10;
int16 GARAGEDOOR11;
int16 GARAGEDOOR12;
int16 GARAGEDOOR13;
int16 GARAGEDOOR14;
int16 GARAGEDOOR15;
int16 GARAGEDOOR16;
int16 GARAGEDOOR17;
int16 GARAGEDOOR18;
int16 GARAGEDOOR19;
int16 GARAGEDOOR20;
int16 GARAGEDOOR21;
int16 GARAGEDOOR22;
int16 GARAGEDOOR23;
int16 GARAGEDOOR24;
int16 GARAGEDOOR25;
int16 GARAGEDOOR26;
int16 GARAGEDOOR27;
int16 GARAGEDOOR28;
int16 GARAGEDOOR29;
int16 GARAGEDOOR30;
int16 GARAGEDOOR31;
int16 GARAGEDOOR32;
int16 GARAGEDOOR33;
int16 GARAGEDOOR34;
int16 GARAGEDOOR35;
int16 GARAGEDOOR36;
int16 GARAGEDOOR37;
int16 GARAGEDOOR38;
int16 GARAGEDOOR39;
int16 TESTRAMP1; // UNUSED
int16 TESTRAMP2;
int16 NAUTICALMINE;
int16 CRUSHERBODY;
int16 CRUSHERLID;
int16 DONKEYMAG;
int16 BULLION;
int16 FLOATPACKAGE1;
int16 BRIEFCASE;
int16 CHINABANNER1;
int16 CHINABANNER2;
int16 CHINABANNER3;
int16 CHINABANNER4;
int16 CHINABANNER5;
int16 CHINABANNER6;
int16 CHINABANNER7;
int16 CHINABANNER8;
int16 CHINABANNER9;
int16 CHINABANNER10;
int16 CHINABANNER11;
int16 CHINABANNER12;
int16 CHINALANTERN;
int16 GLASS1;
int16 GLASS2;
int16 GLASS3;
int16 GLASS4;
int16 GLASS5;
int16 GLASS6;
int16 GLASS7;
int16 GLASS8;
int16 BRIDGELIFT;
int16 BRIDGEWEIGHT;
int16 BRIDGEROADSEGMENT;
int16 EXPLODINGBARREL;
int16 ITALYBANNER1;
int16 MEGADAMAGE;
int16 REGENERATOR;
int16 INVISIBLE;
int16 GOOD_CAR;
int16 BAD_CAR;
int16 PICKUP_ADRENALINE;
int16 PICKUP_BODYARMOUR;
int16 PICKUP_INFO;
int16 PICKUP_HEALTH;
int16 PICKUP_BONUS;
int16 PICKUP_BRIBE;
int16 PICKUP_KILLFRENZY;
int16 PICKUP_CAMERA;
int16 PICKUP_REVENUE;
int16 PICKUP_SAVEGAME;
int16 PICKUP_PROPERTY;
int16 PICKUP_PROPERTY_FORSALE;
int16 PICKUP_CLOTHES;
int16 BOLLARDLIGHT;
int16 CA_SP1;
int16 CA_SP2;
int16 CA_SP3;
int16 CA_SP4;
int16 PACKAGE1IZZY;
int16 MAGNET;
int16 RAILTRACKS;
int16 FENCE;
int16 FENCE2;
int16 PETROLPUMP;
int16 PETROLPUMP2;
int16 BODYCAST;
int16 IZZY_CONFDOOR;
int16 SHIPDOOR;
int16 IZZY_JDDOOR;
int16 IZZY_JDDOOR_SLIDER;
int16 LITEHOUSE_GATE;
int16 COFFEE;
int16 BUOY;
int16 PARKTABLE;
int16 SUBWAY1;
int16 SUBWAY2;
int16 SUBWAY3;
int16 SUBWAY4;
int16 SUBWAY5;
int16 SUBWAY6;
int16 SUBWAY7;
int16 SUBWAY8;
int16 SUBWAY9;
int16 SUBWAY10;
int16 SUBWAY11;
int16 SUBWAY12;
int16 SUBWAY13;
int16 SUBWAY14;
int16 SUBWAY15;
int16 SUBWAY16;
int16 SUBWAY17;
int16 SUBWAY18;
int16 SUBPLATFORM_IND;
int16 SUBPLATFORM_COMS;
int16 SUBPLATFORM_COMS2;
int16 SUBPLATFORM_COMN;
int16 SUBPLATFORM_SUB;
int16 SUBPLATFORM_SUB2;
int16 FILES;
int16 LAMPPOST1;
int16 VEG_PALM01;
int16 VEG_PALM02;
int16 VEG_PALM03;
int16 VEG_PALM04;
int16 VEG_PALM05;
int16 VEG_PALM06;
int16 VEG_PALM07;
int16 VEG_PALM08;
int16 MLAMPPOST;
int16 BARRIER1;
int16 LITTLEHA_POLICE;
int16 TELPOLE02;
int16 TRAFFICLIGHT01;
int16 PARKBENCH;
int16 PLC_STINGER;
int16 LIGHTBEAM;
int16 AIRPORTRADAR;
int16 RCBOMB;
int16 JM_SALRADIO;
int16 BEACHBALL;
int16 SANDCASTLE1;
int16 SANDCASTLE2;
int16 JELLYFISH;
int16 JELLYFISH01;
int16 FISH1SINGLE;
int16 FISH1S;
int16 FISH2SINGLE;
int16 FISH2S;
int16 FISH3SINGLE;
int16 FISH3S;
int16 TURTLE;
int16 DOLPHIN;
int16 SHARK;
int16 SUBMARINE;
int16 ESCALATORSTEP;
int16 LOUNGE_WOOD_UP;
int16 LOUNGE_TOWEL_UP;
int16 LOUNGE_WOOD_DN;
int16 LOTION;
int16 BEACHTOWEL01;
int16 BEACHTOWEL02;
int16 BEACHTOWEL03;
int16 BEACHTOWEL04;
int16 BLIMP_NIGHT;
int16 BLIMP_DAY;
int16 YT_MAIN_BODY;
int16 YT_MAIN_BODY2;
int16 SMALL_HELIX;
int16 PT_BARRIER;
int16 SUBWAYGATE;
int16 IN_PMBRIDRAMP3;
int16 IN_PMBRIDG2_UPGS;
int16 IN_PMBRIDGE2;
int16 IN_PMBRIDG1_UPGS;
int16 PM_LIGHTRIG3;
int16 PM_LIGHTRIG1;
int16 IN_PMSCAFF_UPS;
int16 IN_PM_CONCBLOK2;
int16 IN_PMSCAFFH_NS;
int16 IN_PM_GRAVL_JMP;
int16 IN_PM_SCAFFCOVR;
int16 IN_PM_GIRDER2;
int16 IN_PM_SCAFFH_WE;
int16 IN_PM_SIXCONC2;
int16 IN_BMBRIDRAMP3;
int16 IN_BMBRIDG2_UPGS;
int16 IN_BMBRIDGE2;
int16 IN_BMBRIDG1_UPGS;
int16 BM_LIGHTRIG3;
int16 BM_LIGHTRIG1;
int16 IN_BMSCAFF_UPS;
int16 IN_BM_CONCBLOK2;
int16 IN_BMSCAFFH_NS;
int16 IN_BM_GRAVL_JMP;
int16 IN_BM_SCAFFCOVR;
int16 IN_BM_GIRDER2;
int16 IN_BM_SCAFFH_WE;
int16 IN_BM_SIXCONC2;
int16 CRATE_SJL;
int16 DOOR1_SJL;
int16 DOOR2_SJL;
int16 SJL_PORTACABIN;
int16 SJL_PORTACABINRED;
};
extern CModelIndices *gpModelIndices;
#define MI_TRAFFICLIGHTS gpModelIndices->TRAFFICLIGHTS
#define MI_TLIGHT_POST gpModelIndices->TLIGHT_POST
#define MI_TLIGHT_WALK gpModelIndices->TLIGHT_WALK
#define MI_TLIGHT_BOX1 gpModelIndices->TLIGHT_BOX1
#define MI_TLIGHT_BOX2 gpModelIndices->TLIGHT_BOX2
#define MI_TRAFFICLIGHTS_VERTICAL gpModelIndices->TRAFFICLIGHTS_VERTICAL
#define MI_TRAFFICLIGHTS_MIAMI gpModelIndices->TRAFFICLIGHTS_MIAMI
#define MI_TRAFFICLIGHTS_TWOVERTICAL gpModelIndices->TRAFFICLIGHTS_TWOVERTICAL
#define MI_SINGLESTREETLIGHTS1 gpModelIndices->SINGLESTREETLIGHTS1
#define MI_SINGLESTREETLIGHTS2 gpModelIndices->SINGLESTREETLIGHTS2
#define MI_SINGLESTREETLIGHTS3 gpModelIndices->SINGLESTREETLIGHTS3
#define MI_DOUBLESTREETLIGHTS gpModelIndices->DOUBLESTREETLIGHTS
#define MI_STREETLAMP1 gpModelIndices->STREETLAMP1
#define MI_STREETLAMP2 gpModelIndices->STREETLAMP2
#define MI_ROADSFORROADBLOCKSSTART gpModelIndices->ROADSFORROADBLOCKSSTART
#define MI_ROADSFORROADBLOCKSEND gpModelIndices->ROADSFORROADBLOCKSEND
#define MI_TREE2 gpModelIndices->TREE2
#define MI_TREE3 gpModelIndices->TREE3
#define MI_TREE6 gpModelIndices->TREE6
#define MI_TREE8 gpModelIndices->TREE8
#define MI_TREE1 gpModelIndices->TREE1
#define MI_TREE4 gpModelIndices->TREE4
#define MI_TREE5 gpModelIndices->TREE5
#define MI_TREE7 gpModelIndices->TREE7
#define MI_TREE9 gpModelIndices->TREE9
#define MI_TREE10 gpModelIndices->TREE10
#define MI_TREE11 gpModelIndices->TREE11
#define MI_TREE12 gpModelIndices->TREE12
#define MI_TREE13 gpModelIndices->TREE13
#define MI_TREE14 gpModelIndices->TREE14
#define MODELID_CRANE_1 gpModelIndices->CRANE_1
#define MODELID_CRANE_2 gpModelIndices->CRANE_2
#define MODELID_CRANE_3 gpModelIndices->CRANE_3
#define MODELID_CRANE_4 gpModelIndices->CRANE_4
#define MODELID_CRANE_5 gpModelIndices->CRANE_5
#define MODELID_CRANE_6 gpModelIndices->CRANE_6
#define MI_PARKINGMETER gpModelIndices->PARKINGMETER
#define MI_PARKINGMETER2 gpModelIndices->PARKINGMETER2
#define MI_MALLFAN gpModelIndices->MALLFAN
#define MI_HOTELFAN_NIGHT gpModelIndices->HOTELFAN_NIGHT
#define MI_HOTELFAN_DAY gpModelIndices->HOTELFAN_DAY
#define MI_HOTROOMFAN gpModelIndices->HOTROOMFAN
#define MI_PHONEBOOTH1 gpModelIndices->PHONEBOOTH1
#define MI_WASTEBIN gpModelIndices->WASTEBIN
#define MI_BIN gpModelIndices->BIN
#define MI_POSTBOX1 gpModelIndices->POSTBOX1
#define MI_NEWSSTAND gpModelIndices->NEWSSTAND
#define MI_TRAFFICCONE gpModelIndices->TRAFFICCONE
#define MI_DUMP1 gpModelIndices->DUMP1
#define MI_ROADWORKBARRIER1 gpModelIndices->ROADWORKBARRIER1
#define MI_BUSSIGN1 gpModelIndices->BUSSIGN1
#define MI_NOPARKINGSIGN1 gpModelIndices->NOPARKINGSIGN1
#define MI_PHONESIGN gpModelIndices->PHONESIGN
#define MI_TAXISIGN gpModelIndices->TAXISIGN
#define MI_FISHSTALL01 gpModelIndices->FISHSTALL01
#define MI_FISHSTALL02 gpModelIndices->FISHSTALL02
#define MI_FISHSTALL03 gpModelIndices->FISHSTALL03
#define MI_FISHSTALL04 gpModelIndices->FISHSTALL04
#define MI_BAGELSTAND2 gpModelIndices->BAGELSTAND2
#define MI_FIRE_HYDRANT gpModelIndices->FIRE_HYDRANT
#define MI_COLLECTABLE1 gpModelIndices->COLLECTABLE1
#define MI_MONEY gpModelIndices->MONEY
#define MI_CARMINE gpModelIndices->CARMINE
#define MI_GARAGEDOOR1 gpModelIndices->GARAGEDOOR1
#define MI_GARAGEDOOR2 gpModelIndices->GARAGEDOOR2
#define MI_GARAGEDOOR3 gpModelIndices->GARAGEDOOR3
#define MI_GARAGEDOOR4 gpModelIndices->GARAGEDOOR4
#define MI_GARAGEDOOR5 gpModelIndices->GARAGEDOOR5
#define MI_GARAGEDOOR6 gpModelIndices->GARAGEDOOR6
#define MI_GARAGEDOOR7 gpModelIndices->GARAGEDOOR7
#define MI_GARAGEDOOR9 gpModelIndices->GARAGEDOOR9
#define MI_GARAGEDOOR10 gpModelIndices->GARAGEDOOR10
#define MI_GARAGEDOOR11 gpModelIndices->GARAGEDOOR11
#define MI_GARAGEDOOR12 gpModelIndices->GARAGEDOOR12
#define MI_GARAGEDOOR13 gpModelIndices->GARAGEDOOR13
#define MI_GARAGEDOOR14 gpModelIndices->GARAGEDOOR14
#define MI_GARAGEDOOR15 gpModelIndices->GARAGEDOOR15
#define MI_GARAGEDOOR16 gpModelIndices->GARAGEDOOR16
#define MI_GARAGEDOOR17 gpModelIndices->GARAGEDOOR17
#define MI_GARAGEDOOR18 gpModelIndices->GARAGEDOOR18
#define MI_GARAGEDOOR19 gpModelIndices->GARAGEDOOR19
#define MI_GARAGEDOOR20 gpModelIndices->GARAGEDOOR20
#define MI_GARAGEDOOR21 gpModelIndices->GARAGEDOOR21
#define MI_GARAGEDOOR22 gpModelIndices->GARAGEDOOR22
#define MI_GARAGEDOOR23 gpModelIndices->GARAGEDOOR23
#define MI_GARAGEDOOR24 gpModelIndices->GARAGEDOOR24
#define MI_GARAGEDOOR25 gpModelIndices->GARAGEDOOR25
#define MI_GARAGEDOOR26 gpModelIndices->GARAGEDOOR26
#define MI_GARAGEDOOR27 gpModelIndices->GARAGEDOOR27
#define MI_GARAGEDOOR28 gpModelIndices->GARAGEDOOR28
#define MI_GARAGEDOOR29 gpModelIndices->GARAGEDOOR29
#define MI_GARAGEDOOR30 gpModelIndices->GARAGEDOOR30
#define MI_GARAGEDOOR31 gpModelIndices->GARAGEDOOR31
#define MI_GARAGEDOOR32 gpModelIndices->GARAGEDOOR32
#define MI_GARAGEDOOR33 gpModelIndices->GARAGEDOOR33
#define MI_GARAGEDOOR34 gpModelIndices->GARAGEDOOR34
#define MI_GARAGEDOOR35 gpModelIndices->GARAGEDOOR35
#define MI_GARAGEDOOR36 gpModelIndices->GARAGEDOOR36
#define MI_GARAGEDOOR37 gpModelIndices->GARAGEDOOR37
#define MI_GARAGEDOOR38 gpModelIndices->GARAGEDOOR38
#define MI_GARAGEDOOR39 gpModelIndices->GARAGEDOOR39
#define MI_TESTRAMP1 gpModelIndices->TESTRAMP1 // UNUSED
#define MI_TESTRAMP2 gpModelIndices->TESTRAMP2
#define MI_NAUTICALMINE gpModelIndices->NAUTICALMINE
#define MI_CRUSHERBODY gpModelIndices->CRUSHERBODY
#define MI_CRUSHERLID gpModelIndices->CRUSHERLID
#define MI_DONKEYMAG gpModelIndices->DONKEYMAG
#define MI_BULLION gpModelIndices->BULLION
#define MI_FLOATPACKAGE1 gpModelIndices->FLOATPACKAGE1
#define MI_BRIEFCASE gpModelIndices->BRIEFCASE
#define MI_CHINABANNER1 gpModelIndices->CHINABANNER1
#define MI_CHINABANNER2 gpModelIndices->CHINABANNER2
#define MI_CHINABANNER3 gpModelIndices->CHINABANNER3
#define MI_CHINABANNER4 gpModelIndices->CHINABANNER4
#define MI_CHINABANNER5 gpModelIndices->CHINABANNER5
#define MI_CHINABANNER6 gpModelIndices->CHINABANNER6
#define MI_CHINABANNER7 gpModelIndices->CHINABANNER7
#define MI_CHINABANNER8 gpModelIndices->CHINABANNER8
#define MI_CHINABANNER9 gpModelIndices->CHINABANNER9
#define MI_CHINABANNER10 gpModelIndices->CHINABANNER10
#define MI_CHINABANNER11 gpModelIndices->CHINABANNER11
#define MI_CHINABANNER12 gpModelIndices->CHINABANNER12
#define MI_CHINALANTERN gpModelIndices->CHINALANTERN
#define MI_GLASS1 gpModelIndices->GLASS1
#define MI_GLASS2 gpModelIndices->GLASS2
#define MI_GLASS3 gpModelIndices->GLASS3
#define MI_GLASS4 gpModelIndices->GLASS4
#define MI_GLASS5 gpModelIndices->GLASS5
#define MI_GLASS6 gpModelIndices->GLASS6
#define MI_GLASS7 gpModelIndices->GLASS7
#define MI_GLASS8 gpModelIndices->GLASS8
#define MI_BRIDGELIFT gpModelIndices->BRIDGELIFT
#define MI_BRIDGEWEIGHT gpModelIndices->BRIDGEWEIGHT
#define MI_BRIDGEROADSEGMENT gpModelIndices->BRIDGEROADSEGMENT
#define MI_EXPLODINGBARREL gpModelIndices->EXPLODINGBARREL
#define MI_ITALYBANNER1 gpModelIndices->ITALYBANNER1
#define MI_MEGADAMAGE gpModelIndices->MEGADAMAGE
#define MI_REGENERATOR gpModelIndices->REGENERATOR
#define MI_INVISIBLE gpModelIndices->INVISIBLE
#define MI_GOOD_CAR gpModelIndices->GOOD_CAR
#define MI_BAD_CAR gpModelIndices->BAD_CAR
#define MI_PICKUP_ADRENALINE gpModelIndices->PICKUP_ADRENALINE
#define MI_PICKUP_BODYARMOUR gpModelIndices->PICKUP_BODYARMOUR
#define MI_PICKUP_INFO gpModelIndices->PICKUP_INFO
#define MI_PICKUP_HEALTH gpModelIndices->PICKUP_HEALTH
#define MI_PICKUP_BONUS gpModelIndices->PICKUP_BONUS
#define MI_PICKUP_BRIBE gpModelIndices->PICKUP_BRIBE
#define MI_PICKUP_KILLFRENZY gpModelIndices->PICKUP_KILLFRENZY
#define MI_PICKUP_CAMERA gpModelIndices->PICKUP_CAMERA
#define MI_PICKUP_REVENUE gpModelIndices->PICKUP_REVENUE
#define MI_PICKUP_SAVEGAME gpModelIndices->PICKUP_SAVEGAME
#define MI_PICKUP_PROPERTY gpModelIndices->PICKUP_PROPERTY
#define MI_PICKUP_PROPERTY_FORSALE gpModelIndices->PICKUP_PROPERTY_FORSALE
#define MI_PICKUP_CLOTHES gpModelIndices->PICKUP_CLOTHES
#define MI_BOLLARDLIGHT gpModelIndices->BOLLARDLIGHT
#define MI_CA_SP1 gpModelIndices->CA_SP1
#define MI_CA_SP2 gpModelIndices->CA_SP2
#define MI_CA_SP3 gpModelIndices->CA_SP3
#define MI_CA_SP4 gpModelIndices->CA_SP4
#define MI_PACKAGE1IZZY gpModelIndices->PACKAGE1IZZY
#define MI_MAGNET gpModelIndices->MAGNET
#define MI_RAILTRACKS gpModelIndices->RAILTRACKS
#define MI_FENCE gpModelIndices->FENCE
#define MI_FENCE2 gpModelIndices->FENCE2
#define MI_PETROLPUMP gpModelIndices->PETROLPUMP
#define MI_PETROLPUMP2 gpModelIndices->PETROLPUMP2
#define MI_BODYCAST gpModelIndices->BODYCAST
#define MI_IZZY_CONFDOOR gpModelIndices->IZZY_CONFDOOR
#define MI_SHIPDOOR gpModelIndices->SHIPDOOR
#define MI_IZZY_JDDOOR gpModelIndices->IZZY_JDDOOR
#define MI_IZZY_JDDOOR_SLIDER gpModelIndices->IZZY_JDDOOR_SLIDER
#define MI_LITEHOUSE_GATE gpModelIndices->LITEHOUSE_GATE
#define MI_COFFEE gpModelIndices->COFFEE
#define MI_BUOY gpModelIndices->BUOY
#define MI_PARKTABLE gpModelIndices->PARKTABLE
#define MI_SUBWAY1 gpModelIndices->SUBWAY1
#define MI_SUBWAY2 gpModelIndices->SUBWAY2
#define MI_SUBWAY3 gpModelIndices->SUBWAY3
#define MI_SUBWAY4 gpModelIndices->SUBWAY4
#define MI_SUBWAY5 gpModelIndices->SUBWAY5
#define MI_SUBWAY6 gpModelIndices->SUBWAY6
#define MI_SUBWAY7 gpModelIndices->SUBWAY7
#define MI_SUBWAY8 gpModelIndices->SUBWAY8
#define MI_SUBWAY9 gpModelIndices->SUBWAY9
#define MI_SUBWAY10 gpModelIndices->SUBWAY10
#define MI_SUBWAY11 gpModelIndices->SUBWAY11
#define MI_SUBWAY12 gpModelIndices->SUBWAY12
#define MI_SUBWAY13 gpModelIndices->SUBWAY13
#define MI_SUBWAY14 gpModelIndices->SUBWAY14
#define MI_SUBWAY15 gpModelIndices->SUBWAY15
#define MI_SUBWAY16 gpModelIndices->SUBWAY16
#define MI_SUBWAY17 gpModelIndices->SUBWAY17
#define MI_SUBWAY18 gpModelIndices->SUBWAY18
#define MI_SUBPLATFORM_IND gpModelIndices->SUBPLATFORM_IND
#define MI_SUBPLATFORM_COMS gpModelIndices->SUBPLATFORM_COMS
#define MI_SUBPLATFORM_COMS2 gpModelIndices->SUBPLATFORM_COMS2
#define MI_SUBPLATFORM_COMN gpModelIndices->SUBPLATFORM_COMN
#define MI_SUBPLATFORM_SUB gpModelIndices->SUBPLATFORM_SUB
#define MI_SUBPLATFORM_SUB2 gpModelIndices->SUBPLATFORM_SUB2
#define MI_FILES gpModelIndices->FILES
#define MI_LAMPPOST1 gpModelIndices->LAMPPOST1
#define MI_VEG_PALM01 gpModelIndices->VEG_PALM01
#define MI_VEG_PALM02 gpModelIndices->VEG_PALM02
#define MI_VEG_PALM03 gpModelIndices->VEG_PALM03
#define MI_VEG_PALM04 gpModelIndices->VEG_PALM04
#define MI_VEG_PALM05 gpModelIndices->VEG_PALM05
#define MI_VEG_PALM06 gpModelIndices->VEG_PALM06
#define MI_VEG_PALM07 gpModelIndices->VEG_PALM07
#define MI_VEG_PALM08 gpModelIndices->VEG_PALM08
#define MI_MLAMPPOST gpModelIndices->MLAMPPOST
#define MI_BARRIER1 gpModelIndices->BARRIER1
#define MI_LITTLEHA_POLICE gpModelIndices->LITTLEHA_POLICE
#define MI_TELPOLE02 gpModelIndices->TELPOLE02
#define MI_TRAFFICLIGHT01 gpModelIndices->TRAFFICLIGHT01
#define MI_PARKBENCH gpModelIndices->PARKBENCH
#define MI_PLC_STINGER gpModelIndices->PLC_STINGER
#define MI_LIGHTBEAM gpModelIndices->LIGHTBEAM
#define MI_AIRPORTRADAR gpModelIndices->AIRPORTRADAR
#define MI_RCBOMB gpModelIndices->RCBOMB
#define MI_JM_SALRADIO gpModelIndices->JM_SALRADIO
#define MI_BEACHBALL gpModelIndices->BEACHBALL
#define MI_SANDCASTLE1 gpModelIndices->SANDCASTLE1
#define MI_SANDCASTLE2 gpModelIndices->SANDCASTLE2
#define MI_JELLYFISH gpModelIndices->JELLYFISH
#define MI_JELLYFISH01 gpModelIndices->JELLYFISH01
#define MI_FISH1SINGLE gpModelIndices->FISH1SINGLE
#define MI_FISH1S gpModelIndices->FISH1S
#define MI_FISH2SINGLE gpModelIndices->FISH2SINGLE
#define MI_FISH2S gpModelIndices->FISH2S
#define MI_FISH3SINGLE gpModelIndices->FISH3SINGLE
#define MI_FISH3S gpModelIndices->FISH3S
#define MI_TURTLE gpModelIndices->TURTLE
#define MI_DOLPHIN gpModelIndices->DOLPHIN
#define MI_SHARK gpModelIndices->SHARK
#define MI_SUBMARINE gpModelIndices->SUBMARINE
#define MI_ESCALATORSTEP gpModelIndices->ESCALATORSTEP
#define MI_LOUNGE_WOOD_UP gpModelIndices->LOUNGE_WOOD_UP
#define MI_LOUNGE_TOWEL_UP gpModelIndices->LOUNGE_TOWEL_UP
#define MI_LOUNGE_WOOD_DN gpModelIndices->LOUNGE_WOOD_DN
#define MI_LOTION gpModelIndices->LOTION
#define MI_BEACHTOWEL01 gpModelIndices->BEACHTOWEL01
#define MI_BEACHTOWEL02 gpModelIndices->BEACHTOWEL02
#define MI_BEACHTOWEL03 gpModelIndices->BEACHTOWEL03
#define MI_BEACHTOWEL04 gpModelIndices->BEACHTOWEL04
#define MI_BLIMP_NIGHT gpModelIndices->BLIMP_NIGHT
#define MI_BLIMP_DAY gpModelIndices->BLIMP_DAY
#define MI_YT_MAIN_BODY gpModelIndices->YT_MAIN_BODY
#define MI_YT_MAIN_BODY2 gpModelIndices->YT_MAIN_BODY2
#define MI_SMALL_HELIX gpModelIndices->SMALL_HELIX
#define MI_PT_BARRIER gpModelIndices->PT_BARRIER
#define MI_SUBWAYGATE gpModelIndices->SUBWAYGATE
#define MI_IN_PMBRIDRAMP3 gpModelIndices->IN_PMBRIDRAMP3
#define MI_IN_PMBRIDG2_UPGS gpModelIndices->IN_PMBRIDG2_UPGS
#define MI_IN_PMBRIDGE2 gpModelIndices->IN_PMBRIDGE2
#define MI_IN_PMBRIDG1_UPGS gpModelIndices->IN_PMBRIDG1_UPGS
#define MI_PM_LIGHTRIG3 gpModelIndices->PM_LIGHTRIG3
#define MI_PM_LIGHTRIG1 gpModelIndices->PM_LIGHTRIG1
#define MI_IN_PMSCAFF_UPS gpModelIndices->IN_PMSCAFF_UPS
#define MI_IN_PM_CONCBLOK2 gpModelIndices->IN_PM_CONCBLOK2
#define MI_IN_PMSCAFFH_NS gpModelIndices->IN_PMSCAFFH_NS
#define MI_IN_PM_GRAVL_JMP gpModelIndices->IN_PM_GRAVL_JMP
#define MI_IN_PM_SCAFFCOVR gpModelIndices->IN_PM_SCAFFCOVR
#define MI_IN_PM_GIRDER2 gpModelIndices->IN_PM_GIRDER2
#define MI_IN_PM_SCAFFH_WE gpModelIndices->IN_PM_SCAFFH_WE
#define MI_IN_PM_SIXCONC2 gpModelIndices->IN_PM_SIXCONC2
#define MI_IN_BMBRIDRAMP3 gpModelIndices->IN_BMBRIDRAMP3
#define MI_IN_BMBRIDG2_UPGS gpModelIndices->IN_BMBRIDG2_UPGS
#define MI_IN_BMBRIDGE2 gpModelIndices->IN_BMBRIDGE2
#define MI_IN_BMBRIDG1_UPGS gpModelIndices->IN_BMBRIDG1_UPGS
#define MI_BM_LIGHTRIG3 gpModelIndices->BM_LIGHTRIG3
#define MI_BM_LIGHTRIG1 gpModelIndices->BM_LIGHTRIG1
#define MI_IN_BMSCAFF_UPS gpModelIndices->IN_BMSCAFF_UPS
#define MI_IN_BM_CONCBLOK2 gpModelIndices->IN_BM_CONCBLOK2
#define MI_IN_BMSCAFFH_NS gpModelIndices->IN_BMSCAFFH_NS
#define MI_IN_BM_GRAVL_JMP gpModelIndices->IN_BM_GRAVL_JMP
#define MI_IN_BM_SCAFFCOVR gpModelIndices->IN_BM_SCAFFCOVR
#define MI_IN_BM_GIRDER2 gpModelIndices->IN_BM_GIRDER2
#define MI_IN_BM_SCAFFH_WE gpModelIndices->IN_BM_SCAFFH_WE
#define MI_IN_BM_SIXCONC2 gpModelIndices->IN_BM_SIXCONC2
#define MI_CRATE_SJL gpModelIndices->CRATE_SJL
#define MI_DOOR1_SJL gpModelIndices->DOOR1_SJL
#define MI_DOOR2_SJL gpModelIndices->DOOR2_SJL
#define MI_SJL_PORTACABIN gpModelIndices->SJL_PORTACABIN
#define MI_SJL_PORTACABINRED gpModelIndices->SJL_PORTACABINRED
#define MODELINDICES \
X("fire_hydrant", MI_FIRE_HYDRANT) \
X("fire_hydrant", MI_FIRE_HYDRANT) /* BUG: second time */ \
X("bagelstnd02", MI_BAGELSTAND2) \
X("fish01", MI_FISHSTALL01) \
X("fishstall02", MI_FISHSTALL02) \
X("fishstall03", MI_FISHSTALL03) \
X("fishstall04", MI_FISHSTALL04) \
X("taxisign", MI_TAXISIGN) \
X("phonesign", MI_PHONESIGN) \
X("noparkingsign1", MI_NOPARKINGSIGN1) \
X("bussign1", MI_BUSSIGN1) \
X("roadworkbarrier1", MI_ROADWORKBARRIER1) \
X("dump1", MI_DUMP1) \
X("trafficcone", MI_TRAFFICCONE) \
X("newsstand1", MI_NEWSSTAND) \
X("postbox1", MI_POSTBOX1) \
X("bin1", MI_BIN) \
X("wastebin", MI_WASTEBIN) \
X("phonebooth1", MI_PHONEBOOTH1) \
X("parkingmeter", MI_PARKINGMETER) \
X("trafficlight1", MI_TRAFFICLIGHTS) \
X("tlight_post", MI_TLIGHT_POST) \
X("tlight_walk", MI_TLIGHT_WALK) \
X("tlight_box1", MI_TLIGHT_BOX1) \
X("tlight_box2", MI_TLIGHT_BOX2) \
X("parkingmeterg", MI_PARKINGMETER2) \
X("mall_fans", MI_MALLFAN) \
X("htl_fan_rotate_nt", MI_HOTELFAN_NIGHT) \
X("htl_fan_rotate_dy", MI_HOTELFAN_DAY) \
X("hotroomfan", MI_HOTROOMFAN) \
X("trafficlight1", MI_TRAFFICLIGHTS) /* BUG: second time */ \
X("MTraffic4", MI_TRAFFICLIGHTS_VERTICAL) \
X("MTraffic1", MI_TRAFFICLIGHTS_MIAMI) \
X("MTraffic2", MI_TRAFFICLIGHTS_TWOVERTICAL) \
X("lamppost1", MI_SINGLESTREETLIGHTS1) \
X("lamppost2", MI_SINGLESTREETLIGHTS2) \
X("lamppost3", MI_SINGLESTREETLIGHTS3) \
X("doublestreetlght1", MI_DOUBLESTREETLIGHTS) \
X("Streetlamp1", MI_STREETLAMP1) \
X("Streetlamp2", MI_STREETLAMP2) \
X("rd_Road2A10", MI_ROADSFORROADBLOCKSSTART) \
X("rd_Road1A30", MI_ROADSFORROADBLOCKSEND) \
X("veg_tree1", MI_TREE1) \
X("veg_tree3", MI_TREE2) \
X("veg_treea1", MI_TREE3) \
X("veg_treenew01", MI_TREE4) \
X("veg_treenew05", MI_TREE5) \
X("veg_treeb1", MI_TREE6) \
X("veg_treenew10", MI_TREE7) \
X("veg_treea3", MI_TREE8) \
X("veg_treenew09", MI_TREE9) \
X("veg_treenew08", MI_TREE10) \
X("veg_treenew03", MI_TREE11) \
X("veg_treenew16", MI_TREE12) \
X("veg_treenew17", MI_TREE13) \
X("veg_treenew06", MI_TREE14) \
X("crusher_crane", MODELID_CRANE_1) \
X("package1", MI_COLLECTABLE1) \
X("Money", MI_MONEY) \
X("barrel1", MI_CARMINE) \
X("oddjgaragdoor", MI_GARAGEDOOR1) \
X("bombdoor", MI_GARAGEDOOR2) \
X("door_bombshop", MI_GARAGEDOOR3) \
X("vheistlocdoor", MI_GARAGEDOOR4) \
X("door2_garage", MI_GARAGEDOOR5) \
X("ind_slidedoor", MI_GARAGEDOOR6) \
X("bankjobdoor", MI_GARAGEDOOR7) \
X("door_jmsgrage", MI_GARAGEDOOR9) \
X("jamesgrge_kb", MI_GARAGEDOOR10) \
X("door_sfehousegrge", MI_GARAGEDOOR11) \
X("shedgaragedoor", MI_GARAGEDOOR12) \
X("door4_garage", MI_GARAGEDOOR13) \
X("door_col_compnd_01", MI_GARAGEDOOR14) \
X("door_col_compnd_02", MI_GARAGEDOOR15) \
X("door_col_compnd_03", MI_GARAGEDOOR16) \
X("door_col_compnd_04", MI_GARAGEDOOR17) \
X("door_col_compnd_05", MI_GARAGEDOOR18) \
X("impex_door", MI_GARAGEDOOR19) \
X("SalvGarage", MI_GARAGEDOOR20) \
X("door3_garage", MI_GARAGEDOOR21) \
X("leveldoor2", MI_GARAGEDOOR22) \
X("double_garage_dr", MI_GARAGEDOOR23) \
X("amcogaragedoor", MI_GARAGEDOOR24) \
X("towergaragedoor1", MI_GARAGEDOOR25) \
X("towergaragedoor2", MI_GARAGEDOOR26) \
X("towergaragedoor3", MI_GARAGEDOOR27) \
X("plysve_gragedoor", MI_GARAGEDOOR28) \
X("impexpsubgrgdoor", MI_GARAGEDOOR29) \
X("Sub_sprayshopdoor", MI_GARAGEDOOR30) \
X("ind_plyrwoor", MI_GARAGEDOOR31) \
X("8ballsuburbandoor", MI_GARAGEDOOR32) \
X("door_nthgrage", MI_GARAGEDOOR33) \
X("hangardoor1", MI_GARAGEDOOR34) \
X("hangardoor2", MI_GARAGEDOOR35) \
X("neds_door", MI_GARAGEDOOR36) \
X("fs_wrhsedoor", MI_GARAGEDOOR37) \
X("jm_ContraGarage", MI_GARAGEDOOR38) \
X("jm_imp_SalvGarage", MI_GARAGEDOOR39) \
X("Testramp1", MI_TESTRAMP1) /* BUG: LCS used MI_TESTRAMP2 here */ \
X("Testramp2", MI_TESTRAMP2) \
X("barrel2", MI_NAUTICALMINE) \
X("crushercrush", MI_CRUSHERBODY) \
X("crushertop", MI_CRUSHERLID) \
X("donkeymag", MI_DONKEYMAG) \
X("bullion", MI_BULLION) \
X("floatpackge1", MI_FLOATPACKAGE1) \
X("briefcase", MI_BRIEFCASE) \
X("chinabanner1", MI_CHINABANNER1) \
X("chinabanner2", MI_CHINABANNER2) \
X("chinabanner3", MI_CHINABANNER3) \
X("chinabanner4", MI_CHINABANNER4) \
X("iten_chinatown5", MI_CHINABANNER5) \
X("iten_chinatown7", MI_CHINABANNER6) \
X("iten_chinatown3", MI_CHINABANNER7) \
X("iten_chinatown2", MI_CHINABANNER8) \
X("iten_chinatown4", MI_CHINABANNER9) \
X("iten_washline01", MI_CHINABANNER10) \
X("iten_washline02", MI_CHINABANNER11) \
X("iten_washline03", MI_CHINABANNER12) \
X("chinalanterns", MI_CHINALANTERN) \
X("glassfx1", MI_GLASS1) \
X("glassfx2", MI_GLASS2) \
X("glassfx3", MI_GLASS3) \
X("glassfx4", MI_GLASS4) \
X("glassfx55", MI_GLASS5) \
X("glassfxsub1", MI_GLASS6) \
X("glassfxsub2", MI_GLASS7) \
X("glassfx_composh", MI_GLASS8) \
X("bridge_liftsec", MI_BRIDGELIFT) \
X("bridge_liftweight", MI_BRIDGEWEIGHT) \
X("subbridge_lift", MI_BRIDGEROADSEGMENT) \
X("flagsitaly", MI_ITALYBANNER1) \
X("small_helix", MI_SMALL_HELIX) \
X("barrel4", MI_EXPLODINGBARREL) \
X("Crate_sjl", MI_CRATE_SJL) \
X("Door1_sjl", MI_DOOR1_SJL) \
X("Door2_sjl", MI_DOOR2_SJL) \
X("SJL_PortaCabin", MI_SJL_PORTACABIN) \
X("SJL_PortaCabinred", MI_SJL_PORTACABINRED) \
X("megaDamage", MI_MEGADAMAGE) \
X("regenerator", MI_REGENERATOR) \
X("invisible", MI_INVISIBLE) \
X("good_car", MI_GOOD_CAR) \
X("bad_car", MI_BAD_CAR) \
X("adrenaline", MI_PICKUP_ADRENALINE) \
X("bodyarmour", MI_PICKUP_BODYARMOUR) \
X("info", MI_PICKUP_INFO) \
X("health", MI_PICKUP_HEALTH) \
X("bonus", MI_PICKUP_BONUS) \
X("bribe", MI_PICKUP_BRIBE) \
X("killfrenzy", MI_PICKUP_KILLFRENZY) \
X("camerapickup", MI_PICKUP_CAMERA) \
X("bigdollar", MI_PICKUP_REVENUE) \
X("pickupsave", MI_PICKUP_SAVEGAME) \
X("clothesp", MI_PICKUP_CLOTHES) \
X("property_locked", MI_PICKUP_PROPERTY) \
X("property_fsale", MI_PICKUP_PROPERTY_FORSALE) \
X("bollardlight", MI_BOLLARDLIGHT) \
X("ca_sp1", MI_CA_SP1) \
X("ca_sp2", MI_CA_SP2) \
X("ca_sp3", MI_CA_SP3) \
X("ca_sp4", MI_CA_SP4) \
X("package1izzy", MI_PACKAGE1IZZY) \
X("magnet", MI_MAGNET) \
X("streetlamp1", MI_STREETLAMP1) \
X("streetlamp2", MI_STREETLAMP2) \
X("railtrax_lo4b", MI_RAILTRACKS) \
X("bar_barrier10", MI_FENCE) \
X("bar_barrier12", MI_FENCE2) \
X("petrolpump", MI_PETROLPUMP) \
X("washgaspump", MI_PETROLPUMP2) \
X("bodycast", MI_BODYCAST) \
X("izzy_confDoor", MI_IZZY_CONFDOOR) \
X("shipdoor", MI_SHIPDOOR) \
X("izzy_jdDoor", MI_IZZY_JDDOOR) \
X("izzy_jdDoor_slider", MI_IZZY_JDDOOR_SLIDER) \
X("litehouse_gate", MI_LITEHOUSE_GATE) \
X("coffee", MI_COFFEE) \
X("bouy", MI_BUOY) \
X("parktable1", MI_PARKTABLE) \
X("sbwy_tunl_start", MI_SUBWAY1) \
X("sbwy_tunl_bit", MI_SUBWAY2) \
X("sbwy_tunl_bend", MI_SUBWAY3) \
X("sbwy_tunl_cstm6", MI_SUBWAY4) \
X("sbwy_tunl_cstm7", MI_SUBWAY5) \
X("sbwy_tunl_cstm8", MI_SUBWAY6) \
X("sbwy_tunl_cstm10", MI_SUBWAY7) \
X("sbwy_tunl_cstm9", MI_SUBWAY8) \
X("sbwy_tunl_cstm11", MI_SUBWAY9) \
X("sbwy_tunl_cstm1", MI_SUBWAY10) \
X("sbwy_tunl_cstm2", MI_SUBWAY11) \
X("sbwy_tunl_cstm4", MI_SUBWAY12) \
X("sbwy_tunl_cstm3", MI_SUBWAY13) \
X("sbwy_tunl_cstm5", MI_SUBWAY14) \
X("subplatform_n2", MI_SUBWAY15) \
X("suby_tunl_start", MI_SUBWAY16) \
X("sbwy_tunl_start2", MI_SUBWAY17) \
X("indy_tunl_start", MI_SUBWAY18) \
X("indsubway03", MI_SUBPLATFORM_IND) \
X("comerside_subway", MI_SUBPLATFORM_COMS) \
X("subplatform", MI_SUBPLATFORM_COMS2) \
X("subplatform_n", MI_SUBPLATFORM_COMN) \
X("Otherside_subway", MI_SUBPLATFORM_SUB) \
X("subplatform_sub", MI_SUBPLATFORM_SUB2) \
X("files", MI_FILES) \
X("lamppost1", MI_LAMPPOST1) \
X("veg_palm04", MI_VEG_PALM01) \
X("veg_palwee02", MI_VEG_PALM02) \
X("veg_palmkbb11", MI_VEG_PALM03) \
X("veg_palmkb4", MI_VEG_PALM04) \
X("veg_palm02", MI_VEG_PALM05) \
X("veg_palmkb3", MI_VEG_PALM06) \
X("veg_palmbig14", MI_VEG_PALM07) \
X("veg_palm01", MI_VEG_PALM08) \
X("mlamppost", MI_MLAMPPOST) \
X("roadworkbarrier1", MI_BARRIER1) \
X("littleha_police", MI_LITTLEHA_POLICE) \
X("telgrphpole02", MI_TELPOLE02) \
X("trafficlight1", MI_TRAFFICLIGHT01) \
X("parkbench1", MI_PARKBENCH) \
X("Money", MI_MONEY) \
X("plc_stinger", MI_PLC_STINGER) \
X("od_lightbeam", MI_LIGHTBEAM) \
X("ap_radar1_01", MI_AIRPORTRADAR) \
X("rcbomb", MI_RCBOMB) \
X("jm_salradio", MI_JM_SALRADIO) \
X("beachball", MI_BEACHBALL) \
X("sandcastle1", MI_SANDCASTLE1) \
X("sandcastle2", MI_SANDCASTLE2) \
X("jellyfish", MI_JELLYFISH) \
X("jellyfish01", MI_JELLYFISH01) \
X("fish1single", MI_FISH1SINGLE) \
X("fish1s", MI_FISH1S) \
X("fish2single", MI_FISH2SINGLE) \
X("fish2s", MI_FISH2S) \
X("fish3single", MI_FISH3SINGLE) \
X("fish3s", MI_FISH3S) \
X("turtle", MI_TURTLE) \
X("dolphin", MI_DOLPHIN) \
X("shark", MI_SHARK) \
X("submarine", MI_SUBMARINE) \
X("Esc_step", MI_ESCALATORSTEP) \
X("lounge_wood_up", MI_LOUNGE_WOOD_UP) \
X("lounge_towel_up", MI_LOUNGE_TOWEL_UP) \
X("lounge_wood_dn", MI_LOUNGE_WOOD_DN) \
X("lotion", MI_LOTION) \
X("beachtowel01", MI_BEACHTOWEL01) \
X("beachtowel02", MI_BEACHTOWEL02) \
X("beachtowel03", MI_BEACHTOWEL03) \
X("beachtowel04", MI_BEACHTOWEL04) \
X("blimp_night", MI_BLIMP_NIGHT) \
X("blimp_day", MI_BLIMP_DAY) \
X("yt_main_body", MI_YT_MAIN_BODY) \
X("pt_barrier", MI_PT_BARRIER) \
X("subwaygate", MI_SUBWAYGATE) \
X("in_PMbridramp3", MI_IN_PMBRIDRAMP3) \
X("in_PMbridg2_upgs", MI_IN_PMBRIDG2_UPGS) \
X("in_PMbridge2", MI_IN_PMBRIDGE2) \
X("in_PMbridg1_upgs", MI_IN_PMBRIDG1_UPGS) \
X("pm_lightrig3", MI_PM_LIGHTRIG3) \
X("pm_lightrig1", MI_PM_LIGHTRIG1) \
X("in_pmSCAFF_UPS", MI_IN_PMSCAFF_UPS) \
X("in_pm_concblok2", MI_IN_PM_CONCBLOK2) \
X("in_pmSCAFFH_ns", MI_IN_PMSCAFFH_NS) \
X("in_pm_gravl_jmp", MI_IN_PM_GRAVL_JMP) \
X("in_pm_scaffcovr", MI_IN_PM_SCAFFCOVR) \
X("in_pm_girder2", MI_IN_PM_GIRDER2) \
X("in_pm_scaffH_we", MI_IN_PM_SCAFFH_WE) \
X("in_pm_sixconc2", MI_IN_PM_SIXCONC2) \
X("in_BMbridramp3", MI_IN_BMBRIDRAMP3) \
X("in_BMbridg2_upgs", MI_IN_BMBRIDG2_UPGS) \
X("in_BMbridge2", MI_IN_BMBRIDGE2) \
X("in_BMbridg1_upgs", MI_IN_BMBRIDG1_UPGS) \
X("Bm_lightrig3", MI_BM_LIGHTRIG3) \
X("bm_lightrig1", MI_BM_LIGHTRIG1) \
X("in_BmSCAFF_UPS", MI_IN_BMSCAFF_UPS) \
X("in_Bm_concblok2", MI_IN_BM_CONCBLOK2) \
X("in_BmSCAFFH_ns", MI_IN_BMSCAFFH_NS) \
X("in_Bm_gravl_jmp", MI_IN_BM_GRAVL_JMP) \
X("in_Bm_scaffcovr", MI_IN_BM_SCAFFCOVR) \
X("in_Bm_girder2", MI_IN_BM_GIRDER2) \
X("in_Bm_scaffH_we", MI_IN_BM_SCAFFH_WE) \
X("in_Bm_sixconc2", MI_IN_BM_SIXCONC2)
/*X("yt_main_body2", MI_YT_MAIN_BODY2) \*/
//#define X(name, var) extern int16 var;
// MODELINDICES
//#undef X
// and some hardcoded ones
// expand as needed
enum
{
MI_PLAYER = 0,
MI_COP,
MI_SWAT,
MI_FBI,
MI_ARMY,
MI_MEDIC,
MI_FIREMAN,
MI_MALE01,
MI_TAXI_D = 9,
MI_PIMP,
MI_CRIMINAL01,
MI_CRIMINAL02,
MI_MALE02,
MI_MALE03,
MI_FATMALE01,
MI_FATMALE02,
MI_FEMALE01,
MI_FEMALE02,
MI_FEMALE03,
MI_FATFEMALE01,
MI_FATFEMALE02,
MI_PROSTITUTE,
MI_PROSTITUTE2,
MI_P_MAN1,
MI_P_MAN2,
MI_P_WOM1,
MI_P_WOM2,
MI_CT_MAN1,
MI_CT_MAN2,
MI_CT_WOM1,
MI_CT_WOM2,
MI_LI_MAN1,
MI_LI_MAN2,
MI_LI_WOM1,
MI_LI_WOM2,
MI_DOCKER1,
MI_DOCKER2,
MI_SCUM_MAN,
MI_SCUM_WOM,
MI_WORKER1,
MI_WORKER2,
MI_B_MAN1,
MI_B_MAN2,
MI_B_MAN3,
MI_B_WOM1,
MI_B_WOM2,
MI_B_WOM3,
MI_MOD_MAN,
MI_MOD_WOM,
MI_ST_MAN,
MI_ST_WOM,
MI_FAN_MAN1,
MI_FAN_MAN2,
MI_FAN_WOM,
MI_HOS_MAN,
MI_HOS_WOM,
MI_CONST1,
MI_CONST2,
MI_SHOPPER1,
MI_SHOPPER2,
MI_SHOPPER3,
MI_STUD_MAN,
MI_STUD_WOM,
MI_CAS_MAN,
MI_CAS_WOM,
MI_CAMP_MAN,
MI_CAMP_WOM,
MI_HITMAN,
MI_GANG01 = 79,
MI_GANG02,
MI_GANG03,
MI_GANG04,
MI_GANG05,
MI_GANG06,
MI_GANG07,
MI_GANG08,
MI_GANG09,
MI_GANG10,
MI_GANG11,
MI_GANG12,
MI_GANG13,
MI_GANG14,
MI_GANG15,
MI_GANG16,
MI_GANG17,
MI_GANG18,
MI_VICE1,
MI_VICE2,
MI_VICE3,
MI_VICE4,
MI_VICE5,
MI_VICE6,
MI_VICE7,
MI_VICE8,
MI_WFYG1,
MI_WFYG2,// = 106, // last regular ped
// three more peds possible
MI_SPECIAL01 = 109,
MI_SPECIAL02,
MI_SPECIAL03,
MI_SPECIAL04,
MI_SPECIAL05,
MI_SPECIAL06,
MI_SPECIAL07,
MI_SPECIAL08,
MI_SPECIAL09,
MI_SPECIAL10,
MI_SPECIAL11,
MI_SPECIAL12,
MI_SPECIAL13,
MI_SPECIAL14,
MI_SPECIAL15,
MI_SPECIAL16,
MI_SPECIAL17,
MI_SPECIAL18,
MI_SPECIAL19,
MI_SPECIAL20,
MI_SPECIAL21,// = 129,
MI_LAST_PED = MI_SPECIAL21,
MI_FIRST_VEHICLE,
MI_SPIDER = MI_FIRST_VEHICLE,
MI_LANDSTAL,
MI_IDAHO,
MI_STINGER,
MI_LINERUN,
MI_PEREN,
MI_SENTINEL,
MI_PATRIOT,
MI_FIRETRUCK,
MI_TRASH,
MI_STRETCH,
MI_MANANA,
MI_INFERNUS,
MI_BLISTA,
MI_PONY,
MI_MULE,
MI_CHEETAH,
MI_AMBULAN,
MI_FBICAR,
MI_MOONBEAM,
MI_ESPERANT,
MI_TAXI,
MI_KURUMA,
MI_BOBCAT,
MI_MRWHOOP,
MI_BFINJECT,
MI_HEARSE,
MI_POLICE,
MI_ENFORCER,
MI_SECURICA,
MI_BANSHEE,
MI_BUS,
MI_RHINO,
MI_BARRACKS,
MI_DODO,
MI_COACH,
MI_CABBIE,
MI_STALLION,
MI_RUMPO,
MI_RCBANDIT,
MI_BELLYUP,
MI_MRWONGS,
MI_MAFIA,
MI_YARDIE,
MI_YAKUZA,
MI_DIABLOS,
MI_COLUMB,
MI_HOODS,
MI_PANLANT,
MI_FLATBED,
MI_YANKEE,
MI_BORGNINE,
MI_TOYZ,
MI_CAMPVAN,
MI_BALLOT,
MI_SHELBY,
MI_PONTIAC,
MI_ESPRIT,
MI_AMMOTRUK,
MI_HOTROD,
MI_SINDACCO_CAR,
MI_FORELLI_CAR,
MI_FERRY,
MI_GHOST,
MI_SPEEDER,
MI_REEFER,
MI_PREDATOR,
MI_TRAIN,
MI_ESCAPE,
MI_CHOPPER,
MI_AIRTRAIN,
MI_DEADDODO,
MI_ANGEL,
MI_PIZZABOY,
MI_NOODLEBOY,
MI_PCJ600,
MI_FAGGIO,
MI_FREEWAY,
MI_ANGEL2,
MI_SANCHEZ2,
MI_SANCHEZ,
MI_RCGOBLIN,
MI_RCRAIDER,
MI_HUNTER,
MI_MAVERICK,
MI_POLMAV,
MI_VCNMAV,
MI_LAST_VEHICLE = MI_VCNMAV,
// HACK HACK, hopefully temporary
MI_SEASPAR = -1000,
MI_SPARROW,
MI_RCBARON,
MI_TOPFUN,
MI_CADDY,
MI_BAGGAGE,
MI_FBIRANCH,
MI_VICECHEE,
MI_RIO,
MI_SQUALO,
MI_JETMAX,
MI_COASTG,
MI_DINGHY,
MI_MARQUIS,
MI_SKIMMER,
MI_TROPIC,
MI_SANDKING,
MI_VOODOO,
MI_CUBAN,
MI_PHEONIX,
MI_COMET,
MI_SABRE,
MI_VIRGO,
MI_RANCHER,
MI_BLISTAC,
MI_WASHING,
MI_ADMIRAL,
MI_SABRETUR,
MI_DELUXO,
MI_HOTRING,
MI_REGINA,
MI_SENTXS,
MI_GLENDALE,
MI_OCEANIC,
MI_HERMES,
MI_GREENWOO,
MI_LOVEFIST,
MI_GANGBUR,
MI_BURRITO,
MI_SPAND,
MI_PACKER,
MI_WALTON,
MI_ROMERO,
MI_WHEEL_RIM = 237,
MI_WHEEL_OFFROAD,
MI_WHEEL_TRUCK,
MI_CAR_DOOR,// = 240,
MI_CAR_BUMPER,
MI_CAR_PANEL,
MI_CAR_BONNET,
MI_CAR_BOOT,
MI_CAR_WHEEL,
MI_BODYPARTA,
MI_BODYPARTB,
MI_WHEEL_SPORT = 250,
MI_WHEEL_SALOON,
MI_WHEEL_LIGHTVAN,
MI_WHEEL_CLASSIC,
MI_WHEEL_ALLOY,
MI_WHEEL_LIGHTTRUCK,
MI_WHEEL_SMALLCAR,
MI_AIRTRAIN_VLO, // = 257,
MI_MOBILE,
MI_BRASS_KNUCKLES, // 259
MI_SCREWDRIVER,
MI_GOLFCLUB,
MI_NIGHTSTICK,
MI_KNIFE,
MI_BASEBALL_BAT,
MI_HAMMER,
MI_MEAT_CLEAVER,
MI_MACHETE,
MI_KATANA,
MI_CHAINSAW,
MI_GRENADE,
MI_TEARGAS,
MI_MOLOTOV,
MI_MISSILE,
MI_COLT45,
MI_PYTHON,
MI_RUGER,
MI_SHOTGUN,
MI_SPAS12_SHOTGUN,
MI_STUBBY_SHOTGUN,
MI_M4,
MI_TEC9,
MI_UZI,
MI_SILENCEDINGRAM,
MI_MP5,
MI_SNIPERRIFLE,
MI_LASERSCOPE,
MI_ROCKETLAUNCHER,
MI_FLAMETHROWER,
MI_M60,
MI_MINIGUN,
MI_BOMB,
MI_CAMERA,
MI_FINGERS,
MI_MINIGUN2,
MI_CUTOBJ01 = 120,
MI_CUTOBJ02,
MI_CUTOBJ03,
MI_CUTOBJ04,
MI_CUTOBJ05,
MI_CUTOBJ06,
MI_CUTOBJ07,
MI_CUTOBJ08,
MI_CUTOBJ09,
MI_CUTOBJ10,
NUM_DEFAULT_MODELS = 300
};
enum{
NUM_OF_SPECIAL_CHARS = 21,
NUM_OF_CUTSCENE_OBJECTS = 5
};
void InitModelIndices(void);
void MatchModelString(const char *name, int16 id);
void TestModelIndices(void);
inline bool
IsGlass(int16 id)
{
CSimpleModelInfo *mi = (CSimpleModelInfo*)CModelInfo::GetModelInfo(id);
return mi->IsBuilding() && (mi->m_isCodeGlass || mi->m_isArtistGlass);
}
inline bool
IsTrafficLight(int16 id)
{
return id == MI_TRAFFICLIGHTS ||
id == MI_TRAFFICLIGHTS_VERTICAL ||
id == MI_TRAFFICLIGHTS_MIAMI ||
id == MI_TRAFFICLIGHTS_TWOVERTICAL;
}
inline bool
IsLightWithoutShift(int16 id)
{
return id == MI_TRAFFICLIGHTS ||
id == MI_SINGLESTREETLIGHTS1 ||
id == MI_SINGLESTREETLIGHTS2 ||
id == MI_SINGLESTREETLIGHTS3 ||
id == MI_DOUBLESTREETLIGHTS;
}
inline bool
IsLightWithPreRenderEffects(int16 id)
{
return IsTrafficLight(id) ||
id == MI_SINGLESTREETLIGHTS1 ||
id == MI_SINGLESTREETLIGHTS2 ||
id == MI_SINGLESTREETLIGHTS3 ||
id == MI_DOUBLESTREETLIGHTS;
}
inline bool
IsLightThatNeedsRepositioning(int16 id)
{
return id == MI_SINGLESTREETLIGHTS1 ||
id == MI_SINGLESTREETLIGHTS2 ||
id == MI_SINGLESTREETLIGHTS3 ||
id == MI_DOUBLESTREETLIGHTS;
}
inline bool
IsLightObject(int16 id)
{
return id == MI_TRAFFICLIGHTS_MIAMI ||
id == MI_MLAMPPOST ||
id == MI_SINGLESTREETLIGHTS1 ||
id == MI_SINGLESTREETLIGHTS2 ||
id == MI_SINGLESTREETLIGHTS3 ||
id == MI_DOUBLESTREETLIGHTS ||
id == MI_TRAFFICLIGHTS_TWOVERTICAL ||
id == MI_TRAFFICLIGHTS ||
id == MI_FENCE;
}
inline bool
IsLampPost(int16 id)
{
return id == MI_SINGLESTREETLIGHTS1 ||
id == MI_SINGLESTREETLIGHTS2 ||
id == MI_SINGLESTREETLIGHTS3 ||
id == MI_BOLLARDLIGHT ||
id == MI_MLAMPPOST ||
id == MI_STREETLAMP1 ||
id == MI_STREETLAMP2 ||
id == MI_TELPOLE02 ||
id == MI_TRAFFICLIGHTS_MIAMI ||
id == MI_TRAFFICLIGHTS_TWOVERTICAL;
}
inline bool
IsBodyPart(int16 id)
{
return id == MI_BODYPARTA || id == MI_BODYPARTB;
}
inline bool
IsPedModel(int16 id)
{
return id >= MI_PLAYER && id <= MI_LAST_PED;
}
inline bool
IsPalmTreeModel(int16 id)
{
return false;
}
inline bool
IsTreeModel(int16 id)
{
return id == MI_TREE1 ||
id == MI_TREE2 ||
id == MI_TREE3 ||
id == MI_TREE4 ||
id == MI_TREE5 ||
id == MI_TREE6 ||
id == MI_TREE7 ||
id == MI_TREE8 ||
id == MI_TREE9 ||
id == MI_TREE10 ||
id == MI_TREE11 ||
id == MI_TREE12 ||
id == MI_TREE13 ||
id == MI_TREE14;
}
inline bool
IsPolicePedModel(int16 id)
{
return id == MI_COP ||
id == MI_SWAT ||
id == MI_FBI ||
id == MI_ARMY;
}
inline bool
IsPoliceVehicleModel(int16 id)
{
return id == MI_CHOPPER ||
id == MI_PREDATOR ||
id == MI_POLICE ||
id == MI_ENFORCER;
}
inline bool
IsExplosiveThingModel(int16 id)
{
return id == MI_EXPLODINGBARREL ||
id == MI_PETROLPUMP ||
id == MI_PETROLPUMP2;
}
inline bool
IsFence(int16 id)
{
return id == MI_FENCE ||
id == MI_FENCE2;
}