summaryrefslogtreecommitdiffstats
path: root/src/modelinfo/ModelIndices.h
blob: 5de10558aea6b0729cb2e534bcbf82b4aed87eed (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
#define MODELINDICES \
	X("fire_hydrant",	MI_FIRE_HYDRANT, 0x5F5A00) \
	X("bagelstnd02",	MI_BAGELSTAND2, 0x5F59FC) \
	X("fish01",		MI_FISHSTALL01, 0x5F59EC) \
	X("fishstall02",	MI_FISHSTALL02, 0x5F59F0) \
	X("fishstall03",	MI_FISHSTALL03, 0x5F59F4) \
	X("fishstall04",	MI_FISHSTALL04, 0x5F59F8) \
	X("taxisign",		MI_TAXISIGN, 0x5F59E8) \
	X("phonesign",		MI_PHONESIGN, 0x5F59E4) \
	X("noparkingsign1",	MI_NOPARKINGSIGN1, 0x5F59E0) \
	X("bussign1",		MI_BUSSIGN1, 0x5F59DC) \
	X("roadworkbarrier1",	MI_ROADWORKBARRIER1, 0x5F59D8) \
	X("dump1",		MI_DUMP1, 0x5F59D4) \
	X("trafficcone",	MI_TRAFFICCONE, 0x5F59D0) \
	X("newsstand1",		MI_NEWSSTAND, 0x5F59CC) \
	X("postbox1",		MI_POSTBOX1, 0x5F59C8) \
	X("bin1",		MI_BIN, 0x5F59C4) \
	X("wastebin",		MI_WASTEBIN, 0x5F59C0) \
	X("phonebooth1",	MI_PHONEBOOTH1, 0x5F59BC) \
	X("parkingmeter",	MI_PARKINGMETER, 0x5F59B8) \
	X("trafficlight1",	MI_TRAFFICLIGHTS, 0x5F5958) \
	X("lamppost1",		MI_SINGLESTREETLIGHTS1, 0x5F595C) \
	X("lamppost2",		MI_SINGLESTREETLIGHTS2, 0x5F5960) \
	X("lamppost3",		MI_SINGLESTREETLIGHTS3, 0x5F5964) \
	X("doublestreetlght1",	MI_DOUBLESTREETLIGHTS, 0x5F5968) \
	X("rd_Road2A10",	MI_ROADSFORROADBLOCKSSTART, 0x5F596C) \
	X("rd_Road1A30",	MI_ROADSFORROADBLOCKSEND, 0x5F5970) \
	X("veg_tree1",		MI_TREE1, 0x5F5974) \
	X("veg_tree3",		MI_TREE2, 0x5F5978) \
	X("veg_treea1",		MI_TREE3, 0x5F597C) \
	X("veg_treenew01",	MI_TREE4, 0x5F5980) \
	X("veg_treenew05",	MI_TREE5, 0x5F5984) \
	X("veg_treeb1",		MI_TREE6, 0x5F5988) \
	X("veg_treenew10",	MI_TREE7, 0x5F598C) \
	X("veg_treea3",		MI_TREE8, 0x5F5990) \
	X("veg_treenew09",	MI_TREE9, 0x5F5994) \
	X("veg_treenew08",	MI_TREE10, 0x5F5998) \
	X("veg_treenew03",	MI_TREE11, 0x5F599C) \
	X("veg_treenew16",	MI_TREE12, 0x5F59A0) \
	X("veg_treenew17",	MI_TREE13, 0x5F59A4) \
	X("veg_treenew06",	MI_TREE14, 0x5F59A8) \
	X("doc_crane_cab",	MODELID_CRANE_1, 0x5F59AC) \
	X("cranetopb",		MODELID_CRANE_2, 0x5F59B0) \
	X("cranetopa",		MODELID_CRANE_3, 0x5F59B4) \
	X("package1",		MI_COLLECTABLE1, 0x5F5A04) \
	X("Money",		MI_MONEY, 0x5F5A08) \
	X("barrel1",		MI_CARMINE, 0x5F5A0C) \
	X("oddjgaragdoor",	MI_GARAGEDOOR1, 0x5F5A10) \
	X("bombdoor",		MI_GARAGEDOOR2, 0x5F5A14) \
	X("door_bombshop",	MI_GARAGEDOOR3, 0x5F5A18) \
	X("vheistlocdoor",	MI_GARAGEDOOR4, 0x5F5A1C) \
	X("door2_garage",	MI_GARAGEDOOR5, 0x5F5A20) \
	X("ind_slidedoor",	MI_GARAGEDOOR6, 0x5F5A24) \
	X("bankjobdoor",	MI_GARAGEDOOR7, 0x5F5A28) \
	X("door_jmsgrage",	MI_GARAGEDOOR9, 0x5F5A2C) \
	X("jamesgrge_kb",	MI_GARAGEDOOR10, 0x5F5A30) \
	X("door_sfehousegrge",	MI_GARAGEDOOR11, 0x5F5A34) \
	X("shedgaragedoor",	MI_GARAGEDOOR12, 0x5F5A38) \
	X("door4_garage",	MI_GARAGEDOOR13, 0x5F5A3C) \
	X("door_col_compnd_01",	MI_GARAGEDOOR14, 0x5F5A40) \
	X("door_col_compnd_02",	MI_GARAGEDOOR15, 0x5F5A44) \
	X("door_col_compnd_03",	MI_GARAGEDOOR16, 0x5F5A48) \
	X("door_col_compnd_04",	MI_GARAGEDOOR17, 0x5F5A4C) \
	X("door_col_compnd_05",	MI_GARAGEDOOR18, 0x5F5A50) \
	X("impex_door",		MI_GARAGEDOOR19, 0x5F5A54) \
	X("SalvGarage",		MI_GARAGEDOOR20, 0x5F5A58) \
	X("door3_garage",	MI_GARAGEDOOR21, 0x5F5A5C) \
	X("leveldoor2",		MI_GARAGEDOOR22, 0x5F5A60) \
	X("double_garage_dr",	MI_GARAGEDOOR23, 0x5F5A64) \
	X("amcogaragedoor",	MI_GARAGEDOOR24, 0x5F5A68) \
	X("towergaragedoor1",	MI_GARAGEDOOR25, 0x5F5A6C) \
	X("towergaragedoor2",	MI_GARAGEDOOR26, 0x5F5A70) \
	X("towergaragedoor3",	MI_GARAGEDOOR27, 0x5F5A74) \
	X("plysve_gragedoor",	MI_GARAGEDOOR28, 0x5F5A78) \
	X("impexpsubgrgdoor",	MI_GARAGEDOOR29, 0x5F5A7C) \
	X("Sub_sprayshopdoor",	MI_GARAGEDOOR30, 0x5F5A80) \
	X("ind_plyrwoor",	MI_GARAGEDOOR31, 0x5F5A84) \
	X("8ballsuburbandoor",	MI_GARAGEDOOR32, 0x5F5A88) \
	X("barrel2",		MI_NAUTICALMINE, 0x5F5A8C) \
	X("crushercrush",	MI_CRUSHERBODY, 0x5F5A90) \
	X("crushertop",		MI_CRUSHERLID, 0x5F5A94) \
	X("donkeymag",		MI_DONKEYMAG, 0x5F5A98) \
	X("bullion",		MI_BULLION, 0x5F5A9C) \
	X("floatpackge1",	MI_FLOATPACKAGE1, 0x5F5AA0) \
	X("briefcase",		MI_BRIEFCASE, 0x5F5AA4) \
	X("chinabanner1",	MI_CHINABANNER1, 0x5F5AA8) \
	X("chinabanner2",	MI_CHINABANNER2, 0x5F5AAC) \
	X("chinabanner3",	MI_CHINABANNER3, 0x5F5AB0) \
	X("chinabanner4",	MI_CHINABANNER4, 0x5F5AB4) \
	X("iten_chinatown5",	MI_CHINABANNER5, 0x5F5AB8) \
	X("iten_chinatown7",	MI_CHINABANNER6, 0x5F5ABC) \
	X("iten_chinatown3",	MI_CHINABANNER7, 0x5F5AC0) \
	X("iten_chinatown2",	MI_CHINABANNER8, 0x5F5AC4) \
	X("iten_chinatown4",	MI_CHINABANNER9, 0x5F5AC8) \
	X("iten_washline01",	MI_CHINABANNER10, 0x5F5ACC) \
	X("iten_washline02",	MI_CHINABANNER11, 0x5F5AD0) \
	X("iten_washline03",	MI_CHINABANNER12, 0x5F5AD4) \
	X("chinalanterns",	MI_CHINALANTERN, 0x5F5AD8) \
	X("glassfx1",		MI_GLASS1, 0x5F5ADC) \
	X("glassfx2",		MI_GLASS2, 0x5F5AE0) \
	X("glassfx3",		MI_GLASS3, 0x5F5AE4) \
	X("glassfx4",		MI_GLASS4, 0x5F5AE8) \
	X("glassfx55",		MI_GLASS5, 0x5F5AEC) \
	X("glassfxsub1",	MI_GLASS6, 0x5F5AF0) \
	X("glassfxsub2",	MI_GLASS7, 0x5F5AF4) \
	X("glassfx_composh",	MI_GLASS8, 0x5F5AF8) \
	X("bridge_liftsec",	MI_BRIDGELIFT, 0x5F5AFC) \
	X("bridge_liftweight",	MI_BRIDGEWEIGHT, 0x5F5B00) \
	X("subbridge_lift",	MI_BRIDGEROADSEGMENT, 0x5F5B04) \
	X("barrel4",		MI_EXPLODINGBARREL, 0x5F5B08) \
	X("flagsitaly",		MI_ITALYBANNER1, 0x5F5B0C) \
	X("adrenaline",		MI_PICKUP_ADRENALINE, 0x5F5B10) \
	X("bodyarmour",		MI_PICKUP_BODYARMOUR, 0x5F5B14) \
	X("info",		MI_PICKUP_INFO, 0x5F5B18) \
	X("health",		MI_PICKUP_HEALTH, 0x5F5B1C) \
	X("bonus",		MI_PICKUP_BONUS, 0x5F5B20) \
	X("bribe",		MI_PICKUP_BRIBE, 0x5F5B24) \
	X("killfrenzy",		MI_PICKUP_KILLFRENZY, 0x5F5B28) \
	X("camerapickup",	MI_PICKUP_CAMERA, 0x5F5B2C) \
	X("bollardlight",	MI_BOLLARDLIGHT, 0x5F5B30) \
	X("magnet",		MI_MAGNET, 0x5F5B34) \
	X("streetlamp1",	MI_STREETLAMP1, 0x5F5B38) \
	X("streetlamp2",	MI_STREETLAMP2, 0x5F5B3C) \
	X("railtrax_lo4b",	MI_RAILTRACKS, 0x5F5B40) \
	X("bar_barrier10",	MI_FENCE, 0x5F5B44) \
	X("bar_barrier12",	MI_FENCE2, 0x5F5B48) \
	X("petrolpump",		MI_PETROLPUMP, 0x5F5B4C) \
	X("bodycast",		MI_BODYCAST, 0x5F5B50) \
	X("backdoor",		MI_BACKDOOR, 0x5F5B54) \
	X("coffee",		MI_COFFEE, 0x5F5B58) \
	X("bouy",		MI_BUOY, 0x5F5B5C) \
	X("parktable1",		MI_PARKTABLE, 0x5F5B60) \
	X("sbwy_tunl_start",	MI_SUBWAY1, 0x5F5B64) \
	X("sbwy_tunl_bit",	MI_SUBWAY2, 0x5F5B68) \
	X("sbwy_tunl_bend",	MI_SUBWAY3, 0x5F5B6C) \
	X("sbwy_tunl_cstm6",	MI_SUBWAY4, 0x5F5B70) \
	X("sbwy_tunl_cstm7",	MI_SUBWAY5, 0x5F5B74) \
	X("sbwy_tunl_cstm8",	MI_SUBWAY6, 0x5F5B78) \
	X("sbwy_tunl_cstm10",	MI_SUBWAY7, 0x5F5B7C) \
	X("sbwy_tunl_cstm9",	MI_SUBWAY8, 0x5F5B80) \
	X("sbwy_tunl_cstm11",	MI_SUBWAY9, 0x5F5B84) \
	X("sbwy_tunl_cstm1",	MI_SUBWAY10, 0x5F5B88) \
	X("sbwy_tunl_cstm2",	MI_SUBWAY11, 0x5F5B8C) \
	X("sbwy_tunl_cstm4",	MI_SUBWAY12, 0x5F5B90) \
	X("sbwy_tunl_cstm3",	MI_SUBWAY13, 0x5F5B94) \
	X("sbwy_tunl_cstm5",	MI_SUBWAY14, 0x5F5B98) \
	X("subplatform_n2",	MI_SUBWAY15, 0x5F5B9C) \
	X("suby_tunl_start",	MI_SUBWAY16, 0x5F5BA0) \
	X("sbwy_tunl_start2",	MI_SUBWAY17, 0x5F5BA4) \
	X("indy_tunl_start",	MI_SUBWAY18, 0x5F5BA8) \
	X("indsubway03",	MI_SUBPLATFORM_IND, 0x5F5BAC) \
	X("comerside_subway",	MI_SUBPLATFORM_COMS, 0x5F5BB0) \
	X("subplatform",	MI_SUBPLATFORM_COMS2, 0x5F5BB4) \
	X("subplatform_n",	MI_SUBPLATFORM_COMN, 0x5F5BB8) \
	X("Otherside_subway",	MI_SUBPLATFORM_SUB, 0x5F5BBC) \
	X("subplatform_sub",	MI_SUBPLATFORM_SUB2, 0x5F5BC0) \
	X("files",		MI_FILES, 0x5F5BC4)

#define X(name, var, addr) extern int16 &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,

	MI_RHINO = 122,
	MI_COACH = 127,
};

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

inline bool
IsGlass(int16 id)
{
	return id == MI_GLASS1 ||
		id == MI_GLASS2 ||
		id == MI_GLASS3 ||
		id == MI_GLASS4 ||
		id == MI_GLASS5 ||
		id == MI_GLASS6 ||
		id == MI_GLASS7 ||
		id == MI_GLASS8;
}