-
Notifications
You must be signed in to change notification settings - Fork 37
Expand file tree
/
Copy pathtxtbase.h
More file actions
4332 lines (4150 loc) · 157 KB
/
txtbase.h
File metadata and controls
4332 lines (4150 loc) · 157 KB
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 <cstdint>
#include <string>
#include <vector>
namespace D2::BASE {
struct t_actinfo {
int32_t act = 0; // Column 0
std::string town = ""; // Column 1
std::string start = ""; // Column 2
int32_t maxnpcitemlevel = 0; // Column 3
std::string classlevelrangestart = ""; // Column 4
std::string classlevelrangeend = ""; // Column 5
int32_t wanderingnpcstart = 0; // Column 6
int32_t wanderingnpcrange = 0; // Column 7
std::string commonactcof = ""; // Column 8
std::string waypoint1 = ""; // Column 9
std::string waypoint2 = ""; // Column 10
std::string waypoint3 = ""; // Column 11
std::string waypoint4 = ""; // Column 12
std::string waypoint5 = ""; // Column 13
std::string waypoint6 = ""; // Column 14
std::string waypoint7 = ""; // Column 15
std::string waypoint8 = ""; // Column 16
std::string waypoint9 = ""; // Column 17
int32_t wanderingMonsterPopulateChance = 0; // Column 18
int32_t wanderingMonsterRegionTotal = 0; // Column 19
int32_t wanderingPopulateRandomChance = 0; // Column 20
size_t read(const char* line);
static std::vector<t_actinfo> readfile(std::string filename);
};
struct t_armor {
std::string name = ""; // Column 0
int32_t version = 0; // Column 1
int32_t compactsave = 0; // Column 2
int32_t rarity = 0; // Column 3
int32_t spawnable = 0; // Column 4
// Unused column: DropConditionCalc
int32_t minac = 0; // Column 6
int32_t maxac = 0; // Column 7
int32_t speed = 0; // Column 8
int32_t reqstr = 0; // Column 9
int32_t reqdex = 0; // Column 10
int32_t block = 0; // Column 11
int32_t durability = 0; // Column 12
int32_t nodurability = 0; // Column 13
int32_t level = 0; // Column 14
int32_t ShowLevel = 0; // Column 15
int32_t levelreq = 0; // Column 16
int32_t cost = 0; // Column 17
int32_t gamblecost = 0; // Column 18
std::string code = ""; // Column 19
std::string namestr = ""; // Column 20
int32_t magiclvl = 0; // Column 21
int32_t autoprefix = 0; // Column 22
std::string alternategfx = ""; // Column 23
std::string normcode = ""; // Column 24
std::string ubercode = ""; // Column 25
std::string ultracode = ""; // Column 26
int32_t component = 0; // Column 27
int32_t invwidth = 0; // Column 28
int32_t invheight = 0; // Column 29
int32_t hasinv = 0; // Column 30
int32_t gemsockets = 0; // Column 31
int32_t gemapplytype = 0; // Column 32
std::string flippyfile = ""; // Column 33
std::string invfile = ""; // Column 34
std::string uniqueinvfile = ""; // Column 35
std::string setinvfile = ""; // Column 36
int32_t rArm = 0; // Column 37
int32_t lArm = 0; // Column 38
int32_t Torso = 0; // Column 39
int32_t Legs = 0; // Column 40
int32_t rSPad = 0; // Column 41
int32_t lSPad = 0; // Column 42
int32_t useable = 0; // Column 43
// Unused column: stackable
// Unused column: minstack
// Unused column: maxstack
// Unused column: spawnstack
int32_t Transmogrify = 0; // Column 48
std::string TMogType = ""; // Column 49
// Unused column: TMogMin
// Unused column: TMogMax
std::string type = ""; // Column 52
// Unused column: type2
std::string dropsound = ""; // Column 54
int32_t dropsfxframe = 0; // Column 55
std::string usesound = ""; // Column 56
int32_t unique = 0; // Column 57
int32_t transparent = 0; // Column 58
int32_t transtbl = 0; // Column 59
int32_t quivered = 0; // Column 60
int32_t lightradius = 0; // Column 61
int32_t belt = 0; // Column 62
// Unused column: quest
// Unused column: questdiffcheck
int32_t missiletype = 0; // Column 65
int32_t durwarning = 0; // Column 66
int32_t qntwarning = 0; // Column 67
int32_t mindam = 0; // Column 68
int32_t maxdam = 0; // Column 69
int32_t StrBonus = 0; // Column 70
// Unused column: DexBonus
int32_t gemoffset = 0; // Column 72
int32_t bitfield1 = 0; // Column 73
int32_t CharsiMin = 0; // Column 74
int32_t CharsiMax = 0; // Column 75
int32_t CharsiMagicMin = 0; // Column 76
int32_t CharsiMagicMax = 0; // Column 77
int32_t CharsiMagicLvl = 0; // Column 78
int32_t GheedMin = 0; // Column 79
int32_t GheedMax = 0; // Column 80
// Unused column: GheedMagicMin
int32_t GheedMagicMax = 0; // Column 82
int32_t GheedMagicLvl = 0; // Column 83
// Unused column: AkaraMin
// Unused column: AkaraMax
// Unused column: AkaraMagicMin
// Unused column: AkaraMagicMax
int32_t AkaraMagicLvl = 0; // Column 88
int32_t FaraMin = 0; // Column 89
int32_t FaraMax = 0; // Column 90
int32_t FaraMagicMin = 0; // Column 91
int32_t FaraMagicMax = 0; // Column 92
int32_t FaraMagicLvl = 0; // Column 93
// Unused column: LysanderMin
// Unused column: LysanderMax
// Unused column: LysanderMagicMin
// Unused column: LysanderMagicMax
int32_t LysanderMagicLvl = 0; // Column 98
int32_t DrognanMin = 0; // Column 99
int32_t DrognanMax = 0; // Column 100
int32_t DrognanMagicMin = 0; // Column 101
int32_t DrognanMagicMax = 0; // Column 102
int32_t DrognanMagicLvl = 0; // Column 103
int32_t HratliMin = 0; // Column 104
int32_t HratliMax = 0; // Column 105
int32_t HratliMagicMin = 0; // Column 106
int32_t HratliMagicMax = 0; // Column 107
int32_t HratliMagicLvl = 0; // Column 108
// Unused column: AlkorMin
// Unused column: AlkorMax
// Unused column: AlkorMagicMin
// Unused column: AlkorMagicMax
int32_t AlkorMagicLvl = 0; // Column 113
// Unused column: OrmusMin
int32_t OrmusMax = 0; // Column 115
// Unused column: OrmusMagicMin
int32_t OrmusMagicMax = 0; // Column 117
int32_t OrmusMagicLvl = 0; // Column 118
int32_t ElzixMin = 0; // Column 119
int32_t ElzixMax = 0; // Column 120
int32_t ElzixMagicMin = 0; // Column 121
int32_t ElzixMagicMax = 0; // Column 122
int32_t ElzixMagicLvl = 0; // Column 123
int32_t AshearaMin = 0; // Column 124
int32_t AshearaMax = 0; // Column 125
int32_t AshearaMagicMin = 0; // Column 126
int32_t AshearaMagicMax = 0; // Column 127
int32_t AshearaMagicLvl = 0; // Column 128
int32_t CainMin = 0; // Column 129
int32_t CainMax = 0; // Column 130
int32_t CainMagicMin = 0; // Column 131
int32_t CainMagicMax = 0; // Column 132
int32_t CainMagicLvl = 0; // Column 133
int32_t HalbuMin = 0; // Column 134
int32_t HalbuMax = 0; // Column 135
int32_t HalbuMagicMin = 0; // Column 136
int32_t HalbuMagicMax = 0; // Column 137
int32_t HalbuMagicLvl = 0; // Column 138
int32_t JamellaMin = 0; // Column 139
int32_t JamellaMax = 0; // Column 140
int32_t JamellaMagicMin = 0; // Column 141
int32_t JamellaMagicMax = 0; // Column 142
int32_t JamellaMagicLvl = 0; // Column 143
int32_t LarzukMin = 0; // Column 144
int32_t LarzukMax = 0; // Column 145
int32_t LarzukMagicMin = 0; // Column 146
int32_t LarzukMagicMax = 0; // Column 147
int32_t LarzukMagicLvl = 0; // Column 148
// Unused column: MalahMin
// Unused column: MalahMax
// Unused column: MalahMagicMin
// Unused column: MalahMagicMax
int32_t MalahMagicLvl = 0; // Column 153
int32_t AnyaMin = 0; // Column 154
int32_t AnyaMax = 0; // Column 155
int32_t AnyaMagicMin = 0; // Column 156
int32_t AnyaMagicMax = 0; // Column 157
int32_t AnyaMagicLvl = 0; // Column 158
int32_t Transform = 0; // Column 159
int32_t InvTrans = 0; // Column 160
int32_t SkipName = 0; // Column 161
std::string NightmareUpgrade = ""; // Column 162
std::string HellUpgrade = ""; // Column 163
int32_t Nameable = 0; // Column 164
int32_t PermStoreItem = 0; // Column 165
// Unused column: UICatOverride
// Unused column: diablocloneweight
size_t read(const char* line);
static std::vector<t_armor> readfile(std::string filename);
};
struct t_armtype {
std::string Name = ""; // Column 0
std::string Token = ""; // Column 1
size_t read(const char* line);
static std::vector<t_armtype> readfile(std::string filename);
};
struct t_automagic {
std::string Name = ""; // Column 0
int32_t version = 0; // Column 1
int32_t spawnable = 0; // Column 2
int32_t rare = 0; // Column 3
int32_t level = 0; // Column 4
// Unused column: maxlevel
int32_t levelreq = 0; // Column 6
// Unused column: classspecific
// Unused column: class
// Unused column: classlevelreq
int32_t frequency = 0; // Column 10
int32_t group = 0; // Column 11
std::string mod1code = ""; // Column 12
int32_t mod1param = 0; // Column 13
int32_t mod1min = 0; // Column 14
int32_t mod1max = 0; // Column 15
std::string mod2code = ""; // Column 16
// Unused column: mod2param
int32_t mod2min = 0; // Column 18
int32_t mod2max = 0; // Column 19
std::string mod3code = ""; // Column 20
// Unused column: mod3param
int32_t mod3min = 0; // Column 22
int32_t mod3max = 0; // Column 23
std::string transformcolor = ""; // Column 24
std::string itype1 = ""; // Column 25
std::string itype2 = ""; // Column 26
// Unused column: itype3
// Unused column: itype4
// Unused column: itype5
// Unused column: itype6
// Unused column: itype7
// Unused column: etype1
// Unused column: etype2
// Unused column: etype3
// Unused column: etype4
// Unused column: etype5
int32_t multiply = 0; // Column 37
int32_t add = 0; // Column 38
size_t read(const char* line);
static std::vector<t_automagic> readfile(std::string filename);
};
struct t_automap {
std::string LevelName = ""; // Column 0
std::string TileName = ""; // Column 1
int32_t Style = 0; // Column 2
int32_t StartSequence = 0; // Column 3
int32_t EndSequence = 0; // Column 4
std::string Type1 = ""; // Column 5
int32_t Cel1 = 0; // Column 6
std::string Type2 = ""; // Column 7
int32_t Cel2 = 0; // Column 8
std::string Type3 = ""; // Column 9
int32_t Cel3 = 0; // Column 10
std::string Type4 = ""; // Column 11
int32_t Cel4 = 0; // Column 12
size_t read(const char* line);
static std::vector<t_automap> readfile(std::string filename);
};
struct t_belts {
std::string name = ""; // Column 0
int32_t numboxes = 0; // Column 1
int32_t box1left = 0; // Column 2
int32_t box1right = 0; // Column 3
int32_t box1top = 0; // Column 4
int32_t box1bottom = 0; // Column 5
int32_t box2left = 0; // Column 6
int32_t box2right = 0; // Column 7
int32_t box2top = 0; // Column 8
int32_t box2bottom = 0; // Column 9
int32_t box3left = 0; // Column 10
int32_t box3right = 0; // Column 11
int32_t box3top = 0; // Column 12
int32_t box3bottom = 0; // Column 13
int32_t box4left = 0; // Column 14
int32_t box4right = 0; // Column 15
int32_t box4top = 0; // Column 16
int32_t box4bottom = 0; // Column 17
int32_t box5left = 0; // Column 18
int32_t box5right = 0; // Column 19
int32_t box5top = 0; // Column 20
int32_t box5bottom = 0; // Column 21
int32_t box6left = 0; // Column 22
int32_t box6right = 0; // Column 23
int32_t box6top = 0; // Column 24
int32_t box6bottom = 0; // Column 25
int32_t box7left = 0; // Column 26
int32_t box7right = 0; // Column 27
int32_t box7top = 0; // Column 28
int32_t box7bottom = 0; // Column 29
int32_t box8left = 0; // Column 30
int32_t box8right = 0; // Column 31
int32_t box8top = 0; // Column 32
int32_t box8bottom = 0; // Column 33
int32_t box9left = 0; // Column 34
int32_t box9right = 0; // Column 35
int32_t box9top = 0; // Column 36
int32_t box9bottom = 0; // Column 37
int32_t box10left = 0; // Column 38
int32_t box10right = 0; // Column 39
int32_t box10top = 0; // Column 40
int32_t box10bottom = 0; // Column 41
int32_t box11left = 0; // Column 42
int32_t box11right = 0; // Column 43
int32_t box11top = 0; // Column 44
int32_t box11bottom = 0; // Column 45
int32_t box12left = 0; // Column 46
int32_t box12right = 0; // Column 47
int32_t box12top = 0; // Column 48
int32_t box12bottom = 0; // Column 49
int32_t box13left = 0; // Column 50
int32_t box13right = 0; // Column 51
int32_t box13top = 0; // Column 52
int32_t box13bottom = 0; // Column 53
int32_t box14left = 0; // Column 54
int32_t box14right = 0; // Column 55
int32_t box14top = 0; // Column 56
int32_t box14bottom = 0; // Column 57
int32_t box15left = 0; // Column 58
int32_t box15right = 0; // Column 59
int32_t box15top = 0; // Column 60
int32_t box15bottom = 0; // Column 61
int32_t box16left = 0; // Column 62
int32_t box16right = 0; // Column 63
int32_t box16top = 0; // Column 64
int32_t box16bottom = 0; // Column 65
std::string defaultItemTypeCol1 = ""; // Column 66
// Unused column: defaultItemCodeCol1
std::string defaultItemTypeCol2 = ""; // Column 68
// Unused column: defaultItemCodeCol2
std::string defaultItemTypeCol3 = ""; // Column 70
// Unused column: defaultItemCodeCol3
std::string defaultItemTypeCol4 = ""; // Column 72
std::string defaultItemCodeCol4 = ""; // Column 73
size_t read(const char* line);
static std::vector<t_belts> readfile(std::string filename);
};
struct t_bodylocs {
std::string BodyLocation = ""; // Column 0
std::string Code = ""; // Column 1
size_t read(const char* line);
static std::vector<t_bodylocs> readfile(std::string filename);
};
struct t_books {
std::string Name = ""; // Column 0
std::string ScrollSpellCode = ""; // Column 1
std::string BookSpellCode = ""; // Column 2
int32_t pSpell = 0; // Column 3
int32_t SpellIcon = 0; // Column 4
std::string ScrollSkill = ""; // Column 5
std::string BookSkill = ""; // Column 6
int32_t BaseCost = 0; // Column 7
int32_t CostPerCharge = 0; // Column 8
size_t read(const char* line);
static std::vector<t_books> readfile(std::string filename);
};
struct t_charstats {
std::string _class = ""; // Column 0
int32_t str = 0; // Column 1
int32_t dex = 0; // Column 2
int32_t _int = 0; // Column 3
int32_t vit = 0; // Column 4
int32_t stamina = 0; // Column 5
int32_t hpadd = 0; // Column 6
int32_t ManaRegen = 0; // Column 7
int32_t ToHitFactor = 0; // Column 8
int32_t WalkVelocity = 0; // Column 9
int32_t RunVelocity = 0; // Column 10
int32_t RunDrain = 0; // Column 11
std::string Comment = ""; // Column 12
int32_t LifePerLevel = 0; // Column 13
int32_t StaminaPerLevel = 0; // Column 14
int32_t ManaPerLevel = 0; // Column 15
int32_t LifePerVitality = 0; // Column 16
int32_t StaminaPerVitality = 0; // Column 17
int32_t ManaPerMagic = 0; // Column 18
int32_t StatPerLevel = 0; // Column 19
int32_t SkillsPerLevel = 0; // Column 20
int32_t LightRadius = 0; // Column 21
int32_t BlockFactor = 0; // Column 22
int32_t MinimumCastingDelay = 0; // Column 23
std::string StartSkill = ""; // Column 24
std::string Skill1 = ""; // Column 25
std::string Skill2 = ""; // Column 26
std::string Skill3 = ""; // Column 27
std::string Skill4 = ""; // Column 28
std::string Skill5 = ""; // Column 29
std::string Skill6 = ""; // Column 30
std::string Skill7 = ""; // Column 31
std::string Skill8 = ""; // Column 32
std::string Skill9 = ""; // Column 33
// Unused column: Skill 10
std::string StrAllSkills = ""; // Column 35
std::string StrSkillTab1 = ""; // Column 36
std::string StrSkillTab2 = ""; // Column 37
std::string StrSkillTab3 = ""; // Column 38
std::string StrClassOnly = ""; // Column 39
int32_t HealthPotionPercent = 0; // Column 40
int32_t ManaPotionPercent = 0; // Column 41
std::string baseWClass = ""; // Column 42
std::string item1 = ""; // Column 43
std::string item1loc = ""; // Column 44
int32_t item1count = 0; // Column 45
int32_t item1quality = 0; // Column 46
std::string item2 = ""; // Column 47
std::string item2loc = ""; // Column 48
int32_t item2count = 0; // Column 49
int32_t item2quality = 0; // Column 50
std::string item3 = ""; // Column 51
// Unused column: item3loc
int32_t item3count = 0; // Column 53
int32_t item3quality = 0; // Column 54
std::string item4 = ""; // Column 55
// Unused column: item4loc
int32_t item4count = 0; // Column 57
int32_t item4quality = 0; // Column 58
std::string item5 = ""; // Column 59
// Unused column: item5loc
int32_t item5count = 0; // Column 61
int32_t item5quality = 0; // Column 62
int32_t item6 = 0; // Column 63
// Unused column: item6loc
int32_t item6count = 0; // Column 65
int32_t item6quality = 0; // Column 66
int32_t item7 = 0; // Column 67
// Unused column: item7loc
int32_t item7count = 0; // Column 69
int32_t item7quality = 0; // Column 70
int32_t item8 = 0; // Column 71
// Unused column: item8loc
int32_t item8count = 0; // Column 73
int32_t item8quality = 0; // Column 74
int32_t item9 = 0; // Column 75
// Unused column: item9loc
int32_t item9count = 0; // Column 77
int32_t item9quality = 0; // Column 78
int32_t item10 = 0; // Column 79
// Unused column: item10loc
int32_t item10count = 0; // Column 81
int32_t item10quality = 0; // Column 82
size_t read(const char* line);
static std::vector<t_charstats> readfile(std::string filename);
};
struct t_colors {
std::string TransformColor = ""; // Column 0
std::string Code = ""; // Column 1
size_t read(const char* line);
static std::vector<t_colors> readfile(std::string filename);
};
struct t_compcode {
std::string component = ""; // Column 0
std::string code = ""; // Column 1
size_t read(const char* line);
static std::vector<t_compcode> readfile(std::string filename);
};
struct t_composit {
std::string Name = ""; // Column 0
std::string Token = ""; // Column 1
size_t read(const char* line);
static std::vector<t_composit> readfile(std::string filename);
};
struct t_cubemain {
std::string description = ""; // Column 0
int32_t enabled = 0; // Column 1
int32_t firstLadderSeason = 0; // Column 2
int32_t lastLadderSeason = 0; // Column 3
// Unused column: min diff
int32_t version = 0; // Column 5
int32_t op = 0; // Column 6
// Unused column: param
// Unused column: value
// Unused column: class
int32_t numinputs = 0; // Column 10
std::string input1 = ""; // Column 11
std::string input2 = ""; // Column 12
std::string input3 = ""; // Column 13
std::string input4 = ""; // Column 14
std::string input5 = ""; // Column 15
std::string input6 = ""; // Column 16
std::string input7 = ""; // Column 17
std::string output = ""; // Column 18
int32_t lvl = 0; // Column 19
int32_t plvl = 0; // Column 20
int32_t ilvl = 0; // Column 21
std::string mod1 = ""; // Column 22
// Unused column: mod 1 chance
int32_t mod1param = 0; // Column 24
int32_t mod1min = 0; // Column 25
int32_t mod1max = 0; // Column 26
std::string mod2 = ""; // Column 27
// Unused column: mod 2 chance
// Unused column: mod 2 param
int32_t mod2min = 0; // Column 30
int32_t mod2max = 0; // Column 31
std::string mod3 = ""; // Column 32
// Unused column: mod 3 chance
// Unused column: mod 3 param
int32_t mod3min = 0; // Column 35
int32_t mod3max = 0; // Column 36
std::string mod4 = ""; // Column 37
// Unused column: mod 4 chance
// Unused column: mod 4 param
int32_t mod4min = 0; // Column 40
int32_t mod4max = 0; // Column 41
// Unused column: mod 5
// Unused column: mod 5 chance
// Unused column: mod 5 param
// Unused column: mod 5 min
// Unused column: mod 5 max
// Unused column: output b
// Unused column: b lvl
// Unused column: b plvl
// Unused column: b ilvl
// Unused column: b mod 1
// Unused column: b mod 1 chance
// Unused column: b mod 1 param
// Unused column: b mod 1 min
// Unused column: b mod 1 max
// Unused column: b mod 2
// Unused column: b mod 2 chance
// Unused column: b mod 2 param
// Unused column: b mod 2 min
// Unused column: b mod 2 max
// Unused column: b mod 3
// Unused column: b mod 3 chance
// Unused column: b mod 3 param
// Unused column: b mod 3 min
// Unused column: b mod 3 max
// Unused column: b mod 4
// Unused column: b mod 4 chance
// Unused column: b mod 4 param
// Unused column: b mod 4 min
// Unused column: b mod 4 max
// Unused column: b mod 5
// Unused column: b mod 5 chance
// Unused column: b mod 5 param
// Unused column: b mod 5 min
// Unused column: b mod 5 max
// Unused column: output c
// Unused column: c lvl
// Unused column: c plvl
// Unused column: c ilvl
// Unused column: c mod 1
// Unused column: c mod 1 chance
// Unused column: c mod 1 param
// Unused column: c mod 1 min
// Unused column: c mod 1 max
// Unused column: c mod 2
// Unused column: c mod 2 chance
// Unused column: c mod 2 param
// Unused column: c mod 2 min
// Unused column: c mod 2 max
// Unused column: c mod 3
// Unused column: c mod 3 chance
// Unused column: c mod 3 param
// Unused column: c mod 3 min
// Unused column: c mod 3 max
// Unused column: c mod 4
// Unused column: c mod 4 chance
// Unused column: c mod 4 param
// Unused column: c mod 4 min
// Unused column: c mod 4 max
// Unused column: c mod 5
// Unused column: c mod 5 chance
// Unused column: c mod 5 param
// Unused column: c mod 5 min
// Unused column: c mod 5 max
int32_t eol = 0; // Column 105
size_t read(const char* line);
static std::vector<t_cubemain> readfile(std::string filename);
};
struct t_cubemod {
std::string cubemodifiertype = ""; // Column 0
std::string Code = ""; // Column 1
size_t read(const char* line);
static std::vector<t_cubemod> readfile(std::string filename);
};
struct t_difficultylevels {
std::string Name = ""; // Column 0
int32_t ResistPenalty = 0; // Column 1
int32_t ResistPenaltyNonExpansion = 0; // Column 2
int32_t DeathExpPenalty = 0; // Column 3
int32_t MonsterSkillBonus = 0; // Column 4
int32_t MonsterFreezeDivisor = 0; // Column 5
int32_t MonsterColdDivisor = 0; // Column 6
int32_t AiCurseDivisor = 0; // Column 7
int32_t LifeStealDivisor = 0; // Column 8
int32_t ManaStealDivisor = 0; // Column 9
int32_t UniqueDamageBonus = 0; // Column 10
int32_t ChampionDamageBonus = 0; // Column 11
int32_t PlayerDamagePercentVSPlayer = 0; // Column 12
int32_t PlayerDamagePercentVSMercenary = 0; // Column 13
int32_t PlayerDamagePercentVSPrimeEvil = 0; // Column 14
int32_t PlayerHitReactBufferVSPlayer = 0; // Column 15
int32_t PlayerHitReactBufferVSMonster = 0; // Column 16
int32_t MercenaryDamagePercentVSPlayer = 0; // Column 17
int32_t MercenaryDamagePercentVSMercenary = 0; // Column 18
int32_t MercenaryDamagePercentVSBoss = 0; // Column 19
int32_t MercenaryMaxStunLength = 0; // Column 20
int32_t PrimeEvilDamagePercentVSPlayer = 0; // Column 21
int32_t PrimeEvilDamagePercentVSMercenary = 0; // Column 22
int32_t PrimeEvilDamagePercentVSPet = 0; // Column 23
int32_t PetDamagePercentVSPlayer = 0; // Column 24
int32_t MonsterCEDamagePercent = 0; // Column 25
int32_t MonsterFireEnchantExplosionDamagePercent = 0; // Column 26
int32_t StaticFieldMin = 0; // Column 27
int32_t GambleRare = 0; // Column 28
int32_t GambleSet = 0; // Column 29
int32_t GambleUnique = 0; // Column 30
int32_t GambleUber = 0; // Column 31
int32_t GambleUltra = 0; // Column 32
// Unused column: ResistFloor
size_t read(const char* line);
static std::vector<t_difficultylevels> readfile(std::string filename);
};
struct t_elemtypes {
std::string ElementalType = ""; // Column 0
std::string Code = ""; // Column 1
size_t read(const char* line);
static std::vector<t_elemtypes> readfile(std::string filename);
};
struct t_events {
std::string event = ""; // Column 0
std::string description = ""; // Column 1
size_t read(const char* line);
static std::vector<t_events> readfile(std::string filename);
};
struct t_experience {
std::string Level = ""; // Column 0
int32_t Amazon = 0; // Column 1
int32_t Sorceress = 0; // Column 2
int32_t Necromancer = 0; // Column 3
int32_t Paladin = 0; // Column 4
int32_t Barbarian = 0; // Column 5
int32_t Druid = 0; // Column 6
int32_t Assassin = 0; // Column 7
// Unused column: Warlock
int32_t ExpRatio = 0; // Column 9
size_t read(const char* line);
static std::vector<t_experience> readfile(std::string filename);
};
struct t_gamble {
std::string name = ""; // Column 0
std::string code = ""; // Column 1
size_t read(const char* line);
static std::vector<t_gamble> readfile(std::string filename);
};
struct t_gems {
std::string name = ""; // Column 0
std::string letter = ""; // Column 1
int32_t transform = 0; // Column 2
std::string code = ""; // Column 3
std::string weaponMod1Code = ""; // Column 4
int32_t weaponMod1Param = 0; // Column 5
int32_t weaponMod1Min = 0; // Column 6
int32_t weaponMod1Max = 0; // Column 7
std::string weaponMod2Code = ""; // Column 8
int32_t weaponMod2Param = 0; // Column 9
int32_t weaponMod2Min = 0; // Column 10
int32_t weaponMod2Max = 0; // Column 11
std::string weaponMod3Code = ""; // Column 12
int32_t weaponMod3Param = 0; // Column 13
int32_t weaponMod3Min = 0; // Column 14
int32_t weaponMod3Max = 0; // Column 15
std::string helmMod1Code = ""; // Column 16
int32_t helmMod1Param = 0; // Column 17
int32_t helmMod1Min = 0; // Column 18
int32_t helmMod1Max = 0; // Column 19
std::string helmMod2Code = ""; // Column 20
int32_t helmMod2Param = 0; // Column 21
int32_t helmMod2Min = 0; // Column 22
int32_t helmMod2Max = 0; // Column 23
// Unused column: helmMod3Code
int32_t helmMod3Param = 0; // Column 25
int32_t helmMod3Min = 0; // Column 26
int32_t helmMod3Max = 0; // Column 27
std::string shieldMod1Code = ""; // Column 28
int32_t shieldMod1Param = 0; // Column 29
int32_t shieldMod1Min = 0; // Column 30
int32_t shieldMod1Max = 0; // Column 31
std::string shieldMod2Code = ""; // Column 32
int32_t shieldMod2Param = 0; // Column 33
int32_t shieldMod2Min = 0; // Column 34
int32_t shieldMod2Max = 0; // Column 35
// Unused column: shieldMod3Code
int32_t shieldMod3Param = 0; // Column 37
int32_t shieldMod3Min = 0; // Column 38
int32_t shieldMod3Max = 0; // Column 39
size_t read(const char* line);
static std::vector<t_gems> readfile(std::string filename);
};
struct t_hireling {
std::string Hireling = ""; // Column 0
std::string SubType = ""; // Column 1
int32_t Version = 0; // Column 2
int32_t Id = 0; // Column 3
int32_t Class = 0; // Column 4
int32_t Act = 0; // Column 5
int32_t Difficulty = 0; // Column 6
int32_t Level = 0; // Column 7
int32_t Seller = 0; // Column 8
std::string NameFirst = ""; // Column 9
std::string NameLast = ""; // Column 10
int32_t Gold = 0; // Column 11
int32_t ExpLvl = 0; // Column 12
int32_t HP = 0; // Column 13
int32_t HPLvl = 0; // Column 14
int32_t Defense = 0; // Column 15
int32_t DefLvl = 0; // Column 16
int32_t Str = 0; // Column 17
int32_t StrLvl = 0; // Column 18
int32_t Dex = 0; // Column 19
int32_t DexLvl = 0; // Column 20
int32_t AR = 0; // Column 21
int32_t ARLvl = 0; // Column 22
int32_t DmgMin = 0; // Column 23
int32_t DmgMax = 0; // Column 24
int32_t DmgLvl = 0; // Column 25
int32_t ResistFire = 0; // Column 26
int32_t ResistFireLvl = 0; // Column 27
int32_t ResistCold = 0; // Column 28
int32_t ResistColdLvl = 0; // Column 29
int32_t ResistLightning = 0; // Column 30
int32_t ResistLightningLvl = 0; // Column 31
int32_t ResistPoison = 0; // Column 32
int32_t ResistPoisonLvl = 0; // Column 33
std::string HireDesc = ""; // Column 34
int32_t DefaultChance = 0; // Column 35
std::string Skill1 = ""; // Column 36
int32_t Mode1 = 0; // Column 37
int32_t Chance1 = 0; // Column 38
int32_t ChancePerLvl1 = 0; // Column 39
int32_t Level1 = 0; // Column 40
int32_t LvlPerLvl1 = 0; // Column 41
std::string Skill2 = ""; // Column 42
int32_t Mode2 = 0; // Column 43
int32_t Chance2 = 0; // Column 44
int32_t ChancePerLvl2 = 0; // Column 45
int32_t Level2 = 0; // Column 46
int32_t LvlPerLvl2 = 0; // Column 47
std::string Skill3 = ""; // Column 48
int32_t Mode3 = 0; // Column 49
int32_t Chance3 = 0; // Column 50
int32_t ChancePerLvl3 = 0; // Column 51
int32_t Level3 = 0; // Column 52
int32_t LvlPerLvl3 = 0; // Column 53
// Unused column: Skill4
// Unused column: Mode4
// Unused column: Chance4
// Unused column: ChancePerLvl4
// Unused column: Level4
// Unused column: LvlPerLvl4
// Unused column: Skill5
// Unused column: Mode5
// Unused column: Chance5
// Unused column: ChancePerLvl5
// Unused column: Level5
// Unused column: LvlPerLvl5
// Unused column: Skill6
// Unused column: Mode6
// Unused column: Chance6
// Unused column: ChancePerLvl6
// Unused column: Level6
// Unused column: LvlPerLvl6
int32_t HiringMaxLevelDifference = 0; // Column 72
int32_t resurrectcostmultiplier = 0; // Column 73
int32_t resurrectcostdivisor = 0; // Column 74
int32_t resurrectcostmax = 0; // Column 75
std::string equivalentcharclass = ""; // Column 76
size_t read(const char* line);
static std::vector<t_hireling> readfile(std::string filename);
};
struct t_hitclass {
std::string HitClass = ""; // Column 0
std::string Code = ""; // Column 1
size_t read(const char* line);
static std::vector<t_hitclass> readfile(std::string filename);
};
struct t_inventory {
std::string _class = ""; // Column 0
int32_t invLeft = 0; // Column 1
int32_t invRight = 0; // Column 2
int32_t invTop = 0; // Column 3
int32_t invBottom = 0; // Column 4
int32_t gridX = 0; // Column 5
int32_t gridY = 0; // Column 6
int32_t gridLeft = 0; // Column 7
int32_t gridRight = 0; // Column 8
int32_t gridTop = 0; // Column 9
int32_t gridBottom = 0; // Column 10
int32_t gridBoxWidth = 0; // Column 11
int32_t gridBoxHeight = 0; // Column 12
int32_t rArmLeft = 0; // Column 13
int32_t rArmRight = 0; // Column 14
int32_t rArmTop = 0; // Column 15
int32_t rArmBottom = 0; // Column 16
int32_t rArmWidth = 0; // Column 17
int32_t rArmHeight = 0; // Column 18
int32_t torsoLeft = 0; // Column 19
int32_t torsoRight = 0; // Column 20
int32_t torsoTop = 0; // Column 21
int32_t torsoBottom = 0; // Column 22
int32_t torsoWidth = 0; // Column 23
int32_t torsoHeight = 0; // Column 24
int32_t lArmLeft = 0; // Column 25
int32_t lArmRight = 0; // Column 26
int32_t lArmTop = 0; // Column 27
int32_t lArmBottom = 0; // Column 28
int32_t lArmWidth = 0; // Column 29
int32_t lArmHeight = 0; // Column 30
int32_t headLeft = 0; // Column 31
int32_t headRight = 0; // Column 32
int32_t headTop = 0; // Column 33
int32_t headBottom = 0; // Column 34
int32_t headWidth = 0; // Column 35
int32_t headHeight = 0; // Column 36
int32_t neckLeft = 0; // Column 37
int32_t neckRight = 0; // Column 38
int32_t neckTop = 0; // Column 39
int32_t neckBottom = 0; // Column 40
int32_t neckWidth = 0; // Column 41
int32_t neckHeight = 0; // Column 42
int32_t rHandLeft = 0; // Column 43
int32_t rHandRight = 0; // Column 44
int32_t rHandTop = 0; // Column 45
int32_t rHandBottom = 0; // Column 46
int32_t rHandWidth = 0; // Column 47
int32_t rHandHeight = 0; // Column 48
int32_t lHandLeft = 0; // Column 49
int32_t lHandRight = 0; // Column 50
int32_t lHandTop = 0; // Column 51
int32_t lHandBottom = 0; // Column 52
int32_t lHandWidth = 0; // Column 53
int32_t lHandHeight = 0; // Column 54
int32_t beltLeft = 0; // Column 55
int32_t beltRight = 0; // Column 56
int32_t beltTop = 0; // Column 57
int32_t beltBottom = 0; // Column 58
int32_t beltWidth = 0; // Column 59
int32_t beltHeight = 0; // Column 60
int32_t feetLeft = 0; // Column 61
int32_t feetRight = 0; // Column 62
int32_t feetTop = 0; // Column 63
int32_t feetBottom = 0; // Column 64
int32_t feetWidth = 0; // Column 65
int32_t feetHeight = 0; // Column 66
int32_t glovesLeft = 0; // Column 67
int32_t glovesRight = 0; // Column 68
int32_t glovesTop = 0; // Column 69
int32_t glovesBottom = 0; // Column 70
int32_t glovesWidth = 0; // Column 71
int32_t glovesHeight = 0; // Column 72
size_t read(const char* line);
static std::vector<t_inventory> readfile(std::string filename);
};
struct t_itemratio {
std::string Function = ""; // Column 0
int32_t Version = 0; // Column 1
int32_t Uber = 0; // Column 2
int32_t ClassSpecific = 0; // Column 3
int32_t Unique = 0; // Column 4
int32_t UniqueDivisor = 0; // Column 5
int32_t UniqueMin = 0; // Column 6
int32_t Rare = 0; // Column 7
int32_t RareDivisor = 0; // Column 8
int32_t RareMin = 0; // Column 9
int32_t Set = 0; // Column 10
int32_t SetDivisor = 0; // Column 11
int32_t SetMin = 0; // Column 12
int32_t Magic = 0; // Column 13
int32_t MagicDivisor = 0; // Column 14
int32_t MagicMin = 0; // Column 15
int32_t HiQuality = 0; // Column 16
int32_t HiQualityDivisor = 0; // Column 17
int32_t Normal = 0; // Column 18
int32_t NormalDivisor = 0; // Column 19
size_t read(const char* line);
static std::vector<t_itemratio> readfile(std::string filename);
};
struct t_itemstatcost {
std::string Stat = ""; // Column 0
int32_t ID = 0; // Column 1
int32_t SendOther = 0; // Column 2
int32_t Signed = 0; // Column 3
int32_t SendBits = 0; // Column 4
int32_t SendParamBits = 0; // Column 5
int32_t UpdateAnimRate = 0; // Column 6
int32_t Saved = 0; // Column 7
int32_t CSvSigned = 0; // Column 8
int32_t CSvBits = 0; // Column 9
// Unused column: CSvParam
int32_t fCallback = 0; // Column 11
int32_t fMin = 0; // Column 12
int32_t MinAccr = 0; // Column 13
int32_t Encode = 0; // Column 14
int32_t Add = 0; // Column 15
int32_t Multiply = 0; // Column 16
int32_t ValShift = 0; // Column 17
int32_t _109SaveBits = 0; // Column 18
int32_t _109SaveAdd = 0; // Column 19
int32_t SaveBits = 0; // Column 20
int32_t SaveAdd = 0; // Column 21
int32_t SaveParamBits = 0; // Column 22
int32_t keepzero = 0; // Column 23
int32_t op = 0; // Column 24
int32_t opparam = 0; // Column 25
std::string opbase = ""; // Column 26
std::string opstat1 = ""; // Column 27
std::string opstat2 = ""; // Column 28
std::string opstat3 = ""; // Column 29
int32_t direct = 0; // Column 30
std::string maxstat = ""; // Column 31
int32_t damagerelated = 0; // Column 32
std::string itemevent1 = ""; // Column 33
int32_t itemeventfunc1 = 0; // Column 34
std::string itemevent2 = ""; // Column 35
int32_t itemeventfunc2 = 0; // Column 36
int32_t descpriority = 0; // Column 37
int32_t descfunc = 0; // Column 38
int32_t descval = 0; // Column 39
std::string descstrpos = ""; // Column 40
std::string descstrneg = ""; // Column 41
std::string descstr2 = ""; // Column 42
int32_t dgrp = 0; // Column 43
int32_t dgrpfunc = 0; // Column 44
// Unused column: dgrpval
std::string dgrpstrpos = ""; // Column 46
std::string dgrpstrneg = ""; // Column 47
// Unused column: dgrpstr2
int32_t stuff = 0; // Column 49
int32_t advdisplay = 0; // Column 50
int32_t eol = 0; // Column 51
size_t read(const char* line);
static std::vector<t_itemstatcost> readfile(std::string filename);
};
struct t_itemtypes {
std::string ItemType = ""; // Column 0
std::string Code = ""; // Column 1
std::string Equiv1 = ""; // Column 2
std::string Equiv2 = ""; // Column 3