private void loadGameObjectType(IGameObjectType type) {
		if (!gameObjectTypeCache.containsKey(type)) {
			try {
				// type was not loaded yet -> load it
				Ini iniFile = new Ini(this.getClass().getResource("/" + type.getIniFilePath()));
				Section section = iniFile.get(type.getIniFileSection());

				if (section != null) {
					// and store its default values in the unitTypeCache
					Map<String, String> attributeKeyValueList = new HashMap<String, String>();
					gameObjectTypeCache.put(type, attributeKeyValueList);

					for (Entry<String, String> entry : section.entrySet()) {
						String gameObjectAttribute = entry.getKey();
						String gameObjectDefaultValue = entry.getValue();
						attributeKeyValueList.put(gameObjectAttribute, gameObjectDefaultValue);

						if (LOTDConstants.GAME_OBJECT_KEY_UNIT_LIFE_MAXIMUM.equals(gameObjectAttribute))
							attributeKeyValueList.put(LOTDConstants.GAME_OBJECT_KEY_UNIT_LIFE_CURRENT, gameObjectDefaultValue);
						else if (LOTDConstants.GAME_OBJECT_KEY_UNIT_ACTION_POINTS_MAXIMUM.equals(gameObjectAttribute))
							attributeKeyValueList.put(LOTDConstants.GAME_OBJECT_KEY_UNIT_ACTION_POINTS_CURRENT, gameObjectDefaultValue);
					}
				} else
					throw new Exception("Could not find section '" + type.getIniFileSection() + "' within .ini file '" + type.getIniFilePath() + "'");
			} catch (Exception e) {
				LOGGER.fatal("Error when trying to load gameObjectType " + type, e);
			}
		}
	}