From 4633478c3ba981d18419b7edc608b05d656822f0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Barnab=C3=A1s=20Cz=C3=A9m=C3=A1n?= <trabarni@gmail.com>
Date: Thu, 8 Oct 2015 14:21:49 +0200
Subject: [PATCH] settings.set -> settings.ini

---
 Minesweeper2D.cbp |  1 +
 makefile          |  2 +-
 settings.c        | 23 ++++++++++++++---------
 settings.ini      |  7 +++++++
 settings.set      |  3 ---
 5 files changed, 23 insertions(+), 13 deletions(-)
 create mode 100644 settings.ini
 delete mode 100644 settings.set

diff --git a/Minesweeper2D.cbp b/Minesweeper2D.cbp
index 12a6b0d..b219b42 100644
--- a/Minesweeper2D.cbp
+++ b/Minesweeper2D.cbp
@@ -48,6 +48,7 @@
 			<Add option="-lSDL_gfx" />
 			<Add option="-lSDL_image" />
 			<Add option="-lSDL_ttf" />
+			<Add option="-liniparser" />
 		</Linker>
 		<Unit filename="button.c">
 			<Option compilerVar="CC" />
diff --git a/makefile b/makefile
index 209c9b3..3160080 100644
--- a/makefile
+++ b/makefile
@@ -4,7 +4,7 @@ HEADERS = button.h colors.h enums.h field.h game.h highscore.h init.h input.h la
 
 CC = gcc
 CFLAGS = -O2 `sdl-config --cflags`
-LDFLAGS = -lm `sdl-config --libs` -lSDL_ttf  -lSDL_gfx -lSDL_image -lSDL_mixer
+LDFLAGS = -lm `sdl-config --libs` -lSDL_ttf  -lSDL_gfx -lSDL_image -lSDL_mixer -liniparser
 
 .PHONY: all clean
 
diff --git a/settings.c b/settings.c
index 73faa42..dd6a573 100644
--- a/settings.c
+++ b/settings.c
@@ -14,18 +14,23 @@
     You should have received a copy of the GNU General Public License
     along with Minesweeper2D.  If not, see <http://www.gnu.org/licenses/>.*/
 #include "settings.h"
+#include "iniparser.h"
 
+#include <assert.h>
 
 void loadSettings(Settings* settings){
-    FILE* fp;
-    fp=fopen("settings.set","rt");
-    if(fp==NULL){
-        printf("[Error]Cannot load settings!");
-        exit(1);
+    dictionary* data = iniparser_load("settings.ini");
+
+    if(data == NULL){
+        fprintf(stderr, "[ERROR] Cannot load settings.");
+        assert(-1);
     }else{
-        fscanf(fp,"RESOLUTION: %d x %d\n",&settings->resolution.width,&settings->resolution.height);
-        fscanf(fp,"COLORDEPTH: %d\n",&settings->mode.bpp);
-        fscanf(fp,"ORIENTATION: %x\n",&settings->mode.state);
+         settings->resolution.width = iniparser_getint(data, "Resolution:width", 600);
+         settings->resolution.height = iniparser_getint(data, "Resolution:height", 600);
+         settings->mode.bpp = iniparser_getint(data, "Mode:depth", 32);
+         settings->mode.state = iniparser_getint(data, "Mode:state", WINDOWED);
     }
-    fclose(fp);
+
+
+    iniparser_freedict(data);
 }
diff --git a/settings.ini b/settings.ini
new file mode 100644
index 0000000..c16e3a8
--- /dev/null
+++ b/settings.ini
@@ -0,0 +1,7 @@
+[Resolution]
+width = 800
+heigh = 600
+
+[Mode]
+depth = 32
+state = 0x10000000
\ No newline at end of file
diff --git a/settings.set b/settings.set
deleted file mode 100644
index ed7f60a..0000000
--- a/settings.set
+++ /dev/null
@@ -1,3 +0,0 @@
-RESOLUTION: 800 x 600
-COLORDEPTH: 32
-ORIENTATION: 0x10000000
-- 
GitLab