0
0
Fork 0
haikuports/games-engines/residualvm/patches/residualvm-0.3.1.patchset

150 lines
4.4 KiB
Plaintext

From b74acc13daf1c8591cce1ddb06d0e60b48d48166 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Sat, 27 Oct 2018 18:51:08 +1000
Subject: Use find_directory
diff --git a/backends/platform/sdl/posix/posix.cpp b/backends/platform/sdl/posix/posix.cpp
index abae7b1..5094bb7 100644
--- a/backends/platform/sdl/posix/posix.cpp
+++ b/backends/platform/sdl/posix/posix.cpp
@@ -49,6 +49,10 @@
#include <sys/wait.h>
#include <unistd.h>
+#ifdef __HAIKU__
+#include <FindDirectory.h>
+#endif
+
OSystem_POSIX::OSystem_POSIX(Common::String baseConfigName)
:
_baseConfigName(baseConfigName) {
@@ -93,6 +97,15 @@ Common::String OSystem_POSIX::getDefaultConfigFileName() {
Common::String prefix;
#ifdef MACOSX
prefix = getenv("HOME");
+#elif defined(__HAIKU__)
+ static char settingsDir[PATH_MAX] = "";
+ if (find_directory(B_USER_SETTINGS_DIRECTORY, -1, false, settingsDir, sizeof(settingsDir)) == B_OK) {
+ prefix = settingsDir;
+ prefix += "/ResidualVM";
+ } else {
+ prefix = "/boot/home/config/settings/ResidualVM";
+ }
+ mkdir(prefix.c_str(), 0755);
#elif !defined(SAMSUNGTV)
const char *envVar;
// Our old configuration file path for POSIX systems was ~/.residualvmrc.
@@ -180,6 +193,14 @@ Common::WriteStream *OSystem_POSIX::createLogFile() {
#elif SAMSUNGTV
prefix = nullptr;
logFile = "/mtd_ram";
+#elif defined(__HAIKU__)
+ static char cacheDir[PATH_MAX] = "";
+ if (find_directory(B_USER_CACHE_DIRECTORY, -1, false, cacheDir, sizeof(cacheDir)) == B_OK) {
+ prefix = cacheDir;
+ } else {
+ prefix = "/boot/home/config/cache";
+ }
+ logFile = "ResidualVM/logs";
#else
// On POSIX systems we follow the XDG Base Directory Specification for
// where to store files. The version we based our code upon can be found
@@ -268,6 +289,11 @@ bool OSystem_POSIX::displayLogFile() {
bool OSystem_POSIX::openUrl(const Common::String &url) {
// inspired by Qt's "qdesktopservices_x11.cpp"
+#ifdef __HAIKU__
+ if (launchBrowser("open", url))
+ return true;
+#endif
+
// try "standards"
if (launchBrowser("xdg-open", url))
return true;
diff --git a/backends/platform/sdl/sdl.cpp b/backends/platform/sdl/sdl.cpp
index 415eb36..130f02a 100644
--- a/backends/platform/sdl/sdl.cpp
+++ b/backends/platform/sdl/sdl.cpp
@@ -426,8 +426,11 @@ void OSystem_SDL::launcherInitSize(uint w, uint h) {
Graphics::RendererType matchingRendererType = Graphics::getBestMatchingAvailableRendererType(desiredRendererType);
bool fullscreen = ConfMan.getBool("fullscreen");
-
+#ifdef __HAIKU__
+ setupScreen(w, h, fullscreen, false);
+#else
setupScreen(w, h, fullscreen, matchingRendererType != Graphics::kRendererTypeTinyGL);
+#endif
}
// End of ResidualVM specific code
diff --git a/backends/saves/posix/posix-saves.cpp b/backends/saves/posix/posix-saves.cpp
index 84be67b..0d8fd58 100644
--- a/backends/saves/posix/posix-saves.cpp
+++ b/backends/saves/posix/posix-saves.cpp
@@ -44,6 +44,10 @@
#include <errno.h>
#include <sys/stat.h>
+#ifdef __HAIKU__
+#include <FindDirectory.h>
+#endif
+
POSIXSaveFileManager::POSIXSaveFileManager() {
// Register default savepath.
#if defined(SAMSUNGTV)
@@ -59,7 +63,16 @@ POSIXSaveFileManager::POSIXSaveFileManager() {
ConfMan.registerDefault("savepath", savePath);
}
-
+#elif defined(__HAIKU__)
+ static char settingsDir[PATH_MAX] = "";
+ if (find_directory(B_USER_SETTINGS_DIRECTORY, -1, false, settingsDir, sizeof(settingsDir)) == B_OK) {
+ savePath = settingsDir;
+ savePath += "/ResidualVM/Savegames";
+ } else {
+ savePath = "/boot/home/config/settings/ResidualVM/Savegames";
+ }
+ mkdir(savePath.c_str(), 0755);
+ ConfMan.registerDefault("savepath", savePath);
#else
const char *envVar;
--
2.19.1
From d8b6419feb7fb54603d72981bced53c8ddceede5 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Sat, 27 Oct 2018 20:55:34 +1000
Subject: Fix build for x86_gcc2
diff --git a/configure b/configure
index 7e0c930..be18bc2 100755
--- a/configure
+++ b/configure
@@ -5343,6 +5343,9 @@ $_config_h_data
/* Data types */
typedef unsigned $type_1_byte byte;
+#ifdef __HAIKU__
+#include <SupportDefs.h>
+#else
typedef unsigned int uint;
typedef unsigned $type_1_byte uint8;
typedef unsigned $type_2_byte uint16;
@@ -5350,6 +5353,7 @@ typedef unsigned $type_4_byte uint32;
typedef signed $type_1_byte int8;
typedef signed $type_2_byte int16;
typedef signed $type_4_byte int32;
+#endif
EOF
if test -n "$_def_64bit_type_unsigned" ; then
--
2.19.1