Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion C7/Animations/AnimationManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ public AnimationManager(AudioStreamPlayer audioPlayer) {
public IniData getINIData(string pathKey) {
if (!iniDatas.TryGetValue(pathKey, out IniData tr)) {
string fullPath = Util.Civ3MediaPath(pathKey);
tr = new FileIniDataParser().ReadFile(fullPath);
tr = C7Engine.Util.GetFileIniDataParser().ReadFile(fullPath);
iniDatas.Add(pathKey, tr);
}
return tr;
Expand Down
9 changes: 3 additions & 6 deletions C7Engine/C7Settings.cs
Original file line number Diff line number Diff line change
@@ -1,17 +1,14 @@
using System.IO;
using IniParser.Model;
using IniParser.Exceptions;

namespace C7Engine {
using IniParser;
using IniParser.Model;

public class C7Settings {
private const string SETTINGS_FILE_NAME = "C7.ini";
public static IniData settings;

public static void LoadSettings() {
try {
settings = new FileIniDataParser().ReadFile(SETTINGS_FILE_NAME);
settings = Util.GetFileIniDataParser().ReadFile(SETTINGS_FILE_NAME);
} catch (ParsingException) {
//First run. The file doesn't exist. That's okay. We'll use sensible defaults.
settings = new IniData();
Expand All @@ -20,7 +17,7 @@ public static void LoadSettings() {
}

public static void SaveSettings() {
new FileIniDataParser().WriteFile(SETTINGS_FILE_NAME, settings);
Util.GetFileIniDataParser().WriteFile(SETTINGS_FILE_NAME, settings);
}

public static void SetValue(string section, string key, string value) {
Expand Down
22 changes: 22 additions & 0 deletions C7Engine/Util.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
using IniParser;

namespace C7Engine;

public static class Util {
private static FileIniDataParser fileIniDataParser;

public static FileIniDataParser GetFileIniDataParser() {
if (fileIniDataParser != null) return fileIniDataParser;

FileIniDataParser parser = new FileIniDataParser();
// The default behaviour of the parser is to throw an exception
// when it finds duplicate keys (e.x. Tank.ini has 'DEAD' two times in [Sound Effects])
// so, we want to allow it so that it doesn't crash
parser.Parser.Configuration.AllowDuplicateKeys = true;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you leave a comment explaining why we would set these?

// but we only want to keep the last value we encounter
parser.Parser.Configuration.OverrideDuplicateKeys = true;

fileIniDataParser = parser;
return parser;
}
}
139 changes: 0 additions & 139 deletions ConvertCiv3Media/Civ3UnitSprite.cs

This file was deleted.