#ifndef _MODELINDICES_H_
#define _MODELINDICES_H_

#define MODELINDICES \
	X("fire_hydrant", MI_FIRE_HYDRANT) \
	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("lamppost1", MI_SINGLESTREETLIGHTS1) \
	X("lamppost2", MI_SINGLESTREETLIGHTS2) \
	X("lamppost3", MI_SINGLESTREETLIGHTS3) \
	X("doublestreetlght1", MI_DOUBLESTREETLIGHTS) \
	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("doc_crane_cab", MODELID_CRANE_1) \
	X("cranetopb", MODELID_CRANE_2) \
	X("cranetopa", MODELID_CRANE_3) \
	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("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("barrel4", MI_EXPLODINGBARREL) \
	X("flagsitaly", MI_ITALYBANNER1) \
	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("bollardlight", MI_BOLLARDLIGHT) \
	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("bodycast", MI_BODYCAST) \
	X("backdoor", MI_BACKDOOR) \
	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)

#define X(name, var) extern short var;
	MODELINDICES
#undef X

// and some hardcoded ones
// expand as needed
enum
{
	MI_COP = 1,
	MI_SWAT,
	MI_FBI,
	MI_ARMY,
	MI_MEDIC,
	MI_FIREMAN,
	MI_MALE01,
	MI_TAXI_D,
	MI_PIMP,
	MI_GANG01,
	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_CRIMINAL01,
	MI_CRIMINAL02,
	MI_SPECIAL01,
	MI_SPECIAL02,
	MI_SPECIAL03,
	MI_SPECIAL04,
	MI_MALE02,
	MI_MALE03,
	MI_FATMALE01,
	MI_FATMALE02,
	MI_FEMALE01,
	MI_FEMALE02,
	MI_FEMALE03,
	MI_FATFEMALE01,
	MI_FATFEMALE02,
};

void InitModelIndices(void);
void MatchModelString(const char *name, short id);

#endif
