public void loadSettings() {
        GameApplication.engineLogger.info("Loading game settings...");
        GameDataFile data = new GameDataFile(settingsFile, true);

        if (data.isReady) {
            Map<String, String> content = data.getData();

            isParticlesActivated = Boolean.valueOf(content.get("particles"));
            useVsync = Boolean.valueOf(content.get("vsync"));
            useGameCursor = Boolean.valueOf(content.get("cursor"));
            showFPS = Boolean.valueOf(content.get("fps"));
            content.remove("particles");
            content.remove("vsync");
            content.remove("cursor");
            content.remove("fps");
            for (Map.Entry entry : content.entrySet()) {
                GameApplication.engineLogger.info("Reading additional setting : " + String.valueOf(entry.getKey()));
                String s = (String) entry.getValue();
                Object obj;
                try {
                    obj = Integer.parseInt(s);
                } catch (Exception e) {
                    GameApplication.engineLogger.info("No int found trying boolean");
                    try {
                        if (s.equals("false") || s.equals("true")) {
                            obj = Boolean.parseBoolean(s);
                        } else {
                            throw new RuntimeException();
                        }
                    } catch (Exception e1) {
                        GameApplication.engineLogger.info("No boolean found trying float");
                        try {
                            obj = Float.parseFloat(s);
                        } catch (Exception e2) {
                            GameApplication.engineLogger.info("No float found trying double");
                            try {
                                obj = Double.parseDouble(s);
                            } catch (Exception e3) {
                                GameApplication.engineLogger.info("No double found trying byte");
                                try {
                                    obj = Byte.parseByte(s);
                                } catch (Exception e4) {
                                    GameApplication.engineLogger.info("No byte found ; defaulting to string");
                                    obj = s;
                                }
                            }
                        }
                    }
                }
                settingsMap.put((String) entry.getKey(), obj);
            }
        }
        GameApplication.engineLogger.info("Game settings loaded.");
    }