Skip to content

Commit fdf8df0

Browse files
committed
Handle more style and buff data
1 parent 0d3fb19 commit fdf8df0

File tree

4 files changed

+78
-25
lines changed

4 files changed

+78
-25
lines changed

XbTool/XbTool/Bdat/BdatFieldInfo.cs

+5-3
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,9 @@ public enum BdatFieldType
5555
ItemComment,
5656
Layer,
5757
Place,
58-
Enemy
58+
Enemy,
59+
ArmorStyle,
60+
WeaponStyle
5961
}
6062

6163
public class BdatArrayInfo
@@ -83,12 +85,12 @@ public static class BdatInfoImport
8385
{
8486
using (FileStream stream = Helpers.TryOpenDataFile(filename))
8587
{
86-
if(stream == null) return new Dictionary<(string table, string member), BdatFieldInfo>();
88+
if (stream == null) return new Dictionary<(string table, string member), BdatFieldInfo>();
8789

8890
using (var reader = new StreamReader(stream))
8991
{
9092
IEnumerable<BdatFieldInfo> csv =
91-
new CsvReader(reader, new Configuration {HeaderValidated = null, MissingFieldFound = null})
93+
new CsvReader(reader, new Configuration { HeaderValidated = null, MissingFieldFound = null })
9294
.GetRecords<BdatFieldInfo>();
9395
Dictionary<(string, string), BdatFieldInfo> readBdatFieldInfo =
9496
csv.ToDictionary(x => (x.Table, x.Field), x => x);

XbTool/XbTool/BdatString/BdatStringTools.cs

+10
Original file line numberDiff line numberDiff line change
@@ -478,6 +478,16 @@ public static string GetTaskTableXb1(TaskTypeXb1 taskType, int itemId)
478478
return null;
479479
}
480480

481+
public static string GetArmorStyleTableXb1(int characterId)
482+
{
483+
return $"MNU_StyleArmorPc{characterId:D2}";
484+
}
485+
486+
public static string GetWeaponStyleTableXb1(int characterId)
487+
{
488+
return $"MNU_StyleWeaponPc{characterId:D2}";
489+
}
490+
481491
public static string PrintEnumFlags(Type enumType, object value)
482492
{
483493
var sb = new StringBuilder();

XbTool/XbTool/BdatString/Metadata.cs

+35
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,41 @@ public static void ResolveItemRef(BdatStringValue value)
177177
case BdatFieldType.Enemy when tables.Game == Game.XB1DE:
178178
ApplyRef(BdatStringTools.GetEnemyTableXb1(refId), member.Type != BdatMemberType.None);
179179
break;
180+
case BdatFieldType.ArmorStyle when tables.Game == Game.XB1DE:
181+
{
182+
int characterId = int.Parse(item[field.RefField].ValueString);
183+
int equipItemId = int.Parse(item[field.Field].ValueString);
184+
185+
if (equipItemId != 0)
186+
{
187+
ApplyRef(BdatStringTools.GetArmorStyleTableXb1(characterId));
188+
}
189+
break;
190+
}
191+
case BdatFieldType.WeaponStyle when tables.Game == Game.XB1DE:
192+
{
193+
int characterId = 0;
194+
int equipItemId = int.Parse(item[field.Field].ValueString);
195+
196+
for (int i = 0; i <= 16; i++)
197+
{
198+
string fieldName = $"equip_pc{i}";
199+
if (item.Values.TryGetValue(fieldName, out BdatStringValue equipPcValue))
200+
{
201+
if (equipPcValue.ValueString == "1")
202+
{
203+
characterId = i;
204+
break;
205+
}
206+
}
207+
}
208+
209+
if (equipItemId != 0 && characterId != 0)
210+
{
211+
ApplyRef(BdatStringTools.GetWeaponStyleTableXb1(characterId));
212+
}
213+
break;
214+
}
180215
}
181216

182217
if (field.EnumType != null)

XbTool/XbTool/Data/xb1de_fieldInfo.csv

+28-22
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
Table,Field,Type,RefTable,RefField,Adjust,EnumTypeString
22
autotalklist*,auto_mes,Message,autotalklist*_ms,,0,
33
autotalklist*,scenario_*,Reference,MNU_scenario,,0,
4+
BTL_bufflist,name,Message,BTL_bufflist_ms,,0,
45
BTL_crystalnamelist,name,Message,BTL_crystalnamelist_ms,,0,
56
BTL_enelist,c_name_id,Message,BTL_crystalnamelist,,0,
67
BTL_enelist,name,Message,BTL_enelist_ms,,0,
@@ -22,6 +23,8 @@ BTL_PSVskill,name,Message,BTL_PSVskill_ms,,0,
2223
BTL_PSVskill,shape,Enum,,,0,SkillShapeXb1
2324
BTL_PSVskill,skill,Reference,BTL_PSSlist,,0,
2425
BTL_skilllist,name,Message,BTL_skilllist_ms,,0,
26+
BTL_skilllist,rvs_caption,Message,BTL_skilllist_ms,,0,
27+
BTL_skilllist,rvs_status,Reference,BTL_bufflist,,0,
2528
CL6_materiallist,material*,Reference,ITM_itemlist,,0,
2629
drop_nmllist*,materia*#,Reference,ITM_itemlist,,0,
2730
drop_rarlist*,arts*#,Reference,ITM_itemlist,,0,
@@ -33,6 +36,7 @@ drop_sprlist*,uni_equip*#,Reference,ITM_itemlist,,0,
3336
drop_sprlist*,uni_wpn*#,Reference,ITM_itemlist,,0,
3437
drop_sprlist*,wpn*#,Reference,ITM_itemlist,,0,
3538
ene_arts,name,Message,ene_arts_ms,,0,
39+
ene_arts,st_type,Reference,BTL_bufflist,,0,
3640
exchangelist*,*,Reference,ITM_itemlist,,0,
3741
FieldLock*,MSGID,Reference,GimMess*,,0,
3842
FieldLock*,popID*,Reference,poplist*,,0,
@@ -49,22 +53,38 @@ FLD_valpoplist,S_FLG_*,Reference,MNU_scenario,,0,
4953
gemMineList2501,obj_id,Reference,mapobjlist2501,,0,
5054
gemMineList2501,quest_id*,Quest,,,0,
5155
gemMineList2501,skill*#,Reference,BTL_skilllist,,0,
56+
ITM_armlist,pcid,Reference,BTL_pclist,,0,
57+
ITM_armlist,style,ArmorStyle,,pcid,0,
5258
ITM_artslist,get_arts,Reference,pc_arts,,0,
5359
ITM_artslist,name,Message,ITM_artslist_ms,,0,
5460
ITM_artslist,pc_type,Reference,BTL_pclist,,0,
61+
ITM_bodylist,pcid,Reference,BTL_pclist,,0,
62+
ITM_bodylist,style,ArmorStyle,,pcid,0,
5563
ITM_collectlist,mapID,Reference,FLD_maplist,,0,
5664
ITM_collectlist,name,Message,ITM_collectlist_ms,,0,
5765
ITM_dropcrystallist,skill*,Reference,BTL_skilllist,,0,
5866
ITM_equiplist,jwl_skill1,Reference,ITM_itemlist,,0,
5967
ITM_equiplist,name,Message,ITM_equiplist_ms,,0,
68+
ITM_equiplist,parts,Enum,,,0,EquipPartXb1
69+
ITM_headlist,pcid,Reference,BTL_pclist,,0,
70+
ITM_headlist,style,ArmorStyle,,pcid,0,
6071
ITM_itemlist,comment,ItemComment,,,0,
6172
ITM_itemlist,itemID,Item,,itemType,0,
6273
ITM_itemlist,itemType,Enum,,,0,ItemTypeXb1
74+
ITM_legglist,pcid,Reference,BTL_pclist,,0,
75+
ITM_legglist,style,ArmorStyle,,pcid,0,
6376
ITM_materiallist,name,Message,ITM_materiallist_ms,,0,
6477
ITM_valuablelist,name,Message,ITM_valuablelist_ms,,0,
78+
ITM_waistlist,pcid,Reference,BTL_pclist,,0,
79+
ITM_waistlist,style,ArmorStyle,,pcid,0,
6580
ITM_wpnlist,arts*,Reference,pc_arts,,0,
6681
ITM_wpnlist,jwl_skill*#,Reference,ITM_itemlist,,0,
6782
ITM_wpnlist,name,Message,ITM_wpnlist_ms,,0,
83+
ITM_wpnlist,style,WeaponStyle,,,0,
84+
JNL_kizunalist,chara*,Reference,BTL_pclist,,0,
85+
JNL_kizunalist,flag,Reference,MNU_scenario,,0,
86+
JNL_kizunalist,mapID,Reference,FLD_maplist,,0,
87+
JNL_kizunalist,title,Message,JNL_kizunalist_ms,,0,
6888
JNL_quest*,cnd_questID,Quest,,,0,
6989
JNL_quest*,cnd_succ_A1,Task,,type_succ_A1,0,
7090
JNL_quest*,cnd_succ_A2,Task,,type_succ_A2,0,
@@ -111,6 +131,7 @@ markerlist*,scenario_*,Reference,MNU_scenario,,0,
111131
minelist*,skill*#,Reference,BTL_skilllist,,0,
112132
MMU_questeve,itemID,Reference,ITM_itemlist,,0,
113133
MNU_arts,tag*,Reference,MNU_arts_tag,,0,
134+
MNU_artsshop,item,Reference,ITM_itemlist,,0,
114135
MNU_battle,help,Message,MNU_battle_ms,,0,
115136
MNU_battle,name,Message,MNU_battle_ms,,0,
116137
MNU_bonus_exp,name,Message,MNU_bonus_exp_ms,,0,
@@ -128,6 +149,9 @@ MNU_name,name,Message,MNU_name_ms,,0,
128149
MNU_nopon,name,Message,MNU_nopon_ms,,0,
129150
MNU_noponger_table,npc_id,Reference,FLD_npclist,,0,
130151
MNU_passive,name,Message,MNU_passive_ms,,0,
152+
MNU_playaward,comment*,Message,MNU_playaward_ms,,0,
153+
MNU_PSskil,help,Message,MNU_PSskil_ms,,0,
154+
MNU_qt*,*,Message,MNU_qt*_ms,,0,
131155
MNU_quest,name,Message,MNU_quest_ms,,0,
132156
MNU_quest_task_message,prog_a,Message,MNU_quest_task_message_ms,,0,
133157
MNU_quest_task_message,prog_b,Message,MNU_quest_task_message_ms,,0,
@@ -141,14 +165,18 @@ MNU_ttrl,title,Message,MNU_ttrl_ms,,0,
141165
MNU_ttrl_page,explanation,Message,MNU_ttrl_ms,,0,
142166
MNU_ttrl_page,subtitle,Message,MNU_ttrl_ms,,0,
143167
MNU_ttrl_page,ttrl_id,Reference,MNU_ttrl,,0,
168+
nopon_arts,name,Message,nopon_arts_ms,,0,
169+
nopon_arts,st_type,Reference,BTL_bufflist,,0,
144170
pc_arts,help,Message,pc_arts_ms,,0,
145171
pc_arts,name,Message,pc_arts_ms,,0,
146172
pc_arts,pc,Reference,BTL_pclist,,0,
173+
pc_arts,st_type,Reference,BTL_bufflist,,0,
147174
pctalk_01,server,Reference,BTL_pclist,,0,
148175
pctalk_02,receiver,Reference,BTL_pclist,,0,
149176
pctalk_02,server,Reference,BTL_pclist,,0,
150177
poplist*,child_ID,Reference,poplist*,,0,
151178
poplist*,ene*ID,Reference,BTL_enelist,,0,
179+
poplist*,questID,Quest,,,0,
152180
poplist*,routeID,Reference,routelist*,,0,
153181
poplist*,S_FLG_*,Reference,MNU_scenario,,0,
154182
scmarkerlist,map,Reference,FLD_maplist,,0,
@@ -169,25 +197,3 @@ trial_shop,item,Reference,ITM_itemlist,,0,
169197
trial_shop,sflg,Reference,MNU_scenario,,0,
170198
vs*,caption,Message,vs*_ms,,0,
171199
vs*,caption_jp,Message,vs*_ms,,0,
172-
BTL_bufflist,name,Message,BTL_bufflist_ms,,0,
173-
MNU_artsshop,item,Reference,ITM_itemlist,,0,
174-
MNU_playaward,comment*,Message,MNU_playaward_ms,,0,
175-
JNL_kizunalist,title,Message,JNL_kizunalist_ms,,0,
176-
JNL_kizunalist,chara*,Reference,BTL_pclist,,0,
177-
JNL_kizunalist,mapID,Reference,FLD_maplist,,0,
178-
JNL_kizunalist,flag,Reference,MNU_scenario,,0,
179-
MNU_qt*,*,Message,MNU_qt*_ms,,0,
180-
181-
182-
183-
184-
185-
186-
187-
188-
189-
190-
191-
192-
193-

0 commit comments

Comments
 (0)