@@ -12,6 +12,8 @@ namespace Maple2.File.Parser;
1212
1313public class TableParser {
1414 private readonly M2dReader xmlReader ;
15+ private readonly XmlSerializer featureSettingSerializer ;
16+ private readonly XmlSerializer featureSerializer ;
1517 private readonly XmlSerializer nameSerializer ;
1618 private readonly XmlSerializer bankTypeSerializer ;
1719 private readonly XmlSerializer chatStickerSerializer ;
@@ -112,6 +114,8 @@ public class TableParser {
112114
113115 public TableParser ( M2dReader xmlReader , string language ) {
114116 this . xmlReader = xmlReader ;
117+ featureSettingSerializer = new XmlSerializer ( typeof ( FeatureSetting ) ) ;
118+ featureSerializer = new XmlSerializer ( typeof ( FeatureRoot ) ) ;
115119 nameSerializer = new XmlSerializer ( typeof ( StringMapping ) ) ;
116120 bankTypeSerializer = new XmlSerializer ( typeof ( BankTypeRoot ) ) ;
117121 chatStickerSerializer = new XmlSerializer ( typeof ( ChatStickerRoot ) ) ;
@@ -219,6 +223,26 @@ public TableParser(M2dReader xmlReader, string language) {
219223 // };
220224 }
221225
226+ public IEnumerable < ( string Type , Setting Setting ) > ParseFeatureSetting ( ) {
227+ XmlReader reader = xmlReader . GetXmlReader ( xmlReader . GetEntry ( "table/feature_setting.xml" ) ) ;
228+ var data = featureSettingSerializer . Deserialize ( reader ) as FeatureSetting ;
229+ Debug . Assert ( data != null ) ;
230+
231+ foreach ( Setting setting in data . setting ) {
232+ yield return ( setting . type , setting ) ;
233+ }
234+ }
235+
236+ public IEnumerable < ( string Name , Feature Feature ) > ParseFeature ( ) {
237+ XmlReader reader = xmlReader . GetXmlReader ( xmlReader . GetEntry ( "table/feature.xml" ) ) ;
238+ var data = featureSerializer . Deserialize ( reader ) as FeatureRoot ;
239+ Debug . Assert ( data != null ) ;
240+
241+ foreach ( Feature feature in data . feature ) {
242+ yield return ( feature . name , feature ) ;
243+ }
244+ }
245+
222246 public IEnumerable < ( int Id , BankType BankType ) > ParseBankType ( ) {
223247 XmlReader reader = xmlReader . GetXmlReader ( xmlReader . GetEntry ( "table/banktype.xml" ) ) ;
224248 var data = bankTypeSerializer . Deserialize ( reader ) as BankTypeRoot ;
0 commit comments