mirror of
https://codeberg.org/guix/guix.git
synced 2025-10-02 02:15:12 +00:00
gnu: Add serious-sam-classic.
* gnu/packages/games.scm: Add serious-sam-classic. * gnu/packages/patches/serious-sam-classic-engine-patch-paths.patch: Add patch. * gnu/local.mk: Register it. Change-Id: I65e830c9760294e567808d580e3083586d50c972 Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
This commit is contained in:
parent
1a37374599
commit
b4f567645a
3 changed files with 634 additions and 0 deletions
|
@ -2303,6 +2303,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/scons-test-environment.patch \
|
%D%/packages/patches/scons-test-environment.patch \
|
||||||
%D%/packages/patches/scotch-cmake-remove-metis.patch \
|
%D%/packages/patches/scotch-cmake-remove-metis.patch \
|
||||||
%D%/packages/patches/screen-hurd-path-max.patch \
|
%D%/packages/patches/screen-hurd-path-max.patch \
|
||||||
|
%D%/packages/patches/serious-sam-classic-engine-patch-paths.patch \
|
||||||
%D%/packages/patches/scsh-nonstring-search-path.patch \
|
%D%/packages/patches/scsh-nonstring-search-path.patch \
|
||||||
%D%/packages/patches/seed-webkit.patch \
|
%D%/packages/patches/seed-webkit.patch \
|
||||||
%D%/packages/patches/sendgmail-accept-ignored-gsuite-flag.patch \
|
%D%/packages/patches/sendgmail-accept-ignored-gsuite-flag.patch \
|
||||||
|
|
|
@ -3212,6 +3212,57 @@ and defeat them with your bubbles!")
|
||||||
;; GPL2+ is for code, CC0 is for art.
|
;; GPL2+ is for code, CC0 is for art.
|
||||||
(license (list license:gpl2+ license:cc0))))
|
(license (list license:gpl2+ license:cc0))))
|
||||||
|
|
||||||
|
(define-public serious-sam-classic
|
||||||
|
(package
|
||||||
|
(name "serious-sam-classic")
|
||||||
|
(version "1.10.7")
|
||||||
|
(source
|
||||||
|
(origin
|
||||||
|
(method git-fetch)
|
||||||
|
(uri (git-reference
|
||||||
|
(url "https://github.com/tx00100xt/SeriousSamClassic")
|
||||||
|
(commit version)))
|
||||||
|
(sha256
|
||||||
|
(base32 "1s1mbj2qpaxdrx0pfhdyk3v1vh7f2dp33w2i5ifpgphkchdx61jg"))
|
||||||
|
(file-name (git-file-name name version))
|
||||||
|
(modules '((guix build utils)))
|
||||||
|
(patches (search-patches "serious-sam-classic-engine-patch-paths.patch"))))
|
||||||
|
(build-system cmake-build-system)
|
||||||
|
(arguments
|
||||||
|
(list
|
||||||
|
#:tests? #f ; no upstream tests
|
||||||
|
#:configure-flags
|
||||||
|
#~(list (string-append "-DCMAKE_INSTALL_PREFIX:PATH="
|
||||||
|
#$output))
|
||||||
|
#:phases
|
||||||
|
#~(modify-phases %standard-phases
|
||||||
|
(add-after 'unpack 'fix-cmake
|
||||||
|
(lambda _
|
||||||
|
(substitute* (list "CMakeLists.txt"
|
||||||
|
"SamTFE/Sources/CMakeLists.txt"
|
||||||
|
"SamTSE/Sources/CMakeLists.txt")
|
||||||
|
(("\"Install to systems directories\" Off")
|
||||||
|
"\"Install to systems directories\" On")
|
||||||
|
(("march=native") "mtune=generic")
|
||||||
|
(("CMAKE_SKIP_RPATH ON") "CMAKE_SKIP_RPATH OFF")
|
||||||
|
(("/usr") #$output)
|
||||||
|
(("lib64") "lib"))))
|
||||||
|
(add-after 'fix-cmake 'fix-paths
|
||||||
|
(lambda _
|
||||||
|
(substitute* (list "SamTFE/Sources/Engine/Engine.cpp"
|
||||||
|
"SamTSE/Sources/Engine/Engine.cpp")
|
||||||
|
(("@OUTPUT_DIR@") #$output)))))))
|
||||||
|
(inputs (list sdl2 libvorbis))
|
||||||
|
(native-inputs (list flex bison nasm imagemagick))
|
||||||
|
(home-page "https://github.com/tx00100xt/SeriousSamClassic")
|
||||||
|
(synopsis "SeriousSam engine and Serious Sam: TFE and TSE")
|
||||||
|
(description
|
||||||
|
"This is an open-source port of the Serious Engine from
|
||||||
|
Serious Sam: The First Encounter and Serious Sam: The Second Encounter.
|
||||||
|
To run, you must put your official game data, @code{Levels} and @code{Help} in
|
||||||
|
@code{~/.local/share/Serious-Engine/{serioussam,serioussamse}/gamedata/}.}")
|
||||||
|
(license license:gpl2)))
|
||||||
|
|
||||||
(define-public solarus
|
(define-public solarus
|
||||||
(package
|
(package
|
||||||
(name "solarus")
|
(name "solarus")
|
||||||
|
|
|
@ -0,0 +1,582 @@
|
||||||
|
diff --git a/SamTFE/Sources/Engine/Base/Stream.cpp b/SamTFE/Sources/Engine/Base/Stream.cpp
|
||||||
|
index f30213a..8f2aa82 100644
|
||||||
|
--- a/SamTFE/Sources/Engine/Base/Stream.cpp
|
||||||
|
+++ b/SamTFE/Sources/Engine/Base/Stream.cpp
|
||||||
|
@@ -78,7 +78,9 @@ ULONG _ulVirtuallyAllocatedSpaceTotal = 0;
|
||||||
|
// global string with application path (utf-8)
|
||||||
|
CTFileName _fnmApplicationPath;
|
||||||
|
CTFileName _fnmApplicationPathTMP; // home dir or application path
|
||||||
|
-
|
||||||
|
+#ifdef PLATFORM_UNIX
|
||||||
|
+CTFileName _fnmAdditionalDirPath; // additional search path
|
||||||
|
+#endif
|
||||||
|
// global string with filename of the started application
|
||||||
|
CTFileName _fnmApplicationExe;
|
||||||
|
// global string with user-specific writable directory.
|
||||||
|
@@ -220,6 +222,17 @@ void InitStreams(void)
|
||||||
|
}
|
||||||
|
delete files;
|
||||||
|
|
||||||
|
+#ifdef PLATFORM_UNIX
|
||||||
|
+ // additional search path
|
||||||
|
+ files = _pFileSystem->FindFiles(_fnmAdditionalDirPath, "*.gro");
|
||||||
|
+ max = files->Count();
|
||||||
|
+ for (i = 0; i < max; i++) {
|
||||||
|
+ UNZIPAddArchive( _fnmAdditionalDirPath + ((*files)[i]) );
|
||||||
|
+ }
|
||||||
|
+ UNZIPAddArchive( _fnmApplicationPath + "share/serioussam/SE1_10b.gro");
|
||||||
|
+ delete files;
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
// if there is a mod active
|
||||||
|
if (_fnmMod!="") {
|
||||||
|
// for each group file in mod directory
|
||||||
|
@@ -1655,19 +1668,20 @@ INDEX ExpandFilePath(ULONG ulType, const CTFileName &fnmFile, CTFileName &fnmExp
|
||||||
|
|
||||||
|
int _savegame = strncmp((const char *)fnmFile, (const char *) "SaveGame", (size_t) 8 );
|
||||||
|
int _usercontrols = strncmp((const char *)fnmFile, (const char *) "Controls", (size_t) 8 );
|
||||||
|
- int _persistentsym = strncmp((const char *)fnmFile, (const char *) "Scripts/PersistentSymbols.ini", (size_t) 29 );
|
||||||
|
- int _gamesgms = strncmp((const char *)fnmFile, (const char *) "Data/SeriousSam.gms", (size_t) 19 );
|
||||||
|
- int _comsolehistory = strncmp((const char *)fnmFile, (const char *) "Temp/ConsoleHistory.txt", (size_t) 23 );
|
||||||
|
- int _userdemos = strncmp((const char *)fnmFile, (const char *) "Demos/Demo", (size_t) 10 );
|
||||||
|
+ int _persistentsym = strncmp((const char *)fnmFile, (const char *) "Scripts", (size_t) 7 );
|
||||||
|
+ int _gamesgms = strncmp((const char *)fnmFile, (const char *) "Data", (size_t) 4 );
|
||||||
|
+ int _comsolehistory = strncmp((const char *)fnmFile, (const char *) "Temp", (size_t) 4 );
|
||||||
|
+ int _userdemos = strncmp((const char *)fnmFile, (const char *) "Demo", (size_t) 4 );
|
||||||
|
int _playersplr = strncmp((const char *)fnmFile, (const char *) "Players", (size_t) 7 );
|
||||||
|
int _screenshots = strncmp((const char *)fnmFile, (const char *) "ScreenShots", (size_t) 11 );
|
||||||
|
int _levelsvis = strncmp((const char *)fnmFile, (const char *) "Levels", (size_t) 6 );
|
||||||
|
-
|
||||||
|
- //CPrintF("ExpandFilePath: %s\n",(const char *) fnmFile);
|
||||||
|
+ int _help = strncmp((const char *)fnmFile, (const char *) "Help", (size_t) 4 );
|
||||||
|
|
||||||
|
if(( _savegame == 0 || _persistentsym == 0 || _gamesgms == 0 ||
|
||||||
|
_comsolehistory == 0 || _userdemos == 0 || _playersplr == 0 || _screenshots == 0) && ( _bPortableVersion == FALSE)) {
|
||||||
|
_fnmApplicationPathTMP = _fnmUserDir;
|
||||||
|
+ } else if (_help == 0) {
|
||||||
|
+ _fnmApplicationPathTMP = _fnmAdditionalDirPath;
|
||||||
|
} else {
|
||||||
|
_fnmApplicationPathTMP = _fnmApplicationPath;
|
||||||
|
}
|
||||||
|
@@ -1675,6 +1689,8 @@ INDEX ExpandFilePath(ULONG ulType, const CTFileName &fnmFile, CTFileName &fnmExp
|
||||||
|
if( _levelsvis == 0 && _bPortableVersion == FALSE) {
|
||||||
|
if (fnmFileAbsolute.FileExt()==".vis") {
|
||||||
|
_fnmApplicationPathTMP = _fnmUserDir;
|
||||||
|
+ } else {
|
||||||
|
+ _fnmApplicationPathTMP = _fnmAdditionalDirPath;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/SamTFE/Sources/Engine/Base/Stream.h b/SamTFE/Sources/Engine/Base/Stream.h
|
||||||
|
index 8ff3de6..1e5aeae 100644
|
||||||
|
--- a/SamTFE/Sources/Engine/Base/Stream.h
|
||||||
|
+++ b/SamTFE/Sources/Engine/Base/Stream.h
|
||||||
|
@@ -391,6 +391,10 @@ ENGINE_API void MakeDirList(
|
||||||
|
|
||||||
|
// global string with application path
|
||||||
|
ENGINE_API extern CTFileName _fnmApplicationPath;
|
||||||
|
+#ifdef PLATFORM_UNIX
|
||||||
|
+// global string with additional search path
|
||||||
|
+ENGINE_API extern CTFileName _fnmAdditionalDirPath;
|
||||||
|
+#endif
|
||||||
|
// global string with user-specific writable directory.
|
||||||
|
ENGINE_API extern CTFileName _fnmUserDir;
|
||||||
|
// global string with current MOD path
|
||||||
|
diff --git a/SamTFE/Sources/Engine/Engine.cpp b/SamTFE/Sources/Engine/Engine.cpp
|
||||||
|
index e6f7c4f..2b6cda5 100644
|
||||||
|
--- a/SamTFE/Sources/Engine/Engine.cpp
|
||||||
|
+++ b/SamTFE/Sources/Engine/Engine.cpp
|
||||||
|
@@ -115,6 +115,7 @@ static CTString sys_strModExt = "";
|
||||||
|
// Path vars
|
||||||
|
static INDEX sys_iGameBits = 0;
|
||||||
|
ENGINE_API INDEX sys_iSysPath = 0;
|
||||||
|
+ENGINE_API INDEX sys_iGameDataNotFound = 0;
|
||||||
|
|
||||||
|
// Entities Adjesters
|
||||||
|
ENGINE_API FLOAT _fPlayerFOVAdjuster = 1.0f;
|
||||||
|
@@ -676,10 +677,12 @@ ENGINE_API void SE_InitEngine(CTString strGameID)
|
||||||
|
_fnmApplicationPath = CTString(strDirPath);
|
||||||
|
_fnmApplicationExe = CTString(strExePath);
|
||||||
|
#ifdef PLATFORM_UNIX
|
||||||
|
+ //_fnmAdditionalDirPath = "/usr/share/" + strGameID + "/";
|
||||||
|
// rcg01012002 calculate user dir.
|
||||||
|
char buf[MAX_PATH];
|
||||||
|
_pFileSystem->GetUserDirectory(buf, sizeof (buf));
|
||||||
|
_fnmUserDir = CTString(buf);
|
||||||
|
+ _fnmAdditionalDirPath = _fnmUserDir + "/gamedata/";
|
||||||
|
#endif
|
||||||
|
try {
|
||||||
|
_fnmApplicationExe.RemoveApplicationPath_t();
|
||||||
|
@@ -742,147 +745,17 @@ ENGINE_API void SE_InitEngine(CTString strGameID)
|
||||||
|
CPrintF(TRANSV("Running %d-bit version\n"), sys_iGameBits);
|
||||||
|
|
||||||
|
#ifdef PLATFORM_UNIX
|
||||||
|
-#if defined(__OpenBSD__) || defined(__FreeBSD__)
|
||||||
|
- int _isystempath = strncmp((const char *)strExePath, (const char *) "/usr/local/bin/", (size_t) 15 );
|
||||||
|
-#elif defined(__NetBSD__)
|
||||||
|
- int _isystempath = strncmp((const char *)strExePath, (const char *) "/usr/pkg/bin/", (size_t) 13 );
|
||||||
|
-#else
|
||||||
|
- int _isystempath = strncmp((const char *)strExePath, (const char *) "/usr/bin/", (size_t) 9 );
|
||||||
|
-#endif
|
||||||
|
- if( _isystempath == 0 ) {
|
||||||
|
- sys_iSysPath = 1; // using system path
|
||||||
|
- } else {
|
||||||
|
- sys_iSysPath = 0; // using standarted path
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- // get library path for mods
|
||||||
|
- _fnmModLibPath = "";
|
||||||
|
-#if defined(__OpenBSD__) || defined(__FreeBSD__)
|
||||||
|
- if( sys_iSysPath == 1 ) {
|
||||||
|
- _fnmModLibPath = "/usr/local/lib/" + strGameID + "/";
|
||||||
|
-#elif defined(__NetBSD__)
|
||||||
|
- if( sys_iSysPath == 1 ) {
|
||||||
|
- _fnmModLibPath = "/usr/pkg/lib/" + strGameID + "/";
|
||||||
|
-#else
|
||||||
|
- if( sys_iSysPath == 1 && sys_iGameBits == 64 && _pFileSystem->IsDirectory((const char *) "/usr/lib/aarch64-linux-gnu/" + strGameID)) {
|
||||||
|
- _fnmModLibPath = "/usr/lib/aarch64-linux-gnu/" + strGameID + "/";
|
||||||
|
- } else if( sys_iSysPath == 1 && sys_iGameBits == 32 && _pFileSystem->IsDirectory((const char *) "/usr/lib/arm-linux-gnueabihf/" + strGameID)) {
|
||||||
|
- _fnmModLibPath = "/usr/lib/arm-linux-gnueabihf/" + strGameID + "/";
|
||||||
|
- } else if( sys_iSysPath == 1 && sys_iGameBits == 64 && _pFileSystem->IsDirectory((const char *) "/usr/lib/riscv64-linux-gnu/" + strGameID)) {
|
||||||
|
- _fnmModLibPath = "/usr/lib/riscv64-linux-gnu/" + strGameID + "/";
|
||||||
|
- } else if( sys_iSysPath == 1 && sys_iGameBits == 64 && _pFileSystem->IsDirectory((const char *) "/usr/lib/s390x-linux-gnu/" + strGameID)) {
|
||||||
|
- _fnmModLibPath = "/usr/lib/s390x-linux-gnu/" + strGameID + "/";
|
||||||
|
- } else if( sys_iSysPath == 1 && sys_iGameBits == 64 && _pFileSystem->IsDirectory((const char *) "/usr/lib/powerpc64-linux-gnu/" + strGameID)) {
|
||||||
|
- _fnmModLibPath = "/usr/lib/powerpc64-linux-gnu/" + strGameID + "/";
|
||||||
|
- } else if( sys_iSysPath == 1 && sys_iGameBits == 64 && _pFileSystem->IsDirectory((const char *) "/usr/lib/x86_64-linux-gnu/" + strGameID)) {
|
||||||
|
- _fnmModLibPath = "/usr/lib/x86_64-linux-gnu/" + strGameID + "/";
|
||||||
|
- } else if( sys_iSysPath == 1 && sys_iGameBits == 32 && _pFileSystem->IsDirectory((const char *) "/usr/lib/i386-linux-gnu/" + strGameID)) {
|
||||||
|
- _fnmModLibPath = "/usr/lib/i386-linux-gnu/" + strGameID + "/";
|
||||||
|
- } else if( sys_iSysPath == 1 && sys_iGameBits == 64 && _pFileSystem->IsDirectory((const char *) "/usr/lib64/" + strGameID)) {
|
||||||
|
- _fnmModLibPath = "/usr/lib64/" + strGameID + "/";
|
||||||
|
- } else if( sys_iSysPath == 1 && sys_iGameBits == 32 && _pFileSystem->IsDirectory((const char *) "/usr/lib//" + strGameID)) {
|
||||||
|
- _fnmModLibPath = "/usr/lib/" + strGameID + "/";
|
||||||
|
-#endif
|
||||||
|
- } else if( sys_iSysPath == 0 ) {
|
||||||
|
- _fnmModLibPath = _fnmApplicationPath;
|
||||||
|
- } else {
|
||||||
|
- CPrintF(TRANSV("ERROR: Game libraries not ound!\n"));
|
||||||
|
- FatalError(TRANSV("Failed to search game libraries installed!\nPlease reinstall the game.\nSee the log for more details.\nGame log is here: ~/.local/share/Serious-Engine/%s/SeriousSam.log"),(const char *) strGameID);
|
||||||
|
- }
|
||||||
|
|
||||||
|
- if( sys_iSysPath == 1 ) { // search game data
|
||||||
|
- CTFileName _fnm_usr_TestFile, _fnm_local_TestFile, _fnm_home_TestFile;
|
||||||
|
- CTString _fnmUserDataPath, _fnm_TestFile;
|
||||||
|
- int _fd;
|
||||||
|
-
|
||||||
|
- if( access((const char *) _fnmUserDir+_strLogFile+".cfg", F_OK) == 0 ) {
|
||||||
|
- _fd = open((const char *) _fnmUserDir+_strLogFile+".cfg", O_RDONLY,S_IRUSR);
|
||||||
|
- size_t x = read(_fd, _path, 2048);
|
||||||
|
- _fnmUserDataPath = (CTString)_path + "/";
|
||||||
|
- close(_fd);
|
||||||
|
- CPrintF(TRANSV("Testing home path: %s\n"), (const char *) _fnmUserDataPath);
|
||||||
|
- } else {
|
||||||
|
- _fnmUserDataPath = "";
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- // set testing files
|
||||||
|
- if( strGameID == "serioussamse") {
|
||||||
|
- _fnm_TestFile = "SE1_00_Levels.gro";
|
||||||
|
- } else {
|
||||||
|
- _fnm_TestFile = "1_00_music.gro";
|
||||||
|
- }
|
||||||
|
- CPrintF(TRANSV("Testing file: %s\n"), (const char *) _fnm_TestFile);
|
||||||
|
-#if defined(__OpenBSD__) || defined(__FreeBSD__)
|
||||||
|
- _fnm_usr_TestFile = "/usr/local/share/" + strGameID + "/" + _fnm_TestFile; // data in usr
|
||||||
|
-#elif defined(__NetBSD__)
|
||||||
|
- _fnm_usr_TestFile = "/usr/pkg/share/" + strGameID + "/" + _fnm_TestFile; // data in usr
|
||||||
|
-#else
|
||||||
|
- _fnm_usr_TestFile = "/usr/share/" + strGameID + "/" + _fnm_TestFile; // data in usr
|
||||||
|
-#endif
|
||||||
|
- _fnm_local_TestFile = _fnmUserDir + _fnm_TestFile; // data in home .local
|
||||||
|
- _fnm_home_TestFile = (const char *)_fnmUserDataPath + _fnm_TestFile;
|
||||||
|
- // test
|
||||||
|
- if( access((const char *) _fnm_home_TestFile, F_OK) != 0 ) {
|
||||||
|
- CPrintF(TRANSV("Testing system path: %s\n"), (const char *) _fnm_usr_TestFile);
|
||||||
|
- CPrintF(TRANSV("Testing local path: %s\n"), (const char *) _fnm_local_TestFile);
|
||||||
|
- if( access((const char *) _fnm_usr_TestFile, F_OK) == 0 ) {
|
||||||
|
-#if defined(__OpenBSD__) || defined(__FreeBSD__)
|
||||||
|
- _fnmApplicationPath = "/usr/local/share/" + strGameID + "/"; // all game data
|
||||||
|
-#elif defined(__NetBSD__)
|
||||||
|
- _fnmApplicationPath = "/usr/pkg/share/" + strGameID + "/"; // all game data
|
||||||
|
-#else
|
||||||
|
- _fnmApplicationPath = "/usr/share/" + strGameID + "/"; // all game data
|
||||||
|
-#endif
|
||||||
|
- CPrintF(TRANSV("Found usr path: %s\n"), (const char *) _fnmUserDataPath);
|
||||||
|
- } else if( access((const char *) _fnm_local_TestFile, F_OK) == 0 ) {
|
||||||
|
- _fnmApplicationPath = _fnmUserDir; // all game data
|
||||||
|
- CPrintF(TRANSV("Found local path: %s\n"), (const char *) _fnmUserDataPath);
|
||||||
|
- } else {
|
||||||
|
- // search in home dir
|
||||||
|
- // BOOL YesNoMessage(const char *strFormat, ...)
|
||||||
|
-#if defined(__OpenBSD__) || defined(__FreeBSD__)
|
||||||
|
- InfoMessage(TRANS("No game files were found in /usr/local/share/%s/\n or %s\nThe home directory will be searched."),(const char *) strGameID,(const char *) _fnmUserDir);
|
||||||
|
-#elif defined(__NetBSD__)
|
||||||
|
- InfoMessage(TRANS("No game files were found in /usr/pkg/share/%s/\n or %s\nThe home directory will be searched."),(const char *) strGameID,(const char *) _fnmUserDir);
|
||||||
|
-#else
|
||||||
|
- InfoMessage(TRANS("No game files were found in /usr/share/%s/\n or %s\nThe home directory will be searched."),(const char *) strGameID,(const char *) _fnmUserDir);
|
||||||
|
-#endif
|
||||||
|
- struct passwd *pw = getpwuid(getuid());
|
||||||
|
- const char *_homedir = pw->pw_dir;
|
||||||
|
- _testfiledone = 0;
|
||||||
|
- _list_dir(_homedir, 0, strGameID);
|
||||||
|
- CTString _PATH;
|
||||||
|
- _PATH = (CTString)_path;
|
||||||
|
- _fnmApplicationPath = (CTFileName) _PATH + "/";
|
||||||
|
- _fnm_home_TestFile = (CTFileName) _PATH + "/" + _fnm_TestFile;
|
||||||
|
- if( access((const char *) _fnm_home_TestFile, F_OK) == 0 ) {
|
||||||
|
- //_fnmApplicationPath = (CTFileName) _PATH + "/";
|
||||||
|
- CPrintF(TRANSV("Found home path: %s\n"), (const char *) _fnm_home_TestFile);
|
||||||
|
- _fd = open((const char *) _fnmUserDir+_strLogFile+".cfg", O_CREAT | O_WRONLY, S_IRUSR | S_IWUSR);
|
||||||
|
- size_t x = write(_fd, _path, 2048);
|
||||||
|
- close(_fd);
|
||||||
|
- } else {
|
||||||
|
- CPrintF(TRANSV("ERROR: Game data not ound!\n"));
|
||||||
|
- _fnmUserDataPath = "";
|
||||||
|
-#if defined(__OpenBSD__) || defined(__FreeBSD__)
|
||||||
|
- FatalError(TRANSV("Failed to search game data!\nPlease put the game data in the paths:\n/usr/local/share/%s/\n or %s\n or somewhere in your home directory\nSee the log for more details.\nGame log is here: ~/.local/share/Serious-Engine/%s/SeriousSam.log"),(const char *) strGameID,(const char *) _fnmUserDir,(const char *) strGameID);
|
||||||
|
-#elif defined(__NetBSD__)
|
||||||
|
- FatalError(TRANSV("Failed to search game data!\nPlease put the game data in the paths:\n/usr/pkg/share/%s/\n or %s\n or somewhere in your home directory\nSee the log for more details.\nGame log is here: ~/.local/share/Serious-Engine/%s/SeriousSam.log"),(const char *) strGameID,(const char *) _fnmUserDir,(const char *) strGameID);
|
||||||
|
-#else
|
||||||
|
- FatalError(TRANSV("Failed to search game data!\nPlease put the game data in the paths:\n/usr/share/%s/\n or %s\n or somewhere in your home directory\nSee the log for more details.\nGame log is here: ~/.local/share/Serious-Engine/%s/SeriousSam.log"),(const char *) strGameID,(const char *) _fnmUserDir,(const char *) strGameID);
|
||||||
|
-#endif
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- } else {
|
||||||
|
- CPrintF(TRANSV("Found path: %s\n"), (const char *) _fnmUserDataPath);
|
||||||
|
- _fnmApplicationPath = _fnmUserDataPath; // all game data
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
+ // using system path
|
||||||
|
+ sys_iSysPath = 1;
|
||||||
|
+ // library path for mods
|
||||||
|
+ _fnmModLibPath = _fnmApplicationPath + "lib/" + strGameID + "/";
|
||||||
|
|
||||||
|
// print info on the started application
|
||||||
|
CPrintF(TRANSV("Executable: %s\n"), (const char *) strExePath);
|
||||||
|
CPrintF(TRANSV("Assumed engine data directory: %s\n"), (const char *) _fnmApplicationPath);
|
||||||
|
CPrintF(TRANSV("Assumed mods library directory: %s\n"), (const char *) _fnmModLibPath);
|
||||||
|
+ CPrintF(TRANSV("Assumed additional data directory: %s\n"), (const char *) _fnmAdditionalDirPath);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
CPrintF("\n");
|
||||||
|
diff --git a/SamTFE/Sources/Engine/Engine.h b/SamTFE/Sources/Engine/Engine.h
|
||||||
|
index 8307f70..6ba88a4 100644
|
||||||
|
--- a/SamTFE/Sources/Engine/Engine.h
|
||||||
|
+++ b/SamTFE/Sources/Engine/Engine.h
|
||||||
|
@@ -207,6 +207,7 @@ extern ENGINE_API BOOL _bWorldEditorApp; // is this world edtior app
|
||||||
|
extern ENGINE_API CTString _strLogFile;
|
||||||
|
extern ENGINE_API CTFileName _fnmModLibPath;
|
||||||
|
extern ENGINE_API INDEX sys_iSysPath;
|
||||||
|
+extern ENGINE_API INDEX sys_iGameDataNotFound;
|
||||||
|
#ifdef PLATFORM_WIN32
|
||||||
|
//
|
||||||
|
extern ENGINE_API FLOAT _fPlayerFOVAdjuster;
|
||||||
|
diff --git a/SamTSE/Sources/Engine/Base/Stream.cpp b/SamTSE/Sources/Engine/Base/Stream.cpp
|
||||||
|
index f30213a..9a2ffaf 100644
|
||||||
|
--- a/SamTSE/Sources/Engine/Base/Stream.cpp
|
||||||
|
+++ b/SamTSE/Sources/Engine/Base/Stream.cpp
|
||||||
|
@@ -78,7 +78,9 @@ ULONG _ulVirtuallyAllocatedSpaceTotal = 0;
|
||||||
|
// global string with application path (utf-8)
|
||||||
|
CTFileName _fnmApplicationPath;
|
||||||
|
CTFileName _fnmApplicationPathTMP; // home dir or application path
|
||||||
|
-
|
||||||
|
+#ifdef PLATFORM_UNIX
|
||||||
|
+CTFileName _fnmAdditionalDirPath; // additional search path
|
||||||
|
+#endif
|
||||||
|
// global string with filename of the started application
|
||||||
|
CTFileName _fnmApplicationExe;
|
||||||
|
// global string with user-specific writable directory.
|
||||||
|
@@ -194,15 +196,16 @@ void InitStreams(void)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// find eventual extension for the mod's dlls
|
||||||
|
- _strModExt = "";
|
||||||
|
+ _strModExt = "MP";
|
||||||
|
// DG: apparently both ModEXT.txt and ModExt.txt exist in the wild.
|
||||||
|
+/*
|
||||||
|
CTFileName tmp;
|
||||||
|
if(ExpandFilePath(EFP_READ, CTString("ModEXT.txt"), tmp) != EFP_NONE) {
|
||||||
|
LoadStringVar(CTString("ModEXT.txt"), _strModExt);
|
||||||
|
} else {
|
||||||
|
LoadStringVar(CTString("ModExt.txt"), _strModExt);
|
||||||
|
}
|
||||||
|
-
|
||||||
|
+*/
|
||||||
|
|
||||||
|
CPrintF(TRANSV("Loading group files...\n"));
|
||||||
|
|
||||||
|
@@ -220,6 +223,17 @@ void InitStreams(void)
|
||||||
|
}
|
||||||
|
delete files;
|
||||||
|
|
||||||
|
+#ifdef PLATFORM_UNIX
|
||||||
|
+ // additional search path
|
||||||
|
+ files = _pFileSystem->FindFiles(_fnmAdditionalDirPath, "*.gro");
|
||||||
|
+ max = files->Count();
|
||||||
|
+ for (i = 0; i < max; i++) {
|
||||||
|
+ UNZIPAddArchive( _fnmAdditionalDirPath + ((*files)[i]) );
|
||||||
|
+ }
|
||||||
|
+ UNZIPAddArchive( _fnmApplicationPath + "share/serioussamse/SE1_10b.gro");
|
||||||
|
+ delete files;
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
// if there is a mod active
|
||||||
|
if (_fnmMod!="") {
|
||||||
|
// for each group file in mod directory
|
||||||
|
@@ -1655,19 +1669,20 @@ INDEX ExpandFilePath(ULONG ulType, const CTFileName &fnmFile, CTFileName &fnmExp
|
||||||
|
|
||||||
|
int _savegame = strncmp((const char *)fnmFile, (const char *) "SaveGame", (size_t) 8 );
|
||||||
|
int _usercontrols = strncmp((const char *)fnmFile, (const char *) "Controls", (size_t) 8 );
|
||||||
|
- int _persistentsym = strncmp((const char *)fnmFile, (const char *) "Scripts/PersistentSymbols.ini", (size_t) 29 );
|
||||||
|
- int _gamesgms = strncmp((const char *)fnmFile, (const char *) "Data/SeriousSam.gms", (size_t) 19 );
|
||||||
|
- int _comsolehistory = strncmp((const char *)fnmFile, (const char *) "Temp/ConsoleHistory.txt", (size_t) 23 );
|
||||||
|
- int _userdemos = strncmp((const char *)fnmFile, (const char *) "Demos/Demo", (size_t) 10 );
|
||||||
|
+ int _persistentsym = strncmp((const char *)fnmFile, (const char *) "Scripts", (size_t) 7 );
|
||||||
|
+ int _gamesgms = strncmp((const char *)fnmFile, (const char *) "Data", (size_t) 4 );
|
||||||
|
+ int _comsolehistory = strncmp((const char *)fnmFile, (const char *) "Temp", (size_t) 4 );
|
||||||
|
+ int _userdemos = strncmp((const char *)fnmFile, (const char *) "Demo", (size_t) 4 );
|
||||||
|
int _playersplr = strncmp((const char *)fnmFile, (const char *) "Players", (size_t) 7 );
|
||||||
|
int _screenshots = strncmp((const char *)fnmFile, (const char *) "ScreenShots", (size_t) 11 );
|
||||||
|
int _levelsvis = strncmp((const char *)fnmFile, (const char *) "Levels", (size_t) 6 );
|
||||||
|
-
|
||||||
|
- //CPrintF("ExpandFilePath: %s\n",(const char *) fnmFile);
|
||||||
|
+ int _help = strncmp((const char *)fnmFile, (const char *) "Help", (size_t) 4 );
|
||||||
|
|
||||||
|
if(( _savegame == 0 || _persistentsym == 0 || _gamesgms == 0 ||
|
||||||
|
_comsolehistory == 0 || _userdemos == 0 || _playersplr == 0 || _screenshots == 0) && ( _bPortableVersion == FALSE)) {
|
||||||
|
_fnmApplicationPathTMP = _fnmUserDir;
|
||||||
|
+ } else if (_help == 0) {
|
||||||
|
+ _fnmApplicationPathTMP = _fnmAdditionalDirPath;
|
||||||
|
} else {
|
||||||
|
_fnmApplicationPathTMP = _fnmApplicationPath;
|
||||||
|
}
|
||||||
|
@@ -1675,6 +1690,8 @@ INDEX ExpandFilePath(ULONG ulType, const CTFileName &fnmFile, CTFileName &fnmExp
|
||||||
|
if( _levelsvis == 0 && _bPortableVersion == FALSE) {
|
||||||
|
if (fnmFileAbsolute.FileExt()==".vis") {
|
||||||
|
_fnmApplicationPathTMP = _fnmUserDir;
|
||||||
|
+ } else {
|
||||||
|
+ _fnmApplicationPathTMP = _fnmAdditionalDirPath;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
diff --git a/SamTSE/Sources/Engine/Base/Stream.h b/SamTSE/Sources/Engine/Base/Stream.h
|
||||||
|
index 8ff3de6..1e5aeae 100644
|
||||||
|
--- a/SamTSE/Sources/Engine/Base/Stream.h
|
||||||
|
+++ b/SamTSE/Sources/Engine/Base/Stream.h
|
||||||
|
@@ -391,6 +391,10 @@ ENGINE_API void MakeDirList(
|
||||||
|
|
||||||
|
// global string with application path
|
||||||
|
ENGINE_API extern CTFileName _fnmApplicationPath;
|
||||||
|
+#ifdef PLATFORM_UNIX
|
||||||
|
+// global string with additional search path
|
||||||
|
+ENGINE_API extern CTFileName _fnmAdditionalDirPath;
|
||||||
|
+#endif
|
||||||
|
// global string with user-specific writable directory.
|
||||||
|
ENGINE_API extern CTFileName _fnmUserDir;
|
||||||
|
// global string with current MOD path
|
||||||
|
diff --git a/SamTSE/Sources/Engine/Engine.cpp b/SamTSE/Sources/Engine/Engine.cpp
|
||||||
|
index e6f7c4f..97baa59 100644
|
||||||
|
--- a/SamTSE/Sources/Engine/Engine.cpp
|
||||||
|
+++ b/SamTSE/Sources/Engine/Engine.cpp
|
||||||
|
@@ -110,11 +110,12 @@ static INDEX sys_iHDDMisc = 0;
|
||||||
|
|
||||||
|
// MOD info
|
||||||
|
static CTString sys_strModName = "";
|
||||||
|
-static CTString sys_strModExt = "";
|
||||||
|
+static CTString sys_strModExt = "MP";
|
||||||
|
|
||||||
|
// Path vars
|
||||||
|
static INDEX sys_iGameBits = 0;
|
||||||
|
ENGINE_API INDEX sys_iSysPath = 0;
|
||||||
|
+ENGINE_API INDEX sys_iGameDataNotFound = 0;
|
||||||
|
|
||||||
|
// Entities Adjesters
|
||||||
|
ENGINE_API FLOAT _fPlayerFOVAdjuster = 1.0f;
|
||||||
|
@@ -676,10 +677,12 @@ ENGINE_API void SE_InitEngine(CTString strGameID)
|
||||||
|
_fnmApplicationPath = CTString(strDirPath);
|
||||||
|
_fnmApplicationExe = CTString(strExePath);
|
||||||
|
#ifdef PLATFORM_UNIX
|
||||||
|
+ //_fnmAdditionalDirPath = "/usr/share/" + strGameID + "/";
|
||||||
|
// rcg01012002 calculate user dir.
|
||||||
|
char buf[MAX_PATH];
|
||||||
|
_pFileSystem->GetUserDirectory(buf, sizeof (buf));
|
||||||
|
_fnmUserDir = CTString(buf);
|
||||||
|
+ _fnmAdditionalDirPath = _fnmUserDir + "/gamedata/";
|
||||||
|
#endif
|
||||||
|
try {
|
||||||
|
_fnmApplicationExe.RemoveApplicationPath_t();
|
||||||
|
@@ -742,147 +745,16 @@ ENGINE_API void SE_InitEngine(CTString strGameID)
|
||||||
|
CPrintF(TRANSV("Running %d-bit version\n"), sys_iGameBits);
|
||||||
|
|
||||||
|
#ifdef PLATFORM_UNIX
|
||||||
|
-#if defined(__OpenBSD__) || defined(__FreeBSD__)
|
||||||
|
- int _isystempath = strncmp((const char *)strExePath, (const char *) "/usr/local/bin/", (size_t) 15 );
|
||||||
|
-#elif defined(__NetBSD__)
|
||||||
|
- int _isystempath = strncmp((const char *)strExePath, (const char *) "/usr/pkg/bin/", (size_t) 13 );
|
||||||
|
-#else
|
||||||
|
- int _isystempath = strncmp((const char *)strExePath, (const char *) "/usr/bin/", (size_t) 9 );
|
||||||
|
-#endif
|
||||||
|
- if( _isystempath == 0 ) {
|
||||||
|
- sys_iSysPath = 1; // using system path
|
||||||
|
- } else {
|
||||||
|
- sys_iSysPath = 0; // using standarted path
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- // get library path for mods
|
||||||
|
- _fnmModLibPath = "";
|
||||||
|
-#if defined(__OpenBSD__) || defined(__FreeBSD__)
|
||||||
|
- if( sys_iSysPath == 1 ) {
|
||||||
|
- _fnmModLibPath = "/usr/local/lib/" + strGameID + "/";
|
||||||
|
-#elif defined(__NetBSD__)
|
||||||
|
- if( sys_iSysPath == 1 ) {
|
||||||
|
- _fnmModLibPath = "/usr/pkg/lib/" + strGameID + "/";
|
||||||
|
-#else
|
||||||
|
- if( sys_iSysPath == 1 && sys_iGameBits == 64 && _pFileSystem->IsDirectory((const char *) "/usr/lib/aarch64-linux-gnu/" + strGameID)) {
|
||||||
|
- _fnmModLibPath = "/usr/lib/aarch64-linux-gnu/" + strGameID + "/";
|
||||||
|
- } else if( sys_iSysPath == 1 && sys_iGameBits == 32 && _pFileSystem->IsDirectory((const char *) "/usr/lib/arm-linux-gnueabihf/" + strGameID)) {
|
||||||
|
- _fnmModLibPath = "/usr/lib/arm-linux-gnueabihf/" + strGameID + "/";
|
||||||
|
- } else if( sys_iSysPath == 1 && sys_iGameBits == 64 && _pFileSystem->IsDirectory((const char *) "/usr/lib/riscv64-linux-gnu/" + strGameID)) {
|
||||||
|
- _fnmModLibPath = "/usr/lib/riscv64-linux-gnu/" + strGameID + "/";
|
||||||
|
- } else if( sys_iSysPath == 1 && sys_iGameBits == 64 && _pFileSystem->IsDirectory((const char *) "/usr/lib/s390x-linux-gnu/" + strGameID)) {
|
||||||
|
- _fnmModLibPath = "/usr/lib/s390x-linux-gnu/" + strGameID + "/";
|
||||||
|
- } else if( sys_iSysPath == 1 && sys_iGameBits == 64 && _pFileSystem->IsDirectory((const char *) "/usr/lib/powerpc64-linux-gnu/" + strGameID)) {
|
||||||
|
- _fnmModLibPath = "/usr/lib/powerpc64-linux-gnu/" + strGameID + "/";
|
||||||
|
- } else if( sys_iSysPath == 1 && sys_iGameBits == 64 && _pFileSystem->IsDirectory((const char *) "/usr/lib/x86_64-linux-gnu/" + strGameID)) {
|
||||||
|
- _fnmModLibPath = "/usr/lib/x86_64-linux-gnu/" + strGameID + "/";
|
||||||
|
- } else if( sys_iSysPath == 1 && sys_iGameBits == 32 && _pFileSystem->IsDirectory((const char *) "/usr/lib/i386-linux-gnu/" + strGameID)) {
|
||||||
|
- _fnmModLibPath = "/usr/lib/i386-linux-gnu/" + strGameID + "/";
|
||||||
|
- } else if( sys_iSysPath == 1 && sys_iGameBits == 64 && _pFileSystem->IsDirectory((const char *) "/usr/lib64/" + strGameID)) {
|
||||||
|
- _fnmModLibPath = "/usr/lib64/" + strGameID + "/";
|
||||||
|
- } else if( sys_iSysPath == 1 && sys_iGameBits == 32 && _pFileSystem->IsDirectory((const char *) "/usr/lib//" + strGameID)) {
|
||||||
|
- _fnmModLibPath = "/usr/lib/" + strGameID + "/";
|
||||||
|
-#endif
|
||||||
|
- } else if( sys_iSysPath == 0 ) {
|
||||||
|
- _fnmModLibPath = _fnmApplicationPath;
|
||||||
|
- } else {
|
||||||
|
- CPrintF(TRANSV("ERROR: Game libraries not ound!\n"));
|
||||||
|
- FatalError(TRANSV("Failed to search game libraries installed!\nPlease reinstall the game.\nSee the log for more details.\nGame log is here: ~/.local/share/Serious-Engine/%s/SeriousSam.log"),(const char *) strGameID);
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if( sys_iSysPath == 1 ) { // search game data
|
||||||
|
- CTFileName _fnm_usr_TestFile, _fnm_local_TestFile, _fnm_home_TestFile;
|
||||||
|
- CTString _fnmUserDataPath, _fnm_TestFile;
|
||||||
|
- int _fd;
|
||||||
|
-
|
||||||
|
- if( access((const char *) _fnmUserDir+_strLogFile+".cfg", F_OK) == 0 ) {
|
||||||
|
- _fd = open((const char *) _fnmUserDir+_strLogFile+".cfg", O_RDONLY,S_IRUSR);
|
||||||
|
- size_t x = read(_fd, _path, 2048);
|
||||||
|
- _fnmUserDataPath = (CTString)_path + "/";
|
||||||
|
- close(_fd);
|
||||||
|
- CPrintF(TRANSV("Testing home path: %s\n"), (const char *) _fnmUserDataPath);
|
||||||
|
- } else {
|
||||||
|
- _fnmUserDataPath = "";
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- // set testing files
|
||||||
|
- if( strGameID == "serioussamse") {
|
||||||
|
- _fnm_TestFile = "SE1_00_Levels.gro";
|
||||||
|
- } else {
|
||||||
|
- _fnm_TestFile = "1_00_music.gro";
|
||||||
|
- }
|
||||||
|
- CPrintF(TRANSV("Testing file: %s\n"), (const char *) _fnm_TestFile);
|
||||||
|
-#if defined(__OpenBSD__) || defined(__FreeBSD__)
|
||||||
|
- _fnm_usr_TestFile = "/usr/local/share/" + strGameID + "/" + _fnm_TestFile; // data in usr
|
||||||
|
-#elif defined(__NetBSD__)
|
||||||
|
- _fnm_usr_TestFile = "/usr/pkg/share/" + strGameID + "/" + _fnm_TestFile; // data in usr
|
||||||
|
-#else
|
||||||
|
- _fnm_usr_TestFile = "/usr/share/" + strGameID + "/" + _fnm_TestFile; // data in usr
|
||||||
|
-#endif
|
||||||
|
- _fnm_local_TestFile = _fnmUserDir + _fnm_TestFile; // data in home .local
|
||||||
|
- _fnm_home_TestFile = (const char *)_fnmUserDataPath + _fnm_TestFile;
|
||||||
|
- // test
|
||||||
|
- if( access((const char *) _fnm_home_TestFile, F_OK) != 0 ) {
|
||||||
|
- CPrintF(TRANSV("Testing system path: %s\n"), (const char *) _fnm_usr_TestFile);
|
||||||
|
- CPrintF(TRANSV("Testing local path: %s\n"), (const char *) _fnm_local_TestFile);
|
||||||
|
- if( access((const char *) _fnm_usr_TestFile, F_OK) == 0 ) {
|
||||||
|
-#if defined(__OpenBSD__) || defined(__FreeBSD__)
|
||||||
|
- _fnmApplicationPath = "/usr/local/share/" + strGameID + "/"; // all game data
|
||||||
|
-#elif defined(__NetBSD__)
|
||||||
|
- _fnmApplicationPath = "/usr/pkg/share/" + strGameID + "/"; // all game data
|
||||||
|
-#else
|
||||||
|
- _fnmApplicationPath = "/usr/share/" + strGameID + "/"; // all game data
|
||||||
|
-#endif
|
||||||
|
- CPrintF(TRANSV("Found usr path: %s\n"), (const char *) _fnmUserDataPath);
|
||||||
|
- } else if( access((const char *) _fnm_local_TestFile, F_OK) == 0 ) {
|
||||||
|
- _fnmApplicationPath = _fnmUserDir; // all game data
|
||||||
|
- CPrintF(TRANSV("Found local path: %s\n"), (const char *) _fnmUserDataPath);
|
||||||
|
- } else {
|
||||||
|
- // search in home dir
|
||||||
|
- // BOOL YesNoMessage(const char *strFormat, ...)
|
||||||
|
-#if defined(__OpenBSD__) || defined(__FreeBSD__)
|
||||||
|
- InfoMessage(TRANS("No game files were found in /usr/local/share/%s/\n or %s\nThe home directory will be searched."),(const char *) strGameID,(const char *) _fnmUserDir);
|
||||||
|
-#elif defined(__NetBSD__)
|
||||||
|
- InfoMessage(TRANS("No game files were found in /usr/pkg/share/%s/\n or %s\nThe home directory will be searched."),(const char *) strGameID,(const char *) _fnmUserDir);
|
||||||
|
-#else
|
||||||
|
- InfoMessage(TRANS("No game files were found in /usr/share/%s/\n or %s\nThe home directory will be searched."),(const char *) strGameID,(const char *) _fnmUserDir);
|
||||||
|
-#endif
|
||||||
|
- struct passwd *pw = getpwuid(getuid());
|
||||||
|
- const char *_homedir = pw->pw_dir;
|
||||||
|
- _testfiledone = 0;
|
||||||
|
- _list_dir(_homedir, 0, strGameID);
|
||||||
|
- CTString _PATH;
|
||||||
|
- _PATH = (CTString)_path;
|
||||||
|
- _fnmApplicationPath = (CTFileName) _PATH + "/";
|
||||||
|
- _fnm_home_TestFile = (CTFileName) _PATH + "/" + _fnm_TestFile;
|
||||||
|
- if( access((const char *) _fnm_home_TestFile, F_OK) == 0 ) {
|
||||||
|
- //_fnmApplicationPath = (CTFileName) _PATH + "/";
|
||||||
|
- CPrintF(TRANSV("Found home path: %s\n"), (const char *) _fnm_home_TestFile);
|
||||||
|
- _fd = open((const char *) _fnmUserDir+_strLogFile+".cfg", O_CREAT | O_WRONLY, S_IRUSR | S_IWUSR);
|
||||||
|
- size_t x = write(_fd, _path, 2048);
|
||||||
|
- close(_fd);
|
||||||
|
- } else {
|
||||||
|
- CPrintF(TRANSV("ERROR: Game data not ound!\n"));
|
||||||
|
- _fnmUserDataPath = "";
|
||||||
|
-#if defined(__OpenBSD__) || defined(__FreeBSD__)
|
||||||
|
- FatalError(TRANSV("Failed to search game data!\nPlease put the game data in the paths:\n/usr/local/share/%s/\n or %s\n or somewhere in your home directory\nSee the log for more details.\nGame log is here: ~/.local/share/Serious-Engine/%s/SeriousSam.log"),(const char *) strGameID,(const char *) _fnmUserDir,(const char *) strGameID);
|
||||||
|
-#elif defined(__NetBSD__)
|
||||||
|
- FatalError(TRANSV("Failed to search game data!\nPlease put the game data in the paths:\n/usr/pkg/share/%s/\n or %s\n or somewhere in your home directory\nSee the log for more details.\nGame log is here: ~/.local/share/Serious-Engine/%s/SeriousSam.log"),(const char *) strGameID,(const char *) _fnmUserDir,(const char *) strGameID);
|
||||||
|
-#else
|
||||||
|
- FatalError(TRANSV("Failed to search game data!\nPlease put the game data in the paths:\n/usr/share/%s/\n or %s\n or somewhere in your home directory\nSee the log for more details.\nGame log is here: ~/.local/share/Serious-Engine/%s/SeriousSam.log"),(const char *) strGameID,(const char *) _fnmUserDir,(const char *) strGameID);
|
||||||
|
-#endif
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- } else {
|
||||||
|
- CPrintF(TRANSV("Found path: %s\n"), (const char *) _fnmUserDataPath);
|
||||||
|
- _fnmApplicationPath = _fnmUserDataPath; // all game data
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
|
||||||
|
+ // using system path
|
||||||
|
+ sys_iSysPath = 1;
|
||||||
|
+ // library path for mods
|
||||||
|
+ _fnmModLibPath = _fnmApplicationPath + "lib/" + strGameID + "/";
|
||||||
|
// print info on the started application
|
||||||
|
CPrintF(TRANSV("Executable: %s\n"), (const char *) strExePath);
|
||||||
|
CPrintF(TRANSV("Assumed engine data directory: %s\n"), (const char *) _fnmApplicationPath);
|
||||||
|
CPrintF(TRANSV("Assumed mods library directory: %s\n"), (const char *) _fnmModLibPath);
|
||||||
|
+ CPrintF(TRANSV("Assumed additional data directory: %s\n"), (const char *) _fnmAdditionalDirPath);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
CPrintF("\n");
|
||||||
|
@@ -969,7 +841,7 @@ ENGINE_API void SE_InitEngine(CTString strGameID)
|
||||||
|
InitStreams();
|
||||||
|
// keep mod name in sys cvar
|
||||||
|
sys_strModName = _strModName;
|
||||||
|
- sys_strModExt = _strModExt;
|
||||||
|
+ sys_strModExt = "MP";
|
||||||
|
|
||||||
|
// checking of crc
|
||||||
|
#if 0
|
||||||
|
diff --git a/SamTSE/Sources/Engine/Engine.h b/SamTSE/Sources/Engine/Engine.h
|
||||||
|
index 8307f70..6ba88a4 100644
|
||||||
|
--- a/SamTSE/Sources/Engine/Engine.h
|
||||||
|
+++ b/SamTSE/Sources/Engine/Engine.h
|
||||||
|
@@ -207,6 +207,7 @@ extern ENGINE_API BOOL _bWorldEditorApp; // is this world edtior app
|
||||||
|
extern ENGINE_API CTString _strLogFile;
|
||||||
|
extern ENGINE_API CTFileName _fnmModLibPath;
|
||||||
|
extern ENGINE_API INDEX sys_iSysPath;
|
||||||
|
+extern ENGINE_API INDEX sys_iGameDataNotFound;
|
||||||
|
#ifdef PLATFORM_WIN32
|
||||||
|
//
|
||||||
|
extern ENGINE_API FLOAT _fPlayerFOVAdjuster;
|
Loading…
Add table
Add a link
Reference in a new issue