Skip to content

Commit

Permalink
Fix csv importing with .dat which contains empty array
Browse files Browse the repository at this point in the history
  • Loading branch information
aianlinb committed Nov 12, 2022
1 parent 60b5210 commit cdafc01
Show file tree
Hide file tree
Showing 8 changed files with 6,771 additions and 63 deletions.
6 changes: 2 additions & 4 deletions LibDat2/DatContainer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -401,12 +401,12 @@ public virtual void FromCsv(string csv) {
CurrentOffset = 8;
ReferenceDataOffsets.Clear();
ReferenceDatas.Clear();
FieldDatas = new List<IFieldData[]>(FieldDatas.Count);

var quotes = false;
var row = new IFieldData[FieldDefinitions.Count];
var i = 0;
var s = new StringBuilder();
var list = new List<IFieldData[]>(FieldDatas.Count);

if (sr.Peek() == '"') {
sr.Read();
Expand Down Expand Up @@ -445,7 +445,7 @@ public virtual void FromCsv(string csv) {
row[i] = IFieldData.FromString(s.ToString(), FieldDefinitions[i].Value, this);
i = 0;
s.Length = 0;
list.Add(row);
FieldDatas.Add(row);
row = new IFieldData[row.Length];
break;
case -1:
Expand All @@ -454,8 +454,6 @@ public virtual void FromCsv(string csv) {
s.Append(char.ConvertFromUtf32(chr));
break;
}

FieldDatas = list;
}

/// <summary>
Expand Down
87 changes: 46 additions & 41 deletions LibDat2/DatDefinitions.json
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@
"IsManuallyCasted": "bool",
"Input_StatKeys": "array|foreignrow",
"Output_StatKeys": "array|foreignrow",
"MinionActiveSkillTypes": "array|i32",
"MinionActiveSkillTypes": "array|foreignrow",
"Flag2": "bool",
"Flag3": "bool",
"Keys0": "array|foreignrow",
Expand Down Expand Up @@ -123,7 +123,7 @@
"Unknown3": "i32",
"Unknown4": "bool",
"Unknown5": "i32",
"Unknown6": "i32"
"Unknown6": "array|foreignrow"
},
"AddBuffToTargetVarieties": {
"Unknown0": "foreignrow",
Expand Down Expand Up @@ -359,13 +359,11 @@
"ArchnemesisMods": {
"Mod": "foreignrow",
"Unknown0": "i32",
"Unknown1": "i32",
"Unknown2": "i32",
"Unknown3": "i32",
"Name": "string",
"Visual": "foreignrow",
"Unknown4": "i32",
"DisplayColors": "array|string"
"TextStyles": "array|string",
"Unknown1": "bool",
"Unknown2": "bool"
},
"ArchnemesisModVisuals": {
"Id": "string",
Expand Down Expand Up @@ -1352,7 +1350,8 @@
"Unknown9": "foreignrow",
"Unknown10": "foreignrow",
"Flag7": "bool",
"Flag8": "bool"
"Flag8": "bool",
"Key6": "foreignrow"
},
"ClientLeagueAction": {
"Id": "string",
Expand Down Expand Up @@ -3835,11 +3834,11 @@
"MapConnections": {
"MapPinsKey0": "foreignrow",
"MapPinsKey1": "foreignrow",
"Unknown0": "i32",
"Unknown0": "foreignrow",
"RestrictedAreaText": "string",
"Unknown1": "i32",
"Unknown2": "i32",
"Unknown3": "i32",
"Unknown1": "foreignrow",
"Unknown2": "foreignrow",
"Unknown3": "foreignrow",
"Unknown4": "array|foreignrow"
},
"MapCreationInformation": {
Expand Down Expand Up @@ -4347,7 +4346,9 @@
"ModsKey2": "foreignrow",
"Unknown0": "bool"
},
"ModFamily": {},
"ModFamily": {
"Id": "string"
},
"ModGenerationType": {},
"Mods": {
"Id": "string",
Expand All @@ -4361,7 +4362,7 @@
"Domain": "i32",
"Name": "string",
"GenerationType": "i32",
"CorrectGroup": "string",
"CorrectGroup": "array|foreignrow",
"Stat1Min": "i32",
"Stat1Max": "i32",
"Stat2Min": "i32",
Expand Down Expand Up @@ -4602,7 +4603,8 @@
"MonsterPacksKey": "foreignrow",
"Unknown0": "bool",
"Unknown1": "i32",
"MonsterVarietiesKey": "foreignrow"
"MonsterVarietiesKey": "foreignrow",
"Unknown2": "string"
},
"MonsterPacks": {
"Id": "string",
Expand Down Expand Up @@ -4800,7 +4802,8 @@
"Unknown37": "i32",
"Unknown38": "array|string",
"Unknown39": "i32",
"Unknown40": "i32"
"Unknown40": "i32",
"Unknown41": "i32"
},
"MonsterVarietiesArtVariations": {
"Id": "string",
Expand Down Expand Up @@ -4931,8 +4934,8 @@
"OggFiles": "array|string",
"Data1": "array|i32",
"VolumePercentage": "i32",
"Unknown0": "i32",
"Unknown1": "i32",
"Unknown0": "foreignrow",
"Unknown1": "foreignrow",
"Unknown2": "i32",
"Unknown3": "i32"
},
Expand Down Expand Up @@ -4976,11 +4979,11 @@
"Unknown3": "i32",
"Unknown4": "i32",
"Unknown5": "i32",
"Unknown6": "i32",
"Unknown7": "bool",
"Unknown8": "bool",
"Unknown9": "array|i32",
"Unknown10": "array|i32",
"Unknown6": "i32",
"Unknown11": "i32",
"Unknown12": "bool",
"Unknown13": "bool"
Expand Down Expand Up @@ -5013,7 +5016,7 @@
"Id": "string",
"Name": "string",
"Metadata": "string",
"Unknown0": "i32",
"Unknown0": "foreignrow",
"NPCMasterKey": "foreignrow",
"ShortName": "string",
"Unknown1": "i32",
Expand Down Expand Up @@ -5044,14 +5047,14 @@
"NPCKey": "foreignrow",
"Unknown0": "i32",
"DialogueOption": "string",
"Data0": "array|u32",
"Data1": "array|u32",
"Data2": "array|u32",
"Data0": "array|foreignrow",
"Data1": "array|foreignrow",
"Data2": "array|foreignrow",
"Script": "string",
"Unknown1": "i32",
"Unknown1": "foreignrow",
"NPCTalkCategoryKey": "foreignrow",
"QuestRewardOffersKey": "foreignrow",
"Unknown3": "i32",
"Unknown3": "foreignrow",
"NPCTextAudioKeys": "array|foreignrow",
"Script2": "string",
"Flag0": "bool",
Expand Down Expand Up @@ -5434,17 +5437,17 @@
"QuestRewardOffers": {
"Id": "string",
"QuestKey": "foreignrow",
"Unknown0": "i32",
"Unknown0": "foreignrow",
"Unknown1": "i32",
"ClientStringsKey0": "foreignrow",
"RewardWindowTake": "foreignrow",
"Flag0": "bool",
"Flag1": "bool",
"ClientStringsKey1": "foreignrow"
"RewardWindowTitle": "foreignrow"
},
"QuestRewards": {
"RewardOffer": "foreignrow",
"Unknown0": "i32",
"Character": "foreignrow",
"Character": "array|foreignrow",
"Reward": "foreignrow",
"RewardLevel": "i32",
"Unknown1": "foreignrow",
Expand All @@ -5466,8 +5469,8 @@
"QuestStates": {
"QuestKey": "foreignrow",
"Unknown0": "i32",
"QuestStates": "array|u32",
"Data0": "array|u32",
"QuestStates": "array|foreignrow",
"Data0": "array|foreignrow",
"Text": "string",
"Flag0": "bool",
"Message": "string",
Expand All @@ -5484,7 +5487,7 @@
"Key2": "foreignrow"
},
"QuestStaticRewards": {
"Unknown0": "i32",
"Unknown0": "foreignrow",
"Unknown1": "i32",
"StatsKeys": "array|foreignrow",
"StatValues": "array|i32",
Expand All @@ -5505,13 +5508,15 @@
"Races": {
"Id": "string",
"Unknown0": "array|foreignrow",
"Unknown2": "string",
"Unknown1": "string",
"Url": "string",
"Unknown2": "i32",
"Unknown3": "i32",
"Unknown4": "i32",
"Unknown5": "array|foreignrow",
"Unknown4": "array|foreignrow",
"Flag0": "bool",
"Unknown7": "i32"
"Unknown5": "i32",
"Unknown6": "array|i32",
"Unknown7": "array|foreignrow"
},
"RaceTimes": {
"RacesKey": "foreignrow",
Expand Down Expand Up @@ -6497,7 +6502,7 @@
"Text": "string",
"AcceptText": "string",
"RejectText": "string",
"Unknown0": "i32"
"Unknown0": "foreignrow"
},
"WarbandsGraph": {
"WorldAreasKey": "foreignrow",
Expand Down Expand Up @@ -6639,14 +6644,14 @@
"Unknown1": "i32",
"Unknown2": "i32",
"LoadingScreen_DDSFile": "string",
"Unknown3": "i32",
"Data0": "array|i32",
"Unknown3": "foreignrow",
"Data0": "array|foreignrow",
"Unknown4": "i32",
"TopologiesKeys": "array|foreignrow",
"ParentTown_WorldAreasKey": "row",
"Unknown5": "i32",
"Unknown6": "i32",
"Unknown7": "i32",
"Unknown6": "foreignrow",
"Unknown7": "foreignrow",
"Bosses_MonsterVarietiesKeys": "array|foreignrow",
"Monsters_MonsterVarietiesKeys": "array|foreignrow",
"SpawnWeight_TagsKeys": "array|foreignrow",
Expand Down
Loading

0 comments on commit cdafc01

Please sign in to comment.