-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMPQStats.cpp
2466 lines (2443 loc) · 116 KB
/
MPQStats.cpp
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
#include "MPQStats.h"
#include "D2Ptrs.h"
// Tables dumped by Sheppard
static BinField itemTable[] = {
{"flippyfile", FIELDTYPE_DATA_ASCII, 0x1f, 0x0},
{"invfile", FIELDTYPE_DATA_ASCII, 0x1f, 0x20},
{"uniqueinvfile", FIELDTYPE_DATA_ASCII, 0x1f, 0x40},
{"setinvfile", FIELDTYPE_DATA_ASCII, 0x1f, 0x60},
{"code", FIELDTYPE_ASCII_TO_CODE, 0x0, 0x80},
{"normcode", FIELDTYPE_DATA_RAW, 0x0, 0x84},
{"ubercode", FIELDTYPE_DATA_RAW, 0x0, 0x88},
{"ultracode", FIELDTYPE_DATA_RAW, 0x0, 0x8c},
{"alternategfx", FIELDTYPE_DATA_RAW, 0x0, 0x90},
{"pSpell", FIELDTYPE_DATA_DWORD, 0x0, 0x94},
{"state", FIELDTYPE_NAME_TO_WORD, 0x0, 0x98},
{"cstate1", FIELDTYPE_NAME_TO_WORD, 0x0, 0x9a},
{"cstate2", FIELDTYPE_NAME_TO_WORD, 0x0, 0x9c},
{"stat1", FIELDTYPE_NAME_TO_WORD, 0x0, 0x9e},
{"stat2", FIELDTYPE_NAME_TO_WORD, 0x0, 0xa0},
{"stat3", FIELDTYPE_NAME_TO_WORD, 0x0, 0xa2},
{"calc1", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xa4},
{"calc2", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xa8},
{"calc3", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xac},
{"len", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xb0},
{"spelldesc", FIELDTYPE_DATA_BYTE, 0x0, 0xb4},
{"spelldescstr", FIELDTYPE_KEY_TO_WORD, 0x0, 0xb6},
{"spelldesccalc", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xb8},
{"BetterGem", FIELDTYPE_DATA_RAW, 0x0, 0xbc},
{"wclass", FIELDTYPE_DATA_RAW, 0x0, 0xc0},
{"2handedwclass", FIELDTYPE_DATA_RAW, 0x0, 0xc4},
{"TMogType", FIELDTYPE_DATA_RAW, 0x0, 0xc8},
{"minac", FIELDTYPE_DATA_DWORD, 0x0, 0xcc},
{"maxac", FIELDTYPE_DATA_DWORD, 0x0, 0xd0},
{"gamble cost", FIELDTYPE_DATA_DWORD, 0x0, 0xd4},
{"speed", FIELDTYPE_DATA_DWORD_2, 0x0, 0xd8},
{"bitfield1", FIELDTYPE_DATA_DWORD, 0x0, 0xdc},
{"cost", FIELDTYPE_DATA_DWORD, 0x0, 0xe0},
{"minstack", FIELDTYPE_DATA_DWORD, 0x0, 0xe4},
{"maxstack", FIELDTYPE_DATA_DWORD, 0x0, 0xe8},
{"spawnstack", FIELDTYPE_DATA_DWORD, 0x0, 0xec},
{"gemoffset", FIELDTYPE_DATA_DWORD_2, 0x0, 0xf0},
{"namestr", FIELDTYPE_KEY_TO_WORD, 0x0, 0xf4},
{"version", FIELDTYPE_DATA_WORD, 0x0, 0xf6},
{"auto prefix", FIELDTYPE_DATA_WORD, 0x0, 0xf8},
{"missiletype", FIELDTYPE_DATA_WORD, 0x0, 0xfa},
{"rarity", FIELDTYPE_DATA_BYTE, 0x0, 0xfc},
{"level", FIELDTYPE_DATA_BYTE, 0x0, 0xfd},
{"mindam", FIELDTYPE_DATA_BYTE_2, 0x0, 0xfe},
{"maxdam", FIELDTYPE_DATA_BYTE_2, 0x0, 0xff},
{"minmisdam", FIELDTYPE_DATA_BYTE, 0x0, 0x100},
{"maxmisdam", FIELDTYPE_DATA_BYTE, 0x0, 0x101},
{"2handmindam", FIELDTYPE_DATA_BYTE_2, 0x0, 0x102},
{"2handmaxdam", FIELDTYPE_DATA_BYTE_2, 0x0, 0x103},
{"rangeadder", FIELDTYPE_DATA_BYTE_2, 0x0, 0x104},
{"strbonus", FIELDTYPE_DATA_WORD, 0x0, 0x106},
{"dexbonus", FIELDTYPE_DATA_WORD, 0x0, 0x108},
{"reqstr", FIELDTYPE_DATA_WORD, 0x0, 0x10a},
{"reqdex", FIELDTYPE_DATA_WORD, 0x0, 0x10c},
{"absorbs", FIELDTYPE_DATA_BYTE_2, 0x0, 0x10e},
{"invwidth", FIELDTYPE_DATA_BYTE, 0x0, 0x10f},
{"invheight", FIELDTYPE_DATA_BYTE, 0x0, 0x110},
{"block", FIELDTYPE_DATA_BYTE_2, 0x0, 0x111},
{"durability", FIELDTYPE_DATA_BYTE_2, 0x0, 0x112},
{"nodurability", FIELDTYPE_DATA_BYTE, 0x0, 0x113},
{"missile", FIELDTYPE_DATA_BYTE_2, 0x0, 0x114},
{"component", FIELDTYPE_DATA_BYTE, 0x0, 0x115},
{"rArm", FIELDTYPE_DATA_BYTE_2, 0x0, 0x116},
{"lArm", FIELDTYPE_DATA_BYTE_2, 0x0, 0x117},
{"torso", FIELDTYPE_DATA_BYTE_2, 0x0, 0x118},
{"legs", FIELDTYPE_DATA_BYTE_2, 0x0, 0x119},
{"rspad", FIELDTYPE_DATA_BYTE_2, 0x0, 0x11a},
{"lspad", FIELDTYPE_DATA_BYTE_2, 0x0, 0x11b},
{"2handed", FIELDTYPE_DATA_BYTE_2, 0x0, 0x11c},
{"useable", FIELDTYPE_DATA_BYTE, 0x0, 0x11d},
{"type", FIELDTYPE_CODE_TO_WORD, 0x0, 0x11e},
{"type2", FIELDTYPE_CODE_TO_WORD, 0x0, 0x120},
{"subtype", FIELDTYPE_DATA_BYTE_2, 0x0, 0x122},
{"dropsound", FIELDTYPE_NAME_TO_WORD, 0x0, 0x124},
{"usesound", FIELDTYPE_NAME_TO_WORD, 0x0, 0x126},
{"dropsfxframe", FIELDTYPE_DATA_BYTE, 0x0, 0x128},
{"unique", FIELDTYPE_DATA_BYTE, 0x0, 0x129},
{"quest", FIELDTYPE_DATA_BYTE, 0x0, 0x12a},
{"questdiffcheck", FIELDTYPE_DATA_BYTE, 0x0, 0x12b},
{"transparent", FIELDTYPE_DATA_BYTE, 0x0, 0x12c},
{"transtbl", FIELDTYPE_DATA_BYTE, 0x0, 0x12d},
{"lightradius", FIELDTYPE_DATA_BYTE, 0x0, 0x12f},
{"belt", FIELDTYPE_DATA_BYTE, 0x0, 0x130},
{"autobelt", FIELDTYPE_DATA_BYTE, 0x0, 0x131},
{"stackable", FIELDTYPE_DATA_BYTE, 0x0, 0x132},
{"spawnable", FIELDTYPE_DATA_BYTE, 0x0, 0x133},
{"spellicon", FIELDTYPE_DATA_BYTE_2, 0x0, 0x134},
{"durwarning", FIELDTYPE_DATA_BYTE, 0x0, 0x135},
{"qntwarning", FIELDTYPE_DATA_BYTE, 0x0, 0x136},
{"hasinv", FIELDTYPE_DATA_BYTE_2, 0x0, 0x137},
{"gemsockets", FIELDTYPE_DATA_BYTE_2, 0x0, 0x138},
{"Transmogrify", FIELDTYPE_DATA_BYTE_2, 0x0, 0x139},
{"TMogMin", FIELDTYPE_DATA_BYTE_2, 0x0, 0x13a},
{"TMogMax", FIELDTYPE_DATA_BYTE_2, 0x0, 0x13b},
{"hit class", FIELDTYPE_CODE_TO_BYTE, 0x0, 0x13c},
{"1or2handed", FIELDTYPE_DATA_BYTE_2, 0x0, 0x13d},
{"gemapplytype", FIELDTYPE_DATA_BYTE, 0x0, 0x13e},
{"levelreq", FIELDTYPE_DATA_BYTE, 0x0, 0x13f},
{"magic lvl", FIELDTYPE_DATA_BYTE, 0x0, 0x140},
{"Transform", FIELDTYPE_DATA_BYTE, 0x0, 0x141},
{"InvTrans", FIELDTYPE_DATA_BYTE, 0x0, 0x142},
{"compactsave", FIELDTYPE_DATA_BYTE_2, 0x0, 0x143},
{"SkipName", FIELDTYPE_DATA_BYTE, 0x0, 0x144},
{"Nameable", FIELDTYPE_DATA_BYTE, 0x0, 0x145},
{"AkaraMin", FIELDTYPE_DATA_BYTE, 0x0, 0x146},
{"GheedMin", FIELDTYPE_DATA_BYTE, 0x0, 0x147},
{"CharsiMin", FIELDTYPE_DATA_BYTE, 0x0, 0x148},
{"FaraMin", FIELDTYPE_DATA_BYTE, 0x0, 0x149},
{"LysanderMin", FIELDTYPE_DATA_BYTE, 0x0, 0x14a},
{"DrognanMin", FIELDTYPE_DATA_BYTE, 0x0, 0x14b},
{"HraltiMin", FIELDTYPE_DATA_BYTE, 0x0, 0x14c},
{"AlkorMin", FIELDTYPE_DATA_BYTE, 0x0, 0x14d},
{"OrmusMin", FIELDTYPE_DATA_BYTE, 0x0, 0x14e},
{"ElzixMin", FIELDTYPE_DATA_BYTE, 0x0, 0x14f},
{"AshearaMin", FIELDTYPE_DATA_BYTE, 0x0, 0x150},
{"CainMin", FIELDTYPE_DATA_BYTE, 0x0, 0x151},
{"HalbuMin", FIELDTYPE_DATA_BYTE, 0x0, 0x152},
{"JamellaMin", FIELDTYPE_DATA_BYTE, 0x0, 0x153},
{"MalahMin", FIELDTYPE_DATA_BYTE, 0x0, 0x154},
{"LarzukMin", FIELDTYPE_DATA_BYTE, 0x0, 0x155},
{"DrehyaMin", FIELDTYPE_DATA_BYTE, 0x0, 0x156},
{"AkaraMax", FIELDTYPE_DATA_BYTE, 0x0, 0x157},
{"GheedMax", FIELDTYPE_DATA_BYTE, 0x0, 0x158},
{"CharsiMax", FIELDTYPE_DATA_BYTE, 0x0, 0x159},
{"FaraMax", FIELDTYPE_DATA_BYTE, 0x0, 0x15a},
{"LysanderMax", FIELDTYPE_DATA_BYTE, 0x0, 0x15b},
{"DrognanMax", FIELDTYPE_DATA_BYTE, 0x0, 0x15c},
{"HraltiMax", FIELDTYPE_DATA_BYTE, 0x0, 0x15d},
{"AlkorMax", FIELDTYPE_DATA_BYTE, 0x0, 0x15e},
{"OrmusMax", FIELDTYPE_DATA_BYTE, 0x0, 0x15f},
{"ElzixMax", FIELDTYPE_DATA_BYTE, 0x0, 0x160},
{"AshearaMax", FIELDTYPE_DATA_BYTE, 0x0, 0x161},
{"CainMax", FIELDTYPE_DATA_BYTE, 0x0, 0x162},
{"HalbuMax", FIELDTYPE_DATA_BYTE, 0x0, 0x163},
{"JamellaMax", FIELDTYPE_DATA_BYTE, 0x0, 0x164},
{"MalahMax", FIELDTYPE_DATA_BYTE, 0x0, 0x165},
{"LarzukMax", FIELDTYPE_DATA_BYTE, 0x0, 0x166},
{"DrehyaMax", FIELDTYPE_DATA_BYTE, 0x0, 0x167},
{"AkaraMagicMin", FIELDTYPE_DATA_BYTE, 0x0, 0x168},
{"GheedMagicMin", FIELDTYPE_DATA_BYTE, 0x0, 0x169},
{"CharsiMagicMin", FIELDTYPE_DATA_BYTE, 0x0, 0x16a},
{"FaraMagicMin", FIELDTYPE_DATA_BYTE, 0x0, 0x16b},
{"LysanderMagicMin", FIELDTYPE_DATA_BYTE, 0x0, 0x16c},
{"DrognanMagicMin", FIELDTYPE_DATA_BYTE, 0x0, 0x16d},
{"HraltiMagicMin", FIELDTYPE_DATA_BYTE, 0x0, 0x16e},
{"AlkorMagicMin", FIELDTYPE_DATA_BYTE, 0x0, 0x16f},
{"OrmusMagicMin", FIELDTYPE_DATA_BYTE, 0x0, 0x170},
{"ElzixMagicMin", FIELDTYPE_DATA_BYTE, 0x0, 0x171},
{"AshearaMagicMin", FIELDTYPE_DATA_BYTE, 0x0, 0x172},
{"CainMagicMin", FIELDTYPE_DATA_BYTE, 0x0, 0x173},
{"HalbuMagicMin", FIELDTYPE_DATA_BYTE, 0x0, 0x174},
{"JamellaMagicMin", FIELDTYPE_DATA_BYTE, 0x0, 0x175},
{"MalahMagicMin", FIELDTYPE_DATA_BYTE, 0x0, 0x176},
{"LarzukMagicMin", FIELDTYPE_DATA_BYTE, 0x0, 0x177},
{"DrehyaMagicMin", FIELDTYPE_DATA_BYTE, 0x0, 0x178},
{"AkaraMagicMax", FIELDTYPE_DATA_BYTE, 0x0, 0x179},
{"GheedMagicMax", FIELDTYPE_DATA_BYTE, 0x0, 0x17a},
{"CharsiMagicMax", FIELDTYPE_DATA_BYTE, 0x0, 0x17b},
{"FaraMagicMax", FIELDTYPE_DATA_BYTE, 0x0, 0x17c},
{"LysanderMagicMax", FIELDTYPE_DATA_BYTE, 0x0, 0x17d},
{"DrognanMagicMax", FIELDTYPE_DATA_BYTE, 0x0, 0x17e},
{"HraltiMagicMax", FIELDTYPE_DATA_BYTE, 0x0, 0x17f},
{"AlkorMagicMax", FIELDTYPE_DATA_BYTE, 0x0, 0x180},
{"OrmusMagicMax", FIELDTYPE_DATA_BYTE, 0x0, 0x181},
{"ElzixMagicMax", FIELDTYPE_DATA_BYTE, 0x0, 0x182},
{"AshearaMagicMax", FIELDTYPE_DATA_BYTE, 0x0, 0x183},
{"CainMagicMax", FIELDTYPE_DATA_BYTE, 0x0, 0x184},
{"HalbuMagicMax", FIELDTYPE_DATA_BYTE, 0x0, 0x185},
{"JamellaMagicMax", FIELDTYPE_DATA_BYTE, 0x0, 0x186},
{"MalahMagicMax", FIELDTYPE_DATA_BYTE, 0x0, 0x187},
{"LarzukMagicMax", FIELDTYPE_DATA_BYTE, 0x0, 0x188},
{"DrehyaMagicMax", FIELDTYPE_DATA_BYTE, 0x0, 0x189},
{"AkaraMagicLvl", FIELDTYPE_DATA_BYTE, 0x0, 0x18a},
{"GheedMagicLvl", FIELDTYPE_DATA_BYTE, 0x0, 0x18b},
{"CharsiMagicLvl", FIELDTYPE_DATA_BYTE, 0x0, 0x18c},
{"FaraMagicLvl", FIELDTYPE_DATA_BYTE, 0x0, 0x18d},
{"LysanderMagicLvl", FIELDTYPE_DATA_BYTE, 0x0, 0x18e},
{"DrognanMagicLvl", FIELDTYPE_DATA_BYTE, 0x0, 0x18f},
{"HraltiMagicLvl", FIELDTYPE_DATA_BYTE, 0x0, 0x190},
{"AlkorMagicLvl", FIELDTYPE_DATA_BYTE, 0x0, 0x191},
{"OrmusMagicLvl", FIELDTYPE_DATA_BYTE, 0x0, 0x192},
{"ElzixMagicLvl", FIELDTYPE_DATA_BYTE, 0x0, 0x193},
{"AshearaMagicLvl", FIELDTYPE_DATA_BYTE, 0x0, 0x194},
{"CainMagicLvl", FIELDTYPE_DATA_BYTE, 0x0, 0x195},
{"HalbuMagicLvl", FIELDTYPE_DATA_BYTE, 0x0, 0x196},
{"JamellaMagicLvl", FIELDTYPE_DATA_BYTE, 0x0, 0x197},
{"MalahMagicLvl", FIELDTYPE_DATA_BYTE, 0x0, 0x198},
{"LarzukMagicLvl", FIELDTYPE_DATA_BYTE, 0x0, 0x199},
{"DrehyaMagicLvl", FIELDTYPE_DATA_BYTE, 0x0, 0x19a},
{"NightmareUpgrade", FIELDTYPE_DATA_RAW, 0x0, 0x19c},
{"HellUpgrade", FIELDTYPE_DATA_RAW, 0x0, 0x1a0},
{"PermStoreItem", FIELDTYPE_DATA_BYTE, 0x0, 0x1a4},
{"multibuy", FIELDTYPE_DATA_BYTE, 0x0, 0x1a5},
{"end", FIELDTYPE_END, 0x0, 0x1a8},
};
static BinField monstatsTable[] = {
{"Id", FIELDTYPE_NAME_TO_INDEX, 0x0, 0x0},
{"BaseId", FIELDTYPE_NAME_TO_WORD, 0x0, 0x2},
{"NextInClass", FIELDTYPE_NAME_TO_WORD, 0x0, 0x4},
{"NameStr", FIELDTYPE_KEY_TO_WORD, 0x0, 0x6},
{"DescStr", FIELDTYPE_KEY_TO_WORD, 0x0, 0x8},
{"isSpawn", FIELDTYPE_DATA_BIT, 0x0, 0xc},
{"isMelee", FIELDTYPE_DATA_BIT, 0x1, 0xc},
{"noRatio", FIELDTYPE_DATA_BIT, 0x2, 0xc},
{"opendoors", FIELDTYPE_DATA_BIT, 0x3, 0xc},
{"SetBoss", FIELDTYPE_DATA_BIT, 0x4, 0xc},
{"BossXfer", FIELDTYPE_DATA_BIT, 0x5, 0xc},
{"boss", FIELDTYPE_DATA_BIT, 0x6, 0xc},
{"primeevil", FIELDTYPE_DATA_BIT, 0x7, 0xc},
{"npc", FIELDTYPE_DATA_BIT, 0x8, 0xc},
{"interact", FIELDTYPE_DATA_BIT, 0x9, 0xc},
{"inTown", FIELDTYPE_DATA_BIT, 0xa, 0xc},
{"lUndead", FIELDTYPE_DATA_BIT, 0xb, 0xc},
{"hUndead", FIELDTYPE_DATA_BIT, 0xc, 0xc},
{"demon", FIELDTYPE_DATA_BIT, 0xd, 0xc},
{"flying", FIELDTYPE_DATA_BIT, 0xe, 0xc},
{"killable", FIELDTYPE_DATA_BIT, 0xf, 0xc},
{"switchai", FIELDTYPE_DATA_BIT, 0x10, 0xc},
{"nomultishot", FIELDTYPE_DATA_BIT, 0x11, 0xc},
{"neverCount", FIELDTYPE_DATA_BIT, 0x12, 0xc},
{"petIgnore", FIELDTYPE_DATA_BIT, 0x13, 0xc},
{"deathDmg", FIELDTYPE_DATA_BIT, 0x14, 0xc},
{"genericSpawn", FIELDTYPE_DATA_BIT, 0x15, 0xc},
{"zoo", FIELDTYPE_DATA_BIT, 0x16, 0xc},
{"placespawn", FIELDTYPE_DATA_BIT, 0x17, 0xc},
{"inventory", FIELDTYPE_DATA_BIT, 0x18, 0xc},
{"enabled", FIELDTYPE_DATA_BIT, 0x19, 0xc},
{"NoShldBlock", FIELDTYPE_DATA_BIT, 0x1a, 0xc},
{"noaura", FIELDTYPE_DATA_BIT, 0x1b, 0xc},
{"rangedtype", FIELDTYPE_DATA_BIT, 0x1c, 0xc},
{"Code", FIELDTYPE_DATA_RAW, 0x0, 0x10},
{"MonSound", FIELDTYPE_NAME_TO_WORD, 0x0, 0x14},
{"UMonSound", FIELDTYPE_NAME_TO_WORD, 0x0, 0x16},
{"MonStatsEx", FIELDTYPE_NAME_TO_WORD, 0x0, 0x18},
{"MonProp", FIELDTYPE_NAME_TO_WORD, 0x0, 0x1a},
{"MonType", FIELDTYPE_NAME_TO_WORD, 0x0, 0x1c},
{"AI", FIELDTYPE_NAME_TO_WORD, 0x0, 0x1e},
{"spawn", FIELDTYPE_NAME_TO_WORD, 0x0, 0x20},
{"spawnx", FIELDTYPE_DATA_BYTE, 0x0, 0x22},
{"spawny", FIELDTYPE_DATA_BYTE, 0x0, 0x23},
{"spawnmode", FIELDTYPE_CODE_TO_BYTE, 0x0, 0x24},
{"minion1", FIELDTYPE_NAME_TO_WORD, 0x0, 0x26},
{"minion2", FIELDTYPE_NAME_TO_WORD, 0x0, 0x28},
{"PartyMin", FIELDTYPE_DATA_BYTE, 0x0, 0x2c},
{"PartyMax", FIELDTYPE_DATA_BYTE, 0x0, 0x2d},
{"Rarity", FIELDTYPE_DATA_BYTE, 0x0, 0x2e},
{"MinGrp", FIELDTYPE_DATA_BYTE, 0x0, 0x2f},
{"MaxGrp", FIELDTYPE_DATA_BYTE, 0x0, 0x30},
{"sparsePopulate", FIELDTYPE_DATA_BYTE, 0x0, 0x31},
{"Velocity", FIELDTYPE_DATA_WORD, 0x0, 0x32},
{"Run", FIELDTYPE_DATA_WORD, 0x0, 0x34},
{"MissA1", FIELDTYPE_NAME_TO_WORD, 0x0, 0x3a},
{"MissA2", FIELDTYPE_NAME_TO_WORD, 0x0, 0x3c},
{"MissS1", FIELDTYPE_NAME_TO_WORD, 0x0, 0x3e},
{"MissS2", FIELDTYPE_NAME_TO_WORD, 0x0, 0x40},
{"MissS3", FIELDTYPE_NAME_TO_WORD, 0x0, 0x42},
{"MissS4", FIELDTYPE_NAME_TO_WORD, 0x0, 0x44},
{"MissC", FIELDTYPE_NAME_TO_WORD, 0x0, 0x46},
{"MissSQ", FIELDTYPE_NAME_TO_WORD, 0x0, 0x48},
{"Align", FIELDTYPE_DATA_BYTE, 0x0, 0x4c},
{"TransLvl", FIELDTYPE_DATA_BYTE, 0x0, 0x4d},
{"threat", FIELDTYPE_DATA_BYTE, 0x0, 0x4e},
{"aidel", FIELDTYPE_DATA_BYTE, 0x0, 0x4f},
{"aidel(N)", FIELDTYPE_DATA_BYTE, 0x0, 0x50},
{"aidel(H)", FIELDTYPE_DATA_BYTE, 0x0, 0x51},
{"aidist", FIELDTYPE_DATA_BYTE, 0x0, 0x52},
{"aidist(N)", FIELDTYPE_DATA_BYTE, 0x0, 0x53},
{"aidist(H)", FIELDTYPE_DATA_BYTE, 0x0, 0x54},
{"aip1", FIELDTYPE_DATA_WORD, 0x0, 0x56},
{"aip1(N)", FIELDTYPE_DATA_WORD, 0x0, 0x58},
{"aip1(H)", FIELDTYPE_DATA_WORD, 0x0, 0x5a},
{"aip2", FIELDTYPE_DATA_WORD, 0x0, 0x5c},
{"aip2(N)", FIELDTYPE_DATA_WORD, 0x0, 0x5e},
{"aip2(H)", FIELDTYPE_DATA_WORD, 0x0, 0x60},
{"aip3", FIELDTYPE_DATA_WORD, 0x0, 0x62},
{"aip3(N)", FIELDTYPE_DATA_WORD, 0x0, 0x64},
{"aip3(H)", FIELDTYPE_DATA_WORD, 0x0, 0x66},
{"aip4", FIELDTYPE_DATA_WORD, 0x0, 0x68},
{"aip4(N)", FIELDTYPE_DATA_WORD, 0x0, 0x6a},
{"aip4(H)", FIELDTYPE_DATA_WORD, 0x0, 0x6c},
{"aip5", FIELDTYPE_DATA_WORD, 0x0, 0x6e},
{"aip5(N)", FIELDTYPE_DATA_WORD, 0x0, 0x70},
{"aip5(H)", FIELDTYPE_DATA_WORD, 0x0, 0x72},
{"aip6", FIELDTYPE_DATA_WORD, 0x0, 0x74},
{"aip6(N)", FIELDTYPE_DATA_WORD, 0x0, 0x76},
{"aip6(H)", FIELDTYPE_DATA_WORD, 0x0, 0x78},
{"aip7", FIELDTYPE_DATA_WORD, 0x0, 0x7a},
{"aip7(N)", FIELDTYPE_DATA_WORD, 0x0, 0x7c},
{"aip7(H)", FIELDTYPE_DATA_WORD, 0x0, 0x7e},
{"aip8", FIELDTYPE_DATA_WORD, 0x0, 0x80},
{"aip8(N)", FIELDTYPE_DATA_WORD, 0x0, 0x82},
{"aip8(H)", FIELDTYPE_DATA_WORD, 0x0, 0x84},
{"TreasureClass1", FIELDTYPE_NAME_TO_WORD, 0x0, 0x86},
{"TreasureClass2", FIELDTYPE_NAME_TO_WORD, 0x0, 0x88},
{"TreasureClass3", FIELDTYPE_NAME_TO_WORD, 0x0, 0x8a},
{"TreasureClass4", FIELDTYPE_NAME_TO_WORD, 0x0, 0x8c},
{"TreasureClass1(N)", FIELDTYPE_NAME_TO_WORD, 0x0, 0x8e},
{"TreasureClass2(N)", FIELDTYPE_NAME_TO_WORD, 0x0, 0x90},
{"TreasureClass3(N)", FIELDTYPE_NAME_TO_WORD, 0x0, 0x92},
{"TreasureClass4(N)", FIELDTYPE_NAME_TO_WORD, 0x0, 0x94},
{"TreasureClass1(H)", FIELDTYPE_NAME_TO_WORD, 0x0, 0x96},
{"TreasureClass2(H)", FIELDTYPE_NAME_TO_WORD, 0x0, 0x98},
{"TreasureClass3(H)", FIELDTYPE_NAME_TO_WORD, 0x0, 0x9a},
{"TreasureClass4(H)", FIELDTYPE_NAME_TO_WORD, 0x0, 0x9c},
{"TCQuestId", FIELDTYPE_DATA_BYTE, 0x0, 0x9e},
{"TCQuestCP", FIELDTYPE_DATA_BYTE, 0x0, 0x9f},
{"Drain", FIELDTYPE_DATA_BYTE, 0x0, 0xa0},
{"Drain(N)", FIELDTYPE_DATA_BYTE, 0x0, 0xa1},
{"Drain(H)", FIELDTYPE_DATA_BYTE, 0x0, 0xa2},
{"ToBlock", FIELDTYPE_DATA_BYTE, 0x0, 0xa3},
{"ToBlock(N)", FIELDTYPE_DATA_BYTE, 0x0, 0xa4},
{"ToBlock(H)", FIELDTYPE_DATA_BYTE, 0x0, 0xa5},
{"Crit", FIELDTYPE_DATA_BYTE, 0x0, 0xa6},
{"SkillDamage", FIELDTYPE_NAME_TO_WORD, 0x0, 0xa8},
{"Level", FIELDTYPE_DATA_WORD, 0x0, 0xaa},
{"Level(N)", FIELDTYPE_DATA_WORD, 0x0, 0xac},
{"Level(H)", FIELDTYPE_DATA_WORD, 0x0, 0xae},
{"MinHP", FIELDTYPE_DATA_WORD, 0x0, 0xb0},
{"MinHP(N)", FIELDTYPE_DATA_WORD, 0x0, 0xb2},
{"MinHP(H)", FIELDTYPE_DATA_WORD, 0x0, 0xb4},
{"MaxHP", FIELDTYPE_DATA_WORD, 0x0, 0xb6},
{"MaxHP(N)", FIELDTYPE_DATA_WORD, 0x0, 0xb8},
{"MaxHP(H)", FIELDTYPE_DATA_WORD, 0x0, 0xba},
{"AC", FIELDTYPE_DATA_WORD, 0x0, 0xbc},
{"AC(N)", FIELDTYPE_DATA_WORD, 0x0, 0xbe},
{"AC(H)", FIELDTYPE_DATA_WORD, 0x0, 0xc0},
{"A1TH", FIELDTYPE_DATA_WORD, 0x0, 0xc2},
{"A1TH(N)", FIELDTYPE_DATA_WORD, 0x0, 0xc4},
{"A1TH(H)", FIELDTYPE_DATA_WORD, 0x0, 0xc6},
{"A2TH", FIELDTYPE_DATA_WORD, 0x0, 0xc8},
{"A2TH(N)", FIELDTYPE_DATA_WORD, 0x0, 0xca},
{"A2TH(H)", FIELDTYPE_DATA_WORD, 0x0, 0xcc},
{"S1TH", FIELDTYPE_DATA_WORD, 0x0, 0xce},
{"S1TH(N)", FIELDTYPE_DATA_WORD, 0x0, 0xd0},
{"S1TH(H)", FIELDTYPE_DATA_WORD, 0x0, 0xd2},
{"Exp", FIELDTYPE_DATA_WORD, 0x0, 0xd4},
{"Exp(N)", FIELDTYPE_DATA_WORD, 0x0, 0xd6},
{"Exp(H)", FIELDTYPE_DATA_WORD, 0x0, 0xd8},
{"A1MinD", FIELDTYPE_DATA_WORD, 0x0, 0xda},
{"A1MinD(N)", FIELDTYPE_DATA_WORD, 0x0, 0xdc},
{"A1MinD(H)", FIELDTYPE_DATA_WORD, 0x0, 0xde},
{"A1MaxD", FIELDTYPE_DATA_WORD, 0x0, 0xe0},
{"A1MaxD(N)", FIELDTYPE_DATA_WORD, 0x0, 0xe2},
{"A1MaxD(H)", FIELDTYPE_DATA_WORD, 0x0, 0xe4},
{"A2MinD", FIELDTYPE_DATA_WORD, 0x0, 0xe6},
{"A2MinD(N)", FIELDTYPE_DATA_WORD, 0x0, 0xe8},
{"A2MinD(H)", FIELDTYPE_DATA_WORD, 0x0, 0xea},
{"A2MaxD", FIELDTYPE_DATA_WORD, 0x0, 0xec},
{"A2MaxD(N)", FIELDTYPE_DATA_WORD, 0x0, 0xee},
{"A2MaxD(H)", FIELDTYPE_DATA_WORD, 0x0, 0xf0},
{"S1MinD", FIELDTYPE_DATA_WORD, 0x0, 0xf2},
{"S1MinD(N)", FIELDTYPE_DATA_WORD, 0x0, 0xf4},
{"S1MinD(H)", FIELDTYPE_DATA_WORD, 0x0, 0xf6},
{"S1MaxD", FIELDTYPE_DATA_WORD, 0x0, 0xf8},
{"S1MaxD(N)", FIELDTYPE_DATA_WORD, 0x0, 0xfa},
{"S1MaxD(H)", FIELDTYPE_DATA_WORD, 0x0, 0xfc},
{"El1Mode", FIELDTYPE_CODE_TO_BYTE, 0x0, 0xfe},
{"El2Mode", FIELDTYPE_CODE_TO_BYTE, 0x0, 0xff},
{"El3Mode", FIELDTYPE_CODE_TO_BYTE, 0x0, 0x100},
{"El1Type", FIELDTYPE_CODE_TO_BYTE, 0x0, 0x101},
{"El2Type", FIELDTYPE_CODE_TO_BYTE, 0x0, 0x102},
{"El3Type", FIELDTYPE_CODE_TO_BYTE, 0x0, 0x103},
{"El1Pct", FIELDTYPE_DATA_BYTE, 0x0, 0x104},
{"El1Pct(N)", FIELDTYPE_DATA_BYTE, 0x0, 0x105},
{"El1Pct(H)", FIELDTYPE_DATA_BYTE, 0x0, 0x106},
{"El2Pct", FIELDTYPE_DATA_BYTE, 0x0, 0x107},
{"El2Pct(N)", FIELDTYPE_DATA_BYTE, 0x0, 0x108},
{"El2Pct(H)", FIELDTYPE_DATA_BYTE, 0x0, 0x109},
{"El3Pct", FIELDTYPE_DATA_BYTE, 0x0, 0x10a},
{"El3Pct(N)", FIELDTYPE_DATA_BYTE, 0x0, 0x10b},
{"El3Pct(H)", FIELDTYPE_DATA_BYTE, 0x0, 0x10c},
{"El1MinD", FIELDTYPE_DATA_WORD, 0x0, 0x10e},
{"El1MinD(N)", FIELDTYPE_DATA_WORD, 0x0, 0x110},
{"El1MinD(H)", FIELDTYPE_DATA_WORD, 0x0, 0x112},
{"El2MinD", FIELDTYPE_DATA_WORD, 0x0, 0x114},
{"El2MinD(N)", FIELDTYPE_DATA_WORD, 0x0, 0x116},
{"El2MinD(H)", FIELDTYPE_DATA_WORD, 0x0, 0x118},
{"El3MinD", FIELDTYPE_DATA_WORD, 0x0, 0x11a},
{"El3MinD(N)", FIELDTYPE_DATA_WORD, 0x0, 0x11c},
{"El3MinD(H)", FIELDTYPE_DATA_WORD, 0x0, 0x11e},
{"El1MaxD", FIELDTYPE_DATA_WORD, 0x0, 0x120},
{"El1MaxD(N)", FIELDTYPE_DATA_WORD, 0x0, 0x122},
{"El1MaxD(H)", FIELDTYPE_DATA_WORD, 0x0, 0x124},
{"El2MaxD", FIELDTYPE_DATA_WORD, 0x0, 0x126},
{"El2MaxD(N)", FIELDTYPE_DATA_WORD, 0x0, 0x128},
{"El2MaxD(H)", FIELDTYPE_DATA_WORD, 0x0, 0x12a},
{"El3MaxD", FIELDTYPE_DATA_WORD, 0x0, 0x12c},
{"El3MaxD(N)", FIELDTYPE_DATA_WORD, 0x0, 0x12e},
{"El3MaxD(H)", FIELDTYPE_DATA_WORD, 0x0, 0x130},
{"El1Dur", FIELDTYPE_DATA_WORD, 0x0, 0x132},
{"El1Dur(N)", FIELDTYPE_DATA_WORD, 0x0, 0x134},
{"El1Dur(H)", FIELDTYPE_DATA_WORD, 0x0, 0x136},
{"El2Dur", FIELDTYPE_DATA_WORD, 0x0, 0x138},
{"El2Dur(N)", FIELDTYPE_DATA_WORD, 0x0, 0x13a},
{"El2Dur(H)", FIELDTYPE_DATA_WORD, 0x0, 0x13c},
{"El3Dur", FIELDTYPE_DATA_WORD, 0x0, 0x13e},
{"El3Dur(N)", FIELDTYPE_DATA_WORD, 0x0, 0x140},
{"El3Dur(H)", FIELDTYPE_DATA_WORD, 0x0, 0x142},
{"ResDm", FIELDTYPE_DATA_WORD, 0x0, 0x144},
{"ResDm(N)", FIELDTYPE_DATA_WORD, 0x0, 0x146},
{"ResDm(H)", FIELDTYPE_DATA_WORD, 0x0, 0x148},
{"ResMa", FIELDTYPE_DATA_WORD, 0x0, 0x14a},
{"ResMa(N)", FIELDTYPE_DATA_WORD, 0x0, 0x14c},
{"ResMa(H)", FIELDTYPE_DATA_WORD, 0x0, 0x14e},
{"ResFi", FIELDTYPE_DATA_WORD, 0x0, 0x150},
{"ResFi(N)", FIELDTYPE_DATA_WORD, 0x0, 0x152},
{"ResFi(H)", FIELDTYPE_DATA_WORD, 0x0, 0x154},
{"ResLi", FIELDTYPE_DATA_WORD, 0x0, 0x156},
{"ResLi(N)", FIELDTYPE_DATA_WORD, 0x0, 0x158},
{"ResLi(H)", FIELDTYPE_DATA_WORD, 0x0, 0x15a},
{"ResCo", FIELDTYPE_DATA_WORD, 0x0, 0x15c},
{"ResCo(N)", FIELDTYPE_DATA_WORD, 0x0, 0x15e},
{"ResCo(H)", FIELDTYPE_DATA_WORD, 0x0, 0x160},
{"ResPo", FIELDTYPE_DATA_WORD, 0x0, 0x162},
{"ResPo(N)", FIELDTYPE_DATA_WORD, 0x0, 0x164},
{"ResPo(H)", FIELDTYPE_DATA_WORD, 0x0, 0x166},
{"ColdEffect", FIELDTYPE_DATA_BYTE, 0x0, 0x168},
{"ColdEffect(N)", FIELDTYPE_DATA_BYTE, 0x0, 0x169},
{"ColdEffect(H)", FIELDTYPE_DATA_BYTE, 0x0, 0x16a},
{"SendSkills", FIELDTYPE_DATA_DWORD_2, 0x0, 0x16c},
{"Skill1", FIELDTYPE_NAME_TO_WORD, 0x0, 0x170},
{"Skill2", FIELDTYPE_NAME_TO_WORD, 0x0, 0x172},
{"Skill3", FIELDTYPE_NAME_TO_WORD, 0x0, 0x174},
{"Skill4", FIELDTYPE_NAME_TO_WORD, 0x0, 0x176},
{"Skill5", FIELDTYPE_NAME_TO_WORD, 0x0, 0x178},
{"Skill6", FIELDTYPE_NAME_TO_WORD, 0x0, 0x17a},
{"Skill7", FIELDTYPE_NAME_TO_WORD, 0x0, 0x17c},
{"Skill8", FIELDTYPE_NAME_TO_WORD, 0x0, 0x17e},
{"Sk1lvl", FIELDTYPE_DATA_BYTE, 0x0, 0x198},
{"Sk2lvl", FIELDTYPE_DATA_BYTE, 0x0, 0x199},
{"Sk3lvl", FIELDTYPE_DATA_BYTE, 0x0, 0x19a},
{"Sk4lvl", FIELDTYPE_DATA_BYTE, 0x0, 0x19b},
{"Sk5lvl", FIELDTYPE_DATA_BYTE, 0x0, 0x19c},
{"Sk6lvl", FIELDTYPE_DATA_BYTE, 0x0, 0x19d},
{"Sk7lvl", FIELDTYPE_DATA_BYTE, 0x0, 0x19e},
{"Sk8lvl", FIELDTYPE_DATA_BYTE, 0x0, 0x19f},
{"DamageRegen", FIELDTYPE_DATA_DWORD, 0x0, 0x1a0},
{"SplEndDeath", FIELDTYPE_DATA_BYTE, 0x0, 0x1a4},
{"SplGetModeChart", FIELDTYPE_DATA_BYTE, 0x0, 0x1a5},
{"SplEndGeneric", FIELDTYPE_DATA_BYTE, 0x0, 0x1a6},
{"SplClientEnd", FIELDTYPE_DATA_BYTE, 0x0, 0x1a7},
{"end", FIELDTYPE_END, 0x0, 0x1a8},
};
static BinField skilldescTable[] = {
{"skilldesc", FIELDTYPE_NAME_TO_INDEX, 0x0, 0x0},
{"skillpage", FIELDTYPE_DATA_BYTE, 0x0, 0x2},
{"skillrow", FIELDTYPE_DATA_BYTE, 0x0, 0x3},
{"skillcolumn", FIELDTYPE_DATA_BYTE, 0x0, 0x4},
{"ListRow", FIELDTYPE_DATA_BYTE, 0x0, 0x5},
{"ListPool", FIELDTYPE_DATA_BYTE, 0x0, 0x6},
{"iconcel", FIELDTYPE_DATA_BYTE, 0x0, 0x7},
{"str name", FIELDTYPE_KEY_TO_WORD, 0x0, 0x8},
{"str short", FIELDTYPE_KEY_TO_WORD, 0x0, 0xa},
{"str long", FIELDTYPE_KEY_TO_WORD, 0x0, 0xc},
{"str alt", FIELDTYPE_KEY_TO_WORD, 0x0, 0xe},
{"str mana", FIELDTYPE_KEY_TO_WORD, 0x0, 0x10},
{"descdam", FIELDTYPE_DATA_WORD, 0x0, 0x12},
{"descatt", FIELDTYPE_DATA_WORD, 0x0, 0x14},
{"ddam calc1", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x18},
{"ddam calc2", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x1c},
{"p1dmelem", FIELDTYPE_CODE_TO_BYTE, 0x0, 0x20},
{"p2dmelem", FIELDTYPE_CODE_TO_BYTE, 0x0, 0x21},
{"p3dmelem", FIELDTYPE_CODE_TO_BYTE, 0x0, 0x22},
{"p1dmmin", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x24},
{"p2dmmin", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x28},
{"p3dmmin", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x2c},
{"p1dmmax", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x30},
{"p2dmmax", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x34},
{"p3dmmax", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x38},
{"descmissile1", FIELDTYPE_NAME_TO_WORD, 0x0, 0x3c},
{"descmissile2", FIELDTYPE_NAME_TO_WORD, 0x0, 0x3e},
{"descmissile3", FIELDTYPE_NAME_TO_WORD, 0x0, 0x40},
{"descline1", FIELDTYPE_DATA_BYTE, 0x0, 0x42},
{"descline2", FIELDTYPE_DATA_BYTE, 0x0, 0x43},
{"descline3", FIELDTYPE_DATA_BYTE, 0x0, 0x44},
{"descline4", FIELDTYPE_DATA_BYTE, 0x0, 0x45},
{"descline5", FIELDTYPE_DATA_BYTE, 0x0, 0x46},
{"descline6", FIELDTYPE_DATA_BYTE, 0x0, 0x47},
{"dsc2line1", FIELDTYPE_DATA_BYTE, 0x0, 0x48},
{"dsc2line2", FIELDTYPE_DATA_BYTE, 0x0, 0x49},
{"dsc2line3", FIELDTYPE_DATA_BYTE, 0x0, 0x4a},
{"dsc2line4", FIELDTYPE_DATA_BYTE, 0x0, 0x4b},
{"dsc3line1", FIELDTYPE_DATA_BYTE, 0x0, 0x4c},
{"dsc3line2", FIELDTYPE_DATA_BYTE, 0x0, 0x4d},
{"dsc3line3", FIELDTYPE_DATA_BYTE, 0x0, 0x4e},
{"dsc3line4", FIELDTYPE_DATA_BYTE, 0x0, 0x4f},
{"dsc3line5", FIELDTYPE_DATA_BYTE, 0x0, 0x50},
{"dsc3line6", FIELDTYPE_DATA_BYTE, 0x0, 0x51},
{"dsc3line7", FIELDTYPE_DATA_BYTE, 0x0, 0x52},
{"desctexta1", FIELDTYPE_KEY_TO_WORD, 0x0, 0x54},
{"desctexta2", FIELDTYPE_KEY_TO_WORD, 0x0, 0x56},
{"desctexta3", FIELDTYPE_KEY_TO_WORD, 0x0, 0x58},
{"desctexta4", FIELDTYPE_KEY_TO_WORD, 0x0, 0x5a},
{"desctexta5", FIELDTYPE_KEY_TO_WORD, 0x0, 0x5c},
{"desctexta6", FIELDTYPE_KEY_TO_WORD, 0x0, 0x5e},
{"dsc2texta1", FIELDTYPE_KEY_TO_WORD, 0x0, 0x60},
{"dsc2texta2", FIELDTYPE_KEY_TO_WORD, 0x0, 0x62},
{"dsc2texta3", FIELDTYPE_KEY_TO_WORD, 0x0, 0x64},
{"dsc2texta4", FIELDTYPE_KEY_TO_WORD, 0x0, 0x66},
{"dsc3texta1", FIELDTYPE_KEY_TO_WORD, 0x0, 0x68},
{"dsc3texta2", FIELDTYPE_KEY_TO_WORD, 0x0, 0x6a},
{"dsc3texta3", FIELDTYPE_KEY_TO_WORD, 0x0, 0x6c},
{"dsc3texta4", FIELDTYPE_KEY_TO_WORD, 0x0, 0x6e},
{"dsc3texta5", FIELDTYPE_KEY_TO_WORD, 0x0, 0x70},
{"dsc3texta6", FIELDTYPE_KEY_TO_WORD, 0x0, 0x72},
{"dsc3texta7", FIELDTYPE_KEY_TO_WORD, 0x0, 0x74},
{"desctextb1", FIELDTYPE_KEY_TO_WORD, 0x0, 0x76},
{"desctextb2", FIELDTYPE_KEY_TO_WORD, 0x0, 0x78},
{"desctextb3", FIELDTYPE_KEY_TO_WORD, 0x0, 0x7a},
{"desctextb4", FIELDTYPE_KEY_TO_WORD, 0x0, 0x7c},
{"desctextb5", FIELDTYPE_KEY_TO_WORD, 0x0, 0x7e},
{"desctextb6", FIELDTYPE_KEY_TO_WORD, 0x0, 0x80},
{"dsc2textb1", FIELDTYPE_KEY_TO_WORD, 0x0, 0x82},
{"dsc2textb2", FIELDTYPE_KEY_TO_WORD, 0x0, 0x84},
{"dsc2textb3", FIELDTYPE_KEY_TO_WORD, 0x0, 0x86},
{"dsc2textb4", FIELDTYPE_KEY_TO_WORD, 0x0, 0x88},
{"dsc3textb1", FIELDTYPE_KEY_TO_WORD, 0x0, 0x8a},
{"dsc3textb2", FIELDTYPE_KEY_TO_WORD, 0x0, 0x8c},
{"dsc3textb3", FIELDTYPE_KEY_TO_WORD, 0x0, 0x8e},
{"dsc3textb4", FIELDTYPE_KEY_TO_WORD, 0x0, 0x90},
{"dsc3textb5", FIELDTYPE_KEY_TO_WORD, 0x0, 0x92},
{"dsc3textb6", FIELDTYPE_KEY_TO_WORD, 0x0, 0x94},
{"dsc3textb7", FIELDTYPE_KEY_TO_WORD, 0x0, 0x96},
{"desccalca1", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x98},
{"desccalca2", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x9c},
{"desccalca3", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xa0},
{"desccalca4", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xa4},
{"desccalca5", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xa8},
{"desccalca6", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xac},
{"dsc2calca1", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xb0},
{"dsc2calca2", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xb4},
{"dsc2calca3", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xb8},
{"dsc2calca4", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xbc},
{"dsc3calca1", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xc0},
{"dsc3calca2", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xc4},
{"dsc3calca3", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xc8},
{"dsc3calca4", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xcc},
{"dsc3calca5", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xd0},
{"dsc3calca6", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xd4},
{"dsc3calca7", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xd8},
{"desccalcb1", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xdc},
{"desccalcb2", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xe0},
{"desccalcb3", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xe4},
{"desccalcb4", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xe8},
{"desccalcb5", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xec},
{"desccalcb6", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xf0},
{"dsc2calcb1", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xf4},
{"dsc2calcb2", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xf8},
{"dsc2calcb3", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xfc},
{"dsc2calcb4", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x100},
{"dsc3calcb1", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x104},
{"dsc3calcb2", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x108},
{"dsc3calcb3", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x10c},
{"dsc3calcb4", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x110},
{"dsc3calcb5", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x114},
{"dsc3calcb6", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x118},
{"dsc3calcb7", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x11c},
{"end", FIELDTYPE_END, 0x0, 0x120},
};
static BinField skillsTable[] = {
{"skill", FIELDTYPE_NAME_TO_INDEX, 0x0, 0x0},
{"decquant", FIELDTYPE_DATA_BIT, 0x0, 0x4},
{"lob", FIELDTYPE_DATA_BIT, 0x1, 0x4},
{"progressive", FIELDTYPE_DATA_BIT, 0x2, 0x4},
{"finishing", FIELDTYPE_DATA_BIT, 0x3, 0x4},
{"passive", FIELDTYPE_DATA_BIT, 0x4, 0x4},
{"aura", FIELDTYPE_DATA_BIT, 0x5, 0x4},
{"periodic", FIELDTYPE_DATA_BIT, 0x6, 0x4},
{"prgstack", FIELDTYPE_DATA_BIT, 0x7, 0x4},
{"InTown", FIELDTYPE_DATA_BIT, 0x8, 0x4},
{"Kick", FIELDTYPE_DATA_BIT, 0x9, 0x4},
{"InGame", FIELDTYPE_DATA_BIT, 0xa, 0x4},
{"repeat", FIELDTYPE_DATA_BIT, 0xb, 0x4},
{"stsuccessonly", FIELDTYPE_DATA_BIT, 0xc, 0x4},
{"stsounddelay", FIELDTYPE_DATA_BIT, 0xd, 0x4},
{"weaponsnd", FIELDTYPE_DATA_BIT, 0xe, 0x4},
{"immediate", FIELDTYPE_DATA_BIT, 0xf, 0x4},
{"noammo", FIELDTYPE_DATA_BIT, 0x10, 0x4},
{"enhanceable", FIELDTYPE_DATA_BIT, 0x11, 0x4},
{"durability", FIELDTYPE_DATA_BIT, 0x12, 0x4},
{"UseAttackRate", FIELDTYPE_DATA_BIT, 0x13, 0x4},
{"TargetableOnly", FIELDTYPE_DATA_BIT, 0x14, 0x4},
{"SearchEnemyXY", FIELDTYPE_DATA_BIT, 0x15, 0x4},
{"SearchEnemyNear", FIELDTYPE_DATA_BIT, 0x16, 0x4},
{"SearchOpenXY", FIELDTYPE_DATA_BIT, 0x17, 0x4},
{"TargetCorpse", FIELDTYPE_DATA_BIT, 0x18, 0x4},
{"TargetPet", FIELDTYPE_DATA_BIT, 0x19, 0x4},
{"TargetAlly", FIELDTYPE_DATA_BIT, 0x1a, 0x4},
{"TargetItem", FIELDTYPE_DATA_BIT, 0x1b, 0x4},
{"AttackNoMana", FIELDTYPE_DATA_BIT, 0x1c, 0x4},
{"ItemTgtDo", FIELDTYPE_DATA_BIT, 0x1d, 0x4},
{"leftskill", FIELDTYPE_DATA_BIT, 0x1e, 0x4},
{"interrupt", FIELDTYPE_DATA_BIT, 0x1f, 0x4},
{"TgtPlaceCheck", FIELDTYPE_DATA_BIT, 0x20, 0x4},
{"ItemCheckStart", FIELDTYPE_DATA_BIT, 0x21, 0x4},
{"ItemCltCheckStart", FIELDTYPE_DATA_BIT, 0x22, 0x4},
{"general", FIELDTYPE_DATA_BIT, 0x23, 0x4},
{"scroll", FIELDTYPE_DATA_BIT, 0x24, 0x4},
{"usemanaondo", FIELDTYPE_DATA_BIT, 0x25, 0x4},
{"warp", FIELDTYPE_DATA_BIT, 0x26, 0x4},
{"charclass", FIELDTYPE_CODE_TO_BYTE, 0x0, 0xc},
{"anim", FIELDTYPE_CODE_TO_BYTE, 0x0, 0x10},
{"monanim", FIELDTYPE_CODE_TO_BYTE, 0x0, 0x11},
{"seqtrans", FIELDTYPE_CODE_TO_BYTE, 0x0, 0x12},
{"seqnum", FIELDTYPE_DATA_BYTE, 0x0, 0x13},
{"range", FIELDTYPE_CODE_TO_BYTE, 0x0, 0x14},
{"SelectProc", FIELDTYPE_DATA_BYTE, 0x0, 0x15},
{"seqinput", FIELDTYPE_DATA_BYTE, 0x0, 0x16},
{"itypea1", FIELDTYPE_CODE_TO_WORD, 0x0, 0x18},
{"itypea2", FIELDTYPE_CODE_TO_WORD, 0x0, 0x1a},
{"itypea3", FIELDTYPE_CODE_TO_WORD, 0x0, 0x1c},
{"itypeb1", FIELDTYPE_CODE_TO_WORD, 0x0, 0x1e},
{"itypeb2", FIELDTYPE_CODE_TO_WORD, 0x0, 0x20},
{"itypeb3", FIELDTYPE_CODE_TO_WORD, 0x0, 0x22},
{"etypea1", FIELDTYPE_CODE_TO_WORD, 0x0, 0x24},
{"etypea2", FIELDTYPE_CODE_TO_WORD, 0x0, 0x26},
{"etypeb1", FIELDTYPE_CODE_TO_WORD, 0x0, 0x28},
{"etypeb2", FIELDTYPE_CODE_TO_WORD, 0x0, 0x2a},
{"srvstfunc", FIELDTYPE_DATA_WORD, 0x0, 0x2c},
{"srvdofunc", FIELDTYPE_DATA_WORD, 0x0, 0x2e},
{"srvprgfunc1", FIELDTYPE_DATA_WORD, 0x0, 0x30},
{"srvprgfunc2", FIELDTYPE_DATA_WORD, 0x0, 0x32},
{"srvprgfunc3", FIELDTYPE_DATA_WORD, 0x0, 0x34},
{"prgcalc1", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x38},
{"prgcalc2", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x3c},
{"prgcalc3", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x40},
{"prgdam", FIELDTYPE_DATA_BYTE, 0x0, 0x44},
{"srvmissile", FIELDTYPE_NAME_TO_WORD, 0x0, 0x46},
{"srvmissilea", FIELDTYPE_NAME_TO_WORD, 0x0, 0x48},
{"srvmissileb", FIELDTYPE_NAME_TO_WORD, 0x0, 0x4a},
{"srvmissilec", FIELDTYPE_NAME_TO_WORD, 0x0, 0x4c},
{"srvoverlay", FIELDTYPE_NAME_TO_WORD, 0x0, 0x4e},
{"aurafilter", FIELDTYPE_DATA_DWORD, 0x0, 0x50},
{"aurastat1", FIELDTYPE_NAME_TO_WORD, 0x0, 0x54},
{"aurastat2", FIELDTYPE_NAME_TO_WORD, 0x0, 0x56},
{"aurastat3", FIELDTYPE_NAME_TO_WORD, 0x0, 0x58},
{"aurastat4", FIELDTYPE_NAME_TO_WORD, 0x0, 0x5a},
{"aurastat5", FIELDTYPE_NAME_TO_WORD, 0x0, 0x5c},
{"aurastat6", FIELDTYPE_NAME_TO_WORD, 0x0, 0x5e},
{"auralencalc", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x60},
{"aurarangecalc", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x64},
{"aurastatcalc1", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x68},
{"aurastatcalc2", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x6c},
{"aurastatcalc3", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x70},
{"aurastatcalc4", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x74},
{"aurastatcalc5", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x78},
{"aurastatcalc6", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x7c},
{"aurastate", FIELDTYPE_NAME_TO_WORD, 0x0, 0x80},
{"auratargetstate", FIELDTYPE_NAME_TO_WORD, 0x0, 0x82},
{"auraevent1", FIELDTYPE_NAME_TO_WORD, 0x0, 0x84},
{"auraevent2", FIELDTYPE_NAME_TO_WORD, 0x0, 0x86},
{"auraevent3", FIELDTYPE_NAME_TO_WORD, 0x0, 0x88},
{"auraeventfunc1", FIELDTYPE_DATA_WORD, 0x0, 0x8a},
{"auraeventfunc2", FIELDTYPE_DATA_WORD, 0x0, 0x8c},
{"auraeventfunc3", FIELDTYPE_DATA_WORD, 0x0, 0x8e},
{"auratgtevent", FIELDTYPE_NAME_TO_WORD, 0x0, 0x90},
{"auratgteventfunc", FIELDTYPE_DATA_WORD, 0x0, 0x92},
{"passivestate", FIELDTYPE_NAME_TO_WORD, 0x0, 0x94},
{"passiveitype", FIELDTYPE_CODE_TO_WORD, 0x0, 0x96},
{"passivestat1", FIELDTYPE_NAME_TO_WORD, 0x0, 0x98},
{"passivestat2", FIELDTYPE_NAME_TO_WORD, 0x0, 0x9a},
{"passivestat3", FIELDTYPE_NAME_TO_WORD, 0x0, 0x9c},
{"passivestat4", FIELDTYPE_NAME_TO_WORD, 0x0, 0x9e},
{"passivestat5", FIELDTYPE_NAME_TO_WORD, 0x0, 0xa0},
{"passivecalc1", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xa4},
{"passivecalc2", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xa8},
{"passivecalc3", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xac},
{"passivecalc4", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xb0},
{"passivecalc5", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xb4},
{"passiveevent", FIELDTYPE_NAME_TO_WORD, 0x0, 0xb8},
{"passiveeventfunc", FIELDTYPE_DATA_WORD, 0x0, 0xba},
{"summon", FIELDTYPE_NAME_TO_WORD, 0x0, 0xbc},
{"pettype", FIELDTYPE_NAME_TO_WORD_2, 0x0, 0xbe},
{"summode", FIELDTYPE_CODE_TO_BYTE, 0x0, 0xbf},
{"petmax", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xc0},
{"sumskill1", FIELDTYPE_NAME_TO_WORD, 0x0, 0xc4},
{"sumskill2", FIELDTYPE_NAME_TO_WORD, 0x0, 0xc6},
{"sumskill3", FIELDTYPE_NAME_TO_WORD, 0x0, 0xc8},
{"sumskill4", FIELDTYPE_NAME_TO_WORD, 0x0, 0xca},
{"sumskill5", FIELDTYPE_NAME_TO_WORD, 0x0, 0xcc},
{"sumsk1calc", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xd0},
{"sumsk2calc", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xd4},
{"sumsk3calc", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xd8},
{"sumsk4calc", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xdc},
{"sumsk5calc", FIELDTYPE_CALC_TO_DWORD, 0x0, 0xe0},
{"sumumod", FIELDTYPE_DATA_WORD, 0x0, 0xe4},
{"sumoverlay", FIELDTYPE_NAME_TO_WORD, 0x0, 0xe6},
{"cltmissile", FIELDTYPE_NAME_TO_WORD, 0x0, 0xe8},
{"cltmissilea", FIELDTYPE_NAME_TO_WORD, 0x0, 0xea},
{"cltmissileb", FIELDTYPE_NAME_TO_WORD, 0x0, 0xec},
{"cltmissilec", FIELDTYPE_NAME_TO_WORD, 0x0, 0xee},
{"cltmissiled", FIELDTYPE_NAME_TO_WORD, 0x0, 0xf0},
{"cltstfunc", FIELDTYPE_DATA_WORD, 0x0, 0xf2},
{"cltdofunc", FIELDTYPE_DATA_WORD, 0x0, 0xf4},
{"cltprgfunc1", FIELDTYPE_DATA_WORD, 0x0, 0xf6},
{"cltprgfunc2", FIELDTYPE_DATA_WORD, 0x0, 0xf8},
{"cltprgfunc3", FIELDTYPE_DATA_WORD, 0x0, 0xfa},
{"stsound", FIELDTYPE_NAME_TO_WORD, 0x0, 0xfc},
{"stsoundclass", FIELDTYPE_NAME_TO_WORD, 0x0, 0xfe},
{"dosound", FIELDTYPE_NAME_TO_WORD, 0x0, 0x100},
{"dosound a", FIELDTYPE_NAME_TO_WORD, 0x0, 0x102},
{"dosound b", FIELDTYPE_NAME_TO_WORD, 0x0, 0x104},
{"castoverlay", FIELDTYPE_NAME_TO_WORD, 0x0, 0x106},
{"tgtoverlay", FIELDTYPE_NAME_TO_WORD, 0x0, 0x108},
{"tgtsound", FIELDTYPE_NAME_TO_WORD, 0x0, 0x10a},
{"prgoverlay", FIELDTYPE_NAME_TO_WORD, 0x0, 0x10c},
{"prgsound", FIELDTYPE_NAME_TO_WORD, 0x0, 0x10e},
{"cltoverlaya", FIELDTYPE_NAME_TO_WORD, 0x0, 0x110},
{"cltoverlayb", FIELDTYPE_NAME_TO_WORD, 0x0, 0x112},
{"cltcalc1", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x114},
{"cltcalc2", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x118},
{"cltcalc3", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x11c},
{"ItemTarget", FIELDTYPE_DATA_BYTE, 0x0, 0x120},
{"ItemCastSound", FIELDTYPE_NAME_TO_WORD, 0x0, 0x122},
{"ItemCastOverlay", FIELDTYPE_NAME_TO_WORD, 0x0, 0x124},
{"perdelay", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x128},
{"maxlvl", FIELDTYPE_DATA_WORD, 0x0, 0x12c},
{"ResultFlags", FIELDTYPE_DATA_WORD, 0x0, 0x12e},
{"HitFlags", FIELDTYPE_DATA_DWORD_2, 0x0, 0x130},
{"HitClass", FIELDTYPE_DATA_DWORD_2, 0x0, 0x134},
{"calc1", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x138},
{"calc2", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x13c},
{"calc3", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x140},
{"calc4", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x144},
{"Param1", FIELDTYPE_DATA_DWORD_2, 0x0, 0x148},
{"Param2", FIELDTYPE_DATA_DWORD_2, 0x0, 0x14c},
{"Param3", FIELDTYPE_DATA_DWORD_2, 0x0, 0x150},
{"Param4", FIELDTYPE_DATA_DWORD_2, 0x0, 0x154},
{"Param5", FIELDTYPE_DATA_DWORD_2, 0x0, 0x158},
{"Param6", FIELDTYPE_DATA_DWORD_2, 0x0, 0x15c},
{"Param7", FIELDTYPE_DATA_DWORD_2, 0x0, 0x160},
{"Param8", FIELDTYPE_DATA_DWORD_2, 0x0, 0x164},
{"weapsel", FIELDTYPE_DATA_BYTE, 0x0, 0x168},
{"ItemEffect", FIELDTYPE_DATA_WORD, 0x0, 0x16a},
{"ItemCltEffect", FIELDTYPE_DATA_WORD, 0x0, 0x16c},
{"skpoints", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x170},
{"reqlevel", FIELDTYPE_DATA_WORD, 0x0, 0x174},
{"reqstr", FIELDTYPE_DATA_WORD, 0x0, 0x176},
{"reqdex", FIELDTYPE_DATA_WORD, 0x0, 0x178},
{"reqint", FIELDTYPE_DATA_WORD, 0x0, 0x17a},
{"reqvit", FIELDTYPE_DATA_WORD, 0x0, 0x17c},
{"reqskill1", FIELDTYPE_NAME_TO_WORD, 0x0, 0x17e},
{"reqskill2", FIELDTYPE_NAME_TO_WORD, 0x0, 0x180},
{"reqskill3", FIELDTYPE_NAME_TO_WORD, 0x0, 0x182},
{"startmana", FIELDTYPE_DATA_WORD, 0x0, 0x184},
{"minmana", FIELDTYPE_DATA_WORD, 0x0, 0x186},
{"manashift", FIELDTYPE_DATA_WORD, 0x0, 0x188},
{"mana", FIELDTYPE_DATA_WORD, 0x0, 0x18a},
{"lvlmana", FIELDTYPE_DATA_WORD, 0x0, 0x18c},
{"attackrank", FIELDTYPE_DATA_BYTE, 0x0, 0x18e},
{"lineofsight", FIELDTYPE_DATA_BYTE, 0x0, 0x18f},
{"delay", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x190},
{"skilldesc", FIELDTYPE_NAME_TO_WORD, 0x0, 0x194},
{"ToHit", FIELDTYPE_DATA_DWORD, 0x0, 0x198},
{"LevToHit", FIELDTYPE_DATA_DWORD, 0x0, 0x19c},
{"ToHitCalc", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x1a0},
{"HitShift", FIELDTYPE_DATA_BYTE, 0x0, 0x1a4},
{"SrcDam", FIELDTYPE_DATA_BYTE, 0x0, 0x1a5},
{"MinDam", FIELDTYPE_DATA_DWORD, 0x0, 0x1a8},
{"MaxDam", FIELDTYPE_DATA_DWORD, 0x0, 0x1ac},
{"MinLevDam1", FIELDTYPE_DATA_DWORD, 0x0, 0x1b0},
{"MinLevDam2", FIELDTYPE_DATA_DWORD, 0x0, 0x1b4},
{"MinLevDam3", FIELDTYPE_DATA_DWORD, 0x0, 0x1b8},
{"MinLevDam4", FIELDTYPE_DATA_DWORD, 0x0, 0x1bc},
{"MinLevDam5", FIELDTYPE_DATA_DWORD, 0x0, 0x1c0},
{"MaxLevDam1", FIELDTYPE_DATA_DWORD, 0x0, 0x1c4},
{"MaxLevDam2", FIELDTYPE_DATA_DWORD, 0x0, 0x1c8},
{"MaxLevDam3", FIELDTYPE_DATA_DWORD, 0x0, 0x1cc},
{"MaxLevDam4", FIELDTYPE_DATA_DWORD, 0x0, 0x1d0},
{"MaxLevDam5", FIELDTYPE_DATA_DWORD, 0x0, 0x1d4},
{"DmgSymPerCalc", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x1d8},
{"EType", FIELDTYPE_CODE_TO_BYTE, 0x0, 0x1dc},
{"EMin", FIELDTYPE_DATA_DWORD, 0x0, 0x1e0},
{"EMax", FIELDTYPE_DATA_DWORD, 0x0, 0x1e4},
{"EMinLev1", FIELDTYPE_DATA_DWORD, 0x0, 0x1e8},
{"EMinLev2", FIELDTYPE_DATA_DWORD, 0x0, 0x1ec},
{"EMinLev3", FIELDTYPE_DATA_DWORD, 0x0, 0x1f0},
{"EMinLev4", FIELDTYPE_DATA_DWORD, 0x0, 0x1f4},
{"EMinLev5", FIELDTYPE_DATA_DWORD, 0x0, 0x1f8},
{"EMaxLev1", FIELDTYPE_DATA_DWORD, 0x0, 0x1fc},
{"EMaxLev2", FIELDTYPE_DATA_DWORD, 0x0, 0x200},
{"EMaxLev3", FIELDTYPE_DATA_DWORD, 0x0, 0x204},
{"EMaxLev4", FIELDTYPE_DATA_DWORD, 0x0, 0x208},
{"EMaxLev5", FIELDTYPE_DATA_DWORD, 0x0, 0x20c},
{"EDmgSymPerCalc", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x210},
{"ELen", FIELDTYPE_DATA_DWORD, 0x0, 0x214},
{"ELevLen1", FIELDTYPE_DATA_DWORD, 0x0, 0x218},
{"ELevLen2", FIELDTYPE_DATA_DWORD, 0x0, 0x21c},
{"ELevLen3", FIELDTYPE_DATA_DWORD, 0x0, 0x220},
{"ELenSymPerCalc", FIELDTYPE_CALC_TO_DWORD, 0x0, 0x224},
{"restrict", FIELDTYPE_DATA_BYTE, 0x0, 0x228},
{"state1", FIELDTYPE_NAME_TO_WORD, 0x0, 0x22a},
{"state2", FIELDTYPE_NAME_TO_WORD, 0x0, 0x22c},
{"state3", FIELDTYPE_NAME_TO_WORD, 0x0, 0x22e},
{"aitype", FIELDTYPE_DATA_BYTE, 0x0, 0x230},
{"aibonus", FIELDTYPE_DATA_WORD, 0x0, 0x232},
{"cost mult", FIELDTYPE_DATA_DWORD, 0x0, 0x234},
{"cost add", FIELDTYPE_DATA_DWORD, 0x0, 0x238},
{"end", FIELDTYPE_END, 0x0, 0x23c},
};
static BinField objectsTable[] = {
{"Name", FIELDTYPE_DATA_ASCII, 0x3f, 0x0},
{"Token", FIELDTYPE_DATA_ASCII, 0x2, 0xc0},
{"SpawnMax", FIELDTYPE_DATA_BYTE, 0x0, 0xc3},
{"Selectable0", FIELDTYPE_DATA_BYTE, 0x0, 0xc4},
{"Selectable1", FIELDTYPE_DATA_BYTE, 0x0, 0xc5},
{"Selectable2", FIELDTYPE_DATA_BYTE, 0x0, 0xc6},
{"Selectable3", FIELDTYPE_DATA_BYTE, 0x0, 0xc7},
{"Selectable4", FIELDTYPE_DATA_BYTE, 0x0, 0xc8},
{"Selectable5", FIELDTYPE_DATA_BYTE, 0x0, 0xc9},
{"Selectable6", FIELDTYPE_DATA_BYTE, 0x0, 0xca},
{"Selectable7", FIELDTYPE_DATA_BYTE, 0x0, 0xcb},
{"TrapProb", FIELDTYPE_DATA_BYTE, 0x0, 0xcc},
{"SizeX", FIELDTYPE_DATA_DWORD, 0x0, 0xd0},
{"SizeY", FIELDTYPE_DATA_DWORD, 0x0, 0xd4},
{"FrameCnt0", FIELDTYPE_DATA_DWORD, 0x0, 0xd8},
{"FrameCnt1", FIELDTYPE_DATA_DWORD, 0x0, 0xdc},
{"FrameCnt2", FIELDTYPE_DATA_DWORD, 0x0, 0xe0},
{"FrameCnt3", FIELDTYPE_DATA_DWORD, 0x0, 0xe4},
{"FrameCnt4", FIELDTYPE_DATA_DWORD, 0x0, 0xe8},
{"FrameCnt5", FIELDTYPE_DATA_DWORD, 0x0, 0xec},
{"FrameCnt6", FIELDTYPE_DATA_DWORD, 0x0, 0xf0},
{"FrameCnt7", FIELDTYPE_DATA_DWORD, 0x0, 0xf4},
{"FrameDelta0", FIELDTYPE_DATA_WORD, 0x0, 0xf8},
{"FrameDelta1", FIELDTYPE_DATA_WORD, 0x0, 0xfa},
{"FrameDelta2", FIELDTYPE_DATA_WORD, 0x0, 0xfc},
{"FrameDelta3", FIELDTYPE_DATA_WORD, 0x0, 0xfe},
{"FrameDelta4", FIELDTYPE_DATA_WORD, 0x0, 0x100},
{"FrameDelta5", FIELDTYPE_DATA_WORD, 0x0, 0x102},
{"FrameDelta6", FIELDTYPE_DATA_WORD, 0x0, 0x104},
{"FrameDelta7", FIELDTYPE_DATA_WORD, 0x0, 0x106},
{"CycleAnim0", FIELDTYPE_DATA_BYTE, 0x0, 0x108},
{"CycleAnim1", FIELDTYPE_DATA_BYTE, 0x0, 0x109},
{"CycleAnim2", FIELDTYPE_DATA_BYTE, 0x0, 0x10a},
{"CycleAnim3", FIELDTYPE_DATA_BYTE, 0x0, 0x10b},
{"CycleAnim4", FIELDTYPE_DATA_BYTE, 0x0, 0x10c},
{"CycleAnim5", FIELDTYPE_DATA_BYTE, 0x0, 0x10d},
{"CycleAnim6", FIELDTYPE_DATA_BYTE, 0x0, 0x10e},
{"CycleAnim7", FIELDTYPE_DATA_BYTE, 0x0, 0x10f},
{"Lit0", FIELDTYPE_DATA_BYTE, 0x0, 0x110},
{"Lit1", FIELDTYPE_DATA_BYTE, 0x0, 0x111},
{"Lit2", FIELDTYPE_DATA_BYTE, 0x0, 0x112},
{"Lit3", FIELDTYPE_DATA_BYTE, 0x0, 0x113},
{"Lit4", FIELDTYPE_DATA_BYTE, 0x0, 0x114},
{"Lit5", FIELDTYPE_DATA_BYTE, 0x0, 0x115},
{"Lit6", FIELDTYPE_DATA_BYTE, 0x0, 0x116},
{"Lit7", FIELDTYPE_DATA_BYTE, 0x0, 0x117},
{"BlocksLight0", FIELDTYPE_DATA_BYTE, 0x0, 0x118},
{"BlocksLight1", FIELDTYPE_DATA_BYTE, 0x0, 0x119},
{"BlocksLight2", FIELDTYPE_DATA_BYTE, 0x0, 0x11a},
{"BlocksLight3", FIELDTYPE_DATA_BYTE, 0x0, 0x11b},
{"BlocksLight4", FIELDTYPE_DATA_BYTE, 0x0, 0x11c},
{"BlocksLight5", FIELDTYPE_DATA_BYTE, 0x0, 0x11d},
{"BlocksLight6", FIELDTYPE_DATA_BYTE, 0x0, 0x11e},
{"BlocksLight7", FIELDTYPE_DATA_BYTE, 0x0, 0x11f},
{"HasCollision0", FIELDTYPE_DATA_BYTE, 0x0, 0x120},
{"HasCollision1", FIELDTYPE_DATA_BYTE, 0x0, 0x121},
{"HasCollision2", FIELDTYPE_DATA_BYTE, 0x0, 0x122},
{"HasCollision3", FIELDTYPE_DATA_BYTE, 0x0, 0x123},
{"HasCollision4", FIELDTYPE_DATA_BYTE, 0x0, 0x124},
{"HasCollision5", FIELDTYPE_DATA_BYTE, 0x0, 0x125},
{"HasCollision6", FIELDTYPE_DATA_BYTE, 0x0, 0x126},
{"HasCollision7", FIELDTYPE_DATA_BYTE, 0x0, 0x127},
{"IsAttackable0", FIELDTYPE_DATA_BYTE, 0x0, 0x128},
{"Start0", FIELDTYPE_DATA_BYTE, 0x0, 0x129},
{"Start1", FIELDTYPE_DATA_BYTE, 0x0, 0x12a},
{"Start2", FIELDTYPE_DATA_BYTE, 0x0, 0x12b},
{"Start3", FIELDTYPE_DATA_BYTE, 0x0, 0x12c},
{"Start4", FIELDTYPE_DATA_BYTE, 0x0, 0x12d},
{"Start5", FIELDTYPE_DATA_BYTE, 0x0, 0x12e},
{"Start6", FIELDTYPE_DATA_BYTE, 0x0, 0x12f},
{"Start7", FIELDTYPE_DATA_BYTE, 0x0, 0x130},
{"OrderFlag0", FIELDTYPE_DATA_BYTE, 0x0, 0x131},
{"OrderFlag1", FIELDTYPE_DATA_BYTE, 0x0, 0x132},
{"OrderFlag2", FIELDTYPE_DATA_BYTE, 0x0, 0x133},
{"OrderFlag3", FIELDTYPE_DATA_BYTE, 0x0, 0x134},
{"OrderFlag4", FIELDTYPE_DATA_BYTE, 0x0, 0x135},
{"OrderFlag5", FIELDTYPE_DATA_BYTE, 0x0, 0x136},
{"OrderFlag6", FIELDTYPE_DATA_BYTE, 0x0, 0x137},
{"OrderFlag7", FIELDTYPE_DATA_BYTE, 0x0, 0x138},
{"EnvEffect", FIELDTYPE_DATA_BYTE, 0x0, 0x139},
{"IsDoor", FIELDTYPE_DATA_BYTE, 0x0, 0x13a},
{"BlocksVis", FIELDTYPE_DATA_BYTE, 0x0, 0x13b},
{"Orientation", FIELDTYPE_DATA_BYTE, 0x0, 0x13c},
{"PreOperate", FIELDTYPE_DATA_BYTE, 0x0, 0x13d},
{"Trans", FIELDTYPE_DATA_BYTE, 0x0, 0x13e},
{"Mode0", FIELDTYPE_DATA_BYTE, 0x0, 0x13f},
{"Mode1", FIELDTYPE_DATA_BYTE, 0x0, 0x140},
{"Mode2", FIELDTYPE_DATA_BYTE, 0x0, 0x141},
{"Mode3", FIELDTYPE_DATA_BYTE, 0x0, 0x142},
{"Mode4", FIELDTYPE_DATA_BYTE, 0x0, 0x143},
{"Mode5", FIELDTYPE_DATA_BYTE, 0x0, 0x144},
{"Mode6", FIELDTYPE_DATA_BYTE, 0x0, 0x145},
{"Mode7", FIELDTYPE_DATA_BYTE, 0x0, 0x146},
{"Xoffset", FIELDTYPE_DATA_DWORD_2, 0x0, 0x148},
{"Yoffset", FIELDTYPE_DATA_DWORD_2, 0x0, 0x14c},
{"Draw", FIELDTYPE_DATA_BYTE, 0x0, 0x150},
{"HD", FIELDTYPE_DATA_BYTE, 0x0, 0x151},
{"TR", FIELDTYPE_DATA_BYTE, 0x0, 0x152},
{"LG", FIELDTYPE_DATA_BYTE, 0x0, 0x153},
{"RA", FIELDTYPE_DATA_BYTE, 0x0, 0x154},
{"LA", FIELDTYPE_DATA_BYTE, 0x0, 0x155},
{"RH", FIELDTYPE_DATA_BYTE, 0x0, 0x156},
{"LH", FIELDTYPE_DATA_BYTE, 0x0, 0x157},
{"SH", FIELDTYPE_DATA_BYTE, 0x0, 0x158},
{"S1", FIELDTYPE_DATA_BYTE, 0x0, 0x159},
{"S2", FIELDTYPE_DATA_BYTE, 0x0, 0x15a},
{"S3", FIELDTYPE_DATA_BYTE, 0x0, 0x15b},
{"S4", FIELDTYPE_DATA_BYTE, 0x0, 0x15c},
{"S5", FIELDTYPE_DATA_BYTE, 0x0, 0x15d},
{"S6", FIELDTYPE_DATA_BYTE, 0x0, 0x15e},
{"S7", FIELDTYPE_DATA_BYTE, 0x0, 0x15f},
{"S8", FIELDTYPE_DATA_BYTE, 0x0, 0x160},
{"TotalPieces", FIELDTYPE_DATA_BYTE, 0x0, 0x161},
{"XSpace", FIELDTYPE_DATA_BYTE, 0x0, 0x162},
{"YSpace", FIELDTYPE_DATA_BYTE, 0x0, 0x163},
{"Red", FIELDTYPE_DATA_BYTE, 0x0, 0x164},
{"Green", FIELDTYPE_DATA_BYTE, 0x0, 0x165},
{"Blue", FIELDTYPE_DATA_BYTE, 0x0, 0x166},
{"SubClass", FIELDTYPE_DATA_BYTE, 0x0, 0x167},
{"NameOffset", FIELDTYPE_DATA_DWORD_2, 0x0, 0x168},
{"MonsterOK", FIELDTYPE_DATA_BYTE, 0x0, 0x16d},
{"OperateRange", FIELDTYPE_DATA_BYTE, 0x0, 0x16e},
{"ShrineFunction", FIELDTYPE_DATA_BYTE, 0x0, 0x16f},
{"Act", FIELDTYPE_DATA_BYTE, 0x0, 0x170},
{"Lockable", FIELDTYPE_DATA_BYTE, 0x0, 0x171},
{"Gore", FIELDTYPE_DATA_BYTE, 0x0, 0x172},
{"Restore", FIELDTYPE_DATA_BYTE, 0x0, 0x173},
{"RestoreVirgins", FIELDTYPE_DATA_BYTE, 0x0, 0x174},
{"Sync", FIELDTYPE_DATA_BYTE, 0x0, 0x175},
{"Parm0", FIELDTYPE_DATA_DWORD_2, 0x0, 0x178},
{"Parm1", FIELDTYPE_DATA_DWORD_2, 0x0, 0x17c},
{"Parm2", FIELDTYPE_DATA_DWORD_2, 0x0, 0x180},
{"Parm3", FIELDTYPE_DATA_DWORD_2, 0x0, 0x184},
{"Parm4", FIELDTYPE_DATA_DWORD_2, 0x0, 0x188},
{"Parm5", FIELDTYPE_DATA_DWORD_2, 0x0, 0x18c},
{"Parm6", FIELDTYPE_DATA_DWORD_2, 0x0, 0x190},
{"Parm7", FIELDTYPE_DATA_DWORD_2, 0x0, 0x194},
{"nTgtFX", FIELDTYPE_DATA_BYTE, 0x0, 0x198},
{"nTgtFY", FIELDTYPE_DATA_BYTE, 0x0, 0x199},
{"nTgtBX", FIELDTYPE_DATA_BYTE, 0x0, 0x19a},
{"nTgtBY", FIELDTYPE_DATA_BYTE, 0x0, 0x19b},
{"Damage", FIELDTYPE_DATA_BYTE, 0x0, 0x19c},
{"CollisionSubst", FIELDTYPE_DATA_BYTE, 0x0, 0x19d},
{"Left", FIELDTYPE_DATA_DWORD_2, 0x0, 0x1a0},
{"Top", FIELDTYPE_DATA_DWORD_2, 0x0, 0x1a4},
{"Width", FIELDTYPE_DATA_DWORD_2, 0x0, 0x1a8},
{"Height", FIELDTYPE_DATA_DWORD_2, 0x0, 0x1ac},
{"Beta", FIELDTYPE_DATA_BYTE, 0x0, 0x1b0},
{"InitFn", FIELDTYPE_DATA_BYTE, 0x0, 0x1b1},
{"PopulateFn", FIELDTYPE_DATA_BYTE, 0x0, 0x1b2},
{"OperateFn", FIELDTYPE_DATA_BYTE, 0x0, 0x1b3},
{"ClientFn", FIELDTYPE_DATA_BYTE, 0x0, 0x1b4},
{"Overlay", FIELDTYPE_DATA_BYTE, 0x0, 0x1b5},
{"BlockMissile", FIELDTYPE_DATA_BYTE, 0x0, 0x1b6},
{"DrawUnder", FIELDTYPE_DATA_BYTE, 0x0, 0x1b7},
{"OpenWarp", FIELDTYPE_DATA_BYTE, 0x0, 0x1b8},
{"AutoMap", FIELDTYPE_DATA_DWORD, 0x0, 0x1bc},
{"end", FIELDTYPE_END, 0x0, 0x1c0},
};
static BinField missilesTable[] = {
{"Missile", FIELDTYPE_NAME_TO_INDEX, 0x0, 0x0},
{"LastCollide", FIELDTYPE_DATA_BIT, 0x0, 0x4},
{"Explosion", FIELDTYPE_DATA_BIT, 0x1, 0x4},
{"Pierce", FIELDTYPE_DATA_BIT, 0x2, 0x4},
{"CanSlow", FIELDTYPE_DATA_BIT, 0x3, 0x4},
{"CanDestroy", FIELDTYPE_DATA_BIT, 0x4, 0x4},
{"ClientSend", FIELDTYPE_DATA_BIT, 0x5, 0x4},
{"GetHit", FIELDTYPE_DATA_BIT, 0x6, 0x4},
{"SoftHit", FIELDTYPE_DATA_BIT, 0x7, 0x4},
{"ApplyMastery", FIELDTYPE_DATA_BIT, 0x8, 0x4},
{"ReturnFire", FIELDTYPE_DATA_BIT, 0x9, 0x4},
{"Town", FIELDTYPE_DATA_BIT, 0xa, 0x4},
{"SrcTown", FIELDTYPE_DATA_BIT, 0xb, 0x4},
{"NoMultiShot", FIELDTYPE_DATA_BIT, 0xc, 0x4},
{"NoUniqueMod", FIELDTYPE_DATA_BIT, 0xd, 0x4},
{"Half2HSrc", FIELDTYPE_DATA_BIT, 0xe, 0x4},
{"MissileSkill", FIELDTYPE_DATA_BIT, 0xf, 0x4},
{"pCltDoFunc", FIELDTYPE_DATA_WORD, 0x0, 0x8},
{"pCltHitFunc", FIELDTYPE_DATA_WORD, 0x0, 0xa},
{"pSrvDoFunc", FIELDTYPE_DATA_WORD, 0x0, 0xc},
{"pSrvHitFunc", FIELDTYPE_DATA_WORD, 0x0, 0xe},
{"pSrvDmgFunc", FIELDTYPE_DATA_WORD, 0x0, 0x10},
{"TravelSound", FIELDTYPE_NAME_TO_WORD, 0x0, 0x12},
{"HitSound", FIELDTYPE_NAME_TO_WORD, 0x0, 0x14},
{"ExplosionMissile", FIELDTYPE_NAME_TO_WORD, 0x0, 0x16},
{"SubMissile1", FIELDTYPE_NAME_TO_WORD, 0x0, 0x18},
{"SubMissile2", FIELDTYPE_NAME_TO_WORD, 0x0, 0x1a},
{"SubMissile3", FIELDTYPE_NAME_TO_WORD, 0x0, 0x1c},
{"CltSubMissile1", FIELDTYPE_NAME_TO_WORD, 0x0, 0x1e},
{"CltSubMissile2", FIELDTYPE_NAME_TO_WORD, 0x0, 0x20},
{"CltSubMissile3", FIELDTYPE_NAME_TO_WORD, 0x0, 0x22},
{"HitSubMissile1", FIELDTYPE_NAME_TO_WORD, 0x0, 0x24},
{"HitSubMissile2", FIELDTYPE_NAME_TO_WORD, 0x0, 0x26},
{"HitSubMissile3", FIELDTYPE_NAME_TO_WORD, 0x0, 0x28},