#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;
	int16 advert_test; // txd
};

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;
}
