forked from andersgong/d2bin2txt
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathbin2txt.ini
152 lines (142 loc) · 5.28 KB
/
bin2txt.ini
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
[GENERAL]
; Directory for *.bin files to decode and strings(raw *.tbl, or extracted *.txt)
Bin = .\bin
; Decoded *.txt files will be placed here
Output = .\txt
; Directory for *.txt files with templates(*.txt from original D2LoD)
; Templates are very important to get most accurate result, capable to produce bit-perfect replicas of original bins after rebuilding,
; you might need to adjust them - adding or removing some columns, to match composition which was used to build bins.
; Some diff tool, hex editor, and structs of bin declared in *.c of bin2txt source code can help finding problematic columns.
; You will be informed about columns containing inconsistent values, and not presented in template - that's a good sign that those columns are used in bins, but such detection not always perfectly accurate
; Amount of columns in template body, and in template header(columns names) should always match, for simplicity you can just remove whole body of tempalate, if it doesn't contains any useful data(strings to used with %t)
; Templates can be auto generated, but it's not recommended for anything except plugins data, which tends to be consistent and lacking any useful information
Template = .\template
; Txt files with CustomTbl strings, files order should be same as in CustomTbl.ini
;CustomTbl1 = messages
CustomTbl2 =
CustomTbl3 =
; Placeholders for unresolved fields. Make sure it won't conflict with existing IDs.
; You might see them on places where original txt had typos, or whole column of them if that columns wasn't enabled during bin creation
FallbackID = !!fixme!!
; Same as above, but limited to four characters
FallbackCode = !fix
; Empty fields equal to zeros, this option controls whether zeros in numerical fields should be printed, or left empty
PrintZero = 1
TreasureClassOffset = 0
CompactOutput = 1
LogEnabled = 0
; Name field format:
; | - separates fallback options, when requested string or template is missing.
; %s - tbl string value, works only for objects which have some column with string id. English strings only.
; %S - tbl string IDs, same as above, but not limited to english tbl, while IDs alone sometimes are descriptive enough.
; %n - usualy refers to most relevant string embedded in bin, if anything. IDs, filenames, and such. If not - may contain any random distinctive info.
; %N - same as above, but allows all characters
; %t - name used in template on current row, good enough for generic tables, like colors definition, but prone to be misleading on modified tables.
; %l - internal numerical ID in table, or just number of current row. Least readable last resort option.
; %L - conditional name, <ID>%L<name> - uses <name> only when %l equal to <ID>, otherwise goes to next option.
; Any other characters will be copied directly. Resulting string will be post-processed to trim them down to safe length(see below), strip from non-letter characters, and number them to make unique IDs when needed.
[NAME_FORMAT]
BookOfLore = %s|bl%l
D2AddSkill = %n|as%l
D2DC6 = %n|dc%l
LevelsEx = %n|le%l
Npc2 = %n|nt%l
objects3 = %n|ot%l
RuneDropList = %s|%n
ShrineBaseGemTypes = %s|%n
Towns = %n|tw%l
D2KillCounter = kc%s|kc%n|kc%l
D2NewStats = %s|ns%l
D2RedPortal = %n|rp%l
D2NPCFunc = %n|%s|nf%l
D2StrSound = %s|%n|ss%l
D2Vendors = %n|^|vd%l
CellFiles = %n|cf%l
D2Spawn = %n|sw%l
D2LvlTown = %n|lt%l
D2SpawnTown = %n|st%l
ItemDesc = %s|%n|id%l
KillExp = %l
LevelFX = %n|lx%l
Waypoints = %n|wp%l
arena = %t|0%LDeathmatch|ae%l
armor = %s|%n
belts = %t|%lb%n|bl%l
bodylocs = %t|%n
books = %t|b%n|bk%l|%s
chartemplate = %t|%s|ct%l
colors = %t|%n
compcode = %t|%n
cubemain = %n|cm%l
difficultylevels = %t|dl%l
elemtypes = %t|%n
events = %t|ev%l
experience = 0%LMaxLvl|%n
gamble = %s|%n
hiredesc = %s|%t|%n
hitclass = %t|%n
inventory = %t|%li%n|iv%l
itemratio = %t|ir%l
itemstatcost = %s|%t|is%l
itemtypes = %N
levels = 0%LNull|%n|lv%l
lvlmaze = %n|lm%l
lvlprest = %n|0%LNone|lp%l
lvlsub = %n|ls%l
lvltypes = %t|%n|lt%l
lvlwarp = %t|lw%l
misc = %s|%n
missiles = m%n|%t|ml%l
monai = %t|ma%l
monitempercent = %t|mc%l
monlvl = %l|mv%l
monmode = %t|%n
monplace = %t|me%l
monprop = %s|mp%l
monseq = %t|0%L |mq%l
monsounds = %t|s%n|0%L |ms%l
monstats = %s|ms%l|%n
montype = %t|%s|%n|0%L |mt%l
monumod = %t|mu%l
objgroup = %n|%t|og%l
overlay = %n|%t|ol%l
pettype = %s|%t|pt%l
playerclass = %t|%n
plrmode = %t|%n
properties = p%s|p%n|pr%l
setitems = %s
sets = %s|se%l
shrines = %t|sr%l
skilldesc = d%s|sd%l
skills = %s|Mon_%n|sk%l
states = %t|s%n|st%l
sounds = %t|0%L |so%l
storepage = %t|%n
superuniques = u%s|su%l
weapons = %s|%n
uniquetitle = %t|ut%l
; Max length of names fields. Some fields cause ID collisions with too big strings, while others are safe to expand. Default is 24 chars.
; Tempalate strings are not restricted, and will be copied as they are, assiming they're good as is.
[NAME_SIZE]
BookOfLore = 64
D2NPCFunc = 64
D2StrSound = 64
cubemain = 64
misc = 32
sounds = 32
; Calc fields with more than ~250 characters may fail to complile, shortening IDs can help with that
;itemstatcost = 12
;skills = 12
; Words separator used in name field, ASCII code. 32 = " ", 45 = "-", 95 = "_", etc. Default is 0, no separator at all. Be cautious, using spaces in ID fields can cause bugs.
[NAME_SEPARATOR]
BookOfLore = 32
D2NPCFunc = 32
D2StrSound = 32
D2Vendors = 94
armor = 32
cubemain = 32
gamble = 32
misc = 32
setitems = 32
skills = 95
weapons = 32