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
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
|
#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("ind_safeh_gdoor", 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_JFOTO = 77,
MI_JMOTO,
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_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_TOPFUN,
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,
// these indices are original
MI_SKIMMER = -1000,
MI_CADDY = -999,
MI_TROPIC = -992,
MI_COASTG = -991,
MI_MARQUIS = -990,
MI_RIO = -988,
MI_DINGHY = -987,
MI_SEASPAR = -986,
MI_SPARROW = -985,
MI_VOODOO = -984,
MI_FBIRANCH = -982,
MI_SANDKING = -981,
MI_SQUALO = -974,
MI_PHEONIX = -973,
MI_COMET = -972,
MI_KAUFMAN = -967,
MI_BAGGAGE = -963,
MI_RCBARON = -955,
MI_VICECHEE = -954,
// these two are unknown
MI_RIO = -992,
MI_TROPIC = -988,
// 7 of the following MIs originally are in this set: {-998, -996, -979, -978, -977, -975, -969}
MI_WASHING = -3000,
MI_ADMIRAL,
MI_GLENDALE,
MI_OCEANIC,
MI_REGINA,
MI_SABRE,
MI_VIRGO,
MI_GREENWOO,
// 22 of the following MIs originally are in this set:
// {-997, -995, -994, -993, -989, -983, -980, -976, -971, -970, -968, -966, -965, -964, -963, -962, -961, -960, -959, -958, -957, -956}
MI_JETMAX = -2000,
MI_CUBAN,
MI_RANCHER,
MI_BLISTAC,
MI_SABRETUR,
MI_DELUXO,
MI_HOTRING,
MI_SENTXS,
MI_HERMES,
MI_LOVEFIST,
MI_GANGBUR,
MI_BURRITO,
MI_SPAND,
MI_PACKER,
MI_WALTON,
MI_BOXVILLE,
MI_BENSON,
MI_MESA,
MI_HOTRINA,
MI_HOTRINB,
MI_BLOODRA,
MI_BLOODRB,
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
IsLCSTrafficLight(int16 id)
{
return id == MI_TLIGHT_POST ||
id == MI_TLIGHT_WALK ||
id == MI_TLIGHT_BOX1 ||
id == MI_TLIGHT_BOX2;
}
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;
}
|