diff --git a/src/engine.c b/src/engine.c
index 96519c2..a24893e 100644
--- a/src/engine.c
+++ b/src/engine.c
@@ -22,9 +22,13 @@ along with this program. If not, see .
#include
#include
+#ifdef __HAIKU__
+#include
+#else
#ifndef _WIN32
#include
#endif
+#endif
#include "SDL.h"
@@ -211,6 +215,17 @@ void engine_setupConfigDirectory()
if ((mkdir(dir) != 0) && (errno != EEXIST))
engine_showError(2, dir);
+ snprintf(engine.configDirectory, PATH_MAX, "%s/", dir);
+#elif __HAIKU__
+ subdir = "starfighter";
+
+ char path[PATH_MAX];
+ if (find_directory(B_USER_SETTINGS_DIRECTORY, 0, false, path, PATH_MAX) == B_OK)
+ snprintf(dir, PATH_MAX, "%s/%s", path, subdir);
+
+ if ((mkdir(dir, S_IRWXU|S_IRWXG|S_IROTH|S_IXOTH) != 0) && (errno != EEXIST))
+ engine_showError(2, dir);
+
snprintf(engine.configDirectory, PATH_MAX, "%s/", dir);
#else
subdir = "starfighter";